diff --git a/Makefile b/Makefile index fc090c83..f3722ad0 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,2 @@ -ifndef ("$(GRLIB2)") -ifdef ("$(GRLIB)") -GRLIB2 = $(GRLIB) -else -GRLIB2 = ./ -endif -endif - include bin/Makefile -# GRLIB2 -#include bin/make.grlib2 -#include bin/make.housekeeping + diff --git a/bin/Makefile b/bin/Makefile index d24932ff..e56ad374 100644 --- a/bin/Makefile +++ b/bin/Makefile @@ -1,6 +1,5 @@ -VER=$(VNAME)1.1.0 -BID=4116 -GVER=1100 +VER=$(VNAME)1.2.1 +BID=4122 CC=gcc SED=sed DISTLIB=~/vhdl @@ -48,7 +47,7 @@ AVHDL = avhdl VLIB = vlib VCOM = vcom -quiet $(VCOMOPT) -93 VLOG = vlog -quiet $(VLOGOPT) -VSIM = vsim +VSIM = vsim $(VSIMOPT) NCVHDL = ncvhdl -nowarn DLCPTH -NOVITALCHECK -linedebug -v93 -nocopyright -work NCVLOG = ncvlog -nowarn DLCPTH -nocopyright -linedebug $(NCVLOGOPT) -work @@ -58,7 +57,7 @@ DCVLOG = analyze -f VERILOG -library FMVHDL = read_vhdl -r -libname FMVLOG = read_verilog -r -libname ifeq ("$(DCSCRIPT)","") -DCSCRIPT=$(TOP).dc +DCSCRIPT=$(TOP)_dc.tcl endif DCLIBSKIP = $(FPGALIBS) corePCIF DCDIRSKIP = $(FPGALIBS) corePCIF pcif @@ -71,6 +70,28 @@ RTLCVHDL = read_hdl -vhdl -lib RTLCVLOG = read_hdl RCSCRIPT=$(TOP).rc +VIVADOVHDL = read_vhdl -library +VIVADOVLOG = read_verilog -library +ifeq ("$(VIVADO_SYNTH_FLOW)","") +VIVADO_SYNTH_FLOW="Vivado Synthesis 2012" +endif +ifeq ("$(VIVADO_SYNTH_STRATEGY)","") +VIVADO_SYNTH_STRATEGY="Vivado Synthesis Defaults" +endif +ifeq ("$(VIVADO_IMPL_STRATEGY)","") +VIVADO_IMPL_STRATEGY="HighEffort" +endif + +ifeq ("$(PLANAHEAD_SYNTH_FLOW)","") +PLANAHEAD_SYNTH_FLOW="XST 14" +endif +ifeq ("$(PLANAHEAD_SYNTH_STRATEGY)","") +PLANAHEAD_SYNTH_STRATEGY="XST Defaults" +endif +ifeq ("$(PLANAHEAD_IMPL_STRATEGY)","") +PLANAHEAD_IMPL_STRATEGY="ParHighEffort" +endif + SYNPVHDL = add_file -vhdl -lib SYNPVLOG = add_file -verilog SYNPLIBSKIP = $(ASICLIBS) @@ -97,6 +118,15 @@ endif ifeq ("$(NETLISTTECH)","") # Some .ngo netlists are reused for other FPGA families +ifeq ("$(TECHNOLOGY)","Virtex7") +NETLISTTECH = Virtex4 +else +ifeq ("$(TECHNOLOGY)","Kintex7") +NETLISTTECH = Virtex4 +else +ifeq ("$(TECHNOLOGY)","Artix7") +NETLISTTECH = Virtex4 +else ifeq ("$(TECHNOLOGY)","Spartan6") NETLISTTECH = Spartan3 else @@ -119,6 +149,9 @@ endif endif endif endif +endif +endif +endif PRECLIBSKIPX = $(SIMLIBS) $(ASICLIBS) PRECLIBSKIP = $(PRECLIBSKIPX:%=%|) dware @@ -133,17 +166,6 @@ LIBERODIRSKIPX = $(ASICLIBS) $(XILINXLIBS) $(ALTERALIBS) $(LATTICELIBS) LIBERODIRSKIP = $(LIBERODIRSKIPX:%=%|) dummy LIBEROSKIP = dummy -# The paths below apply to CoreConsole v. 1.4 -ifeq ("$(CORECONSOLE)","") -CORECONSOLE = dummy -else -CORECONSOLE_PATH = $(CORECONSOLE)/repository/Components/Actel/DirectCore -COREMP7BRIDGE_PATH = $(CORECONSOLE_PATH)/CoreMP7Bridge/2.1/rtl/vhdl/o -COREMP7BRIDGE_FILES = A7WrapMaster.vhd A7WrapSM.vhd CoreMP7Bridge_a3p.vhd Sync.vhd uj_jtag.vhd -COREMP7_PATH = $(CORECONSOLE_PATH)/A7S/2.0/M7A3P1000-2/debug/timingshell/vhdl -COREMP7_FILES = arm_synplify.vhd -endif - SYNPSKIP = snpsmul.vhd GHDL = ghdl -a -fexplicit --ieee=synopsys @@ -242,6 +264,8 @@ help: @echo " make quartus-launch : start Quartus for current project" @echo " make quartus-launch-synp : start Quartus for synplify project" @echo " make synplify-launch : start synplify" + @echo " make vivado-launch : start VIVADO project navigator" + @echo " make planAhead-launch : start PlanAhead project navigator" @echo " make xgrlib : start grlib GUI" @echo @echo " batch targets:" @@ -264,7 +288,8 @@ help: @echo " make quartus-synp : synthesize with synplify, place&route with Quartus" @echo " make precision : synthesize design using precision" @echo " make synplify : synthesize design using synplify" - @echo " make import-actel-cc : import CoreMP7 files from CoreConsole library" + @echo " make vivado : synthesize and place&route with Xilinx VIVADO" + @echo " make planAhead : synthesize and place&route with Xilinx PlanAhead" @echo " make scripts : generate compile scripts only" @echo " make clean : remove all temporary files except scripts" @echo " make distclean : remove all temporary files" @@ -374,19 +399,19 @@ avhdl-clean: riviera: compile.vsim @cat libs.do | sed -e s/modelsim/riviera/ > rlibs.do - @vsimsa rlibs.do + @vsimsa -do "do rlibs.do; quit" @make -f make.vsim @vmap work riviera/work @-rm -f rlibs.do riviera-run: - @vsim $(SIMTOP) < $(GRLIB)/bin/runvsim.do + @vsim -c $(SIMTOP) -do $(GRLIB)/bin/runvsim.do riviera-launch: @echo asim $(SIMTOP) > riviera.do @echo run -all >> riviera.do @echo abort >> riviera.do - @riviera riviera.do + @riviera -do riviera.do riviera-clean: -rm -rf riviera vsimsa.cfg wave.asdb riviera.do library.cfg .riviera_project rlibs.do @@ -422,7 +447,11 @@ vsim-run: vsim @vsim -c $(SIMTOP) < $(GRLIB)/bin/runvsim.do vsim-launch: scripts modelsim +ifeq ("$(VSIMOPT)","") @vsim -quiet $(SIMTOP).mpf +else + vsim -quiet $(VSIMOPT) +endif vsim-mcb: scripts -vlib modelsim @@ -557,12 +586,16 @@ ise-launch-synp: $(TOP).npl $(TOP)_synplify.prj synplify/$(TOP).edf $(TOP)_synpl $(TOP).xst: compile.xst @touch $(TOP).xst; rm $(TOP).xst + @for i in $(VERILOGOPTSYNFILES) $(VERILOGSYNFILES); do \ + if test -r $$i; then \ + echo verilog work $$i >> $(TOP)_files.prj ; \ + fi; \ + done @for i in $(VHDLOPTSYNFILES) $(VHDLSYNFILES); do \ if test -r $$i; then \ echo vhdl work $$i >> $(TOP)_files.prj ; \ fi; \ done -# @for i in $(VERILOGSYNFILES); do $(GRLIB)/bin/xstverilog $ii >> $(TOP).xst; done @$(GRLIB)/bin/xstrun $(TOP) $(TOP).vhd $(DEVICE) >> $(TOP).xst @echo -ofn $(TOP) $(XSTOPT) -define {XSTDUMMY $(SYNPVLOGDEFS)} -sd $(GRLIB)/netlists/xilinx/$(NETLISTTECH) >> $(TOP).xst @echo $(TOP).xst @@ -723,6 +756,214 @@ install-simprim: echo installing $(XILINX)/vhdl/src/unisims/simprim_VITAL.vhd ;\ fi ; \ +compile_xilinx_verilog_lib: + @if test -d ./xilinx_lib; then \ + echo "Xilinx library already compiled!"; else \ + compxlib -s mti_se -l verilog -arch $(TECHNOLOGY) -lib xilinxcorelib -w -dir ./xilinx_lib ; \ + fi; + +map_xilinx_verilog_lib: + @if test -d ./xilinx_lib; then \ + vmap secureip_ver ./xilinx_lib/secureip ; \ + vmap unisims_ver ./xilinx_lib/unisims_ver ; \ + vmap xilinxcorelib_ver ./xilinx_lib/xilinxcorelib_ver ; else \ + echo "Xilinx Verilog Library not found. Please make sure you have installed the correct version of the Xilinx Library" ; exit 1 ; \ + fi; + +clean_xilinx_verilog_lib: + \rm -rf xilinx_lib + \rm -f compxlib.* .cxl.mti_se.version + +mig_series7_generate: +ifeq ($(CONFIG_MIG_SERIES7),y) + @if test -d ./mig; then \ + echo "Xilinx MIG already generated!"; else \ + mkdir -p mig ; \ + mkdir -p mig/mig ; \ + cp $(GRLIB)/boards/$(BOARD)/mig.xco ./mig/ ; \ + cp $(GRLIB)/boards/$(BOARD)/mig.prj ./mig/mig ; \ + cp $(GRLIB)/boards/$(BOARD)/mig.cgp ./mig/ ; \ + coregen -b ./mig/mig.xco -p mig/mig.cgp ; \ + fi; +endif + +mig_series7: mig_series7_generate compile_xilinx_verilog_lib map_xilinx_verilog_lib +ifeq ($(CONFIG_MIG_SERIES7),y) + if [ -f mig/mig/user_design/rtl/mig.v ]; then \ + vlog -quiet -work gaisler \ + mig/mig/user_design/rtl/mig.v \ + mig/mig/user_design/rtl/clocking/*.v \ + mig/mig/user_design/rtl/controller/*.v \ + mig/mig/user_design/rtl/ecc/*.v \ + mig/mig/user_design/rtl/ip_top/*.v \ + mig/mig/user_design/rtl/phy/*.v \ + mig/mig/user_design/rtl/phy_traffic_gen/*.v \ + mig/mig/user_design/rtl/ui/*.v ;\ + vlog -quiet -work work $(XILINX)/verilog/src/glbl.v ;\ + fi; +endif + +mig_series7_clean: + \rm -rf mig + +######### Xilinx PlanAhead targets ############ + +planAhead.tcl: compile.vivado + @-mkdir -p planAhead + @echo "# Xilinx planAhead script for Leon3mp" > ./planAhead/$(TOP)_planAhead.tcl + @echo "# Create a new project" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "create_project $(DESIGN) ./planAhead/$(DESIGN) -part ${DEVICE} -force" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "# Board, part and design properties" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "set_property target_simulator ModelSim [current_project]" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "set_property top_lib work [current_fileset]" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "set_property top_arch rtl [current_fileset]" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "set_property top $(TOP) [current_fileset]" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "set_property target_language VHDL [current_project]" >> ./planAhead/$(TOP)_planAhead.tcl +ifneq ("$(PROTOBOARD)","") + @echo "set_property board $(PROTOBOARD) [current_project]" >> ./planAhead/$(TOP)_planAhead.tcl +endif + @echo "source ./compile.vivado" >> ./planAhead/$(TOP)_planAhead.tcl + @for i in $(VERILOGOPTSYNFILES) $(VERILOGSYNFILES); do \ + if test -r $$i; then \ + echo read_verilog "-library work" $$i >> ./planAhead/$(TOP)_planAhead.tcl; \ + fi; \ + done + @for i in $(VHDLOPTSYNFILES) $(VHDLSYNFILES); do \ + if test -r $$i; then \ + echo read_vhdl "-library work" $$i >> ./planAhead/$(TOP)_planAhead.tcl; \ + fi; \ + done + @if test -r $(GRLIB)/netlists/xilinx/$(NETLISTTECH); then \ + echo "import_files $(GRLIB)/netlists/xilinx/$(NETLISTTECH)" >> ./planAhead/$(TOP)_planAhead.tcl; \ + fi +ifeq ("$(PROTOBOARD)","zedBoard") + @-mkdir -p planAhead/xps_files + @cp -r ./edk_files/leon3_zedboard planAhead/xps_files/ + @echo "# Add Leon3 PS Zedboard Design" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "add_files ./planAhead/xps_files/leon3_zedboard/leon3_zedboard.xmp" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "make_wrapper -files [get_files ./planAhead/xps_files/leon3_zedboard/leon3_zedboard.xmp] -top -fileset [get_filesets sources_1] -import" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "update_compile_order -fileset sources_1" >> ./planAhead/$(TOP)_planAhead.tcl +endif + @echo "# Read board specific constraints" >> ./planAhead/$(TOP)_planAhead.tcl +#ifneq ("$(UCF_PLANAHEAD)","") + @for i in $(UCF_PLANAHEAD); do \ + if test -r $$i; then \ + echo "read_ucf $$i" >> ./planAhead/$(TOP)_planAhead.tcl; \ + fi; \ + done +#endif +ifeq ($(CONFIG_MIG_DDR2),y) + @if test -r mig/user_design/par/mig.ucf; then \ + @echo "read_ucf mig/user_design/par/mig.ucf" >> ./planAhead/$(TOP)_planAhead.tcl; \ + fi; +endif + @echo "create_run synth_$(DESIGN) -flow {$(PLANAHEAD_SYNTH_FLOW)} -strategy {$(PLANAHEAD_SYNTH_STRATEGY)}" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "set_property steps.xst.args.resource_sharing no [get_runs synth_1]" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "set_property steps.xst.args.equivalent_register_removal no [get_runs synth_1]" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "# Elaborate design to be able to apply SDC to top level" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "launch_runs synth_1" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "wait_on_run -timeout 120 synth_1" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "# Launch place and route" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "set_property strategy $(PLANAHEAD_IMPL_STRATEGY) [get_runs impl_1]" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "set_property steps.bitgen.args.m true [get_runs impl_1]" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "launch_runs impl_1 -to_step Bitgen" >> ./planAhead/$(TOP)_planAhead.tcl + @echo "wait_on_run -timeout 120 impl_1" >> ./planAhead/$(TOP)_planAhead.tcl +ifeq ("$(PROTOBOARD)","zedBoard") + @echo "export_hardware [get_files ./planAhead/xps_files/leon3_zedboard/leon3_zedboard.xmp] [get_runs impl_1] -bitstream" >> ./planAhead/$(TOP)_planAhead.tcl +endif + @echo "exit" >> ./planAhead/$(TOP)_planAhead.tcl + +planAhead-launch: planAhead.tcl + planAhead -mode gui -source ./planAhead/$(TOP)_planAhead.tcl + cp ./planAhead/$(DESIGN)/$(DESIGN).runs/impl_1/$(TOP).bit . + cp ./planAhead/$(DESIGN)/$(DESIGN).runs/impl_1/$(TOP).msk . + +planAhead: planAhead.tcl + planAhead -mode batch -source ./planAhead/$(TOP)_planAhead.tcl + cp ./planAhead/$(DESIGN)/$(DESIGN).runs/impl_1/$(TOP).bit . + cp ./planAhead/$(DESIGN)/$(DESIGN).runs/impl_1/$(TOP).msk . + +planAhead-clean: + -rm -rf ./planAhead planAhead.log + +######### Xilinx Vivado targets ############ + +vivado.tcl: compile.vivado + @-mkdir -p vivado + @echo "# Xilinx Vivado script for Leon3mp" > ./vivado/$(TOP)_vivado.tcl + @echo "# Create a new project" >> ./vivado/$(TOP)_vivado.tcl + @echo "create_project $(DESIGN) ./vivado/$(DESIGN) -part ${DEVICE} -force" >> ./vivado/$(TOP)_vivado.tcl + @echo "source ./compile.vivado" >> ./vivado/$(TOP)_vivado.tcl + @for i in $(VERILOGOPTSYNFILES) $(VERILOGSYNFILES); do \ + if test -r $$i; then \ + echo read_verilog "-library work" $$i >> ./vivado/$(TOP)_vivado.tcl; \ + fi; \ + done + @for i in $(VHDLOPTSYNFILES) $(VHDLSYNFILES); do \ + if test -r $$i; then \ + echo read_vhdl "-library work" $$i >> ./vivado/$(TOP)_vivado.tcl; \ + fi; \ + done + @echo "# Read board specific constraints" >> ./vivado/$(TOP)_vivado.tcl +ifneq ("$(XDC)","") + @echo "read_xdc $(XDC)" >> ./vivado/$(TOP)_vivado.tcl +endif +ifneq ("$(UCF)","") + @echo "read_ucf $(UCF)" >> ./vivado/$(TOP)_vivado.tcl +endif + @echo "# Board, part and design properties" >> ./vivado/$(TOP)_vivado.tcl + @echo "set_property target_simulator ModelSim [current_project]" >> ./vivado/$(TOP)_vivado.tcl + @echo "set_property top_lib work [current_fileset]" >> ./vivado/$(TOP)_vivado.tcl + @echo "set_property top_arch rtl [current_fileset]" >> ./vivado/$(TOP)_vivado.tcl + @echo "set_property top $(TOP) [current_fileset]" >> ./vivado/$(TOP)_vivado.tcl +ifneq ("$(PROTOBOARD)","") + @echo "set_property board $(PROTOBOARD) [current_project]" >> ./vivado/$(TOP)_vivado.tcl +endif +ifeq ($(CONFIG_MIG_SERIES7),y) + @echo "import_ip -file ./mig/mig.xco -name mig" >> ./vivado/$(TOP)_vivado.tcl + @echo "generate_target {instantiation_template Synthesis} [get_files $(DESIGN)/$(DESIGN).srcs/sources_1/ip/mig/mig.xco -of_objects [get_filesets sources_1]] -force " >> ./vivado/$(TOP)_vivado.tcl +endif + @if test -r $(GRLIB)/netlists/xilinx/$(NETLISTTECH); then \ + echo "import_files $(GRLIB)/netlists/xilinx/$(NETLISTTECH)" >> ./vivado/$(TOP)_vivado.tcl; \ + fi + @echo "create_fileset -simset sim_$(DESIGN)" >> ./vivado/$(TOP)_vivado.tcl + @echo "create_run synth_$(DESIGN) -flow {$(VIVADO_SYNTH_FLOW)} -strategy {$(VIVADO_SYNTH_STRATEGY)}" >> ./vivado/$(TOP)_vivado.tcl + @echo "# Elaborate design to be able to apply SDC to top level" >> ./vivado/$(TOP)_vivado.tcl + @echo "synth_design -rtl -name rtl_1" >> ./vivado/$(TOP)_vivado.tcl + @echo "# Launch synth" >> ./vivado/$(TOP)_vivado.tcl + @echo "launch_runs synth_1" >> ./vivado/$(TOP)_vivado.tcl + @echo "wait_on_run -timeout 120 synth_1" >> ./vivado/$(TOP)_vivado.tcl + @echo "# Launch place and route" >> ./vivado/$(TOP)_vivado.tcl + @echo "set_property strategy $(VIVADO_IMPL_STRATEGY) [get_runs impl_1]" >> ./vivado/$(TOP)_vivado.tcl + @echo "set_property steps.write_bitstream.args.mask_file true [get_runs impl_1]" >> ./vivado/$(TOP)_vivado.tcl + @echo "launch_runs impl_1" >> ./vivado/$(TOP)_vivado.tcl + @echo "wait_on_run -timeout 120 impl_1" >> ./vivado/$(TOP)_vivado.tcl + @echo "close_design" >> ./vivado/$(TOP)_vivado.tcl + @echo "open_run impl_1" >> ./vivado/$(TOP)_vivado.tcl + @echo "report_timing_summary -delay_type min_max -path_type full_clock_expanded -report_unconstrained -check_timing_verbose -max_paths 10 -nworst 1 -significant_digits 3 -input_pins -name timing_1 -file $(TOP)_post_timing.rpt" >> ./vivado/$(TOP)_vivado.tcl + @echo "report_drc -file $(TOP)_drc_route.rpt" >> ./vivado/$(TOP)_vivado.tcl + @echo "launch_runs impl_1 -to_step write_bitstream" >> ./vivado/$(TOP)_vivado.tcl + @echo "wait_on_run -timeout 120 impl_1" >> ./vivado/$(TOP)_vivado.tcl + + +vivado-launch: vivado.tcl + vivado -mode gui -source ./vivado/$(TOP)_vivado.tcl + cp ./vivado/$(DESIGN)/$(DESIGN).runs/impl_1/$(TOP).bit . + cp ./vivado/$(DESIGN)/$(DESIGN).runs/impl_1/$(TOP).msk . + +vivado: vivado.tcl + vivado -mode batch -source ./vivado/$(TOP)_vivado.tcl + cp ./vivado/$(DESIGN)/$(DESIGN).runs/impl_1/$(TOP).bit . + cp ./vivado/$(DESIGN)/$(DESIGN).runs/impl_1/$(TOP).msk . + +vivado-clean: + -rm -rf ./vivado vivado.log + +vivado-prog-fpga: + @echo "fpga -f ./vivado/$(DESIGN)/$(DESIGN).runs/impl_1/$(TOP).bit" > ./xmd.ini + @echo "exit" >> ./xmd.ini + xmd + ######### Altera Quartus targets ############ @@ -799,6 +1040,11 @@ synplify/$(TOP).edf: $(VHDLSYNFILES) $(VERILOGSYNFILES) $(TOP)_synplify.prj: compile.synp @echo source compile.synp > $(TOP)_synplify.prj + @for i in $(VERILOGOPTSYNFILES) $(VERILOGSYNFILES); do \ + if test -r $$i; then \ + echo add_file "-verilog -lib work" $$i >> $(TOP)_synplify.prj; \ + fi; \ + done @for i in $(VHDLOPTSYNFILES) $(VHDLSYNFILES); do \ if test -r $$i; then \ echo add_file "-vhdl -lib work" $$i >> $(TOP)_synplify.prj; \ @@ -811,8 +1057,8 @@ $(TOP)_synplify.prj: compile.synp fi; \ done; \ fi -# @for i in $(VERILOGSYNFILES); do echo add_file "-verilog -lib work" $ii >> $(TOP)_synplify.prj; done @for i in $(SDCFILE); do echo add_file "-constraint " $$i >> $(TOP)_synplify.prj; done + @for i in $(FDCFILE); do echo add_file "-fpga_constraint " $$i >> $(TOP)_synplify.prj; done @cat $(GRLIB)/bin/synplify.prj | sed -e s/TOP/$(TOP)/ \ -e s/TECHNOLOGY/$(TECHNOLOGY)/ \ -e s/PART/$(PART)/ -e s/SPEED/$(SPEED)/ -e s/SYNFREQ/$(SYNFREQ)/ >> $(TOP)_synplify.prj @@ -824,6 +1070,9 @@ ifneq ("$(SYNPVLOGDEFS)","") endif ifneq ("$(SYNPVLOGINC)","") @echo set_option -include_path \"$(SYNPVLOGINC)\" >> $(TOP)_synplify.prj +endif +ifneq ("$(SYNPVLOGSTD)","") + @echo set_option -vlog_std \"$(SYNPVLOGSTD)\" >> $(TOP)_synplify.prj endif @echo $(SYNPOPT) >> $(TOP)_synplify.prj @echo impl -active \"synplify\" >> $(TOP)_synplify.prj @@ -857,6 +1106,15 @@ libero-launch : $(TOP)_libero.prj ######### Actel Designer targets ############################ +# DESIGNER_LAYOUT_OPT can be overridden i template design Makefile +ifeq ("$(DESIGNER_LAYOUT_OPT)","") +ifeq ("$(TECHNOLOGY)","Axcelerator") +DESIGNER_LAYOUT_OPT="-effort_level 5 -timing_driven -incremental \"OFF\"" +else +DESIGNER_LAYOUT_OPT="-timing_driven -incremental \"OFF\"" +endif +endif + actel: $(TOP)_synplify.prj synplify/$(TOP).edf $(TOP)_designer.tcl -mkdir ./actel $(DESIGNER) script:$(TOP)_designer.tcl @@ -897,7 +1155,6 @@ else @echo " puts \"WARNING: No PDC_EXTRA file imported.\"" >> $(TOP)_designer.tcl @echo "}" >> $(TOP)_designer.tcl endif - @echo "if {[file exist "$(SDC)"]} {" >> $(TOP)_designer.tcl @echo " import_aux -format \"sdc\" -merge_timing \"no\" {"$(SDC)"}" >> $(TOP)_designer.tcl @echo "} else {" >> $(TOP)_designer.tcl @@ -913,11 +1170,7 @@ else endif @echo "save_design {"$(TOP).adb"}" >> $(TOP)_designer.tcl @echo "report -type status {./actel/report_status_pre.log}" >> $(TOP)_designer.tcl -ifeq ("$(TECHNOLOGY)","Axcelerator") - @echo "layout -effort_level 5 -timing_driven -incremental \"OFF\"" >> $(TOP)_designer.tcl -else - @echo "layout -timing_driven -incremental \"OFF\"" >> $(TOP)_designer.tcl -endif + @echo "layout " $(DESIGNER_LAYOUT_OPT) >> $(TOP)_designer.tcl @echo "save_design {"$(TOP).adb"}" >> $(TOP)_designer.tcl @echo "backannotate -dir {./actel} -name \"$(TOP)\" -format \"SDF\" -language \"VHDL93\" -netlist" >> $(TOP)_designer.tcl @echo "report -type \"timer\" -analysis \"max\" -print_summary \"yes\" -use_slack_threshold \"no\" -print_paths \"yes\" -max_paths 100 -max_expanded_paths 5 -include_user_sets \"yes\" -include_pin_to_pin \"yes\" -select_clock_domains \"no\" {./actel/report_timer_max.txt}" >> $(TOP)_designer.tcl @@ -955,7 +1208,7 @@ dc: $(TOP)_dc.tcl $(TOP)_dc.tcl: compile.dc @cp $(GRLIB)/bin/top.dc $(TOP)_dc.tcl - @for i in $(VERILOGSYNFILES); do \ + @for i in $(VERILOGOPTSYNFILES) $(VERILOGSYNFILES); do \ if test -r $$i; then \ echo $(DCVLOG) work $$i >> $(TOP)_dc.tcl; \ echo $(FMVLOG) $work $i >> fmref.tcl; \ @@ -988,7 +1241,7 @@ $(TOP).rc: compile.rc echo "read_hdl -vhdl -lib work" $$i >> $(TOP).rc; \ fi; \ done -# @for i in $(VERILOGSYNFILES); do echo "read_hdl " $$i >> $(TOP).rc; done +# @for i in $(VERILOGOPTSYNFILES) $(VERILOGSYNFILES); do echo "read_hdl " $$i >> $(TOP).rc; done @echo elaborate $(TOP) >> $(TOP).rc @echo $(TOP).rc @@ -1026,11 +1279,11 @@ etools-n2x-clean: ########## Generation of compile scripts ############### -scripts: compile.dc compile.synp compile.son compile.vsim compile.asim compile.xst compile.ncsim compile.rc \ +scripts: compile.dc compile.synp compile.vivado compile.son compile.vsim compile.asim compile.xst compile.ncsim compile.rc \ $(TOP)_synplify.prj $(TOP)_dc.tcl $(TOP).rc $(TOP).xst $(TOP).npl $(TOP)_ise.tcl $(TOP).qsf \ $(TOP)_designer.tcl $(TOP)_libero.prj compile.etools $(TOP)_etools_create.tcl $(TOP).ldf -verilog.txt $(TOP)_libero.prj compile.dc compile.synp compile.son compile.vsim compile.asim compile.xst \ +verilog.txt $(TOP)_libero.prj compile.dc compile.synp compile.vivado compile.son compile.vsim compile.asim compile.xst \ compile.ncsim compile.rc compile.ghdl $(TOP).npl $(TOP)_ise.tcl $(TOP).qsf $(TOP)_precision.tcl $(TOP).xise \ compile.etools $(TOP).ldf : @touch libs.txt; rm libs.txt; @@ -1211,7 +1464,7 @@ compile.etools $(TOP).ldf : if test -r $$k/$$l; then \ echo -n " "$$l; \ fi; \ - for i in vlogsyn vhdlsyn vhdlmtie vhdlsynpe vhdldce vlogsim vhdlsim ; do \ + for i in vlogsyn vhdlsyn vhdlmtie vhdlsynpe vhdldce vhdlcdse vlogsim vhdlsim ; do \ m=$$k/$$l/$$i; \ if test -r $$m.txt; then \ for q in `cat $$m.txt` $(FILEADD) ; do \ @@ -1239,7 +1492,8 @@ compile.etools $(TOP).ldf : echo ENDFILE >> libero_syn_files;; \ vhdlsynpe) \ echo $(SYNPVHDL) $(VHDLOPT) $$bn $$f >> compile.synp; \ - echo VALUE \"\/$$f,hdl\" >> libero_syn_files; \ + echo $(VIVADOVHDL) $$bn $$f >> compile.vivado; \ + echo VALUE \"\/$$f,hdl\" >> libero_syn_files; \ echo VALUE \"\/$$f,hdl\" >> libero_synlist; \ echo STATE=\"utd\" >> libero_syn_files; \ echo TIME=\"1310766027\" >> libero_syn_files; \ @@ -1247,6 +1501,9 @@ compile.etools $(TOP).ldf : echo ENDFILE >> libero_syn_files;; \ vhdldce) \ echo $(DCVHDL) $$bn $(VHDLOPT) $$f >> compile.dc;; \ + vhdlcdse) \ + printf "\t$(NCVHDL) $(VHDLOPT) $$bn $$f\n" >> compile.ncsim; \ + echo $(RTLCVHDL) $(VHDLOPT) $$bn $$f >> compile.rc;; \ vhdlsyn) \ echo Project_File_$$nfiles = $$f >> tmp.mpf; \ echo Project_File_P_$$nfiles = vhdl_novitalcheck 0 file_type VHDL group_id 0 vhdl_nodebug 0 vhdl_1164 1 vhdl_noload 0 vhdl_synth 0 folder {Top Level} last_compile 0 vhdl_disableopt 0 vhdl_vital 0 vhdl_warn1 0 vhdl_warn2 1 vhdl_explicit 0 vhdl_showsource 1 vhdl_warn3 1 vhdl_options {} vhdl_warn4 1 ood 0 vhdl_warn5 0 compile_to $$bn compile_order $$nfiles dont_compile 0 cover_stmt 1 vhdl_use93 93 >> tmp.mpf; \ @@ -1278,6 +1535,7 @@ compile.etools $(TOP).ldf : case $$l in $(XSYNPDIRSKIP) ) ;; *) \ case $$q in $(SYNPSKIP) ) ;; *) \ echo $(SYNPVHDL) $(VHDLOPT) $$bn $$f >> compile.synp; \ + echo $(VIVADOVHDL) $$bn $$f >> compile.vivado; \ echo " "\ >> $(TOP).ldf; \ echo " "\ >> $(TOP).ldf; \ echo " "\<\/Source\> >> $(TOP).ldf;; \ @@ -1381,6 +1639,7 @@ compile.etools $(TOP).ldf : echo xfile add \"$$f\" >> $(TOP)_ise.tcl; \ echo puts \"$$f\" >> $(TOP)_ise.tcl; \ echo $(SYNPVLOG) $$f >> compile.synp; \ + echo $(VIVADOVLOG) $$f >> compile.vivado; \ echo add_input_file -format VERILOG -work $$bn $$f >> $(TOP)_precision.tcl; \ echo set_global_assignment -name VERILOG_FILE $$f -library $$bn >> $(TOP).qsf;; \ vhdlsim) \ @@ -1473,7 +1732,7 @@ compile.etools $(TOP).ldf : fi; \ done; \ echo "{work $$easic_lib}" >> easic.vhdl; \ - for i in $(VERILOGSYNFILES); do \ + for i in $(VERILOGOPTSYNFILES) $(VERILOGSYNFILES); do \ echo $$i >> easic.vlog; \ done; \ echo " "\ >> $(TOP).ldf; \ @@ -1644,6 +1903,20 @@ compile.etools $(TOP).ldf : cat compile.asim >> make.asim; \ printf "# Work-around for stupid secureip bug ...\n" >> make.vsim; \ printf "\t@if test -r $(GRLIB)/lib/tech/secureip/ise/mcb_001.vp && test -r modelsim/secureip; then vlog -quiet -novopt -work secureip $(GRLIB)/lib/tech/secureip/ise/mcb_*.vp; fi\n" >> make.vsim; \ + for i in $(VERILOGOPTSYNFILES) $(VERILOGSYNFILES); do \ + if test -r $$i; then \ + printf "\t$(VLOG) -work work $$i\n" >> make.vsim; \ + printf "\t$(ALOG) work ../../$$i\n" >> make.asim; \ + printf "\t$(NCVLOG) work $$i\n" >> make.ncsim; \ + fi; \ + done; \ + for i in $(VERILOGSIMFILES); do \ + if test -r $$i; then \ + printf "\t$(VLOG) -work work $$i\n" >> make.vsim; \ + printf "\t$(ALOG) work ../../$$i\n" >> make.asim; \ + printf "\t$(NCVLOG) work $$i\n" >> make.ncsim; \ + fi; \ + done; \ for i in $(VHDLOPTSYNFILES) $(VHDLSYNFILES) $(VHDLSIMFILES); do \ if test -r $$i; then \ printf "\t$(VCOM) $(VHDLOPT) -work work $$i\n" >> make.vsim; \ @@ -1652,7 +1925,7 @@ compile.etools $(TOP).ldf : echo VALUE \"\/$$i,hdl\" >> libero_simlist; \ fi; \ done; \ - for i in $(VERILOGSYNFILES) $(VHDLOPTSYNFILES) $(VHDLSYNFILES); do \ + for i in $(VERILOGOPTSYNFILES) $(VERILOGSYNFILES) $(VHDLOPTSYNFILES) $(VHDLSYNFILES); do \ if test -r $$i; then \ echo VALUE \"\/$$i,hdl\" >> libero_syn_files; \ echo STATE=\"utd\" >> libero_syn_files; \ @@ -1671,7 +1944,7 @@ compile.etools $(TOP).ldf : echo VALUE \"\/$$i,hdl\" >> libero_sim_files; \ fi; \ done; \ - for i in $(VERILOGSYNFILES) $(VERILOGSIMFILES); do \ + for i in $(VERILOGOPTSYNFILES) $(VERILOGSYNFILES) $(VERILOGSIMFILES); do \ if test -r $$i; then \ printf "\t$(VLOG) -work work $$i\n" >> make.vsim; \ printf "\t$(ALOG) work ../../$$i\n" >> make.asim; \ @@ -1793,18 +2066,6 @@ compile.etools $(TOP).ldf : ########## Import from other libraries ############### -## Import CoreMP7 files from Actel's CoreConsole IP Library -import-actel-cc: - @if test -r $(CORECONSOLE); then \ - echo "Importing CoreMP7 files from Actel CoreConsole IP Library"; \ - echo " Importing $(COREMP7BRIDGE_FILES) to lib/techmap/proasic3"; \ - for i in $(COREMP7BRIDGE_FILES); do cp $(COREMP7BRIDGE_PATH)/$$i $(GRLIB)/lib/techmap/proasic3; done; \ - echo " Importing $(COREMP7_FILES) to lib/techmap/proasic3";\ - for i in $(COREMP7_FILES); do cp $(COREMP7_PATH)/$$i $(GRLIB)/lib/techmap/proasic3; done; \ - else \ - echo "CORECONSOLE environment variable is not correctly set!"; \ - fi - ## Import eASIC RTL and IP libraries from eTools # tested with eTools 9. eTools 8.2.0 has ip_lib under data instead of # data_common, earlier versions may not have "data" directory in path @@ -1835,7 +2096,7 @@ remove-easic-n2x: clean: $(CLEAN) vsim-clean ise-clean ncsim-clean ghdl-clean synplify-clean quartus-clean sonata-clean \ actel-clean dc-clean rc-clean isp-clean precision-clean vsimsa-clean avhdl-clean riviera-clean \ - etools-n2x-clean + etools-n2x-clean vivado-clean planAhead-clean -rm -rf verilog.txt tkparse.exe main.tk ahbrom outdata ahbrom.bin scripts-clean: @@ -1848,7 +2109,7 @@ scripts-clean: alibs.do avhdl.tcl riviera.do \ $(TOP)_etools_create.tcl $(TOP).eprj $(EXTRACLEAN) -distclean: $(CLEAN) clean scripts-clean +distclean: $(CLEAN) clean scripts-clean clean_xilinx_verilog_lib libclean: -@rm work.v; \ diff --git a/bin/Makefile.config b/bin/Makefile.config index 7b472c98..acc4192b 100644 --- a/bin/Makefile.config +++ b/bin/Makefile.config @@ -1,127 +1,115 @@ -CONFDEP = $(GRLIB)/lib/techmap/clocks/clkgen.in \ -$(GRLIB)/lib/techmap/gencomp/tech.in \ -$(GRLIB)/lib/techmap/gencomp/clkgen.in \ -$(GRLIB)/lib/gleichmann/ac97/ac97_oc.in \ -$(GRLIB)/lib/gleichmann/multiio/multiio.in \ -$(GRLIB)/lib/gleichmann/ahb2hpi/ahb2hpi.in \ -$(GRLIB)/lib/gleichmann/spi/spi_oc.in \ -$(GRLIB)/lib/gleichmann/dac/adcdac.in \ -$(GRLIB)/lib/gleichmann/dac/dac_ahb.in \ -$(GRLIB)/lib/esa/memoryctrl/mctrl.in \ -$(GRLIB)/lib/esa/pci/pci_arb.in \ -$(GRLIB)/lib/praesum/ahbpassthru/ahbpassthru.in \ -$(GRLIB)/lib/gaisler/uart/dcom.in \ -$(GRLIB)/lib/gaisler/uart/uart2.in \ -$(GRLIB)/lib/gaisler/uart/uart1.in \ -$(GRLIB)/lib/gaisler/usb/grusbhc.in \ -$(GRLIB)/lib/gaisler/usb/grusb_dcl.in \ -$(GRLIB)/lib/gaisler/usb/grusbdc.in \ -$(GRLIB)/lib/gaisler/greth/greth.in \ -$(GRLIB)/lib/gaisler/greth/greth2.in \ -$(GRLIB)/lib/gaisler/spacewire/router.in \ -$(GRLIB)/lib/gaisler/spacewire/spacewire.in \ -$(GRLIB)/lib/gaisler/memctrl/sdctrl.in \ -$(GRLIB)/lib/gaisler/memctrl/srctrl.in \ -$(GRLIB)/lib/gaisler/memctrl/ssrctrl.in \ -$(GRLIB)/lib/gaisler/net/edcl.in \ -$(GRLIB)/lib/gaisler/ddr/mig.in \ -$(GRLIB)/lib/gaisler/ddr/ddr2sp.in \ -$(GRLIB)/lib/gaisler/ddr/ddrsp.in \ -$(GRLIB)/lib/gaisler/can/can_mc.in \ +CONFDEP = $(GRLIB)/lib/gaisler/leon3/irqmp.in \ +$(GRLIB)/lib/gaisler/leon3/leon3.in \ +$(GRLIB)/lib/gaisler/i2c/i2c.in \ +$(GRLIB)/lib/gaisler/i2c/i2cslv.in \ +$(GRLIB)/lib/gaisler/i2c/i2c2ahb.in \ $(GRLIB)/lib/gaisler/can/can_oc.in \ $(GRLIB)/lib/gaisler/can/grcan.in \ -$(GRLIB)/lib/gaisler/gr1553b/gr1553b.in \ -$(GRLIB)/lib/gaisler/gr1553b/gr1553b_2.in \ -$(GRLIB)/lib/gaisler/pci/pcitrace.in \ +$(GRLIB)/lib/gaisler/can/can_mc.in \ +$(GRLIB)/lib/gaisler/pci/pcidma.in \ +$(GRLIB)/lib/gaisler/pci/pci_target.in \ $(GRLIB)/lib/gaisler/pci/pci_mtf.in \ +$(GRLIB)/lib/gaisler/pci/pcitrace.in \ $(GRLIB)/lib/gaisler/pci/pci.in \ -$(GRLIB)/lib/gaisler/pci/pci_target.in \ -$(GRLIB)/lib/gaisler/pci/pcidma.in \ -$(GRLIB)/lib/gaisler/i2c/i2cslv.in \ -$(GRLIB)/lib/gaisler/i2c/i2c.in \ -$(GRLIB)/lib/gaisler/i2c/i2c2ahb.in \ -$(GRLIB)/lib/gaisler/ata/ata.in \ -$(GRLIB)/lib/gaisler/spi/spimctrl.in \ +$(GRLIB)/lib/gaisler/net/edcl.in \ $(GRLIB)/lib/gaisler/spi/spictrl.in \ $(GRLIB)/lib/gaisler/spi/spi2ahb.in \ +$(GRLIB)/lib/gaisler/spi/spimctrl.in \ +$(GRLIB)/lib/gaisler/greth/greth2.in \ +$(GRLIB)/lib/gaisler/greth/greth.in \ $(GRLIB)/lib/gaisler/irqmp/irqmp.in \ -$(GRLIB)/lib/gaisler/misc/ahbram.in \ -$(GRLIB)/lib/gaisler/misc/ps2vga.in \ +$(GRLIB)/lib/gaisler/gr1553b/gr1553b.in \ +$(GRLIB)/lib/gaisler/gr1553b/gr1553b_2.in \ +$(GRLIB)/lib/gaisler/leon3ftv2/leon3net.in \ +$(GRLIB)/lib/gaisler/uart/uart2.in \ +$(GRLIB)/lib/gaisler/uart/dcom.in \ +$(GRLIB)/lib/gaisler/uart/uart1.in \ $(GRLIB)/lib/gaisler/misc/gracectrl.in \ $(GRLIB)/lib/gaisler/misc/ahbrom.in \ -$(GRLIB)/lib/gaisler/misc/grgpio2.in \ -$(GRLIB)/lib/gaisler/misc/gptimer.in \ -$(GRLIB)/lib/gaisler/misc/ps2.in \ -$(GRLIB)/lib/gaisler/misc/ahbstat.in \ $(GRLIB)/lib/gaisler/misc/svgactrl.in \ $(GRLIB)/lib/gaisler/misc/grgpio.in \ +$(GRLIB)/lib/gaisler/misc/ps2.in \ +$(GRLIB)/lib/gaisler/misc/gptimer.in \ +$(GRLIB)/lib/gaisler/misc/ps2vga.in \ +$(GRLIB)/lib/gaisler/misc/grgpio2.in \ +$(GRLIB)/lib/gaisler/misc/ahbstat.in \ $(GRLIB)/lib/gaisler/misc/grsysmon.in \ -$(GRLIB)/lib/gaisler/jtag/jtag.in \ -$(GRLIB)/lib/gaisler/jtag/jtag2.in \ +$(GRLIB)/lib/gaisler/misc/ahbram.in \ +$(GRLIB)/lib/gaisler/usb/grusbhc.in \ +$(GRLIB)/lib/gaisler/usb/grusbdc.in \ +$(GRLIB)/lib/gaisler/usb/grusb_dcl.in \ +$(GRLIB)/lib/gaisler/spacewire/router.in \ +$(GRLIB)/lib/gaisler/spacewire/spacewire.in \ +$(GRLIB)/lib/gaisler/ddr/mig_series7.in \ +$(GRLIB)/lib/gaisler/ddr/mig.in \ +$(GRLIB)/lib/gaisler/ddr/ddrsp.in \ +$(GRLIB)/lib/gaisler/ddr/ddr2sp.in \ +$(GRLIB)/lib/gaisler/memctrl/sdctrl.in \ +$(GRLIB)/lib/gaisler/memctrl/ssrctrl.in \ +$(GRLIB)/lib/gaisler/memctrl/srctrl.in \ $(GRLIB)/lib/gaisler/jtag/bscan.in \ -$(GRLIB)/lib/gaisler/leon3/leon3.in \ -$(GRLIB)/lib/gaisler/leon3/irqmp.in \ +$(GRLIB)/lib/gaisler/jtag/jtag2.in \ +$(GRLIB)/lib/gaisler/jtag/jtag.in \ +$(GRLIB)/lib/esa/pci/pci_arb.in \ +$(GRLIB)/lib/esa/memoryctrl/mctrl.in \ $(GRLIB)/lib/grlib/amba/amba.in \ $(GRLIB)/lib/grlib/util/debug.in \ +$(GRLIB)/lib/techmap/clocks/clkgen.in \ +$(GRLIB)/lib/techmap/gencomp/tech.in \ +$(GRLIB)/lib/techmap/gencomp/clkgen.in \ -HELPDEP = $(GRLIB)/lib/techmap/clocks/clkgen.in.help \ -$(GRLIB)/lib/techmap/gencomp/tech.in.help \ -$(GRLIB)/lib/techmap/gencomp/clkgen.in.help \ -$(GRLIB)/lib/gleichmann/ac97/ac97_oc.in.help \ -$(GRLIB)/lib/gleichmann/multiio/multiio.in.help \ -$(GRLIB)/lib/gleichmann/ahb2hpi/ahb2hpi.in.help \ -$(GRLIB)/lib/gleichmann/spi/spi_oc.in.help \ -$(GRLIB)/lib/gleichmann/dac/dac_ahb.in.help \ -$(GRLIB)/lib/gleichmann/dac/adcdac.in.help \ -$(GRLIB)/lib/esa/memoryctrl/mctrl.in.help \ -$(GRLIB)/lib/esa/pci/pci_arb.in.help \ -$(GRLIB)/lib/gaisler/uart/uart2.in.help \ -$(GRLIB)/lib/gaisler/uart/uart1.in.help \ -$(GRLIB)/lib/gaisler/uart/dcom.in.help \ -$(GRLIB)/lib/gaisler/usb/grusb_dcl.in.help \ -$(GRLIB)/lib/gaisler/usb/grusbdc.in.help \ -$(GRLIB)/lib/gaisler/usb/grusbhc.in.help \ -$(GRLIB)/lib/gaisler/greth/greth.in.help \ -$(GRLIB)/lib/gaisler/greth/greth2.in.help \ -$(GRLIB)/lib/gaisler/spacewire/spacewire.in.help \ -$(GRLIB)/lib/gaisler/spacewire/router.in.help \ -$(GRLIB)/lib/gaisler/memctrl/ssrctrl.in.help \ -$(GRLIB)/lib/gaisler/memctrl/sdctrl.in.help \ -$(GRLIB)/lib/gaisler/memctrl/srctrl.in.help \ -$(GRLIB)/lib/gaisler/net/edcl.in.help \ -$(GRLIB)/lib/gaisler/ddr/ddr2sp.in.help \ -$(GRLIB)/lib/gaisler/ddr/ddrsp.in.help \ +HELPDEP = $(GRLIB)/lib/gaisler/leon3/irqmp.in.help \ +$(GRLIB)/lib/gaisler/leon3/leon3.in.help \ +$(GRLIB)/lib/gaisler/i2c/i2cslv.in.help \ +$(GRLIB)/lib/gaisler/i2c/i2c.in.help \ +$(GRLIB)/lib/gaisler/i2c/i2c2ahb.in.help \ $(GRLIB)/lib/gaisler/can/grcan.in.help \ $(GRLIB)/lib/gaisler/can/can_mc.in.help \ $(GRLIB)/lib/gaisler/can/can_oc.in.help \ -$(GRLIB)/lib/gaisler/gr1553b/gr1553b_2.in.help \ -$(GRLIB)/lib/gaisler/gr1553b/gr1553b.in.help \ $(GRLIB)/lib/gaisler/pci/pcitrace.in.help \ $(GRLIB)/lib/gaisler/pci/pci.in.help \ -$(GRLIB)/lib/gaisler/i2c/i2c.in.help \ -$(GRLIB)/lib/gaisler/i2c/i2cslv.in.help \ -$(GRLIB)/lib/gaisler/i2c/i2c2ahb.in.help \ -$(GRLIB)/lib/gaisler/ata/ata.in.help \ +$(GRLIB)/lib/gaisler/net/edcl.in.help \ $(GRLIB)/lib/gaisler/spi/spimctrl.in.help \ $(GRLIB)/lib/gaisler/spi/spi2ahb.in.help \ $(GRLIB)/lib/gaisler/spi/spictrl.in.help \ +$(GRLIB)/lib/gaisler/greth/greth.in.help \ +$(GRLIB)/lib/gaisler/greth/greth2.in.help \ $(GRLIB)/lib/gaisler/irqmp/irqmp.in.help \ -$(GRLIB)/lib/gaisler/misc/gracectrl.in.help \ -$(GRLIB)/lib/gaisler/misc/ahbram.in.help \ +$(GRLIB)/lib/gaisler/gr1553b/gr1553b_2.in.help \ +$(GRLIB)/lib/gaisler/gr1553b/gr1553b.in.help \ +$(GRLIB)/lib/gaisler/leon3ftv2/leon3net.in.help \ +$(GRLIB)/lib/gaisler/uart/uart2.in.help \ +$(GRLIB)/lib/gaisler/uart/dcom.in.help \ +$(GRLIB)/lib/gaisler/uart/uart1.in.help \ $(GRLIB)/lib/gaisler/misc/gptimer.in.help \ -$(GRLIB)/lib/gaisler/misc/grgpio2.in.help \ +$(GRLIB)/lib/gaisler/misc/ps2vga.in.help \ $(GRLIB)/lib/gaisler/misc/svgactrl.in.help \ +$(GRLIB)/lib/gaisler/misc/grsysmon.in.help \ +$(GRLIB)/lib/gaisler/misc/ahbstat.in.help \ $(GRLIB)/lib/gaisler/misc/ahbrom.in.help \ $(GRLIB)/lib/gaisler/misc/grgpio.in.help \ -$(GRLIB)/lib/gaisler/misc/ahbstat.in.help \ -$(GRLIB)/lib/gaisler/misc/ps2vga.in.help \ -$(GRLIB)/lib/gaisler/misc/grsysmon.in.help \ +$(GRLIB)/lib/gaisler/misc/gracectrl.in.help \ +$(GRLIB)/lib/gaisler/misc/grgpio2.in.help \ $(GRLIB)/lib/gaisler/misc/ps2.in.help \ +$(GRLIB)/lib/gaisler/misc/ahbram.in.help \ +$(GRLIB)/lib/gaisler/usb/grusbhc.in.help \ +$(GRLIB)/lib/gaisler/usb/grusb_dcl.in.help \ +$(GRLIB)/lib/gaisler/usb/grusbdc.in.help \ +$(GRLIB)/lib/gaisler/spacewire/spacewire.in.help \ +$(GRLIB)/lib/gaisler/spacewire/router.in.help \ +$(GRLIB)/lib/gaisler/ddr/ddr2sp.in.help \ +$(GRLIB)/lib/gaisler/ddr/ddrsp.in.help \ +$(GRLIB)/lib/gaisler/memctrl/ssrctrl.in.help \ +$(GRLIB)/lib/gaisler/memctrl/srctrl.in.help \ +$(GRLIB)/lib/gaisler/memctrl/sdctrl.in.help \ +$(GRLIB)/lib/gaisler/jtag/jtag2.in.help \ $(GRLIB)/lib/gaisler/jtag/jtag.in.help \ $(GRLIB)/lib/gaisler/jtag/bscan.in.help \ -$(GRLIB)/lib/gaisler/jtag/jtag2.in.help \ -$(GRLIB)/lib/gaisler/leon3/irqmp.in.help \ -$(GRLIB)/lib/gaisler/leon3/leon3.in.help \ +$(GRLIB)/lib/esa/pci/pci_arb.in.help \ +$(GRLIB)/lib/esa/memoryctrl/mctrl.in.help \ $(GRLIB)/lib/grlib/amba/amba.in.help \ $(GRLIB)/lib/grlib/util/debug.in.help \ +$(GRLIB)/lib/techmap/clocks/clkgen.in.help \ +$(GRLIB)/lib/techmap/gencomp/tech.in.help \ +$(GRLIB)/lib/techmap/gencomp/clkgen.in.help \ diff --git a/bin/ahbrom.c b/bin/ahbrom.c index 4c7deee4..3e858835 100644 --- a/bin/ahbrom.c +++ b/bin/ahbrom.c @@ -78,7 +78,6 @@ begin\n\ ahbso.hresp <= \"00\"; \n\ ahbso.hsplit <= (others => '0'); \n\ ahbso.hirq <= (others => '0');\n\ - ahbso.hcache <= '1';\n\ ahbso.hconfig <= hconfig;\n\ ahbso.hindex <= hindex;\n\ \n\ diff --git a/bin/gpl.sed b/bin/gpl.sed index 08b962a9..2bf32d2d 100644 --- a/bin/gpl.sed +++ b/bin/gpl.sed @@ -1,7 +1,7 @@ s/--GAISLER_LICENSE/------------------------------------------------------------------------------\ -- This file is a part of the GRLIB VHDL IP LIBRARY\ -- Copyright (C) 2003 - 2008, Gaisler Research\ --- Copyright (C) 2008 - 2012, Aeroflex Gaisler\ +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler\ --\ -- This program is free software\; you can redistribute it and\/or modify\ -- it under the terms of the GNU General Public License as published by\ diff --git a/bin/gr.sed b/bin/gr.sed index 80a6e86a..b05f28f5 100644 --- a/bin/gr.sed +++ b/bin/gr.sed @@ -1,6 +1,6 @@ s/--GAISLER_LICENSE/------------------------------------------------------------------------------\ -- This file is a part of the GRLIB VHDL IP LIBRARY\ --- Copyright (C) 2012, Aeroflex Gaisler AB - all rights reserved.\ +-- Copyright (C) 2013, Aeroflex Gaisler AB - all rights reserved.\ --\ -- ANY USE OR REDISTRIBUTION IN PART OR IN WHOLE MUST BE HANDLED IN \ -- ACCORDANCE WITH THE GAISLER LICENSE AGREEMENT AND MUST BE APPROVED \ diff --git a/bin/make.ise b/bin/make.ise deleted file mode 100644 index 226adc0a..00000000 --- a/bin/make.ise +++ /dev/null @@ -1,29 +0,0 @@ -####################################################### -# ISE targets for GRLIB2 Template Designs -# Author: Magnus Sjalander -# Based on targets from GRLIB's bin/Makefile -####################################################### -.PHONY: ise-synp ise-prog-fpga -ISEDIR = ./work/ise -VPATH = $(ISEDIR):./work - -ise-synp: synplify - @mkdir -p $(ISEDIR) - @cd $(ISEDIR) && rm -f $(TOP).ngd $(TOP).ncd \ - && echo edif2ngd ../synplify/$(TOP).edf \ - && edif2ngd ../synplify/$(TOP).edf \ - && echo ngdbuild $(TOP).ngo -aul -uc ../../$(UCF) -p $(DEVICE) \ - && ngdbuild $(TOP).ngo -aul -uc ../../$(UCF) -p $(DEVICE) \ - && echo map -pr b -ol $(EFFORT) -p $(DEVICE) $(TOP) $(ISEMAPOPT) \ - && map -pr b -ol $(EFFORT) -p $(DEVICE) $(TOP) $(ISEMAPOPT) \ - && echo par -ol $(EFFORT) -pl $(EFFORT) -w $(TOP) $(TOP).ncd \ - && par -ol $(EFFORT) -pl $(EFFORT) -w $(TOP) $(TOP).ncd \ - && echo trce -v 25 $(TOP).ncd $(TOP).pcf \ - && trce -v 25 $(TOP).ncd $(TOP).pcf \ - && echo bitgen $(TOP) -d -m -w -f $(BITGEN) \ - && bitgen $(TOP) -d -m -w -f $(BITGEN) - -ise-prog-fpga: - cp $(ISEDIR)/$(TOP).bit $(ISEDIR)/$(BOARD).bit - cp $(ISEDIR)/$(TOP).msk $(ISEDIR)/$(BOARD).msk - cd $(ISEDIR) && impact -batch ../../$(GRLIB2)/boards/$(BOARD)/fpga.cmd diff --git a/bin/make.template b/bin/make.template deleted file mode 100644 index eee21d9c..00000000 --- a/bin/make.template +++ /dev/null @@ -1,43 +0,0 @@ -####################################################### -# GRLIB2 Template Design specific targets -# Author: Magnus Sjalander -####################################################### -.PHONY: clean config -VPATH = ./work/ - -# Get all SYN and SIM files this template design depends on --include ./work/file.deps - - -ifeq ("$(XCONFIG)","true") -CONF-DEP = cfg/config.vhd.h cfg/.config -CONF-TOOL = cpp -P -DGRLIB_PATH=$(GRLIB2) ./sw/xconfig/config.vhd.in > ./work/config.vhd -else -CONF-DEP = cfg/.config.xml -CONF-TOOL = java -classpath $(GRLIB2)/bin:$(GRLIB2)/bin/config-tool Config writeVHDLconfiguration -endif - -fileset.xml: $(GRLIB2)/work/grlib2.xml - @mkdir -p work - @java -classpath $(GRLIB2)/bin:$(GRLIB2)/bin/config-tool Grlib2 $(GRLIB2) $(CFG) - -work/config.vhd: $(CONF-DEP) - @mkdir -p work - @$(CONF-TOOL) - -cfg/.config.xml: $(GRLIB2)/work/grlib2.xml - @mkdir -p work - @java -classpath $(GRLIB2)/bin:$(GRLIB2)/bin/config-tool Config $(GRLIB2) $(CFG) - -cfg/config.vhd.h: - @make xconfig - -config: $(GRLIB2)/work/grlib2.xml - @mkdir -p work - @java -classpath $(GRLIB2)/bin:$(GRLIB2)/bin/config-tool Config $(GRLIB2) $(CFG) - @java -classpath $(GRLIB2)/bin:$(GRLIB2)/bin/config-tool Config writeVHDLconfiguration - -clean: - @rm -rf work - -DEVICE=$(PART)-$(PACKAGE)$(SPEED) diff --git a/bin/xstverilog b/bin/xstverilog deleted file mode 100755 index 827a2b0f..00000000 --- a/bin/xstverilog +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -echo elaborate -ifmt verilog -ifn $1 diff --git a/bin/xstvhdl b/bin/xstvhdl deleted file mode 100755 index 2bd5a0fa..00000000 --- a/bin/xstvhdl +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -echo elaborate -ifmt vhdl -ifn $1 diff --git a/boards/arrow-bemicro-sdk/leon3mp.qsf b/boards/arrow-bemicro-sdk/leon3mp.qsf index 7929407b..1a50e1da 100644 --- a/boards/arrow-bemicro-sdk/leon3mp.qsf +++ b/boards/arrow-bemicro-sdk/leon3mp.qsf @@ -5,6 +5,12 @@ set_global_assignment -name DEVICE_FILTER_PIN_COUNT 256 set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 7 set_global_assignment -name NUM_PARALLEL_PROCESSORS 2 set_global_assignment -name SDC_FILE quartus.sdc +set_global_assignment -name CYCLONEII_RESERVE_NCEO_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_FLASH_NCE_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_DATA0_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO" +set_global_assignment -name RESERVE_DCLK_AFTER_CONFIGURATION "USE AS REGULAR IO" + # PIN LOCATION ASSIGNMENTS set_location_assignment PIN_T4 -to TEMP_SC @@ -148,6 +154,11 @@ set_location_assignment PIN_M10 -to P[29] set_location_assignment PIN_K15 -to P[58] set_location_assignment PIN_J14 -to P[59] set_location_assignment PIN_T7 -to P[60] +set_location_assignment PIN_H2 -to EPCS_DATA +set_location_assignment PIN_H1 -to EPCS_DCLK +set_location_assignment PIN_D2 -to EPCS_CSn +set_location_assignment PIN_C1 -to EPCS_ASDI + # PIN I/O STANDARDS set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL" diff --git a/boards/digilent-zedboard-xc7z020/Makefile.inc b/boards/digilent-zedboard-xc7z020/Makefile.inc new file mode 100644 index 00000000..3ca8f5d3 --- /dev/null +++ b/boards/digilent-zedboard-xc7z020/Makefile.inc @@ -0,0 +1,28 @@ +# FPGA and Dev Board used in Design +TECHNOLOGY=zynq7000 +PART=XC7Z020 +PACKAGE=CLG484 +PROTOBOARD=zedBoard +SPEED=1 + +# Set Vivado Synthesis Flow and Strategy used for build +# Choose 'XST 14' or 'Vivado Synthesis 2012' +PLANAHEAD_SYNTH_FLOW="XST 14" + +# For 'Vivado Synthesis 2012' +# 1. 'Vivado Synthesis Defaults' +# For 'XST 14' +# 1. 'TimingWithIOBPacking' +# 2. 'TimingWithoutIOBPacking' +# 3. 'AreaReduction' +# 4. 'PowerOptimization' +# 5. 'XST Defaults' +PLANAHEAD_SYNTH_STRATEGY="XST Defaults" + +# Set Vivado Implementation strategy +# 1. HighEffort +# 2. HighEffortPhySynth +# 3. 'Vivado Implemnation Defaults' +# 4. LowEffort +# 5. QuickEffort +PLANAHEAD_IMPL_STRATEGY="ParHighEffort" diff --git a/boards/digilent-zedboard-xc7z020/digilent-zedboard-xc7z020.ucf b/boards/digilent-zedboard-xc7z020/digilent-zedboard-xc7z020.ucf new file mode 100644 index 00000000..4b695292 --- /dev/null +++ b/boards/digilent-zedboard-xc7z020/digilent-zedboard-xc7z020.ucf @@ -0,0 +1,23 @@ + +NET led[0] LOC = T22 | IOSTANDARD=LVCMOS33; # "LD0" +NET led[1] LOC = T21 | IOSTANDARD=LVCMOS33; # "LD1" +NET led[2] LOC = U22 | IOSTANDARD=LVCMOS33; # "LD2" +NET led[3] LOC = U21 | IOSTANDARD=LVCMOS33; # "LD3" +NET led[4] LOC = V22 | IOSTANDARD=LVCMOS33; # "LD4" +NET led[5] LOC = W22 | IOSTANDARD=LVCMOS33; # "LD5" +NET led[6] LOC = U19 | IOSTANDARD=LVCMOS33; # "LD6" +NET led[7] LOC = U14 | IOSTANDARD=LVCMOS33; # "LD7" + +NET button[0] LOC = R16 | IOSTANDARD=LVCMOS18; # "BTND" +NET button[1] LOC = N15 | IOSTANDARD=LVCMOS18; # "BTNL" +NET button[2] LOC = R18 | IOSTANDARD=LVCMOS18; # "BTNR" +NET button[3] LOC = T18 | IOSTANDARD=LVCMOS18; # "BTNU" + +NET switch[0] LOC = F22 | IOSTANDARD=LVCMOS18; # "SW0" +NET switch[1] LOC = G22 | IOSTANDARD=LVCMOS18; # "SW1" +NET switch[2] LOC = H22 | IOSTANDARD=LVCMOS18; # "SW2" +NET switch[3] LOC = F21 | IOSTANDARD=LVCMOS18; # "SW3" +NET switch[4] LOC = H19 | IOSTANDARD=LVCMOS18; # "SW4" +NET switch[5] LOC = H18 | IOSTANDARD=LVCMOS18; # "SW5" +NET switch[6] LOC = H17 | IOSTANDARD=LVCMOS18; # "SW6" +NET switch[7] LOC = M15 | IOSTANDARD=LVCMOS18; # "SW7" diff --git a/boards/digilent-zedboard-xc7z020/readme.txt b/boards/digilent-zedboard-xc7z020/readme.txt new file mode 100644 index 00000000..71f2b7fe --- /dev/null +++ b/boards/digilent-zedboard-xc7z020/readme.txt @@ -0,0 +1,3 @@ +This directory contains fpga pinout and xilinx coregen ip setup files used by the reference designs. + +For more information please visit www.zedboard.org and www.xilinx.com \ No newline at end of file diff --git a/boards/ge-hpe-midi-ep2s180/Makefile.inc b/boards/ge-hpe-midi-ep2s180/Makefile.inc deleted file mode 100644 index 4efa86be..00000000 --- a/boards/ge-hpe-midi-ep2s180/Makefile.inc +++ /dev/null @@ -1,27 +0,0 @@ -# to be included in design makefile -#CONFDEVICE=EPM1270 - -TECHNOLOGY= STRATIXII -PART= EP2S180 -PACKAGE= FC1020 -SPEED=-3 -SYNFREQ=60 -CONFDEVICE=EPCS64 - -ALTERA_PINGEN=altera_pingen.awk -BOARD_DIR=$(GRLIB)/boards/$(BOARD) - -$(BOARD_DIR)/leon_pinning.csv: $(BOARD_DIR)/LEON-MIDI-Vers1_1-AS2-Vers1_1-Pinning.csv - grep -v "Pin;Port;NetName" $< > $@ - -$(BOARD_DIR)/leon_pinning.txt: $(BOARD_DIR)/leon_pinning.csv - $(ALTERA_PINGEN) FS=";" $< > $@ - -board-pinning-clean: - -rm -f $(BOARD_DIR)/leon_pinning.csv \ - $(BOARD_DIR)/leon_pinning.txt - -board-pinning-check: $(BOARD_DIR)/leon_pinning.txt - @echo - @echo "Searching for pin double assignments..." - @for i in `sort --key=1 --field-separator=";" $< | cut --fields="1-1" --delimiter=";" | uniq --repeated`; do grep $$i $<; done diff --git a/boards/ge-hpe-midi-ep2s180/default.sdc b/boards/ge-hpe-midi-ep2s180/default.sdc deleted file mode 100644 index c1ca5e07..00000000 --- a/boards/ge-hpe-midi-ep2s180/default.sdc +++ /dev/null @@ -1,52 +0,0 @@ -# Synplicity, Inc. constraint file -# /home/jiri/ibm/vhdl/grlib/boards/gr-pci-xc2v/default.sdc -# Written on Fri Jul 30 18:56:40 2004 -# by Synplify Pro, 7.6 Scope Editor - -# -# Clocks -# -define_clock -name -disable {clk} -freq 100.000 -clockgroup default_clkgroup -define_clock -name -disable {pci_clk} -freq 40.000 -clockgroup pci_clkgroup - -# -# Clock to Clock -# - -# -# Inputs/Outputs -# -define_output_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {clk:r} -define_input_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {clk:r} -define_output_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {pci_clk:r} -define_input_delay -disable -default 18.00 -improve 0.00 -route 0.00 -ref {pci_clk:r} -define_input_delay -disable {pci_rst} 0.00 -improve 0.00 -route 0.00 -ref {pci_clk:r} - -# -# Registers -# - -# -# Multicycle Path -# - -# -# False Path -# - -# -# Delay Path -# - -# -# Attributes -# -define_global_attribute syn_useioff {1} - -# -# Compile Points -# - -# -# Other Constraints -# diff --git a/boards/ge-hpe-midi-ep2s180/leon3hpe.qsf b/boards/ge-hpe-midi-ep2s180/leon3hpe.qsf deleted file mode 100644 index 121afbb1..00000000 --- a/boards/ge-hpe-midi-ep2s180/leon3hpe.qsf +++ /dev/null @@ -1,688 +0,0 @@ -# Pin & Location Assignments -# ========================== -set_location_assignment PIN_AK11 -to address[0] -comment CB3_DATA6CB2_A0 -set_location_assignment PIN_AH8 -to address[1] -comment CB3_DATA0CB2_A1 -set_location_assignment PIN_J15 -to address[10] -comment MEMORY_A8 -set_location_assignment PIN_K13 -to address[11] -comment MEMORY_A9 -set_location_assignment PIN_D10 -to address[12] -comment MEMORY_A10 -set_location_assignment PIN_K15 -to address[13] -comment MEMORY_A11 -set_location_assignment PIN_H14 -to address[14] -comment MEMORY_A12 -set_location_assignment PIN_J12 -to address[15] -comment MEMORY_A13 -set_location_assignment PIN_J14 -to address[16] -comment MEMORY_A14 -set_location_assignment PIN_K12 -to address[17] -comment MEMORY_A15 -set_location_assignment PIN_E8 -to address[18] -comment MEMORY_A16 -set_location_assignment PIN_G13 -to address[19] -comment MEMORY_A17 -set_location_assignment PIN_E13 -to address[2] -comment MEMORY_A0 -set_location_assignment PIN_H13 -to address[20] -comment MEMORY_A18 -set_location_assignment PIN_L12 -to address[21] -comment MEMORY_A19 -set_location_assignment PIN_E7 -to address[22] -comment MEMORY_A20 -set_location_assignment PIN_G12 -to address[23] -comment MEMORY_A21 -set_location_assignment PIN_H12 -to address[24] -comment MEMORY_A22 -set_location_assignment PIN_AJ7 -to address[25] -comment CB3_DATA1CB2_A10 -set_location_assignment PIN_P2 -to address[26] -comment CB4_DATA26CB1_RX_01_N -set_location_assignment PIN_P1 -to address[27] -comment CB4_DATA27CB1_RX_01_P -set_location_assignment PIN_L17 -to address[3] -comment MEMORY_A1 -set_location_assignment PIN_K17 -to address[4] -comment MEMORY_A2 -set_location_assignment PIN_L13 -to address[5] -comment MEMORY_A3 -set_location_assignment PIN_L16 -to address[6] -comment MEMORY_A4 -set_location_assignment PIN_J13 -to address[7] -comment MEMORY_A5 -set_location_assignment PIN_D11 -to address[8] -comment MEMORY_A6 -set_location_assignment PIN_K16 -to address[9] -comment MEMORY_A7 -set_location_assignment PIN_Y5 -to can_rxd -comment CAN_RXD -set_location_assignment PIN_Y6 -to can_stb -comment CAN_STB -set_location_assignment PIN_AA8 -to can_txd -comment CAN_TXD -#set_location_assignment PIN_T3 -to clk -comment DUT1_CLK100M -set_location_assignment PIN_A17 -to clk -comment DUT1_CLK14P -set_location_assignment PIN_A12 -to data[0] -comment MEMORY_DQ0 -set_location_assignment PIN_B13 -to data[1] -comment MEMORY_DQ1 -set_location_assignment PIN_B9 -to data[10] -comment MEMORY_DQ10 -set_location_assignment PIN_C10 -to data[11] -comment MEMORY_DQ11 -set_location_assignment PIN_A9 -to data[12] -comment MEMORY_DQ12 -set_location_assignment PIN_F10 -to data[13] -comment MEMORY_DQ13 -set_location_assignment PIN_B8 -to data[14] -comment MEMORY_DQ14 -set_location_assignment PIN_C9 -to data[15] -comment MEMORY_DQ15 -set_location_assignment PIN_A8 -to data[16] -comment MEMORY_DQ16 -set_location_assignment PIN_D8 -to data[17] -comment MEMORY_DQ17 -set_location_assignment PIN_B7 -to data[18] -comment MEMORY_DQ18 -set_location_assignment PIN_C7 -to data[19] -comment MEMORY_DQ19 -set_location_assignment PIN_B11 -to data[2] -comment MEMORY_DQ2 -set_location_assignment PIN_A7 -to data[20] -comment MEMORY_DQ20 -set_location_assignment PIN_D7 -to data[21] -comment MEMORY_DQ21 -set_location_assignment PIN_B6 -to data[22] -comment MEMORY_DQ22 -set_location_assignment PIN_C6 -to data[23] -comment MEMORY_DQ23 -set_location_assignment PIN_A6 -to data[24] -comment MEMORY_DQ24 -set_location_assignment PIN_D6 -to data[25] -comment MEMORY_DQ25 -set_location_assignment PIN_B5 -to data[26] -comment MEMORY_DQ26 -set_location_assignment PIN_E6 -to data[27] -comment MEMORY_DQ27 -set_location_assignment PIN_A5 -to data[28] -comment MEMORY_DQ28 -set_location_assignment PIN_C5 -to data[29] -comment MEMORY_DQ29 -set_location_assignment PIN_D13 -to data[3] -comment MEMORY_DQ3 -set_location_assignment PIN_C4 -to data[30] -comment MEMORY_DQ30 -set_location_assignment PIN_E5 -to data[31] -comment MEMORY_DQ31 -set_location_assignment PIN_A11 -to data[4] -comment MEMORY_DQ4 -set_location_assignment PIN_F12 -to data[5] -comment MEMORY_DQ5 -set_location_assignment PIN_B10 -to data[6] -comment MEMORY_DQ6 -set_location_assignment PIN_C11 -to data[7] -comment MEMORY_DQ7 -set_location_assignment PIN_A10 -to data[8] -comment MEMORY_DQ8 -set_location_assignment PIN_E11 -to data[9] -comment MEMORY_DQ9 -set_location_assignment PIN_M2 -to dsuactn -comment CB4_DATA30CB1_RX_02_N -set_location_assignment PIN_E26 -to dsubre -comment TST_STEP -set_location_assignment PIN_AB3 -to dsurx -comment RS0_RXD_LVTTL -set_location_assignment PIN_AB9 -to dsutx -comment RS0_TXD_LVTTL -set_location_assignment PIN_W31 -to dsw[0] -comment DSW0 -set_location_assignment PIN_Y31 -to dsw[1] -comment DSW1 -set_location_assignment PIN_AA32 -to dsw[2] -comment DSW2 -set_location_assignment PIN_AA31 -to dsw[3] -comment DSW3 -set_location_assignment PIN_AC32 -to dsw[4] -comment DSW4 -set_location_assignment PIN_AC31 -to dsw[5] -comment DSW5 -set_location_assignment PIN_AD32 -to dsw[6] -comment DSW6 -set_location_assignment PIN_AD31 -to dsw[7] -comment DSW7 -set_location_assignment PIN_AH2 -to emdc -comment ETH_MDC -set_location_assignment PIN_AJ1 -to emdio -comment ETH_MDIO -set_location_assignment PIN_M1 -to errorn -comment CB4_DATA31CB1_RX_02_P -set_location_assignment PIN_E16 -to erx_clk -comment ETH_RXCLK -set_location_assignment PIN_U11 -to erx_col -comment ETH_COL -set_location_assignment PIN_AG2 -to erx_crs -comment ETH_CRS -set_location_assignment PIN_AG1 -to erx_dv -comment ETH_RXDV -set_location_assignment PIN_AB1 -to erx_er -comment ETH_RXER -set_location_assignment PIN_AE2 -to erxd[0] -comment ETH_RXD0 -set_location_assignment PIN_AD2 -to erxd[1] -comment ETH_RXD1 -set_location_assignment PIN_AD1 -to erxd[2] -comment ETH_RXD2 -set_location_assignment PIN_AC2 -to erxd[3] -comment ETH_RXD3 -set_location_assignment PIN_A16 -to etx_clk -comment ETH_TXCLK -set_location_assignment PIN_AF1 -to etx_en -comment ETH_TXEN -set_location_assignment PIN_Y3 -to etx_er -comment ETH_TXER -set_location_assignment PIN_AC1 -to etxd[0] -comment ETH_TXD0 -set_location_assignment PIN_AB2 -to etxd[1] -comment ETH_TXD1 -set_location_assignment PIN_AA2 -to etxd[2] -comment ETH_TXD2 -set_location_assignment PIN_AA1 -to etxd[3] -comment ETH_TXD3 -set_location_assignment PIN_L2 -to iosn -comment CB4_DATA10CB1_RX_03_N -set_location_assignment PIN_A23 -to lcd_enable -comment LCD_ENABLE -set_location_assignment PIN_B23 -to lcd_regsel -comment LCD_REGSEL -set_location_assignment PIN_D25 -to lcd_rw -comment LCD_RW -set_location_assignment PIN_B14 -to oen -comment "MEMORY_OE#" -set_location_assignment PIN_B15 -to ps2_clk[0] -comment PS2_KBCLK -set_location_assignment PIN_C16 -to ps2_clk[1] -comment PS2_MCLK -set_location_assignment PIN_C15 -to ps2_data[0] -comment PS2_KBDAT -set_location_assignment PIN_D16 -to ps2_data[1] -comment PS2_MDAT -set_location_assignment PIN_L1 -to ramoen[0] -comment CB4_DATA32CB1_RX_03_P -set_location_assignment PIN_K2 -to ramoen[1] -comment CB4_DATA33CB1_RX_04_N -set_location_assignment PIN_K1 -to ramoen[2] -comment CB4_DATA34CB1_RX_04_P -set_location_assignment PIN_J2 -to ramoen[3] -comment CB4_DATA35CB1_RX_05_N -set_location_assignment PIN_J1 -to ramoen[4] -comment CB4_DATA36CB1_RX_05_P -set_location_assignment PIN_B20 -to ramsn[0] -comment "SRAM_CE#" -set_location_assignment PIN_H2 -to ramsn[1] -comment CB4_DATA92CB1_RX_06_N -set_location_assignment PIN_H1 -to ramsn[2] -comment CB4_DATA93CB1_RX_06_P -set_location_assignment PIN_G2 -to ramsn[3] -comment CB4_DATA94CB1_RX_07_N -set_location_assignment PIN_G1 -to ramsn[4] -comment CB4_DATA95CB1_RX_07_P -set_location_assignment PIN_C13 -to rben[0] -comment "SRAM_BE0#" -set_location_assignment PIN_F14 -to rben[1] -comment "SRAM_BE1#" -set_location_assignment PIN_B12 -to rben[2] -comment "SRAM_BE2#" -set_location_assignment PIN_F13 -to rben[3] -comment "SRAM_BE3#" -set_location_assignment PIN_K4 -to read -comment CB4_DATA96CB1_RX_06_N -set_location_assignment PIN_U28 -to resetn -comment "USER_RESET#" -set_location_assignment PIN_V30 -to resoutn -comment "HPE_RESOUT#" -set_location_assignment PIN_C21 -to romsn[0] -comment "FLASH_CE#" -set_location_assignment PIN_K3 -to romsn[1] -comment CB4_DATA6CB1_RX_08_P -set_location_assignment PIN_J4 -to rwen[0] -comment CB4_DATA7CB1_RX_09_N -set_location_assignment PIN_J3 -to rwen[1] -comment CB4_DATA8CB1_RX_09_P -set_location_assignment PIN_G4 -to rwen[2] -comment CB4_DATA40CB1_RX_10_N -set_location_assignment PIN_G3 -to rwen[3] -comment CB4_DATA41CB1_RX_10_P -set_location_assignment PIN_AA3 -to rxd1 -comment RS1_RXD_LVTTL -set_location_assignment PIN_D32 -to sevensegment[0] -comment "HUMI_A#" -set_location_assignment PIN_F30 -to sevensegment[1] -comment "HUMI_B#" -set_location_assignment PIN_B29 -to sevensegment[2] -comment "HUMI_C#" -set_location_assignment PIN_D31 -to sevensegment[3] -comment "HUMI_D#" -set_location_assignment PIN_A29 -to sevensegment[4] -comment "HUMI_E#" -set_location_assignment PIN_F29 -to sevensegment[5] -comment "HUMI_F#" -set_location_assignment PIN_A28 -to sevensegment[6] -comment "HUMI_G#" -set_location_assignment PIN_B28 -to sevensegment[7] -comment "HUMI_DP#" -set_location_assignment PIN_B27 -to sevensegment[8] -comment "HUMI_SEG0#" -set_location_assignment PIN_E30 -to sevensegment[9] -comment "HUMI_SEG1#" -set_location_assignment PIN_B24 -to tst_col[0] -comment TST_COL0 -set_location_assignment PIN_E28 -to tst_col[1] -comment TST_COL1 -set_location_assignment PIN_A26 -to tst_col[2] -comment TST_COL2 -set_location_assignment PIN_AE32 -to tst_row[0] -comment TST_ROW0 -set_location_assignment PIN_AE31 -to tst_row[1] -comment TST_ROW1 -set_location_assignment PIN_AF32 -to tst_row[2] -comment TST_ROW2 -set_location_assignment PIN_AF31 -to tst_row[3] -comment TST_ROW3 -set_location_assignment PIN_W9 -to txd1 -comment RS1_TXD_LVTTL -set_location_assignment PIN_D19 -to writen -comment "MEMORY_WE#" -set_location_assignment PIN_Y11 -to led_enable -comment "HUMI_LED#" -set_location_assignment PIN_T32 -to ac97_bit_clk -comment AC97_BITCLK -set_location_assignment PIN_AD24 -to ac97_sync -comment AC97_SYNC -set_location_assignment PIN_AD25 -to ac97_sdata_out -comment AC97_SDATA_OUT -set_location_assignment PIN_AC8 -to ac97_sdata_in -comment AC97_SDATA_IN -set_location_assignment PIN_AJ18 -to ac97_ext_clk -comment AC97_EXT_CLK -set_location_assignment PIN_AC7 -to ac97_resetn -comment "AC97_RESET#" -set_location_assignment PIN_AK8 -to ac97_dbg_bit_clk -comment CB3_DATA41CB2_A11 -set_location_assignment PIN_AK12 -to ac97_dbg_sync -comment CB3_DATA40CB2_A12 -set_location_assignment PIN_AJ6 -to ac97_dbg_sdata_out -comment CB3_DATA39CB2_A13 -set_location_assignment PIN_AG9 -to ac97_dbg_sdata_in -comment CB3_DATA38CB2_A2 -set_location_assignment PIN_AG11 -to ac97_dbg_ext_clk -comment CB3_DATA37CB2_A3 -set_location_assignment PIN_AF12 -to ac97_dbg_resetn -comment CB3_DATA36CB2_A4 -set_location_assignment PIN_AK7 -to ac97_dbg_int -comment CB3_DATA35CB2_A5 -set_location_assignment PIN_AG8 -to ac97_dbg_int2 -comment CB3_DATA34CB2_A6 -set_location_assignment PIN_M25 -to vga_clk -comment VGA_CLK -set_location_assignment PIN_N23 -to vga_syncn -comment "VGA_SYNC#" -set_location_assignment PIN_K26 -to vga_blankn -comment "VGA_BLANK#" -set_location_assignment PIN_L24 -to vga_vsync -comment VGA_VSYNC -set_location_assignment PIN_K29 -to vga_hsync -comment VGA_HSYNC -set_location_assignment PIN_R27 -to vga_rd[7] -comment VGA_RD7 -set_location_assignment PIN_R26 -to vga_rd[6] -comment VGA_RD6 -set_location_assignment PIN_R25 -to vga_rd[5] -comment VGA_RD5 -set_location_assignment PIN_P29 -to vga_rd[4] -comment VGA_RD4 -set_location_assignment PIN_T27 -to vga_rd[3] -comment VGA_RD3 -set_location_assignment PIN_R28 -to vga_rd[2] -comment VGA_RD2 -set_location_assignment PIN_T28 -to vga_rd[1] -comment VGA_RD1 -set_location_assignment PIN_R29 -to vga_rd[0] -comment VGA_RD0 -set_location_assignment PIN_P24 -to vga_gr[7] -comment VGA_GR7 -set_location_assignment PIN_M30 -to vga_gr[6] -comment VGA_GR6 -set_location_assignment PIN_P25 -to vga_gr[5] -comment VGA_GR5 -set_location_assignment PIN_P26 -to vga_gr[4] -comment VGA_GR4 -set_location_assignment PIN_R23 -to vga_gr[3] -comment VGA_GR3 -set_location_assignment PIN_P27 -to vga_gr[2] -comment VGA_GR2 -set_location_assignment PIN_R24 -to vga_gr[1] -comment VGA_GR1 -set_location_assignment PIN_P28 -to vga_gr[0] -comment VGA_GR0 -set_location_assignment PIN_M24 -to vga_bl[7] -comment VGA_BL7 -set_location_assignment PIN_M26 -to vga_bl[6] -comment VGA_BL6 -set_location_assignment PIN_N24 -to vga_bl[5] -comment VGA_BL5 -set_location_assignment PIN_N26 -to vga_bl[4] -comment VGA_BL4 -set_location_assignment PIN_R22 -to vga_bl[3] -comment VGA_BL3 -set_location_assignment PIN_L30 -to vga_bl[2] -comment VGA_BL2 -set_location_assignment PIN_N25 -to vga_bl[1] -comment VGA_BL1 -set_location_assignment PIN_N27 -to vga_bl[0] -comment VGA_BL0 -set_location_assignment PIN_G21 -to sdcard_cs -comment SDCARD_CS -set_location_assignment PIN_H20 -to sdcard_di -comment SDCARD_DI -set_location_assignment PIN_D21 -to sdcard_sclk -comment SDCARD_SCLK -set_location_assignment PIN_K19 -to sdcard_do -comment SDCARD_DO -set_location_assignment PIN_U32 -to usb_clkout -comment USBD_CLKOUT -set_location_assignment PIN_L31 -to usb_d[15] -comment USBD_D15 -set_location_assignment PIN_K32 -to usb_d[14] -comment USBD_D14 -set_location_assignment PIN_M27 -to usb_d[13] -comment USBD_D13 -set_location_assignment PIN_L32 -to usb_d[12] -comment USBD_D12 -set_location_assignment PIN_M32 -to usb_d[11] -comment USBD_D11 -set_location_assignment PIN_M31 -to usb_d[10] -comment USBD_D10 -set_location_assignment PIN_M29 -to usb_d[9] -comment USBD_D9 -set_location_assignment PIN_N31 -to usb_d[8] -comment USBD_D8 -set_location_assignment PIN_P32 -to usb_d[7] -comment USBD_D7 -set_location_assignment PIN_P31 -to usb_d[6] -comment USBD_D6 -set_location_assignment PIN_N28 -to usb_d[5] -comment USBD_D5 -set_location_assignment PIN_R30 -to usb_d[4] -comment USBD_D4 -set_location_assignment PIN_N29 -to usb_d[3] -comment USBD_D3 -set_location_assignment PIN_R31 -to usb_d[2] -comment USBD_D2 -set_location_assignment PIN_N30 -to usb_d[1] -comment USBD_D1 -set_location_assignment PIN_T31 -to usb_d[0] -comment USBD_D0 -set_location_assignment PIN_G32 -to usb_linestate[1] -comment USBD_LINESTATE0 -set_location_assignment PIN_F32 -to usb_linestate[0] -comment USBD_LINESTATE1 -set_location_assignment PIN_E32 -to usb_opmode[1] -comment USBD_OPMODE1 -set_location_assignment PIN_J27 -to usb_opmode[0] -comment USBD_OPMODE0 -set_location_assignment PIN_H32 -to usb_rxactive -comment USBD_RXACTIVE -set_location_assignment PIN_J31 -to usb_rxerror -comment USBD_RXERROR -set_location_assignment PIN_L29 -to usb_rxvalid -comment USBD_RXVALID -set_location_assignment PIN_G31 -to usb_suspend -comment USBD_SUSPEND -set_location_assignment PIN_K27 -to usb_termsel -comment USBD_TERMSEL -set_location_assignment PIN_J32 -to usb_txready -comment USBD_TXREADY -set_location_assignment PIN_K31 -to usb_txvalid -comment USBD_TXVALID -set_location_assignment PIN_F31 -to usb_validh -comment USBD_VALIDH -set_location_assignment PIN_H31 -to usb_xcvrsel -comment USBD_XCRSEL -set_location_assignment PIN_E31 -to usb_dbus16 -comment USBD_DBUS16_8 -set_location_assignment PIN_H28 -to usb_unidir -comment USBD_UNIBIDI -set_location_assignment PIN_E25 -to adc_dout -comment ADC_DOUT -set_location_assignment PIN_AE25 -to adc_ain -comment ADC_AIN -set_location_assignment PIN_AD9 -to dac_out -comment DAC_OUT -set_location_assignment PIN_AH3 -to ereset -comment "ETH_RESET#" -set_location_assignment PIN_B26 -to usb_vbus -comment USBD_VBUS -set_location_assignment PIN_A27 -to usb_reset -comment USBD_RESET -set_location_assignment PIN_AA29 -to hpidata[0] -comment USB_GPIO0 -set_location_assignment PIN_W26 -to hpidata[1] -comment USB_GPIO1 -set_location_assignment PIN_AA30 -to hpidata[2] -comment USB_GPIO2 -set_location_assignment PIN_Y27 -to hpidata[3] -comment USB_GPIO3 -set_location_assignment PIN_AB28 -to hpidata[4] -comment USB_GPIO4 -set_location_assignment PIN_Y26 -to hpidata[5] -comment USB_GPIO5 -set_location_assignment PIN_AB29 -to hpidata[6] -comment USB_GPIO6 -set_location_assignment PIN_AA26 -to hpidata[7] -comment USB_GPIO7 -set_location_assignment PIN_AB30 -to hpidata[8] -comment USB_GPIO8 -set_location_assignment PIN_AB27 -to hpidata[9] -comment USB_GPIO9 -set_location_assignment PIN_AC26 -to hpidata[10] -comment USB_GPIO10 -set_location_assignment PIN_AB26 -to hpidata[11] -comment USB_GPIO11 -set_location_assignment PIN_AC27 -to hpidata[12] -comment USB_GPIO12 -set_location_assignment PIN_AC25 -to hpidata[13] -comment USB_GPIO13 -set_location_assignment PIN_AD27 -to hpidata[14] -comment USB_GPIO14 -set_location_assignment PIN_AE28 -to hpidata[15] -comment USB_GPIO15 -set_location_assignment PIN_AG30 -to hpiaddr[0] -comment USB_GPIO19 -set_location_assignment PIN_AF30 -to hpiaddr[1] -comment USB_GPIO20 -set_location_assignment PIN_AD26 -to hpicsn -comment USB_GPIO21 -set_location_assignment PIN_AF29 -to hpiwrn -comment USB_GPIO22 -set_location_assignment PIN_AD8 -to hpiint -comment USB_GPIO24 -set_location_assignment PIN_AE27 -to hpirdn -comment USB_GPIO23 -set_location_assignment PIN_V24 -to exp_datai[0] -comment CB4_DATA51 -set_location_assignment PIN_W27 -to exp_datai[1] -comment CB4_DATA53 -set_location_assignment PIN_AG18 -to exp_datai[2] -comment CB4_DATA55 -set_location_assignment PIN_AD18 -to exp_datai[3] -comment CB4_DATA57 -set_location_assignment PIN_AG15 -to exp_datai[4] -comment CB4_DATA59 -set_location_assignment PIN_AH14 -to exp_datai[5] -comment CB4_DATA61 -set_location_assignment PIN_AG14 -to exp_datai[6] -comment CB4_DATA63 -set_location_assignment PIN_AH29 -to exp_datai[7] -comment CB4_DATA65 -set_location_assignment PIN_AH30 -to exp_datai[8] -comment CB4_DATA67 -set_location_assignment PIN_AH13 -to exp_datai[9] -comment CB4_DATA69 -set_location_assignment PIN_AH32 -to exp_datai[10] -comment CB4_DATA72 -set_location_assignment PIN_AB15 -to exp_datai[11] -comment CB4_DATA73 -set_location_assignment PIN_AC15 -to exp_datai[12] -comment CB4_DATA75 -set_location_assignment PIN_AD19 -to exp_datai[13] -comment CB4_DATA78 -set_location_assignment PIN_AC14 -to exp_datai[14] -comment CB4_DATA79 -set_location_assignment PIN_AD13 -to exp_datai[15] -comment CB4_DATA81 -set_location_assignment PIN_AC13 -to exp_datai[16] -comment CB4_DATA83 -set_location_assignment PIN_AE14 -to exp_datai[17] -comment CB4_DATA85 -set_location_assignment PIN_AL16 -to exp_datai[18] -comment CB4_DATA87 -set_location_assignment PIN_AL14 -to exp_datai[19] -comment CB4_DATA89 -set_location_assignment PIN_AE19 -to exp_datao[0] -comment CB4_DATA52 -set_location_assignment PIN_AC9 -to exp_datao[1] -comment CB4_DATA54 -set_location_assignment PIN_AD10 -to exp_datao[2] -comment CB4_DATA56 -set_location_assignment PIN_AC11 -to exp_datao[3] -comment CB4_DATA58 -set_location_assignment PIN_AD11 -to exp_datao[4] -comment CB4_DATA60 -set_location_assignment PIN_AE12 -to exp_datao[5] -comment CB4_DATA62 -set_location_assignment PIN_AF13 -to exp_datao[6] -comment CB4_DATA64 -set_location_assignment PIN_AF23 -to exp_datao[7] -comment CB4_DATA66 -set_location_assignment PIN_AE23 -to exp_datao[8] -comment CB4_DATA68 -set_location_assignment PIN_AG32 -to exp_datao[9] -comment CB4_DATA70 -set_location_assignment PIN_AC16 -to exp_datao[10] -comment CB4_DATA71 -set_location_assignment PIN_AJ32 -to exp_datao[11] -comment CB4_DATA74 -set_location_assignment PIN_AJ31 -to exp_datao[12] -comment CB4_DATA76 -set_location_assignment PIN_AB14 -to exp_datao[13] -comment CB4_DATA77 -set_location_assignment PIN_AB18 -to exp_datao[14] -comment CB4_DATA80 -set_location_assignment PIN_AB17 -to exp_datao[15] -comment CB4_DATA82 -set_location_assignment PIN_AC17 -to exp_datao[16] -comment CB4_DATA84 -set_location_assignment PIN_AJ14 -to exp_datao[17] -comment CB4_DATA86 -set_location_assignment PIN_AM14 -to exp_datao[18] -comment CB4_DATA88 -set_location_assignment PIN_AL12 -to exp_datao[19] -comment CB4_DATA90 -set_location_assignment PIN_AH24 -to dbg_equal -comment CB4_DATA47CB2_DQ14 -set_location_assignment PIN_E18 -to sdclk[1] -comment t -set_location_assignment PIN_D18 -to sdclk[0] -comment t -set_location_assignment PIN_AE5 -to sdcke[1] -comment t -set_location_assignment PIN_AE6 -to sdcke[0] -comment t -set_location_assignment PIN_AB5 -to sdaddr[12] -comment t -set_location_assignment PIN_AC12 -to sdaddr[11] -comment t -set_location_assignment PIN_AE4 -to sdaddr[10] -comment t -set_location_assignment PIN_AB13 -to sdaddr[9] -comment t -set_location_assignment PIN_AH4 -to sdaddr[8] -comment t -set_location_assignment PIN_AE13 -to sdaddr[7] -comment t -set_location_assignment PIN_AC18 -to sdaddr[6] -comment t -set_location_assignment PIN_AE26 -to sdaddr[5] -comment t -set_location_assignment PIN_AF19 -to sdaddr[4] -comment t -set_location_assignment PIN_AH31 -to sdaddr[3] -comment t -set_location_assignment PIN_AG12 -to sdaddr[2] -comment t -set_location_assignment PIN_AG31 -to sdaddr[1] -comment t -set_location_assignment PIN_AG13 -to sdaddr[0] -comment t -set_location_assignment PIN_C12 -to sddq[63] -comment t -set_location_assignment PIN_D14 -to sddq[62] -comment t -set_location_assignment PIN_F16 -to sddq[61] -comment t -set_location_assignment PIN_F15 -to sddq[60] -comment t -set_location_assignment PIN_C22 -to sddq[59] -comment t -set_location_assignment PIN_E22 -to sddq[58] -comment t -set_location_assignment PIN_F23 -to sddq[57] -comment t -set_location_assignment PIN_D22 -to sddq[56] -comment t -set_location_assignment PIN_C25 -to sddq[55] -comment t -set_location_assignment PIN_C26 -to sddq[54] -comment t -set_location_assignment PIN_D26 -to sddq[53] -comment t -set_location_assignment PIN_D28 -to sddq[52] -comment t -set_location_assignment PIN_C29 -to sddq[51] -comment t -set_location_assignment PIN_G30 -to sddq[50] -comment t -set_location_assignment PIN_H30 -to sddq[49] -comment t -set_location_assignment PIN_H29 -to sddq[48] -comment t -set_location_assignment PIN_K30 -to sddq[47] -comment t -set_location_assignment PIN_AH1 -to sddq[46] -comment t -set_location_assignment PIN_AF2 -to sddq[45] -comment t -set_location_assignment PIN_AE1 -to sddq[44] -comment t -set_location_assignment PIN_U23 -to sddq[43] -comment t -set_location_assignment PIN_U10 -to sddq[42] -comment t -set_location_assignment PIN_AM4 -to sddq[41] -comment t -set_location_assignment PIN_AK4 -to sddq[40] -comment t -set_location_assignment PIN_AL4 -to sddq[39] -comment t -set_location_assignment PIN_V10 -to sddq[38] -comment t -set_location_assignment PIN_AL5 -to sddq[37] -comment t -set_location_assignment PIN_AM5 -to sddq[36] -comment t -set_location_assignment PIN_AL6 -to sddq[35] -comment t -set_location_assignment PIN_AM6 -to sddq[34] -comment t -set_location_assignment PIN_AL7 -to sddq[33] -comment t -set_location_assignment PIN_AM7 -to sddq[32] -comment t -set_location_assignment PIN_AL8 -to sddq[31] -comment t -set_location_assignment PIN_E27 -to sddq[30] -comment t -set_location_assignment PIN_L19 -to sddq[29] -comment t -set_location_assignment PIN_G22 -to sddq[28] -comment t -set_location_assignment PIN_K20 -to sddq[27] -comment t -set_location_assignment PIN_AB10 -to sddq[26] -comment t -set_location_assignment PIN_AD14 -to sddq[25] -comment t -set_location_assignment PIN_AB16 -to sddq[24] -comment t -set_location_assignment PIN_W25 -to sddq[23] -comment t -set_location_assignment PIN_V23 -to sddq[22] -comment t -set_location_assignment PIN_U22 -to sddq[21] -comment t -set_location_assignment PIN_G11 -to sddq[20] -comment t -set_location_assignment PIN_D5 -to sddq[19] -comment t -set_location_assignment PIN_J19 -to sddq[18] -comment t -set_location_assignment PIN_F17 -to sddq[17] -comment t -set_location_assignment PIN_E14 -to sddq[16] -comment t -set_location_assignment PIN_A14 -to sddq[15] -comment t -set_location_assignment PIN_E19 -to sddq[14] -comment t -set_location_assignment PIN_B16 -to sddq[13] -comment t -set_location_assignment PIN_B17 -to sddq[12] -comment t -set_location_assignment PIN_B21 -to sddq[11] -comment t -set_location_assignment PIN_A22 -to sddq[10] -comment t -set_location_assignment PIN_B22 -to sddq[9] -comment t -set_location_assignment PIN_D27 -to sddq[8] -comment t -set_location_assignment PIN_A24 -to sddq[7] -comment t -set_location_assignment PIN_C24 -to sddq[6] -comment t -set_location_assignment PIN_T23 -to sddq[5] -comment t -set_location_assignment PIN_F22 -to sddq[4] -comment t -set_location_assignment PIN_H21 -to sddq[3] -comment t -set_location_assignment PIN_L15 -to sddq[2] -comment t -set_location_assignment PIN_AF4 -to sddq[1] -comment t -set_location_assignment PIN_AB12 -to sddq[0] -comment t -set_location_assignment PIN_AB32 -to sddqm[7] -comment t -set_location_assignment PIN_AB31 -to sddqm[6] -comment t -set_location_assignment PIN_V31 -to sddqm[5] -comment t -set_location_assignment PIN_W32 -to sddqm[4] -comment t -set_location_assignment PIN_AC22 -to sddqm[3] -comment t -set_location_assignment PIN_C8 -to sddqm[2] -comment t -set_location_assignment PIN_E9 -to sddqm[1] -comment t -set_location_assignment PIN_F9 -to sddqm[0] -comment t -set_location_assignment PIN_AD4 -to sdwen -comment t -set_location_assignment PIN_W10 -to sdcasn -comment t -set_location_assignment PIN_W11 -to sdrasn -comment t -set_location_assignment PIN_AD30 -to sdcsn[1] -comment t -set_location_assignment PIN_AD12 -to sdcsn[0] -comment t -set_location_assignment PIN_W22 -to sdba[1] -comment t -set_location_assignment PIN_AB11 -to sdba[0] -comment t - -# Timing Assignments -# ================== -set_global_assignment -name IGNORE_CLOCK_SETTINGS ON -set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -set_global_assignment -name FMAX_REQUIREMENT "100 MHz" - -# Analysis & Synthesis Assignments -# ================================ -set_global_assignment -name DEVICE_FILTER_PACKAGE FBGA -set_global_assignment -name DEVICE_FILTER_PIN_COUNT 1020 -set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 3 -set_global_assignment -name EDA_DESIGN_ENTRY_SYNTHESIS_TOOL "Synplify Pro" -set_global_assignment -name FAMILY "Stratix II" -set_global_assignment -name CYCLONE_OPTIMIZATION_TECHNIQUE AREA -set_global_assignment -name STRATIX_OPTIMIZATION_TECHNIQUE SPEED -set_global_assignment -name APEX20K_OPTIMIZATION_TECHNIQUE SPEED -set_global_assignment -name TOP_LEVEL_ENTITY leon3hpe -set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF -set_global_assignment -name AUTO_ENABLE_SMART_COMPILE ON -set_global_assignment -name VERILOG_SHOW_LMF_MAPPING_MESSAGES OFF - -# Fitter Assignments -# ================== -set_global_assignment -name DEVICE EP2S180F1020C3 -set_global_assignment -name STRATIXII_CONFIGURATION_SCHEME "FAST PASSIVE PARALLEL" -set_global_assignment -name CYCLONE_CONFIGURATION_SCHEME "PASSIVE SERIAL" -set_global_assignment -name ENABLE_DEVICE_WIDE_RESET OFF -set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED WITH WEAK PULL-UP" -set_global_assignment -name RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO" -set_global_assignment -name RESERVE_ASDO_AFTER_CONFIGURATION "USE AS REGULAR IO" -#set_global_assignment -name RESERVE_NCSO_AFTER_CONFIGURATION "USE AS REGULAR IO" -set_global_assignment -name OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING OFF -set_global_assignment -name IO_PLACEMENT_OPTIMIZATION OFF -set_global_assignment -name INC_PLC_MODE OFF -set_global_assignment -name ROUTING_BACK_ANNOTATION_MODE OFF -set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL" -set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 2 - -# Timing Analysis Assignments -# =========================== -set_global_assignment -name MAX_SCC_SIZE 50 - -# EDA Netlist Writer Assignments -# ============================== -set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim (VHDL output from Quartus II)" - -# Assembler Assignments -# ===================== -set_global_assignment -name ON_CHIP_BITSTREAM_DECOMPRESSION ON -set_global_assignment -name COMPRESSION_MODE ON -set_global_assignment -name APEX20K_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name EXCALIBUR_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name MERCURY_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name FLEX6K_CONFIGURATION_DEVICE EPC1 -set_global_assignment -name FLEX10K_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name CYCLONE_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name STRATIX_CONFIGURATION_DEVICE EPC8 -set_global_assignment -name EPROM_USE_CHECKSUM_AS_USERCODE ON -set_global_assignment -name AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE OFF -set_global_assignment -name DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE ON -set_global_assignment -name GENERATE_TTF_FILE ON - -# Simulator Assignments -# ===================== -set_global_assignment -name START_TIME "0 ns" -set_global_assignment -name GLITCH_INTERVAL "1 ns" - -# Design Assistant Assignments -# ============================ -set_global_assignment -name DRC_REPORT_TOP_FANOUT OFF -set_global_assignment -name DRC_REPORT_FANOUT_EXCEEDING OFF -set_global_assignment -name ASSG_CAT OFF -set_global_assignment -name ASSG_RULE_MISSING_FMAX OFF -set_global_assignment -name ASSG_RULE_MISSING_TIMING OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_ASYN_RAM OFF -set_global_assignment -name CLK_CAT OFF -set_global_assignment -name CLK_RULE_COMB_CLOCK OFF -set_global_assignment -name CLK_RULE_INV_CLOCK OFF -set_global_assignment -name CLK_RULE_GATING_SCHEME OFF -set_global_assignment -name CLK_RULE_INPINS_CLKNET OFF -set_global_assignment -name CLK_RULE_CLKNET_CLKSPINES OFF -set_global_assignment -name CLK_RULE_MIX_EDGES OFF -set_global_assignment -name RESET_CAT OFF -set_global_assignment -name RESET_RULE_INPINS_RESETNET OFF -set_global_assignment -name RESET_RULE_UNSYNCH_EXRESET OFF -set_global_assignment -name RESET_RULE_IMSYNCH_EXRESET OFF -set_global_assignment -name RESET_RULE_COMB_ASYNCH_RESET OFF -set_global_assignment -name RESET_RULE_UNSYNCH_ASYNCH_DOMAIN OFF -set_global_assignment -name RESET_RULE_IMSYNCH_ASYNCH_DOMAIN OFF -set_global_assignment -name TIMING_CAT OFF -set_global_assignment -name TIMING_RULE_SHIFT_REG OFF -set_global_assignment -name TIMING_RULE_COIN_CLKEDGE OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE OFF -set_global_assignment -name NONSYNCHSTRUCT_CAT OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_COMBLOOP OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_REG_LOOP OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_DELAY_CHAIN OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_RIPPLE_CLK OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_SRLATCH OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED OFF -set_global_assignment -name ACLK_CAT OFF -set_global_assignment -name ACLK_RULE_NO_SZER_ACLK_DOMAIN OFF -set_global_assignment -name ACLK_RULE_SZER_BTW_ACLK_DOMAIN OFF -set_global_assignment -name ACLK_RULE_IMSZER_ADOMAIN OFF -set_global_assignment -name HCPY_VREF_PINS OFF - -# Programmer Assignments -# ====================== -set_global_assignment -name GENERATE_JAM_FILE ON -set_global_assignment -name GENERATE_JBC_FILE ON - -# SignalTap II Assignments -# ======================== -set_global_assignment -name ENABLE_SIGNALTAP OFF - -# LogicLock Region Assignments -# ============================ -set_global_assignment -name LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT OFF - -# --------------------------------------------- -# start EDA_TOOL_SETTINGS(eda_design_synthesis) - - # Analysis & Synthesis Assignments - # ================================ -set_global_assignment -name EDA_INPUT_DATA_FORMAT "VERILOG HDL" -section_id eda_design_synthesis -set_global_assignment -name EDA_LMF_FILE synplcty.lmf -section_id eda_design_synthesis - - # EDA Netlist Writer Assignments - # ============================== -set_global_assignment -name EDA_OUTPUT_DATA_FORMAT EDIF -section_id eda_design_synthesis - -# end EDA_TOOL_SETTINGS(eda_design_synthesis) -# ------------------------------------------- - -# --------------------------------------- -# start EDA_TOOL_SETTINGS(eda_simulation) - - # EDA Netlist Writer Assignments - # ============================== -set_global_assignment -name EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION ON -section_id eda_simulation -set_global_assignment -name EDA_OUTPUT_DATA_FORMAT VHDL -section_id eda_simulation - -# end EDA_TOOL_SETTINGS(eda_simulation) -# ------------------------------------- - -# ---------------------- -# start ENTITY(leon3hpe) - - # Timing Assignments - # ================== -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[0] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[1] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[2] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[3] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[4] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[5] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[6] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[7] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[8] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[9] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[10] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[11] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[12] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[13] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[14] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[15] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[16] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[17] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[18] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[19] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[20] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[21] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[22] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[23] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[24] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[25] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[26] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[27] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[28] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[29] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[30] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[31] - - # Fitter Assignments - # ================== -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdclk[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[4] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[5] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[6] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[7] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[8] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[9] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[10] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[11] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[12] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[13] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[14] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[15] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[16] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[17] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[18] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[19] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[20] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[21] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[22] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[23] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[24] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[25] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[26] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[27] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to bufdir -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to bufoen -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[4] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[5] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[6] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[7] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[8] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[9] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[10] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[11] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[12] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[13] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[14] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[15] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[16] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[17] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[18] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[19] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[20] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[21] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[22] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[23] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[24] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[25] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[26] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[27] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[28] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[29] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[30] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[31] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erx_clk -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erxd[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erxd[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erxd[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erxd[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etx_clk -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etxd[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etxd[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etxd[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etxd[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to rwen[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to rwen[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to rwen[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to rwen[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdba[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdba[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdcasn -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdclk[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdcsn[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdcsn[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sddqm[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sddqm[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sddqm[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sddqm[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdrasn -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdwen -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to writen - -# end ENTITY(leon3hpe) -# -------------------- - -set_global_assignment -name LAST_QUARTUS_VERSION 7.2 -set_global_assignment -name ENABLE_ADVANCED_IO_TIMING OFF -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to resetn - -set_global_assignment -name SMART_RECOMPILE ON -set_global_assignment -name NUM_PARALLEL_PROCESSORS 2 -set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 -set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 -set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" -set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" -set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS" diff --git a/boards/ge-hpe-midi-ep2s60/Makefile.inc b/boards/ge-hpe-midi-ep2s60/Makefile.inc deleted file mode 100644 index a1de9682..00000000 --- a/boards/ge-hpe-midi-ep2s60/Makefile.inc +++ /dev/null @@ -1,27 +0,0 @@ -# to be included in design makefile -#CONFDEVICE=EPM1270 - -TECHNOLOGY= STRATIXII -PART= EP2S60 -PACKAGE= FC1020 -SPEED=-3 -SYNFREQ=60 -CONFDEVICE=EPCS64 - -ALTERA_PINGEN=altera_pingen.awk -BOARD_DIR=$(GRLIB)/boards/$(BOARD) - -$(BOARD_DIR)/leon_pinning.csv: $(BOARD_DIR)/LEON-MIDI-Vers1_1-AS2-Vers1_1-Pinning.csv - grep -v "Pin;Port;NetName" $< > $@ - -$(BOARD_DIR)/leon_pinning.txt: $(BOARD_DIR)/leon_pinning.csv - $(ALTERA_PINGEN) FS=";" $< > $@ - -board-pinning-clean: - -rm -f $(BOARD_DIR)/leon_pinning.csv \ - $(BOARD_DIR)/leon_pinning.txt - -board-pinning-check: $(BOARD_DIR)/leon_pinning.txt - @echo - @echo "Searching for pin double assignments..." - @for i in `sort --key=1 --field-separator=";" $< | cut --fields="1-1" --delimiter=";" | uniq --repeated`; do grep $$i $<; done diff --git a/boards/ge-hpe-midi-ep2s60/default.sdc b/boards/ge-hpe-midi-ep2s60/default.sdc deleted file mode 100644 index c1ca5e07..00000000 --- a/boards/ge-hpe-midi-ep2s60/default.sdc +++ /dev/null @@ -1,52 +0,0 @@ -# Synplicity, Inc. constraint file -# /home/jiri/ibm/vhdl/grlib/boards/gr-pci-xc2v/default.sdc -# Written on Fri Jul 30 18:56:40 2004 -# by Synplify Pro, 7.6 Scope Editor - -# -# Clocks -# -define_clock -name -disable {clk} -freq 100.000 -clockgroup default_clkgroup -define_clock -name -disable {pci_clk} -freq 40.000 -clockgroup pci_clkgroup - -# -# Clock to Clock -# - -# -# Inputs/Outputs -# -define_output_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {clk:r} -define_input_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {clk:r} -define_output_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {pci_clk:r} -define_input_delay -disable -default 18.00 -improve 0.00 -route 0.00 -ref {pci_clk:r} -define_input_delay -disable {pci_rst} 0.00 -improve 0.00 -route 0.00 -ref {pci_clk:r} - -# -# Registers -# - -# -# Multicycle Path -# - -# -# False Path -# - -# -# Delay Path -# - -# -# Attributes -# -define_global_attribute syn_useioff {1} - -# -# Compile Points -# - -# -# Other Constraints -# diff --git a/boards/ge-hpe-midi-ep2s60/leon3hpe.qsf b/boards/ge-hpe-midi-ep2s60/leon3hpe.qsf deleted file mode 100644 index 90d6931f..00000000 --- a/boards/ge-hpe-midi-ep2s60/leon3hpe.qsf +++ /dev/null @@ -1,688 +0,0 @@ -# Pin & Location Assignments -# ========================== -set_location_assignment PIN_AK11 -to address[0] -comment CB3_DATA6CB2_A0 -set_location_assignment PIN_AH8 -to address[1] -comment CB3_DATA0CB2_A1 -set_location_assignment PIN_J15 -to address[10] -comment MEMORY_A8 -set_location_assignment PIN_K13 -to address[11] -comment MEMORY_A9 -set_location_assignment PIN_D10 -to address[12] -comment MEMORY_A10 -set_location_assignment PIN_K15 -to address[13] -comment MEMORY_A11 -set_location_assignment PIN_H14 -to address[14] -comment MEMORY_A12 -set_location_assignment PIN_J12 -to address[15] -comment MEMORY_A13 -set_location_assignment PIN_J14 -to address[16] -comment MEMORY_A14 -set_location_assignment PIN_K12 -to address[17] -comment MEMORY_A15 -set_location_assignment PIN_E8 -to address[18] -comment MEMORY_A16 -set_location_assignment PIN_G13 -to address[19] -comment MEMORY_A17 -set_location_assignment PIN_E13 -to address[2] -comment MEMORY_A0 -set_location_assignment PIN_H13 -to address[20] -comment MEMORY_A18 -set_location_assignment PIN_L12 -to address[21] -comment MEMORY_A19 -set_location_assignment PIN_E7 -to address[22] -comment MEMORY_A20 -set_location_assignment PIN_G12 -to address[23] -comment MEMORY_A21 -set_location_assignment PIN_H12 -to address[24] -comment MEMORY_A22 -set_location_assignment PIN_AJ7 -to address[25] -comment CB3_DATA1CB2_A10 -set_location_assignment PIN_P2 -to address[26] -comment CB4_DATA26CB1_RX_01_N -set_location_assignment PIN_P1 -to address[27] -comment CB4_DATA27CB1_RX_01_P -set_location_assignment PIN_L17 -to address[3] -comment MEMORY_A1 -set_location_assignment PIN_K17 -to address[4] -comment MEMORY_A2 -set_location_assignment PIN_L13 -to address[5] -comment MEMORY_A3 -set_location_assignment PIN_L16 -to address[6] -comment MEMORY_A4 -set_location_assignment PIN_J13 -to address[7] -comment MEMORY_A5 -set_location_assignment PIN_D11 -to address[8] -comment MEMORY_A6 -set_location_assignment PIN_K16 -to address[9] -comment MEMORY_A7 -set_location_assignment PIN_Y5 -to can_rxd -comment CAN_RXD -set_location_assignment PIN_Y6 -to can_stb -comment CAN_STB -set_location_assignment PIN_AA8 -to can_txd -comment CAN_TXD -set_location_assignment PIN_T3 -to clk -comment DUT1_CLK100M -#set_location_assignment PIN_A17 -to clk -comment DUT1_CLK14P -set_location_assignment PIN_A12 -to data[0] -comment MEMORY_DQ0 -set_location_assignment PIN_B13 -to data[1] -comment MEMORY_DQ1 -set_location_assignment PIN_B9 -to data[10] -comment MEMORY_DQ10 -set_location_assignment PIN_C10 -to data[11] -comment MEMORY_DQ11 -set_location_assignment PIN_A9 -to data[12] -comment MEMORY_DQ12 -set_location_assignment PIN_F10 -to data[13] -comment MEMORY_DQ13 -set_location_assignment PIN_B8 -to data[14] -comment MEMORY_DQ14 -set_location_assignment PIN_C9 -to data[15] -comment MEMORY_DQ15 -set_location_assignment PIN_A8 -to data[16] -comment MEMORY_DQ16 -set_location_assignment PIN_D8 -to data[17] -comment MEMORY_DQ17 -set_location_assignment PIN_B7 -to data[18] -comment MEMORY_DQ18 -set_location_assignment PIN_C7 -to data[19] -comment MEMORY_DQ19 -set_location_assignment PIN_B11 -to data[2] -comment MEMORY_DQ2 -set_location_assignment PIN_A7 -to data[20] -comment MEMORY_DQ20 -set_location_assignment PIN_D7 -to data[21] -comment MEMORY_DQ21 -set_location_assignment PIN_B6 -to data[22] -comment MEMORY_DQ22 -set_location_assignment PIN_C6 -to data[23] -comment MEMORY_DQ23 -set_location_assignment PIN_A6 -to data[24] -comment MEMORY_DQ24 -set_location_assignment PIN_D6 -to data[25] -comment MEMORY_DQ25 -set_location_assignment PIN_B5 -to data[26] -comment MEMORY_DQ26 -set_location_assignment PIN_E6 -to data[27] -comment MEMORY_DQ27 -set_location_assignment PIN_A5 -to data[28] -comment MEMORY_DQ28 -set_location_assignment PIN_C5 -to data[29] -comment MEMORY_DQ29 -set_location_assignment PIN_D13 -to data[3] -comment MEMORY_DQ3 -set_location_assignment PIN_C4 -to data[30] -comment MEMORY_DQ30 -set_location_assignment PIN_E5 -to data[31] -comment MEMORY_DQ31 -set_location_assignment PIN_A11 -to data[4] -comment MEMORY_DQ4 -set_location_assignment PIN_F12 -to data[5] -comment MEMORY_DQ5 -set_location_assignment PIN_B10 -to data[6] -comment MEMORY_DQ6 -set_location_assignment PIN_C11 -to data[7] -comment MEMORY_DQ7 -set_location_assignment PIN_A10 -to data[8] -comment MEMORY_DQ8 -set_location_assignment PIN_E11 -to data[9] -comment MEMORY_DQ9 -set_location_assignment PIN_M2 -to dsuactn -comment CB4_DATA30CB1_RX_02_N -set_location_assignment PIN_E26 -to dsubre -comment TST_STEP -set_location_assignment PIN_AB3 -to dsurx -comment RS0_RXD_LVTTL -set_location_assignment PIN_AB9 -to dsutx -comment RS0_TXD_LVTTL -set_location_assignment PIN_W31 -to dsw[0] -comment DSW0 -set_location_assignment PIN_Y31 -to dsw[1] -comment DSW1 -set_location_assignment PIN_AA32 -to dsw[2] -comment DSW2 -set_location_assignment PIN_AA31 -to dsw[3] -comment DSW3 -set_location_assignment PIN_AC32 -to dsw[4] -comment DSW4 -set_location_assignment PIN_AC31 -to dsw[5] -comment DSW5 -set_location_assignment PIN_AD32 -to dsw[6] -comment DSW6 -set_location_assignment PIN_AD31 -to dsw[7] -comment DSW7 -set_location_assignment PIN_AH2 -to emdc -comment ETH_MDC -set_location_assignment PIN_AJ1 -to emdio -comment ETH_MDIO -set_location_assignment PIN_M1 -to errorn -comment CB4_DATA31CB1_RX_02_P -set_location_assignment PIN_E16 -to erx_clk -comment ETH_RXCLK -set_location_assignment PIN_U11 -to erx_col -comment ETH_COL -set_location_assignment PIN_AG2 -to erx_crs -comment ETH_CRS -set_location_assignment PIN_AG1 -to erx_dv -comment ETH_RXDV -set_location_assignment PIN_AB1 -to erx_er -comment ETH_RXER -set_location_assignment PIN_AE2 -to erxd[0] -comment ETH_RXD0 -set_location_assignment PIN_AD2 -to erxd[1] -comment ETH_RXD1 -set_location_assignment PIN_AD1 -to erxd[2] -comment ETH_RXD2 -set_location_assignment PIN_AC2 -to erxd[3] -comment ETH_RXD3 -set_location_assignment PIN_A16 -to etx_clk -comment ETH_TXCLK -set_location_assignment PIN_AF1 -to etx_en -comment ETH_TXEN -set_location_assignment PIN_Y3 -to etx_er -comment ETH_TXER -set_location_assignment PIN_AC1 -to etxd[0] -comment ETH_TXD0 -set_location_assignment PIN_AB2 -to etxd[1] -comment ETH_TXD1 -set_location_assignment PIN_AA2 -to etxd[2] -comment ETH_TXD2 -set_location_assignment PIN_AA1 -to etxd[3] -comment ETH_TXD3 -set_location_assignment PIN_L2 -to iosn -comment CB4_DATA10CB1_RX_03_N -set_location_assignment PIN_A23 -to lcd_enable -comment LCD_ENABLE -set_location_assignment PIN_B23 -to lcd_regsel -comment LCD_REGSEL -set_location_assignment PIN_D25 -to lcd_rw -comment LCD_RW -set_location_assignment PIN_B14 -to oen -comment "MEMORY_OE#" -set_location_assignment PIN_B15 -to ps2_clk[0] -comment PS2_KBCLK -set_location_assignment PIN_C16 -to ps2_clk[1] -comment PS2_MCLK -set_location_assignment PIN_C15 -to ps2_data[0] -comment PS2_KBDAT -set_location_assignment PIN_D16 -to ps2_data[1] -comment PS2_MDAT -set_location_assignment PIN_L1 -to ramoen[0] -comment CB4_DATA32CB1_RX_03_P -set_location_assignment PIN_K2 -to ramoen[1] -comment CB4_DATA33CB1_RX_04_N -set_location_assignment PIN_K1 -to ramoen[2] -comment CB4_DATA34CB1_RX_04_P -set_location_assignment PIN_J2 -to ramoen[3] -comment CB4_DATA35CB1_RX_05_N -set_location_assignment PIN_J1 -to ramoen[4] -comment CB4_DATA36CB1_RX_05_P -set_location_assignment PIN_B20 -to ramsn[0] -comment "SRAM_CE#" -set_location_assignment PIN_H2 -to ramsn[1] -comment CB4_DATA92CB1_RX_06_N -set_location_assignment PIN_H1 -to ramsn[2] -comment CB4_DATA93CB1_RX_06_P -set_location_assignment PIN_G2 -to ramsn[3] -comment CB4_DATA94CB1_RX_07_N -set_location_assignment PIN_G1 -to ramsn[4] -comment CB4_DATA95CB1_RX_07_P -set_location_assignment PIN_C13 -to rben[0] -comment "SRAM_BE0#" -set_location_assignment PIN_F14 -to rben[1] -comment "SRAM_BE1#" -set_location_assignment PIN_B12 -to rben[2] -comment "SRAM_BE2#" -set_location_assignment PIN_F13 -to rben[3] -comment "SRAM_BE3#" -set_location_assignment PIN_K4 -to read -comment CB4_DATA96CB1_RX_06_N -set_location_assignment PIN_U28 -to resetn -comment "USER_RESET#" -set_location_assignment PIN_V30 -to resoutn -comment "HPE_RESOUT#" -set_location_assignment PIN_C21 -to romsn[0] -comment "FLASH_CE#" -set_location_assignment PIN_K3 -to romsn[1] -comment CB4_DATA6CB1_RX_08_P -set_location_assignment PIN_J4 -to rwen[0] -comment CB4_DATA7CB1_RX_09_N -set_location_assignment PIN_J3 -to rwen[1] -comment CB4_DATA8CB1_RX_09_P -set_location_assignment PIN_G4 -to rwen[2] -comment CB4_DATA40CB1_RX_10_N -set_location_assignment PIN_G3 -to rwen[3] -comment CB4_DATA41CB1_RX_10_P -set_location_assignment PIN_AA3 -to rxd1 -comment RS1_RXD_LVTTL -set_location_assignment PIN_D32 -to sevensegment[0] -comment "HUMI_A#" -set_location_assignment PIN_F30 -to sevensegment[1] -comment "HUMI_B#" -set_location_assignment PIN_B29 -to sevensegment[2] -comment "HUMI_C#" -set_location_assignment PIN_D31 -to sevensegment[3] -comment "HUMI_D#" -set_location_assignment PIN_A29 -to sevensegment[4] -comment "HUMI_E#" -set_location_assignment PIN_F29 -to sevensegment[5] -comment "HUMI_F#" -set_location_assignment PIN_A28 -to sevensegment[6] -comment "HUMI_G#" -set_location_assignment PIN_B28 -to sevensegment[7] -comment "HUMI_DP#" -set_location_assignment PIN_B27 -to sevensegment[8] -comment "HUMI_SEG0#" -set_location_assignment PIN_E30 -to sevensegment[9] -comment "HUMI_SEG1#" -set_location_assignment PIN_B24 -to tst_col[0] -comment TST_COL0 -set_location_assignment PIN_E28 -to tst_col[1] -comment TST_COL1 -set_location_assignment PIN_A26 -to tst_col[2] -comment TST_COL2 -set_location_assignment PIN_AE32 -to tst_row[0] -comment TST_ROW0 -set_location_assignment PIN_AE31 -to tst_row[1] -comment TST_ROW1 -set_location_assignment PIN_AF32 -to tst_row[2] -comment TST_ROW2 -set_location_assignment PIN_AF31 -to tst_row[3] -comment TST_ROW3 -set_location_assignment PIN_W9 -to txd1 -comment RS1_TXD_LVTTL -set_location_assignment PIN_D19 -to writen -comment "MEMORY_WE#" -set_location_assignment PIN_Y11 -to led_enable -comment "HUMI_LED#" -set_location_assignment PIN_T32 -to ac97_bit_clk -comment AC97_BITCLK -set_location_assignment PIN_AD24 -to ac97_sync -comment AC97_SYNC -set_location_assignment PIN_AD25 -to ac97_sdata_out -comment AC97_SDATA_OUT -set_location_assignment PIN_AC8 -to ac97_sdata_in -comment AC97_SDATA_IN -set_location_assignment PIN_AJ18 -to ac97_ext_clk -comment AC97_EXT_CLK -set_location_assignment PIN_AC7 -to ac97_resetn -comment "AC97_RESET#" -set_location_assignment PIN_AK8 -to ac97_dbg_bit_clk -comment CB3_DATA41CB2_A11 -set_location_assignment PIN_AK12 -to ac97_dbg_sync -comment CB3_DATA40CB2_A12 -set_location_assignment PIN_AJ6 -to ac97_dbg_sdata_out -comment CB3_DATA39CB2_A13 -set_location_assignment PIN_AG9 -to ac97_dbg_sdata_in -comment CB3_DATA38CB2_A2 -set_location_assignment PIN_AG11 -to ac97_dbg_ext_clk -comment CB3_DATA37CB2_A3 -set_location_assignment PIN_AF12 -to ac97_dbg_resetn -comment CB3_DATA36CB2_A4 -set_location_assignment PIN_AK7 -to ac97_dbg_int -comment CB3_DATA35CB2_A5 -set_location_assignment PIN_AG8 -to ac97_dbg_int2 -comment CB3_DATA34CB2_A6 -set_location_assignment PIN_M25 -to vga_clk -comment VGA_CLK -set_location_assignment PIN_N23 -to vga_syncn -comment "VGA_SYNC#" -set_location_assignment PIN_K26 -to vga_blankn -comment "VGA_BLANK#" -set_location_assignment PIN_L24 -to vga_vsync -comment VGA_VSYNC -set_location_assignment PIN_K29 -to vga_hsync -comment VGA_HSYNC -set_location_assignment PIN_R27 -to vga_rd[7] -comment VGA_RD7 -set_location_assignment PIN_R26 -to vga_rd[6] -comment VGA_RD6 -set_location_assignment PIN_R25 -to vga_rd[5] -comment VGA_RD5 -set_location_assignment PIN_P29 -to vga_rd[4] -comment VGA_RD4 -set_location_assignment PIN_T27 -to vga_rd[3] -comment VGA_RD3 -set_location_assignment PIN_R28 -to vga_rd[2] -comment VGA_RD2 -set_location_assignment PIN_T28 -to vga_rd[1] -comment VGA_RD1 -set_location_assignment PIN_R29 -to vga_rd[0] -comment VGA_RD0 -set_location_assignment PIN_P24 -to vga_gr[7] -comment VGA_GR7 -set_location_assignment PIN_M30 -to vga_gr[6] -comment VGA_GR6 -set_location_assignment PIN_P25 -to vga_gr[5] -comment VGA_GR5 -set_location_assignment PIN_P26 -to vga_gr[4] -comment VGA_GR4 -set_location_assignment PIN_R23 -to vga_gr[3] -comment VGA_GR3 -set_location_assignment PIN_P27 -to vga_gr[2] -comment VGA_GR2 -set_location_assignment PIN_R24 -to vga_gr[1] -comment VGA_GR1 -set_location_assignment PIN_P28 -to vga_gr[0] -comment VGA_GR0 -set_location_assignment PIN_M24 -to vga_bl[7] -comment VGA_BL7 -set_location_assignment PIN_M26 -to vga_bl[6] -comment VGA_BL6 -set_location_assignment PIN_N24 -to vga_bl[5] -comment VGA_BL5 -set_location_assignment PIN_N26 -to vga_bl[4] -comment VGA_BL4 -set_location_assignment PIN_R22 -to vga_bl[3] -comment VGA_BL3 -set_location_assignment PIN_L30 -to vga_bl[2] -comment VGA_BL2 -set_location_assignment PIN_N25 -to vga_bl[1] -comment VGA_BL1 -set_location_assignment PIN_N27 -to vga_bl[0] -comment VGA_BL0 -set_location_assignment PIN_G21 -to sdcard_cs -comment SDCARD_CS -set_location_assignment PIN_H20 -to sdcard_di -comment SDCARD_DI -set_location_assignment PIN_D21 -to sdcard_sclk -comment SDCARD_SCLK -set_location_assignment PIN_K19 -to sdcard_do -comment SDCARD_DO -set_location_assignment PIN_U32 -to usb_clkout -comment USBD_CLKOUT -set_location_assignment PIN_L31 -to usb_d[15] -comment USBD_D15 -set_location_assignment PIN_K32 -to usb_d[14] -comment USBD_D14 -set_location_assignment PIN_M27 -to usb_d[13] -comment USBD_D13 -set_location_assignment PIN_L32 -to usb_d[12] -comment USBD_D12 -set_location_assignment PIN_M32 -to usb_d[11] -comment USBD_D11 -set_location_assignment PIN_M31 -to usb_d[10] -comment USBD_D10 -set_location_assignment PIN_M29 -to usb_d[9] -comment USBD_D9 -set_location_assignment PIN_N31 -to usb_d[8] -comment USBD_D8 -set_location_assignment PIN_P32 -to usb_d[7] -comment USBD_D7 -set_location_assignment PIN_P31 -to usb_d[6] -comment USBD_D6 -set_location_assignment PIN_N28 -to usb_d[5] -comment USBD_D5 -set_location_assignment PIN_R30 -to usb_d[4] -comment USBD_D4 -set_location_assignment PIN_N29 -to usb_d[3] -comment USBD_D3 -set_location_assignment PIN_R31 -to usb_d[2] -comment USBD_D2 -set_location_assignment PIN_N30 -to usb_d[1] -comment USBD_D1 -set_location_assignment PIN_T31 -to usb_d[0] -comment USBD_D0 -set_location_assignment PIN_G32 -to usb_linestate[1] -comment USBD_LINESTATE0 -set_location_assignment PIN_F32 -to usb_linestate[0] -comment USBD_LINESTATE1 -set_location_assignment PIN_E32 -to usb_opmode[1] -comment USBD_OPMODE1 -set_location_assignment PIN_J27 -to usb_opmode[0] -comment USBD_OPMODE0 -set_location_assignment PIN_H32 -to usb_rxactive -comment USBD_RXACTIVE -set_location_assignment PIN_J31 -to usb_rxerror -comment USBD_RXERROR -set_location_assignment PIN_L29 -to usb_rxvalid -comment USBD_RXVALID -set_location_assignment PIN_G31 -to usb_suspend -comment USBD_SUSPEND -set_location_assignment PIN_K27 -to usb_termsel -comment USBD_TERMSEL -set_location_assignment PIN_J32 -to usb_txready -comment USBD_TXREADY -set_location_assignment PIN_K31 -to usb_txvalid -comment USBD_TXVALID -set_location_assignment PIN_F31 -to usb_validh -comment USBD_VALIDH -set_location_assignment PIN_H31 -to usb_xcvrsel -comment USBD_XCRSEL -set_location_assignment PIN_E31 -to usb_dbus16 -comment USBD_DBUS16_8 -set_location_assignment PIN_H28 -to usb_unidir -comment USBD_UNIBIDI -set_location_assignment PIN_E25 -to adc_dout -comment ADC_DOUT -set_location_assignment PIN_AE25 -to adc_ain -comment ADC_AIN -set_location_assignment PIN_AD9 -to dac_out -comment DAC_OUT -set_location_assignment PIN_AH3 -to ereset -comment "ETH_RESET#" -set_location_assignment PIN_B26 -to usb_vbus -comment USBD_VBUS -set_location_assignment PIN_A27 -to usb_reset -comment USBD_RESET -set_location_assignment PIN_AA29 -to hpidata[0] -comment USB_GPIO0 -set_location_assignment PIN_W26 -to hpidata[1] -comment USB_GPIO1 -set_location_assignment PIN_AA30 -to hpidata[2] -comment USB_GPIO2 -set_location_assignment PIN_Y27 -to hpidata[3] -comment USB_GPIO3 -set_location_assignment PIN_AB28 -to hpidata[4] -comment USB_GPIO4 -set_location_assignment PIN_Y26 -to hpidata[5] -comment USB_GPIO5 -set_location_assignment PIN_AB29 -to hpidata[6] -comment USB_GPIO6 -set_location_assignment PIN_AA26 -to hpidata[7] -comment USB_GPIO7 -set_location_assignment PIN_AB30 -to hpidata[8] -comment USB_GPIO8 -set_location_assignment PIN_AB27 -to hpidata[9] -comment USB_GPIO9 -set_location_assignment PIN_AC26 -to hpidata[10] -comment USB_GPIO10 -set_location_assignment PIN_AB26 -to hpidata[11] -comment USB_GPIO11 -set_location_assignment PIN_AC27 -to hpidata[12] -comment USB_GPIO12 -set_location_assignment PIN_AC25 -to hpidata[13] -comment USB_GPIO13 -set_location_assignment PIN_AD27 -to hpidata[14] -comment USB_GPIO14 -set_location_assignment PIN_AE28 -to hpidata[15] -comment USB_GPIO15 -set_location_assignment PIN_AG30 -to hpiaddr[0] -comment USB_GPIO19 -set_location_assignment PIN_AF30 -to hpiaddr[1] -comment USB_GPIO20 -set_location_assignment PIN_AD26 -to hpicsn -comment USB_GPIO21 -set_location_assignment PIN_AF29 -to hpiwrn -comment USB_GPIO22 -set_location_assignment PIN_AD8 -to hpiint -comment USB_GPIO24 -set_location_assignment PIN_AE27 -to hpirdn -comment USB_GPIO23 -set_location_assignment PIN_V24 -to exp_datai[0] -comment CB4_DATA51 -set_location_assignment PIN_W27 -to exp_datai[1] -comment CB4_DATA53 -set_location_assignment PIN_AG18 -to exp_datai[2] -comment CB4_DATA55 -set_location_assignment PIN_AD18 -to exp_datai[3] -comment CB4_DATA57 -set_location_assignment PIN_AG15 -to exp_datai[4] -comment CB4_DATA59 -set_location_assignment PIN_AH14 -to exp_datai[5] -comment CB4_DATA61 -set_location_assignment PIN_AG14 -to exp_datai[6] -comment CB4_DATA63 -set_location_assignment PIN_AH29 -to exp_datai[7] -comment CB4_DATA65 -set_location_assignment PIN_AH30 -to exp_datai[8] -comment CB4_DATA67 -set_location_assignment PIN_AH13 -to exp_datai[9] -comment CB4_DATA69 -set_location_assignment PIN_AH32 -to exp_datai[10] -comment CB4_DATA72 -set_location_assignment PIN_AB15 -to exp_datai[11] -comment CB4_DATA73 -set_location_assignment PIN_AC15 -to exp_datai[12] -comment CB4_DATA75 -set_location_assignment PIN_AD19 -to exp_datai[13] -comment CB4_DATA78 -set_location_assignment PIN_AC14 -to exp_datai[14] -comment CB4_DATA79 -set_location_assignment PIN_AD13 -to exp_datai[15] -comment CB4_DATA81 -set_location_assignment PIN_AC13 -to exp_datai[16] -comment CB4_DATA83 -set_location_assignment PIN_AE14 -to exp_datai[17] -comment CB4_DATA85 -set_location_assignment PIN_AL16 -to exp_datai[18] -comment CB4_DATA87 -set_location_assignment PIN_AL14 -to exp_datai[19] -comment CB4_DATA89 -set_location_assignment PIN_AE19 -to exp_datao[0] -comment CB4_DATA52 -set_location_assignment PIN_AC9 -to exp_datao[1] -comment CB4_DATA54 -set_location_assignment PIN_AD10 -to exp_datao[2] -comment CB4_DATA56 -set_location_assignment PIN_AC11 -to exp_datao[3] -comment CB4_DATA58 -set_location_assignment PIN_AD11 -to exp_datao[4] -comment CB4_DATA60 -set_location_assignment PIN_AE12 -to exp_datao[5] -comment CB4_DATA62 -set_location_assignment PIN_AF13 -to exp_datao[6] -comment CB4_DATA64 -set_location_assignment PIN_AF23 -to exp_datao[7] -comment CB4_DATA66 -set_location_assignment PIN_AE23 -to exp_datao[8] -comment CB4_DATA68 -set_location_assignment PIN_AG32 -to exp_datao[9] -comment CB4_DATA70 -set_location_assignment PIN_AC16 -to exp_datao[10] -comment CB4_DATA71 -set_location_assignment PIN_AJ32 -to exp_datao[11] -comment CB4_DATA74 -set_location_assignment PIN_AJ31 -to exp_datao[12] -comment CB4_DATA76 -set_location_assignment PIN_AB14 -to exp_datao[13] -comment CB4_DATA77 -set_location_assignment PIN_AB18 -to exp_datao[14] -comment CB4_DATA80 -set_location_assignment PIN_AB17 -to exp_datao[15] -comment CB4_DATA82 -set_location_assignment PIN_AC17 -to exp_datao[16] -comment CB4_DATA84 -set_location_assignment PIN_AJ14 -to exp_datao[17] -comment CB4_DATA86 -set_location_assignment PIN_AM14 -to exp_datao[18] -comment CB4_DATA88 -set_location_assignment PIN_AL12 -to exp_datao[19] -comment CB4_DATA90 -set_location_assignment PIN_AH24 -to dbg_equal -comment CB4_DATA47CB2_DQ14 -set_location_assignment PIN_E18 -to sdclk[1] -comment t -set_location_assignment PIN_D18 -to sdclk[0] -comment t -set_location_assignment PIN_AE5 -to sdcke[1] -comment t -set_location_assignment PIN_AE6 -to sdcke[0] -comment t -set_location_assignment PIN_AB5 -to sdaddr[12] -comment t -set_location_assignment PIN_AC12 -to sdaddr[11] -comment t -set_location_assignment PIN_AE4 -to sdaddr[10] -comment t -set_location_assignment PIN_AB13 -to sdaddr[9] -comment t -set_location_assignment PIN_AH4 -to sdaddr[8] -comment t -set_location_assignment PIN_AE13 -to sdaddr[7] -comment t -set_location_assignment PIN_AC18 -to sdaddr[6] -comment t -set_location_assignment PIN_AE26 -to sdaddr[5] -comment t -set_location_assignment PIN_AF19 -to sdaddr[4] -comment t -set_location_assignment PIN_AH31 -to sdaddr[3] -comment t -set_location_assignment PIN_AG12 -to sdaddr[2] -comment t -set_location_assignment PIN_AG31 -to sdaddr[1] -comment t -set_location_assignment PIN_AG13 -to sdaddr[0] -comment t -set_location_assignment PIN_C12 -to sddq[63] -comment t -set_location_assignment PIN_D14 -to sddq[62] -comment t -set_location_assignment PIN_F16 -to sddq[61] -comment t -set_location_assignment PIN_F15 -to sddq[60] -comment t -set_location_assignment PIN_C22 -to sddq[59] -comment t -set_location_assignment PIN_E22 -to sddq[58] -comment t -set_location_assignment PIN_F23 -to sddq[57] -comment t -set_location_assignment PIN_D22 -to sddq[56] -comment t -set_location_assignment PIN_C25 -to sddq[55] -comment t -set_location_assignment PIN_C26 -to sddq[54] -comment t -set_location_assignment PIN_D26 -to sddq[53] -comment t -set_location_assignment PIN_D28 -to sddq[52] -comment t -set_location_assignment PIN_C29 -to sddq[51] -comment t -set_location_assignment PIN_G30 -to sddq[50] -comment t -set_location_assignment PIN_H30 -to sddq[49] -comment t -set_location_assignment PIN_H29 -to sddq[48] -comment t -set_location_assignment PIN_K30 -to sddq[47] -comment t -set_location_assignment PIN_AH1 -to sddq[46] -comment t -set_location_assignment PIN_AF2 -to sddq[45] -comment t -set_location_assignment PIN_AE1 -to sddq[44] -comment t -set_location_assignment PIN_U23 -to sddq[43] -comment t -set_location_assignment PIN_U10 -to sddq[42] -comment t -set_location_assignment PIN_AM4 -to sddq[41] -comment t -set_location_assignment PIN_AK4 -to sddq[40] -comment t -set_location_assignment PIN_AL4 -to sddq[39] -comment t -set_location_assignment PIN_V10 -to sddq[38] -comment t -set_location_assignment PIN_AL5 -to sddq[37] -comment t -set_location_assignment PIN_AM5 -to sddq[36] -comment t -set_location_assignment PIN_AL6 -to sddq[35] -comment t -set_location_assignment PIN_AM6 -to sddq[34] -comment t -set_location_assignment PIN_AL7 -to sddq[33] -comment t -set_location_assignment PIN_AM7 -to sddq[32] -comment t -set_location_assignment PIN_AL8 -to sddq[31] -comment t -set_location_assignment PIN_E27 -to sddq[30] -comment t -set_location_assignment PIN_L19 -to sddq[29] -comment t -set_location_assignment PIN_G22 -to sddq[28] -comment t -set_location_assignment PIN_K20 -to sddq[27] -comment t -set_location_assignment PIN_AB10 -to sddq[26] -comment t -set_location_assignment PIN_AD14 -to sddq[25] -comment t -set_location_assignment PIN_AB16 -to sddq[24] -comment t -set_location_assignment PIN_W25 -to sddq[23] -comment t -set_location_assignment PIN_V23 -to sddq[22] -comment t -set_location_assignment PIN_U22 -to sddq[21] -comment t -set_location_assignment PIN_G11 -to sddq[20] -comment t -set_location_assignment PIN_D5 -to sddq[19] -comment t -set_location_assignment PIN_J19 -to sddq[18] -comment t -set_location_assignment PIN_F17 -to sddq[17] -comment t -set_location_assignment PIN_E14 -to sddq[16] -comment t -set_location_assignment PIN_A14 -to sddq[15] -comment t -set_location_assignment PIN_E19 -to sddq[14] -comment t -set_location_assignment PIN_B16 -to sddq[13] -comment t -set_location_assignment PIN_B17 -to sddq[12] -comment t -set_location_assignment PIN_B21 -to sddq[11] -comment t -set_location_assignment PIN_A22 -to sddq[10] -comment t -set_location_assignment PIN_B22 -to sddq[9] -comment t -set_location_assignment PIN_D27 -to sddq[8] -comment t -set_location_assignment PIN_A24 -to sddq[7] -comment t -set_location_assignment PIN_C24 -to sddq[6] -comment t -set_location_assignment PIN_T23 -to sddq[5] -comment t -set_location_assignment PIN_F22 -to sddq[4] -comment t -set_location_assignment PIN_H21 -to sddq[3] -comment t -set_location_assignment PIN_L15 -to sddq[2] -comment t -set_location_assignment PIN_AF4 -to sddq[1] -comment t -set_location_assignment PIN_AB12 -to sddq[0] -comment t -set_location_assignment PIN_AB32 -to sddqm[7] -comment t -set_location_assignment PIN_AB31 -to sddqm[6] -comment t -set_location_assignment PIN_V31 -to sddqm[5] -comment t -set_location_assignment PIN_W32 -to sddqm[4] -comment t -set_location_assignment PIN_AC22 -to sddqm[3] -comment t -set_location_assignment PIN_C8 -to sddqm[2] -comment t -set_location_assignment PIN_E9 -to sddqm[1] -comment t -set_location_assignment PIN_F9 -to sddqm[0] -comment t -set_location_assignment PIN_AD4 -to sdwen -comment t -set_location_assignment PIN_W10 -to sdcasn -comment t -set_location_assignment PIN_W11 -to sdrasn -comment t -set_location_assignment PIN_AD30 -to sdcsn[1] -comment t -set_location_assignment PIN_AD12 -to sdcsn[0] -comment t -set_location_assignment PIN_W22 -to sdba[1] -comment t -set_location_assignment PIN_AB11 -to sdba[0] -comment t - -# Timing Assignments -# ================== -set_global_assignment -name IGNORE_CLOCK_SETTINGS ON -set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -set_global_assignment -name FMAX_REQUIREMENT "100 MHz" - -# Analysis & Synthesis Assignments -# ================================ -set_global_assignment -name DEVICE_FILTER_PACKAGE FBGA -set_global_assignment -name DEVICE_FILTER_PIN_COUNT 1020 -set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 3 -set_global_assignment -name EDA_DESIGN_ENTRY_SYNTHESIS_TOOL "Synplify Pro" -set_global_assignment -name FAMILY "Stratix II" -set_global_assignment -name CYCLONE_OPTIMIZATION_TECHNIQUE AREA -set_global_assignment -name STRATIX_OPTIMIZATION_TECHNIQUE SPEED -set_global_assignment -name APEX20K_OPTIMIZATION_TECHNIQUE SPEED -set_global_assignment -name TOP_LEVEL_ENTITY leon3hpe -set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF -set_global_assignment -name AUTO_ENABLE_SMART_COMPILE ON -set_global_assignment -name VERILOG_SHOW_LMF_MAPPING_MESSAGES OFF - -# Fitter Assignments -# ================== -set_global_assignment -name DEVICE EP2S60F1020C3 -set_global_assignment -name STRATIXII_CONFIGURATION_SCHEME "FAST PASSIVE PARALLEL" -set_global_assignment -name CYCLONE_CONFIGURATION_SCHEME "PASSIVE SERIAL" -set_global_assignment -name ENABLE_DEVICE_WIDE_RESET OFF -set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED WITH WEAK PULL-UP" -set_global_assignment -name RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO" -set_global_assignment -name RESERVE_ASDO_AFTER_CONFIGURATION "USE AS REGULAR IO" -#set_global_assignment -name RESERVE_NCSO_AFTER_CONFIGURATION "USE AS REGULAR IO" -set_global_assignment -name OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING OFF -set_global_assignment -name IO_PLACEMENT_OPTIMIZATION OFF -set_global_assignment -name INC_PLC_MODE OFF -set_global_assignment -name ROUTING_BACK_ANNOTATION_MODE OFF -set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL" -set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 2 - -# Timing Analysis Assignments -# =========================== -set_global_assignment -name MAX_SCC_SIZE 50 - -# EDA Netlist Writer Assignments -# ============================== -set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim (VHDL output from Quartus II)" - -# Assembler Assignments -# ===================== -set_global_assignment -name ON_CHIP_BITSTREAM_DECOMPRESSION ON -set_global_assignment -name COMPRESSION_MODE ON -set_global_assignment -name APEX20K_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name EXCALIBUR_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name MERCURY_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name FLEX6K_CONFIGURATION_DEVICE EPC1 -set_global_assignment -name FLEX10K_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name CYCLONE_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name STRATIX_CONFIGURATION_DEVICE EPC8 -set_global_assignment -name EPROM_USE_CHECKSUM_AS_USERCODE ON -set_global_assignment -name AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE OFF -set_global_assignment -name DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE ON -set_global_assignment -name GENERATE_TTF_FILE ON - -# Simulator Assignments -# ===================== -set_global_assignment -name START_TIME "0 ns" -set_global_assignment -name GLITCH_INTERVAL "1 ns" - -# Design Assistant Assignments -# ============================ -set_global_assignment -name DRC_REPORT_TOP_FANOUT OFF -set_global_assignment -name DRC_REPORT_FANOUT_EXCEEDING OFF -set_global_assignment -name ASSG_CAT OFF -set_global_assignment -name ASSG_RULE_MISSING_FMAX OFF -set_global_assignment -name ASSG_RULE_MISSING_TIMING OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_ASYN_RAM OFF -set_global_assignment -name CLK_CAT OFF -set_global_assignment -name CLK_RULE_COMB_CLOCK OFF -set_global_assignment -name CLK_RULE_INV_CLOCK OFF -set_global_assignment -name CLK_RULE_GATING_SCHEME OFF -set_global_assignment -name CLK_RULE_INPINS_CLKNET OFF -set_global_assignment -name CLK_RULE_CLKNET_CLKSPINES OFF -set_global_assignment -name CLK_RULE_MIX_EDGES OFF -set_global_assignment -name RESET_CAT OFF -set_global_assignment -name RESET_RULE_INPINS_RESETNET OFF -set_global_assignment -name RESET_RULE_UNSYNCH_EXRESET OFF -set_global_assignment -name RESET_RULE_IMSYNCH_EXRESET OFF -set_global_assignment -name RESET_RULE_COMB_ASYNCH_RESET OFF -set_global_assignment -name RESET_RULE_UNSYNCH_ASYNCH_DOMAIN OFF -set_global_assignment -name RESET_RULE_IMSYNCH_ASYNCH_DOMAIN OFF -set_global_assignment -name TIMING_CAT OFF -set_global_assignment -name TIMING_RULE_SHIFT_REG OFF -set_global_assignment -name TIMING_RULE_COIN_CLKEDGE OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE OFF -set_global_assignment -name NONSYNCHSTRUCT_CAT OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_COMBLOOP OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_REG_LOOP OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_DELAY_CHAIN OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_RIPPLE_CLK OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_SRLATCH OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED OFF -set_global_assignment -name ACLK_CAT OFF -set_global_assignment -name ACLK_RULE_NO_SZER_ACLK_DOMAIN OFF -set_global_assignment -name ACLK_RULE_SZER_BTW_ACLK_DOMAIN OFF -set_global_assignment -name ACLK_RULE_IMSZER_ADOMAIN OFF -set_global_assignment -name HCPY_VREF_PINS OFF - -# Programmer Assignments -# ====================== -set_global_assignment -name GENERATE_JAM_FILE ON -set_global_assignment -name GENERATE_JBC_FILE ON - -# SignalTap II Assignments -# ======================== -set_global_assignment -name ENABLE_SIGNALTAP OFF - -# LogicLock Region Assignments -# ============================ -set_global_assignment -name LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT OFF - -# --------------------------------------------- -# start EDA_TOOL_SETTINGS(eda_design_synthesis) - - # Analysis & Synthesis Assignments - # ================================ -set_global_assignment -name EDA_INPUT_DATA_FORMAT "VERILOG HDL" -section_id eda_design_synthesis -set_global_assignment -name EDA_LMF_FILE synplcty.lmf -section_id eda_design_synthesis - - # EDA Netlist Writer Assignments - # ============================== -set_global_assignment -name EDA_OUTPUT_DATA_FORMAT EDIF -section_id eda_design_synthesis - -# end EDA_TOOL_SETTINGS(eda_design_synthesis) -# ------------------------------------------- - -# --------------------------------------- -# start EDA_TOOL_SETTINGS(eda_simulation) - - # EDA Netlist Writer Assignments - # ============================== -set_global_assignment -name EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION ON -section_id eda_simulation -set_global_assignment -name EDA_OUTPUT_DATA_FORMAT VHDL -section_id eda_simulation - -# end EDA_TOOL_SETTINGS(eda_simulation) -# ------------------------------------- - -# ---------------------- -# start ENTITY(leon3hpe) - - # Timing Assignments - # ================== -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[0] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[1] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[2] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[3] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[4] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[5] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[6] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[7] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[8] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[9] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[10] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[11] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[12] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[13] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[14] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[15] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[16] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[17] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[18] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[19] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[20] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[21] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[22] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[23] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[24] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[25] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[26] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[27] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[28] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[29] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[30] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[31] - - # Fitter Assignments - # ================== -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdclk[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[4] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[5] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[6] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[7] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[8] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[9] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[10] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[11] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[12] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[13] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[14] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[15] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[16] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[17] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[18] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[19] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[20] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[21] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[22] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[23] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[24] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[25] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[26] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[27] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to bufdir -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to bufoen -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[4] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[5] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[6] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[7] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[8] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[9] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[10] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[11] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[12] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[13] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[14] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[15] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[16] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[17] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[18] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[19] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[20] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[21] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[22] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[23] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[24] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[25] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[26] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[27] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[28] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[29] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[30] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[31] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erx_clk -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erxd[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erxd[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erxd[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erxd[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etx_clk -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etxd[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etxd[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etxd[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etxd[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to rwen[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to rwen[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to rwen[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to rwen[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdba[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdba[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdcasn -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdclk[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdcsn[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdcsn[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sddqm[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sddqm[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sddqm[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sddqm[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdrasn -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdwen -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to writen - -# end ENTITY(leon3hpe) -# -------------------- - -set_global_assignment -name LAST_QUARTUS_VERSION 7.2 -set_global_assignment -name ENABLE_ADVANCED_IO_TIMING OFF -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to resetn - -set_global_assignment -name SMART_RECOMPILE ON -set_global_assignment -name NUM_PARALLEL_PROCESSORS 2 -set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 -set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 -set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" -set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" -set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS" diff --git a/boards/ge-hpe-midi-ep2s90/Makefile.inc b/boards/ge-hpe-midi-ep2s90/Makefile.inc deleted file mode 100644 index 906b0dee..00000000 --- a/boards/ge-hpe-midi-ep2s90/Makefile.inc +++ /dev/null @@ -1,27 +0,0 @@ -# to be included in design makefile -#CONFDEVICE=EPM1270 - -TECHNOLOGY= STRATIXII -PART= EP2S90 -PACKAGE= FC1020 -SPEED=-3 -SYNFREQ=60 -CONFDEVICE=EPCS64 - -ALTERA_PINGEN=altera_pingen.awk -BOARD_DIR=$(GRLIB)/boards/$(BOARD) - -$(BOARD_DIR)/leon_pinning.csv: $(BOARD_DIR)/LEON-MIDI-Vers1_1-AS2-Vers1_1-Pinning.csv - grep -v "Pin;Port;NetName" $< > $@ - -$(BOARD_DIR)/leon_pinning.txt: $(BOARD_DIR)/leon_pinning.csv - $(ALTERA_PINGEN) FS=";" $< > $@ - -board-pinning-clean: - -rm -f $(BOARD_DIR)/leon_pinning.csv \ - $(BOARD_DIR)/leon_pinning.txt - -board-pinning-check: $(BOARD_DIR)/leon_pinning.txt - @echo - @echo "Searching for pin double assignments..." - @for i in `sort --key=1 --field-separator=";" $< | cut --fields="1-1" --delimiter=";" | uniq --repeated`; do grep $$i $<; done diff --git a/boards/ge-hpe-midi-ep2s90/default.sdc b/boards/ge-hpe-midi-ep2s90/default.sdc deleted file mode 100644 index c1ca5e07..00000000 --- a/boards/ge-hpe-midi-ep2s90/default.sdc +++ /dev/null @@ -1,52 +0,0 @@ -# Synplicity, Inc. constraint file -# /home/jiri/ibm/vhdl/grlib/boards/gr-pci-xc2v/default.sdc -# Written on Fri Jul 30 18:56:40 2004 -# by Synplify Pro, 7.6 Scope Editor - -# -# Clocks -# -define_clock -name -disable {clk} -freq 100.000 -clockgroup default_clkgroup -define_clock -name -disable {pci_clk} -freq 40.000 -clockgroup pci_clkgroup - -# -# Clock to Clock -# - -# -# Inputs/Outputs -# -define_output_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {clk:r} -define_input_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {clk:r} -define_output_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {pci_clk:r} -define_input_delay -disable -default 18.00 -improve 0.00 -route 0.00 -ref {pci_clk:r} -define_input_delay -disable {pci_rst} 0.00 -improve 0.00 -route 0.00 -ref {pci_clk:r} - -# -# Registers -# - -# -# Multicycle Path -# - -# -# False Path -# - -# -# Delay Path -# - -# -# Attributes -# -define_global_attribute syn_useioff {1} - -# -# Compile Points -# - -# -# Other Constraints -# diff --git a/boards/ge-hpe-midi-ep2s90/leon3hpe.qsf b/boards/ge-hpe-midi-ep2s90/leon3hpe.qsf deleted file mode 100644 index 64720950..00000000 --- a/boards/ge-hpe-midi-ep2s90/leon3hpe.qsf +++ /dev/null @@ -1,687 +0,0 @@ -# Pin & Location Assignments -# ========================== -set_location_assignment PIN_AK11 -to address[0] -comment CB3_DATA6CB2_A0 -set_location_assignment PIN_AH8 -to address[1] -comment CB3_DATA0CB2_A1 -set_location_assignment PIN_J15 -to address[10] -comment MEMORY_A8 -set_location_assignment PIN_K13 -to address[11] -comment MEMORY_A9 -set_location_assignment PIN_D10 -to address[12] -comment MEMORY_A10 -set_location_assignment PIN_K15 -to address[13] -comment MEMORY_A11 -set_location_assignment PIN_H14 -to address[14] -comment MEMORY_A12 -set_location_assignment PIN_J12 -to address[15] -comment MEMORY_A13 -set_location_assignment PIN_J14 -to address[16] -comment MEMORY_A14 -set_location_assignment PIN_K12 -to address[17] -comment MEMORY_A15 -set_location_assignment PIN_E8 -to address[18] -comment MEMORY_A16 -set_location_assignment PIN_G13 -to address[19] -comment MEMORY_A17 -set_location_assignment PIN_E13 -to address[2] -comment MEMORY_A0 -set_location_assignment PIN_H13 -to address[20] -comment MEMORY_A18 -set_location_assignment PIN_L12 -to address[21] -comment MEMORY_A19 -set_location_assignment PIN_E7 -to address[22] -comment MEMORY_A20 -set_location_assignment PIN_G12 -to address[23] -comment MEMORY_A21 -set_location_assignment PIN_H12 -to address[24] -comment MEMORY_A22 -set_location_assignment PIN_AJ7 -to address[25] -comment CB3_DATA1CB2_A10 -set_location_assignment PIN_P2 -to address[26] -comment CB4_DATA26CB1_RX_01_N -set_location_assignment PIN_P1 -to address[27] -comment CB4_DATA27CB1_RX_01_P -set_location_assignment PIN_L17 -to address[3] -comment MEMORY_A1 -set_location_assignment PIN_K17 -to address[4] -comment MEMORY_A2 -set_location_assignment PIN_L13 -to address[5] -comment MEMORY_A3 -set_location_assignment PIN_L16 -to address[6] -comment MEMORY_A4 -set_location_assignment PIN_J13 -to address[7] -comment MEMORY_A5 -set_location_assignment PIN_D11 -to address[8] -comment MEMORY_A6 -set_location_assignment PIN_K16 -to address[9] -comment MEMORY_A7 -set_location_assignment PIN_Y5 -to can_rxd -comment CAN_RXD -set_location_assignment PIN_Y6 -to can_stb -comment CAN_STB -set_location_assignment PIN_AA8 -to can_txd -comment CAN_TXD -set_location_assignment PIN_T3 -to clk -comment DUT1_CLK100M -#set_location_assignment PIN_A17 -to clk -comment DUT1_CLK14P -set_location_assignment PIN_A12 -to data[0] -comment MEMORY_DQ0 -set_location_assignment PIN_B13 -to data[1] -comment MEMORY_DQ1 -set_location_assignment PIN_B9 -to data[10] -comment MEMORY_DQ10 -set_location_assignment PIN_C10 -to data[11] -comment MEMORY_DQ11 -set_location_assignment PIN_A9 -to data[12] -comment MEMORY_DQ12 -set_location_assignment PIN_F10 -to data[13] -comment MEMORY_DQ13 -set_location_assignment PIN_B8 -to data[14] -comment MEMORY_DQ14 -set_location_assignment PIN_C9 -to data[15] -comment MEMORY_DQ15 -set_location_assignment PIN_A8 -to data[16] -comment MEMORY_DQ16 -set_location_assignment PIN_D8 -to data[17] -comment MEMORY_DQ17 -set_location_assignment PIN_B7 -to data[18] -comment MEMORY_DQ18 -set_location_assignment PIN_C7 -to data[19] -comment MEMORY_DQ19 -set_location_assignment PIN_B11 -to data[2] -comment MEMORY_DQ2 -set_location_assignment PIN_A7 -to data[20] -comment MEMORY_DQ20 -set_location_assignment PIN_D7 -to data[21] -comment MEMORY_DQ21 -set_location_assignment PIN_B6 -to data[22] -comment MEMORY_DQ22 -set_location_assignment PIN_C6 -to data[23] -comment MEMORY_DQ23 -set_location_assignment PIN_A6 -to data[24] -comment MEMORY_DQ24 -set_location_assignment PIN_D6 -to data[25] -comment MEMORY_DQ25 -set_location_assignment PIN_B5 -to data[26] -comment MEMORY_DQ26 -set_location_assignment PIN_E6 -to data[27] -comment MEMORY_DQ27 -set_location_assignment PIN_A5 -to data[28] -comment MEMORY_DQ28 -set_location_assignment PIN_C5 -to data[29] -comment MEMORY_DQ29 -set_location_assignment PIN_D13 -to data[3] -comment MEMORY_DQ3 -set_location_assignment PIN_C4 -to data[30] -comment MEMORY_DQ30 -set_location_assignment PIN_E5 -to data[31] -comment MEMORY_DQ31 -set_location_assignment PIN_A11 -to data[4] -comment MEMORY_DQ4 -set_location_assignment PIN_F12 -to data[5] -comment MEMORY_DQ5 -set_location_assignment PIN_B10 -to data[6] -comment MEMORY_DQ6 -set_location_assignment PIN_C11 -to data[7] -comment MEMORY_DQ7 -set_location_assignment PIN_A10 -to data[8] -comment MEMORY_DQ8 -set_location_assignment PIN_E11 -to data[9] -comment MEMORY_DQ9 -set_location_assignment PIN_M2 -to dsuactn -comment CB4_DATA30CB1_RX_02_N -set_location_assignment PIN_E26 -to dsubre -comment TST_STEP -set_location_assignment PIN_AB3 -to dsurx -comment RS0_RXD_LVTTL -set_location_assignment PIN_AB9 -to dsutx -comment RS0_TXD_LVTTL -set_location_assignment PIN_W31 -to dsw[0] -comment DSW0 -set_location_assignment PIN_Y31 -to dsw[1] -comment DSW1 -set_location_assignment PIN_AA32 -to dsw[2] -comment DSW2 -set_location_assignment PIN_AA31 -to dsw[3] -comment DSW3 -set_location_assignment PIN_AC32 -to dsw[4] -comment DSW4 -set_location_assignment PIN_AC31 -to dsw[5] -comment DSW5 -set_location_assignment PIN_AD32 -to dsw[6] -comment DSW6 -set_location_assignment PIN_AD31 -to dsw[7] -comment DSW7 -set_location_assignment PIN_AH2 -to emdc -comment ETH_MDC -set_location_assignment PIN_AJ1 -to emdio -comment ETH_MDIO -set_location_assignment PIN_M1 -to errorn -comment CB4_DATA31CB1_RX_02_P -set_location_assignment PIN_E16 -to erx_clk -comment ETH_RXCLK -set_location_assignment PIN_U11 -to erx_col -comment ETH_COL -set_location_assignment PIN_AG2 -to erx_crs -comment ETH_CRS -set_location_assignment PIN_AG1 -to erx_dv -comment ETH_RXDV -set_location_assignment PIN_AB1 -to erx_er -comment ETH_RXER -set_location_assignment PIN_AE2 -to erxd[0] -comment ETH_RXD0 -set_location_assignment PIN_AD2 -to erxd[1] -comment ETH_RXD1 -set_location_assignment PIN_AD1 -to erxd[2] -comment ETH_RXD2 -set_location_assignment PIN_AC2 -to erxd[3] -comment ETH_RXD3 -set_location_assignment PIN_A16 -to etx_clk -comment ETH_TXCLK -set_location_assignment PIN_AF1 -to etx_en -comment ETH_TXEN -set_location_assignment PIN_Y3 -to etx_er -comment ETH_TXER -set_location_assignment PIN_AC1 -to etxd[0] -comment ETH_TXD0 -set_location_assignment PIN_AB2 -to etxd[1] -comment ETH_TXD1 -set_location_assignment PIN_AA2 -to etxd[2] -comment ETH_TXD2 -set_location_assignment PIN_AA1 -to etxd[3] -comment ETH_TXD3 -set_location_assignment PIN_L2 -to iosn -comment CB4_DATA10CB1_RX_03_N -set_location_assignment PIN_A23 -to lcd_enable -comment LCD_ENABLE -set_location_assignment PIN_B23 -to lcd_regsel -comment LCD_REGSEL -set_location_assignment PIN_D25 -to lcd_rw -comment LCD_RW -set_location_assignment PIN_B14 -to oen -comment "MEMORY_OE#" -set_location_assignment PIN_B15 -to ps2_clk[0] -comment PS2_KBCLK -set_location_assignment PIN_C16 -to ps2_clk[1] -comment PS2_MCLK -set_location_assignment PIN_C15 -to ps2_data[0] -comment PS2_KBDAT -set_location_assignment PIN_D16 -to ps2_data[1] -comment PS2_MDAT -set_location_assignment PIN_L1 -to ramoen[0] -comment CB4_DATA32CB1_RX_03_P -set_location_assignment PIN_K2 -to ramoen[1] -comment CB4_DATA33CB1_RX_04_N -set_location_assignment PIN_K1 -to ramoen[2] -comment CB4_DATA34CB1_RX_04_P -set_location_assignment PIN_J2 -to ramoen[3] -comment CB4_DATA35CB1_RX_05_N -set_location_assignment PIN_J1 -to ramoen[4] -comment CB4_DATA36CB1_RX_05_P -set_location_assignment PIN_B20 -to ramsn[0] -comment "SRAM_CE#" -set_location_assignment PIN_H2 -to ramsn[1] -comment CB4_DATA92CB1_RX_06_N -set_location_assignment PIN_H1 -to ramsn[2] -comment CB4_DATA93CB1_RX_06_P -set_location_assignment PIN_G2 -to ramsn[3] -comment CB4_DATA94CB1_RX_07_N -set_location_assignment PIN_G1 -to ramsn[4] -comment CB4_DATA95CB1_RX_07_P -set_location_assignment PIN_C13 -to rben[0] -comment "SRAM_BE0#" -set_location_assignment PIN_F14 -to rben[1] -comment "SRAM_BE1#" -set_location_assignment PIN_B12 -to rben[2] -comment "SRAM_BE2#" -set_location_assignment PIN_F13 -to rben[3] -comment "SRAM_BE3#" -set_location_assignment PIN_K4 -to read -comment CB4_DATA96CB1_RX_06_N -set_location_assignment PIN_U28 -to resetn -comment "USER_RESET#" -set_location_assignment PIN_V30 -to resoutn -comment "HPE_RESOUT#" -set_location_assignment PIN_C21 -to romsn[0] -comment "FLASH_CE#" -set_location_assignment PIN_K3 -to romsn[1] -comment CB4_DATA6CB1_RX_08_P -set_location_assignment PIN_J4 -to rwen[0] -comment CB4_DATA7CB1_RX_09_N -set_location_assignment PIN_J3 -to rwen[1] -comment CB4_DATA8CB1_RX_09_P -set_location_assignment PIN_G4 -to rwen[2] -comment CB4_DATA40CB1_RX_10_N -set_location_assignment PIN_G3 -to rwen[3] -comment CB4_DATA41CB1_RX_10_P -set_location_assignment PIN_AA3 -to rxd1 -comment RS1_RXD_LVTTL -set_location_assignment PIN_D32 -to sevensegment[0] -comment "HUMI_A#" -set_location_assignment PIN_F30 -to sevensegment[1] -comment "HUMI_B#" -set_location_assignment PIN_B29 -to sevensegment[2] -comment "HUMI_C#" -set_location_assignment PIN_D31 -to sevensegment[3] -comment "HUMI_D#" -set_location_assignment PIN_A29 -to sevensegment[4] -comment "HUMI_E#" -set_location_assignment PIN_F29 -to sevensegment[5] -comment "HUMI_F#" -set_location_assignment PIN_A28 -to sevensegment[6] -comment "HUMI_G#" -set_location_assignment PIN_B28 -to sevensegment[7] -comment "HUMI_DP#" -set_location_assignment PIN_B27 -to sevensegment[8] -comment "HUMI_SEG0#" -set_location_assignment PIN_E30 -to sevensegment[9] -comment "HUMI_SEG1#" -set_location_assignment PIN_B24 -to tst_col[0] -comment TST_COL0 -set_location_assignment PIN_E28 -to tst_col[1] -comment TST_COL1 -set_location_assignment PIN_A26 -to tst_col[2] -comment TST_COL2 -set_location_assignment PIN_AE32 -to tst_row[0] -comment TST_ROW0 -set_location_assignment PIN_AE31 -to tst_row[1] -comment TST_ROW1 -set_location_assignment PIN_AF32 -to tst_row[2] -comment TST_ROW2 -set_location_assignment PIN_AF31 -to tst_row[3] -comment TST_ROW3 -set_location_assignment PIN_W9 -to txd1 -comment RS1_TXD_LVTTL -set_location_assignment PIN_D19 -to writen -comment "MEMORY_WE#" -set_location_assignment PIN_Y11 -to led_enable -comment "HUMI_LED#" -set_location_assignment PIN_T32 -to ac97_bit_clk -comment AC97_BITCLK -set_location_assignment PIN_AD24 -to ac97_sync -comment AC97_SYNC -set_location_assignment PIN_AD25 -to ac97_sdata_out -comment AC97_SDATA_OUT -set_location_assignment PIN_AC8 -to ac97_sdata_in -comment AC97_SDATA_IN -set_location_assignment PIN_AJ18 -to ac97_ext_clk -comment AC97_EXT_CLK -set_location_assignment PIN_AC7 -to ac97_resetn -comment "AC97_RESET#" -set_location_assignment PIN_AK8 -to ac97_dbg_bit_clk -comment CB3_DATA41CB2_A11 -set_location_assignment PIN_AK12 -to ac97_dbg_sync -comment CB3_DATA40CB2_A12 -set_location_assignment PIN_AJ6 -to ac97_dbg_sdata_out -comment CB3_DATA39CB2_A13 -set_location_assignment PIN_AG9 -to ac97_dbg_sdata_in -comment CB3_DATA38CB2_A2 -set_location_assignment PIN_AG11 -to ac97_dbg_ext_clk -comment CB3_DATA37CB2_A3 -set_location_assignment PIN_AF12 -to ac97_dbg_resetn -comment CB3_DATA36CB2_A4 -set_location_assignment PIN_AK7 -to ac97_dbg_int -comment CB3_DATA35CB2_A5 -set_location_assignment PIN_AG8 -to ac97_dbg_int2 -comment CB3_DATA34CB2_A6 -set_location_assignment PIN_M25 -to vga_clk -comment VGA_CLK -set_location_assignment PIN_N23 -to vga_syncn -comment "VGA_SYNC#" -set_location_assignment PIN_K26 -to vga_blankn -comment "VGA_BLANK#" -set_location_assignment PIN_L24 -to vga_vsync -comment VGA_VSYNC -set_location_assignment PIN_K29 -to vga_hsync -comment VGA_HSYNC -set_location_assignment PIN_R27 -to vga_rd[7] -comment VGA_RD7 -set_location_assignment PIN_R26 -to vga_rd[6] -comment VGA_RD6 -set_location_assignment PIN_R25 -to vga_rd[5] -comment VGA_RD5 -set_location_assignment PIN_P29 -to vga_rd[4] -comment VGA_RD4 -set_location_assignment PIN_T27 -to vga_rd[3] -comment VGA_RD3 -set_location_assignment PIN_R28 -to vga_rd[2] -comment VGA_RD2 -set_location_assignment PIN_T28 -to vga_rd[1] -comment VGA_RD1 -set_location_assignment PIN_R29 -to vga_rd[0] -comment VGA_RD0 -set_location_assignment PIN_P24 -to vga_gr[7] -comment VGA_GR7 -set_location_assignment PIN_M30 -to vga_gr[6] -comment VGA_GR6 -set_location_assignment PIN_P25 -to vga_gr[5] -comment VGA_GR5 -set_location_assignment PIN_P26 -to vga_gr[4] -comment VGA_GR4 -set_location_assignment PIN_R23 -to vga_gr[3] -comment VGA_GR3 -set_location_assignment PIN_P27 -to vga_gr[2] -comment VGA_GR2 -set_location_assignment PIN_R24 -to vga_gr[1] -comment VGA_GR1 -set_location_assignment PIN_P28 -to vga_gr[0] -comment VGA_GR0 -set_location_assignment PIN_M24 -to vga_bl[7] -comment VGA_BL7 -set_location_assignment PIN_M26 -to vga_bl[6] -comment VGA_BL6 -set_location_assignment PIN_N24 -to vga_bl[5] -comment VGA_BL5 -set_location_assignment PIN_N26 -to vga_bl[4] -comment VGA_BL4 -set_location_assignment PIN_R22 -to vga_bl[3] -comment VGA_BL3 -set_location_assignment PIN_L30 -to vga_bl[2] -comment VGA_BL2 -set_location_assignment PIN_N25 -to vga_bl[1] -comment VGA_BL1 -set_location_assignment PIN_N27 -to vga_bl[0] -comment VGA_BL0 -set_location_assignment PIN_G21 -to sdcard_cs -comment SDCARD_CS -set_location_assignment PIN_H20 -to sdcard_di -comment SDCARD_DI -set_location_assignment PIN_D21 -to sdcard_sclk -comment SDCARD_SCLK -set_location_assignment PIN_K19 -to sdcard_do -comment SDCARD_DO -set_location_assignment PIN_U32 -to usb_clkout -comment USBD_CLKOUT -set_location_assignment PIN_L31 -to usb_d[15] -comment USBD_D15 -set_location_assignment PIN_K32 -to usb_d[14] -comment USBD_D14 -set_location_assignment PIN_M27 -to usb_d[13] -comment USBD_D13 -set_location_assignment PIN_L32 -to usb_d[12] -comment USBD_D12 -set_location_assignment PIN_M32 -to usb_d[11] -comment USBD_D11 -set_location_assignment PIN_M31 -to usb_d[10] -comment USBD_D10 -set_location_assignment PIN_M29 -to usb_d[9] -comment USBD_D9 -set_location_assignment PIN_N31 -to usb_d[8] -comment USBD_D8 -set_location_assignment PIN_P32 -to usb_d[7] -comment USBD_D7 -set_location_assignment PIN_P31 -to usb_d[6] -comment USBD_D6 -set_location_assignment PIN_N28 -to usb_d[5] -comment USBD_D5 -set_location_assignment PIN_R30 -to usb_d[4] -comment USBD_D4 -set_location_assignment PIN_N29 -to usb_d[3] -comment USBD_D3 -set_location_assignment PIN_R31 -to usb_d[2] -comment USBD_D2 -set_location_assignment PIN_N30 -to usb_d[1] -comment USBD_D1 -set_location_assignment PIN_T31 -to usb_d[0] -comment USBD_D0 -set_location_assignment PIN_G32 -to usb_linestate[1] -comment USBD_LINESTATE0 -set_location_assignment PIN_F32 -to usb_linestate[0] -comment USBD_LINESTATE1 -set_location_assignment PIN_E32 -to usb_opmode[1] -comment USBD_OPMODE1 -set_location_assignment PIN_J27 -to usb_opmode[0] -comment USBD_OPMODE0 -set_location_assignment PIN_H32 -to usb_rxactive -comment USBD_RXACTIVE -set_location_assignment PIN_J31 -to usb_rxerror -comment USBD_RXERROR -set_location_assignment PIN_L29 -to usb_rxvalid -comment USBD_RXVALID -set_location_assignment PIN_G31 -to usb_suspend -comment USBD_SUSPEND -set_location_assignment PIN_K27 -to usb_termsel -comment USBD_TERMSEL -set_location_assignment PIN_J32 -to usb_txready -comment USBD_TXREADY -set_location_assignment PIN_K31 -to usb_txvalid -comment USBD_TXVALID -set_location_assignment PIN_F31 -to usb_validh -comment USBD_VALIDH -set_location_assignment PIN_H31 -to usb_xcvrsel -comment USBD_XCRSEL -set_location_assignment PIN_E31 -to usb_dbus16 -comment USBD_DBUS16_8 -set_location_assignment PIN_H28 -to usb_unidir -comment USBD_UNIBIDI -set_location_assignment PIN_E25 -to adc_dout -comment ADC_DOUT -set_location_assignment PIN_AE25 -to adc_ain -comment ADC_AIN -set_location_assignment PIN_AD9 -to dac_out -comment DAC_OUT -set_location_assignment PIN_AH3 -to ereset -comment "ETH_RESET#" -set_location_assignment PIN_B26 -to usb_vbus -comment USBD_VBUS -set_location_assignment PIN_A27 -to usb_reset -comment USBD_RESET -set_location_assignment PIN_AA29 -to hpidata[0] -comment USB_GPIO0 -set_location_assignment PIN_W26 -to hpidata[1] -comment USB_GPIO1 -set_location_assignment PIN_AA30 -to hpidata[2] -comment USB_GPIO2 -set_location_assignment PIN_Y27 -to hpidata[3] -comment USB_GPIO3 -set_location_assignment PIN_AB28 -to hpidata[4] -comment USB_GPIO4 -set_location_assignment PIN_Y26 -to hpidata[5] -comment USB_GPIO5 -set_location_assignment PIN_AB29 -to hpidata[6] -comment USB_GPIO6 -set_location_assignment PIN_AA26 -to hpidata[7] -comment USB_GPIO7 -set_location_assignment PIN_AB30 -to hpidata[8] -comment USB_GPIO8 -set_location_assignment PIN_AB27 -to hpidata[9] -comment USB_GPIO9 -set_location_assignment PIN_AC26 -to hpidata[10] -comment USB_GPIO10 -set_location_assignment PIN_AB26 -to hpidata[11] -comment USB_GPIO11 -set_location_assignment PIN_AC27 -to hpidata[12] -comment USB_GPIO12 -set_location_assignment PIN_AC25 -to hpidata[13] -comment USB_GPIO13 -set_location_assignment PIN_AD27 -to hpidata[14] -comment USB_GPIO14 -set_location_assignment PIN_AE28 -to hpidata[15] -comment USB_GPIO15 -set_location_assignment PIN_AG30 -to hpiaddr[0] -comment USB_GPIO19 -set_location_assignment PIN_AF30 -to hpiaddr[1] -comment USB_GPIO20 -set_location_assignment PIN_AD26 -to hpicsn -comment USB_GPIO21 -set_location_assignment PIN_AF29 -to hpiwrn -comment USB_GPIO22 -set_location_assignment PIN_AD8 -to hpiint -comment USB_GPIO24 -set_location_assignment PIN_AE27 -to hpirdn -comment USB_GPIO23 -set_location_assignment PIN_V24 -to exp_datai[0] -comment CB4_DATA51 -set_location_assignment PIN_W27 -to exp_datai[1] -comment CB4_DATA53 -set_location_assignment PIN_AG18 -to exp_datai[2] -comment CB4_DATA55 -set_location_assignment PIN_AD18 -to exp_datai[3] -comment CB4_DATA57 -set_location_assignment PIN_AG15 -to exp_datai[4] -comment CB4_DATA59 -set_location_assignment PIN_AH14 -to exp_datai[5] -comment CB4_DATA61 -set_location_assignment PIN_AG14 -to exp_datai[6] -comment CB4_DATA63 -set_location_assignment PIN_AH29 -to exp_datai[7] -comment CB4_DATA65 -set_location_assignment PIN_AH30 -to exp_datai[8] -comment CB4_DATA67 -set_location_assignment PIN_AH13 -to exp_datai[9] -comment CB4_DATA69 -set_location_assignment PIN_AH32 -to exp_datai[10] -comment CB4_DATA72 -set_location_assignment PIN_AB15 -to exp_datai[11] -comment CB4_DATA73 -set_location_assignment PIN_AC15 -to exp_datai[12] -comment CB4_DATA75 -set_location_assignment PIN_AD19 -to exp_datai[13] -comment CB4_DATA78 -set_location_assignment PIN_AC14 -to exp_datai[14] -comment CB4_DATA79 -set_location_assignment PIN_AD13 -to exp_datai[15] -comment CB4_DATA81 -set_location_assignment PIN_AC13 -to exp_datai[16] -comment CB4_DATA83 -set_location_assignment PIN_AE14 -to exp_datai[17] -comment CB4_DATA85 -set_location_assignment PIN_AL16 -to exp_datai[18] -comment CB4_DATA87 -set_location_assignment PIN_AL14 -to exp_datai[19] -comment CB4_DATA89 -set_location_assignment PIN_AE19 -to exp_datao[0] -comment CB4_DATA52 -set_location_assignment PIN_AC9 -to exp_datao[1] -comment CB4_DATA54 -set_location_assignment PIN_AD10 -to exp_datao[2] -comment CB4_DATA56 -set_location_assignment PIN_AC11 -to exp_datao[3] -comment CB4_DATA58 -set_location_assignment PIN_AD11 -to exp_datao[4] -comment CB4_DATA60 -set_location_assignment PIN_AE12 -to exp_datao[5] -comment CB4_DATA62 -set_location_assignment PIN_AF13 -to exp_datao[6] -comment CB4_DATA64 -set_location_assignment PIN_AF23 -to exp_datao[7] -comment CB4_DATA66 -set_location_assignment PIN_AE23 -to exp_datao[8] -comment CB4_DATA68 -set_location_assignment PIN_AG32 -to exp_datao[9] -comment CB4_DATA70 -set_location_assignment PIN_AC16 -to exp_datao[10] -comment CB4_DATA71 -set_location_assignment PIN_AJ32 -to exp_datao[11] -comment CB4_DATA74 -set_location_assignment PIN_AJ31 -to exp_datao[12] -comment CB4_DATA76 -set_location_assignment PIN_AB14 -to exp_datao[13] -comment CB4_DATA77 -set_location_assignment PIN_AB18 -to exp_datao[14] -comment CB4_DATA80 -set_location_assignment PIN_AB17 -to exp_datao[15] -comment CB4_DATA82 -set_location_assignment PIN_AC17 -to exp_datao[16] -comment CB4_DATA84 -set_location_assignment PIN_AJ14 -to exp_datao[17] -comment CB4_DATA86 -set_location_assignment PIN_AM14 -to exp_datao[18] -comment CB4_DATA88 -set_location_assignment PIN_AL12 -to exp_datao[19] -comment CB4_DATA90 -set_location_assignment PIN_AH24 -to dbg_equal -comment CB4_DATA47CB2_DQ14 -set_location_assignment PIN_E18 -to sdclk[1] -comment t -set_location_assignment PIN_D18 -to sdclk[0] -comment t -set_location_assignment PIN_AE5 -to sdcke[1] -comment t -set_location_assignment PIN_AE6 -to sdcke[0] -comment t -set_location_assignment PIN_AB5 -to sdaddr[12] -comment t -set_location_assignment PIN_AC12 -to sdaddr[11] -comment t -set_location_assignment PIN_AE4 -to sdaddr[10] -comment t -set_location_assignment PIN_AB13 -to sdaddr[9] -comment t -set_location_assignment PIN_AH4 -to sdaddr[8] -comment t -set_location_assignment PIN_AE13 -to sdaddr[7] -comment t -set_location_assignment PIN_AC18 -to sdaddr[6] -comment t -set_location_assignment PIN_AE26 -to sdaddr[5] -comment t -set_location_assignment PIN_AF19 -to sdaddr[4] -comment t -set_location_assignment PIN_AH31 -to sdaddr[3] -comment t -set_location_assignment PIN_AG12 -to sdaddr[2] -comment t -set_location_assignment PIN_AG31 -to sdaddr[1] -comment t -set_location_assignment PIN_AG13 -to sdaddr[0] -comment t -set_location_assignment PIN_C12 -to sddq[63] -comment t -set_location_assignment PIN_D14 -to sddq[62] -comment t -set_location_assignment PIN_F16 -to sddq[61] -comment t -set_location_assignment PIN_F15 -to sddq[60] -comment t -set_location_assignment PIN_C22 -to sddq[59] -comment t -set_location_assignment PIN_E22 -to sddq[58] -comment t -set_location_assignment PIN_F23 -to sddq[57] -comment t -set_location_assignment PIN_D22 -to sddq[56] -comment t -set_location_assignment PIN_C25 -to sddq[55] -comment t -set_location_assignment PIN_C26 -to sddq[54] -comment t -set_location_assignment PIN_D26 -to sddq[53] -comment t -set_location_assignment PIN_D28 -to sddq[52] -comment t -set_location_assignment PIN_C29 -to sddq[51] -comment t -set_location_assignment PIN_G30 -to sddq[50] -comment t -set_location_assignment PIN_H30 -to sddq[49] -comment t -set_location_assignment PIN_H29 -to sddq[48] -comment t -set_location_assignment PIN_K30 -to sddq[47] -comment t -set_location_assignment PIN_AH1 -to sddq[46] -comment t -set_location_assignment PIN_AF2 -to sddq[45] -comment t -set_location_assignment PIN_AE1 -to sddq[44] -comment t -set_location_assignment PIN_U23 -to sddq[43] -comment t -set_location_assignment PIN_U10 -to sddq[42] -comment t -set_location_assignment PIN_AM4 -to sddq[41] -comment t -set_location_assignment PIN_AK4 -to sddq[40] -comment t -set_location_assignment PIN_AL4 -to sddq[39] -comment t -set_location_assignment PIN_V10 -to sddq[38] -comment t -set_location_assignment PIN_AL5 -to sddq[37] -comment t -set_location_assignment PIN_AM5 -to sddq[36] -comment t -set_location_assignment PIN_AL6 -to sddq[35] -comment t -set_location_assignment PIN_AM6 -to sddq[34] -comment t -set_location_assignment PIN_AL7 -to sddq[33] -comment t -set_location_assignment PIN_AM7 -to sddq[32] -comment t -set_location_assignment PIN_AL8 -to sddq[31] -comment t -set_location_assignment PIN_E27 -to sddq[30] -comment t -set_location_assignment PIN_L19 -to sddq[29] -comment t -set_location_assignment PIN_G22 -to sddq[28] -comment t -set_location_assignment PIN_K20 -to sddq[27] -comment t -set_location_assignment PIN_AB10 -to sddq[26] -comment t -set_location_assignment PIN_AD14 -to sddq[25] -comment t -set_location_assignment PIN_AB16 -to sddq[24] -comment t -set_location_assignment PIN_W25 -to sddq[23] -comment t -set_location_assignment PIN_V23 -to sddq[22] -comment t -set_location_assignment PIN_U22 -to sddq[21] -comment t -set_location_assignment PIN_G11 -to sddq[20] -comment t -set_location_assignment PIN_D5 -to sddq[19] -comment t -set_location_assignment PIN_J19 -to sddq[18] -comment t -set_location_assignment PIN_F17 -to sddq[17] -comment t -set_location_assignment PIN_E14 -to sddq[16] -comment t -set_location_assignment PIN_A14 -to sddq[15] -comment t -set_location_assignment PIN_E19 -to sddq[14] -comment t -set_location_assignment PIN_B16 -to sddq[13] -comment t -set_location_assignment PIN_B17 -to sddq[12] -comment t -set_location_assignment PIN_B21 -to sddq[11] -comment t -set_location_assignment PIN_A22 -to sddq[10] -comment t -set_location_assignment PIN_B22 -to sddq[9] -comment t -set_location_assignment PIN_D27 -to sddq[8] -comment t -set_location_assignment PIN_A24 -to sddq[7] -comment t -set_location_assignment PIN_C24 -to sddq[6] -comment t -set_location_assignment PIN_T23 -to sddq[5] -comment t -set_location_assignment PIN_F22 -to sddq[4] -comment t -set_location_assignment PIN_H21 -to sddq[3] -comment t -set_location_assignment PIN_L15 -to sddq[2] -comment t -set_location_assignment PIN_AF4 -to sddq[1] -comment t -set_location_assignment PIN_AB12 -to sddq[0] -comment t -set_location_assignment PIN_AB32 -to sddqm[7] -comment t -set_location_assignment PIN_AB31 -to sddqm[6] -comment t -set_location_assignment PIN_V31 -to sddqm[5] -comment t -set_location_assignment PIN_W32 -to sddqm[4] -comment t -set_location_assignment PIN_AC22 -to sddqm[3] -comment t -set_location_assignment PIN_C8 -to sddqm[2] -comment t -set_location_assignment PIN_E9 -to sddqm[1] -comment t -set_location_assignment PIN_F9 -to sddqm[0] -comment t -set_location_assignment PIN_AD4 -to sdwen -comment t -set_location_assignment PIN_W10 -to sdcasn -comment t -set_location_assignment PIN_W11 -to sdrasn -comment t -set_location_assignment PIN_AD30 -to sdcsn[1] -comment t -set_location_assignment PIN_AD12 -to sdcsn[0] -comment t -set_location_assignment PIN_W22 -to sdba[1] -comment t -set_location_assignment PIN_AB11 -to sdba[0] -comment t - -# Timing Assignments -# ================== -set_global_assignment -name IGNORE_CLOCK_SETTINGS ON -set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -set_global_assignment -name FMAX_REQUIREMENT "100 MHz" - -# Analysis & Synthesis Assignments -# ================================ -set_global_assignment -name DEVICE_FILTER_PACKAGE FBGA -set_global_assignment -name DEVICE_FILTER_PIN_COUNT 1020 -set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 3 -set_global_assignment -name EDA_DESIGN_ENTRY_SYNTHESIS_TOOL "Synplify Pro" -set_global_assignment -name FAMILY "Stratix II" -set_global_assignment -name CYCLONE_OPTIMIZATION_TECHNIQUE AREA -set_global_assignment -name STRATIX_OPTIMIZATION_TECHNIQUE SPEED -set_global_assignment -name APEX20K_OPTIMIZATION_TECHNIQUE SPEED -set_global_assignment -name TOP_LEVEL_ENTITY leon3hpe -set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF -set_global_assignment -name AUTO_ENABLE_SMART_COMPILE ON -set_global_assignment -name VERILOG_SHOW_LMF_MAPPING_MESSAGES OFF - -# Fitter Assignments -# ================== -set_global_assignment -name DEVICE EP2S90F1020C3 -set_global_assignment -name STRATIXII_CONFIGURATION_SCHEME "FAST PASSIVE PARALLEL" -set_global_assignment -name CYCLONE_CONFIGURATION_SCHEME "PASSIVE SERIAL" -set_global_assignment -name ENABLE_DEVICE_WIDE_RESET OFF -set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED WITH WEAK PULL-UP" -set_global_assignment -name RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION "USE AS REGULAR IO" -set_global_assignment -name RESERVE_ASDO_AFTER_CONFIGURATION "USE AS REGULAR IO" -#set_global_assignment -name RESERVE_NCSO_AFTER_CONFIGURATION "USE AS REGULAR IO" -set_global_assignment -name OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING OFF -set_global_assignment -name IO_PLACEMENT_OPTIMIZATION OFF -set_global_assignment -name INC_PLC_MODE OFF -set_global_assignment -name ROUTING_BACK_ANNOTATION_MODE OFF -set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL" -set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 2 - -# Timing Analysis Assignments -# =========================== -set_global_assignment -name MAX_SCC_SIZE 50 - -# EDA Netlist Writer Assignments -# ============================== -set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim (VHDL output from Quartus II)" - -# Assembler Assignments -# ===================== -set_global_assignment -name ON_CHIP_BITSTREAM_DECOMPRESSION ON -set_global_assignment -name COMPRESSION_MODE ON -set_global_assignment -name APEX20K_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name EXCALIBUR_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name MERCURY_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name FLEX6K_CONFIGURATION_DEVICE EPC1 -set_global_assignment -name FLEX10K_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name CYCLONE_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name STRATIX_CONFIGURATION_DEVICE EPC8 -set_global_assignment -name EPROM_USE_CHECKSUM_AS_USERCODE ON -set_global_assignment -name AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE OFF -set_global_assignment -name DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE ON -set_global_assignment -name GENERATE_TTF_FILE ON - -# Simulator Assignments -# ===================== -set_global_assignment -name START_TIME "0 ns" -set_global_assignment -name GLITCH_INTERVAL "1 ns" - -# Design Assistant Assignments -# ============================ -set_global_assignment -name DRC_REPORT_TOP_FANOUT OFF -set_global_assignment -name DRC_REPORT_FANOUT_EXCEEDING OFF -set_global_assignment -name ASSG_CAT OFF -set_global_assignment -name ASSG_RULE_MISSING_FMAX OFF -set_global_assignment -name ASSG_RULE_MISSING_TIMING OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_ASYN_RAM OFF -set_global_assignment -name CLK_CAT OFF -set_global_assignment -name CLK_RULE_COMB_CLOCK OFF -set_global_assignment -name CLK_RULE_INV_CLOCK OFF -set_global_assignment -name CLK_RULE_GATING_SCHEME OFF -set_global_assignment -name CLK_RULE_INPINS_CLKNET OFF -set_global_assignment -name CLK_RULE_CLKNET_CLKSPINES OFF -set_global_assignment -name CLK_RULE_MIX_EDGES OFF -set_global_assignment -name RESET_CAT OFF -set_global_assignment -name RESET_RULE_INPINS_RESETNET OFF -set_global_assignment -name RESET_RULE_UNSYNCH_EXRESET OFF -set_global_assignment -name RESET_RULE_IMSYNCH_EXRESET OFF -set_global_assignment -name RESET_RULE_COMB_ASYNCH_RESET OFF -set_global_assignment -name RESET_RULE_UNSYNCH_ASYNCH_DOMAIN OFF -set_global_assignment -name RESET_RULE_IMSYNCH_ASYNCH_DOMAIN OFF -set_global_assignment -name TIMING_CAT OFF -set_global_assignment -name TIMING_RULE_SHIFT_REG OFF -set_global_assignment -name TIMING_RULE_COIN_CLKEDGE OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE OFF -set_global_assignment -name NONSYNCHSTRUCT_CAT OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_COMBLOOP OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_REG_LOOP OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_DELAY_CHAIN OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_RIPPLE_CLK OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_SRLATCH OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED OFF -set_global_assignment -name ACLK_CAT OFF -set_global_assignment -name ACLK_RULE_NO_SZER_ACLK_DOMAIN OFF -set_global_assignment -name ACLK_RULE_SZER_BTW_ACLK_DOMAIN OFF -set_global_assignment -name ACLK_RULE_IMSZER_ADOMAIN OFF -set_global_assignment -name HCPY_VREF_PINS OFF - -# Programmer Assignments -# ====================== -set_global_assignment -name GENERATE_JAM_FILE ON -set_global_assignment -name GENERATE_JBC_FILE ON - -# SignalTap II Assignments -# ======================== -set_global_assignment -name ENABLE_SIGNALTAP OFF - -# LogicLock Region Assignments -# ============================ -set_global_assignment -name LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT OFF - -# --------------------------------------------- -# start EDA_TOOL_SETTINGS(eda_design_synthesis) - - # Analysis & Synthesis Assignments - # ================================ -set_global_assignment -name EDA_INPUT_DATA_FORMAT "VERILOG HDL" -section_id eda_design_synthesis -set_global_assignment -name EDA_LMF_FILE synplcty.lmf -section_id eda_design_synthesis - - # EDA Netlist Writer Assignments - # ============================== -set_global_assignment -name EDA_OUTPUT_DATA_FORMAT EDIF -section_id eda_design_synthesis - -# end EDA_TOOL_SETTINGS(eda_design_synthesis) -# ------------------------------------------- - -# --------------------------------------- -# start EDA_TOOL_SETTINGS(eda_simulation) - - # EDA Netlist Writer Assignments - # ============================== -set_global_assignment -name EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION ON -section_id eda_simulation -set_global_assignment -name EDA_OUTPUT_DATA_FORMAT VHDL -section_id eda_simulation - -# end EDA_TOOL_SETTINGS(eda_simulation) -# ------------------------------------- - -# ---------------------- -# start ENTITY(leon3hpe) - - # Timing Assignments - # ================== -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[0] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[1] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[2] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[3] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[4] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[5] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[6] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[7] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[8] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[9] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[10] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[11] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[12] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[13] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[14] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[15] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[16] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[17] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[18] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[19] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[20] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[21] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[22] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[23] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[24] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[25] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[26] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[27] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[28] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[29] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[30] -set_instance_assignment -name TSU_REQUIREMENT "10 ns" -from * -to data[31] - - # Fitter Assignments - # ================== -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdclk[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[4] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[5] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[6] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[7] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[8] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[9] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[10] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[11] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[12] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[13] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[14] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[15] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[16] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[17] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[18] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[19] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[20] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[21] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[22] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[23] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[24] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[25] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[26] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to address[27] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to bufdir -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to bufoen -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[4] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[5] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[6] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[7] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[8] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[9] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[10] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[11] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[12] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[13] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[14] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[15] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[16] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[17] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[18] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[19] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[20] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[21] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[22] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[23] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[24] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[25] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[26] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[27] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[28] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[29] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[30] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to data[31] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erx_clk -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erxd[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erxd[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erxd[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to erxd[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etx_clk -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etxd[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etxd[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etxd[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to etxd[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to rwen[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to rwen[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to rwen[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to rwen[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdba[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdba[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdcasn -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdclk[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdcsn[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdcsn[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sddqm[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sddqm[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sddqm[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sddqm[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdrasn -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to sdwen -set_instance_assignment -name CURRENT_STRENGTH_NEW "STRENGTH 8MA" -to writen - -# end ENTITY(leon3hpe) -# -------------------- - -set_global_assignment -name LAST_QUARTUS_VERSION 7.2 -set_global_assignment -name ENABLE_ADVANCED_IO_TIMING OFF -set_instance_assignment -name WEAK_PULL_UP_RESISTOR ON -to resetn -set_global_assignment -name SMART_RECOMPILE ON -set_global_assignment -name NUM_PARALLEL_PROCESSORS 2 -set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 -set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 -set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" -set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" -set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS" diff --git a/boards/ge-hpe-mini-lattice/Makefile.inc b/boards/ge-hpe-mini-lattice/Makefile.inc deleted file mode 100755 index b0f01ae5..00000000 --- a/boards/ge-hpe-mini-lattice/Makefile.inc +++ /dev/null @@ -1,12 +0,0 @@ -TECHNOLOGY=LATTICE-ECP -PART=LFECP33E -PACKAGE=F484C -ISPLIB=ep5g00p -ISPPACKAGE=FPBGA484 -SPEED=-5 -SYNFREQ=50 -PROMGENPAR= -exe $(ISPVM_DIR)/ispufw -op p -prj $(TOP) -if $(TOP).bit -oft -int -of $(TOP).mcs -MANUFACTURER=Lattice -MGCPART=$(PART) -MGCPACKAGE=$(ISPPACKAGE) -MGCTECHNOLOGY=LatticeECP-DSP diff --git a/boards/ge-hpe-mini-lattice/default.sdc b/boards/ge-hpe-mini-lattice/default.sdc deleted file mode 100755 index 9e58382d..00000000 --- a/boards/ge-hpe-mini-lattice/default.sdc +++ /dev/null @@ -1,47 +0,0 @@ -# Synplicity, Inc. constraint file -# /home/jiri/ibm/vhdl/grlib/boards/gr-pci-xc2v/default.sdc -# Written on Fri Jul 30 18:56:40 2004 -# by Synplify Pro, 7.6 Scope Editor - -# -# Clocks -# -define_clock -name {clk} -freq 35.000 -clockgroup default_clkgroup - -#define_clock -name {clkgen0.clkm_inferred_clock} -freq 60.000 -clockgroup clkmgroup -define_clock -name {clkgen0.ddrclk0_inferred_clock} -freq 120.000 -clockgroup ddrclkgroup - -# -# Inputs/Outputs -# -#define_output_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {clk:r} -define_input_delay -default 4.00 -improve 0.00 -route 0.00 -ref {clkgen0.ddrclk0_inferred_clock:r} - -# -# Registers -# - -# -# Multicycle Path -# - -# -# False Path -# - -# -# Delay Path -# - -# -# Attributes -# -define_global_attribute syn_useioff {1} -define_global_attribute syn_netlist_hierarchy {0} -# -# Compile Points -# - -# -# Other Constraints -# diff --git a/boards/ge-hpe-mini-lattice/default.ut b/boards/ge-hpe-mini-lattice/default.ut deleted file mode 100644 index 8d055524..00000000 --- a/boards/ge-hpe-mini-lattice/default.ut +++ /dev/null @@ -1,6 +0,0 @@ --g CfgMode:Disable --g ReadBack:SRAM --g RamCfg:Reset --g SYNSRC:No --g PllSET:None - diff --git a/boards/ge-hpe-mini-lattice/leon3mini.lpf b/boards/ge-hpe-mini-lattice/leon3mini.lpf deleted file mode 100644 index 98ccd074..00000000 --- a/boards/ge-hpe-mini-lattice/leon3mini.lpf +++ /dev/null @@ -1,657 +0,0 @@ -BLOCK RESETPATHS ; -BLOCK ASYNCPATHS ; -FREQUENCY PORT "clk" 25.000000 MHz ; -#USE SECONDARY NET clk ; -FREQUENCY PORT "etx_clk" 25.000000 MHz ; -FREQUENCY PORT "erx_clk" 25.000000 MHz ; -#FREQUENCY NET "clkgen0_clkin200" 200.000000 MHz ; -FREQUENCY NET "clkm" 50.000000 MHz ; -FREQUENCY NET "ddrclk0" 100.000000 MHz ; -#FREQUENCY NET "ddrclk90" 100.000000 MHz ; -FREQUENCY NET "ddrclk180" 100.000000 MHz ; -FREQUENCY NET "ddrclk270" 100.000000 MHz ; -FREQUENCY NET "clkgen0_clk180_fb" 100.000000 MHz ; -FREQUENCY NET "clkgen0_clkgen50_b0_clkm_inferred_clock" 100.000000 MHz ; -FREQUENCY NET "clkgen0_clkgen50_b0_un1_pllm50_1" 100.000000 MHz ; -FREQUENCY NET "clkgen0_clkm_fb" 100.000000 MHz ; -FREQUENCY NET "clkgen0_ddrclk0_inferred_clock" 100.000000 MHz ; -FREQUENCY NET "clkgen0_un1_pllddr1_5" 100.000000 MHz ; -FREQUENCY NET "clkgen0_un1_pllddr2_5" 100.000000 MHz ; -FREQUENCY NET "clk_c" 25.000000 MHz ; -FREQUENCY NET "clkgen0_un1_pllddr1_1" 100.000000 MHz ; -FREQUENCY NET "clkgen0_un1_pllddr2" 100.000000 MHz ; -#USE PRIMARY PURE NET clkm; -#USE PRIMARY PURE NET ddrclk0; -#USE PRIMARY PURE NET ddrclk180; -#USE PRIMARY PURE NET ddrclk270; -INPUT_SETUP ALLPORTS 5.000000 ns CLKPORT "clk" ; -CLOCK_TO_OUT ALLPORTS 20.000000 ns CLKPORT "clk" ; -BLOCK NET "resetn_c" ; -BLOCK NET "romrstn_c_r*" ; -COMMERCIAL; -#DEFINE PORT GROUP "ddrgroup" "ddr*"; -#IOBUF GROUP "ddrgroup" IO_TYPE=SSTL25D_II ; -# Assign IO_TYPE Attributes -IOBUF PORT "ddr_dqs_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dqs_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dqs_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dqs_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_dq_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_4" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_5" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_6" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_7" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_8" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_9" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_10" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_11" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_12" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_13" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_14" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_15" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_16" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_17" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_18" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_19" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_20" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_21" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_22" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_23" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_24" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_25" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_26" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_27" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_28" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_29" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_30" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_31" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_ba_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ba_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk0b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_cke0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk1b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_cke1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_rasb" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_casb" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_web" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_cs0b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_cs1b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_ad_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_4" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_5" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_6" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_7" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_8" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_9" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_10" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_11" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_12" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_13" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_dm_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dm_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dm_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dm_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -INPUT_SETUP PORT "ddr_dq_0" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_1" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_2" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_3" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_4" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_5" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_6" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_7" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_8" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_9" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_10" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_11" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_12" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_13" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_14" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_15" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_16" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_17" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_18" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_19" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_20" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_21" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_22" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_23" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_24" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_25" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_26" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_27" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_28" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_29" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_30" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_31" 0.800000 ns CLKNET "ddrclk0" ; -DEFINE BUS ddr_bus - NET "ddr_dq_in_0" - NET "ddr_dq_in_1" - NET "ddr_dq_in_2" - NET "ddr_dq_in_3" - NET "ddr_dq_in_4" - NET "ddr_dq_in_5" - NET "ddr_dq_in_6" - NET "ddr_dq_in_7" - NET "ddr_dq_in_8" - NET "ddr_dq_in_9" - NET "ddr_dq_in_10" - NET "ddr_dq_in_11" - NET "ddr_dq_in_12" - NET "ddr_dq_in_13" - NET "ddr_dq_in_14" - NET "ddr_dq_in_15" - NET "ddr_dq_in_16" - NET "ddr_dq_in_17" - NET "ddr_dq_in_18" - NET "ddr_dq_in_19" - NET "ddr_dq_in_20" - NET "ddr_dq_in_21" - NET "ddr_dq_in_22" - NET "ddr_dq_in_23" - NET "ddr_dq_in_24" - NET "ddr_dq_in_25" - NET "ddr_dq_in_26" - NET "ddr_dq_in_27" - NET "ddr_dq_in_28" - NET "ddr_dq_in_29" - NET "ddr_dq_in_30" - NET "ddr_dq_in_31"; -#LOCATE BUS "ddr_bus" COL 65; -LOCATE COMP "clk" SITE "A10" ; -LOCATE COMP "resetn" SITE "H6" ; -LOCATE COMP "resoutn" SITE "B3" ; -LOCATE COMP "address_2" SITE "AB20" ; -LOCATE COMP "address_3" SITE "AA20" ; -LOCATE COMP "address_4" SITE "AB19" ; -LOCATE COMP "address_5" SITE "AA19" ; -LOCATE COMP "address_6" SITE "Y19" ; -LOCATE COMP "address_7" SITE "AB18" ; -LOCATE COMP "address_8" SITE "AA18" ; -LOCATE COMP "address_9" SITE "Y18" ; -LOCATE COMP "address_10" SITE "W18" ; -LOCATE COMP "address_11" SITE "AB17" ; -LOCATE COMP "address_12" SITE "AA17" ; -LOCATE COMP "address_13" SITE "Y17" ; -LOCATE COMP "address_14" SITE "W17" ; -LOCATE COMP "address_15" SITE "V17" ; -LOCATE COMP "address_16" SITE "U17" ; -LOCATE COMP "address_17" SITE "AB16" ; -LOCATE COMP "address_18" SITE "AA16" ; -LOCATE COMP "address_19" SITE "Y16" ; -LOCATE COMP "address_20" SITE "W16" ; -LOCATE COMP "address_21" SITE "V16" ; -LOCATE COMP "address_22" SITE "U16" ; -LOCATE COMP "address_23" SITE "AB15" ; -LOCATE COMP "address_24" SITE "AA15" ; -LOCATE COMP "data_0" SITE "Y15" ; -LOCATE COMP "data_1" SITE "W15" ; -LOCATE COMP "data_2" SITE "V15" ; -LOCATE COMP "data_3" SITE "U15" ; -LOCATE COMP "data_4" SITE "AB14" ; -LOCATE COMP "data_5" SITE "AA14" ; -LOCATE COMP "data_6" SITE "Y14" ; -LOCATE COMP "data_7" SITE "W14" ; -LOCATE COMP "data_8" SITE "AA13" ; -LOCATE COMP "data_9" SITE "Y13" ; -LOCATE COMP "data_10" SITE "AA11" ; -LOCATE COMP "data_11" SITE "Y11" ; -LOCATE COMP "data_12" SITE "W11" ; -LOCATE COMP "data_13" SITE "AA10" ; -LOCATE COMP "data_14" SITE "Y10" ; -LOCATE COMP "data_15" SITE "W10" ; -LOCATE COMP "data_16" SITE "V10" ; -LOCATE COMP "data_17" SITE "AB9" ; -LOCATE COMP "data_18" SITE "AA9" ; -LOCATE COMP "data_19" SITE "Y9" ; -LOCATE COMP "data_20" SITE "W9" ; -LOCATE COMP "data_21" SITE "V9" ; -LOCATE COMP "data_22" SITE "AB8" ; -LOCATE COMP "data_23" SITE "AA8" ; -LOCATE COMP "data_24" SITE "Y8" ; -LOCATE COMP "data_25" SITE "W8" ; -LOCATE COMP "data_26" SITE "V8" ; -LOCATE COMP "data_27" SITE "AB7" ; -LOCATE COMP "data_28" SITE "AA7" ; -LOCATE COMP "data_29" SITE "Y7" ; -LOCATE COMP "data_30" SITE "W7" ; -LOCATE COMP "data_31" SITE "V7" ; -LOCATE COMP "serrx" SITE "M2" ; -LOCATE COMP "sertx" SITE "L1" ; -LOCATE COMP "emdio" SITE "K4" ; -LOCATE COMP "etx_clk" SITE "J1" ; -LOCATE COMP "erx_clk" SITE "K1" ; -LOCATE COMP "erxd_0" SITE "G1" ; -LOCATE COMP "erxd_1" SITE "G2" ; -LOCATE COMP "erxd_2" SITE "G3" ; -LOCATE COMP "erxd_3" SITE "F2" ; -LOCATE COMP "erx_dv" SITE "J4" ; -LOCATE COMP "erx_er" SITE "J5" ; -LOCATE COMP "erx_col" SITE "K2" ; -LOCATE COMP "erx_crs" SITE "K3" ; -LOCATE COMP "etxd_0" SITE "H1" ; -LOCATE COMP "etxd_1" SITE "H2" ; -LOCATE COMP "etxd_2" SITE "H3" ; -LOCATE COMP "etxd_3" SITE "H4" ; -LOCATE COMP "etx_en" SITE "J3" ; -LOCATE COMP "etx_er" SITE "J2" ; -LOCATE COMP "emdc" SITE "K5" ; -LOCATE COMP "hpiaddr_0" SITE "C10" ; -LOCATE COMP "hpiaddr_1" SITE "D10" ; -LOCATE COMP "hpicsn" SITE "E10" ; -LOCATE COMP "hpiwrn" SITE "F10" ; -LOCATE COMP "hpirdn" SITE "G10" ; -LOCATE COMP "hpidata_0" SITE "B7" ; -LOCATE COMP "hpidata_1" SITE "C7" ; -LOCATE COMP "hpidata_2" SITE "D7" ; -LOCATE COMP "hpidata_3" SITE "E7" ; -LOCATE COMP "hpidata_4" SITE "F7" ; -LOCATE COMP "hpidata_5" SITE "A8" ; -LOCATE COMP "hpidata_6" SITE "B8" ; -LOCATE COMP "hpidata_7" SITE "C8" ; -LOCATE COMP "hpidata_8" SITE "D8" ; -LOCATE COMP "hpidata_9" SITE "E8" ; -LOCATE COMP "hpidata_10" SITE "F8" ; -LOCATE COMP "hpidata_11" SITE "A9" ; -LOCATE COMP "hpidata_12" SITE "B9" ; -LOCATE COMP "hpidata_13" SITE "C9" ; -LOCATE COMP "hpidata_14" SITE "D9" ; -LOCATE COMP "hpidata_15" SITE "E9" ; -LOCATE COMP "hpiint" SITE "B11" ; -LOCATE COMP "dbg_equal" SITE "AB13" ; -LOCATE COMP "sample_clock" SITE "AB12" ; -LOCATE COMP "dac" SITE "U7" ; -LOCATE COMP "vga_vsync" SITE "A6" ; -LOCATE COMP "vga_hsync" SITE "A7" ; -LOCATE COMP "vga_rd_0" SITE "A3" ; -LOCATE COMP "vga_rd_1" SITE "B4" ; -LOCATE COMP "vga_gr_0" SITE "A4" ; -LOCATE COMP "vga_gr_1" SITE "B5" ; -LOCATE COMP "vga_bl_0" SITE "A5" ; -LOCATE COMP "vga_bl_1" SITE "B6" ; -LOCATE COMP "dsw_0" SITE "R2" ; -# LOCATE COMP "dsuen" SITE "R2" ; -LOCATE COMP "dsw_1" SITE "R3" ; -LOCATE COMP "dsw_2" SITE "R4" ; -LOCATE COMP "dsw_3" SITE "R5" ; -LOCATE COMP "led_0" SITE "E3" ; -# LOCATE COMP "dsuactn" SITE "E3" ; -LOCATE COMP "led_1" SITE "E4" ; -LOCATE COMP "led_2" SITE "E5" ; -LOCATE COMP "led_3" SITE "F4" ; -LOCATE COMP "led_4" SITE "F5" ; -LOCATE COMP "led_5" SITE "G4" ; -LOCATE COMP "led_6" SITE "G5" ; -LOCATE COMP "led_7" SITE "H5" ; -LOCATE COMP "sevensegment_0" SITE "M3" ; -LOCATE COMP "sevensegment_1" SITE "M4" ; -LOCATE COMP "sevensegment_2" SITE "M5" ; -LOCATE COMP "sevensegment_3" SITE "N1" ; -LOCATE COMP "sevensegment_4" SITE "N2" ; -LOCATE COMP "sevensegment_5" SITE "N3" ; -LOCATE COMP "sevensegment_6" SITE "N4" ; -LOCATE COMP "sevensegment_7" SITE "N5" ; -LOCATE COMP "sevensegment_8" SITE "P1" ; -LOCATE COMP "sevensegment_9" SITE "P2" ; -LOCATE COMP "lcd_enable" SITE "P5" ; -LOCATE COMP "lcd_regsel" SITE "P3" ; -LOCATE COMP "lcd_rw" SITE "P4" ; -LOCATE COMP "tst_col_0" SITE "U4" ; -LOCATE COMP "tst_col_1" SITE "U6" ; -LOCATE COMP "tst_col_2" SITE "V5" ; -LOCATE COMP "tst_row_0" SITE "T1" ; -LOCATE COMP "tst_row_1" SITE "T2" ; -LOCATE COMP "tst_row_2" SITE "T3" ; -LOCATE COMP "tst_row_3" SITE "R1" ; - -LOCATE COMP "ata_data_7" SITE "K22" ; -LOCATE COMP "ata_data_8" SITE "K21" ; -LOCATE COMP "ata_data_6" SITE "L22" ; -LOCATE COMP "ata_data_9" SITE "L21" ; -LOCATE COMP "ata_data_5" SITE "L20" ; -LOCATE COMP "ata_data_10" SITE "M22" ; -LOCATE COMP "ata_data_4" SITE "M21" ; -LOCATE COMP "ata_data_11" SITE "M20" ; -LOCATE COMP "ata_data_3" SITE "M19" ; -LOCATE COMP "ata_data_12" SITE "M18" ; -LOCATE COMP "ata_data_2" SITE "N22" ; -LOCATE COMP "ata_data_13" SITE "N21" ; -LOCATE COMP "ata_data_1" SITE "N20" ; -LOCATE COMP "ata_data_14" SITE "N19" ; -LOCATE COMP "ata_data_0" SITE "N18" ; -LOCATE COMP "ata_data_15" SITE "P22" ; -LOCATE COMP "ata_da_1" SITE "R17" ; -LOCATE COMP "ata_da_0" SITE "T22" ; -LOCATE COMP "ata_da_2" SITE "T18" ; -LOCATE COMP "ata_cs0" SITE "U22" ; -LOCATE COMP "ata_cs1" SITE "V20" ; -LOCATE COMP "ata_dior" SITE "P18" ; -LOCATE COMP "ata_diow" SITE "P20" ; -LOCATE COMP "ata_iordy" SITE "P19" ; -LOCATE COMP "ata_intrq" SITE "R19" ; - -LOCATE COMP "exp_datao_0" SITE "K22" ; -LOCATE COMP "exp_datai_0" SITE "K21" ; -LOCATE COMP "exp_datao_1" SITE "L22" ; -LOCATE COMP "exp_datai_1" SITE "L21" ; -LOCATE COMP "exp_datao_2" SITE "L20" ; -LOCATE COMP "exp_datai_2" SITE "M22" ; -LOCATE COMP "exp_datao_3" SITE "M21" ; -LOCATE COMP "exp_datai_3" SITE "M20" ; -LOCATE COMP "exp_datao_4" SITE "M19" ; -LOCATE COMP "exp_datai_4" SITE "M18" ; -LOCATE COMP "exp_datao_5" SITE "N22" ; -LOCATE COMP "exp_datai_5" SITE "N21" ; -LOCATE COMP "exp_datao_6" SITE "N20" ; -LOCATE COMP "exp_datai_6" SITE "N19" ; -LOCATE COMP "exp_datao_7" SITE "N18" ; -LOCATE COMP "exp_datai_7" SITE "P22" ; -LOCATE COMP "exp_datao_8" SITE "P21" ; -LOCATE COMP "exp_datai_8" SITE "P20" ; -LOCATE COMP "exp_datao_9" SITE "P18" ; -LOCATE COMP "exp_datai_9" SITE "P19" ; -LOCATE COMP "exp_datao_10" SITE "R22" ; -LOCATE COMP "exp_datai_10" SITE "R21" ; -LOCATE COMP "exp_datao_11" SITE "R19" ; -LOCATE COMP "exp_datai_11" SITE "R18" ; -LOCATE COMP "exp_datao_12" SITE "R17" ; -LOCATE COMP "exp_datai_12" SITE "T22" ; -LOCATE COMP "exp_datao_13" SITE "T18" ; -LOCATE COMP "exp_datai_13" SITE "U22" ; -LOCATE COMP "exp_datao_14" SITE "V19" ; -LOCATE COMP "exp_datai_14" SITE "W21" ; -LOCATE COMP "exp_datao_15" SITE "W20" ; -LOCATE COMP "exp_datai_15" SITE "W19" ; -LOCATE COMP "exp_datao_16" SITE "Y20" ; -LOCATE COMP "exp_datai_16" SITE "AA22" ; -LOCATE COMP "exp_datao_17" SITE "AA21" ; -LOCATE COMP "exp_datai_17" SITE "AB21" ; -LOCATE COMP "exp_datao_18" SITE "T17" ; -LOCATE COMP "exp_datai_18" SITE "T14" ; -LOCATE COMP "exp_datao_19" SITE "T13" ; -LOCATE COMP "exp_datai_19" SITE "U14" ; -LOCATE COMP "codec_cs" SITE "W4" ; -LOCATE COMP "codec_mclk" SITE "Y3" ; -LOCATE COMP "codec_mode" SITE "V4" ; -LOCATE COMP "codec_sclk" SITE "Y1" ; -LOCATE COMP "codec_sdin" SITE "AA2" ; -LOCATE COMP "codec_din" SITE "W2" ; -LOCATE COMP "codec_bclk" SITE "W1" ; -LOCATE COMP "codec_lrcin" SITE "AA1" ; -LOCATE COMP "codec_lrcout" SITE "Y2" ; -LOCATE COMP "dbg_codec_din" SITE "F11" ; -LOCATE COMP "dbg_codec_bclk" SITE "F12" ; -LOCATE COMP "dbg_codec_lrcin" SITE "F13" ; -LOCATE COMP "dbg_codec_lrcout" SITE "G13" ; -LOCATE COMP "dsubre" SITE "V6" ; -LOCATE COMP "oen" SITE "AA6" ; -#LOCATE COMP "wen" SITE "AB6" ; -LOCATE COMP "writen" SITE "AB6" ; -LOCATE COMP "rben_0" SITE "AB4" ; -LOCATE COMP "rben_1" SITE "AA4" ; -LOCATE COMP "rben_2" SITE "AB3" ; -LOCATE COMP "rben_3" SITE "AA3" ; -LOCATE COMP "ramsn" SITE "Y4" ; -LOCATE COMP "romwpn" SITE "AB5" ; -LOCATE COMP "romsn" SITE "Y5" ; -LOCATE COMP "romrstn" SITE "Y6" ; -LOCATE COMP "errorn" SITE "AA12" ; -LOCATE COMP "ddr_ad_0" SITE "D16" ; -LOCATE COMP "ddr_ad_1" SITE "C16" ; -LOCATE COMP "ddr_ad_10" SITE "E16" ; -LOCATE COMP "ddr_ad_11" SITE "C13" ; -LOCATE COMP "ddr_ad_12" SITE "B13" ; -LOCATE COMP "ddr_ad_13" SITE "C17" ; -LOCATE COMP "ddr_ad_2" SITE "E15" ; -LOCATE COMP "ddr_ad_3" SITE "D15" ; -LOCATE COMP "ddr_ad_4" SITE "C15" ; -LOCATE COMP "ddr_ad_5" SITE "E14" ; -LOCATE COMP "ddr_ad_6" SITE "D14" ; -LOCATE COMP "ddr_ad_7" SITE "C14" ; -LOCATE COMP "ddr_ad_8" SITE "E13" ; -LOCATE COMP "ddr_ad_9" SITE "D13" ; -LOCATE COMP "ddr_ba_0" SITE "E17" ; -LOCATE COMP "ddr_ba_1" SITE "D17" ; -LOCATE COMP "ddr_casb" SITE "A19" ; -LOCATE COMP "ddr_clk0" SITE "A12" ; -LOCATE COMP "ddr_clk0b" SITE "B12" ; -LOCATE COMP "ddr_clk1" SITE "B19" ; -LOCATE COMP "ddr_clk1b" SITE "A20" ; -LOCATE COMP "ddr_cke0" SITE "A13" ; -LOCATE COMP "ddr_cke1" SITE "C12" ; -LOCATE COMP "ddr_dm_0" SITE "B15" ; -LOCATE COMP "ddr_dm_1" SITE "C20" ; -LOCATE COMP "ddr_dm_2" SITE "H19" ; -LOCATE COMP "ddr_dm_3" SITE "K20" ; -LOCATE COMP "ddr_dq_0" SITE "A14" ; -LOCATE COMP "ddr_dq_1" SITE "B14" ; -LOCATE COMP "ddr_dq_10" SITE "C21" ; -LOCATE COMP "ddr_dq_11" SITE "C22" ; -LOCATE COMP "ddr_dq_12" SITE "E20" ; -LOCATE COMP "ddr_dq_13" SITE "E18" ; -LOCATE COMP "ddr_dq_14" SITE "F19" ; -LOCATE COMP "ddr_dq_15" SITE "F18" ; -LOCATE COMP "ddr_dq_16" SITE "D21" ; -LOCATE COMP "ddr_dq_17" SITE "F20" ; -LOCATE COMP "ddr_dq_18" SITE "G21" ; -LOCATE COMP "ddr_dq_19" SITE "G20" ; -LOCATE COMP "ddr_dq_2" SITE "A15" ; -LOCATE COMP "ddr_dq_20" SITE "H20" ; -LOCATE COMP "ddr_dq_21" SITE "J19" ; -LOCATE COMP "ddr_dq_22" SITE "J18" ; -LOCATE COMP "ddr_dq_23" SITE "H17" ; -LOCATE COMP "ddr_dq_24" SITE "F22" ; -LOCATE COMP "ddr_dq_25" SITE "G22" ; -LOCATE COMP "ddr_dq_26" SITE "H22" ; -LOCATE COMP "ddr_dq_27" SITE "H21" ; -LOCATE COMP "ddr_dq_28" SITE "K19" ; -LOCATE COMP "ddr_dq_29" SITE "K18" ; -LOCATE COMP "ddr_dq_3" SITE "B16" ; -LOCATE COMP "ddr_dq_30" SITE "L18" ; -LOCATE COMP "ddr_dq_31" SITE "L19" ; -LOCATE COMP "ddr_dq_4" SITE "A17" ; -LOCATE COMP "ddr_dq_5" SITE "B17" ; -LOCATE COMP "ddr_dq_6" SITE "A18" ; -LOCATE COMP "ddr_dq_7" SITE "B18" ; -LOCATE COMP "ddr_dq_8" SITE "B22" ; -LOCATE COMP "ddr_dq_9" SITE "B21" ; -LOCATE COMP "ddr_dqs_0" SITE "A16" ; -LOCATE COMP "ddr_dqs_1" SITE "D20" ; -LOCATE COMP "ddr_dqs_2" SITE "H18" ; -LOCATE COMP "ddr_dqs_3" SITE "J20" ; -LOCATE COMP "ddr_rasb" SITE "C18" ; -LOCATE COMP "ddr_cs0b" SITE "C19" ; -LOCATE COMP "ddr_cs1b" SITE "B20" ; -LOCATE COMP "ddr_web" SITE "D18" ; -IOBUF PORT "emdio" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "vga_bl_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_19" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "resetn" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "resoutn" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "clk" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "errorn" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_2" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_3" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_4" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_5" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_6" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_7" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_8" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_9" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_10" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_11" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_12" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_13" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_14" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_15" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_16" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_17" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_18" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_19" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_20" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_21" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_22" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_23" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "address_24" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_2" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_3" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_4" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_5" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_6" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_7" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_8" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_9" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_10" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_11" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_12" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_13" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_14" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_15" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_16" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_17" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_18" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_19" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_20" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_21" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_22" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_23" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_24" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_25" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_26" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_27" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_28" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_29" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_30" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "data_31" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "ramsn" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "rben_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "rben_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "rben_2" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "rben_3" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "romsn" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "oen" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "writen" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "romwpn" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "romrstn" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "dsubre" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "serrx" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "sertx" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "etx_clk" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "erx_clk" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "erxd_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "erxd_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "erxd_2" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "erxd_3" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "erx_dv" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "erx_er" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "erx_col" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "erx_crs" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "etxd_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "etxd_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "etxd_2" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "etxd_3" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "etx_en" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "etx_er" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "emdc" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "dsw_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "dsw_2" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "dsw_3" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "led_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "led_2" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "led_3" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "led_4" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "led_5" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "led_6" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "led_7" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "sevensegment_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "sevensegment_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "sevensegment_2" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "sevensegment_3" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "sevensegment_4" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "sevensegment_5" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "sevensegment_6" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "sevensegment_7" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "sevensegment_8" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "sevensegment_9" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "lcd_enable" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "lcd_regsel" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "lcd_rw" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "tst_col_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "tst_col_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "tst_col_2" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "tst_row_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "tst_row_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "tst_row_2" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "tst_row_3" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_2" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_3" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_4" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_5" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_6" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_7" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_8" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_9" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_10" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_11" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_12" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_13" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_14" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_15" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_16" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_17" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_18" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datao_19" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_2" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_3" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_4" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_5" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_6" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_7" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_8" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_9" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_10" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_11" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_12" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_13" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_14" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_15" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_16" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_17" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "exp_datai_18" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "codec_mode" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "codec_mclk" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "codec_sclk" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "codec_cs" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "codec_sdin" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "codec_din" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "codec_bclk" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "codec_lrcin" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "codec_lrcout" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "dac" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "vga_vsync" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "vga_hsync" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "vga_rd_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "vga_rd_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "vga_gr_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "vga_gr_1" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "vga_bl_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "dsw_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; -IOBUF PORT "led_0" IO_TYPE=LVCMOS25 PULLMODE=NONE ; diff --git a/boards/ge-hpe-mini-lattice/leon3mini.prf b/boards/ge-hpe-mini-lattice/leon3mini.prf deleted file mode 100644 index 808c7cbd..00000000 --- a/boards/ge-hpe-mini-lattice/leon3mini.prf +++ /dev/null @@ -1,475 +0,0 @@ -SCHEMATIC START ; -LOCATE COMP "clk" SITE "A10" ; -LOCATE COMP "resetn" SITE "H6" ; -LOCATE COMP "resoutn" SITE "B3" ; -LOCATE COMP "address_2" SITE "AB20" ; -LOCATE COMP "address_3" SITE "AA20" ; -LOCATE COMP "address_4" SITE "AB19" ; -LOCATE COMP "address_5" SITE "AA19" ; -LOCATE COMP "address_6" SITE "Y19" ; -LOCATE COMP "address_7" SITE "AB18" ; -LOCATE COMP "address_8" SITE "AA18" ; -LOCATE COMP "address_9" SITE "Y18" ; -LOCATE COMP "address_10" SITE "W18" ; -LOCATE COMP "address_11" SITE "AB17" ; -LOCATE COMP "address_12" SITE "AA17" ; -LOCATE COMP "address_13" SITE "Y17" ; -LOCATE COMP "address_14" SITE "W17" ; -LOCATE COMP "address_15" SITE "V17" ; -LOCATE COMP "address_16" SITE "U17" ; -LOCATE COMP "address_17" SITE "AB16" ; -LOCATE COMP "address_18" SITE "AA16" ; -LOCATE COMP "address_19" SITE "Y16" ; -LOCATE COMP "address_20" SITE "W16" ; -LOCATE COMP "address_21" SITE "V16" ; -LOCATE COMP "address_22" SITE "U16" ; -LOCATE COMP "address_23" SITE "AB15" ; -LOCATE COMP "address_24" SITE "AA15" ; -LOCATE COMP "data_0" SITE "Y15" ; -LOCATE COMP "data_1" SITE "W15" ; -LOCATE COMP "data_2" SITE "V15" ; -LOCATE COMP "data_3" SITE "U15" ; -LOCATE COMP "data_4" SITE "AB14" ; -LOCATE COMP "data_5" SITE "AA14" ; -LOCATE COMP "data_6" SITE "Y14" ; -LOCATE COMP "data_7" SITE "W14" ; -LOCATE COMP "data_8" SITE "AA13" ; -LOCATE COMP "data_9" SITE "Y13" ; -LOCATE COMP "data_10" SITE "AA11" ; -LOCATE COMP "data_11" SITE "Y11" ; -LOCATE COMP "data_12" SITE "W11" ; -LOCATE COMP "data_13" SITE "AA10" ; -LOCATE COMP "data_14" SITE "Y10" ; -LOCATE COMP "data_15" SITE "W10" ; -LOCATE COMP "data_16" SITE "V10" ; -LOCATE COMP "data_17" SITE "AB9" ; -LOCATE COMP "data_18" SITE "AA9" ; -LOCATE COMP "data_19" SITE "Y9" ; -LOCATE COMP "data_20" SITE "W9" ; -LOCATE COMP "data_21" SITE "V9" ; -LOCATE COMP "data_22" SITE "AB8" ; -LOCATE COMP "data_23" SITE "AA8" ; -LOCATE COMP "data_24" SITE "Y8" ; -LOCATE COMP "data_25" SITE "W8" ; -LOCATE COMP "data_26" SITE "V8" ; -LOCATE COMP "data_27" SITE "AB7" ; -LOCATE COMP "data_28" SITE "AA7" ; -LOCATE COMP "data_29" SITE "Y7" ; -LOCATE COMP "data_30" SITE "W7" ; -LOCATE COMP "data_31" SITE "V7" ; -LOCATE COMP "serrx" SITE "M2" ; -LOCATE COMP "sertx" SITE "L1" ; -LOCATE COMP "emdio" SITE "K4" ; -LOCATE COMP "etx_clk" SITE "J1" ; -LOCATE COMP "erx_clk" SITE "K1" ; -LOCATE COMP "erxd_0" SITE "G1" ; -LOCATE COMP "erxd_1" SITE "G2" ; -LOCATE COMP "erxd_2" SITE "G3" ; -LOCATE COMP "erxd_3" SITE "F2" ; -LOCATE COMP "erx_dv" SITE "J4" ; -LOCATE COMP "erx_er" SITE "J5" ; -LOCATE COMP "erx_col" SITE "K2" ; -LOCATE COMP "erx_crs" SITE "K3" ; -LOCATE COMP "etxd_0" SITE "H1" ; -LOCATE COMP "etxd_1" SITE "H2" ; -LOCATE COMP "etxd_2" SITE "H3" ; -LOCATE COMP "etxd_3" SITE "H4" ; -LOCATE COMP "etx_en" SITE "J3" ; -LOCATE COMP "etx_er" SITE "J2" ; -LOCATE COMP "emdc" SITE "K5" ; -LOCATE COMP "hpiaddr_0" SITE "C10" ; -LOCATE COMP "hpiaddr_1" SITE "D10" ; -LOCATE COMP "hpicsn" SITE "E10" ; -LOCATE COMP "hpiwrn" SITE "F10" ; -LOCATE COMP "hpirdn" SITE "G10" ; -LOCATE COMP "hpidata_0" SITE "B7" ; -LOCATE COMP "hpidata_1" SITE "C7" ; -LOCATE COMP "hpidata_2" SITE "D7" ; -LOCATE COMP "hpidata_3" SITE "E7" ; -LOCATE COMP "hpidata_4" SITE "F7" ; -LOCATE COMP "hpidata_5" SITE "A8" ; -LOCATE COMP "hpidata_6" SITE "B8" ; -LOCATE COMP "hpidata_7" SITE "C8" ; -LOCATE COMP "hpidata_8" SITE "D8" ; -LOCATE COMP "hpidata_9" SITE "E8" ; -LOCATE COMP "hpidata_10" SITE "F8" ; -LOCATE COMP "hpidata_11" SITE "A9" ; -LOCATE COMP "hpidata_12" SITE "B9" ; -LOCATE COMP "hpidata_13" SITE "C9" ; -LOCATE COMP "hpidata_14" SITE "D9" ; -LOCATE COMP "hpidata_15" SITE "E9" ; -LOCATE COMP "hpiint" SITE "B11" ; -LOCATE COMP "dbg_equal" SITE "AB13" ; -LOCATE COMP "sample_clock" SITE "AB12" ; -LOCATE COMP "dac" SITE "U7" ; -LOCATE COMP "vga_vsync" SITE "A6" ; -LOCATE COMP "vga_hsync" SITE "A7" ; -LOCATE COMP "vga_rd_0" SITE "A3" ; -LOCATE COMP "vga_rd_1" SITE "B4" ; -LOCATE COMP "vga_gr_0" SITE "A4" ; -LOCATE COMP "vga_gr_1" SITE "B5" ; -LOCATE COMP "vga_bl_0" SITE "A5" ; -LOCATE COMP "vga_bl_1" SITE "B6" ; -# LOCATE COMP "dsw_0" SITE "R2" ; -LOCATE COMP "dsuen" SITE "R2" ; -LOCATE COMP "dsw_1" SITE "R3" ; -LOCATE COMP "dsw_2" SITE "R4" ; -LOCATE COMP "dsw_3" SITE "R5" ; -# LOCATE COMP "led_0" SITE "E3" ; -LOCATE COMP "dsuactn" SITE "E3" ; -LOCATE COMP "led_1" SITE "E4" ; -LOCATE COMP "led_2" SITE "E5" ; -LOCATE COMP "led_3" SITE "F4" ; -LOCATE COMP "led_4" SITE "F5" ; -LOCATE COMP "led_5" SITE "G4" ; -LOCATE COMP "led_6" SITE "G5" ; -LOCATE COMP "led_7" SITE "H5" ; -LOCATE COMP "sevensegment_0" SITE "M3" ; -LOCATE COMP "sevensegment_1" SITE "M4" ; -LOCATE COMP "sevensegment_2" SITE "M5" ; -LOCATE COMP "sevensegment_3" SITE "N1" ; -LOCATE COMP "sevensegment_4" SITE "N2" ; -LOCATE COMP "sevensegment_5" SITE "N3" ; -LOCATE COMP "sevensegment_6" SITE "N4" ; -LOCATE COMP "sevensegment_7" SITE "N5" ; -LOCATE COMP "sevensegment_8" SITE "P1" ; -LOCATE COMP "sevensegment_9" SITE "P2" ; -LOCATE COMP "lcd_enable" SITE "P5" ; -LOCATE COMP "lcd_regsel" SITE "P3" ; -LOCATE COMP "lcd_rw" SITE "P4" ; -LOCATE COMP "tst_col_0" SITE "U4" ; -LOCATE COMP "tst_col_1" SITE "U6" ; -LOCATE COMP "tst_col_2" SITE "V5" ; -LOCATE COMP "tst_row_0" SITE "T1" ; -LOCATE COMP "tst_row_1" SITE "T2" ; -LOCATE COMP "tst_row_2" SITE "T3" ; -LOCATE COMP "tst_row_3" SITE "R1" ; - -LOCATE COMP "ata_data_7" SITE "K22" ; -LOCATE COMP "ata_data_8" SITE "K21" ; -LOCATE COMP "ata_data_6" SITE "L22" ; -LOCATE COMP "ata_data_9" SITE "L21" ; -LOCATE COMP "ata_data_5" SITE "L20" ; -LOCATE COMP "ata_data_10" SITE "M22" ; -LOCATE COMP "ata_data_4" SITE "M21" ; -LOCATE COMP "ata_data_11" SITE "M20" ; -LOCATE COMP "ata_data_3" SITE "M19" ; -LOCATE COMP "ata_data_12" SITE "M18" ; -LOCATE COMP "ata_data_2" SITE "N22" ; -LOCATE COMP "ata_data_13" SITE "N21" ; -LOCATE COMP "ata_data_1" SITE "N20" ; -LOCATE COMP "ata_data_14" SITE "N19" ; -LOCATE COMP "ata_data_0" SITE "N18" ; -LOCATE COMP "ata_data_15" SITE "P22" ; -LOCATE COMP "ata_da_1" SITE "R17" ; -LOCATE COMP "ata_da_0" SITE "T22" ; -LOCATE COMP "ata_da_2" SITE "T18" ; -LOCATE COMP "ata_cs0" SITE "U22" ; -LOCATE COMP "ata_cs1" SITE "V20" ; -LOCATE COMP "ata_dior" SITE "P18" ; -LOCATE COMP "ata_diow" SITE "P20" ; -LOCATE COMP "ata_iordy" SITE "P19" ; -LOCATE COMP "ata_intrq" SITE "R19" ; - -LOCATE COMP "exp_datao_0" SITE "K22" ; -LOCATE COMP "exp_datai_0" SITE "K21" ; -LOCATE COMP "exp_datao_1" SITE "L22" ; -LOCATE COMP "exp_datai_1" SITE "L21" ; -LOCATE COMP "exp_datao_2" SITE "L20" ; -LOCATE COMP "exp_datai_2" SITE "M22" ; -LOCATE COMP "exp_datao_3" SITE "M21" ; -LOCATE COMP "exp_datai_3" SITE "M20" ; -LOCATE COMP "exp_datao_4" SITE "M19" ; -LOCATE COMP "exp_datai_4" SITE "M18" ; -LOCATE COMP "exp_datao_5" SITE "N22" ; -LOCATE COMP "exp_datai_5" SITE "N21" ; -LOCATE COMP "exp_datao_6" SITE "N20" ; -LOCATE COMP "exp_datai_6" SITE "N19" ; -LOCATE COMP "exp_datao_7" SITE "N18" ; -LOCATE COMP "exp_datai_7" SITE "P22" ; -LOCATE COMP "exp_datao_8" SITE "P21" ; -LOCATE COMP "exp_datai_8" SITE "P20" ; -LOCATE COMP "exp_datao_9" SITE "P18" ; -LOCATE COMP "exp_datai_9" SITE "P19" ; -LOCATE COMP "exp_datao_10" SITE "R22" ; -LOCATE COMP "exp_datai_10" SITE "R21" ; -LOCATE COMP "exp_datao_11" SITE "R19" ; -LOCATE COMP "exp_datai_11" SITE "R18" ; -LOCATE COMP "exp_datao_12" SITE "R17" ; -LOCATE COMP "exp_datai_12" SITE "T22" ; -LOCATE COMP "exp_datao_13" SITE "T18" ; -LOCATE COMP "exp_datai_13" SITE "U22" ; -LOCATE COMP "exp_datao_14" SITE "V19" ; -LOCATE COMP "exp_datai_14" SITE "W21" ; -LOCATE COMP "exp_datao_15" SITE "W20" ; -LOCATE COMP "exp_datai_15" SITE "W19" ; -LOCATE COMP "exp_datao_16" SITE "Y20" ; -LOCATE COMP "exp_datai_16" SITE "AA22" ; -LOCATE COMP "exp_datao_17" SITE "AA21" ; -LOCATE COMP "exp_datai_17" SITE "AB21" ; -LOCATE COMP "exp_datao_18" SITE "T17" ; -LOCATE COMP "exp_datai_18" SITE "T14" ; -LOCATE COMP "exp_datao_19" SITE "T13" ; -LOCATE COMP "exp_datai_19" SITE "U14" ; -LOCATE COMP "codec_cs" SITE "W4" ; -LOCATE COMP "codec_mclk" SITE "Y3" ; -LOCATE COMP "codec_mode" SITE "V4" ; -LOCATE COMP "codec_sclk" SITE "Y1" ; -LOCATE COMP "codec_sdin" SITE "AA2" ; -LOCATE COMP "codec_din" SITE "W2" ; -LOCATE COMP "codec_bclk" SITE "W1" ; -LOCATE COMP "codec_lrcin" SITE "AA1" ; -LOCATE COMP "codec_lrcout" SITE "Y2" ; -LOCATE COMP "dbg_codec_din" SITE "F11" ; -LOCATE COMP "dbg_codec_bclk" SITE "F12" ; -LOCATE COMP "dbg_codec_lrcin" SITE "F13" ; -LOCATE COMP "dbg_codec_lrcout" SITE "G13" ; -LOCATE COMP "dsubre" SITE "V6" ; -LOCATE COMP "oen" SITE "AA6" ; -#LOCATE COMP "wen" SITE "AB6" ; -LOCATE COMP "writen" SITE "AB6" ; -LOCATE COMP "rben_0" SITE "AB4" ; -LOCATE COMP "rben_1" SITE "AA4" ; -LOCATE COMP "rben_2" SITE "AB3" ; -LOCATE COMP "rben_3" SITE "AA3" ; -LOCATE COMP "ramsn" SITE "Y4" ; -LOCATE COMP "romwpn" SITE "AB5" ; -LOCATE COMP "romsn" SITE "Y5" ; -LOCATE COMP "romrstn" SITE "Y6" ; -LOCATE COMP "errorn" SITE "AA12" ; -LOCATE COMP "ddr_ad_0" SITE "D16" ; -LOCATE COMP "ddr_ad_1" SITE "C16" ; -LOCATE COMP "ddr_ad_10" SITE "E16" ; -LOCATE COMP "ddr_ad_11" SITE "C13" ; -LOCATE COMP "ddr_ad_12" SITE "B13" ; -LOCATE COMP "ddr_ad_13" SITE "C17" ; -LOCATE COMP "ddr_ad_2" SITE "E15" ; -LOCATE COMP "ddr_ad_3" SITE "D15" ; -LOCATE COMP "ddr_ad_4" SITE "C15" ; -LOCATE COMP "ddr_ad_5" SITE "E14" ; -LOCATE COMP "ddr_ad_6" SITE "D14" ; -LOCATE COMP "ddr_ad_7" SITE "C14" ; -LOCATE COMP "ddr_ad_8" SITE "E13" ; -LOCATE COMP "ddr_ad_9" SITE "D13" ; -LOCATE COMP "ddr_ba_0" SITE "E17" ; -LOCATE COMP "ddr_ba_1" SITE "D17" ; -LOCATE COMP "ddr_casb" SITE "A19" ; -LOCATE COMP "ddr_clk0" SITE "A12" ; -LOCATE COMP "ddr_clk0b" SITE "B12" ; -LOCATE COMP "ddr_clk1" SITE "B19" ; -LOCATE COMP "ddr_clk1b" SITE "A20" ; -LOCATE COMP "ddr_cke0" SITE "A13" ; -LOCATE COMP "ddr_cke1" SITE "C12" ; -LOCATE COMP "ddr_dm_0" SITE "B15" ; -LOCATE COMP "ddr_dm_1" SITE "C20" ; -LOCATE COMP "ddr_dm_2" SITE "H19" ; -LOCATE COMP "ddr_dm_3" SITE "K20" ; -LOCATE COMP "ddr_dq_0" SITE "A14" ; -LOCATE COMP "ddr_dq_1" SITE "B14" ; -LOCATE COMP "ddr_dq_10" SITE "C21" ; -LOCATE COMP "ddr_dq_11" SITE "C22" ; -LOCATE COMP "ddr_dq_12" SITE "E20" ; -LOCATE COMP "ddr_dq_13" SITE "E18" ; -LOCATE COMP "ddr_dq_14" SITE "F19" ; -LOCATE COMP "ddr_dq_15" SITE "F18" ; -LOCATE COMP "ddr_dq_16" SITE "D21" ; -LOCATE COMP "ddr_dq_17" SITE "F20" ; -LOCATE COMP "ddr_dq_18" SITE "G21" ; -LOCATE COMP "ddr_dq_19" SITE "G20" ; -LOCATE COMP "ddr_dq_2" SITE "A15" ; -LOCATE COMP "ddr_dq_20" SITE "H20" ; -LOCATE COMP "ddr_dq_21" SITE "J19" ; -LOCATE COMP "ddr_dq_22" SITE "J18" ; -LOCATE COMP "ddr_dq_23" SITE "H17" ; -LOCATE COMP "ddr_dq_24" SITE "F22" ; -LOCATE COMP "ddr_dq_25" SITE "G22" ; -LOCATE COMP "ddr_dq_26" SITE "H22" ; -LOCATE COMP "ddr_dq_27" SITE "H21" ; -LOCATE COMP "ddr_dq_28" SITE "K19" ; -LOCATE COMP "ddr_dq_29" SITE "K18" ; -LOCATE COMP "ddr_dq_3" SITE "B16" ; -LOCATE COMP "ddr_dq_30" SITE "L18" ; -LOCATE COMP "ddr_dq_31" SITE "L19" ; -LOCATE COMP "ddr_dq_4" SITE "A17" ; -LOCATE COMP "ddr_dq_5" SITE "B17" ; -LOCATE COMP "ddr_dq_6" SITE "A18" ; -LOCATE COMP "ddr_dq_7" SITE "B18" ; -LOCATE COMP "ddr_dq_8" SITE "B22" ; -LOCATE COMP "ddr_dq_9" SITE "B21" ; -LOCATE COMP "ddr_dqs_0" SITE "A16" ; -LOCATE COMP "ddr_dqs_1" SITE "D20" ; -LOCATE COMP "ddr_dqs_2" SITE "H18" ; -LOCATE COMP "ddr_dqs_3" SITE "J20" ; -LOCATE COMP "ddr_rasb" SITE "C18" ; -LOCATE COMP "ddr_cs0b" SITE "C19" ; -LOCATE COMP "ddr_cs1b" SITE "B20" ; -LOCATE COMP "ddr_web" SITE "D18" ; -SYSCONFIG PERSISTENT=OFF CONFIG_MODE=SLAVE_SERIAL DONE_OD=ON DONE_EX=OFF MCCLK_FREQ=2.5 CONFIG_SECURE=OFF WAKE_UP=21 WAKE_ON_LOCK=OFF WAKEUP_CLK=EXTERNAL COMPRESS_CONFIG=OFF INBUF=OFF ; -SCHEMATIC END ; -BLOCK RESETPATHS ; -BLOCK ASYNCPATHS ; -FREQUENCY PORT "clk" 25.000000 MHz ; -#USE SECONDARY NET clk ; -FREQUENCY PORT "etx_clk" 25.000000 MHz ; -FREQUENCY PORT "erx_clk" 25.000000 MHz ; -#FREQUENCY NET "clkgen0_clkin200" 200.000000 MHz ; -FREQUENCY NET "clkm" 50.000000 MHz ; -FREQUENCY NET "ddrclk0" 100.000000 MHz ; -#FREQUENCY NET "ddrclk90" 100.000000 MHz ; -FREQUENCY NET "ddrclk180" 100.000000 MHz ; -FREQUENCY NET "ddrclk270" 100.000000 MHz ; -#USE PRIMARY PURE NET clkm; -#USE PRIMARY PURE NET ddrclk0; -#USE PRIMARY PURE NET ddrclk180; -#USE PRIMARY PURE NET ddrclk270; -INPUT_SETUP ALLPORTS 5.000000 ns CLKPORT "clk" ; -CLOCK_TO_OUT ALLPORTS 20.000000 ns CLKPORT "clk" ; -BLOCK NET "resetn_c" ; -BLOCK NET "romrstn_c_r*" ; -#DEFINE PORT GROUP "ddrgroup" "ddr*"; -#IOBUF GROUP "ddrgroup" IO_TYPE=SSTL25D_II ; - -# Assign IO_TYPE Attributes -IOBUF PORT "ddr_dqs_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dqs_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dqs_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dqs_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_dq_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_4" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_5" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_6" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_7" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_8" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_9" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_10" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_11" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_12" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_13" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_14" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_15" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_16" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_17" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_18" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_19" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_20" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_21" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_22" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_23" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_24" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_25" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_26" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_27" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_28" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_29" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_30" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_31" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_ba_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ba_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk0b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_cke0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk1b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_cke1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_rasb" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_casb" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_web" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_cs0b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_cs1b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_ad_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_4" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_5" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_6" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_7" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_8" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_9" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_10" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_11" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_12" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_13" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_dm_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dm_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dm_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dm_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; - -INPUT_SETUP PORT "ddr_dq_0" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_1" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_2" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_3" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_4" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_5" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_6" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_7" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_8" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_9" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_10" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_11" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_12" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_13" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_14" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_15" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_16" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_17" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_18" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_19" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_20" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_21" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_22" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_23" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_24" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_25" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_26" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_27" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_28" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_29" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_30" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_31" 0.800000 ns CLKNET "ddrclk0" ; - -DEFINE BUS ddr_bus - NET "ddr_dq_in_0" - NET "ddr_dq_in_1" - NET "ddr_dq_in_2" - NET "ddr_dq_in_3" - NET "ddr_dq_in_4" - NET "ddr_dq_in_5" - NET "ddr_dq_in_6" - NET "ddr_dq_in_7" - NET "ddr_dq_in_8" - NET "ddr_dq_in_9" - NET "ddr_dq_in_10" - NET "ddr_dq_in_11" - NET "ddr_dq_in_12" - NET "ddr_dq_in_13" - NET "ddr_dq_in_14" - NET "ddr_dq_in_15" - NET "ddr_dq_in_16" - NET "ddr_dq_in_17" - NET "ddr_dq_in_18" - NET "ddr_dq_in_19" - NET "ddr_dq_in_20" - NET "ddr_dq_in_21" - NET "ddr_dq_in_22" - NET "ddr_dq_in_23" - NET "ddr_dq_in_24" - NET "ddr_dq_in_25" - NET "ddr_dq_in_26" - NET "ddr_dq_in_27" - NET "ddr_dq_in_28" - NET "ddr_dq_in_29" - NET "ddr_dq_in_30" - NET "ddr_dq_in_31"; - -#LOCATE BUS "ddr_bus" COL 65; - - diff --git a/boards/ge-hpe-mini-lattice2/Makefile.inc b/boards/ge-hpe-mini-lattice2/Makefile.inc deleted file mode 100644 index 8c8be1e0..00000000 --- a/boards/ge-hpe-mini-lattice2/Makefile.inc +++ /dev/null @@ -1,12 +0,0 @@ -TECHNOLOGY=LATTICE-ECP2 -PART=LFE2_50E -PACKAGE=F672C -ISPLIB=ep5g00p -ISPPACKAGE=FPBGA672 -SPEED=-6 -SYNFREQ=35 -PROMGENPAR= -exe $(ISPVM_DIR)/ispufw -op p -prj $(TOP) -if $(TOP).bit -oft -int -of $(TOP).mcs -MANUFACTURER=Lattice -MGCPART=$(PART) -MGCPACKAGE=$(ISPPACKAGE) -MGCTECHNOLOGY=LatticeECP-DSP diff --git a/boards/ge-hpe-mini-lattice2/default.sdc b/boards/ge-hpe-mini-lattice2/default.sdc deleted file mode 100644 index 17ecdaab..00000000 --- a/boards/ge-hpe-mini-lattice2/default.sdc +++ /dev/null @@ -1,54 +0,0 @@ -# Synplicity, Inc. constraint file -# Z:\LEON3SDE\ALTERA\grlib-eval-1.0.8-ge\boards\ge-hpe-mini-lattice2\default.sdc -# Written on Wed Aug 16 13:55:14 2006 -# by Synplify Pro, Synplify Pro 8.6.1 Scope Editor - -# -# Collections -# - -# -# Clocks -# -define_clock -name {clkgen0.clkm_inferred_clock} -freq 60.000 -clockgroup clkmgroup -define_clock -name {clkgen0.ddrclk0_inferred_clock} -freq 120.000 -clockgroup ddrclkgroup - -# -# Clock to Clock -# - -# -# Inputs/Outputs -# -define_output_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {clk:r} -define_input_delay -default 4.00 -improve 0.00 -route 0.00 -ref {clkgen0.ddrclk0_inferred_clock:r} - -# -# Registers -# - -# -# Multicycle Path -# - -# -# False Path -# - -# -# Path Delay -# - -# -# Attributes -# -define_global_attribute syn_useioff {1} -define_global_attribute syn_netlist_hierarchy {1} - -# -# I/O standards -# - -# -# Other Constraints -# diff --git a/boards/ge-hpe-mini-lattice2/default.ut b/boards/ge-hpe-mini-lattice2/default.ut deleted file mode 100644 index 8d055524..00000000 --- a/boards/ge-hpe-mini-lattice2/default.ut +++ /dev/null @@ -1,6 +0,0 @@ --g CfgMode:Disable --g ReadBack:SRAM --g RamCfg:Reset --g SYNSRC:No --g PllSET:None - diff --git a/boards/ge-hpe-mini-lattice2/leon3mini.lpf b/boards/ge-hpe-mini-lattice2/leon3mini.lpf deleted file mode 100644 index b7359f52..00000000 --- a/boards/ge-hpe-mini-lattice2/leon3mini.lpf +++ /dev/null @@ -1,74 +0,0 @@ -# Assign IO_TYPE Attributes -IOBUF PORT "ddr_dqs_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dqs_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dqs_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dqs_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_dq_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_4" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_5" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_6" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_7" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_8" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_9" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_10" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_11" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_12" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_13" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_14" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_15" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_16" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_17" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_18" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_19" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_20" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_21" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_22" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_23" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_24" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_25" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_26" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_27" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_28" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_29" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_30" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_31" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_ba_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ba_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk0b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_cke0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk1b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_cke1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_rasb" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_casb" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_web" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_cs0b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_cs1b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_ad_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_4" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_5" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_6" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_7" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_8" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_9" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_10" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_11" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_12" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_13" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_dm_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dm_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dm_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dm_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; - diff --git a/boards/ge-hpe-mini-lattice2/leon3mini.prf b/boards/ge-hpe-mini-lattice2/leon3mini.prf deleted file mode 100644 index 307da87a..00000000 --- a/boards/ge-hpe-mini-lattice2/leon3mini.prf +++ /dev/null @@ -1,448 +0,0 @@ -SCHEMATIC START ; -LOCATE COMP "clk" SITE "A10" ; -LOCATE COMP "resetn" SITE "H6" ; -LOCATE COMP "resoutn" SITE "B3" ; -LOCATE COMP "address_2" SITE "AB20" ; -LOCATE COMP "address_3" SITE "AA20" ; -LOCATE COMP "address_4" SITE "AB19" ; -LOCATE COMP "address_5" SITE "AA19" ; -LOCATE COMP "address_6" SITE "Y19" ; -LOCATE COMP "address_7" SITE "AB18" ; -LOCATE COMP "address_8" SITE "AA18" ; -LOCATE COMP "address_9" SITE "Y18" ; -LOCATE COMP "address_10" SITE "W18" ; -LOCATE COMP "address_11" SITE "AB17" ; -LOCATE COMP "address_12" SITE "AA17" ; -LOCATE COMP "address_13" SITE "Y17" ; -LOCATE COMP "address_14" SITE "W17" ; -LOCATE COMP "address_15" SITE "V17" ; -LOCATE COMP "address_16" SITE "U17" ; -LOCATE COMP "address_17" SITE "AB16" ; -LOCATE COMP "address_18" SITE "AA16" ; -LOCATE COMP "address_19" SITE "Y16" ; -LOCATE COMP "address_20" SITE "W16" ; -LOCATE COMP "address_21" SITE "V16" ; -LOCATE COMP "address_22" SITE "U16" ; -LOCATE COMP "address_23" SITE "AB15" ; -LOCATE COMP "address_24" SITE "AA15" ; -LOCATE COMP "data_0" SITE "Y15" ; -LOCATE COMP "data_1" SITE "W15" ; -LOCATE COMP "data_2" SITE "V15" ; -LOCATE COMP "data_3" SITE "U15" ; -LOCATE COMP "data_4" SITE "AB14" ; -LOCATE COMP "data_5" SITE "AA14" ; -LOCATE COMP "data_6" SITE "Y14" ; -LOCATE COMP "data_7" SITE "W14" ; -LOCATE COMP "data_8" SITE "AA13" ; -LOCATE COMP "data_9" SITE "Y13" ; -LOCATE COMP "data_10" SITE "AA11" ; -LOCATE COMP "data_11" SITE "Y11" ; -LOCATE COMP "data_12" SITE "W11" ; -LOCATE COMP "data_13" SITE "AA10" ; -LOCATE COMP "data_14" SITE "Y10" ; -LOCATE COMP "data_15" SITE "W10" ; -LOCATE COMP "data_16" SITE "V10" ; -LOCATE COMP "data_17" SITE "AB9" ; -LOCATE COMP "data_18" SITE "AA9" ; -LOCATE COMP "data_19" SITE "Y9" ; -LOCATE COMP "data_20" SITE "W9" ; -LOCATE COMP "data_21" SITE "V9" ; -LOCATE COMP "data_22" SITE "AB8" ; -LOCATE COMP "data_23" SITE "AA8" ; -LOCATE COMP "data_24" SITE "Y8" ; -LOCATE COMP "data_25" SITE "W8" ; -LOCATE COMP "data_26" SITE "V8" ; -LOCATE COMP "data_27" SITE "AB7" ; -LOCATE COMP "data_28" SITE "AA7" ; -LOCATE COMP "data_29" SITE "Y7" ; -LOCATE COMP "data_30" SITE "W7" ; -LOCATE COMP "data_31" SITE "V7" ; -LOCATE COMP "serrx" SITE "M2" ; -LOCATE COMP "sertx" SITE "L1" ; -LOCATE COMP "emdio" SITE "K4" ; -LOCATE COMP "etx_clk" SITE "J1" ; -LOCATE COMP "erx_clk" SITE "K1" ; -LOCATE COMP "erxd_0" SITE "G1" ; -LOCATE COMP "erxd_1" SITE "G2" ; -LOCATE COMP "erxd_2" SITE "G3" ; -LOCATE COMP "erxd_3" SITE "F2" ; -LOCATE COMP "erx_dv" SITE "J4" ; -LOCATE COMP "erx_er" SITE "J5" ; -LOCATE COMP "erx_col" SITE "K2" ; -LOCATE COMP "erx_crs" SITE "K3" ; -LOCATE COMP "etxd_0" SITE "H1" ; -LOCATE COMP "etxd_1" SITE "H2" ; -LOCATE COMP "etxd_2" SITE "H3" ; -LOCATE COMP "etxd_3" SITE "H4" ; -LOCATE COMP "etx_en" SITE "J3" ; -LOCATE COMP "etx_er" SITE "J2" ; -LOCATE COMP "emdc" SITE "K5" ; -LOCATE COMP "hpiaddr_0" SITE "C10" ; -LOCATE COMP "hpiaddr_1" SITE "D10" ; -LOCATE COMP "hpicsn" SITE "E10" ; -LOCATE COMP "hpiwrn" SITE "F10" ; -LOCATE COMP "hpirdn" SITE "G10" ; -LOCATE COMP "hpidata_0" SITE "B7" ; -LOCATE COMP "hpidata_1" SITE "C7" ; -LOCATE COMP "hpidata_2" SITE "D7" ; -LOCATE COMP "hpidata_3" SITE "E7" ; -LOCATE COMP "hpidata_4" SITE "F7" ; -LOCATE COMP "hpidata_5" SITE "A8" ; -LOCATE COMP "hpidata_6" SITE "B8" ; -LOCATE COMP "hpidata_7" SITE "C8" ; -LOCATE COMP "hpidata_8" SITE "D8" ; -LOCATE COMP "hpidata_9" SITE "E8" ; -LOCATE COMP "hpidata_10" SITE "F8" ; -LOCATE COMP "hpidata_11" SITE "A9" ; -LOCATE COMP "hpidata_12" SITE "B9" ; -LOCATE COMP "hpidata_13" SITE "C9" ; -LOCATE COMP "hpidata_14" SITE "D9" ; -LOCATE COMP "hpidata_15" SITE "E9" ; -LOCATE COMP "hpiint" SITE "B11" ; -LOCATE COMP "dbg_equal" SITE "AB13" ; -LOCATE COMP "sample_clock" SITE "AB12" ; -LOCATE COMP "dac" SITE "U7" ; -LOCATE COMP "vga_vsync" SITE "A6" ; -LOCATE COMP "vga_hsync" SITE "A7" ; -LOCATE COMP "vga_rd_0" SITE "A3" ; -LOCATE COMP "vga_rd_1" SITE "B4" ; -LOCATE COMP "vga_gr_0" SITE "A4" ; -LOCATE COMP "vga_gr_1" SITE "B5" ; -LOCATE COMP "vga_bl_0" SITE "A5" ; -LOCATE COMP "vga_bl_1" SITE "B6" ; -# LOCATE COMP "dsw_0" SITE "R2" ; -LOCATE COMP "dsuen" SITE "R2" ; -LOCATE COMP "dsw_1" SITE "R3" ; -LOCATE COMP "dsw_2" SITE "R4" ; -LOCATE COMP "dsw_3" SITE "R5" ; -# LOCATE COMP "led_0" SITE "E3" ; -LOCATE COMP "dsuactn" SITE "E3" ; -LOCATE COMP "led_1" SITE "E4" ; -LOCATE COMP "led_2" SITE "E5" ; -LOCATE COMP "led_3" SITE "F4" ; -LOCATE COMP "led_4" SITE "F5" ; -LOCATE COMP "led_5" SITE "G4" ; -LOCATE COMP "led_6" SITE "G5" ; -LOCATE COMP "led_7" SITE "H5" ; -LOCATE COMP "sevensegment_0" SITE "M3" ; -LOCATE COMP "sevensegment_1" SITE "M4" ; -LOCATE COMP "sevensegment_2" SITE "M5" ; -LOCATE COMP "sevensegment_3" SITE "N1" ; -LOCATE COMP "sevensegment_4" SITE "N2" ; -LOCATE COMP "sevensegment_5" SITE "N3" ; -LOCATE COMP "sevensegment_6" SITE "N4" ; -LOCATE COMP "sevensegment_7" SITE "N5" ; -LOCATE COMP "sevensegment_8" SITE "P1" ; -LOCATE COMP "sevensegment_9" SITE "P2" ; -LOCATE COMP "lcd_enable" SITE "P5" ; -LOCATE COMP "lcd_regsel" SITE "P3" ; -LOCATE COMP "lcd_rw" SITE "P4" ; -LOCATE COMP "tst_col_0" SITE "U4" ; -LOCATE COMP "tst_col_1" SITE "U6" ; -LOCATE COMP "tst_col_2" SITE "V5" ; -LOCATE COMP "tst_row_0" SITE "T1" ; -LOCATE COMP "tst_row_1" SITE "T2" ; -LOCATE COMP "tst_row_2" SITE "T3" ; -LOCATE COMP "tst_row_3" SITE "R1" ; -LOCATE COMP "exp_datao_0" SITE "K22" ; -LOCATE COMP "exp_datai_0" SITE "K21" ; -LOCATE COMP "exp_datao_1" SITE "L22" ; -LOCATE COMP "exp_datai_1" SITE "L21" ; -LOCATE COMP "exp_datao_2" SITE "L20" ; -LOCATE COMP "exp_datai_2" SITE "M22" ; -LOCATE COMP "exp_datao_3" SITE "M21" ; -LOCATE COMP "exp_datai_3" SITE "M20" ; -LOCATE COMP "exp_datao_4" SITE "M19" ; -LOCATE COMP "exp_datai_4" SITE "M18" ; -LOCATE COMP "exp_datao_5" SITE "N22" ; -LOCATE COMP "exp_datai_5" SITE "N21" ; -LOCATE COMP "exp_datao_6" SITE "N20" ; -LOCATE COMP "exp_datai_6" SITE "N19" ; -LOCATE COMP "exp_datao_7" SITE "N18" ; -LOCATE COMP "exp_datai_7" SITE "P22" ; -LOCATE COMP "exp_datao_8" SITE "P21" ; -LOCATE COMP "exp_datai_8" SITE "P20" ; -LOCATE COMP "exp_datao_9" SITE "P18" ; -LOCATE COMP "exp_datai_9" SITE "P19" ; -LOCATE COMP "exp_datao_10" SITE "R22" ; -LOCATE COMP "exp_datai_10" SITE "R21" ; -LOCATE COMP "exp_datao_11" SITE "R19" ; -LOCATE COMP "exp_datai_11" SITE "R18" ; -LOCATE COMP "exp_datao_12" SITE "R17" ; -LOCATE COMP "exp_datai_12" SITE "T22" ; -LOCATE COMP "exp_datao_13" SITE "T18" ; -LOCATE COMP "exp_datai_13" SITE "U22" ; -LOCATE COMP "exp_datao_14" SITE "V19" ; -LOCATE COMP "exp_datai_14" SITE "W21" ; -LOCATE COMP "exp_datao_15" SITE "W20" ; -LOCATE COMP "exp_datai_15" SITE "W19" ; -LOCATE COMP "exp_datao_16" SITE "Y20" ; -LOCATE COMP "exp_datai_16" SITE "AA22" ; -LOCATE COMP "exp_datao_17" SITE "AA21" ; -LOCATE COMP "exp_datai_17" SITE "AB21" ; -LOCATE COMP "exp_datao_18" SITE "T17" ; -LOCATE COMP "exp_datai_18" SITE "T14" ; -LOCATE COMP "exp_datao_19" SITE "T13" ; -LOCATE COMP "exp_datai_19" SITE "U14" ; -LOCATE COMP "codec_cs" SITE "W4" ; -LOCATE COMP "codec_mclk" SITE "Y3" ; -LOCATE COMP "codec_mode" SITE "V4" ; -LOCATE COMP "codec_sclk" SITE "Y1" ; -LOCATE COMP "codec_sdin" SITE "AA2" ; -LOCATE COMP "codec_din" SITE "W2" ; -LOCATE COMP "codec_bclk" SITE "W1" ; -LOCATE COMP "codec_lrcin" SITE "AA1" ; -LOCATE COMP "codec_lrcout" SITE "Y2" ; -LOCATE COMP "dbg_codec_din" SITE "F11" ; -LOCATE COMP "dbg_codec_bclk" SITE "F12" ; -LOCATE COMP "dbg_codec_lrcin" SITE "F13" ; -LOCATE COMP "dbg_codec_lrcout" SITE "G13" ; -LOCATE COMP "dsubre" SITE "V6" ; -LOCATE COMP "oen" SITE "AA6" ; -#LOCATE COMP "wen" SITE "AB6" ; -LOCATE COMP "writen" SITE "AB6" ; -LOCATE COMP "rben_0" SITE "AB4" ; -LOCATE COMP "rben_1" SITE "AA4" ; -LOCATE COMP "rben_2" SITE "AB3" ; -LOCATE COMP "rben_3" SITE "AA3" ; -LOCATE COMP "ramsn" SITE "Y4" ; -LOCATE COMP "romwpn" SITE "AB5" ; -LOCATE COMP "romsn" SITE "Y5" ; -LOCATE COMP "romrstn" SITE "Y6" ; -LOCATE COMP "errorn" SITE "AA12" ; -LOCATE COMP "ddr_ad_0" SITE "D16" ; -LOCATE COMP "ddr_ad_1" SITE "C16" ; -LOCATE COMP "ddr_ad_10" SITE "E16" ; -LOCATE COMP "ddr_ad_11" SITE "C13" ; -LOCATE COMP "ddr_ad_12" SITE "B13" ; -LOCATE COMP "ddr_ad_13" SITE "C17" ; -LOCATE COMP "ddr_ad_2" SITE "E15" ; -LOCATE COMP "ddr_ad_3" SITE "D15" ; -LOCATE COMP "ddr_ad_4" SITE "C15" ; -LOCATE COMP "ddr_ad_5" SITE "E14" ; -LOCATE COMP "ddr_ad_6" SITE "D14" ; -LOCATE COMP "ddr_ad_7" SITE "C14" ; -LOCATE COMP "ddr_ad_8" SITE "E13" ; -LOCATE COMP "ddr_ad_9" SITE "D13" ; -LOCATE COMP "ddr_ba_0" SITE "E17" ; -LOCATE COMP "ddr_ba_1" SITE "D17" ; -LOCATE COMP "ddr_casb" SITE "A19" ; -LOCATE COMP "ddr_clk0" SITE "A12" ; -LOCATE COMP "ddr_clk0b" SITE "B12" ; -LOCATE COMP "ddr_clk1" SITE "B19" ; -LOCATE COMP "ddr_clk1b" SITE "A20" ; -LOCATE COMP "ddr_cke0" SITE "A13" ; -LOCATE COMP "ddr_cke1" SITE "C12" ; -LOCATE COMP "ddr_dm_0" SITE "B15" ; -LOCATE COMP "ddr_dm_1" SITE "C20" ; -LOCATE COMP "ddr_dm_2" SITE "H19" ; -LOCATE COMP "ddr_dm_3" SITE "K20" ; -LOCATE COMP "ddr_dq_0" SITE "A14" ; -LOCATE COMP "ddr_dq_1" SITE "B14" ; -LOCATE COMP "ddr_dq_10" SITE "C21" ; -LOCATE COMP "ddr_dq_11" SITE "C22" ; -LOCATE COMP "ddr_dq_12" SITE "E20" ; -LOCATE COMP "ddr_dq_13" SITE "E18" ; -LOCATE COMP "ddr_dq_14" SITE "F19" ; -LOCATE COMP "ddr_dq_15" SITE "F18" ; -LOCATE COMP "ddr_dq_16" SITE "D21" ; -LOCATE COMP "ddr_dq_17" SITE "F20" ; -LOCATE COMP "ddr_dq_18" SITE "G21" ; -LOCATE COMP "ddr_dq_19" SITE "G20" ; -LOCATE COMP "ddr_dq_2" SITE "A15" ; -LOCATE COMP "ddr_dq_20" SITE "H20" ; -LOCATE COMP "ddr_dq_21" SITE "J19" ; -LOCATE COMP "ddr_dq_22" SITE "J18" ; -LOCATE COMP "ddr_dq_23" SITE "H17" ; -LOCATE COMP "ddr_dq_24" SITE "F22" ; -LOCATE COMP "ddr_dq_25" SITE "G22" ; -LOCATE COMP "ddr_dq_26" SITE "H22" ; -LOCATE COMP "ddr_dq_27" SITE "H21" ; -LOCATE COMP "ddr_dq_28" SITE "K19" ; -LOCATE COMP "ddr_dq_29" SITE "K18" ; -LOCATE COMP "ddr_dq_3" SITE "B16" ; -LOCATE COMP "ddr_dq_30" SITE "L18" ; -LOCATE COMP "ddr_dq_31" SITE "L19" ; -LOCATE COMP "ddr_dq_4" SITE "A17" ; -LOCATE COMP "ddr_dq_5" SITE "B17" ; -LOCATE COMP "ddr_dq_6" SITE "A18" ; -LOCATE COMP "ddr_dq_7" SITE "B18" ; -LOCATE COMP "ddr_dq_8" SITE "B22" ; -LOCATE COMP "ddr_dq_9" SITE "B21" ; -LOCATE COMP "ddr_dqs_0" SITE "A16" ; -LOCATE COMP "ddr_dqs_1" SITE "D20" ; -LOCATE COMP "ddr_dqs_2" SITE "H18" ; -LOCATE COMP "ddr_dqs_3" SITE "J20" ; -LOCATE COMP "ddr_rasb" SITE "C18" ; -LOCATE COMP "ddr_cs0b" SITE "C19" ; -LOCATE COMP "ddr_cs1b" SITE "B20" ; -LOCATE COMP "ddr_web" SITE "D18" ; -SYSCONFIG PERSISTENT=OFF CONFIG_MODE=SLAVE_SERIAL DONE_OD=ON DONE_EX=OFF MCCLK_FREQ=2.5 CONFIG_SECURE=OFF WAKE_UP=21 WAKE_ON_LOCK=OFF WAKEUP_CLK=EXTERNAL COMPRESS_CONFIG=OFF INBUF=OFF ; -SCHEMATIC END ; -BLOCK RESETPATHS ; -BLOCK ASYNCPATHS ; -FREQUENCY PORT "clk" 25.000000 MHz ; -#USE SECONDARY NET clk ; -FREQUENCY PORT "etx_clk" 25.000000 MHz ; -FREQUENCY PORT "erx_clk" 25.000000 MHz ; -#FREQUENCY NET "clkgen0_clkin200" 200.000000 MHz ; -FREQUENCY NET "clkm" 50.000000 MHz ; -FREQUENCY NET "ddrclk0" 100.000000 MHz ; -#FREQUENCY NET "ddrclk90" 100.000000 MHz ; -FREQUENCY NET "ddrclk180" 100.000000 MHz ; -FREQUENCY NET "ddrclk270" 100.000000 MHz ; -#USE PRIMARY PURE NET clkm; -#USE PRIMARY PURE NET ddrclk0; -#USE PRIMARY PURE NET ddrclk180; -#USE PRIMARY PURE NET ddrclk270; -INPUT_SETUP ALLPORTS 5.000000 ns CLKPORT "clk" ; -CLOCK_TO_OUT ALLPORTS 20.000000 ns CLKPORT "clk" ; -BLOCK NET "resetn_c" ; -BLOCK NET "romrstn_c_r*" ; -#DEFINE PORT GROUP "ddrgroup" "ddr*"; -#IOBUF GROUP "ddrgroup" IO_TYPE=SSTL25D_II ; - -# Assign IO_TYPE Attributes -IOBUF PORT "ddr_dqs_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dqs_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dqs_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dqs_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_dq_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_4" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_5" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_6" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_7" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_8" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_9" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_10" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_11" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_12" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_13" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_14" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_15" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_16" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_17" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_18" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_19" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_20" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_21" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_22" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_23" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_24" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_25" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_26" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_27" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_28" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_29" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_30" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dq_31" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_ba_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ba_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk0b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_cke0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_clk1b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_cke1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_rasb" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_casb" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_web" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_cs0b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_cs1b" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_ad_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_4" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_5" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_6" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_7" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_8" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_9" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_10" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_11" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_12" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_ad_13" IO_TYPE=SSTL25_II PULLMODE=NONE ; -# -IOBUF PORT "ddr_dm_0" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dm_1" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dm_2" IO_TYPE=SSTL25_II PULLMODE=NONE ; -IOBUF PORT "ddr_dm_3" IO_TYPE=SSTL25_II PULLMODE=NONE ; - -INPUT_SETUP PORT "ddr_dq_0" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_1" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_2" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_3" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_4" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_5" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_6" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_7" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_8" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_9" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_10" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_11" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_12" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_13" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_14" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_15" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_16" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_17" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_18" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_19" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_20" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_21" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_22" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_23" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_24" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_25" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_26" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_27" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_28" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_29" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_30" 0.800000 ns CLKNET "ddrclk0" ; -INPUT_SETUP PORT "ddr_dq_31" 0.800000 ns CLKNET "ddrclk0" ; - -DEFINE BUS ddr_bus - NET "ddr_dq_in_0" - NET "ddr_dq_in_1" - NET "ddr_dq_in_2" - NET "ddr_dq_in_3" - NET "ddr_dq_in_4" - NET "ddr_dq_in_5" - NET "ddr_dq_in_6" - NET "ddr_dq_in_7" - NET "ddr_dq_in_8" - NET "ddr_dq_in_9" - NET "ddr_dq_in_10" - NET "ddr_dq_in_11" - NET "ddr_dq_in_12" - NET "ddr_dq_in_13" - NET "ddr_dq_in_14" - NET "ddr_dq_in_15" - NET "ddr_dq_in_16" - NET "ddr_dq_in_17" - NET "ddr_dq_in_18" - NET "ddr_dq_in_19" - NET "ddr_dq_in_20" - NET "ddr_dq_in_21" - NET "ddr_dq_in_22" - NET "ddr_dq_in_23" - NET "ddr_dq_in_24" - NET "ddr_dq_in_25" - NET "ddr_dq_in_26" - NET "ddr_dq_in_27" - NET "ddr_dq_in_28" - NET "ddr_dq_in_29" - NET "ddr_dq_in_30" - NET "ddr_dq_in_31"; - -#LOCATE BUS "ddr_bus" COL 65; - - diff --git a/boards/ge-hpe-mini/Makefile.inc b/boards/ge-hpe-mini/Makefile.inc deleted file mode 100755 index 3a090363..00000000 --- a/boards/ge-hpe-mini/Makefile.inc +++ /dev/null @@ -1,5 +0,0 @@ -TECHNOLOGY=CYCLONEII -PART=EP2C35 -PACKAGE=FC484 -SPEED=-8 -SYNFREQ=60 diff --git a/boards/ge-hpe-mini/default.sdc b/boards/ge-hpe-mini/default.sdc deleted file mode 100755 index a5075195..00000000 --- a/boards/ge-hpe-mini/default.sdc +++ /dev/null @@ -1,44 +0,0 @@ -# -# Clocks -# -define_clock -name {clk} -freq 60.000 -clockgroup default_clkgroup -define_clock -name {etx_clk} -freq 40.000 -clockgroup etx_clkgroup -define_clock -name {erx_clk} -freq 40.000 -clockgroup erx_clkgroup - -# -# Clock to Clock -# - -# -# Inputs/Outputs -# -define_output_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {clk:r} -define_input_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {clk:r} -# -# Registers -# - -# -# Multicycle Path -# - -# -# False Path -# - -# -# Delay Path -# - -# -# Attributes -# -define_global_attribute syn_useioff {1} - -# -# Compile Points -# - -# -# Other Constraints -# diff --git a/boards/ge-hpe-mini/leon3mini.qsf b/boards/ge-hpe-mini/leon3mini.qsf deleted file mode 100755 index 623d47d0..00000000 --- a/boards/ge-hpe-mini/leon3mini.qsf +++ /dev/null @@ -1,489 +0,0 @@ -# Pin & Location Assignments -# ========================== -set_location_assignment PIN_Y16 -to address[2] -comment A0 -set_location_assignment PIN_AB16 -to address[3] -comment A1 -set_location_assignment PIN_W15 -to address[4] -comment A2 -set_location_assignment PIN_AA16 -to address[5] -comment A3 -set_location_assignment PIN_V15 -to address[6] -comment A4 -set_location_assignment PIN_AA15 -to address[7] -comment A5 -set_location_assignment PIN_W8 -to address[8] -comment A6 -set_location_assignment PIN_AA8 -to address[9] -comment A7 -set_location_assignment PIN_AB8 -to address[10] -comment A8 -set_location_assignment PIN_Y7 -to address[11] -comment A9 -set_location_assignment PIN_AB7 -to address[12] -comment A10 -set_location_assignment PIN_Y6 -to address[13] -comment A111 -set_location_assignment PIN_AA11 -to address[14] -comment A12 -set_location_assignment PIN_Y10 -to address[15] -comment A13 -set_location_assignment PIN_M1 -to clk -comment "CLK_FPGA" -set_location_assignment PIN_AA20 -to data[0] -comment SDRAM_D0 -set_location_assignment PIN_W14 -to data[10] -set_location_assignment PIN_Y14 -to data[11] -set_location_assignment PIN_AA14 -to data[12] -set_location_assignment PIN_AB14 -to data[13] -set_location_assignment PIN_U13 -to data[14] -set_location_assignment PIN_Y13 -to data[15] -set_location_assignment PIN_AA10 -to data[16] -set_location_assignment PIN_AB10 -to data[17] -set_location_assignment PIN_V9 -to data[18] -set_location_assignment PIN_W9 -to data[19] -set_location_assignment PIN_AB20 -to data[1] -set_location_assignment PIN_Y9 -to data[20] -set_location_assignment PIN_AA9 -to data[21] -set_location_assignment PIN_AB9 -to data[22] -set_location_assignment PIN_V8 -to data[23] -set_location_assignment PIN_Y5 -to data[24] -set_location_assignment PIN_AA5 -to data[25] -set_location_assignment PIN_AB5 -to data[26] -set_location_assignment PIN_Y4 -to data[27] -set_location_assignment PIN_AA4 -to data[28] -set_location_assignment PIN_AB4 -to data[29] -set_location_assignment PIN_AA19 -to data[2] -set_location_assignment PIN_Y3 -to data[30] -set_location_assignment PIN_AB3 -to data[31] -comment SDRAM_D31 -set_location_assignment PIN_AB19 -to data[3] -set_location_assignment PIN_AA18 -to data[4] -set_location_assignment PIN_AB18 -to data[5] -set_location_assignment PIN_Y17 -to data[6] -set_location_assignment PIN_AA17 -to data[7] -set_location_assignment PIN_AB15 -to data[8] -set_location_assignment PIN_V14 -to data[9] -set_location_assignment PIN_W4 -to dsuactn -comment "LED1#" -set_location_assignment PIN_P5 -to dsubre -comment TST_STEP -set_location_assignment PIN_M5 -to dsuen -comment DSW0 -set_location_assignment PIN_D1 -to rxd1 -comment RS_RXD_TTL -disable -set_location_assignment PIN_C1 -to txd1 -comment RS_TXD_TTL -disable -set_location_assignment PIN_D1 -to dsurx -comment RS_RXD_TTL -disable -set_location_assignment PIN_C1 -to dsutx -comment RS_TXD_TTL -disable -set_location_assignment PIN_D1 -to serrx -comment RS_RXD_TTL -set_location_assignment PIN_C1 -to sertx -comment RS_TXD_TTL -set_location_assignment PIN_M6 -to sersrcsel -comment DSW1 -set_location_assignment PIN_J1 -to emdc -comment ETH_MDC -set_location_assignment PIN_J2 -to emdio -comment ETH_MDIO -set_location_assignment PIN_W5 -to errorn -comment "LED0#" -set_location_assignment PIN_J4 -to erxd[0] -comment ETH_RXD0 -set_location_assignment PIN_H3 -to erxd[1] -comment ETH_RXD1 -set_location_assignment PIN_H2 -to erxd[2] -comment ETH_RXD2 -set_location_assignment PIN_H1 -to erxd[3] -comment ETH_RXD3 -set_location_assignment PIN_L2 -to erx_clk -comment ETH_RXCLK -set_location_assignment PIN_F1 -to erx_col -comment ETH_COL -set_location_assignment PIN_F2 -to erx_crs -comment ETH_CRS -set_location_assignment PIN_H4 -to erx_dv -comment ETH_RXDV -set_location_assignment PIN_H5 -to erx_er -comment ETH_RXER -set_location_assignment PIN_G5 -to etxd[0] -comment ETH_TXD0 -set_location_assignment PIN_G6 -to etxd[1] -comment ETH_TXD1 -set_location_assignment PIN_F3 -to etxd[2] -comment ETH_TXD2 -set_location_assignment PIN_F4 -to etxd[3] -comment ETH_TXD3 -set_location_assignment PIN_L1 -to etx_clk -comment ETH_TXCLK -set_location_assignment PIN_G3 -to etx_en -comment ETH_TXEN -set_location_assignment PIN_H6 -to etx_er -comment ETH_TXER -set_location_assignment PIN_B3 -to resetn -comment "HPE_RESET#" -set_location_assignment PIN_W7 -to sdba[0] -comment SDRAM_BA0 -set_location_assignment PIN_AA7 -to sdba[1] -comment SDRAM_BA1 -set_location_assignment PIN_AA12 -to sdcasn -comment "SDRAM_CAS#" -set_location_assignment PIN_AA13 -to sdcke[0] -comment SDRAM_CKE0 -set_location_assignment PIN_V11 -to sdcke[1] -comment SDRAM_CKE1 -set_location_assignment PIN_U4 -to sdclk -comment SDRAM_PLL1_OUT -set_location_assignment PIN_W11 -to sdcsn[0] -comment "SDRAM_CS0#" -set_location_assignment PIN_AB11 -to sdcsn[1] -comment "SDRAM_CS1#" -set_location_assignment PIN_AB17 -to sddqm[0] -comment SDRAM_DQM0 -set_location_assignment PIN_W16 -to sddqm[1] -comment SDRAM_DQM1 -set_location_assignment PIN_AA6 -to sddqm[2] -comment SDRAM_DQM2 -set_location_assignment PIN_AB6 -to sddqm[3] -comment SDRAM_DQM3 -set_location_assignment PIN_AB13 -to sdrasn -comment "SDRAM_RAS#" -set_location_assignment PIN_AB12 -to sdwen -comment "SDRAM_WE#" -set_location_assignment PIN_E1 -to resoutn -comment "HPE_RESOUT#" -set_location_assignment PIN_Y22 -to dac -comment "DAC_DIG" - -# ATA singals -set_location_assignment PIN_N21 -to ata_data[0] -set_location_assignment PIN_M19 -to ata_data[1] -set_location_assignment PIN_L19 -to ata_data[2] -set_location_assignment PIN_K22 -to ata_data[3] -set_location_assignment PIN_K20 -to ata_data[4] -set_location_assignment PIN_J21 -to ata_data[5] -set_location_assignment PIN_J19 -to ata_data[6] -set_location_assignment PIN_J17 -to ata_data[7] -set_location_assignment PIN_J18 -to ata_data[8] -set_location_assignment PIN_J20 -to ata_data[9] -set_location_assignment PIN_J22 -to ata_data[10] -set_location_assignment PIN_K21 -to ata_data[11] -set_location_assignment PIN_L18 -to ata_data[12] -set_location_assignment PIN_M18 -to ata_data[13] -set_location_assignment PIN_N15 -to ata_data[14] -set_location_assignment PIN_N22 -to ata_data[15] -set_location_assignment PIN_T21 -to ata_da[0] -set_location_assignment PIN_R22 -to ata_da[1] -set_location_assignment PIN_T22 -to ata_da[2] -set_location_assignment PIN_U19 -to ata_cs0 -set_location_assignment PIN_J15 -to ata_cs1 -set_location_assignment PIN_P18 -to ata_dior -set_location_assignment PIN_P17 -to ata_diow -set_location_assignment PIN_R17 -to ata_iordy -set_location_assignment PIN_R20 -to ata_intrq -set_location_assignment PIN_P15 -to ata_dmarq -set_location_assignment PIN_R19 -to ata_dmack -set_location_assignment PIN_U20 -to ata_dasp -set_location_assignment PIN_R18 -to ata_csel - - - -# set_location_assignment PIN_J17 -to address[1] -# set_location_assignment PIN_J18 -to address[19] -# set_location_assignment PIN_J19 -to address[25] -# set_location_assignment PIN_J20 -to read -# set_location_assignment PIN_J21 -to ramoen[3] -# set_location_assignment PIN_J22 -to oen -# set_location_assignment PIN_K20 -to rben[0] -# set_location_assignment PIN_K21 -to ramoen[0] -# set_location_assignment PIN_K22 -to address[17] -# set_location_assignment PIN_L18 -to address[21] -# set_location_assignment PIN_L19 -to address[27] -# set_location_assignment PIN_M18 -to iosn -# set_location_assignment PIN_M19 -to ramsn[0] -# set_location_assignment PIN_N15 -to romsn[0] -# set_location_assignment PIN_N21 -to rben[2] -# set_location_assignment PIN_N22 -to ramoen[2] -# set_location_assignment PIN_P15 -to ramsn[2] -# set_location_assignment PIN_P18 -to address[0] -# set_location_assignment PIN_R17 -to ramsn[3] -# set_location_assignment PIN_R18 -to ramoen[4] -# set_location_assignment PIN_R19 -to ramsn[1] -# set_location_assignment PIN_R20 -to rben[3] -# set_location_assignment PIN_R21 -to address[16] -# set_location_assignment PIN_R22 -to address[24] -# set_location_assignment PIN_T21 -to ramoen[1] -# set_location_assignment PIN_T22 -to address[22] -# set_location_assignment PIN_P17 -to address[23] -# set_location_assignment PIN_U19 -to romsn[1] -# set_location_assignment PIN_U20 -to rben[1] -# set_location_assignment PIN_U21 -to ramsn[4] -# set_location_assignment PIN_U22 -to writen - -#set_location_assignment PIN_V20 -to address[20] -#set_location_assignment PIN_V21 -to address[26] -#set_location_assignment PIN_V22 -to address[18] -set_location_assignment PIN_A3 -to vga_rd[0] -set_location_assignment PIN_B4 -to vga_rd[1] -set_location_assignment PIN_A4 -to vga_gr[0] -set_location_assignment PIN_B5 -to vga_gr[1] -set_location_assignment PIN_A5 -to vga_bl[0] -set_location_assignment PIN_B6 -to vga_bl[1] -set_location_assignment PIN_A6 -to vga_vsync -set_location_assignment PIN_A7 -to vga_hsync -set_location_assignment PIN_D16 -to hpiaddr[0] -comment USB_GPIO19 -set_location_assignment PIN_G16 -to hpiaddr[1] -comment USB_GPIO20 -set_location_assignment PIN_A17 -to hpicsn -comment USB_GPIO21 -set_location_assignment PIN_B17 -to hpiwrn -comment USB_GPIO22 -set_location_assignment PIN_C17 -to hpirdn -comment USB_GPIO23 -set_location_assignment PIN_F12 -to hpidata[0] -comment USB_GPIO0 -set_location_assignment PIN_A13 -to hpidata[1] -comment USB_GPIO1 -set_location_assignment PIN_B13 -to hpidata[2] -comment USB_GPIO2 -set_location_assignment PIN_C13 -to hpidata[3] -comment USB_GPIO3 -set_location_assignment PIN_F13 -to hpidata[4] -comment USB_GPIO4 -set_location_assignment PIN_A14 -to hpidata[5] -comment USB_GPIO5 -set_location_assignment PIN_B14 -to hpidata[6] -comment USB_GPIO6 -set_location_assignment PIN_C14 -to hpidata[7] -comment USB_GPIO7 -set_location_assignment PIN_D14 -to hpidata[8] -comment USB_GPIO8 -set_location_assignment PIN_E14 -to hpidata[9] -comment USB_GPIO9 -set_location_assignment PIN_F14 -to hpidata[10] -comment USB_GPIO10 -set_location_assignment PIN_A15 -to hpidata[11] -comment USB_GPIO11 -set_location_assignment PIN_B15 -to hpidata[12] -comment USB_GPIO12 -set_location_assignment PIN_D15 -to hpidata[13] -comment USB_GPIO13 -set_location_assignment PIN_E15 -to hpidata[14] -comment USB_GPIO14 -set_location_assignment PIN_F15 -to hpidata[15] -comment USB_GPIO15 -set_location_assignment PIN_A18 -to hpiint -comment USB_GPIO24 -set_location_assignment PIN_W21 -to sample_clock -comment SANTAC_B_IO34 -set_location_assignment PIN_W22 -to dbg_equal -comment SANTAC_B_IO35 - -# Timing Assignments -# ================== -set_global_assignment -name IGNORE_CLOCK_SETTINGS ON -set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -set_global_assignment -name FMAX_REQUIREMENT "25.0 MHz" - -# Analysis & Synthesis Assignments -# ================================ -set_global_assignment -name SAVE_DISK_SPACE OFF -set_global_assignment -name EDA_DESIGN_ENTRY_SYNTHESIS_TOOL "Synplify Pro" -set_global_assignment -name FAMILY "Cyclone II" -set_global_assignment -name CYCLONE_OPTIMIZATION_TECHNIQUE SPEED -set_global_assignment -name STRATIX_OPTIMIZATION_TECHNIQUE SPEED -set_global_assignment -name APEX20K_OPTIMIZATION_TECHNIQUE SPEED -set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF -set_global_assignment -name AUTO_ENABLE_SMART_COMPILE on -set_global_assignment -name VERILOG_SHOW_LMF_MAPPING_MESSAGES OFF -set_global_assignment -name REMOVE_DUPLICATE_REGISTERS OFF -set_global_assignment -name REMOVE_DUPLICATE_LOGIC OFF - -# Fitter Assignments -# ================== -set_global_assignment -name DEVICE EP2C35F484C8 -set_global_assignment -name CYCLONEII_CONFIGURATION_SCHEME "PASSIVE SERIAL" -set_global_assignment -name CYCLONE_CONFIGURATION_SCHEME "PASSIVE SERIAL" -set_global_assignment -name ENABLE_DEVICE_WIDE_RESET OFF -set_global_assignment -name RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION "AS INPUT TRI-STATED" -set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED" -set_global_assignment -name OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING OFF -#set_global_assignment -name WEAK_PULL_UP_RESISTOR ON -set_global_assignment -name ROUTER_REGISTER_DUPLICATION ON -set_global_assignment -name IO_PLACEMENT_OPTIMIZATION OFF -set_global_assignment -name INC_PLC_MODE OFF -set_global_assignment -name ROUTING_BACK_ANNOTATION_MODE OFF -set_global_assignment -name STRATIX_DEVICE_IO_STANDARD LVTTL - -# Timing Analysis Assignments -# =========================== -set_global_assignment -name MAX_SCC_SIZE 50 - -# EDA Netlist Writer Assignments -# ============================== -set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim (VHDL output from Quartus II)" -set_global_assignment -name HARDCOPY_EXTERNAL_CLOCK_JITTER "0.0 NS" - -# Assembler Assignments -# ===================== -set_global_assignment -name RESERVE_ALL_UNUSED_PINS_NO_OUTPUT_GND "AS INPUT TRI-STATED" -set_global_assignment -name COMPRESSION_MODE ON -set_global_assignment -name APEX20K_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name EXCALIBUR_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name MERCURY_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name FLEX6K_CONFIGURATION_DEVICE EPC1 -set_global_assignment -name FLEX10K_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name CYCLONE_CONFIGURATION_DEVICE EPC2 -set_global_assignment -name STRATIX_CONFIGURATION_DEVICE EPC8 -set_global_assignment -name EPROM_USE_CHECKSUM_AS_USERCODE ON -set_global_assignment -name AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE OFF -set_global_assignment -name DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE ON -set_global_assignment -name GENERATE_TTF_FILE ON - -# Simulator Assignments -# ===================== -set_global_assignment -name START_TIME 0NS -set_global_assignment -name POWER_ESTIMATION_START_TIME "0 NS" -set_global_assignment -name GLITCH_INTERVAL 1NS - -# Design Assistant Assignments -# ============================ -set_global_assignment -name DRC_REPORT_TOP_FANOUT OFF -set_global_assignment -name DRC_REPORT_FANOUT_EXCEEDING OFF -set_global_assignment -name ASSG_CAT OFF -set_global_assignment -name ASSG_RULE_MISSING_FMAX OFF -set_global_assignment -name ASSG_RULE_MISSING_TIMING OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_ASYN_RAM OFF -set_global_assignment -name CLK_CAT OFF -set_global_assignment -name CLK_RULE_COMB_CLOCK OFF -set_global_assignment -name CLK_RULE_INV_CLOCK OFF -set_global_assignment -name CLK_RULE_GATING_SCHEME OFF -set_global_assignment -name CLK_RULE_INPINS_CLKNET OFF -set_global_assignment -name CLK_RULE_CLKNET_CLKSPINES OFF -set_global_assignment -name CLK_RULE_MIX_EDGES OFF -set_global_assignment -name RESET_CAT OFF -set_global_assignment -name RESET_RULE_INPINS_RESETNET OFF -set_global_assignment -name RESET_RULE_UNSYNCH_EXRESET OFF -set_global_assignment -name RESET_RULE_IMSYNCH_EXRESET OFF -set_global_assignment -name RESET_RULE_COMB_ASYNCH_RESET OFF -set_global_assignment -name RESET_RULE_UNSYNCH_ASYNCH_DOMAIN OFF -set_global_assignment -name RESET_RULE_IMSYNCH_ASYNCH_DOMAIN OFF -set_global_assignment -name TIMING_CAT OFF -set_global_assignment -name TIMING_RULE_SHIFT_REG OFF -set_global_assignment -name TIMING_RULE_COIN_CLKEDGE OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE OFF -set_global_assignment -name NONSYNCHSTRUCT_CAT OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_COMBLOOP OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_REG_LOOP OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_DELAY_CHAIN OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_RIPPLE_CLK OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_SRLATCH OFF -set_global_assignment -name NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED OFF -set_global_assignment -name ACLK_CAT OFF -set_global_assignment -name ACLK_RULE_NO_SZER_ACLK_DOMAIN OFF -set_global_assignment -name ACLK_RULE_SZER_BTW_ACLK_DOMAIN OFF -set_global_assignment -name ACLK_RULE_IMSZER_ADOMAIN OFF -set_global_assignment -name HCPY_VREF_PINS OFF - -# Programmer Assignments -# ====================== -set_global_assignment -name GENERATE_JAM_FILE ON -set_global_assignment -name GENERATE_JBC_FILE ON - -# SignalTap II Assignments -# ======================== -set_global_assignment -name ENABLE_SIGNALTAP off - -# LogicLock Region Assignments -# ============================ -set_global_assignment -name LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT off - -# --------------------------------------------- -# start EDA_TOOL_SETTINGS(eda_design_synthesis) - - # Analysis & Synthesis Assignments - # ================================ - set_global_assignment -name EDA_INPUT_DATA_FORMAT "VERILOG HDL" -section_id eda_design_synthesis - set_global_assignment -name EDA_LMF_FILE synplcty.lmf -section_id eda_design_synthesis - - # EDA Netlist Writer Assignments - # ============================== - set_global_assignment -name EDA_OUTPUT_DATA_FORMAT EDIF -section_id eda_design_synthesis - -# end EDA_TOOL_SETTINGS(eda_design_synthesis) -# ------------------------------------------- - -# --------------------------------------- -# start EDA_TOOL_SETTINGS(eda_simulation) - - # EDA Netlist Writer Assignments - # ============================== - set_global_assignment -name EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION ON -section_id eda_simulation - set_global_assignment -name EDA_OUTPUT_DATA_FORMAT VHDL -section_id eda_simulation - -# end EDA_TOOL_SETTINGS(eda_simulation) -# ------------------------------------- - -# -------------------------- -# start ENTITY(leon3mini) - - set_instance_assignment -name PRESERVE_HIERARCHICAL_BOUNDARY FIRM -to "ahbrom:\\bpromgen:brom" - # Timing Assignments - # ================== - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[0\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[1\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[2\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[3\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[4\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[5\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[6\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[7\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[8\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[9\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[10\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[11\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[12\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[13\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[14\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[15\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[16\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[17\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[18\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[19\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[20\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[21\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[22\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[23\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[24\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[25\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[26\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[27\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[28\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[29\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[30\] - set_instance_assignment -name TSU_REQUIREMENT 10ns -from * -to data\[31\] - - # Fitter Assignments - # ================== - set_instance_assignment -name GLOBAL_SIGNAL ON -to etx_clk - set_instance_assignment -name GLOBAL_SIGNAL ON -to erx_clk - set_instance_assignment -name GLOBAL_SIGNAL ON -to clk - set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to clk - set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to etx_clk - set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to erx_clk - set_instance_assignment -name WEAK_PULL_UP_RESISTOR OFF -to dsuen -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[0] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[1] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[2] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[3] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[4] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[5] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[6] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[7] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[8] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[9] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[10] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[11] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[12] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[13] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[14] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[15] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[16] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[17] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[18] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[19] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[20] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[21] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[22] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[23] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[24] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[25] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[26] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to address[27] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[0] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[1] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[2] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[3] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[4] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[5] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[6] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[7] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[8] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[9] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[10] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[11] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[12] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[13] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[14] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[15] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[16] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[17] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[18] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[19] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[20] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[21] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[22] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[23] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[24] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[25] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[26] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[27] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[28] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[29] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[30] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to data[31] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to erx_clk - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to erxd[0] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to erxd[1] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to erxd[2] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to erxd[3] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to etx_clk - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to etxd[0] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to etxd[1] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to etxd[2] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to etxd[3] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to rben[0] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to rben[1] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to rben[2] -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to rben[3] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to sdba[0] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to sdba[1] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to sdcasn - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to sdclk - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to sdcsn[0] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to sdcsn[1] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to sddqm[0] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to sddqm[1] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to sddqm[2] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to sddqm[3] - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to sdrasn - set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to sdwen -# set_instance_assignment -name CURRENT_STRENGTH_NEW 8MA -to writen -# end ENTITY(leon3mini) -# --------------------- - -set_global_assignment -name SMART_RECOMPILE ON -set_global_assignment -name NUM_PARALLEL_PROCESSORS 2 -set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0 -set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85 -set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW" -set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)" -set_global_assignment -name OPTIMIZE_HOLD_TIMING "ALL PATHS" diff --git a/boards/gr-cpci-ax/Makefile.inc b/boards/gr-cpci-ax/Makefile.inc deleted file mode 100644 index 1200f4e1..00000000 --- a/boards/gr-cpci-ax/Makefile.inc +++ /dev/null @@ -1,61 +0,0 @@ -ifeq ("$(CONFIG_FPGA_RTAX2000S)","y") - PART=RTAX2000S - - ifeq ("$(CONFIG_FPGA_CQFP352)","y") - PACKAGE=CQFP352 - DESIGNER_PACKAGE=CQFP - DESIGNER_PINS=352 - else - PACKAGE=CCGA624 - DESIGNER_PACKAGE=CCGA - DESIGNER_PINS=624 - endif -else - PART=AX2000 - - ifeq ("$(CONFIG_FPGA_CQFP352)","y") - PACKAGE=CQFP352 - DESIGNER_PACKAGE=CQFP - DESIGNER_PINS=352 - else - PACKAGE=FBGA896 - DESIGNER_PACKAGE=FBGA - DESIGNER_PINS=896 - endif -endif - -ifeq ("$(CONFIG_FPGA_SPEED_SPEED_2)","y") - SPEED=-2 -else - ifeq ("$(CONFIG_FPGA_SPEED_1)","y") - SPEED=-1 - else - SPEED=Std - endif -endif - -ifeq ("$(CONFIG_FPGA_OPR_MIL)","y") - OPCON=MILWC - DESIGNER_VOLTAGE=MIL - DESIGNER_TEMP=MIL -else - ifeq ("$(CONFIG_FPGA_OPR_IND)","y") - OPCON=INDWC - DESIGNER_VOLTAGE=IND - DESIGNER_TEMP=IND - else - OPCON=COMWC - DESIGNER_VOLTAGE=COM - DESIGNER_TEMP=COM - endif -endif - -TECHNOLOGY=Axcelerator -SYNFREQ=40 - -MANUFACTURER=Actel -MGCPART=$(PART) -MGCTECHNOLOGY=Axcelerator -MGCPACKAGE= {$(DESIGNER_PINS) $(DESIGNER_PACKAGE)} -LIBERO_DIE=70400 -LIBERO_PACKAGE=fg$(DESIGNER_PINS) \ No newline at end of file diff --git a/boards/gr-cpci-ax/ReadMe.txt b/boards/gr-cpci-ax/ReadMe.txt deleted file mode 100644 index 2e8ceeb8..00000000 --- a/boards/gr-cpci-ax/ReadMe.txt +++ /dev/null @@ -1,54 +0,0 @@ -This directory contains pinout files and constraint files to be used with the -GR-CPCI-AX board and associated accessory and mezzanine boards. - -The GR-CPCI-AX board is designed for the CCGA 624 package, but also -supports the FBGA 896 package by means of an adapter. Pinouts are provided -for both devices. - -In addition, pinout is provided for the CQFP 353 package. - -The package choice can be done in the board specific make file Makefile.inc, -or locally in the design. Examples are provided the Makefile.inc and in -the Makefile of the reference designs. - -Note that the pinout constraint files (*.pdc) might require some lines to -be commented out (#) if a pin is not used in a new design. - - -GR-CPCI-AX board with GR-AX-SPW accessory or GR-RTAX-MEZZ mezzanine board -------------------------------------------------------------------------- - -The GR-AX-SPW accessory features 4x SpaceWire and 2x UART. - -The GR-RTAX-MEZZ mezzanine board 3x SpaceWire, 1x CAN and 1x 1553 (redundant). - -A common pinout constraint file is used for all three board combinations. - -The timing constraint file might need modification, depending on the design. - -Pinout and timing constraint files for CCGA 624 package: - - designer_624_CCGA.pdc - designer_624_CCGA.sdc - -Pinout and timing constraint files for FBGA 896 package: - - designer_896_FBGA.pdc - designer_896_FBGA.sdc - -Pinout and timing constraint files for CQFP 352 package: - - designer_352_CQFP.pdc - designer_352_CQFP.sdc - - -GR-CPCI-AX board with GR-CPCI-1553 mezzanine board --------------------------------------------------- - -The GR-CPCI-1553 mezzanine board features 1x CAN and 1x 1553 (redundant). - -This board pinout is not compatible with LEON3-RTAX architecture. - -Pinout constraint file for FBGA 896 package: - - designer_896_FBGA_1553.pdc diff --git a/boards/gr-cpci-ax/ax_oblique640.jpg b/boards/gr-cpci-ax/ax_oblique640.jpg deleted file mode 100644 index 59797299..00000000 Binary files a/boards/gr-cpci-ax/ax_oblique640.jpg and /dev/null differ diff --git a/boards/gr-cpci-ax/check-624-all.txt b/boards/gr-cpci-ax/check-624-all.txt deleted file mode 100644 index 39a0916f..00000000 --- a/boards/gr-cpci-ax/check-624-all.txt +++ /dev/null @@ -1,461 +0,0 @@ -echo ; echo A10 ; cat designer_624_CCGA.pdc | grep ' A10 ' -echo ; echo A11 ; cat designer_624_CCGA.pdc | grep ' A11 ' -echo ; echo A12 ; cat designer_624_CCGA.pdc | grep ' A12 ' -echo ; echo A13 ; cat designer_624_CCGA.pdc | grep ' A13 ' -echo ; echo A14 ; cat designer_624_CCGA.pdc | grep ' A14 ' -echo ; echo A15 ; cat designer_624_CCGA.pdc | grep ' A15 ' -echo ; echo A16 ; cat designer_624_CCGA.pdc | grep ' A16 ' -echo ; echo A17 ; cat designer_624_CCGA.pdc | grep ' A17 ' -echo ; echo A19 ; cat designer_624_CCGA.pdc | grep ' A19 ' -echo ; echo A20 ; cat designer_624_CCGA.pdc | grep ' A20 ' -echo ; echo A21 ; cat designer_624_CCGA.pdc | grep ' A21 ' -echo ; echo A22 ; cat designer_624_CCGA.pdc | grep ' A22 ' -echo ; echo A4 ; cat designer_624_CCGA.pdc | grep ' A4 ' -echo ; echo A5 ; cat designer_624_CCGA.pdc | grep ' A5 ' -echo ; echo A6 ; cat designer_624_CCGA.pdc | grep ' A6 ' -echo ; echo A7 ; cat designer_624_CCGA.pdc | grep ' A7 ' -echo ; echo A9 ; cat designer_624_CCGA.pdc | grep ' A9 ' -echo ; echo AA1 ; cat designer_624_CCGA.pdc | grep ' AA1 ' -echo ; echo AA10 ; cat designer_624_CCGA.pdc | grep ' AA10' -echo ; echo AA11 ; cat designer_624_CCGA.pdc | grep ' AA11' -echo ; echo AA13 ; cat designer_624_CCGA.pdc | grep ' AA13' -echo ; echo AA15 ; cat designer_624_CCGA.pdc | grep ' AA15' -echo ; echo AA16 ; cat designer_624_CCGA.pdc | grep ' AA16' -echo ; echo AA17 ; cat designer_624_CCGA.pdc | grep ' AA17' -echo ; echo AA18 ; cat designer_624_CCGA.pdc | grep ' AA18' -echo ; echo AA19 ; cat designer_624_CCGA.pdc | grep ' AA19' -echo ; echo AA2 ; cat designer_624_CCGA.pdc | grep ' AA2 ' -echo ; echo AA20 ; cat designer_624_CCGA.pdc | grep ' AA20' -echo ; echo AA23 ; cat designer_624_CCGA.pdc | grep ' AA23' -echo ; echo AA24 ; cat designer_624_CCGA.pdc | grep ' AA24' -echo ; echo AA25 ; cat designer_624_CCGA.pdc | grep ' AA25' -echo ; echo AA3 ; cat designer_624_CCGA.pdc | grep ' AA3 ' -echo ; echo AA6 ; cat designer_624_CCGA.pdc | grep ' AA6 ' -echo ; echo AA7 ; cat designer_624_CCGA.pdc | grep ' AA7 ' -echo ; echo AA8 ; cat designer_624_CCGA.pdc | grep ' AA8 ' -echo ; echo AA9 ; cat designer_624_CCGA.pdc | grep ' AA9 ' -echo ; echo AB1 ; cat designer_624_CCGA.pdc | grep ' AB1 ' -echo ; echo AB10 ; cat designer_624_CCGA.pdc | grep ' AB10' -echo ; echo AB11 ; cat designer_624_CCGA.pdc | grep ' AB11' -echo ; echo AB12 ; cat designer_624_CCGA.pdc | grep ' AB12' -echo ; echo AB13 ; cat designer_624_CCGA.pdc | grep ' AB13' -echo ; echo AB14 ; cat designer_624_CCGA.pdc | grep ' AB14' -echo ; echo AB15 ; cat designer_624_CCGA.pdc | grep ' AB15' -echo ; echo AB16 ; cat designer_624_CCGA.pdc | grep ' AB16' -echo ; echo AB17 ; cat designer_624_CCGA.pdc | grep ' AB17' -echo ; echo AB18 ; cat designer_624_CCGA.pdc | grep ' AB18' -echo ; echo AB19 ; cat designer_624_CCGA.pdc | grep ' AB19' -echo ; echo AB2 ; cat designer_624_CCGA.pdc | grep ' AB2 ' -echo ; echo AB20 ; cat designer_624_CCGA.pdc | grep ' AB20' -echo ; echo AB24 ; cat designer_624_CCGA.pdc | grep ' AB24' -echo ; echo AB25 ; cat designer_624_CCGA.pdc | grep ' AB25' -echo ; echo AB6 ; cat designer_624_CCGA.pdc | grep ' AB6 ' -echo ; echo AB7 ; cat designer_624_CCGA.pdc | grep ' AB7 ' -echo ; echo AB8 ; cat designer_624_CCGA.pdc | grep ' AB8 ' -echo ; echo AB9 ; cat designer_624_CCGA.pdc | grep ' AB9 ' -echo ; echo AC11 ; cat designer_624_CCGA.pdc | grep ' AC11' -echo ; echo AC12 ; cat designer_624_CCGA.pdc | grep ' AC12' -echo ; echo AC13 ; cat designer_624_CCGA.pdc | grep ' AC13' -echo ; echo AC14 ; cat designer_624_CCGA.pdc | grep ' AC14' -echo ; echo AC15 ; cat designer_624_CCGA.pdc | grep ' AC15' -echo ; echo AC17 ; cat designer_624_CCGA.pdc | grep ' AC17' -echo ; echo AC18 ; cat designer_624_CCGA.pdc | grep ' AC18' -echo ; echo AC19 ; cat designer_624_CCGA.pdc | grep ' AC19' -echo ; echo AC20 ; cat designer_624_CCGA.pdc | grep ' AC20' -echo ; echo AC21 ; cat designer_624_CCGA.pdc | grep ' AC21' -echo ; echo AC5 ; cat designer_624_CCGA.pdc | grep ' AC5 ' -echo ; echo AC6 ; cat designer_624_CCGA.pdc | grep ' AC6 ' -echo ; echo AC7 ; cat designer_624_CCGA.pdc | grep ' AC7 ' -echo ; echo AC8 ; cat designer_624_CCGA.pdc | grep ' AC8 ' -echo ; echo AC9 ; cat designer_624_CCGA.pdc | grep ' AC9 ' -echo ; echo AD10 ; cat designer_624_CCGA.pdc | grep ' AD10' -echo ; echo AD11 ; cat designer_624_CCGA.pdc | grep ' AD11' -echo ; echo AD12 ; cat designer_624_CCGA.pdc | grep ' AD12' -echo ; echo AD13 ; cat designer_624_CCGA.pdc | grep ' AD13' -echo ; echo AD14 ; cat designer_624_CCGA.pdc | grep ' AD14' -echo ; echo AD15 ; cat designer_624_CCGA.pdc | grep ' AD15' -echo ; echo AD16 ; cat designer_624_CCGA.pdc | grep ' AD16' -echo ; echo AD17 ; cat designer_624_CCGA.pdc | grep ' AD17' -echo ; echo AD18 ; cat designer_624_CCGA.pdc | grep ' AD18' -echo ; echo AD19 ; cat designer_624_CCGA.pdc | grep ' AD19' -echo ; echo AD20 ; cat designer_624_CCGA.pdc | grep ' AD20' -echo ; echo AD21 ; cat designer_624_CCGA.pdc | grep ' AD21' -echo ; echo AD22 ; cat designer_624_CCGA.pdc | grep ' AD22' -echo ; echo AD4 ; cat designer_624_CCGA.pdc | grep ' AD4 ' -echo ; echo AD5 ; cat designer_624_CCGA.pdc | grep ' AD5 ' -echo ; echo AD6 ; cat designer_624_CCGA.pdc | grep ' AD6 ' -echo ; echo AD7 ; cat designer_624_CCGA.pdc | grep ' AD7 ' -echo ; echo AD8 ; cat designer_624_CCGA.pdc | grep ' AD8 ' -echo ; echo AD9 ; cat designer_624_CCGA.pdc | grep ' AD9 ' -echo ; echo AE10 ; cat designer_624_CCGA.pdc | grep ' AE10' -echo ; echo AE11 ; cat designer_624_CCGA.pdc | grep ' AE11' -echo ; echo AE12 ; cat designer_624_CCGA.pdc | grep ' AE12' -echo ; echo AE13 ; cat designer_624_CCGA.pdc | grep ' AE13' -echo ; echo AE14 ; cat designer_624_CCGA.pdc | grep ' AE14' -echo ; echo AE15 ; cat designer_624_CCGA.pdc | grep ' AE15' -echo ; echo AE16 ; cat designer_624_CCGA.pdc | grep ' AE16' -echo ; echo AE17 ; cat designer_624_CCGA.pdc | grep ' AE17' -echo ; echo AE19 ; cat designer_624_CCGA.pdc | grep ' AE19' -echo ; echo AE20 ; cat designer_624_CCGA.pdc | grep ' AE20' -echo ; echo AE21 ; cat designer_624_CCGA.pdc | grep ' AE21' -echo ; echo AE22 ; cat designer_624_CCGA.pdc | grep ' AE22' -echo ; echo AE4 ; cat designer_624_CCGA.pdc | grep ' AE4 ' -echo ; echo AE5 ; cat designer_624_CCGA.pdc | grep ' AE5 ' -echo ; echo AE6 ; cat designer_624_CCGA.pdc | grep ' AE6 ' -echo ; echo AE7 ; cat designer_624_CCGA.pdc | grep ' AE7 ' -echo ; echo AE9 ; cat designer_624_CCGA.pdc | grep ' AE9 ' -echo ; echo B10 ; cat designer_624_CCGA.pdc | grep ' B10 ' -echo ; echo B11 ; cat designer_624_CCGA.pdc | grep ' B11 ' -echo ; echo B12 ; cat designer_624_CCGA.pdc | grep ' B12 ' -echo ; echo B13 ; cat designer_624_CCGA.pdc | grep ' B13 ' -echo ; echo B14 ; cat designer_624_CCGA.pdc | grep ' B14 ' -echo ; echo B15 ; cat designer_624_CCGA.pdc | grep ' B15 ' -echo ; echo B16 ; cat designer_624_CCGA.pdc | grep ' B16 ' -echo ; echo B17 ; cat designer_624_CCGA.pdc | grep ' B17 ' -echo ; echo B18 ; cat designer_624_CCGA.pdc | grep ' B18 ' -echo ; echo B19 ; cat designer_624_CCGA.pdc | grep ' B19 ' -echo ; echo B20 ; cat designer_624_CCGA.pdc | grep ' B20 ' -echo ; echo B21 ; cat designer_624_CCGA.pdc | grep ' B21 ' -echo ; echo B22 ; cat designer_624_CCGA.pdc | grep ' B22 ' -echo ; echo B4 ; cat designer_624_CCGA.pdc | grep ' B4 ' -echo ; echo B5 ; cat designer_624_CCGA.pdc | grep ' B5 ' -echo ; echo B6 ; cat designer_624_CCGA.pdc | grep ' B6 ' -echo ; echo B7 ; cat designer_624_CCGA.pdc | grep ' B7 ' -echo ; echo B8 ; cat designer_624_CCGA.pdc | grep ' B8 ' -echo ; echo B9 ; cat designer_624_CCGA.pdc | grep ' B9 ' -echo ; echo C11 ; cat designer_624_CCGA.pdc | grep ' C11 ' -echo ; echo C12 ; cat designer_624_CCGA.pdc | grep ' C12 ' -echo ; echo C13 ; cat designer_624_CCGA.pdc | grep ' C13 ' -echo ; echo C14 ; cat designer_624_CCGA.pdc | grep ' C14 ' -echo ; echo C15 ; cat designer_624_CCGA.pdc | grep ' C15 ' -echo ; echo C17 ; cat designer_624_CCGA.pdc | grep ' C17 ' -echo ; echo C18 ; cat designer_624_CCGA.pdc | grep ' C18 ' -echo ; echo C19 ; cat designer_624_CCGA.pdc | grep ' C19 ' -echo ; echo C20 ; cat designer_624_CCGA.pdc | grep ' C20 ' -echo ; echo C21 ; cat designer_624_CCGA.pdc | grep ' C21 ' -echo ; echo C7 ; cat designer_624_CCGA.pdc | grep ' C7 ' -echo ; echo C8 ; cat designer_624_CCGA.pdc | grep ' C8 ' -echo ; echo C9 ; cat designer_624_CCGA.pdc | grep ' C9 ' -echo ; echo D1 ; cat designer_624_CCGA.pdc | grep ' D1 ' -echo ; echo D10 ; cat designer_624_CCGA.pdc | grep ' D10 ' -echo ; echo D11 ; cat designer_624_CCGA.pdc | grep ' D11 ' -echo ; echo D12 ; cat designer_624_CCGA.pdc | grep ' D12 ' -echo ; echo D13 ; cat designer_624_CCGA.pdc | grep ' D13 ' -echo ; echo D14 ; cat designer_624_CCGA.pdc | grep ' D14 ' -echo ; echo D15 ; cat designer_624_CCGA.pdc | grep ' D15 ' -echo ; echo D16 ; cat designer_624_CCGA.pdc | grep ' D16 ' -echo ; echo D17 ; cat designer_624_CCGA.pdc | grep ' D17 ' -echo ; echo D18 ; cat designer_624_CCGA.pdc | grep ' D18 ' -echo ; echo D19 ; cat designer_624_CCGA.pdc | grep ' D19 ' -echo ; echo D2 ; cat designer_624_CCGA.pdc | grep ' D2 ' -echo ; echo D20 ; cat designer_624_CCGA.pdc | grep ' D20 ' -echo ; echo D24 ; cat designer_624_CCGA.pdc | grep ' D24 ' -echo ; echo D25 ; cat designer_624_CCGA.pdc | grep ' D25 ' -echo ; echo D7 ; cat designer_624_CCGA.pdc | grep ' D7 ' -echo ; echo D8 ; cat designer_624_CCGA.pdc | grep ' D8 ' -echo ; echo D9 ; cat designer_624_CCGA.pdc | grep ' D9 ' -echo ; echo E1 ; cat designer_624_CCGA.pdc | grep ' E1 ' -echo ; echo E10 ; cat designer_624_CCGA.pdc | grep ' E10 ' -echo ; echo E11 ; cat designer_624_CCGA.pdc | grep ' E11 ' -echo ; echo E13 ; cat designer_624_CCGA.pdc | grep ' E13 ' -echo ; echo E15 ; cat designer_624_CCGA.pdc | grep ' E15 ' -echo ; echo E16 ; cat designer_624_CCGA.pdc | grep ' E16 ' -echo ; echo E17 ; cat designer_624_CCGA.pdc | grep ' E17 ' -echo ; echo E18 ; cat designer_624_CCGA.pdc | grep ' E18 ' -echo ; echo E19 ; cat designer_624_CCGA.pdc | grep ' E19 ' -echo ; echo E2 ; cat designer_624_CCGA.pdc | grep ' E2 ' -echo ; echo E20 ; cat designer_624_CCGA.pdc | grep ' E20 ' -echo ; echo E23 ; cat designer_624_CCGA.pdc | grep ' E23 ' -echo ; echo E24 ; cat designer_624_CCGA.pdc | grep ' E24 ' -echo ; echo E25 ; cat designer_624_CCGA.pdc | grep ' E25 ' -echo ; echo E3 ; cat designer_624_CCGA.pdc | grep ' E3 ' -echo ; echo E7 ; cat designer_624_CCGA.pdc | grep ' E7 ' -echo ; echo E9 ; cat designer_624_CCGA.pdc | grep ' E9 ' -echo ; echo F1 ; cat designer_624_CCGA.pdc | grep ' F1 ' -echo ; echo F10 ; cat designer_624_CCGA.pdc | grep ' F10 ' -echo ; echo F11 ; cat designer_624_CCGA.pdc | grep ' F11 ' -echo ; echo F13 ; cat designer_624_CCGA.pdc | grep ' F13 ' -echo ; echo F15 ; cat designer_624_CCGA.pdc | grep ' F15 ' -echo ; echo F16 ; cat designer_624_CCGA.pdc | grep ' F16 ' -echo ; echo F17 ; cat designer_624_CCGA.pdc | grep ' F17 ' -echo ; echo F18 ; cat designer_624_CCGA.pdc | grep ' F18 ' -echo ; echo F19 ; cat designer_624_CCGA.pdc | grep ' F19 ' -echo ; echo F2 ; cat designer_624_CCGA.pdc | grep ' F2 ' -echo ; echo F20 ; cat designer_624_CCGA.pdc | grep ' F20 ' -echo ; echo F21 ; cat designer_624_CCGA.pdc | grep ' F21 ' -echo ; echo F22 ; cat designer_624_CCGA.pdc | grep ' F22 ' -echo ; echo F23 ; cat designer_624_CCGA.pdc | grep ' F23 ' -echo ; echo F24 ; cat designer_624_CCGA.pdc | grep ' F24 ' -echo ; echo F25 ; cat designer_624_CCGA.pdc | grep ' F25 ' -echo ; echo F3 ; cat designer_624_CCGA.pdc | grep ' F3 ' -echo ; echo F4 ; cat designer_624_CCGA.pdc | grep ' F4 ' -echo ; echo F7 ; cat designer_624_CCGA.pdc | grep ' F7 ' -echo ; echo F8 ; cat designer_624_CCGA.pdc | grep ' F8 ' -echo ; echo F9 ; cat designer_624_CCGA.pdc | grep ' F9 ' -echo ; echo G1 ; cat designer_624_CCGA.pdc | grep ' G1 ' -echo ; echo G10 ; cat designer_624_CCGA.pdc | grep ' G10 ' -echo ; echo G11 ; cat designer_624_CCGA.pdc | grep ' G11 ' -echo ; echo G12 ; cat designer_624_CCGA.pdc | grep ' G12 ' -echo ; echo G13 ; cat designer_624_CCGA.pdc | grep ' G13 ' -echo ; echo G14 ; cat designer_624_CCGA.pdc | grep ' G14 ' -echo ; echo G15 ; cat designer_624_CCGA.pdc | grep ' G15 ' -echo ; echo G16 ; cat designer_624_CCGA.pdc | grep ' G16 ' -echo ; echo G17 ; cat designer_624_CCGA.pdc | grep ' G17 ' -echo ; echo G18 ; cat designer_624_CCGA.pdc | grep ' G18 ' -echo ; echo G19 ; cat designer_624_CCGA.pdc | grep ' G19 ' -echo ; echo G2 ; cat designer_624_CCGA.pdc | grep ' G2 ' -echo ; echo G20 ; cat designer_624_CCGA.pdc | grep ' G20 ' -echo ; echo G21 ; cat designer_624_CCGA.pdc | grep ' G21 ' -echo ; echo G22 ; cat designer_624_CCGA.pdc | grep ' G22 ' -echo ; echo G23 ; cat designer_624_CCGA.pdc | grep ' G23 ' -echo ; echo G24 ; cat designer_624_CCGA.pdc | grep ' G24 ' -echo ; echo G25 ; cat designer_624_CCGA.pdc | grep ' G25 ' -echo ; echo G3 ; cat designer_624_CCGA.pdc | grep ' G3 ' -echo ; echo G4 ; cat designer_624_CCGA.pdc | grep ' G4 ' -echo ; echo G5 ; cat designer_624_CCGA.pdc | grep ' G5 ' -echo ; echo G6 ; cat designer_624_CCGA.pdc | grep ' G6 ' -echo ; echo G7 ; cat designer_624_CCGA.pdc | grep ' G7 ' -echo ; echo G8 ; cat designer_624_CCGA.pdc | grep ' G8 ' -echo ; echo G9 ; cat designer_624_CCGA.pdc | grep ' G9 ' -echo ; echo H10 ; cat designer_624_CCGA.pdc | grep ' H10 ' -echo ; echo H11 ; cat designer_624_CCGA.pdc | grep ' H11 ' -echo ; echo H13 ; cat designer_624_CCGA.pdc | grep ' H13 ' -echo ; echo H15 ; cat designer_624_CCGA.pdc | grep ' H15 ' -echo ; echo H16 ; cat designer_624_CCGA.pdc | grep ' H16 ' -echo ; echo H17 ; cat designer_624_CCGA.pdc | grep ' H17 ' -echo ; echo H18 ; cat designer_624_CCGA.pdc | grep ' H18 ' -echo ; echo H19 ; cat designer_624_CCGA.pdc | grep ' H19 ' -echo ; echo H2 ; cat designer_624_CCGA.pdc | grep ' H2 ' -echo ; echo H20 ; cat designer_624_CCGA.pdc | grep ' H20 ' -echo ; echo H21 ; cat designer_624_CCGA.pdc | grep ' H21 ' -echo ; echo H22 ; cat designer_624_CCGA.pdc | grep ' H22 ' -echo ; echo H23 ; cat designer_624_CCGA.pdc | grep ' H23 ' -echo ; echo H24 ; cat designer_624_CCGA.pdc | grep ' H24 ' -echo ; echo H3 ; cat designer_624_CCGA.pdc | grep ' H3 ' -echo ; echo H4 ; cat designer_624_CCGA.pdc | grep ' H4 ' -echo ; echo H5 ; cat designer_624_CCGA.pdc | grep ' H5 ' -echo ; echo H6 ; cat designer_624_CCGA.pdc | grep ' H6 ' -echo ; echo H7 ; cat designer_624_CCGA.pdc | grep ' H7 ' -echo ; echo H8 ; cat designer_624_CCGA.pdc | grep ' H8 ' -echo ; echo H9 ; cat designer_624_CCGA.pdc | grep ' H9 ' -echo ; echo J1 ; cat designer_624_CCGA.pdc | grep ' J1 ' -echo ; echo J13 ; cat designer_624_CCGA.pdc | grep ' J13 ' -echo ; echo J18 ; cat designer_624_CCGA.pdc | grep ' J18 ' -echo ; echo J19 ; cat designer_624_CCGA.pdc | grep ' J19 ' -echo ; echo J2 ; cat designer_624_CCGA.pdc | grep ' J2 ' -echo ; echo J20 ; cat designer_624_CCGA.pdc | grep ' J20 ' -echo ; echo J21 ; cat designer_624_CCGA.pdc | grep ' J21 ' -echo ; echo J22 ; cat designer_624_CCGA.pdc | grep ' J22 ' -echo ; echo J23 ; cat designer_624_CCGA.pdc | grep ' J23 ' -echo ; echo J24 ; cat designer_624_CCGA.pdc | grep ' J24 ' -echo ; echo J25 ; cat designer_624_CCGA.pdc | grep ' J25 ' -echo ; echo J3 ; cat designer_624_CCGA.pdc | grep ' J3 ' -echo ; echo J4 ; cat designer_624_CCGA.pdc | grep ' J4 ' -echo ; echo J5 ; cat designer_624_CCGA.pdc | grep ' J5 ' -echo ; echo J6 ; cat designer_624_CCGA.pdc | grep ' J6 ' -echo ; echo J7 ; cat designer_624_CCGA.pdc | grep ' J7 ' -echo ; echo J8 ; cat designer_624_CCGA.pdc | grep ' J8 ' -echo ; echo K1 ; cat designer_624_CCGA.pdc | grep ' K1 ' -echo ; echo K13 ; cat designer_624_CCGA.pdc | grep ' K13 ' -echo ; echo K18 ; cat designer_624_CCGA.pdc | grep ' K18 ' -echo ; echo K19 ; cat designer_624_CCGA.pdc | grep ' K19 ' -echo ; echo K2 ; cat designer_624_CCGA.pdc | grep ' K2 ' -echo ; echo K20 ; cat designer_624_CCGA.pdc | grep ' K20 ' -echo ; echo K21 ; cat designer_624_CCGA.pdc | grep ' K21 ' -echo ; echo K22 ; cat designer_624_CCGA.pdc | grep ' K22 ' -echo ; echo K24 ; cat designer_624_CCGA.pdc | grep ' K24 ' -echo ; echo K25 ; cat designer_624_CCGA.pdc | grep ' K25 ' -echo ; echo K4 ; cat designer_624_CCGA.pdc | grep ' K4 ' -echo ; echo K5 ; cat designer_624_CCGA.pdc | grep ' K5 ' -echo ; echo K6 ; cat designer_624_CCGA.pdc | grep ' K6 ' -echo ; echo K7 ; cat designer_624_CCGA.pdc | grep ' K7 ' -echo ; echo K8 ; cat designer_624_CCGA.pdc | grep ' K8 ' -echo ; echo L1 ; cat designer_624_CCGA.pdc | grep ' L1 ' -echo ; echo L18 ; cat designer_624_CCGA.pdc | grep ' L18 ' -echo ; echo L19 ; cat designer_624_CCGA.pdc | grep ' L19 ' -echo ; echo L2 ; cat designer_624_CCGA.pdc | grep ' L2 ' -echo ; echo L20 ; cat designer_624_CCGA.pdc | grep ' L20 ' -echo ; echo L21 ; cat designer_624_CCGA.pdc | grep ' L21 ' -echo ; echo L22 ; cat designer_624_CCGA.pdc | grep ' L22 ' -echo ; echo L23 ; cat designer_624_CCGA.pdc | grep ' L23 ' -echo ; echo L24 ; cat designer_624_CCGA.pdc | grep ' L24 ' -echo ; echo L25 ; cat designer_624_CCGA.pdc | grep ' L25 ' -echo ; echo L3 ; cat designer_624_CCGA.pdc | grep ' L3 ' -echo ; echo L4 ; cat designer_624_CCGA.pdc | grep ' L4 ' -echo ; echo L5 ; cat designer_624_CCGA.pdc | grep ' L5 ' -echo ; echo L6 ; cat designer_624_CCGA.pdc | grep ' L6 ' -echo ; echo L7 ; cat designer_624_CCGA.pdc | grep ' L7 ' -echo ; echo L8 ; cat designer_624_CCGA.pdc | grep ' L8 ' -echo ; echo M1 ; cat designer_624_CCGA.pdc | grep ' M1 ' -echo ; echo M17 ; cat designer_624_CCGA.pdc | grep ' M17 ' -echo ; echo M18 ; cat designer_624_CCGA.pdc | grep ' M18 ' -echo ; echo M19 ; cat designer_624_CCGA.pdc | grep ' M19 ' -echo ; echo M2 ; cat designer_624_CCGA.pdc | grep ' M2 ' -echo ; echo M20 ; cat designer_624_CCGA.pdc | grep ' M20 ' -echo ; echo M21 ; cat designer_624_CCGA.pdc | grep ' M21 ' -echo ; echo M22 ; cat designer_624_CCGA.pdc | grep ' M22 ' -echo ; echo M23 ; cat designer_624_CCGA.pdc | grep ' M23 ' -echo ; echo M24 ; cat designer_624_CCGA.pdc | grep ' M24 ' -echo ; echo M25 ; cat designer_624_CCGA.pdc | grep ' M25 ' -echo ; echo M3 ; cat designer_624_CCGA.pdc | grep ' M3 ' -echo ; echo M4 ; cat designer_624_CCGA.pdc | grep ' M4 ' -echo ; echo M5 ; cat designer_624_CCGA.pdc | grep ' M5 ' -echo ; echo M6 ; cat designer_624_CCGA.pdc | grep ' M6 ' -echo ; echo M7 ; cat designer_624_CCGA.pdc | grep ' M7 ' -echo ; echo M8 ; cat designer_624_CCGA.pdc | grep ' M8 ' -echo ; echo M9 ; cat designer_624_CCGA.pdc | grep ' M9 ' -echo ; echo N1 ; cat designer_624_CCGA.pdc | grep ' N1 ' -echo ; echo N10 ; cat designer_624_CCGA.pdc | grep ' N10 ' -echo ; echo N16 ; cat designer_624_CCGA.pdc | grep ' N16 ' -echo ; echo N17 ; cat designer_624_CCGA.pdc | grep ' N17 ' -echo ; echo N18 ; cat designer_624_CCGA.pdc | grep ' N18 ' -echo ; echo N19 ; cat designer_624_CCGA.pdc | grep ' N19 ' -echo ; echo N2 ; cat designer_624_CCGA.pdc | grep ' N2 ' -echo ; echo N20 ; cat designer_624_CCGA.pdc | grep ' N20 ' -echo ; echo N21 ; cat designer_624_CCGA.pdc | grep ' N21 ' -echo ; echo N22 ; cat designer_624_CCGA.pdc | grep ' N22 ' -echo ; echo N23 ; cat designer_624_CCGA.pdc | grep ' N23 ' -echo ; echo N24 ; cat designer_624_CCGA.pdc | grep ' N24 ' -echo ; echo N25 ; cat designer_624_CCGA.pdc | grep ' N25 ' -echo ; echo N3 ; cat designer_624_CCGA.pdc | grep ' N3 ' -echo ; echo N4 ; cat designer_624_CCGA.pdc | grep ' N4 ' -echo ; echo N5 ; cat designer_624_CCGA.pdc | grep ' N5 ' -echo ; echo N6 ; cat designer_624_CCGA.pdc | grep ' N6 ' -echo ; echo N7 ; cat designer_624_CCGA.pdc | grep ' N7 ' -echo ; echo N8 ; cat designer_624_CCGA.pdc | grep ' N8 ' -echo ; echo N9 ; cat designer_624_CCGA.pdc | grep ' N9 ' -echo ; echo P1 ; cat designer_624_CCGA.pdc | grep ' P1 ' -echo ; echo P17 ; cat designer_624_CCGA.pdc | grep ' P17 ' -echo ; echo P18 ; cat designer_624_CCGA.pdc | grep ' P18 ' -echo ; echo P19 ; cat designer_624_CCGA.pdc | grep ' P19 ' -echo ; echo P2 ; cat designer_624_CCGA.pdc | grep ' P2 ' -echo ; echo P20 ; cat designer_624_CCGA.pdc | grep ' P20 ' -echo ; echo P21 ; cat designer_624_CCGA.pdc | grep ' P21 ' -echo ; echo P22 ; cat designer_624_CCGA.pdc | grep ' P22 ' -echo ; echo P23 ; cat designer_624_CCGA.pdc | grep ' P23 ' -echo ; echo P24 ; cat designer_624_CCGA.pdc | grep ' P24 ' -echo ; echo P25 ; cat designer_624_CCGA.pdc | grep ' P25 ' -echo ; echo P3 ; cat designer_624_CCGA.pdc | grep ' P3 ' -echo ; echo P4 ; cat designer_624_CCGA.pdc | grep ' P4 ' -echo ; echo P5 ; cat designer_624_CCGA.pdc | grep ' P5 ' -echo ; echo P6 ; cat designer_624_CCGA.pdc | grep ' P6 ' -echo ; echo P7 ; cat designer_624_CCGA.pdc | grep ' P7 ' -echo ; echo P8 ; cat designer_624_CCGA.pdc | grep ' P8 ' -echo ; echo P9 ; cat designer_624_CCGA.pdc | grep ' P9 ' -echo ; echo R1 ; cat designer_624_CCGA.pdc | grep ' R1 ' -echo ; echo R18 ; cat designer_624_CCGA.pdc | grep ' R18 ' -echo ; echo R19 ; cat designer_624_CCGA.pdc | grep ' R19 ' -echo ; echo R2 ; cat designer_624_CCGA.pdc | grep ' R2 ' -echo ; echo R20 ; cat designer_624_CCGA.pdc | grep ' R20 ' -echo ; echo R21 ; cat designer_624_CCGA.pdc | grep ' R21 ' -echo ; echo R22 ; cat designer_624_CCGA.pdc | grep ' R22 ' -echo ; echo R23 ; cat designer_624_CCGA.pdc | grep ' R23 ' -echo ; echo R24 ; cat designer_624_CCGA.pdc | grep ' R24 ' -echo ; echo R25 ; cat designer_624_CCGA.pdc | grep ' R25 ' -echo ; echo R3 ; cat designer_624_CCGA.pdc | grep ' R3 ' -echo ; echo R4 ; cat designer_624_CCGA.pdc | grep ' R4 ' -echo ; echo R5 ; cat designer_624_CCGA.pdc | grep ' R5 ' -echo ; echo R6 ; cat designer_624_CCGA.pdc | grep ' R6 ' -echo ; echo R7 ; cat designer_624_CCGA.pdc | grep ' R7 ' -echo ; echo R8 ; cat designer_624_CCGA.pdc | grep ' R8 ' -echo ; echo T1 ; cat designer_624_CCGA.pdc | grep ' T1 ' -echo ; echo T13 ; cat designer_624_CCGA.pdc | grep ' T13 ' -echo ; echo T18 ; cat designer_624_CCGA.pdc | grep ' T18 ' -echo ; echo T19 ; cat designer_624_CCGA.pdc | grep ' T19 ' -echo ; echo T2 ; cat designer_624_CCGA.pdc | grep ' T2 ' -echo ; echo T20 ; cat designer_624_CCGA.pdc | grep ' T20 ' -echo ; echo T21 ; cat designer_624_CCGA.pdc | grep ' T21 ' -echo ; echo T22 ; cat designer_624_CCGA.pdc | grep ' T22 ' -echo ; echo T24 ; cat designer_624_CCGA.pdc | grep ' T24 ' -echo ; echo T25 ; cat designer_624_CCGA.pdc | grep ' T25 ' -echo ; echo T4 ; cat designer_624_CCGA.pdc | grep ' T4 ' -echo ; echo T5 ; cat designer_624_CCGA.pdc | grep ' T5 ' -echo ; echo T6 ; cat designer_624_CCGA.pdc | grep ' T6 ' -echo ; echo T7 ; cat designer_624_CCGA.pdc | grep ' T7 ' -echo ; echo T8 ; cat designer_624_CCGA.pdc | grep ' T8 ' -echo ; echo U1 ; cat designer_624_CCGA.pdc | grep ' U1 ' -echo ; echo U13 ; cat designer_624_CCGA.pdc | grep ' U13 ' -echo ; echo U18 ; cat designer_624_CCGA.pdc | grep ' U18 ' -echo ; echo U19 ; cat designer_624_CCGA.pdc | grep ' U19 ' -echo ; echo U2 ; cat designer_624_CCGA.pdc | grep ' U2 ' -echo ; echo U20 ; cat designer_624_CCGA.pdc | grep ' U20 ' -echo ; echo U21 ; cat designer_624_CCGA.pdc | grep ' U21 ' -echo ; echo U22 ; cat designer_624_CCGA.pdc | grep ' U22 ' -echo ; echo U23 ; cat designer_624_CCGA.pdc | grep ' U23 ' -echo ; echo U24 ; cat designer_624_CCGA.pdc | grep ' U24 ' -echo ; echo U25 ; cat designer_624_CCGA.pdc | grep ' U25 ' -echo ; echo U3 ; cat designer_624_CCGA.pdc | grep ' U3 ' -echo ; echo U4 ; cat designer_624_CCGA.pdc | grep ' U4 ' -echo ; echo U5 ; cat designer_624_CCGA.pdc | grep ' U5 ' -echo ; echo U6 ; cat designer_624_CCGA.pdc | grep ' U6 ' -echo ; echo U7 ; cat designer_624_CCGA.pdc | grep ' U7 ' -echo ; echo U8 ; cat designer_624_CCGA.pdc | grep ' U8 ' -echo ; echo V10 ; cat designer_624_CCGA.pdc | grep ' V10 ' -echo ; echo V11 ; cat designer_624_CCGA.pdc | grep ' V11 ' -echo ; echo V13 ; cat designer_624_CCGA.pdc | grep ' V13 ' -echo ; echo V15 ; cat designer_624_CCGA.pdc | grep ' V15 ' -echo ; echo V16 ; cat designer_624_CCGA.pdc | grep ' V16 ' -echo ; echo V17 ; cat designer_624_CCGA.pdc | grep ' V17 ' -echo ; echo V18 ; cat designer_624_CCGA.pdc | grep ' V18 ' -echo ; echo V19 ; cat designer_624_CCGA.pdc | grep ' V19 ' -echo ; echo V2 ; cat designer_624_CCGA.pdc | grep ' V2 ' -echo ; echo V20 ; cat designer_624_CCGA.pdc | grep ' V20 ' -echo ; echo V21 ; cat designer_624_CCGA.pdc | grep ' V21 ' -echo ; echo V22 ; cat designer_624_CCGA.pdc | grep ' V22 ' -echo ; echo V23 ; cat designer_624_CCGA.pdc | grep ' V23 ' -echo ; echo V24 ; cat designer_624_CCGA.pdc | grep ' V24 ' -echo ; echo V3 ; cat designer_624_CCGA.pdc | grep ' V3 ' -echo ; echo V4 ; cat designer_624_CCGA.pdc | grep ' V4 ' -echo ; echo V5 ; cat designer_624_CCGA.pdc | grep ' V5 ' -echo ; echo V6 ; cat designer_624_CCGA.pdc | grep ' V6 ' -echo ; echo V7 ; cat designer_624_CCGA.pdc | grep ' V7 ' -echo ; echo V8 ; cat designer_624_CCGA.pdc | grep ' V8 ' -echo ; echo V9 ; cat designer_624_CCGA.pdc | grep ' V9 ' -echo ; echo W1 ; cat designer_624_CCGA.pdc | grep ' W1 ' -echo ; echo W10 ; cat designer_624_CCGA.pdc | grep ' W10 ' -echo ; echo W11 ; cat designer_624_CCGA.pdc | grep ' W11 ' -echo ; echo W12 ; cat designer_624_CCGA.pdc | grep ' W12 ' -echo ; echo W13 ; cat designer_624_CCGA.pdc | grep ' W13 ' -echo ; echo W14 ; cat designer_624_CCGA.pdc | grep ' W14 ' -echo ; echo W15 ; cat designer_624_CCGA.pdc | grep ' W15 ' -echo ; echo W16 ; cat designer_624_CCGA.pdc | grep ' W16 ' -echo ; echo W17 ; cat designer_624_CCGA.pdc | grep ' W17 ' -echo ; echo W18 ; cat designer_624_CCGA.pdc | grep ' W18 ' -echo ; echo W19 ; cat designer_624_CCGA.pdc | grep ' W19 ' -echo ; echo W2 ; cat designer_624_CCGA.pdc | grep ' W2 ' -echo ; echo W20 ; cat designer_624_CCGA.pdc | grep ' W20 ' -echo ; echo W21 ; cat designer_624_CCGA.pdc | grep ' W21 ' -echo ; echo W22 ; cat designer_624_CCGA.pdc | grep ' W22 ' -echo ; echo W23 ; cat designer_624_CCGA.pdc | grep ' W23 ' -echo ; echo W24 ; cat designer_624_CCGA.pdc | grep ' W24 ' -echo ; echo W25 ; cat designer_624_CCGA.pdc | grep ' W25 ' -echo ; echo W3 ; cat designer_624_CCGA.pdc | grep ' W3 ' -echo ; echo W4 ; cat designer_624_CCGA.pdc | grep ' W4 ' -echo ; echo W5 ; cat designer_624_CCGA.pdc | grep ' W5 ' -echo ; echo W6 ; cat designer_624_CCGA.pdc | grep ' W6 ' -echo ; echo W7 ; cat designer_624_CCGA.pdc | grep ' W7 ' -echo ; echo W8 ; cat designer_624_CCGA.pdc | grep ' W8 ' -echo ; echo W9 ; cat designer_624_CCGA.pdc | grep ' W9 ' -echo ; echo Y1 ; cat designer_624_CCGA.pdc | grep ' Y1 ' -echo ; echo Y10 ; cat designer_624_CCGA.pdc | grep ' Y10 ' -echo ; echo Y11 ; cat designer_624_CCGA.pdc | grep ' Y11 ' -echo ; echo Y13 ; cat designer_624_CCGA.pdc | grep ' Y13 ' -echo ; echo Y15 ; cat designer_624_CCGA.pdc | grep ' Y15 ' -echo ; echo Y16 ; cat designer_624_CCGA.pdc | grep ' Y16 ' -echo ; echo Y17 ; cat designer_624_CCGA.pdc | grep ' Y17 ' -echo ; echo Y18 ; cat designer_624_CCGA.pdc | grep ' Y18 ' -echo ; echo Y19 ; cat designer_624_CCGA.pdc | grep ' Y19 ' -echo ; echo Y2 ; cat designer_624_CCGA.pdc | grep ' Y2 ' -echo ; echo Y20 ; cat designer_624_CCGA.pdc | grep ' Y20 ' -echo ; echo Y21 ; cat designer_624_CCGA.pdc | grep ' Y21 ' -echo ; echo Y22 ; cat designer_624_CCGA.pdc | grep ' Y22 ' -echo ; echo Y23 ; cat designer_624_CCGA.pdc | grep ' Y23 ' -echo ; echo Y24 ; cat designer_624_CCGA.pdc | grep ' Y24 ' -echo ; echo Y25 ; cat designer_624_CCGA.pdc | grep ' Y25 ' -echo ; echo Y3 ; cat designer_624_CCGA.pdc | grep ' Y3 ' -echo ; echo Y4 ; cat designer_624_CCGA.pdc | grep ' Y4 ' -echo ; echo Y5 ; cat designer_624_CCGA.pdc | grep ' Y5 ' -echo ; echo Y6 ; cat designer_624_CCGA.pdc | grep ' Y6 ' -echo ; echo Y7 ; cat designer_624_CCGA.pdc | grep ' Y7 ' -echo ; echo Y8 ; cat designer_624_CCGA.pdc | grep ' Y8 ' -echo ; echo Y9 ; cat designer_624_CCGA.pdc | grep ' Y9 ' diff --git a/boards/gr-cpci-ax/check-624-io.txt b/boards/gr-cpci-ax/check-624-io.txt deleted file mode 100644 index e3d0707d..00000000 --- a/boards/gr-cpci-ax/check-624-io.txt +++ /dev/null @@ -1,88 +0,0 @@ -echo; echo "-------------------"; echo "genio\[24\] "; cat designer_624_CCGA.pdc | grep ' M25 ' ; echo ; echo "cantx\[0\] fifop\[0\]" -echo; echo "-------------------"; echo "genio\[25\] "; cat designer_624_CCGA.pdc | grep ' N25 ' ; echo ; echo "canrx\[0\] fifop\[1\]" -echo; echo "-------------------"; echo "genio\[26\] "; cat designer_624_CCGA.pdc | grep ' P17 ' ; echo ; echo " busaoutin\[0\] " -echo; echo "-------------------"; echo "genio\[27\] "; cat designer_624_CCGA.pdc | grep ' P18 ' ; echo ; echo " busaoutp\[0\] " -echo; echo "-------------------"; echo "genio\[28\] "; cat designer_624_CCGA.pdc | grep ' M23 ' ; echo ; echo " busaoutn\[0\] " -echo; echo "-------------------"; echo "genio\[29\] "; cat designer_624_CCGA.pdc | grep ' N23 ' ; echo ; echo " busainen\[0\] " -echo; echo "-------------------"; echo "genio\[30\] "; cat designer_624_CCGA.pdc | grep ' M22 ' ; echo ; echo " busainp\[0\] " -echo; echo "-------------------"; echo "genio\[31\] "; cat designer_624_CCGA.pdc | grep ' N22 ' ; echo ; echo " busainn\[0\] " -echo; echo "-------------------"; echo "genio\[32\] "; cat designer_624_CCGA.pdc | grep ' K25 ' ; echo ; echo " busboutin\[0\] " -echo; echo "-------------------"; echo "genio\[33\] "; cat designer_624_CCGA.pdc | grep ' L25 ' ; echo ; echo " busboutp\[0\] " -echo; echo "-------------------"; echo "genio\[34\] "; cat designer_624_CCGA.pdc | grep ' M24 ' ; echo ; echo " busboutn\[0\] " -echo; echo "-------------------"; echo "genio\[35\] "; cat designer_624_CCGA.pdc | grep ' N24 ' ; echo ; echo " busbinen\[0\] " -echo; echo "-------------------"; echo "genio\[36\] "; cat designer_624_CCGA.pdc | grep ' J25 ' ; echo ; echo " busbinp\[0\] " -echo; echo "-------------------"; echo "genio\[37\] "; cat designer_624_CCGA.pdc | grep ' N18 ' ; echo ; echo " busbinn\[0\] " -echo; echo "-------------------"; echo "genio\[38\] "; cat designer_624_CCGA.pdc | grep ' N19 ' ; echo ; echo " busaoutin\[1\] e0rx_clk gpio\[16\] fifod\[0\] " -echo; echo "-------------------"; echo "genio\[39\] "; cat designer_624_CCGA.pdc | grep ' M21 ' ; echo ; echo " busaoutp\[1\] e0rx_dv gpio\[17\] fifod\[1\] " -echo; echo "-------------------"; echo "genio\[40\] "; cat designer_624_CCGA.pdc | grep ' M20 ' ; echo ; echo " busaoutn\[1\] e0rx_crs gpio\[18\] fifod\[2\] " -echo; echo "-------------------"; echo "genio\[41\] "; cat designer_624_CCGA.pdc | grep ' N17 ' ; echo ; echo " busainen\[1\] e0rx_er gpio\[19\] fifod\[3\] " -echo; echo "-------------------"; echo "genio\[42\] "; cat designer_624_CCGA.pdc | grep ' K24 ' ; echo ; echo " busainp\[1\] e0rx_col gpio\[20\] fifod\[4\] " -echo; echo "-------------------"; echo "genio\[43\] "; cat designer_624_CCGA.pdc | grep ' L24 ' ; echo ; echo " busainn\[1\] e0rxd\[0\] gpio\[21\] fifod\[5\] " -echo; echo "-------------------"; echo "genio\[44\] "; cat designer_624_CCGA.pdc | grep ' L20 ' ; echo ; echo " busboutin\[1\] e0rxd\[1\] gpio\[22\] fifod\[6\] " -echo; echo "-------------------"; echo "genio\[45\] "; cat designer_624_CCGA.pdc | grep ' L21 ' ; echo ; echo " busboutp\[1\] e0rxd\[2\] gpio\[23\] fifod\[7\] " -echo; echo "-------------------"; echo "genio\[46\] "; cat designer_624_CCGA.pdc | grep ' F25 ' ; echo ; echo " busboutn\[1\] e0rxd\[3\] gpio\[24\] fifod\[8\] " -echo; echo "-------------------"; echo "genio\[47\] "; cat designer_624_CCGA.pdc | grep ' G25 ' ; echo ; echo " busbinen\[1\] e0tx_clk gpio\[25\] fifod\[9\] " -echo; echo "-------------------"; echo "genio\[48\] "; cat designer_624_CCGA.pdc | grep ' K22 ' ; echo ; echo " busbinp\[1\] e0txd\[0\] gpio\[26\] fifod\[10\]" -echo; echo "-------------------"; echo "genio\[49\] "; cat designer_624_CCGA.pdc | grep ' L22 ' ; echo ; echo " busbinn\[1\] e0txd\[1\] gpio\[27\] fifod\[11\]" -echo; echo "-------------------"; echo "genio\[50\] "; cat designer_624_CCGA.pdc | grep ' N16 ' ; echo ; echo " e0txd\[2\] gpio\[28\] fifod\[12\]" -echo; echo "-------------------"; echo "genio\[51\] "; cat designer_624_CCGA.pdc | grep ' L23 ' ; echo ; echo " e0txd\[3\] gpio\[29\] fifod\[13\]" -echo; echo "-------------------"; echo "genio\[52\] "; cat designer_624_CCGA.pdc | grep ' H24 ' ; echo ; echo " romsn\[2\] " -echo; echo "-------------------"; echo "genio\[53\] "; cat designer_624_CCGA.pdc | grep ' J24 ' ; echo ; echo " canrx\[1\] fifod\[14\]" -echo; echo "-------------------"; echo "genio\[54\] "; cat designer_624_CCGA.pdc | grep ' M18 ' ; echo ; echo " cantx\[1\] fifod\[15\]" -echo; echo "-------------------"; echo "genio\[55\] "; cat designer_624_CCGA.pdc | grep ' M19 ' ; echo ; echo " romsn\[3\] " -echo; echo "-------------------"; echo "pciio\[24\] "; cat designer_624_CCGA.pdc | grep ' AA3 ' ; echo ; echo " set_io pci_int\[0\] " -echo; echo "-------------------"; echo "pciio\[25\] "; cat designer_624_CCGA.pdc | grep ' V3 ' ; echo ; echo " e0tx_en gpio\[30\] fifowen " -echo; echo "-------------------"; echo "pciio\[26\] "; cat designer_624_CCGA.pdc | grep ' W3 ' ; echo ; echo " set_io pci_int\[1\] " -echo; echo "-------------------"; echo "pciio\[27\] "; cat designer_624_CCGA.pdc | grep ' AA2 ' ; echo ; echo " e0tx_er gpio\[31\] fiforen " -echo; echo "-------------------"; echo "pciio\[28\] "; cat designer_624_CCGA.pdc | grep ' AB2 ' ; echo ; echo " set_io pci_int\[2\] " -echo; echo "-------------------"; echo "pciio\[29\] "; cat designer_624_CCGA.pdc | grep ' V6 ' ; echo ; echo " e0mdc fifoffn " -echo; echo "-------------------"; echo "pciio\[30\] "; cat designer_624_CCGA.pdc | grep ' W4 ' ; echo ; echo " set_io pci_int\[3\] " -echo; echo "-------------------"; echo "pciio\[31\] "; cat designer_624_CCGA.pdc | grep ' U4 ' ; echo ; echo " e0mdio fifoefn " -echo; echo "-------------------"; echo "pciio\[0\] "; cat designer_624_CCGA.pdc | grep ' U23 ' ; echo ; echo " spw 3 dsutck " -echo; echo "-------------------"; echo "pciio\[1\] "; cat designer_624_CCGA.pdc | grep ' Y24 ' ; echo ; echo " spw 3 dsutdi " -echo; echo "-------------------"; echo "pciio\[2\] "; cat designer_624_CCGA.pdc | grep ' U24 ' ; echo ; echo " spw 3 " -echo; echo "-------------------"; echo "pciio\[3\] "; cat designer_624_CCGA.pdc | grep ' AA24 ' ; echo ; echo " spw 3 " -echo; echo "-------------------"; echo "pciio\[4\] "; cat designer_624_CCGA.pdc | grep ' V22 ' ; echo ; echo " spw 3 dsutdo " -echo; echo "-------------------"; echo "pciio\[5\] "; cat designer_624_CCGA.pdc | grep ' V23 ' ; echo ; echo " spw 3 dsutms " -echo; echo "-------------------"; echo "pciio\[6\] "; cat designer_624_CCGA.pdc | grep ' U22 ' ; echo ; echo " spw 3 e1mdio " -echo; echo "-------------------"; echo "pciio\[7\] "; cat designer_624_CCGA.pdc | grep ' V24 ' ; echo ; echo " spw 3 e1rx_col " -echo; echo "-------------------"; echo "pciio\[8\] "; cat designer_624_CCGA.pdc | grep ' V21 ' ; echo ; echo " e1mdc " -echo; echo "-------------------"; echo "pciio\[9\] "; cat designer_624_CCGA.pdc | grep ' U21 ' ; echo ; echo " e1rx_clk " -echo; echo "-------------------"; echo "pciio\[10\] "; cat designer_624_CCGA.pdc | grep ' Y23 ' ; echo ; echo " e1rx_crs " -echo; echo "-------------------"; echo "pciio\[11\] "; cat designer_624_CCGA.pdc | grep ' AA23 ' ; echo ; echo " e1rx_dv " -echo; echo "-------------------"; echo "pciio\[12\] "; cat designer_624_CCGA.pdc | grep ' W22 ' ; echo ; echo " e1rx_er " -echo; echo "-------------------"; echo "pciio\[13\] "; cat designer_624_CCGA.pdc | grep ' W23 ' ; echo ; echo " e1rxd\[0\] " -echo; echo "-------------------"; echo "pciio\[14\] "; cat designer_624_CCGA.pdc | grep ' Y22 ' ; echo ; echo " e1rxd\[1\] " -echo; echo "-------------------"; echo "pciio\[15\] "; cat designer_624_CCGA.pdc | grep ' Y21 ' ; echo ; echo " e1rxd\[2\] " -echo; echo "-------------------"; echo "pciio\[16\] "; cat designer_624_CCGA.pdc | grep ' N20 ' ; echo ; echo " e1rxd\[3\] " -echo; echo "-------------------"; echo "pciio\[17\] "; cat designer_624_CCGA.pdc | grep ' P24 ' ; echo ; echo " e1tx_clk " -echo; echo "-------------------"; echo "pciio\[18\] "; cat designer_624_CCGA.pdc | grep ' P21 ' ; echo ; echo " e1tx_er " -echo; echo "-------------------"; echo "pciio\[19\] "; cat designer_624_CCGA.pdc | grep ' R19 ' ; echo ; echo " e1tx_en " -echo; echo "-------------------"; echo "pciio\[20\] "; cat designer_624_CCGA.pdc | grep ' R21 ' ; echo ; echo " e1txd\[0\] " -echo; echo "-------------------"; echo "pciio\[21\] "; cat designer_624_CCGA.pdc | grep ' T22 ' ; echo ; echo " e1txd\[1\] " -echo; echo "-------------------"; echo "pciio\[22\] "; cat designer_624_CCGA.pdc | grep ' W24 ' ; echo ; echo " e1txd\[2\] " -echo; echo "-------------------"; echo "pciio\[23\] "; cat designer_624_CCGA.pdc | grep ' AB24 ' ; echo ; echo " e1txd\[3\] " -echo; echo "-------------------"; echo "geniohigh\[92\] "; cat designer_624_CCGA.pdc | grep ' P19 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[93\] "; cat designer_624_CCGA.pdc | grep ' P23 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[94\] "; cat designer_624_CCGA.pdc | grep ' P20 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[95\] "; cat designer_624_CCGA.pdc | grep ' R23 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[96\] "; cat designer_624_CCGA.pdc | grep ' R22 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[97\] "; cat designer_624_CCGA.pdc | grep ' R25 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[98\] "; cat designer_624_CCGA.pdc | grep ' P22 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[99\] "; cat designer_624_CCGA.pdc | grep ' P25 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[100\]"; cat designer_624_CCGA.pdc | grep ' R18 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[101\]"; cat designer_624_CCGA.pdc | grep ' R24 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[102\]"; cat designer_624_CCGA.pdc | grep ' T18 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[103\]"; cat designer_624_CCGA.pdc | grep ' T24 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[104\]"; cat designer_624_CCGA.pdc | grep ' T20 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[105\]"; cat designer_624_CCGA.pdc | grep ' U25 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[106\]"; cat designer_624_CCGA.pdc | grep ' R20 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[107\]"; cat designer_624_CCGA.pdc | grep ' T25 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[108\]"; cat designer_624_CCGA.pdc | grep ' T19 ' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[109\]"; cat designer_624_CCGA.pdc | grep ' W25 ' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[110\]"; cat designer_624_CCGA.pdc | grep ' U19 ' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[111\]"; cat designer_624_CCGA.pdc | grep ' Y25 ' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[112\]"; cat designer_624_CCGA.pdc | grep ' V20 ' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[113\]"; cat designer_624_CCGA.pdc | grep ' AB25 ' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[114\]"; cat designer_624_CCGA.pdc | grep ' U20 ' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[115\]"; cat designer_624_CCGA.pdc | grep ' AA25 ' ; echo ; echo " spw 2 " \ No newline at end of file diff --git a/boards/gr-cpci-ax/check-896-io.txt b/boards/gr-cpci-ax/check-896-io.txt deleted file mode 100644 index 81154014..00000000 --- a/boards/gr-cpci-ax/check-896-io.txt +++ /dev/null @@ -1,88 +0,0 @@ -echo; echo "-------------------"; echo "genio\[24\] "; cat designer_896_FBGA.pdc | grep ' R30 ' ; echo ; echo "cantx\[0\] fifop\[0\]" -echo; echo "-------------------"; echo "genio\[25\] "; cat designer_896_FBGA.pdc | grep ' R29 ' ; echo ; echo "canrx\[0\] fifop\[1\]" -echo; echo "-------------------"; echo "genio\[26\] "; cat designer_896_FBGA.pdc | grep ' R25 ' ; echo ; echo " busaoutin\[0\] " -echo; echo "-------------------"; echo "genio\[27\] "; cat designer_896_FBGA.pdc | grep ' R24 ' ; echo ; echo " busaoutp\[0\] " -echo; echo "-------------------"; echo "genio\[28\] "; cat designer_896_FBGA.pdc | grep ' P30 ' ; echo ; echo " busaoutn\[0\] " -echo; echo "-------------------"; echo "genio\[29\] "; cat designer_896_FBGA.pdc | grep ' P29 ' ; echo ; echo " busainen\[0\] " -echo; echo "-------------------"; echo "genio\[30\] "; cat designer_896_FBGA.pdc | grep ' P26 ' ; echo ; echo " busainp\[0\] " -echo; echo "-------------------"; echo "genio\[31\] "; cat designer_896_FBGA.pdc | grep ' R26 ' ; echo ; echo " busainn\[0\] " -echo; echo "-------------------"; echo "genio\[32\] "; cat designer_896_FBGA.pdc | grep ' P27 ' ; echo ; echo " busboutin\[0\] " -echo; echo "-------------------"; echo "genio\[33\] "; cat designer_896_FBGA.pdc | grep ' P28 ' ; echo ; echo " busboutp\[0\] " -echo; echo "-------------------"; echo "genio\[34\] "; cat designer_896_FBGA.pdc | grep ' P24 ' ; echo ; echo " busboutn\[0\] " -echo; echo "-------------------"; echo "genio\[35\] "; cat designer_896_FBGA.pdc | grep ' P25 ' ; echo ; echo " busbinen\[0\] " -echo; echo "-------------------"; echo "genio\[36\] "; cat designer_896_FBGA.pdc | grep ' N29 ' ; echo ; echo " busbinp\[0\] " -echo; echo "-------------------"; echo "genio\[37\] "; cat designer_896_FBGA.pdc | grep ' N24 ' ; echo ; echo " busbinn\[0\] " -echo; echo "-------------------"; echo "genio\[38\] "; cat designer_896_FBGA.pdc | grep ' N25 ' ; echo ; echo " busaoutin\[1\] e0rx_clk gpio\[16\] fifod\[0\] " -echo; echo "-------------------"; echo "genio\[39\] "; cat designer_896_FBGA.pdc | grep ' N27 ' ; echo ; echo " busaoutp\[1\] e0rx_dv gpio\[17\] fifod\[1\] " -echo; echo "-------------------"; echo "genio\[40\] "; cat designer_896_FBGA.pdc | grep ' N28 ' ; echo ; echo " busaoutn\[1\] e0rx_crs gpio\[18\] fifod\[2\] " -echo; echo "-------------------"; echo "genio\[41\] "; cat designer_896_FBGA.pdc | grep ' N26 ' ; echo ; echo " busainen\[1\] e0rx_er gpio\[19\] fifod\[3\] " -echo; echo "-------------------"; echo "genio\[42\] "; cat designer_896_FBGA.pdc | grep ' L29 ' ; echo ; echo " busainp\[1\] e0rx_col gpio\[20\] fifod\[4\] " -echo; echo "-------------------"; echo "genio\[43\] "; cat designer_896_FBGA.pdc | grep ' M29 ' ; echo ; echo " busainn\[1\] e0rxd\[0\] gpio\[21\] fifod\[5\] " -echo; echo "-------------------"; echo "genio\[44\] "; cat designer_896_FBGA.pdc | grep ' N23 ' ; echo ; echo " busboutin\[1\] e0rxd\[1\] gpio\[22\] fifod\[6\] " -echo; echo "-------------------"; echo "genio\[45\] "; cat designer_896_FBGA.pdc | grep ' N22 ' ; echo ; echo " busboutp\[1\] e0rxd\[2\] gpio\[23\] fifod\[7\] " -echo; echo "-------------------"; echo "genio\[46\] "; cat designer_896_FBGA.pdc | grep ' L28 ' ; echo ; echo " busboutn\[1\] e0rxd\[3\] gpio\[24\] fifod\[8\] " -echo; echo "-------------------"; echo "genio\[47\] "; cat designer_896_FBGA.pdc | grep ' M28 ' ; echo ; echo " busbinen\[1\] e0tx_clk gpio\[25\] fifod\[9\] " -echo; echo "-------------------"; echo "genio\[48\] "; cat designer_896_FBGA.pdc | grep ' L27 ' ; echo ; echo " busbinp\[1\] e0txd\[0\] gpio\[26\] fifod\[10\]" -echo; echo "-------------------"; echo "genio\[49\] "; cat designer_896_FBGA.pdc | grep ' M27 ' ; echo ; echo " busbinn\[1\] e0txd\[1\] gpio\[27\] fifod\[11\]" -echo; echo "-------------------"; echo "genio\[50\] "; cat designer_896_FBGA.pdc | grep ' M24 ' ; echo ; echo " e0txd\[2\] gpio\[28\] fifod\[12\]" -echo; echo "-------------------"; echo "genio\[51\] "; cat designer_896_FBGA.pdc | grep ' M23 ' ; echo ; echo " e0txd\[3\] gpio\[29\] fifod\[13\]" -echo; echo "-------------------"; echo "genio\[52\] "; cat designer_896_FBGA.pdc | grep ' K29 ' ; echo ; echo " romsn\[2\] " -echo; echo "-------------------"; echo "genio\[53\] "; cat designer_896_FBGA.pdc | grep ' K30 ' ; echo ; echo " canrx\[1\] fifod\[14\]" -echo; echo "-------------------"; echo "genio\[54\] "; cat designer_896_FBGA.pdc | grep ' L25 ' ; echo ; echo " cantx\[1\] fifod\[15\]" -echo; echo "-------------------"; echo "genio\[55\] "; cat designer_896_FBGA.pdc | grep ' M25 ' ; echo ; echo " romsn\[3\] " -echo; echo "-------------------"; echo "pciio\[24\] "; cat designer_896_FBGA.pdc | grep ' AF4 ' ; echo ; echo " set_io pci_int\[0\] " -echo; echo "-------------------"; echo "pciio\[25\] "; cat designer_896_FBGA.pdc | grep ' AB7 ' ; echo ; echo " e0tx_en gpio\[30\] fifowen " -echo; echo "-------------------"; echo "pciio\[26\] "; cat designer_896_FBGA.pdc | grep ' AC7 ' ; echo ; echo " set_io pci_int\[1\] " -echo; echo "-------------------"; echo "pciio\[27\] "; cat designer_896_FBGA.pdc | grep ' AD5 ' ; echo ; echo " e0tx_er gpio\[31\] fiforen " -echo; echo "-------------------"; echo "pciio\[28\] "; cat designer_896_FBGA.pdc | grep ' AE5 ' ; echo ; echo " set_io pci_int\[2\] " -echo; echo "-------------------"; echo "pciio\[29\] "; cat designer_896_FBGA.pdc | grep ' AF1 ' ; echo ; echo " e0mdc fifoffn " -echo; echo "-------------------"; echo "pciio\[30\] "; cat designer_896_FBGA.pdc | grep ' AF2 ' ; echo ; echo " set_io pci_int\[3\] " -echo; echo "-------------------"; echo "pciio\[31\] "; cat designer_896_FBGA.pdc | grep ' AC4 ' ; echo ; echo " e0mdio fifoefn " -echo; echo "-------------------"; echo "pciio\[0\] "; cat designer_896_FBGA.pdc | grep ' AD29' ; echo ; echo " spw 3 dsutck " -echo; echo "-------------------"; echo "pciio\[1\] "; cat designer_896_FBGA.pdc | grep ' AC27' ; echo ; echo " spw 3 dsutdi " -echo; echo "-------------------"; echo "pciio\[2\] "; cat designer_896_FBGA.pdc | grep ' AE29' ; echo ; echo " spw 3 " -echo; echo "-------------------"; echo "pciio\[3\] "; cat designer_896_FBGA.pdc | grep ' AD27' ; echo ; echo " spw 3 " -echo; echo "-------------------"; echo "pciio\[4\] "; cat designer_896_FBGA.pdc | grep ' AC26' ; echo ; echo " spw 3 dsutdo " -echo; echo "-------------------"; echo "pciio\[5\] "; cat designer_896_FBGA.pdc | grep ' AE28' ; echo ; echo " spw 3 dsutms " -echo; echo "-------------------"; echo "pciio\[6\] "; cat designer_896_FBGA.pdc | grep ' AB26' ; echo ; echo " spw 3 e1mdio " -echo; echo "-------------------"; echo "pciio\[7\] "; cat designer_896_FBGA.pdc | grep ' AD28' ; echo ; echo " spw 3 e1rx_col " -echo; echo "-------------------"; echo "pciio\[8\] "; cat designer_896_FBGA.pdc | grep ' AE26' ; echo ; echo " e1mdc " -echo; echo "-------------------"; echo "pciio\[9\] "; cat designer_896_FBGA.pdc | grep ' AD26' ; echo ; echo " e1rx_clk " -echo; echo "-------------------"; echo "pciio\[10\] "; cat designer_896_FBGA.pdc | grep ' AD25' ; echo ; echo " e1rx_crs " -echo; echo "-------------------"; echo "pciio\[11\] "; cat designer_896_FBGA.pdc | grep ' AC25' ; echo ; echo " e1rx_dv " -echo; echo "-------------------"; echo "pciio\[12\] "; cat designer_896_FBGA.pdc | grep ' AF27' ; echo ; echo " e1rx_er " -echo; echo "-------------------"; echo "pciio\[13\] "; cat designer_896_FBGA.pdc | grep ' AE27' ; echo ; echo " e1rxd\[0\] " -echo; echo "-------------------"; echo "pciio\[14\] "; cat designer_896_FBGA.pdc | grep ' AB23' ; echo ; echo " e1rxd\[1\] " -echo; echo "-------------------"; echo "pciio\[15\] "; cat designer_896_FBGA.pdc | grep ' AA23' ; echo ; echo " e1rxd\[2\] " -echo; echo "-------------------"; echo "pciio\[16\] "; cat designer_896_FBGA.pdc | grep ' T27 ' ; echo ; echo " e1rxd\[3\] " -echo; echo "-------------------"; echo "pciio\[17\] "; cat designer_896_FBGA.pdc | grep ' T30 ' ; echo ; echo " e1tx_clk " -echo; echo "-------------------"; echo "pciio\[18\] "; cat designer_896_FBGA.pdc | grep ' T22 ' ; echo ; echo " e1tx_er " -echo; echo "-------------------"; echo "pciio\[19\] "; cat designer_896_FBGA.pdc | grep ' V23 ' ; echo ; echo " e1tx_en " -echo; echo "-------------------"; echo "pciio\[20\] "; cat designer_896_FBGA.pdc | grep ' V26 ' ; echo ; echo " e1txd\[0\] " -echo; echo "-------------------"; echo "pciio\[21\] "; cat designer_896_FBGA.pdc | grep ' Y25 ' ; echo ; echo " e1txd\[1\] " -echo; echo "-------------------"; echo "pciio\[22\] "; cat designer_896_FBGA.pdc | grep ' AD30' ; echo ; echo " e1txd\[2\] " -echo; echo "-------------------"; echo "pciio\[23\] "; cat designer_896_FBGA.pdc | grep ' AG28' ; echo ; echo " e1txd\[3\] " -echo; echo "-------------------"; echo "geniohigh\[92\] "; cat designer_896_FBGA.pdc | grep ' T24 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[93\] "; cat designer_896_FBGA.pdc | grep ' U27 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[94\] "; cat designer_896_FBGA.pdc | grep ' U24 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[95\] "; cat designer_896_FBGA.pdc | grep ' V27 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[96\] "; cat designer_896_FBGA.pdc | grep ' V25 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[97\] "; cat designer_896_FBGA.pdc | grep ' W29 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[98\] "; cat designer_896_FBGA.pdc | grep ' U25 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[99\] "; cat designer_896_FBGA.pdc | grep ' V29 ' ; echo ; echo " spw 0 " -echo; echo "-------------------"; echo "geniohigh\[100\]"; cat designer_896_FBGA.pdc | grep ' V24 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[101\]"; cat designer_896_FBGA.pdc | grep ' W28 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[102\]"; cat designer_896_FBGA.pdc | grep ' W24 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[103\]"; cat designer_896_FBGA.pdc | grep ' W27 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[104\]"; cat designer_896_FBGA.pdc | grep ' Y28 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[105\]"; cat designer_896_FBGA.pdc | grep ' Y30 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[106\]"; cat designer_896_FBGA.pdc | grep ' Y27 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[107\]"; cat designer_896_FBGA.pdc | grep ' W30 ' ; echo ; echo " spw 1 " -echo; echo "-------------------"; echo "geniohigh\[108\]"; cat designer_896_FBGA.pdc | grep ' W23 ' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[109\]"; cat designer_896_FBGA.pdc | grep ' AA30' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[110\]"; cat designer_896_FBGA.pdc | grep ' Y23 ' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[111\]"; cat designer_896_FBGA.pdc | grep ' AB30' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[112\]"; cat designer_896_FBGA.pdc | grep ' AA24' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[113\]"; cat designer_896_FBGA.pdc | grep ' AF29' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[114\]"; cat designer_896_FBGA.pdc | grep ' Y24 ' ; echo ; echo " spw 2 " -echo; echo "-------------------"; echo "geniohigh\[115\]"; cat designer_896_FBGA.pdc | grep ' AF30' ; echo ; echo " spw 2 " \ No newline at end of file diff --git a/boards/gr-cpci-ax/config.h b/boards/gr-cpci-ax/config.h deleted file mode 100644 index 4baad472..00000000 --- a/boards/gr-cpci-ax/config.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Automatically generated C config: don't edit - */ -#define AUTOCONF_INCLUDED -#define CONFIG_MCTRL_RMW 1 -/* - * Synthesis - */ -#undef CONFIG_SYN_INFERRED -#define CONFIG_SYN_AXCEL 1 -#undef CONFIG_SYN_INFER_RAM -#undef CONFIG_SYN_INFER_PADS -/* - * Clock generation - */ -#undef CONFIG_CLK_INFERRED -#define CONFIG_CLK_HCLKBUF 1 -#define CONFIG_PROC_NUM (1) -/* - * Processor - */ -/* - * Integer unit - */ -#define CONFIG_IU_NWINDOWS (8) -#undef CONFIG_IU_V8MULDIV -#define CONFIG_IU_LDELAY (1) -#define CONFIG_IU_WATCHPOINTS (0) -#undef CONFIG_PWD -/* - * Floating-point unit - */ -#undef CONFIG_FPU_ENABLE -/* - * Cache system - */ -#define CONFIG_ICACHE_ENABLE 1 -#define CONFIG_ICACHE_ASSO1 1 -#undef CONFIG_ICACHE_ASSO2 -#undef CONFIG_ICACHE_ASSO3 -#undef CONFIG_ICACHE_ASSO4 -#undef CONFIG_ICACHE_SZ1 -#undef CONFIG_ICACHE_SZ2 -#define CONFIG_ICACHE_SZ4 1 -#undef CONFIG_ICACHE_SZ8 -#undef CONFIG_ICACHE_SZ16 -#undef CONFIG_ICACHE_SZ32 -#undef CONFIG_ICACHE_SZ64 -#undef CONFIG_ICACHE_LZ16 -#define CONFIG_ICACHE_LZ32 1 -#undef CONFIG_ICACHE_LRAM -#define CONFIG_DCACHE_ENABLE 1 -#define CONFIG_DCACHE_ASSO1 1 -#undef CONFIG_DCACHE_ASSO2 -#undef CONFIG_DCACHE_ASSO3 -#undef CONFIG_DCACHE_ASSO4 -#undef CONFIG_DCACHE_SZ1 -#undef CONFIG_DCACHE_SZ2 -#define CONFIG_DCACHE_SZ4 1 -#undef CONFIG_DCACHE_SZ8 -#undef CONFIG_DCACHE_SZ16 -#undef CONFIG_DCACHE_SZ32 -#undef CONFIG_DCACHE_SZ64 -#undef CONFIG_DCACHE_LZ16 -#define CONFIG_DCACHE_LZ32 1 -#undef CONFIG_DCACHE_LRAM -/* - * MMU - */ -#undef CONFIG_MMU_ENABLE -/* - * Debug Support Unit - */ -#define CONFIG_DSU_ENABLE 1 -#undef CONFIG_DSU_ITRACE -#undef CONFIG_DSU_ATRACE -/* - * AMBA configuration - */ -#define CONFIG_AHB_DEFMST (0) -#undef CONFIG_AHB_RROBIN -#undef CONFIG_AHB_SPLIT -#define CONFIG_AHB_IOADDR FFF -#define CONFIG_APB_HADDR 800 -/* - * Debug Link - */ -#define CONFIG_DSU_UART 1 -/* - * Peripherals - */ -/* - * Memory controllers - */ -#undef CONFIG_MCTRL_NONE -#define CONFIG_MCTRL_SMALL 1 -#undef CONFIG_MCTRL_LEON2 -#define CONFIG_MCTRL_PROMWS (3) -#define CONFIG_MCTRL_RAMWS (0) -#define CONFIG_MCTRL_SDRAM 1 -#define CONFIG_MCTRL_SDRAM_BUS64 1 -/* - * On-chip RAM - */ -#undef CONFIG_AHBRAM_ENABLE -/* - * PCI - */ -#define CONFIG_PCI_ENABLE 1 -#define CONFIG_PCI_SIMPLE_TARGET 1 -#undef CONFIG_PCI_MASTER_TAGET -#undef CONFIG_PCI_MASTER_TAGET_DMA -#define CONFIG_PCI_VENDORID 16E3 -#define CONFIG_PCI_DEVICEID 0210 -#undef CONFIG_PCI_ARBITER -#undef CONFIG_PCI_TRACE -/* - * UARTs, timers and irq control - */ -#define CONFIG_UART1_ENABLE 1 -#define CONFIG_UA1_FIFO1 1 -#undef CONFIG_UA1_FIFO2 -#undef CONFIG_UA1_FIFO4 -#undef CONFIG_UA1_FIFO8 -#undef CONFIG_UA1_FIFO16 -#undef CONFIG_UA1_FIFO32 -#define CONFIG_UART2_ENABLE 1 -#define CONFIG_UA2_FIFO1 1 -#undef CONFIG_UA2_FIFO2 -#undef CONFIG_UA2_FIFO4 -#undef CONFIG_UA2_FIFO8 -#undef CONFIG_UA2_FIFO16 -#undef CONFIG_UA2_FIFO32 -#define CONFIG_IRQ3_ENABLE 1 -#define CONFIG_GPT_ENABLE 1 -#define CONFIG_GPT_NTIM (2) -#define CONFIG_GPT_SW (8) -#define CONFIG_GPT_TW (32) -#define CONFIG_GPT_IRQ (8) -#define CONFIG_GPT_SEPIRQ 1 -/* - * VHDL Debugging - */ -#undef CONFIG_IU_DISAS -#define CONFIG_DEBUG_UART 1 -#undef CONFIG_DEBUG_PC32 diff --git a/boards/gr-cpci-ax/default.sdc b/boards/gr-cpci-ax/default.sdc deleted file mode 100644 index f8a105be..00000000 --- a/boards/gr-cpci-ax/default.sdc +++ /dev/null @@ -1,48 +0,0 @@ -# Synplicity, Inc. constraint file - -# -# Clocks -# -define_clock -name {clk} -freq 40.000 -clockgroup clk_clkgroup -define_clock -name {pci_clk} -freq 40.000 -clockgroup pci_clkgroup -define_clock -name {spw_clk} -freq 100.000 -clockgroup spw_clkgroup -define_clock -name {spwclk} -freq 100.000 -clockgroup spwclkgroup - -# -# Inputs/Outputs -# -define_output_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref clk:r -define_input_delay -disable -default 20.00 -improve 0.00 -route 0.00 -ref clk:r -define_output_delay -default 8.00 -improve 0.00 -route 0.00 -ref pci_clk:r -define_input_delay -default 15.00 -improve 0.00 -route 0.00 -ref pci_clk:r -define_input_delay {pci_rst} 0.00 -improve 0.00 -route 0.00 -ref pci_clk:r - -# -# Registers -# - -# -# Multicycle Path -# - -# -# False Path -# - -# -# Attributes -# -define_global_attribute syn_useioff {1} -define_attribute {cpu.0.l3ft.u0.holdn} syn_maxfan {10000} -define_attribute {spw.spwloop.0.sw0.rxclko} syn_maxfan {10000} -define_attribute {spw.spwloop.0.sw0.txclko} syn_maxfan {10000} -define_attribute {cpu.0.l3ft.u0} syn_hier {flatten} -define_global_attribute -disable syn_netlist_hierarchy {1} - -# -# Other Constraints -# - -# -# Order of waveforms -# diff --git a/boards/gr-cpci-ax/designer_352_CQFP.pdc b/boards/gr-cpci-ax/designer_352_CQFP.pdc deleted file mode 100644 index 27b72d4a..00000000 --- a/boards/gr-cpci-ax/designer_352_CQFP.pdc +++ /dev/null @@ -1,352 +0,0 @@ -# Actel Physical design constraints file -# Family: Axcelerator , Die: RTAX2000S , Package: cqdp352 - -# -# I/O constraints -# - -# IO bank 0 -set_io clk -iostd LVTTL -pinname 314 -fixed yes -set_io spw_clk -iostd LVTTL -pinname 320 -fixed yes - -set_io ctsn\[1\] -iostd LVTTL -pinname 332 -fixed yes -set_io ctsn\[2\] -iostd LVTTL -pinname 324 -fixed yes -set_io rxd\[1\] -iostd LVTTL -pinname 336 -fixed yes -set_io rxd\[2\] -iostd LVTTL -pinname 326 -fixed yes -set_io rtsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 331 -fixed yes -set_io rtsn\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 323 -fixed yes -set_io txd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 335 -fixed yes -set_io txd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 325 -fixed yes - -set_io dsuact -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 343 -fixed yes -set_io dsubre -iostd LVTTL -pinname 342 -fixed yes -set_io dsuen -iostd LVTTL -pinname 341 -fixed yes -set_io dsurx -iostd LVTTL -pinname 338 -fixed yes -set_io dsutx -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 337 -fixed yes - -# IO bank 1 -set_io iosn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 290 -fixed yes -set_io oen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 283 -fixed yes -set_io read -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 289 -fixed yes -set_io writen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 284 -fixed yes -set_io romsn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 288 -fixed yes -set_io romsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 287 -fixed yes -set_io romsn\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 276 -fixed yes -set_io romsn\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 275 -fixed yes - -set_io bexcn -iostd LVTTL -RES_PULL Up -pinname 295 -fixed yes -set_io brdyn -iostd LVTTL -RES_PULL Up -pinname 296 -fixed yes - -set_io ramben\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 282 -fixed yes -set_io ramben\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 281 -fixed yes -set_io ramben\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 278 -fixed yes -set_io ramben\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 277 -fixed yes - -set_io rwen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 272 -fixed yes -set_io rwen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 271 -fixed yes -set_io rwen\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 270 -fixed yes -set_io rwen\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 269 -fixed yes - -# io bank 2 -set_io address\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 262 -fixed yes -set_io address\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 261 -fixed yes -set_io address\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 260 -fixed yes -set_io address\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 259 -fixed yes -set_io address\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 256 -fixed yes -set_io address\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 255 -fixed yes -set_io address\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 254 -fixed yes -set_io address\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 253 -fixed yes -set_io address\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 250 -fixed yes -set_io address\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 249 -fixed yes -set_io address\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 248 -fixed yes -set_io address\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 247 -fixed yes -set_io address\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 244 -fixed yes -set_io address\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 243 -fixed yes -set_io address\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 242 -fixed yes -set_io address\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 241 -fixed yes -set_io address\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 238 -fixed yes -set_io address\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 237 -fixed yes -set_io address\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 236 -fixed yes -set_io address\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 235 -fixed yes -set_io address\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 232 -fixed yes -set_io address\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 231 -fixed yes -set_io address\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 230 -fixed yes -set_io address\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 229 -fixed yes -set_io address\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 226 -fixed yes -set_io address\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 225 -fixed yes -set_io address\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 224 -fixed yes -set_io address\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 223 -fixed yes - -#io bank 3 -set_io data\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 220 -fixed yes -set_io data\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 219 -fixed yes -set_io data\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 218 -fixed yes -set_io data\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 217 -fixed yes -set_io data\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 214 -fixed yes -set_io data\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 213 -fixed yes -set_io data\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 212 -fixed yes -set_io data\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 211 -fixed yes -set_io data\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 208 -fixed yes -set_io data\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 207 -fixed yes -set_io data\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 206 -fixed yes -set_io data\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 205 -fixed yes -set_io data\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 202 -fixed yes -set_io data\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 201 -fixed yes -set_io data\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 200 -fixed yes -set_io data\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 199 -fixed yes -set_io data\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 196 -fixed yes -set_io data\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 195 -fixed yes -set_io data\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 194 -fixed yes -set_io data\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 193 -fixed yes -set_io data\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 190 -fixed yes -set_io data\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 189 -fixed yes -set_io data\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 188 -fixed yes -set_io data\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 187 -fixed yes -set_io data\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 184 -fixed yes -set_io data\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 183 -fixed yes -set_io data\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 182 -fixed yes -set_io data\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 181 -fixed yes -set_io data\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 180 -fixed yes -set_io data\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 179 -fixed yes - -#io bank 4 -set_io data\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 173 -fixed yes -set_io data\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 172 -fixed yes -set_io cb\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 171 -fixed yes -set_io cb\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 170 -fixed yes -set_io cb\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 167 -fixed yes -set_io cb\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 166 -fixed yes -set_io cb\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 165 -fixed yes -set_io cb\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 164 -fixed yes -set_io cb\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 161 -fixed yes -set_io cb\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 160 -fixed yes -set_io ramoen\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 143 -fixed yes -set_io ramoen\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 159 -fixed yes -set_io ramoen\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 158 -fixed yes -set_io ramoen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 155 -fixed yes -set_io ramoen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 154 -fixed yes -set_io ramsn\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 142 -fixed yes -set_io ramsn\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 153 -fixed yes -set_io ramsn\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 152 -fixed yes -set_io ramsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 147 -fixed yes -set_io ramsn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 146 -fixed yes - -# io bank 5 -set_io gpio\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 119 -fixed yes -set_io gpio\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 118 -fixed yes -set_io gpio\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 113 -fixed yes -set_io gpio\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 112 -fixed yes -set_io gpio\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 111 -fixed yes -set_io gpio\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 110 -fixed yes -set_io gpio\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 107 -fixed yes -set_io gpio\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 106 -fixed yes -set_io gpio\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 105 -fixed yes -set_io gpio\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 104 -fixed yes -set_io gpio\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 101 -fixed yes -set_io gpio\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 100 -fixed yes -set_io gpio\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 99 -fixed yes -set_io gpio\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 98 -fixed yes -set_io gpio\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 95 -fixed yes -set_io gpio\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 94 -fixed yes -set_io errorn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -RES_PULL Up -pinname 93 -fixed yes -set_io resetn -iostd LVTTL -pinname 92 -fixed yes - -# io bank 6 -set_io wdogn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -RES_PULL Up -pinname 86 -fixed yes - -set_io busainen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 82 -fixed yes -set_io busainn\[0\] -iostd LVTTL -pinname 78 -fixed yes -set_io busainp\[0\] -iostd LVTTL -pinname 79 -fixed yes -set_io busaoutin\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 85 -fixed yes -set_io busaoutn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 83 -fixed yes -set_io busaoutp\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 84 -fixed yes -set_io busbinen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 72 -fixed yes -set_io busbinn\[0\] -iostd LVTTL -pinname 70 -fixed yes -set_io busbinp\[0\] -iostd LVTTL -pinname 71 -fixed yes -set_io busboutin\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 77 -fixed yes -set_io busboutn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 73 -fixed yes -set_io busboutp\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 76 -fixed yes -# Alternative name -set_io busainen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 82 -fixed yes -set_io busainn -iostd LVTTL -pinname 78 -fixed yes -set_io busainp -iostd LVTTL -pinname 79 -fixed yes -set_io busaoutin -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 85 -fixed yes -set_io busaoutn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 83 -fixed yes -set_io busaoutp -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 84 -fixed yes -set_io busbinen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 72 -fixed yes -set_io busbinn -iostd LVTTL -pinname 70 -fixed yes -set_io busbinp -iostd LVTTL -pinname 71 -fixed yes -set_io busboutin -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 77 -fixed yes -set_io busboutn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 73 -fixed yes -set_io busboutp -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 76 -fixed yes - -set_io busainen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 64 -fixed yes -set_io busainn\[1\] -iostd LVTTL -pinname 60 -fixed yes -set_io busainp\[1\] -iostd LVTTL -pinname 61 -fixed yes -set_io busaoutin\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 67 -fixed yes -set_io busaoutn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 65 -fixed yes -set_io busaoutp\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 66 -fixed yes -set_io busbinen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 54 -fixed yes -set_io busbinn\[1\] -iostd LVTTL -pinname 52 -fixed yes -set_io busbinp\[1\] -iostd LVTTL -pinname 53 -fixed yes -set_io busboutin\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 59 -fixed yes -set_io busboutn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 55 -fixed yes -set_io busboutp\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 58 -fixed yes - -set_io cantx\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 49 -fixed yes -set_io canrx\[0\] -iostd LVTTL -pinname 48 -fixed yes -set_io cantx\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 47 -fixed yes -set_io canrx\[1\] -iostd LVTTL -pinname 46 -fixed yes - -# io bank 7 (spacewire, lvds) -set_io spw_rxd\[0\] -iostd LVDS -pinname 43 -fixed yes -set_io spw_rxdn\[0\] -iostd LVDS -pinname 42 -fixed yes -set_io spw_rxs\[0\] -iostd LVDS -pinname 41 -fixed yes -set_io spw_rxsn\[0\] -iostd LVDS -pinname 40 -fixed yes -set_io spw_txd\[0\] -iostd LVDS -pinname 37 -fixed yes -set_io spw_txdn\[0\] -iostd LVDS -pinname 36 -fixed yes -set_io spw_txs\[0\] -iostd LVDS -pinname 35 -fixed yes -set_io spw_txsn\[0\] -iostd LVDS -pinname 34 -fixed yes - -set_io spw_rxd\[1\] -iostd LVDS -pinname 31 -fixed yes -set_io spw_rxdn\[1\] -iostd LVDS -pinname 30 -fixed yes -set_io spw_rxs\[1\] -iostd LVDS -pinname 29 -fixed yes -set_io spw_rxsn\[1\] -iostd LVDS -pinname 28 -fixed yes -set_io spw_txd\[1\] -iostd LVDS -pinname 25 -fixed yes -set_io spw_txdn\[1\] -iostd LVDS -pinname 24 -fixed yes -set_io spw_txs\[1\] -iostd LVDS -pinname 23 -fixed yes -set_io spw_txsn\[1\] -iostd LVDS -pinname 22 -fixed yes - -set_io spw_rxd\[2\] -iostd LVDS -pinname 19 -fixed yes -set_io spw_rxdn\[2\] -iostd LVDS -pinname 18 -fixed yes -set_io spw_rxs\[2\] -iostd LVDS -pinname 17 -fixed yes -set_io spw_rxsn\[2\] -iostd LVDS -pinname 16 -fixed yes -set_io spw_txd\[2\] -iostd LVDS -pinname 13 -fixed yes -set_io spw_txdn\[2\] -iostd LVDS -pinname 12 -fixed yes -set_io spw_txs\[2\] -iostd LVDS -pinname 11 -fixed yes -set_io spw_txsn\[2\] -iostd LVDS -pinname 10 -fixed yes - -set_io dsutck -iostd LVCMOS25 -pinname 4 -fixed yes -set_io dsutms -iostd LVCMOS25 -pinname 5 -fixed yes -set_io dsutdi -iostd LVCMOS25 -pinname 6 -fixed yes -set_io dsutdo -iostd LVCMOS25 -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 7 -fixed yes - -set_location spw.swloop.0.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/rxclko_0 -fixed yes 40 61 -set_location spw.swloop.0.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/r.shftreg -fixed yes 42 62 -set_location spw.swloop.0.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/nr.shftreg\[0\] -fixed yes 42 61 - -set_location spw.swloop.1.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/rxclko_0 -fixed yes 40 77 -set_location spw.swloop.1.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/r.shftreg -fixed yes 42 80 -set_location spw.swloop.1.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/nr.shftreg\[0\] -fixed yes 42 79 - -set_location spw.swloop.2.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/rxclko_0 -fixed yes 40 84 -set_location spw.swloop.2.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/r.shftreg -fixed yes 42 85 -set_location spw.swloop.2.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/nr.shftreg\[0\] -fixed yes 42 84 - -# Alternative pins (used with FTMCTRL, common bus) - -set_io sdcsn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 300 -fixed yes -set_io sdcsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 299 -fixed yes -set_io sdwen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 305 -fixed yes -set_io sdrasn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 306 -fixed yes -set_io sdcasn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 122 -fixed yes -set_io sddqm\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 123 -fixed yes -set_io sddqm\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 128 -fixed yes -set_io sddqm\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 129 -fixed yes -set_io sddqm\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 136 -fixed yes - -# Alternative pins (replaces 1553 interface) - -set_io gpio\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 82 -fixed yes -set_io gpio\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 78 -fixed yes -set_io gpio\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 79 -fixed yes -set_io gpio\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 85 -fixed yes -set_io gpio\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 83 -fixed yes -set_io gpio\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 84 -fixed yes -set_io gpio\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 72 -fixed yes -set_io gpio\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 70 -fixed yes -set_io gpio\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 71 -fixed yes -set_io gpio\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 77 -fixed yes -set_io gpio\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 73 -fixed yes -set_io gpio\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 76 -fixed yes -set_io gpio\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 64 -fixed yes -set_io gpio\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 60 -fixed yes -set_io gpio\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 61 -fixed yes -set_io gpio\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 67 -fixed yes - -# Alternative Ethernet pins -set_io emdio -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 60 -fixed yes -set_io emdc -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 61 -fixed yes -set_io erx_clk -iostd LVTTL -pinname 64 -fixed yes -set_io erx_dv -iostd LVTTL -pinname 65 -fixed yes -set_io erx_crs -iostd LVTTL -pinname 66 -fixed yes -set_io erx_er -iostd LVTTL -pinname 67 -fixed yes -set_io erx_col -iostd LVTTL -pinname 70 -fixed yes -set_io erxd\[0\] -iostd LVTTL -pinname 71 -fixed yes -set_io erxd\[1\] -iostd LVTTL -pinname 72 -fixed yes -set_io erxd\[2\] -iostd LVTTL -pinname 73 -fixed yes -set_io erxd\[3\] -iostd LVTTL -pinname 76 -fixed yes -set_io etx_clk -iostd LVTTL -pinname 77 -fixed yes -set_io etx_en -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 78 -fixed yes -set_io etx_er -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 79 -fixed yes -set_io emdint -iostd LVTTL -pinname 79 -fixed yes -set_io etxd\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 82 -fixed yes -set_io etxd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 83 -fixed yes -set_io etxd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 84 -fixed yes -set_io etxd\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 85 -fixed yes - -set_io e0mdio -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 60 -fixed yes -set_io e0mdc -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 61 -fixed yes -set_io e0rx_clk -iostd LVTTL -pinname 64 -fixed yes -set_io e0rx_dv -iostd LVTTL -pinname 65 -fixed yes -set_io e0rx_crs -iostd LVTTL -pinname 66 -fixed yes -set_io e0rx_er -iostd LVTTL -pinname 67 -fixed yes -set_io e0rx_col -iostd LVTTL -pinname 70 -fixed yes -set_io e0rxd\[0\] -iostd LVTTL -pinname 71 -fixed yes -set_io e0rxd\[1\] -iostd LVTTL -pinname 72 -fixed yes -set_io e0rxd\[2\] -iostd LVTTL -pinname 73 -fixed yes -set_io e0rxd\[3\] -iostd LVTTL -pinname 76 -fixed yes -set_io e0tx_clk -iostd LVTTL -pinname 77 -fixed yes -set_io e0tx_en -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 78 -fixed yes -set_io e0tx_er -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 79 -fixed yes -set_io e0mdint -iostd LVTTL -pinname 79 -fixed yes -set_io e0txd\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 82 -fixed yes -set_io e0txd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 83 -fixed yes -set_io e0txd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 84 -fixed yes -set_io e0txd\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 85 -fixed yes - -set_io e1mdio -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 35 -fixed yes -set_io e1mdc -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 37 -fixed yes -set_io e1rx_clk -iostd LVTTL -pinname 31 -fixed yes -set_io e1rx_dv -iostd LVTTL -pinname 29 -fixed yes -set_io e1rx_crs -iostd LVTTL -pinname 30 -fixed yes -set_io e1rx_er -iostd LVTTL -pinname 28 -fixed yes -set_io e1rx_col -iostd LVTTL -pinname 22 -fixed yes -set_io e1rxd\[0\] -iostd LVTTL -pinname 24 -fixed yes -set_io e1rxd\[1\] -iostd LVTTL -pinname 23 -fixed yes -set_io e1rxd\[2\] -iostd LVTTL -pinname 25 -fixed yes -set_io e1rxd\[3\] -iostd LVTTL -pinname 19 -fixed yes -set_io e1tx_clk -iostd LVTTL -pinname 17 -fixed yes -set_io e1tx_en -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 18 -fixed yes -set_io e1tx_er -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 16 -fixed yes -set_io e1mdint -iostd LVTTL -pinname 16 -fixed yes -set_io e1txd\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 10 -fixed yes -set_io e1txd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 12 -fixed yes -set_io e1txd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 11 -fixed yes -set_io e1txd\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname 13 -fixed yes - - -## Additional pins for Reed-Solomon check bits on common memory bus -# IO bank 0 -set_io cb\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 319 -fixed yes -set_io cb\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 313 -fixed yes - -# IO bank 4 -set_io cb\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 137 -fixed yes - -# IO bank 5 -set_io cb\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 58 -fixed yes -set_io cb\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 55 -fixed yes -set_io cb\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 54 -fixed yes -set_io cb\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 53 -fixed yes -set_io cb\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname 52 -fixed yes diff --git a/boards/gr-cpci-ax/designer_352_CQFP.sdc b/boards/gr-cpci-ax/designer_352_CQFP.sdc deleted file mode 100644 index 12345a15..00000000 --- a/boards/gr-cpci-ax/designer_352_CQFP.sdc +++ /dev/null @@ -1,33 +0,0 @@ -################################################################################ -# Actel Designer Software Release Designer -################################################################################ - -######## Clock Constraints ######## - -create_clock -period 40.0000 [get_ports {clk}] - -#create_clock -period 30.0000 [get_ports {pci_clk}] -# -#create_clock -period 10.0000 [get_ports {spw_clk}] -# -#create_clock -period 10.0000 [get_ports {spwclk}] - - -######## Delay Constraints ######## - -#set_max_delay 7.00 -from [all_inputs] -to [get_clocks {pci_clk}] -#set_max_delay 11.00 -from [get_clocks {pci_clk}] -to [all_outputs] - -#set_max_delay 11.00 -from [all_inputs] -to [all_outputs] - -#set_max_delay 5.00 -from [all_inputs] -to [get_clocks {clk}] -#set_max_delay 10.00 -from [get_clocks {clk}] -to [all_outputs] - - -######## False Path Constraints ######## - - -######## OutPut load Constraints ######## - - -######## Multicycle Constraints ######## diff --git a/boards/gr-cpci-ax/designer_624_CCGA.pdc b/boards/gr-cpci-ax/designer_624_CCGA.pdc deleted file mode 100644 index 5e339145..00000000 --- a/boards/gr-cpci-ax/designer_624_CCGA.pdc +++ /dev/null @@ -1,674 +0,0 @@ -# Actel Physical design constraints file -# Family: Axcelerator , Die: RTAX2000S , Package: ccga624r - -# -# I/O constraints -# - -set_io address\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P9 -fixed yes -set_io address\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K1 -fixed yes -set_io address\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L1 -fixed yes -set_io address\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M5 -fixed yes -set_io address\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L6 -fixed yes -set_io address\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L5 -fixed yes -set_io address\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K2 -fixed yes -set_io address\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L2 -fixed yes -set_io address\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K4 -fixed yes -set_io address\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L4 -fixed yes -set_io address\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J3 -fixed yes -set_io address\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N6 -fixed yes -set_io address\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J2 -fixed yes -set_io address\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J1 -fixed yes -set_io address\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L7 -fixed yes -set_io address\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M7 -fixed yes -set_io address\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M9 -fixed yes -set_io address\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M8 -fixed yes -set_io address\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F1 -fixed yes -set_io address\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G1 -fixed yes -set_io address\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M6 -fixed yes -set_io address\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N8 -fixed yes -set_io address\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N7 -fixed yes -set_io address\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M4 -fixed yes -set_io address\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L3 -fixed yes -set_io address\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M3 -fixed yes -set_io address\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N10 -fixed yes -set_io address\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N9 -fixed yes -set_io bexcn -iostd LVTTL -RES_PULL Up -pinname P8 -fixed yes -set_io brdyn -iostd LVTTL -RES_PULL Up -pinname N3 -fixed yes -set_io cb\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V4 -fixed yes -set_io cb\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y5 -fixed yes -set_io cb\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W5 -fixed yes -set_io cb\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U6 -fixed yes -set_io cb\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U5 -fixed yes -set_io cb\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U3 -fixed yes -set_io cb\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T2 -fixed yes -set_io cb\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U2 -fixed yes -set_io clk -iostd LVTTL -pinname C12 -fixed yes -set_io ctsn\[1\] -iostd LVTTL -pinname J21 -fixed yes -set_io ctsn\[2\] -iostd LVTTL -pinname K19 -fixed yes -set_io data\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H2 -fixed yes -set_io data\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F3 -fixed yes -set_io data\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E3 -fixed yes -set_io data\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G4 -fixed yes -set_io data\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G3 -fixed yes -set_io data\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K8 -fixed yes -set_io data\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L8 -fixed yes -set_io data\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W2 -fixed yes -set_io data\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y2 -fixed yes -set_io data\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R6 -fixed yes -set_io data\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T6 -fixed yes -set_io data\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E2 -fixed yes -set_io data\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T7 -fixed yes -set_io data\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U7 -fixed yes -set_io data\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V2 -fixed yes -set_io data\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R4 -fixed yes -set_io data\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T4 -fixed yes -set_io data\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R3 -fixed yes -set_io data\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R5 -fixed yes -set_io data\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA1 -fixed yes -set_io data\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB1 -fixed yes -set_io data\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R8 -fixed yes -set_io data\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F2 -fixed yes -set_io data\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T8 -fixed yes -set_io data\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W1 -fixed yes -set_io data\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H4 -fixed yes -set_io data\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J4 -fixed yes -set_io data\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H5 -fixed yes -set_io data\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H6 -fixed yes -set_io data\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D2 -fixed yes -set_io data\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J6 -fixed yes -set_io data\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J5 -fixed yes -set_io dsuact -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H23 -fixed yes -set_io dsubre -iostd LVTTL -pinname E24 -fixed yes -set_io dsuen -iostd LVTTL -pinname G23 -fixed yes -set_io dsurx -iostd LVTTL -pinname E23 -fixed yes -set_io dsutx -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F23 -fixed yes -set_io errorn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -RES_PULL Up -pinname D19 -fixed yes -set_io geniohigh\[100\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R18 -fixed yes -set_io geniohigh\[101\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R24 -fixed yes -set_io geniohigh\[102\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T18 -fixed yes -set_io geniohigh\[103\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T24 -fixed yes -set_io geniohigh\[104\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T20 -fixed yes -set_io geniohigh\[105\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U25 -fixed yes -set_io geniohigh\[106\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R20 -fixed yes -set_io geniohigh\[107\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T25 -fixed yes -set_io geniohigh\[108\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T19 -fixed yes -set_io geniohigh\[109\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W25 -fixed yes -set_io geniohigh\[110\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U19 -fixed yes -set_io geniohigh\[111\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y25 -fixed yes -set_io geniohigh\[112\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V20 -fixed yes -set_io geniohigh\[113\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB25 -fixed yes -set_io geniohigh\[114\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U20 -fixed yes -set_io geniohigh\[115\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA25 -fixed yes -set_io geniohigh\[92\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P19 -fixed yes -set_io geniohigh\[93\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P23 -fixed yes -set_io geniohigh\[94\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P20 -fixed yes -set_io geniohigh\[95\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R23 -fixed yes -set_io geniohigh\[96\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R22 -fixed yes -set_io geniohigh\[97\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R25 -fixed yes -set_io geniohigh\[98\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P22 -fixed yes -set_io geniohigh\[99\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P25 -fixed yes -set_io geniolow\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M25 -fixed yes -set_io geniolow\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N25 -fixed yes -set_io geniolow\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P17 -fixed yes -set_io geniolow\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P18 -fixed yes -set_io geniolow\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M23 -fixed yes -set_io geniolow\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N23 -fixed yes -set_io geniolow\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M22 -fixed yes -set_io geniolow\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N22 -fixed yes -set_io geniolow\[32\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K25 -fixed yes -set_io geniolow\[33\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L25 -fixed yes -set_io geniolow\[34\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M24 -fixed yes -set_io geniolow\[35\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N24 -fixed yes -set_io geniolow\[36\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J25 -fixed yes -set_io geniolow\[37\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N18 -fixed yes -set_io geniolow\[38\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N19 -fixed yes -set_io geniolow\[39\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M21 -fixed yes -set_io geniolow\[40\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M20 -fixed yes -set_io geniolow\[41\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N17 -fixed yes -set_io geniolow\[42\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K24 -fixed yes -set_io geniolow\[43\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L24 -fixed yes -set_io geniolow\[44\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L20 -fixed yes -set_io geniolow\[45\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L21 -fixed yes -set_io geniolow\[46\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F25 -fixed yes -set_io geniolow\[47\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G25 -fixed yes -set_io geniolow\[48\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K22 -fixed yes -set_io geniolow\[49\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L22 -fixed yes -set_io geniolow\[50\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N16 -fixed yes -set_io geniolow\[51\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L23 -fixed yes -set_io geniolow\[52\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H24 -fixed yes -set_io geniolow\[53\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J24 -fixed yes -set_io geniolow\[54\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M18 -fixed yes -set_io geniolow\[55\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M19 -fixed yes -set_io gpio\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F24 -fixed yes -set_io gpio\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E18 -fixed yes -set_io gpio\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F18 -fixed yes -set_io gpio\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G21 -fixed yes -set_io gpio\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G20 -fixed yes -set_io gpio\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F20 -fixed yes -set_io gpio\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F19 -fixed yes -set_io gpio\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G24 -fixed yes -set_io gpio\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K18 -fixed yes -set_io gpio\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L18 -fixed yes -set_io gpio\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H22 -fixed yes -set_io gpio\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J22 -fixed yes -set_io gpio\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G22 -fixed yes -set_io gpio\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M17 -fixed yes -set_io gpio\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H20 -fixed yes -set_io gpio\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H19 -fixed yes -set_io iosn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M1 -fixed yes -set_io oen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N1 -fixed yes -set_io pci_66 -iostd PCI -pinname V13 -fixed yes -set_io pci_ack64n -iostd PCI -pinname Y13 -fixed yes -set_io pci_ad\[0\] -iostd PCI -pinname W11 -fixed yes -set_io pci_ad\[10\] -iostd PCI -pinname AB10 -fixed yes -set_io pci_ad\[11\] -iostd PCI -pinname AB11 -fixed yes -set_io pci_ad\[12\] -iostd PCI -pinname AD9 -fixed yes -set_io pci_ad\[13\] -iostd PCI -pinname AD10 -fixed yes -set_io pci_ad\[14\] -iostd PCI -pinname V11 -fixed yes -set_io pci_ad\[15\] -iostd PCI -pinname AD7 -fixed yes -set_io pci_ad\[16\] -iostd PCI -pinname AC8 -fixed yes -set_io pci_ad\[17\] -iostd PCI -pinname AB7 -fixed yes -set_io pci_ad\[18\] -iostd PCI -pinname AC7 -fixed yes -set_io pci_ad\[19\] -iostd PCI -pinname AA8 -fixed yes -set_io pci_ad\[1\] -iostd PCI -pinname W12 -fixed yes -set_io pci_ad\[20\] -iostd PCI -pinname Y8 -fixed yes -set_io pci_ad\[21\] -iostd PCI -pinname V8 -fixed yes -set_io pci_ad\[22\] -iostd PCI -pinname V7 -fixed yes -set_io pci_ad\[23\] -iostd PCI -pinname Y7 -fixed yes -set_io pci_ad\[24\] -iostd PCI -pinname W7 -fixed yes -set_io pci_ad\[25\] -iostd PCI -pinname AC5 -fixed yes -set_io pci_ad\[26\] -iostd PCI -pinname AC6 -fixed yes -set_io pci_ad\[27\] -iostd PCI -pinname Y6 -fixed yes -set_io pci_ad\[28\] -iostd PCI -pinname W6 -fixed yes -set_io pci_ad\[29\] -iostd PCI -pinname AB6 -fixed yes -set_io pci_ad\[2\] -iostd PCI -pinname AA11 -fixed yes -set_io pci_ad\[30\] -iostd PCI -pinname AA6 -fixed yes -set_io pci_ad\[31\] -iostd PCI -pinname Y3 -fixed yes -set_io pci_ad\[32\] -iostd PCI -pinname AD21 -fixed yes -set_io pci_ad\[33\] -iostd PCI -pinname AD22 -fixed yes -set_io pci_ad\[34\] -iostd PCI -pinname AA19 -fixed yes -set_io pci_ad\[35\] -iostd PCI -pinname Y18 -fixed yes -set_io pci_ad\[36\] -iostd PCI -pinname Y19 -fixed yes -set_io pci_ad\[37\] -iostd PCI -pinname AB19 -fixed yes -set_io pci_ad\[38\] -iostd PCI -pinname AB18 -fixed yes -set_io pci_ad\[39\] -iostd PCI -pinname V19 -fixed yes -set_io pci_ad\[3\] -iostd PCI -pinname Y11 -fixed yes -set_io pci_ad\[40\] -iostd PCI -pinname W19 -fixed yes -set_io pci_ad\[41\] -iostd PCI -pinname AC19 -fixed yes -set_io pci_ad\[42\] -iostd PCI -pinname AB17 -fixed yes -set_io pci_ad\[43\] -iostd PCI -pinname AC17 -fixed yes -set_io pci_ad\[44\] -iostd PCI -pinname AD19 -fixed yes -set_io pci_ad\[45\] -iostd PCI -pinname AD20 -fixed yes -set_io pci_ad\[46\] -iostd PCI -pinname AC18 -fixed yes -set_io pci_ad\[47\] -iostd PCI -pinname Y17 -fixed yes -set_io pci_ad\[48\] -iostd PCI -pinname AA17 -fixed yes -set_io pci_ad\[49\] -iostd PCI -pinname AE22 -fixed yes -set_io pci_ad\[4\] -iostd PCI -pinname AE9 -fixed yes -set_io pci_ad\[50\] -iostd PCI -pinname W18 -fixed yes -set_io pci_ad\[51\] -iostd PCI -pinname V18 -fixed yes -set_io pci_ad\[52\] -iostd PCI -pinname U18 -fixed yes -set_io pci_ad\[53\] -iostd PCI -pinname AE21 -fixed yes -set_io pci_ad\[54\] -iostd PCI -pinname AB16 -fixed yes -set_io pci_ad\[55\] -iostd PCI -pinname AD17 -fixed yes -set_io pci_ad\[56\] -iostd PCI -pinname AD18 -fixed yes -set_io pci_ad\[57\] -iostd PCI -pinname V17 -fixed yes -set_io pci_ad\[58\] -iostd PCI -pinname W17 -fixed yes -set_io pci_ad\[59\] -iostd PCI -pinname AE19 -fixed yes -set_io pci_ad\[5\] -iostd PCI -pinname AE6 -fixed yes -set_io pci_ad\[60\] -iostd PCI -pinname AE20 -fixed yes -set_io pci_ad\[61\] -iostd PCI -pinname AC15 -fixed yes -set_io pci_ad\[62\] -iostd PCI -pinname AD15 -fixed yes -set_io pci_ad\[63\] -iostd PCI -pinname AD16 -fixed yes -set_io pci_ad\[6\] -iostd PCI -pinname AE7 -fixed yes -set_io pci_ad\[7\] -iostd PCI -pinname Y10 -fixed yes -set_io pci_ad\[8\] -iostd PCI -pinname W10 -fixed yes -set_io pci_ad\[9\] -iostd PCI -pinname T13 -fixed yes -set_io pci_arb_gnt\[0\] -iostd PCI -pinname AE15 -fixed yes -set_io pci_arb_gnt\[1\] -iostd PCI -pinname AE16 -fixed yes -set_io pci_arb_gnt\[2\] -iostd PCI -pinname W16 -fixed yes -set_io pci_arb_gnt\[3\] -iostd PCI -pinname AE14 -fixed yes -set_io pci_arb_gnt\[4\] -iostd PCI -pinname V15 -fixed yes -set_io pci_arb_gnt\[5\] -iostd PCI -pinname Y20 -fixed yes -set_io pci_arb_gnt\[6\] -iostd PCI -pinname W20 -fixed yes -set_io pci_arb_gnt\[7\] -iostd PCI -pinname V16 -fixed yes -set_io pci_arb_req\[0\] -iostd LVTTL -RES_PULL Up -pinname AD14 -fixed yes -set_io pci_arb_req\[1\] -iostd LVTTL -RES_PULL Up -pinname AC14 -fixed yes -set_io pci_arb_req\[2\] -iostd LVTTL -RES_PULL Up -pinname W14 -fixed yes -set_io pci_arb_req\[3\] -iostd LVTTL -RES_PULL Up -pinname W15 -fixed yes -set_io pci_arb_req\[4\] -iostd LVTTL -RES_PULL Up -pinname AC13 -fixed yes -set_io pci_arb_req\[5\] -iostd LVTTL -RES_PULL Up -pinname AC21 -fixed yes -set_io pci_arb_req\[6\] -iostd LVTTL -RES_PULL Up -pinname AC20 -fixed yes -set_io pci_arb_req\[7\] -iostd LVTTL -RES_PULL Up -pinname AD13 -fixed yes -set_io pci_cbe\[0\] -iostd PCI -pinname W8 -fixed yes -set_io pci_cbe\[1\] -iostd PCI -pinname W9 -fixed yes -set_io pci_cbe\[2\] -iostd PCI -pinname AE4 -fixed yes -set_io pci_cbe\[3\] -iostd PCI -pinname AE5 -fixed yes -set_io pci_cbe\[4\] -iostd PCI -pinname Y15 -fixed yes -set_io pci_cbe\[5\] -iostd PCI -pinname Y16 -fixed yes -set_io pci_cbe\[6\] -iostd PCI -pinname AB14 -fixed yes -set_io pci_cbe\[7\] -iostd PCI -pinname AB15 -fixed yes -set_io pci_clk -iostd PCI -pinname G14 -fixed yes -set_io pci_devsel -iostd PCI -pinname AB9 -fixed yes -set_io pci_en64 -iostd PCI -pinname AD12 -fixed yes -set_io pci_frame -iostd PCI -pinname AC9 -fixed yes -set_io pci_gnt -iostd PCI -pinname AE10 -fixed yes -set_io pci_host -iostd PCI -pinname U13 -fixed yes -set_io pci_idsel -iostd PCI -pinname U8 -fixed yes -set_io pci_irdy -iostd PCI -pinname AA9 -fixed yes -set_io pci_lock -iostd PCI -pinname Y9 -fixed yes -set_io pci_par -iostd PCI -pinname V10 -fixed yes -set_io pci_par64 -iostd PCI -pinname W13 -fixed yes -set_io pci_perr -iostd PCI -pinname V9 -fixed yes -set_io pci_req -iostd PCI -pinname AE11 -fixed yes -set_io pci_req64n -iostd PCI -OUT_DRIVE 16 -pinname AC12 -fixed yes -set_io pci_rst -iostd PCI -pinname AB8 -fixed yes -set_io pci_serr -iostd PCI -pinname AD8 -fixed yes -set_io pci_stop -iostd PCI -pinname AD5 -fixed yes -set_io pci_trdy -iostd PCI -pinname AD6 -fixed yes -set_io pciio\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U23 -fixed yes -set_io pciio\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y23 -fixed yes -set_io pciio\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA23 -fixed yes -set_io pciio\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W22 -fixed yes -set_io pciio\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W23 -fixed yes -set_io pciio\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y22 -fixed yes -set_io pciio\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y21 -fixed yes -set_io pciio\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N20 -fixed yes -set_io pciio\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P24 -fixed yes -set_io pciio\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P21 -fixed yes -set_io pciio\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R19 -fixed yes -set_io pciio\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y24 -fixed yes -set_io pciio\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R21 -fixed yes -set_io pciio\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T22 -fixed yes -set_io pciio\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W24 -fixed yes -set_io pciio\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB24 -fixed yes -set_io pciio\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA3 -fixed yes -set_io pciio\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V3 -fixed yes -set_io pciio\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W3 -fixed yes -set_io pciio\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA2 -fixed yes -set_io pciio\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB2 -fixed yes -set_io pciio\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V6 -fixed yes -set_io pciio\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U24 -fixed yes -set_io pciio\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W4 -fixed yes -set_io pciio\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U4 -fixed yes -set_io pciio\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA24 -fixed yes -set_io pciio\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V22 -fixed yes -set_io pciio\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V23 -fixed yes -set_io pciio\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U22 -fixed yes -set_io pciio\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V24 -fixed yes -set_io pciio\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V21 -fixed yes -set_io pciio\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U21 -fixed yes -set_io ramben\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y1 -fixed yes -set_io ramben\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P2 -fixed yes -set_io ramben\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K7 -fixed yes -set_io ramben\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K6 -fixed yes -set_io ramoen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P3 -fixed yes -set_io ramoen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N4 -fixed yes -set_io ramoen\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U1 -fixed yes -set_io ramoen\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T1 -fixed yes -set_io ramoen\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R2 -fixed yes -set_io ramsn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M2 -fixed yes -set_io ramsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P4 -fixed yes -set_io ramsn\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P1 -fixed yes -set_io ramsn\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P6 -fixed yes -set_io ramsn\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P5 -fixed yes -set_io read -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R7 -fixed yes -set_io resetn -iostd LVTTL -pinname D24 -fixed yes -set_io romsn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N2 -fixed yes -set_io romsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R1 -fixed yes -set_io rtsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -pinname J20 -fixed yes -set_io rtsn\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -pinname E25 -fixed yes -set_io rwen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H3 -fixed yes -set_io rwen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G2 -fixed yes -set_io rwen\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E1 -fixed yes -set_io rwen\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D1 -fixed yes -set_io rxd\[1\] -iostd LVTTL -pinname J23 -fixed yes -set_io rxd\[2\] -iostd LVTTL -pinname D25 -fixed yes -set_io sa\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D10 -fixed yes -set_io sa\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H17 -fixed yes -set_io sa\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B17 -fixed yes -set_io sa\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B16 -fixed yes -set_io sa\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C17 -fixed yes -set_io sa\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B18 -fixed yes -set_io sa\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H18 -fixed yes -set_io sa\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D9 -fixed yes -set_io sa\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A7 -fixed yes -set_io sa\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A6 -fixed yes -set_io sa\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G9 -fixed yes -set_io sa\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G8 -fixed yes -set_io sa\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A22 -fixed yes -set_io sa\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A21 -fixed yes -set_io sa\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F16 -fixed yes -set_io sa\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G17 -fixed yes -set_io sd\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D7 -fixed yes -set_io sd\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H7 -fixed yes -set_io sd\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J8 -fixed yes -set_io sd\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J7 -fixed yes -set_io sd\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B6 -fixed yes -set_io sd\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E9 -fixed yes -set_io sd\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D8 -fixed yes -set_io sd\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B12 -fixed yes -set_io sd\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C13 -fixed yes -set_io sd\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G15 -fixed yes -set_io sd\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B14 -fixed yes -set_io sd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E7 -fixed yes -set_io sd\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B13 -fixed yes -set_io sd\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H13 -fixed yes -set_io sd\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D14 -fixed yes -set_io sd\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C14 -fixed yes -set_io sd\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A16 -fixed yes -set_io sd\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A15 -fixed yes -set_io sd\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H15 -fixed yes -set_io sd\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E15 -fixed yes -set_io sd\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F15 -fixed yes -set_io sd\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A17 -fixed yes -set_io sd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G7 -fixed yes -set_io sd\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G16 -fixed yes -set_io sd\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H16 -fixed yes -set_io sd\[32\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B7 -fixed yes -set_io sd\[33\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F10 -fixed yes -set_io sd\[34\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F9 -fixed yes -set_io sd\[35\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C11 -fixed yes -set_io sd\[36\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B8 -fixed yes -set_io sd\[37\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H10 -fixed yes -set_io sd\[38\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H9 -fixed yes -set_io sd\[39\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A9 -fixed yes -set_io sd\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G6 -fixed yes -set_io sd\[40\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B9 -fixed yes -set_io sd\[41\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B11 -fixed yes -set_io sd\[42\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B10 -fixed yes -set_io sd\[43\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E11 -fixed yes -set_io sd\[44\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F11 -fixed yes -set_io sd\[45\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D12 -fixed yes -set_io sd\[46\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D11 -fixed yes -set_io sd\[47\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A11 -fixed yes -set_io sd\[48\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J18 -fixed yes -set_io sd\[49\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J19 -fixed yes -set_io sd\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B5 -fixed yes -set_io sd\[50\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B20 -fixed yes -set_io sd\[51\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B19 -fixed yes -set_io sd\[52\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E17 -fixed yes -set_io sd\[53\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F17 -fixed yes -set_io sd\[54\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B22 -fixed yes -set_io sd\[55\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B21 -fixed yes -set_io sd\[56\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G18 -fixed yes -set_io sd\[57\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G19 -fixed yes -set_io sd\[58\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C19 -fixed yes -set_io sd\[59\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C18 -fixed yes -set_io sd\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B4 -fixed yes -set_io sd\[60\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D18 -fixed yes -set_io sd\[61\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D17 -fixed yes -set_io sd\[62\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C21 -fixed yes -set_io sd\[63\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C20 -fixed yes -set_io sd\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C7 -fixed yes -set_io sd\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F8 -fixed yes -set_io sd\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F7 -fixed yes -set_io sd\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H8 -fixed yes -set_io sdcasn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K13 -fixed yes -set_io sdclk -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G12 -fixed yes -set_io sdclkfb -iostd LVTTL -pinname G13 -fixed yes -set_io sdcsn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A10 -fixed yes -set_io sdcsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J13 -fixed yes -set_io sddqm\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C9 -fixed yes -set_io sddqm\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C8 -fixed yes -set_io sddqm\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A20 -fixed yes -set_io sddqm\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A19 -fixed yes -set_io sddqm\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A5 -fixed yes -set_io sddqm\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A4 -fixed yes -set_io sddqm\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D16 -fixed yes -set_io sddqm\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D15 -fixed yes -set_io sdrasn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H11 -fixed yes -set_io sdwen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G11 -fixed yes -set_io txd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L19 -fixed yes -set_io txd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K20 -fixed yes -set_io wdogn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -RES_PULL Up -pinname D20 -fixed yes -set_io writen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P7 -fixed yes - -# SDRAM with EDAC or Reed-Solomon codec -set_io scb\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B7 -fixed yes -set_io scb\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B10 -fixed yes -set_io scb\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E11 -fixed yes -set_io scb\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F11 -fixed yes -set_io scb\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D12 -fixed yes -set_io scb\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D11 -fixed yes -set_io scb\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A11 -fixed yes -set_io scb\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F10 -fixed yes -set_io scb\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F9 -fixed yes -set_io scb\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C11 -fixed yes -set_io scb\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B8 -fixed yes -set_io scb\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H10 -fixed yes -set_io scb\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H9 -fixed yes -set_io scb\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A9 -fixed yes -set_io scb\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B9 -fixed yes -set_io scb\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B11 -fixed yes - -# LEON3FT-RTAX: GR-RTAX-MEZZ mezzanine board -set_io busainen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N23 -fixed yes -set_io busainn\[0\] -iostd LVTTL -pinname N22 -fixed yes -set_io busainp\[0\] -iostd LVTTL -pinname M22 -fixed yes -set_io busaoutin\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P17 -fixed yes -set_io busaoutn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M23 -fixed yes -set_io busaoutp\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P18 -fixed yes -set_io busbinen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N24 -fixed yes -set_io busbinn\[0\] -iostd LVTTL -pinname N18 -fixed yes -set_io busbinp\[0\] -iostd LVTTL -pinname J25 -fixed yes -set_io busboutin\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K25 -fixed yes -set_io busboutn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M24 -fixed yes -set_io busboutp\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L25 -fixed yes -# alternative names -set_io busainen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N23 -fixed yes -set_io busainn -iostd LVTTL -pinname N22 -fixed yes -set_io busainp -iostd LVTTL -pinname M22 -fixed yes -set_io busaoutin -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P17 -fixed yes -set_io busaoutn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M23 -fixed yes -set_io busaoutp -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P18 -fixed yes -set_io busbinen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N24 -fixed yes -set_io busbinn -iostd LVTTL -pinname N18 -fixed yes -set_io busbinp -iostd LVTTL -pinname J25 -fixed yes -set_io busboutin -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K25 -fixed yes -set_io busboutn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M24 -fixed yes -set_io busboutp -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L25 -fixed yes - -set_io canrx\[0\] -iostd LVTTL -pinname N25 -fixed yes -set_io cantx\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M25 -fixed yes - -# alternative names -set_io can_rxd -iostd LVTTL -pinname N25 -fixed yes -set_io can_txd -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M25 -fixed yes - -set_io spwclk -iostd LVTTL -pinname U4 -fixed yes - -# LEON3FT-RTAX: GR-AX-SPW accessory board, and GR-RTAX-MEZZ mezzanine board -set_io spw_rxd\[0\] -iostd LVDS -pinname P19 -fixed yes -set_io spw_rxd\[1\] -iostd LVDS -pinname R18 -fixed yes -set_io spw_rxd\[2\] -iostd LVDS -pinname T19 -fixed yes -set_io spw_rxd\[3\] -iostd LVDS -pinname U23 -fixed yes -set_io spw_rxdn\[0\] -iostd LVDS -pinname P20 -fixed yes -set_io spw_rxdn\[1\] -iostd LVDS -pinname T18 -fixed yes -set_io spw_rxdn\[2\] -iostd LVDS -pinname U19 -fixed yes -set_io spw_rxdn\[3\] -iostd LVDS -pinname U24 -fixed yes -set_io spw_rxs\[0\] -iostd LVDS -pinname P23 -fixed yes -set_io spw_rxs\[1\] -iostd LVDS -pinname R24 -fixed yes -set_io spw_rxs\[2\] -iostd LVDS -pinname W25 -fixed yes -set_io spw_rxs\[3\] -iostd LVDS -pinname Y24 -fixed yes -set_io spw_rxsn\[0\] -iostd LVDS -pinname R23 -fixed yes -set_io spw_rxsn\[1\] -iostd LVDS -pinname T24 -fixed yes -set_io spw_rxsn\[2\] -iostd LVDS -pinname Y25 -fixed yes -set_io spw_rxsn\[3\] -iostd LVDS -pinname AA24 -fixed yes -set_io spw_txd\[0\] -iostd LVDS -pinname P25 -fixed yes -set_io spw_txd\[1\] -iostd LVDS -pinname T25 -fixed yes -set_io spw_txd\[2\] -iostd LVDS -pinname AA25 -fixed yes -set_io spw_txd\[3\] -iostd LVDS -pinname V24 -fixed yes -set_io spw_txdn\[0\] -iostd LVDS -pinname R25 -fixed yes -set_io spw_txdn\[1\] -iostd LVDS -pinname U25 -fixed yes -set_io spw_txdn\[2\] -iostd LVDS -pinname AB25 -fixed yes -set_io spw_txdn\[3\] -iostd LVDS -pinname V23 -fixed yes -set_io spw_txs\[0\] -iostd LVDS -pinname P22 -fixed yes -set_io spw_txs\[1\] -iostd LVDS -pinname R20 -fixed yes -set_io spw_txs\[2\] -iostd LVDS -pinname U20 -fixed yes -set_io spw_txs\[3\] -iostd LVDS -pinname U22 -fixed yes -set_io spw_txsn\[0\] -iostd LVDS -pinname R22 -fixed yes -set_io spw_txsn\[1\] -iostd LVDS -pinname T20 -fixed yes -set_io spw_txsn\[2\] -iostd LVDS -pinname V20 -fixed yes -set_io spw_txsn\[3\] -iostd LVDS -pinname V22 -fixed yes - -set_location spw.swloop.0.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/rxclko_0 -fixed yes 1051 48 -set_location spw.swloop.0.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/r.shftreg -fixed yes 1052 52 -set_location spw.swloop.0.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/nr.shftreg\[0\] -fixed yes 1052 51 - -set_location spw.swloop.1.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/rxclko_0 -fixed yes 1051 34 -set_location spw.swloop.1.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/r.shftreg -fixed yes 1052 34 -set_location spw.swloop.1.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/nr.shftreg\[0\] -fixed yes 1052 33 - -set_location spw.swloop.2.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/rxclko_0 -fixed yes 1051 26 -set_location spw.swloop.2.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/r.shftreg -fixed yes 1052 26 -set_location spw.swloop.2.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/nr.shftreg\[0\] -fixed yes 1052 25 - -# LEON3FT-RTAX additions supported on GR-CPCI-TEST mezzanine board -set_io busainen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N17 -fixed yes -set_io busainn\[1\] -iostd LVTTL -pinname L24 -fixed yes -set_io busainp\[1\] -iostd LVTTL -pinname K24 -fixed yes -set_io busaoutin\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N19 -fixed yes -set_io busaoutn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M20 -fixed yes -set_io busaoutp\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M21 -fixed yes -set_io busbinen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G25 -fixed yes -set_io busbinn\[1\] -iostd LVTTL -pinname L22 -fixed yes -set_io busbinp\[1\] -iostd LVTTL -pinname K22 -fixed yes -set_io busboutin\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L20 -fixed yes -set_io busboutn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F25 -fixed yes -set_io busboutp\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L21 -fixed yes - -#set_io canen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H24 -fixed yes -#set_io canen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M19 -fixed yes - -set_io romsn\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H24 -fixed yes -set_io romsn\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M19 -fixed yes - -set_io spw_clk -iostd LVTTL -pinname G14 -fixed yes - -set_io dsutck -iostd LVCMOS25 -pinname U23 -fixed yes -set_io dsutdi -iostd LVCMOS25 -pinname Y24 -fixed yes -set_io dsutdo -iostd LVCMOS25 -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V22 -fixed yes -set_io dsutms -iostd LVCMOS25 -pinname V23 -fixed yes - -# LEON3FT-RTAX additions supported on GR-CPCI-1553 mezzanine board -set_io canrx\[1\] -iostd LVTTL -pinname J24 -fixed yes -set_io cantx\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M18 -fixed yes - -# GPIO pins 16-31: -set_io gpio\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N19 -fixed yes -set_io gpio\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M21 -fixed yes -set_io gpio\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M20 -fixed yes -set_io gpio\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N17 -fixed yes -set_io gpio\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K24 -fixed yes -set_io gpio\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L24 -fixed yes -set_io gpio\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L20 -fixed yes -set_io gpio\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L21 -fixed yes -set_io gpio\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F25 -fixed yes -set_io gpio\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G25 -fixed yes -set_io gpio\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K22 -fixed yes -set_io gpio\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L22 -fixed yes -set_io gpio\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N16 -fixed yes -set_io gpio\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L23 -fixed yes -set_io gpio\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V3 -fixed yes -set_io gpio\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA2 -fixed yes - - -# Ethernet pins for GR-CPCI-TEST mezzanine board and GR-XC3S-RMII -set_io emdio -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname U4 -fixed yes -set_io emdc -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname V6 -fixed yes -set_io erx_clk -iostd LVTTL -pinname N19 -fixed yes -set_io erx_dv -iostd LVTTL -pinname M21 -fixed yes -set_io erx_crs -iostd LVTTL -pinname M20 -fixed yes -set_io erx_er -iostd LVTTL -pinname N17 -fixed yes -set_io erx_col -iostd LVTTL -pinname K24 -fixed yes -set_io erxd\[0\] -iostd LVTTL -pinname L24 -fixed yes -set_io erxd\[1\] -iostd LVTTL -pinname L20 -fixed yes -set_io erxd\[2\] -iostd LVTTL -pinname L21 -fixed yes -set_io erxd\[3\] -iostd LVTTL -pinname F25 -fixed yes -set_io etx_clk -iostd LVTTL -pinname G25 -fixed yes -set_io etx_en -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname V3 -fixed yes -set_io etxd\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname K22 -fixed yes -set_io etxd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname L22 -fixed yes -set_io etxd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname N16 -fixed yes -set_io etxd\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname L23 -fixed yes -set_io etx_er -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AA2 -fixed yes -set_io emdint -iostd LVTTL -pinname AA2 -fixed yes - -set_io e0mdio -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname U4 -fixed yes -set_io e0mdc -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname V6 -fixed yes -set_io e0rx_clk -iostd LVTTL -pinname N19 -fixed yes -set_io e0rx_dv -iostd LVTTL -pinname M21 -fixed yes -set_io e0rx_crs -iostd LVTTL -pinname M20 -fixed yes -set_io e0rx_er -iostd LVTTL -pinname N17 -fixed yes -set_io e0rx_col -iostd LVTTL -pinname K24 -fixed yes -set_io e0rxd\[0\] -iostd LVTTL -pinname L24 -fixed yes -set_io e0rxd\[1\] -iostd LVTTL -pinname L20 -fixed yes -set_io e0rxd\[2\] -iostd LVTTL -pinname L21 -fixed yes -set_io e0rxd\[3\] -iostd LVTTL -pinname F25 -fixed yes -set_io e0tx_clk -iostd LVTTL -pinname G25 -fixed yes -set_io e0tx_en -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname V3 -fixed yes -set_io e0tx_er -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AA2 -fixed yes -set_io e0mdint -iostd LVTTL -pinname AA2 -fixed yes -set_io e0txd\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname K22 -fixed yes -set_io e0txd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname L22 -fixed yes -set_io e0txd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname N16 -fixed yes -set_io e0txd\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname L23 -fixed yes - -set_io e1mdio -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname U22 -fixed yes -set_io e1mdc -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname V21 -fixed yes -set_io e1rx_clk -iostd LVTTL -pinname U21 -fixed yes -set_io e1rx_dv -iostd LVTTL -pinname AA23 -fixed yes -set_io e1rx_crs -iostd LVTTL -pinname Y23 -fixed yes -set_io e1rx_er -iostd LVTTL -pinname W22 -fixed yes -set_io e1rx_col -iostd LVTTL -pinname V24 -fixed yes -set_io e1rxd\[0\] -iostd LVTTL -pinname W23 -fixed yes -set_io e1rxd\[1\] -iostd LVTTL -pinname Y22 -fixed yes -set_io e1rxd\[2\] -iostd LVTTL -pinname Y21 -fixed yes -set_io e1rxd\[3\] -iostd LVTTL -pinname N20 -fixed yes -set_io e1tx_clk -iostd LVTTL -pinname P24 -fixed yes -set_io e1tx_en -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname R19 -fixed yes -set_io e1tx_er -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname P21 -fixed yes -set_io e1mdint -iostd LVTTL -pinname P21 -fixed yes -set_io e1txd\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname R21 -fixed yes -set_io e1txd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname T22 -fixed yes -set_io e1txd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname W24 -fixed yes -set_io e1txd\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AB24 -fixed yes - -# Extra PCI interrupt signals: -# PCI_INTA -set_io pci_int\[0\] -iostd PCI -pinname AA3 -fixed yes - -# PCI_INTB -set_io pci_int\[1\] -iostd PCI -pinname W3 -fixed yes - -# PCI_INTC -set_io pci_int\[2\] -iostd PCI -pinname AB2 -fixed yes - -# PCI_INTD -set_io pci_int\[3\] -iostd PCI -pinname W4 -fixed yes -set_io pci_int -iostd PCI -pinname W4 -fixed yes - -# FIFO pins for GR-CPCI-TEST mezzanine board and GR-FIFO test board -set_io fifoefn -iostd LVTTL -RES_PULL Up -pinname U4 -fixed yes -set_io fifoffn -iostd LVTTL -RES_PULL Up -pinname V6 -fixed yes -set_io fifowen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V3 -fixed yes -set_io fiforen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA2 -fixed yes -set_io fifop\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N25 -fixed yes -set_io fifop\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M25 -fixed yes -set_io fifod\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M18 -fixed yes -set_io fifod\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J24 -fixed yes -set_io fifod\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L23 -fixed yes -set_io fifod\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N16 -fixed yes -set_io fifod\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L22 -fixed yes -set_io fifod\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K22 -fixed yes -set_io fifod\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G25 -fixed yes -set_io fifod\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F25 -fixed yes -set_io fifod\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L21 -fixed yes -set_io fifod\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L20 -fixed yes -set_io fifod\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L24 -fixed yes -set_io fifod\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K24 -fixed yes -set_io fifod\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N17 -fixed yes -set_io fifod\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M20 -fixed yes -set_io fifod\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M21 -fixed yes -set_io fifod\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N19 -fixed yes diff --git a/boards/gr-cpci-ax/designer_624_CCGA.sdc b/boards/gr-cpci-ax/designer_624_CCGA.sdc deleted file mode 100644 index 12345a15..00000000 --- a/boards/gr-cpci-ax/designer_624_CCGA.sdc +++ /dev/null @@ -1,33 +0,0 @@ -################################################################################ -# Actel Designer Software Release Designer -################################################################################ - -######## Clock Constraints ######## - -create_clock -period 40.0000 [get_ports {clk}] - -#create_clock -period 30.0000 [get_ports {pci_clk}] -# -#create_clock -period 10.0000 [get_ports {spw_clk}] -# -#create_clock -period 10.0000 [get_ports {spwclk}] - - -######## Delay Constraints ######## - -#set_max_delay 7.00 -from [all_inputs] -to [get_clocks {pci_clk}] -#set_max_delay 11.00 -from [get_clocks {pci_clk}] -to [all_outputs] - -#set_max_delay 11.00 -from [all_inputs] -to [all_outputs] - -#set_max_delay 5.00 -from [all_inputs] -to [get_clocks {clk}] -#set_max_delay 10.00 -from [get_clocks {clk}] -to [all_outputs] - - -######## False Path Constraints ######## - - -######## OutPut load Constraints ######## - - -######## Multicycle Constraints ######## diff --git a/boards/gr-cpci-ax/designer_896_FBGA.pdc b/boards/gr-cpci-ax/designer_896_FBGA.pdc deleted file mode 100644 index 646dd6f7..00000000 --- a/boards/gr-cpci-ax/designer_896_FBGA.pdc +++ /dev/null @@ -1,670 +0,0 @@ -# Actel Physical design constraints file -# Family: Axcelerator , Die: AX2000 , Package: fbga896 - -# -# I/O constraints -# - -set_io address\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R8 -fixed yes -set_io address\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L1 -fixed yes -set_io address\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M1 -fixed yes -set_io address\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M4 -fixed yes -set_io address\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N7 -fixed yes -set_io address\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N6 -fixed yes -set_io address\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L3 -fixed yes -set_io address\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M3 -fixed yes -set_io address\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N8 -fixed yes -set_io address\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N9 -fixed yes -set_io address\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L6 -fixed yes -set_io address\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R9 -fixed yes -set_io address\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K4 -fixed yes -set_io address\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L4 -fixed yes -set_io address\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J1 -fixed yes -set_io address\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K1 -fixed yes -set_io address\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K5 -fixed yes -set_io address\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L5 -fixed yes -set_io address\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J4 -fixed yes -set_io address\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J3 -fixed yes -set_io address\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R4 -fixed yes -set_io address\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R7 -fixed yes -set_io address\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R6 -fixed yes -set_io address\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P9 -fixed yes -set_io address\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P4 -fixed yes -set_io address\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P5 -fixed yes -set_io address\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P7 -fixed yes -set_io address\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P6 -fixed yes -set_io bexcn -iostd LVTTL -RES_PULL Up -pinname T8 -fixed yes -set_io brdyn -iostd LVTTL -RES_PULL Up -pinname T1 -fixed yes -set_io cb\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD4 -fixed yes -set_io cb\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD3 -fixed yes -set_io cb\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE3 -fixed yes -set_io cb\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB3 -fixed yes -set_io cb\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC3 -fixed yes -set_io cb\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD2 -fixed yes -set_io cb\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y6 -fixed yes -set_io cb\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA6 -fixed yes -set_io clk -iostd LVTTL -pinname D15 -fixed yes -set_io ctsn\[1\] -iostd LVTTL -pinname K25 -fixed yes -set_io ctsn\[2\] -iostd LVTTL -pinname L24 -fixed yes -set_io data\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K6 -fixed yes -set_io data\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F4 -fixed yes -set_io data\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F3 -fixed yes -set_io data\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F5 -fixed yes -set_io data\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G5 -fixed yes -set_io data\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G6 -fixed yes -set_io data\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H6 -fixed yes -set_io data\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB1 -fixed yes -set_io data\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE2 -fixed yes -set_io data\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W8 -fixed yes -set_io data\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y8 -fixed yes -set_io data\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D1 -fixed yes -set_io data\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y5 -fixed yes -set_io data\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA5 -fixed yes -set_io data\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA2 -fixed yes -set_io data\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W6 -fixed yes -set_io data\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W7 -fixed yes -set_io data\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y4 -fixed yes -set_io data\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V8 -fixed yes -set_io data\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y1 -fixed yes -set_io data\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y2 -fixed yes -set_io data\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V7 -fixed yes -set_io data\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D2 -fixed yes -set_io data\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V6 -fixed yes -set_io data\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W3 -fixed yes -set_io data\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G4 -fixed yes -set_io data\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H4 -fixed yes -set_io data\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F2 -fixed yes -set_io data\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F1 -fixed yes -set_io data\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E2 -fixed yes -set_io data\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H7 -fixed yes -set_io data\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J7 -fixed yes -set_io dsuact -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K23 -fixed yes -set_io dsubre -iostd LVTTL -pinname J24 -fixed yes -set_io dsuen -iostd LVTTL -pinname J23 -fixed yes -set_io dsurx -iostd LVTTL -pinname G25 -fixed yes -set_io dsutx -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G26 -fixed yes -set_io errorn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -RES_PULL Up -pinname E25 -fixed yes -set_io geniohigh\[100\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V24 -fixed yes -set_io geniohigh\[101\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W28 -fixed yes -set_io geniohigh\[102\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W24 -fixed yes -set_io geniohigh\[103\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W27 -fixed yes -set_io geniohigh\[104\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y28 -fixed yes -set_io geniohigh\[105\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y30 -fixed yes -set_io geniohigh\[106\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y27 -fixed yes -set_io geniohigh\[107\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W30 -fixed yes -set_io geniohigh\[108\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W23 -fixed yes -set_io geniohigh\[109\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA30 -fixed yes -set_io geniohigh\[110\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y23 -fixed yes -set_io geniohigh\[111\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB30 -fixed yes -set_io geniohigh\[112\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA24 -fixed yes -set_io geniohigh\[113\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF29 -fixed yes -set_io geniohigh\[114\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y24 -fixed yes -set_io geniohigh\[115\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF30 -fixed yes -set_io geniohigh\[92\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T24 -fixed yes -set_io geniohigh\[93\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U27 -fixed yes -set_io geniohigh\[94\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U24 -fixed yes -set_io geniohigh\[95\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V27 -fixed yes -set_io geniohigh\[96\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V25 -fixed yes -set_io geniohigh\[97\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W29 -fixed yes -set_io geniohigh\[98\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U25 -fixed yes -set_io geniohigh\[99\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V29 -fixed yes -set_io geniolow\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R30 -fixed yes -set_io geniolow\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R29 -fixed yes -set_io geniolow\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R25 -fixed yes -set_io geniolow\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R24 -fixed yes -set_io geniolow\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P30 -fixed yes -set_io geniolow\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P29 -fixed yes -set_io geniolow\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P26 -fixed yes -set_io geniolow\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R26 -fixed yes -set_io geniolow\[32\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P27 -fixed yes -set_io geniolow\[33\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P28 -fixed yes -set_io geniolow\[34\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P24 -fixed yes -set_io geniolow\[35\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P25 -fixed yes -set_io geniolow\[36\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N29 -fixed yes -set_io geniolow\[37\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N24 -fixed yes -set_io geniolow\[38\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N25 -fixed yes -set_io geniolow\[39\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N27 -fixed yes -set_io geniolow\[40\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N28 -fixed yes -set_io geniolow\[41\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N26 -fixed yes -set_io geniolow\[42\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L29 -fixed yes -set_io geniolow\[43\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M29 -fixed yes -set_io geniolow\[44\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N23 -fixed yes -set_io geniolow\[45\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N22 -fixed yes -set_io geniolow\[46\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L28 -fixed yes -set_io geniolow\[47\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M28 -fixed yes -set_io geniolow\[48\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L27 -fixed yes -set_io geniolow\[49\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M27 -fixed yes -set_io geniolow\[50\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M24 -fixed yes -set_io geniolow\[51\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M23 -fixed yes -set_io geniolow\[52\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K29 -fixed yes -set_io geniolow\[53\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K30 -fixed yes -set_io geniolow\[54\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L25 -fixed yes -set_io geniolow\[55\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M25 -fixed yes -set_io gpio\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F30 -fixed yes -set_io gpio\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D25 -fixed yes -set_io gpio\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C25 -fixed yes -set_io gpio\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G23 -fixed yes -set_io gpio\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G22 -fixed yes -set_io gpio\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B27 -fixed yes -set_io gpio\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A27 -fixed yes -set_io gpio\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G30 -fixed yes -set_io gpio\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F28 -fixed yes -set_io gpio\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G28 -fixed yes -set_io gpio\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H25 -fixed yes -set_io gpio\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H26 -fixed yes -set_io gpio\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D29 -fixed yes -set_io gpio\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E29 -fixed yes -set_io gpio\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F23 -fixed yes -set_io gpio\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E23 -fixed yes -set_io iosn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U2 -fixed yes -set_io oen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V2 -fixed yes -set_io pci_66 -iostd PCI -pinname AC15 -fixed yes -set_io pci_ack64n -iostd PCI -pinname AG15 -fixed yes -set_io pci_ad\[0\] -iostd PCI -pinname AE14 -fixed yes -set_io pci_ad\[10\] -iostd PCI -pinname AG11 -fixed yes -set_io pci_ad\[11\] -iostd PCI -pinname AG12 -fixed yes -set_io pci_ad\[12\] -iostd PCI -pinname AK11 -fixed yes -set_io pci_ad\[13\] -iostd PCI -pinname AK12 -fixed yes -set_io pci_ad\[14\] -iostd PCI -pinname AC12 -fixed yes -set_io pci_ad\[15\] -iostd PCI -pinname AJ10 -fixed yes -set_io pci_ad\[16\] -iostd PCI -pinname AD9 -fixed yes -set_io pci_ad\[17\] -iostd PCI -pinname AG7 -fixed yes -set_io pci_ad\[18\] -iostd PCI -pinname AH7 -fixed yes -set_io pci_ad\[19\] -iostd PCI -pinname AC8 -fixed yes -set_io pci_ad\[1\] -iostd PCI -pinname AD14 -fixed yes -set_io pci_ad\[20\] -iostd PCI -pinname AC9 -fixed yes -set_io pci_ad\[21\] -iostd PCI -pinname AH6 -fixed yes -set_io pci_ad\[22\] -iostd PCI -pinname AG6 -fixed yes -set_io pci_ad\[23\] -iostd PCI -pinname AF6 -fixed yes -set_io pci_ad\[24\] -iostd PCI -pinname AF7 -fixed yes -set_io pci_ad\[25\] -iostd PCI -pinname AG2 -fixed yes -set_io pci_ad\[26\] -iostd PCI -pinname AG1 -fixed yes -set_io pci_ad\[27\] -iostd PCI -pinname AE7 -fixed yes -set_io pci_ad\[28\] -iostd PCI -pinname AE8 -fixed yes -set_io pci_ad\[29\] -iostd PCI -pinname AJ4 -fixed yes -set_io pci_ad\[2\] -iostd PCI -pinname AB13 -fixed yes -set_io pci_ad\[30\] -iostd PCI -pinname AK4 -fixed yes -set_io pci_ad\[31\] -iostd PCI -pinname AE4 -fixed yes -set_io pci_ad\[32\] -iostd PCI -pinname AG25 -fixed yes -set_io pci_ad\[33\] -iostd PCI -pinname AG26 -fixed yes -set_io pci_ad\[34\] -iostd PCI -pinname AJ25 -fixed yes -set_io pci_ad\[35\] -iostd PCI -pinname AE23 -fixed yes -set_io pci_ad\[36\] -iostd PCI -pinname AE24 -fixed yes -set_io pci_ad\[37\] -iostd PCI -pinname AH24 -fixed yes -set_io pci_ad\[38\] -iostd PCI -pinname AH25 -fixed yes -set_io pci_ad\[39\] -iostd PCI -pinname AD22 -fixed yes -set_io pci_ad\[3\] -iostd PCI -pinname AC14 -fixed yes -set_io pci_ad\[40\] -iostd PCI -pinname AC22 -fixed yes -set_io pci_ad\[41\] -iostd PCI -pinname AF23 -fixed yes -set_io pci_ad\[42\] -iostd PCI -pinname AE21 -fixed yes -set_io pci_ad\[43\] -iostd PCI -pinname AE22 -fixed yes -set_io pci_ad\[44\] -iostd PCI -pinname AJ23 -fixed yes -set_io pci_ad\[45\] -iostd PCI -pinname AJ24 -fixed yes -set_io pci_ad\[46\] -iostd PCI -pinname AH23 -fixed yes -set_io pci_ad\[47\] -iostd PCI -pinname AD21 -fixed yes -set_io pci_ad\[48\] -iostd PCI -pinname AC21 -fixed yes -set_io pci_ad\[49\] -iostd PCI -pinname AK22 -fixed yes -set_io pci_ad\[4\] -iostd PCI -pinname AJ13 -fixed yes -set_io pci_ad\[50\] -iostd PCI -pinname AG21 -fixed yes -set_io pci_ad\[51\] -iostd PCI -pinname AG22 -fixed yes -set_io pci_ad\[52\] -iostd PCI -pinname AE20 -fixed yes -set_io pci_ad\[53\] -iostd PCI -pinname AJ21 -fixed yes -set_io pci_ad\[54\] -iostd PCI -pinname AD19 -fixed yes -set_io pci_ad\[55\] -iostd PCI -pinname AJ20 -fixed yes -set_io pci_ad\[56\] -iostd PCI -pinname AK20 -fixed yes -set_io pci_ad\[57\] -iostd PCI -pinname AC19 -fixed yes -set_io pci_ad\[58\] -iostd PCI -pinname AC20 -fixed yes -set_io pci_ad\[59\] -iostd PCI -pinname AG19 -fixed yes -set_io pci_ad\[5\] -iostd PCI -pinname AH11 -fixed yes -set_io pci_ad\[60\] -iostd PCI -pinname AG20 -fixed yes -set_io pci_ad\[61\] -iostd PCI -pinname AH19 -fixed yes -set_io pci_ad\[62\] -iostd PCI -pinname AK19 -fixed yes -set_io pci_ad\[63\] -iostd PCI -pinname AJ19 -fixed yes -set_io pci_ad\[6\] -iostd PCI -pinname AH12 -fixed yes -set_io pci_ad\[7\] -iostd PCI -pinname AC13 -fixed yes -set_io pci_ad\[8\] -iostd PCI -pinname AD13 -fixed yes -set_io pci_ad\[9\] -iostd PCI -pinname AE13 -fixed yes -set_io pci_arb_gnt\[0\] -iostd PCI -pinname AJ17 -fixed yes -set_io pci_arb_gnt\[1\] -iostd PCI -pinname AJ18 -fixed yes -set_io pci_arb_gnt\[2\] -iostd PCI -pinname AD17 -fixed yes -set_io pci_arb_gnt\[3\] -iostd PCI -pinname AK17 -fixed yes -set_io pci_arb_gnt\[4\] -iostd PCI -pinname AC17 -fixed yes -set_io pci_arb_gnt\[5\] -iostd PCI -pinname AF25 -fixed yes -set_io pci_arb_gnt\[6\] -iostd PCI -pinname AF24 -fixed yes -set_io pci_arb_gnt\[7\] -iostd PCI -pinname AB17 -fixed yes -set_io pci_arb_req\[0\] -iostd LVTTL -RES_PULL Up -pinname AJ16 -fixed yes -set_io pci_arb_req\[1\] -iostd LVTTL -RES_PULL Up -pinname AK16 -fixed yes -set_io pci_arb_req\[2\] -iostd LVTTL -RES_PULL Up -pinname AG18 -fixed yes -set_io pci_arb_req\[3\] -iostd LVTTL -RES_PULL Up -pinname AH18 -fixed yes -set_io pci_arb_req\[4\] -iostd LVTTL -RES_PULL Up -pinname AG16 -fixed yes -set_io pci_arb_req\[5\] -iostd LVTTL -RES_PULL Up -pinname AG30 -fixed yes -set_io pci_arb_req\[6\] -iostd LVTTL -RES_PULL Up -pinname AG29 -fixed yes -set_io pci_arb_req\[7\] -iostd LVTTL -RES_PULL Up -pinname AG17 -fixed yes -set_io pci_cbe\[0\] -iostd PCI -pinname AF9 -fixed yes -set_io pci_cbe\[1\] -iostd PCI -pinname AF10 -fixed yes -set_io pci_cbe\[2\] -iostd PCI -pinname AH8 -fixed yes -set_io pci_cbe\[3\] -iostd PCI -pinname AH9 -fixed yes -set_io pci_cbe\[4\] -iostd PCI -pinname AC18 -fixed yes -set_io pci_cbe\[5\] -iostd PCI -pinname AB18 -fixed yes -set_io pci_cbe\[6\] -iostd PCI -pinname AE18 -fixed yes -set_io pci_cbe\[7\] -iostd PCI -pinname AD18 -fixed yes -set_io pci_clk -iostd PCI -pinname E16 -fixed yes -set_io pci_devsel -iostd PCI -pinname AC10 -fixed yes -set_io pci_en64 -iostd PCI -pinname AH13 -fixed yes -set_io pci_frame -iostd PCI -pinname AK9 -fixed yes -set_io pci_gnt -iostd PCI -pinname AK15 -fixed yes -set_io pci_host -iostd PCI -pinname AB14 -fixed yes -set_io pci_idsel -iostd PCI -pinname AK6 -fixed yes -set_io pci_irdy -iostd PCI -pinname AE9 -fixed yes -set_io pci_lock -iostd PCI -pinname AE10 -fixed yes -set_io pci_par -iostd PCI -pinname AD11 -fixed yes -set_io pci_par64 -iostd PCI -pinname AG14 -fixed yes -set_io pci_perr -iostd PCI -pinname AC11 -fixed yes -set_io pci_req -iostd PCI -pinname AJ15 -fixed yes -set_io pci_req64n -iostd PCI -pinname AG13 -fixed yes -set_io pci_rst -iostd PCI -pinname AD8 -fixed yes -set_io pci_serr -iostd PCI -pinname AJ11 -fixed yes -set_io pci_stop -iostd PCI -pinname AJ7 -fixed yes -set_io pci_trdy -iostd PCI -pinname AJ8 -fixed yes -set_io pciio\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD29 -fixed yes -set_io pciio\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD25 -fixed yes -set_io pciio\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC25 -fixed yes -set_io pciio\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF27 -fixed yes -set_io pciio\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE27 -fixed yes -set_io pciio\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB23 -fixed yes -set_io pciio\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA23 -fixed yes -set_io pciio\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T27 -fixed yes -set_io pciio\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T30 -fixed yes -set_io pciio\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T22 -fixed yes -set_io pciio\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V23 -fixed yes -set_io pciio\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC27 -fixed yes -set_io pciio\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V26 -fixed yes -set_io pciio\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y25 -fixed yes -set_io pciio\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD30 -fixed yes -set_io pciio\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AG28 -fixed yes -set_io pciio\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF4 -fixed yes -set_io pciio\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB7 -fixed yes -set_io pciio\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC7 -fixed yes -set_io pciio\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD5 -fixed yes -set_io pciio\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE5 -fixed yes -set_io pciio\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF1 -fixed yes -set_io pciio\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE29 -fixed yes -set_io pciio\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF2 -fixed yes -set_io pciio\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC4 -fixed yes -set_io pciio\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD27 -fixed yes -set_io pciio\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC26 -fixed yes -set_io pciio\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE28 -fixed yes -set_io pciio\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB26 -fixed yes -set_io pciio\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD28 -fixed yes -set_io pciio\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE26 -fixed yes -set_io pciio\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD26 -fixed yes -set_io ramben\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W4 -fixed yes -set_io ramben\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U8 -fixed yes -set_io ramben\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L8 -fixed yes -set_io ramben\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L7 -fixed yes -set_io ramoen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U1 -fixed yes -set_io ramoen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T7 -fixed yes -set_io ramoen\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W2 -fixed yes -set_io ramoen\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W1 -fixed yes -set_io ramoen\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U9 -fixed yes -set_io ramsn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R2 -fixed yes -set_io ramsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T6 -fixed yes -set_io ramsn\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U3 -fixed yes -set_io ramsn\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U4 -fixed yes -set_io ramsn\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U7 -fixed yes -set_io read -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U5 -fixed yes -set_io resetn -iostd LVTTL -pinname H24 -fixed yes -set_io romsn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T2 -fixed yes -set_io romsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V3 -fixed yes -set_io rtsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K24 -fixed yes -set_io rtsn\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K27 -fixed yes -set_io rwen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J6 -fixed yes -set_io rwen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K7 -fixed yes -set_io rwen\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H2 -fixed yes -set_io rwen\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G2 -fixed yes -set_io rxd\[1\] -iostd LVTTL -pinname H28 -fixed yes -set_io rxd\[2\] -iostd LVTTL -pinname J27 -fixed yes -set_io sa\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D10 -fixed yes -set_io sa\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F19 -fixed yes -set_io sa\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A22 -fixed yes -set_io sa\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A21 -fixed yes -set_io sa\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G20 -fixed yes -set_io sa\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B21 -fixed yes -set_io sa\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D21 -fixed yes -set_io sa\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D9 -fixed yes -set_io sa\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C9 -fixed yes -set_io sa\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C8 -fixed yes -set_io sa\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D11 -fixed yes -set_io sa\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E11 -fixed yes -set_io sa\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C20 -fixed yes -set_io sa\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C19 -fixed yes -set_io sa\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B20 -fixed yes -set_io sa\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F20 -fixed yes -set_io sd\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B4 -fixed yes -set_io sd\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E7 -fixed yes -set_io sd\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H10 -fixed yes -set_io sd\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G10 -fixed yes -set_io sd\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F9 -fixed yes -set_io sd\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E10 -fixed yes -set_io sd\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F10 -fixed yes -set_io sd\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A15 -fixed yes -set_io sd\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E15 -fixed yes -set_io sd\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E17 -fixed yes -set_io sd\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C17 -fixed yes -set_io sd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A4 -fixed yes -set_io sd\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D17 -fixed yes -set_io sd\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A16 -fixed yes -set_io sd\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H17 -fixed yes -set_io sd\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J17 -fixed yes -set_io sd\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A17 -fixed yes -set_io sd\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B17 -fixed yes -set_io sd\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J18 -fixed yes -set_io sd\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F18 -fixed yes -set_io sd\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G18 -fixed yes -set_io sd\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B18 -fixed yes -set_io sd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F8 -fixed yes -set_io sd\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H19 -fixed yes -set_io sd\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G19 -fixed yes -set_io sd\[32\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B8 -fixed yes -set_io sd\[33\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A10 -fixed yes -set_io sd\[34\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A9 -fixed yes -set_io sd\[35\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B11 -fixed yes -set_io sd\[36\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B10 -fixed yes -set_io sd\[37\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D12 -fixed yes -set_io sd\[38\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E12 -fixed yes -set_io sd\[39\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C12 -fixed yes -set_io sd\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F7 -fixed yes -set_io sd\[40\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C11 -fixed yes -set_io sd\[41\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A12 -fixed yes -set_io sd\[42\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A11 -fixed yes -set_io sd\[43\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F13 -fixed yes -set_io sd\[44\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G13 -fixed yes -set_io sd\[45\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H13 -fixed yes -set_io sd\[46\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J13 -fixed yes -set_io sd\[47\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B13 -fixed yes -set_io sd\[48\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H21 -fixed yes -set_io sd\[49\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G21 -fixed yes -set_io sd\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D6 -fixed yes -set_io sd\[50\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D22 -fixed yes -set_io sd\[51\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C22 -fixed yes -set_io sd\[52\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A25 -fixed yes -set_io sd\[53\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A24 -fixed yes -set_io sd\[54\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F22 -fixed yes -set_io sd\[55\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E22 -fixed yes -set_io sd\[56\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E21 -fixed yes -set_io sd\[57\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C24 -fixed yes -set_io sd\[58\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D24 -fixed yes -set_io sd\[59\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D23 -fixed yes -set_io sd\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E6 -fixed yes -set_io sd\[60\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H23 -fixed yes -set_io sd\[61\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H22 -fixed yes -set_io sd\[62\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B25 -fixed yes -set_io sd\[63\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B24 -fixed yes -set_io sd\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B5 -fixed yes -set_io sd\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H8 -fixed yes -set_io sd\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G8 -fixed yes -set_io sd\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D7 -fixed yes -set_io sdcasn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E13 -fixed yes -set_io sdclk -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D14 -fixed yes -set_io sdclkfb -iostd LVTTL -pinname C14 -fixed yes -set_io sdcsn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B12 -fixed yes -set_io sdcsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E14 -fixed yes -set_io sddqm\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F11 -fixed yes -set_io sddqm\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G11 -fixed yes -set_io sddqm\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B19 -fixed yes -set_io sddqm\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A19 -fixed yes -set_io sddqm\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A7 -fixed yes -set_io sddqm\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B7 -fixed yes -set_io sddqm\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E20 -fixed yes -set_io sddqm\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E19 -fixed yes -set_io sdrasn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B14 -fixed yes -set_io sdwen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A14 -fixed yes -set_io txd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L23 -fixed yes -set_io txd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K26 -fixed yes -set_io wdogn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -RES_PULL Up -pinname F25 -fixed yes -set_io writen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T5 -fixed yes - -# SDRAM with EDAC or Reed-Solomon codec -set_io scb\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B8 -fixed yes -set_io scb\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A11 -fixed yes -set_io scb\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F13 -fixed yes -set_io scb\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G13 -fixed yes -set_io scb\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H13 -fixed yes -set_io scb\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J13 -fixed yes -set_io scb\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B13 -fixed yes -set_io scb\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A10 -fixed yes -set_io scb\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A9 -fixed yes -set_io scb\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B11 -fixed yes -set_io scb\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B10 -fixed yes -set_io scb\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D12 -fixed yes -set_io scb\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E12 -fixed yes -set_io scb\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C12 -fixed yes -set_io scb\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C11 -fixed yes -set_io scb\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A12 -fixed yes - -# LEON3FT-RTAX: GR-RTAX-MEZZ mezzanine board -set_io busainen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P29 -fixed yes -set_io busainn\[0\] -iostd LVTTL -pinname R26 -fixed yes -set_io busainp\[0\] -iostd LVTTL -pinname P26 -fixed yes -set_io busaoutin\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R25 -fixed yes -set_io busaoutn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P30 -fixed yes -set_io busaoutp\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R24 -fixed yes -set_io busbinen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P25 -fixed yes -set_io busbinn\[0\] -iostd LVTTL -pinname N24 -fixed yes -set_io busbinp\[0\] -iostd LVTTL -pinname N29 -fixed yes -set_io busboutin\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P27 -fixed yes -set_io busboutn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P24 -fixed yes -set_io busboutp\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P28 -fixed yes -# alternative names -set_io busainen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P29 -fixed yes -set_io busainn -iostd LVTTL -pinname R26 -fixed yes -set_io busainp -iostd LVTTL -pinname P26 -fixed yes -set_io busaoutin -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R25 -fixed yes -set_io busaoutn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P30 -fixed yes -set_io busaoutp -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R24 -fixed yes -set_io busbinen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P25 -fixed yes -set_io busbinn -iostd LVTTL -pinname N24 -fixed yes -set_io busbinp -iostd LVTTL -pinname N29 -fixed yes -set_io busboutin -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P27 -fixed yes -set_io busboutn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P24 -fixed yes -set_io busboutp -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P28 -fixed yes - -set_io canrx\[0\] -iostd LVTTL -pinname R29 -fixed yes -set_io cantx\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R30 -fixed yes - -# alternative names -set_io can_rxd -iostd LVTTL -pinname R29 -fixed yes -set_io can_txd -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R30 -fixed yes - -set_io spwclk -iostd LVTTL -pinname AC4 -fixed yes - -# LEON3FT-RTAX: GR-AX-SPW accessory board, and GR-RTAX-MEZZ mezzanine board -set_io spw_rxd\[0\] -iostd LVDS -pinname T24 -fixed yes -set_io spw_rxd\[1\] -iostd LVDS -pinname V24 -fixed yes -set_io spw_rxd\[2\] -iostd LVDS -pinname W23 -fixed yes -set_io spw_rxd\[3\] -iostd LVDS -pinname AD29 -fixed yes -set_io spw_rxdn\[0\] -iostd LVDS -pinname U24 -fixed yes -set_io spw_rxdn\[1\] -iostd LVDS -pinname W24 -fixed yes -set_io spw_rxdn\[2\] -iostd LVDS -pinname Y23 -fixed yes -set_io spw_rxdn\[3\] -iostd LVDS -pinname AE29 -fixed yes -set_io spw_rxs\[0\] -iostd LVDS -pinname U27 -fixed yes -set_io spw_rxs\[1\] -iostd LVDS -pinname W28 -fixed yes -set_io spw_rxs\[2\] -iostd LVDS -pinname AA30 -fixed yes -set_io spw_rxs\[3\] -iostd LVDS -pinname AC27 -fixed yes -set_io spw_rxsn\[0\] -iostd LVDS -pinname V27 -fixed yes -set_io spw_rxsn\[1\] -iostd LVDS -pinname W27 -fixed yes -set_io spw_rxsn\[2\] -iostd LVDS -pinname AB30 -fixed yes -set_io spw_rxsn\[3\] -iostd LVDS -pinname AD27 -fixed yes -set_io spw_txd\[0\] -iostd LVDS -pinname V29 -fixed yes -set_io spw_txd\[1\] -iostd LVDS -pinname W30 -fixed yes -set_io spw_txd\[2\] -iostd LVDS -pinname AF30 -fixed yes -set_io spw_txd\[3\] -iostd LVDS -pinname AD28 -fixed yes -set_io spw_txdn\[0\] -iostd LVDS -pinname W29 -fixed yes -set_io spw_txdn\[1\] -iostd LVDS -pinname Y30 -fixed yes -set_io spw_txdn\[2\] -iostd LVDS -pinname AF29 -fixed yes -set_io spw_txdn\[3\] -iostd LVDS -pinname AE28 -fixed yes -set_io spw_txs\[0\] -iostd LVDS -pinname U25 -fixed yes -set_io spw_txs\[1\] -iostd LVDS -pinname Y27 -fixed yes -set_io spw_txs\[2\] -iostd LVDS -pinname Y24 -fixed yes -set_io spw_txs\[3\] -iostd LVDS -pinname AB26 -fixed yes -set_io spw_txsn\[0\] -iostd LVDS -pinname V25 -fixed yes -set_io spw_txsn\[1\] -iostd LVDS -pinname Y28 -fixed yes -set_io spw_txsn\[2\] -iostd LVDS -pinname AA24 -fixed yes -set_io spw_txsn\[3\] -iostd LVDS -pinname AC26 -fixed yes - -set_location spw.swloop.0.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/rxclko_0 -fixed yes 1051 48 -set_location spw.swloop.0.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/r.shftreg -fixed yes 1052 52 -set_location spw.swloop.0.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/nr.shftreg\[0\] -fixed yes 1052 51 - -set_location spw.swloop.1.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/rxclko_0 -fixed yes 1051 34 -set_location spw.swloop.1.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/r.shftreg -fixed yes 1052 34 -set_location spw.swloop.1.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/nr.shftreg\[0\] -fixed yes 1052 33 - -set_location spw.swloop.2.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/rxclko_0 -fixed yes 1051 26 -set_location spw.swloop.2.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/r.shftreg -fixed yes 1052 26 -set_location spw.swloop.2.sw0/spw1.u0/rtl.grspwc0/rx.0.rx0/nr.shftreg\[0\] -fixed yes 1052 25 - -# LEON3FT-RTAX additions supported on GR-CPCI-TEST mezzanine board -set_io busainen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N26 -fixed yes -set_io busainn\[1\] -iostd LVTTL -pinname M29 -fixed yes -set_io busainp\[1\] -iostd LVTTL -pinname L29 -fixed yes -set_io busaoutin\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N25 -fixed yes -set_io busaoutn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N28 -fixed yes -set_io busaoutp\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N27 -fixed yes -set_io busbinen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M28 -fixed yes -set_io busbinn\[1\] -iostd LVTTL -pinname M27 -fixed yes -set_io busbinp\[1\] -iostd LVTTL -pinname L27 -fixed yes -set_io busboutin\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N23 -fixed yes -set_io busboutn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L28 -fixed yes -set_io busboutp\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N22 -fixed yes - -#set_io canen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K29 -fixed yes -#set_io canen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M25 -fixed yes - -set_io romsn\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K29 -fixed yes -set_io romsn\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M25 -fixed yes - -set_io spw_clk -iostd LVTTL -pinname E16 -fixed yes - -set_io dsutck -iostd LVTTL -pinname AD29 -fixed yes -set_io dsutdi -iostd LVTTL -pinname AC27 -fixed yes -set_io dsutdo -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC26 -fixed yes -set_io dsutms -iostd LVTTL -pinname AE28 -fixed yes - -# LEON3FT-RTAX additions supported on GR-CPCI-1553 mezzanine board -set_io canrx\[1\] -iostd LVTTL -pinname K30 -fixed yes -set_io cantx\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L25 -fixed yes - -# GPIO pins 16-31: -set_io gpio\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N25 -fixed yes -set_io gpio\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N27 -fixed yes -set_io gpio\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N28 -fixed yes -set_io gpio\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N26 -fixed yes -set_io gpio\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L29 -fixed yes -set_io gpio\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M29 -fixed yes -set_io gpio\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N23 -fixed yes -set_io gpio\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N22 -fixed yes -set_io gpio\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L28 -fixed yes -set_io gpio\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M28 -fixed yes -set_io gpio\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L27 -fixed yes -set_io gpio\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M27 -fixed yes -set_io gpio\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M24 -fixed yes -set_io gpio\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M23 -fixed yes -set_io gpio\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB7 -fixed yes -set_io gpio\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD5 -fixed yes - -# Ethernet pins for GR-CPCI-TEST mezzanine board and GR-XC3S-RMII -set_io emdio -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AC4 -fixed yes -set_io emdc -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AF1 -fixed yes -set_io erx_clk -iostd LVTTL -pinname N25 -fixed yes -set_io erx_dv -iostd LVTTL -pinname N27 -fixed yes -set_io erx_crs -iostd LVTTL -pinname N28 -fixed yes -set_io erx_er -iostd LVTTL -pinname N26 -fixed yes -set_io erx_col -iostd LVTTL -pinname L29 -fixed yes -set_io erxd\[0\] -iostd LVTTL -pinname M29 -fixed yes -set_io erxd\[1\] -iostd LVTTL -pinname N23 -fixed yes -set_io erxd\[2\] -iostd LVTTL -pinname N22 -fixed yes -set_io erxd\[3\] -iostd LVTTL -pinname L28 -fixed yes -set_io etx_clk -iostd LVTTL -pinname M28 -fixed yes -set_io etx_en -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AB7 -fixed yes -set_io etxd\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname L27 -fixed yes -set_io etxd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname M27 -fixed yes -set_io etxd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname M24 -fixed yes -set_io etxd\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname M23 -fixed yes -set_io etx_er -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AD5 -fixed yes -set_io emdint -iostd LVTTL -pinname AD5 -fixed yes - -set_io e0mdio -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AC4 -fixed yes -set_io e0mdc -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AF1 -fixed yes -set_io e0rx_clk -iostd LVTTL -pinname N25 -fixed yes -set_io e0rx_dv -iostd LVTTL -pinname N27 -fixed yes -set_io e0rx_crs -iostd LVTTL -pinname N28 -fixed yes -set_io e0rx_er -iostd LVTTL -pinname N26 -fixed yes -set_io e0rx_col -iostd LVTTL -pinname L29 -fixed yes -set_io e0rxd\[0\] -iostd LVTTL -pinname M29 -fixed yes -set_io e0rxd\[1\] -iostd LVTTL -pinname N23 -fixed yes -set_io e0rxd\[2\] -iostd LVTTL -pinname N22 -fixed yes -set_io e0rxd\[3\] -iostd LVTTL -pinname L28 -fixed yes -set_io e0tx_clk -iostd LVTTL -pinname M28 -fixed yes -set_io e0tx_en -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AB7 -fixed yes -set_io e0tx_er -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AD5 -fixed yes -set_io e0mdint -iostd LVTTL -pinname AD5 -fixed yes -set_io e0txd\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname L27 -fixed yes -set_io e0txd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname M27 -fixed yes -set_io e0txd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname M24 -fixed yes -set_io e0txd\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname M23 -fixed yes - -set_io e1mdio -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AB26 -fixed yes -set_io e1mdc -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AE26 -fixed yes -set_io e1rx_clk -iostd LVTTL -pinname AD26 -fixed yes -set_io e1rx_dv -iostd LVTTL -pinname AC25 -fixed yes -set_io e1rx_crs -iostd LVTTL -pinname AD25 -fixed yes -set_io e1rx_er -iostd LVTTL -pinname AF27 -fixed yes -set_io e1rx_col -iostd LVTTL -pinname AD28 -fixed yes -set_io e1rxd\[0\] -iostd LVTTL -pinname AE27 -fixed yes -set_io e1rxd\[1\] -iostd LVTTL -pinname AB23 -fixed yes -set_io e1rxd\[2\] -iostd LVTTL -pinname AA23 -fixed yes -set_io e1rxd\[3\] -iostd LVTTL -pinname T27 -fixed yes -set_io e1tx_clk -iostd LVTTL -pinname T30 -fixed yes -set_io e1tx_en -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname V23 -fixed yes -set_io e1tx_er -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname T22 -fixed yes -set_io e1mdint -iostd LVTTL -pinname T22 -fixed yes -set_io e1txd\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname V26 -fixed yes -set_io e1txd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname Y25 -fixed yes -set_io e1txd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AD30 -fixed yes -set_io e1txd\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 15 -pinname AG28 -fixed yes - -# Extra PCI interrupt signals: -# PCI_INTA -set_io pci_int\[0\] -iostd PCI -pinname AF4 -fixed yes -# PCI_INTB -set_io pci_int\[1\] -iostd PCI -pinname AC7 -fixed yes -# PCI_INTC -set_io pci_int\[2\] -iostd PCI -pinname AE5 -fixed yes -# PCI_INTD -set_io pci_int\[3\] -iostd PCI -pinname AF2 -fixed yes -set_io pci_int -iostd PCI -pinname AF2 -fixed yes - -# FIFO pins for GR-CPCI-TEST mezzanine board and GR-FIFO test board -set_io fifoefn -iostd LVTTL -RES_PULL Up -pinname AC4 -fixed yes -set_io fifoffn -iostd LVTTL -RES_PULL Up -pinname AF1 -fixed yes -set_io fifowen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB7 -fixed yes -set_io fiforen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD5 -fixed yes -set_io fifop\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R29 -fixed yes -set_io fifop\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R30 -fixed yes -set_io fifod\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L25 -fixed yes -set_io fifod\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K30 -fixed yes -set_io fifod\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M23 -fixed yes -set_io fifod\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M24 -fixed yes -set_io fifod\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M27 -fixed yes -set_io fifod\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L27 -fixed yes -set_io fifod\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M28 -fixed yes -set_io fifod\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L28 -fixed yes -set_io fifod\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N22 -fixed yes -set_io fifod\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N23 -fixed yes -set_io fifod\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M29 -fixed yes -set_io fifod\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L29 -fixed yes -set_io fifod\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N26 -fixed yes -set_io fifod\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N28 -fixed yes -set_io fifod\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N27 -fixed yes -set_io fifod\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N25 -fixed yes diff --git a/boards/gr-cpci-ax/designer_896_FBGA.sdc b/boards/gr-cpci-ax/designer_896_FBGA.sdc deleted file mode 100644 index 6af76851..00000000 --- a/boards/gr-cpci-ax/designer_896_FBGA.sdc +++ /dev/null @@ -1,35 +0,0 @@ -################################################################################ -# Actel Designer Software Release Designer -################################################################################ - -######## Clock Constraints ######## - -create_clock -period 40.0000 [get_ports {clk}] - -#create_clock -period 30.0000 [get_ports {pci_clk}] -# -#create_clock -period 10.0000 [get_ports {spw_clk}] -# -#create_clock -period 10.0000 [get_ports {spwclk}] - - -######## Delay Constraints ######## - -#set_max_delay 7.00 -from [all_inputs] -to [get_clocks {pci_clk}] -#set_max_delay 11.00 -from [get_clocks {pci_clk}] -to [all_outputs] - -#set_max_delay 11.00 -from [all_inputs] -to [all_outputs] - -#set_max_delay 5.00 -from [all_inputs] -to [get_clocks {clk}] -#set_max_delay 10.00 -from [get_clocks {clk}] -to [all_outputs] - - -######## False Path Constraints ######## - - -######## OutPut load Constraints ######## - - -######## Multicycle Constraints ######## - - diff --git a/boards/gr-cpci-ax/designer_896_FBGA_1553.pdc b/boards/gr-cpci-ax/designer_896_FBGA_1553.pdc deleted file mode 100644 index c38a07bb..00000000 --- a/boards/gr-cpci-ax/designer_896_FBGA_1553.pdc +++ /dev/null @@ -1,621 +0,0 @@ -# Actel Physical design constraints file -# Family: Axcelerator , Die: AX2000 , Package: fbga896 - -# -# I/O constraints -# - -set_io address\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R8 -fixed yes -set_io address\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L1 -fixed yes -set_io address\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M1 -fixed yes -set_io address\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M4 -fixed yes -set_io address\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N7 -fixed yes -set_io address\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N6 -fixed yes -set_io address\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L3 -fixed yes -set_io address\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M3 -fixed yes -set_io address\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N8 -fixed yes -set_io address\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N9 -fixed yes -set_io address\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L6 -fixed yes -set_io address\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R9 -fixed yes -set_io address\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K4 -fixed yes -set_io address\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L4 -fixed yes -set_io address\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J1 -fixed yes -set_io address\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K1 -fixed yes -set_io address\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K5 -fixed yes -set_io address\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L5 -fixed yes -set_io address\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J4 -fixed yes -set_io address\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J3 -fixed yes -set_io address\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R4 -fixed yes -set_io address\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R7 -fixed yes -set_io address\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R6 -fixed yes -set_io address\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P9 -fixed yes -set_io address\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P4 -fixed yes -set_io address\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P5 -fixed yes -set_io address\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P7 -fixed yes -set_io address\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P6 -fixed yes -set_io bexcn -iostd LVTTL -RES_PULL Up -pinname T8 -fixed yes -set_io brdyn -iostd LVTTL -RES_PULL Up -pinname T1 -fixed yes -set_io cb\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD4 -fixed yes -set_io cb\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD3 -fixed yes -set_io cb\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE3 -fixed yes -set_io cb\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB3 -fixed yes -set_io cb\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC3 -fixed yes -set_io cb\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD2 -fixed yes -set_io cb\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y6 -fixed yes -set_io cb\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA6 -fixed yes -set_io clk -iostd LVTTL -pinname D15 -fixed yes -set_io ctsn\[1\] -iostd LVTTL -pinname K25 -fixed yes -set_io ctsn\[2\] -iostd LVTTL -pinname L24 -fixed yes -set_io data\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K6 -fixed yes -set_io data\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F4 -fixed yes -set_io data\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F3 -fixed yes -set_io data\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F5 -fixed yes -set_io data\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G5 -fixed yes -set_io data\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G6 -fixed yes -set_io data\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H6 -fixed yes -set_io data\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB1 -fixed yes -set_io data\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE2 -fixed yes -set_io data\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W8 -fixed yes -set_io data\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y8 -fixed yes -set_io data\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D1 -fixed yes -set_io data\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y5 -fixed yes -set_io data\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA5 -fixed yes -set_io data\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA2 -fixed yes -set_io data\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W6 -fixed yes -set_io data\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W7 -fixed yes -set_io data\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y4 -fixed yes -set_io data\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V8 -fixed yes -set_io data\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y1 -fixed yes -set_io data\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y2 -fixed yes -set_io data\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V7 -fixed yes -set_io data\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D2 -fixed yes -set_io data\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V6 -fixed yes -set_io data\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W3 -fixed yes -set_io data\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G4 -fixed yes -set_io data\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H4 -fixed yes -set_io data\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F2 -fixed yes -set_io data\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F1 -fixed yes -set_io data\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E2 -fixed yes -set_io data\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H7 -fixed yes -set_io data\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J7 -fixed yes -set_io dsuact -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K23 -fixed yes -set_io dsubre -iostd LVTTL -pinname J24 -fixed yes -set_io dsuen -iostd LVTTL -pinname J23 -fixed yes -set_io dsurx -iostd LVTTL -pinname G25 -fixed yes -set_io dsutx -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G26 -fixed yes -set_io errorn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -RES_PULL Up -pinname E25 -fixed yes -set_io geniohigh\[100\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V24 -fixed yes -set_io geniohigh\[101\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W28 -fixed yes -set_io geniohigh\[102\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W24 -fixed yes -set_io geniohigh\[103\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W27 -fixed yes -set_io geniohigh\[104\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y28 -fixed yes -set_io geniohigh\[105\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y30 -fixed yes -set_io geniohigh\[106\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y27 -fixed yes -set_io geniohigh\[107\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W30 -fixed yes -set_io geniohigh\[108\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W23 -fixed yes -set_io geniohigh\[109\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA30 -fixed yes -set_io geniohigh\[110\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y23 -fixed yes -set_io geniohigh\[111\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB30 -fixed yes -set_io geniohigh\[112\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA24 -fixed yes -set_io geniohigh\[113\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF29 -fixed yes -set_io geniohigh\[114\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y24 -fixed yes -set_io geniohigh\[115\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF30 -fixed yes -set_io geniohigh\[92\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T24 -fixed yes -set_io geniohigh\[93\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U27 -fixed yes -set_io geniohigh\[94\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U24 -fixed yes -set_io geniohigh\[95\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V27 -fixed yes -set_io geniohigh\[96\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V25 -fixed yes -set_io geniohigh\[97\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W29 -fixed yes -set_io geniohigh\[98\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U25 -fixed yes -set_io geniohigh\[99\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V29 -fixed yes -set_io geniolow\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R30 -fixed yes -set_io geniolow\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R29 -fixed yes -set_io geniolow\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R25 -fixed yes -set_io geniolow\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R24 -fixed yes -set_io geniolow\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P30 -fixed yes -set_io geniolow\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P29 -fixed yes -set_io geniolow\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P26 -fixed yes -set_io geniolow\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R26 -fixed yes -set_io geniolow\[32\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P27 -fixed yes -set_io geniolow\[33\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P28 -fixed yes -set_io geniolow\[34\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P24 -fixed yes -set_io geniolow\[35\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P25 -fixed yes -set_io geniolow\[36\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N29 -fixed yes -set_io geniolow\[37\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N24 -fixed yes -set_io geniolow\[38\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N25 -fixed yes -set_io geniolow\[39\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N27 -fixed yes -set_io geniolow\[40\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N28 -fixed yes -set_io geniolow\[41\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N26 -fixed yes -set_io geniolow\[42\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L29 -fixed yes -set_io geniolow\[43\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M29 -fixed yes -set_io geniolow\[44\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N23 -fixed yes -set_io geniolow\[45\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N22 -fixed yes -set_io geniolow\[46\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L28 -fixed yes -set_io geniolow\[47\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M28 -fixed yes -set_io geniolow\[48\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L27 -fixed yes -set_io geniolow\[49\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M27 -fixed yes -set_io geniolow\[50\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M24 -fixed yes -set_io geniolow\[51\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M23 -fixed yes -set_io geniolow\[52\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K29 -fixed yes -set_io geniolow\[53\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K30 -fixed yes -set_io geniolow\[54\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L25 -fixed yes -set_io geniolow\[55\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M25 -fixed yes -set_io gpio\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F30 -fixed yes -set_io gpio\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D25 -fixed yes -set_io gpio\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C25 -fixed yes -set_io gpio\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G23 -fixed yes -set_io gpio\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G22 -fixed yes -set_io gpio\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B27 -fixed yes -set_io gpio\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A27 -fixed yes -set_io gpio\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G30 -fixed yes -set_io gpio\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F28 -fixed yes -set_io gpio\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G28 -fixed yes -set_io gpio\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H25 -fixed yes -set_io gpio\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H26 -fixed yes -set_io gpio\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D29 -fixed yes -set_io gpio\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E29 -fixed yes -set_io gpio\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F23 -fixed yes -set_io gpio\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E23 -fixed yes -set_io iosn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U2 -fixed yes -set_io oen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V2 -fixed yes -set_io pci_66 -iostd PCI -pinname AC15 -fixed yes -set_io pci_ack64n -iostd PCI -pinname AG15 -fixed yes -set_io pci_ad\[0\] -iostd PCI -pinname AE14 -fixed yes -set_io pci_ad\[10\] -iostd PCI -pinname AG11 -fixed yes -set_io pci_ad\[11\] -iostd PCI -pinname AG12 -fixed yes -set_io pci_ad\[12\] -iostd PCI -pinname AK11 -fixed yes -set_io pci_ad\[13\] -iostd PCI -pinname AK12 -fixed yes -set_io pci_ad\[14\] -iostd PCI -pinname AC12 -fixed yes -set_io pci_ad\[15\] -iostd PCI -pinname AJ10 -fixed yes -set_io pci_ad\[16\] -iostd PCI -pinname AD9 -fixed yes -set_io pci_ad\[17\] -iostd PCI -pinname AG7 -fixed yes -set_io pci_ad\[18\] -iostd PCI -pinname AH7 -fixed yes -set_io pci_ad\[19\] -iostd PCI -pinname AC8 -fixed yes -set_io pci_ad\[1\] -iostd PCI -pinname AD14 -fixed yes -set_io pci_ad\[20\] -iostd PCI -pinname AC9 -fixed yes -set_io pci_ad\[21\] -iostd PCI -pinname AH6 -fixed yes -set_io pci_ad\[22\] -iostd PCI -pinname AG6 -fixed yes -set_io pci_ad\[23\] -iostd PCI -pinname AF6 -fixed yes -set_io pci_ad\[24\] -iostd PCI -pinname AF7 -fixed yes -set_io pci_ad\[25\] -iostd PCI -pinname AG2 -fixed yes -set_io pci_ad\[26\] -iostd PCI -pinname AG1 -fixed yes -set_io pci_ad\[27\] -iostd PCI -pinname AE7 -fixed yes -set_io pci_ad\[28\] -iostd PCI -pinname AE8 -fixed yes -set_io pci_ad\[29\] -iostd PCI -pinname AJ4 -fixed yes -set_io pci_ad\[2\] -iostd PCI -pinname AB13 -fixed yes -set_io pci_ad\[30\] -iostd PCI -pinname AK4 -fixed yes -set_io pci_ad\[31\] -iostd PCI -pinname AE4 -fixed yes -set_io pci_ad\[32\] -iostd PCI -pinname AG25 -fixed yes -set_io pci_ad\[33\] -iostd PCI -pinname AG26 -fixed yes -set_io pci_ad\[34\] -iostd PCI -pinname AJ25 -fixed yes -set_io pci_ad\[35\] -iostd PCI -pinname AE23 -fixed yes -set_io pci_ad\[36\] -iostd PCI -pinname AE24 -fixed yes -set_io pci_ad\[37\] -iostd PCI -pinname AH24 -fixed yes -set_io pci_ad\[38\] -iostd PCI -pinname AH25 -fixed yes -set_io pci_ad\[39\] -iostd PCI -pinname AD22 -fixed yes -set_io pci_ad\[3\] -iostd PCI -pinname AC14 -fixed yes -set_io pci_ad\[40\] -iostd PCI -pinname AC22 -fixed yes -set_io pci_ad\[41\] -iostd PCI -pinname AF23 -fixed yes -set_io pci_ad\[42\] -iostd PCI -pinname AE21 -fixed yes -set_io pci_ad\[43\] -iostd PCI -pinname AE22 -fixed yes -set_io pci_ad\[44\] -iostd PCI -pinname AJ23 -fixed yes -set_io pci_ad\[45\] -iostd PCI -pinname AJ24 -fixed yes -set_io pci_ad\[46\] -iostd PCI -pinname AH23 -fixed yes -set_io pci_ad\[47\] -iostd PCI -pinname AD21 -fixed yes -set_io pci_ad\[48\] -iostd PCI -pinname AC21 -fixed yes -set_io pci_ad\[49\] -iostd PCI -pinname AK22 -fixed yes -set_io pci_ad\[4\] -iostd PCI -pinname AJ13 -fixed yes -set_io pci_ad\[50\] -iostd PCI -pinname AG21 -fixed yes -set_io pci_ad\[51\] -iostd PCI -pinname AG22 -fixed yes -set_io pci_ad\[52\] -iostd PCI -pinname AE20 -fixed yes -set_io pci_ad\[53\] -iostd PCI -pinname AJ21 -fixed yes -set_io pci_ad\[54\] -iostd PCI -pinname AD19 -fixed yes -set_io pci_ad\[55\] -iostd PCI -pinname AJ20 -fixed yes -set_io pci_ad\[56\] -iostd PCI -pinname AK20 -fixed yes -set_io pci_ad\[57\] -iostd PCI -pinname AC19 -fixed yes -set_io pci_ad\[58\] -iostd PCI -pinname AC20 -fixed yes -set_io pci_ad\[59\] -iostd PCI -pinname AG19 -fixed yes -set_io pci_ad\[5\] -iostd PCI -pinname AH11 -fixed yes -set_io pci_ad\[60\] -iostd PCI -pinname AG20 -fixed yes -set_io pci_ad\[61\] -iostd PCI -pinname AH19 -fixed yes -set_io pci_ad\[62\] -iostd PCI -pinname AK19 -fixed yes -set_io pci_ad\[63\] -iostd PCI -pinname AJ19 -fixed yes -set_io pci_ad\[6\] -iostd PCI -pinname AH12 -fixed yes -set_io pci_ad\[7\] -iostd PCI -pinname AC13 -fixed yes -set_io pci_ad\[8\] -iostd PCI -pinname AD13 -fixed yes -set_io pci_ad\[9\] -iostd PCI -pinname AE13 -fixed yes -set_io pci_arb_gnt\[0\] -iostd PCI -pinname AJ17 -fixed yes -set_io pci_arb_gnt\[1\] -iostd PCI -pinname AJ18 -fixed yes -set_io pci_arb_gnt\[2\] -iostd PCI -pinname AD17 -fixed yes -set_io pci_arb_gnt\[3\] -iostd PCI -pinname AK17 -fixed yes -set_io pci_arb_gnt\[4\] -iostd PCI -pinname AC17 -fixed yes -set_io pci_arb_gnt\[5\] -iostd PCI -pinname AF25 -fixed yes -set_io pci_arb_gnt\[6\] -iostd PCI -pinname AF24 -fixed yes -set_io pci_arb_gnt\[7\] -iostd PCI -pinname AB17 -fixed yes -set_io pci_arb_req\[0\] -iostd LVTTL -RES_PULL Up -pinname AJ16 -fixed yes -set_io pci_arb_req\[1\] -iostd LVTTL -RES_PULL Up -pinname AK16 -fixed yes -set_io pci_arb_req\[2\] -iostd LVTTL -RES_PULL Up -pinname AG18 -fixed yes -set_io pci_arb_req\[3\] -iostd LVTTL -RES_PULL Up -pinname AH18 -fixed yes -set_io pci_arb_req\[4\] -iostd LVTTL -RES_PULL Up -pinname AG16 -fixed yes -set_io pci_arb_req\[5\] -iostd LVTTL -RES_PULL Up -pinname AG30 -fixed yes -set_io pci_arb_req\[6\] -iostd LVTTL -RES_PULL Up -pinname AG29 -fixed yes -set_io pci_arb_req\[7\] -iostd LVTTL -RES_PULL Up -pinname AG17 -fixed yes -set_io pci_cbe\[0\] -iostd PCI -pinname AF9 -fixed yes -set_io pci_cbe\[1\] -iostd PCI -pinname AF10 -fixed yes -set_io pci_cbe\[2\] -iostd PCI -pinname AH8 -fixed yes -set_io pci_cbe\[3\] -iostd PCI -pinname AH9 -fixed yes -set_io pci_cbe\[4\] -iostd PCI -pinname AC18 -fixed yes -set_io pci_cbe\[5\] -iostd PCI -pinname AB18 -fixed yes -set_io pci_cbe\[6\] -iostd PCI -pinname AE18 -fixed yes -set_io pci_cbe\[7\] -iostd PCI -pinname AD18 -fixed yes -set_io pci_clk -iostd PCI -pinname E16 -fixed yes -set_io pci_devsel -iostd PCI -pinname AC10 -fixed yes -set_io pci_en64 -iostd PCI -pinname AH13 -fixed yes -set_io pci_frame -iostd PCI -pinname AK9 -fixed yes -set_io pci_gnt -iostd PCI -pinname AK15 -fixed yes -set_io pci_host -iostd PCI -pinname AB14 -fixed yes -set_io pci_idsel -iostd PCI -pinname AK6 -fixed yes -set_io pci_irdy -iostd PCI -pinname AE9 -fixed yes -set_io pci_lock -iostd PCI -pinname AE10 -fixed yes -set_io pci_par -iostd PCI -pinname AD11 -fixed yes -set_io pci_par64 -iostd PCI -pinname AG14 -fixed yes -set_io pci_perr -iostd PCI -pinname AC11 -fixed yes -set_io pci_req -iostd PCI -pinname AJ15 -fixed yes -set_io pci_req64n -iostd PCI -pinname AG13 -fixed yes -set_io pci_rst -iostd PCI -pinname AD8 -fixed yes -set_io pci_serr -iostd PCI -pinname AJ11 -fixed yes -set_io pci_stop -iostd PCI -pinname AJ7 -fixed yes -set_io pci_trdy -iostd PCI -pinname AJ8 -fixed yes -set_io pciio\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD29 -fixed yes -set_io pciio\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD25 -fixed yes -set_io pciio\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC25 -fixed yes -set_io pciio\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF27 -fixed yes -set_io pciio\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE27 -fixed yes -set_io pciio\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB23 -fixed yes -set_io pciio\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA23 -fixed yes -set_io pciio\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T27 -fixed yes -set_io pciio\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T30 -fixed yes -set_io pciio\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T22 -fixed yes -set_io pciio\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V23 -fixed yes -set_io pciio\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC27 -fixed yes -set_io pciio\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V26 -fixed yes -set_io pciio\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y25 -fixed yes -set_io pciio\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD30 -fixed yes -set_io pciio\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AG28 -fixed yes -set_io pciio\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF4 -fixed yes -set_io pciio\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB7 -fixed yes -set_io pciio\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC7 -fixed yes -set_io pciio\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD5 -fixed yes -set_io pciio\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE5 -fixed yes -set_io pciio\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF1 -fixed yes -set_io pciio\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE29 -fixed yes -set_io pciio\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF2 -fixed yes -set_io pciio\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC4 -fixed yes -set_io pciio\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD27 -fixed yes -set_io pciio\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC26 -fixed yes -set_io pciio\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE28 -fixed yes -set_io pciio\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB26 -fixed yes -set_io pciio\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD28 -fixed yes -set_io pciio\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE26 -fixed yes -set_io pciio\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD26 -fixed yes -set_io ramben\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W4 -fixed yes -set_io ramben\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U8 -fixed yes -set_io ramben\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L8 -fixed yes -set_io ramben\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L7 -fixed yes -set_io ramoen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U1 -fixed yes -set_io ramoen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T7 -fixed yes -set_io ramoen\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W2 -fixed yes -set_io ramoen\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname W1 -fixed yes -set_io ramoen\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U9 -fixed yes -set_io ramsn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R2 -fixed yes -set_io ramsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T6 -fixed yes -set_io ramsn\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U3 -fixed yes -set_io ramsn\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U4 -fixed yes -set_io ramsn\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U7 -fixed yes -set_io read -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname U5 -fixed yes -set_io resetn -iostd LVTTL -pinname H24 -fixed yes -set_io romsn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T2 -fixed yes -set_io romsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V3 -fixed yes -set_io rtsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K24 -fixed yes -set_io rtsn\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K27 -fixed yes -set_io rwen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J6 -fixed yes -set_io rwen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K7 -fixed yes -set_io rwen\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H2 -fixed yes -set_io rwen\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G2 -fixed yes -set_io rxd\[1\] -iostd LVTTL -pinname H28 -fixed yes -set_io rxd\[2\] -iostd LVTTL -pinname J27 -fixed yes -set_io sa\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D10 -fixed yes -set_io sa\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F19 -fixed yes -set_io sa\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A22 -fixed yes -set_io sa\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A21 -fixed yes -set_io sa\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G20 -fixed yes -set_io sa\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B21 -fixed yes -set_io sa\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D21 -fixed yes -set_io sa\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D9 -fixed yes -set_io sa\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C9 -fixed yes -set_io sa\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C8 -fixed yes -set_io sa\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D11 -fixed yes -set_io sa\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E11 -fixed yes -set_io sa\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C20 -fixed yes -set_io sa\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C19 -fixed yes -set_io sa\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B20 -fixed yes -set_io sa\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F20 -fixed yes -set_io sd\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B4 -fixed yes -set_io sd\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E7 -fixed yes -set_io sd\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H10 -fixed yes -set_io sd\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G10 -fixed yes -set_io sd\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F9 -fixed yes -set_io sd\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E10 -fixed yes -set_io sd\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F10 -fixed yes -set_io sd\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A15 -fixed yes -set_io sd\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E15 -fixed yes -set_io sd\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E17 -fixed yes -set_io sd\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C17 -fixed yes -set_io sd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A4 -fixed yes -set_io sd\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D17 -fixed yes -set_io sd\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A16 -fixed yes -set_io sd\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H17 -fixed yes -set_io sd\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J17 -fixed yes -set_io sd\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A17 -fixed yes -set_io sd\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B17 -fixed yes -set_io sd\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J18 -fixed yes -set_io sd\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F18 -fixed yes -set_io sd\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G18 -fixed yes -set_io sd\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B18 -fixed yes -set_io sd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F8 -fixed yes -set_io sd\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H19 -fixed yes -set_io sd\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G19 -fixed yes -set_io sd\[32\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B8 -fixed yes -set_io sd\[33\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A10 -fixed yes -set_io sd\[34\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A9 -fixed yes -set_io sd\[35\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B11 -fixed yes -set_io sd\[36\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B10 -fixed yes -set_io sd\[37\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D12 -fixed yes -set_io sd\[38\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E12 -fixed yes -set_io sd\[39\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C12 -fixed yes -set_io sd\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F7 -fixed yes -set_io sd\[40\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C11 -fixed yes -set_io sd\[41\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A12 -fixed yes -set_io sd\[42\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A11 -fixed yes -set_io sd\[43\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F13 -fixed yes -set_io sd\[44\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G13 -fixed yes -set_io sd\[45\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H13 -fixed yes -set_io sd\[46\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J13 -fixed yes -set_io sd\[47\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B13 -fixed yes -set_io sd\[48\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H21 -fixed yes -set_io sd\[49\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G21 -fixed yes -set_io sd\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D6 -fixed yes -set_io sd\[50\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D22 -fixed yes -set_io sd\[51\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C22 -fixed yes -set_io sd\[52\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A25 -fixed yes -set_io sd\[53\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A24 -fixed yes -set_io sd\[54\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F22 -fixed yes -set_io sd\[55\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E22 -fixed yes -set_io sd\[56\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E21 -fixed yes -set_io sd\[57\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C24 -fixed yes -set_io sd\[58\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D24 -fixed yes -set_io sd\[59\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D23 -fixed yes -set_io sd\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E6 -fixed yes -set_io sd\[60\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H23 -fixed yes -set_io sd\[61\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H22 -fixed yes -set_io sd\[62\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B25 -fixed yes -set_io sd\[63\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B24 -fixed yes -set_io sd\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B5 -fixed yes -set_io sd\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H8 -fixed yes -set_io sd\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G8 -fixed yes -set_io sd\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D7 -fixed yes -set_io sdcasn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E13 -fixed yes -set_io sdclk -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D14 -fixed yes -set_io sdclkfb -iostd LVTTL -pinname C14 -fixed yes -set_io sdcsn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B12 -fixed yes -set_io sdcsn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E14 -fixed yes -set_io sddqm\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F11 -fixed yes -set_io sddqm\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G11 -fixed yes -set_io sddqm\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B19 -fixed yes -set_io sddqm\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A19 -fixed yes -set_io sddqm\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A7 -fixed yes -set_io sddqm\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B7 -fixed yes -set_io sddqm\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E20 -fixed yes -set_io sddqm\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E19 -fixed yes -set_io sdrasn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B14 -fixed yes -set_io sdwen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A14 -fixed yes -set_io txd\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L23 -fixed yes -set_io txd\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K26 -fixed yes -set_io wdogn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -RES_PULL Up -pinname F25 -fixed yes -set_io writen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T5 -fixed yes - -## SDRAM with EDAC or Reed-Solomon codec -# -#set_io scb\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B8 -fixed yes -#set_io scb\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A11 -fixed yes -#set_io scb\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname F13 -fixed yes -#set_io scb\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname G13 -fixed yes -#set_io scb\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname H13 -fixed yes -#set_io scb\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname J13 -fixed yes -#set_io scb\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B13 -fixed yes -#set_io scb\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A10 -fixed yes -#set_io scb\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A9 -fixed yes -#set_io scb\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B11 -fixed yes -#set_io scb\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname B10 -fixed yes -#set_io scb\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname D12 -fixed yes -#set_io scb\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname E12 -fixed yes -#set_io scb\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C12 -fixed yes -#set_io scb\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname C11 -fixed yes -#set_io scb\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname A12 -fixed yes -# -## LEON3FT-RTAX: GR-RTAX-MEZZ mezzanine board -# -#set_io busainen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P29 -fixed yes -#set_io busainn\[0\] -iostd LVTTL -pinname R26 -fixed yes -#set_io busainp\[0\] -iostd LVTTL -pinname P26 -fixed yes -#set_io busaoutin\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R25 -fixed yes -#set_io busaoutn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P30 -fixed yes -#set_io busaoutp\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R24 -fixed yes -#set_io busbinen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P25 -fixed yes -#set_io busbinn\[0\] -iostd LVTTL -pinname N24 -fixed yes -#set_io busbinp\[0\] -iostd LVTTL -pinname N29 -fixed yes -#set_io busboutin\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P27 -fixed yes -#set_io busboutn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P24 -fixed yes -#set_io busboutp\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P28 -fixed yes -# -#set_io canrx\[0\] -iostd LVTTL -pinname R29 -fixed yes -#set_io cantx\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R30 -fixed yes -# -#set_io spwclk -iostd LVTTL -pinname AC4 -fixed yes -# -## LEON3FT-RTAX: GR-AX-SPW accessory board, and GR-RTAX-MEZZ mezzanine board -# -#set_io spw_rxd\[0\] -iostd LVDS -pinname T24 -fixed yes -#set_io spw_rxd\[1\] -iostd LVDS -pinname V24 -fixed yes -#set_io spw_rxd\[2\] -iostd LVDS -pinname W23 -fixed yes -#set_io spw_rxd\[3\] -iostd LVDS -pinname AD29 -fixed yes -#set_io spw_rxdn\[0\] -iostd LVDS -pinname U24 -fixed yes -#set_io spw_rxdn\[1\] -iostd LVDS -pinname W24 -fixed yes -#set_io spw_rxdn\[2\] -iostd LVDS -pinname Y23 -fixed yes -#set_io spw_rxdn\[3\] -iostd LVDS -pinname AE29 -fixed yes -#set_io spw_rxs\[0\] -iostd LVDS -pinname U27 -fixed yes -#set_io spw_rxs\[1\] -iostd LVDS -pinname W28 -fixed yes -#set_io spw_rxs\[2\] -iostd LVDS -pinname AA30 -fixed yes -#set_io spw_rxs\[3\] -iostd LVDS -pinname AC27 -fixed yes -#set_io spw_rxsn\[0\] -iostd LVDS -pinname V27 -fixed yes -#set_io spw_rxsn\[1\] -iostd LVDS -pinname W27 -fixed yes -#set_io spw_rxsn\[2\] -iostd LVDS -pinname AB30 -fixed yes -#set_io spw_rxsn\[3\] -iostd LVDS -pinname AD27 -fixed yes -#set_io spw_txd\[0\] -iostd LVDS -pinname V29 -fixed yes -#set_io spw_txd\[1\] -iostd LVDS -pinname W30 -fixed yes -#set_io spw_txd\[2\] -iostd LVDS -pinname AF30 -fixed yes -#set_io spw_txd\[3\] -iostd LVDS -pinname AD28 -fixed yes -#set_io spw_txdn\[0\] -iostd LVDS -pinname W29 -fixed yes -#set_io spw_txdn\[1\] -iostd LVDS -pinname Y30 -fixed yes -#set_io spw_txdn\[2\] -iostd LVDS -pinname AF29 -fixed yes -#set_io spw_txdn\[3\] -iostd LVDS -pinname AE28 -fixed yes -#set_io spw_txs\[0\] -iostd LVDS -pinname U25 -fixed yes -#set_io spw_txs\[1\] -iostd LVDS -pinname Y27 -fixed yes -#set_io spw_txs\[2\] -iostd LVDS -pinname Y24 -fixed yes -#set_io spw_txs\[3\] -iostd LVDS -pinname AB26 -fixed yes -#set_io spw_txsn\[0\] -iostd LVDS -pinname V25 -fixed yes -#set_io spw_txsn\[1\] -iostd LVDS -pinname Y28 -fixed yes -#set_io spw_txsn\[2\] -iostd LVDS -pinname AA24 -fixed yes -#set_io spw_txsn\[3\] -iostd LVDS -pinname AC26 -fixed yes -# -#set_location spw.swloop.0.sw0/grspwc0/rxclko -fixed yes 1051 48 -#set_location spw.swloop.0.sw0/grspwc0/rx_r.shftreg -fixed yes 1052 52 -#set_location spw.swloop.0.sw0/grspwc0/nrx_r.shftreg\[0\] -fixed yes 1052 51 -# -#set_location spw.swloop.1.sw0/grspwc0/rxclko -fixed yes 1051 34 -#set_location spw.swloop.1.sw0/grspwc0/rx_r.shftreg -fixed yes 1052 34 -#set_location spw.swloop.1.sw0/grspwc0/nrx_r.shftreg\[0\] -fixed yes 1052 33 -# -# -## LEON3FT-RTAX additions not supported on mezzanine boards -# -#set_io busainen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N26 -fixed yes -#set_io busainn\[1\] -iostd LVTTL -pinname M29 -fixed yes -#set_io busainp\[1\] -iostd LVTTL -pinname L29 -fixed yes -#set_io busaoutin\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N25 -fixed yes -#set_io busaoutn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N28 -fixed yes -#set_io busaoutp\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N27 -fixed yes -#set_io busbinen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M28 -fixed yes -#set_io busbinn\[1\] -iostd LVTTL -pinname M27 -fixed yes -#set_io busbinp\[1\] -iostd LVTTL -pinname L27 -fixed yes -#set_io busboutin\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N23 -fixed yes -#set_io busboutn\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L28 -fixed yes -#set_io busboutp\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N22 -fixed yes -# -#set_io canrx\[1\] -iostd LVTTL -pinname K30 -fixed yes -#set_io cantx\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L25 -fixed yes -# -##set_io canen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K29 -fixed yes -##set_io canen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M25 -fixed yes -# -#set_io romsn\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K29 -fixed yes -#set_io romsn\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M25 -fixed yes -# -#set_io spw_clk -iostd LVTTL -pinname E16 -fixed yes -# -# set_io dsutck -iostd LVTTL -pinname AD29 -fixed yes -# set_io dsutdi -iostd LVTTL -pinname AC27 -fixed yes -# set_io dsutdo -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE29 -fixed yes -# set_io dsutms -iostd LVTTL -pinname AD27 -fixed yes - -# GR-CPCI-1553 mezzanine board (not compatible with LEON3FT-RTAX) - -set_io busainen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R24 -fixed yes -set_io busainn\[0\] -iostd LVTTL -pinname P29 -fixed yes -set_io busainp\[0\] -iostd LVTTL -pinname P30 -fixed yes -set_io busaoutin\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R30 -fixed yes -set_io busaoutn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R25 -fixed yes -set_io busaoutp\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R29 -fixed yes -set_io busbinen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P28 -fixed yes -set_io busbinn\[0\] -iostd LVTTL -pinname P25 -fixed yes -set_io busbinp\[0\] -iostd LVTTL -pinname P24 -fixed yes -set_io busboutin\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P26 -fixed yes -set_io busboutn\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname P27 -fixed yes -set_io busboutp\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname R26 -fixed yes - -set_io canen\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname K29 -fixed yes -set_io canen\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M25 -fixed yes -set_io canrx\[0\] -iostd LVTTL -pinname M24 -fixed yes -set_io canrx\[1\] -iostd LVTTL -pinname K30 -fixed yes -set_io cantx\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M23 -fixed yes -set_io cantx\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L25 -fixed yes - -set_io SPWCLKCNFG\[3\] -iostd LVTTL -pinname AD5 -fixed yes -set_io SPWCLKCNFG\[2\] -iostd LVTTL -pinname AE5 -fixed yes -set_io SPWCLKCNFG\[1\] -iostd LVTTL -pinname AF2 -fixed yes -set_io SPWCLKCNFG\[0\] -iostd LVTTL -pinname AC4 -fixed yes - - -## Alternative GPIO pins (replaces 1553 [1] interface and CAN enables signals) -# -#set_io gpio\[16\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N25 -fixed yes -#set_io gpio\[17\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N27 -fixed yes -#set_io gpio\[18\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N28 -fixed yes -#set_io gpio\[19\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N26 -fixed yes -#set_io gpio\[20\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L29 -fixed yes -#set_io gpio\[21\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M29 -fixed yes -#set_io gpio\[22\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N23 -fixed yes -#set_io gpio\[23\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N22 -fixed yes -#set_io gpio\[24\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L28 -fixed yes -#set_io gpio\[25\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M28 -fixed yes -#set_io gpio\[26\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L27 -fixed yes -#set_io gpio\[27\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M27 -fixed yes -#set_io gpio\[28\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M24 -fixed yes -#set_io gpio\[29\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M23 -fixed yes -#set_io gpio\[30\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB7 -fixed yes -#set_io gpio\[31\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD5 -fixed yes - - -# Alternative FIFO pins for GR-CPCI-1553 mezzanine board and GR-FIFO test board, -# supports also additional SRAM bank (bank 1 on some boards, -# other signals not compatible with LEON3FT-RTAX -# (in conflict with ethernet, mil-std-1553 bus-1, and gpio[18-27, 30-31]) - -set_io fifohfn -iostd LVTTL -RES_PULL Up -pinname M27 -fixed yes -set_io fifoefn -iostd LVTTL -RES_PULL Up -pinname L27 -fixed yes -set_io fifoffn -iostd LVTTL -RES_PULL Up -pinname M28 -fixed yes -set_io fifowen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L28 -fixed yes -set_io fiforen -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N22 -fixed yes -set_io fifop\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N23 -fixed yes -set_io fifop\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname M29 -fixed yes -set_io fifod\[15\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname L29 -fixed yes -set_io fifod\[14\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N26 -fixed yes -set_io fifod\[13\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname N28 -fixed yes -set_io fifod\[12\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE26 -fixed yes -set_io fifod\[11\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD26 -fixed yes -set_io fifod\[10\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD25 -fixed yes -set_io fifod\[9\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AC25 -fixed yes -set_io fifod\[8\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AF27 -fixed yes -set_io fifod\[7\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AE27 -fixed yes -set_io fifod\[6\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AB23 -fixed yes -set_io fifod\[5\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AA23 -fixed yes -set_io fifod\[4\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T27 -fixed yes -set_io fifod\[3\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T30 -fixed yes -set_io fifod\[2\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname T22 -fixed yes -set_io fifod\[1\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V23 -fixed yes -set_io fifod\[0\] -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname V26 -fixed yes - -# FIFO RESET (only for GR-FIFO board) -set_io fiforstn -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname Y25 -fixed yes -# FIFO RT (only for GR-FIFO board) -set_io fifort -iostd LVTTL -OUT_DRIVE 12 -SLEW Low -OUT_LOAD 35 -pinname AD30 -fixed yes diff --git a/boards/gr-cpci-ax/gr-cpci-ax2000-ccga624.xls b/boards/gr-cpci-ax/gr-cpci-ax2000-ccga624.xls deleted file mode 100644 index f4043853..00000000 Binary files a/boards/gr-cpci-ax/gr-cpci-ax2000-ccga624.xls and /dev/null differ diff --git a/boards/gr-cpci-ax/gr-cpci-ax2000-cqfp352.xls b/boards/gr-cpci-ax/gr-cpci-ax2000-cqfp352.xls deleted file mode 100644 index ea2878a0..00000000 Binary files a/boards/gr-cpci-ax/gr-cpci-ax2000-cqfp352.xls and /dev/null differ diff --git a/boards/gr-xc6s/Makefile.inc b/boards/gr-xc6s/Makefile.inc index 351de683..10e7bd22 100644 --- a/boards/gr-xc6s/Makefile.inc +++ b/boards/gr-xc6s/Makefile.inc @@ -10,3 +10,10 @@ MANUFACTURER=Xilinx MGCPART=XC6SLX75$(PACKAGE) MGCTECHNOLOGY=SPARTAN-6 MGCPACKAGE=$(PACKAGE) + +# Set PlanAhead Synthesis Flow and Strategy used for build +PLANAHEAD_SYNTH_FLOW="XST 14" +PLANAHEAD_SYNTH_STRATEGY="TimingWithIOBPacking" + +# Set PlanAhead Implementation strategy +PLANAHEAD_IMPL_STRATEGY="MapLogicOptParHighExtra" diff --git a/boards/lattice-ecp3-lfe3-35ea/Makefile.inc b/boards/lattice-ecp3-lfe3-35ea/Makefile.inc deleted file mode 100755 index 88a06eed..00000000 --- a/boards/lattice-ecp3-lfe3-35ea/Makefile.inc +++ /dev/null @@ -1,12 +0,0 @@ -TECHNOLOGY=LATTICE-ECP3 -PART=LFE3_35EA -PACKAGE=FN484C -ISPLIB=ep5c00 -ISPPACKAGE=FPBGA484 -SPEED=-8 -SYNFREQ=100 -PROMGENPAR= -exe $(ISPVM_DIR)/ispufw -op p -prj $(TOP) -if $(TOP).bit -oft -int -of $(TOP).mcs -MANUFACTURER=Lattice -MGCPART=$(PART) -MGCPACKAGE=$(ISPPACKAGE) -MGCTECHNOLOGY=LatticeECP-DSP diff --git a/boards/lattice-ecp3-lfe3-35ea/default.ut b/boards/lattice-ecp3-lfe3-35ea/default.ut deleted file mode 100644 index 8d055524..00000000 --- a/boards/lattice-ecp3-lfe3-35ea/default.ut +++ /dev/null @@ -1,6 +0,0 @@ --g CfgMode:Disable --g ReadBack:SRAM --g RamCfg:Reset --g SYNSRC:No --g PllSET:None - diff --git a/boards/lattice-ecp3-lfe3-35ea/leon3mp.lpf b/boards/lattice-ecp3-lfe3-35ea/leon3mp.lpf deleted file mode 100644 index 68d5738e..00000000 --- a/boards/lattice-ecp3-lfe3-35ea/leon3mp.lpf +++ /dev/null @@ -1,229 +0,0 @@ -COMMERCIAL; -BLOCK RESETPATHS ; -BLOCK ASYNCPATHS ; -# ECP3 PCIE Solution Board I/O Bank Voltages -BANK 0 VCCIO 1.5 V; -BANK 1 VCCIO 3.3 V; -BANK 2 VCCIO 3.3 V; -BANK 3 VCCIO 3.3 V; -# BANK 4 - not used -# BANK 5 - not used -BANK 6 VCCIO 3.3 V; -BANK 7 VCCIO 1.5 V; -BANK 8 VCCIO 3.3 V; - -SYSCONFIG PERSISTENT=OFF CONFIG_MODE=SPI DONE_EX=OFF MCCLK_FREQ=20 CONFIG_SECURE=OFF WAKE_UP=21 WAKE_ON_LOCK=OFF COMPRESS_CONFIG=OFF ENABLE_NDR=OFF CONFIG_IOVOLTAGE=3.3 ; - -########################################################################## -## FREQUENCIES AND TIMING -########################################################################## -FREQUENCY PORT "clk_in" 100.000000 MHz ; -FREQUENCY PORT "clk125" 125.000000 MHz ; # 125 MHz -FREQUENCY NET "clk_in_c" 100.000000 MHz ; -FREQUENCY NET "clkm" 100.00000 MHz PAR_ADJ 10.000000 ; -USE PRIMARY PURE NET "clkm" ; - -BLOCK PATH FROM PORT "reset_n" ; - -# Preference for GigE rates -FREQUENCY NET "txc_c" 125.0 MHz ; -FREQUENCY NET "rxc_c" 125.0 MHz ; -FREQUENCY NET "mdc_c" 10.0 MHz ; -USE PRIMARY NET "clk_in" ; -USE SECONDARY NET "clk125" ; - -BLOCK PATH FROM CLKNET "clkm" TO CLKNET "mdc_c" ; -#--------------------------------------------------------------- -# GMII TIMING CONSTRAINTS -#--------------------------------------------------------------- -## GMII input signals -## Input setup and hold -## This preference satisfies/checks that the RX input signals have enough setup -## time and hold. That the data is is centered and stabled on the rising edge -## of the internal rxc. This preference has been checked/verified on the -## Versa hardware with the Marvell PHY -DEFINE PORT GROUP "TSU_GRP" "rx_dv" "rx_er" "rx_d*"; -INPUT_SETUP GROUP "TSU_GRP" 2.500000 ns HOLD 3.0 ns CLKPORT "rxc" ; - -## GMII output signals -## Output Clock to Out -## This preference satisfies/checks that the TX output signals have enough setup -## time and hold to the PHY in 1000BaseT mode. The data is is centered and stabled on the rising edge -## of the output gtxclk. This preference has been checked/verified on the -## Versa hardware with the Marvell PHY -DEFINE PORT GROUP "TCO_GRP" "tx_en" "tx_d*"; -CLOCK_TO_OUT GROUP "TCO_GRP" OUTPUT_DELAY 2.500000 ns CLKPORT "clk125" CLKOUT PORT "gtxclk" ; - -########################################################################## -## LOCATE FOR CLOCK, RESET -########################################################################## -LOCATE COMP "clk_in" SITE "L5" ; -LOCATE COMP "reset_n" SITE "A21" ; - -########################################################################## -## LOCATE UART SIGNALS -########################################################################## -#AHB DSU UART - ROUTED ON THE FTDI CHIP -LOCATE COMP "dsurx" SITE "G19" ; # from the FTDI chip -LOCATE COMP "dsutx" SITE "G20" ; # to the FTDI chip -#AHB DSU UART - ROUTED ON EXPANSION CONNECTOR -#LOCATE COMP "dsurx" SITE "D17" ; -#LOCATE COMP "dsutx" SITE "J22" ; -#APB UART - ROUTED ON EXPANSION CONNECTOR -LOCATE COMP "rxd1" SITE "K22" ; -LOCATE COMP "txd1" SITE "L18" ; - -########################################################################## -## LOCATE ETHERNET/MAC SIGNALS PHY#2 -########################################################################## -LOCATE COMP "rstn" SITE "R21" ; -LOCATE COMP "clk125" SITE "R17" ; # 125 MHz clock from Marvel 88E1119R Gigabit Ethernet transceiver device -LOCATE COMP "gtxclk" SITE "M19" ; -LOCATE COMP "rxc" SITE "N19" ; -LOCATE COMP "rx_d_0" SITE "AB17" ; -LOCATE COMP "rx_d_1" SITE "AA17" ; -LOCATE COMP "rx_d_2" SITE "R19" ; -LOCATE COMP "rx_d_3" SITE "V21" ; -LOCATE COMP "rx_d_4" SITE "T17" ; -LOCATE COMP "rx_d_5" SITE "R18" ; -LOCATE COMP "rx_d_6" SITE "W21" ; -LOCATE COMP "rx_d_6" SITE "Y21" ; -LOCATE COMP "rx_dv" SITE "U15" ; -LOCATE COMP "rx_er" SITE "V20" ; -LOCATE COMP "col" SITE "N18" ; -LOCATE COMP "crs" SITE "P19" ; -LOCATE COMP "txc" SITE "M21" ; -LOCATE COMP "tx_d_0" SITE "W22" ; -LOCATE COMP "tx_d_1" SITE "R16" ; -LOCATE COMP "tx_d_2" SITE "P17" ; -LOCATE COMP "tx_d_3" SITE "Y22" ; -LOCATE COMP "tx_d_4" SITE "T21" ; -LOCATE COMP "tx_d_5" SITE "U22" ; -LOCATE COMP "tx_d_6" SITE "P20" ; -LOCATE COMP "tx_d_7" SITE "U20" ; -LOCATE COMP "tx_en" SITE "V22" ; -LOCATE COMP "mdio" SITE "U16" ; -LOCATE COMP "mdc" SITE "Y18" ; - -############################################################################################### -## LOCATE DEMO LOGIC -############################################################################################### -#NOT USED YET -#LOCATE COMP "dip_switch_0" SITE "J7" ; -#LOCATE COMP "dip_switch_1" SITE "J6" ; -#LOCATE COMP "dip_switch_2" SITE "H2" ; -#LOCATE COMP "dip_switch_3" SITE "H3" ; -#LOCATE COMP "dip_switch_4" SITE "J3" ; -#LOCATE COMP "dip_switch_5" SITE "K3" ; -#LOCATE COMP "dip_switch_6" SITE "J2" ; -#LOCATE COMP "dip_switch_7" SITE "J1" ; - -LOCATE COMP "led_0" SITE "U19" ; # green -LOCATE COMP "led_1" SITE "U18" ; # green -LOCATE COMP "led_2" SITE "AA21" ; # yellow -LOCATE COMP "led_3" SITE "Y20" ; # yellow -LOCATE COMP "led_4" SITE "W19" ; # red -LOCATE COMP "led_5" SITE "V19" ; # red -LOCATE COMP "led_6" SITE "AB20" ; # blue -LOCATE COMP "led_7" SITE "AA20" ; # blue - -LOCATE COMP "seg14_led_out_0" SITE "V6" ; -LOCATE COMP "seg14_led_out_1" SITE "U7" ; -LOCATE COMP "seg14_led_out_2" SITE "Y6" ; -LOCATE COMP "seg14_led_out_3" SITE "AA6" ; -LOCATE COMP "seg14_led_out_4" SITE "U8" ; -LOCATE COMP "seg14_led_out_5" SITE "T8" ; -LOCATE COMP "seg14_led_out_6" SITE "R9" ; -LOCATE COMP "seg14_led_out_7" SITE "T9" ; -LOCATE COMP "seg14_led_out_8" SITE "AB3" ; -LOCATE COMP "seg14_led_out_9" SITE "AB4" ; -LOCATE COMP "seg14_led_out_10" SITE "W4" ; -LOCATE COMP "seg14_led_out_11" SITE "Y5" ; -LOCATE COMP "seg14_led_out_12" SITE "AA4" ; -LOCATE COMP "seg14_led_out_13" SITE "AA5" ; -LOCATE COMP "seg14_led_out_14" SITE "W5" ; - - -########################################################################## -########################################################################## -# IO BUFFER PREFERENCES -########################################################################## -########################################################################## - -IOBUF ALLPORTS IO_TYPE=LVCMOS33 ; - -########################################################################## -# CLOCK, RESET -########################################################################## -#----- Override ------ -IOBUF PORT "clk_in" IO_TYPE=LVDS25 DIFFRESISTOR=100 ; -IOBUF PORT "reset_n" IO_TYPE=LVCMOS33 DIFFRESISTOR=OFF ; - -########################################################################## -## UART SIGNALS -########################################################################## -#AHB DSU UART - ROUTED ON THE FTDI CHIP -IOBUF PORT "dsurx" SITE=G19 IO_TYPE=LVCMOS33 ; # from the FTDI chip -IOBUF PORT "dsutx" SITE=G20 IO_TYPE=LVCMOS33 ; # to the FTDI chip -#AHB DSU UART - ROUTED ON EXPANSION CONNECTOR -#IOBUF PORT "dsurx" SITE=D17 IO_TYPE=LVCMOS33 ; -#IOBUF PORT "dsutx" SITE=J22 IO_TYPE=LVCMOS33 ; -#APB UART - ROUTED ON EXPANSION CONNECTOR -IOBUF PORT "rxd1" SITE=K22 IO_TYPE=LVCMOS33 ; -IOBUF PORT "txd1" SITE=L18 IO_TYPE=LVCMOS33 ; - -########################################################################## -## ETHERNET/MAC PHY#1 -########################################################################## -IOBUF PORT "rx_d_0" IO_TYPE=LVCMOS33 PULLMODE=DOWN ; -IOBUF PORT "rx_d_1" IO_TYPE=LVCMOS33 PULLMODE=DOWN ; -IOBUF PORT "rx_d_2" IO_TYPE=LVCMOS33 PULLMODE=DOWN ; -IOBUF PORT "rx_d_3" IO_TYPE=LVCMOS33 PULLMODE=DOWN ; -IOBUF PORT "rx_d_4" IO_TYPE=LVCMOS33 PULLMODE=DOWN ; -IOBUF PORT "rx_d_5" IO_TYPE=LVCMOS33 PULLMODE=DOWN ; -IOBUF PORT "rx_d_6" IO_TYPE=LVCMOS33 PULLMODE=DOWN ; -IOBUF PORT "rx_d_7" IO_TYPE=LVCMOS33 PULLMODE=DOWN ; - -########################################################################## -# DIP SWITCHES -########################################################################## -#IOBUF PORT "dip_switch_0" SITE=J7 IO_TYPE=LVCMOS15 ; -#IOBUF PORT "dip_switch_1" SITE=J6 IO_TYPE=LVCMOS15 ; -#IOBUF PORT "dip_switch_2" SITE=H2 IO_TYPE=LVCMOS15 ; -#IOBUF PORT "dip_switch_3" SITE=H3 IO_TYPE=LVCMOS15 ; -#IOBUF PORT "dip_switch_4" SITE=J3 IO_TYPE=LVCMOS15 ; -#IOBUF PORT "dip_switch_5" SITE=K3 IO_TYPE=LVCMOS15 ; -#IOBUF PORT "dip_switch_6" SITE=J2 IO_TYPE=LVCMOS15 ; -#IOBUF PORT "dip_switch_7" SITE=J1 IO_TYPE=LVCMOS15 ; - -########################################################################## -# STATUS LEDS -########################################################################## -IOBUF PORT "led_0" SITE=U19 IO_TYPE=LVCMOS33 ; #led(0) -IOBUF PORT "led_1" SITE=U18 IO_TYPE=LVCMOS33 ; #led(1) -IOBUF PORT "led_2" SITE=AA21 IO_TYPE=LVCMOS33 ; #led(2) -IOBUF PORT "led_3" SITE=Y20 IO_TYPE=LVCMOS33 ; #led(3) -IOBUF PORT "led_4" SITE=W19 IO_TYPE=LVCMOS33 ; #led(4) -IOBUF PORT "led_5" SITE=V19 IO_TYPE=LVCMOS33 ; #led(5) -IOBUF PORT "led_6" SITE=AB20 IO_TYPE=LVCMOS33 ; #led(6) -IOBUF PORT "led_7" SITE=AA20 IO_TYPE=LVCMOS33 ; #led(7) - -########################################################################## -# 14 SEGMENT LEDS -########################################################################## -IOBUF PORT "seg14_led_out_0" SITE=V6 IO_TYPE=LVCMOS33 ; # A -IOBUF PORT "seg14_led_out_1" SITE=U7 IO_TYPE=LVCMOS33 ; # B -IOBUF PORT "seg14_led_out_2" SITE=Y6 IO_TYPE=LVCMOS33 ; # C -IOBUF PORT "seg14_led_out_3" SITE=AA6 IO_TYPE=LVCMOS33 ; # D -IOBUF PORT "seg14_led_out_4" SITE=U8 IO_TYPE=LVCMOS33 ; # E -IOBUF PORT "seg14_led_out_5" SITE=T8 IO_TYPE=LVCMOS33 ; # F -IOBUF PORT "seg14_led_out_6" SITE=R9 IO_TYPE=LVCMOS33 ; # G -IOBUF PORT "seg14_led_out_7" SITE=T9 IO_TYPE=LVCMOS33 ; # H -IOBUF PORT "seg14_led_out_8" SITE=AB3 IO_TYPE=LVCMOS33 ; # J -IOBUF PORT "seg14_led_out_9" SITE=AB4 IO_TYPE=LVCMOS33 ; # K -IOBUF PORT "seg14_led_out_10" SITE=W4 IO_TYPE=LVCMOS33 ; # L -IOBUF PORT "seg14_led_out_11" SITE=Y5 IO_TYPE=LVCMOS33 ; # M -IOBUF PORT "seg14_led_out_12" SITE=AA4 IO_TYPE=LVCMOS33 ; # N -IOBUF PORT "seg14_led_out_13" SITE=AA5 IO_TYPE=LVCMOS33 ; # P -IOBUF PORT "seg14_led_out_14" SITE=W5 IO_TYPE=LVCMOS33 ; # DP - diff --git a/boards/wildcard-xcv300e/Makefile.inc b/boards/wildcard-xcv300e/Makefile.inc deleted file mode 100644 index e7371729..00000000 --- a/boards/wildcard-xcv300e/Makefile.inc +++ /dev/null @@ -1,38 +0,0 @@ -TECHNOLOGY=VIRTEX-E -PART=XCV300E -PACKAGE=BG352 -SPEED=-6 -SYNFREQ=50 -PROMGENPAR=-p bin -w -u 0 $(TOP).bit -o wildcard-xcv300e -MANUFACTURER=Xilinx - -vsim-wildcard: - vmap system ./modelsim/work - vmap pe_lib ./modelsim/work - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/system_pkg.vhd - $(VCOM) pe_lib -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/pe/pe_pkg.vhd - $(VCOM) pe_lib -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/pe/pe_ent.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/clk_gen/clkgen_pkg.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/clk_gen/clkgen_entarch.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/cb_ctrl/cb_ctrl_pkg.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/cb_ctrl/cb_ctrl_entarch.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/mem/mem_pkg.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/mem/mem_ent.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/mem/mem_empty_arch.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/mem/mem_static_arch.vhd - @if test -r "$(WILDCARD_BASE)/vhdl/src/wildcard/io_conn/io_if_ent.vhd"; \ - then $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/io_conn/io_if_ent.vhd; \ - fi - @if test -r "$(WILDCARD_BASE)/vhdl/src/wildcard/io_conn/io_if_inactive_arch.vhd"; \ - then $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/io_conn/io_if_inactive_arch.vhd; \ - fi - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/wildcard_pkg.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/wildcard/wildcard_entarch.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/host/host_pkg.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/host/host_ent.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/vhdl/src/system_entarch.vhd - $(VCOM) pe_lib -explicit pe_arch.vhd - $(VCOM) system -explicit host_arch.vhd - $(VCOM) system -explicit system_cfg.vhd - @echo "" > make.work - @for i in `cat libs.txt`; do vmake $$i >> make.work ; done \ No newline at end of file diff --git a/boards/wildcard-xcv300e/default.sdc b/boards/wildcard-xcv300e/default.sdc deleted file mode 100644 index af88b1e5..00000000 --- a/boards/wildcard-xcv300e/default.sdc +++ /dev/null @@ -1,47 +0,0 @@ -# Synplicity, Inc. constraint file - -# -# Clocks -# -define_clock -name {Clocks_F_Clk} -freq 60.000 -clockgroup default_clkgroup -define_clock -name {Clocks_K_Clk} -freq 40.000 -clockgroup pci_clkgroup - -# -# Clock to Clock -# - -# -# Inputs/Outputs -# -define_output_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {Clocks_F_Clk:r} -define_input_delay -disable -default 14.00 -improve 0.00 -route 0.00 -ref {Clocks_F_Clk:r} -define_input_delay -disable {Reset_Reset} 0.00 -improve 0.00 -route 0.00 -ref {Clocks_K_Clk:r} - -# -# Registers -# - -# -# Multicycle Path -# - -# -# False Path -# - -# -# Delay Path -# - -# -# Attributes -# -define_global_attribute syn_useioff {1} - -# -# Compile Points -# - -# -# Other Constraints -# diff --git a/boards/wildcard-xcv300e/default.ucf b/boards/wildcard-xcv300e/default.ucf deleted file mode 100644 index a4dd687c..00000000 --- a/boards/wildcard-xcv300e/default.ucf +++ /dev/null @@ -1,236 +0,0 @@ -CONFIG STEPPING="0"; - -NET Clocks_K_Clk PERIOD = 30.000 ; -#OFFSET = OUT : 11.000 : AFTER Clocks_K_Clk ; -#OFFSET = IN : 7.000 : BEFORE Clocks_K_Clk ; - -NET Clocks_F_Clk PERIOD = 20.000 ; -#OFFSET = OUT : 20.000 : AFTER Clocks_F_Clk ; -#OFFSET = IN : 20.000 : BEFORE Clocks_F_Clk ; - -NET "Clocks_F_Clk" LOC=AF14; # Pads.Clocks.F_Clk -NET "Clocks_M_Clk" LOC=AE13; # Pads.Clocks.M_Clk -NET "Clocks_P_Clk" LOC=B14; # Pads.Clocks.P_Clk -NET "Clocks_K_Clk" LOC=D14; # Pads.Clocks.K_Clk -NET "Clocks_IO_Clk" LOC=AC13; # Pads.Clocks.IO_Clk - -NET "Clocks_M_Clk_Out_PE" LOC=AE3; # Pads.Clocks.M_Clk_Out_PE -NET "Clocks_M_Clk_Out_CB_Ctrl" LOC=AE4; # Pads.Clocks.M_Clk_Out_CB_Ctrl -NET "Clocks_M_Clk_Out_Left_Mem" LOC=AD5; # Pads.Clocks.M_Clk_Out_Left_Mem -NET "Clocks_M_Clk_Out_Right_Mem" LOC=AC6; # Pads.Clocks.M_Clk_Out_Right_Mem -NET "Clocks_P_Clk_Out_PE" LOC=AF4; # Pads.Clocks.P_Clk_Out_PE -NET "Clocks_P_Clk_Out_CB_Ctrl" LOC=AC7; # Pads.Clocks.P_Clk_Out_CB_Ctrl - -NET "Reset_Reset" LOC=AE8; # Pads.Reset -NET "Audio_Audio" LOC=C22; # Pads.Audio - -NET "LAD_Bus_Addr_Data(0)" LOC=N25; # Pads.LAD_Bus.Addr_Data(0) -NET "LAD_Bus_Addr_Data(1)" LOC=N24; # Pads.LAD_Bus.Addr_Data(1) -NET "LAD_Bus_Addr_Data(2)" LOC=M26; # Pads.LAD_Bus.Addr_Data(2) -NET "LAD_Bus_Addr_Data(3)" LOC=M25; # Pads.LAD_Bus.Addr_Data(3) -NET "LAD_Bus_Addr_Data(4)" LOC=M24; # Pads.LAD_Bus.Addr_Data(4) -NET "LAD_Bus_Addr_Data(5)" LOC=M23; # Pads.LAD_Bus.Addr_Data(5) -NET "LAD_Bus_Addr_Data(6)" LOC=L26; # Pads.LAD_Bus.Addr_Data(6) -NET "LAD_Bus_Addr_Data(7)" LOC=K25; # Pads.LAD_Bus.Addr_Data(7) -NET "LAD_Bus_Addr_Data(8)" LOC=L24; # Pads.LAD_Bus.Addr_Data(8) -NET "LAD_Bus_Addr_Data(9)" LOC=L23; # Pads.LAD_Bus.Addr_Data(9) -NET "LAD_Bus_Addr_Data(10)" LOC=J26; # Pads.LAD_Bus.Addr_Data(10) -NET "LAD_Bus_Addr_Data(11)" LOC=J25; # Pads.LAD_Bus.Addr_Data(11) -NET "LAD_Bus_Addr_Data(12)" LOC=K24; # Pads.LAD_Bus.Addr_Data(12) -NET "LAD_Bus_Addr_Data(13)" LOC=K23; # Pads.LAD_Bus.Addr_Data(13) -NET "LAD_Bus_Addr_Data(14)" LOC=H25; # Pads.LAD_Bus.Addr_Data(14) -NET "LAD_Bus_Addr_Data(15)" LOC=J23; # Pads.LAD_Bus.Addr_Data(15) -NET "LAD_Bus_Addr_Data(16)" LOC=G26; # Pads.LAD_Bus.Addr_Data(16) -NET "LAD_Bus_Addr_Data(17)" LOC=G25; # Pads.LAD_Bus.Addr_Data(17) -NET "LAD_Bus_Addr_Data(18)" LOC=H24; # Pads.LAD_Bus.Addr_Data(18) -NET "LAD_Bus_Addr_Data(19)" LOC=H23; # Pads.LAD_Bus.Addr_Data(19) -NET "LAD_Bus_Addr_Data(20)" LOC=F26; # Pads.LAD_Bus.Addr_Data(20) -NET "LAD_Bus_Addr_Data(21)" LOC=F25; # Pads.LAD_Bus.Addr_Data(21) -NET "LAD_Bus_Addr_Data(22)" LOC=G24; # Pads.LAD_Bus.Addr_Data(22) -NET "LAD_Bus_Addr_Data(23)" LOC=D26; # Pads.LAD_Bus.Addr_Data(23) -NET "LAD_Bus_Addr_Data(24)" LOC=E25; # Pads.LAD_Bus.Addr_Data(24) -NET "LAD_Bus_Addr_Data(25)" LOC=F24; # Pads.LAD_Bus.Addr_Data(25) -NET "LAD_Bus_Addr_Data(26)" LOC=F23; # Pads.LAD_Bus.Addr_Data(26) -NET "LAD_Bus_Addr_Data(27)" LOC=D25; # Pads.LAD_Bus.Addr_Data(27) -NET "LAD_Bus_Addr_Data(28)" LOC=E24; # Pads.LAD_Bus.Addr_Data(28) -NET "LAD_Bus_Addr_Data(29)" LOC=C26; # Pads.LAD_Bus.Addr_Data(29) -NET "LAD_Bus_Addr_Data(30)" LOC=E23; # Pads.LAD_Bus.Addr_Data(30) -NET "LAD_Bus_Addr_Data(31)" LOC=D24; # Pads.LAD_Bus.Addr_Data(31) -NET "LAD_Bus_AS_n" LOC=C25; # Pads.LAD_Bus.AS_n -NET "LAD_Bus_DS_n" LOC=AC22; # Pads.LAD_Bus.DS_n -NET "LAD_Bus_Ack_n" LOC=AF24; # Pads.LAD_Bus.Ack_n -NET "LAD_Bus_Reg_n" LOC=AD22; # Pads.LAD_Bus.Reg_n -NET "LAD_Bus_WR_n" LOC=B23; # Pads.LAD_Bus.WR_n -NET "LAD_Bus_CS_n" LOC=B24; # Pads.LAD_Bus.CS_n -NET "LAD_Bus_Int_Req_n" LOC=C23; # Pads.LAD_Bus.Int_Req_n -NET "LAD_Bus_DMA_0_Data_OK_n" LOC=AF9; # Pads.LAD_Bus.DMA_0_Data_OK_n -NET "LAD_Bus_DMA_0_Burst_OK" LOC=AC11; # Pads.LAD_Bus.DMA_0_Burst_OK -NET "LAD_Bus_DMA_1_Data_OK_n" LOC=AE10; # Pads.LAD_Bus.DMA_1_Data_OK_n -NET "LAD_Bus_DMA_1_Burst_OK" LOC=R1; # Pads.LAD_Bus.DMA_1_Burst_OK -NET "LAD_Bus_Reg_Data_OK_n" LOC=AC21; # Pads.LAD_Bus.Reg_Data_OK_n -NET "LAD_Bus_Reg_Burst_OK" LOC=AE23; # Pads.LAD_Bus.Reg_Burst_OK -NET "LAD_Bus_Force_K_Clk_n" LOC=D21; # Pads.LAD_Bus.Force_K_Clk_n -NET "LAD_Bus_Reserved" LOC=D22; # Pads.LAD_Bus.Reserved - -NET "Left_Mem_Addr(0)" LOC=AE12; # Pads.Left_Mem.Addr(0) -NET "Left_Mem_Addr(1)" LOC=AF12; # Pads.Left_Mem.Addr(1) -NET "Left_Mem_Addr(2)" LOC=AD13; # Pads.Left_Mem.Addr(2) -NET "Left_Mem_Addr(3)" LOC=AD10; # Pads.Left_Mem.Addr(3) -NET "Left_Mem_Addr(4)" LOC=AD14; # Pads.Left_Mem.Addr(4) -NET "Left_Mem_Addr(5)" LOC=AF15; # Pads.Left_Mem.Addr(5) -NET "Left_Mem_Addr(6)" LOC=AE15; # Pads.Left_Mem.Addr(6) -NET "Left_Mem_Addr(7)" LOC=AD15; # Pads.Left_Mem.Addr(7) -NET "Left_Mem_Addr(8)" LOC=AC15; # Pads.Left_Mem.Addr(8) -NET "Left_Mem_Addr(9)" LOC=AE16; # Pads.Left_Mem.Addr(9) -NET "Left_Mem_Addr(10)" LOC=AE17; # Pads.Left_Mem.Addr(10) -NET "Left_Mem_Addr(11)" LOC=AD16; # Pads.Left_Mem.Addr(11) -NET "Left_Mem_Addr(12)" LOC=AC16; # Pads.Left_Mem.Addr(12) -NET "Left_Mem_Addr(13)" LOC=AF18; # Pads.Left_Mem.Addr(13) -NET "Left_Mem_Addr(14)" LOC=AE18; # Pads.Left_Mem.Addr(14) -NET "Left_Mem_Addr(15)" LOC=AD17; # Pads.Left_Mem.Addr(15) -NET "Left_Mem_Addr(16)" LOC=AC17; # Pads.Left_Mem.Addr(16) -NET "Left_Mem_Addr(17)" LOC=AD18; # Pads.Left_Mem.Addr(17) -NET "Left_Mem_Addr(18)" LOC=AC18; # Pads.Left_Mem.Addr(18) -NET "Left_Mem_Data(0)" LOC=AD25; # Pads.Left_Mem.Data(0) -NET "Left_Mem_Data(1)" LOC=AB24; # Pads.Left_Mem.Data(1) -NET "Left_Mem_Data(2)" LOC=AA23; # Pads.Left_Mem.Data(2) -NET "Left_Mem_Data(3)" LOC=AC25; # Pads.Left_Mem.Data(3) -NET "Left_Mem_Data(4)" LOC=AD26; # Pads.Left_Mem.Data(4) -NET "Left_Mem_Data(5)" LOC=AC26; # Pads.Left_Mem.Data(5) -NET "Left_Mem_Data(6)" LOC=Y23; # Pads.Left_Mem.Data(6) -NET "Left_Mem_Data(7)" LOC=AA24; # Pads.Left_Mem.Data(7) -NET "Left_Mem_Data(8)" LOC=AB25; # Pads.Left_Mem.Data(8) -NET "Left_Mem_Data(9)" LOC=AA25; # Pads.Left_Mem.Data(9) -NET "Left_Mem_Data(10)" LOC=Y24; # Pads.Left_Mem.Data(10) -NET "Left_Mem_Data(11)" LOC=Y25; # Pads.Left_Mem.Data(11) -NET "Left_Mem_Data(12)" LOC=AA26; # Pads.Left_Mem.Data(12) -NET "Left_Mem_Data(13)" LOC=V23; # Pads.Left_Mem.Data(13) -NET "Left_Mem_Data(14)" LOC=W24; # Pads.Left_Mem.Data(14) -NET "Left_Mem_Data(15)" LOC=W25; # Pads.Left_Mem.Data(15) -NET "Left_Mem_Data(16)" LOC=Y26; # Pads.Left_Mem.Data(16) -NET "Left_Mem_Data(17)" LOC=U23; # Pads.Left_Mem.Data(17) -NET "Left_Mem_Data(18)" LOC=V25; # Pads.Left_Mem.Data(18) -NET "Left_Mem_Data(19)" LOC=U24; # Pads.Left_Mem.Data(19) -NET "Left_Mem_Data(20)" LOC=V26; # Pads.Left_Mem.Data(20) -NET "Left_Mem_Data(21)" LOC=T23; # Pads.Left_Mem.Data(21) -NET "Left_Mem_Data(22)" LOC=U25; # Pads.Left_Mem.Data(22) -NET "Left_Mem_Data(23)" LOC=T24; # Pads.Left_Mem.Data(23) -NET "Left_Mem_Data(24)" LOC=T25; # Pads.Left_Mem.Data(24) -NET "Left_Mem_Data(25)" LOC=T26; # Pads.Left_Mem.Data(25) -NET "Left_Mem_Data(26)" LOC=R24; # Pads.Left_Mem.Data(26) -NET "Left_Mem_Data(27)" LOC=R25; # Pads.Left_Mem.Data(27) -NET "Left_Mem_Data(28)" LOC=R26; # Pads.Left_Mem.Data(28) -NET "Left_Mem_Data(29)" LOC=P24; # Pads.Left_Mem.Data(29) -NET "Left_Mem_Data(30)" LOC=P23; # Pads.Left_Mem.Data(30) -NET "Left_Mem_Data(31)" LOC=N26; # Pads.Left_Mem.Data(31) -NET "Left_Mem_Data(32)" LOC=AD12; # Pads.Left_Mem.Data(32) -NET "Left_Mem_Data(33)" LOC=AC12; # Pads.Left_Mem.Data(33) -NET "Left_Mem_Data(34)" LOC=AE11; # Pads.Left_Mem.Data(34) -NET "Left_Mem_Data(35)" LOC=AD11; # Pads.Left_Mem.Data(35) -NET "Left_Mem_Byte_WR_n(0)" LOC=AC19; # Pads.Left_Mem.Byte_WR_n(0) -NET "Left_Mem_Byte_WR_n(1)" LOC=AD19; # Pads.Left_Mem.Byte_WR_n(1) -NET "Left_Mem_Byte_WR_n(2)" LOC=AE20; # Pads.Left_Mem.Byte_WR_n(2) -NET "Left_Mem_Byte_WR_n(3)" LOC=AF20; # Pads.Left_Mem.Byte_WR_n(3) -NET "Left_Mem_CS_n" LOC=AD20; # Pads.Left_Mem.CS_n -NET "Left_Mem_CE_n" LOC=AE21; # Pads.Left_Mem.CE_n -NET "Left_Mem_WE_n" LOC=AF23; # Pads.Left_Mem.WE_n -NET "Left_Mem_OE_n" LOC=AD21; # Pads.Left_Mem.OE_n -NET "Left_Mem_Sleep_EN" LOC=B10; # Pads.Left_Mem.Sleep_EN -NET "Left_Mem_Load_EN_n" LOC=AF21; # Pads.Left_Mem.Load_EN_n -NET "Left_Mem_Burst_Mode" LOC=AE22; # Pads.Left_Mem.Burst_Mode - -NET "Right_Mem_Addr(0)" LOC=A12; # Pads.Right_Mem.Addr(0) -NET "Right_Mem_Addr(1)" LOC=C13; # Pads.Right_Mem.Addr(1) -NET "Right_Mem_Addr(2)" LOC=B13; # Pads.Right_Mem.Addr(2) -NET "Right_Mem_Addr(3)" LOC=A13; # Pads.Right_Mem.Addr(3) -NET "Right_Mem_Addr(4)" LOC=A15; # Pads.Right_Mem.Addr(4) -NET "Right_Mem_Addr(5)" LOC=B15; # Pads.Right_Mem.Addr(5) -NET "Right_Mem_Addr(6)" LOC=C15; # Pads.Right_Mem.Addr(6) -NET "Right_Mem_Addr(7)" LOC=D15; # Pads.Right_Mem.Addr(7) -NET "Right_Mem_Addr(8)" LOC=A16; # Pads.Right_Mem.Addr(8) -NET "Right_Mem_Addr(9)" LOC=C16; # Pads.Right_Mem.Addr(9) -NET "Right_Mem_Addr(10)" LOC=B17; # Pads.Right_Mem.Addr(10) -NET "Right_Mem_Addr(11)" LOC=D16; # Pads.Right_Mem.Addr(11) -NET "Right_Mem_Addr(12)" LOC=A18; # Pads.Right_Mem.Addr(12) -NET "Right_Mem_Addr(13)" LOC=C17; # Pads.Right_Mem.Addr(13) -NET "Right_Mem_Addr(14)" LOC=B18; # Pads.Right_Mem.Addr(14) -NET "Right_Mem_Addr(15)" LOC=C18; # Pads.Right_Mem.Addr(15) -NET "Right_Mem_Addr(16)" LOC=D17; # Pads.Right_Mem.Addr(16) -NET "Right_Mem_Addr(17)" LOC=B19; # Pads.Right_Mem.Addr(17) -NET "Right_Mem_Addr(18)" LOC=C19; # Pads.Right_Mem.Addr(18) -NET "Right_Mem_Data(0)" LOC=N2; # Pads.Right_Mem.Data(0) -NET "Right_Mem_Data(1)" LOC=N4; # Pads.Right_Mem.Data(1) -NET "Right_Mem_Data(2)" LOC=N3; # Pads.Right_Mem.Data(2) -NET "Right_Mem_Data(3)" LOC=M1; # Pads.Right_Mem.Data(3) -NET "Right_Mem_Data(4)" LOC=M2; # Pads.Right_Mem.Data(4) -NET "Right_Mem_Data(5)" LOC=M3; # Pads.Right_Mem.Data(5) -NET "Right_Mem_Data(6)" LOC=M4; # Pads.Right_Mem.Data(6) -NET "Right_Mem_Data(7)" LOC=L2; # Pads.Right_Mem.Data(7) -NET "Right_Mem_Data(8)" LOC=L3; # Pads.Right_Mem.Data(8) -NET "Right_Mem_Data(9)" LOC=K2; # Pads.Right_Mem.Data(9) -NET "Right_Mem_Data(10)" LOC=L4; # Pads.Right_Mem.Data(10) -NET "Right_Mem_Data(11)" LOC=J1; # Pads.Right_Mem.Data(11) -NET "Right_Mem_Data(12)" LOC=K3; # Pads.Right_Mem.Data(12) -NET "Right_Mem_Data(13)" LOC=J2; # Pads.Right_Mem.Data(13) -NET "Right_Mem_Data(14)" LOC=J3; # Pads.Right_Mem.Data(14) -NET "Right_Mem_Data(15)" LOC=G1; # Pads.Right_Mem.Data(15) -NET "Right_Mem_Data(16)" LOC=H2; # Pads.Right_Mem.Data(16) -NET "Right_Mem_Data(17)" LOC=H3; # Pads.Right_Mem.Data(17) -NET "Right_Mem_Data(18)" LOC=J4; # Pads.Right_Mem.Data(18) -NET "Right_Mem_Data(19)" LOC=F1; # Pads.Right_Mem.Data(19) -NET "Right_Mem_Data(20)" LOC=G2; # Pads.Right_Mem.Data(20) -NET "Right_Mem_Data(21)" LOC=G3; # Pads.Right_Mem.Data(21) -NET "Right_Mem_Data(22)" LOC=F2; # Pads.Right_Mem.Data(22) -NET "Right_Mem_Data(23)" LOC=E2; # Pads.Right_Mem.Data(23) -NET "Right_Mem_Data(24)" LOC=F3; # Pads.Right_Mem.Data(24) -NET "Right_Mem_Data(25)" LOC=G4; # Pads.Right_Mem.Data(25) -NET "Right_Mem_Data(26)" LOC=D1; # Pads.Right_Mem.Data(26) -NET "Right_Mem_Data(27)" LOC=C1; # Pads.Right_Mem.Data(27) -NET "Right_Mem_Data(28)" LOC=D2; # Pads.Right_Mem.Data(28) -NET "Right_Mem_Data(29)" LOC=F4; # Pads.Right_Mem.Data(29) -NET "Right_Mem_Data(30)" LOC=E3; # Pads.Right_Mem.Data(30) -NET "Right_Mem_Data(31)" LOC=C2; # Pads.Right_Mem.Data(31) -NET "Right_Mem_Data(32)" LOC=B12; # Pads.Right_Mem.Data(32) -NET "Right_Mem_Data(33)" LOC=C12; # Pads.Right_Mem.Data(33) -NET "Right_Mem_Data(34)" LOC=A11; # Pads.Right_Mem.Data(34) -NET "Right_Mem_Data(35)" LOC=B11; # Pads.Right_Mem.Data(35) -NET "Right_Mem_Byte_WR_n(0)" LOC=C20; # Pads.Right_Mem.Byte_WR_n(0) -NET "Right_Mem_Byte_WR_n(1)" LOC=B20; # Pads.Right_Mem.Byte_WR_n(1) -NET "Right_Mem_Byte_WR_n(2)" LOC=A21; # Pads.Right_Mem.Byte_WR_n(2) -NET "Right_Mem_Byte_WR_n(3)" LOC=D18; # Pads.Right_Mem.Byte_WR_n(3) -NET "Right_Mem_CS_n" LOC=C21; # Pads.Right_Mem.CS_n -NET "Right_Mem_CE_n" LOC=B22; # Pads.Right_Mem.CE_n -NET "Right_Mem_WE_n" LOC=D20; # Pads.Right_Mem.WE_n -NET "Right_Mem_OE_n" LOC=A24; # Pads.Right_Mem.OE_n -NET "Right_Mem_Sleep_EN" LOC=C11; # Pads.Right_Mem.Sleep_EN -NET "Right_Mem_Load_EN_n" LOC=B21; # Pads.Right_Mem.Load_EN_n -NET "Right_Mem_Burst_Mode" LOC=A23; # Pads.Right_Mem.Burst_Mode' - -NET "Left_IO(0)" LOC=AC3; # Pads.Left_IO(0) -NET "Left_IO(1)" LOC=AB4; # Pads.Left_IO(1) -NET "Left_IO(2)" LOC=AD1; # Pads.Left_IO(2) -NET "Left_IO(3)" LOC=AB3; # Pads.Left_IO(3) -NET "Left_IO(4)" LOC=AC2; # Pads.Left_IO(4) -NET "Left_IO(5)" LOC=AA4; # Pads.Left_IO(5) -NET "Left_IO(6)" LOC=AA3; # Pads.Left_IO(6) -NET "Left_IO(7)" LOC=AB2; # Pads.Left_IO(7) -NET "Left_IO(8)" LOC=AC1; # Pads.Left_IO(8) -NET "Left_IO(9)" LOC=Y3; # Pads.Left_IO(9) -NET "Left_IO(10)" LOC=AA2; # Pads.Left_IO(10) -NET "Left_IO(11)" LOC=AA1; # Pads.Left_IO(11) -NET "Left_IO(12)" LOC=W4; # Pads.Left_IO(12) - -NET "Right_IO(0)" LOC=W3; # Pads.Right_IO(0) -NET "Right_IO(1)" LOC=Y2; # Pads.Right_IO(1) -NET "Right_IO(2)" LOC=Y1; # Pads.Right_IO(2) -NET "Right_IO(3)" LOC=V4; # Pads.Right_IO(3) -NET "Right_IO(4)" LOC=V3; # Pads.Right_IO(4) -NET "Right_IO(5)" LOC=U4; # Pads.Right_IO(5) -NET "Right_IO(6)" LOC=U3; # Pads.Right_IO(6) -NET "Right_IO(7)" LOC=V2; # Pads.Right_IO(7) -NET "Right_IO(8)" LOC=V1; # Pads.Right_IO(8) -NET "Right_IO(9)" LOC=T4; # Pads.Right_IO(9) -NET "Right_IO(10)" LOC=T3; # Pads.Right_IO(10) -NET "Right_IO(11)" LOC=U2; # Pads.Right_IO(11) -NET "Right_IO(12)" LOC=C4; # Pads.Right_IO(12) - diff --git a/boards/wildcard-xcv300e/default.ut b/boards/wildcard-xcv300e/default.ut deleted file mode 100644 index ae1dcef7..00000000 --- a/boards/wildcard-xcv300e/default.ut +++ /dev/null @@ -1,5 +0,0 @@ --g DonePipe:Yes --g GSR_Cycle:Done --g GTS_Cycle:Done --g GWE_Cycle:Done --g DonePin:Pullup diff --git a/boards/wildcard-xcv300e/wildcard.mkf b/boards/wildcard-xcv300e/wildcard.mkf deleted file mode 100644 index 347ed5dc..00000000 --- a/boards/wildcard-xcv300e/wildcard.mkf +++ /dev/null @@ -1,24 +0,0 @@ -vsim-wildcard: - vmap system ./modelsim/work - vmap pe_lib ./modelsim/work - $(VCOM) system -explicit $(WILDCARD_BASE)/src/system_pkg.vhd - $(VCOM) pe_lib -explicit $(WILDCARD_BASE)/src/wildcard/pe/pe_pkg.vhd - $(VCOM) pe_lib -explicit $(WILDCARD_BASE)/src/wildcard/pe/pe_ent.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/wildcard/clk_gen/clkgen_pkg.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/wildcard/clk_gen/clkgen_entarch.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/wildcard/cb_ctrl/cb_ctrl_pkg.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/wildcard/cb_ctrl/cb_ctrl_entarch.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/wildcard/mem/mem_pkg.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/wildcard/mem/mem_ent.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/wildcard/mem/mem_empty_arch.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/wildcard/mem/mem_static_arch.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/wildcard/io_conn/io_if_ent.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/wildcard/io_conn/io_if_inactive_arch.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/wildcard/wildcard_pkg.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/wildcard/wildcard_entarch.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/host/host_pkg.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/host/host_ent.vhd - $(VCOM) system -explicit $(WILDCARD_BASE)/src/system_entarch.vhd - $(VCOM) pe_lib -explicit pe_arch.vhd - $(VCOM) system -explicit host_arch.vhd - $(VCOM) system -explicit system_cfg.vhd \ No newline at end of file diff --git a/boards/xilinx-kc705-xc7k325t/Makefile.inc b/boards/xilinx-kc705-xc7k325t/Makefile.inc new file mode 100644 index 00000000..39b5bd4d --- /dev/null +++ b/boards/xilinx-kc705-xc7k325t/Makefile.inc @@ -0,0 +1,29 @@ +# FPGA and Dev Board used in Design +TECHNOLOGY=Kintex7 +PART=XC7K325T +PACKAGE=ffg900 +PROTOBOARD=kc705 +SPEED=2 +PROMGENPAR=-x xcf08p -u 0 $(TOP).bit -p mcs -w -o $(BOARD) + +# Set Vivado Synthesis Flow and Strategy used for build +# Choose 'XST 14' or 'Vivado Synthesis 2012' +VIVADO_SYNTH_FLOW="Vivado Synthesis 2012" + +# For 'Vivado Synthesis 2012' +# 1. 'Vivado Synthesis Defaults' +# For 'XST 14' +# 1. 'TimingWithIOBPacking' +# 2. 'TimingWithoutIOBPacking' +# 3. 'AreaReduction' +# 4. 'PowerOptimization' +# 5. 'XST Defaults' +VIVADO_SYNTH_STRATEGY="Vivado Synthesis Defaults" + +# Set Vivado Implementation strategy +# 1. HighEffort +# 2. HighEffortPhySynth +# 3. 'Vivado Implemnation Defaults' +# 4. LowEffort +# 5. QuickEffort +VIVADO_IMPL_STRATEGY="HighEffort" diff --git a/boards/xilinx-kc705-xc7k325t/fpga.cmd b/boards/xilinx-kc705-xc7k325t/fpga.cmd new file mode 100644 index 00000000..5d7b0aaf --- /dev/null +++ b/boards/xilinx-kc705-xc7k325t/fpga.cmd @@ -0,0 +1,25 @@ +setPreference -pref UserLevel:NOVICE +setPreference -pref MessageLevel:DETAILED +setPreference -pref ConcurrentMode:FALSE +setPreference -pref UseHighz:FALSE +setPreference -pref ConfigOnFailure:STOP +setPreference -pref StartupCLock:AUTO_CORRECTION +setPreference -pref AutoSignature:FALSE +setPreference -pref KeepSVF:FALSE +setPreference -pref svfUseTime:FALSE +setPreference -pref UserLevel:NOVICE +setPreference -pref MessageLevel:DETAILED +setPreference -pref ConcurrentMode:FALSE +setPreference -pref UseHighz:FALSE +setPreference -pref ConfigOnFailure:STOP +setPreference -pref StartupCLock:AUTO_CORRECTION +setPreference -pref AutoSignature:FALSE +setPreference -pref KeepSVF:FALSE +setPreference -pref svfUseTime:FALSE +setMode -bs +setCable -port auto +Identify +setAttribute -position 1 -attr configFileName -value "xilinx-kc705-xc7k325t.bit" +Program -p 1 -v +setMode -bs +quit diff --git a/boards/xilinx-kc705-xc7k325t/mig.cgp b/boards/xilinx-kc705-xc7k325t/mig.cgp new file mode 100644 index 00000000..b6d62533 --- /dev/null +++ b/boards/xilinx-kc705-xc7k325t/mig.cgp @@ -0,0 +1,22 @@ +# Date: Thu Nov 8 11:33:03 2012 + +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc7k325t +SET devicefamily = kintex7 +SET flowvendor = Foundation_ISE +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = ffg900 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -2 +SET verilogsim = true +SET vhdlsim = false +SET workingdirectory = ./tmp/ + +# CRC: 5b115b87 diff --git a/boards/xilinx-kc705-xc7k325t/mig.prj b/boards/xilinx-kc705-xc7k325t/mig.prj new file mode 100644 index 00000000..6af0af2a --- /dev/null +++ b/boards/xilinx-kc705-xc7k325t/mig.prj @@ -0,0 +1,187 @@ + + + + mig + 1 + 1 + OFF + 1024 + OFF + xc7k325t-ffg900/-2 + 1.6 + Differential + Use System Clock + FALSE + 0 + 50 Ohms + 1 + + DDR3_SDRAM/SODIMMs/MT8JTF12864HZ-1G6 + 2500 + 1.8V + 4:1 + 200 + 64 + 1 + 1 + Disabled + Strict + FALSE + + 14 + 10 + 3 + BANK_ROW_COLUMN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8 - Fixed + Sequential + 6 + Normal + No + Slow Exit + Enable + RZQ/7 + Disable + Enable + RZQ/4 + 0 + Disabled + Enabled + Output Buffer Enabled + Full Array + 5 + Enabled + Normal + Dynamic ODT off + NATIVE + + + diff --git a/boards/xilinx-kc705-xc7k325t/mig.xco b/boards/xilinx-kc705-xc7k325t/mig.xco new file mode 100644 index 00000000..24e07070 --- /dev/null +++ b/boards/xilinx-kc705-xc7k325t/mig.xco @@ -0,0 +1,49 @@ +############################################################## +# +# Xilinx Core Generator version 14.2 +# Date: Fri Nov 9 10:06:37 2012 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# Generated from component: xilinx.com:ip:mig_7series:1.6 +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc7k325t +SET devicefamily = kintex7 +SET flowvendor = Foundation_ISE +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = ffg900 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -2 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT MIG_7_Series family Xilinx,_Inc. 1.6 +# END Select +# BEGIN Parameters +CSET component_name=mig +CSET xml_input_file=./mig/mig.prj +# END Parameters +# BEGIN Extra information +MISC pkg_timestamp=2012-07-21T06:31:03Z +# END Extra information +GENERATE +# CRC: 8e5c0163 diff --git a/boards/xilinx-kc705-xc7k325t/readme.txt b/boards/xilinx-kc705-xc7k325t/readme.txt new file mode 100644 index 00000000..e8fe95c9 --- /dev/null +++ b/boards/xilinx-kc705-xc7k325t/readme.txt @@ -0,0 +1,3 @@ +This directory contains fpga pinout and xilinx coregen ip setup files used by the reference designs. + +For more information please visit www.xilinx.com/kc705 \ No newline at end of file diff --git a/boards/xilinx-kc705-xc7k325t/xilinx-kc705-xc7k325t.xdc b/boards/xilinx-kc705-xc7k325t/xilinx-kc705-xc7k325t.xdc new file mode 100644 index 00000000..42292b23 --- /dev/null +++ b/boards/xilinx-kc705-xc7k325t/xilinx-kc705-xc7k325t.xdc @@ -0,0 +1,788 @@ +# Define and contraint system clock +create_clock -name clk200 -period 5 [get_ports clk200p] +set_propagated_clock clk200 + +set_property PACKAGE_PIN AD12 [get_ports {clk200p}] +set_property PACKAGE_PIN AD11 [get_ports {clk200n}] +set_property IOSTANDARD DIFF_SSTL15 [get_ports {clk200p}] +set_property IOSTANDARD DIFF_SSTL15 [get_ports {clk200n}] +set_property VCCAUX_IO DONTCARE [get_ports {clk200p}] +set_property VCCAUX_IO DONTCARE [get_ports {clk200n}] + +set_property PACKAGE_PIN AG5 [get_ports {reset }] + +set_property PACKAGE_PIN AB8 [get_ports {led[0] }] +set_property PACKAGE_PIN AA8 [get_ports {led[1] }] +set_property PACKAGE_PIN AC9 [get_ports {led[2] }] +set_property PACKAGE_PIN AB9 [get_ports {led[3] }] +set_property PACKAGE_PIN AE26 [get_ports {led[4] }] +set_property PACKAGE_PIN G19 [get_ports {led[5] }] +set_property PACKAGE_PIN E18 [get_ports {led[6] }] + +set_property PACKAGE_PIN P24 [get_ports {data[0] }] +set_property PACKAGE_PIN R25 [get_ports {data[1] }] +set_property PACKAGE_PIN R20 [get_ports {data[2] }] +set_property PACKAGE_PIN R21 [get_ports {data[3] }] +set_property PACKAGE_PIN T20 [get_ports {data[4] }] +set_property PACKAGE_PIN T21 [get_ports {data[5] }] +set_property PACKAGE_PIN T22 [get_ports {data[6] }] +set_property PACKAGE_PIN T23 [get_ports {data[7] }] +set_property PACKAGE_PIN U20 [get_ports {data[8] }] +set_property PACKAGE_PIN P29 [get_ports {data[9] }] +set_property PACKAGE_PIN R29 [get_ports {data[10] }] +set_property PACKAGE_PIN P27 [get_ports {data[11] }] +set_property PACKAGE_PIN P28 [get_ports {data[12] }] +set_property PACKAGE_PIN T30 [get_ports {data[13] }] +set_property PACKAGE_PIN P26 [get_ports {data[14] }] +set_property PACKAGE_PIN R26 [get_ports {data[15] }] + +set_property PACKAGE_PIN M22 [get_ports {address[25] }] +set_property PACKAGE_PIN M23 [get_ports {address[24] }] +set_property PACKAGE_PIN N26 [get_ports {address[23] }] +set_property PACKAGE_PIN N19 [get_ports {address[22] }] +set_property PACKAGE_PIN N20 [get_ports {address[21] }] +set_property PACKAGE_PIN N21 [get_ports {address[20] }] +set_property PACKAGE_PIN N22 [get_ports {address[19] }] +set_property PACKAGE_PIN N24 [get_ports {address[18] }] +set_property PACKAGE_PIN P21 [get_ports {address[17] }] +set_property PACKAGE_PIN P22 [get_ports {address[16] }] +set_property PACKAGE_PIN V27 [get_ports {address[15] }] +set_property PACKAGE_PIN V29 [get_ports {address[14] }] +set_property PACKAGE_PIN V30 [get_ports {address[13] }] +set_property PACKAGE_PIN V25 [get_ports {address[12] }] +set_property PACKAGE_PIN W26 [get_ports {address[11] }] +set_property PACKAGE_PIN V19 [get_ports {address[10] }] +set_property PACKAGE_PIN V20 [get_ports {address[9] }] +set_property PACKAGE_PIN W23 [get_ports {address[8] }] +set_property PACKAGE_PIN W24 [get_ports {address[7] }] +set_property PACKAGE_PIN U23 [get_ports {address[6] }] +set_property PACKAGE_PIN V21 [get_ports {address[5] }] +set_property PACKAGE_PIN V22 [get_ports {address[4] }] +set_property PACKAGE_PIN U24 [get_ports {address[3] }] +set_property PACKAGE_PIN V24 [get_ports {address[2] }] +set_property PACKAGE_PIN W21 [get_ports {address[1] }] +set_property PACKAGE_PIN W22 [get_ports {address[0] }] + +set_property PACKAGE_PIN M30 [get_ports {adv }] +set_property PACKAGE_PIN U19 [get_ports {romsn }] +set_property PACKAGE_PIN M24 [get_ports {oen }] +set_property PACKAGE_PIN M25 [get_ports {writen }] + +set_property PACKAGE_PIN K24 [get_ports {dsurx }] +set_property PACKAGE_PIN K23 [get_ports {dsurtsn }] +set_property PACKAGE_PIN M19 [get_ports {dsutx }] +set_property PACKAGE_PIN L27 [get_ports {dsuctsn }] + +set_property PACKAGE_PIN G12 [get_ports {button[0] }] +set_property PACKAGE_PIN AA12 [get_ports {button[1] }] +set_property PACKAGE_PIN AB12 [get_ports {button[2] }] + +set_property PACKAGE_PIN Y28 [get_ports {switch[0] }] +set_property PACKAGE_PIN AA28 [get_ports {switch[1] }] +set_property PACKAGE_PIN W29 [get_ports {switch[2] }] +set_property PACKAGE_PIN Y29 [get_ports {switch[3] }] + +set_property PACKAGE_PIN L21 [get_ports {iic_scl }] +set_property PACKAGE_PIN K21 [get_ports {iic_sda }] + +set_property IOSTANDARD LVCMOS25 [get_ports {dsurx }] +set_property IOSTANDARD LVCMOS25 [get_ports {dsurtsn }] +set_property IOSTANDARD LVCMOS25 [get_ports {dsutx }] +set_property IOSTANDARD LVCMOS25 [get_ports {dsuctsn }] + + +# Bank: 32 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[0]}] +set_property SLEW FAST [get_ports {ddr3_dq[0]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[0]}] +set_property LOC AA15 [get_ports {ddr3_dq[0]}] + +# Bank: 32 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[1]}] +set_property SLEW FAST [get_ports {ddr3_dq[1]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[1]}] +set_property LOC AA16 [get_ports {ddr3_dq[1]}] + +# Bank: 32 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[2]}] +set_property SLEW FAST [get_ports {ddr3_dq[2]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[2]}] +set_property LOC AC14 [get_ports {ddr3_dq[2]}] + +# Bank: 32 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[3]}] +set_property SLEW FAST [get_ports {ddr3_dq[3]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[3]}] +set_property LOC AD14 [get_ports {ddr3_dq[3]}] + +# Bank: 32 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[4]}] +set_property SLEW FAST [get_ports {ddr3_dq[4]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[4]}] +set_property LOC AA17 [get_ports {ddr3_dq[4]}] + +# Bank: 32 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[5]}] +set_property SLEW FAST [get_ports {ddr3_dq[5]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[5]}] +set_property LOC AB15 [get_ports {ddr3_dq[5]}] + +# Bank: 32 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[6]}] +set_property SLEW FAST [get_ports {ddr3_dq[6]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[6]}] +set_property LOC AE15 [get_ports {ddr3_dq[6]}] + +# Bank: 32 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[7]}] +set_property SLEW FAST [get_ports {ddr3_dq[7]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[7]}] +set_property LOC Y15 [get_ports {ddr3_dq[7]}] + +# Bank: 32 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[8]}] +set_property SLEW FAST [get_ports {ddr3_dq[8]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[8]}] +set_property LOC AB19 [get_ports {ddr3_dq[8]}] + +# Bank: 32 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[9]}] +set_property SLEW FAST [get_ports {ddr3_dq[9]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[9]}] +set_property LOC AD16 [get_ports {ddr3_dq[9]}] + +# Bank: 32 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[10]}] +set_property SLEW FAST [get_ports {ddr3_dq[10]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[10]}] +set_property LOC AC19 [get_ports {ddr3_dq[10]}] + +# Bank: 32 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[11]}] +set_property SLEW FAST [get_ports {ddr3_dq[11]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[11]}] +set_property LOC AD17 [get_ports {ddr3_dq[11]}] + +# Bank: 32 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[12]}] +set_property SLEW FAST [get_ports {ddr3_dq[12]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[12]}] +set_property LOC AA18 [get_ports {ddr3_dq[12]}] + +# Bank: 32 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[13]}] +set_property SLEW FAST [get_ports {ddr3_dq[13]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[13]}] +set_property LOC AB18 [get_ports {ddr3_dq[13]}] + +# Bank: 32 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[14]}] +set_property SLEW FAST [get_ports {ddr3_dq[14]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[14]}] +set_property LOC AE18 [get_ports {ddr3_dq[14]}] + +# Bank: 32 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[15]}] +set_property SLEW FAST [get_ports {ddr3_dq[15]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[15]}] +set_property LOC AD18 [get_ports {ddr3_dq[15]}] + +# Bank: 32 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[16]}] +set_property SLEW FAST [get_ports {ddr3_dq[16]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[16]}] +set_property LOC AG19 [get_ports {ddr3_dq[16]}] + +# Bank: 32 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[17]}] +set_property SLEW FAST [get_ports {ddr3_dq[17]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[17]}] +set_property LOC AK19 [get_ports {ddr3_dq[17]}] + +# Bank: 32 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[18]}] +set_property SLEW FAST [get_ports {ddr3_dq[18]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[18]}] +set_property LOC AG18 [get_ports {ddr3_dq[18]}] + +# Bank: 32 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[19]}] +set_property SLEW FAST [get_ports {ddr3_dq[19]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[19]}] +set_property LOC AF18 [get_ports {ddr3_dq[19]}] + +# Bank: 32 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[20]}] +set_property SLEW FAST [get_ports {ddr3_dq[20]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[20]}] +set_property LOC AH19 [get_ports {ddr3_dq[20]}] + +# Bank: 32 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[21]}] +set_property SLEW FAST [get_ports {ddr3_dq[21]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[21]}] +set_property LOC AJ19 [get_ports {ddr3_dq[21]}] + +# Bank: 32 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[22]}] +set_property SLEW FAST [get_ports {ddr3_dq[22]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[22]}] +set_property LOC AE19 [get_ports {ddr3_dq[22]}] + +# Bank: 32 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[23]}] +set_property SLEW FAST [get_ports {ddr3_dq[23]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[23]}] +set_property LOC AD19 [get_ports {ddr3_dq[23]}] + +# Bank: 32 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[24]}] +set_property SLEW FAST [get_ports {ddr3_dq[24]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[24]}] +set_property LOC AK16 [get_ports {ddr3_dq[24]}] + +# Bank: 32 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[25]}] +set_property SLEW FAST [get_ports {ddr3_dq[25]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[25]}] +set_property LOC AJ17 [get_ports {ddr3_dq[25]}] + +# Bank: 32 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[26]}] +set_property SLEW FAST [get_ports {ddr3_dq[26]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[26]}] +set_property LOC AG15 [get_ports {ddr3_dq[26]}] + +# Bank: 32 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[27]}] +set_property SLEW FAST [get_ports {ddr3_dq[27]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[27]}] +set_property LOC AF15 [get_ports {ddr3_dq[27]}] + +# Bank: 32 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[28]}] +set_property SLEW FAST [get_ports {ddr3_dq[28]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[28]}] +set_property LOC AH17 [get_ports {ddr3_dq[28]}] + +# Bank: 32 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[29]}] +set_property SLEW FAST [get_ports {ddr3_dq[29]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[29]}] +set_property LOC AG14 [get_ports {ddr3_dq[29]}] + +# Bank: 32 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[30]}] +set_property SLEW FAST [get_ports {ddr3_dq[30]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[30]}] +set_property LOC AH15 [get_ports {ddr3_dq[30]}] + +# Bank: 32 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[31]}] +set_property SLEW FAST [get_ports {ddr3_dq[31]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[31]}] +set_property LOC AK15 [get_ports {ddr3_dq[31]}] + +# Bank: 34 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[32]}] +set_property SLEW FAST [get_ports {ddr3_dq[32]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[32]}] +set_property LOC AK8 [get_ports {ddr3_dq[32]}] + +# Bank: 34 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[33]}] +set_property SLEW FAST [get_ports {ddr3_dq[33]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[33]}] +set_property LOC AK6 [get_ports {ddr3_dq[33]}] + +# Bank: 34 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[34]}] +set_property SLEW FAST [get_ports {ddr3_dq[34]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[34]}] +set_property LOC AG7 [get_ports {ddr3_dq[34]}] + +# Bank: 34 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[35]}] +set_property SLEW FAST [get_ports {ddr3_dq[35]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[35]}] +set_property LOC AF7 [get_ports {ddr3_dq[35]}] + +# Bank: 34 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[36]}] +set_property SLEW FAST [get_ports {ddr3_dq[36]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[36]}] +set_property LOC AF8 [get_ports {ddr3_dq[36]}] + +# Bank: 34 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[37]}] +set_property SLEW FAST [get_ports {ddr3_dq[37]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[37]}] +set_property LOC AK4 [get_ports {ddr3_dq[37]}] + +# Bank: 34 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[38]}] +set_property SLEW FAST [get_ports {ddr3_dq[38]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[38]}] +set_property LOC AJ8 [get_ports {ddr3_dq[38]}] + +# Bank: 34 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[39]}] +set_property SLEW FAST [get_ports {ddr3_dq[39]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[39]}] +set_property LOC AJ6 [get_ports {ddr3_dq[39]}] + +# Bank: 34 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[40]}] +set_property SLEW FAST [get_ports {ddr3_dq[40]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[40]}] +set_property LOC AH5 [get_ports {ddr3_dq[40]}] + +# Bank: 34 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[41]}] +set_property SLEW FAST [get_ports {ddr3_dq[41]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[41]}] +set_property LOC AH6 [get_ports {ddr3_dq[41]}] + +# Bank: 34 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[42]}] +set_property SLEW FAST [get_ports {ddr3_dq[42]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[42]}] +set_property LOC AJ2 [get_ports {ddr3_dq[42]}] + +# Bank: 34 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[43]}] +set_property SLEW FAST [get_ports {ddr3_dq[43]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[43]}] +set_property LOC AH2 [get_ports {ddr3_dq[43]}] + +# Bank: 34 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[44]}] +set_property SLEW FAST [get_ports {ddr3_dq[44]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[44]}] +set_property LOC AH4 [get_ports {ddr3_dq[44]}] + +# Bank: 34 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[45]}] +set_property SLEW FAST [get_ports {ddr3_dq[45]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[45]}] +set_property LOC AJ4 [get_ports {ddr3_dq[45]}] + +# Bank: 34 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[46]}] +set_property SLEW FAST [get_ports {ddr3_dq[46]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[46]}] +set_property LOC AK1 [get_ports {ddr3_dq[46]}] + +# Bank: 34 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[47]}] +set_property SLEW FAST [get_ports {ddr3_dq[47]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[47]}] +set_property LOC AJ1 [get_ports {ddr3_dq[47]}] + +# Bank: 34 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[48]}] +set_property SLEW FAST [get_ports {ddr3_dq[48]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[48]}] +set_property LOC AF1 [get_ports {ddr3_dq[48]}] + +# Bank: 34 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[49]}] +set_property SLEW FAST [get_ports {ddr3_dq[49]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[49]}] +set_property LOC AF2 [get_ports {ddr3_dq[49]}] + +# Bank: 34 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[50]}] +set_property SLEW FAST [get_ports {ddr3_dq[50]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[50]}] +set_property LOC AE4 [get_ports {ddr3_dq[50]}] + +# Bank: 34 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[51]}] +set_property SLEW FAST [get_ports {ddr3_dq[51]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[51]}] +set_property LOC AE3 [get_ports {ddr3_dq[51]}] + +# Bank: 34 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[52]}] +set_property SLEW FAST [get_ports {ddr3_dq[52]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[52]}] +set_property LOC AF3 [get_ports {ddr3_dq[52]}] + +# Bank: 34 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[53]}] +set_property SLEW FAST [get_ports {ddr3_dq[53]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[53]}] +set_property LOC AF5 [get_ports {ddr3_dq[53]}] + +# Bank: 34 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[54]}] +set_property SLEW FAST [get_ports {ddr3_dq[54]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[54]}] +set_property LOC AE1 [get_ports {ddr3_dq[54]}] + +# Bank: 34 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[55]}] +set_property SLEW FAST [get_ports {ddr3_dq[55]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[55]}] +set_property LOC AE5 [get_ports {ddr3_dq[55]}] + +# Bank: 34 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[56]}] +set_property SLEW FAST [get_ports {ddr3_dq[56]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[56]}] +set_property LOC AC1 [get_ports {ddr3_dq[56]}] + +# Bank: 34 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[57]}] +set_property SLEW FAST [get_ports {ddr3_dq[57]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[57]}] +set_property LOC AD3 [get_ports {ddr3_dq[57]}] + +# Bank: 34 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[58]}] +set_property SLEW FAST [get_ports {ddr3_dq[58]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[58]}] +set_property LOC AC4 [get_ports {ddr3_dq[58]}] + +# Bank: 34 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[59]}] +set_property SLEW FAST [get_ports {ddr3_dq[59]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[59]}] +set_property LOC AC5 [get_ports {ddr3_dq[59]}] + +# Bank: 34 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[60]}] +set_property SLEW FAST [get_ports {ddr3_dq[60]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[60]}] +set_property LOC AE6 [get_ports {ddr3_dq[60]}] + +# Bank: 34 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[61]}] +set_property SLEW FAST [get_ports {ddr3_dq[61]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[61]}] +set_property LOC AD6 [get_ports {ddr3_dq[61]}] + +# Bank: 34 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[62]}] +set_property SLEW FAST [get_ports {ddr3_dq[62]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[62]}] +set_property LOC AC2 [get_ports {ddr3_dq[62]}] + +# Bank: 34 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[63]}] +set_property SLEW FAST [get_ports {ddr3_dq[63]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[63]}] +set_property LOC AD4 [get_ports {ddr3_dq[63]}] + +# Bank: 33 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[13]}] +set_property SLEW FAST [get_ports {ddr3_addr[13]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[13]}] +set_property LOC AH11 [get_ports {ddr3_addr[13]}] + +# Bank: 33 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[12]}] +set_property SLEW FAST [get_ports {ddr3_addr[12]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[12]}] +set_property LOC AJ11 [get_ports {ddr3_addr[12]}] + +# Bank: 33 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[11]}] +set_property SLEW FAST [get_ports {ddr3_addr[11]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[11]}] +set_property LOC AE13 [get_ports {ddr3_addr[11]}] + +# Bank: 33 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[10]}] +set_property SLEW FAST [get_ports {ddr3_addr[10]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[10]}] +set_property LOC AF13 [get_ports {ddr3_addr[10]}] + +# Bank: 33 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[9]}] +set_property SLEW FAST [get_ports {ddr3_addr[9]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[9]}] +set_property LOC AK14 [get_ports {ddr3_addr[9]}] + +# Bank: 33 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[8]}] +set_property SLEW FAST [get_ports {ddr3_addr[8]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[8]}] +set_property LOC AK13 [get_ports {ddr3_addr[8]}] + +# Bank: 33 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[7]}] +set_property SLEW FAST [get_ports {ddr3_addr[7]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[7]}] +set_property LOC AH14 [get_ports {ddr3_addr[7]}] + +# Bank: 33 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[6]}] +set_property SLEW FAST [get_ports {ddr3_addr[6]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[6]}] +set_property LOC AJ14 [get_ports {ddr3_addr[6]}] + +# Bank: 33 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[5]}] +set_property SLEW FAST [get_ports {ddr3_addr[5]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[5]}] +set_property LOC AJ13 [get_ports {ddr3_addr[5]}] + +# Bank: 33 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[4]}] +set_property SLEW FAST [get_ports {ddr3_addr[4]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[4]}] +set_property LOC AJ12 [get_ports {ddr3_addr[4]}] + +# Bank: 33 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[3]}] +set_property SLEW FAST [get_ports {ddr3_addr[3]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[3]}] +set_property LOC AF12 [get_ports {ddr3_addr[3]}] + +# Bank: 33 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[2]}] +set_property SLEW FAST [get_ports {ddr3_addr[2]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[2]}] +set_property LOC AG12 [get_ports {ddr3_addr[2]}] + +# Bank: 33 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[1]}] +set_property SLEW FAST [get_ports {ddr3_addr[1]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[1]}] +set_property LOC AG13 [get_ports {ddr3_addr[1]}] + +# Bank: 33 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[0]}] +set_property SLEW FAST [get_ports {ddr3_addr[0]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[0]}] +set_property LOC AH12 [get_ports {ddr3_addr[0]}] + +# Bank: 33 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ba[2]}] +set_property SLEW FAST [get_ports {ddr3_ba[2]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_ba[2]}] +set_property LOC AK9 [get_ports {ddr3_ba[2]}] + +# Bank: 33 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ba[1]}] +set_property SLEW FAST [get_ports {ddr3_ba[1]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_ba[1]}] +set_property LOC AG9 [get_ports {ddr3_ba[1]}] + +# Bank: 33 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ba[0]}] +set_property SLEW FAST [get_ports {ddr3_ba[0]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_ba[0]}] +set_property LOC AH9 [get_ports {ddr3_ba[0]}] + +# Bank: 33 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ras_n}] +set_property SLEW FAST [get_ports {ddr3_ras_n}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_ras_n}] +set_property LOC AD9 [get_ports {ddr3_ras_n}] + +# Bank: 33 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_cas_n}] +set_property SLEW FAST [get_ports {ddr3_cas_n}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_cas_n}] +set_property LOC AC11 [get_ports {ddr3_cas_n}] + +# Bank: 33 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_we_n}] +set_property SLEW FAST [get_ports {ddr3_we_n}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_we_n}] +set_property LOC AE9 [get_ports {ddr3_we_n}] + +# Bank: 34 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_reset_n}] +set_property SLEW FAST [get_ports {ddr3_reset_n}] +set_property IOSTANDARD LVCMOS15 [get_ports {ddr3_reset_n}] +set_property LOC AK3 [get_ports {ddr3_reset_n}] + +# Bank: 33 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_cke[0]}] +set_property SLEW FAST [get_ports {ddr3_cke[0]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_cke[0]}] +set_property LOC AF10 [get_ports {ddr3_cke[0]}] + +# Bank: 33 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_odt[0]}] +set_property SLEW FAST [get_ports {ddr3_odt[0]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_odt[0]}] +set_property LOC AD8 [get_ports {ddr3_odt[0]}] + +# Bank: 33 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_cs_n[0]}] +set_property SLEW FAST [get_ports {ddr3_cs_n[0]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_cs_n[0]}] +set_property LOC AC12 [get_ports {ddr3_cs_n[0]}] + +# Bank: 32 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[0]}] +set_property SLEW FAST [get_ports {ddr3_dm[0]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[0]}] +set_property LOC Y16 [get_ports {ddr3_dm[0]}] + +# Bank: 32 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[1]}] +set_property SLEW FAST [get_ports {ddr3_dm[1]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[1]}] +set_property LOC AB17 [get_ports {ddr3_dm[1]}] + +# Bank: 32 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[2]}] +set_property SLEW FAST [get_ports {ddr3_dm[2]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[2]}] +set_property LOC AF17 [get_ports {ddr3_dm[2]}] + +# Bank: 32 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[3]}] +set_property SLEW FAST [get_ports {ddr3_dm[3]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[3]}] +set_property LOC AE16 [get_ports {ddr3_dm[3]}] + +# Bank: 34 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[4]}] +set_property SLEW FAST [get_ports {ddr3_dm[4]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[4]}] +set_property LOC AK5 [get_ports {ddr3_dm[4]}] + +# Bank: 34 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[5]}] +set_property SLEW FAST [get_ports {ddr3_dm[5]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[5]}] +set_property LOC AJ3 [get_ports {ddr3_dm[5]}] + +# Bank: 34 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[6]}] +set_property SLEW FAST [get_ports {ddr3_dm[6]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[6]}] +set_property LOC AF6 [get_ports {ddr3_dm[6]}] + +# Bank: 34 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[7]}] +set_property SLEW FAST [get_ports {ddr3_dm[7]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[7]}] +set_property LOC AC7 [get_ports {ddr3_dm[7]}] + +# Bank: 32 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[0]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[0]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[0]}] +set_property LOC AC16 [get_ports {ddr3_dqs_p[0]}] + +# Bank: 32 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[0]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[0]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[0]}] +set_property LOC AC15 [get_ports {ddr3_dqs_n[0]}] + +# Bank: 32 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[1]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[1]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[1]}] +set_property LOC Y19 [get_ports {ddr3_dqs_p[1]}] + +# Bank: 32 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[1]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[1]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[1]}] +set_property LOC Y18 [get_ports {ddr3_dqs_n[1]}] + +# Bank: 32 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[2]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[2]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[2]}] +set_property LOC AJ18 [get_ports {ddr3_dqs_p[2]}] + +# Bank: 32 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[2]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[2]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[2]}] +set_property LOC AK18 [get_ports {ddr3_dqs_n[2]}] + +# Bank: 32 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[3]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[3]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[3]}] +set_property LOC AH16 [get_ports {ddr3_dqs_p[3]}] + +# Bank: 32 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[3]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[3]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[3]}] +set_property LOC AJ16 [get_ports {ddr3_dqs_n[3]}] + +# Bank: 34 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[4]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[4]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[4]}] +set_property LOC AH7 [get_ports {ddr3_dqs_p[4]}] + +# Bank: 34 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[4]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[4]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[4]}] +set_property LOC AJ7 [get_ports {ddr3_dqs_n[4]}] + +# Bank: 34 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[5]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[5]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[5]}] +set_property LOC AG2 [get_ports {ddr3_dqs_p[5]}] + +# Bank: 34 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[5]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[5]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[5]}] +set_property LOC AH1 [get_ports {ddr3_dqs_n[5]}] + +# Bank: 34 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[6]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[6]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[6]}] +set_property LOC AG4 [get_ports {ddr3_dqs_p[6]}] + +# Bank: 34 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[6]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[6]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[6]}] +set_property LOC AG3 [get_ports {ddr3_dqs_n[6]}] + +# Bank: 34 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[7]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[7]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[7]}] +set_property LOC AD2 [get_ports {ddr3_dqs_p[7]}] + +# Bank: 34 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[7]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[7]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[7]}] +set_property LOC AD1 [get_ports {ddr3_dqs_n[7]}] + +# Bank: 33 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ck_p[0]}] +set_property SLEW FAST [get_ports {ddr3_ck_p[0]}] +set_property IOSTANDARD DIFF_SSTL15 [get_ports {ddr3_ck_p[0]}] +set_property LOC AG10 [get_ports {ddr3_ck_p[0]}] + +# Bank: 33 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ck_n[0]}] +set_property SLEW FAST [get_ports {ddr3_ck_n[0]}] +set_property IOSTANDARD DIFF_SSTL15 [get_ports {ddr3_ck_n[0]}] +set_property LOC AH10 [get_ports {ddr3_ck_n[0]}] + +# Bank: 33 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ck_p[0]}] +set_property SLEW FAST [get_ports {ddr3_ck_p[0]}] +set_property IOSTANDARD DIFF_SSTL15 [get_ports {ddr3_ck_p[0]}] +set_property LOC AG10 [get_ports {ddr3_ck_p[0]}] + +# Bank: 33 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ck_n[0]}] +set_property SLEW FAST [get_ports {ddr3_ck_n[0]}] +set_property IOSTANDARD DIFF_SSTL15 [get_ports {ddr3_ck_n[0]}] +set_property LOC AH10 [get_ports {ddr3_ck_n[0]}] diff --git a/boards/xilinx-ml605-xc6vlx240t/Makefile.inc b/boards/xilinx-ml605-xc6vlx240t/Makefile.inc index 6a259bdc..46958583 100644 --- a/boards/xilinx-ml605-xc6vlx240t/Makefile.inc +++ b/boards/xilinx-ml605-xc6vlx240t/Makefile.inc @@ -14,3 +14,10 @@ MANUFACTURER=Xilinx MGCPART=XC6VLX16$(PACKAGE) MGCTECHNOLOGY=VIRTEX-6 MGCPACKAGE=$(PACKAGE) + +# Set PlanAhead Synthesis Flow and Strategy used for build +PLANAHEAD_SYNTH_FLOW="XST 14" +PLANAHEAD_SYNTH_STRATEGY="TimingWithIOBPacking" + +# Set PlanAhead Implementation strategy +PLANAHEAD_IMPL_STRATEGY="MapLogicOptParHighExtra" diff --git a/boards/xilinx-vc707-xc7vx485t/Makefile.inc b/boards/xilinx-vc707-xc7vx485t/Makefile.inc new file mode 100644 index 00000000..54b5cafe --- /dev/null +++ b/boards/xilinx-vc707-xc7vx485t/Makefile.inc @@ -0,0 +1,29 @@ +# FPGA and Dev Board used in Design +TECHNOLOGY=Virtex7 +PART=XC7VX485T +PACKAGE=ffg1761 +PROTOBOARD=vc707 +SPEED=2 +PROMGENPAR=-x xcf08p -u 0 $(TOP).bit -p mcs -w -o $(BOARD) + +# Set Vivado Synthesis Flow and Strategy used for build +# Choose 'XST 14' or 'Vivado Synthesis 2012' +VIVADO_SYNTH_FLOW="Vivado Synthesis 2012" + +# For 'Vivado Synthesis 2012' flow set: +# 1. 'Vivado Synthesis Defaults' +# For 'XST 14'flow set: +# 1. 'TimingWithIOBPacking' +# 2. 'TimingWithoutIOBPacking' +# 3. 'AreaReduction' +# 4. 'PowerOptimization' +# 5. 'XST Defaults' +VIVADO_SYNTH_STRATEGY="Vivado Synthesis Defaults" + +# Set Vivado Implementation strategy +# 1. 'HighEffort' +# 2. 'HighEffortPhySynth' +# 3. 'Vivado Implemnation Defaults' +# 4. 'LowEffort' +# 5. 'QuickEffort' +VIVADO_IMPL_STRATEGY="HighEffort" diff --git a/boards/xilinx-vc707-xc7vx485t/mig.cgp b/boards/xilinx-vc707-xc7vx485t/mig.cgp new file mode 100644 index 00000000..f67423f4 --- /dev/null +++ b/boards/xilinx-vc707-xc7vx485t/mig.cgp @@ -0,0 +1,22 @@ +# Date: Mon Nov 12 08:12:49 2012 + +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc7vx485t +SET devicefamily = virtex7 +SET flowvendor = Foundation_ISE +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = ffg1761 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -2 +SET verilogsim = true +SET vhdlsim = false +SET workingdirectory = ./tmp/ + +# CRC: cd238220 diff --git a/boards/xilinx-vc707-xc7vx485t/mig.prj b/boards/xilinx-vc707-xc7vx485t/mig.prj new file mode 100644 index 00000000..21d8bfed --- /dev/null +++ b/boards/xilinx-vc707-xc7vx485t/mig.prj @@ -0,0 +1,187 @@ + + + + mig + 1 + 1 + OFF + 1024 + OFF + xc7vx485t-ffg1761/-2 + 1.6 + Differential + Use System Clock + FALSE + 0 + 50 Ohms + 0 + + DDR3_SDRAM/SODIMMs/MT8JTF12864HZ-1G6 + 2500 + 1.8V + 4:1 + 200 + 64 + 1 + 1 + Disabled + Strict + FALSE + + 14 + 10 + 3 + BANK_ROW_COLUMN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8 - Fixed + Sequential + 6 + Normal + No + Slow Exit + Enable + RZQ/7 + Disable + Enable + RZQ/4 + 0 + Disabled + Enabled + Output Buffer Enabled + Full Array + 5 + Enabled + Normal + Dynamic ODT off + NATIVE + + + diff --git a/boards/xilinx-vc707-xc7vx485t/mig.xco b/boards/xilinx-vc707-xc7vx485t/mig.xco new file mode 100644 index 00000000..d1737736 --- /dev/null +++ b/boards/xilinx-vc707-xc7vx485t/mig.xco @@ -0,0 +1,49 @@ +############################################################## +# +# Xilinx Core Generator version 14.2 +# Date: Mon Nov 12 08:14:48 2012 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# Generated from component: xilinx.com:ip:mig_7series:1.6 +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc7vx485t +SET devicefamily = virtex7 +SET flowvendor = Foundation_ISE +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = ffg1761 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -2 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT MIG_7_Series family Xilinx,_Inc. 1.6 +# END Select +# BEGIN Parameters +CSET component_name=mig +CSET xml_input_file=./mig/mig.prj +# END Parameters +# BEGIN Extra information +MISC pkg_timestamp=2012-07-21T06:31:03Z +# END Extra information +GENERATE +# CRC: 4975eece diff --git a/boards/xilinx-vc707-xc7vx485t/readme.txt b/boards/xilinx-vc707-xc7vx485t/readme.txt new file mode 100644 index 00000000..eb94d238 --- /dev/null +++ b/boards/xilinx-vc707-xc7vx485t/readme.txt @@ -0,0 +1,3 @@ +This directory contains fpga pinout and xilinx coregen ip setup files used by the reference designs. + +For more information please visit www.xilinx.com/vc707 \ No newline at end of file diff --git a/boards/xilinx-vc707-xc7vx485t/xilinx-vc707-xc7vx485t.xdc b/boards/xilinx-vc707-xc7vx485t/xilinx-vc707-xc7vx485t.xdc new file mode 100644 index 00000000..c052ca55 --- /dev/null +++ b/boards/xilinx-vc707-xc7vx485t/xilinx-vc707-xc7vx485t.xdc @@ -0,0 +1,784 @@ +# Define and contraint system clock +create_clock -name clk200 -period 5 [get_ports clk200p] +set_propagated_clock clk200 + +set_property PACKAGE_PIN E19 [get_ports {clk200p }] +set_property PACKAGE_PIN E18 [get_ports {clk200n }] +set_property IOSTANDARD DIFF_SSTL15 [get_ports {clk200p}] +set_property IOSTANDARD DIFF_SSTL15 [get_ports {clk200n}] +set_property VCCAUX_IO DONTCARE [get_ports {clk200p}] +set_property VCCAUX_IO DONTCARE [get_ports {clk200n}] + + +set_property PACKAGE_PIN AV40 [get_ports {reset }] + +set_property PACKAGE_PIN AM39 [get_ports {led[0] }] +set_property PACKAGE_PIN AN39 [get_ports {led[1] }] +set_property PACKAGE_PIN AR37 [get_ports {led[2] }] +set_property PACKAGE_PIN AT37 [get_ports {led[3] }] +set_property PACKAGE_PIN AR35 [get_ports {led[4] }] +set_property PACKAGE_PIN AP41 [get_ports {led[5] }] +set_property PACKAGE_PIN AP42 [get_ports {led[6] }] + +set_property PACKAGE_PIN AM36 [get_ports {data[0] }] +set_property PACKAGE_PIN AN36 [get_ports {data[1] }] +set_property PACKAGE_PIN AJ36 [get_ports {data[2] }] +set_property PACKAGE_PIN AJ37 [get_ports {data[3] }] +set_property PACKAGE_PIN AK37 [get_ports {data[4] }] +set_property PACKAGE_PIN AL37 [get_ports {data[5] }] +set_property PACKAGE_PIN AN35 [get_ports {data[6] }] +set_property PACKAGE_PIN AP35 [get_ports {data[7] }] +set_property PACKAGE_PIN AM37 [get_ports {data[8] }] +set_property PACKAGE_PIN AG33 [get_ports {data[9] }] +set_property PACKAGE_PIN AH33 [get_ports {data[10] }] +set_property PACKAGE_PIN AK35 [get_ports {data[11] }] +set_property PACKAGE_PIN AL35 [get_ports {data[12] }] +set_property PACKAGE_PIN AJ31 [get_ports {data[13] }] +set_property PACKAGE_PIN AH34 [get_ports {data[14] }] +set_property PACKAGE_PIN AJ35 [get_ports {data[15] }] +set_property PACKAGE_PIN AW41 [get_ports {address[25] }] +set_property PACKAGE_PIN AW42 [get_ports {address[24] }] +set_property PACKAGE_PIN BB39 [get_ports {address[23] }] +set_property PACKAGE_PIN BA39 [get_ports {address[22] }] +set_property PACKAGE_PIN BA40 [get_ports {address[21] }] +set_property PACKAGE_PIN AT41 [get_ports {address[20] }] +set_property PACKAGE_PIN AU42 [get_ports {address[19] }] +set_property PACKAGE_PIN BA42 [get_ports {address[18] }] +set_property PACKAGE_PIN AU41 [get_ports {address[17] }] +set_property PACKAGE_PIN AV41 [get_ports {address[16] }] +set_property PACKAGE_PIN AM32 [get_ports {address[15] }] +set_property PACKAGE_PIN AM33 [get_ports {address[14] }] +set_property PACKAGE_PIN AN33 [get_ports {address[13] }] +set_property PACKAGE_PIN AL29 [get_ports {address[12] }] +set_property PACKAGE_PIN AL30 [get_ports {address[11] }] +set_property PACKAGE_PIN AH29 [get_ports {address[10] }] +set_property PACKAGE_PIN AH30 [get_ports {address[9] }] +set_property PACKAGE_PIN AJ30 [get_ports {address[8] }] +set_property PACKAGE_PIN AK30 [get_ports {address[7] }] +set_property PACKAGE_PIN AG29 [get_ports {address[6] }] +set_property PACKAGE_PIN AK28 [get_ports {address[5] }] +set_property PACKAGE_PIN AK29 [get_ports {address[4] }] +set_property PACKAGE_PIN AF30 [get_ports {address[3] }] +set_property PACKAGE_PIN AG31 [get_ports {address[2] }] +set_property PACKAGE_PIN AH28 [get_ports {address[1] }] +set_property PACKAGE_PIN AJ28 [get_ports {address[0] }] +set_property PACKAGE_PIN AY37 [get_ports {adv }] +set_property PACKAGE_PIN AL36 [get_ports {romsn }] +#set_property PACKAGE_PIN AM34 [get_ports {FLASH_WAIT }] +set_property PACKAGE_PIN BA41 [get_ports {oen }] +set_property PACKAGE_PIN BB41 [get_ports {writen }] +#set_property PACKAGE PIN N10 [get_ports {FLASH_CLK }] +#set_property PACKAGE PIN AG11 [get_ports {FPGA_INIT_B }] + +set_property PACKAGE_PIN AU36 [get_ports {dsurx }] +set_property PACKAGE_PIN AT32 [get_ports {dsurtsn }] +set_property PACKAGE_PIN AU33 [get_ports {dsutx }] +set_property PACKAGE_PIN AR34 [get_ports {dsuctsn }] + +set_property PACKAGE_PIN AP40 [get_ports {button[0] }] +set_property PACKAGE_PIN AR40 [get_ports {button[1] }] +set_property PACKAGE_PIN AV39 [get_ports {button[2] }] +set_property PACKAGE_PIN AU38 [get_ports {button[3] }] +set_property PACKAGE_PIN AY33 [get_ports {switch[0] }] +set_property PACKAGE_PIN BA31 [get_ports {switch[1] }] +set_property PACKAGE_PIN BA32 [get_ports {switch[2] }] +set_property PACKAGE_PIN AW30 [get_ports {switch[3] }] +set_property PACKAGE_PIN AT35 [get_ports {iic_scl }] +set_property PACKAGE_PIN AU32 [get_ports {iic_sda }] + +set_property IOSTANDARD LVCMOS18 [get_ports {dsurx }] +set_property IOSTANDARD LVCMOS18 [get_ports {dsurtsn }] +set_property IOSTANDARD LVCMOS18 [get_ports {dsutx }] +set_property IOSTANDARD LVCMOS18 [get_ports {dsuctsn }] +set_property IOSTANDARD LVCMOS18 [get_ports {led[2] }] +set_property IOSTANDARD LVCMOS18 [get_ports {led[4] }] +set_property IOSTANDARD LVCMOS18 [get_ports {led[5] }] +set_property IOSTANDARD LVCMOS18 [get_ports {led[6] }] +set_property IOSTANDARD LVCMOS18 [get_ports {button[3]}] + +############################################################## + +# Bank: 39 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[0]}] +set_property SLEW FAST [get_ports {ddr3_dq[0]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[0]}] +set_property LOC N14 [get_ports {ddr3_dq[0]}] + +# Bank: 39 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[1]}] +set_property SLEW FAST [get_ports {ddr3_dq[1]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[1]}] +set_property LOC N13 [get_ports {ddr3_dq[1]}] + +# Bank: 39 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[2]}] +set_property SLEW FAST [get_ports {ddr3_dq[2]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[2]}] +set_property LOC L14 [get_ports {ddr3_dq[2]}] + +# Bank: 39 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[3]}] +set_property SLEW FAST [get_ports {ddr3_dq[3]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[3]}] +set_property LOC M14 [get_ports {ddr3_dq[3]}] + +# Bank: 39 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[4]}] +set_property SLEW FAST [get_ports {ddr3_dq[4]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[4]}] +set_property LOC M12 [get_ports {ddr3_dq[4]}] + +# Bank: 39 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[5]}] +set_property SLEW FAST [get_ports {ddr3_dq[5]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[5]}] +set_property LOC N15 [get_ports {ddr3_dq[5]}] + +# Bank: 39 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[6]}] +set_property SLEW FAST [get_ports {ddr3_dq[6]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[6]}] +set_property LOC M11 [get_ports {ddr3_dq[6]}] + +# Bank: 39 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[7]}] +set_property SLEW FAST [get_ports {ddr3_dq[7]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[7]}] +set_property LOC L12 [get_ports {ddr3_dq[7]}] + +# Bank: 39 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[8]}] +set_property SLEW FAST [get_ports {ddr3_dq[8]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[8]}] +set_property LOC K14 [get_ports {ddr3_dq[8]}] + +# Bank: 39 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[9]}] +set_property SLEW FAST [get_ports {ddr3_dq[9]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[9]}] +set_property LOC K13 [get_ports {ddr3_dq[9]}] + +# Bank: 39 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[10]}] +set_property SLEW FAST [get_ports {ddr3_dq[10]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[10]}] +set_property LOC H13 [get_ports {ddr3_dq[10]}] + +# Bank: 39 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[11]}] +set_property SLEW FAST [get_ports {ddr3_dq[11]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[11]}] +set_property LOC J13 [get_ports {ddr3_dq[11]}] + +# Bank: 39 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[12]}] +set_property SLEW FAST [get_ports {ddr3_dq[12]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[12]}] +set_property LOC L16 [get_ports {ddr3_dq[12]}] + +# Bank: 39 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[13]}] +set_property SLEW FAST [get_ports {ddr3_dq[13]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[13]}] +set_property LOC L15 [get_ports {ddr3_dq[13]}] + +# Bank: 39 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[14]}] +set_property SLEW FAST [get_ports {ddr3_dq[14]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[14]}] +set_property LOC H14 [get_ports {ddr3_dq[14]}] + +# Bank: 39 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[15]}] +set_property SLEW FAST [get_ports {ddr3_dq[15]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[15]}] +set_property LOC J15 [get_ports {ddr3_dq[15]}] + +# Bank: 39 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[16]}] +set_property SLEW FAST [get_ports {ddr3_dq[16]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[16]}] +set_property LOC E15 [get_ports {ddr3_dq[16]}] + +# Bank: 39 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[17]}] +set_property SLEW FAST [get_ports {ddr3_dq[17]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[17]}] +set_property LOC E13 [get_ports {ddr3_dq[17]}] + +# Bank: 39 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[18]}] +set_property SLEW FAST [get_ports {ddr3_dq[18]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[18]}] +set_property LOC F15 [get_ports {ddr3_dq[18]}] + +# Bank: 39 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[19]}] +set_property SLEW FAST [get_ports {ddr3_dq[19]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[19]}] +set_property LOC E14 [get_ports {ddr3_dq[19]}] + +# Bank: 39 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[20]}] +set_property SLEW FAST [get_ports {ddr3_dq[20]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[20]}] +set_property LOC G13 [get_ports {ddr3_dq[20]}] + +# Bank: 39 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[21]}] +set_property SLEW FAST [get_ports {ddr3_dq[21]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[21]}] +set_property LOC G12 [get_ports {ddr3_dq[21]}] + +# Bank: 39 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[22]}] +set_property SLEW FAST [get_ports {ddr3_dq[22]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[22]}] +set_property LOC F14 [get_ports {ddr3_dq[22]}] + +# Bank: 39 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[23]}] +set_property SLEW FAST [get_ports {ddr3_dq[23]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[23]}] +set_property LOC G14 [get_ports {ddr3_dq[23]}] + +# Bank: 39 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[24]}] +set_property SLEW FAST [get_ports {ddr3_dq[24]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[24]}] +set_property LOC B14 [get_ports {ddr3_dq[24]}] + +# Bank: 39 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[25]}] +set_property SLEW FAST [get_ports {ddr3_dq[25]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[25]}] +set_property LOC C13 [get_ports {ddr3_dq[25]}] + +# Bank: 39 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[26]}] +set_property SLEW FAST [get_ports {ddr3_dq[26]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[26]}] +set_property LOC B16 [get_ports {ddr3_dq[26]}] + +# Bank: 39 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[27]}] +set_property SLEW FAST [get_ports {ddr3_dq[27]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[27]}] +set_property LOC D15 [get_ports {ddr3_dq[27]}] + +# Bank: 39 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[28]}] +set_property SLEW FAST [get_ports {ddr3_dq[28]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[28]}] +set_property LOC D13 [get_ports {ddr3_dq[28]}] + +# Bank: 39 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[29]}] +set_property SLEW FAST [get_ports {ddr3_dq[29]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[29]}] +set_property LOC E12 [get_ports {ddr3_dq[29]}] + +# Bank: 39 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[30]}] +set_property SLEW FAST [get_ports {ddr3_dq[30]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[30]}] +set_property LOC C16 [get_ports {ddr3_dq[30]}] + +# Bank: 39 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[31]}] +set_property SLEW FAST [get_ports {ddr3_dq[31]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[31]}] +set_property LOC D16 [get_ports {ddr3_dq[31]}] + +# Bank: 37 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[32]}] +set_property SLEW FAST [get_ports {ddr3_dq[32]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[32]}] +set_property LOC A24 [get_ports {ddr3_dq[32]}] + +# Bank: 37 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[33]}] +set_property SLEW FAST [get_ports {ddr3_dq[33]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[33]}] +set_property LOC B23 [get_ports {ddr3_dq[33]}] + +# Bank: 37 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[34]}] +set_property SLEW FAST [get_ports {ddr3_dq[34]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[34]}] +set_property LOC B27 [get_ports {ddr3_dq[34]}] + +# Bank: 37 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[35]}] +set_property SLEW FAST [get_ports {ddr3_dq[35]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[35]}] +set_property LOC B26 [get_ports {ddr3_dq[35]}] + +# Bank: 37 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[36]}] +set_property SLEW FAST [get_ports {ddr3_dq[36]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[36]}] +set_property LOC A22 [get_ports {ddr3_dq[36]}] + +# Bank: 37 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[37]}] +set_property SLEW FAST [get_ports {ddr3_dq[37]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[37]}] +set_property LOC B22 [get_ports {ddr3_dq[37]}] + +# Bank: 37 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[38]}] +set_property SLEW FAST [get_ports {ddr3_dq[38]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[38]}] +set_property LOC A25 [get_ports {ddr3_dq[38]}] + +# Bank: 37 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[39]}] +set_property SLEW FAST [get_ports {ddr3_dq[39]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[39]}] +set_property LOC C24 [get_ports {ddr3_dq[39]}] + +# Bank: 37 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[40]}] +set_property SLEW FAST [get_ports {ddr3_dq[40]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[40]}] +set_property LOC E24 [get_ports {ddr3_dq[40]}] + +# Bank: 37 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[41]}] +set_property SLEW FAST [get_ports {ddr3_dq[41]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[41]}] +set_property LOC D23 [get_ports {ddr3_dq[41]}] + +# Bank: 37 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[42]}] +set_property SLEW FAST [get_ports {ddr3_dq[42]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[42]}] +set_property LOC D26 [get_ports {ddr3_dq[42]}] + +# Bank: 37 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[43]}] +set_property SLEW FAST [get_ports {ddr3_dq[43]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[43]}] +set_property LOC C25 [get_ports {ddr3_dq[43]}] + +# Bank: 37 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[44]}] +set_property SLEW FAST [get_ports {ddr3_dq[44]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[44]}] +set_property LOC E23 [get_ports {ddr3_dq[44]}] + +# Bank: 37 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[45]}] +set_property SLEW FAST [get_ports {ddr3_dq[45]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[45]}] +set_property LOC D22 [get_ports {ddr3_dq[45]}] + +# Bank: 37 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[46]}] +set_property SLEW FAST [get_ports {ddr3_dq[46]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[46]}] +set_property LOC F22 [get_ports {ddr3_dq[46]}] + +# Bank: 37 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[47]}] +set_property SLEW FAST [get_ports {ddr3_dq[47]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[47]}] +set_property LOC E22 [get_ports {ddr3_dq[47]}] + +# Bank: 37 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[48]}] +set_property SLEW FAST [get_ports {ddr3_dq[48]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[48]}] +set_property LOC A30 [get_ports {ddr3_dq[48]}] + +# Bank: 37 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[49]}] +set_property SLEW FAST [get_ports {ddr3_dq[49]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[49]}] +set_property LOC D27 [get_ports {ddr3_dq[49]}] + +# Bank: 37 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[50]}] +set_property SLEW FAST [get_ports {ddr3_dq[50]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[50]}] +set_property LOC A29 [get_ports {ddr3_dq[50]}] + +# Bank: 37 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[51]}] +set_property SLEW FAST [get_ports {ddr3_dq[51]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[51]}] +set_property LOC C28 [get_ports {ddr3_dq[51]}] + +# Bank: 37 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[52]}] +set_property SLEW FAST [get_ports {ddr3_dq[52]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[52]}] +set_property LOC D28 [get_ports {ddr3_dq[52]}] + +# Bank: 37 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[53]}] +set_property SLEW FAST [get_ports {ddr3_dq[53]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[53]}] +set_property LOC B31 [get_ports {ddr3_dq[53]}] + +# Bank: 37 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[54]}] +set_property SLEW FAST [get_ports {ddr3_dq[54]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[54]}] +set_property LOC A31 [get_ports {ddr3_dq[54]}] + +# Bank: 37 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[55]}] +set_property SLEW FAST [get_ports {ddr3_dq[55]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[55]}] +set_property LOC A32 [get_ports {ddr3_dq[55]}] + +# Bank: 37 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[56]}] +set_property SLEW FAST [get_ports {ddr3_dq[56]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[56]}] +set_property LOC E30 [get_ports {ddr3_dq[56]}] + +# Bank: 37 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[57]}] +set_property SLEW FAST [get_ports {ddr3_dq[57]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[57]}] +set_property LOC F29 [get_ports {ddr3_dq[57]}] + +# Bank: 37 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[58]}] +set_property SLEW FAST [get_ports {ddr3_dq[58]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[58]}] +set_property LOC F30 [get_ports {ddr3_dq[58]}] + +# Bank: 37 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[59]}] +set_property SLEW FAST [get_ports {ddr3_dq[59]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[59]}] +set_property LOC F27 [get_ports {ddr3_dq[59]}] + +# Bank: 37 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[60]}] +set_property SLEW FAST [get_ports {ddr3_dq[60]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[60]}] +set_property LOC C30 [get_ports {ddr3_dq[60]}] + +# Bank: 37 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[61]}] +set_property SLEW FAST [get_ports {ddr3_dq[61]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[61]}] +set_property LOC E29 [get_ports {ddr3_dq[61]}] + +# Bank: 37 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[62]}] +set_property SLEW FAST [get_ports {ddr3_dq[62]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[62]}] +set_property LOC F26 [get_ports {ddr3_dq[62]}] + +# Bank: 37 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dq[63]}] +set_property SLEW FAST [get_ports {ddr3_dq[63]}] +set_property IOSTANDARD SSTL15_T_DCI [get_ports {ddr3_dq[63]}] +set_property LOC D30 [get_ports {ddr3_dq[63]}] + +# Bank: 38 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[13]}] +set_property SLEW FAST [get_ports {ddr3_addr[13]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[13]}] +set_property LOC A21 [get_ports {ddr3_addr[13]}] + +# Bank: 38 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[12]}] +set_property SLEW FAST [get_ports {ddr3_addr[12]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[12]}] +set_property LOC A15 [get_ports {ddr3_addr[12]}] + +# Bank: 38 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[11]}] +set_property SLEW FAST [get_ports {ddr3_addr[11]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[11]}] +set_property LOC B17 [get_ports {ddr3_addr[11]}] + +# Bank: 38 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[10]}] +set_property SLEW FAST [get_ports {ddr3_addr[10]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[10]}] +set_property LOC B21 [get_ports {ddr3_addr[10]}] + +# Bank: 38 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[9]}] +set_property SLEW FAST [get_ports {ddr3_addr[9]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[9]}] +set_property LOC C19 [get_ports {ddr3_addr[9]}] + +# Bank: 38 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[8]}] +set_property SLEW FAST [get_ports {ddr3_addr[8]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[8]}] +set_property LOC D17 [get_ports {ddr3_addr[8]}] + +# Bank: 38 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[7]}] +set_property SLEW FAST [get_ports {ddr3_addr[7]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[7]}] +set_property LOC C18 [get_ports {ddr3_addr[7]}] + +# Bank: 38 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[6]}] +set_property SLEW FAST [get_ports {ddr3_addr[6]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[6]}] +set_property LOC D20 [get_ports {ddr3_addr[6]}] + +# Bank: 38 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[5]}] +set_property SLEW FAST [get_ports {ddr3_addr[5]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[5]}] +set_property LOC A16 [get_ports {ddr3_addr[5]}] + +# Bank: 38 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[4]}] +set_property SLEW FAST [get_ports {ddr3_addr[4]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[4]}] +set_property LOC A17 [get_ports {ddr3_addr[4]}] + +# Bank: 38 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[3]}] +set_property SLEW FAST [get_ports {ddr3_addr[3]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[3]}] +set_property LOC A19 [get_ports {ddr3_addr[3]}] + +# Bank: 38 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[2]}] +set_property SLEW FAST [get_ports {ddr3_addr[2]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[2]}] +set_property LOC C20 [get_ports {ddr3_addr[2]}] + +# Bank: 38 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[1]}] +set_property SLEW FAST [get_ports {ddr3_addr[1]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[1]}] +set_property LOC B19 [get_ports {ddr3_addr[1]}] + +# Bank: 38 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_addr[0]}] +set_property SLEW FAST [get_ports {ddr3_addr[0]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_addr[0]}] +set_property LOC A20 [get_ports {ddr3_addr[0]}] + +# Bank: 38 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ba[2]}] +set_property SLEW FAST [get_ports {ddr3_ba[2]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_ba[2]}] +set_property LOC D18 [get_ports {ddr3_ba[2]}] + +# Bank: 38 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ba[1]}] +set_property SLEW FAST [get_ports {ddr3_ba[1]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_ba[1]}] +set_property LOC C21 [get_ports {ddr3_ba[1]}] + +# Bank: 38 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ba[0]}] +set_property SLEW FAST [get_ports {ddr3_ba[0]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_ba[0]}] +set_property LOC D21 [get_ports {ddr3_ba[0]}] + +# Bank: 38 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ras_n}] +set_property SLEW FAST [get_ports {ddr3_ras_n}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_ras_n}] +set_property LOC E20 [get_ports {ddr3_ras_n}] + +# Bank: 38 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_cas_n}] +set_property SLEW FAST [get_ports {ddr3_cas_n}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_cas_n}] +set_property LOC K17 [get_ports {ddr3_cas_n}] + +# Bank: 38 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_we_n}] +set_property SLEW FAST [get_ports {ddr3_we_n}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_we_n}] +set_property LOC F20 [get_ports {ddr3_we_n}] + +# Bank: 37 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_reset_n}] +set_property SLEW FAST [get_ports {ddr3_reset_n}] +set_property IOSTANDARD LVCMOS15 [get_ports {ddr3_reset_n}] +set_property LOC C29 [get_ports {ddr3_reset_n}] + +# Bank: 38 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_cke[0]}] +set_property SLEW FAST [get_ports {ddr3_cke[0]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_cke[0]}] +set_property LOC K19 [get_ports {ddr3_cke[0]}] + +# Bank: 38 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_odt[0]}] +set_property SLEW FAST [get_ports {ddr3_odt[0]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_odt[0]}] +set_property LOC H20 [get_ports {ddr3_odt[0]}] + +# Bank: 38 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_cs_n[0]}] +set_property SLEW FAST [get_ports {ddr3_cs_n[0]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_cs_n[0]}] +set_property LOC J17 [get_ports {ddr3_cs_n[0]}] + +# Bank: 39 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[0]}] +set_property SLEW FAST [get_ports {ddr3_dm[0]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[0]}] +set_property LOC M13 [get_ports {ddr3_dm[0]}] + +# Bank: 39 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[1]}] +set_property SLEW FAST [get_ports {ddr3_dm[1]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[1]}] +set_property LOC K15 [get_ports {ddr3_dm[1]}] + +# Bank: 39 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[2]}] +set_property SLEW FAST [get_ports {ddr3_dm[2]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[2]}] +set_property LOC F12 [get_ports {ddr3_dm[2]}] + +# Bank: 39 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[3]}] +set_property SLEW FAST [get_ports {ddr3_dm[3]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[3]}] +set_property LOC A14 [get_ports {ddr3_dm[3]}] + +# Bank: 37 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[4]}] +set_property SLEW FAST [get_ports {ddr3_dm[4]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[4]}] +set_property LOC C23 [get_ports {ddr3_dm[4]}] + +# Bank: 37 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[5]}] +set_property SLEW FAST [get_ports {ddr3_dm[5]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[5]}] +set_property LOC D25 [get_ports {ddr3_dm[5]}] + +# Bank: 37 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[6]}] +set_property SLEW FAST [get_ports {ddr3_dm[6]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[6]}] +set_property LOC C31 [get_ports {ddr3_dm[6]}] + +# Bank: 37 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dm[7]}] +set_property SLEW FAST [get_ports {ddr3_dm[7]}] +set_property IOSTANDARD SSTL15 [get_ports {ddr3_dm[7]}] +set_property LOC F31 [get_ports {ddr3_dm[7]}] + +# Bank: 39 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[0]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[0]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[0]}] +set_property LOC N16 [get_ports {ddr3_dqs_p[0]}] + +# Bank: 39 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[0]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[0]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[0]}] +set_property LOC M16 [get_ports {ddr3_dqs_n[0]}] + +# Bank: 39 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[1]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[1]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[1]}] +set_property LOC K12 [get_ports {ddr3_dqs_p[1]}] + +# Bank: 39 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[1]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[1]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[1]}] +set_property LOC J12 [get_ports {ddr3_dqs_n[1]}] + +# Bank: 39 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[2]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[2]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[2]}] +set_property LOC H16 [get_ports {ddr3_dqs_p[2]}] + +# Bank: 39 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[2]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[2]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[2]}] +set_property LOC G16 [get_ports {ddr3_dqs_n[2]}] + +# Bank: 39 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[3]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[3]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[3]}] +set_property LOC C15 [get_ports {ddr3_dqs_p[3]}] + +# Bank: 39 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[3]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[3]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[3]}] +set_property LOC C14 [get_ports {ddr3_dqs_n[3]}] + +# Bank: 37 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[4]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[4]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[4]}] +set_property LOC A26 [get_ports {ddr3_dqs_p[4]}] + +# Bank: 37 - Byte T0 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[4]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[4]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[4]}] +set_property LOC A27 [get_ports {ddr3_dqs_n[4]}] + +# Bank: 37 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[5]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[5]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[5]}] +set_property LOC F25 [get_ports {ddr3_dqs_p[5]}] + +# Bank: 37 - Byte T1 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[5]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[5]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[5]}] +set_property LOC E25 [get_ports {ddr3_dqs_n[5]}] + +# Bank: 37 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[6]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[6]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[6]}] +set_property LOC B28 [get_ports {ddr3_dqs_p[6]}] + +# Bank: 37 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[6]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[6]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[6]}] +set_property LOC B29 [get_ports {ddr3_dqs_n[6]}] + +# Bank: 37 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_p[7]}] +set_property SLEW FAST [get_ports {ddr3_dqs_p[7]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_p[7]}] +set_property LOC E27 [get_ports {ddr3_dqs_p[7]}] + +# Bank: 37 - Byte T3 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_dqs_n[7]}] +set_property SLEW FAST [get_ports {ddr3_dqs_n[7]}] +set_property IOSTANDARD DIFF_SSTL15_T_DCI [get_ports {ddr3_dqs_n[7]}] +set_property LOC E28 [get_ports {ddr3_dqs_n[7]}] + +# Bank: 38 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ck_p[0]}] +set_property SLEW FAST [get_ports {ddr3_ck_p[0]}] +set_property IOSTANDARD DIFF_SSTL15 [get_ports {ddr3_ck_p[0]}] +set_property LOC H19 [get_ports {ddr3_ck_p[0]}] + +# Bank: 38 - Byte T2 +set_property VCCAUX_IO NORMAL [get_ports {ddr3_ck_n[0]}] +set_property SLEW FAST [get_ports {ddr3_ck_n[0]}] +set_property IOSTANDARD DIFF_SSTL15 [get_ports {ddr3_ck_n[0]}] +set_property LOC G18 [get_ports {ddr3_ck_n[0]}] + diff --git a/designs/basic_passthru/.config b/designs/basic_passthru/.config deleted file mode 100644 index 7a1add1e..00000000 --- a/designs/basic_passthru/.config +++ /dev/null @@ -1,188 +0,0 @@ -# -# Automatically generated make config: don't edit -# - -# -# Synthesis -# -CONFIG_SYN_INFERRED=y -# CONFIG_SYN_STRATIX is not set -# CONFIG_SYN_STRATIXII is not set -# CONFIG_SYN_STRATIXIII is not set -# CONFIG_SYN_CYCLONEIII is not set -# CONFIG_SYN_ALTERA is not set -# CONFIG_SYN_ATC18 is not set -# CONFIG_SYN_LATTICE is not set -# CONFIG_SYN_ECLIPSE is not set -# CONFIG_SYN_UMC is not set -# CONFIG_SYN_SPARTAN2 is not set -# CONFIG_SYN_SPARTAN3 is not set -# CONFIG_SYN_SPARTAN3E is not set -# CONFIG_SYN_SPARTAN6 is not set -# CONFIG_SYN_VIRTEX is not set -# CONFIG_SYN_VIRTEXE is not set -# CONFIG_SYN_VIRTEX2 is not set -# CONFIG_SYN_VIRTEX4 is not set -# CONFIG_SYN_VIRTEX5 is not set -# CONFIG_SYN_VIRTEX6 is not set -CONFIG_MEM_INFERRED=y -# CONFIG_MEM_UMC is not set -# CONFIG_MEM_VIRAGE is not set -# CONFIG_MEM_VIRAGE90 is not set -# CONFIG_SYN_NO_ASYNC is not set -# CONFIG_SYN_SCAN is not set - -# -# Clock generation -# -CONFIG_CLK_INFERRED=y -# CONFIG_CLK_HCLKBUF is not set -# CONFIG_CLK_UT130HBD is not set -# CONFIG_CLK_ALTDLL is not set -# CONFIG_CLK_LATDLL is not set -# CONFIG_CLK_PRO3PLL is not set -# CONFIG_CLK_PRO3EPLL is not set -# CONFIG_CLK_PRO3LPLL is not set -# CONFIG_CLK_FUSPLL is not set -# CONFIG_CLK_LIB18T is not set -# CONFIG_CLK_RHUMC is not set -# CONFIG_CLK_CLKDLL is not set -# CONFIG_CLK_DCM is not set -# CONFIG_PCI_SYSCLK is not set -CONFIG_LEON3=y -CONFIG_PROC_NUM=1 - -# -# Processor -# - -# -# Integer unit -# -CONFIG_IU_NWINDOWS=8 -# CONFIG_IU_V8MULDIV is not set -# CONFIG_IU_BP is not set -# CONFIG_IU_SVT is not set -# CONFIG_NOTAG is not set -CONFIG_IU_LDELAY=1 -CONFIG_IU_WATCHPOINTS=0 -# CONFIG_PWD is not set -CONFIG_IU_RSTADDR=00000 - -# -# Floating-point unit -# -# CONFIG_FPU_ENABLE is not set - -# -# Cache system -# -# CONFIG_ICACHE_ENABLE is not set -# CONFIG_ICACHE_LRAM is not set -# CONFIG_DCACHE_ENABLE is not set -# CONFIG_DCACHE_LRAM is not set - -# -# MMU -# -# CONFIG_MMU_ENABLE is not set - -# -# Debug Support Unit -# -# CONFIG_DSU_ENABLE is not set - -# -# Fault-tolerance -# - -# -# VHDL debug settings -# -# CONFIG_IU_DISAS is not set -# CONFIG_DEBUG_PC32 is not set - -# -# AMBA configuration -# -CONFIG_AHB_DEFMST=0 -# CONFIG_AHB_RROBIN is not set -# CONFIG_AHB_SPLIT is not set -CONFIG_AHB_IOADDR=FFF -CONFIG_APB_HADDR=800 -# CONFIG_AHB_MON is not set -# CONFIG_AHB_DTRACE is not set - -# -# Debug Link -# -# CONFIG_DSU_UART is not set -# CONFIG_DSU_JTAG is not set - -# -# Passthrough Ports -# - -# -# AHB Master Pass Through Ports -# -CONFIG_AHBM_PASSTHRU_0=y -# CONFIG_AHBM_PASSTHRU_1 is not set -# CONFIG_AHBM_PASSTHRU_2 is not set - -# -# AHB Slave Pass Through Ports -# -# CONFIG_AHBS_PASSTHRU_0 is not set -CONFIG_AHBS_PASSTHRU_1=y -# CONFIG_AHBS_PASSTHRU_2 is not set -# CONFIG_AHBS_PASSTHRU_3 is not set -# CONFIG_AHBS_PASSTHRU_4 is not set -CONFIG_AHBS0_BAR0=A00 -CONFIG_AHBS0_MASK0=00F -# CONFIG_AHBS0_BARTYPE0 is not set -# CONFIG_AHBS0_PF0 is not set -# CONFIG_AHBS0_CA0 is not set -CONFIG_AHBS0_BAR1=000 -CONFIG_AHBS0_MASK1=000 -# CONFIG_AHBS0_BARTYPE1 is not set -# CONFIG_AHBS0_PF1 is not set -# CONFIG_AHBS0_CA1 is not set -CONFIG_AHBS0_BAR2=000 -CONFIG_AHBS0_MASK2=000 -# CONFIG_AHBS0_BARTYPE2 is not set -# CONFIG_AHBS0_PF2 is not set -# CONFIG_AHBS0_CA2 is not set -CONFIG_AHBS0_BAR3=000 -CONFIG_AHBS0_MASK3=000 -# CONFIG_AHBS0_BARTYPE3 is not set -# CONFIG_AHBS0_PF3 is not set -# CONFIG_AHBS0_CA3 is not set - -# -# On-chip ROM -# -CONFIG_AHBROM_ENABLE=y -CONFIG_AHBROM_START=000 -# CONFIG_AHBROM_PIPE is not set - -# -# UART, timer, GPIO controller, and interrupt controller -# -CONFIG_UART1_ENABLE=y -CONFIG_UA1_FIFO1=y -# CONFIG_UA1_FIFO2 is not set -# CONFIG_UA1_FIFO4 is not set -# CONFIG_UA1_FIFO8 is not set -# CONFIG_UA1_FIFO16 is not set -# CONFIG_UA1_FIFO32 is not set -# CONFIG_IRQ3_ENABLE is not set -# CONFIG_GPT_ENABLE is not set -CONFIG_GRGPIO_ENABLE=y -CONFIG_GRGPIO_WIDTH=32 -CONFIG_GRGPIO_IMASK=0000 - -# -# VHDL Debugging -# -# CONFIG_DEBUG_UART is not set diff --git a/designs/basic_passthru/Makefile b/designs/basic_passthru/Makefile deleted file mode 100644 index 799addbb..00000000 --- a/designs/basic_passthru/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -include .config -GRLIB=../.. -TOP=basic_passthru -BOARD=xilinx-sp601-xc6slx16 -include $(GRLIB)/boards/$(BOARD)/Makefile.inc -DEVICE=$(PART)-$(PACKAGE)$(SPEED) -UCF=$(GRLIB)/boards/$(BOARD)/$(TOP).ucf -#ISEMAPOPT=-timing -QSF=$(GRLIB)/boards/$(BOARD)/$(TOP).qsf -EFFORT=high -XSTOPT=-uc basic_passthru.xcf -SYNPOPT="set_option -pipe 1; set_option -retiming 1; set_option -write_apr_constraint 0" -VHDLSYNFILES=config.vhd ahbrom.vhd leon3mp_core.vhd -VERILOGSYNFILES=basic_passthru.v -VERILOGSIMFILES=test_basic_passthru.v -SIMTOP=test_basic_passthru -SDCFILE=$(GRLIB)/boards/$(BOARD)/default.sdc -BITGEN=$(GRLIB)/boards/$(BOARD)/default.ut -CLEAN=soft-clean - -TECHLIBS = unisim - -LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp usbhc spw eth dw02 \ - esa fmf spansion gsi cypress hynix micron -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - usb grusbhc spacewire ata haps coremp7 ascs slink hcan hasp \ - greth net ddr memctrl leon4 leon4b64 l2cache pwm gr1553b iommu -FILESKIP = grcan.vhd i2cmst.vhd i2cmst_gen.vhd ahbram.vhd -LIBADD = praesum - -include $(GRLIB)/bin/Makefile -include $(GRLIB)/software/leon3/Makefile - diff --git a/designs/basic_passthru/README.txt b/designs/basic_passthru/README.txt deleted file mode 100644 index a0e8499c..00000000 --- a/designs/basic_passthru/README.txt +++ /dev/null @@ -1,9 +0,0 @@ - -Passthru example provided by Praesum ------------------------------------- - -Modelsim should be started as follows to resolve verilog models: - - vsim test_basic_passthru -L gleichmann -L opencores - -For further details, contact Praesum. diff --git a/designs/basic_passthru/basic_passthru.v b/designs/basic_passthru/basic_passthru.v deleted file mode 100644 index 02350577..00000000 --- a/designs/basic_passthru/basic_passthru.v +++ /dev/null @@ -1,329 +0,0 @@ -//Example design with a slave pass through port and a verilog top level -module basic_passthru - ( - input [31:0] gpio_in, - input leon_clk, - input leon_clk_reset_n, - input usb_uart_rxd, - output usb_uart_txd, - input dsurx, - output dsutx, - output [31:0] gpio_out, - output [31:0] gpio_oen, - - //SPI with 8 chip-selects - output sck_o, - output mosi_o, - output [7:0] ssn_o, - input miso_i - - ); - - parameter [31:0] DATAWIDTH = 32; - parameter [31:0] CORE_ACDM = 1; - - //S0 used internally & not going to i/o ports, so declare vectors - wire [31:0] s0_haddr; - wire [1:0] s0_htrans; - wire [2:0] s0_hsize; - wire [2:0] s0_hburst; - wire [DATAWIDTH-1:0] s0_hwdata; - wire [3:0] s0_hprot; - wire [3:0] s0_hmaster; - wire [0:3] s0_hmbsel; - wire [1:0] s0_hresp; - wire [DATAWIDTH-1:0] s0_hrdata; - wire [15:0] s0_hsplit; - wire s0_hcache_o = 0; - wire s0_hirq_o = 0; - - //S1 .. S3 Unused, so declare vectors and tie off the inputs - wire [31:0] s1_haddr; - wire [1:0] s1_htrans; - wire [2:0] s1_hsize; - wire [2:0] s1_hburst; - wire [DATAWIDTH-1:0] s1_hwdata; - wire [3:0] s1_hprot; - wire [3:0] s1_hmaster; - wire [0:3] s1_hmbsel; - wire s1_hready_o = 1; - wire [1:0] s1_hresp = 0; - wire [63:0] s1_hrdata = 0; - wire [15:0] s1_hsplit = 0; - wire s1_hcache_o = 0; - wire s1_hirq_o = 0; - - wire [31:0] s2_haddr; - wire [1:0] s2_htrans; - wire [2:0] s2_hsize; - wire [2:0] s2_hburst; - wire [DATAWIDTH-1:0] s2_hwdata; - wire [3:0] s2_hprot; - wire [3:0] s2_hmaster; - wire [0:3] s2_hmbsel; - wire s2_hready_o = 1; - wire [1:0] s2_hresp = 0; - wire [63:0] s2_hrdata = 0; - wire [15:0] s2_hsplit = 0; - wire s2_hcache_o = 0; - wire s2_hirq_o = 0; - - wire [31:0] s3_haddr; - wire [1:0] s3_htrans; - wire [2:0] s3_hsize; - wire [2:0] s3_hburst; - wire [DATAWIDTH-1:0] s3_hwdata; - wire [3:0] s3_hprot; - wire [3:0] s3_hmaster; - wire [0:3] s3_hmbsel; - wire s3_hready_o = 1; - wire [1:0] s3_hresp = 0; - wire [63:0] s3_hrdata = 0; - wire [15:0] s3_hsplit = 0; - wire s3_hcache_o = 0; - wire s3_hirq_o = 0; - - //M0 .. M1 Unused, so declare vectors and tie off the inputs - wire [1:0] m0_hresp; - wire [DATAWIDTH-1:0] m0_hrdata; - wire m0_hbusreq = 0; - wire m0_hlock = 0; - wire [1:0] m0_htrans = 0; - wire [31:0] m0_haddr = 0; - wire m0_hwrite = 0; - wire [2:0] m0_hsize = 0; - wire [2:0] m0_hburst = 0; - wire [3:0] m0_hprot = 0; - wire [63:0] m0_hwdata = 0; - wire m0_hirq_o = 0; - - wire [1:0] m1_hresp; - wire [DATAWIDTH-1:0] m1_hrdata; - wire m1_hbusreq = 0; - wire m1_hlock = 0; - wire [1:0] m1_htrans = 0; - wire [31:0] m1_haddr = 0; - wire m1_hwrite = 0; - wire [2:0] m1_hsize = 0; - wire [2:0] m1_hburst = 0; - wire [3:0] m1_hprot = 0; - wire [63:0] m1_hwdata = 0; - wire m1_hirq_o = 0; - - - leon3mp_core # - ( - .CFG_AHBDW(DATAWIDTH), - .CFG_AHB_ACDM(CORE_ACDM) - ) leon3mp_core - ( - .clk (leon_clk) - ,.rstn (leon_clk_reset_n) - ,.dsurx (dsurx) - ,.rxd1 (usb_uart_rxd) - ,.dsutx (dsutx) - ,.txd1 (usb_uart_txd) - ,.dsubreak (1'b0) - ,.dsuactive () - ,.gpio_in (gpio_in) - ,.gpio_out (gpio_out) - ,.gpio_oen (gpio_oen) - - // Master #0 pass through - ,.m0_hgrant (m0_hgrant) - ,.m0_hready (m0_hready) - ,.m0_hresp (m0_hresp[1:0]) - ,.m0_hrdata (m0_hrdata[DATAWIDTH-1:0]) - ,.m0_hcache (m0_hcache) - ,.m0_hirq (m0_hirq) - ,.m0_hbusreq (m0_hbusreq) - ,.m0_hlock (m0_hlock) - ,.m0_htrans (m0_htrans[1:0]) - ,.m0_haddr (m0_haddr[31:0]) - ,.m0_hwrite (m0_hwrite) - ,.m0_hsize (m0_hsize[2:0]) - ,.m0_hburst (m0_hburst[2:0]) - ,.m0_hprot (m0_hprot[3:0]) - ,.m0_hwdata (m0_hwdata[DATAWIDTH-1:0]) - ,.m0_hirq_o (m0_hirq_o) - - // Master #1 pass through - ,.m1_hgrant (m1_hgrant) - ,.m1_hready (m1_hready) - ,.m1_hresp (m1_hresp[1:0]) - ,.m1_hrdata (m1_hrdata[DATAWIDTH-1:0]) - ,.m1_hcache (m1_hcache) - ,.m1_hirq (m1_hirq) - ,.m1_hbusreq (m1_hbusreq) - ,.m1_hlock (m1_hlock) - ,.m1_htrans (m1_htrans[1:0]) - ,.m1_haddr (m1_haddr[31:0]) - ,.m1_hwrite (m1_hwrite) - ,.m1_hsize (m1_hsize[2:0]) - ,.m1_hburst (m1_hburst[2:0]) - ,.m1_hprot (m1_hprot[3:0]) - ,.m1_hwdata (m1_hwdata[DATAWIDTH-1:0]) - ,.m1_hirq_o (m1_hirq_o) - - // Slave #0 pass through - ,.s0_hsel (s0_hsel) - ,.s0_haddr (s0_haddr[31:0]) - ,.s0_hwrite (s0_hwrite) - ,.s0_htrans (s0_htrans[1:0]) - ,.s0_hsize (s0_hsize[2:0]) - ,.s0_hburst (s0_hburst[2:0]) - ,.s0_hwdata (s0_hwdata[DATAWIDTH-1:0]) - ,.s0_hprot (s0_hprot[3:0]) - ,.s0_hready_o (s0_hready_o) - ,.s0_hmaster (s0_hmaster[3:0]) - ,.s0_hmastlock (s0_hmastlock) - ,.s0_hmbsel (s0_hmbsel[0:3]) - ,.s0_hcache_o (s0_hcache_o) - ,.s0_hirq_o (s0_hirq_o) - ,.s0_hready (s0_hready) - ,.s0_hresp (s0_hresp[1:0]) - ,.s0_hrdata (s0_hrdata[DATAWIDTH-1:0]) - ,.s0_hsplit (s0_hsplit) - ,.s0_hcache (s0_hcache) - ,.s0_hirq (s0_hirq) - - // Slave #1 pass through - ,.s1_hsel (s1_hsel) - ,.s1_haddr (s1_haddr[31:0]) - ,.s1_hwrite (s1_hwrite) - ,.s1_htrans (s1_htrans[1:0]) - ,.s1_hsize (s1_hsize[2:0]) - ,.s1_hburst (s1_hburst[2:0]) - ,.s1_hwdata (s1_hwdata[DATAWIDTH-1:0]) - ,.s1_hprot (s1_hprot[3:0]) - ,.s1_hready_o (s1_hready_o) - ,.s1_hmaster (s1_hmaster[3:0]) - ,.s1_hmastlock (s1_hmastlock) - ,.s1_hmbsel (s1_hmbsel[0:3]) - ,.s1_hcache_o (s1_hcache_o) - ,.s1_hirq_o (s1_hirq_o) - ,.s1_hready (s1_hready) - ,.s1_hresp (s1_hresp[1:0]) - ,.s1_hrdata (s1_hrdata[DATAWIDTH-1:0]) - ,.s1_hsplit (s1_hsplit) - ,.s1_hcache (s1_hcache) - ,.s1_hirq (s1_hirq) - - // Slave #2 pass through - ,.s2_hsel (s2_hsel) - ,.s2_haddr (s2_haddr[31:0]) - ,.s2_hwrite (s2_hwrite) - ,.s2_htrans (s2_htrans[1:0]) - ,.s2_hsize (s2_hsize[2:0]) - ,.s2_hburst (s2_hburst[2:0]) - ,.s2_hwdata (s2_hwdata[DATAWIDTH-1:0]) - ,.s2_hprot (s2_hprot[3:0]) - ,.s2_hready_o (s2_hready_o) - ,.s2_hmaster (s2_hmaster[3:0]) - ,.s2_hmastlock (s2_hmastlock) - ,.s2_hmbsel (s2_hmbsel[0:3]) - ,.s2_hcache_o (s2_hcache_o) - ,.s2_hirq_o (s2_hirq_o) - ,.s2_hready (s2_hready) - ,.s2_hresp (s2_hresp[1:0]) - ,.s2_hrdata (s2_hrdata[DATAWIDTH-1:0]) - ,.s2_hsplit (s2_hsplit) - ,.s2_hcache (s2_hcache) - ,.s2_hirq (s2_hirq) - - // Slave #3 pass through - ,.s3_hsel (s3_hsel) - ,.s3_haddr (s3_haddr[31:0]) - ,.s3_hwrite (s3_hwrite) - ,.s3_htrans (s3_htrans[1:0]) - ,.s3_hsize (s3_hsize[2:0]) - ,.s3_hburst (s3_hburst[2:0]) - ,.s3_hwdata (s3_hwdata[DATAWIDTH-1:0]) - ,.s3_hprot (s3_hprot[3:0]) - ,.s3_hready_o (s3_hready_o) - ,.s3_hmaster (s3_hmaster[3:0]) - ,.s3_hmastlock (s3_hmastlock) - ,.s3_hmbsel (s3_hmbsel[0:3]) - ,.s3_hcache_o (s3_hcache_o) - ,.s3_hirq_o (s3_hirq_o) - ,.s3_hready (s3_hready) - ,.s3_hresp (s3_hresp[1:0]) - ,.s3_hrdata (s3_hrdata[DATAWIDTH-1:0]) - ,.s3_hsplit (s3_hsplit) - ,.s3_hcache (s3_hcache) - ,.s3_hirq (s3_hirq) - ); - - //Wishbone signals - wire wbm_we_o; - wire wbm_stb_o; - wire wbm_cyc_o; - wire [31:0] wbm_adr_o; - wire [DATAWIDTH-1:0] wbm_dat_o; - wire [3:0] wbm_sel_o; - wire wb_inta_i; - wire wbm_ack_i; - wire wbm_rty_i; - wire wbm_err_i; - wire [DATAWIDTH-1:0] wbm_dat_i; - - ahb2wb # - ( - .HAMAX (32), - .HDMAX (DATAWIDTH) - ) ahb2wb - ( - // Outputs - .hready (s0_hready_o), - .hresp (s0_hresp[1:0] ), - .hrdata (s0_hrdata[DATAWIDTH-1:0]), - .hsplit (s0_hsplit[15:0]), - .wbm_we_o (wbm_we_o), - .wbm_stb_o (wbm_stb_o), - .wbm_cyc_o (wbm_cyc_o), - .wbm_adr_o (wbm_adr_o[31:0]), - .wbm_dat_o (wbm_dat_o[DATAWIDTH-1:0]), - .wbm_sel_o (wbm_sel_o[3:0]), - .irq_o (s0_hirq), - - // Inputs - .hclk (leon_clk), - .hresetn (leon_clk_reset_n), - .hsel (s0_hsel), - .hready_ba (s0_hready), - .hwrite (s0_hwrite), - .hmastlock (s0_hmastlock), - .haddr (s0_haddr[31:0]), - .htrans (s0_htrans[1:0]), - .hsize (s0_hsize[2:0]), - .hburst (s0_hburst[2:0]), - .hwdata (s0_hwdata[DATAWIDTH-1:0]), - .hmaster (s0_hmaster[3:0]), - .wb_inta_i (wb_inta_i), - .wbm_ack_i (wbm_ack_i), - .wbm_rty_i (wbm_rty_i), - .wbm_err_i (wbm_err_i), - .wbm_dat_i (wbm_dat_i[DATAWIDTH-1:0])); - - simple_spi_top simple_spi_top - ( - // Outputs - .prdata_o (wbm_dat_i[7:0]), - .pirq_o (wb_inta_i), - .sck_o (sck_o), - .mosi_o (mosi_o), - .ssn_o (ssn_o[7:0]), - - // Inputs - .pclk_i (leon_clk), - .prst_i (!leon_clk_reset_n), - .psel_i (wbm_cyc_o), - .penable_i (wbm_stb_o), - .paddr_i (wbm_adr_o[2:0]), - .pwrite_i (wbm_we_o), - .pwdata_i (wbm_dat_o[7:0]), - .miso_i (miso_i)); - -endmodule // basic_passthru - - diff --git a/designs/basic_passthru/config.in b/designs/basic_passthru/config.in deleted file mode 100644 index 73f13d0b..00000000 --- a/designs/basic_passthru/config.in +++ /dev/null @@ -1,44 +0,0 @@ -mainmenu_name "Leon3 Hello World with passthrough ports" - -mainmenu_option next_comment - comment 'Synthesis ' - source lib/techmap/gencomp/tech.in -endmenu - -mainmenu_option next_comment - comment 'Clock generation' - source lib/techmap/clocks/clkgen.in -endmenu - -source lib/gaisler/leon3/leon3.in -source lib/grlib/amba/amba.in - -mainmenu_option next_comment - comment 'Debug Link ' - source lib/gaisler/uart/dcom.in - source lib/gaisler/jtag/jtag.in -endmenu - - -mainmenu_option next_comment -comment 'Passthrough Ports ' - source lib/praesum/ahbpassthru/ahbpassthru.in -endmenu - -mainmenu_option next_comment -comment 'On-chip ROM ' - source lib/gaisler/misc/ahbrom.in -endmenu - -mainmenu_option next_comment -comment 'UART, timer, GPIO controller, and interrupt controller' - source lib/gaisler/uart/uart1.in - source lib/gaisler/leon3/irqmp.in - source lib/gaisler/misc/gptimer.in - source lib/gaisler/misc/grgpio.in -endmenu - -mainmenu_option next_comment -comment 'VHDL Debugging ' - source lib/grlib/util/debug.in -endmenu diff --git a/designs/basic_passthru/config.vhd b/designs/basic_passthru/config.vhd deleted file mode 100644 index 2b8b94f6..00000000 --- a/designs/basic_passthru/config.vhd +++ /dev/null @@ -1,269 +0,0 @@ - - ------------------------------------------------------------------------------ --- LEON3 Demonstration design test bench configuration --- Copyright (C) 2009 Aeroflex Gaisler ------------------------------------------------------------------------------- - - -library techmap; -use techmap.gencomp.all; - -package config is --- Technology and synthesis options - constant CFG_FABTECH : integer := inferred; - constant CFG_MEMTECH : integer := inferred; - constant CFG_PADTECH : integer := inferred; - constant CFG_NOASYNC : integer := 0; - constant CFG_SCAN : integer := 0; --- Clock generator - constant CFG_CLKTECH : integer := inferred; - constant CFG_CLKMUL : integer := 2; - constant CFG_CLKDIV : integer := 2; - constant CFG_OCLKDIV : integer := 1; - constant CFG_OCLKBDIV : integer := 0; - constant CFG_OCLKCDIV : integer := 0; - constant CFG_PCIDLL : integer := 0; - constant CFG_PCISYSCLK: integer := 0; - constant CFG_CLK_NOFB : integer := 0; --- LEON3 processor core - constant CFG_LEON3 : integer := 1; - constant CFG_NCPU : integer := (1); - constant CFG_NWIN : integer := (8); - constant CFG_V8 : integer := 0 + 4*0; - constant CFG_MAC : integer := 0; - constant CFG_BP : integer := 0; - constant CFG_SVT : integer := 0; - constant CFG_RSTADDR : integer := 16#00000#; - constant CFG_LDDEL : integer := (1); - constant CFG_NOTAG : integer := 0; - constant CFG_NWP : integer := (0); - constant CFG_PWD : integer := 0*2; - constant CFG_FPU : integer := 0 + 16*0; - constant CFG_GRFPUSH : integer := 0; - constant CFG_ICEN : integer := 0; - constant CFG_ISETS : integer := 1; - constant CFG_ISETSZ : integer := 1; - constant CFG_ILINE : integer := 8; - constant CFG_IREPL : integer := 0; - constant CFG_ILOCK : integer := 0; - constant CFG_ILRAMEN : integer := 0; - constant CFG_ILRAMADDR: integer := 16#8E#; - constant CFG_ILRAMSZ : integer := 1; - constant CFG_DCEN : integer := 0; - constant CFG_DSETS : integer := 1; - constant CFG_DSETSZ : integer := 1; - constant CFG_DLINE : integer := 8; - constant CFG_DREPL : integer := 0; - constant CFG_DLOCK : integer := 0; - constant CFG_DSNOOP : integer := 0 + 0 + 4*0; - constant CFG_DFIXED : integer := 16#0#; - constant CFG_DLRAMEN : integer := 0; - constant CFG_DLRAMADDR: integer := 16#8F#; - constant CFG_DLRAMSZ : integer := 1; - constant CFG_MMUEN : integer := 0; - constant CFG_ITLBNUM : integer := 2; - constant CFG_DTLBNUM : integer := 2; - constant CFG_TLB_TYPE : integer := 1 + 0*2; - constant CFG_TLB_REP : integer := 1; - constant CFG_MMU_PAGE : integer := 0; - constant CFG_DSU : integer := 0; - constant CFG_ITBSZ : integer := 0; - constant CFG_ATBSZ : integer := 0; - constant CFG_LEON3FT_EN : integer := 0; - constant CFG_IUFT_EN : integer := 0; - constant CFG_FPUFT_EN : integer := 0; - constant CFG_RF_ERRINJ : integer := 0; - constant CFG_CACHE_FT_EN : integer := 0; - constant CFG_CACHE_ERRINJ : integer := 0; - constant CFG_LEON3_NETLIST: integer := 0; - constant CFG_DISAS : integer := 0 + 0; - constant CFG_PCLOW : integer := 2; --- AMBA settings - constant CFG_DEFMST : integer := (0); - constant CFG_RROBIN : integer := 0; - constant CFG_SPLIT : integer := 0; - constant CFG_AHBIO : integer := 16#FFF#; - constant CFG_APBADDR : integer := 16#800#; - constant CFG_AHB_MON : integer := 0; - constant CFG_AHB_MONERR : integer := 0; - constant CFG_AHB_MONWAR : integer := 0; - constant CFG_AHB_DTRACE : integer := 0; --- DSU UART - constant CFG_AHB_UART : integer := 0; --- JTAG based DSU interface - constant CFG_AHB_JTAG : integer := 0; --- Pass through port settings - constant CFG_AHBM_PT : integer := 0; -- Number of Master pass through ports - constant CFG_AHBS_PT : integer := 1; -- Number of Slave pass through ports - constant CFG_AHBM0_BAR0 : integer := 16#000#; -- BAR0 address - constant CFG_AHBM0_MASK0 : integer := 16#000#; -- BAR0 mask - constant CFG_AHBM0_BARTYPE0 : integer := 0; -- BAR0 Type '1' = ram, '0' = I/O - constant CFG_AHBM0_PF0 : integer := 0; -- BAR0 Prefetchable - constant CFG_AHBM0_CA0 : integer := 0; -- BAR0 Cacheable - constant CFG_AHBM0_BAR1 : integer := 16#000#; -- BAR1 address - constant CFG_AHBM0_MASK1 : integer := 16#000#; -- BAR1 mask - constant CFG_AHBM0_BARTYPE1 : integer := 0; -- BAR1 Type '1' = ram, '0' = I/O - constant CFG_AHBM0_PF1 : integer := 0; -- BAR1 Prefetchable - constant CFG_AHBM0_CA1 : integer := 0; -- BAR1 Cacheable - constant CFG_AHBM0_BAR2 : integer := 16#000#; -- BAR2 address - constant CFG_AHBM0_MASK2 : integer := 16#000#; -- BAR2 mask - constant CFG_AHBM0_BARTYPE2 : integer := 0; -- BAR2 Type '1' = ram, '0' = I/O - constant CFG_AHBM0_PF2 : integer := 0; -- BAR2 Prefetchable - constant CFG_AHBM0_CA2 : integer := 0; -- BAR2 Cacheable - constant CFG_AHBM0_BAR3 : integer := 16#000#; -- BAR3 address - constant CFG_AHBM0_MASK3 : integer := 16#000#; -- BAR3 mask - constant CFG_AHBM0_BARTYPE3 : integer := 0; -- BAR3 Type '1' = ram, '0' = I/O - constant CFG_AHBM0_PF3 : integer := 0; -- BAR3 Prefetchable - constant CFG_AHBM0_CA3 : integer := 0; -- BAR3 Cacheable - constant CFG_AHBM1_BAR0 : integer := 16#000#; -- BAR0 address - constant CFG_AHBM1_MASK0 : integer := 16#000#; -- BAR0 mask - constant CFG_AHBM1_BARTYPE0 : integer := 0; -- BAR0 Type '1' = ram, '0' = I/O - constant CFG_AHBM1_PF0 : integer := 0; -- BAR0 Prefetchable - constant CFG_AHBM1_CA0 : integer := 0; -- BAR0 Cacheable - constant CFG_AHBM1_BAR1 : integer := 16#000#; -- BAR1 address - constant CFG_AHBM1_MASK1 : integer := 16#000#; -- BAR1 mask - constant CFG_AHBM1_BARTYPE1 : integer := 0; -- BAR1 Type '1' = ram, '0' = I/O - constant CFG_AHBM1_PF1 : integer := 0; -- BAR1 Prefetchable - constant CFG_AHBM1_CA1 : integer := 0; -- BAR1 Cacheable - - constant CFG_AHBM1_BAR2 : integer := 16#000#; -- BAR2 address - constant CFG_AHBM1_MASK2 : integer := 16#000#; -- BAR2 mask - constant CFG_AHBM1_BARTYPE2 : integer := 0; -- BAR2 Type '1' = ram, '0' = I/O - constant CFG_AHBM1_PF2 : integer := 0; -- BAR2 Prefetchable - constant CFG_AHBM1_CA2 : integer := 0; -- BAR2 Cacheable - - constant CFG_AHBM1_BAR3 : integer := 16#000#; -- BAR3 address - constant CFG_AHBM1_MASK3 : integer := 16#000#; -- BAR3 mask - constant CFG_AHBM1_BARTYPE3 : integer := 0; -- BAR3 Type '1' = ram, '0' = I/O - constant CFG_AHBM1_PF3 : integer := 0; -- BAR3 Prefetchable - constant CFG_AHBM1_CA3 : integer := 0; -- BAR3 Cacheable - - constant CFG_AHBS0_BAR0 : integer := 16#A00#; -- BAR0 address - constant CFG_AHBS0_MASK0 : integer := 16#00F#; -- BAR0 mask - constant CFG_AHBS0_BARTYPE0 : integer := 0; -- BAR0 Type '1' = ram, '0' = I/O - constant CFG_AHBS0_PF0 : integer := 0; -- BAR0 Prefetchable - constant CFG_AHBS0_CA0 : integer := 0; -- BAR0 Cacheable - - constant CFG_AHBS0_BAR1 : integer := 16#000#; -- BAR1 address - constant CFG_AHBS0_MASK1 : integer := 16#000#; -- BAR1 mask - constant CFG_AHBS0_BARTYPE1 : integer := 0; -- BAR1 Type '1' = ram, '0' = I/O - constant CFG_AHBS0_PF1 : integer := 0; -- BAR1 Prefetchable - constant CFG_AHBS0_CA1 : integer := 0; -- BAR1 Cacheable - - constant CFG_AHBS0_BAR2 : integer := 16#000#; -- BAR2 address - constant CFG_AHBS0_MASK2 : integer := 16#000#; -- BAR2 mask - constant CFG_AHBS0_BARTYPE2 : integer := 0; -- BAR2 Type '1' = ram, '0' = I/O - constant CFG_AHBS0_PF2 : integer := 0; -- BAR2 Prefetchable - constant CFG_AHBS0_CA2 : integer := 0; -- BAR2 Cacheable - - constant CFG_AHBS0_BAR3 : integer := 16#000#; -- BAR3 address - constant CFG_AHBS0_MASK3 : integer := 16#000#; -- BAR3 mask - constant CFG_AHBS0_BARTYPE3 : integer := 0; -- BAR3 Type '1' = ram, '0' = I/O - constant CFG_AHBS0_PF3 : integer := 0; -- BAR3 Prefetchable - constant CFG_AHBS0_CA3 : integer := 0; -- BAR3 Cacheable - - constant CFG_AHBS1_BAR0 : integer := 16#000#; -- BAR0 address - constant CFG_AHBS1_MASK0 : integer := 16#000#; -- BAR0 mask - constant CFG_AHBS1_BARTYPE0 : integer := 0; -- BAR0 Type '1' = ram, '0' = I/O - constant CFG_AHBS1_PF0 : integer := 0; -- BAR0 Prefetchable - constant CFG_AHBS1_CA0 : integer := 0; -- BAR0 Cacheable - - constant CFG_AHBS1_BAR1 : integer := 16#000#; -- BAR1 address - constant CFG_AHBS1_MASK1 : integer := 16#000#; -- BAR1 mask - constant CFG_AHBS1_BARTYPE1 : integer := 0; -- BAR1 Type '1' = ram, '0' = I/O - constant CFG_AHBS1_PF1 : integer := 0; -- BAR1 Prefetchable - constant CFG_AHBS1_CA1 : integer := 0; -- BAR1 Cacheable - - constant CFG_AHBS1_BAR2 : integer := 16#000#; -- BAR2 address - constant CFG_AHBS1_MASK2 : integer := 16#000#; -- BAR2 mask - constant CFG_AHBS1_BARTYPE2 : integer := 0; -- BAR2 Type '1' = ram, '0' = I/O - constant CFG_AHBS1_PF2 : integer := 0; -- BAR2 Prefetchable - constant CFG_AHBS1_CA2 : integer := 0; -- BAR2 Cacheable - - constant CFG_AHBS1_BAR3 : integer := 16#000#; -- BAR3 address - constant CFG_AHBS1_MASK3 : integer := 16#000#; -- BAR3 mask - constant CFG_AHBS1_BARTYPE3 : integer := 0; -- BAR3 Type '1' = ram, '0' = I/O - constant CFG_AHBS1_PF3 : integer := 0; -- BAR3 Prefetchable - constant CFG_AHBS1_CA3 : integer := 0; -- BAR3 Cacheable - - constant CFG_AHBS2_BAR0 : integer := 16#000#; -- BAR0 address - constant CFG_AHBS2_MASK0 : integer := 16#000#; -- BAR0 mask - constant CFG_AHBS2_BARTYPE0 : integer := 0; -- BAR0 Type '1' = ram, '0' = I/O - constant CFG_AHBS2_PF0 : integer := 0; -- BAR0 Prefetchable - constant CFG_AHBS2_CA0 : integer := 0; -- BAR0 Cacheable - - constant CFG_AHBS2_BAR1 : integer := 16#000#; -- BAR1 address - constant CFG_AHBS2_MASK1 : integer := 16#000#; -- BAR1 mask - constant CFG_AHBS2_BARTYPE1 : integer := 0; -- BAR1 Type '1' = ram, '0' = I/O - constant CFG_AHBS2_PF1 : integer := 0; -- BAR1 Prefetchable - constant CFG_AHBS2_CA1 : integer := 0; -- BAR1 Cacheable - - constant CFG_AHBS2_BAR2 : integer := 16#000#; -- BAR2 address - constant CFG_AHBS2_MASK2 : integer := 16#000#; -- BAR2 mask - constant CFG_AHBS2_BARTYPE2 : integer := 0; -- BAR2 Type '1' = ram, '0' = I/O - constant CFG_AHBS2_PF2 : integer := 0; -- BAR2 Prefetchable - constant CFG_AHBS2_CA2 : integer := 0; -- BAR2 Cacheable - - constant CFG_AHBS2_BAR3 : integer := 16#000#; -- BAR3 address - constant CFG_AHBS2_MASK3 : integer := 16#000#; -- BAR3 mask - constant CFG_AHBS2_BARTYPE3 : integer := 0; -- BAR3 Type '1' = ram, '0' = I/O - constant CFG_AHBS2_PF3 : integer := 0; -- BAR3 Prefetchable - constant CFG_AHBS2_CA3 : integer := 0; -- BAR3 Cacheable - - constant CFG_AHBS3_BAR0 : integer := 16#000#; -- BAR0 address - constant CFG_AHBS3_MASK0 : integer := 16#000#; -- BAR0 mask - constant CFG_AHBS3_BARTYPE0 : integer := 0; -- BAR0 Type '1' = ram, '0' = I/O - constant CFG_AHBS3_PF0 : integer := 0; -- BAR0 Prefetchable - constant CFG_AHBS3_CA0 : integer := 0; -- BAR0 Cacheable - - constant CFG_AHBS3_BAR1 : integer := 16#000#; -- BAR1 address - constant CFG_AHBS3_MASK1 : integer := 16#000#; -- BAR1 mask - constant CFG_AHBS3_BARTYPE1 : integer := 0; -- BAR1 Type '1' = ram, '0' = I/O - constant CFG_AHBS3_PF1 : integer := 0; -- BAR1 Prefetchable - constant CFG_AHBS3_CA1 : integer := 0; -- BAR1 Cacheable - - constant CFG_AHBS3_BAR2 : integer := 16#000#; -- BAR2 address - constant CFG_AHBS3_MASK2 : integer := 16#000#; -- BAR2 mask - constant CFG_AHBS3_BARTYPE2 : integer := 0; -- BAR2 Type '1' = ram, '0' = I/O - constant CFG_AHBS3_PF2 : integer := 0; -- BAR2 Prefetchable - constant CFG_AHBS3_CA2 : integer := 0; -- BAR2 Cacheable - - constant CFG_AHBS3_BAR3 : integer := 16#000#; -- BAR3 address - constant CFG_AHBS3_MASK3 : integer := 16#000#; -- BAR3 mask - constant CFG_AHBS3_BARTYPE3 : integer := 0; -- BAR3 Type '1' = ram, '0' = I/O - constant CFG_AHBS3_PF3 : integer := 0; -- BAR3 Prefetchable - constant CFG_AHBS3_CA3 : integer := 0; -- BAR3 Cacheable --- AHB ROM - constant CFG_AHBROMEN : integer := 1; - constant CFG_AHBROPIP : integer := 0; - constant CFG_AHBRODDR : integer := 16#000#; - constant CFG_ROMADDR : integer := 16#100#; - constant CFG_ROMMASK : integer := 16#E00# + 16#100#; - --- UART 1 - constant CFG_UART1_ENABLE : integer := 1; - constant CFG_UART1_FIFO : integer := 1; - --- LEON3 interrupt controller - constant CFG_IRQ3_ENABLE : integer := 0; - constant CFG_IRQ3_NSEC : integer := 0; - --- Modular timer - constant CFG_GPT_ENABLE : integer := 0; - constant CFG_GPT_NTIM : integer := 1; - constant CFG_GPT_SW : integer := 8; - constant CFG_GPT_TW : integer := 8; - constant CFG_GPT_IRQ : integer := 8; - constant CFG_GPT_SEPIRQ : integer := 0; - constant CFG_GPT_WDOGEN : integer := 0; - constant CFG_GPT_WDOG : integer := 16#0#; - --- GPIO port - constant CFG_GRGPIO_ENABLE : integer := 1; - constant CFG_GRGPIO_IMASK : integer := 16#0000#; - constant CFG_GRGPIO_WIDTH : integer := (32); - --- GRLIB debugging - constant CFG_DUART : integer := 0; -end; diff --git a/designs/basic_passthru/leon3mp_core.vhd b/designs/basic_passthru/leon3mp_core.vhd deleted file mode 100644 index 738a2115..00000000 --- a/designs/basic_passthru/leon3mp_core.vhd +++ /dev/null @@ -1,833 +0,0 @@ ------------------------------------------------------------------------------- --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------- --- Default address Mapping for the core: --- Leon3: Master address -library ieee; -use ieee.std_logic_1164.all; - -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; - -library gaisler; -use gaisler.leon3.all; -use gaisler.misc.all; -use gaisler.uart.all; -use gaisler.jtag.all; - -library praesum; -use praesum.ahbpassthru_vhdl.all; - -use work.config.all; - -entity leon3mp_core is - generic ( - fabtech : integer := CFG_FABTECH; - memtech : integer := CFG_MEMTECH; - padtech : integer := CFG_PADTECH; - clktech : integer := CFG_CLKTECH; - disas : integer := CFG_DISAS; -- Enable disassembly to console - pclow : integer := CFG_PCLOW; - CFG_AHBDW : integer := 64; - CFG_AHB_ACDM : integer := 1; - - ahbm_pt : integer := CFG_AHBM_PT; -- Number of master passthru ports - ahbs_pt : integer := CFG_AHBS_PT; -- Number of slave passthru ports - m0_haddr0 : integer := CFG_AHBM0_BAR0; - m0_hmask0 : integer := CFG_AHBM0_MASK0; - m0_htype0 : integer := CFG_AHBM0_BARTYPE0; - m0_pf0 : integer := CFG_AHBM0_PF0; - m0_ca0 : integer := CFG_AHBM0_CA0; - m0_haddr1 : integer := CFG_AHBM0_BAR1; - m0_hmask1 : integer := CFG_AHBM0_MASK1; - m0_htype1 : integer := CFG_AHBM0_BARTYPE1; - m0_pf1 : integer := CFG_AHBM0_PF1; - m0_ca1 : integer := CFG_AHBM0_CA1; - m0_haddr2 : integer := CFG_AHBM0_BAR2; - m0_hmask2 : integer := CFG_AHBM0_MASK2; - m0_htype2 : integer := CFG_AHBM0_BARTYPE2; - m0_pf2 : integer := CFG_AHBM0_PF2; - m0_ca2 : integer := CFG_AHBM0_CA2; - m0_haddr3 : integer := CFG_AHBM0_BAR3; - m0_hmask3 : integer := CFG_AHBM0_MASK3; - m0_htype3 : integer := CFG_AHBM0_BARTYPE3; - m0_pf3 : integer := CFG_AHBM0_PF3; - m0_ca3 : integer := CFG_AHBM0_CA3; - m1_haddr0 : integer := CFG_AHBM1_BAR0; - m1_hmask0 : integer := CFG_AHBM1_MASK0; - m1_htype0 : integer := CFG_AHBM1_BARTYPE0; - m1_pf0 : integer := CFG_AHBM1_PF0; - m1_ca0 : integer := CFG_AHBM1_CA0; - m1_haddr1 : integer := CFG_AHBM1_BAR1; - m1_hmask1 : integer := CFG_AHBM1_MASK1; - m1_htype1 : integer := CFG_AHBM1_BARTYPE1; - m1_pf1 : integer := CFG_AHBM1_PF1; - m1_ca1 : integer := CFG_AHBM1_CA1; - m1_haddr2 : integer := CFG_AHBM1_BAR2; - m1_hmask2 : integer := CFG_AHBM1_MASK2; - m1_htype2 : integer := CFG_AHBM1_BARTYPE2; - m1_pf2 : integer := CFG_AHBM1_PF2; - m1_ca2 : integer := CFG_AHBM1_CA2; - m1_haddr3 : integer := CFG_AHBM1_BAR3; - m1_hmask3 : integer := CFG_AHBM1_MASK3; - m1_htype3 : integer := CFG_AHBM1_BARTYPE3; - m1_pf3 : integer := CFG_AHBM1_PF3; - m1_ca3 : integer := CFG_AHBM1_CA3; - s0_haddr0 : integer := CFG_AHBS0_BAR0; - s0_hmask0 : integer := CFG_AHBS0_MASK0; - s0_htype0 : integer := CFG_AHBS0_BARTYPE0; - s0_pf0 : integer := CFG_AHBS0_PF0; - s0_ca0 : integer := CFG_AHBS0_CA0; - s0_haddr1 : integer := CFG_AHBS0_BAR1; - s0_hmask1 : integer := CFG_AHBS0_MASK1; - s0_htype1 : integer := CFG_AHBS0_BARTYPE1; - s0_pf1 : integer := CFG_AHBS0_PF1; - s0_ca1 : integer := CFG_AHBS0_CA1; - s0_haddr2 : integer := CFG_AHBS0_BAR2; - s0_hmask2 : integer := CFG_AHBS0_MASK2; - s0_htype2 : integer := CFG_AHBS0_BARTYPE2; - s0_pf2 : integer := CFG_AHBS0_PF2; - s0_ca2 : integer := CFG_AHBS0_CA2; - s0_haddr3 : integer := CFG_AHBS0_BAR3; - s0_hmask3 : integer := CFG_AHBS0_MASK3; - s0_htype3 : integer := CFG_AHBS0_BARTYPE3; - s0_pf3 : integer := CFG_AHBS0_PF3; - s0_ca3 : integer := CFG_AHBS0_CA3; - s1_haddr0 : integer := CFG_AHBS1_BAR0; - s1_hmask0 : integer := CFG_AHBS1_MASK0; - s1_htype0 : integer := CFG_AHBS1_BARTYPE0; - s1_pf0 : integer := CFG_AHBS1_PF0; - s1_ca0 : integer := CFG_AHBS1_CA0; - s1_haddr1 : integer := CFG_AHBS1_BAR1; - s1_hmask1 : integer := CFG_AHBS1_MASK1; - s1_htype1 : integer := CFG_AHBS1_BARTYPE1; - s1_pf1 : integer := CFG_AHBS1_PF1; - s1_ca1 : integer := CFG_AHBS1_CA1; - s1_haddr2 : integer := CFG_AHBS1_BAR2; - s1_hmask2 : integer := CFG_AHBS1_MASK2; - s1_htype2 : integer := CFG_AHBS1_BARTYPE2; - s1_pf2 : integer := CFG_AHBS1_PF2; - s1_ca2 : integer := CFG_AHBS1_CA2; - s1_haddr3 : integer := CFG_AHBS1_BAR3; - s1_hmask3 : integer := CFG_AHBS1_MASK3; - s1_htype3 : integer := CFG_AHBS1_BARTYPE3; - s1_pf3 : integer := CFG_AHBS1_PF3; - s1_ca3 : integer := CFG_AHBS1_CA3; - s2_haddr0 : integer := CFG_AHBS2_BAR0; - s2_hmask0 : integer := CFG_AHBS2_MASK0; - s2_htype0 : integer := CFG_AHBS2_BARTYPE0; - s2_pf0 : integer := CFG_AHBS2_PF0; - s2_ca0 : integer := CFG_AHBS2_CA0; - s2_haddr1 : integer := CFG_AHBS2_BAR1; - s2_hmask1 : integer := CFG_AHBS2_MASK1; - s2_htype1 : integer := CFG_AHBS2_BARTYPE1; - s2_pf1 : integer := CFG_AHBS2_PF1; - s2_ca1 : integer := CFG_AHBS2_CA1; - s2_haddr2 : integer := CFG_AHBS2_BAR2; - s2_hmask2 : integer := CFG_AHBS2_MASK2; - s2_htype2 : integer := CFG_AHBS2_BARTYPE2; - s2_pf2 : integer := CFG_AHBS2_PF2; - s2_ca2 : integer := CFG_AHBS2_CA2; - s2_haddr3 : integer := CFG_AHBS2_BAR3; - s2_hmask3 : integer := CFG_AHBS2_MASK3; - s2_htype3 : integer := CFG_AHBS2_BARTYPE3; - s2_pf3 : integer := CFG_AHBS2_PF3; - s2_ca3 : integer := CFG_AHBS2_CA3; - s3_haddr0 : integer := CFG_AHBS3_BAR0; - s3_hmask0 : integer := CFG_AHBS3_MASK0; - s3_htype0 : integer := CFG_AHBS3_BARTYPE0; - s3_pf0 : integer := CFG_AHBS3_PF0; - s3_ca0 : integer := CFG_AHBS3_CA0; - s3_haddr1 : integer := CFG_AHBS3_BAR1; - s3_hmask1 : integer := CFG_AHBS3_MASK1; - s3_htype1 : integer := CFG_AHBS3_BARTYPE1; - s3_pf1 : integer := CFG_AHBS3_PF1; - s3_ca1 : integer := CFG_AHBS3_CA1; - s3_haddr2 : integer := CFG_AHBS3_BAR2; - s3_hmask2 : integer := CFG_AHBS3_MASK2; - s3_htype2 : integer := CFG_AHBS3_BARTYPE2; - s3_pf2 : integer := CFG_AHBS3_PF2; - s3_ca2 : integer := CFG_AHBS3_CA2; - s3_haddr3 : integer := CFG_AHBS3_BAR3; - s3_hmask3 : integer := CFG_AHBS3_MASK3; - s3_htype3 : integer := CFG_AHBS3_BARTYPE3; - s3_pf3 : integer := CFG_AHBS3_PF3; - s3_ca3 : integer := CFG_AHBS3_CA3 - ); - port ( - rstn : in std_ulogic; - clk : in std_ulogic; - dsutx : out std_ulogic; -- DSU tx data - dsurx : in std_ulogic; -- DSU rx data - txd1 : out std_ulogic; -- UART1 tx data - rxd1 : in std_ulogic; -- UART1 rx data - dsubreak : in std_ulogic; -- Break signal to DSU - dsuactive : out std_ulogic; -- DSU Active indicator - gpio_in : in std_logic_vector(31 downto 0); -- GPIO In - gpio_out : out std_logic_vector(31 downto 0); -- GPIO Out - gpio_oen : out std_logic_vector(31 downto 0); -- GPIO output enable - - -- Master #0 pass through - m0_hgrant : out std_logic; --bus grant - m0_hready : out std_logic; --transfer done - m0_hresp : out std_logic_vector(1 downto 0); --response type - m0_hrdata : out std_logic_vector(AHBDW-1 downto 0); --read data bus - m0_hcache : out std_logic; --cacheable - m0_hirq : out std_logic; --interrupt - m0_hbusreq : in std_logic; --bus request - m0_hlock : in std_logic; --lock request - m0_htrans : in std_logic_vector(1 downto 0); --transfer type - m0_haddr : in std_logic_vector(31 downto 0); --address bus - m0_hwrite : in std_logic; --read/write - m0_hsize : in std_logic_vector(2 downto 0); --transfer size - m0_hburst : in std_logic_vector(2 downto 0); --burst type - m0_hprot : in std_logic_vector(3 downto 0); --protection control - m0_hwdata : in std_logic_vector(AHBDW-1 downto 0); --write data bus - m0_hirq_o : in std_logic; --interrupt - - -- Master #1 pass through - m1_hgrant : out std_logic; --bus grant - m1_hready : out std_logic; --transfer done - m1_hresp : out std_logic_vector(1 downto 0); --response type - m1_hrdata : out std_logic_vector(AHBDW-1 downto 0); --read data bus - m1_hcache : out std_logic; --cacheable - m1_hirq : out std_logic; --interrupt - m1_hbusreq : in std_logic; --bus request - m1_hlock : in std_logic; --lock request - m1_htrans : in std_logic_vector(1 downto 0); --transfer type - m1_haddr : in std_logic_vector(31 downto 0); --address bus - m1_hwrite : in std_logic; --read/write - m1_hsize : in std_logic_vector(2 downto 0); --transfer size - m1_hburst : in std_logic_vector(2 downto 0); --burst type - m1_hprot : in std_logic_vector(3 downto 0); --protection control - m1_hwdata : in std_logic_vector(AHBDW-1 downto 0); --write data bus - m1_hirq_o : in std_logic; --interrupt - - -- Slave #0 pass through - s0_hsel : out std_logic; --slave select - s0_haddr : out std_logic_vector(31 downto 0); --slave address (byte addressing) - s0_hwrite : out std_logic; --read/write - s0_htrans : out std_logic_vector(1 downto 0); --transfer type - s0_hsize : out std_logic_vector(2 downto 0); --transfer size - s0_hburst : out std_logic_vector(2 downto 0); --burst type - s0_hwdata : out std_logic_vector(AHBDW-1 downto 0); --write data - s0_hprot : out std_logic_vector(3 downto 0); --protection control - s0_hready : out std_logic; --transfer done - s0_hmaster : out std_logic_vector(3 downto 0); --current master - s0_hmastlock : out std_logic; --locked access - s0_hmbsel : out std_logic_vector(0 to NAHBAMR-1); --memory bank select - s0_hcache : out std_logic; --cacheable - s0_hirq : out std_logic; --interrupt - s0_hready_o : in std_logic; --transfer done - s0_hresp : in std_logic_vector(1 downto 0); --response type - s0_hrdata : in std_logic_vector(AHBDW-1 downto 0); --read data - s0_hsplit : in std_logic_vector(15 downto 0); --split completion - s0_hcache_o : in std_logic; --cacheable - s0_hirq_o : in std_logic; --interrupt - - -- Slave #1 pass through - s1_hsel : out std_logic; --slave select - s1_haddr : out std_logic_vector(31 downto 0); --slave address (byte addressing) - s1_hwrite : out std_logic; --read/write - s1_htrans : out std_logic_vector(1 downto 0); --transfer type - s1_hsize : out std_logic_vector(2 downto 0); --transfer size - s1_hburst : out std_logic_vector(2 downto 0); --burst type - s1_hwdata : out std_logic_vector(AHBDW-1 downto 0); --write data - s1_hprot : out std_logic_vector(3 downto 0); --protection control - s1_hready : out std_logic; --transfer done - s1_hmaster : out std_logic_vector(3 downto 0); --current master - s1_hmastlock : out std_logic; --locked access - s1_hmbsel : out std_logic_vector(0 to NAHBAMR-1); --memory bank select - s1_hcache : out std_logic; --cacheable - s1_hirq : out std_logic; --interrupt - s1_hready_o : in std_logic; --transfer done - s1_hresp : in std_logic_vector(1 downto 0); --response type - s1_hrdata : in std_logic_vector(AHBDW-1 downto 0); --read data - s1_hsplit : in std_logic_vector(15 downto 0); --split completion - s1_hcache_o : in std_logic; --cacheable - s1_hirq_o : in std_logic; --interrupt - - -- Slave #2 pass through - s2_hsel : out std_logic; --slave select - s2_haddr : out std_logic_vector(31 downto 0); --slave address (byte addressing) - s2_hwrite : out std_logic; --read/write - s2_htrans : out std_logic_vector(1 downto 0); --transfer type - s2_hsize : out std_logic_vector(2 downto 0); --transfer size - s2_hburst : out std_logic_vector(2 downto 0); --burst type - s2_hwdata : out std_logic_vector(AHBDW-1 downto 0); --write data - s2_hprot : out std_logic_vector(3 downto 0); --protection control - s2_hready : out std_logic; --transfer done - s2_hmaster : out std_logic_vector(3 downto 0); --current master - s2_hmastlock : out std_logic; --locked access - s2_hmbsel : out std_logic_vector(0 to NAHBAMR-1); --memory bank select - s2_hcache : out std_logic; --cacheable - s2_hirq : out std_logic; --interrupt - s2_hready_o : in std_logic; --transfer done - s2_hresp : in std_logic_vector(1 downto 0); --response type - s2_hrdata : in std_logic_vector(AHBDW-1 downto 0); --read data - s2_hsplit : in std_logic_vector(15 downto 0); --split completion - s2_hcache_o : in std_logic; --cacheable - s2_hirq_o : in std_logic; --interrupt - - -- Slave #3 pass through - s3_hsel : out std_logic; --slave select - s3_haddr : out std_logic_vector(31 downto 0); --slave address (byte addressing) - s3_hwrite : out std_logic; --read/write - s3_htrans : out std_logic_vector(1 downto 0); --transfer type - s3_hsize : out std_logic_vector(2 downto 0); --transfer size - s3_hburst : out std_logic_vector(2 downto 0); --burst type - s3_hwdata : out std_logic_vector(AHBDW-1 downto 0); --write data - s3_hprot : out std_logic_vector(3 downto 0); --protection control - s3_hready : out std_logic; --transfer done - s3_hmaster : out std_logic_vector(3 downto 0); --current master - s3_hmastlock : out std_logic; --locked access - s3_hmbsel : out std_logic_vector(0 to NAHBAMR-1); --memory bank select - s3_hcache : out std_logic; --cacheable - s3_hirq : out std_logic; --interrupt - s3_hready_o : in std_logic; --transfer done - s3_hresp : in std_logic_vector(1 downto 0); --response type - s3_hrdata : in std_logic_vector(AHBDW-1 downto 0); --read data - s3_hsplit : in std_logic_vector(15 downto 0); --split completion - s3_hcache_o : in std_logic; --cacheable - s3_hirq_o : in std_logic --interrupt - - ); -end; - -architecture rtl of leon3mp_core is - -constant NCPU : integer := 1; -constant nahbm : integer := ahbm_pt + 2; -- Total number of master ports -constant nahbs : integer := ahbs_pt + 7; -- Total number of slave ports - -constant m0_hindex : integer := 2; -- master passthru port #0 -constant m1_hindex : integer := 3; -- master passtrhu port #1 -constant s0_hindex : integer := 7; -- Slave passthru port #0 -constant s1_hindex : integer := 8; -- Slave passthru port #1 -constant s2_hindex : integer := 9; -- Slave passthru port #2 -constant s3_hindex : integer := 10; -- Slave passthru port #3 - -signal dsui : dsu_in_type; -signal dsuo : dsu_out_type; -signal dbgi : l3_debug_in_vector(0 to NCPU-1); -signal dbgo : l3_debug_out_vector(0 to NCPU-1); -signal apbi : apb_slv_in_type; -signal apbo : apb_slv_out_vector := (others => apb_none); -signal ahbsi : ahb_slv_in_type; -signal ahbso : ahb_slv_out_vector := (others => ahbs_none); -signal ahbmi : ahb_mst_in_type; -signal ahbmo : ahb_mst_out_vector := (others => ahbm_none); - -signal dui : uart_in_type; -signal duo : uart_out_type; - -signal tck, tms, tdi, tdo : std_ulogic; -signal irqn, lclk, gnd : std_logic; - -signal bus_error : std_logic_vector(1 downto 0); - -signal irqi : irq_in_vector(0 to NCPU-1); -signal irqo : irq_out_vector(0 to NCPU-1); - -signal gpioi : gpio_in_type; -signal gpioo : gpio_out_type; - -begin - ----------------------------------------------------------------------- ---- LEON3 processor and DSU ----------------------------------------- ----------------------------------------------------------------------- - - -- hindex 0, Master 0, no MEMBAR - l3 : if CFG_LEON3 = 1 generate - cpu : for i in 0 to NCPU-1 generate - u0 : leon3s -- LEON3 processor - generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, - 0, CFG_MAC, pclow, 0, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, - CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, - CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, - CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, - CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, NCPU-1) - port map (clk, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, - irqi(i), irqo(i), dbgi(i), dbgo(i)); - end generate; - bus_error(0) <= not dbgo(0).error; - --- hindex 2, slave 2, MEMBAR: x900, 256MByte - dsugen : if CFG_DSU = 1 generate - dsu0 : dsu3 -- LEON3 Debug Support Unit - generic map (hindex => 2, haddr => 16#900#, hmask => 16#F00#, - ncpu => NCPU, tbits => 30, tech => memtech, irq => 0, kbytes => CFG_ATBSZ) - port map (rstn, clk, ahbmi, ahbsi, ahbso(2), dbgo, dbgi, dsui, dsuo); - dsui.enable <= '1'; --- dsui.break <= gpioo.val(11); -- South Button --- led(4) <= dsuo.active; - dsui.break <= dsubreak; - dsuactive <= dsuo.active; - end generate; - end generate; - - nodsu : if CFG_DSU = 0 generate - dsuo.tstop <= '0'; dsuo.active <= '0'; - end generate; - --- hindex 0,1. APB 7 - dcomgen : if CFG_AHB_UART = 1 generate - dcom0: ahbuart -- Debug UART - generic map (hindex => NCPU, pindex => 7, paddr => 7) - port map (rstn, clk, dui, duo, apbi, apbo(7), ahbmi, ahbmo(NCPU)); - dui.rxd <= rxd1; - end generate; - txd1 <= duo.txd; - --- hindex 0, 1 - ahbjtaggen0 :if CFG_AHB_JTAG = 1 generate - ahbjtag0 : ahbjtag generic map(tech => fabtech, hindex => NCPU) - port map(rstn, clk, tck, tms, tdi, tdo, ahbmi, ahbmo(NCPU), - open, open, open, open, open, open, open, gnd); - end generate; - ------------------------------------------------------------------------ ---- AHB ROM ---------------------------------------------------------- ------------------------------------------------------------------------ - --- hindex 6, slave 6, MEMBAR: 0x000, 512MByte - bpromgen : if CFG_AHBROMEN /= 0 generate - brom : entity work.ahbrom - generic map (hindex => 6, haddr => CFG_AHBRODDR, pipe => CFG_AHBROPIP) - port map ( rstn, clk, ahbsi, ahbso(6)); - end generate; - nobpromgen : if CFG_AHBROMEN = 0 generate - ahbso(6) <= ahbs_none; - end generate; - ----------------------------------------------------------------------- ---- AHB CONTROLLER -------------------------------------------------- ----------------------------------------------------------------------- - - ahb0 : ahbctrl -- AHB arbiter/multiplexer - generic map (nahbm => nahbm, nahbs => nahbs, ioen => 0) - port map (rstn, clk, ahbmi, ahbmo, ahbsi, ahbso); - ----------------------------------------------------------------------- ---- AHB/APB Bridge ------------------------------------------------- ----------------------------------------------------------------------- - --- hindex 0, Address x800 - apb0 : apbctrl -- AHB/APB bridge - generic map (hindex => 0, haddr => 16#800#) - port map (rstn, clk, ahbsi, ahbso(0), apbi, apbo ); - - irqctrl : if CFG_IRQ3_ENABLE /= 0 generate - irqctrl0 : irqmp -- interrupt controller - generic map (pindex => 2, paddr => 2, ncpu => NCPU) - port map (rstn, clk, apbi, apbo(2), irqo, irqi); - end generate; - irq3 : if CFG_IRQ3_ENABLE = 0 generate - x : for i in 0 to NCPU-1 generate - irqi(i).irl <= "0000"; - end generate; - apbo(2) <= apb_none; - end generate; - - ----------------------------------------------------------------------- ---- GPIO on APB ----------------------------------------------------- ----------------------------------------------------------------------- - - gpio0 : if CFG_GRGPIO_ENABLE /= 0 generate -- GPIO unit - grgpio0: grgpio - generic map(pindex => 3, paddr => 3, imask => 16#00F0#, nbits => 31) - port map(rst => rstn, clk => clk, apbi => apbi, apbo => apbo(3), - gpioi => gpioi, gpioo => gpioo); - gpioi.din <= gpio_in; - gpio_out <= gpioo.dout; - gpio_oen <= gpioo.oen; - - -- type gpio_in_type is record - -- din : std_logic_vector(31 downto 0); - -- sig_in : std_logic_vector(31 downto 0); - -- sig_en : std_logic_vector(31 downto 0); - --end record; - - --type gpio_out_type is record - -- dout : std_logic_vector(31 downto 0); - -- oen : std_logic_vector(31 downto 0); - -- val : std_logic_vector(31 downto 0); - -- sig_out : std_logic_vector(31 downto 0); - --end record; - end generate; - nogpiogen: if CFG_GRGPIO_ENABLE = 0 generate - gpio_out <= (others => '0'); - gpio_oen <= (others => '0'); - end generate; - ----------------------------------------------------------------------- ---- AHB Master Passthrough ------------------------------------------ ----------------------------------------------------------------------- - - ahbpassthru_mastergen1 : if ahbm_pt >= 1 generate - - thru1 : ahbpassthru_master_vhdl - generic map (hindex_set => m0_hindex, - hbaseaddr => m0_haddr0, - hmask => m0_hmask0, - htype => m0_htype0, - PREFETCHABLE => m0_pf0, - CACHEABLE => m0_ca0, - AHBDW => AHBDW) - port map ( - -- inputs - hgrant => ahbmi.hgrant(m0_hindex), - hready => ahbmi.hready, - hresp => ahbmi.hresp, - hrdata => ahbmi.hrdata, - hcache => ahbmi.hcache, - hirq => ahbmi.hirq(m0_hindex), - -- outputs - hbusreq => ahbmo(m0_hindex).hbusreq, - hlock => ahbmo(m0_hindex).hlock, - htrans => ahbmo(m0_hindex).htrans, - haddr => ahbmo(m0_hindex).haddr, - hwrite => ahbmo(m0_hindex).hwrite, - hsize => ahbmo(m0_hindex).hsize, - hburst => ahbmo(m0_hindex).hburst, - hprot => ahbmo(m0_hindex).hprot, - hwdata => ahbmo(m0_hindex).hwdata, - hirq_o => ahbmo(m0_hindex).hirq(m0_hindex), - hconfig => ahbmo(m0_hindex).hconfig, - hindex => ahbmo(m0_hindex).hindex, - -- inputs - pt_hgrant => m0_hgrant, - pt_hready => m0_hready, - pt_hresp => m0_hresp, - pt_hrdata => m0_hrdata, - pt_hcache => m0_hcache, - pt_hirq => m0_hirq, - -- outputs - pt_hbusreq => m0_hbusreq, - pt_hlock => m0_hlock, - pt_htrans => m0_htrans, - pt_haddr => m0_haddr, - pt_hwrite => m0_hwrite, - pt_hsize => m0_hsize, - pt_hburst => m0_hburst, - pt_hprot => m0_hprot, - pt_hwdata => m0_hwdata, - pt_hirq_o => m0_hirq_o); - end generate; - - ahbpassthru_mastergen2: if ahbm_pt = 2 generate - - thru2 : ahbpassthru_master_vhdl - generic map (hindex_set => m1_hindex, - hbaseaddr => m1_haddr0, - hmask => m1_hmask0, - htype => m1_htype0, - PREFETCHABLE => m1_pf0, - CACHEABLE => m1_ca0, - AHBDW => AHBDW) - port map ( - -- inputs - hgrant => ahbmi.hgrant(m1_hindex), - hready => ahbmi.hready, - hresp => ahbmi.hresp, - hrdata => ahbmi.hrdata, - hcache => ahbmi.hcache, - hirq => ahbmi.hirq(m1_hindex), - -- outputs - hbusreq => ahbmo(m1_hindex).hbusreq, - hlock => ahbmo(m1_hindex).hlock, - htrans => ahbmo(m1_hindex).htrans, - haddr => ahbmo(m1_hindex).haddr, - hwrite => ahbmo(m1_hindex).hwrite, - hsize => ahbmo(m1_hindex).hsize, - hburst => ahbmo(m1_hindex).hburst, - hprot => ahbmo(m1_hindex).hprot, - hwdata => ahbmo(m1_hindex).hwdata, - hirq_o => ahbmo(m1_hindex).hirq(m1_hindex), - hconfig => ahbmo(m1_hindex).hconfig, - hindex => ahbmo(m1_hindex).hindex, - -- pass through outputs - pt_hgrant => m1_hgrant, - pt_hready => m1_hready, - pt_hresp => m1_hresp, - pt_hrdata => m1_hrdata, - pt_hcache => m1_hcache, - pt_hirq => m1_hirq, - -- pass through inputs - pt_hbusreq => m1_hbusreq, - pt_hlock => m1_hlock, - pt_htrans => m1_htrans, - pt_haddr => m1_haddr, - pt_hwrite => m1_hwrite, - pt_hsize => m1_hsize, - pt_hburst => m1_hburst, - pt_hprot => m1_hprot, - pt_hwdata => m1_hwdata, - pt_hirq_o => m1_hirq_o); - end generate; - - ----------------------------------------------------------------------- ---- AHB Slave Passthrough ------------------------------------------- ----------------------------------------------------------------------- - - ahbpassthru_slavegen1 : if ahbs_pt >= 1 generate - - thru1 : ahbpassthru_slave_vhdl - generic map (hindex_set => s0_hindex, - hbaseaddr => s0_haddr0, - hmask => s0_hmask0, - htype => s0_htype0, - PREFETCHABLE => s0_pf0, - CACHEABLE => s0_ca0, - NAHBAMR => NAHBAMR, - AHBDW => AHBDW) - port map ( - -- inputs - hsel => ahbsi.hsel(s0_hindex), - haddr => ahbsi.haddr, - hwrite => ahbsi.hwrite, - htrans => ahbsi.htrans, - hsize => ahbsi.hsize, - hburst => ahbsi.hburst, - hwdata => ahbsi.hwdata, - hprot => ahbsi.hprot, - hready => ahbsi.hready, - hmaster => ahbsi.hmaster, - hmastlock => ahbsi.hmastlock, - hmbsel => ahbsi.hmbsel, - hcache => ahbsi.hcache, - hirq => ahbsi.hirq(s0_hindex), - -- outputs - hready_o => ahbso(s0_hindex).hready, - hresp => ahbso(s0_hindex).hresp, - hrdata => ahbso(s0_hindex).hrdata, - hsplit => ahbso(s0_hindex).hsplit, - hcache_o => ahbso(s0_hindex).hcache, - hirq_o => ahbso(s0_hindex).hirq(s0_hindex), - hconfig => ahbso(s0_hindex).hconfig, - hindex => ahbso(s0_hindex).hindex, - -- pass through outputs - pt_hsel => s0_hsel, - pt_haddr => s0_haddr, - pt_hwrite => s0_hwrite, - pt_htrans => s0_htrans, - pt_hsize => s0_hsize, - pt_hburst => s0_hburst, - pt_hwdata => s0_hwdata, - pt_hprot => s0_hprot, - pt_hready => s0_hready, - pt_hmaster => s0_hmaster, - pt_hmastlock => s0_hmastlock, - pt_hmbsel => s0_hmbsel, - pt_hcache => s0_hcache, - pt_hirq => s0_hirq, - -- pass through inputs - pt_hready_o => s0_hready_o, - pt_hresp => s0_hresp, - pt_hrdata => s0_hrdata, - pt_hsplit => s0_hsplit, - pt_hcache_o => s0_hcache_o, - pt_hirq_o => s0_hirq_o); - - end generate; - - ahbpassthru_slavegen2: if ahbs_pt >= 2 generate - - thru2 : ahbpassthru_slave_vhdl - generic map (hindex_set => s1_hindex, - hbaseaddr => s1_haddr0, - hmask => s1_hmask0, - htype => s1_htype0, - PREFETCHABLE => s1_pf0, - CACHEABLE => s1_ca0, - NAHBAMR => NAHBAMR, - AHBDW => AHBDW) - port map ( - -- inputs - hsel => ahbsi.hsel(s1_hindex), - haddr => ahbsi.haddr, - hwrite => ahbsi.hwrite, - htrans => ahbsi.htrans, - hsize => ahbsi.hsize, - hburst => ahbsi.hburst, - hwdata => ahbsi.hwdata, - hprot => ahbsi.hprot, - hready => ahbsi.hready, - hmaster => ahbsi.hmaster, - hmastlock => ahbsi.hmastlock, - hmbsel => ahbsi.hmbsel, - hcache => ahbsi.hcache, - hirq => ahbsi.hirq(s1_hindex), - -- outputs - hready_o => ahbso(s1_hindex).hready, - hresp => ahbso(s1_hindex).hresp, - hrdata => ahbso(s1_hindex).hrdata, - hsplit => ahbso(s1_hindex).hsplit, - hcache_o => ahbso(s1_hindex).hcache, - hirq_o => ahbso(s1_hindex).hirq(s1_hindex), - hconfig => ahbso(s1_hindex).hconfig, - hindex => ahbso(s1_hindex).hindex, - -- pass through outputs - pt_hsel => s1_hsel, - pt_haddr => s1_haddr, - pt_hwrite => s1_hwrite, - pt_htrans => s1_htrans, - pt_hsize => s1_hsize, - pt_hburst => s1_hburst, - pt_hwdata => s1_hwdata, - pt_hprot => s1_hprot, - pt_hready => s1_hready, - pt_hmaster => s1_hmaster, - pt_hmastlock => s1_hmastlock, - pt_hmbsel => s1_hmbsel, - pt_hcache => s1_hcache, - pt_hirq => s1_hirq, - -- pass through inputs - pt_hready_o => s1_hready_o, - pt_hresp => s1_hresp, - pt_hrdata => s1_hrdata, - pt_hsplit => s1_hsplit, - pt_hcache_o => s1_hcache_o, - pt_hirq_o => s1_hirq_o); - end generate; - - - ahbpassthru_slavegen3: if ahbs_pt >= 3 generate - - thru3 : ahbpassthru_slave_vhdl - generic map (hindex_set => s2_hindex, - hbaseaddr => s2_haddr0, - hmask => s2_hmask0, - htype => s2_htype0, - PREFETCHABLE => s2_pf0, - CACHEABLE => s2_ca0, - NAHBAMR => NAHBAMR, - AHBDW => AHBDW) - port map ( - -- inputs - hsel => ahbsi.hsel(s2_hindex), - haddr => ahbsi.haddr, - hwrite => ahbsi.hwrite, - htrans => ahbsi.htrans, - hsize => ahbsi.hsize, - hburst => ahbsi.hburst, - hwdata => ahbsi.hwdata, - hprot => ahbsi.hprot, - hready => ahbsi.hready, - hmaster => ahbsi.hmaster, - hmastlock => ahbsi.hmastlock, - hmbsel => ahbsi.hmbsel, - hcache => ahbsi.hcache, - hirq => ahbsi.hirq(s2_hindex), - -- outputs - hready_o => ahbso(s2_hindex).hready, - hresp => ahbso(s2_hindex).hresp, - hrdata => ahbso(s2_hindex).hrdata, - hsplit => ahbso(s2_hindex).hsplit, - hcache_o => ahbso(s2_hindex).hcache, - hirq_o => ahbso(s2_hindex).hirq(s2_hindex), - hconfig => ahbso(s2_hindex).hconfig, - hindex => ahbso(s2_hindex).hindex, - -- pass through outputs - pt_hsel => s2_hsel, - pt_haddr => s2_haddr, - pt_hwrite => s2_hwrite, - pt_htrans => s2_htrans, - pt_hsize => s2_hsize, - pt_hburst => s2_hburst, - pt_hwdata => s2_hwdata, - pt_hprot => s2_hprot, - pt_hready => s2_hready, - pt_hmaster => s2_hmaster, - pt_hmastlock => s2_hmastlock, - pt_hmbsel => s2_hmbsel, - pt_hcache => s2_hcache, - pt_hirq => s2_hirq, - -- pass through inputs - pt_hready_o => s2_hready_o, - pt_hresp => s2_hresp, - pt_hrdata => s2_hrdata, - pt_hsplit => s2_hsplit, - pt_hcache_o => s2_hcache_o, - pt_hirq_o => s2_hirq_o); - end generate; - - ahbpassthru_slavegen4: if ahbs_pt = 4 generate - - thru4 : ahbpassthru_slave_vhdl - generic map (hindex_set => s3_hindex, - hbaseaddr => s3_haddr0, - hmask => s3_hmask0, - htype => s3_htype0, - PREFETCHABLE => s3_pf0, - CACHEABLE => s3_ca0, - NAHBAMR => NAHBAMR, - AHBDW => AHBDW) - port map ( - -- inputs - hsel => ahbsi.hsel(s3_hindex), - haddr => ahbsi.haddr, - hwrite => ahbsi.hwrite, - htrans => ahbsi.htrans, - hsize => ahbsi.hsize, - hburst => ahbsi.hburst, - hwdata => ahbsi.hwdata, - hprot => ahbsi.hprot, - hready => ahbsi.hready, - hmaster => ahbsi.hmaster, - hmastlock => ahbsi.hmastlock, - hmbsel => ahbsi.hmbsel, - hcache => ahbsi.hcache, - hirq => ahbsi.hirq(s3_hindex), - -- outputs - hready_o => ahbso(s3_hindex).hready, - hresp => ahbso(s3_hindex).hresp, - hrdata => ahbso(s3_hindex).hrdata, - hsplit => ahbso(s3_hindex).hsplit, - hcache_o => ahbso(s3_hindex).hcache, - hirq_o => ahbso(s3_hindex).hirq(s3_hindex), - hconfig => ahbso(s3_hindex).hconfig, - hindex => ahbso(s3_hindex).hindex, - -- pass through outputs - pt_hsel => s3_hsel, - pt_haddr => s3_haddr, - pt_hwrite => s3_hwrite, - pt_htrans => s3_htrans, - pt_hsize => s3_hsize, - pt_hburst => s3_hburst, - pt_hwdata => s3_hwdata, - pt_hprot => s3_hprot, - pt_hready => s3_hready, - pt_hmaster => s3_hmaster, - pt_hmastlock => s3_hmastlock, - pt_hmbsel => s3_hmbsel, - pt_hcache => s3_hcache, - pt_hirq => s3_hirq, - -- pass through inputs - pt_hready_o => s3_hready_o, - pt_hresp => s3_hresp, - pt_hrdata => s3_hrdata, - pt_hsplit => s3_hsplit, - pt_hcache_o => s3_hcache_o, - pt_hirq_o => s3_hirq_o); - end generate; - -end; diff --git a/designs/basic_passthru/test_basic_passthru.v b/designs/basic_passthru/test_basic_passthru.v deleted file mode 100644 index f4da0fd0..00000000 --- a/designs/basic_passthru/test_basic_passthru.v +++ /dev/null @@ -1,48 +0,0 @@ -//Testbench doesn't do anything except toggle the clock and release reset. -`timescale 1ns / 100ps -module test_basic_passthru; - - reg leon_clk; - reg leon_clk_reset_n; - reg [31:0] gpio_in; - wire [31:0] gpio_out; - wire [31:0] gpio_oen; - reg usb_uart_rxd; - reg dsurx; - reg miso_i; - wire [7:0] ssn_o; - - initial leon_clk = 0; always #5 leon_clk <= !leon_clk; //100MHz clock - initial begin - leon_clk_reset_n = 0; - gpio_in = 0; - usb_uart_rxd = 1; //UART's should be '1' when idle - dsurx = 1; - miso_i = 0; //SPI should be '0' when idle - repeat (10) @(posedge leon_clk); - leon_clk_reset_n <= 1; - repeat (10000) @(posedge leon_clk); - $stop; - end - - basic_passthru basic_passthru - ( - // Outputs - .usb_uart_txd (usb_uart_txd), - .dsutx (dsutx), - .gpio_out (gpio_out[31:0]), - .gpio_oen (gpio_oen[31:0]), - .sck_o (sck_o), - .mosi_o (mosi_o), - .ssn_o (ssn_o[7:0]), - // Inputs - .gpio_in (gpio_in[31:0]), - .leon_clk (leon_clk), - .leon_clk_reset_n (leon_clk_reset_n), - .usb_uart_rxd (usb_uart_rxd), - .dsurx (dsurx), - .miso_i (miso_i)); - -endmodule // test_basic_passthru - - \ No newline at end of file diff --git a/designs/leon3-altera-de2-ep2c35/Makefile b/designs/leon3-altera-de2-ep2c35/Makefile index aaf88511..916f6e9e 100644 --- a/designs/leon3-altera-de2-ep2c35/Makefile +++ b/designs/leon3-altera-de2-ep2c35/Makefile @@ -23,12 +23,12 @@ SYNPOPT="set_option -pipe 1; set_option -retiming 1; set_option -write_apr_const TECHLIBS = altera altera_mf stratixii LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress ihp gleichmann fmf spansion gsi -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr ata haps \ - slink ascs coremp7 ac97 eon3ft leon4 leon4b64 l2cache \ + tmtc openchip hynix cypress ihp fmf spansion gsi +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr \ + slink ascs leon3ft leon4 leon4v0 l2cache \ spacewire usb pwm gr1553b iommu pci leon3ft hcan -FILESKIP = grcan.vhd simple_spi_top.v ata_device.v i2c_slave_model.v +FILESKIP = grcan.vhd i2c_slave_model.v include $(GRLIB)/bin/Makefile include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-altera-de2-ep2c35/clkgen_de2.vhd b/designs/leon3-altera-de2-ep2c35/clkgen_de2.vhd index 0ce1da27..e2293e4c 100644 --- a/designs/leon3-altera-de2-ep2c35/clkgen_de2.vhd +++ b/designs/leon3-altera-de2-ep2c35/clkgen_de2.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-de2-ep2c35/config.help b/designs/leon3-altera-de2-ep2c35/config.help index 076eb0b0..8fb124f5 100644 --- a/designs/leon3-altera-de2-ep2c35/config.help +++ b/designs/leon3-altera-de2-ep2c35/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. diff --git a/designs/leon3-altera-de2-ep2c35/lconfig.tk b/designs/leon3-altera-de2-ep2c35/lconfig.tk index 9ab3f222..aa130e7e 100755 --- a/designs/leon3-altera-de2-ep2c35/lconfig.tk +++ b/designs/leon3-altera-de2-ep2c35/lconfig.tk @@ -752,7 +752,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -762,7 +763,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -905,8 +908,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -925,6 +930,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1014,9 +1023,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1070,10 +1080,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1119,14 +1130,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1199,13 +1212,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1245,22 +1266,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1317,21 +1606,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1378,36 +1667,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1415,48 +1705,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1512,28 +1803,28 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH - global tmpvar_7 - minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x4.x.menu 3 bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1574,20 +1865,21 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1596,38 +1888,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} - global tmpvar_7 + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1684,92 +1977,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1777,18 +2070,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1829,52 +2122,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1882,162 +2176,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2093,45 +2388,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2171,18 +2468,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2190,55 +2488,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2295,24 +2598,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2352,17 +2655,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2370,37 +2674,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2456,22 +2761,22 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - global tmpvar_26 - minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_26 CONFIG_FPUFT_NONE + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" - $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN @@ -2542,26 +2847,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global tmpvar_26 + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 global CONFIG_FPUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} global CONFIG_FPUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} global CONFIG_FPUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} global CONFIG_FPUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -3462,16 +3767,16 @@ proc menu17 {w title} { bool $w.config.f 17 0 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 17 1 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_28 + minimenu $w.config.f 17 1 "AHB RAM size (Kbyte)" tmpvar_28 CONFIG_AHBRAM_SZ1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" menusplit $w $w.config.f.x1.x.menu 7 hex $w.config.f 17 2 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3521,21 +3826,21 @@ proc update_menu17 {} { proc update_define_menu17 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_27 + global tmpvar_28 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_28 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_28 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3594,15 +3899,15 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_28 - minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_28 CONFIG_UA1_FIFO1 + global tmpvar_29 + minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 18 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 18 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3699,19 +4004,19 @@ proc update_menu18 {} { proc update_define_menu18 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_28 + global tmpvar_29 global CONFIG_UA1_FIFO1 - if {$tmpvar_28 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_28 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -3994,7 +4299,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4004,6 +4310,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4028,6 +4336,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4040,14 +4349,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4060,28 +4374,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 set CONFIG_FPU_GRFPU_SH 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4091,17 +4405,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4113,12 +4427,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4128,10 +4442,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4142,7 +4456,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4154,26 +4468,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4181,27 +4497,27 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_FPUFT_NONE 0 set CONFIG_FPUFT_PAR 0 set CONFIG_FPUFT_DMR 0 @@ -4243,7 +4559,7 @@ set CONFIG_MCTRL_PROGPAGE 0 set CONFIG_AHBSTAT_ENABLE 0 set CONFIG_AHBSTAT_NFTSLV 1 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4253,7 +4569,7 @@ set CONFIG_AHBRAM_SZ32 0 set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_UART1_ENABLE 0 -set tmpvar_28 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4338,7 +4654,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4348,6 +4665,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4386,6 +4705,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4398,9 +4718,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4414,245 +4735,390 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4735,28 +5201,28 @@ proc writeconfig {file1 file2} { write_comment $cfg $autocfg "On-chip RAM/ROM " global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_28 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "UARTs, timers and I/O port " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_28 + global tmpvar_29 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } + if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } + if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } + if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } + if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } + if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4842,7 +5308,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4852,6 +5319,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4870,8 +5339,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -4954,11 +5428,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5072,8 +5548,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5092,6 +5570,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5132,310 +5614,326 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_FPUFT_NONE - if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_FPUFT_PAR - if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_FPUFT_DMR - if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_FPUFT_TMR - if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_28 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_28 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "1" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_28 "64" } + global tmpvar_29 + set tmpvar_29 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } } diff --git a/designs/leon3-altera-de2-ep2c35/leon3mp.vhd b/designs/leon3-altera-de2-ep2c35/leon3mp.vhd index 543972b8..28c22561 100644 --- a/designs/leon3-altera-de2-ep2c35/leon3mp.vhd +++ b/designs/leon3-altera-de2-ep2c35/leon3mp.vhd @@ -5,7 +5,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-de2-ep2c35/sdctrl16.vhd b/designs/leon3-altera-de2-ep2c35/sdctrl16.vhd index 25790d01..b39c88e3 100644 --- a/designs/leon3-altera-de2-ep2c35/sdctrl16.vhd +++ b/designs/leon3-altera-de2-ep2c35/sdctrl16.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -939,7 +939,6 @@ begin ahbso.hready <= r.hready; ahbso.hresp <= r.hresp; ahbso.hrdata <= ahbdrivedata(dout); - ahbso.hcache <= not r.hio; end process; diff --git a/designs/leon3-altera-de2-ep2c35/testbench.vhd b/designs/leon3-altera-de2-ep2c35/testbench.vhd index be75f515..9f689bc7 100644 --- a/designs/leon3-altera-de2-ep2c35/testbench.vhd +++ b/designs/leon3-altera-de2-ep2c35/testbench.vhd @@ -5,7 +5,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-de2-ep2c35/tkconfig.h b/designs/leon3-altera-de2-ep2c35/tkconfig.h index e1e14faa..cc5c8e39 100644 --- a/designs/leon3-altera-de2-ep2c35/tkconfig.h +++ b/designs/leon3-altera-de2-ep2c35/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else diff --git a/designs/leon3-altera-ep1c20/.config b/designs/leon3-altera-ep1c20/.config index 3a4c8fbd..e18c689a 100755 --- a/designs/leon3-altera-ep1c20/.config +++ b/designs/leon3-altera-ep1c20/.config @@ -160,11 +160,13 @@ CONFIG_MMU_REPARRAY=y CONFIG_MMU_I8=y # CONFIG_MMU_I16 is not set # CONFIG_MMU_I32 is not set +# CONFIG_MMU_I64 is not set # CONFIG_MMU_D2 is not set # CONFIG_MMU_D4 is not set CONFIG_MMU_D8=y # CONFIG_MMU_D16 is not set # CONFIG_MMU_D32 is not set +# CONFIG_MMU_D64 is not set CONFIG_MMU_FASTWB=y CONFIG_MMU_PAGE_4K=y # CONFIG_MMU_PAGE_8K is not set @@ -273,14 +275,6 @@ CONFIG_GRGPIO_ENABLE=y CONFIG_GRGPIO_WIDTH=2 CONFIG_GRGPIO_IMASK=000F -# -# ATA Controller -# -CONFIG_ATA_ENABLE=y -CONFIG_ATAIO=A00 -CONFIG_ATAIRQ=10 -# CONFIG_ATA_MWDMA is not set - # # VHDL Debugging # diff --git a/designs/leon3-altera-ep1c20/Makefile b/designs/leon3-altera-ep1c20/Makefile index 9f6e7cb1..6d253904 100644 --- a/designs/leon3-altera-ep1c20/Makefile +++ b/designs/leon3-altera-ep1c20/Makefile @@ -17,10 +17,10 @@ CLEAN=soft-clean TECHLIBS = altera altera_mf LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann eth hynix cypress + tmtc openchip ihp eth hynix cypress DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - ddr usbhc greth usb spacewire net haps spi ac97 grusbhc \ - slink ascs coremp7 hcan + ddr usbhc greth usb spacewire net spi grusbhc \ + slink ascs hcan leon4 leon4v0 FILESKIP = grcan.vhd include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-altera-ep1c20/ahbrom.vhd b/designs/leon3-altera-ep1c20/ahbrom.vhd index a61a155a..2091c411 100644 --- a/designs/leon3-altera-ep1c20/ahbrom.vhd +++ b/designs/leon3-altera-ep1c20/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-altera-ep1c20/clkgen_ep1c20board.vhd b/designs/leon3-altera-ep1c20/clkgen_ep1c20board.vhd index 61a151b1..4fb664c2 100644 --- a/designs/leon3-altera-ep1c20/clkgen_ep1c20board.vhd +++ b/designs/leon3-altera-ep1c20/clkgen_ep1c20board.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-ep1c20/config.help b/designs/leon3-altera-ep1c20/config.help index 78e45c56..fc8730dd 100644 --- a/designs/leon3-altera-ep1c20/config.help +++ b/designs/leon3-altera-ep1c20/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ @@ -922,32 +955,6 @@ CONFIG_GRGPIO_IMASK The I/O port interrupt mask defines which bits in the I/O port should be able to create an interrupt. -ATA interface enable -CONFIG_ATA_ENABLE - Say Y here to enable the ATA interace from OpenCores. The core has one - AHB slave interface for accessing all control registers. - -ATA register address -CONFIG_ATAIO - The control registers of the ATA core occupy 256 byte, and are - mapped in the AHB bus I/O area (0xFFF00000 - 0xFFFFF000). This setting - defines at which address in the I/O area the registers appear (HADDR[19:8]). - -ATA interrupt -CONFIG_ATAIRQ - Defines which interrupt number the ATA core will generate. - -ATA DMA support -CONFIG_ATA_MWDMA - Say yes here to enable IDE multi-word DMA support (MWDMA). - This will increase transfer rate compared to the PIO mode, - but increase area with approxiamtely 5,000 gates. Note that - DMA is not supported by legacy CF cards, so it makes no sense - to enable it on CF card sockets. - -ATA DMA FIFO depth -CONFIG_ATA_FIFO - Defines the DMA FIFO depth. Choose 8 or 16. UART debugging CONFIG_DEBUG_UART During simulation, the output from the UARTs is printed on the diff --git a/designs/leon3-altera-ep1c20/config.in b/designs/leon3-altera-ep1c20/config.in index 050d271b..c3701786 100644 --- a/designs/leon3-altera-ep1c20/config.in +++ b/designs/leon3-altera-ep1c20/config.in @@ -63,11 +63,6 @@ comment 'Peripherals ' source lib/gaisler/misc/gptimer.in source lib/gaisler/misc/grgpio.in endmenu - - mainmenu_option next_comment - comment 'ATA Controller' - source lib/gaisler/ata/ata.in - endmenu # mainmenu_option next_comment # comment 'Keybord and VGA interface' diff --git a/designs/leon3-altera-ep1c20/config.vhd b/designs/leon3-altera-ep1c20/config.vhd index f6282d4b..62e3dd09 100644 --- a/designs/leon3-altera-ep1c20/config.vhd +++ b/designs/leon3-altera-ep1c20/config.vhd @@ -147,13 +147,6 @@ package config is constant CFG_GRGPIO_IMASK : integer := 16#000F#; constant CFG_GRGPIO_WIDTH : integer := (2); --- ATA interface - constant CFG_ATA : integer := 1; - constant CFG_ATAIO : integer := 16#A00#; - constant CFG_ATAIRQ : integer := (10); - constant CFG_ATADMA : integer := 0; - constant CFG_ATAFIFO : integer := 8; - -- GRLIB debugging constant CFG_DUART : integer := 0; end; diff --git a/designs/leon3-altera-ep1c20/config.vhd.h b/designs/leon3-altera-ep1c20/config.vhd.h index b34a51f1..c8120899 100644 --- a/designs/leon3-altera-ep1c20/config.vhd.h +++ b/designs/leon3-altera-ep1c20/config.vhd.h @@ -145,13 +145,6 @@ constant CFG_GRGPIO_IMASK : integer := 16#CONFIG_GRGPIO_IMASK#; constant CFG_GRGPIO_WIDTH : integer := CONFIG_GRGPIO_WIDTH; --- ATA interface - constant CFG_ATA : integer := CONFIG_ATA_ENABLE; - constant CFG_ATAIO : integer := 16#CONFIG_ATAIO#; - constant CFG_ATAIRQ : integer := CONFIG_ATAIRQ; - constant CFG_ATADMA : integer := CONFIG_ATA_MWDMA; - constant CFG_ATAFIFO : integer := CONFIG_ATA_FIFO; - -- GRLIB debugging constant CFG_DUART : integer := CONFIG_DEBUG_UART; diff --git a/designs/leon3-altera-ep1c20/lconfig.tk b/designs/leon3-altera-ep1c20/lconfig.tk index 638e1151..c3f1da33 100755 --- a/designs/leon3-altera-ep1c20/lconfig.tk +++ b/designs/leon3-altera-ep1c20/lconfig.tk @@ -644,7 +644,7 @@ set active_menus [list] set processed_top_level 0 set ARCH sparc set menus_per_column 4 -set total_menus 20 +set total_menus 19 proc toplevel_menu {num} { if {$num == 4} then {return 3} @@ -659,7 +659,6 @@ proc toplevel_menu {num} { if {$num == 16} then {return 14} if {$num == 17} then {return 13} if {$num == 18} then {return 13} - if {$num == 19} then {return 13} return $num } @@ -753,7 +752,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -763,7 +763,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -906,8 +908,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -926,6 +930,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1015,9 +1023,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1071,10 +1080,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1120,14 +1130,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1200,13 +1212,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1246,22 +1266,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1318,21 +1606,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1379,36 +1667,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1416,48 +1705,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1513,27 +1803,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1574,16 +1864,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1592,34 +1883,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1676,92 +1968,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1769,18 +2061,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1821,52 +2113,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1874,162 +2167,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2085,45 +2379,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2163,18 +2459,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2182,55 +2479,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2287,24 +2589,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2344,17 +2646,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2362,37 +2665,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2448,16 +2752,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2505,9 +2816,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2529,21 +2838,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2950,7 +3264,6 @@ proc menu13 {w title} { submenu $w.config.f 13 0 "Memory controllers " 14 submenu $w.config.f 13 1 "On-chip RAM/ROM " 17 submenu $w.config.f 13 2 "UARTs, timers and irq control " 18 - submenu $w.config.f 13 3 "ATA Controller" 19 @@ -3152,32 +3465,32 @@ proc menu15 {w title} { int $w.config.f 15 3 "RAM waitstates" CONFIG_SRCTRL_RAMWS int $w.config.f 15 4 "IO waitstates" CONFIG_SRCTRL_IOWS bool $w.config.f 15 5 "Use read-modify-write for sub-word writes " CONFIG_SRCTRL_RMW - global tmpvar_26 - minimenu $w.config.f 15 6 "SRAM banks" tmpvar_26 CONFIG_SRCTRL_SRBANKS1 + global tmpvar_28 + minimenu $w.config.f 15 6 "SRAM banks" tmpvar_28 CONFIG_SRCTRL_SRBANKS1 menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"SRAM banks\"" - $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_26 -value "3" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_26 -value "5" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_28 -value "3" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_28 -value "5" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 - global tmpvar_27 - minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_27 CONFIG_SRCTRL_BANKSZ0 + global tmpvar_29 + minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_29 CONFIG_SRCTRL_BANKSZ0 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"SRAM bank size (kb) (0 for programmable)\"" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_27 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_27 -value "256" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_27 -value "512" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_27 -value "1024" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_27 -value "2048" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_27 -value "4096" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_27 -value "8192" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_27 -value "16384" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_27 -value "32768" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_27 -value "65536" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_29 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_29 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_29 -value "512" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_29 -value "1024" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_29 -value "2048" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_29 -value "4096" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_29 -value "8192" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_29 -value "16384" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_29 -value "32768" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_29 -value "65536" -command "update_active" menusplit $w $w.config.f.x7.x.menu 14 int $w.config.f 15 8 "PROM bank select address bit (0 - 28)" CONFIG_SRCTRL_ROMASEL @@ -3253,46 +3566,46 @@ proc update_define_menu15 {} { global CONFIG_SRCTRL_RMW if {($CONFIG_SRCTRL == 1)} then { set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW&15]} else {set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_SRCTRL_SRBANKS1 - if {$tmpvar_26 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} global CONFIG_SRCTRL_SRBANKS2 - if {$tmpvar_26 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} global CONFIG_SRCTRL_SRBANKS3 - if {$tmpvar_26 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} + if {$tmpvar_28 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} global CONFIG_SRCTRL_SRBANKS4 - if {$tmpvar_26 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} global CONFIG_SRCTRL_SRBANKS5 - if {$tmpvar_26 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} - global tmpvar_27 + if {$tmpvar_28 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} + global tmpvar_29 global CONFIG_SRCTRL_BANKSZ0 - if {$tmpvar_27 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} + if {$tmpvar_29 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} global CONFIG_SRCTRL_BANKSZ1 - if {$tmpvar_27 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} + if {$tmpvar_29 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} global CONFIG_SRCTRL_BANKSZ2 - if {$tmpvar_27 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} + if {$tmpvar_29 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} global CONFIG_SRCTRL_BANKSZ3 - if {$tmpvar_27 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} + if {$tmpvar_29 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} global CONFIG_SRCTRL_BANKSZ4 - if {$tmpvar_27 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} + if {$tmpvar_29 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} global CONFIG_SRCTRL_BANKSZ5 - if {$tmpvar_27 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} + if {$tmpvar_29 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} global CONFIG_SRCTRL_BANKSZ6 - if {$tmpvar_27 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} + if {$tmpvar_29 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} global CONFIG_SRCTRL_BANKSZ7 - if {$tmpvar_27 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} + if {$tmpvar_29 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} global CONFIG_SRCTRL_BANKSZ8 - if {$tmpvar_27 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} + if {$tmpvar_29 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} global CONFIG_SRCTRL_BANKSZ9 - if {$tmpvar_27 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} + if {$tmpvar_29 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} global CONFIG_SRCTRL_BANKSZ10 - if {$tmpvar_27 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} + if {$tmpvar_29 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} global CONFIG_SRCTRL_BANKSZ11 - if {$tmpvar_27 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} + if {$tmpvar_29 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} global CONFIG_SRCTRL_BANKSZ12 - if {$tmpvar_27 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} + if {$tmpvar_29 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} global CONFIG_SRCTRL_BANKSZ13 - if {$tmpvar_27 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} + if {$tmpvar_29 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} global CONFIG_SRCTRL_ROMASEL if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_ROMASEL "$CONFIG_SRCTRL_ROMASEL" 19} } @@ -3516,16 +3829,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_28 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_28 CONFIG_AHBRAM_SZ1 + global tmpvar_30 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_30 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3587,21 +3900,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_28 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_30 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_28 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_30 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_28 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_28 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_28 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_28 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_28 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3622,7 +3935,7 @@ proc menu18 {w title} { wm title $w "UARTs, timers and irq control " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 18; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu19 .menu19 \"$title\"" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; catch {destroy .menu13}; unregister_active 13; menu19 .menu19 \"$title\"" frame $w.f button $w.f.back -text "OK" \ -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18" @@ -3660,15 +3973,15 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 18 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 18 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3757,19 +4070,19 @@ proc update_menu18 {} { proc update_define_menu18 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -3801,153 +4114,31 @@ proc update_define_menu18 {} { } +menu_option menu19 19 "VHDL Debugging " proc menu19 {w title} { set oldFocus [focus] - catch {focus .menu13} catch {destroy $w; unregister_active 19} toplevel $w -class Dialog wm withdraw $w global active_menus set active_menus [lsort -integer [linsert $active_menus end 19]] - message $w.m -width 400 -aspect 300 -text \ - "ATA Controller" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "ATA Controller" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 19; catch {destroy .menu13}; unregister_active 13; menu20 .menu20 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 19 0 "Enable ATA interface " CONFIG_ATA_ENABLE - hex $w.config.f 19 1 "ATA I/O area start address (haddr\[19:8\]) " CONFIG_ATAIO - int $w.config.f 19 2 "Interrupt number " CONFIG_ATAIRQ - bool $w.config.f 19 3 "Enable MWDMA support " CONFIG_ATA_MWDMA - int $w.config.f 19 4 "FIFO depth " CONFIG_ATA_FIFO - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu19 {} { - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {.menu19.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x1.l configure -state normal; } else {.menu19.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x1.l configure -state disabled} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {.menu19.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x2.l configure -state normal; } else {.menu19.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x2.l configure -state disabled} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - configure_entry .menu19.config.f.x3 normal {n l y}} else {configure_entry .menu19.config.f.x3 disabled {y n l}} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {.menu19.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x4.l configure -state normal; } else {.menu19.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x4.l configure -state disabled} -} - - -proc update_define_menu19 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {validate_hex CONFIG_ATAIO "$CONFIG_ATAIO" A00} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {validate_int CONFIG_ATAIRQ "$CONFIG_ATAIRQ" 10} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA&15]} else {set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA|16]} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {validate_int CONFIG_ATA_FIFO "$CONFIG_ATA_FIFO" 8} -} - - -menu_option menu20 20 "VHDL Debugging " -proc menu20 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 20} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 20]] message $w.m -width 400 -aspect 300 -text \ "VHDL Debugging " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "VHDL Debugging " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; break" - set nextscript "catch {focus $oldFocus}; menu21 .menu21 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; break" + set nextscript "catch {focus $oldFocus}; menu20 .menu20 \"$title\"" frame $w.f button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript $w.f.next configure -state disabled bind all "puts \"no more menus\" " button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -3975,7 +4166,7 @@ proc menu20 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 20 0 "Accelerated UART tracing " CONFIG_DEBUG_UART + bool $w.config.f 19 0 "Accelerated UART tracing " CONFIG_DEBUG_UART @@ -4011,11 +4202,11 @@ proc menu20 {w title} { } } -proc update_menu20 {} { +proc update_menu19 {} { } -proc update_define_menu20 {} { +proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES } @@ -4061,7 +4252,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4071,6 +4263,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4095,6 +4289,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4107,14 +4302,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4127,27 +4327,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4157,17 +4357,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4179,12 +4379,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4194,10 +4394,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4208,7 +4408,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4220,26 +4420,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4247,27 +4449,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4293,13 +4499,13 @@ set CONFIG_SRCTRL_PROMWS 3 set CONFIG_SRCTRL_RAMWS 0 set CONFIG_SRCTRL_IOWS 0 set CONFIG_SRCTRL_RMW 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_SRCTRL_SRBANKS1 0 set CONFIG_SRCTRL_SRBANKS2 0 set CONFIG_SRCTRL_SRBANKS3 0 set CONFIG_SRCTRL_SRBANKS4 0 set CONFIG_SRCTRL_SRBANKS5 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_SRCTRL_BANKSZ0 0 set CONFIG_SRCTRL_BANKSZ1 0 set CONFIG_SRCTRL_BANKSZ2 0 @@ -4329,7 +4535,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4339,7 +4545,7 @@ set CONFIG_AHBRAM_SZ32 0 set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4360,11 +4566,6 @@ set CONFIG_GPT_WDOG FFFF set CONFIG_GRGPIO_ENABLE 0 set CONFIG_GRGPIO_WIDTH 8 set CONFIG_GRGPIO_IMASK 0000 -set CONFIG_ATA_ENABLE 0 -set CONFIG_ATAIO A00 -set CONFIG_ATAIRQ 10 -set CONFIG_ATA_MWDMA 0 -set CONFIG_ATA_FIFO 8 set CONFIG_DEBUG_UART 0 set CONFIG_SYN_ARTISAN 4 set CONFIG_PCI_ENABLE 4 @@ -4421,7 +4622,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4431,6 +4633,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4469,6 +4673,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4481,9 +4686,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4497,239 +4703,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4786,29 +5142,29 @@ proc writeconfig {file1 file2} { if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_IOWS $CONFIG_SRCTRL_IOWS $notmod } global CONFIG_SRCTRL_RMW if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_RMW $CONFIG_SRCTRL_RMW [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} - global tmpvar_27 + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} + global tmpvar_29 if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_SRCTRL_ROMASEL if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_ROMASEL $CONFIG_SRCTRL_ROMASEL $notmod } write_comment $cfg $autocfg "Leon2 memory controller " @@ -4841,28 +5197,28 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_28 + global tmpvar_30 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4891,17 +5247,6 @@ proc writeconfig {file1 file2} { if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRGPIO_WIDTH $CONFIG_GRGPIO_WIDTH $notmod } global CONFIG_GRGPIO_IMASK if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_GRGPIO_IMASK $CONFIG_GRGPIO_IMASK $notmod } - write_comment $cfg $autocfg "ATA Controller" - global CONFIG_ATA_ENABLE - write_tristate $cfg $autocfg CONFIG_ATA_ENABLE $CONFIG_ATA_ENABLE [list $notmod] 2 - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_ATAIO $CONFIG_ATAIO $notmod } - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_ATAIRQ $CONFIG_ATAIRQ $notmod } - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_ATA_MWDMA $CONFIG_ATA_MWDMA [list $notmod] 2 } - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {write_int $cfg $autocfg CONFIG_ATA_FIFO $CONFIG_ATA_FIFO $notmod } write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -4946,7 +5291,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4956,6 +5302,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4974,8 +5322,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5058,11 +5411,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5083,6 +5438,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_SRCTRL_SRBANKS1; set CONFIG_SRCTRL_SRBANKS1 0 global CONFIG_SRCTRL_SRBANKS2; set CONFIG_SRCTRL_SRBANKS2 0 global CONFIG_SRCTRL_SRBANKS3; set CONFIG_SRCTRL_SRBANKS3 0 @@ -5191,8 +5550,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5211,6 +5572,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5251,342 +5616,368 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "1" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "1" global CONFIG_SRCTRL_SRBANKS1 - if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_28 "1" } global CONFIG_SRCTRL_SRBANKS2 - if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_28 "2" } global CONFIG_SRCTRL_SRBANKS3 - if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_26 "3" } + if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_28 "3" } global CONFIG_SRCTRL_SRBANKS4 - if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_28 "4" } global CONFIG_SRCTRL_SRBANKS5 - if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_26 "5" } - global tmpvar_27 - set tmpvar_27 "0" + if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_28 "5" } + global tmpvar_29 + set tmpvar_29 "0" global CONFIG_SRCTRL_BANKSZ0 - if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_29 "8" } global CONFIG_SRCTRL_BANKSZ1 - if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_29 "16" } global CONFIG_SRCTRL_BANKSZ2 - if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_29 "32" } global CONFIG_SRCTRL_BANKSZ3 - if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_27 "64" } + if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_29 "64" } global CONFIG_SRCTRL_BANKSZ4 - if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_27 "128" } + if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_29 "128" } global CONFIG_SRCTRL_BANKSZ5 - if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_27 "256" } + if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_29 "256" } global CONFIG_SRCTRL_BANKSZ6 - if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_27 "512" } + if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_29 "512" } global CONFIG_SRCTRL_BANKSZ7 - if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_27 "1024" } + if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_29 "1024" } global CONFIG_SRCTRL_BANKSZ8 - if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_27 "2048" } + if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_29 "2048" } global CONFIG_SRCTRL_BANKSZ9 - if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_27 "4096" } + if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_29 "4096" } global CONFIG_SRCTRL_BANKSZ10 - if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_27 "8192" } + if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_29 "8192" } global CONFIG_SRCTRL_BANKSZ11 - if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_27 "16384" } + if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_29 "16384" } global CONFIG_SRCTRL_BANKSZ12 - if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_27 "32768" } + if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_29 "32768" } global CONFIG_SRCTRL_BANKSZ13 - if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_27 "65536" } - global tmpvar_28 - set tmpvar_28 "4" + if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_29 "65536" } + global tmpvar_30 + set tmpvar_30 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_30 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_30 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_30 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_30 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_30 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_30 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-altera-ep1c20/leon3mp.vhd b/designs/leon3-altera-ep1c20/leon3mp.vhd index 353086f4..4210c20d 100644 --- a/designs/leon3-altera-ep1c20/leon3mp.vhd +++ b/designs/leon3-altera-ep1c20/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -34,7 +34,6 @@ use gaisler.memctrl.all; use gaisler.leon3.all; use gaisler.uart.all; use gaisler.misc.all; -use gaisler.ata.all; use gaisler.jtag.all; library esa; use esa.memoryctrl.all; @@ -96,25 +95,6 @@ entity leon3mp is -- console UART rxd1 : in std_ulogic; txd1 : out std_ulogic; - - -- ATA signals - ata_rst : out std_logic; - ata_data : inout std_logic_vector(15 downto 0); - ata_da : out std_logic_vector(2 downto 0); - ata_cs0 : out std_logic; - ata_cs1 : out std_logic; - ata_dior : out std_logic; - ata_diow : out std_logic; - ata_iordy : in std_logic; - ata_intrq : in std_logic; - ata_dmack : out std_logic; - - -- Signals nedded to use CompactFlash with ATA controller - cf_power : out std_logic; -- To turn on power to the CompactFlash - cf_gnd_da : out std_logic_vector(10 downto 3); -- grounded address lines - cf_atasel : out std_logic; -- grounded to select true IDE mode - cf_we : out std_logic; -- should be connected to VCC in true IDE mode - cf_csel : out std_logic; -- for smsc lan chip eth_aen : out std_logic; @@ -139,7 +119,7 @@ architecture rtl of leon3mp is constant blength : integer := 12; constant fifodepth : integer := 8; - constant maxahbm : integer := NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_ATA*CFG_ATADMA; + constant maxahbm : integer := NCPU+CFG_AHB_UART+CFG_AHB_JTAG; signal vcc, gnd : std_logic_vector(7 downto 0); signal memi : memory_in_type; @@ -177,10 +157,6 @@ architecture rtl of leon3mp is signal dsui : dsu_in_type; signal dsuo : dsu_out_type; - signal idei : ata_in_type; - signal ideo : ata_out_type; - signal cf : cf_out_type; - signal gpti : gptimer_in_type; signal gpioi : gpio_in_type; signal gpioo : gpio_out_type; @@ -488,64 +464,6 @@ begin end generate; end generate; - ------------------------------------------------------------------------ ---- ATA Controller --------------------------------------------------- ------------------------------------------------------------------------ - - ata0 : if CFG_ATA = 1 generate - - atac0 : atactrl - generic map(tech => 0, fdepth => CFG_ATAFIFO, mhindex => CFG_NCPU+CFG_AHB_UART+ CFG_AHB_JTAG, - shindex => 5, haddr => 16#A00#, hmask => 16#fff#, pirq => CFG_ATAIRQ, - mwdma => CFG_ATADMA, TWIDTH => 8, - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 => 6, -- 70ns - PIO_mode0_T2 => 28, -- 290ns - PIO_mode0_T4 => 2, -- 30ns - PIO_mode0_Teoc => 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ) - port map( rst => rstn, arst => vcc(0), clk => clkm, ahbmi => ahbmi, - ahbmo => ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG), cfo => cf, - ahbsi => ahbsi, ahbso => ahbso(5), atai => idei, atao => ideo); - - ata_rst_pad : outpad generic map (tech => padtech) - port map (ata_rst, ideo.rstn); - ata_data_pad : iopadv generic map (tech => padtech, width => 16, oepol => 1) - port map (ata_data, ideo.ddo, ideo.oen, idei.ddi); - ata_da_pad : outpadv generic map (tech => padtech, width => 3) - port map (ata_da, ideo.da); - ata_cs0_pad : outpad generic map (tech => padtech) - port map (ata_cs0, ideo.cs0); - ata_cs1_pad : outpad generic map (tech => padtech) - port map (ata_cs1, ideo.cs1); - ata_dior_pad : outpad generic map (tech => padtech) - port map (ata_dior, ideo.dior); - ata_diow_pad : outpad generic map (tech => padtech) - port map (ata_diow, ideo.diow); - iordy_pad : inpad generic map (tech => padtech) - port map (ata_iordy, idei.iordy); - intrq_pad : inpad generic map (tech => padtech) - port map (ata_intrq, idei.intrq); --- dmarq_pad : inpad generic map (tech => padtech) --- port map (ata_dmarq, idei.dmarq); - dmack_pad : outpad generic map (tech => padtech) - port map (ata_dmack, ideo.dmack); - - -- for CompactFlach mode selection - cf_gnd_da_pad : outpadv generic map (tech => padtech, width => 8) - port map (cf_gnd_da, cf.da); - cf_atasel_pad : outpad generic map (tech => padtech) - port map (cf_atasel, cf.atasel); - cf_we_pad : outpad generic map (tech => padtech) - port map (cf_we, cf.we); - cf_power_pad : outpad generic map (tech => padtech) - port map (cf_power, cf.power); - cf_csel_pad : outpad generic map (tech => padtech) - port map (cf_csel, cf.csel); - - end generate; - ----------------------------------------------------------------------- --- AHB ROM ---------------------------------------------------------- ----------------------------------------------------------------------- @@ -574,7 +492,7 @@ begin --- Drive unused bus elements --------------------------------------- ----------------------------------------------------------------------- - nam1 : for i in (NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_ATA) to NAHBMST-1 generate + nam1 : for i in (NCPU+CFG_AHB_UART+CFG_AHB_JTAG) to NAHBMST-1 generate ahbmo(i) <= ahbm_none; end generate; nap0 : for i in 6 to NAPBSLV-1 generate apbo(i) <= apb_none; end generate; diff --git a/designs/leon3-altera-ep1c20/smc_mctrl.vhd b/designs/leon3-altera-ep1c20/smc_mctrl.vhd index 3d5069e8..4907a0c1 100644 --- a/designs/leon3-altera-ep1c20/smc_mctrl.vhd +++ b/designs/leon3-altera-ep1c20/smc_mctrl.vhd @@ -895,7 +895,6 @@ begin ribdrive <= vbdrive; risbdrive <= vsbdrive; - ahbso.hcache <= not r.area(io); memo.address <= r.address; memo.sa <= r.sa; memo.ramsn <= "111" & r.ramsn; diff --git a/designs/leon3-altera-ep1c20/testbench.vhd b/designs/leon3-altera-ep1c20/testbench.vhd index 597f798f..7a6b2d79 100644 --- a/designs/leon3-altera-ep1c20/testbench.vhd +++ b/designs/leon3-altera-ep1c20/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -108,22 +108,6 @@ component leon3mp rxd1 : in std_ulogic; -- UART1 rx data txd1 : out std_ulogic; -- UART1 tx data - ata_rst : out std_logic; - ata_data : inout std_logic_vector(15 downto 0); - ata_da : out std_logic_vector(2 downto 0); - ata_cs0 : out std_logic; - ata_cs1 : out std_logic; - ata_dior : out std_logic; - ata_diow : out std_logic; - ata_iordy : in std_logic; - ata_intrq : in std_logic; - ata_dmack : out std_logic; - cf_power : out std_logic; - cf_gnd_da : out std_logic_vector(10 downto 3); -- grounded address lines - cf_atasel : out std_logic; -- grounded to select true IDE mode - cf_we : out std_logic; -- should be connected to VCC in true IDE mode - cf_csel : out std_logic; - -- for smc lan chip eth_aen : out std_ulogic; eth_readn : out std_ulogic; @@ -196,26 +180,6 @@ constant lresp : boolean := false; signal sa : std_logic_vector(14 downto 0); signal sd : std_logic_vector(31 downto 0); --- ATA signals -signal ata_rst : std_logic; -signal ata_data : std_logic_vector(15 downto 0); -signal ata_da : std_logic_vector(2 downto 0); -signal ata_cs0 : std_logic; -signal ata_cs1 : std_logic; -signal ata_dior : std_logic; -signal ata_diow : std_logic; -signal ata_iordy : std_logic; -signal ata_intrq : std_logic; -signal ata_dmack : std_logic; -signal cf_gnd_da : std_logic_vector(10 downto 3); -signal cf_atasel : std_logic; -signal cf_we : std_logic; -signal cf_power : std_logic; -signal cf_csel : std_logic; - -signal from_ata : ata_out_type := ATAO_RESET_VECTOR; -signal to_ata : ata_in_type := ATAI_RESET_VECTOR; - begin -- clock and reset @@ -232,10 +196,7 @@ begin romsn, oen, writen, sa(11 downto 0), sd, sdclk, sdcke, sdcsn, sdwen, sdrasn, sdcasn, sddqm, sdba, dsutx, dsurx, dsubren, dsuact, - rxd1, txd1, - ata_rst, ata_data, ata_da, ata_cs0, ata_cs1, ata_dior, ata_diow, - ata_iordy, ata_intrq, ata_dmack, - cf_power, cf_gnd_da, cf_atasel, cf_we, cf_csel, + rxd1, txd1, eth_aen, eth_readn, eth_writen, eth_nbe); -- optional sdram @@ -266,16 +227,6 @@ begin rwen, ramoen); end generate; - disk: ata_device - generic map( sector_length => 512, log2_size => 14) - port map( clk => clk, rst => rst, d => ata_data, atai => to_ata, - atao => from_ata - ); - to_ata.cs(0)<=ata_cs0; to_ata.cs(1)<=ata_cs1; - to_ata.da<=ata_da; to_ata.dmack<=ata_dmack; - to_ata.dior<=ata_dior; to_ata.diow<=ata_diow; to_ata.reset<=ata_rst; - ata_intrq<=from_ata.intrq; ata_iordy<=from_ata.iordy; - error <= 'H'; -- ERROR pull-up iuerr : process diff --git a/designs/leon3-altera-ep1c20/tkconfig.h b/designs/leon3-altera-ep1c20/tkconfig.h index 837217db..61990464 100644 --- a/designs/leon3-altera-ep1c20/tkconfig.h +++ b/designs/leon3-altera-ep1c20/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -949,25 +971,6 @@ #define CONFIG_GRGPIO_WIDTH 1 #endif -#ifndef CONFIG_ATA_ENABLE -#define CONFIG_ATA_ENABLE 0 -#endif - -#ifndef CONFIG_ATAIO -#define CONFIG_ATAIO 0 -#endif - -#ifndef CONFIG_ATAIRQ -#define CONFIG_ATAIRQ 0 -#endif - -#ifndef CONFIG_ATA_MWDMA -#define CONFIG_ATA_MWDMA 0 -#endif - -#ifndef CONFIG_ATA_FIFO -#define CONFIG_ATA_FIFO 8 -#endif #ifndef CONFIG_DEBUG_UART #define CONFIG_DEBUG_UART 0 diff --git a/designs/leon3-altera-ep2s60-ddr/.config b/designs/leon3-altera-ep2s60-ddr/.config index 83154fe3..640bb710 100755 --- a/designs/leon3-altera-ep2s60-ddr/.config +++ b/designs/leon3-altera-ep2s60-ddr/.config @@ -169,11 +169,13 @@ CONFIG_MMU_REPARRAY=y CONFIG_MMU_I8=y # CONFIG_MMU_I16 is not set # CONFIG_MMU_I32 is not set +# CONFIG_MMU_I64 is not set # CONFIG_MMU_D2 is not set # CONFIG_MMU_D4 is not set CONFIG_MMU_D8=y # CONFIG_MMU_D16 is not set # CONFIG_MMU_D32 is not set +# CONFIG_MMU_D64 is not set CONFIG_MMU_FASTWB=y CONFIG_MMU_PAGE_4K=y # CONFIG_MMU_PAGE_8K is not set @@ -282,14 +284,6 @@ CONFIG_GRGPIO_ENABLE=y CONFIG_GRGPIO_WIDTH=32 CONFIG_GRGPIO_IMASK=FFFF -# -# ATA Controller -# -CONFIG_ATA_ENABLE=y -CONFIG_ATAIO=A00 -CONFIG_ATAIRQ=10 -# CONFIG_ATA_MWDMA is not set - # # VHDL Debugging # diff --git a/designs/leon3-altera-ep2s60-ddr/Makefile b/designs/leon3-altera-ep2s60-ddr/Makefile index b767b858..15303c8d 100644 --- a/designs/leon3-altera-ep2s60-ddr/Makefile +++ b/designs/leon3-altera-ep2s60-ddr/Makefile @@ -17,9 +17,9 @@ CLEAN=soft-clean TECHLIBS = altera altera_mf stratixii LIBSKIP = gsi spansion fmf core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann usbhc spw eth hynix + tmtc openchip ihp usbhc spw eth hynix DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - grusbhc spacewire usb greth net haps hcan + grusbhc spacewire usb greth net hcan leon4 leon4v0 FILESKIP = grcan.vhd include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-altera-ep2s60-ddr/ahbrom.vhd b/designs/leon3-altera-ep2s60-ddr/ahbrom.vhd index a61a155a..2091c411 100644 --- a/designs/leon3-altera-ep2s60-ddr/ahbrom.vhd +++ b/designs/leon3-altera-ep2s60-ddr/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-altera-ep2s60-ddr/config.help b/designs/leon3-altera-ep2s60-ddr/config.help index 25edf3d5..415dd9ac 100644 --- a/designs/leon3-altera-ep2s60-ddr/config.help +++ b/designs/leon3-altera-ep2s60-ddr/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ @@ -920,32 +953,6 @@ CONFIG_GRGPIO_IMASK The I/O port interrupt mask defines which bits in the I/O port should be able to create an interrupt. -ATA interface enable -CONFIG_ATA_ENABLE - Say Y here to enable the ATA interace from OpenCores. The core has one - AHB slave interface for accessing all control registers. - -ATA register address -CONFIG_ATAIO - The control registers of the ATA core occupy 256 byte, and are - mapped in the AHB bus I/O area (0xFFF00000 - 0xFFFFF000). This setting - defines at which address in the I/O area the registers appear (HADDR[19:8]). - -ATA interrupt -CONFIG_ATAIRQ - Defines which interrupt number the ATA core will generate. - -ATA DMA support -CONFIG_ATA_MWDMA - Say yes here to enable IDE multi-word DMA support (MWDMA). - This will increase transfer rate compared to the PIO mode, - but increase area with approxiamtely 5,000 gates. Note that - DMA is not supported by legacy CF cards, so it makes no sense - to enable it on CF card sockets. - -ATA DMA FIFO depth -CONFIG_ATA_FIFO - Defines the DMA FIFO depth. Choose 8 or 16. UART debugging CONFIG_DEBUG_UART During simulation, the output from the UARTs is printed on the diff --git a/designs/leon3-altera-ep2s60-ddr/config.in b/designs/leon3-altera-ep2s60-ddr/config.in index e1f5b584..e89c5936 100644 --- a/designs/leon3-altera-ep2s60-ddr/config.in +++ b/designs/leon3-altera-ep2s60-ddr/config.in @@ -52,11 +52,6 @@ comment 'Peripherals ' source lib/gaisler/misc/gptimer.in source lib/gaisler/misc/grgpio.in endmenu - - mainmenu_option next_comment - comment 'ATA Controller' - source lib/gaisler/ata/ata.in - endmenu endmenu diff --git a/designs/leon3-altera-ep2s60-ddr/config.vhd b/designs/leon3-altera-ep2s60-ddr/config.vhd index 126f4378..89982f17 100644 --- a/designs/leon3-altera-ep2s60-ddr/config.vhd +++ b/designs/leon3-altera-ep2s60-ddr/config.vhd @@ -144,13 +144,6 @@ package config is constant CFG_GRGPIO_IMASK : integer := 16#FFFF#; constant CFG_GRGPIO_WIDTH : integer := (32); --- ATA interface - constant CFG_ATA : integer := 1; - constant CFG_ATAIO : integer := 16#A00#; - constant CFG_ATAIRQ : integer := (10); - constant CFG_ATADMA : integer := 0; - constant CFG_ATAFIFO : integer := 8; - -- GRLIB debugging constant CFG_DUART : integer := 0; end; diff --git a/designs/leon3-altera-ep2s60-ddr/config.vhd.h b/designs/leon3-altera-ep2s60-ddr/config.vhd.h index a6caf7f3..20ad0ea6 100644 --- a/designs/leon3-altera-ep2s60-ddr/config.vhd.h +++ b/designs/leon3-altera-ep2s60-ddr/config.vhd.h @@ -142,13 +142,6 @@ constant CFG_GRGPIO_IMASK : integer := 16#CONFIG_GRGPIO_IMASK#; constant CFG_GRGPIO_WIDTH : integer := CONFIG_GRGPIO_WIDTH; --- ATA interface - constant CFG_ATA : integer := CONFIG_ATA_ENABLE; - constant CFG_ATAIO : integer := 16#CONFIG_ATAIO#; - constant CFG_ATAIRQ : integer := CONFIG_ATAIRQ; - constant CFG_ATADMA : integer := CONFIG_ATA_MWDMA; - constant CFG_ATAFIFO : integer := CONFIG_ATA_FIFO; - -- GRLIB debugging constant CFG_DUART : integer := CONFIG_DEBUG_UART; diff --git a/designs/leon3-altera-ep2s60-ddr/lconfig.tk b/designs/leon3-altera-ep2s60-ddr/lconfig.tk index b350d834..e20b017a 100755 --- a/designs/leon3-altera-ep2s60-ddr/lconfig.tk +++ b/designs/leon3-altera-ep2s60-ddr/lconfig.tk @@ -644,7 +644,7 @@ set active_menus [list] set processed_top_level 0 set ARCH sparc set menus_per_column 4 -set total_menus 20 +set total_menus 19 proc toplevel_menu {num} { if {$num == 4} then {return 3} @@ -659,7 +659,6 @@ proc toplevel_menu {num} { if {$num == 16} then {return 14} if {$num == 17} then {return 13} if {$num == 18} then {return 13} - if {$num == 19} then {return 13} return $num } @@ -753,7 +752,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -763,7 +763,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -906,8 +908,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -926,6 +930,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1015,9 +1023,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1071,10 +1080,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1120,14 +1130,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1200,13 +1212,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1246,22 +1266,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1318,21 +1606,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1379,36 +1667,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1416,48 +1705,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1513,27 +1803,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1574,16 +1864,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1592,34 +1883,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1676,92 +1968,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1769,18 +2061,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1821,52 +2113,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1874,162 +2167,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2085,45 +2379,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2163,18 +2459,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2182,55 +2479,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2287,24 +2589,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2344,17 +2646,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2362,37 +2665,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2448,16 +2752,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2505,9 +2816,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2529,21 +2838,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2950,7 +3264,6 @@ proc menu13 {w title} { submenu $w.config.f 13 0 "Memory controllers " 14 submenu $w.config.f 13 1 "On-chip RAM/ROM " 17 submenu $w.config.f 13 2 "UARTs, timers and irq control " 18 - submenu $w.config.f 13 3 "ATA Controller" 19 @@ -3452,16 +3765,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_26 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_26 CONFIG_AHBRAM_SZ1 + global tmpvar_28 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_28 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_26 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_26 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3523,21 +3836,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_26 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_28 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_26 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_28 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3558,7 +3871,7 @@ proc menu18 {w title} { wm title $w "UARTs, timers and irq control " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 18; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu19 .menu19 \"$title\"" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; catch {destroy .menu13}; unregister_active 13; menu19 .menu19 \"$title\"" frame $w.f button $w.f.back -text "OK" \ -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18" @@ -3596,15 +3909,15 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_27 - minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_27 CONFIG_UA1_FIFO1 + global tmpvar_29 + minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 18 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 18 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3693,19 +4006,19 @@ proc update_menu18 {} { proc update_define_menu18 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_27 + global tmpvar_29 global CONFIG_UA1_FIFO1 - if {$tmpvar_27 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_27 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_27 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_27 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_27 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_27 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -3737,153 +4050,31 @@ proc update_define_menu18 {} { } +menu_option menu19 19 "VHDL Debugging " proc menu19 {w title} { set oldFocus [focus] - catch {focus .menu13} catch {destroy $w; unregister_active 19} toplevel $w -class Dialog wm withdraw $w global active_menus set active_menus [lsort -integer [linsert $active_menus end 19]] - message $w.m -width 400 -aspect 300 -text \ - "ATA Controller" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "ATA Controller" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 19; catch {destroy .menu13}; unregister_active 13; menu20 .menu20 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 19 0 "Enable ATA interface " CONFIG_ATA_ENABLE - hex $w.config.f 19 1 "ATA I/O area start address (haddr\[19:8\]) " CONFIG_ATAIO - int $w.config.f 19 2 "Interrupt number " CONFIG_ATAIRQ - bool $w.config.f 19 3 "Enable MWDMA support " CONFIG_ATA_MWDMA - int $w.config.f 19 4 "FIFO depth " CONFIG_ATA_FIFO - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu19 {} { - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {.menu19.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x1.l configure -state normal; } else {.menu19.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x1.l configure -state disabled} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {.menu19.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x2.l configure -state normal; } else {.menu19.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x2.l configure -state disabled} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - configure_entry .menu19.config.f.x3 normal {n l y}} else {configure_entry .menu19.config.f.x3 disabled {y n l}} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {.menu19.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x4.l configure -state normal; } else {.menu19.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x4.l configure -state disabled} -} - - -proc update_define_menu19 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {validate_hex CONFIG_ATAIO "$CONFIG_ATAIO" A00} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {validate_int CONFIG_ATAIRQ "$CONFIG_ATAIRQ" 10} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA&15]} else {set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA|16]} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {validate_int CONFIG_ATA_FIFO "$CONFIG_ATA_FIFO" 8} -} - - -menu_option menu20 20 "VHDL Debugging " -proc menu20 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 20} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 20]] message $w.m -width 400 -aspect 300 -text \ "VHDL Debugging " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "VHDL Debugging " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; break" - set nextscript "catch {focus $oldFocus}; menu21 .menu21 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; break" + set nextscript "catch {focus $oldFocus}; menu20 .menu20 \"$title\"" frame $w.f button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript $w.f.next configure -state disabled bind all "puts \"no more menus\" " button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -3911,7 +4102,7 @@ proc menu20 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 20 0 "Accelerated UART tracing " CONFIG_DEBUG_UART + bool $w.config.f 19 0 "Accelerated UART tracing " CONFIG_DEBUG_UART @@ -3947,11 +4138,11 @@ proc menu20 {w title} { } } -proc update_menu20 {} { +proc update_menu19 {} { } -proc update_define_menu20 {} { +proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES } @@ -3997,7 +4188,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4007,6 +4199,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4031,6 +4225,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4043,14 +4238,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4063,27 +4263,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4093,17 +4293,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4115,12 +4315,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4130,10 +4330,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4144,7 +4344,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4156,26 +4356,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4183,27 +4385,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4243,7 +4449,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4253,7 +4459,7 @@ set CONFIG_AHBRAM_SZ32 0 set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_UART1_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4274,11 +4480,6 @@ set CONFIG_GPT_WDOG FFFF set CONFIG_GRGPIO_ENABLE 0 set CONFIG_GRGPIO_WIDTH 8 set CONFIG_GRGPIO_IMASK 0000 -set CONFIG_ATA_ENABLE 0 -set CONFIG_ATAIO A00 -set CONFIG_ATAIRQ 10 -set CONFIG_ATA_MWDMA 0 -set CONFIG_ATA_FIFO 8 set CONFIG_DEBUG_UART 0 set CONFIG_SYN_ARTISAN 4 set CONFIG_PCI_ENABLE 4 @@ -4335,7 +4536,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4345,6 +4547,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4383,6 +4587,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4395,9 +4600,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4411,239 +4617,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4736,28 +5092,28 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_26 + global tmpvar_28 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} + if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } + if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } + if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } + if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } + if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } + if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4786,17 +5142,6 @@ proc writeconfig {file1 file2} { if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRGPIO_WIDTH $CONFIG_GRGPIO_WIDTH $notmod } global CONFIG_GRGPIO_IMASK if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_GRGPIO_IMASK $CONFIG_GRGPIO_IMASK $notmod } - write_comment $cfg $autocfg "ATA Controller" - global CONFIG_ATA_ENABLE - write_tristate $cfg $autocfg CONFIG_ATA_ENABLE $CONFIG_ATA_ENABLE [list $notmod] 2 - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_ATAIO $CONFIG_ATAIO $notmod } - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_ATAIRQ $CONFIG_ATAIRQ $notmod } - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_ATA_MWDMA $CONFIG_ATA_MWDMA [list $notmod] 2 } - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {write_int $cfg $autocfg CONFIG_ATA_FIFO $CONFIG_ATA_FIFO $notmod } write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -4841,7 +5186,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4851,6 +5197,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4869,8 +5217,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -4953,11 +5306,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -4978,6 +5333,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0 global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0 global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0 @@ -5067,8 +5426,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5087,6 +5448,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5127,300 +5492,326 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "4" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_26 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_28 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_26 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_28 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_26 "64" } - global tmpvar_27 - set tmpvar_27 "1" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_28 "64" } + global tmpvar_29 + set tmpvar_29 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } } diff --git a/designs/leon3-altera-ep2s60-ddr/leon3mp.vhd b/designs/leon3-altera-ep2s60-ddr/leon3mp.vhd index fd56c84d..311c365e 100644 --- a/designs/leon3-altera-ep2s60-ddr/leon3mp.vhd +++ b/designs/leon3-altera-ep2s60-ddr/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -35,7 +35,6 @@ use gaisler.ddrpkg.all; use gaisler.leon3.all; use gaisler.uart.all; use gaisler.misc.all; -use gaisler.ata.all; use gaisler.jtag.all; library esa; use esa.memoryctrl.all; @@ -107,25 +106,6 @@ entity leon3mp is -- console/debug UART rxd1 : in std_logic; txd1 : out std_logic; - - -- ATA signals - ata_data : inout std_logic_vector(15 downto 0); - ata_da : out std_logic_vector(2 downto 0); - ata_cs0 : out std_logic; - ata_cs1 : out std_logic; - ata_dior : out std_logic; - ata_diow : out std_logic; - ata_iordy : in std_logic; - ata_intrq : in std_logic; - ata_dmarq : in std_logic; - ata_dmack : out std_logic; - - -- Signals nedded to use CompactFlash with ATA controller - cf_power : out std_logic; -- To turn on power to the CompactFlash - cf_gnd_da : out std_logic_vector(10 downto 3); -- grounded address lines - cf_atasel : out std_logic; -- grounded to select true IDE mode - cf_we : out std_logic; -- should be connected to VCC in true IDE mode --- cf_csel : out std_logic; -- for smsc lan chip eth_aen : out std_logic; @@ -150,7 +130,7 @@ architecture rtl of leon3mp is constant blength : integer := 12; constant fifodepth : integer := 8; - constant maxahbm : integer := NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_ATA; + constant maxahbm : integer := NCPU+CFG_AHB_UART+CFG_AHB_JTAG; signal vcc, gnd : std_logic_vector(7 downto 0); signal memi, smemi : memory_in_type; @@ -202,10 +182,6 @@ architecture rtl of leon3mp is signal dsui : dsu_in_type; signal dsuo : dsu_out_type; - signal cf : cf_out_type; - signal atai : ata_in_type; - signal atao : ata_out_type; - signal gpti : gptimer_in_type; signal gpioi : gpio_in_type; signal gpioo : gpio_out_type; @@ -495,61 +471,6 @@ begin end generate; end generate; - ------------------------------------------------------------------------ ---- ATA Controller --------------------------------------------------- ------------------------------------------------------------------------ - - atac : if CFG_ATA = 1 generate - atac0 : atactrl generic map(tech => 0, fdepth => CFG_ATAFIFO, - mhindex => CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG, - shindex => 5, haddr => CFG_ATAIO, hmask => 16#fff#, pirq => CFG_ATAIRQ, - mwdma => CFG_ATADMA, TWIDTH => 8, -- counter width - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 => 6, -- 70ns - PIO_mode0_T2 => 28, -- 290ns - PIO_mode0_T4 => 2, -- 30ns - PIO_mode0_Teoc => 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ) - port map( rst => rstn, arst => vcc(0), clk => clkm, ahbsi => ahbsi, - ahbso => ahbso(5), ahbmi => ahbmi, ahbmo => ahbmo(NCPU+CFG_AHB_UART+CFG_AHB_JTAG), - cfo => cf, atai => atai, atao => atao); - - ata_data_pad : iopadv generic map (tech => padtech, width => 16, oepol => 1) - port map (ata_data, atao.ddo, atao.oen, atai.ddi); - ata_da_pad : outpadv generic map (tech => padtech, width => 3) - port map (ata_da, atao.da); - ata_cs0_pad : outpad generic map (tech => padtech) - port map (ata_cs0, atao.cs0); - ata_cs1_pad : outpad generic map (tech => padtech) - port map (ata_cs1, atao.cs1); - ata_dior_pad : outpad generic map (tech => padtech) - port map (ata_dior, atao.dior); - ata_diow_pad : outpad generic map (tech => padtech) - port map (ata_diow, atao.diow); - iordy_pad : inpad generic map (tech => padtech) - port map (ata_iordy, atai.iordy); - intrq_pad : inpad generic map (tech => padtech) - port map (ata_intrq, atai.intrq); - dmarq_pad : inpad generic map (tech => padtech) - port map (ata_dmarq, atai.dmarq); - dmack_pad : outpad generic map (tech => padtech) - port map (ata_dmack, atao.dmack); - - -- for CompactFlach mode selection - cf_gnd_da_pad : outpadv generic map (tech => padtech, width => 8) - port map (cf_gnd_da, cf.da); - cf_atasel_pad : outpad generic map (tech => padtech) - port map (cf_atasel, cf.atasel); - cf_we_pad : outpad generic map (tech => padtech) - port map (cf_we, cf.we); - cf_power_pad : outpad generic map (tech => padtech) - port map (cf_power, cf.power); --- cf_csel_pad : outpad generic map (tech => padtech) --- port map (cf_csel, cf.csel); - - end generate; - ----------------------------------------------------------------------- --- AHB ROM ---------------------------------------------------------- ----------------------------------------------------------------------- @@ -578,7 +499,7 @@ begin --- Drive unused bus elements --------------------------------------- ----------------------------------------------------------------------- - nam1 : for i in (NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_ATA) to NAHBMST-1 generate + nam1 : for i in (NCPU+CFG_AHB_UART+CFG_AHB_JTAG) to NAHBMST-1 generate ahbmo(i) <= ahbm_none; end generate; nap0 : for i in 6 to NAPBSLV-1 generate apbo(i) <= apb_none; end generate; diff --git a/designs/leon3-altera-ep2s60-ddr/smc_mctrl.vhd b/designs/leon3-altera-ep2s60-ddr/smc_mctrl.vhd index 3d5069e8..4907a0c1 100644 --- a/designs/leon3-altera-ep2s60-ddr/smc_mctrl.vhd +++ b/designs/leon3-altera-ep2s60-ddr/smc_mctrl.vhd @@ -895,7 +895,6 @@ begin ribdrive <= vbdrive; risbdrive <= vsbdrive; - ahbso.hcache <= not r.area(io); memo.address <= r.address; memo.sa <= r.sa; memo.ramsn <= "111" & r.ramsn; diff --git a/designs/leon3-altera-ep2s60-ddr/testbench.vhd b/designs/leon3-altera-ep2s60-ddr/testbench.vhd index b67a3d96..616ab9d0 100644 --- a/designs/leon3-altera-ep2s60-ddr/testbench.vhd +++ b/designs/leon3-altera-ep2s60-ddr/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -130,27 +130,6 @@ constant lresp : boolean := false; signal sa : std_logic_vector(14 downto 0); signal sd : std_logic_vector(31 downto 0); --- ATA signals -signal ata_rst : std_logic; -signal ata_data : std_logic_vector(15 downto 0); -signal ata_da : std_logic_vector(2 downto 0); -signal ata_cs0 : std_logic; -signal ata_cs1 : std_logic; -signal ata_dior : std_logic; -signal ata_diow : std_logic; -signal ata_iordy : std_logic; -signal ata_intrq : std_logic; -signal ata_dmarq : std_logic; -signal ata_dmack : std_logic; -signal cf_gnd_da : std_logic_vector(10 downto 3); -signal cf_atasel : std_logic; -signal cf_we : std_logic; -signal cf_power : std_logic; -signal cf_csel : std_logic; - -signal from_ata : ata_out_type := ATAO_RESET_VECTOR; -signal to_ata : ata_in_type := ATAI_RESET_VECTOR; - begin -- clock and reset @@ -177,11 +156,8 @@ begin ssram_clk, ssram_adscn, ssram_adsp_n, ssram_adv_n, iosn, ddr_clkin, ddr_clk, ddr_clkb, ddr_cke, ddr_csb, ddr_web, ddr_rasb, ddr_casb, ddr_dm, ddr_dqs2, ddr_ad, ddr_ba, ddr_dq2, - dsubren, dsuact, rxd1, txd1, - ata_data, ata_da, ata_cs0, ata_cs1, - ata_dior, ata_diow, ata_iordy, ata_intrq, ata_dmarq, ata_dmack, cf_power, - cf_gnd_da, cf_atasel, cf_we, eth_aen, eth_readn, - eth_writen, eth_nbe); + dsubren, dsuact, rxd1, txd1, + eth_aen, eth_readn, eth_writen, eth_nbe); ddr0 : mt46v16m16 generic map (index => -1, fname => sdramfile) @@ -210,30 +186,6 @@ begin port map (address(romdepth-1 downto 0), data(31 downto 24), romsn, writen, oen); --- to_ata.csel<=ata_csel; - to_ata.cs(0)<=ata_cs0; - to_ata.cs(1)<=ata_cs1; - --??to_ata.dasp<= - to_ata.da<=ata_da; - to_ata.dmack<=ata_dmack; - to_ata.dior<=ata_dior; - to_ata.diow<=ata_diow; - to_ata.reset<=rst; - - ata_dmarq<=from_ata.dmarq; - ata_intrq<=from_ata.intrq; - ata_iordy<=from_ata.iordy; - - disk: ata_device - generic map(sector_length=>512,log2_size=>14) - port map( - clk => clk, - rst => rst, - d => ata_data, - atai => to_ata, - atao => from_ata - ); - error <= 'H'; -- ERROR pull-up iuerr : process diff --git a/designs/leon3-altera-ep2s60-ddr/tkconfig.h b/designs/leon3-altera-ep2s60-ddr/tkconfig.h index f15dfb2e..8ede1cea 100644 --- a/designs/leon3-altera-ep2s60-ddr/tkconfig.h +++ b/designs/leon3-altera-ep2s60-ddr/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -897,25 +919,6 @@ #define CONFIG_GRGPIO_WIDTH 1 #endif -#ifndef CONFIG_ATA_ENABLE -#define CONFIG_ATA_ENABLE 0 -#endif - -#ifndef CONFIG_ATAIO -#define CONFIG_ATAIO 0 -#endif - -#ifndef CONFIG_ATAIRQ -#define CONFIG_ATAIRQ 0 -#endif - -#ifndef CONFIG_ATA_MWDMA -#define CONFIG_ATA_MWDMA 0 -#endif - -#ifndef CONFIG_ATA_FIFO -#define CONFIG_ATA_FIFO 8 -#endif #ifndef CONFIG_DEBUG_UART #define CONFIG_DEBUG_UART 0 diff --git a/designs/leon3-altera-ep2s60-sdr/.config b/designs/leon3-altera-ep2s60-sdr/.config index 1e9dd0de..05ceff17 100755 --- a/designs/leon3-altera-ep2s60-sdr/.config +++ b/designs/leon3-altera-ep2s60-sdr/.config @@ -170,11 +170,13 @@ CONFIG_MMU_REPARRAY=y CONFIG_MMU_I8=y # CONFIG_MMU_I16 is not set # CONFIG_MMU_I32 is not set +# CONFIG_MMU_I64 is not set # CONFIG_MMU_D2 is not set # CONFIG_MMU_D4 is not set CONFIG_MMU_D8=y # CONFIG_MMU_D16 is not set # CONFIG_MMU_D32 is not set +# CONFIG_MMU_D64 is not set CONFIG_MMU_FASTWB=y CONFIG_MMU_PAGE_4K=y # CONFIG_MMU_PAGE_8K is not set @@ -284,14 +286,6 @@ CONFIG_GRGPIO_ENABLE=y CONFIG_GRGPIO_WIDTH=32 CONFIG_GRGPIO_IMASK=FFFF -# -# ATA Controller -# -CONFIG_ATA_ENABLE=y -CONFIG_ATAIO=A00 -CONFIG_ATAIRQ=10 -# CONFIG_ATA_MWDMA is not set - # # VHDL Debugging # diff --git a/designs/leon3-altera-ep2s60-sdr/Makefile b/designs/leon3-altera-ep2s60-sdr/Makefile index 0ae43583..a0dd3664 100644 --- a/designs/leon3-altera-ep2s60-sdr/Makefile +++ b/designs/leon3-altera-ep2s60-sdr/Makefile @@ -17,11 +17,11 @@ CLEAN=soft-clean TECHLIBS = altera altera_mf stratixii LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - usbhc spw tmtc openchip hynix cypress ihp gleichmann eth \ + usbhc spw tmtc openchip hynix cypress ihp eth \ fmf spansion gsi DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr usb grusbhc spacewire \ - ddr net greth haps + ddr net greth leon4 leon4v0 include $(GRLIB)/software/leon3/Makefile include $(GRLIB)/bin/Makefile diff --git a/designs/leon3-altera-ep2s60-sdr/ahbrom.vhd b/designs/leon3-altera-ep2s60-sdr/ahbrom.vhd index a61a155a..2091c411 100644 --- a/designs/leon3-altera-ep2s60-sdr/ahbrom.vhd +++ b/designs/leon3-altera-ep2s60-sdr/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-altera-ep2s60-sdr/config.help b/designs/leon3-altera-ep2s60-sdr/config.help index 78e45c56..fc8730dd 100644 --- a/designs/leon3-altera-ep2s60-sdr/config.help +++ b/designs/leon3-altera-ep2s60-sdr/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ @@ -922,32 +955,6 @@ CONFIG_GRGPIO_IMASK The I/O port interrupt mask defines which bits in the I/O port should be able to create an interrupt. -ATA interface enable -CONFIG_ATA_ENABLE - Say Y here to enable the ATA interace from OpenCores. The core has one - AHB slave interface for accessing all control registers. - -ATA register address -CONFIG_ATAIO - The control registers of the ATA core occupy 256 byte, and are - mapped in the AHB bus I/O area (0xFFF00000 - 0xFFFFF000). This setting - defines at which address in the I/O area the registers appear (HADDR[19:8]). - -ATA interrupt -CONFIG_ATAIRQ - Defines which interrupt number the ATA core will generate. - -ATA DMA support -CONFIG_ATA_MWDMA - Say yes here to enable IDE multi-word DMA support (MWDMA). - This will increase transfer rate compared to the PIO mode, - but increase area with approxiamtely 5,000 gates. Note that - DMA is not supported by legacy CF cards, so it makes no sense - to enable it on CF card sockets. - -ATA DMA FIFO depth -CONFIG_ATA_FIFO - Defines the DMA FIFO depth. Choose 8 or 16. UART debugging CONFIG_DEBUG_UART During simulation, the output from the UARTs is printed on the diff --git a/designs/leon3-altera-ep2s60-sdr/config.in b/designs/leon3-altera-ep2s60-sdr/config.in index e3a89794..471e9c33 100644 --- a/designs/leon3-altera-ep2s60-sdr/config.in +++ b/designs/leon3-altera-ep2s60-sdr/config.in @@ -63,11 +63,6 @@ comment 'Peripherals ' source lib/gaisler/misc/gptimer.in source lib/gaisler/misc/grgpio.in endmenu - - mainmenu_option next_comment - comment 'ATA Controller' - source lib/gaisler/ata/ata.in - endmenu # mainmenu_option next_comment # comment 'Keybord and VGA interface' diff --git a/designs/leon3-altera-ep2s60-sdr/config.vhd b/designs/leon3-altera-ep2s60-sdr/config.vhd index 20512274..2feb5c5a 100644 --- a/designs/leon3-altera-ep2s60-sdr/config.vhd +++ b/designs/leon3-altera-ep2s60-sdr/config.vhd @@ -147,13 +147,6 @@ package config is constant CFG_GRGPIO_IMASK : integer := 16#FFFF#; constant CFG_GRGPIO_WIDTH : integer := (32); --- ATA interface - constant CFG_ATA : integer := 1; - constant CFG_ATAIO : integer := 16#A00#; - constant CFG_ATAIRQ : integer := (10); - constant CFG_ATADMA : integer := 0; - constant CFG_ATAFIFO : integer := 8; - -- GRLIB debugging constant CFG_DUART : integer := 0; end; diff --git a/designs/leon3-altera-ep2s60-sdr/config.vhd.h b/designs/leon3-altera-ep2s60-sdr/config.vhd.h index b34a51f1..c8120899 100644 --- a/designs/leon3-altera-ep2s60-sdr/config.vhd.h +++ b/designs/leon3-altera-ep2s60-sdr/config.vhd.h @@ -145,13 +145,6 @@ constant CFG_GRGPIO_IMASK : integer := 16#CONFIG_GRGPIO_IMASK#; constant CFG_GRGPIO_WIDTH : integer := CONFIG_GRGPIO_WIDTH; --- ATA interface - constant CFG_ATA : integer := CONFIG_ATA_ENABLE; - constant CFG_ATAIO : integer := 16#CONFIG_ATAIO#; - constant CFG_ATAIRQ : integer := CONFIG_ATAIRQ; - constant CFG_ATADMA : integer := CONFIG_ATA_MWDMA; - constant CFG_ATAFIFO : integer := CONFIG_ATA_FIFO; - -- GRLIB debugging constant CFG_DUART : integer := CONFIG_DEBUG_UART; diff --git a/designs/leon3-altera-ep2s60-sdr/lconfig.tk b/designs/leon3-altera-ep2s60-sdr/lconfig.tk index 2f628b9f..5be12b9a 100755 --- a/designs/leon3-altera-ep2s60-sdr/lconfig.tk +++ b/designs/leon3-altera-ep2s60-sdr/lconfig.tk @@ -644,7 +644,7 @@ set active_menus [list] set processed_top_level 0 set ARCH sparc set menus_per_column 4 -set total_menus 20 +set total_menus 19 proc toplevel_menu {num} { if {$num == 4} then {return 3} @@ -659,7 +659,6 @@ proc toplevel_menu {num} { if {$num == 16} then {return 14} if {$num == 17} then {return 13} if {$num == 18} then {return 13} - if {$num == 19} then {return 13} return $num } @@ -753,7 +752,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -763,7 +763,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -906,8 +908,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -926,6 +930,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1015,9 +1023,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1071,10 +1080,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1120,14 +1130,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1200,13 +1212,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1246,22 +1266,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1318,21 +1606,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1379,36 +1667,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1416,48 +1705,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1513,27 +1803,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1574,16 +1864,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1592,34 +1883,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1676,92 +1968,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1769,18 +2061,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1821,52 +2113,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1874,162 +2167,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2085,45 +2379,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2163,18 +2459,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2182,55 +2479,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2287,24 +2589,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2344,17 +2646,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2362,37 +2665,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2448,16 +2752,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2505,9 +2816,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2529,21 +2838,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2950,7 +3264,6 @@ proc menu13 {w title} { submenu $w.config.f 13 0 "Memory controllers " 14 submenu $w.config.f 13 1 "On-chip RAM/ROM " 17 submenu $w.config.f 13 2 "UARTs, timers and irq control " 18 - submenu $w.config.f 13 3 "ATA Controller" 19 @@ -3152,32 +3465,32 @@ proc menu15 {w title} { int $w.config.f 15 3 "RAM waitstates" CONFIG_SRCTRL_RAMWS int $w.config.f 15 4 "IO waitstates" CONFIG_SRCTRL_IOWS bool $w.config.f 15 5 "Use read-modify-write for sub-word writes " CONFIG_SRCTRL_RMW - global tmpvar_26 - minimenu $w.config.f 15 6 "SRAM banks" tmpvar_26 CONFIG_SRCTRL_SRBANKS1 + global tmpvar_28 + minimenu $w.config.f 15 6 "SRAM banks" tmpvar_28 CONFIG_SRCTRL_SRBANKS1 menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"SRAM banks\"" - $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_26 -value "3" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_26 -value "5" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_28 -value "3" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_28 -value "5" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 - global tmpvar_27 - minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_27 CONFIG_SRCTRL_BANKSZ0 + global tmpvar_29 + minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_29 CONFIG_SRCTRL_BANKSZ0 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"SRAM bank size (kb) (0 for programmable)\"" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_27 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_27 -value "256" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_27 -value "512" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_27 -value "1024" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_27 -value "2048" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_27 -value "4096" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_27 -value "8192" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_27 -value "16384" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_27 -value "32768" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_27 -value "65536" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_29 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_29 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_29 -value "512" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_29 -value "1024" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_29 -value "2048" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_29 -value "4096" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_29 -value "8192" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_29 -value "16384" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_29 -value "32768" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_29 -value "65536" -command "update_active" menusplit $w $w.config.f.x7.x.menu 14 int $w.config.f 15 8 "PROM bank select address bit (0 - 28)" CONFIG_SRCTRL_ROMASEL @@ -3253,46 +3566,46 @@ proc update_define_menu15 {} { global CONFIG_SRCTRL_RMW if {($CONFIG_SRCTRL == 1)} then { set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW&15]} else {set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_SRCTRL_SRBANKS1 - if {$tmpvar_26 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} global CONFIG_SRCTRL_SRBANKS2 - if {$tmpvar_26 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} global CONFIG_SRCTRL_SRBANKS3 - if {$tmpvar_26 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} + if {$tmpvar_28 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} global CONFIG_SRCTRL_SRBANKS4 - if {$tmpvar_26 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} global CONFIG_SRCTRL_SRBANKS5 - if {$tmpvar_26 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} - global tmpvar_27 + if {$tmpvar_28 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} + global tmpvar_29 global CONFIG_SRCTRL_BANKSZ0 - if {$tmpvar_27 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} + if {$tmpvar_29 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} global CONFIG_SRCTRL_BANKSZ1 - if {$tmpvar_27 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} + if {$tmpvar_29 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} global CONFIG_SRCTRL_BANKSZ2 - if {$tmpvar_27 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} + if {$tmpvar_29 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} global CONFIG_SRCTRL_BANKSZ3 - if {$tmpvar_27 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} + if {$tmpvar_29 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} global CONFIG_SRCTRL_BANKSZ4 - if {$tmpvar_27 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} + if {$tmpvar_29 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} global CONFIG_SRCTRL_BANKSZ5 - if {$tmpvar_27 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} + if {$tmpvar_29 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} global CONFIG_SRCTRL_BANKSZ6 - if {$tmpvar_27 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} + if {$tmpvar_29 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} global CONFIG_SRCTRL_BANKSZ7 - if {$tmpvar_27 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} + if {$tmpvar_29 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} global CONFIG_SRCTRL_BANKSZ8 - if {$tmpvar_27 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} + if {$tmpvar_29 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} global CONFIG_SRCTRL_BANKSZ9 - if {$tmpvar_27 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} + if {$tmpvar_29 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} global CONFIG_SRCTRL_BANKSZ10 - if {$tmpvar_27 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} + if {$tmpvar_29 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} global CONFIG_SRCTRL_BANKSZ11 - if {$tmpvar_27 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} + if {$tmpvar_29 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} global CONFIG_SRCTRL_BANKSZ12 - if {$tmpvar_27 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} + if {$tmpvar_29 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} global CONFIG_SRCTRL_BANKSZ13 - if {$tmpvar_27 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} + if {$tmpvar_29 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} global CONFIG_SRCTRL_ROMASEL if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_ROMASEL "$CONFIG_SRCTRL_ROMASEL" 19} } @@ -3516,16 +3829,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_28 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_28 CONFIG_AHBRAM_SZ1 + global tmpvar_30 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_30 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3587,21 +3900,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_28 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_30 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_28 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_30 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_28 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_28 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_28 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_28 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_28 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3622,7 +3935,7 @@ proc menu18 {w title} { wm title $w "UARTs, timers and irq control " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 18; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu19 .menu19 \"$title\"" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; catch {destroy .menu13}; unregister_active 13; menu19 .menu19 \"$title\"" frame $w.f button $w.f.back -text "OK" \ -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18" @@ -3660,15 +3973,15 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 18 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 18 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3757,19 +4070,19 @@ proc update_menu18 {} { proc update_define_menu18 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -3801,153 +4114,31 @@ proc update_define_menu18 {} { } +menu_option menu19 19 "VHDL Debugging " proc menu19 {w title} { set oldFocus [focus] - catch {focus .menu13} catch {destroy $w; unregister_active 19} toplevel $w -class Dialog wm withdraw $w global active_menus set active_menus [lsort -integer [linsert $active_menus end 19]] - message $w.m -width 400 -aspect 300 -text \ - "ATA Controller" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "ATA Controller" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 19; catch {destroy .menu13}; unregister_active 13; menu20 .menu20 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 19 0 "Enable ATA interface " CONFIG_ATA_ENABLE - hex $w.config.f 19 1 "ATA I/O area start address (haddr\[19:8\]) " CONFIG_ATAIO - int $w.config.f 19 2 "Interrupt number " CONFIG_ATAIRQ - bool $w.config.f 19 3 "Enable MWDMA support " CONFIG_ATA_MWDMA - int $w.config.f 19 4 "FIFO depth " CONFIG_ATA_FIFO - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu19 {} { - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {.menu19.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x1.l configure -state normal; } else {.menu19.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x1.l configure -state disabled} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {.menu19.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x2.l configure -state normal; } else {.menu19.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x2.l configure -state disabled} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - configure_entry .menu19.config.f.x3 normal {n l y}} else {configure_entry .menu19.config.f.x3 disabled {y n l}} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {.menu19.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x4.l configure -state normal; } else {.menu19.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x4.l configure -state disabled} -} - - -proc update_define_menu19 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {validate_hex CONFIG_ATAIO "$CONFIG_ATAIO" A00} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {validate_int CONFIG_ATAIRQ "$CONFIG_ATAIRQ" 10} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA&15]} else {set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA|16]} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {validate_int CONFIG_ATA_FIFO "$CONFIG_ATA_FIFO" 8} -} - - -menu_option menu20 20 "VHDL Debugging " -proc menu20 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 20} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 20]] message $w.m -width 400 -aspect 300 -text \ "VHDL Debugging " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "VHDL Debugging " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; break" - set nextscript "catch {focus $oldFocus}; menu21 .menu21 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; break" + set nextscript "catch {focus $oldFocus}; menu20 .menu20 \"$title\"" frame $w.f button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript $w.f.next configure -state disabled bind all "puts \"no more menus\" " button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -3975,7 +4166,7 @@ proc menu20 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 20 0 "Accelerated UART tracing " CONFIG_DEBUG_UART + bool $w.config.f 19 0 "Accelerated UART tracing " CONFIG_DEBUG_UART @@ -4011,11 +4202,11 @@ proc menu20 {w title} { } } -proc update_menu20 {} { +proc update_menu19 {} { } -proc update_define_menu20 {} { +proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES } @@ -4061,7 +4252,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4071,6 +4263,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4095,6 +4289,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4107,14 +4302,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4127,27 +4327,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4157,17 +4357,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4179,12 +4379,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4194,10 +4394,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4208,7 +4408,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4220,26 +4420,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4247,27 +4449,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4293,13 +4499,13 @@ set CONFIG_SRCTRL_PROMWS 3 set CONFIG_SRCTRL_RAMWS 0 set CONFIG_SRCTRL_IOWS 0 set CONFIG_SRCTRL_RMW 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_SRCTRL_SRBANKS1 0 set CONFIG_SRCTRL_SRBANKS2 0 set CONFIG_SRCTRL_SRBANKS3 0 set CONFIG_SRCTRL_SRBANKS4 0 set CONFIG_SRCTRL_SRBANKS5 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_SRCTRL_BANKSZ0 0 set CONFIG_SRCTRL_BANKSZ1 0 set CONFIG_SRCTRL_BANKSZ2 0 @@ -4329,7 +4535,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4339,7 +4545,7 @@ set CONFIG_AHBRAM_SZ32 0 set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4360,11 +4566,6 @@ set CONFIG_GPT_WDOG FFFF set CONFIG_GRGPIO_ENABLE 0 set CONFIG_GRGPIO_WIDTH 8 set CONFIG_GRGPIO_IMASK 0000 -set CONFIG_ATA_ENABLE 0 -set CONFIG_ATAIO A00 -set CONFIG_ATAIRQ 10 -set CONFIG_ATA_MWDMA 0 -set CONFIG_ATA_FIFO 8 set CONFIG_DEBUG_UART 0 set CONFIG_SYN_ARTISAN 4 set CONFIG_PCI_ENABLE 4 @@ -4421,7 +4622,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4431,6 +4633,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4469,6 +4673,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4481,9 +4686,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4497,239 +4703,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4786,29 +5142,29 @@ proc writeconfig {file1 file2} { if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_IOWS $CONFIG_SRCTRL_IOWS $notmod } global CONFIG_SRCTRL_RMW if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_RMW $CONFIG_SRCTRL_RMW [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} - global tmpvar_27 + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} + global tmpvar_29 if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_SRCTRL_ROMASEL if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_ROMASEL $CONFIG_SRCTRL_ROMASEL $notmod } write_comment $cfg $autocfg "Leon2 memory controller " @@ -4841,28 +5197,28 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_28 + global tmpvar_30 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4891,17 +5247,6 @@ proc writeconfig {file1 file2} { if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRGPIO_WIDTH $CONFIG_GRGPIO_WIDTH $notmod } global CONFIG_GRGPIO_IMASK if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_GRGPIO_IMASK $CONFIG_GRGPIO_IMASK $notmod } - write_comment $cfg $autocfg "ATA Controller" - global CONFIG_ATA_ENABLE - write_tristate $cfg $autocfg CONFIG_ATA_ENABLE $CONFIG_ATA_ENABLE [list $notmod] 2 - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_ATAIO $CONFIG_ATAIO $notmod } - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_ATAIRQ $CONFIG_ATAIRQ $notmod } - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_ATA_MWDMA $CONFIG_ATA_MWDMA [list $notmod] 2 } - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {write_int $cfg $autocfg CONFIG_ATA_FIFO $CONFIG_ATA_FIFO $notmod } write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -4946,7 +5291,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4956,6 +5302,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4974,8 +5322,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5058,11 +5411,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5083,6 +5438,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_SRCTRL_SRBANKS1; set CONFIG_SRCTRL_SRBANKS1 0 global CONFIG_SRCTRL_SRBANKS2; set CONFIG_SRCTRL_SRBANKS2 0 global CONFIG_SRCTRL_SRBANKS3; set CONFIG_SRCTRL_SRBANKS3 0 @@ -5191,8 +5550,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5211,6 +5572,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5251,342 +5616,368 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "1" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "1" global CONFIG_SRCTRL_SRBANKS1 - if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_28 "1" } global CONFIG_SRCTRL_SRBANKS2 - if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_28 "2" } global CONFIG_SRCTRL_SRBANKS3 - if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_26 "3" } + if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_28 "3" } global CONFIG_SRCTRL_SRBANKS4 - if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_28 "4" } global CONFIG_SRCTRL_SRBANKS5 - if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_26 "5" } - global tmpvar_27 - set tmpvar_27 "0" + if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_28 "5" } + global tmpvar_29 + set tmpvar_29 "0" global CONFIG_SRCTRL_BANKSZ0 - if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_29 "8" } global CONFIG_SRCTRL_BANKSZ1 - if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_29 "16" } global CONFIG_SRCTRL_BANKSZ2 - if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_29 "32" } global CONFIG_SRCTRL_BANKSZ3 - if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_27 "64" } + if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_29 "64" } global CONFIG_SRCTRL_BANKSZ4 - if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_27 "128" } + if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_29 "128" } global CONFIG_SRCTRL_BANKSZ5 - if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_27 "256" } + if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_29 "256" } global CONFIG_SRCTRL_BANKSZ6 - if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_27 "512" } + if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_29 "512" } global CONFIG_SRCTRL_BANKSZ7 - if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_27 "1024" } + if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_29 "1024" } global CONFIG_SRCTRL_BANKSZ8 - if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_27 "2048" } + if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_29 "2048" } global CONFIG_SRCTRL_BANKSZ9 - if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_27 "4096" } + if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_29 "4096" } global CONFIG_SRCTRL_BANKSZ10 - if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_27 "8192" } + if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_29 "8192" } global CONFIG_SRCTRL_BANKSZ11 - if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_27 "16384" } + if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_29 "16384" } global CONFIG_SRCTRL_BANKSZ12 - if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_27 "32768" } + if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_29 "32768" } global CONFIG_SRCTRL_BANKSZ13 - if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_27 "65536" } - global tmpvar_28 - set tmpvar_28 "4" + if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_29 "65536" } + global tmpvar_30 + set tmpvar_30 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_30 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_30 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_30 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_30 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_30 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_30 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-altera-ep2s60-sdr/leon3mp.vhd b/designs/leon3-altera-ep2s60-sdr/leon3mp.vhd index 2773fd08..9a0dfd1c 100644 --- a/designs/leon3-altera-ep2s60-sdr/leon3mp.vhd +++ b/designs/leon3-altera-ep2s60-sdr/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -34,7 +34,6 @@ use gaisler.memctrl.all; use gaisler.leon3.all; use gaisler.uart.all; use gaisler.misc.all; -use gaisler.ata.all; use gaisler.jtag.all; library esa; use esa.memoryctrl.all; @@ -98,27 +97,6 @@ entity leon3mp is -- console UART rxd1 : in std_ulogic; txd1 : out std_ulogic; - - -- ATA signals --- pragma translate_off - ata_rst : out std_logic; --- pragma translate_on - ata_data : inout std_logic_vector(15 downto 0); - ata_da : out std_logic_vector(2 downto 0); - ata_cs0 : out std_logic; - ata_cs1 : out std_logic; - ata_dior : out std_logic; - ata_diow : out std_logic; - ata_iordy : in std_logic; - ata_intrq : in std_logic; - ata_dmack : out std_logic; - - -- Signals nedded to use CompactFlash with ATA controller - cf_power : out std_logic; -- To turn on power to the CompactFlash - cf_gnd_da : out std_logic_vector(10 downto 3); -- grounded address lines - cf_atasel : out std_logic; -- grounded to select true IDE mode - cf_we : out std_logic; -- should be connected to VCC in true IDE mode - cf_csel : out std_logic; -- for smsc lan chip eth_aen : out std_logic; @@ -143,7 +121,7 @@ architecture rtl of leon3mp is constant blength : integer := 12; constant fifodepth : integer := 8; - constant maxahbm : integer := NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_ATA; + constant maxahbm : integer := NCPU+CFG_AHB_UART+CFG_AHB_JTAG; signal vcc, gnd : std_logic_vector(7 downto 0); signal memi : memory_in_type; @@ -181,10 +159,6 @@ architecture rtl of leon3mp is signal dsui : dsu_in_type; signal dsuo : dsu_out_type; - signal cf : cf_out_type; - signal atai : ata_in_type; - signal atao : ata_out_type; - signal gpti : gptimer_in_type; signal gpioi : gpio_in_type; signal gpioo : gpio_out_type; @@ -476,65 +450,6 @@ begin end generate; end generate; - ------------------------------------------------------------------------ ---- ATA Controller --------------------------------------------------- ------------------------------------------------------------------------ - atac : if CFG_ATA = 1 generate - atac0 : atactrl - generic map(tech => 0, fdepth => CFG_ATAFIFO, - mhindex => CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG, - shindex => 5, haddr => CFG_ATAIO, hmask => 16#fff#, pirq => CFG_ATAIRQ, - mwdma => CFG_ATADMA, TWIDTH => 8, - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 => 6, -- 70ns - PIO_mode0_T2 => 28, -- 290ns - PIO_mode0_T4 => 2, -- 30ns - PIO_mode0_Teoc => 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ) - port map(rst => rstn, arst => vcc(0), clk => clkm, ahbsi => ahbsi, - ahbso => ahbso(5), ahbmi => ahbmi, ahbmo => ahbmo(NCPU+CFG_AHB_UART+CFG_AHB_JTAG), - cfo => cf, atai => atai, atao => atao); - --- pragma translate_off - ata_rst_pad : outpad generic map (tech => padtech) - port map (ata_rst, atao.rstn); --- pragma translate_on - ata_data_pad : iopadv generic map (tech => padtech, width => 16, oepol => 1) - port map (ata_data, atao.ddo, atao.oen, atai.ddi); - ata_da_pad : outpadv generic map (tech => padtech, width => 3) - port map (ata_da, atao.da); - ata_cs0_pad : outpad generic map (tech => padtech) - port map (ata_cs0, atao.cs0); - ata_cs1_pad : outpad generic map (tech => padtech) - port map (ata_cs1, atao.cs1); - ata_dior_pad : outpad generic map (tech => padtech) - port map (ata_dior, atao.dior); - ata_diow_pad : outpad generic map (tech => padtech) - port map (ata_diow, atao.diow); - iordy_pad : inpad generic map (tech => padtech) - port map (ata_iordy, atai.iordy); - intrq_pad : inpad generic map (tech => padtech) - port map (ata_intrq, atai.intrq); --- dmarq_pad : inpad generic map (tech => padtech) --- port map (ata_dmarq, ata.dmarq); - dmack_pad : outpad generic map (tech => padtech) - port map (ata_dmack, atao.dmack); - - -- for CompactFlach mode selection - cf_gnd_da_pad : outpadv generic map (tech => padtech, width => 8) - port map (cf_gnd_da, cf.da); - cf_atasel_pad : outpad generic map (tech => padtech) - port map (cf_atasel, cf.atasel); - cf_we_pad : outpad generic map (tech => padtech) - port map (cf_we, cf.we); - cf_power_pad : outpad generic map (tech => padtech) - port map (cf_power, cf.power); - cf_csel_pad : outpad generic map (tech => padtech) - port map (cf_csel, cf.csel); - - end generate; - ----------------------------------------------------------------------- --- AHB ROM ---------------------------------------------------------- ----------------------------------------------------------------------- @@ -563,7 +478,7 @@ begin --- Drive unused bus elements --------------------------------------- ----------------------------------------------------------------------- - nam1 : for i in (NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_ATA) to NAHBMST-1 generate + nam1 : for i in (NCPU+CFG_AHB_UART+CFG_AHB_JTAG) to NAHBMST-1 generate ahbmo(i) <= ahbm_none; end generate; nap0 : for i in 6 to NAPBSLV-1 generate apbo(i) <= apb_none; end generate; diff --git a/designs/leon3-altera-ep2s60-sdr/smc_mctrl.vhd b/designs/leon3-altera-ep2s60-sdr/smc_mctrl.vhd index 3d5069e8..4907a0c1 100644 --- a/designs/leon3-altera-ep2s60-sdr/smc_mctrl.vhd +++ b/designs/leon3-altera-ep2s60-sdr/smc_mctrl.vhd @@ -895,7 +895,6 @@ begin ribdrive <= vbdrive; risbdrive <= vsbdrive; - ahbso.hcache <= not r.area(io); memo.address <= r.address; memo.sa <= r.sa; memo.ramsn <= "111" & r.ramsn; diff --git a/designs/leon3-altera-ep2s60-sdr/testbench.vhd b/designs/leon3-altera-ep2s60-sdr/testbench.vhd index 5f494b52..f4982095 100644 --- a/designs/leon3-altera-ep2s60-sdr/testbench.vhd +++ b/designs/leon3-altera-ep2s60-sdr/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -30,8 +30,6 @@ library techmap; use techmap.gencomp.all; library micron; use micron.components.all; -library opencores; -use opencores.occomp.all; use work.debug.all; use work.config.all; -- configuration @@ -118,23 +116,6 @@ constant lresp : boolean := false; signal sa : std_logic_vector(14 downto 0); signal sd : std_logic_vector(31 downto 0); --- ATA signals -signal ata_rst : std_logic; -signal ata_data : std_logic_vector(15 downto 0); -signal ata_da : std_logic_vector(2 downto 0); -signal ata_cs0 : std_logic; -signal ata_cs1 : std_logic; -signal ata_dior : std_logic; -signal ata_diow : std_logic; -signal ata_iordy : std_logic; -signal ata_intrq : std_logic; -signal ata_dmack : std_logic; -signal cf_gnd_da : std_logic_vector(10 downto 3); -signal cf_atasel : std_logic; -signal cf_we : std_logic; -signal cf_power : std_logic; -signal cf_csel : std_logic; - begin -- clock and reset @@ -147,9 +128,7 @@ begin port map (rst, clk, error, address, data, ramsn, ramoen, rwen, mben, iosn, romsn, oen, writen, open, open, sa(11 downto 0), sd, sdclk, sdcke, sdcsn, sdwen, sdrasn, sdcasn, sddqm, sdba, dsutx, dsurx, dsubren, - dsuact, rxd1, txd1, ata_rst, ata_data, ata_da, ata_cs0, ata_cs1, - ata_dior, ata_diow, ata_iordy, ata_intrq, ata_dmack, cf_power, - cf_gnd_da, cf_atasel, cf_we, cf_csel, eth_aen, eth_readn, + dsuact, rxd1, txd1, eth_aen, eth_readn, eth_writen, eth_nbe); sd1 : if (CFG_MCTRL_SDEN = 1) and (CFG_MCTRL_SEPBUS = 1) generate @@ -177,19 +156,6 @@ begin port map (address(sramdepth+1 downto 2), data(31-i*8 downto 24-i*8), ramsn, rwen, ramoen); end generate; - - ata_dev0 : ata_device_oc - port map( - ata_rst_n => ata_rst, - ata_data => ata_data, - ata_da => ata_da, - ata_cs0 => ata_cs0, - ata_cs1 => ata_cs1, - ata_dior_n => ata_dior, - ata_diow_n => ata_diow, - ata_iordy => ata_iordy, - ata_intrq => ata_intrq - ); error <= 'H'; -- ERROR pull-up diff --git a/designs/leon3-altera-ep2s60-sdr/tkconfig.h b/designs/leon3-altera-ep2s60-sdr/tkconfig.h index 837217db..61990464 100644 --- a/designs/leon3-altera-ep2s60-sdr/tkconfig.h +++ b/designs/leon3-altera-ep2s60-sdr/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -949,25 +971,6 @@ #define CONFIG_GRGPIO_WIDTH 1 #endif -#ifndef CONFIG_ATA_ENABLE -#define CONFIG_ATA_ENABLE 0 -#endif - -#ifndef CONFIG_ATAIO -#define CONFIG_ATAIO 0 -#endif - -#ifndef CONFIG_ATAIRQ -#define CONFIG_ATAIRQ 0 -#endif - -#ifndef CONFIG_ATA_MWDMA -#define CONFIG_ATA_MWDMA 0 -#endif - -#ifndef CONFIG_ATA_FIFO -#define CONFIG_ATA_FIFO 8 -#endif #ifndef CONFIG_DEBUG_UART #define CONFIG_DEBUG_UART 0 diff --git a/designs/leon3-altera-ep2sgx90-av/Makefile b/designs/leon3-altera-ep2sgx90-av/Makefile index 919fe425..b49a86fa 100644 --- a/designs/leon3-altera-ep2sgx90-av/Makefile +++ b/designs/leon3-altera-ep2sgx90-av/Makefile @@ -17,9 +17,9 @@ CLEAN=soft-clean TECHLIBS = altera altera_mf stratixii LIBSKIP = gsi spansion fmf core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann usbhc spw + tmtc openchip ihp usbhc spw DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - grusbhc spacewire usb haps hcan + grusbhc spacewire usb hcan FILESKIP = grcan.vhd include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-altera-ep2sgx90-av/ahbrom.vhd b/designs/leon3-altera-ep2sgx90-av/ahbrom.vhd index 5d2cd2c2..a0de4872 100644 --- a/designs/leon3-altera-ep2sgx90-av/ahbrom.vhd +++ b/designs/leon3-altera-ep2sgx90-av/ahbrom.vhd @@ -85,7 +85,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-altera-ep2sgx90-av/config.help b/designs/leon3-altera-ep2sgx90-av/config.help index adde092f..43ca6c9d 100644 --- a/designs/leon3-altera-ep2sgx90-av/config.help +++ b/designs/leon3-altera-ep2sgx90-av/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-altera-ep2sgx90-av/lconfig.tk b/designs/leon3-altera-ep2sgx90-av/lconfig.tk index 91af976c..759e22f6 100755 --- a/designs/leon3-altera-ep2sgx90-av/lconfig.tk +++ b/designs/leon3-altera-ep2sgx90-av/lconfig.tk @@ -753,7 +753,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -763,7 +764,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -906,8 +909,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -926,6 +931,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1015,9 +1024,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1071,10 +1081,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1120,14 +1131,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1200,13 +1213,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1246,22 +1267,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1318,21 +1607,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1379,36 +1668,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1416,48 +1706,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1513,27 +1804,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1574,16 +1865,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1592,34 +1884,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1676,92 +1969,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1769,18 +2062,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1821,52 +2114,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1874,162 +2168,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2085,45 +2380,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2163,18 +2460,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2182,55 +2480,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2287,24 +2590,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2344,17 +2647,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2362,37 +2666,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2448,16 +2753,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2505,9 +2817,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2529,21 +2839,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2852,14 +3167,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2933,17 +3248,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3596,16 +3911,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3667,21 +3982,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3741,14 +4056,14 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 18 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3802,17 +4117,17 @@ proc update_define_menu18 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3868,15 +4183,15 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 19 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 19 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3965,19 +4280,19 @@ proc update_menu19 {} { proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4147,7 +4462,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4157,6 +4473,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4181,6 +4499,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4193,14 +4512,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4213,27 +4537,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4243,17 +4567,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4265,12 +4589,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4280,10 +4604,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4294,7 +4618,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4306,26 +4630,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4333,27 +4659,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4374,7 +4704,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4422,7 +4752,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4433,14 +4763,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4518,7 +4848,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4528,6 +4859,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4566,6 +4899,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4578,9 +4912,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4594,239 +4929,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4871,13 +5356,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -4969,38 +5454,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5073,7 +5558,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5083,6 +5569,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5101,8 +5589,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5185,11 +5678,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5210,6 +5705,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5309,8 +5808,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5329,6 +5830,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5369,324 +5874,350 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-altera-ep2sgx90-av/sram32.vhd b/designs/leon3-altera-ep2sgx90-av/sram32.vhd index 9a6400ad..d7dd68de 100644 --- a/designs/leon3-altera-ep2sgx90-av/sram32.vhd +++ b/designs/leon3-altera-ep2sgx90-av/sram32.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-ep2sgx90-av/testbench.vhd b/designs/leon3-altera-ep2sgx90-av/testbench.vhd index 21187872..1dd3d0e0 100644 --- a/designs/leon3-altera-ep2sgx90-av/testbench.vhd +++ b/designs/leon3-altera-ep2sgx90-av/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-ep2sgx90-av/tkconfig.h b/designs/leon3-altera-ep2sgx90-av/tkconfig.h index 06040f7e..af7f3f2c 100644 --- a/designs/leon3-altera-ep2sgx90-av/tkconfig.h +++ b/designs/leon3-altera-ep2sgx90-av/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-altera-ep3c25-eek/Makefile b/designs/leon3-altera-ep3c25-eek/Makefile index 42f25883..76db66e3 100644 --- a/designs/leon3-altera-ep3c25-eek/Makefile +++ b/designs/leon3-altera-ep3c25-eek/Makefile @@ -18,10 +18,10 @@ CLEAN=soft-clean TECHLIBS = altera altera_mf cycloneiii LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann stratixii stratixiii usbhc spw + tmtc openchip ihp stratixii stratixiii usbhc spw DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - grusbhc spacewire hcan leon4 leon4b64 l2cache iommu slink ascs pwm \ - coremp7 gr1553b haps + grusbhc spacewire hcan leon4 leon4v0 l2cache iommu slink ascs pwm \ + gr1553b FILESKIP = grcan.vhd include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-altera-ep3c25-eek/ahbrom.vhd b/designs/leon3-altera-ep3c25-eek/ahbrom.vhd index 897ffde0..9f5c8631 100644 --- a/designs/leon3-altera-ep3c25-eek/ahbrom.vhd +++ b/designs/leon3-altera-ep3c25-eek/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-altera-ep3c25-eek/altera_eek_clkgen.vhd b/designs/leon3-altera-ep3c25-eek/altera_eek_clkgen.vhd index 1232501c..b33793ad 100644 --- a/designs/leon3-altera-ep3c25-eek/altera_eek_clkgen.vhd +++ b/designs/leon3-altera-ep3c25-eek/altera_eek_clkgen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-ep3c25-eek/config.help b/designs/leon3-altera-ep3c25-eek/config.help index c09becbb..d297348c 100644 --- a/designs/leon3-altera-ep3c25-eek/config.help +++ b/designs/leon3-altera-ep3c25-eek/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ @@ -837,7 +870,7 @@ CONFIG_SPIMCTRL_SDCARD Read command CONFIG_SPIMCTRL_READCMD - Read instruction for SPI memory device + Read instruction for SPI memory device (hex). Dummy byte CONFIG_SPIMCTRL_DUMMYBYTE @@ -847,6 +880,10 @@ Dual output CONFIG_SPIMCTRL_DUALOUTPUT Memory device supports dual output when reading data. +Address offset +CONFIG_SPIMCTRL_OFFSET + Offset that will be added by core on SPI memory address (hex). + Clock scaler CONFIG_SPIMCTRL_SCALER Selects the divisor used when dividing the system clock to produce diff --git a/designs/leon3-altera-ep3c25-eek/config.vhd.h b/designs/leon3-altera-ep3c25-eek/config.vhd.h index 82a79da9..a6fe4877 100644 --- a/designs/leon3-altera-ep3c25-eek/config.vhd.h +++ b/designs/leon3-altera-ep3c25-eek/config.vhd.h @@ -128,6 +128,7 @@ constant CFG_SPIMCTRL_SCALER : integer := CONFIG_SPIMCTRL_SCALER; constant CFG_SPIMCTRL_ASCALER : integer := CONFIG_SPIMCTRL_ASCALER; constant CFG_SPIMCTRL_PWRUPCNT : integer := CONFIG_SPIMCTRL_PWRUPCNT; + constant CFG_SPIMCTRL_OFFSET : integer := 16#CONFIG_SPIMCTRL_OFFSET#; -- AHB ROM constant CFG_AHBROMEN : integer := CONFIG_AHBROM_ENABLE; diff --git a/designs/leon3-altera-ep3c25-eek/lconfig.tk b/designs/leon3-altera-ep3c25-eek/lconfig.tk index 392a26a3..e2ac9293 100755 --- a/designs/leon3-altera-ep3c25-eek/lconfig.tk +++ b/designs/leon3-altera-ep3c25-eek/lconfig.tk @@ -758,7 +758,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -768,7 +769,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -911,8 +914,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -931,6 +936,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1020,9 +1029,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1076,10 +1086,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1125,14 +1136,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1205,13 +1218,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1251,22 +1272,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1323,21 +1612,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1384,36 +1673,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1421,48 +1711,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1518,27 +1809,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1579,16 +1870,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1597,34 +1889,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1681,92 +1974,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1774,18 +2067,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1826,52 +2119,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1879,162 +2173,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2090,45 +2385,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2168,18 +2465,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2187,55 +2485,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2292,24 +2595,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2349,17 +2652,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2367,37 +2671,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2453,16 +2758,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2510,9 +2822,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2534,21 +2844,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2857,14 +3172,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2938,17 +3253,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3635,9 +3950,10 @@ proc menu18 {w title} { hex $w.config.f 18 2 "Read instruction " CONFIG_SPIMCTRL_READCMD bool $w.config.f 18 3 "Read instruction requires dummy byte " CONFIG_SPIMCTRL_DUMMYBYTE bool $w.config.f 18 4 "Enable dual output for reads " CONFIG_SPIMCTRL_DUALOUTPUT - int $w.config.f 18 5 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER - int $w.config.f 18 6 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER - int $w.config.f 18 7 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT + hex $w.config.f 18 5 "Address offset " CONFIG_SPIMCTRL_OFFSET + int $w.config.f 18 6 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER + int $w.config.f 18 7 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER + int $w.config.f 18 8 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT @@ -3687,12 +4003,14 @@ proc update_menu18 {} { global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { configure_entry .menu18.config.f.x4 normal {n l y}} else {configure_entry .menu18.config.f.x4 disabled {y n l}} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 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} global CONFIG_SPIMCTRL_SCALER - if {($CONFIG_SPIMCTRL == 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} - global CONFIG_SPIMCTRL_ASCALER if {($CONFIG_SPIMCTRL == 1)} then {.menu18.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x6.l configure -state normal; } else {.menu18.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x6.l configure -state disabled} - global CONFIG_SPIMCTRL_PWRUPCNT + global CONFIG_SPIMCTRL_ASCALER if {($CONFIG_SPIMCTRL == 1)} then {.menu18.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x7.l configure -state normal; } else {.menu18.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x7.l configure -state disabled} + global CONFIG_SPIMCTRL_PWRUPCNT + if {($CONFIG_SPIMCTRL == 1)} then {.menu18.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x8.l configure -state normal; } else {.menu18.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x8.l configure -state disabled} } @@ -3711,6 +4029,8 @@ proc update_define_menu18 {} { global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT&15]} else {set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT|16]} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {validate_hex CONFIG_SPIMCTRL_OFFSET "$CONFIG_SPIMCTRL_OFFSET" 0} global CONFIG_SPIMCTRL_SCALER if {($CONFIG_SPIMCTRL == 1)} then {validate_int CONFIG_SPIMCTRL_SCALER "$CONFIG_SPIMCTRL_SCALER" 1} global CONFIG_SPIMCTRL_ASCALER @@ -3775,16 +4095,16 @@ proc menu19 {w title} { hex $w.config.f 19 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 19 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 19 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 19 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 19 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 19 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3846,21 +4166,21 @@ proc update_define_menu19 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3920,14 +4240,14 @@ proc menu20 {w title} { bool $w.config.f 20 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 20 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 20 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 20 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3981,17 +4301,17 @@ proc update_define_menu20 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -4047,15 +4367,15 @@ proc menu21 {w title} { bool $w.config.f 21 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 21 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 21 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 21 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 21 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4144,19 +4464,19 @@ proc update_menu21 {} { proc update_define_menu21 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4350,12 +4670,12 @@ proc menu23 {w title} { bool $w.config.f 23 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN int $w.config.f 23 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN bool $w.config.f 23 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM - global tmpvar_30 - minimenu $w.config.f 23 11 "Fault-tolerance" tmpvar_30 CONFIG_SPICTRL_NOFT + global tmpvar_32 + minimenu $w.config.f 23 11 "Fault-tolerance" tmpvar_32 CONFIG_SPICTRL_NOFT menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" - $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_30 -value "None" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_30 -value "Parity-DMR" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_30 -value "TMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_32 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_32 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_32 -value "TMR" -command "update_active" menusplit $w $w.config.f.x11.x.menu 3 @@ -4455,13 +4775,13 @@ proc update_define_menu23 {} { global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} - global tmpvar_30 + global tmpvar_32 global CONFIG_SPICTRL_NOFT - if {$tmpvar_30 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + if {$tmpvar_32 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} global CONFIG_SPICTRL_DMRFT - if {$tmpvar_30 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + if {$tmpvar_32 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} global CONFIG_SPICTRL_TMRFT - if {$tmpvar_30 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} + if {$tmpvar_32 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } @@ -4703,7 +5023,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4713,6 +5034,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4737,6 +5060,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4749,14 +5073,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4769,27 +5098,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4799,17 +5128,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4821,12 +5150,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4836,10 +5165,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4850,7 +5179,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4862,26 +5191,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4889,27 +5220,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4930,7 +5265,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4965,6 +5300,7 @@ set CONFIG_SPIMCTRL_SDCARD 0 set CONFIG_SPIMCTRL_READCMD 0B set CONFIG_SPIMCTRL_DUMMYBYTE 0 set CONFIG_SPIMCTRL_DUALOUTPUT 0 +set CONFIG_SPIMCTRL_OFFSET 0 set CONFIG_SPIMCTRL_SCALER 1 set CONFIG_SPIMCTRL_ASCALER 8 set CONFIG_SPIMCTRL_PWRUPCNT 0 @@ -4972,7 +5308,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4983,14 +5319,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5024,7 +5360,7 @@ set CONFIG_SPICTRL_ODMODE 0 set CONFIG_SPICTRL_TWEN 0 set CONFIG_SPICTRL_MAXWLEN 0 set CONFIG_SPICTRL_SYNCRAM 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_SPICTRL_NOFT 0 set CONFIG_SPICTRL_DMRFT 0 set CONFIG_SPICTRL_TMRFT 0 @@ -5087,7 +5423,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5097,6 +5434,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5135,6 +5474,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -5147,9 +5487,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5163,239 +5504,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5440,13 +5931,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5518,6 +6009,8 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUMMYBYTE $CONFIG_SPIMCTRL_DUMMYBYTE [list $notmod] 2 } global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUALOUTPUT $CONFIG_SPIMCTRL_DUALOUTPUT [list $notmod] 2 } + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_hex $cfg $autocfg CONFIG_SPIMCTRL_OFFSET $CONFIG_SPIMCTRL_OFFSET $notmod } global CONFIG_SPIMCTRL_SCALER if {($CONFIG_SPIMCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SPIMCTRL_SCALER $CONFIG_SPIMCTRL_SCALER $notmod } global CONFIG_SPIMCTRL_ASCALER @@ -5533,38 +6026,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5621,11 +6114,11 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } - global tmpvar_30 + global tmpvar_32 if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { - if { $tmpvar_30 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } - if { $tmpvar_30 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } - if { $tmpvar_30 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} + if { $tmpvar_32 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "LCD and VGA DAC " global CONFIG_LCD_ENABLE write_tristate $cfg $autocfg CONFIG_LCD_ENABLE $CONFIG_LCD_ENABLE [list $notmod] 2 @@ -5677,7 +6170,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5687,6 +6181,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5705,8 +6201,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5789,11 +6290,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5814,6 +6317,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5916,8 +6423,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5936,6 +6445,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5976,332 +6489,358 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } - global tmpvar_30 - set tmpvar_30 "None" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } + global tmpvar_32 + set tmpvar_32 "None" global CONFIG_SPICTRL_NOFT - if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_30 "None" } + if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_32 "None" } global CONFIG_SPICTRL_DMRFT - if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_30 "Parity-DMR" } + if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_32 "Parity-DMR" } global CONFIG_SPICTRL_TMRFT - if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_30 "TMR" } + if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_32 "TMR" } } diff --git a/designs/leon3-altera-ep3c25-eek/leon3mp.vhd b/designs/leon3-altera-ep3c25-eek/leon3mp.vhd index 047553a1..2386c532 100644 --- a/designs/leon3-altera-ep3c25-eek/leon3mp.vhd +++ b/designs/leon3-altera-ep3c25-eek/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-ep3c25-eek/serializer.vhd b/designs/leon3-altera-ep3c25-eek/serializer.vhd index 2a34129b..83728b0d 100644 --- a/designs/leon3-altera-ep3c25-eek/serializer.vhd +++ b/designs/leon3-altera-ep3c25-eek/serializer.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-ep3c25-eek/testbench.vhd b/designs/leon3-altera-ep3c25-eek/testbench.vhd index 9556bdf2..57e5b30e 100644 --- a/designs/leon3-altera-ep3c25-eek/testbench.vhd +++ b/designs/leon3-altera-ep3c25-eek/testbench.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-ep3c25-eek/tkconfig.h b/designs/leon3-altera-ep3c25-eek/tkconfig.h index d0dae2a4..8da8b078 100644 --- a/designs/leon3-altera-ep3c25-eek/tkconfig.h +++ b/designs/leon3-altera-ep3c25-eek/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -845,6 +867,10 @@ #ifndef CONFIG_SPIMCTRL_PWRUPCNT #define CONFIG_SPIMCTRL_PWRUPCNT 0 #endif + +#ifndef CONFIG_SPIMCTRL_OFFSET +#define CONFIG_SPIMCTRL_OFFSET 0 +#endif #ifndef CONFIG_AHBROM_ENABLE #define CONFIG_AHBROM_ENABLE 0 #endif diff --git a/designs/leon3-altera-ep3c25/Makefile b/designs/leon3-altera-ep3c25/Makefile index 406dde07..924694d3 100644 --- a/designs/leon3-altera-ep3c25/Makefile +++ b/designs/leon3-altera-ep3c25/Makefile @@ -17,9 +17,9 @@ CLEAN=soft-clean TECHLIBS = altera altera_mf cycloneiii LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF fmf gsi \ - tmtc openchip ihp gleichmann stratixii stratixiii usbhc spw eth spansion dw02 + tmtc openchip ihp stratixii stratixiii usbhc spw eth spansion dw02 DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - grusbhc spacewire haps net greth ata usb hcan + grusbhc spacewire net greth usb hcan leon4v0 leon4 FILESKIP = grcan.vhd include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-altera-ep3c25/ahbrom.vhd b/designs/leon3-altera-ep3c25/ahbrom.vhd index a61a155a..2091c411 100644 --- a/designs/leon3-altera-ep3c25/ahbrom.vhd +++ b/designs/leon3-altera-ep3c25/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-altera-ep3c25/config.help b/designs/leon3-altera-ep3c25/config.help index be6239f8..bff81587 100644 --- a/designs/leon3-altera-ep3c25/config.help +++ b/designs/leon3-altera-ep3c25/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-altera-ep3c25/lconfig.tk b/designs/leon3-altera-ep3c25/lconfig.tk index 7279e2c9..e236a230 100755 --- a/designs/leon3-altera-ep3c25/lconfig.tk +++ b/designs/leon3-altera-ep3c25/lconfig.tk @@ -753,7 +753,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -763,7 +764,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -906,8 +909,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -926,6 +931,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1015,9 +1024,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1071,10 +1081,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1120,14 +1131,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1200,13 +1213,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1246,22 +1267,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1318,21 +1607,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1379,36 +1668,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1416,48 +1706,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1513,27 +1804,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1574,16 +1865,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1592,34 +1884,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1676,92 +1969,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1769,18 +2062,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1821,52 +2114,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1874,162 +2168,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2085,45 +2380,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2163,18 +2460,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2182,55 +2480,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2287,24 +2590,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2344,17 +2647,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2362,37 +2666,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2448,16 +2753,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2505,9 +2817,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2529,21 +2839,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -3559,16 +3874,16 @@ proc menu18 {w title} { hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 18 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 18 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_26 - minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_26 CONFIG_AHBRAM_SZ1 + global tmpvar_28 + minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_28 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_26 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_26 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3630,21 +3945,21 @@ proc update_define_menu18 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_26 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_28 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_26 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_28 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3703,15 +4018,15 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_27 - minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_27 CONFIG_UA1_FIFO1 + global tmpvar_29 + minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 19 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 19 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3800,19 +4115,19 @@ proc update_menu19 {} { proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_27 + global tmpvar_29 global CONFIG_UA1_FIFO1 - if {$tmpvar_27 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_27 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_27 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_27 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_27 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_27 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -3982,7 +4297,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -3992,6 +4308,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4016,6 +4334,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4028,14 +4347,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4048,27 +4372,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4078,17 +4402,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4100,12 +4424,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4115,10 +4439,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4129,7 +4453,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4141,26 +4465,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4168,27 +4494,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4230,7 +4560,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4240,7 +4570,7 @@ set CONFIG_AHBRAM_SZ32 0 set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_UART1_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4317,7 +4647,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4327,6 +4658,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4365,6 +4698,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4377,9 +4711,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4393,239 +4728,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4723,28 +5208,28 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_26 + global tmpvar_28 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} + if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } + if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } + if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } + if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } + if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } + if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4817,7 +5302,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4827,6 +5313,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4845,8 +5333,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -4929,11 +5422,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -4954,6 +5449,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0 global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0 global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0 @@ -5043,8 +5542,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5063,6 +5564,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5103,300 +5608,326 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "4" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_26 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_28 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_26 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_28 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_26 "64" } - global tmpvar_27 - set tmpvar_27 "1" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_28 "64" } + global tmpvar_29 + set tmpvar_29 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } } diff --git a/designs/leon3-altera-ep3c25/leon3mp.vhd b/designs/leon3-altera-ep3c25/leon3mp.vhd index f2d81f83..2521f6a1 100644 --- a/designs/leon3-altera-ep3c25/leon3mp.vhd +++ b/designs/leon3-altera-ep3c25/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-ep3c25/testbench.vhd b/designs/leon3-altera-ep3c25/testbench.vhd index 3dbfab93..8161779c 100644 --- a/designs/leon3-altera-ep3c25/testbench.vhd +++ b/designs/leon3-altera-ep3c25/testbench.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-ep3c25/tkconfig.h b/designs/leon3-altera-ep3c25/tkconfig.h index cbc9fa10..d14ca5fa 100644 --- a/designs/leon3-altera-ep3c25/tkconfig.h +++ b/designs/leon3-altera-ep3c25/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-altera-ep3sl150/Makefile b/designs/leon3-altera-ep3sl150/Makefile index f9ac624b..e001fba7 100644 --- a/designs/leon3-altera-ep3sl150/Makefile +++ b/designs/leon3-altera-ep3sl150/Makefile @@ -17,9 +17,9 @@ CLEAN=soft-clean TECHLIBS = altera altera_mf stratixiii LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF fmf gsi \ - tmtc openchip ihp gleichmann stratixii usbhc spw spansion + tmtc openchip ihp stratixii usbhc spw spansion DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft can \ - grusbhc spacewire haps ata usb hcan + grusbhc spacewire usb hcan FILESKIP = grcan.vhd include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-altera-ep3sl150/ahbrom.vhd b/designs/leon3-altera-ep3sl150/ahbrom.vhd index a61a155a..2091c411 100644 --- a/designs/leon3-altera-ep3sl150/ahbrom.vhd +++ b/designs/leon3-altera-ep3sl150/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-altera-ep3sl150/config.help b/designs/leon3-altera-ep3sl150/config.help index 89578fa7..972dec4b 100644 --- a/designs/leon3-altera-ep3sl150/config.help +++ b/designs/leon3-altera-ep3sl150/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-altera-ep3sl150/lconfig.tk b/designs/leon3-altera-ep3sl150/lconfig.tk index 957ecf6c..6bd980ab 100755 --- a/designs/leon3-altera-ep3sl150/lconfig.tk +++ b/designs/leon3-altera-ep3sl150/lconfig.tk @@ -754,7 +754,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -764,7 +765,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -907,8 +910,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -927,6 +932,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1016,9 +1025,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1072,10 +1082,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1121,14 +1132,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1201,13 +1214,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1247,22 +1268,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1319,21 +1608,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1380,36 +1669,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1417,48 +1707,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1514,27 +1805,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1575,16 +1866,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1593,34 +1885,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1677,92 +1970,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1770,18 +2063,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1822,52 +2115,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1875,162 +2169,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2086,45 +2381,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2164,18 +2461,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2183,55 +2481,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2288,24 +2591,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2345,17 +2648,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2363,37 +2667,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2449,16 +2754,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2506,9 +2818,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2530,21 +2840,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2853,14 +3168,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2934,17 +3249,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3705,16 +4020,16 @@ proc menu18 {w title} { hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 18 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 18 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3776,21 +4091,21 @@ proc update_define_menu18 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3850,14 +4165,14 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 19 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3911,17 +4226,17 @@ proc update_define_menu19 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3977,15 +4292,15 @@ proc menu20 {w title} { bool $w.config.f 20 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 20 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 20 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4074,19 +4389,19 @@ proc update_menu20 {} { proc update_define_menu20 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4256,7 +4571,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4266,6 +4582,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4290,6 +4608,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4302,14 +4621,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4322,27 +4646,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4352,17 +4676,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4374,12 +4698,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4389,10 +4713,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4403,7 +4727,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4415,26 +4739,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4442,27 +4768,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4483,7 +4813,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4533,7 +4863,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4544,14 +4874,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4629,7 +4959,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4639,6 +4970,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4677,6 +5010,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4689,9 +5023,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4705,239 +5040,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4982,13 +5467,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5085,38 +5570,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5189,7 +5674,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5199,6 +5685,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5217,8 +5705,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5301,11 +5794,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5326,6 +5821,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5425,8 +5924,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5445,6 +5946,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5485,324 +5990,350 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-altera-ep3sl150/leon3mp.vhd b/designs/leon3-altera-ep3sl150/leon3mp.vhd index 268f1200..f19403f4 100644 --- a/designs/leon3-altera-ep3sl150/leon3mp.vhd +++ b/designs/leon3-altera-ep3sl150/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-ep3sl150/testbench.vhd b/designs/leon3-altera-ep3sl150/testbench.vhd index 625597c8..3b41f748 100644 --- a/designs/leon3-altera-ep3sl150/testbench.vhd +++ b/designs/leon3-altera-ep3sl150/testbench.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-altera-ep3sl150/tkconfig.h b/designs/leon3-altera-ep3sl150/tkconfig.h index cec29dcf..82ced31d 100644 --- a/designs/leon3-altera-ep3sl150/tkconfig.h +++ b/designs/leon3-altera-ep3sl150/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-arrow-bemicro-sdk/.config b/designs/leon3-arrow-bemicro-sdk/.config index 562d2eb8..36902f41 100755 --- a/designs/leon3-arrow-bemicro-sdk/.config +++ b/designs/leon3-arrow-bemicro-sdk/.config @@ -40,7 +40,8 @@ CONFIG_SYN_CYCLONEIII=y # CONFIG_SYN_TM65GPLUS is not set # CONFIG_SYN_TSMC90 is not set # CONFIG_SYN_UMC is not set -# CONFIG_SYN_SPARTAN2 is not set +# CONFIG_SYN_ARTIX7 is not set +# CONFIG_SYN_KINTEX7 is not set # CONFIG_SYN_SPARTAN3 is not set # CONFIG_SYN_SPARTAN3E is not set # CONFIG_SYN_SPARTAN6 is not set @@ -50,6 +51,8 @@ CONFIG_SYN_CYCLONEIII=y # CONFIG_SYN_VIRTEX4 is not set # CONFIG_SYN_VIRTEX5 is not set # CONFIG_SYN_VIRTEX6 is not set +# CONFIG_SYN_VIRTEX7 is not set +# CONFIG_SYN_ZYNQ7000 is not set # CONFIG_SYN_INFER_RAM is not set # CONFIG_SYN_INFER_PADS is not set # CONFIG_SYN_NO_ASYNC is not set @@ -69,17 +72,22 @@ CONFIG_CLK_ALTDLL=y # CONFIG_CLK_FUSPLL is not set # CONFIG_CLK_LIB18T is not set # CONFIG_CLK_RHUMC is not set +# CONFIG_CLK_CLKPLLE2 is not set # CONFIG_CLK_CLKDLL is not set # CONFIG_CLK_DCM is not set CONFIG_CLK_MUL=5 CONFIG_CLK_DIV=5 # CONFIG_PCI_SYSCLK is not set -CONFIG_LEON3=y -CONFIG_PROC_NUM=1 # # Processor # +CONFIG_LEON3=y +CONFIG_PROC_NUM=1 +# CONFIG_LEON3_MIN is not set +# CONFIG_LEON3_GP is not set +# CONFIG_LEON3_HP is not set +CONFIG_LEON3_CUSTOM=y # # Integer unit @@ -160,6 +168,7 @@ CONFIG_MMU_REPINCREMENT=y CONFIG_MMU_I8=y # CONFIG_MMU_I16 is not set # CONFIG_MMU_I32 is not set +# CONFIG_MMU_I64 is not set CONFIG_MMU_PAGE_4K=y # CONFIG_MMU_PAGE_8K is not set # CONFIG_MMU_PAGE_16K is not set @@ -234,14 +243,20 @@ CONFIG_DDRSP_RSKEW=0 # # SPI memory controller # -# CONFIG_SPIMCTRL is not set +CONFIG_SPIMCTRL=y +# CONFIG_SPIMCTRL_SDCARD is not set +CONFIG_SPIMCTRL_READCMD=0b +CONFIG_SPIMCTRL_DUMMYBYTE=y +# CONFIG_SPIMCTRL_DUALOUTPUT is not set +CONFIG_SPIMCTRL_OFFSET=50000 +CONFIG_SPIMCTRL_SCALER=1 +CONFIG_SPIMCTRL_ASCALER=2 +CONFIG_SPIMCTRL_PWRUPCNT=0 # # On-chip RAM/ROM # -CONFIG_AHBROM_ENABLE=y -CONFIG_AHBROM_START=000 -# CONFIG_AHBROM_PIPE is not set +# CONFIG_AHBROM_ENABLE is not set # CONFIG_AHBRAM_ENABLE is not set # diff --git a/designs/leon3-arrow-bemicro-sdk/Makefile b/designs/leon3-arrow-bemicro-sdk/Makefile index 2ad30d81..20d5ae5d 100644 --- a/designs/leon3-arrow-bemicro-sdk/Makefile +++ b/designs/leon3-arrow-bemicro-sdk/Makefile @@ -17,11 +17,11 @@ CLEAN=soft-clean TECHLIBS = altera altera_mf cycloneiii LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann stratixii stratixiii spw \ + tmtc openchip ihp stratixii stratixiii spw \ oppencores DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - grusbhc spacewire hcan leon4 leon4b64 l2cache iommu slink ascs pwm \ - coremp7 gr1553b haps ata usb + grusbhc spacewire hcan leon4 leon4v0 l2cache iommu slink ascs pwm \ + gr1553b usb FILESKIP = grcan.vhd include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-arrow-bemicro-sdk/README.txt b/designs/leon3-arrow-bemicro-sdk/README.txt index ce3ea137..691553d4 100644 --- a/designs/leon3-arrow-bemicro-sdk/README.txt +++ b/designs/leon3-arrow-bemicro-sdk/README.txt @@ -22,21 +22,124 @@ reference config). 1. Boot ROM ----------- -The board does not have a PROM that can hold boot software. In order -to have the processor boot successfully after reset there are two -options: 1) Include an AHBROM on the device. 2) Use SPIMCTRL and place -boot software on SD card. - -For the (simulation) system test to function, the design is by default -configured to include an AHBROM. If you don't update the AHBROM with -something sensible for hardware it is better to disable it before -running synthesis. - -The SPI memory controller (SPIMCTRL) and AHBROM cores cannot both be -enabled simultaneously. If you want this, you need to edit -leon3mp.vhd. - -See comment about SPI SD Card interface below. +Boot Flash is provided via SPIMCTRL from the board's EPCS device. + +The design can also use on-chip ROM via the AHBROM core. Note that the +SPI memory controller must be disabled to include the AHBROM core in +the design. If both cores are enabled in xconfig only the AHBROM core +will be instantiated in leon3mp.vhd. + +The rest of this section explains how to work with SPIMCTRL in this +design: + +Typically the lower part of the EPCS device will hold the +configuration bitstream for the FPGA. The SPIMCTRL core is configured +with an offset value that will be added to the incoming AHB address +before the address is propagated to the EPCS device. The default +offset is 0x50000 (this value is set via xconfig and the constant is +called CFG_SPIMCTRL_OFFSET). When the processor starts after power-up +it will read address 0x0, this will be translated by SPIMCTRL to +0x50000. (See section below for how to program the FPGA configuration +bitstream into the EPCS device). + +SPIMCTRL can only add this offset to accesses made via the core's +memory area. For accesses made via the register interface the offset +must be taken into account. This means that if we want to program the +Flash with an application which is linked to address 0x0 (our typical +bootloader) then we need to add the offset 0x50000 before programming +the file with GRMON. We load the Flash with our application starting +at 0x50000 and SPIMCTRL will then translate accesses from AMBA address +0x0 + n to Flash address 0x50000 + n. + +The example below shows how to program prom.srec, which should be +present at AMBA address 0x0 to a SPI Flash device where SPIMCTRL adds +an offset to the incoming address. + +First we check which offset that SPIMCTRL adds: + +user@host$ grep SPIMCTRL_OFFSET config.vhd + constant CFG_SPIMCTRL_OFFSET : integer := 16#50000#; + +.. SPIMCTRL will add 0x50000 to the AMBA address. We now create a +S-REC file where we add this offset to our data. There are several +tools that allow us to do this (including search and replace in a text +editor) here we use srec_cat to create prom_off.srec: + +user@host$ srec_cat prom.srec -offset 0x50000 -o prom_off.srec +user@host$ srec_info prom.srec +Format: Motorola S-Record +Header: "prom.srec" +Execution Start Address: 00000000 +Data: 0000 - 022F +user@host$ srec_info prom_off.srec +Format: Motorola S-Record +Header: "prom.srec" +Execution Start Address: 00050000 +Data: 050000 - 05022F +user@host$ + +We then use GRMON2 to load the S-REC. First we check that our Flash device does not +contain data at (AMBA) address 0x0: + +grmon2> mem 0 + 0x00000000 ffffffff ffffffff ffffffff ffffffff ................ + 0x00000010 ffffffff ffffffff ffffffff ffffffff ................ + 0x00000020 ffffffff ffffffff ffffffff ffffffff ................ + 0x00000030 ffffffff ffffffff ffffffff ffffffff ................ + +If all data is not 0xff at this address then either there is +configuration data at the specified offset (and the design can be +synthesized with a larger offset), or the Flash has previously been +programmed with application data. + +If the Flash is erased (all 0xFF) we can proceed with loading our S-REC: + +grmon2> spim flash detect + Got manufacturer ID 0x20 and Device ID 0x2015 + No device match for READ ID instruction, trying RES instruction.. + Found matching device: ST/Numonyx M25P16 + +grmon2> spim flash load prom_off.srec + 00050000 prom.srec 1.4kB / 1.4kB [===============>] 100% + Total size: 560B (1.52kbit/s) + Entry point 0x50000 + Image prom_off.srec loaded + +The data has been loaded and is available at address 0x0: + +grmon2> mem 0 + 0x00000000 81d82000 03000004 821060e0 81884000 .. .......`...@. + 0x00000010 81900000 81980000 81800000 a1800000 ................ + 0x00000020 01000000 03002040 8210600f c2a00040 ...... @..`....@ + 0x00000030 84100000 01000000 01000000 01000000 ................ + +grmon2> + +The "verify" command in GRMON performs normal memory accesses. Using +this command we can check that what the processor will see matches +what we have in the (unmodified) prom.srec: + +grmon2> verify prom.srec + 00000000 prom.srec 1.5kB / 1.5kB [===============>] 100% + Total size: 560B (10.64kbit/s) + Entry point 0x0 + Image of prom.srec verified without errors + +grmon2> + +The flash can be cleared using the GRMON command "spim flash erase". +Note that this will erase the entire Flash device, including the FPGA +configuration bitstream. + +For simulation, the spi_flash simulation Model in testbench.vhd knows +about the offset and will subtract the offset value before accessing +its internal memory array. To illustrate: + +1. Processor AMBA address -> SPIMCTRL +2. SPIMCTRL creates Flash address = Amba address + CFG_SPIMCTRL_OFFSET + and sends to spi_flash +3. spi_flash calculates: Memory array address = Flash address-CFG_SPIMCTRL_OFFSET = AMBA address +4. spi_flash returns data, which is prom.srec[AMBA address] 2. Simulation -------------- @@ -228,8 +331,8 @@ Celsius. 6. SPI SD Card interface ---------------- -The design can be configured to include a SPIMCTRL core that is -connected to the SD card slot. The SPIMCTRL core allows reading from +The design can be modified to include a SPIMCTRL core that is +connected to the SD card slot. The SPIMCTRL core allows reading from a SD card without software support. This means that the SD card can be used as a boot PROM if a PROM file is written in raw mode directly to the start of card. @@ -246,11 +349,12 @@ support. If the design is configured to include more than one SPI controller, the second SPI controller will be connected to the SD card slot. -If more than one SPICTRL core is included in the design, the SPI -memory controller (SPIMCTRL) core must be disabled. - -Also note that the SPIMCTRL core cannot be enabled if the on-chip AHB -ROM is enabled. +In the current version of this design the SPIMCTRL connected to the +SD card has been commented out. To interface with the SD card either: +1) Enable both SPICTRL cores and use the second core to communicate +with the SD card, or +2) Modify leon3mp.vhd and include the instantiations of the, now +commented out, SPIMCTRL core connected to the SD card signals. 7. Ethernet interface --------------------- diff --git a/designs/leon3-arrow-bemicro-sdk/ahbrom.vhd b/designs/leon3-arrow-bemicro-sdk/ahbrom.vhd index 2918f22a..bcde6e8e 100644 --- a/designs/leon3-arrow-bemicro-sdk/ahbrom.vhd +++ b/designs/leon3-arrow-bemicro-sdk/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-arrow-bemicro-sdk/config.help b/designs/leon3-arrow-bemicro-sdk/config.help index 17521b90..a707eb59 100644 --- a/designs/leon3-arrow-bemicro-sdk/config.help +++ b/designs/leon3-arrow-bemicro-sdk/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ @@ -752,7 +785,7 @@ CONFIG_SPIMCTRL_SDCARD Read command CONFIG_SPIMCTRL_READCMD - Read instruction for SPI memory device + Read instruction for SPI memory device (hex). Dummy byte CONFIG_SPIMCTRL_DUMMYBYTE @@ -762,6 +795,10 @@ Dual output CONFIG_SPIMCTRL_DUALOUTPUT Memory device supports dual output when reading data. +Address offset +CONFIG_SPIMCTRL_OFFSET + Offset that will be added by core on SPI memory address (hex). + Clock scaler CONFIG_SPIMCTRL_SCALER Selects the divisor used when dividing the system clock to produce diff --git a/designs/leon3-arrow-bemicro-sdk/config.vhd b/designs/leon3-arrow-bemicro-sdk/config.vhd index 4413885f..048a2e28 100644 --- a/designs/leon3-arrow-bemicro-sdk/config.vhd +++ b/designs/leon3-arrow-bemicro-sdk/config.vhd @@ -111,20 +111,21 @@ package config is constant CFG_DDRSP_SIZE : integer := (8); constant CFG_DDRSP_RSKEW : integer := (0); -- SPI memory controller - constant CFG_SPIMCTRL : integer := 0; + constant CFG_SPIMCTRL : integer := 1; constant CFG_SPIMCTRL_SDCARD : integer := 0; - constant CFG_SPIMCTRL_READCMD : integer := 16#0#; - constant CFG_SPIMCTRL_DUMMYBYTE : integer := 0; + constant CFG_SPIMCTRL_READCMD : integer := 16#0b#; + constant CFG_SPIMCTRL_DUMMYBYTE : integer := 1; constant CFG_SPIMCTRL_DUALOUTPUT : integer := 0; - constant CFG_SPIMCTRL_SCALER : integer := 1; - constant CFG_SPIMCTRL_ASCALER : integer := 1; - constant CFG_SPIMCTRL_PWRUPCNT : integer := 0; + constant CFG_SPIMCTRL_SCALER : integer := (1); + constant CFG_SPIMCTRL_ASCALER : integer := (2); + constant CFG_SPIMCTRL_PWRUPCNT : integer := (0); + constant CFG_SPIMCTRL_OFFSET : integer := 16#50000#; -- AHB ROM - constant CFG_AHBROMEN : integer := 1; + constant CFG_AHBROMEN : integer := 0; constant CFG_AHBROPIP : integer := 0; constant CFG_AHBRODDR : integer := 16#000#; - constant CFG_ROMADDR : integer := 16#100#; - constant CFG_ROMMASK : integer := 16#E00# + 16#100#; + constant CFG_ROMADDR : integer := 16#000#; + constant CFG_ROMMASK : integer := 16#E00# + 16#000#; -- AHB RAM constant CFG_AHBRAMEN : integer := 0; constant CFG_AHBRSZ : integer := 1; diff --git a/designs/leon3-arrow-bemicro-sdk/config.vhd.h b/designs/leon3-arrow-bemicro-sdk/config.vhd.h index de63922f..a106c636 100644 --- a/designs/leon3-arrow-bemicro-sdk/config.vhd.h +++ b/designs/leon3-arrow-bemicro-sdk/config.vhd.h @@ -113,6 +113,7 @@ constant CFG_SPIMCTRL_SCALER : integer := CONFIG_SPIMCTRL_SCALER; constant CFG_SPIMCTRL_ASCALER : integer := CONFIG_SPIMCTRL_ASCALER; constant CFG_SPIMCTRL_PWRUPCNT : integer := CONFIG_SPIMCTRL_PWRUPCNT; + constant CFG_SPIMCTRL_OFFSET : integer := 16#CONFIG_SPIMCTRL_OFFSET#; -- AHB ROM constant CFG_AHBROMEN : integer := CONFIG_AHBROM_ENABLE; diff --git a/designs/leon3-arrow-bemicro-sdk/lconfig.tk b/designs/leon3-arrow-bemicro-sdk/lconfig.tk index 594f8d4a..ad64301c 100755 --- a/designs/leon3-arrow-bemicro-sdk/lconfig.tk +++ b/designs/leon3-arrow-bemicro-sdk/lconfig.tk @@ -754,7 +754,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -764,7 +765,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -907,8 +910,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -927,6 +932,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1016,9 +1025,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1072,10 +1082,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1121,14 +1132,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1201,13 +1214,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1247,22 +1268,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1319,21 +1608,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1380,36 +1669,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1417,48 +1707,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1514,27 +1805,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1575,16 +1866,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1593,34 +1885,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1677,92 +1970,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1770,18 +2063,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1822,52 +2115,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1875,162 +2169,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2086,45 +2381,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2164,18 +2461,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2183,55 +2481,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2288,24 +2591,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2345,17 +2648,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2363,37 +2667,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2449,16 +2754,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2506,9 +2818,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2530,21 +2840,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2853,14 +3168,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2934,17 +3249,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3358,9 +3673,10 @@ proc menu16 {w title} { hex $w.config.f 16 2 "Read instruction " CONFIG_SPIMCTRL_READCMD bool $w.config.f 16 3 "Read instruction requires dummy byte " CONFIG_SPIMCTRL_DUMMYBYTE bool $w.config.f 16 4 "Enable dual output for reads " CONFIG_SPIMCTRL_DUALOUTPUT - int $w.config.f 16 5 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER - int $w.config.f 16 6 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER - int $w.config.f 16 7 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT + hex $w.config.f 16 5 "Address offset " CONFIG_SPIMCTRL_OFFSET + int $w.config.f 16 6 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER + int $w.config.f 16 7 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER + int $w.config.f 16 8 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT @@ -3410,12 +3726,14 @@ proc update_menu16 {} { global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { configure_entry .menu16.config.f.x4 normal {n l y}} else {configure_entry .menu16.config.f.x4 disabled {y n l}} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {.menu16.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x5.l configure -state normal; } else {.menu16.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x5.l configure -state disabled} global CONFIG_SPIMCTRL_SCALER - if {($CONFIG_SPIMCTRL == 1)} then {.menu16.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x5.l configure -state normal; } else {.menu16.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x5.l configure -state disabled} - global CONFIG_SPIMCTRL_ASCALER if {($CONFIG_SPIMCTRL == 1)} then {.menu16.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x6.l configure -state normal; } else {.menu16.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x6.l configure -state disabled} - global CONFIG_SPIMCTRL_PWRUPCNT + global CONFIG_SPIMCTRL_ASCALER if {($CONFIG_SPIMCTRL == 1)} then {.menu16.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x7.l configure -state normal; } else {.menu16.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x7.l configure -state disabled} + global CONFIG_SPIMCTRL_PWRUPCNT + if {($CONFIG_SPIMCTRL == 1)} then {.menu16.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x8.l configure -state normal; } else {.menu16.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x8.l configure -state disabled} } @@ -3434,6 +3752,8 @@ proc update_define_menu16 {} { global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT&15]} else {set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT|16]} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {validate_hex CONFIG_SPIMCTRL_OFFSET "$CONFIG_SPIMCTRL_OFFSET" 0} global CONFIG_SPIMCTRL_SCALER if {($CONFIG_SPIMCTRL == 1)} then {validate_int CONFIG_SPIMCTRL_SCALER "$CONFIG_SPIMCTRL_SCALER" 1} global CONFIG_SPIMCTRL_ASCALER @@ -3498,16 +3818,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3569,21 +3889,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3643,14 +3963,14 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 18 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3704,17 +4024,17 @@ proc update_define_menu18 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3770,15 +4090,15 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 19 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 19 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3867,19 +4187,19 @@ proc update_menu19 {} { proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -3973,12 +4293,12 @@ proc menu20 {w title} { bool $w.config.f 20 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN int $w.config.f 20 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN bool $w.config.f 20 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM - global tmpvar_30 - minimenu $w.config.f 20 11 "Fault-tolerance" tmpvar_30 CONFIG_SPICTRL_NOFT + global tmpvar_32 + minimenu $w.config.f 20 11 "Fault-tolerance" tmpvar_32 CONFIG_SPICTRL_NOFT menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" - $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_30 -value "None" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_30 -value "Parity-DMR" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_30 -value "TMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_32 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_32 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_32 -value "TMR" -command "update_active" menusplit $w $w.config.f.x11.x.menu 3 @@ -4078,13 +4398,13 @@ proc update_define_menu20 {} { global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} - global tmpvar_30 + global tmpvar_32 global CONFIG_SPICTRL_NOFT - if {$tmpvar_30 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + if {$tmpvar_32 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} global CONFIG_SPICTRL_DMRFT - if {$tmpvar_30 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + if {$tmpvar_32 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} global CONFIG_SPICTRL_TMRFT - if {$tmpvar_30 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} + if {$tmpvar_32 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } @@ -4226,7 +4546,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4236,6 +4557,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4260,6 +4583,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4272,14 +4596,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4292,27 +4621,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4322,17 +4651,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4344,12 +4673,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4359,10 +4688,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4373,7 +4702,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4385,26 +4714,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4412,27 +4743,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4453,7 +4788,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4476,6 +4811,7 @@ set CONFIG_SPIMCTRL_SDCARD 0 set CONFIG_SPIMCTRL_READCMD 0B set CONFIG_SPIMCTRL_DUMMYBYTE 0 set CONFIG_SPIMCTRL_DUALOUTPUT 0 +set CONFIG_SPIMCTRL_OFFSET 0 set CONFIG_SPIMCTRL_SCALER 1 set CONFIG_SPIMCTRL_ASCALER 8 set CONFIG_SPIMCTRL_PWRUPCNT 0 @@ -4483,7 +4819,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4494,14 +4830,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4533,7 +4869,7 @@ set CONFIG_SPICTRL_ODMODE 0 set CONFIG_SPICTRL_TWEN 0 set CONFIG_SPICTRL_MAXWLEN 0 set CONFIG_SPICTRL_SYNCRAM 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_SPICTRL_NOFT 0 set CONFIG_SPICTRL_DMRFT 0 set CONFIG_SPICTRL_TMRFT 0 @@ -4593,7 +4929,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4603,6 +4940,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4641,6 +4980,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4653,9 +4993,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4669,239 +5010,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4946,13 +5437,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -4998,6 +5489,8 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUMMYBYTE $CONFIG_SPIMCTRL_DUMMYBYTE [list $notmod] 2 } global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUALOUTPUT $CONFIG_SPIMCTRL_DUALOUTPUT [list $notmod] 2 } + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_hex $cfg $autocfg CONFIG_SPIMCTRL_OFFSET $CONFIG_SPIMCTRL_OFFSET $notmod } global CONFIG_SPIMCTRL_SCALER if {($CONFIG_SPIMCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SPIMCTRL_SCALER $CONFIG_SPIMCTRL_SCALER $notmod } global CONFIG_SPIMCTRL_ASCALER @@ -5013,38 +5506,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5096,11 +5589,11 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } - global tmpvar_30 + global tmpvar_32 if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { - if { $tmpvar_30 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } - if { $tmpvar_30 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } - if { $tmpvar_30 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} + if { $tmpvar_32 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -5145,7 +5638,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5155,6 +5649,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5173,8 +5669,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5257,11 +5758,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5282,6 +5785,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5384,8 +5891,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5404,6 +5913,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5444,332 +5957,358 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } - global tmpvar_30 - set tmpvar_30 "None" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } + global tmpvar_32 + set tmpvar_32 "None" global CONFIG_SPICTRL_NOFT - if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_30 "None" } + if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_32 "None" } global CONFIG_SPICTRL_DMRFT - if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_30 "Parity-DMR" } + if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_32 "Parity-DMR" } global CONFIG_SPICTRL_TMRFT - if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_30 "TMR" } + if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_32 "TMR" } } diff --git a/designs/leon3-arrow-bemicro-sdk/leon3mp.vhd b/designs/leon3-arrow-bemicro-sdk/leon3mp.vhd index 813f0a4f..34bae86d 100644 --- a/designs/leon3-arrow-bemicro-sdk/leon3mp.vhd +++ b/designs/leon3-arrow-bemicro-sdk/leon3mp.vhd @@ -1,10 +1,10 @@ ------------------------------------------------------------------------------ -- LEON3 Demonstration design --- Copyright (C) 2011 Jan Andersson, Aeroflex Gaisler +-- Copyright (C) 2011 - 2012 Jan Andersson, Aeroflex Gaisler ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -110,7 +110,13 @@ entity leon3mp is sd_dat2 : inout std_logic; sd_dat3 : inout std_logic; sd_cmd : inout std_logic; - sd_clk : inout std_logic + sd_clk : inout std_logic; + + -- EPCS + epcs_data : in std_ulogic; + epcs_dclk : out std_ulogic; + epcs_csn : out std_ulogic; + epcs_asdi : out std_ulogic -- Expansion connector on card edge (set as reserved in design's QSF) --reset_exp_n : out std_logic; @@ -456,7 +462,7 @@ begin generic map ( hindex => 4, hirq => 9, - faddr => 16#b00#, + faddr => 16#000#, fmask => 16#f00#, ioaddr => 16#002#, iomask => 16#fff#, @@ -468,7 +474,8 @@ begin dualoutput => CFG_SPIMCTRL_DUALOUTPUT, scaler => CFG_SPIMCTRL_SCALER, altscaler => CFG_SPIMCTRL_ASCALER, - pwrupcnt => CFG_SPIMCTRL_PWRUPCNT) + pwrupcnt => CFG_SPIMCTRL_PWRUPCNT, + offset => CFG_SPIMCTRL_OFFSET) port map ( rstn => rstn, clk => clkm, @@ -476,34 +483,20 @@ begin ahbso => ahbso(4), spii => spmi, spio => spmo); - - miso_pad : inpad generic map (tech => padtech) - port map (sd_dat0, spmi.miso); - mosi_pad : outpad generic map (tech => padtech) - port map (sd_cmd, spmo.mosi); - sck_pad : outpad generic map (tech => padtech) - port map (sd_clk, spmo.sck); - slvsel0_pad : iopad generic map (tech => padtech) - port map (sd_dat3, spmo.csn, spmo.cdcsnoen, spmi.cd); end generate; + epcs_miso_pad : inpad generic map (tech => padtech) + port map (epcs_data, spmi.miso); + epcs_mosi_pad : outpad generic map (tech => padtech) + port map (epcs_asdi, spmo.mosi); + epcs_sck_pad : outpad generic map (tech => padtech) + port map (epcs_dclk, spmo.sck); + epcs_slvsel0_pad : outpad generic map (tech => padtech) + port map (epcs_csn, spmo.csn); + nospimc : if CFG_SPIMCTRL /= 1 or CFG_AHBROMEN /= 0 generate - spmo.mosi <= '0'; - spmo.mosioen <= '1'; - spmo.sck <= '0'; - spmo.csn <= '1'; - spmo.cdcsnoen <= '1'; - spmo.errorn <= '0'; - spmo.ready <= '0'; - spmo.initialized <= '0'; + spmo <= spimctrl_out_none; end generate; - - -- sd_dat1 and sd_dat2 are unused - unuseddat1_pad : iopad generic map (tech => padtech) - port map (sd_dat1, gnd(0), vcc(1), open); - unuseddat2_pad : iopad generic map (tech => padtech) - port map (sd_dat2, gnd(0), vcc(1), open); - ---------------------------------------------------------------------- --- APB Bridge and various periherals ------------------------------- @@ -714,6 +707,64 @@ begin slvsel2(0) <= '0'; end generate; + -- SPI Memory Controller + -- Example on how to connect SPI memory controller to SD card. If you want to + -- use this then you need to disable the second SPICTRL core's connections to + -- the same top-level signals above. + --spimc: if false generate + -- spimctrl0 : spimctrl + -- generic map ( + -- hindex => 4, + -- hirq => 9, + -- faddr => 16#b00#, + -- fmask => 16#f00#, + -- ioaddr => 16#002#, + -- iomask => 16#fff#, + -- spliten => CFG_SPLIT, + -- oepol => 0, + -- sdcard => CFG_SPIMCTRL_SDCARD, + -- readcmd => CFG_SPIMCTRL_READCMD, + -- dummybyte => CFG_SPIMCTRL_DUMMYBYTE, + -- dualoutput => CFG_SPIMCTRL_DUALOUTPUT, + -- scaler => CFG_SPIMCTRL_SCALER, + -- altscaler => CFG_SPIMCTRL_ASCALER, + -- pwrupcnt => CFG_SPIMCTRL_PWRUPCNT) + -- port map ( + -- rstn => rstn, + -- clk => clkm, + -- ahbsi => ahbsi, + -- ahbso => ahbso(4), + -- spii => spmi, + -- spio => spmo); + + -- miso_pad : inpad generic map (tech => padtech) + -- port map (sd_dat0, spmi.miso); + -- mosi_pad : outpad generic map (tech => padtech) + -- port map (sd_cmd, spmo.mosi); + -- sck_pad : outpad generic map (tech => padtech) + -- port map (sd_clk, spmo.sck); + -- slvsel0_pad : iopad generic map (tech => padtech) + -- port map (sd_dat3, spmo.csn, spmo.cdcsnoen, spmi.cd); + --end generate; + + --nospimc : if false generate + -- spmo.mosi <= '0'; + -- spmo.mosioen <= '1'; + -- spmo.sck <= '0'; + -- spmo.csn <= '1'; + -- spmo.cdcsnoen <= '1'; + -- spmo.errorn <= '0'; + -- spmo.ready <= '0'; + -- spmo.initialized <= '0'; + --end generate; + + + -- sd_dat1 and sd_dat2 are unused + unuseddat1_pad : iopad generic map (tech => padtech) + port map (sd_dat1, gnd(0), vcc(1), open); + unuseddat2_pad : iopad generic map (tech => padtech) + port map (sd_dat2, gnd(0), vcc(1), open); + ----------------------------------------------------------------------- --- ETHERNET --------------------------------------------------------- ----------------------------------------------------------------------- diff --git a/designs/leon3-arrow-bemicro-sdk/prom.h b/designs/leon3-arrow-bemicro-sdk/prom.h index e77f328f..93c848d9 100644 --- a/designs/leon3-arrow-bemicro-sdk/prom.h +++ b/designs/leon3-arrow-bemicro-sdk/prom.h @@ -8,5 +8,4 @@ #define IRQCTRL 0x80000200 #define RAMSTART 0x40000000 #define RAMSIZE 0x00100000 -#define STACKSIZE 0x00002000 diff --git a/designs/leon3-arrow-bemicro-sdk/prom.srec b/designs/leon3-arrow-bemicro-sdk/prom.srec index a35eb290..e310fd4d 100755 --- a/designs/leon3-arrow-bemicro-sdk/prom.srec +++ b/designs/leon3-arrow-bemicro-sdk/prom.srec @@ -29,7 +29,7 @@ S11301A00539A8038410A261C4206004050003FC7F S11301B0C420600882103860C40040008530A00C60 S11301C0030000048210600980A04002128000062F S11301D0033FFC00821061000539A81B8410A26053 -S11301E0C4204000050000088210000080A0E00048 +S11301E0C4204000050000808210000080A0E000D0 S11301F002800005010000008200400210BFFFFCE5 S11302008620E0013D1003FFBC17A3E0BC2780015A S11302109C27A0600310000081C040000100000082 diff --git a/designs/leon3-arrow-bemicro-sdk/sdram.srec b/designs/leon3-arrow-bemicro-sdk/sdram.srec index 657df588..d7093aa9 100755 --- a/designs/leon3-arrow-bemicro-sdk/sdram.srec +++ b/designs/leon3-arrow-bemicro-sdk/sdram.srec @@ -1,14 +1,14 @@ S00D0000736472616D2E7372656300 S31540000000881000000910007281C123F4010000002D -S31540000010A1480000A75000001080203DAC102001F0 +S31540000010A1480000A75000001080203EAC102001EF S3154000002091D0200001000000010000000100000006 S3154000003091D02000010000000100000001000000F6 S31540000040A14800002910007281C5232C0100000040 -S31540000050A14800002910007081C52250010000000F -S31540000060A14800002910007081C522BC0100000093 +S31540000050A14800002910007081C5226801000000F7 +S31540000060A14800002910007081C522D4010000007B S3154000007091D02000010000000100000001000000B6 S3154000008091D02000010000000100000001000000A6 -S31540000090A1480000A75000001080201DAC10200988 +S31540000090A1480000A75000001080201EAC10200987 S315400000A091D0200001000000010000000100000086 S315400000B091D0200001000000010000000100000076 S315400000C091D0200001000000010000000100000066 @@ -16,21 +16,21 @@ S315400000D091D0200001000000010000000100000056 S315400000E091D0200001000000010000000100000046 S315400000F091D0200001000000010000000100000036 S3154000010091D0200001000000010000000100000025 -S31540000110AE102001A148000010807115A7500000C4 -S31540000120AE102002A148000010807111A7500000B7 -S31540000130AE102003A14800001080710DA7500000AA -S31540000140AE102004A148000010807109A75000009D -S31540000150AE102005A148000010807105A750000090 -S31540000160AE102006A148000010807101A750000083 -S31540000170AE102007A1480000108070FDA750000077 -S31540000180AE102008A1480000108070F9A75000006A -S31540000190AE102009A1480000108070F5A75000005D -S315400001A0AE10200AA1480000108070F1A750000050 -S315400001B0AE10200BA1480000108070EDA750000043 -S315400001C0AE10200CA1480000108070E9A750000036 -S315400001D0AE10200DA1480000108070E5A750000029 -S315400001E0AE10200EA1480000108070E1A75000001C -S315400001F0AE10200FA1480000108070DDA75000000F +S31540000110AE102001A14800001080711BA7500000BE +S31540000120AE102002A148000010807117A7500000B1 +S31540000130AE102003A148000010807113A7500000A4 +S31540000140AE102004A14800001080710FA750000097 +S31540000150AE102005A14800001080710BA75000008A +S31540000160AE102006A148000010807107A75000007D +S31540000170AE102007A148000010807103A750000070 +S31540000180AE102008A1480000108070FFA750000064 +S31540000190AE102009A1480000108070FBA750000057 +S315400001A0AE10200AA1480000108070F7A75000004A +S315400001B0AE10200BA1480000108070F3A75000003D +S315400001C0AE10200CA1480000108070EFA750000030 +S315400001D0AE10200DA1480000108070EBA750000023 +S315400001E0AE10200EA1480000108070E7A750000016 +S315400001F0AE10200FA1480000108070E3A750000009 S3154000020091D0200001000000010000000100000024 S3154000021091D0200001000000010000000100000014 S3154000022091D0200001000000010000000100000004 @@ -129,10 +129,10 @@ S315400007E091D020000100000001000000010000003F S315400007F091D020000100000001000000010000002F S3154000080091D020000100000001000000010000001E S3154000081091D020000100000001000000010000000E -S31540000820A14800002910007181C5209001000000F8 -S31540000830A148000010806EBBA750000001000000D8 +S31540000820A14800002910007181C520A801000000E0 +S31540000830A148000010806EC1A750000001000000D2 S3154000084091D02000010000000100000001000000DE -S31540000850A14800002910007181C5207401000000E4 +S31540000850A14800002910007181C5208C01000000CC S3154000086091D02000010000000100000001000000BE S3154000087091D02000010000000100000001000000AE S3154000088091D020000100000001000000010000009E @@ -255,132 +255,132 @@ S31540000FC091D0200001000000010000000100000057 S31540000FD091D0200001000000010000000100000047 S31540000FE091D0200001000000010000000100000037 S31540000FF091D0200001000000010000000100000027 -S315400010009DE3BFC0051001438410A0600710014452 +S315400010009DE3BFC0051001238410A0600710012492 S315400010108610E1B8821000008620C00286A0E00853 -S3154000102036BFFFFFC038800311100144901221B82B -S31540001030C022000040006D480100000040006D489D -S315400010400100000040006EFA01000000111000741B -S315400010509012213040006848010000004000702E88 -S3154000106001000000400000430100000040006E25E2 -S315400010700100000081C7E00881E800009DE3BF98B9 -S3154000108023100143C20C606080A0600012800015EE -S315400010902110008010800005C204200C9FC3400030 -S315400010A0C224200CC204200CDA00400080A3600059 -S315400010B012BFFFFB82006004030000008210600044 -S315400010C080A060000280000682102001111000748A -S315400010D06FFFFBCC901220C082102001C22C6060B2 -S315400010E081C7E00881E800009DE3BF9881C7E0081A -S315400010F081E800009DE3BF98030000008210600075 -S31540001100111000741310014380A06000901220C09B -S3154000111002800004921260646FFFFBBA0100000077 -S315400011201B100144C20361B880A060000280000920 -S31540001130B01361B8030000008210600080A0600018 -S3154000114002800004010000006FFFFBAE81E8000052 -S315400011500100000081C7E00881E800009DE3BF98D8 -S3154000116081C7E00881E8000081C3E0080100000073 -S315400011709DE3BF984000000F212000014000014E32 -S3154000118001000000921020014000417D1120000125 -S31540001190921020024000417A9014210040003C27E2 -S315400011A0901422004000000E81E80000010000007B -S315400011B09DE3BF98400000290100000080A2200066 -S315400011C01280000503100080D80060109A1020019C -S315400011D0DA23201081C7E00891E820000310008040 -S315400011E0D80060109A102001DA23201481C3E00849 -S315400011F09010200003100080DA006010D0234000D9 -S3154000120081C3E0089010200003100080DA006010CF -S31540001210D023600881C3E0089010200003100080AE -S31540001220DA006010D023600481C3E00890102000EB -S3154000123013100080921260149010200081C3E008C1 -S31540001240D0EA4020901020001310008092126014C3 -S3154000125081C3E008D0224000914440009132201CD6 -S3154000126081C3E008900A200F81C3E008D0820020A5 -S315400012709010200C81C3E008D08200408210000804 -S3154000128080A20009148000039022000990224001A8 -S3154000129081C3E00801000000932A60028210200109 -S315400012A0C22200099810200080A3000A1680000A76 -S315400012B096102001832B2002DA02000180A0000D47 -S315400012C0826020009803200180A3000A06BFFFFA2F -S315400012D0960AC00180A2E00002BFFFF498102000E9 -S315400012E081C3E008010000009DE3BF98C2062010BC -S315400012F08330601CA0100018A400600180A4A001E7 -S315400013000280006CB0103FFF7FFFFFD40100000059 -S31540001310AA100008912A20047FFFFFBC90022007F4 -S315400013207FFFFFD40100000003020000808A000115 -S315400013300280005C010000009A05600182102001D5 -S315400013408328400D11100080C2242010901220A046 -S31540001350921000157FFFFFD19410001203100080F9 -S3154000136082106018A12D6002C0204010DA004010A3 -S31540001370A610000180A36009291001431480002BA8 -S31540001380AC1000017FFFFFAB0100000080A22000EF -S3154000139012BFFFFD01000000B010200080A6001221 -S315400013A0168000140100000010800005A2100016EF -S315400013B080A600121680000F01000000832E200236 -S315400013C0D0044010D20440017FFFFFADB00620019B -S315400013D080A2200104BFFFF7901020027FFFFF90FC -S315400013E00100000080A6001206BFFFF6832E2002F1 -S315400013F0C205207C82006001C225207C7FFFFF92CF -S3154000140001000000C204C01082006001C224C01066 -S31540001410DA04C01080A3600904BFFFDB111000800E -S31540001420108000049012205C111000809012205C05 -S31540001430921000157FFFFF9994100012832CA00292 -S3154000144082004012A0004001DA05207C80A4000DF5 -S3154000145002800004231001437FFFFF719010200398 -S31540001460C204607C80A06000048000060100000089 -S31540001470C204607C80A400011680000580A560003F -S315400014807FFFFF679010200380A56000228000093F -S31540001490B010200091D0200010800006B01020002F -S315400014A07FFFFF5F9010200110BFFFA59A056001E6 -S315400014B081C7E00881E800009DE3BF98C20620107E -S315400014C0A01000188330601C80A0600002800009D4 -S315400014D0B0103FFF7FFFFF610100000080A22000A7 -S315400014E0128000040300003F821063FFC2242010D4 -S315400014F081C7E00881E800009DE3BF98C20620103E -S315400015008330601CA400600180A4A00102800068B2 -S31540001510B0103FFF7FFFFF5101000000AA100008F6 -S31540001520912A20047FFFFF39900220077FFFFF5159 -S315400015300100000003020000808A0001028000587A -S315400015400100000011100080901220A0921000159A -S315400015507FFFFF5294100012031000808210601823 -S31540001560A12D6002C0204010DA004010A6100001F4 -S3154000157080A36009291001431480002BAC100001A0 -S315400015807FFFFF2C0100000080A2200012BFFFFD5C -S3154000159001000000B010200080A600121680001442 -S315400015A00100000010800005A210001680A600125F -S315400015B01680000F01000000832E2002D004401048 -S315400015C0D20440017FFFFF2EB006200180A22001F9 -S315400015D004BFFFF7901020027FFFFF1101000000BB -S315400015E080A6001206BFFFF6832E2002C205207C8D -S315400015F082006001C225207C7FFFFF1301000000AE -S31540001600C204C01082006001C224C010DA04C010B7 -S3154000161080A3600904BFFFDB111000801080000426 -S315400016209012205C111000809012205C92100015E0 -S315400016307FFFFF1A94100012832CA00282004012F2 -S31540001640A0004001DA05207C80A4000D0280000441 -S31540001650231001437FFFFEF290102003C204607CFA -S3154000166080A060000480000601000000C204607C87 -S3154000167080A400011680000580A560007FFFFEE87B -S315400016809010200380A5600022800009B010200041 -S3154000169091D0200010800006B01020007FFFFEE0B1 -S315400016A09010200110BFFFA91110008081C7E008EB -S315400016B081E800009DE3BF98312000009216220089 -S315400016C09410200040004535901020014000423ED5 -S315400016D090162200901623004000459A921020084A -S315400016E0B01621004000412B81E8000001000000B7 -S315400016F09DE3BF9821200000921422009410200000 -S3154000170040004526901020014000422F90142200B0 -S31540001710921000184000458B90142300B01421000D -S315400017204000411C81E8000001000000000000006C -S315400017300000000000000000000000000000000063 -S315400017400000000000000000000000000000000053 -S315400017500000000000000000000000000000000043 -S315400017600000000000000000000000000000000033 -S315400017700000000000000000000000000000000023 -S315400017800000000000000000000000000000000013 -S315400017900000000000000000000000000000000003 -S315400017A000000000000000000000000000000000F3 -S315400017B000000000000000000000000000000000E3 -S315400017C000000000000000000000000000000000D3 -S315400017D000000000000000000000000000000000C3 +S3154000102036BFFFFFC038800311100124901221B84B +S31540001030C022000040006D4E0100000040006D4E91 +S315400010400100000040006EFA010000001110007619 +S31540001050901221FC400068F30100000040007261DC +S31540001060010000004000004F0100000040006E2BD0 +S315400010700100000081C7E00881E800009DE3BFA0B1 +S3154000108021100123C20C206080A060001280002243 +S3154000109023100123C20460642710007625100076D1 +S315400010A0A614E164A414A168A4248013A53CA0025C +S315400010B0A404BFFF80A040123A80000E0300000047 +S315400010C0A21460648200600185286002C224400048 +S315400010D0C204C0029FC0400001000000C20440009C +S315400010E080A040120ABFFFF98200600103000000A1 +S315400010F08210600080A060000280000682102001FD +S31540001100111000746FFFFBBF901220A082102001C7 +S31540001110C22C206081C7E00881E800009DE3BFA0A3 +S3154000112081C7E00881E800009DE3BFA003000000FE +S315400011308210600080A06000228000081110012407 +S315400011401110007413100123901220A06FFFFBAD05 +S315400011509212606811100124C20221B880A060007A +S3154000116002800009901221B803000000821060003E +S3154000117080A0600002800004010000009FC0400083 +S315400011800100000081C7E00881E800009DE3BFA0A0 +S3154000119081C7E00881E8000081C3E0080100000043 +S315400011A09DE3BFA04000002B212000014000017CB0 +S315400011B001000000921020014000416F1120000103 +S315400011C0921020024000416C9014210040003C1FC8 +S315400011D0901422004000000381E800000100000056 +S315400011E003100080C200601084102001901020007F +S315400011F0C420601481C3E008010000000310008091 +S31540001200C20060108410000890102000C4204000E6 +S3154000121081C3E0080100000003100080C200601096 +S315400012208410000890102000C420600881C3E008A4 +S315400012300100000003100080C20060108410000806 +S3154000124090102000C420600481C3E0080100000023 +S315400012509DE3BFA0400000140100000080A22000D2 +S315400012601280000503100080C20060108410200127 +S31540001270C420601081C7E00891E820001310008068 +S31540001280921260149010200081C3E008D0EA4020FA +S3154000129090102000131000809212601481C3E00861 +S315400012A0D0224000914440009132201C81C3E00886 +S315400012B0900A200F81C3E008D08200209010200CB5 +S315400012C081C3E008D08200409DE3BFA0C206201043 +S315400012D0A01000188330601C80A0600002800009C6 +S315400012E0B0103FFF7FFFFFF00100000080A220000A +S315400012F0128000040300003F821063FFC2242010C6 +S3154000130081C7E00881E800009DE3BFA0E406201005 +S31540001310A534A01CA404A00180A4A0010280003C26 +S31540001320B0103FFF7FFFFFE001000000AA10000859 +S31540001330912A20047FFFFFB9900220077FFFFFE03C +S315400013400100000003020000808A00010280007450 +S3154000135001000000A72D60020910008088112018A6 +S315400013608210200184102001C22100138210200027 +S3154000137080A48001148000098728600280A0A00014 +S3154000138012800025821020008410200180A4800154 +S3154000139004BFFFFB87286002C601000380A000034C +S315400013A0820060018660200010BFFFF2840880033F +S315400013B0C205A080852CA003A12CA001A004000298 +S315400013C080A4000102800004010000007FFFFF9A14 +S315400013D090102003C205A08080A060000480000613 +S315400013E003100123C200608080A40001168000051E +S315400013F080A560007FFFFF909010200380A56000CD +S3154000140002800003B010200091D0200081C7E00880 +S3154000141081E8000023100080A21460A02D10012353 +S31540001420C0244013C204401380A0600914800027E2 +S3154000143009100080A815A0807FFFFF9101000000E1 +S3154000144080A2200012BFFFFD80A4A00004800013EC +S3154000145001000000A0102000C4044013832C200289 +S31540001460C204400180A08001A00420010480000342 +S31540001470862040028620800180A0E001048000058D +S3154000148080A480107FFFFF6C9010200280A4801003 +S3154000149014BFFFF201000000C20500008200600197 +S315400014A0C22500007FFFFF7B01000000C2044013FD +S315400014B082006001C2244013C204401380A0600928 +S315400014C004BFFFDE091000808811205C82102001D5 +S315400014D084102001C22100138210200080A48001C4 +S315400014E0148000098728600280A0A00012BFFFB1C7 +S315400014F0821020008410200180A4800104BFFFFBDD +S3154000150087286002C601000380A0000382006001B4 +S315400015108660200010BFFFF2840880037FFFFF46ED +S315400015209010200110BFFF8DA72D60029DE3BFA044 +S31540001530E4062010A0100018A534A01CA404A001A5 +S3154000154080A4A0010280003FB0103FFF7FFFFF56FE +S3154000155001000000AA100008912A20047FFFFF2FF7 +S31540001560900220077FFFFF560100000003020000A3 +S31540001570808A00010280007701000000A72D6002EA +S31540001580091000808811201882102001840560010E +S3154000159085284002C4242010C22100138410200153 +S315400015A08210200080A480011480000987286002F0 +S315400015B080A0A00012800025821020008410200107 +S315400015C080A4800104BFFFFB87286002C601000398 +S315400015D080A00003820060018660200010BFFFF2F9 +S315400015E084088003C205A080852CA003A12CA001FD +S315400015F0A004000280A40001028000040100000053 +S315400016007FFFFF0D90102003C205A08080A06000E0 +S315400016100480000603100123C200608080A40001FC +S315400016201680000580A560007FFFFF039010200311 +S3154000163080A5600002800003B010200091D02000F9 +S3154000164081C7E00881E8000023100080A21460A052 +S315400016502D100123C0244013C204401380A060090A +S315400016601480002709100080A815A0807FFFFF0482 +S315400016700100000080A2200012BFFFFD80A4A00050 +S315400016800480001301000000A0102000C404401391 +S31540001690832C2002C204400180A08001A0042001C6 +S315400016A004800003862040028620800180A0E0015D +S315400016B00480000580A480107FFFFEDF901020028A +S315400016C080A4801014BFFFF201000000C205000094 +S315400016D082006001C22500007FFFFEEE010000008F +S315400016E0C204401382006001C2244013C204401366 +S315400016F080A0600904BFFFDE091000808811205CCD +S315400017008210200184102001C22100138210200083 +S3154000171080A48001148000098728600280A0A00070 +S3154000172012BFFFB1821020008410200180A48001E6 +S3154000173004BFFFFB87286002C601000380A00003A8 +S31540001740820060018660200010BFFFF2840880039B +S315400017507FFFFEB99010200110BFFF8AA72D6002BF +S315400017609DE3BFA021200000941020009214220087 +S315400017704000455190102001400044099014220039 +S31540001780921000184000459590142300B014210093 +S315400017904000414581E80000010000009DE3BFA0F4 +S315400017A0312000009410200092162200400045424D +S315400017B090102001400043FA901622009016230014 +S315400017C04000458692102008B01621004000413660 +S315400017D081E8000001000000000000000000000059 S315400017E000000000000000000000000000000000B3 S315400017F000000000000000000000000000000000A3 S315400018000000000000000000000000000000000092 @@ -2049,39 +2049,39 @@ S31540007FE0000000000000000000000000000000004B S31540007FF0000000000000000000000000000000003B S315400080009DE3BF9081C7E00881E8000003000010AF S31540008010C48000408088800112BFFFFE010000003E -S315400080209DE3BF909DE3BF909DE3BF909DE3BF90CE -S315400080309DE3BF909DE3BF9021044444A0142111C9 -S3154000804023088888A2146222250CCCCCA414A3331E -S3154000805027111111A614E04429155555A815215587 -S315400080602B199999AA1562662D1DDDDDAC15A377EE -S315400080702F222222AE15E08801100000E03FBFE02B -S31540008080E43FBFE8E83FBFF0EC3FBFF88210001E78 -S315400080908220601CC0A041E082206008C0A041E070 -S315400080A082206008C0A041E082206008C0A041E074 -S315400080B0C0A002209DE3BF909DE3BF9081E80000F1 -S315400080C081E800000100000001000000E01FBFE061 -S315400080D0E41FBFE8E81FBFF0EC1FBFF8EC6FBFF826 -S315400080E0EC7FBFF8010000000100000081E80000BD +S31540008020C46FBFF89DE3BF909DE3BF909DE3BF90B3 +S315400080309DE3BF909DE3BF909DE3BF9021044444E0 +S31540008040A014211123088888A2146222250CCCCCC6 +S31540008050A414A33327111111A614E044291555552C +S31540008060A81521552B199999AA1562662D1DDDDD96 +S31540008070AC15A3772F222222AE15E088011000000E +S31540008080E03FBFE0E43FBFE8E83FBFF0EC3FBFF86A +S315400080908210001E8220601CC0A041E08220600841 +S315400080A0C0A041E082206008C0A041E08220600874 +S315400080B0C0A041E0C0A002209DE3BF909DE3BF90D9 +S315400080C081E8000081E80000010000000100000096 +S315400080D0E01FBFE0E41FBFE8E81FBFF0EC1FBFF89A +S315400080E0EC6FBFF8EC7FBFF8010000000100000014 S315400080F081E8000081E8000081E8000081E8000096 -S3154000810081C7E00881E80000A7500000AA102400BB -S31540008110A8102300EC854320EA8503202F10002079 -S31540008120AE15E158EE05C000E805C000EA05E004DA -S31540008130EC05E008AC15A000C0A58300EA250000C8 -S31540008140AE05E00C2B100020AA156158EE25400024 -S3154000815081C4400081CC8000000000000100000086 -S3154000816000000000000000000000000000000000C9 +S3154000810081E8000081C7E00881E80000A750000030 +S31540008110AA102400A8102300EC854320EA850320FA +S315400081202F100020AE15E160EE05C000E805C00046 +S31540008130EA05E004EC05E008AC15A000C0A5830004 +S31540008140EA250000AE05E00C2B100020AA15616060 +S31540008150EE25400081C4400081CC80000100000033 +S3154000816000000000010000000000000000000000C8 S3154000817000000000000000000000000000000000B9 S3154000818000000000000000000000000000000000A9 -S315400081900000000000000000000000000100000098 -S315400081A081C3E008D0A003200100000001000000C8 +S315400081900000000000000000000000000000000099 +S315400081A00000000001000000010000000100000086 S315400081B00100000001000000010000000100000075 -S315400081C09DE3BF90FC2780009007A0019410001EFD -S315400081D0D1E7816AD1E7816A9402A0019002200129 -S315400081E0D1E7816AD1E7816AD60780009622C01E10 -S315400081F0B0A2E00202800004900020017FFFE40864 -S315400082000100000081C7E00881E80000010000008D -S315400082100100000001000000010000000100000014 -S315400082200100000001000000010000000100000004 +S315400081C081C3E008D0A003200100000001000000A8 +S315400081D00100000001000000010000000100000055 +S315400081E09DE3BF90FC2780009007A0019410001EDD +S315400081F0D1E7816AD1E7816A9402A0019002200109 +S31540008200D1E7816AD1E7816AD60780009622C01EEF +S31540008210B0A2E00202800004900020017FFFE40645 +S315400082200100000081C7E00881E80000010000006D S3154000823001000000010000000100000001000000F4 S3154000824001000000010000000100000001000000E4 S3154000825001000000010000000100000001000000D4 @@ -4095,3247 +4095,3247 @@ S3154000FFC001000000010000000100000001000000E7 S3154000FFD001000000010000000100000001000000D7 S3154000FFE001000000010000000100000001000000C7 S3154000FFF001000000010000000100000001000000B7 -S315400100009DE3BF90C207A068A40060261B00003F85 -S315400100109A1363FF030000239E0C800DAC106111FF -S31540010020AB376010820D400DAC03C0169E0F400DDC -S3154001003099372010AC058001820B000DAC05800F6D -S315400100409E0F000DAC058001AC05800F8335A010D5 -S315400100508208400D9E0D800DAC03C001C207A06809 -S3154001006094006034C207A05C93286011C207A0685F -S315400100709E0863FFD607A060C207A074D420400043 -S31540010080D827BFF4EE07A070833620109935A0100B -S31540010090980B000DA136E010A336E008C22DC00032 -S315400100A0F62DE00B9A0D800D82102008B6102045E2 -S315400100B0972AE012AC03400C9612C009C22DE00CFF -S315400100C0F62DE00E9B36200899366010953660086D -S315400100D09336A0109136A008A73CA0088210204074 -S315400100E0B6102011A9376018DA2DE001F02DE00293 -S315400100F0D82DE003D42DE004F22DE005D22DE00603 -S31540010100D02DE007F42DE008E02DE009E22DE00ACC -S31540010110C22DE016F62DE017E42DE011E62DE01094 -S31540010120E82DE01AC02DE00DC02DE00FC02DE012E4 -S31540010130C02DE013C02DE014C02DE015D807A068EE -S315400101409F2BE007C207A0649612C00F92032012AC -S31540010150AC380016E407A06C9B3AE0189130601861 -S31540010160A1306010A3306008B7376008B537201852 -S31540010170B3372008B135A0089F3A6008993AE01094 -S31540010180953AE008EA2DE01BF62DE01CF42DE01E21 -S31540010190F22DE020F02DE018EC2DE019DE2DE026C1 -S315400101A0D22DE027DA2DE02CD82DE02DD42DE02ECE -S315400101B0D62DE02FD02DE030E02DE031E22DE0329A -S315400101C0C22DE033DA07A05CFA2DE01DC207BFF469 -S315400101D080A36000C22DE01FF82DE021C02DE02252 -S315400101E0C02DE023C02DE024C02DE025C02DE02800 -S315400101F0C02DE029C02DE02A0280000EC02DE02B43 -S31540010200B8102000D807A06880A7000C1A80000902 -S31540010210BA05C01CC20C801CC22F6034B80720012D -S31540010220DA07A06880A7000D0ABFFFFBBA05C01C0C -S3154001023081C7E00881E800009DE3BD1040002BD650 -S3154001024090102000B610000840002BD390102004D7 -S31540010250BA100008391001447FFFC3E7110040740A -S31540010260A01720D0A6103FDEA8103FADAA103FBE72 -S31540010270AC103FEFAE102020F02720D0E62C200412 -S31540010280E82C2005EA2C2006EC2C2007C02C20085F -S31540010290EE2C2009400002B590100010D004201029 -S315400102A092102000400001CBD40720D0A492200018 -S315400102B0068000650100000015000010D0042010E2 -S315400102C09414800A9210200040000218D60720D0CC -S315400102D0EA2FBF0082103FF2EA2FBEFAE62FBEFE9A -S315400102E0E82FBEFFEC2FBF01EE2FBF03C22FBF0584 -S315400102F0E62FBEF8E82FBEF9EC2FBEFBC02FBEFCA1 -S31540010300EE2FBEFDC02FBF02C02FBF04A010200E8E -S31540010310AA07BFF882054010E0287F00A00420010B -S3154001032080A420FF04BFFFFD82054010AC07BDF845 -S3154001033090100016400003D6921720D080A22000CC -S3154001034002BFFFFD90100016B207BEF890102100C3 -S315400103509210001940000382941720D080A22000F9 -S3154001036002BFFFFC901021009010001D9210001B4F -S315400103704000040F941720D080A2200002BFFFFC4A -S315400103809010001DC207400080A061002280001825 -S31540010390A01020007FFFC3A29010200110800014FE -S315400103A0A01020000480002380A060020280001F6C -S315400103B080A0600322800002A21000128205401034 -S315400103C0DA087F00B00C60FF80A340182280000548 -S315400103D0A00420017FFFC39290102002A0042001B7 -S315400103E080A420FF1480001C821720D0808C20031B -S315400103F012800005833C201F82058010E480402046 -S31540010400833C201F8330601E8204000182087FFCEA -S315400104108224000180A0600112BFFFE301000000B9 -S3154001042010BFFFE7A334A01010BFFFE5A334A00817 -S3154001043080A0600022BFFFE2A334A01810BFFFE1F5 -S31540010440820540107FFFC3769010200010BFFF9CAD -S3154001045015000010DA00601480A3600002800135A7 -S31540010460C20720D08200601CF480402040002B4A05 -S31540010470901021008210202AC2274000AE100008A9 -S3154001048082102004170037AB1B377BBF9A1363CC0E -S315400104909612E1BEC22DE01315003BC098103FFFF6 -S315400104A09412A020921020DE9132E0089E1020EF97 -S315400104B0A0102008A2102006A4102001A733601026 -S315400104C0A9336008821020DDD82DE005C22DE01C3D -S315400104D0DA2DE01FD82DC000D82DE001D82DE0023D -S315400104E0D82DE003D82DE004E02DE010E22DE012F6 -S315400104F0E42DE015D22DE016D02DE017D62DE018CB -S31540010500DE2DE019D42DE01BE62DE01DE82DE01E81 -S31540010510D22DE006D02DE007D62DE008DE2DE009EC -S31540010520C02DE00AD42DE00BE02DE00CE22DE00DCC -S31540010530C02DE00EE42DE00FC02DE011C02DE014DA -S31540010540C02DE01AC02DE0208336A0189B36A0109E -S315400105509936A008C22DE026DA2DE027D82DE028CD -S31540010560C02DE021C02DE022C02DE023C02DE02486 -S31540010570C02DE025F42DE0299010001640000344DB -S31540010580921720D080A2200002BFFFFD90100016D6 -S31540010590D007400092100017400002F1941720D076 -S315400105A080A2200022BFFFFCD00740009010001D12 -S315400105B09210001B4000037E941720D080A2200099 -S315400105C002BFFFFC9010001D9807BE0ED88B00207D -S315400105D0980B20FF992B20108207BE0FC28840201E -S315400105E0820860FF83286008981300019A07BE10AD -S315400105F0DA8B40209A0B60FFA213000D9607BE11BD -S31540010600D68AC020960AE0FF972AE0108207BE12DA -S31540010610C2884020820860FF832860089612C00184 -S315400106209A07BE13DA8B40209A0B60FFA612C00DC3 -S31540010630A807BD90150037AB17003BC0C023A05C8F -S31540010640C023A060E823A064C023A068C023A06C97 -S31540010650EE23A070FA23A0749412A1BE9612E02054 -S3154001066090100011921000139810001A7FFFFE653A -S315400106709A10001A9010001640000305921720D0D8 -S3154001068080A2200002BFFFFD90100016D007400057 -S3154001069092100017400002B2941720D080A2200089 -S315400106A022BFFFFCD00740009010001D9210001B96 -S315400106B04000033F941720D080A2200002BFFFFCD8 -S315400106C09010001D9807BE24D88B0020992B201826 -S315400106D08207BE25DA8840209A0B60FF9B2B60106B -S315400106E09813000D8207BE26C2884020820860FF0B -S315400106F083286008981300019A07BE27DA8B4020A9 -S315400107009A0B60FFA413000D03000080808C8001CA -S3154001071012800003A134A012A00420019A1020489F -S3154001072082102001DA23A068150037AB17003BC0C1 -S31540010730C223A05CF223A06CE023A060E823A0645E -S31540010740EE23A070FA23A0749412A1BE9612E02063 -S3154001075090100011921000139810001A7FFFFE2985 -S315400107609A10001A90100016400002C9921720D024 -S3154001077080A2200002BFFFFD90100016D007400066 -S315400107809210001740000276941720D080A22000D4 -S3154001079022BFFFFCD00740009010001D9210001BA5 -S315400107A040000303941720D080A2200002BFFFFC23 -S315400107B09010001D9A07BE25C28B4020808860029A -S315400107C022800005A00420017FFFC29590102003DE -S315400107D0A004200182102048150037AB17003BC00A -S315400107E09810001AE023A060E823A064C223A06801 -S315400107F0C023A05CC023A06CEE23A070FA23A07492 -S3154001080090100011921000139412A1BE9612E0208E -S315400108107FFFFDFC9A10001A901000164000029CC2 -S31540010820921720D080A2200002BFFFFD9010001633 -S31540010830D00740009210001740000249941720D07B -S3154001084080A2200022BFFFFCD00740009010001D6F -S315400108509210001B400002D6941720D080A220009F -S3154001086002BFFFFC9010001DC207400080A0607CC3 -S3154001087022800005A605A0347FFFC269901020049E -S31540010880A605A03410800013A01020000480002289 -S3154001089080A060020280001D80A0600322800002C9 -S315400108A0B00CA0FF82054010DA087F0080A34018F3 -S315400108B022800005A00420017FFFC2599010200527 -S315400108C0A004200180A4204714800018A604E0015A -S315400108D0808C200312800004833C201FE484C020C6 -S315400108E0833C201F8330601E8204000182087FFC06 -S315400108F08224000180A0600112BFFFE5A334A0104D -S3154001090010BFFFE9B00C60FFA334A00810BFFFE69B -S31540010910B00C60FF80A0600022BFFFE3B134A01895 -S3154001092010BFFFE28205401040002A2290100017B6 -S3154001093081C7E00891E820009DE3BF88F027A044E5 -S31540010940C207A044820040019010000140002A12D3 -S315400109500100000082100008C227BFF4DA07BFF485 -S31540010960C207A0449A034001C207A04482007FFF08 -S3154001097082380001820B4001C227BFF4C207BFF48F -S31540010980C227BFF0C027BFECC207BFEC80A0607F83 -S315400109901480000C01000000C207BFEC9B286003D5 -S315400109A0C207BFF082034001C0204000C207BFEC2E -S315400109B082006001C227BFEC10BFFFF401000000B6 -S315400109C0C207BFF4B010000181C7E00881E800000A -S315400109D09DE3BF90F027A044F227A048F427A04CFE -S315400109E0C207A04C820060109010000140000046F2 -S315400109F001000000D027BFF4C207BFF48208600897 -S31540010A0080A06000028000040100000010BFFFF5D5 -S31540010A1001000000C207A0449B28600BC207A04802 -S31540010A208208601F8328600682134001821060029B -S31540010A30C227BFF4C207A04C82006010901000018B -S31540010A40D207BFF44000002701000000C207A04CB6 -S31540010A5082006010901000014000002B0100000050 -S31540010A60D027BFF4C207BFF48208600880A06000A7 -S31540010A70028000040100000010BFFFF501000000E4 -S31540010A80C207BFF48208601080A060001280001087 -S31540010A9001000000C207A04C8200601090100001C6 -S31540010AA04000001901000000D027BFF4C207BFF47F -S31540010AB0833060101B00003F9A1363FF8208400D8C -S31540010AC0C227BFF0108000040100000082103FFFE2 -S31540010AD0C227BFF0F007BFF081C7E00881E80000F8 -S31540010AE09DE3BF98F027A044F227A048C207A0443F -S31540010AF0FA07A048FA204000B010000181C7E0087B -S31540010B0081E800009DE3BF90F027A044C207A044BE -S31540010B10C2804020C227BFF4C207BFF4B010000113 -S31540010B2081C7E00881E800009DE3BF90F027A0441B -S31540010B30F227A048F427A04CF627A050C207A050A0 -S31540010B4082006010901000017FFFFFEF010000005E -S31540010B50D027BFF4C207BFF48208600880A06000B6 -S31540010B60028000040100000010BFFFF501000000F3 -S31540010B70DA07A04C0300003F821063FF820B40015D -S31540010B809B286010C207A0448328600B9A1340013A -S31540010B90C207A0488208601F83286006821340016D -S31540010BA082106001C227BFF4C207A05082006010C4 -S31540010BB090100001D207BFF47FFFFFCA0100000079 -S31540010BC0C207A05082006010901000017FFFFFCE47 -S31540010BD001000000D027BFF4C207BFF482086008B5 -S31540010BE080A06000028000040100000010BFFFF5F4 -S31540010BF00100000081C7E00881E800009DE3BF983D -S31540010C00F027A044F227A048DA07A044C207A0482B -S31540010C10C2084000C22B6004D807A0449A102001A4 -S31540010C20C207A04882034001C2084000C22B2005EA -S31540010C30D807A0449A102002C207A0488203400167 -S31540010C40C2084000C22B2006D807A0449A102003B0 -S31540010C50C207A04882034001C2084000C22B2007B8 -S31540010C60D807A0449A102004C207A0488203400135 -S31540010C70C2084000C22B2008D807A0449A1020057C -S31540010C80C207A04882034001C2084000C22B200986 -S31540010C90C207A044C200400096006008C207A048AF -S31540010CA0C2084000820860FF992860089A10200116 -S31540010CB0C207A04882034001C2084000820860FF83 -S31540010CC0821300019010000B921000017FFFFF85F7 -S31540010CD001000000C207A044C20040009600600C1B -S31540010CE09A102002C207A04882034001C208400070 -S31540010CF0820860FF992860189A102003C207A0480D -S31540010D0082034001C2084000820860FF83286010C8 -S31540010D10981300019A102004C207A048820340019B -S31540010D20C2084000820860FF8328600898130001CA -S31540010D309A102005C207A04882034001C20840001C -S31540010D40820860FF821300019010000B921000018F -S31540010D507FFFFF640100000082102001B0100001F6 -S31540010D6081C7E00881E800009DE3BF80F027A044E9 -S31540010D70C207A044D00040007FFFFF63010000008E -S31540010D80D027BFF4DA07A044C207BFF48330601B03 -S31540010D9082086001C223600CDA07A044C207BFF48F -S31540010DA08330601F82086001C2236014C207A044D9 -S31540010DB0C200601480A06000128000130100000090 -S31540010DC0C207A044D0004000921020407FFFFF455B -S31540010DD001000000C207A044D00040007FFFFF4A47 -S31540010DE001000000D027BFF4C207BFF4820860406B -S31540010DF080A06000028000040100000010BFFFF6E1 -S31540010E0001000000C207A044C200400082006010F9 -S31540010E10901000017FFFFF3C01000000D027BFF486 -S31540010E20DA07A044C207BFF48330600B8208601F13 -S31540010E30C2236010E007A044901024007FFFFEBF4C -S31540010E4001000000D0242018E007A044901024009F -S31540010E507FFFFEBA01000000D024201CC207A04437 -S31540010E60C200400082006014DA07A04490100001DD -S31540010E70D20360187FFFFF1B01000000C207A04498 -S31540010E80C200400082006018DA07A04490100001B9 -S31540010E90D203601C7FFFFF1301000000C207A0447C -S31540010EA0C0206020C207A044C0206024C207A044DD -S31540010EB0C0206028C207A044C020602CC207A044BD -S31540010EC0C200601480A0600012800083010000000F -S31540010ED0C207A044DA07A044D00060109210200057 -S31540010EE015000020D60340007FFFFF1001000000DF -S31540010EF0C207A044DA07A044D00060109210200037 -S31540010F00D40340007FFFFEB301000000D027BFF4A9 -S31540010F10DA07BFF403000020820B400180A0600085 -S31540010F20028000040100000010BFFFF20100000032 -S31540010F30C027BFF0C207BFF41B0000048208400D62 -S31540010F4080A060000280001701000000C207A04493 -S31540010F50DA07A044D000601092102001D40340006B -S31540010F607FFFFE9C0100000082100008820860207D -S31540010F7080A060001280000B01000000C207BFF094 -S31540010F8082006001C227BFF0DA07BFF003000030DC -S31540010F908210635080A3400104BFFFED01000000B1 -S31540010FA0C207A044DA07A044D00060109210200086 -S31540010FB0D40340007FFFFE8701000000D027BFF425 -S31540010FC0C207A044C200600C80A0600002800012EB -S31540010FD001000000C207BFF41B0000088208400D53 -S31540010FE080A060001280000C01000000C207BFF41F -S31540010FF08208604080A06000028000070100000076 -S3154001100082102001C227BFE4C027BFE81080001F1D -S3154001101001000000C207BFF41B0000088208400D12 -S3154001102080A060000280000C01000000C207BFF4EE -S315400110308208604080A06000128000070100000025 -S31540011040C027BFE482102001C227BFE81080000FED -S3154001105001000000C207BFF41B0000088208400DD2 -S3154001106080A060001280000901000000C207BFF4A1 -S315400110708208604080A060001280000401000000E8 -S31540011080C027BFE4C027BFE8C207BFF4833060086A -S3154001109082086001C227BFECD807A044C207BFEC53 -S315400110A09B286004C207BFE8832860079A13400162 -S315400110B0C207BFE48328600882134001D0030000C1 -S315400110C0921000017FFFFE87010000001080001B87 -S315400110D001000000C027BFF0C207BFF080A0600238 -S315400110E01480001601000000C207A044C20040005F -S315400110F082006010901000017FFFFE830100000016 -S31540011100D027BFF4C207BFF48208600880A0600000 -S315400111100280000501000000C027BFF010BFFFEFAD -S3154001112001000000C207BFF082006001C227BFF084 -S3154001113010BFFFEA01000000C207A044820060041C -S31540011140D007A044921000017FFFFEAD01000000D0 -S31540011150B010000181C7E00881E800009DE3BF901F -S31540011160F027A044F227A048F427A04CD807A04C6A -S31540011170C207A04CC20060209B286003C20320180E -S3154001118082034001901000017FFFFE5F01000000D5 -S31540011190821000088208680080A060000280000575 -S315400111A001000000C027BFF4108000360100000096 -S315400111B0D807A04CC207A04CC20060209B28600300 -S315400111C0C20320189A034001C207A048C223600403 -S315400111D0C207A04CC200602080A0607F1280001030 -S315400111E001000000D807A04CC207A04CC2006020F5 -S315400111F09B286003C203201898034001DA07A044E4 -S315400112000300000682134001C2230000C207A04C1E -S31540011210C02060201080001001000000D807A04CBB -S31540011220C207A04CC20060209B286003C20320185D -S315400112309A034001C207A04482106800C2234000BD -S31540011240DA07A04CC207A04CC200602082006001B0 -S31540011250C2236020C207A04CE0004000C207A04C58 -S31540011260D00040007FFFFE280100000082100008E8 -S3154001127082106001C224000082102001C227BFF4FF -S31540011280F007BFF481C7E00881E800009DE3BF9005 -S31540011290F027A044F227A048D807A048C207A04893 -S315400112A0C20060249B286003C203201C82034001C4 -S315400112B0901000017FFFFE1401000000821000081B -S315400112C08208680080A060000280000501000000DD -S315400112D0C027BFF41080003301000000D807A048A2 -S315400112E0C207A048C20060249B286003C203201C99 -S315400112F09A034001C207A044C2236004C207A04822 -S31540011300C200602480A0607F1280000E01000000B0 -S31540011310D807A048C207A048C20060249B286003A2 -S31540011320C203201C9A03400103000006C223400069 -S31540011330C207A048C02060241080000F01000000B1 -S31540011340D807A048C207A048C20060249B28600372 -S31540011350C203201C9A03400182102800C223400088 -S31540011360DA07A048C207A048C20060248200600193 -S31540011370C2236024C207A048E0004000C207A0483B -S31540011380D00040007FFFFDE0010000008210000810 -S3154001139082106002C224000082102001C227BFF4DD -S315400113A0F007BFF481C7E00881E800009DE3BF90E4 -S315400113B0F027A044F227A048F427A04CD807A04C18 -S315400113C0C207A04CC200602C9B286003C203201CAC -S315400113D082034001901000017FFFFDCB0100000018 -S315400113E082100008C227BFF4C207BFF48208680012 -S315400113F080A060001280001801000000DA07A044B6 -S31540011400C207BFF4820867FFC2234000C207A04C4F -S31540011410C200602C80A0607F12800006010000009F -S31540011420C207A04CC020602C1080000701000000BC -S31540011430DA07A04CC207A04CC200602C82006001B2 -S31540011440C223602C82102001C227BFF01080000306 -S3154001145001000000C027BFF0F007BFF081C7E008D8 -S3154001146081E800009DE3BF90F027A044D807A0443F -S31540011470C207A044C20060289B286003C20320180B -S3154001148082034001901000017FFFFD9F0100000093 -S3154001149082100008C227BFF4C207BFF48208680061 -S315400114A080A060001280001401000000C207A04421 -S315400114B0C200602880A0607F128000060100000003 -S315400114C0C207A044C0206028108000070100000028 -S315400114D0DA07A044C207A044C20060288200600126 -S315400114E0C223602882102001C227BFF0108000036A -S315400114F001000000C027BFF0F007BFF081C7E00838 -S3154001150081E800009DE3BF987FFFBF409010200413 +S315400100009DE3BF8099362010D827BFE0AF36200840 +S31540010010EE27BFE4AF366008C607A05CEE27BFEC0B +S31540010020AF36E018C407A060EE27BFF499366010DA +S31540010030AF30E008D827BFE8EE27BFFC8800A026EE +S31540010040EE07A06C993920089736A010D827BFF043 +S315400100501300003F9936E008921263FFA00E800913 +S31540010060A002C010D827BFF89B36E01098090009B6 +S31540010070900EC0091F0000239E13E1119E04000F3C +S315400100809E03C00D9003C0089802000CA1332010B6 +S31540010090980B00099804000C920B00099933201023 +S315400100A0BB2F601292030009992F2011BA17400CF9 +S315400100B0C207A0689008A3FF912A20079817400815 +S315400100C0BA00A034FA25C000EE07BFE09400A012A2 +S315400100D092380009AD36A018EE284000AB36A0088C +S315400100E0A73AA008EE07BFE4F0286002A9326008EB +S315400100F09F30E018EE286001A5332018A33B20105D +S31540010100EE07BFE8A13B20089130E01080A7200010 +S31540010110EE286003EE07BFECF2286005EE28600486 +S31540010120EE07BFF0EE286010EE07BFF4EE28601A26 +S31540010130EE07BFF8C8286011C028600A88103FDE64 +S31540010140EE28601CC028600DC028600FC0286012D0 +S31540010150C828600688103FADC828600788103FBE92 +S31540010160C828600888103FEFC828600988102020F9 +S31540010170C828600B88102008C828600C88102045C4 +S31540010180C828600E88102040C0286013C828601611 +S31540010190C0286014C0286015DA28601B8810201119 +S315400101A0C8286017EE07A064F628601DEC28601E7B +S315400101B0EA286020E8286018D2286019E6286026D7 +S315400101C0D4286027E428602CE228602DE028602EA0 +S315400101D0D828602FDE286030D0286031C807BFFCA0 +S315400101E0C6286033D628601FF4286021C8286032AB +S315400101F0C0286022C0286023C0286024C02860250A +S31540010200C0286028C0286029C028602A0280000DC5 +S31540010210C028602B80A0A0000280000A8810200020 +S31540010220861020009A004004C80DC0048600E001F3 +S3154001023080A0C002C82B603412BFFFFB88100003A8 +S3154001024081C7E00881E800009DE3BD2040002C8481 +S315400102509010200025100124A2100008A814A0D453 +S3154001026040002C7F90102004A01000087FFFC3E4BB +S315400102701100407482103FDEC22D200482103FAD32 +S31540010280C22D200582103FBEC22D200682103FEFAF +S31540010290C02D2008C22D200782102020C22D200902 +S315400102A0F024A0D44000028A90100014D0052010FA +S315400102B0D404A0D4400001C292102000AC92200088 +S315400102C00680017E01000000D0052010D604A0D48E +S315400102D01500001092102000400001F89415800A84 +S315400102E082103FDEC22FBE9EC22FBE9882103FAD06 +S315400102F0C22FBE9FC22FBE9982103FBEC22FBEA043 +S31540010300C22FBE9A82103FEFC22FBEA1C22FBE9B03 +S3154001031082102020C02FBE9CC22FBEA3C22FBE9DDD +S31540010320C02FBEA282103FF2C02FBEA4C22FBEA5CF +S31540010330A607BE988210200EC22CC0018200600121 +S3154001034080A0610032BFFFFEC22CC001AA07BD9842 +S31540010350AE14A0D490100015400003C692100017A9 +S3154001036080A2200002BFFFFD9010001590102100D1 +S3154001037092100013400003729410001780A22000CF +S3154001038002BFFFFC90102100901000109210001146 +S31540010390400004019410001780A2200002BFFFFC18 +S315400103A090100010C204000080A061000280000588 +S315400103B0AE1020007FFFC3A090102001AE10200098 +S315400103C0848DE0031280000580A0A002AC05401791 +S315400103D0EC85802080A0A002028000098335A00818 +S315400103E080A0A003028000068210001680A0A00112 +S315400103F0028000038335A0108335A018C40CC017B2 +S31540010400820860FF80A0800122800005AE05E001E0 +S315400104107FFFC38990102002AE05E00180A5E1006F +S3154001042012BFFFE9848DE003C205201480A060005D +S3154001043002800120B010200003100124EE0060D498 +S31540010440AE05E01CEE85C02040002C059010210031 +S3154001045082103FFFC22A201EC22A0000C22A200162 +S31540010460C22A2002C22A2003C22A2004C22A200507 +S3154001047082103FDEC22A2016C22A200682103FADD4 +S31540010480C22A2017C22A200782103FBEC22A20183C +S31540010490C22A200882103FEFC22A2019C22A200907 +S315400104A082102020C22A201BC22A200B821020083B +S315400104B0C22A2010C22A200C82102006C22A2012EB +S315400104C0C22A200D82102001C02A200AC22A2015E4 +S315400104D0C22A200FC02A200EC02A2011C02A201469 +S315400104E0C02A201A8210202AC22400008210200429 +S315400104F08935E018C22A20138735E01082103FDD86 +S315400105008535E008C22A201C82103FEEC22A201DF2 +S3154001051082103FCCC22A201FC02A2020C82A20266A +S31540010520C62A2027C42A2028C02A2021C02A2022C0 +S31540010530C02A2023C02A2024C02A2025EE2A202989 +S31540010540AC100008A814A0D490100015400003492F +S315400105509210001480A2200002BFFFFD90100015EA +S31540010560D004000092100016400002F594100014C9 +S3154001057080A2200022BFFFFCD00400009010001092 +S3154001058092100011400003849410001480A22000B0 +S3154001059002BFFFFC90100010B807BDAEF88F0020D7 +S315400105A08607BDAFC688C0208407BDB0C4888020F9 +S315400105B00300003F8408A0FF821063FFB80F20FFAD +S315400105C08728E018B92F20108738E010BA07BDB147 +S315400105D08608C001B8170003B8170002FA8F4020F9 +S315400105E08607BDB2C688C0208407BDB3C4888020B3 +S315400105F08728E0188738E0108208C001BA0F60FFEB +S31540010600BB2F6010BA1740018208A0FFB607BF98FA +S31540010610BA174001C023A060C023A064EC23A068A0 +S31540010620E023A06CF623A05C9010001C9210001DE4 +S315400106309410001796100017981020007FFFFE7146 +S315400106409A102000901000154000030A92100014E1 +S3154001065080A2200002BFFFFD90100015D0040000CB +S3154001066092100016400002B69410001480A2200099 +S3154001067022BFFFFCD0040000901000109210001120 +S31540010680400003459410001480A2200002BFFFFCE5 +S31540010690901000108607BDC4C688C020B207BDC5EC +S315400106A0C28E40208407BDC6C4888020A807BDC726 +S315400106B0E88D0020820860FF83286010A80D20FF86 +S315400106C08728E0188528A018A81500038538A010AA +S315400106D0A81500010300003F821063FF82088001D4 +S315400106E0A815000103000080808D0001833520128A +S315400106F002800003B4006001B4100001821020485A +S31540010700F623A05CE623A064EC23A068E023A06C5A +S31540010710C223A0609010001C9210001D9410001777 +S3154001072096100017981020019A10001A7FFFFE3587 +S31540010730B014A0D490100015400002CE92100018BB +S3154001074080A2200002BFFFFD90100015D0040000DA +S31540010750921000164000027A9410001880A22000E0 +S3154001076022BFFFFCD004000090100010921000112F +S31540010770400003099410001880A2200002BFFFFC2C +S3154001078090100010F28E4020808E60021280004F41 +S315400107900100000082102048F623A05C9410001747 +S315400107A0C023A064EC23A068E023A06C9010001C39 +S315400107B09210001D9A06A001A414A0D4C223A060E1 +S315400107C0961000177FFFFE0F98102000901000151D +S315400107D0400002A89210001280A2200002BFFFFD35 +S315400107E090100015D00400009210001640000254EB +S315400107F09410001280A2200022BFFFFCD00400000A +S315400108009010001092100011400002E39410001263 +S3154001081080A2200002BFFFFC90100010C20400001D +S3154001082080A0607C02800005A207BDCC7FFFC2820A +S3154001083090102004A207BDCCA0102000848C200378 +S315400108401280000480A0A002E884402080A0A0027B +S31540010850A2046001028000098335200880A0A0031C +S31540010860028000068210001480A0A00102800003CD +S315400108708335201083352018C40CC010820860FFD0 +S3154001088080A0800122800005A00420017FFFC26A6A +S3154001089090102005A004200180A4204812BFFFE942 +S315400108A0848C20039010001640002AE6B0102000E8 +S315400108B081C7E00881E800007FFFC25F90102000F9 +S315400108C010BFFE83D00520107FFFC25B901020032E +S315400108D010BFFFB2821020489DE3BF98F027A04485 +S315400108E0C207A044C2804020C227BFFCC207BFFC4A +S315400108F0B010000181E8000081C3E008010000005A +S315400109009DE3BFA0F027A044F227A048C207A04418 +S31540010910C407A048C420400081E8000081C3E00824 +S31540010920010000009DE3BF90F027A044C207A04408 +S31540010930832860019010000140002AC9010000008F +S3154001094082100008C227BFF4C407BFF4C207A044FF +S3154001095084008001C207A0448220000182088001F0 +S31540010960C227BFF4C207BFF4C227BFF8C027BFFCE6 +S315400109701080000A01000000C207BFFC8328600303 +S31540010980C407BFF882008001C0204000C207BFFCF7 +S3154001099082006001C227BFFCC207BFFC80A0607F06 +S315400109A004BFFFF601000000C207BFF4B01000010A +S315400109B081E8000081C3E008010000009DE3BF9883 +S315400109C0F027A044F227A048F427A04CC207A04C28 +S315400109D082006010901000017FFFFFC001000000FF +S315400109E082100008C227BFFCC207BFFC820860080C +S315400109F080A0600012BFFFF601000000C207A044BC +S31540010A008528600BC207A0488208601F83286006BC +S31540010A108210800182106002C227BFFCC207A04C2F +S31540010A208200601090100001D207BFFC7FFFFFB526 +S31540010A3001000000C207A04C820060109010000126 +S31540010A407FFFFFA60100000082100008C227BFFCFD +S31540010A50C207BFFC8208600880A0600012BFFFF693 +S31540010A6001000000C207BFFC8208601080A0600040 +S31540010A701280000D01000000C207A04C82006010E8 +S31540010A80901000017FFFFF950100000082100008D1 +S31540010A90C227BFFCC207BFFC833060101080000331 +S31540010AA00100000082103FFFB010000181E8000004 +S31540010AB081C3E008010000009DE3BF98F027A044F0 +S31540010AC0F227A048F427A04CF627A050C207A05011 +S31540010AD082006010901000017FFFFF80010000003E +S31540010AE082100008C227BFFCC207BFFC820860080B +S31540010AF080A0600012BFFFF601000000C207A04CB3 +S31540010B0085286010C207A0448328600B84108001A9 +S31540010B10C207A0488208601F8328600682108001B0 +S31540010B2082106001C227BFFCC207A050820060103C +S31540010B3090100001D207BFFC7FFFFF720100000049 +S31540010B40C207A05082006010901000017FFFFF6332 +S31540010B500100000082100008C227BFFCC207BFFC8B +S31540010B608208600880A0600012BFFFF60100000005 +S31540010B7081E8000081C3E008010000009DE3BFA0B9 +S31540010B80F027A044F227A048C207A048C408400065 +S31540010B90C207A044C4286004C207A048820060017D +S31540010BA0C4084000C207A044C4286005C207A04843 +S31540010BB082006002C4084000C207A044C4286006FF +S31540010BC0C207A04882006003C4084000C207A0448F +S31540010BD0C4286007C207A04882006004C4084000D8 +S31540010BE0C207A044C4286008C207A0488200600525 +S31540010BF0C4084000C207A044C4286009C207A044F3 +S31540010C00C20040008200600884100001C207A0486B +S31540010C10C2084000820860FF87286008C207A048D2 +S31540010C2082006001C2084000820860FF8210C00154 +S31540010C3090100002921000017FFFFF320100000078 +S31540010C40C207A044C20040008200600C841000012B +S31540010C50C207A04882006002C2084000820860FFC5 +S31540010C6087286018C207A04882006003C208400076 +S31540010C70820860FF832860108610C001C207A04821 +S31540010C8082006004C2084000820860FF8328600831 +S31540010C908610C001C207A04882006005C208400014 +S31540010CA0820860FF8210C00190100002921000017C +S31540010CB07FFFFF140100000082102001B0100001E7 +S31540010CC081E8000081C3E008010000009DE3BF8880 +S31540010CD0F027A044C207A044C20040009010000182 +S31540010CE07FFFFEFE0100000082100008C227BFEC14 +S31540010CF0C207BFEC8330601B84086001C207A04471 +S31540010D00C420600CC207BFEC8530601FC207A044F7 +S31540010D10C4206014C207A044C200601480A06000D1 +S31540010D201280001401000000C207A044C200400026 +S31540010D3090100001921020407FFFFEF2010000005A +S31540010D40C207A044C2004000901000017FFFFEE3AD +S31540010D500100000082100008C227BFECC207BFECA9 +S31540010D608208604080A0600012BFFFF601000000CB +S31540010D70C207A044C20040008200601090100001EA +S31540010D807FFFFED60100000082100008C227BFEC9B +S31540010D90C207BFEC8330600B8408601FC207A044C2 +S31540010DA0C4206010901024007FFFFEDF0100000088 +S31540010DB08210000884100001C207A044C4206018B4 +S31540010DC0901024007FFFFED8010000008210000829 +S31540010DD084100001C207A044C420601CC207A0447D +S31540010DE0C20040008200601484100001C207A04482 +S31540010DF0C200601890100002921000017FFFFEC1F0 +S31540010E0001000000C207A044C200400082006018F1 +S31540010E1084100001C207A044C200601C9010000269 +S31540010E20921000017FFFFEB701000000C207A044F7 +S31540010E30C0206020C207A044C0206024C207A0444D +S31540010E40C0206028C207A044C020602CC207A0442D +S31540010E50C200601480A0600012800096010000006C +S31540010E60C207A044C200601084100001C207A0441A +S31540010E70C200400090100002921020001500002090 +S31540010E80961000017FFFFF0D01000000C207A0443C +S31540010E90C200601084100001C207A044C200400095 +S31540010EA09010000292102000941000017FFFFEC4B2 +S31540010EB00100000082100008C227BFECC407BFEC46 +S31540010EC0030000208208800180A0600012BFFFF06D +S31540010ED001000000C027BFF0C407BFEC03000004B7 +S31540010EE08208800180A060000280001F010000008E +S31540010EF01080000B01000000C207BFF082006001B4 +S31540010F00C227BFF0C407BFF0030000308210635010 +S31540010F1080A080011480001301000000C207A04494 +S31540010F20C200601084100001C207A044C200400004 +S31540010F309010000292102001941000017FFFFEA044 +S31540010F4001000000821000088208602080A0600035 +S31540010F5002BFFFEA0100000010800003010000000B +S31540010F6001000000C207A044C200601084100001C5 +S31540010F70C207A044C2004000901000029210200017 +S31540010F80941000017FFFFE8E0100000082100008D0 +S31540010F90C227BFECC207A044C200600C80A060001B +S31540010FA00280001201000000C407BFEC03000008E4 +S31540010FB08208800180A060001280000C01000000C0 +S31540010FC0C207BFEC8208604080A060000280000733 +S31540010FD00100000082102001C227BFFCC027BFF8D4 +S31540010FE01080001F01000000C407BFEC0300000889 +S31540010FF08208800180A060000280000C0100000090 +S31540011000C207BFEC8208604080A0600012800007E2 +S3154001101001000000C027BFFC82102001C227BFF893 +S315400110201080000F01000000C407BFEC0300000858 +S315400110308208800180A06000128000090100000042 +S31540011040C207BFEC8208604080A0600012800004A5 +S3154001105001000000C027BFFCC027BFF8C207BFEC94 +S315400110608330600882086001C227BFF4C207A044EA +S31540011070C200400084100001C207BFF48728600403 +S31540011080C207BFF8832860078610C001C207BFFCAC +S31540011090832860088210C00190100002921000015E +S315400110A07FFFFE18010000001080001C01000000B7 +S315400110B0C027BFF01080001501000000C207A04400 +S315400110C0C200400082006010901000017FFFFE03C5 +S315400110D00100000082100008C227BFECC207BFEC26 +S315400110E08208600880A060000280000501000000BF +S315400110F0C027BFF01080000501000000C207BFF005 +S3154001110082006001C227BFF0C207BFF080A0600223 +S3154001111004BFFFEB01000000C207A0448200600447 +S31540011120D007A044921000017FFFFE950100000008 +S3154001113081E8000081C3E008010000009DE3BFA0F3 +S31540011140F027A044F227A048F427A04CC207A04CA0 +S31540011150C4006018C207A04CC20060208328600307 +S3154001116082008001901000017FFFFDDC010000003C +S31540011170821000088208680080A060000280000595 +S31540011180010000008210200010800036010000009E +S31540011190C207A04CC4006018C207A04CC200602020 +S315400111A08328600382008001C407A048C4206004EC +S315400111B0C207A04CC200602080A0607F1280001050 +S315400111C001000000C207A04CC4006018C207A04C31 +S315400111D0C20060208328600382008001C607A044C4 +S315400111E0050000068410C002C4204000C207A04C7E +S315400111F0C02060201080001001000000C207A04CF2 +S31540011200C4006018C207A04CC20060208328600356 +S3154001121082008001C407A0448410A800C420400075 +S31540011220C207A04CC200602084006001C207A04CE6 +S31540011230C4206020C207A04CE0004000C207A04C79 +S31540011240C2004000901000017FFFFDA40100000094 +S315400112508210000882106001C22400008210200121 +S31540011260B010000181E8000081C3E00801000000E0 +S315400112709DE3BFA0F027A044F227A048C207A0489B +S31540011280C400601CC207A048C200602483286003D2 +S3154001129082008001901000017FFFFD900100000057 +S315400112A0821000088208680080A060000280000564 +S315400112B00100000082102000108000330100000070 +S315400112C0C207A048C400601CC207A048C2006024EF +S315400112D08328600382008001C407A044C4206004BF +S315400112E0C207A048C200602480A0607F1280000E21 +S315400112F001000000C207A048C400601CC207A04804 +S31540011300C200602483286003820080010500000634 +S31540011310C4204000C207A048C02060241080000FAE +S3154001132001000000C207A048C400601CC207A048D3 +S31540011330C200602483286003820080018410280053 +S31540011340C4204000C207A048C20060248400600156 +S31540011350C207A048C4206024C207A048E00040005C +S31540011360C207A048C2004000901000017FFFFD5B0C +S31540011370010000008210000882106002C2240000B1 +S3154001138082102001B010000181E8000081C3E0080D +S31540011390010000009DE3BF98F027A044F227A04832 +S315400113A0F427A04CC207A04CC400601CC207A04C45 +S315400113B0C200602C832860038200800190100001E6 +S315400113C07FFFFD460100000082100008C227BFFCD6 +S315400113D0C207BFFC8208680080A060001280001727 +S315400113E001000000C207BFFC840867FFC207A04492 +S315400113F0C4204000C207A04CC200602C80A0607F80 +S315400114001280000601000000C207A04CC020602CDB +S315400114101080000701000000C207A04CC200602CEA +S3154001142084006001C207A04CC420602C82102001B8 +S31540011430108000030100000082102000B01000015E +S3154001144081E8000081C3E008010000009DE3BF98E8 +S31540011450F027A044C207A044C4006018C207A044B4 +S31540011460C200602883286003820080019010000139 +S315400114707FFFFD1A0100000082100008C227BFFC51 +S31540011480C207BFFC8208680080A06000128000137A +S3154001149001000000C207A044C200602880A0607F0E +S315400114A01280000601000000C207A044C020602847 +S315400114B01080000701000000C207A044C200602856 +S315400114C084006001C207A044C42060288210200124 +S315400114D0108000030100000082102000B0100001BE +S315400114E081E8000081C3E0080100000003100123E8 +S315400114F0C40060848400A001C420608481C3E008E4 +S31540011500010000009DE3BFA07FFFBF44901020046F S31540011510C2060000833060148088600F0280000894 S31540011520A0062020C2060000833060148208600FA6 -S3154001153080A0600608800089010000000301DC00EC -S31540011540C2240000DA04200403000010808B40010D -S315400115501280007A01000000DA042004030000042E -S31540011560808B40011280007201000000C2042004F9 -S31540011570808868001280005801000000C2042004DF -S31540011580808864001280005A01000000C2042004D1 -S31540011590808862001280005C01000000C2042004C1 -S315400115A0808861000280005E0100000082103FFEDB -S315400115B01B02F7ABC22420189A13615598102000DC -S315400115C0832B2003832B4001C2242010C204200414 -S315400115D08088610002BFFFFE0100000098032001E0 -S315400115E080A3200304BFFFF8832B2003C20600001B -S315400115F083306008820860FF80A060031480002D5C -S3154001160001000000DA04200403000004808B40013D -S315400116100280002D01000000C2242004C2042004DF -S3154001162080A0600006BFFFFE010000009810200365 -S31540011630DA04201498833FFF1CBFFFFE010000001F -S31540011640C2042004808862001280003F010000002D -S315400116509A10200098102000C0242010C2042004B3 -S315400116608088620002BFFFFE01000000C204201410 -S31540011670833060109B2B6008820860FF980320012D -S3154001168080A3200204BFFFF59A134001030037AB44 -S315400116908210615480A340012280003482103FFFB2 -S315400116A07FFFBEDF9010200A1080003082103FFF7E -S315400116B0DA04200403000004808B400102BFFFD7F7 -S315400116C0010000007FFFBED69010200810BFFFD357 -S315400116D0030000047FFFBED290102004C204200400 -S315400116E08088640002BFFFAA010000007FFFBECCD4 -S315400116F090102005C20420048088620002BFFFA822 -S31540011700010000007FFFBEC690102006C2042004DF -S315400117108088610032BFFFA782103FFE7FFFBEC0B7 -S315400117209010200710BFFFA382103FFE7FFFBEBC73 -S315400117309010200330BFFF8E7FFFBEB9901020026C -S3154001174030BFFF867FFFBEB6901020099A10200059 -S3154001175010BFFFC2981020007FFFBEB1901020013C -S3154001176010BFFF780301DC00C2242018C02400000A -S31540011770C224200481C7E00891E820009DE3BF9878 -S315400117807FFFBE9D110040B4C20600008330601445 -S31540011790A088600FA4062020BA0622001280007E8F -S315400117A0B8062050820E6001AE3800017FFFBE9719 -S315400117B090102001C2048000AA103FFF80A0600063 -S315400117C012800083AC102000C204A00480A06000F7 -S315400117D01280008501000000C204A00880A06000BC -S315400117E01280008701000000C204A00C80A06000A6 -S315400117F01280008901000000C204A01080A0600090 -S315400118001280008B010000007FFFBE8090102002F5 -S31540011810C206000083306008A92C2014A60860FF88 -S315400118201B10C00080A5E000128000048215000D47 -S315400118300300C00082150001C2248000DA04A0041E -S3154001184003000010808B40011280008F01000000D0 -S31540011850DA04A00403000004808B40011280008753 -S3154001186001000000C204A004808868001280008044 -S3154001187001000000C204A00480886400128000793F -S3154001188001000000C204A004808862001280007238 -S3154001189001000000C204A004808861000280006744 -S315400118A001000000032AAAAAA21062AAA004E0012C -S315400118B0E224A010A0843FFF12BFFFFEA238001110 -S315400118C0C204A00480886400128000600100000008 -S315400118D0C204A0048088610002BFFFFE010000002F -S315400118E0C204A004808862000280006E01000000EC -S315400118F0E224A01003001000C224A00C1B0000101B -S31540011900C204A0048088400D02BFFFFE0100000012 -S31540011910DA04A00403000004808B40010280005DCC -S3154001192001000000032AAAAAA21062AAA010200060 -S31540011930820C401583284016DA04A0149004200E28 -S31540011940A238001180A3400102800004A0042001B6 -S315400119507FFFBE330100000080A4001304BFFFF6E1 -S31540011960820C4015C024800082103FFFC224A0048F -S3154001197080A660020280008201000000DA060000B3 -S3154001198003000100808B40010280008001000000BD -S3154001199030800047820420019A103FFF9B2B400173 -S315400119A08210200FAC204010820E6001AE3800013B -S315400119B0AA38000D7FFFBE1590102001C204800099 -S315400119C080A0600002BFFF81010000007FFFBE14BE -S315400119D090102000C204A00480A0600002BFFF7FD7 -S315400119E0010000007FFFBE0E90102001C204A00836 -S315400119F080A0600002BFFF7D010000007FFFBE089E -S31540011A0090102002C204A00C80A0600002BFFF7BA0 -S31540011A10010000007FFFBE0290102003C204A01007 -S31540011A2080A0600002BFFF79010000007FFFBDFC7E -S31540011A309010200430BFFF757FFFBDF99010200A3A -S31540011A4010BFFF9A032AAAAA7FFFBDF59010200B6B -S31540011A5030BFFFA07FFFBDF29010200930BFFF8E3F -S31540011A607FFFBDEF9010200830BFFF877FFFBDECA1 -S31540011A709010200730BFFF807FFFBDE99010200600 -S31540011A8030BFFF797FFFBDE69010200530BFFF7163 -S31540011A907FFFBDE39010200D10BFFFA4032AAAAA21 -S31540011AA07FFFBDDF9010200C30BFFF927FFFBDD777 -S31540011AB0901020030330C00880A5E0001280000486 -S31540011AC0821500010320C00882150001C22480004E -S31540011AD00337AB7CA210600DA0102000832C20029E -S31540011AE0E2274001A004200180A4200104BFFFFC9D -S31540011AF0A238001182102003C2270000C024A0246E -S31540011B00A0102002E024A020C204A0048088620024 -S31540011B1002BFFFFE0337AB7CA210600DB004E00F9D -S31540011B20B2076200A0102001820C4015DA0640007F -S31540011B308328401690100018A2380011B20660049E -S31540011B4080A3400102800004B00620017FFFBDB49E -S31540011B5001000000A0843FFF1CBFFFF5820C401529 -S31540011B60C024A020C204A0208088600202BFFFFEDC -S31540011B7001000000C0248000308000047FFFFE6227 -S31540011B809010001830BFFF7E81C7E00891E8200021 -S31540011B909DE3BF987FFFBD981100403080A2200091 -S31540011BA0128000F382102001C226200CC026200498 -S31540011BB0C0260000C026200882102002C226200826 -S31540011BC0C0260000C026000082102003C22620083D -S31540011BD09A102083DA262008A2102063C02600002E -S31540011BE0A2847FFF1CBFFFFE01000000A2102063FC -S31540011BF0C2060000A2847FFF1CBFFFFE82102002A6 -S31540011C00C2262008A4062004C2848020808860045D -S31540011C1002BFFFFE01000000C0262008C0260000CA -S31540011C20A6102001C2848020833860148208603F58 -S31540011C3080A0600122800093A604E0018210200367 -S31540011C40C2262008C2848020808860010280000765 -S31540011C5080886004C2860020C2848020808860011A -S31540011C6012BFFFFD8088600402BFFFFB80886002CF -S31540011C7002BFFFF901000000C0262008C02620044B -S31540011C8080A4E0010480000821100080C2848020E5 -S31540011C908208608080A06001028000AE01000000E1 -S31540011CA021100080DA4C20F0DA260000C284802020 -S31540011CB08208600480A060010280009A0100000051 -S31540011CC0C284802080A4E00104800020821020018B -S31540011CD0A210200180A440131680000D2B10008015 -S31540011CE0A81420F0E00560E8901000114000247827 -S31540011CF092100010C24D0008A2046001C2260000E5 -S31540011D0080A4401306BFFFFA90100011C2848020C0 -S31540011D108208608080A0600102800092010000007C -S31540011D20C2848020833860148208603F80A04013BB -S31540011D3002800004010000007FFFBD39901020069B -S31540011D40C284802082102001C226200CDA848020A1 -S31540011D50808B6001128000680100000082102083A0 -S31540011D60C226200880A4E001028000520100000042 -S31540011D70C28480208088640002BFFFFE010000000B -S31540011D80C2848020808860010280005301000000E7 -S31540011D9080A4E00124800012A2102000C284802089 -S31540011DA08330601A80A040130280000401000000C5 -S31540011DB07FFFBD1B90102009C2848020808861006E -S31540011DC00280005501000000C284802080886400A2 -S31540011DD00280004D01000000A210200080A44013A3 -S31540011DE01680001203100080A81060F02B100080AE -S31540011DF0E08600209010001140002435D20560E8AD -S31540011E00C24D0008A204600180A040100280000477 -S31540011E109010200C7FFFBD020100000080A44013FA -S31540011E2006BFFFF40100000080A4E0010480000F1A -S31540011E3001000000C2848020808861001280004237 -S31540011E4001000000C28480208330601A80A06000B7 -S31540011E501280003A01000000C2848020808864001C -S31540011E601280003301000000C28480208088600116 -S31540011E701280001D01000000C02620083080003C71 -S31540011E80C0260000C2848020833860148208603FE7 -S31540011E9080A0401322BFFFFBA604E00180A4E0011D -S31540011EA034BFFF67A604FFFF10BFFF668210200301 -S31540011EB0C28480208088600112BFFFB20100000009 -S31540011EC0C28480208088600102BFFFFA01000000C1 -S31540011ED030BFFFAC7FFFBCD29010200810BFFFAED1 -S31540011EE080A4E0017FFFBCCE9010200CC0262008C4 -S31540011EF03080001F7FFFBCCA9010200710BFFF999A -S31540011F00821020837FFFBCC69010200B10BFFFB408 -S31540011F10A21020007FFFBCC29010200A30BFFFAB49 -S31540011F207FFFBCBF9010200130BFFF667FFFBCBC66 -S31540011F309010200B30BFFFCD7FFFBCB99010200E13 -S31540011F4030BFFFC67FFFBCB69010200D30BFFFBE2D -S31540011F507FFFBCB39010200410BFFF5321100080B7 -S31540011F607FFFBCAF9010200530BFFF6E81C7E008F0 -S31540011F7091E8200017100143DA02E0849002201014 -S31540011F809B2B60029812E084D023000DC202E084AC -S31540011F9082006001C222E08481C3E00801000000A2 -S31540011FA0C0220000C022204082103FFFC222200CE6 -S31540011FB09A10200103100143DA20608481C3E008AE -S31540011FC0010000009DE3BF7803100144F020610049 -S31540011FD07FFFBC89110040347FFFFFF2901000184B -S31540011FE0A010200123100047921000104000298DB7 -S31540011FF090146374A004200180A4200F04BFFFFC49 -S3154001200092100010C20620208330601CAE00600191 -S31540012010AC10200080A58017168000ED0300003F1C -S31540012020B81063FE2B1001430300002AB61062AAC2 -S31540012030BA102001B410001CB2156084832DA00C87 -S3154001204080A5E00114800119A600401880A5A000D2 -S315400120501280010A01000000F824E008C204E008E9 -S3154001206080A0401C02800004010000007FFFBC6C80 -S3154001207090102001F824E040C204E04080A0401CBA -S3154001208002800004010000007FFFBC659010200221 -S31540012090C204E00880A0600012BFFFFE01000000FC -S315400120A0C205608480A060100280000525100143AE -S315400120B07FFFBC5B9010200325100143A010200137 -S315400120C0A414A084A2102020832C20029A2440101C -S315400120D0D8048001A004200180A3000D02800004E1 -S315400120E0901020047FFFBC4E0100000080A4200F09 -S315400120F004BFFFF7832C2002FA256084F624C00032 -S31540012100F424E040C204C00080A0401B02800004C9 -S31540012110A010001A7FFFBC4290102005C204E04087 -S3154001212080A0401002800004010000007FFFBC3CFB -S3154001213090102005F424E008C204E00880A0600065 -S3154001214012BFFFFE01000000C205608480A060103E -S3154001215002800005251001437FFFBC319010200607 -S3154001216025100143A0102001A414A084A210201F11 -S315400121709B2C2002C204800D80A04011A0042001A6 -S31540012180A2047FFE02800004901020077FFFBC243A -S315400121900100000080A4200704BFFFF79B2C20020A -S315400121A0A4066028A210201CA0102005C2048000AD -S315400121B080A04011A404A004A2047FFE0280000472 -S315400121C0901020087FFFBC1601000000A0843FFF4D -S315400121D01CBFFFF701000000FA27BFE8C207BFE8AE -S315400121E082006001C227BFECDA07BFEC9A036001A7 -S315400121F0DA27BFF0C207BFF082006001C227BFF4F1 -S315400122009A102006DA27BFD8C024C000C024E04077 -S31540012210FA256084A0102002E024E040E024E00892 -S31540012220834440008088610002800005010000006F -S31540012230805000018050000180500001C207BFD884 -S31540012240C227BFDCDA07BFD880A36006028000043C -S31540012250010000007FFFBBF29010200AE024E00855 -S3154001226001000000C207BFD8C227BFDCDA07BFD8CA -S3154001227080A3600602800004010000007FFFBBE8E6 -S315400122809010200AE024E00801000000C027BFDCCE -S31540012290C207BFDC80A060001280009601000000EA -S315400122A0C204E00880A0600012BFFFFE01000000EA -S315400122B0C205608480A06004028000050300003FDF -S315400122C07FFFBBD79010200D0300003FC024E040A4 -S315400122D0821063FEC224E008031001439A102001D4 -S315400122E0DA206084400003E401000000400003E47A -S315400122F090122F0082103FFFC224E040C204E0400A -S3154001230080A0600002BFFFFE01000000C20560849C -S3154001231080A0600202800004A01560847FFFBBC0DC -S315400123209010200EC204200480A0601F0280000489 -S31540012330010000007FFFBBBA9010200F400003CE82 -S31540012340A8100010400003CE90023F00A0102002CA -S31540012350A4102020400003C801000000400003C82B -S3154001236090023F00C2056084A204200180A0401172 -S3154001237002800004901020107FFFBBA901000000DD -S31540012380832C20029A248010D8050001A010001148 -S3154001239080A3000D02800004901020117FFFBBA096 -S315400123A00100000080A4200F04BFFFEB01000000E4 -S315400123B0C024E040AC05A00182103FFFC224E00CDE -S315400123C080A5801706BFFF1F832DA00C80A5E001C5 -S315400123D00480004B01000000C0262024C2062024B0 -S315400123E080A060001280003F01000000210400002F -S315400123F0E0262024C206202480A040100280000549 -S31540012400821020017FFFBB8690102014821020018C -S31540012410C2262020C0262024C206202480A04010A7 -S3154001242002800004010000007FFFBB7D9010201553 -S31540012430C0262020C0262024C206202480A0600079 -S31540012440128000240100000082102002C2262020B2 -S31540012450DA062020808B60020280001B010000000A -S31540012460C0262020C20620208088600202800024E7 -S3154001247001000000308000117FFFFECA901000135A -S315400124809B2DA01CDA24E024C204E0248330601C86 -S3154001249080A0401602BFFEF1010000007FFFBB6035 -S315400124A09010201230BFFEED7FFFBB5890100016F2 -S315400124B010BFFEE880A5A0007FFFBB5990102018F1 -S315400124C03080000F7FFFBB569010201730BFFFE5CD -S315400124D07FFFBB539010201610BFFFDD82102002F4 -S315400124E07FFFBB4F9010201310BFFFC22104000095 -S315400124F07FFFBB4B9010200B30BFFF6A81C7E008BE -S3154001250091E8200003100143DA0060CCC023600843 -S3154001251081C3E008901020009DE3BF902F10014435 -S31540012520E205E100A004610027100143C204200432 -S31540012530F024E0CC7FFFBB359010201003018000D2 -S31540012540DA04200482106020808B40011280010D44 -S3154001255001000000DA046100DA27BFF0C20461001D -S3154001256080A3400102800005821020017FFFBB2C21 -S315400125709010200282102001C2242004DA04610056 -S31540012580DA27BFF0C204610080A340010280012026 -S3154001259001000000C0242004DA046100DA27BFF0FC -S315400125A0C204610080A340010280000580A720008B -S315400125B07FFFBB1B9010200480A72000128000B72C -S315400125C080A72001B010200180A6001A16800017AE -S315400125D0A8102001108000052510004980A6001A88 -S315400125E016800013DA04E0CCA206C0189014A104A8 -S315400125F09210001180A4601F14BFFFF9B00620019C -S315400126004000280801000000D805E100C20320402F -S315400126109B2D00118210400DC223204080A6001A36 -S3154001262006BFFFF3A206C018DA04E0CC9606A00363 -S31540012630C0236004833AE01FC023601098103FFF17 -S315400126408330601EAA02C001D8236014D823600CCF -S31540012650A2102000AD3D600280A720000280008AC2 -S31540012660A810200180A4401C168000ECC204E0CCD6 -S3154001267080A7200104800015B010200080A5A0008D -S315400126800480001380A0001C9B2C6010832C6018D2 -S315400126908210400D992C60088210400C8210401126 -S315400126A0993D6002DA04E0CCC2236020B0062001E5 -S315400126B080A72001048000059A03600480A30018C6 -S315400126C014BFFFFA0100000080A0001CB0603FFF6C -S315400126D080A6001A16800016C204E0CC25018000AF -S315400126E080A72000028000058206C01880A720012D -S315400126F0028000848206C011C2242004D804E0CCA2 -S31540012700832D00189B3E4018C2232008808B600110 -S31540012710128000859A10000CB006200180A6001A8E -S3154001272006BFFFF180A72000C204E0CCC0206008AC -S31540012730808E600112800009B0102000B006200191 -S3154001274080A6201F14800005833E401880886001C2 -S3154001275022BFFFFCB006200180A7200002800006B0 -S315400127608206C01880A72001028000048216E0205C -S315400127708206C01182106020C2242004DA04E0CC13 -S31540012780832D0018C2236008C203600880A0600040 -S3154001279012BFFFFE01000000C204200480886020B1 -S315400127A00280009801000000DA04200403010000C1 -S315400127B0808B40010280009001000000DA04200471 -S315400127C003008000808B40010280008801000000E8 -S315400127D0C2042008C227BFF0DA04200CDA27BFF46E -S315400127E0C204E0CC992D0018D82060089A10000147 -S315400127F0C203600880A0600012BFFFFE0100000016 -S31540012800C204200480886020028000750100000017 -S31540012810DA04200403010000808B40010280006D30 -S3154001282001000000DA04200403008000808B40018F -S315400128300280006501000000DA042008C207BFF0EB -S3154001284080A0400D02800004010000007FFFBA74A1 -S315400128509010200EDA04200CC207BFF480A0400D70 -S3154001286002800005030180007FFFBA6D9010200FA2 -S3154001287003018000C224200480A7200012BFFF7AF2 -S31540012880A204600180A4600004BFFF7B80A72001F1 -S3154001289010800062C204E0CC0280003D1110004964 -S315400128A0B010200080A6001C16BFFF60A8102001B2 -S315400128B0108000052510004980A6001C16BFFF5C4C -S315400128C0DA04E0CCA206C0189014A10492100011BB -S315400128D080A4601F14BFFFF9B006200140002751B4 -S315400128E001000000D805E100C20320409B2D0011E4 -S315400128F08210400DC223204010BFFFF180A6001C6C -S31540012900F6242004D804E0CC832D00189B3E4018C1 -S31540012910C2232008808B600122BFFF81B0062001BF -S315400129209A10000CC203600880A0600012BFFFFE2F -S3154001293001000000DA04200403010000808B4001FD -S315400129400280001E01000000DA042004030080001A -S31540012950808B40010280001601000000E42420041F -S31540012960C20420048088401222BFFF6DB0062001B8 -S315400129707FFFBA2B9010200710BFFF69B0062001D8 -S315400129807FFFBA279010200130BFFEF39012210439 -S31540012990400027249210001BDA05E100832F001B1B -S315400129A0C223604010BFFF22DA04E0CC7FFFBA1C8D -S315400129B09010200630BFFFEA7FFFBA19901020051C -S315400129C030BFFFE27FFFBA169010200D30BFFF9B4C -S315400129D07FFFBA139010200C30BFFF937FFFBA10D0 -S315400129E09010200B30BFFF8B7FFFBA0D9010200A4D -S315400129F030BFFF787FFFBA0A9010200930BFFF70C1 -S31540012A007FFFBA079010200830BFFF687FFFBA04E6 -S31540012A109010200330BFFEE0C020600CDA05E100D3 -S31540012A20C023604082103FFFC223600C81C7E0088B -S31540012A3091E820009DE3BF983B100144E607610001 -S31540012A407FFFB9F290102011C024E01CC204E01CA3 -S31540012A5080A060000280004801000000C204E01C22 -S31540012A608330601B80A0401A0A80003F01000000AD -S31540012A70A410200080A4801A1A8000422D10014320 -S31540012A80AA102001AE15A084A32CA002E006401195 -S31540012A907FFFFD4490100013A804A0019B2D401216 -S31540012AA0832D20108210400DC224E01C9A103FFF56 -S31540012AB0DA24E040D80600119A10201FDA232004B8 -S31540012AC0A0043FFFDA230000A12C20048204000C5D -S31540012AD09A102005DA206010C0206014EA206018A0 -S31540012AE09A100001C203601080A0600012BFFFFE71 -S31540012AF001000000A004000CC204201080A0600068 -S31540012B0002BFFFFE01000000C0242018C205A084B8 -S31540012B1080A06002028000069A04A01190048012EF -S31540012B207FFFB9BF900220039A04A011C205E004B9 -S31540012B3080A0400D22800006A4100014900480124B -S31540012B407FFFB9B790022004A4100014C024E01CF2 -S31540012B5080A5001A0ABFFFCEA32CA0021080000A4E -S31540012B60DA0761007FFFB9AE9010200210BFFFC2A5 -S31540012B70A41020007FFFB9AA9010200130BFFFB8F2 -S31540012B80DA076100C023604082103FFFC223600C18 -S31540012B9081C7E00891E820009DE3BF987FFFB9AF68 -S31540012BA00100000080A220000280002680A62000AD -S31540012BB012800029010000007FFFB9A80100000032 -S31540012BC0912A20047FFFB991900220034000186B9F -S31540012BD00100000080A220001280002B01000000AD -S31540012BE04000182801000000400017E101000000E4 -S31540012BF0400002230100000080A6A0001280002DA3 -S31540012C00031001447FFFB995B4106104912A200253 -S31540012C10C206800880A060001280003080A6200095 -S31540012C2012800039010000004000048A01000000C2 -S31540012C3040001E0001000000400015BD81E8000073 -S31540012C407FFFB96D1100400C80A6200002BFFFDB5B -S31540012C50010000007FFFBA19901000197FFFB97F6C -S31540012C6001000000912A20047FFFB96890022003E9 -S31540012C70400018420100000080A2200002BFFFD997 -S31540012C80010000007FFFB96690102001400017FD4A -S31540012C9001000000400017B601000000400001F8A5 -S31540012CA00100000080A6A00002BFFFD70310014427 -S31540012CB040001DEB01000000031001447FFFB9678E -S31540012CC0B4106104912A2002C206800880A06000E7 -S31540012CD002BFFFD480A620007FFFB960010000003B -S31540012CE07FFFB95EA0100008912A2002C206800823 -S31540012CF09FC040009010001080A6200002BFFFCB6D -S31540012D00010000007FFFB9FD9010001940000451F9 -S31540012D100100000040001DC701000000400015846D -S31540012D2081E800000100000003100143DA0060D091 -S31540012D309A036001DA2060D081C3E00801000000F7 -S31540012D409DE3BF987FFFB92C11004044D806200867 -S31540012D5082103FFFC2262004DA060000C2060000A8 -S31540012D6080A340010280006FA60B20078210201F1E -S31540012D70C2262004C226000080A4E000028000335F -S31540012D8082100018A2100013C0206018A2847FFF91 -S31540012D9012BFFFFE82006010A210200080A44013E3 -S31540012DA01680002B80A4E001A810200FA010001867 -S31540012DB07FFFB91690100011C0242010E82420147A -S31540012DC082102006C2242018DA04201080A3600F46 -S31540012DD002800004010000007FFFB911901020031A -S31540012DE0E82420189A10200EC204201080A0400D1D -S31540012DF012BFFFFE010000009A837FFF1CBFFFFB4D -S31540012E00A4100010C204201080A0600F12BFFFFE64 -S31540012E1001000000C204201880886010028000353D -S31540012E2082102010C224A018DA042018808B60106A -S31540012E301280003801000000A204600180A4401302 -S31540012E4006BFFFDCA004201080A4E001148000101E -S31540012E5080A4E0000280000782100018A21000132F -S31540012E60C0206018A2847FFF12BFFFFE820060105F -S31540012E7021100144C204210080A060000280002D7F -S31540012E801110004B1080000D921000197FFFB8DF22 -S31540012E90901020088210200FC22620189A10202F49 -S31540012EA0DA262028C206202080A0600D12BFFFFE30 -S31540012EB080A4E00030BFFFE8400025DA90122128C7 -S31540012EC07FFFFC38D004210082102001832840195D -S31540012ED0DA042100C22360409810200FD82620141E -S31540012EE08210200DC2262018A780000030800011D4 -S31540012EF07FFFB8CB9010200482102010C224A01866 -S31540012F00DA042018808B601022BFFFCDA204600135 -S31540012F107FFFB8C39010200510BFFFC9A20460010E -S31540012F207FFFB8BF9010200110BFFF928210201F73 -S31540012F3081C7E00881E800000000000000000000B1 -S31540012F400100000001000000010000000100000036 -S31540012F50010000000100000081C3E00801000000FB -S31540012F600100000001000000010000000100000016 -S31540012F70010000000100000081C3E00801000000DB -S31540012F8001000000010000000100000001000000F6 -S31540012F90010000000100000081C3E00801000000BB -S31540012FA001000000010000000100000001000000D6 -S31540012FB0010000000100000081C3E008010000009B -S31540012FC0D482018090A2000916BFFFFE9612800BA3 -S31540012FD081C3E0089010000BD48201C090A2000981 -S31540012FE016BFFFFE9612800B81C3E0089010000BBE -S31540012FF090A22004C0A201A090A22004C0A201A0D8 -S3154001300090A22004C0A201A090A22004C0A201A0C7 -S31540013010C0A2018090A2200414BFFFF70100000066 -S3154001302081C3E0080100000090A22004C0A201E093 -S3154001303090A22004C0A201E090A22004C0A201E017 -S3154001304090A22004C0A201E0C0A201C090A2200427 -S3154001305014BFFFF70100000081C3E0080100000032 -S31540013060981000089610000A98A3200814BFFFFF85 -S31540013070D43B00099810000898A3200814BFFFFF0D -S31540013080C01B00099810000898A32004D603000924 -S3154001309080A2C00A1280000698A3200434BFFFFD17 -S315400130A0D603000981C3E00890102000901020014A -S315400130B0981000089610000A98A3200814BFFFFF35 -S315400130C0D43B00099810000898A32004D6030009B0 -S315400130D080A2C00A1280000698A3200434BFFFFDD7 -S315400130E0D603000981C3E00890102000901020010A -S315400130F09810000898A32004D2A301A0DA8301A066 -S3154001310080A340091280000698A3200414BFFFFC47 -S31540013110D2A301A081C3E0089010200090102001A5 -S315400131209A1000089AA3400AD6A34180D8834180C9 -S31540013130981B000B988B0009128000069AA3400A3F -S3154001314014BFFFFBD6A3418081C3E0089010200045 -S31540013150901020019A1000089AA3400BD8A241CDA5 -S31540013160C48241CD8418800C8488800A128000066E -S315400131709AA3400B14BFFFFBD8A241CD81C3E008FF -S315400131809010200090102001010000000100000075 -S31540013190010000001310008092126138D4024000F1 -S315400131A080A2A0011280000780A0A002D4024000A4 -S315400131B0D4024000952AA0021080000501000000BB -S315400131C03280000381E80000D402400081E0000023 -S315400131D093480000818A60202310004CA21461F8B4 -S315400131E0A40460040100000081C4400081CC800039 -S315400131F091D0200191D02001268000059000200128 -S3154001320090222001912A2001912A200281C3E008BF -S315400132100100000081C3E008D082004081C3E0087C -S31540013220D2A2004081C3E008D082018081C3E00878 -S31540013230D2A2018081C3E008D08201A081C3E00807 -S31540013240D2A201A081C3E008D08201C081C3E008B7 -S31540013250D2A201C081C3E008D08201E081C3E00867 -S31540013260D2A201E081C3E008D2A2000081C3E008F6 -S31540013270D082000081C3E00891480000818A0000A5 -S3154001328001000000010000000100000081C3E008C8 -S315400132900100000081C3E008C0A000A081C3E0088E -S315400132A0C0A000C081C3E008D01A000001000000A0 -S315400132B001000000010000000100000001000000C3 -S315400132C09DE3BF7013100074CD1A60F0CD3FBFE08F -S315400132D0111000801B100080C91B61E0C51A21D85E -S315400132E0C11FBFE095A088C4D53FBFF0D91FBFF02D -S315400132F003100080D11861E881AB0A480100000043 -S315400133000380002BC13FBFD8F91FBFD8B5A0055CCC -S31540013310F53FBFF0ED1FBFF0F11FBFF0A5A58958DE -S31540013320E91FBFE0A1A488D415100074A1A0013003 -S31540013330DD1AA0F881AC0ACE010000000D80002DF7 -S31540013340F53FBFD0C51FBFD083A018C291A0492168 -S3154001335099A01928D51FBFE091A308CA1710007478 -S3154001336091A00128FD1AE10081AA0ADE01000000B0 -S315400133700D80002F01000000400001AE0100000059 -S315400133804000020C0100000080A2200012800031A2 -S3154001339001000000400002610100000080A22000FF -S315400133A00280003501000000308000317FFFB79C6C -S315400133B090102001F91FBFD8B5A0055CF53FBFF0BD -S315400133C0ED1FBFF0F11FBFF0A5A58958E91FBFE06A -S315400133D0A1A488D415100074A1A00130DD1AA0F86B -S315400133E081AC0ACE010000001BBFFFD7F53FBFD01D -S315400133F07FFFB78B90102002C51FBFD083A018C294 -S3154001340091A0492199A01928D51FBFE091A308CAC7 -S315400134101710007491A00128FD1AE10081AA0ADE65 -S31540013420010000001BBFFFD5010000007FFFB77CF4 -S31540013430901020034000017F01000000400001DDA3 -S315400134400100000080A2200002BFFFD3010000005E -S315400134507FFFB77301000000400002300100000009 -S3154001346080A2200002800004010000007FFFB76CAB -S315400134709010200581C7E00881E800009DE3BF98D0 -S315400134807FFFFF7D210000047FFFFF7D901200102A -S315400134907FFFFF79B0102000808A00100280000B68 -S315400134A09010200040000267010000007FFFB76BCB -S315400134B001000000912A20047FFFB75490022008A2 -S315400134C07FFFFF800100000081C7E00881E800001E -S315400134D019100080981321781110020092102000D3 -S315400134E0150FF76C9412A3D7D03B0000D4232008C4 -S315400134F0C11B0000C503200887A0892201000000E6 -S3154001350089A005408DA0892281A8CA260100000014 -S3154001351033800003901020009010200181C3E00801 -S3154001352001000000C11A0000C51A400089A00842E6 -S3154001353081C3E008C93A8000C11A0000C51A40009B -S3154001354089A0094281C3E008C93A80001910008068 -S3154001355098132178D0230000D2232008C10300000C -S31540013560C303200885A00D2181C3E008C53A800028 -S31540013570C11A0000C51A400089A009C2C93A800093 -S3154001358081C3E00801000000C11A000085A0054082 -S31540013590C53A400081C3E008010000000100000077 -S315400135A001000000010000000100000001000000D0 -S315400135B001000000010000000100000001000000C0 -S315400135C001000000010000000100000001000000B0 -S315400135D001000000010000000100000001000000A0 +S3154001153080A060060880008C010000000301DC00E9 +S31540011540C226202003000010C404200480888001A4 +S315400115501280007501000000C40420040300000449 +S31540011560808880011280007701000000C2042004B7 +S31540011570808868001280007901000000C2042004BE +S31540011580808864001280006501000000C2042004C6 +S31540011590808862001280005701000000C2042004C6 +S315400115A080886100028000590100000082103FFEE0 +S315400115B0C22420180702F7AB841020008610E1559B +S315400115C08328C002C2242010C204200480886100FE +S315400115D002BFFFFE010000008400A00880A0A020F9 +S315400115E012BFFFF98328C002C2060000833060089B +S315400115F0820860FF80A06003048000300100000083 +S31540011600C404200403000004808880011280003055 +S3154001161001000000C2242004C204200480A060000E +S3154001162006BFFFFE01000000C2042014C2042014BC +S31540011630C2042014C2042014C2042004808862001B +S31540011640128000270100000084102000861020002F +S31540011650C0242010C20420048088620002BFFFFE1D +S3154001166001000000C20420148728E008833060107E +S315400116708400A001820860FF80A0A00312BFFFF58D +S315400116808610C001030037AB8210615480A0C001AF +S315400116900280000582103FFF7FFFBEE79010200ABF +S315400116A082103FFFC2242018C0262020C2242004D5 +S315400116B081C7E00891E82000C40420040300000427 +S315400116C08088800112BFFFD4010000007FFFBEDA8F +S315400116D09010200810BFFFD0030000047FFFBED644 +S315400116E0901020098410200010BFFFDA86102000D8 +S315400116F07FFFBED190102006C2042004808861007D +S3154001170032BFFFAC82103FFE7FFFBECB9010200759 +S3154001171010BFFFA882103FFE7FFFBEC79010200575 +S3154001172030BFFF9B7FFFBEC490102002C40420043B +S31540011730030000048088800102BFFF8D0100000084 +S315400117407FFFBEBD90102003C2042004808868003C +S3154001175002BFFF8B010000007FFFBEB7901020043F +S3154001176030BFFF877FFFBEB49010200110BFFF75C9 +S315400117700301DC009DE3BFA07FFFBEA1110040B481 +S31540011780E2060000A3346014A28C600F1280007F31 +S31540011790A00620207FFFBEA190102001C206202076 +S315400117A0AE0E6001A8102000AA103FFF80A0600085 +S315400117B012800083AE380017C204200480A0600066 +S315400117C01280008501000000C204200880A060004C +S315400117D01280008701000000C204200C80A0600036 +S315400117E01280008901000000C204201080A0600020 +S315400117F01280008B010000007FFFBE8890102002FE +S3154001180080A0001784602000E6060000AD2C60141D +S3154001181003100000820880010500C00082004002DA +S3154001182082104016C2262020A734E008030000108B +S31540011830C404200480888001128000CCA60CE0FFFD +S31540011840C40420040300000480888001128000C47F +S3154001185001000000C204200480886800128000BD97 +S3154001186001000000C204200480886400128000B692 +S3154001187001000000C204200480886200128000AF8B +S3154001188001000000C204200480886100028000A794 +S3154001189001000000232AAAAA82102000A21462AAEB +S315400118A0E22420108200600180A4C00116BFFFFD22 +S315400118B0A2380011C2042004808864001280009876 +S315400118C001000000C20420048088610002BFFFFEBF +S315400118D001000000C2042004808862000280008D5D +S315400118E001000000E224201003001000C224200C55 +S315400118F005000010C20420048088400202BFFFFE9A +S3154001190001000000C4042004030000048088800113 +S315400119100280007C01000000252AAAAAA21020000C +S31540011920A414A2AAC4042014820C8015832840144E +S3154001193080A0800122800005A20460017FFFBE3E97 +S315400119409004600EA204600180A4C01136BFFFF668 +S31540011950A4380012C026202082103FFFC224200452 +S3154001196080A660020280008401000000C4060000D7 +S3154001197003000100808880011280002C01000000D4 +S3154001198081C7E00891E8200082046001AA103FFF68 +S31540011990901020017FFFBE21AB2D4001C2062020C1 +S315400119A0A810200FAE0E6001AA380015A825001117 +S315400119B080A0600002BFFF81AE3800177FFFBE1EC8 +S315400119C090102000C204200480A0600002BFFF7F67 +S315400119D0010000007FFFBE1890102001C2042008BC +S315400119E080A0600002BFFF7D010000007FFFBE12A4 +S315400119F090102002C204200C80A0600002BFFF7B31 +S31540011A00010000007FFFBE0C90102003C20420108D +S31540011A1080A0600002BFFF79010000007FFFBE0683 +S31540011A209010200430BFFF757FFFBDFC901020034E +S31540011A30A406220080A00017846020000310000045 +S31540011A40820880010520C0088200400282104016AB +S31540011A50C22620200337AB7C8210600DC2262200AD +S31540011A6003085483821063F2C224A0048210200327 +S31540011A70C2262050C024202482102002C2242020C5 +S31540011A80C20420048088620002BFFFFE01000000FC +S31540011A90C404A2000337AB7C8210600D820D400165 +S31540011AA08328401480A080010280000401000000C8 +S31540011AB07FFFBDE19004E00FC204A20405085483F0 +S31540011AC08410A3F2AA0D4002A92D401480A040140F +S31540011AD002800004010000007FFFBDD79004E010A2 +S31540011AE0C0242020C20420208088600202BFFFFE5D +S31540011AF001000000C026202081C7E00891E82000AF +S31540011B007FFFBDCD9010200D10BFFF85252AAAAAC3 +S31540011B107FFFBDC99010200C30BFFF737FFFBDC64C +S31540011B209010200B30BFFF687FFFBDC39010200A85 +S31540011B3010BFFF5A232AAAAA7FFFBDBF90102009D2 +S31540011B4030BFFF517FFFBDBC9010200830BFFF4A18 +S31540011B507FFFBDB99010200730BFFF437FFFBDB661 +S31540011B609010200630BFFF3C7FFFBDB3901020058B +S31540011B7030BFFF347FFFFE649010001830BFFF7CFA +S31540011B809DE3BF987FFFBDA590102005211001243C +S31540011B90D004210480A220000280003FA20620201A +S31540011BA04000013101000000C204210484102001DB +S31540011BB085288019C42060409210001911100045F3 +S31540011BC040002A97901220ECC204600480A0600075 +S31540011BD012800027010000000310CC00C2262020FD +S31540011BE082102200C224600821100123C2042084ED +S31540011BF080A060001280001B01000000C02460101C +S31540011C00C204600480A0600006BFFFFE0100000020 +S31540011C10C2046004808862000280001C010000004A +S31540011C20C2046014C227BFFCC204600480886200FB +S31540011C301280001301000000C204208480A06001CC +S31540011C4002800004010000007FFFBD7B901020064A +S31540011C50C0246008C026202081C7E00891E8200002 +S31540011C607FFFBD759010200330BFFFE57FFFBD723A +S31540011C709010200210BFFFDA0310CC007FFFBD6E2B +S31540011C809010200530BFFFED7FFFBD6B9010200403 +S31540011C9030BFFFE47FFFBD689010200110BFFFC831 +S31540011CA0921000199DE3BFA07FFFBD551100403042 +S31540011CB080A22000128000AF82102001C226200C93 +S31540011CC0C0262004C0260000C0262008821020021B +S31540011CD0C2262008C0260000C0260000821020032C +S31540011CE0C226200882102083C226200882102000A6 +S31540011CF0C02600008200600180A0606412BFFFFD23 +S31540011D000100000082102000C4060000820060012C +S31540011D1080A0606412BFFFFD010000008210200216 +S31540011D20C2262008A0062004C284002080886004C0 +S31540011D3002BFFFFE01000000C0262008C0260000A9 +S31540011D40C284002084102001833860148208603FD9 +S31540011D5080A0600102800004A21020011080000EC4 +S31540011D6082102003C0260000A200A001C2840020E8 +S31540011D70833860148208603F80A0401122BFFFFA79 +S31540011D808410000180A4600134800002A210000288 +S31540011D9082102003C2262008C284002082086007E0 +S31540011DA080A060060280000801000000C286002073 +S31540011DB0C28400208208600780A0600612BFFFFC33 +S31540011DC001000000C0262008C026200480A460012E +S31540011DD00480000482102034C28400208210203402 +S31540011DE0C2260000C2840020C284002080A4600173 +S31540011DF0048000198210200129100076A4102001C8 +S31540011E00A815217090100012400024DC9210204148 +S31540011E10C24D0008C2260000A404A00180A480117E +S31540011E2012BFFFFA90100012C2840020C284002023 +S31540011E30833860148208603F80A04011028000040C +S31540011E40010000007FFFBCFC90102006C2840020E8 +S31540011E5082102001C226200CC284002080886001A5 +S31540011E601280005382102083C226200880A460017C +S31540011E700280004201000000C28400208088640084 +S31540011E8002BFFFFE01000000C2840020808860017D +S31540011E900280004F80A460010480005280A460004B +S31540011EA0C28400208330601A80A040110280000461 +S31540011EB0010000007FFFBCE090102009C284002091 +S31540011EC0808861000280004A01000000C28400202F +S31540011ED0808864000280004C0100000029100076D1 +S31540011EE0A4102000A8152170E686002092102041FA +S31540011EF0400024A290100012C24D000880A0401359 +S31540011F0022800005A404A0017FFFBCCB9010200CC9 +S31540011F10A404A00180A4401214BFFFF480A4600170 +S31540011F200480000F01000000C28400208088610007 +S31540011F301280003F01000000C28400208330601AF5 +S31540011F4080A060001280003701000000C28400209A +S31540011F50808864001280003001000000E084002087 +S31540011F60808C20011280000E01000000C02620084E +S31540011F7081C7E00891E82000C28400208088600182 +S31540011F8012BFFFC201000000C284002080886001A8 +S31540011F9002BFFFFA0100000030BFFFBC7FFFBCA6B5 +S31540011FA09010200CC026200830BFFFF27FFFBCA254 +S31540011FB09010200782102083C226200880A4600149 +S31540011FC012BFFFAE0100000030BFFFEC7FFFBC9A9D +S31540011FD09010200880A4600114BFFFB280A4600065 +S31540011FE034BFFFC02910007630BFFFDD7FFFBC92B2 +S31540011FF09010200AC28400208088640032BFFFB955 +S31540012000291000767FFFBC8C9010200B10BFFFB5C6 +S31540012010291000767FFFBC889010200B30BFFFD07F +S315400120207FFFBC859010200E30BFFFC97FFFBC8269 +S315400120309010200D30BFFFC103100123C4006088FA +S315400120408528A0028610608890022010D020C00208 +S31540012050C40060888400A001C420608881C3E00870 +S3154001206001000000C0220000C022204082103FFF34 +S31540012070C222200C0310012384102001C420608851 +S3154001208081C3E0080100000003100123C20060D0B3 +S3154001209090102000C020600881C3E00801000000C4 +S315400120A09DE3BFA023100124E00461047FFFBC5BD4 +S315400120B090102011C024201CC204201C80A0600066 +S315400120C00280004C01000000C204201C8330601BCA +S315400120D080A0401A0A80004E80A6A0000280003FE0 +S315400120E0C20461042B100123A6102004AA1560889E +S315400120F0BA102000A4102000AE103FFFA810200106 +S31540012100AC10201FB8102005BB2F6002C606401D2B +S31540012110C0240000C0242040EE24200CE8254000C5 +S31540012120832D0012A404A001852CA01082108001E9 +S31540012130C224201CEE2420408928E0049A00FFFF97 +S31540012140C206001D980040049B2B60048400400D8C +S31540012150EC206004EC204000F8204004C023200419 +S31540012160E820A018C400400480A0A00012BFFFFED2 +S31540012170010000008728E004C400400380A0A000BD +S3154001218002BFFFFE010000008200400DC020601822 +S31540012190C205400080A060020280000401000000E8 +S315400121A07FFFBC259004FFFFC40560048204A01094 +S315400121B080A0800102800004BA1000127FFFBC1E7D +S315400121C090100013C024201C80A6801218BFFFCF98 +S315400121D0A604E002C204610484103FFFB01020004F +S315400121E0C0206040C420600C81C7E00881E800003F +S315400121F07FFFBC1190102001C204201C8330601B5C +S3154001220080A0401A1ABFFFB680A6A0007FFFBC0A75 +S315400122109010200210BFFFB52B1001239DE3BF8014 +S315400122202310012321100124E6042104A404E10022 +S31540012230C204A004F02460D07FFFBBF890102010A8 +S31540012240C204A004050180008410A02080884002B9 +S315400122501280014501000000C404E100C204E1000E +S3154001226080A0800102800005821020017FFFBBF221 +S315400122709010200282102001C224A004C404E1006F +S31540012280C204E10080A080010280014201000000F9 +S31540012290C024A004C404E100C204E10080A080017E +S315400122A00280000580A720007FFFBBE39010200439 +S315400122B080A720001280011180A7200180A6A001DD +S315400122C00480001A2F100048A606E001AE15E088EA +S315400122D0A8102001AC14210410800005AA10200189 +S315400122E080A6801404800011A604E00180A4E01FAA +S315400122F034BFFFFCA805200192100013400028C8F6 +S3154001230090100017C2058000C4006040872D40131D +S315400123108410C002C4206040A805200180A6801414 +S3154001232014BFFFF3A604E00180A0001C84603FFFB8 +S31540012330C427BFF0C60460D082103FFFF627BFF81E +S31540012340C027BFFCC020E004C020E010C220E0143A +S31540012350C220E00C8206A0038538601F8530A01E8E +S3154001236082008001AF386002C207BFF08200401B85 +S315400123708416E020C227BFECC427BFE829100123F9 +S31540012380AC102001A81520D0310100003B0080008F +S315400123902B01800080A720000280000382102001CB +S315400123A08210001CC407BFFC80A08001168000CBB0 +S315400123B080A720010480001680A5E0000480001457 +S315400123C0C207BFFCC407BFFC892860188328601078 +S315400123D0881100018328A008881100028400E024A6 +S315400123E08811000182102001C820E02010800006DB +S315400123F080A04017C8208000820060018400A004AC +S3154001240080A0401712BFFFFC01000000C207BFF0C9 +S31540012410E827BFF480A68001A210000104800033A2 +S315400124208400E0081080000EE607BFECE624A00415 +S31540012430832D8011C220E008833E401180886001CF +S31540012440128000138400E008A204600180A6801176 +S3154001245004800026A604E001C605000080A72000EE +S3154001246002BFFFF380A7200102800079C407BFF8AD +S31540012470C424A004832D8011C220E008833E40116C +S315400124808088600102BFFFF18400E008C20080003D +S3154001249080A0600012BFFFFE01000000C204A0043C +S315400124A0808840180280006701000000C204A00431 +S315400124B08088401D0280006001000000EA24A004DB +S315400124C0C204A00480884015128000560100000015 +S315400124D0C40500008400A008A204600180A6801102 +S315400124E014BFFFDEA604E001C02080001080000575 +S315400124F0A210200080A460200280000780A720004F +S31540012500833E40118088600122BFFFFBA204600127 +S3154001251080A720001280005180A720018204401B21 +S3154001252082106020C224A004A32D8011E2208000E5 +S31540012530C200800080A0600012BFFFFE01000000C3 +S31540012540C204A004808860200280005D0100000072 +S31540012550C204A00480884018028000560100000091 +S31540012560C204A0048088401D0280004E0100000084 +S31540012570C207BFF4C4004000C204A008E604A00C90 +S315400125808600A008E220A008C400C00080A0A000E8 +S3154001259012BFFFFE01000000C404A0048088A020F1 +S315400125A02280003CC227BFE4C404A004808880186E +S315400125B022800034C227BFE4C404A0048088801D61 +S315400125C02280002CC227BFE4C404A00880A0400298 +S315400125D002800004010000007FFFBB179010200E0F +S315400125E0C204A00C80A4C00102800005C407BFF448 +S315400125F07FFFBB119010200FC407BFF4C207BFFC79 +S31540012600C6008000C407BFF8820060018400A001B3 +S31540012610EA24A004C227BFFC10BFFF5FC427BFF84E +S315400126207FFFBB0590102007C405000010BFFFAB1C +S315400126308400A0087FFFBB009010200630BFFFA09A +S315400126407FFFBAFD9010200530BFFF99F624A00404 +S3154001265010BFFF79832D80110280001CC607BFF889 +S315400126608210E020C224A00410BFFFB1A32D801127 +S315400126707FFFBAF19010200D10BFFFD4C207BFE40F +S315400126807FFFBAED9010200C10BFFFCCC207BFE40C +S315400126907FFFBAE99010200B10BFFFC4C207BFE409 +S315400126A07FFFBAE59010200A10BFFFB3C207BFF4FF +S315400126B07FFFBAE19010200930BFFFAA7FFFBADE43 +S315400126C09010200830BFFFA3C607BFE8C624A00468 +S315400126D010BFFF97A32D8011C2042104C020E00C36 +S315400126E084103FFFB0102000C0206040C420600C21 +S315400126F081C7E00881E800000280001E11100048F1 +S3154001270080A72000A610001B04BFFF08A8102000C8 +S315400127102F100048AC142104AE15E0881080000546 +S31540012720AA10200180A7001404BFFF00A604E001FF +S3154001273080A4E01F34BFFFFCA805200192100013BE +S31540012740400027B790100017C2058000C4006040C2 +S31540012750872D40138410C002C420604010BFFFF291 +S31540012760A80520017FFFBAB49010200130BFFEBBFF +S315400127709210001B400027AA90122088C20421040F +S31540012780852F001BC420604010BFFEE980A0001CBD +S315400127907FFFBAA99010200330BFFEBE9DE3BF80E4 +S315400127A00310012411004034231000487FFFBA94DE +S315400127B0F0206104C0260000C026204082103FFF61 +S315400127C0C226200C0310012384102001A0102001F1 +S315400127D0C4206088A21460389210001040002790EF +S315400127E090100011A004200180A4201012BFFFFC0C +S315400127F092100010F8062020B937201C231001231F +S315400128002D00003F3700002AB8072001A214608836 +S31540012810AC15A3FEB616E2AAA6100018AE1020000B +S31540012820B4103FFFBA102001A8102020AA10202181 +S3154001283080A720010280000580A5E0007FFFBA77CE +S315400128409010001780A5E0000280000F01000000F3 +S31540012850C024C000C024E040F424E00CFA24400027 +S31540012860832DE01CC224E024C204E0248330601C92 +S3154001287080A0401702800004010000007FFFBA6E6D +S3154001288090102012EC24E008C204E00880A0401613 +S3154001289002800004010000007FFFBA67901020010A +S315400128A0EC24E040C204E04080A0401602800004CF +S315400128B0010000007FFFBA6090102002C204E008C8 +S315400128C080A0600012BFFFFE01000000C20440006C +S315400128D080A0601002800005A01020017FFFBA563B +S315400128E090102003A0102001832C2002C204400135 +S315400128F08425001080A0800122800005A0042001CB +S315400129007FFFBA4D90102004A004200180A420101E +S3154001291012BFFFF7832C2002FA244000F624C000A0 +S31540012920EC24E040C204C00080A0401B02800004A9 +S31540012930010000007FFFBA4090102005C204E0402C +S3154001294080A0401602800004010000007FFFBA3AD1 +S3154001295090102005EC24E008C204E00880A0600045 +S3154001296012BFFFFE01000000C204400080A06010BB +S3154001297002800005A410201F7FFFBA2F9010200669 +S31540012980A410201FA0102001832C2002C204400164 +S3154001299080A0401222800005A00420017FFFBA26B4 +S315400129A090102007A004200180A4200812BFFFF741 +S315400129B0A404BFFEA410201CA010200A832C2002D0 +S315400129C0C204400180A0401222800005A0042001DB +S315400129D07FFFBA1990102008A004200180A420107E +S315400129E012BFFFF7A404BFFEFA27BFF082102002F0 +S315400129F0C407BFF08400A001C427BFF4C407BFF4D5 +S31540012A008400A001C427BFF8C407BFF88400A00111 +S31540012A10C427BFFC84102006C427BFE0C024C000E1 +S31540012A20C024E040FA244000C224E040C224E00829 +S31540012A308344400080886100028000050100000057 +S31540012A40805000018050000180500001C207BFE064 +S31540012A50C227BFE4C207BFE080A06006028000052E +S31540012A60821020027FFFB9F49010200A82102002C2 +S31540012A70C224E00801000000C207BFE0C227BFE44C +S31540012A80C207BFE080A060060280000582102002D6 +S31540012A907FFFB9E99010200A82102002C224E00883 +S31540012AA001000000C027BFE4C207BFE480A0600068 +S31540012AB01280007301000000C204E00880A060009B +S31540012AC012BFFFFE01000000C204400080A0600466 +S31540012AD002800004010000007FFFB9D79010200D4D +S31540012AE0C024E040EC24E008FA24400040000212F1 +S31540012AF0010000004000021290122F00EC24E04039 +S31540012B00C204E04080A0600002BFFFFE0100000059 +S31540012B10C204400080A0600202800004010000005F +S31540012B207FFFB9C59010200EC204600480A0601FCB +S31540012B3002800004010000007FFFB9BF9010200F02 +S31540012B40400001FDA4102002400001FD90023F001B +S31540012B50400001F901000000400001F990023F00E8 +S31540012B60C2044000A004A00180A0401022800005BC +S31540012B70A52CA0027FFFB9B090102010A52CA00271 +S31540012B80C40440128225401080A0800102800004C6 +S31540012B90A41000107FFFB9A89010201180A4201026 +S31540012BA012BFFFEC01000000C024E040F424E00C19 +S31540012BB0AE05E00180A7001714BFFF1EA624F00052 +S31540012BC080A720010480002C01000000C02620249B +S31540012BD0C206202480A060001280002C0100000063 +S31540012BE003040000C2262024C406202480A08001BC +S31540012BF002800005821020017FFFB98F90102014BA +S31540012C0082102001C2262020C02620240304000071 +S31540012C10C406202480A08001028000040100000037 +S31540012C207FFFB98590102015C0262020C02620247C +S31540012C30C206202480A060001280001B0100000013 +S31540012C4082102002C2262020C206202080886002EF +S31540012C500280001201000000C0262020C20620206A +S31540012C608088600202800004010000007FFFB97283 +S31540012C709010201881C7E00891E820007FFFB96EC7 +S31540012C809010200B30BFFF8D7FFFB96B9010201342 +S31540012C9010BFFFD5030400007FFFB96790102017CE +S31540012CA030BFFFEE7FFFB9649010201610BFFFE6DC +S31540012CB0821020029DE3BFA07FFFB97B0100000087 +S31540012CC080A220000280003B0100000080A6200077 +S31540012CD012800035010000007FFFB973010000003A +S31540012CE0912A20047FFFB94D9002200340001887A6 +S31540012CF00100000080A2200012800028010000008F +S31540012D004000182601000000400017D401000000D1 +S31540012D10400001EA0100000080A6A0001280001CCC +S31540012D20010000007FFFB96021100124912A200291 +S31540012D30A0142108C204000880A060000280000A95 +S31540012D4080A620007FFFB95801000000912A200289 +S31540012D507FFFB955E00400089FC400000100000050 +S31540012D6080A6200002800004010000007FFFB967B1 +S31540012D7090100019400004470100000040001E5613 +S31540012D8001000000400015D981E8000040001F28DD +S31540012D900100000030BFFFE47FFFB92790102001FA +S31540012DA030BFFFD87FFFB9499010001930BFFFCB24 +S31540012DB07FFFB9131100400C10BFFFC680A620004B +S31540012DC003100123C40060D48400A001C42060D450 +S31540012DD081C3E008010000009DE3BFA07FFFB90861 +S31540012DE01100404482103FFFE4062008C226200419 +S31540012DF0A40CA007C4060000C206000080A0800102 +S31540012E0002800074010000008210201FC2262004A7 +S31540012E10C226000080A4A0000280004E821020003D +S31540012E2085286004840600028200600180A0401269 +S31540012E30C020A01812BFFFFC85286004A010200006 +S31540012E40A610200FAA102006A81020107FFFB8F365 +S31540012E5090100010A2042001832C60048606000114 +S31540012E60A12C2004C026000184060010E620E004BF +S31540012E70EA20A018C206000180A0600F028000056A +S31540012E80820600107FFFB8EC9010200382060010E6 +S31540012E908410200E872C6004E6206018C2060003C9 +S31540012EA080A0400212BFFFFE010000008400BFFF68 +S31540012EB080A0BFFF12BFFFFA01000000852C60040D +S31540012EC0C206000280A0600F12BFFFFE82060010FC +S31540012ED0C20060188088601002800033A00600108E +S31540012EE0E8242018C204201880886010128000351A +S31540012EF00100000080A4801114BFFFD5A01000116D +S31540012F0080A4A0010480000C821020007FFFB8C37A +S31540012F10901020088210200FC22620188210202FE0 +S31540012F20C2262028C206202080A0600D12BFFFFEC7 +S31540012F308210200085286004840600028200600118 +S31540012F4080A04012C020A01812BFFFFC8528600453 +S31540012F5021100124C204210480A0600002800010D7 +S31540012F60921000191110004B400025AD901221C05E +S31540012F707FFFFC3DD0042104C204210484102001BA +S31540012F80B3288019F22060408210200FC2262014F7 +S31540012F908210200DC2262018A780000081C7E008B4 +S31540012FA081E800007FFFB8A490102004E82420188F +S31540012FB0C20420188088601022BFFFD080A48011EF +S31540012FC07FFFB89D9010200510BFFFCC80A48011D3 +S31540012FD07FFFB8999010200110BFFF8D8210201FEE +S31540012FE0000000000000000000000000000000009A +S31540012FF0000000000000000000000000000000008A +S315400130000100000001000000010000000100000075 +S31540013010010000000100000081C3E008010000003A +S315400130200100000001000000010000000100000055 +S31540013030010000000100000081C3E008010000001A +S315400130400100000001000000010000000100000035 +S31540013050010000000100000081C3E00801000000FA +S315400130600100000001000000010000000100000015 +S31540013070010000000100000081C3E00801000000DA +S31540013080D482018090A2000916BFFFFE9612800BE2 +S3154001309081C3E0089010000BD48201C090A20009C0 +S315400130A016BFFFFE9612800B81C3E0089010000BFD +S315400130B090A22004C0A201A090A22004C0A201A017 +S315400130C090A22004C0A201A090A22004C0A201A007 +S315400130D0C0A2018090A2200414BFFFF701000000A6 +S315400130E081C3E0080100000090A22004C0A201E0D3 +S315400130F090A22004C0A201E090A22004C0A201E057 +S3154001310090A22004C0A201E0C0A201C090A2200466 +S3154001311014BFFFF70100000081C3E0080100000071 +S31540013120981000089610000A98A3200814BFFFFFC4 +S31540013130D43B00099810000898A3200814BFFFFF4C +S31540013140C01B00099810000898A32004D603000963 +S3154001315080A2C00A1280000698A3200434BFFFFD56 +S31540013160D603000981C3E008901020009010200189 +S31540013170981000089610000A98A3200814BFFFFF74 +S31540013180D43B00099810000898A32004D6030009EF +S3154001319080A2C00A1280000698A3200434BFFFFD16 +S315400131A0D603000981C3E008901020009010200149 +S315400131B09810000898A32004D2A301A0DA8301A0A5 +S315400131C080A340091280000698A3200414BFFFFC87 +S315400131D0D2A301A081C3E0089010200090102001E5 +S315400131E09A1000089AA3400AD6A34180D883418009 +S315400131F0981B000B988B0009128000069AA3400A7F +S3154001320014BFFFFBD6A3418081C3E0089010200084 +S31540013210901020019A1000089AA3400BD8A241CDE4 +S31540013220C48241CD8418800C8488800A12800006AD +S315400132309AA3400B14BFFFFBD8A241CD81C3E0083E +S3154001324090102000901020010100000001000000B4 +S315400132500100000013100080921260E4D402400085 +S3154001326080A2A0011280000780A0A002D4024000E3 +S31540013270D4024000952AA0021080000501000000FA +S315400132803280000381E80000D402400081E0000062 +S3154001329093480000818A60202310004CA21462B832 +S315400132A0A40460040100000081C4400081CC800078 +S315400132B091D0200191D02001268000059000200167 +S315400132C090222001912A2001912A200281C3E008FF +S315400132D00100000081C3E008D082004081C3E008BC +S315400132E0D2A2004081C3E008D082018081C3E008B8 +S315400132F0D2A2018081C3E008D08201A081C3E00847 +S31540013300D2A201A081C3E008D08201C081C3E008F6 +S31540013310D2A201C081C3E008D08201E081C3E008A6 +S31540013320D2A201E081C3E008D2A2000081C3E00835 +S31540013330D082000081C3E00891480000818A0000E4 +S3154001334001000000010000000100000081C3E00807 +S315400133500100000081C3E008C0A000A081C3E008CD +S31540013360C0A000C081C3E008D01A000001000000DF +S315400133700100000001000000010000000100000002 +S315400133809DE3BF8803100076D11861B8D13FBFF0E5 +S3154001339003100080D11FBFF0D9186180031000804F +S315400133A0D518618895A308CAD53FBFF80310008098 +S315400133B0D91FBFF8D518619081AB0A4A01000000B8 +S315400133C023800038D127BFEC91A005480310007631 +S315400133D0D13FBFF8D51FBFF8D91FBFF899A3094AF6 +S315400133E0D51FBFF099A308CA99A0012CD51861C071 +S315400133F081AB0ACA010000002D800024D127BFEC11 +S3154001340091A018C891A20928D51FBFF091A01928EB +S3154001341091A208CA91A0012803100076D51861C867 +S3154001342081AA0ACA010000000D80001501000000B2 +S315400134304000019001000000400001EE0100000043 +S3154001344080A220001280000B0100000040000243D0 +S315400134500100000080A2200012800004010000004B +S3154001346081C7E00881E800007FFFB77391E8200536 +S315400134707FFFB7710100000030BFFFF57FFFB76ED8 +S315400134809010200330BFFFEBD327BFE87FFFB76A19 +S3154001349090102002D307BFE810BFFFDAD107BFEC77 +S315400134A0D327BFE87FFFB76490102001D307BFE859 +S315400134B010BFFFC6D107BFEC9DE3BFA07FFFFF9EB4 +S315400134C0210000047FFFFF9E901200107FFFFF9AAC +S315400134D001000000808A001012800004B010200014 +S315400134E081C7E00881E80000400002669010200094 +S315400134F07FFFB76D01000000912A20047FFFB74787 +S31540013500900220087FFFFF9F81E800000100000034 +S3154001351019100080981321201110020092102000EA +S31540013520150FF76C9412A3D7D03B0000D423200883 +S31540013530C11B0000C503200887A0892201000000A5 +S3154001354089A005408DA0892281A8CA2601000000D4 +S3154001355033800003901020009010200181C3E008C1 +S3154001356001000000C11A0000C51A400089A00842A6 +S3154001357081C3E008C93A8000C11A0000C51A40005B +S3154001358089A0094281C3E008C93A80001910008028 +S3154001359098132120D0230000D2232008C103000024 +S315400135A0C303200885A00D2181C3E008C53A8000E8 +S315400135B0C11A0000C51A400089A009C2C93A800053 +S315400135C081C3E00801000000C11A000085A0054042 +S315400135D0C53A400081C3E008010000000100000037 S315400135E00100000001000000010000000100000090 S315400135F00100000001000000010000000100000080 S31540013600010000000100000001000000010000006F -S3154001361001000000010000000100000081A000201F -S3154001362081C3E00801000000C11A000081C3E0081F -S3154001363001000000C51A000089A009C2C93A40002C -S3154001364081C3E008010000001310008092126178E6 -S31540013650D0224000C102400085A01900C53A400071 -S3154001366081C3E008D01A400013100080921261789D -S31540013670D0224000C102400085A01880C5224000EA -S3154001368081C3E008D0024000151000809412A17851 -S31540013690D03A8000C11A800085A01A40C522800018 -S315400136A081C3E008D0028000151000809412A178F1 -S315400136B0D0228000C102800085A01A20C522800048 -S315400136C081C3E008D0028000151000809412A178D1 -S315400136D0D0228000C102800081A01920C13A800019 -S315400136E081C3E008D01A8000151000809412A17899 -S315400136F0D03A8000C11A800081A018C0C122800042 -S3154001370081C3E008D0028000151000809412A17890 -S31540013710D0228000CB0280008DA00025CD228000E2 -S3154001372081C3E008D0028000151000809412A17870 -S31540013730D0228000CB0280008DA000A5CD22800042 -S3154001374081C3E008D0028000151000809412A17850 -S31540013750D0228000CB0280008DA00125CD228000A1 -S3154001376081C3E008D00280001910008098132178A7 -S31540013770D03B0000D43B2008C11B0000C51B2008DC -S3154001378081A80A4201000000338000099010200000 -S3154001379029800007901020012D80000590102002FD -S315400137A02F8000039010200391D0200081C3E008B0 -S315400137B0010000001910008098132178D03B0000C9 -S315400137C0D43B2008C11B0000C51B200881A80AC2A2 -S315400137D00100000033BFFFF69010200029BFFFF41F -S315400137E0901020012DBFFFF2901020022FBFFFF055 -S315400137F09010200391D02000191000809813217851 -S31540013800D0230000D2232008C1030000C3032008AF -S3154001381081A80A210100000033BFFFE59010200076 -S3154001382029BFFFE3901020012DBFFFE19010200238 -S315400138302FBFFFDF9010200391D020001910008088 -S3154001384098132178D0230000D2232008C103000019 -S31540013850C303200881A80AA10100000033BFFFD499 -S315400138609010200029BFFFD2901020012DBFFFD01C -S31540013870901020022FBFFFCE9010200391D0200040 -S315400138801910008098132178D03B0000D43B2008C2 -S31540013890C11B0000C51B200889A008C2C93B000006 -S315400138A081C3E008D01B00001910008098132178CD -S315400138B0D0230000D2232008C1030000C3032008FF -S315400138C085A00821C523000081C3E008D00300007C -S315400138D01910008098132178D0230000D2232008A4 -S315400138E0C1030000C303200885A008A1C523000029 -S315400138F081C3E008D0030000191000809813217895 -S31540013900D0230000D2232008C1030000C3032008AE -S3154001391085A00921C523000081C3E008D00300002A -S315400139201910008098132178D0230000D223200853 -S31540013930C1030000C303200885A009A1C5230000D7 -S3154001394081C3E008D0030000191000809813217844 -S31540013950D0230000C103000083A00520C32300003B -S3154001396081C3E008D00300001310008092126190D9 -S31540013970C51A6008C11A400089A0084091A108C231 -S3154001398095A209C495A2894281C3E008D53A0000AF -S3154001399013100080921261B0C1024000C30260045C -S315400139A085A0082087A088A189A0C9A289A109214B -S315400139B081C3E008C922000096102002131000803E -S315400139C092126190151000809412A190D502400088 -S315400139D0D7028000D5220000D802000013100080D3 -S315400139E0921261B096A2E00112BFFFF901000000F8 -S315400139F081C3E0080100000013100080921261901B -S31540013A00151000809412A1B0C1028000C51A601041 -S31540013A1083A0082089A088C08BA109A18DA1094254 -S31540013A208FA1492691A0054681C3E008D13A0000FD -S31540013A301110008090122188C11A0000C51A000099 -S31540013A40C91A0000CD1A0000D11A0000D51A00008B -S31540013A50D91A0000DD1A0000E11A0000E51A00003B -S31540013A60E91A0000ED1A0000F11A0000F51A0000EB -S31540013A70F91A0000FD1A000081C3E00801000000A8 -S31540013A8029100080A815215827100080A614E1C0EE -S31540013A90C12CC000E604C000A134E00EA00C2007F2 -S31540013AA0A0A42002AE1020002D100080AC15A1C0AC -S31540013AB0AE05E001AC05A008C1358000C12D00006E -S31540013AC0EA050000AB35600DAA8D600112BFFFF912 -S31540013AD001000000808000100280002F2B3C1FFF58 -S31540013AE0AA1563FFA60CC015E6250000C10D00000E -S31540013AF02B100080AA1561CC2D10004EAC15A36089 -S31540013B00AE25E001E0054000E025800081D8200097 -S31540013B10010000000100000001000000010000005A -S31540013B20010000000100000001000000010000004A -S31540013B30010000000100000001000000010000003A -S31540013B40010000000100000001000000010000002A +S31540013610010000000100000001000000010000005F +S31540013620010000000100000001000000010000004F +S31540013630010000000100000001000000010000003F +S31540013640010000000100000001000000010000002F +S3154001365001000000010000000100000081A00020DF +S3154001366081C3E00801000000C11A000081C3E008DF +S3154001367001000000C51A000089A009C2C93A4000EC +S3154001368081C3E008010000001310008092126120FE +S31540013690D0224000C102400085A01900C53A400031 +S315400136A081C3E008D01A40001310008092126120B5 +S315400136B0D0224000C102400085A01880C5224000AA +S315400136C081C3E008D0024000151000809412A12069 +S315400136D0D03A8000C11A800085A01A40C5228000D8 +S315400136E081C3E008D0028000151000809412A12009 +S315400136F0D0228000C102800085A01A20C522800008 +S3154001370081C3E008D0028000151000809412A120E8 +S31540013710D0228000C102800081A01920C13A8000D8 +S3154001372081C3E008D01A8000151000809412A120B0 +S31540013730D03A8000C11A800081A018C0C122800001 +S3154001374081C3E008D0028000151000809412A120A8 +S31540013750D0228000CB0280008DA00025CD228000A2 +S3154001376081C3E008D0028000151000809412A12088 +S31540013770D0228000CB0280008DA000A5CD22800002 +S3154001378081C3E008D0028000151000809412A12068 +S31540013790D0228000CB0280008DA00125CD22800061 +S315400137A081C3E008D00280001910008098132120BF +S315400137B0D03B0000D43B2008C11B0000C51B20089C +S315400137C081A80A42010000003380000990102000C0 +S315400137D029800007901020012D80000590102002BD +S315400137E02F8000039010200391D0200081C3E00870 +S315400137F0010000001910008098132120D03B0000E1 +S31540013800D43B2008C11B0000C51B200881A80AC261 +S315400138100100000033BFFFF69010200029BFFFF4DE +S31540013820901020012DBFFFF2901020022FBFFFF014 +S315400138309010200391D02000191000809813212068 +S31540013840D0230000D2232008C1030000C30320086F +S3154001385081A80A210100000033BFFFE59010200036 +S3154001386029BFFFE3901020012DBFFFE190102002F8 +S315400138702FBFFFDF9010200391D020001910008048 +S3154001388098132120D0230000D2232008C103000031 +S31540013890C303200881A80AA10100000033BFFFD459 +S315400138A09010200029BFFFD2901020012DBFFFD0DC +S315400138B0901020022FBFFFCE9010200391D0200000 +S315400138C01910008098132120D03B0000D43B2008DA +S315400138D0C11B0000C51B200889A008C2C93B0000C6 +S315400138E081C3E008D01B00001910008098132120E5 +S315400138F0D0230000D2232008C1030000C3032008BF +S3154001390085A00821C523000081C3E008D00300003B +S315400139101910008098132120D0230000D2232008BB +S31540013920C1030000C303200885A008A1C5230000E8 +S3154001393081C3E008D00300001910008098132120AC +S31540013940D0230000D2232008C1030000C30320086E +S3154001395085A00921C523000081C3E008D0030000EA +S315400139601910008098132120D0230000D22320086B +S31540013970C1030000C303200885A009A1C523000097 +S3154001398081C3E008D003000019100080981321205C +S31540013990D0230000C103000083A00520C3230000FB +S315400139A081C3E008D00300001310008092126138F1 +S315400139B0C51A6008C11A400089A0084091A108C2F1 +S315400139C095A209C495A2894281C3E008D53A00006F +S315400139D01310008092126158C1024000C302600474 +S315400139E085A0082087A088A189A0C9A289A109210B +S315400139F081C3E008C92200009610200213100080FE +S31540013A0092126138151000809412A138D5024000F7 +S31540013A10D7028000D5220000D80200001310008092 +S31540013A209212615896A2E00112BFFFF9010000000F +S31540013A3081C3E00801000000131000809212613832 +S31540013A40151000809412A158C1028000C51A601059 +S31540013A5083A0082089A088C08BA109A18DA1094214 +S31540013A608FA1492691A0054681C3E008D13A0000BD +S31540013A701110008090122130C11A0000C51A0000B1 +S31540013A80C91A0000CD1A0000D11A0000D51A00004B +S31540013A90D91A0000DD1A0000E11A0000E51A0000FB +S31540013AA0E91A0000ED1A0000F11A0000F51A0000AB +S31540013AB0F91A0000FD1A000081C3E0080100000068 +S31540013AC029100080A81520F827100080A614E16867 +S31540013AD0C12CC000E604C000A134E00EA00C2007B2 +S31540013AE0A0A42002AE1020002D100080AC15A168C4 +S31540013AF0AE05E001AC05A008C1358000C12D00002E +S31540013B00EA050000AB35600DAA8D600112BFFFF9D1 +S31540013B1001000000808000100280002F2B3C1FFF17 +S31540013B20AA1563FFA60CC015E6250000C10D0000CD +S31540013B302B100080AA1561742D10004EAC15A3A060 +S31540013B40AE25E001E0054000E025800081D8200057 S31540013B50010000000100000001000000010000001A -S31540013B600000000080A5C00012BFFFE6AA0560085C -S31540013B70C12D0000E60500002B03C000A614C015A8 -S31540013B80E6250000C10D000081C4400081CC8000C3 -S31540013B900100000081C4800081CCA0040100000026 -S31540013BA00100000081C3E0089158000001000000B7 -S31540013BB01110008090122158C10A0000C022000055 -S31540013BC0C10A0000C12A0000D4020000130003808C -S31540013BD0942A800980A0000A3280004D901020036B -S31540013BE01303E000D223BFA0C023BFA4C10BBFA0D3 -S31540013BF0C023BFA0151000809412A170C10280009D -S31540013C000100000001000000C10BBFA0C10BBFA411 -S31540013C1083A00520C12BBFA0D003BFA0808A22006C -S31540013C202280003B90102004901020001510008047 -S31540013C309412A140C5028000C902A008D102A00C7D -S31540013C401310008092126170C70240008DA0894412 -S31540013C5081A98AC801000000038000050100000017 -S31540013C60901020011080002A01000000C50280004A -S31540013C70C902A008D102A00C1310008092126170F3 -S31540013C80CB0240008DA0894481A98AC80100000069 -S31540013C900380000501000000901020011080001CE7 -S31540013CA00100000025100080A414A168C11C8000F9 -S31540013CB0C51C800080A000003280000685A008C097 -S31540013CC081A80AC201000000138000030100000020 -S31540013CD0901020050100000025100080A414A16861 -S31540013CE0C11C8000C51C800080A0000001000000AE -S31540013CF03280000685A008C081A80AC201000000E2 -S31540013D00138000030100000090102007010000000D -S31540013D1081C3E00801000000901020019544000095 -S31540013D209532A01E940AA00380A280000280004022 -S31540013D309010200080A2A0030280003D1310008055 -S31540013D40921261F0C11A4000C51A6008FD0260185E -S31540013D5095A0003E99A0003E9DA0003E170000C0E0 -S31540013D609612E078A182C000010000000100000027 -S31540013D7001000000010000000100000001000000F8 -S31540013D8081A0002083A0002195A0002A99A0002CA3 -S31540013D909DA0002E170000C09612E07CA182C000B3 -S31540013DA001000000010000000100000001000000C8 -S31540013DB0010000000100000085A0002287A0002329 -S31540013DC0A180000001000000010000000100000088 -S31540013DD001000000010000000100000089A0084226 -S31540013DE0A9A2883ED93A4000DD224000CD1A601092 -S31540013DF0D102600881A90A46010000000380000C37 -S31540013E0081AD0A28010000000380000993440000A7 -S31540013E109332601B920A60079010200080A2A00195 -S31540013E2002800003902260079022600481C3E0086B -S31540013E3001000000C12BBFA081C3E008D003BFA091 -S31540013E40D023BFA081C3E008C10BBFA00100000081 -S31540013E509DE3BF6040001B19B0102000913A200A33 -S31540013E60900A200380A22001128011110100000056 -S31540013E707FFFB4E69010200D190C40291B23CD1B62 -S31540013E809410200096102000981320069A13609BE8 -S31540013E90D43FBFE0D43FBFC0D43FBFE87FFFFF421E -S31540013EA0D83FBFF0900A30000328040090122080CA -S31540013EB08210600FC22200001B10004E90022004A7 -S31540013EC09A1362809A234008191000009B3B6002B6 -S31540013ED0032784009A13400C82106010C2222004EA -S31540013EE07FFFFED4DA2200007FFFFFD61103E000F8 -S31540013EF02D100080C025A1C07FFFFDD49010200069 -S31540013F00809200091280000601000000C205A1C08E -S31540013F1080A0600002800004010000007FFFB4C061 -S31540013F209010200B7FFFFDC990103FFA0330060029 -S31540013F3080A200011280000480A2600002800EDB94 -S31540013F40010000007FFFB4B69010200B7FFFFDBF3C -S31540013F509010201403100D0080A20001128000046D -S31540013F6080A2600002800ECC010000007FFFB4AC4D -S31540013F709010200B7FFFFDB5901020620310162094 -S31540013F8080A200011280000480A2600002800EBD62 -S31540013F90010000007FFFB4A29010200B7FFFFDB30C -S31540013FA0901020050310280080A20001128000060F -S31540013FB001000000C205A1C080A06000028000048B -S31540013FC0010000007FFFB4969010200B7FFFFF9DFC -S31540013FD01103C000111C00007FFFFDAC92102000B0 -S31540013FE0031FFFFF821063FF80A200011280000AB7 -S31540013FF01B000070C205A1C09A13601F1900001072 -S315400140008208400D9813201080A0400C02800005C4 -S31540014010113C00007FFFB4829010200C113C00003F -S315400140207FFFFD9A921020000320000080A200012C -S315400140301280000A1B000070C205A1C09A13601FBE -S31540014040190000108208400D9813201080A0400CE2 -S3154001405002800004010000007FFFB4719010200C23 -S31540014060C025A1C0901020007FFFFD88921020003E -S3154001407080A220001280000601000000C205A1C0F6 -S3154001408080A0600002800005110144007FFFB464F6 -S315400140909010200C11014400132840009012230275 -S315400140A07FFFFD7A9212600180A2200012800006F5 -S315400140B001000000C205A1C080A060002280000569 -S315400140C01111FFFF7FFFB4569010200C1111FFFF15 -S315400140D07FFFFD76901223FF0300007F821063FF6E -S315400140E080A200011280000601000000C205A1C0A5 -S315400140F080A06000028000052F1000857FFFB44834 -S315400141009010200C2F1000857FFFFD60D01DE0C868 -S31540014110031FFFFF821063FF80A200011280000A85 -S315400141201B000070C205A1C09A13601F1900001040 -S315400141308208400D9813201080A0400C0280000593 -S31540014140031000857FFFB4369010200C03100085C4 -S31540014150D01860D8C025A1C07FFFFD4C01000000EA -S315400141600320000080A200011280000A1B0000709B -S31540014170C205A1C09A13601F190000108208400DA4 -S315400141809813201080A0400C02800005191000856C -S315400141907FFFB4239010200C19100085C025A1C0C3 -S315400141A07FFFFD3AD01B20B8031FFFFF821063FF3C -S315400141B080A200011280000A1B000070C205A1C046 -S315400141C09A13601F190000108208400D98132010A1 -S315400141D080A0400C02800005331000857FFFB4109B -S315400141E09010200C33100085C025A1C07FFFFD270C -S315400141F0D01E60F0C205A1C08330600E8208600304 -S3154001420080A0600202800004211000807FFFB40478 -S315400142109010200C7FFFFF0B1103C00011115804B1 -S31540014220C02421C07FFFFD299012223403102B00A8 -S315400142308210624680A20001128000050320000020 -S3154001424080A2400102800FC5010000007FFFB3F448 -S315400142509010200D113C02AF7FFFFD1C901220D122 -S31540014260033180558210639A80A2000112800005B5 -S315400142700308000080A2400102800FDB010000001C -S315400142807FFFB3E79010200D1111FC007FFFFD1752 -S3154001429092102000031FE00080A200011280000A54 -S315400142A01B000070C205A1C09A13601F19000010BF -S315400142B08208400D9813200880A0400C028000051A -S315400142C011207C017FFFB3D69010200D11207C0177 -S315400142D0C025A1C0901220307FFFFD0413000100CC -S315400142E00320000080A200011280000A1B0000701A -S315400142F0C205A1C09A13601F190000108208400D23 -S315400143009813200480A0400C0280000401000000A4 -S315400143107FFFB3C39010200DC025A1C0901020008F -S315400143207FFFFCF29210200080A22000128000063E -S3154001433001000000C205A1C080A060000280000407 -S31540014340010000007FFFB3B69010200D7FFFFCE710 -S31540014350D01DE0C803100085DA0060C080A2000DC0 -S315400143601280000601000000C205A1C080A06000C5 -S31540014370028000051B1000857FFFB3A99010200D18 -S315400143801B1000857FFFFCD9D01B60D0031FE000C6 -S3154001439080A200011280000601000000C205A1C0F2 -S315400143A080A0600002800005031000857FFFB39C5A -S315400143B09010200D031000857FFFFCCCD01860B80B -S315400143C003100085DA0060A880A2000D1280000A61 -S315400143D01B000070C205A1C09A13601F190000108E -S315400143E08208400D9813201080A0400C02800004E2 -S315400143F0010000007FFFB38A9010200DC025A1C0A7 -S315400144007FFFFCBAD01E60F0C205A1C08330600EAA -S315400144108208600380A060020280000423100080AD -S315400144207FFFB37F9010200D7FFFFE861103E000D2 -S315400144302108C6AF901420DEC02461C07FFFFCB3C3 -S31540014440A01420DE80A200101280000601000000A8 -S31540014450C20461C080A06000028000052108C6AF89 -S315400144607FFFB36F9010200E2108C6AF7FFFFCB7C8 -S31540014470901420DEA01420DE80A2001012800006D7 -S3154001448001000000C205A1C080A060002280000595 -S315400144901128C6AF7FFFB3629010200E1128C6AF18 -S315400144A07FFFFCAA901220DE0308C6AF821060DEB1 -S315400144B080A200011280000601000000C205A1C0D1 -S315400144C080A06000228000051108C6AF7FFFB3546B -S315400144D09010200E1108C6AF7FFFFC94901220DE8B -S315400144E00328C6AF821060DE80A20001128000065A -S315400144F001000000C205A1C080A060002280000525 -S315400145001128C6AF7FFFB3469010200E1128C6AFC3 -S315400145107FFFFC86901220DE0308C6AF821060DE64 -S3154001452080A200011280000601000000C205A1C060 -S3154001453080A0600002800004010000007FFFB338C4 -S315400145409010200E7FFFFE3F1103E00011151BC0A6 -S315400145501310C82115351BC01710C821901221030D -S31540014560921261419412A1037FFFFC809612E141B0 -S3154001457080A220021280000601000000C205A1C0EF -S3154001458080A060000280000511351BC07FFFB32467 -S315400145909010200F11351BC01310C82115151BC0D3 -S315400145A01710C82190122103921261419412A1035E -S315400145B07FFFFC6E9612E14180A220011280000627 -S315400145C001000000C205A1C080A060000280000574 -S315400145D0901020007FFFB3129010200F9010200002 -S315400145E092102000152000007FFFFC6096102000ED -S315400145F080A220001280000601000000C205A1C071 -S3154001460080A0600002800005191000857FFFB30479 -S315400146109010200F191000851B100085D01B20D04B -S315400146207FFFFC52D41B60D880A220021280000674 -S3154001463001000000C205A1C080A060000280000503 -S3154001464011151BC07FFFB2F69010200F11151BC02C -S315400146501310C82115151BE81710C8219012210304 -S31540014660921261419412A1037FFFFC409612E141EF -S3154001467080A220011280000601000000C205A1C0EF -S3154001468080A060000280000511151BE87FFFB2E49F -S315400146909010200F11151BE81310C82115151BC0CA -S315400146A01710C82190122103921261419412A1035D -S315400146B07FFFFC2E9612E14180A220021280000665 -S315400146C001000000C205A1C080A060000280000573 -S315400146D011151BE87FFFB2D29010200F11151BE870 -S315400146E01310C82190122103921261417FFFFC1FD2 -S315400146F0D41DE0C880A220031280000601000000FC -S31540014700C205A1C080A0600002800005031000859B -S315400147107FFFB2C39010200F0310008511151BE8CF -S315400147201310C82190122103921261417FFFFC0FA1 -S31540014730D41860B880A220031280000A1B000070C2 -S31540014740C205A1C09A13601F190000108208400DCE -S315400147509813201080A0400C0280000511151BE81B -S315400147607FFFB2AF9010200F11151BE81310C8211F -S31540014770C025A1C090122103921261417FFFFBFB2C -S31540014780D41E60F080A220021280000601000000C3 -S31540014790C205A1C080A060000280000515151BE876 -S315400147A07FFFB29F9010200F15151BE81710C821E7 -S315400147B0D01E60F09412A1037FFFFBEC9612E141FB -S315400147C080A220011280000601000000C205A1C09E -S315400147D080A060000280000515151BE87FFFB2909E -S315400147E09010200F15151BE81710C821D01DE0C8E1 -S315400147F09412A1037FFFFBDD9612E14180A22003C3 -S315400148001280000601000000C205A1C080A0600020 -S3154001481002800005191000857FFFB2819010200F9C -S315400148201910008515151BE81710C821D01B20B893 -S315400148309412A1037FFFFBCD9612E14180A2200392 -S315400148401280000A1B000070C205A1C09A13601FA6 -S31540014850190000108208400D9813201080A0400CCA -S315400148600280000511151BC07FFFB26D9010200F0D -S3154001487011151BC01310C82115351BC01710C821AF -S31540014880C025A1C090122103921261419412A10345 -S315400148907FFFFBC99612E14180A2200212800006E9 -S315400148A001000000C205A1C080A060000280000591 -S315400148B011351BC07FFFB25A9010200F11351BC016 -S315400148C01310C82115151BC01710C82190122103BA -S315400148D0921261419412A1037FFFFBB79612E14107 -S315400148E080A220011280000601000000C205A1C07D -S315400148F080A0600002800005901020007FFFB24832 -S315400149009010200F901020009210200015200000DA -S315400149107FFFFBA99610200080A22000128000068E -S3154001492001000000C205A1C080A060000280000510 -S315400149301B1000857FFFB23A9010200F1B10008597 -S3154001494003100085D01B60D07FFFFB9BD41860D835 -S3154001495080A220021280000601000000C205A1C00B -S3154001496080A060000280000511151BC07FFFB22C9C -S315400149709010200F11151BC01310C82115151BE8E7 -S315400149801710C82190122103921261419412A1037A -S315400149907FFFFB899612E14180A220011280000629 -S315400149A001000000C205A1C080A060000280000590 -S315400149B011151BE87FFFB21A9010200F11151BE845 -S315400149C01310C82115151BC01710C82190122103B9 -S315400149D0921261419412A1037FFFFB779612E14146 -S315400149E080A220021280000601000000C205A1C07B -S315400149F080A060000280000511151BE87FFFB20808 -S31540014A009010200F11151BE81310C8219012210395 -S31540014A10921261417FFFFB68D41DE0C880A220034A -S31540014A201280000A1B000070C205A1C09A13601FC4 -S31540014A30190000108208400D9813201080A0400CE8 -S31540014A4002800005191000857FFFB1F59010200FF7 -S31540014A501910008511151BE81310C8219012210366 -S31540014A60921261417FFFFB54D41B20B880A22003E0 -S31540014A701280000A1B000070C205A1C09A13601F74 -S31540014A80190000108208400D9813201080A0400C98 -S31540014A900280000511151BE87FFFB1E19010200F40 -S31540014AA011151BE81310C821C025A1C0901221037E -S31540014AB0921261417FFFFB40D41E60F080A220022A -S31540014AC01280000601000000C205A1C080A060005E -S31540014AD00280000515151BE87FFFB1D19010200F0C -S31540014AE015151BE81710C821D01E60F09412A103BA -S31540014AF07FFFFB319612E14180A220011280000620 -S31540014B0001000000C205A1C080A06000028000052E -S31540014B1015151BE87FFFB1C29010200F15151BE834 -S31540014B201710C821D01DE0C89412A1037FFFFB22B4 -S31540014B309612E14180A220031280000A1B000070F8 -S31540014B40C205A1C09A13601F190000108208400DCA -S31540014B509813201080A0400C028000051B10008590 -S31540014B607FFFB1AF9010200F1B10008515151BE874 -S31540014B701710C821D01B60B89412A1037FFFFB0E0A -S31540014B809612E14180A220031280000A1B000070A8 -S31540014B90C205A1C09A13601F190000108208400D7A -S31540014BA09813201080A0400C02800005110048EAAD -S31540014BB07FFFB19B9010200F110048EA13048D1519 -S31540014BC0C025A1C0901223CD7FFFFB0C92126278C3 -S31540014BD080A220011280000601000000C205A1C08A -S31540014BE080A0600002800005110048EA7FFFB18C79 -S31540014BF09010200F110048EA13048D15901223CD11 -S31540014C007FFFFB0F9212627880A22001128000067C -S31540014C1001000000C205A1C080A06000028000041E -S31540014C20010000007FFFB17E9010200FC025A1C07A -S31540014C307FFFFC841103C000291001449007BFF097 -S31540014C409207BFE87FFFFA3894152150C207BFF09B -S31540014C50DA05215080A0400D1280000782152150AF -S31540014C60DA006004C207BFF480A0400D02800D59EE -S31540014C70010000007FFFB16A9010201037100085B7 -S31540014C809007BFF09216E0E07FFFFA279415215076 -S31540014C90C206E0E0DA05215080A340018215215089 -S31540014CA0128000079816E0E0DA006004C20320048F -S31540014CB080A3400102800D42010000007FFFB158F0 -S31540014CC0901020109007BFF09215E0C87FFFFA16AA -S31540014CD094152150C205E0C8DA05215080A3400150 -S31540014CE082152150128000079815E0C8DA00600449 -S31540014CF0C203200480A3400102800D2C0100000064 -S31540014D007FFFB1479010201003100085921060B8C4 -S31540014D109007BFF07FFFFA04941521501B000070E5 -S31540014D20C205A1C09A13601F190000108208400DE8 -S31540014D309813201080A0400C0280000421100144E9 -S31540014D407FFFB1379010201003100080C02061C052 -S31540014D507FFFFC3C901020001310008594142150D5 -S31540014D60921260B87FFFF9F09007BFF039100085C5 -S31540014D70C20720B0DA04215080A340019414215087 -S31540014D8012800007821720B0DA02A004C200600434 -S31540014D9080A3400102800004010000007FFFB12092 -S31540014DA0901020107FFFFC271103C0009007BFF031 -S31540014DB0921660F07FFFF9DC94152150C205A1C01F -S31540014DC08330600E8208600380A060022110014496 -S31540014DD002800004231000807FFFB1119010201043 -S31540014DE094142150C02461C09007BFE87FFFF9CEDB -S31540014DF09207BFF0DA042150C207BFF080A34001F9 -S31540014E001280000794142150DA02A004C207BFF4AD -S31540014E1080A3400102800D21010000007FFFB10007 -S31540014E20901020109007BFE89216E0E07FFFF9BE90 -S31540014E3094152150C206E0E0DA05215080A34001D5 -S31540014E4082152150128000079816E0E0DA006004CE -S31540014E50C203200480A3400102800D0B0100000023 -S31540014E607FFFB0EF901020109007BFE89215E0C881 -S31540014E707FFFF9AD94152150C205E0C8DA052150EE -S31540014E8080A3400182152150128000079815E0C881 -S31540014E90DA006004C203200480A3400102800CF5BD -S31540014EA0010000007FFFB0DE901020101910008530 -S31540014EB0921320B89007BFE87FFFF99B94152150C4 -S31540014EC01B000070C205A1C09A13601F1900001093 -S31540014ED08208400D9813201080A0400C02800004E7 -S31540014EE0211001447FFFB0CE901020107FFFFBD5EB -S31540014EF0901020001310008594142150921260B82E -S31540014F007FFFF9899007BFE8C20720B0DA04215034 -S31540014F1080A340019414215012800007821720B0CB -S31540014F20DA02A004C200600480A3400102800004AA -S31540014F30010000007FFFB0BA901020107FFFFBC137 -S31540014F401103C0009007BFE8921660F07FFFF97623 -S31540014F5094152150C205A1C08330600E82086003BA -S31540014F6080A06002211001440280000423100080C9 -S31540014F707FFFB0AB9010201094142150C02461C023 -S31540014F809016E0E07FFFF9689207BFF0C206E0E0C5 -S31540014F90DA04215080A34001941421501280000765 -S31540014FA08216E0E0DA02A004C200600480A3400158 -S31540014FB002800CAB010000007FFFB09990102010D9 -S31540014FC09016E0E09207BFE87FFFF957941521500C -S31540014FD0C206E0E0DA05215080A340018215215046 -S31540014FE0128000079816E0E0DA006004C20320044C -S31540014FF080A3400102800C95010000007FFFB0882C -S31540015000901020101B100085901360D0921000085C -S315400150107FFFF9459415215019100085C20320D010 -S31540015020DA05215080A340018215215012800007E4 -S31540015030981320D0DA006004C203200480A3400103 -S3154001504002800C7D010000007FFFB075901020109A -S315400150501B100085901360D8921000087FFFF9322B -S315400150609415215019100085C20320D8DA05215024 -S3154001507080A340018215215012800007981320D841 -S31540015080DA006004C203200480A3400102800C655B -S31540015090010000007FFFB062901020101B100085B8 -S315400150A003100085901360D8921060D07FFFF91EDF -S315400150B0941521501B000070C205A1C09A13601FB0 -S315400150C0190000108208400D9813201080A0400C52 -S315400150D002800004211001447FFFB051901020103E -S315400150E07FFFFB589010200011100085131000859A -S315400150F094142150901220D87FFFF90B921260D060 -S31540015100C20720B0DA04215080A3400194142150F3 -S3154001511012800007821720B0DA02A004C2006004A0 -S3154001512080A3400102800004010000007FFFB03CE3 -S31540015130901020107FFFFB431103C000191000851A -S315400151401B100085901320D0921360D8C025A1C0B2 -S315400151507FFFF8F594152150C20720B0DA0521509A -S3154001516080A340018215215012800007981720B074 -S31540015170DA006004C203200480A3400102800C1FB0 -S315400151801B0000707FFFB026901020109016E0E0C3 -S31540015190921660F07FFFF8E494152150C205A1C034 -S315400151A08330600E8208600380A0600221100144B2 -S315400151B002800004231000807FFFB0199010201058 -S315400151C094142150C02461C09015E0C87FFFF8D6E1 -S315400151D09207BFF0C205E0C8DA04215080A340011E -S315400151E094142150128000078215E0C8DA02A00407 -S315400151F0C200600480A3400102800B9C01000000B4 -S315400152007FFFB007901020109015E0C89207BFE8C5 -S315400152107FFFF8C594152150C205E0C8DA05215033 -S3154001522080A3400182152150128000079815E0C8DD -S31540015230DA006004C203200480A3400102800B8689 -S31540015240010000007FFFAFF6901020109015E0C8D6 -S315400152509216E0E07FFFF8B494152150C205E0C8EC -S31540015260DA05215080A340018215215012800007A2 -S315400152709815E0C8DA006004C203200480A3400107 -S3154001528002800B70010000007FFFAFE590102010F7 -S315400152909015E0C8921000087FFFF8A3941521509D -S315400152A0C205E0C8DA05215080A34001821521508C -S315400152B0128000079815E0C8DA006004C203200492 -S315400152C080A3400102800B5A010000007FFFAFD44A -S315400152D09010201003100085921060B89015E0C818 -S315400152E07FFFF8919415215003000070A610601FAE -S315400152F0DA05A1C0030000109A0B4013AA106010F2 -S3154001530080A3401523100085251001440280000426 -S31540015310211000807FFFAFC290102010C02421C011 -S31540015320901460B89207BFF07FFFF87F9414A150A4 -S31540015330C20421C08208401380A0401502800004A7 -S31540015340010000007FFFAFB690102010C02421C09D -S31540015350901460B89207BFE87FFFF8739414A15088 -S31540015360C20421C08208401380A040150280000477 -S31540015370010000007FFFAFAA90102010C02421C079 -S31540015380901460B89216E0E07FFFF8679414A1503C -S31540015390C20421C08208401380A040150280000546 -S315400153A0131000857FFFAF9E9010201013100085CB -S315400153B0C02421C0921260C8901460B87FFFF85A89 -S315400153C09414A150C20421C08208401380A0401504 -S315400153D002800005901460B87FFFAF9190102010B5 -S315400153E0901460B8C02421C0921000087FFFF84E87 -S315400153F09414A150C20421C08208401380A04015D4 -S3154001540002800004010000007FFFAF85901020104C -S31540015410C02421C0901460B8921660F07FFFF84214 -S315400154209414A150C20421C08330600E82086003E7 -S3154001543080A06002228000051103C0007FFFAF7883 -S31540015440901020101103C0007FFFFA7E3B100084AC -S31540015450A2176210C02421C0AA14A150A40460104E -S31540015460A0102000A6046008B010200C920400137E -S31540015470900400117FFFF82C94152150DA04801016 -S3154001548098040012C2052150A004201880A34001AF -S315400154901280000790102010DA032004C205600430 -S315400154A080A3400122800005B0863FFF7FFFAF5CAD -S315400154B001000000B0863FFF1CBFFFEE92040013BF -S315400154C0C205A1C080A060001280098901000000C8 -S315400154D01110008490122348920220087FFFF8128F -S315400154E09415215098176210C2052150DA032148BC -S315400154F080A340011280000782152150DA03214C16 -S31540015500C200600480A3400122800AAB03100080E0 -S315400155107FFFAF439010201011100084901223603A -S31540015520920220087FFFF8009415215098176210C7 -S31540015530C2052150DA03216080A340011280000791 -S3154001554082152150DA032164C200600480A3400120 -S3154001555002800AA41B0000707FFFAF31901020101B -S315400155601110008490122378920220087FFFF7EEF3 -S315400155709415215098176210C2052150DA032178FB -S3154001558080A340011280000782152150DA03217C55 -S31540015590C200600480A3400102800A9C1B00007087 -S315400155A07FFFAF1F90102010C025A1C01110000031 -S315400155B092102000150FFC007FFFF8B296102000D4 -S315400155C0030FFC0080A200011280000880A2600047 -S315400155D01280000601000000C205A1C080A0600043 -S315400155E002800005111000007FFFAF0D90102010C2 -S315400155F01110000092102000152FFC007FFFF8A12A -S31540015600961020000310020080A2000112800008BB -S3154001561080A260001280000601000000C205A1C000 -S3154001562080A0600002800005113000007FFFAEFCC3 -S31540015630901020101130000092102000150FFC0030 -S315400156407FFFF890961020000330020080A20001EF -S315400156501280000880A2600012800006010000004E -S31540015660C205A1C080A06000028000051130000083 -S315400156707FFFAEEB901020101130000092102000F9 -S31540015680152FFC007FFFF87F96102000032FFC00AA -S3154001569080A200011280000880A2600012800006EC -S315400156A001000000C205A1C080A060000280000583 -S315400156B0111000007FFFAEDA90102010111000008B -S315400156C07FFFF87A130FE0000310100080A200015B -S315400156D01280000601000000C205A1C080A0600042 -S315400156E002800005111000007FFFAECD9010201002 -S315400156F0111000007FFFF877130FE000030FE00061 -S3154001570080A200011280000601000000C205A1C06E -S3154001571080A0600022800005191000857FFFAEC081 -S315400157209010201019100085921320E8C025A1C0C1 -S315400157309007BFF07FFFF78F941521501910008510 -S31540015740C20320D8DA05215080A340018215215099 -S3154001575012800007981320D8DA006004C20320049F -S3154001576080A3400102800A461B0000707FFFAEAC59 -S31540015770901020111B100085921360D0C025A1C046 -S315400157809007BFF07FFFF77B94152150C207BFE01A -S31540015790DA05215080A3400112800007821521506D -S315400157A0DA006004C207BFE480A3400102800A3EDA -S315400157B0010000007FFFAE9A901020119007BFF0C4 -S315400157C09215E0C87FFFF76B94152150C205E0C8DA -S315400157D0DA05215080A3400182152150128000072D -S315400157E09815E0C8DA006004C203200480A3400192 -S315400157F002800A32010000007FFFAE89901020111D -S3154001580003100085921060B89007BFF07FFFF759EB -S3154001581094152150C20720B0DA05215080A34001DA -S315400158208215215012800007981720B0DA006004D3 -S31540015830C203200480A3400102800A251B00007098 -S315400158407FFFAE77901020119007BFF0921660F05F -S315400158507FFFF74894152150C205A1C01B00007077 -S315400158608208400D1900002080A0400C21100144FF -S3154001587002800004231000807FFFAE699010201142 -S3154001588094142150C02461C09007BFE87FFFF739C7 -S315400158909207BFF0DA042150C207BFE880A3400156 -S315400158A01280000794142150DA02A004C207BFEC0B -S315400158B080A3400102800A10010000007FFFAE581C -S315400158C09010201119100085901320E89207BFE02F -S315400158D07FFFF72894152150C20720B0DA052150E1 -S315400158E080A340018215215012800007981720B0ED -S315400158F0DA006004C203200480A3400102800A0347 -S315400159001B0000707FFFAE46901020111B100085D2 -S3154001591003100085901360E8921060D0C025A1C0A5 -S315400159207FFFF7149415215019100085C20320E812 -S31540015930DA05215080A340018215215012800007CB -S31540015940981320E8DA006004C203200480A34001D2 -S31540015950028009F8010000007FFFAE31901020114E -S315400159609007BFE89215E0C87FFFF70294152150D2 -S31540015970C205E0C8DA05215080A3400182152150B5 -S31540015980128000079815E0C8DA006004C2032004BB -S3154001599080A34001028009EC010000007FFFAE2098 -S315400159A0901020071B100085921360B89007BFE83E -S315400159B07FFFF6F09415215025000070D805A1C04F -S315400159C09A14A01F03000010980B000D821060105E -S315400159D080A30001211001440280000423100080AD -S315400159E07FFFAE0F90102011C02461C09007BFE821 -S315400159F0921660F07FFFF6DF94142150C20461C015 -S31540015A00820840121B00002080A0400D2280000524 -S31540015A10031000857FFFAE02901020110310008510 -S31540015A20901060D894142150C02461C07FFFF6D1F4 -S31540015A309207BFF019100085C20320D8DA0421501D -S31540015A4080A340019414215012800007821320D86C -S31540015A50DA02A004C200600480A34001028008B8B3 -S31540015A60010000007FFFADEE901020111B10008554 -S31540015A7003100085901360D8921060E87FFFF6BD51 -S31540015A809415215019100085C20320D0DA05215002 -S31540015A9080A340018215215012800007981320D01F -S31540015AA0DA006004C203200480A34001028008A9F1 -S31540015AB0010000007FFFADDA901020119016E0E062 -S31540015AC0921000087FFFF6AB94152150C20720B013 -S31540015AD0DA05215080A3400182152150128000072A -S31540015AE0981720B0DA006004C203200480A3400165 -S31540015AF00280089D1B0000707FFFADC990102011E8 -S31540015B00C025A1C09016E0E09215E0C87FFFF69946 -S31540015B1094152150C205E0C8DA05215080A3400101 -S31540015B2082152150128000079815E0C8DA006004FA -S31540015B30C203200480A340010280089401000000B2 -S31540015B407FFFADB7901020111B100085921360B8EE -S31540015B509016E0E07FFFF68794152150C20720B0EA -S31540015B60DA05215080A34001821521501280000799 -S31540015B70981720B0DA006004C203200480A34001D4 -S31540015B80028008871B0000707FFFADA59010201191 -S31540015B90C025A1C09016E0E0921660F07FFFF67531 -S31540015BA094152150C205A1C01B0000708208400D0A -S31540015BB01900002080A0400C2310008002800004C0 -S31540015BC0211001447FFFAD9690102011941421506D -S31540015BD0C02461C09015E0C87FFFF6669207BFF00A -S31540015BE0C205E0C8DA04215080A340019414215033 -S31540015BF0128000078215E0C8DA02A004C2006004E0 -S31540015C0080A340010280086F010000007FFFAD8440 -S31540015C10901020119015E0C89207BFE87FFFF65516 -S31540015C2094152150C205E0C8DA05215080A34001F0 -S31540015C3082152150128000079815E0C8DA006004E9 -S31540015C40C203200480A340010280086301000000D2 -S31540015C507FFFAD73901020119015E0C89216E0E0D9 -S31540015C607FFFF64494152150C205E0C8DA0521505C -S31540015C7080A3400182152150128000079815E0C883 -S31540015C80DA006004C203200480A340010280085761 -S31540015C90010000007FFFAD62901020119015E0C811 -S31540015CA0921000087FFFF63394152150C205E0C8D3 -S31540015CB0DA05215080A34001821521501280000748 -S31540015CC09815E0C8DA006004C203200480A34001AD -S31540015CD0028007F3010000007FFFAD5190102011B3 -S31540015CE003100085921060B89015E0C87FFFF62139 -S31540015CF094152150C20720B0DA05215080A34001F6 -S31540015D008215215012800007981720B0DA006004EE -S31540015D10C203200480A34001028007E61B000070F5 -S31540015D207FFFAD3F901020119015E0C8921660F0AC -S31540015D307FFFF61094152150C205A1C031000070B5 -S31540015D40820840183B00002080A0401D23100144DA -S31540015D5002800004211000807FFFAD319010201198 -S31540015D6019100085901320B89207BFF07FFFF60106 -S31540015D7094146150C20421C0AA16201F3500001098 -S31540015D8082084015A616A01080A040130280000488 -S31540015D90251000857FFFAD2290102011C02421C01F -S31540015DA09014A0B89207BFE87FFFF5F294146150B2 -S31540015DB0C20421C08208401580A04013028000041D -S31540015DC0010000007FFFAD1690102011C02421C0B4 -S31540015DD09014A0B89216E0E07FFFF5E69414615066 -S31540015DE0C20421C08208401580A0401302800005EC -S31540015DF0131000857FFFAD0A901020111310008506 -S31540015E00C02421C0921260C89014A0B87FFFF5D972 -S31540015E1094146150C20421C08208401580A04013E9 -S31540015E20028000059014A0B87FFFACFD90102011B0 -S31540015E309014A0B8C02421C0921000087FFFF5CD70 -S31540015E4094146150C20421C08208401580A04013B9 -S31540015E5002800005131000857FFFACF190102011E0 -S31540015E6013100085C02421C09014A0B8921260F08E -S31540015E707FFFF5C094146150C20421C082084018C6 -S31540015E8080A0401D2280000515203E837FFFACE4A3 -S31540015E909010201115203E83170021C89412A3FFAC -S31540015EA09612E3A1191FC0001B00C0009A1360B0EF -S31540015EB098132102D43FBFD0D83FBFD8C02421C0B8 -S31540015EC09007BFD89207BFD07FFFF5AA9407BFC8F6 -S31540015ED0DA07BFC8033FFC0080A340010280070BDD -S31540015EE0A207BFC87FFFACCE901020111510868344 -S31540015EF0170021C89412A3FF9612E3A1190040008E -S31540015F001B00C0009A1360B098132102D43FBFD042 -S31540015F10D83FBFD8C025A1C09007BFD89207BFD0F0 -S31540015F207FFFF5949407BFC8DA046004C207BFC86F -S31540015F308090400D1280000A1B000070C205A1C06E -S31540015F409A13601F190000108208400D981320040F -S31540015F5080A0400C22800005150FFC007FFFACB0ED -S31540015F6090102011150FFC00170281D89412A04001 -S31540015F709612E10C9A102010190006AFD43FBFD0FB -S31540015F80D83FBFD8C025A1C09007BFD89207BFD080 -S31540015F907FFFF5789407BFC8030006AEDA07BFC88E -S31540015FA08210639580A340011280000703003A9A4C -S31540015FB0DA0460048210630F80A340010280073334 -S31540015FC0010000007FFFAC9690102011150FFFFFD6 -S31540015FD0170281D89412A3409612E10C9A10201010 -S31540015FE0190006AFD43FBFD0D83FBFD8C025A1C006 -S31540015FF09007BFD89207BFD07FFFF55E9407BFC811 -S31540016000DA046004C207BFC88090400D1280000ABE -S315400160101B000070C205A1C09A13601F1900001031 -S315400160208208400D9813200480A0400C0280000491 -S31540016030010000007FFFAC7A90102011C025A1C05D -S31540016040111088007FFFF63713100100031066C94F -S31540016050821062CA80A2000112800006010000007F -S31540016060C205A1C080A06000028000051111BBFEDF -S315400160707FFFAC6B901020111111BBFE901223FFD4 -S315400160807FFFF628130C7040031527CA8210611E44 -S3154001609080A200011280000601000000C205A1C0D5 -S315400160A080A06000028000051310C7FF7FFFAC5C33 -S315400160B0901020111310C7FF921263FC7FFFF6194F -S315400160C0111E607E031D73FC8210633880A200019D -S315400160D01280000601000000C205A1C080A0600038 -S315400160E002800005130FE0007FFFAC4D9010201198 -S315400160F0130FE000921260017FFFF60A11002000A3 -S3154001610080A220001280000A1B000070C205A1C0B7 -S315400161109A13601F190000108208400D981320043D -S3154001612080A0400C02800005110FE0007FFFAC3CCF -S3154001613090102011110FE000C025A1C07FFFF5F995 -S3154001614092100008030FE00080A2000112800006B1 -S3154001615001000000C205A1C080A0600002800005C8 -S31540016160130FE0007FFFAC2E90102011130FE000BB -S31540016170921260017FFFF5EB1100200080A2200002 -S315400161801280000A1B000070C205A1C09A13601F4D -S31540016190190000108208400D9813200480A0400C7D -S315400161A0028000051B1000857FFFAC1D9010201159 -S315400161B01B100085921360E8C025A1C09007BFF06F -S315400161C07FFFF4DE9415215019100085C20320E8A3 -S315400161D0DA05215080A34001821521501280000723 -S315400161E0981320E8DA006004C203200480A340012A -S315400161F0028006BA010000007FFFAC099010201210 -S315400162001B100085921360D09007BFF07FFFF4CB3F -S315400162109415215019100085C20320D0DA0521506A -S3154001622080A340018215215012800007981320D087 -S31540016230DA006004C203200480A34001028006AC58 -S31540016240010000007FFFABF6901020129007BFF0CF -S315400162509215E0C87FFFF4B994152150C205E0C8F4 -S31540016260DA05215080A34001821521501280000792 -S315400162709815E0C8DA006004C203200480A34001F7 -S31540016280028006A0010000007FFFABE590102012BE -S315400162901B100085921360B89007BFF07FFFF4A7EB -S315400162A094152150C20720B0DA05215080A3400140 -S315400162B08215215012800007981720B0DA00600439 -S315400162C0C203200480A34001028006931B00007094 -S315400162D07FFFABD3901020129007BFF0921660F06B -S315400162E07FFFF49694152150C205A1C01B00007092 -S315400162F08208400D1900002080A0400C2110014465 -S3154001630002800004231000807FFFABC5901020124D -S3154001631094142150C02461C09007BFE87FFFF487E1 -S315400163209207BFF0DA042150C207BFE880A34001BB -S315400163301280000794142150DA02A004C207BFEC70 -S3154001634080A34001028006DE010000007FFFABB45E -S31540016350901020120310008519100085901060E8F6 -S31540016360921320D87FFFF47594152150C20720B0AF -S31540016370DA05215080A34001821521501280000781 -S31540016380981720B0DA006004C203200480A34001BC -S31540016390028006D01B0000707FFFABA19010201237 -S315400163A0C025A1C09007BFE89215E0C87FFFF463FE -S315400163B094152150C205E0C8DA05215080A3400159 -S315400163C082152150128000079815E0C8DA00600452 -S315400163D0C203200480A34001028006C701000000D9 -S315400163E07FFFAB8F901024991B100085921360B8E4 -S315400163F09007BFE87FFFF45194152150C20720B0A2 -S31540016400DA05215080A340018215215012800007F0 -S31540016410981720B0DA006004C203200480A340012B -S31540016420028006BA1B0000707FFFAB7D90102012E0 -S315400164309007BFE8921660F07FFFF4409415215013 -S31540016440C205A1C01B0000708208400D1900002042 -S3154001645080A0400C211001440280000423100080DA -S315400164607FFFAB6F9010201294142150C02461C05D -S315400164709016E0E07FFFF4319207BFF0C206E0E0FC -S31540016480DA04215080A34001941421501280000760 -S315400164908216E0E0DA02A004C200600480A3400153 -S315400164A0028006A4010000007FFFAB5D9010201220 -S315400164B09016E0E09207BFE87FFFF4209415215043 -S315400164C0C20720B0DA05215080A340018215215030 -S315400164D012800007981720B0DA006004C203200436 -S315400164E080A34001028006981B0000707FFFAB4CE1 -S315400164F090102012C025A1C09016E0E09215E0C888 -S315400165007FFFF40E94152150C205E0C8DA052150EB -S3154001651080A3400182152150128000079815E0C8DA -S31540016520DA006004C203200480A340010280068F82 -S31540016530010000007FFFAB3A901020120310008546 -S31540016540921060B89016E0E07FFFF3FC941521505D -S31540016550C20720B0DA05215080A34001821521509F -S3154001656012800007981720B0DA006004C2032004A5 -S3154001657080A34001028006821B0000707FFFAB288A -S31540016580901020129016E0E0921660F07FFFF3EB38 -S3154001659094152150C205A1C01B0000708208400D10 -S315400165A01900002080A0400C211001440280000403 -S315400165B0231000807FFFAB1A9010201294142150B3 -S315400165C0C02461C09015E0C87FFFF3DC9207BFF09D -S315400165D0C205E0C8DA04215080A340019414215039 -S315400165E0128000078215E0C8DA02A004C2006004E6 -S315400165F080A340010280061E010000007FFFAB0818 -S31540016600901020129015E0C89207BFE87FFFF3CBA8 -S3154001661094152150C205E0C8DA05215080A34001F6 -S3154001662082152150128000079815E0C8DA006004EF -S31540016630C203200480A3400102800612010000002B -S315400166407FFFAAF7901020129015E0C89216E0E05D -S315400166507FFFF3BA94152150C205E0C8DA052150EF -S3154001666080A3400182152150128000079815E0C889 -S31540016670DA006004C203200480A3400102800606BA -S31540016680010000007FFFAAE6901020129015E0C895 -S31540016690921000087FFFF3A994152150C205E0C866 -S315400166A0DA05215080A3400182152150128000074E -S315400166B09815E0C8DA006004C203200480A34001B3 -S315400166C0028005FA010000007FFFAAD59010201232 -S315400166D0191000859015E0C8921320B87FFFF397F3 -S315400166E09415215003000070A610601FDA05A1C061 -S315400166F0030000109A0B4013AA10601080A34015A6 -S3154001670025100085231001440280000421100080D9 -S315400167107FFFAAC390102012C02421C09014A0B8B4 -S315400167209207BFF07FFFF38594146150C20421C0E4 -S315400167308208401380A04015028000040100000039 -S315400167407FFFAAB790102012C02421C09014A0B890 -S315400167509207BFE87FFFF37994146150C20421C0C8 -S315400167608208401380A04015028000040100000009 -S315400167707FFFAAAB90102012C02421C09014A0B86C -S315400167809216E0E07FFFF36D94146150C20421C07C -S315400167908208401380A04015028000051310008531 -S315400167A07FFFAA9F9010201213100085C02421C09C -S315400167B0921260C89014A0B87FFFF36094146150A0 -S315400167C0C20421C08208401380A040150280000502 -S315400167D09014A0B87FFFAA92901020129014A0B8EE -S315400167E0C02421C0921000087FFFF35494146150D5 -S315400167F0C20421C08208401380A0401502800004D3 -S31540016800010000007FFFAA8690102012C02421C0FB -S315400168109014A0B8921660F07FFFF348941461502B -S31540016820C20421C08330600E8208600380A06002EA -S31540016830228000051103C0007FFFAA799010201223 -S315400168401103C0007FFFF57F3B100084A4176390BE -S31540016850AA146150C02421C0A604A008A210200099 -S31540016860B0102005A0044012920440139415215003 -S315400168707FFFF33290100010DA042010C205215038 -S31540016880A204601880A340011280000790102012D4 -S31540016890DA042014C205600480A340010280047416 -S315400168A0010000007FFFAA5E01000000B0863FFFA5 -S315400168B03CBFFFEEA004401211100085901220202B -S315400168C0920220087FFFF31D94152150981763907B -S315400168D0C2052150DA0320A080A34001128000079F -S315400168E082152150DA0320A4C200600480A340012E -S315400168F0028004DC1B0000707FFFAA499010201221 -S315400169001110008590122038C025A1C0920220089E -S315400169107FFFF30A9415215098176390C2052150C1 -S31540016920DA0320B880A34001128000078215215066 -S31540016930DA0320BCC200600480A340010280047FC8 -S315400169401B0000707FFFAA3690102012111000859F -S3154001695090122050C025A1C0920220087FFFF2F775 -S315400169609415215098176390C2052150DA0320D01F -S3154001697080A340011280000782152150DA0320D4FA -S31540016980C200600480A34001028004761B000070AF -S315400169907FFFAA23901020121110008590122068C3 -S315400169A0C025A1C0920220087FFFF2E49415215030 -S315400169B098176390C2052150DA0320E880A340016D -S315400169C01280000782152150DA0320ECC2006004D0 -S315400169D080A340010280046D1B0000707FFFAA1056 -S315400169E0901020121110008590122080C025A1C060 -S315400169F0920220087FFFF2D1941521509817639097 -S31540016A00C2052150DA03210080A34001128000070C -S31540016A1082152150DA032104C200600480A340019B -S31540016A20028004641B0000707FFFA9FD90102012B4 -S31540016A30C025A1C0111010007FFFF3B01310000054 -S31540016A400310300080A20001128000060100000000 -S31540016A50C205A1C080A0600002800005111FE000B0 -S31540016A607FFFA9EF90102012111FE00013100000C4 -S31540016A707FFFF2B794152150031FFC00DA05215020 -S31540016A8080A340011280000A82152150C200600491 -S31540016A9080A060001280000601000000C205A1C06E -S31540016AA080A0600002800005111FE0007FFFA9DC85 -S31540016AB09010201B111FE000133000007FFFF2A44D -S31540016AC094152150033FFC00DA05215080A3400173 -S31540016AD01280000A82152150C200600480A0600025 -S31540016AE01280000601000000C205A1C080A060001E -S31540016AF002800005111000007FFFA9C99010201CDB -S31540016B0011100000921020107FFFF2919415215030 -S31540016B10C205A1C01B0000708208400D190000206B -S31540016B2080A0400C21100144028000042310008003 -S31540016B307FFFA9BB9010201D94142150C02461C031 -S31540016B40110020007FFFF282130FC000DA042150AA -S31540016B50030E000080A340011280000A94142150C4 -S31540016B60C202A00480A0600012800006010000005D -S31540016B70C20461C080A0600002800005111FDFFFD2 -S31540016B807FFFA9A79010201E111FDFFF901223FF40 -S31540016B90131000007FFFF26E941521500311FFFF81 -S31540016BA0821063FFDA05215080A34001128000075D -S31540016BB082152150DA0060040338000080A34001A9 -S31540016BC002800405010000007FFFA9959010201F57 -S31540016BD0111FD000130FF0007FFFF25D9415215075 -S31540016BE00311FC80DA05215080A340011280000A7E -S31540016BF082152150C200600480A060001280000608 -S31540016C0001000000C205A1C080A06000028000050D -S31540016C10111FDFFF7FFFA98290102021111FDFFF87 -S31540016C20901223FF921000087FFFF24994152150DC -S31540016C300313FBFF821063FFDA05215080A3400155 -S31540016C401280000882152150DA00600403300000EA -S31540016C508210602080A34001028003E4010000000D -S31540016C607FFFA96F901020207FFFF4761103C000AB -S31540016C70C025A1C09007BFE07FFFF2449215215085 -S31540016C80C207BFE0DA05215080A340011280000708 -S31540016C9082152150DA006004C207BFE480A3400197 -S31540016CA0028003D7010000007FFFA95D90102013E9 -S31540016CB01B100085901360E87FFFF2349215215036 -S31540016CC003100085DA0060E8C205215080A0400D1E -S31540016CD0191000858215215012800007901320E873 -S31540016CE0DA006004C202200480A34001028003C985 -S31540016CF0010000007FFFA94A901020131B10008558 -S31540016D00901360D07FFFF221921521501910008512 -S31540016D10C20320D0DA05215080A3400182152150BB -S31540016D2012800007981320D0DA006004C2032004C1 -S31540016D3080A34001028003BC010000007FFFA93807 -S31540016D40901020131B100085901360D87FFFF20F1F -S31540016D5092152150C20720B0DA05215080A3400187 -S31540016D608215215012800007981720B0DA0060047E -S31540016D70C203200480A34001028003B01B000070BF -S31540016D807FFFA9279010201303100085901060B84B -S31540016D90C025A1C07FFFF1FD92152150C20720B049 -S31540016DA0DA05215080A34001821521501280000747 -S31540016DB0981720B0DA006004C203200480A3400182 -S31540016DC00280040F1B0000707FFFA915901020134D -S31540016DD0C025A1C09015E0C87FFFF1EC9215215066 -S31540016DE0C2052150DA05E0C880A0400D8215215028 -S31540016DF0128000079015E0C8DA006004C202200440 -S31540016E0080A3400102800407010000007FFFA9041E -S31540016E1090102013170C00089A10200019100C002E -S31540016E2015300F789612E001D83FBFF0D43FBFC06E -S31540016E309007BFF07FFFF1D5921521500310040052 -S31540016E40DA05215080A340011280000A82152150A3 -S31540016E50C200600480A060001280000601000000AC -S31540016E60C205A1C080A06000028000059007BFC096 -S31540016E707FFFA8EB901020139007BFC07FFFF1C39F -S31540016E8092152150C2052150DA0720B080A0400D4D -S31540016E908215215012800007981720B0DA0060044D -S31540016EA0C203200480A34001028003E31B0000705B -S31540016EB07FFFA8DB90102013901660F07FFFF1B39F -S31540016EC092152150C205A1C08330600E820860032D -S31540016ED080A0600202800004211000807FFFA8D0BC -S31540016EE090102013C02421C07FFFF2981111F200A7 -S31540016EF00310E80080A20001128000060100000094 -S31540016F00C20421C080A0600002800004010000008C -S31540016F107FFFA8C3901020137FFFF3CA1110000012 -S31540016F201101F5897FFFF289901221E20308E96494 -S31540016F3080A200011280000601000000C205A1C026 -S31540016F4080A0600002800004010000007FFFA8B419 -S31540016F50901020237FFFF27D1112A20803114100F8 -S31540016F6080A200011280000601000000C205A1C0F6 -S31540016F7080A0600002800004010000007FFFA8A8F5 -S31540016F80901020237FFFF3AF110010009007BFF050 -S31540016F90921660F07FFFF1649415215003100C00A6 -S31540016FA0DA05215080A340011280000A8215215042 -S31540016FB0C200600480A0600012800006010000004B -S31540016FC0C205A1C080A0600002800005901660F055 -S31540016FD07FFFA89390102014901660F09207BFC0CF -S31540016FE07FFFF1569415215003200000DA05215008 -S31540016FF080A340011280000A82152150C20060041C -S3154001700080A060001280000601000000C205A1C0F8 -S3154001701080A0600002800004010000007FFFA8807C -S31540017020901020147FFFF19190102001030FE00092 -S3154001703080A200011280000601000000C205A1C025 -S3154001704080A0600002800004010000007FFFA87458 -S31540017050901020147FFFF17D90102001030FFC005A -S3154001706080A200011280000880A260001280000602 -S3154001707001000000C205A1C080A06000028000049A -S31540017080010000007FFFA866901020147FFFF36D7A -S315400170901110100019100085D41B20D07FFFF1F983 -S315400170A0D01E60F003100085D03D2150DA0060D833 -S315400170B0C205215080A0400D19100085821521502E -S315400170C012800007901320D8DA006004C20220041F -S315400170D080A3400102800361010000007FFFA850A8 -S315400170E0901020227FFFF3571110000017040080F3 -S315400170F0150F28009612E0F09A102000190FFC0097 -S31540017100D43FBFC0D83FBFF09007BFF09207BFC082 -S315400171107FFFF10594152150030FFC00DA0521503C -S3154001712080A340011280000682152150C2006004EE -S3154001713080A0600002800004010000007FFFA838A3 -S31540017140901020157FFFF33F1120000017000040EB -S31540017150150014009612E0019A102000190FFC0048 -S31540017160D43FBFC0D83FBFF09007BFF09207BFC022 -S315400171707FFFF0ED94152150030FFC00DA052150F5 -S3154001718080A340011280000682152150C20060048E -S3154001719080A0600102800004010000007FFFA8205A -S315400171A0901020157FFFF327113000001700004093 -S315400171B0152014009612E0019A102000192FFC00A8 -S315400171C0D43FBFC0D83FBFF09007BFF09207BFC0C2 -S315400171D07FFFF0D594152150032FFC00DA0521508D -S315400171E080A340011280000682152150C20060042E -S315400171F080A0600102800004010000007FFFA80812 -S31540017200901020157FFFF30F11100000190FFC009D -S315400172109A102000D83FBFF09007BFF09216E0E0E9 -S315400172207FFFF0C194152150C206E0E0DA052150F6 -S3154001723080A3400182152150128000079816E0E094 -S31540017240DA006004C203200480A3400102800004E6 -S31540017250010000007FFFA7F2901020157FFFF2F991 -S315400172601120000017000040150014009612E0019D -S31540017270190FFC009A102000D43FBFC0D83FBFF081 -S315400172809007BFF09216E0E07FFFF0A794152150DA -S31540017290C206E0E0DA05215080A340018215215063 -S315400172A0128000079816E0E0DA006004C203200469 -S315400172B080A3400102800004010000007FFFA7D89F -S315400172C0901020157FFFF2DF1130000017000040BB -S315400172D0152014009612E0019A102000192FFC0087 -S315400172E0D43FBFC0D83FBFF09007BFF09216E0E051 -S315400172F07FFFF08D94152150C2052150DA06E0E05A -S3154001730080A0400D82152150128000079016E0E0C2 -S31540017310DA006004C202200480A340010280000416 -S31540017320010000007FFFA7BE901020157FFFF2C528 -S315400173301110000015100000961020019A1020012E -S31540017340190FFC00D43FBFC0D83FBFF09007BFF034 -S315400173509207BFC07FFFF0799415215003100000BA -S31540017360DA05215080A34001128000068215215082 -S31540017370C200600480A06002028000040100000097 -S315400173807FFFA7A7901020157FFFF2AE11200000C6 -S315400173909007BFF09207BFC07FFFF0689415215058 -S315400173A003100000DA05215080A340011280000637 -S315400173B082152150C200600480A06003028000044F -S315400173C0010000007FFFA796901020157FFFF29DD8 -S315400173D0113000009A102001192FFC00D83FBFF050 -S315400173E09007BFF09207BFC07FFFF054941521501C -S315400173F003300000DA05215080A3400112800006C7 -S3154001740082152150C200600480A0600302800004FE -S31540017410010000007FFFA782901020157FFFF289AF -S3154001742011100000150FFC04172F26159412A012F7 -S315400174309612E231190FFEAE1B1CD2E89A13601167 -S3154001744098132154D43FBFC0D83FBFF09007BFF037 -S315400174509207BFC07FFFF04794152150030FFEA747 -S3154001746082106296DA05215080A3400112800008FD -S3154001747082152150DA006004032C1B348210602FE0 -S3154001748080A3400102800004010000007FFFA76441 -S31540017490901020157FFFF26B112000009007BFF07E -S315400174A09207BFC07FFFF03394152150030FFEA70B -S315400174B082106296DA05215080A3400112800008AD -S315400174C082152150DA006004032C1B34821060308F -S315400174D080A3400102800004010000007FFFA75005 -S315400174E0901020157FFFF25711300000192FFC0430 -S315400174F01B2F26159A13623198132012D83FBFC00D -S315400175009007BFF09207BFC07FFFF01A9415215034 -S31540017510032FFEA782106296DA05215080A340010F -S315400175201280000882152150DA006004032C1B34B6 -S315400175308210603080A340010280000401000000F7 -S315400175407FFFA737901020157FFFF23E11100000F4 -S3154001755015101000961020009A10200019103800BE -S31540017560D43FBFC0D83FBFF09007BFF09207BFC01E -S315400175707FFFF0009415215003102400DA052150B5 -S3154001758080A340011280000682152150C20060048A -S3154001759080A0600002800004010000007FFFA72058 -S315400175A0901020157FFFF227112000009007BFF0B1 -S315400175B09207BFC07FFFEFEF9415215003102400BF -S315400175C0DA05215080A34001128000068215215020 -S315400175D0C200600480A06000028000040100000037 -S315400175E07FFFA70F901020157FFFF2161130000084 -S315400175F09007BFF09207BFC07FFFEFDE9415215081 -S3154001760003102400DA05215080A3400112800006B0 -S3154001761082152150C200600480A0600002800004EF -S31540017620010000007FFFA6FE901020157FFFF205A6 -S3154001763011100000210FE000110020007FFFF0B97A -S315400176409214200180A22000128001230100000033 -S315400176507FFFF1FC11200000110020007FFFF0B1F7 -S315400176609214200180A2200012800118010000001E -S315400176707FFFF1F411300000921420017FFFF0A941 -S315400176801100200080A220001280010D010000009F -S315400176907FFFF1EC111000009A102000190FFC0039 -S315400176A0D83FBFF09007BFF07FFFEFB8921521504A -S315400176B0C207BFF0DA05215080A3400112800007BE -S315400176C082152150DA006004C207BFF480A340014D -S315400176D0028002A7010000007FFFA6D1901020156D -S315400176E07FFFF1D8112000009007BFF07FFFEFA781 -S315400176F092152150C207BFF0DA05215080A34001FF -S315400177001280000782152150DA006004C207BFF4D7 -S3154001771080A340010280029B010000007FFFA6C0BA -S31540017720901020157FFFF1C7113000009007BFF080 -S315400177307FFFEF9692152150C207BFF0DA0521501F -S3154001774080A340011280000782152150DA006004AF -S31540017750C207BFF480A340010280028F01000000EE -S315400177607FFFA6AF901020157FFFF1B611100000E4 -S31540017770030FDFFF901063FF7FFFF074A010000836 -S3154001778080A2001002800004010000007FFFA6A431 -S31540017790901020157FFFF1AB112000007FFFF06BA9 -S315400177A090100010030FE00080A200010280000447 -S315400177B0010000007FFFA69A901020157FFFF1A1DE -S315400177C0113000007FFFF0619010001080A2001080 -S315400177D002800004010000007FFFA6919010201551 -S315400177E07FFFF198901020007FFFF06090152150A7 -S315400177F0032FFE00DA05215080A3400112800006C6 -S3154001780082152150C200600480A0600002800005FC -S31540017810211001447FFFA6829010201621100144B9 -S315400178207FFFF05C90142158DA042158032FF000B1 -S3154001783080A3400102800004A21421587FFFA6784C -S31540017840901020167FFFF05D90100011DA04215848 -S31540017850030FE00080A34001028000040100000004 -S315400178607FFFA66F901020167FFFF0649015215080 -S31540017870030FFBF7821063F0DA05215080A3400124 -S315400178801280000882152150DA0060040303FF12BA -S315400178908210604A80A3400102800005921660F082 -S315400178A07FFFA65F90102016921660F09007BFF0FA -S315400178B07FFFEF3094152150C205A1C08330600E81 -S315400178C08208600780A06002028000051910004D01 -S315400178D07FFFA653901020171910004D17100080F6 -S315400178E0DA02E1C88213217880A0400DE0032178B5 -S315400178F002800004A212E1C87FFFA6499010201819 -S31540017900C204600480A0401002800004010000000F -S315400179107FFFA64390102018C204600880A0600033 -S315400179201280007701000000C204600C80A0600054 -S315400179301280006C010000007FFFEEE601000000AE -S3154001794080A220010280019801000000190C402903 -S315400179501B23CD1B9A13609B98132006941020007D -S3154001796096102000D83FBFF0D43FBFC07FFFEF2F16 -S315400179709007BFF003100083A21062101B10008114 -S3154001798003100144A0136210A4106150B0102000EE -S31540017990832E2002DA044001DA27BFC09007BFC018 -S315400179A07FFFEF25921521509B2E2003D804000D11 -S315400179B0C2052150B00620019603401080A3000164 -S315400179C01280000790102019DA02E004C204A004D4 -S315400179D080A340010280000580A620FF7FFFA610FC -S315400179E00100000080A620FF04BFFFEB832E20028A -S315400179F003100083A41062101B1000800310014481 -S31540017A00A2136210A6106150B0102000A12E2002D0 -S31540017A10C2048010C227BFC0921521507FFFEEDB02 -S31540017A209007BFC0DA044010C2052150B0062002BB -S31540017A309804001180A34001128000079010201A7B -S31540017A40DA032004C204E00480A340010280000559 -S31540017A5080A620FF7FFFA5F20100000080A620FF3F -S31540017A6024BFFFECA12E200230800211C205A1C025 -S31540017A7080A0600022BFFB8FB0863FFF30BFFB8AEC -S31540017A80C205A1C080A0600002BFF145010000000F -S31540017A9030BFF141C205A1C080A0600002BFF136EE -S31540017AA00100000030BFF132C205A1C080A06000D4 -S31540017AB002BFF1270100000030BFF1237FFFA5D8A7 -S31540017AC09010201530BFFEF37FFFA5D590102015ED -S31540017AD030BFFEE87FFFA5D29010201530BFFEDDF6 -S31540017AE07FFFA5CF9010201830BFFF947FFFA5CC14 -S31540017AF09010201010BFF678111000847FFFA5C8A2 -S31540017B009010201830BFFF89C207BFCC80A060000B -S31540017B1012BFF8F501000000C20421C082084015D9 -S31540017B209A16A00880A0400D12BFF8EF0100000090 -S31540017B3010BFF8F015108683C205A1C09A13601FC5 -S31540017B40190000108208400D9813200880A0400CAF -S31540017B5012BFFB7D1110008510BFFB7F9012205094 -S31540017B60C205A1C09A13601F190000108208400D7A -S31540017B709813200880A0400C12BFFB861110008587 -S31540017B8010BFFB8890122068C205A1C09A13601FDE -S31540017B90190000108208400D9813200480A0400C63 -S31540017BA012BFFB8F1110008510BFFB9190122080F0 -S31540017BB0C205A1C09A13601F190000108208400D2A -S31540017BC09813200880A0400C12BFFB9801000000CA -S31540017BD030BFFB98C205A1C080A0600002BFFBFE7A -S31540017BE0111FD00030BFFBF9C205A1C080A06000C3 -S31540017BF002BFFC1E0100000030BFFC1AC205A1C035 -S31540017C0080A0600002BFFC2C1B10008530BFFC2702 -S31540017C10C205A1C080A0600002BFFC3A1B100085CE -S31540017C2030BFFC35C205A1C080A0600002BFFC4741 -S31540017C301B10008530BFFC42C205A1C09A13601FCC -S31540017C40190000108208400D9813201080A0400CA6 -S31540017C5012BFFC4C0310008510BFFC4E901060B85B -S31540017C60C205A1C09A13601F190000108208400D79 -S31540017C709813200480A0400C12BFFB2011100085F0 -S31540017C8010BFFB2290122038C205A1C080A060001F -S31540017C9022BFF8D0150FFFFF30BFF8CBC205A1C0F8 -S31540017CA080A0600002BFF8100310008530BFF80BBA -S31540017CB0C205A1C09A13601F190000108208400D29 -S31540017CC09813201080A0400C12BFF8169015E0C8FA -S31540017CD010BFF818921660F0C205A1C080A06000DE -S31540017CE002BFF9491B10008530BFF944C205A1C046 -S31540017CF080A0600002BFF9579007BFF030BFF9522C -S31540017D00C205A1C080A0600002BFF9631B100085B7 -S31540017D1030BFF95EC205A1C09A13601F1900001059 -S31540017D208208400D9813201080A0400C12BFF969BB -S31540017D309007BFF010BFF96B921660F0C20461C0A4 -S31540017D4080A0600002BFF74B1B10008530BFF7468D -S31540017D50C205A1C080A0600002BFF75A9016E0E0BC -S31540017D6030BFF755C205A1C09A13601F1900001014 -S31540017D708208400D9813201080A0400C12BFF75F77 -S31540017D800100000030BFF75FC205A1C080A06000BE -S31540017D9002BFF76F1B10008530BFF76AC205A1C04D -S31540017DA09A13601F190000108208400D9813201085 -S31540017DB080A0400C12BFF7750100000030BFF77577 -S31540017DC0C20461C080A0600002BFF7949015E0C86C -S31540017DD030BFF78FC205A1C080A0600002BFF7A0E7 -S31540017DE09015E0C830BFF79BC205A1C080A06000D6 -S31540017DF002BFF7AC9015E0C830BFF7A7C205A1C0D6 -S31540017E009A13601F190000108208400D9813201024 -S31540017E1080A0400C12BFFBED0100000030BFFBED1E -S31540017E20C205A1C080A0600002BFFBFC170C000880 -S31540017E3030BFFBF7C205A1C09A13601F190000109D -S31540017E408208400D9813201080A0400C12BFFC19E7 -S31540017E50901660F030BFFC1AC205A1C080A0600038 -S31540017E6002BFFCA10100000030BFFC9DC20461C0FD -S31540017E7080A0600002BFF9E59015E0C830BFF9E087 -S31540017E80C205A1C080A0600002BFF9F19015E0C80B -S31540017E9030BFF9ECC205A1C080A0600002BFF9FD68 -S31540017EA09015E0C830BFF9F8C205A1C080A06000B6 -S31540017EB002BFFA091910008530BFFA04C20461C035 -S31540017EC080A0600002BFF9250310008530BFF9206C -S31540017ED0C205A1C09A13601F190000108208400D07 -S31540017EE09813201080A0400C12BFF92C010000000D -S31540017EF030BFF92CC205A1C080A0600002BFF93C89 -S31540017F001B10008530BFF937C205A1C09A13601F07 -S31540017F10190000108208400D9813201080A0400CD3 -S31540017F2012BFF9429007BFE810BFF944921660F0BC -S31540017F30C20461C080A0600002BFF95F9016E0E014 -S31540017F4030BFF95AC205A1C09A13601F190000102B -S31540017F508208400D9813201080A0400C12BFF9648E -S31540017F600100000030BFF964C205A1C080A06000D5 -S31540017F7002BFF9740310008530BFF96FC205A1C075 -S31540017F809A13601F190000108208400D98132010A3 -S31540017F9080A0400C12BFF97A9016E0E010BFF97C40 -S31540017FA0921660F07FFFA49E9010201910BFFE69C3 -S31540017FB0190C4029D80061C01B0000709A13601F3C -S31540017FC003000010980B000D8210600880A3000189 -S31540017FD012BFF5501110008410BFF5529012236064 -S31540017FE0C205A1C09A13601F190000108208400DF6 -S31540017FF09813200480A0400C12BFF558111000843C -S3154001800010BFF55A90122378C205A1C09A13601F7A -S31540018010190000108208400D9813200480A0400CDE -S3154001802012BFF5600100000030BFF560C205A1C076 -S3154001803080A0600002BFF4A90310008530BFF4A4FC -S31540018040C205A1C080A0600002BFF4939015E0C8AC -S3154001805030BFF48EC205A1C080A0600002BFF47D8E -S315400180609015E0C830BFF478C20461C080A06000BA -S3154001807002BFF4679015E0C830BFF462C205A1C0E3 -S315400180809A13601F190000108208400D98132002B0 -S3154001809080A0400C12BFF5B61B10008510BFF5B885 -S315400180A0921360D0C205A1C080A0600002BFF5C591 -S315400180B09007BFF030BFF5C0C205A1C080A06000E7 -S315400180C002BFF5D10310008530BFF5CCC205A1C072 -S315400180D09A13601F190000108208400D9813201052 -S315400180E080A0400C12BFF5D79007BFF010BFF5D95D -S315400180F0921660F0C20461C080A0600022BFF5F311 -S315400181001910008530BFF5EEC205A1C09A13601F54 -S31540018110190000108208400D9813201080A0400CD1 -S3154001812012BFF5F91B10008510BFF5FB0310008542 -S31540018130C205A1C080A0600002BFF60B9007BFE850 -S3154001814030BFF606C205A1C080A0600002BFF61787 -S315400181501B10008530BFF612C20421C080A060000A -S3154001816022BFF03E113C02AF30BFF039C205A1C07B -S3154001817080A0600002BFFD5B0100000030BFFD57DB -S31540018180C205A1C080A0600002BFFD6701000000DA -S3154001819030BFFD63C205A1C080A0600002BFFD7370 -S315400181A00100000030BFFD6FC205A1C080A0600084 -S315400181B002BFF2D70310008530BFF2D2C205A1C07B -S315400181C080A0600002BFF2C19007BFF030BFF2BC91 -S315400181D0C205A1C080A0600002BFF2AA3710008587 -S315400181E030BFF2A5C205A1C080A0600002BFF02841 -S315400181F01111FC0030BFF023C205A1C09A13601FC4 -S31540018200190000108208400D9813201080A0400CE0 -S3154001821012BFF3DD9016E0E010BFF3DF921660F077 -S31540018220C205A1C080A0600002BFF39E1B1000855D -S3154001823030BFF399C205A1C080A0600002BFF3869A -S315400182401B10008530BFF381C205A1C080A060002C -S3154001825002BFF36E1B10008530BFF369C20461C0D3 -S3154001826080A0600002BFF3589016E0E030BFF353A0 -S31540018270C205A1C080A0600002BFF30E191000859F -S3154001828030BFF309C205A1C080A0600002BFF2F869 -S315400182909007BFE830BFF2F3C20461C080A060001E -S315400182A002BFF2E29007BFE830BFF2DD81C7E008C6 -S315400182B081E80000D27A000081C3E0080100000095 -S315400182C081C3E008900A2020933260049212600133 -S315400182D08213C0007FFFFFF89E104000010000009E -S315400182E081D8200081C3E008010000009DE3BF98CA -S315400182F07FFFFFFC0100000082102400C0A0430064 -S3154001830081C7E00881E80000833220189A100008EE -S315400183108088600F02800004901020008333601033 -S315400183209008600381C3E008010000009DE3BF9807 -S31540018330031000C01B1000C1B0106000A213600002 -S31540018340031000C21B1000C2A4106000A6136100F6 -S31540018350031000201B100020A8106160AA136000C2 -S315400183607FFFEBAD9010200C808A2008028001FE31 -S31540018370010000007FFFA3A59010200ED0800320AE -S315400183807FFFFFE2010000000310014380A22002AB -S31540018390028000C6D02060D480A22002148000E46E -S315400183A080A2200380A22001028000D182102019E0 -S315400183B0331000A02F1000A0391000A0371000A0E4 -S315400183C0351000A07FFFFFC7210100007FFFFFC8D6 -S315400183D0BA04A00C921000117FFFFFBC9010001848 -S315400183E0921000117FFFFFB99006200490100011F2 -S315400183F07FFFFFB19210200ADA06601411080000CF -S31540018400913A000DC205E010900A0001912A20021E -S3154001841013008000900200117FFFFFA79212600AAD -S31540018420DA06601411100000913A000DC205E01001 -S31540018430900A0001912A2002900200117FFFFF9EBF -S315400184409214208EDA066014111C0000913A000D38 -S31540018450C205E010900A0001912A20021301C000D2 -S31540018460900200117FFFFF949212608E9334A00414 -S315400184709004600C7FFFFF90921260019214201EBF -S315400184807FFFFF8D9004A0089010001D7FFFFF8A9B -S31540018490921020009334E004921260017FFFFF8620 -S315400184A09004A004111000C2901221087FFFFF82A0 -S315400184B092102000031000E0A010600093342004C5 -S315400184C0111000C2901221047FFFFF7B9212601AA5 -S315400184D003048D1582106278C2242004111000E035 -S315400184E015100120C0222000A2102003AC12A000CA -S315400184F0A004E00C90047FFD40000A759210200311 -S315400185001B100143C20360D48200600C932A000110 -S315400185109202401693326004901000107FFFFF666E -S315400185209212601EA204600180A4600A04BFFFF299 -S31540018530A0042004C206E008D807200C8208600186 -S315400185408328400CD605E010111000E0D406A000A7 -S31540018550DA06601498122000960AE003972AC00DA5 -S31540018560920AA002111000A0DA022004940AA00186 -S31540018570952A800D932A400D1B1000209612C001AA -S31540018580E8236158030100001B0076418210601EFA -S315400185909A1361C09212C00999332004C22520045E -S315400185A0DA2520089612C00A9E13200E91356004E2 -S315400185B01B1000C2031000C2821061049012201EDB -S315400185C0953620049813201E9A136108D625202C2F -S315400185D0D8252010D025201CD2252020DE25202874 -S315400185E0D6252014940ABFF0FA250000DA25201872 -S315400185F0C2252024C225200CA2102100D4A4432048 -S31540018600C2800320D88443209A102001A010220062 -S31540018610DAA40320D884032082102000C2A40320B8 -S31540018620DAA0032081D820007FFFBE790100000037 -S31540018630C2800320E2844320E0840320DA05E0106F -S31540018640D6066014C206E0089A0B60039B2B400BCA -S3154001865082086001D407200CD806A000111000A0A2 -S315400186608328400A980B2001D60220049A13400120 -S31540018670992B000B9A13400CC203400080A0600066 -S3154001868012800008821360041B048D15D800400037 -S315400186909A13627880A3000D02800038C205E0106B -S315400186A010800000010000008210201A331000A043 -S315400186B0C22660149810203F2F1000A0391000A048 -S315400186C0351000A09A1020148210200E151000A01B -S315400186D0371000A0DA27200CC222A004D826A00019 -S315400186E0D825E01010BFFF38D826E0089A10207F21 -S315400186F0331000A02F1000A0C2266014DA25E01026 -S315400187009810203F391000A0351000A08210201388 -S315400187109A10200D111000A0371000A0C227200C7E -S31540018720DA22200410BFFFF0D826A00012BFFF2294 -S31540018730331000A08210201CC22660149A10201506 -S315400187408210207F391000A0371000A0DA27200CB4 -S31540018750C226E0089810200F2F1000A0351000A067 -S315400187601B1000A08210203FD8236004C226A0001F -S3154001877010BFFF15D825E010DA06E008D8066014C8 -S31540018780820860039A0B6002D607200C8328400CAE -S315400187909B2B400B8210400DD80040001B1000005F -S315400187A0C203400080A3000102800004D406E00811 -S315400187B01080000001000000C205E010980AA001E7 -S315400187C0D207200CD6066014820860038328400B2A -S315400187D0992B0009940AA0039810400CDA06A000D0 -S315400187E0111000A0952A80099A0B6001D602200437 -S315400187F08210400AC20040009B2B400B9813000D8B -S315400188000321D9509813200482106321C22300000A -S31540018810DA03000080A3400102800004C206E0089A -S315400188201080000001000000D407200CDA05E0109A -S3154001883082086001D60660148328400A9A0B6003B9 -S31540018840D806A0009B2B400B151000A0D602A00411 -S31540018850980B20019A134001992B000B9813400C59 -S315400188608210000C05048D158410A278072AF37B2B -S315400188708610E301C4384000C438400003048D1516 -S31540018880DA0300008210627880A34001028000046E -S315400188908213200410800000010000001B2AF37B94 -S315400188A0D80040009A13630180A3000D12BFFFFA5E -S315400188B0C205E010D6066014D806E00882086003B7 -S315400188C0D407200C8328400B980B2001DA06A00020 -S315400188D0111000A0992B000A9A0B6003D6022004BE -S315400188E08210400C9B2B400B15100143A010400DEC -S315400188F0F002A0D4A2102003E0240000C0A0022070 -S31540018900921020034000097290047FFD8206200CDC -S3154001891098102001912A0001992B00011B1001207A -S315400189209610000182136000DA02000180A3401014 -S31540018930A204600112800088A004000C80A4600A91 -S3154001894024BFFFEFE0240000C0A002200310012055 -S31540018950A810000BAA106000A0102000A21020034E -S3154001896090047FFD4000095A92102003832C600237 -S31540018970912A0014DA04C00190020015820B60604E -S315400189809132200480A000019012201EA0400010C8 -S315400189909A0B7F9F900A3F9F80A3400812800070E8 -S315400189A0A204600180A4600A24BFFFEF90047FFD0A -S315400189B080A4200012800004C205E010108000004F -S315400189C001000000D6066014D806E008820860035C -S315400189D0D407200CDA06A000111000A08328400B12 -S315400189E0980B2001992B000AD60220049A0B6002AB -S315400189F08210400C9B2B400BAA10400D9FC5400096 -S31540018A000100000082102400C0A04300C0A0022043 -S31540018A10A0102000A21020039B2C6002C204C00DAE -S31540018A208208606080A00001A0400010A20460019D -S31540018A3080A4600A24BFFFFA9B2C600280A4200810 -S31540018A4022800004D004E0041080000001000000F0 -S31540018A50808A204002800007010000007FFFFE1946 -S31540018A600100000080A220001280000401000000E5 -S31540018A7010800000010000007FFFFE12D004A00814 -S31540018A8080A2200012800004010000001080000036 -S31540018A90010000007FFFFE0BD004E00880A2200009 -S31540018AA01280000401000000108000000100000057 -S31540018AB083480000842860808188A000010000006E -S31540018AC00100000001000000D806E008D407200C90 -S31540018AD0DA05E010980B2001D6066014992B000A9E -S31540018AE09A0B6003C206A0009B2B400B151000A0F9 -S31540018AF0D602A004820860018328400B9A13400CD9 -S31540018B009A1340019A136004C20340009210200454 -S31540018B1091D02002010000007FFFBD3D0100000011 -S31540018B20981020009A102200D8A3432082102001D9 -S31540018B30C2A34320D8A3432003100000DA80438018 -S31540018B40DAA043807FFFBD979010200081D8200096 -S31540018B5030800005108000000100000010800000F8 -S31540018B600100000081C7E00891E820009DE3BF981D -S31540018B70400007D201000000808A21000280003FA8 -S31540018B80010000007FFFA1B501000000912A2004E9 -S31540018B907FFFA19E9002200503100140821060488C -S31540018BA0DA00600480A360002280001503100140B2 -S31540018BB0B0100001C20600009B38601F818360002F -S31540018BC0DA06200401000000010000008278400D11 -S31540018BD0DA062008B006200C80A0400D0280000471 -S31540018BE0901020017FFFA18E01000000C2062004E3 -S31540018BF080A0600012BFFFF00310014082106000A8 -S31540018C00DA00600480A360000280001501000000C4 -S31540018C10B0100001C206000081800000DA0620047F -S31540018C2001000000010000009A70400D8210000D05 -S31540018C30DA062008B006200C80A0400D0280000410 -S31540018C40901020027FFFA17601000000C206200499 -S31540018C5080A0600012BFFFF001000000400008251F -S31540018C600100000080A220001280000401000000E3 -S31540018C707FFFA16B9010200381C7E00891E8200097 -S31540018C809DE3BF987FFFA17501000000912A200452 -S31540018C907FFFA15E900220044000078A0100000088 -S31540018CA080A2212302800004010000007FFFA15C15 -S31540018CB0901020014000078101000000808A2100B8 -S31540018CC00280002B0310014082106184DA006008A3 -S31540018CD080A360090280001101000000B01000016C -S31540018CE0C2060000DA062004D80620088258400D44 -S31540018CF0B006200C80A0400C028000049010200297 -S31540018D007FFFA14701000000C206200880A060093C -S31540018D1012BFFFF401000000400007770100000088 -S31540018D2080A220000280000F01000000400007637E -S31540018D3001000000808A22000280000D010000002F -S31540018D404000079F0100000080A220001280000819 -S31540018D50010000007FFFA132901020043080000402 -S31540018D607FFFA12F9010200330BFFFF181C7E0089C -S31540018D7091E82000000000009DE3BFA09410200070 -S31540018D8011100063901221AC13100063921261B06E -S31540018D90171000639612E1B819100063981321BCAD -S31540018DA093C2000081C240001080019181C2C0007F -S31540018DB081C300001080018E9402A0019402A0019B -S31540018DC080A2A0031280018A0100000087440000AE -S31540018DD08D30E00E8C89A00780A1A000028000C7DB -S31540018DE001000000AF30E00BAE0DE00780A5E000CA -S31540018DF0128000C20100000080A1A002128000354D -S31540018E000100000025100000E41C80002510000030 -S31540018E1029100000A8152104A6100012AA1000125C -S31540018E20AC100014A1802046A4100000AA10000036 -S31540018E3001000000A180204EA81021000100000081 -S31540018E40A18000000100000001000000E83CA030C4 -S31540018E5082A480131280016682A5001612800164E5 -S31540018E6001000000010000000100000087440000ED -S31540018E708D30E00B8C89A0078CA1A0051280015C86 -S31540018E80A180000001000000010000000100000077 -S31540018E90E81CA03082A500161280015582A5401219 -S31540018EA0A4100000128001520100000001000000E0 -S31540018EB0874400008D30E00B8C89A0078CA1A0036C -S31540018EC01280014B010000001080008C010000005F -S31540018ED080A1A0011280002325100000E41C80001F -S31540018EE02510000029100000A8152104A610001223 -S31540018EF0AA100012AC100014A1802046A410000054 -S31540018F00AA10000001000000A180204EA8102100F7 -S31540018F1001000000A18000000100000001000000E6 -S31540018F2001000000E83C800082A4801312800130D9 -S31540018F3082A500161280012E0100000001000000EA -S31540018F40874400008D30E00B8C89A0078CA1A002DC -S31540018F501280012701000000108000680100000016 -S31540018F6080A1A00312800065A6100000A210200E69 -S31540018F70A1844000A6100000A1800000A814E000D2 -S31540018F80AB44000001000000AC14E0000100000009 -S31540018F90AF44000080A5200012800115AA8D6E0005 -S31540018FA080A540001280011280A5A0001280011008 -S31540018FB0AF35E00BAE0DE00780A5E0011280010C54 -S31540018FC001000000A0100000A1844000A61000008E -S31540018FD0A1800000E8180000AC100000AE100000AF -S31540018FE0EC04C000EE04E00480A5001612800100E6 -S31540018FF080A54017128000FE01000000A544000034 -S31540019000A534A00BA40CA00780A4A001128000F8EF -S3154001901001000000A0100000A1844000A61000003D -S31540019020A1800000A210200AA1844000A4100000E3 -S31540019030A1800000E8180000AC100000AE1000004E -S31540019040EC04C012EE04E00480A50016128000E88C -S3154001905080A54017128000E601000000A5440000EB -S31540019060A534A00BA40CA00780A4A002068000E0B2 -S315400190700100000021100140A0142200EC1C000058 -S31540019080A0042008E81C0000A1844000A6100000AE -S31540019090A1800000A210200EA1844000A41000105F -S315400190A0AC100000AE100000A180000001000000DD -S315400190B001000000EC3C8013AC100000AE10000033 -S315400190C0E81CC01280A50016128000C980A5401771 -S315400190D0128000C701000000A5440000A534A00B82 -S315400190E0A40CA00780A4A004128000C101000000C6 -S315400190F010800002010000008B4440008A09601F75 -S3154001910080A160010280000A8C1000059DE3BFA08A -S315400191108AA1600116BFFFFE0100000081E8000040 -S315400191208CA1A00116BFFFFE010000000100000056 -S3154001913001000000A023A080A02C20078E10001063 -S31540019140A3480000E2240000C2242004C43C2008B5 -S31540019150C83C2010CC3C2018F03C2020F43C202870 -S31540019160F83C2030FC3C2038D03C2040D43C2048C0 -S31540019170D83C2050DC3C2058A5500000E424206017 -S3154001918080102008821020018410200286102003BE -S31540019190881020048A1020058C102006819000003A -S315400191A0A42C601F818C800001000000010000009A -S315400191B0010000000300404082106101841000005C -S315400191C086100000894440008809201F861000044B -S315400191D0A010000284004002A21000028400400256 -S315400191E0A410000284004002A6100002840040023E -S315400191F0A810000284004002AA1000028400400226 -S31540019200AC10000284004002AE100002840040020D -S315400192109010000284004002921000028400400235 -S31540019220941000028400400296100002840040021D -S3154001923098100002840040029A1000028400400205 -S315400192409C100002840040029E10000284004002ED -S3154001925081E0000086A0E00116BFFFDE01000000AC -S315400192600300404082106101841000008610000412 -S3154001927080A400021280003F8400400280A4400284 -S315400192801280003C8400400280A480021280003992 -S315400192908400400280A4C00212800036840040024D -S315400192A080A50002128000338400400280A540025E -S315400192B0128000308400400280A580021280002D79 -S315400192C08400400280A5C0021280002A8400400228 -S315400192D080A20002128000278400400280A2400240 -S315400192E0128000248400400280A280021280002164 -S315400192F08400400280A2C0021280001E8400400207 -S3154001930080A300021280001B8400400280A3400219 -S31540019310128000188400400280A38002128000154A -S315400193208400400280A3C0021280001284004002E1 -S3154001933081E0000086A0E00116BFFFCE01000000DB -S3154001934080A020001280000B80A0FFFF1280000940 -S3154001935080A160051280000780A1A0061280000549 -S3154001936001000000A010000710800006C024202044 -S31540019370A01000079010200110800002D024202068 -S3154001938082100007C400400081888000010000006F -S315400193900100000001000000C4186008C8186010F0 -S315400193A0CC186018F0186020F4186028F81860305E -S315400193B0FC186038D0186040D4186048D8186050FE -S315400193C0DC186058E4006060C2006004819480004B -S315400193D0010000000100000001000000A01000078C -S315400193E0F004202081C7E00881E8000010BFFFFC9F -S315400193F0B01000000100000081D8200081C3E008C0 -S31540019400010000001B100144D80361808210200135 -S315400194108328400C1B10014482007FFFD8036184DE -S3154001942082084008932A400C900040098213C000EC -S315400194307FFFE77D9E104000010000001B100144A4 -S31540019440D8036180821020018328400C1B100144FF -S3154001945082007FFFD8036184932A400C820840082A -S31540019460900040099210000A8213C0007FFFE77006 -S315400194709E104000010000001B100144D80361808A -S31540019480821020018328400C1B10014482007FFF7B -S31540019490D8036184932A400C820840089000400911 -S315400194A09210000A8213C0007FFFE7659E104000BC -S315400194B0010000001B100144D80361808210200185 -S315400194C08328400C1B10014482007FFFD80361842E -S315400194D082084008932A400C900040098213C0003C -S315400194E07FFFE7559E104000010000001B1001441C -S315400194F0D803618C821020018328400C1B10014443 -S3154001950082007FFFD803619C932A400C8208400861 -S31540019510900040099210000A8213C0007FFFE74C79 -S315400195209E104000010000001B100144D803618CCD -S31540019530821020018328400C1B10014482007FFFCA -S31540019540D803619C932A400C820840089000400948 -S315400195509210000A8213C0007FFFE7419E1040002F -S31540019560010000009DE3BF582D100144A2102000C8 -S31540019570C205A19080A440011680001BA0102000C6 -S315400195802B1001442910014427100144A410200145 -S31540019590D005618C912C8008C205219C90023FFF29 -S315400195A0832C0001900A00187FFFE72790020001F3 -S315400195B0C204E17C901E0008900A000180A00008C8 -S315400195C0A2647FFFA0042001C205A19080A40001EE -S315400195D026BFFFF1D005618C80A460001280000394 -S315400195E0B0102000B010200181C7E00881E80000DA -S315400195F01B100144D803618C821020018328400C42 -S315400196001B10014482007FFFD803619C82084008F9 -S31540019610932A400C900040098213C0007FFFE70A5D -S315400196209E104000010000001B100144D803618CCC -S31540019630821020018328400C1B10014482007FFFC9 -S31540019640D803619C82084008932A400C9000400947 -S315400196508213C0007FFFE7009E104000010000001A -S31540019660952AA00D0328000094028009D0204000CD -S315400196709422B000D420600481C3E00801000000B8 -S31540019680033FFFBF821062F89DE38001193FFFBF90 -S3154001969094132368B407BFF80310004B9606800A5B -S315400196A0821063A0C222E00C0310004B821063605B -S315400196B0C222E0041B10004B9A136340033FFFBFD5 -S315400196C0DA26800A901323803310004B8210635CA4 -S315400196D094068008981323C0921663808200401E28 -S315400196E0D222E008D4204000B006800C7FFF9EC7FE -S315400196F0901020067FFFE6C890102000920A3FF0A6 -S315400197007FFFE6C790102000210000307FFFE6C2B0 -S3154001971090102000808A001012BFFFFD010000005A -S315400197207FFFFF36210000307FFFE6BB901020000F -S31540019730808A001012BFFFFD010000007FFFE6B6E0 -S3154001974090102000030020408210600F9212000109 -S315400197507FFFE6B3901020007FFFE6AF9010200810 -S3154001976021100144D02421787FFFE6AB9010200CD4 -S31540019770A73A2010993A2014A60CE007980B200F1F -S31540019780DA042178A8230013A80520089F3B60141A -S31540019790933B60109B3B601894050013A210200177 -S315400197A0AC03200A9E0BE00F96102400AE0B60031B -S315400197B09402A00221200000992AC00C1B100144EA -S315400197C08203E00A952C400A9424000A832C400126 -S315400197D0D8236198A02400011B10014403100144C1 -S315400197E0EC23618C972AC00FAA03E00A1B1001449F -S315400197F0D620617403100144EA236184EA20618022 -S315400198001B10014403100144D423617C920A600772 -S31540019810A53A2018D0206188153FFFBF932C4009F7 -S31540019820A40CA003031001449412A358932C40099D -S31540019830A404A0013910014437100144EC20619C75 -S315400198409B2C40149402801EE0272194E426E1904B -S31540019850AA027FFFDA228000AC85E0010280000C7B -S31540019860BB2C4013033FFFBF82106368A0068001F3 -S31540019870A4100016D00400009FC20000A0042004DA -S31540019880A484BFFF32BFFFFDD00400007FFFE66224 -S3154001989090102000920A3FFC7FFFE6619010200065 -S315400198A0A410200080A4801616800022A210200059 -S315400198B0033FFFBFAE106368A610001AA010200038 -S315400198C080A4001636800018A404A001108000056B -S315400198D0A810001780A4001636800013A404A00126 -S315400198E0921000107FFFFEC8D004C014820A0015F2 -S315400198F080A0401512BFFFF8A0042001C204C01485 -S3154001990082184008DA0721948208400D80A00001A0 -S31540019910A2647FFF80A4001606BFFFF392100010D9 -S31540019920A404A00180A4801606BFFFE5A604E004B6 -S315400199307FFFE63990102000A61000089010200005 -S315400199407FFFE6379214E00380A46000028001B1F4 -S3154001995001000000833CE00C80886003128000A572 -S31540019960030048D1833CE01380886003128001AD37 -S31540019970010000007FFFFEA1210000307FFFE626A7 -S3154001998090102000808A001012BFFFFDA61000082B -S31540019990A4102000C206E19080A480011680000D2B -S315400199A0832CA00292100012901000187FFFFED067 -S315400199B094102000A404A001C206E19080A4800175 -S315400199C006BFFFFA92100012A4102000832CA002B9 -S315400199D0A404A001C026000180A4A01E04BFFFFD6F -S315400199E0832CA00282102005C22600009A10200175 -S315400199F0DA26200482102002C22620089A1020036B -S31540019A00DA26200C7FFFFED89010001880A2200095 -S31540019A10028001D301000000C206000080A060055B -S31540019A2002800004010000007FFF9DFD901020068A -S31540019A307FFFFECD9010001880A22000128001C445 -S31540019A4001000000A4102000C206E19080A480011C -S31540019A501680000F92100012A006200494102000D8 -S31540019A607FFFFEB290100018921000129010001065 -S31540019A707FFFFEAE94102000A404A001C206E1902F -S31540019A8080A4800106BFFFF6921000127FFFE5F821 -S31540019A90901000187FFFE5F6900620207FFFE5F441 -S31540019AA0900620407FFFE5F290062060A41020003A -S31540019AB0C206E19080A4800106800196A210200092 -S31540019AC07FFF9DD790102008173FFFBF8212E3C04A -S31540019AD0940680018212E35C8200401ED81A8000FF -S31540019AE0C2004000D83840009612E380C206800B7F -S31540019AF080A06005128000068206800BDA006004B1 -S31540019B0080A3600102800005A41020007FFF9DC450 -S31540019B1090102009A4102000C206E19080A4800183 -S31540019B2016800011A2102000A006200492100012F7 -S31540019B307FFFFEBE90100010901A200180A0000801 -S31540019B40A2647FFFA404A001C206E19080A4800123 -S31540019B5006BFFFF89210001280A460010280000542 -S31540019B60833CE0137FFF9DAE9010200A833CE013B7 -S31540019B70808860031280018082102005C226000081 -S31540019B809A102001DA26200482102002C2262008DB -S31540019B909A102003DA26200C1B3FFFBF9A13635805 -S31540019BA09A03401ED00340004000048D9210001DD0 -S31540019BB0032EEEEEA12A2002A21063BBE22600107C -S31540019BC07FFFFE699010001880A220001280016775 -S31540019BD001000000C206001080A04011028000056D -S31540019BE0030048D17FFF9D8E90102012030048D17B -S31540019BF0821061671B226AF3C22620209A1361EF05 -S31540019C00DA262024C20E202080A0600102800004B2 -S31540019C10010000007FFF9D829010201AC20E202174 -S31540019C2080A0602302800004010000007FFF9D7C2C -S31540019C309010201BC20E202280A0604502800004A5 -S31540019C40010000007FFF9D769010201CC20E20234C -S31540019C5080A0606702800004010000007FFF9D70C4 -S31540019C609010201DC20E202480A06089028000042D -S31540019C70010000007FFF9D6A9010201EC20E202524 -S31540019C8080A060AB02800004010000007FFF9D645C -S31540019C909010201FC20E202680A060CD02800004B5 -S31540019CA0010000007FFF9D5E90102020C20E2027FC -S31540019CB080A060EF02800004010000007FFF9D58F4 -S31540019CC090102021C2162020832860108330601016 -S31540019CD080A0612302800004010000007FFF9D50A7 -S31540019CE090102022DA1620229B2B601003000011CF -S31540019CF09B3360108210616780A34001028000049B -S31540019D00010000007FFF9D4690102023DA16202493 -S31540019D109B2B6010030000229B336010821061ABC5 -S31540019D2080A3400102800004010000007FFF9D3CAA -S31540019D3090102024DA1620269B2B60100300003356 -S31540019D409B336010821061EF80A3400102800005C1 -S31540019D50821020307FFF9D329010202582102030C6 -S31540019D60C22E2020030C08D1DA062020821061671A -S31540019D7080A3400102800005821020317FFF9D288B -S31540019D809010202782102031C22E2021030C0C5125 -S31540019D90DA0620208210616780A340010280000517 -S31540019DA0821020327FFF9D1E901020288210203283 -S31540019DB0C22E2022210C0C4CDA0620208214226766 -S31540019DC080A3400102800005821020337FFF9D144D -S31540019DD09010202982102033C22E20239A14223338 -S31540019DE0C206202080A0400D02800005821020344A -S31540019DF07FFF9D0B9010202A82102034C22E2024F2 -S31540019E00030D2AF3DA062024821061EF80A3400174 -S31540019E1002800005821020357FFF9D019010202B86 -S31540019E2082102035C22E2025030D0D73DA0620241B -S31540019E30821061EF80A34001028000058210203626 -S31540019E407FFF9CF79010202C82102036C22E2026B0 -S31540019E50210D0D4DDA062024821422EF80A3400104 -S31540019E6002800005821020377FFF9CED9010202D47 -S31540019E7082102037C22E20279A142237C206202468 -S31540019E8080A0400D02800005210000107FFF9CE468 -S31540019E909010202E2100001082142041C23620202D -S31540019EA00310104CDA0620208210623380A3400151 -S31540019EB002800005821422437FFF9CD99010202FF7 -S31540019EC082142243C236202203101050DA06202083 -S31540019ED08210624380A340010280000521000011E7 -S31540019EE07FFF9CCF90102030210000118214204525 -S31540019EF0C23620240311114DDA062024821062371E -S31540019F0080A3400102800005821422477FFF9CC442 -S31540019F109010203182142247C23620260311115156 -S31540019F20DA0620248210624780A3400102800004A1 -S31540019F30010000007FFF9CBA901020327FFFFD2F69 -S31540019F40A4102000C206E19080A48001168000156D -S31540019F501B100144D403619C96100001A0102000FF -S31540019F6080A4001D3680000CA404A001832C800A25 -S31540019F709B286002992CA01082130010C226000D66 -S31540019F80A004200180A4001D06BFFFFC9A036004C3 -S31540019F90A404A00180A4800B26BFFFF2A0102000DC -S31540019FA07FFFE49D9010200003000010808A00018D -S31540019FB012BFFFFC01000000A4102000C206E19080 -S31540019FC080A4800116800114921000127FFFFD8942 -S31540019FD09010001815100144C202A17C900A00019C -S31540019FE0820E000180A20001A404A00112BFFFF469 -S31540019FF0901020337FFF9C8A01000000C206E19049 -S3154001A00080A4800106BFFFF2921000123080010247 -S3154001A0107FFF9C839010200110BFFE50833CE00CD3 -S3154001A0207FFFE47D90102000133FFFF09212603FC6 -S3154001A030920A0009A61000087FFFE47990102000DB -S3154001A0407FFFE3D0A41020001303C0009214C0097F -S3154001A0507FFFE4739010200080A4801616800009CB -S3154001A06092100012901663807FFFFD049410200029 -S3154001A070A404A00180A4801606BFFFFB9210001223 -S3154001A0807FFFE3C0010000007FFFE46390102000E2 -S3154001A090913A200A900A200380A2200102800004FE -S3154001A0A0010000007FFF9C5E90102002010000002D -S3154001A0B092102000901663807FFFFCE194102000EF -S3154001A0C0010000007FFFE454901020001303C000FC -S3154001A0D0922A00097FFFE4529010200001000000FF -S3154001A0E07FFFE3A8010000007FFFE44B90102000B2 -S3154001A0F0913A200C900A200380A2200102BFFE1E45 -S3154001A100010000007FFF9C469010200330BFFE1ADD -S3154001A110921000127FFFFD4590100018901A2005FD -S3154001A12080A00008A2647FFFA404A001C206E190BA -S3154001A13080A4800106BFFFF89210001280A460003F -S3154001A14012BFFE63173FFFBF30BFFE5E7FFF9C34E9 -S3154001A1509010200710BFFE3DA41020007FFF9C30C9 -S3154001A1609010200530BFFE2D7FFF9C2D90102011B1 -S3154001A17030BFFE997FFFE42890102000033FFFF097 -S3154001A1808210603F920A00017FFFE4259010200073 -S3154001A190033FFFBFA010638092102000941020005F -S3154001A1A07FFFFCE2900680107FFFE41B90102000A9 -S3154001A1B00303C000921200017FFFE41990102000B2 -S3154001A1C010800006A4102000900680107FFFFCD767 -S3154001A1D094102005A404A001C206E19080A4800148 -S3154001A1E006BFFFFA92100012033FFFBFA010638023 -S3154001A1F09A102001DA2E801003004000D806801004 -S3154001A2008210600580A30001028000040100000065 -S3154001A2107FFF9C039010200B7FFFE3FF90102000EF -S3154001A220913A2006900A200380A220010280000470 -S3154001A230010000007FFF9BFA9010200C7FFFE3F6A0 -S3154001A240901020001303C000922A00097FFFE3F417 -S3154001A2509010200092102000900680107FFFFCB3E2 -S3154001A260941020007FFFE3EC901020002103C000F2 -S3154001A270921200107FFFE3EA901020007FFFE3E691 -S3154001A28090102000808A001002BFFFFDA610000832 -S3154001A290A4102000C206E19080A480011680000E21 -S3154001A2A0033FFFBF9A102001A2106380A12B401DDE -S3154001A2B092100012900680117FFFFC8D94043FFF9F -S3154001A2C0A404A001C206E19080A4800106BFFFFA62 -S3154001A2D0921000121303C000922CC0097FFFE3D0F5 -S3154001A2E0901020002103C0007FFFE3CB9010200097 -S3154001A2F0808A001012BFFFFD1B004000213FFFBFB7 -S3154001A30082142380D80680019A13600580A3000D2C -S3154001A31002800004010000007FFF9BC19010200DC8 -S3154001A3207FFFE3BD90102000913A2008900A200358 -S3154001A33080A2200122800005A01423787FFF9BB8CC -S3154001A3409010200FA01423789406801098102011A5 -S3154001A3509A102055D83A80007FFFE3AF9010200035 -S3154001A3600303C00092120001920A7F3F7FFFE3ACD4 -S3154001A37090102000A00680107FFFE3CB90100010C4 -S3154001A38010800006A4102000900420047FFFFC6783 -S3154001A39094102055A404A001C206E19080A4800136 -S3154001A3A006BFFFFA92100012113FFFBF90122378A9 -S3154001A3B07FFFE3BD9006800880A220111280000431 -S3154001A3C080A2605502800004010000007FFF9B943B -S3154001A3D0901020107FFFE39090102000833A2006D2 -S3154001A3E08208600380A0600102800004A610000874 -S3154001A3F07FFF9B8B90102010133C3FF09212603FE1 -S3154001A400920CC0097FFFE3869010200010BFFDDC4F -S3154001A410821020057FFFE380901020009212200FCA -S3154001A4207FFFE37F9010200081C7E00891E820007C -S3154001A4309DE3BF987FFFFC9301000000B010000828 -S3154001A440130020409212600F7FFFE37590102000A9 -S3154001A4500100000081C7E00881E80000033FFFBF1B -S3154001A460821063589DE380017FFFFBE401000000F9 -S3154001A47040000238010000007FFFE367901020088A -S3154001A480A21000087FFFE3649010200C7FFF9B73AE -S3154001A490A0100008912A20047FFF9B5C9002200CAB -S3154001A4A0973C6014833C6018953C2014993C2018D5 -S3154001A4B082086003960AE00F820060019602E00A74 -S3154001A4C0A33C6010A13C2010980B2003940AA00FD6 -S3154001A4D0A728400B98032001A20C6007A00C200777 -S3154001A4E09402A00A9A102001A2046002A00420024C -S3154001A4F0B12B000A03200000AB2B4011A52B4010C5 -S3154001A5009620401898057FFF822040139A04BFFF8A -S3154001A510AE130001A213400B210000307FFFE33E42 -S3154001A52090102000808A001012BFFFFD033FFFBF3D -S3154001A5309A07BFF8821063C0A00340012D155555F7 -S3154001A54090100018921000107FFFE2C69415A15595 -S3154001A55080A220001280004B292AAAAA921000103C -S3154001A560901000187FFFE2D3941522AA80A2200002 -S3154001A5701280004E010000007FFF9B380100000061 -S3154001A580912A20047FFF9B219002200A400001EE80 -S3154001A5900100000092152200920C4009901000180B -S3154001A5A094100011961000127FFFE2EB981522AA33 -S3154001A5B080A2200012800051010000009215A100E6 -S3154001A5C090100018920C4009941000119610001238 -S3154001A5D07FFFE2E19815A15580A220001280004438 -S3154001A5E0010000007FFF9B1D01000000912A20040D -S3154001A5F07FFF9B069002200B901000137FFFE2BD68 -S3154001A6009215A15580A2200012800035010000005C -S3154001A610901000137FFFE2B7921522AA80A2200074 -S3154001A6201280002C010000007FFF9B0C01000000FE -S3154001A630912A20047FFF9AF5900220099010001379 -S3154001A64092100017941000157FFFE2B6961522AAC4 -S3154001A65080A220001280001B010000009010001310 -S3154001A66092100017941000157FFFE2AE9615A15582 -S3154001A67080A2200002800025010000003080000EEB -S3154001A6807FFF9AE790102001292AAAAA921000106A -S3154001A690901000187FFFE287941522AA80A220001D -S3154001A6A002BFFFB6010000007FFF9ADD9010200235 -S3154001A6B030BFFFB27FFF9ADA901020083080001336 -S3154001A6C07FFF9AD79010200710BFFFE69010001326 -S3154001A6D07FFF9AD39010200630BFFFD47FFF9AD0D8 -S3154001A6E09010200510BFFFCC901000137FFF9ACC2D -S3154001A6F09010200430BFFFBC7FFF9AC99010200301 -S3154001A70010BFFFB09215A1007FFFFB3CB0102000A7 -S3154001A71040000190010000000100000081C7E008EF -S3154001A72081E800009DE3BF987FFF9AB31100412C59 -S3154001A730DA062004D80620049A0B6003993B2002CE -S3154001A74082102007C2262008BA036001B20B27FFF8 -S3154001A750010000009010200AC02600007FFF9AAB3E -S3154001A760010000001700020082103FFFC226000BC5 -S3154001A770032AAAAA1B155555D806000BAC10200072 -S3154001A780821062AA9A136155AA0B000180A5801D09 -S3154001A79016800038A80B000D9612E020A72E6008FF -S3154001A7A080A4E0000480000CA2102000832DA002AA -S3154001A7B082004018190002009A10000BE820400C54 -S3154001A7C0EA20400DA204601080A4C01114BFFFFC12 -S3154001A7D082006040AC05A00180A5801D06BFFFF246 -S3154001A7E080A4E000AC10200080A5801D16800021C9 -S3154001A7F003000200B8106020A72E6008AE100018B2 -S3154001A80080A4E00004800017A2102000030002008B -S3154001A810A4060001A005C01CC2048000A204601069 -S3154001A820A404A04080A0401402800004901020019E -S3154001A8307FFF9A7B01000000C2040000A004204073 -S3154001A84080A0401502800004901020017FFF9A7479 -S3154001A8500100000080A4C01114BFFFF001000000F8 -S3154001A860AC05A00180A5801D06BFFFE6AE05E0044C -S3154001A8707FFF9A669010200CAC10200080A5801DA9 -S3154001A88016800088031555559E1061551B0008001A -S3154001A890032AAAAA9A136004901062AAA72E6008F6 -S3154001A8A080A4E0000480000EA2102000832DA01396 -S3154001A8B082004018130008009410000F9610000DF6 -S3154001A8C098100008D4204009D820400BA204600209 -S3154001A8D080A4C01114BFFFFC82006008AC05A00132 -S3154001A8E080A5801D06BFFFF080A4E000AC102000CB -S3154001A8F080A5801D1680006B03155555B81061550E -S3154001A9001B000800032AAAAAB6136004B41062AA5F -S3154001A910A72E600880A4E00004800019A210200040 -S3154001A920832DA013A00040182F000800AA10001C78 -S3154001A930A810001BA410001AC2040017A20460024A -S3154001A94080A0401502800004901020037FFF9A34B6 -S3154001A95001000000C2040014A004200880A0401297 -S3154001A96002800004901020037FFF9A2D0100000011 -S3154001A97080A4C01114BFFFF101000000AC05A00185 -S3154001A98080A5801D06BFFFE580A4E000AC10200035 -S3154001A99080A5801D16800043030008009E106004B8 -S3154001A9A01B155555032AAAAA9A136155901062AAF6 -S3154001A9B0A72E600880A4E0000480000EA2102000AB -S3154001A9C0832DA01382004018130008009410000F35 -S3154001A9D09610000D98100008D620400AD82040094C -S3154001A9E0A204600280A4C01114BFFFFC820060086B -S3154001A9F0AC05A00180A5801D06BFFFF080A4E00044 -S3154001AA00AC10200080A5801D1680002603155555E3 -S3154001AA10B81061551B2AAAAA03000800A72E600890 -S3154001AA20B61362AAB410600480A4E0000480001941 -S3154001AA30A2102000832DA013A00040182F0008006B -S3154001AA40AA10001CA810001BA410001AC204001270 -S3154001AA50A204600280A040150280000490102004E8 -S3154001AA607FFF99EF01000000C2040017A0042008EF -S3154001AA7080A0401402800004901020047FFF99E8D2 -S3154001AA800100000080A4C01114BFFFF101000000C5 -S3154001AA90AC05A00180A5801D06BFFFE580A4E000AE -S3154001AAA082102005C22620081B200000DA2600005D -S3154001AAB081C7E00881E8000081C3E0089144400075 -S3154001AAC080800000151001409412A1809010200052 -S3154001AAD09210224681800000010000000100000022 -S3154001AAE001000000D00280009122400881C3E008A5 -S3154001AAF0010000008180000090102001809020011B -S3154001AB0080D020011280002C0100000080D23FFF3E -S3154001AB10168000290100000080DA3FFF93400000C3 -S3154001AB2080A27FFF128000240100000080D23FFFF7 -S3154001AB309348000093326014920A600F80A2600825 -S3154001AB401280001D0100000081800000901020014C -S3154001AB50945220049452A0049452A00496A2A04078 -S3154001AB601280001501000000818000009010200233 -S3154001AB7080A00000328000109052000880A220027E -S3154001AB801280000D0100000081800000901020021B -S3154001AB9080A00000010000003280000790520008AA -S3154001ABA080A22002128000040100000081C3E00857 -S3154001ABB09010200181C3E0089010000013155555EF -S3154001ABC092126155A582400001000000010000007B -S3154001ABD0010000009544800080A2400A1280004393 -S3154001ABE001000000923A4000A582400001000000A9 -S3154001ABF001000000010000009544800080A2400A47 -S3154001AC001280003A010000001100003F901223FF1C -S3154001AC10A5800000818000000100000001000000C5 -S3154001AC200100000093F23FFF9A10000993F23FFFA3 -S3154001AC3093F23FFF93F23FFF93F23FFF93F23FFFC1 -S3154001AC4093F23FFF93F23FFF994000009744800003 -S3154001AC50153FFC009412A00880A2400A12800023EE -S3154001AC6080A2400B1280002180A320071280001F82 -S3154001AC70113FFF809012200180A340081280001BE3 -S3154001AC801100003F901223FFA58000008180000043 -S3154001AC9001000000010000000100000093FA3FFF9F -S3154001ACA093FA3FFF93FA3FFF93FA3FFF93FA3FFF31 -S3154001ACB093FA3FFF93FA3FFF93FA3FFF9940000013 -S3154001ACC09744800080A260081280000880A2600834 -S3154001ACD01280000680A320001280000401000000BB -S3154001ACE081C3E0089010200181C3E0089010000064 -S3154001ACF0818000009010200280A000003280001068 -S3154001AD009072000880A220021280000D010000000E -S3154001AD10818000009010200280A000000100000008 -S3154001AD20328000079072000880A22002128000043F -S3154001AD300100000081C3E0089010200181C3E008B2 -S3154001AD4090100000C0A0004081C3E008010000004F -S3154001AD50110020409012200FD0A0004081C3E0088E -S3154001AD60010000009DE3BF987FFFE12B9010200872 -S3154001AD70A21000087FFFE1289010200C833C60144C -S3154001AD809B3A2014A13A2018A33C6018A20C6003F8 -S3154001AD90A00C20038208600F9A0B600F8200600AA4 -S3154001ADA09A03600AA2046001A0042001A32C400179 -S3154001ADB07FFFFFE5A12C000D7FFFE08E9010001173 -S3154001ADC07FFFE09A901000107FFFF98C0100000090 -S3154001ADD07FFFFFE081E800000100000098120009B2 -S3154001ADE0818200009AAB2FFF0280002598880000DF -S3154001ADF099230009992300099923000999230009F8 -S3154001AE0099230009992300099923000999230009E7 -S3154001AE1099230009992300099923000999230009D7 -S3154001AE2099230009992300099923000999230009C7 -S3154001AE3099230009992300099923000999230009B7 -S3154001AE4099230009992300099923000999230009A7 -S3154001AE509923000999230009992300099923000997 -S3154001AE609923000999230009992300099923000987 -S3154001AE709923000081C3E00891400000992300090D -S3154001AE809923000999230009992300099923000967 -S3154001AE909923000999230009992300099923000957 -S3154001AEA09923000999230009992300099923000050 -S3154001AEB09B400000992B200C9B33601481C3E00812 -S3154001AEC09013400C1080000B8610200080924008A1 -S3154001AED01680000886100008809240001680000403 -S3154001AEE080920000168000039220000990200008FD -S3154001AEF09A924000128000059610000891D02002D7 -S3154001AF0081C3E0089010000080A2C00D0A80009520 -S3154001AF10941000000302000080A2C0010A800028AC -S3154001AF209810000080A340011A80000D8410200172 -S3154001AF309B2B600410BFFFFC980320019A83400DB0 -S3154001AF401A8000078400A001832860049B336001B6 -S3154001AF509A034001108000078420A00180A3400B82 -S3154001AF600ABFFFF701000000028000020100000055 -S3154001AF7084A0A00106800076010000009622C00D43 -S3154001AF80941020011080000A01000000952AA001BA -S3154001AF90068000059B3360019622C00D1080000497 -S3154001AFA09402A0019602C00D9422A00184A0A001A2 -S3154001AFB016BFFFF78092C000308000659B2B60046E -S3154001AFC080A3400B08BFFFFE9883200102800065E5 -S3154001AFD0982320018092C000952AA0040680002F64 -S3154001AFE09B33600196A2C00D068000179B3360011A -S3154001AFF096A2C00D0680000B9B33600196A2C00D40 -S3154001B000068000059B33600196A2C00D108000505A -S3154001B0109402A00F9682C00D1080004D9402A00D9F -S3154001B0209682C00D068000059B33600196A2C00D35 -S3154001B030108000479402A00B9682C00D10800044F8 -S3154001B0409402A0099682C00D0680000B9B336001D5 -S3154001B05096A2C00D068000059B33600196A2C00DE5 -S3154001B0601080003B9402A0079682C00D10800038E4 -S3154001B0709402A0059682C00D068000059B336001AF -S3154001B08096A2C00D108000329402A0039682C00D94 -S3154001B0901080002F9402A0019682C00D06800017F1 -S3154001B0A09B33600196A2C00D0680000B9B33600165 -S3154001B0B096A2C00D068000059B33600196A2C00D85 -S3154001B0C0108000239402BFFF9682C00D108000209D -S3154001B0D09402BFFD9682C00D068000059B33600138 -S3154001B0E096A2C00D1080001A9402BFFB9682C00D35 -S3154001B0F0108000179402BFF99682C00D0680000B9E -S3154001B1009B33600196A2C00D068000059B3360010A -S3154001B11096A2C00D1080000E9402BFF79682C00D14 -S3154001B1201080000B9402BFF59682C00D0680000583 -S3154001B1309B33600196A2C00D108000059402BFF3B7 -S3154001B1409682C00D108000029402BFF198A320019F -S3154001B15016BFFFA28092C000268000029602C00957 -S3154001B1608090C000268000029620000B81C3E00833 -S3154001B1709010000B921000089010200094102000AF -S3154001B180961020008213C000400001E89E10400046 -S3154001B190010000009210000803100142D00063F83C -S3154001B1A08213C0004000000A9E10400001000000CA -S3154001B1B09210000803100142D00063F88213C000C8 -S3154001B1C0400002559E104000010000009DE3BF98DB -S3154001B1D08206600B80A06016A61000181880000336 -S3154001B1E0A0087FF8A010201080A400199A402000E2 -S3154001B1F08334201F8090400D128001B0B010200092 -S3154001B200400001B09010001380A421F71880001768 -S3154001B21099342009391001408217222898040001E7 -S3154001B220F003200C80A6000C0280004E9F342003C0 -S3154001B230C206200494087FFC9A06000AC2036004F1 -S3154001B24082106001D006200CD2062008D2222008A6 -S3154001B250C2236004D022600C400001A0901000136C -S3154001B26010800196B006200880A320001280002895 -S3154001B2709F342003391001409B2BE003821722287B -S3154001B2809A0340011080000AF003600C94087FFC89 -S3154001B2909622801080A2E00F1480010980A2E0006E -S3154001B2A036BFFFE79A06000AF006200C80A6000D7D -S3154001B2B032BFFFF7C20620049E03E001251001407C -S3154001B2C09814A230F003200880A6000C0280005D8D -S3154001B2D0833BE01FC206200494087FFC962280101F -S3154001B2E080A2E00F1480009F80A2E000D823200CAA -S3154001B2F006800023D82320089A06000AC203600468 -S3154001B3008210600110BFFFD5C2236004833420063A -S3154001B31080A3200408BFFFD89E00603880A3201474 -S3154001B32008BFFFD59E03205B8334200C80A32054A5 -S3154001B33008BFFFD19E00606E8334200F80A3215445 -S3154001B34008BFFFCD9E0060778334201280A3255429 -S3154001B35008BFFFC99E00607C10BFFFC79E10207EBC -S3154001B36098062008F003200C80A6000C32BFFFB2DD -S3154001B370C206200410BFFFD29E03E00280A2A1FFB5 -S3154001B380088000BE9B32A0039732A00980A2E0004C -S3154001B39022800017961722288332A00680A2E00455 -S3154001B3A0088000129A00603880A2E0140880000FDD -S3154001B3B09A02E05B8332A00C80A2E0540880000B25 -S3154001B3C09A00606E8332A00F80A2E1540880000784 -S3154001B3D09A0060778332A01280A2E5540880000368 -S3154001B3E09A00607C9A10207E96172228832B600350 -S3154001B3F09000400BD202200880A240082280010F13 -S3154001B40099336002C202600482087FFC80A0400A30 -S3154001B41028800007D002600CD202600880A2400852 -S3154001B42032BFFFFAC2026004D002600CD026200C63 -S3154001B430D2262008F022600CF0222008833BE01F30 -S3154001B4408330601E8203C001391001408338600297 -S3154001B450981722289A102001932B4001D8032004E3 -S3154001B46080A2400C1880004BAE172228808B000921 -S3154001B4701280000D03100140820BFFFC920240092D -S3154001B480808B0009128000079E0060048210000C28 -S3154001B490920240098088400902BFFFFE9E03E004F4 -S3154001B4A003100140A2106228A8100011832BE0036B -S3154001B4B0980040119010000F9A10000C1080000A5D -S3154001B4C0F003600C94087FFC9622801080A2E00F66 -S3154001B4D01480007D80A2E0003680008B9A06000A27 -S3154001B4E0F006200C80A6000D32BFFFF7C2062004ED -S3154001B4F09E03E001808BE00312BFFFF19A036008CF -S3154001B500808A200398033FF8028000D490023FFFCF -S3154001B510C203200880A0400C02BFFFFB808A2003A3 -S3154001B52092024009C205200480A2400118800018F9 -S3154001B5303910014080A260001280000680884009CF -S3154001B54010800014AE1722289E03E004808840092B -S3154001B55022BFFFFE9202400910BFFFD6832BE003B4 -S3154001B5608214200194060010C2262004D423200C04 -S3154001B570D42320088212E001D622800BD822A008CB -S3154001B580C222A00410BFFF35D822A00CAE17222834 -S3154001B590F005E008C2062004AA087FFC80A54010F9 -S3154001B5A09A4020009625401080A2E00F1480004268 -S3154001B5B0821020018093400102800027031001433D -S3154001B5C0DA0061282D1001409A04000DC205A2201F -S3154001B5D0A810001580A07FFFA2036010028000041E -S3154001B5E0A406001582046FFFA20870009010001394 -S3154001B5F0400000C09210001180A23FFF0280000867 -S3154001B600B210000880A200121A8000463B10014386 -S3154001B61080A6001722800044C20760F882172228BC -S3154001B620D8006008DA0320049A0B7FFC80A34010FF -S3154001B630984020009623401080A2E00F048000032A -S3154001B6408210200182102000809300011280009810 -S3154001B6500100000098172228F003200882142001D7 -S3154001B660C22620049A0600108212E001C223600419 -S3154001B67010BFFEFADA23200898033FF8832B6003B4 -S3154001B6809000400C9B336002821020018328400DBC -S3154001B690D2022008DA0320049A134001D026200C56 -S3154001B6A0D2262008F022600CDA23200410BFFF6462 -S3154001B6B0F022200810BFFFC08210200010BFFEFFFD -S3154001B6C09E03FFFFD006200CD20620089A142001C3 -S3154001B6D0940600108214A230D2222008D022600C97 -S3154001B6E0DA262004D420600CD42060089A12E001A6 -S3154001B6F0D622800BC222A008DA22A00410BFFED7B0 -S3154001B700C222A00CC203600482106001D006200C44 -S3154001B710D2062008C223600410BFFECFD2222008E1 -S3154001B720C20760F88200401180A640120280004F95 -S3154001B730C22760F8C205A22080A07FFF0280004593 -S3154001B740C20760F89A2640128200400DC22760F86F -S3154001B7509A8E600702800005A410200082102008FE -S3154001B760A420400DB20640129A0640119A0B6FFF73 -S3154001B770030000048220400DA404800190100013B0 -S3154001B7804000005C9210001280A23FFF2280003FE1 -S3154001B790A41020008222001990004012821722280C -S3154001B7A0DA0760F89A03401280A60001F220600889 -S3154001B7B0DA2760F8028000378212200180A5600FE7 -S3154001B7C038800005C22660048210200110BFFF9414 -S3154001B7D0C2266004C20620049A057FF4A80B7FF8AE -S3154001B7E08208600182104014C22620049A06001481 -S3154001B7F082102005C223600880A5200F18800027EB -S3154001B800C223600419100143DA0760F8C2032124F8 -S3154001B81080A3400138800002DA2321241910014314 -S3154001B820C203212080A3400138BFFF7DDA232120B6 -S3154001B83010BFFF7C821722289A102001C202E00421 -S3154001B8409B2B400C8210400D10BFFEF9C222E00432 -S3154001B85010BFFFC0F225A220C2046004822840091D -S3154001B86010BFFF30C2246004808E6FFF12BFFFB34A -S3154001B870C205A22090044014DA05E0088212200194 -S3154001B88010BFFFE1C223600410BFFFC3901000192F -S3154001B89010BFFFDDC2266004920620084000009ECC -S3154001B8A09010001310BFFFD9191001434000000B3F -S3154001B8B090100013B010200081C7E00881E8000015 -S3154001B8C011100141901222308213C0004000042A17 -S3154001B8D09E104000010000001110014190122230DB -S3154001B8E08213C0004000043C9E104000010000004D -S3154001B8F09DE3BF9821100144C02421A04000024984 -S3154001B9009010001980A23FFF12800006C20421A0B8 -S3154001B91080A060000280000301000000C2260000F2 -S3154001B92081C7E00891E800089DE3BF9823100143D1 -S3154001B930400004119014612C03100074E00061086A -S3154001B940D004214880A220002280002D9004214C61 -S3154001B950D602200480A2E01F1480001D01000000D1 -S3154001B96080A620001280000B94022088832AE002E0 -S3154001B9709A02E00182004008DA222004F22060089F -S3154001B980400004159014612C10800022B010200054 -S3154001B990821020019328400B992AE002DA02A10085 -S3154001B9A09A1340098203000AF6206080F422800C33 -S3154001B9B080A6200212BFFFEEDA22A100C202A10434 -S3154001B9C08210400910BFFFEAC222A1047FFFFDF2A7 -S3154001B9D09010219080A220000280000B961020003A -S3154001B9E0C2042148C2220000D0242148C02220049A -S3154001B9F0C022218810BFFFDBC022218C10BFFFD59A -S3154001BA00D0242148400003F49014612CB0103FFF2C -S3154001BA1081C7E00881E800009DE3BF987FFFFFA949 -S3154001BA209010001803100140A2106228DA04600841 -S3154001BA30C2036004A0087FFCB2240019B2066FEF6E -S3154001BA40B20E7000B20670009210200080A66FFF01 -S3154001BA500480000A901000187FFFFFA60100000035 -S3154001BA60C20460088200401080A04008922000195C -S3154001BA7002800005901000187FFFFF98B01020004B -S3154001BA80308000237FFFFF9B90100018822400190D -S3154001BA9080A23FFF821060019210200019100143DD -S3154001BAA00280000B90100018DA046008C22360047B -S3154001BAB0C20320F882204019901000187FFFFF87AB -S3154001BAC0C22320F810800012B01020017FFFFF89A9 -S3154001BAD00100000098100008D6046008A023000B5E -S3154001BAE09010001880A4200F04BFFFE4B214200177 -S3154001BAF003100140DA0062209A23000D031001432E -S3154001BB00DA2060F810BFFFDDF222E00481C7E008C9 -S3154001BB1081E800009DE3BF9880A660000280009DF9 -S3154001BB20A41000187FFFFF6790100018A0067FF849 -S3154001BB30D6042004900AFFFE19100140940400081F -S3154001BB40A2132228DA02A004C204600880A0400A97 -S3154001BB50028000449E0B7FFC808AE001DE22A00425 -S3154001BB601280000CB0102000F2067FF8A0240019C4 -S3154001BB7082046008DA04200880A340010280007D27 -S3154001BB8090020019D204200CDA226008D223600CFC -S3154001BB908202800FDA006004808B60011280000A05 -S3154001BBA08212200180A62000028000229002000F0E -S3154001BBB0DA02A008D202A00CDA226008D223600C75 -S3154001BBC082122001C224200480A6200002800005A2 -S3154001BBD0D0240008B01000127FFFFF4081E800002A -S3154001BBE080A221FF18800036973220099B3220031C -S3154001BBF098132228832B60039200400C9B336002EA -S3154001BC00821020018328400DD6026008DA03200401 -S3154001BC109A134001D224200CD6242008E022E00CBD -S3154001BC20DA232004E022600810BFFFECB0100012B6 -S3154001BC3003100140DA02A0088210623080A340015D -S3154001BC4032BFFFDED202A00CE023600CE023600885 -S3154001BC50DA242008DA24200C10BFFFDAB0102001C4 -S3154001BC60808AE001128000099002000FF2067FF8F7 -S3154001BC70A0240019D204200CD6042008D62260083C -S3154001BC8090020019D222E00C03100140DA0062242E -S3154001BC9098122001E024600880A2000D0ABFFFCF60 -S3154001BCA0D824200403100143D20061287FFFFF5BA3 -S3154001BCB0901000127FFFFF0981E8000080A2E0009A -S3154001BCC0028000169B3220038332200680A2E004C4 -S3154001BCD0088000129A00603880A2E0140880000FA4 -S3154001BCE09A02E05B8332200C80A2E0540880000B6C -S3154001BCF09A00606E8332200F80A2E15408800007CB -S3154001BD009A0060778332201280A2E55408800003AE -S3154001BD109A00607C9A10207E94132228832B60031C -S3154001BD209200400AD602600880A2C0090280001330 -S3154001BD3099336002C202E00482087FFC80A0400879 -S3154001BD4028800007D202E00CD602E00880A2C00992 -S3154001BD5032BFFFFAC202E004D202E00CD224200C28 -S3154001BD60D6242008E022E00C10BFFFB0E022600894 -S3154001BD7010BFFF88B01020019A102001C202A00412 -S3154001BD809B2B400C8210400D10BFFFF5C222A00430 -S3154001BD9081C7E00881E800009DE3BF98D2064000D4 -S3154001BDA080A2600012800004901000187FFFFF5AA5 -S3154001BDB081E800007FFFFFF9010000007FFFFF5689 -S3154001BDC081E80000010000009DE3BF980310014295 -S3154001BDD0DA0063F880A6000D0280004101000000F0 -S3154001BDE0D206204C80A260001280001CA0102000C8 -S3154001BDF0D206214880A260002280000FD20620543C -S3154001BE00A006214C80A240102280000BD20620546D -S3154001BE1010800005B2100009F20640007FFFFF3E88 -S3154001BE209010001880A4001912BFFFFC921000194F -S3154001BE30D206205480A26000128000250100000035 -S3154001BE40C206203880A06000028000250100000063 -S3154001BE5010800017C206203C832C2002F2024001CA -S3154001BE6080A660002280000BA004200192100019D8 -S3154001BE70F20640007FFFFF289010001880A6600060 -S3154001BE8012BFFFFC92100019D206204CA0042001DB -S3154001BE9080A4200E04BFFFF2832C20027FFFFF1EE9 -S3154001BEA09010001810BFFFD4D20621489FC0400011 -S3154001BEB090100018F20622E080A660000280000879 -S3154001BEC0010000007FFFFFB581E800007FFFFF1200 -S3154001BED09010001810BFFFDCC206203881C7E00869 -S3154001BEE081E800009DE3BF9880A620000280001DE6 -S3154001BEF003100142E406214880A4A00022800013D9 -S3154001BF00C206203CE204A004A2847FFF0C80000A02 -S3154001BF10832C600282004012A0006008C204000027 -S3154001BF209FC04000A0043FFCA2847FFF3CBFFFFDB1 -S3154001BF30C2040000E404800080A4A00032BFFFF3E5 -S3154001BF40E204A004C206203C80A0600002800007F3 -S3154001BF50010000009FC0400090100018308000038F -S3154001BF6010BFFFE5F00063F881C7E00881E80000F3 -S3154001BF701080000B86102000809240081680000831 -S3154001BF80861A400880924000168000048092000084 -S3154001BF901680000392200009902000089A924000E2 -S3154001BFA0128000059610000891D0200281C3E00856 -S3154001BFB09010000080A2C00D0A80009594100000E8 -S3154001BFC00302000080A2C0010A80002898100000E8 -S3154001BFD080A340011A80000D841020019B2B600430 -S3154001BFE010BFFFFC980320019A83400D1A80000779 -S3154001BFF08400A001832860049B3360019A034001B9 -S3154001C000108000078420A00180A3400B0ABFFFF7E0 -S3154001C01001000000028000020100000084A0A0018E -S3154001C02006800076010000009622C00D9410200182 -S3154001C0301080000A01000000952AA0010680000533 -S3154001C0409B3360019622C00D108000049402A0012A -S3154001C0509602C00D9422A00184A0A00116BFFFF74D -S3154001C0608092C000308000659B2B600480A3400B0A -S3154001C07008BFFFFE988320010280006598232001B6 -S3154001C0808092C000952AA0040680002F9B33600150 -S3154001C09096A2C00D068000179B33600196A2C00D83 -S3154001C0A00680000B9B33600196A2C00D06800005F9 -S3154001C0B09B33600196A2C00D108000509402A00FE0 -S3154001C0C09682C00D1080004D9402A00D9682C00D3F -S3154001C0D0068000059B33600196A2C00D1080004783 -S3154001C0E09402A00B9682C00D108000449402A009D0 -S3154001C0F09682C00D0680000B9B33600196A2C00D4F -S3154001C100068000059B33600196A2C00D1080003B5E -S3154001C1109402A0079682C00D108000389402A005B3 -S3154001C1209682C00D068000059B33600196A2C00D24 -S3154001C130108000329402A0039682C00D1080002F19 -S3154001C1409402A0019682C00D068000179B336001C0 -S3154001C15096A2C00D0680000B9B33600196A2C00DCE -S3154001C160068000059B33600196A2C00D1080002316 -S3154001C1709402BFFF9682C00D108000209402BFFD3D -S3154001C1809682C00D068000059B33600196A2C00DC4 -S3154001C1901080001A9402BFFB9682C00D10800017D2 -S3154001C1A09402BFF99682C00D0680000B9B33600155 -S3154001C1B096A2C00D068000059B33600196A2C00D74 -S3154001C1C01080000E9402BFF79682C00D1080000BBE -S3154001C1D09402BFF59682C00D068000059B3360012F -S3154001C1E096A2C00D108000059402BFF39682C00D41 -S3154001C1F0108000029402BFF198A3200116BFFFA24E -S3154001C2008092C000268000029422A0018090C00046 -S3154001C210268000029420000A81C3E0089010000A9B -S3154001C22019100144DA0321A480A36000128000069C -S3154001C23082034008031001449A1061B8DA2321A40D -S3154001C24082034008C22321A481C3E0089010000D57 -S3154001C250A7500000AE1000018334E00129100143CC -S3154001C260E805203CA92CC0148215000181E000009C -S3154001C2708190400001000000010000000100000023 -S3154001C280E03BA000E43BA008E83BA010EC3BA01833 -S3154001C290F03BA020F43BA028F83BA030FC3BA03863 -S3154001C2A081E800008210001781C4400081CC8000E3 -S3154001C2B0010000000100000001000000A75000003D -S3154001C2C0A92CE0012B100143EA05603CAB34C015B3 -S3154001C2D0AA154014819540000100000001000000AC -S3154001C2E00100000081E8000081E80000E01BA00099 -S3154001C2F0E41BA008E81BA010EC1BA018F01BA02013 -S3154001C300F41BA028F81BA030FC1BA03881E00000DC -S3154001C31081E0000081C4400081CC8000A75000002C -S3154001C32029100073ADC5208C010000002710014380 -S3154001C330A614E01CE024C000818C202001000000EE -S3154001C34001000000010000009DE3BFA09DE3BFA0E6 -S3154001C3509DE3BFA09DE3BFA09DE3BFA09DE3BFA01A -S3154001C3609DE3BFA081E8000081E8000081E800006C -S3154001C37081E8000081E8000081E8000081E80000D2 -S3154001C38027100143A614E01CC024C000E203A068A4 -S3154001C390A4046004E223A064E423A068108002623E -S3154001C3A0AC10000029100143A8152000C225200029 -S3154001C3B0C8252004E0252010E2252014E425201874 -S3154001C3C0E825201C81E800008348000082106F00A8 -S3154001C3D0818860200100000001000000010000008A -S3154001C3E009100143C801203C81E000008821200159 -S3154001C3F080A920FF02800003010000000100000027 -S3154001C40080A1000012BFFFF901000000091001439D -S3154001C410C801203C81E8000080A920FF028000037A -S3154001C42001000000010000008821200180A10000D8 -S3154001C43012BFFFF90100000081E00000291001430D -S3154001C440A8152000C8052004C2052000E0052010DB -S3154001C450E2052014E4052018C025201C818C20000B -S3154001C46001000000010000000100000081C48000BD -S3154001C47081CCA004A0142F00818C00000100000093 -S3154001C480010000000100000081C4800081CCA004AD -S3154001C49080A6600212800005A8142F00818D00003D -S3154001C4A0B01420203080001F80A660031280000651 -S3154001C4B0A80E2F00AA2C2F00A8154014818D00002C -S3154001C4C03080001880A6600412800008A948000048 -S3154001C4D0A8152040818D00000100000001000000E8 -S3154001C4E0010000003080000F80A660051280000820 -S3154001C4F0A9480000A82D2040818D000001000000C0 -S3154001C50001000000010000003080000680A66006A0 -S3154001C510128000030100000030BFFFA391D020002C -S3154001C52081C4800081CCA0049210200381C3E0081D -S3154001C53091D020029210200281C3E00891D02002BE -S3154001C5409210200681C3E00891D0200281C3E00801 -S3154001C5500100000081C3E0080100000081C3E0083A -S3154001C56001000000AE25A010A75000002D1000715B -S3154001C570AC15A1782910007381C522340100000051 -S3154001C5801110014390122028D2020000920260014C -S3154001C590D2220000932DE008902C2F009212000920 -S3154001C5A01110014390122020D002000080A0000803 -S3154001C5B02280000292126F00818A602001000000F1 -S3154001C5C001000000010000009010001740000031FA -S3154001C5D09203A06092142F00818A6020010000001E -S3154001C5E001000000010000001110014390122028B3 -S3154001C5F0D202000092226001D22200001080022D58 -S3154001C600AC1000001B1001449A136030912A20029D -S3154001C610C2034008C222600C81C3E008D22340080D -S3154001C6209DE3BF980310014482106030992E600249 -S3154001C6301B100143972E6004D800400C9A136230B8 -S3154001C640901000199202C00D80A6601F1480000F41 -S3154001C650821020001080000680A320002280000A5C -S3154001C660C2024000D803200C80A3200012BFFFFC69 -S3154001C67080A300097FFFFFE4F02240001080000301 -S3154001C68082102000F022400081C7E00891E80001B5 -S3154001C6909DE3BF981B1001438213602CD8006004B0 -S3154001C6A080A3001802800044C203602C80A62000AB -S3154001C6B022800002B010000C03100144A32E200278 -S3154001C6C082106030E000401180A420000280003DCD -S3154001C6D00310014310800012A41061ACD20420085B -S3154001C6E0941000199FC300009010001803100143D5 -S3154001C6F0C20061A480A060001280002B01000000EE -S3154001C700C204801182007FFFC2248011E004200C04 -S3154001C71080A420000280002B01000000D804000004 -S3154001C72080A3200022BFFFFBE004200C031001433D -S3154001C730DA00622C80A36000128000089610001275 -S3154001C74003100143821061ACDA00401180A36000FE -S3154001C75032BFFFF0E004200CDA02C011031001439E -S3154001C7609A036001C20061A880A0600002BFFFDC9D -S3154001C770DA22C0119FC0400001000000D804000029 -S3154001C780D2042008941000199FC30000901000188D -S3154001C79003100143C20061A480A0600022BFFFDAFA -S3154001C7A0C20480119FC040000100000010BFFFD6A7 -S3154001C7B0C2048011DA0060C010BFFFBDB00B601F1C -S3154001C7C081C7E00881E800008C10000FA7480000EF -S3154001C7D08B34E0188A09600F80A160030280000C47 -S3154001C7E00B1001438A116034092000008811207022 -S3154001C7F0C82140000B1001438A11605009200000F6 -S3154001C80088112040C8214000108000399010200135 -S3154001C81092102006400001DD0100000080A00008C2 -S3154001C8200280003301000000C2022010113FFC00CB -S3154001C83082084008110003FC841040089010000251 -S3154001C840921020019410200C400001E601000000E6 -S3154001C85080A000080280002601000000400001F689 -S3154001C860921000010B1001438A116034D22140001D -S3154001C870901000029210200194102011400001D91D -S3154001C8800100000080A0000802800019010000009C -S3154001C890400001E992100001920260100B10014321 -S3154001C8A08A116050D221400090100002921020015E -S3154001C8B09410200D400001CB0100000080A000082B -S3154001C8C00280000B01000000400001DB92100001D4 -S3154001C8D00B1001438A11602CD2214000D402601012 -S3154001C8E09532A010940AA00FD42160049E10000630 -S3154001C8F081C3E00801000000031001438210604833 -S3154001C9008210200191D0200081C3E008010000007F -S3154001C9109DE3BF9803100144C20060CC90100018FB -S3154001C9209210001980A0600002800005B01020001E -S3154001C9309FC0400001000000B010000881C7E00818 -S3154001C94081E800009DE3BF9803100144C20060C81E -S3154001C9509010001880A0600002800005B0102000F1 -S3154001C9609FC0400001000000B010000881C7E008E8 -S3154001C97081E800009DE3BF9803100144C20060C0F6 -S3154001C9809010001880A0600002800005B0102000C1 -S3154001C9909FC0400001000000B010000881C7E008B8 -S3154001C9A081E800009DE3BF9803100144C20060C4C2 -S3154001C9B09010001880A0600002800005B010200091 -S3154001C9C09FC0400001000000B010000881C7E00888 -S3154001C9D081E800009DE3BF9803100144C20060BC9A -S3154001C9E09010001880A0600002800005B010200061 -S3154001C9F09FC0400001000000B010000881C7E00858 -S3154001CA0081E800009DE3BF9803100144C20060B86D -S3154001CA109010001880A0600002800005B010200030 -S3154001CA209FC0400001000000B010000881C7E00827 -S3154001CA3081E800009DE3BF9803100144C20060B441 -S3154001CA409010001880A0600002800005B010200000 -S3154001CA509FC0400001000000B010000881C7E008F7 -S3154001CA6081E800009DE3BF9803100144C20060B015 -S3154001CA70901000189210001980A0600002800005F5 -S3154001CA80B01020009FC0400001000000B010000817 +S31540013B60010000000100000001000000010000000A +S31540013B7001000000010000000100000001000000FA +S31540013B8001000000010000000100000001000000EA +S31540013B9001000000010000000100000001000000DA +S31540013BA00000000080A5C00012BFFFE6AA0560081C +S31540013BB0C12D0000E60500002B03C000A614C01568 +S31540013BC0E6250000C10D000081C4400081CC800083 +S31540013BD00100000081C4800081CCA00401000000E6 +S31540013BE00100000081C3E008915800000100000077 +S31540013BF011100080901220F8C10A0000C022000076 +S31540013C00C10A0000C12A0000D4020000130003804B +S31540013C10942A800980A0000A3280004D901020032A +S31540013C201303E000D223BFA0C023BFA4C10BBFA092 +S31540013C30C023BFA0151000809412A0E8C1028000E5 +S31540013C400100000001000000C10BBFA0C10BBFA4D1 +S31540013C5083A00520C12BBFA0D003BFA0808A22002C +S31540013C602280003B90102004901020001510008007 +S31540013C709412A108C5028000C902A008D102A00C75 +S31540013C8013100080921260E8C70240008DA089445B +S31540013C9081A98AC8010000000380000501000000D7 +S31540013CA0901020011080002A01000000C50280000A +S31540013CB0C902A008D102A00C13100080921260E83C +S31540013CC0CB0240008DA0894481A98AC80100000029 +S31540013CD00380000501000000901020011080001CA7 +S31540013CE00100000025100080A414A0F0C11C800032 +S31540013CF0C51C800080A000003280000685A008C057 +S31540013D0081A80AC2010000001380000301000000DF +S31540013D10901020050100000025100080A414A0F099 +S31540013D20C11C8000C51C800080A00000010000006D +S31540013D303280000685A008C081A80AC201000000A1 +S31540013D4013800003010000009010200701000000CD +S31540013D5081C3E00801000000901020019544000055 +S31540013D609532A01E940AA00380A2800002800040E2 +S31540013D709010200080A2A0021680003D1310008002 +S31540013D8092126198C11A4000C51A6008FD02601876 +S31540013D9095A0003E99A0003E9DA0003E170000C0A0 +S31540013DA09612E078A182C0000100000001000000E7 +S31540013DB001000000010000000100000001000000B8 +S31540013DC081A0002083A0002195A0002A99A0002C63 +S31540013DD09DA0002E170000C09612E07CA182C00073 +S31540013DE00100000001000000010000000100000088 +S31540013DF0010000000100000085A0002287A00023E9 +S31540013E00A180000001000000010000000100000047 +S31540013E1001000000010000000100000089A00842E5 +S31540013E20A9A2883ED93A4000DD224000CD1A601051 +S31540013E30D102600881A90A46010000000380000CF6 +S31540013E4081AD0A2801000000038000099344000067 +S31540013E509332601B920A60079010200080A2A00155 +S31540013E6002800003902260079022600481C3E0082B +S31540013E7001000000C12BBFA081C3E008D003BFA051 +S31540013E80D023BFA081C3E008C10BBFA00100000041 +S31540013E909DE3BF6040001B94B0102000833A200A86 +S31540013EA08208600380A060010280000401000000D6 +S31540013EB081C7E00881E800007FFFB4D89010200D4B +S31540013EC0050C40290723CD1B8410A0068610E09BD4 +S31540013ED0C027BFF0C027BFF4C43FBFF8C027BFD03B +S31540013EE0C027BFD4C027BFC87FFFFF3FC027BFCC75 +S31540013EF0820A300082106080840060040728040032 +S31540013F008610E00F0910004EC6204000881122C0DD +S31540013F10071000008821000289392002861100031A +S31540013F20C62060042510008003278400821060109B +S31540013F307FFFFED0C220A0047FFFFFD21103E00025 +S31540013F4090102000C024A1687FFFFDD00100000031 +S31540013F50809200091280000601000000C204A16897 +S31540013F6080A0600002800004010000007FFFB4B21F +S31540013F709010200B7FFFFDC590103FFA03300600DD +S31540013F8080A2000102800CF880A260007FFFB4AAE3 +S31540013F909010200B7FFFFDBD9010201403100D00E3 +S31540013FA080A200010280113680A260007FFFB4A288 +S31540013FB09010200B7FFFFDB5901020620310162054 +S31540013FC080A200010280112780A260007FFFB49A7F +S31540013FD09010200B7FFFFDB590102005031028009F +S31540013FE080A2000112800CB501000000C204A16844 +S31540013FF080A0600012800CB1010000007FFFFFA18C +S315400140001103C000111C00007FFFFDB0921020007B +S31540014010031FFFFF821063FF80A200011280000B85 +S3154001402001000000C404A168030000708210601FF3 +S3154001403084088001030000108210601080A0800176 +S3154001404002800005113C00007FFFB47B9010200CDC +S31540014050113C00007FFFFD9D9210200003200000CF +S3154001406080A200011280000B01000000C404A16877 +S31540014070030000708210601F840880010300001055 +S315400140808210601080A080010280000401000000BF +S315400140907FFFB4699010200CC024A16890102000C5 +S315400140A07FFFFD8A9210200080A220001280000628 +S315400140B003100080C200616880A060000280000594 +S315400140C0110144007FFFB45C9010200C11014400A3 +S315400140D013284000901223027FFFFD7C921260015B +S315400140E080A220001280000601000000C204A168DF +S315400140F080A06000228000051111FFFF7FFFB44EB2 +S315400141009010200C1111FFFF7FFFFD78901223FFC5 +S315400141100300007F821063FF80A2000112800C63BE +S3154001412001000000C204A16880A0600012800C5FFB +S3154001413001000000271000807FFFFD64D01CE1E0F4 +S31540014140031FFFFF821063FF80A200011280000B54 +S3154001415001000000C404A168030000708210601FC2 +S3154001416084088001030000108210601080A0800145 +S3154001417002800005351000807FFFB42F9010200C7F +S3154001418035100080D01EA1D0C024A1687FFFFD4F0D +S31540014190010000000320000080A200011280000BF4 +S315400141A003100080C4006168030000708210601F24 +S315400141B084088001030000108210601080A08001F5 +S315400141C0028000052B1000807FFFB41B9010200C4D +S315400141D02B100080D01D61F0C024A1687FFFFD3BFC +S315400141E001000000031FFFFF821063FF80A2000150 +S315400141F01280000B03100080C40061680300007048 +S315400142008210601F84088001030000108210601034 +S3154001421080A08001028000052F1000807FFFB40638 +S315400142209010200C2F100080D01DE1B8C024A16849 +S315400142307FFFFD2601000000C204A1688330600EA5 +S315400142408208600380A06002028000040100000031 +S315400142507FFFB3F99010200C7FFFFF0A1103C000C6 +S3154001426011115804C024A1687FFFFD289012223401 +S3154001427003102B008210624680A200010280107159 +S31540014280032000007FFFB3EC9010200D113C02AFDC +S315400142907FFFFD1E901220D1033180558210639A13 +S315400142A080A200010280105F030800007FFFB3E295 +S315400142B09010200D1111FC007FFFFD1C9210200073 +S315400142C0031FE00080A200011280000B01000000E4 +S315400142D0C404A168030000708210601F8408800135 +S315400142E0030000108210600880A080010280000453 +S315400142F0010000007FFFB3D09010200DC024A168BB +S3154001430011207C01130001007FFFFD08901220302F +S315400143100320000080A200011280000B03100080E0 +S31540014320C4006168030000708210601F8408800128 +S31540014330030000108210600480A080010280000406 +S31540014340010000007FFFB3BC9010200DC024A1687E +S31540014350901020007FFFFCF59210200080A22000E3 +S315400143601280000603100080C200616880A06000D0 +S3154001437002800004010000007FFFB3AF9010200DC2 +S315400143807FFFFCEAD01CE1E003100080C20061E837 +S3154001439080A2000112800BC101000000C204A16885 +S315400143A080A0600012800BBD010000003710008024 +S315400143B07FFFFCDED01EE1D8031FE00080A2000192 +S315400143C012800BB301000000C204A16880A0600006 +S315400143D012800BAF010000007FFFFCD4D01D61F0BD +S315400143E003100080C200620080A200011280000B0F +S315400143F001000000C404A168030000708210601F20 +S3154001440084088001030000108210601080A08001A2 +S3154001441002800005D01DE1B87FFFB3879010200DC3 +S31540014420D01DE1B8C024A1687FFFFCC00100000097 +S31540014430C204A1688330600E8208600380A06002D6 +S3154001444002800004010000007FFFB37B9010200D25 +S315400144507FFFFE8C1103E0002108C6AFC024A1688E +S31540014460901420DE7FFFFCB9A01420DE80A200104C +S3154001447012800B8303100080C200616880A0600037 +S3154001448012800B7F010000002108C6AF901420DE88 +S315400144907FFFFCBEA01420DE80A2001012800B74A8 +S315400144A001000000C204A16880A0600012800B7068 +S315400144B0010000001128C6AF7FFFFCB4901220DE38 +S315400144C00308C6AF821060DE80A2000112800B6431 +S315400144D001000000C204A16880A0600012800B6048 +S315400144E0010000001108C6AF7FFFFCA0901220DE3C +S315400144F00328C6AF821060DE80A2000112800B54F1 +S3154001450001000000C204A16880A0600012800B5027 +S31540014510010000001128C6AF7FFFFC94901220DEF7 +S315400145200308C6AF821060DE80A2000112800B45EF +S3154001453001000000C204A16880A0600012800B4106 +S31540014540010000007FFFFE4F1103E00011151BC063 +S315400145501310C821901221039212614115351BC0D7 +S315400145601710C8219412A1037FFFFC909612E141D6 +S3154001457080A2200212800B2B01000000C204A16818 +S3154001458080A0600012800B270100000011351BC07E +S315400145901310C821901221039212614115151BC0B7 +S315400145A01710C8219412A1037FFFFC809612E141A6 +S315400145B080A2200112800B1F01000000C204A168E5 +S315400145C080A0600012800B1B0100000090102000AB +S315400145D092102000152000007FFFFC7496102000E9 +S315400145E080A220001280000601000000C204A168DA +S315400145F080A0600002800005D01EE1D87FFFB30E87 +S315400146009010200FD01EE1D87FFFFC68D41EA1D0A8 +S3154001461080A2200212800AFF01000000C204A168A4 +S3154001462080A0600012800AFB0100000011151BC02A +S315400146301310C821901221039212614115151BE8EE +S315400146401710C8219412A1037FFFFC589612E1412D +S3154001465080A2200112800AEB01000000C204A16879 +S3154001466080A0600012800AE70100000011151BE8D6 +S315400146701310C821901221039212614115151BC0D6 +S315400146801710C8219412A1037FFFFC489612E141FD +S3154001469080A2200212800AD701000000C204A1684C +S315400146A080A0600012800AD301000000D41CE1E022 +S315400146B011151BE81310C821901221037FFFFC3B03 +S315400146C09212614180A2200312800AC601000000B5 +S315400146D0C204A16880A0600012800AC201000000E5 +S315400146E0D41D61F011151BE81310C8219012210346 +S315400146F07FFFFC2E9212614180A220031280000BA3 +S3154001470001000000C404A168030000708210601F0C +S3154001471084088001030000108210601080A080018F +S3154001472002800005D41DE1B87FFFB2C39010200F6F +S31540014730D41DE1B8C024A16811151BE81310C82186 +S31540014740901221037FFFFC199212614180A220023F +S3154001475012800AA003100080C200616880A0600038 +S3154001476012800A9C01000000D01DE1B815151BE816 +S315400147701710C8219412A1037FFFFC0C9612E14148 +S3154001478080A2200112800A8B01000000C204A168A8 +S3154001479080A0600012800A8701000000D01CE1E081 +S315400147A015151BE81710C8219412A1037FFFFBFFC3 +S315400147B09612E14180A2200312800A820100000084 +S315400147C0C204A16880A0600012800A7E0100000038 +S315400147D0D01D61F015151BE81710C8219412A103CD +S315400147E07FFFFBF29612E14180A220031280000B6B +S315400147F001000000C404A168030000708210601F1C +S3154001480084088001030000108210601080A080019E +S3154001481002800004010000007FFFB2879010200F44 +S31540014820C024A16811151BC01310C8219012210381 +S315400148309212614115351BC01710C8219412A1036C +S315400148407FFFFBED9612E14180A2200212800A55BC +S3154001485003100080C200616880A0600012800A5186 +S315400148600100000011351BC01310C821901221030D +S315400148709212614115151BC01710C8219412A1034C +S315400148807FFFFBDD9612E14180A2200112800A41A1 +S3154001489001000000C204A16880A0600012800A3DA8 +S315400148A00100000090102000921020001520000009 +S315400148B07FFFFBD19610200080A2200012800006C7 +S315400148C001000000C204A16880A0600002800005CA +S315400148D0D01EE1D87FFFB2589010200FD01EE1D8EC +S315400148E07FFFFBC5D41EA1D080A2200212800A25DB +S315400148F001000000C204A16880A0600012800A2164 +S315400149000100000011151BC01310C821901221038C +S315400149109212614115151BE81710C8219412A10383 +S315400149207FFFFBB59612E14180A2200112800A1158 +S3154001493001000000C204A16880A0600012800A0D37 +S315400149400100000011151BE81310C8219012210324 +S315400149509212614115151BC01710C8219412A1036B +S315400149607FFFFBA59612E14180A22002128009FD3C +S3154001497001000000C204A16880A06000128009F90C +S3154001498001000000D41CE1E011151BE81310C821F9 +S31540014990901221037FFFFB989212614180A220036E +S315400149A01280000B01000000C404A16803000070DE +S315400149B08210601F8408800103000010821060107D +S315400149C080A0800102800005D41D61F07FFFB21AEC +S315400149D09010200FD41D61F011151BE81310C8214A +S315400149E0901221037FFFFB849212614180A2200332 +S315400149F01280000B01000000C404A168030000708E +S31540014A008210601F8408800103000010821060102C +S31540014A1080A0800102800005D41DE1B87FFFB20667 +S31540014A209010200FD41DE1B8C024A16811151BE8D0 +S31540014A301310C821901221037FFFFB6F921261412F +S31540014A4080A22002128009BF03100080C200616863 +S31540014A5080A06000128009BB01000000D01DE1B8B2 +S31540014A6015151BE81710C8219412A1037FFFFB629D +S31540014A709612E14180A22001128009B60100000090 +S31540014A80C204A16880A06000128009B20100000042 +S31540014A90D01CE1E015151BE81710C8219412A1039B +S31540014AA07FFFFB559612E14180A220031280000B45 +S31540014AB001000000C404A168030000708210601F59 +S31540014AC084088001030000108210601080A08001DC +S31540014AD002800005D01D61F07FFFB1D79010200FF5 +S31540014AE0D01D61F015151BE81710C8219412A103BA +S31540014AF07FFFFB419612E14180A220031280000B09 +S31540014B0001000000C404A168030000708210601F08 +S31540014B1084088001030000108210601080A080018B +S31540014B2002800004010000007FFFB1C39010200FF6 +S31540014B30C024A168110048EA13048D15901223CDB3 +S31540014B407FFFFB3E9212627880A220011280097992 +S31540014B5003100080C200616880A060001280097560 +S31540014B6001000000110048EA13048D15901223CD6F +S31540014B707FFFFB439212627880A220011280096A6C +S31540014B8001000000C204A16880A06000128009668D +S31540014B9001000000C024A1687FFFFCBA1103C000D8 +S31540014BA023100124A807BFF8BA07BFD090100014FC +S31540014BB09210001D7FFFFA6C94146158C20461582B +S31540014BC0C407BFF880A0800102800E0CA014615872 +S31540014BD07FFFB199901020102D1000809010001485 +S31540014BE09215A1C87FFFFA6094146158C4046158B4 +S31540014BF0C205A1C880A0800122800DF6C40420040C +S31540014C007FFFB18D90102010901000149214E1E0B6 +S31540014C107FFFFA5594146158C4046158C204E1E017 +S31540014C2080A0800102800DE1B214E1E07FFFB182F4 +S31540014C309010201090100014921561F07FFFFA4AEF +S31540014C4094146158C404A168030000708210601F67 +S31540014C5084088001030000108210601080A080014A +S31540014C6002800004010000007FFFB1739010201004 +S31540014C70C024A1687FFFFC8390102000901000148F +S31540014C80921561F07FFFFA3894146158391000800B +S31540014C90C4046158C20721F880A0800122800DBD5D +S31540014CA0C40420047FFFB164901020107FFFFC757F +S31540014CB01103C000901000149215E1B87FFFFA2A43 +S31540014CC094146158C204A1688330600E820860035F +S31540014CD080A0600202800004010000007FFFB156FF +S31540014CE090102010C024A1689010001D921000144D +S31540014CF07FFFFA1D94146158C4046158C207BFF876 +S31540014D0080A0800122800D9AC40420047FFFB14A0D +S31540014D10901020109010001D9215A1C87FFFFA1225 +S31540014D2094146158C4046158C205A1C880A0800189 +S31540014D3022800D84C40420047FFFB13F90102010CF +S31540014D409010001D9214E1E07FFFFA079414615818 +S31540014D50C4046158C204E1E080A0800122800D7044 +S31540014D60C40420047FFFB134901020109010001D20 +S31540014D70921561F07FFFF9FC94146158C404A1684F +S31540014D80030000708210601F840880010300001038 +S31540014D908210601080A080010280000401000000A2 +S31540014DA07FFFB125901020107FFFFC369010200028 +S31540014DB09010001D921561F07FFFF9EB9414615834 +S31540014DC0C4046158C20721F880A0800122800D4D9C +S31540014DD0C40420047FFFB118901020107FFFFC29E6 +S31540014DE01103C0009010001D9215E1B87FFFF9DE56 +S31540014DF094146158C204A1688330600E820860032E +S31540014E0080A0600202800004010000007FFFB10A19 +S31540014E1090102010C024A1689015A1C892100014CA +S31540014E207FFFF9D194146158C4046158C205A1C8E1 +S31540014E3080A0800122800D28C40420047FFFB0FE9B +S31540014E40901020109015A1C89210001D7FFFF9C641 +S31540014E5094146158C4046158C205A1C880A0800158 +S31540014E6022800D12C40420047FFFB0F3901020105D +S31540014E709016E1D8941461587FFFF9BB921000084F +S31540014E80C4046158C206E1D880A0800122800CFC8E +S31540014E90C40420047FFFB0E8901020109016A1D0E2 +S31540014EA0941461587FFFF9B092100008C404615808 +S31540014EB0C206A1D080A0800122800CE6C404200451 +S31540014EC07FFFB0DD901020109016A1D09216E1D848 +S31540014ED07FFFF9A594146158C404A16803000070CA +S31540014EE08210601F84088001030000108210601048 +S31540014EF080A0800102800004010000007FFFB0CE47 +S31540014F00901020107FFFFBDF901020009016A1D05B +S31540014F109216E1D87FFFF99494146158C4046158FC +S31540014F20C20721F880A0800122800CC3C40420045A +S31540014F307FFFB0C1901020107FFFFBD21103C0004C +S31540014F409016E1D8C024A1689216A1D07FFFF986B8 +S31540014F5094146158C4046158C20721F880A08001A5 +S31540014F6022800CA4C40420047FFFB0B3901020100B +S31540014F709015A1C89215E1B87FFFF97B9414615849 +S31540014F80C204A1688330600E8208600380A060027B +S31540014F9002800004010000007FFFB0A7901020109E +S31540014FA0C024A1689014E1E0921000147FFFF96ECD +S31540014FB094146158C4046158C204E1E080A08001A0 +S31540014FC022800C83C40420047FFFB09B90102010E4 +S31540014FD09014E1E09210001D7FFFF963941461582B +S31540014FE0C4046158C204E1E080A0800122800C6FB4 +S31540014FF0C40420047FFFB090901020109014E1E08B +S315400150009215A1C87FFFF95894146158C404615898 +S31540015010C204E1E080A0800122800C5BC40420042C +S315400150207FFFB085901020109014E1E094146158F0 +S315400150307FFFF94D92100008C4046158C204E1E0B3 +S3154001504080A0800122800C47C40420047FFFB07AEF +S31540015050901020109014E1E0921561F07FFFF94223 +S3154001506094146158C404A168030000708210601F43 +S3154001507084088001030000108210601080A0800126 +S3154001508002800004010000007FFFB06B90102010E9 +S31540015090C024A168901561F0921000147FFFF93287 +S315400150A094146158C404A168030000708210601F03 +S315400150B084088001030000108210601080A08001E6 +S315400150C002800004010000007FFFB05B90102010B9 +S315400150D0C024A168901561F09210001D7FFFF9224E +S315400150E094146158C404A168030000708210601FC3 +S315400150F084088001030000108210601080A08001A6 +S3154001510002800004010000007FFFB04B9010201088 +S31540015110C024A168901561F09215A1C87FFFF912CC +S3154001512094146158C404A168030000708210601F82 +S3154001513084088001030000108210601080A0800165 +S3154001514002800004010000007FFFB03B9010201058 +S31540015150C024A168901561F09214E1E07FFFF90245 +S3154001516094146158C404A168030000708210601F42 +S3154001517084088001030000108210601080A0800125 +S3154001518002800005901561F07FFFB02B9010201032 +S31540015190901561F0C024A168941461587FFFF8F21C +S315400151A092100008C404A168030000708210601FB9 +S315400151B084088001030000108210601080A08001E5 +S315400151C002800004010000007FFFB01B90102010F8 +S315400151D0C024A168901561F09215E1B87FFFF8E20D +S315400151E094146158C204A1688330600E820860033A +S315400151F080A0600202800004010000007FFFB00E23 +S31540015200901020107FFFFB1F1103C0000310008088 +S31540015210C024A1688210633010800009B0102000BC +S315400152207FFFB00590102010C207BFC4B006200111 +S3154001523080A6200D0280002282006018852E200360 +S31540015240912E200590220002051000808410A32093 +S31540015250C227BFC490008008932E20011510012457 +S31540015260920240189412A15892026001932A600357 +S315400152707FFFF8BD92008009C207BFC4C600400047 +S31540015280C404000080A0C00232BFFFE6C227BFC4EB +S31540015290C60060040910012488112158C401200464 +S315400152A080A0C00232BFFFDFC227BFC4B0062001C3 +S315400152B080A6200D12BFFFE282006018C204A168D9 +S315400152C080A0600012800BA3010000001110008134 +S315400152D094146158901220587FFFF8A39202200837 +S315400152E00310008082106320C4006148C2046158E3 +S315400152F080A0800102800B86071000807FFFAFCE21 +S315400153009010201011100081941461589012207051 +S315400153107FFFF8959202200809100080C204615867 +S3154001532088112320C401216080A0800122800B695D +S31540015330C40121647FFFAFC090102010111000817D +S3154001534094146158901220887FFFF88792022008B2 +S315400153500310008082106320C4006178C204615842 +S3154001536080A0800102800B4B071000807FFFAFB207 +S3154001537090102010C024A168111000009210200046 +S31540015380150FFC007FFFF94F96102000030FFC001C +S3154001539080A2000102800B3880A260007FFFAFA689 +S315400153A0901020101110000092102000152FFC00C3 +S315400153B07FFFF944961020000310020080A20001ED +S315400153C002800B2680A260007FFFAF9B90102010C9 +S315400153D01130000092102000150FFC007FFFF939B3 +S315400153E0961020000330020080A2000102800B14B7 +S315400153F080A260007FFFAF90901020101130000016 +S3154001540092102000152FFC007FFFF92E96102000E8 +S31540015410032FFC0080A2000102800B0280A26000E3 +S315400154207FFFAF8590102010111000007FFFF92FEC +S31540015430130FE0000310100080A20001128007B68E +S3154001544001000000C204A16880A06000128007B27A +S3154001545001000000111000007FFFF92E130FE0003C +S31540015460030FE00080A20001128007A7010000009F +S31540015470C204A16880A06000128007A30100000059 +S3154001548009100080C024A16890100014941461583A +S315400154907FFFF848921121C0C4046158C206A1D0C9 +S315400154A080A0800122800ACFC40420047FFFAF621E +S315400154B090102011C024A168901000149216E1D8D2 +S315400154C07FFFF83C94146158C4046158C207BFC8B1 +S315400154D080A0800122800ABAC40420047FFFAF560F +S315400154E090102011901000149214E1E07FFFF831E2 +S315400154F094146158C4046158C204E1E080A080015B +S3154001550022800AA6C40420047FFFAF4B90102011CD +S3154001551090100014921561F07FFFF826941461589B +S31540015520C4046158C20721F880A0800122800A8AFA +S31540015530C40420047FFFAF40901020119010001446 +S315400155409215E1B87FFFF81B94146158030000706F +S31540015550C404A168840880010300002080A0800162 +S3154001556002800004010000007FFFAF33901020113C +S31540015570C024A1689010001D921000147FFFF80D01 +S3154001558094146158C4046158C207BFD080A08001F9 +S3154001559022800A68C40420047FFFAF27901020119F +S315400155A0031000809207BFC8901061C07FFFF801C9 +S315400155B094146158C4046158C20721F880A080013F +S315400155C022800A4CC40420047FFFAF1B9010201197 +S315400155D009100080C024A168901121C09216E1D81B +S315400155E07FFFF7F494146158C40461580710008092 +S315400155F0C200E1C080A0800122800A34C404200494 +S315400156007FFFAF0D901020119010001D9214E1E024 +S315400156107FFFF7E894146158C4046158C204E1E07D +S3154001562080A0800122800A20C40420047FFFAF02AB +S31540015630901020079010001D921561F07FFFF7DD55 +S3154001564094146158C404A168030000708210601F5D +S3154001565084088001030000108210601080A0800140 +S3154001566002800004010000007FFFAEF3901020117C +S31540015670C024A1689010001D9215E1B87FFFF7CDB7 +S315400156809414615803000070C404A1688408800121 +S315400156900300002080A08001028000040100000078 +S315400156A07FFFAEE590102011C024A1689016A1D0CD +S315400156B0921000147FFFF7BF94146158C4046158D7 +S315400156C0C206A1D080A08001228009ECC404200436 +S315400156D07FFFAED990102011091000809016A1D0FD +S315400156E0921121C07FFFF7B394146158C4046158E5 +S315400156F0C206E1D880A08001228009D5C4042004D5 +S315400157007FFFAECD901020119015A1C89414615819 +S315400157107FFFF7A892100008C4046158C20721F818 +S3154001572080A08001228009BAC40420047FFFAEC252 +S3154001573090102011C024A1689015A1C89214E1E0EF +S315400157407FFFF79C94146158C4046158C204E1E098 +S3154001575080A08001228009A5C40420047FFFAEB643 +S31540015760901020119015A1C8921561F07FFFF79115 +S3154001577094146158C4046158C20721F880A080017D +S315400157802280098AC40420047FFFAEAB9010201109 +S31540015790C024A1689015A1C89215E1B87FFFF7858D +S315400157A09414615803000070C404A1688408800100 +S315400157B00300002080A08001028000040100000057 +S315400157C07FFFAE9D90102011C024A1689014E1E0A6 +S315400157D0921000147FFFF77794146158C4046158FE +S315400157E0C204E1E080A0800122800967C40420044C +S315400157F07FFFAE91901020119014E1E09210001DB0 +S315400158007FFFF76C94146158C4046158C204E1E007 +S3154001581080A0800122800953C40420047FFFAE8604 +S31540015820901020119014E1E09215A1C87FFFF76115 +S3154001583094146158C4046158C204E1E080A0800117 +S315400158402280093FC40420047FFFAE7B90102011C3 +S315400158509014E1E0941461587FFFF75692100008C6 +S31540015860C4046158C204E1E080A080012280092B72 +S31540015870C40420047FFFAE70901020119014E1E023 +S31540015880921561F07FFFF74B94146158C404615837 +S31540015890C20721F880A080012280090FC404200498 +S315400158A07FFFAE65901020119014E1E09215E1B8AA +S315400158B07FFFF7409414615803000070C404A16847 +S315400158C0840880010300002080A080010280000539 +S315400158D0901561F07FFFAE5890102011901561F040 +S315400158E0921000147FFFF73394146158C404A168E1 +S315400158F0030000708210601F8408800103000010BD +S315400159008210601080A08001028000040100000026 +S315400159107FFFAE4990102011C024A168901561F017 +S315400159209210001D7FFFF72394146158C404A168A7 +S31540015930030000708210601F84088001030000107C +S315400159408210601080A080010280000401000000E6 +S315400159507FFFAE3990102011C024A168901561F0E7 +S315400159609215A1C87FFFF71394146158C404A16826 +S31540015970030000708210601F84088001030000103C +S315400159808210601080A080010280000401000000A6 +S315400159907FFFAE2990102011C024A168901561F0B7 +S315400159A09214E1E07FFFF70394146158C404A1689F +S315400159B0030000708210601F8408800103000010FC +S315400159C08210601080A0800102800005901561F070 +S315400159D07FFFAE1990102011901561F0C024A16887 +S315400159E0941461587FFFF6F392100008C404A1682D +S315400159F0030000708210601F8408800103000010BC +S31540015A008210601080A08001028000040100000025 +S31540015A107FFFAE0990102011C024A168901561F056 +S31540015A209215E1B87FFFF6E39414615803000070C4 +S31540015A30C404A168840880010300002080A080017D +S31540015A4002800005051FC0007FFFADFB90102011AD +S31540015A50051FC0000700C0008410A1028610E0B0F7 +S31540015A60C024A168B007BFE0C43FBFE805203E831C +S31540015A70070021C88410A3FF8610E3A19007BFE861 +S31540015A8092100018C43FBFE07FFFF6CA9407BFD803 +S31540015A90C407BFD8033FFC0080A080010280088074 +S31540015AA0C207BFDC7FFFADE4901020110500400026 +S31540015AB00700C0008410A1028610E0B0C024A1688E +S31540015AC09007BFE8C43FBFE805108683070021C899 +S31540015AD08410A3FF8610E3A1921000189407BFD843 +S31540015AE07FFFF6B4C43FBFE0C207BFDCC407BFD8DF +S31540015AF0809080011280000B03100080C400616811 +S31540015B00030000708210601F8408800103000010AA +S31540015B108210600480A0800102800005050006AF66 +S31540015B207FFFADC590102011050006AF86102010ED +S31540015B30C024A1689007BFE8C43FBFE8050FFC0039 +S31540015B40070281D88410A0408610E10C92100018FB +S31540015B509407BFD87FFFF697C43FBFE0C407BFD8BD +S31540015B60030006AE8210639580A080010280084240 +S31540015B70C407BFDC7FFFADB090102011050006AF12 +S31540015B8086102010C024A1689007BFE8C43FBFE833 +S31540015B90050FFFFF070281D88410A3408610E10C50 +S31540015BA0921000189407BFD87FFFF682C43FBFE02A +S31540015BB0C207BFDCC407BFD8809080011280000BAA +S31540015BC003100080C4006168030000708210601FEA +S31540015BD084088001030000108210600480A08001C7 +S31540015BE002800004010000007FFFAD939010201158 +S31540015BF0C024A168111088007FFFF75A13100100D5 +S31540015C00031066C9821062CA80A20001128005BAD9 +S31540015C1003100080C200616880A06000128005B652 +S31540015C20010000001111BBFE130C70407FFFF74DC0 +S31540015C30901223FF031527CA8210611E80A200011C +S31540015C40128005A901000000C204A16880A060007D +S31540015C50128005A501000000111E607E1310C7FFCA +S31540015C607FFFF740921263FC031D73FC8210633879 +S31540015C7080A200011280059801000000C204A168BB +S31540015C8080A06000128005940100000011002000F0 +S31540015C90130FE0007FFFF7339212600180A22000CC +S31540015CA01280000B01000000C404A16803000070CB +S31540015CB08210601F84088001030000108210600476 +S31540015CC080A0800102800005110FE0007FFFAD5AE0 +S31540015CD090102011110FE000C024A1687FFFF72129 +S31540015CE092100008030FE00080A2000112800576A1 +S31540015CF003100080C200616880A0600012800572B6 +S31540015D000100000011002000130FE0007FFFF7158E +S31540015D109212600180A220001280000B0100000057 +S31540015D20C404A168030000708210601F84088001CA +S31540015D30030000108210600480A0800102800005EB +S31540015D40031000807FFFAD3C9010201103100080AE +S31540015D50C024A168921061C0901000147FFFF6071D +S31540015D6094146158C404615807100080C200E1C010 +S31540015D7080A08001228007B6C40420047FFFAD2E97 +S31540015D8090102012901000149216E1D87FFFF5FB77 +S31540015D9094146158C4046158C206E1D880A08001B8 +S31540015DA0228007A0C40420047FFFAD239010201257 +S31540015DB0901000149214E1E07FFFF5F094146158BD +S31540015DC0C4046158C204E1E080A080012280078CAE +S31540015DD0C40420047FFFAD189010201290100014C7 +S31540015DE0921561F07FFFF5E594146158C40461583A +S31540015DF0C20721F880A0800122800770C4042004D4 +S31540015E007FFFAD0D90102012901000149215E1B84D +S31540015E107FFFF5DA9414615803000070C404A16849 +S31540015E20840880010300002080A0800102800004D4 +S31540015E30010000007FFFAD0090102012C024A16830 +S31540015E409010001D921000147FFFF5CC94146158F8 +S31540015E50C4046158C207BFD080A080012280074E8A +S31540015E60C40420047FFFACF490102012031000807C +S31540015E709216A1D0901061C07FFFF5C0941461586D +S31540015E80C4046158C20721F880A0800122800732EC +S31540015E90C40420047FFFACE890102012C024A168FE +S31540015EA09010001D9214E1E07FFFF5B494146158FF +S31540015EB0C4046158C204E1E080A080012280071D2C +S31540015EC0C40420047FFFACDC901024999010001D7F +S31540015ED0921561F07FFFF5A994146158C404615885 +S31540015EE0C20721F880A0800122800701C404200452 +S31540015EF07FFFACD1901020129010001D9215E1B891 +S31540015F007FFFF59E9414615803000070C404A16894 +S31540015F10840880010300002080A0800102800004E3 +S31540015F20010000007FFFACC490102012C024A1687C +S31540015F309015A1C8921000147FFFF59094146158F2 +S31540015F40C4046158C205A1C880A08001228006DD33 +S31540015F50C40420047FFFACB8901020129015A1C84C +S31540015F609210001D7FFFF58594146158C404615851 +S31540015F70C20721F880A08001228006C2C404200401 +S31540015F807FFFACAD90102012C024A1689015A1C826 +S31540015F909214E1E07FFFF57994146158C404615885 +S31540015FA0C204E1E080A08001228006ADC404200441 +S31540015FB07FFFACA1901020129015A1C8921561F0F7 +S31540015FC07FFFF56E94146158C4046158C20721F8E5 +S31540015FD080A0800122800691C40420047FFFAC96F4 +S31540015FE0901020129015A1C89215E1B87FFFF56374 +S31540015FF09414615803000070C404A16884088001A8 +S315400160000300002080A080010280000401000000FE +S315400160107FFFAC8990102012C024A1689014E1E062 +S31540016020921000147FFFF55594146158C4046158C9 +S31540016030C204E1E080A080012280066FC4042004EE +S315400160407FFFAC7D901020129014E1E09210001D6C +S315400160507FFFF54A94146158C4046158C204E1E0D3 +S3154001606080A080012280065BC40420047FFFAC72BD +S31540016070901020129014E1E09215A1C87FFFF53FE0 +S3154001608094146158C4046158C204E1E080A08001BF +S3154001609022800647C40420047FFFAC67901020127B +S315400160A09014E1E0941461587FFFF5349210000892 +S315400160B0C4046158C204E1E080A080012280063315 +S315400160C0C40420047FFFAC5C901020129014E1E0E0 +S315400160D0921561F07FFFF52994146158C404A168B3 +S315400160E0030000708210601F8408800103000010C5 +S315400160F08210601080A0800102800004010000002F +S315400161007FFFAC4D90102012C024A168901561F01C +S31540016110921000147FFFF51994146158C404A168C4 +S31540016120030000708210601F840880010300001084 +S315400161308210601080A080010280000401000000EE +S315400161407FFFAC3D90102012C024A1689210001D23 +S31540016150901561F07FFFF50994146158C404A16854 +S31540016160030000708210601F840880010300001044 +S315400161708210601080A080010280000401000000AE +S315400161807FFFAC2D90102012C024A168901561F0BC +S315400161909215A1C87FFFF4F994146158C404A1680B +S315400161A0030000708210601F840880010300001004 +S315400161B08210601080A0800102800004010000006E +S315400161C07FFFAC1D90102012C024A168901561F08C +S315400161D09214E1E07FFFF4E994146158C404A16884 +S315400161E0030000708210601F8408800103000010C4 +S315400161F08210601080A0800102800005901561F038 +S315400162007FFFAC0D90102012901561F0C024A1685B +S31540016210941461587FFFF4D992100008C404A16810 +S31540016220030000708210601F840880010300001083 +S315400162308210601080A080010280000401000000ED +S315400162407FFFABFD90102012C024A168901561F02C +S315400162509215E1B87FFFF4C994146158C204A1684C +S315400162608330600E8208600380A0600202800005D0 +S315400162701103C0007FFFABF0901020121103C00044 +S315400162807FFFF70031100080B0162228C024A16894 +S3154001629010800008BA1020007FFFABE79010201253 +S315400162A0BA07600180A7600602800024B006201864 +S315400162B0832F60030910008088112218912F6005F1 +S315400162C0932F6001902200019202401D9001000827 +S315400162D09202600115100124932A60039412A15879 +S315400162E07FFFF4A692010009C4060000C204000023 +S315400162F080A0800112BFFFE907100124C4062004D3 +S315400163008610E158C200E00480A0800112BFFFE37D +S315400163100910008088112168C201000080A0600038 +S3154001632012BFFFDE01000000BA07600180A76006C8 +S3154001633012BFFFE0B0062018111000809414615876 +S31540016340901222A87FFFF48D92022008031000804C +S3154001635082106218C40060A0C204615880A0800106 +S315400163600280057A071000807FFFABB390102012A0 +S31540016370C024A1681110008094146158901222C063 +S315400163807FFFF47E9202200809100080C204615802 +S3154001639088112218C40120B880A080012280055DA1 +S315400163A0C40120BC7FFFABA490102012C024A16879 +S315400163B01110008094146158901222D87FFFF46F17 +S315400163C0920220080310008082106218C40060D037 +S315400163D0C204615880A080010280053E07100080FA +S315400163E07FFFAB9590102012C024A1681110008048 +S315400163F094146158901222F07FFFF46092022008B3 +S3154001640009100080C204615888112218C40120E88D +S3154001641080A0800122800521C40120EC7FFFAB864C +S3154001642090102012C024A168111000809414615864 +S31540016430901223087FFFF451920220080310008036 +S3154001644082106218C4006100C204615880A08001B4 +S3154001645002800502071000807FFFAB779010201263 +S31540016460C024A168111010007FFFF53413100000FD +S315400164700310300080A20001128003B70310008090 +S31540016480C200616880A06000128003B30100000071 +S31540016490111FE000131000007FFFF43D9414615872 +S315400164A0C4046158031FFC0080A08001228004E3DC +S315400164B0C20420047FFFAB609010201B111FE00037 +S315400164C0133000007FFFF43294146158C4046158BC +S315400164D0033FFC0080A08001228004D0C204200436 +S315400164E07FFFAB559010201C111000009210201018 +S315400164F07FFFF4279414615803000070C404A16817 +S31540016500840880010300002080A0800102800004ED +S31540016510010000007FFFAB489010201DC024A168F8 +S3154001652011002000130FC0007FFFF4199414615825 +S31540016530C4046158030E000080A08001228004AF8C +S31540016540C20420047FFFAB3C9010201E111FDFFFC9 +S3154001655013100000901223FF7FFFF40D941461582D +S31540016560C40461580311FFFF821063FF80A08001BC +S3154001657022800499C40420047FFFAB2F9010201F72 +S31540016580111FD000130FF0007FFFF40194146158DE +S31540016590C40461580311FC8080A0800122800486D6 +S315400165A0C20420047FFFAB2490102021111FDFFF7E +S315400165B094146158901223FF7FFFF3F5921000085F +S315400165C0C40461580313FBFF821063FF80A080015E +S315400165D02280046FC40420047FFFAB179010202053 +S315400165E07FFFF6281103C0009007BFC8C024A168E9 +S315400165F07FFFF3F692146158C4046158C207BFC8BD +S3154001660080A0800122800459C40420047FFFAB0A84 +S315400166109010201309100080921461587FFFF3EB0C +S31540016620901121C005100080C200A1C0C404615868 +S3154001663080A0800102800442071000807FFFAAFEED +S31540016640901020139016E1D87FFFF3E09214615821 +S31540016650C4046158C206E1D880A080010280042D9D +S31540016660091000807FFFAAF4901020139016A1D044 +S315400166707FFFF3D692146158C4046158C20721F8CA +S3154001668080A0800122800413C40420047FFFAAEA6B +S3154001669090102013C024A168901561F07FFFF3CBC1 +S315400166A092146158C4046158C20721F880A0800140 +S315400166B0228003F8C40420047FFFAADF9010201330 +S315400166C0C024A1689014E1E07FFFF3C092146158A1 +S315400166D0C204E1E0C404615880A08001228003E441 +S315400166E0C20660047FFFAAD49010201305100C0047 +S315400166F0861020009010001492146158C43FBFF8D0 +S3154001670005300F78070C00088610E0017FFFF3AFD4 +S31540016710C43FBFF0C40461580310040080A0800147 +S31540016720228003CBC20420047FFFAAC3901020130A +S31540016730A607BFF0921461587FFFF3A4901000138F +S31540016740C20721F8C404615880A08001028003B0C9 +S31540016750051000807FFFAAB8901020139015E1B86C +S315400167607FFFF39A92146158C204A1688330600E88 +S315400167708208600380A060020280000401000000DC +S315400167807FFFAAAD90102013C024A1687FFFF47F3C +S315400167901111F2000310E80080A20001128002EB01 +S315400167A003100080C200616880A06000128002E789 +S315400167B0010000007FFFF5B3111000001101F589BA +S315400167C07FFFF472901221E20308E96480A200017E +S315400167D0128002DB01000000C204A16880A06000B3 +S315400167E0128002D7010000007FFFF4681112A2084F +S315400167F00311410080A20001128002CE0100000077 +S31540016800C204A16880A06000128002CA0100000093 +S315400168107FFFF59C11001000901000149215E1B80D +S315400168207FFFF35194146158C404615803100C005E +S3154001683080A080012280036EC20420047FFFAA7ECD +S31540016840901020149015E1B8921000137FFFF34B7E +S3154001685094146158C40461580320000080A080014B +S315400168602280035BC20420047FFFAA739010201488 +S315400168707FFFF38E90102001030FE00080A20001FC +S31540016880128002A901000000C204A16880A0600034 +S31540016890128002A5010000007FFFF37C90102001C9 +S315400168A0030FFC0080A200010280034280A2600027 +S315400168B07FFFAA61901020147FFFF572111010001E +S315400168C0D41EE1D87FFFF3FFD01DE1B8C206A1D0A7 +S315400168D0D024615880A040080280032BD224200492 +S315400168E07FFFAA55901020227FFFF5661110000008 +S315400168F0050FFC0086102000901000149210001322 +S31540016900C43FBFF8050F2800070400808610E0F059 +S31540016910941461587FFFF314C43FBFF0C404615817 +S31540016920030FFC0080A0800122800313C2042004CF +S315400169307FFFAA41901020157FFFF55211200000DC +S31540016940050FFC00861020009010001492100013D1 +S31540016950C43FBFF805001400070000408610E0015F +S31540016960941461587FFFF300C43FBFF0C4046158DB +S31540016970030FFC0080A08001228002FBC204200498 +S315400169807FFFAA2D901020157FFFF53E11300000A4 +S31540016990052FFC0086102000901000149210001361 +S315400169A0C43FBFF805201400070000408610E001EF +S315400169B0941461587FFFF2ECC43FBFF0C4046158A0 +S315400169C0032FFC0080A08001228002E3C204200440 +S315400169D07FFFAA19901020157FFFF52A111000009C +S315400169E0050FFC0086102000901000149215A1C8D6 +S315400169F0C43FBFF87FFFF2DC94146158C404615868 +S31540016A00C205A1C880A08001228002CCC404200412 +S31540016A107FFFAA09901020157FFFF51A112000006B +S31540016A20050FFC0086102000901000149215A1C895 +S31540016A30C43FBFF805001400070000408610E0017E +S31540016A40941461587FFFF2C8C43FBFF0C404615833 +S31540016A50C205A1C880A08001228002B1C4042004DD +S31540016A607FFFA9F5901020157FFFF5061130000034 +S31540016A70052FFC0086102000901000149215A1C825 +S31540016A80C43FBFF805201400070000408610E0010E +S31540016A90941461587FFFF2B4C43FBFF0C205A1C848 +S31540016AA0C404615880A080010280029609100080CA +S31540016AB07FFFA9E1901020157FFFF4F2111000002D +S31540016AC0050FFC008610200190100014921000134F +S31540016AD0C43FBFF805100000861020019414615888 +S31540016AE07FFFF2A6C43FBFF0C40461580310000003 +S31540016AF080A080012280027FC20420047FFFA9CEAC +S31540016B00901020157FFFF4DF112000009010001433 +S31540016B10921000137FFFF29994146158C40461588E +S31540016B200310000080A080012280026EC20420046E +S31540016B307FFFA9C1901020157FFFF4D211300000CC +S31540016B40052FFC00861020019010001492100013AE +S31540016B50C43FBFF87FFFF28994146158C404615859 +S31540016B600330000080A080012280025AC204200422 +S31540016B707FFFA9B1901020157FFFF4C211100000CC +S31540016B80050FFEAE071CD2E88410A1548610E01111 +S31540016B909010001492100013C43FBFF8050FFC0477 +S31540016BA0072F26158410A0128610E23194146158DD +S31540016BB07FFFF280C43FBFF0C4046158030FFEA7B4 +S31540016BC08210629680A080012280023CC404200487 +S31540016BD07FFFA999901020157FFFF4AA112000008C +S31540016BE090100014921000137FFFF27294146158B2 +S31540016BF0C4046158030FFEA78210629680A08001EB +S31540016C0022800228C40420047FFFA98B90102015FE +S31540016C107FFFF49C11300000052FFC04072F261539 +S31540016C208410A0128610E2319010001492100013C5 +S31540016C30C43FBFF07FFFF25F94146158C4046158AA +S31540016C40032FFEA78210629680A080012280020F48 +S31540016C50C40420047FFFA978901020157FFFF48992 +S31540016C601110000005103800861020009010001405 +S31540016C7092100013C43FBFF8051010008610200083 +S31540016C80941461587FFFF24BC43FBFF0C40461586E +S31540016C900310240080A08001228001F8C204200450 +S31540016CA07FFFA965901020157FFFF4761120000023 +S31540016CB090100014921000137FFFF23E9414615815 +S31540016CC0C40461580310240080A08001228001E79A +S31540016CD0C20420047FFFA958901020157FFFF46954 +S31540016CE01130000090100014921000137FFFF23112 +S31540016CF094146158C40461580310240080A0800193 +S31540016D00228001D6C20420047FFFA94B9010201592 +S31540016D107FFFF45C1110000011002000130FE0000A +S31540016D207FFFF3109212600180A22000128001C8F9 +S31540016D30010000007FFFF4531120000011002000E4 +S31540016D40130FE0007FFFF3079212600180A220003B +S31540016D50128001BC010000007FFFF44A113000009F +S31540016D6011002000130FE0007FFFF2FE9212600136 +S31540016D7080A22000128001B0010000007FFFF44193 +S31540016D8011100000050FFC00861020009010001421 +S31540016D90921461587FFFF20DC43FBFF8C404615895 +S31540016DA0C207BFF880A080012280019AC404200452 +S31540016DB07FFFA921901020157FFFF432112000009A +S31540016DC0901000147FFFF20192146158C404615877 +S31540016DD0C207BFF880A0800122800185C404200437 +S31540016DE07FFFA915901020157FFFF4261130000072 +S31540016DF0901000147FFFF1F592146158C404615854 +S31540016E00C207BFF880A0800122800170C40420041B +S31540016E107FFFA909901020157FFFF41A1110000079 +S31540016E202B0FDFFF901563FF7FFFF2D8AA1563FF93 +S31540016E3080A2001502800004010000007FFFA8FE29 +S31540016E40901020157FFFF40F11200000110FDFFF76 +S31540016E507FFFF2CE901223FF030FE00080A20001D4 +S31540016E6002800004010000007FFFA8F39010201566 +S31540016E707FFFF404113000002B0FDFFF901563FFF5 +S31540016E807FFFF2C2AA1563FF80A2001502800004AB +S31540016E90010000007FFFA8E8901020157FFFF3F95D +S31540016EA0901020007FFFF2C190146158C4046158CC +S31540016EB0032FFE0080A0800122800140C2042004ED +S31540016EC07FFFA8DD901020162B1001247FFFF2C111 +S31540016ED090156160C4056160032FF00080A08001B8 +S31540016EE002800004010000007FFFA8D39010201605 +S31540016EF07FFFF2C290156160C4056160030FE00037 +S31540016F0080A0800102800004010000007FFFA8CA22 +S31540016F10901020167FFFF2C990146158C40461583D +S31540016F20030FFBF7821063F080A080012280011CD1 +S31540016F30C40420047FFFA8C0901020169215E1B822 +S31540016F40901000147FFFF19B94146158C204A1680C +S31540016F508330600E8208600780A0600202800005CF +S31540016F60031000807FFFA8B4901020170310008003 +S31540016F70C40061700310004DE40061B8821061B82D +S31540016F8080A0400202800005031000807FFFA8AA6E +S31540016F909010201803100080C200617480A0401236 +S31540016FA002800005031000807FFFA8A390102018DF +S31540016FB003100080C200617880A06000128000F456 +S31540016FC00100000003100080C200617C80A06000C7 +S31540016FD0128000EC010000007FFFF14E010000002D +S31540016FE080A220010280052D01000000050C4029E8 +S31540016FF00723CD1B8410A0068610E09B9010001439 +S31540017000C027BFF0C027BFF4C43FBFF82910008195 +S315400170107FFFF1962B100082AA1560A0A4102000D4 +S31540017020A81520A0AC146158BA10001510800008AC +S31540017030AE1000107FFFA88090102019A404A00470 +S3154001704080A4A400228000172B100084C2050012E0 +S31540017050C224C000901000137FFFF18792100016E2 +S31540017060832CA001C4040000C605400180A0C002D3 +S3154001707012BFFFF182074001C4006004C205E0046B +S3154001708080A0800112BFFFEC01000000A404A0040F +S3154001709080A4A40032BFFFEFC20500122B1000846A +S315400170A0A2146158AA1560A0A4102000AE100015C4 +S315400170B010800008AC1000107FFFA85F9010201AC6 +S315400170C0A404A00880A4A4000280001501000000C9 +S315400170D0C2050012C224C000921000117FFFF13B8D +S315400170E090100013C4054012C204000080A0800124 +S315400170F012BFFFF28205C012C4006004C205A0049B +S3154001710080A0800112BFFFED01000000A404A00889 +S3154001711080A4A40032BFFFF0C205001281C7E00877 +S3154001712081E800007FFFA8449010200F30BFF69AF7 +S315400171307FFFA8419010200F10BFF68C110048EA3E +S315400171407FFFA83D9010200F10BFF646D01DE1B835 +S315400171507FFFA8399010200F10BFF64FD01CE1E0F9 +S315400171607FFFA8359010200F10BFF608D41CE1E030 +S315400171707FFFA8319010200F10BFF5F411151BE8C1 +S315400171807FFFA82D9010200F10BFF5E011151BC0F1 +S315400171907FFFA8299010200F10BFF5C49010200042 +S315400171A07FFFA8259010200F10BFF5B011351BC0E9 +S315400171B07FFFA8219010200F10BFF57AD01CE1E087 +S315400171C07FFFA81D9010200F10BFF583D01D61F0E1 +S315400171D07FFFA8199010200F10BFF565D01DE1B8AB +S315400171E07FFFA8159010200F10BFF53FD41D61F009 +S315400171F07FFFA8119010200F10BFF52ED41CE1E09F +S315400172007FFFA80D9010200F10BFF51A11151BE82E +S315400172107FFFA8099010200F10BFF50611151BC05E +S315400172207FFFA8059010200F10BFF4DA11351BC05F +S315400172307FFFA8019010200F10BFF4E690102000A8 +S315400172407FFFA7FD9010200E30BFF4BF7FFFA7FA46 +S315400172509010200E10BFF4B11128C6AF7FFFA7F6DC +S315400172609010200E10BFF4A11108C6AF7FFFA7F200 +S315400172709010200E10BFF4911128C6AF7FFFA7EEE4 +S315400172809010200E10BFF4822108C6AF7FFFA7EAF7 +S315400172909010200D30BFF4517FFFA7E79010200DCD +S315400172A010BFF444371000807FFFA7E39010200CF5 +S315400172B010BFF3A2271000807FFFA7DF9010200B9D +S315400172C030BFF34F7FFFA7DC9010201110BFFA8F1C +S315400172D0110020007FFFA7D89010201110BFFA6D32 +S315400172E0110020007FFFA7D49010201110BFFA5C37 +S315400172F0111E607E7FFFA7D09010201110BFFA4B60 +S315400173001111BBFE7FFFA7CC9010201010BFF85E75 +S31540017310091000807FFFA7C89010201010BFF84FBA +S31540017320111000007FFFA7C49010201430BFFD5BF1 +S315400173307FFFA7C19010202330BFFD367FFFA7BE38 +S315400173409010202330BFFD297FFFA7BB901020134B +S3154001735030BFFD197FFFA7B89010201210BFFC4E19 +S31540017360111FE00012BFF30A01000000C204A16828 +S3154001737080A0600002BFF3080100000030BFF304A3 +S315400173807FFFA7AD9010201830BFFF147FFFA7AA3B +S315400173909010201810BFFF0D031000800303FF1249 +S315400173A08210604A80A0800112BFFEE39215E1B8C7 +S315400173B010BFFEE59010001480A0600002BFFEC41D +S315400173C02B10012430BFFEBFC207BFFC80A0800145 +S315400173D012BFFE9001000000C204A16880A06000B7 +S315400173E002BFFE8E0100000030BFFE8AC207BFFC0D +S315400173F080A0800112BFFE7B01000000C204A1688B +S3154001740080A0600002BFFE790100000030BFFE751A +S31540017410C207BFFC80A0800112BFFE6601000000CA +S31540017420C204A16880A0600002BFFE6401000000A2 +S3154001743030BFFE607FFFA7809010201530BFFE5001 +S315400174407FFFA77D9010201530BFFE447FFFA77AAE +S315400174509010201530BFFE3880A0600002BFFE2D7F +S315400174600100000030BFFE2980A0600002BFFE1C63 +S315400174700100000030BFFE1880A0600002BFFE0B75 +S315400174800100000030BFFE07032C1B348210603020 +S3154001749080A0800112BFFDF00100000030BFFDF069 +S315400174A0032C1B348210603080A0800112BFFDD7AF +S315400174B00100000030BFFDD7032C1B348210602F22 +S315400174C080A0800112BFFDC30100000030BFFDC393 +S315400174D080A0600312BFFDA70100000030BFFDA7D9 +S315400174E080A0600312BFFD930100000030BFFD93F1 +S315400174F080A0600212BFFD820100000030BFFD8204 +S31540017500C4042004881121C8C201200480A080013E +S3154001751012BFFD680100000030BFFD680710008002 +S315400175208610E1C8C200E00480A0800112BFFD4D73 +S315400175300100000030BFFD4D09100080881121C8AF +S31540017540C201200480A0800112BFFD32010000006B +S3154001755030BFFD3280A0600112BFFD1E0100000058 +S3154001756030BFFD1E80A0600112BFFD060100000074 +S3154001757030BFFD0680A0600002BFFCF001000000A4 +S3154001758030BFFCEC071000808610E1D0C200E00459 +S3154001759080A0400912BFFCD301000000C204A168CB +S315400175A080A0600002BFFCD10100000030BFFCCDCD +S315400175B012BFFCC001000000C204A16880A06000A7 +S315400175C002BFFCBE0100000030BFFCBA80A06000D3 +S315400175D012BFFCA601000000C204A16880A06000A1 +S315400175E002BFFCA40100000030BFFCA080A06000E7 +S315400175F012BFFC9301000000C204A16880A0600094 +S3154001760002BFFC929015E1B830BFFC8D8410A1F801 +S31540017610C200A004C404200480A0800112BFFC4E15 +S3154001762001000000C404A168030000708210601FBD +S3154001763084088001030000108210601080A0800140 +S3154001764012BFFC459015E1B830BFFC4680A06000F2 +S3154001765012BFFC3601000000C204A16880A0600090 +S3154001766002BFFC35A607BFF030BFFC30C40420047E +S3154001767080A0800112BFFC1C03100080C20061681B +S3154001768080A0600002BFFC1B05100C0030BFFC1639 +S3154001769009100080881121F8C201200480A08001D0 +S315400176A012BFFC0603100080C4006168030000702D +S315400176B08210601F84088001030000108210601050 +S315400176C080A0800112BFFBFD0100000030BFFBFD21 +S315400176D0071000808610E1F8C200E00480A0800116 +S315400176E012BFFBEB01000000C404A1680300007057 +S315400176F08210601F84088001030000108210601010 +S3154001770080A0800112BFFBE20100000030BFFBE216 +S31540017710C4042004881121D8C201200480A080011C +S3154001772012BFFBD101000000C204A16880A0600025 +S3154001773002BFFBD09016A1D030BFFBCBC4042004BE +S315400177408610E1C0C200E00480A0800112BFFBBCEC +S3154001775001000000C204A16880A0600002BFFBBB1B +S315400177609016E1D830BFFBB6C207BFCC80A08001DE +S3154001777012BFFBA703100080C200616880A06000B1 +S3154001778002BFFBA60910008030BFFBA103300000F9 +S315400177908210602080A0800112BFFB900100000092 +S315400177A0C204A16880A0600002BFFB8E01000000F8 +S315400177B030BFFB8A80A0600012BFFB7B0100000046 +S315400177C0C204A16880A0600002BFFB7A111FDFFFDF +S315400177D030BFFB750338000080A0800112BFFB67F4 +S315400177E001000000C204A16880A0600002BFFB66E0 +S315400177F0111FD00030BFFB6180A0600012BFFB5259 +S3154001780003100080C200616880A0600002BFFB5186 +S31540017810111FDFFF30BFFB4C80A0600012BFFB3160 +S3154001782001000000C204A16880A0600002BFFB30D5 +S315400178301110000030BFFB2B80A0600012BFFB1E61 +S3154001784001000000C204A16880A0600002BFFB1DC8 +S31540017850111FE00030BFFB18C20420048610E21855 +S31540017860C400E10480A0800112BFFAFC031000802D +S31540017870C4006168030000708210601F84088001A3 +S31540017880030000108210600880A0800112BFFAF345 +S315400178900100000030BFFAF3C204200480A0800139 +S315400178A012BFFADF03100080C40061680300007054 +S315400178B08210601F8408800103000010821060045A +S315400178C080A0800112BFFAD60100000030BFFAD66F +S315400178D0C20420048610E218C400E0D480A08001CE +S315400178E012BFFAC003100080C40061680300007033 +S315400178F08210601F84088001030000108210600816 +S3154001790080A0800112BFFAB70100000030BFFAB76C +S31540017910C204200480A0800112BFFAA30310008094 +S31540017920C4006168030000708210601F84088001F2 +S31540017930030000108210600880A0800112BFFA9AED +S315400179400100000030BFFA9AC20420048610E218F2 +S31540017950C400E0A480A0800112BFFA8401000000A7 +S31540017960C404A168030000708210601F840880016E +S31540017970030000108210600480A0800112BFFA7BD0 +S315400179800100000030BFFA7BC206600480A080017E +S3154001799012BFF9CD01000000C204A16880A06000B9 +S315400179A002BFF9CC9014E1E030BFF9C7C2066004CA +S315400179B080A0800112BFF9B901000000C204A1688C +S315400179C080A0600002BFF9B89014E1E030BFF9B37E +S315400179D0C206600480A0800112BFF9A50100000023 +S315400179E0C204A16880A0600002BFF9A49014E1E03E +S315400179F030BFF99FC206600480A0800112BFF99191 +S31540017A0003100080C200616880A0600002BFF99047 +S31540017A109014E1E030BFF98B071000808610E1F841 +S31540017A20C200E00480A0800112BFF96D0100000090 +S31540017A30C404A168030000708210601F840880019D +S31540017A40030000108210601080A0800112BFF9640B +S31540017A509015A1C810BFF9669215E1B8C206600437 +S31540017A6080A0800112BFF95303100080C2006168F3 +S31540017A7080A0600002BFF9529015A1C830BFF94DF0 +S31540017A8009100080881121F8C201200480A08001DC +S31540017A9012BFF93C01000000C404A1680300007054 +S31540017AA08210601F8408800103000010821060105C +S31540017AB080A0800112BFF9330100000030BFF933C5 +S31540017AC0071000808610E1C8C200E00480A0800152 +S31540017AD012BFF92103100080C200616880A06000D6 +S31540017AE002BFF9209015A1C830BFF91B09100080CB +S31540017AF0881121F8C201200480A0800112BFF8FD3F +S31540017B0001000000C404A168030000708210601FD8 +S31540017B1084088001030000108210601080A080015B +S31540017B2012BFF8F49010001D10BFF8F69215E1B897 +S31540017B30C206600480A0800112BFF8E303100080F2 +S31540017B40C200616880A0600002BFF8E29010001D8B +S31540017B5030BFF8DD071000808610E1F8C200E0046E +S31540017B6080A0800112BFF8CC01000000C404A168C6 +S31540017B70030000708210601F84088001030000101A +S31540017B808210601080A0800112BFF8C3010000007E +S31540017B9030BFF8C3C207BFD480A0800112BFF8B27C +S31540017BA003100080C200616880A0600002BFF8B186 +S31540017BB00310008030BFF8AC09100080881121F80D +S31540017BC0C201200480A0800112BFF88E010000008E +S31540017BD0C404A168030000708210601F84088001FC +S31540017BE0030000108210601080A0800112BFF8854A +S31540017BF09010001410BFF8879215E1B8C2066004D0 +S31540017C0080A0800112BFF87401000000C204A1687F +S31540017C1080A0600002BFF8739010001430BFF86E68 +S31540017C20071000808610E1D8C200E00480A08001E0 +S31540017C3012BFF85E01000000C204A16880A0600086 +S31540017C4002BFF85D9010001430BFF8588810E1C0AB +S31540017C50C201200480A0800112BFF84903100080B0 +S31540017C60C200616880A0600002BFF848901000140D +S31540017C7030BFF84303003A9A8210630F80A0800117 +S31540017C8012BFF7BD03100080C200616880A060008A +S31540017C9002BFF7BC050006AF30BFF7B780A0600052 +S31540017CA012BFF78103100080C400616803000070B1 +S31540017CB08210601F84088001030000108210600852 +S31540017CC080A0800112BFF7780500400010BFF77A07 +S31540017CD00700C00009100080881121F8C201200464 +S31540017CE080A0800112BFF6EF01000000C404A16824 +S31540017CF0030000708210601F840880010300001099 +S31540017D008210601080A0800112BFF6E69014E1E077 +S31540017D1010BFF6E89215E1B8C206600480A0800162 +S31540017D2012BFF6D501000000C204A16880A0600020 +S31540017D3002BFF6D49014E1E030BFF6CFC20660042C +S31540017D4080A0800112BFF6C101000000C204A168F3 +S31540017D5080A0600002BFF6C09014E1E030BFF6BBE0 +S31540017D60C206600480A0800112BFF6AD010000008A +S31540017D70C204A16880A0600002BFF6AC9014E1E0A5 +S31540017D8030BFF6A7C206600480A0800112BFF699F3 +S31540017D9003100080C200616880A0600002BFF698AF +S31540017DA09014E1E030BFF693071000808610E1F8A9 +S31540017DB0C200E00480A0800112BFF67401000000F9 +S31540017DC0C404A168030000708210601F840880010A +S31540017DD0030000108210601080A0800112BFF66B74 +S31540017DE00100000030BFF66BC206600480A080012E +S31540017DF012BFF65B03100080C200616880A060007C +S31540017E0002BFF65A9015A1C830BFF6550910008039 +S31540017E10881121F8C201200480A0800112BFF644D6 +S31540017E2001000000C404A168030000708210601FB5 +S31540017E3084088001030000108210601080A0800138 +S31540017E4012BFF63B0100000030BFF63B0710008031 +S31540017E508610E1D8C200E00480A0800112BFF62955 +S31540017E6001000000C204A16880A0600002BFF6289C +S31540017E709015A1C830BFF623071000808610E1D0C7 +S31540017E80C200E00480A0800112BFF61203100080F8 +S31540017E90C200616880A0600002BFF611091000802F +S31540017EA030BFF60CC206600480A0800112BFF5E027 +S31540017EB001000000C204A16880A0600002BFF5DF96 +S31540017EC09010001D30BFF5DA8810E1C0C2012004D0 +S31540017ED080A0800112BFF5CB03100080C20061680B +S31540017EE080A0600002BFF5CA9010001D30BFF5C5E5 +S31540017EF0071000808610E1F8C200E00480A08001EE +S31540017F0012BFF5B201000000C404A168030000706D +S31540017F108210601F840880010300001082106010E7 +S31540017F2080A0800112BFF5A90910008030BFF5AAD3 +S31540017F30C207BFD480A0800112BFF598031000800C +S31540017F40C200616880A0600002BFF59703100080FF +S31540017F5030BFF59209100080881121F8C201200432 +S31540017F6080A0800112BFF57401000000C404A1681D +S31540017F70030000708210601F840880010300001016 +S31540017F808210601080A0800112BFF56B9010001422 +S31540017F9010BFF56D9215E1B8C206600480A080015C +S31540017FA012BFF55A01000000C204A16880A060001A +S31540017FB002BFF5599010001430BFF554C207BFCC2B +S31540017FC080A0800112BFF54603100080C20061689F +S31540017FD080A0600002BFF5459010001430BFF54007 +S31540017FE0071000808610E1D0C200E00480A0800125 +S31540017FF012BFF52F03100080C400616803000070B2 +S315400180008210601F84088001030000108210600204 +S3154001801080A0800112BFF5260100000030BFF52681 +S3154001802012BFF50001000000C204A16880A06000F3 +S3154001803002BFF4FF1110000030BFF4FA12BFF4EE94 +S3154001804001000000C204A16880A0600002BFF4EDF7 +S315400180501130000030BFF4E812BFF4DC010000002B +S31540018060C204A16880A0600002BFF4DB11300000A9 +S3154001807030BFF4D612BFF4CA03100080C200616853 +S3154001808080A0600002BFF4C91110000030BFF4C4E3 +S31540018090C20420048610E320C400E17C80A0800154 +S315400180A012BFF4B301000000C404A16803000070CC +S315400180B08210601F84088001030000108210600452 +S315400180C080A0800112BFF4AA0100000030BFF4AACB +S315400180D0C204200480A0800112BFF4970100000071 +S315400180E0C404A168030000708210601F84088001E7 +S315400180F0030000108210600480A0800112BFF48E3C +S315400181001110008110BFF49094146158C2042004E8 +S315400181108610E320C400E14C80A0800112BFF478B0 +S3154001812001000000C404A168030000708210601FB2 +S3154001813084088001030000108210600880A080013D +S3154001814012BFF46F1110008110BFF471941461587D +S315400181507FFFA4399010201010BFF45E11100081EA +S31540018160C206600480A0800112BFF3B9010000007D +S31540018170C204A16880A0600002BFF3B89014E1E098 +S3154001818030BFF3B3C206600480A0800112BFF3A5DD +S3154001819001000000C204A16880A0600002BFF3A4F0 +S315400181A09014E1E030BFF39FC206600480A08001D5 +S315400181B012BFF39101000000C204A16880A06000D3 +S315400181C002BFF3909014E1E030BFF38BC206600426 +S315400181D080A0800112BFF37D03100080C200616858 +S315400181E080A0600002BFF37C9014E1E030BFF377DA +S315400181F009100080881121F8C201200480A0800165 +S3154001820012BFF35A03100080C40061680300007076 +S315400182108210601F840880010300001082106010E4 +S3154001822080A0800112BFF3519015A1C810BFF3532E +S315400182309215E1B8071000808610E1F8C200E0040B +S3154001824080A0800112BFF33B0100000030BFF33B29 +S3154001825009100080881121D0C201200480A080012C +S3154001826012BFF31801000000C204A16880A060009B +S3154001827002BFF3179016A1D030BFF312071000804A +S315400182808610E1D8C200E00480A0800112BFF3024B +S3154001829001000000C204A16880A0600002BFF30192 +S315400182A09016A1D030BFF2FC09100080881121C878 +S315400182B0C201200480A0800112BFF2EC010000003F +S315400182C0C204A16880A0600002BFF2EB9016E1D81B +S315400182D030BFF2E6071000808610E1C8C200E00414 +S315400182E080A0800112BFF2D603100080C2006168EF +S315400182F080A0600002BFF2D59015A1C830BFF2D070 +S3154001830009100080881121F8C201200480A0800153 +S3154001831012BFF2B10100000030BFF2B1C2066004E3 +S3154001832080A0800112BFF29001000000C204A16842 +S3154001833080A0600002BFF28F9010001D30BFF28A0C +S31540018340071000808610E1C8C200E00480A08001C9 +S3154001835012BFF27A01000000C204A16880A0600049 +S3154001836002BFF2799010001D30BFF274C207BFFC04 +S3154001837080A0800112BFF26603100080C2006168CE +S3154001838080A0600002BFF2659010001D30BFF26010 +S31540018390881721F8C201200480A0800112BFF24251 +S315400183A00100000030BFF242C4042004C20660044A +S315400183B080A0800112BFF21E01000000C204A16824 +S315400183C080A0600002BFF21D9010001430BFF21869 +S315400183D08615A1C8C200E00480A0800112BFF2093F +S315400183E001000000C204A16880A0600002BFF2083B +S315400183F09010001430BFF203C2042004C407BFFC2E +S3154001840080A0800112BFF1F303100080C2006168B1 +S3154001841080A0600002BFF1F22D10008030BFF1ED67 +S3154001842080A2400112BFEFA201000000C204A16870 +S3154001843080A0600002BFEFA11111FC0030BFEF9C8C +S3154001844080A2400112BFEF9003100080C200616814 +S3154001845080A0600022BFEF8F113C02AF30BFEF8A90 +S3154001846012BFEEDB01000000C204A16880A06000DB +S3154001847002BFEED90100000030BFEED512BFEECCEF +S3154001848001000000C204A16880A0600002BFEECADC +S315400184900100000030BFEEC67FFFA3679010201990 +S315400184A010BFFAD4050C402981D8200081C3E008C9 +S315400184B00100000081D8200082102400C0A04300A2 +S315400184C081C3E00801000000853220109132201856 +S315400184D0900A200F8408A00380A000088260200033 +S315400184E081C3E008900880019DE3BF887FFFEB7A56 +S315400184F09010200C808A20081280000401000000A0 +S3154001850081C7E00891E820007FFFA3449010200E28 +S31540018510C2800320853060188088A00F028000DD6C +S315400185202F100123833060108208600380A060020F +S31540018530028000E0C225E0D880A06003028000FFEF +S3154001854080A06001028000EC2910010C2310010C6F +S315400185502110010C2B10010C2710010C2510010CC8 +S3154001856081D8200081D8200082102400C0A0430079 +S31540018570031000A1051000A0821060008410A00025 +S31540018580873060048610E00188100003C8788000B7 +S315400185908800A004C67900008610200AC6784000EB +S315400185A0C8046000C60420041B00800019080000AE +S315400185B09A13600A993B0004980B0003992B2002F9 +S315400185C098030001DA7B00001B0100001710000030 +S315400185D09813608E973AC004960AC003972AE00220 +S315400185E09602C001D87AC000171C00001901C000CC +S315400185F0893AC0049813208E860900038728E00231 +S315400186008600C001D878C0003B1000A28200600CF1 +S31540018610BA176000873760048610E001C6784000CB +S315400186208213601E86076008C278C000821020004F +S315400186308807600C86100001C67900002D1000A243 +S315400186409A076004AC15A1008735A004B81000163E +S315400186508610E001C67B4000B405A008C27E8000BA +S315400186601B1000C0B605A004861360008330E004E9 +S315400186709810601AD87EC000C02360001B048D1577 +S315400186809A136278DA20E004DA05E0D83310010063 +S315400186909A03600CB21660008605A00CB01020004B +S315400186A0C627BFF8DA27BFFC9010001892102003A6 +S315400186B0C227BFF0C427BFEC40000AB0C827BFF4A9 +S315400186C0DA07BFFC992A000DC607BFF898030019BF +S315400186D0993320049813201ED878C000B006200193 +S315400186E08600E00480A62008C207BFF0C407BFEC9D +S315400186F012BFFFECC807BFF417100020DE05200C9F +S315400187008612E168C822E16809100020D005600898 +S31540018710D804A014DA04E010D2042004D404600082 +S31540018720960BE001972AC008C6212160880A60039A +S315400187308929000A8812C004960B2002972AC00D87 +S315400187409611000B8530A004D620E0209610600ECD +S31540018750D620E0289608BFF0840B20018528800D9D +S31540018760841100028210601EC420E02CC420E01453 +S31540018770050100008410A01EC220E010C420E004C0 +S31540018780F620E00CF420E018F620E02405007641BE +S31540018790031000208410A1C082106000C420E008AC +S315400187A0833060048210601EC220E01C82102100CA +S315400187B0D6A04320C4800320C280432084102001D8 +S315400187C082102200C4A04320C68043208610200088 +S315400187D0C6A04320C4A0032081D820007FFFEABE63 +S315400187E090102000913A200C808A20030280006577 +S315400187F001000000C280032082102100C280432074 +S3154001880082102200C2804320C80420048809200324 +S31540018810C2046000C605200CC4056008D404A01437 +S31540018820D604E010832900019808E0019A0AA001C4 +S31540018830992B00029B2B400B981300019A13000DB4 +S31540018840C803400080A12000028000038813600411 +S3154001885030800000D201000011048D15901222785B +S3154001886080A2400812BFFFFB111000009E08E002E3 +S31540018870D00200009F2BC0029E13C001DE03C00040 +S3154001888080A3C008228000428608E00330800000B1 +S315400188902310010C2110010CC025E0D82B10010C2E +S315400188A02910010C2710010C10BFFF2E2510010CB9 +S315400188B02110010C2910010C2510010C2310010C6B +S315400188C08210203F2B10010C2710010CC2242004DA +S315400188D0C224A014C225200C8210201AC224600092 +S315400188E082102014C22560088210200E10BFFF1D81 +S315400188F0C224E0102510010C2310010C8210203FE8 +S315400189002110010C2B10010C2710010CC225200C43 +S31540018910C224A01482102019C22460008210207F34 +S31540018920C224200482102013C22560088210200D23 +S3154001893010BFFF0CC224E0102110010C2710010CBE +S315400189402310010C8210200F2B10010C2910010C51 +S315400189502510010CC224E010C22420048210201CE0 +S31540018960C224600082102015C22560088210207F33 +S31540018970C225200C8210203F10BFFEFAC224A0144B +S315400189807FFFBDA30100000030BFFF9B8528C002C9 +S3154001899082108001C20040000321D9508210632118 +S315400189A0C2210000C401000080A0800102800003B2 +S315400189B001000000308000008210000D05048D1575 +S315400189C08410A278072AF37B8610E301C43840005D +S315400189D0C4384000C203400080A040090280000321 +S315400189E00100000030800000C4010000032AF37B2F +S315400189F08210630180A0800112BFFFFBC205E0D84F +S31540018A00940AA0038200600C972A800B84102001EF +S31540018A10AE13000B85288001B0102000EE25C00062 +S31540018A20C0A0022092102003C227BFF0C427BFEC8A +S31540018A30400009D290100018C207BFF0912A0001E8 +S31540018A40C606400880A0C01712800008C407BFECC4 +S31540018A50B006200180A6200802800005AE05C002AE +S31540018A6010BFFFF0EE25C00030800000C0A00220FC +S31540018A70AE102003B0102000852DE002C40580020F +S31540018A808608A06080A00003C227BFF0B04000184E +S31540018A90C427BFEC9005FFFD400009B892102003A2 +S31540018AA0C207BFF0C407BFEC872A00018606400310 +S31540018AB08730E0048610E01E8418C0028088BF9F7C +S31540018AC012800009AE05E00180A5E00B32BFFFEC44 +S31540018AD0852DE00280A6200012800004D805200CD6 +S31540018AE03080000030800000C8056008DA042004A8 +S31540018AF0C4046000C604A014C204E010980B20010F +S31540018B009A0B6003892B0004852B40028608E002FC +S31540018B10841100028328C001821080019FC0400059 +S31540018B200100000082102400C0A04300C0A0022022 +S31540018B308210200084072020C607200C8608E060AA +S31540018B4080A00003B80720048240000180A70002EC +S31540018B5032BFFFFBC607200C80A0600822800003BD +S31540018B60C206C00030800000808860400280000458 +S31540018B708088602032800003C20760083080000090 +S31540018B808088602032800003C20680003080000069 +S31540018B9080886020128000030100000030800000C0 +S31540018BA083480000842860808188A000010000007D +S31540018BB00100000001000000D8042004C804600040 +S31540018BC0DA05200CC4056008C604A014C204E010EE +S31540018BD0980B20039A0B6001892B0004852B4002D8 +S31540018BE08608E001841100028328C0018410A00494 +S31540018BF082108001C20040009210200491D02002D0 +S31540018C00010000007FFFE9B490102000913A200C4A +S31540018C10808A200312800005841020007FFFBCFC5F +S31540018C20010000008410200082102200C4A04320CD +S31540018C3086102001C6A04320C4A043200310000093 +S31540018C40C4804380C4A043807FFFBD5E9010200056 +S31540018C5081D8200030BFFE2B9DE3BFA040000822F3 +S31540018C6001000000808A21001280000401000000FA +S31540018C7081C7E00891E820007FFFA18B23100120E6 +S31540018C80912A20047FFFA16590022005A21460006D +S31540018C90C204600480A060000280001A8210200095 +S31540018CA0A010200084044001C8044001C600A0046D +S31540018CB0C200A0089B39201F81836000010000008B +S31540018CC001000000010000008479000380A08001BA +S31540018CD002800004A00420017FFFA15790102001CB +S31540018CE082040010820040108328600284044001FF +S31540018CF0C400A00480A0A00012BFFFEC8404400180 +S31540018D0023100120A2146138C204600480A06000CF +S31540018D100280001982102000A01020008404400126 +S31540018D20C8044001C600A004C200A00881802000FA +S31540018D3001000000010000000100000084710003F1 +S31540018D4080A0800102800004A00420017FFFA13A97 +S31540018D509010200282040010820040108328600295 +S31540018D6084044001C400A00480A0A00012BFFFED0E +S31540018D7084044001400008890100000080A22000CF +S31540018D8012BFFFBC901020037FFFA12BB010200023 +S31540018D9081C7E00881E800009DE3BFA07FFFA142B3 +S31540018DA001000000912A20047FFFA11C90022004AB +S31540018DB0400007CF0100000080A221230280000469 +S31540018DC0010000007FFFA11C90102001400007C652 +S31540018DD001000000808A2100028000292310012021 +S31540018DE0A2146180C204600880A060090280001557 +S31540018DF082102000A010200084044001C6044001D6 +S31540018E00C800A004C200A0088459000380A08001C4 +S31540018E1002800004A00420017FFFA10790102002D8 +S31540018E2082040010820040108328600284044001BD +S31540018E30C400A00880A0A00912BFFFF1840440012C +S31540018E40400007B80100000080A2200002800023F4 +S31540018E5001000000400007B30100000080A220008D +S31540018E6002800016010000004000079F010000003B +S31540018E70808A2200128000040100000081C7E008B8 +S31540018E8091E82000400007F80100000080A2200080 +S31540018E900280001A01000000400007F301000000B3 +S31540018EA080A2200012BFFFF6010000007FFFA0E272 +S31540018EB09010200430BFFFF27FFFA0DF9010200307 +S31540018EC04000078901000000808A220002BFFFECB2 +S31540018ED00100000030BFFFEC7FFFA0D790102003B8 +S31540018EE0400007900100000080A2200012BFFFDF72 +S31540018EF00100000030BFFFF17FFFA0CF901020049A +S31540018F0030BFFFE6000000009DE3BFA094102000A3 +S31540018F10111000639012233C1310006392126340B8 +S31540018F20171000639612E348191000639813234CF7 +S31540018F3093C2000081C240001080019181C2C000ED +S31540018F4081C300001080018E9402A0019402A00109 +S31540018F5080A2A0031280018A01000000874400001C +S31540018F608D30E00E8C89A00780A1A000028000C749 +S31540018F7001000000AF30E00BAE0DE00780A5E00038 +S31540018F80128000C20100000080A1A00212800035BB +S31540018F900100000025100000E41C8000251000009F +S31540018FA029100000A8152104A6100012AA100012CB +S31540018FB0AC100014A1802046A4100000AA100000A5 +S31540018FC001000000A180204EA810210001000000F0 +S31540018FD0A18000000100000001000000E83CA03033 +S31540018FE082A480131280016682A500161280016454 +S31540018FF0010000000100000001000000874400005C +S315400190008D30E00B8C89A0078CA1A0051280015CF4 +S31540019010A1800000010000000100000001000000E5 +S31540019020E81CA03082A500161280015582A5401287 +S31540019030A41000001280015201000000010000004E +S31540019040874400008D30E00B8C89A0078CA1A003DA +S315400190501280014B010000001080008C01000000CD +S3154001906080A1A0011280002325100000E41C80008D +S315400190702510000029100000A8152104A610001291 +S31540019080AA100012AC100014A1802046A4100000C2 +S31540019090AA10000001000000A180204EA810210066 +S315400190A001000000A1800000010000000100000055 +S315400190B001000000E83C800082A480131280013048 +S315400190C082A500161280012E010000000100000059 +S315400190D0874400008D30E00B8C89A0078CA1A0024B +S315400190E01280012701000000108000680100000085 +S315400190F080A1A00312800065A6100000A210200ED8 +S31540019100A1844000A6100000A1800000A814E00040 +S31540019110AB44000001000000AC14E0000100000077 +S31540019120AF44000080A5200012800115AA8D6E0073 +S3154001913080A540001280011280A5A0001280011076 +S31540019140AF35E00BAE0DE00780A5E0011280010CC2 +S3154001915001000000A0100000A1844000A6100000FC +S31540019160A1800000E8180000AC100000AE1000001D +S31540019170EC04C000EE04E00480A500161280010054 +S3154001918080A54017128000FE01000000A5440000A2 +S31540019190A534A00BA40CA00780A4A001128000F85E +S315400191A001000000A0100000A1844000A6100000AC +S315400191B0A1800000A210200AA1844000A410000052 +S315400191C0A1800000E8180000AC100000AE100000BD +S315400191D0EC04C012EE04E00480A50016128000E8FB +S315400191E080A54017128000E601000000A54400005A +S315400191F0A534A00BA40CA00780A4A002068000E021 +S315400192000100000021100120A0142200EC1C0000E6 +S31540019210A0042008E81C0000A1844000A61000001C +S31540019220A1800000A210200EA1844000A4100010CD +S31540019230AC100000AE100000A1800000010000004B +S3154001924001000000EC3C8013AC100000AE100000A1 +S31540019250E81CC01280A50016128000C980A54017DF +S31540019260128000C701000000A5440000A534A00BF0 +S31540019270A40CA00780A4A004128000C10100000034 +S3154001928010800002010000008B4440008A09601FE3 +S3154001929080A160010280000A8C1000059DE3BFA0F9 +S315400192A08AA1600116BFFFFE0100000081E80000AF +S315400192B08CA1A00116BFFFFE0100000001000000C5 +S315400192C001000000A023A080A02C20078E100010D2 +S315400192D0A3480000E2240000C2242004C43C200824 +S315400192E0C83C2010CC3C2018F03C2020F43C2028DF +S315400192F0F83C2030FC3C2038D03C2040D43C20482F +S31540019300D83C2050DC3C2058A5500000E424206085 +S31540019310801020088210200184102002861020032C +S31540019320881020048A1020058C10200681900000A8 +S31540019330A42C601F818C8000010000000100000008 +S3154001934001000000030040408210610184100000CA +S3154001935086100000894440008809201F86100004B9 +S31540019360A010000284004002A210000284004002C4 +S31540019370A410000284004002A610000284004002AC +S31540019380A810000284004002AA1000028400400294 +S31540019390AC10000284004002AE100002840040027C +S315400193A090100002840040029210000284004002A4 +S315400193B0941000028400400296100002840040028C +S315400193C098100002840040029A1000028400400274 +S315400193D09C100002840040029E100002840040025C +S315400193E081E0000086A0E00116BFFFDE010000001B +S315400193F00300404082106101841000008610000481 +S3154001940080A400021280003F8400400280A44002F2 +S315400194101280003C8400400280A480021280003900 +S315400194208400400280A4C0021280003684004002BB +S3154001943080A50002128000338400400280A54002CC +S31540019440128000308400400280A580021280002DE7 +S315400194508400400280A5C0021280002A8400400296 +S3154001946080A20002128000278400400280A24002AE +S31540019470128000248400400280A2800212800021D2 +S315400194808400400280A2C0021280001E8400400275 +S3154001949080A300021280001B8400400280A3400288 +S315400194A0128000188400400280A3800212800015B9 +S315400194B08400400280A3C002128000128400400250 +S315400194C081E0000086A0E00116BFFFCE010000004A +S315400194D080A020001280000B80A0FFFF12800009AF +S315400194E080A160051280000780A1A00612800005B8 +S315400194F001000000A010000710800006C0242020B3 +S31540019500A01000079010200110800002D0242020D6 +S3154001951082100007C40040008188800001000000DD +S315400195200100000001000000C4186008C81860105E +S31540019530CC186018F0186020F4186028F8186030CC +S31540019540FC186038D0186040D4186048D81860506C +S31540019550DC186058E4006060C200600481948000B9 +S31540019560010000000100000001000000A0100007FA +S31540019570F004202081C7E00881E8000010BFFFFC0D +S31540019580B01000000100000081D8200081C3E0082E +S31540019590010000000328000084106004952AA00DF4 +S315400195A0D0204000922270009202400AD2208000D0 +S315400195B081C3E0080100000003100124C40061A436 +S315400195C003100124C2006194852A400286102001BD +S315400195D08328C00182007FFF900A00019000800825 +S315400195E08213C0007FFFE74C9E104000010000003F +S315400195F003100124C40061A403100124C200619434 +S31540019600852A4002861020018328C00182007FFFFF +S31540019610900A0001900080088213C0007FFFE73A5C +S315400196209E104000010000009DE3BFA02D100124C3 +S31540019630C205A198A410001880A0600004800020F3 +S31540019640B01020012F1001242B100124D005E1A4D4 +S3154001965029100124AC15A198AE15E1A4AA1561946F +S31540019660A8152184A0102000A2102000A6102001D8 +S31540019670C2054000832CC00182007FFF820C80011D +S31540019680912C00087FFFE72090020001C2050000EF +S31540019690901A0012820A000180A00001C2058000D2 +S315400196A0A2647FFFA004200180A0401034BFFFF1D7 +S315400196B0D005C00080A00011B0603FFF81C7E0081F +S315400196C081E800009DE3BFA003100124C40061A40A +S315400196D003100124C2006194B32E4002841020017C +S315400196E08328800182007FFF820E00019210001ABA +S315400196F07FFFE70B9006400181C7E00881E8000043 +S315400197009DE3BFA003100124C40061A403100124FA +S31540019710C2006194B32E4002841020018328800147 +S3154001972082007FFF820E00019210001A7FFFE6F849 +S315400197309006400181C7E00881E80000031001243A +S31540019740C400618C03100124C2006188852A40024D +S31540019750861020018328C00182007FFF900A000104 +S31540019760900080088213C0007FFFE6E39E10400010 +S31540019770010000009DE3BFA003100124C400618CD9 +S3154001978003100124C2006188B32E400284102001D7 +S315400197908328800182007FFF820E00019210001A09 +S315400197A07FFFE6D79006400181C7E00881E80000C7 +S315400197B09DE3BFA003100124C400618C0310012462 +S315400197C0C2006188B32E40028410200183288001A3 +S315400197D082007FFF820E00019210001A7FFFE6C4CD +S315400197E09006400181C7E00881E80000031001248A +S315400197F0C400618C03100124C2006188852A40029D +S31540019800861020018328C00182007FFF900A000153 +S31540019810900080088213C0007FFFE6B39E1040008F +S3154001982001000000033FFFBF821063089DE38001F2 +S315400198300310004C82106020C227BFEC0310004C7D +S31540019840821060602F10004CC227BFF4AE15E000B5 +S315400198503510004CEE27BFE8B416A0409010200604 +S315400198607FFF9E6EF427BFF07FFFE69B901020009E +S31540019870213FFFBF920A3FF0A014236890102000B9 +S315400198807FFFE697A0078010230000307FFFE69216 +S3154001989090102000808A001112BFFFFD01000000D8 +S315400198A081D82000230000307FFFE68B90102000F6 +S315400198B0808A001112BFFFFD010000002310012420 +S315400198C07FFFE6859010200013002040A410000879 +S315400198D09212600F921200097FFFE68190102000DC +S315400198E07FFFE67D90102008D02461807FFFE67AD5 +S315400198F09010200C09100124C40461809938A014E9 +S3154001990013100124980B200F8603200AC6212188B3 +S31540019910091001240310012496102400C621218C2C +S31540019920893A20148809200F9401200AD42261948F +S31540019930131001242D100124D0206190D42261A45A +S3154001994015100124932AC004833A2018D222A1A0DB +S315400199501510012482086003820060011B2000006B +S315400199608801200837100124C225A19892012002BE +S31540019970821020019328400992234009D222A184D2 +S315400199801510012487284003913A20109A23400359 +S31540019990992AC00CDA26E19CD822A17CA20A20078A +S315400199A08738A018A93CA00CBA210011A408E003ED +S315400199B08538A010A88D2003AA08A007A404A001F9 +S315400199C0AB284015A3284011AB284015901000172D +S315400199D0AA057FFFA610200002800123B807BFE831 +S315400199E0A6042020030048D182106167C224C0002A +S315400199F003226AF3821061EFC2242024C20C202084 +S31540019A0080A0600102800004010000007FFF9E0AE1 +S31540019A109010201AC20C202180A0602302800004ED +S31540019A20010000007FFF9E049010201BC20C2022E3 +S31540019A3080A0604502800004010000007FFF9DFE7A +S31540019A409010201CC20C202380A060670280000475 +S31540019A50010000007FFF9DF89010201DC20C2024BC +S31540019A6080A0608902800004010000007FFF9DF212 +S31540019A709010201EC20C202580A060AB02800004FD +S31540019A80010000007FFF9DEC9010201FC20C202694 +S31540019A9080A060CD02800004010000007FFF9DE6AA +S31540019AA090102020C20C202780A060EF0280000485 +S31540019AB0010000007FFF9DE090102021C21420206C +S31540019AC0832860108330601080A0612302800004E7 +S31540019AD0010000007FFF9DD890102022C41420224F +S31540019AE08528A010030000118530A01082106167FF +S31540019AF080A0800102800004010000007FFF9DCE0E +S31540019B0090102023C41420248528A010030000228D +S31540019B108530A010821061AB80A0800102800004D4 +S31540019B20010000007FFF9DC490102024C41420260C +S31540019B308528A010030000338530A010821061EF04 +S31540019B4080A0800102800005821020307FFF9DBAEF +S31540019B509010202582102030C22C2020030C08D1E1 +S31540019B6082106167C404C00080A0800102800005A4 +S31540019B70821020317FFF9DB0901020278210203126 +S31540019B80C22C2021030C0C5182106167C404C00011 +S31540019B9080A0800102800005821020327FFF9DA6B1 +S31540019BA09010202882102032C22C2022030C0C4C0B +S31540019BB082106267C404C00080A080010280000553 +S31540019BC0821020337FFF9D9C9010202982102033E4 +S31540019BD0C22C2023030C0C4C82106233C404C000F7 +S31540019BE080A0800102800005821020347FFF9D9273 +S31540019BF09010202A82102034C22C2024030D2AF3EF +S31540019C00821061EFC404202480A0800102800005F7 +S31540019C10821020357FFF9D889010202B82102035A1 +S31540019C20C22C2025030D0D73821061EFC40420243C +S31540019C3080A0800102800005821020367FFF9D7E34 +S31540019C409010202C82102036C22C2026030D0D4D5B +S31540019C50821062EFC404202480A0800102800005A6 +S31540019C60821020377FFF9D749010202D821020375F +S31540019C70C22C2027030D0D4D82106237C4042024C7 +S31540019C8080A0800102800005030000107FFF9D6ACD +S31540019C909010202E0300001082106041C234202013 +S31540019CA00310104C82106233C404C00080A08001AE +S31540019CB002800005030000107FFF9D5F9010202F5A +S31540019CC00300001082106243C23420220310105058 +S31540019CD082106243C404C00080A080010280000556 +S31540019CE0030000117FFF9D549010203003000011A6 +S31540019CF082106045C23420240311114D821062370F +S31540019D00C404202480A080010280000503000011C4 +S31540019D107FFF9D4990102031030000118210624758 +S31540019D20C23420260311115182106247C4042024F3 +S31540019D3080A0800102800004010000007FFF9D3E5B +S31540019D409010203281D82000C205A19880A06000E1 +S31540019D500480001B80A52000251001241910012430 +S31540019D60A414A198981321A48810200080A460000F +S31540019D709B2920100480000C82102000C40300009F +S31540019D8085290002840040028528A0028610400DE4 +S31540019D9082006001C624000280A0401132BFFFF953 +S31540019DA0C4030000C20480008801200180A0400451 +S31540019DB014BFFFF080A4600080A520001280002817 +S31540019DC0230000107FFFE54490102000808A001197 +S31540019DD012BFFFFDC205A19880A060000480001B50 +S31540019DE0010000002510012427100124A414A19884 +S31540019DF0A614E18410800006A2102000A20460018E +S31540019E0080A0401104800011010000009210001151 +S31540019E107FFFFDF890100010C204C000901C00089E +S31540019E20808A000132BFFFF6C20480007FFF9D0297 +S31540019E3090102033C2048000A204600180A040112A +S31540019E4014BFFFF4921000117FFFE523901020000C +S31540019E509212200F7FFFE5229010200081C7E00873 +S31540019E6091E820009FC20000A604E00180A480136F +S31540019E7004800008832CE002D00700019FC2000045 +S31540019E80A604E00180A4801314BFFFFC832CE002EA +S31540019E907FFFE51190102000B616E19C920A3FFC27 +S31540019EA0A8102000901020007FFFE50DB81020007B +S31540019EB0B207BFE810800005A610200080A48013D9 +S31540019EC024800012A8052001921000137FFFFE484E +S31540019ED090100017820A001580A0401512BFFFF8A6 +S31540019EE0A604E001C206C000901DC008900A000108 +S31540019EF080A00008B8673FFF80A4801314BFFFF419 +S31540019F0092100013A805200180A480140480000447 +S31540019F10832D200210BFFFE8EE0640017FFFE4EEED +S31540019F2090102000A6100008901020007FFFE4EC5E +S31540019F309214E00380A72000028001830100000003 +S31540019F40A73CE013808CE0031280018501000000EC +S31540019F5081D82000250000307FFFE4DF90102000EB +S31540019F60808A001212BFFFFDAA100008C205A198FF +S31540019F7080A060000480000F053FFFBF251001242B +S31540019F80A6102000A414A19892100013901000105E +S31540019F907FFFFDDC94102000C2048000A604E0018E +S31540019FA080A0401314BFFFFA92100013053FFFBF74 +S31540019FB0821020008410A36884078002C0204002DA +S31540019FC08200600480A0607C12BFFFFD010000009A +S31540019FD082102005C224000082102001C2242004E0 +S31540019FE082102002C224200882102003C224200CA1 +S31540019FF0901000107FFFFD8DA804200480A2200050 +S3154001A0000280014A01000000C204000080A06005F0 +S3154001A01002800004010000007FFF9C87901020060B +S3154001A0207FFFFD829010001080A2200012800199CE +S3154001A030C205A19880A060000480001201000000C2 +S3154001A04025100124A6102000A414A19892100013F3 +S3154001A050941020007FFFFD9C901000109210001379 +S3154001A060901000147FFFFD9894102000C2048000D8 +S3154001A070A604E00180A0401314BFFFF6921000131E +S3154001A0807FFFE4AB90100010A60420207FFFE4A8D8 +S3154001A090901000137FFFE4A6900420407FFFE4A4C4 +S3154001A0A090042060C205A19880A0600004800180D0 +S3154001A0B0B810200025100124A414A198AE10200048 +S3154001A0C0921000177FFFFD3D90100010C2048000E2 +S3154001A0D0901A200580A00008AE05E001B8673FFF51 +S3154001A0E080A0401714BFFFF89210001780A72000E8 +S3154001A0F00280016F01000000033FFFBF82106368C9 +S3154001A100C41F8001C43FBFA8C207BFA880A0600585 +S3154001A1101280000601000000C207BFAC80A06001AA +S3154001A12002800005C205A1987FFF9C43901020093B +S3154001A130C205A19880A06000048000382510012442 +S3154001A140B8102000A414A198AE1020009210001758 +S3154001A1507FFFFD1A90100014C2048000901A20015E +S3154001A16080A00008AE05E001B8673FFF80A0401718 +S3154001A17014BFFFF89210001780A720011280002714 +S3154001A180833D6013808860031280002A010000002D +S3154001A190C2042004C224000082102005C22400000B +S3154001A1A090102001D024200482102002C2242008CD +S3154001A1B082102003C224200C92100011400003B3E8 +S3154001A1C0912A001DA52A2002032EEEEE821063BBC2 +S3154001A1D0C22400127FFFFD159010001080A22000BE +S3154001A1E01280013701000000C4040012032EEEEE76 +S3154001A1F0A93D600C821063BB80A0800102BFFDFABD +S3154001A200A80D2003901020127FFF9C0BA93D600CE6 +S3154001A21010BFFDF5A80D20037FFF9C079010200A73 +S3154001A220833D60138088600302BFFFDA01000000AE +S3154001A2307FFFE42990102000033FFFF08210603F2A +S3154001A240920A00017FFFE426901020009210200020 +S3154001A25094102000AA07BFA87FFFFD1B9010001590 +S3154001A2607FFFE41D901020000303C00092120001FD +S3154001A2707FFFE41B90102000C205A19880A06000DA +S3154001A2800480000F8210200125100124A81020000F +S3154001A290A414A19892100014901000157FFFFD0A96 +S3154001A2A094102005C2048000A805200180A0401416 +S3154001A2B014BFFFFA9210001482102001C22FBFA8CA +S3154001A2C00300400082106005C407BFA880A080013A +S3154001A2D002800004010000007FFF9BD79010200BF5 +S3154001A2E07FFFE3FD90102000833A20068208600339 +S3154001A2F080A0600102800004010000007FFF9BCE28 +S3154001A3009010200C7FFFE3F4901020000303C0005F +S3154001A31025000030922A00017FFFE3F190102000D2 +S3154001A3207FFFE3ED90102000808A001212BFFFFDEF +S3154001A33092102000941020007FFFFCE3901000153E +S3154001A3407FFFE3E5901020002503C0009212001222 +S3154001A3507FFFE3E3901020007FFFE3DF90102000B2 +S3154001A360808A001202BFFFFDAE100008C205A19807 +S3154001A37080A060000480001025100124B81020013F +S3154001A380B92F0011A414A198B8073FFFA8102000C7 +S3154001A39092100014901000157FFFFCDA9410001CF7 +S3154001A3A0C2048000A805200180A0401414BFFFFA12 +S3154001A3B0921000141303C00090102000922DC00982 +S3154001A3C07FFFE3C72503C0007FFFE3C39010200052 +S3154001A3D0808A001212BFFFFD01000000C407BFA81A +S3154001A3E0030040008210600580A0800102800004C5 +S3154001A3F0010000007FFF9B909010200D7FFFE3B688 +S3154001A40090102000833A20088208600380A06001F2 +S3154001A41002800005841020117FFF9B879010200F3A +S3154001A4208410201186102055901020002500003000 +S3154001A430C43FBFF87FFFE3A801000000033C3FFF94 +S3154001A4400503C0008210633F820A0001901020007C +S3154001A4507FFFE3A3921040027FFFE39F901020000D +S3154001A460808A001212BFFFFDAE07BFF87FFFE3BE31 +S3154001A47090100017C205A19880A060000480000FCB +S3154001A4800100000025100124AA07BFFCA414A198CD +S3154001A490A810200092100014901000157FFFFC8A2E +S3154001A4A094102055C2048000A805200180A04014C4 +S3154001A4B014BFFFFA921000147FFFE3AB9010001710 +S3154001A4C080A220110280008180A260557FFF9B5AA5 +S3154001A4D0901020107FFFE38090102000833A2006E1 +S3154001A4E08208600380A0600102800004A410000875 +S3154001A4F07FFF9B5190102010133C3FF0901020009D +S3154001A5009212603F920C80097FFFE375250000306F +S3154001A5107FFFE37190102000808A001212BFFFFD79 +S3154001A520AA10000830BFFF1B7FFF9B4390102005F8 +S3154001A530C204000080A0600512BFFEB80100000001 +S3154001A54030BFFEB87FFF9B3C90102001A73CE01333 +S3154001A550808CE00302BFFE7F010000007FFFE35EC7 +S3154001A56090102000133FFFF0AA1000089212603F9E +S3154001A570920A00097FFFE35A901020007FFFE2B163 +S3154001A580A810001A0303C000133C3FFF901020009F +S3154001A590921263FC920D4009A61020007FFFE35002 +S3154001A5A09212400192100013901000147FFFFC722A +S3154001A5B094102000A604E00180A4801334BFFFFB61 +S3154001A5C092100013901020001303C0007FFFE34454 +S3154001A5D0921540097FFFE29B010000007FFFE33EA9 +S3154001A5E090102000833A200A8208600380A060010F +S3154001A5F002800005250000307FFF9B0F901020024E +S3154001A600250000307FFFE33490102000808A00123D +S3154001A61012BFFFFD0100000001000000920A3FFC4D +S3154001A6207FFFE32F9010200090100014921020001D +S3154001A6307FFFFC6094102000010000007FFFE326AD +S3154001A64090102000033C3FFF821063FC820A000108 +S3154001A650901020007FFFE32292106003010000006A +S3154001A6607FFFE278010000007FFFE31B901020008E +S3154001A670833A200C8208600380A0600102BFFE3548 +S3154001A680010000007FFF9AEC9010200330BFFE319D +S3154001A6907FFF9AE990102007C205A19880A060002B +S3154001A6A034BFFE692510012430BFFE767FFF9AE252 +S3154001A6B09010200810BFFE92033FFFBF7FFF9ADE36 +S3154001A6C09010201130BFFEC912BFFF81010000006A +S3154001A6D030BFFF819DE3BFA07FFFFC530100000017 +S3154001A6E013002040B01000089212600F7FFFE2FC79 +S3154001A6F09010200081C7E00881E800009DE3BFA0DB +S3154001A7007FFF9ABF1100412C82102007EC062004DE +S3154001A710E0062004C2262008AC0DA003AC05A0012A +S3154001A72001000000C02600007FFF9ABC9010200A5D +S3154001A7300300020084103FFFB8060001C426000151 +S3154001A740A13C2002292AAAAAA00C27FFA81522AAC1 +S3154001A7502B155555A12C2008AA1561558810001CAA +S3154001A760C2060001A8084014AA0840159A10200004 +S3154001A77080A420002280000D9A03600186012020DA +S3154001A7808410000482102000EA208000E820C000E6 +S3154001A790820060108400A04080A0401006BFFFFBED +S3154001A7A08600E0409A03600180A5800D14BFFFF149 +S3154001A7B0880120043B000200AE102000BA17602039 +S3154001A7C0BA06001D80A4200022800017AE05E001D4 +S3154001A7D0A610001CA410001DA2102000C204C00037 +S3154001A7E080A0401502800004010000007FFF9A927C +S3154001A7F090102001C204800080A0401422800005F0 +S3154001A800A20460107FFF9A8C90102001A204601070 +S3154001A810A604E04080A4401006BFFFF1A404A04076 +S3154001A820AE05E00180A5801714BFFFE7BA076004B3 +S3154001A8307FFF9A7A9010200C2F0008001B15555562 +S3154001A840AE060017092AAAAA9A136155881122AAA7 +S3154001A85098100017961020001500020080A42000D1 +S3154001A8602280000D9602E001860320048410000C2C +S3154001A87082102000DA208000C820C00082006002D9 +S3154001A8808400A00880A0401006BFFFFB8600E008B8 +S3154001A8909602E00180A5800B14BFFFF19803000AE0 +S3154001A8A02B155555292AAAAAAA156155A81522AAD2 +S3154001A8B0BA1020003900020080A42000228000172F +S3154001A8C0BA076001A605E004A4100017A2102000F3 +S3154001A8D0C204800080A040150280000401000000EF +S3154001A8E07FFF9A5590102003C204C00080A04014F7 +S3154001A8F022800005A20460027FFF9A4F9010200338 +S3154001A900A2046002A404A00880A4401006BFFFF17F +S3154001A910A604E008BA07600180A5801D14BFFFE7C1 +S3154001A920AE05C01C2F0008001B155555AE15E00499 +S3154001A930092AAAAAAE0600179A136155881122AAB6 +S3154001A94098100017961020001500020080A42000E0 +S3154001A9502280000D9602E00186033FFC8410000C24 +S3154001A96082102000DA208000C820C00082006002E8 +S3154001A9708400A00880A0401006BFFFFB8600E008C7 +S3154001A9809602E00180A5800B14BFFFF19803000AEF +S3154001A9902B155555292AAAAAAA156155A81522AAE1 +S3154001A9A0BA1020003900020080A42000228000173E +S3154001A9B0BA076001A605FFFCA4100017A2102000EB +S3154001A9C0C204800080A040150280000401000000FE +S3154001A9D07FFF9A1990102004C204C00080A0401441 +S3154001A9E022800005A20460027FFF9A139010200482 +S3154001A9F0A2046002A404A00880A4401006BFFFF18F +S3154001AA00A604E008BA07600180A5801D14BFFFE7D0 +S3154001AA10AE05C01C82102005C22620080320000076 +S3154001AA20C226000081C7E00881E80000033FFFBF5E +S3154001AA30821063609DE380017FFFFAD425200000E8 +S3154001AA404000016E2D0000307FFFE2239010200868 +S3154001AA50AA1000087FFFE2209010200C7FFF9A1277 +S3154001AA60AE100008912A20047FFF99EC9002200C39 +S3154001AA7082102001873D60148608E00F8600E00AB7 +S3154001AA80A73D6010A13D6018853DE014A60CE00786 +S3154001AA908408A00FA604E0028400A00AA728401358 +S3154001AAA0A00C2003A93DE010A0042001A80D200719 +S3154001AAB0A12C0003A8052002AA2480108604FFFFCA +S3154001AAC0A9284014A33DE01882053FFFA20C60036C +S3154001AAD0A2046001AA154003A32C4002A4248011BC +S3154001AAE0A41480017FFFE1FC90102000808A0016AB +S3154001AAF012BFFFFD133FFFBF90100011921263C0BA +S3154001AB0015155555920780097FFFE1869412A15587 +S3154001AB1080A220001280007001000000133FFFBF99 +S3154001AB2090100011921263C0152AAAAA92078009B1 +S3154001AB307FFFE1909412A2AA80A2200012800063B6 +S3154001AB40010000007FFF99D801000000912A2004EE +S3154001AB507FFF99B29002200A4000012501000000C2 +S3154001AB60032AAAAA981062AA8210620090100011C4 +S3154001AB70920C8001941000127FFFE1A796100014F9 +S3154001AB8080A220001280004D01000000031555559A +S3154001AB9098106155821061009010001194100012B6 +S3154001ABA0961000147FFFE19C920C800180A2200048 +S3154001ABB01280003F010000007FFF99BB01000000A9 +S3154001ABC0912A20047FFF99959002200B9010001046 +S3154001ABD0131555557FFFE1779212615580A22000EA +S3154001ABE01280002F0100000090100010132AAAAA1B +S3154001ABF07FFFE170921262AA80A220001280002596 +S3154001AC00010000007FFF99A801000000912A20045D +S3154001AC107FFF998290022009901000109210001532 +S3154001AC2094100013172AAAAA7FFFE16E9612E2AA90 +S3154001AC3080A2200012800013010000009010001035 +S3154001AC409210001594100013171555557FFFE165B5 +S3154001AC509612E15580A22000028000040100000006 +S3154001AC607FFF9975901020087FFFFA48B0102000A9 +S3154001AC70400000E20100000081C7E00881E80000D1 +S3154001AC807FFF996D9010200710BFFFEE90100010C6 +S3154001AC907FFF99699010200630BFFFDB7FFF9966E1 +S3154001ACA09010200510BFFFD2901000107FFF9962CF +S3154001ACB09010200430BFFFC17FFF995F90102003A1 +S3154001ACC010BFFFB4031555557FFF995B90102002C5 +S3154001ACD030BFFF9D7FFF99589010200110BFFF9113 +S3154001ACE0133FFFBF81C3E0089144400080800000CC +S3154001ACF0151001209412A1EC9010200092102246CA +S3154001AD0081800000010000000100000001000000F8 +S3154001AD10D00280009122400881C3E0080100000072 +S3154001AD2081800000901020018090200180F0200158 +S3154001AD301280004B010000000100000001000000EC +S3154001AD40010000008090200180F82001128000441B +S3154001AD5001000000010000000100000001000000A8 +S3154001AD608090200180FA3FFF010000001680003CE0 +S3154001AD700100000001000000010000000100000088 +S3154001AD808180000090102001809020010100000088 +S3154001AD9080D0200112800032010000000100000035 +S3154001ADA0010000000100000080D220010280002C39 +S3154001ADB00100000080D23FFF1680002901000000FB +S3154001ADC080DA3FFF9340000080A27FFF128000247B +S3154001ADD00100000080D23FFF934800009332601487 +S3154001ADE0920A600F80A260081280001D01000000D7 +S3154001ADF08180000090102001945220049452A004B6 +S3154001AE009452A00496A2A0401280001501000000B1 +S3154001AE10818000009010200280A000003280001046 +S3154001AE209052000880A220021280000D010000000D +S3154001AE30818000009010200280A0000001000000E7 +S3154001AE40328000079052000880A22002128000043E +S3154001AE500100000081C3E0089010200181C3E00891 +S3154001AE60901000001315555592126155A582400068 +S3154001AE70010000000100000001000000954480002F +S3154001AE8080A2400A1280004301000000923A40002D +S3154001AE90A582400001000000010000000100000001 +S3154001AEA09544800080A2400A1280003A01000000C9 +S3154001AEB01100003F901223FFA58000008180000011 +S3154001AEC001000000010000000100000093F23FFF75 +S3154001AED09A10000993F23FFF93F23FFF93F23FFF2F +S3154001AEE093F23FFF93F23FFF93F23FFF93F23FFF0F +S3154001AEF09940000097448000153FFC009412A00839 +S3154001AF0080A2400A1280002380A2400B12800021B9 +S3154001AF1080A320071280001F113FFF80901220015D +S3154001AF2080A340081280001B1100003F901223FFAE +S3154001AF30A5800000818000000100000001000000A2 +S3154001AF400100000093FA3FFF93FA3FFF93FA3FFF58 +S3154001AF5093FA3FFF93FA3FFF93FA3FFF93FA3FFF7E +S3154001AF6093FA3FFF994000009744800080A2600811 +S3154001AF701280000880A260081280000680A320008B +S3154001AF80128000040100000081C3E00890102001F6 +S3154001AF9081C3E008901000008180000090102002DB +S3154001AFA080A00000328000109072000880A220022A +S3154001AFB01280000D010000008180000090102002E7 +S3154001AFC080A0000001000000328000079072000856 +S3154001AFD080A22002128000040100000081C3E00823 +S3154001AFE09010200181C3E00890100000C0A00040ED +S3154001AFF081C3E00801000000110020409012200F9B +S3154001B000D0A0004081C3E008010000009DE3BFA03D +S3154001B0107FFFE0B190102008A21000087FFFE0AE4C +S3154001B0209010200CA0100008C0A00040833C601482 +S3154001B0308208600F8200600A913C6018900A2003E2 +S3154001B040900220017FFFE01B912A0001833C2014DE +S3154001B0508208600F8200600A913C2018900A200302 +S3154001B060900220017FFFE021912A00017FFFF947ED +S3154001B07001000000110020409012200FD0A0004096 +S3154001B08081C7E00881E8000098120009818200002A +S3154001B0909AAB2FFF0280002598880000992300096A +S3154001B0A09923000999230009992300099923000945 +S3154001B0B09923000999230009992300099923000935 +S3154001B0C09923000999230009992300099923000925 +S3154001B0D09923000999230009992300099923000915 +S3154001B0E09923000999230009992300099923000905 +S3154001B0F099230009992300099923000999230009F5 +S3154001B10099230009992300099923000999230009E4 +S3154001B11099230009992300099923000999230000DD +S3154001B12081C3E00891400000992300099923000951 +S3154001B13099230009992300099923000999230009B4 +S3154001B14099230009992300099923000999230009A4 +S3154001B1509923000999230009992300009B40000087 +S3154001B160992B200C9B33601481C3E0089013400C4B +S3154001B1701080000B8610200080924008168000083F +S3154001B18086100008809240001680000480920000DC +S3154001B1901680000392200009902000089A924000F0 +S3154001B1A0128000059610000891D0200281C3E00864 +S3154001B1B09010000080A2C00D0A80009594100000F6 +S3154001B1C00302000080A2C0010A80002898100000F6 +S3154001B1D080A340011A80000D841020019B2B60043E +S3154001B1E010BFFFFC980320019A83400D1A80000787 +S3154001B1F08400A001832860049B3360019A034001C7 +S3154001B200108000078420A00180A3400B0ABFFFF7EE +S3154001B21001000000028000020100000084A0A0019C +S3154001B22006800076010000009622C00D9410200190 +S3154001B2301080000A01000000952AA0010680000541 +S3154001B2409B3360019622C00D108000049402A00138 +S3154001B2509602C00D9422A00184A0A00116BFFFF75B +S3154001B2608092C000308000659B2B600480A3400B18 +S3154001B27008BFFFFE988320010280006598232001C4 +S3154001B2808092C000952AA0040680002F9B3360015E +S3154001B29096A2C00D068000179B33600196A2C00D91 +S3154001B2A00680000B9B33600196A2C00D0680000507 +S3154001B2B09B33600196A2C00D108000509402A00FEE +S3154001B2C09682C00D1080004D9402A00D9682C00D4D +S3154001B2D0068000059B33600196A2C00D1080004791 +S3154001B2E09402A00B9682C00D108000449402A009DE +S3154001B2F09682C00D0680000B9B33600196A2C00D5D +S3154001B300068000059B33600196A2C00D1080003B6C +S3154001B3109402A0079682C00D108000389402A005C1 +S3154001B3209682C00D068000059B33600196A2C00D32 +S3154001B330108000329402A0039682C00D1080002F27 +S3154001B3409402A0019682C00D068000179B336001CE +S3154001B35096A2C00D0680000B9B33600196A2C00DDC +S3154001B360068000059B33600196A2C00D1080002324 +S3154001B3709402BFFF9682C00D108000209402BFFD4B +S3154001B3809682C00D068000059B33600196A2C00DD2 +S3154001B3901080001A9402BFFB9682C00D10800017E0 +S3154001B3A09402BFF99682C00D0680000B9B33600163 +S3154001B3B096A2C00D068000059B33600196A2C00D82 +S3154001B3C01080000E9402BFF79682C00D1080000BCC +S3154001B3D09402BFF59682C00D068000059B3360013D +S3154001B3E096A2C00D108000059402BFF39682C00D4F +S3154001B3F0108000029402BFF198A3200116BFFFA25C +S3154001B4008092C000268000029602C0098090C0004A +S3154001B410268000029620000B81C3E0089010000BA5 +S3154001B42092100008941020009010200096102000E1 +S3154001B4308213C000400001E39E104000010000005D +S3154001B4409210000803100121D00062A88213C000A7 +S3154001B450400002629E104000010000009210000868 +S3154001B46003100121D00062A88213C00040000003EE +S3154001B4709E104000010000009DE3BFA08410200003 +S3154001B4808206600B80A0601608800004A010201080 +S3154001B490A0087FF88534201F80A400190A80004641 +S3154001B4A08088A0FF1280004401000000400001AFE7 +S3154001B4B09010001880A421F7188000418334200998 +S3154001B4C023100120A214622082044010E400600C83 +S3154001B4D080A480010280010F99342003C604A00490 +S3154001B4E0C404A00CC204A0088608FFFC860480039D +S3154001B4F0C800E00488112001C220A008C820E00449 +S3154001B500C420600C9010001840000192B004A008BD +S3154001B51081C7E00881E80000E6046008E804E00429 +S3154001B520A80D3FFC8225001080A0600F148000D238 +S3154001B53080A40014031001232F100121EA0060FCAE +S3154001B540C205E22CAA05601080A07FFF028000049C +S3154001B550AA054010AA056FFFAA0D700090100018A9 +S3154001B560400001889210001580A23FFF0280000929 +S3154001B570A41000088404C01480A08008088000EC50 +S3154001B5802D10012380A44013028000EAC205A108C0 +S3154001B590C2046008C40060048408BFFC8220801095 +S3154001B5A080A0600F1480012280A40002400001693E +S3154001B5B09010001881C7E00891E8200099342003D3 +S3154001B5C080A060000280000F872B200380A06004CA +S3154001B5D008800092993420069800605B80A0601430 +S3154001B5E008800008872B200380A06054188001132F +S3154001B5F080A061549934200C9803206E872B200338 +S3154001B60023100120A214622086044003E400E00CCA +S3154001B61080A0C0123280000BC404A0041080001028 +S3154001B6209803200136800068C604A00CE404A00CEF +S3154001B63080A0C0122280000A98032001C404A004FD +S3154001B6408408BFFC8220801080A0600F04BFFFF6F3 +S3154001B65080A0600098033FFF980320010710012056 +S3154001B6608610E228E400E00880A0C0122280002A69 +S3154001B670C2046004C404A0048408BFFC8220801074 +S3154001B68080A0600F1480008A80A06000C620E00C74 +S3154001B69016800059C620E00880A0A1FF28800062DC +S3154001B6A08530A0038330A00980A06004188000E99A +S3154001B6B08800605B8930A006880120389B292003D9 +S3154001B6C09A04400DC203600880A0400D32800008F4 +S3154001B6D0C8006004108000E9DA04600480A34001D8 +S3154001B6E022800008C400600CC800600488093FFC41 +S3154001B6F080A080042ABFFFFAC2006008C400600C23 +S3154001B700C424A00CC224A008E420600CE420A008B4 +S3154001B710C2046004853B2002881020018929000269 +S3154001B72080A040042ABFFF7EE6046008808840046A +S3154001B7302280004B980B3FFC952B20039610000C62 +S3154001B7409404400A9A10000AE403600C80A3401254 +S3154001B7503280000BC404A004108000589602E00118 +S3154001B76036800019C604A00CE404A00C80A3401244 +S3154001B770228000529602E001C404A0048408BFFC62 +S3154001B7808220801080A0600F04BFFFF680A0600079 +S3154001B790DA04A00CC804A00884048010A014200177 +S3154001B7A0C8236008DA21200CC420E00CC420E0083C +S3154001B7B0E024A004C2208001C620A0081080001009 +S3154001B7C0C620A00CC204A00884048002C800A004BC +S3154001B7D088112001C220E008C820A004C620600CC0 +S3154001B7E090100018400000DBB004A00881C7E008B3 +S3154001B7F081E8000084048002C200A0048210600136 +S3154001B800C220A00490100018400000D2B004A00845 +S3154001B81081C7E00881E800009803203810BFFF790E +S3154001B820872B20038928A00388044004DA012008D5 +S3154001B830D6046004C824A00CDA24A0088538A002E6 +S3154001B84082102001E423600C83284002E421200871 +S3154001B8508210400B10BFFFB0C22460048929200129 +S3154001B8608088400402BFFFFE9803200410BFFFB446 +S3154001B870952B200338BFFF3103100123E4046008F0 +S3154001B88084048010A014200182106001E024A004E9 +S3154001B890C220A00490100018C4246008400000ADE6 +S3154001B8A0B004A00881C7E00881E800008404801044 +S3154001B8B010BFFFBEA0142001808AE00312BFFFA380 +S3154001B8C09A04A008808B20030280009C8202BFF864 +S3154001B8D0D400600880A2800122BFFFFB98033FFF8E +S3154001B8E0C20460048929200180A1000118BFFF0B11 +S3154001B8F080A1200022BFFF0AE6046008808900017A +S3154001B900228000928929200110BFFF8C9810000BDC +S3154001B9108204A008E400600C80A0401202BFFF50E0 +S3154001B9209803200210BFFEEFC604A004C205A10879 +S3154001B9308205400180A0801202800067C225A108CD +S3154001B940C605E22C80A0FFFF2280006B0310012177 +S3154001B9508204800184204002C425A108848CA0076A +S3154001B9600280000603000004821020088220400263 +S3154001B970A404800182207000AA048015901000184A +S3154001B980AA0D6FFFAA2040154000007E92100015B7 +S3154001B99080A23FFF028000608410200184220012B1 +S3154001B9A0840080158410A001C205A10882054001CA +S3154001B9B0C225A108C424A00480A44013028000101B +S3154001B9C0E424600880A5200F0880003A84053FF4EE +S3154001B9D08408BFF88604C002C804E004880920012F +S3154001B9E088108004C824E00488102005C820E00897 +S3154001B9F080A0A00F18800042C820E0040510012352 +S3154001BA00C600A10080A0400338800002C220A100E8 +S3154001BA1005100123C600A10480A0400338BFFEDD06 +S3154001BA20C220A10410BFFEDCC204600828BFFF95F6 +S3154001BA30E404600830BFFEDE1880001780A065541C +S3154001BA409934200F9803207710BFFEEE872B2003F1 +S3154001BA5080A0601408BFFF1B9B29200380A060546F +S3154001BA601880001780A061548930A00C8801206E8F +S3154001BA7010BFFF149B29200389392002841020011D +S3154001BA808528800484134002C424600410BFFF1D2E +S3154001BA9084100001861023F018BFFEDA9810207E2C +S3154001BAA0993420129803207C10BFFED6872B2003A1 +S3154001BAB08210200110BFFEB7C224A00418800018CE +S3154001BAC080A065548930A00F8801207710BFFEFD04 +S3154001BAD09B2920038088AFFF12BFFF9BC605E22C3E +S3154001BAE0C4046008860540148610E00110BFFFC4F7 +S3154001BAF0C620A00410BFFF9AE420622C9204E008FD +S3154001BB00400000B6901000180310012310BFFFBC7F +S3154001BB10C200610810BFFFA5AA1020009A1023F0A9 +S3154001BB2018BFFEE88810207E8930A0128801207C4B +S3154001BB3010BFFEE49B292003C2046004822840040E +S3154001BB4010BFFF68C224600410BFFF6D9602E00477 +S3154001BB5011100121901222308213C000400003A12E +S3154001BB609E10400001000000111001219012223068 +S3154001BB708213C000400003859E1040000100000072 +S3154001BB809DE3BFA02110012490100019400001A897 +S3154001BB90C02421A880A23FFF02800004C20421A83C +S3154001BBA081C7E00891E8000880A0600002BFFFFD60 +S3154001BBB001000000C226000081C7E00891E80008A4 +S3154001BBC09DE3BFA021100123400003709014213052 +S3154001BBD003100076E20061D0D004614880A22000C3 +S3154001BBE02280003D9004614CC202200480A0601F67 +S3154001BBF01480001E0100000080A620000280001271 +S3154001BC0084006002C4022004820060228600A042B1 +S3154001BC10892860028728E002C2022188F4220004B2 +S3154001BC20F6220003861020018728C00282104003B5 +S3154001BC30C222218880A620020280001982100002B9 +S3154001BC40840060028528A00282006001C22220048D +S3154001BC50F2220002B010200040000362901421300D +S3154001BC6081C7E00881E800007FFFFDFD901021902B +S3154001BC7080A220002280001A90142130C20461481B +S3154001BC80C2220000D0246148C0222004C02221885B +S3154001BC90C022218C10BFFFD982102000C202218C04 +S3154001BCA08610400382100002840060028528A002AB +S3154001BCB0C622218C82006001F2220002C2222004A7 +S3154001BCC0B0102000400003479014213081C7E0089E +S3154001BCD081E8000010BFFFC5D02461484000034100 +S3154001BCE0B0103FFF81C7E00881E800009DE3BFA097 +S3154001BCF07FFFFF9E9010001821100120A0142220E2 +S3154001BD00C2042008E2006004A20C7FFC82046FEFAB +S3154001BD10B2204019B20E7000B206700080A66FFFC5 +S3154001BD2004800009901000187FFFFF9692102000B2 +S3154001BD30C20420088200401180A20001028000074F +S3154001BD4090100018901000187FFFFF82B01020005D +S3154001BD5081C7E00881E800007FFFFF8A9220001931 +S3154001BD6080A23FFF0280000EA2244019C40420088D +S3154001BD70A214600103100123E220A00490100018D0 +S3154001BD80B0102001C4006108B22080197FFFFF7105 +S3154001BD90F220610881C7E00881E800009010001890 +S3154001BDA07FFFFF7892102000C20420088422000100 +S3154001BDB080A0A00F04BFFFE407100121C600E22CBA +S3154001BDC090220003071001238410A001D020E1082E +S3154001BDD010BFFFDDC42060049DE3BFA080A66000C4 +S3154001BDE002800050010000007FFFFF6090100018A4 +S3154001BDF084067FF8D800A004820B3FFE091001207B +S3154001BE008600800188112220DA00E004D60120084C +S3154001BE1080A2C003028000639A0B7FFCDA20E00413 +S3154001BE20808B20011280000E98102000D8067FF8E2 +S3154001BE308420800C8200400CD600A008980120087E +S3154001BE4080A2C00C0280000698102001D400A00CEC +S3154001BE50D422E00C98102000D622A0089600C00DEE +S3154001BE60D602E004808AE0013280000A8610600131 +S3154001BE7080A320000280002D8200400DDA00E008F8 +S3154001BE80C600E00CC623600CDA20E008861060018B +S3154001BE90C220800180A3200012800020C620A00479 +S3154001BEA080A061FF288000308330600387306009BD +S3154001BEB080A0E004188000529800E05B993060064B +S3154001BEC0980320389B2B20039A01000DC603600876 +S3154001BED080A0C00D32800008C800E00410800052E6 +S3154001BEE0DA01200480A3400322800008C200E00C4E +S3154001BEF0C800E00488093FFC80A040042ABFFFFA3D +S3154001BF00C600E008C200E00CC220A00CC620A00872 +S3154001BF10C420E00CC42060087FFFFF0E81E80000CA +S3154001BF2081C7E00881E80000DA00E0081710012027 +S3154001BF309612E22880A3400B32BFFFD3C600E00C25 +S3154001BF40C423600CC4236008C2208001DA20A00803 +S3154001BF5082106001DA20A00CC220A0047FFFFEFD02 +S3154001BF6081E800008728600386010003DA00E008C3 +S3154001BF70C620A00CDA20A008D8012004C423600CF6 +S3154001BF80C420E008833860028410200183288001A0 +S3154001BF9082130001C22120047FFFFEEE81E80000EA +S3154001BFA0808B20011280000982034001D8067FF868 +S3154001BFB08420800CDA00A00CC600A0088200400C48 +S3154001BFC0C6236008DA20E00CC421200886106001EF +S3154001BFD0C620A00405100121C400A22880A0400269 +S3154001BFE00ABFFFCE03100123D20060FC7FFFFF4052 +S3154001BFF0901000187FFFFED781E8000080A0E01472 +S3154001C00008BFFFB29B2B200380A0E0541880000D8F +S3154001C01080A0E1549930600C9803206E10BFFFABAD +S3154001C0209B2B2003993B2002821020018328400C40 +S3154001C03082134001C221200410BFFFB482100003C5 +S3154001C0401880000680A0E5549930600F9803207748 +S3154001C05010BFFF9E9B2B20039A1023F018BFFF9B16 +S3154001C0609810207E993060129803207C10BFFF976C +S3154001C0709B2B20039DE3BFA080A620000280001FCA +S3154001C08003100121E406214880A4A0002280001467 +S3154001C090C206203CC204A004A0807FFF2C80000C75 +S3154001C0A0E4048000A2006001A32C6002A204801176 +S3154001C0B0C20440009FC04000A2047FFCA0843FFF11 +S3154001C0C03CBFFFFDC2044000E404800080A4A00000 +S3154001C0D032BFFFF2C204A004C206203C80A0600029 +S3154001C0E002800004010000009FC04000901000182B +S3154001C0F081C7E00881E8000010BFFFE3F00062A8B5 +S3154001C1009DE3BFA0D206400080A2600002800004E9 +S3154001C110010000007FFFFFFB901000187FFFFF2FFB +S3154001C12081E80000010000009DE3BFA0031001214A +S3154001C130C20062A880A60001028000320100000010 +S3154001C140D206204C80A2600022800016E0062148DB +S3154001C150A2102000E002401180A420002280000BA2 +S3154001C160A204600492100010901000187FFFFF1B7C +S3154001C170E004000080A4200012BFFFFC92100010D2 +S3154001C180D206204CA204600480A4603C32BFFFF377 +S3154001C190E00240117FFFFF1190100018E006214890 +S3154001C1A080A420002280000ED2062054A206214CF3 +S3154001C1B080A400112280000AD20620549210001059 +S3154001C1C0901000187FFFFF05E004000080A4401096 +S3154001C1D012BFFFFC92100010D206205480A26000CC +S3154001C1E022800005C20620387FFFFEFC9010001811 +S3154001C1F0C206203880A0600032800004C206203C7E +S3154001C20081C7E00881E800009FC0400090100018F7 +S3154001C210F20622E080A6600002BFFFFA010000009C +S3154001C2207FFFFFB881E800000100000005100124EE +S3154001C230C200A1AC80A06000228000060310012448 +S3154001C24090004008D020A1AC81C3E00890100001C5 +S3154001C250821061B890004008C220A1ACD020A1ACA8 +S3154001C26081C3E00890100001A7500000AE10000104 +S3154001C2708334E00129100123E805203CA92CC01490 +S3154001C2808215000181E0000081904000010000001C +S3154001C2900100000001000000E03BA000E43BA008D3 +S3154001C2A0E83BA010EC3BA018F03BA020F43BA028B3 +S3154001C2B0F83BA030FC3BA03881E800008210001713 +S3154001C2C081C4400081CC80000100000001000000D3 +S3154001C2D001000000A7500000A92CE0012B1001230A +S3154001C2E0EA05603CAB34C015AA154014819540005F +S3154001C2F001000000010000000100000081E800008B +S3154001C30081E80000E01BA000E41BA008E81BA01088 +S3154001C310EC1BA018F01BA020F41BA028F81BA03092 +S3154001C320FC1BA03881E0000081E0000081C4400090 +S3154001C33081CC8000A750000029100073ADC520783C +S3154001C3400100000027100123A614E01CE024C000D0 +S3154001C350818C202001000000010000000100000046 +S3154001C3609DE3BFA09DE3BFA09DE3BFA09DE3BFA00A +S3154001C3709DE3BFA09DE3BFA09DE3BFA081E8000070 +S3154001C38081E8000081E8000081E8000081E80000C2 +S3154001C39081E8000081E8000027100123A614E01C73 +S3154001C3A0C024C000E203A068A4046004E223A064A0 +S3154001C3B0E423A06810800257AC1000002910012325 +S3154001C3C0A8152000C2252000C8252004E0252010FC +S3154001C3D0E2252014E4252018E825201C81E80000E8 +S3154001C3E08348000082106F008188602001000000B0 +S3154001C3F0010000000100000009100123C801203C92 +S3154001C40081E000008821200180A920FF02800003ED +S3154001C410010000000100000080A1000012BFFFF9E9 +S3154001C4200100000009100123C801203C81E80000F9 +S3154001C43080A920FF028000030100000001000000E6 +S3154001C4408821200180A1000012BFFFF901000000F0 +S3154001C45081E0000029100123A8152000C805200409 +S3154001C460C2052000E0052010E2052014E40520184D +S3154001C470C025201C818C2000010000000100000025 +S3154001C4800100000081C4800081CCA004A0142F00CB +S3154001C490818C000001000000010000000100000045 +S3154001C4A081C4800081CCA00480A660021280000570 +S3154001C4B0A8142F00818D0000B01420203080001F69 +S3154001C4C080A6600312800006A80E2F00AA2C2F001A +S3154001C4D0A8154014818D00003080001880A66004A4 +S3154001C4E012800008A9480000A8152040818D00004F +S3154001C4F00100000001000000010000003080000F33 +S3154001C50080A6600512800008A9480000A82D204099 +S3154001C510818D0000010000000100000001000000C3 +S3154001C5203080000680A660061280000301000000EC +S3154001C53030BFFFA391D0200081C4800081CCA004EC +S3154001C5409210200381C3E00891D02002921020026C +S3154001C55081C3E00891D020029210200681C3E008F1 +S3154001C56091D0200281C3E0080100000081C3E008A8 +S3154001C5700100000081C3E00801000000AE25A010C3 +S3154001C580A75000002D100071AC15A1902910007321 +S3154001C59081C522200100000011100123901220289C +S3154001C5A0D202000092026001D2220000932DE008DF +S3154001C5B0902C2F0092120009111001239012202075 +S3154001C5C0D002000080A000082280000292126F0073 +S3154001C5D0818A602001000000010000000100000086 +S3154001C5E090100017400000379203A06092142F006C +S3154001C5F0818A602001000000010000000100000066 +S3154001C6001110012390122028D202000092226001CB +S3154001C610D222000010800222AC1000009DE3BFA090 +S3154001C6201B100123892E60029A1361A480A6601F04 +S3154001C6308210200014800017C6034004B32E600404 +S3154001C6401910012380A0E000981322240280000DD6 +S3154001C6508406400C80A0C0021280000682100003AE +S3154001C6601080000EC206400C2280000CC206400C0F +S3154001C670C200600C80A0600012BFFFFC80A0800158 +S3154001C680C4234004F026400CC620A00C8210200092 +S3154001C69081C7E00891E80001F026400C81C7E00817 +S3154001C6A091E80001912A200203100123821061A41E +S3154001C6B0C4004008C422600C81C3E008D22040086F +S3154001C6C09DE3BFA0051001238210A02CC200600487 +S3154001C6D080A0401822800040C400A02C80A62000E3 +S3154001C6E022800002B0100001A32E20020310012374 +S3154001C6F0821061A4E000401180A420000280003431 +S3154001C700291001242D1001242B1001242710012466 +S3154001C710A8152024AC15A0A8AA1560AC1080001D50 +S3154001C720A614E028A41000138400A001C42480119B +S3154001C730C405800080A0A00022800006D204200803 +S3154001C7409FC0800001000000C2040000D2042008FE +S3154001C750901000189FC0400094100019C205400077 +S3154001C76080A0600022800005C20480119FC0400065 +S3154001C77001000000C204801182007FFFC2248011A3 +S3154001C780E004200C80A4200002800011010000007A +S3154001C790C204000080A0600022BFFFFBE004200C21 +S3154001C7A0C405000080A0A00012BFFFDFC404C01171 +S3154001C7B080A0A00002BFFFDDA4100013E004200CFE +S3154001C7C080A4200032BFFFF4C204000081C7E00804 +S3154001C7D081E80000F000A0C010BFFFC1B00E201FCD +S3154001C7E08C10000FA74800008B34E0188A09600FAF +S3154001C7F080A160030280000C0B1001238A11603472 +S3154001C8000920000088112070C82140000B10012327 +S3154001C8108A1160500920000088112040C82140003B +S3154001C820108000399010200192102006400001D25C +S3154001C8300100000080A000080280003301000000D2 +S3154001C840C2022010113FFC0082084008110003FC7F +S3154001C8508410400890100002921020019410200C80 +S3154001C860400001DB0100000080A000080280002694 +S3154001C87001000000400001EB921000010B10012362 +S3154001C8808A116034D221400090100002921020019A +S3154001C89094102011400001CE0100000080A0000844 +S3154001C8A00280001901000000400001DE92100001E3 +S3154001C8B0920260100B1001238A116050D221400070 +S3154001C8C090100002921020019410200D400001C0EA +S3154001C8D00100000080A000080280000B010000005A +S3154001C8E0400001D0921000010B1001238A11602CE7 +S3154001C8F0D2214000D40260109532A010940AA00FB4 +S3154001C900D42160049E10000681C3E00801000000A6 +S3154001C91003100123821060488210200191D020002B +S3154001C92081C3E008010000009DE3BFA0031001247C +S3154001C930C20060B48410001880A060000280000626 +S3154001C940B0102000901000029FC0400092100019C4 +S3154001C950B010000881C7E00881E800009DE3BFA050 +S3154001C96003100124C20060B880A060000280000567 +S3154001C970841020009FC040009010001884100008C9 +S3154001C98081C7E00891E800029DE3BFA0031001249E +S3154001C990C20060C080A060000280000584102000B3 +S3154001C9A09FC04000901000188410000881C7E0081D +S3154001C9B091E800029DE3BFA003100124C20060BCC0 +S3154001C9C080A0600002800005841020009FC04000C6 +S3154001C9D0901000188410000881C7E00891E8000211 +S3154001C9E09DE3BFA003100124C20060C480A0600083 +S3154001C9F002800005841020009FC04000901000185E +S3154001CA008410000881C7E00891E800029DE3BFA0B9 +S3154001CA1003100124C20060C880A0600002800005A6 +S3154001CA20841020009FC04000901000188410000818 +S3154001CA3081C7E00891E800029DE3BFA003100124ED +S3154001CA40C20060CC80A060000280000584102000F6 +S3154001CA509FC04000901000188410000881C7E0086C +S3154001CA6091E800029DE3BFA003100124C20060D0FB +S3154001CA708410001880A0600002800006B0102000DB +S3154001CA80901000029FC0400092100019B01000089B S3154001CA9081C7E00881E80000010000000310007230 S3154001CAA0821063689FC0400001000000031000002F S3154001CAB0821060008198400003100072821063EC7E @@ -7343,7 +7343,7 @@ S3154001CAC09FC04000010000000310007282106358AD S3154001CAD09FC04000010000008B4800008B31601868 S3154001CAE08A09600380A160031280000701000000EB S3154001CAF08B4440008B31601C80A1400012800006AF -S3154001CB00010000007FFFFF31010000007FFF919788 +S3154001CB00010000007FFFFF37010000007FFF91A376 S3154001CB10010000009C23A0407FFF913A01000000E4 S3154001CB208210200191D0200001000000290000045C S3154001CB30A68C001432800003A02C001491D0200052 @@ -7351,100 +7351,847 @@ S3154001CB40818C00000100000001000000010000008E S3154001CB5081C4800081CCA00481C3E00801000000AB S3154001CB6081C1E00801000000A74800008B34E018AD S3154001CB708A09600380A16003128000080100000059 -S3154001CB8021100143A0142044A2102003E2240000F6 -S3154001CB908B4440001080000821100143A01420441A +S3154001CB8021100123A0142044A2102003E224000016 +S3154001CB908B4440001080000821100123A01420443A S3154001CBA0A2102002E224000021200000E6042024F5 -S3154001CBB08B34E0148A09601F27100143A614E03C18 -S3154001CBC0CA24C0008A01600127100143A614E03837 -S3154001CBD0CA24C00027100143A614E0408A216002FE +S3154001CBB08B34E0148A09601F27100123A614E03C38 +S3154001CBC0CA24C0008A01600127100123A614E03857 +S3154001CBD0CA24C00027100123A614E0408A2160021E S3154001CBE0CA24C00081C3E0080100000081C3E008F7 S3154001CBF0010000008348000083306018820860030A S3154001CC0080A06003128000060100000083444000BA S3154001CC100500000882284002A380400088100000D9 -S3154001CC200910007281C1229C010000009DE3BF985A -S3154001CC30031000741B100074A01060F09A1360F08A -S3154001CC4080A4000D1A800010A210000D108000066D -S3154001CC50C204000080A400111A80000B01000000EC -S3154001CC60C204000080A0600002BFFFFBA0042004B4 -S3154001CC709FC040000100000080A400112ABFFFFAB6 -S3154001CC80C204000081C7E00881E80000AA27A0B0DD -S3154001CC90E0256060E2256064E4256068C225607431 -S3154001CCA0C43D6078C83D6080CC3D608885400000C9 -S3154001CCB0C425606CF03D6090F43D6098F83D60A0FD -S3154001CCC0FC3D60A8A8102001A92D0010808D0013FD -S3154001CCD002800013010000008534E0010710014382 -S3154001CCE0C600E03CA72CC0038414C0028408A0FF00 -S3154001CCF081E000008190A000E03BA000E43BA00859 -S3154001CD00E83BA010EC3BA018F03BA020F43BA02848 -S3154001CD10F83BA030FC3BA03881E8000081C5A00863 -S3154001CD209C100015051001438410A1A0C400800089 -S3154001CD3080A0800002800004010000009FC08000A6 -S3154001CD409203A060818C200082102002832840102B -S3154001CD5005100143C400A0388530400282104002CC -S3154001CD608550000080888001028000208328A00130 -S3154001CD7007100143C600E03C853080038210400223 -S3154001CD80820860FF81906000C203A06C81806000D0 -S3154001CD90F01BA090F41BA098F81BA0A0FC1BA0A818 -S3154001CDA0C203A074C41BA078C81BA080CC1BA0885A -S3154001CDB0E003A060E203A064E403A06881E8000008 -S3154001CDC0E01BA000E41BA008E81BA010EC1BA01868 -S3154001CDD0F01BA020F41BA028F81BA030FC1BA03898 -S3154001CDE01080000F81E00000C203A06C81806000CA -S3154001CDF0F01BA090F41BA098F81BA0A0FC1BA0A8B8 -S3154001CE00C203A074C41BA078C81BA080CC1BA088F9 -S3154001CE10E003A060E203A064E403A068818C2000E3 -S3154001CE2001000000010000000100000081C4400033 -S3154001CE3081CC8000AA27A0B0C2256074C43D607829 -S3154001CE40C83D6080CC3D608885400000C425606C4B -S3154001CE50A8102001A92D0010808D00130280001317 -S3154001CE60010000008534E00107100143C600E03CA3 -S3154001CE70A72CC0038414C0028408A0FF81E00000EF -S3154001CE808190A000E03BA000E43BA008E83BA01055 -S3154001CE90EC3BA018F03BA020F43BA028F83BA03087 -S3154001CEA0FC3BA03881E8000081C5A0089C10001514 -S3154001CEB0051001438410A1A0C400800080A0800019 -S3154001CEC002800004010000009FC080009203A06020 -S3154001CED0818C2000821020028328401005100143D6 -S3154001CEE0C400A038853040028210400285500000BF -S3154001CEF080888001028000198328A0010710014320 -S3154001CF00C600E03C8530800382104002820860FF03 -S3154001CF1081906000C203A06C81806000C203A0744E -S3154001CF20C41BA078C81BA080CC1BA08881E8000048 -S3154001CF30E01BA000E41BA008E81BA010EC1BA018F6 -S3154001CF40F01BA020F41BA028F81BA030FC1BA03826 -S3154001CF501080000881E00000C203A06C818060005F -S3154001CF60C203A074C41BA078C81BA080CC1BA08898 -S3154001CF70818C20000100000001000000010000003A -S3154001CF8081C4400081CC8000821000089A1038008C -S3154001CF9096102000912AE00598034008D4034008E2 -S3154001CFA09132A01880A20001328000089602E00169 -S3154001CFB09132A00C900A2FFF80A20009028000073F -S3154001CFC09410000C9602E00180A2E00728BFFFF30F -S3154001CFD0912AE0059410200081C3E0089010000AD0 -S3154001CFE08210000898102000912B20039A004008D7 -S3154001CFF0D60040089132E01880A20009328000082C -S3154001D000980320019132E00C900A2FFF80A2000A7A -S3154001D010028000079610000D9803200180A3200F7F -S3154001D02028BFFFF3912B20039610200081C3E0080F -S3154001D0309010000BD4022004173FFC00920A400BCB -S3154001D040900A800B9132200C921240081100003F49 -S3154001D050901223F0940A8008952AA0049412800B1A -S3154001D060920A400A81C3E008901000099DE3BF98E7 -S3154001D07003100074821060D8DA007FFC80A37FFF22 -S3154001D08002800009A0007FFC8210000D9FC0400075 -S3154001D090A0043FFCC204000080A07FFF12BFFFFC3A -S3154001D0A00100000081C7E00881E800009DE3BF98C8 -S3154001D0B081C7E00881E80000000000000000000090 -S3154001D0C00000000000000000000000000000000019 -S3154001D0D000000002FFFFFFFF00000000000000000B -S3154001D0E000000002FFFFFFFF0000000000000000FB -S3154001D0F040080000000000003CD203AF9EE75616F0 -S3154001D1003E7AD7F29ABCAF48400506A80000000017 -S3154001D110430000009DE3BFA07FFF8FF701000000A1 -S3154001D1207FFFFFD30100000081C7E00881E80000CE -S3154001D1309DE3BFA07FFF8FD20100000081C7E008B9 -S3154001D14081E800000000000000000000000000002F -S315400200000000000100000000000000004001D0E8AE +S3154001CC200910007281C1229C010000009DE3BFA052 +S3154001CC302110007623100076A0142170A214617091 +S3154001CC4080A400111A80000B01000000D0040000EE +S3154001CC5080A2200002800004A00420049FC200009C +S3154001CC600100000080A400112ABFFFFAD004000091 +S3154001CC7081C7E00881E80000AA27A0B0E0256060EE +S3154001CC80E2256064E4256068C2256074C43D60782D +S3154001CC90C83D6080CC3D608885400000C425606CFD +S3154001CCA0F03D6090F43D6098F83D60A0FC3D60A881 +S3154001CCB0A8102001A92D0010808D001302800013B9 +S3154001CCC0010000008534E00107100123C600E03C65 +S3154001CCD0A72CC0038414C0028408A0FF81E0000091 +S3154001CCE08190A000E03BA000E43BA008E83BA010F7 +S3154001CCF0EC3BA018F03BA020F43BA028F83BA03029 +S3154001CD00FC3BA03881E8000081C5A0089C100015B5 +S3154001CD10051001248410A0B0C400800080A08000CA +S3154001CD2002800004010000009FC080009203A060C1 +S3154001CD30818C200082102002832840100510012397 +S3154001CD40C400A03885304002821040028550000060 +S3154001CD5080888001028000208328A00107100123DA +S3154001CD60C600E03C8530800382104002820860FFA5 +S3154001CD7081906000C203A06C81806000F01BA0908E +S3154001CD80F41BA098F81BA0A0FC1BA0A8C203A0748A +S3154001CD90C41BA078C81BA080CC1BA088E003A06060 +S3154001CDA0E203A064E403A06881E80000E01BA00060 +S3154001CDB0E41BA008E81BA010EC1BA018F01BA02048 +S3154001CDC0F41BA028F81BA030FC1BA0381080000FD4 +S3154001CDD081E00000C203A06C81806000F01BA0903E +S3154001CDE0F41BA098F81BA0A0FC1BA0A8C203A0742A +S3154001CDF0C41BA078C81BA080CC1BA088E003A06000 +S3154001CE00E203A064E403A068818C200001000000D5 +S3154001CE10010000000100000081C4400081CC800077 +S3154001CE20AA27A0B0C2256074C43D6078C83D608021 +S3154001CE30CC3D608885400000C425606CA810200167 +S3154001CE40A92D0010808D00130280001301000000FF +S3154001CE508534E00107100123C600E03CA72CC0033E +S3154001CE608414C0028408A0FF81E000008190A000E4 +S3154001CE70E03BA000E43BA008E83BA010EC3BA01837 +S3154001CE80F03BA020F43BA028F83BA030FC3BA03867 +S3154001CE9081E8000081C5A0089C10001505100124F9 +S3154001CEA08410A0B0C400800080A0800002800004ED +S3154001CEB0010000009FC080009203A060818C200089 +S3154001CEC0821020028328401005100123C400A03897 +S3154001CED085304002821040028550000080888001E2 +S3154001CEE0028000198328A00107100123C600E03CF7 +S3154001CEF08530800382104002820860FF8190600085 +S3154001CF00C203A06C81806000C203A074C41BA078D8 +S3154001CF10C81BA080CC1BA08881E80000E01BA000B4 +S3154001CF20E41BA008E81BA010EC1BA018F01BA020D6 +S3154001CF30F41BA028F81BA030FC1BA0381080000869 +S3154001CF4081E00000C203A06C81806000C203A0742E +S3154001CF50C41BA078C81BA080CC1BA088818C200054 +S3154001CF6001000000010000000100000081C44000F2 +S3154001CF7081CC8000821000089A103800961020005B +S3154001CF80912AE00598034008D40340089132A0183D +S3154001CF9080A20001328000089602E0019132A00C85 +S3154001CFA0900A2FFF80A20009028000079410000C0E +S3154001CFB09602E00180A2E00728BFFFF3912AE0052F +S3154001CFC09410200081C3E0089010000A82100008E6 +S3154001CFD098102000912B20039A004008D600400863 +S3154001CFE09132E01880A2000932800008980320019E +S3154001CFF09132E00C900A2FFF80A2000A02800007BE +S3154001D0009610000D9803200180A3200F28BFFFF33F +S3154001D010912B20039610200081C3E0089010000B4D +S3154001D020D4022004173FFC00920A400B900A800B61 +S3154001D0309132200C921240081100003F901223F0C9 +S3154001D040940A8008952AA0049412800B920A400AF9 +S3154001D05081C3E008901000099DE3BFA0211000762E +S3154001D060A0142158C2043FFC80A07FFF0280000823 +S3154001D070A0043FFC9FC04000A0043FFCC204000046 +S3154001D08080A07FFF12BFFFFC0100000081C7E008BE +S3154001D09081E800009DE3BFA081C7E00881E8000068 +S3154001D0A00000001000000000017A5200047C0F01CC +S3154001D0B01B0C0E000000001000000018FFFE40DCB3 +S3154001D0C00000000800000000000000140000002CD1 +S3154001D0D0FFFE40D00000004000410D1E2D090F1FEC +S3154001D0E00000001000000044FFFE40F80000001C54 +S3154001D0F0000000000000001000000058FFFE410043 +S3154001D1000000001C00000000000000100000006C40 +S3154001D110FFFE41080000001C000000000000001056 +S3154001D12000000080FFFE41100000001C00000000CE +S3154001D1300000001400000094FFFE41180000002C7E +S3154001D14000410D1E2D090F1F00000018000000AC04 +S3154001D150FFFE41780000004000410D1E2D46090F9B +S3154001D1601F00000000000018000000C8FFFE419C9F +S3154001D1700000022400410D1E2D46090F1F0000002C +S3154001D18000000018000000E4FFFE43A40000023442 +S3154001D19000410D1E2D47090F1F0000000000001819 +S3154001D1A000000100FFFE45BC0000003C00410D1E91 +S3154001D1B02D43090F1F000000000000180000011C4C +S3154001D1C0FFFE45DC0000003C00410D1E2D43090FCA +S3154001D1D01F0000000000001800000138FFFF2E2448 +S3154001D1E00000024800410D1E2D5D090F1F00000081 +S3154001D1F00000001400000154FFFF3050000006906B +S3154001D20000410D1E2D090F1F000000180000016C82 +S3154001D210FFFF36C80000002800410D1E2D49090FA9 +S3154001D2201F0000000000001800000188FFFF36D4EF +S3154001D2300000002400410D1E2D48090F1F0000006B +S3154001D24000000018000001A4FFFF36DC0000009832 +S3154001D25000410D1E2D44090F1F000000000000185B +S3154001D260000001C0FFFF3758000000FC00410D1EC1 +S3154001D2702D46090F1F00000000000018000001DCC8 +S3154001D280FFFF3838000000C400410D1E2D47090F2D +S3154001D2901F00000000000018000001F8FFFF38E001 +S3154001D2A00000015000410D1E2D6E090F1F000000A8 +S3154001D2B00000001800000214FFFF3A140000047039 +S3154001D2C000410D1E2D44090F1F00000000000018EB +S3154001D2D000000230FFFF3E680000013400410D1E90 +S3154001D2E02D4A090F1F000000000000180000024CE3 +S3154001D2F0FFFF3F800000012400410D1E2D49090F0B +S3154001D3001F0000000000001800000268FFFF40886F +S3154001D310000000B800410D1E2D4A090F1F000000F4 +S3154001D3200000001800000284FFFF4124000000A015 +S3154001D33000410D1E2D48090F1F000000000000107E +S3154001D340000002A0FFFF41A80000001800000000F5 +S3154001D35000000014000002B4FFFF41AC000002705F +S3154001D36000410D1E2D090F1F00000014000002CCC4 +S3154001D370FFFF44040000040C00410D1E2D090F1F40 +S3154001D38000000014000002E4FFFF47F800000124FA +S3154001D39000410D1E2D090F1F00000014000002FC64 +S3154001D3A0FFFF49040000039400410D1E2D090F1F84 +S3154001D3B00000001000000314FFFF4C800000002C09 +S3154001D3C0000000000000001000000328FFFF4C98F9 +S3154001D3D00000002400000000000000100000033C93 +S3154001D3E0FFFF4CA8000000180000000000000018D4 +S3154001D3F000000350FFFF4CAC0000017C00410D1EB4 +S3154001D4002D42090F1F000000000000180000036CA8 +S3154001D410FFFF4E0C0000058000410D1E2D46090FF1 +S3154001D4201F0000000000001800000388FFFF537032 +S3154001D4300000051800410D1E2D43090F1F00000075 +S3154001D44000000014000003A4FFFF586C0000010C0B +S3154001D45000410D1E2D090F1F00000010000003BCE6 +S3154001D460FFFF596000000018000000000000001492 +S3154001D470000003D0FFFF59640000020800410D1E61 +S3154001D4802D090F1F00000014000003E8FFFF6A0486 +S3154001D4900000461800410D1E2D090F1F0000001007 +S3154001D4A000000400FFFFB0040000000C0000000073 +S3154001D4B00000001000000414FFFFAFFC0000001440 +S3154001D4C0000000000000001000000428FFFFAFFC30 +S3154001D4D00000002000000000000000140000043C91 +S3154001D4E0FFFFB0080000077000410D1E2D090F1FF8 +S3154001D4F00000001000000454FFFFC0900000000C23 +S3154001D500000000000000001000000468FFFFC08812 +S3154001D5100000002400000000000000100000047C10 +S3154001D520FFFFC09800000038000000000000001016 +S3154001D53000000490FFFFC0BC00000038000000005E +S3154001D54000000018000004A4FFFFC0E00000009C9A +S3154001D55000410D1E2D56090F1F0000000000001846 +S3154001D560000004C0FFFFC1600000003C00410D1EE9 +S3154001D5702D4A090F1F00000000000018000004DCBE +S3154001D580FFFFC1800000003C00410D1E2D4A090FDE +S3154001D5901F00000000000010000004F8FFFFC1A0BA +S3154001D5A00000003800000000000000180000050CD3 +S3154001D5B0FFFFC1C40000003C00410D1E2D4A090F6A +S3154001D5C01F0000000000001800000528FFFFC1E40D +S3154001D5D00000003C00410D1E2D4A090F1F000000AE +S3154001D5E00000001000000544FFFFC204000000389F +S3154001D5F0000000000000001800000558FFFFC22887 +S3154001D60000000EB000430D1E2D4C090F1F000000F7 +S3154001D6100000001400000574FFFFD0BC0000002884 +S3154001D62000410D1E2D090F1F000000140000058C3E +S3154001D630FFFFD0CC0000033000410D1E2D090F1F06 +S3154001D64000000014000005A4FFFFD3E4000002B867 +S3154001D65000430D1E2D090F1F00000010000005BCE0 +S3154001D660FFFFD98C0000000C0000000000000010F4 +S3154001D670000005D0FFFFD98400000014000000001F +S3154001D68000000014000005E4FFFFD9840000007C7F +S3154001D69000410D1E2D090F1F00000010000005FC62 +S3154001D6A0FFFFDD80000000200000000000000010A8 +S3154001D6B000000610FFFFDD8C0000001C000000008A +S3154001D6C00000001000000624FFFFDD940000001C4E +S3154001D6D0000000000000001800000638FFFFDD9C36 +S3154001D6E0000006D800410D1E2D4C090F1F000000F9 +S3154001D6F00000001000000654FFFFE4580000001827 +S3154001D700000000000000001000000668FFFFE45C16 +S3154001D7100000001800000000000000180000067C10 +S3154001D720FFFFE4600000004000410D1E2D42090F3D +S3154001D7301F0000000000001800000698FFFFE48467 +S3154001D7400000012C00410D1E2D41090F1F00000054 +S3154001D75000000014000006B4FFFFE594000000EC51 +S3154001D76000410D1E2D090F1F00000018000006CCB8 +S3154001D770FFFFE6680000029C00410D1E2D43090F84 +S3154001D7801F00000000000018000006E8FFFFE8E85F +S3154001D7900000008C00410D1E2D4F090F1F00000097 +S3154001D7A00000001800000704FFFFE95800000028A8 +S3154001D7B000410D1E2D44090F1F00000000000018F6 +S3154001D7C000000720FFFFE9640000010400410D1E2F +S3154001D7D02D45090F1F000000000000100000073C06 +S3154001D7E0FFFFEA4C0000003C00000000000000186A +S3154001D7F000000750FFFFEE280000008800410D1E83 +S3154001D8002D52090F1F000000000000100000076C98 +S3154001D810FFFFEE940000001C00000000000000180D +S3154001D82000000780FFFFEE9C0000012000410D1E15 +S3154001D8302D58090F1F000000000000100000079C32 +S3154001D840FFFFF0D8000000100000000000000018A3 +S3154001D850000007B0FFFFF0D40000003400410D1E68 +S3154001D8602D47090F1F00000000000018000007CCDB +S3154001D870FFFFF0EC0000002C00410D1E2D45090F65 +S3154001D8801F00000000000018000007E8FFFFF0FC41 +S3154001D8900000002C00410D1E2D45090F1F00000000 +S3154001D8A00000001800000804FFFFF10C0000002CE6 +S3154001D8B000410D1E2D45090F1F00000000000018F4 +S3154001D8C000000820FFFFF11C0000002C00410D1E46 +S3154001D8D02D45090F1F000000000000180000083CFC +S3154001D8E0FFFFF12C0000002C00410D1E2D45090FB4 +S3154001D8F01F0000000000001800000858FFFFF13C1F +S3154001D9000000002C00410D1E2D45090F1F0000008F +S3154001D9100000001800000874FFFFF14C00000034BD +S3154001D92000410D1E2D47090F1F0000000000001881 +S3154001D93000000890FFFFF2F80000004C00410D1E68 +S3154001D9402D47090F1F0000000000000000000000E5 +S3154001D95000000002FFFFFFFF000000000000000082 +S3154001D96000000002FFFFFFFF000000000000000072 +S3154001D970343074693934612B30796769797530355A +S3154001D9807968617035796934682B612B6969797871 +S3154001D9906869346B35396A30713930356A6B6F79FC +S3154001D9A070686F70746A72686961346979302B3452 +S3154001D9B000000000000000004008000000000000D8 +S3154001D9C03CD203AF9EE756163E7AD7F29ABCAF4891 +S3154001D9D0400486B000000000430000000000000043 +S3154001D9E09DE3BFA07FFF8DD1010000007FFFFD9B1E +S3154001D9F00100000081C7E00881E800009DE3BFA067 +S3154001DA007FFF8D9F0100000081C7E00881E800008B +S3154001DA1000000000000000000000000000000000BF +S3154001DA2000000000000000000000000000000000AF +S3154001DA30000000000000000000000000000000009F +S3154001DA40000000000000000000000000000000008F +S3154001DA50000000000000000000000000000000007F +S3154001DA60000000000000000000000000000000006F +S3154001DA70000000000000000000000000000000005F +S3154001DA80000000000000000000000000000000004F +S3154001DA90000000000000000000000000000000003F +S3154001DAA0000000000000000000000000000000002F +S3154001DAB0000000000000000000000000000000001F +S3154001DAC0000000000000000000000000000000000F +S3154001DAD000000000000000000000000000000000FF +S3154001DAE000000000000000000000000000000000EF +S3154001DAF000000000000000000000000000000000DF +S3154001DB0000000000000000000000000000000000CE +S3154001DB1000000000000000000000000000000000BE +S3154001DB2000000000000000000000000000000000AE +S3154001DB30000000000000000000000000000000009E +S3154001DB40000000000000000000000000000000008E +S3154001DB50000000000000000000000000000000007E +S3154001DB60000000000000000000000000000000006E +S3154001DB70000000000000000000000000000000005E +S3154001DB80000000000000000000000000000000004E +S3154001DB90000000000000000000000000000000003E +S3154001DBA0000000000000000000000000000000002E +S3154001DBB0000000000000000000000000000000001E +S3154001DBC0000000000000000000000000000000000E +S3154001DBD000000000000000000000000000000000FE +S3154001DBE000000000000000000000000000000000EE +S3154001DBF000000000000000000000000000000000DE +S3154001DC0000000000000000000000000000000000CD +S3154001DC1000000000000000000000000000000000BD +S3154001DC2000000000000000000000000000000000AD +S3154001DC30000000000000000000000000000000009D +S3154001DC40000000000000000000000000000000008D +S3154001DC50000000000000000000000000000000007D +S3154001DC60000000000000000000000000000000006D +S3154001DC70000000000000000000000000000000005D +S3154001DC80000000000000000000000000000000004D +S3154001DC90000000000000000000000000000000003D +S3154001DCA0000000000000000000000000000000002D +S3154001DCB0000000000000000000000000000000001D +S3154001DCC0000000000000000000000000000000000D +S3154001DCD000000000000000000000000000000000FD +S3154001DCE000000000000000000000000000000000ED +S3154001DCF000000000000000000000000000000000DD +S3154001DD0000000000000000000000000000000000CC +S3154001DD1000000000000000000000000000000000BC +S3154001DD2000000000000000000000000000000000AC +S3154001DD30000000000000000000000000000000009C +S3154001DD40000000000000000000000000000000008C +S3154001DD50000000000000000000000000000000007C +S3154001DD60000000000000000000000000000000006C +S3154001DD70000000000000000000000000000000005C +S3154001DD80000000000000000000000000000000004C +S3154001DD90000000000000000000000000000000003C +S3154001DDA0000000000000000000000000000000002C +S3154001DDB0000000000000000000000000000000001C +S3154001DDC0000000000000000000000000000000000C +S3154001DDD000000000000000000000000000000000FC +S3154001DDE000000000000000000000000000000000EC +S3154001DDF000000000000000000000000000000000DC +S3154001DE0000000000000000000000000000000000CB +S3154001DE1000000000000000000000000000000000BB +S3154001DE2000000000000000000000000000000000AB +S3154001DE30000000000000000000000000000000009B +S3154001DE40000000000000000000000000000000008B +S3154001DE50000000000000000000000000000000007B +S3154001DE60000000000000000000000000000000006B +S3154001DE70000000000000000000000000000000005B +S3154001DE80000000000000000000000000000000004B +S3154001DE90000000000000000000000000000000003B +S3154001DEA0000000000000000000000000000000002B +S3154001DEB0000000000000000000000000000000001B +S3154001DEC0000000000000000000000000000000000B +S3154001DED000000000000000000000000000000000FB +S3154001DEE000000000000000000000000000000000EB +S3154001DEF000000000000000000000000000000000DB +S3154001DF0000000000000000000000000000000000CA +S3154001DF1000000000000000000000000000000000BA +S3154001DF2000000000000000000000000000000000AA +S3154001DF30000000000000000000000000000000009A +S3154001DF40000000000000000000000000000000008A +S3154001DF50000000000000000000000000000000007A +S3154001DF60000000000000000000000000000000006A +S3154001DF70000000000000000000000000000000005A +S3154001DF80000000000000000000000000000000004A +S3154001DF90000000000000000000000000000000003A +S3154001DFA0000000000000000000000000000000002A +S3154001DFB0000000000000000000000000000000001A +S3154001DFC0000000000000000000000000000000000A +S3154001DFD000000000000000000000000000000000FA +S3154001DFE000000000000000000000000000000000EA +S3154001DFF000000000000000000000000000000000DA +S3154001E00000000000000000000000000000000000C9 +S3154001E01000000000000000000000000000000000B9 +S3154001E02000000000000000000000000000000000A9 +S3154001E0300000000000000000000000000000000099 +S3154001E0400000000000000000000000000000000089 +S3154001E0500000000000000000000000000000000079 +S3154001E0600000000000000000000000000000000069 +S3154001E0700000000000000000000000000000000059 +S3154001E0800000000000000000000000000000000049 +S3154001E0900000000000000000000000000000000039 +S3154001E0A00000000000000000000000000000000029 +S3154001E0B00000000000000000000000000000000019 +S3154001E0C00000000000000000000000000000000009 +S3154001E0D000000000000000000000000000000000F9 +S3154001E0E000000000000000000000000000000000E9 +S3154001E0F000000000000000000000000000000000D9 +S3154001E10000000000000000000000000000000000C8 +S3154001E11000000000000000000000000000000000B8 +S3154001E12000000000000000000000000000000000A8 +S3154001E1300000000000000000000000000000000098 +S3154001E1400000000000000000000000000000000088 +S3154001E1500000000000000000000000000000000078 +S3154001E1600000000000000000000000000000000068 +S3154001E1700000000000000000000000000000000058 +S3154001E1800000000000000000000000000000000048 +S3154001E1900000000000000000000000000000000038 +S3154001E1A00000000000000000000000000000000028 +S3154001E1B00000000000000000000000000000000018 +S3154001E1C00000000000000000000000000000000008 +S3154001E1D000000000000000000000000000000000F8 +S3154001E1E000000000000000000000000000000000E8 +S3154001E1F000000000000000000000000000000000D8 +S3154001E20000000000000000000000000000000000C7 +S3154001E21000000000000000000000000000000000B7 +S3154001E22000000000000000000000000000000000A7 +S3154001E2300000000000000000000000000000000097 +S3154001E2400000000000000000000000000000000087 +S3154001E2500000000000000000000000000000000077 +S3154001E2600000000000000000000000000000000067 +S3154001E2700000000000000000000000000000000057 +S3154001E2800000000000000000000000000000000047 +S3154001E2900000000000000000000000000000000037 +S3154001E2A00000000000000000000000000000000027 +S3154001E2B00000000000000000000000000000000017 +S3154001E2C00000000000000000000000000000000007 +S3154001E2D000000000000000000000000000000000F7 +S3154001E2E000000000000000000000000000000000E7 +S3154001E2F000000000000000000000000000000000D7 +S3154001E30000000000000000000000000000000000C6 +S3154001E31000000000000000000000000000000000B6 +S3154001E32000000000000000000000000000000000A6 +S3154001E3300000000000000000000000000000000096 +S3154001E3400000000000000000000000000000000086 +S3154001E3500000000000000000000000000000000076 +S3154001E3600000000000000000000000000000000066 +S3154001E3700000000000000000000000000000000056 +S3154001E3800000000000000000000000000000000046 +S3154001E3900000000000000000000000000000000036 +S3154001E3A00000000000000000000000000000000026 +S3154001E3B00000000000000000000000000000000016 +S3154001E3C00000000000000000000000000000000006 +S3154001E3D000000000000000000000000000000000F6 +S3154001E3E000000000000000000000000000000000E6 +S3154001E3F000000000000000000000000000000000D6 +S3154001E40000000000000000000000000000000000C5 +S3154001E41000000000000000000000000000000000B5 +S3154001E42000000000000000000000000000000000A5 +S3154001E4300000000000000000000000000000000095 +S3154001E4400000000000000000000000000000000085 +S3154001E4500000000000000000000000000000000075 +S3154001E4600000000000000000000000000000000065 +S3154001E4700000000000000000000000000000000055 +S3154001E4800000000000000000000000000000000045 +S3154001E4900000000000000000000000000000000035 +S3154001E4A00000000000000000000000000000000025 +S3154001E4B00000000000000000000000000000000015 +S3154001E4C00000000000000000000000000000000005 +S3154001E4D000000000000000000000000000000000F5 +S3154001E4E000000000000000000000000000000000E5 +S3154001E4F000000000000000000000000000000000D5 +S3154001E50000000000000000000000000000000000C4 +S3154001E51000000000000000000000000000000000B4 +S3154001E52000000000000000000000000000000000A4 +S3154001E5300000000000000000000000000000000094 +S3154001E5400000000000000000000000000000000084 +S3154001E5500000000000000000000000000000000074 +S3154001E5600000000000000000000000000000000064 +S3154001E5700000000000000000000000000000000054 +S3154001E5800000000000000000000000000000000044 +S3154001E5900000000000000000000000000000000034 +S3154001E5A00000000000000000000000000000000024 +S3154001E5B00000000000000000000000000000000014 +S3154001E5C00000000000000000000000000000000004 +S3154001E5D000000000000000000000000000000000F4 +S3154001E5E000000000000000000000000000000000E4 +S3154001E5F000000000000000000000000000000000D4 +S3154001E60000000000000000000000000000000000C3 +S3154001E61000000000000000000000000000000000B3 +S3154001E62000000000000000000000000000000000A3 +S3154001E6300000000000000000000000000000000093 +S3154001E6400000000000000000000000000000000083 +S3154001E6500000000000000000000000000000000073 +S3154001E6600000000000000000000000000000000063 +S3154001E6700000000000000000000000000000000053 +S3154001E6800000000000000000000000000000000043 +S3154001E6900000000000000000000000000000000033 +S3154001E6A00000000000000000000000000000000023 +S3154001E6B00000000000000000000000000000000013 +S3154001E6C00000000000000000000000000000000003 +S3154001E6D000000000000000000000000000000000F3 +S3154001E6E000000000000000000000000000000000E3 +S3154001E6F000000000000000000000000000000000D3 +S3154001E70000000000000000000000000000000000C2 +S3154001E71000000000000000000000000000000000B2 +S3154001E72000000000000000000000000000000000A2 +S3154001E7300000000000000000000000000000000092 +S3154001E7400000000000000000000000000000000082 +S3154001E7500000000000000000000000000000000072 +S3154001E7600000000000000000000000000000000062 +S3154001E7700000000000000000000000000000000052 +S3154001E7800000000000000000000000000000000042 +S3154001E7900000000000000000000000000000000032 +S3154001E7A00000000000000000000000000000000022 +S3154001E7B00000000000000000000000000000000012 +S3154001E7C00000000000000000000000000000000002 +S3154001E7D000000000000000000000000000000000F2 +S3154001E7E000000000000000000000000000000000E2 +S3154001E7F000000000000000000000000000000000D2 +S3154001E80000000000000000000000000000000000C1 +S3154001E81000000000000000000000000000000000B1 +S3154001E82000000000000000000000000000000000A1 +S3154001E8300000000000000000000000000000000091 +S3154001E8400000000000000000000000000000000081 +S3154001E8500000000000000000000000000000000071 +S3154001E8600000000000000000000000000000000061 +S3154001E8700000000000000000000000000000000051 +S3154001E8800000000000000000000000000000000041 +S3154001E8900000000000000000000000000000000031 +S3154001E8A00000000000000000000000000000000021 +S3154001E8B00000000000000000000000000000000011 +S3154001E8C00000000000000000000000000000000001 +S3154001E8D000000000000000000000000000000000F1 +S3154001E8E000000000000000000000000000000000E1 +S3154001E8F000000000000000000000000000000000D1 +S3154001E90000000000000000000000000000000000C0 +S3154001E91000000000000000000000000000000000B0 +S3154001E92000000000000000000000000000000000A0 +S3154001E9300000000000000000000000000000000090 +S3154001E9400000000000000000000000000000000080 +S3154001E9500000000000000000000000000000000070 +S3154001E9600000000000000000000000000000000060 +S3154001E9700000000000000000000000000000000050 +S3154001E9800000000000000000000000000000000040 +S3154001E9900000000000000000000000000000000030 +S3154001E9A00000000000000000000000000000000020 +S3154001E9B00000000000000000000000000000000010 +S3154001E9C00000000000000000000000000000000000 +S3154001E9D000000000000000000000000000000000F0 +S3154001E9E000000000000000000000000000000000E0 +S3154001E9F000000000000000000000000000000000D0 +S3154001EA0000000000000000000000000000000000BF +S3154001EA1000000000000000000000000000000000AF +S3154001EA20000000000000000000000000000000009F +S3154001EA30000000000000000000000000000000008F +S3154001EA40000000000000000000000000000000007F +S3154001EA50000000000000000000000000000000006F +S3154001EA60000000000000000000000000000000005F +S3154001EA70000000000000000000000000000000004F +S3154001EA80000000000000000000000000000000003F +S3154001EA90000000000000000000000000000000002F +S3154001EAA0000000000000000000000000000000001F +S3154001EAB0000000000000000000000000000000000F +S3154001EAC000000000000000000000000000000000FF +S3154001EAD000000000000000000000000000000000EF +S3154001EAE000000000000000000000000000000000DF +S3154001EAF000000000000000000000000000000000CF +S3154001EB0000000000000000000000000000000000BE +S3154001EB1000000000000000000000000000000000AE +S3154001EB20000000000000000000000000000000009E +S3154001EB30000000000000000000000000000000008E +S3154001EB40000000000000000000000000000000007E +S3154001EB50000000000000000000000000000000006E +S3154001EB60000000000000000000000000000000005E +S3154001EB70000000000000000000000000000000004E +S3154001EB80000000000000000000000000000000003E +S3154001EB90000000000000000000000000000000002E +S3154001EBA0000000000000000000000000000000001E +S3154001EBB0000000000000000000000000000000000E +S3154001EBC000000000000000000000000000000000FE +S3154001EBD000000000000000000000000000000000EE +S3154001EBE000000000000000000000000000000000DE +S3154001EBF000000000000000000000000000000000CE +S3154001EC0000000000000000000000000000000000BD +S3154001EC1000000000000000000000000000000000AD +S3154001EC20000000000000000000000000000000009D +S3154001EC30000000000000000000000000000000008D +S3154001EC40000000000000000000000000000000007D +S3154001EC50000000000000000000000000000000006D +S3154001EC60000000000000000000000000000000005D +S3154001EC70000000000000000000000000000000004D +S3154001EC80000000000000000000000000000000003D +S3154001EC90000000000000000000000000000000002D +S3154001ECA0000000000000000000000000000000001D +S3154001ECB0000000000000000000000000000000000D +S3154001ECC000000000000000000000000000000000FD +S3154001ECD000000000000000000000000000000000ED +S3154001ECE000000000000000000000000000000000DD +S3154001ECF000000000000000000000000000000000CD +S3154001ED0000000000000000000000000000000000BC +S3154001ED1000000000000000000000000000000000AC +S3154001ED20000000000000000000000000000000009C +S3154001ED30000000000000000000000000000000008C +S3154001ED40000000000000000000000000000000007C +S3154001ED50000000000000000000000000000000006C +S3154001ED60000000000000000000000000000000005C +S3154001ED70000000000000000000000000000000004C +S3154001ED80000000000000000000000000000000003C +S3154001ED90000000000000000000000000000000002C +S3154001EDA0000000000000000000000000000000001C +S3154001EDB0000000000000000000000000000000000C +S3154001EDC000000000000000000000000000000000FC +S3154001EDD000000000000000000000000000000000EC +S3154001EDE000000000000000000000000000000000DC +S3154001EDF000000000000000000000000000000000CC +S3154001EE0000000000000000000000000000000000BB +S3154001EE1000000000000000000000000000000000AB +S3154001EE20000000000000000000000000000000009B +S3154001EE30000000000000000000000000000000008B +S3154001EE40000000000000000000000000000000007B +S3154001EE50000000000000000000000000000000006B +S3154001EE60000000000000000000000000000000005B +S3154001EE70000000000000000000000000000000004B +S3154001EE80000000000000000000000000000000003B +S3154001EE90000000000000000000000000000000002B +S3154001EEA0000000000000000000000000000000001B +S3154001EEB0000000000000000000000000000000000B +S3154001EEC000000000000000000000000000000000FB +S3154001EED000000000000000000000000000000000EB +S3154001EEE000000000000000000000000000000000DB +S3154001EEF000000000000000000000000000000000CB +S3154001EF0000000000000000000000000000000000BA +S3154001EF1000000000000000000000000000000000AA +S3154001EF20000000000000000000000000000000009A +S3154001EF30000000000000000000000000000000008A +S3154001EF40000000000000000000000000000000007A +S3154001EF50000000000000000000000000000000006A +S3154001EF60000000000000000000000000000000005A +S3154001EF70000000000000000000000000000000004A +S3154001EF80000000000000000000000000000000003A +S3154001EF90000000000000000000000000000000002A +S3154001EFA0000000000000000000000000000000001A +S3154001EFB0000000000000000000000000000000000A +S3154001EFC000000000000000000000000000000000FA +S3154001EFD000000000000000000000000000000000EA +S3154001EFE000000000000000000000000000000000DA +S3154001EFF000000000000000000000000000000000CA +S3154001F00000000000000000000000000000000000B9 +S3154001F01000000000000000000000000000000000A9 +S3154001F0200000000000000000000000000000000099 +S3154001F0300000000000000000000000000000000089 +S3154001F0400000000000000000000000000000000079 +S3154001F0500000000000000000000000000000000069 +S3154001F0600000000000000000000000000000000059 +S3154001F0700000000000000000000000000000000049 +S3154001F0800000000000000000000000000000000039 +S3154001F0900000000000000000000000000000000029 +S3154001F0A00000000000000000000000000000000019 +S3154001F0B00000000000000000000000000000000009 +S3154001F0C000000000000000000000000000000000F9 +S3154001F0D000000000000000000000000000000000E9 +S3154001F0E000000000000000000000000000000000D9 +S3154001F0F000000000000000000000000000000000C9 +S3154001F10000000000000000000000000000000000B8 +S3154001F11000000000000000000000000000000000A8 +S3154001F1200000000000000000000000000000000098 +S3154001F1300000000000000000000000000000000088 +S3154001F1400000000000000000000000000000000078 +S3154001F1500000000000000000000000000000000068 +S3154001F1600000000000000000000000000000000058 +S3154001F1700000000000000000000000000000000048 +S3154001F1800000000000000000000000000000000038 +S3154001F1900000000000000000000000000000000028 +S3154001F1A00000000000000000000000000000000018 +S3154001F1B00000000000000000000000000000000008 +S3154001F1C000000000000000000000000000000000F8 +S3154001F1D000000000000000000000000000000000E8 +S3154001F1E000000000000000000000000000000000D8 +S3154001F1F000000000000000000000000000000000C8 +S3154001F20000000000000000000000000000000000B7 +S3154001F21000000000000000000000000000000000A7 +S3154001F2200000000000000000000000000000000097 +S3154001F2300000000000000000000000000000000087 +S3154001F2400000000000000000000000000000000077 +S3154001F2500000000000000000000000000000000067 +S3154001F2600000000000000000000000000000000057 +S3154001F2700000000000000000000000000000000047 +S3154001F2800000000000000000000000000000000037 +S3154001F2900000000000000000000000000000000027 +S3154001F2A00000000000000000000000000000000017 +S3154001F2B00000000000000000000000000000000007 +S3154001F2C000000000000000000000000000000000F7 +S3154001F2D000000000000000000000000000000000E7 +S3154001F2E000000000000000000000000000000000D7 +S3154001F2F000000000000000000000000000000000C7 +S3154001F30000000000000000000000000000000000B6 +S3154001F31000000000000000000000000000000000A6 +S3154001F3200000000000000000000000000000000096 +S3154001F3300000000000000000000000000000000086 +S3154001F3400000000000000000000000000000000076 +S3154001F3500000000000000000000000000000000066 +S3154001F3600000000000000000000000000000000056 +S3154001F3700000000000000000000000000000000046 +S3154001F3800000000000000000000000000000000036 +S3154001F3900000000000000000000000000000000026 +S3154001F3A00000000000000000000000000000000016 +S3154001F3B00000000000000000000000000000000006 +S3154001F3C000000000000000000000000000000000F6 +S3154001F3D000000000000000000000000000000000E6 +S3154001F3E000000000000000000000000000000000D6 +S3154001F3F000000000000000000000000000000000C6 +S3154001F40000000000000000000000000000000000B5 +S3154001F41000000000000000000000000000000000A5 +S3154001F4200000000000000000000000000000000095 +S3154001F4300000000000000000000000000000000085 +S3154001F4400000000000000000000000000000000075 +S3154001F4500000000000000000000000000000000065 +S3154001F4600000000000000000000000000000000055 +S3154001F4700000000000000000000000000000000045 +S3154001F4800000000000000000000000000000000035 +S3154001F4900000000000000000000000000000000025 +S3154001F4A00000000000000000000000000000000015 +S3154001F4B00000000000000000000000000000000005 +S3154001F4C000000000000000000000000000000000F5 +S3154001F4D000000000000000000000000000000000E5 +S3154001F4E000000000000000000000000000000000D5 +S3154001F4F000000000000000000000000000000000C5 +S3154001F50000000000000000000000000000000000B4 +S3154001F51000000000000000000000000000000000A4 +S3154001F5200000000000000000000000000000000094 +S3154001F5300000000000000000000000000000000084 +S3154001F5400000000000000000000000000000000074 +S3154001F5500000000000000000000000000000000064 +S3154001F5600000000000000000000000000000000054 +S3154001F5700000000000000000000000000000000044 +S3154001F5800000000000000000000000000000000034 +S3154001F5900000000000000000000000000000000024 +S3154001F5A00000000000000000000000000000000014 +S3154001F5B00000000000000000000000000000000004 +S3154001F5C000000000000000000000000000000000F4 +S3154001F5D000000000000000000000000000000000E4 +S3154001F5E000000000000000000000000000000000D4 +S3154001F5F000000000000000000000000000000000C4 +S3154001F60000000000000000000000000000000000B3 +S3154001F61000000000000000000000000000000000A3 +S3154001F6200000000000000000000000000000000093 +S3154001F6300000000000000000000000000000000083 +S3154001F6400000000000000000000000000000000073 +S3154001F6500000000000000000000000000000000063 +S3154001F6600000000000000000000000000000000053 +S3154001F6700000000000000000000000000000000043 +S3154001F6800000000000000000000000000000000033 +S3154001F6900000000000000000000000000000000023 +S3154001F6A00000000000000000000000000000000013 +S3154001F6B00000000000000000000000000000000003 +S3154001F6C000000000000000000000000000000000F3 +S3154001F6D000000000000000000000000000000000E3 +S3154001F6E000000000000000000000000000000000D3 +S3154001F6F000000000000000000000000000000000C3 +S3154001F70000000000000000000000000000000000B2 +S3154001F71000000000000000000000000000000000A2 +S3154001F7200000000000000000000000000000000092 +S3154001F7300000000000000000000000000000000082 +S3154001F7400000000000000000000000000000000072 +S3154001F7500000000000000000000000000000000062 +S3154001F7600000000000000000000000000000000052 +S3154001F7700000000000000000000000000000000042 +S3154001F7800000000000000000000000000000000032 +S3154001F7900000000000000000000000000000000022 +S3154001F7A00000000000000000000000000000000012 +S3154001F7B00000000000000000000000000000000002 +S3154001F7C000000000000000000000000000000000F2 +S3154001F7D000000000000000000000000000000000E2 +S3154001F7E000000000000000000000000000000000D2 +S3154001F7F000000000000000000000000000000000C2 +S3154001F80000000000000000000000000000000000B1 +S3154001F81000000000000000000000000000000000A1 +S3154001F8200000000000000000000000000000000091 +S3154001F8300000000000000000000000000000000081 +S3154001F8400000000000000000000000000000000071 +S3154001F8500000000000000000000000000000000061 +S3154001F8600000000000000000000000000000000051 +S3154001F8700000000000000000000000000000000041 +S3154001F8800000000000000000000000000000000031 +S3154001F8900000000000000000000000000000000021 +S3154001F8A00000000000000000000000000000000011 +S3154001F8B00000000000000000000000000000000001 +S3154001F8C000000000000000000000000000000000F1 +S3154001F8D000000000000000000000000000000000E1 +S3154001F8E000000000000000000000000000000000D1 +S3154001F8F000000000000000000000000000000000C1 +S3154001F90000000000000000000000000000000000B0 +S3154001F91000000000000000000000000000000000A0 +S3154001F9200000000000000000000000000000000090 +S3154001F9300000000000000000000000000000000080 +S3154001F9400000000000000000000000000000000070 +S3154001F9500000000000000000000000000000000060 +S3154001F9600000000000000000000000000000000050 +S3154001F9700000000000000000000000000000000040 +S3154001F9800000000000000000000000000000000030 +S3154001F9900000000000000000000000000000000020 +S3154001F9A00000000000000000000000000000000010 +S3154001F9B00000000000000000000000000000000000 +S3154001F9C000000000000000000000000000000000F0 +S3154001F9D000000000000000000000000000000000E0 +S3154001F9E000000000000000000000000000000000D0 +S3154001F9F000000000000000000000000000000000C0 +S3154001FA0000000000000000000000000000000000AF +S3154001FA10000000000000000000000000000000009F +S3154001FA20000000000000000000000000000000008F +S3154001FA30000000000000000000000000000000007F +S3154001FA40000000000000000000000000000000006F +S3154001FA50000000000000000000000000000000005F +S3154001FA60000000000000000000000000000000004F +S3154001FA70000000000000000000000000000000003F +S3154001FA80000000000000000000000000000000002F +S3154001FA90000000000000000000000000000000001F +S3154001FAA0000000000000000000000000000000000F +S3154001FAB000000000000000000000000000000000FF +S3154001FAC000000000000000000000000000000000EF +S3154001FAD000000000000000000000000000000000DF +S3154001FAE000000000000000000000000000000000CF +S3154001FAF000000000000000000000000000000000BF +S3154001FB0000000000000000000000000000000000AE +S3154001FB10000000000000000000000000000000009E +S3154001FB20000000000000000000000000000000008E +S3154001FB30000000000000000000000000000000007E +S3154001FB40000000000000000000000000000000006E +S3154001FB50000000000000000000000000000000005E +S3154001FB60000000000000000000000000000000004E +S3154001FB70000000000000000000000000000000003E +S3154001FB80000000000000000000000000000000002E +S3154001FB90000000000000000000000000000000001E +S3154001FBA0000000000000000000000000000000000E +S3154001FBB000000000000000000000000000000000FE +S3154001FBC000000000000000000000000000000000EE +S3154001FBD000000000000000000000000000000000DE +S3154001FBE000000000000000000000000000000000CE +S3154001FBF000000000000000000000000000000000BE +S3154001FC0000000000000000000000000000000000AD +S3154001FC10000000000000000000000000000000009D +S3154001FC20000000000000000000000000000000008D +S3154001FC30000000000000000000000000000000007D +S3154001FC40000000000000000000000000000000006D +S3154001FC50000000000000000000000000000000005D +S3154001FC60000000000000000000000000000000004D +S3154001FC70000000000000000000000000000000003D +S3154001FC80000000000000000000000000000000002D +S3154001FC90000000000000000000000000000000001D +S3154001FCA0000000000000000000000000000000000D +S3154001FCB000000000000000000000000000000000FD +S3154001FCC000000000000000000000000000000000ED +S3154001FCD000000000000000000000000000000000DD +S3154001FCE000000000000000000000000000000000CD +S3154001FCF000000000000000000000000000000000BD +S3154001FD0000000000000000000000000000000000AC +S3154001FD10000000000000000000000000000000009C +S3154001FD20000000000000000000000000000000008C +S3154001FD30000000000000000000000000000000007C +S3154001FD40000000000000000000000000000000006C +S3154001FD50000000000000000000000000000000005C +S3154001FD60000000000000000000000000000000004C +S3154001FD70000000000000000000000000000000003C +S3154001FD80000000000000000000000000000000002C +S3154001FD90000000000000000000000000000000001C +S3154001FDA0000000000000000000000000000000000C +S3154001FDB000000000000000000000000000000000FC +S3154001FDC000000000000000000000000000000000EC +S3154001FDD000000000000000000000000000000000DC +S3154001FDE000000000000000000000000000000000CC +S3154001FDF000000000000000000000000000000000BC +S3154001FE0000000000000000000000000000000000AB +S3154001FE10000000000000000000000000000000009B +S3154001FE20000000000000000000000000000000008B +S3154001FE30000000000000000000000000000000007B +S3154001FE40000000000000000000000000000000006B +S3154001FE50000000000000000000000000000000005B +S3154001FE60000000000000000000000000000000004B +S3154001FE70000000000000000000000000000000003B +S3154001FE80000000000000000000000000000000002B +S3154001FE90000000000000000000000000000000001B +S3154001FEA0000000000000000000000000000000000B +S3154001FEB000000000000000000000000000000000FB +S3154001FEC000000000000000000000000000000000EB +S3154001FED000000000000000000000000000000000DB +S3154001FEE000000000000000000000000000000000CB +S3154001FEF000000000000000000000000000000000BB +S3154001FF0000000000000000000000000000000000AA +S3154001FF10000000000000000000000000000000009A +S3154001FF20000000000000000000000000000000008A +S3154001FF30000000000000000000000000000000007A +S3154001FF40000000000000000000000000000000006A +S3154001FF50000000000000000000000000000000005A +S3154001FF60000000000000000000000000000000004A +S3154001FF70000000000000000000000000000000003A +S3154001FF80000000000000000000000000000000002A +S3154001FF90000000000000000000000000000000001A +S3154001FFA0000000000000000000000000000000000A +S3154001FFB000000000000000000000000000000000FA +S3154001FFC000000000000000000000000000000000EA +S3154001FFD000000000000000000000000000000000DA +S3154001FFE000000000000000000000000000000000CA +S3154001FFF000000000000000000000000000000000BA +S3154002000000000001000000000000000000000000A7 S315400200102000000000000000000000000000000078 S315400200200000000000000000000000000000000088 S315400200300000000000000000000000000000000078 @@ -7458,328 +8205,328 @@ S315400200A00000000000000000000000000000000008 S315400200B000000000000000000000000000000000F8 S315400200C000000000000000000000000000000000E8 S315400200D000000000000000000000000000000000D8 -S315400200E00000000100000000000000410000000086 -S315400200F0343074693934612B3079676979753035B2 -S315400201007968617035796934682B612B69697978C8 -S315400201106869346B35396A30713930356A6B6F7953 -S3154002012070686F70746A72686961346979302B34A9 -S315400201300000000000000000000000010000000076 -S3154002014040000000000000004008000000000000DF -S31540020150401800000000000080000000000000007F -S315400201600000000000000000BFF000000000000098 -S31540020170BF800000000000000000000000000000F8 -S315400201800000000000000000000000000000000027 -S315400201903FF00000000000004008000000000000A0 -S315400201A03FF0000040000000000000000000000098 -S315400201B03F800000404000000000000000000000B8 -S315400201C000000000000000000000000000000000E7 -S315400201D0000000000000000048000001000000008E -S315400201E0480000000000000046C000000000000079 -S315400201F03FF0000000000000400000000000000048 -S3154002020040080000000000003F800000000000009F -S31540020210529000000000000052900FF807F60DEBD6 -S3154002022052901FE03F61BAD052902FB8D4E30F48A4 -S3154002023052903F81F636B80C52904F3BD03C0A64FE -S3154002024052905EE68EFAD48B52906E825DA8FC2B5B -S3154002025052907E0F66AFED0752908D8DD3B1D9AADB -S3154002026052909CFDCD8ED0095290AC5F7C69A3C85A -S315400202705290BBB307ACAFDB5290CAF8960E710DE3 -S315400202805290DA304D95FB065290E95A539F492CCB -S315400202905290F876CCDF6CD952910785DD689A295F -S315400202A052911687A8AE14A35291257C5187FD0917 -S315400202B052913463FA37014E5291433EC467EFFB83 -S315400202C05291520CD1372FEB529160CE41341D746C -S315400202D052916F8334644DF952917E2BCA46BAB914 -S315400202E052918CC821D6D3E352919B58598F7C9F09 -S315400202F05291A9DC8F6DF1045291B854E0F496A064 -S315400203005291C6C16B2DB8705291D5224AAE2EE19A -S315400203105291E3779B97F4A85291F1C1799CA8FF39 -S31540020320529200000000000052920E33499A21A9CF -S3154002033052921C5B70D9F82452922A788FC76DE587 -S315400203405292388AC0059C28529246921AD4EA4959 -S315400203505292548EB9151E8552926280B347609668 -S315400203605292706821902E9A52927E451BB944C38E -S3154002037052928C17B9337834529299E01118857596 -S315400203805292A79E3A2CD2E65292B5524AE1278E13 -S315400203905292C2FC595456A75292D09C7B54E03E8C -S315400203A05292DE32C66287415292EBBF4FAFDD4B6D -S315400203B05292F9422C23C47E529306BB705AE7C32B -S315400203C05293142B30A929AB52932191811B0A4196 -S315400203D052932EEE7577041652933C42213EE0C963 -S315400203E05293498C97B10540529356CDEBC9B5E22B -S315400203F0529364063044530652937135779C8DCBA3 -S3154002040052937E5BD40F95A152938B79579D3EAB07 -S315400204105293988E1409212E5293A59A1ADBB257FB -S315400204205293B29D7D6356625293BF984CB56C7798 -S315400204305293CC8A99AF54535293D97474F76DF24E -S315400204405293E655EEFE13675293F32F17FE8D0431 -S31540020450529400000000000052940CC8B6D657C20F -S31540020460529419894C2329F052942641CF569572BB -S31540020470529432F24FB01C7A52943F9ADC3F79CE74 -S3154002048052944C3B83E57153529458D455549C1A1A -S31540020490529465655F122FF6529471EEAF76C2C6DC -S315400204A052947E7054AF098952948AEA5CBC935F37 -S315400204B05294975CD57680885294A3C7CC8A358A63 -S315400204C05294B02B4F7C0A885294BC876BA7F6ECA9 -S315400204D05294C8DC2E4239805294D529A457FCFC4A -S315400204E05294E16FDACFF9375294EDAEDE6B10FEDD -S315400204F05294F9E6BBC4ECB3529506177F5491BBAE -S3154002050052951241356CF6E052951E63EA3D95B01E -S3154002051052952A7FA9D2F8EA529536948017481006 -S31540020520529542A278D2D03652954EA99FAC8A0FA6 -S3154002053052955AAA002A9D5A529566A3A5B2E1B18E -S31540020540529572969B8B5CD852957E82ECDABE8D22 -S3154002055052958A68A4A8D9F352959647CDDF1CA531 -S315400205605295A220734903775295ADF29F948CFB24 -S315400205705295B9BE5D52A9DA5295C583B6F7AB0319 -S315400205805295D142B6DBADC55295DCFB673B05DFE2 -S315400205905295E8ADD236A58F5295F45A01D483B41A -S315400205A0529600000000000052960B9FD68A455490 -S315400205B0529617398F2AAA48529622CD337F0FE890 -S315400205C052962E5ACD0C3EBE529639E2653E421B9B -S315400205D0529645640568C1C3529650DFB6C759F470 -S315400205E052965C55827DF1D2529667C57199104BEF -S315400205F05296732F8D0E2F7752967E93DDBC0E73D5 -S31540020600529689F26C6B01D05296954B41CD4293EC -S315400206100BC0A4068F346C9B0BC093731C185447B3 -S315400206200BC083008E183C230BC072AE83A9704A5E -S315400206300BC0627C9CC166FF0BC0526A7ACE64A430 -S315400206400BC04277C0B04ADA0BC032A412B191A0B5 -S315400206500BC022EF168069500BC0135873280473DF -S315400206600BC003DFD10A08480BBFE909B3B04632D3 -S315400206700BBFCA8E711B8E880BBFAC4D32D4143061 -S315400206800BBF8E4553D34B1B0BBF7076318237EF70 -S315400206900BBF52DF2BADF99C0BBF357FA47C936C0D -S315400206A00BBF18570061F5EB0BBEFB64A61545154B -S315400206B00BBEDEA7FE865A2B0BBEC22074D37FBC6E -S315400206C00BBEA5CD763F66690BBE89AE722750F04A -S315400206D00BBE6DC2D9F976230BBE520A212B976CFB -S315400206E00BBE3683BD31CAA20BBE1B2F257575CAFA -S315400206F00BBE000BD34C7BAF0BBDE51941F097FE09 -S315400207000BBDCA56EE76E9D00BBDAFC457C7AB7325 -S315400207100BBD9560FE9616690BBD7B2C65587275AE -S315400207200BBD612610404EC00BBD474D8532E409D4 -S315400207300BBD2DA24BC19EDF0BBD1423ED22D10171 -S315400207400BBCFAD1F42A88E40BBCE1ABED438E80B4 -S315400207500BBCC8B1666884820BBCAFE1EF1D2D01AC -S315400207600BBC973D1867D0EF0BBC7EC274CAC962F8 -S315400207700BBC6671983E29FE0BBC4E4A18298BA9C2 -S315400207800BBC364B8B5DF6DB0BBC1E758A0FECBF82 -S315400207900BBC06C7ADD18E7E0BBBEF41918CE1F609 -S315400207A00BBBD7E2D17E33360BBBC0AB0B2E921BB3 -S315400207B00BBBA999DD6E6B650BBB92AEE8503CA7AD -S315400207C00BBB7BE9CD2362720BBB654A2E6F002CB5 -S315400207D00BBB4ECFAFED00FE0BBB3879F685313FF2 -S315400207E00BBB2248A8486FDE0BBB0C3B6C6BF73B3E -S315400207F00BBAF651EB44BCEE0BBAE08BCE42E7F1B4 -S315400208000BBACAE8BFED5CC00BBAB5686BDD5EDDFC -S315400208100BBAA00A7EBA475E0BBA8ACEA6354FEB12 -S315400208200BBA75B4910571DB0BBA60BBEEE358EFB8 -S315400208300BBA4BE4708569410BBA372DC79BD7FE7D -S315400208400BBA2297A6CCD68C0BBA0E21C1B0CFA03A -S315400208500BB9F9CBCCCEB6050BB9E5957D98648B31 -S315400208600BB9D17E8A670EE70BB9BD86AA77C3104C -S315400208700BB9A9AD95E7FAC40BB995F305B23CE5B8 -S315400208800BB98256B3AACE570BB96ED85A7C7206AA -S315400208900BB95B77B5A537C80BB94834817359CCC8 -S315400208A00BB9350E7B02284D0BB922056037032E54 -S315400208B00BB90F18EFBE614A0BB8FC48E908E522AE -S315400208C00BB8E9950C487EA90BB8D6FD1A6D99E886 -S315400208D00BB8C480D5245A340BB8B21FFED1E1BC42 -S315400208E00BB89FDA5A91A5260BB88DAFAC32CB0A1C -S315400208F00BB87B9FB83596F60BB869AA43C8DFE1B9 -S315400209000BB857CF14C791B50BB8460DF1B639C6D9 -S315400209100BB83466A1C09DF90BB822D8ECB75E6E0F -S315400209200BB811649B0DA16B0BB8000975D6C9595A -S315400209300BB7EEC746C434A50BB7DD9DD823075285 -S315400209400BB7CC8CF4D9FE010BB7BB9468674A50FF -S315400209500BB7AAB3FEDE78540BB799EB84E65D0C6F -S315400209600BB7893AC7B70D960BB778A19517DF0132 -S315400209700BB7681FBB5D6E910BB757B50967B24C93 -S315400209800BB747614EA011A20BB737245AF786140C -S315400209900BB726FDFEE4C3A00BB716EE0B6268E862 -S315400209A00BB706F451ED36CE0BB6F710A4824F8044 -S315400209B00BB6E742D59D7CB40BB6D78AB8377D0EC7 -S315400209C00BB6C7E81FC458720BB6B85AE031BB32F1 -S315400209D00BB6A8E2CDE557F90BB6997FBDBB50459C -S315400209E00BB68A318504A35C0BB67AF7F985A39BCD -S315400209F00BB66BD2F17471FF0BB65CC243777FCEF6 -S31540020A000BB64DC5C6A416420BB63EDD527CE4116A -S31540020A100BB63008BEF090CF0BB62147E45855EBE3 -S31540020A200BB6129A9B769D520BB60400BD75A584F1 -S31540020A300BB5F57A23E62B070BB5E706A8BE172CAE -S31540020A400BB5D8A6265733FF0BB5CA58776DE54B7B -S31540020A500BB5BC1D771FE6AB0BB5ADF500EB0E78BB -S31540020A600BB59FDEF0AC15940BB591DB229D63F27C -S31540020A700BB583E97355E1C10BB57609BFC7CD32D4 -S31540020A800BB5683BE53F94B80BB55A7FC162B5B624 -S31540020A900BB54CD5322E9F7F0BB53F3C15F79AA12D -S31540020AA00BB531B44B67B45A0BB5243DB17DAE306C -S31540020AB00BB516D8278BF18F0BB509838D37876710 -S31540020AC00BB4FC3FC27713AE0BB4EF0CA791D4BB69 -S31540020AD00BB4E1EA1D1EA6680BB4D4D8040308E59C -S31540020AE00BB4C7D63D722B370BB4BAE4AAEBF9481E -S31540020AF00BB4AE032E3C2D7E0BB4A131A97965C948 -S31540020B000BB4946FFF043C1C0BB487BE118662364D -S31540020B100BB47B1BC3F1C0BF0BB46E88F97F999BA4 -S31540020B200BB4620595AFAD730BB455917C476454D3 -S31540020B300BB4492C9150F96C0BB43CD6B91AA9C8DE -S31540020B400BB4308FD835E60B0BB42457D3768716C1 -S31540020B500BB4182E8FF205900BB40C13F2FEB43B75 -S31540020B600BB40007E232FD1F0BB3F40A4364A167DC -S31540020B700BB3E81AFCA7FBF00BB3DC39F44F468AF9 -S31540020B800BB3D06710E9E1C30BB3C4A239439F4FFD -S31540020B900BB3B8EB54640EF10BB3AD42498DCDDFC6 -S31540020BA00BB3A1A7003DD89B0BB39619602ADF2B46 -S31540020BB00BB38A9951449BB80BB37F26BBB32B79AF -S31540020BC00BB373C187D669EA0BB368699E454E4437 -S31540020BD00BB35D1EE7CD4B2D0BB351E14D71B09872 -S31540020BE00BB346B0B86B0FC30BB33B8D1226A15A5B -S31540020BF00BB330764445ADAC0BB3256C389CF6EB63 -S31540020C000BB31A6ED934256E0BB30F7E104535F5EC -S31540020C100BB30499C83BE9D60BB2F9C1EBB53923FC -S31540020C200BB2EEF6657EC6AA0BB2E437209655D5D0 -S31540020C300BB2D984082942630BB2CEDD0793F9E79A -S31540020C400BB2C4420A6177190BB2B9B2FC4ABEDA98 -S31540020C500BB2AF2FC9365EFF0BB2A4B85D37EEC1F9 -S31540020C600BB29A4CA48F90E30BB28FEC8BA9777997 -S31540020C700BB28597FF1D694D0BB27B4EEBAE48DD3D -S31540020C800BB271113E499CEE0BB266DEE4071AA81E -S31540020C900BB25CB7CA2831380BB2529BDE1796F7B5 -S31540020CA00BB2488B0D68D8030BB23E8545D7E65A40 -S31540020CB00BB2348A7548AB540BB22A9A89C69A97B4 -S31540020CC00BB220B5718446610BB216DB1ADAF53FD8 -S31540020CD00BB20D0B744A39100BB203466C77876C14 -S31540020CE00BB1F98BF22DD3490BB1EFDBF45D27FF44 -S31540020CF00BB1E636621A457E0BB1DC9B2A9E3DD588 -S31540020D000BB1D30A3D4613EE0BB1C98389925B817F -S31540020D100BB1C006FF26DA3F0BB1B6948DCA2A281C -S31540020D200BB1AD2C25655D0F0BB1A3CDB603A13D2D -S31540020D300BB19A792FD1E7410BB1912E831E88D2FE -S31540020D400BB187EDA058F0D60BB17EB6781144733D -S31540020D500BB17588FAF80D3A0BB16C6519DDE45D95 -S31540020D600BB1634AC5B31EEF0BB15A39EF877B28E5 -S31540020D700BB151328889CEAE0BB148348207B5DB0E -S31540020D800BB13F3FCD6D43FF0BB136545C44B49A31 -S31540020D900BB12D7220361D870BB124990B07221BEE -S31540020DA00BB11BC90E9AA72D0BB113021CF0880F6B -S31540020DB00BB10A4428254C650BB1018F2271DEE541 -S31540020DC00BB0F8E2FE2B44F40BB0F03FADC2572312 -S31540020DD00BB0E7A523C37A850BB0DF1352D65AD997 -S31540020DE00BB0D68A2DBDA58C0BB0CE09A756C589A8 -S31540020DF00BB0C591B2999FDB0BB0BD2242985115FB -S31540020E000BB0B4BB4A7EEB870BB0AC5CBD933636B7 -S31540020E1065300000653010006530200065303000D6 -S31540020E2065304000653050006530600065307000C6 -S31540020E3065308000653090006530A0006530B000B6 -S31540020E406530C0006530D0006530E0006530F000A6 -S31540020E506531000065311000653120006531300092 -S31540020E606531400065315000653160006531700082 -S31540020E7065318000653190006531A0006531B00072 -S31540020E806531C0006531D0006531E0006531F00062 -S31540020E90653200006532100065322000653230004E -S31540020EA0653240006532500065326000653270003E -S31540020EB065328000653290006532A0006532B0002E -S31540020EC06532C0006532D0006532E0006532F0001E -S31540020ED0653300006533100065332000653330000A -S31540020EE065334000653350006533600065337000FA -S31540020EF065338000653390006533A0006533B000EA -S31540020F006533C0006533D0006533E0006533F000D9 -S31540020F1065340000653410006534200065343000C5 -S31540020F2065344000653450006534600065347000B5 -S31540020F3065348000653490006534A0006534B000A5 -S31540020F406534C0006534D0006534E0006534F00095 -S31540020F506535000065351000653520006535300081 -S31540020F606535400065355000653560006535700071 -S31540020F7065358000653590006535A0006535B00061 -S31540020F806535C0006535D0006535E0006535F00051 -S31540020F90653600006536100065362000653630003D -S31540020FA0653640006536500065366000653670002D -S31540020FB065368000653690006536A0006536B0001D -S31540020FC06536C0006536D0006536E0006536F0000D -S31540020FD065370000653710006537200065373000F9 -S31540020FE065374000653750006537600065377000E9 -S31540020FF065378000653790006537A0006537B000D9 -S315400210006537C0006537D0006537E0006537F000C8 -S3154002101065380000653810006538200065383000B4 -S3154002102065384000653850006538600065387000A4 -S3154002103065388000653890006538A0006538B00094 -S315400210406538C0006538D0006538E0006538F00084 -S315400210506539000065391000653920006539300070 -S315400210606539400065395000653960006539700060 -S3154002107065398000653990006539A0006539B00050 -S315400210806539C0006539D0006539E0006539F00040 -S31540021090653A0000653A1000653A2000653A30002C -S315400210A0653A4000653A5000653A6000653A70001C -S315400210B0653A8000653A9000653AA000653AB0000C -S315400210C0653AC000653AD000653AE000653AF000FC -S315400210D0653B0000653B1000653B2000653B3000E8 -S315400210E0653B4000653B5000653B6000653B7000D8 -S315400210F0653B8000653B9000653BA000653BB000C8 -S31540021100653BC000653BD000653BE000653BF000B7 -S31540021110653C0000653C1000653C2000653C3000A3 -S31540021120653C4000653C5000653C6000653C700093 -S31540021130653C8000653C9000653CA000653CB00083 -S31540021140653CC000653CD000653CE000653CF00073 -S31540021150653D0000653D1000653D2000653D30005F -S31540021160653D4000653D5000653D6000653D70004F -S31540021170653D8000653D9000653DA000653DB0003F -S31540021180653DC000653DD000653DE000653DF0002F -S31540021190653E0000653E1000653E2000653E30001B -S315400211A0653E4000653E5000653E6000653E70000B -S315400211B0653E8000653E9000653EA000653EB000FB -S315400211C0653EC000653ED000653EE000653EF000EB -S315400211D0653F0000653F1000653F2000653F3000D7 -S315400211E0653F4000653F5000653F6000653F7000C7 -S315400211F0653F8000653F9000653FA000653FB000B7 -S31540021200653FC000653FD000653FE000653FF000A6 -S315400212104200000000000000400FFFFFFFFFFFFFFB -S315400212204200000000200000420FFFFFFFFFFFFFC9 -S3154002123040000000000000004210000000080000CC -S3154002124042000000000000013EB000000000000124 -S315400212504200000000000002420F484C0137D2080B -S31540021260C20E780F256007AB41BA079B7AF94BA0AD -S315400212704201484C0137D208420E780F256007AB2F -S315400212804217E02D934BECDA420F484C0137D20815 -S31540021290C21E780F256007ABC20DA7D249883D4EC4 -S315400212A0421F484C0137D208C20E780F256007AB61 -S315400212B042100C446E87CE32C03340AB371208918F -S315400212C00000000000000000C03340AB3712089116 -S315400212D00000000000000000C29E7A0F236007A6AD -S315400212E0C29E7A0F236007A66F3F484C0137D20849 -S315400212F06E2E780F256007AB6F3F485B3D3F64B863 -S315400213006F3F484C0137D208EE2E780F256007AB67 -S315400213106F3F483CC5303F587FE2F780AB123809F1 -S315400213207FD00000000000007FEAF780AB12380948 -S31540021330002000000000000080280000000000009D -S3154002134080100000000000007FEFF780AB123809E2 -S315400213507FEFF2010203A1117FF0000000000000BE -S315400213600010000000001000801FFFFFF203A111D1 -S315400213708000000000000000001ABCD000023809BC -S31540021380801ABCD0000001110000000000000000DD -S315400213907E71000000000000416010000000000065 -S315400213A07FE11100000000000178100000000000FB -S315400213B03E880000FFF0000000120C00C073F800E7 -S315400213C0C1EFFFFFC00020003FB3C75D224F280F89 -S315400213D0C1B3C75CFAC08192A12FFF8000001FFFF4 -S315400213E03EE0000000FF0000A01FFF8001FE18073C -S315400213F041CFFFFE0000002040303FFFFFFFFFFDD0 -S3154002140042103FFEFC00000D3FD000003FEFFFFFC1 -S31540021410BFD0000010000000BFB000004FF0003FF8 -S3154002142001701000000000003E8000011A0000001A -S3154002143000000000000000007E7C0000000000006A -S31540021440416A1000010000107FF000000000000019 -S3154002145075012034056AC000FA1009091000104FC0 -S31540021460FFF00000000000000100203040030200AF -S31540021470003020340000A00B0000000000000000F5 -S315400214807FE0001010200001400000000010200AFA -S315400214907FF00000000000003FEFDFF00FFC484AFB -S315400214A0BFF80000000000007FFF000000000000BF -S315400214B07FFFE000000000007FF400000000000013 -S315400214C07FC00000000000007FF80000000000001E -S315400214D07FF0000000000000FFF000000000000066 -S315400214E0FFF0000000000000800000000000000045 -S315400214F000000000000100000000000000000000A3 +S315400200E00000000100000001BF8000000000000087 +S315400200F0BFF0000000000000800000000000000089 +S315400201000000000000000000400000000000000067 +S3154002011040080000000000004018000000000000F7 +S315400201200000000000000000000000000000000087 +S3154002013000000000000000003FF000000000000048 +S3154002014040080000000000003FF0000040000000B0 +S3154002015000000000000000003F8000004040000018 +S315400201600000000000000000000000000000000047 +S315400201700000000000000000000000000000000037 +S315400201804800000100000000480000000000000096 +S3154002019046C00000000000003FF0000000000000E2 +S315400201A0400000000000000040080000000000007F +S315400201B03F80000000000000000000000001000037 +S315400201C08000000000000000FFF000000000000078 +S315400201D0FFF00000000000007FF000000000000079 +S315400201E07FF80000000000007FC000000000000011 +S315400201F07FF40000000000007FFFE00000000000E6 +S315400202007FFF000000000000BFF800000000000071 +S315400202103FEFDFF00FFC484A7E710000000000000D +S3154002022041601000000000007FE111000000000064 +S3154002023001781000000000003E880000FFF0000038 +S3154002024000120C00C073F800C1EFFFFFC00020008F +S315400202503FB3C75D224F280FC1B3C75CFAC0819234 +S31540020260A12FFF8000001FFF3EE0000000FF0000BC +S31540020270A01FFF8001FE180741CFFFFE00000020AD +S3154002028040303FFFFFFFFFFD42103FFEFC00000DE6 +S315400202903FD000003FEFFFFFBFD00000100000003C +S315400202A0BFB000004FF0003F017010000000000098 +S315400202B03E8000011A00000000000000000000001D +S315400202C07E7C000000000000416A10000100001020 +S315400202D07FF000000000000075012034056AC0006E +S315400202E0FA1009091000104FFFF00000000000004C +S315400202F00100203040030200003020340000A00BF1 +S3154002030000000000000000007FE000101020000105 +S31540020310400000000010200A7FF0000000000000AC +S315400203204200000000000000400FFFFFFFFFFFFFFA +S315400203304200000000200000420FFFFFFFFFFFFFC8 +S3154002034040000000000000004210000000080000CB +S3154002035042000000000000013EB000000000000123 +S315400203604200000000000002420F484C0137D2080A +S31540020370C20E780F256007AB41BA079B7AF94BA0AC +S315400203804201484C0137D208420E780F256007AB2E +S315400203904217E02D934BECDA420F484C0137D20814 +S315400203A0C21E780F256007ABC20DA7D249883D4EC3 +S315400203B0421F484C0137D208C20E780F256007AB60 +S315400203C042100C446E87CE32C03340AB371208918E +S315400203D00000000000000000C03340AB3712089115 +S315400203E00000000000000000C29E7A0F236007A6AC +S315400203F0C29E7A0F236007A66F3F484C0137D20848 +S315400204006E2E780F256007AB6F3F485B3D3F64B861 +S315400204106F3F484C0137D208EE2E780F256007AB66 +S315400204206F3F483CC5303F587FE2F780AB123809F0 +S315400204307FD00000000000007FEAF780AB12380947 +S31540020440002000000000000080280000000000009C +S3154002045080100000000000007FEFF780AB123809E1 +S315400204607FEFF2010203A1117FF0000000000000BD +S315400204700010000000001000801FFFFFF203A111D0 +S315400204808000000000000000001ABCD000023809BB +S31540020490801ABCD0000001110000000000000000DC +S315400204A06530000065301000653020006530300050 +S315400204B06530400065305000653060006530700040 +S315400204C065308000653090006530A0006530B00030 +S315400204D06530C0006530D0006530E0006530F00020 +S315400204E0653100006531100065312000653130000C +S315400204F065314000653150006531600065317000FC +S3154002050065318000653190006531A0006531B000EB +S315400205106531C0006531D0006531E0006531F000DB +S3154002052065320000653210006532200065323000C7 +S3154002053065324000653250006532600065327000B7 +S3154002054065328000653290006532A0006532B000A7 +S315400205506532C0006532D0006532E0006532F00097 +S315400205606533000065331000653320006533300083 +S315400205706533400065335000653360006533700073 +S3154002058065338000653390006533A0006533B00063 +S315400205906533C0006533D0006533E0006533F00053 +S315400205A0653400006534100065342000653430003F +S315400205B0653440006534500065346000653470002F +S315400205C065348000653490006534A0006534B0001F +S315400205D06534C0006534D0006534E0006534F0000F +S315400205E065350000653510006535200065353000FB +S315400205F065354000653550006535600065357000EB +S3154002060065358000653590006535A0006535B000DA +S315400206106535C0006535D0006535E0006535F000CA +S3154002062065360000653610006536200065363000B6 +S3154002063065364000653650006536600065367000A6 +S3154002064065368000653690006536A0006536B00096 +S315400206506536C0006536D0006536E0006536F00086 +S315400206606537000065371000653720006537300072 +S315400206706537400065375000653760006537700062 +S3154002068065378000653790006537A0006537B00052 +S315400206906537C0006537D0006537E0006537F00042 +S315400206A0653800006538100065382000653830002E +S315400206B0653840006538500065386000653870001E +S315400206C065388000653890006538A0006538B0000E +S315400206D06538C0006538D0006538E0006538F000FE +S315400206E065390000653910006539200065393000EA +S315400206F065394000653950006539600065397000DA +S3154002070065398000653990006539A0006539B000C9 +S315400207106539C0006539D0006539E0006539F000B9 +S31540020720653A0000653A1000653A2000653A3000A5 +S31540020730653A4000653A5000653A6000653A700095 +S31540020740653A8000653A9000653AA000653AB00085 +S31540020750653AC000653AD000653AE000653AF00075 +S31540020760653B0000653B1000653B2000653B300061 +S31540020770653B4000653B5000653B6000653B700051 +S31540020780653B8000653B9000653BA000653BB00041 +S31540020790653BC000653BD000653BE000653BF00031 +S315400207A0653C0000653C1000653C2000653C30001D +S315400207B0653C4000653C5000653C6000653C70000D +S315400207C0653C8000653C9000653CA000653CB000FD +S315400207D0653CC000653CD000653CE000653CF000ED +S315400207E0653D0000653D1000653D2000653D3000D9 +S315400207F0653D4000653D5000653D6000653D7000C9 +S31540020800653D8000653D9000653DA000653DB000B8 +S31540020810653DC000653DD000653DE000653DF000A8 +S31540020820653E0000653E1000653E2000653E300094 +S31540020830653E4000653E5000653E6000653E700084 +S31540020840653E8000653E9000653EA000653EB00074 +S31540020850653EC000653ED000653EE000653EF00064 +S31540020860653F0000653F1000653F2000653F300050 +S31540020870653F4000653F5000653F6000653F700040 +S31540020880653F8000653F9000653FA000653FB00030 +S31540020890653FC000653FD000653FE000653FF00020 +S315400208A00BC0A4068F346C9B0BC093731C18544721 +S315400208B00BC083008E183C230BC072AE83A9704ACC +S315400208C00BC0627C9CC166FF0BC0526A7ACE64A49E +S315400208D00BC04277C0B04ADA0BC032A412B191A023 +S315400208E00BC022EF168069500BC01358732804734D +S315400208F00BC003DFD10A08480BBFE909B3B0463241 +S315400209000BBFCA8E711B8E880BBFAC4D32D41430CE +S315400209100BBF8E4553D34B1B0BBF7076318237EFDD +S315400209200BBF52DF2BADF99C0BBF357FA47C936C7A +S315400209300BBF18570061F5EB0BBEFB64A6154515B8 +S315400209400BBEDEA7FE865A2B0BBEC22074D37FBCDB +S315400209500BBEA5CD763F66690BBE89AE722750F0B7 +S315400209600BBE6DC2D9F976230BBE520A212B976C68 +S315400209700BBE3683BD31CAA20BBE1B2F257575CA67 +S315400209800BBE000BD34C7BAF0BBDE51941F097FE76 +S315400209900BBDCA56EE76E9D00BBDAFC457C7AB7393 +S315400209A00BBD9560FE9616690BBD7B2C655872751C +S315400209B00BBD612610404EC00BBD474D8532E40942 +S315400209C00BBD2DA24BC19EDF0BBD1423ED22D101DF +S315400209D00BBCFAD1F42A88E40BBCE1ABED438E8022 +S315400209E00BBCC8B1666884820BBCAFE1EF1D2D011A +S315400209F00BBC973D1867D0EF0BBC7EC274CAC96266 +S31540020A000BBC6671983E29FE0BBC4E4A18298BA92F +S31540020A100BBC364B8B5DF6DB0BBC1E758A0FECBFEF +S31540020A200BBC06C7ADD18E7E0BBBEF41918CE1F676 +S31540020A300BBBD7E2D17E33360BBBC0AB0B2E921B20 +S31540020A400BBBA999DD6E6B650BBB92AEE8503CA71A +S31540020A500BBB7BE9CD2362720BBB654A2E6F002C22 +S31540020A600BBB4ECFAFED00FE0BBB3879F685313F5F +S31540020A700BBB2248A8486FDE0BBB0C3B6C6BF73BAB +S31540020A800BBAF651EB44BCEE0BBAE08BCE42E7F121 +S31540020A900BBACAE8BFED5CC00BBAB5686BDD5EDD6A +S31540020AA00BBAA00A7EBA475E0BBA8ACEA6354FEB80 +S31540020AB00BBA75B4910571DB0BBA60BBEEE358EF26 +S31540020AC00BBA4BE4708569410BBA372DC79BD7FEEB +S31540020AD00BBA2297A6CCD68C0BBA0E21C1B0CFA0A8 +S31540020AE00BB9F9CBCCCEB6050BB9E5957D98648B9F +S31540020AF00BB9D17E8A670EE70BB9BD86AA77C310BA +S31540020B000BB9A9AD95E7FAC40BB995F305B23CE525 +S31540020B100BB98256B3AACE570BB96ED85A7C720617 +S31540020B200BB95B77B5A537C80BB94834817359CC35 +S31540020B300BB9350E7B02284D0BB922056037032EC1 +S31540020B400BB90F18EFBE614A0BB8FC48E908E5221B +S31540020B500BB8E9950C487EA90BB8D6FD1A6D99E8F3 +S31540020B600BB8C480D5245A340BB8B21FFED1E1BCAF +S31540020B700BB89FDA5A91A5260BB88DAFAC32CB0A89 +S31540020B800BB87B9FB83596F60BB869AA43C8DFE126 +S31540020B900BB857CF14C791B50BB8460DF1B639C647 +S31540020BA00BB83466A1C09DF90BB822D8ECB75E6E7D +S31540020BB00BB811649B0DA16B0BB8000975D6C959C8 +S31540020BC00BB7EEC746C434A50BB7DD9DD8230752F3 +S31540020BD00BB7CC8CF4D9FE010BB7BB9468674A506D +S31540020BE00BB7AAB3FEDE78540BB799EB84E65D0CDD +S31540020BF00BB7893AC7B70D960BB778A19517DF01A0 +S31540020C000BB7681FBB5D6E910BB757B50967B24C00 +S31540020C100BB747614EA011A20BB737245AF7861479 +S31540020C200BB726FDFEE4C3A00BB716EE0B6268E8CF +S31540020C300BB706F451ED36CE0BB6F710A4824F80B1 +S31540020C400BB6E742D59D7CB40BB6D78AB8377D0E34 +S31540020C500BB6C7E81FC458720BB6B85AE031BB325E +S31540020C600BB6A8E2CDE557F90BB6997FBDBB504509 +S31540020C700BB68A318504A35C0BB67AF7F985A39B3A +S31540020C800BB66BD2F17471FF0BB65CC243777FCE63 +S31540020C900BB64DC5C6A416420BB63EDD527CE411D8 +S31540020CA00BB63008BEF090CF0BB62147E45855EB51 +S31540020CB00BB6129A9B769D520BB60400BD75A5845F +S31540020CC00BB5F57A23E62B070BB5E706A8BE172C1C +S31540020CD00BB5D8A6265733FF0BB5CA58776DE54BE9 +S31540020CE00BB5BC1D771FE6AB0BB5ADF500EB0E7829 +S31540020CF00BB59FDEF0AC15940BB591DB229D63F2EA +S31540020D000BB583E97355E1C10BB57609BFC7CD3241 +S31540020D100BB5683BE53F94B80BB55A7FC162B5B691 +S31540020D200BB54CD5322E9F7F0BB53F3C15F79AA19A +S31540020D300BB531B44B67B45A0BB5243DB17DAE30D9 +S31540020D400BB516D8278BF18F0BB509838D3787677D +S31540020D500BB4FC3FC27713AE0BB4EF0CA791D4BBD6 +S31540020D600BB4E1EA1D1EA6680BB4D4D8040308E509 +S31540020D700BB4C7D63D722B370BB4BAE4AAEBF9488B +S31540020D800BB4AE032E3C2D7E0BB4A131A97965C9B5 +S31540020D900BB4946FFF043C1C0BB487BE11866236BB +S31540020DA00BB47B1BC3F1C0BF0BB46E88F97F999B12 +S31540020DB00BB4620595AFAD730BB455917C47645441 +S31540020DC00BB4492C9150F96C0BB43CD6B91AA9C84C +S31540020DD00BB4308FD835E60B0BB42457D37687162F +S31540020DE00BB4182E8FF205900BB40C13F2FEB43BE3 +S31540020DF00BB40007E232FD1F0BB3F40A4364A1674A +S31540020E000BB3E81AFCA7FBF00BB3DC39F44F468A66 +S31540020E100BB3D06710E9E1C30BB3C4A239439F4F6A +S31540020E200BB3B8EB54640EF10BB3AD42498DCDDF33 +S31540020E300BB3A1A7003DD89B0BB39619602ADF2BB3 +S31540020E400BB38A9951449BB80BB37F26BBB32B791C +S31540020E500BB373C187D669EA0BB368699E454E44A4 +S31540020E600BB35D1EE7CD4B2D0BB351E14D71B098DF +S31540020E700BB346B0B86B0FC30BB33B8D1226A15AC8 +S31540020E800BB330764445ADAC0BB3256C389CF6EBD0 +S31540020E900BB31A6ED934256E0BB30F7E104535F55A +S31540020EA00BB30499C83BE9D60BB2F9C1EBB539236A +S31540020EB00BB2EEF6657EC6AA0BB2E437209655D53E +S31540020EC00BB2D984082942630BB2CEDD0793F9E708 +S31540020ED00BB2C4420A6177190BB2B9B2FC4ABEDA06 +S31540020EE00BB2AF2FC9365EFF0BB2A4B85D37EEC167 +S31540020EF00BB29A4CA48F90E30BB28FEC8BA9777905 +S31540020F000BB28597FF1D694D0BB27B4EEBAE48DDAA +S31540020F100BB271113E499CEE0BB266DEE4071AA88B +S31540020F200BB25CB7CA2831380BB2529BDE1796F722 +S31540020F300BB2488B0D68D8030BB23E8545D7E65AAD +S31540020F400BB2348A7548AB540BB22A9A89C69A9721 +S31540020F500BB220B5718446610BB216DB1ADAF53F45 +S31540020F600BB20D0B744A39100BB203466C77876C81 +S31540020F700BB1F98BF22DD3490BB1EFDBF45D27FFB1 +S31540020F800BB1E636621A457E0BB1DC9B2A9E3DD5F5 +S31540020F900BB1D30A3D4613EE0BB1C98389925B81ED +S31540020FA00BB1C006FF26DA3F0BB1B6948DCA2A288A +S31540020FB00BB1AD2C25655D0F0BB1A3CDB603A13D9B +S31540020FC00BB19A792FD1E7410BB1912E831E88D26C +S31540020FD00BB187EDA058F0D60BB17EB678114473AB +S31540020FE00BB17588FAF80D3A0BB16C6519DDE45D03 +S31540020FF00BB1634AC5B31EEF0BB15A39EF877B2853 +S315400210000BB151328889CEAE0BB148348207B5DB7B +S315400210100BB13F3FCD6D43FF0BB136545C44B49A9E +S315400210200BB12D7220361D870BB124990B07221B5B +S315400210300BB11BC90E9AA72D0BB113021CF0880FD8 +S315400210400BB10A4428254C650BB1018F2271DEE5AE +S315400210500BB0F8E2FE2B44F40BB0F03FADC257237F +S315400210600BB0E7A523C37A850BB0DF1352D65AD904 +S315400210700BB0D68A2DBDA58C0BB0CE09A756C58915 +S315400210800BB0C591B2999FDB0BB0BD224298511568 +S315400210900BB0B4BB4A7EEB870BB0AC5CBD93363625 +S315400210A0529000000000000052900FF807F60DEB38 +S315400210B052901FE03F61BAD052902FB8D4E30F4806 +S315400210C052903F81F636B80C52904F3BD03C0A6460 +S315400210D052905EE68EFAD48B52906E825DA8FC2BBD +S315400210E052907E0F66AFED0752908D8DD3B1D9AA3D +S315400210F052909CFDCD8ED0095290AC5F7C69A3C8BC +S315400211005290BBB307ACAFDB5290CAF8960E710D44 +S315400211105290DA304D95FB065290E95A539F492C2C +S315400211205290F876CCDF6CD952910785DD689A29C0 +S3154002113052911687A8AE14A35291257C5187FD0978 +S3154002114052913463FA37014E5291433EC467EFFBE4 +S315400211505291520CD1372FEB529160CE41341D74CD +S3154002116052916F8334644DF952917E2BCA46BAB975 +S3154002117052918CC821D6D3E352919B58598F7C9F6A +S315400211805291A9DC8F6DF1045291B854E0F496A0C5 +S315400211905291C6C16B2DB8705291D5224AAE2EE1FC +S315400211A05291E3779B97F4A85291F1C1799CA8FF9B +S315400211B0529200000000000052920E33499A21A931 +S315400211C052921C5B70D9F82452922A788FC76DE5E9 +S315400211D05292388AC0059C28529246921AD4EA49BB +S315400211E05292548EB9151E8552926280B3476096CA +S315400211F05292706821902E9A52927E451BB944C3F0 +S3154002120052928C17B9337834529299E011188575F7 +S315400212105292A79E3A2CD2E65292B5524AE1278E74 +S315400212205292C2FC595456A75292D09C7B54E03EED +S315400212305292DE32C66287415292EBBF4FAFDD4BCE +S315400212405292F9422C23C47E529306BB705AE7C38C +S315400212505293142B30A929AB52932191811B0A41F7 +S3154002126052932EEE7577041652933C42213EE0C9C4 +S315400212705293498C97B10540529356CDEBC9B5E28C +S31540021280529364063044530652937135779C8DCB04 +S3154002129052937E5BD40F95A152938B79579D3EAB69 +S315400212A05293988E1409212E5293A59A1ADBB2575D +S315400212B05293B29D7D6356625293BF984CB56C77FA +S315400212C05293CC8A99AF54535293D97474F76DF2B0 +S315400212D05293E655EEFE13675293F32F17FE8D0493 +S315400212E0529400000000000052940CC8B6D657C271 +S315400212F0529419894C2329F052942641CF5695721D +S31540021300529432F24FB01C7A52943F9ADC3F79CED5 +S3154002131052944C3B83E57153529458D455549C1A7B +S31540021320529465655F122FF6529471EEAF76C2C63D +S3154002133052947E7054AF098952948AEA5CBC935F98 +S315400213405294975CD57680885294A3C7CC8A358AC4 +S315400213505294B02B4F7C0A885294BC876BA7F6EC0A +S315400213605294C8DC2E4239805294D529A457FCFCAB +S315400213705294E16FDACFF9375294EDAEDE6B10FE3E +S315400213805294F9E6BBC4ECB3529506177F5491BB0F +S3154002139052951241356CF6E052951E63EA3D95B080 +S315400213A052952A7FA9D2F8EA529536948017481068 +S315400213B0529542A278D2D03652954EA99FAC8A0F08 +S315400213C052955AAA002A9D5A529566A3A5B2E1B1F0 +S315400213D0529572969B8B5CD852957E82ECDABE8D84 +S315400213E052958A68A4A8D9F352959647CDDF1CA593 +S315400213F05295A220734903775295ADF29F948CFB86 +S315400214005295B9BE5D52A9DA5295C583B6F7AB037A +S315400214105295D142B6DBADC55295DCFB673B05DF43 +S315400214205295E8ADD236A58F5295F45A01D483B47B +S31540021430529600000000000052960B9FD68A4554F1 +S31540021440529617398F2AAA48529622CD337F0FE8F1 +S3154002145052962E5ACD0C3EBE529639E2653E421BFC +S31540021460529645640568C1C3529650DFB6C759F4D1 +S3154002147052965C55827DF1D2529667C57199104B50 +S315400214805296732F8D0E2F7752967E93DDBC0E7336 +S31540021490529689F26C6B01D05296954B41CD42934E +S315400214A000000000000000000000000000000000F4 +S315400214B000000000000000000000000000000000E4 +S315400214C000000000000000000000000000000000D4 +S315400214D000000000000000000000000000000000C4 +S315400214E000000000000000000000000000000000B4 +S315400214F000000000000000000000000000000000A4 S315400215000000000000000000000000000000000093 S315400215100000000000000000000000000000000083 S315400215200000000000000000000000000000000073 @@ -9492,8 +10239,8 @@ S31540027FC00000000000000000000000000000000069 S31540027FD00000000000000000000000000000000059 S31540027FE00000000000000000000000000000000049 S31540027FF00000000000000000000000000000000039 -S315400280000000003F0000000C0000003F000000128C -S31540028010000000FF00000018000000000000000001 +S315400280000000000000000000000000000000000028 +S315400280100000000000000000000000000000000018 S315400280200000000000000000000000000000000008 S3154002803000000000000000000000000000000000F8 S3154002804000000000000000000000000000000000E8 @@ -16404,8 +17151,8 @@ S31540042FC000000000000000000000000000000000B7 S31540042FD000000000000000000000000000000000A7 S31540042FE00000000000000000000000000000000097 S31540042FF00000000000000000000000000000000087 -S315400430000000000000000000000000000000000076 -S315400430100000000000000000000000000000000066 +S3154004300000000018000000FF000000120000003F0E +S315400430100000000C0000003F00000000000000001B S315400430200000000000000000000000000000000056 S315400430300000000000000000000000000000000046 S315400430400000000000000000000000000000000036 @@ -17684,125 +18431,125 @@ S31540047FC00000000000000000000000000000000067 S31540047FD00000000000000000000000000000000057 S31540047FE00000000000000000000000000000000047 S31540047FF00000000000000000000000000000000037 -S315400480000000000000000000000000000000000026 -S315400480100000000000000000000000000000000016 -S315400480200000000000000000000000000000000006 -S3154004803000000000000000000000000000000000F6 -S3154004804000000000000000000000000000000000E6 -S3154004805000000000000000000000000000000000D6 -S3154004806000000000000000000000000000000000C6 -S3154004807000000000000000000000000000000000B6 -S3154004808000000000000000000000000000000000A6 -S315400480900000000000000000000000000000000096 -S315400480A00000000000000000000000000000000086 -S315400480B00000000000000000000000000000000076 -S315400480C00000000000000000000000000000000066 -S315400480D00000000000000000000000000000000056 -S315400480E00000000000000000000000000000000046 -S315400480F00000000000000000000000000000000036 -S315400481000000000000000000000000000000000025 -S315400481100000000000000000000000000000000015 -S315400481200000000000000000000000000000000005 -S3154004813000000000000000000000000000000000F5 -S3154004814000000000000000000000000000000000E5 -S3154004815000000000000000000000000000000000D5 -S3154004816000000000000000000000000000000000C5 -S3154004817000000000000000000000000000000000B5 -S3154004818000000000000000000000000000000000A5 -S315400481900000000000000000000000000000000095 -S315400481A00000000000000000000000000000000085 -S315400481B00000000000000000000000000000000075 -S315400481C00000000000000000000000000000000065 -S315400481D00000000000000000000000000000000055 -S315400481E00000000000000000000000000000000045 +S31540048000000000020000000300000000000000031E +S31540048010FFFFFFFEFFFFFFFF00000002FFFFFFFD23 +S315400480200000000000000000000000010000000005 +S3154004803000000000FFFFFFFF0000000000000001F9 +S31540048040FFFFFFFFFFFFFFFFFFFFFFFF00000001F1 +S31540048050FFFFFFFFFFFFFFFE0000000300000000DC +S31540048060FFFFFFFEFFFFFFFD0000000000000009C8 +S315400480700000000700000001FFFFFFF700000002B8 +S31540048080FFFFFFFCFFFFFFF800000002FFFFFFFCBD +S31540048090FFFFFFF8FFFFFFFC00000002000000089E +S315400480A0FFFFFFFCFFFFFFFEFFFFFFF8FFFFFFF8A8 +S315400480B000000001FFFFFFF8FFFFFFF7000000008C +S315400480C00000000B00000002000000050000002F25 +S315400480D0000000020000001700003039000002A72B +S315400480E000000012FFFF076C0000004DFFFFFCC6B6 +S315400480F000003039FFFFFD59FFFFFFEEFFFF076C1D +S31540048100FFFFFFB30000033A00000091FFFFE84180 +S3154004811000000000FFFFFD84FFFED02F000000009A +S315400481200000F6FA006E49810000000000000000DD +S3154004813000000000000000000000000200000003F0 +S3154004814000000000000000000000000100000000E4 +S31540048150FFFFFFFE0000000355555554FFFFFFFE89 +S315400481600000000355555554700FFFFE00000007EC +S315400481701002492400000000000000000000000036 +S315400481800000000200000003000000060000000298 +S31540048190FFFFFFFDFFFFFFFA0000000000000001A3 +S315400481A00000000000000000FFFFFFFF0000000089 +S315400481B000000001FFFFFFFFFFFFFFFFFFFFFFFF80 +S315400481C000000001FFFFFFFFFFFFFFFE000000036A +S315400481D0FFFFFFFAFFFFFFFEFFFFFFFD0000000663 +S315400481E0000000000000000000000009FFFFF0004E S315400481F00000000000000000000000000000000035 -S315400482000000000000000000000000000000000024 +S31540048200000000000000000100000002000000031E S315400482100000000000000000000000000000000014 -S315400482200000000000000000000000000000000004 -S3154004823000000000000000000000000000000000F4 -S3154004824000000000000000000000000000000000E4 -S3154004825000000000000000000000000000000000D4 -S3154004826000000000000000000000000000000000C4 -S3154004827000000000000000000000000000000000B4 -S3154004828000000000000000000000000000000000A4 -S315400482900000000000000000000000000000000094 -S315400482A00000000000000000000000000000000084 -S315400482B00000000000000000000000000000000074 -S315400482C00000000000000000000000000000000064 -S315400482D00000000000000000000000000000000054 -S315400482E00000000000000000000000000000000044 -S315400482F00000000000000000000000000000000034 -S315400483000000000000000000000000000000000023 -S315400483100000000000000000000000000000000013 -S315400483200000000000000000000000000000000003 -S3154004833000000000000000000000000000000000F3 -S3154004834000000000000000000000000000000000E3 -S3154004835000000000000000000000000000000000D3 -S3154004836000000000000000000000000000000000C3 -S3154004837000000000000000000000000000000000B3 -S3154004838000000000000000000000000000000000A3 -S315400483900000000000000000000000000000000093 -S315400483A00000000000000000000000000000000083 -S315400483B00000000000000000000000000000000073 -S315400483C00000000000000000000000000000000063 -S315400483D00000000000000000000000000000000053 -S315400483E00000000000000000000000000000000043 -S315400483F00000000000000000000000000000000033 -S315400484000000000000000000000000000000000022 -S315400484100000000000000000000000000000000012 -S315400484200000000000000000000000000000000002 -S3154004843000000000000000000000000000000000F2 -S3154004844000000000000000000000000000000000E2 -S3154004845000000000000000000000000000000000D2 -S3154004846000000000000000000000000000000000C2 -S3154004847000000000000000000000000000000000B2 -S3154004848000000000000000000000000000000000A2 -S315400484900000000000000000000000000000000092 -S315400484A00000000000000000000000000000000082 -S315400484B00000000000000000000000000000000072 -S315400484C00000000000000000000000000000000062 -S315400484D00000000000000000000000000000000052 -S315400484E00000000000000000000000000000000042 -S315400484F00000000000000000000000000000000032 -S315400485000000000000000000000000000000000021 -S315400485100000000000000000000000000000000011 -S315400485200000000000000000000000000000000001 -S3154004853000000000000000000000000000000000F1 -S3154004854000000000000000000000000000000000E1 -S3154004855000000000000000000000000000000000D1 -S3154004856000000000000000000000000000000000C1 -S3154004857000000000000000000000000000000000B1 -S3154004858000000000000000000000000000000000A1 -S315400485900000000000000000000000000000000091 -S315400485A00000000000000000000000000000000081 -S315400485B00000000000000000000000000000000071 -S315400485C00000000000000000000000000000000061 -S315400485D00000000000000000000000000000000051 -S315400485E00000000000000000000000000000000041 -S315400485F00000000000000000000000000000000031 -S315400486000000000000000000000000000000000020 -S315400486100000000000000000000000000000000010 -S315400486200000000000000000000000000000000000 -S3154004863000000000000000000000000000000000F0 -S3154004864000000000000000000000000000000000E0 +S315400482200000000000000000400482204004822038 +S31540048230400482284004822840048230400482302C +S3154004824040048238400482384004824040048240DC +S31540048250400482484004824840048250400482508C +S31540048260400482584004825840048260400482603C +S3154004827040048268400482684004827040048270EC +S31540048280400482784004827840048280400482809C +S31540048290400482884004828840048290400482904C +S315400482A04004829840048298400482A0400482A0FC +S315400482B0400482A8400482A8400482B0400482B0AC +S315400482C0400482B8400482B8400482C0400482C05C +S315400482D0400482C8400482C8400482D0400482D00C +S315400482E0400482D8400482D8400482E0400482E0BC +S315400482F0400482E8400482E8400482F0400482F06C +S31540048300400482F8400482F8400483004004830019 +S3154004831040048308400483084004831040048310C7 +S315400483204004831840048318400483204004832077 +S315400483304004832840048328400483304004833027 +S3154004834040048338400483384004834040048340D7 +S315400483504004834840048348400483504004835087 +S315400483604004835840048358400483604004836037 +S3154004837040048368400483684004837040048370E7 +S315400483804004837840048378400483804004838097 +S315400483904004838840048388400483904004839047 +S315400483A04004839840048398400483A0400483A0F7 +S315400483B0400483A8400483A8400483B0400483B0A7 +S315400483C0400483B8400483B8400483C0400483C057 +S315400483D0400483C8400483C8400483D0400483D007 +S315400483E0400483D8400483D8400483E0400483E0B7 +S315400483F0400483E8400483E8400483F0400483F067 +S31540048400400483F8400483F8400484004004840014 +S3154004841040048408400484084004841040048410C2 +S315400484204004841840048418400484204004842072 +S315400484304004842840048428400484304004843022 +S3154004844040048438400484384004844040048440D2 +S315400484504004844840048448400484504004845082 +S315400484604004845840048458400484604004846032 +S3154004847040048468400484684004847040048470E2 +S315400484804004847840048478400484804004848092 +S315400484904004848840048488400484904004849042 +S315400484A04004849840048498400484A0400484A0F2 +S315400484B0400484A8400484A8400484B0400484B0A2 +S315400484C0400484B8400484B8400484C0400484C052 +S315400484D0400484C8400484C8400484D0400484D002 +S315400484E0400484D8400484D8400484E0400484E0B2 +S315400484F0400484E8400484E8400484F0400484F062 +S31540048500400484F8400484F840048500400485000F +S3154004851040048508400485084004851040048510BD +S31540048520400485184004851840048520400485206D +S31540048530400485284004852840048530400485301D +S3154004854040048538400485384004854040048540CD +S31540048550400485484004854840048550400485507D +S31540048560400485584004855840048560400485602D +S3154004857040048568400485684004857040048570DD +S31540048580400485784004857840048580400485808D +S31540048590400485884004858840048590400485903D +S315400485A04004859840048598400485A0400485A0ED +S315400485B0400485A8400485A8400485B0400485B09D +S315400485C0400485B8400485B8400485C0400485C04D +S315400485D0400485C8400485C8400485D0400485D0FD +S315400485E0400485D8400485D8400485E0400485E0AD +S315400485F0400485E8400485E8400485F0400485F05D +S31540048600400485F8400485F840048600400486000A +S3154004861040048608400486084004861040048610B8 +S31540048620400486184004861800020000FFFFFFFF3E +S3154004863000000000400486300000000000000000F6 +S3154004864000000000000000020000000000000000DE S3154004865000000000000000000000000000000000D0 S3154004866000000000000000000000000000000000C0 S3154004867000000000000000000000000000000000B0 S3154004868000000000000000000000000000000000A0 S315400486900000000000000000000000000000000090 -S315400486A00000000000000000000000000000000080 -S315400486B00000000000000000000000000000000070 +S315400486A00000000000000000400486B00000000006 +S315400486B0000000004004899C40048A6840048B34CE S315400486C00000000000000000000000000000000060 S315400486D00000000000000000000000000000000050 -S315400486E00000000000000000000000000000000040 +S315400486E0000000004001D9D800000000000000004E S315400486F00000000000000000000000000000000030 S31540048700000000000000000000000000000000001F S31540048710000000000000000000000000000000000F S3154004872000000000000000000000000000000000FF S3154004873000000000000000000000000000000000EF S3154004874000000000000000000000000000000000DF -S3154004875000000000000000000000000000000000CF -S3154004876000000000000000000000000000000000BF +S3154004875000000000000000000000000000000001CE +S31540048760330EABCD1234E66DDEEC0005000B000093 S3154004877000000000000000000000000000000000AF S31540048780000000000000000000000000000000009F S31540048790000000000000000000000000000000008F @@ -17879,2055 +18626,7 @@ S31540048BF0000000000000000000000000000000002B S31540048C00000000000000000000000000000000001A S31540048C10000000000000000000000000000000000A S31540048C2000000000000000000000000000000000FA -S31540048C3000000000000000000000000000000000EA -S31540048C4000000000000000000000000000000000DA -S31540048C5000000000000000000000000000000000CA -S31540048C6000000000000000000000000000000000BA -S31540048C7000000000000000000000000000000000AA -S31540048C80000000000000000000000000000000009A -S31540048C90000000000000000000000000000000008A -S31540048CA0000000000000000000000000000000007A -S31540048CB0000000000000000000000000000000006A -S31540048CC0000000000000000000000000000000005A -S31540048CD0000000000000000000000000000000004A -S31540048CE0000000000000000000000000000000003A -S31540048CF0000000000000000000000000000000002A -S31540048D000000000000000000000000000000000019 -S31540048D100000000000000000000000000000000009 -S31540048D2000000000000000000000000000000000F9 -S31540048D3000000000000000000000000000000000E9 -S31540048D4000000000000000000000000000000000D9 -S31540048D5000000000000000000000000000000000C9 -S31540048D6000000000000000000000000000000000B9 -S31540048D7000000000000000000000000000000000A9 -S31540048D800000000000000000000000000000000099 -S31540048D900000000000000000000000000000000089 -S31540048DA00000000000000000000000000000000079 -S31540048DB00000000000000000000000000000000069 -S31540048DC00000000000000000000000000000000059 -S31540048DD00000000000000000000000000000000049 -S31540048DE00000000000000000000000000000000039 -S31540048DF00000000000000000000000000000000029 -S31540048E000000000000000000000000000000000018 -S31540048E100000000000000000000000000000000008 -S31540048E2000000000000000000000000000000000F8 -S31540048E3000000000000000000000000000000000E8 -S31540048E4000000000000000000000000000000000D8 -S31540048E5000000000000000000000000000000000C8 -S31540048E6000000000000000000000000000000000B8 -S31540048E7000000000000000000000000000000000A8 -S31540048E800000000000000000000000000000000098 -S31540048E900000000000000000000000000000000088 -S31540048EA00000000000000000000000000000000078 -S31540048EB00000000000000000000000000000000068 -S31540048EC00000000000000000000000000000000058 -S31540048ED00000000000000000000000000000000048 -S31540048EE00000000000000000000000000000000038 -S31540048EF00000000000000000000000000000000028 -S31540048F000000000000000000000000000000000017 -S31540048F100000000000000000000000000000000007 -S31540048F2000000000000000000000000000000000F7 -S31540048F3000000000000000000000000000000000E7 -S31540048F4000000000000000000000000000000000D7 -S31540048F5000000000000000000000000000000000C7 -S31540048F6000000000000000000000000000000000B7 -S31540048F7000000000000000000000000000000000A7 -S31540048F800000000000000000000000000000000097 -S31540048F900000000000000000000000000000000087 -S31540048FA00000000000000000000000000000000077 -S31540048FB00000000000000000000000000000000067 -S31540048FC00000000000000000000000000000000057 -S31540048FD00000000000000000000000000000000047 -S31540048FE00000000000000000000000000000000037 -S31540048FF00000000000000000000000000000000027 -S315400490000000000000000000000000000000000016 -S315400490100000000000000000000000000000000006 -S3154004902000000000000000000000000000000000F6 -S3154004903000000000000000000000000000000000E6 -S3154004904000000000000000000000000000000000D6 -S3154004905000000000000000000000000000000000C6 -S3154004906000000000000000000000000000000000B6 -S3154004907000000000000000000000000000000000A6 -S315400490800000000000000000000000000000000096 -S315400490900000000000000000000000000000000086 -S315400490A00000000000000000000000000000000076 -S315400490B00000000000000000000000000000000066 -S315400490C00000000000000000000000000000000056 -S315400490D00000000000000000000000000000000046 -S315400490E00000000000000000000000000000000036 -S315400490F00000000000000000000000000000000026 -S315400491000000000000000000000000000000000015 -S315400491100000000000000000000000000000000005 -S3154004912000000000000000000000000000000000F5 -S3154004913000000000000000000000000000000000E5 -S3154004914000000000000000000000000000000000D5 -S3154004915000000000000000000000000000000000C5 -S3154004916000000000000000000000000000000000B5 -S3154004917000000000000000000000000000000000A5 -S315400491800000000000000000000000000000000095 -S315400491900000000000000000000000000000000085 -S315400491A00000000000000000000000000000000075 -S315400491B00000000000000000000000000000000065 -S315400491C00000000000000000000000000000000055 -S315400491D00000000000000000000000000000000045 -S315400491E00000000000000000000000000000000035 -S315400491F00000000000000000000000000000000025 -S315400492000000000000000000000000000000000014 -S315400492100000000000000000000000000000000004 -S3154004922000000000000000000000000000000000F4 -S3154004923000000000000000000000000000000000E4 -S3154004924000000000000000000000000000000000D4 -S3154004925000000000000000000000000000000000C4 -S3154004926000000000000000000000000000000000B4 -S3154004927000000000000000000000000000000000A4 -S315400492800000000000000000000000000000000094 -S315400492900000000000000000000000000000000084 -S315400492A00000000000000000000000000000000074 -S315400492B00000000000000000000000000000000064 -S315400492C00000000000000000000000000000000054 -S315400492D00000000000000000000000000000000044 -S315400492E00000000000000000000000000000000034 -S315400492F00000000000000000000000000000000024 -S315400493000000000000000000000000000000000013 -S315400493100000000000000000000000000000000003 -S3154004932000000000000000000000000000000000F3 -S3154004933000000000000000000000000000000000E3 -S3154004934000000000000000000000000000000000D3 -S3154004935000000000000000000000000000000000C3 -S3154004936000000000000000000000000000000000B3 -S3154004937000000000000000000000000000000000A3 -S315400493800000000000000000000000000000000093 -S315400493900000000000000000000000000000000083 -S315400493A00000000000000000000000000000000073 -S315400493B00000000000000000000000000000000063 -S315400493C00000000000000000000000000000000053 -S315400493D00000000000000000000000000000000043 -S315400493E00000000000000000000000000000000033 -S315400493F00000000000000000000000000000000023 -S315400494000000000000000000000000000000000012 -S315400494100000000000000000000000000000000002 -S3154004942000000000000000000000000000000000F2 -S3154004943000000000000000000000000000000000E2 -S3154004944000000000000000000000000000000000D2 -S3154004945000000000000000000000000000000000C2 -S3154004946000000000000000000000000000000000B2 -S3154004947000000000000000000000000000000000A2 -S315400494800000000000000000000000000000000092 -S315400494900000000000000000000000000000000082 -S315400494A00000000000000000000000000000000072 -S315400494B00000000000000000000000000000000062 -S315400494C00000000000000000000000000000000052 -S315400494D00000000000000000000000000000000042 -S315400494E00000000000000000000000000000000032 -S315400494F00000000000000000000000000000000022 -S315400495000000000000000000000000000000000011 -S315400495100000000000000000000000000000000001 -S3154004952000000000000000000000000000000000F1 -S3154004953000000000000000000000000000000000E1 -S3154004954000000000000000000000000000000000D1 -S3154004955000000000000000000000000000000000C1 -S3154004956000000000000000000000000000000000B1 -S3154004957000000000000000000000000000000000A1 -S315400495800000000000000000000000000000000091 -S315400495900000000000000000000000000000000081 -S315400495A00000000000000000000000000000000071 -S315400495B00000000000000000000000000000000061 -S315400495C00000000000000000000000000000000051 -S315400495D00000000000000000000000000000000041 -S315400495E00000000000000000000000000000000031 -S315400495F00000000000000000000000000000000021 -S315400496000000000000000000000000000000000010 -S315400496100000000000000000000000000000000000 -S3154004962000000000000000000000000000000000F0 -S3154004963000000000000000000000000000000000E0 -S3154004964000000000000000000000000000000000D0 -S3154004965000000000000000000000000000000000C0 -S3154004966000000000000000000000000000000000B0 -S3154004967000000000000000000000000000000000A0 -S315400496800000000000000000000000000000000090 -S315400496900000000000000000000000000000000080 -S315400496A00000000000000000000000000000000070 -S315400496B00000000000000000000000000000000060 -S315400496C00000000000000000000000000000000050 -S315400496D00000000000000000000000000000000040 -S315400496E00000000000000000000000000000000030 -S315400496F00000000000000000000000000000000020 -S31540049700000000000000000000000000000000000F -S3154004971000000000000000000000000000000000FF -S3154004972000000000000000000000000000000000EF -S3154004973000000000000000000000000000000000DF -S3154004974000000000000000000000000000000000CF -S3154004975000000000000000000000000000000000BF -S3154004976000000000000000000000000000000000AF -S31540049770000000000000000000000000000000009F -S31540049780000000000000000000000000000000008F -S31540049790000000000000000000000000000000007F -S315400497A0000000000000000000000000000000006F -S315400497B0000000000000000000000000000000005F -S315400497C0000000000000000000000000000000004F -S315400497D0000000000000000000000000000000003F -S315400497E0000000000000000000000000000000002F -S315400497F0000000000000000000000000000000001F -S31540049800000000000000000000000000000000000E -S3154004981000000000000000000000000000000000FE -S3154004982000000000000000000000000000000000EE -S3154004983000000000000000000000000000000000DE -S3154004984000000000000000000000000000000000CE -S3154004985000000000000000000000000000000000BE -S3154004986000000000000000000000000000000000AE -S31540049870000000000000000000000000000000009E -S31540049880000000000000000000000000000000008E -S31540049890000000000000000000000000000000007E -S315400498A0000000000000000000000000000000006E -S315400498B0000000000000000000000000000000005E -S315400498C0000000000000000000000000000000004E -S315400498D0000000000000000000000000000000003E -S315400498E0000000000000000000000000000000002E -S315400498F0000000000000000000000000000000001E -S31540049900000000000000000000000000000000000D -S3154004991000000000000000000000000000000000FD -S3154004992000000000000000000000000000000000ED -S3154004993000000000000000000000000000000000DD -S3154004994000000000000000000000000000000000CD -S3154004995000000000000000000000000000000000BD -S3154004996000000000000000000000000000000000AD -S31540049970000000000000000000000000000000009D -S31540049980000000000000000000000000000000008D -S31540049990000000000000000000000000000000007D -S315400499A0000000000000000000000000000000006D -S315400499B0000000000000000000000000000000005D -S315400499C0000000000000000000000000000000004D -S315400499D0000000000000000000000000000000003D -S315400499E0000000000000000000000000000000002D -S315400499F0000000000000000000000000000000001D -S31540049A00000000000000000000000000000000000C -S31540049A1000000000000000000000000000000000FC -S31540049A2000000000000000000000000000000000EC -S31540049A3000000000000000000000000000000000DC -S31540049A4000000000000000000000000000000000CC -S31540049A5000000000000000000000000000000000BC -S31540049A6000000000000000000000000000000000AC -S31540049A70000000000000000000000000000000009C -S31540049A80000000000000000000000000000000008C -S31540049A90000000000000000000000000000000007C -S31540049AA0000000000000000000000000000000006C -S31540049AB0000000000000000000000000000000005C -S31540049AC0000000000000000000000000000000004C -S31540049AD0000000000000000000000000000000003C -S31540049AE0000000000000000000000000000000002C -S31540049AF0000000000000000000000000000000001C -S31540049B00000000000000000000000000000000000B -S31540049B1000000000000000000000000000000000FB -S31540049B2000000000000000000000000000000000EB -S31540049B3000000000000000000000000000000000DB -S31540049B4000000000000000000000000000000000CB -S31540049B5000000000000000000000000000000000BB -S31540049B6000000000000000000000000000000000AB -S31540049B70000000000000000000000000000000009B -S31540049B80000000000000000000000000000000008B -S31540049B90000000000000000000000000000000007B -S31540049BA0000000000000000000000000000000006B -S31540049BB0000000000000000000000000000000005B -S31540049BC0000000000000000000000000000000004B -S31540049BD0000000000000000000000000000000003B -S31540049BE0000000000000000000000000000000002B -S31540049BF0000000000000000000000000000000001B -S31540049C00000000000000000000000000000000000A -S31540049C1000000000000000000000000000000000FA -S31540049C2000000000000000000000000000000000EA -S31540049C3000000000000000000000000000000000DA -S31540049C4000000000000000000000000000000000CA -S31540049C5000000000000000000000000000000000BA -S31540049C6000000000000000000000000000000000AA -S31540049C70000000000000000000000000000000009A -S31540049C80000000000000000000000000000000008A -S31540049C90000000000000000000000000000000007A -S31540049CA0000000000000000000000000000000006A -S31540049CB0000000000000000000000000000000005A -S31540049CC0000000000000000000000000000000004A -S31540049CD0000000000000000000000000000000003A -S31540049CE0000000000000000000000000000000002A -S31540049CF0000000000000000000000000000000001A -S31540049D000000000000000000000000000000000009 -S31540049D1000000000000000000000000000000000F9 -S31540049D2000000000000000000000000000000000E9 -S31540049D3000000000000000000000000000000000D9 -S31540049D4000000000000000000000000000000000C9 -S31540049D5000000000000000000000000000000000B9 -S31540049D6000000000000000000000000000000000A9 -S31540049D700000000000000000000000000000000099 -S31540049D800000000000000000000000000000000089 -S31540049D900000000000000000000000000000000079 -S31540049DA00000000000000000000000000000000069 -S31540049DB00000000000000000000000000000000059 -S31540049DC00000000000000000000000000000000049 -S31540049DD00000000000000000000000000000000039 -S31540049DE00000000000000000000000000000000029 -S31540049DF00000000000000000000000000000000019 -S31540049E000000000000000000000000000000000008 -S31540049E1000000000000000000000000000000000F8 -S31540049E2000000000000000000000000000000000E8 -S31540049E3000000000000000000000000000000000D8 -S31540049E4000000000000000000000000000000000C8 -S31540049E5000000000000000000000000000000000B8 -S31540049E6000000000000000000000000000000000A8 -S31540049E700000000000000000000000000000000098 -S31540049E800000000000000000000000000000000088 -S31540049E900000000000000000000000000000000078 -S31540049EA00000000000000000000000000000000068 -S31540049EB00000000000000000000000000000000058 -S31540049EC00000000000000000000000000000000048 -S31540049ED00000000000000000000000000000000038 -S31540049EE00000000000000000000000000000000028 -S31540049EF00000000000000000000000000000000018 -S31540049F000000000000000000000000000000000007 -S31540049F1000000000000000000000000000000000F7 -S31540049F2000000000000000000000000000000000E7 -S31540049F3000000000000000000000000000000000D7 -S31540049F4000000000000000000000000000000000C7 -S31540049F5000000000000000000000000000000000B7 -S31540049F6000000000000000000000000000000000A7 -S31540049F700000000000000000000000000000000097 -S31540049F800000000000000000000000000000000087 -S31540049F900000000000000000000000000000000077 -S31540049FA00000000000000000000000000000000067 -S31540049FB00000000000000000000000000000000057 -S31540049FC00000000000000000000000000000000047 -S31540049FD00000000000000000000000000000000037 -S31540049FE00000000000000000000000000000000027 -S31540049FF00000000000000000000000000000000017 -S3154004A0000000000000000000000000000000000006 -S3154004A01000000000000000000000000000000000F6 -S3154004A02000000000000000000000000000000000E6 -S3154004A03000000000000000000000000000000000D6 -S3154004A04000000000000000000000000000000000C6 -S3154004A05000000000000000000000000000000000B6 -S3154004A06000000000000000000000000000000000A6 -S3154004A0700000000000000000000000000000000096 -S3154004A0800000000000000000000000000000000086 -S3154004A0900000000000000000000000000000000076 -S3154004A0A00000000000000000000000000000000066 -S3154004A0B00000000000000000000000000000000056 -S3154004A0C00000000000000000000000000000000046 -S3154004A0D00000000000000000000000000000000036 -S3154004A0E00000000000000000000000000000000026 -S3154004A0F00000000000000000000000000000000016 -S3154004A1000000000000000000000000000000000005 -S3154004A11000000000000000000000000000000000F5 -S3154004A12000000000000000000000000000000000E5 -S3154004A13000000000000000000000000000000000D5 -S3154004A14000000000000000000000000000000000C5 -S3154004A15000000000000000000000000000000000B5 -S3154004A16000000000000000000000000000000000A5 -S3154004A1700000000000000000000000000000000095 -S3154004A1800000000000000000000000000000000085 -S3154004A1900000000000000000000000000000000075 -S3154004A1A00000000000000000000000000000000065 -S3154004A1B00000000000000000000000000000000055 -S3154004A1C00000000000000000000000000000000045 -S3154004A1D00000000000000000000000000000000035 -S3154004A1E00000000000000000000000000000000025 -S3154004A1F00000000000000000000000000000000015 -S3154004A2000000000000000000000000000000000004 -S3154004A21000000000000000000000000000000000F4 -S3154004A22000000000000000000000000000000000E4 -S3154004A23000000000000000000000000000000000D4 -S3154004A24000000000000000000000000000000000C4 -S3154004A25000000000000000000000000000000000B4 -S3154004A26000000000000000000000000000000000A4 -S3154004A2700000000000000000000000000000000094 -S3154004A2800000000000000000000000000000000084 -S3154004A2900000000000000000000000000000000074 -S3154004A2A00000000000000000000000000000000064 -S3154004A2B00000000000000000000000000000000054 -S3154004A2C00000000000000000000000000000000044 -S3154004A2D00000000000000000000000000000000034 -S3154004A2E00000000000000000000000000000000024 -S3154004A2F00000000000000000000000000000000014 -S3154004A3000000000000000000000000000000000003 -S3154004A31000000000000000000000000000000000F3 -S3154004A32000000000000000000000000000000000E3 -S3154004A33000000000000000000000000000000000D3 -S3154004A34000000000000000000000000000000000C3 -S3154004A35000000000000000000000000000000000B3 -S3154004A36000000000000000000000000000000000A3 -S3154004A3700000000000000000000000000000000093 -S3154004A3800000000000000000000000000000000083 -S3154004A3900000000000000000000000000000000073 -S3154004A3A00000000000000000000000000000000063 -S3154004A3B00000000000000000000000000000000053 -S3154004A3C00000000000000000000000000000000043 -S3154004A3D00000000000000000000000000000000033 -S3154004A3E00000000000000000000000000000000023 -S3154004A3F00000000000000000000000000000000013 -S3154004A4000000000000000000000000000000000002 -S3154004A41000000000000000000000000000000000F2 -S3154004A42000000000000000000000000000000000E2 -S3154004A43000000000000000000000000000000000D2 -S3154004A44000000000000000000000000000000000C2 -S3154004A45000000000000000000000000000000000B2 -S3154004A46000000000000000000000000000000000A2 -S3154004A4700000000000000000000000000000000092 -S3154004A4800000000000000000000000000000000082 -S3154004A4900000000000000000000000000000000072 -S3154004A4A00000000000000000000000000000000062 -S3154004A4B00000000000000000000000000000000052 -S3154004A4C00000000000000000000000000000000042 -S3154004A4D00000000000000000000000000000000032 -S3154004A4E00000000000000000000000000000000022 -S3154004A4F00000000000000000000000000000000012 -S3154004A5000000000000000000000000000000000001 -S3154004A51000000000000000000000000000000000F1 -S3154004A52000000000000000000000000000000000E1 -S3154004A53000000000000000000000000000000000D1 -S3154004A54000000000000000000000000000000000C1 -S3154004A55000000000000000000000000000000000B1 -S3154004A56000000000000000000000000000000000A1 -S3154004A5700000000000000000000000000000000091 -S3154004A5800000000000000000000000000000000081 -S3154004A5900000000000000000000000000000000071 -S3154004A5A00000000000000000000000000000000061 -S3154004A5B00000000000000000000000000000000051 -S3154004A5C00000000000000000000000000000000041 -S3154004A5D00000000000000000000000000000000031 -S3154004A5E00000000000000000000000000000000021 -S3154004A5F00000000000000000000000000000000011 -S3154004A6000000000000000000000000000000000000 -S3154004A61000000000000000000000000000000000F0 -S3154004A62000000000000000000000000000000000E0 -S3154004A63000000000000000000000000000000000D0 -S3154004A64000000000000000000000000000000000C0 -S3154004A65000000000000000000000000000000000B0 -S3154004A66000000000000000000000000000000000A0 -S3154004A6700000000000000000000000000000000090 -S3154004A6800000000000000000000000000000000080 -S3154004A6900000000000000000000000000000000070 -S3154004A6A00000000000000000000000000000000060 -S3154004A6B00000000000000000000000000000000050 -S3154004A6C00000000000000000000000000000000040 -S3154004A6D00000000000000000000000000000000030 -S3154004A6E00000000000000000000000000000000020 -S3154004A6F00000000000000000000000000000000010 -S3154004A70000000000000000000000000000000000FF -S3154004A71000000000000000000000000000000000EF -S3154004A72000000000000000000000000000000000DF -S3154004A73000000000000000000000000000000000CF -S3154004A74000000000000000000000000000000000BF -S3154004A75000000000000000000000000000000000AF -S3154004A760000000000000000000000000000000009F -S3154004A770000000000000000000000000000000008F -S3154004A780000000000000000000000000000000007F -S3154004A790000000000000000000000000000000006F -S3154004A7A0000000000000000000000000000000005F -S3154004A7B0000000000000000000000000000000004F -S3154004A7C0000000000000000000000000000000003F -S3154004A7D0000000000000000000000000000000002F -S3154004A7E0000000000000000000000000000000001F -S3154004A7F0000000000000000000000000000000000F -S3154004A80000000000000000000000000000000000FE -S3154004A81000000000000000000000000000000000EE -S3154004A82000000000000000000000000000000000DE -S3154004A83000000000000000000000000000000000CE -S3154004A84000000000000000000000000000000000BE -S3154004A85000000000000000000000000000000000AE -S3154004A860000000000000000000000000000000009E -S3154004A870000000000000000000000000000000008E -S3154004A880000000000000000000000000000000007E -S3154004A890000000000000000000000000000000006E -S3154004A8A0000000000000000000000000000000005E -S3154004A8B0000000000000000000000000000000004E -S3154004A8C0000000000000000000000000000000003E -S3154004A8D0000000000000000000000000000000002E -S3154004A8E0000000000000000000000000000000001E -S3154004A8F0000000000000000000000000000000000E -S3154004A90000000000000000000000000000000000FD -S3154004A91000000000000000000000000000000000ED -S3154004A92000000000000000000000000000000000DD -S3154004A93000000000000000000000000000000000CD -S3154004A94000000000000000000000000000000000BD -S3154004A95000000000000000000000000000000000AD -S3154004A960000000000000000000000000000000009D -S3154004A970000000000000000000000000000000008D -S3154004A980000000000000000000000000000000007D -S3154004A990000000000000000000000000000000006D -S3154004A9A0000000000000000000000000000000005D -S3154004A9B0000000000000000000000000000000004D -S3154004A9C0000000000000000000000000000000003D -S3154004A9D0000000000000000000000000000000002D -S3154004A9E0000000000000000000000000000000001D -S3154004A9F0000000000000000000000000000000000D -S3154004AA0000000000000000000000000000000000FC -S3154004AA1000000000000000000000000000000000EC -S3154004AA2000000000000000000000000000000000DC -S3154004AA3000000000000000000000000000000000CC -S3154004AA4000000000000000000000000000000000BC -S3154004AA5000000000000000000000000000000000AC -S3154004AA60000000000000000000000000000000009C -S3154004AA70000000000000000000000000000000008C -S3154004AA80000000000000000000000000000000007C -S3154004AA90000000000000000000000000000000006C -S3154004AAA0000000000000000000000000000000005C -S3154004AAB0000000000000000000000000000000004C -S3154004AAC0000000000000000000000000000000003C -S3154004AAD0000000000000000000000000000000002C -S3154004AAE0000000000000000000000000000000001C -S3154004AAF0000000000000000000000000000000000C -S3154004AB0000000000000000000000000000000000FB -S3154004AB1000000000000000000000000000000000EB -S3154004AB2000000000000000000000000000000000DB -S3154004AB3000000000000000000000000000000000CB -S3154004AB4000000000000000000000000000000000BB -S3154004AB5000000000000000000000000000000000AB -S3154004AB60000000000000000000000000000000009B -S3154004AB70000000000000000000000000000000008B -S3154004AB80000000000000000000000000000000007B -S3154004AB90000000000000000000000000000000006B -S3154004ABA0000000000000000000000000000000005B -S3154004ABB0000000000000000000000000000000004B -S3154004ABC0000000000000000000000000000000003B -S3154004ABD0000000000000000000000000000000002B -S3154004ABE0000000000000000000000000000000001B -S3154004ABF0000000000000000000000000000000000B -S3154004AC0000000000000000000000000000000000FA -S3154004AC1000000000000000000000000000000000EA -S3154004AC2000000000000000000000000000000000DA -S3154004AC3000000000000000000000000000000000CA -S3154004AC4000000000000000000000000000000000BA -S3154004AC5000000000000000000000000000000000AA -S3154004AC60000000000000000000000000000000009A -S3154004AC70000000000000000000000000000000008A -S3154004AC80000000000000000000000000000000007A -S3154004AC90000000000000000000000000000000006A -S3154004ACA0000000000000000000000000000000005A -S3154004ACB0000000000000000000000000000000004A -S3154004ACC0000000000000000000000000000000003A -S3154004ACD0000000000000000000000000000000002A -S3154004ACE0000000000000000000000000000000001A -S3154004ACF0000000000000000000000000000000000A -S3154004AD0000000000000000000000000000000000F9 -S3154004AD1000000000000000000000000000000000E9 -S3154004AD2000000000000000000000000000000000D9 -S3154004AD3000000000000000000000000000000000C9 -S3154004AD4000000000000000000000000000000000B9 -S3154004AD5000000000000000000000000000000000A9 -S3154004AD600000000000000000000000000000000099 -S3154004AD700000000000000000000000000000000089 -S3154004AD800000000000000000000000000000000079 -S3154004AD900000000000000000000000000000000069 -S3154004ADA00000000000000000000000000000000059 -S3154004ADB00000000000000000000000000000000049 -S3154004ADC00000000000000000000000000000000039 -S3154004ADD00000000000000000000000000000000029 -S3154004ADE00000000000000000000000000000000019 -S3154004ADF00000000000000000000000000000000009 -S3154004AE0000000000000000000000000000000000F8 -S3154004AE1000000000000000000000000000000000E8 -S3154004AE2000000000000000000000000000000000D8 -S3154004AE3000000000000000000000000000000000C8 -S3154004AE4000000000000000000000000000000000B8 -S3154004AE5000000000000000000000000000000000A8 -S3154004AE600000000000000000000000000000000098 -S3154004AE700000000000000000000000000000000088 -S3154004AE800000000000000000000000000000000078 -S3154004AE900000000000000000000000000000000068 -S3154004AEA00000000000000000000000000000000058 -S3154004AEB00000000000000000000000000000000048 -S3154004AEC00000000000000000000000000000000038 -S3154004AED00000000000000000000000000000000028 -S3154004AEE00000000000000000000000000000000018 -S3154004AEF00000000000000000000000000000000008 -S3154004AF0000000000000000000000000000000000F7 -S3154004AF1000000000000000000000000000000000E7 -S3154004AF2000000000000000000000000000000000D7 -S3154004AF3000000000000000000000000000000000C7 -S3154004AF4000000000000000000000000000000000B7 -S3154004AF5000000000000000000000000000000000A7 -S3154004AF600000000000000000000000000000000097 -S3154004AF700000000000000000000000000000000087 -S3154004AF800000000000000000000000000000000077 -S3154004AF900000000000000000000000000000000067 -S3154004AFA00000000000000000000000000000000057 -S3154004AFB00000000000000000000000000000000047 -S3154004AFC00000000000000000000000000000000037 -S3154004AFD00000000000000000000000000000000027 -S3154004AFE00000000000000000000000000000000017 -S3154004AFF00000000000000000000000000000000007 -S3154004B00000000000000000000000000000000000F6 -S3154004B01000000000000000000000000000000000E6 -S3154004B02000000000000000000000000000000000D6 -S3154004B03000000000000000000000000000000000C6 -S3154004B04000000000000000000000000000000000B6 -S3154004B05000000000000000000000000000000000A6 -S3154004B0600000000000000000000000000000000096 -S3154004B0700000000000000000000000000000000086 -S3154004B0800000000000000000000000000000000076 -S3154004B0900000000000000000000000000000000066 -S3154004B0A00000000000000000000000000000000056 -S3154004B0B00000000000000000000000000000000046 -S3154004B0C00000000000000000000000000000000036 -S3154004B0D00000000000000000000000000000000026 -S3154004B0E00000000000000000000000000000000016 -S3154004B0F00000000000000000000000000000000006 -S3154004B10000000000000000000000000000000000F5 -S3154004B11000000000000000000000000000000000E5 -S3154004B12000000000000000000000000000000000D5 -S3154004B13000000000000000000000000000000000C5 -S3154004B14000000000000000000000000000000000B5 -S3154004B15000000000000000000000000000000000A5 -S3154004B1600000000000000000000000000000000095 -S3154004B1700000000000000000000000000000000085 -S3154004B1800000000000000000000000000000000075 -S3154004B1900000000000000000000000000000000065 -S3154004B1A00000000000000000000000000000000055 -S3154004B1B00000000000000000000000000000000045 -S3154004B1C00000000000000000000000000000000035 -S3154004B1D00000000000000000000000000000000025 -S3154004B1E00000000000000000000000000000000015 -S3154004B1F00000000000000000000000000000000005 -S3154004B20000000000000000000000000000000000F4 -S3154004B21000000000000000000000000000000000E4 -S3154004B22000000000000000000000000000000000D4 -S3154004B23000000000000000000000000000000000C4 -S3154004B24000000000000000000000000000000000B4 -S3154004B25000000000000000000000000000000000A4 -S3154004B2600000000000000000000000000000000094 -S3154004B2700000000000000000000000000000000084 -S3154004B2800000000000000000000000000000000074 -S3154004B2900000000000000000000000000000000064 -S3154004B2A00000000000000000000000000000000054 -S3154004B2B00000000000000000000000000000000044 -S3154004B2C00000000000000000000000000000000034 -S3154004B2D00000000000000000000000000000000024 -S3154004B2E00000000000000000000000000000000014 -S3154004B2F00000000000000000000000000000000004 -S3154004B30000000000000000000000000000000000F3 -S3154004B31000000000000000000000000000000000E3 -S3154004B32000000000000000000000000000000000D3 -S3154004B33000000000000000000000000000000000C3 -S3154004B34000000000000000000000000000000000B3 -S3154004B35000000000000000000000000000000000A3 -S3154004B3600000000000000000000000000000000093 -S3154004B3700000000000000000000000000000000083 -S3154004B3800000000000000000000000000000000073 -S3154004B3900000000000000000000000000000000063 -S3154004B3A00000000000000000000000000000000053 -S3154004B3B00000000000000000000000000000000043 -S3154004B3C00000000000000000000000000000000033 -S3154004B3D00000000000000000000000000000000023 -S3154004B3E00000000000000000000000000000000013 -S3154004B3F00000000000000000000000000000000003 -S3154004B40000000000000000000000000000000000F2 -S3154004B41000000000000000000000000000000000E2 -S3154004B42000000000000000000000000000000000D2 -S3154004B43000000000000000000000000000000000C2 -S3154004B44000000000000000000000000000000000B2 -S3154004B45000000000000000000000000000000000A2 -S3154004B4600000000000000000000000000000000092 -S3154004B4700000000000000000000000000000000082 -S3154004B4800000000000000000000000000000000072 -S3154004B4900000000000000000000000000000000062 -S3154004B4A00000000000000000000000000000000052 -S3154004B4B00000000000000000000000000000000042 -S3154004B4C00000000000000000000000000000000032 -S3154004B4D00000000000000000000000000000000022 -S3154004B4E00000000000000000000000000000000012 -S3154004B4F00000000000000000000000000000000002 -S3154004B50000000000000000000000000000000000F1 -S3154004B51000000000000000000000000000000000E1 -S3154004B52000000000000000000000000000000000D1 -S3154004B53000000000000000000000000000000000C1 -S3154004B54000000000000000000000000000000000B1 -S3154004B55000000000000000000000000000000000A1 -S3154004B5600000000000000000000000000000000091 -S3154004B5700000000000000000000000000000000081 -S3154004B5800000000000000000000000000000000071 -S3154004B5900000000000000000000000000000000061 -S3154004B5A00000000000000000000000000000000051 -S3154004B5B00000000000000000000000000000000041 -S3154004B5C00000000000000000000000000000000031 -S3154004B5D00000000000000000000000000000000021 -S3154004B5E00000000000000000000000000000000011 -S3154004B5F00000000000000000000000000000000001 -S3154004B60000000000000000000000000000000000F0 -S3154004B61000000000000000000000000000000000E0 -S3154004B62000000000000000000000000000000000D0 -S3154004B63000000000000000000000000000000000C0 -S3154004B64000000000000000000000000000000000B0 -S3154004B65000000000000000000000000000000000A0 -S3154004B6600000000000000000000000000000000090 -S3154004B6700000000000000000000000000000000080 -S3154004B6800000000000000000000000000000000070 -S3154004B6900000000000000000000000000000000060 -S3154004B6A00000000000000000000000000000000050 -S3154004B6B00000000000000000000000000000000040 -S3154004B6C00000000000000000000000000000000030 -S3154004B6D00000000000000000000000000000000020 -S3154004B6E00000000000000000000000000000000010 -S3154004B6F00000000000000000000000000000000000 -S3154004B70000000000000000000000000000000000EF -S3154004B71000000000000000000000000000000000DF -S3154004B72000000000000000000000000000000000CF -S3154004B73000000000000000000000000000000000BF -S3154004B74000000000000000000000000000000000AF -S3154004B750000000000000000000000000000000009F -S3154004B760000000000000000000000000000000008F -S3154004B770000000000000000000000000000000007F -S3154004B780000000000000000000000000000000006F -S3154004B790000000000000000000000000000000005F -S3154004B7A0000000000000000000000000000000004F -S3154004B7B0000000000000000000000000000000003F -S3154004B7C0000000000000000000000000000000002F -S3154004B7D0000000000000000000000000000000001F -S3154004B7E0000000000000000000000000000000000F -S3154004B7F000000000000000000000000000000000FF -S3154004B80000000000000000000000000000000000EE -S3154004B81000000000000000000000000000000000DE -S3154004B82000000000000000000000000000000000CE -S3154004B83000000000000000000000000000000000BE -S3154004B84000000000000000000000000000000000AE -S3154004B850000000000000000000000000000000009E -S3154004B860000000000000000000000000000000008E -S3154004B870000000000000000000000000000000007E -S3154004B880000000000000000000000000000000006E -S3154004B890000000000000000000000000000000005E -S3154004B8A0000000000000000000000000000000004E -S3154004B8B0000000000000000000000000000000003E -S3154004B8C0000000000000000000000000000000002E -S3154004B8D0000000000000000000000000000000001E -S3154004B8E0000000000000000000000000000000000E -S3154004B8F000000000000000000000000000000000FE -S3154004B90000000000000000000000000000000000ED -S3154004B91000000000000000000000000000000000DD -S3154004B92000000000000000000000000000000000CD -S3154004B93000000000000000000000000000000000BD -S3154004B94000000000000000000000000000000000AD -S3154004B950000000000000000000000000000000009D -S3154004B960000000000000000000000000000000008D -S3154004B970000000000000000000000000000000007D -S3154004B980000000000000000000000000000000006D -S3154004B990000000000000000000000000000000005D -S3154004B9A0000000000000000000000000000000004D -S3154004B9B0000000000000000000000000000000003D -S3154004B9C0000000000000000000000000000000002D -S3154004B9D0000000000000000000000000000000001D -S3154004B9E0000000000000000000000000000000000D -S3154004B9F000000000000000000000000000000000FD -S3154004BA0000000000000000000000000000000000EC -S3154004BA1000000000000000000000000000000000DC -S3154004BA2000000000000000000000000000000000CC -S3154004BA3000000000000000000000000000000000BC -S3154004BA4000000000000000000000000000000000AC -S3154004BA50000000000000000000000000000000009C -S3154004BA60000000000000000000000000000000008C -S3154004BA70000000000000000000000000000000007C -S3154004BA80000000000000000000000000000000006C -S3154004BA90000000000000000000000000000000005C -S3154004BAA0000000000000000000000000000000004C -S3154004BAB0000000000000000000000000000000003C -S3154004BAC0000000000000000000000000000000002C -S3154004BAD0000000000000000000000000000000001C -S3154004BAE0000000000000000000000000000000000C -S3154004BAF000000000000000000000000000000000FC -S3154004BB0000000000000000000000000000000000EB -S3154004BB1000000000000000000000000000000000DB -S3154004BB2000000000000000000000000000000000CB -S3154004BB3000000000000000000000000000000000BB -S3154004BB4000000000000000000000000000000000AB -S3154004BB50000000000000000000000000000000009B -S3154004BB60000000000000000000000000000000008B -S3154004BB70000000000000000000000000000000007B -S3154004BB80000000000000000000000000000000006B -S3154004BB90000000000000000000000000000000005B -S3154004BBA0000000000000000000000000000000004B -S3154004BBB0000000000000000000000000000000003B -S3154004BBC0000000000000000000000000000000002B -S3154004BBD0000000000000000000000000000000001B -S3154004BBE0000000000000000000000000000000000B -S3154004BBF000000000000000000000000000000000FB -S3154004BC0000000000000000000000000000000000EA -S3154004BC1000000000000000000000000000000000DA -S3154004BC2000000000000000000000000000000000CA -S3154004BC3000000000000000000000000000000000BA -S3154004BC4000000000000000000000000000000000AA -S3154004BC50000000000000000000000000000000009A -S3154004BC60000000000000000000000000000000008A -S3154004BC70000000000000000000000000000000007A -S3154004BC80000000000000000000000000000000006A -S3154004BC90000000000000000000000000000000005A -S3154004BCA0000000000000000000000000000000004A -S3154004BCB0000000000000000000000000000000003A -S3154004BCC0000000000000000000000000000000002A -S3154004BCD0000000000000000000000000000000001A -S3154004BCE0000000000000000000000000000000000A -S3154004BCF000000000000000000000000000000000FA -S3154004BD0000000000000000000000000000000000E9 -S3154004BD1000000000000000000000000000000000D9 -S3154004BD2000000000000000000000000000000000C9 -S3154004BD3000000000000000000000000000000000B9 -S3154004BD4000000000000000000000000000000000A9 -S3154004BD500000000000000000000000000000000099 -S3154004BD600000000000000000000000000000000089 -S3154004BD700000000000000000000000000000000079 -S3154004BD800000000000000000000000000000000069 -S3154004BD900000000000000000000000000000000059 -S3154004BDA00000000000000000000000000000000049 -S3154004BDB00000000000000000000000000000000039 -S3154004BDC00000000000000000000000000000000029 -S3154004BDD00000000000000000000000000000000019 -S3154004BDE00000000000000000000000000000000009 -S3154004BDF000000000000000000000000000000000F9 -S3154004BE0000000000000000000000000000000000E8 -S3154004BE1000000000000000000000000000000000D8 -S3154004BE2000000000000000000000000000000000C8 -S3154004BE3000000000000000000000000000000000B8 -S3154004BE4000000000000000000000000000000000A8 -S3154004BE500000000000000000000000000000000098 -S3154004BE600000000000000000000000000000000088 -S3154004BE700000000000000000000000000000000078 -S3154004BE800000000000000000000000000000000068 -S3154004BE900000000000000000000000000000000058 -S3154004BEA00000000000000000000000000000000048 -S3154004BEB00000000000000000000000000000000038 -S3154004BEC00000000000000000000000000000000028 -S3154004BED00000000000000000000000000000000018 -S3154004BEE00000000000000000000000000000000008 -S3154004BEF000000000000000000000000000000000F8 -S3154004BF0000000000000000000000000000000000E7 -S3154004BF1000000000000000000000000000000000D7 -S3154004BF2000000000000000000000000000000000C7 -S3154004BF3000000000000000000000000000000000B7 -S3154004BF4000000000000000000000000000000000A7 -S3154004BF500000000000000000000000000000000097 -S3154004BF600000000000000000000000000000000087 -S3154004BF700000000000000000000000000000000077 -S3154004BF800000000000000000000000000000000067 -S3154004BF900000000000000000000000000000000057 -S3154004BFA00000000000000000000000000000000047 -S3154004BFB00000000000000000000000000000000037 -S3154004BFC00000000000000000000000000000000027 -S3154004BFD00000000000000000000000000000000017 -S3154004BFE00000000000000000000000000000000007 -S3154004BFF000000000000000000000000000000000F7 -S3154004C00000000000000000000000000000000000E6 -S3154004C01000000000000000000000000000000000D6 -S3154004C02000000000000000000000000000000000C6 -S3154004C03000000000000000000000000000000000B6 -S3154004C04000000000000000000000000000000000A6 -S3154004C0500000000000000000000000000000000096 -S3154004C0600000000000000000000000000000000086 -S3154004C0700000000000000000000000000000000076 -S3154004C0800000000000000000000000000000000066 -S3154004C0900000000000000000000000000000000056 -S3154004C0A00000000000000000000000000000000046 -S3154004C0B00000000000000000000000000000000036 -S3154004C0C00000000000000000000000000000000026 -S3154004C0D00000000000000000000000000000000016 -S3154004C0E00000000000000000000000000000000006 -S3154004C0F000000000000000000000000000000000F6 -S3154004C10000000000000000000000000000000000E5 -S3154004C11000000000000000000000000000000000D5 -S3154004C12000000000000000000000000000000000C5 -S3154004C13000000000000000000000000000000000B5 -S3154004C14000000000000000000000000000000000A5 -S3154004C1500000000000000000000000000000000095 -S3154004C1600000000000000000000000000000000085 -S3154004C1700000000000000000000000000000000075 -S3154004C1800000000000000000000000000000000065 -S3154004C1900000000000000000000000000000000055 -S3154004C1A00000000000000000000000000000000045 -S3154004C1B00000000000000000000000000000000035 -S3154004C1C00000000000000000000000000000000025 -S3154004C1D00000000000000000000000000000000015 -S3154004C1E00000000000000000000000000000000005 -S3154004C1F000000000000000000000000000000000F5 -S3154004C20000000000000000000000000000000000E4 -S3154004C21000000000000000000000000000000000D4 -S3154004C22000000000000000000000000000000000C4 -S3154004C23000000000000000000000000000000000B4 -S3154004C24000000000000000000000000000000000A4 -S3154004C2500000000000000000000000000000000094 -S3154004C2600000000000000000000000000000000084 -S3154004C2700000000000000000000000000000000074 -S3154004C2800000000000000000000000000000000064 -S3154004C2900000000000000000000000000000000054 -S3154004C2A00000000000000000000000000000000044 -S3154004C2B00000000000000000000000000000000034 -S3154004C2C00000000000000000000000000000000024 -S3154004C2D00000000000000000000000000000000014 -S3154004C2E00000000000000000000000000000000004 -S3154004C2F000000000000000000000000000000000F4 -S3154004C30000000000000000000000000000000000E3 -S3154004C31000000000000000000000000000000000D3 -S3154004C32000000000000000000000000000000000C3 -S3154004C33000000000000000000000000000000000B3 -S3154004C34000000000000000000000000000000000A3 -S3154004C3500000000000000000000000000000000093 -S3154004C3600000000000000000000000000000000083 -S3154004C3700000000000000000000000000000000073 -S3154004C3800000000000000000000000000000000063 -S3154004C3900000000000000000000000000000000053 -S3154004C3A00000000000000000000000000000000043 -S3154004C3B00000000000000000000000000000000033 -S3154004C3C00000000000000000000000000000000023 -S3154004C3D00000000000000000000000000000000013 -S3154004C3E00000000000000000000000000000000003 -S3154004C3F000000000000000000000000000000000F3 -S3154004C40000000000000000000000000000000000E2 -S3154004C41000000000000000000000000000000000D2 -S3154004C42000000000000000000000000000000000C2 -S3154004C43000000000000000000000000000000000B2 -S3154004C44000000000000000000000000000000000A2 -S3154004C4500000000000000000000000000000000092 -S3154004C4600000000000000000000000000000000082 -S3154004C4700000000000000000000000000000000072 -S3154004C4800000000000000000000000000000000062 -S3154004C4900000000000000000000000000000000052 -S3154004C4A00000000000000000000000000000000042 -S3154004C4B00000000000000000000000000000000032 -S3154004C4C00000000000000000000000000000000022 -S3154004C4D00000000000000000000000000000000012 -S3154004C4E00000000000000000000000000000000002 -S3154004C4F000000000000000000000000000000000F2 -S3154004C50000000000000000000000000000000000E1 -S3154004C51000000000000000000000000000000000D1 -S3154004C52000000000000000000000000000000000C1 -S3154004C53000000000000000000000000000000000B1 -S3154004C54000000000000000000000000000000000A1 -S3154004C5500000000000000000000000000000000091 -S3154004C5600000000000000000000000000000000081 -S3154004C5700000000000000000000000000000000071 -S3154004C5800000000000000000000000000000000061 -S3154004C5900000000000000000000000000000000051 -S3154004C5A00000000000000000000000000000000041 -S3154004C5B00000000000000000000000000000000031 -S3154004C5C00000000000000000000000000000000021 -S3154004C5D00000000000000000000000000000000011 -S3154004C5E00000000000000000000000000000000001 -S3154004C5F000000000000000000000000000000000F1 -S3154004C60000000000000000000000000000000000E0 -S3154004C61000000000000000000000000000000000D0 -S3154004C62000000000000000000000000000000000C0 -S3154004C63000000000000000000000000000000000B0 -S3154004C64000000000000000000000000000000000A0 -S3154004C6500000000000000000000000000000000090 -S3154004C6600000000000000000000000000000000080 -S3154004C6700000000000000000000000000000000070 -S3154004C6800000000000000000000000000000000060 -S3154004C6900000000000000000000000000000000050 -S3154004C6A00000000000000000000000000000000040 -S3154004C6B00000000000000000000000000000000030 -S3154004C6C00000000000000000000000000000000020 -S3154004C6D00000000000000000000000000000000010 -S3154004C6E00000000000000000000000000000000000 -S3154004C6F000000000000000000000000000000000F0 -S3154004C70000000000000000000000000000000000DF -S3154004C71000000000000000000000000000000000CF -S3154004C72000000000000000000000000000000000BF -S3154004C73000000000000000000000000000000000AF -S3154004C740000000000000000000000000000000009F -S3154004C750000000000000000000000000000000008F -S3154004C760000000000000000000000000000000007F -S3154004C770000000000000000000000000000000006F -S3154004C780000000000000000000000000000000005F -S3154004C790000000000000000000000000000000004F -S3154004C7A0000000000000000000000000000000003F -S3154004C7B0000000000000000000000000000000002F -S3154004C7C0000000000000000000000000000000001F -S3154004C7D0000000000000000000000000000000000F -S3154004C7E000000000000000000000000000000000FF -S3154004C7F000000000000000000000000000000000EF -S3154004C80000000000000000000000000000000000DE -S3154004C81000000000000000000000000000000000CE -S3154004C82000000000000000000000000000000000BE -S3154004C83000000000000000000000000000000000AE -S3154004C840000000000000000000000000000000009E -S3154004C850000000000000000000000000000000008E -S3154004C860000000000000000000000000000000007E -S3154004C870000000000000000000000000000000006E -S3154004C880000000000000000000000000000000005E -S3154004C890000000000000000000000000000000004E -S3154004C8A0000000000000000000000000000000003E -S3154004C8B0000000000000000000000000000000002E -S3154004C8C0000000000000000000000000000000001E -S3154004C8D0000000000000000000000000000000000E -S3154004C8E000000000000000000000000000000000FE -S3154004C8F000000000000000000000000000000000EE -S3154004C90000000000000000000000000000000000DD -S3154004C91000000000000000000000000000000000CD -S3154004C92000000000000000000000000000000000BD -S3154004C93000000000000000000000000000000000AD -S3154004C940000000000000000000000000000000009D -S3154004C950000000000000000000000000000000008D -S3154004C960000000000000000000000000000000007D -S3154004C970000000000000000000000000000000006D -S3154004C980000000000000000000000000000000005D -S3154004C990000000000000000000000000000000004D -S3154004C9A0000000000000000000000000000000003D -S3154004C9B0000000000000000000000000000000002D -S3154004C9C0000000000000000000000000000000001D -S3154004C9D0000000000000000000000000000000000D -S3154004C9E000000000000000000000000000000000FD -S3154004C9F000000000000000000000000000000000ED -S3154004CA0000000000000000000000000000000000DC -S3154004CA1000000000000000000000000000000000CC -S3154004CA2000000000000000000000000000000000BC -S3154004CA3000000000000000000000000000000000AC -S3154004CA40000000000000000000000000000000009C -S3154004CA50000000000000000000000000000000008C -S3154004CA60000000000000000000000000000000007C -S3154004CA70000000000000000000000000000000006C -S3154004CA80000000000000000000000000000000005C -S3154004CA90000000000000000000000000000000004C -S3154004CAA0000000000000000000000000000000003C -S3154004CAB0000000000000000000000000000000002C -S3154004CAC0000000000000000000000000000000001C -S3154004CAD0000000000000000000000000000000000C -S3154004CAE000000000000000000000000000000000FC -S3154004CAF000000000000000000000000000000000EC -S3154004CB0000000000000000000000000000000000DB -S3154004CB1000000000000000000000000000000000CB -S3154004CB2000000000000000000000000000000000BB -S3154004CB3000000000000000000000000000000000AB -S3154004CB40000000000000000000000000000000009B -S3154004CB50000000000000000000000000000000008B -S3154004CB60000000000000000000000000000000007B -S3154004CB70000000000000000000000000000000006B -S3154004CB80000000000000000000000000000000005B -S3154004CB90000000000000000000000000000000004B -S3154004CBA0000000000000000000000000000000003B -S3154004CBB0000000000000000000000000000000002B -S3154004CBC0000000000000000000000000000000001B -S3154004CBD0000000000000000000000000000000000B -S3154004CBE000000000000000000000000000000000FB -S3154004CBF000000000000000000000000000000000EB -S3154004CC0000000000000000000000000000000000DA -S3154004CC1000000000000000000000000000000000CA -S3154004CC2000000000000000000000000000000000BA -S3154004CC3000000000000000000000000000000000AA -S3154004CC40000000000000000000000000000000009A -S3154004CC50000000000000000000000000000000008A -S3154004CC60000000000000000000000000000000007A -S3154004CC70000000000000000000000000000000006A -S3154004CC80000000000000000000000000000000005A -S3154004CC90000000000000000000000000000000004A -S3154004CCA0000000000000000000000000000000003A -S3154004CCB0000000000000000000000000000000002A -S3154004CCC0000000000000000000000000000000001A -S3154004CCD0000000000000000000000000000000000A -S3154004CCE000000000000000000000000000000000FA -S3154004CCF000000000000000000000000000000000EA -S3154004CD0000000000000000000000000000000000D9 -S3154004CD1000000000000000000000000000000000C9 -S3154004CD2000000000000000000000000000000000B9 -S3154004CD3000000000000000000000000000000000A9 -S3154004CD400000000000000000000000000000000099 -S3154004CD500000000000000000000000000000000089 -S3154004CD600000000000000000000000000000000079 -S3154004CD700000000000000000000000000000000069 -S3154004CD800000000000000000000000000000000059 -S3154004CD900000000000000000000000000000000049 -S3154004CDA00000000000000000000000000000000039 -S3154004CDB00000000000000000000000000000000029 -S3154004CDC00000000000000000000000000000000019 -S3154004CDD00000000000000000000000000000000009 -S3154004CDE000000000000000000000000000000000F9 -S3154004CDF000000000000000000000000000000000E9 -S3154004CE0000000000000000000000000000000000D8 -S3154004CE1000000000000000000000000000000000C8 -S3154004CE2000000000000000000000000000000000B8 -S3154004CE3000000000000000000000000000000000A8 -S3154004CE400000000000000000000000000000000098 -S3154004CE500000000000000000000000000000000088 -S3154004CE600000000000000000000000000000000078 -S3154004CE700000000000000000000000000000000068 -S3154004CE800000000000000000000000000000000058 -S3154004CE900000000000000000000000000000000048 -S3154004CEA00000000000000000000000000000000038 -S3154004CEB00000000000000000000000000000000028 -S3154004CEC00000000000000000000000000000000018 -S3154004CED00000000000000000000000000000000008 -S3154004CEE000000000000000000000000000000000F8 -S3154004CEF000000000000000000000000000000000E8 -S3154004CF0000000000000000000000000000000000D7 -S3154004CF1000000000000000000000000000000000C7 -S3154004CF2000000000000000000000000000000000B7 -S3154004CF3000000000000000000000000000000000A7 -S3154004CF400000000000000000000000000000000097 -S3154004CF500000000000000000000000000000000087 -S3154004CF600000000000000000000000000000000077 -S3154004CF700000000000000000000000000000000067 -S3154004CF800000000000000000000000000000000057 -S3154004CF900000000000000000000000000000000047 -S3154004CFA00000000000000000000000000000000037 -S3154004CFB00000000000000000000000000000000027 -S3154004CFC00000000000000000000000000000000017 -S3154004CFD00000000000000000000000000000000007 -S3154004CFE000000000000000000000000000000000F7 -S3154004CFF000000000000000000000000000000000E7 -S3154004D00000000000000000000000000000000000D6 -S3154004D01000000000000000000000000000000000C6 -S3154004D02000000000000000000000000000000000B6 -S3154004D03000000000000000000000000000000000A6 -S3154004D0400000000000000000000000000000000096 -S3154004D0500000000000000000000000000000000086 -S3154004D0600000000000000000000000000000000076 -S3154004D0700000000000000000000000000000000066 -S3154004D0800000000000000000000000000000000056 -S3154004D0900000000000000000000000000000000046 -S3154004D0A00000000000000000000000000000000036 -S3154004D0B00000000000000000000000000000000026 -S3154004D0C00000000000000000000000000000000016 -S3154004D0D00000000000000000000000000000000006 -S3154004D0E000000000000000000000000000000000F6 -S3154004D0F000000000000000000000000000000000E6 -S3154004D10000000000000000000000000000000000D5 -S3154004D11000000000000000000000000000000000C5 -S3154004D12000000000000000000000000000000000B5 -S3154004D13000000000000000000000000000000000A5 -S3154004D1400000000000000000000000000000000095 -S3154004D1500000000000000000000000000000000085 -S3154004D1600000000000000000000000000000000075 -S3154004D1700000000000000000000000000000000065 -S3154004D1800000000000000000000000000000000055 -S3154004D1900000000000000000000000000000000045 -S3154004D1A00000000000000000000000000000000035 -S3154004D1B00000000000000000000000000000000025 -S3154004D1C00000000000000000000000000000000015 -S3154004D1D00000000000000000000000000000000005 -S3154004D1E000000000000000000000000000000000F5 -S3154004D1F000000000000000000000000000000000E5 -S3154004D20000000000000000000000000000000000D4 -S3154004D21000000000000000000000000000000000C4 -S3154004D22000000000000000000000000000000000B4 -S3154004D23000000000000000000000000000000000A4 -S3154004D2400000000000000000000000000000000094 -S3154004D2500000000000000000000000000000000084 -S3154004D2600000000000000000000000000000000074 -S3154004D2700000000000000000000000000000000064 -S3154004D2800000000000000000000000000000000054 -S3154004D2900000000000000000000000000000000044 -S3154004D2A00000000000000000000000000000000034 -S3154004D2B00000000000000000000000000000000024 -S3154004D2C00000000000000000000000000000000014 -S3154004D2D00000000000000000000000000000000004 -S3154004D2E000000000000000000000000000000000F4 -S3154004D2F000000000000000000000000000000000E4 -S3154004D30000000000000000000000000000000000D3 -S3154004D31000000000000000000000000000000000C3 -S3154004D32000000000000000000000000000000000B3 -S3154004D33000000000000000000000000000000000A3 -S3154004D3400000000000000000000000000000000093 -S3154004D3500000000000000000000000000000000083 -S3154004D3600000000000000000000000000000000073 -S3154004D3700000000000000000000000000000000063 -S3154004D3800000000000000000000000000000000053 -S3154004D3900000000000000000000000000000000043 -S3154004D3A00000000000000000000000000000000033 -S3154004D3B00000000000000000000000000000000023 -S3154004D3C00000000000000000000000000000000013 -S3154004D3D00000000000000000000000000000000003 -S3154004D3E000000000000000000000000000000000F3 -S3154004D3F000000000000000000000000000000000E3 -S3154004D40000000000000000000000000000000000D2 -S3154004D41000000000000000000000000000000000C2 -S3154004D42000000000000000000000000000000000B2 -S3154004D43000000000000000000000000000000000A2 -S3154004D4400000000000000000000000000000000092 -S3154004D4500000000000000000000000000000000082 -S3154004D4600000000000000000000000000000000072 -S3154004D4700000000000000000000000000000000062 -S3154004D4800000000000000000000000000000000052 -S3154004D4900000000000000000000000000000000042 -S3154004D4A00000000000000000000000000000000032 -S3154004D4B00000000000000000000000000000000022 -S3154004D4C00000000000000000000000000000000012 -S3154004D4D00000000000000000000000000000000002 -S3154004D4E000000000000000000000000000000000F2 -S3154004D4F000000000000000000000000000000000E2 -S3154004D50000000000000000000000000000000000D1 -S3154004D51000000000000000000000000000000000C1 -S3154004D52000000000000000000000000000000000B1 -S3154004D53000000000000000000000000000000000A1 -S3154004D5400000000000000000000000000000000091 -S3154004D5500000000000000000000000000000000081 -S3154004D5600000000000000000000000000000000071 -S3154004D5700000000000000000000000000000000061 -S3154004D5800000000000000000000000000000000051 -S3154004D5900000000000000000000000000000000041 -S3154004D5A00000000000000000000000000000000031 -S3154004D5B00000000000000000000000000000000021 -S3154004D5C00000000000000000000000000000000011 -S3154004D5D00000000000000000000000000000000001 -S3154004D5E000000000000000000000000000000000F1 -S3154004D5F000000000000000000000000000000000E1 -S3154004D60000000000000000000000000000000000D0 -S3154004D61000000000000000000000000000000000C0 -S3154004D62000000000000000000000000000000000B0 -S3154004D63000000000000000000000000000000000A0 -S3154004D6400000000000000000000000000000000090 -S3154004D6500000000000000000000000000000000080 -S3154004D6600000000000000000000000000000000070 -S3154004D6700000000000000000000000000000000060 -S3154004D6800000000000000000000000000000000050 -S3154004D6900000000000000000000000000000000040 -S3154004D6A00000000000000000000000000000000030 -S3154004D6B00000000000000000000000000000000020 -S3154004D6C00000000000000000000000000000000010 -S3154004D6D00000000000000000000000000000000000 -S3154004D6E000000000000000000000000000000000F0 -S3154004D6F000000000000000000000000000000000E0 -S3154004D70000000000000000000000000000000000CF -S3154004D71000000000000000000000000000000000BF -S3154004D72000000000000000000000000000000000AF -S3154004D730000000000000000000000000000000009F -S3154004D740000000000000000000000000000000008F -S3154004D750000000000000000000000000000000007F -S3154004D760000000000000000000000000000000006F -S3154004D770000000000000000000000000000000005F -S3154004D780000000000000000000000000000000004F -S3154004D790000000000000000000000000000000003F -S3154004D7A0000000000000000000000000000000002F -S3154004D7B0000000000000000000000000000000001F -S3154004D7C0000000000000000000000000000000000F -S3154004D7D000000000000000000000000000000000FF -S3154004D7E000000000000000000000000000000000EF -S3154004D7F000000000000000000000000000000000DF -S3154004D80000000000000000000000000000000000CE -S3154004D81000000000000000000000000000000000BE -S3154004D82000000000000000000000000000000000AE -S3154004D830000000000000000000000000000000009E -S3154004D840000000000000000000000000000000008E -S3154004D850000000000000000000000000000000007E -S3154004D860000000000000000000000000000000006E -S3154004D870000000000000000000000000000000005E -S3154004D880000000000000000000000000000000004E -S3154004D890000000000000000000000000000000003E -S3154004D8A0000000000000000000000000000000002E -S3154004D8B0000000000000000000000000000000001E -S3154004D8C0000000000000000000000000000000000E -S3154004D8D000000000000000000000000000000000FE -S3154004D8E000000000000000000000000000000000EE -S3154004D8F000000000000000000000000000000000DE -S3154004D90000000000000000000000000000000000CD -S3154004D91000000000000000000000000000000000BD -S3154004D92000000000000000000000000000000000AD -S3154004D930000000000000000000000000000000009D -S3154004D940000000000000000000000000000000008D -S3154004D950000000000000000000000000000000007D -S3154004D960000000000000000000000000000000006D -S3154004D970000000000000000000000000000000005D -S3154004D980000000000000000000000000000000004D -S3154004D990000000000000000000000000000000003D -S3154004D9A0000000000000000000000000000000002D -S3154004D9B0000000000000000000000000000000001D -S3154004D9C0000000000000000000000000000000000D -S3154004D9D000000000000000000000000000000000FD -S3154004D9E000000000000000000000000000000000ED -S3154004D9F000000000000000000000000000000000DD -S3154004DA0000000000000000000000000000000000CC -S3154004DA1000000000000000000000000000000000BC -S3154004DA2000000000000000000000000000000000AC -S3154004DA30000000000000000000000000000000009C -S3154004DA40000000000000000000000000000000008C -S3154004DA50000000000000000000000000000000007C -S3154004DA60000000000000000000000000000000006C -S3154004DA70000000000000000000000000000000005C -S3154004DA80000000000000000000000000000000004C -S3154004DA90000000000000000000000000000000003C -S3154004DAA0000000000000000000000000000000002C -S3154004DAB0000000000000000000000000000000001C -S3154004DAC0000000000000000000000000000000000C -S3154004DAD000000000000000000000000000000000FC -S3154004DAE000000000000000000000000000000000EC -S3154004DAF000000000000000000000000000000000DC -S3154004DB0000000000000000000000000000000000CB -S3154004DB1000000000000000000000000000000000BB -S3154004DB2000000000000000000000000000000000AB -S3154004DB30000000000000000000000000000000009B -S3154004DB40000000000000000000000000000000008B -S3154004DB50000000000000000000000000000000007B -S3154004DB60000000000000000000000000000000006B -S3154004DB70000000000000000000000000000000005B -S3154004DB80000000000000000000000000000000004B -S3154004DB90000000000000000000000000000000003B -S3154004DBA0000000000000000000000000000000002B -S3154004DBB0000000000000000000000000000000001B -S3154004DBC0000000000000000000000000000000000B -S3154004DBD000000000000000000000000000000000FB -S3154004DBE000000000000000000000000000000000EB -S3154004DBF000000000000000000000000000000000DB -S3154004DC0000000000000000000000000000000000CA -S3154004DC1000000000000000000000000000000000BA -S3154004DC2000000000000000000000000000000000AA -S3154004DC30000000000000000000000000000000009A -S3154004DC40000000000000000000000000000000008A -S3154004DC50000000000000000000000000000000007A -S3154004DC60000000000000000000000000000000006A -S3154004DC70000000000000000000000000000000005A -S3154004DC80000000000000000000000000000000004A -S3154004DC90000000000000000000000000000000003A -S3154004DCA0000000000000000000000000000000002A -S3154004DCB0000000000000000000000000000000001A -S3154004DCC0000000000000000000000000000000000A -S3154004DCD000000000000000000000000000000000FA -S3154004DCE000000000000000000000000000000000EA -S3154004DCF000000000000000000000000000000000DA -S3154004DD0000000000000000000000000000000000C9 -S3154004DD1000000000000000000000000000000000B9 -S3154004DD2000000000000000000000000000000000A9 -S3154004DD300000000000000000000000000000000099 -S3154004DD400000000000000000000000000000000089 -S3154004DD500000000000000000000000000000000079 -S3154004DD600000000000000000000000000000000069 -S3154004DD700000000000000000000000000000000059 -S3154004DD800000000000000000000000000000000049 -S3154004DD900000000000000000000000000000000039 -S3154004DDA00000000000000000000000000000000029 -S3154004DDB00000000000000000000000000000000019 -S3154004DDC00000000000000000000000000000000009 -S3154004DDD000000000000000000000000000000000F9 -S3154004DDE000000000000000000000000000000000E9 -S3154004DDF000000000000000000000000000000000D9 -S3154004DE0000000000000000000000000000000000C8 -S3154004DE1000000000000000000000000000000000B8 -S3154004DE2000000000000000000000000000000000A8 -S3154004DE300000000000000000000000000000000098 -S3154004DE400000000000000000000000000000000088 -S3154004DE500000000000000000000000000000000078 -S3154004DE600000000000000000000000000000000068 -S3154004DE700000000000000000000000000000000058 -S3154004DE800000000000000000000000000000000048 -S3154004DE900000000000000000000000000000000038 -S3154004DEA00000000000000000000000000000000028 -S3154004DEB00000000000000000000000000000000018 -S3154004DEC00000000000000000000000000000000008 -S3154004DED000000000000000000000000000000000F8 -S3154004DEE000000000000000000000000000000000E8 -S3154004DEF000000000000000000000000000000000D8 -S3154004DF0000000000000000000000000000000000C7 -S3154004DF1000000000000000000000000000000000B7 -S3154004DF2000000000000000000000000000000000A7 -S3154004DF300000000000000000000000000000000097 -S3154004DF400000000000000000000000000000000087 -S3154004DF500000000000000000000000000000000077 -S3154004DF600000000000000000000000000000000067 -S3154004DF700000000000000000000000000000000057 -S3154004DF800000000000000000000000000000000047 -S3154004DF900000000000000000000000000000000037 -S3154004DFA00000000000000000000000000000000027 -S3154004DFB00000000000000000000000000000000017 -S3154004DFC00000000000000000000000000000000007 -S3154004DFD000000000000000000000000000000000F7 -S3154004DFE000000000000000000000000000000000E7 -S3154004DFF000000000000000000000000000000000D7 -S3154004E00000000000000000000000000000000000C6 -S3154004E01000000000000000000000000000000000B6 -S3154004E02000000000000000000000000000000000A6 -S3154004E0300000000000000000000000000000000096 -S3154004E0400000000000000000000000000000000086 -S3154004E0500000000000000000000000000000000076 -S3154004E0600000000000000000000000000000000066 -S3154004E0700000000000000000000000000000000056 -S3154004E0800000000000000000000000000000000046 -S3154004E0900000000000000000000000000000000036 -S3154004E0A00000000000000000000000000000000026 -S3154004E0B00000000000000000000000000000000016 -S3154004E0C00000000000000000000000000000000006 -S3154004E0D000000000000000000000000000000000F6 -S3154004E0E000000000000000000000000000000000E6 -S3154004E0F000000000000000000000000000000000D6 -S3154004E10000000000000000000000000000000000C5 -S3154004E11000000000000000000000000000000000B5 -S3154004E12000000000000000000000000000000000A5 -S3154004E1300000000000000000000000000000000095 -S3154004E1400000000000000000000000000000000085 -S3154004E1500000000000000000000000000000000075 -S3154004E1600000000000000000000000000000000065 -S3154004E1700000000000000000000000000000000055 -S3154004E1800000000000000000000000000000000045 -S3154004E1900000000000000000000000000000000035 -S3154004E1A00000000000000000000000000000000025 -S3154004E1B00000000000000000000000000000000015 -S3154004E1C00000000000000000000000000000000005 -S3154004E1D000000000000000000000000000000000F5 -S3154004E1E000000000000000000000000000000000E5 -S3154004E1F000000000000000000000000000000000D5 -S3154004E20000000000000000000000000000000000C4 -S3154004E21000000000000000000000000000000000B4 -S3154004E22000000000000000000000000000000000A4 -S3154004E2300000000000000000000000000000000094 -S3154004E2400000000000000000000000000000000084 -S3154004E2500000000000000000000000000000000074 -S3154004E2600000000000000000000000000000000064 -S3154004E2700000000000000000000000000000000054 -S3154004E2800000000000000000000000000000000044 -S3154004E2900000000000000000000000000000000034 -S3154004E2A00000000000000000000000000000000024 -S3154004E2B00000000000000000000000000000000014 -S3154004E2C00000000000000000000000000000000004 -S3154004E2D000000000000000000000000000000000F4 -S3154004E2E000000000000000000000000000000000E4 -S3154004E2F000000000000000000000000000000000D4 -S3154004E30000000000000000000000000000000000C3 -S3154004E31000000000000000000000000000000000B3 -S3154004E32000000000000000000000000000000000A3 -S3154004E3300000000000000000000000000000000093 -S3154004E3400000000000000000000000000000000083 -S3154004E3500000000000000000000000000000000073 -S3154004E3600000000000000000000000000000000063 -S3154004E3700000000000000000000000000000000053 -S3154004E3800000000000000000000000000000000043 -S3154004E3900000000000000000000000000000000033 -S3154004E3A00000000000000000000000000000000023 -S3154004E3B00000000000000000000000000000000013 -S3154004E3C00000000000000000000000000000000003 -S3154004E3D000000000000000000000000000000000F3 -S3154004E3E000000000000000000000000000000000E3 -S3154004E3F000000000000000000000000000000000D3 -S3154004E40000000000000000000000000000000000C2 -S3154004E41000000000000000000000000000000000B2 -S3154004E42000000000000000000000000000000000A2 -S3154004E4300000000000000000000000000000000092 -S3154004E4400000000000000000000000000000000082 -S3154004E4500000000000000000000000000000000072 -S3154004E4600000000000000000000000000000000062 -S3154004E4700000000000000000000000000000000052 -S3154004E4800000000000000000000000000000000042 -S3154004E4900000000000000000000000000000000032 -S3154004E4A00000000000000000000000000000000022 -S3154004E4B00000000000000000000000000000000012 -S3154004E4C00000000000000000000000000000000002 -S3154004E4D000000000000000000000000000000000F2 -S3154004E4E000000000000000000000000000000000E2 -S3154004E4F000000000000000000000000000000000D2 -S3154004E50000000000000000000000000000000000C1 -S3154004E51000000000000000000000000000000000B1 -S3154004E52000000000000000000000000000000000A1 -S3154004E5300000000000000000000000000000000091 -S3154004E5400000000000000000000000000000000081 -S3154004E5500000000000000000000000000000000071 -S3154004E5600000000000000000000000000000000061 -S3154004E5700000000000000000000000000000000051 -S3154004E5800000000000000000000000000000000041 -S3154004E5900000000000000000000000000000000031 -S3154004E5A00000000000000000000000000000000021 -S3154004E5B00000000000000000000000000000000011 -S3154004E5C00000000000000000000000000000000001 -S3154004E5D000000000000000000000000000000000F1 -S3154004E5E000000000000000000000000000000000E1 -S3154004E5F000000000000000000000000000000000D1 -S3154004E60000000000000000000000000000000000C0 -S3154004E61000000000000000000000000000000000B0 -S3154004E62000000000000000000000000000000000A0 -S3154004E6300000000000000000000000000000000090 -S3154004E6400000000000000000000000000000000080 -S3154004E6500000000000000000000000000000000070 -S3154004E6600000000000000000000000000000000060 -S3154004E6700000000000000000000000000000000050 -S3154004E6800000000000000000000000000000000040 -S3154004E6900000000000000000000000000000000030 -S3154004E6A00000000000000000000000000000000020 -S3154004E6B00000000000000000000000000000000010 -S3154004E6C00000000000000000000000000000000000 -S3154004E6D000000000000000000000000000000000F0 -S3154004E6E000000000000000000000000000000000E0 -S3154004E6F000000000000000000000000000000000D0 -S3154004E70000000000000000000000000000000000BF -S3154004E71000000000000000000000000000000000AF -S3154004E720000000000000000000000000000000009F -S3154004E730000000000000000000000000000000008F -S3154004E740000000000000000000000000000000007F -S3154004E750000000000000000000000000000000006F -S3154004E760000000000000000000000000000000005F -S3154004E770000000000000000000000000000000004F -S3154004E780000000000000000000000000000000003F -S3154004E790000000000000000000000000000000002F -S3154004E7A0000000000000000000000000000000001F -S3154004E7B0000000000000000000000000000000000F -S3154004E7C000000000000000000000000000000000FF -S3154004E7D000000000000000000000000000000000EF -S3154004E7E000000000000000000000000000000000DF -S3154004E7F000000000000000000000000000000000CF -S3154004E80000000000000000000000000000000000BE -S3154004E81000000000000000000000000000000000AE -S3154004E820000000000000000000000000000000009E -S3154004E830000000000000000000000000000000008E -S3154004E840000000000000000000000000000000007E -S3154004E850000000000000000000000000000000006E -S3154004E860000000000000000000000000000000005E -S3154004E870000000000000000000000000000000004E -S3154004E880000000000000000000000000000000003E -S3154004E890000000000000000000000000000000002E -S3154004E8A0000000000000000000000000000000001E -S3154004E8B0000000000000000000000000000000000E -S3154004E8C000000000000000000000000000000000FE -S3154004E8D000000000000000000000000000000000EE -S3154004E8E000000000000000000000000000000000DE -S3154004E8F000000000000000000000000000000000CE -S3154004E90000000000000000000000000000000000BD -S3154004E91000000000000000000000000000000000AD -S3154004E920000000000000000000000000000000009D -S3154004E930000000000000000000000000000000008D -S3154004E940000000000000000000000000000000007D -S3154004E950000000000000000000000000000000006D -S3154004E960000000000000000000000000000000005D -S3154004E970000000000000000000000000000000004D -S3154004E980000000000000000000000000000000003D -S3154004E990000000000000000000000000000000002D -S3154004E9A0000000000000000000000000000000001D -S3154004E9B0000000000000000000000000000000000D -S3154004E9C000000000000000000000000000000000FD -S3154004E9D000000000000000000000000000000000ED -S3154004E9E000000000000000000000000000000000DD -S3154004E9F000000000000000000000000000000000CD -S3154004EA0000000000000000000000000000000000BC -S3154004EA1000000000000000000000000000000000AC -S3154004EA20000000000000000000000000000000009C -S3154004EA30000000000000000000000000000000008C -S3154004EA40000000000000000000000000000000007C -S3154004EA50000000000000000000000000000000006C -S3154004EA60000000000000000000000000000000005C -S3154004EA70000000000000000000000000000000004C -S3154004EA80000000000000000000000000000000003C -S3154004EA90000000000000000000000000000000002C -S3154004EAA0000000000000000000000000000000001C -S3154004EAB0000000000000000000000000000000000C -S3154004EAC000000000000000000000000000000000FC -S3154004EAD000000000000000000000000000000000EC -S3154004EAE000000000000000000000000000000000DC -S3154004EAF000000000000000000000000000000000CC -S3154004EB0000000000000000000000000000000000BB -S3154004EB1000000000000000000000000000000000AB -S3154004EB20000000000000000000000000000000009B -S3154004EB30000000000000000000000000000000008B -S3154004EB40000000000000000000000000000000007B -S3154004EB50000000000000000000000000000000006B -S3154004EB60000000000000000000000000000000005B -S3154004EB70000000000000000000000000000000004B -S3154004EB80000000000000000000000000000000003B -S3154004EB90000000000000000000000000000000002B -S3154004EBA0000000000000000000000000000000001B -S3154004EBB0000000000000000000000000000000000B -S3154004EBC000000000000000000000000000000000FB -S3154004EBD000000000000000000000000000000000EB -S3154004EBE000000000000000000000000000000000DB -S3154004EBF000000000000000000000000000000000CB -S3154004EC0000000000000000000000000000000000BA -S3154004EC1000000000000000000000000000000000AA -S3154004EC20000000000000000000000000000000009A -S3154004EC30000000000000000000000000000000008A -S3154004EC40000000000000000000000000000000007A -S3154004EC50000000000000000000000000000000006A -S3154004EC60000000000000000000000000000000005A -S3154004EC70000000000000000000000000000000004A -S3154004EC80000000000000000000000000000000003A -S3154004EC90000000000000000000000000000000002A -S3154004ECA0000000000000000000000000000000001A -S3154004ECB0000000000000000000000000000000000A -S3154004ECC000000000000000000000000000000000FA -S3154004ECD000000000000000000000000000000000EA -S3154004ECE000000000000000000000000000000000DA -S3154004ECF000000000000000000000000000000000CA -S3154004ED0000000000000000000000000000000000B9 -S3154004ED1000000000000000000000000000000000A9 -S3154004ED200000000000000000000000000000000099 -S3154004ED300000000000000000000000000000000089 -S3154004ED400000000000000000000000000000000079 -S3154004ED500000000000000000000000000000000069 -S3154004ED600000000000000000000000000000000059 -S3154004ED700000000000000000000000000000000049 -S3154004ED800000000000000000000000000000000039 -S3154004ED900000000000000000000000000000000029 -S3154004EDA00000000000000000000000000000000019 -S3154004EDB00000000000000000000000000000000009 -S3154004EDC000000000000000000000000000000000F9 -S3154004EDD000000000000000000000000000000000E9 -S3154004EDE000000000000000000000000000000000D9 -S3154004EDF000000000000000000000000000000000C9 -S3154004EE0000000000000000000000000000000000B8 -S3154004EE1000000000000000000000000000000000A8 -S3154004EE200000000000000000000000000000000098 -S3154004EE300000000000000000000000000000000088 -S3154004EE400000000000000000000000000000000078 -S3154004EE500000000000000000000000000000000068 -S3154004EE600000000000000000000000000000000058 -S3154004EE700000000000000000000000000000000048 -S3154004EE800000000000000000000000000000000038 -S3154004EE900000000000000000000000000000000028 -S3154004EEA00000000000000000000000000000000018 -S3154004EEB00000000000000000000000000000000008 -S3154004EEC000000000000000000000000000000000F8 -S3154004EED000000000000000000000000000000000E8 -S3154004EEE000000000000000000000000000000000D8 -S3154004EEF000000000000000000000000000000000C8 -S3154004EF0000000000000000000000000000000000B7 -S3154004EF1000000000000000000000000000000000A7 -S3154004EF200000000000000000000000000000000097 -S3154004EF300000000000000000000000000000000087 -S3154004EF400000000000000000000000000000000077 -S3154004EF500000000000000000000000000000000067 -S3154004EF600000000000000000000000000000000057 -S3154004EF700000000000000000000000000000000047 -S3154004EF800000000000000000000000000000000037 -S3154004EF900000000000000000000000000000000027 -S3154004EFA00000000000000000000000000000000017 -S3154004EFB00000000000000000000000000000000007 -S3154004EFC000000000000000000000000000000000F7 -S3154004EFD000000000000000000000000000000000E7 -S3154004EFE000000000000000000000000000000000D7 -S3154004EFF000000000000000000000000000000000C7 -S3154004F00000000000000000000000000000000000B6 -S3154004F01000000000000000000000000000000000A6 -S3154004F0200000000000000000000000000000000096 -S3154004F0300000000000000000000000000000000086 -S3154004F0400000000000000000000000000000000076 -S3154004F0500000000000000000000000000000000066 -S3154004F0600000000000000000000000000000000056 -S3154004F0700000000000000000000000000000000046 -S3154004F0800000000000000000000000000000000036 -S3154004F0900000000000000000000000000000000026 -S3154004F0A00000000000000000000000000000000016 -S3154004F0B00000000000000000000000000000000006 -S3154004F0C000000000000000000000000000000000F6 -S3154004F0D000000000000000000000000000000000E6 -S3154004F0E000000000000000000000000000000000D6 -S3154004F0F000000000000000000000000000000000C6 -S3154004F10000000000000000000000000000000000B5 -S3154004F11000000000000000000000000000000000A5 -S3154004F1200000000000000000000000000000000095 -S3154004F1300000000000000000000000000000000085 -S3154004F1400000000000000000000000000000000075 -S3154004F1500000000000000000000000000000000065 -S3154004F1600000000000000000000000000000000055 -S3154004F1700000000000000000000000000000000045 -S3154004F1800000000000000000000000000000000035 -S3154004F1900000000000000000000000000000000025 -S3154004F1A00000000000000000000000000000000015 -S3154004F1B00000000000000000000000000000000005 -S3154004F1C000000000000000000000000000000000F5 -S3154004F1D000000000000000000000000000000000E5 -S3154004F1E000000000000000000000000000000000D5 -S3154004F1F000000000000000000000000000000000C5 -S3154004F20000000000000000000000000000000000B4 -S3154004F21000000000000000000000000000000000A4 -S3154004F2200000000000000000000000000000000094 -S3154004F2300000000000000000000000000000000084 -S3154004F2400000000000000000000000000000000074 -S3154004F2500000000000000000000000000000000064 -S3154004F2600000000000000000000000000000000054 -S3154004F2700000000000000000000000000000000044 -S3154004F2800000000000000000000000000000000034 -S3154004F2900000000000000000000000000000000024 -S3154004F2A00000000000000000000000000000000014 -S3154004F2B00000000000000000000000000000000004 -S3154004F2C000000000000000000000000000000000F4 -S3154004F2D000000000000000000000000000000000E4 -S3154004F2E000000000000000000000000000000000D4 -S3154004F2F000000000000000000000000000000000C4 -S3154004F30000000000000000000000000000000000B3 -S3154004F31000000000000000000000000000000000A3 -S3154004F3200000000000000000000000000000000093 -S3154004F3300000000000000000000000000000000083 -S3154004F3400000000000000000000000000000000073 -S3154004F3500000000000000000000000000000000063 -S3154004F3600000000000000000000000000000000053 -S3154004F3700000000000000000000000000000000043 -S3154004F3800000000000000000000000000000000033 -S3154004F3900000000000000000000000000000000023 -S3154004F3A00000000000000000000000000000000013 -S3154004F3B00000000000000000000000000000000003 -S3154004F3C000000000000000000000000000000000F3 -S3154004F3D000000000000000000000000000000000E3 -S3154004F3E000000000000000000000000000000000D3 -S3154004F3F000000000000000000000000000000000C3 -S3154004F40000000000000000000000000000000000B2 -S3154004F41000000000000000000000000000000000A2 -S3154004F4200000000000000000000000000000000092 -S3154004F4300000000000000000000000000000000082 -S3154004F4400000000000000000000000000000000072 -S3154004F4500000000000000000000000000000000062 -S3154004F4600000000000000000000000000000000052 -S3154004F4700000000000000000000000000000000042 -S3154004F4800000000000000000000000000000000032 -S3154004F4900000000000000000000000000000000022 -S3154004F4A00000000000000000000000000000000012 -S3154004F4B00000000000000000000000000000000002 -S3154004F4C000000000000000000000000000000000F2 -S3154004F4D000000000000000000000000000000000E2 -S3154004F4E000000000000000000000000000000000D2 -S3154004F4F000000000000000000000000000000000C2 -S3154004F50000000000000000000000000000000000B1 -S3154004F51000000000000000000000000000000000A1 -S3154004F5200000000000000000000000000000000091 -S3154004F5300000000000000000000000000000000081 -S3154004F5400000000000000000000000000000000071 -S3154004F5500000000000000000000000000000000061 -S3154004F5600000000000000000000000000000000051 -S3154004F5700000000000000000000000000000000041 -S3154004F5800000000000000000000000000000000031 -S3154004F5900000000000000000000000000000000021 -S3154004F5A00000000000000000000000000000000011 -S3154004F5B00000000000000000000000000000000001 -S3154004F5C000000000000000000000000000000000F1 -S3154004F5D000000000000000000000000000000000E1 -S3154004F5E000000000000000000000000000000000D1 -S3154004F5F000000000000000000000000000000000C1 -S3154004F60000000000000000000000000000000000B0 -S3154004F61000000000000000000000000000000000A0 -S3154004F6200000000000000000000000000000000090 -S3154004F6300000000000000000000000000000000080 -S3154004F6400000000000000000000000000000000070 -S3154004F6500000000000000000000000000000000060 -S3154004F6600000000000000000000000000000000050 -S3154004F6700000000000000000000000000000000040 -S3154004F6800000000000000000000000000000000030 -S3154004F6900000000000000000000000000000000020 -S3154004F6A00000000000000000000000000000000010 -S3154004F6B00000000000000000000000000000000000 -S3154004F6C000000000000000000000000000000000F0 -S3154004F6D000000000000000000000000000000000E0 -S3154004F6E000000000000000000000000000000000D0 -S3154004F6F000000000000000000000000000000000C0 -S3154004F70000000000000000000000000000000000AF -S3154004F710000000000000000000000000000000009F -S3154004F720000000000000000000000000000000008F -S3154004F730000000000000000000000000000000007F -S3154004F740000000000000000000000000000000006F -S3154004F750000000000000000000000000000000005F -S3154004F760000000000000000000000000000000004F -S3154004F770000000000000000000000000000000003F -S3154004F780000000000000000000000000000000002F -S3154004F790000000000000000000000000000000001F -S3154004F7A0000000000000000000000000000000000F -S3154004F7B000000000000000000000000000000000FF -S3154004F7C000000000000000000000000000000000EF -S3154004F7D000000000000000000000000000000000DF -S3154004F7E000000000000000000000000000000000CF -S3154004F7F000000000000000000000000000000000BF -S3154004F80000000000000000000000000000000000AE -S3154004F810000000000000000000000000000000009E -S3154004F820000000000000000000000000000000008E -S3154004F830000000000000000000000000000000007E -S3154004F840000000000000000000000000000000006E -S3154004F850000000000000000000000000000000005E -S3154004F860000000000000000000000000000000004E -S3154004F870000000000000000000000000000000003E -S3154004F880000000000000000000000000000000002E -S3154004F890000000000000000000000000000000001E -S3154004F8A0000000000000000000000000000000000E -S3154004F8B000000000000000000000000000000000FE -S3154004F8C000000000000000000000000000000000EE -S3154004F8D000000000000000000000000000000000DE -S3154004F8E000000000000000000000000000000000CE -S3154004F8F000000000000000000000000000000000BE -S3154004F90000000000000000000000000000000000AD -S3154004F910000000000000000000000000000000009D -S3154004F920000000000000000000000000000000008D -S3154004F930000000000000000000000000000000007D -S3154004F940000000000000000000000000000000006D -S3154004F950000000000000000000000000000000005D -S3154004F960000000000000000000000000000000004D -S3154004F970000000000000000000000000000000003D -S3154004F980000000000000000000000000000000002D -S3154004F990000000000000000000000000000000001D -S3154004F9A0000000000000000000000000000000000D -S3154004F9B000000000000000000000000000000000FD -S3154004F9C000000000000000000000000000000000ED -S3154004F9D000000000000000000000000000000000DD -S3154004F9E000000000000000000000000000000000CD -S3154004F9F000000000000000000000000000000000BD -S3154004FA0000000000000000000000000000000000AC -S3154004FA10000000000000000000000000000000009C -S3154004FA20000000000000000000000000000000008C -S3154004FA30000000000000000000000000000000007C -S3154004FA40000000000000000000000000000000006C -S3154004FA50000000000000000000000000000000005C -S3154004FA60000000000000000000000000000000004C -S3154004FA70000000000000000000000000000000003C -S3154004FA80000000000000000000000000000000002C -S3154004FA90000000000000000000000000000000001C -S3154004FAA0000000000000000000000000000000000C -S3154004FAB000000000000000000000000000000000FC -S3154004FAC000000000000000000000000000000000EC -S3154004FAD000000000000000000000000000000000DC -S3154004FAE000000000000000000000000000000000CC -S3154004FAF000000000000000000000000000000000BC -S3154004FB0000000000000000000000000000000000AB -S3154004FB10000000000000000000000000000000009B -S3154004FB20000000000000000000000000000000008B -S3154004FB30000000000000000000000000000000007B -S3154004FB40000000000000000000000000000000006B -S3154004FB50000000000000000000000000000000005B -S3154004FB60000000000000000000000000000000004B -S3154004FB70000000000000000000000000000000003B -S3154004FB80000000000000000000000000000000002B -S3154004FB90000000000000000000000000000000001B -S3154004FBA0000000000000000000000000000000000B -S3154004FBB000000000000000000000000000000000FB -S3154004FBC000000000000000000000000000000000EB -S3154004FBD000000000000000000000000000000000DB -S3154004FBE000000000000000000000000000000000CB -S3154004FBF000000000000000000000000000000000BB -S3154004FC0000000000000000000000000000000000AA -S3154004FC10000000000000000000000000000000009A -S3154004FC20000000000000000000000000000000008A -S3154004FC30000000000000000000000000000000007A -S3154004FC40000000000000000000000000000000006A -S3154004FC50000000000000000000000000000000005A -S3154004FC60000000000000000000000000000000004A -S3154004FC70000000000000000000000000000000003A -S3154004FC80000000000000000000000000000000002A -S3154004FC90000000000000000000000000000000001A -S3154004FCA0000000000000000000000000000000000A -S3154004FCB000000000000000000000000000000000FA -S3154004FCC000000000000000000000000000000000EA -S3154004FCD000000000000000000000000000000000DA -S3154004FCE000000000000000000000000000000000CA -S3154004FCF000000000000000000000000000000000BA -S3154004FD0000000000000000000000000000000000A9 -S3154004FD100000000000000000000000000000000099 -S3154004FD200000000000000000000000000000000089 -S3154004FD300000000000000000000000000000000079 -S3154004FD400000000000000000000000000000000069 -S3154004FD500000000000000000000000000000000059 -S3154004FD600000000000000000000000000000000049 -S3154004FD700000000000000000000000000000000039 -S3154004FD800000000000000000000000000000000029 -S3154004FD900000000000000000000000000000000019 -S3154004FDA00000000000000000000000000000000009 -S3154004FDB000000000000000000000000000000000F9 -S3154004FDC000000000000000000000000000000000E9 -S3154004FDD000000000000000000000000000000000D9 -S3154004FDE000000000000000000000000000000000C9 -S3154004FDF000000000000000000000000000000000B9 -S3154004FE0000000000000000000000000000000000A8 -S3154004FE100000000000000000000000000000000098 -S3154004FE200000000000000000000000000000000088 -S3154004FE300000000000000000000000000000000078 -S3154004FE400000000000000000000000000000000068 -S3154004FE500000000000000000000000000000000058 -S3154004FE600000000000000000000000000000000048 -S3154004FE700000000000000000000000000000000038 -S3154004FE800000000000000000000000000000000028 -S3154004FE900000000000000000000000000000000018 -S3154004FEA00000000000000000000000000000000008 -S3154004FEB000000000000000000000000000000000F8 -S3154004FEC000000000000000000000000000000000E8 -S3154004FED000000000000000000000000000000000D8 -S3154004FEE000000000000000000000000000000000C8 -S3154004FEF000000000000000000000000000000000B8 -S3154004FF0000000000000000000000000000000000A7 -S3154004FF100000000000000000000000000000000097 -S3154004FF200000000000000000000000000000000087 -S3154004FF300000000000000000000000000000000077 -S3154004FF400000000000000000000000000000000067 -S3154004FF500000000000000000000000000000000057 -S3154004FF600000000000000000000000000000000047 -S3154004FF700000000000000000000000000000000037 -S3154004FF800000000000000000000000000000000027 -S3154004FF900000000000000000000000000000000017 -S3154004FFA00000000000000000000000000000000007 -S3154004FFB000000000000000000000000000000000F7 -S3154004FFC000000000000000000000000000000000E7 -S3154004FFD000000000000000000000000000000000D7 -S3154004FFE000000000000000000000000000000000C7 -S3154004FFF000000000000000000000000000000000B7 -S3154005000000000002000000030000000000000000A0 -S315400500100000000100000000FFFFFFFE0000000396 -S3154005002055555554FFFFFFFE0000000355555554E1 -S31540050030700FFFFE00000007100249240000000073 -S315400500400000000000000000000000020000000360 -S315400500500000000000000003FFFFFFFEFFFFFFFF5B -S3154005006000000002FFFFFFFD000000000000000049 -S31540050070000000010000000000000000FFFFFFFF38 -S315400500800000000000000001FFFFFFFFFFFFFFFF2C -S31540050090FFFFFFFF00000001FFFFFFFFFFFFFFFE21 -S315400500A00000000300000000FFFFFFFEFFFFFFFD0D -S315400500B000000000000000090000000700000001E4 -S315400500C0FFFFFFF700000002FFFFFFFCFFFFFFF801 -S315400500D000000002FFFFFFFCFFFFFFF8FFFFFFFCEC -S315400500E00000000200000008FFFFFFFCFFFFFFFEC7 -S315400500F0FFFFFFF8FFFFFFF800000001FFFFFFF8D5 -S31540050100FFFFFFF7000000000000000B00000002A3 -S31540050110000000050000002F000000020000001747 -S3154005012000003039000002A700000012FFFF076CEF -S315400501300000004DFFFFFCC600003039FFFFFD59AA -S31540050140FFFFFFEEFFFF076CFFFFFFB30000033A1B -S3154005015000000091FFFFE84100000000FFFFFD841D -S31540050160FFFED02F000000000000F6FA006E498120 -S315400501700000000000000000000000000000000034 -S31540050180FFFFF0000000000200000003000000062B -S3154005019000000002FFFFFFFDFFFFFFFA0000000021 -S315400501A0000000010000000000000000FFFFFFFF07 -S315400501B00000000000000001FFFFFFFFFFFFFFFFFB -S315400501C0FFFFFFFF00000001FFFFFFFFFFFFFFFEF0 -S315400501D000000003FFFFFFFAFFFFFFFEFFFFFFFDE5 -S315400501E000000006000000000000000000000009B5 -S315400501F000000000000000000000000000000000B4 -S31540050200000000000000000100000002000000039D -S315400502100000000000000000000000000000000093 -S31540050220FFFFFFFF00020000000000000000000085 -S3154005023040050228400502284005023040050230A7 -S315400502404005023840050238400502404005024057 -S315400502504005024840050248400502504005025007 -S3154005026040050258400502584005026040050260B7 -S315400502704005026840050268400502704005027067 -S315400502804005027840050278400502804005028017 -S3154005029040050288400502884005029040050290C7 -S315400502A04005029840050298400502A0400502A077 -S315400502B0400502A8400502A8400502B0400502B027 -S315400502C0400502B8400502B8400502C0400502C0D7 -S315400502D0400502C8400502C8400502D0400502D087 -S315400502E0400502D8400502D8400502E0400502E037 -S315400502F0400502E8400502E8400502F0400502F0E7 -S31540050300400502F8400502F8400503004005030094 -S315400503104005030840050308400503104005031042 -S3154005032040050318400503184005032040050320F2 -S3154005033040050328400503284005033040050330A2 -S315400503404005033840050338400503404005034052 -S315400503504005034840050348400503504005035002 -S3154005036040050358400503584005036040050360B2 -S315400503704005036840050368400503704005037062 -S315400503804005037840050378400503804005038012 -S3154005039040050388400503884005039040050390C2 -S315400503A04005039840050398400503A0400503A072 -S315400503B0400503A8400503A8400503B0400503B022 -S315400503C0400503B8400503B8400503C0400503C0D2 -S315400503D0400503C8400503C8400503D0400503D082 -S315400503E0400503D8400503D8400503E0400503E032 -S315400503F0400503E8400503E8400503F0400503F0E2 -S31540050400400503F8400503F840050400400504008F -S31540050410400504084005040840050410400504103D -S3154005042040050418400504184005042040050420ED -S31540050430400504284005042840050430400504309D -S31540050440400504384005043840050440400504404D -S3154005045040050448400504484005045040050450FD -S3154005046040050458400504584005046040050460AD -S31540050470400504684005046840050470400504705D -S31540050480400504784005047840050480400504800D -S3154005049040050488400504884005049040050490BD -S315400504A04005049840050498400504A0400504A06D -S315400504B0400504A8400504A8400504B0400504B01D -S315400504C0400504B8400504B8400504C0400504C0CD -S315400504D0400504C8400504C8400504D0400504D07D -S315400504E0400504D8400504D8400504E0400504E02D -S315400504F0400504E8400504E8400504F0400504F0DD -S31540050500400504F8400504F840050500400505008A -S315400505104005050840050508400505104005051038 -S3154005052040050518400505184005052040050520E8 -S315400505304005052840050528400505304005053098 -S315400505404005053840050538400505404005054048 -S3154005055040050548400505484005055040050550F8 -S3154005056040050558400505584005056040050560A8 -S315400505704005056840050568400505704005057058 -S315400505804005057840050578400505804005058008 -S3154005059040050588400505884005059040050590B8 -S315400505A04005059840050598400505A0400505A068 -S315400505B0400505A8400505A8400505B0400505B018 -S315400505C0400505B8400505B8400505C0400505C0C8 -S315400505D0400505C8400505C8400505D0400505D078 -S315400505E0400505D8400505D8400505E0400505E028 -S315400505F0400505E8400505E8400505F0400505F0D8 -S31540050600400505F8400505F8400506004005060085 -S315400506104005060840050608400506104005061033 -S3154005062040050618400506184005062040050620E3 -S3154005063000000000400506300000000000000000F4 -S31540050640000000000000000200000000000000005D -S31540050650000000000000000000000000000000004F -S31540050660000000000000000000000000000000003F -S31540050670000000000000000000000000000000002F -S31540050680000000000000000000000000000000001F -S31540050690000000000000000000000000000000000F -S315400506A0000000000000000000000000400509941D -S315400506B040050A6040050B2C0000000000000000C4 -S315400506C000000000000000000000000000000000DF -S315400506D00000000000000000000000004001D110AD -S315400506E000000000000000000000000000000000BF -S315400506F000000000000000000000000000000000AF -S31540050700000000000000000000000000000000009E -S31540050710000000000000000000000000000000008E -S31540050720000000000000000000000000000000007E -S31540050730000000000000000000000000000000006E -S31540050740000000000000000000000000000000005E -S315400507500000000000000001330EABCD1234E66DFB -S31540050760DEEC0005000B0000000000000000000064 -S31540050770000000000000000000000000000000002E -S31540050780000000000000000000000000000000001E -S31540050790000000000000000000000000000000000E -S315400507A000000000000000000000000000000000FE -S315400507B000000000000000000000000000000000EE -S315400507C000000000000000000000000000000000DE -S315400507D000000000000000000000000000000000CE -S315400507E000000000000000000000000000000000BE -S315400507F000000000000000000000000000000000AE -S31540050800000000000000000000000000000000009D -S31540050810000000000000000000000000000000008D -S31540050820000000000000000000000000000000007D -S31540050830000000000000000000000000000000006D -S31540050840000000000000000000000000000000005D -S31540050850000000000000000000000000000000004D -S31540050860000000000000000000000000000000003D -S31540050870000000000000000000000000000000002D -S31540050880000000000000000000000000000000001D -S31540050890000000000000000000000000000000000D -S315400508A000000000000000000000000000000000FD -S315400508B000000000000000000000000000000000ED -S315400508C000000000000000000000000000000000DD -S315400508D000000000000000000000000000000000CD -S315400508E000000000000000000000000000000000BD -S315400508F000000000000000000000000000000000AD -S31540050900000000000000000000000000000000009C -S31540050910000000000000000000000000000000008C -S31540050920000000000000000000000000000000007C -S31540050930000000000000000000000000000000006C -S31540050940000000000000000000000000000000005C -S31540050950000000000000000000000000000000004C -S31540050960000000000000000000000000000000003C -S31540050970000000000000000000000000000000002C -S31540050980000000000000000000000000000000001C -S31540050990000000000000000000000000000000000C -S315400509A000000000000000000000000000000000FC -S315400509B000000000000000000000000000000000EC -S315400509C000000000000000000000000000000000DC -S315400509D000000000000000000000000000000000CC -S315400509E000000000000000000000000000000000BC -S315400509F000000000000000000000000000000000AC -S31540050A00000000000000000000000000000000009B -S31540050A10000000000000000000000000000000008B -S31540050A20000000000000000000000000000000007B -S31540050A30000000000000000000000000000000006B -S31540050A40000000000000000000000000000000005B -S31540050A50000000000000000000000000000000004B -S31540050A60000000000000000000000000000000003B -S31540050A70000000000000000000000000000000002B -S31540050A80000000000000000000000000000000001B -S31540050A90000000000000000000000000000000000B -S31540050AA000000000000000000000000000000000FB -S31540050AB000000000000000000000000000000000EB -S31540050AC000000000000000000000000000000000DB -S31540050AD000000000000000000000000000000000CB -S31540050AE000000000000000000000000000000000BB -S31540050AF000000000000000000000000000000000AB -S31540050B00000000000000000000000000000000009A -S31540050B10000000000000000000000000000000008A -S31540050B20000000000000000000000000000000007A -S31540050B30000000000000000000000000000000006A -S31540050B40000000000000000000000000000000005A -S31540050B50000000000000000000000000000000004A -S31540050B60000000000000000000000000000000003A -S31540050B70000000000000000000000000000000002A -S31540050B80000000000000000000000000000000001A -S31540050B90000000000000000000000000000000000A -S31540050BA000000000000000000000000000000000FA -S31540050BB000000000000000000000000000000000EA -S31540050BC000000000000000000000000000000000DA -S31540050BD000000000000000000000000000000000CA -S31540050BE000000000000000000000000000000000BA -S31540050BF00000000000000000400506A800000000B7 -S31540050C000000000000000000000000000000000099 -S31540050C100000000000000000000000000000000089 -S31540050C200000000000000000000000000000000079 -S31540050C3000000000800001000000000800000007D9 -S31540050C40000000060000000300000000FFFF8AD0F8 -S30940050C5080000310C2 +S31540048C30000000008000010000000008000000075A +S31540048C40000000060000000300000000FFFF8AD079 +S30D40048C5080000310000000003F S70540000000BA diff --git a/designs/leon3-arrow-bemicro-sdk/sram.srec b/designs/leon3-arrow-bemicro-sdk/sram.srec index 2c2ad0d2..89c3bc29 100755 --- a/designs/leon3-arrow-bemicro-sdk/sram.srec +++ b/designs/leon3-arrow-bemicro-sdk/sram.srec @@ -1,14 +1,14 @@ S00C00007372616D2E7372656365 S31540000000881000000910007281C123F4010000002D -S31540000010A1480000A75000001080203DAC102001F0 +S31540000010A1480000A75000001080203EAC102001EF S3154000002091D0200001000000010000000100000006 S3154000003091D02000010000000100000001000000F6 S31540000040A14800002910007281C5232C0100000040 -S31540000050A14800002910007081C52250010000000F -S31540000060A14800002910007081C522BC0100000093 +S31540000050A14800002910007081C5226801000000F7 +S31540000060A14800002910007081C522D4010000007B S3154000007091D02000010000000100000001000000B6 S3154000008091D02000010000000100000001000000A6 -S31540000090A1480000A75000001080201DAC10200988 +S31540000090A1480000A75000001080201EAC10200987 S315400000A091D0200001000000010000000100000086 S315400000B091D0200001000000010000000100000076 S315400000C091D0200001000000010000000100000066 @@ -16,21 +16,21 @@ S315400000D091D0200001000000010000000100000056 S315400000E091D0200001000000010000000100000046 S315400000F091D0200001000000010000000100000036 S3154000010091D0200001000000010000000100000025 -S31540000110AE102001A148000010807115A7500000C4 -S31540000120AE102002A148000010807111A7500000B7 -S31540000130AE102003A14800001080710DA7500000AA -S31540000140AE102004A148000010807109A75000009D -S31540000150AE102005A148000010807105A750000090 -S31540000160AE102006A148000010807101A750000083 -S31540000170AE102007A1480000108070FDA750000077 -S31540000180AE102008A1480000108070F9A75000006A -S31540000190AE102009A1480000108070F5A75000005D -S315400001A0AE10200AA1480000108070F1A750000050 -S315400001B0AE10200BA1480000108070EDA750000043 -S315400001C0AE10200CA1480000108070E9A750000036 -S315400001D0AE10200DA1480000108070E5A750000029 -S315400001E0AE10200EA1480000108070E1A75000001C -S315400001F0AE10200FA1480000108070DDA75000000F +S31540000110AE102001A14800001080711BA7500000BE +S31540000120AE102002A148000010807117A7500000B1 +S31540000130AE102003A148000010807113A7500000A4 +S31540000140AE102004A14800001080710FA750000097 +S31540000150AE102005A14800001080710BA75000008A +S31540000160AE102006A148000010807107A75000007D +S31540000170AE102007A148000010807103A750000070 +S31540000180AE102008A1480000108070FFA750000064 +S31540000190AE102009A1480000108070FBA750000057 +S315400001A0AE10200AA1480000108070F7A75000004A +S315400001B0AE10200BA1480000108070F3A75000003D +S315400001C0AE10200CA1480000108070EFA750000030 +S315400001D0AE10200DA1480000108070EBA750000023 +S315400001E0AE10200EA1480000108070E7A750000016 +S315400001F0AE10200FA1480000108070E3A750000009 S3154000020091D0200001000000010000000100000024 S3154000021091D0200001000000010000000100000014 S3154000022091D0200001000000010000000100000004 @@ -129,10 +129,10 @@ S315400007E091D020000100000001000000010000003F S315400007F091D020000100000001000000010000002F S3154000080091D020000100000001000000010000001E S3154000081091D020000100000001000000010000000E -S31540000820A14800002910007181C5209001000000F8 -S31540000830A148000010806EBBA750000001000000D8 +S31540000820A14800002910007181C520A801000000E0 +S31540000830A148000010806EC1A750000001000000D2 S3154000084091D02000010000000100000001000000DE -S31540000850A14800002910007181C5207401000000E4 +S31540000850A14800002910007181C5208C01000000CC S3154000086091D02000010000000100000001000000BE S3154000087091D02000010000000100000001000000AE S3154000088091D020000100000001000000010000009E @@ -255,132 +255,132 @@ S31540000FC091D0200001000000010000000100000057 S31540000FD091D0200001000000010000000100000047 S31540000FE091D0200001000000010000000100000037 S31540000FF091D0200001000000010000000100000027 -S315400010009DE3BFC0051001438410A0600710014452 +S315400010009DE3BFC0051001238410A0600710012492 S315400010108610E1B8821000008620C00286A0E00853 -S3154000102036BFFFFFC038800311100144901221B82B -S31540001030C022000040006D480100000040006D489D -S315400010400100000040006EFA01000000111000741B -S315400010509012213040006848010000004000702E88 -S3154000106001000000400000430100000040006E25E2 -S315400010700100000081C7E00881E800009DE3BF98B9 -S3154000108023100143C20C606080A0600012800015EE -S315400010902110008010800005C204200C9FC3400030 -S315400010A0C224200CC204200CDA00400080A3600059 -S315400010B012BFFFFB82006004030000008210600044 -S315400010C080A060000280000682102001111000748A -S315400010D06FFFFBCC901220C082102001C22C6060B2 -S315400010E081C7E00881E800009DE3BF9881C7E0081A -S315400010F081E800009DE3BF98030000008210600075 -S31540001100111000741310014380A06000901220C09B -S3154000111002800004921260646FFFFBBA0100000077 -S315400011201B100144C20361B880A060000280000920 -S31540001130B01361B8030000008210600080A0600018 -S3154000114002800004010000006FFFFBAE81E8000052 -S315400011500100000081C7E00881E800009DE3BF98D8 -S3154000116081C7E00881E8000081C3E0080100000073 -S315400011709DE3BF984000000F212000014000014E32 -S3154000118001000000921020014000417D1120000125 -S31540001190921020024000417A9014210040003C27E2 -S315400011A0901422004000000E81E80000010000007B -S315400011B09DE3BF98400000290100000080A2200066 -S315400011C01280000503100080D80060109A1020019C -S315400011D0DA23201081C7E00891E820000310008040 -S315400011E0D80060109A102001DA23201481C3E00849 -S315400011F09010200003100080DA006010D0234000D9 -S3154000120081C3E0089010200003100080DA006010CF -S31540001210D023600881C3E0089010200003100080AE -S31540001220DA006010D023600481C3E00890102000EB -S3154000123013100080921260149010200081C3E008C1 -S31540001240D0EA4020901020001310008092126014C3 -S3154000125081C3E008D0224000914440009132201CD6 -S3154000126081C3E008900A200F81C3E008D0820020A5 -S315400012709010200C81C3E008D08200408210000804 -S3154000128080A20009148000039022000990224001A8 -S3154000129081C3E00801000000932A60028210200109 -S315400012A0C22200099810200080A3000A1680000A76 -S315400012B096102001832B2002DA02000180A0000D47 -S315400012C0826020009803200180A3000A06BFFFFA2F -S315400012D0960AC00180A2E00002BFFFF498102000E9 -S315400012E081C3E008010000009DE3BF98C2062010BC -S315400012F08330601CA0100018A400600180A4A001E7 -S315400013000280006CB0103FFF7FFFFFD40100000059 -S31540001310AA100008912A20047FFFFFBC90022007F4 -S315400013207FFFFFD40100000003020000808A000115 -S315400013300280005C010000009A05600182102001D5 -S315400013408328400D11100080C2242010901220A046 -S31540001350921000157FFFFFD19410001203100080F9 -S3154000136082106018A12D6002C0204010DA004010A3 -S31540001370A610000180A36009291001431480002BA8 -S31540001380AC1000017FFFFFAB0100000080A22000EF -S3154000139012BFFFFD01000000B010200080A6001221 -S315400013A0168000140100000010800005A2100016EF -S315400013B080A600121680000F01000000832E200236 -S315400013C0D0044010D20440017FFFFFADB00620019B -S315400013D080A2200104BFFFF7901020027FFFFF90FC -S315400013E00100000080A6001206BFFFF6832E2002F1 -S315400013F0C205207C82006001C225207C7FFFFF92CF -S3154000140001000000C204C01082006001C224C01066 -S31540001410DA04C01080A3600904BFFFDB111000800E -S31540001420108000049012205C111000809012205C05 -S31540001430921000157FFFFF9994100012832CA00292 -S3154000144082004012A0004001DA05207C80A4000DF5 -S3154000145002800004231001437FFFFF719010200398 -S31540001460C204607C80A06000048000060100000089 -S31540001470C204607C80A400011680000580A560003F -S315400014807FFFFF679010200380A56000228000093F -S31540001490B010200091D0200010800006B01020002F -S315400014A07FFFFF5F9010200110BFFFA59A056001E6 -S315400014B081C7E00881E800009DE3BF98C20620107E -S315400014C0A01000188330601C80A0600002800009D4 -S315400014D0B0103FFF7FFFFF610100000080A22000A7 -S315400014E0128000040300003F821063FFC2242010D4 -S315400014F081C7E00881E800009DE3BF98C20620103E -S315400015008330601CA400600180A4A00102800068B2 -S31540001510B0103FFF7FFFFF5101000000AA100008F6 -S31540001520912A20047FFFFF39900220077FFFFF5159 -S315400015300100000003020000808A0001028000587A -S315400015400100000011100080901220A0921000159A -S315400015507FFFFF5294100012031000808210601823 -S31540001560A12D6002C0204010DA004010A6100001F4 -S3154000157080A36009291001431480002BAC100001A0 -S315400015807FFFFF2C0100000080A2200012BFFFFD5C -S3154000159001000000B010200080A600121680001442 -S315400015A00100000010800005A210001680A600125F -S315400015B01680000F01000000832E2002D004401048 -S315400015C0D20440017FFFFF2EB006200180A22001F9 -S315400015D004BFFFF7901020027FFFFF1101000000BB -S315400015E080A6001206BFFFF6832E2002C205207C8D -S315400015F082006001C225207C7FFFFF1301000000AE -S31540001600C204C01082006001C224C010DA04C010B7 -S3154000161080A3600904BFFFDB111000801080000426 -S315400016209012205C111000809012205C92100015E0 -S315400016307FFFFF1A94100012832CA00282004012F2 -S31540001640A0004001DA05207C80A4000D0280000441 -S31540001650231001437FFFFEF290102003C204607CFA -S3154000166080A060000480000601000000C204607C87 -S3154000167080A400011680000580A560007FFFFEE87B -S315400016809010200380A5600022800009B010200041 -S3154000169091D0200010800006B01020007FFFFEE0B1 -S315400016A09010200110BFFFA91110008081C7E008EB -S315400016B081E800009DE3BF98312000009216220089 -S315400016C09410200040004535901020014000423ED5 -S315400016D090162200901623004000459A921020084A -S315400016E0B01621004000412B81E8000001000000B7 -S315400016F09DE3BF9821200000921422009410200000 -S3154000170040004526901020014000422F90142200B0 -S31540001710921000184000458B90142300B01421000D -S315400017204000411C81E8000001000000000000006C -S315400017300000000000000000000000000000000063 -S315400017400000000000000000000000000000000053 -S315400017500000000000000000000000000000000043 -S315400017600000000000000000000000000000000033 -S315400017700000000000000000000000000000000023 -S315400017800000000000000000000000000000000013 -S315400017900000000000000000000000000000000003 -S315400017A000000000000000000000000000000000F3 -S315400017B000000000000000000000000000000000E3 -S315400017C000000000000000000000000000000000D3 -S315400017D000000000000000000000000000000000C3 +S3154000102036BFFFFFC038800311100124901221B84B +S31540001030C022000040006D4E0100000040006D4E91 +S315400010400100000040006EFA010000001110007619 +S31540001050901221FC400068F30100000040007261DC +S31540001060010000004000004F0100000040006E2BD0 +S315400010700100000081C7E00881E800009DE3BFA0B1 +S3154000108021100123C20C206080A060001280002243 +S3154000109023100123C20460642710007625100076D1 +S315400010A0A614E164A414A168A4248013A53CA0025C +S315400010B0A404BFFF80A040123A80000E0300000047 +S315400010C0A21460648200600185286002C224400048 +S315400010D0C204C0029FC0400001000000C20440009C +S315400010E080A040120ABFFFF98200600103000000A1 +S315400010F08210600080A060000280000682102001FD +S31540001100111000746FFFFBBF901220A082102001C7 +S31540001110C22C206081C7E00881E800009DE3BFA0A3 +S3154000112081C7E00881E800009DE3BFA003000000FE +S315400011308210600080A06000228000081110012407 +S315400011401110007413100123901220A06FFFFBAD05 +S315400011509212606811100124C20221B880A060007A +S3154000116002800009901221B803000000821060003E +S3154000117080A0600002800004010000009FC0400083 +S315400011800100000081C7E00881E800009DE3BFA0A0 +S3154000119081C7E00881E8000081C3E0080100000043 +S315400011A09DE3BFA04000002B212000014000017CB0 +S315400011B001000000921020014000416F1120000103 +S315400011C0921020024000416C9014210040003C1FC8 +S315400011D0901422004000000381E800000100000056 +S315400011E003100080C200601084102001901020007F +S315400011F0C420601481C3E008010000000310008091 +S31540001200C20060108410000890102000C4204000E6 +S3154000121081C3E0080100000003100080C200601096 +S315400012208410000890102000C420600881C3E008A4 +S315400012300100000003100080C20060108410000806 +S3154000124090102000C420600481C3E0080100000023 +S315400012509DE3BFA0400000140100000080A22000D2 +S315400012601280000503100080C20060108410200127 +S31540001270C420601081C7E00891E820001310008068 +S31540001280921260149010200081C3E008D0EA4020FA +S3154000129090102000131000809212601481C3E00861 +S315400012A0D0224000914440009132201C81C3E00886 +S315400012B0900A200F81C3E008D08200209010200CB5 +S315400012C081C3E008D08200409DE3BFA0C206201043 +S315400012D0A01000188330601C80A0600002800009C6 +S315400012E0B0103FFF7FFFFFF00100000080A220000A +S315400012F0128000040300003F821063FFC2242010C6 +S3154000130081C7E00881E800009DE3BFA0E406201005 +S31540001310A534A01CA404A00180A4A0010280003C26 +S31540001320B0103FFF7FFFFFE001000000AA10000859 +S31540001330912A20047FFFFFB9900220077FFFFFE03C +S315400013400100000003020000808A00010280007450 +S3154000135001000000A72D60020910008088112018A6 +S315400013608210200184102001C22100138210200027 +S3154000137080A48001148000098728600280A0A00014 +S3154000138012800025821020008410200180A4800154 +S3154000139004BFFFFB87286002C601000380A000034C +S315400013A0820060018660200010BFFFF2840880033F +S315400013B0C205A080852CA003A12CA001A004000298 +S315400013C080A4000102800004010000007FFFFF9A14 +S315400013D090102003C205A08080A060000480000613 +S315400013E003100123C200608080A40001168000051E +S315400013F080A560007FFFFF909010200380A56000CD +S3154000140002800003B010200091D0200081C7E00880 +S3154000141081E8000023100080A21460A02D10012353 +S31540001420C0244013C204401380A0600914800027E2 +S3154000143009100080A815A0807FFFFF9101000000E1 +S3154000144080A2200012BFFFFD80A4A00004800013EC +S3154000145001000000A0102000C4044013832C200289 +S31540001460C204400180A08001A00420010480000342 +S31540001470862040028620800180A0E001048000058D +S3154000148080A480107FFFFF6C9010200280A4801003 +S3154000149014BFFFF201000000C20500008200600197 +S315400014A0C22500007FFFFF7B01000000C2044013FD +S315400014B082006001C2244013C204401380A0600928 +S315400014C004BFFFDE091000808811205C82102001D5 +S315400014D084102001C22100138210200080A48001C4 +S315400014E0148000098728600280A0A00012BFFFB1C7 +S315400014F0821020008410200180A4800104BFFFFBDD +S3154000150087286002C601000380A0000382006001B4 +S315400015108660200010BFFFF2840880037FFFFF46ED +S315400015209010200110BFFF8DA72D60029DE3BFA044 +S31540001530E4062010A0100018A534A01CA404A001A5 +S3154000154080A4A0010280003FB0103FFF7FFFFF56FE +S3154000155001000000AA100008912A20047FFFFF2FF7 +S31540001560900220077FFFFF560100000003020000A3 +S31540001570808A00010280007701000000A72D6002EA +S31540001580091000808811201882102001840560010E +S3154000159085284002C4242010C22100138410200153 +S315400015A08210200080A480011480000987286002F0 +S315400015B080A0A00012800025821020008410200107 +S315400015C080A4800104BFFFFB87286002C601000398 +S315400015D080A00003820060018660200010BFFFF2F9 +S315400015E084088003C205A080852CA003A12CA001FD +S315400015F0A004000280A40001028000040100000053 +S315400016007FFFFF0D90102003C205A08080A06000E0 +S315400016100480000603100123C200608080A40001FC +S315400016201680000580A560007FFFFF039010200311 +S3154000163080A5600002800003B010200091D02000F9 +S3154000164081C7E00881E8000023100080A21460A052 +S315400016502D100123C0244013C204401380A060090A +S315400016601480002709100080A815A0807FFFFF0482 +S315400016700100000080A2200012BFFFFD80A4A00050 +S315400016800480001301000000A0102000C404401391 +S31540001690832C2002C204400180A08001A0042001C6 +S315400016A004800003862040028620800180A0E0015D +S315400016B00480000580A480107FFFFEDF901020028A +S315400016C080A4801014BFFFF201000000C205000094 +S315400016D082006001C22500007FFFFEEE010000008F +S315400016E0C204401382006001C2244013C204401366 +S315400016F080A0600904BFFFDE091000808811205CCD +S315400017008210200184102001C22100138210200083 +S3154000171080A48001148000098728600280A0A00070 +S3154000172012BFFFB1821020008410200180A48001E6 +S3154000173004BFFFFB87286002C601000380A00003A8 +S31540001740820060018660200010BFFFF2840880039B +S315400017507FFFFEB99010200110BFFF8AA72D6002BF +S315400017609DE3BFA021200000941020009214220087 +S315400017704000455190102001400044099014220039 +S31540001780921000184000459590142300B014210093 +S315400017904000414581E80000010000009DE3BFA0F4 +S315400017A0312000009410200092162200400045424D +S315400017B090102001400043FA901622009016230014 +S315400017C04000458692102008B01621004000413660 +S315400017D081E8000001000000000000000000000059 S315400017E000000000000000000000000000000000B3 S315400017F000000000000000000000000000000000A3 S315400018000000000000000000000000000000000092 @@ -2049,39 +2049,39 @@ S31540007FE0000000000000000000000000000000004B S31540007FF0000000000000000000000000000000003B S315400080009DE3BF9081C7E00881E8000003000010AF S31540008010C48000408088800112BFFFFE010000003E -S315400080209DE3BF909DE3BF909DE3BF909DE3BF90CE -S315400080309DE3BF909DE3BF9021044444A0142111C9 -S3154000804023088888A2146222250CCCCCA414A3331E -S3154000805027111111A614E04429155555A815215587 -S315400080602B199999AA1562662D1DDDDDAC15A377EE -S315400080702F222222AE15E08801100000E03FBFE02B -S31540008080E43FBFE8E83FBFF0EC3FBFF88210001E78 -S315400080908220601CC0A041E082206008C0A041E070 -S315400080A082206008C0A041E082206008C0A041E074 -S315400080B0C0A002209DE3BF909DE3BF9081E80000F1 -S315400080C081E800000100000001000000E01FBFE061 -S315400080D0E41FBFE8E81FBFF0EC1FBFF8EC6FBFF826 -S315400080E0EC7FBFF8010000000100000081E80000BD +S31540008020C46FBFF89DE3BF909DE3BF909DE3BF90B3 +S315400080309DE3BF909DE3BF909DE3BF9021044444E0 +S31540008040A014211123088888A2146222250CCCCCC6 +S31540008050A414A33327111111A614E044291555552C +S31540008060A81521552B199999AA1562662D1DDDDD96 +S31540008070AC15A3772F222222AE15E088011000000E +S31540008080E03FBFE0E43FBFE8E83FBFF0EC3FBFF86A +S315400080908210001E8220601CC0A041E08220600841 +S315400080A0C0A041E082206008C0A041E08220600874 +S315400080B0C0A041E0C0A002209DE3BF909DE3BF90D9 +S315400080C081E8000081E80000010000000100000096 +S315400080D0E01FBFE0E41FBFE8E81FBFF0EC1FBFF89A +S315400080E0EC6FBFF8EC7FBFF8010000000100000014 S315400080F081E8000081E8000081E8000081E8000096 -S3154000810081C7E00881E80000A7500000AA102400BB -S31540008110A8102300EC854320EA8503202F10002079 -S31540008120AE15E158EE05C000E805C000EA05E004DA -S31540008130EC05E008AC15A000C0A58300EA250000C8 -S31540008140AE05E00C2B100020AA156158EE25400024 -S3154000815081C4400081CC8000000000000100000086 -S3154000816000000000000000000000000000000000C9 +S3154000810081E8000081C7E00881E80000A750000030 +S31540008110AA102400A8102300EC854320EA850320FA +S315400081202F100020AE15E160EE05C000E805C00046 +S31540008130EA05E004EC05E008AC15A000C0A5830004 +S31540008140EA250000AE05E00C2B100020AA15616060 +S31540008150EE25400081C4400081CC80000100000033 +S3154000816000000000010000000000000000000000C8 S3154000817000000000000000000000000000000000B9 S3154000818000000000000000000000000000000000A9 -S315400081900000000000000000000000000100000098 -S315400081A081C3E008D0A003200100000001000000C8 +S315400081900000000000000000000000000000000099 +S315400081A00000000001000000010000000100000086 S315400081B00100000001000000010000000100000075 -S315400081C09DE3BF90FC2780009007A0019410001EFD -S315400081D0D1E7816AD1E7816A9402A0019002200129 -S315400081E0D1E7816AD1E7816AD60780009622C01E10 -S315400081F0B0A2E00202800004900020017FFFE40864 -S315400082000100000081C7E00881E80000010000008D -S315400082100100000001000000010000000100000014 -S315400082200100000001000000010000000100000004 +S315400081C081C3E008D0A003200100000001000000A8 +S315400081D00100000001000000010000000100000055 +S315400081E09DE3BF90FC2780009007A0019410001EDD +S315400081F0D1E7816AD1E7816A9402A0019002200109 +S31540008200D1E7816AD1E7816AD60780009622C01EEF +S31540008210B0A2E00202800004900020017FFFE40645 +S315400082200100000081C7E00881E80000010000006D S3154000823001000000010000000100000001000000F4 S3154000824001000000010000000100000001000000E4 S3154000825001000000010000000100000001000000D4 @@ -4095,3247 +4095,3247 @@ S3154000FFC001000000010000000100000001000000E7 S3154000FFD001000000010000000100000001000000D7 S3154000FFE001000000010000000100000001000000C7 S3154000FFF001000000010000000100000001000000B7 -S315400100009DE3BF90C207A068A40060261B00003F85 -S315400100109A1363FF030000239E0C800DAC106111FF -S31540010020AB376010820D400DAC03C0169E0F400DDC -S3154001003099372010AC058001820B000DAC05800F6D -S315400100409E0F000DAC058001AC05800F8335A010D5 -S315400100508208400D9E0D800DAC03C001C207A06809 -S3154001006094006034C207A05C93286011C207A0685F -S315400100709E0863FFD607A060C207A074D420400043 -S31540010080D827BFF4EE07A070833620109935A0100B -S31540010090980B000DA136E010A336E008C22DC00032 -S315400100A0F62DE00B9A0D800D82102008B6102045E2 -S315400100B0972AE012AC03400C9612C009C22DE00CFF -S315400100C0F62DE00E9B36200899366010953660086D -S315400100D09336A0109136A008A73CA0088210204074 -S315400100E0B6102011A9376018DA2DE001F02DE00293 -S315400100F0D82DE003D42DE004F22DE005D22DE00603 -S31540010100D02DE007F42DE008E02DE009E22DE00ACC -S31540010110C22DE016F62DE017E42DE011E62DE01094 -S31540010120E82DE01AC02DE00DC02DE00FC02DE012E4 -S31540010130C02DE013C02DE014C02DE015D807A068EE -S315400101409F2BE007C207A0649612C00F92032012AC -S31540010150AC380016E407A06C9B3AE0189130601861 -S31540010160A1306010A3306008B7376008B537201852 -S31540010170B3372008B135A0089F3A6008993AE01094 -S31540010180953AE008EA2DE01BF62DE01CF42DE01E21 -S31540010190F22DE020F02DE018EC2DE019DE2DE026C1 -S315400101A0D22DE027DA2DE02CD82DE02DD42DE02ECE -S315400101B0D62DE02FD02DE030E02DE031E22DE0329A -S315400101C0C22DE033DA07A05CFA2DE01DC207BFF469 -S315400101D080A36000C22DE01FF82DE021C02DE02252 -S315400101E0C02DE023C02DE024C02DE025C02DE02800 -S315400101F0C02DE029C02DE02A0280000EC02DE02B43 -S31540010200B8102000D807A06880A7000C1A80000902 -S31540010210BA05C01CC20C801CC22F6034B80720012D -S31540010220DA07A06880A7000D0ABFFFFBBA05C01C0C -S3154001023081C7E00881E800009DE3BD1040002BD650 -S3154001024090102000B610000840002BD390102004D7 -S31540010250BA100008391001447FFFC3E7110040740A -S31540010260A01720D0A6103FDEA8103FADAA103FBE72 -S31540010270AC103FEFAE102020F02720D0E62C200412 -S31540010280E82C2005EA2C2006EC2C2007C02C20085F -S31540010290EE2C2009400002B590100010D004201029 -S315400102A092102000400001CBD40720D0A492200018 -S315400102B0068000650100000015000010D0042010E2 -S315400102C09414800A9210200040000218D60720D0CC -S315400102D0EA2FBF0082103FF2EA2FBEFAE62FBEFE9A -S315400102E0E82FBEFFEC2FBF01EE2FBF03C22FBF0584 -S315400102F0E62FBEF8E82FBEF9EC2FBEFBC02FBEFCA1 -S31540010300EE2FBEFDC02FBF02C02FBF04A010200E8E -S31540010310AA07BFF882054010E0287F00A00420010B -S3154001032080A420FF04BFFFFD82054010AC07BDF845 -S3154001033090100016400003D6921720D080A22000CC -S3154001034002BFFFFD90100016B207BEF890102100C3 -S315400103509210001940000382941720D080A22000F9 -S3154001036002BFFFFC901021009010001D9210001B4F -S315400103704000040F941720D080A2200002BFFFFC4A -S315400103809010001DC207400080A061002280001825 -S31540010390A01020007FFFC3A29010200110800014FE -S315400103A0A01020000480002380A060020280001F6C -S315400103B080A0600322800002A21000128205401034 -S315400103C0DA087F00B00C60FF80A340182280000548 -S315400103D0A00420017FFFC39290102002A0042001B7 -S315400103E080A420FF1480001C821720D0808C20031B -S315400103F012800005833C201F82058010E480402046 -S31540010400833C201F8330601E8204000182087FFCEA -S315400104108224000180A0600112BFFFE301000000B9 -S3154001042010BFFFE7A334A01010BFFFE5A334A00817 -S3154001043080A0600022BFFFE2A334A01810BFFFE1F5 -S31540010440820540107FFFC3769010200010BFFF9CAD -S3154001045015000010DA00601480A3600002800135A7 -S31540010460C20720D08200601CF480402040002B4A05 -S31540010470901021008210202AC2274000AE100008A9 -S3154001048082102004170037AB1B377BBF9A1363CC0E -S315400104909612E1BEC22DE01315003BC098103FFFF6 -S315400104A09412A020921020DE9132E0089E1020EF97 -S315400104B0A0102008A2102006A4102001A733601026 -S315400104C0A9336008821020DDD82DE005C22DE01C3D -S315400104D0DA2DE01FD82DC000D82DE001D82DE0023D -S315400104E0D82DE003D82DE004E02DE010E22DE012F6 -S315400104F0E42DE015D22DE016D02DE017D62DE018CB -S31540010500DE2DE019D42DE01BE62DE01DE82DE01E81 -S31540010510D22DE006D02DE007D62DE008DE2DE009EC -S31540010520C02DE00AD42DE00BE02DE00CE22DE00DCC -S31540010530C02DE00EE42DE00FC02DE011C02DE014DA -S31540010540C02DE01AC02DE0208336A0189B36A0109E -S315400105509936A008C22DE026DA2DE027D82DE028CD -S31540010560C02DE021C02DE022C02DE023C02DE02486 -S31540010570C02DE025F42DE0299010001640000344DB -S31540010580921720D080A2200002BFFFFD90100016D6 -S31540010590D007400092100017400002F1941720D076 -S315400105A080A2200022BFFFFCD00740009010001D12 -S315400105B09210001B4000037E941720D080A2200099 -S315400105C002BFFFFC9010001D9807BE0ED88B00207D -S315400105D0980B20FF992B20108207BE0FC28840201E -S315400105E0820860FF83286008981300019A07BE10AD -S315400105F0DA8B40209A0B60FFA213000D9607BE11BD -S31540010600D68AC020960AE0FF972AE0108207BE12DA -S31540010610C2884020820860FF832860089612C00184 -S315400106209A07BE13DA8B40209A0B60FFA612C00DC3 -S31540010630A807BD90150037AB17003BC0C023A05C8F -S31540010640C023A060E823A064C023A068C023A06C97 -S31540010650EE23A070FA23A0749412A1BE9612E02054 -S3154001066090100011921000139810001A7FFFFE653A -S315400106709A10001A9010001640000305921720D0D8 -S3154001068080A2200002BFFFFD90100016D007400057 -S3154001069092100017400002B2941720D080A2200089 -S315400106A022BFFFFCD00740009010001D9210001B96 -S315400106B04000033F941720D080A2200002BFFFFCD8 -S315400106C09010001D9807BE24D88B0020992B201826 -S315400106D08207BE25DA8840209A0B60FF9B2B60106B -S315400106E09813000D8207BE26C2884020820860FF0B -S315400106F083286008981300019A07BE27DA8B4020A9 -S315400107009A0B60FFA413000D03000080808C8001CA -S3154001071012800003A134A012A00420019A1020489F -S3154001072082102001DA23A068150037AB17003BC0C1 -S31540010730C223A05CF223A06CE023A060E823A0645E -S31540010740EE23A070FA23A0749412A1BE9612E02063 -S3154001075090100011921000139810001A7FFFFE2985 -S315400107609A10001A90100016400002C9921720D024 -S3154001077080A2200002BFFFFD90100016D007400066 -S315400107809210001740000276941720D080A22000D4 -S3154001079022BFFFFCD00740009010001D9210001BA5 -S315400107A040000303941720D080A2200002BFFFFC23 -S315400107B09010001D9A07BE25C28B4020808860029A -S315400107C022800005A00420017FFFC29590102003DE -S315400107D0A004200182102048150037AB17003BC00A -S315400107E09810001AE023A060E823A064C223A06801 -S315400107F0C023A05CC023A06CEE23A070FA23A07492 -S3154001080090100011921000139412A1BE9612E0208E -S315400108107FFFFDFC9A10001A901000164000029CC2 -S31540010820921720D080A2200002BFFFFD9010001633 -S31540010830D00740009210001740000249941720D07B -S3154001084080A2200022BFFFFCD00740009010001D6F -S315400108509210001B400002D6941720D080A220009F -S3154001086002BFFFFC9010001DC207400080A0607CC3 -S3154001087022800005A605A0347FFFC269901020049E -S31540010880A605A03410800013A01020000480002289 -S3154001089080A060020280001D80A0600322800002C9 -S315400108A0B00CA0FF82054010DA087F0080A34018F3 -S315400108B022800005A00420017FFFC2599010200527 -S315400108C0A004200180A4204714800018A604E0015A -S315400108D0808C200312800004833C201FE484C020C6 -S315400108E0833C201F8330601E8204000182087FFC06 -S315400108F08224000180A0600112BFFFE5A334A0104D -S3154001090010BFFFE9B00C60FFA334A00810BFFFE69B -S31540010910B00C60FF80A0600022BFFFE3B134A01895 -S3154001092010BFFFE28205401040002A2290100017B6 -S3154001093081C7E00891E820009DE3BF88F027A044E5 -S31540010940C207A044820040019010000140002A12D3 -S315400109500100000082100008C227BFF4DA07BFF485 -S31540010960C207A0449A034001C207A04482007FFF08 -S3154001097082380001820B4001C227BFF4C207BFF48F -S31540010980C227BFF0C027BFECC207BFEC80A0607F83 -S315400109901480000C01000000C207BFEC9B286003D5 -S315400109A0C207BFF082034001C0204000C207BFEC2E -S315400109B082006001C227BFEC10BFFFF401000000B6 -S315400109C0C207BFF4B010000181C7E00881E800000A -S315400109D09DE3BF90F027A044F227A048F427A04CFE -S315400109E0C207A04C820060109010000140000046F2 -S315400109F001000000D027BFF4C207BFF48208600897 -S31540010A0080A06000028000040100000010BFFFF5D5 -S31540010A1001000000C207A0449B28600BC207A04802 -S31540010A208208601F8328600682134001821060029B -S31540010A30C227BFF4C207A04C82006010901000018B -S31540010A40D207BFF44000002701000000C207A04CB6 -S31540010A5082006010901000014000002B0100000050 -S31540010A60D027BFF4C207BFF48208600880A06000A7 -S31540010A70028000040100000010BFFFF501000000E4 -S31540010A80C207BFF48208601080A060001280001087 -S31540010A9001000000C207A04C8200601090100001C6 -S31540010AA04000001901000000D027BFF4C207BFF47F -S31540010AB0833060101B00003F9A1363FF8208400D8C -S31540010AC0C227BFF0108000040100000082103FFFE2 -S31540010AD0C227BFF0F007BFF081C7E00881E80000F8 -S31540010AE09DE3BF98F027A044F227A048C207A0443F -S31540010AF0FA07A048FA204000B010000181C7E0087B -S31540010B0081E800009DE3BF90F027A044C207A044BE -S31540010B10C2804020C227BFF4C207BFF4B010000113 -S31540010B2081C7E00881E800009DE3BF90F027A0441B -S31540010B30F227A048F427A04CF627A050C207A050A0 -S31540010B4082006010901000017FFFFFEF010000005E -S31540010B50D027BFF4C207BFF48208600880A06000B6 -S31540010B60028000040100000010BFFFF501000000F3 -S31540010B70DA07A04C0300003F821063FF820B40015D -S31540010B809B286010C207A0448328600B9A1340013A -S31540010B90C207A0488208601F83286006821340016D -S31540010BA082106001C227BFF4C207A05082006010C4 -S31540010BB090100001D207BFF47FFFFFCA0100000079 -S31540010BC0C207A05082006010901000017FFFFFCE47 -S31540010BD001000000D027BFF4C207BFF482086008B5 -S31540010BE080A06000028000040100000010BFFFF5F4 -S31540010BF00100000081C7E00881E800009DE3BF983D -S31540010C00F027A044F227A048DA07A044C207A0482B -S31540010C10C2084000C22B6004D807A0449A102001A4 -S31540010C20C207A04882034001C2084000C22B2005EA -S31540010C30D807A0449A102002C207A0488203400167 -S31540010C40C2084000C22B2006D807A0449A102003B0 -S31540010C50C207A04882034001C2084000C22B2007B8 -S31540010C60D807A0449A102004C207A0488203400135 -S31540010C70C2084000C22B2008D807A0449A1020057C -S31540010C80C207A04882034001C2084000C22B200986 -S31540010C90C207A044C200400096006008C207A048AF -S31540010CA0C2084000820860FF992860089A10200116 -S31540010CB0C207A04882034001C2084000820860FF83 -S31540010CC0821300019010000B921000017FFFFF85F7 -S31540010CD001000000C207A044C20040009600600C1B -S31540010CE09A102002C207A04882034001C208400070 -S31540010CF0820860FF992860189A102003C207A0480D -S31540010D0082034001C2084000820860FF83286010C8 -S31540010D10981300019A102004C207A048820340019B -S31540010D20C2084000820860FF8328600898130001CA -S31540010D309A102005C207A04882034001C20840001C -S31540010D40820860FF821300019010000B921000018F -S31540010D507FFFFF640100000082102001B0100001F6 -S31540010D6081C7E00881E800009DE3BF80F027A044E9 -S31540010D70C207A044D00040007FFFFF63010000008E -S31540010D80D027BFF4DA07A044C207BFF48330601B03 -S31540010D9082086001C223600CDA07A044C207BFF48F -S31540010DA08330601F82086001C2236014C207A044D9 -S31540010DB0C200601480A06000128000130100000090 -S31540010DC0C207A044D0004000921020407FFFFF455B -S31540010DD001000000C207A044D00040007FFFFF4A47 -S31540010DE001000000D027BFF4C207BFF4820860406B -S31540010DF080A06000028000040100000010BFFFF6E1 -S31540010E0001000000C207A044C200400082006010F9 -S31540010E10901000017FFFFF3C01000000D027BFF486 -S31540010E20DA07A044C207BFF48330600B8208601F13 -S31540010E30C2236010E007A044901024007FFFFEBF4C -S31540010E4001000000D0242018E007A044901024009F -S31540010E507FFFFEBA01000000D024201CC207A04437 -S31540010E60C200400082006014DA07A04490100001DD -S31540010E70D20360187FFFFF1B01000000C207A04498 -S31540010E80C200400082006018DA07A04490100001B9 -S31540010E90D203601C7FFFFF1301000000C207A0447C -S31540010EA0C0206020C207A044C0206024C207A044DD -S31540010EB0C0206028C207A044C020602CC207A044BD -S31540010EC0C200601480A0600012800083010000000F -S31540010ED0C207A044DA07A044D00060109210200057 -S31540010EE015000020D60340007FFFFF1001000000DF -S31540010EF0C207A044DA07A044D00060109210200037 -S31540010F00D40340007FFFFEB301000000D027BFF4A9 -S31540010F10DA07BFF403000020820B400180A0600085 -S31540010F20028000040100000010BFFFF20100000032 -S31540010F30C027BFF0C207BFF41B0000048208400D62 -S31540010F4080A060000280001701000000C207A04493 -S31540010F50DA07A044D000601092102001D40340006B -S31540010F607FFFFE9C0100000082100008820860207D -S31540010F7080A060001280000B01000000C207BFF094 -S31540010F8082006001C227BFF0DA07BFF003000030DC -S31540010F908210635080A3400104BFFFED01000000B1 -S31540010FA0C207A044DA07A044D00060109210200086 -S31540010FB0D40340007FFFFE8701000000D027BFF425 -S31540010FC0C207A044C200600C80A0600002800012EB -S31540010FD001000000C207BFF41B0000088208400D53 -S31540010FE080A060001280000C01000000C207BFF41F -S31540010FF08208604080A06000028000070100000076 -S3154001100082102001C227BFE4C027BFE81080001F1D -S3154001101001000000C207BFF41B0000088208400D12 -S3154001102080A060000280000C01000000C207BFF4EE -S315400110308208604080A06000128000070100000025 -S31540011040C027BFE482102001C227BFE81080000FED -S3154001105001000000C207BFF41B0000088208400DD2 -S3154001106080A060001280000901000000C207BFF4A1 -S315400110708208604080A060001280000401000000E8 -S31540011080C027BFE4C027BFE8C207BFF4833060086A -S3154001109082086001C227BFECD807A044C207BFEC53 -S315400110A09B286004C207BFE8832860079A13400162 -S315400110B0C207BFE48328600882134001D0030000C1 -S315400110C0921000017FFFFE87010000001080001B87 -S315400110D001000000C027BFF0C207BFF080A0600238 -S315400110E01480001601000000C207A044C20040005F -S315400110F082006010901000017FFFFE830100000016 -S31540011100D027BFF4C207BFF48208600880A0600000 -S315400111100280000501000000C027BFF010BFFFEFAD -S3154001112001000000C207BFF082006001C227BFF084 -S3154001113010BFFFEA01000000C207A044820060041C -S31540011140D007A044921000017FFFFEAD01000000D0 -S31540011150B010000181C7E00881E800009DE3BF901F -S31540011160F027A044F227A048F427A04CD807A04C6A -S31540011170C207A04CC20060209B286003C20320180E -S3154001118082034001901000017FFFFE5F01000000D5 -S31540011190821000088208680080A060000280000575 -S315400111A001000000C027BFF4108000360100000096 -S315400111B0D807A04CC207A04CC20060209B28600300 -S315400111C0C20320189A034001C207A048C223600403 -S315400111D0C207A04CC200602080A0607F1280001030 -S315400111E001000000D807A04CC207A04CC2006020F5 -S315400111F09B286003C203201898034001DA07A044E4 -S315400112000300000682134001C2230000C207A04C1E -S31540011210C02060201080001001000000D807A04CBB -S31540011220C207A04CC20060209B286003C20320185D -S315400112309A034001C207A04482106800C2234000BD -S31540011240DA07A04CC207A04CC200602082006001B0 -S31540011250C2236020C207A04CE0004000C207A04C58 -S31540011260D00040007FFFFE280100000082100008E8 -S3154001127082106001C224000082102001C227BFF4FF -S31540011280F007BFF481C7E00881E800009DE3BF9005 -S31540011290F027A044F227A048D807A048C207A04893 -S315400112A0C20060249B286003C203201C82034001C4 -S315400112B0901000017FFFFE1401000000821000081B -S315400112C08208680080A060000280000501000000DD -S315400112D0C027BFF41080003301000000D807A048A2 -S315400112E0C207A048C20060249B286003C203201C99 -S315400112F09A034001C207A044C2236004C207A04822 -S31540011300C200602480A0607F1280000E01000000B0 -S31540011310D807A048C207A048C20060249B286003A2 -S31540011320C203201C9A03400103000006C223400069 -S31540011330C207A048C02060241080000F01000000B1 -S31540011340D807A048C207A048C20060249B28600372 -S31540011350C203201C9A03400182102800C223400088 -S31540011360DA07A048C207A048C20060248200600193 -S31540011370C2236024C207A048E0004000C207A0483B -S31540011380D00040007FFFFDE0010000008210000810 -S3154001139082106002C224000082102001C227BFF4DD -S315400113A0F007BFF481C7E00881E800009DE3BF90E4 -S315400113B0F027A044F227A048F427A04CD807A04C18 -S315400113C0C207A04CC200602C9B286003C203201CAC -S315400113D082034001901000017FFFFDCB0100000018 -S315400113E082100008C227BFF4C207BFF48208680012 -S315400113F080A060001280001801000000DA07A044B6 -S31540011400C207BFF4820867FFC2234000C207A04C4F -S31540011410C200602C80A0607F12800006010000009F -S31540011420C207A04CC020602C1080000701000000BC -S31540011430DA07A04CC207A04CC200602C82006001B2 -S31540011440C223602C82102001C227BFF01080000306 -S3154001145001000000C027BFF0F007BFF081C7E008D8 -S3154001146081E800009DE3BF90F027A044D807A0443F -S31540011470C207A044C20060289B286003C20320180B -S3154001148082034001901000017FFFFD9F0100000093 -S3154001149082100008C227BFF4C207BFF48208680061 -S315400114A080A060001280001401000000C207A04421 -S315400114B0C200602880A0607F128000060100000003 -S315400114C0C207A044C0206028108000070100000028 -S315400114D0DA07A044C207A044C20060288200600126 -S315400114E0C223602882102001C227BFF0108000036A -S315400114F001000000C027BFF0F007BFF081C7E00838 -S3154001150081E800009DE3BF987FFFBF409010200413 +S315400100009DE3BF8099362010D827BFE0AF36200840 +S31540010010EE27BFE4AF366008C607A05CEE27BFEC0B +S31540010020AF36E018C407A060EE27BFF499366010DA +S31540010030AF30E008D827BFE8EE27BFFC8800A026EE +S31540010040EE07A06C993920089736A010D827BFF043 +S315400100501300003F9936E008921263FFA00E800913 +S31540010060A002C010D827BFF89B36E01098090009B6 +S31540010070900EC0091F0000239E13E1119E04000F3C +S315400100809E03C00D9003C0089802000CA1332010B6 +S31540010090980B00099804000C920B00099933201023 +S315400100A0BB2F601292030009992F2011BA17400CF9 +S315400100B0C207A0689008A3FF912A20079817400815 +S315400100C0BA00A034FA25C000EE07BFE09400A012A2 +S315400100D092380009AD36A018EE284000AB36A0088C +S315400100E0A73AA008EE07BFE4F0286002A9326008EB +S315400100F09F30E018EE286001A5332018A33B20105D +S31540010100EE07BFE8A13B20089130E01080A7200010 +S31540010110EE286003EE07BFECF2286005EE28600486 +S31540010120EE07BFF0EE286010EE07BFF4EE28601A26 +S31540010130EE07BFF8C8286011C028600A88103FDE64 +S31540010140EE28601CC028600DC028600FC0286012D0 +S31540010150C828600688103FADC828600788103FBE92 +S31540010160C828600888103FEFC828600988102020F9 +S31540010170C828600B88102008C828600C88102045C4 +S31540010180C828600E88102040C0286013C828601611 +S31540010190C0286014C0286015DA28601B8810201119 +S315400101A0C8286017EE07A064F628601DEC28601E7B +S315400101B0EA286020E8286018D2286019E6286026D7 +S315400101C0D4286027E428602CE228602DE028602EA0 +S315400101D0D828602FDE286030D0286031C807BFFCA0 +S315400101E0C6286033D628601FF4286021C8286032AB +S315400101F0C0286022C0286023C0286024C02860250A +S31540010200C0286028C0286029C028602A0280000DC5 +S31540010210C028602B80A0A0000280000A8810200020 +S31540010220861020009A004004C80DC0048600E001F3 +S3154001023080A0C002C82B603412BFFFFB88100003A8 +S3154001024081C7E00881E800009DE3BD2040002C8481 +S315400102509010200025100124A2100008A814A0D453 +S3154001026040002C7F90102004A01000087FFFC3E4BB +S315400102701100407482103FDEC22D200482103FAD32 +S31540010280C22D200582103FBEC22D200682103FEFAF +S31540010290C02D2008C22D200782102020C22D200902 +S315400102A0F024A0D44000028A90100014D0052010FA +S315400102B0D404A0D4400001C292102000AC92200088 +S315400102C00680017E01000000D0052010D604A0D48E +S315400102D01500001092102000400001F89415800A84 +S315400102E082103FDEC22FBE9EC22FBE9882103FAD06 +S315400102F0C22FBE9FC22FBE9982103FBEC22FBEA043 +S31540010300C22FBE9A82103FEFC22FBEA1C22FBE9B03 +S3154001031082102020C02FBE9CC22FBEA3C22FBE9DDD +S31540010320C02FBEA282103FF2C02FBEA4C22FBEA5CF +S31540010330A607BE988210200EC22CC0018200600121 +S3154001034080A0610032BFFFFEC22CC001AA07BD9842 +S31540010350AE14A0D490100015400003C692100017A9 +S3154001036080A2200002BFFFFD9010001590102100D1 +S3154001037092100013400003729410001780A22000CF +S3154001038002BFFFFC90102100901000109210001146 +S31540010390400004019410001780A2200002BFFFFC18 +S315400103A090100010C204000080A061000280000588 +S315400103B0AE1020007FFFC3A090102001AE10200098 +S315400103C0848DE0031280000580A0A002AC05401791 +S315400103D0EC85802080A0A002028000098335A00818 +S315400103E080A0A003028000068210001680A0A00112 +S315400103F0028000038335A0108335A018C40CC017B2 +S31540010400820860FF80A0800122800005AE05E001E0 +S315400104107FFFC38990102002AE05E00180A5E1006F +S3154001042012BFFFE9848DE003C205201480A060005D +S3154001043002800120B010200003100124EE0060D498 +S31540010440AE05E01CEE85C02040002C059010210031 +S3154001045082103FFFC22A201EC22A0000C22A200162 +S31540010460C22A2002C22A2003C22A2004C22A200507 +S3154001047082103FDEC22A2016C22A200682103FADD4 +S31540010480C22A2017C22A200782103FBEC22A20183C +S31540010490C22A200882103FEFC22A2019C22A200907 +S315400104A082102020C22A201BC22A200B821020083B +S315400104B0C22A2010C22A200C82102006C22A2012EB +S315400104C0C22A200D82102001C02A200AC22A2015E4 +S315400104D0C22A200FC02A200EC02A2011C02A201469 +S315400104E0C02A201A8210202AC22400008210200429 +S315400104F08935E018C22A20138735E01082103FDD86 +S315400105008535E008C22A201C82103FEEC22A201DF2 +S3154001051082103FCCC22A201FC02A2020C82A20266A +S31540010520C62A2027C42A2028C02A2021C02A2022C0 +S31540010530C02A2023C02A2024C02A2025EE2A202989 +S31540010540AC100008A814A0D490100015400003492F +S315400105509210001480A2200002BFFFFD90100015EA +S31540010560D004000092100016400002F594100014C9 +S3154001057080A2200022BFFFFCD00400009010001092 +S3154001058092100011400003849410001480A22000B0 +S3154001059002BFFFFC90100010B807BDAEF88F0020D7 +S315400105A08607BDAFC688C0208407BDB0C4888020F9 +S315400105B00300003F8408A0FF821063FFB80F20FFAD +S315400105C08728E018B92F20108738E010BA07BDB147 +S315400105D08608C001B8170003B8170002FA8F4020F9 +S315400105E08607BDB2C688C0208407BDB3C4888020B3 +S315400105F08728E0188738E0108208C001BA0F60FFEB +S31540010600BB2F6010BA1740018208A0FFB607BF98FA +S31540010610BA174001C023A060C023A064EC23A068A0 +S31540010620E023A06CF623A05C9010001C9210001DE4 +S315400106309410001796100017981020007FFFFE7146 +S315400106409A102000901000154000030A92100014E1 +S3154001065080A2200002BFFFFD90100015D0040000CB +S3154001066092100016400002B69410001480A2200099 +S3154001067022BFFFFCD0040000901000109210001120 +S31540010680400003459410001480A2200002BFFFFCE5 +S31540010690901000108607BDC4C688C020B207BDC5EC +S315400106A0C28E40208407BDC6C4888020A807BDC726 +S315400106B0E88D0020820860FF83286010A80D20FF86 +S315400106C08728E0188528A018A81500038538A010AA +S315400106D0A81500010300003F821063FF82088001D4 +S315400106E0A815000103000080808D0001833520128A +S315400106F002800003B4006001B4100001821020485A +S31540010700F623A05CE623A064EC23A068E023A06C5A +S31540010710C223A0609010001C9210001D9410001777 +S3154001072096100017981020019A10001A7FFFFE3587 +S31540010730B014A0D490100015400002CE92100018BB +S3154001074080A2200002BFFFFD90100015D0040000DA +S31540010750921000164000027A9410001880A22000E0 +S3154001076022BFFFFCD004000090100010921000112F +S31540010770400003099410001880A2200002BFFFFC2C +S3154001078090100010F28E4020808E60021280004F41 +S315400107900100000082102048F623A05C9410001747 +S315400107A0C023A064EC23A068E023A06C9010001C39 +S315400107B09210001D9A06A001A414A0D4C223A060E1 +S315400107C0961000177FFFFE0F98102000901000151D +S315400107D0400002A89210001280A2200002BFFFFD35 +S315400107E090100015D00400009210001640000254EB +S315400107F09410001280A2200022BFFFFCD00400000A +S315400108009010001092100011400002E39410001263 +S3154001081080A2200002BFFFFC90100010C20400001D +S3154001082080A0607C02800005A207BDCC7FFFC2820A +S3154001083090102004A207BDCCA0102000848C200378 +S315400108401280000480A0A002E884402080A0A0027B +S31540010850A2046001028000098335200880A0A0031C +S31540010860028000068210001480A0A00102800003CD +S315400108708335201083352018C40CC010820860FFD0 +S3154001088080A0800122800005A00420017FFFC26A6A +S3154001089090102005A004200180A4204812BFFFE942 +S315400108A0848C20039010001640002AE6B0102000E8 +S315400108B081C7E00881E800007FFFC25F90102000F9 +S315400108C010BFFE83D00520107FFFC25B901020032E +S315400108D010BFFFB2821020489DE3BF98F027A04485 +S315400108E0C207A044C2804020C227BFFCC207BFFC4A +S315400108F0B010000181E8000081C3E008010000005A +S315400109009DE3BFA0F027A044F227A048C207A04418 +S31540010910C407A048C420400081E8000081C3E00824 +S31540010920010000009DE3BF90F027A044C207A04408 +S31540010930832860019010000140002AC9010000008F +S3154001094082100008C227BFF4C407BFF4C207A044FF +S3154001095084008001C207A0448220000182088001F0 +S31540010960C227BFF4C207BFF4C227BFF8C027BFFCE6 +S315400109701080000A01000000C207BFFC8328600303 +S31540010980C407BFF882008001C0204000C207BFFCF7 +S3154001099082006001C227BFFCC207BFFC80A0607F06 +S315400109A004BFFFF601000000C207BFF4B01000010A +S315400109B081E8000081C3E008010000009DE3BF9883 +S315400109C0F027A044F227A048F427A04CC207A04C28 +S315400109D082006010901000017FFFFFC001000000FF +S315400109E082100008C227BFFCC207BFFC820860080C +S315400109F080A0600012BFFFF601000000C207A044BC +S31540010A008528600BC207A0488208601F83286006BC +S31540010A108210800182106002C227BFFCC207A04C2F +S31540010A208200601090100001D207BFFC7FFFFFB526 +S31540010A3001000000C207A04C820060109010000126 +S31540010A407FFFFFA60100000082100008C227BFFCFD +S31540010A50C207BFFC8208600880A0600012BFFFF693 +S31540010A6001000000C207BFFC8208601080A0600040 +S31540010A701280000D01000000C207A04C82006010E8 +S31540010A80901000017FFFFF950100000082100008D1 +S31540010A90C227BFFCC207BFFC833060101080000331 +S31540010AA00100000082103FFFB010000181E8000004 +S31540010AB081C3E008010000009DE3BF98F027A044F0 +S31540010AC0F227A048F427A04CF627A050C207A05011 +S31540010AD082006010901000017FFFFF80010000003E +S31540010AE082100008C227BFFCC207BFFC820860080B +S31540010AF080A0600012BFFFF601000000C207A04CB3 +S31540010B0085286010C207A0448328600B84108001A9 +S31540010B10C207A0488208601F8328600682108001B0 +S31540010B2082106001C227BFFCC207A050820060103C +S31540010B3090100001D207BFFC7FFFFF720100000049 +S31540010B40C207A05082006010901000017FFFFF6332 +S31540010B500100000082100008C227BFFCC207BFFC8B +S31540010B608208600880A0600012BFFFF60100000005 +S31540010B7081E8000081C3E008010000009DE3BFA0B9 +S31540010B80F027A044F227A048C207A048C408400065 +S31540010B90C207A044C4286004C207A048820060017D +S31540010BA0C4084000C207A044C4286005C207A04843 +S31540010BB082006002C4084000C207A044C4286006FF +S31540010BC0C207A04882006003C4084000C207A0448F +S31540010BD0C4286007C207A04882006004C4084000D8 +S31540010BE0C207A044C4286008C207A0488200600525 +S31540010BF0C4084000C207A044C4286009C207A044F3 +S31540010C00C20040008200600884100001C207A0486B +S31540010C10C2084000820860FF87286008C207A048D2 +S31540010C2082006001C2084000820860FF8210C00154 +S31540010C3090100002921000017FFFFF320100000078 +S31540010C40C207A044C20040008200600C841000012B +S31540010C50C207A04882006002C2084000820860FFC5 +S31540010C6087286018C207A04882006003C208400076 +S31540010C70820860FF832860108610C001C207A04821 +S31540010C8082006004C2084000820860FF8328600831 +S31540010C908610C001C207A04882006005C208400014 +S31540010CA0820860FF8210C00190100002921000017C +S31540010CB07FFFFF140100000082102001B0100001E7 +S31540010CC081E8000081C3E008010000009DE3BF8880 +S31540010CD0F027A044C207A044C20040009010000182 +S31540010CE07FFFFEFE0100000082100008C227BFEC14 +S31540010CF0C207BFEC8330601B84086001C207A04471 +S31540010D00C420600CC207BFEC8530601FC207A044F7 +S31540010D10C4206014C207A044C200601480A06000D1 +S31540010D201280001401000000C207A044C200400026 +S31540010D3090100001921020407FFFFEF2010000005A +S31540010D40C207A044C2004000901000017FFFFEE3AD +S31540010D500100000082100008C227BFECC207BFECA9 +S31540010D608208604080A0600012BFFFF601000000CB +S31540010D70C207A044C20040008200601090100001EA +S31540010D807FFFFED60100000082100008C227BFEC9B +S31540010D90C207BFEC8330600B8408601FC207A044C2 +S31540010DA0C4206010901024007FFFFEDF0100000088 +S31540010DB08210000884100001C207A044C4206018B4 +S31540010DC0901024007FFFFED8010000008210000829 +S31540010DD084100001C207A044C420601CC207A0447D +S31540010DE0C20040008200601484100001C207A04482 +S31540010DF0C200601890100002921000017FFFFEC1F0 +S31540010E0001000000C207A044C200400082006018F1 +S31540010E1084100001C207A044C200601C9010000269 +S31540010E20921000017FFFFEB701000000C207A044F7 +S31540010E30C0206020C207A044C0206024C207A0444D +S31540010E40C0206028C207A044C020602CC207A0442D +S31540010E50C200601480A0600012800096010000006C +S31540010E60C207A044C200601084100001C207A0441A +S31540010E70C200400090100002921020001500002090 +S31540010E80961000017FFFFF0D01000000C207A0443C +S31540010E90C200601084100001C207A044C200400095 +S31540010EA09010000292102000941000017FFFFEC4B2 +S31540010EB00100000082100008C227BFECC407BFEC46 +S31540010EC0030000208208800180A0600012BFFFF06D +S31540010ED001000000C027BFF0C407BFEC03000004B7 +S31540010EE08208800180A060000280001F010000008E +S31540010EF01080000B01000000C207BFF082006001B4 +S31540010F00C227BFF0C407BFF0030000308210635010 +S31540010F1080A080011480001301000000C207A04494 +S31540010F20C200601084100001C207A044C200400004 +S31540010F309010000292102001941000017FFFFEA044 +S31540010F4001000000821000088208602080A0600035 +S31540010F5002BFFFEA0100000010800003010000000B +S31540010F6001000000C207A044C200601084100001C5 +S31540010F70C207A044C2004000901000029210200017 +S31540010F80941000017FFFFE8E0100000082100008D0 +S31540010F90C227BFECC207A044C200600C80A060001B +S31540010FA00280001201000000C407BFEC03000008E4 +S31540010FB08208800180A060001280000C01000000C0 +S31540010FC0C207BFEC8208604080A060000280000733 +S31540010FD00100000082102001C227BFFCC027BFF8D4 +S31540010FE01080001F01000000C407BFEC0300000889 +S31540010FF08208800180A060000280000C0100000090 +S31540011000C207BFEC8208604080A0600012800007E2 +S3154001101001000000C027BFFC82102001C227BFF893 +S315400110201080000F01000000C407BFEC0300000858 +S315400110308208800180A06000128000090100000042 +S31540011040C207BFEC8208604080A0600012800004A5 +S3154001105001000000C027BFFCC027BFF8C207BFEC94 +S315400110608330600882086001C227BFF4C207A044EA +S31540011070C200400084100001C207BFF48728600403 +S31540011080C207BFF8832860078610C001C207BFFCAC +S31540011090832860088210C00190100002921000015E +S315400110A07FFFFE18010000001080001C01000000B7 +S315400110B0C027BFF01080001501000000C207A04400 +S315400110C0C200400082006010901000017FFFFE03C5 +S315400110D00100000082100008C227BFECC207BFEC26 +S315400110E08208600880A060000280000501000000BF +S315400110F0C027BFF01080000501000000C207BFF005 +S3154001110082006001C227BFF0C207BFF080A0600223 +S3154001111004BFFFEB01000000C207A0448200600447 +S31540011120D007A044921000017FFFFE950100000008 +S3154001113081E8000081C3E008010000009DE3BFA0F3 +S31540011140F027A044F227A048F427A04CC207A04CA0 +S31540011150C4006018C207A04CC20060208328600307 +S3154001116082008001901000017FFFFDDC010000003C +S31540011170821000088208680080A060000280000595 +S31540011180010000008210200010800036010000009E +S31540011190C207A04CC4006018C207A04CC200602020 +S315400111A08328600382008001C407A048C4206004EC +S315400111B0C207A04CC200602080A0607F1280001050 +S315400111C001000000C207A04CC4006018C207A04C31 +S315400111D0C20060208328600382008001C607A044C4 +S315400111E0050000068410C002C4204000C207A04C7E +S315400111F0C02060201080001001000000C207A04CF2 +S31540011200C4006018C207A04CC20060208328600356 +S3154001121082008001C407A0448410A800C420400075 +S31540011220C207A04CC200602084006001C207A04CE6 +S31540011230C4206020C207A04CE0004000C207A04C79 +S31540011240C2004000901000017FFFFDA40100000094 +S315400112508210000882106001C22400008210200121 +S31540011260B010000181E8000081C3E00801000000E0 +S315400112709DE3BFA0F027A044F227A048C207A0489B +S31540011280C400601CC207A048C200602483286003D2 +S3154001129082008001901000017FFFFD900100000057 +S315400112A0821000088208680080A060000280000564 +S315400112B00100000082102000108000330100000070 +S315400112C0C207A048C400601CC207A048C2006024EF +S315400112D08328600382008001C407A044C4206004BF +S315400112E0C207A048C200602480A0607F1280000E21 +S315400112F001000000C207A048C400601CC207A04804 +S31540011300C200602483286003820080010500000634 +S31540011310C4204000C207A048C02060241080000FAE +S3154001132001000000C207A048C400601CC207A048D3 +S31540011330C200602483286003820080018410280053 +S31540011340C4204000C207A048C20060248400600156 +S31540011350C207A048C4206024C207A048E00040005C +S31540011360C207A048C2004000901000017FFFFD5B0C +S31540011370010000008210000882106002C2240000B1 +S3154001138082102001B010000181E8000081C3E0080D +S31540011390010000009DE3BF98F027A044F227A04832 +S315400113A0F427A04CC207A04CC400601CC207A04C45 +S315400113B0C200602C832860038200800190100001E6 +S315400113C07FFFFD460100000082100008C227BFFCD6 +S315400113D0C207BFFC8208680080A060001280001727 +S315400113E001000000C207BFFC840867FFC207A04492 +S315400113F0C4204000C207A04CC200602C80A0607F80 +S315400114001280000601000000C207A04CC020602CDB +S315400114101080000701000000C207A04CC200602CEA +S3154001142084006001C207A04CC420602C82102001B8 +S31540011430108000030100000082102000B01000015E +S3154001144081E8000081C3E008010000009DE3BF98E8 +S31540011450F027A044C207A044C4006018C207A044B4 +S31540011460C200602883286003820080019010000139 +S315400114707FFFFD1A0100000082100008C227BFFC51 +S31540011480C207BFFC8208680080A06000128000137A +S3154001149001000000C207A044C200602880A0607F0E +S315400114A01280000601000000C207A044C020602847 +S315400114B01080000701000000C207A044C200602856 +S315400114C084006001C207A044C42060288210200124 +S315400114D0108000030100000082102000B0100001BE +S315400114E081E8000081C3E0080100000003100123E8 +S315400114F0C40060848400A001C420608481C3E008E4 +S31540011500010000009DE3BFA07FFFBF44901020046F S31540011510C2060000833060148088600F0280000894 S31540011520A0062020C2060000833060148208600FA6 -S3154001153080A0600608800089010000000301DC00EC -S31540011540C2240000DA04200403000010808B40010D -S315400115501280007A01000000DA042004030000042E -S31540011560808B40011280007201000000C2042004F9 -S31540011570808868001280005801000000C2042004DF -S31540011580808864001280005A01000000C2042004D1 -S31540011590808862001280005C01000000C2042004C1 -S315400115A0808861000280005E0100000082103FFEDB -S315400115B01B02F7ABC22420189A13615598102000DC -S315400115C0832B2003832B4001C2242010C204200414 -S315400115D08088610002BFFFFE0100000098032001E0 -S315400115E080A3200304BFFFF8832B2003C20600001B -S315400115F083306008820860FF80A060031480002D5C -S3154001160001000000DA04200403000004808B40013D -S315400116100280002D01000000C2242004C2042004DF -S3154001162080A0600006BFFFFE010000009810200365 -S31540011630DA04201498833FFF1CBFFFFE010000001F -S31540011640C2042004808862001280003F010000002D -S315400116509A10200098102000C0242010C2042004B3 -S315400116608088620002BFFFFE01000000C204201410 -S31540011670833060109B2B6008820860FF980320012D -S3154001168080A3200204BFFFF59A134001030037AB44 -S315400116908210615480A340012280003482103FFFB2 -S315400116A07FFFBEDF9010200A1080003082103FFF7E -S315400116B0DA04200403000004808B400102BFFFD7F7 -S315400116C0010000007FFFBED69010200810BFFFD357 -S315400116D0030000047FFFBED290102004C204200400 -S315400116E08088640002BFFFAA010000007FFFBECCD4 -S315400116F090102005C20420048088620002BFFFA822 -S31540011700010000007FFFBEC690102006C2042004DF -S315400117108088610032BFFFA782103FFE7FFFBEC0B7 -S315400117209010200710BFFFA382103FFE7FFFBEBC73 -S315400117309010200330BFFF8E7FFFBEB9901020026C -S3154001174030BFFF867FFFBEB6901020099A10200059 -S3154001175010BFFFC2981020007FFFBEB1901020013C -S3154001176010BFFF780301DC00C2242018C02400000A -S31540011770C224200481C7E00891E820009DE3BF9878 -S315400117807FFFBE9D110040B4C20600008330601445 -S31540011790A088600FA4062020BA0622001280007E8F -S315400117A0B8062050820E6001AE3800017FFFBE9719 -S315400117B090102001C2048000AA103FFF80A0600063 -S315400117C012800083AC102000C204A00480A06000F7 -S315400117D01280008501000000C204A00880A06000BC -S315400117E01280008701000000C204A00C80A06000A6 -S315400117F01280008901000000C204A01080A0600090 -S315400118001280008B010000007FFFBE8090102002F5 -S31540011810C206000083306008A92C2014A60860FF88 -S315400118201B10C00080A5E000128000048215000D47 -S315400118300300C00082150001C2248000DA04A0041E -S3154001184003000010808B40011280008F01000000D0 -S31540011850DA04A00403000004808B40011280008753 -S3154001186001000000C204A004808868001280008044 -S3154001187001000000C204A00480886400128000793F -S3154001188001000000C204A004808862001280007238 -S3154001189001000000C204A004808861000280006744 -S315400118A001000000032AAAAAA21062AAA004E0012C -S315400118B0E224A010A0843FFF12BFFFFEA238001110 -S315400118C0C204A00480886400128000600100000008 -S315400118D0C204A0048088610002BFFFFE010000002F -S315400118E0C204A004808862000280006E01000000EC -S315400118F0E224A01003001000C224A00C1B0000101B -S31540011900C204A0048088400D02BFFFFE0100000012 -S31540011910DA04A00403000004808B40010280005DCC -S3154001192001000000032AAAAAA21062AAA010200060 -S31540011930820C401583284016DA04A0149004200E28 -S31540011940A238001180A3400102800004A0042001B6 -S315400119507FFFBE330100000080A4001304BFFFF6E1 -S31540011960820C4015C024800082103FFFC224A0048F -S3154001197080A660020280008201000000DA060000B3 -S3154001198003000100808B40010280008001000000BD -S3154001199030800047820420019A103FFF9B2B400173 -S315400119A08210200FAC204010820E6001AE3800013B -S315400119B0AA38000D7FFFBE1590102001C204800099 -S315400119C080A0600002BFFF81010000007FFFBE14BE -S315400119D090102000C204A00480A0600002BFFF7FD7 -S315400119E0010000007FFFBE0E90102001C204A00836 -S315400119F080A0600002BFFF7D010000007FFFBE089E -S31540011A0090102002C204A00C80A0600002BFFF7BA0 -S31540011A10010000007FFFBE0290102003C204A01007 -S31540011A2080A0600002BFFF79010000007FFFBDFC7E -S31540011A309010200430BFFF757FFFBDF99010200A3A -S31540011A4010BFFF9A032AAAAA7FFFBDF59010200B6B -S31540011A5030BFFFA07FFFBDF29010200930BFFF8E3F -S31540011A607FFFBDEF9010200830BFFF877FFFBDECA1 -S31540011A709010200730BFFF807FFFBDE99010200600 -S31540011A8030BFFF797FFFBDE69010200530BFFF7163 -S31540011A907FFFBDE39010200D10BFFFA4032AAAAA21 -S31540011AA07FFFBDDF9010200C30BFFF927FFFBDD777 -S31540011AB0901020030330C00880A5E0001280000486 -S31540011AC0821500010320C00882150001C22480004E -S31540011AD00337AB7CA210600DA0102000832C20029E -S31540011AE0E2274001A004200180A4200104BFFFFC9D -S31540011AF0A238001182102003C2270000C024A0246E -S31540011B00A0102002E024A020C204A0048088620024 -S31540011B1002BFFFFE0337AB7CA210600DB004E00F9D -S31540011B20B2076200A0102001820C4015DA0640007F -S31540011B308328401690100018A2380011B20660049E -S31540011B4080A3400102800004B00620017FFFBDB49E -S31540011B5001000000A0843FFF1CBFFFF5820C401529 -S31540011B60C024A020C204A0208088600202BFFFFEDC -S31540011B7001000000C0248000308000047FFFFE6227 -S31540011B809010001830BFFF7E81C7E00891E8200021 -S31540011B909DE3BF987FFFBD981100403080A2200091 -S31540011BA0128000F382102001C226200CC026200498 -S31540011BB0C0260000C026200882102002C226200826 -S31540011BC0C0260000C026000082102003C22620083D -S31540011BD09A102083DA262008A2102063C02600002E -S31540011BE0A2847FFF1CBFFFFE01000000A2102063FC -S31540011BF0C2060000A2847FFF1CBFFFFE82102002A6 -S31540011C00C2262008A4062004C2848020808860045D -S31540011C1002BFFFFE01000000C0262008C0260000CA -S31540011C20A6102001C2848020833860148208603F58 -S31540011C3080A0600122800093A604E0018210200367 -S31540011C40C2262008C2848020808860010280000765 -S31540011C5080886004C2860020C2848020808860011A -S31540011C6012BFFFFD8088600402BFFFFB80886002CF -S31540011C7002BFFFF901000000C0262008C02620044B -S31540011C8080A4E0010480000821100080C2848020E5 -S31540011C908208608080A06001028000AE01000000E1 -S31540011CA021100080DA4C20F0DA260000C284802020 -S31540011CB08208600480A060010280009A0100000051 -S31540011CC0C284802080A4E00104800020821020018B -S31540011CD0A210200180A440131680000D2B10008015 -S31540011CE0A81420F0E00560E8901000114000247827 -S31540011CF092100010C24D0008A2046001C2260000E5 -S31540011D0080A4401306BFFFFA90100011C2848020C0 -S31540011D108208608080A0600102800092010000007C -S31540011D20C2848020833860148208603F80A04013BB -S31540011D3002800004010000007FFFBD39901020069B -S31540011D40C284802082102001C226200CDA848020A1 -S31540011D50808B6001128000680100000082102083A0 -S31540011D60C226200880A4E001028000520100000042 -S31540011D70C28480208088640002BFFFFE010000000B -S31540011D80C2848020808860010280005301000000E7 -S31540011D9080A4E00124800012A2102000C284802089 -S31540011DA08330601A80A040130280000401000000C5 -S31540011DB07FFFBD1B90102009C2848020808861006E -S31540011DC00280005501000000C284802080886400A2 -S31540011DD00280004D01000000A210200080A44013A3 -S31540011DE01680001203100080A81060F02B100080AE -S31540011DF0E08600209010001140002435D20560E8AD -S31540011E00C24D0008A204600180A040100280000477 -S31540011E109010200C7FFFBD020100000080A44013FA -S31540011E2006BFFFF40100000080A4E0010480000F1A -S31540011E3001000000C2848020808861001280004237 -S31540011E4001000000C28480208330601A80A06000B7 -S31540011E501280003A01000000C2848020808864001C -S31540011E601280003301000000C28480208088600116 -S31540011E701280001D01000000C02620083080003C71 -S31540011E80C0260000C2848020833860148208603FE7 -S31540011E9080A0401322BFFFFBA604E00180A4E0011D -S31540011EA034BFFF67A604FFFF10BFFF668210200301 -S31540011EB0C28480208088600112BFFFB20100000009 -S31540011EC0C28480208088600102BFFFFA01000000C1 -S31540011ED030BFFFAC7FFFBCD29010200810BFFFAED1 -S31540011EE080A4E0017FFFBCCE9010200CC0262008C4 -S31540011EF03080001F7FFFBCCA9010200710BFFF999A -S31540011F00821020837FFFBCC69010200B10BFFFB408 -S31540011F10A21020007FFFBCC29010200A30BFFFAB49 -S31540011F207FFFBCBF9010200130BFFF667FFFBCBC66 -S31540011F309010200B30BFFFCD7FFFBCB99010200E13 -S31540011F4030BFFFC67FFFBCB69010200D30BFFFBE2D -S31540011F507FFFBCB39010200410BFFF5321100080B7 -S31540011F607FFFBCAF9010200530BFFF6E81C7E008F0 -S31540011F7091E8200017100143DA02E0849002201014 -S31540011F809B2B60029812E084D023000DC202E084AC -S31540011F9082006001C222E08481C3E00801000000A2 -S31540011FA0C0220000C022204082103FFFC222200CE6 -S31540011FB09A10200103100143DA20608481C3E008AE -S31540011FC0010000009DE3BF7803100144F020610049 -S31540011FD07FFFBC89110040347FFFFFF2901000184B -S31540011FE0A010200123100047921000104000298DB7 -S31540011FF090146374A004200180A4200F04BFFFFC49 -S3154001200092100010C20620208330601CAE00600191 -S31540012010AC10200080A58017168000ED0300003F1C -S31540012020B81063FE2B1001430300002AB61062AAC2 -S31540012030BA102001B410001CB2156084832DA00C87 -S3154001204080A5E00114800119A600401880A5A000D2 -S315400120501280010A01000000F824E008C204E008E9 -S3154001206080A0401C02800004010000007FFFBC6C80 -S3154001207090102001F824E040C204E04080A0401CBA -S3154001208002800004010000007FFFBC659010200221 -S31540012090C204E00880A0600012BFFFFE01000000FC -S315400120A0C205608480A060100280000525100143AE -S315400120B07FFFBC5B9010200325100143A010200137 -S315400120C0A414A084A2102020832C20029A2440101C -S315400120D0D8048001A004200180A3000D02800004E1 -S315400120E0901020047FFFBC4E0100000080A4200F09 -S315400120F004BFFFF7832C2002FA256084F624C00032 -S31540012100F424E040C204C00080A0401B02800004C9 -S31540012110A010001A7FFFBC4290102005C204E04087 -S3154001212080A0401002800004010000007FFFBC3CFB -S3154001213090102005F424E008C204E00880A0600065 -S3154001214012BFFFFE01000000C205608480A060103E -S3154001215002800005251001437FFFBC319010200607 -S3154001216025100143A0102001A414A084A210201F11 -S315400121709B2C2002C204800D80A04011A0042001A6 -S31540012180A2047FFE02800004901020077FFFBC243A -S315400121900100000080A4200704BFFFF79B2C20020A -S315400121A0A4066028A210201CA0102005C2048000AD -S315400121B080A04011A404A004A2047FFE0280000472 -S315400121C0901020087FFFBC1601000000A0843FFF4D -S315400121D01CBFFFF701000000FA27BFE8C207BFE8AE -S315400121E082006001C227BFECDA07BFEC9A036001A7 -S315400121F0DA27BFF0C207BFF082006001C227BFF4F1 -S315400122009A102006DA27BFD8C024C000C024E04077 -S31540012210FA256084A0102002E024E040E024E00892 -S31540012220834440008088610002800005010000006F -S31540012230805000018050000180500001C207BFD884 -S31540012240C227BFDCDA07BFD880A36006028000043C -S31540012250010000007FFFBBF29010200AE024E00855 -S3154001226001000000C207BFD8C227BFDCDA07BFD8CA -S3154001227080A3600602800004010000007FFFBBE8E6 -S315400122809010200AE024E00801000000C027BFDCCE -S31540012290C207BFDC80A060001280009601000000EA -S315400122A0C204E00880A0600012BFFFFE01000000EA -S315400122B0C205608480A06004028000050300003FDF -S315400122C07FFFBBD79010200D0300003FC024E040A4 -S315400122D0821063FEC224E008031001439A102001D4 -S315400122E0DA206084400003E401000000400003E47A -S315400122F090122F0082103FFFC224E040C204E0400A -S3154001230080A0600002BFFFFE01000000C20560849C -S3154001231080A0600202800004A01560847FFFBBC0DC -S315400123209010200EC204200480A0601F0280000489 -S31540012330010000007FFFBBBA9010200F400003CE82 -S31540012340A8100010400003CE90023F00A0102002CA -S31540012350A4102020400003C801000000400003C82B -S3154001236090023F00C2056084A204200180A0401172 -S3154001237002800004901020107FFFBBA901000000DD -S31540012380832C20029A248010D8050001A010001148 -S3154001239080A3000D02800004901020117FFFBBA096 -S315400123A00100000080A4200F04BFFFEB01000000E4 -S315400123B0C024E040AC05A00182103FFFC224E00CDE -S315400123C080A5801706BFFF1F832DA00C80A5E001C5 -S315400123D00480004B01000000C0262024C2062024B0 -S315400123E080A060001280003F01000000210400002F -S315400123F0E0262024C206202480A040100280000549 -S31540012400821020017FFFBB8690102014821020018C -S31540012410C2262020C0262024C206202480A04010A7 -S3154001242002800004010000007FFFBB7D9010201553 -S31540012430C0262020C0262024C206202480A0600079 -S31540012440128000240100000082102002C2262020B2 -S31540012450DA062020808B60020280001B010000000A -S31540012460C0262020C20620208088600202800024E7 -S3154001247001000000308000117FFFFECA901000135A -S315400124809B2DA01CDA24E024C204E0248330601C86 -S3154001249080A0401602BFFEF1010000007FFFBB6035 -S315400124A09010201230BFFEED7FFFBB5890100016F2 -S315400124B010BFFEE880A5A0007FFFBB5990102018F1 -S315400124C03080000F7FFFBB569010201730BFFFE5CD -S315400124D07FFFBB539010201610BFFFDD82102002F4 -S315400124E07FFFBB4F9010201310BFFFC22104000095 -S315400124F07FFFBB4B9010200B30BFFF6A81C7E008BE -S3154001250091E8200003100143DA0060CCC023600843 -S3154001251081C3E008901020009DE3BF902F10014435 -S31540012520E205E100A004610027100143C204200432 -S31540012530F024E0CC7FFFBB359010201003018000D2 -S31540012540DA04200482106020808B40011280010D44 -S3154001255001000000DA046100DA27BFF0C20461001D -S3154001256080A3400102800005821020017FFFBB2C21 -S315400125709010200282102001C2242004DA04610056 -S31540012580DA27BFF0C204610080A340010280012026 -S3154001259001000000C0242004DA046100DA27BFF0FC -S315400125A0C204610080A340010280000580A720008B -S315400125B07FFFBB1B9010200480A72000128000B72C -S315400125C080A72001B010200180A6001A16800017AE -S315400125D0A8102001108000052510004980A6001A88 -S315400125E016800013DA04E0CCA206C0189014A104A8 -S315400125F09210001180A4601F14BFFFF9B00620019C -S315400126004000280801000000D805E100C20320402F -S315400126109B2D00118210400DC223204080A6001A36 -S3154001262006BFFFF3A206C018DA04E0CC9606A00363 -S31540012630C0236004833AE01FC023601098103FFF17 -S315400126408330601EAA02C001D8236014D823600CCF -S31540012650A2102000AD3D600280A720000280008AC2 -S31540012660A810200180A4401C168000ECC204E0CCD6 -S3154001267080A7200104800015B010200080A5A0008D -S315400126800480001380A0001C9B2C6010832C6018D2 -S315400126908210400D992C60088210400C8210401126 -S315400126A0993D6002DA04E0CCC2236020B0062001E5 -S315400126B080A72001048000059A03600480A30018C6 -S315400126C014BFFFFA0100000080A0001CB0603FFF6C -S315400126D080A6001A16800016C204E0CC25018000AF -S315400126E080A72000028000058206C01880A720012D -S315400126F0028000848206C011C2242004D804E0CCA2 -S31540012700832D00189B3E4018C2232008808B600110 -S31540012710128000859A10000CB006200180A6001A8E -S3154001272006BFFFF180A72000C204E0CCC0206008AC -S31540012730808E600112800009B0102000B006200191 -S3154001274080A6201F14800005833E401880886001C2 -S3154001275022BFFFFCB006200180A7200002800006B0 -S315400127608206C01880A72001028000048216E0205C -S315400127708206C01182106020C2242004DA04E0CC13 -S31540012780832D0018C2236008C203600880A0600040 -S3154001279012BFFFFE01000000C204200480886020B1 -S315400127A00280009801000000DA04200403010000C1 -S315400127B0808B40010280009001000000DA04200471 -S315400127C003008000808B40010280008801000000E8 -S315400127D0C2042008C227BFF0DA04200CDA27BFF46E -S315400127E0C204E0CC992D0018D82060089A10000147 -S315400127F0C203600880A0600012BFFFFE0100000016 -S31540012800C204200480886020028000750100000017 -S31540012810DA04200403010000808B40010280006D30 -S3154001282001000000DA04200403008000808B40018F -S315400128300280006501000000DA042008C207BFF0EB -S3154001284080A0400D02800004010000007FFFBA74A1 -S315400128509010200EDA04200CC207BFF480A0400D70 -S3154001286002800005030180007FFFBA6D9010200FA2 -S3154001287003018000C224200480A7200012BFFF7AF2 -S31540012880A204600180A4600004BFFF7B80A72001F1 -S3154001289010800062C204E0CC0280003D1110004964 -S315400128A0B010200080A6001C16BFFF60A8102001B2 -S315400128B0108000052510004980A6001C16BFFF5C4C -S315400128C0DA04E0CCA206C0189014A10492100011BB -S315400128D080A4601F14BFFFF9B006200140002751B4 -S315400128E001000000D805E100C20320409B2D0011E4 -S315400128F08210400DC223204010BFFFF180A6001C6C -S31540012900F6242004D804E0CC832D00189B3E4018C1 -S31540012910C2232008808B600122BFFF81B0062001BF -S315400129209A10000CC203600880A0600012BFFFFE2F -S3154001293001000000DA04200403010000808B4001FD -S315400129400280001E01000000DA042004030080001A -S31540012950808B40010280001601000000E42420041F -S31540012960C20420048088401222BFFF6DB0062001B8 -S315400129707FFFBA2B9010200710BFFF69B0062001D8 -S315400129807FFFBA279010200130BFFEF39012210439 -S31540012990400027249210001BDA05E100832F001B1B -S315400129A0C223604010BFFF22DA04E0CC7FFFBA1C8D -S315400129B09010200630BFFFEA7FFFBA19901020051C -S315400129C030BFFFE27FFFBA169010200D30BFFF9B4C -S315400129D07FFFBA139010200C30BFFF937FFFBA10D0 -S315400129E09010200B30BFFF8B7FFFBA0D9010200A4D -S315400129F030BFFF787FFFBA0A9010200930BFFF70C1 -S31540012A007FFFBA079010200830BFFF687FFFBA04E6 -S31540012A109010200330BFFEE0C020600CDA05E100D3 -S31540012A20C023604082103FFFC223600C81C7E0088B -S31540012A3091E820009DE3BF983B100144E607610001 -S31540012A407FFFB9F290102011C024E01CC204E01CA3 -S31540012A5080A060000280004801000000C204E01C22 -S31540012A608330601B80A0401A0A80003F01000000AD -S31540012A70A410200080A4801A1A8000422D10014320 -S31540012A80AA102001AE15A084A32CA002E006401195 -S31540012A907FFFFD4490100013A804A0019B2D401216 -S31540012AA0832D20108210400DC224E01C9A103FFF56 -S31540012AB0DA24E040D80600119A10201FDA232004B8 -S31540012AC0A0043FFFDA230000A12C20048204000C5D -S31540012AD09A102005DA206010C0206014EA206018A0 -S31540012AE09A100001C203601080A0600012BFFFFE71 -S31540012AF001000000A004000CC204201080A0600068 -S31540012B0002BFFFFE01000000C0242018C205A084B8 -S31540012B1080A06002028000069A04A01190048012EF -S31540012B207FFFB9BF900220039A04A011C205E004B9 -S31540012B3080A0400D22800006A4100014900480124B -S31540012B407FFFB9B790022004A4100014C024E01CF2 -S31540012B5080A5001A0ABFFFCEA32CA0021080000A4E -S31540012B60DA0761007FFFB9AE9010200210BFFFC2A5 -S31540012B70A41020007FFFB9AA9010200130BFFFB8F2 -S31540012B80DA076100C023604082103FFFC223600C18 -S31540012B9081C7E00891E820009DE3BF987FFFB9AF68 -S31540012BA00100000080A220000280002680A62000AD -S31540012BB012800029010000007FFFB9A80100000032 -S31540012BC0912A20047FFFB991900220034000186B9F -S31540012BD00100000080A220001280002B01000000AD -S31540012BE04000182801000000400017E101000000E4 -S31540012BF0400002230100000080A6A0001280002DA3 -S31540012C00031001447FFFB995B4106104912A200253 -S31540012C10C206800880A060001280003080A6200095 -S31540012C2012800039010000004000048A01000000C2 -S31540012C3040001E0001000000400015BD81E8000073 -S31540012C407FFFB96D1100400C80A6200002BFFFDB5B -S31540012C50010000007FFFBA19901000197FFFB97F6C -S31540012C6001000000912A20047FFFB96890022003E9 -S31540012C70400018420100000080A2200002BFFFD997 -S31540012C80010000007FFFB96690102001400017FD4A -S31540012C9001000000400017B601000000400001F8A5 -S31540012CA00100000080A6A00002BFFFD70310014427 -S31540012CB040001DEB01000000031001447FFFB9678E -S31540012CC0B4106104912A2002C206800880A06000E7 -S31540012CD002BFFFD480A620007FFFB960010000003B -S31540012CE07FFFB95EA0100008912A2002C206800823 -S31540012CF09FC040009010001080A6200002BFFFCB6D -S31540012D00010000007FFFB9FD9010001940000451F9 -S31540012D100100000040001DC701000000400015846D -S31540012D2081E800000100000003100143DA0060D091 -S31540012D309A036001DA2060D081C3E00801000000F7 -S31540012D409DE3BF987FFFB92C11004044D806200867 -S31540012D5082103FFFC2262004DA060000C2060000A8 -S31540012D6080A340010280006FA60B20078210201F1E -S31540012D70C2262004C226000080A4E000028000335F -S31540012D8082100018A2100013C0206018A2847FFF91 -S31540012D9012BFFFFE82006010A210200080A44013E3 -S31540012DA01680002B80A4E001A810200FA010001867 -S31540012DB07FFFB91690100011C0242010E82420147A -S31540012DC082102006C2242018DA04201080A3600F46 -S31540012DD002800004010000007FFFB911901020031A -S31540012DE0E82420189A10200EC204201080A0400D1D -S31540012DF012BFFFFE010000009A837FFF1CBFFFFB4D -S31540012E00A4100010C204201080A0600F12BFFFFE64 -S31540012E1001000000C204201880886010028000353D -S31540012E2082102010C224A018DA042018808B60106A -S31540012E301280003801000000A204600180A4401302 -S31540012E4006BFFFDCA004201080A4E001148000101E -S31540012E5080A4E0000280000782100018A21000132F -S31540012E60C0206018A2847FFF12BFFFFE820060105F -S31540012E7021100144C204210080A060000280002D7F -S31540012E801110004B1080000D921000197FFFB8DF22 -S31540012E90901020088210200FC22620189A10202F49 -S31540012EA0DA262028C206202080A0600D12BFFFFE30 -S31540012EB080A4E00030BFFFE8400025DA90122128C7 -S31540012EC07FFFFC38D004210082102001832840195D -S31540012ED0DA042100C22360409810200FD82620141E -S31540012EE08210200DC2262018A780000030800011D4 -S31540012EF07FFFB8CB9010200482102010C224A01866 -S31540012F00DA042018808B601022BFFFCDA204600135 -S31540012F107FFFB8C39010200510BFFFC9A20460010E -S31540012F207FFFB8BF9010200110BFFF928210201F73 -S31540012F3081C7E00881E800000000000000000000B1 -S31540012F400100000001000000010000000100000036 -S31540012F50010000000100000081C3E00801000000FB -S31540012F600100000001000000010000000100000016 -S31540012F70010000000100000081C3E00801000000DB -S31540012F8001000000010000000100000001000000F6 -S31540012F90010000000100000081C3E00801000000BB -S31540012FA001000000010000000100000001000000D6 -S31540012FB0010000000100000081C3E008010000009B -S31540012FC0D482018090A2000916BFFFFE9612800BA3 -S31540012FD081C3E0089010000BD48201C090A2000981 -S31540012FE016BFFFFE9612800B81C3E0089010000BBE -S31540012FF090A22004C0A201A090A22004C0A201A0D8 -S3154001300090A22004C0A201A090A22004C0A201A0C7 -S31540013010C0A2018090A2200414BFFFF70100000066 -S3154001302081C3E0080100000090A22004C0A201E093 -S3154001303090A22004C0A201E090A22004C0A201E017 -S3154001304090A22004C0A201E0C0A201C090A2200427 -S3154001305014BFFFF70100000081C3E0080100000032 -S31540013060981000089610000A98A3200814BFFFFF85 -S31540013070D43B00099810000898A3200814BFFFFF0D -S31540013080C01B00099810000898A32004D603000924 -S3154001309080A2C00A1280000698A3200434BFFFFD17 -S315400130A0D603000981C3E00890102000901020014A -S315400130B0981000089610000A98A3200814BFFFFF35 -S315400130C0D43B00099810000898A32004D6030009B0 -S315400130D080A2C00A1280000698A3200434BFFFFDD7 -S315400130E0D603000981C3E00890102000901020010A -S315400130F09810000898A32004D2A301A0DA8301A066 -S3154001310080A340091280000698A3200414BFFFFC47 -S31540013110D2A301A081C3E0089010200090102001A5 -S315400131209A1000089AA3400AD6A34180D8834180C9 -S31540013130981B000B988B0009128000069AA3400A3F -S3154001314014BFFFFBD6A3418081C3E0089010200045 -S31540013150901020019A1000089AA3400BD8A241CDA5 -S31540013160C48241CD8418800C8488800A128000066E -S315400131709AA3400B14BFFFFBD8A241CD81C3E008FF -S315400131809010200090102001010000000100000075 -S31540013190010000001310008092126138D4024000F1 -S315400131A080A2A0011280000780A0A002D4024000A4 -S315400131B0D4024000952AA0021080000501000000BB -S315400131C03280000381E80000D402400081E0000023 -S315400131D093480000818A60202310004CA21461F8B4 -S315400131E0A40460040100000081C4400081CC800039 -S315400131F091D0200191D02001268000059000200128 -S3154001320090222001912A2001912A200281C3E008BF -S315400132100100000081C3E008D082004081C3E0087C -S31540013220D2A2004081C3E008D082018081C3E00878 -S31540013230D2A2018081C3E008D08201A081C3E00807 -S31540013240D2A201A081C3E008D08201C081C3E008B7 -S31540013250D2A201C081C3E008D08201E081C3E00867 -S31540013260D2A201E081C3E008D2A2000081C3E008F6 -S31540013270D082000081C3E00891480000818A0000A5 -S3154001328001000000010000000100000081C3E008C8 -S315400132900100000081C3E008C0A000A081C3E0088E -S315400132A0C0A000C081C3E008D01A000001000000A0 -S315400132B001000000010000000100000001000000C3 -S315400132C09DE3BF7013100074CD1A60F0CD3FBFE08F -S315400132D0111000801B100080C91B61E0C51A21D85E -S315400132E0C11FBFE095A088C4D53FBFF0D91FBFF02D -S315400132F003100080D11861E881AB0A480100000043 -S315400133000380002BC13FBFD8F91FBFD8B5A0055CCC -S31540013310F53FBFF0ED1FBFF0F11FBFF0A5A58958DE -S31540013320E91FBFE0A1A488D415100074A1A0013003 -S31540013330DD1AA0F881AC0ACE010000000D80002DF7 -S31540013340F53FBFD0C51FBFD083A018C291A0492168 -S3154001335099A01928D51FBFE091A308CA1710007478 -S3154001336091A00128FD1AE10081AA0ADE01000000B0 -S315400133700D80002F01000000400001AE0100000059 -S315400133804000020C0100000080A2200012800031A2 -S3154001339001000000400002610100000080A22000FF -S315400133A00280003501000000308000317FFFB79C6C -S315400133B090102001F91FBFD8B5A0055CF53FBFF0BD -S315400133C0ED1FBFF0F11FBFF0A5A58958E91FBFE06A -S315400133D0A1A488D415100074A1A00130DD1AA0F86B -S315400133E081AC0ACE010000001BBFFFD7F53FBFD01D -S315400133F07FFFB78B90102002C51FBFD083A018C294 -S3154001340091A0492199A01928D51FBFE091A308CAC7 -S315400134101710007491A00128FD1AE10081AA0ADE65 -S31540013420010000001BBFFFD5010000007FFFB77CF4 -S31540013430901020034000017F01000000400001DDA3 -S315400134400100000080A2200002BFFFD3010000005E -S315400134507FFFB77301000000400002300100000009 -S3154001346080A2200002800004010000007FFFB76CAB -S315400134709010200581C7E00881E800009DE3BF98D0 -S315400134807FFFFF7D210000047FFFFF7D901200102A -S315400134907FFFFF79B0102000808A00100280000B68 -S315400134A09010200040000267010000007FFFB76BCB -S315400134B001000000912A20047FFFB75490022008A2 -S315400134C07FFFFF800100000081C7E00881E800001E -S315400134D019100080981321781110020092102000D3 -S315400134E0150FF76C9412A3D7D03B0000D4232008C4 -S315400134F0C11B0000C503200887A0892201000000E6 -S3154001350089A005408DA0892281A8CA260100000014 -S3154001351033800003901020009010200181C3E00801 -S3154001352001000000C11A0000C51A400089A00842E6 -S3154001353081C3E008C93A8000C11A0000C51A40009B -S3154001354089A0094281C3E008C93A80001910008068 -S3154001355098132178D0230000D2232008C10300000C -S31540013560C303200885A00D2181C3E008C53A800028 -S31540013570C11A0000C51A400089A009C2C93A800093 -S3154001358081C3E00801000000C11A000085A0054082 -S31540013590C53A400081C3E008010000000100000077 -S315400135A001000000010000000100000001000000D0 -S315400135B001000000010000000100000001000000C0 -S315400135C001000000010000000100000001000000B0 -S315400135D001000000010000000100000001000000A0 +S3154001153080A060060880008C010000000301DC00E9 +S31540011540C226202003000010C404200480888001A4 +S315400115501280007501000000C40420040300000449 +S31540011560808880011280007701000000C2042004B7 +S31540011570808868001280007901000000C2042004BE +S31540011580808864001280006501000000C2042004C6 +S31540011590808862001280005701000000C2042004C6 +S315400115A080886100028000590100000082103FFEE0 +S315400115B0C22420180702F7AB841020008610E1559B +S315400115C08328C002C2242010C204200480886100FE +S315400115D002BFFFFE010000008400A00880A0A020F9 +S315400115E012BFFFF98328C002C2060000833060089B +S315400115F0820860FF80A06003048000300100000083 +S31540011600C404200403000004808880011280003055 +S3154001161001000000C2242004C204200480A060000E +S3154001162006BFFFFE01000000C2042014C2042014BC +S31540011630C2042014C2042014C2042004808862001B +S31540011640128000270100000084102000861020002F +S31540011650C0242010C20420048088620002BFFFFE1D +S3154001166001000000C20420148728E008833060107E +S315400116708400A001820860FF80A0A00312BFFFF58D +S315400116808610C001030037AB8210615480A0C001AF +S315400116900280000582103FFF7FFFBEE79010200ABF +S315400116A082103FFFC2242018C0262020C2242004D5 +S315400116B081C7E00891E82000C40420040300000427 +S315400116C08088800112BFFFD4010000007FFFBEDA8F +S315400116D09010200810BFFFD0030000047FFFBED644 +S315400116E0901020098410200010BFFFDA86102000D8 +S315400116F07FFFBED190102006C2042004808861007D +S3154001170032BFFFAC82103FFE7FFFBECB9010200759 +S3154001171010BFFFA882103FFE7FFFBEC79010200575 +S3154001172030BFFF9B7FFFBEC490102002C40420043B +S31540011730030000048088800102BFFF8D0100000084 +S315400117407FFFBEBD90102003C2042004808868003C +S3154001175002BFFF8B010000007FFFBEB7901020043F +S3154001176030BFFF877FFFBEB49010200110BFFF75C9 +S315400117700301DC009DE3BFA07FFFBEA1110040B481 +S31540011780E2060000A3346014A28C600F1280007F31 +S31540011790A00620207FFFBEA190102001C206202076 +S315400117A0AE0E6001A8102000AA103FFF80A0600085 +S315400117B012800083AE380017C204200480A0600066 +S315400117C01280008501000000C204200880A060004C +S315400117D01280008701000000C204200C80A0600036 +S315400117E01280008901000000C204201080A0600020 +S315400117F01280008B010000007FFFBE8890102002FE +S3154001180080A0001784602000E6060000AD2C60141D +S3154001181003100000820880010500C00082004002DA +S3154001182082104016C2262020A734E008030000108B +S31540011830C404200480888001128000CCA60CE0FFFD +S31540011840C40420040300000480888001128000C47F +S3154001185001000000C204200480886800128000BD97 +S3154001186001000000C204200480886400128000B692 +S3154001187001000000C204200480886200128000AF8B +S3154001188001000000C204200480886100028000A794 +S3154001189001000000232AAAAA82102000A21462AAEB +S315400118A0E22420108200600180A4C00116BFFFFD22 +S315400118B0A2380011C2042004808864001280009876 +S315400118C001000000C20420048088610002BFFFFEBF +S315400118D001000000C2042004808862000280008D5D +S315400118E001000000E224201003001000C224200C55 +S315400118F005000010C20420048088400202BFFFFE9A +S3154001190001000000C4042004030000048088800113 +S315400119100280007C01000000252AAAAAA21020000C +S31540011920A414A2AAC4042014820C8015832840144E +S3154001193080A0800122800005A20460017FFFBE3E97 +S315400119409004600EA204600180A4C01136BFFFF668 +S31540011950A4380012C026202082103FFFC224200452 +S3154001196080A660020280008401000000C4060000D7 +S3154001197003000100808880011280002C01000000D4 +S3154001198081C7E00891E8200082046001AA103FFF68 +S31540011990901020017FFFBE21AB2D4001C2062020C1 +S315400119A0A810200FAE0E6001AA380015A825001117 +S315400119B080A0600002BFFF81AE3800177FFFBE1EC8 +S315400119C090102000C204200480A0600002BFFF7F67 +S315400119D0010000007FFFBE1890102001C2042008BC +S315400119E080A0600002BFFF7D010000007FFFBE12A4 +S315400119F090102002C204200C80A0600002BFFF7B31 +S31540011A00010000007FFFBE0C90102003C20420108D +S31540011A1080A0600002BFFF79010000007FFFBE0683 +S31540011A209010200430BFFF757FFFBDFC901020034E +S31540011A30A406220080A00017846020000310000045 +S31540011A40820880010520C0088200400282104016AB +S31540011A50C22620200337AB7C8210600DC2262200AD +S31540011A6003085483821063F2C224A0048210200327 +S31540011A70C2262050C024202482102002C2242020C5 +S31540011A80C20420048088620002BFFFFE01000000FC +S31540011A90C404A2000337AB7C8210600D820D400165 +S31540011AA08328401480A080010280000401000000C8 +S31540011AB07FFFBDE19004E00FC204A20405085483F0 +S31540011AC08410A3F2AA0D4002A92D401480A040140F +S31540011AD002800004010000007FFFBDD79004E010A2 +S31540011AE0C0242020C20420208088600202BFFFFE5D +S31540011AF001000000C026202081C7E00891E82000AF +S31540011B007FFFBDCD9010200D10BFFF85252AAAAAC3 +S31540011B107FFFBDC99010200C30BFFF737FFFBDC64C +S31540011B209010200B30BFFF687FFFBDC39010200A85 +S31540011B3010BFFF5A232AAAAA7FFFBDBF90102009D2 +S31540011B4030BFFF517FFFBDBC9010200830BFFF4A18 +S31540011B507FFFBDB99010200730BFFF437FFFBDB661 +S31540011B609010200630BFFF3C7FFFBDB3901020058B +S31540011B7030BFFF347FFFFE649010001830BFFF7CFA +S31540011B809DE3BF987FFFBDA590102005211001243C +S31540011B90D004210480A220000280003FA20620201A +S31540011BA04000013101000000C204210484102001DB +S31540011BB085288019C42060409210001911100045F3 +S31540011BC040002A97901220ECC204600480A0600075 +S31540011BD012800027010000000310CC00C2262020FD +S31540011BE082102200C224600821100123C2042084ED +S31540011BF080A060001280001B01000000C02460101C +S31540011C00C204600480A0600006BFFFFE0100000020 +S31540011C10C2046004808862000280001C010000004A +S31540011C20C2046014C227BFFCC204600480886200FB +S31540011C301280001301000000C204208480A06001CC +S31540011C4002800004010000007FFFBD7B901020064A +S31540011C50C0246008C026202081C7E00891E8200002 +S31540011C607FFFBD759010200330BFFFE57FFFBD723A +S31540011C709010200210BFFFDA0310CC007FFFBD6E2B +S31540011C809010200530BFFFED7FFFBD6B9010200403 +S31540011C9030BFFFE47FFFBD689010200110BFFFC831 +S31540011CA0921000199DE3BFA07FFFBD551100403042 +S31540011CB080A22000128000AF82102001C226200C93 +S31540011CC0C0262004C0260000C0262008821020021B +S31540011CD0C2262008C0260000C0260000821020032C +S31540011CE0C226200882102083C226200882102000A6 +S31540011CF0C02600008200600180A0606412BFFFFD23 +S31540011D000100000082102000C4060000820060012C +S31540011D1080A0606412BFFFFD010000008210200216 +S31540011D20C2262008A0062004C284002080886004C0 +S31540011D3002BFFFFE01000000C0262008C0260000A9 +S31540011D40C284002084102001833860148208603FD9 +S31540011D5080A0600102800004A21020011080000EC4 +S31540011D6082102003C0260000A200A001C2840020E8 +S31540011D70833860148208603F80A0401122BFFFFA79 +S31540011D808410000180A4600134800002A210000288 +S31540011D9082102003C2262008C284002082086007E0 +S31540011DA080A060060280000801000000C286002073 +S31540011DB0C28400208208600780A0600612BFFFFC33 +S31540011DC001000000C0262008C026200480A460012E +S31540011DD00480000482102034C28400208210203402 +S31540011DE0C2260000C2840020C284002080A4600173 +S31540011DF0048000198210200129100076A4102001C8 +S31540011E00A815217090100012400024DC9210204148 +S31540011E10C24D0008C2260000A404A00180A480117E +S31540011E2012BFFFFA90100012C2840020C284002023 +S31540011E30833860148208603F80A04011028000040C +S31540011E40010000007FFFBCFC90102006C2840020E8 +S31540011E5082102001C226200CC284002080886001A5 +S31540011E601280005382102083C226200880A460017C +S31540011E700280004201000000C28400208088640084 +S31540011E8002BFFFFE01000000C2840020808860017D +S31540011E900280004F80A460010480005280A460004B +S31540011EA0C28400208330601A80A040110280000461 +S31540011EB0010000007FFFBCE090102009C284002091 +S31540011EC0808861000280004A01000000C28400202F +S31540011ED0808864000280004C0100000029100076D1 +S31540011EE0A4102000A8152170E686002092102041FA +S31540011EF0400024A290100012C24D000880A0401359 +S31540011F0022800005A404A0017FFFBCCB9010200CC9 +S31540011F10A404A00180A4401214BFFFF480A4600170 +S31540011F200480000F01000000C28400208088610007 +S31540011F301280003F01000000C28400208330601AF5 +S31540011F4080A060001280003701000000C28400209A +S31540011F50808864001280003001000000E084002087 +S31540011F60808C20011280000E01000000C02620084E +S31540011F7081C7E00891E82000C28400208088600182 +S31540011F8012BFFFC201000000C284002080886001A8 +S31540011F9002BFFFFA0100000030BFFFBC7FFFBCA6B5 +S31540011FA09010200CC026200830BFFFF27FFFBCA254 +S31540011FB09010200782102083C226200880A4600149 +S31540011FC012BFFFAE0100000030BFFFEC7FFFBC9A9D +S31540011FD09010200880A4600114BFFFB280A4600065 +S31540011FE034BFFFC02910007630BFFFDD7FFFBC92B2 +S31540011FF09010200AC28400208088640032BFFFB955 +S31540012000291000767FFFBC8C9010200B10BFFFB5C6 +S31540012010291000767FFFBC889010200B30BFFFD07F +S315400120207FFFBC859010200E30BFFFC97FFFBC8269 +S315400120309010200D30BFFFC103100123C4006088FA +S315400120408528A0028610608890022010D020C00208 +S31540012050C40060888400A001C420608881C3E00870 +S3154001206001000000C0220000C022204082103FFF34 +S31540012070C222200C0310012384102001C420608851 +S3154001208081C3E0080100000003100123C20060D0B3 +S3154001209090102000C020600881C3E00801000000C4 +S315400120A09DE3BFA023100124E00461047FFFBC5BD4 +S315400120B090102011C024201CC204201C80A0600066 +S315400120C00280004C01000000C204201C8330601BCA +S315400120D080A0401A0A80004E80A6A0000280003FE0 +S315400120E0C20461042B100123A6102004AA1560889E +S315400120F0BA102000A4102000AE103FFFA810200106 +S31540012100AC10201FB8102005BB2F6002C606401D2B +S31540012110C0240000C0242040EE24200CE8254000C5 +S31540012120832D0012A404A001852CA01082108001E9 +S31540012130C224201CEE2420408928E0049A00FFFF97 +S31540012140C206001D980040049B2B60048400400D8C +S31540012150EC206004EC204000F8204004C023200419 +S31540012160E820A018C400400480A0A00012BFFFFED2 +S31540012170010000008728E004C400400380A0A000BD +S3154001218002BFFFFE010000008200400DC020601822 +S31540012190C205400080A060020280000401000000E8 +S315400121A07FFFBC259004FFFFC40560048204A01094 +S315400121B080A0800102800004BA1000127FFFBC1E7D +S315400121C090100013C024201C80A6801218BFFFCF98 +S315400121D0A604E002C204610484103FFFB01020004F +S315400121E0C0206040C420600C81C7E00881E800003F +S315400121F07FFFBC1190102001C204201C8330601B5C +S3154001220080A0401A1ABFFFB680A6A0007FFFBC0A75 +S315400122109010200210BFFFB52B1001239DE3BF8014 +S315400122202310012321100124E6042104A404E10022 +S31540012230C204A004F02460D07FFFBBF890102010A8 +S31540012240C204A004050180008410A02080884002B9 +S315400122501280014501000000C404E100C204E1000E +S3154001226080A0800102800005821020017FFFBBF221 +S315400122709010200282102001C224A004C404E1006F +S31540012280C204E10080A080010280014201000000F9 +S31540012290C024A004C404E100C204E10080A080017E +S315400122A00280000580A720007FFFBBE39010200439 +S315400122B080A720001280011180A7200180A6A001DD +S315400122C00480001A2F100048A606E001AE15E088EA +S315400122D0A8102001AC14210410800005AA10200189 +S315400122E080A6801404800011A604E00180A4E01FAA +S315400122F034BFFFFCA805200192100013400028C8F6 +S3154001230090100017C2058000C4006040872D40131D +S315400123108410C002C4206040A805200180A6801414 +S3154001232014BFFFF3A604E00180A0001C84603FFFB8 +S31540012330C427BFF0C60460D082103FFFF627BFF81E +S31540012340C027BFFCC020E004C020E010C220E0143A +S31540012350C220E00C8206A0038538601F8530A01E8E +S3154001236082008001AF386002C207BFF08200401B85 +S315400123708416E020C227BFECC427BFE829100123F9 +S31540012380AC102001A81520D0310100003B0080008F +S315400123902B01800080A720000280000382102001CB +S315400123A08210001CC407BFFC80A08001168000CBB0 +S315400123B080A720010480001680A5E0000480001457 +S315400123C0C207BFFCC407BFFC892860188328601078 +S315400123D0881100018328A008881100028400E024A6 +S315400123E08811000182102001C820E02010800006DB +S315400123F080A04017C8208000820060018400A004AC +S3154001240080A0401712BFFFFC01000000C207BFF0C9 +S31540012410E827BFF480A68001A210000104800033A2 +S315400124208400E0081080000EE607BFECE624A00415 +S31540012430832D8011C220E008833E401180886001CF +S31540012440128000138400E008A204600180A6801176 +S3154001245004800026A604E001C605000080A72000EE +S3154001246002BFFFF380A7200102800079C407BFF8AD +S31540012470C424A004832D8011C220E008833E40116C +S315400124808088600102BFFFF18400E008C20080003D +S3154001249080A0600012BFFFFE01000000C204A0043C +S315400124A0808840180280006701000000C204A00431 +S315400124B08088401D0280006001000000EA24A004DB +S315400124C0C204A00480884015128000560100000015 +S315400124D0C40500008400A008A204600180A6801102 +S315400124E014BFFFDEA604E001C02080001080000575 +S315400124F0A210200080A460200280000780A720004F +S31540012500833E40118088600122BFFFFBA204600127 +S3154001251080A720001280005180A720018204401B21 +S3154001252082106020C224A004A32D8011E2208000E5 +S31540012530C200800080A0600012BFFFFE01000000C3 +S31540012540C204A004808860200280005D0100000072 +S31540012550C204A00480884018028000560100000091 +S31540012560C204A0048088401D0280004E0100000084 +S31540012570C207BFF4C4004000C204A008E604A00C90 +S315400125808600A008E220A008C400C00080A0A000E8 +S3154001259012BFFFFE01000000C404A0048088A020F1 +S315400125A02280003CC227BFE4C404A004808880186E +S315400125B022800034C227BFE4C404A0048088801D61 +S315400125C02280002CC227BFE4C404A00880A0400298 +S315400125D002800004010000007FFFBB179010200E0F +S315400125E0C204A00C80A4C00102800005C407BFF448 +S315400125F07FFFBB119010200FC407BFF4C207BFFC79 +S31540012600C6008000C407BFF8820060018400A001B3 +S31540012610EA24A004C227BFFC10BFFF5FC427BFF84E +S315400126207FFFBB0590102007C405000010BFFFAB1C +S315400126308400A0087FFFBB009010200630BFFFA09A +S315400126407FFFBAFD9010200530BFFF99F624A00404 +S3154001265010BFFF79832D80110280001CC607BFF889 +S315400126608210E020C224A00410BFFFB1A32D801127 +S315400126707FFFBAF19010200D10BFFFD4C207BFE40F +S315400126807FFFBAED9010200C10BFFFCCC207BFE40C +S315400126907FFFBAE99010200B10BFFFC4C207BFE409 +S315400126A07FFFBAE59010200A10BFFFB3C207BFF4FF +S315400126B07FFFBAE19010200930BFFFAA7FFFBADE43 +S315400126C09010200830BFFFA3C607BFE8C624A00468 +S315400126D010BFFF97A32D8011C2042104C020E00C36 +S315400126E084103FFFB0102000C0206040C420600C21 +S315400126F081C7E00881E800000280001E11100048F1 +S3154001270080A72000A610001B04BFFF08A8102000C8 +S315400127102F100048AC142104AE15E0881080000546 +S31540012720AA10200180A7001404BFFF00A604E001FF +S3154001273080A4E01F34BFFFFCA805200192100013BE +S31540012740400027B790100017C2058000C4006040C2 +S31540012750872D40138410C002C420604010BFFFF291 +S31540012760A80520017FFFBAB49010200130BFFEBBFF +S315400127709210001B400027AA90122088C20421040F +S31540012780852F001BC420604010BFFEE980A0001CBD +S315400127907FFFBAA99010200330BFFEBE9DE3BF80E4 +S315400127A00310012411004034231000487FFFBA94DE +S315400127B0F0206104C0260000C026204082103FFF61 +S315400127C0C226200C0310012384102001A0102001F1 +S315400127D0C4206088A21460389210001040002790EF +S315400127E090100011A004200180A4201012BFFFFC0C +S315400127F092100010F8062020B937201C231001231F +S315400128002D00003F3700002AB8072001A214608836 +S31540012810AC15A3FEB616E2AAA6100018AE1020000B +S31540012820B4103FFFBA102001A8102020AA10202181 +S3154001283080A720010280000580A5E0007FFFBA77CE +S315400128409010001780A5E0000280000F01000000F3 +S31540012850C024C000C024E040F424E00CFA24400027 +S31540012860832DE01CC224E024C204E0248330601C92 +S3154001287080A0401702800004010000007FFFBA6E6D +S3154001288090102012EC24E008C204E00880A0401613 +S3154001289002800004010000007FFFBA67901020010A +S315400128A0EC24E040C204E04080A0401602800004CF +S315400128B0010000007FFFBA6090102002C204E008C8 +S315400128C080A0600012BFFFFE01000000C20440006C +S315400128D080A0601002800005A01020017FFFBA563B +S315400128E090102003A0102001832C2002C204400135 +S315400128F08425001080A0800122800005A0042001CB +S315400129007FFFBA4D90102004A004200180A420101E +S3154001291012BFFFF7832C2002FA244000F624C000A0 +S31540012920EC24E040C204C00080A0401B02800004A9 +S31540012930010000007FFFBA4090102005C204E0402C +S3154001294080A0401602800004010000007FFFBA3AD1 +S3154001295090102005EC24E008C204E00880A0600045 +S3154001296012BFFFFE01000000C204400080A06010BB +S3154001297002800005A410201F7FFFBA2F9010200669 +S31540012980A410201FA0102001832C2002C204400164 +S3154001299080A0401222800005A00420017FFFBA26B4 +S315400129A090102007A004200180A4200812BFFFF741 +S315400129B0A404BFFEA410201CA010200A832C2002D0 +S315400129C0C204400180A0401222800005A0042001DB +S315400129D07FFFBA1990102008A004200180A420107E +S315400129E012BFFFF7A404BFFEFA27BFF082102002F0 +S315400129F0C407BFF08400A001C427BFF4C407BFF4D5 +S31540012A008400A001C427BFF8C407BFF88400A00111 +S31540012A10C427BFFC84102006C427BFE0C024C000E1 +S31540012A20C024E040FA244000C224E040C224E00829 +S31540012A308344400080886100028000050100000057 +S31540012A40805000018050000180500001C207BFE064 +S31540012A50C227BFE4C207BFE080A06006028000052E +S31540012A60821020027FFFB9F49010200A82102002C2 +S31540012A70C224E00801000000C207BFE0C227BFE44C +S31540012A80C207BFE080A060060280000582102002D6 +S31540012A907FFFB9E99010200A82102002C224E00883 +S31540012AA001000000C027BFE4C207BFE480A0600068 +S31540012AB01280007301000000C204E00880A060009B +S31540012AC012BFFFFE01000000C204400080A0600466 +S31540012AD002800004010000007FFFB9D79010200D4D +S31540012AE0C024E040EC24E008FA24400040000212F1 +S31540012AF0010000004000021290122F00EC24E04039 +S31540012B00C204E04080A0600002BFFFFE0100000059 +S31540012B10C204400080A0600202800004010000005F +S31540012B207FFFB9C59010200EC204600480A0601FCB +S31540012B3002800004010000007FFFB9BF9010200F02 +S31540012B40400001FDA4102002400001FD90023F001B +S31540012B50400001F901000000400001F990023F00E8 +S31540012B60C2044000A004A00180A0401022800005BC +S31540012B70A52CA0027FFFB9B090102010A52CA00271 +S31540012B80C40440128225401080A0800102800004C6 +S31540012B90A41000107FFFB9A89010201180A4201026 +S31540012BA012BFFFEC01000000C024E040F424E00C19 +S31540012BB0AE05E00180A7001714BFFF1EA624F00052 +S31540012BC080A720010480002C01000000C02620249B +S31540012BD0C206202480A060001280002C0100000063 +S31540012BE003040000C2262024C406202480A08001BC +S31540012BF002800005821020017FFFB98F90102014BA +S31540012C0082102001C2262020C02620240304000071 +S31540012C10C406202480A08001028000040100000037 +S31540012C207FFFB98590102015C0262020C02620247C +S31540012C30C206202480A060001280001B0100000013 +S31540012C4082102002C2262020C206202080886002EF +S31540012C500280001201000000C0262020C20620206A +S31540012C608088600202800004010000007FFFB97283 +S31540012C709010201881C7E00891E820007FFFB96EC7 +S31540012C809010200B30BFFF8D7FFFB96B9010201342 +S31540012C9010BFFFD5030400007FFFB96790102017CE +S31540012CA030BFFFEE7FFFB9649010201610BFFFE6DC +S31540012CB0821020029DE3BFA07FFFB97B0100000087 +S31540012CC080A220000280003B0100000080A6200077 +S31540012CD012800035010000007FFFB973010000003A +S31540012CE0912A20047FFFB94D9002200340001887A6 +S31540012CF00100000080A2200012800028010000008F +S31540012D004000182601000000400017D401000000D1 +S31540012D10400001EA0100000080A6A0001280001CCC +S31540012D20010000007FFFB96021100124912A200291 +S31540012D30A0142108C204000880A060000280000A95 +S31540012D4080A620007FFFB95801000000912A200289 +S31540012D507FFFB955E00400089FC400000100000050 +S31540012D6080A6200002800004010000007FFFB967B1 +S31540012D7090100019400004470100000040001E5613 +S31540012D8001000000400015D981E8000040001F28DD +S31540012D900100000030BFFFE47FFFB92790102001FA +S31540012DA030BFFFD87FFFB9499010001930BFFFCB24 +S31540012DB07FFFB9131100400C10BFFFC680A620004B +S31540012DC003100123C40060D48400A001C42060D450 +S31540012DD081C3E008010000009DE3BFA07FFFB90861 +S31540012DE01100404482103FFFE4062008C226200419 +S31540012DF0A40CA007C4060000C206000080A0800102 +S31540012E0002800074010000008210201FC2262004A7 +S31540012E10C226000080A4A0000280004E821020003D +S31540012E2085286004840600028200600180A0401269 +S31540012E30C020A01812BFFFFC85286004A010200006 +S31540012E40A610200FAA102006A81020107FFFB8F365 +S31540012E5090100010A2042001832C60048606000114 +S31540012E60A12C2004C026000184060010E620E004BF +S31540012E70EA20A018C206000180A0600F028000056A +S31540012E80820600107FFFB8EC9010200382060010E6 +S31540012E908410200E872C6004E6206018C2060003C9 +S31540012EA080A0400212BFFFFE010000008400BFFF68 +S31540012EB080A0BFFF12BFFFFA01000000852C60040D +S31540012EC0C206000280A0600F12BFFFFE82060010FC +S31540012ED0C20060188088601002800033A00600108E +S31540012EE0E8242018C204201880886010128000351A +S31540012EF00100000080A4801114BFFFD5A01000116D +S31540012F0080A4A0010480000C821020007FFFB8C37A +S31540012F10901020088210200FC22620188210202FE0 +S31540012F20C2262028C206202080A0600D12BFFFFEC7 +S31540012F308210200085286004840600028200600118 +S31540012F4080A04012C020A01812BFFFFC8528600453 +S31540012F5021100124C204210480A0600002800010D7 +S31540012F60921000191110004B400025AD901221C05E +S31540012F707FFFFC3DD0042104C204210484102001BA +S31540012F80B3288019F22060408210200FC2262014F7 +S31540012F908210200DC2262018A780000081C7E008B4 +S31540012FA081E800007FFFB8A490102004E82420188F +S31540012FB0C20420188088601022BFFFD080A48011EF +S31540012FC07FFFB89D9010200510BFFFCC80A48011D3 +S31540012FD07FFFB8999010200110BFFF8D8210201FEE +S31540012FE0000000000000000000000000000000009A +S31540012FF0000000000000000000000000000000008A +S315400130000100000001000000010000000100000075 +S31540013010010000000100000081C3E008010000003A +S315400130200100000001000000010000000100000055 +S31540013030010000000100000081C3E008010000001A +S315400130400100000001000000010000000100000035 +S31540013050010000000100000081C3E00801000000FA +S315400130600100000001000000010000000100000015 +S31540013070010000000100000081C3E00801000000DA +S31540013080D482018090A2000916BFFFFE9612800BE2 +S3154001309081C3E0089010000BD48201C090A20009C0 +S315400130A016BFFFFE9612800B81C3E0089010000BFD +S315400130B090A22004C0A201A090A22004C0A201A017 +S315400130C090A22004C0A201A090A22004C0A201A007 +S315400130D0C0A2018090A2200414BFFFF701000000A6 +S315400130E081C3E0080100000090A22004C0A201E0D3 +S315400130F090A22004C0A201E090A22004C0A201E057 +S3154001310090A22004C0A201E0C0A201C090A2200466 +S3154001311014BFFFF70100000081C3E0080100000071 +S31540013120981000089610000A98A3200814BFFFFFC4 +S31540013130D43B00099810000898A3200814BFFFFF4C +S31540013140C01B00099810000898A32004D603000963 +S3154001315080A2C00A1280000698A3200434BFFFFD56 +S31540013160D603000981C3E008901020009010200189 +S31540013170981000089610000A98A3200814BFFFFF74 +S31540013180D43B00099810000898A32004D6030009EF +S3154001319080A2C00A1280000698A3200434BFFFFD16 +S315400131A0D603000981C3E008901020009010200149 +S315400131B09810000898A32004D2A301A0DA8301A0A5 +S315400131C080A340091280000698A3200414BFFFFC87 +S315400131D0D2A301A081C3E0089010200090102001E5 +S315400131E09A1000089AA3400AD6A34180D883418009 +S315400131F0981B000B988B0009128000069AA3400A7F +S3154001320014BFFFFBD6A3418081C3E0089010200084 +S31540013210901020019A1000089AA3400BD8A241CDE4 +S31540013220C48241CD8418800C8488800A12800006AD +S315400132309AA3400B14BFFFFBD8A241CD81C3E0083E +S3154001324090102000901020010100000001000000B4 +S315400132500100000013100080921260E4D402400085 +S3154001326080A2A0011280000780A0A002D4024000E3 +S31540013270D4024000952AA0021080000501000000FA +S315400132803280000381E80000D402400081E0000062 +S3154001329093480000818A60202310004CA21462B832 +S315400132A0A40460040100000081C4400081CC800078 +S315400132B091D0200191D02001268000059000200167 +S315400132C090222001912A2001912A200281C3E008FF +S315400132D00100000081C3E008D082004081C3E008BC +S315400132E0D2A2004081C3E008D082018081C3E008B8 +S315400132F0D2A2018081C3E008D08201A081C3E00847 +S31540013300D2A201A081C3E008D08201C081C3E008F6 +S31540013310D2A201C081C3E008D08201E081C3E008A6 +S31540013320D2A201E081C3E008D2A2000081C3E00835 +S31540013330D082000081C3E00891480000818A0000E4 +S3154001334001000000010000000100000081C3E00807 +S315400133500100000081C3E008C0A000A081C3E008CD +S31540013360C0A000C081C3E008D01A000001000000DF +S315400133700100000001000000010000000100000002 +S315400133809DE3BF8803100076D11861B8D13FBFF0E5 +S3154001339003100080D11FBFF0D9186180031000804F +S315400133A0D518618895A308CAD53FBFF80310008098 +S315400133B0D91FBFF8D518619081AB0A4A01000000B8 +S315400133C023800038D127BFEC91A005480310007631 +S315400133D0D13FBFF8D51FBFF8D91FBFF899A3094AF6 +S315400133E0D51FBFF099A308CA99A0012CD51861C071 +S315400133F081AB0ACA010000002D800024D127BFEC11 +S3154001340091A018C891A20928D51FBFF091A01928EB +S3154001341091A208CA91A0012803100076D51861C867 +S3154001342081AA0ACA010000000D80001501000000B2 +S315400134304000019001000000400001EE0100000043 +S3154001344080A220001280000B0100000040000243D0 +S315400134500100000080A2200012800004010000004B +S3154001346081C7E00881E800007FFFB77391E8200536 +S315400134707FFFB7710100000030BFFFF57FFFB76ED8 +S315400134809010200330BFFFEBD327BFE87FFFB76A19 +S3154001349090102002D307BFE810BFFFDAD107BFEC77 +S315400134A0D327BFE87FFFB76490102001D307BFE859 +S315400134B010BFFFC6D107BFEC9DE3BFA07FFFFF9EB4 +S315400134C0210000047FFFFF9E901200107FFFFF9AAC +S315400134D001000000808A001012800004B010200014 +S315400134E081C7E00881E80000400002669010200094 +S315400134F07FFFB76D01000000912A20047FFFB74787 +S31540013500900220087FFFFF9F81E800000100000034 +S3154001351019100080981321201110020092102000EA +S31540013520150FF76C9412A3D7D03B0000D423200883 +S31540013530C11B0000C503200887A0892201000000A5 +S3154001354089A005408DA0892281A8CA2601000000D4 +S3154001355033800003901020009010200181C3E008C1 +S3154001356001000000C11A0000C51A400089A00842A6 +S3154001357081C3E008C93A8000C11A0000C51A40005B +S3154001358089A0094281C3E008C93A80001910008028 +S3154001359098132120D0230000D2232008C103000024 +S315400135A0C303200885A00D2181C3E008C53A8000E8 +S315400135B0C11A0000C51A400089A009C2C93A800053 +S315400135C081C3E00801000000C11A000085A0054042 +S315400135D0C53A400081C3E008010000000100000037 S315400135E00100000001000000010000000100000090 S315400135F00100000001000000010000000100000080 S31540013600010000000100000001000000010000006F -S3154001361001000000010000000100000081A000201F -S3154001362081C3E00801000000C11A000081C3E0081F -S3154001363001000000C51A000089A009C2C93A40002C -S3154001364081C3E008010000001310008092126178E6 -S31540013650D0224000C102400085A01900C53A400071 -S3154001366081C3E008D01A400013100080921261789D -S31540013670D0224000C102400085A01880C5224000EA -S3154001368081C3E008D0024000151000809412A17851 -S31540013690D03A8000C11A800085A01A40C522800018 -S315400136A081C3E008D0028000151000809412A178F1 -S315400136B0D0228000C102800085A01A20C522800048 -S315400136C081C3E008D0028000151000809412A178D1 -S315400136D0D0228000C102800081A01920C13A800019 -S315400136E081C3E008D01A8000151000809412A17899 -S315400136F0D03A8000C11A800081A018C0C122800042 -S3154001370081C3E008D0028000151000809412A17890 -S31540013710D0228000CB0280008DA00025CD228000E2 -S3154001372081C3E008D0028000151000809412A17870 -S31540013730D0228000CB0280008DA000A5CD22800042 -S3154001374081C3E008D0028000151000809412A17850 -S31540013750D0228000CB0280008DA00125CD228000A1 -S3154001376081C3E008D00280001910008098132178A7 -S31540013770D03B0000D43B2008C11B0000C51B2008DC -S3154001378081A80A4201000000338000099010200000 -S3154001379029800007901020012D80000590102002FD -S315400137A02F8000039010200391D0200081C3E008B0 -S315400137B0010000001910008098132178D03B0000C9 -S315400137C0D43B2008C11B0000C51B200881A80AC2A2 -S315400137D00100000033BFFFF69010200029BFFFF41F -S315400137E0901020012DBFFFF2901020022FBFFFF055 -S315400137F09010200391D02000191000809813217851 -S31540013800D0230000D2232008C1030000C3032008AF -S3154001381081A80A210100000033BFFFE59010200076 -S3154001382029BFFFE3901020012DBFFFE19010200238 -S315400138302FBFFFDF9010200391D020001910008088 -S3154001384098132178D0230000D2232008C103000019 -S31540013850C303200881A80AA10100000033BFFFD499 -S315400138609010200029BFFFD2901020012DBFFFD01C -S31540013870901020022FBFFFCE9010200391D0200040 -S315400138801910008098132178D03B0000D43B2008C2 -S31540013890C11B0000C51B200889A008C2C93B000006 -S315400138A081C3E008D01B00001910008098132178CD -S315400138B0D0230000D2232008C1030000C3032008FF -S315400138C085A00821C523000081C3E008D00300007C -S315400138D01910008098132178D0230000D2232008A4 -S315400138E0C1030000C303200885A008A1C523000029 -S315400138F081C3E008D0030000191000809813217895 -S31540013900D0230000D2232008C1030000C3032008AE -S3154001391085A00921C523000081C3E008D00300002A -S315400139201910008098132178D0230000D223200853 -S31540013930C1030000C303200885A009A1C5230000D7 -S3154001394081C3E008D0030000191000809813217844 -S31540013950D0230000C103000083A00520C32300003B -S3154001396081C3E008D00300001310008092126190D9 -S31540013970C51A6008C11A400089A0084091A108C231 -S3154001398095A209C495A2894281C3E008D53A0000AF -S3154001399013100080921261B0C1024000C30260045C -S315400139A085A0082087A088A189A0C9A289A109214B -S315400139B081C3E008C922000096102002131000803E -S315400139C092126190151000809412A190D502400088 -S315400139D0D7028000D5220000D802000013100080D3 -S315400139E0921261B096A2E00112BFFFF901000000F8 -S315400139F081C3E0080100000013100080921261901B -S31540013A00151000809412A1B0C1028000C51A601041 -S31540013A1083A0082089A088C08BA109A18DA1094254 -S31540013A208FA1492691A0054681C3E008D13A0000FD -S31540013A301110008090122188C11A0000C51A000099 -S31540013A40C91A0000CD1A0000D11A0000D51A00008B -S31540013A50D91A0000DD1A0000E11A0000E51A00003B -S31540013A60E91A0000ED1A0000F11A0000F51A0000EB -S31540013A70F91A0000FD1A000081C3E00801000000A8 -S31540013A8029100080A815215827100080A614E1C0EE -S31540013A90C12CC000E604C000A134E00EA00C2007F2 -S31540013AA0A0A42002AE1020002D100080AC15A1C0AC -S31540013AB0AE05E001AC05A008C1358000C12D00006E -S31540013AC0EA050000AB35600DAA8D600112BFFFF912 -S31540013AD001000000808000100280002F2B3C1FFF58 -S31540013AE0AA1563FFA60CC015E6250000C10D00000E -S31540013AF02B100080AA1561CC2D10004EAC15A36089 -S31540013B00AE25E001E0054000E025800081D8200097 -S31540013B10010000000100000001000000010000005A -S31540013B20010000000100000001000000010000004A -S31540013B30010000000100000001000000010000003A -S31540013B40010000000100000001000000010000002A +S31540013610010000000100000001000000010000005F +S31540013620010000000100000001000000010000004F +S31540013630010000000100000001000000010000003F +S31540013640010000000100000001000000010000002F +S3154001365001000000010000000100000081A00020DF +S3154001366081C3E00801000000C11A000081C3E008DF +S3154001367001000000C51A000089A009C2C93A4000EC +S3154001368081C3E008010000001310008092126120FE +S31540013690D0224000C102400085A01900C53A400031 +S315400136A081C3E008D01A40001310008092126120B5 +S315400136B0D0224000C102400085A01880C5224000AA +S315400136C081C3E008D0024000151000809412A12069 +S315400136D0D03A8000C11A800085A01A40C5228000D8 +S315400136E081C3E008D0028000151000809412A12009 +S315400136F0D0228000C102800085A01A20C522800008 +S3154001370081C3E008D0028000151000809412A120E8 +S31540013710D0228000C102800081A01920C13A8000D8 +S3154001372081C3E008D01A8000151000809412A120B0 +S31540013730D03A8000C11A800081A018C0C122800001 +S3154001374081C3E008D0028000151000809412A120A8 +S31540013750D0228000CB0280008DA00025CD228000A2 +S3154001376081C3E008D0028000151000809412A12088 +S31540013770D0228000CB0280008DA000A5CD22800002 +S3154001378081C3E008D0028000151000809412A12068 +S31540013790D0228000CB0280008DA00125CD22800061 +S315400137A081C3E008D00280001910008098132120BF +S315400137B0D03B0000D43B2008C11B0000C51B20089C +S315400137C081A80A42010000003380000990102000C0 +S315400137D029800007901020012D80000590102002BD +S315400137E02F8000039010200391D0200081C3E00870 +S315400137F0010000001910008098132120D03B0000E1 +S31540013800D43B2008C11B0000C51B200881A80AC261 +S315400138100100000033BFFFF69010200029BFFFF4DE +S31540013820901020012DBFFFF2901020022FBFFFF014 +S315400138309010200391D02000191000809813212068 +S31540013840D0230000D2232008C1030000C30320086F +S3154001385081A80A210100000033BFFFE59010200036 +S3154001386029BFFFE3901020012DBFFFE190102002F8 +S315400138702FBFFFDF9010200391D020001910008048 +S3154001388098132120D0230000D2232008C103000031 +S31540013890C303200881A80AA10100000033BFFFD459 +S315400138A09010200029BFFFD2901020012DBFFFD0DC +S315400138B0901020022FBFFFCE9010200391D0200000 +S315400138C01910008098132120D03B0000D43B2008DA +S315400138D0C11B0000C51B200889A008C2C93B0000C6 +S315400138E081C3E008D01B00001910008098132120E5 +S315400138F0D0230000D2232008C1030000C3032008BF +S3154001390085A00821C523000081C3E008D00300003B +S315400139101910008098132120D0230000D2232008BB +S31540013920C1030000C303200885A008A1C5230000E8 +S3154001393081C3E008D00300001910008098132120AC +S31540013940D0230000D2232008C1030000C30320086E +S3154001395085A00921C523000081C3E008D0030000EA +S315400139601910008098132120D0230000D22320086B +S31540013970C1030000C303200885A009A1C523000097 +S3154001398081C3E008D003000019100080981321205C +S31540013990D0230000C103000083A00520C3230000FB +S315400139A081C3E008D00300001310008092126138F1 +S315400139B0C51A6008C11A400089A0084091A108C2F1 +S315400139C095A209C495A2894281C3E008D53A00006F +S315400139D01310008092126158C1024000C302600474 +S315400139E085A0082087A088A189A0C9A289A109210B +S315400139F081C3E008C92200009610200213100080FE +S31540013A0092126138151000809412A138D5024000F7 +S31540013A10D7028000D5220000D80200001310008092 +S31540013A209212615896A2E00112BFFFF9010000000F +S31540013A3081C3E00801000000131000809212613832 +S31540013A40151000809412A158C1028000C51A601059 +S31540013A5083A0082089A088C08BA109A18DA1094214 +S31540013A608FA1492691A0054681C3E008D13A0000BD +S31540013A701110008090122130C11A0000C51A0000B1 +S31540013A80C91A0000CD1A0000D11A0000D51A00004B +S31540013A90D91A0000DD1A0000E11A0000E51A0000FB +S31540013AA0E91A0000ED1A0000F11A0000F51A0000AB +S31540013AB0F91A0000FD1A000081C3E0080100000068 +S31540013AC029100080A81520F827100080A614E16867 +S31540013AD0C12CC000E604C000A134E00EA00C2007B2 +S31540013AE0A0A42002AE1020002D100080AC15A168C4 +S31540013AF0AE05E001AC05A008C1358000C12D00002E +S31540013B00EA050000AB35600DAA8D600112BFFFF9D1 +S31540013B1001000000808000100280002F2B3C1FFF17 +S31540013B20AA1563FFA60CC015E6250000C10D0000CD +S31540013B302B100080AA1561742D10004EAC15A3A060 +S31540013B40AE25E001E0054000E025800081D8200057 S31540013B50010000000100000001000000010000001A -S31540013B600000000080A5C00012BFFFE6AA0560085C -S31540013B70C12D0000E60500002B03C000A614C015A8 -S31540013B80E6250000C10D000081C4400081CC8000C3 -S31540013B900100000081C4800081CCA0040100000026 -S31540013BA00100000081C3E0089158000001000000B7 -S31540013BB01110008090122158C10A0000C022000055 -S31540013BC0C10A0000C12A0000D4020000130003808C -S31540013BD0942A800980A0000A3280004D901020036B -S31540013BE01303E000D223BFA0C023BFA4C10BBFA0D3 -S31540013BF0C023BFA0151000809412A170C10280009D -S31540013C000100000001000000C10BBFA0C10BBFA411 -S31540013C1083A00520C12BBFA0D003BFA0808A22006C -S31540013C202280003B90102004901020001510008047 -S31540013C309412A140C5028000C902A008D102A00C7D -S31540013C401310008092126170C70240008DA0894412 -S31540013C5081A98AC801000000038000050100000017 -S31540013C60901020011080002A01000000C50280004A -S31540013C70C902A008D102A00C1310008092126170F3 -S31540013C80CB0240008DA0894481A98AC80100000069 -S31540013C900380000501000000901020011080001CE7 -S31540013CA00100000025100080A414A168C11C8000F9 -S31540013CB0C51C800080A000003280000685A008C097 -S31540013CC081A80AC201000000138000030100000020 -S31540013CD0901020050100000025100080A414A16861 -S31540013CE0C11C8000C51C800080A0000001000000AE -S31540013CF03280000685A008C081A80AC201000000E2 -S31540013D00138000030100000090102007010000000D -S31540013D1081C3E00801000000901020019544000095 -S31540013D209532A01E940AA00380A280000280004022 -S31540013D309010200080A2A0030280003D1310008055 -S31540013D40921261F0C11A4000C51A6008FD0260185E -S31540013D5095A0003E99A0003E9DA0003E170000C0E0 -S31540013D609612E078A182C000010000000100000027 -S31540013D7001000000010000000100000001000000F8 -S31540013D8081A0002083A0002195A0002A99A0002CA3 -S31540013D909DA0002E170000C09612E07CA182C000B3 -S31540013DA001000000010000000100000001000000C8 -S31540013DB0010000000100000085A0002287A0002329 -S31540013DC0A180000001000000010000000100000088 -S31540013DD001000000010000000100000089A0084226 -S31540013DE0A9A2883ED93A4000DD224000CD1A601092 -S31540013DF0D102600881A90A46010000000380000C37 -S31540013E0081AD0A28010000000380000993440000A7 -S31540013E109332601B920A60079010200080A2A00195 -S31540013E2002800003902260079022600481C3E0086B -S31540013E3001000000C12BBFA081C3E008D003BFA091 -S31540013E40D023BFA081C3E008C10BBFA00100000081 -S31540013E509DE3BF6040001B19B0102000913A200A33 -S31540013E60900A200380A22001128011110100000056 -S31540013E707FFFB4E69010200D190C40291B23CD1B62 -S31540013E809410200096102000981320069A13609BE8 -S31540013E90D43FBFE0D43FBFC0D43FBFE87FFFFF421E -S31540013EA0D83FBFF0900A30000328040090122080CA -S31540013EB08210600FC22200001B10004E90022004A7 -S31540013EC09A1362809A234008191000009B3B6002B6 -S31540013ED0032784009A13400C82106010C2222004EA -S31540013EE07FFFFED4DA2200007FFFFFD61103E000F8 -S31540013EF02D100080C025A1C07FFFFDD49010200069 -S31540013F00809200091280000601000000C205A1C08E -S31540013F1080A0600002800004010000007FFFB4C061 -S31540013F209010200B7FFFFDC990103FFA0330060029 -S31540013F3080A200011280000480A2600002800EDB94 -S31540013F40010000007FFFB4B69010200B7FFFFDBF3C -S31540013F509010201403100D0080A20001128000046D -S31540013F6080A2600002800ECC010000007FFFB4AC4D -S31540013F709010200B7FFFFDB5901020620310162094 -S31540013F8080A200011280000480A2600002800EBD62 -S31540013F90010000007FFFB4A29010200B7FFFFDB30C -S31540013FA0901020050310280080A20001128000060F -S31540013FB001000000C205A1C080A06000028000048B -S31540013FC0010000007FFFB4969010200B7FFFFF9DFC -S31540013FD01103C000111C00007FFFFDAC92102000B0 -S31540013FE0031FFFFF821063FF80A200011280000AB7 -S31540013FF01B000070C205A1C09A13601F1900001072 -S315400140008208400D9813201080A0400C02800005C4 -S31540014010113C00007FFFB4829010200C113C00003F -S315400140207FFFFD9A921020000320000080A200012C -S315400140301280000A1B000070C205A1C09A13601FBE -S31540014040190000108208400D9813201080A0400CE2 -S3154001405002800004010000007FFFB4719010200C23 -S31540014060C025A1C0901020007FFFFD88921020003E -S3154001407080A220001280000601000000C205A1C0F6 -S3154001408080A0600002800005110144007FFFB464F6 -S315400140909010200C11014400132840009012230275 -S315400140A07FFFFD7A9212600180A2200012800006F5 -S315400140B001000000C205A1C080A060002280000569 -S315400140C01111FFFF7FFFB4569010200C1111FFFF15 -S315400140D07FFFFD76901223FF0300007F821063FF6E -S315400140E080A200011280000601000000C205A1C0A5 -S315400140F080A06000028000052F1000857FFFB44834 -S315400141009010200C2F1000857FFFFD60D01DE0C868 -S31540014110031FFFFF821063FF80A200011280000A85 -S315400141201B000070C205A1C09A13601F1900001040 -S315400141308208400D9813201080A0400C0280000593 -S31540014140031000857FFFB4369010200C03100085C4 -S31540014150D01860D8C025A1C07FFFFD4C01000000EA -S315400141600320000080A200011280000A1B0000709B -S31540014170C205A1C09A13601F190000108208400DA4 -S315400141809813201080A0400C02800005191000856C -S315400141907FFFB4239010200C19100085C025A1C0C3 -S315400141A07FFFFD3AD01B20B8031FFFFF821063FF3C -S315400141B080A200011280000A1B000070C205A1C046 -S315400141C09A13601F190000108208400D98132010A1 -S315400141D080A0400C02800005331000857FFFB4109B -S315400141E09010200C33100085C025A1C07FFFFD270C -S315400141F0D01E60F0C205A1C08330600E8208600304 -S3154001420080A0600202800004211000807FFFB40478 -S315400142109010200C7FFFFF0B1103C00011115804B1 -S31540014220C02421C07FFFFD299012223403102B00A8 -S315400142308210624680A20001128000050320000020 -S3154001424080A2400102800FC5010000007FFFB3F448 -S315400142509010200D113C02AF7FFFFD1C901220D122 -S31540014260033180558210639A80A2000112800005B5 -S315400142700308000080A2400102800FDB010000001C -S315400142807FFFB3E79010200D1111FC007FFFFD1752 -S3154001429092102000031FE00080A200011280000A54 -S315400142A01B000070C205A1C09A13601F19000010BF -S315400142B08208400D9813200880A0400C028000051A -S315400142C011207C017FFFB3D69010200D11207C0177 -S315400142D0C025A1C0901220307FFFFD0413000100CC -S315400142E00320000080A200011280000A1B0000701A -S315400142F0C205A1C09A13601F190000108208400D23 -S315400143009813200480A0400C0280000401000000A4 -S315400143107FFFB3C39010200DC025A1C0901020008F -S315400143207FFFFCF29210200080A22000128000063E -S3154001433001000000C205A1C080A060000280000407 -S31540014340010000007FFFB3B69010200D7FFFFCE710 -S31540014350D01DE0C803100085DA0060C080A2000DC0 -S315400143601280000601000000C205A1C080A06000C5 -S31540014370028000051B1000857FFFB3A99010200D18 -S315400143801B1000857FFFFCD9D01B60D0031FE000C6 -S3154001439080A200011280000601000000C205A1C0F2 -S315400143A080A0600002800005031000857FFFB39C5A -S315400143B09010200D031000857FFFFCCCD01860B80B -S315400143C003100085DA0060A880A2000D1280000A61 -S315400143D01B000070C205A1C09A13601F190000108E -S315400143E08208400D9813201080A0400C02800004E2 -S315400143F0010000007FFFB38A9010200DC025A1C0A7 -S315400144007FFFFCBAD01E60F0C205A1C08330600EAA -S315400144108208600380A060020280000423100080AD -S315400144207FFFB37F9010200D7FFFFE861103E000D2 -S315400144302108C6AF901420DEC02461C07FFFFCB3C3 -S31540014440A01420DE80A200101280000601000000A8 -S31540014450C20461C080A06000028000052108C6AF89 -S315400144607FFFB36F9010200E2108C6AF7FFFFCB7C8 -S31540014470901420DEA01420DE80A2001012800006D7 -S3154001448001000000C205A1C080A060002280000595 -S315400144901128C6AF7FFFB3629010200E1128C6AF18 -S315400144A07FFFFCAA901220DE0308C6AF821060DEB1 -S315400144B080A200011280000601000000C205A1C0D1 -S315400144C080A06000228000051108C6AF7FFFB3546B -S315400144D09010200E1108C6AF7FFFFC94901220DE8B -S315400144E00328C6AF821060DE80A20001128000065A -S315400144F001000000C205A1C080A060002280000525 -S315400145001128C6AF7FFFB3469010200E1128C6AFC3 -S315400145107FFFFC86901220DE0308C6AF821060DE64 -S3154001452080A200011280000601000000C205A1C060 -S3154001453080A0600002800004010000007FFFB338C4 -S315400145409010200E7FFFFE3F1103E00011151BC0A6 -S315400145501310C82115351BC01710C821901221030D -S31540014560921261419412A1037FFFFC809612E141B0 -S3154001457080A220021280000601000000C205A1C0EF -S3154001458080A060000280000511351BC07FFFB32467 -S315400145909010200F11351BC01310C82115151BC0D3 -S315400145A01710C82190122103921261419412A1035E -S315400145B07FFFFC6E9612E14180A220011280000627 -S315400145C001000000C205A1C080A060000280000574 -S315400145D0901020007FFFB3129010200F9010200002 -S315400145E092102000152000007FFFFC6096102000ED -S315400145F080A220001280000601000000C205A1C071 -S3154001460080A0600002800005191000857FFFB30479 -S315400146109010200F191000851B100085D01B20D04B -S315400146207FFFFC52D41B60D880A220021280000674 -S3154001463001000000C205A1C080A060000280000503 -S3154001464011151BC07FFFB2F69010200F11151BC02C -S315400146501310C82115151BE81710C8219012210304 -S31540014660921261419412A1037FFFFC409612E141EF -S3154001467080A220011280000601000000C205A1C0EF -S3154001468080A060000280000511151BE87FFFB2E49F -S315400146909010200F11151BE81310C82115151BC0CA -S315400146A01710C82190122103921261419412A1035D -S315400146B07FFFFC2E9612E14180A220021280000665 -S315400146C001000000C205A1C080A060000280000573 -S315400146D011151BE87FFFB2D29010200F11151BE870 -S315400146E01310C82190122103921261417FFFFC1FD2 -S315400146F0D41DE0C880A220031280000601000000FC -S31540014700C205A1C080A0600002800005031000859B -S315400147107FFFB2C39010200F0310008511151BE8CF -S315400147201310C82190122103921261417FFFFC0FA1 -S31540014730D41860B880A220031280000A1B000070C2 -S31540014740C205A1C09A13601F190000108208400DCE -S315400147509813201080A0400C0280000511151BE81B -S315400147607FFFB2AF9010200F11151BE81310C8211F -S31540014770C025A1C090122103921261417FFFFBFB2C -S31540014780D41E60F080A220021280000601000000C3 -S31540014790C205A1C080A060000280000515151BE876 -S315400147A07FFFB29F9010200F15151BE81710C821E7 -S315400147B0D01E60F09412A1037FFFFBEC9612E141FB -S315400147C080A220011280000601000000C205A1C09E -S315400147D080A060000280000515151BE87FFFB2909E -S315400147E09010200F15151BE81710C821D01DE0C8E1 -S315400147F09412A1037FFFFBDD9612E14180A22003C3 -S315400148001280000601000000C205A1C080A0600020 -S3154001481002800005191000857FFFB2819010200F9C -S315400148201910008515151BE81710C821D01B20B893 -S315400148309412A1037FFFFBCD9612E14180A2200392 -S315400148401280000A1B000070C205A1C09A13601FA6 -S31540014850190000108208400D9813201080A0400CCA -S315400148600280000511151BC07FFFB26D9010200F0D -S3154001487011151BC01310C82115351BC01710C821AF -S31540014880C025A1C090122103921261419412A10345 -S315400148907FFFFBC99612E14180A2200212800006E9 -S315400148A001000000C205A1C080A060000280000591 -S315400148B011351BC07FFFB25A9010200F11351BC016 -S315400148C01310C82115151BC01710C82190122103BA -S315400148D0921261419412A1037FFFFBB79612E14107 -S315400148E080A220011280000601000000C205A1C07D -S315400148F080A0600002800005901020007FFFB24832 -S315400149009010200F901020009210200015200000DA -S315400149107FFFFBA99610200080A22000128000068E -S3154001492001000000C205A1C080A060000280000510 -S315400149301B1000857FFFB23A9010200F1B10008597 -S3154001494003100085D01B60D07FFFFB9BD41860D835 -S3154001495080A220021280000601000000C205A1C00B -S3154001496080A060000280000511151BC07FFFB22C9C -S315400149709010200F11151BC01310C82115151BE8E7 -S315400149801710C82190122103921261419412A1037A -S315400149907FFFFB899612E14180A220011280000629 -S315400149A001000000C205A1C080A060000280000590 -S315400149B011151BE87FFFB21A9010200F11151BE845 -S315400149C01310C82115151BC01710C82190122103B9 -S315400149D0921261419412A1037FFFFB779612E14146 -S315400149E080A220021280000601000000C205A1C07B -S315400149F080A060000280000511151BE87FFFB20808 -S31540014A009010200F11151BE81310C8219012210395 -S31540014A10921261417FFFFB68D41DE0C880A220034A -S31540014A201280000A1B000070C205A1C09A13601FC4 -S31540014A30190000108208400D9813201080A0400CE8 -S31540014A4002800005191000857FFFB1F59010200FF7 -S31540014A501910008511151BE81310C8219012210366 -S31540014A60921261417FFFFB54D41B20B880A22003E0 -S31540014A701280000A1B000070C205A1C09A13601F74 -S31540014A80190000108208400D9813201080A0400C98 -S31540014A900280000511151BE87FFFB1E19010200F40 -S31540014AA011151BE81310C821C025A1C0901221037E -S31540014AB0921261417FFFFB40D41E60F080A220022A -S31540014AC01280000601000000C205A1C080A060005E -S31540014AD00280000515151BE87FFFB1D19010200F0C -S31540014AE015151BE81710C821D01E60F09412A103BA -S31540014AF07FFFFB319612E14180A220011280000620 -S31540014B0001000000C205A1C080A06000028000052E -S31540014B1015151BE87FFFB1C29010200F15151BE834 -S31540014B201710C821D01DE0C89412A1037FFFFB22B4 -S31540014B309612E14180A220031280000A1B000070F8 -S31540014B40C205A1C09A13601F190000108208400DCA -S31540014B509813201080A0400C028000051B10008590 -S31540014B607FFFB1AF9010200F1B10008515151BE874 -S31540014B701710C821D01B60B89412A1037FFFFB0E0A -S31540014B809612E14180A220031280000A1B000070A8 -S31540014B90C205A1C09A13601F190000108208400D7A -S31540014BA09813201080A0400C02800005110048EAAD -S31540014BB07FFFB19B9010200F110048EA13048D1519 -S31540014BC0C025A1C0901223CD7FFFFB0C92126278C3 -S31540014BD080A220011280000601000000C205A1C08A -S31540014BE080A0600002800005110048EA7FFFB18C79 -S31540014BF09010200F110048EA13048D15901223CD11 -S31540014C007FFFFB0F9212627880A22001128000067C -S31540014C1001000000C205A1C080A06000028000041E -S31540014C20010000007FFFB17E9010200FC025A1C07A -S31540014C307FFFFC841103C000291001449007BFF097 -S31540014C409207BFE87FFFFA3894152150C207BFF09B -S31540014C50DA05215080A0400D1280000782152150AF -S31540014C60DA006004C207BFF480A0400D02800D59EE -S31540014C70010000007FFFB16A9010201037100085B7 -S31540014C809007BFF09216E0E07FFFFA279415215076 -S31540014C90C206E0E0DA05215080A340018215215089 -S31540014CA0128000079816E0E0DA006004C20320048F -S31540014CB080A3400102800D42010000007FFFB158F0 -S31540014CC0901020109007BFF09215E0C87FFFFA16AA -S31540014CD094152150C205E0C8DA05215080A3400150 -S31540014CE082152150128000079815E0C8DA00600449 -S31540014CF0C203200480A3400102800D2C0100000064 -S31540014D007FFFB1479010201003100085921060B8C4 -S31540014D109007BFF07FFFFA04941521501B000070E5 -S31540014D20C205A1C09A13601F190000108208400DE8 -S31540014D309813201080A0400C0280000421100144E9 -S31540014D407FFFB1379010201003100080C02061C052 -S31540014D507FFFFC3C901020001310008594142150D5 -S31540014D60921260B87FFFF9F09007BFF039100085C5 -S31540014D70C20720B0DA04215080A340019414215087 -S31540014D8012800007821720B0DA02A004C200600434 -S31540014D9080A3400102800004010000007FFFB12092 -S31540014DA0901020107FFFFC271103C0009007BFF031 -S31540014DB0921660F07FFFF9DC94152150C205A1C01F -S31540014DC08330600E8208600380A060022110014496 -S31540014DD002800004231000807FFFB1119010201043 -S31540014DE094142150C02461C09007BFE87FFFF9CEDB -S31540014DF09207BFF0DA042150C207BFF080A34001F9 -S31540014E001280000794142150DA02A004C207BFF4AD -S31540014E1080A3400102800D21010000007FFFB10007 -S31540014E20901020109007BFE89216E0E07FFFF9BE90 -S31540014E3094152150C206E0E0DA05215080A34001D5 -S31540014E4082152150128000079816E0E0DA006004CE -S31540014E50C203200480A3400102800D0B0100000023 -S31540014E607FFFB0EF901020109007BFE89215E0C881 -S31540014E707FFFF9AD94152150C205E0C8DA052150EE -S31540014E8080A3400182152150128000079815E0C881 -S31540014E90DA006004C203200480A3400102800CF5BD -S31540014EA0010000007FFFB0DE901020101910008530 -S31540014EB0921320B89007BFE87FFFF99B94152150C4 -S31540014EC01B000070C205A1C09A13601F1900001093 -S31540014ED08208400D9813201080A0400C02800004E7 -S31540014EE0211001447FFFB0CE901020107FFFFBD5EB -S31540014EF0901020001310008594142150921260B82E -S31540014F007FFFF9899007BFE8C20720B0DA04215034 -S31540014F1080A340019414215012800007821720B0CB -S31540014F20DA02A004C200600480A3400102800004AA -S31540014F30010000007FFFB0BA901020107FFFFBC137 -S31540014F401103C0009007BFE8921660F07FFFF97623 -S31540014F5094152150C205A1C08330600E82086003BA -S31540014F6080A06002211001440280000423100080C9 -S31540014F707FFFB0AB9010201094142150C02461C023 -S31540014F809016E0E07FFFF9689207BFF0C206E0E0C5 -S31540014F90DA04215080A34001941421501280000765 -S31540014FA08216E0E0DA02A004C200600480A3400158 -S31540014FB002800CAB010000007FFFB09990102010D9 -S31540014FC09016E0E09207BFE87FFFF957941521500C -S31540014FD0C206E0E0DA05215080A340018215215046 -S31540014FE0128000079816E0E0DA006004C20320044C -S31540014FF080A3400102800C95010000007FFFB0882C -S31540015000901020101B100085901360D0921000085C -S315400150107FFFF9459415215019100085C20320D010 -S31540015020DA05215080A340018215215012800007E4 -S31540015030981320D0DA006004C203200480A3400103 -S3154001504002800C7D010000007FFFB075901020109A -S315400150501B100085901360D8921000087FFFF9322B -S315400150609415215019100085C20320D8DA05215024 -S3154001507080A340018215215012800007981320D841 -S31540015080DA006004C203200480A3400102800C655B -S31540015090010000007FFFB062901020101B100085B8 -S315400150A003100085901360D8921060D07FFFF91EDF -S315400150B0941521501B000070C205A1C09A13601FB0 -S315400150C0190000108208400D9813201080A0400C52 -S315400150D002800004211001447FFFB051901020103E -S315400150E07FFFFB589010200011100085131000859A -S315400150F094142150901220D87FFFF90B921260D060 -S31540015100C20720B0DA04215080A3400194142150F3 -S3154001511012800007821720B0DA02A004C2006004A0 -S3154001512080A3400102800004010000007FFFB03CE3 -S31540015130901020107FFFFB431103C000191000851A -S315400151401B100085901320D0921360D8C025A1C0B2 -S315400151507FFFF8F594152150C20720B0DA0521509A -S3154001516080A340018215215012800007981720B074 -S31540015170DA006004C203200480A3400102800C1FB0 -S315400151801B0000707FFFB026901020109016E0E0C3 -S31540015190921660F07FFFF8E494152150C205A1C034 -S315400151A08330600E8208600380A0600221100144B2 -S315400151B002800004231000807FFFB0199010201058 -S315400151C094142150C02461C09015E0C87FFFF8D6E1 -S315400151D09207BFF0C205E0C8DA04215080A340011E -S315400151E094142150128000078215E0C8DA02A00407 -S315400151F0C200600480A3400102800B9C01000000B4 -S315400152007FFFB007901020109015E0C89207BFE8C5 -S315400152107FFFF8C594152150C205E0C8DA05215033 -S3154001522080A3400182152150128000079815E0C8DD -S31540015230DA006004C203200480A3400102800B8689 -S31540015240010000007FFFAFF6901020109015E0C8D6 -S315400152509216E0E07FFFF8B494152150C205E0C8EC -S31540015260DA05215080A340018215215012800007A2 -S315400152709815E0C8DA006004C203200480A3400107 -S3154001528002800B70010000007FFFAFE590102010F7 -S315400152909015E0C8921000087FFFF8A3941521509D -S315400152A0C205E0C8DA05215080A34001821521508C -S315400152B0128000079815E0C8DA006004C203200492 -S315400152C080A3400102800B5A010000007FFFAFD44A -S315400152D09010201003100085921060B89015E0C818 -S315400152E07FFFF8919415215003000070A610601FAE -S315400152F0DA05A1C0030000109A0B4013AA106010F2 -S3154001530080A3401523100085251001440280000426 -S31540015310211000807FFFAFC290102010C02421C011 -S31540015320901460B89207BFF07FFFF87F9414A150A4 -S31540015330C20421C08208401380A0401502800004A7 -S31540015340010000007FFFAFB690102010C02421C09D -S31540015350901460B89207BFE87FFFF8739414A15088 -S31540015360C20421C08208401380A040150280000477 -S31540015370010000007FFFAFAA90102010C02421C079 -S31540015380901460B89216E0E07FFFF8679414A1503C -S31540015390C20421C08208401380A040150280000546 -S315400153A0131000857FFFAF9E9010201013100085CB -S315400153B0C02421C0921260C8901460B87FFFF85A89 -S315400153C09414A150C20421C08208401380A0401504 -S315400153D002800005901460B87FFFAF9190102010B5 -S315400153E0901460B8C02421C0921000087FFFF84E87 -S315400153F09414A150C20421C08208401380A04015D4 -S3154001540002800004010000007FFFAF85901020104C -S31540015410C02421C0901460B8921660F07FFFF84214 -S315400154209414A150C20421C08330600E82086003E7 -S3154001543080A06002228000051103C0007FFFAF7883 -S31540015440901020101103C0007FFFFA7E3B100084AC -S31540015450A2176210C02421C0AA14A150A40460104E -S31540015460A0102000A6046008B010200C920400137E -S31540015470900400117FFFF82C94152150DA04801016 -S3154001548098040012C2052150A004201880A34001AF -S315400154901280000790102010DA032004C205600430 -S315400154A080A3400122800005B0863FFF7FFFAF5CAD -S315400154B001000000B0863FFF1CBFFFEE92040013BF -S315400154C0C205A1C080A060001280098901000000C8 -S315400154D01110008490122348920220087FFFF8128F -S315400154E09415215098176210C2052150DA032148BC -S315400154F080A340011280000782152150DA03214C16 -S31540015500C200600480A3400122800AAB03100080E0 -S315400155107FFFAF439010201011100084901223603A -S31540015520920220087FFFF8009415215098176210C7 -S31540015530C2052150DA03216080A340011280000791 -S3154001554082152150DA032164C200600480A3400120 -S3154001555002800AA41B0000707FFFAF31901020101B -S315400155601110008490122378920220087FFFF7EEF3 -S315400155709415215098176210C2052150DA032178FB -S3154001558080A340011280000782152150DA03217C55 -S31540015590C200600480A3400102800A9C1B00007087 -S315400155A07FFFAF1F90102010C025A1C01110000031 -S315400155B092102000150FFC007FFFF8B296102000D4 -S315400155C0030FFC0080A200011280000880A2600047 -S315400155D01280000601000000C205A1C080A0600043 -S315400155E002800005111000007FFFAF0D90102010C2 -S315400155F01110000092102000152FFC007FFFF8A12A -S31540015600961020000310020080A2000112800008BB -S3154001561080A260001280000601000000C205A1C000 -S3154001562080A0600002800005113000007FFFAEFCC3 -S31540015630901020101130000092102000150FFC0030 -S315400156407FFFF890961020000330020080A20001EF -S315400156501280000880A2600012800006010000004E -S31540015660C205A1C080A06000028000051130000083 -S315400156707FFFAEEB901020101130000092102000F9 -S31540015680152FFC007FFFF87F96102000032FFC00AA -S3154001569080A200011280000880A2600012800006EC -S315400156A001000000C205A1C080A060000280000583 -S315400156B0111000007FFFAEDA90102010111000008B -S315400156C07FFFF87A130FE0000310100080A200015B -S315400156D01280000601000000C205A1C080A0600042 -S315400156E002800005111000007FFFAECD9010201002 -S315400156F0111000007FFFF877130FE000030FE00061 -S3154001570080A200011280000601000000C205A1C06E -S3154001571080A0600022800005191000857FFFAEC081 -S315400157209010201019100085921320E8C025A1C0C1 -S315400157309007BFF07FFFF78F941521501910008510 -S31540015740C20320D8DA05215080A340018215215099 -S3154001575012800007981320D8DA006004C20320049F -S3154001576080A3400102800A461B0000707FFFAEAC59 -S31540015770901020111B100085921360D0C025A1C046 -S315400157809007BFF07FFFF77B94152150C207BFE01A -S31540015790DA05215080A3400112800007821521506D -S315400157A0DA006004C207BFE480A3400102800A3EDA -S315400157B0010000007FFFAE9A901020119007BFF0C4 -S315400157C09215E0C87FFFF76B94152150C205E0C8DA -S315400157D0DA05215080A3400182152150128000072D -S315400157E09815E0C8DA006004C203200480A3400192 -S315400157F002800A32010000007FFFAE89901020111D -S3154001580003100085921060B89007BFF07FFFF759EB -S3154001581094152150C20720B0DA05215080A34001DA -S315400158208215215012800007981720B0DA006004D3 -S31540015830C203200480A3400102800A251B00007098 -S315400158407FFFAE77901020119007BFF0921660F05F -S315400158507FFFF74894152150C205A1C01B00007077 -S315400158608208400D1900002080A0400C21100144FF -S3154001587002800004231000807FFFAE699010201142 -S3154001588094142150C02461C09007BFE87FFFF739C7 -S315400158909207BFF0DA042150C207BFE880A3400156 -S315400158A01280000794142150DA02A004C207BFEC0B -S315400158B080A3400102800A10010000007FFFAE581C -S315400158C09010201119100085901320E89207BFE02F -S315400158D07FFFF72894152150C20720B0DA052150E1 -S315400158E080A340018215215012800007981720B0ED -S315400158F0DA006004C203200480A3400102800A0347 -S315400159001B0000707FFFAE46901020111B100085D2 -S3154001591003100085901360E8921060D0C025A1C0A5 -S315400159207FFFF7149415215019100085C20320E812 -S31540015930DA05215080A340018215215012800007CB -S31540015940981320E8DA006004C203200480A34001D2 -S31540015950028009F8010000007FFFAE31901020114E -S315400159609007BFE89215E0C87FFFF70294152150D2 -S31540015970C205E0C8DA05215080A3400182152150B5 -S31540015980128000079815E0C8DA006004C2032004BB -S3154001599080A34001028009EC010000007FFFAE2098 -S315400159A0901020071B100085921360B89007BFE83E -S315400159B07FFFF6F09415215025000070D805A1C04F -S315400159C09A14A01F03000010980B000D821060105E -S315400159D080A30001211001440280000423100080AD -S315400159E07FFFAE0F90102011C02461C09007BFE821 -S315400159F0921660F07FFFF6DF94142150C20461C015 -S31540015A00820840121B00002080A0400D2280000524 -S31540015A10031000857FFFAE02901020110310008510 -S31540015A20901060D894142150C02461C07FFFF6D1F4 -S31540015A309207BFF019100085C20320D8DA0421501D -S31540015A4080A340019414215012800007821320D86C -S31540015A50DA02A004C200600480A34001028008B8B3 -S31540015A60010000007FFFADEE901020111B10008554 -S31540015A7003100085901360D8921060E87FFFF6BD51 -S31540015A809415215019100085C20320D0DA05215002 -S31540015A9080A340018215215012800007981320D01F -S31540015AA0DA006004C203200480A34001028008A9F1 -S31540015AB0010000007FFFADDA901020119016E0E062 -S31540015AC0921000087FFFF6AB94152150C20720B013 -S31540015AD0DA05215080A3400182152150128000072A -S31540015AE0981720B0DA006004C203200480A3400165 -S31540015AF00280089D1B0000707FFFADC990102011E8 -S31540015B00C025A1C09016E0E09215E0C87FFFF69946 -S31540015B1094152150C205E0C8DA05215080A3400101 -S31540015B2082152150128000079815E0C8DA006004FA -S31540015B30C203200480A340010280089401000000B2 -S31540015B407FFFADB7901020111B100085921360B8EE -S31540015B509016E0E07FFFF68794152150C20720B0EA -S31540015B60DA05215080A34001821521501280000799 -S31540015B70981720B0DA006004C203200480A34001D4 -S31540015B80028008871B0000707FFFADA59010201191 -S31540015B90C025A1C09016E0E0921660F07FFFF67531 -S31540015BA094152150C205A1C01B0000708208400D0A -S31540015BB01900002080A0400C2310008002800004C0 -S31540015BC0211001447FFFAD9690102011941421506D -S31540015BD0C02461C09015E0C87FFFF6669207BFF00A -S31540015BE0C205E0C8DA04215080A340019414215033 -S31540015BF0128000078215E0C8DA02A004C2006004E0 -S31540015C0080A340010280086F010000007FFFAD8440 -S31540015C10901020119015E0C89207BFE87FFFF65516 -S31540015C2094152150C205E0C8DA05215080A34001F0 -S31540015C3082152150128000079815E0C8DA006004E9 -S31540015C40C203200480A340010280086301000000D2 -S31540015C507FFFAD73901020119015E0C89216E0E0D9 -S31540015C607FFFF64494152150C205E0C8DA0521505C -S31540015C7080A3400182152150128000079815E0C883 -S31540015C80DA006004C203200480A340010280085761 -S31540015C90010000007FFFAD62901020119015E0C811 -S31540015CA0921000087FFFF63394152150C205E0C8D3 -S31540015CB0DA05215080A34001821521501280000748 -S31540015CC09815E0C8DA006004C203200480A34001AD -S31540015CD0028007F3010000007FFFAD5190102011B3 -S31540015CE003100085921060B89015E0C87FFFF62139 -S31540015CF094152150C20720B0DA05215080A34001F6 -S31540015D008215215012800007981720B0DA006004EE -S31540015D10C203200480A34001028007E61B000070F5 -S31540015D207FFFAD3F901020119015E0C8921660F0AC -S31540015D307FFFF61094152150C205A1C031000070B5 -S31540015D40820840183B00002080A0401D23100144DA -S31540015D5002800004211000807FFFAD319010201198 -S31540015D6019100085901320B89207BFF07FFFF60106 -S31540015D7094146150C20421C0AA16201F3500001098 -S31540015D8082084015A616A01080A040130280000488 -S31540015D90251000857FFFAD2290102011C02421C01F -S31540015DA09014A0B89207BFE87FFFF5F294146150B2 -S31540015DB0C20421C08208401580A04013028000041D -S31540015DC0010000007FFFAD1690102011C02421C0B4 -S31540015DD09014A0B89216E0E07FFFF5E69414615066 -S31540015DE0C20421C08208401580A0401302800005EC -S31540015DF0131000857FFFAD0A901020111310008506 -S31540015E00C02421C0921260C89014A0B87FFFF5D972 -S31540015E1094146150C20421C08208401580A04013E9 -S31540015E20028000059014A0B87FFFACFD90102011B0 -S31540015E309014A0B8C02421C0921000087FFFF5CD70 -S31540015E4094146150C20421C08208401580A04013B9 -S31540015E5002800005131000857FFFACF190102011E0 -S31540015E6013100085C02421C09014A0B8921260F08E -S31540015E707FFFF5C094146150C20421C082084018C6 -S31540015E8080A0401D2280000515203E837FFFACE4A3 -S31540015E909010201115203E83170021C89412A3FFAC -S31540015EA09612E3A1191FC0001B00C0009A1360B0EF -S31540015EB098132102D43FBFD0D83FBFD8C02421C0B8 -S31540015EC09007BFD89207BFD07FFFF5AA9407BFC8F6 -S31540015ED0DA07BFC8033FFC0080A340010280070BDD -S31540015EE0A207BFC87FFFACCE901020111510868344 -S31540015EF0170021C89412A3FF9612E3A1190040008E -S31540015F001B00C0009A1360B098132102D43FBFD042 -S31540015F10D83FBFD8C025A1C09007BFD89207BFD0F0 -S31540015F207FFFF5949407BFC8DA046004C207BFC86F -S31540015F308090400D1280000A1B000070C205A1C06E -S31540015F409A13601F190000108208400D981320040F -S31540015F5080A0400C22800005150FFC007FFFACB0ED -S31540015F6090102011150FFC00170281D89412A04001 -S31540015F709612E10C9A102010190006AFD43FBFD0FB -S31540015F80D83FBFD8C025A1C09007BFD89207BFD080 -S31540015F907FFFF5789407BFC8030006AEDA07BFC88E -S31540015FA08210639580A340011280000703003A9A4C -S31540015FB0DA0460048210630F80A340010280073334 -S31540015FC0010000007FFFAC9690102011150FFFFFD6 -S31540015FD0170281D89412A3409612E10C9A10201010 -S31540015FE0190006AFD43FBFD0D83FBFD8C025A1C006 -S31540015FF09007BFD89207BFD07FFFF55E9407BFC811 -S31540016000DA046004C207BFC88090400D1280000ABE -S315400160101B000070C205A1C09A13601F1900001031 -S315400160208208400D9813200480A0400C0280000491 -S31540016030010000007FFFAC7A90102011C025A1C05D -S31540016040111088007FFFF63713100100031066C94F -S31540016050821062CA80A2000112800006010000007F -S31540016060C205A1C080A06000028000051111BBFEDF -S315400160707FFFAC6B901020111111BBFE901223FFD4 -S315400160807FFFF628130C7040031527CA8210611E44 -S3154001609080A200011280000601000000C205A1C0D5 -S315400160A080A06000028000051310C7FF7FFFAC5C33 -S315400160B0901020111310C7FF921263FC7FFFF6194F -S315400160C0111E607E031D73FC8210633880A200019D -S315400160D01280000601000000C205A1C080A0600038 -S315400160E002800005130FE0007FFFAC4D9010201198 -S315400160F0130FE000921260017FFFF60A11002000A3 -S3154001610080A220001280000A1B000070C205A1C0B7 -S315400161109A13601F190000108208400D981320043D -S3154001612080A0400C02800005110FE0007FFFAC3CCF -S3154001613090102011110FE000C025A1C07FFFF5F995 -S3154001614092100008030FE00080A2000112800006B1 -S3154001615001000000C205A1C080A0600002800005C8 -S31540016160130FE0007FFFAC2E90102011130FE000BB -S31540016170921260017FFFF5EB1100200080A2200002 -S315400161801280000A1B000070C205A1C09A13601F4D -S31540016190190000108208400D9813200480A0400C7D -S315400161A0028000051B1000857FFFAC1D9010201159 -S315400161B01B100085921360E8C025A1C09007BFF06F -S315400161C07FFFF4DE9415215019100085C20320E8A3 -S315400161D0DA05215080A34001821521501280000723 -S315400161E0981320E8DA006004C203200480A340012A -S315400161F0028006BA010000007FFFAC099010201210 -S315400162001B100085921360D09007BFF07FFFF4CB3F -S315400162109415215019100085C20320D0DA0521506A -S3154001622080A340018215215012800007981320D087 -S31540016230DA006004C203200480A34001028006AC58 -S31540016240010000007FFFABF6901020129007BFF0CF -S315400162509215E0C87FFFF4B994152150C205E0C8F4 -S31540016260DA05215080A34001821521501280000792 -S315400162709815E0C8DA006004C203200480A34001F7 -S31540016280028006A0010000007FFFABE590102012BE -S315400162901B100085921360B89007BFF07FFFF4A7EB -S315400162A094152150C20720B0DA05215080A3400140 -S315400162B08215215012800007981720B0DA00600439 -S315400162C0C203200480A34001028006931B00007094 -S315400162D07FFFABD3901020129007BFF0921660F06B -S315400162E07FFFF49694152150C205A1C01B00007092 -S315400162F08208400D1900002080A0400C2110014465 -S3154001630002800004231000807FFFABC5901020124D -S3154001631094142150C02461C09007BFE87FFFF487E1 -S315400163209207BFF0DA042150C207BFE880A34001BB -S315400163301280000794142150DA02A004C207BFEC70 -S3154001634080A34001028006DE010000007FFFABB45E -S31540016350901020120310008519100085901060E8F6 -S31540016360921320D87FFFF47594152150C20720B0AF -S31540016370DA05215080A34001821521501280000781 -S31540016380981720B0DA006004C203200480A34001BC -S31540016390028006D01B0000707FFFABA19010201237 -S315400163A0C025A1C09007BFE89215E0C87FFFF463FE -S315400163B094152150C205E0C8DA05215080A3400159 -S315400163C082152150128000079815E0C8DA00600452 -S315400163D0C203200480A34001028006C701000000D9 -S315400163E07FFFAB8F901024991B100085921360B8E4 -S315400163F09007BFE87FFFF45194152150C20720B0A2 -S31540016400DA05215080A340018215215012800007F0 -S31540016410981720B0DA006004C203200480A340012B -S31540016420028006BA1B0000707FFFAB7D90102012E0 -S315400164309007BFE8921660F07FFFF4409415215013 -S31540016440C205A1C01B0000708208400D1900002042 -S3154001645080A0400C211001440280000423100080DA -S315400164607FFFAB6F9010201294142150C02461C05D -S315400164709016E0E07FFFF4319207BFF0C206E0E0FC -S31540016480DA04215080A34001941421501280000760 -S315400164908216E0E0DA02A004C200600480A3400153 -S315400164A0028006A4010000007FFFAB5D9010201220 -S315400164B09016E0E09207BFE87FFFF4209415215043 -S315400164C0C20720B0DA05215080A340018215215030 -S315400164D012800007981720B0DA006004C203200436 -S315400164E080A34001028006981B0000707FFFAB4CE1 -S315400164F090102012C025A1C09016E0E09215E0C888 -S315400165007FFFF40E94152150C205E0C8DA052150EB -S3154001651080A3400182152150128000079815E0C8DA -S31540016520DA006004C203200480A340010280068F82 -S31540016530010000007FFFAB3A901020120310008546 -S31540016540921060B89016E0E07FFFF3FC941521505D -S31540016550C20720B0DA05215080A34001821521509F -S3154001656012800007981720B0DA006004C2032004A5 -S3154001657080A34001028006821B0000707FFFAB288A -S31540016580901020129016E0E0921660F07FFFF3EB38 -S3154001659094152150C205A1C01B0000708208400D10 -S315400165A01900002080A0400C211001440280000403 -S315400165B0231000807FFFAB1A9010201294142150B3 -S315400165C0C02461C09015E0C87FFFF3DC9207BFF09D -S315400165D0C205E0C8DA04215080A340019414215039 -S315400165E0128000078215E0C8DA02A004C2006004E6 -S315400165F080A340010280061E010000007FFFAB0818 -S31540016600901020129015E0C89207BFE87FFFF3CBA8 -S3154001661094152150C205E0C8DA05215080A34001F6 -S3154001662082152150128000079815E0C8DA006004EF -S31540016630C203200480A3400102800612010000002B -S315400166407FFFAAF7901020129015E0C89216E0E05D -S315400166507FFFF3BA94152150C205E0C8DA052150EF -S3154001666080A3400182152150128000079815E0C889 -S31540016670DA006004C203200480A3400102800606BA -S31540016680010000007FFFAAE6901020129015E0C895 -S31540016690921000087FFFF3A994152150C205E0C866 -S315400166A0DA05215080A3400182152150128000074E -S315400166B09815E0C8DA006004C203200480A34001B3 -S315400166C0028005FA010000007FFFAAD59010201232 -S315400166D0191000859015E0C8921320B87FFFF397F3 -S315400166E09415215003000070A610601FDA05A1C061 -S315400166F0030000109A0B4013AA10601080A34015A6 -S3154001670025100085231001440280000421100080D9 -S315400167107FFFAAC390102012C02421C09014A0B8B4 -S315400167209207BFF07FFFF38594146150C20421C0E4 -S315400167308208401380A04015028000040100000039 -S315400167407FFFAAB790102012C02421C09014A0B890 -S315400167509207BFE87FFFF37994146150C20421C0C8 -S315400167608208401380A04015028000040100000009 -S315400167707FFFAAAB90102012C02421C09014A0B86C -S315400167809216E0E07FFFF36D94146150C20421C07C -S315400167908208401380A04015028000051310008531 -S315400167A07FFFAA9F9010201213100085C02421C09C -S315400167B0921260C89014A0B87FFFF36094146150A0 -S315400167C0C20421C08208401380A040150280000502 -S315400167D09014A0B87FFFAA92901020129014A0B8EE -S315400167E0C02421C0921000087FFFF35494146150D5 -S315400167F0C20421C08208401380A0401502800004D3 -S31540016800010000007FFFAA8690102012C02421C0FB -S315400168109014A0B8921660F07FFFF348941461502B -S31540016820C20421C08330600E8208600380A06002EA -S31540016830228000051103C0007FFFAA799010201223 -S315400168401103C0007FFFF57F3B100084A4176390BE -S31540016850AA146150C02421C0A604A008A210200099 -S31540016860B0102005A0044012920440139415215003 -S315400168707FFFF33290100010DA042010C205215038 -S31540016880A204601880A340011280000790102012D4 -S31540016890DA042014C205600480A340010280047416 -S315400168A0010000007FFFAA5E01000000B0863FFFA5 -S315400168B03CBFFFEEA004401211100085901220202B -S315400168C0920220087FFFF31D94152150981763907B -S315400168D0C2052150DA0320A080A34001128000079F -S315400168E082152150DA0320A4C200600480A340012E -S315400168F0028004DC1B0000707FFFAA499010201221 -S315400169001110008590122038C025A1C0920220089E -S315400169107FFFF30A9415215098176390C2052150C1 -S31540016920DA0320B880A34001128000078215215066 -S31540016930DA0320BCC200600480A340010280047FC8 -S315400169401B0000707FFFAA3690102012111000859F -S3154001695090122050C025A1C0920220087FFFF2F775 -S315400169609415215098176390C2052150DA0320D01F -S3154001697080A340011280000782152150DA0320D4FA -S31540016980C200600480A34001028004761B000070AF -S315400169907FFFAA23901020121110008590122068C3 -S315400169A0C025A1C0920220087FFFF2E49415215030 -S315400169B098176390C2052150DA0320E880A340016D -S315400169C01280000782152150DA0320ECC2006004D0 -S315400169D080A340010280046D1B0000707FFFAA1056 -S315400169E0901020121110008590122080C025A1C060 -S315400169F0920220087FFFF2D1941521509817639097 -S31540016A00C2052150DA03210080A34001128000070C -S31540016A1082152150DA032104C200600480A340019B -S31540016A20028004641B0000707FFFA9FD90102012B4 -S31540016A30C025A1C0111010007FFFF3B01310000054 -S31540016A400310300080A20001128000060100000000 -S31540016A50C205A1C080A0600002800005111FE000B0 -S31540016A607FFFA9EF90102012111FE00013100000C4 -S31540016A707FFFF2B794152150031FFC00DA05215020 -S31540016A8080A340011280000A82152150C200600491 -S31540016A9080A060001280000601000000C205A1C06E -S31540016AA080A0600002800005111FE0007FFFA9DC85 -S31540016AB09010201B111FE000133000007FFFF2A44D -S31540016AC094152150033FFC00DA05215080A3400173 -S31540016AD01280000A82152150C200600480A0600025 -S31540016AE01280000601000000C205A1C080A060001E -S31540016AF002800005111000007FFFA9C99010201CDB -S31540016B0011100000921020107FFFF2919415215030 -S31540016B10C205A1C01B0000708208400D190000206B -S31540016B2080A0400C21100144028000042310008003 -S31540016B307FFFA9BB9010201D94142150C02461C031 -S31540016B40110020007FFFF282130FC000DA042150AA -S31540016B50030E000080A340011280000A94142150C4 -S31540016B60C202A00480A0600012800006010000005D -S31540016B70C20461C080A0600002800005111FDFFFD2 -S31540016B807FFFA9A79010201E111FDFFF901223FF40 -S31540016B90131000007FFFF26E941521500311FFFF81 -S31540016BA0821063FFDA05215080A34001128000075D -S31540016BB082152150DA0060040338000080A34001A9 -S31540016BC002800405010000007FFFA9959010201F57 -S31540016BD0111FD000130FF0007FFFF25D9415215075 -S31540016BE00311FC80DA05215080A340011280000A7E -S31540016BF082152150C200600480A060001280000608 -S31540016C0001000000C205A1C080A06000028000050D -S31540016C10111FDFFF7FFFA98290102021111FDFFF87 -S31540016C20901223FF921000087FFFF24994152150DC -S31540016C300313FBFF821063FFDA05215080A3400155 -S31540016C401280000882152150DA00600403300000EA -S31540016C508210602080A34001028003E4010000000D -S31540016C607FFFA96F901020207FFFF4761103C000AB -S31540016C70C025A1C09007BFE07FFFF2449215215085 -S31540016C80C207BFE0DA05215080A340011280000708 -S31540016C9082152150DA006004C207BFE480A3400197 -S31540016CA0028003D7010000007FFFA95D90102013E9 -S31540016CB01B100085901360E87FFFF2349215215036 -S31540016CC003100085DA0060E8C205215080A0400D1E -S31540016CD0191000858215215012800007901320E873 -S31540016CE0DA006004C202200480A34001028003C985 -S31540016CF0010000007FFFA94A901020131B10008558 -S31540016D00901360D07FFFF221921521501910008512 -S31540016D10C20320D0DA05215080A3400182152150BB -S31540016D2012800007981320D0DA006004C2032004C1 -S31540016D3080A34001028003BC010000007FFFA93807 -S31540016D40901020131B100085901360D87FFFF20F1F -S31540016D5092152150C20720B0DA05215080A3400187 -S31540016D608215215012800007981720B0DA0060047E -S31540016D70C203200480A34001028003B01B000070BF -S31540016D807FFFA9279010201303100085901060B84B -S31540016D90C025A1C07FFFF1FD92152150C20720B049 -S31540016DA0DA05215080A34001821521501280000747 -S31540016DB0981720B0DA006004C203200480A3400182 -S31540016DC00280040F1B0000707FFFA915901020134D -S31540016DD0C025A1C09015E0C87FFFF1EC9215215066 -S31540016DE0C2052150DA05E0C880A0400D8215215028 -S31540016DF0128000079015E0C8DA006004C202200440 -S31540016E0080A3400102800407010000007FFFA9041E -S31540016E1090102013170C00089A10200019100C002E -S31540016E2015300F789612E001D83FBFF0D43FBFC06E -S31540016E309007BFF07FFFF1D5921521500310040052 -S31540016E40DA05215080A340011280000A82152150A3 -S31540016E50C200600480A060001280000601000000AC -S31540016E60C205A1C080A06000028000059007BFC096 -S31540016E707FFFA8EB901020139007BFC07FFFF1C39F -S31540016E8092152150C2052150DA0720B080A0400D4D -S31540016E908215215012800007981720B0DA0060044D -S31540016EA0C203200480A34001028003E31B0000705B -S31540016EB07FFFA8DB90102013901660F07FFFF1B39F -S31540016EC092152150C205A1C08330600E820860032D -S31540016ED080A0600202800004211000807FFFA8D0BC -S31540016EE090102013C02421C07FFFF2981111F200A7 -S31540016EF00310E80080A20001128000060100000094 -S31540016F00C20421C080A0600002800004010000008C -S31540016F107FFFA8C3901020137FFFF3CA1110000012 -S31540016F201101F5897FFFF289901221E20308E96494 -S31540016F3080A200011280000601000000C205A1C026 -S31540016F4080A0600002800004010000007FFFA8B419 -S31540016F50901020237FFFF27D1112A20803114100F8 -S31540016F6080A200011280000601000000C205A1C0F6 -S31540016F7080A0600002800004010000007FFFA8A8F5 -S31540016F80901020237FFFF3AF110010009007BFF050 -S31540016F90921660F07FFFF1649415215003100C00A6 -S31540016FA0DA05215080A340011280000A8215215042 -S31540016FB0C200600480A0600012800006010000004B -S31540016FC0C205A1C080A0600002800005901660F055 -S31540016FD07FFFA89390102014901660F09207BFC0CF -S31540016FE07FFFF1569415215003200000DA05215008 -S31540016FF080A340011280000A82152150C20060041C -S3154001700080A060001280000601000000C205A1C0F8 -S3154001701080A0600002800004010000007FFFA8807C -S31540017020901020147FFFF19190102001030FE00092 -S3154001703080A200011280000601000000C205A1C025 -S3154001704080A0600002800004010000007FFFA87458 -S31540017050901020147FFFF17D90102001030FFC005A -S3154001706080A200011280000880A260001280000602 -S3154001707001000000C205A1C080A06000028000049A -S31540017080010000007FFFA866901020147FFFF36D7A -S315400170901110100019100085D41B20D07FFFF1F983 -S315400170A0D01E60F003100085D03D2150DA0060D833 -S315400170B0C205215080A0400D19100085821521502E -S315400170C012800007901320D8DA006004C20220041F -S315400170D080A3400102800361010000007FFFA850A8 -S315400170E0901020227FFFF3571110000017040080F3 -S315400170F0150F28009612E0F09A102000190FFC0097 -S31540017100D43FBFC0D83FBFF09007BFF09207BFC082 -S315400171107FFFF10594152150030FFC00DA0521503C -S3154001712080A340011280000682152150C2006004EE -S3154001713080A0600002800004010000007FFFA838A3 -S31540017140901020157FFFF33F1120000017000040EB -S31540017150150014009612E0019A102000190FFC0048 -S31540017160D43FBFC0D83FBFF09007BFF09207BFC022 -S315400171707FFFF0ED94152150030FFC00DA052150F5 -S3154001718080A340011280000682152150C20060048E -S3154001719080A0600102800004010000007FFFA8205A -S315400171A0901020157FFFF327113000001700004093 -S315400171B0152014009612E0019A102000192FFC00A8 -S315400171C0D43FBFC0D83FBFF09007BFF09207BFC0C2 -S315400171D07FFFF0D594152150032FFC00DA0521508D -S315400171E080A340011280000682152150C20060042E -S315400171F080A0600102800004010000007FFFA80812 -S31540017200901020157FFFF30F11100000190FFC009D -S315400172109A102000D83FBFF09007BFF09216E0E0E9 -S315400172207FFFF0C194152150C206E0E0DA052150F6 -S3154001723080A3400182152150128000079816E0E094 -S31540017240DA006004C203200480A3400102800004E6 -S31540017250010000007FFFA7F2901020157FFFF2F991 -S315400172601120000017000040150014009612E0019D -S31540017270190FFC009A102000D43FBFC0D83FBFF081 -S315400172809007BFF09216E0E07FFFF0A794152150DA -S31540017290C206E0E0DA05215080A340018215215063 -S315400172A0128000079816E0E0DA006004C203200469 -S315400172B080A3400102800004010000007FFFA7D89F -S315400172C0901020157FFFF2DF1130000017000040BB -S315400172D0152014009612E0019A102000192FFC0087 -S315400172E0D43FBFC0D83FBFF09007BFF09216E0E051 -S315400172F07FFFF08D94152150C2052150DA06E0E05A -S3154001730080A0400D82152150128000079016E0E0C2 -S31540017310DA006004C202200480A340010280000416 -S31540017320010000007FFFA7BE901020157FFFF2C528 -S315400173301110000015100000961020019A1020012E -S31540017340190FFC00D43FBFC0D83FBFF09007BFF034 -S315400173509207BFC07FFFF0799415215003100000BA -S31540017360DA05215080A34001128000068215215082 -S31540017370C200600480A06002028000040100000097 -S315400173807FFFA7A7901020157FFFF2AE11200000C6 -S315400173909007BFF09207BFC07FFFF0689415215058 -S315400173A003100000DA05215080A340011280000637 -S315400173B082152150C200600480A06003028000044F -S315400173C0010000007FFFA796901020157FFFF29DD8 -S315400173D0113000009A102001192FFC00D83FBFF050 -S315400173E09007BFF09207BFC07FFFF054941521501C -S315400173F003300000DA05215080A3400112800006C7 -S3154001740082152150C200600480A0600302800004FE -S31540017410010000007FFFA782901020157FFFF289AF -S3154001742011100000150FFC04172F26159412A012F7 -S315400174309612E231190FFEAE1B1CD2E89A13601167 -S3154001744098132154D43FBFC0D83FBFF09007BFF037 -S315400174509207BFC07FFFF04794152150030FFEA747 -S3154001746082106296DA05215080A3400112800008FD -S3154001747082152150DA006004032C1B348210602FE0 -S3154001748080A3400102800004010000007FFFA76441 -S31540017490901020157FFFF26B112000009007BFF07E -S315400174A09207BFC07FFFF03394152150030FFEA70B -S315400174B082106296DA05215080A3400112800008AD -S315400174C082152150DA006004032C1B34821060308F -S315400174D080A3400102800004010000007FFFA75005 -S315400174E0901020157FFFF25711300000192FFC0430 -S315400174F01B2F26159A13623198132012D83FBFC00D -S315400175009007BFF09207BFC07FFFF01A9415215034 -S31540017510032FFEA782106296DA05215080A340010F -S315400175201280000882152150DA006004032C1B34B6 -S315400175308210603080A340010280000401000000F7 -S315400175407FFFA737901020157FFFF23E11100000F4 -S3154001755015101000961020009A10200019103800BE -S31540017560D43FBFC0D83FBFF09007BFF09207BFC01E -S315400175707FFFF0009415215003102400DA052150B5 -S3154001758080A340011280000682152150C20060048A -S3154001759080A0600002800004010000007FFFA72058 -S315400175A0901020157FFFF227112000009007BFF0B1 -S315400175B09207BFC07FFFEFEF9415215003102400BF -S315400175C0DA05215080A34001128000068215215020 -S315400175D0C200600480A06000028000040100000037 -S315400175E07FFFA70F901020157FFFF2161130000084 -S315400175F09007BFF09207BFC07FFFEFDE9415215081 -S3154001760003102400DA05215080A3400112800006B0 -S3154001761082152150C200600480A0600002800004EF -S31540017620010000007FFFA6FE901020157FFFF205A6 -S3154001763011100000210FE000110020007FFFF0B97A -S315400176409214200180A22000128001230100000033 -S315400176507FFFF1FC11200000110020007FFFF0B1F7 -S315400176609214200180A2200012800118010000001E -S315400176707FFFF1F411300000921420017FFFF0A941 -S315400176801100200080A220001280010D010000009F -S315400176907FFFF1EC111000009A102000190FFC0039 -S315400176A0D83FBFF09007BFF07FFFEFB8921521504A -S315400176B0C207BFF0DA05215080A3400112800007BE -S315400176C082152150DA006004C207BFF480A340014D -S315400176D0028002A7010000007FFFA6D1901020156D -S315400176E07FFFF1D8112000009007BFF07FFFEFA781 -S315400176F092152150C207BFF0DA05215080A34001FF -S315400177001280000782152150DA006004C207BFF4D7 -S3154001771080A340010280029B010000007FFFA6C0BA -S31540017720901020157FFFF1C7113000009007BFF080 -S315400177307FFFEF9692152150C207BFF0DA0521501F -S3154001774080A340011280000782152150DA006004AF -S31540017750C207BFF480A340010280028F01000000EE -S315400177607FFFA6AF901020157FFFF1B611100000E4 -S31540017770030FDFFF901063FF7FFFF074A010000836 -S3154001778080A2001002800004010000007FFFA6A431 -S31540017790901020157FFFF1AB112000007FFFF06BA9 -S315400177A090100010030FE00080A200010280000447 -S315400177B0010000007FFFA69A901020157FFFF1A1DE -S315400177C0113000007FFFF0619010001080A2001080 -S315400177D002800004010000007FFFA6919010201551 -S315400177E07FFFF198901020007FFFF06090152150A7 -S315400177F0032FFE00DA05215080A3400112800006C6 -S3154001780082152150C200600480A0600002800005FC -S31540017810211001447FFFA6829010201621100144B9 -S315400178207FFFF05C90142158DA042158032FF000B1 -S3154001783080A3400102800004A21421587FFFA6784C -S31540017840901020167FFFF05D90100011DA04215848 -S31540017850030FE00080A34001028000040100000004 -S315400178607FFFA66F901020167FFFF0649015215080 -S31540017870030FFBF7821063F0DA05215080A3400124 -S315400178801280000882152150DA0060040303FF12BA -S315400178908210604A80A3400102800005921660F082 -S315400178A07FFFA65F90102016921660F09007BFF0FA -S315400178B07FFFEF3094152150C205A1C08330600E81 -S315400178C08208600780A06002028000051910004D01 -S315400178D07FFFA653901020171910004D17100080F6 -S315400178E0DA02E1C88213217880A0400DE0032178B5 -S315400178F002800004A212E1C87FFFA6499010201819 -S31540017900C204600480A0401002800004010000000F -S315400179107FFFA64390102018C204600880A0600033 -S315400179201280007701000000C204600C80A0600054 -S315400179301280006C010000007FFFEEE601000000AE -S3154001794080A220010280019801000000190C402903 -S315400179501B23CD1B9A13609B98132006941020007D -S3154001796096102000D83FBFF0D43FBFC07FFFEF2F16 -S315400179709007BFF003100083A21062101B10008114 -S3154001798003100144A0136210A4106150B0102000EE -S31540017990832E2002DA044001DA27BFC09007BFC018 -S315400179A07FFFEF25921521509B2E2003D804000D11 -S315400179B0C2052150B00620019603401080A3000164 -S315400179C01280000790102019DA02E004C204A004D4 -S315400179D080A340010280000580A620FF7FFFA610FC -S315400179E00100000080A620FF04BFFFEB832E20028A -S315400179F003100083A41062101B1000800310014481 -S31540017A00A2136210A6106150B0102000A12E2002D0 -S31540017A10C2048010C227BFC0921521507FFFEEDB02 -S31540017A209007BFC0DA044010C2052150B0062002BB -S31540017A309804001180A34001128000079010201A7B -S31540017A40DA032004C204E00480A340010280000559 -S31540017A5080A620FF7FFFA5F20100000080A620FF3F -S31540017A6024BFFFECA12E200230800211C205A1C025 -S31540017A7080A0600022BFFB8FB0863FFF30BFFB8AEC -S31540017A80C205A1C080A0600002BFF145010000000F -S31540017A9030BFF141C205A1C080A0600002BFF136EE -S31540017AA00100000030BFF132C205A1C080A06000D4 -S31540017AB002BFF1270100000030BFF1237FFFA5D8A7 -S31540017AC09010201530BFFEF37FFFA5D590102015ED -S31540017AD030BFFEE87FFFA5D29010201530BFFEDDF6 -S31540017AE07FFFA5CF9010201830BFFF947FFFA5CC14 -S31540017AF09010201010BFF678111000847FFFA5C8A2 -S31540017B009010201830BFFF89C207BFCC80A060000B -S31540017B1012BFF8F501000000C20421C082084015D9 -S31540017B209A16A00880A0400D12BFF8EF0100000090 -S31540017B3010BFF8F015108683C205A1C09A13601FC5 -S31540017B40190000108208400D9813200880A0400CAF -S31540017B5012BFFB7D1110008510BFFB7F9012205094 -S31540017B60C205A1C09A13601F190000108208400D7A -S31540017B709813200880A0400C12BFFB861110008587 -S31540017B8010BFFB8890122068C205A1C09A13601FDE -S31540017B90190000108208400D9813200480A0400C63 -S31540017BA012BFFB8F1110008510BFFB9190122080F0 -S31540017BB0C205A1C09A13601F190000108208400D2A -S31540017BC09813200880A0400C12BFFB9801000000CA -S31540017BD030BFFB98C205A1C080A0600002BFFBFE7A -S31540017BE0111FD00030BFFBF9C205A1C080A06000C3 -S31540017BF002BFFC1E0100000030BFFC1AC205A1C035 -S31540017C0080A0600002BFFC2C1B10008530BFFC2702 -S31540017C10C205A1C080A0600002BFFC3A1B100085CE -S31540017C2030BFFC35C205A1C080A0600002BFFC4741 -S31540017C301B10008530BFFC42C205A1C09A13601FCC -S31540017C40190000108208400D9813201080A0400CA6 -S31540017C5012BFFC4C0310008510BFFC4E901060B85B -S31540017C60C205A1C09A13601F190000108208400D79 -S31540017C709813200480A0400C12BFFB2011100085F0 -S31540017C8010BFFB2290122038C205A1C080A060001F -S31540017C9022BFF8D0150FFFFF30BFF8CBC205A1C0F8 -S31540017CA080A0600002BFF8100310008530BFF80BBA -S31540017CB0C205A1C09A13601F190000108208400D29 -S31540017CC09813201080A0400C12BFF8169015E0C8FA -S31540017CD010BFF818921660F0C205A1C080A06000DE -S31540017CE002BFF9491B10008530BFF944C205A1C046 -S31540017CF080A0600002BFF9579007BFF030BFF9522C -S31540017D00C205A1C080A0600002BFF9631B100085B7 -S31540017D1030BFF95EC205A1C09A13601F1900001059 -S31540017D208208400D9813201080A0400C12BFF969BB -S31540017D309007BFF010BFF96B921660F0C20461C0A4 -S31540017D4080A0600002BFF74B1B10008530BFF7468D -S31540017D50C205A1C080A0600002BFF75A9016E0E0BC -S31540017D6030BFF755C205A1C09A13601F1900001014 -S31540017D708208400D9813201080A0400C12BFF75F77 -S31540017D800100000030BFF75FC205A1C080A06000BE -S31540017D9002BFF76F1B10008530BFF76AC205A1C04D -S31540017DA09A13601F190000108208400D9813201085 -S31540017DB080A0400C12BFF7750100000030BFF77577 -S31540017DC0C20461C080A0600002BFF7949015E0C86C -S31540017DD030BFF78FC205A1C080A0600002BFF7A0E7 -S31540017DE09015E0C830BFF79BC205A1C080A06000D6 -S31540017DF002BFF7AC9015E0C830BFF7A7C205A1C0D6 -S31540017E009A13601F190000108208400D9813201024 -S31540017E1080A0400C12BFFBED0100000030BFFBED1E -S31540017E20C205A1C080A0600002BFFBFC170C000880 -S31540017E3030BFFBF7C205A1C09A13601F190000109D -S31540017E408208400D9813201080A0400C12BFFC19E7 -S31540017E50901660F030BFFC1AC205A1C080A0600038 -S31540017E6002BFFCA10100000030BFFC9DC20461C0FD -S31540017E7080A0600002BFF9E59015E0C830BFF9E087 -S31540017E80C205A1C080A0600002BFF9F19015E0C80B -S31540017E9030BFF9ECC205A1C080A0600002BFF9FD68 -S31540017EA09015E0C830BFF9F8C205A1C080A06000B6 -S31540017EB002BFFA091910008530BFFA04C20461C035 -S31540017EC080A0600002BFF9250310008530BFF9206C -S31540017ED0C205A1C09A13601F190000108208400D07 -S31540017EE09813201080A0400C12BFF92C010000000D -S31540017EF030BFF92CC205A1C080A0600002BFF93C89 -S31540017F001B10008530BFF937C205A1C09A13601F07 -S31540017F10190000108208400D9813201080A0400CD3 -S31540017F2012BFF9429007BFE810BFF944921660F0BC -S31540017F30C20461C080A0600002BFF95F9016E0E014 -S31540017F4030BFF95AC205A1C09A13601F190000102B -S31540017F508208400D9813201080A0400C12BFF9648E -S31540017F600100000030BFF964C205A1C080A06000D5 -S31540017F7002BFF9740310008530BFF96FC205A1C075 -S31540017F809A13601F190000108208400D98132010A3 -S31540017F9080A0400C12BFF97A9016E0E010BFF97C40 -S31540017FA0921660F07FFFA49E9010201910BFFE69C3 -S31540017FB0190C4029D80061C01B0000709A13601F3C -S31540017FC003000010980B000D8210600880A3000189 -S31540017FD012BFF5501110008410BFF5529012236064 -S31540017FE0C205A1C09A13601F190000108208400DF6 -S31540017FF09813200480A0400C12BFF558111000843C -S3154001800010BFF55A90122378C205A1C09A13601F7A -S31540018010190000108208400D9813200480A0400CDE -S3154001802012BFF5600100000030BFF560C205A1C076 -S3154001803080A0600002BFF4A90310008530BFF4A4FC -S31540018040C205A1C080A0600002BFF4939015E0C8AC -S3154001805030BFF48EC205A1C080A0600002BFF47D8E -S315400180609015E0C830BFF478C20461C080A06000BA -S3154001807002BFF4679015E0C830BFF462C205A1C0E3 -S315400180809A13601F190000108208400D98132002B0 -S3154001809080A0400C12BFF5B61B10008510BFF5B885 -S315400180A0921360D0C205A1C080A0600002BFF5C591 -S315400180B09007BFF030BFF5C0C205A1C080A06000E7 -S315400180C002BFF5D10310008530BFF5CCC205A1C072 -S315400180D09A13601F190000108208400D9813201052 -S315400180E080A0400C12BFF5D79007BFF010BFF5D95D -S315400180F0921660F0C20461C080A0600022BFF5F311 -S315400181001910008530BFF5EEC205A1C09A13601F54 -S31540018110190000108208400D9813201080A0400CD1 -S3154001812012BFF5F91B10008510BFF5FB0310008542 -S31540018130C205A1C080A0600002BFF60B9007BFE850 -S3154001814030BFF606C205A1C080A0600002BFF61787 -S315400181501B10008530BFF612C20421C080A060000A -S3154001816022BFF03E113C02AF30BFF039C205A1C07B -S3154001817080A0600002BFFD5B0100000030BFFD57DB -S31540018180C205A1C080A0600002BFFD6701000000DA -S3154001819030BFFD63C205A1C080A0600002BFFD7370 -S315400181A00100000030BFFD6FC205A1C080A0600084 -S315400181B002BFF2D70310008530BFF2D2C205A1C07B -S315400181C080A0600002BFF2C19007BFF030BFF2BC91 -S315400181D0C205A1C080A0600002BFF2AA3710008587 -S315400181E030BFF2A5C205A1C080A0600002BFF02841 -S315400181F01111FC0030BFF023C205A1C09A13601FC4 -S31540018200190000108208400D9813201080A0400CE0 -S3154001821012BFF3DD9016E0E010BFF3DF921660F077 -S31540018220C205A1C080A0600002BFF39E1B1000855D -S3154001823030BFF399C205A1C080A0600002BFF3869A -S315400182401B10008530BFF381C205A1C080A060002C -S3154001825002BFF36E1B10008530BFF369C20461C0D3 -S3154001826080A0600002BFF3589016E0E030BFF353A0 -S31540018270C205A1C080A0600002BFF30E191000859F -S3154001828030BFF309C205A1C080A0600002BFF2F869 -S315400182909007BFE830BFF2F3C20461C080A060001E -S315400182A002BFF2E29007BFE830BFF2DD81C7E008C6 -S315400182B081E80000D27A000081C3E0080100000095 -S315400182C081C3E008900A2020933260049212600133 -S315400182D08213C0007FFFFFF89E104000010000009E -S315400182E081D8200081C3E008010000009DE3BF98CA -S315400182F07FFFFFFC0100000082102400C0A0430064 -S3154001830081C7E00881E80000833220189A100008EE -S315400183108088600F02800004901020008333601033 -S315400183209008600381C3E008010000009DE3BF9807 -S31540018330031000C01B1000C1B0106000A213600002 -S31540018340031000C21B1000C2A4106000A6136100F6 -S31540018350031000201B100020A8106160AA136000C2 -S315400183607FFFEBAD9010200C808A2008028001FE31 -S31540018370010000007FFFA3A59010200ED0800320AE -S315400183807FFFFFE2010000000310014380A22002AB -S31540018390028000C6D02060D480A22002148000E46E -S315400183A080A2200380A22001028000D182102019E0 -S315400183B0331000A02F1000A0391000A0371000A0E4 -S315400183C0351000A07FFFFFC7210100007FFFFFC8D6 -S315400183D0BA04A00C921000117FFFFFBC9010001848 -S315400183E0921000117FFFFFB99006200490100011F2 -S315400183F07FFFFFB19210200ADA06601411080000CF -S31540018400913A000DC205E010900A0001912A20021E -S3154001841013008000900200117FFFFFA79212600AAD -S31540018420DA06601411100000913A000DC205E01001 -S31540018430900A0001912A2002900200117FFFFF9EBF -S315400184409214208EDA066014111C0000913A000D38 -S31540018450C205E010900A0001912A20021301C000D2 -S31540018460900200117FFFFF949212608E9334A00414 -S315400184709004600C7FFFFF90921260019214201EBF -S315400184807FFFFF8D9004A0089010001D7FFFFF8A9B -S31540018490921020009334E004921260017FFFFF8620 -S315400184A09004A004111000C2901221087FFFFF82A0 -S315400184B092102000031000E0A010600093342004C5 -S315400184C0111000C2901221047FFFFF7B9212601AA5 -S315400184D003048D1582106278C2242004111000E035 -S315400184E015100120C0222000A2102003AC12A000CA -S315400184F0A004E00C90047FFD40000A759210200311 -S315400185001B100143C20360D48200600C932A000110 -S315400185109202401693326004901000107FFFFF666E -S315400185209212601EA204600180A4600A04BFFFF299 -S31540018530A0042004C206E008D807200C8208600186 -S315400185408328400CD605E010111000E0D406A000A7 -S31540018550DA06601498122000960AE003972AC00DA5 -S31540018560920AA002111000A0DA022004940AA00186 -S31540018570952A800D932A400D1B1000209612C001AA -S31540018580E8236158030100001B0076418210601EFA -S315400185909A1361C09212C00999332004C22520045E -S315400185A0DA2520089612C00A9E13200E91356004E2 -S315400185B01B1000C2031000C2821061049012201EDB -S315400185C0953620049813201E9A136108D625202C2F -S315400185D0D8252010D025201CD2252020DE25202874 -S315400185E0D6252014940ABFF0FA250000DA25201872 -S315400185F0C2252024C225200CA2102100D4A4432048 -S31540018600C2800320D88443209A102001A010220062 -S31540018610DAA40320D884032082102000C2A40320B8 -S31540018620DAA0032081D820007FFFBE790100000037 -S31540018630C2800320E2844320E0840320DA05E0106F -S31540018640D6066014C206E0089A0B60039B2B400BCA -S3154001865082086001D407200CD806A000111000A0A2 -S315400186608328400A980B2001D60220049A13400120 -S31540018670992B000B9A13400CC203400080A0600066 -S3154001868012800008821360041B048D15D800400037 -S315400186909A13627880A3000D02800038C205E0106B -S315400186A010800000010000008210201A331000A043 -S315400186B0C22660149810203F2F1000A0391000A048 -S315400186C0351000A09A1020148210200E151000A01B -S315400186D0371000A0DA27200CC222A004D826A00019 -S315400186E0D825E01010BFFF38D826E0089A10207F21 -S315400186F0331000A02F1000A0C2266014DA25E01026 -S315400187009810203F391000A0351000A08210201388 -S315400187109A10200D111000A0371000A0C227200C7E -S31540018720DA22200410BFFFF0D826A00012BFFF2294 -S31540018730331000A08210201CC22660149A10201506 -S315400187408210207F391000A0371000A0DA27200CB4 -S31540018750C226E0089810200F2F1000A0351000A067 -S315400187601B1000A08210203FD8236004C226A0001F -S3154001877010BFFF15D825E010DA06E008D8066014C8 -S31540018780820860039A0B6002D607200C8328400CAE -S315400187909B2B400B8210400DD80040001B1000005F -S315400187A0C203400080A3000102800004D406E00811 -S315400187B01080000001000000C205E010980AA001E7 -S315400187C0D207200CD6066014820860038328400B2A -S315400187D0992B0009940AA0039810400CDA06A000D0 -S315400187E0111000A0952A80099A0B6001D602200437 -S315400187F08210400AC20040009B2B400B9813000D8B -S315400188000321D9509813200482106321C22300000A -S31540018810DA03000080A3400102800004C206E0089A -S315400188201080000001000000D407200CDA05E0109A -S3154001883082086001D60660148328400A9A0B6003B9 -S31540018840D806A0009B2B400B151000A0D602A00411 -S31540018850980B20019A134001992B000B9813400C59 -S315400188608210000C05048D158410A278072AF37B2B -S315400188708610E301C4384000C438400003048D1516 -S31540018880DA0300008210627880A34001028000046E -S315400188908213200410800000010000001B2AF37B94 -S315400188A0D80040009A13630180A3000D12BFFFFA5E -S315400188B0C205E010D6066014D806E00882086003B7 -S315400188C0D407200C8328400B980B2001DA06A00020 -S315400188D0111000A0992B000A9A0B6003D6022004BE -S315400188E08210400C9B2B400B15100143A010400DEC -S315400188F0F002A0D4A2102003E0240000C0A0022070 -S31540018900921020034000097290047FFD8206200CDC -S3154001891098102001912A0001992B00011B1001207A -S315400189209610000182136000DA02000180A3401014 -S31540018930A204600112800088A004000C80A4600A91 -S3154001894024BFFFEFE0240000C0A002200310012055 -S31540018950A810000BAA106000A0102000A21020034E -S3154001896090047FFD4000095A92102003832C600237 -S31540018970912A0014DA04C00190020015820B60604E -S315400189809132200480A000019012201EA0400010C8 -S315400189909A0B7F9F900A3F9F80A3400812800070E8 -S315400189A0A204600180A4600A24BFFFEF90047FFD0A -S315400189B080A4200012800004C205E010108000004F -S315400189C001000000D6066014D806E008820860035C -S315400189D0D407200CDA06A000111000A08328400B12 -S315400189E0980B2001992B000AD60220049A0B6002AB -S315400189F08210400C9B2B400BAA10400D9FC5400096 -S31540018A000100000082102400C0A04300C0A0022043 -S31540018A10A0102000A21020039B2C6002C204C00DAE -S31540018A208208606080A00001A0400010A20460019D -S31540018A3080A4600A24BFFFFA9B2C600280A4200810 -S31540018A4022800004D004E0041080000001000000F0 -S31540018A50808A204002800007010000007FFFFE1946 -S31540018A600100000080A220001280000401000000E5 -S31540018A7010800000010000007FFFFE12D004A00814 -S31540018A8080A2200012800004010000001080000036 -S31540018A90010000007FFFFE0BD004E00880A2200009 -S31540018AA01280000401000000108000000100000057 -S31540018AB083480000842860808188A000010000006E -S31540018AC00100000001000000D806E008D407200C90 -S31540018AD0DA05E010980B2001D6066014992B000A9E -S31540018AE09A0B6003C206A0009B2B400B151000A0F9 -S31540018AF0D602A004820860018328400B9A13400CD9 -S31540018B009A1340019A136004C20340009210200454 -S31540018B1091D02002010000007FFFBD3D0100000011 -S31540018B20981020009A102200D8A3432082102001D9 -S31540018B30C2A34320D8A3432003100000DA80438018 -S31540018B40DAA043807FFFBD979010200081D8200096 -S31540018B5030800005108000000100000010800000F8 -S31540018B600100000081C7E00891E820009DE3BF981D -S31540018B70400007D201000000808A21000280003FA8 -S31540018B80010000007FFFA1B501000000912A2004E9 -S31540018B907FFFA19E9002200503100140821060488C -S31540018BA0DA00600480A360002280001503100140B2 -S31540018BB0B0100001C20600009B38601F818360002F -S31540018BC0DA06200401000000010000008278400D11 -S31540018BD0DA062008B006200C80A0400D0280000471 -S31540018BE0901020017FFFA18E01000000C2062004E3 -S31540018BF080A0600012BFFFF00310014082106000A8 -S31540018C00DA00600480A360000280001501000000C4 -S31540018C10B0100001C206000081800000DA0620047F -S31540018C2001000000010000009A70400D8210000D05 -S31540018C30DA062008B006200C80A0400D0280000410 -S31540018C40901020027FFFA17601000000C206200499 -S31540018C5080A0600012BFFFF001000000400008251F -S31540018C600100000080A220001280000401000000E3 -S31540018C707FFFA16B9010200381C7E00891E8200097 -S31540018C809DE3BF987FFFA17501000000912A200452 -S31540018C907FFFA15E900220044000078A0100000088 -S31540018CA080A2212302800004010000007FFFA15C15 -S31540018CB0901020014000078101000000808A2100B8 -S31540018CC00280002B0310014082106184DA006008A3 -S31540018CD080A360090280001101000000B01000016C -S31540018CE0C2060000DA062004D80620088258400D44 -S31540018CF0B006200C80A0400C028000049010200297 -S31540018D007FFFA14701000000C206200880A060093C -S31540018D1012BFFFF401000000400007770100000088 -S31540018D2080A220000280000F01000000400007637E -S31540018D3001000000808A22000280000D010000002F -S31540018D404000079F0100000080A220001280000819 -S31540018D50010000007FFFA132901020043080000402 -S31540018D607FFFA12F9010200330BFFFF181C7E0089C -S31540018D7091E82000000000009DE3BFA09410200070 -S31540018D8011100063901221AC13100063921261B06E -S31540018D90171000639612E1B819100063981321BCAD -S31540018DA093C2000081C240001080019181C2C0007F -S31540018DB081C300001080018E9402A0019402A0019B -S31540018DC080A2A0031280018A0100000087440000AE -S31540018DD08D30E00E8C89A00780A1A000028000C7DB -S31540018DE001000000AF30E00BAE0DE00780A5E000CA -S31540018DF0128000C20100000080A1A002128000354D -S31540018E000100000025100000E41C80002510000030 -S31540018E1029100000A8152104A6100012AA1000125C -S31540018E20AC100014A1802046A4100000AA10000036 -S31540018E3001000000A180204EA81021000100000081 -S31540018E40A18000000100000001000000E83CA030C4 -S31540018E5082A480131280016682A5001612800164E5 -S31540018E6001000000010000000100000087440000ED -S31540018E708D30E00B8C89A0078CA1A0051280015C86 -S31540018E80A180000001000000010000000100000077 -S31540018E90E81CA03082A500161280015582A5401219 -S31540018EA0A4100000128001520100000001000000E0 -S31540018EB0874400008D30E00B8C89A0078CA1A0036C -S31540018EC01280014B010000001080008C010000005F -S31540018ED080A1A0011280002325100000E41C80001F -S31540018EE02510000029100000A8152104A610001223 -S31540018EF0AA100012AC100014A1802046A410000054 -S31540018F00AA10000001000000A180204EA8102100F7 -S31540018F1001000000A18000000100000001000000E6 -S31540018F2001000000E83C800082A4801312800130D9 -S31540018F3082A500161280012E0100000001000000EA -S31540018F40874400008D30E00B8C89A0078CA1A002DC -S31540018F501280012701000000108000680100000016 -S31540018F6080A1A00312800065A6100000A210200E69 -S31540018F70A1844000A6100000A1800000A814E000D2 -S31540018F80AB44000001000000AC14E0000100000009 -S31540018F90AF44000080A5200012800115AA8D6E0005 -S31540018FA080A540001280011280A5A0001280011008 -S31540018FB0AF35E00BAE0DE00780A5E0011280010C54 -S31540018FC001000000A0100000A1844000A61000008E -S31540018FD0A1800000E8180000AC100000AE100000AF -S31540018FE0EC04C000EE04E00480A5001612800100E6 -S31540018FF080A54017128000FE01000000A544000034 -S31540019000A534A00BA40CA00780A4A001128000F8EF -S3154001901001000000A0100000A1844000A61000003D -S31540019020A1800000A210200AA1844000A4100000E3 -S31540019030A1800000E8180000AC100000AE1000004E -S31540019040EC04C012EE04E00480A50016128000E88C -S3154001905080A54017128000E601000000A5440000EB -S31540019060A534A00BA40CA00780A4A002068000E0B2 -S315400190700100000021100140A0142200EC1C000058 -S31540019080A0042008E81C0000A1844000A6100000AE -S31540019090A1800000A210200EA1844000A41000105F -S315400190A0AC100000AE100000A180000001000000DD -S315400190B001000000EC3C8013AC100000AE10000033 -S315400190C0E81CC01280A50016128000C980A5401771 -S315400190D0128000C701000000A5440000A534A00B82 -S315400190E0A40CA00780A4A004128000C101000000C6 -S315400190F010800002010000008B4440008A09601F75 -S3154001910080A160010280000A8C1000059DE3BFA08A -S315400191108AA1600116BFFFFE0100000081E8000040 -S315400191208CA1A00116BFFFFE010000000100000056 -S3154001913001000000A023A080A02C20078E10001063 -S31540019140A3480000E2240000C2242004C43C2008B5 -S31540019150C83C2010CC3C2018F03C2020F43C202870 -S31540019160F83C2030FC3C2038D03C2040D43C2048C0 -S31540019170D83C2050DC3C2058A5500000E424206017 -S3154001918080102008821020018410200286102003BE -S31540019190881020048A1020058C102006819000003A -S315400191A0A42C601F818C800001000000010000009A -S315400191B0010000000300404082106101841000005C -S315400191C086100000894440008809201F861000044B -S315400191D0A010000284004002A21000028400400256 -S315400191E0A410000284004002A6100002840040023E -S315400191F0A810000284004002AA1000028400400226 -S31540019200AC10000284004002AE100002840040020D -S315400192109010000284004002921000028400400235 -S31540019220941000028400400296100002840040021D -S3154001923098100002840040029A1000028400400205 -S315400192409C100002840040029E10000284004002ED -S3154001925081E0000086A0E00116BFFFDE01000000AC -S315400192600300404082106101841000008610000412 -S3154001927080A400021280003F8400400280A4400284 -S315400192801280003C8400400280A480021280003992 -S315400192908400400280A4C00212800036840040024D -S315400192A080A50002128000338400400280A540025E -S315400192B0128000308400400280A580021280002D79 -S315400192C08400400280A5C0021280002A8400400228 -S315400192D080A20002128000278400400280A2400240 -S315400192E0128000248400400280A280021280002164 -S315400192F08400400280A2C0021280001E8400400207 -S3154001930080A300021280001B8400400280A3400219 -S31540019310128000188400400280A38002128000154A -S315400193208400400280A3C0021280001284004002E1 -S3154001933081E0000086A0E00116BFFFCE01000000DB -S3154001934080A020001280000B80A0FFFF1280000940 -S3154001935080A160051280000780A1A0061280000549 -S3154001936001000000A010000710800006C024202044 -S31540019370A01000079010200110800002D024202068 -S3154001938082100007C400400081888000010000006F -S315400193900100000001000000C4186008C8186010F0 -S315400193A0CC186018F0186020F4186028F81860305E -S315400193B0FC186038D0186040D4186048D8186050FE -S315400193C0DC186058E4006060C2006004819480004B -S315400193D0010000000100000001000000A01000078C -S315400193E0F004202081C7E00881E8000010BFFFFC9F -S315400193F0B01000000100000081D8200081C3E008C0 -S31540019400010000001B100144D80361808210200135 -S315400194108328400C1B10014482007FFFD8036184DE -S3154001942082084008932A400C900040098213C000EC -S315400194307FFFE77D9E104000010000001B100144A4 -S31540019440D8036180821020018328400C1B100144FF -S3154001945082007FFFD8036184932A400C820840082A -S31540019460900040099210000A8213C0007FFFE77006 -S315400194709E104000010000001B100144D80361808A -S31540019480821020018328400C1B10014482007FFF7B -S31540019490D8036184932A400C820840089000400911 -S315400194A09210000A8213C0007FFFE7659E104000BC -S315400194B0010000001B100144D80361808210200185 -S315400194C08328400C1B10014482007FFFD80361842E -S315400194D082084008932A400C900040098213C0003C -S315400194E07FFFE7559E104000010000001B1001441C -S315400194F0D803618C821020018328400C1B10014443 -S3154001950082007FFFD803619C932A400C8208400861 -S31540019510900040099210000A8213C0007FFFE74C79 -S315400195209E104000010000001B100144D803618CCD -S31540019530821020018328400C1B10014482007FFFCA -S31540019540D803619C932A400C820840089000400948 -S315400195509210000A8213C0007FFFE7419E1040002F -S31540019560010000009DE3BF582D100144A2102000C8 -S31540019570C205A19080A440011680001BA0102000C6 -S315400195802B1001442910014427100144A410200145 -S31540019590D005618C912C8008C205219C90023FFF29 -S315400195A0832C0001900A00187FFFE72790020001F3 -S315400195B0C204E17C901E0008900A000180A00008C8 -S315400195C0A2647FFFA0042001C205A19080A40001EE -S315400195D026BFFFF1D005618C80A460001280000394 -S315400195E0B0102000B010200181C7E00881E80000DA -S315400195F01B100144D803618C821020018328400C42 -S315400196001B10014482007FFFD803619C82084008F9 -S31540019610932A400C900040098213C0007FFFE70A5D -S315400196209E104000010000001B100144D803618CCC -S31540019630821020018328400C1B10014482007FFFC9 -S31540019640D803619C82084008932A400C9000400947 -S315400196508213C0007FFFE7009E104000010000001A -S31540019660952AA00D0328000094028009D0204000CD -S315400196709422B000D420600481C3E00801000000B8 -S31540019680033FFFBF821062F89DE38001193FFFBF90 -S3154001969094132368B407BFF80310004B9606800A5B -S315400196A0821063A0C222E00C0310004B821063605B -S315400196B0C222E0041B10004B9A136340033FFFBFD5 -S315400196C0DA26800A901323803310004B8210635CA4 -S315400196D094068008981323C0921663808200401E28 -S315400196E0D222E008D4204000B006800C7FFF9EC7FE -S315400196F0901020067FFFE6C890102000920A3FF0A6 -S315400197007FFFE6C790102000210000307FFFE6C2B0 -S3154001971090102000808A001012BFFFFD010000005A -S315400197207FFFFF36210000307FFFE6BB901020000F -S31540019730808A001012BFFFFD010000007FFFE6B6E0 -S3154001974090102000030020408210600F9212000109 -S315400197507FFFE6B3901020007FFFE6AF9010200810 -S3154001976021100144D02421787FFFE6AB9010200CD4 -S31540019770A73A2010993A2014A60CE007980B200F1F -S31540019780DA042178A8230013A80520089F3B60141A -S31540019790933B60109B3B601894050013A210200177 -S315400197A0AC03200A9E0BE00F96102400AE0B60031B -S315400197B09402A00221200000992AC00C1B100144EA -S315400197C08203E00A952C400A9424000A832C400126 -S315400197D0D8236198A02400011B10014403100144C1 -S315400197E0EC23618C972AC00FAA03E00A1B1001449F -S315400197F0D620617403100144EA236184EA20618022 -S315400198001B10014403100144D423617C920A600772 -S31540019810A53A2018D0206188153FFFBF932C4009F7 -S31540019820A40CA003031001449412A358932C40099D -S31540019830A404A0013910014437100144EC20619C75 -S315400198409B2C40149402801EE0272194E426E1904B -S31540019850AA027FFFDA228000AC85E0010280000C7B -S31540019860BB2C4013033FFFBF82106368A0068001F3 -S31540019870A4100016D00400009FC20000A0042004DA -S31540019880A484BFFF32BFFFFDD00400007FFFE66224 -S3154001989090102000920A3FFC7FFFE6619010200065 -S315400198A0A410200080A4801616800022A210200059 -S315400198B0033FFFBFAE106368A610001AA010200038 -S315400198C080A4001636800018A404A001108000056B -S315400198D0A810001780A4001636800013A404A00126 -S315400198E0921000107FFFFEC8D004C014820A0015F2 -S315400198F080A0401512BFFFF8A0042001C204C01485 -S3154001990082184008DA0721948208400D80A00001A0 -S31540019910A2647FFF80A4001606BFFFF392100010D9 -S31540019920A404A00180A4801606BFFFE5A604E004B6 -S315400199307FFFE63990102000A61000089010200005 -S315400199407FFFE6379214E00380A46000028001B1F4 -S3154001995001000000833CE00C80886003128000A572 -S31540019960030048D1833CE01380886003128001AD37 -S31540019970010000007FFFFEA1210000307FFFE626A7 -S3154001998090102000808A001012BFFFFDA61000082B -S31540019990A4102000C206E19080A480011680000D2B -S315400199A0832CA00292100012901000187FFFFED067 -S315400199B094102000A404A001C206E19080A4800175 -S315400199C006BFFFFA92100012A4102000832CA002B9 -S315400199D0A404A001C026000180A4A01E04BFFFFD6F -S315400199E0832CA00282102005C22600009A10200175 -S315400199F0DA26200482102002C22620089A1020036B -S31540019A00DA26200C7FFFFED89010001880A2200095 -S31540019A10028001D301000000C206000080A060055B -S31540019A2002800004010000007FFF9DFD901020068A -S31540019A307FFFFECD9010001880A22000128001C445 -S31540019A4001000000A4102000C206E19080A480011C -S31540019A501680000F92100012A006200494102000D8 -S31540019A607FFFFEB290100018921000129010001065 -S31540019A707FFFFEAE94102000A404A001C206E1902F -S31540019A8080A4800106BFFFF6921000127FFFE5F821 -S31540019A90901000187FFFE5F6900620207FFFE5F441 -S31540019AA0900620407FFFE5F290062060A41020003A -S31540019AB0C206E19080A4800106800196A210200092 -S31540019AC07FFF9DD790102008173FFFBF8212E3C04A -S31540019AD0940680018212E35C8200401ED81A8000FF -S31540019AE0C2004000D83840009612E380C206800B7F -S31540019AF080A06005128000068206800BDA006004B1 -S31540019B0080A3600102800005A41020007FFF9DC450 -S31540019B1090102009A4102000C206E19080A4800183 -S31540019B2016800011A2102000A006200492100012F7 -S31540019B307FFFFEBE90100010901A200180A0000801 -S31540019B40A2647FFFA404A001C206E19080A4800123 -S31540019B5006BFFFF89210001280A460010280000542 -S31540019B60833CE0137FFF9DAE9010200A833CE013B7 -S31540019B70808860031280018082102005C226000081 -S31540019B809A102001DA26200482102002C2262008DB -S31540019B909A102003DA26200C1B3FFFBF9A13635805 -S31540019BA09A03401ED00340004000048D9210001DD0 -S31540019BB0032EEEEEA12A2002A21063BBE22600107C -S31540019BC07FFFFE699010001880A220001280016775 -S31540019BD001000000C206001080A04011028000056D -S31540019BE0030048D17FFF9D8E90102012030048D17B -S31540019BF0821061671B226AF3C22620209A1361EF05 -S31540019C00DA262024C20E202080A0600102800004B2 -S31540019C10010000007FFF9D829010201AC20E202174 -S31540019C2080A0602302800004010000007FFF9D7C2C -S31540019C309010201BC20E202280A0604502800004A5 -S31540019C40010000007FFF9D769010201CC20E20234C -S31540019C5080A0606702800004010000007FFF9D70C4 -S31540019C609010201DC20E202480A06089028000042D -S31540019C70010000007FFF9D6A9010201EC20E202524 -S31540019C8080A060AB02800004010000007FFF9D645C -S31540019C909010201FC20E202680A060CD02800004B5 -S31540019CA0010000007FFF9D5E90102020C20E2027FC -S31540019CB080A060EF02800004010000007FFF9D58F4 -S31540019CC090102021C2162020832860108330601016 -S31540019CD080A0612302800004010000007FFF9D50A7 -S31540019CE090102022DA1620229B2B601003000011CF -S31540019CF09B3360108210616780A34001028000049B -S31540019D00010000007FFF9D4690102023DA16202493 -S31540019D109B2B6010030000229B336010821061ABC5 -S31540019D2080A3400102800004010000007FFF9D3CAA -S31540019D3090102024DA1620269B2B60100300003356 -S31540019D409B336010821061EF80A3400102800005C1 -S31540019D50821020307FFF9D329010202582102030C6 -S31540019D60C22E2020030C08D1DA062020821061671A -S31540019D7080A3400102800005821020317FFF9D288B -S31540019D809010202782102031C22E2021030C0C5125 -S31540019D90DA0620208210616780A340010280000517 -S31540019DA0821020327FFF9D1E901020288210203283 -S31540019DB0C22E2022210C0C4CDA0620208214226766 -S31540019DC080A3400102800005821020337FFF9D144D -S31540019DD09010202982102033C22E20239A14223338 -S31540019DE0C206202080A0400D02800005821020344A -S31540019DF07FFF9D0B9010202A82102034C22E2024F2 -S31540019E00030D2AF3DA062024821061EF80A3400174 -S31540019E1002800005821020357FFF9D019010202B86 -S31540019E2082102035C22E2025030D0D73DA0620241B -S31540019E30821061EF80A34001028000058210203626 -S31540019E407FFF9CF79010202C82102036C22E2026B0 -S31540019E50210D0D4DDA062024821422EF80A3400104 -S31540019E6002800005821020377FFF9CED9010202D47 -S31540019E7082102037C22E20279A142237C206202468 -S31540019E8080A0400D02800005210000107FFF9CE468 -S31540019E909010202E2100001082142041C23620202D -S31540019EA00310104CDA0620208210623380A3400151 -S31540019EB002800005821422437FFF9CD99010202FF7 -S31540019EC082142243C236202203101050DA06202083 -S31540019ED08210624380A340010280000521000011E7 -S31540019EE07FFF9CCF90102030210000118214204525 -S31540019EF0C23620240311114DDA062024821062371E -S31540019F0080A3400102800005821422477FFF9CC442 -S31540019F109010203182142247C23620260311115156 -S31540019F20DA0620248210624780A3400102800004A1 -S31540019F30010000007FFF9CBA901020327FFFFD2F69 -S31540019F40A4102000C206E19080A48001168000156D -S31540019F501B100144D403619C96100001A0102000FF -S31540019F6080A4001D3680000CA404A001832C800A25 -S31540019F709B286002992CA01082130010C226000D66 -S31540019F80A004200180A4001D06BFFFFC9A036004C3 -S31540019F90A404A00180A4800B26BFFFF2A0102000DC -S31540019FA07FFFE49D9010200003000010808A00018D -S31540019FB012BFFFFC01000000A4102000C206E19080 -S31540019FC080A4800116800114921000127FFFFD8942 -S31540019FD09010001815100144C202A17C900A00019C -S31540019FE0820E000180A20001A404A00112BFFFF469 -S31540019FF0901020337FFF9C8A01000000C206E19049 -S3154001A00080A4800106BFFFF2921000123080010247 -S3154001A0107FFF9C839010200110BFFE50833CE00CD3 -S3154001A0207FFFE47D90102000133FFFF09212603FC6 -S3154001A030920A0009A61000087FFFE47990102000DB -S3154001A0407FFFE3D0A41020001303C0009214C0097F -S3154001A0507FFFE4739010200080A4801616800009CB -S3154001A06092100012901663807FFFFD049410200029 -S3154001A070A404A00180A4801606BFFFFB9210001223 -S3154001A0807FFFE3C0010000007FFFE46390102000E2 -S3154001A090913A200A900A200380A2200102800004FE -S3154001A0A0010000007FFF9C5E90102002010000002D -S3154001A0B092102000901663807FFFFCE194102000EF -S3154001A0C0010000007FFFE454901020001303C000FC -S3154001A0D0922A00097FFFE4529010200001000000FF -S3154001A0E07FFFE3A8010000007FFFE44B90102000B2 -S3154001A0F0913A200C900A200380A2200102BFFE1E45 -S3154001A100010000007FFF9C469010200330BFFE1ADD -S3154001A110921000127FFFFD4590100018901A2005FD -S3154001A12080A00008A2647FFFA404A001C206E190BA -S3154001A13080A4800106BFFFF89210001280A460003F -S3154001A14012BFFE63173FFFBF30BFFE5E7FFF9C34E9 -S3154001A1509010200710BFFE3DA41020007FFF9C30C9 -S3154001A1609010200530BFFE2D7FFF9C2D90102011B1 -S3154001A17030BFFE997FFFE42890102000033FFFF097 -S3154001A1808210603F920A00017FFFE4259010200073 -S3154001A190033FFFBFA010638092102000941020005F -S3154001A1A07FFFFCE2900680107FFFE41B90102000A9 -S3154001A1B00303C000921200017FFFE41990102000B2 -S3154001A1C010800006A4102000900680107FFFFCD767 -S3154001A1D094102005A404A001C206E19080A4800148 -S3154001A1E006BFFFFA92100012033FFFBFA010638023 -S3154001A1F09A102001DA2E801003004000D806801004 -S3154001A2008210600580A30001028000040100000065 -S3154001A2107FFF9C039010200B7FFFE3FF90102000EF -S3154001A220913A2006900A200380A220010280000470 -S3154001A230010000007FFF9BFA9010200C7FFFE3F6A0 -S3154001A240901020001303C000922A00097FFFE3F417 -S3154001A2509010200092102000900680107FFFFCB3E2 -S3154001A260941020007FFFE3EC901020002103C000F2 -S3154001A270921200107FFFE3EA901020007FFFE3E691 -S3154001A28090102000808A001002BFFFFDA610000832 -S3154001A290A4102000C206E19080A480011680000E21 -S3154001A2A0033FFFBF9A102001A2106380A12B401DDE -S3154001A2B092100012900680117FFFFC8D94043FFF9F -S3154001A2C0A404A001C206E19080A4800106BFFFFA62 -S3154001A2D0921000121303C000922CC0097FFFE3D0F5 -S3154001A2E0901020002103C0007FFFE3CB9010200097 -S3154001A2F0808A001012BFFFFD1B004000213FFFBFB7 -S3154001A30082142380D80680019A13600580A3000D2C -S3154001A31002800004010000007FFF9BC19010200DC8 -S3154001A3207FFFE3BD90102000913A2008900A200358 -S3154001A33080A2200122800005A01423787FFF9BB8CC -S3154001A3409010200FA01423789406801098102011A5 -S3154001A3509A102055D83A80007FFFE3AF9010200035 -S3154001A3600303C00092120001920A7F3F7FFFE3ACD4 -S3154001A37090102000A00680107FFFE3CB90100010C4 -S3154001A38010800006A4102000900420047FFFFC6783 -S3154001A39094102055A404A001C206E19080A4800136 -S3154001A3A006BFFFFA92100012113FFFBF90122378A9 -S3154001A3B07FFFE3BD9006800880A220111280000431 -S3154001A3C080A2605502800004010000007FFF9B943B -S3154001A3D0901020107FFFE39090102000833A2006D2 -S3154001A3E08208600380A0600102800004A610000874 -S3154001A3F07FFF9B8B90102010133C3FF09212603FE1 -S3154001A400920CC0097FFFE3869010200010BFFDDC4F -S3154001A410821020057FFFE380901020009212200FCA -S3154001A4207FFFE37F9010200081C7E00891E820007C -S3154001A4309DE3BF987FFFFC9301000000B010000828 -S3154001A440130020409212600F7FFFE37590102000A9 -S3154001A4500100000081C7E00881E80000033FFFBF1B -S3154001A460821063589DE380017FFFFBE401000000F9 -S3154001A47040000238010000007FFFE367901020088A -S3154001A480A21000087FFFE3649010200C7FFF9B73AE -S3154001A490A0100008912A20047FFF9B5C9002200CAB -S3154001A4A0973C6014833C6018953C2014993C2018D5 -S3154001A4B082086003960AE00F820060019602E00A74 -S3154001A4C0A33C6010A13C2010980B2003940AA00FD6 -S3154001A4D0A728400B98032001A20C6007A00C200777 -S3154001A4E09402A00A9A102001A2046002A00420024C -S3154001A4F0B12B000A03200000AB2B4011A52B4010C5 -S3154001A5009620401898057FFF822040139A04BFFF8A -S3154001A510AE130001A213400B210000307FFFE33E42 -S3154001A52090102000808A001012BFFFFD033FFFBF3D -S3154001A5309A07BFF8821063C0A00340012D155555F7 -S3154001A54090100018921000107FFFE2C69415A15595 -S3154001A55080A220001280004B292AAAAA921000103C -S3154001A560901000187FFFE2D3941522AA80A2200002 -S3154001A5701280004E010000007FFF9B380100000061 -S3154001A580912A20047FFF9B219002200A400001EE80 -S3154001A5900100000092152200920C4009901000180B -S3154001A5A094100011961000127FFFE2EB981522AA33 -S3154001A5B080A2200012800051010000009215A100E6 -S3154001A5C090100018920C4009941000119610001238 -S3154001A5D07FFFE2E19815A15580A220001280004438 -S3154001A5E0010000007FFF9B1D01000000912A20040D -S3154001A5F07FFF9B069002200B901000137FFFE2BD68 -S3154001A6009215A15580A2200012800035010000005C -S3154001A610901000137FFFE2B7921522AA80A2200074 -S3154001A6201280002C010000007FFF9B0C01000000FE -S3154001A630912A20047FFF9AF5900220099010001379 -S3154001A64092100017941000157FFFE2B6961522AAC4 -S3154001A65080A220001280001B010000009010001310 -S3154001A66092100017941000157FFFE2AE9615A15582 -S3154001A67080A2200002800025010000003080000EEB -S3154001A6807FFF9AE790102001292AAAAA921000106A -S3154001A690901000187FFFE287941522AA80A220001D -S3154001A6A002BFFFB6010000007FFF9ADD9010200235 -S3154001A6B030BFFFB27FFF9ADA901020083080001336 -S3154001A6C07FFF9AD79010200710BFFFE69010001326 -S3154001A6D07FFF9AD39010200630BFFFD47FFF9AD0D8 -S3154001A6E09010200510BFFFCC901000137FFF9ACC2D -S3154001A6F09010200430BFFFBC7FFF9AC99010200301 -S3154001A70010BFFFB09215A1007FFFFB3CB0102000A7 -S3154001A71040000190010000000100000081C7E008EF -S3154001A72081E800009DE3BF987FFF9AB31100412C59 -S3154001A730DA062004D80620049A0B6003993B2002CE -S3154001A74082102007C2262008BA036001B20B27FFF8 -S3154001A750010000009010200AC02600007FFF9AAB3E -S3154001A760010000001700020082103FFFC226000BC5 -S3154001A770032AAAAA1B155555D806000BAC10200072 -S3154001A780821062AA9A136155AA0B000180A5801D09 -S3154001A79016800038A80B000D9612E020A72E6008FF -S3154001A7A080A4E0000480000CA2102000832DA002AA -S3154001A7B082004018190002009A10000BE820400C54 -S3154001A7C0EA20400DA204601080A4C01114BFFFFC12 -S3154001A7D082006040AC05A00180A5801D06BFFFF246 -S3154001A7E080A4E000AC10200080A5801D16800021C9 -S3154001A7F003000200B8106020A72E6008AE100018B2 -S3154001A80080A4E00004800017A2102000030002008B -S3154001A810A4060001A005C01CC2048000A204601069 -S3154001A820A404A04080A0401402800004901020019E -S3154001A8307FFF9A7B01000000C2040000A004204073 -S3154001A84080A0401502800004901020017FFF9A7479 -S3154001A8500100000080A4C01114BFFFF001000000F8 -S3154001A860AC05A00180A5801D06BFFFE6AE05E0044C -S3154001A8707FFF9A669010200CAC10200080A5801DA9 -S3154001A88016800088031555559E1061551B0008001A -S3154001A890032AAAAA9A136004901062AAA72E6008F6 -S3154001A8A080A4E0000480000EA2102000832DA01396 -S3154001A8B082004018130008009410000F9610000DF6 -S3154001A8C098100008D4204009D820400BA204600209 -S3154001A8D080A4C01114BFFFFC82006008AC05A00132 -S3154001A8E080A5801D06BFFFF080A4E000AC102000CB -S3154001A8F080A5801D1680006B03155555B81061550E -S3154001A9001B000800032AAAAAB6136004B41062AA5F -S3154001A910A72E600880A4E00004800019A210200040 -S3154001A920832DA013A00040182F000800AA10001C78 -S3154001A930A810001BA410001AC2040017A20460024A -S3154001A94080A0401502800004901020037FFF9A34B6 -S3154001A95001000000C2040014A004200880A0401297 -S3154001A96002800004901020037FFF9A2D0100000011 -S3154001A97080A4C01114BFFFF101000000AC05A00185 -S3154001A98080A5801D06BFFFE580A4E000AC10200035 -S3154001A99080A5801D16800043030008009E106004B8 -S3154001A9A01B155555032AAAAA9A136155901062AAF6 -S3154001A9B0A72E600880A4E0000480000EA2102000AB -S3154001A9C0832DA01382004018130008009410000F35 -S3154001A9D09610000D98100008D620400AD82040094C -S3154001A9E0A204600280A4C01114BFFFFC820060086B -S3154001A9F0AC05A00180A5801D06BFFFF080A4E00044 -S3154001AA00AC10200080A5801D1680002603155555E3 -S3154001AA10B81061551B2AAAAA03000800A72E600890 -S3154001AA20B61362AAB410600480A4E0000480001941 -S3154001AA30A2102000832DA013A00040182F0008006B -S3154001AA40AA10001CA810001BA410001AC204001270 -S3154001AA50A204600280A040150280000490102004E8 -S3154001AA607FFF99EF01000000C2040017A0042008EF -S3154001AA7080A0401402800004901020047FFF99E8D2 -S3154001AA800100000080A4C01114BFFFF101000000C5 -S3154001AA90AC05A00180A5801D06BFFFE580A4E000AE -S3154001AAA082102005C22620081B200000DA2600005D -S3154001AAB081C7E00881E8000081C3E0089144400075 -S3154001AAC080800000151001409412A1809010200052 -S3154001AAD09210224681800000010000000100000022 -S3154001AAE001000000D00280009122400881C3E008A5 -S3154001AAF0010000008180000090102001809020011B -S3154001AB0080D020011280002C0100000080D23FFF3E -S3154001AB10168000290100000080DA3FFF93400000C3 -S3154001AB2080A27FFF128000240100000080D23FFFF7 -S3154001AB309348000093326014920A600F80A2600825 -S3154001AB401280001D0100000081800000901020014C -S3154001AB50945220049452A0049452A00496A2A04078 -S3154001AB601280001501000000818000009010200233 -S3154001AB7080A00000328000109052000880A220027E -S3154001AB801280000D0100000081800000901020021B -S3154001AB9080A00000010000003280000790520008AA -S3154001ABA080A22002128000040100000081C3E00857 -S3154001ABB09010200181C3E0089010000013155555EF -S3154001ABC092126155A582400001000000010000007B -S3154001ABD0010000009544800080A2400A1280004393 -S3154001ABE001000000923A4000A582400001000000A9 -S3154001ABF001000000010000009544800080A2400A47 -S3154001AC001280003A010000001100003F901223FF1C -S3154001AC10A5800000818000000100000001000000C5 -S3154001AC200100000093F23FFF9A10000993F23FFFA3 -S3154001AC3093F23FFF93F23FFF93F23FFF93F23FFFC1 -S3154001AC4093F23FFF93F23FFF994000009744800003 -S3154001AC50153FFC009412A00880A2400A12800023EE -S3154001AC6080A2400B1280002180A320071280001F82 -S3154001AC70113FFF809012200180A340081280001BE3 -S3154001AC801100003F901223FFA58000008180000043 -S3154001AC9001000000010000000100000093FA3FFF9F -S3154001ACA093FA3FFF93FA3FFF93FA3FFF93FA3FFF31 -S3154001ACB093FA3FFF93FA3FFF93FA3FFF9940000013 -S3154001ACC09744800080A260081280000880A2600834 -S3154001ACD01280000680A320001280000401000000BB -S3154001ACE081C3E0089010200181C3E0089010000064 -S3154001ACF0818000009010200280A000003280001068 -S3154001AD009072000880A220021280000D010000000E -S3154001AD10818000009010200280A000000100000008 -S3154001AD20328000079072000880A22002128000043F -S3154001AD300100000081C3E0089010200181C3E008B2 -S3154001AD4090100000C0A0004081C3E008010000004F -S3154001AD50110020409012200FD0A0004081C3E0088E -S3154001AD60010000009DE3BF987FFFE12B9010200872 -S3154001AD70A21000087FFFE1289010200C833C60144C -S3154001AD809B3A2014A13A2018A33C6018A20C6003F8 -S3154001AD90A00C20038208600F9A0B600F8200600AA4 -S3154001ADA09A03600AA2046001A0042001A32C400179 -S3154001ADB07FFFFFE5A12C000D7FFFE08E9010001173 -S3154001ADC07FFFE09A901000107FFFF98C0100000090 -S3154001ADD07FFFFFE081E800000100000098120009B2 -S3154001ADE0818200009AAB2FFF0280002598880000DF -S3154001ADF099230009992300099923000999230009F8 -S3154001AE0099230009992300099923000999230009E7 -S3154001AE1099230009992300099923000999230009D7 -S3154001AE2099230009992300099923000999230009C7 -S3154001AE3099230009992300099923000999230009B7 -S3154001AE4099230009992300099923000999230009A7 -S3154001AE509923000999230009992300099923000997 -S3154001AE609923000999230009992300099923000987 -S3154001AE709923000081C3E00891400000992300090D -S3154001AE809923000999230009992300099923000967 -S3154001AE909923000999230009992300099923000957 -S3154001AEA09923000999230009992300099923000050 -S3154001AEB09B400000992B200C9B33601481C3E00812 -S3154001AEC09013400C1080000B8610200080924008A1 -S3154001AED01680000886100008809240001680000403 -S3154001AEE080920000168000039220000990200008FD -S3154001AEF09A924000128000059610000891D02002D7 -S3154001AF0081C3E0089010000080A2C00D0A80009520 -S3154001AF10941000000302000080A2C0010A800028AC -S3154001AF209810000080A340011A80000D8410200172 -S3154001AF309B2B600410BFFFFC980320019A83400DB0 -S3154001AF401A8000078400A001832860049B336001B6 -S3154001AF509A034001108000078420A00180A3400B82 -S3154001AF600ABFFFF701000000028000020100000055 -S3154001AF7084A0A00106800076010000009622C00D43 -S3154001AF80941020011080000A01000000952AA001BA -S3154001AF90068000059B3360019622C00D1080000497 -S3154001AFA09402A0019602C00D9422A00184A0A001A2 -S3154001AFB016BFFFF78092C000308000659B2B60046E -S3154001AFC080A3400B08BFFFFE9883200102800065E5 -S3154001AFD0982320018092C000952AA0040680002F64 -S3154001AFE09B33600196A2C00D068000179B3360011A -S3154001AFF096A2C00D0680000B9B33600196A2C00D40 -S3154001B000068000059B33600196A2C00D108000505A -S3154001B0109402A00F9682C00D1080004D9402A00D9F -S3154001B0209682C00D068000059B33600196A2C00D35 -S3154001B030108000479402A00B9682C00D10800044F8 -S3154001B0409402A0099682C00D0680000B9B336001D5 -S3154001B05096A2C00D068000059B33600196A2C00DE5 -S3154001B0601080003B9402A0079682C00D10800038E4 -S3154001B0709402A0059682C00D068000059B336001AF -S3154001B08096A2C00D108000329402A0039682C00D94 -S3154001B0901080002F9402A0019682C00D06800017F1 -S3154001B0A09B33600196A2C00D0680000B9B33600165 -S3154001B0B096A2C00D068000059B33600196A2C00D85 -S3154001B0C0108000239402BFFF9682C00D108000209D -S3154001B0D09402BFFD9682C00D068000059B33600138 -S3154001B0E096A2C00D1080001A9402BFFB9682C00D35 -S3154001B0F0108000179402BFF99682C00D0680000B9E -S3154001B1009B33600196A2C00D068000059B3360010A -S3154001B11096A2C00D1080000E9402BFF79682C00D14 -S3154001B1201080000B9402BFF59682C00D0680000583 -S3154001B1309B33600196A2C00D108000059402BFF3B7 -S3154001B1409682C00D108000029402BFF198A320019F -S3154001B15016BFFFA28092C000268000029602C00957 -S3154001B1608090C000268000029620000B81C3E00833 -S3154001B1709010000B921000089010200094102000AF -S3154001B180961020008213C000400001E89E10400046 -S3154001B190010000009210000803100142D00063F83C -S3154001B1A08213C0004000000A9E10400001000000CA -S3154001B1B09210000803100142D00063F88213C000C8 -S3154001B1C0400002559E104000010000009DE3BF98DB -S3154001B1D08206600B80A06016A61000181880000336 -S3154001B1E0A0087FF8A010201080A400199A402000E2 -S3154001B1F08334201F8090400D128001B0B010200092 -S3154001B200400001B09010001380A421F71880001768 -S3154001B21099342009391001408217222898040001E7 -S3154001B220F003200C80A6000C0280004E9F342003C0 -S3154001B230C206200494087FFC9A06000AC2036004F1 -S3154001B24082106001D006200CD2062008D2222008A6 -S3154001B250C2236004D022600C400001A0901000136C -S3154001B26010800196B006200880A320001280002895 -S3154001B2709F342003391001409B2BE003821722287B -S3154001B2809A0340011080000AF003600C94087FFC89 -S3154001B2909622801080A2E00F1480010980A2E0006E -S3154001B2A036BFFFE79A06000AF006200C80A6000D7D -S3154001B2B032BFFFF7C20620049E03E001251001407C -S3154001B2C09814A230F003200880A6000C0280005D8D -S3154001B2D0833BE01FC206200494087FFC962280101F -S3154001B2E080A2E00F1480009F80A2E000D823200CAA -S3154001B2F006800023D82320089A06000AC203600468 -S3154001B3008210600110BFFFD5C2236004833420063A -S3154001B31080A3200408BFFFD89E00603880A3201474 -S3154001B32008BFFFD59E03205B8334200C80A32054A5 -S3154001B33008BFFFD19E00606E8334200F80A3215445 -S3154001B34008BFFFCD9E0060778334201280A3255429 -S3154001B35008BFFFC99E00607C10BFFFC79E10207EBC -S3154001B36098062008F003200C80A6000C32BFFFB2DD -S3154001B370C206200410BFFFD29E03E00280A2A1FFB5 -S3154001B380088000BE9B32A0039732A00980A2E0004C -S3154001B39022800017961722288332A00680A2E00455 -S3154001B3A0088000129A00603880A2E0140880000FDD -S3154001B3B09A02E05B8332A00C80A2E0540880000B25 -S3154001B3C09A00606E8332A00F80A2E1540880000784 -S3154001B3D09A0060778332A01280A2E5540880000368 -S3154001B3E09A00607C9A10207E96172228832B600350 -S3154001B3F09000400BD202200880A240082280010F13 -S3154001B40099336002C202600482087FFC80A0400A30 -S3154001B41028800007D002600CD202600880A2400852 -S3154001B42032BFFFFAC2026004D002600CD026200C63 -S3154001B430D2262008F022600CF0222008833BE01F30 -S3154001B4408330601E8203C001391001408338600297 -S3154001B450981722289A102001932B4001D8032004E3 -S3154001B46080A2400C1880004BAE172228808B000921 -S3154001B4701280000D03100140820BFFFC920240092D -S3154001B480808B0009128000079E0060048210000C28 -S3154001B490920240098088400902BFFFFE9E03E004F4 -S3154001B4A003100140A2106228A8100011832BE0036B -S3154001B4B0980040119010000F9A10000C1080000A5D -S3154001B4C0F003600C94087FFC9622801080A2E00F66 -S3154001B4D01480007D80A2E0003680008B9A06000A27 -S3154001B4E0F006200C80A6000D32BFFFF7C2062004ED -S3154001B4F09E03E001808BE00312BFFFF19A036008CF -S3154001B500808A200398033FF8028000D490023FFFCF -S3154001B510C203200880A0400C02BFFFFB808A2003A3 -S3154001B52092024009C205200480A2400118800018F9 -S3154001B5303910014080A260001280000680884009CF -S3154001B54010800014AE1722289E03E004808840092B -S3154001B55022BFFFFE9202400910BFFFD6832BE003B4 -S3154001B5608214200194060010C2262004D423200C04 -S3154001B570D42320088212E001D622800BD822A008CB -S3154001B580C222A00410BFFF35D822A00CAE17222834 -S3154001B590F005E008C2062004AA087FFC80A54010F9 -S3154001B5A09A4020009625401080A2E00F1480004268 -S3154001B5B0821020018093400102800027031001433D -S3154001B5C0DA0061282D1001409A04000DC205A2201F -S3154001B5D0A810001580A07FFFA2036010028000041E -S3154001B5E0A406001582046FFFA20870009010001394 -S3154001B5F0400000C09210001180A23FFF0280000867 -S3154001B600B210000880A200121A8000463B10014386 -S3154001B61080A6001722800044C20760F882172228BC -S3154001B620D8006008DA0320049A0B7FFC80A34010FF -S3154001B630984020009623401080A2E00F048000032A -S3154001B6408210200182102000809300011280009810 -S3154001B6500100000098172228F003200882142001D7 -S3154001B660C22620049A0600108212E001C223600419 -S3154001B67010BFFEFADA23200898033FF8832B6003B4 -S3154001B6809000400C9B336002821020018328400DBC -S3154001B690D2022008DA0320049A134001D026200C56 -S3154001B6A0D2262008F022600CDA23200410BFFF6462 -S3154001B6B0F022200810BFFFC08210200010BFFEFFFD -S3154001B6C09E03FFFFD006200CD20620089A142001C3 -S3154001B6D0940600108214A230D2222008D022600C97 -S3154001B6E0DA262004D420600CD42060089A12E001A6 -S3154001B6F0D622800BC222A008DA22A00410BFFED7B0 -S3154001B700C222A00CC203600482106001D006200C44 -S3154001B710D2062008C223600410BFFECFD2222008E1 -S3154001B720C20760F88200401180A640120280004F95 -S3154001B730C22760F8C205A22080A07FFF0280004593 -S3154001B740C20760F89A2640128200400DC22760F86F -S3154001B7509A8E600702800005A410200082102008FE -S3154001B760A420400DB20640129A0640119A0B6FFF73 -S3154001B770030000048220400DA404800190100013B0 -S3154001B7804000005C9210001280A23FFF2280003FE1 -S3154001B790A41020008222001990004012821722280C -S3154001B7A0DA0760F89A03401280A60001F220600889 -S3154001B7B0DA2760F8028000378212200180A5600FE7 -S3154001B7C038800005C22660048210200110BFFF9414 -S3154001B7D0C2266004C20620049A057FF4A80B7FF8AE -S3154001B7E08208600182104014C22620049A06001481 -S3154001B7F082102005C223600880A5200F18800027EB -S3154001B800C223600419100143DA0760F8C2032124F8 -S3154001B81080A3400138800002DA2321241910014314 -S3154001B820C203212080A3400138BFFF7DDA232120B6 -S3154001B83010BFFF7C821722289A102001C202E00421 -S3154001B8409B2B400C8210400D10BFFEF9C222E00432 -S3154001B85010BFFFC0F225A220C2046004822840091D -S3154001B86010BFFF30C2246004808E6FFF12BFFFB34A -S3154001B870C205A22090044014DA05E0088212200194 -S3154001B88010BFFFE1C223600410BFFFC3901000192F -S3154001B89010BFFFDDC2266004920620084000009ECC -S3154001B8A09010001310BFFFD9191001434000000B3F -S3154001B8B090100013B010200081C7E00881E8000015 -S3154001B8C011100141901222308213C0004000042A17 -S3154001B8D09E104000010000001110014190122230DB -S3154001B8E08213C0004000043C9E104000010000004D -S3154001B8F09DE3BF9821100144C02421A04000024984 -S3154001B9009010001980A23FFF12800006C20421A0B8 -S3154001B91080A060000280000301000000C2260000F2 -S3154001B92081C7E00891E800089DE3BF9823100143D1 -S3154001B930400004119014612C03100074E00061086A -S3154001B940D004214880A220002280002D9004214C61 -S3154001B950D602200480A2E01F1480001D01000000D1 -S3154001B96080A620001280000B94022088832AE002E0 -S3154001B9709A02E00182004008DA222004F22060089F -S3154001B980400004159014612C10800022B010200054 -S3154001B990821020019328400B992AE002DA02A10085 -S3154001B9A09A1340098203000AF6206080F422800C33 -S3154001B9B080A6200212BFFFEEDA22A100C202A10434 -S3154001B9C08210400910BFFFEAC222A1047FFFFDF2A7 -S3154001B9D09010219080A220000280000B961020003A -S3154001B9E0C2042148C2220000D0242148C02220049A -S3154001B9F0C022218810BFFFDBC022218C10BFFFD59A -S3154001BA00D0242148400003F49014612CB0103FFF2C -S3154001BA1081C7E00881E800009DE3BF987FFFFFA949 -S3154001BA209010001803100140A2106228DA04600841 -S3154001BA30C2036004A0087FFCB2240019B2066FEF6E -S3154001BA40B20E7000B20670009210200080A66FFF01 -S3154001BA500480000A901000187FFFFFA60100000035 -S3154001BA60C20460088200401080A04008922000195C -S3154001BA7002800005901000187FFFFF98B01020004B -S3154001BA80308000237FFFFF9B90100018822400190D -S3154001BA9080A23FFF821060019210200019100143DD -S3154001BAA00280000B90100018DA046008C22360047B -S3154001BAB0C20320F882204019901000187FFFFF87AB -S3154001BAC0C22320F810800012B01020017FFFFF89A9 -S3154001BAD00100000098100008D6046008A023000B5E -S3154001BAE09010001880A4200F04BFFFE4B214200177 -S3154001BAF003100140DA0062209A23000D031001432E -S3154001BB00DA2060F810BFFFDDF222E00481C7E008C9 -S3154001BB1081E800009DE3BF9880A660000280009DF9 -S3154001BB20A41000187FFFFF6790100018A0067FF849 -S3154001BB30D6042004900AFFFE19100140940400081F -S3154001BB40A2132228DA02A004C204600880A0400A97 -S3154001BB50028000449E0B7FFC808AE001DE22A00425 -S3154001BB601280000CB0102000F2067FF8A0240019C4 -S3154001BB7082046008DA04200880A340010280007D27 -S3154001BB8090020019D204200CDA226008D223600CFC -S3154001BB908202800FDA006004808B60011280000A05 -S3154001BBA08212200180A62000028000229002000F0E -S3154001BBB0DA02A008D202A00CDA226008D223600C75 -S3154001BBC082122001C224200480A6200002800005A2 -S3154001BBD0D0240008B01000127FFFFF4081E800002A -S3154001BBE080A221FF18800036973220099B3220031C -S3154001BBF098132228832B60039200400C9B336002EA -S3154001BC00821020018328400DD6026008DA03200401 -S3154001BC109A134001D224200CD6242008E022E00CBD -S3154001BC20DA232004E022600810BFFFECB0100012B6 -S3154001BC3003100140DA02A0088210623080A340015D -S3154001BC4032BFFFDED202A00CE023600CE023600885 -S3154001BC50DA242008DA24200C10BFFFDAB0102001C4 -S3154001BC60808AE001128000099002000FF2067FF8F7 -S3154001BC70A0240019D204200CD6042008D62260083C -S3154001BC8090020019D222E00C03100140DA0062242E -S3154001BC9098122001E024600880A2000D0ABFFFCF60 -S3154001BCA0D824200403100143D20061287FFFFF5BA3 -S3154001BCB0901000127FFFFF0981E8000080A2E0009A -S3154001BCC0028000169B3220038332200680A2E004C4 -S3154001BCD0088000129A00603880A2E0140880000FA4 -S3154001BCE09A02E05B8332200C80A2E0540880000B6C -S3154001BCF09A00606E8332200F80A2E15408800007CB -S3154001BD009A0060778332201280A2E55408800003AE -S3154001BD109A00607C9A10207E94132228832B60031C -S3154001BD209200400AD602600880A2C0090280001330 -S3154001BD3099336002C202E00482087FFC80A0400879 -S3154001BD4028800007D202E00CD602E00880A2C00992 -S3154001BD5032BFFFFAC202E004D202E00CD224200C28 -S3154001BD60D6242008E022E00C10BFFFB0E022600894 -S3154001BD7010BFFF88B01020019A102001C202A00412 -S3154001BD809B2B400C8210400D10BFFFF5C222A00430 -S3154001BD9081C7E00881E800009DE3BF98D2064000D4 -S3154001BDA080A2600012800004901000187FFFFF5AA5 -S3154001BDB081E800007FFFFFF9010000007FFFFF5689 -S3154001BDC081E80000010000009DE3BF980310014295 -S3154001BDD0DA0063F880A6000D0280004101000000F0 -S3154001BDE0D206204C80A260001280001CA0102000C8 -S3154001BDF0D206214880A260002280000FD20620543C -S3154001BE00A006214C80A240102280000BD20620546D -S3154001BE1010800005B2100009F20640007FFFFF3E88 -S3154001BE209010001880A4001912BFFFFC921000194F -S3154001BE30D206205480A26000128000250100000035 -S3154001BE40C206203880A06000028000250100000063 -S3154001BE5010800017C206203C832C2002F2024001CA -S3154001BE6080A660002280000BA004200192100019D8 -S3154001BE70F20640007FFFFF289010001880A6600060 -S3154001BE8012BFFFFC92100019D206204CA0042001DB -S3154001BE9080A4200E04BFFFF2832C20027FFFFF1EE9 -S3154001BEA09010001810BFFFD4D20621489FC0400011 -S3154001BEB090100018F20622E080A660000280000879 -S3154001BEC0010000007FFFFFB581E800007FFFFF1200 -S3154001BED09010001810BFFFDCC206203881C7E00869 -S3154001BEE081E800009DE3BF9880A620000280001DE6 -S3154001BEF003100142E406214880A4A00022800013D9 -S3154001BF00C206203CE204A004A2847FFF0C80000A02 -S3154001BF10832C600282004012A0006008C204000027 -S3154001BF209FC04000A0043FFCA2847FFF3CBFFFFDB1 -S3154001BF30C2040000E404800080A4A00032BFFFF3E5 -S3154001BF40E204A004C206203C80A0600002800007F3 -S3154001BF50010000009FC0400090100018308000038F -S3154001BF6010BFFFE5F00063F881C7E00881E80000F3 -S3154001BF701080000B86102000809240081680000831 -S3154001BF80861A400880924000168000048092000084 -S3154001BF901680000392200009902000089A924000E2 -S3154001BFA0128000059610000891D0200281C3E00856 -S3154001BFB09010000080A2C00D0A80009594100000E8 -S3154001BFC00302000080A2C0010A80002898100000E8 -S3154001BFD080A340011A80000D841020019B2B600430 -S3154001BFE010BFFFFC980320019A83400D1A80000779 -S3154001BFF08400A001832860049B3360019A034001B9 -S3154001C000108000078420A00180A3400B0ABFFFF7E0 -S3154001C01001000000028000020100000084A0A0018E -S3154001C02006800076010000009622C00D9410200182 -S3154001C0301080000A01000000952AA0010680000533 -S3154001C0409B3360019622C00D108000049402A0012A -S3154001C0509602C00D9422A00184A0A00116BFFFF74D -S3154001C0608092C000308000659B2B600480A3400B0A -S3154001C07008BFFFFE988320010280006598232001B6 -S3154001C0808092C000952AA0040680002F9B33600150 -S3154001C09096A2C00D068000179B33600196A2C00D83 -S3154001C0A00680000B9B33600196A2C00D06800005F9 -S3154001C0B09B33600196A2C00D108000509402A00FE0 -S3154001C0C09682C00D1080004D9402A00D9682C00D3F -S3154001C0D0068000059B33600196A2C00D1080004783 -S3154001C0E09402A00B9682C00D108000449402A009D0 -S3154001C0F09682C00D0680000B9B33600196A2C00D4F -S3154001C100068000059B33600196A2C00D1080003B5E -S3154001C1109402A0079682C00D108000389402A005B3 -S3154001C1209682C00D068000059B33600196A2C00D24 -S3154001C130108000329402A0039682C00D1080002F19 -S3154001C1409402A0019682C00D068000179B336001C0 -S3154001C15096A2C00D0680000B9B33600196A2C00DCE -S3154001C160068000059B33600196A2C00D1080002316 -S3154001C1709402BFFF9682C00D108000209402BFFD3D -S3154001C1809682C00D068000059B33600196A2C00DC4 -S3154001C1901080001A9402BFFB9682C00D10800017D2 -S3154001C1A09402BFF99682C00D0680000B9B33600155 -S3154001C1B096A2C00D068000059B33600196A2C00D74 -S3154001C1C01080000E9402BFF79682C00D1080000BBE -S3154001C1D09402BFF59682C00D068000059B3360012F -S3154001C1E096A2C00D108000059402BFF39682C00D41 -S3154001C1F0108000029402BFF198A3200116BFFFA24E -S3154001C2008092C000268000029422A0018090C00046 -S3154001C210268000029420000A81C3E0089010000A9B -S3154001C22019100144DA0321A480A36000128000069C -S3154001C23082034008031001449A1061B8DA2321A40D -S3154001C24082034008C22321A481C3E0089010000D57 -S3154001C250A7500000AE1000018334E00129100143CC -S3154001C260E805203CA92CC0148215000181E000009C -S3154001C2708190400001000000010000000100000023 -S3154001C280E03BA000E43BA008E83BA010EC3BA01833 -S3154001C290F03BA020F43BA028F83BA030FC3BA03863 -S3154001C2A081E800008210001781C4400081CC8000E3 -S3154001C2B0010000000100000001000000A75000003D -S3154001C2C0A92CE0012B100143EA05603CAB34C015B3 -S3154001C2D0AA154014819540000100000001000000AC -S3154001C2E00100000081E8000081E80000E01BA00099 -S3154001C2F0E41BA008E81BA010EC1BA018F01BA02013 -S3154001C300F41BA028F81BA030FC1BA03881E00000DC -S3154001C31081E0000081C4400081CC8000A75000002C -S3154001C32029100073ADC5208C010000002710014380 -S3154001C330A614E01CE024C000818C202001000000EE -S3154001C34001000000010000009DE3BFA09DE3BFA0E6 -S3154001C3509DE3BFA09DE3BFA09DE3BFA09DE3BFA01A -S3154001C3609DE3BFA081E8000081E8000081E800006C -S3154001C37081E8000081E8000081E8000081E80000D2 -S3154001C38027100143A614E01CC024C000E203A068A4 -S3154001C390A4046004E223A064E423A068108002623E -S3154001C3A0AC10000029100143A8152000C225200029 -S3154001C3B0C8252004E0252010E2252014E425201874 -S3154001C3C0E825201C81E800008348000082106F00A8 -S3154001C3D0818860200100000001000000010000008A -S3154001C3E009100143C801203C81E000008821200159 -S3154001C3F080A920FF02800003010000000100000027 -S3154001C40080A1000012BFFFF901000000091001439D -S3154001C410C801203C81E8000080A920FF028000037A -S3154001C42001000000010000008821200180A10000D8 -S3154001C43012BFFFF90100000081E00000291001430D -S3154001C440A8152000C8052004C2052000E0052010DB -S3154001C450E2052014E4052018C025201C818C20000B -S3154001C46001000000010000000100000081C48000BD -S3154001C47081CCA004A0142F00818C00000100000093 -S3154001C480010000000100000081C4800081CCA004AD -S3154001C49080A6600212800005A8142F00818D00003D -S3154001C4A0B01420203080001F80A660031280000651 -S3154001C4B0A80E2F00AA2C2F00A8154014818D00002C -S3154001C4C03080001880A6600412800008A948000048 -S3154001C4D0A8152040818D00000100000001000000E8 -S3154001C4E0010000003080000F80A660051280000820 -S3154001C4F0A9480000A82D2040818D000001000000C0 -S3154001C50001000000010000003080000680A66006A0 -S3154001C510128000030100000030BFFFA391D020002C -S3154001C52081C4800081CCA0049210200381C3E0081D -S3154001C53091D020029210200281C3E00891D02002BE -S3154001C5409210200681C3E00891D0200281C3E00801 -S3154001C5500100000081C3E0080100000081C3E0083A -S3154001C56001000000AE25A010A75000002D1000715B -S3154001C570AC15A1782910007381C522340100000051 -S3154001C5801110014390122028D2020000920260014C -S3154001C590D2220000932DE008902C2F009212000920 -S3154001C5A01110014390122020D002000080A0000803 -S3154001C5B02280000292126F00818A602001000000F1 -S3154001C5C001000000010000009010001740000031FA -S3154001C5D09203A06092142F00818A6020010000001E -S3154001C5E001000000010000001110014390122028B3 -S3154001C5F0D202000092226001D22200001080022D58 -S3154001C600AC1000001B1001449A136030912A20029D -S3154001C610C2034008C222600C81C3E008D22340080D -S3154001C6209DE3BF980310014482106030992E600249 -S3154001C6301B100143972E6004D800400C9A136230B8 -S3154001C640901000199202C00D80A6601F1480000F41 -S3154001C650821020001080000680A320002280000A5C -S3154001C660C2024000D803200C80A3200012BFFFFC69 -S3154001C67080A300097FFFFFE4F02240001080000301 -S3154001C68082102000F022400081C7E00891E80001B5 -S3154001C6909DE3BF981B1001438213602CD8006004B0 -S3154001C6A080A3001802800044C203602C80A62000AB -S3154001C6B022800002B010000C03100144A32E200278 -S3154001C6C082106030E000401180A420000280003DCD -S3154001C6D00310014310800012A41061ACD20420085B -S3154001C6E0941000199FC300009010001803100143D5 -S3154001C6F0C20061A480A060001280002B01000000EE -S3154001C700C204801182007FFFC2248011E004200C04 -S3154001C71080A420000280002B01000000D804000004 -S3154001C72080A3200022BFFFFBE004200C031001433D -S3154001C730DA00622C80A36000128000089610001275 -S3154001C74003100143821061ACDA00401180A36000FE -S3154001C75032BFFFF0E004200CDA02C011031001439E -S3154001C7609A036001C20061A880A0600002BFFFDC9D -S3154001C770DA22C0119FC0400001000000D804000029 -S3154001C780D2042008941000199FC30000901000188D -S3154001C79003100143C20061A480A0600022BFFFDAFA -S3154001C7A0C20480119FC040000100000010BFFFD6A7 -S3154001C7B0C2048011DA0060C010BFFFBDB00B601F1C -S3154001C7C081C7E00881E800008C10000FA7480000EF -S3154001C7D08B34E0188A09600F80A160030280000C47 -S3154001C7E00B1001438A116034092000008811207022 -S3154001C7F0C82140000B1001438A11605009200000F6 -S3154001C80088112040C8214000108000399010200135 -S3154001C81092102006400001DD0100000080A00008C2 -S3154001C8200280003301000000C2022010113FFC00CB -S3154001C83082084008110003FC841040089010000251 -S3154001C840921020019410200C400001E601000000E6 -S3154001C85080A000080280002601000000400001F689 -S3154001C860921000010B1001438A116034D22140001D -S3154001C870901000029210200194102011400001D91D -S3154001C8800100000080A0000802800019010000009C -S3154001C890400001E992100001920260100B10014321 -S3154001C8A08A116050D221400090100002921020015E -S3154001C8B09410200D400001CB0100000080A000082B -S3154001C8C00280000B01000000400001DB92100001D4 -S3154001C8D00B1001438A11602CD2214000D402601012 -S3154001C8E09532A010940AA00FD42160049E10000630 -S3154001C8F081C3E00801000000031001438210604833 -S3154001C9008210200191D0200081C3E008010000007F -S3154001C9109DE3BF9803100144C20060CC90100018FB -S3154001C9209210001980A0600002800005B01020001E -S3154001C9309FC0400001000000B010000881C7E00818 -S3154001C94081E800009DE3BF9803100144C20060C81E -S3154001C9509010001880A0600002800005B0102000F1 -S3154001C9609FC0400001000000B010000881C7E008E8 -S3154001C97081E800009DE3BF9803100144C20060C0F6 -S3154001C9809010001880A0600002800005B0102000C1 -S3154001C9909FC0400001000000B010000881C7E008B8 -S3154001C9A081E800009DE3BF9803100144C20060C4C2 -S3154001C9B09010001880A0600002800005B010200091 -S3154001C9C09FC0400001000000B010000881C7E00888 -S3154001C9D081E800009DE3BF9803100144C20060BC9A -S3154001C9E09010001880A0600002800005B010200061 -S3154001C9F09FC0400001000000B010000881C7E00858 -S3154001CA0081E800009DE3BF9803100144C20060B86D -S3154001CA109010001880A0600002800005B010200030 -S3154001CA209FC0400001000000B010000881C7E00827 -S3154001CA3081E800009DE3BF9803100144C20060B441 -S3154001CA409010001880A0600002800005B010200000 -S3154001CA509FC0400001000000B010000881C7E008F7 -S3154001CA6081E800009DE3BF9803100144C20060B015 -S3154001CA70901000189210001980A0600002800005F5 -S3154001CA80B01020009FC0400001000000B010000817 +S31540013B60010000000100000001000000010000000A +S31540013B7001000000010000000100000001000000FA +S31540013B8001000000010000000100000001000000EA +S31540013B9001000000010000000100000001000000DA +S31540013BA00000000080A5C00012BFFFE6AA0560081C +S31540013BB0C12D0000E60500002B03C000A614C01568 +S31540013BC0E6250000C10D000081C4400081CC800083 +S31540013BD00100000081C4800081CCA00401000000E6 +S31540013BE00100000081C3E008915800000100000077 +S31540013BF011100080901220F8C10A0000C022000076 +S31540013C00C10A0000C12A0000D4020000130003804B +S31540013C10942A800980A0000A3280004D901020032A +S31540013C201303E000D223BFA0C023BFA4C10BBFA092 +S31540013C30C023BFA0151000809412A0E8C1028000E5 +S31540013C400100000001000000C10BBFA0C10BBFA4D1 +S31540013C5083A00520C12BBFA0D003BFA0808A22002C +S31540013C602280003B90102004901020001510008007 +S31540013C709412A108C5028000C902A008D102A00C75 +S31540013C8013100080921260E8C70240008DA089445B +S31540013C9081A98AC8010000000380000501000000D7 +S31540013CA0901020011080002A01000000C50280000A +S31540013CB0C902A008D102A00C13100080921260E83C +S31540013CC0CB0240008DA0894481A98AC80100000029 +S31540013CD00380000501000000901020011080001CA7 +S31540013CE00100000025100080A414A0F0C11C800032 +S31540013CF0C51C800080A000003280000685A008C057 +S31540013D0081A80AC2010000001380000301000000DF +S31540013D10901020050100000025100080A414A0F099 +S31540013D20C11C8000C51C800080A00000010000006D +S31540013D303280000685A008C081A80AC201000000A1 +S31540013D4013800003010000009010200701000000CD +S31540013D5081C3E00801000000901020019544000055 +S31540013D609532A01E940AA00380A2800002800040E2 +S31540013D709010200080A2A0021680003D1310008002 +S31540013D8092126198C11A4000C51A6008FD02601876 +S31540013D9095A0003E99A0003E9DA0003E170000C0A0 +S31540013DA09612E078A182C0000100000001000000E7 +S31540013DB001000000010000000100000001000000B8 +S31540013DC081A0002083A0002195A0002A99A0002C63 +S31540013DD09DA0002E170000C09612E07CA182C00073 +S31540013DE00100000001000000010000000100000088 +S31540013DF0010000000100000085A0002287A00023E9 +S31540013E00A180000001000000010000000100000047 +S31540013E1001000000010000000100000089A00842E5 +S31540013E20A9A2883ED93A4000DD224000CD1A601051 +S31540013E30D102600881A90A46010000000380000CF6 +S31540013E4081AD0A2801000000038000099344000067 +S31540013E509332601B920A60079010200080A2A00155 +S31540013E6002800003902260079022600481C3E0082B +S31540013E7001000000C12BBFA081C3E008D003BFA051 +S31540013E80D023BFA081C3E008C10BBFA00100000041 +S31540013E909DE3BF6040001B94B0102000833A200A86 +S31540013EA08208600380A060010280000401000000D6 +S31540013EB081C7E00881E800007FFFB4D89010200D4B +S31540013EC0050C40290723CD1B8410A0068610E09BD4 +S31540013ED0C027BFF0C027BFF4C43FBFF8C027BFD03B +S31540013EE0C027BFD4C027BFC87FFFFF3FC027BFCC75 +S31540013EF0820A300082106080840060040728040032 +S31540013F008610E00F0910004EC6204000881122C0DD +S31540013F10071000008821000289392002861100031A +S31540013F20C62060042510008003278400821060109B +S31540013F307FFFFED0C220A0047FFFFFD21103E00025 +S31540013F4090102000C024A1687FFFFDD00100000031 +S31540013F50809200091280000601000000C204A16897 +S31540013F6080A0600002800004010000007FFFB4B21F +S31540013F709010200B7FFFFDC590103FFA03300600DD +S31540013F8080A2000102800CF880A260007FFFB4AAE3 +S31540013F909010200B7FFFFDBD9010201403100D00E3 +S31540013FA080A200010280113680A260007FFFB4A288 +S31540013FB09010200B7FFFFDB5901020620310162054 +S31540013FC080A200010280112780A260007FFFB49A7F +S31540013FD09010200B7FFFFDB590102005031028009F +S31540013FE080A2000112800CB501000000C204A16844 +S31540013FF080A0600012800CB1010000007FFFFFA18C +S315400140001103C000111C00007FFFFDB0921020007B +S31540014010031FFFFF821063FF80A200011280000B85 +S3154001402001000000C404A168030000708210601FF3 +S3154001403084088001030000108210601080A0800176 +S3154001404002800005113C00007FFFB47B9010200CDC +S31540014050113C00007FFFFD9D9210200003200000CF +S3154001406080A200011280000B01000000C404A16877 +S31540014070030000708210601F840880010300001055 +S315400140808210601080A080010280000401000000BF +S315400140907FFFB4699010200CC024A16890102000C5 +S315400140A07FFFFD8A9210200080A220001280000628 +S315400140B003100080C200616880A060000280000594 +S315400140C0110144007FFFB45C9010200C11014400A3 +S315400140D013284000901223027FFFFD7C921260015B +S315400140E080A220001280000601000000C204A168DF +S315400140F080A06000228000051111FFFF7FFFB44EB2 +S315400141009010200C1111FFFF7FFFFD78901223FFC5 +S315400141100300007F821063FF80A2000112800C63BE +S3154001412001000000C204A16880A0600012800C5FFB +S3154001413001000000271000807FFFFD64D01CE1E0F4 +S31540014140031FFFFF821063FF80A200011280000B54 +S3154001415001000000C404A168030000708210601FC2 +S3154001416084088001030000108210601080A0800145 +S3154001417002800005351000807FFFB42F9010200C7F +S3154001418035100080D01EA1D0C024A1687FFFFD4F0D +S31540014190010000000320000080A200011280000BF4 +S315400141A003100080C4006168030000708210601F24 +S315400141B084088001030000108210601080A08001F5 +S315400141C0028000052B1000807FFFB41B9010200C4D +S315400141D02B100080D01D61F0C024A1687FFFFD3BFC +S315400141E001000000031FFFFF821063FF80A2000150 +S315400141F01280000B03100080C40061680300007048 +S315400142008210601F84088001030000108210601034 +S3154001421080A08001028000052F1000807FFFB40638 +S315400142209010200C2F100080D01DE1B8C024A16849 +S315400142307FFFFD2601000000C204A1688330600EA5 +S315400142408208600380A06002028000040100000031 +S315400142507FFFB3F99010200C7FFFFF0A1103C000C6 +S3154001426011115804C024A1687FFFFD289012223401 +S3154001427003102B008210624680A200010280107159 +S31540014280032000007FFFB3EC9010200D113C02AFDC +S315400142907FFFFD1E901220D1033180558210639A13 +S315400142A080A200010280105F030800007FFFB3E295 +S315400142B09010200D1111FC007FFFFD1C9210200073 +S315400142C0031FE00080A200011280000B01000000E4 +S315400142D0C404A168030000708210601F8408800135 +S315400142E0030000108210600880A080010280000453 +S315400142F0010000007FFFB3D09010200DC024A168BB +S3154001430011207C01130001007FFFFD08901220302F +S315400143100320000080A200011280000B03100080E0 +S31540014320C4006168030000708210601F8408800128 +S31540014330030000108210600480A080010280000406 +S31540014340010000007FFFB3BC9010200DC024A1687E +S31540014350901020007FFFFCF59210200080A22000E3 +S315400143601280000603100080C200616880A06000D0 +S3154001437002800004010000007FFFB3AF9010200DC2 +S315400143807FFFFCEAD01CE1E003100080C20061E837 +S3154001439080A2000112800BC101000000C204A16885 +S315400143A080A0600012800BBD010000003710008024 +S315400143B07FFFFCDED01EE1D8031FE00080A2000192 +S315400143C012800BB301000000C204A16880A0600006 +S315400143D012800BAF010000007FFFFCD4D01D61F0BD +S315400143E003100080C200620080A200011280000B0F +S315400143F001000000C404A168030000708210601F20 +S3154001440084088001030000108210601080A08001A2 +S3154001441002800005D01DE1B87FFFB3879010200DC3 +S31540014420D01DE1B8C024A1687FFFFCC00100000097 +S31540014430C204A1688330600E8208600380A06002D6 +S3154001444002800004010000007FFFB37B9010200D25 +S315400144507FFFFE8C1103E0002108C6AFC024A1688E +S31540014460901420DE7FFFFCB9A01420DE80A200104C +S3154001447012800B8303100080C200616880A0600037 +S3154001448012800B7F010000002108C6AF901420DE88 +S315400144907FFFFCBEA01420DE80A2001012800B74A8 +S315400144A001000000C204A16880A0600012800B7068 +S315400144B0010000001128C6AF7FFFFCB4901220DE38 +S315400144C00308C6AF821060DE80A2000112800B6431 +S315400144D001000000C204A16880A0600012800B6048 +S315400144E0010000001108C6AF7FFFFCA0901220DE3C +S315400144F00328C6AF821060DE80A2000112800B54F1 +S3154001450001000000C204A16880A0600012800B5027 +S31540014510010000001128C6AF7FFFFC94901220DEF7 +S315400145200308C6AF821060DE80A2000112800B45EF +S3154001453001000000C204A16880A0600012800B4106 +S31540014540010000007FFFFE4F1103E00011151BC063 +S315400145501310C821901221039212614115351BC0D7 +S315400145601710C8219412A1037FFFFC909612E141D6 +S3154001457080A2200212800B2B01000000C204A16818 +S3154001458080A0600012800B270100000011351BC07E +S315400145901310C821901221039212614115151BC0B7 +S315400145A01710C8219412A1037FFFFC809612E141A6 +S315400145B080A2200112800B1F01000000C204A168E5 +S315400145C080A0600012800B1B0100000090102000AB +S315400145D092102000152000007FFFFC7496102000E9 +S315400145E080A220001280000601000000C204A168DA +S315400145F080A0600002800005D01EE1D87FFFB30E87 +S315400146009010200FD01EE1D87FFFFC68D41EA1D0A8 +S3154001461080A2200212800AFF01000000C204A168A4 +S3154001462080A0600012800AFB0100000011151BC02A +S315400146301310C821901221039212614115151BE8EE +S315400146401710C8219412A1037FFFFC589612E1412D +S3154001465080A2200112800AEB01000000C204A16879 +S3154001466080A0600012800AE70100000011151BE8D6 +S315400146701310C821901221039212614115151BC0D6 +S315400146801710C8219412A1037FFFFC489612E141FD +S3154001469080A2200212800AD701000000C204A1684C +S315400146A080A0600012800AD301000000D41CE1E022 +S315400146B011151BE81310C821901221037FFFFC3B03 +S315400146C09212614180A2200312800AC601000000B5 +S315400146D0C204A16880A0600012800AC201000000E5 +S315400146E0D41D61F011151BE81310C8219012210346 +S315400146F07FFFFC2E9212614180A220031280000BA3 +S3154001470001000000C404A168030000708210601F0C +S3154001471084088001030000108210601080A080018F +S3154001472002800005D41DE1B87FFFB2C39010200F6F +S31540014730D41DE1B8C024A16811151BE81310C82186 +S31540014740901221037FFFFC199212614180A220023F +S3154001475012800AA003100080C200616880A0600038 +S3154001476012800A9C01000000D01DE1B815151BE816 +S315400147701710C8219412A1037FFFFC0C9612E14148 +S3154001478080A2200112800A8B01000000C204A168A8 +S3154001479080A0600012800A8701000000D01CE1E081 +S315400147A015151BE81710C8219412A1037FFFFBFFC3 +S315400147B09612E14180A2200312800A820100000084 +S315400147C0C204A16880A0600012800A7E0100000038 +S315400147D0D01D61F015151BE81710C8219412A103CD +S315400147E07FFFFBF29612E14180A220031280000B6B +S315400147F001000000C404A168030000708210601F1C +S3154001480084088001030000108210601080A080019E +S3154001481002800004010000007FFFB2879010200F44 +S31540014820C024A16811151BC01310C8219012210381 +S315400148309212614115351BC01710C8219412A1036C +S315400148407FFFFBED9612E14180A2200212800A55BC +S3154001485003100080C200616880A0600012800A5186 +S315400148600100000011351BC01310C821901221030D +S315400148709212614115151BC01710C8219412A1034C +S315400148807FFFFBDD9612E14180A2200112800A41A1 +S3154001489001000000C204A16880A0600012800A3DA8 +S315400148A00100000090102000921020001520000009 +S315400148B07FFFFBD19610200080A2200012800006C7 +S315400148C001000000C204A16880A0600002800005CA +S315400148D0D01EE1D87FFFB2589010200FD01EE1D8EC +S315400148E07FFFFBC5D41EA1D080A2200212800A25DB +S315400148F001000000C204A16880A0600012800A2164 +S315400149000100000011151BC01310C821901221038C +S315400149109212614115151BE81710C8219412A10383 +S315400149207FFFFBB59612E14180A2200112800A1158 +S3154001493001000000C204A16880A0600012800A0D37 +S315400149400100000011151BE81310C8219012210324 +S315400149509212614115151BC01710C8219412A1036B +S315400149607FFFFBA59612E14180A22002128009FD3C +S3154001497001000000C204A16880A06000128009F90C +S3154001498001000000D41CE1E011151BE81310C821F9 +S31540014990901221037FFFFB989212614180A220036E +S315400149A01280000B01000000C404A16803000070DE +S315400149B08210601F8408800103000010821060107D +S315400149C080A0800102800005D41D61F07FFFB21AEC +S315400149D09010200FD41D61F011151BE81310C8214A +S315400149E0901221037FFFFB849212614180A2200332 +S315400149F01280000B01000000C404A168030000708E +S31540014A008210601F8408800103000010821060102C +S31540014A1080A0800102800005D41DE1B87FFFB20667 +S31540014A209010200FD41DE1B8C024A16811151BE8D0 +S31540014A301310C821901221037FFFFB6F921261412F +S31540014A4080A22002128009BF03100080C200616863 +S31540014A5080A06000128009BB01000000D01DE1B8B2 +S31540014A6015151BE81710C8219412A1037FFFFB629D +S31540014A709612E14180A22001128009B60100000090 +S31540014A80C204A16880A06000128009B20100000042 +S31540014A90D01CE1E015151BE81710C8219412A1039B +S31540014AA07FFFFB559612E14180A220031280000B45 +S31540014AB001000000C404A168030000708210601F59 +S31540014AC084088001030000108210601080A08001DC +S31540014AD002800005D01D61F07FFFB1D79010200FF5 +S31540014AE0D01D61F015151BE81710C8219412A103BA +S31540014AF07FFFFB419612E14180A220031280000B09 +S31540014B0001000000C404A168030000708210601F08 +S31540014B1084088001030000108210601080A080018B +S31540014B2002800004010000007FFFB1C39010200FF6 +S31540014B30C024A168110048EA13048D15901223CDB3 +S31540014B407FFFFB3E9212627880A220011280097992 +S31540014B5003100080C200616880A060001280097560 +S31540014B6001000000110048EA13048D15901223CD6F +S31540014B707FFFFB439212627880A220011280096A6C +S31540014B8001000000C204A16880A06000128009668D +S31540014B9001000000C024A1687FFFFCBA1103C000D8 +S31540014BA023100124A807BFF8BA07BFD090100014FC +S31540014BB09210001D7FFFFA6C94146158C20461582B +S31540014BC0C407BFF880A0800102800E0CA014615872 +S31540014BD07FFFB199901020102D1000809010001485 +S31540014BE09215A1C87FFFFA6094146158C4046158B4 +S31540014BF0C205A1C880A0800122800DF6C40420040C +S31540014C007FFFB18D90102010901000149214E1E0B6 +S31540014C107FFFFA5594146158C4046158C204E1E017 +S31540014C2080A0800102800DE1B214E1E07FFFB182F4 +S31540014C309010201090100014921561F07FFFFA4AEF +S31540014C4094146158C404A168030000708210601F67 +S31540014C5084088001030000108210601080A080014A +S31540014C6002800004010000007FFFB1739010201004 +S31540014C70C024A1687FFFFC8390102000901000148F +S31540014C80921561F07FFFFA3894146158391000800B +S31540014C90C4046158C20721F880A0800122800DBD5D +S31540014CA0C40420047FFFB164901020107FFFFC757F +S31540014CB01103C000901000149215E1B87FFFFA2A43 +S31540014CC094146158C204A1688330600E820860035F +S31540014CD080A0600202800004010000007FFFB156FF +S31540014CE090102010C024A1689010001D921000144D +S31540014CF07FFFFA1D94146158C4046158C207BFF876 +S31540014D0080A0800122800D9AC40420047FFFB14A0D +S31540014D10901020109010001D9215A1C87FFFFA1225 +S31540014D2094146158C4046158C205A1C880A0800189 +S31540014D3022800D84C40420047FFFB13F90102010CF +S31540014D409010001D9214E1E07FFFFA079414615818 +S31540014D50C4046158C204E1E080A0800122800D7044 +S31540014D60C40420047FFFB134901020109010001D20 +S31540014D70921561F07FFFF9FC94146158C404A1684F +S31540014D80030000708210601F840880010300001038 +S31540014D908210601080A080010280000401000000A2 +S31540014DA07FFFB125901020107FFFFC369010200028 +S31540014DB09010001D921561F07FFFF9EB9414615834 +S31540014DC0C4046158C20721F880A0800122800D4D9C +S31540014DD0C40420047FFFB118901020107FFFFC29E6 +S31540014DE01103C0009010001D9215E1B87FFFF9DE56 +S31540014DF094146158C204A1688330600E820860032E +S31540014E0080A0600202800004010000007FFFB10A19 +S31540014E1090102010C024A1689015A1C892100014CA +S31540014E207FFFF9D194146158C4046158C205A1C8E1 +S31540014E3080A0800122800D28C40420047FFFB0FE9B +S31540014E40901020109015A1C89210001D7FFFF9C641 +S31540014E5094146158C4046158C205A1C880A0800158 +S31540014E6022800D12C40420047FFFB0F3901020105D +S31540014E709016E1D8941461587FFFF9BB921000084F +S31540014E80C4046158C206E1D880A0800122800CFC8E +S31540014E90C40420047FFFB0E8901020109016A1D0E2 +S31540014EA0941461587FFFF9B092100008C404615808 +S31540014EB0C206A1D080A0800122800CE6C404200451 +S31540014EC07FFFB0DD901020109016A1D09216E1D848 +S31540014ED07FFFF9A594146158C404A16803000070CA +S31540014EE08210601F84088001030000108210601048 +S31540014EF080A0800102800004010000007FFFB0CE47 +S31540014F00901020107FFFFBDF901020009016A1D05B +S31540014F109216E1D87FFFF99494146158C4046158FC +S31540014F20C20721F880A0800122800CC3C40420045A +S31540014F307FFFB0C1901020107FFFFBD21103C0004C +S31540014F409016E1D8C024A1689216A1D07FFFF986B8 +S31540014F5094146158C4046158C20721F880A08001A5 +S31540014F6022800CA4C40420047FFFB0B3901020100B +S31540014F709015A1C89215E1B87FFFF97B9414615849 +S31540014F80C204A1688330600E8208600380A060027B +S31540014F9002800004010000007FFFB0A7901020109E +S31540014FA0C024A1689014E1E0921000147FFFF96ECD +S31540014FB094146158C4046158C204E1E080A08001A0 +S31540014FC022800C83C40420047FFFB09B90102010E4 +S31540014FD09014E1E09210001D7FFFF963941461582B +S31540014FE0C4046158C204E1E080A0800122800C6FB4 +S31540014FF0C40420047FFFB090901020109014E1E08B +S315400150009215A1C87FFFF95894146158C404615898 +S31540015010C204E1E080A0800122800C5BC40420042C +S315400150207FFFB085901020109014E1E094146158F0 +S315400150307FFFF94D92100008C4046158C204E1E0B3 +S3154001504080A0800122800C47C40420047FFFB07AEF +S31540015050901020109014E1E0921561F07FFFF94223 +S3154001506094146158C404A168030000708210601F43 +S3154001507084088001030000108210601080A0800126 +S3154001508002800004010000007FFFB06B90102010E9 +S31540015090C024A168901561F0921000147FFFF93287 +S315400150A094146158C404A168030000708210601F03 +S315400150B084088001030000108210601080A08001E6 +S315400150C002800004010000007FFFB05B90102010B9 +S315400150D0C024A168901561F09210001D7FFFF9224E +S315400150E094146158C404A168030000708210601FC3 +S315400150F084088001030000108210601080A08001A6 +S3154001510002800004010000007FFFB04B9010201088 +S31540015110C024A168901561F09215A1C87FFFF912CC +S3154001512094146158C404A168030000708210601F82 +S3154001513084088001030000108210601080A0800165 +S3154001514002800004010000007FFFB03B9010201058 +S31540015150C024A168901561F09214E1E07FFFF90245 +S3154001516094146158C404A168030000708210601F42 +S3154001517084088001030000108210601080A0800125 +S3154001518002800005901561F07FFFB02B9010201032 +S31540015190901561F0C024A168941461587FFFF8F21C +S315400151A092100008C404A168030000708210601FB9 +S315400151B084088001030000108210601080A08001E5 +S315400151C002800004010000007FFFB01B90102010F8 +S315400151D0C024A168901561F09215E1B87FFFF8E20D +S315400151E094146158C204A1688330600E820860033A +S315400151F080A0600202800004010000007FFFB00E23 +S31540015200901020107FFFFB1F1103C0000310008088 +S31540015210C024A1688210633010800009B0102000BC +S315400152207FFFB00590102010C207BFC4B006200111 +S3154001523080A6200D0280002282006018852E200360 +S31540015240912E200590220002051000808410A32093 +S31540015250C227BFC490008008932E20011510012457 +S31540015260920240189412A15892026001932A600357 +S315400152707FFFF8BD92008009C207BFC4C600400047 +S31540015280C404000080A0C00232BFFFE6C227BFC4EB +S31540015290C60060040910012488112158C401200464 +S315400152A080A0C00232BFFFDFC227BFC4B0062001C3 +S315400152B080A6200D12BFFFE282006018C204A168D9 +S315400152C080A0600012800BA3010000001110008134 +S315400152D094146158901220587FFFF8A39202200837 +S315400152E00310008082106320C4006148C2046158E3 +S315400152F080A0800102800B86071000807FFFAFCE21 +S315400153009010201011100081941461589012207051 +S315400153107FFFF8959202200809100080C204615867 +S3154001532088112320C401216080A0800122800B695D +S31540015330C40121647FFFAFC090102010111000817D +S3154001534094146158901220887FFFF88792022008B2 +S315400153500310008082106320C4006178C204615842 +S3154001536080A0800102800B4B071000807FFFAFB207 +S3154001537090102010C024A168111000009210200046 +S31540015380150FFC007FFFF94F96102000030FFC001C +S3154001539080A2000102800B3880A260007FFFAFA689 +S315400153A0901020101110000092102000152FFC00C3 +S315400153B07FFFF944961020000310020080A20001ED +S315400153C002800B2680A260007FFFAF9B90102010C9 +S315400153D01130000092102000150FFC007FFFF939B3 +S315400153E0961020000330020080A2000102800B14B7 +S315400153F080A260007FFFAF90901020101130000016 +S3154001540092102000152FFC007FFFF92E96102000E8 +S31540015410032FFC0080A2000102800B0280A26000E3 +S315400154207FFFAF8590102010111000007FFFF92FEC +S31540015430130FE0000310100080A20001128007B68E +S3154001544001000000C204A16880A06000128007B27A +S3154001545001000000111000007FFFF92E130FE0003C +S31540015460030FE00080A20001128007A7010000009F +S31540015470C204A16880A06000128007A30100000059 +S3154001548009100080C024A16890100014941461583A +S315400154907FFFF848921121C0C4046158C206A1D0C9 +S315400154A080A0800122800ACFC40420047FFFAF621E +S315400154B090102011C024A168901000149216E1D8D2 +S315400154C07FFFF83C94146158C4046158C207BFC8B1 +S315400154D080A0800122800ABAC40420047FFFAF560F +S315400154E090102011901000149214E1E07FFFF831E2 +S315400154F094146158C4046158C204E1E080A080015B +S3154001550022800AA6C40420047FFFAF4B90102011CD +S3154001551090100014921561F07FFFF826941461589B +S31540015520C4046158C20721F880A0800122800A8AFA +S31540015530C40420047FFFAF40901020119010001446 +S315400155409215E1B87FFFF81B94146158030000706F +S31540015550C404A168840880010300002080A0800162 +S3154001556002800004010000007FFFAF33901020113C +S31540015570C024A1689010001D921000147FFFF80D01 +S3154001558094146158C4046158C207BFD080A08001F9 +S3154001559022800A68C40420047FFFAF27901020119F +S315400155A0031000809207BFC8901061C07FFFF801C9 +S315400155B094146158C4046158C20721F880A080013F +S315400155C022800A4CC40420047FFFAF1B9010201197 +S315400155D009100080C024A168901121C09216E1D81B +S315400155E07FFFF7F494146158C40461580710008092 +S315400155F0C200E1C080A0800122800A34C404200494 +S315400156007FFFAF0D901020119010001D9214E1E024 +S315400156107FFFF7E894146158C4046158C204E1E07D +S3154001562080A0800122800A20C40420047FFFAF02AB +S31540015630901020079010001D921561F07FFFF7DD55 +S3154001564094146158C404A168030000708210601F5D +S3154001565084088001030000108210601080A0800140 +S3154001566002800004010000007FFFAEF3901020117C +S31540015670C024A1689010001D9215E1B87FFFF7CDB7 +S315400156809414615803000070C404A1688408800121 +S315400156900300002080A08001028000040100000078 +S315400156A07FFFAEE590102011C024A1689016A1D0CD +S315400156B0921000147FFFF7BF94146158C4046158D7 +S315400156C0C206A1D080A08001228009ECC404200436 +S315400156D07FFFAED990102011091000809016A1D0FD +S315400156E0921121C07FFFF7B394146158C4046158E5 +S315400156F0C206E1D880A08001228009D5C4042004D5 +S315400157007FFFAECD901020119015A1C89414615819 +S315400157107FFFF7A892100008C4046158C20721F818 +S3154001572080A08001228009BAC40420047FFFAEC252 +S3154001573090102011C024A1689015A1C89214E1E0EF +S315400157407FFFF79C94146158C4046158C204E1E098 +S3154001575080A08001228009A5C40420047FFFAEB643 +S31540015760901020119015A1C8921561F07FFFF79115 +S3154001577094146158C4046158C20721F880A080017D +S315400157802280098AC40420047FFFAEAB9010201109 +S31540015790C024A1689015A1C89215E1B87FFFF7858D +S315400157A09414615803000070C404A1688408800100 +S315400157B00300002080A08001028000040100000057 +S315400157C07FFFAE9D90102011C024A1689014E1E0A6 +S315400157D0921000147FFFF77794146158C4046158FE +S315400157E0C204E1E080A0800122800967C40420044C +S315400157F07FFFAE91901020119014E1E09210001DB0 +S315400158007FFFF76C94146158C4046158C204E1E007 +S3154001581080A0800122800953C40420047FFFAE8604 +S31540015820901020119014E1E09215A1C87FFFF76115 +S3154001583094146158C4046158C204E1E080A0800117 +S315400158402280093FC40420047FFFAE7B90102011C3 +S315400158509014E1E0941461587FFFF75692100008C6 +S31540015860C4046158C204E1E080A080012280092B72 +S31540015870C40420047FFFAE70901020119014E1E023 +S31540015880921561F07FFFF74B94146158C404615837 +S31540015890C20721F880A080012280090FC404200498 +S315400158A07FFFAE65901020119014E1E09215E1B8AA +S315400158B07FFFF7409414615803000070C404A16847 +S315400158C0840880010300002080A080010280000539 +S315400158D0901561F07FFFAE5890102011901561F040 +S315400158E0921000147FFFF73394146158C404A168E1 +S315400158F0030000708210601F8408800103000010BD +S315400159008210601080A08001028000040100000026 +S315400159107FFFAE4990102011C024A168901561F017 +S315400159209210001D7FFFF72394146158C404A168A7 +S31540015930030000708210601F84088001030000107C +S315400159408210601080A080010280000401000000E6 +S315400159507FFFAE3990102011C024A168901561F0E7 +S315400159609215A1C87FFFF71394146158C404A16826 +S31540015970030000708210601F84088001030000103C +S315400159808210601080A080010280000401000000A6 +S315400159907FFFAE2990102011C024A168901561F0B7 +S315400159A09214E1E07FFFF70394146158C404A1689F +S315400159B0030000708210601F8408800103000010FC +S315400159C08210601080A0800102800005901561F070 +S315400159D07FFFAE1990102011901561F0C024A16887 +S315400159E0941461587FFFF6F392100008C404A1682D +S315400159F0030000708210601F8408800103000010BC +S31540015A008210601080A08001028000040100000025 +S31540015A107FFFAE0990102011C024A168901561F056 +S31540015A209215E1B87FFFF6E39414615803000070C4 +S31540015A30C404A168840880010300002080A080017D +S31540015A4002800005051FC0007FFFADFB90102011AD +S31540015A50051FC0000700C0008410A1028610E0B0F7 +S31540015A60C024A168B007BFE0C43FBFE805203E831C +S31540015A70070021C88410A3FF8610E3A19007BFE861 +S31540015A8092100018C43FBFE07FFFF6CA9407BFD803 +S31540015A90C407BFD8033FFC0080A080010280088074 +S31540015AA0C207BFDC7FFFADE4901020110500400026 +S31540015AB00700C0008410A1028610E0B0C024A1688E +S31540015AC09007BFE8C43FBFE805108683070021C899 +S31540015AD08410A3FF8610E3A1921000189407BFD843 +S31540015AE07FFFF6B4C43FBFE0C207BFDCC407BFD8DF +S31540015AF0809080011280000B03100080C400616811 +S31540015B00030000708210601F8408800103000010AA +S31540015B108210600480A0800102800005050006AF66 +S31540015B207FFFADC590102011050006AF86102010ED +S31540015B30C024A1689007BFE8C43FBFE8050FFC0039 +S31540015B40070281D88410A0408610E10C92100018FB +S31540015B509407BFD87FFFF697C43FBFE0C407BFD8BD +S31540015B60030006AE8210639580A080010280084240 +S31540015B70C407BFDC7FFFADB090102011050006AF12 +S31540015B8086102010C024A1689007BFE8C43FBFE833 +S31540015B90050FFFFF070281D88410A3408610E10C50 +S31540015BA0921000189407BFD87FFFF682C43FBFE02A +S31540015BB0C207BFDCC407BFD8809080011280000BAA +S31540015BC003100080C4006168030000708210601FEA +S31540015BD084088001030000108210600480A08001C7 +S31540015BE002800004010000007FFFAD939010201158 +S31540015BF0C024A168111088007FFFF75A13100100D5 +S31540015C00031066C9821062CA80A20001128005BAD9 +S31540015C1003100080C200616880A06000128005B652 +S31540015C20010000001111BBFE130C70407FFFF74DC0 +S31540015C30901223FF031527CA8210611E80A200011C +S31540015C40128005A901000000C204A16880A060007D +S31540015C50128005A501000000111E607E1310C7FFCA +S31540015C607FFFF740921263FC031D73FC8210633879 +S31540015C7080A200011280059801000000C204A168BB +S31540015C8080A06000128005940100000011002000F0 +S31540015C90130FE0007FFFF7339212600180A22000CC +S31540015CA01280000B01000000C404A16803000070CB +S31540015CB08210601F84088001030000108210600476 +S31540015CC080A0800102800005110FE0007FFFAD5AE0 +S31540015CD090102011110FE000C024A1687FFFF72129 +S31540015CE092100008030FE00080A2000112800576A1 +S31540015CF003100080C200616880A0600012800572B6 +S31540015D000100000011002000130FE0007FFFF7158E +S31540015D109212600180A220001280000B0100000057 +S31540015D20C404A168030000708210601F84088001CA +S31540015D30030000108210600480A0800102800005EB +S31540015D40031000807FFFAD3C9010201103100080AE +S31540015D50C024A168921061C0901000147FFFF6071D +S31540015D6094146158C404615807100080C200E1C010 +S31540015D7080A08001228007B6C40420047FFFAD2E97 +S31540015D8090102012901000149216E1D87FFFF5FB77 +S31540015D9094146158C4046158C206E1D880A08001B8 +S31540015DA0228007A0C40420047FFFAD239010201257 +S31540015DB0901000149214E1E07FFFF5F094146158BD +S31540015DC0C4046158C204E1E080A080012280078CAE +S31540015DD0C40420047FFFAD189010201290100014C7 +S31540015DE0921561F07FFFF5E594146158C40461583A +S31540015DF0C20721F880A0800122800770C4042004D4 +S31540015E007FFFAD0D90102012901000149215E1B84D +S31540015E107FFFF5DA9414615803000070C404A16849 +S31540015E20840880010300002080A0800102800004D4 +S31540015E30010000007FFFAD0090102012C024A16830 +S31540015E409010001D921000147FFFF5CC94146158F8 +S31540015E50C4046158C207BFD080A080012280074E8A +S31540015E60C40420047FFFACF490102012031000807C +S31540015E709216A1D0901061C07FFFF5C0941461586D +S31540015E80C4046158C20721F880A0800122800732EC +S31540015E90C40420047FFFACE890102012C024A168FE +S31540015EA09010001D9214E1E07FFFF5B494146158FF +S31540015EB0C4046158C204E1E080A080012280071D2C +S31540015EC0C40420047FFFACDC901024999010001D7F +S31540015ED0921561F07FFFF5A994146158C404615885 +S31540015EE0C20721F880A0800122800701C404200452 +S31540015EF07FFFACD1901020129010001D9215E1B891 +S31540015F007FFFF59E9414615803000070C404A16894 +S31540015F10840880010300002080A0800102800004E3 +S31540015F20010000007FFFACC490102012C024A1687C +S31540015F309015A1C8921000147FFFF59094146158F2 +S31540015F40C4046158C205A1C880A08001228006DD33 +S31540015F50C40420047FFFACB8901020129015A1C84C +S31540015F609210001D7FFFF58594146158C404615851 +S31540015F70C20721F880A08001228006C2C404200401 +S31540015F807FFFACAD90102012C024A1689015A1C826 +S31540015F909214E1E07FFFF57994146158C404615885 +S31540015FA0C204E1E080A08001228006ADC404200441 +S31540015FB07FFFACA1901020129015A1C8921561F0F7 +S31540015FC07FFFF56E94146158C4046158C20721F8E5 +S31540015FD080A0800122800691C40420047FFFAC96F4 +S31540015FE0901020129015A1C89215E1B87FFFF56374 +S31540015FF09414615803000070C404A16884088001A8 +S315400160000300002080A080010280000401000000FE +S315400160107FFFAC8990102012C024A1689014E1E062 +S31540016020921000147FFFF55594146158C4046158C9 +S31540016030C204E1E080A080012280066FC4042004EE +S315400160407FFFAC7D901020129014E1E09210001D6C +S315400160507FFFF54A94146158C4046158C204E1E0D3 +S3154001606080A080012280065BC40420047FFFAC72BD +S31540016070901020129014E1E09215A1C87FFFF53FE0 +S3154001608094146158C4046158C204E1E080A08001BF +S3154001609022800647C40420047FFFAC67901020127B +S315400160A09014E1E0941461587FFFF5349210000892 +S315400160B0C4046158C204E1E080A080012280063315 +S315400160C0C40420047FFFAC5C901020129014E1E0E0 +S315400160D0921561F07FFFF52994146158C404A168B3 +S315400160E0030000708210601F8408800103000010C5 +S315400160F08210601080A0800102800004010000002F +S315400161007FFFAC4D90102012C024A168901561F01C +S31540016110921000147FFFF51994146158C404A168C4 +S31540016120030000708210601F840880010300001084 +S315400161308210601080A080010280000401000000EE +S315400161407FFFAC3D90102012C024A1689210001D23 +S31540016150901561F07FFFF50994146158C404A16854 +S31540016160030000708210601F840880010300001044 +S315400161708210601080A080010280000401000000AE +S315400161807FFFAC2D90102012C024A168901561F0BC +S315400161909215A1C87FFFF4F994146158C404A1680B +S315400161A0030000708210601F840880010300001004 +S315400161B08210601080A0800102800004010000006E +S315400161C07FFFAC1D90102012C024A168901561F08C +S315400161D09214E1E07FFFF4E994146158C404A16884 +S315400161E0030000708210601F8408800103000010C4 +S315400161F08210601080A0800102800005901561F038 +S315400162007FFFAC0D90102012901561F0C024A1685B +S31540016210941461587FFFF4D992100008C404A16810 +S31540016220030000708210601F840880010300001083 +S315400162308210601080A080010280000401000000ED +S315400162407FFFABFD90102012C024A168901561F02C +S315400162509215E1B87FFFF4C994146158C204A1684C +S315400162608330600E8208600380A0600202800005D0 +S315400162701103C0007FFFABF0901020121103C00044 +S315400162807FFFF70031100080B0162228C024A16894 +S3154001629010800008BA1020007FFFABE79010201253 +S315400162A0BA07600180A7600602800024B006201864 +S315400162B0832F60030910008088112218912F6005F1 +S315400162C0932F6001902200019202401D9001000827 +S315400162D09202600115100124932A60039412A15879 +S315400162E07FFFF4A692010009C4060000C204000023 +S315400162F080A0800112BFFFE907100124C4062004D3 +S315400163008610E158C200E00480A0800112BFFFE37D +S315400163100910008088112168C201000080A0600038 +S3154001632012BFFFDE01000000BA07600180A76006C8 +S3154001633012BFFFE0B0062018111000809414615876 +S31540016340901222A87FFFF48D92022008031000804C +S3154001635082106218C40060A0C204615880A0800106 +S315400163600280057A071000807FFFABB390102012A0 +S31540016370C024A1681110008094146158901222C063 +S315400163807FFFF47E9202200809100080C204615802 +S3154001639088112218C40120B880A080012280055DA1 +S315400163A0C40120BC7FFFABA490102012C024A16879 +S315400163B01110008094146158901222D87FFFF46F17 +S315400163C0920220080310008082106218C40060D037 +S315400163D0C204615880A080010280053E07100080FA +S315400163E07FFFAB9590102012C024A1681110008048 +S315400163F094146158901222F07FFFF46092022008B3 +S3154001640009100080C204615888112218C40120E88D +S3154001641080A0800122800521C40120EC7FFFAB864C +S3154001642090102012C024A168111000809414615864 +S31540016430901223087FFFF451920220080310008036 +S3154001644082106218C4006100C204615880A08001B4 +S3154001645002800502071000807FFFAB779010201263 +S31540016460C024A168111010007FFFF53413100000FD +S315400164700310300080A20001128003B70310008090 +S31540016480C200616880A06000128003B30100000071 +S31540016490111FE000131000007FFFF43D9414615872 +S315400164A0C4046158031FFC0080A08001228004E3DC +S315400164B0C20420047FFFAB609010201B111FE00037 +S315400164C0133000007FFFF43294146158C4046158BC +S315400164D0033FFC0080A08001228004D0C204200436 +S315400164E07FFFAB559010201C111000009210201018 +S315400164F07FFFF4279414615803000070C404A16817 +S31540016500840880010300002080A0800102800004ED +S31540016510010000007FFFAB489010201DC024A168F8 +S3154001652011002000130FC0007FFFF4199414615825 +S31540016530C4046158030E000080A08001228004AF8C +S31540016540C20420047FFFAB3C9010201E111FDFFFC9 +S3154001655013100000901223FF7FFFF40D941461582D +S31540016560C40461580311FFFF821063FF80A08001BC +S3154001657022800499C40420047FFFAB2F9010201F72 +S31540016580111FD000130FF0007FFFF40194146158DE +S31540016590C40461580311FC8080A0800122800486D6 +S315400165A0C20420047FFFAB2490102021111FDFFF7E +S315400165B094146158901223FF7FFFF3F5921000085F +S315400165C0C40461580313FBFF821063FF80A080015E +S315400165D02280046FC40420047FFFAB179010202053 +S315400165E07FFFF6281103C0009007BFC8C024A168E9 +S315400165F07FFFF3F692146158C4046158C207BFC8BD +S3154001660080A0800122800459C40420047FFFAB0A84 +S315400166109010201309100080921461587FFFF3EB0C +S31540016620901121C005100080C200A1C0C404615868 +S3154001663080A0800102800442071000807FFFAAFEED +S31540016640901020139016E1D87FFFF3E09214615821 +S31540016650C4046158C206E1D880A080010280042D9D +S31540016660091000807FFFAAF4901020139016A1D044 +S315400166707FFFF3D692146158C4046158C20721F8CA +S3154001668080A0800122800413C40420047FFFAAEA6B +S3154001669090102013C024A168901561F07FFFF3CBC1 +S315400166A092146158C4046158C20721F880A0800140 +S315400166B0228003F8C40420047FFFAADF9010201330 +S315400166C0C024A1689014E1E07FFFF3C092146158A1 +S315400166D0C204E1E0C404615880A08001228003E441 +S315400166E0C20660047FFFAAD49010201305100C0047 +S315400166F0861020009010001492146158C43FBFF8D0 +S3154001670005300F78070C00088610E0017FFFF3AFD4 +S31540016710C43FBFF0C40461580310040080A0800147 +S31540016720228003CBC20420047FFFAAC3901020130A +S31540016730A607BFF0921461587FFFF3A4901000138F +S31540016740C20721F8C404615880A08001028003B0C9 +S31540016750051000807FFFAAB8901020139015E1B86C +S315400167607FFFF39A92146158C204A1688330600E88 +S315400167708208600380A060020280000401000000DC +S315400167807FFFAAAD90102013C024A1687FFFF47F3C +S315400167901111F2000310E80080A20001128002EB01 +S315400167A003100080C200616880A06000128002E789 +S315400167B0010000007FFFF5B3111000001101F589BA +S315400167C07FFFF472901221E20308E96480A200017E +S315400167D0128002DB01000000C204A16880A06000B3 +S315400167E0128002D7010000007FFFF4681112A2084F +S315400167F00311410080A20001128002CE0100000077 +S31540016800C204A16880A06000128002CA0100000093 +S315400168107FFFF59C11001000901000149215E1B80D +S315400168207FFFF35194146158C404615803100C005E +S3154001683080A080012280036EC20420047FFFAA7ECD +S31540016840901020149015E1B8921000137FFFF34B7E +S3154001685094146158C40461580320000080A080014B +S315400168602280035BC20420047FFFAA739010201488 +S315400168707FFFF38E90102001030FE00080A20001FC +S31540016880128002A901000000C204A16880A0600034 +S31540016890128002A5010000007FFFF37C90102001C9 +S315400168A0030FFC0080A200010280034280A2600027 +S315400168B07FFFAA61901020147FFFF572111010001E +S315400168C0D41EE1D87FFFF3FFD01DE1B8C206A1D0A7 +S315400168D0D024615880A040080280032BD224200492 +S315400168E07FFFAA55901020227FFFF5661110000008 +S315400168F0050FFC0086102000901000149210001322 +S31540016900C43FBFF8050F2800070400808610E0F059 +S31540016910941461587FFFF314C43FBFF0C404615817 +S31540016920030FFC0080A0800122800313C2042004CF +S315400169307FFFAA41901020157FFFF55211200000DC +S31540016940050FFC00861020009010001492100013D1 +S31540016950C43FBFF805001400070000408610E0015F +S31540016960941461587FFFF300C43FBFF0C4046158DB +S31540016970030FFC0080A08001228002FBC204200498 +S315400169807FFFAA2D901020157FFFF53E11300000A4 +S31540016990052FFC0086102000901000149210001361 +S315400169A0C43FBFF805201400070000408610E001EF +S315400169B0941461587FFFF2ECC43FBFF0C4046158A0 +S315400169C0032FFC0080A08001228002E3C204200440 +S315400169D07FFFAA19901020157FFFF52A111000009C +S315400169E0050FFC0086102000901000149215A1C8D6 +S315400169F0C43FBFF87FFFF2DC94146158C404615868 +S31540016A00C205A1C880A08001228002CCC404200412 +S31540016A107FFFAA09901020157FFFF51A112000006B +S31540016A20050FFC0086102000901000149215A1C895 +S31540016A30C43FBFF805001400070000408610E0017E +S31540016A40941461587FFFF2C8C43FBFF0C404615833 +S31540016A50C205A1C880A08001228002B1C4042004DD +S31540016A607FFFA9F5901020157FFFF5061130000034 +S31540016A70052FFC0086102000901000149215A1C825 +S31540016A80C43FBFF805201400070000408610E0010E +S31540016A90941461587FFFF2B4C43FBFF0C205A1C848 +S31540016AA0C404615880A080010280029609100080CA +S31540016AB07FFFA9E1901020157FFFF4F2111000002D +S31540016AC0050FFC008610200190100014921000134F +S31540016AD0C43FBFF805100000861020019414615888 +S31540016AE07FFFF2A6C43FBFF0C40461580310000003 +S31540016AF080A080012280027FC20420047FFFA9CEAC +S31540016B00901020157FFFF4DF112000009010001433 +S31540016B10921000137FFFF29994146158C40461588E +S31540016B200310000080A080012280026EC20420046E +S31540016B307FFFA9C1901020157FFFF4D211300000CC +S31540016B40052FFC00861020019010001492100013AE +S31540016B50C43FBFF87FFFF28994146158C404615859 +S31540016B600330000080A080012280025AC204200422 +S31540016B707FFFA9B1901020157FFFF4C211100000CC +S31540016B80050FFEAE071CD2E88410A1548610E01111 +S31540016B909010001492100013C43FBFF8050FFC0477 +S31540016BA0072F26158410A0128610E23194146158DD +S31540016BB07FFFF280C43FBFF0C4046158030FFEA7B4 +S31540016BC08210629680A080012280023CC404200487 +S31540016BD07FFFA999901020157FFFF4AA112000008C +S31540016BE090100014921000137FFFF27294146158B2 +S31540016BF0C4046158030FFEA78210629680A08001EB +S31540016C0022800228C40420047FFFA98B90102015FE +S31540016C107FFFF49C11300000052FFC04072F261539 +S31540016C208410A0128610E2319010001492100013C5 +S31540016C30C43FBFF07FFFF25F94146158C4046158AA +S31540016C40032FFEA78210629680A080012280020F48 +S31540016C50C40420047FFFA978901020157FFFF48992 +S31540016C601110000005103800861020009010001405 +S31540016C7092100013C43FBFF8051010008610200083 +S31540016C80941461587FFFF24BC43FBFF0C40461586E +S31540016C900310240080A08001228001F8C204200450 +S31540016CA07FFFA965901020157FFFF4761120000023 +S31540016CB090100014921000137FFFF23E9414615815 +S31540016CC0C40461580310240080A08001228001E79A +S31540016CD0C20420047FFFA958901020157FFFF46954 +S31540016CE01130000090100014921000137FFFF23112 +S31540016CF094146158C40461580310240080A0800193 +S31540016D00228001D6C20420047FFFA94B9010201592 +S31540016D107FFFF45C1110000011002000130FE0000A +S31540016D207FFFF3109212600180A22000128001C8F9 +S31540016D30010000007FFFF4531120000011002000E4 +S31540016D40130FE0007FFFF3079212600180A220003B +S31540016D50128001BC010000007FFFF44A113000009F +S31540016D6011002000130FE0007FFFF2FE9212600136 +S31540016D7080A22000128001B0010000007FFFF44193 +S31540016D8011100000050FFC00861020009010001421 +S31540016D90921461587FFFF20DC43FBFF8C404615895 +S31540016DA0C207BFF880A080012280019AC404200452 +S31540016DB07FFFA921901020157FFFF432112000009A +S31540016DC0901000147FFFF20192146158C404615877 +S31540016DD0C207BFF880A0800122800185C404200437 +S31540016DE07FFFA915901020157FFFF4261130000072 +S31540016DF0901000147FFFF1F592146158C404615854 +S31540016E00C207BFF880A0800122800170C40420041B +S31540016E107FFFA909901020157FFFF41A1110000079 +S31540016E202B0FDFFF901563FF7FFFF2D8AA1563FF93 +S31540016E3080A2001502800004010000007FFFA8FE29 +S31540016E40901020157FFFF40F11200000110FDFFF76 +S31540016E507FFFF2CE901223FF030FE00080A20001D4 +S31540016E6002800004010000007FFFA8F39010201566 +S31540016E707FFFF404113000002B0FDFFF901563FFF5 +S31540016E807FFFF2C2AA1563FF80A2001502800004AB +S31540016E90010000007FFFA8E8901020157FFFF3F95D +S31540016EA0901020007FFFF2C190146158C4046158CC +S31540016EB0032FFE0080A0800122800140C2042004ED +S31540016EC07FFFA8DD901020162B1001247FFFF2C111 +S31540016ED090156160C4056160032FF00080A08001B8 +S31540016EE002800004010000007FFFA8D39010201605 +S31540016EF07FFFF2C290156160C4056160030FE00037 +S31540016F0080A0800102800004010000007FFFA8CA22 +S31540016F10901020167FFFF2C990146158C40461583D +S31540016F20030FFBF7821063F080A080012280011CD1 +S31540016F30C40420047FFFA8C0901020169215E1B822 +S31540016F40901000147FFFF19B94146158C204A1680C +S31540016F508330600E8208600780A0600202800005CF +S31540016F60031000807FFFA8B4901020170310008003 +S31540016F70C40061700310004DE40061B8821061B82D +S31540016F8080A0400202800005031000807FFFA8AA6E +S31540016F909010201803100080C200617480A0401236 +S31540016FA002800005031000807FFFA8A390102018DF +S31540016FB003100080C200617880A06000128000F456 +S31540016FC00100000003100080C200617C80A06000C7 +S31540016FD0128000EC010000007FFFF14E010000002D +S31540016FE080A220010280052D01000000050C4029E8 +S31540016FF00723CD1B8410A0068610E09B9010001439 +S31540017000C027BFF0C027BFF4C43FBFF82910008195 +S315400170107FFFF1962B100082AA1560A0A4102000D4 +S31540017020A81520A0AC146158BA10001510800008AC +S31540017030AE1000107FFFA88090102019A404A00470 +S3154001704080A4A400228000172B100084C2050012E0 +S31540017050C224C000901000137FFFF18792100016E2 +S31540017060832CA001C4040000C605400180A0C002D3 +S3154001707012BFFFF182074001C4006004C205E0046B +S3154001708080A0800112BFFFEC01000000A404A0040F +S3154001709080A4A40032BFFFEFC20500122B1000846A +S315400170A0A2146158AA1560A0A4102000AE100015C4 +S315400170B010800008AC1000107FFFA85F9010201AC6 +S315400170C0A404A00880A4A4000280001501000000C9 +S315400170D0C2050012C224C000921000117FFFF13B8D +S315400170E090100013C4054012C204000080A0800124 +S315400170F012BFFFF28205C012C4006004C205A0049B +S3154001710080A0800112BFFFED01000000A404A00889 +S3154001711080A4A40032BFFFF0C205001281C7E00877 +S3154001712081E800007FFFA8449010200F30BFF69AF7 +S315400171307FFFA8419010200F10BFF68C110048EA3E +S315400171407FFFA83D9010200F10BFF646D01DE1B835 +S315400171507FFFA8399010200F10BFF64FD01CE1E0F9 +S315400171607FFFA8359010200F10BFF608D41CE1E030 +S315400171707FFFA8319010200F10BFF5F411151BE8C1 +S315400171807FFFA82D9010200F10BFF5E011151BC0F1 +S315400171907FFFA8299010200F10BFF5C49010200042 +S315400171A07FFFA8259010200F10BFF5B011351BC0E9 +S315400171B07FFFA8219010200F10BFF57AD01CE1E087 +S315400171C07FFFA81D9010200F10BFF583D01D61F0E1 +S315400171D07FFFA8199010200F10BFF565D01DE1B8AB +S315400171E07FFFA8159010200F10BFF53FD41D61F009 +S315400171F07FFFA8119010200F10BFF52ED41CE1E09F +S315400172007FFFA80D9010200F10BFF51A11151BE82E +S315400172107FFFA8099010200F10BFF50611151BC05E +S315400172207FFFA8059010200F10BFF4DA11351BC05F +S315400172307FFFA8019010200F10BFF4E690102000A8 +S315400172407FFFA7FD9010200E30BFF4BF7FFFA7FA46 +S315400172509010200E10BFF4B11128C6AF7FFFA7F6DC +S315400172609010200E10BFF4A11108C6AF7FFFA7F200 +S315400172709010200E10BFF4911128C6AF7FFFA7EEE4 +S315400172809010200E10BFF4822108C6AF7FFFA7EAF7 +S315400172909010200D30BFF4517FFFA7E79010200DCD +S315400172A010BFF444371000807FFFA7E39010200CF5 +S315400172B010BFF3A2271000807FFFA7DF9010200B9D +S315400172C030BFF34F7FFFA7DC9010201110BFFA8F1C +S315400172D0110020007FFFA7D89010201110BFFA6D32 +S315400172E0110020007FFFA7D49010201110BFFA5C37 +S315400172F0111E607E7FFFA7D09010201110BFFA4B60 +S315400173001111BBFE7FFFA7CC9010201010BFF85E75 +S31540017310091000807FFFA7C89010201010BFF84FBA +S31540017320111000007FFFA7C49010201430BFFD5BF1 +S315400173307FFFA7C19010202330BFFD367FFFA7BE38 +S315400173409010202330BFFD297FFFA7BB901020134B +S3154001735030BFFD197FFFA7B89010201210BFFC4E19 +S31540017360111FE00012BFF30A01000000C204A16828 +S3154001737080A0600002BFF3080100000030BFF304A3 +S315400173807FFFA7AD9010201830BFFF147FFFA7AA3B +S315400173909010201810BFFF0D031000800303FF1249 +S315400173A08210604A80A0800112BFFEE39215E1B8C7 +S315400173B010BFFEE59010001480A0600002BFFEC41D +S315400173C02B10012430BFFEBFC207BFFC80A0800145 +S315400173D012BFFE9001000000C204A16880A06000B7 +S315400173E002BFFE8E0100000030BFFE8AC207BFFC0D +S315400173F080A0800112BFFE7B01000000C204A1688B +S3154001740080A0600002BFFE790100000030BFFE751A +S31540017410C207BFFC80A0800112BFFE6601000000CA +S31540017420C204A16880A0600002BFFE6401000000A2 +S3154001743030BFFE607FFFA7809010201530BFFE5001 +S315400174407FFFA77D9010201530BFFE447FFFA77AAE +S315400174509010201530BFFE3880A0600002BFFE2D7F +S315400174600100000030BFFE2980A0600002BFFE1C63 +S315400174700100000030BFFE1880A0600002BFFE0B75 +S315400174800100000030BFFE07032C1B348210603020 +S3154001749080A0800112BFFDF00100000030BFFDF069 +S315400174A0032C1B348210603080A0800112BFFDD7AF +S315400174B00100000030BFFDD7032C1B348210602F22 +S315400174C080A0800112BFFDC30100000030BFFDC393 +S315400174D080A0600312BFFDA70100000030BFFDA7D9 +S315400174E080A0600312BFFD930100000030BFFD93F1 +S315400174F080A0600212BFFD820100000030BFFD8204 +S31540017500C4042004881121C8C201200480A080013E +S3154001751012BFFD680100000030BFFD680710008002 +S315400175208610E1C8C200E00480A0800112BFFD4D73 +S315400175300100000030BFFD4D09100080881121C8AF +S31540017540C201200480A0800112BFFD32010000006B +S3154001755030BFFD3280A0600112BFFD1E0100000058 +S3154001756030BFFD1E80A0600112BFFD060100000074 +S3154001757030BFFD0680A0600002BFFCF001000000A4 +S3154001758030BFFCEC071000808610E1D0C200E00459 +S3154001759080A0400912BFFCD301000000C204A168CB +S315400175A080A0600002BFFCD10100000030BFFCCDCD +S315400175B012BFFCC001000000C204A16880A06000A7 +S315400175C002BFFCBE0100000030BFFCBA80A06000D3 +S315400175D012BFFCA601000000C204A16880A06000A1 +S315400175E002BFFCA40100000030BFFCA080A06000E7 +S315400175F012BFFC9301000000C204A16880A0600094 +S3154001760002BFFC929015E1B830BFFC8D8410A1F801 +S31540017610C200A004C404200480A0800112BFFC4E15 +S3154001762001000000C404A168030000708210601FBD +S3154001763084088001030000108210601080A0800140 +S3154001764012BFFC459015E1B830BFFC4680A06000F2 +S3154001765012BFFC3601000000C204A16880A0600090 +S3154001766002BFFC35A607BFF030BFFC30C40420047E +S3154001767080A0800112BFFC1C03100080C20061681B +S3154001768080A0600002BFFC1B05100C0030BFFC1639 +S3154001769009100080881121F8C201200480A08001D0 +S315400176A012BFFC0603100080C4006168030000702D +S315400176B08210601F84088001030000108210601050 +S315400176C080A0800112BFFBFD0100000030BFFBFD21 +S315400176D0071000808610E1F8C200E00480A0800116 +S315400176E012BFFBEB01000000C404A1680300007057 +S315400176F08210601F84088001030000108210601010 +S3154001770080A0800112BFFBE20100000030BFFBE216 +S31540017710C4042004881121D8C201200480A080011C +S3154001772012BFFBD101000000C204A16880A0600025 +S3154001773002BFFBD09016A1D030BFFBCBC4042004BE +S315400177408610E1C0C200E00480A0800112BFFBBCEC +S3154001775001000000C204A16880A0600002BFFBBB1B +S315400177609016E1D830BFFBB6C207BFCC80A08001DE +S3154001777012BFFBA703100080C200616880A06000B1 +S3154001778002BFFBA60910008030BFFBA103300000F9 +S315400177908210602080A0800112BFFB900100000092 +S315400177A0C204A16880A0600002BFFB8E01000000F8 +S315400177B030BFFB8A80A0600012BFFB7B0100000046 +S315400177C0C204A16880A0600002BFFB7A111FDFFFDF +S315400177D030BFFB750338000080A0800112BFFB67F4 +S315400177E001000000C204A16880A0600002BFFB66E0 +S315400177F0111FD00030BFFB6180A0600012BFFB5259 +S3154001780003100080C200616880A0600002BFFB5186 +S31540017810111FDFFF30BFFB4C80A0600012BFFB3160 +S3154001782001000000C204A16880A0600002BFFB30D5 +S315400178301110000030BFFB2B80A0600012BFFB1E61 +S3154001784001000000C204A16880A0600002BFFB1DC8 +S31540017850111FE00030BFFB18C20420048610E21855 +S31540017860C400E10480A0800112BFFAFC031000802D +S31540017870C4006168030000708210601F84088001A3 +S31540017880030000108210600880A0800112BFFAF345 +S315400178900100000030BFFAF3C204200480A0800139 +S315400178A012BFFADF03100080C40061680300007054 +S315400178B08210601F8408800103000010821060045A +S315400178C080A0800112BFFAD60100000030BFFAD66F +S315400178D0C20420048610E218C400E0D480A08001CE +S315400178E012BFFAC003100080C40061680300007033 +S315400178F08210601F84088001030000108210600816 +S3154001790080A0800112BFFAB70100000030BFFAB76C +S31540017910C204200480A0800112BFFAA30310008094 +S31540017920C4006168030000708210601F84088001F2 +S31540017930030000108210600880A0800112BFFA9AED +S315400179400100000030BFFA9AC20420048610E218F2 +S31540017950C400E0A480A0800112BFFA8401000000A7 +S31540017960C404A168030000708210601F840880016E +S31540017970030000108210600480A0800112BFFA7BD0 +S315400179800100000030BFFA7BC206600480A080017E +S3154001799012BFF9CD01000000C204A16880A06000B9 +S315400179A002BFF9CC9014E1E030BFF9C7C2066004CA +S315400179B080A0800112BFF9B901000000C204A1688C +S315400179C080A0600002BFF9B89014E1E030BFF9B37E +S315400179D0C206600480A0800112BFF9A50100000023 +S315400179E0C204A16880A0600002BFF9A49014E1E03E +S315400179F030BFF99FC206600480A0800112BFF99191 +S31540017A0003100080C200616880A0600002BFF99047 +S31540017A109014E1E030BFF98B071000808610E1F841 +S31540017A20C200E00480A0800112BFF96D0100000090 +S31540017A30C404A168030000708210601F840880019D +S31540017A40030000108210601080A0800112BFF9640B +S31540017A509015A1C810BFF9669215E1B8C206600437 +S31540017A6080A0800112BFF95303100080C2006168F3 +S31540017A7080A0600002BFF9529015A1C830BFF94DF0 +S31540017A8009100080881121F8C201200480A08001DC +S31540017A9012BFF93C01000000C404A1680300007054 +S31540017AA08210601F8408800103000010821060105C +S31540017AB080A0800112BFF9330100000030BFF933C5 +S31540017AC0071000808610E1C8C200E00480A0800152 +S31540017AD012BFF92103100080C200616880A06000D6 +S31540017AE002BFF9209015A1C830BFF91B09100080CB +S31540017AF0881121F8C201200480A0800112BFF8FD3F +S31540017B0001000000C404A168030000708210601FD8 +S31540017B1084088001030000108210601080A080015B +S31540017B2012BFF8F49010001D10BFF8F69215E1B897 +S31540017B30C206600480A0800112BFF8E303100080F2 +S31540017B40C200616880A0600002BFF8E29010001D8B +S31540017B5030BFF8DD071000808610E1F8C200E0046E +S31540017B6080A0800112BFF8CC01000000C404A168C6 +S31540017B70030000708210601F84088001030000101A +S31540017B808210601080A0800112BFF8C3010000007E +S31540017B9030BFF8C3C207BFD480A0800112BFF8B27C +S31540017BA003100080C200616880A0600002BFF8B186 +S31540017BB00310008030BFF8AC09100080881121F80D +S31540017BC0C201200480A0800112BFF88E010000008E +S31540017BD0C404A168030000708210601F84088001FC +S31540017BE0030000108210601080A0800112BFF8854A +S31540017BF09010001410BFF8879215E1B8C2066004D0 +S31540017C0080A0800112BFF87401000000C204A1687F +S31540017C1080A0600002BFF8739010001430BFF86E68 +S31540017C20071000808610E1D8C200E00480A08001E0 +S31540017C3012BFF85E01000000C204A16880A0600086 +S31540017C4002BFF85D9010001430BFF8588810E1C0AB +S31540017C50C201200480A0800112BFF84903100080B0 +S31540017C60C200616880A0600002BFF848901000140D +S31540017C7030BFF84303003A9A8210630F80A0800117 +S31540017C8012BFF7BD03100080C200616880A060008A +S31540017C9002BFF7BC050006AF30BFF7B780A0600052 +S31540017CA012BFF78103100080C400616803000070B1 +S31540017CB08210601F84088001030000108210600852 +S31540017CC080A0800112BFF7780500400010BFF77A07 +S31540017CD00700C00009100080881121F8C201200464 +S31540017CE080A0800112BFF6EF01000000C404A16824 +S31540017CF0030000708210601F840880010300001099 +S31540017D008210601080A0800112BFF6E69014E1E077 +S31540017D1010BFF6E89215E1B8C206600480A0800162 +S31540017D2012BFF6D501000000C204A16880A0600020 +S31540017D3002BFF6D49014E1E030BFF6CFC20660042C +S31540017D4080A0800112BFF6C101000000C204A168F3 +S31540017D5080A0600002BFF6C09014E1E030BFF6BBE0 +S31540017D60C206600480A0800112BFF6AD010000008A +S31540017D70C204A16880A0600002BFF6AC9014E1E0A5 +S31540017D8030BFF6A7C206600480A0800112BFF699F3 +S31540017D9003100080C200616880A0600002BFF698AF +S31540017DA09014E1E030BFF693071000808610E1F8A9 +S31540017DB0C200E00480A0800112BFF67401000000F9 +S31540017DC0C404A168030000708210601F840880010A +S31540017DD0030000108210601080A0800112BFF66B74 +S31540017DE00100000030BFF66BC206600480A080012E +S31540017DF012BFF65B03100080C200616880A060007C +S31540017E0002BFF65A9015A1C830BFF6550910008039 +S31540017E10881121F8C201200480A0800112BFF644D6 +S31540017E2001000000C404A168030000708210601FB5 +S31540017E3084088001030000108210601080A0800138 +S31540017E4012BFF63B0100000030BFF63B0710008031 +S31540017E508610E1D8C200E00480A0800112BFF62955 +S31540017E6001000000C204A16880A0600002BFF6289C +S31540017E709015A1C830BFF623071000808610E1D0C7 +S31540017E80C200E00480A0800112BFF61203100080F8 +S31540017E90C200616880A0600002BFF611091000802F +S31540017EA030BFF60CC206600480A0800112BFF5E027 +S31540017EB001000000C204A16880A0600002BFF5DF96 +S31540017EC09010001D30BFF5DA8810E1C0C2012004D0 +S31540017ED080A0800112BFF5CB03100080C20061680B +S31540017EE080A0600002BFF5CA9010001D30BFF5C5E5 +S31540017EF0071000808610E1F8C200E00480A08001EE +S31540017F0012BFF5B201000000C404A168030000706D +S31540017F108210601F840880010300001082106010E7 +S31540017F2080A0800112BFF5A90910008030BFF5AAD3 +S31540017F30C207BFD480A0800112BFF598031000800C +S31540017F40C200616880A0600002BFF59703100080FF +S31540017F5030BFF59209100080881121F8C201200432 +S31540017F6080A0800112BFF57401000000C404A1681D +S31540017F70030000708210601F840880010300001016 +S31540017F808210601080A0800112BFF56B9010001422 +S31540017F9010BFF56D9215E1B8C206600480A080015C +S31540017FA012BFF55A01000000C204A16880A060001A +S31540017FB002BFF5599010001430BFF554C207BFCC2B +S31540017FC080A0800112BFF54603100080C20061689F +S31540017FD080A0600002BFF5459010001430BFF54007 +S31540017FE0071000808610E1D0C200E00480A0800125 +S31540017FF012BFF52F03100080C400616803000070B2 +S315400180008210601F84088001030000108210600204 +S3154001801080A0800112BFF5260100000030BFF52681 +S3154001802012BFF50001000000C204A16880A06000F3 +S3154001803002BFF4FF1110000030BFF4FA12BFF4EE94 +S3154001804001000000C204A16880A0600002BFF4EDF7 +S315400180501130000030BFF4E812BFF4DC010000002B +S31540018060C204A16880A0600002BFF4DB11300000A9 +S3154001807030BFF4D612BFF4CA03100080C200616853 +S3154001808080A0600002BFF4C91110000030BFF4C4E3 +S31540018090C20420048610E320C400E17C80A0800154 +S315400180A012BFF4B301000000C404A16803000070CC +S315400180B08210601F84088001030000108210600452 +S315400180C080A0800112BFF4AA0100000030BFF4AACB +S315400180D0C204200480A0800112BFF4970100000071 +S315400180E0C404A168030000708210601F84088001E7 +S315400180F0030000108210600480A0800112BFF48E3C +S315400181001110008110BFF49094146158C2042004E8 +S315400181108610E320C400E14C80A0800112BFF478B0 +S3154001812001000000C404A168030000708210601FB2 +S3154001813084088001030000108210600880A080013D +S3154001814012BFF46F1110008110BFF471941461587D +S315400181507FFFA4399010201010BFF45E11100081EA +S31540018160C206600480A0800112BFF3B9010000007D +S31540018170C204A16880A0600002BFF3B89014E1E098 +S3154001818030BFF3B3C206600480A0800112BFF3A5DD +S3154001819001000000C204A16880A0600002BFF3A4F0 +S315400181A09014E1E030BFF39FC206600480A08001D5 +S315400181B012BFF39101000000C204A16880A06000D3 +S315400181C002BFF3909014E1E030BFF38BC206600426 +S315400181D080A0800112BFF37D03100080C200616858 +S315400181E080A0600002BFF37C9014E1E030BFF377DA +S315400181F009100080881121F8C201200480A0800165 +S3154001820012BFF35A03100080C40061680300007076 +S315400182108210601F840880010300001082106010E4 +S3154001822080A0800112BFF3519015A1C810BFF3532E +S315400182309215E1B8071000808610E1F8C200E0040B +S3154001824080A0800112BFF33B0100000030BFF33B29 +S3154001825009100080881121D0C201200480A080012C +S3154001826012BFF31801000000C204A16880A060009B +S3154001827002BFF3179016A1D030BFF312071000804A +S315400182808610E1D8C200E00480A0800112BFF3024B +S3154001829001000000C204A16880A0600002BFF30192 +S315400182A09016A1D030BFF2FC09100080881121C878 +S315400182B0C201200480A0800112BFF2EC010000003F +S315400182C0C204A16880A0600002BFF2EB9016E1D81B +S315400182D030BFF2E6071000808610E1C8C200E00414 +S315400182E080A0800112BFF2D603100080C2006168EF +S315400182F080A0600002BFF2D59015A1C830BFF2D070 +S3154001830009100080881121F8C201200480A0800153 +S3154001831012BFF2B10100000030BFF2B1C2066004E3 +S3154001832080A0800112BFF29001000000C204A16842 +S3154001833080A0600002BFF28F9010001D30BFF28A0C +S31540018340071000808610E1C8C200E00480A08001C9 +S3154001835012BFF27A01000000C204A16880A0600049 +S3154001836002BFF2799010001D30BFF274C207BFFC04 +S3154001837080A0800112BFF26603100080C2006168CE +S3154001838080A0600002BFF2659010001D30BFF26010 +S31540018390881721F8C201200480A0800112BFF24251 +S315400183A00100000030BFF242C4042004C20660044A +S315400183B080A0800112BFF21E01000000C204A16824 +S315400183C080A0600002BFF21D9010001430BFF21869 +S315400183D08615A1C8C200E00480A0800112BFF2093F +S315400183E001000000C204A16880A0600002BFF2083B +S315400183F09010001430BFF203C2042004C407BFFC2E +S3154001840080A0800112BFF1F303100080C2006168B1 +S3154001841080A0600002BFF1F22D10008030BFF1ED67 +S3154001842080A2400112BFEFA201000000C204A16870 +S3154001843080A0600002BFEFA11111FC0030BFEF9C8C +S3154001844080A2400112BFEF9003100080C200616814 +S3154001845080A0600022BFEF8F113C02AF30BFEF8A90 +S3154001846012BFEEDB01000000C204A16880A06000DB +S3154001847002BFEED90100000030BFEED512BFEECCEF +S3154001848001000000C204A16880A0600002BFEECADC +S315400184900100000030BFEEC67FFFA3679010201990 +S315400184A010BFFAD4050C402981D8200081C3E008C9 +S315400184B00100000081D8200082102400C0A04300A2 +S315400184C081C3E00801000000853220109132201856 +S315400184D0900A200F8408A00380A000088260200033 +S315400184E081C3E008900880019DE3BF887FFFEB7A56 +S315400184F09010200C808A20081280000401000000A0 +S3154001850081C7E00891E820007FFFA3449010200E28 +S31540018510C2800320853060188088A00F028000DD6C +S315400185202F100123833060108208600380A060020F +S31540018530028000E0C225E0D880A06003028000FFEF +S3154001854080A06001028000EC2910010C2310010C6F +S315400185502110010C2B10010C2710010C2510010CC8 +S3154001856081D8200081D8200082102400C0A0430079 +S31540018570031000A1051000A0821060008410A00025 +S31540018580873060048610E00188100003C8788000B7 +S315400185908800A004C67900008610200AC6784000EB +S315400185A0C8046000C60420041B00800019080000AE +S315400185B09A13600A993B0004980B0003992B2002F9 +S315400185C098030001DA7B00001B0100001710000030 +S315400185D09813608E973AC004960AC003972AE00220 +S315400185E09602C001D87AC000171C00001901C000CC +S315400185F0893AC0049813208E860900038728E00231 +S315400186008600C001D878C0003B1000A28200600CF1 +S31540018610BA176000873760048610E001C6784000CB +S315400186208213601E86076008C278C000821020004F +S315400186308807600C86100001C67900002D1000A243 +S315400186409A076004AC15A1008735A004B81000163E +S315400186508610E001C67B4000B405A008C27E8000BA +S315400186601B1000C0B605A004861360008330E004E9 +S315400186709810601AD87EC000C02360001B048D1577 +S315400186809A136278DA20E004DA05E0D83310010063 +S315400186909A03600CB21660008605A00CB01020004B +S315400186A0C627BFF8DA27BFFC9010001892102003A6 +S315400186B0C227BFF0C427BFEC40000AB0C827BFF4A9 +S315400186C0DA07BFFC992A000DC607BFF898030019BF +S315400186D0993320049813201ED878C000B006200193 +S315400186E08600E00480A62008C207BFF0C407BFEC9D +S315400186F012BFFFECC807BFF417100020DE05200C9F +S315400187008612E168C822E16809100020D005600898 +S31540018710D804A014DA04E010D2042004D404600082 +S31540018720960BE001972AC008C6212160880A60039A +S315400187308929000A8812C004960B2002972AC00D87 +S315400187409611000B8530A004D620E0209610600ECD +S31540018750D620E0289608BFF0840B20018528800D9D +S31540018760841100028210601EC420E02CC420E01453 +S31540018770050100008410A01EC220E010C420E004C0 +S31540018780F620E00CF420E018F620E02405007641BE +S31540018790031000208410A1C082106000C420E008AC +S315400187A0833060048210601EC220E01C82102100CA +S315400187B0D6A04320C4800320C280432084102001D8 +S315400187C082102200C4A04320C68043208610200088 +S315400187D0C6A04320C4A0032081D820007FFFEABE63 +S315400187E090102000913A200C808A20030280006577 +S315400187F001000000C280032082102100C280432074 +S3154001880082102200C2804320C80420048809200324 +S31540018810C2046000C605200CC4056008D404A01437 +S31540018820D604E010832900019808E0019A0AA001C4 +S31540018830992B00029B2B400B981300019A13000DB4 +S31540018840C803400080A12000028000038813600411 +S3154001885030800000D201000011048D15901222785B +S3154001886080A2400812BFFFFB111000009E08E002E3 +S31540018870D00200009F2BC0029E13C001DE03C00040 +S3154001888080A3C008228000428608E00330800000B1 +S315400188902310010C2110010CC025E0D82B10010C2E +S315400188A02910010C2710010C10BFFF2E2510010CB9 +S315400188B02110010C2910010C2510010C2310010C6B +S315400188C08210203F2B10010C2710010CC2242004DA +S315400188D0C224A014C225200C8210201AC224600092 +S315400188E082102014C22560088210200E10BFFF1D81 +S315400188F0C224E0102510010C2310010C8210203FE8 +S315400189002110010C2B10010C2710010CC225200C43 +S31540018910C224A01482102019C22460008210207F34 +S31540018920C224200482102013C22560088210200D23 +S3154001893010BFFF0CC224E0102110010C2710010CBE +S315400189402310010C8210200F2B10010C2910010C51 +S315400189502510010CC224E010C22420048210201CE0 +S31540018960C224600082102015C22560088210207F33 +S31540018970C225200C8210203F10BFFEFAC224A0144B +S315400189807FFFBDA30100000030BFFF9B8528C002C9 +S3154001899082108001C20040000321D9508210632118 +S315400189A0C2210000C401000080A0800102800003B2 +S315400189B001000000308000008210000D05048D1575 +S315400189C08410A278072AF37B8610E301C43840005D +S315400189D0C4384000C203400080A040090280000321 +S315400189E00100000030800000C4010000032AF37B2F +S315400189F08210630180A0800112BFFFFBC205E0D84F +S31540018A00940AA0038200600C972A800B84102001EF +S31540018A10AE13000B85288001B0102000EE25C00062 +S31540018A20C0A0022092102003C227BFF0C427BFEC8A +S31540018A30400009D290100018C207BFF0912A0001E8 +S31540018A40C606400880A0C01712800008C407BFECC4 +S31540018A50B006200180A6200802800005AE05C002AE +S31540018A6010BFFFF0EE25C00030800000C0A00220FC +S31540018A70AE102003B0102000852DE002C40580020F +S31540018A808608A06080A00003C227BFF0B04000184E +S31540018A90C427BFEC9005FFFD400009B892102003A2 +S31540018AA0C207BFF0C407BFEC872A00018606400310 +S31540018AB08730E0048610E01E8418C0028088BF9F7C +S31540018AC012800009AE05E00180A5E00B32BFFFEC44 +S31540018AD0852DE00280A6200012800004D805200CD6 +S31540018AE03080000030800000C8056008DA042004A8 +S31540018AF0C4046000C604A014C204E010980B20010F +S31540018B009A0B6003892B0004852B40028608E002FC +S31540018B10841100028328C001821080019FC0400059 +S31540018B200100000082102400C0A04300C0A0022022 +S31540018B308210200084072020C607200C8608E060AA +S31540018B4080A00003B80720048240000180A70002EC +S31540018B5032BFFFFBC607200C80A0600822800003BD +S31540018B60C206C00030800000808860400280000458 +S31540018B708088602032800003C20760083080000090 +S31540018B808088602032800003C20680003080000069 +S31540018B9080886020128000030100000030800000C0 +S31540018BA083480000842860808188A000010000007D +S31540018BB00100000001000000D8042004C804600040 +S31540018BC0DA05200CC4056008C604A014C204E010EE +S31540018BD0980B20039A0B6001892B0004852B4002D8 +S31540018BE08608E001841100028328C0018410A00494 +S31540018BF082108001C20040009210200491D02002D0 +S31540018C00010000007FFFE9B490102000913A200C4A +S31540018C10808A200312800005841020007FFFBCFC5F +S31540018C20010000008410200082102200C4A04320CD +S31540018C3086102001C6A04320C4A043200310000093 +S31540018C40C4804380C4A043807FFFBD5E9010200056 +S31540018C5081D8200030BFFE2B9DE3BFA040000822F3 +S31540018C6001000000808A21001280000401000000FA +S31540018C7081C7E00891E820007FFFA18B23100120E6 +S31540018C80912A20047FFFA16590022005A21460006D +S31540018C90C204600480A060000280001A8210200095 +S31540018CA0A010200084044001C8044001C600A0046D +S31540018CB0C200A0089B39201F81836000010000008B +S31540018CC001000000010000008479000380A08001BA +S31540018CD002800004A00420017FFFA15790102001CB +S31540018CE082040010820040108328600284044001FF +S31540018CF0C400A00480A0A00012BFFFEC8404400180 +S31540018D0023100120A2146138C204600480A06000CF +S31540018D100280001982102000A01020008404400126 +S31540018D20C8044001C600A004C200A00881802000FA +S31540018D3001000000010000000100000084710003F1 +S31540018D4080A0800102800004A00420017FFFA13A97 +S31540018D509010200282040010820040108328600295 +S31540018D6084044001C400A00480A0A00012BFFFED0E +S31540018D7084044001400008890100000080A22000CF +S31540018D8012BFFFBC901020037FFFA12BB010200023 +S31540018D9081C7E00881E800009DE3BFA07FFFA142B3 +S31540018DA001000000912A20047FFFA11C90022004AB +S31540018DB0400007CF0100000080A221230280000469 +S31540018DC0010000007FFFA11C90102001400007C652 +S31540018DD001000000808A2100028000292310012021 +S31540018DE0A2146180C204600880A060090280001557 +S31540018DF082102000A010200084044001C6044001D6 +S31540018E00C800A004C200A0088459000380A08001C4 +S31540018E1002800004A00420017FFFA10790102002D8 +S31540018E2082040010820040108328600284044001BD +S31540018E30C400A00880A0A00912BFFFF1840440012C +S31540018E40400007B80100000080A2200002800023F4 +S31540018E5001000000400007B30100000080A220008D +S31540018E6002800016010000004000079F010000003B +S31540018E70808A2200128000040100000081C7E008B8 +S31540018E8091E82000400007F80100000080A2200080 +S31540018E900280001A01000000400007F301000000B3 +S31540018EA080A2200012BFFFF6010000007FFFA0E272 +S31540018EB09010200430BFFFF27FFFA0DF9010200307 +S31540018EC04000078901000000808A220002BFFFECB2 +S31540018ED00100000030BFFFEC7FFFA0D790102003B8 +S31540018EE0400007900100000080A2200012BFFFDF72 +S31540018EF00100000030BFFFF17FFFA0CF901020049A +S31540018F0030BFFFE6000000009DE3BFA094102000A3 +S31540018F10111000639012233C1310006392126340B8 +S31540018F20171000639612E348191000639813234CF7 +S31540018F3093C2000081C240001080019181C2C000ED +S31540018F4081C300001080018E9402A0019402A00109 +S31540018F5080A2A0031280018A01000000874400001C +S31540018F608D30E00E8C89A00780A1A000028000C749 +S31540018F7001000000AF30E00BAE0DE00780A5E00038 +S31540018F80128000C20100000080A1A00212800035BB +S31540018F900100000025100000E41C8000251000009F +S31540018FA029100000A8152104A6100012AA100012CB +S31540018FB0AC100014A1802046A4100000AA100000A5 +S31540018FC001000000A180204EA810210001000000F0 +S31540018FD0A18000000100000001000000E83CA03033 +S31540018FE082A480131280016682A500161280016454 +S31540018FF0010000000100000001000000874400005C +S315400190008D30E00B8C89A0078CA1A0051280015CF4 +S31540019010A1800000010000000100000001000000E5 +S31540019020E81CA03082A500161280015582A5401287 +S31540019030A41000001280015201000000010000004E +S31540019040874400008D30E00B8C89A0078CA1A003DA +S315400190501280014B010000001080008C01000000CD +S3154001906080A1A0011280002325100000E41C80008D +S315400190702510000029100000A8152104A610001291 +S31540019080AA100012AC100014A1802046A4100000C2 +S31540019090AA10000001000000A180204EA810210066 +S315400190A001000000A1800000010000000100000055 +S315400190B001000000E83C800082A480131280013048 +S315400190C082A500161280012E010000000100000059 +S315400190D0874400008D30E00B8C89A0078CA1A0024B +S315400190E01280012701000000108000680100000085 +S315400190F080A1A00312800065A6100000A210200ED8 +S31540019100A1844000A6100000A1800000A814E00040 +S31540019110AB44000001000000AC14E0000100000077 +S31540019120AF44000080A5200012800115AA8D6E0073 +S3154001913080A540001280011280A5A0001280011076 +S31540019140AF35E00BAE0DE00780A5E0011280010CC2 +S3154001915001000000A0100000A1844000A6100000FC +S31540019160A1800000E8180000AC100000AE1000001D +S31540019170EC04C000EE04E00480A500161280010054 +S3154001918080A54017128000FE01000000A5440000A2 +S31540019190A534A00BA40CA00780A4A001128000F85E +S315400191A001000000A0100000A1844000A6100000AC +S315400191B0A1800000A210200AA1844000A410000052 +S315400191C0A1800000E8180000AC100000AE100000BD +S315400191D0EC04C012EE04E00480A50016128000E8FB +S315400191E080A54017128000E601000000A54400005A +S315400191F0A534A00BA40CA00780A4A002068000E021 +S315400192000100000021100120A0142200EC1C0000E6 +S31540019210A0042008E81C0000A1844000A61000001C +S31540019220A1800000A210200EA1844000A4100010CD +S31540019230AC100000AE100000A1800000010000004B +S3154001924001000000EC3C8013AC100000AE100000A1 +S31540019250E81CC01280A50016128000C980A54017DF +S31540019260128000C701000000A5440000A534A00BF0 +S31540019270A40CA00780A4A004128000C10100000034 +S3154001928010800002010000008B4440008A09601FE3 +S3154001929080A160010280000A8C1000059DE3BFA0F9 +S315400192A08AA1600116BFFFFE0100000081E80000AF +S315400192B08CA1A00116BFFFFE0100000001000000C5 +S315400192C001000000A023A080A02C20078E100010D2 +S315400192D0A3480000E2240000C2242004C43C200824 +S315400192E0C83C2010CC3C2018F03C2020F43C2028DF +S315400192F0F83C2030FC3C2038D03C2040D43C20482F +S31540019300D83C2050DC3C2058A5500000E424206085 +S31540019310801020088210200184102002861020032C +S31540019320881020048A1020058C10200681900000A8 +S31540019330A42C601F818C8000010000000100000008 +S3154001934001000000030040408210610184100000CA +S3154001935086100000894440008809201F86100004B9 +S31540019360A010000284004002A210000284004002C4 +S31540019370A410000284004002A610000284004002AC +S31540019380A810000284004002AA1000028400400294 +S31540019390AC10000284004002AE100002840040027C +S315400193A090100002840040029210000284004002A4 +S315400193B0941000028400400296100002840040028C +S315400193C098100002840040029A1000028400400274 +S315400193D09C100002840040029E100002840040025C +S315400193E081E0000086A0E00116BFFFDE010000001B +S315400193F00300404082106101841000008610000481 +S3154001940080A400021280003F8400400280A44002F2 +S315400194101280003C8400400280A480021280003900 +S315400194208400400280A4C0021280003684004002BB +S3154001943080A50002128000338400400280A54002CC +S31540019440128000308400400280A580021280002DE7 +S315400194508400400280A5C0021280002A8400400296 +S3154001946080A20002128000278400400280A24002AE +S31540019470128000248400400280A2800212800021D2 +S315400194808400400280A2C0021280001E8400400275 +S3154001949080A300021280001B8400400280A3400288 +S315400194A0128000188400400280A3800212800015B9 +S315400194B08400400280A3C002128000128400400250 +S315400194C081E0000086A0E00116BFFFCE010000004A +S315400194D080A020001280000B80A0FFFF12800009AF +S315400194E080A160051280000780A1A00612800005B8 +S315400194F001000000A010000710800006C0242020B3 +S31540019500A01000079010200110800002D0242020D6 +S3154001951082100007C40040008188800001000000DD +S315400195200100000001000000C4186008C81860105E +S31540019530CC186018F0186020F4186028F8186030CC +S31540019540FC186038D0186040D4186048D81860506C +S31540019550DC186058E4006060C200600481948000B9 +S31540019560010000000100000001000000A0100007FA +S31540019570F004202081C7E00881E8000010BFFFFC0D +S31540019580B01000000100000081D8200081C3E0082E +S31540019590010000000328000084106004952AA00DF4 +S315400195A0D0204000922270009202400AD2208000D0 +S315400195B081C3E0080100000003100124C40061A436 +S315400195C003100124C2006194852A400286102001BD +S315400195D08328C00182007FFF900A00019000800825 +S315400195E08213C0007FFFE74C9E104000010000003F +S315400195F003100124C40061A403100124C200619434 +S31540019600852A4002861020018328C00182007FFFFF +S31540019610900A0001900080088213C0007FFFE73A5C +S315400196209E104000010000009DE3BFA02D100124C3 +S31540019630C205A198A410001880A0600004800020F3 +S31540019640B01020012F1001242B100124D005E1A4D4 +S3154001965029100124AC15A198AE15E1A4AA1561946F +S31540019660A8152184A0102000A2102000A6102001D8 +S31540019670C2054000832CC00182007FFF820C80011D +S31540019680912C00087FFFE72090020001C2050000EF +S31540019690901A0012820A000180A00001C2058000D2 +S315400196A0A2647FFFA004200180A0401034BFFFF1D7 +S315400196B0D005C00080A00011B0603FFF81C7E0081F +S315400196C081E800009DE3BFA003100124C40061A40A +S315400196D003100124C2006194B32E4002841020017C +S315400196E08328800182007FFF820E00019210001ABA +S315400196F07FFFE70B9006400181C7E00881E8000043 +S315400197009DE3BFA003100124C40061A403100124FA +S31540019710C2006194B32E4002841020018328800147 +S3154001972082007FFF820E00019210001A7FFFE6F849 +S315400197309006400181C7E00881E80000031001243A +S31540019740C400618C03100124C2006188852A40024D +S31540019750861020018328C00182007FFF900A000104 +S31540019760900080088213C0007FFFE6E39E10400010 +S31540019770010000009DE3BFA003100124C400618CD9 +S3154001978003100124C2006188B32E400284102001D7 +S315400197908328800182007FFF820E00019210001A09 +S315400197A07FFFE6D79006400181C7E00881E80000C7 +S315400197B09DE3BFA003100124C400618C0310012462 +S315400197C0C2006188B32E40028410200183288001A3 +S315400197D082007FFF820E00019210001A7FFFE6C4CD +S315400197E09006400181C7E00881E80000031001248A +S315400197F0C400618C03100124C2006188852A40029D +S31540019800861020018328C00182007FFF900A000153 +S31540019810900080088213C0007FFFE6B39E1040008F +S3154001982001000000033FFFBF821063089DE38001F2 +S315400198300310004C82106020C227BFEC0310004C7D +S31540019840821060602F10004CC227BFF4AE15E000B5 +S315400198503510004CEE27BFE8B416A0409010200604 +S315400198607FFF9E6EF427BFF07FFFE69B901020009E +S31540019870213FFFBF920A3FF0A014236890102000B9 +S315400198807FFFE697A0078010230000307FFFE69216 +S3154001989090102000808A001112BFFFFD01000000D8 +S315400198A081D82000230000307FFFE68B90102000F6 +S315400198B0808A001112BFFFFD010000002310012420 +S315400198C07FFFE6859010200013002040A410000879 +S315400198D09212600F921200097FFFE68190102000DC +S315400198E07FFFE67D90102008D02461807FFFE67AD5 +S315400198F09010200C09100124C40461809938A014E9 +S3154001990013100124980B200F8603200AC6212188B3 +S31540019910091001240310012496102400C621218C2C +S31540019920893A20148809200F9401200AD42261948F +S31540019930131001242D100124D0206190D42261A45A +S3154001994015100124932AC004833A2018D222A1A0DB +S315400199501510012482086003820060011B2000006B +S315400199608801200837100124C225A19892012002BE +S31540019970821020019328400992234009D222A184D2 +S315400199801510012487284003913A20109A23400359 +S31540019990992AC00CDA26E19CD822A17CA20A20078A +S315400199A08738A018A93CA00CBA210011A408E003ED +S315400199B08538A010A88D2003AA08A007A404A001F9 +S315400199C0AB284015A3284011AB284015901000172D +S315400199D0AA057FFFA610200002800123B807BFE831 +S315400199E0A6042020030048D182106167C224C0002A +S315400199F003226AF3821061EFC2242024C20C202084 +S31540019A0080A0600102800004010000007FFF9E0AE1 +S31540019A109010201AC20C202180A0602302800004ED +S31540019A20010000007FFF9E049010201BC20C2022E3 +S31540019A3080A0604502800004010000007FFF9DFE7A +S31540019A409010201CC20C202380A060670280000475 +S31540019A50010000007FFF9DF89010201DC20C2024BC +S31540019A6080A0608902800004010000007FFF9DF212 +S31540019A709010201EC20C202580A060AB02800004FD +S31540019A80010000007FFF9DEC9010201FC20C202694 +S31540019A9080A060CD02800004010000007FFF9DE6AA +S31540019AA090102020C20C202780A060EF0280000485 +S31540019AB0010000007FFF9DE090102021C21420206C +S31540019AC0832860108330601080A0612302800004E7 +S31540019AD0010000007FFF9DD890102022C41420224F +S31540019AE08528A010030000118530A01082106167FF +S31540019AF080A0800102800004010000007FFF9DCE0E +S31540019B0090102023C41420248528A010030000228D +S31540019B108530A010821061AB80A0800102800004D4 +S31540019B20010000007FFF9DC490102024C41420260C +S31540019B308528A010030000338530A010821061EF04 +S31540019B4080A0800102800005821020307FFF9DBAEF +S31540019B509010202582102030C22C2020030C08D1E1 +S31540019B6082106167C404C00080A0800102800005A4 +S31540019B70821020317FFF9DB0901020278210203126 +S31540019B80C22C2021030C0C5182106167C404C00011 +S31540019B9080A0800102800005821020327FFF9DA6B1 +S31540019BA09010202882102032C22C2022030C0C4C0B +S31540019BB082106267C404C00080A080010280000553 +S31540019BC0821020337FFF9D9C9010202982102033E4 +S31540019BD0C22C2023030C0C4C82106233C404C000F7 +S31540019BE080A0800102800005821020347FFF9D9273 +S31540019BF09010202A82102034C22C2024030D2AF3EF +S31540019C00821061EFC404202480A0800102800005F7 +S31540019C10821020357FFF9D889010202B82102035A1 +S31540019C20C22C2025030D0D73821061EFC40420243C +S31540019C3080A0800102800005821020367FFF9D7E34 +S31540019C409010202C82102036C22C2026030D0D4D5B +S31540019C50821062EFC404202480A0800102800005A6 +S31540019C60821020377FFF9D749010202D821020375F +S31540019C70C22C2027030D0D4D82106237C4042024C7 +S31540019C8080A0800102800005030000107FFF9D6ACD +S31540019C909010202E0300001082106041C234202013 +S31540019CA00310104C82106233C404C00080A08001AE +S31540019CB002800005030000107FFF9D5F9010202F5A +S31540019CC00300001082106243C23420220310105058 +S31540019CD082106243C404C00080A080010280000556 +S31540019CE0030000117FFF9D549010203003000011A6 +S31540019CF082106045C23420240311114D821062370F +S31540019D00C404202480A080010280000503000011C4 +S31540019D107FFF9D4990102031030000118210624758 +S31540019D20C23420260311115182106247C4042024F3 +S31540019D3080A0800102800004010000007FFF9D3E5B +S31540019D409010203281D82000C205A19880A06000E1 +S31540019D500480001B80A52000251001241910012430 +S31540019D60A414A198981321A48810200080A460000F +S31540019D709B2920100480000C82102000C40300009F +S31540019D8085290002840040028528A0028610400DE4 +S31540019D9082006001C624000280A0401132BFFFF953 +S31540019DA0C4030000C20480008801200180A0400451 +S31540019DB014BFFFF080A4600080A520001280002817 +S31540019DC0230000107FFFE54490102000808A001197 +S31540019DD012BFFFFDC205A19880A060000480001B50 +S31540019DE0010000002510012427100124A414A19884 +S31540019DF0A614E18410800006A2102000A20460018E +S31540019E0080A0401104800011010000009210001151 +S31540019E107FFFFDF890100010C204C000901C00089E +S31540019E20808A000132BFFFF6C20480007FFF9D0297 +S31540019E3090102033C2048000A204600180A040112A +S31540019E4014BFFFF4921000117FFFE523901020000C +S31540019E509212200F7FFFE5229010200081C7E00873 +S31540019E6091E820009FC20000A604E00180A480136F +S31540019E7004800008832CE002D00700019FC2000045 +S31540019E80A604E00180A4801314BFFFFC832CE002EA +S31540019E907FFFE51190102000B616E19C920A3FFC27 +S31540019EA0A8102000901020007FFFE50DB81020007B +S31540019EB0B207BFE810800005A610200080A48013D9 +S31540019EC024800012A8052001921000137FFFFE484E +S31540019ED090100017820A001580A0401512BFFFF8A6 +S31540019EE0A604E001C206C000901DC008900A000108 +S31540019EF080A00008B8673FFF80A4801314BFFFF419 +S31540019F0092100013A805200180A480140480000447 +S31540019F10832D200210BFFFE8EE0640017FFFE4EEED +S31540019F2090102000A6100008901020007FFFE4EC5E +S31540019F309214E00380A72000028001830100000003 +S31540019F40A73CE013808CE0031280018501000000EC +S31540019F5081D82000250000307FFFE4DF90102000EB +S31540019F60808A001212BFFFFDAA100008C205A198FF +S31540019F7080A060000480000F053FFFBF251001242B +S31540019F80A6102000A414A19892100013901000105E +S31540019F907FFFFDDC94102000C2048000A604E0018E +S31540019FA080A0401314BFFFFA92100013053FFFBF74 +S31540019FB0821020008410A36884078002C0204002DA +S31540019FC08200600480A0607C12BFFFFD010000009A +S31540019FD082102005C224000082102001C2242004E0 +S31540019FE082102002C224200882102003C224200CA1 +S31540019FF0901000107FFFFD8DA804200480A2200050 +S3154001A0000280014A01000000C204000080A06005F0 +S3154001A01002800004010000007FFF9C87901020060B +S3154001A0207FFFFD829010001080A2200012800199CE +S3154001A030C205A19880A060000480001201000000C2 +S3154001A04025100124A6102000A414A19892100013F3 +S3154001A050941020007FFFFD9C901000109210001379 +S3154001A060901000147FFFFD9894102000C2048000D8 +S3154001A070A604E00180A0401314BFFFF6921000131E +S3154001A0807FFFE4AB90100010A60420207FFFE4A8D8 +S3154001A090901000137FFFE4A6900420407FFFE4A4C4 +S3154001A0A090042060C205A19880A0600004800180D0 +S3154001A0B0B810200025100124A414A198AE10200048 +S3154001A0C0921000177FFFFD3D90100010C2048000E2 +S3154001A0D0901A200580A00008AE05E001B8673FFF51 +S3154001A0E080A0401714BFFFF89210001780A72000E8 +S3154001A0F00280016F01000000033FFFBF82106368C9 +S3154001A100C41F8001C43FBFA8C207BFA880A0600585 +S3154001A1101280000601000000C207BFAC80A06001AA +S3154001A12002800005C205A1987FFF9C43901020093B +S3154001A130C205A19880A06000048000382510012442 +S3154001A140B8102000A414A198AE1020009210001758 +S3154001A1507FFFFD1A90100014C2048000901A20015E +S3154001A16080A00008AE05E001B8673FFF80A0401718 +S3154001A17014BFFFF89210001780A720011280002714 +S3154001A180833D6013808860031280002A010000002D +S3154001A190C2042004C224000082102005C22400000B +S3154001A1A090102001D024200482102002C2242008CD +S3154001A1B082102003C224200C92100011400003B3E8 +S3154001A1C0912A001DA52A2002032EEEEE821063BBC2 +S3154001A1D0C22400127FFFFD159010001080A22000BE +S3154001A1E01280013701000000C4040012032EEEEE76 +S3154001A1F0A93D600C821063BB80A0800102BFFDFABD +S3154001A200A80D2003901020127FFF9C0BA93D600CE6 +S3154001A21010BFFDF5A80D20037FFF9C079010200A73 +S3154001A220833D60138088600302BFFFDA01000000AE +S3154001A2307FFFE42990102000033FFFF08210603F2A +S3154001A240920A00017FFFE426901020009210200020 +S3154001A25094102000AA07BFA87FFFFD1B9010001590 +S3154001A2607FFFE41D901020000303C00092120001FD +S3154001A2707FFFE41B90102000C205A19880A06000DA +S3154001A2800480000F8210200125100124A81020000F +S3154001A290A414A19892100014901000157FFFFD0A96 +S3154001A2A094102005C2048000A805200180A0401416 +S3154001A2B014BFFFFA9210001482102001C22FBFA8CA +S3154001A2C00300400082106005C407BFA880A080013A +S3154001A2D002800004010000007FFF9BD79010200BF5 +S3154001A2E07FFFE3FD90102000833A20068208600339 +S3154001A2F080A0600102800004010000007FFF9BCE28 +S3154001A3009010200C7FFFE3F4901020000303C0005F +S3154001A31025000030922A00017FFFE3F190102000D2 +S3154001A3207FFFE3ED90102000808A001212BFFFFDEF +S3154001A33092102000941020007FFFFCE3901000153E +S3154001A3407FFFE3E5901020002503C0009212001222 +S3154001A3507FFFE3E3901020007FFFE3DF90102000B2 +S3154001A360808A001202BFFFFDAE100008C205A19807 +S3154001A37080A060000480001025100124B81020013F +S3154001A380B92F0011A414A198B8073FFFA8102000C7 +S3154001A39092100014901000157FFFFCDA9410001CF7 +S3154001A3A0C2048000A805200180A0401414BFFFFA12 +S3154001A3B0921000141303C00090102000922DC00982 +S3154001A3C07FFFE3C72503C0007FFFE3C39010200052 +S3154001A3D0808A001212BFFFFD01000000C407BFA81A +S3154001A3E0030040008210600580A0800102800004C5 +S3154001A3F0010000007FFF9B909010200D7FFFE3B688 +S3154001A40090102000833A20088208600380A06001F2 +S3154001A41002800005841020117FFF9B879010200F3A +S3154001A4208410201186102055901020002500003000 +S3154001A430C43FBFF87FFFE3A801000000033C3FFF94 +S3154001A4400503C0008210633F820A0001901020007C +S3154001A4507FFFE3A3921040027FFFE39F901020000D +S3154001A460808A001212BFFFFDAE07BFF87FFFE3BE31 +S3154001A47090100017C205A19880A060000480000FCB +S3154001A4800100000025100124AA07BFFCA414A198CD +S3154001A490A810200092100014901000157FFFFC8A2E +S3154001A4A094102055C2048000A805200180A04014C4 +S3154001A4B014BFFFFA921000147FFFE3AB9010001710 +S3154001A4C080A220110280008180A260557FFF9B5AA5 +S3154001A4D0901020107FFFE38090102000833A2006E1 +S3154001A4E08208600380A0600102800004A410000875 +S3154001A4F07FFF9B5190102010133C3FF0901020009D +S3154001A5009212603F920C80097FFFE375250000306F +S3154001A5107FFFE37190102000808A001212BFFFFD79 +S3154001A520AA10000830BFFF1B7FFF9B4390102005F8 +S3154001A530C204000080A0600512BFFEB80100000001 +S3154001A54030BFFEB87FFF9B3C90102001A73CE01333 +S3154001A550808CE00302BFFE7F010000007FFFE35EC7 +S3154001A56090102000133FFFF0AA1000089212603F9E +S3154001A570920A00097FFFE35A901020007FFFE2B163 +S3154001A580A810001A0303C000133C3FFF901020009F +S3154001A590921263FC920D4009A61020007FFFE35002 +S3154001A5A09212400192100013901000147FFFFC722A +S3154001A5B094102000A604E00180A4801334BFFFFB61 +S3154001A5C092100013901020001303C0007FFFE34454 +S3154001A5D0921540097FFFE29B010000007FFFE33EA9 +S3154001A5E090102000833A200A8208600380A060010F +S3154001A5F002800005250000307FFF9B0F901020024E +S3154001A600250000307FFFE33490102000808A00123D +S3154001A61012BFFFFD0100000001000000920A3FFC4D +S3154001A6207FFFE32F9010200090100014921020001D +S3154001A6307FFFFC6094102000010000007FFFE326AD +S3154001A64090102000033C3FFF821063FC820A000108 +S3154001A650901020007FFFE32292106003010000006A +S3154001A6607FFFE278010000007FFFE31B901020008E +S3154001A670833A200C8208600380A0600102BFFE3548 +S3154001A680010000007FFF9AEC9010200330BFFE319D +S3154001A6907FFF9AE990102007C205A19880A060002B +S3154001A6A034BFFE692510012430BFFE767FFF9AE252 +S3154001A6B09010200810BFFE92033FFFBF7FFF9ADE36 +S3154001A6C09010201130BFFEC912BFFF81010000006A +S3154001A6D030BFFF819DE3BFA07FFFFC530100000017 +S3154001A6E013002040B01000089212600F7FFFE2FC79 +S3154001A6F09010200081C7E00881E800009DE3BFA0DB +S3154001A7007FFF9ABF1100412C82102007EC062004DE +S3154001A710E0062004C2262008AC0DA003AC05A0012A +S3154001A72001000000C02600007FFF9ABC9010200A5D +S3154001A7300300020084103FFFB8060001C426000151 +S3154001A740A13C2002292AAAAAA00C27FFA81522AAC1 +S3154001A7502B155555A12C2008AA1561558810001CAA +S3154001A760C2060001A8084014AA0840159A10200004 +S3154001A77080A420002280000D9A03600186012020DA +S3154001A7808410000482102000EA208000E820C000E6 +S3154001A790820060108400A04080A0401006BFFFFBED +S3154001A7A08600E0409A03600180A5800D14BFFFF149 +S3154001A7B0880120043B000200AE102000BA17602039 +S3154001A7C0BA06001D80A4200022800017AE05E001D4 +S3154001A7D0A610001CA410001DA2102000C204C00037 +S3154001A7E080A0401502800004010000007FFF9A927C +S3154001A7F090102001C204800080A0401422800005F0 +S3154001A800A20460107FFF9A8C90102001A204601070 +S3154001A810A604E04080A4401006BFFFF1A404A04076 +S3154001A820AE05E00180A5801714BFFFE7BA076004B3 +S3154001A8307FFF9A7A9010200C2F0008001B15555562 +S3154001A840AE060017092AAAAA9A136155881122AAA7 +S3154001A85098100017961020001500020080A42000D1 +S3154001A8602280000D9602E001860320048410000C2C +S3154001A87082102000DA208000C820C00082006002D9 +S3154001A8808400A00880A0401006BFFFFB8600E008B8 +S3154001A8909602E00180A5800B14BFFFF19803000AE0 +S3154001A8A02B155555292AAAAAAA156155A81522AAD2 +S3154001A8B0BA1020003900020080A42000228000172F +S3154001A8C0BA076001A605E004A4100017A2102000F3 +S3154001A8D0C204800080A040150280000401000000EF +S3154001A8E07FFF9A5590102003C204C00080A04014F7 +S3154001A8F022800005A20460027FFF9A4F9010200338 +S3154001A900A2046002A404A00880A4401006BFFFF17F +S3154001A910A604E008BA07600180A5801D14BFFFE7C1 +S3154001A920AE05C01C2F0008001B155555AE15E00499 +S3154001A930092AAAAAAE0600179A136155881122AAB6 +S3154001A94098100017961020001500020080A42000E0 +S3154001A9502280000D9602E00186033FFC8410000C24 +S3154001A96082102000DA208000C820C00082006002E8 +S3154001A9708400A00880A0401006BFFFFB8600E008C7 +S3154001A9809602E00180A5800B14BFFFF19803000AEF +S3154001A9902B155555292AAAAAAA156155A81522AAE1 +S3154001A9A0BA1020003900020080A42000228000173E +S3154001A9B0BA076001A605FFFCA4100017A2102000EB +S3154001A9C0C204800080A040150280000401000000FE +S3154001A9D07FFF9A1990102004C204C00080A0401441 +S3154001A9E022800005A20460027FFF9A139010200482 +S3154001A9F0A2046002A404A00880A4401006BFFFF18F +S3154001AA00A604E008BA07600180A5801D14BFFFE7D0 +S3154001AA10AE05C01C82102005C22620080320000076 +S3154001AA20C226000081C7E00881E80000033FFFBF5E +S3154001AA30821063609DE380017FFFFAD425200000E8 +S3154001AA404000016E2D0000307FFFE2239010200868 +S3154001AA50AA1000087FFFE2209010200C7FFF9A1277 +S3154001AA60AE100008912A20047FFF99EC9002200C39 +S3154001AA7082102001873D60148608E00F8600E00AB7 +S3154001AA80A73D6010A13D6018853DE014A60CE00786 +S3154001AA908408A00FA604E0028400A00AA728401358 +S3154001AAA0A00C2003A93DE010A0042001A80D200719 +S3154001AAB0A12C0003A8052002AA2480108604FFFFCA +S3154001AAC0A9284014A33DE01882053FFFA20C60036C +S3154001AAD0A2046001AA154003A32C4002A4248011BC +S3154001AAE0A41480017FFFE1FC90102000808A0016AB +S3154001AAF012BFFFFD133FFFBF90100011921263C0BA +S3154001AB0015155555920780097FFFE1869412A15587 +S3154001AB1080A220001280007001000000133FFFBF99 +S3154001AB2090100011921263C0152AAAAA92078009B1 +S3154001AB307FFFE1909412A2AA80A2200012800063B6 +S3154001AB40010000007FFF99D801000000912A2004EE +S3154001AB507FFF99B29002200A4000012501000000C2 +S3154001AB60032AAAAA981062AA8210620090100011C4 +S3154001AB70920C8001941000127FFFE1A796100014F9 +S3154001AB8080A220001280004D01000000031555559A +S3154001AB9098106155821061009010001194100012B6 +S3154001ABA0961000147FFFE19C920C800180A2200048 +S3154001ABB01280003F010000007FFF99BB01000000A9 +S3154001ABC0912A20047FFF99959002200B9010001046 +S3154001ABD0131555557FFFE1779212615580A22000EA +S3154001ABE01280002F0100000090100010132AAAAA1B +S3154001ABF07FFFE170921262AA80A220001280002596 +S3154001AC00010000007FFF99A801000000912A20045D +S3154001AC107FFF998290022009901000109210001532 +S3154001AC2094100013172AAAAA7FFFE16E9612E2AA90 +S3154001AC3080A2200012800013010000009010001035 +S3154001AC409210001594100013171555557FFFE165B5 +S3154001AC509612E15580A22000028000040100000006 +S3154001AC607FFF9975901020087FFFFA48B0102000A9 +S3154001AC70400000E20100000081C7E00881E80000D1 +S3154001AC807FFF996D9010200710BFFFEE90100010C6 +S3154001AC907FFF99699010200630BFFFDB7FFF9966E1 +S3154001ACA09010200510BFFFD2901000107FFF9962CF +S3154001ACB09010200430BFFFC17FFF995F90102003A1 +S3154001ACC010BFFFB4031555557FFF995B90102002C5 +S3154001ACD030BFFF9D7FFF99589010200110BFFF9113 +S3154001ACE0133FFFBF81C3E0089144400080800000CC +S3154001ACF0151001209412A1EC9010200092102246CA +S3154001AD0081800000010000000100000001000000F8 +S3154001AD10D00280009122400881C3E0080100000072 +S3154001AD2081800000901020018090200180F0200158 +S3154001AD301280004B010000000100000001000000EC +S3154001AD40010000008090200180F82001128000441B +S3154001AD5001000000010000000100000001000000A8 +S3154001AD608090200180FA3FFF010000001680003CE0 +S3154001AD700100000001000000010000000100000088 +S3154001AD808180000090102001809020010100000088 +S3154001AD9080D0200112800032010000000100000035 +S3154001ADA0010000000100000080D220010280002C39 +S3154001ADB00100000080D23FFF1680002901000000FB +S3154001ADC080DA3FFF9340000080A27FFF128000247B +S3154001ADD00100000080D23FFF934800009332601487 +S3154001ADE0920A600F80A260081280001D01000000D7 +S3154001ADF08180000090102001945220049452A004B6 +S3154001AE009452A00496A2A0401280001501000000B1 +S3154001AE10818000009010200280A000003280001046 +S3154001AE209052000880A220021280000D010000000D +S3154001AE30818000009010200280A0000001000000E7 +S3154001AE40328000079052000880A22002128000043E +S3154001AE500100000081C3E0089010200181C3E00891 +S3154001AE60901000001315555592126155A582400068 +S3154001AE70010000000100000001000000954480002F +S3154001AE8080A2400A1280004301000000923A40002D +S3154001AE90A582400001000000010000000100000001 +S3154001AEA09544800080A2400A1280003A01000000C9 +S3154001AEB01100003F901223FFA58000008180000011 +S3154001AEC001000000010000000100000093F23FFF75 +S3154001AED09A10000993F23FFF93F23FFF93F23FFF2F +S3154001AEE093F23FFF93F23FFF93F23FFF93F23FFF0F +S3154001AEF09940000097448000153FFC009412A00839 +S3154001AF0080A2400A1280002380A2400B12800021B9 +S3154001AF1080A320071280001F113FFF80901220015D +S3154001AF2080A340081280001B1100003F901223FFAE +S3154001AF30A5800000818000000100000001000000A2 +S3154001AF400100000093FA3FFF93FA3FFF93FA3FFF58 +S3154001AF5093FA3FFF93FA3FFF93FA3FFF93FA3FFF7E +S3154001AF6093FA3FFF994000009744800080A2600811 +S3154001AF701280000880A260081280000680A320008B +S3154001AF80128000040100000081C3E00890102001F6 +S3154001AF9081C3E008901000008180000090102002DB +S3154001AFA080A00000328000109072000880A220022A +S3154001AFB01280000D010000008180000090102002E7 +S3154001AFC080A0000001000000328000079072000856 +S3154001AFD080A22002128000040100000081C3E00823 +S3154001AFE09010200181C3E00890100000C0A00040ED +S3154001AFF081C3E00801000000110020409012200F9B +S3154001B000D0A0004081C3E008010000009DE3BFA03D +S3154001B0107FFFE0B190102008A21000087FFFE0AE4C +S3154001B0209010200CA0100008C0A00040833C601482 +S3154001B0308208600F8200600A913C6018900A2003E2 +S3154001B040900220017FFFE01B912A0001833C2014DE +S3154001B0508208600F8200600A913C2018900A200302 +S3154001B060900220017FFFE021912A00017FFFF947ED +S3154001B07001000000110020409012200FD0A0004096 +S3154001B08081C7E00881E8000098120009818200002A +S3154001B0909AAB2FFF0280002598880000992300096A +S3154001B0A09923000999230009992300099923000945 +S3154001B0B09923000999230009992300099923000935 +S3154001B0C09923000999230009992300099923000925 +S3154001B0D09923000999230009992300099923000915 +S3154001B0E09923000999230009992300099923000905 +S3154001B0F099230009992300099923000999230009F5 +S3154001B10099230009992300099923000999230009E4 +S3154001B11099230009992300099923000999230000DD +S3154001B12081C3E00891400000992300099923000951 +S3154001B13099230009992300099923000999230009B4 +S3154001B14099230009992300099923000999230009A4 +S3154001B1509923000999230009992300009B40000087 +S3154001B160992B200C9B33601481C3E0089013400C4B +S3154001B1701080000B8610200080924008168000083F +S3154001B18086100008809240001680000480920000DC +S3154001B1901680000392200009902000089A924000F0 +S3154001B1A0128000059610000891D0200281C3E00864 +S3154001B1B09010000080A2C00D0A80009594100000F6 +S3154001B1C00302000080A2C0010A80002898100000F6 +S3154001B1D080A340011A80000D841020019B2B60043E +S3154001B1E010BFFFFC980320019A83400D1A80000787 +S3154001B1F08400A001832860049B3360019A034001C7 +S3154001B200108000078420A00180A3400B0ABFFFF7EE +S3154001B21001000000028000020100000084A0A0019C +S3154001B22006800076010000009622C00D9410200190 +S3154001B2301080000A01000000952AA0010680000541 +S3154001B2409B3360019622C00D108000049402A00138 +S3154001B2509602C00D9422A00184A0A00116BFFFF75B +S3154001B2608092C000308000659B2B600480A3400B18 +S3154001B27008BFFFFE988320010280006598232001C4 +S3154001B2808092C000952AA0040680002F9B3360015E +S3154001B29096A2C00D068000179B33600196A2C00D91 +S3154001B2A00680000B9B33600196A2C00D0680000507 +S3154001B2B09B33600196A2C00D108000509402A00FEE +S3154001B2C09682C00D1080004D9402A00D9682C00D4D +S3154001B2D0068000059B33600196A2C00D1080004791 +S3154001B2E09402A00B9682C00D108000449402A009DE +S3154001B2F09682C00D0680000B9B33600196A2C00D5D +S3154001B300068000059B33600196A2C00D1080003B6C +S3154001B3109402A0079682C00D108000389402A005C1 +S3154001B3209682C00D068000059B33600196A2C00D32 +S3154001B330108000329402A0039682C00D1080002F27 +S3154001B3409402A0019682C00D068000179B336001CE +S3154001B35096A2C00D0680000B9B33600196A2C00DDC +S3154001B360068000059B33600196A2C00D1080002324 +S3154001B3709402BFFF9682C00D108000209402BFFD4B +S3154001B3809682C00D068000059B33600196A2C00DD2 +S3154001B3901080001A9402BFFB9682C00D10800017E0 +S3154001B3A09402BFF99682C00D0680000B9B33600163 +S3154001B3B096A2C00D068000059B33600196A2C00D82 +S3154001B3C01080000E9402BFF79682C00D1080000BCC +S3154001B3D09402BFF59682C00D068000059B3360013D +S3154001B3E096A2C00D108000059402BFF39682C00D4F +S3154001B3F0108000029402BFF198A3200116BFFFA25C +S3154001B4008092C000268000029602C0098090C0004A +S3154001B410268000029620000B81C3E0089010000BA5 +S3154001B42092100008941020009010200096102000E1 +S3154001B4308213C000400001E39E104000010000005D +S3154001B4409210000803100121D00062A88213C000A7 +S3154001B450400002629E104000010000009210000868 +S3154001B46003100121D00062A88213C00040000003EE +S3154001B4709E104000010000009DE3BFA08410200003 +S3154001B4808206600B80A0601608800004A010201080 +S3154001B490A0087FF88534201F80A400190A80004641 +S3154001B4A08088A0FF1280004401000000400001AFE7 +S3154001B4B09010001880A421F7188000418334200998 +S3154001B4C023100120A214622082044010E400600C83 +S3154001B4D080A480010280010F99342003C604A00490 +S3154001B4E0C404A00CC204A0088608FFFC860480039D +S3154001B4F0C800E00488112001C220A008C820E00449 +S3154001B500C420600C9010001840000192B004A008BD +S3154001B51081C7E00881E80000E6046008E804E00429 +S3154001B520A80D3FFC8225001080A0600F148000D238 +S3154001B53080A40014031001232F100121EA0060FCAE +S3154001B540C205E22CAA05601080A07FFF028000049C +S3154001B550AA054010AA056FFFAA0D700090100018A9 +S3154001B560400001889210001580A23FFF0280000929 +S3154001B570A41000088404C01480A08008088000EC50 +S3154001B5802D10012380A44013028000EAC205A108C0 +S3154001B590C2046008C40060048408BFFC8220801095 +S3154001B5A080A0600F1480012280A40002400001693E +S3154001B5B09010001881C7E00891E8200099342003D3 +S3154001B5C080A060000280000F872B200380A06004CA +S3154001B5D008800092993420069800605B80A0601430 +S3154001B5E008800008872B200380A06054188001132F +S3154001B5F080A061549934200C9803206E872B200338 +S3154001B60023100120A214622086044003E400E00CCA +S3154001B61080A0C0123280000BC404A0041080001028 +S3154001B6209803200136800068C604A00CE404A00CEF +S3154001B63080A0C0122280000A98032001C404A004FD +S3154001B6408408BFFC8220801080A0600F04BFFFF6F3 +S3154001B65080A0600098033FFF980320010710012056 +S3154001B6608610E228E400E00880A0C0122280002A69 +S3154001B670C2046004C404A0048408BFFC8220801074 +S3154001B68080A0600F1480008A80A06000C620E00C74 +S3154001B69016800059C620E00880A0A1FF28800062DC +S3154001B6A08530A0038330A00980A06004188000E99A +S3154001B6B08800605B8930A006880120389B292003D9 +S3154001B6C09A04400DC203600880A0400D32800008F4 +S3154001B6D0C8006004108000E9DA04600480A34001D8 +S3154001B6E022800008C400600CC800600488093FFC41 +S3154001B6F080A080042ABFFFFAC2006008C400600C23 +S3154001B700C424A00CC224A008E420600CE420A008B4 +S3154001B710C2046004853B2002881020018929000269 +S3154001B72080A040042ABFFF7EE6046008808840046A +S3154001B7302280004B980B3FFC952B20039610000C62 +S3154001B7409404400A9A10000AE403600C80A3401254 +S3154001B7503280000BC404A004108000589602E00118 +S3154001B76036800019C604A00CE404A00C80A3401244 +S3154001B770228000529602E001C404A0048408BFFC62 +S3154001B7808220801080A0600F04BFFFF680A0600079 +S3154001B790DA04A00CC804A00884048010A014200177 +S3154001B7A0C8236008DA21200CC420E00CC420E0083C +S3154001B7B0E024A004C2208001C620A0081080001009 +S3154001B7C0C620A00CC204A00884048002C800A004BC +S3154001B7D088112001C220E008C820A004C620600CC0 +S3154001B7E090100018400000DBB004A00881C7E008B3 +S3154001B7F081E8000084048002C200A0048210600136 +S3154001B800C220A00490100018400000D2B004A00845 +S3154001B81081C7E00881E800009803203810BFFF790E +S3154001B820872B20038928A00388044004DA012008D5 +S3154001B830D6046004C824A00CDA24A0088538A002E6 +S3154001B84082102001E423600C83284002E421200871 +S3154001B8508210400B10BFFFB0C22460048929200129 +S3154001B8608088400402BFFFFE9803200410BFFFB446 +S3154001B870952B200338BFFF3103100123E4046008F0 +S3154001B88084048010A014200182106001E024A004E9 +S3154001B890C220A00490100018C4246008400000ADE6 +S3154001B8A0B004A00881C7E00881E800008404801044 +S3154001B8B010BFFFBEA0142001808AE00312BFFFA380 +S3154001B8C09A04A008808B20030280009C8202BFF864 +S3154001B8D0D400600880A2800122BFFFFB98033FFF8E +S3154001B8E0C20460048929200180A1000118BFFF0B11 +S3154001B8F080A1200022BFFF0AE6046008808900017A +S3154001B900228000928929200110BFFF8C9810000BDC +S3154001B9108204A008E400600C80A0401202BFFF50E0 +S3154001B9209803200210BFFEEFC604A004C205A10879 +S3154001B9308205400180A0801202800067C225A108CD +S3154001B940C605E22C80A0FFFF2280006B0310012177 +S3154001B9508204800184204002C425A108848CA0076A +S3154001B9600280000603000004821020088220400263 +S3154001B970A404800182207000AA048015901000184A +S3154001B980AA0D6FFFAA2040154000007E92100015B7 +S3154001B99080A23FFF028000608410200184220012B1 +S3154001B9A0840080158410A001C205A10882054001CA +S3154001B9B0C225A108C424A00480A44013028000101B +S3154001B9C0E424600880A5200F0880003A84053FF4EE +S3154001B9D08408BFF88604C002C804E004880920012F +S3154001B9E088108004C824E00488102005C820E00897 +S3154001B9F080A0A00F18800042C820E0040510012352 +S3154001BA00C600A10080A0400338800002C220A100E8 +S3154001BA1005100123C600A10480A0400338BFFEDD06 +S3154001BA20C220A10410BFFEDCC204600828BFFF95F6 +S3154001BA30E404600830BFFEDE1880001780A065541C +S3154001BA409934200F9803207710BFFEEE872B2003F1 +S3154001BA5080A0601408BFFF1B9B29200380A060546F +S3154001BA601880001780A061548930A00C8801206E8F +S3154001BA7010BFFF149B29200389392002841020011D +S3154001BA808528800484134002C424600410BFFF1D2E +S3154001BA9084100001861023F018BFFEDA9810207E2C +S3154001BAA0993420129803207C10BFFED6872B2003A1 +S3154001BAB08210200110BFFEB7C224A00418800018CE +S3154001BAC080A065548930A00F8801207710BFFEFD04 +S3154001BAD09B2920038088AFFF12BFFF9BC605E22C3E +S3154001BAE0C4046008860540148610E00110BFFFC4F7 +S3154001BAF0C620A00410BFFF9AE420622C9204E008FD +S3154001BB00400000B6901000180310012310BFFFBC7F +S3154001BB10C200610810BFFFA5AA1020009A1023F0A9 +S3154001BB2018BFFEE88810207E8930A0128801207C4B +S3154001BB3010BFFEE49B292003C2046004822840040E +S3154001BB4010BFFF68C224600410BFFF6D9602E00477 +S3154001BB5011100121901222308213C000400003A12E +S3154001BB609E10400001000000111001219012223068 +S3154001BB708213C000400003859E1040000100000072 +S3154001BB809DE3BFA02110012490100019400001A897 +S3154001BB90C02421A880A23FFF02800004C20421A83C +S3154001BBA081C7E00891E8000880A0600002BFFFFD60 +S3154001BBB001000000C226000081C7E00891E80008A4 +S3154001BBC09DE3BFA021100123400003709014213052 +S3154001BBD003100076E20061D0D004614880A22000C3 +S3154001BBE02280003D9004614CC202200480A0601F67 +S3154001BBF01480001E0100000080A620000280001271 +S3154001BC0084006002C4022004820060228600A042B1 +S3154001BC10892860028728E002C2022188F4220004B2 +S3154001BC20F6220003861020018728C00282104003B5 +S3154001BC30C222218880A620020280001982100002B9 +S3154001BC40840060028528A00282006001C22220048D +S3154001BC50F2220002B010200040000362901421300D +S3154001BC6081C7E00881E800007FFFFDFD901021902B +S3154001BC7080A220002280001A90142130C20461481B +S3154001BC80C2220000D0246148C0222004C02221885B +S3154001BC90C022218C10BFFFD982102000C202218C04 +S3154001BCA08610400382100002840060028528A002AB +S3154001BCB0C622218C82006001F2220002C2222004A7 +S3154001BCC0B0102000400003479014213081C7E0089E +S3154001BCD081E8000010BFFFC5D02461484000034100 +S3154001BCE0B0103FFF81C7E00881E800009DE3BFA097 +S3154001BCF07FFFFF9E9010001821100120A0142220E2 +S3154001BD00C2042008E2006004A20C7FFC82046FEFAB +S3154001BD10B2204019B20E7000B206700080A66FFFC5 +S3154001BD2004800009901000187FFFFF9692102000B2 +S3154001BD30C20420088200401180A20001028000074F +S3154001BD4090100018901000187FFFFF82B01020005D +S3154001BD5081C7E00881E800007FFFFF8A9220001931 +S3154001BD6080A23FFF0280000EA2244019C40420088D +S3154001BD70A214600103100123E220A00490100018D0 +S3154001BD80B0102001C4006108B22080197FFFFF7105 +S3154001BD90F220610881C7E00881E800009010001890 +S3154001BDA07FFFFF7892102000C20420088422000100 +S3154001BDB080A0A00F04BFFFE407100121C600E22CBA +S3154001BDC090220003071001238410A001D020E1082E +S3154001BDD010BFFFDDC42060049DE3BFA080A66000C4 +S3154001BDE002800050010000007FFFFF6090100018A4 +S3154001BDF084067FF8D800A004820B3FFE091001207B +S3154001BE008600800188112220DA00E004D60120084C +S3154001BE1080A2C003028000639A0B7FFCDA20E00413 +S3154001BE20808B20011280000E98102000D8067FF8E2 +S3154001BE308420800C8200400CD600A008980120087E +S3154001BE4080A2C00C0280000698102001D400A00CEC +S3154001BE50D422E00C98102000D622A0089600C00DEE +S3154001BE60D602E004808AE0013280000A8610600131 +S3154001BE7080A320000280002D8200400DDA00E008F8 +S3154001BE80C600E00CC623600CDA20E008861060018B +S3154001BE90C220800180A3200012800020C620A00479 +S3154001BEA080A061FF288000308330600387306009BD +S3154001BEB080A0E004188000529800E05B993060064B +S3154001BEC0980320389B2B20039A01000DC603600876 +S3154001BED080A0C00D32800008C800E00410800052E6 +S3154001BEE0DA01200480A3400322800008C200E00C4E +S3154001BEF0C800E00488093FFC80A040042ABFFFFA3D +S3154001BF00C600E008C200E00CC220A00CC620A00872 +S3154001BF10C420E00CC42060087FFFFF0E81E80000CA +S3154001BF2081C7E00881E80000DA00E0081710012027 +S3154001BF309612E22880A3400B32BFFFD3C600E00C25 +S3154001BF40C423600CC4236008C2208001DA20A00803 +S3154001BF5082106001DA20A00CC220A0047FFFFEFD02 +S3154001BF6081E800008728600386010003DA00E008C3 +S3154001BF70C620A00CDA20A008D8012004C423600CF6 +S3154001BF80C420E008833860028410200183288001A0 +S3154001BF9082130001C22120047FFFFEEE81E80000EA +S3154001BFA0808B20011280000982034001D8067FF868 +S3154001BFB08420800CDA00A00CC600A0088200400C48 +S3154001BFC0C6236008DA20E00CC421200886106001EF +S3154001BFD0C620A00405100121C400A22880A0400269 +S3154001BFE00ABFFFCE03100123D20060FC7FFFFF4052 +S3154001BFF0901000187FFFFED781E8000080A0E01472 +S3154001C00008BFFFB29B2B200380A0E0541880000D8F +S3154001C01080A0E1549930600C9803206E10BFFFABAD +S3154001C0209B2B2003993B2002821020018328400C40 +S3154001C03082134001C221200410BFFFB482100003C5 +S3154001C0401880000680A0E5549930600F9803207748 +S3154001C05010BFFF9E9B2B20039A1023F018BFFF9B16 +S3154001C0609810207E993060129803207C10BFFF976C +S3154001C0709B2B20039DE3BFA080A620000280001FCA +S3154001C08003100121E406214880A4A0002280001467 +S3154001C090C206203CC204A004A0807FFF2C80000C75 +S3154001C0A0E4048000A2006001A32C6002A204801176 +S3154001C0B0C20440009FC04000A2047FFCA0843FFF11 +S3154001C0C03CBFFFFDC2044000E404800080A4A00000 +S3154001C0D032BFFFF2C204A004C206203C80A0600029 +S3154001C0E002800004010000009FC04000901000182B +S3154001C0F081C7E00881E8000010BFFFE3F00062A8B5 +S3154001C1009DE3BFA0D206400080A2600002800004E9 +S3154001C110010000007FFFFFFB901000187FFFFF2FFB +S3154001C12081E80000010000009DE3BFA0031001214A +S3154001C130C20062A880A60001028000320100000010 +S3154001C140D206204C80A2600022800016E0062148DB +S3154001C150A2102000E002401180A420002280000BA2 +S3154001C160A204600492100010901000187FFFFF1B7C +S3154001C170E004000080A4200012BFFFFC92100010D2 +S3154001C180D206204CA204600480A4603C32BFFFF377 +S3154001C190E00240117FFFFF1190100018E006214890 +S3154001C1A080A420002280000ED2062054A206214CF3 +S3154001C1B080A400112280000AD20620549210001059 +S3154001C1C0901000187FFFFF05E004000080A4401096 +S3154001C1D012BFFFFC92100010D206205480A26000CC +S3154001C1E022800005C20620387FFFFEFC9010001811 +S3154001C1F0C206203880A0600032800004C206203C7E +S3154001C20081C7E00881E800009FC0400090100018F7 +S3154001C210F20622E080A6600002BFFFFA010000009C +S3154001C2207FFFFFB881E800000100000005100124EE +S3154001C230C200A1AC80A06000228000060310012448 +S3154001C24090004008D020A1AC81C3E00890100001C5 +S3154001C250821061B890004008C220A1ACD020A1ACA8 +S3154001C26081C3E00890100001A7500000AE10000104 +S3154001C2708334E00129100123E805203CA92CC01490 +S3154001C2808215000181E0000081904000010000001C +S3154001C2900100000001000000E03BA000E43BA008D3 +S3154001C2A0E83BA010EC3BA018F03BA020F43BA028B3 +S3154001C2B0F83BA030FC3BA03881E800008210001713 +S3154001C2C081C4400081CC80000100000001000000D3 +S3154001C2D001000000A7500000A92CE0012B1001230A +S3154001C2E0EA05603CAB34C015AA154014819540005F +S3154001C2F001000000010000000100000081E800008B +S3154001C30081E80000E01BA000E41BA008E81BA01088 +S3154001C310EC1BA018F01BA020F41BA028F81BA03092 +S3154001C320FC1BA03881E0000081E0000081C4400090 +S3154001C33081CC8000A750000029100073ADC520783C +S3154001C3400100000027100123A614E01CE024C000D0 +S3154001C350818C202001000000010000000100000046 +S3154001C3609DE3BFA09DE3BFA09DE3BFA09DE3BFA00A +S3154001C3709DE3BFA09DE3BFA09DE3BFA081E8000070 +S3154001C38081E8000081E8000081E8000081E80000C2 +S3154001C39081E8000081E8000027100123A614E01C73 +S3154001C3A0C024C000E203A068A4046004E223A064A0 +S3154001C3B0E423A06810800257AC1000002910012325 +S3154001C3C0A8152000C2252000C8252004E0252010FC +S3154001C3D0E2252014E4252018E825201C81E80000E8 +S3154001C3E08348000082106F008188602001000000B0 +S3154001C3F0010000000100000009100123C801203C92 +S3154001C40081E000008821200180A920FF02800003ED +S3154001C410010000000100000080A1000012BFFFF9E9 +S3154001C4200100000009100123C801203C81E80000F9 +S3154001C43080A920FF028000030100000001000000E6 +S3154001C4408821200180A1000012BFFFF901000000F0 +S3154001C45081E0000029100123A8152000C805200409 +S3154001C460C2052000E0052010E2052014E40520184D +S3154001C470C025201C818C2000010000000100000025 +S3154001C4800100000081C4800081CCA004A0142F00CB +S3154001C490818C000001000000010000000100000045 +S3154001C4A081C4800081CCA00480A660021280000570 +S3154001C4B0A8142F00818D0000B01420203080001F69 +S3154001C4C080A6600312800006A80E2F00AA2C2F001A +S3154001C4D0A8154014818D00003080001880A66004A4 +S3154001C4E012800008A9480000A8152040818D00004F +S3154001C4F00100000001000000010000003080000F33 +S3154001C50080A6600512800008A9480000A82D204099 +S3154001C510818D0000010000000100000001000000C3 +S3154001C5203080000680A660061280000301000000EC +S3154001C53030BFFFA391D0200081C4800081CCA004EC +S3154001C5409210200381C3E00891D02002921020026C +S3154001C55081C3E00891D020029210200681C3E008F1 +S3154001C56091D0200281C3E0080100000081C3E008A8 +S3154001C5700100000081C3E00801000000AE25A010C3 +S3154001C580A75000002D100071AC15A1902910007321 +S3154001C59081C522200100000011100123901220289C +S3154001C5A0D202000092026001D2220000932DE008DF +S3154001C5B0902C2F0092120009111001239012202075 +S3154001C5C0D002000080A000082280000292126F0073 +S3154001C5D0818A602001000000010000000100000086 +S3154001C5E090100017400000379203A06092142F006C +S3154001C5F0818A602001000000010000000100000066 +S3154001C6001110012390122028D202000092226001CB +S3154001C610D222000010800222AC1000009DE3BFA090 +S3154001C6201B100123892E60029A1361A480A6601F04 +S3154001C6308210200014800017C6034004B32E600404 +S3154001C6401910012380A0E000981322240280000DD6 +S3154001C6508406400C80A0C0021280000682100003AE +S3154001C6601080000EC206400C2280000CC206400C0F +S3154001C670C200600C80A0600012BFFFFC80A0800158 +S3154001C680C4234004F026400CC620A00C8210200092 +S3154001C69081C7E00891E80001F026400C81C7E00817 +S3154001C6A091E80001912A200203100123821061A41E +S3154001C6B0C4004008C422600C81C3E008D22040086F +S3154001C6C09DE3BFA0051001238210A02CC200600487 +S3154001C6D080A0401822800040C400A02C80A62000E3 +S3154001C6E022800002B0100001A32E20020310012374 +S3154001C6F0821061A4E000401180A420000280003431 +S3154001C700291001242D1001242B1001242710012466 +S3154001C710A8152024AC15A0A8AA1560AC1080001D50 +S3154001C720A614E028A41000138400A001C42480119B +S3154001C730C405800080A0A00022800006D204200803 +S3154001C7409FC0800001000000C2040000D2042008FE +S3154001C750901000189FC0400094100019C205400077 +S3154001C76080A0600022800005C20480119FC0400065 +S3154001C77001000000C204801182007FFFC2248011A3 +S3154001C780E004200C80A4200002800011010000007A +S3154001C790C204000080A0600022BFFFFBE004200C21 +S3154001C7A0C405000080A0A00012BFFFDFC404C01171 +S3154001C7B080A0A00002BFFFDDA4100013E004200CFE +S3154001C7C080A4200032BFFFF4C204000081C7E00804 +S3154001C7D081E80000F000A0C010BFFFC1B00E201FCD +S3154001C7E08C10000FA74800008B34E0188A09600FAF +S3154001C7F080A160030280000C0B1001238A11603472 +S3154001C8000920000088112070C82140000B10012327 +S3154001C8108A1160500920000088112040C82140003B +S3154001C820108000399010200192102006400001D25C +S3154001C8300100000080A000080280003301000000D2 +S3154001C840C2022010113FFC0082084008110003FC7F +S3154001C8508410400890100002921020019410200C80 +S3154001C860400001DB0100000080A000080280002694 +S3154001C87001000000400001EB921000010B10012362 +S3154001C8808A116034D221400090100002921020019A +S3154001C89094102011400001CE0100000080A0000844 +S3154001C8A00280001901000000400001DE92100001E3 +S3154001C8B0920260100B1001238A116050D221400070 +S3154001C8C090100002921020019410200D400001C0EA +S3154001C8D00100000080A000080280000B010000005A +S3154001C8E0400001D0921000010B1001238A11602CE7 +S3154001C8F0D2214000D40260109532A010940AA00FB4 +S3154001C900D42160049E10000681C3E00801000000A6 +S3154001C91003100123821060488210200191D020002B +S3154001C92081C3E008010000009DE3BFA0031001247C +S3154001C930C20060B48410001880A060000280000626 +S3154001C940B0102000901000029FC0400092100019C4 +S3154001C950B010000881C7E00881E800009DE3BFA050 +S3154001C96003100124C20060B880A060000280000567 +S3154001C970841020009FC040009010001884100008C9 +S3154001C98081C7E00891E800029DE3BFA0031001249E +S3154001C990C20060C080A060000280000584102000B3 +S3154001C9A09FC04000901000188410000881C7E0081D +S3154001C9B091E800029DE3BFA003100124C20060BCC0 +S3154001C9C080A0600002800005841020009FC04000C6 +S3154001C9D0901000188410000881C7E00891E8000211 +S3154001C9E09DE3BFA003100124C20060C480A0600083 +S3154001C9F002800005841020009FC04000901000185E +S3154001CA008410000881C7E00891E800029DE3BFA0B9 +S3154001CA1003100124C20060C880A0600002800005A6 +S3154001CA20841020009FC04000901000188410000818 +S3154001CA3081C7E00891E800029DE3BFA003100124ED +S3154001CA40C20060CC80A060000280000584102000F6 +S3154001CA509FC04000901000188410000881C7E0086C +S3154001CA6091E800029DE3BFA003100124C20060D0FB +S3154001CA708410001880A0600002800006B0102000DB +S3154001CA80901000029FC0400092100019B01000089B S3154001CA9081C7E00881E80000010000000310007230 S3154001CAA0821063689FC0400001000000031000002F S3154001CAB0821060008198400003100072821063EC7E @@ -7343,7 +7343,7 @@ S3154001CAC09FC04000010000000310007282106358AD S3154001CAD09FC04000010000008B4800008B31601868 S3154001CAE08A09600380A160031280000701000000EB S3154001CAF08B4440008B31601C80A1400012800006AF -S3154001CB00010000007FFFFF31010000007FFF919788 +S3154001CB00010000007FFFFF37010000007FFF91A376 S3154001CB10010000009C23A0407FFF913A01000000E4 S3154001CB208210200191D0200001000000290000045C S3154001CB30A68C001432800003A02C001491D0200052 @@ -7351,100 +7351,240 @@ S3154001CB40818C00000100000001000000010000008E S3154001CB5081C4800081CCA00481C3E00801000000AB S3154001CB6081C1E00801000000A74800008B34E018AD S3154001CB708A09600380A16003128000080100000059 -S3154001CB8021100143A0142044A2102003E2240000F6 -S3154001CB908B4440001080000821100143A01420441A +S3154001CB8021100123A0142044A2102003E224000016 +S3154001CB908B4440001080000821100123A01420443A S3154001CBA0A2102002E224000021200000E6042024F5 -S3154001CBB08B34E0148A09601F27100143A614E03C18 -S3154001CBC0CA24C0008A01600127100143A614E03837 -S3154001CBD0CA24C00027100143A614E0408A216002FE +S3154001CBB08B34E0148A09601F27100123A614E03C38 +S3154001CBC0CA24C0008A01600127100123A614E03857 +S3154001CBD0CA24C00027100123A614E0408A2160021E S3154001CBE0CA24C00081C3E0080100000081C3E008F7 S3154001CBF0010000008348000083306018820860030A S3154001CC0080A06003128000060100000083444000BA S3154001CC100500000882284002A380400088100000D9 -S3154001CC200910007281C1229C010000009DE3BF985A -S3154001CC30031000741B100074A01060F09A1360F08A -S3154001CC4080A4000D1A800010A210000D108000066D -S3154001CC50C204000080A400111A80000B01000000EC -S3154001CC60C204000080A0600002BFFFFBA0042004B4 -S3154001CC709FC040000100000080A400112ABFFFFAB6 -S3154001CC80C204000081C7E00881E80000AA27A0B0DD -S3154001CC90E0256060E2256064E4256068C225607431 -S3154001CCA0C43D6078C83D6080CC3D608885400000C9 -S3154001CCB0C425606CF03D6090F43D6098F83D60A0FD -S3154001CCC0FC3D60A8A8102001A92D0010808D0013FD -S3154001CCD002800013010000008534E0010710014382 -S3154001CCE0C600E03CA72CC0038414C0028408A0FF00 -S3154001CCF081E000008190A000E03BA000E43BA00859 -S3154001CD00E83BA010EC3BA018F03BA020F43BA02848 -S3154001CD10F83BA030FC3BA03881E8000081C5A00863 -S3154001CD209C100015051001438410A1A0C400800089 -S3154001CD3080A0800002800004010000009FC08000A6 -S3154001CD409203A060818C200082102002832840102B -S3154001CD5005100143C400A0388530400282104002CC -S3154001CD608550000080888001028000208328A00130 -S3154001CD7007100143C600E03C853080038210400223 -S3154001CD80820860FF81906000C203A06C81806000D0 -S3154001CD90F01BA090F41BA098F81BA0A0FC1BA0A818 -S3154001CDA0C203A074C41BA078C81BA080CC1BA0885A -S3154001CDB0E003A060E203A064E403A06881E8000008 -S3154001CDC0E01BA000E41BA008E81BA010EC1BA01868 -S3154001CDD0F01BA020F41BA028F81BA030FC1BA03898 -S3154001CDE01080000F81E00000C203A06C81806000CA -S3154001CDF0F01BA090F41BA098F81BA0A0FC1BA0A8B8 -S3154001CE00C203A074C41BA078C81BA080CC1BA088F9 -S3154001CE10E003A060E203A064E403A068818C2000E3 -S3154001CE2001000000010000000100000081C4400033 -S3154001CE3081CC8000AA27A0B0C2256074C43D607829 -S3154001CE40C83D6080CC3D608885400000C425606C4B -S3154001CE50A8102001A92D0010808D00130280001317 -S3154001CE60010000008534E00107100143C600E03CA3 -S3154001CE70A72CC0038414C0028408A0FF81E00000EF -S3154001CE808190A000E03BA000E43BA008E83BA01055 -S3154001CE90EC3BA018F03BA020F43BA028F83BA03087 -S3154001CEA0FC3BA03881E8000081C5A0089C10001514 -S3154001CEB0051001438410A1A0C400800080A0800019 -S3154001CEC002800004010000009FC080009203A06020 -S3154001CED0818C2000821020028328401005100143D6 -S3154001CEE0C400A038853040028210400285500000BF -S3154001CEF080888001028000198328A0010710014320 -S3154001CF00C600E03C8530800382104002820860FF03 -S3154001CF1081906000C203A06C81806000C203A0744E -S3154001CF20C41BA078C81BA080CC1BA08881E8000048 -S3154001CF30E01BA000E41BA008E81BA010EC1BA018F6 -S3154001CF40F01BA020F41BA028F81BA030FC1BA03826 -S3154001CF501080000881E00000C203A06C818060005F -S3154001CF60C203A074C41BA078C81BA080CC1BA08898 -S3154001CF70818C20000100000001000000010000003A -S3154001CF8081C4400081CC8000821000089A1038008C -S3154001CF9096102000912AE00598034008D4034008E2 -S3154001CFA09132A01880A20001328000089602E00169 -S3154001CFB09132A00C900A2FFF80A20009028000073F -S3154001CFC09410000C9602E00180A2E00728BFFFF30F -S3154001CFD0912AE0059410200081C3E0089010000AD0 -S3154001CFE08210000898102000912B20039A004008D7 -S3154001CFF0D60040089132E01880A20009328000082C -S3154001D000980320019132E00C900A2FFF80A2000A7A -S3154001D010028000079610000D9803200180A3200F7F -S3154001D02028BFFFF3912B20039610200081C3E0080F -S3154001D0309010000BD4022004173FFC00920A400BCB -S3154001D040900A800B9132200C921240081100003F49 -S3154001D050901223F0940A8008952AA0049412800B1A -S3154001D060920A400A81C3E008901000099DE3BF98E7 -S3154001D07003100074821060D8DA007FFC80A37FFF22 -S3154001D08002800009A0007FFC8210000D9FC0400075 -S3154001D090A0043FFCC204000080A07FFF12BFFFFC3A -S3154001D0A00100000081C7E00881E800009DE3BF98C8 -S3154001D0B081C7E00881E80000000000000000000090 -S3154001D0C00000000000000000000000000000000019 -S3154001D0D000000002FFFFFFFF00000000000000000B -S3154001D0E000000002FFFFFFFF0000000000000000FB -S3154001D0F040080000000000003CD203AF9EE75616F0 -S3154001D1003E7AD7F29ABCAF48400506A80000000017 -S3154001D110430000009DE3BFA07FFF8FF701000000A1 -S3154001D1207FFFFFD30100000081C7E00881E80000CE -S3154001D1309DE3BFA07FFF8FD20100000081C7E008B9 -S3154001D14081E800000000000000000000000000002F -S315400200000000000100000000000000004001D0E8AE +S3154001CC200910007281C1229C010000009DE3BFA052 +S3154001CC302110007623100076A0142170A214617091 +S3154001CC4080A400111A80000B01000000D0040000EE +S3154001CC5080A2200002800004A00420049FC200009C +S3154001CC600100000080A400112ABFFFFAD004000091 +S3154001CC7081C7E00881E80000AA27A0B0E0256060EE +S3154001CC80E2256064E4256068C2256074C43D60782D +S3154001CC90C83D6080CC3D608885400000C425606CFD +S3154001CCA0F03D6090F43D6098F83D60A0FC3D60A881 +S3154001CCB0A8102001A92D0010808D001302800013B9 +S3154001CCC0010000008534E00107100123C600E03C65 +S3154001CCD0A72CC0038414C0028408A0FF81E0000091 +S3154001CCE08190A000E03BA000E43BA008E83BA010F7 +S3154001CCF0EC3BA018F03BA020F43BA028F83BA03029 +S3154001CD00FC3BA03881E8000081C5A0089C100015B5 +S3154001CD10051001248410A0B0C400800080A08000CA +S3154001CD2002800004010000009FC080009203A060C1 +S3154001CD30818C200082102002832840100510012397 +S3154001CD40C400A03885304002821040028550000060 +S3154001CD5080888001028000208328A00107100123DA +S3154001CD60C600E03C8530800382104002820860FFA5 +S3154001CD7081906000C203A06C81806000F01BA0908E +S3154001CD80F41BA098F81BA0A0FC1BA0A8C203A0748A +S3154001CD90C41BA078C81BA080CC1BA088E003A06060 +S3154001CDA0E203A064E403A06881E80000E01BA00060 +S3154001CDB0E41BA008E81BA010EC1BA018F01BA02048 +S3154001CDC0F41BA028F81BA030FC1BA0381080000FD4 +S3154001CDD081E00000C203A06C81806000F01BA0903E +S3154001CDE0F41BA098F81BA0A0FC1BA0A8C203A0742A +S3154001CDF0C41BA078C81BA080CC1BA088E003A06000 +S3154001CE00E203A064E403A068818C200001000000D5 +S3154001CE10010000000100000081C4400081CC800077 +S3154001CE20AA27A0B0C2256074C43D6078C83D608021 +S3154001CE30CC3D608885400000C425606CA810200167 +S3154001CE40A92D0010808D00130280001301000000FF +S3154001CE508534E00107100123C600E03CA72CC0033E +S3154001CE608414C0028408A0FF81E000008190A000E4 +S3154001CE70E03BA000E43BA008E83BA010EC3BA01837 +S3154001CE80F03BA020F43BA028F83BA030FC3BA03867 +S3154001CE9081E8000081C5A0089C10001505100124F9 +S3154001CEA08410A0B0C400800080A0800002800004ED +S3154001CEB0010000009FC080009203A060818C200089 +S3154001CEC0821020028328401005100123C400A03897 +S3154001CED085304002821040028550000080888001E2 +S3154001CEE0028000198328A00107100123C600E03CF7 +S3154001CEF08530800382104002820860FF8190600085 +S3154001CF00C203A06C81806000C203A074C41BA078D8 +S3154001CF10C81BA080CC1BA08881E80000E01BA000B4 +S3154001CF20E41BA008E81BA010EC1BA018F01BA020D6 +S3154001CF30F41BA028F81BA030FC1BA0381080000869 +S3154001CF4081E00000C203A06C81806000C203A0742E +S3154001CF50C41BA078C81BA080CC1BA088818C200054 +S3154001CF6001000000010000000100000081C44000F2 +S3154001CF7081CC8000821000089A103800961020005B +S3154001CF80912AE00598034008D40340089132A0183D +S3154001CF9080A20001328000089602E0019132A00C85 +S3154001CFA0900A2FFF80A20009028000079410000C0E +S3154001CFB09602E00180A2E00728BFFFF3912AE0052F +S3154001CFC09410200081C3E0089010000A82100008E6 +S3154001CFD098102000912B20039A004008D600400863 +S3154001CFE09132E01880A2000932800008980320019E +S3154001CFF09132E00C900A2FFF80A2000A02800007BE +S3154001D0009610000D9803200180A3200F28BFFFF33F +S3154001D010912B20039610200081C3E0089010000B4D +S3154001D020D4022004173FFC00920A400B900A800B61 +S3154001D0309132200C921240081100003F901223F0C9 +S3154001D040940A8008952AA0049412800B920A400AF9 +S3154001D05081C3E008901000099DE3BFA0211000762E +S3154001D060A0142158C2043FFC80A07FFF0280000823 +S3154001D070A0043FFC9FC04000A0043FFCC204000046 +S3154001D08080A07FFF12BFFFFC0100000081C7E008BE +S3154001D09081E800009DE3BFA081C7E00881E8000068 +S3154001D0A00000001000000000017A5200047C0F01CC +S3154001D0B01B0C0E000000001000000018FFFE40DCB3 +S3154001D0C00000000800000000000000140000002CD1 +S3154001D0D0FFFE40D00000004000410D1E2D090F1FEC +S3154001D0E00000001000000044FFFE40F80000001C54 +S3154001D0F0000000000000001000000058FFFE410043 +S3154001D1000000001C00000000000000100000006C40 +S3154001D110FFFE41080000001C000000000000001056 +S3154001D12000000080FFFE41100000001C00000000CE +S3154001D1300000001400000094FFFE41180000002C7E +S3154001D14000410D1E2D090F1F00000018000000AC04 +S3154001D150FFFE41780000004000410D1E2D46090F9B +S3154001D1601F00000000000018000000C8FFFE419C9F +S3154001D1700000022400410D1E2D46090F1F0000002C +S3154001D18000000018000000E4FFFE43A40000023442 +S3154001D19000410D1E2D47090F1F0000000000001819 +S3154001D1A000000100FFFE45BC0000003C00410D1E91 +S3154001D1B02D43090F1F000000000000180000011C4C +S3154001D1C0FFFE45DC0000003C00410D1E2D43090FCA +S3154001D1D01F0000000000001800000138FFFF2E2448 +S3154001D1E00000024800410D1E2D5D090F1F00000081 +S3154001D1F00000001400000154FFFF3050000006906B +S3154001D20000410D1E2D090F1F000000180000016C82 +S3154001D210FFFF36C80000002800410D1E2D49090FA9 +S3154001D2201F0000000000001800000188FFFF36D4EF +S3154001D2300000002400410D1E2D48090F1F0000006B +S3154001D24000000018000001A4FFFF36DC0000009832 +S3154001D25000410D1E2D44090F1F000000000000185B +S3154001D260000001C0FFFF3758000000FC00410D1EC1 +S3154001D2702D46090F1F00000000000018000001DCC8 +S3154001D280FFFF3838000000C400410D1E2D47090F2D +S3154001D2901F00000000000018000001F8FFFF38E001 +S3154001D2A00000015000410D1E2D6E090F1F000000A8 +S3154001D2B00000001800000214FFFF3A140000047039 +S3154001D2C000410D1E2D44090F1F00000000000018EB +S3154001D2D000000230FFFF3E680000013400410D1E90 +S3154001D2E02D4A090F1F000000000000180000024CE3 +S3154001D2F0FFFF3F800000012400410D1E2D49090F0B +S3154001D3001F0000000000001800000268FFFF40886F +S3154001D310000000B800410D1E2D4A090F1F000000F4 +S3154001D3200000001800000284FFFF4124000000A015 +S3154001D33000410D1E2D48090F1F000000000000107E +S3154001D340000002A0FFFF41A80000001800000000F5 +S3154001D35000000014000002B4FFFF41AC000002705F +S3154001D36000410D1E2D090F1F00000014000002CCC4 +S3154001D370FFFF44040000040C00410D1E2D090F1F40 +S3154001D38000000014000002E4FFFF47F800000124FA +S3154001D39000410D1E2D090F1F00000014000002FC64 +S3154001D3A0FFFF49040000039400410D1E2D090F1F84 +S3154001D3B00000001000000314FFFF4C800000002C09 +S3154001D3C0000000000000001000000328FFFF4C98F9 +S3154001D3D00000002400000000000000100000033C93 +S3154001D3E0FFFF4CA8000000180000000000000018D4 +S3154001D3F000000350FFFF4CAC0000017C00410D1EB4 +S3154001D4002D42090F1F000000000000180000036CA8 +S3154001D410FFFF4E0C0000058000410D1E2D46090FF1 +S3154001D4201F0000000000001800000388FFFF537032 +S3154001D4300000051800410D1E2D43090F1F00000075 +S3154001D44000000014000003A4FFFF586C0000010C0B +S3154001D45000410D1E2D090F1F00000010000003BCE6 +S3154001D460FFFF596000000018000000000000001492 +S3154001D470000003D0FFFF59640000020800410D1E61 +S3154001D4802D090F1F00000014000003E8FFFF6A0486 +S3154001D4900000461800410D1E2D090F1F0000001007 +S3154001D4A000000400FFFFB0040000000C0000000073 +S3154001D4B00000001000000414FFFFAFFC0000001440 +S3154001D4C0000000000000001000000428FFFFAFFC30 +S3154001D4D00000002000000000000000140000043C91 +S3154001D4E0FFFFB0080000077000410D1E2D090F1FF8 +S3154001D4F00000001000000454FFFFC0900000000C23 +S3154001D500000000000000001000000468FFFFC08812 +S3154001D5100000002400000000000000100000047C10 +S3154001D520FFFFC09800000038000000000000001016 +S3154001D53000000490FFFFC0BC00000038000000005E +S3154001D54000000018000004A4FFFFC0E00000009C9A +S3154001D55000410D1E2D56090F1F0000000000001846 +S3154001D560000004C0FFFFC1600000003C00410D1EE9 +S3154001D5702D4A090F1F00000000000018000004DCBE +S3154001D580FFFFC1800000003C00410D1E2D4A090FDE +S3154001D5901F00000000000010000004F8FFFFC1A0BA +S3154001D5A00000003800000000000000180000050CD3 +S3154001D5B0FFFFC1C40000003C00410D1E2D4A090F6A +S3154001D5C01F0000000000001800000528FFFFC1E40D +S3154001D5D00000003C00410D1E2D4A090F1F000000AE +S3154001D5E00000001000000544FFFFC204000000389F +S3154001D5F0000000000000001800000558FFFFC22887 +S3154001D60000000EB000430D1E2D4C090F1F000000F7 +S3154001D6100000001400000574FFFFD0BC0000002884 +S3154001D62000410D1E2D090F1F000000140000058C3E +S3154001D630FFFFD0CC0000033000410D1E2D090F1F06 +S3154001D64000000014000005A4FFFFD3E4000002B867 +S3154001D65000430D1E2D090F1F00000010000005BCE0 +S3154001D660FFFFD98C0000000C0000000000000010F4 +S3154001D670000005D0FFFFD98400000014000000001F +S3154001D68000000014000005E4FFFFD9840000007C7F +S3154001D69000410D1E2D090F1F00000010000005FC62 +S3154001D6A0FFFFDD80000000200000000000000010A8 +S3154001D6B000000610FFFFDD8C0000001C000000008A +S3154001D6C00000001000000624FFFFDD940000001C4E +S3154001D6D0000000000000001800000638FFFFDD9C36 +S3154001D6E0000006D800410D1E2D4C090F1F000000F9 +S3154001D6F00000001000000654FFFFE4580000001827 +S3154001D700000000000000001000000668FFFFE45C16 +S3154001D7100000001800000000000000180000067C10 +S3154001D720FFFFE4600000004000410D1E2D42090F3D +S3154001D7301F0000000000001800000698FFFFE48467 +S3154001D7400000012C00410D1E2D41090F1F00000054 +S3154001D75000000014000006B4FFFFE594000000EC51 +S3154001D76000410D1E2D090F1F00000018000006CCB8 +S3154001D770FFFFE6680000029C00410D1E2D43090F84 +S3154001D7801F00000000000018000006E8FFFFE8E85F +S3154001D7900000008C00410D1E2D4F090F1F00000097 +S3154001D7A00000001800000704FFFFE95800000028A8 +S3154001D7B000410D1E2D44090F1F00000000000018F6 +S3154001D7C000000720FFFFE9640000010400410D1E2F +S3154001D7D02D45090F1F000000000000100000073C06 +S3154001D7E0FFFFEA4C0000003C00000000000000186A +S3154001D7F000000750FFFFEE280000008800410D1E83 +S3154001D8002D52090F1F000000000000100000076C98 +S3154001D810FFFFEE940000001C00000000000000180D +S3154001D82000000780FFFFEE9C0000012000410D1E15 +S3154001D8302D58090F1F000000000000100000079C32 +S3154001D840FFFFF0D8000000100000000000000018A3 +S3154001D850000007B0FFFFF0D40000003400410D1E68 +S3154001D8602D47090F1F00000000000018000007CCDB +S3154001D870FFFFF0EC0000002C00410D1E2D45090F65 +S3154001D8801F00000000000018000007E8FFFFF0FC41 +S3154001D8900000002C00410D1E2D45090F1F00000000 +S3154001D8A00000001800000804FFFFF10C0000002CE6 +S3154001D8B000410D1E2D45090F1F00000000000018F4 +S3154001D8C000000820FFFFF11C0000002C00410D1E46 +S3154001D8D02D45090F1F000000000000180000083CFC +S3154001D8E0FFFFF12C0000002C00410D1E2D45090FB4 +S3154001D8F01F0000000000001800000858FFFFF13C1F +S3154001D9000000002C00410D1E2D45090F1F0000008F +S3154001D9100000001800000874FFFFF14C00000034BD +S3154001D92000410D1E2D47090F1F0000000000001881 +S3154001D93000000890FFFFF2F80000004C00410D1E68 +S3154001D9402D47090F1F0000000000000000000000E5 +S3154001D95000000002FFFFFFFF000000000000000082 +S3154001D96000000002FFFFFFFF000000000000000072 +S3154001D970343074693934612B30796769797530355A +S3154001D9807968617035796934682B612B6969797871 +S3154001D9906869346B35396A30713930356A6B6F79FC +S3154001D9A070686F70746A72686961346979302B3452 +S3154001D9B000000000000000004008000000000000D8 +S3154001D9C03CD203AF9EE756163E7AD7F29ABCAF4891 +S3154001D9D0400486B000000000430000000000000043 +S3154001D9E09DE3BFA07FFF8DD1010000007FFFFD9B1E +S3154001D9F00100000081C7E00881E800009DE3BFA067 +S3154001DA007FFF8D9F0100000081C7E00881E800008B +S3154002000000000001000000000000000000000000A7 S315400200102000000000000000000000000000000078 S315400200200000000000000000000000000000000088 S315400200300000000000000000000000000000000078 @@ -7458,328 +7598,328 @@ S315400200A00000000000000000000000000000000008 S315400200B000000000000000000000000000000000F8 S315400200C000000000000000000000000000000000E8 S315400200D000000000000000000000000000000000D8 -S315400200E00000000100000000000000410000000086 -S315400200F0343074693934612B3079676979753035B2 -S315400201007968617035796934682B612B69697978C8 -S315400201106869346B35396A30713930356A6B6F7953 -S3154002012070686F70746A72686961346979302B34A9 -S315400201300000000000000000000000010000000076 -S3154002014040000000000000004008000000000000DF -S31540020150401800000000000080000000000000007F -S315400201600000000000000000BFF000000000000098 -S31540020170BF800000000000000000000000000000F8 -S315400201800000000000000000000000000000000027 -S315400201903FF00000000000004008000000000000A0 -S315400201A03FF0000040000000000000000000000098 -S315400201B03F800000404000000000000000000000B8 -S315400201C000000000000000000000000000000000E7 -S315400201D0000000000000000048000001000000008E -S315400201E0480000000000000046C000000000000079 -S315400201F03FF0000000000000400000000000000048 -S3154002020040080000000000003F800000000000009F -S31540020210529000000000000052900FF807F60DEBD6 -S3154002022052901FE03F61BAD052902FB8D4E30F48A4 -S3154002023052903F81F636B80C52904F3BD03C0A64FE -S3154002024052905EE68EFAD48B52906E825DA8FC2B5B -S3154002025052907E0F66AFED0752908D8DD3B1D9AADB -S3154002026052909CFDCD8ED0095290AC5F7C69A3C85A -S315400202705290BBB307ACAFDB5290CAF8960E710DE3 -S315400202805290DA304D95FB065290E95A539F492CCB -S315400202905290F876CCDF6CD952910785DD689A295F -S315400202A052911687A8AE14A35291257C5187FD0917 -S315400202B052913463FA37014E5291433EC467EFFB83 -S315400202C05291520CD1372FEB529160CE41341D746C -S315400202D052916F8334644DF952917E2BCA46BAB914 -S315400202E052918CC821D6D3E352919B58598F7C9F09 -S315400202F05291A9DC8F6DF1045291B854E0F496A064 -S315400203005291C6C16B2DB8705291D5224AAE2EE19A -S315400203105291E3779B97F4A85291F1C1799CA8FF39 -S31540020320529200000000000052920E33499A21A9CF -S3154002033052921C5B70D9F82452922A788FC76DE587 -S315400203405292388AC0059C28529246921AD4EA4959 -S315400203505292548EB9151E8552926280B347609668 -S315400203605292706821902E9A52927E451BB944C38E -S3154002037052928C17B9337834529299E01118857596 -S315400203805292A79E3A2CD2E65292B5524AE1278E13 -S315400203905292C2FC595456A75292D09C7B54E03E8C -S315400203A05292DE32C66287415292EBBF4FAFDD4B6D -S315400203B05292F9422C23C47E529306BB705AE7C32B -S315400203C05293142B30A929AB52932191811B0A4196 -S315400203D052932EEE7577041652933C42213EE0C963 -S315400203E05293498C97B10540529356CDEBC9B5E22B -S315400203F0529364063044530652937135779C8DCBA3 -S3154002040052937E5BD40F95A152938B79579D3EAB07 -S315400204105293988E1409212E5293A59A1ADBB257FB -S315400204205293B29D7D6356625293BF984CB56C7798 -S315400204305293CC8A99AF54535293D97474F76DF24E -S315400204405293E655EEFE13675293F32F17FE8D0431 -S31540020450529400000000000052940CC8B6D657C20F -S31540020460529419894C2329F052942641CF569572BB -S31540020470529432F24FB01C7A52943F9ADC3F79CE74 -S3154002048052944C3B83E57153529458D455549C1A1A -S31540020490529465655F122FF6529471EEAF76C2C6DC -S315400204A052947E7054AF098952948AEA5CBC935F37 -S315400204B05294975CD57680885294A3C7CC8A358A63 -S315400204C05294B02B4F7C0A885294BC876BA7F6ECA9 -S315400204D05294C8DC2E4239805294D529A457FCFC4A -S315400204E05294E16FDACFF9375294EDAEDE6B10FEDD -S315400204F05294F9E6BBC4ECB3529506177F5491BBAE -S3154002050052951241356CF6E052951E63EA3D95B01E -S3154002051052952A7FA9D2F8EA529536948017481006 -S31540020520529542A278D2D03652954EA99FAC8A0FA6 -S3154002053052955AAA002A9D5A529566A3A5B2E1B18E -S31540020540529572969B8B5CD852957E82ECDABE8D22 -S3154002055052958A68A4A8D9F352959647CDDF1CA531 -S315400205605295A220734903775295ADF29F948CFB24 -S315400205705295B9BE5D52A9DA5295C583B6F7AB0319 -S315400205805295D142B6DBADC55295DCFB673B05DFE2 -S315400205905295E8ADD236A58F5295F45A01D483B41A -S315400205A0529600000000000052960B9FD68A455490 -S315400205B0529617398F2AAA48529622CD337F0FE890 -S315400205C052962E5ACD0C3EBE529639E2653E421B9B -S315400205D0529645640568C1C3529650DFB6C759F470 -S315400205E052965C55827DF1D2529667C57199104BEF -S315400205F05296732F8D0E2F7752967E93DDBC0E73D5 -S31540020600529689F26C6B01D05296954B41CD4293EC -S315400206100BC0A4068F346C9B0BC093731C185447B3 -S315400206200BC083008E183C230BC072AE83A9704A5E -S315400206300BC0627C9CC166FF0BC0526A7ACE64A430 -S315400206400BC04277C0B04ADA0BC032A412B191A0B5 -S315400206500BC022EF168069500BC0135873280473DF -S315400206600BC003DFD10A08480BBFE909B3B04632D3 -S315400206700BBFCA8E711B8E880BBFAC4D32D4143061 -S315400206800BBF8E4553D34B1B0BBF7076318237EF70 -S315400206900BBF52DF2BADF99C0BBF357FA47C936C0D -S315400206A00BBF18570061F5EB0BBEFB64A61545154B -S315400206B00BBEDEA7FE865A2B0BBEC22074D37FBC6E -S315400206C00BBEA5CD763F66690BBE89AE722750F04A -S315400206D00BBE6DC2D9F976230BBE520A212B976CFB -S315400206E00BBE3683BD31CAA20BBE1B2F257575CAFA -S315400206F00BBE000BD34C7BAF0BBDE51941F097FE09 -S315400207000BBDCA56EE76E9D00BBDAFC457C7AB7325 -S315400207100BBD9560FE9616690BBD7B2C65587275AE -S315400207200BBD612610404EC00BBD474D8532E409D4 -S315400207300BBD2DA24BC19EDF0BBD1423ED22D10171 -S315400207400BBCFAD1F42A88E40BBCE1ABED438E80B4 -S315400207500BBCC8B1666884820BBCAFE1EF1D2D01AC -S315400207600BBC973D1867D0EF0BBC7EC274CAC962F8 -S315400207700BBC6671983E29FE0BBC4E4A18298BA9C2 -S315400207800BBC364B8B5DF6DB0BBC1E758A0FECBF82 -S315400207900BBC06C7ADD18E7E0BBBEF41918CE1F609 -S315400207A00BBBD7E2D17E33360BBBC0AB0B2E921BB3 -S315400207B00BBBA999DD6E6B650BBB92AEE8503CA7AD -S315400207C00BBB7BE9CD2362720BBB654A2E6F002CB5 -S315400207D00BBB4ECFAFED00FE0BBB3879F685313FF2 -S315400207E00BBB2248A8486FDE0BBB0C3B6C6BF73B3E -S315400207F00BBAF651EB44BCEE0BBAE08BCE42E7F1B4 -S315400208000BBACAE8BFED5CC00BBAB5686BDD5EDDFC -S315400208100BBAA00A7EBA475E0BBA8ACEA6354FEB12 -S315400208200BBA75B4910571DB0BBA60BBEEE358EFB8 -S315400208300BBA4BE4708569410BBA372DC79BD7FE7D -S315400208400BBA2297A6CCD68C0BBA0E21C1B0CFA03A -S315400208500BB9F9CBCCCEB6050BB9E5957D98648B31 -S315400208600BB9D17E8A670EE70BB9BD86AA77C3104C -S315400208700BB9A9AD95E7FAC40BB995F305B23CE5B8 -S315400208800BB98256B3AACE570BB96ED85A7C7206AA -S315400208900BB95B77B5A537C80BB94834817359CCC8 -S315400208A00BB9350E7B02284D0BB922056037032E54 -S315400208B00BB90F18EFBE614A0BB8FC48E908E522AE -S315400208C00BB8E9950C487EA90BB8D6FD1A6D99E886 -S315400208D00BB8C480D5245A340BB8B21FFED1E1BC42 -S315400208E00BB89FDA5A91A5260BB88DAFAC32CB0A1C -S315400208F00BB87B9FB83596F60BB869AA43C8DFE1B9 -S315400209000BB857CF14C791B50BB8460DF1B639C6D9 -S315400209100BB83466A1C09DF90BB822D8ECB75E6E0F -S315400209200BB811649B0DA16B0BB8000975D6C9595A -S315400209300BB7EEC746C434A50BB7DD9DD823075285 -S315400209400BB7CC8CF4D9FE010BB7BB9468674A50FF -S315400209500BB7AAB3FEDE78540BB799EB84E65D0C6F -S315400209600BB7893AC7B70D960BB778A19517DF0132 -S315400209700BB7681FBB5D6E910BB757B50967B24C93 -S315400209800BB747614EA011A20BB737245AF786140C -S315400209900BB726FDFEE4C3A00BB716EE0B6268E862 -S315400209A00BB706F451ED36CE0BB6F710A4824F8044 -S315400209B00BB6E742D59D7CB40BB6D78AB8377D0EC7 -S315400209C00BB6C7E81FC458720BB6B85AE031BB32F1 -S315400209D00BB6A8E2CDE557F90BB6997FBDBB50459C -S315400209E00BB68A318504A35C0BB67AF7F985A39BCD -S315400209F00BB66BD2F17471FF0BB65CC243777FCEF6 -S31540020A000BB64DC5C6A416420BB63EDD527CE4116A -S31540020A100BB63008BEF090CF0BB62147E45855EBE3 -S31540020A200BB6129A9B769D520BB60400BD75A584F1 -S31540020A300BB5F57A23E62B070BB5E706A8BE172CAE -S31540020A400BB5D8A6265733FF0BB5CA58776DE54B7B -S31540020A500BB5BC1D771FE6AB0BB5ADF500EB0E78BB -S31540020A600BB59FDEF0AC15940BB591DB229D63F27C -S31540020A700BB583E97355E1C10BB57609BFC7CD32D4 -S31540020A800BB5683BE53F94B80BB55A7FC162B5B624 -S31540020A900BB54CD5322E9F7F0BB53F3C15F79AA12D -S31540020AA00BB531B44B67B45A0BB5243DB17DAE306C -S31540020AB00BB516D8278BF18F0BB509838D37876710 -S31540020AC00BB4FC3FC27713AE0BB4EF0CA791D4BB69 -S31540020AD00BB4E1EA1D1EA6680BB4D4D8040308E59C -S31540020AE00BB4C7D63D722B370BB4BAE4AAEBF9481E -S31540020AF00BB4AE032E3C2D7E0BB4A131A97965C948 -S31540020B000BB4946FFF043C1C0BB487BE118662364D -S31540020B100BB47B1BC3F1C0BF0BB46E88F97F999BA4 -S31540020B200BB4620595AFAD730BB455917C476454D3 -S31540020B300BB4492C9150F96C0BB43CD6B91AA9C8DE -S31540020B400BB4308FD835E60B0BB42457D3768716C1 -S31540020B500BB4182E8FF205900BB40C13F2FEB43B75 -S31540020B600BB40007E232FD1F0BB3F40A4364A167DC -S31540020B700BB3E81AFCA7FBF00BB3DC39F44F468AF9 -S31540020B800BB3D06710E9E1C30BB3C4A239439F4FFD -S31540020B900BB3B8EB54640EF10BB3AD42498DCDDFC6 -S31540020BA00BB3A1A7003DD89B0BB39619602ADF2B46 -S31540020BB00BB38A9951449BB80BB37F26BBB32B79AF -S31540020BC00BB373C187D669EA0BB368699E454E4437 -S31540020BD00BB35D1EE7CD4B2D0BB351E14D71B09872 -S31540020BE00BB346B0B86B0FC30BB33B8D1226A15A5B -S31540020BF00BB330764445ADAC0BB3256C389CF6EB63 -S31540020C000BB31A6ED934256E0BB30F7E104535F5EC -S31540020C100BB30499C83BE9D60BB2F9C1EBB53923FC -S31540020C200BB2EEF6657EC6AA0BB2E437209655D5D0 -S31540020C300BB2D984082942630BB2CEDD0793F9E79A -S31540020C400BB2C4420A6177190BB2B9B2FC4ABEDA98 -S31540020C500BB2AF2FC9365EFF0BB2A4B85D37EEC1F9 -S31540020C600BB29A4CA48F90E30BB28FEC8BA9777997 -S31540020C700BB28597FF1D694D0BB27B4EEBAE48DD3D -S31540020C800BB271113E499CEE0BB266DEE4071AA81E -S31540020C900BB25CB7CA2831380BB2529BDE1796F7B5 -S31540020CA00BB2488B0D68D8030BB23E8545D7E65A40 -S31540020CB00BB2348A7548AB540BB22A9A89C69A97B4 -S31540020CC00BB220B5718446610BB216DB1ADAF53FD8 -S31540020CD00BB20D0B744A39100BB203466C77876C14 -S31540020CE00BB1F98BF22DD3490BB1EFDBF45D27FF44 -S31540020CF00BB1E636621A457E0BB1DC9B2A9E3DD588 -S31540020D000BB1D30A3D4613EE0BB1C98389925B817F -S31540020D100BB1C006FF26DA3F0BB1B6948DCA2A281C -S31540020D200BB1AD2C25655D0F0BB1A3CDB603A13D2D -S31540020D300BB19A792FD1E7410BB1912E831E88D2FE -S31540020D400BB187EDA058F0D60BB17EB6781144733D -S31540020D500BB17588FAF80D3A0BB16C6519DDE45D95 -S31540020D600BB1634AC5B31EEF0BB15A39EF877B28E5 -S31540020D700BB151328889CEAE0BB148348207B5DB0E -S31540020D800BB13F3FCD6D43FF0BB136545C44B49A31 -S31540020D900BB12D7220361D870BB124990B07221BEE -S31540020DA00BB11BC90E9AA72D0BB113021CF0880F6B -S31540020DB00BB10A4428254C650BB1018F2271DEE541 -S31540020DC00BB0F8E2FE2B44F40BB0F03FADC2572312 -S31540020DD00BB0E7A523C37A850BB0DF1352D65AD997 -S31540020DE00BB0D68A2DBDA58C0BB0CE09A756C589A8 -S31540020DF00BB0C591B2999FDB0BB0BD2242985115FB -S31540020E000BB0B4BB4A7EEB870BB0AC5CBD933636B7 -S31540020E1065300000653010006530200065303000D6 -S31540020E2065304000653050006530600065307000C6 -S31540020E3065308000653090006530A0006530B000B6 -S31540020E406530C0006530D0006530E0006530F000A6 -S31540020E506531000065311000653120006531300092 -S31540020E606531400065315000653160006531700082 -S31540020E7065318000653190006531A0006531B00072 -S31540020E806531C0006531D0006531E0006531F00062 -S31540020E90653200006532100065322000653230004E -S31540020EA0653240006532500065326000653270003E -S31540020EB065328000653290006532A0006532B0002E -S31540020EC06532C0006532D0006532E0006532F0001E -S31540020ED0653300006533100065332000653330000A -S31540020EE065334000653350006533600065337000FA -S31540020EF065338000653390006533A0006533B000EA -S31540020F006533C0006533D0006533E0006533F000D9 -S31540020F1065340000653410006534200065343000C5 -S31540020F2065344000653450006534600065347000B5 -S31540020F3065348000653490006534A0006534B000A5 -S31540020F406534C0006534D0006534E0006534F00095 -S31540020F506535000065351000653520006535300081 -S31540020F606535400065355000653560006535700071 -S31540020F7065358000653590006535A0006535B00061 -S31540020F806535C0006535D0006535E0006535F00051 -S31540020F90653600006536100065362000653630003D -S31540020FA0653640006536500065366000653670002D -S31540020FB065368000653690006536A0006536B0001D -S31540020FC06536C0006536D0006536E0006536F0000D -S31540020FD065370000653710006537200065373000F9 -S31540020FE065374000653750006537600065377000E9 -S31540020FF065378000653790006537A0006537B000D9 -S315400210006537C0006537D0006537E0006537F000C8 -S3154002101065380000653810006538200065383000B4 -S3154002102065384000653850006538600065387000A4 -S3154002103065388000653890006538A0006538B00094 -S315400210406538C0006538D0006538E0006538F00084 -S315400210506539000065391000653920006539300070 -S315400210606539400065395000653960006539700060 -S3154002107065398000653990006539A0006539B00050 -S315400210806539C0006539D0006539E0006539F00040 -S31540021090653A0000653A1000653A2000653A30002C -S315400210A0653A4000653A5000653A6000653A70001C -S315400210B0653A8000653A9000653AA000653AB0000C -S315400210C0653AC000653AD000653AE000653AF000FC -S315400210D0653B0000653B1000653B2000653B3000E8 -S315400210E0653B4000653B5000653B6000653B7000D8 -S315400210F0653B8000653B9000653BA000653BB000C8 -S31540021100653BC000653BD000653BE000653BF000B7 -S31540021110653C0000653C1000653C2000653C3000A3 -S31540021120653C4000653C5000653C6000653C700093 -S31540021130653C8000653C9000653CA000653CB00083 -S31540021140653CC000653CD000653CE000653CF00073 -S31540021150653D0000653D1000653D2000653D30005F -S31540021160653D4000653D5000653D6000653D70004F -S31540021170653D8000653D9000653DA000653DB0003F -S31540021180653DC000653DD000653DE000653DF0002F -S31540021190653E0000653E1000653E2000653E30001B -S315400211A0653E4000653E5000653E6000653E70000B -S315400211B0653E8000653E9000653EA000653EB000FB -S315400211C0653EC000653ED000653EE000653EF000EB -S315400211D0653F0000653F1000653F2000653F3000D7 -S315400211E0653F4000653F5000653F6000653F7000C7 -S315400211F0653F8000653F9000653FA000653FB000B7 -S31540021200653FC000653FD000653FE000653FF000A6 -S315400212104200000000000000400FFFFFFFFFFFFFFB -S315400212204200000000200000420FFFFFFFFFFFFFC9 -S3154002123040000000000000004210000000080000CC -S3154002124042000000000000013EB000000000000124 -S315400212504200000000000002420F484C0137D2080B -S31540021260C20E780F256007AB41BA079B7AF94BA0AD -S315400212704201484C0137D208420E780F256007AB2F -S315400212804217E02D934BECDA420F484C0137D20815 -S31540021290C21E780F256007ABC20DA7D249883D4EC4 -S315400212A0421F484C0137D208C20E780F256007AB61 -S315400212B042100C446E87CE32C03340AB371208918F -S315400212C00000000000000000C03340AB3712089116 -S315400212D00000000000000000C29E7A0F236007A6AD -S315400212E0C29E7A0F236007A66F3F484C0137D20849 -S315400212F06E2E780F256007AB6F3F485B3D3F64B863 -S315400213006F3F484C0137D208EE2E780F256007AB67 -S315400213106F3F483CC5303F587FE2F780AB123809F1 -S315400213207FD00000000000007FEAF780AB12380948 -S31540021330002000000000000080280000000000009D -S3154002134080100000000000007FEFF780AB123809E2 -S315400213507FEFF2010203A1117FF0000000000000BE -S315400213600010000000001000801FFFFFF203A111D1 -S315400213708000000000000000001ABCD000023809BC -S31540021380801ABCD0000001110000000000000000DD -S315400213907E71000000000000416010000000000065 -S315400213A07FE11100000000000178100000000000FB -S315400213B03E880000FFF0000000120C00C073F800E7 -S315400213C0C1EFFFFFC00020003FB3C75D224F280F89 -S315400213D0C1B3C75CFAC08192A12FFF8000001FFFF4 -S315400213E03EE0000000FF0000A01FFF8001FE18073C -S315400213F041CFFFFE0000002040303FFFFFFFFFFDD0 -S3154002140042103FFEFC00000D3FD000003FEFFFFFC1 -S31540021410BFD0000010000000BFB000004FF0003FF8 -S3154002142001701000000000003E8000011A0000001A -S3154002143000000000000000007E7C0000000000006A -S31540021440416A1000010000107FF000000000000019 -S3154002145075012034056AC000FA1009091000104FC0 -S31540021460FFF00000000000000100203040030200AF -S31540021470003020340000A00B0000000000000000F5 -S315400214807FE0001010200001400000000010200AFA -S315400214907FF00000000000003FEFDFF00FFC484AFB -S315400214A0BFF80000000000007FFF000000000000BF -S315400214B07FFFE000000000007FF400000000000013 -S315400214C07FC00000000000007FF80000000000001E -S315400214D07FF0000000000000FFF000000000000066 -S315400214E0FFF0000000000000800000000000000045 -S315400214F000000000000100000000000000000000A3 +S315400200E00000000100000001BF8000000000000087 +S315400200F0BFF0000000000000800000000000000089 +S315400201000000000000000000400000000000000067 +S3154002011040080000000000004018000000000000F7 +S315400201200000000000000000000000000000000087 +S3154002013000000000000000003FF000000000000048 +S3154002014040080000000000003FF0000040000000B0 +S3154002015000000000000000003F8000004040000018 +S315400201600000000000000000000000000000000047 +S315400201700000000000000000000000000000000037 +S315400201804800000100000000480000000000000096 +S3154002019046C00000000000003FF0000000000000E2 +S315400201A0400000000000000040080000000000007F +S315400201B03F80000000000000000000000001000037 +S315400201C08000000000000000FFF000000000000078 +S315400201D0FFF00000000000007FF000000000000079 +S315400201E07FF80000000000007FC000000000000011 +S315400201F07FF40000000000007FFFE00000000000E6 +S315400202007FFF000000000000BFF800000000000071 +S315400202103FEFDFF00FFC484A7E710000000000000D +S3154002022041601000000000007FE111000000000064 +S3154002023001781000000000003E880000FFF0000038 +S3154002024000120C00C073F800C1EFFFFFC00020008F +S315400202503FB3C75D224F280FC1B3C75CFAC0819234 +S31540020260A12FFF8000001FFF3EE0000000FF0000BC +S31540020270A01FFF8001FE180741CFFFFE00000020AD +S3154002028040303FFFFFFFFFFD42103FFEFC00000DE6 +S315400202903FD000003FEFFFFFBFD00000100000003C +S315400202A0BFB000004FF0003F017010000000000098 +S315400202B03E8000011A00000000000000000000001D +S315400202C07E7C000000000000416A10000100001020 +S315400202D07FF000000000000075012034056AC0006E +S315400202E0FA1009091000104FFFF00000000000004C +S315400202F00100203040030200003020340000A00BF1 +S3154002030000000000000000007FE000101020000105 +S31540020310400000000010200A7FF0000000000000AC +S315400203204200000000000000400FFFFFFFFFFFFFFA +S315400203304200000000200000420FFFFFFFFFFFFFC8 +S3154002034040000000000000004210000000080000CB +S3154002035042000000000000013EB000000000000123 +S315400203604200000000000002420F484C0137D2080A +S31540020370C20E780F256007AB41BA079B7AF94BA0AC +S315400203804201484C0137D208420E780F256007AB2E +S315400203904217E02D934BECDA420F484C0137D20814 +S315400203A0C21E780F256007ABC20DA7D249883D4EC3 +S315400203B0421F484C0137D208C20E780F256007AB60 +S315400203C042100C446E87CE32C03340AB371208918E +S315400203D00000000000000000C03340AB3712089115 +S315400203E00000000000000000C29E7A0F236007A6AC +S315400203F0C29E7A0F236007A66F3F484C0137D20848 +S315400204006E2E780F256007AB6F3F485B3D3F64B861 +S315400204106F3F484C0137D208EE2E780F256007AB66 +S315400204206F3F483CC5303F587FE2F780AB123809F0 +S315400204307FD00000000000007FEAF780AB12380947 +S31540020440002000000000000080280000000000009C +S3154002045080100000000000007FEFF780AB123809E1 +S315400204607FEFF2010203A1117FF0000000000000BD +S315400204700010000000001000801FFFFFF203A111D0 +S315400204808000000000000000001ABCD000023809BB +S31540020490801ABCD0000001110000000000000000DC +S315400204A06530000065301000653020006530300050 +S315400204B06530400065305000653060006530700040 +S315400204C065308000653090006530A0006530B00030 +S315400204D06530C0006530D0006530E0006530F00020 +S315400204E0653100006531100065312000653130000C +S315400204F065314000653150006531600065317000FC +S3154002050065318000653190006531A0006531B000EB +S315400205106531C0006531D0006531E0006531F000DB +S3154002052065320000653210006532200065323000C7 +S3154002053065324000653250006532600065327000B7 +S3154002054065328000653290006532A0006532B000A7 +S315400205506532C0006532D0006532E0006532F00097 +S315400205606533000065331000653320006533300083 +S315400205706533400065335000653360006533700073 +S3154002058065338000653390006533A0006533B00063 +S315400205906533C0006533D0006533E0006533F00053 +S315400205A0653400006534100065342000653430003F +S315400205B0653440006534500065346000653470002F +S315400205C065348000653490006534A0006534B0001F +S315400205D06534C0006534D0006534E0006534F0000F +S315400205E065350000653510006535200065353000FB +S315400205F065354000653550006535600065357000EB +S3154002060065358000653590006535A0006535B000DA +S315400206106535C0006535D0006535E0006535F000CA +S3154002062065360000653610006536200065363000B6 +S3154002063065364000653650006536600065367000A6 +S3154002064065368000653690006536A0006536B00096 +S315400206506536C0006536D0006536E0006536F00086 +S315400206606537000065371000653720006537300072 +S315400206706537400065375000653760006537700062 +S3154002068065378000653790006537A0006537B00052 +S315400206906537C0006537D0006537E0006537F00042 +S315400206A0653800006538100065382000653830002E +S315400206B0653840006538500065386000653870001E +S315400206C065388000653890006538A0006538B0000E +S315400206D06538C0006538D0006538E0006538F000FE +S315400206E065390000653910006539200065393000EA +S315400206F065394000653950006539600065397000DA +S3154002070065398000653990006539A0006539B000C9 +S315400207106539C0006539D0006539E0006539F000B9 +S31540020720653A0000653A1000653A2000653A3000A5 +S31540020730653A4000653A5000653A6000653A700095 +S31540020740653A8000653A9000653AA000653AB00085 +S31540020750653AC000653AD000653AE000653AF00075 +S31540020760653B0000653B1000653B2000653B300061 +S31540020770653B4000653B5000653B6000653B700051 +S31540020780653B8000653B9000653BA000653BB00041 +S31540020790653BC000653BD000653BE000653BF00031 +S315400207A0653C0000653C1000653C2000653C30001D +S315400207B0653C4000653C5000653C6000653C70000D +S315400207C0653C8000653C9000653CA000653CB000FD +S315400207D0653CC000653CD000653CE000653CF000ED +S315400207E0653D0000653D1000653D2000653D3000D9 +S315400207F0653D4000653D5000653D6000653D7000C9 +S31540020800653D8000653D9000653DA000653DB000B8 +S31540020810653DC000653DD000653DE000653DF000A8 +S31540020820653E0000653E1000653E2000653E300094 +S31540020830653E4000653E5000653E6000653E700084 +S31540020840653E8000653E9000653EA000653EB00074 +S31540020850653EC000653ED000653EE000653EF00064 +S31540020860653F0000653F1000653F2000653F300050 +S31540020870653F4000653F5000653F6000653F700040 +S31540020880653F8000653F9000653FA000653FB00030 +S31540020890653FC000653FD000653FE000653FF00020 +S315400208A00BC0A4068F346C9B0BC093731C18544721 +S315400208B00BC083008E183C230BC072AE83A9704ACC +S315400208C00BC0627C9CC166FF0BC0526A7ACE64A49E +S315400208D00BC04277C0B04ADA0BC032A412B191A023 +S315400208E00BC022EF168069500BC01358732804734D +S315400208F00BC003DFD10A08480BBFE909B3B0463241 +S315400209000BBFCA8E711B8E880BBFAC4D32D41430CE +S315400209100BBF8E4553D34B1B0BBF7076318237EFDD +S315400209200BBF52DF2BADF99C0BBF357FA47C936C7A +S315400209300BBF18570061F5EB0BBEFB64A6154515B8 +S315400209400BBEDEA7FE865A2B0BBEC22074D37FBCDB +S315400209500BBEA5CD763F66690BBE89AE722750F0B7 +S315400209600BBE6DC2D9F976230BBE520A212B976C68 +S315400209700BBE3683BD31CAA20BBE1B2F257575CA67 +S315400209800BBE000BD34C7BAF0BBDE51941F097FE76 +S315400209900BBDCA56EE76E9D00BBDAFC457C7AB7393 +S315400209A00BBD9560FE9616690BBD7B2C655872751C +S315400209B00BBD612610404EC00BBD474D8532E40942 +S315400209C00BBD2DA24BC19EDF0BBD1423ED22D101DF +S315400209D00BBCFAD1F42A88E40BBCE1ABED438E8022 +S315400209E00BBCC8B1666884820BBCAFE1EF1D2D011A +S315400209F00BBC973D1867D0EF0BBC7EC274CAC96266 +S31540020A000BBC6671983E29FE0BBC4E4A18298BA92F +S31540020A100BBC364B8B5DF6DB0BBC1E758A0FECBFEF +S31540020A200BBC06C7ADD18E7E0BBBEF41918CE1F676 +S31540020A300BBBD7E2D17E33360BBBC0AB0B2E921B20 +S31540020A400BBBA999DD6E6B650BBB92AEE8503CA71A +S31540020A500BBB7BE9CD2362720BBB654A2E6F002C22 +S31540020A600BBB4ECFAFED00FE0BBB3879F685313F5F +S31540020A700BBB2248A8486FDE0BBB0C3B6C6BF73BAB +S31540020A800BBAF651EB44BCEE0BBAE08BCE42E7F121 +S31540020A900BBACAE8BFED5CC00BBAB5686BDD5EDD6A +S31540020AA00BBAA00A7EBA475E0BBA8ACEA6354FEB80 +S31540020AB00BBA75B4910571DB0BBA60BBEEE358EF26 +S31540020AC00BBA4BE4708569410BBA372DC79BD7FEEB +S31540020AD00BBA2297A6CCD68C0BBA0E21C1B0CFA0A8 +S31540020AE00BB9F9CBCCCEB6050BB9E5957D98648B9F +S31540020AF00BB9D17E8A670EE70BB9BD86AA77C310BA +S31540020B000BB9A9AD95E7FAC40BB995F305B23CE525 +S31540020B100BB98256B3AACE570BB96ED85A7C720617 +S31540020B200BB95B77B5A537C80BB94834817359CC35 +S31540020B300BB9350E7B02284D0BB922056037032EC1 +S31540020B400BB90F18EFBE614A0BB8FC48E908E5221B +S31540020B500BB8E9950C487EA90BB8D6FD1A6D99E8F3 +S31540020B600BB8C480D5245A340BB8B21FFED1E1BCAF +S31540020B700BB89FDA5A91A5260BB88DAFAC32CB0A89 +S31540020B800BB87B9FB83596F60BB869AA43C8DFE126 +S31540020B900BB857CF14C791B50BB8460DF1B639C647 +S31540020BA00BB83466A1C09DF90BB822D8ECB75E6E7D +S31540020BB00BB811649B0DA16B0BB8000975D6C959C8 +S31540020BC00BB7EEC746C434A50BB7DD9DD8230752F3 +S31540020BD00BB7CC8CF4D9FE010BB7BB9468674A506D +S31540020BE00BB7AAB3FEDE78540BB799EB84E65D0CDD +S31540020BF00BB7893AC7B70D960BB778A19517DF01A0 +S31540020C000BB7681FBB5D6E910BB757B50967B24C00 +S31540020C100BB747614EA011A20BB737245AF7861479 +S31540020C200BB726FDFEE4C3A00BB716EE0B6268E8CF +S31540020C300BB706F451ED36CE0BB6F710A4824F80B1 +S31540020C400BB6E742D59D7CB40BB6D78AB8377D0E34 +S31540020C500BB6C7E81FC458720BB6B85AE031BB325E +S31540020C600BB6A8E2CDE557F90BB6997FBDBB504509 +S31540020C700BB68A318504A35C0BB67AF7F985A39B3A +S31540020C800BB66BD2F17471FF0BB65CC243777FCE63 +S31540020C900BB64DC5C6A416420BB63EDD527CE411D8 +S31540020CA00BB63008BEF090CF0BB62147E45855EB51 +S31540020CB00BB6129A9B769D520BB60400BD75A5845F +S31540020CC00BB5F57A23E62B070BB5E706A8BE172C1C +S31540020CD00BB5D8A6265733FF0BB5CA58776DE54BE9 +S31540020CE00BB5BC1D771FE6AB0BB5ADF500EB0E7829 +S31540020CF00BB59FDEF0AC15940BB591DB229D63F2EA +S31540020D000BB583E97355E1C10BB57609BFC7CD3241 +S31540020D100BB5683BE53F94B80BB55A7FC162B5B691 +S31540020D200BB54CD5322E9F7F0BB53F3C15F79AA19A +S31540020D300BB531B44B67B45A0BB5243DB17DAE30D9 +S31540020D400BB516D8278BF18F0BB509838D3787677D +S31540020D500BB4FC3FC27713AE0BB4EF0CA791D4BBD6 +S31540020D600BB4E1EA1D1EA6680BB4D4D8040308E509 +S31540020D700BB4C7D63D722B370BB4BAE4AAEBF9488B +S31540020D800BB4AE032E3C2D7E0BB4A131A97965C9B5 +S31540020D900BB4946FFF043C1C0BB487BE11866236BB +S31540020DA00BB47B1BC3F1C0BF0BB46E88F97F999B12 +S31540020DB00BB4620595AFAD730BB455917C47645441 +S31540020DC00BB4492C9150F96C0BB43CD6B91AA9C84C +S31540020DD00BB4308FD835E60B0BB42457D37687162F +S31540020DE00BB4182E8FF205900BB40C13F2FEB43BE3 +S31540020DF00BB40007E232FD1F0BB3F40A4364A1674A +S31540020E000BB3E81AFCA7FBF00BB3DC39F44F468A66 +S31540020E100BB3D06710E9E1C30BB3C4A239439F4F6A +S31540020E200BB3B8EB54640EF10BB3AD42498DCDDF33 +S31540020E300BB3A1A7003DD89B0BB39619602ADF2BB3 +S31540020E400BB38A9951449BB80BB37F26BBB32B791C +S31540020E500BB373C187D669EA0BB368699E454E44A4 +S31540020E600BB35D1EE7CD4B2D0BB351E14D71B098DF +S31540020E700BB346B0B86B0FC30BB33B8D1226A15AC8 +S31540020E800BB330764445ADAC0BB3256C389CF6EBD0 +S31540020E900BB31A6ED934256E0BB30F7E104535F55A +S31540020EA00BB30499C83BE9D60BB2F9C1EBB539236A +S31540020EB00BB2EEF6657EC6AA0BB2E437209655D53E +S31540020EC00BB2D984082942630BB2CEDD0793F9E708 +S31540020ED00BB2C4420A6177190BB2B9B2FC4ABEDA06 +S31540020EE00BB2AF2FC9365EFF0BB2A4B85D37EEC167 +S31540020EF00BB29A4CA48F90E30BB28FEC8BA9777905 +S31540020F000BB28597FF1D694D0BB27B4EEBAE48DDAA +S31540020F100BB271113E499CEE0BB266DEE4071AA88B +S31540020F200BB25CB7CA2831380BB2529BDE1796F722 +S31540020F300BB2488B0D68D8030BB23E8545D7E65AAD +S31540020F400BB2348A7548AB540BB22A9A89C69A9721 +S31540020F500BB220B5718446610BB216DB1ADAF53F45 +S31540020F600BB20D0B744A39100BB203466C77876C81 +S31540020F700BB1F98BF22DD3490BB1EFDBF45D27FFB1 +S31540020F800BB1E636621A457E0BB1DC9B2A9E3DD5F5 +S31540020F900BB1D30A3D4613EE0BB1C98389925B81ED +S31540020FA00BB1C006FF26DA3F0BB1B6948DCA2A288A +S31540020FB00BB1AD2C25655D0F0BB1A3CDB603A13D9B +S31540020FC00BB19A792FD1E7410BB1912E831E88D26C +S31540020FD00BB187EDA058F0D60BB17EB678114473AB +S31540020FE00BB17588FAF80D3A0BB16C6519DDE45D03 +S31540020FF00BB1634AC5B31EEF0BB15A39EF877B2853 +S315400210000BB151328889CEAE0BB148348207B5DB7B +S315400210100BB13F3FCD6D43FF0BB136545C44B49A9E +S315400210200BB12D7220361D870BB124990B07221B5B +S315400210300BB11BC90E9AA72D0BB113021CF0880FD8 +S315400210400BB10A4428254C650BB1018F2271DEE5AE +S315400210500BB0F8E2FE2B44F40BB0F03FADC257237F +S315400210600BB0E7A523C37A850BB0DF1352D65AD904 +S315400210700BB0D68A2DBDA58C0BB0CE09A756C58915 +S315400210800BB0C591B2999FDB0BB0BD224298511568 +S315400210900BB0B4BB4A7EEB870BB0AC5CBD93363625 +S315400210A0529000000000000052900FF807F60DEB38 +S315400210B052901FE03F61BAD052902FB8D4E30F4806 +S315400210C052903F81F636B80C52904F3BD03C0A6460 +S315400210D052905EE68EFAD48B52906E825DA8FC2BBD +S315400210E052907E0F66AFED0752908D8DD3B1D9AA3D +S315400210F052909CFDCD8ED0095290AC5F7C69A3C8BC +S315400211005290BBB307ACAFDB5290CAF8960E710D44 +S315400211105290DA304D95FB065290E95A539F492C2C +S315400211205290F876CCDF6CD952910785DD689A29C0 +S3154002113052911687A8AE14A35291257C5187FD0978 +S3154002114052913463FA37014E5291433EC467EFFBE4 +S315400211505291520CD1372FEB529160CE41341D74CD +S3154002116052916F8334644DF952917E2BCA46BAB975 +S3154002117052918CC821D6D3E352919B58598F7C9F6A +S315400211805291A9DC8F6DF1045291B854E0F496A0C5 +S315400211905291C6C16B2DB8705291D5224AAE2EE1FC +S315400211A05291E3779B97F4A85291F1C1799CA8FF9B +S315400211B0529200000000000052920E33499A21A931 +S315400211C052921C5B70D9F82452922A788FC76DE5E9 +S315400211D05292388AC0059C28529246921AD4EA49BB +S315400211E05292548EB9151E8552926280B3476096CA +S315400211F05292706821902E9A52927E451BB944C3F0 +S3154002120052928C17B9337834529299E011188575F7 +S315400212105292A79E3A2CD2E65292B5524AE1278E74 +S315400212205292C2FC595456A75292D09C7B54E03EED +S315400212305292DE32C66287415292EBBF4FAFDD4BCE +S315400212405292F9422C23C47E529306BB705AE7C38C +S315400212505293142B30A929AB52932191811B0A41F7 +S3154002126052932EEE7577041652933C42213EE0C9C4 +S315400212705293498C97B10540529356CDEBC9B5E28C +S31540021280529364063044530652937135779C8DCB04 +S3154002129052937E5BD40F95A152938B79579D3EAB69 +S315400212A05293988E1409212E5293A59A1ADBB2575D +S315400212B05293B29D7D6356625293BF984CB56C77FA +S315400212C05293CC8A99AF54535293D97474F76DF2B0 +S315400212D05293E655EEFE13675293F32F17FE8D0493 +S315400212E0529400000000000052940CC8B6D657C271 +S315400212F0529419894C2329F052942641CF5695721D +S31540021300529432F24FB01C7A52943F9ADC3F79CED5 +S3154002131052944C3B83E57153529458D455549C1A7B +S31540021320529465655F122FF6529471EEAF76C2C63D +S3154002133052947E7054AF098952948AEA5CBC935F98 +S315400213405294975CD57680885294A3C7CC8A358AC4 +S315400213505294B02B4F7C0A885294BC876BA7F6EC0A +S315400213605294C8DC2E4239805294D529A457FCFCAB +S315400213705294E16FDACFF9375294EDAEDE6B10FE3E +S315400213805294F9E6BBC4ECB3529506177F5491BB0F +S3154002139052951241356CF6E052951E63EA3D95B080 +S315400213A052952A7FA9D2F8EA529536948017481068 +S315400213B0529542A278D2D03652954EA99FAC8A0F08 +S315400213C052955AAA002A9D5A529566A3A5B2E1B1F0 +S315400213D0529572969B8B5CD852957E82ECDABE8D84 +S315400213E052958A68A4A8D9F352959647CDDF1CA593 +S315400213F05295A220734903775295ADF29F948CFB86 +S315400214005295B9BE5D52A9DA5295C583B6F7AB037A +S315400214105295D142B6DBADC55295DCFB673B05DF43 +S315400214205295E8ADD236A58F5295F45A01D483B47B +S31540021430529600000000000052960B9FD68A4554F1 +S31540021440529617398F2AAA48529622CD337F0FE8F1 +S3154002145052962E5ACD0C3EBE529639E2653E421BFC +S31540021460529645640568C1C3529650DFB6C759F4D1 +S3154002147052965C55827DF1D2529667C57199104B50 +S315400214805296732F8D0E2F7752967E93DDBC0E7336 +S31540021490529689F26C6B01D05296954B41CD42934E +S315400214A000000000000000000000000000000000F4 +S315400214B000000000000000000000000000000000E4 +S315400214C000000000000000000000000000000000D4 +S315400214D000000000000000000000000000000000C4 +S315400214E000000000000000000000000000000000B4 +S315400214F000000000000000000000000000000000A4 S315400215000000000000000000000000000000000093 S315400215100000000000000000000000000000000083 S315400215200000000000000000000000000000000073 @@ -9492,8 +9632,8 @@ S31540027FC00000000000000000000000000000000069 S31540027FD00000000000000000000000000000000059 S31540027FE00000000000000000000000000000000049 S31540027FF00000000000000000000000000000000039 -S315400280000000003F0000000C0000003F000000128C -S31540028010000000FF00000018000000000000000001 +S315400280000000000000000000000000000000000028 +S315400280100000000000000000000000000000000018 S315400280200000000000000000000000000000000008 S3154002803000000000000000000000000000000000F8 S3154002804000000000000000000000000000000000E8 @@ -16404,8 +16544,8 @@ S31540042FC000000000000000000000000000000000B7 S31540042FD000000000000000000000000000000000A7 S31540042FE00000000000000000000000000000000097 S31540042FF00000000000000000000000000000000087 -S315400430000000000000000000000000000000000076 -S315400430100000000000000000000000000000000066 +S3154004300000000018000000FF000000120000003F0E +S315400430100000000C0000003F00000000000000001B S315400430200000000000000000000000000000000056 S315400430300000000000000000000000000000000046 S315400430400000000000000000000000000000000036 @@ -17684,125 +17824,125 @@ S31540047FC00000000000000000000000000000000067 S31540047FD00000000000000000000000000000000057 S31540047FE00000000000000000000000000000000047 S31540047FF00000000000000000000000000000000037 -S315400480000000000000000000000000000000000026 -S315400480100000000000000000000000000000000016 -S315400480200000000000000000000000000000000006 -S3154004803000000000000000000000000000000000F6 -S3154004804000000000000000000000000000000000E6 -S3154004805000000000000000000000000000000000D6 -S3154004806000000000000000000000000000000000C6 -S3154004807000000000000000000000000000000000B6 -S3154004808000000000000000000000000000000000A6 -S315400480900000000000000000000000000000000096 -S315400480A00000000000000000000000000000000086 -S315400480B00000000000000000000000000000000076 -S315400480C00000000000000000000000000000000066 -S315400480D00000000000000000000000000000000056 -S315400480E00000000000000000000000000000000046 -S315400480F00000000000000000000000000000000036 -S315400481000000000000000000000000000000000025 -S315400481100000000000000000000000000000000015 -S315400481200000000000000000000000000000000005 -S3154004813000000000000000000000000000000000F5 -S3154004814000000000000000000000000000000000E5 -S3154004815000000000000000000000000000000000D5 -S3154004816000000000000000000000000000000000C5 -S3154004817000000000000000000000000000000000B5 -S3154004818000000000000000000000000000000000A5 -S315400481900000000000000000000000000000000095 -S315400481A00000000000000000000000000000000085 -S315400481B00000000000000000000000000000000075 -S315400481C00000000000000000000000000000000065 -S315400481D00000000000000000000000000000000055 -S315400481E00000000000000000000000000000000045 +S31540048000000000020000000300000000000000031E +S31540048010FFFFFFFEFFFFFFFF00000002FFFFFFFD23 +S315400480200000000000000000000000010000000005 +S3154004803000000000FFFFFFFF0000000000000001F9 +S31540048040FFFFFFFFFFFFFFFFFFFFFFFF00000001F1 +S31540048050FFFFFFFFFFFFFFFE0000000300000000DC +S31540048060FFFFFFFEFFFFFFFD0000000000000009C8 +S315400480700000000700000001FFFFFFF700000002B8 +S31540048080FFFFFFFCFFFFFFF800000002FFFFFFFCBD +S31540048090FFFFFFF8FFFFFFFC00000002000000089E +S315400480A0FFFFFFFCFFFFFFFEFFFFFFF8FFFFFFF8A8 +S315400480B000000001FFFFFFF8FFFFFFF7000000008C +S315400480C00000000B00000002000000050000002F25 +S315400480D0000000020000001700003039000002A72B +S315400480E000000012FFFF076C0000004DFFFFFCC6B6 +S315400480F000003039FFFFFD59FFFFFFEEFFFF076C1D +S31540048100FFFFFFB30000033A00000091FFFFE84180 +S3154004811000000000FFFFFD84FFFED02F000000009A +S315400481200000F6FA006E49810000000000000000DD +S3154004813000000000000000000000000200000003F0 +S3154004814000000000000000000000000100000000E4 +S31540048150FFFFFFFE0000000355555554FFFFFFFE89 +S315400481600000000355555554700FFFFE00000007EC +S315400481701002492400000000000000000000000036 +S315400481800000000200000003000000060000000298 +S31540048190FFFFFFFDFFFFFFFA0000000000000001A3 +S315400481A00000000000000000FFFFFFFF0000000089 +S315400481B000000001FFFFFFFFFFFFFFFFFFFFFFFF80 +S315400481C000000001FFFFFFFFFFFFFFFE000000036A +S315400481D0FFFFFFFAFFFFFFFEFFFFFFFD0000000663 +S315400481E0000000000000000000000009FFFFF0004E S315400481F00000000000000000000000000000000035 -S315400482000000000000000000000000000000000024 +S31540048200000000000000000100000002000000031E S315400482100000000000000000000000000000000014 -S315400482200000000000000000000000000000000004 -S3154004823000000000000000000000000000000000F4 -S3154004824000000000000000000000000000000000E4 -S3154004825000000000000000000000000000000000D4 -S3154004826000000000000000000000000000000000C4 -S3154004827000000000000000000000000000000000B4 -S3154004828000000000000000000000000000000000A4 -S315400482900000000000000000000000000000000094 -S315400482A00000000000000000000000000000000084 -S315400482B00000000000000000000000000000000074 -S315400482C00000000000000000000000000000000064 -S315400482D00000000000000000000000000000000054 -S315400482E00000000000000000000000000000000044 -S315400482F00000000000000000000000000000000034 -S315400483000000000000000000000000000000000023 -S315400483100000000000000000000000000000000013 -S315400483200000000000000000000000000000000003 -S3154004833000000000000000000000000000000000F3 -S3154004834000000000000000000000000000000000E3 -S3154004835000000000000000000000000000000000D3 -S3154004836000000000000000000000000000000000C3 -S3154004837000000000000000000000000000000000B3 -S3154004838000000000000000000000000000000000A3 -S315400483900000000000000000000000000000000093 -S315400483A00000000000000000000000000000000083 -S315400483B00000000000000000000000000000000073 -S315400483C00000000000000000000000000000000063 -S315400483D00000000000000000000000000000000053 -S315400483E00000000000000000000000000000000043 -S315400483F00000000000000000000000000000000033 -S315400484000000000000000000000000000000000022 -S315400484100000000000000000000000000000000012 -S315400484200000000000000000000000000000000002 -S3154004843000000000000000000000000000000000F2 -S3154004844000000000000000000000000000000000E2 -S3154004845000000000000000000000000000000000D2 -S3154004846000000000000000000000000000000000C2 -S3154004847000000000000000000000000000000000B2 -S3154004848000000000000000000000000000000000A2 -S315400484900000000000000000000000000000000092 -S315400484A00000000000000000000000000000000082 -S315400484B00000000000000000000000000000000072 -S315400484C00000000000000000000000000000000062 -S315400484D00000000000000000000000000000000052 -S315400484E00000000000000000000000000000000042 -S315400484F00000000000000000000000000000000032 -S315400485000000000000000000000000000000000021 -S315400485100000000000000000000000000000000011 -S315400485200000000000000000000000000000000001 -S3154004853000000000000000000000000000000000F1 -S3154004854000000000000000000000000000000000E1 -S3154004855000000000000000000000000000000000D1 -S3154004856000000000000000000000000000000000C1 -S3154004857000000000000000000000000000000000B1 -S3154004858000000000000000000000000000000000A1 -S315400485900000000000000000000000000000000091 -S315400485A00000000000000000000000000000000081 -S315400485B00000000000000000000000000000000071 -S315400485C00000000000000000000000000000000061 -S315400485D00000000000000000000000000000000051 -S315400485E00000000000000000000000000000000041 -S315400485F00000000000000000000000000000000031 -S315400486000000000000000000000000000000000020 -S315400486100000000000000000000000000000000010 -S315400486200000000000000000000000000000000000 -S3154004863000000000000000000000000000000000F0 -S3154004864000000000000000000000000000000000E0 +S315400482200000000000000000400482204004822038 +S31540048230400482284004822840048230400482302C +S3154004824040048238400482384004824040048240DC +S31540048250400482484004824840048250400482508C +S31540048260400482584004825840048260400482603C +S3154004827040048268400482684004827040048270EC +S31540048280400482784004827840048280400482809C +S31540048290400482884004828840048290400482904C +S315400482A04004829840048298400482A0400482A0FC +S315400482B0400482A8400482A8400482B0400482B0AC +S315400482C0400482B8400482B8400482C0400482C05C +S315400482D0400482C8400482C8400482D0400482D00C +S315400482E0400482D8400482D8400482E0400482E0BC +S315400482F0400482E8400482E8400482F0400482F06C +S31540048300400482F8400482F8400483004004830019 +S3154004831040048308400483084004831040048310C7 +S315400483204004831840048318400483204004832077 +S315400483304004832840048328400483304004833027 +S3154004834040048338400483384004834040048340D7 +S315400483504004834840048348400483504004835087 +S315400483604004835840048358400483604004836037 +S3154004837040048368400483684004837040048370E7 +S315400483804004837840048378400483804004838097 +S315400483904004838840048388400483904004839047 +S315400483A04004839840048398400483A0400483A0F7 +S315400483B0400483A8400483A8400483B0400483B0A7 +S315400483C0400483B8400483B8400483C0400483C057 +S315400483D0400483C8400483C8400483D0400483D007 +S315400483E0400483D8400483D8400483E0400483E0B7 +S315400483F0400483E8400483E8400483F0400483F067 +S31540048400400483F8400483F8400484004004840014 +S3154004841040048408400484084004841040048410C2 +S315400484204004841840048418400484204004842072 +S315400484304004842840048428400484304004843022 +S3154004844040048438400484384004844040048440D2 +S315400484504004844840048448400484504004845082 +S315400484604004845840048458400484604004846032 +S3154004847040048468400484684004847040048470E2 +S315400484804004847840048478400484804004848092 +S315400484904004848840048488400484904004849042 +S315400484A04004849840048498400484A0400484A0F2 +S315400484B0400484A8400484A8400484B0400484B0A2 +S315400484C0400484B8400484B8400484C0400484C052 +S315400484D0400484C8400484C8400484D0400484D002 +S315400484E0400484D8400484D8400484E0400484E0B2 +S315400484F0400484E8400484E8400484F0400484F062 +S31540048500400484F8400484F840048500400485000F +S3154004851040048508400485084004851040048510BD +S31540048520400485184004851840048520400485206D +S31540048530400485284004852840048530400485301D +S3154004854040048538400485384004854040048540CD +S31540048550400485484004854840048550400485507D +S31540048560400485584004855840048560400485602D +S3154004857040048568400485684004857040048570DD +S31540048580400485784004857840048580400485808D +S31540048590400485884004858840048590400485903D +S315400485A04004859840048598400485A0400485A0ED +S315400485B0400485A8400485A8400485B0400485B09D +S315400485C0400485B8400485B8400485C0400485C04D +S315400485D0400485C8400485C8400485D0400485D0FD +S315400485E0400485D8400485D8400485E0400485E0AD +S315400485F0400485E8400485E8400485F0400485F05D +S31540048600400485F8400485F840048600400486000A +S3154004861040048608400486084004861040048610B8 +S31540048620400486184004861800020000FFFFFFFF3E +S3154004863000000000400486300000000000000000F6 +S3154004864000000000000000020000000000000000DE S3154004865000000000000000000000000000000000D0 S3154004866000000000000000000000000000000000C0 S3154004867000000000000000000000000000000000B0 S3154004868000000000000000000000000000000000A0 S315400486900000000000000000000000000000000090 -S315400486A00000000000000000000000000000000080 -S315400486B00000000000000000000000000000000070 +S315400486A00000000000000000400486B00000000006 +S315400486B0000000004004899C40048A6840048B34CE S315400486C00000000000000000000000000000000060 S315400486D00000000000000000000000000000000050 -S315400486E00000000000000000000000000000000040 +S315400486E0000000004001D9D800000000000000004E S315400486F00000000000000000000000000000000030 S31540048700000000000000000000000000000000001F S31540048710000000000000000000000000000000000F S3154004872000000000000000000000000000000000FF S3154004873000000000000000000000000000000000EF S3154004874000000000000000000000000000000000DF -S3154004875000000000000000000000000000000000CF -S3154004876000000000000000000000000000000000BF +S3154004875000000000000000000000000000000001CE +S31540048760330EABCD1234E66DDEEC0005000B000093 S3154004877000000000000000000000000000000000AF S31540048780000000000000000000000000000000009F S31540048790000000000000000000000000000000008F @@ -17879,2055 +18019,7 @@ S31540048BF0000000000000000000000000000000002B S31540048C00000000000000000000000000000000001A S31540048C10000000000000000000000000000000000A S31540048C2000000000000000000000000000000000FA -S31540048C3000000000000000000000000000000000EA -S31540048C4000000000000000000000000000000000DA -S31540048C5000000000000000000000000000000000CA -S31540048C6000000000000000000000000000000000BA -S31540048C7000000000000000000000000000000000AA -S31540048C80000000000000000000000000000000009A -S31540048C90000000000000000000000000000000008A -S31540048CA0000000000000000000000000000000007A -S31540048CB0000000000000000000000000000000006A -S31540048CC0000000000000000000000000000000005A -S31540048CD0000000000000000000000000000000004A -S31540048CE0000000000000000000000000000000003A -S31540048CF0000000000000000000000000000000002A -S31540048D000000000000000000000000000000000019 -S31540048D100000000000000000000000000000000009 -S31540048D2000000000000000000000000000000000F9 -S31540048D3000000000000000000000000000000000E9 -S31540048D4000000000000000000000000000000000D9 -S31540048D5000000000000000000000000000000000C9 -S31540048D6000000000000000000000000000000000B9 -S31540048D7000000000000000000000000000000000A9 -S31540048D800000000000000000000000000000000099 -S31540048D900000000000000000000000000000000089 -S31540048DA00000000000000000000000000000000079 -S31540048DB00000000000000000000000000000000069 -S31540048DC00000000000000000000000000000000059 -S31540048DD00000000000000000000000000000000049 -S31540048DE00000000000000000000000000000000039 -S31540048DF00000000000000000000000000000000029 -S31540048E000000000000000000000000000000000018 -S31540048E100000000000000000000000000000000008 -S31540048E2000000000000000000000000000000000F8 -S31540048E3000000000000000000000000000000000E8 -S31540048E4000000000000000000000000000000000D8 -S31540048E5000000000000000000000000000000000C8 -S31540048E6000000000000000000000000000000000B8 -S31540048E7000000000000000000000000000000000A8 -S31540048E800000000000000000000000000000000098 -S31540048E900000000000000000000000000000000088 -S31540048EA00000000000000000000000000000000078 -S31540048EB00000000000000000000000000000000068 -S31540048EC00000000000000000000000000000000058 -S31540048ED00000000000000000000000000000000048 -S31540048EE00000000000000000000000000000000038 -S31540048EF00000000000000000000000000000000028 -S31540048F000000000000000000000000000000000017 -S31540048F100000000000000000000000000000000007 -S31540048F2000000000000000000000000000000000F7 -S31540048F3000000000000000000000000000000000E7 -S31540048F4000000000000000000000000000000000D7 -S31540048F5000000000000000000000000000000000C7 -S31540048F6000000000000000000000000000000000B7 -S31540048F7000000000000000000000000000000000A7 -S31540048F800000000000000000000000000000000097 -S31540048F900000000000000000000000000000000087 -S31540048FA00000000000000000000000000000000077 -S31540048FB00000000000000000000000000000000067 -S31540048FC00000000000000000000000000000000057 -S31540048FD00000000000000000000000000000000047 -S31540048FE00000000000000000000000000000000037 -S31540048FF00000000000000000000000000000000027 -S315400490000000000000000000000000000000000016 -S315400490100000000000000000000000000000000006 -S3154004902000000000000000000000000000000000F6 -S3154004903000000000000000000000000000000000E6 -S3154004904000000000000000000000000000000000D6 -S3154004905000000000000000000000000000000000C6 -S3154004906000000000000000000000000000000000B6 -S3154004907000000000000000000000000000000000A6 -S315400490800000000000000000000000000000000096 -S315400490900000000000000000000000000000000086 -S315400490A00000000000000000000000000000000076 -S315400490B00000000000000000000000000000000066 -S315400490C00000000000000000000000000000000056 -S315400490D00000000000000000000000000000000046 -S315400490E00000000000000000000000000000000036 -S315400490F00000000000000000000000000000000026 -S315400491000000000000000000000000000000000015 -S315400491100000000000000000000000000000000005 -S3154004912000000000000000000000000000000000F5 -S3154004913000000000000000000000000000000000E5 -S3154004914000000000000000000000000000000000D5 -S3154004915000000000000000000000000000000000C5 -S3154004916000000000000000000000000000000000B5 -S3154004917000000000000000000000000000000000A5 -S315400491800000000000000000000000000000000095 -S315400491900000000000000000000000000000000085 -S315400491A00000000000000000000000000000000075 -S315400491B00000000000000000000000000000000065 -S315400491C00000000000000000000000000000000055 -S315400491D00000000000000000000000000000000045 -S315400491E00000000000000000000000000000000035 -S315400491F00000000000000000000000000000000025 -S315400492000000000000000000000000000000000014 -S315400492100000000000000000000000000000000004 -S3154004922000000000000000000000000000000000F4 -S3154004923000000000000000000000000000000000E4 -S3154004924000000000000000000000000000000000D4 -S3154004925000000000000000000000000000000000C4 -S3154004926000000000000000000000000000000000B4 -S3154004927000000000000000000000000000000000A4 -S315400492800000000000000000000000000000000094 -S315400492900000000000000000000000000000000084 -S315400492A00000000000000000000000000000000074 -S315400492B00000000000000000000000000000000064 -S315400492C00000000000000000000000000000000054 -S315400492D00000000000000000000000000000000044 -S315400492E00000000000000000000000000000000034 -S315400492F00000000000000000000000000000000024 -S315400493000000000000000000000000000000000013 -S315400493100000000000000000000000000000000003 -S3154004932000000000000000000000000000000000F3 -S3154004933000000000000000000000000000000000E3 -S3154004934000000000000000000000000000000000D3 -S3154004935000000000000000000000000000000000C3 -S3154004936000000000000000000000000000000000B3 -S3154004937000000000000000000000000000000000A3 -S315400493800000000000000000000000000000000093 -S315400493900000000000000000000000000000000083 -S315400493A00000000000000000000000000000000073 -S315400493B00000000000000000000000000000000063 -S315400493C00000000000000000000000000000000053 -S315400493D00000000000000000000000000000000043 -S315400493E00000000000000000000000000000000033 -S315400493F00000000000000000000000000000000023 -S315400494000000000000000000000000000000000012 -S315400494100000000000000000000000000000000002 -S3154004942000000000000000000000000000000000F2 -S3154004943000000000000000000000000000000000E2 -S3154004944000000000000000000000000000000000D2 -S3154004945000000000000000000000000000000000C2 -S3154004946000000000000000000000000000000000B2 -S3154004947000000000000000000000000000000000A2 -S315400494800000000000000000000000000000000092 -S315400494900000000000000000000000000000000082 -S315400494A00000000000000000000000000000000072 -S315400494B00000000000000000000000000000000062 -S315400494C00000000000000000000000000000000052 -S315400494D00000000000000000000000000000000042 -S315400494E00000000000000000000000000000000032 -S315400494F00000000000000000000000000000000022 -S315400495000000000000000000000000000000000011 -S315400495100000000000000000000000000000000001 -S3154004952000000000000000000000000000000000F1 -S3154004953000000000000000000000000000000000E1 -S3154004954000000000000000000000000000000000D1 -S3154004955000000000000000000000000000000000C1 -S3154004956000000000000000000000000000000000B1 -S3154004957000000000000000000000000000000000A1 -S315400495800000000000000000000000000000000091 -S315400495900000000000000000000000000000000081 -S315400495A00000000000000000000000000000000071 -S315400495B00000000000000000000000000000000061 -S315400495C00000000000000000000000000000000051 -S315400495D00000000000000000000000000000000041 -S315400495E00000000000000000000000000000000031 -S315400495F00000000000000000000000000000000021 -S315400496000000000000000000000000000000000010 -S315400496100000000000000000000000000000000000 -S3154004962000000000000000000000000000000000F0 -S3154004963000000000000000000000000000000000E0 -S3154004964000000000000000000000000000000000D0 -S3154004965000000000000000000000000000000000C0 -S3154004966000000000000000000000000000000000B0 -S3154004967000000000000000000000000000000000A0 -S315400496800000000000000000000000000000000090 -S315400496900000000000000000000000000000000080 -S315400496A00000000000000000000000000000000070 -S315400496B00000000000000000000000000000000060 -S315400496C00000000000000000000000000000000050 -S315400496D00000000000000000000000000000000040 -S315400496E00000000000000000000000000000000030 -S315400496F00000000000000000000000000000000020 -S31540049700000000000000000000000000000000000F -S3154004971000000000000000000000000000000000FF -S3154004972000000000000000000000000000000000EF -S3154004973000000000000000000000000000000000DF -S3154004974000000000000000000000000000000000CF -S3154004975000000000000000000000000000000000BF -S3154004976000000000000000000000000000000000AF -S31540049770000000000000000000000000000000009F -S31540049780000000000000000000000000000000008F -S31540049790000000000000000000000000000000007F -S315400497A0000000000000000000000000000000006F -S315400497B0000000000000000000000000000000005F -S315400497C0000000000000000000000000000000004F -S315400497D0000000000000000000000000000000003F -S315400497E0000000000000000000000000000000002F -S315400497F0000000000000000000000000000000001F -S31540049800000000000000000000000000000000000E -S3154004981000000000000000000000000000000000FE -S3154004982000000000000000000000000000000000EE -S3154004983000000000000000000000000000000000DE -S3154004984000000000000000000000000000000000CE -S3154004985000000000000000000000000000000000BE -S3154004986000000000000000000000000000000000AE -S31540049870000000000000000000000000000000009E -S31540049880000000000000000000000000000000008E -S31540049890000000000000000000000000000000007E -S315400498A0000000000000000000000000000000006E -S315400498B0000000000000000000000000000000005E -S315400498C0000000000000000000000000000000004E -S315400498D0000000000000000000000000000000003E -S315400498E0000000000000000000000000000000002E -S315400498F0000000000000000000000000000000001E -S31540049900000000000000000000000000000000000D -S3154004991000000000000000000000000000000000FD -S3154004992000000000000000000000000000000000ED -S3154004993000000000000000000000000000000000DD -S3154004994000000000000000000000000000000000CD -S3154004995000000000000000000000000000000000BD -S3154004996000000000000000000000000000000000AD -S31540049970000000000000000000000000000000009D -S31540049980000000000000000000000000000000008D -S31540049990000000000000000000000000000000007D -S315400499A0000000000000000000000000000000006D -S315400499B0000000000000000000000000000000005D -S315400499C0000000000000000000000000000000004D -S315400499D0000000000000000000000000000000003D -S315400499E0000000000000000000000000000000002D -S315400499F0000000000000000000000000000000001D -S31540049A00000000000000000000000000000000000C -S31540049A1000000000000000000000000000000000FC -S31540049A2000000000000000000000000000000000EC -S31540049A3000000000000000000000000000000000DC -S31540049A4000000000000000000000000000000000CC -S31540049A5000000000000000000000000000000000BC -S31540049A6000000000000000000000000000000000AC -S31540049A70000000000000000000000000000000009C -S31540049A80000000000000000000000000000000008C -S31540049A90000000000000000000000000000000007C -S31540049AA0000000000000000000000000000000006C -S31540049AB0000000000000000000000000000000005C -S31540049AC0000000000000000000000000000000004C -S31540049AD0000000000000000000000000000000003C -S31540049AE0000000000000000000000000000000002C -S31540049AF0000000000000000000000000000000001C -S31540049B00000000000000000000000000000000000B -S31540049B1000000000000000000000000000000000FB -S31540049B2000000000000000000000000000000000EB -S31540049B3000000000000000000000000000000000DB -S31540049B4000000000000000000000000000000000CB -S31540049B5000000000000000000000000000000000BB -S31540049B6000000000000000000000000000000000AB -S31540049B70000000000000000000000000000000009B -S31540049B80000000000000000000000000000000008B -S31540049B90000000000000000000000000000000007B -S31540049BA0000000000000000000000000000000006B -S31540049BB0000000000000000000000000000000005B -S31540049BC0000000000000000000000000000000004B -S31540049BD0000000000000000000000000000000003B -S31540049BE0000000000000000000000000000000002B -S31540049BF0000000000000000000000000000000001B -S31540049C00000000000000000000000000000000000A -S31540049C1000000000000000000000000000000000FA -S31540049C2000000000000000000000000000000000EA -S31540049C3000000000000000000000000000000000DA -S31540049C4000000000000000000000000000000000CA -S31540049C5000000000000000000000000000000000BA -S31540049C6000000000000000000000000000000000AA -S31540049C70000000000000000000000000000000009A -S31540049C80000000000000000000000000000000008A -S31540049C90000000000000000000000000000000007A -S31540049CA0000000000000000000000000000000006A -S31540049CB0000000000000000000000000000000005A -S31540049CC0000000000000000000000000000000004A -S31540049CD0000000000000000000000000000000003A -S31540049CE0000000000000000000000000000000002A -S31540049CF0000000000000000000000000000000001A -S31540049D000000000000000000000000000000000009 -S31540049D1000000000000000000000000000000000F9 -S31540049D2000000000000000000000000000000000E9 -S31540049D3000000000000000000000000000000000D9 -S31540049D4000000000000000000000000000000000C9 -S31540049D5000000000000000000000000000000000B9 -S31540049D6000000000000000000000000000000000A9 -S31540049D700000000000000000000000000000000099 -S31540049D800000000000000000000000000000000089 -S31540049D900000000000000000000000000000000079 -S31540049DA00000000000000000000000000000000069 -S31540049DB00000000000000000000000000000000059 -S31540049DC00000000000000000000000000000000049 -S31540049DD00000000000000000000000000000000039 -S31540049DE00000000000000000000000000000000029 -S31540049DF00000000000000000000000000000000019 -S31540049E000000000000000000000000000000000008 -S31540049E1000000000000000000000000000000000F8 -S31540049E2000000000000000000000000000000000E8 -S31540049E3000000000000000000000000000000000D8 -S31540049E4000000000000000000000000000000000C8 -S31540049E5000000000000000000000000000000000B8 -S31540049E6000000000000000000000000000000000A8 -S31540049E700000000000000000000000000000000098 -S31540049E800000000000000000000000000000000088 -S31540049E900000000000000000000000000000000078 -S31540049EA00000000000000000000000000000000068 -S31540049EB00000000000000000000000000000000058 -S31540049EC00000000000000000000000000000000048 -S31540049ED00000000000000000000000000000000038 -S31540049EE00000000000000000000000000000000028 -S31540049EF00000000000000000000000000000000018 -S31540049F000000000000000000000000000000000007 -S31540049F1000000000000000000000000000000000F7 -S31540049F2000000000000000000000000000000000E7 -S31540049F3000000000000000000000000000000000D7 -S31540049F4000000000000000000000000000000000C7 -S31540049F5000000000000000000000000000000000B7 -S31540049F6000000000000000000000000000000000A7 -S31540049F700000000000000000000000000000000097 -S31540049F800000000000000000000000000000000087 -S31540049F900000000000000000000000000000000077 -S31540049FA00000000000000000000000000000000067 -S31540049FB00000000000000000000000000000000057 -S31540049FC00000000000000000000000000000000047 -S31540049FD00000000000000000000000000000000037 -S31540049FE00000000000000000000000000000000027 -S31540049FF00000000000000000000000000000000017 -S3154004A0000000000000000000000000000000000006 -S3154004A01000000000000000000000000000000000F6 -S3154004A02000000000000000000000000000000000E6 -S3154004A03000000000000000000000000000000000D6 -S3154004A04000000000000000000000000000000000C6 -S3154004A05000000000000000000000000000000000B6 -S3154004A06000000000000000000000000000000000A6 -S3154004A0700000000000000000000000000000000096 -S3154004A0800000000000000000000000000000000086 -S3154004A0900000000000000000000000000000000076 -S3154004A0A00000000000000000000000000000000066 -S3154004A0B00000000000000000000000000000000056 -S3154004A0C00000000000000000000000000000000046 -S3154004A0D00000000000000000000000000000000036 -S3154004A0E00000000000000000000000000000000026 -S3154004A0F00000000000000000000000000000000016 -S3154004A1000000000000000000000000000000000005 -S3154004A11000000000000000000000000000000000F5 -S3154004A12000000000000000000000000000000000E5 -S3154004A13000000000000000000000000000000000D5 -S3154004A14000000000000000000000000000000000C5 -S3154004A15000000000000000000000000000000000B5 -S3154004A16000000000000000000000000000000000A5 -S3154004A1700000000000000000000000000000000095 -S3154004A1800000000000000000000000000000000085 -S3154004A1900000000000000000000000000000000075 -S3154004A1A00000000000000000000000000000000065 -S3154004A1B00000000000000000000000000000000055 -S3154004A1C00000000000000000000000000000000045 -S3154004A1D00000000000000000000000000000000035 -S3154004A1E00000000000000000000000000000000025 -S3154004A1F00000000000000000000000000000000015 -S3154004A2000000000000000000000000000000000004 -S3154004A21000000000000000000000000000000000F4 -S3154004A22000000000000000000000000000000000E4 -S3154004A23000000000000000000000000000000000D4 -S3154004A24000000000000000000000000000000000C4 -S3154004A25000000000000000000000000000000000B4 -S3154004A26000000000000000000000000000000000A4 -S3154004A2700000000000000000000000000000000094 -S3154004A2800000000000000000000000000000000084 -S3154004A2900000000000000000000000000000000074 -S3154004A2A00000000000000000000000000000000064 -S3154004A2B00000000000000000000000000000000054 -S3154004A2C00000000000000000000000000000000044 -S3154004A2D00000000000000000000000000000000034 -S3154004A2E00000000000000000000000000000000024 -S3154004A2F00000000000000000000000000000000014 -S3154004A3000000000000000000000000000000000003 -S3154004A31000000000000000000000000000000000F3 -S3154004A32000000000000000000000000000000000E3 -S3154004A33000000000000000000000000000000000D3 -S3154004A34000000000000000000000000000000000C3 -S3154004A35000000000000000000000000000000000B3 -S3154004A36000000000000000000000000000000000A3 -S3154004A3700000000000000000000000000000000093 -S3154004A3800000000000000000000000000000000083 -S3154004A3900000000000000000000000000000000073 -S3154004A3A00000000000000000000000000000000063 -S3154004A3B00000000000000000000000000000000053 -S3154004A3C00000000000000000000000000000000043 -S3154004A3D00000000000000000000000000000000033 -S3154004A3E00000000000000000000000000000000023 -S3154004A3F00000000000000000000000000000000013 -S3154004A4000000000000000000000000000000000002 -S3154004A41000000000000000000000000000000000F2 -S3154004A42000000000000000000000000000000000E2 -S3154004A43000000000000000000000000000000000D2 -S3154004A44000000000000000000000000000000000C2 -S3154004A45000000000000000000000000000000000B2 -S3154004A46000000000000000000000000000000000A2 -S3154004A4700000000000000000000000000000000092 -S3154004A4800000000000000000000000000000000082 -S3154004A4900000000000000000000000000000000072 -S3154004A4A00000000000000000000000000000000062 -S3154004A4B00000000000000000000000000000000052 -S3154004A4C00000000000000000000000000000000042 -S3154004A4D00000000000000000000000000000000032 -S3154004A4E00000000000000000000000000000000022 -S3154004A4F00000000000000000000000000000000012 -S3154004A5000000000000000000000000000000000001 -S3154004A51000000000000000000000000000000000F1 -S3154004A52000000000000000000000000000000000E1 -S3154004A53000000000000000000000000000000000D1 -S3154004A54000000000000000000000000000000000C1 -S3154004A55000000000000000000000000000000000B1 -S3154004A56000000000000000000000000000000000A1 -S3154004A5700000000000000000000000000000000091 -S3154004A5800000000000000000000000000000000081 -S3154004A5900000000000000000000000000000000071 -S3154004A5A00000000000000000000000000000000061 -S3154004A5B00000000000000000000000000000000051 -S3154004A5C00000000000000000000000000000000041 -S3154004A5D00000000000000000000000000000000031 -S3154004A5E00000000000000000000000000000000021 -S3154004A5F00000000000000000000000000000000011 -S3154004A6000000000000000000000000000000000000 -S3154004A61000000000000000000000000000000000F0 -S3154004A62000000000000000000000000000000000E0 -S3154004A63000000000000000000000000000000000D0 -S3154004A64000000000000000000000000000000000C0 -S3154004A65000000000000000000000000000000000B0 -S3154004A66000000000000000000000000000000000A0 -S3154004A6700000000000000000000000000000000090 -S3154004A6800000000000000000000000000000000080 -S3154004A6900000000000000000000000000000000070 -S3154004A6A00000000000000000000000000000000060 -S3154004A6B00000000000000000000000000000000050 -S3154004A6C00000000000000000000000000000000040 -S3154004A6D00000000000000000000000000000000030 -S3154004A6E00000000000000000000000000000000020 -S3154004A6F00000000000000000000000000000000010 -S3154004A70000000000000000000000000000000000FF -S3154004A71000000000000000000000000000000000EF -S3154004A72000000000000000000000000000000000DF -S3154004A73000000000000000000000000000000000CF -S3154004A74000000000000000000000000000000000BF -S3154004A75000000000000000000000000000000000AF -S3154004A760000000000000000000000000000000009F -S3154004A770000000000000000000000000000000008F -S3154004A780000000000000000000000000000000007F -S3154004A790000000000000000000000000000000006F -S3154004A7A0000000000000000000000000000000005F -S3154004A7B0000000000000000000000000000000004F -S3154004A7C0000000000000000000000000000000003F -S3154004A7D0000000000000000000000000000000002F -S3154004A7E0000000000000000000000000000000001F -S3154004A7F0000000000000000000000000000000000F -S3154004A80000000000000000000000000000000000FE -S3154004A81000000000000000000000000000000000EE -S3154004A82000000000000000000000000000000000DE -S3154004A83000000000000000000000000000000000CE -S3154004A84000000000000000000000000000000000BE -S3154004A85000000000000000000000000000000000AE -S3154004A860000000000000000000000000000000009E -S3154004A870000000000000000000000000000000008E -S3154004A880000000000000000000000000000000007E -S3154004A890000000000000000000000000000000006E -S3154004A8A0000000000000000000000000000000005E -S3154004A8B0000000000000000000000000000000004E -S3154004A8C0000000000000000000000000000000003E -S3154004A8D0000000000000000000000000000000002E -S3154004A8E0000000000000000000000000000000001E -S3154004A8F0000000000000000000000000000000000E -S3154004A90000000000000000000000000000000000FD -S3154004A91000000000000000000000000000000000ED -S3154004A92000000000000000000000000000000000DD -S3154004A93000000000000000000000000000000000CD -S3154004A94000000000000000000000000000000000BD -S3154004A95000000000000000000000000000000000AD -S3154004A960000000000000000000000000000000009D -S3154004A970000000000000000000000000000000008D -S3154004A980000000000000000000000000000000007D -S3154004A990000000000000000000000000000000006D -S3154004A9A0000000000000000000000000000000005D -S3154004A9B0000000000000000000000000000000004D -S3154004A9C0000000000000000000000000000000003D -S3154004A9D0000000000000000000000000000000002D -S3154004A9E0000000000000000000000000000000001D -S3154004A9F0000000000000000000000000000000000D -S3154004AA0000000000000000000000000000000000FC -S3154004AA1000000000000000000000000000000000EC -S3154004AA2000000000000000000000000000000000DC -S3154004AA3000000000000000000000000000000000CC -S3154004AA4000000000000000000000000000000000BC -S3154004AA5000000000000000000000000000000000AC -S3154004AA60000000000000000000000000000000009C -S3154004AA70000000000000000000000000000000008C -S3154004AA80000000000000000000000000000000007C -S3154004AA90000000000000000000000000000000006C -S3154004AAA0000000000000000000000000000000005C -S3154004AAB0000000000000000000000000000000004C -S3154004AAC0000000000000000000000000000000003C -S3154004AAD0000000000000000000000000000000002C -S3154004AAE0000000000000000000000000000000001C -S3154004AAF0000000000000000000000000000000000C -S3154004AB0000000000000000000000000000000000FB -S3154004AB1000000000000000000000000000000000EB -S3154004AB2000000000000000000000000000000000DB -S3154004AB3000000000000000000000000000000000CB -S3154004AB4000000000000000000000000000000000BB -S3154004AB5000000000000000000000000000000000AB -S3154004AB60000000000000000000000000000000009B -S3154004AB70000000000000000000000000000000008B -S3154004AB80000000000000000000000000000000007B -S3154004AB90000000000000000000000000000000006B -S3154004ABA0000000000000000000000000000000005B -S3154004ABB0000000000000000000000000000000004B -S3154004ABC0000000000000000000000000000000003B -S3154004ABD0000000000000000000000000000000002B -S3154004ABE0000000000000000000000000000000001B -S3154004ABF0000000000000000000000000000000000B -S3154004AC0000000000000000000000000000000000FA -S3154004AC1000000000000000000000000000000000EA -S3154004AC2000000000000000000000000000000000DA -S3154004AC3000000000000000000000000000000000CA -S3154004AC4000000000000000000000000000000000BA -S3154004AC5000000000000000000000000000000000AA -S3154004AC60000000000000000000000000000000009A -S3154004AC70000000000000000000000000000000008A -S3154004AC80000000000000000000000000000000007A -S3154004AC90000000000000000000000000000000006A -S3154004ACA0000000000000000000000000000000005A -S3154004ACB0000000000000000000000000000000004A -S3154004ACC0000000000000000000000000000000003A -S3154004ACD0000000000000000000000000000000002A -S3154004ACE0000000000000000000000000000000001A -S3154004ACF0000000000000000000000000000000000A -S3154004AD0000000000000000000000000000000000F9 -S3154004AD1000000000000000000000000000000000E9 -S3154004AD2000000000000000000000000000000000D9 -S3154004AD3000000000000000000000000000000000C9 -S3154004AD4000000000000000000000000000000000B9 -S3154004AD5000000000000000000000000000000000A9 -S3154004AD600000000000000000000000000000000099 -S3154004AD700000000000000000000000000000000089 -S3154004AD800000000000000000000000000000000079 -S3154004AD900000000000000000000000000000000069 -S3154004ADA00000000000000000000000000000000059 -S3154004ADB00000000000000000000000000000000049 -S3154004ADC00000000000000000000000000000000039 -S3154004ADD00000000000000000000000000000000029 -S3154004ADE00000000000000000000000000000000019 -S3154004ADF00000000000000000000000000000000009 -S3154004AE0000000000000000000000000000000000F8 -S3154004AE1000000000000000000000000000000000E8 -S3154004AE2000000000000000000000000000000000D8 -S3154004AE3000000000000000000000000000000000C8 -S3154004AE4000000000000000000000000000000000B8 -S3154004AE5000000000000000000000000000000000A8 -S3154004AE600000000000000000000000000000000098 -S3154004AE700000000000000000000000000000000088 -S3154004AE800000000000000000000000000000000078 -S3154004AE900000000000000000000000000000000068 -S3154004AEA00000000000000000000000000000000058 -S3154004AEB00000000000000000000000000000000048 -S3154004AEC00000000000000000000000000000000038 -S3154004AED00000000000000000000000000000000028 -S3154004AEE00000000000000000000000000000000018 -S3154004AEF00000000000000000000000000000000008 -S3154004AF0000000000000000000000000000000000F7 -S3154004AF1000000000000000000000000000000000E7 -S3154004AF2000000000000000000000000000000000D7 -S3154004AF3000000000000000000000000000000000C7 -S3154004AF4000000000000000000000000000000000B7 -S3154004AF5000000000000000000000000000000000A7 -S3154004AF600000000000000000000000000000000097 -S3154004AF700000000000000000000000000000000087 -S3154004AF800000000000000000000000000000000077 -S3154004AF900000000000000000000000000000000067 -S3154004AFA00000000000000000000000000000000057 -S3154004AFB00000000000000000000000000000000047 -S3154004AFC00000000000000000000000000000000037 -S3154004AFD00000000000000000000000000000000027 -S3154004AFE00000000000000000000000000000000017 -S3154004AFF00000000000000000000000000000000007 -S3154004B00000000000000000000000000000000000F6 -S3154004B01000000000000000000000000000000000E6 -S3154004B02000000000000000000000000000000000D6 -S3154004B03000000000000000000000000000000000C6 -S3154004B04000000000000000000000000000000000B6 -S3154004B05000000000000000000000000000000000A6 -S3154004B0600000000000000000000000000000000096 -S3154004B0700000000000000000000000000000000086 -S3154004B0800000000000000000000000000000000076 -S3154004B0900000000000000000000000000000000066 -S3154004B0A00000000000000000000000000000000056 -S3154004B0B00000000000000000000000000000000046 -S3154004B0C00000000000000000000000000000000036 -S3154004B0D00000000000000000000000000000000026 -S3154004B0E00000000000000000000000000000000016 -S3154004B0F00000000000000000000000000000000006 -S3154004B10000000000000000000000000000000000F5 -S3154004B11000000000000000000000000000000000E5 -S3154004B12000000000000000000000000000000000D5 -S3154004B13000000000000000000000000000000000C5 -S3154004B14000000000000000000000000000000000B5 -S3154004B15000000000000000000000000000000000A5 -S3154004B1600000000000000000000000000000000095 -S3154004B1700000000000000000000000000000000085 -S3154004B1800000000000000000000000000000000075 -S3154004B1900000000000000000000000000000000065 -S3154004B1A00000000000000000000000000000000055 -S3154004B1B00000000000000000000000000000000045 -S3154004B1C00000000000000000000000000000000035 -S3154004B1D00000000000000000000000000000000025 -S3154004B1E00000000000000000000000000000000015 -S3154004B1F00000000000000000000000000000000005 -S3154004B20000000000000000000000000000000000F4 -S3154004B21000000000000000000000000000000000E4 -S3154004B22000000000000000000000000000000000D4 -S3154004B23000000000000000000000000000000000C4 -S3154004B24000000000000000000000000000000000B4 -S3154004B25000000000000000000000000000000000A4 -S3154004B2600000000000000000000000000000000094 -S3154004B2700000000000000000000000000000000084 -S3154004B2800000000000000000000000000000000074 -S3154004B2900000000000000000000000000000000064 -S3154004B2A00000000000000000000000000000000054 -S3154004B2B00000000000000000000000000000000044 -S3154004B2C00000000000000000000000000000000034 -S3154004B2D00000000000000000000000000000000024 -S3154004B2E00000000000000000000000000000000014 -S3154004B2F00000000000000000000000000000000004 -S3154004B30000000000000000000000000000000000F3 -S3154004B31000000000000000000000000000000000E3 -S3154004B32000000000000000000000000000000000D3 -S3154004B33000000000000000000000000000000000C3 -S3154004B34000000000000000000000000000000000B3 -S3154004B35000000000000000000000000000000000A3 -S3154004B3600000000000000000000000000000000093 -S3154004B3700000000000000000000000000000000083 -S3154004B3800000000000000000000000000000000073 -S3154004B3900000000000000000000000000000000063 -S3154004B3A00000000000000000000000000000000053 -S3154004B3B00000000000000000000000000000000043 -S3154004B3C00000000000000000000000000000000033 -S3154004B3D00000000000000000000000000000000023 -S3154004B3E00000000000000000000000000000000013 -S3154004B3F00000000000000000000000000000000003 -S3154004B40000000000000000000000000000000000F2 -S3154004B41000000000000000000000000000000000E2 -S3154004B42000000000000000000000000000000000D2 -S3154004B43000000000000000000000000000000000C2 -S3154004B44000000000000000000000000000000000B2 -S3154004B45000000000000000000000000000000000A2 -S3154004B4600000000000000000000000000000000092 -S3154004B4700000000000000000000000000000000082 -S3154004B4800000000000000000000000000000000072 -S3154004B4900000000000000000000000000000000062 -S3154004B4A00000000000000000000000000000000052 -S3154004B4B00000000000000000000000000000000042 -S3154004B4C00000000000000000000000000000000032 -S3154004B4D00000000000000000000000000000000022 -S3154004B4E00000000000000000000000000000000012 -S3154004B4F00000000000000000000000000000000002 -S3154004B50000000000000000000000000000000000F1 -S3154004B51000000000000000000000000000000000E1 -S3154004B52000000000000000000000000000000000D1 -S3154004B53000000000000000000000000000000000C1 -S3154004B54000000000000000000000000000000000B1 -S3154004B55000000000000000000000000000000000A1 -S3154004B5600000000000000000000000000000000091 -S3154004B5700000000000000000000000000000000081 -S3154004B5800000000000000000000000000000000071 -S3154004B5900000000000000000000000000000000061 -S3154004B5A00000000000000000000000000000000051 -S3154004B5B00000000000000000000000000000000041 -S3154004B5C00000000000000000000000000000000031 -S3154004B5D00000000000000000000000000000000021 -S3154004B5E00000000000000000000000000000000011 -S3154004B5F00000000000000000000000000000000001 -S3154004B60000000000000000000000000000000000F0 -S3154004B61000000000000000000000000000000000E0 -S3154004B62000000000000000000000000000000000D0 -S3154004B63000000000000000000000000000000000C0 -S3154004B64000000000000000000000000000000000B0 -S3154004B65000000000000000000000000000000000A0 -S3154004B6600000000000000000000000000000000090 -S3154004B6700000000000000000000000000000000080 -S3154004B6800000000000000000000000000000000070 -S3154004B6900000000000000000000000000000000060 -S3154004B6A00000000000000000000000000000000050 -S3154004B6B00000000000000000000000000000000040 -S3154004B6C00000000000000000000000000000000030 -S3154004B6D00000000000000000000000000000000020 -S3154004B6E00000000000000000000000000000000010 -S3154004B6F00000000000000000000000000000000000 -S3154004B70000000000000000000000000000000000EF -S3154004B71000000000000000000000000000000000DF -S3154004B72000000000000000000000000000000000CF -S3154004B73000000000000000000000000000000000BF -S3154004B74000000000000000000000000000000000AF -S3154004B750000000000000000000000000000000009F -S3154004B760000000000000000000000000000000008F -S3154004B770000000000000000000000000000000007F -S3154004B780000000000000000000000000000000006F -S3154004B790000000000000000000000000000000005F -S3154004B7A0000000000000000000000000000000004F -S3154004B7B0000000000000000000000000000000003F -S3154004B7C0000000000000000000000000000000002F -S3154004B7D0000000000000000000000000000000001F -S3154004B7E0000000000000000000000000000000000F -S3154004B7F000000000000000000000000000000000FF -S3154004B80000000000000000000000000000000000EE -S3154004B81000000000000000000000000000000000DE -S3154004B82000000000000000000000000000000000CE -S3154004B83000000000000000000000000000000000BE -S3154004B84000000000000000000000000000000000AE -S3154004B850000000000000000000000000000000009E -S3154004B860000000000000000000000000000000008E -S3154004B870000000000000000000000000000000007E -S3154004B880000000000000000000000000000000006E -S3154004B890000000000000000000000000000000005E -S3154004B8A0000000000000000000000000000000004E -S3154004B8B0000000000000000000000000000000003E -S3154004B8C0000000000000000000000000000000002E -S3154004B8D0000000000000000000000000000000001E -S3154004B8E0000000000000000000000000000000000E -S3154004B8F000000000000000000000000000000000FE -S3154004B90000000000000000000000000000000000ED -S3154004B91000000000000000000000000000000000DD -S3154004B92000000000000000000000000000000000CD -S3154004B93000000000000000000000000000000000BD -S3154004B94000000000000000000000000000000000AD -S3154004B950000000000000000000000000000000009D -S3154004B960000000000000000000000000000000008D -S3154004B970000000000000000000000000000000007D -S3154004B980000000000000000000000000000000006D -S3154004B990000000000000000000000000000000005D -S3154004B9A0000000000000000000000000000000004D -S3154004B9B0000000000000000000000000000000003D -S3154004B9C0000000000000000000000000000000002D -S3154004B9D0000000000000000000000000000000001D -S3154004B9E0000000000000000000000000000000000D -S3154004B9F000000000000000000000000000000000FD -S3154004BA0000000000000000000000000000000000EC -S3154004BA1000000000000000000000000000000000DC -S3154004BA2000000000000000000000000000000000CC -S3154004BA3000000000000000000000000000000000BC -S3154004BA4000000000000000000000000000000000AC -S3154004BA50000000000000000000000000000000009C -S3154004BA60000000000000000000000000000000008C -S3154004BA70000000000000000000000000000000007C -S3154004BA80000000000000000000000000000000006C -S3154004BA90000000000000000000000000000000005C -S3154004BAA0000000000000000000000000000000004C -S3154004BAB0000000000000000000000000000000003C -S3154004BAC0000000000000000000000000000000002C -S3154004BAD0000000000000000000000000000000001C -S3154004BAE0000000000000000000000000000000000C -S3154004BAF000000000000000000000000000000000FC -S3154004BB0000000000000000000000000000000000EB -S3154004BB1000000000000000000000000000000000DB -S3154004BB2000000000000000000000000000000000CB -S3154004BB3000000000000000000000000000000000BB -S3154004BB4000000000000000000000000000000000AB -S3154004BB50000000000000000000000000000000009B -S3154004BB60000000000000000000000000000000008B -S3154004BB70000000000000000000000000000000007B -S3154004BB80000000000000000000000000000000006B -S3154004BB90000000000000000000000000000000005B -S3154004BBA0000000000000000000000000000000004B -S3154004BBB0000000000000000000000000000000003B -S3154004BBC0000000000000000000000000000000002B -S3154004BBD0000000000000000000000000000000001B -S3154004BBE0000000000000000000000000000000000B -S3154004BBF000000000000000000000000000000000FB -S3154004BC0000000000000000000000000000000000EA -S3154004BC1000000000000000000000000000000000DA -S3154004BC2000000000000000000000000000000000CA -S3154004BC3000000000000000000000000000000000BA -S3154004BC4000000000000000000000000000000000AA -S3154004BC50000000000000000000000000000000009A -S3154004BC60000000000000000000000000000000008A -S3154004BC70000000000000000000000000000000007A -S3154004BC80000000000000000000000000000000006A -S3154004BC90000000000000000000000000000000005A -S3154004BCA0000000000000000000000000000000004A -S3154004BCB0000000000000000000000000000000003A -S3154004BCC0000000000000000000000000000000002A -S3154004BCD0000000000000000000000000000000001A -S3154004BCE0000000000000000000000000000000000A -S3154004BCF000000000000000000000000000000000FA -S3154004BD0000000000000000000000000000000000E9 -S3154004BD1000000000000000000000000000000000D9 -S3154004BD2000000000000000000000000000000000C9 -S3154004BD3000000000000000000000000000000000B9 -S3154004BD4000000000000000000000000000000000A9 -S3154004BD500000000000000000000000000000000099 -S3154004BD600000000000000000000000000000000089 -S3154004BD700000000000000000000000000000000079 -S3154004BD800000000000000000000000000000000069 -S3154004BD900000000000000000000000000000000059 -S3154004BDA00000000000000000000000000000000049 -S3154004BDB00000000000000000000000000000000039 -S3154004BDC00000000000000000000000000000000029 -S3154004BDD00000000000000000000000000000000019 -S3154004BDE00000000000000000000000000000000009 -S3154004BDF000000000000000000000000000000000F9 -S3154004BE0000000000000000000000000000000000E8 -S3154004BE1000000000000000000000000000000000D8 -S3154004BE2000000000000000000000000000000000C8 -S3154004BE3000000000000000000000000000000000B8 -S3154004BE4000000000000000000000000000000000A8 -S3154004BE500000000000000000000000000000000098 -S3154004BE600000000000000000000000000000000088 -S3154004BE700000000000000000000000000000000078 -S3154004BE800000000000000000000000000000000068 -S3154004BE900000000000000000000000000000000058 -S3154004BEA00000000000000000000000000000000048 -S3154004BEB00000000000000000000000000000000038 -S3154004BEC00000000000000000000000000000000028 -S3154004BED00000000000000000000000000000000018 -S3154004BEE00000000000000000000000000000000008 -S3154004BEF000000000000000000000000000000000F8 -S3154004BF0000000000000000000000000000000000E7 -S3154004BF1000000000000000000000000000000000D7 -S3154004BF2000000000000000000000000000000000C7 -S3154004BF3000000000000000000000000000000000B7 -S3154004BF4000000000000000000000000000000000A7 -S3154004BF500000000000000000000000000000000097 -S3154004BF600000000000000000000000000000000087 -S3154004BF700000000000000000000000000000000077 -S3154004BF800000000000000000000000000000000067 -S3154004BF900000000000000000000000000000000057 -S3154004BFA00000000000000000000000000000000047 -S3154004BFB00000000000000000000000000000000037 -S3154004BFC00000000000000000000000000000000027 -S3154004BFD00000000000000000000000000000000017 -S3154004BFE00000000000000000000000000000000007 -S3154004BFF000000000000000000000000000000000F7 -S3154004C00000000000000000000000000000000000E6 -S3154004C01000000000000000000000000000000000D6 -S3154004C02000000000000000000000000000000000C6 -S3154004C03000000000000000000000000000000000B6 -S3154004C04000000000000000000000000000000000A6 -S3154004C0500000000000000000000000000000000096 -S3154004C0600000000000000000000000000000000086 -S3154004C0700000000000000000000000000000000076 -S3154004C0800000000000000000000000000000000066 -S3154004C0900000000000000000000000000000000056 -S3154004C0A00000000000000000000000000000000046 -S3154004C0B00000000000000000000000000000000036 -S3154004C0C00000000000000000000000000000000026 -S3154004C0D00000000000000000000000000000000016 -S3154004C0E00000000000000000000000000000000006 -S3154004C0F000000000000000000000000000000000F6 -S3154004C10000000000000000000000000000000000E5 -S3154004C11000000000000000000000000000000000D5 -S3154004C12000000000000000000000000000000000C5 -S3154004C13000000000000000000000000000000000B5 -S3154004C14000000000000000000000000000000000A5 -S3154004C1500000000000000000000000000000000095 -S3154004C1600000000000000000000000000000000085 -S3154004C1700000000000000000000000000000000075 -S3154004C1800000000000000000000000000000000065 -S3154004C1900000000000000000000000000000000055 -S3154004C1A00000000000000000000000000000000045 -S3154004C1B00000000000000000000000000000000035 -S3154004C1C00000000000000000000000000000000025 -S3154004C1D00000000000000000000000000000000015 -S3154004C1E00000000000000000000000000000000005 -S3154004C1F000000000000000000000000000000000F5 -S3154004C20000000000000000000000000000000000E4 -S3154004C21000000000000000000000000000000000D4 -S3154004C22000000000000000000000000000000000C4 -S3154004C23000000000000000000000000000000000B4 -S3154004C24000000000000000000000000000000000A4 -S3154004C2500000000000000000000000000000000094 -S3154004C2600000000000000000000000000000000084 -S3154004C2700000000000000000000000000000000074 -S3154004C2800000000000000000000000000000000064 -S3154004C2900000000000000000000000000000000054 -S3154004C2A00000000000000000000000000000000044 -S3154004C2B00000000000000000000000000000000034 -S3154004C2C00000000000000000000000000000000024 -S3154004C2D00000000000000000000000000000000014 -S3154004C2E00000000000000000000000000000000004 -S3154004C2F000000000000000000000000000000000F4 -S3154004C30000000000000000000000000000000000E3 -S3154004C31000000000000000000000000000000000D3 -S3154004C32000000000000000000000000000000000C3 -S3154004C33000000000000000000000000000000000B3 -S3154004C34000000000000000000000000000000000A3 -S3154004C3500000000000000000000000000000000093 -S3154004C3600000000000000000000000000000000083 -S3154004C3700000000000000000000000000000000073 -S3154004C3800000000000000000000000000000000063 -S3154004C3900000000000000000000000000000000053 -S3154004C3A00000000000000000000000000000000043 -S3154004C3B00000000000000000000000000000000033 -S3154004C3C00000000000000000000000000000000023 -S3154004C3D00000000000000000000000000000000013 -S3154004C3E00000000000000000000000000000000003 -S3154004C3F000000000000000000000000000000000F3 -S3154004C40000000000000000000000000000000000E2 -S3154004C41000000000000000000000000000000000D2 -S3154004C42000000000000000000000000000000000C2 -S3154004C43000000000000000000000000000000000B2 -S3154004C44000000000000000000000000000000000A2 -S3154004C4500000000000000000000000000000000092 -S3154004C4600000000000000000000000000000000082 -S3154004C4700000000000000000000000000000000072 -S3154004C4800000000000000000000000000000000062 -S3154004C4900000000000000000000000000000000052 -S3154004C4A00000000000000000000000000000000042 -S3154004C4B00000000000000000000000000000000032 -S3154004C4C00000000000000000000000000000000022 -S3154004C4D00000000000000000000000000000000012 -S3154004C4E00000000000000000000000000000000002 -S3154004C4F000000000000000000000000000000000F2 -S3154004C50000000000000000000000000000000000E1 -S3154004C51000000000000000000000000000000000D1 -S3154004C52000000000000000000000000000000000C1 -S3154004C53000000000000000000000000000000000B1 -S3154004C54000000000000000000000000000000000A1 -S3154004C5500000000000000000000000000000000091 -S3154004C5600000000000000000000000000000000081 -S3154004C5700000000000000000000000000000000071 -S3154004C5800000000000000000000000000000000061 -S3154004C5900000000000000000000000000000000051 -S3154004C5A00000000000000000000000000000000041 -S3154004C5B00000000000000000000000000000000031 -S3154004C5C00000000000000000000000000000000021 -S3154004C5D00000000000000000000000000000000011 -S3154004C5E00000000000000000000000000000000001 -S3154004C5F000000000000000000000000000000000F1 -S3154004C60000000000000000000000000000000000E0 -S3154004C61000000000000000000000000000000000D0 -S3154004C62000000000000000000000000000000000C0 -S3154004C63000000000000000000000000000000000B0 -S3154004C64000000000000000000000000000000000A0 -S3154004C6500000000000000000000000000000000090 -S3154004C6600000000000000000000000000000000080 -S3154004C6700000000000000000000000000000000070 -S3154004C6800000000000000000000000000000000060 -S3154004C6900000000000000000000000000000000050 -S3154004C6A00000000000000000000000000000000040 -S3154004C6B00000000000000000000000000000000030 -S3154004C6C00000000000000000000000000000000020 -S3154004C6D00000000000000000000000000000000010 -S3154004C6E00000000000000000000000000000000000 -S3154004C6F000000000000000000000000000000000F0 -S3154004C70000000000000000000000000000000000DF -S3154004C71000000000000000000000000000000000CF -S3154004C72000000000000000000000000000000000BF -S3154004C73000000000000000000000000000000000AF -S3154004C740000000000000000000000000000000009F -S3154004C750000000000000000000000000000000008F -S3154004C760000000000000000000000000000000007F -S3154004C770000000000000000000000000000000006F -S3154004C780000000000000000000000000000000005F -S3154004C790000000000000000000000000000000004F -S3154004C7A0000000000000000000000000000000003F -S3154004C7B0000000000000000000000000000000002F -S3154004C7C0000000000000000000000000000000001F -S3154004C7D0000000000000000000000000000000000F -S3154004C7E000000000000000000000000000000000FF -S3154004C7F000000000000000000000000000000000EF -S3154004C80000000000000000000000000000000000DE -S3154004C81000000000000000000000000000000000CE -S3154004C82000000000000000000000000000000000BE -S3154004C83000000000000000000000000000000000AE -S3154004C840000000000000000000000000000000009E -S3154004C850000000000000000000000000000000008E -S3154004C860000000000000000000000000000000007E -S3154004C870000000000000000000000000000000006E -S3154004C880000000000000000000000000000000005E -S3154004C890000000000000000000000000000000004E -S3154004C8A0000000000000000000000000000000003E -S3154004C8B0000000000000000000000000000000002E -S3154004C8C0000000000000000000000000000000001E -S3154004C8D0000000000000000000000000000000000E -S3154004C8E000000000000000000000000000000000FE -S3154004C8F000000000000000000000000000000000EE -S3154004C90000000000000000000000000000000000DD -S3154004C91000000000000000000000000000000000CD -S3154004C92000000000000000000000000000000000BD -S3154004C93000000000000000000000000000000000AD -S3154004C940000000000000000000000000000000009D -S3154004C950000000000000000000000000000000008D -S3154004C960000000000000000000000000000000007D -S3154004C970000000000000000000000000000000006D -S3154004C980000000000000000000000000000000005D -S3154004C990000000000000000000000000000000004D -S3154004C9A0000000000000000000000000000000003D -S3154004C9B0000000000000000000000000000000002D -S3154004C9C0000000000000000000000000000000001D -S3154004C9D0000000000000000000000000000000000D -S3154004C9E000000000000000000000000000000000FD -S3154004C9F000000000000000000000000000000000ED -S3154004CA0000000000000000000000000000000000DC -S3154004CA1000000000000000000000000000000000CC -S3154004CA2000000000000000000000000000000000BC -S3154004CA3000000000000000000000000000000000AC -S3154004CA40000000000000000000000000000000009C -S3154004CA50000000000000000000000000000000008C -S3154004CA60000000000000000000000000000000007C -S3154004CA70000000000000000000000000000000006C -S3154004CA80000000000000000000000000000000005C -S3154004CA90000000000000000000000000000000004C -S3154004CAA0000000000000000000000000000000003C -S3154004CAB0000000000000000000000000000000002C -S3154004CAC0000000000000000000000000000000001C -S3154004CAD0000000000000000000000000000000000C -S3154004CAE000000000000000000000000000000000FC -S3154004CAF000000000000000000000000000000000EC -S3154004CB0000000000000000000000000000000000DB -S3154004CB1000000000000000000000000000000000CB -S3154004CB2000000000000000000000000000000000BB -S3154004CB3000000000000000000000000000000000AB -S3154004CB40000000000000000000000000000000009B -S3154004CB50000000000000000000000000000000008B -S3154004CB60000000000000000000000000000000007B -S3154004CB70000000000000000000000000000000006B -S3154004CB80000000000000000000000000000000005B -S3154004CB90000000000000000000000000000000004B -S3154004CBA0000000000000000000000000000000003B -S3154004CBB0000000000000000000000000000000002B -S3154004CBC0000000000000000000000000000000001B -S3154004CBD0000000000000000000000000000000000B -S3154004CBE000000000000000000000000000000000FB -S3154004CBF000000000000000000000000000000000EB -S3154004CC0000000000000000000000000000000000DA -S3154004CC1000000000000000000000000000000000CA -S3154004CC2000000000000000000000000000000000BA -S3154004CC3000000000000000000000000000000000AA -S3154004CC40000000000000000000000000000000009A -S3154004CC50000000000000000000000000000000008A -S3154004CC60000000000000000000000000000000007A -S3154004CC70000000000000000000000000000000006A -S3154004CC80000000000000000000000000000000005A -S3154004CC90000000000000000000000000000000004A -S3154004CCA0000000000000000000000000000000003A -S3154004CCB0000000000000000000000000000000002A -S3154004CCC0000000000000000000000000000000001A -S3154004CCD0000000000000000000000000000000000A -S3154004CCE000000000000000000000000000000000FA -S3154004CCF000000000000000000000000000000000EA -S3154004CD0000000000000000000000000000000000D9 -S3154004CD1000000000000000000000000000000000C9 -S3154004CD2000000000000000000000000000000000B9 -S3154004CD3000000000000000000000000000000000A9 -S3154004CD400000000000000000000000000000000099 -S3154004CD500000000000000000000000000000000089 -S3154004CD600000000000000000000000000000000079 -S3154004CD700000000000000000000000000000000069 -S3154004CD800000000000000000000000000000000059 -S3154004CD900000000000000000000000000000000049 -S3154004CDA00000000000000000000000000000000039 -S3154004CDB00000000000000000000000000000000029 -S3154004CDC00000000000000000000000000000000019 -S3154004CDD00000000000000000000000000000000009 -S3154004CDE000000000000000000000000000000000F9 -S3154004CDF000000000000000000000000000000000E9 -S3154004CE0000000000000000000000000000000000D8 -S3154004CE1000000000000000000000000000000000C8 -S3154004CE2000000000000000000000000000000000B8 -S3154004CE3000000000000000000000000000000000A8 -S3154004CE400000000000000000000000000000000098 -S3154004CE500000000000000000000000000000000088 -S3154004CE600000000000000000000000000000000078 -S3154004CE700000000000000000000000000000000068 -S3154004CE800000000000000000000000000000000058 -S3154004CE900000000000000000000000000000000048 -S3154004CEA00000000000000000000000000000000038 -S3154004CEB00000000000000000000000000000000028 -S3154004CEC00000000000000000000000000000000018 -S3154004CED00000000000000000000000000000000008 -S3154004CEE000000000000000000000000000000000F8 -S3154004CEF000000000000000000000000000000000E8 -S3154004CF0000000000000000000000000000000000D7 -S3154004CF1000000000000000000000000000000000C7 -S3154004CF2000000000000000000000000000000000B7 -S3154004CF3000000000000000000000000000000000A7 -S3154004CF400000000000000000000000000000000097 -S3154004CF500000000000000000000000000000000087 -S3154004CF600000000000000000000000000000000077 -S3154004CF700000000000000000000000000000000067 -S3154004CF800000000000000000000000000000000057 -S3154004CF900000000000000000000000000000000047 -S3154004CFA00000000000000000000000000000000037 -S3154004CFB00000000000000000000000000000000027 -S3154004CFC00000000000000000000000000000000017 -S3154004CFD00000000000000000000000000000000007 -S3154004CFE000000000000000000000000000000000F7 -S3154004CFF000000000000000000000000000000000E7 -S3154004D00000000000000000000000000000000000D6 -S3154004D01000000000000000000000000000000000C6 -S3154004D02000000000000000000000000000000000B6 -S3154004D03000000000000000000000000000000000A6 -S3154004D0400000000000000000000000000000000096 -S3154004D0500000000000000000000000000000000086 -S3154004D0600000000000000000000000000000000076 -S3154004D0700000000000000000000000000000000066 -S3154004D0800000000000000000000000000000000056 -S3154004D0900000000000000000000000000000000046 -S3154004D0A00000000000000000000000000000000036 -S3154004D0B00000000000000000000000000000000026 -S3154004D0C00000000000000000000000000000000016 -S3154004D0D00000000000000000000000000000000006 -S3154004D0E000000000000000000000000000000000F6 -S3154004D0F000000000000000000000000000000000E6 -S3154004D10000000000000000000000000000000000D5 -S3154004D11000000000000000000000000000000000C5 -S3154004D12000000000000000000000000000000000B5 -S3154004D13000000000000000000000000000000000A5 -S3154004D1400000000000000000000000000000000095 -S3154004D1500000000000000000000000000000000085 -S3154004D1600000000000000000000000000000000075 -S3154004D1700000000000000000000000000000000065 -S3154004D1800000000000000000000000000000000055 -S3154004D1900000000000000000000000000000000045 -S3154004D1A00000000000000000000000000000000035 -S3154004D1B00000000000000000000000000000000025 -S3154004D1C00000000000000000000000000000000015 -S3154004D1D00000000000000000000000000000000005 -S3154004D1E000000000000000000000000000000000F5 -S3154004D1F000000000000000000000000000000000E5 -S3154004D20000000000000000000000000000000000D4 -S3154004D21000000000000000000000000000000000C4 -S3154004D22000000000000000000000000000000000B4 -S3154004D23000000000000000000000000000000000A4 -S3154004D2400000000000000000000000000000000094 -S3154004D2500000000000000000000000000000000084 -S3154004D2600000000000000000000000000000000074 -S3154004D2700000000000000000000000000000000064 -S3154004D2800000000000000000000000000000000054 -S3154004D2900000000000000000000000000000000044 -S3154004D2A00000000000000000000000000000000034 -S3154004D2B00000000000000000000000000000000024 -S3154004D2C00000000000000000000000000000000014 -S3154004D2D00000000000000000000000000000000004 -S3154004D2E000000000000000000000000000000000F4 -S3154004D2F000000000000000000000000000000000E4 -S3154004D30000000000000000000000000000000000D3 -S3154004D31000000000000000000000000000000000C3 -S3154004D32000000000000000000000000000000000B3 -S3154004D33000000000000000000000000000000000A3 -S3154004D3400000000000000000000000000000000093 -S3154004D3500000000000000000000000000000000083 -S3154004D3600000000000000000000000000000000073 -S3154004D3700000000000000000000000000000000063 -S3154004D3800000000000000000000000000000000053 -S3154004D3900000000000000000000000000000000043 -S3154004D3A00000000000000000000000000000000033 -S3154004D3B00000000000000000000000000000000023 -S3154004D3C00000000000000000000000000000000013 -S3154004D3D00000000000000000000000000000000003 -S3154004D3E000000000000000000000000000000000F3 -S3154004D3F000000000000000000000000000000000E3 -S3154004D40000000000000000000000000000000000D2 -S3154004D41000000000000000000000000000000000C2 -S3154004D42000000000000000000000000000000000B2 -S3154004D43000000000000000000000000000000000A2 -S3154004D4400000000000000000000000000000000092 -S3154004D4500000000000000000000000000000000082 -S3154004D4600000000000000000000000000000000072 -S3154004D4700000000000000000000000000000000062 -S3154004D4800000000000000000000000000000000052 -S3154004D4900000000000000000000000000000000042 -S3154004D4A00000000000000000000000000000000032 -S3154004D4B00000000000000000000000000000000022 -S3154004D4C00000000000000000000000000000000012 -S3154004D4D00000000000000000000000000000000002 -S3154004D4E000000000000000000000000000000000F2 -S3154004D4F000000000000000000000000000000000E2 -S3154004D50000000000000000000000000000000000D1 -S3154004D51000000000000000000000000000000000C1 -S3154004D52000000000000000000000000000000000B1 -S3154004D53000000000000000000000000000000000A1 -S3154004D5400000000000000000000000000000000091 -S3154004D5500000000000000000000000000000000081 -S3154004D5600000000000000000000000000000000071 -S3154004D5700000000000000000000000000000000061 -S3154004D5800000000000000000000000000000000051 -S3154004D5900000000000000000000000000000000041 -S3154004D5A00000000000000000000000000000000031 -S3154004D5B00000000000000000000000000000000021 -S3154004D5C00000000000000000000000000000000011 -S3154004D5D00000000000000000000000000000000001 -S3154004D5E000000000000000000000000000000000F1 -S3154004D5F000000000000000000000000000000000E1 -S3154004D60000000000000000000000000000000000D0 -S3154004D61000000000000000000000000000000000C0 -S3154004D62000000000000000000000000000000000B0 -S3154004D63000000000000000000000000000000000A0 -S3154004D6400000000000000000000000000000000090 -S3154004D6500000000000000000000000000000000080 -S3154004D6600000000000000000000000000000000070 -S3154004D6700000000000000000000000000000000060 -S3154004D6800000000000000000000000000000000050 -S3154004D6900000000000000000000000000000000040 -S3154004D6A00000000000000000000000000000000030 -S3154004D6B00000000000000000000000000000000020 -S3154004D6C00000000000000000000000000000000010 -S3154004D6D00000000000000000000000000000000000 -S3154004D6E000000000000000000000000000000000F0 -S3154004D6F000000000000000000000000000000000E0 -S3154004D70000000000000000000000000000000000CF -S3154004D71000000000000000000000000000000000BF -S3154004D72000000000000000000000000000000000AF -S3154004D730000000000000000000000000000000009F -S3154004D740000000000000000000000000000000008F -S3154004D750000000000000000000000000000000007F -S3154004D760000000000000000000000000000000006F -S3154004D770000000000000000000000000000000005F -S3154004D780000000000000000000000000000000004F -S3154004D790000000000000000000000000000000003F -S3154004D7A0000000000000000000000000000000002F -S3154004D7B0000000000000000000000000000000001F -S3154004D7C0000000000000000000000000000000000F -S3154004D7D000000000000000000000000000000000FF -S3154004D7E000000000000000000000000000000000EF -S3154004D7F000000000000000000000000000000000DF -S3154004D80000000000000000000000000000000000CE -S3154004D81000000000000000000000000000000000BE -S3154004D82000000000000000000000000000000000AE -S3154004D830000000000000000000000000000000009E -S3154004D840000000000000000000000000000000008E -S3154004D850000000000000000000000000000000007E -S3154004D860000000000000000000000000000000006E -S3154004D870000000000000000000000000000000005E -S3154004D880000000000000000000000000000000004E -S3154004D890000000000000000000000000000000003E -S3154004D8A0000000000000000000000000000000002E -S3154004D8B0000000000000000000000000000000001E -S3154004D8C0000000000000000000000000000000000E -S3154004D8D000000000000000000000000000000000FE -S3154004D8E000000000000000000000000000000000EE -S3154004D8F000000000000000000000000000000000DE -S3154004D90000000000000000000000000000000000CD -S3154004D91000000000000000000000000000000000BD -S3154004D92000000000000000000000000000000000AD -S3154004D930000000000000000000000000000000009D -S3154004D940000000000000000000000000000000008D -S3154004D950000000000000000000000000000000007D -S3154004D960000000000000000000000000000000006D -S3154004D970000000000000000000000000000000005D -S3154004D980000000000000000000000000000000004D -S3154004D990000000000000000000000000000000003D -S3154004D9A0000000000000000000000000000000002D -S3154004D9B0000000000000000000000000000000001D -S3154004D9C0000000000000000000000000000000000D -S3154004D9D000000000000000000000000000000000FD -S3154004D9E000000000000000000000000000000000ED -S3154004D9F000000000000000000000000000000000DD -S3154004DA0000000000000000000000000000000000CC -S3154004DA1000000000000000000000000000000000BC -S3154004DA2000000000000000000000000000000000AC -S3154004DA30000000000000000000000000000000009C -S3154004DA40000000000000000000000000000000008C -S3154004DA50000000000000000000000000000000007C -S3154004DA60000000000000000000000000000000006C -S3154004DA70000000000000000000000000000000005C -S3154004DA80000000000000000000000000000000004C -S3154004DA90000000000000000000000000000000003C -S3154004DAA0000000000000000000000000000000002C -S3154004DAB0000000000000000000000000000000001C -S3154004DAC0000000000000000000000000000000000C -S3154004DAD000000000000000000000000000000000FC -S3154004DAE000000000000000000000000000000000EC -S3154004DAF000000000000000000000000000000000DC -S3154004DB0000000000000000000000000000000000CB -S3154004DB1000000000000000000000000000000000BB -S3154004DB2000000000000000000000000000000000AB -S3154004DB30000000000000000000000000000000009B -S3154004DB40000000000000000000000000000000008B -S3154004DB50000000000000000000000000000000007B -S3154004DB60000000000000000000000000000000006B -S3154004DB70000000000000000000000000000000005B -S3154004DB80000000000000000000000000000000004B -S3154004DB90000000000000000000000000000000003B -S3154004DBA0000000000000000000000000000000002B -S3154004DBB0000000000000000000000000000000001B -S3154004DBC0000000000000000000000000000000000B -S3154004DBD000000000000000000000000000000000FB -S3154004DBE000000000000000000000000000000000EB -S3154004DBF000000000000000000000000000000000DB -S3154004DC0000000000000000000000000000000000CA -S3154004DC1000000000000000000000000000000000BA -S3154004DC2000000000000000000000000000000000AA -S3154004DC30000000000000000000000000000000009A -S3154004DC40000000000000000000000000000000008A -S3154004DC50000000000000000000000000000000007A -S3154004DC60000000000000000000000000000000006A -S3154004DC70000000000000000000000000000000005A -S3154004DC80000000000000000000000000000000004A -S3154004DC90000000000000000000000000000000003A -S3154004DCA0000000000000000000000000000000002A -S3154004DCB0000000000000000000000000000000001A -S3154004DCC0000000000000000000000000000000000A -S3154004DCD000000000000000000000000000000000FA -S3154004DCE000000000000000000000000000000000EA -S3154004DCF000000000000000000000000000000000DA -S3154004DD0000000000000000000000000000000000C9 -S3154004DD1000000000000000000000000000000000B9 -S3154004DD2000000000000000000000000000000000A9 -S3154004DD300000000000000000000000000000000099 -S3154004DD400000000000000000000000000000000089 -S3154004DD500000000000000000000000000000000079 -S3154004DD600000000000000000000000000000000069 -S3154004DD700000000000000000000000000000000059 -S3154004DD800000000000000000000000000000000049 -S3154004DD900000000000000000000000000000000039 -S3154004DDA00000000000000000000000000000000029 -S3154004DDB00000000000000000000000000000000019 -S3154004DDC00000000000000000000000000000000009 -S3154004DDD000000000000000000000000000000000F9 -S3154004DDE000000000000000000000000000000000E9 -S3154004DDF000000000000000000000000000000000D9 -S3154004DE0000000000000000000000000000000000C8 -S3154004DE1000000000000000000000000000000000B8 -S3154004DE2000000000000000000000000000000000A8 -S3154004DE300000000000000000000000000000000098 -S3154004DE400000000000000000000000000000000088 -S3154004DE500000000000000000000000000000000078 -S3154004DE600000000000000000000000000000000068 -S3154004DE700000000000000000000000000000000058 -S3154004DE800000000000000000000000000000000048 -S3154004DE900000000000000000000000000000000038 -S3154004DEA00000000000000000000000000000000028 -S3154004DEB00000000000000000000000000000000018 -S3154004DEC00000000000000000000000000000000008 -S3154004DED000000000000000000000000000000000F8 -S3154004DEE000000000000000000000000000000000E8 -S3154004DEF000000000000000000000000000000000D8 -S3154004DF0000000000000000000000000000000000C7 -S3154004DF1000000000000000000000000000000000B7 -S3154004DF2000000000000000000000000000000000A7 -S3154004DF300000000000000000000000000000000097 -S3154004DF400000000000000000000000000000000087 -S3154004DF500000000000000000000000000000000077 -S3154004DF600000000000000000000000000000000067 -S3154004DF700000000000000000000000000000000057 -S3154004DF800000000000000000000000000000000047 -S3154004DF900000000000000000000000000000000037 -S3154004DFA00000000000000000000000000000000027 -S3154004DFB00000000000000000000000000000000017 -S3154004DFC00000000000000000000000000000000007 -S3154004DFD000000000000000000000000000000000F7 -S3154004DFE000000000000000000000000000000000E7 -S3154004DFF000000000000000000000000000000000D7 -S3154004E00000000000000000000000000000000000C6 -S3154004E01000000000000000000000000000000000B6 -S3154004E02000000000000000000000000000000000A6 -S3154004E0300000000000000000000000000000000096 -S3154004E0400000000000000000000000000000000086 -S3154004E0500000000000000000000000000000000076 -S3154004E0600000000000000000000000000000000066 -S3154004E0700000000000000000000000000000000056 -S3154004E0800000000000000000000000000000000046 -S3154004E0900000000000000000000000000000000036 -S3154004E0A00000000000000000000000000000000026 -S3154004E0B00000000000000000000000000000000016 -S3154004E0C00000000000000000000000000000000006 -S3154004E0D000000000000000000000000000000000F6 -S3154004E0E000000000000000000000000000000000E6 -S3154004E0F000000000000000000000000000000000D6 -S3154004E10000000000000000000000000000000000C5 -S3154004E11000000000000000000000000000000000B5 -S3154004E12000000000000000000000000000000000A5 -S3154004E1300000000000000000000000000000000095 -S3154004E1400000000000000000000000000000000085 -S3154004E1500000000000000000000000000000000075 -S3154004E1600000000000000000000000000000000065 -S3154004E1700000000000000000000000000000000055 -S3154004E1800000000000000000000000000000000045 -S3154004E1900000000000000000000000000000000035 -S3154004E1A00000000000000000000000000000000025 -S3154004E1B00000000000000000000000000000000015 -S3154004E1C00000000000000000000000000000000005 -S3154004E1D000000000000000000000000000000000F5 -S3154004E1E000000000000000000000000000000000E5 -S3154004E1F000000000000000000000000000000000D5 -S3154004E20000000000000000000000000000000000C4 -S3154004E21000000000000000000000000000000000B4 -S3154004E22000000000000000000000000000000000A4 -S3154004E2300000000000000000000000000000000094 -S3154004E2400000000000000000000000000000000084 -S3154004E2500000000000000000000000000000000074 -S3154004E2600000000000000000000000000000000064 -S3154004E2700000000000000000000000000000000054 -S3154004E2800000000000000000000000000000000044 -S3154004E2900000000000000000000000000000000034 -S3154004E2A00000000000000000000000000000000024 -S3154004E2B00000000000000000000000000000000014 -S3154004E2C00000000000000000000000000000000004 -S3154004E2D000000000000000000000000000000000F4 -S3154004E2E000000000000000000000000000000000E4 -S3154004E2F000000000000000000000000000000000D4 -S3154004E30000000000000000000000000000000000C3 -S3154004E31000000000000000000000000000000000B3 -S3154004E32000000000000000000000000000000000A3 -S3154004E3300000000000000000000000000000000093 -S3154004E3400000000000000000000000000000000083 -S3154004E3500000000000000000000000000000000073 -S3154004E3600000000000000000000000000000000063 -S3154004E3700000000000000000000000000000000053 -S3154004E3800000000000000000000000000000000043 -S3154004E3900000000000000000000000000000000033 -S3154004E3A00000000000000000000000000000000023 -S3154004E3B00000000000000000000000000000000013 -S3154004E3C00000000000000000000000000000000003 -S3154004E3D000000000000000000000000000000000F3 -S3154004E3E000000000000000000000000000000000E3 -S3154004E3F000000000000000000000000000000000D3 -S3154004E40000000000000000000000000000000000C2 -S3154004E41000000000000000000000000000000000B2 -S3154004E42000000000000000000000000000000000A2 -S3154004E4300000000000000000000000000000000092 -S3154004E4400000000000000000000000000000000082 -S3154004E4500000000000000000000000000000000072 -S3154004E4600000000000000000000000000000000062 -S3154004E4700000000000000000000000000000000052 -S3154004E4800000000000000000000000000000000042 -S3154004E4900000000000000000000000000000000032 -S3154004E4A00000000000000000000000000000000022 -S3154004E4B00000000000000000000000000000000012 -S3154004E4C00000000000000000000000000000000002 -S3154004E4D000000000000000000000000000000000F2 -S3154004E4E000000000000000000000000000000000E2 -S3154004E4F000000000000000000000000000000000D2 -S3154004E50000000000000000000000000000000000C1 -S3154004E51000000000000000000000000000000000B1 -S3154004E52000000000000000000000000000000000A1 -S3154004E5300000000000000000000000000000000091 -S3154004E5400000000000000000000000000000000081 -S3154004E5500000000000000000000000000000000071 -S3154004E5600000000000000000000000000000000061 -S3154004E5700000000000000000000000000000000051 -S3154004E5800000000000000000000000000000000041 -S3154004E5900000000000000000000000000000000031 -S3154004E5A00000000000000000000000000000000021 -S3154004E5B00000000000000000000000000000000011 -S3154004E5C00000000000000000000000000000000001 -S3154004E5D000000000000000000000000000000000F1 -S3154004E5E000000000000000000000000000000000E1 -S3154004E5F000000000000000000000000000000000D1 -S3154004E60000000000000000000000000000000000C0 -S3154004E61000000000000000000000000000000000B0 -S3154004E62000000000000000000000000000000000A0 -S3154004E6300000000000000000000000000000000090 -S3154004E6400000000000000000000000000000000080 -S3154004E6500000000000000000000000000000000070 -S3154004E6600000000000000000000000000000000060 -S3154004E6700000000000000000000000000000000050 -S3154004E6800000000000000000000000000000000040 -S3154004E6900000000000000000000000000000000030 -S3154004E6A00000000000000000000000000000000020 -S3154004E6B00000000000000000000000000000000010 -S3154004E6C00000000000000000000000000000000000 -S3154004E6D000000000000000000000000000000000F0 -S3154004E6E000000000000000000000000000000000E0 -S3154004E6F000000000000000000000000000000000D0 -S3154004E70000000000000000000000000000000000BF -S3154004E71000000000000000000000000000000000AF -S3154004E720000000000000000000000000000000009F -S3154004E730000000000000000000000000000000008F -S3154004E740000000000000000000000000000000007F -S3154004E750000000000000000000000000000000006F -S3154004E760000000000000000000000000000000005F -S3154004E770000000000000000000000000000000004F -S3154004E780000000000000000000000000000000003F -S3154004E790000000000000000000000000000000002F -S3154004E7A0000000000000000000000000000000001F -S3154004E7B0000000000000000000000000000000000F -S3154004E7C000000000000000000000000000000000FF -S3154004E7D000000000000000000000000000000000EF -S3154004E7E000000000000000000000000000000000DF -S3154004E7F000000000000000000000000000000000CF -S3154004E80000000000000000000000000000000000BE -S3154004E81000000000000000000000000000000000AE -S3154004E820000000000000000000000000000000009E -S3154004E830000000000000000000000000000000008E -S3154004E840000000000000000000000000000000007E -S3154004E850000000000000000000000000000000006E -S3154004E860000000000000000000000000000000005E -S3154004E870000000000000000000000000000000004E -S3154004E880000000000000000000000000000000003E -S3154004E890000000000000000000000000000000002E -S3154004E8A0000000000000000000000000000000001E -S3154004E8B0000000000000000000000000000000000E -S3154004E8C000000000000000000000000000000000FE -S3154004E8D000000000000000000000000000000000EE -S3154004E8E000000000000000000000000000000000DE -S3154004E8F000000000000000000000000000000000CE -S3154004E90000000000000000000000000000000000BD -S3154004E91000000000000000000000000000000000AD -S3154004E920000000000000000000000000000000009D -S3154004E930000000000000000000000000000000008D -S3154004E940000000000000000000000000000000007D -S3154004E950000000000000000000000000000000006D -S3154004E960000000000000000000000000000000005D -S3154004E970000000000000000000000000000000004D -S3154004E980000000000000000000000000000000003D -S3154004E990000000000000000000000000000000002D -S3154004E9A0000000000000000000000000000000001D -S3154004E9B0000000000000000000000000000000000D -S3154004E9C000000000000000000000000000000000FD -S3154004E9D000000000000000000000000000000000ED -S3154004E9E000000000000000000000000000000000DD -S3154004E9F000000000000000000000000000000000CD -S3154004EA0000000000000000000000000000000000BC -S3154004EA1000000000000000000000000000000000AC -S3154004EA20000000000000000000000000000000009C -S3154004EA30000000000000000000000000000000008C -S3154004EA40000000000000000000000000000000007C -S3154004EA50000000000000000000000000000000006C -S3154004EA60000000000000000000000000000000005C -S3154004EA70000000000000000000000000000000004C -S3154004EA80000000000000000000000000000000003C -S3154004EA90000000000000000000000000000000002C -S3154004EAA0000000000000000000000000000000001C -S3154004EAB0000000000000000000000000000000000C -S3154004EAC000000000000000000000000000000000FC -S3154004EAD000000000000000000000000000000000EC -S3154004EAE000000000000000000000000000000000DC -S3154004EAF000000000000000000000000000000000CC -S3154004EB0000000000000000000000000000000000BB -S3154004EB1000000000000000000000000000000000AB -S3154004EB20000000000000000000000000000000009B -S3154004EB30000000000000000000000000000000008B -S3154004EB40000000000000000000000000000000007B -S3154004EB50000000000000000000000000000000006B -S3154004EB60000000000000000000000000000000005B -S3154004EB70000000000000000000000000000000004B -S3154004EB80000000000000000000000000000000003B -S3154004EB90000000000000000000000000000000002B -S3154004EBA0000000000000000000000000000000001B -S3154004EBB0000000000000000000000000000000000B -S3154004EBC000000000000000000000000000000000FB -S3154004EBD000000000000000000000000000000000EB -S3154004EBE000000000000000000000000000000000DB -S3154004EBF000000000000000000000000000000000CB -S3154004EC0000000000000000000000000000000000BA -S3154004EC1000000000000000000000000000000000AA -S3154004EC20000000000000000000000000000000009A -S3154004EC30000000000000000000000000000000008A -S3154004EC40000000000000000000000000000000007A -S3154004EC50000000000000000000000000000000006A -S3154004EC60000000000000000000000000000000005A -S3154004EC70000000000000000000000000000000004A -S3154004EC80000000000000000000000000000000003A -S3154004EC90000000000000000000000000000000002A -S3154004ECA0000000000000000000000000000000001A -S3154004ECB0000000000000000000000000000000000A -S3154004ECC000000000000000000000000000000000FA -S3154004ECD000000000000000000000000000000000EA -S3154004ECE000000000000000000000000000000000DA -S3154004ECF000000000000000000000000000000000CA -S3154004ED0000000000000000000000000000000000B9 -S3154004ED1000000000000000000000000000000000A9 -S3154004ED200000000000000000000000000000000099 -S3154004ED300000000000000000000000000000000089 -S3154004ED400000000000000000000000000000000079 -S3154004ED500000000000000000000000000000000069 -S3154004ED600000000000000000000000000000000059 -S3154004ED700000000000000000000000000000000049 -S3154004ED800000000000000000000000000000000039 -S3154004ED900000000000000000000000000000000029 -S3154004EDA00000000000000000000000000000000019 -S3154004EDB00000000000000000000000000000000009 -S3154004EDC000000000000000000000000000000000F9 -S3154004EDD000000000000000000000000000000000E9 -S3154004EDE000000000000000000000000000000000D9 -S3154004EDF000000000000000000000000000000000C9 -S3154004EE0000000000000000000000000000000000B8 -S3154004EE1000000000000000000000000000000000A8 -S3154004EE200000000000000000000000000000000098 -S3154004EE300000000000000000000000000000000088 -S3154004EE400000000000000000000000000000000078 -S3154004EE500000000000000000000000000000000068 -S3154004EE600000000000000000000000000000000058 -S3154004EE700000000000000000000000000000000048 -S3154004EE800000000000000000000000000000000038 -S3154004EE900000000000000000000000000000000028 -S3154004EEA00000000000000000000000000000000018 -S3154004EEB00000000000000000000000000000000008 -S3154004EEC000000000000000000000000000000000F8 -S3154004EED000000000000000000000000000000000E8 -S3154004EEE000000000000000000000000000000000D8 -S3154004EEF000000000000000000000000000000000C8 -S3154004EF0000000000000000000000000000000000B7 -S3154004EF1000000000000000000000000000000000A7 -S3154004EF200000000000000000000000000000000097 -S3154004EF300000000000000000000000000000000087 -S3154004EF400000000000000000000000000000000077 -S3154004EF500000000000000000000000000000000067 -S3154004EF600000000000000000000000000000000057 -S3154004EF700000000000000000000000000000000047 -S3154004EF800000000000000000000000000000000037 -S3154004EF900000000000000000000000000000000027 -S3154004EFA00000000000000000000000000000000017 -S3154004EFB00000000000000000000000000000000007 -S3154004EFC000000000000000000000000000000000F7 -S3154004EFD000000000000000000000000000000000E7 -S3154004EFE000000000000000000000000000000000D7 -S3154004EFF000000000000000000000000000000000C7 -S3154004F00000000000000000000000000000000000B6 -S3154004F01000000000000000000000000000000000A6 -S3154004F0200000000000000000000000000000000096 -S3154004F0300000000000000000000000000000000086 -S3154004F0400000000000000000000000000000000076 -S3154004F0500000000000000000000000000000000066 -S3154004F0600000000000000000000000000000000056 -S3154004F0700000000000000000000000000000000046 -S3154004F0800000000000000000000000000000000036 -S3154004F0900000000000000000000000000000000026 -S3154004F0A00000000000000000000000000000000016 -S3154004F0B00000000000000000000000000000000006 -S3154004F0C000000000000000000000000000000000F6 -S3154004F0D000000000000000000000000000000000E6 -S3154004F0E000000000000000000000000000000000D6 -S3154004F0F000000000000000000000000000000000C6 -S3154004F10000000000000000000000000000000000B5 -S3154004F11000000000000000000000000000000000A5 -S3154004F1200000000000000000000000000000000095 -S3154004F1300000000000000000000000000000000085 -S3154004F1400000000000000000000000000000000075 -S3154004F1500000000000000000000000000000000065 -S3154004F1600000000000000000000000000000000055 -S3154004F1700000000000000000000000000000000045 -S3154004F1800000000000000000000000000000000035 -S3154004F1900000000000000000000000000000000025 -S3154004F1A00000000000000000000000000000000015 -S3154004F1B00000000000000000000000000000000005 -S3154004F1C000000000000000000000000000000000F5 -S3154004F1D000000000000000000000000000000000E5 -S3154004F1E000000000000000000000000000000000D5 -S3154004F1F000000000000000000000000000000000C5 -S3154004F20000000000000000000000000000000000B4 -S3154004F21000000000000000000000000000000000A4 -S3154004F2200000000000000000000000000000000094 -S3154004F2300000000000000000000000000000000084 -S3154004F2400000000000000000000000000000000074 -S3154004F2500000000000000000000000000000000064 -S3154004F2600000000000000000000000000000000054 -S3154004F2700000000000000000000000000000000044 -S3154004F2800000000000000000000000000000000034 -S3154004F2900000000000000000000000000000000024 -S3154004F2A00000000000000000000000000000000014 -S3154004F2B00000000000000000000000000000000004 -S3154004F2C000000000000000000000000000000000F4 -S3154004F2D000000000000000000000000000000000E4 -S3154004F2E000000000000000000000000000000000D4 -S3154004F2F000000000000000000000000000000000C4 -S3154004F30000000000000000000000000000000000B3 -S3154004F31000000000000000000000000000000000A3 -S3154004F3200000000000000000000000000000000093 -S3154004F3300000000000000000000000000000000083 -S3154004F3400000000000000000000000000000000073 -S3154004F3500000000000000000000000000000000063 -S3154004F3600000000000000000000000000000000053 -S3154004F3700000000000000000000000000000000043 -S3154004F3800000000000000000000000000000000033 -S3154004F3900000000000000000000000000000000023 -S3154004F3A00000000000000000000000000000000013 -S3154004F3B00000000000000000000000000000000003 -S3154004F3C000000000000000000000000000000000F3 -S3154004F3D000000000000000000000000000000000E3 -S3154004F3E000000000000000000000000000000000D3 -S3154004F3F000000000000000000000000000000000C3 -S3154004F40000000000000000000000000000000000B2 -S3154004F41000000000000000000000000000000000A2 -S3154004F4200000000000000000000000000000000092 -S3154004F4300000000000000000000000000000000082 -S3154004F4400000000000000000000000000000000072 -S3154004F4500000000000000000000000000000000062 -S3154004F4600000000000000000000000000000000052 -S3154004F4700000000000000000000000000000000042 -S3154004F4800000000000000000000000000000000032 -S3154004F4900000000000000000000000000000000022 -S3154004F4A00000000000000000000000000000000012 -S3154004F4B00000000000000000000000000000000002 -S3154004F4C000000000000000000000000000000000F2 -S3154004F4D000000000000000000000000000000000E2 -S3154004F4E000000000000000000000000000000000D2 -S3154004F4F000000000000000000000000000000000C2 -S3154004F50000000000000000000000000000000000B1 -S3154004F51000000000000000000000000000000000A1 -S3154004F5200000000000000000000000000000000091 -S3154004F5300000000000000000000000000000000081 -S3154004F5400000000000000000000000000000000071 -S3154004F5500000000000000000000000000000000061 -S3154004F5600000000000000000000000000000000051 -S3154004F5700000000000000000000000000000000041 -S3154004F5800000000000000000000000000000000031 -S3154004F5900000000000000000000000000000000021 -S3154004F5A00000000000000000000000000000000011 -S3154004F5B00000000000000000000000000000000001 -S3154004F5C000000000000000000000000000000000F1 -S3154004F5D000000000000000000000000000000000E1 -S3154004F5E000000000000000000000000000000000D1 -S3154004F5F000000000000000000000000000000000C1 -S3154004F60000000000000000000000000000000000B0 -S3154004F61000000000000000000000000000000000A0 -S3154004F6200000000000000000000000000000000090 -S3154004F6300000000000000000000000000000000080 -S3154004F6400000000000000000000000000000000070 -S3154004F6500000000000000000000000000000000060 -S3154004F6600000000000000000000000000000000050 -S3154004F6700000000000000000000000000000000040 -S3154004F6800000000000000000000000000000000030 -S3154004F6900000000000000000000000000000000020 -S3154004F6A00000000000000000000000000000000010 -S3154004F6B00000000000000000000000000000000000 -S3154004F6C000000000000000000000000000000000F0 -S3154004F6D000000000000000000000000000000000E0 -S3154004F6E000000000000000000000000000000000D0 -S3154004F6F000000000000000000000000000000000C0 -S3154004F70000000000000000000000000000000000AF -S3154004F710000000000000000000000000000000009F -S3154004F720000000000000000000000000000000008F -S3154004F730000000000000000000000000000000007F -S3154004F740000000000000000000000000000000006F -S3154004F750000000000000000000000000000000005F -S3154004F760000000000000000000000000000000004F -S3154004F770000000000000000000000000000000003F -S3154004F780000000000000000000000000000000002F -S3154004F790000000000000000000000000000000001F -S3154004F7A0000000000000000000000000000000000F -S3154004F7B000000000000000000000000000000000FF -S3154004F7C000000000000000000000000000000000EF -S3154004F7D000000000000000000000000000000000DF -S3154004F7E000000000000000000000000000000000CF -S3154004F7F000000000000000000000000000000000BF -S3154004F80000000000000000000000000000000000AE -S3154004F810000000000000000000000000000000009E -S3154004F820000000000000000000000000000000008E -S3154004F830000000000000000000000000000000007E -S3154004F840000000000000000000000000000000006E -S3154004F850000000000000000000000000000000005E -S3154004F860000000000000000000000000000000004E -S3154004F870000000000000000000000000000000003E -S3154004F880000000000000000000000000000000002E -S3154004F890000000000000000000000000000000001E -S3154004F8A0000000000000000000000000000000000E -S3154004F8B000000000000000000000000000000000FE -S3154004F8C000000000000000000000000000000000EE -S3154004F8D000000000000000000000000000000000DE -S3154004F8E000000000000000000000000000000000CE -S3154004F8F000000000000000000000000000000000BE -S3154004F90000000000000000000000000000000000AD -S3154004F910000000000000000000000000000000009D -S3154004F920000000000000000000000000000000008D -S3154004F930000000000000000000000000000000007D -S3154004F940000000000000000000000000000000006D -S3154004F950000000000000000000000000000000005D -S3154004F960000000000000000000000000000000004D -S3154004F970000000000000000000000000000000003D -S3154004F980000000000000000000000000000000002D -S3154004F990000000000000000000000000000000001D -S3154004F9A0000000000000000000000000000000000D -S3154004F9B000000000000000000000000000000000FD -S3154004F9C000000000000000000000000000000000ED -S3154004F9D000000000000000000000000000000000DD -S3154004F9E000000000000000000000000000000000CD -S3154004F9F000000000000000000000000000000000BD -S3154004FA0000000000000000000000000000000000AC -S3154004FA10000000000000000000000000000000009C -S3154004FA20000000000000000000000000000000008C -S3154004FA30000000000000000000000000000000007C -S3154004FA40000000000000000000000000000000006C -S3154004FA50000000000000000000000000000000005C -S3154004FA60000000000000000000000000000000004C -S3154004FA70000000000000000000000000000000003C -S3154004FA80000000000000000000000000000000002C -S3154004FA90000000000000000000000000000000001C -S3154004FAA0000000000000000000000000000000000C -S3154004FAB000000000000000000000000000000000FC -S3154004FAC000000000000000000000000000000000EC -S3154004FAD000000000000000000000000000000000DC -S3154004FAE000000000000000000000000000000000CC -S3154004FAF000000000000000000000000000000000BC -S3154004FB0000000000000000000000000000000000AB -S3154004FB10000000000000000000000000000000009B -S3154004FB20000000000000000000000000000000008B -S3154004FB30000000000000000000000000000000007B -S3154004FB40000000000000000000000000000000006B -S3154004FB50000000000000000000000000000000005B -S3154004FB60000000000000000000000000000000004B -S3154004FB70000000000000000000000000000000003B -S3154004FB80000000000000000000000000000000002B -S3154004FB90000000000000000000000000000000001B -S3154004FBA0000000000000000000000000000000000B -S3154004FBB000000000000000000000000000000000FB -S3154004FBC000000000000000000000000000000000EB -S3154004FBD000000000000000000000000000000000DB -S3154004FBE000000000000000000000000000000000CB -S3154004FBF000000000000000000000000000000000BB -S3154004FC0000000000000000000000000000000000AA -S3154004FC10000000000000000000000000000000009A -S3154004FC20000000000000000000000000000000008A -S3154004FC30000000000000000000000000000000007A -S3154004FC40000000000000000000000000000000006A -S3154004FC50000000000000000000000000000000005A -S3154004FC60000000000000000000000000000000004A -S3154004FC70000000000000000000000000000000003A -S3154004FC80000000000000000000000000000000002A -S3154004FC90000000000000000000000000000000001A -S3154004FCA0000000000000000000000000000000000A -S3154004FCB000000000000000000000000000000000FA -S3154004FCC000000000000000000000000000000000EA -S3154004FCD000000000000000000000000000000000DA -S3154004FCE000000000000000000000000000000000CA -S3154004FCF000000000000000000000000000000000BA -S3154004FD0000000000000000000000000000000000A9 -S3154004FD100000000000000000000000000000000099 -S3154004FD200000000000000000000000000000000089 -S3154004FD300000000000000000000000000000000079 -S3154004FD400000000000000000000000000000000069 -S3154004FD500000000000000000000000000000000059 -S3154004FD600000000000000000000000000000000049 -S3154004FD700000000000000000000000000000000039 -S3154004FD800000000000000000000000000000000029 -S3154004FD900000000000000000000000000000000019 -S3154004FDA00000000000000000000000000000000009 -S3154004FDB000000000000000000000000000000000F9 -S3154004FDC000000000000000000000000000000000E9 -S3154004FDD000000000000000000000000000000000D9 -S3154004FDE000000000000000000000000000000000C9 -S3154004FDF000000000000000000000000000000000B9 -S3154004FE0000000000000000000000000000000000A8 -S3154004FE100000000000000000000000000000000098 -S3154004FE200000000000000000000000000000000088 -S3154004FE300000000000000000000000000000000078 -S3154004FE400000000000000000000000000000000068 -S3154004FE500000000000000000000000000000000058 -S3154004FE600000000000000000000000000000000048 -S3154004FE700000000000000000000000000000000038 -S3154004FE800000000000000000000000000000000028 -S3154004FE900000000000000000000000000000000018 -S3154004FEA00000000000000000000000000000000008 -S3154004FEB000000000000000000000000000000000F8 -S3154004FEC000000000000000000000000000000000E8 -S3154004FED000000000000000000000000000000000D8 -S3154004FEE000000000000000000000000000000000C8 -S3154004FEF000000000000000000000000000000000B8 -S3154004FF0000000000000000000000000000000000A7 -S3154004FF100000000000000000000000000000000097 -S3154004FF200000000000000000000000000000000087 -S3154004FF300000000000000000000000000000000077 -S3154004FF400000000000000000000000000000000067 -S3154004FF500000000000000000000000000000000057 -S3154004FF600000000000000000000000000000000047 -S3154004FF700000000000000000000000000000000037 -S3154004FF800000000000000000000000000000000027 -S3154004FF900000000000000000000000000000000017 -S3154004FFA00000000000000000000000000000000007 -S3154004FFB000000000000000000000000000000000F7 -S3154004FFC000000000000000000000000000000000E7 -S3154004FFD000000000000000000000000000000000D7 -S3154004FFE000000000000000000000000000000000C7 -S3154004FFF000000000000000000000000000000000B7 -S3154005000000000002000000030000000000000000A0 -S315400500100000000100000000FFFFFFFE0000000396 -S3154005002055555554FFFFFFFE0000000355555554E1 -S31540050030700FFFFE00000007100249240000000073 -S315400500400000000000000000000000020000000360 -S315400500500000000000000003FFFFFFFEFFFFFFFF5B -S3154005006000000002FFFFFFFD000000000000000049 -S31540050070000000010000000000000000FFFFFFFF38 -S315400500800000000000000001FFFFFFFFFFFFFFFF2C -S31540050090FFFFFFFF00000001FFFFFFFFFFFFFFFE21 -S315400500A00000000300000000FFFFFFFEFFFFFFFD0D -S315400500B000000000000000090000000700000001E4 -S315400500C0FFFFFFF700000002FFFFFFFCFFFFFFF801 -S315400500D000000002FFFFFFFCFFFFFFF8FFFFFFFCEC -S315400500E00000000200000008FFFFFFFCFFFFFFFEC7 -S315400500F0FFFFFFF8FFFFFFF800000001FFFFFFF8D5 -S31540050100FFFFFFF7000000000000000B00000002A3 -S31540050110000000050000002F000000020000001747 -S3154005012000003039000002A700000012FFFF076CEF -S315400501300000004DFFFFFCC600003039FFFFFD59AA -S31540050140FFFFFFEEFFFF076CFFFFFFB30000033A1B -S3154005015000000091FFFFE84100000000FFFFFD841D -S31540050160FFFED02F000000000000F6FA006E498120 -S315400501700000000000000000000000000000000034 -S31540050180FFFFF0000000000200000003000000062B -S3154005019000000002FFFFFFFDFFFFFFFA0000000021 -S315400501A0000000010000000000000000FFFFFFFF07 -S315400501B00000000000000001FFFFFFFFFFFFFFFFFB -S315400501C0FFFFFFFF00000001FFFFFFFFFFFFFFFEF0 -S315400501D000000003FFFFFFFAFFFFFFFEFFFFFFFDE5 -S315400501E000000006000000000000000000000009B5 -S315400501F000000000000000000000000000000000B4 -S31540050200000000000000000100000002000000039D -S315400502100000000000000000000000000000000093 -S31540050220FFFFFFFF00020000000000000000000085 -S3154005023040050228400502284005023040050230A7 -S315400502404005023840050238400502404005024057 -S315400502504005024840050248400502504005025007 -S3154005026040050258400502584005026040050260B7 -S315400502704005026840050268400502704005027067 -S315400502804005027840050278400502804005028017 -S3154005029040050288400502884005029040050290C7 -S315400502A04005029840050298400502A0400502A077 -S315400502B0400502A8400502A8400502B0400502B027 -S315400502C0400502B8400502B8400502C0400502C0D7 -S315400502D0400502C8400502C8400502D0400502D087 -S315400502E0400502D8400502D8400502E0400502E037 -S315400502F0400502E8400502E8400502F0400502F0E7 -S31540050300400502F8400502F8400503004005030094 -S315400503104005030840050308400503104005031042 -S3154005032040050318400503184005032040050320F2 -S3154005033040050328400503284005033040050330A2 -S315400503404005033840050338400503404005034052 -S315400503504005034840050348400503504005035002 -S3154005036040050358400503584005036040050360B2 -S315400503704005036840050368400503704005037062 -S315400503804005037840050378400503804005038012 -S3154005039040050388400503884005039040050390C2 -S315400503A04005039840050398400503A0400503A072 -S315400503B0400503A8400503A8400503B0400503B022 -S315400503C0400503B8400503B8400503C0400503C0D2 -S315400503D0400503C8400503C8400503D0400503D082 -S315400503E0400503D8400503D8400503E0400503E032 -S315400503F0400503E8400503E8400503F0400503F0E2 -S31540050400400503F8400503F840050400400504008F -S31540050410400504084005040840050410400504103D -S3154005042040050418400504184005042040050420ED -S31540050430400504284005042840050430400504309D -S31540050440400504384005043840050440400504404D -S3154005045040050448400504484005045040050450FD -S3154005046040050458400504584005046040050460AD -S31540050470400504684005046840050470400504705D -S31540050480400504784005047840050480400504800D -S3154005049040050488400504884005049040050490BD -S315400504A04005049840050498400504A0400504A06D -S315400504B0400504A8400504A8400504B0400504B01D -S315400504C0400504B8400504B8400504C0400504C0CD -S315400504D0400504C8400504C8400504D0400504D07D -S315400504E0400504D8400504D8400504E0400504E02D -S315400504F0400504E8400504E8400504F0400504F0DD -S31540050500400504F8400504F840050500400505008A -S315400505104005050840050508400505104005051038 -S3154005052040050518400505184005052040050520E8 -S315400505304005052840050528400505304005053098 -S315400505404005053840050538400505404005054048 -S3154005055040050548400505484005055040050550F8 -S3154005056040050558400505584005056040050560A8 -S315400505704005056840050568400505704005057058 -S315400505804005057840050578400505804005058008 -S3154005059040050588400505884005059040050590B8 -S315400505A04005059840050598400505A0400505A068 -S315400505B0400505A8400505A8400505B0400505B018 -S315400505C0400505B8400505B8400505C0400505C0C8 -S315400505D0400505C8400505C8400505D0400505D078 -S315400505E0400505D8400505D8400505E0400505E028 -S315400505F0400505E8400505E8400505F0400505F0D8 -S31540050600400505F8400505F8400506004005060085 -S315400506104005060840050608400506104005061033 -S3154005062040050618400506184005062040050620E3 -S3154005063000000000400506300000000000000000F4 -S31540050640000000000000000200000000000000005D -S31540050650000000000000000000000000000000004F -S31540050660000000000000000000000000000000003F -S31540050670000000000000000000000000000000002F -S31540050680000000000000000000000000000000001F -S31540050690000000000000000000000000000000000F -S315400506A0000000000000000000000000400509941D -S315400506B040050A6040050B2C0000000000000000C4 -S315400506C000000000000000000000000000000000DF -S315400506D00000000000000000000000004001D110AD -S315400506E000000000000000000000000000000000BF -S315400506F000000000000000000000000000000000AF -S31540050700000000000000000000000000000000009E -S31540050710000000000000000000000000000000008E -S31540050720000000000000000000000000000000007E -S31540050730000000000000000000000000000000006E -S31540050740000000000000000000000000000000005E -S315400507500000000000000001330EABCD1234E66DFB -S31540050760DEEC0005000B0000000000000000000064 -S31540050770000000000000000000000000000000002E -S31540050780000000000000000000000000000000001E -S31540050790000000000000000000000000000000000E -S315400507A000000000000000000000000000000000FE -S315400507B000000000000000000000000000000000EE -S315400507C000000000000000000000000000000000DE -S315400507D000000000000000000000000000000000CE -S315400507E000000000000000000000000000000000BE -S315400507F000000000000000000000000000000000AE -S31540050800000000000000000000000000000000009D -S31540050810000000000000000000000000000000008D -S31540050820000000000000000000000000000000007D -S31540050830000000000000000000000000000000006D -S31540050840000000000000000000000000000000005D -S31540050850000000000000000000000000000000004D -S31540050860000000000000000000000000000000003D -S31540050870000000000000000000000000000000002D -S31540050880000000000000000000000000000000001D -S31540050890000000000000000000000000000000000D -S315400508A000000000000000000000000000000000FD -S315400508B000000000000000000000000000000000ED -S315400508C000000000000000000000000000000000DD -S315400508D000000000000000000000000000000000CD -S315400508E000000000000000000000000000000000BD -S315400508F000000000000000000000000000000000AD -S31540050900000000000000000000000000000000009C -S31540050910000000000000000000000000000000008C -S31540050920000000000000000000000000000000007C -S31540050930000000000000000000000000000000006C -S31540050940000000000000000000000000000000005C -S31540050950000000000000000000000000000000004C -S31540050960000000000000000000000000000000003C -S31540050970000000000000000000000000000000002C -S31540050980000000000000000000000000000000001C -S31540050990000000000000000000000000000000000C -S315400509A000000000000000000000000000000000FC -S315400509B000000000000000000000000000000000EC -S315400509C000000000000000000000000000000000DC -S315400509D000000000000000000000000000000000CC -S315400509E000000000000000000000000000000000BC -S315400509F000000000000000000000000000000000AC -S31540050A00000000000000000000000000000000009B -S31540050A10000000000000000000000000000000008B -S31540050A20000000000000000000000000000000007B -S31540050A30000000000000000000000000000000006B -S31540050A40000000000000000000000000000000005B -S31540050A50000000000000000000000000000000004B -S31540050A60000000000000000000000000000000003B -S31540050A70000000000000000000000000000000002B -S31540050A80000000000000000000000000000000001B -S31540050A90000000000000000000000000000000000B -S31540050AA000000000000000000000000000000000FB -S31540050AB000000000000000000000000000000000EB -S31540050AC000000000000000000000000000000000DB -S31540050AD000000000000000000000000000000000CB -S31540050AE000000000000000000000000000000000BB -S31540050AF000000000000000000000000000000000AB -S31540050B00000000000000000000000000000000009A -S31540050B10000000000000000000000000000000008A -S31540050B20000000000000000000000000000000007A -S31540050B30000000000000000000000000000000006A -S31540050B40000000000000000000000000000000005A -S31540050B50000000000000000000000000000000004A -S31540050B60000000000000000000000000000000003A -S31540050B70000000000000000000000000000000002A -S31540050B80000000000000000000000000000000001A -S31540050B90000000000000000000000000000000000A -S31540050BA000000000000000000000000000000000FA -S31540050BB000000000000000000000000000000000EA -S31540050BC000000000000000000000000000000000DA -S31540050BD000000000000000000000000000000000CA -S31540050BE000000000000000000000000000000000BA -S31540050BF00000000000000000400506A800000000B7 -S31540050C000000000000000000000000000000000099 -S31540050C100000000000000000000000000000000089 -S31540050C200000000000000000000000000000000079 -S31540050C3000000000800001000000000800000007D9 -S31540050C40000000060000000300000000FFFF8AD0F8 -S30940050C5080000310C2 +S31540048C30000000008000010000000008000000075A +S31540048C40000000060000000300000000FFFF8AD079 +S30D40048C5080000310000000003F S70540000000BA diff --git a/designs/leon3-arrow-bemicro-sdk/testbench.vhd b/designs/leon3-arrow-bemicro-sdk/testbench.vhd index 9b683cca..f12b01c8 100644 --- a/designs/leon3-arrow-bemicro-sdk/testbench.vhd +++ b/designs/leon3-arrow-bemicro-sdk/testbench.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -114,6 +114,12 @@ architecture behav of testbench is signal txdt : std_logic_vector(7 downto 0) := (others => '0'); signal rxdt : std_logic_vector(7 downto 0) := (others => '0'); + -- EPCS + signal epcs_data : std_ulogic; + signal epcs_dclk : std_ulogic; + signal epcs_csn : std_logic; + signal epcs_asdi : std_logic; + begin -- clock and reset @@ -145,7 +151,9 @@ begin -- Reconfig SW1 and SW2 reconfig_sw, -- SD card interface - sd_dat0, sd_dat1, sd_dat2, sd_dat3, sd_cmd, sd_clk + sd_dat0, sd_dat1, sd_dat2, sd_dat3, sd_cmd, sd_clk, + -- EPCS + epcs_data, epcs_dclk, epcs_csn, epcs_asdi ); -- SD card signals @@ -154,9 +162,19 @@ begin port map (sck => sd_clk, di => sd_cmd, do => sd_dat0, csn => sd_dat3); sd_dat0 <= 'Z'; sd_cmd <= 'Z'; + -- EPCS + spi0: spi_flash + generic map ( + ftype => 4, debug => 0, fname => promfile, readcmd => CFG_SPIMCTRL_READCMD, + dummybyte => CFG_SPIMCTRL_DUMMYBYTE, dualoutput => CFG_SPIMCTRL_DUALOUTPUT, + memoffset => CFG_SPIMCTRL_OFFSET) + port map (sck => epcs_dclk, di => epcs_asdi, do => epcs_data, + csn => epcs_csn, sd_cmd_timeout => open, + sd_data_timeout => open); + -- On the BeMicro the temp_* signals are connected to a temperature sensor temp_sc <= 'H'; temp_sio <= 'H'; - + -- DDR memory ddr0 : mt46v16m16 generic map (index => -1, fname => sdramfile) diff --git a/designs/leon3-arrow-bemicro-sdk/tkconfig.h b/designs/leon3-arrow-bemicro-sdk/tkconfig.h index 51c338ce..b2ea73bb 100644 --- a/designs/leon3-arrow-bemicro-sdk/tkconfig.h +++ b/designs/leon3-arrow-bemicro-sdk/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -793,6 +815,10 @@ #ifndef CONFIG_SPIMCTRL_PWRUPCNT #define CONFIG_SPIMCTRL_PWRUPCNT 0 #endif + +#ifndef CONFIG_SPIMCTRL_OFFSET +#define CONFIG_SPIMCTRL_OFFSET 0 +#endif #ifndef CONFIG_AHBROM_ENABLE #define CONFIG_AHBROM_ENABLE 0 #endif diff --git a/designs/leon3-asic/Makefile b/designs/leon3-asic/Makefile index 34335c47..3ce4899f 100644 --- a/designs/leon3-asic/Makefile +++ b/designs/leon3-asic/Makefile @@ -19,9 +19,9 @@ DCSCRIPT=ut025crh.tcl TECHLIBS = nextreme virage atc18 artisan virage90 tsmc90 umc18 cust1 LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - openchip gleichmann gsi spansion tmtc ihp fmf cypress hynix -DIRSKIP = b1553 pcif leon2 leon2ft leon4 leon4b64 l2cache iommu coremp7 \ - usb ddr crypto ata satcan slink ascs pwm haps gr1553b ac97 + openchip gsi spansion tmtc ihp fmf cypress hynix +DIRSKIP = b1553 pcif leon2 leon2ft leon4 leon4v0 l2cache iommu \ + usb ddr crypto satcan slink ascs pwm gr1553b FILESKIP = diff --git a/designs/leon3-asic/ahbrom.vhd b/designs/leon3-asic/ahbrom.vhd index f94b8866..753697a1 100644 --- a/designs/leon3-asic/ahbrom.vhd +++ b/designs/leon3-asic/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-asic/bschain.vhd b/designs/leon3-asic/bschain.vhd index 9c8bc326..69118493 100644 --- a/designs/leon3-asic/bschain.vhd +++ b/designs/leon3-asic/bschain.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-asic/config.help b/designs/leon3-asic/config.help index e4c708b1..860479cc 100644 --- a/designs/leon3-asic/config.help +++ b/designs/leon3-asic/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -72,31 +76,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -162,6 +168,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -564,11 +598,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-asic/core.vhd b/designs/leon3-asic/core.vhd index 76f301d7..bb1a8ee7 100644 --- a/designs/leon3-asic/core.vhd +++ b/designs/leon3-asic/core.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -113,7 +113,8 @@ entity core is tck : in std_ulogic; tms : in std_ulogic; tdi : in std_ulogic; - tdo : out std_ulogic + tdo : out std_ulogic; + tdoen : out std_ulogic ); end; @@ -234,7 +235,7 @@ begin ramsn_core, ramoen_core, rwen_core, oen_core, writen_core, read_core, iosn_core, romsn_core, brdyn_core, bexcn_core, wdogn_core, gpioin_core, gpioout_core, lgpioen, prom32_core, promedac_core, spw_clksel_core, llspw_clk, spw_rxd_core, spw_rxs_core, spw_txd_core, spw_txs_core, spw_ten_core, - trst, tck, tms, tdi, tdo, + trst, tck, tms, tdi, tdo, tdoen, scanen, testen, testrst, testoen, chain_tck, chain_tdi, chain_tdo, bsshft, bscapt, bsupdi, bsupdo, bsdrive, bshighz); diff --git a/designs/leon3-asic/lconfig.tk b/designs/leon3-asic/lconfig.tk index 4e567e98..b6f88dda 100755 --- a/designs/leon3-asic/lconfig.tk +++ b/designs/leon3-asic/lconfig.tk @@ -750,7 +750,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -760,7 +761,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -904,8 +907,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -924,6 +929,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1013,9 +1022,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1069,10 +1079,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1118,14 +1129,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1198,13 +1211,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1244,22 +1265,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1316,21 +1605,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1377,36 +1666,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1414,48 +1704,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1511,27 +1802,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1572,16 +1863,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1590,34 +1882,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1674,92 +1967,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1767,18 +2060,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1819,52 +2112,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1872,162 +2166,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2083,45 +2378,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2161,18 +2458,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2180,55 +2478,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2285,24 +2588,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2342,17 +2645,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2360,37 +2664,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2446,16 +2751,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2503,9 +2815,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2527,21 +2837,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -3313,57 +3628,57 @@ proc menu16 {w title} { bool $w.config.f 16 0 "Enable Spacewire links " CONFIG_SPW_ENABLE int $w.config.f 16 1 "Number of links (1 - 3)" CONFIG_SPW_NUM - global tmpvar_26 - minimenu $w.config.f 16 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_26 CONFIG_SPW_AHBFIFO4 + global tmpvar_28 + minimenu $w.config.f 16 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_28 CONFIG_SPW_AHBFIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB RX/TX FIFO size (32-bit words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_26 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_27 - minimenu $w.config.f 16 3 "Receiver FIFO size (bytes) " tmpvar_27 CONFIG_SPW_RXFIFO16 + global tmpvar_29 + minimenu $w.config.f 16 3 "Receiver FIFO size (bytes) " tmpvar_29 CONFIG_SPW_RXFIFO16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Receiver FIFO size (bytes) \"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 16 4 "Enable RMAP protocol " CONFIG_SPW_RMAP - global tmpvar_28 - minimenu $w.config.f 16 5 "RMAP buffer size (bytes) " tmpvar_28 CONFIG_SPW_RMAPBUF2 + global tmpvar_30 + minimenu $w.config.f 16 5 "RMAP buffer size (bytes) " tmpvar_30 CONFIG_SPW_RMAPBUF2 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"RMAP buffer size (bytes) \"" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_28 -value "128" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_28 -value "192" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_28 -value "256" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_30 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_30 -value "192" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_30 -value "256" -command "update_active" menusplit $w $w.config.f.x5.x.menu 4 bool $w.config.f 16 6 "Enable RMAP CRC check " CONFIG_SPW_RMAPCRC bool $w.config.f 16 7 "Enable Rx unaligned transfers " CONFIG_SPW_RXUNAL bool $w.config.f 16 8 "Spacewire FIFO protection " CONFIG_SPW_FT bool $w.config.f 16 9 "Use GRSPWC netlist " CONFIG_SPW_NETLIST int $w.config.f 16 10 "Number of ports (1 - 2)" CONFIG_SPW_PORTS - global tmpvar_29 - minimenu $w.config.f 16 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_29 CONFIG_SPW_GRSPW1 + global tmpvar_31 + minimenu $w.config.f 16 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_31 CONFIG_SPW_GRSPW1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Select GRSPW core (GRSPW1/GRSPW2) \"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" menusplit $w $w.config.f.x11.x.menu 2 int $w.config.f 16 12 "Number of DMA channels (1 - 4)" CONFIG_SPW_DMACHAN bool $w.config.f 16 13 "Receiver and transmitter uses same clock " CONFIG_SPW_RTSAME - global tmpvar_30 - minimenu $w.config.f 16 14 "Select receiver clock type " tmpvar_30 CONFIG_SPW_RX_SDR + global tmpvar_32 + minimenu $w.config.f 16 14 "Select receiver clock type " tmpvar_32 CONFIG_SPW_RX_SDR menu $w.config.f.x14.x.menu -tearoffcommand "menutitle \"Select receiver clock type \"" - $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_30 -value "SDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_30 -value "DDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_30 -value "Xor" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_30 -value "Aeroflex" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_32 -value "SDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_32 -value "DDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_32 -value "Xor" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_32 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x14.x.menu 4 - global tmpvar_31 - minimenu $w.config.f 16 15 "Select transmitter clock type " tmpvar_31 CONFIG_SPW_TX_SDR + global tmpvar_33 + minimenu $w.config.f 16 15 "Select transmitter clock type " tmpvar_33 CONFIG_SPW_TX_SDR menu $w.config.f.x15.x.menu -tearoffcommand "menutitle \"Select transmitter clock type \"" - $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_31 -value "SDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_31 -value "DDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_31 -value "Aeroflex" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_33 -value "SDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_33 -value "DDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_33 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x15.x.menu 3 @@ -3443,34 +3758,34 @@ proc update_define_menu16 {} { global CONFIG_SPW_ENABLE global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_NUM "$CONFIG_SPW_NUM" 1} - global tmpvar_26 + global tmpvar_28 global CONFIG_SPW_AHBFIFO4 - if {$tmpvar_26 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} global CONFIG_SPW_AHBFIFO8 - if {$tmpvar_26 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} global CONFIG_SPW_AHBFIFO16 - if {$tmpvar_26 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} global CONFIG_SPW_AHBFIFO32 - if {$tmpvar_26 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} - global tmpvar_27 + if {$tmpvar_28 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} + global tmpvar_29 global CONFIG_SPW_RXFIFO16 - if {$tmpvar_27 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} global CONFIG_SPW_RXFIFO32 - if {$tmpvar_27 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} global CONFIG_SPW_RXFIFO64 - if {$tmpvar_27 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP&15]} else {set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_SPW_RMAPBUF2 - if {$tmpvar_28 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} + if {$tmpvar_30 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} global CONFIG_SPW_RMAPBUF4 - if {$tmpvar_28 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} + if {$tmpvar_30 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} global CONFIG_SPW_RMAPBUF6 - if {$tmpvar_28 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} + if {$tmpvar_30 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} global CONFIG_SPW_RMAPBUF8 - if {$tmpvar_28 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} + if {$tmpvar_30 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC&15]} else {set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC|16]} @@ -3485,32 +3800,32 @@ proc update_define_menu16 {} { set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST&15]} else {set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST|16]} global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_PORTS "$CONFIG_SPW_PORTS" 1} - global tmpvar_29 + global tmpvar_31 global CONFIG_SPW_GRSPW1 - if {$tmpvar_29 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} global CONFIG_SPW_GRSPW2 - if {$tmpvar_29 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} global CONFIG_SPW_DMACHAN if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {validate_int CONFIG_SPW_DMACHAN "$CONFIG_SPW_DMACHAN" 1} global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME&15]} else {set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME|16]} - global tmpvar_30 + global tmpvar_32 global CONFIG_SPW_RX_SDR - if {$tmpvar_30 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} + if {$tmpvar_32 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} global CONFIG_SPW_RX_DDR - if {$tmpvar_30 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} + if {$tmpvar_32 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} global CONFIG_SPW_RX_XOR - if {$tmpvar_30 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} + if {$tmpvar_32 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} global CONFIG_SPW_RX_AFLEX - if {$tmpvar_30 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} - global tmpvar_31 + if {$tmpvar_32 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} + global tmpvar_33 global CONFIG_SPW_TX_SDR - if {$tmpvar_31 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} + if {$tmpvar_33 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} global CONFIG_SPW_TX_DDR - if {$tmpvar_31 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} + if {$tmpvar_33 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} global CONFIG_SPW_TX_AFLEX - if {$tmpvar_31 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} + if {$tmpvar_33 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} } @@ -3566,26 +3881,26 @@ proc menu17 {w title} { bool $w.config.f 17 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_32 - minimenu $w.config.f 17 1 "UART1 FIFO depth" tmpvar_32 CONFIG_UA1_FIFO1 + global tmpvar_34 + minimenu $w.config.f 17 1 "UART1 FIFO depth" tmpvar_34 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_32 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_32 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_34 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_34 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_34 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_34 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_34 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_34 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 17 2 "Enable secondary UART " CONFIG_UART2_ENABLE - global tmpvar_33 - minimenu $w.config.f 17 3 "UART2 FIFO depth" tmpvar_33 CONFIG_UA2_FIFO1 + global tmpvar_35 + minimenu $w.config.f 17 3 "UART2 FIFO depth" tmpvar_35 CONFIG_UA2_FIFO1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"UART2 FIFO depth\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_33 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_33 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_33 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_35 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_35 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_35 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_35 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_35 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_35 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 6 bool $w.config.f 17 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 17 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3676,32 +3991,32 @@ proc update_menu17 {} { proc update_define_menu17 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_32 + global tmpvar_34 global CONFIG_UA1_FIFO1 - if {$tmpvar_32 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_34 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_32 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_34 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_32 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_34 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_32 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_34 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_32 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_34 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_32 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} - global tmpvar_33 + if {$tmpvar_34 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + global tmpvar_35 global CONFIG_UA2_FIFO1 - if {$tmpvar_33 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} + if {$tmpvar_35 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} global CONFIG_UA2_FIFO2 - if {$tmpvar_33 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} + if {$tmpvar_35 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} global CONFIG_UA2_FIFO4 - if {$tmpvar_33 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} + if {$tmpvar_35 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} global CONFIG_UA2_FIFO8 - if {$tmpvar_33 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} + if {$tmpvar_35 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} global CONFIG_UA2_FIFO16 - if {$tmpvar_33 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} + if {$tmpvar_35 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} global CONFIG_UA2_FIFO32 - if {$tmpvar_33 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} + if {$tmpvar_35 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -3871,7 +4186,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -3881,6 +4197,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -3906,6 +4224,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -3918,14 +4237,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -3938,27 +4262,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -3968,17 +4292,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -3990,12 +4314,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4005,10 +4329,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4019,7 +4343,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4031,26 +4355,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4058,27 +4384,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4112,17 +4442,17 @@ set CONFIG_AHBSTAT_ENABLE 0 set CONFIG_AHBSTAT_NFTSLV 1 set CONFIG_SPW_ENABLE 0 set CONFIG_SPW_NUM 1 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_SPW_AHBFIFO4 0 set CONFIG_SPW_AHBFIFO8 0 set CONFIG_SPW_AHBFIFO16 0 set CONFIG_SPW_AHBFIFO32 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_SPW_RXFIFO16 0 set CONFIG_SPW_RXFIFO32 0 set CONFIG_SPW_RXFIFO64 0 set CONFIG_SPW_RMAP 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_SPW_RMAPBUF2 0 set CONFIG_SPW_RMAPBUF4 0 set CONFIG_SPW_RMAPBUF6 0 @@ -4132,22 +4462,22 @@ set CONFIG_SPW_RXUNAL 0 set CONFIG_SPW_FT 0 set CONFIG_SPW_NETLIST 0 set CONFIG_SPW_PORTS 1 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_SPW_GRSPW1 0 set CONFIG_SPW_GRSPW2 0 set CONFIG_SPW_DMACHAN 1 set CONFIG_SPW_RTSAME 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_SPW_RX_SDR 0 set CONFIG_SPW_RX_DDR 0 set CONFIG_SPW_RX_XOR 0 set CONFIG_SPW_RX_AFLEX 0 -set tmpvar_31 "(not set)" +set tmpvar_33 "(not set)" set CONFIG_SPW_TX_SDR 0 set CONFIG_SPW_TX_DDR 0 set CONFIG_SPW_TX_AFLEX 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_32 "(not set)" +set tmpvar_34 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4155,7 +4485,7 @@ set CONFIG_UA1_FIFO8 0 set CONFIG_UA1_FIFO16 0 set CONFIG_UA1_FIFO32 0 set CONFIG_UART2_ENABLE 0 -set tmpvar_33 "(not set)" +set tmpvar_35 "(not set)" set CONFIG_UA2_FIFO1 0 set CONFIG_UA2_FIFO2 0 set CONFIG_UA2_FIFO4 0 @@ -4232,7 +4562,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4242,6 +4573,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4282,6 +4615,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4294,9 +4628,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4310,239 +4645,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4616,25 +5101,25 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_SPW_ENABLE $CONFIG_SPW_ENABLE [list $notmod] 2 global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_NUM $CONFIG_SPW_NUM $notmod } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} - global tmpvar_27 + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} + global tmpvar_29 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAP $CONFIG_SPW_RMAP [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAPCRC $CONFIG_SPW_RMAPCRC [list $notmod] 2 } global CONFIG_SPW_RXUNAL @@ -4645,47 +5130,47 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_NETLIST $CONFIG_SPW_NETLIST [list $notmod] 2 } global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_PORTS $CONFIG_SPW_PORTS $notmod } - global tmpvar_29 + global tmpvar_31 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_SPW_DMACHAN global CONFIG_SPW_GRSPW2 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_int $cfg $autocfg CONFIG_SPW_DMACHAN $CONFIG_SPW_DMACHAN $notmod } global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RTSAME $CONFIG_SPW_RTSAME [list $notmod] 2 } - global tmpvar_30 + global tmpvar_32 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_30 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } - if { $tmpvar_30 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } - if { $tmpvar_30 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } - if { $tmpvar_30 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} - global tmpvar_31 + if { $tmpvar_32 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } + if { $tmpvar_32 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } + if { $tmpvar_32 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } + if { $tmpvar_32 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} + global tmpvar_33 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_31 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } - if { $tmpvar_31 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } - if { $tmpvar_31 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} + if { $tmpvar_33 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } + if { $tmpvar_33 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } + if { $tmpvar_33 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_32 + global tmpvar_34 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 }} + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 }} global CONFIG_UART2_ENABLE write_tristate $cfg $autocfg CONFIG_UART2_ENABLE $CONFIG_UART2_ENABLE [list $notmod] 2 - global tmpvar_33 + global tmpvar_35 if {($CONFIG_UART2_ENABLE == 1)} then { - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 }} + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4758,7 +5243,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4768,6 +5254,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4786,8 +5274,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -4870,11 +5363,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -4895,6 +5390,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_SPW_AHBFIFO4; set CONFIG_SPW_AHBFIFO4 0 global CONFIG_SPW_AHBFIFO8; set CONFIG_SPW_AHBFIFO8 0 global CONFIG_SPW_AHBFIFO16; set CONFIG_SPW_AHBFIFO16 0 @@ -5003,8 +5502,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5023,6 +5524,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5063,350 +5568,376 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "16" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "16" global CONFIG_SPW_AHBFIFO4 - if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_28 "4" } global CONFIG_SPW_AHBFIFO8 - if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_28 "8" } global CONFIG_SPW_AHBFIFO16 - if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_26 "16" } + if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_28 "16" } global CONFIG_SPW_AHBFIFO32 - if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_26 "32" } - global tmpvar_27 - set tmpvar_27 "16" + if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_28 "32" } + global tmpvar_29 + set tmpvar_29 "16" global CONFIG_SPW_RXFIFO16 - if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_29 "16" } global CONFIG_SPW_RXFIFO32 - if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_29 "32" } global CONFIG_SPW_RXFIFO64 - if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "64" + if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "64" global CONFIG_SPW_RMAPBUF2 - if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_28 "64" } + if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_30 "64" } global CONFIG_SPW_RMAPBUF4 - if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_28 "128" } + if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_30 "128" } global CONFIG_SPW_RMAPBUF6 - if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_28 "192" } + if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_30 "192" } global CONFIG_SPW_RMAPBUF8 - if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_28 "256" } - global tmpvar_29 - set tmpvar_29 "2" + if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_30 "256" } + global tmpvar_31 + set tmpvar_31 "2" global CONFIG_SPW_GRSPW1 - if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_31 "1" } global CONFIG_SPW_GRSPW2 - if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_29 "2" } - global tmpvar_30 - set tmpvar_30 "DDR" + if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_31 "2" } + global tmpvar_32 + set tmpvar_32 "DDR" global CONFIG_SPW_RX_SDR - if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_30 "SDR" } + if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_32 "SDR" } global CONFIG_SPW_RX_DDR - if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_30 "DDR" } + if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_32 "DDR" } global CONFIG_SPW_RX_XOR - if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_30 "Xor" } + if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_32 "Xor" } global CONFIG_SPW_RX_AFLEX - if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_30 "Aeroflex" } - global tmpvar_31 - set tmpvar_31 "SDR" + if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_32 "Aeroflex" } + global tmpvar_33 + set tmpvar_33 "SDR" global CONFIG_SPW_TX_SDR - if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_31 "SDR" } + if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_33 "SDR" } global CONFIG_SPW_TX_DDR - if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_31 "DDR" } + if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_33 "DDR" } global CONFIG_SPW_TX_AFLEX - if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_31 "Aeroflex" } - global tmpvar_32 - set tmpvar_32 "1" + if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_33 "Aeroflex" } + global tmpvar_34 + set tmpvar_34 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_32 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_34 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_32 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_34 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_32 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_34 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_32 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_34 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_32 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_34 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_32 "32" } - global tmpvar_33 - set tmpvar_33 "1" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_34 "32" } + global tmpvar_35 + set tmpvar_35 "1" global CONFIG_UA2_FIFO1 - if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_33 "1" } + if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_35 "1" } global CONFIG_UA2_FIFO2 - if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_33 "2" } + if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_35 "2" } global CONFIG_UA2_FIFO4 - if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_33 "4" } + if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_35 "4" } global CONFIG_UA2_FIFO8 - if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_33 "8" } + if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_35 "8" } global CONFIG_UA2_FIFO16 - if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_33 "16" } + if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_35 "16" } global CONFIG_UA2_FIFO32 - if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_33 "32" } + if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_35 "32" } } diff --git a/designs/leon3-asic/leon3core.vhd b/designs/leon3-asic/leon3core.vhd index acb7e124..964a3b95 100644 --- a/designs/leon3-asic/leon3core.vhd +++ b/designs/leon3-asic/leon3core.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -110,6 +110,7 @@ entity leon3core is tms : in std_ulogic; tdi : in std_ulogic; tdo : out std_ulogic; + tdoen : out std_ulogic; scanen : in std_ulogic; testen : in std_ulogic; @@ -251,10 +252,10 @@ begin nouah : if CFG_AHB_UART = 0 generate apbo(7) <= apb_none; end generate; ahbjtaggen0 :if CFG_AHB_JTAG = 1 generate - ahbjtag0 : ahbjtag generic map(tech => fabtech, part => JTAG_UT699RH, - hindex => CFG_NCPU+CFG_AHB_UART, scantest => scantest) + ahbjtag0 : ahbjtag generic map(tech => fabtech, part => JTAG_EXAMPLE_PART, + hindex => CFG_NCPU+CFG_AHB_UART, scantest => scantest, oepol => OEPOL) port map(rstn, clk, tck, tms, tdi, tdo, ahbmi, ahbmo(CFG_NCPU+CFG_AHB_UART), - jtck, jtdi, jinst, jrst, jcapt, jshft, jupd, jtdo, trst, open); + jtck, jtdi, jinst, jrst, jcapt, jshft, jupd, jtdo, trst, tdoen); end generate; ---------------------------------------------------------------------- @@ -371,15 +372,16 @@ begin xtapgen: if CFG_AHB_JTAG = 0 generate t0: tap - generic map (tech => fabtech, irlen => 6) + generic map (tech => fabtech, irlen => 6, scantest => scantest, oepol => OEPOL) port map (trst,tck,tms,tdi,tdo, - jtck,jtdi,jinst,jrst,jcapt,jshft,jupd,open,open,'1',jtdo,'0'); + jtck,jtdi,jinst,jrst,jcapt,jshft,jupd,open,open,'1',jtdo,'0',testen,testrst,testoen,tdoen); end generate; bc0: bscanctrl port map ( trst,jtck,jtdi,jinst,jrst,jcapt,jshft,jupd,jtdo, - chain_tdi, chain_tdo, bsshft, bscapt, bsupdi, bsupdo, bsdrive, bshighz); + chain_tdi, chain_tdo, bsshft, bscapt, bsupdi, bsupdo, bsdrive, bshighz, + gnd(0), testen, testrst); chain_tck <= jtck; diff --git a/designs/leon3-asic/leon3mp.vhd b/designs/leon3-asic/leon3mp.vhd index e8203921..d00a330e 100644 --- a/designs/leon3-asic/leon3mp.vhd +++ b/designs/leon3-asic/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -164,7 +164,7 @@ signal lspw_ten : std_logic_vector(0 to CFG_SPW_NUM-1); signal llock, lroen, lroout : std_ulogic; -signal ltrst,ltck,ltms,ltdi,ltdo: std_ulogic; +signal ltrst,ltck,ltms,ltdi,ltdo,ltdoen: std_ulogic; signal ltest, gnd : std_ulogic; signal lclk2x, lclk4x, lclkdis, lclklock : std_ulogic; @@ -192,7 +192,7 @@ begin lromsn, lbrdyn, lbexcn, lwdogn, gpioin, gpioout, gpioen, lprom32, lpromedac, lspw_clksel, lspw_clk, lspw_rxd, lspw_rxs, lspw_txd, lspw_txs, lspw_ten, lclk2x, lclk4x, lclkdis, lclklock, llock, lroen, lroout, ltest, gnd, - ltrst, ltck, ltms, ltdi, ltdo); + ltrst, ltck, ltms, ltdi, ltdo, ltdoen); core0 : entity work.core generic map (fabtech, memtech, padtech, clktech, disas, dbguart, pclow, scantest) @@ -205,6 +205,6 @@ begin lromsn, lbrdyn, lbexcn, lwdogn, gpioin, gpioout, gpioen, lprom32, lpromedac, lspw_clksel, lspw_clk, lspw_rxd, lspw_rxs, lspw_txd, lspw_txs, lspw_ten, lclk2x, lclk4x, lclkdis, lclklock, llock, lroen, lroout, ltest, gnd, - ltrst, ltck, ltms, ltdi, ltdo); + ltrst, ltck, ltms, ltdi, ltdo, ltdoen); end; diff --git a/designs/leon3-asic/pads.vhd b/designs/leon3-asic/pads.vhd index bb675b63..aab51904 100644 --- a/designs/leon3-asic/pads.vhd +++ b/designs/leon3-asic/pads.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -160,7 +160,8 @@ entity pads is ltck : out std_ulogic; ltms : out std_ulogic; ltdi : out std_ulogic; - ltdo : in std_ulogic + ltdo : in std_ulogic; + ltdoen : in std_ulogic ); @@ -193,7 +194,7 @@ begin tck_pad : inpad generic map (tech => padtech) port map (tck, ltck); tms_pad : inpad generic map (tech => padtech) port map (tms, ltms); tdi_pad : inpad generic map (tech => padtech) port map (tdi, ltdi); - tdo_pad : outpad generic map (tech => padtech) port map (tdo, ltdo); + tdo_pad : toutpad generic map (tech => padtech, oepol => OEPOL) port map (tdo, ltdo, ltdoen); clk_pad : inpad generic map (tech => clkpadtech, filter => schmitt) port map (clk, clkin); diff --git a/designs/leon3-asic/testbench.vhd b/designs/leon3-asic/testbench.vhd index 55be7fe9..f7eb2faa 100644 --- a/designs/leon3-asic/testbench.vhd +++ b/designs/leon3-asic/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-asic/testbench_netlist.vhd b/designs/leon3-asic/testbench_netlist.vhd index 6c0c1ea5..2c6eee99 100644 --- a/designs/leon3-asic/testbench_netlist.vhd +++ b/designs/leon3-asic/testbench_netlist.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-asic/tkconfig.h b/designs/leon3-asic/tkconfig.h index 67879000..7bd23c41 100644 --- a/designs/leon3-asic/tkconfig.h +++ b/designs/leon3-asic/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -147,6 +159,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -531,6 +545,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -553,6 +571,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -619,14 +641,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-avnet-3s1500/Makefile b/designs/leon3-avnet-3s1500/Makefile index 8b2ac6ff..132c917e 100644 --- a/designs/leon3-avnet-3s1500/Makefile +++ b/designs/leon3-avnet-3s1500/Makefile @@ -18,10 +18,10 @@ CLEAN=soft-clean TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress ihp gleichmann usbhc spw + tmtc openchip hynix cypress ihp usbhc spw DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan leon3ft ddr meiko mfpc \ - grusbhc spi ata ac97 coremp7 spacewire usb leon4 leon4b64 l2cache \ - slink ascs pwm haps gr1553b iommu + grusbhc spi spacewire usb leon4 leon4v0 l2cache \ + slink ascs pwm gr1553b iommu FILESKIP = grcan.vhd include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-avnet-3s1500/config.help b/designs/leon3-avnet-3s1500/config.help index 7148389b..412a2287 100644 --- a/designs/leon3-avnet-3s1500/config.help +++ b/designs/leon3-avnet-3s1500/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-avnet-3s1500/lconfig.tk b/designs/leon3-avnet-3s1500/lconfig.tk index 47eb59c4..fb888bd5 100755 --- a/designs/leon3-avnet-3s1500/lconfig.tk +++ b/designs/leon3-avnet-3s1500/lconfig.tk @@ -754,7 +754,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -764,7 +765,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -907,8 +910,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -927,6 +932,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1113,9 +1122,10 @@ proc menu3 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 3 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 3 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 3 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1169,10 +1179,11 @@ proc update_menu3 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu3.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x2.l configure -state normal; } else {.menu3.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x2.l configure -state disabled} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {.menu3.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x2.l configure -state normal; } else {.menu3.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x2.l configure -state disabled} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu3.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x3.l configure -state normal; } else {.menu3.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x3.l configure -state disabled} global CONFIG_OCLKB_DIV @@ -1218,14 +1229,16 @@ proc update_define_menu3 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1298,13 +1311,21 @@ proc menu4 {w title} { bool $w.config.f 4 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 4 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 4 2 "Integer unit " 5 - submenu $w.config.f 4 3 "Floating-point unit" 6 - submenu $w.config.f 4 4 "Cache system" 7 - submenu $w.config.f 4 5 "MMU" 8 - submenu $w.config.f 4 6 "Debug Support Unit " 9 - submenu $w.config.f 4 7 "Fault-tolerance " 10 - submenu $w.config.f 4 8 "VHDL debug settings " 11 + global tmpvar_3 + minimenu $w.config.f 4 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 4 3 "Integer unit " 5 + submenu $w.config.f 4 4 "Floating-point unit" 6 + submenu $w.config.f 4 5 "Cache system" 7 + submenu $w.config.f 4 6 "MMU" 8 + submenu $w.config.f 4 7 "Debug Support Unit " 9 + submenu $w.config.f 4 8 "Fault-tolerance " 10 + submenu $w.config.f 4 9 "VHDL debug settings " 11 @@ -1344,22 +1365,290 @@ proc update_menu4 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x1.l configure -state normal; } else {.menu4.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x1.l configure -state disabled} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x2 normal {m}} else {configure_entry .menu4.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x3 normal {m}} else {configure_entry .menu4.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x4 normal {m}} else {configure_entry .menu4.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x5 normal {m}} else {configure_entry .menu4.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x6 normal {m}} else {configure_entry .menu4.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x7 normal {m}} else {configure_entry .menu4.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x2 normal {x l}} else {configure_entry .menu4.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x3 normal {m}} else {configure_entry .menu4.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x4 normal {m}} else {configure_entry .menu4.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x5 normal {m}} else {configure_entry .menu4.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x6 normal {m}} else {configure_entry .menu4.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x7 normal {m}} else {configure_entry .menu4.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x8 normal {m}} else {configure_entry .menu4.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x9 normal {m}} else {configure_entry .menu4.config.f.x9 disabled {m}} } proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1416,21 +1705,21 @@ proc menu5 {w title} { int $w.config.f 5 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 5 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 5 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 5 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 5 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 5 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 5 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 5 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 5 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1477,36 +1766,37 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x0.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x0.l configure -state normal; } else {.menu5.config.f.x0.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x0.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x0.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x0.l configure -state normal; } else {.menu5.config.f.x0.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x0.l configure -state disabled} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x1 normal {n l y}} else {configure_entry .menu5.config.f.x1 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x2 normal {x l}} else {configure_entry .menu5.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x2 normal {x l}} else {configure_entry .menu5.config.f.x2 disabled {x l}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x6 normal {n l y}} else {configure_entry .menu5.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x7 normal {n l y}} else {configure_entry .menu5.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x8.l configure -state normal; } else {.menu5.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x8.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x8.l configure -state normal; } else {.menu5.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x8.l configure -state disabled} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x9.l configure -state normal; } else {.menu5.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x9.l configure -state normal; } else {.menu5.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x10 normal {n l y}} else {configure_entry .menu5.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x11.l configure -state normal; } else {.menu5.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x11.l configure -state normal; } else {.menu5.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x11.l configure -state disabled} } @@ -1514,48 +1804,49 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1611,27 +1902,27 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 6 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 6 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 6 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 6 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 6 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 6 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 6 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1672,16 +1963,17 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu6.config.f.x1 normal {x l}} else {configure_entry .menu6.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu6.config.f.x1 normal {x l}} else {configure_entry .menu6.config.f.x1 disabled {x l}} global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {configure_entry .menu6.config.f.x2 normal {x l}} else {configure_entry .menu6.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {configure_entry .menu6.config.f.x2 normal {x l}} else {configure_entry .menu6.config.f.x2 disabled {x l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu6.config.f.x3 normal {x l}} else {configure_entry .menu6.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu6.config.f.x3 normal {x l}} else {configure_entry .menu6.config.f.x3 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu6.config.f.x4 normal {n l y}} else {configure_entry .menu6.config.f.x4 disabled {y n l}} } @@ -1690,34 +1982,35 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1774,92 +2067,92 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 7 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 7 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 7 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 7 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 7 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 7 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 7 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 7 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 7 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 7 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 7 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 7 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 7 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 7 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 7 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 7 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 7 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 7 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 7 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 7 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 7 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 7 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 7 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 7 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1867,18 +2160,18 @@ proc menu7 {w title} { bool $w.config.f 7 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 7 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 7 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 7 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 7 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 7 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1919,52 +2212,53 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x1 normal {x l}} else {configure_entry .menu7.config.f.x1 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x2 normal {x l}} else {configure_entry .menu7.config.f.x2 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x3 normal {x l}} else {configure_entry .menu7.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x1 normal {x l}} else {configure_entry .menu7.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x2 normal {x l}} else {configure_entry .menu7.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x3 normal {x l}} else {configure_entry .menu7.config.f.x3 disabled {x l}} global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x4 normal {x l}} else {configure_entry .menu7.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x4 normal {x l}} else {configure_entry .menu7.config.f.x4 disabled {x l}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu7.config.f.x6 normal {n l y}} else {configure_entry .menu7.config.f.x6 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x7 normal {x l}} else {configure_entry .menu7.config.f.x7 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x7 normal {x l}} else {configure_entry .menu7.config.f.x7 disabled {x l}} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {.menu7.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x8.l configure -state normal; } else {.menu7.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x8.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {.menu7.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x8.l configure -state normal; } else {.menu7.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x8.l configure -state disabled} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x9 normal {n l y}} else {configure_entry .menu7.config.f.x9 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x10 normal {x l}} else {configure_entry .menu7.config.f.x10 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x11 normal {x l}} else {configure_entry .menu7.config.f.x11 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x12 normal {x l}} else {configure_entry .menu7.config.f.x12 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x10 normal {x l}} else {configure_entry .menu7.config.f.x10 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x11 normal {x l}} else {configure_entry .menu7.config.f.x11 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x12 normal {x l}} else {configure_entry .menu7.config.f.x12 disabled {x l}} global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x13 normal {x l}} else {configure_entry .menu7.config.f.x13 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x13 normal {x l}} else {configure_entry .menu7.config.f.x13 disabled {x l}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu7.config.f.x14 normal {n l y}} else {configure_entry .menu7.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu7.config.f.x15 normal {n l y}} else {configure_entry .menu7.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu7.config.f.x16 normal {n l y}} else {configure_entry .menu7.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu7.config.f.x17 normal {n l y}} else {configure_entry .menu7.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {.menu7.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x18.l configure -state normal; } else {.menu7.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x18.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {.menu7.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x18.l configure -state normal; } else {.menu7.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x18.l configure -state disabled} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu7.config.f.x19 normal {n l y}} else {configure_entry .menu7.config.f.x19 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x20 normal {x l}} else {configure_entry .menu7.config.f.x20 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x20 normal {x l}} else {configure_entry .menu7.config.f.x20 disabled {x l}} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {.menu7.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x21.l configure -state normal; } else {.menu7.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x21.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {.menu7.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x21.l configure -state normal; } else {.menu7.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x21.l configure -state disabled} } @@ -1972,162 +2266,163 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2183,45 +2478,47 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 8 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 8 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 8 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 8 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 8 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 8 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 8 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 8 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 8 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 8 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 8 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2261,18 +2558,19 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x1 normal {x l}} else {configure_entry .menu8.config.f.x1 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x2 normal {x l}} else {configure_entry .menu8.config.f.x2 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x3 normal {x l}} else {configure_entry .menu8.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x1 normal {x l}} else {configure_entry .menu8.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x2 normal {x l}} else {configure_entry .menu8.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x3 normal {x l}} else {configure_entry .menu8.config.f.x3 disabled {x l}} global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {configure_entry .menu8.config.f.x4 normal {x l}} else {configure_entry .menu8.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {configure_entry .menu8.config.f.x4 normal {x l}} else {configure_entry .menu8.config.f.x4 disabled {x l}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu8.config.f.x5 normal {n l y}} else {configure_entry .menu8.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x6 normal {x l}} else {configure_entry .menu8.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x6 normal {x l}} else {configure_entry .menu8.config.f.x6 disabled {x l}} } @@ -2280,55 +2578,60 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2385,24 +2688,24 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 9 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 9 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 9 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 9 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 9 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 9 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2442,17 +2745,18 @@ proc menu9 {w title} { proc update_menu9 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu9.config.f.x1 normal {n l y}} else {configure_entry .menu9.config.f.x1 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {configure_entry .menu9.config.f.x4 normal {x l}} else {configure_entry .menu9.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {configure_entry .menu9.config.f.x4 normal {x l}} else {configure_entry .menu9.config.f.x4 disabled {x l}} } @@ -2460,37 +2764,38 @@ proc update_define_menu9 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2546,16 +2851,23 @@ proc menu10 {w title} { bool $w.config.f 10 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 10 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 10 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 10 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 10 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 10 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 10 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 10 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2603,9 +2915,7 @@ proc update_menu10 {} { configure_entry .menu10.config.f.x0 normal {n l y}} else {configure_entry .menu10.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu10.config.f.x1 normal {x l}} else {configure_entry .menu10.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu10.config.f.x2 normal {n l y}} else {configure_entry .menu10.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu10.config.f.x2 normal {x l}} else {configure_entry .menu10.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu10.config.f.x3 normal {n l y}} else {configure_entry .menu10.config.f.x3 disabled {y n l}} @@ -2627,21 +2937,26 @@ proc update_define_menu10 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2950,14 +3265,14 @@ proc menu13 {w title} { bool $w.config.f 13 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 13 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 13 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 13 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 13 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 13 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 13 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -3031,17 +3346,17 @@ proc update_define_menu13 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3477,16 +3792,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3548,21 +3863,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3622,14 +3937,14 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 18 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3683,17 +3998,17 @@ proc update_define_menu18 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3884,29 +4199,29 @@ proc menu20 {w title} { bool $w.config.f 20 2 "PCI DMA controller " CONFIG_PCI_MASTER_TARGET_DMA hex $w.config.f 20 3 "PCI vendor ID" CONFIG_PCI_VENDORID hex $w.config.f 20 4 "PCI device ID" CONFIG_PCI_DEVICEID - global tmpvar_29 - minimenu $w.config.f 20 5 "PCI FIFO depth" tmpvar_29 CONFIG_PCI_FIFO0 + global tmpvar_31 + minimenu $w.config.f 20 5 "PCI FIFO depth" tmpvar_31 CONFIG_PCI_FIFO0 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"PCI FIFO depth\"" - $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_29 -value "None" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_29 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_31 -value "None" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_31 -value "128" -command "update_active" menusplit $w $w.config.f.x5.x.menu 6 hex $w.config.f 20 6 "PCI initiator address (haddr\[31:20\]) " CONFIG_PCI_HADDR bool $w.config.f 20 7 "PCI arbiter " CONFIG_PCI_ARBITER bool $w.config.f 20 8 "PCI arbiter APB interface " CONFIG_PCI_ARBITER_APB int $w.config.f 20 9 "Number of PCI REQ/GNT pairs" CONFIG_PCI_ARBITER_NREQ bool $w.config.f 20 10 "Enable PCI trace buffer " CONFIG_PCI_TRACE - global tmpvar_30 - minimenu $w.config.f 20 11 "PCI trace buffer depth" tmpvar_30 CONFIG_PCI_TRACE256 + global tmpvar_32 + minimenu $w.config.f 20 11 "PCI trace buffer depth" tmpvar_32 CONFIG_PCI_TRACE256 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"PCI trace buffer depth\"" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_30 -value "256" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_30 -value "512" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_30 -value "1024" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_30 -value "2048" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_30 -value "4096" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_32 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_32 -value "512" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_32 -value "1024" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_32 -value "2048" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_32 -value "4096" -command "update_active" menusplit $w $w.config.f.x11.x.menu 5 @@ -3990,19 +4305,19 @@ proc update_define_menu20 {} { if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_VENDORID "$CONFIG_PCI_VENDORID" 1AC8} global CONFIG_PCI_DEVICEID if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_DEVICEID "$CONFIG_PCI_DEVICEID" 0054} - global tmpvar_29 + global tmpvar_31 global CONFIG_PCI_FIFO0 - if {$tmpvar_29 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} + if {$tmpvar_31 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} global CONFIG_PCI_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} global CONFIG_PCI_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} global CONFIG_PCI_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} global CONFIG_PCI_FIFO64 - if {$tmpvar_29 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} + if {$tmpvar_31 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} global CONFIG_PCI_FIFO128 - if {$tmpvar_29 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} + if {$tmpvar_31 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} global CONFIG_PCI_HADDR 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} global CONFIG_PCI_ARBITER @@ -4011,17 +4326,17 @@ proc update_define_menu20 {} { set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB&15]} else {set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB|16]} global CONFIG_PCI_ARBITER_NREQ if {($CONFIG_PCI_ARBITER == 1)} then {validate_int CONFIG_PCI_ARBITER_NREQ "$CONFIG_PCI_ARBITER_NREQ" 4} - global tmpvar_30 + global tmpvar_32 global CONFIG_PCI_TRACE256 - if {$tmpvar_30 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} + if {$tmpvar_32 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} global CONFIG_PCI_TRACE512 - if {$tmpvar_30 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} + if {$tmpvar_32 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} global CONFIG_PCI_TRACE1024 - if {$tmpvar_30 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} + if {$tmpvar_32 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} global CONFIG_PCI_TRACE2048 - if {$tmpvar_30 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} + if {$tmpvar_32 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} global CONFIG_PCI_TRACE4096 - if {$tmpvar_30 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} + if {$tmpvar_32 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} } @@ -4077,15 +4392,15 @@ proc menu21 {w title} { bool $w.config.f 21 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_31 - minimenu $w.config.f 21 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 + global tmpvar_33 + minimenu $w.config.f 21 1 "UART1 FIFO depth" tmpvar_33 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_33 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_33 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_33 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 21 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 21 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4166,19 +4481,19 @@ proc update_menu21 {} { proc update_define_menu21 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_31 + global tmpvar_33 global CONFIG_UA1_FIFO1 - if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_33 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_33 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_33 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_33 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_33 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_33 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4451,7 +4766,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4461,6 +4777,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4486,6 +4804,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4498,14 +4817,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4518,27 +4842,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4548,17 +4872,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4570,12 +4894,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4585,10 +4909,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4599,7 +4923,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4611,26 +4935,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4638,27 +4964,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4679,7 +5009,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4705,7 +5035,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4716,7 +5046,7 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 @@ -4733,7 +5063,7 @@ set CONFIG_PCI_MASTER_TARGET 0 set CONFIG_PCI_MASTER_TARGET_DMA 0 set CONFIG_PCI_VENDORID 1AC8 set CONFIG_PCI_DEVICEID 0054 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_PCI_FIFO0 0 set CONFIG_PCI_FIFO8 0 set CONFIG_PCI_FIFO16 0 @@ -4745,14 +5075,14 @@ set CONFIG_PCI_ARBITER 0 set CONFIG_PCI_ARBITER_APB 0 set CONFIG_PCI_ARBITER_NREQ 4 set CONFIG_PCI_TRACE 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_PCI_TRACE256 0 set CONFIG_PCI_TRACE512 0 set CONFIG_PCI_TRACE1024 0 set CONFIG_PCI_TRACE2048 0 set CONFIG_PCI_TRACE4096 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_31 "(not set)" +set tmpvar_33 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4830,7 +5160,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4840,6 +5171,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4881,6 +5214,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4893,9 +5227,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4909,239 +5244,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5186,13 +5671,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5238,27 +5723,27 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "CAN " global CONFIG_CAN_ENABLE write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2 @@ -5284,14 +5769,14 @@ proc writeconfig {file1 file2} { 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 } global CONFIG_PCI_DEVICEID 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 } - global tmpvar_29 + global tmpvar_31 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 { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_PCI_HADDR 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 } global CONFIG_PCI_ARBITER @@ -5302,24 +5787,24 @@ proc writeconfig {file1 file2} { if {($CONFIG_PCI_ARBITER == 1)} then {write_int $cfg $autocfg CONFIG_PCI_ARBITER_NREQ $CONFIG_PCI_ARBITER_NREQ $notmod } global CONFIG_PCI_TRACE write_tristate $cfg $autocfg CONFIG_PCI_TRACE $CONFIG_PCI_TRACE [list $notmod] 2 - global tmpvar_30 + global tmpvar_32 if {($CONFIG_PCI_TRACE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_31 + global tmpvar_33 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 }} + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5393,7 +5878,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5403,6 +5889,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5421,8 +5909,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5505,11 +5998,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5530,6 +6025,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5640,8 +6139,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5660,6 +6161,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5700,350 +6205,376 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "8" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "8" global CONFIG_PCI_FIFO0 - if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_29 "None" } + if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_31 "None" } global CONFIG_PCI_FIFO8 - if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_PCI_FIFO16 - if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_PCI_FIFO32 - if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_31 "32" } global CONFIG_PCI_FIFO64 - if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_29 "64" } + if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_31 "64" } global CONFIG_PCI_FIFO128 - if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_29 "128" } - global tmpvar_30 - set tmpvar_30 "256" + if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_31 "128" } + global tmpvar_32 + set tmpvar_32 "256" global CONFIG_PCI_TRACE256 - if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_30 "256" } + if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_32 "256" } global CONFIG_PCI_TRACE512 - if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_30 "512" } + if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_32 "512" } global CONFIG_PCI_TRACE1024 - if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_30 "1024" } + if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_32 "1024" } global CONFIG_PCI_TRACE2048 - if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_30 "2048" } + if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_32 "2048" } global CONFIG_PCI_TRACE4096 - if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_30 "4096" } - global tmpvar_31 - set tmpvar_31 "1" + if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_32 "4096" } + global tmpvar_33 + set tmpvar_33 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_33 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_33 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_33 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_33 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_33 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_33 "32" } } diff --git a/designs/leon3-avnet-3s1500/leon3mp.vhd b/designs/leon3-avnet-3s1500/leon3mp.vhd index fd11373a..ea3d12ec 100644 --- a/designs/leon3-avnet-3s1500/leon3mp.vhd +++ b/designs/leon3-avnet-3s1500/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-avnet-3s1500/mctrl_avnet.vhd b/designs/leon3-avnet-3s1500/mctrl_avnet.vhd index 1b648df7..38e258a4 100644 --- a/designs/leon3-avnet-3s1500/mctrl_avnet.vhd +++ b/designs/leon3-avnet-3s1500/mctrl_avnet.vhd @@ -918,7 +918,6 @@ begin ribdrive <= vbdrive; risbdrive <= vsbdrive; - ahbso.hcache <= not r.area(io); memo.address <= r.addressx; memo.ramsn <= "111" & r.ramsn; memo.ramoen <= "111" & r.ramoen; diff --git a/designs/leon3-avnet-3s1500/testbench.vhd b/designs/leon3-avnet-3s1500/testbench.vhd index 99a295ef..18eff32c 100644 --- a/designs/leon3-avnet-3s1500/testbench.vhd +++ b/designs/leon3-avnet-3s1500/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-avnet-3s1500/tkconfig.h b/designs/leon3-avnet-3s1500/tkconfig.h index 7d24349b..c166d05e 100644 --- a/designs/leon3-avnet-3s1500/tkconfig.h +++ b/designs/leon3-avnet-3s1500/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-avnet-eval-xc4vlx25/Makefile b/designs/leon3-avnet-eval-xc4vlx25/Makefile index 79fb142d..56552cc4 100644 --- a/designs/leon3-avnet-eval-xc4vlx25/Makefile +++ b/designs/leon3-avnet-eval-xc4vlx25/Makefile @@ -21,11 +21,11 @@ CLEAN=soft-clean TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress ihp gleichmann usbhc spw \ + tmtc openchip hynix cypress ihp usbhc spw \ fmf gsi spansion DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft \ - spacewire ambatest can grusbhc usb hasp hcan spi ata ac97 \ - leon4 leon4b64 l2cache ata slink ascs pwm haps coremp7 gr1553b iommu + spacewire ambatest can grusbhc usb hasp hcan spi \ + leon4 leon4v0 l2cache slink ascs pwm gr1553b iommu FILESKIP = grcan.vhd i2cmst.vhd diff --git a/designs/leon3-avnet-eval-xc4vlx25/ahbrom.vhd b/designs/leon3-avnet-eval-xc4vlx25/ahbrom.vhd index a61a155a..2091c411 100644 --- a/designs/leon3-avnet-eval-xc4vlx25/ahbrom.vhd +++ b/designs/leon3-avnet-eval-xc4vlx25/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-avnet-eval-xc4vlx25/config.help b/designs/leon3-avnet-eval-xc4vlx25/config.help index dcd0da0e..4f41d6e4 100644 --- a/designs/leon3-avnet-eval-xc4vlx25/config.help +++ b/designs/leon3-avnet-eval-xc4vlx25/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-avnet-eval-xc4vlx25/lconfig.tk b/designs/leon3-avnet-eval-xc4vlx25/lconfig.tk index 45edadbd..b26fb9ef 100755 --- a/designs/leon3-avnet-eval-xc4vlx25/lconfig.tk +++ b/designs/leon3-avnet-eval-xc4vlx25/lconfig.tk @@ -753,7 +753,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -763,7 +764,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -906,8 +909,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -926,6 +931,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1015,9 +1024,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1071,10 +1081,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1120,14 +1131,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1200,13 +1213,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1246,22 +1267,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1318,21 +1607,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1379,36 +1668,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1416,48 +1706,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1513,27 +1804,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1574,16 +1865,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1592,34 +1884,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1676,92 +1969,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1769,18 +2062,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1821,52 +2114,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1874,162 +2168,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2085,45 +2380,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2163,18 +2460,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2182,55 +2480,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2287,24 +2590,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2344,17 +2647,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2362,37 +2666,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2448,16 +2753,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2505,9 +2817,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2529,21 +2839,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2852,14 +3167,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2933,17 +3248,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3518,16 +3833,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3589,21 +3904,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3663,14 +3978,14 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 18 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3724,17 +4039,17 @@ proc update_define_menu18 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3790,15 +4105,15 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 19 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 19 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3887,19 +4202,19 @@ proc update_menu19 {} { proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4069,7 +4384,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4079,6 +4395,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4103,6 +4421,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4115,14 +4434,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4135,27 +4459,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4165,17 +4489,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4187,12 +4511,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4202,10 +4526,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4216,7 +4540,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4228,26 +4552,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4255,27 +4581,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4296,7 +4626,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4328,7 +4658,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4339,14 +4669,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4423,7 +4753,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4433,6 +4764,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4471,6 +4804,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4483,9 +4817,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4499,239 +4834,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4776,13 +5261,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -4847,38 +5332,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4951,7 +5436,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4961,6 +5447,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4979,8 +5467,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5063,11 +5556,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5088,6 +5583,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5187,8 +5686,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5207,6 +5708,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5247,324 +5752,350 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-avnet-eval-xc4vlx25/leon3mp.vhd b/designs/leon3-avnet-eval-xc4vlx25/leon3mp.vhd index 20f29c72..92208125 100644 --- a/designs/leon3-avnet-eval-xc4vlx25/leon3mp.vhd +++ b/designs/leon3-avnet-eval-xc4vlx25/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-avnet-eval-xc4vlx25/testbench.vhd b/designs/leon3-avnet-eval-xc4vlx25/testbench.vhd index 67cdfbde..ff3d56f0 100644 --- a/designs/leon3-avnet-eval-xc4vlx25/testbench.vhd +++ b/designs/leon3-avnet-eval-xc4vlx25/testbench.vhd @@ -1,6 +1,10 @@ ----------------------------------------------------------------------------- -- LEON3 Demonstration design test bench -- Copyright (C) 2004 Jiri Gaisler, Gaisler Research +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -11,6 +15,10 @@ -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ -- modified by Thomas Ameseder, Gleichmann Electronics 2004, 2005 to -- support the use of an external AHB slave and different HPE board versions diff --git a/designs/leon3-avnet-eval-xc4vlx25/tkconfig.h b/designs/leon3-avnet-eval-xc4vlx25/tkconfig.h index 81af6f2a..c4263d57 100644 --- a/designs/leon3-avnet-eval-xc4vlx25/tkconfig.h +++ b/designs/leon3-avnet-eval-xc4vlx25/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-avnet-eval-xc4vlx60/Makefile b/designs/leon3-avnet-eval-xc4vlx60/Makefile index e062bd93..1e6f716e 100644 --- a/designs/leon3-avnet-eval-xc4vlx60/Makefile +++ b/designs/leon3-avnet-eval-xc4vlx60/Makefile @@ -51,11 +51,11 @@ CLEAN=soft-clean VCOMOPT=-explicit TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress ihp gleichmann usbhc spw \ + tmtc openchip hynix cypress ihp usbhc spw \ fmf gsi spansion DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft \ - spacewire ambatest can grusbhc usb hasp spi ata ac97 coremp7 \ - hcan leon4 leon4b64 l2cache slink ascs pwm haps gr1553b iommu + spacewire ambatest can grusbhc usb hasp spi \ + hcan leon4 leon4v0 l2cache slink ascs pwm gr1553b iommu FILESKIP = grcan.vhd i2cmst.vhd diff --git a/designs/leon3-avnet-eval-xc4vlx60/ahb2mig_avnet_eval.vhd b/designs/leon3-avnet-eval-xc4vlx60/ahb2mig_avnet_eval.vhd index 2d339390..709e5805 100644 --- a/designs/leon3-avnet-eval-xc4vlx60/ahb2mig_avnet_eval.vhd +++ b/designs/leon3-avnet-eval-xc4vlx60/ahb2mig_avnet_eval.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -289,7 +289,6 @@ begin ahbso.hready <= ra.hready; ahbso.hresp <= ra.hresp; ahbso.hrdata <= ahbdrivedata(ra.hrdata); - ahbso.hcache <= '1'; -- delayed reset for the MIG, will not work otherwise ... diff --git a/designs/leon3-avnet-eval-xc4vlx60/ahbrom.vhd b/designs/leon3-avnet-eval-xc4vlx60/ahbrom.vhd index a61a155a..2091c411 100644 --- a/designs/leon3-avnet-eval-xc4vlx60/ahbrom.vhd +++ b/designs/leon3-avnet-eval-xc4vlx60/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-avnet-eval-xc4vlx60/config.help b/designs/leon3-avnet-eval-xc4vlx60/config.help index dcd0da0e..4f41d6e4 100644 --- a/designs/leon3-avnet-eval-xc4vlx60/config.help +++ b/designs/leon3-avnet-eval-xc4vlx60/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-avnet-eval-xc4vlx60/lconfig.tk b/designs/leon3-avnet-eval-xc4vlx60/lconfig.tk index 907df314..155776c5 100755 --- a/designs/leon3-avnet-eval-xc4vlx60/lconfig.tk +++ b/designs/leon3-avnet-eval-xc4vlx60/lconfig.tk @@ -754,7 +754,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -764,7 +765,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -907,8 +910,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -927,6 +932,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1016,9 +1025,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1072,10 +1082,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1121,14 +1132,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1201,13 +1214,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1247,22 +1268,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1319,21 +1608,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1380,36 +1669,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1417,48 +1707,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1514,28 +1805,28 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH - global tmpvar_7 - minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x4.x.menu 3 bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1576,20 +1867,21 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1598,38 +1890,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} - global tmpvar_7 + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1686,92 +1979,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1779,18 +2072,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1831,52 +2124,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1884,162 +2178,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2095,45 +2390,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2173,18 +2470,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2192,55 +2490,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2297,24 +2600,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2354,17 +2657,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2372,37 +2676,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2458,16 +2763,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2515,9 +2827,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2539,21 +2849,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2862,14 +3177,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2943,17 +3258,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3654,16 +3969,16 @@ proc menu18 {w title} { hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 18 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 18 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3725,21 +4040,21 @@ proc update_define_menu18 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3799,14 +4114,14 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 19 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3860,17 +4175,17 @@ proc update_define_menu19 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3926,15 +4241,15 @@ proc menu20 {w title} { bool $w.config.f 20 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 20 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 20 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4023,19 +4338,19 @@ proc update_menu20 {} { proc update_define_menu20 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4205,7 +4520,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4215,6 +4531,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4239,6 +4557,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4251,14 +4570,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4271,28 +4595,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 set CONFIG_FPU_GRFPU_SH 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4302,17 +4626,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4324,12 +4648,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4339,10 +4663,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4353,7 +4677,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4365,26 +4689,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4392,27 +4718,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4433,7 +4763,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4471,7 +4801,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4482,14 +4812,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4568,7 +4898,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4578,6 +4909,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4616,6 +4949,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4628,9 +4962,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4644,241 +4979,390 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4923,13 +5407,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5007,38 +5491,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5111,7 +5595,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5121,6 +5606,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5139,8 +5626,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5223,11 +5715,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5248,6 +5742,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5347,8 +5845,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5367,6 +5867,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5407,324 +5911,350 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-avnet-eval-xc4vlx60/leon3mp.vhd b/designs/leon3-avnet-eval-xc4vlx60/leon3mp.vhd index e563f2b6..54489e80 100644 --- a/designs/leon3-avnet-eval-xc4vlx60/leon3mp.vhd +++ b/designs/leon3-avnet-eval-xc4vlx60/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-avnet-eval-xc4vlx60/testbench.vhd b/designs/leon3-avnet-eval-xc4vlx60/testbench.vhd index f6d62a7c..97a6be0c 100644 --- a/designs/leon3-avnet-eval-xc4vlx60/testbench.vhd +++ b/designs/leon3-avnet-eval-xc4vlx60/testbench.vhd @@ -1,6 +1,10 @@ ----------------------------------------------------------------------------- -- LEON3 Demonstration design test bench -- Copyright (C) 2004 Jiri Gaisler, Gaisler Research +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -11,6 +15,10 @@ -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ diff --git a/designs/leon3-avnet-eval-xc4vlx60/tkconfig.h b/designs/leon3-avnet-eval-xc4vlx60/tkconfig.h index 35ff6cc1..59cb735c 100644 --- a/designs/leon3-avnet-eval-xc4vlx60/tkconfig.h +++ b/designs/leon3-avnet-eval-xc4vlx60/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -806,6 +828,10 @@ #define CONFIG_DDRSP_RSKEW 0 #endif +#ifndef CONFIG_MIG_DDR3 +#define CONFIG_MIG_DDR3 0 +#endif + #ifndef CONFIG_MIG_DDR2 #define CONFIG_MIG_DDR2 0 #endif diff --git a/designs/leon3-avnet-xc2v1500/Makefile b/designs/leon3-avnet-xc2v1500/Makefile index 377ac3c8..ce9a2a24 100644 --- a/designs/leon3-avnet-xc2v1500/Makefile +++ b/designs/leon3-avnet-xc2v1500/Makefile @@ -18,9 +18,9 @@ CLEAN=soft-clean TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip cypress ihp gleichmann usbhc spw + tmtc openchip cypress ihp usbhc spw DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan leon3ft grusbhc usb \ - spi ata coremp7 spacewire slink ascs haps leon4 leon4b64 l2cache \ + spi spacewire slink ascs leon4 leon4v0 l2cache \ pwm gr1553b iommu FILESKIP = grcan.vhd diff --git a/designs/leon3-avnet-xc2v1500/ahbrom.vhd b/designs/leon3-avnet-xc2v1500/ahbrom.vhd index cca70b02..78dd4c83 100644 --- a/designs/leon3-avnet-xc2v1500/ahbrom.vhd +++ b/designs/leon3-avnet-xc2v1500/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-avnet-xc2v1500/config.help b/designs/leon3-avnet-xc2v1500/config.help index 9f265e5c..660333ef 100644 --- a/designs/leon3-avnet-xc2v1500/config.help +++ b/designs/leon3-avnet-xc2v1500/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-avnet-xc2v1500/lconfig.tk b/designs/leon3-avnet-xc2v1500/lconfig.tk index a8095b15..f5e1cbcf 100755 --- a/designs/leon3-avnet-xc2v1500/lconfig.tk +++ b/designs/leon3-avnet-xc2v1500/lconfig.tk @@ -753,7 +753,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -763,7 +764,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -906,8 +909,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -926,6 +931,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1015,9 +1024,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1071,10 +1081,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1120,14 +1131,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1200,13 +1213,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1246,22 +1267,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1318,21 +1607,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1379,36 +1668,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1416,48 +1706,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1513,27 +1804,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1574,16 +1865,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1592,34 +1884,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1676,92 +1969,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1769,18 +2062,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1821,52 +2114,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1874,162 +2168,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2085,45 +2380,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2163,18 +2460,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2182,55 +2480,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2287,24 +2590,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2344,17 +2647,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2362,37 +2666,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2448,16 +2753,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2505,9 +2817,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2529,21 +2839,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -3457,16 +3772,16 @@ proc menu17 {w title} { bool $w.config.f 17 0 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_26 - minimenu $w.config.f 17 1 "AHB RAM size (Kbyte)" tmpvar_26 CONFIG_AHBRAM_SZ1 + global tmpvar_28 + minimenu $w.config.f 17 1 "AHB RAM size (Kbyte)" tmpvar_28 CONFIG_AHBRAM_SZ1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_26 -value "32" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "64" -variable tmpvar_26 -value "64" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" menusplit $w $w.config.f.x1.x.menu 7 hex $w.config.f 17 2 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3516,21 +3831,21 @@ proc update_menu17 {} { proc update_define_menu17 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_26 + global tmpvar_28 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_26 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_28 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_26 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_28 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3593,26 +3908,26 @@ proc menu18 {w title} { bool $w.config.f 18 2 "PCI DMA controller " CONFIG_PCI_MASTER_TARGET_DMA hex $w.config.f 18 3 "PCI vendor ID" CONFIG_PCI_VENDORID hex $w.config.f 18 4 "PCI device ID" CONFIG_PCI_DEVICEID - global tmpvar_27 - minimenu $w.config.f 18 5 "PCI FIFO depth" tmpvar_27 CONFIG_PCI_FIFO0 + global tmpvar_29 + minimenu $w.config.f 18 5 "PCI FIFO depth" tmpvar_29 CONFIG_PCI_FIFO0 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"PCI FIFO depth\"" - $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_27 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_29 -value "None" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_29 -value "128" -command "update_active" menusplit $w $w.config.f.x5.x.menu 6 hex $w.config.f 18 6 "PCI initiator address (haddr\[31:20\]) " CONFIG_PCI_HADDR bool $w.config.f 18 7 "Enable PCI trace buffer " CONFIG_PCI_TRACE - global tmpvar_28 - minimenu $w.config.f 18 8 "PCI trace buffer depth" tmpvar_28 CONFIG_PCI_TRACE256 + global tmpvar_30 + minimenu $w.config.f 18 8 "PCI trace buffer depth" tmpvar_30 CONFIG_PCI_TRACE256 menu $w.config.f.x8.x.menu -tearoffcommand "menutitle \"PCI trace buffer depth\"" - $w.config.f.x8.x.menu add radiobutton -label "256" -variable tmpvar_28 -value "256" -command "update_active" - $w.config.f.x8.x.menu add radiobutton -label "512" -variable tmpvar_28 -value "512" -command "update_active" - $w.config.f.x8.x.menu add radiobutton -label "1024" -variable tmpvar_28 -value "1024" -command "update_active" - $w.config.f.x8.x.menu add radiobutton -label "2048" -variable tmpvar_28 -value "2048" -command "update_active" - $w.config.f.x8.x.menu add radiobutton -label "4096" -variable tmpvar_28 -value "4096" -command "update_active" + $w.config.f.x8.x.menu add radiobutton -label "256" -variable tmpvar_30 -value "256" -command "update_active" + $w.config.f.x8.x.menu add radiobutton -label "512" -variable tmpvar_30 -value "512" -command "update_active" + $w.config.f.x8.x.menu add radiobutton -label "1024" -variable tmpvar_30 -value "1024" -command "update_active" + $w.config.f.x8.x.menu add radiobutton -label "2048" -variable tmpvar_30 -value "2048" -command "update_active" + $w.config.f.x8.x.menu add radiobutton -label "4096" -variable tmpvar_30 -value "4096" -command "update_active" menusplit $w $w.config.f.x8.x.menu 5 @@ -3690,32 +4005,32 @@ proc update_define_menu18 {} { if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_VENDORID "$CONFIG_PCI_VENDORID" 1AC8} global CONFIG_PCI_DEVICEID if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_DEVICEID "$CONFIG_PCI_DEVICEID" 0054} - global tmpvar_27 + global tmpvar_29 global CONFIG_PCI_FIFO0 - if {$tmpvar_27 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} + if {$tmpvar_29 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} global CONFIG_PCI_FIFO8 - if {$tmpvar_27 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} global CONFIG_PCI_FIFO16 - if {$tmpvar_27 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} global CONFIG_PCI_FIFO32 - if {$tmpvar_27 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} global CONFIG_PCI_FIFO64 - if {$tmpvar_27 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} global CONFIG_PCI_FIFO128 - if {$tmpvar_27 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} + if {$tmpvar_29 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} global CONFIG_PCI_HADDR 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} - global tmpvar_28 + global tmpvar_30 global CONFIG_PCI_TRACE256 - if {$tmpvar_28 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} + if {$tmpvar_30 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} global CONFIG_PCI_TRACE512 - if {$tmpvar_28 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} + if {$tmpvar_30 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} global CONFIG_PCI_TRACE1024 - if {$tmpvar_28 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} + if {$tmpvar_30 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} global CONFIG_PCI_TRACE2048 - if {$tmpvar_28 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} + if {$tmpvar_30 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} global CONFIG_PCI_TRACE4096 - if {$tmpvar_28 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} + if {$tmpvar_30 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} } @@ -3771,15 +4086,15 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 19 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 19 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3868,19 +4183,19 @@ proc update_menu19 {} { proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4050,7 +4365,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4060,6 +4376,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4084,6 +4402,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4096,14 +4415,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4116,27 +4440,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4146,17 +4470,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4168,12 +4492,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4183,10 +4507,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4197,7 +4521,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4209,26 +4533,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4236,27 +4562,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4295,7 +4625,7 @@ set CONFIG_DDRSP_RSKEW 0 set CONFIG_AHBSTAT_ENABLE 0 set CONFIG_AHBSTAT_NFTSLV 1 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4309,7 +4639,7 @@ set CONFIG_PCI_MASTER_TARGET 0 set CONFIG_PCI_MASTER_TARGET_DMA 0 set CONFIG_PCI_VENDORID 1AC8 set CONFIG_PCI_DEVICEID 0054 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_PCI_FIFO0 0 set CONFIG_PCI_FIFO8 0 set CONFIG_PCI_FIFO16 0 @@ -4318,14 +4648,14 @@ set CONFIG_PCI_FIFO64 0 set CONFIG_PCI_FIFO128 0 set CONFIG_PCI_HADDR E00 set CONFIG_PCI_TRACE 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_PCI_TRACE256 0 set CONFIG_PCI_TRACE512 0 set CONFIG_PCI_TRACE1024 0 set CONFIG_PCI_TRACE2048 0 set CONFIG_PCI_TRACE4096 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4403,7 +4733,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4413,6 +4744,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4451,6 +4784,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4463,9 +4797,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4479,239 +4814,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4802,15 +5287,15 @@ proc writeconfig {file1 file2} { write_comment $cfg $autocfg "On-chip RAM/ROM " global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_26 + global tmpvar_28 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "PCI " @@ -4825,36 +5310,36 @@ proc writeconfig {file1 file2} { 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 } global CONFIG_PCI_DEVICEID 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 } - global tmpvar_27 + global tmpvar_29 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 { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} + 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 } + 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 } + 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 } + 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 } + 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 } + 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 }} global CONFIG_PCI_HADDR 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 } global CONFIG_PCI_TRACE write_tristate $cfg $autocfg CONFIG_PCI_TRACE $CONFIG_PCI_TRACE [list $notmod] 2 - global tmpvar_28 + global tmpvar_30 if {($CONFIG_PCI_TRACE == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + 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 } + 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 } + 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 } + 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 } + 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 }} write_comment $cfg $autocfg "UART, timer, I/O port and interrupt controller" global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4927,7 +5412,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4937,6 +5423,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4955,8 +5443,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5039,11 +5532,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5064,6 +5559,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0 global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0 global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0 @@ -5164,8 +5663,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5184,6 +5685,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5224,326 +5729,352 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "4" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_26 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_28 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_26 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_28 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_26 "64" } - global tmpvar_27 - set tmpvar_27 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_28 "64" } + global tmpvar_29 + set tmpvar_29 "8" global CONFIG_PCI_FIFO0 - if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_27 "None" } + if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_29 "None" } global CONFIG_PCI_FIFO8 - if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_29 "8" } global CONFIG_PCI_FIFO16 - if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_29 "16" } global CONFIG_PCI_FIFO32 - if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_29 "32" } global CONFIG_PCI_FIFO64 - if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_27 "64" } + if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_29 "64" } global CONFIG_PCI_FIFO128 - if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_27 "128" } - global tmpvar_28 - set tmpvar_28 "256" + if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_29 "128" } + global tmpvar_30 + set tmpvar_30 "256" global CONFIG_PCI_TRACE256 - if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_28 "256" } + if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_30 "256" } global CONFIG_PCI_TRACE512 - if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_28 "512" } + if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_30 "512" } global CONFIG_PCI_TRACE1024 - if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_28 "1024" } + if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_30 "1024" } global CONFIG_PCI_TRACE2048 - if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_28 "2048" } + if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_30 "2048" } global CONFIG_PCI_TRACE4096 - if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_28 "4096" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_30 "4096" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-avnet-xc2v1500/leon3mp.vhd b/designs/leon3-avnet-xc2v1500/leon3mp.vhd index b573daad..b2364ca6 100644 --- a/designs/leon3-avnet-xc2v1500/leon3mp.vhd +++ b/designs/leon3-avnet-xc2v1500/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-avnet-xc2v1500/testbench.vhd b/designs/leon3-avnet-xc2v1500/testbench.vhd index 242649e4..173978b7 100644 --- a/designs/leon3-avnet-xc2v1500/testbench.vhd +++ b/designs/leon3-avnet-xc2v1500/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-avnet-xc2v1500/tkconfig.h b/designs/leon3-avnet-xc2v1500/tkconfig.h index 6a1e2594..2ea2d901 100644 --- a/designs/leon3-avnet-xc2v1500/tkconfig.h +++ b/designs/leon3-avnet-xc2v1500/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-clock-gate/Makefile b/designs/leon3-clock-gate/Makefile index 3457f5bb..1e11ffba 100644 --- a/designs/leon3-clock-gate/Makefile +++ b/designs/leon3-clock-gate/Makefile @@ -16,11 +16,11 @@ BITGEN=$(GRLIB)/boards/$(BOARD)/default.ut CLEAN=soft-clean TECHLIBS = unisim simprim -LIBSKIP = tmtc gsi fmf dare gleichmann hynix openchip cypress \ +LIBSKIP = tmtc gsi fmf dare hynix openchip cypress \ ihp core1553bbc core1553brt core1553brm corePCIF gr1553 \ spansion -DIRSKIP = b1553 usb ddr crypto ata satcan slink ascs pwm haps coremp7 gr1553b iommu \ - eon3ft leon4 leon4b64 l2cache pcif spi ac97 hcan +DIRSKIP = b1553 usb ddr crypto satcan slink ascs pwm gr1553b iommu \ + eon3ft leon4 leon4v0 l2cache pcif spi hcan include $(GRLIB)/bin/Makefile include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-clock-gate/ahbrom.vhd b/designs/leon3-clock-gate/ahbrom.vhd index 63180a44..f1bf94ce 100644 --- a/designs/leon3-clock-gate/ahbrom.vhd +++ b/designs/leon3-clock-gate/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-clock-gate/clkgate.vhd b/designs/leon3-clock-gate/clkgate.vhd index 6a6f6601..d6a5448a 100644 --- a/designs/leon3-clock-gate/clkgate.vhd +++ b/designs/leon3-clock-gate/clkgate.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-clock-gate/config.help b/designs/leon3-clock-gate/config.help index ca82d286..4cd9d3aa 100644 --- a/designs/leon3-clock-gate/config.help +++ b/designs/leon3-clock-gate/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-clock-gate/lconfig.tk b/designs/leon3-clock-gate/lconfig.tk index def181b0..13455cbd 100755 --- a/designs/leon3-clock-gate/lconfig.tk +++ b/designs/leon3-clock-gate/lconfig.tk @@ -757,7 +757,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -767,7 +768,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -910,8 +913,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -930,6 +935,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1019,9 +1028,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1075,10 +1085,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1124,14 +1135,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1204,13 +1217,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1250,22 +1271,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1322,21 +1611,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1383,36 +1672,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1420,48 +1710,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1517,27 +1808,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1578,16 +1869,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1596,34 +1888,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1680,92 +1973,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1773,18 +2066,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1825,52 +2118,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1878,162 +2172,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2089,45 +2384,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2167,18 +2464,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2186,55 +2484,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2291,24 +2594,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2348,17 +2651,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2366,37 +2670,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2452,16 +2757,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2509,9 +2821,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2533,21 +2843,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2856,14 +3171,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2937,17 +3252,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3226,32 +3541,32 @@ proc menu15 {w title} { int $w.config.f 15 3 "RAM waitstates" CONFIG_SRCTRL_RAMWS int $w.config.f 15 4 "IO waitstates" CONFIG_SRCTRL_IOWS bool $w.config.f 15 5 "Use read-modify-write for sub-word writes " CONFIG_SRCTRL_RMW - global tmpvar_27 - minimenu $w.config.f 15 6 "SRAM banks" tmpvar_27 CONFIG_SRCTRL_SRBANKS1 + global tmpvar_29 + minimenu $w.config.f 15 6 "SRAM banks" tmpvar_29 CONFIG_SRCTRL_SRBANKS1 menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"SRAM banks\"" - $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_27 -value "3" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_27 -value "5" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_29 -value "3" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_29 -value "5" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 - global tmpvar_28 - minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_28 CONFIG_SRCTRL_BANKSZ0 + global tmpvar_30 + minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_30 CONFIG_SRCTRL_BANKSZ0 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"SRAM bank size (kb) (0 for programmable)\"" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_28 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_28 -value "256" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_28 -value "512" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_28 -value "1024" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_28 -value "2048" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_28 -value "4096" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_28 -value "8192" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_28 -value "16384" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_28 -value "32768" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_28 -value "65536" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_30 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_30 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_30 -value "512" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_30 -value "1024" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_30 -value "2048" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_30 -value "4096" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_30 -value "8192" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_30 -value "16384" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_30 -value "32768" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_30 -value "65536" -command "update_active" menusplit $w $w.config.f.x7.x.menu 14 int $w.config.f 15 8 "PROM bank select address bit (0 - 28)" CONFIG_SRCTRL_ROMASEL @@ -3327,46 +3642,46 @@ proc update_define_menu15 {} { global CONFIG_SRCTRL_RMW if {($CONFIG_SRCTRL == 1)} then { set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW&15]} else {set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_SRCTRL_SRBANKS1 - if {$tmpvar_27 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} global CONFIG_SRCTRL_SRBANKS2 - if {$tmpvar_27 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} global CONFIG_SRCTRL_SRBANKS3 - if {$tmpvar_27 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} + if {$tmpvar_29 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} global CONFIG_SRCTRL_SRBANKS4 - if {$tmpvar_27 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} global CONFIG_SRCTRL_SRBANKS5 - if {$tmpvar_27 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} - global tmpvar_28 + if {$tmpvar_29 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} + global tmpvar_30 global CONFIG_SRCTRL_BANKSZ0 - if {$tmpvar_28 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} + if {$tmpvar_30 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} global CONFIG_SRCTRL_BANKSZ1 - if {$tmpvar_28 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} + if {$tmpvar_30 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} global CONFIG_SRCTRL_BANKSZ2 - if {$tmpvar_28 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} + if {$tmpvar_30 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} global CONFIG_SRCTRL_BANKSZ3 - if {$tmpvar_28 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} + if {$tmpvar_30 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} global CONFIG_SRCTRL_BANKSZ4 - if {$tmpvar_28 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} + if {$tmpvar_30 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} global CONFIG_SRCTRL_BANKSZ5 - if {$tmpvar_28 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} + if {$tmpvar_30 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} global CONFIG_SRCTRL_BANKSZ6 - if {$tmpvar_28 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} + if {$tmpvar_30 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} global CONFIG_SRCTRL_BANKSZ7 - if {$tmpvar_28 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} + if {$tmpvar_30 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} global CONFIG_SRCTRL_BANKSZ8 - if {$tmpvar_28 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} + if {$tmpvar_30 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} global CONFIG_SRCTRL_BANKSZ9 - if {$tmpvar_28 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} + if {$tmpvar_30 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} global CONFIG_SRCTRL_BANKSZ10 - if {$tmpvar_28 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} + if {$tmpvar_30 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} global CONFIG_SRCTRL_BANKSZ11 - if {$tmpvar_28 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} + if {$tmpvar_30 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} global CONFIG_SRCTRL_BANKSZ12 - if {$tmpvar_28 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} + if {$tmpvar_30 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} global CONFIG_SRCTRL_BANKSZ13 - if {$tmpvar_28 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} + if {$tmpvar_30 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} global CONFIG_SRCTRL_ROMASEL if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_ROMASEL "$CONFIG_SRCTRL_ROMASEL" 19} } @@ -3718,16 +4033,16 @@ proc menu18 {w title} { hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 18 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 18 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_29 - minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 + global tmpvar_31 + minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_31 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3789,21 +4104,21 @@ proc update_define_menu18 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_29 + global tmpvar_31 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_31 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3863,14 +4178,14 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 19 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_30 - minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 + global tmpvar_32 + minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_32 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_32 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3924,17 +4239,17 @@ proc update_define_menu19 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_30 + global tmpvar_32 global CONFIG_GRETH_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_32 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_32 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_32 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_32 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_32 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -4125,29 +4440,29 @@ proc menu21 {w title} { bool $w.config.f 21 2 "PCI DMA controller " CONFIG_PCI_MASTER_TARGET_DMA hex $w.config.f 21 3 "PCI vendor ID" CONFIG_PCI_VENDORID hex $w.config.f 21 4 "PCI device ID" CONFIG_PCI_DEVICEID - global tmpvar_31 - minimenu $w.config.f 21 5 "PCI FIFO depth" tmpvar_31 CONFIG_PCI_FIFO0 + global tmpvar_33 + minimenu $w.config.f 21 5 "PCI FIFO depth" tmpvar_33 CONFIG_PCI_FIFO0 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"PCI FIFO depth\"" - $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_31 -value "None" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_31 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_33 -value "None" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_33 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_33 -value "128" -command "update_active" menusplit $w $w.config.f.x5.x.menu 6 hex $w.config.f 21 6 "PCI initiator address (haddr\[31:20\]) " CONFIG_PCI_HADDR bool $w.config.f 21 7 "PCI arbiter " CONFIG_PCI_ARBITER bool $w.config.f 21 8 "PCI arbiter APB interface " CONFIG_PCI_ARBITER_APB int $w.config.f 21 9 "Number of PCI REQ/GNT pairs" CONFIG_PCI_ARBITER_NREQ bool $w.config.f 21 10 "Enable PCI trace buffer " CONFIG_PCI_TRACE - global tmpvar_32 - minimenu $w.config.f 21 11 "PCI trace buffer depth" tmpvar_32 CONFIG_PCI_TRACE256 + global tmpvar_34 + minimenu $w.config.f 21 11 "PCI trace buffer depth" tmpvar_34 CONFIG_PCI_TRACE256 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"PCI trace buffer depth\"" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_32 -value "256" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_32 -value "512" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_32 -value "1024" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_32 -value "2048" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_32 -value "4096" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_34 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_34 -value "512" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_34 -value "1024" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_34 -value "2048" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_34 -value "4096" -command "update_active" menusplit $w $w.config.f.x11.x.menu 5 @@ -4231,19 +4546,19 @@ proc update_define_menu21 {} { if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_VENDORID "$CONFIG_PCI_VENDORID" 1AC8} global CONFIG_PCI_DEVICEID if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_DEVICEID "$CONFIG_PCI_DEVICEID" 0054} - global tmpvar_31 + global tmpvar_33 global CONFIG_PCI_FIFO0 - if {$tmpvar_31 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} + if {$tmpvar_33 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} global CONFIG_PCI_FIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} + if {$tmpvar_33 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} global CONFIG_PCI_FIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} + if {$tmpvar_33 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} global CONFIG_PCI_FIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} + if {$tmpvar_33 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} global CONFIG_PCI_FIFO64 - if {$tmpvar_31 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} + if {$tmpvar_33 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} global CONFIG_PCI_FIFO128 - if {$tmpvar_31 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} + if {$tmpvar_33 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} global CONFIG_PCI_HADDR 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} global CONFIG_PCI_ARBITER @@ -4252,17 +4567,17 @@ proc update_define_menu21 {} { set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB&15]} else {set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB|16]} global CONFIG_PCI_ARBITER_NREQ if {($CONFIG_PCI_ARBITER == 1)} then {validate_int CONFIG_PCI_ARBITER_NREQ "$CONFIG_PCI_ARBITER_NREQ" 4} - global tmpvar_32 + global tmpvar_34 global CONFIG_PCI_TRACE256 - if {$tmpvar_32 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} + if {$tmpvar_34 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} global CONFIG_PCI_TRACE512 - if {$tmpvar_32 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} + if {$tmpvar_34 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} global CONFIG_PCI_TRACE1024 - if {$tmpvar_32 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} + if {$tmpvar_34 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} global CONFIG_PCI_TRACE2048 - if {$tmpvar_32 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} + if {$tmpvar_34 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} global CONFIG_PCI_TRACE4096 - if {$tmpvar_32 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} + if {$tmpvar_34 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} } @@ -4319,57 +4634,57 @@ proc menu22 {w title} { bool $w.config.f 22 0 "Enable Spacewire links " CONFIG_SPW_ENABLE int $w.config.f 22 1 "Number of links (1 - 3)" CONFIG_SPW_NUM - global tmpvar_33 - minimenu $w.config.f 22 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_33 CONFIG_SPW_AHBFIFO4 + global tmpvar_35 + minimenu $w.config.f 22 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_35 CONFIG_SPW_AHBFIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB RX/TX FIFO size (32-bit words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_33 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_35 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_35 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_35 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_35 -value "32" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_34 - minimenu $w.config.f 22 3 "Receiver FIFO size (bytes) " tmpvar_34 CONFIG_SPW_RXFIFO16 + global tmpvar_36 + minimenu $w.config.f 22 3 "Receiver FIFO size (bytes) " tmpvar_36 CONFIG_SPW_RXFIFO16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Receiver FIFO size (bytes) \"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_34 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_34 -value "32" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_34 -value "64" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_36 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_36 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_36 -value "64" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 22 4 "Enable RMAP protocol " CONFIG_SPW_RMAP - global tmpvar_35 - minimenu $w.config.f 22 5 "RMAP buffer size (bytes) " tmpvar_35 CONFIG_SPW_RMAPBUF2 + global tmpvar_37 + minimenu $w.config.f 22 5 "RMAP buffer size (bytes) " tmpvar_37 CONFIG_SPW_RMAPBUF2 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"RMAP buffer size (bytes) \"" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_35 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_35 -value "128" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_35 -value "192" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_35 -value "256" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_37 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_37 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_37 -value "192" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_37 -value "256" -command "update_active" menusplit $w $w.config.f.x5.x.menu 4 bool $w.config.f 22 6 "Enable RMAP CRC check " CONFIG_SPW_RMAPCRC bool $w.config.f 22 7 "Enable Rx unaligned transfers " CONFIG_SPW_RXUNAL bool $w.config.f 22 8 "Spacewire FIFO protection " CONFIG_SPW_FT bool $w.config.f 22 9 "Use GRSPWC netlist " CONFIG_SPW_NETLIST int $w.config.f 22 10 "Number of ports (1 - 2)" CONFIG_SPW_PORTS - global tmpvar_36 - minimenu $w.config.f 22 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_36 CONFIG_SPW_GRSPW1 + global tmpvar_38 + minimenu $w.config.f 22 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_38 CONFIG_SPW_GRSPW1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Select GRSPW core (GRSPW1/GRSPW2) \"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_36 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_36 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_38 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_38 -value "2" -command "update_active" menusplit $w $w.config.f.x11.x.menu 2 int $w.config.f 22 12 "Number of DMA channels (1 - 4)" CONFIG_SPW_DMACHAN bool $w.config.f 22 13 "Receiver and transmitter uses same clock " CONFIG_SPW_RTSAME - global tmpvar_37 - minimenu $w.config.f 22 14 "Select receiver clock type " tmpvar_37 CONFIG_SPW_RX_SDR + global tmpvar_39 + minimenu $w.config.f 22 14 "Select receiver clock type " tmpvar_39 CONFIG_SPW_RX_SDR menu $w.config.f.x14.x.menu -tearoffcommand "menutitle \"Select receiver clock type \"" - $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_37 -value "SDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_37 -value "DDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_37 -value "Xor" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_37 -value "Aeroflex" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_39 -value "SDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_39 -value "DDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_39 -value "Xor" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_39 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x14.x.menu 4 - global tmpvar_38 - minimenu $w.config.f 22 15 "Select transmitter clock type " tmpvar_38 CONFIG_SPW_TX_SDR + global tmpvar_40 + minimenu $w.config.f 22 15 "Select transmitter clock type " tmpvar_40 CONFIG_SPW_TX_SDR menu $w.config.f.x15.x.menu -tearoffcommand "menutitle \"Select transmitter clock type \"" - $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_38 -value "SDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_38 -value "DDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_38 -value "Aeroflex" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_40 -value "SDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_40 -value "DDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_40 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x15.x.menu 3 @@ -4449,34 +4764,34 @@ proc update_define_menu22 {} { global CONFIG_SPW_ENABLE global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_NUM "$CONFIG_SPW_NUM" 1} - global tmpvar_33 + global tmpvar_35 global CONFIG_SPW_AHBFIFO4 - if {$tmpvar_33 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} + if {$tmpvar_35 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} global CONFIG_SPW_AHBFIFO8 - if {$tmpvar_33 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} + if {$tmpvar_35 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} global CONFIG_SPW_AHBFIFO16 - if {$tmpvar_33 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} + if {$tmpvar_35 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} global CONFIG_SPW_AHBFIFO32 - if {$tmpvar_33 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} - global tmpvar_34 + if {$tmpvar_35 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} + global tmpvar_36 global CONFIG_SPW_RXFIFO16 - if {$tmpvar_34 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} + if {$tmpvar_36 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} global CONFIG_SPW_RXFIFO32 - if {$tmpvar_34 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} + if {$tmpvar_36 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} global CONFIG_SPW_RXFIFO64 - if {$tmpvar_34 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} + if {$tmpvar_36 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP&15]} else {set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP|16]} - global tmpvar_35 + global tmpvar_37 global CONFIG_SPW_RMAPBUF2 - if {$tmpvar_35 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} + if {$tmpvar_37 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} global CONFIG_SPW_RMAPBUF4 - if {$tmpvar_35 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} + if {$tmpvar_37 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} global CONFIG_SPW_RMAPBUF6 - if {$tmpvar_35 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} + if {$tmpvar_37 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} global CONFIG_SPW_RMAPBUF8 - if {$tmpvar_35 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} + if {$tmpvar_37 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC&15]} else {set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC|16]} @@ -4491,32 +4806,32 @@ proc update_define_menu22 {} { set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST&15]} else {set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST|16]} global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_PORTS "$CONFIG_SPW_PORTS" 1} - global tmpvar_36 + global tmpvar_38 global CONFIG_SPW_GRSPW1 - if {$tmpvar_36 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} + if {$tmpvar_38 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} global CONFIG_SPW_GRSPW2 - if {$tmpvar_36 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} + if {$tmpvar_38 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} global CONFIG_SPW_DMACHAN if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {validate_int CONFIG_SPW_DMACHAN "$CONFIG_SPW_DMACHAN" 1} global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME&15]} else {set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME|16]} - global tmpvar_37 + global tmpvar_39 global CONFIG_SPW_RX_SDR - if {$tmpvar_37 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} + if {$tmpvar_39 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} global CONFIG_SPW_RX_DDR - if {$tmpvar_37 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} + if {$tmpvar_39 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} global CONFIG_SPW_RX_XOR - if {$tmpvar_37 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} + if {$tmpvar_39 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} global CONFIG_SPW_RX_AFLEX - if {$tmpvar_37 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} - global tmpvar_38 + if {$tmpvar_39 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} + global tmpvar_40 global CONFIG_SPW_TX_SDR - if {$tmpvar_38 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} + if {$tmpvar_40 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} global CONFIG_SPW_TX_DDR - if {$tmpvar_38 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} + if {$tmpvar_40 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} global CONFIG_SPW_TX_AFLEX - if {$tmpvar_38 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} + if {$tmpvar_40 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} } @@ -4572,26 +4887,26 @@ proc menu23 {w title} { bool $w.config.f 23 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_39 - minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_39 CONFIG_UA1_FIFO1 + global tmpvar_41 + minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_41 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_39 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_39 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_39 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_39 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_39 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_39 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_41 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_41 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_41 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_41 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_41 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_41 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 23 2 "Enable secondary UART " CONFIG_UART2_ENABLE - global tmpvar_40 - minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_40 CONFIG_UA2_FIFO1 + global tmpvar_42 + minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_42 CONFIG_UA2_FIFO1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"UART2 FIFO depth\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_40 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_40 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_40 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_40 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_40 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_40 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_42 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_42 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_42 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_42 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_42 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_42 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 6 bool $w.config.f 23 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 23 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4682,32 +4997,32 @@ proc update_menu23 {} { proc update_define_menu23 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_39 + global tmpvar_41 global CONFIG_UA1_FIFO1 - if {$tmpvar_39 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_41 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_39 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_41 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_39 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_41 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_39 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_41 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_39 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_41 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_39 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} - global tmpvar_40 + if {$tmpvar_41 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + global tmpvar_42 global CONFIG_UA2_FIFO1 - if {$tmpvar_40 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} + if {$tmpvar_42 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} global CONFIG_UA2_FIFO2 - if {$tmpvar_40 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} + if {$tmpvar_42 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} global CONFIG_UA2_FIFO4 - if {$tmpvar_40 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} + if {$tmpvar_42 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} global CONFIG_UA2_FIFO8 - if {$tmpvar_40 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} + if {$tmpvar_42 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} global CONFIG_UA2_FIFO16 - if {$tmpvar_40 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} + if {$tmpvar_42 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} global CONFIG_UA2_FIFO32 - if {$tmpvar_40 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} + if {$tmpvar_42 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4877,7 +5192,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4887,6 +5203,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4911,6 +5229,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4923,14 +5242,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4943,27 +5267,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4973,17 +5297,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4995,12 +5319,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -5010,10 +5334,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -5024,7 +5348,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -5036,26 +5360,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -5063,27 +5389,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -5104,7 +5434,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -5122,13 +5452,13 @@ set CONFIG_SRCTRL_PROMWS 3 set CONFIG_SRCTRL_RAMWS 0 set CONFIG_SRCTRL_IOWS 0 set CONFIG_SRCTRL_RMW 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_SRCTRL_SRBANKS1 0 set CONFIG_SRCTRL_SRBANKS2 0 set CONFIG_SRCTRL_SRBANKS3 0 set CONFIG_SRCTRL_SRBANKS4 0 set CONFIG_SRCTRL_SRBANKS5 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_SRCTRL_BANKSZ0 0 set CONFIG_SRCTRL_BANKSZ1 0 set CONFIG_SRCTRL_BANKSZ2 0 @@ -5163,7 +5493,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -5174,7 +5504,7 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 @@ -5191,7 +5521,7 @@ set CONFIG_PCI_MASTER_TARGET 0 set CONFIG_PCI_MASTER_TARGET_DMA 0 set CONFIG_PCI_VENDORID 1AC8 set CONFIG_PCI_DEVICEID 0054 -set tmpvar_31 "(not set)" +set tmpvar_33 "(not set)" set CONFIG_PCI_FIFO0 0 set CONFIG_PCI_FIFO8 0 set CONFIG_PCI_FIFO16 0 @@ -5203,7 +5533,7 @@ set CONFIG_PCI_ARBITER 0 set CONFIG_PCI_ARBITER_APB 0 set CONFIG_PCI_ARBITER_NREQ 4 set CONFIG_PCI_TRACE 0 -set tmpvar_32 "(not set)" +set tmpvar_34 "(not set)" set CONFIG_PCI_TRACE256 0 set CONFIG_PCI_TRACE512 0 set CONFIG_PCI_TRACE1024 0 @@ -5211,17 +5541,17 @@ set CONFIG_PCI_TRACE2048 0 set CONFIG_PCI_TRACE4096 0 set CONFIG_SPW_ENABLE 0 set CONFIG_SPW_NUM 1 -set tmpvar_33 "(not set)" +set tmpvar_35 "(not set)" set CONFIG_SPW_AHBFIFO4 0 set CONFIG_SPW_AHBFIFO8 0 set CONFIG_SPW_AHBFIFO16 0 set CONFIG_SPW_AHBFIFO32 0 -set tmpvar_34 "(not set)" +set tmpvar_36 "(not set)" set CONFIG_SPW_RXFIFO16 0 set CONFIG_SPW_RXFIFO32 0 set CONFIG_SPW_RXFIFO64 0 set CONFIG_SPW_RMAP 0 -set tmpvar_35 "(not set)" +set tmpvar_37 "(not set)" set CONFIG_SPW_RMAPBUF2 0 set CONFIG_SPW_RMAPBUF4 0 set CONFIG_SPW_RMAPBUF6 0 @@ -5231,22 +5561,22 @@ set CONFIG_SPW_RXUNAL 0 set CONFIG_SPW_FT 0 set CONFIG_SPW_NETLIST 0 set CONFIG_SPW_PORTS 1 -set tmpvar_36 "(not set)" +set tmpvar_38 "(not set)" set CONFIG_SPW_GRSPW1 0 set CONFIG_SPW_GRSPW2 0 set CONFIG_SPW_DMACHAN 1 set CONFIG_SPW_RTSAME 0 -set tmpvar_37 "(not set)" +set tmpvar_39 "(not set)" set CONFIG_SPW_RX_SDR 0 set CONFIG_SPW_RX_DDR 0 set CONFIG_SPW_RX_XOR 0 set CONFIG_SPW_RX_AFLEX 0 -set tmpvar_38 "(not set)" +set tmpvar_40 "(not set)" set CONFIG_SPW_TX_SDR 0 set CONFIG_SPW_TX_DDR 0 set CONFIG_SPW_TX_AFLEX 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_39 "(not set)" +set tmpvar_41 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5254,7 +5584,7 @@ set CONFIG_UA1_FIFO8 0 set CONFIG_UA1_FIFO16 0 set CONFIG_UA1_FIFO32 0 set CONFIG_UART2_ENABLE 0 -set tmpvar_40 "(not set)" +set tmpvar_42 "(not set)" set CONFIG_UA2_FIFO1 0 set CONFIG_UA2_FIFO2 0 set CONFIG_UA2_FIFO4 0 @@ -5332,7 +5662,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5342,6 +5673,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5380,6 +5713,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -5392,9 +5726,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5408,239 +5743,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5685,13 +6170,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5720,29 +6205,29 @@ proc writeconfig {file1 file2} { if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_IOWS $CONFIG_SRCTRL_IOWS $notmod } global CONFIG_SRCTRL_RMW if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_RMW $CONFIG_SRCTRL_RMW [list $notmod] 2 } - global tmpvar_27 + global tmpvar_29 if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} - global tmpvar_28 + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} + global tmpvar_30 if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_SRCTRL_ROMASEL if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_ROMASEL $CONFIG_SRCTRL_ROMASEL $notmod } write_comment $cfg $autocfg "Leon2 memory controller " @@ -5786,27 +6271,27 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_30 + global tmpvar_32 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} write_comment $cfg $autocfg "CAN " global CONFIG_CAN_ENABLE write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2 @@ -5832,14 +6317,14 @@ proc writeconfig {file1 file2} { 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 } global CONFIG_PCI_DEVICEID 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 } - global tmpvar_31 + global tmpvar_33 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 { - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 }} + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 }} global CONFIG_PCI_HADDR 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 } global CONFIG_PCI_ARBITER @@ -5850,37 +6335,37 @@ proc writeconfig {file1 file2} { if {($CONFIG_PCI_ARBITER == 1)} then {write_int $cfg $autocfg CONFIG_PCI_ARBITER_NREQ $CONFIG_PCI_ARBITER_NREQ $notmod } global CONFIG_PCI_TRACE write_tristate $cfg $autocfg CONFIG_PCI_TRACE $CONFIG_PCI_TRACE [list $notmod] 2 - global tmpvar_32 + global tmpvar_34 if {($CONFIG_PCI_TRACE == 1)} then { - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 }} + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 }} write_comment $cfg $autocfg "Spacewire " global CONFIG_SPW_ENABLE write_tristate $cfg $autocfg CONFIG_SPW_ENABLE $CONFIG_SPW_ENABLE [list $notmod] 2 global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_NUM $CONFIG_SPW_NUM $notmod } - global tmpvar_33 + global tmpvar_35 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 }} - global tmpvar_34 + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 }} + global tmpvar_36 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_34 == "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 } - if { $tmpvar_34 == "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 } - if { $tmpvar_34 == "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 }} + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 }} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAP $CONFIG_SPW_RMAP [list $notmod] 2 } - global tmpvar_35 + global tmpvar_37 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then { - if { $tmpvar_35 == "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 } - if { $tmpvar_35 == "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 } - if { $tmpvar_35 == "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 } - if { $tmpvar_35 == "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 }} + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 }} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAPCRC $CONFIG_SPW_RMAPCRC [list $notmod] 2 } global CONFIG_SPW_RXUNAL @@ -5891,47 +6376,47 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_NETLIST $CONFIG_SPW_NETLIST [list $notmod] 2 } global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_PORTS $CONFIG_SPW_PORTS $notmod } - global tmpvar_36 + global tmpvar_38 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_36 == "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 } - if { $tmpvar_36 == "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 }} + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 }} global CONFIG_SPW_DMACHAN global CONFIG_SPW_GRSPW2 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_int $cfg $autocfg CONFIG_SPW_DMACHAN $CONFIG_SPW_DMACHAN $notmod } global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RTSAME $CONFIG_SPW_RTSAME [list $notmod] 2 } - global tmpvar_37 + global tmpvar_39 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_37 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } - if { $tmpvar_37 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } - if { $tmpvar_37 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } - if { $tmpvar_37 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} - global tmpvar_38 + if { $tmpvar_39 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } + if { $tmpvar_39 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } + if { $tmpvar_39 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } + if { $tmpvar_39 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} + global tmpvar_40 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_38 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } - if { $tmpvar_38 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } - if { $tmpvar_38 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} + if { $tmpvar_40 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } + if { $tmpvar_40 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } + if { $tmpvar_40 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_39 + global tmpvar_41 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 }} + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 }} global CONFIG_UART2_ENABLE write_tristate $cfg $autocfg CONFIG_UART2_ENABLE $CONFIG_UART2_ENABLE [list $notmod] 2 - global tmpvar_40 + global tmpvar_42 if {($CONFIG_UART2_ENABLE == 1)} then { - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 }} + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -6004,7 +6489,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -6014,6 +6500,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -6032,8 +6520,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -6116,11 +6609,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -6141,6 +6636,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -6296,8 +6795,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -6316,6 +6817,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -6356,458 +6861,484 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "1" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "1" global CONFIG_SRCTRL_SRBANKS1 - if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_29 "1" } global CONFIG_SRCTRL_SRBANKS2 - if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_29 "2" } global CONFIG_SRCTRL_SRBANKS3 - if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_27 "3" } + if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_29 "3" } global CONFIG_SRCTRL_SRBANKS4 - if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_29 "4" } global CONFIG_SRCTRL_SRBANKS5 - if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_27 "5" } - global tmpvar_28 - set tmpvar_28 "0" + if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_29 "5" } + global tmpvar_30 + set tmpvar_30 "0" global CONFIG_SRCTRL_BANKSZ0 - if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_30 "8" } global CONFIG_SRCTRL_BANKSZ1 - if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_30 "16" } global CONFIG_SRCTRL_BANKSZ2 - if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_30 "32" } global CONFIG_SRCTRL_BANKSZ3 - if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_28 "64" } + if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_30 "64" } global CONFIG_SRCTRL_BANKSZ4 - if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_28 "128" } + if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_30 "128" } global CONFIG_SRCTRL_BANKSZ5 - if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_28 "256" } + if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_30 "256" } global CONFIG_SRCTRL_BANKSZ6 - if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_28 "512" } + if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_30 "512" } global CONFIG_SRCTRL_BANKSZ7 - if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_28 "1024" } + if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_30 "1024" } global CONFIG_SRCTRL_BANKSZ8 - if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_28 "2048" } + if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_30 "2048" } global CONFIG_SRCTRL_BANKSZ9 - if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_28 "4096" } + if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_30 "4096" } global CONFIG_SRCTRL_BANKSZ10 - if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_28 "8192" } + if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_30 "8192" } global CONFIG_SRCTRL_BANKSZ11 - if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_28 "16384" } + if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_30 "16384" } global CONFIG_SRCTRL_BANKSZ12 - if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_28 "32768" } + if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_30 "32768" } global CONFIG_SRCTRL_BANKSZ13 - if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_28 "65536" } - global tmpvar_29 - set tmpvar_29 "4" + if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_30 "65536" } + global tmpvar_31 + set tmpvar_31 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_31 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_31 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_31 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_31 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_31 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_31 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } - global tmpvar_30 - set tmpvar_30 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_31 "64" } + global tmpvar_32 + set tmpvar_32 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_32 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_32 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_32 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_32 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } - global tmpvar_31 - set tmpvar_31 "8" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_32 "64" } + global tmpvar_33 + set tmpvar_33 "8" global CONFIG_PCI_FIFO0 - if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_31 "None" } + if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_33 "None" } global CONFIG_PCI_FIFO8 - if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_31 "8" } + if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_33 "8" } global CONFIG_PCI_FIFO16 - if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_31 "16" } + if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_33 "16" } global CONFIG_PCI_FIFO32 - if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_31 "32" } + if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_33 "32" } global CONFIG_PCI_FIFO64 - if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_31 "64" } + if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_33 "64" } global CONFIG_PCI_FIFO128 - if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_31 "128" } - global tmpvar_32 - set tmpvar_32 "256" + if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_33 "128" } + global tmpvar_34 + set tmpvar_34 "256" global CONFIG_PCI_TRACE256 - if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_32 "256" } + if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_34 "256" } global CONFIG_PCI_TRACE512 - if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_32 "512" } + if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_34 "512" } global CONFIG_PCI_TRACE1024 - if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_32 "1024" } + if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_34 "1024" } global CONFIG_PCI_TRACE2048 - if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_32 "2048" } + if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_34 "2048" } global CONFIG_PCI_TRACE4096 - if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_32 "4096" } - global tmpvar_33 - set tmpvar_33 "16" + if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_34 "4096" } + global tmpvar_35 + set tmpvar_35 "16" global CONFIG_SPW_AHBFIFO4 - if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_33 "4" } + if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_35 "4" } global CONFIG_SPW_AHBFIFO8 - if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_33 "8" } + if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_35 "8" } global CONFIG_SPW_AHBFIFO16 - if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_33 "16" } + if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_35 "16" } global CONFIG_SPW_AHBFIFO32 - if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_33 "32" } - global tmpvar_34 - set tmpvar_34 "16" + if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_35 "32" } + global tmpvar_36 + set tmpvar_36 "16" global CONFIG_SPW_RXFIFO16 - if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_34 "16" } + if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_36 "16" } global CONFIG_SPW_RXFIFO32 - if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_34 "32" } + if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_36 "32" } global CONFIG_SPW_RXFIFO64 - if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_34 "64" } - global tmpvar_35 - set tmpvar_35 "64" + if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_36 "64" } + global tmpvar_37 + set tmpvar_37 "64" global CONFIG_SPW_RMAPBUF2 - if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_35 "64" } + if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_37 "64" } global CONFIG_SPW_RMAPBUF4 - if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_35 "128" } + if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_37 "128" } global CONFIG_SPW_RMAPBUF6 - if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_35 "192" } + if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_37 "192" } global CONFIG_SPW_RMAPBUF8 - if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_35 "256" } - global tmpvar_36 - set tmpvar_36 "2" + if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_37 "256" } + global tmpvar_38 + set tmpvar_38 "2" global CONFIG_SPW_GRSPW1 - if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_36 "1" } + if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_38 "1" } global CONFIG_SPW_GRSPW2 - if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_36 "2" } - global tmpvar_37 - set tmpvar_37 "DDR" + if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_38 "2" } + global tmpvar_39 + set tmpvar_39 "DDR" global CONFIG_SPW_RX_SDR - if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_37 "SDR" } + if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_39 "SDR" } global CONFIG_SPW_RX_DDR - if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_37 "DDR" } + if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_39 "DDR" } global CONFIG_SPW_RX_XOR - if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_37 "Xor" } + if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_39 "Xor" } global CONFIG_SPW_RX_AFLEX - if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_37 "Aeroflex" } - global tmpvar_38 - set tmpvar_38 "SDR" + if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_39 "Aeroflex" } + global tmpvar_40 + set tmpvar_40 "SDR" global CONFIG_SPW_TX_SDR - if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_38 "SDR" } + if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_40 "SDR" } global CONFIG_SPW_TX_DDR - if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_38 "DDR" } + if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_40 "DDR" } global CONFIG_SPW_TX_AFLEX - if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_38 "Aeroflex" } - global tmpvar_39 - set tmpvar_39 "1" + if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_40 "Aeroflex" } + global tmpvar_41 + set tmpvar_41 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_39 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_41 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_39 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_41 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_39 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_41 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_39 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_41 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_39 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_41 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_39 "32" } - global tmpvar_40 - set tmpvar_40 "1" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_41 "32" } + global tmpvar_42 + set tmpvar_42 "1" global CONFIG_UA2_FIFO1 - if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_40 "1" } + if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_42 "1" } global CONFIG_UA2_FIFO2 - if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_40 "2" } + if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_42 "2" } global CONFIG_UA2_FIFO4 - if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_40 "4" } + if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_42 "4" } global CONFIG_UA2_FIFO8 - if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_40 "8" } + if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_42 "8" } global CONFIG_UA2_FIFO16 - if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_40 "16" } + if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_42 "16" } global CONFIG_UA2_FIFO32 - if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_40 "32" } + if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_42 "32" } } diff --git a/designs/leon3-clock-gate/leon3mp.vhd b/designs/leon3-clock-gate/leon3mp.vhd index ef276551..d10e2c6c 100644 --- a/designs/leon3-clock-gate/leon3mp.vhd +++ b/designs/leon3-clock-gate/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-clock-gate/testbench.vhd b/designs/leon3-clock-gate/testbench.vhd index efd41511..b031e9c1 100644 --- a/designs/leon3-clock-gate/testbench.vhd +++ b/designs/leon3-clock-gate/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-clock-gate/tkconfig.h b/designs/leon3-clock-gate/tkconfig.h index f47757f7..b839a88a 100644 --- a/designs/leon3-clock-gate/tkconfig.h +++ b/designs/leon3-clock-gate/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-digilent-xc3s1000/Makefile b/designs/leon3-digilent-xc3s1000/Makefile index 542747ea..b7ada8f0 100644 --- a/designs/leon3-digilent-xc3s1000/Makefile +++ b/designs/leon3-digilent-xc3s1000/Makefile @@ -19,10 +19,10 @@ CLEAN=soft-clean TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF usbhc \ - tmtc openchip micron hynix cypress ihp gleichmann opencores spw + tmtc openchip micron hynix cypress ihp opencores spw DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest \ - spacewire ddr can usb ata grusbhc haps coremp7 hcan \ - leon4 leon4b64 l2cache slink ascs pwm gr1553b iommu + spacewire ddr can usb grusbhc hcan \ + leon4 leon4v0 l2cache slink ascs pwm gr1553b iommu FILESKIP = grcan.vhd i2cmst.vhd include $(GRLIB)/bin/Makefile diff --git a/designs/leon3-digilent-xc3s1000/ahbrom.vhd b/designs/leon3-digilent-xc3s1000/ahbrom.vhd index 6962b19f..5b8837dc 100644 --- a/designs/leon3-digilent-xc3s1000/ahbrom.vhd +++ b/designs/leon3-digilent-xc3s1000/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-digilent-xc3s1000/config.help b/designs/leon3-digilent-xc3s1000/config.help index a00172ae..ebf7cf80 100644 --- a/designs/leon3-digilent-xc3s1000/config.help +++ b/designs/leon3-digilent-xc3s1000/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-digilent-xc3s1000/lconfig.tk b/designs/leon3-digilent-xc3s1000/lconfig.tk index 1d11f56e..62d15276 100755 --- a/designs/leon3-digilent-xc3s1000/lconfig.tk +++ b/designs/leon3-digilent-xc3s1000/lconfig.tk @@ -752,7 +752,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -762,7 +763,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -905,8 +908,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -925,6 +930,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1014,9 +1023,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1070,10 +1080,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1119,14 +1130,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1199,13 +1212,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1245,22 +1266,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1317,21 +1606,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1378,36 +1667,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1415,48 +1705,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1512,27 +1803,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1573,16 +1864,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1591,34 +1883,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1675,92 +1968,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1768,18 +2061,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1820,52 +2113,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1873,162 +2167,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2084,45 +2379,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2162,18 +2459,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2181,55 +2479,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2286,24 +2589,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2343,17 +2646,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2361,37 +2665,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2447,16 +2752,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2504,9 +2816,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2528,21 +2838,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -3310,16 +3625,16 @@ proc menu16 {w title} { hex $w.config.f 16 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 16 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 16 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_26 - minimenu $w.config.f 16 4 "AHB RAM size (Kbyte)" tmpvar_26 CONFIG_AHBRAM_SZ1 + global tmpvar_28 + minimenu $w.config.f 16 4 "AHB RAM size (Kbyte)" tmpvar_28 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_26 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_26 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 16 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3381,21 +3696,21 @@ proc update_define_menu16 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_26 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_28 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_26 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_28 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3454,15 +3769,15 @@ proc menu17 {w title} { bool $w.config.f 17 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_27 - minimenu $w.config.f 17 1 "UART1 FIFO depth" tmpvar_27 CONFIG_UA1_FIFO1 + global tmpvar_29 + minimenu $w.config.f 17 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 17 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 17 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3551,19 +3866,19 @@ proc update_menu17 {} { proc update_define_menu17 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_27 + global tmpvar_29 global CONFIG_UA1_FIFO1 - if {$tmpvar_27 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_27 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_27 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_27 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_27 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_27 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -3841,7 +4156,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -3851,6 +4167,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -3875,6 +4193,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -3887,14 +4206,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -3907,27 +4231,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -3937,17 +4261,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -3959,12 +4283,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -3974,10 +4298,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -3988,7 +4312,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4000,26 +4324,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4027,27 +4353,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4080,7 +4410,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4090,7 +4420,7 @@ set CONFIG_AHBRAM_SZ32 0 set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_UART1_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4170,7 +4500,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4180,6 +4511,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4218,6 +4551,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4230,9 +4564,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4246,239 +4581,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4550,28 +5035,28 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_26 + global tmpvar_28 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "UART, timer, I/O port and interrupt controller" global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} + if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } + if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } + if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } + if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } + if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } + if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4651,7 +5136,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4661,6 +5147,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4679,8 +5167,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -4763,11 +5256,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -4788,6 +5283,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0 global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0 global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0 @@ -4877,8 +5376,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -4897,6 +5398,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -4937,300 +5442,326 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "4" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_26 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_28 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_26 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_28 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_26 "64" } - global tmpvar_27 - set tmpvar_27 "1" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_28 "64" } + global tmpvar_29 + set tmpvar_29 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } } diff --git a/designs/leon3-digilent-xc3s1000/leon3mp.vhd b/designs/leon3-digilent-xc3s1000/leon3mp.vhd index f461e454..220a031e 100644 --- a/designs/leon3-digilent-xc3s1000/leon3mp.vhd +++ b/designs/leon3-digilent-xc3s1000/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-digilent-xc3s1000/testbench.vhd b/designs/leon3-digilent-xc3s1000/testbench.vhd index d5a646e7..ab7786fb 100644 --- a/designs/leon3-digilent-xc3s1000/testbench.vhd +++ b/designs/leon3-digilent-xc3s1000/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-digilent-xc3s1000/tkconfig.h b/designs/leon3-digilent-xc3s1000/tkconfig.h index 93aafaf9..e1ad096a 100644 --- a/designs/leon3-digilent-xc3s1000/tkconfig.h +++ b/designs/leon3-digilent-xc3s1000/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-digilent-xc3s1000/vga_clkgen.vhd b/designs/leon3-digilent-xc3s1000/vga_clkgen.vhd index 6f8a74d3..54adefa8 100644 --- a/designs/leon3-digilent-xc3s1000/vga_clkgen.vhd +++ b/designs/leon3-digilent-xc3s1000/vga_clkgen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-digilent-xc3s1600e/Makefile b/designs/leon3-digilent-xc3s1600e/Makefile index 4368a002..1ab67f58 100644 --- a/designs/leon3-digilent-xc3s1600e/Makefile +++ b/designs/leon3-digilent-xc3s1600e/Makefile @@ -23,9 +23,9 @@ CLEAN=soft-clean TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann opencores usbhc spw + tmtc openchip ihp opencores usbhc spw DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - usb grusbhc spacewire ata synplicity haps coremp7 hcan leon4 leon4b64 \ + usb grusbhc spacewire synplicity hcan leon4 leon4v0 \ l2cache slink ascs pwm hynix gr1553b iommu FILESKIP = grcan.vhd i2cmst.vhd diff --git a/designs/leon3-digilent-xc3s1600e/ahbrom.vhd b/designs/leon3-digilent-xc3s1600e/ahbrom.vhd index a61a155a..2091c411 100644 --- a/designs/leon3-digilent-xc3s1600e/ahbrom.vhd +++ b/designs/leon3-digilent-xc3s1600e/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-digilent-xc3s1600e/config.help b/designs/leon3-digilent-xc3s1600e/config.help index ff755148..47476586 100644 --- a/designs/leon3-digilent-xc3s1600e/config.help +++ b/designs/leon3-digilent-xc3s1600e/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-digilent-xc3s1600e/lconfig.tk b/designs/leon3-digilent-xc3s1600e/lconfig.tk index b4da86fa..0bc5a5f8 100755 --- a/designs/leon3-digilent-xc3s1600e/lconfig.tk +++ b/designs/leon3-digilent-xc3s1600e/lconfig.tk @@ -754,7 +754,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -764,7 +765,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -907,8 +910,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -927,6 +932,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1016,9 +1025,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1072,10 +1082,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1121,14 +1132,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1201,13 +1214,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1247,22 +1268,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1319,21 +1608,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1380,36 +1669,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1417,48 +1707,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1514,27 +1805,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1575,16 +1866,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1593,34 +1885,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1677,92 +1970,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1770,18 +2063,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1822,52 +2115,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1875,162 +2169,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2086,45 +2381,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2164,18 +2461,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2183,55 +2481,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2288,24 +2591,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2345,17 +2648,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2363,37 +2667,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2449,16 +2754,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2506,9 +2818,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2530,21 +2840,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2853,14 +3168,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2934,17 +3249,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3520,16 +3835,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3591,21 +3906,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3665,14 +3980,14 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 18 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3726,17 +4041,17 @@ proc update_define_menu18 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3792,15 +4107,15 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 19 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 19 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3889,19 +4204,19 @@ proc update_menu19 {} { proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4179,7 +4494,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4189,6 +4505,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4213,6 +4531,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4225,14 +4544,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4245,27 +4569,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4275,17 +4599,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4297,12 +4621,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4312,10 +4636,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4326,7 +4650,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4338,26 +4662,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4365,27 +4691,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4406,7 +4736,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4438,7 +4768,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4449,14 +4779,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4536,7 +4866,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4546,6 +4877,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4584,6 +4917,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4596,9 +4930,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4612,239 +4947,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4889,13 +5374,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -4960,38 +5445,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5071,7 +5556,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5081,6 +5567,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5099,8 +5587,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5183,11 +5676,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5208,6 +5703,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5307,8 +5806,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5327,6 +5828,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5367,324 +5872,350 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-digilent-xc3s1600e/leon3mp.vhd b/designs/leon3-digilent-xc3s1600e/leon3mp.vhd index e487cf97..5576b787 100644 --- a/designs/leon3-digilent-xc3s1600e/leon3mp.vhd +++ b/designs/leon3-digilent-xc3s1600e/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-digilent-xc3s1600e/testbench.vhd b/designs/leon3-digilent-xc3s1600e/testbench.vhd index a9653dea..5eb23b4c 100644 --- a/designs/leon3-digilent-xc3s1600e/testbench.vhd +++ b/designs/leon3-digilent-xc3s1600e/testbench.vhd @@ -1,6 +1,10 @@ ----------------------------------------------------------------------------- -- LEON3 Demonstration design test bench -- Copyright (C) 2004 Jiri Gaisler, Gaisler Research +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -11,6 +15,10 @@ -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ -- modified by Thomas Ameseder, Gleichmann Electronics 2004, 2005 to -- support the use of an external AHB slave and different HPE board versions diff --git a/designs/leon3-digilent-xc3s1600e/tkconfig.h b/designs/leon3-digilent-xc3s1600e/tkconfig.h index ece231a4..bbf7c9b6 100644 --- a/designs/leon3-digilent-xc3s1600e/tkconfig.h +++ b/designs/leon3-digilent-xc3s1600e/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-ge-hpe-mini-lattice/.config b/designs/leon3-digilent-xc7z020/.config old mode 100755 new mode 100644 similarity index 66% rename from designs/leon3-ge-hpe-mini-lattice/.config rename to designs/leon3-digilent-xc7z020/.config index aec65dac..36215fbc --- a/designs/leon3-ge-hpe-mini-lattice/.config +++ b/designs/leon3-digilent-xc7z020/.config @@ -31,7 +31,7 @@ # CONFIG_SYN_EASIC45 is not set # CONFIG_SYN_IHP25 is not set # CONFIG_SYN_IHP25RH is not set -CONFIG_SYN_LATTICE=y +# CONFIG_SYN_LATTICE is not set # CONFIG_SYN_ECLIPSE is not set # CONFIG_SYN_PEREGRINE is not set # CONFIG_SYN_RH_LIB18T is not set @@ -40,7 +40,8 @@ CONFIG_SYN_LATTICE=y # CONFIG_SYN_TM65GPLUS is not set # CONFIG_SYN_TSMC90 is not set # CONFIG_SYN_UMC is not set -# CONFIG_SYN_SPARTAN2 is not set +# CONFIG_SYN_ARTIX7 is not set +# CONFIG_SYN_KINTEX7 is not set # CONFIG_SYN_SPARTAN3 is not set # CONFIG_SYN_SPARTAN3E is not set # CONFIG_SYN_SPARTAN6 is not set @@ -50,8 +51,10 @@ CONFIG_SYN_LATTICE=y # CONFIG_SYN_VIRTEX4 is not set # CONFIG_SYN_VIRTEX5 is not set # CONFIG_SYN_VIRTEX6 is not set -CONFIG_SYN_INFER_RAM=y -CONFIG_SYN_INFER_PADS=y +# CONFIG_SYN_VIRTEX7 is not set +CONFIG_SYN_ZYNQ7000=y +# CONFIG_SYN_INFER_RAM is not set +# CONFIG_SYN_INFER_PADS is not set # CONFIG_SYN_NO_ASYNC is not set # CONFIG_SYN_SCAN is not set @@ -62,36 +65,49 @@ CONFIG_SYN_INFER_PADS=y # CONFIG_CLK_HCLKBUF is not set # CONFIG_CLK_UT130HBD is not set # CONFIG_CLK_ALTDLL is not set -CONFIG_CLK_LATDLL=y +# CONFIG_CLK_LATDLL is not set # CONFIG_CLK_PRO3PLL is not set # CONFIG_CLK_PRO3EPLL is not set # CONFIG_CLK_PRO3LPLL is not set # CONFIG_CLK_FUSPLL is not set # CONFIG_CLK_LIB18T is not set # CONFIG_CLK_RHUMC is not set +CONFIG_CLK_CLKPLLE2=y # CONFIG_CLK_CLKDLL is not set # CONFIG_CLK_DCM is not set -CONFIG_CLK_MUL=1 -CONFIG_CLK_DIV=1 +CONFIG_CLK_MUL=8 +CONFIG_CLK_DIV=32 # CONFIG_PCI_SYSCLK is not set -CONFIG_LEON3=y -CONFIG_PROC_NUM=1 # # Processor # +CONFIG_LEON3=y +CONFIG_PROC_NUM=1 +# CONFIG_LEON3_MIN is not set +# CONFIG_LEON3_GP is not set +# CONFIG_LEON3_HP is not set +CONFIG_LEON3_CUSTOM=y # # Integer unit # CONFIG_IU_NWINDOWS=8 -# CONFIG_IU_V8MULDIV is not set -# CONFIG_IU_BP is not set -# CONFIG_IU_SVT is not set +CONFIG_IU_V8MULDIV=y +# CONFIG_IU_MUL_LATENCY_2 is not set +# CONFIG_IU_MUL_LATENCY_4 is not set +CONFIG_IU_MUL_LATENCY_5=y +# CONFIG_IU_MUL_MAC is not set +CONFIG_IU_MUL_INFERRED=y +# CONFIG_IU_MUL_MODGEN is not set +# CONFIG_IU_MUL_TECHSPEC is not set +# CONFIG_IU_MUL_DW is not set +CONFIG_IU_BP=y +CONFIG_IU_SVT=y # CONFIG_NOTAG is not set CONFIG_IU_LDELAY=2 -CONFIG_IU_WATCHPOINTS=0 -# CONFIG_PWD is not set +CONFIG_IU_WATCHPOINTS=2 +CONFIG_PWD=y CONFIG_IU_RSTADDR=00000 # @@ -103,24 +119,30 @@ CONFIG_IU_RSTADDR=00000 # Cache system # CONFIG_ICACHE_ENABLE=y -CONFIG_ICACHE_ASSO1=y -# CONFIG_ICACHE_ASSO2 is not set +# CONFIG_ICACHE_ASSO1 is not set +CONFIG_ICACHE_ASSO2=y # CONFIG_ICACHE_ASSO3 is not set # CONFIG_ICACHE_ASSO4 is not set # CONFIG_ICACHE_SZ1 is not set # CONFIG_ICACHE_SZ2 is not set -# CONFIG_ICACHE_SZ4 is not set -CONFIG_ICACHE_SZ8=y +CONFIG_ICACHE_SZ4=y +# CONFIG_ICACHE_SZ8 is not set # CONFIG_ICACHE_SZ16 is not set # CONFIG_ICACHE_SZ32 is not set # CONFIG_ICACHE_SZ64 is not set # CONFIG_ICACHE_SZ128 is not set # CONFIG_ICACHE_SZ256 is not set -# CONFIG_ICACHE_LZ16 is not set -CONFIG_ICACHE_LZ32=y +CONFIG_ICACHE_LZ16=y +# CONFIG_ICACHE_LZ32 is not set +CONFIG_ICACHE_ALGORND=y +# CONFIG_ICACHE_ALGODIR is not set +# CONFIG_ICACHE_ALGOLRR is not set +# CONFIG_ICACHE_ALGOLRU is not set +# CONFIG_ICACHE_LOCK is not set +# CONFIG_ICACHE_LRAM is not set CONFIG_DCACHE_ENABLE=y -CONFIG_DCACHE_ASSO1=y -# CONFIG_DCACHE_ASSO2 is not set +# CONFIG_DCACHE_ASSO1 is not set +CONFIG_DCACHE_ASSO2=y # CONFIG_DCACHE_ASSO3 is not set # CONFIG_DCACHE_ASSO4 is not set # CONFIG_DCACHE_SZ1 is not set @@ -134,35 +156,21 @@ CONFIG_DCACHE_SZ4=y # CONFIG_DCACHE_SZ256 is not set CONFIG_DCACHE_LZ16=y # CONFIG_DCACHE_LZ32 is not set +CONFIG_DCACHE_ALGORND=y +# CONFIG_DCACHE_ALGODIR is not set +# CONFIG_DCACHE_ALGOLRR is not set +# CONFIG_DCACHE_ALGOLRU is not set +# CONFIG_DCACHE_LOCK is not set CONFIG_DCACHE_SNOOP=y CONFIG_DCACHE_SNOOP_FAST=y CONFIG_DCACHE_SNOOP_SEPTAG=y CONFIG_CACHE_FIXED=0 +# CONFIG_DCACHE_LRAM is not set # # MMU # -CONFIG_MMU_ENABLE=y -# CONFIG_MMU_COMBINED is not set -CONFIG_MMU_SPLIT=y -CONFIG_MMU_REPARRAY=y -# CONFIG_MMU_REPINCREMENT is not set -# CONFIG_MMU_I2 is not set -# CONFIG_MMU_I4 is not set -CONFIG_MMU_I8=y -# CONFIG_MMU_I16 is not set -# CONFIG_MMU_I32 is not set -# CONFIG_MMU_D2 is not set -# CONFIG_MMU_D4 is not set -CONFIG_MMU_D8=y -# CONFIG_MMU_D16 is not set -# CONFIG_MMU_D32 is not set -CONFIG_MMU_FASTWB=y -CONFIG_MMU_PAGE_4K=y -# CONFIG_MMU_PAGE_8K is not set -# CONFIG_MMU_PAGE_16K is not set -# CONFIG_MMU_PAGE_32K is not set -# CONFIG_MMU_PAGE_PROG is not set +# CONFIG_MMU_ENABLE is not set # # Debug Support Unit @@ -196,7 +204,7 @@ CONFIG_DSU_ATRACESZ1=y # AMBA configuration # CONFIG_AHB_DEFMST=0 -CONFIG_AHB_RROBIN=y +# CONFIG_AHB_RROBIN is not set # CONFIG_AHB_SPLIT is not set # CONFIG_AHB_FPNPEN is not set CONFIG_AHB_IOADDR=FFF @@ -207,77 +215,39 @@ CONFIG_APB_HADDR=800 # # Debug Link # -CONFIG_DSU_UART=y -CONFIG_DSU_ETH=y -# CONFIG_DSU_ETHSZ1 is not set -CONFIG_DSU_ETHSZ2=y -# CONFIG_DSU_ETHSZ4 is not set -# CONFIG_DSU_ETHSZ8 is not set -# CONFIG_DSU_ETHSZ16 is not set -CONFIG_DSU_IPMSB=C0A8 -CONFIG_DSU_IPLSB=0040 -CONFIG_DSU_ETHMSB=020000 -CONFIG_DSU_ETHLSB=000020 -# CONFIG_DSU_ETH_PROG is not set -# CONFIG_DSU_ETH_DIS is not set +CONFIG_DSU_JTAG=y # # Peripherals # # -# Memory controllers -# - -# -# 8/32-bit PROM/SRAM controller -# -# CONFIG_SRCTRL is not set - -# -# Leon2 memory controller -# -CONFIG_MCTRL_LEON2=y -# CONFIG_MCTRL_8BIT is not set -# CONFIG_MCTRL_16BIT is not set -# CONFIG_MCTRL_5CS is not set -# CONFIG_MCTRL_SDRAM is not set - -# -# Multi-port DDR controller +# Memory controller # -# CONFIG_DDRMP is not set +# CONFIG_AHBSTAT_ENABLE is not set # # On-chip RAM/ROM # # CONFIG_AHBROM_ENABLE is not set -# CONFIG_AHBRAM_ENABLE is not set - -# -# Ethernet -# -CONFIG_GRETH_ENABLE=y -# CONFIG_GRETH_GIGA is not set -# CONFIG_GRETH_FIFO4 is not set -# CONFIG_GRETH_FIFO8 is not set -# CONFIG_GRETH_FIFO16 is not set -CONFIG_GRETH_FIFO32=y -# CONFIG_GRETH_FIFO64 is not set - -# -# ATA -# -# CONFIG_ATA_ENABLE is not set +CONFIG_AHBRAM_ENABLE=y +CONFIG_AHBRAM_SZ1=y +# CONFIG_AHBRAM_SZ2 is not set +# CONFIG_AHBRAM_SZ4 is not set +# CONFIG_AHBRAM_SZ8 is not set +# CONFIG_AHBRAM_SZ16 is not set +# CONFIG_AHBRAM_SZ32 is not set +# CONFIG_AHBRAM_SZ64 is not set +CONFIG_AHBRAM_START=A00 # # UARTs, timers and irq control # CONFIG_UART1_ENABLE=y -CONFIG_UA1_FIFO1=y +# CONFIG_UA1_FIFO1 is not set # CONFIG_UA1_FIFO2 is not set # CONFIG_UA1_FIFO4 is not set -# CONFIG_UA1_FIFO8 is not set +CONFIG_UA1_FIFO8=y # CONFIG_UA1_FIFO16 is not set # CONFIG_UA1_FIFO32 is not set CONFIG_IRQ3_ENABLE=y @@ -287,14 +257,11 @@ CONFIG_GPT_NTIM=2 CONFIG_GPT_SW=8 CONFIG_GPT_TW=32 CONFIG_GPT_IRQ=8 -CONFIG_GPT_SEPIRQ=y +# CONFIG_GPT_SEPIRQ is not set # CONFIG_GPT_WDOGEN is not set - -# -# Keybord and VGA interface -# -# CONFIG_KBD_ENABLE is not set -CONFIG_VGA_ENABLE=y +CONFIG_GRGPIO_ENABLE=y +CONFIG_GRGPIO_WIDTH=16 +CONFIG_GRGPIO_IMASK=0000 # # VHDL Debugging diff --git a/designs/leon3-digilent-xc7z020/Makefile b/designs/leon3-digilent-xc7z020/Makefile new file mode 100644 index 00000000..3a9b3b65 --- /dev/null +++ b/designs/leon3-digilent-xc7z020/Makefile @@ -0,0 +1,59 @@ +include .config + +GRLIB=../.. +TOP=leon3mp +BOARD=digilent-zedboard-xc7z020 +DESIGN=leon3-zedboard-xc7z020 +include $(GRLIB)/boards/$(BOARD)/Makefile.inc +DEVICE=$(PART)$(PACKAGE)-$(SPEED) +UCF_PLANAHEAD=$(GRLIB)/boards/$(BOARD)/$(BOARD).ucf + +VHDLSYNFILES= \ + config.vhd ahbrom.vhd leon3mp.vhd + +VHDLSIMFILES= \ + testbench.vhd leon3_zedboard_stub_sim.vhd + +SIMTOP=testbench +BITGEN=$(GRLIB)/boards/$(BOARD)/default.ut +CLEAN=soft-clean +VCOMOPT=-explicit +VLOGOPT= +define+1Gb +define+sg125 +define+x8 +VSIMOPT= -t ps -novopt +notimingchecks $(SIMTOP) +TECHLIBS = secureip unisim + +BOPT=-DRAMSTART=0x00000000 +LDFLAGS=-Wl,-msparcleon0 + +LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ + tmtc openchip ihp usbhc spw gsi cypress hynix \ + spansion leon4 leon4v0 secureip +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci ambatest can \ + usb grusbhc spacewire ascs slink spi hcan \ + leon4 leon4v0 l2cache pwm gr1553b iommu ac97 secureip +FILESKIP = grcan.vhd ddr2.v mobile_ddr.v + +include $(GRLIB)/bin/Makefile +include $(GRLIB)/software/leon3/Makefile + +################## project specific targets ########################## + +all: help-local + +help-local: help + @echo + @echo " -----------------------------------------------------------------------------------------" + @echo " design specific targets:" + @echo + @echo " make program-zedboard : Load Leon3 Design and start clocks" + @echo + +program-zedboard: + @echo "fpga -f ./planAhead/$(DESIGN)/$(DESIGN).runs/impl_1/$(TOP).bit" > ./xmd.ini + @echo "connect arm hw" >> ./xmd.ini + @echo "source ./planAhead/$(DESIGN)/$(DESIGN).sdk/SDK/SDK_Export/hw/ps7_init.tcl" >> ./xmd.ini + @echo "ps7_init" >> ./xmd.ini + @echo "init_user" >> ./xmd.ini + @echo "exit" >> ./xmd.ini + xmd + diff --git a/designs/leon3-digilent-xc7z020/README.txt b/designs/leon3-digilent-xc7z020/README.txt new file mode 100644 index 00000000..25117c13 --- /dev/null +++ b/designs/leon3-digilent-xc7z020/README.txt @@ -0,0 +1,172 @@ +This leon3 design is tailored to the Digilent Zedboard board + +www.zedboard.org + +Simulation and synthesis +------------------------ + +please note that no system test or simulation enviroment are present at the moment +but it should be possible to compile and load the design into modelsim + +To build and load the design into the simulator: + + make vsim + make vsim-launch + +Synthesis will ONLY work with PlanAhead 14.2 installed or newer, and +the XILINX variable properly set in the shell. To synthesize the design, do + + make planAhead + +and then + + make vivado-zedboard + +to program the FPGA. + +Simulation options +------------------ + +N/A + +Design specifics +---------------- + +* Synthesis should be done using PlanAhead 14.2 or newer + +* The Leon3 processor is not able to read/write from/to external + DDR3 interface at the moment. (This will be fixed in future + releases) + +* System reset is mapped to the CPU RESET button + +* DSU break is mapped to GPIO east button + +* LED 0 indicates processor in debug mode + +* LED 1 indicates processor in error mode, execution halted + +* LED 2 UART1 RX + +* LED 3 UART1 TX + +* LED 4 GPIO 11 + +* LED 5 GPIO 12 +5 +* LED 6 GPIO 13 + +* LED 7 GPIO 14 + +* Always program the Zedboard via the make target 'program-zedboard' + +$ make program-zedboard +xmd +Xilinx Microprocessor Debugger (XMD) Engine +Xilinx EDK 14.3 Build EDK_P.40xd +Copyright (c) 1995-2012 Xilinx, Inc. All rights reserved. + +XMD% +Programming Bitstream -- ./planAhead/leon3-zedboard-xc7z020/leon3-zedboard-xc7z020.runs/impl_1/leon3mp.bit +Fpga Programming Progress ............10.........20.........30.........40.........50.........60.........70.........80.........90........Done +Successfully downloaded bit file. + +JTAG chain configuration +-------------------------------------------------- +Device ID Code IR Length Part Name + 1 4ba00477 4 Cortex-A9 + 2 03727093 6 XC7Z020 + + +JTAG chain configuration +-------------------------------------------------- +Device ID Code IR Length Part Name + 1 4ba00477 4 Cortex-A9 + 2 03727093 6 XC7Z020 + +CortexA9 Processor Configuration +------------------------------------- +Version.............................0x00000003 +User ID.............................0x00000000 +No of PC Breakpoints................6 +No of Addr/Data Watchpoints.........1 + +Connected to "arm" target. id = 64 +Starting GDB server for "arm" target (id = 64) at TCP port no 1234 +Info: Enabling level shifters and clearing fabric port resets + +* The JTAG DSU interface is enabled and accesible via the JTAG port. + Start grmon with -xilusb to connect. + +* Output from GRMON is: + + grmon -xilusb + + GRMON2 LEON debug monitor v2.0.30-194-g937ff0a internal version + + Copyright (C) 2012 Aeroflex Gaisler - All rights reserved. + For latest updates, go to http://www.gaisler.com/ + Comments or bug-reports to support@gaisler.com + + +Parsing -xilusb +Xilusb: Cable type/rev : 0x3 + JTAG chain (2): xc7x020 zynq7000_arm_dap + +Commands missing help: + debug + + GRLIB build version: 4120 + Detected frequency: 50 MHz + + Component Vendor + LEON3 SPARC V8 Processor Aeroflex Gaisler + JTAG Debug Link Aeroflex Gaisler + AHB/APB Bridge Aeroflex Gaisler + LEON3 Debug Support Unit Aeroflex Gaisler + Single-port AHB SRAM module Aeroflex Gaisler + Xilinx MIG DDR3 Controller Aeroflex Gaisler + Single-port AHB SRAM module Aeroflex Gaisler + Generic UART Aeroflex Gaisler + Multi-processor Interrupt Ctrl. Aeroflex Gaisler + Modular Timer Unit Aeroflex Gaisler + General Purpose I/O port Aeroflex Gaisler + + Use command 'info sys' to print a detailed report of attached cores + +grmon2> info sys + cpu0 Aeroflex Gaisler LEON3 SPARC V8 Processor + AHB Master 0 + ahbjtag0 Aeroflex Gaisler JTAG Debug Link + AHB Master 1 + apbmst0 Aeroflex Gaisler AHB/APB Bridge + AHB: 80000000 - 80100000 + dsu0 Aeroflex Gaisler LEON3 Debug Support Unit + AHB: 90000000 - A0000000 + AHB trace: 64 lines, 32-bit bus + CPU0: win 8, hwbp 2, V8 mul/div, lddel 2 + stack pointer 0x200003f0 + icache 2 * 4 kB, 16 B/line rnd + dcache 2 * 4 kB, 16 B/line rnd + ahbram0 Aeroflex Gaisler Single-port AHB SRAM module + AHB: 20000000 - 20100000 + 32-bit static ram: 1 kB @ 0x20000000 + adev5 Aeroflex Gaisler Xilinx MIG DDR3 Controller + AHB: 00000000 - 08000000 + ahbram1 Aeroflex Gaisler Single-port AHB SRAM module + AHB: A0000000 - A0100000 + 32-bit static ram: 1 kB @ 0xa0000000 + uart0 Aeroflex Gaisler Generic UART + APB: 80000100 - 80000200 + IRQ: 2 + Baudrate 38343 + irqmp0 Aeroflex Gaisler Multi-processor Interrupt Ctrl. + APB: 80000200 - 80000300 + gptimer0 Aeroflex Gaisler Modular Timer Unit + APB: 80000300 - 80000400 + IRQ: 8 + 8-bit scalar, 2 * 32-bit timers, divisor 50 + gpio0 Aeroflex Gaisler General Purpose I/O port + APB: 80000A00 - 80000B00 + +grmon2> diff --git a/designs/basic_passthru/ahbrom.vhd b/designs/leon3-digilent-xc7z020/ahbrom.vhd similarity index 96% rename from designs/basic_passthru/ahbrom.vhd rename to designs/leon3-digilent-xc7z020/ahbrom.vhd index 5040c91a..ac26c7b2 100644 --- a/designs/basic_passthru/ahbrom.vhd +++ b/designs/leon3-digilent-xc7z020/ahbrom.vhd @@ -1,7 +1,7 @@ ---------------------------------------------------------------------------- -- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2010 Aeroflex Gaisler +-- Copyright (C) 2009 Aeroflex Gaisler ---------------------------------------------------------------------------- -- Entity: ahbrom -- File: ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; @@ -182,10 +181,10 @@ begin when 16#00063# => romdata <= X"12800015"; when 16#00064# => romdata <= X"03200000"; when 16#00065# => romdata <= X"05040E00"; - when 16#00066# => romdata <= X"8410A1FF"; + when 16#00066# => romdata <= X"8410A033"; when 16#00067# => romdata <= X"C4204000"; - when 16#00068# => romdata <= X"0539AE03"; - when 16#00069# => romdata <= X"8410A265"; + when 16#00068# => romdata <= X"0539AE1B"; + when 16#00069# => romdata <= X"8410A260"; when 16#0006A# => romdata <= X"C4206004"; when 16#0006B# => romdata <= X"050003FC"; when 16#0006C# => romdata <= X"C4206008"; @@ -198,7 +197,7 @@ begin when 16#00073# => romdata <= X"12800005"; when 16#00074# => romdata <= X"03200000"; when 16#00075# => romdata <= X"0539A81B"; - when 16#00076# => romdata <= X"8410A265"; + when 16#00076# => romdata <= X"8410A260"; when 16#00077# => romdata <= X"C4204000"; when 16#00078# => romdata <= X"05000080"; when 16#00079# => romdata <= X"82100000"; @@ -208,7 +207,7 @@ begin when 16#0007D# => romdata <= X"82004002"; when 16#0007E# => romdata <= X"10BFFFFC"; when 16#0007F# => romdata <= X"8620E001"; - when 16#00080# => romdata <= X"3D103FFF"; + when 16#00080# => romdata <= X"3D1003FF"; when 16#00081# => romdata <= X"BC17A3E0"; when 16#00082# => romdata <= X"BC278001"; when 16#00083# => romdata <= X"9C27A060"; diff --git a/designs/leon3-lattice-latticeECP3/config.help b/designs/leon3-digilent-xc7z020/config.help similarity index 86% rename from designs/leon3-lattice-latticeECP3/config.help rename to designs/leon3-digilent-xc7z020/config.help index 82dd4b1a..2f7bb3b7 100644 --- a/designs/leon3-lattice-latticeECP3/config.help +++ b/designs/leon3-digilent-xc7z020/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ @@ -646,11 +679,6 @@ CONFIG_AHB_DTRACE Say yes here to write a trace of all AHB transfers to the simulator console. Has not impact on final netlist. -DSU enable -CONFIG_DSU_UART - Say Y to enable the AHB uart (serial-to-AHB). This is the most - commonly used debug communication link. - JTAG Enable CONFIG_DSU_JTAG Say Y to enable the JTAG debug link (JTAG-to-AHB). Debugging is done @@ -699,81 +727,16 @@ Programmable MAC/IP address CONFIG_DSU_ETH_PROG Say Y to make the LSB 4 bits of the EDCL MAC and IP address configurable using the ethi.edcladdr inputs. -Leon2 memory controller -CONFIG_MCTRL_LEON2 - Say Y here to enable the LEON2 memory controller. The controller - can access PROM, I/O, SRAM and SDRAM. The bus width for PROM - and SRAM is programmable to 8-, 16- or 32-bits. - -8-bit memory support -CONFIG_MCTRL_8BIT - If you say Y here, the PROM/SRAM memory controller will support - 8-bit mode, i.e. operate from 8-bit devices as if they were 32-bit. - Say N to save a few hundred gates. - -16-bit memory support -CONFIG_MCTRL_16BIT - If you say Y here, the PROM/SRAM memory controller will support - 16-bit mode, i.e. operate from 16-bit devices as if they were 32-bit. - Say N to save a few hundred gates. - -Write strobe feedback -CONFIG_MCTRL_WFB - If you say Y here, the PROM/SRAM write strobes (WRITEN, WEN) will - be used to enable the data bus drivers during write cycles. This - will guarantee that the data is still valid on the rising edge of - the write strobe. If you say N, the write strobes and the data bus - drivers will be clocked on the rising edge, potentially creating - a hold time problem in external memory or I/O. However, in all - practical cases, there is enough capacitance in the data bus lines - to keep the value stable for a few (many?) nano-seconds after the - buffers have been disabled, making it safe to say N and remove a - combinational path in the netlist that might be difficult to - analyze. - -Write strobe feedback -CONFIG_MCTRL_5CS - If you say Y here, the 5th (RAMSN[4]) SRAM chip select signal will - be enabled. If you don't intend to use it, say N and save some gates. - -SDRAM controller enable -CONFIG_MCTRL_SDRAM - Say Y here to enabled the PC100/PC133 SDRAM controller. If you don't - intend to use SDRAM, say N and save about 1 kgates. - -SDRAM controller inverted clock -CONFIG_MCTRL_SDRAM_INVCLK - If you say Y here, the SDRAM controller output signals will be delayed - with 1/2 clock in respect to the SDRAM clock. This will allow the used - of an SDRAM clock which in not strictly in phase with the internal - clock. This option will limit the SDRAM frequency to 40 - 50 MHz. - - On FPGA targets without SDRAM clock synchronizations through PLL/DLL, - say Y. On ASIC targets, say N and tell your foundry to balance the - SDRAM clock output. +AHB status register +CONFIG_AHBSTAT_ENABLE + Say Y here to enable the AHB status register (AHBSTAT IP). + The register will latch the AHB address and master index when + an error response is returned by any AHB slave. SDRAM separate address buses -CONFIG_MCTRL_SDRAM_SEPBUS - Say Y here if your SDRAM is connected through separate address - and data buses (SA & SD). This is the case on the GR-CPCI-XC2V6000 - board, but not on the GR-PCI-XC2V3000 or Avnet XCV1500E boards. - -64-bit data bus -CONFIG_MCTRL_SDRAM_BUS64 - Say Y here to enable 64-bit SDRAM data bus. - -Page burst enable -CONFIG_MCTRL_PAGE - Say Y here to enable SDRAM page burst operation. This will implement - read operations using page bursts rather than 8-word bursts and save - about 500 gates (100 LUTs). Note that not all SDRAM supports page - burst, so use this option with care. - -Programmable page burst enable -CONFIG_MCTRL_PROGPAGE - Say Y here to enable programmable SDRAM page burst operation. This - will allow to dynamically enable/disable page burst by setting - bit 17 in MCFG2. +CONFIG_AHBSTAT_NFTSLV + The AHB status register can also latch the AHB address on an external + input. Select here how many of such inputs are required. On-chip rom CONFIG_AHBROM_ENABLE @@ -821,24 +784,6 @@ CONFIG_AHBRAM_START a 1 Mbyte slot at the selected address. Default is A00, corresponding to AHB address 0xA0000000. -Gaisler Ethernet MAC enable -CONFIG_GRETH_ENABLE - Say Y here to enable the Gaisler Research Ethernet MAC . The MAC has - one AHB master interface to read and write packets to memory, and one - APB slave interface for accessing the control registers. - -Gaisler Ethernet 1G MAC enable -CONFIG_GRETH_GIGA - Say Y here to enable the Gaisler Research 1000 Mbit Ethernet MAC . - The 1G MAC is only available in the commercial version of GRLIB, - so do NOT enable it if you are using the GPL version. - -CONFIG_GRETH_FIFO4 - Set the depth of the receive and transmit FIFOs in the MAC core. - The MAC core will perform AHB burst read/writes with half the - size of the FIFO depth. - - UART1 enable CONFIG_UART1_ENABLE Say Y here to enable UART1, or the console UART. This is needed to @@ -916,6 +861,22 @@ Watchdog time-out value CONFIG_GPT_WDOG This value will be loaded in the watchdog timer at reset. +GPIO port +CONFIG_GRGPIO_ENABLE + Say Y here to enable a general purpose I/O port. The port can be + configured from 1 - 32 bits, whith each port signal individually + programmable as input or output. The port signals can also serve + as interrupt inputs. + +GPIO port witdth +CONFIG_GRGPIO_WIDTH + Number of bits in the I/O port. Must be in the range of 1 - 32. + +GPIO interrupt mask +CONFIG_GRGPIO_IMASK + The I/O port interrupt mask defines which bits in the I/O port + should be able to create an interrupt. + UART debugging CONFIG_DEBUG_UART During simulation, the output from the UARTs is printed on the diff --git a/designs/leon3-lattice-latticeECP3/config.in b/designs/leon3-digilent-xc7z020/config.in similarity index 75% rename from designs/leon3-lattice-latticeECP3/config.in rename to designs/leon3-digilent-xc7z020/config.in index 247c1911..9a79b8f4 100644 --- a/designs/leon3-lattice-latticeECP3/config.in +++ b/designs/leon3-digilent-xc7z020/config.in @@ -8,10 +8,10 @@ # #define_bool CONFIG_MCTRL_RMW y -define_bool CONFIG_LEON3FT_PRESENT y -define_bool CONFIG_HAS_SHARED_GRFPU y +#define_bool CONFIG_LEON3FT_PRESENT y +#define_bool CONFIG_HAS_SHARED_GRFPU y -mainmenu_name "LEON3MP LatticeECP3 Versa Design Configuration" +mainmenu_name "LEON3MP Zedboard Design Configuration" mainmenu_option next_comment comment 'Synthesis ' @@ -28,7 +28,6 @@ source lib/grlib/amba/amba.in mainmenu_option next_comment comment 'Debug Link ' - source lib/gaisler/uart/dcom.in source lib/gaisler/jtag/jtag.in source lib/gaisler/net/edcl.in endmenu @@ -37,8 +36,8 @@ mainmenu_option next_comment comment 'Peripherals ' mainmenu_option next_comment - comment 'Memory controllers ' - source lib/esa/memoryctrl/mctrl.in + comment 'Memory controller ' + source lib/gaisler/misc/ahbstat.in endmenu mainmenu_option next_comment @@ -47,16 +46,12 @@ comment 'Peripherals ' source lib/gaisler/misc/ahbram.in endmenu - mainmenu_option next_comment - comment 'Ethernet interface ' - source lib/gaisler/greth/greth.in - endmenu - mainmenu_option next_comment comment 'UARTs, timers and irq control ' source lib/gaisler/uart/uart1.in source lib/gaisler/leon3/irqmp.in source lib/gaisler/misc/gptimer.in + source lib/gaisler/misc/grgpio.in endmenu endmenu diff --git a/designs/leon3-lattice-latticeECP3/config.vhd b/designs/leon3-digilent-xc7z020/config.vhd similarity index 60% rename from designs/leon3-lattice-latticeECP3/config.vhd rename to designs/leon3-digilent-xc7z020/config.vhd index a89e8ffd..c8fa3af0 100644 --- a/designs/leon3-lattice-latticeECP3/config.vhd +++ b/designs/leon3-digilent-xc7z020/config.vhd @@ -3,7 +3,7 @@ ----------------------------------------------------------------------------- -- LEON3 Demonstration design test bench configuration --- Copyright (C) 2012 Aeroflex Gaisler +-- Copyright (C) 2009 Aeroflex Gaisler ------------------------------------------------------------------------------ @@ -12,15 +12,15 @@ use techmap.gencomp.all; package config is -- Technology and synthesis options - constant CFG_FABTECH : integer := lattice; - constant CFG_MEMTECH : integer := inferred; - constant CFG_PADTECH : integer := inferred; + constant CFG_FABTECH : integer := zynq7000; + constant CFG_MEMTECH : integer := zynq7000; + constant CFG_PADTECH : integer := zynq7000; constant CFG_NOASYNC : integer := 0; constant CFG_SCAN : integer := 0; -- Clock generator - constant CFG_CLKTECH : integer := inferred; - constant CFG_CLKMUL : integer := 2; - constant CFG_CLKDIV : integer := 2; + constant CFG_CLKTECH : integer := zynq7000; + constant CFG_CLKMUL : integer := (8); + constant CFG_CLKDIV : integer := (32); constant CFG_OCLKDIV : integer := 1; constant CFG_OCLKBDIV : integer := 0; constant CFG_OCLKCDIV : integer := 0; @@ -31,12 +31,12 @@ package config is constant CFG_LEON3 : integer := 1; constant CFG_NCPU : integer := (1); constant CFG_NWIN : integer := (8); - constant CFG_V8 : integer := 16#32# + 4*0; + constant CFG_V8 : integer := 2 + 4*0; constant CFG_MAC : integer := 0; constant CFG_BP : integer := 1; constant CFG_SVT : integer := 1; constant CFG_RSTADDR : integer := 16#00000#; - constant CFG_LDDEL : integer := (1); + constant CFG_LDDEL : integer := (2); constant CFG_NOTAG : integer := 0; constant CFG_NWP : integer := (2); constant CFG_PWD : integer := 1*2; @@ -44,9 +44,9 @@ package config is constant CFG_GRFPUSH : integer := 0; constant CFG_ICEN : integer := 1; constant CFG_ISETS : integer := 2; - constant CFG_ISETSZ : integer := 8; - constant CFG_ILINE : integer := 8; - constant CFG_IREPL : integer := 0; + constant CFG_ISETSZ : integer := 4; + constant CFG_ILINE : integer := 4; + constant CFG_IREPL : integer := 2; constant CFG_ILOCK : integer := 0; constant CFG_ILRAMEN : integer := 0; constant CFG_ILRAMADDR: integer := 16#8E#; @@ -55,22 +55,22 @@ package config is constant CFG_DSETS : integer := 2; constant CFG_DSETSZ : integer := 4; constant CFG_DLINE : integer := 4; - constant CFG_DREPL : integer := 0; + constant CFG_DREPL : integer := 2; constant CFG_DLOCK : integer := 0; constant CFG_DSNOOP : integer := 1 + 1 + 4*1; constant CFG_DFIXED : integer := 16#0#; constant CFG_DLRAMEN : integer := 0; constant CFG_DLRAMADDR: integer := 16#8F#; constant CFG_DLRAMSZ : integer := 1; - constant CFG_MMUEN : integer := 1; - constant CFG_ITLBNUM : integer := 8; - constant CFG_DTLBNUM : integer := 8; - constant CFG_TLB_TYPE : integer := 0 + 1*2; - constant CFG_TLB_REP : integer := 0; + constant CFG_MMUEN : integer := 0; + constant CFG_ITLBNUM : integer := 2; + constant CFG_DTLBNUM : integer := 2; + constant CFG_TLB_TYPE : integer := 1 + 0*2; + constant CFG_TLB_REP : integer := 1; constant CFG_MMU_PAGE : integer := 0; constant CFG_DSU : integer := 1; - constant CFG_ITBSZ : integer := 4; - constant CFG_ATBSZ : integer := 4; + constant CFG_ITBSZ : integer := 1; + constant CFG_ATBSZ : integer := 1; constant CFG_LEON3FT_EN : integer := 0; constant CFG_IUFT_EN : integer := 0; constant CFG_FPUFT_EN : integer := 0; @@ -82,8 +82,8 @@ package config is constant CFG_PCLOW : integer := 2; -- AMBA settings constant CFG_DEFMST : integer := (0); - constant CFG_RROBIN : integer := 1; - constant CFG_SPLIT : integer := 1; + constant CFG_RROBIN : integer := 0; + constant CFG_SPLIT : integer := 0; constant CFG_FPNPEN : integer := 0; constant CFG_AHBIO : integer := 16#FFF#; constant CFG_APBADDR : integer := 16#800#; @@ -91,44 +91,31 @@ package config is constant CFG_AHB_MONERR : integer := 0; constant CFG_AHB_MONWAR : integer := 0; constant CFG_AHB_DTRACE : integer := 0; --- DSU UART - constant CFG_AHB_UART : integer := 1; -- JTAG based DSU interface - constant CFG_AHB_JTAG : integer := 0; + constant CFG_AHB_JTAG : integer := 1; -- Ethernet DSU - constant CFG_DSU_ETH : integer := 1 + 0 + 0; - constant CFG_ETH_BUF : integer := 4; + constant CFG_DSU_ETH : integer := 0 + 0 + 0; + constant CFG_ETH_BUF : integer := 1; constant CFG_ETH_IPM : integer := 16#C0A8#; - constant CFG_ETH_IPL : integer := 16#0085#; + constant CFG_ETH_IPL : integer := 16#0033#; constant CFG_ETH_ENM : integer := 16#020000#; - constant CFG_ETH_ENL : integer := 16#000033#; --- LEON2 memory controller - constant CFG_MCTRL_LEON2 : integer := 1; - constant CFG_MCTRL_RAM8BIT : integer := 0; - constant CFG_MCTRL_RAM16BIT : integer := 1; - constant CFG_MCTRL_5CS : integer := 0; - constant CFG_MCTRL_SDEN : integer := 0; - constant CFG_MCTRL_SEPBUS : integer := 0; - constant CFG_MCTRL_INVCLK : integer := 0; - constant CFG_MCTRL_SD64 : integer := 0; - constant CFG_MCTRL_PAGE : integer := 0 + 0; + constant CFG_ETH_ENL : integer := 16#000009#; +-- AHB status register + constant CFG_AHBSTAT : integer := 0; + constant CFG_AHBSTATN : integer := 1; -- AHB ROM - constant CFG_AHBROMEN : integer := 1; - constant CFG_AHBROPIP : integer := 1; + constant CFG_AHBROMEN : integer := 0; + constant CFG_AHBROPIP : integer := 0; constant CFG_AHBRODDR : integer := 16#000#; - constant CFG_ROMADDR : integer := 16#100#; - constant CFG_ROMMASK : integer := 16#E00# + 16#100#; + constant CFG_ROMADDR : integer := 16#000#; + constant CFG_ROMMASK : integer := 16#E00# + 16#000#; -- AHB RAM constant CFG_AHBRAMEN : integer := 1; - constant CFG_AHBRSZ : integer := 4; + constant CFG_AHBRSZ : integer := 1; constant CFG_AHBRADDR : integer := 16#A00#; --- Gaisler Ethernet core - constant CFG_GRETH : integer := 1; - constant CFG_GRETH1G : integer := 0; - constant CFG_ETH_FIFO : integer := 32; -- UART 1 constant CFG_UART1_ENABLE : integer := 1; - constant CFG_UART1_FIFO : integer := 4; + constant CFG_UART1_FIFO : integer := 8; -- LEON3 interrupt controller constant CFG_IRQ3_ENABLE : integer := 1; constant CFG_IRQ3_NSEC : integer := 0; @@ -138,10 +125,13 @@ package config is constant CFG_GPT_SW : integer := (8); constant CFG_GPT_TW : integer := (32); constant CFG_GPT_IRQ : integer := (8); - constant CFG_GPT_SEPIRQ : integer := 1; - constant CFG_GPT_WDOGEN : integer := 1; - constant CFG_GPT_WDOG : integer := 16#FFFF#; - + constant CFG_GPT_SEPIRQ : integer := 0; + constant CFG_GPT_WDOGEN : integer := 0; + constant CFG_GPT_WDOG : integer := 16#0#; +-- GPIO port + constant CFG_GRGPIO_ENABLE : integer := 1; + constant CFG_GRGPIO_IMASK : integer := 16#0000#; + constant CFG_GRGPIO_WIDTH : integer := (16); -- GRLIB debugging - constant CFG_DUART : integer := 1; + constant CFG_DUART : integer := 0; end; diff --git a/designs/leon3-lattice-latticeECP3/config.vhd.h b/designs/leon3-digilent-xc7z020/config.vhd.h similarity index 87% rename from designs/leon3-lattice-latticeECP3/config.vhd.h rename to designs/leon3-digilent-xc7z020/config.vhd.h index db63b7c8..33bf34ac 100644 --- a/designs/leon3-lattice-latticeECP3/config.vhd.h +++ b/designs/leon3-digilent-xc7z020/config.vhd.h @@ -82,9 +82,6 @@ constant CFG_AHB_MONWAR : integer := CONFIG_AHB_MONWAR; constant CFG_AHB_DTRACE : integer := CONFIG_AHB_DTRACE; --- DSU UART - constant CFG_AHB_UART : integer := CONFIG_DSU_UART; - -- JTAG based DSU interface constant CFG_AHB_JTAG : integer := CONFIG_DSU_JTAG; @@ -96,16 +93,9 @@ constant CFG_ETH_ENM : integer := 16#CONFIG_DSU_ETHMSB#; constant CFG_ETH_ENL : integer := 16#CONFIG_DSU_ETHLSB#; --- LEON2 memory controller - constant CFG_MCTRL_LEON2 : integer := CONFIG_MCTRL_LEON2; - constant CFG_MCTRL_RAM8BIT : integer := CONFIG_MCTRL_8BIT; - constant CFG_MCTRL_RAM16BIT : integer := CONFIG_MCTRL_16BIT; - constant CFG_MCTRL_5CS : integer := CONFIG_MCTRL_5CS; - constant CFG_MCTRL_SDEN : integer := CONFIG_MCTRL_SDRAM; - constant CFG_MCTRL_SEPBUS : integer := CONFIG_MCTRL_SDRAM_SEPBUS; - constant CFG_MCTRL_INVCLK : integer := CONFIG_MCTRL_SDRAM_INVCLK; - constant CFG_MCTRL_SD64 : integer := CONFIG_MCTRL_SDRAM_BUS64; - constant CFG_MCTRL_PAGE : integer := CONFIG_MCTRL_PAGE + CONFIG_MCTRL_PROGPAGE; +-- AHB status register + constant CFG_AHBSTAT : integer := CONFIG_AHBSTAT_ENABLE; + constant CFG_AHBSTATN : integer := CONFIG_AHBSTAT_NFTSLV; -- AHB ROM constant CFG_AHBROMEN : integer := CONFIG_AHBROM_ENABLE; @@ -119,11 +109,6 @@ constant CFG_AHBRSZ : integer := CFG_AHBRAMSZ; constant CFG_AHBRADDR : integer := 16#CONFIG_AHBRAM_START#; --- Gaisler Ethernet core - constant CFG_GRETH : integer := CONFIG_GRETH_ENABLE; - constant CFG_GRETH1G : integer := CONFIG_GRETH_GIGA; - constant CFG_ETH_FIFO : integer := CFG_GRETH_FIFO; - -- UART 1 constant CFG_UART1_ENABLE : integer := CONFIG_UART1_ENABLE; constant CFG_UART1_FIFO : integer := CFG_UA1_FIFO; @@ -142,6 +127,11 @@ constant CFG_GPT_WDOGEN : integer := CONFIG_GPT_WDOGEN; constant CFG_GPT_WDOG : integer := 16#CONFIG_GPT_WDOG#; +-- GPIO port + constant CFG_GRGPIO_ENABLE : integer := CONFIG_GRGPIO_ENABLE; + constant CFG_GRGPIO_IMASK : integer := 16#CONFIG_GRGPIO_IMASK#; + constant CFG_GRGPIO_WIDTH : integer := CONFIG_GRGPIO_WIDTH; + -- GRLIB debugging constant CFG_DUART : integer := CONFIG_DEBUG_UART; diff --git a/designs/leon3-wildcard-xcv300e/config.vhd.in b/designs/leon3-digilent-xc7z020/config.vhd.in similarity index 99% rename from designs/leon3-wildcard-xcv300e/config.vhd.in rename to designs/leon3-digilent-xc7z020/config.vhd.in index 17917add..0b22306b 100644 --- a/designs/leon3-wildcard-xcv300e/config.vhd.in +++ b/designs/leon3-digilent-xc7z020/config.vhd.in @@ -1,5 +1,6 @@ #include "config.h" #include "tkconfig.h" + ----------------------------------------------------------------------------- -- LEON3 Demonstration design test bench configuration -- Copyright (C) 2009 Aeroflex Gaisler @@ -13,4 +14,6 @@ package config is #include "config.vhd.h" + + end; diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/__xps/ise/_xmsgs/.gitignore b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/__xps/ise/_xmsgs/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/__xps/ise/xmsgprops.lst b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/__xps/ise/xmsgprops.lst new file mode 100644 index 00000000..d79c9360 --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/__xps/ise/xmsgprops.lst @@ -0,0 +1,3 @@ +MessageCaptureEnabled: TRUE +MessageFilteringEnabled: FALSE +IncrementalMessagingEnabled: TRUE diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/leon3_zedboard.ncf b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/leon3_zedboard.ncf new file mode 100644 index 00000000..1d25821e --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/leon3_zedboard.ncf @@ -0,0 +1,8 @@ +# +# pin constraints +# + +# +# additional constraints +# + diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/leon3_zedboard.ucf b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/leon3_zedboard.ucf new file mode 100644 index 00000000..1d25821e --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/leon3_zedboard.ucf @@ -0,0 +1,8 @@ +# +# pin constraints +# + +# +# additional constraints +# + diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/leon3_zedboard.xdc b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/leon3_zedboard.xdc new file mode 100644 index 00000000..1d25821e --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/leon3_zedboard.xdc @@ -0,0 +1,8 @@ +# +# pin constraints +# + +# +# additional constraints +# + diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/ps7_constraints.ucf b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/ps7_constraints.ucf new file mode 100644 index 00000000..971c138d --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/ps7_constraints.ucf @@ -0,0 +1,94 @@ +############################################################################ +## +## Xilinx, Inc. 2006 www.xilinx.com +############################################################################ +## File name : data/ps7_constraints.ucf +## +## Details : Constraints file +## FPGA family: zynq +## FPGA: xc7z020clg484-1 +## Device Size: xc7z020 +## Package: clg484 +## Speedgrade: -1 +## +##Note: This is a generated file. Configuration settings should not be edited +## +############################################################################ +############################################################################ +############################################################################ +# I/O STANDARDS and Location Constraints # +############################################################################ + +NET "DDR_WEB" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "R4" ; +NET "DDR_VRP" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "N7" ; +NET "DDR_VRN" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "M7" ; +NET "DDR_RAS_n" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "R5" ; +NET "DDR_ODT" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "P5" ; +NET "DDR_DRSTB" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "F3" ; +NET "DDR_DQS[3]" IOSTANDARD = DIFF_SSTL15_T_DCI | SLEW = "FAST" | LOC = "V2" ; +NET "DDR_DQS[2]" IOSTANDARD = DIFF_SSTL15_T_DCI | SLEW = "FAST" | LOC = "N2" ; +NET "DDR_DQS[1]" IOSTANDARD = DIFF_SSTL15_T_DCI | SLEW = "FAST" | LOC = "H2" ; +NET "DDR_DQS[0]" IOSTANDARD = DIFF_SSTL15_T_DCI | SLEW = "FAST" | LOC = "C2" ; +NET "DDR_DQS_n[3]" IOSTANDARD = DIFF_SSTL15_T_DCI | SLEW = "FAST" | LOC = "W2" ; +NET "DDR_DQS_n[2]" IOSTANDARD = DIFF_SSTL15_T_DCI | SLEW = "FAST" | LOC = "P2" ; +NET "DDR_DQS_n[1]" IOSTANDARD = DIFF_SSTL15_T_DCI | SLEW = "FAST" | LOC = "J2" ; +NET "DDR_DQS_n[0]" IOSTANDARD = DIFF_SSTL15_T_DCI | SLEW = "FAST" | LOC = "D2" ; +NET "DDR_DQ[9]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "G1" ; +NET "DDR_DQ[8]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "G2" ; +NET "DDR_DQ[7]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "F1" ; +NET "DDR_DQ[6]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "F2" ; +NET "DDR_DQ[5]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "E1" ; +NET "DDR_DQ[4]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "E3" ; +NET "DDR_DQ[3]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "D3" ; +NET "DDR_DQ[31]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "Y1" ; +NET "DDR_DQ[30]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "W3" ; +NET "DDR_DQ[2]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "B2" ; +NET "DDR_DQ[29]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "Y3" ; +NET "DDR_DQ[28]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "W1" ; +NET "DDR_DQ[27]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "U2" ; +NET "DDR_DQ[26]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "AA1" ; +NET "DDR_DQ[25]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "U1" ; +NET "DDR_DQ[24]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "AA3" ; +NET "DDR_DQ[23]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "R1" ; +NET "DDR_DQ[22]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "M2" ; +NET "DDR_DQ[21]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "T2" ; +NET "DDR_DQ[20]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "R3" ; +NET "DDR_DQ[1]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "C3" ; +NET "DDR_DQ[19]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "T1" ; +NET "DDR_DQ[18]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "N3" ; +NET "DDR_DQ[17]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "T3" ; +NET "DDR_DQ[16]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "M1" ; +NET "DDR_DQ[15]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "K3" ; +NET "DDR_DQ[14]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "J1" ; +NET "DDR_DQ[13]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "K1" ; +NET "DDR_DQ[12]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "L3" ; +NET "DDR_DQ[11]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "L2" ; +NET "DDR_DQ[10]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "L1" ; +NET "DDR_DQ[0]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "D1" ; +NET "DDR_DM[3]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "AA2" ; +NET "DDR_DM[2]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "P1" ; +NET "DDR_DM[1]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "H3" ; +NET "DDR_DM[0]" IOSTANDARD = SSTL15_T_DCI | SLEW = "FAST" | LOC = "B1" ; +NET "DDR_CS_n" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "P6" ; +NET "DDR_CKE" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "V3" ; +NET "DDR_Clk" IOSTANDARD = DIFF_SSTL15 | SLEW = "FAST" | LOC = "N4" ; +NET "DDR_Clk_n" IOSTANDARD = DIFF_SSTL15 | SLEW = "FAST" | LOC = "N5" ; +NET "DDR_CAS_n" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "P3" ; +NET "DDR_BankAddr[2]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "M6" ; +NET "DDR_BankAddr[1]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "L6" ; +NET "DDR_BankAddr[0]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "L7" ; +NET "DDR_Addr[9]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "H5" ; +NET "DDR_Addr[8]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "J5" ; +NET "DDR_Addr[7]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "J6" ; +NET "DDR_Addr[6]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "J7" ; +NET "DDR_Addr[5]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "K5" ; +NET "DDR_Addr[4]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "K6" ; +NET "DDR_Addr[3]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "L4" ; +NET "DDR_Addr[2]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "K4" ; +NET "DDR_Addr[1]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "M5" ; +NET "DDR_Addr[14]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "G4" ; +NET "DDR_Addr[13]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "F4" ; +NET "DDR_Addr[12]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "H4" ; +NET "DDR_Addr[11]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "G5" ; +NET "DDR_Addr[10]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "J3" ; +NET "DDR_Addr[0]" IOSTANDARD = SSTL15 | SLEW = "FAST" | LOC = "M4" ; diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/ps7_constraints.xdc b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/ps7_constraints.xdc new file mode 100644 index 00000000..ea7e65b8 --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/ps7_constraints.xdc @@ -0,0 +1,240 @@ +############################################################################ +## +## Xilinx, Inc. 2006 www.xilinx.com +############################################################################ +## File name : data/ps7_constraints.xdc +## +## Details : Constraints file +## FPGA family: zynq +## FPGA: xc7z020clg484-1 +## Device Size: xc7z020 +## Package: clg484 +## Speedgrade: -1 +## +##Note: This is a generated file. Configuration settings should not be edited +## +############################################################################ +############################################################################ +############################################################################ +# I/O STANDARDS and Location Constraints # +############################################################################ + +set_property iostandard "SSTL15" [get_ports "DDR_WEB"] +set_property PACKAGE_PIN "R4" [get_ports "DDR_WEB"] +set_property slew "FAST" [get_ports "DDR_WEB"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_VRP"] +set_property PACKAGE_PIN "N7" [get_ports "DDR_VRP"] +set_property slew "FAST" [get_ports "DDR_VRP"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_VRN"] +set_property PACKAGE_PIN "M7" [get_ports "DDR_VRN"] +set_property slew "FAST" [get_ports "DDR_VRN"] +set_property iostandard "SSTL15" [get_ports "DDR_RAS_n"] +set_property PACKAGE_PIN "R5" [get_ports "DDR_RAS_n"] +set_property slew "FAST" [get_ports "DDR_RAS_n"] +set_property iostandard "SSTL15" [get_ports "DDR_ODT"] +set_property PACKAGE_PIN "P5" [get_ports "DDR_ODT"] +set_property slew "FAST" [get_ports "DDR_ODT"] +set_property iostandard "SSTL15" [get_ports "DDR_DRSTB"] +set_property PACKAGE_PIN "F3" [get_ports "DDR_DRSTB"] +set_property slew "FAST" [get_ports "DDR_DRSTB"] +set_property iostandard "DIFF_SSTL15_T_DCI" [get_ports "DDR_DQS[3]"] +set_property PACKAGE_PIN "V2" [get_ports "DDR_DQS[3]"] +set_property slew "FAST" [get_ports "DDR_DQS[3]"] +set_property iostandard "DIFF_SSTL15_T_DCI" [get_ports "DDR_DQS[2]"] +set_property PACKAGE_PIN "N2" [get_ports "DDR_DQS[2]"] +set_property slew "FAST" [get_ports "DDR_DQS[2]"] +set_property iostandard "DIFF_SSTL15_T_DCI" [get_ports "DDR_DQS[1]"] +set_property PACKAGE_PIN "H2" [get_ports "DDR_DQS[1]"] +set_property slew "FAST" [get_ports "DDR_DQS[1]"] +set_property iostandard "DIFF_SSTL15_T_DCI" [get_ports "DDR_DQS[0]"] +set_property PACKAGE_PIN "C2" [get_ports "DDR_DQS[0]"] +set_property slew "FAST" [get_ports "DDR_DQS[0]"] +set_property iostandard "DIFF_SSTL15_T_DCI" [get_ports "DDR_DQS_n[3]"] +set_property PACKAGE_PIN "W2" [get_ports "DDR_DQS_n[3]"] +set_property slew "FAST" [get_ports "DDR_DQS_n[3]"] +set_property iostandard "DIFF_SSTL15_T_DCI" [get_ports "DDR_DQS_n[2]"] +set_property PACKAGE_PIN "P2" [get_ports "DDR_DQS_n[2]"] +set_property slew "FAST" [get_ports "DDR_DQS_n[2]"] +set_property iostandard "DIFF_SSTL15_T_DCI" [get_ports "DDR_DQS_n[1]"] +set_property PACKAGE_PIN "J2" [get_ports "DDR_DQS_n[1]"] +set_property slew "FAST" [get_ports "DDR_DQS_n[1]"] +set_property iostandard "DIFF_SSTL15_T_DCI" [get_ports "DDR_DQS_n[0]"] +set_property PACKAGE_PIN "D2" [get_ports "DDR_DQS_n[0]"] +set_property slew "FAST" [get_ports "DDR_DQS_n[0]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[9]"] +set_property PACKAGE_PIN "G1" [get_ports "DDR_DQ[9]"] +set_property slew "FAST" [get_ports "DDR_DQ[9]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[8]"] +set_property PACKAGE_PIN "G2" [get_ports "DDR_DQ[8]"] +set_property slew "FAST" [get_ports "DDR_DQ[8]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[7]"] +set_property PACKAGE_PIN "F1" [get_ports "DDR_DQ[7]"] +set_property slew "FAST" [get_ports "DDR_DQ[7]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[6]"] +set_property PACKAGE_PIN "F2" [get_ports "DDR_DQ[6]"] +set_property slew "FAST" [get_ports "DDR_DQ[6]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[5]"] +set_property PACKAGE_PIN "E1" [get_ports "DDR_DQ[5]"] +set_property slew "FAST" [get_ports "DDR_DQ[5]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[4]"] +set_property PACKAGE_PIN "E3" [get_ports "DDR_DQ[4]"] +set_property slew "FAST" [get_ports "DDR_DQ[4]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[3]"] +set_property PACKAGE_PIN "D3" [get_ports "DDR_DQ[3]"] +set_property slew "FAST" [get_ports "DDR_DQ[3]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[31]"] +set_property PACKAGE_PIN "Y1" [get_ports "DDR_DQ[31]"] +set_property slew "FAST" [get_ports "DDR_DQ[31]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[30]"] +set_property PACKAGE_PIN "W3" [get_ports "DDR_DQ[30]"] +set_property slew "FAST" [get_ports "DDR_DQ[30]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[2]"] +set_property PACKAGE_PIN "B2" [get_ports "DDR_DQ[2]"] +set_property slew "FAST" [get_ports "DDR_DQ[2]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[29]"] +set_property PACKAGE_PIN "Y3" [get_ports "DDR_DQ[29]"] +set_property slew "FAST" [get_ports "DDR_DQ[29]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[28]"] +set_property PACKAGE_PIN "W1" [get_ports "DDR_DQ[28]"] +set_property slew "FAST" [get_ports "DDR_DQ[28]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[27]"] +set_property PACKAGE_PIN "U2" [get_ports "DDR_DQ[27]"] +set_property slew "FAST" [get_ports "DDR_DQ[27]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[26]"] +set_property PACKAGE_PIN "AA1" [get_ports "DDR_DQ[26]"] +set_property slew "FAST" [get_ports "DDR_DQ[26]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[25]"] +set_property PACKAGE_PIN "U1" [get_ports "DDR_DQ[25]"] +set_property slew "FAST" [get_ports "DDR_DQ[25]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[24]"] +set_property PACKAGE_PIN "AA3" [get_ports "DDR_DQ[24]"] +set_property slew "FAST" [get_ports "DDR_DQ[24]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[23]"] +set_property PACKAGE_PIN "R1" [get_ports "DDR_DQ[23]"] +set_property slew "FAST" [get_ports "DDR_DQ[23]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[22]"] +set_property PACKAGE_PIN "M2" [get_ports "DDR_DQ[22]"] +set_property slew "FAST" [get_ports "DDR_DQ[22]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[21]"] +set_property PACKAGE_PIN "T2" [get_ports "DDR_DQ[21]"] +set_property slew "FAST" [get_ports "DDR_DQ[21]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[20]"] +set_property PACKAGE_PIN "R3" [get_ports "DDR_DQ[20]"] +set_property slew "FAST" [get_ports "DDR_DQ[20]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[1]"] +set_property PACKAGE_PIN "C3" [get_ports "DDR_DQ[1]"] +set_property slew "FAST" [get_ports "DDR_DQ[1]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[19]"] +set_property PACKAGE_PIN "T1" [get_ports "DDR_DQ[19]"] +set_property slew "FAST" [get_ports "DDR_DQ[19]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[18]"] +set_property PACKAGE_PIN "N3" [get_ports "DDR_DQ[18]"] +set_property slew "FAST" [get_ports "DDR_DQ[18]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[17]"] +set_property PACKAGE_PIN "T3" [get_ports "DDR_DQ[17]"] +set_property slew "FAST" [get_ports "DDR_DQ[17]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[16]"] +set_property PACKAGE_PIN "M1" [get_ports "DDR_DQ[16]"] +set_property slew "FAST" [get_ports "DDR_DQ[16]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[15]"] +set_property PACKAGE_PIN "K3" [get_ports "DDR_DQ[15]"] +set_property slew "FAST" [get_ports "DDR_DQ[15]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[14]"] +set_property PACKAGE_PIN "J1" [get_ports "DDR_DQ[14]"] +set_property slew "FAST" [get_ports "DDR_DQ[14]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[13]"] +set_property PACKAGE_PIN "K1" [get_ports "DDR_DQ[13]"] +set_property slew "FAST" [get_ports "DDR_DQ[13]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[12]"] +set_property PACKAGE_PIN "L3" [get_ports "DDR_DQ[12]"] +set_property slew "FAST" [get_ports "DDR_DQ[12]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[11]"] +set_property PACKAGE_PIN "L2" [get_ports "DDR_DQ[11]"] +set_property slew "FAST" [get_ports "DDR_DQ[11]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[10]"] +set_property PACKAGE_PIN "L1" [get_ports "DDR_DQ[10]"] +set_property slew "FAST" [get_ports "DDR_DQ[10]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DQ[0]"] +set_property PACKAGE_PIN "D1" [get_ports "DDR_DQ[0]"] +set_property slew "FAST" [get_ports "DDR_DQ[0]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DM[3]"] +set_property PACKAGE_PIN "AA2" [get_ports "DDR_DM[3]"] +set_property slew "FAST" [get_ports "DDR_DM[3]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DM[2]"] +set_property PACKAGE_PIN "P1" [get_ports "DDR_DM[2]"] +set_property slew "FAST" [get_ports "DDR_DM[2]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DM[1]"] +set_property PACKAGE_PIN "H3" [get_ports "DDR_DM[1]"] +set_property slew "FAST" [get_ports "DDR_DM[1]"] +set_property iostandard "SSTL15_T_DCI" [get_ports "DDR_DM[0]"] +set_property PACKAGE_PIN "B1" [get_ports "DDR_DM[0]"] +set_property slew "FAST" [get_ports "DDR_DM[0]"] +set_property iostandard "SSTL15" [get_ports "DDR_CS_n"] +set_property PACKAGE_PIN "P6" [get_ports "DDR_CS_n"] +set_property slew "FAST" [get_ports "DDR_CS_n"] +set_property iostandard "SSTL15" [get_ports "DDR_CKE"] +set_property PACKAGE_PIN "V3" [get_ports "DDR_CKE"] +set_property slew "FAST" [get_ports "DDR_CKE"] +set_property iostandard "DIFF_SSTL15" [get_ports "DDR_Clk"] +set_property PACKAGE_PIN "N4" [get_ports "DDR_Clk"] +set_property slew "FAST" [get_ports "DDR_Clk"] +set_property iostandard "DIFF_SSTL15" [get_ports "DDR_Clk_n"] +set_property PACKAGE_PIN "N5" [get_ports "DDR_Clk_n"] +set_property slew "FAST" [get_ports "DDR_Clk_n"] +set_property iostandard "SSTL15" [get_ports "DDR_CAS_n"] +set_property PACKAGE_PIN "P3" [get_ports "DDR_CAS_n"] +set_property slew "FAST" [get_ports "DDR_CAS_n"] +set_property iostandard "SSTL15" [get_ports "DDR_BankAddr[2]"] +set_property PACKAGE_PIN "M6" [get_ports "DDR_BankAddr[2]"] +set_property slew "FAST" [get_ports "DDR_BankAddr[2]"] +set_property iostandard "SSTL15" [get_ports "DDR_BankAddr[1]"] +set_property PACKAGE_PIN "L6" [get_ports "DDR_BankAddr[1]"] +set_property slew "FAST" [get_ports "DDR_BankAddr[1]"] +set_property iostandard "SSTL15" [get_ports "DDR_BankAddr[0]"] +set_property PACKAGE_PIN "L7" [get_ports "DDR_BankAddr[0]"] +set_property slew "FAST" [get_ports "DDR_BankAddr[0]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[9]"] +set_property PACKAGE_PIN "H5" [get_ports "DDR_Addr[9]"] +set_property slew "FAST" [get_ports "DDR_Addr[9]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[8]"] +set_property PACKAGE_PIN "J5" [get_ports "DDR_Addr[8]"] +set_property slew "FAST" [get_ports "DDR_Addr[8]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[7]"] +set_property PACKAGE_PIN "J6" [get_ports "DDR_Addr[7]"] +set_property slew "FAST" [get_ports "DDR_Addr[7]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[6]"] +set_property PACKAGE_PIN "J7" [get_ports "DDR_Addr[6]"] +set_property slew "FAST" [get_ports "DDR_Addr[6]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[5]"] +set_property PACKAGE_PIN "K5" [get_ports "DDR_Addr[5]"] +set_property slew "FAST" [get_ports "DDR_Addr[5]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[4]"] +set_property PACKAGE_PIN "K6" [get_ports "DDR_Addr[4]"] +set_property slew "FAST" [get_ports "DDR_Addr[4]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[3]"] +set_property PACKAGE_PIN "L4" [get_ports "DDR_Addr[3]"] +set_property slew "FAST" [get_ports "DDR_Addr[3]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[2]"] +set_property PACKAGE_PIN "K4" [get_ports "DDR_Addr[2]"] +set_property slew "FAST" [get_ports "DDR_Addr[2]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[1]"] +set_property PACKAGE_PIN "M5" [get_ports "DDR_Addr[1]"] +set_property slew "FAST" [get_ports "DDR_Addr[1]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[14]"] +set_property PACKAGE_PIN "G4" [get_ports "DDR_Addr[14]"] +set_property slew "FAST" [get_ports "DDR_Addr[14]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[13]"] +set_property PACKAGE_PIN "F4" [get_ports "DDR_Addr[13]"] +set_property slew "FAST" [get_ports "DDR_Addr[13]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[12]"] +set_property PACKAGE_PIN "H4" [get_ports "DDR_Addr[12]"] +set_property slew "FAST" [get_ports "DDR_Addr[12]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[11]"] +set_property PACKAGE_PIN "G5" [get_ports "DDR_Addr[11]"] +set_property slew "FAST" [get_ports "DDR_Addr[11]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[10]"] +set_property PACKAGE_PIN "J3" [get_ports "DDR_Addr[10]"] +set_property slew "FAST" [get_ports "DDR_Addr[10]"] +set_property iostandard "SSTL15" [get_ports "DDR_Addr[0]"] +set_property PACKAGE_PIN "M4" [get_ports "DDR_Addr[0]"] +set_property slew "FAST" [get_ports "DDR_Addr[0]"] diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/ps7_leon3_zedboard_prj.xml b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/ps7_leon3_zedboard_prj.xml new file mode 100644 index 00000000..f9332b59 --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/data/ps7_leon3_zedboard_prj.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/bitgen.ut b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/bitgen.ut new file mode 100644 index 00000000..1f1bbbe8 --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/bitgen.ut @@ -0,0 +1 @@ +##bitgen options for zynq architecture diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/download.cmd b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/download.cmd new file mode 100644 index 00000000..02228c1a --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/download.cmd @@ -0,0 +1,6 @@ +setMode -bscan +setCable -p auto +identify +assignfile -p 2 -file implementation/download.bit +program -p 2 +quit diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/fast_runtime.opt b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/fast_runtime.opt new file mode 100644 index 00000000..994a6d2f --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/fast_runtime.opt @@ -0,0 +1,84 @@ +FLOWTYPE = FPGA; +############################################################### +## Filename: fast_runtime.opt +## +## Option File For Xilinx FPGA Implementation Flow for Fast +## Runtime. +## +## Version: 4.1.1 +############################################################### +# +# Options for Translator +# +# Type "ngdbuild -h" for a detailed list of ngdbuild command line options +# +Program ngdbuild +-p ; # Partname to use - picked from xflow commandline +-nt timestamp; # NGO File generation. Regenerate only when + # source netlist is newer than existing + # NGO file (default) +-bm .bmm # Block RAM memory map file +; # User design - pick from xflow command line +-uc .ucf; # ucf constraints +.ngd; # Name of NGD file. Filebase same as design filebase +End Program ngdbuild + +# +# Options for Mapper +# +# Type "map -h " for a detailed list of map command line options +# +Program map +-o _map.ncd; # Output Mapped ncd file +-w; # Overwrite output files. +-pr b; # Pack internal FF/latches into IOBs +#-fp .mfp; # Floorplan file +-ol high; +-timing; +-detail; +.ngd; # Input NGD file +.pcf; # Physical constraints file +END Program map + +# +# Options for Post Map Trace +# +# Type "trce -h" for a detailed list of trce command line options +# +Program post_map_trce +-e 3; # Produce error report limited to 3 items per constraint +#-o _map.twr; # Output trace report file +-xml _map.twx; # Output XML version of the timing report +#-tsi _map.tsi; # Produce Timing Specification Interaction report +_map.ncd; # Input mapped ncd +.pcf; # Physical constraints file +END Program post_map_trce + +# +# Options for Place and Route +# +# Type "par -h" for a detailed list of par command line options +# +Program par +-w; # Overwrite existing placed and routed ncd +-ol high; # Overall effort level +_map.ncd; # Input mapped NCD file +.ncd; # Output placed and routed NCD +.pcf; # Input physical constraints file +END Program par + +# +# Options for Post Par Trace +# +# Type "trce -h" for a detailed list of trce command line options +# +Program post_par_trce +-e 3; # Produce error report limited to 3 items per constraint +#-o .twr; # Output trace report file +-xml .twx; # Output XML version of the timing report +#-tsi .tsi; # Produce Timing Specification Interaction report +.ncd; # Input placed and routed ncd +.pcf; # Physical constraints file +END Program post_par_trce + + diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/leon3_zedboard.filters b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/leon3_zedboard.filters new file mode 100644 index 00000000..63cea3a8 --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/leon3_zedboard.filters @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/leon3_zedboard.gui b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/leon3_zedboard.gui new file mode 100644 index 00000000..af84db94 --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/etc/leon3_zedboard.gui @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/leon3_zedboard.mhs b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/leon3_zedboard.mhs new file mode 100644 index 00000000..0d9f334b --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/leon3_zedboard.mhs @@ -0,0 +1,175 @@ + +# ############################################################################## +# Created by Base System Builder Wizard for Xilinx EDK 14.3 Build EDK_P.40xd +# Fri Dec 7 08:24:42 2012 +# Target Board: em.avnet.com ZedBoard Rev C +# Family: zynq +# Device: xc7z020 +# Package: clg484 +# Speed Grade: -1 +# ############################################################################## + PARAMETER VERSION = 2.1.0 + + + PORT processing_system7_0_MIO = processing_system7_0_MIO, DIR = IO, VEC = [53:0] + PORT processing_system7_0_PS_SRSTB = processing_system7_0_PS_SRSTB, DIR = I + PORT processing_system7_0_PS_CLK = processing_system7_0_PS_CLK, DIR = I, SIGIS = CLK + PORT processing_system7_0_PS_PORB = processing_system7_0_PS_PORB, DIR = I + PORT processing_system7_0_DDR_Clk = processing_system7_0_DDR_Clk, DIR = IO, SIGIS = CLK + PORT processing_system7_0_DDR_Clk_n = processing_system7_0_DDR_Clk_n, DIR = IO, SIGIS = CLK + PORT processing_system7_0_DDR_CKE = processing_system7_0_DDR_CKE, DIR = IO + PORT processing_system7_0_DDR_CS_n = processing_system7_0_DDR_CS_n, DIR = IO + PORT processing_system7_0_DDR_RAS_n = processing_system7_0_DDR_RAS_n, DIR = IO + PORT processing_system7_0_DDR_CAS_n = processing_system7_0_DDR_CAS_n, DIR = IO + PORT processing_system7_0_DDR_WEB_pin = processing_system7_0_DDR_WEB, DIR = O + PORT processing_system7_0_DDR_BankAddr = processing_system7_0_DDR_BankAddr, DIR = IO, VEC = [2:0] + PORT processing_system7_0_DDR_Addr = processing_system7_0_DDR_Addr, DIR = IO, VEC = [14:0] + PORT processing_system7_0_DDR_ODT = processing_system7_0_DDR_ODT, DIR = IO + PORT processing_system7_0_DDR_DRSTB = processing_system7_0_DDR_DRSTB, DIR = IO, SIGIS = RST + PORT processing_system7_0_DDR_DQ = processing_system7_0_DDR_DQ, DIR = IO, VEC = [31:0] + PORT processing_system7_0_DDR_DM = processing_system7_0_DDR_DM, DIR = IO, VEC = [3:0] + PORT processing_system7_0_DDR_DQS = processing_system7_0_DDR_DQS, DIR = IO, VEC = [3:0] + PORT processing_system7_0_DDR_DQS_n = processing_system7_0_DDR_DQS_n, DIR = IO, VEC = [3:0] + PORT processing_system7_0_DDR_VRN = processing_system7_0_DDR_VRN, DIR = IO + PORT processing_system7_0_DDR_VRP = processing_system7_0_DDR_VRP, DIR = IO + PORT ahblite_axi_bridge_0_S_AHB_HSEL_pin = ahblite_axi_bridge_0_S_AHB_HSEL, DIR = I + PORT ahblite_axi_bridge_0_S_AHB_HADDR_pin = ahblite_axi_bridge_0_S_AHB_HADDR, DIR = I, VEC = [31:0] + PORT ahblite_axi_bridge_0_S_AHB_HPROT_pin = ahblite_axi_bridge_0_S_AHB_HPROT, DIR = I, VEC = [3:0] + PORT ahblite_axi_bridge_0_S_AHB_HTRANS_pin = ahblite_axi_bridge_0_S_AHB_HTRANS, DIR = I, VEC = [1:0] + PORT ahblite_axi_bridge_0_S_AHB_HSIZE_pin = ahblite_axi_bridge_0_S_AHB_HSIZE, DIR = I, VEC = [2:0] + PORT ahblite_axi_bridge_0_S_AHB_HWRITE_pin = ahblite_axi_bridge_0_S_AHB_HWRITE, DIR = I + PORT ahblite_axi_bridge_0_S_AHB_HBURST_pin = ahblite_axi_bridge_0_S_AHB_HBURST, DIR = I, VEC = [2:0] + PORT ahblite_axi_bridge_0_S_AHB_HWDATA_pin = ahblite_axi_bridge_0_S_AHB_HWDATA, DIR = I, VEC = [31:0] + PORT ahblite_axi_bridge_0_S_AHB_HREADY_OUT_pin = ahblite_axi_bridge_0_S_AHB_HREADY_OUT, DIR = O + PORT ahblite_axi_bridge_0_S_AHB_HREADY_IN_pin = ahblite_axi_bridge_0_S_AHB_HREADY_IN, DIR = I + PORT ahblite_axi_bridge_0_S_AHB_HRDATA_pin = ahblite_axi_bridge_0_S_AHB_HRDATA, DIR = O, VEC = [31:0] + PORT ahblite_axi_bridge_0_S_AHB_HRESP_pin = ahblite_axi_bridge_0_S_AHB_HRESP, DIR = O + PORT processing_system7_0_FCLK_RESET0_N_pin = processing_system7_0_FCLK_RESET0_N, DIR = O, SIGIS = RST + PORT processing_system7_0_FCLK_CLKTRIG0_N_pin = processing_system7_0_FCLK_CLKTRIG0_N, DIR = I + PORT processing_system7_0_FCLK_CLK0_pin = processing_system7_0_FCLK_CLK0, DIR = O, SIGIS = CLK, CLK_FREQ = 50000000 + + +BEGIN processing_system7 + PARAMETER INSTANCE = processing_system7_0 + PARAMETER HW_VER = 4.02.a + PARAMETER C_DDR_RAM_HIGHADDR = 0x1FFFFFFF + PARAMETER C_USE_M_AXI_GP0 = 0 + PARAMETER C_EN_EMIO_CAN0 = 0 + PARAMETER C_EN_EMIO_CAN1 = 0 + PARAMETER C_EN_EMIO_ENET0 = 0 + PARAMETER C_EN_EMIO_ENET1 = 0 + PARAMETER C_EN_EMIO_I2C0 = 0 + PARAMETER C_EN_EMIO_I2C1 = 0 + PARAMETER C_EN_EMIO_PJTAG = 0 + PARAMETER C_EN_EMIO_SDIO0 = 0 + PARAMETER C_EN_EMIO_CD_SDIO0 = 0 + PARAMETER C_EN_EMIO_WP_SDIO0 = 0 + PARAMETER C_EN_EMIO_SDIO1 = 0 + PARAMETER C_EN_EMIO_CD_SDIO1 = 0 + PARAMETER C_EN_EMIO_WP_SDIO1 = 0 + PARAMETER C_EN_EMIO_SPI0 = 0 + PARAMETER C_EN_EMIO_SPI1 = 0 + PARAMETER C_EN_EMIO_SRAM_INT = 0 + PARAMETER C_EN_EMIO_TRACE = 0 + PARAMETER C_EN_EMIO_TTC0 = 0 + PARAMETER C_EN_EMIO_TTC1 = 0 + PARAMETER C_EN_EMIO_UART0 = 0 + PARAMETER C_EN_EMIO_UART1 = 0 + PARAMETER C_EN_EMIO_MODEM_UART0 = 0 + PARAMETER C_EN_EMIO_MODEM_UART1 = 0 + PARAMETER C_EN_EMIO_WDT = 0 + PARAMETER C_EN_QSPI = 0 + PARAMETER C_EN_SMC = 0 + PARAMETER C_EN_CAN0 = 0 + PARAMETER C_EN_CAN1 = 0 + PARAMETER C_EN_ENET0 = 0 + PARAMETER C_EN_ENET1 = 0 + PARAMETER C_EN_I2C0 = 0 + PARAMETER C_EN_I2C1 = 0 + PARAMETER C_EN_PJTAG = 0 + PARAMETER C_EN_SDIO0 = 0 + PARAMETER C_EN_SDIO1 = 0 + PARAMETER C_EN_SPI0 = 0 + PARAMETER C_EN_SPI1 = 0 + PARAMETER C_EN_TRACE = 0 + PARAMETER C_EN_TTC0 = 0 + PARAMETER C_EN_TTC1 = 0 + PARAMETER C_EN_UART0 = 0 + PARAMETER C_EN_UART1 = 0 + PARAMETER C_EN_MODEM_UART0 = 0 + PARAMETER C_EN_MODEM_UART1 = 0 + PARAMETER C_EN_USB0 = 0 + PARAMETER C_EN_USB1 = 0 + PARAMETER C_EN_WDT = 0 + PARAMETER C_EN_DDR = 1 + PARAMETER C_EN_GPIO = 0 + PARAMETER C_FCLK_CLK0_FREQ = 50000000 + PARAMETER C_FCLK_CLK1_FREQ = 50000000 + PARAMETER C_FCLK_CLK2_FREQ = 50000000 + PARAMETER C_FCLK_CLK3_FREQ = 50000000 + PARAMETER C_USE_FABRIC_INTERRUPT = 0 + PARAMETER C_USE_S_AXI_GP0 = 0 + PARAMETER C_USE_S_AXI_HP0 = 1 + PARAMETER C_S_AXI_HP0_DATA_WIDTH = 32 + PARAMETER C_USE_CR_FABRIC = 1 + PARAMETER C_INTERCONNECT_S_AXI_GP0_MASTERS = ahblite_axi_bridge_0.M_AXI + PARAMETER C_EN_EMIO_GPIO = 0 + PARAMETER C_EMIO_GPIO_WIDTH = 64 + PARAMETER C_INTERCONNECT_S_AXI_HP0_MASTERS = ahblite_axi_bridge_0.M_AXI + BUS_INTERFACE S_AXI_HP0 = axi_interconnect_0 + PORT MIO = processing_system7_0_MIO + PORT PS_SRSTB = processing_system7_0_PS_SRSTB + PORT PS_CLK = processing_system7_0_PS_CLK + PORT PS_PORB = processing_system7_0_PS_PORB + PORT DDR_Clk = processing_system7_0_DDR_Clk + PORT DDR_Clk_n = processing_system7_0_DDR_Clk_n + PORT DDR_CKE = processing_system7_0_DDR_CKE + PORT DDR_CS_n = processing_system7_0_DDR_CS_n + PORT DDR_RAS_n = processing_system7_0_DDR_RAS_n + PORT DDR_CAS_n = processing_system7_0_DDR_CAS_n + PORT DDR_WEB = processing_system7_0_DDR_WEB + PORT DDR_BankAddr = processing_system7_0_DDR_BankAddr + PORT DDR_Addr = processing_system7_0_DDR_Addr + PORT DDR_ODT = processing_system7_0_DDR_ODT + PORT DDR_DRSTB = processing_system7_0_DDR_DRSTB + PORT DDR_DQ = processing_system7_0_DDR_DQ + PORT DDR_DM = processing_system7_0_DDR_DM + PORT DDR_DQS = processing_system7_0_DDR_DQS + PORT DDR_DQS_n = processing_system7_0_DDR_DQS_n + PORT DDR_VRN = processing_system7_0_DDR_VRN + PORT DDR_VRP = processing_system7_0_DDR_VRP + PORT FCLK_CLK0 = processing_system7_0_FCLK_CLK0 + PORT FCLK_RESET0_N = processing_system7_0_FCLK_RESET0_N + PORT S_AXI_HP0_ACLK = processing_system7_0_FCLK_CLK0 + PORT FCLK_CLKTRIG0_N = processing_system7_0_FCLK_CLKTRIG0_N +END + +BEGIN ahblite_axi_bridge + PARAMETER INSTANCE = ahblite_axi_bridge_0 + PARAMETER HW_VER = 1.00.a + PARAMETER C_AHB_AXI_TIMEOUT = 0 + PARAMETER C_BASEADDR = 0x6c000000 + PARAMETER C_HIGHADDR = 0x6c00ffff + BUS_INTERFACE M_AXI = axi_interconnect_0 + PORT S_AHB_HCLK = processing_system7_0_FCLK_CLK0 + PORT S_AHB_HSEL = ahblite_axi_bridge_0_S_AHB_HSEL + PORT S_AHB_HADDR = ahblite_axi_bridge_0_S_AHB_HADDR + PORT S_AHB_HPROT = ahblite_axi_bridge_0_S_AHB_HPROT + PORT S_AHB_HTRANS = ahblite_axi_bridge_0_S_AHB_HTRANS + PORT S_AHB_HSIZE = ahblite_axi_bridge_0_S_AHB_HSIZE + PORT S_AHB_HWRITE = ahblite_axi_bridge_0_S_AHB_HWRITE + PORT S_AHB_HBURST = ahblite_axi_bridge_0_S_AHB_HBURST + PORT S_AHB_HWDATA = ahblite_axi_bridge_0_S_AHB_HWDATA + PORT S_AHB_HREADY_OUT = ahblite_axi_bridge_0_S_AHB_HREADY_OUT + PORT S_AHB_HREADY_IN = ahblite_axi_bridge_0_S_AHB_HREADY_IN + PORT S_AHB_HRDATA = ahblite_axi_bridge_0_S_AHB_HRDATA + PORT S_AHB_HRESP = ahblite_axi_bridge_0_S_AHB_HRESP +END + +BEGIN axi_interconnect + PARAMETER INSTANCE = axi_interconnect_0 + PARAMETER HW_VER = 1.06.a + PORT INTERCONNECT_ACLK = processing_system7_0_FCLK_CLK0 + PORT INTERCONNECT_ARESETN = processing_system7_0_FCLK_RESET0_N +END + diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/leon3_zedboard.xmp b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/leon3_zedboard.xmp new file mode 100644 index 00000000..b4fe03fc --- /dev/null +++ b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/leon3_zedboard.xmp @@ -0,0 +1,29 @@ +#Please do not modify this file by hand +XmpVersion: 14.3 +VerMgmt: 14.3 +IntStyle: default +Flow: ise +MHS File: leon3_zedboard.mhs +Architecture: zynq +Device: xc7z020 +Package: clg484 +SpeedGrade: -1 +UserCmd1: +UserCmd1Type: 0 +UserCmd2: +UserCmd2Type: 0 +GenSimTB: 0 +SdkExportBmmBit: 1 +SdkExportDir: SDK/SDK_Export +InsertNoPads: 1 +WarnForEAArch: 1 +HdlLang: vhdl +SimModel: BEHAVIORAL +ExternalMemSim: 0 +UcfFile: data/leon3_zedboard.ucf +EnableParTimingError: 1 +ShowLicenseDialog: 1 +BInfo: ZEDBOARD +Processor: processing_system7_0 +ElfImp: +ElfSim: diff --git a/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/pcores/.gitignore b/designs/leon3-digilent-xc7z020/edk_files/leon3_zedboard/pcores/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/designs/leon3-ge-hpe-mini/lconfig.tk b/designs/leon3-digilent-xc7z020/lconfig.tk similarity index 65% rename from designs/leon3-ge-hpe-mini/lconfig.tk rename to designs/leon3-digilent-xc7z020/lconfig.tk index ab9acc64..8df44c31 100755 --- a/designs/leon3-ge-hpe-mini/lconfig.tk +++ b/designs/leon3-digilent-xc7z020/lconfig.tk @@ -644,7 +644,7 @@ set active_menus [list] set processed_top_level 0 set ARCH sparc set menus_per_column 4 -set total_menus 23 +set total_menus 17 proc toplevel_menu {num} { if {$num == 4} then {return 3} @@ -655,17 +655,12 @@ proc toplevel_menu {num} { if {$num == 9} then {return 3} if {$num == 10} then {return 3} if {$num == 14} then {return 13} - if {$num == 15} then {return 14} - if {$num == 16} then {return 14} - if {$num == 17} then {return 13} - if {$num == 18} then {return 13} - if {$num == 19} then {return 13} - if {$num == 20} then {return 13} - if {$num == 21} then {return 13} + if {$num == 15} then {return 13} + if {$num == 16} then {return 13} return $num } -mainmenu_name "LEON3MINI Design Configuration" +mainmenu_name "LEON3MP Zedboard Design Configuration" menu_option menu1 1 "Synthesis " proc menu1 {w title} { set oldFocus [focus] @@ -755,7 +750,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -765,7 +761,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -908,8 +906,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -928,6 +928,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1017,9 +1021,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1073,10 +1078,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1122,14 +1128,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1202,13 +1210,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1248,22 +1264,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1320,21 +1604,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1381,36 +1665,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1418,48 +1703,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1515,27 +1801,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1576,16 +1862,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1594,34 +1881,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1678,92 +1966,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1771,18 +2059,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1823,52 +2111,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1876,162 +2165,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2087,45 +2377,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2165,18 +2457,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2184,55 +2477,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2289,24 +2587,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2346,17 +2644,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2364,37 +2663,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2450,16 +2750,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2507,9 +2814,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2531,21 +2836,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2851,24 +3161,7 @@ proc menu12 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART - bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG - bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 - hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB - hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB - hex $w.config.f 12 6 "MSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHMSB - hex $w.config.f 12 7 "LSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHLSB - bool $w.config.f 12 8 "Programmable 4-bit LSB of MAC/IP address" CONFIG_DSU_ETH_PROG - bool $w.config.f 12 9 "EDCL disable pin " CONFIG_DSU_ETH_DIS + bool $w.config.f 12 0 "JTAG Debug Link" CONFIG_DSU_JTAG @@ -2905,62 +3198,12 @@ proc menu12 {w title} { } proc update_menu12 {} { - global CONFIG_GRETH_ENABLE - global CONFIG_DSU_ETH - if {($CONFIG_GRETH_ENABLE == 1)} then { - configure_entry .menu12.config.f.x2 normal {n l y}} else {configure_entry .menu12.config.f.x2 disabled {y n l}} - 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}} - global CONFIG_DSU_IPMSB - 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} - global CONFIG_DSU_IPLSB - 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} - global CONFIG_DSU_ETHMSB - 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} - global CONFIG_DSU_ETHLSB - 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} - global CONFIG_GRETH_GIGA - global CONFIG_DSU_ETH_PROG - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - configure_entry .menu12.config.f.x8 normal {n l y}} else {configure_entry .menu12.config.f.x8 disabled {y n l}} - global CONFIG_DSU_ETH_DIS - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - configure_entry .menu12.config.f.x9 normal {n l y}} else {configure_entry .menu12.config.f.x9 disabled {y n l}} } proc update_define_menu12 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_GRETH_ENABLE - global CONFIG_DSU_ETH - if {($CONFIG_GRETH_ENABLE == 1)} then { - set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 - global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} - global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} - global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} - global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} - global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} - global CONFIG_DSU_IPMSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} - global CONFIG_DSU_IPLSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPLSB "$CONFIG_DSU_IPLSB" 0033} - global CONFIG_DSU_ETHMSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_ETHMSB "$CONFIG_DSU_ETHMSB" 020000} - global CONFIG_DSU_ETHLSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_ETHLSB "$CONFIG_DSU_ETHLSB" 000000} - global CONFIG_GRETH_GIGA - global CONFIG_DSU_ETH_PROG - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - set CONFIG_DSU_ETH_PROG [expr $CONFIG_DSU_ETH_PROG&15]} else {set CONFIG_DSU_ETH_PROG [expr $CONFIG_DSU_ETH_PROG|16]} - global CONFIG_DSU_ETH_DIS - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - set CONFIG_DSU_ETH_DIS [expr $CONFIG_DSU_ETH_DIS&15]} else {set CONFIG_DSU_ETH_DIS [expr $CONFIG_DSU_ETH_DIS|16]} } @@ -3015,12 +3258,9 @@ proc menu13 {w title} { pack $w.config.canvas -side right -fill y - submenu $w.config.f 13 0 "Memory controllers " 14 - submenu $w.config.f 13 1 "On-chip RAM/ROM " 17 - submenu $w.config.f 13 2 "Ethernet " 18 - submenu $w.config.f 13 3 "UARTs, timers and irq control " 19 - submenu $w.config.f 13 4 "ATA Controller" 20 - submenu $w.config.f 13 5 "Keybord and VGA interface" 21 + submenu $w.config.f 13 0 "Memory controller " 14 + submenu $w.config.f 13 1 "On-chip RAM/ROM " 15 + submenu $w.config.f 13 2 "UARTs, timers and irq control " 16 @@ -3075,12 +3315,12 @@ proc menu14 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 14]] message $w.m -width 400 -aspect 300 -text \ - "Memory controllers " -relief raised + "Memory controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "Memory controllers " + wm title $w "Memory controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 14; break" - set nextscript "catch {focus $oldFocus}; menu15 .menu15 \"$title\"" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 14; menu15 .menu15 \"$title\"" frame $w.f button $w.f.back -text "OK" \ -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 14" @@ -3117,8 +3357,8 @@ proc menu14 {w title} { pack $w.config.canvas -side right -fill y - submenu $w.config.f 14 0 "8/32-bit PROM/SRAM controller " 15 - submenu $w.config.f 14 1 "Leon2 memory controller " 16 + bool $w.config.f 14 0 "Enable AHB Status Register " CONFIG_AHBSTAT_ENABLE + int $w.config.f 14 1 "Number of correctable-error slaves " CONFIG_AHBSTAT_NFTSLV @@ -3156,27 +3396,33 @@ proc menu14 {w title} { } proc update_menu14 {} { + global CONFIG_AHBSTAT_ENABLE + global CONFIG_AHBSTAT_NFTSLV + if {($CONFIG_AHBSTAT_ENABLE == 1)} then {.menu14.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu14.config.f.x1.l configure -state normal; } else {.menu14.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu14.config.f.x1.l configure -state disabled} } proc update_define_menu14 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_AHBSTAT_ENABLE + global CONFIG_AHBSTAT_NFTSLV + if {($CONFIG_AHBSTAT_ENABLE == 1)} then {validate_int CONFIG_AHBSTAT_NFTSLV "$CONFIG_AHBSTAT_NFTSLV" 1} } proc menu15 {w title} { set oldFocus [focus] - catch {focus .menu14} + catch {focus .menu13} catch {destroy $w; unregister_active 15} toplevel $w -class Dialog wm withdraw $w global active_menus set active_menus [lsort -integer [linsert $active_menus end 15]] message $w.m -width 400 -aspect 300 -text \ - "8/32-bit PROM/SRAM controller " -relief raised + "On-chip RAM/ROM " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "8/32-bit PROM/SRAM controller " + wm title $w "On-chip RAM/ROM " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 15; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 15; menu16 .menu16 \"$title\"" @@ -3216,48 +3462,30 @@ proc menu15 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 15 0 "Enable 8/32-bit PROM/SRAM controller " CONFIG_SRCTRL - bool $w.config.f 15 1 "8-bit PROM interface " CONFIG_SRCTRL_8BIT - int $w.config.f 15 2 "PROM waitstates" CONFIG_SRCTRL_PROMWS - int $w.config.f 15 3 "RAM waitstates" CONFIG_SRCTRL_RAMWS - int $w.config.f 15 4 "IO waitstates" CONFIG_SRCTRL_IOWS - bool $w.config.f 15 5 "Use read-modify-write for sub-word writes " CONFIG_SRCTRL_RMW - global tmpvar_27 - minimenu $w.config.f 15 6 "SRAM banks" tmpvar_27 CONFIG_SRCTRL_SRBANKS1 - menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"SRAM banks\"" - $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_27 -value "3" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_27 -value "5" -command "update_active" - menusplit $w $w.config.f.x6.x.menu 5 - global tmpvar_28 - minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_28 CONFIG_SRCTRL_BANKSZ0 - menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"SRAM bank size (kb) (0 for programmable)\"" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_28 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_28 -value "256" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_28 -value "512" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_28 -value "1024" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_28 -value "2048" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_28 -value "4096" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_28 -value "8192" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_28 -value "16384" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_28 -value "32768" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_28 -value "65536" -command "update_active" - menusplit $w $w.config.f.x7.x.menu 14 - int $w.config.f 15 8 "PROM bank select address bit (0 - 28)" CONFIG_SRCTRL_ROMASEL + bool $w.config.f 15 0 "On-chip AHB ROM " CONFIG_AHBROM_ENABLE + hex $w.config.f 15 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START + bool $w.config.f 15 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE + bool $w.config.f 15 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE + global tmpvar_29 + minimenu $w.config.f 15 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 + menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 7 + hex $w.config.f 15 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START focus $w update_active global winx; global winy - if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers "} - set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30] + if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} + set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f @@ -3287,102 +3515,64 @@ proc menu15 {w title} { } proc update_menu15 {} { - global CONFIG_SRCTRL - global CONFIG_SRCTRL_8BIT - if {($CONFIG_SRCTRL == 1)} then { - configure_entry .menu15.config.f.x1 normal {n l y}} else {configure_entry .menu15.config.f.x1 disabled {y n l}} - global CONFIG_SRCTRL_PROMWS - 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} - global CONFIG_SRCTRL_RAMWS - 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} - global CONFIG_SRCTRL_IOWS - 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} - global CONFIG_SRCTRL_RMW - if {($CONFIG_SRCTRL == 1)} then { - configure_entry .menu15.config.f.x5 normal {n l y}} else {configure_entry .menu15.config.f.x5 disabled {y n l}} - if {($CONFIG_SRCTRL == 1)} then {configure_entry .menu15.config.f.x6 normal {x l}} else {configure_entry .menu15.config.f.x6 disabled {x l}} - if {($CONFIG_SRCTRL == 1)} then {configure_entry .menu15.config.f.x7 normal {x l}} else {configure_entry .menu15.config.f.x7 disabled {x l}} - global CONFIG_SRCTRL_ROMASEL - 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} + global CONFIG_AHBROM_ENABLE + global CONFIG_AHBROM_START + if {($CONFIG_AHBROM_ENABLE == 1)} then {.menu15.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu15.config.f.x1.l configure -state normal; } else {.menu15.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu15.config.f.x1.l configure -state disabled} + global CONFIG_AHBROM_PIPE + if {($CONFIG_AHBROM_ENABLE == 1)} then { + configure_entry .menu15.config.f.x2 normal {n l y}} else {configure_entry .menu15.config.f.x2 disabled {y n l}} + global CONFIG_AHBRAM_ENABLE + if {($CONFIG_AHBRAM_ENABLE == 1)} then {configure_entry .menu15.config.f.x4 normal {x l}} else {configure_entry .menu15.config.f.x4 disabled {x l}} + global CONFIG_AHBRAM_START + if {($CONFIG_AHBRAM_ENABLE == 1)} then {.menu15.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu15.config.f.x5.l configure -state normal; } else {.menu15.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu15.config.f.x5.l configure -state disabled} } proc update_define_menu15 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_SRCTRL - global CONFIG_SRCTRL_8BIT - if {($CONFIG_SRCTRL == 1)} then { - set CONFIG_SRCTRL_8BIT [expr $CONFIG_SRCTRL_8BIT&15]} else {set CONFIG_SRCTRL_8BIT [expr $CONFIG_SRCTRL_8BIT|16]} - global CONFIG_SRCTRL_PROMWS - if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_PROMWS "$CONFIG_SRCTRL_PROMWS" 3} - global CONFIG_SRCTRL_RAMWS - if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_RAMWS "$CONFIG_SRCTRL_RAMWS" 0} - global CONFIG_SRCTRL_IOWS - if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_IOWS "$CONFIG_SRCTRL_IOWS" 0} - global CONFIG_SRCTRL_RMW - if {($CONFIG_SRCTRL == 1)} then { - set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW&15]} else {set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW|16]} - global tmpvar_27 - global CONFIG_SRCTRL_SRBANKS1 - if {$tmpvar_27 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} - global CONFIG_SRCTRL_SRBANKS2 - if {$tmpvar_27 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} - global CONFIG_SRCTRL_SRBANKS3 - if {$tmpvar_27 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} - global CONFIG_SRCTRL_SRBANKS4 - if {$tmpvar_27 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} - global CONFIG_SRCTRL_SRBANKS5 - if {$tmpvar_27 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} - global tmpvar_28 - global CONFIG_SRCTRL_BANKSZ0 - if {$tmpvar_28 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} - global CONFIG_SRCTRL_BANKSZ1 - if {$tmpvar_28 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} - global CONFIG_SRCTRL_BANKSZ2 - if {$tmpvar_28 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} - global CONFIG_SRCTRL_BANKSZ3 - if {$tmpvar_28 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} - global CONFIG_SRCTRL_BANKSZ4 - if {$tmpvar_28 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} - global CONFIG_SRCTRL_BANKSZ5 - if {$tmpvar_28 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} - global CONFIG_SRCTRL_BANKSZ6 - if {$tmpvar_28 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} - global CONFIG_SRCTRL_BANKSZ7 - if {$tmpvar_28 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} - global CONFIG_SRCTRL_BANKSZ8 - if {$tmpvar_28 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} - global CONFIG_SRCTRL_BANKSZ9 - if {$tmpvar_28 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} - global CONFIG_SRCTRL_BANKSZ10 - if {$tmpvar_28 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} - global CONFIG_SRCTRL_BANKSZ11 - if {$tmpvar_28 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} - global CONFIG_SRCTRL_BANKSZ12 - if {$tmpvar_28 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} - global CONFIG_SRCTRL_BANKSZ13 - if {$tmpvar_28 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} - global CONFIG_SRCTRL_ROMASEL - if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_ROMASEL "$CONFIG_SRCTRL_ROMASEL" 19} + global CONFIG_AHBROM_ENABLE + global CONFIG_AHBROM_START + if {($CONFIG_AHBROM_ENABLE == 1)} then {validate_hex CONFIG_AHBROM_START "$CONFIG_AHBROM_START" 000} + global CONFIG_AHBROM_PIPE + if {($CONFIG_AHBROM_ENABLE == 1)} then { + set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} + global tmpvar_29 + global CONFIG_AHBRAM_SZ1 + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + global CONFIG_AHBRAM_SZ2 + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + global CONFIG_AHBRAM_SZ4 + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + global CONFIG_AHBRAM_SZ8 + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + global CONFIG_AHBRAM_SZ16 + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + global CONFIG_AHBRAM_SZ32 + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + global CONFIG_AHBRAM_SZ64 + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + global CONFIG_AHBRAM_ENABLE + global CONFIG_AHBRAM_START + if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} } proc menu16 {w title} { set oldFocus [focus] - catch {focus .menu14} + catch {focus .menu13} catch {destroy $w; unregister_active 16} toplevel $w -class Dialog wm withdraw $w global active_menus set active_menus [lsort -integer [linsert $active_menus end 16]] message $w.m -width 400 -aspect 300 -text \ - "Leon2 memory controller " -relief raised + "UARTs, timers and irq control " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "Leon2 memory controller " + wm title $w "UARTs, timers and irq control " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 16; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 16; catch {destroy .menu14}; unregister_active 14; menu17 .menu17 \"$title\"" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 16; catch {destroy .menu13}; unregister_active 13; menu17 .menu17 \"$title\"" frame $w.f button $w.f.back -text "OK" \ -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 16" @@ -3419,24 +3609,39 @@ proc menu16 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 16 0 "Enable Leon2 memory controller " CONFIG_MCTRL_LEON2 - bool $w.config.f 16 1 "8-bit PROM/SRAM bus support " CONFIG_MCTRL_8BIT - bool $w.config.f 16 2 "16-bit PROM/SRAM bus support " CONFIG_MCTRL_16BIT - bool $w.config.f 16 3 "5th SRAM chip-select " CONFIG_MCTRL_5CS - bool $w.config.f 16 4 "SDRAM controller " CONFIG_MCTRL_SDRAM - bool $w.config.f 16 5 "Separate address and data buses" CONFIG_MCTRL_SDRAM_SEPBUS - bool $w.config.f 16 6 "64-bit SDRAM data bus" CONFIG_MCTRL_SDRAM_BUS64 - bool $w.config.f 16 7 "Unsynchronized sdclock" CONFIG_MCTRL_SDRAM_INVCLK - bool $w.config.f 16 8 "Enable page burst operation " CONFIG_MCTRL_PAGE - bool $w.config.f 16 9 "Enable programmable page burst " CONFIG_MCTRL_PROGPAGE + bool $w.config.f 16 0 "Enable console UART " CONFIG_UART1_ENABLE + global tmpvar_30 + minimenu $w.config.f 16 1 "UART1 FIFO depth" tmpvar_30 CONFIG_UA1_FIFO1 + menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + menusplit $w $w.config.f.x1.x.menu 6 + bool $w.config.f 16 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE + bool $w.config.f 16 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC + int $w.config.f 16 4 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC + bool $w.config.f 16 5 "Enable Timer Unit " CONFIG_GPT_ENABLE + int $w.config.f 16 6 "Number of timers (1 - 7) " CONFIG_GPT_NTIM + int $w.config.f 16 7 "Scaler width (2 - 16) " CONFIG_GPT_SW + int $w.config.f 16 8 "Timer width (2 - 32) " CONFIG_GPT_TW + int $w.config.f 16 9 "Timer unit interrupt " CONFIG_GPT_IRQ + bool $w.config.f 16 10 "Separate interrupts " CONFIG_GPT_SEPIRQ + bool $w.config.f 16 11 "Watchdog enable " CONFIG_GPT_WDOGEN + hex $w.config.f 16 12 "Initial watchdog time-out value " CONFIG_GPT_WDOG + bool $w.config.f 16 13 "Enable generic GPIO port " CONFIG_GRGPIO_ENABLE + int $w.config.f 16 14 "GPIO width " CONFIG_GRGPIO_WIDTH + hex $w.config.f 16 15 "GPIO interrupt mask " CONFIG_GRGPIO_IMASK focus $w update_active global winx; global winy - if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers "} - set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30] + if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} + set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f @@ -3466,879 +3671,111 @@ proc menu16 {w title} { } proc update_menu16 {} { - global CONFIG_MCTRL_LEON2 - global CONFIG_MCTRL_8BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu16.config.f.x1 normal {n l y}} else {configure_entry .menu16.config.f.x1 disabled {y n l}} - global CONFIG_MCTRL_16BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu16.config.f.x2 normal {n l y}} else {configure_entry .menu16.config.f.x2 disabled {y n l}} - global CONFIG_MCTRL_5CS - if {($CONFIG_MCTRL_LEON2 == 1)} then { + global CONFIG_UART1_ENABLE + if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu16.config.f.x1 normal {x l}} else {configure_entry .menu16.config.f.x1 disabled {x l}} + global CONFIG_IRQ3_ENABLE + global CONFIG_IRQ3_SEC + if {($CONFIG_IRQ3_ENABLE == 1)} then { configure_entry .menu16.config.f.x3 normal {n l y}} else {configure_entry .menu16.config.f.x3 disabled {y n l}} - global CONFIG_MCTRL_SDRAM - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu16.config.f.x4 normal {n l y}} else {configure_entry .menu16.config.f.x4 disabled {y n l}} - global CONFIG_MCTRL_SDRAM_SEPBUS - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - configure_entry .menu16.config.f.x5 normal {n l y}} else {configure_entry .menu16.config.f.x5 disabled {y n l}} - global CONFIG_MCTRL_SDRAM_BUS64 - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - configure_entry .menu16.config.f.x6 normal {n l y}} else {configure_entry .menu16.config.f.x6 disabled {y n l}} - global CONFIG_MCTRL_SDRAM_INVCLK - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - configure_entry .menu16.config.f.x7 normal {n l y}} else {configure_entry .menu16.config.f.x7 disabled {y n l}} - global CONFIG_MCTRL_PAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - configure_entry .menu16.config.f.x8 normal {n l y}} else {configure_entry .menu16.config.f.x8 disabled {y n l}} - global CONFIG_MCTRL_PROGPAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then { - configure_entry .menu16.config.f.x9 normal {n l y}} else {configure_entry .menu16.config.f.x9 disabled {y n l}} + global CONFIG_IRQ3_NSEC + if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {.menu16.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x4.l configure -state normal; } else {.menu16.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x4.l configure -state disabled} + global CONFIG_GPT_ENABLE + global CONFIG_GPT_NTIM + if {($CONFIG_GPT_ENABLE == 1)} then {.menu16.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x6.l configure -state normal; } else {.menu16.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x6.l configure -state disabled} + global CONFIG_GPT_SW + if {($CONFIG_GPT_ENABLE == 1)} then {.menu16.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x7.l configure -state normal; } else {.menu16.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x7.l configure -state disabled} + global CONFIG_GPT_TW + if {($CONFIG_GPT_ENABLE == 1)} then {.menu16.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x8.l configure -state normal; } else {.menu16.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x8.l configure -state disabled} + global CONFIG_GPT_IRQ + if {($CONFIG_GPT_ENABLE == 1)} then {.menu16.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x9.l configure -state normal; } else {.menu16.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x9.l configure -state disabled} + global CONFIG_GPT_SEPIRQ + if {($CONFIG_GPT_ENABLE == 1)} then { + configure_entry .menu16.config.f.x10 normal {n l y}} else {configure_entry .menu16.config.f.x10 disabled {y n l}} + global CONFIG_GPT_WDOGEN + if {($CONFIG_GPT_ENABLE == 1)} then { + configure_entry .menu16.config.f.x11 normal {n l y}} else {configure_entry .menu16.config.f.x11 disabled {y n l}} + global CONFIG_GPT_WDOG + if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu16.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x12.l configure -state normal; } else {.menu16.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x12.l configure -state disabled} + global CONFIG_GRGPIO_ENABLE + global CONFIG_GRGPIO_WIDTH + if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu16.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x14.l configure -state normal; } else {.menu16.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x14.l configure -state disabled} + global CONFIG_GRGPIO_IMASK + if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu16.config.f.x15.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x15.l configure -state normal; } else {.menu16.config.f.x15.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x15.l configure -state disabled} } proc update_define_menu16 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_MCTRL_LEON2 - global CONFIG_MCTRL_8BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT&15]} else {set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT|16]} - global CONFIG_MCTRL_16BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT&15]} else {set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT|16]} - global CONFIG_MCTRL_5CS - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS&15]} else {set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS|16]} - global CONFIG_MCTRL_SDRAM - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM&15]} else {set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM|16]} - global CONFIG_MCTRL_SDRAM_SEPBUS - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS&15]} else {set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS|16]} - global CONFIG_MCTRL_SDRAM_BUS64 - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64&15]} else {set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64|16]} - global CONFIG_MCTRL_SDRAM_INVCLK - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK&15]} else {set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK|16]} - global CONFIG_MCTRL_PAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE&15]} else {set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE|16]} - global CONFIG_MCTRL_PROGPAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then { - set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE&15]} else {set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE|16]} -} - - -proc menu17 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 17} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 17]] - message $w.m -width 400 -aspect 300 -text \ - "On-chip RAM/ROM " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "On-chip RAM/ROM " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 17; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu18 .menu18 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 17" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu16 .menu16 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu16 .menu16 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 17 0 "On-chip AHB ROM " CONFIG_AHBROM_ENABLE - hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START - bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE - bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_29 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 - menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 7 - hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu17 {} { - global CONFIG_AHBROM_ENABLE - global CONFIG_AHBROM_START - if {($CONFIG_AHBROM_ENABLE == 1)} then {.menu17.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x1.l configure -state normal; } else {.menu17.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x1.l configure -state disabled} - global CONFIG_AHBROM_PIPE - if {($CONFIG_AHBROM_ENABLE == 1)} then { - configure_entry .menu17.config.f.x2 normal {n l y}} else {configure_entry .menu17.config.f.x2 disabled {y n l}} - global CONFIG_AHBRAM_ENABLE - if {($CONFIG_AHBRAM_ENABLE == 1)} then {configure_entry .menu17.config.f.x4 normal {x l}} else {configure_entry .menu17.config.f.x4 disabled {x l}} - global CONFIG_AHBRAM_START - if {($CONFIG_AHBRAM_ENABLE == 1)} then {.menu17.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x5.l configure -state normal; } else {.menu17.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x5.l configure -state disabled} -} - - -proc update_define_menu17 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_AHBROM_ENABLE - global CONFIG_AHBROM_START - if {($CONFIG_AHBROM_ENABLE == 1)} then {validate_hex CONFIG_AHBROM_START "$CONFIG_AHBROM_START" 000} - global CONFIG_AHBROM_PIPE - if {($CONFIG_AHBROM_ENABLE == 1)} then { - set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_29 - global CONFIG_AHBRAM_SZ1 - if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} - global CONFIG_AHBRAM_SZ2 - if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} - global CONFIG_AHBRAM_SZ4 - if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} - global CONFIG_AHBRAM_SZ8 - if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} - global CONFIG_AHBRAM_SZ16 - if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} - global CONFIG_AHBRAM_SZ32 - if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} - global CONFIG_AHBRAM_SZ64 - if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} - global CONFIG_AHBRAM_ENABLE - global CONFIG_AHBRAM_START - if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} -} - - -proc menu18 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 18} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 18]] - message $w.m -width 400 -aspect 300 -text \ - "Ethernet " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Ethernet " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 18; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu19 .menu19 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu17 .menu17 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu17 .menu17 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 18 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE - bool $w.config.f 18 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_30 - minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 5 - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu18 {} { - global CONFIG_GRETH_ENABLE - global CONFIG_GRETH_GIGA - if {($CONFIG_GRETH_ENABLE == 1)} then { - configure_entry .menu18.config.f.x1 normal {n l y}} else {configure_entry .menu18.config.f.x1 disabled {y n l}} - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then {configure_entry .menu18.config.f.x2 normal {x l}} else {configure_entry .menu18.config.f.x2 disabled {x l}} -} - - -proc update_define_menu18 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_GRETH_ENABLE - global CONFIG_GRETH_GIGA - if {($CONFIG_GRETH_ENABLE == 1)} then { - set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_30 - global CONFIG_GRETH_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} - global CONFIG_GRETH_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} - global CONFIG_GRETH_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} - global CONFIG_GRETH_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} - global CONFIG_GRETH_FIFO64 - if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} -} - - -proc menu19 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 19} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 19]] - message $w.m -width 400 -aspect 300 -text \ - "UARTs, timers and irq control " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "UARTs, timers and irq control " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu20 .menu20 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 19 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_31 - minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 6 - bool $w.config.f 19 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE - bool $w.config.f 19 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC - int $w.config.f 19 4 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC - bool $w.config.f 19 5 "Enable Timer Unit " CONFIG_GPT_ENABLE - int $w.config.f 19 6 "Number of timers (1 - 7) " CONFIG_GPT_NTIM - int $w.config.f 19 7 "Scaler width (2 - 16) " CONFIG_GPT_SW - int $w.config.f 19 8 "Timer width (2 - 32) " CONFIG_GPT_TW - int $w.config.f 19 9 "Timer unit interrupt " CONFIG_GPT_IRQ - bool $w.config.f 19 10 "Separate interrupts " CONFIG_GPT_SEPIRQ - bool $w.config.f 19 11 "Watchdog enable " CONFIG_GPT_WDOGEN - hex $w.config.f 19 12 "Initial watchdog time-out value " CONFIG_GPT_WDOG - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu19 {} { - global CONFIG_UART1_ENABLE - if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu19.config.f.x1 normal {x l}} else {configure_entry .menu19.config.f.x1 disabled {x l}} - global CONFIG_IRQ3_ENABLE - global CONFIG_IRQ3_SEC - if {($CONFIG_IRQ3_ENABLE == 1)} then { - configure_entry .menu19.config.f.x3 normal {n l y}} else {configure_entry .menu19.config.f.x3 disabled {y n l}} - global CONFIG_IRQ3_NSEC - if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {.menu19.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x4.l configure -state normal; } else {.menu19.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x4.l configure -state disabled} - global CONFIG_GPT_ENABLE - global CONFIG_GPT_NTIM - if {($CONFIG_GPT_ENABLE == 1)} then {.menu19.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x6.l configure -state normal; } else {.menu19.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x6.l configure -state disabled} - global CONFIG_GPT_SW - if {($CONFIG_GPT_ENABLE == 1)} then {.menu19.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x7.l configure -state normal; } else {.menu19.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x7.l configure -state disabled} - global CONFIG_GPT_TW - if {($CONFIG_GPT_ENABLE == 1)} then {.menu19.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x8.l configure -state normal; } else {.menu19.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x8.l configure -state disabled} - global CONFIG_GPT_IRQ - if {($CONFIG_GPT_ENABLE == 1)} then {.menu19.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x9.l configure -state normal; } else {.menu19.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x9.l configure -state disabled} - global CONFIG_GPT_SEPIRQ - if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu19.config.f.x10 normal {n l y}} else {configure_entry .menu19.config.f.x10 disabled {y n l}} - global CONFIG_GPT_WDOGEN - if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu19.config.f.x11 normal {n l y}} else {configure_entry .menu19.config.f.x11 disabled {y n l}} - global CONFIG_GPT_WDOG - if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu19.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x12.l configure -state normal; } else {.menu19.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x12.l configure -state disabled} -} - - -proc update_define_menu19 {} { - update_define_mainmenu - global CONFIG_MODULES - global tmpvar_31 - global CONFIG_UA1_FIFO1 - if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} - global CONFIG_UA1_FIFO2 - if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} - global CONFIG_UA1_FIFO4 - if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} - global CONFIG_UA1_FIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} - global CONFIG_UA1_FIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} - global CONFIG_UA1_FIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} - global CONFIG_IRQ3_ENABLE - global CONFIG_IRQ3_SEC - if {($CONFIG_IRQ3_ENABLE == 1)} then { - set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC&15]} else {set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC|16]} - global CONFIG_IRQ3_NSEC - if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {validate_int CONFIG_IRQ3_NSEC "$CONFIG_IRQ3_NSEC" 12} - global CONFIG_GPT_ENABLE - global CONFIG_GPT_NTIM - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_NTIM "$CONFIG_GPT_NTIM" 2} - global CONFIG_GPT_SW - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_SW "$CONFIG_GPT_SW" 8} - global CONFIG_GPT_TW - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_TW "$CONFIG_GPT_TW" 32} - global CONFIG_GPT_IRQ - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_IRQ "$CONFIG_GPT_IRQ" 8} - global CONFIG_GPT_SEPIRQ - if {($CONFIG_GPT_ENABLE == 1)} then { - set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ&15]} else {set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ|16]} - global CONFIG_GPT_WDOGEN - if {($CONFIG_GPT_ENABLE == 1)} then { - set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN&15]} else {set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN|16]} - global CONFIG_GPT_WDOG - if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {validate_hex CONFIG_GPT_WDOG "$CONFIG_GPT_WDOG" FFFF} -} - - -proc menu20 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 20} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 20]] - message $w.m -width 400 -aspect 300 -text \ - "ATA Controller" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "ATA Controller" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu21 .menu21 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 20 0 "Enable ATA interface " CONFIG_ATA_ENABLE - hex $w.config.f 20 1 "ATA I/O area start address (haddr\[19:8\]) " CONFIG_ATAIO - int $w.config.f 20 2 "Interrupt number " CONFIG_ATAIRQ - bool $w.config.f 20 3 "Enable MWDMA support " CONFIG_ATA_MWDMA - int $w.config.f 20 4 "FIFO depth " CONFIG_ATA_FIFO - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu20 {} { - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {.menu20.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x1.l configure -state normal; } else {.menu20.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x1.l configure -state disabled} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {.menu20.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x2.l configure -state normal; } else {.menu20.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x2.l configure -state disabled} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - configure_entry .menu20.config.f.x3 normal {n l y}} else {configure_entry .menu20.config.f.x3 disabled {y n l}} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {.menu20.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x4.l configure -state normal; } else {.menu20.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x4.l configure -state disabled} -} - - -proc update_define_menu20 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {validate_hex CONFIG_ATAIO "$CONFIG_ATAIO" A00} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {validate_int CONFIG_ATAIRQ "$CONFIG_ATAIRQ" 10} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA&15]} else {set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA|16]} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {validate_int CONFIG_ATA_FIFO "$CONFIG_ATA_FIFO" 8} -} - - -proc menu21 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 21} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 21]] - message $w.m -width 400 -aspect 300 -text \ - "Keybord and VGA interface" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Keybord and VGA interface" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 21; catch {destroy .menu13}; unregister_active 13; menu22 .menu22 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 21 0 "Keyboard/mouse (PS2) interface " CONFIG_KBD_ENABLE - bool $w.config.f 21 1 "Text-based VGA interface " CONFIG_VGA_ENABLE - bool $w.config.f 21 2 "SVGA graphical frame buffer " CONFIG_SVGA_ENABLE - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu21 {} { - global CONFIG_VGA_ENABLE - global CONFIG_SVGA_ENABLE - if {($CONFIG_VGA_ENABLE == 0)} then { - configure_entry .menu21.config.f.x2 normal {n l y}} else {configure_entry .menu21.config.f.x2 disabled {y n l}} -} - - -proc update_define_menu21 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_VGA_ENABLE - global CONFIG_SVGA_ENABLE - if {($CONFIG_VGA_ENABLE == 0)} then { - set CONFIG_SVGA_ENABLE [expr $CONFIG_SVGA_ENABLE&15]} else {set CONFIG_SVGA_ENABLE [expr $CONFIG_SVGA_ENABLE|16]} -} - - -menu_option menu22 22 "Gleichmann Options " -proc menu22 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 22} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 22]] - message $w.m -width 400 -aspect 300 -text \ - "Gleichmann Options " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Gleichmann Options " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu23 .menu23 \"$title\"" - frame $w.f - button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 22 0 "AHB2HPI Bridge" CONFIG_AHB2HPI_ENABLE - bool $w.config.f 22 1 "DAC AHB" CONFIG_DAC_AHB_ENABLE - - - - focus $w - update_active - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu22 {} { -} - - -proc update_define_menu22 {} { - update_define_mainmenu - global CONFIG_MODULES + global tmpvar_30 + global CONFIG_UA1_FIFO1 + if {$tmpvar_30 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + global CONFIG_UA1_FIFO2 + if {$tmpvar_30 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + global CONFIG_UA1_FIFO4 + if {$tmpvar_30 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + global CONFIG_UA1_FIFO8 + if {$tmpvar_30 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + global CONFIG_UA1_FIFO16 + if {$tmpvar_30 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + global CONFIG_UA1_FIFO32 + if {$tmpvar_30 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + global CONFIG_IRQ3_ENABLE + global CONFIG_IRQ3_SEC + if {($CONFIG_IRQ3_ENABLE == 1)} then { + set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC&15]} else {set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC|16]} + global CONFIG_IRQ3_NSEC + if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {validate_int CONFIG_IRQ3_NSEC "$CONFIG_IRQ3_NSEC" 12} + global CONFIG_GPT_ENABLE + global CONFIG_GPT_NTIM + if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_NTIM "$CONFIG_GPT_NTIM" 2} + global CONFIG_GPT_SW + if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_SW "$CONFIG_GPT_SW" 8} + global CONFIG_GPT_TW + if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_TW "$CONFIG_GPT_TW" 32} + global CONFIG_GPT_IRQ + if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_IRQ "$CONFIG_GPT_IRQ" 8} + global CONFIG_GPT_SEPIRQ + if {($CONFIG_GPT_ENABLE == 1)} then { + set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ&15]} else {set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ|16]} + global CONFIG_GPT_WDOGEN + if {($CONFIG_GPT_ENABLE == 1)} then { + set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN&15]} else {set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN|16]} + global CONFIG_GPT_WDOG + if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {validate_hex CONFIG_GPT_WDOG "$CONFIG_GPT_WDOG" FFFF} + global CONFIG_GRGPIO_ENABLE + global CONFIG_GRGPIO_WIDTH + if {($CONFIG_GRGPIO_ENABLE == 1)} then {validate_int CONFIG_GRGPIO_WIDTH "$CONFIG_GRGPIO_WIDTH" 8} + global CONFIG_GRGPIO_IMASK + if {($CONFIG_GRGPIO_ENABLE == 1)} then {validate_hex CONFIG_GRGPIO_IMASK "$CONFIG_GRGPIO_IMASK" 0000} } -menu_option menu23 23 "VHDL Debugging " -proc menu23 {w title} { +menu_option menu17 17 "VHDL Debugging " +proc menu17 {w title} { set oldFocus [focus] - catch {destroy $w; unregister_active 23} + catch {destroy $w; unregister_active 17} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 23]] + set active_menus [lsort -integer [linsert $active_menus end 17]] message $w.m -width 400 -aspect 300 -text \ "VHDL Debugging " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "VHDL Debugging " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; break" - set nextscript "catch {focus $oldFocus}; menu24 .menu24 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 17; break" + set nextscript "catch {focus $oldFocus}; menu18 .menu18 \"$title\"" frame $w.f button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 17" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript $w.f.next configure -state disabled bind all "puts \"no more menus\" " button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu16 .menu16 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu16 .menu16 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4366,7 +3803,7 @@ proc menu23 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 23 0 "Accelerated UART tracing " CONFIG_DEBUG_UART + bool $w.config.f 17 0 "Accelerated UART tracing " CONFIG_DEBUG_UART @@ -4402,11 +3839,11 @@ proc menu23 {w title} { } } -proc update_menu23 {} { +proc update_menu17 {} { } -proc update_define_menu23 {} { +proc update_define_menu17 {} { update_define_mainmenu global CONFIG_MODULES } @@ -4452,7 +3889,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4462,6 +3900,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4486,6 +3926,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4498,14 +3939,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4518,27 +3964,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4548,17 +3994,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4570,12 +4016,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4585,10 +4031,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4599,7 +4045,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4611,26 +4057,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4638,27 +4086,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4676,59 +4128,9 @@ set CONFIG_AHB_MON 0 set CONFIG_AHB_MONERR 0 set CONFIG_AHB_MONWAR 0 set CONFIG_AHB_DTRACE 0 -set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 -set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" -set CONFIG_DSU_ETHSZ1 0 -set CONFIG_DSU_ETHSZ2 0 -set CONFIG_DSU_ETHSZ4 0 -set CONFIG_DSU_ETHSZ8 0 -set CONFIG_DSU_ETHSZ16 0 -set CONFIG_DSU_IPMSB C0A8 -set CONFIG_DSU_IPLSB 0033 -set CONFIG_DSU_ETHMSB 020000 -set CONFIG_DSU_ETHLSB 000000 -set CONFIG_DSU_ETH_PROG 0 -set CONFIG_DSU_ETH_DIS 0 -set CONFIG_SRCTRL 0 -set CONFIG_SRCTRL_8BIT 0 -set CONFIG_SRCTRL_PROMWS 3 -set CONFIG_SRCTRL_RAMWS 0 -set CONFIG_SRCTRL_IOWS 0 -set CONFIG_SRCTRL_RMW 0 -set tmpvar_27 "(not set)" -set CONFIG_SRCTRL_SRBANKS1 0 -set CONFIG_SRCTRL_SRBANKS2 0 -set CONFIG_SRCTRL_SRBANKS3 0 -set CONFIG_SRCTRL_SRBANKS4 0 -set CONFIG_SRCTRL_SRBANKS5 0 -set tmpvar_28 "(not set)" -set CONFIG_SRCTRL_BANKSZ0 0 -set CONFIG_SRCTRL_BANKSZ1 0 -set CONFIG_SRCTRL_BANKSZ2 0 -set CONFIG_SRCTRL_BANKSZ3 0 -set CONFIG_SRCTRL_BANKSZ4 0 -set CONFIG_SRCTRL_BANKSZ5 0 -set CONFIG_SRCTRL_BANKSZ6 0 -set CONFIG_SRCTRL_BANKSZ7 0 -set CONFIG_SRCTRL_BANKSZ8 0 -set CONFIG_SRCTRL_BANKSZ9 0 -set CONFIG_SRCTRL_BANKSZ10 0 -set CONFIG_SRCTRL_BANKSZ11 0 -set CONFIG_SRCTRL_BANKSZ12 0 -set CONFIG_SRCTRL_BANKSZ13 0 -set CONFIG_SRCTRL_ROMASEL 19 -set CONFIG_MCTRL_LEON2 0 -set CONFIG_MCTRL_8BIT 0 -set CONFIG_MCTRL_16BIT 0 -set CONFIG_MCTRL_5CS 0 -set CONFIG_MCTRL_SDRAM 0 -set CONFIG_MCTRL_SDRAM_SEPBUS 0 -set CONFIG_MCTRL_SDRAM_BUS64 0 -set CONFIG_MCTRL_SDRAM_INVCLK 0 -set CONFIG_MCTRL_PAGE 0 -set CONFIG_MCTRL_PROGPAGE 0 +set CONFIG_AHBSTAT_ENABLE 0 +set CONFIG_AHBSTAT_NFTSLV 1 set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 @@ -4742,16 +4144,8 @@ set CONFIG_AHBRAM_SZ16 0 set CONFIG_AHBRAM_SZ32 0 set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 -set CONFIG_GRETH_ENABLE 0 -set CONFIG_GRETH_GIGA 0 -set tmpvar_30 "(not set)" -set CONFIG_GRETH_FIFO4 0 -set CONFIG_GRETH_FIFO8 0 -set CONFIG_GRETH_FIFO16 0 -set CONFIG_GRETH_FIFO32 0 -set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_31 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4769,21 +4163,28 @@ set CONFIG_GPT_IRQ 8 set CONFIG_GPT_SEPIRQ 0 set CONFIG_GPT_WDOGEN 0 set CONFIG_GPT_WDOG FFFF -set CONFIG_ATA_ENABLE 0 -set CONFIG_ATAIO A00 -set CONFIG_ATAIRQ 10 -set CONFIG_ATA_MWDMA 0 -set CONFIG_ATA_FIFO 8 -set CONFIG_KBD_ENABLE 0 -set CONFIG_VGA_ENABLE 0 -set CONFIG_SVGA_ENABLE 0 -set CONFIG_AHB2HPI_ENABLE 0 -set CONFIG_DAC_AHB_ENABLE 0 +set CONFIG_GRGPIO_ENABLE 0 +set CONFIG_GRGPIO_WIDTH 8 +set CONFIG_GRGPIO_IMASK 0000 set CONFIG_DEBUG_UART 0 set CONFIG_SYN_ARTISAN 4 set CONFIG_PCI_ENABLE 4 set CONFIG_HAS_SHARED_GRFPU 4 set CONFIG_FPU_GRFPU_SH 4 +set CONFIG_GRETH_ENABLE 4 +set CONFIG_DSU_ETH 4 +set CONFIG_DSU_ETHSZ1 4 +set CONFIG_DSU_ETHSZ2 4 +set CONFIG_DSU_ETHSZ4 4 +set CONFIG_DSU_ETHSZ8 4 +set CONFIG_DSU_ETHSZ16 4 +set CONFIG_DSU_IPMSB 4 +set CONFIG_DSU_IPLSB 4 +set CONFIG_DSU_ETHMSB 4 +set CONFIG_DSU_ETHLSB 4 +set CONFIG_GRETH_GIGA 4 +set CONFIG_DSU_ETH_PROG 4 +set CONFIG_DSU_ETH_DIS 4 set CONFIG_MODULES 4 proc writeconfig {file1 file2} { set cfg [open $file1 w] @@ -4835,7 +4236,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4845,6 +4247,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4883,6 +4287,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4895,9 +4300,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4911,239 +4317,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5181,94 +4737,14 @@ proc writeconfig {file1 file2} { global CONFIG_AHB_DTRACE write_tristate $cfg $autocfg CONFIG_AHB_DTRACE $CONFIG_AHB_DTRACE [list $notmod] 2 write_comment $cfg $autocfg "Debug Link " - global CONFIG_DSU_UART - write_tristate $cfg $autocfg CONFIG_DSU_UART $CONFIG_DSU_UART [list $notmod] 2 global CONFIG_DSU_JTAG write_tristate $cfg $autocfg CONFIG_DSU_JTAG $CONFIG_DSU_JTAG [list $notmod] 2 - global CONFIG_DSU_ETH - global CONFIG_GRETH_ENABLE - if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} - global CONFIG_DSU_IPMSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } - global CONFIG_DSU_IPLSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPLSB $CONFIG_DSU_IPLSB $notmod } - global CONFIG_DSU_ETHMSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_ETHMSB $CONFIG_DSU_ETHMSB $notmod } - global CONFIG_DSU_ETHLSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_ETHLSB $CONFIG_DSU_ETHLSB $notmod } - global CONFIG_DSU_ETH_PROG - global CONFIG_GRETH_GIGA - 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 } - global CONFIG_DSU_ETH_DIS - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH_DIS $CONFIG_DSU_ETH_DIS [list $notmod] 2 } write_comment $cfg $autocfg "Peripherals " - write_comment $cfg $autocfg "Memory controllers " - write_comment $cfg $autocfg "8/32-bit PROM/SRAM controller " - global CONFIG_SRCTRL - write_tristate $cfg $autocfg CONFIG_SRCTRL $CONFIG_SRCTRL [list $notmod] 2 - global CONFIG_SRCTRL_8BIT - if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_8BIT $CONFIG_SRCTRL_8BIT [list $notmod] 2 } - global CONFIG_SRCTRL_PROMWS - if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_PROMWS $CONFIG_SRCTRL_PROMWS $notmod } - global CONFIG_SRCTRL_RAMWS - if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_RAMWS $CONFIG_SRCTRL_RAMWS $notmod } - global CONFIG_SRCTRL_IOWS - if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_IOWS $CONFIG_SRCTRL_IOWS $notmod } - global CONFIG_SRCTRL_RMW - if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_RMW $CONFIG_SRCTRL_RMW [list $notmod] 2 } - global tmpvar_27 - if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} - global tmpvar_28 - if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} - global CONFIG_SRCTRL_ROMASEL - if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_ROMASEL $CONFIG_SRCTRL_ROMASEL $notmod } - write_comment $cfg $autocfg "Leon2 memory controller " - global CONFIG_MCTRL_LEON2 - write_tristate $cfg $autocfg CONFIG_MCTRL_LEON2 $CONFIG_MCTRL_LEON2 [list $notmod] 2 - global CONFIG_MCTRL_8BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_8BIT $CONFIG_MCTRL_8BIT [list $notmod] 2 } - global CONFIG_MCTRL_16BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_16BIT $CONFIG_MCTRL_16BIT [list $notmod] 2 } - global CONFIG_MCTRL_5CS - if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_5CS $CONFIG_MCTRL_5CS [list $notmod] 2 } - global CONFIG_MCTRL_SDRAM - if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_SDRAM $CONFIG_MCTRL_SDRAM [list $notmod] 2 } - global CONFIG_MCTRL_SDRAM_SEPBUS - 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 } - global CONFIG_MCTRL_SDRAM_BUS64 - 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 } - global CONFIG_MCTRL_SDRAM_INVCLK - 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 } - global CONFIG_MCTRL_PAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_PAGE $CONFIG_MCTRL_PAGE [list $notmod] 2 } - global CONFIG_MCTRL_PROGPAGE - 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 } + write_comment $cfg $autocfg "Memory controller " + global CONFIG_AHBSTAT_ENABLE + write_tristate $cfg $autocfg CONFIG_AHBSTAT_ENABLE $CONFIG_AHBSTAT_ENABLE [list $notmod] 2 + global CONFIG_AHBSTAT_NFTSLV + if {($CONFIG_AHBSTAT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_AHBSTAT_NFTSLV $CONFIG_AHBSTAT_NFTSLV $notmod } write_comment $cfg $autocfg "On-chip RAM/ROM " global CONFIG_AHBROM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBROM_ENABLE $CONFIG_AHBROM_ENABLE [list $notmod] 2 @@ -5289,27 +4765,17 @@ proc writeconfig {file1 file2} { if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } - write_comment $cfg $autocfg "Ethernet " - write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 - if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_30 - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_31 + global tmpvar_30 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5332,29 +4798,12 @@ proc writeconfig {file1 file2} { if {($CONFIG_GPT_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GPT_WDOGEN $CONFIG_GPT_WDOGEN [list $notmod] 2 } global CONFIG_GPT_WDOG if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {write_hex $cfg $autocfg CONFIG_GPT_WDOG $CONFIG_GPT_WDOG $notmod } - write_comment $cfg $autocfg "ATA Controller" - global CONFIG_ATA_ENABLE - write_tristate $cfg $autocfg CONFIG_ATA_ENABLE $CONFIG_ATA_ENABLE [list $notmod] 2 - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_ATAIO $CONFIG_ATAIO $notmod } - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_ATAIRQ $CONFIG_ATAIRQ $notmod } - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_ATA_MWDMA $CONFIG_ATA_MWDMA [list $notmod] 2 } - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {write_int $cfg $autocfg CONFIG_ATA_FIFO $CONFIG_ATA_FIFO $notmod } - write_comment $cfg $autocfg "Keybord and VGA interface" - global CONFIG_KBD_ENABLE - write_tristate $cfg $autocfg CONFIG_KBD_ENABLE $CONFIG_KBD_ENABLE [list $notmod] 2 - global CONFIG_VGA_ENABLE - write_tristate $cfg $autocfg CONFIG_VGA_ENABLE $CONFIG_VGA_ENABLE [list $notmod] 2 - global CONFIG_SVGA_ENABLE - if {($CONFIG_VGA_ENABLE == 0)} then {write_tristate $cfg $autocfg CONFIG_SVGA_ENABLE $CONFIG_SVGA_ENABLE [list $notmod] 2 } - write_comment $cfg $autocfg "Gleichmann Options " - global CONFIG_AHB2HPI_ENABLE - write_tristate $cfg $autocfg CONFIG_AHB2HPI_ENABLE $CONFIG_AHB2HPI_ENABLE [list $notmod] 2 - global CONFIG_DAC_AHB_ENABLE - write_tristate $cfg $autocfg CONFIG_DAC_AHB_ENABLE $CONFIG_DAC_AHB_ENABLE [list $notmod] 2 + global CONFIG_GRGPIO_ENABLE + write_tristate $cfg $autocfg CONFIG_GRGPIO_ENABLE $CONFIG_GRGPIO_ENABLE [list $notmod] 2 + global CONFIG_GRGPIO_WIDTH + if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRGPIO_WIDTH $CONFIG_GRGPIO_WIDTH $notmod } + global CONFIG_GRGPIO_IMASK + if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_GRGPIO_IMASK $CONFIG_GRGPIO_IMASK $notmod } write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -5399,7 +4848,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5409,6 +4859,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5427,8 +4879,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5511,11 +4968,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5536,30 +4995,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 - global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 - global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 - global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 - global CONFIG_DSU_ETHSZ8; set CONFIG_DSU_ETHSZ8 0 - global CONFIG_DSU_ETHSZ16; set CONFIG_DSU_ETHSZ16 0 - global CONFIG_SRCTRL_SRBANKS1; set CONFIG_SRCTRL_SRBANKS1 0 - global CONFIG_SRCTRL_SRBANKS2; set CONFIG_SRCTRL_SRBANKS2 0 - global CONFIG_SRCTRL_SRBANKS3; set CONFIG_SRCTRL_SRBANKS3 0 - global CONFIG_SRCTRL_SRBANKS4; set CONFIG_SRCTRL_SRBANKS4 0 - global CONFIG_SRCTRL_SRBANKS5; set CONFIG_SRCTRL_SRBANKS5 0 - global CONFIG_SRCTRL_BANKSZ0; set CONFIG_SRCTRL_BANKSZ0 0 - global CONFIG_SRCTRL_BANKSZ1; set CONFIG_SRCTRL_BANKSZ1 0 - global CONFIG_SRCTRL_BANKSZ2; set CONFIG_SRCTRL_BANKSZ2 0 - global CONFIG_SRCTRL_BANKSZ3; set CONFIG_SRCTRL_BANKSZ3 0 - global CONFIG_SRCTRL_BANKSZ4; set CONFIG_SRCTRL_BANKSZ4 0 - global CONFIG_SRCTRL_BANKSZ5; set CONFIG_SRCTRL_BANKSZ5 0 - global CONFIG_SRCTRL_BANKSZ6; set CONFIG_SRCTRL_BANKSZ6 0 - global CONFIG_SRCTRL_BANKSZ7; set CONFIG_SRCTRL_BANKSZ7 0 - global CONFIG_SRCTRL_BANKSZ8; set CONFIG_SRCTRL_BANKSZ8 0 - global CONFIG_SRCTRL_BANKSZ9; set CONFIG_SRCTRL_BANKSZ9 0 - global CONFIG_SRCTRL_BANKSZ10; set CONFIG_SRCTRL_BANKSZ10 0 - global CONFIG_SRCTRL_BANKSZ11; set CONFIG_SRCTRL_BANKSZ11 0 - global CONFIG_SRCTRL_BANKSZ12; set CONFIG_SRCTRL_BANKSZ12 0 - global CONFIG_SRCTRL_BANKSZ13; set CONFIG_SRCTRL_BANKSZ13 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0 global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0 global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0 @@ -5567,11 +5006,6 @@ proc clear_choices { } { global CONFIG_AHBRAM_SZ16; set CONFIG_AHBRAM_SZ16 0 global CONFIG_AHBRAM_SZ32; set CONFIG_AHBRAM_SZ32 0 global CONFIG_AHBRAM_SZ64; set CONFIG_AHBRAM_SZ64 0 - global CONFIG_GRETH_FIFO4; set CONFIG_GRETH_FIFO4 0 - global CONFIG_GRETH_FIFO8; set CONFIG_GRETH_FIFO8 0 - global CONFIG_GRETH_FIFO16; set CONFIG_GRETH_FIFO16 0 - global CONFIG_GRETH_FIFO32; set CONFIG_GRETH_FIFO32 0 - global CONFIG_GRETH_FIFO64; set CONFIG_GRETH_FIFO64 0 global CONFIG_UA1_FIFO1; set CONFIG_UA1_FIFO1 0 global CONFIG_UA1_FIFO2; set CONFIG_UA1_FIFO2 0 global CONFIG_UA1_FIFO4; set CONFIG_UA1_FIFO4 0 @@ -5654,8 +5088,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5674,6 +5110,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5714,324 +5154,296 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" - global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } - global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } - global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } - global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } - global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } global tmpvar_27 - set tmpvar_27 "1" - global CONFIG_SRCTRL_SRBANKS1 - if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_27 "1" } - global CONFIG_SRCTRL_SRBANKS2 - if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_27 "2" } - global CONFIG_SRCTRL_SRBANKS3 - if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_27 "3" } - global CONFIG_SRCTRL_SRBANKS4 - if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_27 "4" } - global CONFIG_SRCTRL_SRBANKS5 - if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_27 "5" } - global tmpvar_28 - set tmpvar_28 "0" - global CONFIG_SRCTRL_BANKSZ0 - if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_28 "8" } - global CONFIG_SRCTRL_BANKSZ1 - if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_28 "16" } - global CONFIG_SRCTRL_BANKSZ2 - if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_28 "32" } - global CONFIG_SRCTRL_BANKSZ3 - if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_28 "64" } - global CONFIG_SRCTRL_BANKSZ4 - if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_28 "128" } - global CONFIG_SRCTRL_BANKSZ5 - if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_28 "256" } - global CONFIG_SRCTRL_BANKSZ6 - if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_28 "512" } - global CONFIG_SRCTRL_BANKSZ7 - if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_28 "1024" } - global CONFIG_SRCTRL_BANKSZ8 - if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_28 "2048" } - global CONFIG_SRCTRL_BANKSZ9 - if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_28 "4096" } - global CONFIG_SRCTRL_BANKSZ10 - if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_28 "8192" } - global CONFIG_SRCTRL_BANKSZ11 - if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_28 "16384" } - global CONFIG_SRCTRL_BANKSZ12 - if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_28 "32768" } - global CONFIG_SRCTRL_BANKSZ13 - if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_28 "65536" } + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } global tmpvar_29 set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 @@ -6049,31 +5461,19 @@ proc update_choices { } { global CONFIG_AHBRAM_SZ64 if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } global tmpvar_30 - set tmpvar_30 "8" - global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } - global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } - global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } - global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } - global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } - global tmpvar_31 - set tmpvar_31 "1" + set tmpvar_30 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_30 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_30 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_30 "32" } } diff --git a/designs/leon3-digilent-xc7z020/leon3_zedboard_stub_sim.vhd b/designs/leon3-digilent-xc7z020/leon3_zedboard_stub_sim.vhd new file mode 100644 index 00000000..26f00a95 --- /dev/null +++ b/designs/leon3-digilent-xc7z020/leon3_zedboard_stub_sim.vhd @@ -0,0 +1,65 @@ +------------------------------------------------------------------------------- +-- leon3_zedboard_stub.vhd +------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; + +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; + +entity leon3_zedboard_stub is + port ( + processing_system7_0_MIO : inout std_logic_vector(53 downto 0); + processing_system7_0_PS_SRSTB : in std_logic; + processing_system7_0_PS_CLK : in std_logic; + processing_system7_0_PS_PORB : in std_logic; + processing_system7_0_DDR_Clk : inout std_logic; + processing_system7_0_DDR_Clk_n : inout std_logic; + processing_system7_0_DDR_CKE : inout std_logic; + processing_system7_0_DDR_CS_n : inout std_logic; + processing_system7_0_DDR_RAS_n : inout std_logic; + processing_system7_0_DDR_CAS_n : inout std_logic; + processing_system7_0_DDR_WEB_pin : out std_logic; + processing_system7_0_DDR_BankAddr : inout std_logic_vector(2 downto 0); + processing_system7_0_DDR_Addr : inout std_logic_vector(14 downto 0); + processing_system7_0_DDR_ODT : inout std_logic; + processing_system7_0_DDR_DRSTB : inout std_logic; + processing_system7_0_DDR_DQ : inout std_logic_vector(31 downto 0); + processing_system7_0_DDR_DM : inout std_logic_vector(3 downto 0); + processing_system7_0_DDR_DQS : inout std_logic_vector(3 downto 0); + processing_system7_0_DDR_DQS_n : inout std_logic_vector(3 downto 0); + processing_system7_0_DDR_VRN : inout std_logic; + processing_system7_0_DDR_VRP : inout std_logic; + ahblite_axi_bridge_0_S_AHB_HSEL_pin : in std_logic; + ahblite_axi_bridge_0_S_AHB_HADDR_pin : in std_logic_vector(31 downto 0); + ahblite_axi_bridge_0_S_AHB_HPROT_pin : in std_logic_vector(3 downto 0); + ahblite_axi_bridge_0_S_AHB_HTRANS_pin : in std_logic_vector(1 downto 0); + ahblite_axi_bridge_0_S_AHB_HSIZE_pin : in std_logic_vector(2 downto 0); + ahblite_axi_bridge_0_S_AHB_HWRITE_pin : in std_logic; + ahblite_axi_bridge_0_S_AHB_HBURST_pin : in std_logic_vector(2 downto 0); + ahblite_axi_bridge_0_S_AHB_HWDATA_pin : in std_logic_vector(31 downto 0); + ahblite_axi_bridge_0_S_AHB_HREADY_OUT_pin : out std_logic; + ahblite_axi_bridge_0_S_AHB_HREADY_IN_pin : in std_logic; + ahblite_axi_bridge_0_S_AHB_HRDATA_pin : out std_logic_vector(31 downto 0); + ahblite_axi_bridge_0_S_AHB_HRESP_pin : out std_logic; + processing_system7_0_FCLK_CLK0_pin : out std_logic; + processing_system7_0_FCLK_RESET0_N_pin : out std_logic; + processing_system7_0_FCLK_CLKTRIG0_N_pin : in std_logic + ); +end leon3_zedboard_stub; + +architecture STRUCTURE of leon3_zedboard_stub is + +signal gclk : std_logic := '0'; +signal rst : std_logic := '0'; + +begin + + gclk <= not gclk after 10.0 ns; + rst <= '1' after 1 us; + + processing_system7_0_FCLK_CLK0_pin <= gclk; + processing_system7_0_FCLK_RESET0_N_pin <= rst; + +end architecture STRUCTURE; + diff --git a/designs/leon3-digilent-xc7z020/leon3mp.vhd b/designs/leon3-digilent-xc7z020/leon3mp.vhd new file mode 100644 index 00000000..3c127c5e --- /dev/null +++ b/designs/leon3-digilent-xc7z020/leon3mp.vhd @@ -0,0 +1,457 @@ +----------------------------------------------------------------------------- +-- LEON3 Zedboard Demonstration design +-- Copyright (C) 2012 Fredrik Ringhage, Aeroflex Gaisler +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; +library grlib, techmap; +use grlib.amba.all; +use grlib.stdlib.all; +use grlib.devices.all; +use grlib.config_types.all; +use grlib.config.all; +use techmap.gencomp.all; +use techmap.allclkgen.all; +library gaisler; +use gaisler.leon3.all; +use gaisler.uart.all; +use gaisler.misc.all; +use gaisler.i2c.all; +use gaisler.net.all; +use gaisler.jtag.all; +-- pragma translate_off +use gaisler.sim.all; +library unisim; +use unisim.all; +-- pragma translate_on + +use work.config.all; + +entity leon3mp is + generic ( + fabtech : integer := CFG_FABTECH; + memtech : integer := CFG_MEMTECH; + padtech : integer := CFG_PADTECH; + clktech : integer := CFG_CLKTECH; + disas : integer := CFG_DISAS; -- Enable disassembly to console + dbguart : integer := CFG_DUART; -- Print UART on console + pclow : integer := CFG_PCLOW; + testahb : boolean := false + ); + port ( + processing_system7_0_MIO : inout std_logic_vector(53 downto 0); + processing_system7_0_PS_SRSTB : in std_logic; + processing_system7_0_PS_CLK : in std_logic; + processing_system7_0_PS_PORB : in std_logic; + processing_system7_0_DDR_Clk : inout std_logic; + processing_system7_0_DDR_Clk_n : inout std_logic; + processing_system7_0_DDR_CKE : inout std_logic; + processing_system7_0_DDR_CS_n : inout std_logic; + processing_system7_0_DDR_RAS_n : inout std_logic; + processing_system7_0_DDR_CAS_n : inout std_logic; + processing_system7_0_DDR_WEB_pin : out std_logic; + processing_system7_0_DDR_BankAddr : inout std_logic_vector(2 downto 0); + processing_system7_0_DDR_Addr : inout std_logic_vector(14 downto 0); + processing_system7_0_DDR_ODT : inout std_logic; + processing_system7_0_DDR_DRSTB : inout std_logic; + processing_system7_0_DDR_DQ : inout std_logic_vector(31 downto 0); + processing_system7_0_DDR_DM : inout std_logic_vector(3 downto 0); + processing_system7_0_DDR_DQS : inout std_logic_vector(3 downto 0); + processing_system7_0_DDR_DQS_n : inout std_logic_vector(3 downto 0); + processing_system7_0_DDR_VRN : inout std_logic; + processing_system7_0_DDR_VRP : inout std_logic; + button : in std_logic_vector(3 downto 0); + switch : inout std_logic_vector(7 downto 0); + led : out std_logic_vector(7 downto 0) + ); +end; + +architecture rtl of leon3mp is + +constant use_ps_block : boolean := true; + +constant hconfig : ahb_config_type := ( + 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_MIG_SERIES7, 0, 0, 0), + 4 => ahb_membar(16#000#, '1', '1', 16#F80#), + others => zero32); + +constant maxahbm : integer := CFG_NCPU+CFG_AHB_JTAG; +constant maxahbs : integer := 1+CFG_DSU+CFG_AHBROMEN+CFG_AHBRAMEN+1+2; +constant maxapbs : integer := CFG_IRQ3_ENABLE+CFG_GPT_ENABLE+CFG_GRGPIO_ENABLE+CFG_AHBSTAT; + +signal vcc, gnd : std_logic; + +signal apbi : apb_slv_in_type; +signal apbo : apb_slv_out_vector := (others => apb_none); +signal ahbsi : ahb_slv_in_type; +signal ahbso : ahb_slv_out_vector := (others => ahbs_none); +signal ahbmi : ahb_mst_in_type; +signal vahbmi : ahb_mst_in_type; +signal ahbmo : ahb_mst_out_vector := (others => ahbm_none); +signal vahbmo : ahb_mst_out_type; + +signal clkm, rstn, rstraw, sdclkl : std_ulogic; + +signal cgi, cgi2 : clkgen_in_type; +signal cgo, cgo2 : clkgen_out_type; +signal u1i, u2i, dui : uart_in_type; +signal u1o, u2o, duo : uart_out_type; + +signal irqi : irq_in_vector(0 to CFG_NCPU-1); +signal irqo : irq_out_vector(0 to CFG_NCPU-1); + +signal dbgi : l3_debug_in_vector(0 to CFG_NCPU-1); +signal dbgo : l3_debug_out_vector(0 to CFG_NCPU-1); + +signal dsui : dsu_in_type; +signal dsuo : dsu_out_type; + +signal rxd1 : std_logic; +signal txd1 : std_logic; + +signal ethi : eth_in_type; +signal etho : eth_out_type; +signal egtx_clk :std_ulogic; +signal negtx_clk :std_ulogic; + +signal gpti : gptimer_in_type; +signal gpto : gptimer_out_type; + +signal gpioi : gpio_in_type; +signal gpioo : gpio_out_type; + +signal clklock, elock, ulock : std_ulogic; + +signal lock, calib_done, clkml, lclk, rst, ndsuact : std_ulogic; +signal tck, tckn, tms, tdi, tdo : std_ulogic; + +signal lcd_datal : std_logic_vector(11 downto 0); +signal lcd_hsyncl, lcd_vsyncl, lcd_del, lcd_reset_bl : std_ulogic; + +signal i2ci, dvi_i2ci : i2c_in_type; +signal i2co, dvi_i2co : i2c_out_type; + +constant BOARD_FREQ : integer := 50000; -- input frequency in KHz +constant CPU_FREQ : integer := BOARD_FREQ * CFG_CLKMUL / CFG_CLKDIV; -- cpu frequency in KHz + +signal stati : ahbstat_in_type; + +component leon3_zedboard_stub + port ( + processing_system7_0_MIO : inout std_logic_vector(53 downto 0); + processing_system7_0_PS_SRSTB : in std_logic; + processing_system7_0_PS_CLK : in std_logic; + processing_system7_0_PS_PORB : in std_logic; + processing_system7_0_DDR_Clk : inout std_logic; + processing_system7_0_DDR_Clk_n : inout std_logic; + processing_system7_0_DDR_CKE : inout std_logic; + processing_system7_0_DDR_CS_n : inout std_logic; + processing_system7_0_DDR_RAS_n : inout std_logic; + processing_system7_0_DDR_CAS_n : inout std_logic; + processing_system7_0_DDR_WEB_pin : out std_logic; + processing_system7_0_DDR_BankAddr : inout std_logic_vector(2 downto 0); + processing_system7_0_DDR_Addr : inout std_logic_vector(14 downto 0); + processing_system7_0_DDR_ODT : inout std_logic; + processing_system7_0_DDR_DRSTB : inout std_logic; + processing_system7_0_DDR_DQ : inout std_logic_vector(31 downto 0); + processing_system7_0_DDR_DM : inout std_logic_vector(3 downto 0); + processing_system7_0_DDR_DQS : inout std_logic_vector(3 downto 0); + processing_system7_0_DDR_DQS_n : inout std_logic_vector(3 downto 0); + processing_system7_0_DDR_VRN : inout std_logic; + processing_system7_0_DDR_VRP : inout std_logic; + ahblite_axi_bridge_0_S_AHB_HSEL_pin : in std_logic; + ahblite_axi_bridge_0_S_AHB_HADDR_pin : in std_logic_vector(31 downto 0); + ahblite_axi_bridge_0_S_AHB_HPROT_pin : in std_logic_vector(3 downto 0); + ahblite_axi_bridge_0_S_AHB_HTRANS_pin : in std_logic_vector(1 downto 0); + ahblite_axi_bridge_0_S_AHB_HSIZE_pin : in std_logic_vector(2 downto 0); + ahblite_axi_bridge_0_S_AHB_HWRITE_pin : in std_logic; + ahblite_axi_bridge_0_S_AHB_HBURST_pin : in std_logic_vector(2 downto 0); + ahblite_axi_bridge_0_S_AHB_HWDATA_pin : in std_logic_vector(31 downto 0); + ahblite_axi_bridge_0_S_AHB_HREADY_OUT_pin : out std_logic; + ahblite_axi_bridge_0_S_AHB_HREADY_IN_pin : in std_logic; + ahblite_axi_bridge_0_S_AHB_HRDATA_pin : out std_logic_vector(31 downto 0); + ahblite_axi_bridge_0_S_AHB_HRESP_pin : out std_logic; + processing_system7_0_FCLK_CLK0_pin : out std_logic; + processing_system7_0_FCLK_RESET0_N_pin : out std_logic; + processing_system7_0_FCLK_CLKTRIG0_N_pin : in std_logic + ); +end component; + +begin + +---------------------------------------------------------------------- +--- Reset and Clock generation ------------------------------------- +---------------------------------------------------------------------- + + vcc <= '1'; gnd <= '0'; + + lock <= calib_done ; +---------------------------------------------------------------------- +--- AHB CONTROLLER -------------------------------------------------- +---------------------------------------------------------------------- + + ahb0 : ahbctrl -- AHB arbiter/multiplexer + generic map (defmast => CFG_DEFMST, split => CFG_SPLIT, + rrobin => CFG_RROBIN, ioaddr => CFG_AHBIO, fpnpen => CFG_FPNPEN, + nahbm => maxahbm, nahbs => maxahbs) + port map (rstn, clkm, ahbmi, ahbmo, ahbsi, ahbso); + +---------------------------------------------------------------------- +--- LEON3 processor and DSU ----------------------------------------- +---------------------------------------------------------------------- + + nosh : if CFG_GRFPUSH = 0 generate + cpu : for i in 0 to CFG_NCPU-1 generate + l3ft : if CFG_LEON3FT_EN /= 0 generate + leon3ft0 : leon3ft -- LEON3 processor + generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, + 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, + CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, + CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, + CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, + CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1, + CFG_IUFT_EN, CFG_FPUFT_EN, CFG_CACHE_FT_EN, CFG_RF_ERRINJ, + CFG_CACHE_ERRINJ, CFG_DFIXED, CFG_LEON3_NETLIST, CFG_SCAN, CFG_MMU_PAGE) + port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, + irqi(i), irqo(i), dbgi(i), dbgo(i), clkm); + end generate; + + l3s : if CFG_LEON3FT_EN = 0 generate + u0 : leon3s -- LEON3 processor + generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, + 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, + CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, + CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, + CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, + CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1, + CFG_DFIXED, CFG_SCAN, CFG_MMU_PAGE, CFG_BP) + port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, + irqi(i), irqo(i), dbgi(i), dbgo(i)); + end generate; + end generate; + end generate; + + led1_pad : outpad generic map (tech => padtech, level => cmos, voltage => x33v) port map (led(1), dbgo(0).error); + + dsugen : if CFG_DSU = 1 generate + dsu0 : dsu3 -- LEON3 Debug Support Unit + generic map (hindex => 2, haddr => 16#900#, hmask => 16#F00#, + ncpu => CFG_NCPU, tbits => 30, tech => memtech, irq => 0, kbytes => CFG_ATBSZ) + port map (rstn, clkm, ahbmi, ahbsi, ahbso(2), dbgo, dbgi, dsui, dsuo); + dsui.enable <= '1'; + dsui_break_pad : inpad generic map (level => cmos, voltage => x18v, tech => padtech) port map (button(0), dsui.break); + dsuact_pad : outpad generic map (tech => padtech, level => cmos, voltage => x18v) port map (led(0), ndsuact); + ndsuact <= not dsuo.active; + end generate; + + nodsu : if CFG_DSU = 0 generate + dsuo.tstop <= '0'; dsuo.active <= '0'; ahbso(2) <= ahbs_none; + end generate; + + ahbjtaggen0 :if CFG_AHB_JTAG = 1 generate + ahbjtag0 : ahbjtag generic map(tech => fabtech, hindex => 1) + port map(rstn, clkm, tck, tms, tdi, tdo, ahbmi, ahbmo(1), + open, open, open, open, open, open, open, gnd); + end generate; + + nojtag : if CFG_AHB_JTAG = 0 generate apbo(1) <= apb_none; end generate; + + leon3_zedboard_stub_i : leon3_zedboard_stub + port map ( + processing_system7_0_MIO => processing_system7_0_MIO, + processing_system7_0_PS_SRSTB => processing_system7_0_PS_SRSTB, + processing_system7_0_PS_CLK => processing_system7_0_PS_CLK, + processing_system7_0_PS_PORB => processing_system7_0_PS_PORB, + processing_system7_0_DDR_Clk => processing_system7_0_DDR_Clk, + processing_system7_0_DDR_Clk_n => processing_system7_0_DDR_Clk_n, + processing_system7_0_DDR_CKE => processing_system7_0_DDR_CKE, + processing_system7_0_DDR_CS_n => processing_system7_0_DDR_CS_n, + processing_system7_0_DDR_RAS_n => processing_system7_0_DDR_RAS_n, + processing_system7_0_DDR_CAS_n => processing_system7_0_DDR_CAS_n, + processing_system7_0_DDR_WEB_pin => processing_system7_0_DDR_WEB_pin, + processing_system7_0_DDR_BankAddr => processing_system7_0_DDR_BankAddr, + processing_system7_0_DDR_Addr => processing_system7_0_DDR_Addr, + processing_system7_0_DDR_ODT => processing_system7_0_DDR_ODT, + processing_system7_0_DDR_DRSTB => processing_system7_0_DDR_DRSTB, + processing_system7_0_DDR_DQ => processing_system7_0_DDR_DQ, + processing_system7_0_DDR_DM => processing_system7_0_DDR_DM, + processing_system7_0_DDR_DQS => processing_system7_0_DDR_DQS, + processing_system7_0_DDR_DQS_n => processing_system7_0_DDR_DQS_n, + processing_system7_0_DDR_VRN => processing_system7_0_DDR_VRN, + processing_system7_0_DDR_VRP => processing_system7_0_DDR_VRP, + ahblite_axi_bridge_0_S_AHB_HSEL_pin => ahbsi.hsel(4), + ahblite_axi_bridge_0_S_AHB_HADDR_pin => ahbsi.haddr, + ahblite_axi_bridge_0_S_AHB_HPROT_pin => ahbsi.hprot, + ahblite_axi_bridge_0_S_AHB_HTRANS_pin => ahbsi.htrans, + ahblite_axi_bridge_0_S_AHB_HSIZE_pin => ahbsi.hsize, + ahblite_axi_bridge_0_S_AHB_HWRITE_pin => ahbsi.hwrite, + ahblite_axi_bridge_0_S_AHB_HBURST_pin => ahbsi.hburst, + ahblite_axi_bridge_0_S_AHB_HWDATA_pin => ahbsi.hwdata, + ahblite_axi_bridge_0_S_AHB_HREADY_OUT_pin => ahbso(4).hready, + ahblite_axi_bridge_0_S_AHB_HREADY_IN_pin => ahbsi.hready, + ahblite_axi_bridge_0_S_AHB_HRDATA_pin => ahbso(4).hrdata, + ahblite_axi_bridge_0_S_AHB_HRESP_pin => ahbso(4).hresp(0), + processing_system7_0_FCLK_CLK0_pin => clkm, + processing_system7_0_FCLK_RESET0_N_pin => rstn, + processing_system7_0_FCLK_CLKTRIG0_N_pin => '0' + ); + + calib_done <= '1'; + ahbso(4).hresp(1) <= '0'; + ahbso(4).hconfig <= hconfig; + ahbso(4).hirq <= (others => '0'); + ahbso(4).hindex <= 4; + ahbso(4).hsplit <= (others => '0'); + +---------------------------------------------------------------------- +--- APB Bridge and various periherals ------------------------------- +---------------------------------------------------------------------- + + apb0 : apbctrl -- AHB/APB bridge + generic map (hindex => 1, haddr => CFG_APBADDR, nslaves => 16) + port map (rstn, clkm, ahbsi, ahbso(1), apbi, apbo ); + + irqctrl : if CFG_IRQ3_ENABLE /= 0 generate + irqctrl0 : irqmp -- interrupt controller + generic map (pindex => 2, paddr => 2, ncpu => CFG_NCPU) + port map (rstn, clkm, apbi, apbo(2), irqo, irqi); + end generate; + irq3 : if CFG_IRQ3_ENABLE = 0 generate + x : for i in 0 to CFG_NCPU-1 generate + irqi(i).irl <= "0000"; + end generate; + apbo(2) <= apb_none; + end generate; + + gpt : if CFG_GPT_ENABLE /= 0 generate + timer0 : gptimer -- timer unit + generic map (pindex => 3, paddr => 3, pirq => CFG_GPT_IRQ, + sepirq => CFG_GPT_SEPIRQ, sbits => CFG_GPT_SW, ntimers => CFG_GPT_NTIM, + nbits => CFG_GPT_TW, wdog => 0) + port map (rstn, clkm, apbi, apbo(3), gpti, gpto); + gpti.dhalt <= dsuo.tstop; gpti.extclk <= '0'; + end generate; + + nogpt : if CFG_GPT_ENABLE = 0 generate apbo(3) <= apb_none; end generate; + + gpio0 : if CFG_GRGPIO_ENABLE /= 0 generate -- GPIO unit + grgpio0: grgpio + generic map(pindex => 10, paddr => 10, imask => CFG_GRGPIO_IMASK, nbits => CFG_GRGPIO_WIDTH) + port map(rst => rstn, clk => clkm, apbi => apbi, apbo => apbo(10), + gpioi => gpioi, gpioo => gpioo); + pio_pads : for i in 0 to 7 generate + pio_pad : iopad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (switch(i), gpioo.dout(i), gpioo.oen(i), gpioi.din(i)); + end generate; + pio_pads2 : for i in 8 to 10 generate + pio_pad : inpad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (button(i-8+1), gpioi.din(i)); + end generate; + pio_pads3 : for i in 11 to 14 generate + pio_pad : outpad generic map (tech => padtech, level => cmos, voltage => x33v) + port map (led(i-11+4), gpioo.dout(i)); + end generate; + end generate; + + ua1 : if CFG_UART1_ENABLE /= 0 generate + uart1 : apbuart -- UART 1 + generic map (pindex => 1, paddr => 1, pirq => 2, console => dbguart, + fifosize => CFG_UART1_FIFO) + port map (rstn, clkm, apbi, apbo(1), u1i, u1o); + u1i.rxd <= rxd1; + u1i.ctsn <= '0'; + u1i.extclk <= '0'; + txd1 <= u1o.txd; + serrx_pad : outpad generic map (level => cmos, voltage => x33v, tech => padtech) + port map (led(2), rxd1); + sertx_pad : outpad generic map (level => cmos, voltage => x33v, tech => padtech) + port map (led(3), txd1); + end generate; + noua0 : if CFG_UART1_ENABLE = 0 generate apbo(1) <= apb_none; end generate; + + ahbs : if CFG_AHBSTAT = 1 generate -- AHB status register + ahbstat0 : ahbstat generic map (pindex => 15, paddr => 15, pirq => 7, + nftslv => CFG_AHBSTATN) + port map (rstn, clkm, ahbmi, ahbsi, stati, apbi, apbo(15)); + end generate; + +----------------------------------------------------------------------- +--- AHB ROM ---------------------------------------------------------- +----------------------------------------------------------------------- + + bpromgen : if CFG_AHBROMEN /= 0 generate + brom : entity work.ahbrom + generic map (hindex => 7, haddr => CFG_AHBRODDR, pipe => CFG_AHBROPIP) + port map ( rstn, clkm, ahbsi, ahbso(7)); + end generate; + +----------------------------------------------------------------------- +--- AHB RAM ---------------------------------------------------------- +----------------------------------------------------------------------- + + ocram : if CFG_AHBRAMEN = 1 generate + ahbram0 : ahbram generic map (hindex => 5, haddr => CFG_AHBRADDR, + tech => CFG_MEMTECH, kbytes => CFG_AHBRSZ) + port map ( rstn, clkm, ahbsi, ahbso(5)); + end generate; + +----------------------------------------------------------------------- +--- Test report module ---------------------------------------------- +----------------------------------------------------------------------- + + -- pragma translate_off + test0_gen : if (testahb = true) generate + test0 : ahbrep generic map (hindex => 3, haddr => 16#200#) + port map (rstn, clkm, ahbsi, ahbso(3)); + end generate; + -- pragma translate_on + + test1_gen : if (testahb = false) generate + ahbram0 : ahbram generic map (hindex => 3, haddr => 16#200#, + tech => CFG_MEMTECH, kbytes => CFG_AHBRSZ) + port map ( rstn, clkm, ahbsi, ahbso(3)); + end generate; + + ----------------------------------------------------------------------- + --- Drive unused bus elements --------------------------------------- + ----------------------------------------------------------------------- + + nam1 : for i in (maxahbs+1) to NAHBMST-1 generate + ahbmo(i) <= ahbm_none; + end generate; + + ----------------------------------------------------------------------- + --- Boot message ---------------------------------------------------- + ----------------------------------------------------------------------- + + -- pragma translate_off + x : report_version + generic map ( + msg1 => "LEON3 Xilinx Zedboard Demonstration design", + msg2 => "GRLIB Version " & tost(LIBVHDL_VERSION/1000) & "." & tost((LIBVHDL_VERSION mod 1000)/100) + & "." & tost(LIBVHDL_VERSION mod 100) & ", build " & tost(LIBVHDL_BUILD), + msg3 => "Target technology: " & tech_table(fabtech) & ", memory library: " & tech_table(memtech), + mdel => 1 + ); + -- pragma translate_on + end; + diff --git a/designs/leon3-digilent-xc7z020/testbench.vhd b/designs/leon3-digilent-xc7z020/testbench.vhd new file mode 100644 index 00000000..c4831e7f --- /dev/null +++ b/designs/leon3-digilent-xc7z020/testbench.vhd @@ -0,0 +1,179 @@ +----------------------------------------------------------------------------- +-- LEON3 Demonstration design test bench +-- Copyright (C) 2012 Fredrik Ringhage, Gaisler Research +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; +library gaisler; +use gaisler.libdcom.all; +use gaisler.sim.all; +library grlib; +use grlib.amba.all; +use grlib.stdlib.all; +use grlib.devices.all; +library micron; +use micron.all; +library techmap; +use techmap.gencomp.all; +use work.debug.all; + +use work.config.all; + +entity testbench is + generic ( + fabtech : integer := CFG_FABTECH; + memtech : integer := CFG_MEMTECH; + padtech : integer := CFG_PADTECH; + clktech : integer := CFG_CLKTECH; + disas : integer := CFG_DISAS; -- Enable disassembly to console + dbguart : integer := CFG_DUART; -- Print UART on console + pclow : integer := CFG_PCLOW; + testahb : boolean := true + ); +end; + +architecture behav of testbench is + +constant promfile : string := "prom.srec"; -- rom contents +constant sramfile : string := "sram.srec"; -- ram contents +constant sdramfile : string := "sdram.srec"; -- sdram contents + +signal GND : std_ulogic := '0'; +signal VCC : std_ulogic := '1'; +signal NC : std_ulogic := 'Z'; +signal gclk : std_logic := '0'; +signal rst : std_logic := '0'; +signal button : std_logic_vector(3 downto 0) := (others => '0'); +signal switch : std_logic_vector(7 downto 0); -- I/O port +signal led : std_logic_vector(7 downto 0); -- I/O port + +signal processing_system7_0_MIO : std_logic_vector(53 downto 0); +signal processing_system7_0_PS_SRSTB : std_logic; +signal processing_system7_0_PS_CLK : std_logic; +signal processing_system7_0_PS_PORB : std_logic; +signal processing_system7_0_DDR_Clk : std_logic; +signal processing_system7_0_DDR_Clk_n : std_logic; +signal processing_system7_0_DDR_CKE : std_logic; +signal processing_system7_0_DDR_CS_n : std_logic; +signal processing_system7_0_DDR_RAS_n : std_logic; +signal processing_system7_0_DDR_CAS_n : std_logic; +signal processing_system7_0_DDR_WEB_pin : std_logic; +signal processing_system7_0_DDR_BankAddr : std_logic_vector(2 downto 0); +signal processing_system7_0_DDR_Addr : std_logic_vector(14 downto 0); +signal processing_system7_0_DDR_ODT : std_logic; +signal processing_system7_0_DDR_DRSTB : std_logic; +signal processing_system7_0_DDR_DQ : std_logic_vector(31 downto 0); +signal processing_system7_0_DDR_DM : std_logic_vector(3 downto 0); +signal processing_system7_0_DDR_DQS : std_logic_vector(3 downto 0); +signal processing_system7_0_DDR_DQS_n : std_logic_vector(3 downto 0); +signal processing_system7_0_DDR_VRN : std_logic; +signal processing_system7_0_DDR_VRP : std_logic; + + + +component leon3mp is + generic ( + fabtech : integer := CFG_FABTECH; + memtech : integer := CFG_MEMTECH; + padtech : integer := CFG_PADTECH; + clktech : integer := CFG_CLKTECH; + disas : integer := CFG_DISAS; -- Enable disassembly to console + dbguart : integer := CFG_DUART; -- Print UART on console + pclow : integer := CFG_PCLOW; + testahb : boolean := false + ); + port ( + processing_system7_0_MIO : inout std_logic_vector(53 downto 0); + processing_system7_0_PS_SRSTB : in std_logic; + processing_system7_0_PS_CLK : in std_logic; + processing_system7_0_PS_PORB : in std_logic; + processing_system7_0_DDR_Clk : inout std_logic; + processing_system7_0_DDR_Clk_n : inout std_logic; + processing_system7_0_DDR_CKE : inout std_logic; + processing_system7_0_DDR_CS_n : inout std_logic; + processing_system7_0_DDR_RAS_n : inout std_logic; + processing_system7_0_DDR_CAS_n : inout std_logic; + processing_system7_0_DDR_WEB_pin : out std_logic; + processing_system7_0_DDR_BankAddr : inout std_logic_vector(2 downto 0); + processing_system7_0_DDR_Addr : inout std_logic_vector(14 downto 0); + processing_system7_0_DDR_ODT : inout std_logic; + processing_system7_0_DDR_DRSTB : inout std_logic; + processing_system7_0_DDR_DQ : inout std_logic_vector(31 downto 0); + processing_system7_0_DDR_DM : inout std_logic_vector(3 downto 0); + processing_system7_0_DDR_DQS : inout std_logic_vector(3 downto 0); + processing_system7_0_DDR_DQS_n : inout std_logic_vector(3 downto 0); + processing_system7_0_DDR_VRN : inout std_logic; + processing_system7_0_DDR_VRP : inout std_logic; + button : in std_logic_vector(3 downto 0); + switch : inout std_logic_vector(7 downto 0); + led : out std_logic_vector(7 downto 0) + ); +end component; + +begin + + -- clock, reset and misc + gclk <= not gclk after 5.0 ns; + rst <= '1' after 1 us; + button <= (others => '0'); + switch <= (others => '0'); + + cpu : leon3mp + generic map ( + fabtech => fabtech, + memtech => memtech, + padtech => padtech, + clktech => clktech, + disas => disas, + dbguart => dbguart, + pclow => pclow, + testahb => testahb + ) + port map ( + processing_system7_0_MIO => processing_system7_0_MIO, + processing_system7_0_PS_SRSTB => processing_system7_0_PS_SRSTB, + processing_system7_0_PS_CLK => processing_system7_0_PS_CLK, + processing_system7_0_PS_PORB => processing_system7_0_PS_PORB, + processing_system7_0_DDR_Clk => processing_system7_0_DDR_Clk, + processing_system7_0_DDR_Clk_n => processing_system7_0_DDR_Clk_n, + processing_system7_0_DDR_CKE => processing_system7_0_DDR_CKE, + processing_system7_0_DDR_CS_n => processing_system7_0_DDR_CS_n, + processing_system7_0_DDR_RAS_n => processing_system7_0_DDR_RAS_n, + processing_system7_0_DDR_CAS_n => processing_system7_0_DDR_CAS_n, + processing_system7_0_DDR_WEB_pin => processing_system7_0_DDR_WEB_pin, + processing_system7_0_DDR_BankAddr => processing_system7_0_DDR_BankAddr, + processing_system7_0_DDR_Addr => processing_system7_0_DDR_Addr, + processing_system7_0_DDR_ODT => processing_system7_0_DDR_ODT, + processing_system7_0_DDR_DRSTB => processing_system7_0_DDR_DRSTB, + processing_system7_0_DDR_DQ => processing_system7_0_DDR_DQ, + processing_system7_0_DDR_DM => processing_system7_0_DDR_DM, + processing_system7_0_DDR_DQS => processing_system7_0_DDR_DQS, + processing_system7_0_DDR_DQS_n => processing_system7_0_DDR_DQS_n, + processing_system7_0_DDR_VRN => processing_system7_0_DDR_VRN, + processing_system7_0_DDR_VRP => processing_system7_0_DDR_VRP, + button => button, + switch => switch, + led => led + ); + +end ; + diff --git a/designs/leon3-lattice-latticeECP3/tkconfig.h b/designs/leon3-digilent-xc7z020/tkconfig.h similarity index 93% rename from designs/leon3-lattice-latticeECP3/tkconfig.h rename to designs/leon3-digilent-xc7z020/tkconfig.h index e445f2e3..df1cd987 100644 --- a/designs/leon3-lattice-latticeECP3/tkconfig.h +++ b/designs/leon3-digilent-xc7z020/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -685,11 +707,6 @@ #define CONFIG_AHB_DTRACE 0 #endif -#ifndef CONFIG_DSU_UART -#define CONFIG_DSU_UART 0 -#endif - - #ifndef CONFIG_DSU_JTAG #define CONFIG_DSU_JTAG 0 #endif @@ -738,48 +755,12 @@ #define CONFIG_DSU_ETH_DIS 0 #endif -#ifndef CONFIG_MCTRL_LEON2 -#define CONFIG_MCTRL_LEON2 0 -#endif - -#ifndef CONFIG_MCTRL_SDRAM -#define CONFIG_MCTRL_SDRAM 0 -#endif - -#ifndef CONFIG_MCTRL_SDRAM_SEPBUS -#define CONFIG_MCTRL_SDRAM_SEPBUS 0 -#endif - -#ifndef CONFIG_MCTRL_SDRAM_INVCLK -#define CONFIG_MCTRL_SDRAM_INVCLK 0 -#endif - -#ifndef CONFIG_MCTRL_SDRAM_BUS64 -#define CONFIG_MCTRL_SDRAM_BUS64 0 +#ifndef CONFIG_AHBSTAT_ENABLE +#define CONFIG_AHBSTAT_ENABLE 0 #endif -#ifndef CONFIG_MCTRL_8BIT -#define CONFIG_MCTRL_8BIT 0 -#endif - -#ifndef CONFIG_MCTRL_16BIT -#define CONFIG_MCTRL_16BIT 0 -#endif - -#ifndef CONFIG_MCTRL_5CS -#define CONFIG_MCTRL_5CS 0 -#endif - -#ifndef CONFIG_MCTRL_EDAC -#define CONFIG_MCTRL_EDAC 0 -#endif - -#ifndef CONFIG_MCTRL_PAGE -#define CONFIG_MCTRL_PAGE 0 -#endif - -#ifndef CONFIG_MCTRL_PROGPAGE -#define CONFIG_MCTRL_PROGPAGE 0 +#ifndef CONFIG_AHBSTAT_NFTSLV +#define CONFIG_AHBSTAT_NFTSLV 1 #endif #ifndef CONFIG_AHBROM_ENABLE @@ -827,28 +808,6 @@ #define CFG_AHBRAMSZ 1 #endif -#ifndef CONFIG_GRETH_ENABLE -#define CONFIG_GRETH_ENABLE 0 -#endif - -#ifndef CONFIG_GRETH_GIGA -#define CONFIG_GRETH_GIGA 0 -#endif - -#if defined CONFIG_GRETH_FIFO4 -#define CFG_GRETH_FIFO 4 -#elif defined CONFIG_GRETH_FIFO8 -#define CFG_GRETH_FIFO 8 -#elif defined CONFIG_GRETH_FIFO16 -#define CFG_GRETH_FIFO 16 -#elif defined CONFIG_GRETH_FIFO32 -#define CFG_GRETH_FIFO 32 -#elif defined CONFIG_GRETH_FIFO64 -#define CFG_GRETH_FIFO 64 -#else -#define CFG_GRETH_FIFO 8 -#endif - #ifndef CONFIG_UART1_ENABLE #define CONFIG_UART1_ENABLE 0 #endif @@ -930,6 +889,16 @@ #define CONFIG_GPT_WDOG 0 #endif +#ifndef CONFIG_GRGPIO_ENABLE +#define CONFIG_GRGPIO_ENABLE 0 +#endif +#ifndef CONFIG_GRGPIO_IMASK +#define CONFIG_GRGPIO_IMASK 0000 +#endif +#ifndef CONFIG_GRGPIO_WIDTH +#define CONFIG_GRGPIO_WIDTH 1 +#endif + #ifndef CONFIG_DEBUG_UART #define CONFIG_DEBUG_UART 0 diff --git a/designs/leon3-digilent-xup/Makefile b/designs/leon3-digilent-xup/Makefile index e76d3b5e..f0d7c556 100644 --- a/designs/leon3-digilent-xup/Makefile +++ b/designs/leon3-digilent-xup/Makefile @@ -20,10 +20,10 @@ CLEAN=soft-clean TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF usbhc hynix \ - tmtc openchip cypress ihp gleichmann opencores spw fmf gsi spansion + tmtc openchip cypress ihp opencores spw fmf gsi spansion DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest \ - ata can usb spacewire grusbhc hcan leon4 leon4b64 l2cache \ - slink ascs pwm haps coremp7 gr1553b iommu + can usb spacewire grusbhc hcan leon4 leon4v0 l2cache \ + slink ascs pwm gr1553b iommu FILESKIP = grcan.vhd i2cmst.vhd include $(GRLIB)/bin/Makefile diff --git a/designs/leon3-digilent-xup/ahbrom.vhd b/designs/leon3-digilent-xup/ahbrom.vhd index a56e5a05..9fcdde4d 100644 --- a/designs/leon3-digilent-xup/ahbrom.vhd +++ b/designs/leon3-digilent-xup/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-digilent-xup/config.help b/designs/leon3-digilent-xup/config.help index 28641694..9e839fd0 100644 --- a/designs/leon3-digilent-xup/config.help +++ b/designs/leon3-digilent-xup/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-digilent-xup/lconfig.tk b/designs/leon3-digilent-xup/lconfig.tk index f41ce1f2..3d97c098 100755 --- a/designs/leon3-digilent-xup/lconfig.tk +++ b/designs/leon3-digilent-xup/lconfig.tk @@ -753,7 +753,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -763,7 +764,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -906,8 +909,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -926,6 +931,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1015,9 +1024,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1071,10 +1081,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1120,14 +1131,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1200,13 +1213,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1246,22 +1267,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1318,21 +1607,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1379,36 +1668,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1416,48 +1706,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1513,27 +1804,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1574,16 +1865,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1592,34 +1884,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1676,92 +1969,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1769,18 +2062,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1821,52 +2114,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1874,162 +2168,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2085,45 +2380,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2163,18 +2460,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2182,55 +2480,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2287,24 +2590,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2344,17 +2647,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2362,37 +2666,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2448,16 +2753,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2505,9 +2817,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2529,21 +2839,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2852,14 +3167,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2933,17 +3248,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3258,16 +3573,16 @@ proc menu15 {w title} { hex $w.config.f 15 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 15 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 15 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 15 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 15 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 15 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3329,21 +3644,21 @@ proc update_define_menu15 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3403,14 +3718,14 @@ proc menu16 {w title} { bool $w.config.f 16 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 16 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 16 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 16 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3464,17 +3779,17 @@ proc update_define_menu16 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3530,15 +3845,15 @@ proc menu17 {w title} { bool $w.config.f 17 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 17 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 17 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 17 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 17 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3619,19 +3934,19 @@ proc update_menu17 {} { proc update_define_menu17 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4002,7 +4317,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4012,6 +4328,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4036,6 +4354,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4048,14 +4367,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4068,27 +4392,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4098,17 +4422,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4120,12 +4444,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4135,10 +4459,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4149,7 +4473,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4161,26 +4485,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4188,27 +4514,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4229,7 +4559,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4251,7 +4581,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4262,14 +4592,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4347,7 +4677,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4357,6 +4688,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4395,6 +4728,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4407,9 +4741,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4423,239 +4758,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4700,13 +5185,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -4749,38 +5234,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UART, timer, I/O port and interrupt controller" global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4857,7 +5342,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4867,6 +5353,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4885,8 +5373,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -4969,11 +5462,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -4994,6 +5489,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5093,8 +5592,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5113,6 +5614,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5153,324 +5658,350 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-digilent-xup/leon3mp.vhd b/designs/leon3-digilent-xup/leon3mp.vhd index 46e20438..f0926f2b 100644 --- a/designs/leon3-digilent-xup/leon3mp.vhd +++ b/designs/leon3-digilent-xup/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-digilent-xup/testbench.vhd b/designs/leon3-digilent-xup/testbench.vhd index 08555704..f669e862 100644 --- a/designs/leon3-digilent-xup/testbench.vhd +++ b/designs/leon3-digilent-xup/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-digilent-xup/tkconfig.h b/designs/leon3-digilent-xup/tkconfig.h index d7b015ed..6b6db5cf 100644 --- a/designs/leon3-digilent-xup/tkconfig.h +++ b/designs/leon3-digilent-xup/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-ge-hpe-midi-ep2s180/Makefile b/designs/leon3-ge-hpe-midi-ep2s180/Makefile deleted file mode 100644 index 66830817..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/Makefile +++ /dev/null @@ -1,131 +0,0 @@ -GRLIB=../.. -TOP=leon3hpe - -BOARD=ge-hpe-midi-ep2s180 - -include $(GRLIB)/boards/$(BOARD)/Makefile.inc -DEVICE=$(PART)-$(PACKAGE)$(SPEED) -UCF=$(GRLIB)/boards/$(BOARD)/$(TOP).ucf -QSF=$(GRLIB)/boards/$(BOARD)/$(TOP).qsf -EFFORT=1 -XSTOPT= -VHDLSYNFILES=config.vhd ahbrom.vhd leon3hpe.vhd -VHDLSIMFILES=testbench.vhd -VLOGSIMFILES=spi_slave_model.v -SIMTOP=testbench -SDCFILE=$(GRLIB)/boards/$(BOARD)/default.sdc -BITGEN=$(GRLIB)/boards/$(BOARD)/default.ut -CLEAN=soft-clean quartus-cpf-clean mkprom-clean - -TECHLIBS = altera altera_mf stratixii -LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress ihp grusbhc ec ecp2 -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest ddr \ - slink ascs haps coremp7 spacewire - -include $(GRLIB)/bin/Makefile - -include $(GRLIB)/software/leon3/Makefile - -# Select your cable type here. -# Make sure it has been installed via the programmer GUI -# in Quartus. -# -# Examples: -# USB-Blaster -# ByteBlasterMV -CABLE=USB-Blaster -QUARTUS_PGM=quartus_pgm - - -# flags for compilation with gcc -CFLAGS=-O1 -g -msoft-float - -################## project specific targets ########################## - -INCLUDEFILES=$(VPATH)/hpi_functions.c - -# C files needed for building the hpe_test program -HPE_INCLUDE_FILES=hpe_test MIO memtest spi sdcard hpi_functions flash_functions adcdac adda_func tests -# testpc testpc_prog - -# C files needed for building the hpe_test program -TESTPC_INCLUDE_FILES=MIO memtest flash_functions testpc adcdac adda_func testpc_prog - -# C header files needed for building the hpe_test program -HPE_HEADER_FILES=Leon3MHe.h MIO.h memtest.h flash_functions.h tests.h testpc.h spi.h sdcard.h adc_dac.h adda_func.h hpi_functions.h - -# directory where the hpe_test source files reside in -HPE_INCLUDE_DIR=../../software/gleichmann - -# C program files -# ############### - -# an object file shall be rebuilt if either the corresponding c file -# or one of the header files has changed -%.o: $(HPE_INCLUDE_DIR)/%.c $(foreach elem, $(HPE_HEADER_FILES), $(HPE_INCLUDE_DIR)/$(elem) ) - $(XAS) -DHPE_MIDI -DEXP_CONN_TEST $(CFLAGS) -I. $< -o $@ - - -# mkprom targets -# ############## - -# change the settings below to reflect your hardware -# the frequency is set in the Makefile found in the boards directory -RAMSIZE=1024 -ROMSIZE=32768 -ROMWS=3 -BAUD=38400 -FREQ=40 - -# ROM version of the test program -hpe_test.mkprom: hpe_test.exe #$(addsuffix .o, $(HPE_INCLUDE_FILES)) - sparc-elf-mkprom -dump -baud $(BAUD) -freq $(FREQ) $^ -msoft-float -romws $(ROMWS) -romsize $(ROMSIZE) -rmw -ramsize $(RAMSIZE) -v -o $@ - -mkprom-clean: - -rm -f hpe_test.mkprom - -### HPI TEST PROGRAM ################################################### - -HPI_INCLUDE_FILES= hpi_test hpi_functions -HPI_HEADER_FILES= hpi_functions.h hpi_defs.h -HPI_INCLUDE_DIR=../../software/gleichmann - - -%.o: $(HPI_INCLUDE_DIR)/%.c $(foreach elem, $(HPI_HEADER_FILES), $(HPI_INCLUDE_DIR)/$(elem) ) - $(XAS) -DHPE_MIDI $(XCFLAGS) -I. $< -o $@ - -hpi_test.exe: $(addsuffix .o, $(HPI_INCLUDE_FILES)) - $(XCC) $(XCFLAGS) -Ttext=0x40000000 -o hpi_test.exe $(addsuffix .o, $(HPI_INCLUDE_FILES)) - -# QUARTUS configuration -# ##################### - -# FPGA programming -quartus-pgm: - $(QUARTUS_PGM) -c $(CABLE) -m JTAG -o p\;$(TOP).sof\;@2 - -# JTAG indirect programming of the serial configuration device -# use upper connector on the module for that -quartus-cfg-jic: $(TOP).jic - $(QUARTUS_PGM) -c $(CABLE) -m JTAG -o pvbi\;$(TOP).jic - -# Active serial programming of the serial configuration device -# use lower connector on the module for that -quartus-cfg-pof: $(TOP).pof - $(QUARTUS_PGM) -c $(CABLE) -m ASC -o pl\;$(TOP).pof - -quartus_cpf.opt: - echo BITSTREAM_COMPRESSION=ON > quartus_cpf.opt - -$(TOP).jic: quartus_cpf.opt $(TOP).sof - quartus_cpf -c --option=quartus_cpf.opt -d $(CONFDEVICE) -s $(PART) $(TOP).sof $(TOP).jic - -$(TOP).pof: quartus_cpf.opt $(TOP).sof - quartus_cpf -c --option=quartus_cpf.opt -d $(CONFDEVICE) $(TOP).sof $(TOP).pof - -quartus-cpf: $(TOP).jic $(TOP).pof - -quartus-cpf-clean: - -rm -f quartus_cpf.opt $(TOP).jic $(TOP).pof - diff --git a/designs/leon3-ge-hpe-midi-ep2s180/README.txt b/designs/leon3-ge-hpe-midi-ep2s180/README.txt deleted file mode 100644 index 0b49f259..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/README.txt +++ /dev/null @@ -1,6 +0,0 @@ -This leon3 design is tailored to the Hpe-midi board from -Gleichmann Electronics: - -http://www.ge-research.com - -If you intend to use the ep2s_90 or ep2s_60 please change the value BOARD to the appropriate value. diff --git a/designs/leon3-ge-hpe-midi-ep2s180/ahbrom.vhd b/designs/leon3-ge-hpe-midi-ep2s180/ahbrom.vhd deleted file mode 100644 index bdcbb21a..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/ahbrom.vhd +++ /dev/null @@ -1,184 +0,0 @@ - ----------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2004 GAISLER RESEARCH --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- See the file COPYING for the full details of the license. --- ------------------------------------------------------------------------------ --- Entity: ahbrom --- File: ahbrom.vhd --- Author: Jiri Gaisler - Gaisler Research --- Description: AHB rom. 0/1-waitstate read ------------------------------------------------------------------------------- -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; - -entity ahbrom is - generic ( - hindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#fff#; - pipe : integer := 0; - tech : integer := 0; - kbytes : integer := 1); - port ( - rst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type - ); -end; - -architecture rtl of ahbrom is -constant abits : integer := 9; -constant bytes : integer := 336; - -constant hconfig : ahb_config_type := ( - 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_AHBROM, 0, 0, 0), - 4 => ahb_membar(haddr, '1', '1', hmask), others => zero32); - -signal romdata : std_logic_vector(31 downto 0); -signal addr : std_logic_vector(abits-1 downto 2); -signal hsel, hready : std_ulogic; - -begin - - ahbso.hresp <= "00"; - ahbso.hsplit <= (others => '0'); - ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; - ahbso.hconfig <= hconfig; - ahbso.hindex <= hindex; - - reg : process (clk) - begin - if rising_edge(clk) then - addr <= ahbsi.haddr(abits-1 downto 2); - end if; - end process; - - p0 : if pipe = 0 generate - ahbso.hrdata <= ahbdrivedata(romdata); - ahbso.hready <= '1'; - end generate; - - p1 : if pipe = 1 generate - reg2 : process (clk) - begin - if rising_edge(clk) then - hsel <= ahbsi.hsel(hindex) and ahbsi.htrans(1); - hready <= ahbsi.hready; - ahbso.hready <= (not rst) or (hsel and hready) or - (ahbsi.hsel(hindex) and not ahbsi.htrans(1) and ahbsi.hready); - ahbso.hrdata <= ahbdrivedata(romdata); - end if; - end process; - end generate; - - comb : process (addr) - begin - case conv_integer(addr) is - when 16#00000# => romdata <= X"81D82000"; - when 16#00001# => romdata <= X"03000004"; - when 16#00002# => romdata <= X"821060E0"; - when 16#00003# => romdata <= X"81884000"; - when 16#00004# => romdata <= X"81900000"; - when 16#00005# => romdata <= X"81980000"; - when 16#00006# => romdata <= X"81800000"; - when 16#00007# => romdata <= X"01000000"; - when 16#00008# => romdata <= X"03002040"; - when 16#00009# => romdata <= X"8210600F"; - when 16#0000A# => romdata <= X"C2A00040"; - when 16#0000B# => romdata <= X"87444000"; - when 16#0000C# => romdata <= X"8608E01F"; - when 16#0000D# => romdata <= X"88100000"; - when 16#0000E# => romdata <= X"8A100000"; - when 16#0000F# => romdata <= X"8C100000"; - when 16#00010# => romdata <= X"8E100000"; - when 16#00011# => romdata <= X"A0100000"; - when 16#00012# => romdata <= X"A2100000"; - when 16#00013# => romdata <= X"A4100000"; - when 16#00014# => romdata <= X"A6100000"; - when 16#00015# => romdata <= X"A8100000"; - when 16#00016# => romdata <= X"AA100000"; - when 16#00017# => romdata <= X"AC100000"; - when 16#00018# => romdata <= X"AE100000"; - when 16#00019# => romdata <= X"90100000"; - when 16#0001A# => romdata <= X"92100000"; - when 16#0001B# => romdata <= X"94100000"; - when 16#0001C# => romdata <= X"96100000"; - when 16#0001D# => romdata <= X"98100000"; - when 16#0001E# => romdata <= X"9A100000"; - when 16#0001F# => romdata <= X"9C100000"; - when 16#00020# => romdata <= X"9E100000"; - when 16#00021# => romdata <= X"86A0E001"; - when 16#00022# => romdata <= X"16BFFFEF"; - when 16#00023# => romdata <= X"81E00000"; - when 16#00024# => romdata <= X"82102002"; - when 16#00025# => romdata <= X"81904000"; - when 16#00026# => romdata <= X"03000004"; - when 16#00027# => romdata <= X"821060E0"; - when 16#00028# => romdata <= X"81884000"; - when 16#00029# => romdata <= X"01000000"; - when 16#0002A# => romdata <= X"01000000"; - when 16#0002B# => romdata <= X"01000000"; - when 16#0002C# => romdata <= X"87444000"; - when 16#0002D# => romdata <= X"8730E01C"; - when 16#0002E# => romdata <= X"8688E00F"; - when 16#0002F# => romdata <= X"12800016"; - when 16#00030# => romdata <= X"03200000"; - when 16#00031# => romdata <= X"05040E00"; - when 16#00032# => romdata <= X"8410A233"; - when 16#00033# => romdata <= X"C4204000"; - when 16#00034# => romdata <= X"0539A81B"; - when 16#00035# => romdata <= X"8410A260"; - when 16#00036# => romdata <= X"C4206004"; - when 16#00037# => romdata <= X"050003FC"; - when 16#00038# => romdata <= X"C4206008"; - when 16#00039# => romdata <= X"82103860"; - when 16#0003A# => romdata <= X"C4004000"; - when 16#0003B# => romdata <= X"8530A00C"; - when 16#0003C# => romdata <= X"03000004"; - when 16#0003D# => romdata <= X"82106009"; - when 16#0003E# => romdata <= X"80A04002"; - when 16#0003F# => romdata <= X"12800006"; - when 16#00040# => romdata <= X"033FFC00"; - when 16#00041# => romdata <= X"82106100"; - when 16#00042# => romdata <= X"0539A81B"; - when 16#00043# => romdata <= X"8410A260"; - when 16#00044# => romdata <= X"C4204000"; - when 16#00045# => romdata <= X"3D1003FF"; - when 16#00046# => romdata <= X"BC17A3E0"; - when 16#00047# => romdata <= X"9C27A060"; - when 16#00048# => romdata <= X"03100000"; - when 16#00049# => romdata <= X"81C04000"; - when 16#0004A# => romdata <= X"01000000"; - when 16#0004B# => romdata <= X"01000000"; - when 16#0004C# => romdata <= X"01000000"; - when 16#0004D# => romdata <= X"01000000"; - when 16#0004E# => romdata <= X"01000000"; - when 16#0004F# => romdata <= X"01000000"; - when 16#00050# => romdata <= X"00000000"; - when 16#00051# => romdata <= X"00000000"; - when 16#00052# => romdata <= X"00000000"; - when 16#00053# => romdata <= X"00000000"; - when 16#00054# => romdata <= X"00000000"; - when others => romdata <= (others => '-'); - end case; - end process; - -- pragma translate_off - bootmsg : report_version - generic map ("ahbrom" & tost(hindex) & - ": 32-bit AHB ROM Module, " & tost(bytes/4) & " words, " & tost(abits-2) & " address bits" ); - -- pragma translate_on - end; diff --git a/designs/leon3-ge-hpe-midi-ep2s180/config.in b/designs/leon3-ge-hpe-midi-ep2s180/config.in deleted file mode 100644 index ba4baf28..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/config.in +++ /dev/null @@ -1,92 +0,0 @@ -# -# LEON3 configuration written in linux configuration language -# -# Written by Jiri Gaisler, Gaisler Research -# -# Comments and bug reports to jiri@gaisler.com -# -# - -define_bool CONFIG_MCTRL_RMW y - -mainmenu_name "LEON3MIDI Design Configuration" - -mainmenu_option next_comment - comment 'Synthesis ' - source lib/techmap/gencomp/tech.in -endmenu - -mainmenu_option next_comment - comment 'Clock generation' - source lib/techmap/clocks/clkgen.in -endmenu - -source lib/gaisler/leon3/leon3.in -source lib/grlib/amba/amba.in - -mainmenu_option next_comment - comment 'Debug Link ' - source lib/gaisler/uart/dcom.in - source lib/gaisler/jtag/jtag.in - source lib/gaisler/net/edcl.in - source lib/gaisler/usb/grusb_dcl.in -endmenu - -mainmenu_option next_comment -comment 'Peripherals ' - - mainmenu_option next_comment - comment 'Memory controllers ' - source lib/gaisler/memctrl/srctrl.in - source lib/esa/memoryctrl/mctrl.in - source lib/gaisler/memctrl/sdctrl.in - endmenu - - mainmenu_option next_comment - comment 'On-chip RAM/ROM ' - source lib/gaisler/misc/ahbrom.in - source lib/gaisler/misc/ahbram.in - endmenu - - mainmenu_option next_comment - comment 'Ethernet ' - source lib/gaisler/greth/greth.in - endmenu - - mainmenu_option next_comment - comment 'CAN ' - source lib/gaisler/can/can_oc.in - endmenu - - mainmenu_option next_comment - comment 'SPI ' - source lib/gaisler/spi/spictrl.in - endmenu - - mainmenu_option next_comment - comment 'UARTs, timers and irq control ' - source lib/gaisler/uart/uart1.in -# source lib/gaisler/uart/uart2.in - source lib/gaisler/leon3/irqmp.in - source lib/gaisler/misc/gptimer.in - endmenu - - mainmenu_option next_comment - comment 'Keybord and VGA interface' - source lib/gaisler/misc/ps2vga.in - endmenu - -endmenu - -mainmenu_option next_comment -comment 'Gleichmann Options ' - source lib/gleichmann/ahb2hpi/ahb2hpi.in - source lib/gleichmann/dac/adcdac.in - source lib/gleichmann/spi/spi_oc.in - source lib/gleichmann/multiio/multiio.in - source lib/gleichmann/ac97/ac97_oc.in -endmenu -mainmenu_option next_comment -comment 'VHDL Debugging ' - source lib/grlib/util/debug.in -endmenu diff --git a/designs/leon3-ge-hpe-midi-ep2s180/config.vhd.in b/designs/leon3-ge-hpe-midi-ep2s180/config.vhd.in deleted file mode 100644 index f30ad69c..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/config.vhd.in +++ /dev/null @@ -1,53 +0,0 @@ -#include "config.h" -#include "tkconfig.h" -#include "leon3hpe.h" - ------------------------------------------------------------------------------ --- LEON3 Demonstration design test bench configuration --- Copyright (C) 2009 Aeroflex Gaisler ------------------------------------------------------------------------------- - - -library techmap; -use techmap.gencomp.all; -library gleichmann; -use gleichmann.miscellaneous.all; - -package config is - - ----------------------------------------------------------------------------- - -- GLEICHMANN SPECIFIC OPTIONS - ----------------------------------------------------------------------------- - - -- HPE board version - -- for valid options see package miscellaneous - constant CFG_HPEVER : integer := midi; - - -- provide ahb signals for an external slave - -- slave number can be defined below - -- numbers 8 to 15 can be used safely, numbers below - -- might be used by other LEON cores depending on configuration - constant CFG_EXTAHB : integer := CONFIG_EXTAHB_ENABLE; - - constant CFG_EXTAHB_ADDR : integer := 16#CONFIG_EXTAHB_BASE#; - - -- interrupt number the external slave is assigned to - -- unused at the moment - constant CFG_EXTAHB_IRQ : integer := CONFIG_EXTAHB_INT; - - -- AHB slave number the external slave is assigned to - constant CFG_EXTAHB_NR : integer := 8; - - -- index number the external slave is assigned to - constant CFG_EXTAHB_ID : integer := 8; - - -- lsb sdram address to bit - constant CFG_SDSHIFT : integer := CFG_SDRAM_SHIFT; - - ----------------------------------------------------------------------------- - -- END GLEICHMANN SPECIFIC OPTIONS - ----------------------------------------------------------------------------- - -#include "config.vhd.h" - -end; diff --git a/designs/leon3-ge-hpe-midi-ep2s180/defconfig b/designs/leon3-ge-hpe-midi-ep2s180/defconfig deleted file mode 100644 index 79a59abf..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/defconfig +++ /dev/null @@ -1,239 +0,0 @@ -# -# Automatically generated make config: don't edit -# - -# -# Synthesis -# -# CONFIG_SYN_INFERRED is not set -CONFIG_SYN_ALTERA=y -# CONFIG_SYN_AXCEL is not set -# CONFIG_SYN_PROASIC is not set -# CONFIG_SYN_PROASICPLUS is not set -# CONFIG_SYN_PROASIC3 is not set -# CONFIG_SYN_ATC18 is not set -# CONFIG_SYN_IHP25 is not set -# CONFIG_SYN_LATTICE is not set -# CONFIG_SYN_RH_LIB18T is not set -# CONFIG_SYN_RHUMC is not set -# CONFIG_SYN_SPARTAN2 is not set -# CONFIG_SYN_SPARTAN3 is not set -# CONFIG_SYN_VIRTEX is not set -# CONFIG_SYN_VIRTEXE is not set -# CONFIG_SYN_VIRTEX2 is not set -# CONFIG_SYN_VIRTEX4 is not set -# CONFIG_SYN_INFER_RAM is not set -CONFIG_SYN_INFER_PADS=y -# CONFIG_SYN_NO_ASYNC is not set - -# -# Clock generation -# -# CONFIG_CLK_INFERRED is not set -# CONFIG_CLK_HCLKBUF is not set -CONFIG_CLK_ALTDLL=y -# CONFIG_CLK_LATDLL is not set -# CONFIG_CLK_LIB18T is not set -# CONFIG_CLK_CLKDLL is not set -# CONFIG_CLK_DCM is not set -CONFIG_CLK_MUL=2 -CONFIG_CLK_DIV=2 -# CONFIG_PCI_SYSCLK is not set -CONFIG_PROC_NUM=1 - -# -# Processor -# - -# -# Integer unit -# -CONFIG_IU_NWINDOWS=8 -CONFIG_IU_V8MULDIV=y -# CONFIG_IU_MUL_LATENCY_4 is not set -CONFIG_IU_MUL_LATENCY_5=y -# CONFIG_IU_MUL_MAC is not set -# CONFIG_IU_SVT is not set -CONFIG_IU_LDELAY=1 -CONFIG_IU_WATCHPOINTS=0 -# CONFIG_PWD is not set -CONFIG_IU_RSTADDR=00000 - -# -# Floating-point unit -# -# CONFIG_FPU_ENABLE is not set - -# -# Cache system -# -CONFIG_ICACHE_ENABLE=y -CONFIG_ICACHE_ASSO1=y -# CONFIG_ICACHE_ASSO2 is not set -# CONFIG_ICACHE_ASSO3 is not set -# CONFIG_ICACHE_ASSO4 is not set -# CONFIG_ICACHE_SZ1 is not set -# CONFIG_ICACHE_SZ2 is not set -CONFIG_ICACHE_SZ4=y -# CONFIG_ICACHE_SZ8 is not set -# CONFIG_ICACHE_SZ16 is not set -# CONFIG_ICACHE_SZ32 is not set -# CONFIG_ICACHE_SZ64 is not set -# CONFIG_ICACHE_SZ128 is not set -# CONFIG_ICACHE_SZ256 is not set -# CONFIG_ICACHE_LZ16 is not set -CONFIG_ICACHE_LZ32=y -CONFIG_DCACHE_ENABLE=y -CONFIG_DCACHE_ASSO1=y -# CONFIG_DCACHE_ASSO2 is not set -# CONFIG_DCACHE_ASSO3 is not set -# CONFIG_DCACHE_ASSO4 is not set -# CONFIG_DCACHE_SZ1 is not set -# CONFIG_DCACHE_SZ2 is not set -CONFIG_DCACHE_SZ4=y -# CONFIG_DCACHE_SZ8 is not set -# CONFIG_DCACHE_SZ16 is not set -# CONFIG_DCACHE_SZ32 is not set -# CONFIG_DCACHE_SZ64 is not set -# CONFIG_DCACHE_SZ128 is not set -# CONFIG_DCACHE_SZ256 is not set -# CONFIG_DCACHE_LZ16 is not set -CONFIG_DCACHE_LZ32=y -CONFIG_DCACHE_SNOOP=y -# CONFIG_DCACHE_SNOOP_FAST is not set -CONFIG_CACHE_FIXED=0 - -# -# MMU -# -CONFIG_MMU_ENABLE=y -CONFIG_MMU_COMBINED=y -# CONFIG_MMU_SPLIT is not set -# CONFIG_MMU_REPARRAY is not set -CONFIG_MMU_REPINCREMENT=y -# CONFIG_MMU_I2 is not set -# CONFIG_MMU_I4 is not set -CONFIG_MMU_I8=y -# CONFIG_MMU_I16 is not set -# CONFIG_MMU_I32 is not set - -# -# Debug Support Unit -# -CONFIG_DSU_ENABLE=y -CONFIG_DSU_ITRACE=y -CONFIG_DSU_ITRACESZ1=y -# CONFIG_DSU_ITRACESZ2 is not set -# CONFIG_DSU_ITRACESZ4 is not set -# CONFIG_DSU_ITRACESZ8 is not set -# CONFIG_DSU_ITRACESZ16 is not set -CONFIG_DSU_ATRACE=y -CONFIG_DSU_ATRACESZ1=y -# CONFIG_DSU_ATRACESZ2 is not set -# CONFIG_DSU_ATRACESZ4 is not set -# CONFIG_DSU_ATRACESZ8 is not set -# CONFIG_DSU_ATRACESZ16 is not set - -# -# VHDL debug settings -# -# CONFIG_IU_DISAS is not set -# CONFIG_DEBUG_PC32 is not set - -# -# AMBA configuration -# -CONFIG_AHB_DEFMST=0 -CONFIG_AHB_RROBIN=y -# CONFIG_AHB_SPLIT is not set -CONFIG_AHB_IOADDR=FFF -CONFIG_APB_HADDR=800 - -# -# Debug Link -# -CONFIG_DSU_UART=y -CONFIG_DSU_ETH=y -# CONFIG_DSU_ETHSZ1 is not set -CONFIG_DSU_ETHSZ2=y -# CONFIG_DSU_ETHSZ4 is not set -# CONFIG_DSU_ETHSZ8 is not set -# CONFIG_DSU_ETHSZ16 is not set -CONFIG_DSU_IPMSB=C0A8 -CONFIG_DSU_IPLSB=0044 -CONFIG_DSU_ETHMSB=00007A -CONFIG_DSU_ETHLSB=CC0044 - -# -# Peripherals -# - -# -# Memory controllers -# - -# -# 8/32-bit PROM/SRAM controller -# -# CONFIG_SRCTRL is not set - -# -# Leon2 memory controller -# -CONFIG_MCTRL_LEON2=y -# CONFIG_MCTRL_8BIT is not set -# CONFIG_MCTRL_16BIT is not set -# CONFIG_MCTRL_5CS is not set -CONFIG_MCTRL_SDRAM=y -# CONFIG_MCTRL_SDRAM_SEPBUS is not set - -# -# On-chip RAM/ROM -# -# CONFIG_AHBROM_ENABLE is not set -# CONFIG_AHBRAM_ENABLE is not set - -# -# Ethernet -# -CONFIG_GRETH_ENABLE=y -# CONFIG_GRETH_FIFO4 is not set -# CONFIG_GRETH_FIFO8 is not set -# CONFIG_GRETH_FIFO16 is not set -# CONFIG_GRETH_FIFO32 is not set -CONFIG_GRETH_FIFO64=y - -# -# UARTs, timers and irq control -# -CONFIG_UART1_ENABLE=y -CONFIG_UA1_FIFO1=y -# CONFIG_UA1_FIFO2 is not set -# CONFIG_UA1_FIFO4 is not set -# CONFIG_UA1_FIFO8 is not set -# CONFIG_UA1_FIFO16 is not set -# CONFIG_UA1_FIFO32 is not set -CONFIG_IRQ3_ENABLE=y -CONFIG_GPT_ENABLE=y -CONFIG_GPT_NTIM=2 -CONFIG_GPT_SW=8 -CONFIG_GPT_TW=32 -CONFIG_GPT_IRQ=8 -CONFIG_GPT_SEPIRQ=y -# CONFIG_GPT_WDOGEN is not set - -# -# ATA Controller -# -# CONFIG_ATA_ENABLE is not set - -# -# Keybord and VGA interface -# -CONFIG_KBD_ENABLE=y -CONFIG_VGA_ENABLE=y - -# -# VHDL Debugging -# -CONFIG_DEBUG_UART=y diff --git a/designs/leon3-ge-hpe-midi-ep2s180/indata b/designs/leon3-ge-hpe-midi-ep2s180/indata deleted file mode 100644 index 5c12629a..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/indata +++ /dev/null @@ -1,176 +0,0 @@ -start -0101 -0100 -0011 -0010 -0001 -0000 -1000 -0111 -0110 -0101 -0100 -0011 -0010 -0001 -new-72byte-field -0000 -1111 -1110 -1101 -1100 -1011 -1010 -1001 -1000 -0111 -0110 -0101 -0100 -0011 -0010 -0001 -0000 -1111 -1110 -1101 -1100 -1011 -1010 -1001 -1000 -0111 -0110 -0101 -0100 -0011 -0010 -0001 -0000 -1111 -1110 -1101 -1100 -1011 -1010 -1001 -1000 -0111 -0110 -0101 -0100 -0011 -0010 -0001 -0000 -1111 -1110 -1101 -1100 -1011 -1010 -1001 -1000 -0111 -0110 -0101 -0100 -0011 -0010 -0001 -0000 -1111 -1110 -1101 -1100 -1011 -1010 -1001 -1000 -0111 -0110 -0101 -0100 -0011 -0010 -0001 -0000 -1111 -1110 -1101 -1100 -1011 -1010 -1001 -1000 -0111 -0110 -0101 -0100 -0011 -0010 -0001 -0000 -1111 -1110 -1101 -1100 -1011 -1010 -1001 -1000 -0111 -0110 -0101 -0100 -0011 -0010 -0001 -0000 -1111 -1110 -1101 -1100 -1011 -1010 -1001 -1000 -0111 -0110 -0101 -0100 -0011 -0010 -0001 -0000 -1111 -1110 -1101 -1100 -1011 -1010 -1001 -1000 -0111 -0110 -0101 -0100 -0011 -0010 -0001 -new -0000 -0000 -0000 -1111 -1111 -1111 -1111 -1111 -1111 -1000 -0000 -0011 -1110 -1110 -end \ No newline at end of file diff --git a/designs/leon3-ge-hpe-midi-ep2s180/leon3hpe.h b/designs/leon3-ge-hpe-midi-ep2s180/leon3hpe.h deleted file mode 100644 index a9fc7d62..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/leon3hpe.h +++ /dev/null @@ -1,16 +0,0 @@ - -#ifndef CONFIG_EXTAHB_ENABLE -#define CONFIG_EXTAHB_ENABLE 0 -#endif - -#ifndef CONFIG_EXTAHB_INT -#define CONFIG_EXTAHB_INT 0 -#endif - -#ifndef CFG_SDRAM_SHIFT -#define CFG_SDRAM_SHIFT 0 -#endif - -#ifndef CONFIG_EXTAHB_BASE -#define CONFIG_EXTAHB_BASE 0 -#endif diff --git a/designs/leon3-ge-hpe-midi-ep2s180/leon3hpe.vhd b/designs/leon3-ge-hpe-midi-ep2s180/leon3hpe.vhd deleted file mode 100644 index 938b0553..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/leon3hpe.vhd +++ /dev/null @@ -1,1207 +0,0 @@ ------------------------------------------------------------------------------- --- LEON3 Demonstration design --- Copyright (C) 2004 Jiri Gaisler, Gaisler Research --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------- --- maintained by Florian Wex, Gleichmann Electronics 2007 --- updated to grlib-eval-1.0.16 in , September 2007 ------------------------------------------------------------------------------- - ------------------------------------------------------------------------------------------ - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; -library techmap; -use techmap.gencomp.all; -library gaisler; -use gaisler.memctrl.all; -use gaisler.leon3.all; -use gaisler.uart.all; -use gaisler.misc.all; -use gaisler.spi.all; -use gaisler.can.all; -use gaisler.net.all; -use gaisler.grusb.all; -use gaisler.jtag.all; -library esa; -use esa.memoryctrl.all; -library gleichmann; -use gleichmann.hpi.all; -use gleichmann.miscellaneous.all; -use gleichmann.multiio.all; -use gleichmann.dac.all; -use gleichmann.sspi.all; -use gleichmann.ge_clkgen.all; -use gleichmann.ac97.all; -library work; -use work.config.all; - - - -entity leon3hpe is - generic ( - fabtech : integer := CFG_FABTECH; - memtech : integer := CFG_MEMTECH; - padtech : integer := CFG_PADTECH; - clktech : integer := CFG_CLKTECH; - disas : integer := CFG_DISAS; -- Enable disassembly to console - dbguart : integer := CFG_DUART; -- Print UART on console - pclow : integer := CFG_PCLOW - ); - port ( - resetn : in std_logic; - resoutn : out std_logic; - - clk : in std_logic; - - errorn : out std_logic; - address : out std_logic_vector(27 downto 0); - data : inout std_logic_vector(31 downto 0); - ramsn : out std_logic_vector (4 downto 0); - ramoen : out std_logic_vector (4 downto 0); - rwen : inout std_logic_vector (3 downto 0); - -- ram byte enable for hpe board - -- necessary because individual bytes have to - -- be selected for reading as well - rben : out std_logic_vector(3 downto 0); - romsn : out std_logic_vector (1 downto 0); - iosn : out std_logic; - oen : out std_logic; - read : out std_logic; - writen : out std_logic; - - -- SDRAM interface - sdclk : out std_logic_vector(1 downto 0); - sdcke : out std_logic_vector(1 downto 0); -- sdram clock enable - sdaddr : out std_logic_vector(12 downto 0); - sddq : inout std_logic_vector(63 downto 0); - sddqm : out std_logic_vector(7 downto 0); -- sdram dqm - sdwen : out std_logic; -- sdram write enable - sdcasn : out std_logic; -- sdram cas - sdrasn : out std_logic; -- sdram ras - sdcsn : out std_logic_vector (1 downto 0); -- sdram chip select - sdba : out std_logic_vector(1 downto 0); -- sdram bank address - - -- debug support unit - dsutx : out std_logic; -- DSU tx data - dsurx : in std_logic; -- DSU rx data - dsubre : in std_logic; - dsuactn : out std_logic; - - -- console UART - rxd1 : in std_logic; - txd1 : out std_logic; - - -- ethernet signals - emdio : inout std_logic; -- ethernet PHY interface - etx_clk : in std_logic; - erx_clk : in std_logic; - erxd : in std_logic_vector(3 downto 0); - erx_dv : in std_logic; - erx_er : in std_logic; - erx_col : in std_logic; - erx_crs : in std_logic; - etxd : out std_logic_vector(3 downto 0); - etx_en : out std_logic; - etx_er : out std_logic; - emdc : out std_logic; - ereset : out std_logic; - - -- CAN receive and transmit signals - can_txd : out std_logic; - can_rxd : in std_logic; - can_stb : out std_logic; - - ------------------------------------------------------------------------------------- - -- IO SECTION - ------------------------------------------------------------------------------------- - dsw : in std_logic_vector(7 downto 0); - - led_enable : out std_logic; - - sevensegment : out std_logic_vector(9 downto 0); -- 7-segments and 2 strobes - - lcd_enable : out std_logic; - lcd_regsel : out std_logic; - lcd_rw : out std_logic; - - -- keyboard - tst_col : out std_logic_vector(2 downto 0); -- column outputs - tst_row : in std_logic_vector(3 downto 0); -- row inputs - - -- only one PS/2 interface possible due to routing problems - -- see instantiation of the interface below - ps2_clk : inout std_logic_vector(1 downto 0); - ps2_data : inout std_logic_vector(1 downto 0); - - -- expansion connector signals - exp_datao : out std_logic_vector(19 downto 0); - exp_datai : in std_logic_vector(19 downto 0); - - --------------------------------------------------------------------------- - -- VGA interface - --------------------------------------------------------------------------- - vga_clk : out std_logic; - vga_syncn : out std_logic; - vga_blankn : out std_logic; - vga_vsync : out std_logic; - vga_hsync : out std_logic; - vga_rd : out std_logic_vector(7 downto 0); - vga_gr : out std_logic_vector(7 downto 0); - vga_bl : out std_logic_vector(7 downto 0); - - --------------------------------------------------------------------------- - -- AC97 AUDIO CODEC - --------------------------------------------------------------------------- - - ac97_bit_clk : in std_logic; - ac97_sync : out std_logic; - ac97_sdata_out : out std_logic; - ac97_sdata_in : in std_logic; - -- when no crystal is assembled, drive this signal with a 24.5 (or 25) MHz clock - ac97_ext_clk : out std_logic; - ac97_resetn : out std_logic; - - ------------------------------------------------------------------------------------- - -- USB DEBUG INTERFACE - ------------------------------------------------------------------------------------- - usb_clkout : in std_logic; - usb_d : inout std_logic_vector(15 downto 0); - usb_linestate : in std_logic_vector(1 downto 0); - usb_opmode : out std_logic_vector(1 downto 0); - usb_reset : out std_logic; - usb_rxactive : in std_logic; - usb_rxerror : in std_logic; - usb_rxvalid : in std_logic; - usb_suspend : out std_logic; - usb_termsel : out std_logic; - usb_txready : in std_logic; - usb_txvalid : out std_logic; - usb_validh : inout std_logic; - usb_xcvrsel : out std_logic; - usb_vbus : in std_logic; - usb_dbus16 : out std_logic; - usb_unidir : out std_logic; - - --------------------------------------------------------------------------- - -- ADC/DAC INTERFACE - --------------------------------------------------------------------------- - adc_dout : in std_logic; - adc_ain : out std_logic; - dac_out : out std_logic; - - ------------------------------------------------------------------------------------- - -- SDCARD interface (SPI mode) - ------------------------------------------------------------------------------------- - sdcard_cs : out std_logic; - sdcard_di : out std_logic; - sdcard_sclk : out std_logic; - sdcard_do : in std_logic; - - ------------------------------------------------------------------------------- - -- HPI PORT - ------------------------------------------------------------------------------- - hpiaddr : out std_logic_vector(1 downto 0); - hpidata : inout std_logic_vector(15 downto 0); - hpicsn : out std_logic; - hpiwrn : out std_logic; - hpirdn : out std_logic; - hpiint : in std_logic - ); -end; - -architecture rtl of leon3hpe is - - constant blength : integer := 12; - constant fifodepth : integer := 8; - - signal reset : std_logic; - signal vcc, gnd : std_logic_vector(4 downto 0); - signal memi : memory_in_type; - signal memo : memory_out_type; - signal wpo : wprot_out_type; - - signal sdi : sdctrl_in_type; - signal sdo : sdram_out_type; - signal sdo2 : sdctrl_out_type; - signal sdo3 : sdctrl_out_type; - - signal apbi : apb_slv_in_type; - signal apbo : apb_slv_out_vector := (others => apb_none); - signal ahbsi : ahb_slv_in_type; - signal ahbso : ahb_slv_out_vector := (others => ahbs_none); - signal ahbmi : ahb_mst_in_type; - signal ahbmo : ahb_mst_out_vector := (others => ahbm_none); - - signal clkm, clk_25MHz, rstn, sdclkl : std_logic; - -- signal clkvga : std_logic; - signal cgi : clkgen_in_type; - signal cgo : clkgen_out_type; - signal u1i, dui : uart_in_type; - signal u1o, duo : uart_out_type; - - signal irqi : irq_in_vector(0 to CFG_NCPU-1); - signal irqo : irq_out_vector(0 to CFG_NCPU-1); - - signal dbgi : l3_debug_in_vector(0 to CFG_NCPU-1); - signal dbgo : l3_debug_out_vector(0 to CFG_NCPU-1); - - signal dsui : dsu_in_type; - signal dsuo : dsu_out_type; - - signal ethi, ethi1, ethi2 : eth_in_type; - signal etho, etho1, etho2 : eth_out_type; - - signal gpti : gptimer_in_type; - - signal emddis : std_logic; - signal epwrdwn : std_logic; - signal esleep : std_logic; - signal epause : std_logic; - - - --- Adaptions for HPE Compact - - signal dsuact : std_logic; - signal oen_ctrl : std_logic; - signal sdram_selected : std_logic; - signal sd_clk : std_logic; - signal s_ramsn : std_logic_vector (4 downto 0); - signal s_sddqm : std_logic_vector (7 downto 0); - - signal shortcut : std_logic; - signal rx : std_logic; - signal tx : std_logic; - - - constant BOARD_FREQ : integer := 100_000; -- input frequency in KHz - constant CPU_FREQ : integer := BOARD_FREQ * CFG_CLKMUL / CFG_CLKDIV * 1_000; -- cpu frequency in KHz - constant PS2_SCALER : integer := CPU_FREQ / 10_000; -- PS2 Freq = 10 kHz - constant IOAEN : integer := 1; --CFG_ETH + CFG_CAN; - - signal mioi : MultiIO_in_type; - signal mioo : MultiIO_out_type; - - signal kbdi0, kbdi1 : ps2_in_type; - signal kbdo0, kbdo1 : ps2_out_type; - - -- VGA interface - signal vgao : apbvga_out_type; - - signal uclk : std_logic; - signal usbi : grusb_in_type; - signal usbo : grusb_out_type; - - -- simple SPI controller - signal spii : sspi_in_type; - signal spio : sspi_out_type; - signal gspii : spi_in_type; - signal gspio : spi_out_type; - - -- ADC/DAC - signal adcdaci : adcdac_in_type; - signal adcdaco : adcdac_out_type; - - --------------------------------------------------------------------------------------- - -- AC97 AUDIO CODEC - --------------------------------------------------------------------------------------- - - signal dma_ack : std_logic_vector(8 downto 0); - signal int : std_logic; - signal dma_req : std_logic_vector(8 downto 0); - signal suspended : std_logic; - - -- intermediate signals for outputs in order to be able - -- to propagate to two signal sinks - signal ac97_int_sync : std_logic; - signal ac97_int_sdata_out : std_logic; - signal ac97_int_resetn : std_logic; - signal ac97_int_irq : std_logic; - - --------------------------------------------------------------------------------------- - -- HPI SIGNALS - --------------------------------------------------------------------------------------- - signal hpiwriten : std_logic; -- intermediate signal - signal hpirdata : std_logic_vector(15 downto 0); - signal hpiwdata : std_logic_vector(15 downto 0); - signal drive_bus : std_logic; - - signal dbg_equal : std_logic; - signal sample_clk : std_logic; - - --------------------------------------------------------------------------------------- - -begin - ----------------------------------------------------------------------- ---- Reset and Clock generation ------------------------------------- ----------------------------------------------------------------------- - - reset <= not resetn; - - vcc <= (others => '1'); gnd <= (others => '0'); - cgi.pllctrl <= "00"; cgi.pllrst <= resetn; - cgi.pllref <= clk; - - vga_clk_gen : if (CFG_VGA_ENABLE /= 0) generate - no_vga_clk_gen : if ((CFG_CLKDIV/CFG_CLKMUL) = 4) generate - clk_25MHz <= clkm; - end generate; - vga_clk_gen : if ((CFG_CLKDIV/CFG_CLKMUL) /= 4) generate - vga_clk_gen_inst : clkgen - generic map ( - tech => clktech, - clk_mul => 1, - clk_div => 4, - sdramen => 0, - noclkfb => 1, - pcien => 0, - pcidll => 0, - pcisysclk => 0, - freq => BOARD_FREQ, - clk2xen => 0) - port map ( - clkin => clk, - clk => clk_25MHz, - pciclkin => gnd(0), - cgi => cgi, - cgo => open); - end generate; - end generate; - - clkgen_1 : clkgen - generic map ( - tech => clktech, - clk_mul => CFG_CLKMUL, - clk_div => CFG_CLKDIV, - sdramen => CFG_SDCTRL + CFG_MCTRL_SDEN, - noclkfb => CFG_CLK_NOFB, - pcien => 0, - pcidll => 0, - pcisysclk => 0, - freq => BOARD_FREQ, - clk2xen => 1) - port map ( - clkin => clk, - pciclkin => gnd(0), - clk => clkm, - clkn => open, - clk2x => sample_clk, - sdclk => sdclkl, - pciclk => open, - cgi => cgi, - cgo => cgo, - clk4x => open); - - rst0 : rstgen -- reset generator - port map (resetn, clkm, cgo.clklock, rstn); - ----------------------------------------------------------------------- ---- AHB CONTROLLER -------------------------------------------------- ----------------------------------------------------------------------- - - ahb0 : ahbctrl -- AHB arbiter/multiplexer - generic map (defmast => CFG_DEFMST, split => CFG_SPLIT, - rrobin => CFG_RROBIN, ioaddr => CFG_AHBIO, ioen => IOAEN, - nahbm => CFG_NCPU+CFG_AHB_UART+CFG_GRETH+CFG_GRUSB_DCL+CFG_AHB_JTAG, - nahbs => 9) - port map (rstn, clkm, ahbmi, ahbmo, ahbsi, ahbso); - ----------------------------------------------------------------------- ---- LEON3 processor and DSU ----------------------------------------- ----------------------------------------------------------------------- - - cpu : for i in 0 to CFG_NCPU-1 generate - u0 : leon3s -- LEON3 processor - generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, - 0, CFG_MAC, pclow, 0, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, - CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, - CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, - CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, - CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1) - port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, - irqi(i), irqo(i), dbgi(i), dbgo(i)); - end generate; - errorn_pad : odpad generic map (tech => padtech) port map (errorn, dbgo(0).error); - - dsugen : if CFG_DSU = 1 generate - dsu0 : dsu3 -- LEON3 Debug Support Unit - generic map (hindex => 2, haddr => 16#900#, hmask => 16#F00#, - ncpu => CFG_NCPU, tbits => 30, tech => memtech, irq => 0, kbytes => CFG_ATBSZ) - port map (rstn, clkm, ahbmi, ahbsi, ahbso(2), dbgo, dbgi, dsui, dsuo); - dsuen_pad : inpad generic map (tech => padtech) port map (vcc(0), dsui.enable); - dsubre_pad : inpad generic map (tech => padtech) port map (dsubre, dsui.break); - dsuact_pad : outpad generic map (tech => padtech) port map (dsuact, dsuo.active); - end generate; - nodsu : if CFG_DSU = 0 generate - ahbso(2) <= ahbs_none; dsuo.tstop <= '0'; dsuo.active <= '0'; - end generate; - - dcomgen : if CFG_AHB_UART = 1 generate - dcom0 : ahbuart -- Debug UART - generic map (hindex => CFG_NCPU, pindex => 7, paddr => 7) - port map (rstn, clkm, dui, duo, apbi, apbo(7), ahbmi, ahbmo(CFG_NCPU)); - dsurx_pad : inpad generic map (tech => padtech) port map (dsurx, dui.rxd); - dsutx_pad : outpad generic map (tech => padtech) port map (dsutx, duo.txd); - end generate; - nouah : if CFG_AHB_UART = 0 generate apbo(7) <= apb_none; end generate; - - ahbjtaggen0 : if CFG_AHB_JTAG = 1 generate - ahbjtag0 : ahbjtag generic map(tech => fabtech, hindex => CFG_NCPU+CFG_AHB_UART) - port map(rstn, clkm, gnd(0), gnd(0), gnd(0), open, ahbmi, ahbmo(CFG_NCPU+CFG_AHB_UART), - open, open, open, open, open, open, open, gnd(0)); - end generate; - ------------------------------------------------------------------------ ---- USB DEBUG LINK -------------------------------------------------- ------------------------------------------------------------------------ - - usb0 : if CFG_GRUSB_DCL = 1 generate - usb_d_pads : for i in 0 to 15 generate - usb_d_pad : iopad generic map(tech => padtech) - port map (usb_d(i), usbo.dataout(i), usbo.oen, usbi.datain(i)); - end generate; - - usb_h_pad : iopad generic map(tech => padtech) - port map (usb_validh, usbo.txvalidh, usbo.oen, usbi.rxvalidh); - - usb_i0_pad : inpad generic map (tech => padtech) port map (usb_txready, usbi.txready); - usb_i1_pad : inpad generic map (tech => padtech) port map (usb_rxvalid, usbi.rxvalid); - usb_i2_pad : inpad generic map (tech => padtech) port map (usb_rxerror, usbi.rxerror); - usb_i3_pad : inpad generic map (tech => padtech) port map (usb_rxactive, usbi.rxactive); - usb_i4_pad : inpad generic map (tech => padtech) port map (usb_linestate(0), usbi.linestate(0)); - usb_i5_pad : inpad generic map (tech => padtech) port map (usb_linestate(1), usbi.linestate(1)); - - usb_i6_pad : inpad generic map (tech => padtech) port map (usb_vbus, usbi.vbusvalid); - usb_o0_pad : outpad generic map (tech => padtech) port map (usb_reset, usbo.reset); - - usb_o1_pad : outpad generic map (tech => padtech) port map (usb_suspend, usbo.suspendm); - usb_o2_pad : outpad generic map (tech => padtech) port map (usb_termsel, usbo.termselect); - usb_o3_pad : outpad generic map (tech => padtech) port map (usb_xcvrsel, usbo.xcvrselect(0)); - usb_o4_pad : outpad generic map (tech => padtech) port map (usb_opmode(0), usbo.opmode(0)); - usb_o5_pad : outpad generic map (tech => padtech) port map (usb_opmode(1), usbo.opmode(1)); - usb_o6_pad : outpad generic map (tech => padtech) port map (usb_txvalid, usbo.txvalid); - - usb_clk_pad : clkpad generic map (tech => padtech) port map (usb_clkout, uclk); - - -- USB transceiver shall operate in 8-bit mode - usb_dbus16 <= not dsw(1); - -- USB transceiver shall use 8-bit data bus bidirectionally - -- (bits 15 downto 8 are undriven) - usb_unidir <= not dsw(2); - - usb_ctrl : grusb_dcl - generic map (hindex => CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG, memtech => memtech) - port map (uclk, usbi, usbo, clkm, rstn, ahbmi, ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG)); - end generate; - ----------------------------------------------------------------------- ---- Memory controllers ---------------------------------------------- ----------------------------------------------------------------------- - - mg1 : if CFG_SRCTRL = 1 generate -- 32-bit PROM/SRAM controller - sr0 : srctrl generic map (hindex => 0, - ramws => CFG_SRCTRL_RAMWS, romws => CFG_SRCTRL_PROMWS, - ramaddr => 16#400#, rmw => 1) - port map (rstn, clkm, ahbsi, ahbso(0), memi, memo, sdo3); - apbo(0) <= apb_none; - end generate; - - mg2 : if CFG_MCTRL_LEON2 = 1 generate -- LEON2 memory controller - sr1 : mctrl generic map ( - hindex => 0, pindex => 0, - paddr => 0, srbanks => 2, sden => CFG_MCTRL_SDEN, - invclk => CFG_MCTRL_INVCLK, sdlsb => CFG_SDSHIFT, - sepbus => CFG_MCTRL_SEPBUS, sdbits => 32 + 32*CFG_MCTRL_SD64 - ) - port map (rstn, clkm, memi, memo, ahbsi, ahbso(0), apbi, apbo(0), wpo, sdo); - - sdpads : if CFG_MCTRL_SDEN = 1 generate -- SDRAM controller - sd2 : if CFG_MCTRL_SEPBUS = 1 generate - sa_pad : outpadv generic map (width => 13) port map (sdaddr, memo.sa(12 downto 0)); - ba_pad : outpadv generic map (width => 2) port map (sdba, memo.sa(14 downto 13)); - bdr : for i in 0 to 3 generate - sddq_pad : iopadv generic map (tech => padtech, width => 8) - port map (sddq(31-i*8 downto 24-i*8), memo.data(31-i*8 downto 24-i*8), - memo.bdrive(i), memi.sd(31-i*8 downto 24-i*8)); - sddq2 : if CFG_MCTRL_SD64 = 1 generate - sddq_pad2 : iopadv generic map (tech => padtech, width => 8) - port map (sddq(31-i*8+32 downto 24-i*8+32), memo.data(31-i*8 downto 24-i*8), - memo.bdrive(i), memi.sd(31-i*8+32 downto 24-i*8+32)); - end generate; - end generate; - end generate; - sdwen_pad : outpad generic map (tech => padtech) - port map (sdwen, sdo.sdwen); - sdras_pad : outpad generic map (tech => padtech) - port map (sdrasn, sdo.rasn); - sdcas_pad : outpad generic map (tech => padtech) - port map (sdcasn, sdo.casn); - sddqm_pad : outpadv generic map (width => 8, tech => padtech) - port map (sddqm, sdo.dqm); - sdcke_pad : outpadv generic map (width => 2, tech => padtech) - port map (sdcke, sdo.sdcke); - sdcsn_pad : outpadv generic map (width => 2, tech => padtech) - port map (sdcsn, sdo.sdcsn); - end generate; - end generate; - - - sdclk_pad : outpad generic map (tech => padtech, slew => 1) port map (sdclk(0), sdclkl); - sdclk_pad2 : outpad generic map (tech => padtech, slew => 1) port map (sdclk(1), gnd(0)); - - sd_controller : if CFG_SDCTRL /= 0 generate - sdctrl_1 : sdctrl - generic map ( - hindex => 5, - haddr => 16#600#, - hmask => 16#F00#, - ioaddr => 16#500#, - iomask => 16#FFF#, - wprot => 0, - invclk => CFG_SDCTRL_INVCLK, - fast => 0, - pwron => 0, - sdbits => 32 + 32*CFG_SDCTRL_SD64) - port map ( - rst => rstn, - clk => clkm, - ahbsi => ahbsi, - ahbso => ahbso(5), - sdi => sdi, - sdo => sdo2); - - -- output signals - sdaddr <= sdo2.address(14 downto 2); - sdba <= sdo2.address(16 downto 15); - sdcke <= sdo2.sdcke; - sdwen <= sdo2.sdwen; - sdcsn <= sdo2.sdcsn; - sdrasn <= sdo2.rasn; - sdcasn <= sdo2.casn; - sddqm <= sdo2.dqm(7 downto 0); - - query_64_bit : if (CFG_SDCTRL_SD64 /= 0) generate - sd_pad : iopadv generic map (width => 32) - port map (sddq(63 downto 32), - sdo2.data(63 downto 32), - sdo2.bdrive, - sdi.data(63 downto 32)); - end generate; - - sd_pad2 : iopadv generic map (width => 32) - port map (sddq(31 downto 0), - sdo2.data(31 downto 0), - sdo2.bdrive, - sdi.data(31 downto 0)); - end generate sd_controller; - - nosd0 : if (CFG_MCTRL_SDEN = 0 and CFG_SDCTRL = 0) generate -- no SDRAM controller - sdclk_pad : outpad generic map (tech => padtech, slew => 1) port map (sd_clk, sdclkl); - sdcke_pad : outpadv generic map (width => 2, tech => padtech) - port map (sdcke, sdo3.sdcke); - sdcsn_pad : outpadv generic map (width => 2, tech => padtech) - port map (sdcsn, sdo3.sdcsn); - end generate; - - memi.brdyn <= '1'; memi.bexcn <= '1'; - memi.writen <= '1'; memi.wrn <= "1111"; memi.bwidth <= "10"; - - mg0 : if (CFG_MCTRL_LEON2 = 0) and (CFG_SRCTRL = 0) generate -- no prom/sram controller - apbo(0) <= apb_none; ahbso(0) <= ahbs_none; - rams_pad : outpadv generic map (width => 5, tech => padtech) - port map (ramsn, vcc); - roms_pad : outpadv generic map (width => 2, tech => padtech) - port map (romsn, vcc(1 downto 0)); - end generate; - - mgpads : if not ((CFG_MCTRL_LEON2 = 0) and (CFG_SRCTRL = 0)) generate -- prom/sram controller - addr_pad : outpadv generic map (width => 28, tech => padtech) - port map (address, memo.address(27 downto 0)); - rams_pad : outpadv generic map (width => 5, tech => padtech) - port map (ramsn, s_ramsn); - roms_pad : outpadv generic map (width => 2, tech => padtech) - port map (romsn, memo.romsn(1 downto 0)); - oen_pad : outpad generic map (tech => padtech) - port map (oen, memo.oen); - rwen_pad : outpadv generic map (width => 4, tech => padtech) - port map (rwen, memo.wrn); - roen_pad : outpadv generic map (width => 5, tech => padtech) - port map (ramoen, memo.ramoen(4 downto 0)); - wri_pad : outpad generic map (tech => padtech) - port map (writen, memo.writen); - read_pad : outpad generic map (tech => padtech) - port map (read, memo.read); - iosn_pad : outpad generic map (tech => padtech) - port map (iosn, memo.iosn); - bdr : for i in 0 to 3 generate - data_pad : iopadv generic map (tech => padtech, width => 8) - port map (data(31-i*8 downto 24-i*8), memo.data(31-i*8 downto 24-i*8), - memo.bdrive(i), memi.data(31-i*8 downto 24-i*8)); - end generate; - end generate; - ----------------------------------------------------------------------- ---- APB Bridge and various peripherals ------------------------------- ----------------------------------------------------------------------- - - bpromgen : if CFG_AHBROMEN /= 0 generate - brom : entity work.ahbrom - generic map (hindex => 3, haddr => CFG_AHBRODDR, pipe => CFG_AHBROPIP) - port map (rstn, clkm, ahbsi, ahbso(3)); - end generate; - nobpromgen : if CFG_AHBROMEN = 0 generate - ahbso(3) <= ahbs_none; - end generate; - ----------------------------------------------------------------------- ---- APB Bridge and various periherals ------------------------------- ----------------------------------------------------------------------- - - apb0 : apbctrl -- AHB/APB bridge - generic map (hindex => 1, haddr => CFG_APBADDR) - port map (rstn, clkm, ahbsi, ahbso(1), apbi, apbo); - - -- APB uart - ua1 : if CFG_UART1_ENABLE /= 0 generate - uart1 : apbuart -- UART 1 - generic map (pindex => 1, paddr => 1, pirq => 2, console => dbguart, - fifosize => CFG_UART1_FIFO) - port map (rstn, clkm, apbi, apbo(1), u1i, u1o); - u1i.rxd <= rxd1; u1i.ctsn <= '0'; u1i.extclk <= '0'; txd1 <= u1o.txd; - end generate; - noua0 : if CFG_UART1_ENABLE = 0 generate apbo(1) <= apb_none; end generate; - - -- interrupt controller - irqctrl : if CFG_IRQ3_ENABLE /= 0 generate - irqctrl0 : irqmp -- interrupt controller - generic map (pindex => 2, paddr => 2, ncpu => CFG_NCPU) - port map (rstn, clkm, apbi, apbo(2), irqo, irqi); - end generate; - irq3 : if CFG_IRQ3_ENABLE = 0 generate - x : for i in 0 to CFG_NCPU-1 generate - irqi(i).irl <= "0000"; - end generate; - apbo(2) <= apb_none; - end generate; - - -- general purpose timer - gpt : if CFG_GPT_ENABLE /= 0 generate - timer0 : gptimer -- timer unit - generic map (pindex => 3, paddr => 3, pirq => CFG_GPT_IRQ, - sepirq => CFG_GPT_SEPIRQ, sbits => CFG_GPT_SW, ntimers => CFG_GPT_NTIM, - nbits => CFG_GPT_TW) - port map (rstn, clkm, apbi, apbo(3), gpti, open); - gpti.dhalt <= dsuo.tstop; gpti.extclk <= '0'; - end generate; - notim : if CFG_GPT_ENABLE = 0 generate apbo(3) <= apb_none; end generate; - - -- VGA interface - vga : if CFG_VGA_ENABLE /= 0 generate - vga0 : apbvga generic map(memtech => memtech, pindex => 4, paddr => 4) - port map(rstn, clkm, clk_25MHz, apbi, apbo(4), vgao); - -- port map(rstn, clkm, clkm, apbi, apbo(4), vgao); - end generate; - - novga : if CFG_VGA_ENABLE = 0 generate apbo(4) <= apb_none; vgao <= vgao_none; end generate; - - vert_sync_pad : outpad generic map (tech => padtech) - port map (vga_vsync, vgao.vsync); - horiz_sync_pad : outpad generic map (tech => padtech) - port map (vga_hsync, vgao.hsync); - video_out_r_pad : outpadv generic map (width => 8, tech => padtech) - port map (vga_rd, vgao.video_out_r(7 downto 0)); - video_out_g_pad : outpadv generic map (width => 8, tech => padtech) - port map (vga_gr, vgao.video_out_g(7 downto 0)); - video_out_b_pad : outpadv generic map (width => 8, tech => padtech) - port map (vga_bl, vgao.video_out_b(7 downto 0)); - -- pixel clock = system clock - vga_clk_pad : outpad generic map (tech => padtech) - port map (vga_clk, clk_25MHz); - -- port map (vga_clk, clkm); - -- via syncn, additional sync information could be transported - -- on the green colour channel - -- connecting it to ground disables this feature - vga_syncn_pad : outpad generic map (tech => padtech) - port map (vga_syncn, gnd(0)); - -- don't disable output - vga_blankn_pad : outpad generic map (tech => padtech) - port map (vga_blankn, vcc(0)); - ------------------------------------------------------------------------ ---- MULTIIO SECTION -------------------------------------------------- ------------------------------------------------------------------------ - MULTIIO : if CFG_MULTIIO /= 0 generate - -- human interface controller - mio : MultiIO_APB - generic map ( - pindex => 6, - paddr => 6, - pmask => 16#fff#, - pirq => 6, - clk_freq_in => CPU_FREQ, - hpe_version => midi, - led7act => '0', - ledact => '0', - switchact => '0', -- switch polarity is inverse to Hpe_compact - buttonact => '1') - port map ( - rst_n => rstn, - clk => clkm, - apbi => apbi, - apbo => apbo(6), - MultiIO_in => mioi, - MultiIO_out => mioo); - - mioi.switch_in <= dsw; - mioi.row_in <= tst_row; - - -- expansion connector - mioi.exp_in <= exp_datai; - exp_datao <= mioo.exp_out; - - sevensegment <= mioo.led_ca_out(1) & -- 9 - mioo.led_ca_out(0) & -- 8 - mioo.led_dp_out & -- . - mioo.led_g_out & -- . - mioo.led_f_out & -- . - mioo.led_e_out & - mioo.led_d_out & - mioo.led_c_out & - mioo.led_b_out & - mioo.led_a_out; -- 0 - tst_col <= mioo.column_out; - - lcd_regsel <= mioo.lcd_regsel; - lcd_rw <= mioo.lcd_rw; - lcd_enable <= mioo.lcd_enable; - - end generate; - - nMULTIIO : if CFG_MULTIIO = 0 generate - apbo(6) <= apb_none; - end generate; - ------------------------------------------------------------------------ ---- ETHERNET --------------------------------------------------------- ------------------------------------------------------------------------ - - eth0 : if CFG_GRETH = 1 generate -- Gaisler ethernet MAC - e1 : greth generic map(hindex => CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_GRUSB_DCL, - pindex => 15, paddr => 15, pirq => 12, memtech => memtech, - mdcscaler => CPU_FREQ/1000000, enable_mdio => 1, fifosize => CFG_ETH_FIFO, - nsync => 1, edcl => CFG_DSU_ETH, edclbufsz => CFG_ETH_BUF, - macaddrh => CFG_ETH_ENM, macaddrl => CFG_ETH_ENL, - ipaddrh => CFG_ETH_IPM, ipaddrl => CFG_ETH_IPL) - port map(rst => rstn, clk => clkm, ahbmi => ahbmi, - ahbmo => ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_GRUSB_DCL), apbi => apbi, - apbo => apbo(15), ethi => ethi, etho => etho); - - emdio_pad : iopad generic map (tech => padtech) - port map (emdio, etho.mdio_o, etho.mdio_oe, ethi.mdio_i); - etxc_pad : inpad generic map (tech => padtech) - port map (etx_clk, ethi.tx_clk); - erxc_pad : inpad generic map (tech => padtech) - port map (erx_clk, ethi.rx_clk); - erxd_pad : inpadv generic map (tech => padtech, width => 4) - port map (erxd, ethi.rxd(3 downto 0)); - erxdv_pad : inpad generic map (tech => padtech) - port map (erx_dv, ethi.rx_dv); - erxer_pad : inpad generic map (tech => padtech) - port map (erx_er, ethi.rx_er); - erxco_pad : inpad generic map (tech => padtech) - port map (erx_col, ethi.rx_col); - erxcr_pad : inpad generic map (tech => padtech) - port map (erx_crs, ethi.rx_crs); - - etxd_pad : outpadv generic map (tech => padtech, width => 4) - port map (etxd, etho.txd(3 downto 0)); - etxen_pad : outpad generic map (tech => padtech) - port map (etx_en, etho.tx_en); - etxer_pad : outpad generic map (tech => padtech) - port map (etx_er, etho.tx_er); - emdc_pad : outpad generic map (tech => padtech) - port map (emdc, etho.mdc); - - emdis_pad : outpad generic map (tech => padtech) - port map (emddis, vcc(0)); - eepwrdwn_pad : outpad generic map (tech => padtech) - port map (epwrdwn, gnd(0)); - esleep_pad : outpad generic map (tech => padtech) - port map (esleep, gnd(0)); - epause_pad : outpad generic map (tech => padtech) - port map (epause, gnd(0)); - ereset_pad : outpad generic map (tech => padtech) - port map (ereset, rstn); - - end generate; - - ------------------------------------------------------------------------ ---- CAN -------------------------------------------------------------- ------------------------------------------------------------------------ - - can1 : if CFG_CAN /= 0 generate -- Opencores can MAC - can0 : can_oc - generic map ( - slvndx => 6, - ioaddr => CFG_CANIO, - iomask => 16#FF0#, - irq => 13) - port map ( - resetn => rstn, - clk => clkm, - ahbsi => ahbsi, - ahbso => ahbso(6), - can_rxi => rx, - can_txo => tx - ); - end generate; - - ncan : if CFG_CAN = 0 generate - ahbso(6) <= ahbs_none; - end generate; - - -- CAN Transceiver mode (phy) - -- Can stb = 0 operating - -- Can stb = 1 standby - CAN_STB <= '0'; - - -- Can rx and tx must be hot-wired in case of testing can - test_can : if CFG_CANLOOP = 1 generate - rx <= tx; - end generate; - - normal_can : if CFG_CANLOOP = 0 generate - rx <= CAN_RXD; - CAN_TXD <= tx; - end generate; - ------------------------------------------------------------------------ ---- AHB RAM ---------------------------------------------------------- ------------------------------------------------------------------------ - - ocram : if CFG_AHBRAMEN = 1 generate - ahbram0 : ahbram generic map (hindex => 7, haddr => CFG_AHBRADDR, - tech => CFG_MEMTECH, kbytes => CFG_AHBRSZ) - port map (rstn, clkm, ahbsi, ahbso(7)); - end generate; - nram : if CFG_AHBRAMEN = 0 generate ahbso(7) <= ahbs_none; end generate; - ------------------------------------------------------------------------ ---- Drive unused bus elements --------------------------------------- ------------------------------------------------------------------------ - - nam1 : for i in (CFG_NCPU+CFG_AHB_UART+CFG_GRETH+CFG_GRUSB_DCL+CFG_AHB_JTAG) to NAHBMST-1 generate - ahbmo(i) <= ahbm_none; - end generate; - - nap0 : for i in 11 to NAPBSLV-1-CFG_GRETH generate apbo(i) <= apb_none; end generate; - - nah0 : for i in 9 to NAHBSLV-1 generate ahbso(i) <= ahbs_none; end generate; - ------------------------------------------------------------------------ ---- Adaptions for HPE midi ---------------------------------------- ------------------------------------------------------------------------ - - -- rben vector is pulled down entirely while reading, - -- selected vector elements pulled down while writing - rben <= (others => '0') when memo.ramoen(0) = '0' else - memo.wrn; - -- invert signal for input via a key - -- invert dsuact signal for output on LED - dsuactn <= not dsuact; - - s_ramsn <= memo.ramsn(4 downto 0); - - -- drive reset signal for peripherals like ethernet, flash etc. - -- use USB reset for USB DCL (experimental) - -- USB reset needs to be decoupled from general resout signal - resoutn <= rstn; -- reset signal for USB host chip, exp. - -- connector - - - --------------------------------------------------------------------------------------- - -- PS/2 interface - --------------------------------------------------------------------------------------- - - -- INTERFACE 0 CANNOT BE USED, SINCE THE OUTPUT SIGNAL PS2CLOCK(0) - -- WOULD HAVE TO BE ASSIGNED TO FPGA INPUT PIN U30!! - - ps2_0if : if CFG_KBD_ENABLE /= 0 generate - -- PS/2 interface 0 (keyboard, bottom connector) - apbps2_0 : apbps2 - generic map ( - pindex => 10, - paddr => 10, - pirq => 4, - fKHz => PS2_SCALER, --CPU_FREQ/15, -- clock divider for APB clock (13.3 kHz selected) - fixed => 0) -- clock can be programmed via timer reload reg - port map ( - rst => rstn, - clk => clkm, - apbi => apbi, - apbo => apbo(10), - ps2i => kbdi0, - ps2o => kbdo0); - end generate ps2_0if; - - no_ps2_1if : if CFG_KBD_ENABLE = 0 generate - apbo(10) <= apb_none; - kbdo0 <= ps2o_none; - end generate no_ps2_1if; - - kbd0_clk_pad : iopad generic map (tech => padtech) - port map (ps2_clk(0), kbdo0.ps2_clk_o, kbdo0.ps2_clk_oe, kbdi0.ps2_clk_i); - - kbd0_data_pad : iopad generic map (tech => padtech) - port map (ps2_data(0), kbdo0.ps2_data_o, kbdo0.ps2_data_oe, kbdi0.ps2_data_i); - - - ps2_1if : if CFG_KBD_ENABLE /= 0 generate - -- PS/2 interface 1 (keyboard, top connector) - apbps2_1 : apbps2 - generic map ( - pindex => 5, - paddr => 5, - pirq => 4, - fKHz => PS2_SCALER, -- CPU_FREQ/15, - fixed => 0) - port map ( - rst => rstn, - clk => clkm, - apbi => apbi, - apbo => apbo(5), - ps2i => kbdi1, - ps2o => kbdo1); - end generate ps2_1if; - - no_ps2_if : if CFG_KBD_ENABLE = 0 generate - apbo(5) <= apb_none; - kbdo1 <= ps2o_none; - end generate no_ps2_if; - - kbd1_clk_pad : iopad generic map (tech => padtech) - port map (ps2_clk(1), kbdo1.ps2_clk_o, kbdo1.ps2_clk_oe, kbdi1.ps2_clk_i); - - kbd1_data_pad : iopad generic map (tech => padtech) - port map (ps2_data(1), kbdo1.ps2_data_o, kbdo1.ps2_data_oe, kbdi1.ps2_data_i); - - ----------------------------------------------------------------------------- - -- ADC/DAC interface - ----------------------------------------------------------------------------- - - adcdac_inst : if CFG_ADCDAC /= 0 generate - adcdac_1 : adcdac - generic map ( - pindex => 9, - paddr => 9, - pmask => 16#FFF#, - nbits => 10) - port map ( - rst => rstn, - clk => clkm, - apbi => apbi, - apbo => apbo(9), - adcdaci => adcdaci, - adcdaco => adcdaco); - - adcdaci.adc_in <= adc_dout; - adc_ain <= adcdaco.adc_fb; - dac_out <= adcdaco.dac_out; - - end generate; - - nadcdac_inst : if CFG_ADCDAC = 0 generate - apbo(9) <= apb_none; - end generate; - - - ----------------------------------------------------------------------------- - -- HPI SECTION - ----------------------------------------------------------------------------- - - ahb2hpi_inst : if CFG_AHB2HPI /= 0 generate - ahb2hpi2_1 : ahb2hpi2 - generic map ( - counter_width => 4, - data_width => 16, - address_width => 2, - hindex => 8, - haddr => 16#240#, - hmask => 16#fff#) - port map ( - HCLK => clkm, - HRESETn => rstn, - ahbso => ahbso(8), - ahbsi => ahbsi, - ADDR => hpiaddr, - WDATA => hpiwdata, - RDATA => hpirdata, - nCS => hpicsn, - nWR => hpiwriten, - nRD => hpirdn, - INT => hpiint, - drive_bus => drive_bus, - dbg_equal => dbg_equal - ); - - hpidata <= hpiwdata when drive_bus = '1' else - (others => 'Z'); - - hpirdata <= hpidata; - - hpiwrn <= hpiwriten; - - end generate; - nahb2hpi_inst : if CFG_AHB2HPI = 0 generate - ahbso(8) <= ahbs_none; - end generate; - - --------------------------------------------------------------------------------------- - -- Simple SPI Controller - --------------------------------------------------------------------------------------- - spi_oc_inst : if CFG_SPI_OC /= 0 generate - spi_oc_1 : spi_oc - generic map ( - pindex => 8, - paddr => 8, - pmask => 16#FFF#, - pirq => 5) - port map ( - rstn => rstn, - clk => clkm, - apbi => apbi, - apbo => apbo(8), - spi_in => spii, - spi_out => spio); - - -- inputs from SD card - spii.miso <= sdcard_do; - - -- outputs to SD card - sdcard_cs <= spio.ssn(0); - sdcard_di <= spio.mosi; - sdcard_sclk <= spio.sck; - - end generate; - - gspi_inst : if CFG_SPICTRL_ENABLE /= 0 and CFG_SPI_OC = 0 generate - gspi_1 : spictrl - generic map ( - pindex => 8, - paddr => 8, - pmask => 16#FFF#, - pirq => 5, - fdepth => CFG_SPICTRL_FIFO, -- FIFO depth is 2^fdepth - slvselen => CFG_SPICTRL_SLVREG, -- Slave select register enable - slvselsz => CFG_SPICTRL_SLVS, -- Number of slave select signal - netlist => 0, - syncram => CFG_SPICTRL_SYNCRAM, - ft => CFG_SPICTRL_FT) - port map ( - rstn => rstn, - clk => clkm, - apbi => apbi, - apbo => apbo(8), - spii => gspii, - spio => gspio); - - -- inputs from SD card - gspii.miso <= sdcard_do; - - -- outputs to SD card - sdcard_cs <= gspio.ssn(0); - sdcard_di <= gspio.mosi; - sdcard_sclk <= gspio.sck; - - end generate; - - nspi_inst : if CFG_SPI_OC = 0 and CFG_SPICTRL_ENABLE = 0 generate - apbo(8) <= apb_none; - end generate; - - - ----------------------------------------------------------------------------- - -- AUDIO CODEC - ----------------------------------------------------------------------------- - ac97_oc_inst : if CFG_AC97_OC /= 0 generate - - -- DMA not used at the moment - dma_ack <= (others => '0'); - - -- drive AC97 external clock with 25 MHz - ac97_ext_clk <= clk_25MHz; - - ac97_oc_1 : ac97_oc - generic map ( - slvndx => 4, - ioaddr => 16#300#, - iomask => 16#FFF#, - irq => 7) - port map ( - resetn => rstn, - clk => clkm, - ahbsi => ahbsi, - ahbso => ahbso(4), - - -- AC97 interface - bit_clk_pad_i => ac97_bit_clk, - sdata_pad_i => ac97_sdata_in, - -- output signals have to go via - -- intermediate signals - sync_pad_o => ac97_int_sync, - sdata_pad_o => ac97_int_sdata_out, - ac97_reset_padn_o => ac97_int_resetn, - - int_o => ac97_int_irq, - dma_req_o => open, - dma_ack_i => dma_ack, - suspended_o => open, - int_pol => vcc(0) -- interrupts active high - ); - - -- drive AC97 outputs from intermediate signals - ac97_sync <= ac97_int_sync; - ac97_sdata_out <= ac97_int_sdata_out; - ac97_resetn <= ac97_int_resetn; - - end generate; - nac97_oc_inst : if CFG_AC97_OC = 0 generate - ahbso(4) <= ahbs_none; - end generate; - - ------------------------------------------------------------------------ ---- Boot message ---------------------------------------------------- ------------------------------------------------------------------------ - --- pragma translate_off - x : report_version - generic map ( - msg1 => "LEON3 Demonstration design for Hpe-midi with module AS1-180", - msg2 => "GRLIB Version " & tost(LIBVHDL_VERSION/100) & "." & tost((LIBVHDL_VERSION mod 10)/10) - & "." & tost(LIBVHDL_VERSION mod 100), - msg3 => "Target technology: " & tech_table(fabtech) & ", memory library: " & tech_table(memtech), - mdel => 1 - ); --- pragma translate_on -end; diff --git a/designs/leon3-ge-hpe-midi-ep2s180/linkprom b/designs/leon3-ge-hpe-midi-ep2s180/linkprom deleted file mode 100644 index 1805994a..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/linkprom +++ /dev/null @@ -1,155 +0,0 @@ -/* linkcmds - * - * $Id: linkcmds,v 1.8.2.1 2000/05/24 17:06:38 joel Exp $ - */ - -OUTPUT_ARCH(sparc) -__DYNAMIC = 0; - -/* - * The memory map looks like this: - * +--------------------+ <- low memory - * | .text | - * | etext | - * | ctor list | the ctor and dtor lists are for - * | dtor list | C++ support - * | _endtext | - * +--------------------+ - * | .data | initialized data goes here - * | _sdata | - * | _edata | - * +--------------------+ - * | .bss | - * | __bss_start | start of bss, cleared by crt0 - * | _end | start of heap, used by sbrk() - * +--------------------+ - * | heap space | - * | _ENDHEAP | - * | stack space | - * | __stack | top of stack - * +--------------------+ <- high memory - */ - - -/* Default values, can be overridden */ - -_PROM_SIZE = 2M; -_RAM_SIZE = 4M; - -_RAM_START = 0x02000000; -_RAM_END = _RAM_START + _RAM_SIZE; - -_PROM_START = 0x00000000; -_PROM_END = _PROM_START + _PROM_SIZE; - -/* - * Alternate names without leading _. - */ - -PROM_START = _PROM_START; -PROM_SIZE = _PROM_SIZE; -PROM_END = _PROM_END; - -RAM_START = _RAM_START; -RAM_SIZE = _RAM_SIZE; -RAM_END = _RAM_END; - -_LEON_REG = 0x80000000; -LEON_REG = 0x80000000; - -/* these are the maximum values */ - -MEMORY -{ - rom : ORIGIN = 0x00000000, LENGTH = 16M - ram : ORIGIN = 0x40000000, LENGTH = 1024M -} - -SECTIONS -{ - .text : - { - CREATE_OBJECT_SYMBOLS - text_start = .; - _text_start = .; - *(.text) - . = ALIGN (16); - - *(.eh_frame) - . = ALIGN (16); - - *(.gnu.linkonce.t*) - - /* - * C++ constructors - */ - __CTOR_LIST__ = .; - LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) - *(.ctors) - LONG(0) - __CTOR_END__ = .; - __DTOR_LIST__ = .; - LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) - *(.dtors) - LONG(0) - __DTOR_END__ = .; - - _rodata_start = . ; - *(.rodata*) - *(.gnu.linkonce.r*) - _erodata = ALIGN( 0x10 ) ; - - etext = ALIGN(0x10); - _etext = .; - *(.init) - *(.fini) - *(.lit) - *(.shdata) - . = ALIGN (16); - _endtext = .; - } > rom - .dynamic : { *(.dynamic) } >ram - .got : { *(.got) } >ram - .plt : { *(.plt) } >ram - .hash : { *(.hash) } >ram - .dynrel : { *(.dynrel) } >ram - .dynsym : { *(.dynsym) } >ram - .dynstr : { *(.dynstr) } >ram - .hash : { *(.hash) } >ram - .data : - { - data_start = .; - _data_start = .; - _sdata = . ; - *(.data) - *(.gnu.linkonce.d*) - *(.gcc_except_table) - . = ALIGN(0x10); - edata = .; - _edata = .; - } > ram - .shbss : - { - *(.shbss) - } > ram - .bss : - { - __bss_start = ALIGN(0x8); - _bss_start = .; - bss_start = .; - *(.bss) - *(COMMON) - end = .; - _end = ALIGN(0x8); - __end = ALIGN(0x8); - } > ram - .jcr . (NOLOAD) : { *(.jcr) } - .stab . (NOLOAD) : - { - [ .stab ] - } - .stabstr . (NOLOAD) : - { - [ .stabstr ] - } -} diff --git a/designs/leon3-ge-hpe-midi-ep2s180/prom.h b/designs/leon3-ge-hpe-midi-ep2s180/prom.h deleted file mode 100644 index 1ea7e2e1..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/prom.h +++ /dev/null @@ -1,10 +0,0 @@ -#define MCFG1 0x10380233 -#define MCFG2 0xe6A06e60 -#define MCFG3 0x000ff000 -#define ASDCFG 0xfff00100 -#define DSDCFG 0xe6A06e60 -#define L2MCTRLIO 0x80000000 -#define IRQCTRL 0x80000200 -#define RAMSTART 0x40000000 -#define RAMSIZE 0x00100000 - diff --git a/designs/leon3-ge-hpe-midi-ep2s180/sram.srec b/designs/leon3-ge-hpe-midi-ep2s180/sram.srec deleted file mode 100755 index b60046fb..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/sram.srec +++ /dev/null @@ -1,19492 +0,0 @@ -S00C00007372616D2E7372656365 -S31540000000881000000910006C81C1206C01000000BE -S31540000010A1480000A75000001080203BAC102001F2 -S3154000002091D0200001000000010000000100000006 -S3154000003091D02000010000000100000001000000F6 -S31540000040A14800002910006B81C523A401000000CF -S31540000050A14800002910006981C522C8010000009E -S31540000060A14800002910006981C523340100000021 -S3154000007091D02000010000000100000001000000B6 -S3154000008091D02000010000000100000001000000A6 -S31540000090A1480000A75000001080201BAC1020098A -S315400000A091D0200001000000010000000100000086 -S315400000B091D0200001000000010000000100000076 -S315400000C091D0200001000000010000000100000066 -S315400000D091D0200001000000010000000100000056 -S315400000E091D0200001000000010000000100000046 -S315400000F091D0200001000000010000000100000036 -S3154000010091D0200001000000010000000100000025 -S31540000110AE102001A148000010806A33A7500000AD -S31540000120AE102002A148000010806A2FA7500000A0 -S31540000130AE102003A148000010806A2BA750000093 -S31540000140AE102004A148000010806A27A750000086 -S31540000150AE102005A148000010806A23A750000079 -S31540000160AE102006A148000010806A1FA75000006C -S31540000170AE102007A148000010806A1BA75000005F -S31540000180AE102008A148000010806A17A750000052 -S31540000190AE102009A148000010806A13A750000045 -S315400001A0AE10200AA148000010806A0FA750000038 -S315400001B0AE10200BA148000010806A0BA75000002B -S315400001C0AE10200CA148000010806A07A75000001E -S315400001D0AE10200DA148000010806A03A750000011 -S315400001E0AE10200EA1480000108069FFA750000005 -S315400001F0AE10200FA1480000108069FBA7500000F8 -S3154000020091D0200001000000010000000100000024 -S3154000021091D0200001000000010000000100000014 -S3154000022091D0200001000000010000000100000004 -S3154000023091D02000010000000100000001000000F4 -S3154000024091D02000010000000100000001000000E4 -S3154000025091D02000010000000100000001000000D4 -S3154000026091D02000010000000100000001000000C4 -S3154000027091D02000010000000100000001000000B4 -S3154000028091D02000010000000100000001000000A4 -S3154000029091D0200001000000010000000100000094 -S315400002A091D0200001000000010000000100000084 -S315400002B091D0200001000000010000000100000074 -S315400002C091D0200001000000010000000100000064 -S315400002D091D0200001000000010000000100000054 -S315400002E091D0200001000000010000000100000044 -S315400002F091D0200001000000010000000100000034 -S3154000030091D0200001000000010000000100000023 -S3154000031091D0200001000000010000000100000013 -S3154000032091D0200001000000010000000100000003 -S3154000033091D02000010000000100000001000000F3 -S3154000034091D02000010000000100000001000000E3 -S3154000035091D02000010000000100000001000000D3 -S3154000036091D02000010000000100000001000000C3 -S3154000037091D02000010000000100000001000000B3 -S3154000038091D02000010000000100000001000000A3 -S3154000039091D0200001000000010000000100000093 -S315400003A091D0200001000000010000000100000083 -S315400003B091D0200001000000010000000100000073 -S315400003C091D0200001000000010000000100000063 -S315400003D091D0200001000000010000000100000053 -S315400003E091D0200001000000010000000100000043 -S315400003F091D0200001000000010000000100000033 -S3154000040091D0200001000000010000000100000022 -S3154000041091D0200001000000010000000100000012 -S3154000042091D0200001000000010000000100000002 -S3154000043091D02000010000000100000001000000F2 -S3154000044091D02000010000000100000001000000E2 -S3154000045091D02000010000000100000001000000D2 -S3154000046091D02000010000000100000001000000C2 -S3154000047091D02000010000000100000001000000B2 -S3154000048091D02000010000000100000001000000A2 -S3154000049091D0200001000000010000000100000092 -S315400004A091D0200001000000010000000100000082 -S315400004B091D0200001000000010000000100000072 -S315400004C091D0200001000000010000000100000062 -S315400004D091D0200001000000010000000100000052 -S315400004E091D0200001000000010000000100000042 -S315400004F091D0200001000000010000000100000032 -S3154000050091D0200001000000010000000100000021 -S3154000051091D0200001000000010000000100000011 -S3154000052091D0200001000000010000000100000001 -S3154000053091D02000010000000100000001000000F1 -S3154000054091D02000010000000100000001000000E1 -S3154000055091D02000010000000100000001000000D1 -S3154000056091D02000010000000100000001000000C1 -S3154000057091D02000010000000100000001000000B1 -S3154000058091D02000010000000100000001000000A1 -S3154000059091D0200001000000010000000100000091 -S315400005A091D0200001000000010000000100000081 -S315400005B091D0200001000000010000000100000071 -S315400005C091D0200001000000010000000100000061 -S315400005D091D0200001000000010000000100000051 -S315400005E091D0200001000000010000000100000041 -S315400005F091D0200001000000010000000100000031 -S3154000060091D0200001000000010000000100000020 -S3154000061091D0200001000000010000000100000010 -S3154000062091D0200001000000010000000100000000 -S3154000063091D02000010000000100000001000000F0 -S3154000064091D02000010000000100000001000000E0 -S3154000065091D02000010000000100000001000000D0 -S3154000066091D02000010000000100000001000000C0 -S3154000067091D02000010000000100000001000000B0 -S3154000068091D02000010000000100000001000000A0 -S3154000069091D0200001000000010000000100000090 -S315400006A091D0200001000000010000000100000080 -S315400006B091D0200001000000010000000100000070 -S315400006C091D0200001000000010000000100000060 -S315400006D091D0200001000000010000000100000050 -S315400006E091D0200001000000010000000100000040 -S315400006F091D0200001000000010000000100000030 -S3154000070091D020000100000001000000010000001F -S3154000071091D020000100000001000000010000000F -S3154000072091D02000010000000100000001000000FF -S3154000073091D02000010000000100000001000000EF -S3154000074091D02000010000000100000001000000DF -S3154000075091D02000010000000100000001000000CF -S3154000076091D02000010000000100000001000000BF -S3154000077091D02000010000000100000001000000AF -S3154000078091D020000100000001000000010000009F -S3154000079091D020000100000001000000010000008F -S315400007A091D020000100000001000000010000007F -S315400007B091D020000100000001000000010000006F -S315400007C091D020000100000001000000010000005F -S315400007D091D020000100000001000000010000004F -S315400007E091D020000100000001000000010000003F -S315400007F091D020000100000001000000010000002F -S3154000080091D020000100000001000000010000001E -S3154000081091D020000100000001000000010000000E -S31540000820A14800002910006A81C521080100000086 -S31540000830A1480000108067D9A750000001000000C1 -S3154000084091D02000010000000100000001000000DE -S31540000850A14800002910006A81C520EC0100000073 -S3154000086091D02000010000000100000001000000BE -S3154000087091D02000010000000100000001000000AE -S3154000088091D020000100000001000000010000009E -S3154000089091D020000100000001000000010000008E -S315400008A091D020000100000001000000010000007E -S315400008B091D020000100000001000000010000006E -S315400008C091D020000100000001000000010000005E -S315400008D091D020000100000001000000010000004E -S315400008E091D020000100000001000000010000003E -S315400008F091D020000100000001000000010000002E -S3154000090091D020000100000001000000010000001D -S3154000091091D020000100000001000000010000000D -S3154000092091D02000010000000100000001000000FD -S3154000093091D02000010000000100000001000000ED -S3154000094091D02000010000000100000001000000DD -S3154000095091D02000010000000100000001000000CD -S3154000096091D02000010000000100000001000000BD -S3154000097091D02000010000000100000001000000AD -S3154000098091D020000100000001000000010000009D -S3154000099091D020000100000001000000010000008D -S315400009A091D020000100000001000000010000007D -S315400009B091D020000100000001000000010000006D -S315400009C091D020000100000001000000010000005D -S315400009D091D020000100000001000000010000004D -S315400009E091D020000100000001000000010000003D -S315400009F091D020000100000001000000010000002D -S31540000A0091D020000100000001000000010000001C -S31540000A1091D020000100000001000000010000000C -S31540000A2091D02000010000000100000001000000FC -S31540000A3091D02000010000000100000001000000EC -S31540000A4091D02000010000000100000001000000DC -S31540000A5091D02000010000000100000001000000CC -S31540000A6091D02000010000000100000001000000BC -S31540000A7091D02000010000000100000001000000AC -S31540000A8091D020000100000001000000010000009C -S31540000A9091D020000100000001000000010000008C -S31540000AA091D020000100000001000000010000007C -S31540000AB091D020000100000001000000010000006C -S31540000AC091D020000100000001000000010000005C -S31540000AD091D020000100000001000000010000004C -S31540000AE091D020000100000001000000010000003C -S31540000AF091D020000100000001000000010000002C -S31540000B0091D020000100000001000000010000001B -S31540000B1091D020000100000001000000010000000B -S31540000B2091D02000010000000100000001000000FB -S31540000B3091D02000010000000100000001000000EB -S31540000B4091D02000010000000100000001000000DB -S31540000B5091D02000010000000100000001000000CB -S31540000B6091D02000010000000100000001000000BB -S31540000B7091D02000010000000100000001000000AB -S31540000B8091D020000100000001000000010000009B -S31540000B9091D020000100000001000000010000008B -S31540000BA091D020000100000001000000010000007B -S31540000BB091D020000100000001000000010000006B -S31540000BC091D020000100000001000000010000005B -S31540000BD091D020000100000001000000010000004B -S31540000BE091D020000100000001000000010000003B -S31540000BF091D020000100000001000000010000002B -S31540000C0091D020000100000001000000010000001A -S31540000C1091D020000100000001000000010000000A -S31540000C2091D02000010000000100000001000000FA -S31540000C3091D02000010000000100000001000000EA -S31540000C4091D02000010000000100000001000000DA -S31540000C5091D02000010000000100000001000000CA -S31540000C6091D02000010000000100000001000000BA -S31540000C7091D02000010000000100000001000000AA -S31540000C8091D020000100000001000000010000009A -S31540000C9091D020000100000001000000010000008A -S31540000CA091D020000100000001000000010000007A -S31540000CB091D020000100000001000000010000006A -S31540000CC091D020000100000001000000010000005A -S31540000CD091D020000100000001000000010000004A -S31540000CE091D020000100000001000000010000003A -S31540000CF091D020000100000001000000010000002A -S31540000D0091D0200001000000010000000100000019 -S31540000D1091D0200001000000010000000100000009 -S31540000D2091D02000010000000100000001000000F9 -S31540000D3091D02000010000000100000001000000E9 -S31540000D4091D02000010000000100000001000000D9 -S31540000D5091D02000010000000100000001000000C9 -S31540000D6091D02000010000000100000001000000B9 -S31540000D7091D02000010000000100000001000000A9 -S31540000D8091D0200001000000010000000100000099 -S31540000D9091D0200001000000010000000100000089 -S31540000DA091D0200001000000010000000100000079 -S31540000DB091D0200001000000010000000100000069 -S31540000DC091D0200001000000010000000100000059 -S31540000DD091D0200001000000010000000100000049 -S31540000DE091D0200001000000010000000100000039 -S31540000DF091D0200001000000010000000100000029 -S31540000E0091D0200001000000010000000100000018 -S31540000E1091D0200001000000010000000100000008 -S31540000E2091D02000010000000100000001000000F8 -S31540000E3091D02000010000000100000001000000E8 -S31540000E4091D02000010000000100000001000000D8 -S31540000E5091D02000010000000100000001000000C8 -S31540000E6091D02000010000000100000001000000B8 -S31540000E7091D02000010000000100000001000000A8 -S31540000E8091D0200001000000010000000100000098 -S31540000E9091D0200001000000010000000100000088 -S31540000EA091D0200001000000010000000100000078 -S31540000EB091D0200001000000010000000100000068 -S31540000EC091D0200001000000010000000100000058 -S31540000ED091D0200001000000010000000100000048 -S31540000EE091D0200001000000010000000100000038 -S31540000EF091D0200001000000010000000100000028 -S31540000F0091D0200001000000010000000100000017 -S31540000F1091D0200001000000010000000100000007 -S31540000F2091D02000010000000100000001000000F7 -S31540000F3091D02000010000000100000001000000E7 -S31540000F4091D02000010000000100000001000000D7 -S31540000F5091D02000010000000100000001000000C7 -S31540000F6091D02000010000000100000001000000B7 -S31540000F7091D02000010000000100000001000000A7 -S31540000F8091D0200001000000010000000100000097 -S31540000F9091D0200001000000010000000100000087 -S31540000FA091D0200001000000010000000100000077 -S31540000FB091D0200001000000010000000100000067 -S31540000FC091D0200001000000010000000100000057 -S31540000FD091D0200001000000010000000100000047 -S31540000FE091D0200001000000010000000100000037 -S31540000FF091D0200001000000010000000100000027 -S315400010009DE3BFC0051001438410A0600710014452 -S315400010108610E188821000008620C00286A0E00883 -S3154000102036BFFFFFC038800311100144901221885B -S31540001030C02200004000666601000000400066666F -S315400010400100000040006818010000001110006D0A -S31540001050901221A040006166010000004000694AEC -S3154000106001000000400000430100000040006743CB -S315400010700100000081C7E00881E800009DE3BF98B9 -S3154000108023100143C20C606080A0600012800015EE -S315400010902110008010800005C204200C9FC3400030 -S315400010A0C224200CC204200CDA00400080A3600059 -S315400010B012BFFFFB82006004030000008210600044 -S315400010C080A0600002800006821020011110006D91 -S315400010D06FFFFBCC9012213082102001C22C606041 -S315400010E081C7E00881E800009DE3BF9881C7E0081A -S315400010F081E800009DE3BF98030000008210600075 -S315400011001110006D1310014380A060009012213031 -S3154000111002800004921260646FFFFBBA0100000077 -S315400011201B100144C203618880A060000280000950 -S31540001130B0136188030000008210600080A0600048 -S3154000114002800004010000006FFFFBAE81E8000052 -S315400011500100000081C7E00881E800009DE3BF98D8 -S3154000116081C7E00881E8000081C3E0080100000073 -S315400011709DE3BF9840000007010000004000014683 -S31540001180010000004000000E81E800000100000060 -S315400011909DE3BF98400000290100000080A2200086 -S315400011A01280000503100080D80060109A102001BC -S315400011B0DA23201081C7E00891E820000310008060 -S315400011C0D80060109A102001DA23201481C3E00869 -S315400011D09010200003100080DA006010D0234000F9 -S315400011E081C3E0089010200003100080DA006010F0 -S315400011F0D023600881C3E0089010200003100080CF -S31540001200DA006010D023600481C3E008901020000B -S3154000121013100080921260149010200081C3E008E1 -S31540001220D0EA4020901020001310008092126014E3 -S3154000123081C3E008D0224000914440009132201CF6 -S3154000124081C3E008900A200F81C3E008D0820020C5 -S315400012509010200C81C3E008D08200408210000824 -S3154000126080A20009148000039022000990224001C8 -S3154000127081C3E00801000000932A60028210200129 -S31540001280C22200099810200080A3000A1680000A96 -S3154000129096102001832B2002DA02000180A0000D67 -S315400012A0826020009803200180A3000A06BFFFFA4F -S315400012B0960AC00180A2E00002BFFFF49810200009 -S315400012C081C3E008010000009DE3BF98C2062010DC -S315400012D08330601CA0100018A400600180A4A00107 -S315400012E00280006CB0103FFF7FFFFFD4010000007A -S315400012F0AA100008912A20047FFFFFBC9002200715 -S315400013007FFFFFD40100000003020000808A000135 -S315400013100280005C010000009A05600182102001F5 -S315400013208328400D11100080C2242010901220A066 -S31540001330921000157FFFFFD1941000120310008019 -S3154000134082106018A12D6002C0204010DA004010C3 -S31540001350A610000180A36009291001431480002BC8 -S31540001360AC1000017FFFFFAB0100000080A220000F -S3154000137012BFFFFD01000000B010200080A6001241 -S31540001380168000140100000010800005A21000160F -S3154000139080A600121680000F01000000832E200256 -S315400013A0D0044010D20440017FFFFFADB0062001BB -S315400013B080A2200104BFFFF7901020027FFFFF901C -S315400013C00100000080A6001206BFFFF6832E200211 -S315400013D0C205207C82006001C225207C7FFFFF92EF -S315400013E001000000C204C01082006001C224C01087 -S315400013F0DA04C01080A3600904BFFFDB111000802F -S31540001400108000049012205C111000809012205C25 -S31540001410921000157FFFFF9994100012832CA002B2 -S3154000142082004012A0004001DA05207C80A4000D15 -S3154000143002800004231001437FFFFF7190102003B8 -S31540001440C204607C80A060000480000601000000A9 -S31540001450C204607C80A400011680000580A560005F -S315400014607FFFFF679010200380A56000228000095F -S31540001470B010200091D0200010800006B01020004F -S315400014807FFFFF5F9010200110BFFFA59A05600106 -S3154000149081C7E00881E800009DE3BF98C20620109E -S315400014A0A01000188330601C80A0600002800009F4 -S315400014B0B0103FFF7FFFFF610100000080A22000C7 -S315400014C0128000040300003F821063FFC2242010F4 -S315400014D081C7E00881E800009DE3BF98C20620105E -S315400014E08330601CA400600180A4A00102800068D3 -S315400014F0B0103FFF7FFFFF5101000000AA10000817 -S31540001500912A20047FFFFF39900220077FFFFF5179 -S315400015100100000003020000808A0001028000589A -S315400015200100000011100080901220A092100015BA -S315400015307FFFFF5294100012031000808210601843 -S31540001540A12D6002C0204010DA004010A610000114 -S3154000155080A36009291001431480002BAC100001C0 -S315400015607FFFFF2C0100000080A2200012BFFFFD7C -S3154000157001000000B010200080A600121680001462 -S315400015800100000010800005A210001680A600127F -S315400015901680000F01000000832E2002D004401068 -S315400015A0D20440017FFFFF2EB006200180A2200119 -S315400015B004BFFFF7901020027FFFFF1101000000DB -S315400015C080A6001206BFFFF6832E2002C205207CAD -S315400015D082006001C225207C7FFFFF1301000000CE -S315400015E0C204C01082006001C224C010DA04C010D8 -S315400015F080A3600904BFFFDB111000801080000447 -S315400016009012205C111000809012205C9210001500 -S315400016107FFFFF1A94100012832CA0028200401212 -S31540001620A0004001DA05207C80A4000D0280000461 -S31540001630231001437FFFFEF290102003C204607C1A -S3154000164080A060000480000601000000C204607CA7 -S3154000165080A400011680000580A560007FFFFEE89B -S315400016609010200380A5600022800009B010200061 -S3154000167091D0200010800006B01020007FFFFEE0D1 -S315400016809010200110BFFFA91110008081C7E0080B -S3154000169081E800009DE3BF983120000092162200A9 -S315400016A09410200040003E599010200140003B62BB -S315400016B0901622009016230040003EBE921020084D -S315400016C0B016210040003A4F81E8000001000000BA -S315400016D09DE3BF9821200000921422009410200020 -S315400016E040003E4A9010200140003B539014220097 -S315400016F09210001840003EAF90142300B014210011 -S3154000170040003A4081E8000001000000000000006F -S315400017100000000000000000000000000000000083 -S315400017200000000000000000000000000000000073 -S315400017300000000000000000000000000000000063 -S315400017400000000000000000000000000000000053 -S315400017500000000000000000000000000000000043 -S315400017600000000000000000000000000000000033 -S315400017700000000000000000000000000000000023 -S315400017800000000000000000000000000000000013 -S315400017900000000000000000000000000000000003 -S315400017A000000000000000000000000000000000F3 -S315400017B000000000000000000000000000000000E3 -S315400017C000000000000000000000000000000000D3 -S315400017D000000000000000000000000000000000C3 -S315400017E000000000000000000000000000000000B3 -S315400017F000000000000000000000000000000000A3 -S315400018000000000000000000000000000000000092 -S315400018100000000000000000000000000000000082 -S315400018200000000000000000000000000000000072 -S315400018300000000000000000000000000000000062 -S315400018400000000000000000000000000000000052 -S315400018500000000000000000000000000000000042 -S315400018600000000000000000000000000000000032 -S315400018700000000000000000000000000000000022 -S315400018800000000000000000000000000000000012 -S315400018900000000000000000000000000000000002 -S315400018A000000000000000000000000000000000F2 -S315400018B000000000000000000000000000000000E2 -S315400018C000000000000000000000000000000000D2 -S315400018D000000000000000000000000000000000C2 -S315400018E000000000000000000000000000000000B2 -S315400018F000000000000000000000000000000000A2 -S315400019000000000000000000000000000000000091 -S315400019100000000000000000000000000000000081 -S315400019200000000000000000000000000000000071 -S315400019300000000000000000000000000000000061 -S315400019400000000000000000000000000000000051 -S315400019500000000000000000000000000000000041 -S315400019600000000000000000000000000000000031 -S315400019700000000000000000000000000000000021 -S315400019800000000000000000000000000000000011 -S315400019900000000000000000000000000000000001 -S315400019A000000000000000000000000000000000F1 -S315400019B000000000000000000000000000000000E1 -S315400019C000000000000000000000000000000000D1 -S315400019D000000000000000000000000000000000C1 -S315400019E000000000000000000000000000000000B1 -S315400019F000000000000000000000000000000000A1 -S31540001A000000000000000000000000000000000090 -S31540001A100000000000000000000000000000000080 -S31540001A200000000000000000000000000000000070 -S31540001A300000000000000000000000000000000060 -S31540001A400000000000000000000000000000000050 -S31540001A500000000000000000000000000000000040 -S31540001A600000000000000000000000000000000030 -S31540001A700000000000000000000000000000000020 -S31540001A800000000000000000000000000000000010 -S31540001A900000000000000000000000000000000000 -S31540001AA000000000000000000000000000000000F0 -S31540001AB000000000000000000000000000000000E0 -S31540001AC000000000000000000000000000000000D0 -S31540001AD000000000000000000000000000000000C0 -S31540001AE000000000000000000000000000000000B0 -S31540001AF000000000000000000000000000000000A0 -S31540001B00000000000000000000000000000000008F -S31540001B10000000000000000000000000000000007F -S31540001B20000000000000000000000000000000006F -S31540001B30000000000000000000000000000000005F -S31540001B40000000000000000000000000000000004F -S31540001B50000000000000000000000000000000003F -S31540001B60000000000000000000000000000000002F -S31540001B70000000000000000000000000000000001F -S31540001B80000000000000000000000000000000000F -S31540001B9000000000000000000000000000000000FF -S31540001BA000000000000000000000000000000000EF -S31540001BB000000000000000000000000000000000DF -S31540001BC000000000000000000000000000000000CF -S31540001BD000000000000000000000000000000000BF -S31540001BE000000000000000000000000000000000AF -S31540001BF0000000000000000000000000000000009F -S31540001C00000000000000000000000000000000008E -S31540001C10000000000000000000000000000000007E -S31540001C20000000000000000000000000000000006E -S31540001C30000000000000000000000000000000005E -S31540001C40000000000000000000000000000000004E -S31540001C50000000000000000000000000000000003E -S31540001C60000000000000000000000000000000002E -S31540001C70000000000000000000000000000000001E -S31540001C80000000000000000000000000000000000E -S31540001C9000000000000000000000000000000000FE -S31540001CA000000000000000000000000000000000EE -S31540001CB000000000000000000000000000000000DE -S31540001CC000000000000000000000000000000000CE -S31540001CD000000000000000000000000000000000BE -S31540001CE000000000000000000000000000000000AE -S31540001CF0000000000000000000000000000000009E -S31540001D00000000000000000000000000000000008D -S31540001D10000000000000000000000000000000007D -S31540001D20000000000000000000000000000000006D -S31540001D30000000000000000000000000000000005D -S31540001D40000000000000000000000000000000004D -S31540001D50000000000000000000000000000000003D -S31540001D60000000000000000000000000000000002D -S31540001D70000000000000000000000000000000001D -S31540001D80000000000000000000000000000000000D -S31540001D9000000000000000000000000000000000FD -S31540001DA000000000000000000000000000000000ED -S31540001DB000000000000000000000000000000000DD -S31540001DC000000000000000000000000000000000CD -S31540001DD000000000000000000000000000000000BD -S31540001DE000000000000000000000000000000000AD -S31540001DF0000000000000000000000000000000009D -S31540001E00000000000000000000000000000000008C -S31540001E10000000000000000000000000000000007C -S31540001E20000000000000000000000000000000006C -S31540001E30000000000000000000000000000000005C -S31540001E40000000000000000000000000000000004C -S31540001E50000000000000000000000000000000003C -S31540001E60000000000000000000000000000000002C -S31540001E70000000000000000000000000000000001C -S31540001E80000000000000000000000000000000000C -S31540001E9000000000000000000000000000000000FC -S31540001EA000000000000000000000000000000000EC -S31540001EB000000000000000000000000000000000DC -S31540001EC000000000000000000000000000000000CC -S31540001ED000000000000000000000000000000000BC -S31540001EE000000000000000000000000000000000AC -S31540001EF0000000000000000000000000000000009C -S31540001F00000000000000000000000000000000008B -S31540001F10000000000000000000000000000000007B -S31540001F20000000000000000000000000000000006B -S31540001F30000000000000000000000000000000005B -S31540001F40000000000000000000000000000000004B -S31540001F50000000000000000000000000000000003B -S31540001F60000000000000000000000000000000002B -S31540001F70000000000000000000000000000000001B -S31540001F80000000000000000000000000000000000B -S31540001F9000000000000000000000000000000000FB -S31540001FA000000000000000000000000000000000EB -S31540001FB000000000000000000000000000000000DB -S31540001FC000000000000000000000000000000000CB -S31540001FD000000000000000000000000000000000BB -S31540001FE000000000000000000000000000000000AB -S31540001FF0000000000000000000000000000000009B -S31540002000000000000000000000000000000000008A -S31540002010000000000000000000000000000000007A -S31540002020000000000000000000000000000000006A -S31540002030000000000000000000000000000000005A -S31540002040000000000000000000000000000000004A -S31540002050000000000000000000000000000000003A -S31540002060000000000000000000000000000000002A -S31540002070000000000000000000000000000000001A -S31540002080000000000000000000000000000000000A -S3154000209000000000000000000000000000000000FA -S315400020A000000000000000000000000000000000EA -S315400020B000000000000000000000000000000000DA -S315400020C000000000000000000000000000000000CA -S315400020D000000000000000000000000000000000BA -S315400020E000000000000000000000000000000000AA -S315400020F0000000000000000000000000000000009A -S315400021000000000000000000000000000000000089 -S315400021100000000000000000000000000000000079 -S315400021200000000000000000000000000000000069 -S315400021300000000000000000000000000000000059 -S315400021400000000000000000000000000000000049 -S315400021500000000000000000000000000000000039 -S315400021600000000000000000000000000000000029 -S315400021700000000000000000000000000000000019 -S315400021800000000000000000000000000000000009 -S3154000219000000000000000000000000000000000F9 -S315400021A000000000000000000000000000000000E9 -S315400021B000000000000000000000000000000000D9 -S315400021C000000000000000000000000000000000C9 -S315400021D000000000000000000000000000000000B9 -S315400021E000000000000000000000000000000000A9 -S315400021F00000000000000000000000000000000099 -S315400022000000000000000000000000000000000088 -S315400022100000000000000000000000000000000078 -S315400022200000000000000000000000000000000068 -S315400022300000000000000000000000000000000058 -S315400022400000000000000000000000000000000048 -S315400022500000000000000000000000000000000038 -S315400022600000000000000000000000000000000028 -S315400022700000000000000000000000000000000018 -S315400022800000000000000000000000000000000008 -S3154000229000000000000000000000000000000000F8 -S315400022A000000000000000000000000000000000E8 -S315400022B000000000000000000000000000000000D8 -S315400022C000000000000000000000000000000000C8 -S315400022D000000000000000000000000000000000B8 -S315400022E000000000000000000000000000000000A8 -S315400022F00000000000000000000000000000000098 -S315400023000000000000000000000000000000000087 -S315400023100000000000000000000000000000000077 -S315400023200000000000000000000000000000000067 -S315400023300000000000000000000000000000000057 -S315400023400000000000000000000000000000000047 -S315400023500000000000000000000000000000000037 -S315400023600000000000000000000000000000000027 -S315400023700000000000000000000000000000000017 -S315400023800000000000000000000000000000000007 -S3154000239000000000000000000000000000000000F7 -S315400023A000000000000000000000000000000000E7 -S315400023B000000000000000000000000000000000D7 -S315400023C000000000000000000000000000000000C7 -S315400023D000000000000000000000000000000000B7 -S315400023E000000000000000000000000000000000A7 -S315400023F00000000000000000000000000000000097 -S315400024000000000000000000000000000000000086 -S315400024100000000000000000000000000000000076 -S315400024200000000000000000000000000000000066 -S315400024300000000000000000000000000000000056 -S315400024400000000000000000000000000000000046 -S315400024500000000000000000000000000000000036 -S315400024600000000000000000000000000000000026 -S315400024700000000000000000000000000000000016 -S315400024800000000000000000000000000000000006 -S3154000249000000000000000000000000000000000F6 -S315400024A000000000000000000000000000000000E6 -S315400024B000000000000000000000000000000000D6 -S315400024C000000000000000000000000000000000C6 -S315400024D000000000000000000000000000000000B6 -S315400024E000000000000000000000000000000000A6 -S315400024F00000000000000000000000000000000096 -S315400025000000000000000000000000000000000085 -S315400025100000000000000000000000000000000075 -S315400025200000000000000000000000000000000065 -S315400025300000000000000000000000000000000055 -S315400025400000000000000000000000000000000045 -S315400025500000000000000000000000000000000035 -S315400025600000000000000000000000000000000025 -S315400025700000000000000000000000000000000015 -S315400025800000000000000000000000000000000005 -S3154000259000000000000000000000000000000000F5 -S315400025A000000000000000000000000000000000E5 -S315400025B000000000000000000000000000000000D5 -S315400025C000000000000000000000000000000000C5 -S315400025D000000000000000000000000000000000B5 -S315400025E000000000000000000000000000000000A5 -S315400025F00000000000000000000000000000000095 -S315400026000000000000000000000000000000000084 -S315400026100000000000000000000000000000000074 -S315400026200000000000000000000000000000000064 -S315400026300000000000000000000000000000000054 -S315400026400000000000000000000000000000000044 -S315400026500000000000000000000000000000000034 -S315400026600000000000000000000000000000000024 -S315400026700000000000000000000000000000000014 -S315400026800000000000000000000000000000000004 -S3154000269000000000000000000000000000000000F4 -S315400026A000000000000000000000000000000000E4 -S315400026B000000000000000000000000000000000D4 -S315400026C000000000000000000000000000000000C4 -S315400026D000000000000000000000000000000000B4 -S315400026E000000000000000000000000000000000A4 -S315400026F00000000000000000000000000000000094 -S315400027000000000000000000000000000000000083 -S315400027100000000000000000000000000000000073 -S315400027200000000000000000000000000000000063 -S315400027300000000000000000000000000000000053 -S315400027400000000000000000000000000000000043 -S315400027500000000000000000000000000000000033 -S315400027600000000000000000000000000000000023 -S315400027700000000000000000000000000000000013 -S315400027800000000000000000000000000000000003 -S3154000279000000000000000000000000000000000F3 -S315400027A000000000000000000000000000000000E3 -S315400027B000000000000000000000000000000000D3 -S315400027C000000000000000000000000000000000C3 -S315400027D000000000000000000000000000000000B3 -S315400027E000000000000000000000000000000000A3 -S315400027F00000000000000000000000000000000093 -S315400028000000000000000000000000000000000082 -S315400028100000000000000000000000000000000072 -S315400028200000000000000000000000000000000062 -S315400028300000000000000000000000000000000052 -S315400028400000000000000000000000000000000042 -S315400028500000000000000000000000000000000032 -S315400028600000000000000000000000000000000022 -S315400028700000000000000000000000000000000012 -S315400028800000000000000000000000000000000002 -S3154000289000000000000000000000000000000000F2 -S315400028A000000000000000000000000000000000E2 -S315400028B000000000000000000000000000000000D2 -S315400028C000000000000000000000000000000000C2 -S315400028D000000000000000000000000000000000B2 -S315400028E000000000000000000000000000000000A2 -S315400028F00000000000000000000000000000000092 -S315400029000000000000000000000000000000000081 -S315400029100000000000000000000000000000000071 -S315400029200000000000000000000000000000000061 -S315400029300000000000000000000000000000000051 -S315400029400000000000000000000000000000000041 -S315400029500000000000000000000000000000000031 -S315400029600000000000000000000000000000000021 -S315400029700000000000000000000000000000000011 -S315400029800000000000000000000000000000000001 -S3154000299000000000000000000000000000000000F1 -S315400029A000000000000000000000000000000000E1 -S315400029B000000000000000000000000000000000D1 -S315400029C000000000000000000000000000000000C1 -S315400029D000000000000000000000000000000000B1 -S315400029E000000000000000000000000000000000A1 -S315400029F00000000000000000000000000000000091 -S31540002A000000000000000000000000000000000080 -S31540002A100000000000000000000000000000000070 -S31540002A200000000000000000000000000000000060 -S31540002A300000000000000000000000000000000050 -S31540002A400000000000000000000000000000000040 -S31540002A500000000000000000000000000000000030 -S31540002A600000000000000000000000000000000020 -S31540002A700000000000000000000000000000000010 -S31540002A800000000000000000000000000000000000 -S31540002A9000000000000000000000000000000000F0 -S31540002AA000000000000000000000000000000000E0 -S31540002AB000000000000000000000000000000000D0 -S31540002AC000000000000000000000000000000000C0 -S31540002AD000000000000000000000000000000000B0 -S31540002AE000000000000000000000000000000000A0 -S31540002AF00000000000000000000000000000000090 -S31540002B00000000000000000000000000000000007F -S31540002B10000000000000000000000000000000006F -S31540002B20000000000000000000000000000000005F -S31540002B30000000000000000000000000000000004F -S31540002B40000000000000000000000000000000003F -S31540002B50000000000000000000000000000000002F -S31540002B60000000000000000000000000000000001F -S31540002B70000000000000000000000000000000000F -S31540002B8000000000000000000000000000000000FF -S31540002B9000000000000000000000000000000000EF -S31540002BA000000000000000000000000000000000DF -S31540002BB000000000000000000000000000000000CF -S31540002BC000000000000000000000000000000000BF -S31540002BD000000000000000000000000000000000AF -S31540002BE0000000000000000000000000000000009F -S31540002BF0000000000000000000000000000000008F -S31540002C00000000000000000000000000000000007E -S31540002C10000000000000000000000000000000006E -S31540002C20000000000000000000000000000000005E -S31540002C30000000000000000000000000000000004E -S31540002C40000000000000000000000000000000003E -S31540002C50000000000000000000000000000000002E -S31540002C60000000000000000000000000000000001E -S31540002C70000000000000000000000000000000000E -S31540002C8000000000000000000000000000000000FE -S31540002C9000000000000000000000000000000000EE -S31540002CA000000000000000000000000000000000DE -S31540002CB000000000000000000000000000000000CE -S31540002CC000000000000000000000000000000000BE -S31540002CD000000000000000000000000000000000AE -S31540002CE0000000000000000000000000000000009E -S31540002CF0000000000000000000000000000000008E -S31540002D00000000000000000000000000000000007D -S31540002D10000000000000000000000000000000006D -S31540002D20000000000000000000000000000000005D -S31540002D30000000000000000000000000000000004D -S31540002D40000000000000000000000000000000003D -S31540002D50000000000000000000000000000000002D -S31540002D60000000000000000000000000000000001D -S31540002D70000000000000000000000000000000000D -S31540002D8000000000000000000000000000000000FD -S31540002D9000000000000000000000000000000000ED -S31540002DA000000000000000000000000000000000DD -S31540002DB000000000000000000000000000000000CD -S31540002DC000000000000000000000000000000000BD -S31540002DD000000000000000000000000000000000AD -S31540002DE0000000000000000000000000000000009D -S31540002DF0000000000000000000000000000000008D -S31540002E00000000000000000000000000000000007C -S31540002E10000000000000000000000000000000006C -S31540002E20000000000000000000000000000000005C -S31540002E30000000000000000000000000000000004C -S31540002E40000000000000000000000000000000003C -S31540002E50000000000000000000000000000000002C -S31540002E60000000000000000000000000000000001C -S31540002E70000000000000000000000000000000000C -S31540002E8000000000000000000000000000000000FC -S31540002E9000000000000000000000000000000000EC -S31540002EA000000000000000000000000000000000DC -S31540002EB000000000000000000000000000000000CC -S31540002EC000000000000000000000000000000000BC -S31540002ED000000000000000000000000000000000AC -S31540002EE0000000000000000000000000000000009C -S31540002EF0000000000000000000000000000000008C -S31540002F00000000000000000000000000000000007B -S31540002F10000000000000000000000000000000006B -S31540002F20000000000000000000000000000000005B -S31540002F30000000000000000000000000000000004B -S31540002F40000000000000000000000000000000003B -S31540002F50000000000000000000000000000000002B -S31540002F60000000000000000000000000000000001B -S31540002F70000000000000000000000000000000000B -S31540002F8000000000000000000000000000000000FB -S31540002F9000000000000000000000000000000000EB -S31540002FA000000000000000000000000000000000DB -S31540002FB000000000000000000000000000000000CB -S31540002FC000000000000000000000000000000000BB -S31540002FD000000000000000000000000000000000AB -S31540002FE0000000000000000000000000000000009B -S31540002FF0000000000000000000000000000000008B -S31540003000000000000000000000000000000000007A -S31540003010000000000000000000000000000000006A -S31540003020000000000000000000000000000000005A -S31540003030000000000000000000000000000000004A -S31540003040000000000000000000000000000000003A -S31540003050000000000000000000000000000000002A -S31540003060000000000000000000000000000000001A -S31540003070000000000000000000000000000000000A -S3154000308000000000000000000000000000000000FA -S3154000309000000000000000000000000000000000EA -S315400030A000000000000000000000000000000000DA -S315400030B000000000000000000000000000000000CA -S315400030C000000000000000000000000000000000BA -S315400030D000000000000000000000000000000000AA -S315400030E0000000000000000000000000000000009A -S315400030F0000000000000000000000000000000008A -S315400031000000000000000000000000000000000079 -S315400031100000000000000000000000000000000069 -S315400031200000000000000000000000000000000059 -S315400031300000000000000000000000000000000049 -S315400031400000000000000000000000000000000039 -S315400031500000000000000000000000000000000029 -S315400031600000000000000000000000000000000019 -S315400031700000000000000000000000000000000009 -S3154000318000000000000000000000000000000000F9 -S3154000319000000000000000000000000000000000E9 -S315400031A000000000000000000000000000000000D9 -S315400031B000000000000000000000000000000000C9 -S315400031C000000000000000000000000000000000B9 -S315400031D000000000000000000000000000000000A9 -S315400031E00000000000000000000000000000000099 -S315400031F00000000000000000000000000000000089 -S315400032000000000000000000000000000000000078 -S315400032100000000000000000000000000000000068 -S315400032200000000000000000000000000000000058 -S315400032300000000000000000000000000000000048 -S315400032400000000000000000000000000000000038 -S315400032500000000000000000000000000000000028 -S315400032600000000000000000000000000000000018 -S315400032700000000000000000000000000000000008 -S3154000328000000000000000000000000000000000F8 -S3154000329000000000000000000000000000000000E8 -S315400032A000000000000000000000000000000000D8 -S315400032B000000000000000000000000000000000C8 -S315400032C000000000000000000000000000000000B8 -S315400032D000000000000000000000000000000000A8 -S315400032E00000000000000000000000000000000098 -S315400032F00000000000000000000000000000000088 -S315400033000000000000000000000000000000000077 -S315400033100000000000000000000000000000000067 -S315400033200000000000000000000000000000000057 -S315400033300000000000000000000000000000000047 -S315400033400000000000000000000000000000000037 -S315400033500000000000000000000000000000000027 -S315400033600000000000000000000000000000000017 -S315400033700000000000000000000000000000000007 -S3154000338000000000000000000000000000000000F7 -S3154000339000000000000000000000000000000000E7 -S315400033A000000000000000000000000000000000D7 -S315400033B000000000000000000000000000000000C7 -S315400033C000000000000000000000000000000000B7 -S315400033D000000000000000000000000000000000A7 -S315400033E00000000000000000000000000000000097 -S315400033F00000000000000000000000000000000087 -S315400034000000000000000000000000000000000076 -S315400034100000000000000000000000000000000066 -S315400034200000000000000000000000000000000056 -S315400034300000000000000000000000000000000046 -S315400034400000000000000000000000000000000036 -S315400034500000000000000000000000000000000026 -S315400034600000000000000000000000000000000016 -S315400034700000000000000000000000000000000006 -S3154000348000000000000000000000000000000000F6 -S3154000349000000000000000000000000000000000E6 -S315400034A000000000000000000000000000000000D6 -S315400034B000000000000000000000000000000000C6 -S315400034C000000000000000000000000000000000B6 -S315400034D000000000000000000000000000000000A6 -S315400034E00000000000000000000000000000000096 -S315400034F00000000000000000000000000000000086 -S315400035000000000000000000000000000000000075 -S315400035100000000000000000000000000000000065 -S315400035200000000000000000000000000000000055 -S315400035300000000000000000000000000000000045 -S315400035400000000000000000000000000000000035 -S315400035500000000000000000000000000000000025 -S315400035600000000000000000000000000000000015 -S315400035700000000000000000000000000000000005 -S3154000358000000000000000000000000000000000F5 -S3154000359000000000000000000000000000000000E5 -S315400035A000000000000000000000000000000000D5 -S315400035B000000000000000000000000000000000C5 -S315400035C000000000000000000000000000000000B5 -S315400035D000000000000000000000000000000000A5 -S315400035E00000000000000000000000000000000095 -S315400035F00000000000000000000000000000000085 -S315400036000000000000000000000000000000000074 -S315400036100000000000000000000000000000000064 -S315400036200000000000000000000000000000000054 -S315400036300000000000000000000000000000000044 -S315400036400000000000000000000000000000000034 -S315400036500000000000000000000000000000000024 -S315400036600000000000000000000000000000000014 -S315400036700000000000000000000000000000000004 -S3154000368000000000000000000000000000000000F4 -S3154000369000000000000000000000000000000000E4 -S315400036A000000000000000000000000000000000D4 -S315400036B000000000000000000000000000000000C4 -S315400036C000000000000000000000000000000000B4 -S315400036D000000000000000000000000000000000A4 -S315400036E00000000000000000000000000000000094 -S315400036F00000000000000000000000000000000084 -S315400037000000000000000000000000000000000073 -S315400037100000000000000000000000000000000063 -S315400037200000000000000000000000000000000053 -S315400037300000000000000000000000000000000043 -S315400037400000000000000000000000000000000033 -S315400037500000000000000000000000000000000023 -S315400037600000000000000000000000000000000013 -S315400037700000000000000000000000000000000003 -S3154000378000000000000000000000000000000000F3 -S3154000379000000000000000000000000000000000E3 -S315400037A000000000000000000000000000000000D3 -S315400037B000000000000000000000000000000000C3 -S315400037C000000000000000000000000000000000B3 -S315400037D000000000000000000000000000000000A3 -S315400037E00000000000000000000000000000000093 -S315400037F00000000000000000000000000000000083 -S315400038000000000000000000000000000000000072 -S315400038100000000000000000000000000000000062 -S315400038200000000000000000000000000000000052 -S315400038300000000000000000000000000000000042 -S315400038400000000000000000000000000000000032 -S315400038500000000000000000000000000000000022 -S315400038600000000000000000000000000000000012 -S315400038700000000000000000000000000000000002 -S3154000388000000000000000000000000000000000F2 -S3154000389000000000000000000000000000000000E2 -S315400038A000000000000000000000000000000000D2 -S315400038B000000000000000000000000000000000C2 -S315400038C000000000000000000000000000000000B2 -S315400038D000000000000000000000000000000000A2 -S315400038E00000000000000000000000000000000092 -S315400038F00000000000000000000000000000000082 -S315400039000000000000000000000000000000000071 -S315400039100000000000000000000000000000000061 -S315400039200000000000000000000000000000000051 -S315400039300000000000000000000000000000000041 -S315400039400000000000000000000000000000000031 -S315400039500000000000000000000000000000000021 -S315400039600000000000000000000000000000000011 -S315400039700000000000000000000000000000000001 -S3154000398000000000000000000000000000000000F1 -S3154000399000000000000000000000000000000000E1 -S315400039A000000000000000000000000000000000D1 -S315400039B000000000000000000000000000000000C1 -S315400039C000000000000000000000000000000000B1 -S315400039D000000000000000000000000000000000A1 -S315400039E00000000000000000000000000000000091 -S315400039F00000000000000000000000000000000081 -S31540003A000000000000000000000000000000000070 -S31540003A100000000000000000000000000000000060 -S31540003A200000000000000000000000000000000050 -S31540003A300000000000000000000000000000000040 -S31540003A400000000000000000000000000000000030 -S31540003A500000000000000000000000000000000020 -S31540003A600000000000000000000000000000000010 -S31540003A700000000000000000000000000000000000 -S31540003A8000000000000000000000000000000000F0 -S31540003A9000000000000000000000000000000000E0 -S31540003AA000000000000000000000000000000000D0 -S31540003AB000000000000000000000000000000000C0 -S31540003AC000000000000000000000000000000000B0 -S31540003AD000000000000000000000000000000000A0 -S31540003AE00000000000000000000000000000000090 -S31540003AF00000000000000000000000000000000080 -S31540003B00000000000000000000000000000000006F -S31540003B10000000000000000000000000000000005F -S31540003B20000000000000000000000000000000004F -S31540003B30000000000000000000000000000000003F -S31540003B40000000000000000000000000000000002F -S31540003B50000000000000000000000000000000001F -S31540003B60000000000000000000000000000000000F -S31540003B7000000000000000000000000000000000FF -S31540003B8000000000000000000000000000000000EF -S31540003B9000000000000000000000000000000000DF -S31540003BA000000000000000000000000000000000CF -S31540003BB000000000000000000000000000000000BF -S31540003BC000000000000000000000000000000000AF -S31540003BD0000000000000000000000000000000009F -S31540003BE0000000000000000000000000000000008F -S31540003BF0000000000000000000000000000000007F -S31540003C00000000000000000000000000000000006E -S31540003C10000000000000000000000000000000005E -S31540003C20000000000000000000000000000000004E -S31540003C30000000000000000000000000000000003E -S31540003C40000000000000000000000000000000002E -S31540003C50000000000000000000000000000000001E -S31540003C60000000000000000000000000000000000E -S31540003C7000000000000000000000000000000000FE -S31540003C8000000000000000000000000000000000EE -S31540003C9000000000000000000000000000000000DE -S31540003CA000000000000000000000000000000000CE -S31540003CB000000000000000000000000000000000BE -S31540003CC000000000000000000000000000000000AE -S31540003CD0000000000000000000000000000000009E -S31540003CE0000000000000000000000000000000008E -S31540003CF0000000000000000000000000000000007E -S31540003D00000000000000000000000000000000006D -S31540003D10000000000000000000000000000000005D -S31540003D20000000000000000000000000000000004D -S31540003D30000000000000000000000000000000003D -S31540003D40000000000000000000000000000000002D -S31540003D50000000000000000000000000000000001D -S31540003D60000000000000000000000000000000000D -S31540003D7000000000000000000000000000000000FD -S31540003D8000000000000000000000000000000000ED -S31540003D9000000000000000000000000000000000DD -S31540003DA000000000000000000000000000000000CD -S31540003DB000000000000000000000000000000000BD -S31540003DC000000000000000000000000000000000AD -S31540003DD0000000000000000000000000000000009D -S31540003DE0000000000000000000000000000000008D -S31540003DF0000000000000000000000000000000007D -S31540003E00000000000000000000000000000000006C -S31540003E10000000000000000000000000000000005C -S31540003E20000000000000000000000000000000004C -S31540003E30000000000000000000000000000000003C -S31540003E40000000000000000000000000000000002C -S31540003E50000000000000000000000000000000001C -S31540003E60000000000000000000000000000000000C -S31540003E7000000000000000000000000000000000FC -S31540003E8000000000000000000000000000000000EC -S31540003E9000000000000000000000000000000000DC -S31540003EA000000000000000000000000000000000CC -S31540003EB000000000000000000000000000000000BC -S31540003EC000000000000000000000000000000000AC -S31540003ED0000000000000000000000000000000009C -S31540003EE0000000000000000000000000000000008C -S31540003EF0000000000000000000000000000000007C -S31540003F00000000000000000000000000000000006B -S31540003F10000000000000000000000000000000005B -S31540003F20000000000000000000000000000000004B -S31540003F30000000000000000000000000000000003B -S31540003F40000000000000000000000000000000002B -S31540003F50000000000000000000000000000000001B -S31540003F60000000000000000000000000000000000B -S31540003F7000000000000000000000000000000000FB -S31540003F8000000000000000000000000000000000EB -S31540003F9000000000000000000000000000000000DB -S31540003FA000000000000000000000000000000000CB -S31540003FB000000000000000000000000000000000BB -S31540003FC000000000000000000000000000000000AB -S31540003FD0000000000000000000000000000000009B -S31540003FE0000000000000000000000000000000008B -S31540003FF0000000000000000000000000000000007B -S31540004000000000000000000000000000000000006A -S31540004010000000000000000000000000000000005A -S31540004020000000000000000000000000000000004A -S31540004030000000000000000000000000000000003A -S31540004040000000000000000000000000000000002A -S31540004050000000000000000000000000000000001A -S31540004060000000000000000000000000000000000A -S3154000407000000000000000000000000000000000FA -S3154000408000000000000000000000000000000000EA -S3154000409000000000000000000000000000000000DA -S315400040A000000000000000000000000000000000CA -S315400040B000000000000000000000000000000000BA -S315400040C000000000000000000000000000000000AA -S315400040D0000000000000000000000000000000009A -S315400040E0000000000000000000000000000000008A -S315400040F0000000000000000000000000000000007A -S315400041000000000000000000000000000000000069 -S315400041100000000000000000000000000000000059 -S315400041200000000000000000000000000000000049 -S315400041300000000000000000000000000000000039 -S315400041400000000000000000000000000000000029 -S315400041500000000000000000000000000000000019 -S315400041600000000000000000000000000000000009 -S3154000417000000000000000000000000000000000F9 -S3154000418000000000000000000000000000000000E9 -S3154000419000000000000000000000000000000000D9 -S315400041A000000000000000000000000000000000C9 -S315400041B000000000000000000000000000000000B9 -S315400041C000000000000000000000000000000000A9 -S315400041D00000000000000000000000000000000099 -S315400041E00000000000000000000000000000000089 -S315400041F00000000000000000000000000000000079 -S315400042000000000000000000000000000000000068 -S315400042100000000000000000000000000000000058 -S315400042200000000000000000000000000000000048 -S315400042300000000000000000000000000000000038 -S315400042400000000000000000000000000000000028 -S315400042500000000000000000000000000000000018 -S315400042600000000000000000000000000000000008 -S3154000427000000000000000000000000000000000F8 -S3154000428000000000000000000000000000000000E8 -S3154000429000000000000000000000000000000000D8 -S315400042A000000000000000000000000000000000C8 -S315400042B000000000000000000000000000000000B8 -S315400042C000000000000000000000000000000000A8 -S315400042D00000000000000000000000000000000098 -S315400042E00000000000000000000000000000000088 -S315400042F00000000000000000000000000000000078 -S315400043000000000000000000000000000000000067 -S315400043100000000000000000000000000000000057 -S315400043200000000000000000000000000000000047 -S315400043300000000000000000000000000000000037 -S315400043400000000000000000000000000000000027 -S315400043500000000000000000000000000000000017 -S315400043600000000000000000000000000000000007 -S3154000437000000000000000000000000000000000F7 -S3154000438000000000000000000000000000000000E7 -S3154000439000000000000000000000000000000000D7 -S315400043A000000000000000000000000000000000C7 -S315400043B000000000000000000000000000000000B7 -S315400043C000000000000000000000000000000000A7 -S315400043D00000000000000000000000000000000097 -S315400043E00000000000000000000000000000000087 -S315400043F00000000000000000000000000000000077 -S315400044000000000000000000000000000000000066 -S315400044100000000000000000000000000000000056 -S315400044200000000000000000000000000000000046 -S315400044300000000000000000000000000000000036 -S315400044400000000000000000000000000000000026 -S315400044500000000000000000000000000000000016 -S315400044600000000000000000000000000000000006 -S3154000447000000000000000000000000000000000F6 -S3154000448000000000000000000000000000000000E6 -S3154000449000000000000000000000000000000000D6 -S315400044A000000000000000000000000000000000C6 -S315400044B000000000000000000000000000000000B6 -S315400044C000000000000000000000000000000000A6 -S315400044D00000000000000000000000000000000096 -S315400044E00000000000000000000000000000000086 -S315400044F00000000000000000000000000000000076 -S315400045000000000000000000000000000000000065 -S315400045100000000000000000000000000000000055 -S315400045200000000000000000000000000000000045 -S315400045300000000000000000000000000000000035 -S315400045400000000000000000000000000000000025 -S315400045500000000000000000000000000000000015 -S315400045600000000000000000000000000000000005 -S3154000457000000000000000000000000000000000F5 -S3154000458000000000000000000000000000000000E5 -S3154000459000000000000000000000000000000000D5 -S315400045A000000000000000000000000000000000C5 -S315400045B000000000000000000000000000000000B5 -S315400045C000000000000000000000000000000000A5 -S315400045D00000000000000000000000000000000095 -S315400045E00000000000000000000000000000000085 -S315400045F00000000000000000000000000000000075 -S315400046000000000000000000000000000000000064 -S315400046100000000000000000000000000000000054 -S315400046200000000000000000000000000000000044 -S315400046300000000000000000000000000000000034 -S315400046400000000000000000000000000000000024 -S315400046500000000000000000000000000000000014 -S315400046600000000000000000000000000000000004 -S3154000467000000000000000000000000000000000F4 -S3154000468000000000000000000000000000000000E4 -S3154000469000000000000000000000000000000000D4 -S315400046A000000000000000000000000000000000C4 -S315400046B000000000000000000000000000000000B4 -S315400046C000000000000000000000000000000000A4 -S315400046D00000000000000000000000000000000094 -S315400046E00000000000000000000000000000000084 -S315400046F00000000000000000000000000000000074 -S315400047000000000000000000000000000000000063 -S315400047100000000000000000000000000000000053 -S315400047200000000000000000000000000000000043 -S315400047300000000000000000000000000000000033 -S315400047400000000000000000000000000000000023 -S315400047500000000000000000000000000000000013 -S315400047600000000000000000000000000000000003 -S3154000477000000000000000000000000000000000F3 -S3154000478000000000000000000000000000000000E3 -S3154000479000000000000000000000000000000000D3 -S315400047A000000000000000000000000000000000C3 -S315400047B000000000000000000000000000000000B3 -S315400047C000000000000000000000000000000000A3 -S315400047D00000000000000000000000000000000093 -S315400047E00000000000000000000000000000000083 -S315400047F00000000000000000000000000000000073 -S315400048000000000000000000000000000000000062 -S315400048100000000000000000000000000000000052 -S315400048200000000000000000000000000000000042 -S315400048300000000000000000000000000000000032 -S315400048400000000000000000000000000000000022 -S315400048500000000000000000000000000000000012 -S315400048600000000000000000000000000000000002 -S3154000487000000000000000000000000000000000F2 -S3154000488000000000000000000000000000000000E2 -S3154000489000000000000000000000000000000000D2 -S315400048A000000000000000000000000000000000C2 -S315400048B000000000000000000000000000000000B2 -S315400048C000000000000000000000000000000000A2 -S315400048D00000000000000000000000000000000092 -S315400048E00000000000000000000000000000000082 -S315400048F00000000000000000000000000000000072 -S315400049000000000000000000000000000000000061 -S315400049100000000000000000000000000000000051 -S315400049200000000000000000000000000000000041 -S315400049300000000000000000000000000000000031 -S315400049400000000000000000000000000000000021 -S315400049500000000000000000000000000000000011 -S315400049600000000000000000000000000000000001 -S3154000497000000000000000000000000000000000F1 -S3154000498000000000000000000000000000000000E1 -S3154000499000000000000000000000000000000000D1 -S315400049A000000000000000000000000000000000C1 -S315400049B000000000000000000000000000000000B1 -S315400049C000000000000000000000000000000000A1 -S315400049D00000000000000000000000000000000091 -S315400049E00000000000000000000000000000000081 -S315400049F00000000000000000000000000000000071 -S31540004A000000000000000000000000000000000060 -S31540004A100000000000000000000000000000000050 -S31540004A200000000000000000000000000000000040 -S31540004A300000000000000000000000000000000030 -S31540004A400000000000000000000000000000000020 -S31540004A500000000000000000000000000000000010 -S31540004A600000000000000000000000000000000000 -S31540004A7000000000000000000000000000000000F0 -S31540004A8000000000000000000000000000000000E0 -S31540004A9000000000000000000000000000000000D0 -S31540004AA000000000000000000000000000000000C0 -S31540004AB000000000000000000000000000000000B0 -S31540004AC000000000000000000000000000000000A0 -S31540004AD00000000000000000000000000000000090 -S31540004AE00000000000000000000000000000000080 -S31540004AF00000000000000000000000000000000070 -S31540004B00000000000000000000000000000000005F -S31540004B10000000000000000000000000000000004F -S31540004B20000000000000000000000000000000003F -S31540004B30000000000000000000000000000000002F -S31540004B40000000000000000000000000000000001F -S31540004B50000000000000000000000000000000000F -S31540004B6000000000000000000000000000000000FF -S31540004B7000000000000000000000000000000000EF -S31540004B8000000000000000000000000000000000DF -S31540004B9000000000000000000000000000000000CF -S31540004BA000000000000000000000000000000000BF -S31540004BB000000000000000000000000000000000AF -S31540004BC0000000000000000000000000000000009F -S31540004BD0000000000000000000000000000000008F -S31540004BE0000000000000000000000000000000007F -S31540004BF0000000000000000000000000000000006F -S31540004C00000000000000000000000000000000005E -S31540004C10000000000000000000000000000000004E -S31540004C20000000000000000000000000000000003E -S31540004C30000000000000000000000000000000002E -S31540004C40000000000000000000000000000000001E -S31540004C50000000000000000000000000000000000E -S31540004C6000000000000000000000000000000000FE -S31540004C7000000000000000000000000000000000EE -S31540004C8000000000000000000000000000000000DE -S31540004C9000000000000000000000000000000000CE -S31540004CA000000000000000000000000000000000BE -S31540004CB000000000000000000000000000000000AE -S31540004CC0000000000000000000000000000000009E -S31540004CD0000000000000000000000000000000008E -S31540004CE0000000000000000000000000000000007E -S31540004CF0000000000000000000000000000000006E -S31540004D00000000000000000000000000000000005D -S31540004D10000000000000000000000000000000004D -S31540004D20000000000000000000000000000000003D -S31540004D30000000000000000000000000000000002D -S31540004D40000000000000000000000000000000001D -S31540004D50000000000000000000000000000000000D -S31540004D6000000000000000000000000000000000FD -S31540004D7000000000000000000000000000000000ED -S31540004D8000000000000000000000000000000000DD -S31540004D9000000000000000000000000000000000CD -S31540004DA000000000000000000000000000000000BD -S31540004DB000000000000000000000000000000000AD -S31540004DC0000000000000000000000000000000009D -S31540004DD0000000000000000000000000000000008D -S31540004DE0000000000000000000000000000000007D -S31540004DF0000000000000000000000000000000006D -S31540004E00000000000000000000000000000000005C -S31540004E10000000000000000000000000000000004C -S31540004E20000000000000000000000000000000003C -S31540004E30000000000000000000000000000000002C -S31540004E40000000000000000000000000000000001C -S31540004E50000000000000000000000000000000000C -S31540004E6000000000000000000000000000000000FC -S31540004E7000000000000000000000000000000000EC -S31540004E8000000000000000000000000000000000DC -S31540004E9000000000000000000000000000000000CC -S31540004EA000000000000000000000000000000000BC -S31540004EB000000000000000000000000000000000AC -S31540004EC0000000000000000000000000000000009C -S31540004ED0000000000000000000000000000000008C -S31540004EE0000000000000000000000000000000007C -S31540004EF0000000000000000000000000000000006C -S31540004F00000000000000000000000000000000005B -S31540004F10000000000000000000000000000000004B -S31540004F20000000000000000000000000000000003B -S31540004F30000000000000000000000000000000002B -S31540004F40000000000000000000000000000000001B -S31540004F50000000000000000000000000000000000B -S31540004F6000000000000000000000000000000000FB -S31540004F7000000000000000000000000000000000EB -S31540004F8000000000000000000000000000000000DB -S31540004F9000000000000000000000000000000000CB -S31540004FA000000000000000000000000000000000BB -S31540004FB000000000000000000000000000000000AB -S31540004FC0000000000000000000000000000000009B -S31540004FD0000000000000000000000000000000008B -S31540004FE0000000000000000000000000000000007B -S31540004FF0000000000000000000000000000000006B -S31540005000000000000000000000000000000000005A -S31540005010000000000000000000000000000000004A -S31540005020000000000000000000000000000000003A -S31540005030000000000000000000000000000000002A -S31540005040000000000000000000000000000000001A -S31540005050000000000000000000000000000000000A -S3154000506000000000000000000000000000000000FA -S3154000507000000000000000000000000000000000EA -S3154000508000000000000000000000000000000000DA -S3154000509000000000000000000000000000000000CA -S315400050A000000000000000000000000000000000BA -S315400050B000000000000000000000000000000000AA -S315400050C0000000000000000000000000000000009A -S315400050D0000000000000000000000000000000008A -S315400050E0000000000000000000000000000000007A -S315400050F0000000000000000000000000000000006A -S315400051000000000000000000000000000000000059 -S315400051100000000000000000000000000000000049 -S315400051200000000000000000000000000000000039 -S315400051300000000000000000000000000000000029 -S315400051400000000000000000000000000000000019 -S315400051500000000000000000000000000000000009 -S3154000516000000000000000000000000000000000F9 -S3154000517000000000000000000000000000000000E9 -S3154000518000000000000000000000000000000000D9 -S3154000519000000000000000000000000000000000C9 -S315400051A000000000000000000000000000000000B9 -S315400051B000000000000000000000000000000000A9 -S315400051C00000000000000000000000000000000099 -S315400051D00000000000000000000000000000000089 -S315400051E00000000000000000000000000000000079 -S315400051F00000000000000000000000000000000069 -S315400052000000000000000000000000000000000058 -S315400052100000000000000000000000000000000048 -S315400052200000000000000000000000000000000038 -S315400052300000000000000000000000000000000028 -S315400052400000000000000000000000000000000018 -S315400052500000000000000000000000000000000008 -S3154000526000000000000000000000000000000000F8 -S3154000527000000000000000000000000000000000E8 -S3154000528000000000000000000000000000000000D8 -S3154000529000000000000000000000000000000000C8 -S315400052A000000000000000000000000000000000B8 -S315400052B000000000000000000000000000000000A8 -S315400052C00000000000000000000000000000000098 -S315400052D00000000000000000000000000000000088 -S315400052E00000000000000000000000000000000078 -S315400052F00000000000000000000000000000000068 -S315400053000000000000000000000000000000000057 -S315400053100000000000000000000000000000000047 -S315400053200000000000000000000000000000000037 -S315400053300000000000000000000000000000000027 -S315400053400000000000000000000000000000000017 -S315400053500000000000000000000000000000000007 -S3154000536000000000000000000000000000000000F7 -S3154000537000000000000000000000000000000000E7 -S3154000538000000000000000000000000000000000D7 -S3154000539000000000000000000000000000000000C7 -S315400053A000000000000000000000000000000000B7 -S315400053B000000000000000000000000000000000A7 -S315400053C00000000000000000000000000000000097 -S315400053D00000000000000000000000000000000087 -S315400053E00000000000000000000000000000000077 -S315400053F00000000000000000000000000000000067 -S315400054000000000000000000000000000000000056 -S315400054100000000000000000000000000000000046 -S315400054200000000000000000000000000000000036 -S315400054300000000000000000000000000000000026 -S315400054400000000000000000000000000000000016 -S315400054500000000000000000000000000000000006 -S3154000546000000000000000000000000000000000F6 -S3154000547000000000000000000000000000000000E6 -S3154000548000000000000000000000000000000000D6 -S3154000549000000000000000000000000000000000C6 -S315400054A000000000000000000000000000000000B6 -S315400054B000000000000000000000000000000000A6 -S315400054C00000000000000000000000000000000096 -S315400054D00000000000000000000000000000000086 -S315400054E00000000000000000000000000000000076 -S315400054F00000000000000000000000000000000066 -S315400055000000000000000000000000000000000055 -S315400055100000000000000000000000000000000045 -S315400055200000000000000000000000000000000035 -S315400055300000000000000000000000000000000025 -S315400055400000000000000000000000000000000015 -S315400055500000000000000000000000000000000005 -S3154000556000000000000000000000000000000000F5 -S3154000557000000000000000000000000000000000E5 -S3154000558000000000000000000000000000000000D5 -S3154000559000000000000000000000000000000000C5 -S315400055A000000000000000000000000000000000B5 -S315400055B000000000000000000000000000000000A5 -S315400055C00000000000000000000000000000000095 -S315400055D00000000000000000000000000000000085 -S315400055E00000000000000000000000000000000075 -S315400055F00000000000000000000000000000000065 -S315400056000000000000000000000000000000000054 -S315400056100000000000000000000000000000000044 -S315400056200000000000000000000000000000000034 -S315400056300000000000000000000000000000000024 -S315400056400000000000000000000000000000000014 -S315400056500000000000000000000000000000000004 -S3154000566000000000000000000000000000000000F4 -S3154000567000000000000000000000000000000000E4 -S3154000568000000000000000000000000000000000D4 -S3154000569000000000000000000000000000000000C4 -S315400056A000000000000000000000000000000000B4 -S315400056B000000000000000000000000000000000A4 -S315400056C00000000000000000000000000000000094 -S315400056D00000000000000000000000000000000084 -S315400056E00000000000000000000000000000000074 -S315400056F00000000000000000000000000000000064 -S315400057000000000000000000000000000000000053 -S315400057100000000000000000000000000000000043 -S315400057200000000000000000000000000000000033 -S315400057300000000000000000000000000000000023 -S315400057400000000000000000000000000000000013 -S315400057500000000000000000000000000000000003 -S3154000576000000000000000000000000000000000F3 -S3154000577000000000000000000000000000000000E3 -S3154000578000000000000000000000000000000000D3 -S3154000579000000000000000000000000000000000C3 -S315400057A000000000000000000000000000000000B3 -S315400057B000000000000000000000000000000000A3 -S315400057C00000000000000000000000000000000093 -S315400057D00000000000000000000000000000000083 -S315400057E00000000000000000000000000000000073 -S315400057F00000000000000000000000000000000063 -S315400058000000000000000000000000000000000052 -S315400058100000000000000000000000000000000042 -S315400058200000000000000000000000000000000032 -S315400058300000000000000000000000000000000022 -S315400058400000000000000000000000000000000012 -S315400058500000000000000000000000000000000002 -S3154000586000000000000000000000000000000000F2 -S3154000587000000000000000000000000000000000E2 -S3154000588000000000000000000000000000000000D2 -S3154000589000000000000000000000000000000000C2 -S315400058A000000000000000000000000000000000B2 -S315400058B000000000000000000000000000000000A2 -S315400058C00000000000000000000000000000000092 -S315400058D00000000000000000000000000000000082 -S315400058E00000000000000000000000000000000072 -S315400058F00000000000000000000000000000000062 -S315400059000000000000000000000000000000000051 -S315400059100000000000000000000000000000000041 -S315400059200000000000000000000000000000000031 -S315400059300000000000000000000000000000000021 -S315400059400000000000000000000000000000000011 -S315400059500000000000000000000000000000000001 -S3154000596000000000000000000000000000000000F1 -S3154000597000000000000000000000000000000000E1 -S3154000598000000000000000000000000000000000D1 -S3154000599000000000000000000000000000000000C1 -S315400059A000000000000000000000000000000000B1 -S315400059B000000000000000000000000000000000A1 -S315400059C00000000000000000000000000000000091 -S315400059D00000000000000000000000000000000081 -S315400059E00000000000000000000000000000000071 -S315400059F00000000000000000000000000000000061 -S31540005A000000000000000000000000000000000050 -S31540005A100000000000000000000000000000000040 -S31540005A200000000000000000000000000000000030 -S31540005A300000000000000000000000000000000020 -S31540005A400000000000000000000000000000000010 -S31540005A500000000000000000000000000000000000 -S31540005A6000000000000000000000000000000000F0 -S31540005A7000000000000000000000000000000000E0 -S31540005A8000000000000000000000000000000000D0 -S31540005A9000000000000000000000000000000000C0 -S31540005AA000000000000000000000000000000000B0 -S31540005AB000000000000000000000000000000000A0 -S31540005AC00000000000000000000000000000000090 -S31540005AD00000000000000000000000000000000080 -S31540005AE00000000000000000000000000000000070 -S31540005AF00000000000000000000000000000000060 -S31540005B00000000000000000000000000000000004F -S31540005B10000000000000000000000000000000003F -S31540005B20000000000000000000000000000000002F -S31540005B30000000000000000000000000000000001F -S31540005B40000000000000000000000000000000000F -S31540005B5000000000000000000000000000000000FF -S31540005B6000000000000000000000000000000000EF -S31540005B7000000000000000000000000000000000DF -S31540005B8000000000000000000000000000000000CF -S31540005B9000000000000000000000000000000000BF -S31540005BA000000000000000000000000000000000AF -S31540005BB0000000000000000000000000000000009F -S31540005BC0000000000000000000000000000000008F -S31540005BD0000000000000000000000000000000007F -S31540005BE0000000000000000000000000000000006F -S31540005BF0000000000000000000000000000000005F -S31540005C00000000000000000000000000000000004E -S31540005C10000000000000000000000000000000003E -S31540005C20000000000000000000000000000000002E -S31540005C30000000000000000000000000000000001E -S31540005C40000000000000000000000000000000000E -S31540005C5000000000000000000000000000000000FE -S31540005C6000000000000000000000000000000000EE -S31540005C7000000000000000000000000000000000DE -S31540005C8000000000000000000000000000000000CE -S31540005C9000000000000000000000000000000000BE -S31540005CA000000000000000000000000000000000AE -S31540005CB0000000000000000000000000000000009E -S31540005CC0000000000000000000000000000000008E -S31540005CD0000000000000000000000000000000007E -S31540005CE0000000000000000000000000000000006E -S31540005CF0000000000000000000000000000000005E -S31540005D00000000000000000000000000000000004D -S31540005D10000000000000000000000000000000003D -S31540005D20000000000000000000000000000000002D -S31540005D30000000000000000000000000000000001D -S31540005D40000000000000000000000000000000000D -S31540005D5000000000000000000000000000000000FD -S31540005D6000000000000000000000000000000000ED -S31540005D7000000000000000000000000000000000DD -S31540005D8000000000000000000000000000000000CD -S31540005D9000000000000000000000000000000000BD -S31540005DA000000000000000000000000000000000AD -S31540005DB0000000000000000000000000000000009D -S31540005DC0000000000000000000000000000000008D -S31540005DD0000000000000000000000000000000007D -S31540005DE0000000000000000000000000000000006D -S31540005DF0000000000000000000000000000000005D -S31540005E00000000000000000000000000000000004C -S31540005E10000000000000000000000000000000003C -S31540005E20000000000000000000000000000000002C -S31540005E30000000000000000000000000000000001C -S31540005E40000000000000000000000000000000000C -S31540005E5000000000000000000000000000000000FC -S31540005E6000000000000000000000000000000000EC -S31540005E7000000000000000000000000000000000DC -S31540005E8000000000000000000000000000000000CC -S31540005E9000000000000000000000000000000000BC -S31540005EA000000000000000000000000000000000AC -S31540005EB0000000000000000000000000000000009C -S31540005EC0000000000000000000000000000000008C -S31540005ED0000000000000000000000000000000007C -S31540005EE0000000000000000000000000000000006C -S31540005EF0000000000000000000000000000000005C -S31540005F00000000000000000000000000000000004B -S31540005F10000000000000000000000000000000003B -S31540005F20000000000000000000000000000000002B -S31540005F30000000000000000000000000000000001B -S31540005F40000000000000000000000000000000000B -S31540005F5000000000000000000000000000000000FB -S31540005F6000000000000000000000000000000000EB -S31540005F7000000000000000000000000000000000DB -S31540005F8000000000000000000000000000000000CB -S31540005F9000000000000000000000000000000000BB -S31540005FA000000000000000000000000000000000AB -S31540005FB0000000000000000000000000000000009B -S31540005FC0000000000000000000000000000000008B -S31540005FD0000000000000000000000000000000007B -S31540005FE0000000000000000000000000000000006B -S31540005FF0000000000000000000000000000000005B -S31540006000000000000000000000000000000000004A -S31540006010000000000000000000000000000000003A -S31540006020000000000000000000000000000000002A -S31540006030000000000000000000000000000000001A -S31540006040000000000000000000000000000000000A -S3154000605000000000000000000000000000000000FA -S3154000606000000000000000000000000000000000EA -S3154000607000000000000000000000000000000000DA -S3154000608000000000000000000000000000000000CA -S3154000609000000000000000000000000000000000BA -S315400060A000000000000000000000000000000000AA -S315400060B0000000000000000000000000000000009A -S315400060C0000000000000000000000000000000008A -S315400060D0000000000000000000000000000000007A -S315400060E0000000000000000000000000000000006A -S315400060F0000000000000000000000000000000005A -S315400061000000000000000000000000000000000049 -S315400061100000000000000000000000000000000039 -S315400061200000000000000000000000000000000029 -S315400061300000000000000000000000000000000019 -S315400061400000000000000000000000000000000009 -S3154000615000000000000000000000000000000000F9 -S3154000616000000000000000000000000000000000E9 -S3154000617000000000000000000000000000000000D9 -S3154000618000000000000000000000000000000000C9 -S3154000619000000000000000000000000000000000B9 -S315400061A000000000000000000000000000000000A9 -S315400061B00000000000000000000000000000000099 -S315400061C00000000000000000000000000000000089 -S315400061D00000000000000000000000000000000079 -S315400061E00000000000000000000000000000000069 -S315400061F00000000000000000000000000000000059 -S315400062000000000000000000000000000000000048 -S315400062100000000000000000000000000000000038 -S315400062200000000000000000000000000000000028 -S315400062300000000000000000000000000000000018 -S315400062400000000000000000000000000000000008 -S3154000625000000000000000000000000000000000F8 -S3154000626000000000000000000000000000000000E8 -S3154000627000000000000000000000000000000000D8 -S3154000628000000000000000000000000000000000C8 -S3154000629000000000000000000000000000000000B8 -S315400062A000000000000000000000000000000000A8 -S315400062B00000000000000000000000000000000098 -S315400062C00000000000000000000000000000000088 -S315400062D00000000000000000000000000000000078 -S315400062E00000000000000000000000000000000068 -S315400062F00000000000000000000000000000000058 -S315400063000000000000000000000000000000000047 -S315400063100000000000000000000000000000000037 -S315400063200000000000000000000000000000000027 -S315400063300000000000000000000000000000000017 -S315400063400000000000000000000000000000000007 -S3154000635000000000000000000000000000000000F7 -S3154000636000000000000000000000000000000000E7 -S3154000637000000000000000000000000000000000D7 -S3154000638000000000000000000000000000000000C7 -S3154000639000000000000000000000000000000000B7 -S315400063A000000000000000000000000000000000A7 -S315400063B00000000000000000000000000000000097 -S315400063C00000000000000000000000000000000087 -S315400063D00000000000000000000000000000000077 -S315400063E00000000000000000000000000000000067 -S315400063F00000000000000000000000000000000057 -S315400064000000000000000000000000000000000046 -S315400064100000000000000000000000000000000036 -S315400064200000000000000000000000000000000026 -S315400064300000000000000000000000000000000016 -S315400064400000000000000000000000000000000006 -S3154000645000000000000000000000000000000000F6 -S3154000646000000000000000000000000000000000E6 -S3154000647000000000000000000000000000000000D6 -S3154000648000000000000000000000000000000000C6 -S3154000649000000000000000000000000000000000B6 -S315400064A000000000000000000000000000000000A6 -S315400064B00000000000000000000000000000000096 -S315400064C00000000000000000000000000000000086 -S315400064D00000000000000000000000000000000076 -S315400064E00000000000000000000000000000000066 -S315400064F00000000000000000000000000000000056 -S315400065000000000000000000000000000000000045 -S315400065100000000000000000000000000000000035 -S315400065200000000000000000000000000000000025 -S315400065300000000000000000000000000000000015 -S315400065400000000000000000000000000000000005 -S3154000655000000000000000000000000000000000F5 -S3154000656000000000000000000000000000000000E5 -S3154000657000000000000000000000000000000000D5 -S3154000658000000000000000000000000000000000C5 -S3154000659000000000000000000000000000000000B5 -S315400065A000000000000000000000000000000000A5 -S315400065B00000000000000000000000000000000095 -S315400065C00000000000000000000000000000000085 -S315400065D00000000000000000000000000000000075 -S315400065E00000000000000000000000000000000065 -S315400065F00000000000000000000000000000000055 -S315400066000000000000000000000000000000000044 -S315400066100000000000000000000000000000000034 -S315400066200000000000000000000000000000000024 -S315400066300000000000000000000000000000000014 -S315400066400000000000000000000000000000000004 -S3154000665000000000000000000000000000000000F4 -S3154000666000000000000000000000000000000000E4 -S3154000667000000000000000000000000000000000D4 -S3154000668000000000000000000000000000000000C4 -S3154000669000000000000000000000000000000000B4 -S315400066A000000000000000000000000000000000A4 -S315400066B00000000000000000000000000000000094 -S315400066C00000000000000000000000000000000084 -S315400066D00000000000000000000000000000000074 -S315400066E00000000000000000000000000000000064 -S315400066F00000000000000000000000000000000054 -S315400067000000000000000000000000000000000043 -S315400067100000000000000000000000000000000033 -S315400067200000000000000000000000000000000023 -S315400067300000000000000000000000000000000013 -S315400067400000000000000000000000000000000003 -S3154000675000000000000000000000000000000000F3 -S3154000676000000000000000000000000000000000E3 -S3154000677000000000000000000000000000000000D3 -S3154000678000000000000000000000000000000000C3 -S3154000679000000000000000000000000000000000B3 -S315400067A000000000000000000000000000000000A3 -S315400067B00000000000000000000000000000000093 -S315400067C00000000000000000000000000000000083 -S315400067D00000000000000000000000000000000073 -S315400067E00000000000000000000000000000000063 -S315400067F00000000000000000000000000000000053 -S315400068000000000000000000000000000000000042 -S315400068100000000000000000000000000000000032 -S315400068200000000000000000000000000000000022 -S315400068300000000000000000000000000000000012 -S315400068400000000000000000000000000000000002 -S3154000685000000000000000000000000000000000F2 -S3154000686000000000000000000000000000000000E2 -S3154000687000000000000000000000000000000000D2 -S3154000688000000000000000000000000000000000C2 -S3154000689000000000000000000000000000000000B2 -S315400068A000000000000000000000000000000000A2 -S315400068B00000000000000000000000000000000092 -S315400068C00000000000000000000000000000000082 -S315400068D00000000000000000000000000000000072 -S315400068E00000000000000000000000000000000062 -S315400068F00000000000000000000000000000000052 -S315400069000000000000000000000000000000000041 -S315400069100000000000000000000000000000000031 -S315400069200000000000000000000000000000000021 -S315400069300000000000000000000000000000000011 -S315400069400000000000000000000000000000000001 -S3154000695000000000000000000000000000000000F1 -S3154000696000000000000000000000000000000000E1 -S3154000697000000000000000000000000000000000D1 -S3154000698000000000000000000000000000000000C1 -S3154000699000000000000000000000000000000000B1 -S315400069A000000000000000000000000000000000A1 -S315400069B00000000000000000000000000000000091 -S315400069C00000000000000000000000000000000081 -S315400069D00000000000000000000000000000000071 -S315400069E00000000000000000000000000000000061 -S315400069F00000000000000000000000000000000051 -S31540006A000000000000000000000000000000000040 -S31540006A100000000000000000000000000000000030 -S31540006A200000000000000000000000000000000020 -S31540006A300000000000000000000000000000000010 -S31540006A400000000000000000000000000000000000 -S31540006A5000000000000000000000000000000000F0 -S31540006A6000000000000000000000000000000000E0 -S31540006A7000000000000000000000000000000000D0 -S31540006A8000000000000000000000000000000000C0 -S31540006A9000000000000000000000000000000000B0 -S31540006AA000000000000000000000000000000000A0 -S31540006AB00000000000000000000000000000000090 -S31540006AC00000000000000000000000000000000080 -S31540006AD00000000000000000000000000000000070 -S31540006AE00000000000000000000000000000000060 -S31540006AF00000000000000000000000000000000050 -S31540006B00000000000000000000000000000000003F -S31540006B10000000000000000000000000000000002F -S31540006B20000000000000000000000000000000001F -S31540006B30000000000000000000000000000000000F -S31540006B4000000000000000000000000000000000FF -S31540006B5000000000000000000000000000000000EF -S31540006B6000000000000000000000000000000000DF -S31540006B7000000000000000000000000000000000CF -S31540006B8000000000000000000000000000000000BF -S31540006B9000000000000000000000000000000000AF -S31540006BA0000000000000000000000000000000009F -S31540006BB0000000000000000000000000000000008F -S31540006BC0000000000000000000000000000000007F -S31540006BD0000000000000000000000000000000006F -S31540006BE0000000000000000000000000000000005F -S31540006BF0000000000000000000000000000000004F -S31540006C00000000000000000000000000000000003E -S31540006C10000000000000000000000000000000002E -S31540006C20000000000000000000000000000000001E -S31540006C30000000000000000000000000000000000E -S31540006C4000000000000000000000000000000000FE -S31540006C5000000000000000000000000000000000EE -S31540006C6000000000000000000000000000000000DE -S31540006C7000000000000000000000000000000000CE -S31540006C8000000000000000000000000000000000BE -S31540006C9000000000000000000000000000000000AE -S31540006CA0000000000000000000000000000000009E -S31540006CB0000000000000000000000000000000008E -S31540006CC0000000000000000000000000000000007E -S31540006CD0000000000000000000000000000000006E -S31540006CE0000000000000000000000000000000005E -S31540006CF0000000000000000000000000000000004E -S31540006D00000000000000000000000000000000003D -S31540006D10000000000000000000000000000000002D -S31540006D20000000000000000000000000000000001D -S31540006D30000000000000000000000000000000000D -S31540006D4000000000000000000000000000000000FD -S31540006D5000000000000000000000000000000000ED -S31540006D6000000000000000000000000000000000DD -S31540006D7000000000000000000000000000000000CD -S31540006D8000000000000000000000000000000000BD -S31540006D9000000000000000000000000000000000AD -S31540006DA0000000000000000000000000000000009D -S31540006DB0000000000000000000000000000000008D -S31540006DC0000000000000000000000000000000007D -S31540006DD0000000000000000000000000000000006D -S31540006DE0000000000000000000000000000000005D -S31540006DF0000000000000000000000000000000004D -S31540006E00000000000000000000000000000000003C -S31540006E10000000000000000000000000000000002C -S31540006E20000000000000000000000000000000001C -S31540006E30000000000000000000000000000000000C -S31540006E4000000000000000000000000000000000FC -S31540006E5000000000000000000000000000000000EC -S31540006E6000000000000000000000000000000000DC -S31540006E7000000000000000000000000000000000CC -S31540006E8000000000000000000000000000000000BC -S31540006E9000000000000000000000000000000000AC -S31540006EA0000000000000000000000000000000009C -S31540006EB0000000000000000000000000000000008C -S31540006EC0000000000000000000000000000000007C -S31540006ED0000000000000000000000000000000006C -S31540006EE0000000000000000000000000000000005C -S31540006EF0000000000000000000000000000000004C -S31540006F00000000000000000000000000000000003B -S31540006F10000000000000000000000000000000002B -S31540006F20000000000000000000000000000000001B -S31540006F30000000000000000000000000000000000B -S31540006F4000000000000000000000000000000000FB -S31540006F5000000000000000000000000000000000EB -S31540006F6000000000000000000000000000000000DB -S31540006F7000000000000000000000000000000000CB -S31540006F8000000000000000000000000000000000BB -S31540006F9000000000000000000000000000000000AB -S31540006FA0000000000000000000000000000000009B -S31540006FB0000000000000000000000000000000008B -S31540006FC0000000000000000000000000000000007B -S31540006FD0000000000000000000000000000000006B -S31540006FE0000000000000000000000000000000005B -S31540006FF0000000000000000000000000000000004B -S31540007000000000000000000000000000000000003A -S31540007010000000000000000000000000000000002A -S31540007020000000000000000000000000000000001A -S31540007030000000000000000000000000000000000A -S3154000704000000000000000000000000000000000FA -S3154000705000000000000000000000000000000000EA -S3154000706000000000000000000000000000000000DA -S3154000707000000000000000000000000000000000CA -S3154000708000000000000000000000000000000000BA -S3154000709000000000000000000000000000000000AA -S315400070A0000000000000000000000000000000009A -S315400070B0000000000000000000000000000000008A -S315400070C0000000000000000000000000000000007A -S315400070D0000000000000000000000000000000006A -S315400070E0000000000000000000000000000000005A -S315400070F0000000000000000000000000000000004A -S315400071000000000000000000000000000000000039 -S315400071100000000000000000000000000000000029 -S315400071200000000000000000000000000000000019 -S315400071300000000000000000000000000000000009 -S3154000714000000000000000000000000000000000F9 -S3154000715000000000000000000000000000000000E9 -S3154000716000000000000000000000000000000000D9 -S3154000717000000000000000000000000000000000C9 -S3154000718000000000000000000000000000000000B9 -S3154000719000000000000000000000000000000000A9 -S315400071A00000000000000000000000000000000099 -S315400071B00000000000000000000000000000000089 -S315400071C00000000000000000000000000000000079 -S315400071D00000000000000000000000000000000069 -S315400071E00000000000000000000000000000000059 -S315400071F00000000000000000000000000000000049 -S315400072000000000000000000000000000000000038 -S315400072100000000000000000000000000000000028 -S315400072200000000000000000000000000000000018 -S315400072300000000000000000000000000000000008 -S3154000724000000000000000000000000000000000F8 -S3154000725000000000000000000000000000000000E8 -S3154000726000000000000000000000000000000000D8 -S3154000727000000000000000000000000000000000C8 -S3154000728000000000000000000000000000000000B8 -S3154000729000000000000000000000000000000000A8 -S315400072A00000000000000000000000000000000098 -S315400072B00000000000000000000000000000000088 -S315400072C00000000000000000000000000000000078 -S315400072D00000000000000000000000000000000068 -S315400072E00000000000000000000000000000000058 -S315400072F00000000000000000000000000000000048 -S315400073000000000000000000000000000000000037 -S315400073100000000000000000000000000000000027 -S315400073200000000000000000000000000000000017 -S315400073300000000000000000000000000000000007 -S3154000734000000000000000000000000000000000F7 -S3154000735000000000000000000000000000000000E7 -S3154000736000000000000000000000000000000000D7 -S3154000737000000000000000000000000000000000C7 -S3154000738000000000000000000000000000000000B7 -S3154000739000000000000000000000000000000000A7 -S315400073A00000000000000000000000000000000097 -S315400073B00000000000000000000000000000000087 -S315400073C00000000000000000000000000000000077 -S315400073D00000000000000000000000000000000067 -S315400073E00000000000000000000000000000000057 -S315400073F00000000000000000000000000000000047 -S315400074000000000000000000000000000000000036 -S315400074100000000000000000000000000000000026 -S315400074200000000000000000000000000000000016 -S315400074300000000000000000000000000000000006 -S3154000744000000000000000000000000000000000F6 -S3154000745000000000000000000000000000000000E6 -S3154000746000000000000000000000000000000000D6 -S3154000747000000000000000000000000000000000C6 -S3154000748000000000000000000000000000000000B6 -S3154000749000000000000000000000000000000000A6 -S315400074A00000000000000000000000000000000096 -S315400074B00000000000000000000000000000000086 -S315400074C00000000000000000000000000000000076 -S315400074D00000000000000000000000000000000066 -S315400074E00000000000000000000000000000000056 -S315400074F00000000000000000000000000000000046 -S315400075000000000000000000000000000000000035 -S315400075100000000000000000000000000000000025 -S315400075200000000000000000000000000000000015 -S315400075300000000000000000000000000000000005 -S3154000754000000000000000000000000000000000F5 -S3154000755000000000000000000000000000000000E5 -S3154000756000000000000000000000000000000000D5 -S3154000757000000000000000000000000000000000C5 -S3154000758000000000000000000000000000000000B5 -S3154000759000000000000000000000000000000000A5 -S315400075A00000000000000000000000000000000095 -S315400075B00000000000000000000000000000000085 -S315400075C00000000000000000000000000000000075 -S315400075D00000000000000000000000000000000065 -S315400075E00000000000000000000000000000000055 -S315400075F00000000000000000000000000000000045 -S315400076000000000000000000000000000000000034 -S315400076100000000000000000000000000000000024 -S315400076200000000000000000000000000000000014 -S315400076300000000000000000000000000000000004 -S3154000764000000000000000000000000000000000F4 -S3154000765000000000000000000000000000000000E4 -S3154000766000000000000000000000000000000000D4 -S3154000767000000000000000000000000000000000C4 -S3154000768000000000000000000000000000000000B4 -S3154000769000000000000000000000000000000000A4 -S315400076A00000000000000000000000000000000094 -S315400076B00000000000000000000000000000000084 -S315400076C00000000000000000000000000000000074 -S315400076D00000000000000000000000000000000064 -S315400076E00000000000000000000000000000000054 -S315400076F00000000000000000000000000000000044 -S315400077000000000000000000000000000000000033 -S315400077100000000000000000000000000000000023 -S315400077200000000000000000000000000000000013 -S315400077300000000000000000000000000000000003 -S3154000774000000000000000000000000000000000F3 -S3154000775000000000000000000000000000000000E3 -S3154000776000000000000000000000000000000000D3 -S3154000777000000000000000000000000000000000C3 -S3154000778000000000000000000000000000000000B3 -S3154000779000000000000000000000000000000000A3 -S315400077A00000000000000000000000000000000093 -S315400077B00000000000000000000000000000000083 -S315400077C00000000000000000000000000000000073 -S315400077D00000000000000000000000000000000063 -S315400077E00000000000000000000000000000000053 -S315400077F00000000000000000000000000000000043 -S315400078000000000000000000000000000000000032 -S315400078100000000000000000000000000000000022 -S315400078200000000000000000000000000000000012 -S315400078300000000000000000000000000000000002 -S3154000784000000000000000000000000000000000F2 -S3154000785000000000000000000000000000000000E2 -S3154000786000000000000000000000000000000000D2 -S3154000787000000000000000000000000000000000C2 -S3154000788000000000000000000000000000000000B2 -S3154000789000000000000000000000000000000000A2 -S315400078A00000000000000000000000000000000092 -S315400078B00000000000000000000000000000000082 -S315400078C00000000000000000000000000000000072 -S315400078D00000000000000000000000000000000062 -S315400078E00000000000000000000000000000000052 -S315400078F00000000000000000000000000000000042 -S315400079000000000000000000000000000000000031 -S315400079100000000000000000000000000000000021 -S315400079200000000000000000000000000000000011 -S315400079300000000000000000000000000000000001 -S3154000794000000000000000000000000000000000F1 -S3154000795000000000000000000000000000000000E1 -S3154000796000000000000000000000000000000000D1 -S3154000797000000000000000000000000000000000C1 -S3154000798000000000000000000000000000000000B1 -S3154000799000000000000000000000000000000000A1 -S315400079A00000000000000000000000000000000091 -S315400079B00000000000000000000000000000000081 -S315400079C00000000000000000000000000000000071 -S315400079D00000000000000000000000000000000061 -S315400079E00000000000000000000000000000000051 -S315400079F00000000000000000000000000000000041 -S31540007A000000000000000000000000000000000030 -S31540007A100000000000000000000000000000000020 -S31540007A200000000000000000000000000000000010 -S31540007A300000000000000000000000000000000000 -S31540007A4000000000000000000000000000000000F0 -S31540007A5000000000000000000000000000000000E0 -S31540007A6000000000000000000000000000000000D0 -S31540007A7000000000000000000000000000000000C0 -S31540007A8000000000000000000000000000000000B0 -S31540007A9000000000000000000000000000000000A0 -S31540007AA00000000000000000000000000000000090 -S31540007AB00000000000000000000000000000000080 -S31540007AC00000000000000000000000000000000070 -S31540007AD00000000000000000000000000000000060 -S31540007AE00000000000000000000000000000000050 -S31540007AF00000000000000000000000000000000040 -S31540007B00000000000000000000000000000000002F -S31540007B10000000000000000000000000000000001F -S31540007B20000000000000000000000000000000000F -S31540007B3000000000000000000000000000000000FF -S31540007B4000000000000000000000000000000000EF -S31540007B5000000000000000000000000000000000DF -S31540007B6000000000000000000000000000000000CF -S31540007B7000000000000000000000000000000000BF -S31540007B8000000000000000000000000000000000AF -S31540007B90000000000000000000000000000000009F -S31540007BA0000000000000000000000000000000008F -S31540007BB0000000000000000000000000000000007F -S31540007BC0000000000000000000000000000000006F -S31540007BD0000000000000000000000000000000005F -S31540007BE0000000000000000000000000000000004F -S31540007BF0000000000000000000000000000000003F -S31540007C00000000000000000000000000000000002E -S31540007C10000000000000000000000000000000001E -S31540007C20000000000000000000000000000000000E -S31540007C3000000000000000000000000000000000FE -S31540007C4000000000000000000000000000000000EE -S31540007C5000000000000000000000000000000000DE -S31540007C6000000000000000000000000000000000CE -S31540007C7000000000000000000000000000000000BE -S31540007C8000000000000000000000000000000000AE -S31540007C90000000000000000000000000000000009E -S31540007CA0000000000000000000000000000000008E -S31540007CB0000000000000000000000000000000007E -S31540007CC0000000000000000000000000000000006E -S31540007CD0000000000000000000000000000000005E -S31540007CE0000000000000000000000000000000004E -S31540007CF0000000000000000000000000000000003E -S31540007D00000000000000000000000000000000002D -S31540007D10000000000000000000000000000000001D -S31540007D20000000000000000000000000000000000D -S31540007D3000000000000000000000000000000000FD -S31540007D4000000000000000000000000000000000ED -S31540007D5000000000000000000000000000000000DD -S31540007D6000000000000000000000000000000000CD -S31540007D7000000000000000000000000000000000BD -S31540007D8000000000000000000000000000000000AD -S31540007D90000000000000000000000000000000009D -S31540007DA0000000000000000000000000000000008D -S31540007DB0000000000000000000000000000000007D -S31540007DC0000000000000000000000000000000006D -S31540007DD0000000000000000000000000000000005D -S31540007DE0000000000000000000000000000000004D -S31540007DF0000000000000000000000000000000003D -S31540007E00000000000000000000000000000000002C -S31540007E10000000000000000000000000000000001C -S31540007E20000000000000000000000000000000000C -S31540007E3000000000000000000000000000000000FC -S31540007E4000000000000000000000000000000000EC -S31540007E5000000000000000000000000000000000DC -S31540007E6000000000000000000000000000000000CC -S31540007E7000000000000000000000000000000000BC -S31540007E8000000000000000000000000000000000AC -S31540007E90000000000000000000000000000000009C -S31540007EA0000000000000000000000000000000008C -S31540007EB0000000000000000000000000000000007C -S31540007EC0000000000000000000000000000000006C -S31540007ED0000000000000000000000000000000005C -S31540007EE0000000000000000000000000000000004C -S31540007EF0000000000000000000000000000000003C -S31540007F00000000000000000000000000000000002B -S31540007F10000000000000000000000000000000001B -S31540007F20000000000000000000000000000000000B -S31540007F3000000000000000000000000000000000FB -S31540007F4000000000000000000000000000000000EB -S31540007F5000000000000000000000000000000000DB -S31540007F6000000000000000000000000000000000CB -S31540007F7000000000000000000000000000000000BB -S31540007F8000000000000000000000000000000000AB -S31540007F90000000000000000000000000000000009B -S31540007FA0000000000000000000000000000000008B -S31540007FB0000000000000000000000000000000007B -S31540007FC0000000000000000000000000000000006B -S31540007FD0000000000000000000000000000000005B -S31540007FE0000000000000000000000000000000004B -S31540007FF0000000000000000000000000000000003B -S315400080009DE3BF9081C7E00881E8000003000010AF -S31540008010C48000408088800112BFFFFE010000003E -S315400080209DE3BF909DE3BF909DE3BF909DE3BF90CE -S315400080309DE3BF909DE3BF9021044444A0142111C9 -S3154000804023088888A2146222250CCCCCA414A3331E -S3154000805027111111A614E04429155555A815215587 -S315400080602B199999AA1562662D1DDDDDAC15A377EE -S315400080702F222222AE15E08801100000E03FBFE02B -S31540008080E43FBFE8E83FBFF0EC3FBFF88210001E78 -S315400080908220601CC0A041E082206008C0A041E070 -S315400080A082206008C0A041E082206008C0A041E074 -S315400080B0C0A002209DE3BF909DE3BF9081E80000F1 -S315400080C081E800000100000001000000E01FBFE061 -S315400080D0E41FBFE8E81FBFF0EC1FBFF80100000037 -S315400080E00100000081E8000081E8000081E800000E -S315400080F081E8000081E8000081C7E00881E80000CF -S31540008100A7500000AA102400A8102300EC854320A5 -S31540008110EA8503202F100020AE15E150EE05C00081 -S31540008120E805C000EA05E004EC05E008AC15A0004F -S31540008130C0A58300EA250000AE05E00C2B10002008 -S31540008140AA156150EE25400081C4400081CC8000D4 -S3154000815000000000010000000000000000000000D8 -S3154000816000000000000000000000000000000000C9 -S3154000817000000000000000000000000000000000B9 -S3154000818000000000000000000000000000000000A9 -S315400081900000000001000000010000000100000096 -S315400081A00100000001000000010000000100000085 -S315400081B00100000001000000010000000100000075 -S315400081C00100000001000000010000000100000065 -S315400081D00100000001000000010000000100000055 -S315400081E00100000001000000010000000100000045 -S315400081F00100000001000000010000000100000035 -S315400082000100000001000000010000000100000024 -S315400082100100000001000000010000000100000014 -S315400082200100000001000000010000000100000004 -S3154000823001000000010000000100000001000000F4 -S3154000824001000000010000000100000001000000E4 -S3154000825001000000010000000100000001000000D4 -S3154000826001000000010000000100000001000000C4 -S3154000827001000000010000000100000001000000B4 -S3154000828001000000010000000100000001000000A4 -S315400082900100000001000000010000000100000094 -S315400082A00100000001000000010000000100000084 -S315400082B00100000001000000010000000100000074 -S315400082C00100000001000000010000000100000064 -S315400082D00100000001000000010000000100000054 -S315400082E00100000001000000010000000100000044 -S315400082F00100000001000000010000000100000034 -S315400083000100000001000000010000000100000023 -S315400083100100000001000000010000000100000013 -S315400083200100000001000000010000000100000003 -S3154000833001000000010000000100000001000000F3 -S3154000834001000000010000000100000001000000E3 -S3154000835001000000010000000100000001000000D3 -S3154000836001000000010000000100000001000000C3 -S3154000837001000000010000000100000001000000B3 -S3154000838001000000010000000100000001000000A3 -S315400083900100000001000000010000000100000093 -S315400083A00100000001000000010000000100000083 -S315400083B00100000001000000010000000100000073 -S315400083C00100000001000000010000000100000063 -S315400083D00100000001000000010000000100000053 -S315400083E00100000001000000010000000100000043 -S315400083F00100000001000000010000000100000033 -S315400084000100000001000000010000000100000022 -S315400084100100000001000000010000000100000012 -S315400084200100000001000000010000000100000002 -S3154000843001000000010000000100000001000000F2 -S3154000844001000000010000000100000001000000E2 -S3154000845001000000010000000100000001000000D2 -S3154000846001000000010000000100000001000000C2 -S3154000847001000000010000000100000001000000B2 -S3154000848001000000010000000100000001000000A2 -S315400084900100000001000000010000000100000092 -S315400084A00100000001000000010000000100000082 -S315400084B00100000001000000010000000100000072 -S315400084C00100000001000000010000000100000062 -S315400084D00100000001000000010000000100000052 -S315400084E00100000001000000010000000100000042 -S315400084F00100000001000000010000000100000032 -S315400085000100000001000000010000000100000021 -S315400085100100000001000000010000000100000011 -S315400085200100000001000000010000000100000001 -S3154000853001000000010000000100000001000000F1 -S3154000854001000000010000000100000001000000E1 -S3154000855001000000010000000100000001000000D1 -S3154000856001000000010000000100000001000000C1 -S3154000857001000000010000000100000001000000B1 -S3154000858001000000010000000100000001000000A1 -S315400085900100000001000000010000000100000091 -S315400085A00100000001000000010000000100000081 -S315400085B00100000001000000010000000100000071 -S315400085C00100000001000000010000000100000061 -S315400085D00100000001000000010000000100000051 -S315400085E00100000001000000010000000100000041 -S315400085F00100000001000000010000000100000031 -S315400086000100000001000000010000000100000020 -S315400086100100000001000000010000000100000010 -S315400086200100000001000000010000000100000000 -S3154000863001000000010000000100000001000000F0 -S3154000864001000000010000000100000001000000E0 -S3154000865001000000010000000100000001000000D0 -S3154000866001000000010000000100000001000000C0 -S3154000867001000000010000000100000001000000B0 -S3154000868001000000010000000100000001000000A0 -S315400086900100000001000000010000000100000090 -S315400086A00100000001000000010000000100000080 -S315400086B00100000001000000010000000100000070 -S315400086C00100000001000000010000000100000060 -S315400086D00100000001000000010000000100000050 -S315400086E00100000001000000010000000100000040 -S315400086F00100000001000000010000000100000030 -S31540008700010000000100000001000000010000001F -S31540008710010000000100000001000000010000000F -S3154000872001000000010000000100000001000000FF -S3154000873001000000010000000100000001000000EF -S3154000874001000000010000000100000001000000DF -S3154000875001000000010000000100000001000000CF -S3154000876001000000010000000100000001000000BF -S3154000877001000000010000000100000001000000AF -S31540008780010000000100000001000000010000009F -S31540008790010000000100000001000000010000008F -S315400087A0010000000100000001000000010000007F -S315400087B0010000000100000001000000010000006F -S315400087C0010000000100000001000000010000005F -S315400087D0010000000100000001000000010000004F -S315400087E0010000000100000001000000010000003F -S315400087F0010000000100000001000000010000002F -S31540008800010000000100000001000000010000001E -S31540008810010000000100000001000000010000000E -S3154000882001000000010000000100000001000000FE -S3154000883001000000010000000100000001000000EE -S3154000884001000000010000000100000001000000DE -S3154000885001000000010000000100000001000000CE -S3154000886001000000010000000100000001000000BE -S3154000887001000000010000000100000001000000AE -S31540008880010000000100000001000000010000009E -S31540008890010000000100000001000000010000008E -S315400088A0010000000100000001000000010000007E -S315400088B0010000000100000001000000010000006E -S315400088C0010000000100000001000000010000005E -S315400088D0010000000100000001000000010000004E -S315400088E0010000000100000001000000010000003E -S315400088F0010000000100000001000000010000002E -S31540008900010000000100000001000000010000001D -S31540008910010000000100000001000000010000000D -S3154000892001000000010000000100000001000000FD -S3154000893001000000010000000100000001000000ED -S3154000894001000000010000000100000001000000DD -S3154000895001000000010000000100000001000000CD -S3154000896001000000010000000100000001000000BD -S3154000897001000000010000000100000001000000AD -S31540008980010000000100000001000000010000009D -S31540008990010000000100000001000000010000008D -S315400089A0010000000100000001000000010000007D -S315400089B0010000000100000001000000010000006D -S315400089C0010000000100000001000000010000005D -S315400089D0010000000100000001000000010000004D -S315400089E0010000000100000001000000010000003D -S315400089F0010000000100000001000000010000002D -S31540008A00010000000100000001000000010000001C -S31540008A10010000000100000001000000010000000C -S31540008A2001000000010000000100000001000000FC -S31540008A3001000000010000000100000001000000EC -S31540008A4001000000010000000100000001000000DC -S31540008A5001000000010000000100000001000000CC -S31540008A6001000000010000000100000001000000BC -S31540008A7001000000010000000100000001000000AC -S31540008A80010000000100000001000000010000009C -S31540008A90010000000100000001000000010000008C -S31540008AA0010000000100000001000000010000007C -S31540008AB0010000000100000001000000010000006C -S31540008AC0010000000100000001000000010000005C -S31540008AD0010000000100000001000000010000004C -S31540008AE0010000000100000001000000010000003C -S31540008AF0010000000100000001000000010000002C -S31540008B00010000000100000001000000010000001B -S31540008B10010000000100000001000000010000000B -S31540008B2001000000010000000100000001000000FB -S31540008B3001000000010000000100000001000000EB -S31540008B4001000000010000000100000001000000DB -S31540008B5001000000010000000100000001000000CB -S31540008B6001000000010000000100000001000000BB -S31540008B7001000000010000000100000001000000AB -S31540008B80010000000100000001000000010000009B -S31540008B90010000000100000001000000010000008B -S31540008BA0010000000100000001000000010000007B -S31540008BB0010000000100000001000000010000006B -S31540008BC0010000000100000001000000010000005B -S31540008BD0010000000100000001000000010000004B -S31540008BE0010000000100000001000000010000003B -S31540008BF0010000000100000001000000010000002B -S31540008C00010000000100000001000000010000001A -S31540008C10010000000100000001000000010000000A -S31540008C2001000000010000000100000001000000FA -S31540008C3001000000010000000100000001000000EA -S31540008C4001000000010000000100000001000000DA -S31540008C5001000000010000000100000001000000CA -S31540008C6001000000010000000100000001000000BA -S31540008C7001000000010000000100000001000000AA -S31540008C80010000000100000001000000010000009A -S31540008C90010000000100000001000000010000008A -S31540008CA0010000000100000001000000010000007A -S31540008CB0010000000100000001000000010000006A -S31540008CC0010000000100000001000000010000005A -S31540008CD0010000000100000001000000010000004A -S31540008CE0010000000100000001000000010000003A -S31540008CF0010000000100000001000000010000002A -S31540008D000100000001000000010000000100000019 -S31540008D100100000001000000010000000100000009 -S31540008D2001000000010000000100000001000000F9 -S31540008D3001000000010000000100000001000000E9 -S31540008D4001000000010000000100000001000000D9 -S31540008D5001000000010000000100000001000000C9 -S31540008D6001000000010000000100000001000000B9 -S31540008D7001000000010000000100000001000000A9 -S31540008D800100000001000000010000000100000099 -S31540008D900100000001000000010000000100000089 -S31540008DA00100000001000000010000000100000079 -S31540008DB00100000001000000010000000100000069 -S31540008DC00100000001000000010000000100000059 -S31540008DD00100000001000000010000000100000049 -S31540008DE00100000001000000010000000100000039 -S31540008DF00100000001000000010000000100000029 -S31540008E000100000001000000010000000100000018 -S31540008E100100000001000000010000000100000008 -S31540008E2001000000010000000100000001000000F8 -S31540008E3001000000010000000100000001000000E8 -S31540008E4001000000010000000100000001000000D8 -S31540008E5001000000010000000100000001000000C8 -S31540008E6001000000010000000100000001000000B8 -S31540008E7001000000010000000100000001000000A8 -S31540008E800100000001000000010000000100000098 -S31540008E900100000001000000010000000100000088 -S31540008EA00100000001000000010000000100000078 -S31540008EB00100000001000000010000000100000068 -S31540008EC00100000001000000010000000100000058 -S31540008ED00100000001000000010000000100000048 -S31540008EE00100000001000000010000000100000038 -S31540008EF00100000001000000010000000100000028 -S31540008F000100000001000000010000000100000017 -S31540008F100100000001000000010000000100000007 -S31540008F2001000000010000000100000001000000F7 -S31540008F3001000000010000000100000001000000E7 -S31540008F4001000000010000000100000001000000D7 -S31540008F5001000000010000000100000001000000C7 -S31540008F6001000000010000000100000001000000B7 -S31540008F7001000000010000000100000001000000A7 -S31540008F800100000001000000010000000100000097 -S31540008F900100000001000000010000000100000087 -S31540008FA00100000001000000010000000100000077 -S31540008FB00100000001000000010000000100000067 -S31540008FC00100000001000000010000000100000057 -S31540008FD00100000001000000010000000100000047 -S31540008FE00100000001000000010000000100000037 -S31540008FF00100000001000000010000000100000027 -S315400090000100000001000000010000000100000016 -S315400090100100000001000000010000000100000006 -S3154000902001000000010000000100000001000000F6 -S3154000903001000000010000000100000001000000E6 -S3154000904001000000010000000100000001000000D6 -S3154000905001000000010000000100000001000000C6 -S3154000906001000000010000000100000001000000B6 -S3154000907001000000010000000100000001000000A6 -S315400090800100000001000000010000000100000096 -S315400090900100000001000000010000000100000086 -S315400090A00100000001000000010000000100000076 -S315400090B00100000001000000010000000100000066 -S315400090C00100000001000000010000000100000056 -S315400090D00100000001000000010000000100000046 -S315400090E00100000001000000010000000100000036 -S315400090F00100000001000000010000000100000026 -S315400091000100000001000000010000000100000015 -S315400091100100000001000000010000000100000005 -S3154000912001000000010000000100000001000000F5 -S3154000913001000000010000000100000001000000E5 -S3154000914001000000010000000100000001000000D5 -S3154000915001000000010000000100000001000000C5 -S3154000916001000000010000000100000001000000B5 -S3154000917001000000010000000100000001000000A5 -S315400091800100000001000000010000000100000095 -S315400091900100000001000000010000000100000085 -S315400091A00100000001000000010000000100000075 -S315400091B00100000001000000010000000100000065 -S315400091C00100000001000000010000000100000055 -S315400091D00100000001000000010000000100000045 -S315400091E00100000001000000010000000100000035 -S315400091F00100000001000000010000000100000025 -S315400092000100000001000000010000000100000014 -S315400092100100000001000000010000000100000004 -S3154000922001000000010000000100000001000000F4 -S3154000923001000000010000000100000001000000E4 -S3154000924001000000010000000100000001000000D4 -S3154000925001000000010000000100000001000000C4 -S3154000926001000000010000000100000001000000B4 -S3154000927001000000010000000100000001000000A4 -S315400092800100000001000000010000000100000094 -S315400092900100000001000000010000000100000084 -S315400092A00100000001000000010000000100000074 -S315400092B00100000001000000010000000100000064 -S315400092C00100000001000000010000000100000054 -S315400092D00100000001000000010000000100000044 -S315400092E00100000001000000010000000100000034 -S315400092F00100000001000000010000000100000024 -S315400093000100000001000000010000000100000013 -S315400093100100000001000000010000000100000003 -S3154000932001000000010000000100000001000000F3 -S3154000933001000000010000000100000001000000E3 -S3154000934001000000010000000100000001000000D3 -S3154000935001000000010000000100000001000000C3 -S3154000936001000000010000000100000001000000B3 -S3154000937001000000010000000100000001000000A3 -S315400093800100000001000000010000000100000093 -S315400093900100000001000000010000000100000083 -S315400093A00100000001000000010000000100000073 -S315400093B00100000001000000010000000100000063 -S315400093C00100000001000000010000000100000053 -S315400093D00100000001000000010000000100000043 -S315400093E00100000001000000010000000100000033 -S315400093F00100000001000000010000000100000023 -S315400094000100000001000000010000000100000012 -S315400094100100000001000000010000000100000002 -S3154000942001000000010000000100000001000000F2 -S3154000943001000000010000000100000001000000E2 -S3154000944001000000010000000100000001000000D2 -S3154000945001000000010000000100000001000000C2 -S3154000946001000000010000000100000001000000B2 -S3154000947001000000010000000100000001000000A2 -S315400094800100000001000000010000000100000092 -S315400094900100000001000000010000000100000082 -S315400094A00100000001000000010000000100000072 -S315400094B00100000001000000010000000100000062 -S315400094C00100000001000000010000000100000052 -S315400094D00100000001000000010000000100000042 -S315400094E00100000001000000010000000100000032 -S315400094F00100000001000000010000000100000022 -S315400095000100000001000000010000000100000011 -S315400095100100000001000000010000000100000001 -S3154000952001000000010000000100000001000000F1 -S3154000953001000000010000000100000001000000E1 -S3154000954001000000010000000100000001000000D1 -S3154000955001000000010000000100000001000000C1 -S3154000956001000000010000000100000001000000B1 -S3154000957001000000010000000100000001000000A1 -S315400095800100000001000000010000000100000091 -S315400095900100000001000000010000000100000081 -S315400095A00100000001000000010000000100000071 -S315400095B00100000001000000010000000100000061 -S315400095C00100000001000000010000000100000051 -S315400095D00100000001000000010000000100000041 -S315400095E00100000001000000010000000100000031 -S315400095F00100000001000000010000000100000021 -S315400096000100000001000000010000000100000010 -S315400096100100000001000000010000000100000000 -S3154000962001000000010000000100000001000000F0 -S3154000963001000000010000000100000001000000E0 -S3154000964001000000010000000100000001000000D0 -S3154000965001000000010000000100000001000000C0 -S3154000966001000000010000000100000001000000B0 -S3154000967001000000010000000100000001000000A0 -S315400096800100000001000000010000000100000090 -S315400096900100000001000000010000000100000080 -S315400096A00100000001000000010000000100000070 -S315400096B00100000001000000010000000100000060 -S315400096C00100000001000000010000000100000050 -S315400096D00100000001000000010000000100000040 -S315400096E00100000001000000010000000100000030 -S315400096F00100000001000000010000000100000020 -S31540009700010000000100000001000000010000000F -S3154000971001000000010000000100000001000000FF -S3154000972001000000010000000100000001000000EF -S3154000973001000000010000000100000001000000DF -S3154000974001000000010000000100000001000000CF -S3154000975001000000010000000100000001000000BF -S3154000976001000000010000000100000001000000AF -S31540009770010000000100000001000000010000009F -S31540009780010000000100000001000000010000008F -S31540009790010000000100000001000000010000007F -S315400097A0010000000100000001000000010000006F -S315400097B0010000000100000001000000010000005F -S315400097C0010000000100000001000000010000004F -S315400097D0010000000100000001000000010000003F -S315400097E0010000000100000001000000010000002F -S315400097F0010000000100000001000000010000001F -S31540009800010000000100000001000000010000000E -S3154000981001000000010000000100000001000000FE -S3154000982001000000010000000100000001000000EE -S3154000983001000000010000000100000001000000DE -S3154000984001000000010000000100000001000000CE -S3154000985001000000010000000100000001000000BE -S3154000986001000000010000000100000001000000AE -S31540009870010000000100000001000000010000009E -S31540009880010000000100000001000000010000008E -S31540009890010000000100000001000000010000007E -S315400098A0010000000100000001000000010000006E -S315400098B0010000000100000001000000010000005E -S315400098C0010000000100000001000000010000004E -S315400098D0010000000100000001000000010000003E -S315400098E0010000000100000001000000010000002E -S315400098F0010000000100000001000000010000001E -S31540009900010000000100000001000000010000000D -S3154000991001000000010000000100000001000000FD -S3154000992001000000010000000100000001000000ED -S3154000993001000000010000000100000001000000DD -S3154000994001000000010000000100000001000000CD -S3154000995001000000010000000100000001000000BD -S3154000996001000000010000000100000001000000AD -S31540009970010000000100000001000000010000009D -S31540009980010000000100000001000000010000008D -S31540009990010000000100000001000000010000007D -S315400099A0010000000100000001000000010000006D -S315400099B0010000000100000001000000010000005D -S315400099C0010000000100000001000000010000004D -S315400099D0010000000100000001000000010000003D -S315400099E0010000000100000001000000010000002D -S315400099F0010000000100000001000000010000001D -S31540009A00010000000100000001000000010000000C -S31540009A1001000000010000000100000001000000FC -S31540009A2001000000010000000100000001000000EC -S31540009A3001000000010000000100000001000000DC -S31540009A4001000000010000000100000001000000CC -S31540009A5001000000010000000100000001000000BC -S31540009A6001000000010000000100000001000000AC -S31540009A70010000000100000001000000010000009C -S31540009A80010000000100000001000000010000008C -S31540009A90010000000100000001000000010000007C -S31540009AA0010000000100000001000000010000006C -S31540009AB0010000000100000001000000010000005C -S31540009AC0010000000100000001000000010000004C -S31540009AD0010000000100000001000000010000003C -S31540009AE0010000000100000001000000010000002C -S31540009AF0010000000100000001000000010000001C -S31540009B00010000000100000001000000010000000B -S31540009B1001000000010000000100000001000000FB -S31540009B2001000000010000000100000001000000EB -S31540009B3001000000010000000100000001000000DB -S31540009B4001000000010000000100000001000000CB -S31540009B5001000000010000000100000001000000BB -S31540009B6001000000010000000100000001000000AB -S31540009B70010000000100000001000000010000009B -S31540009B80010000000100000001000000010000008B -S31540009B90010000000100000001000000010000007B -S31540009BA0010000000100000001000000010000006B -S31540009BB0010000000100000001000000010000005B -S31540009BC0010000000100000001000000010000004B -S31540009BD0010000000100000001000000010000003B -S31540009BE0010000000100000001000000010000002B -S31540009BF0010000000100000001000000010000001B -S31540009C00010000000100000001000000010000000A -S31540009C1001000000010000000100000001000000FA -S31540009C2001000000010000000100000001000000EA -S31540009C3001000000010000000100000001000000DA -S31540009C4001000000010000000100000001000000CA -S31540009C5001000000010000000100000001000000BA -S31540009C6001000000010000000100000001000000AA -S31540009C70010000000100000001000000010000009A -S31540009C80010000000100000001000000010000008A -S31540009C90010000000100000001000000010000007A -S31540009CA0010000000100000001000000010000006A -S31540009CB0010000000100000001000000010000005A -S31540009CC0010000000100000001000000010000004A -S31540009CD0010000000100000001000000010000003A -S31540009CE0010000000100000001000000010000002A -S31540009CF0010000000100000001000000010000001A -S31540009D000100000001000000010000000100000009 -S31540009D1001000000010000000100000001000000F9 -S31540009D2001000000010000000100000001000000E9 -S31540009D3001000000010000000100000001000000D9 -S31540009D4001000000010000000100000001000000C9 -S31540009D5001000000010000000100000001000000B9 -S31540009D6001000000010000000100000001000000A9 -S31540009D700100000001000000010000000100000099 -S31540009D800100000001000000010000000100000089 -S31540009D900100000001000000010000000100000079 -S31540009DA00100000001000000010000000100000069 -S31540009DB00100000001000000010000000100000059 -S31540009DC00100000001000000010000000100000049 -S31540009DD00100000001000000010000000100000039 -S31540009DE00100000001000000010000000100000029 -S31540009DF00100000001000000010000000100000019 -S31540009E000100000001000000010000000100000008 -S31540009E1001000000010000000100000001000000F8 -S31540009E2001000000010000000100000001000000E8 -S31540009E3001000000010000000100000001000000D8 -S31540009E4001000000010000000100000001000000C8 -S31540009E5001000000010000000100000001000000B8 -S31540009E6001000000010000000100000001000000A8 -S31540009E700100000001000000010000000100000098 -S31540009E800100000001000000010000000100000088 -S31540009E900100000001000000010000000100000078 -S31540009EA00100000001000000010000000100000068 -S31540009EB00100000001000000010000000100000058 -S31540009EC00100000001000000010000000100000048 -S31540009ED00100000001000000010000000100000038 -S31540009EE00100000001000000010000000100000028 -S31540009EF00100000001000000010000000100000018 -S31540009F000100000001000000010000000100000007 -S31540009F1001000000010000000100000001000000F7 -S31540009F2001000000010000000100000001000000E7 -S31540009F3001000000010000000100000001000000D7 -S31540009F4001000000010000000100000001000000C7 -S31540009F5001000000010000000100000001000000B7 -S31540009F6001000000010000000100000001000000A7 -S31540009F700100000001000000010000000100000097 -S31540009F800100000001000000010000000100000087 -S31540009F900100000001000000010000000100000077 -S31540009FA00100000001000000010000000100000067 -S31540009FB00100000001000000010000000100000057 -S31540009FC00100000001000000010000000100000047 -S31540009FD00100000001000000010000000100000037 -S31540009FE00100000001000000010000000100000027 -S31540009FF00100000001000000010000000100000017 -S3154000A0000100000001000000010000000100000006 -S3154000A01001000000010000000100000001000000F6 -S3154000A02001000000010000000100000001000000E6 -S3154000A03001000000010000000100000001000000D6 -S3154000A04001000000010000000100000001000000C6 -S3154000A05001000000010000000100000001000000B6 -S3154000A06001000000010000000100000001000000A6 -S3154000A0700100000001000000010000000100000096 -S3154000A0800100000001000000010000000100000086 -S3154000A0900100000001000000010000000100000076 -S3154000A0A00100000001000000010000000100000066 -S3154000A0B00100000001000000010000000100000056 -S3154000A0C00100000001000000010000000100000046 -S3154000A0D00100000001000000010000000100000036 -S3154000A0E00100000001000000010000000100000026 -S3154000A0F00100000001000000010000000100000016 -S3154000A1000100000001000000010000000100000005 -S3154000A11001000000010000000100000001000000F5 -S3154000A12001000000010000000100000001000000E5 -S3154000A13001000000010000000100000001000000D5 -S3154000A14001000000010000000100000001000000C5 -S3154000A15001000000010000000100000001000000B5 -S3154000A16001000000010000000100000001000000A5 -S3154000A1700100000001000000010000000100000095 -S3154000A1800100000001000000010000000100000085 -S3154000A1900100000001000000010000000100000075 -S3154000A1A00100000001000000010000000100000065 -S3154000A1B00100000001000000010000000100000055 -S3154000A1C00100000001000000010000000100000045 -S3154000A1D00100000001000000010000000100000035 -S3154000A1E00100000001000000010000000100000025 -S3154000A1F00100000001000000010000000100000015 -S3154000A2000100000001000000010000000100000004 -S3154000A21001000000010000000100000001000000F4 -S3154000A22001000000010000000100000001000000E4 -S3154000A23001000000010000000100000001000000D4 -S3154000A24001000000010000000100000001000000C4 -S3154000A25001000000010000000100000001000000B4 -S3154000A26001000000010000000100000001000000A4 -S3154000A2700100000001000000010000000100000094 -S3154000A2800100000001000000010000000100000084 -S3154000A2900100000001000000010000000100000074 -S3154000A2A00100000001000000010000000100000064 -S3154000A2B00100000001000000010000000100000054 -S3154000A2C00100000001000000010000000100000044 -S3154000A2D00100000001000000010000000100000034 -S3154000A2E00100000001000000010000000100000024 -S3154000A2F00100000001000000010000000100000014 -S3154000A3000100000001000000010000000100000003 -S3154000A31001000000010000000100000001000000F3 -S3154000A32001000000010000000100000001000000E3 -S3154000A33001000000010000000100000001000000D3 -S3154000A34001000000010000000100000001000000C3 -S3154000A35001000000010000000100000001000000B3 -S3154000A36001000000010000000100000001000000A3 -S3154000A3700100000001000000010000000100000093 -S3154000A3800100000001000000010000000100000083 -S3154000A3900100000001000000010000000100000073 -S3154000A3A00100000001000000010000000100000063 -S3154000A3B00100000001000000010000000100000053 -S3154000A3C00100000001000000010000000100000043 -S3154000A3D00100000001000000010000000100000033 -S3154000A3E00100000001000000010000000100000023 -S3154000A3F00100000001000000010000000100000013 -S3154000A4000100000001000000010000000100000002 -S3154000A41001000000010000000100000001000000F2 -S3154000A42001000000010000000100000001000000E2 -S3154000A43001000000010000000100000001000000D2 -S3154000A44001000000010000000100000001000000C2 -S3154000A45001000000010000000100000001000000B2 -S3154000A46001000000010000000100000001000000A2 -S3154000A4700100000001000000010000000100000092 -S3154000A4800100000001000000010000000100000082 -S3154000A4900100000001000000010000000100000072 -S3154000A4A00100000001000000010000000100000062 -S3154000A4B00100000001000000010000000100000052 -S3154000A4C00100000001000000010000000100000042 -S3154000A4D00100000001000000010000000100000032 -S3154000A4E00100000001000000010000000100000022 -S3154000A4F00100000001000000010000000100000012 -S3154000A5000100000001000000010000000100000001 -S3154000A51001000000010000000100000001000000F1 -S3154000A52001000000010000000100000001000000E1 -S3154000A53001000000010000000100000001000000D1 -S3154000A54001000000010000000100000001000000C1 -S3154000A55001000000010000000100000001000000B1 -S3154000A56001000000010000000100000001000000A1 -S3154000A5700100000001000000010000000100000091 -S3154000A5800100000001000000010000000100000081 -S3154000A5900100000001000000010000000100000071 -S3154000A5A00100000001000000010000000100000061 -S3154000A5B00100000001000000010000000100000051 -S3154000A5C00100000001000000010000000100000041 -S3154000A5D00100000001000000010000000100000031 -S3154000A5E00100000001000000010000000100000021 -S3154000A5F00100000001000000010000000100000011 -S3154000A6000100000001000000010000000100000000 -S3154000A61001000000010000000100000001000000F0 -S3154000A62001000000010000000100000001000000E0 -S3154000A63001000000010000000100000001000000D0 -S3154000A64001000000010000000100000001000000C0 -S3154000A65001000000010000000100000001000000B0 -S3154000A66001000000010000000100000001000000A0 -S3154000A6700100000001000000010000000100000090 -S3154000A6800100000001000000010000000100000080 -S3154000A6900100000001000000010000000100000070 -S3154000A6A00100000001000000010000000100000060 -S3154000A6B00100000001000000010000000100000050 -S3154000A6C00100000001000000010000000100000040 -S3154000A6D00100000001000000010000000100000030 -S3154000A6E00100000001000000010000000100000020 -S3154000A6F00100000001000000010000000100000010 -S3154000A70001000000010000000100000001000000FF -S3154000A71001000000010000000100000001000000EF -S3154000A72001000000010000000100000001000000DF -S3154000A73001000000010000000100000001000000CF -S3154000A74001000000010000000100000001000000BF -S3154000A75001000000010000000100000001000000AF -S3154000A760010000000100000001000000010000009F -S3154000A770010000000100000001000000010000008F -S3154000A780010000000100000001000000010000007F -S3154000A790010000000100000001000000010000006F -S3154000A7A0010000000100000001000000010000005F -S3154000A7B0010000000100000001000000010000004F -S3154000A7C0010000000100000001000000010000003F -S3154000A7D0010000000100000001000000010000002F -S3154000A7E0010000000100000001000000010000001F -S3154000A7F0010000000100000001000000010000000F -S3154000A80001000000010000000100000001000000FE -S3154000A81001000000010000000100000001000000EE -S3154000A82001000000010000000100000001000000DE -S3154000A83001000000010000000100000001000000CE -S3154000A84001000000010000000100000001000000BE -S3154000A85001000000010000000100000001000000AE -S3154000A860010000000100000001000000010000009E -S3154000A870010000000100000001000000010000008E -S3154000A880010000000100000001000000010000007E -S3154000A890010000000100000001000000010000006E -S3154000A8A0010000000100000001000000010000005E -S3154000A8B0010000000100000001000000010000004E -S3154000A8C0010000000100000001000000010000003E -S3154000A8D0010000000100000001000000010000002E -S3154000A8E0010000000100000001000000010000001E -S3154000A8F0010000000100000001000000010000000E -S3154000A90001000000010000000100000001000000FD -S3154000A91001000000010000000100000001000000ED -S3154000A92001000000010000000100000001000000DD -S3154000A93001000000010000000100000001000000CD -S3154000A94001000000010000000100000001000000BD -S3154000A95001000000010000000100000001000000AD -S3154000A960010000000100000001000000010000009D -S3154000A970010000000100000001000000010000008D -S3154000A980010000000100000001000000010000007D -S3154000A990010000000100000001000000010000006D -S3154000A9A0010000000100000001000000010000005D -S3154000A9B0010000000100000001000000010000004D -S3154000A9C0010000000100000001000000010000003D -S3154000A9D0010000000100000001000000010000002D -S3154000A9E0010000000100000001000000010000001D -S3154000A9F0010000000100000001000000010000000D -S3154000AA0001000000010000000100000001000000FC -S3154000AA1001000000010000000100000001000000EC -S3154000AA2001000000010000000100000001000000DC -S3154000AA3001000000010000000100000001000000CC -S3154000AA4001000000010000000100000001000000BC -S3154000AA5001000000010000000100000001000000AC -S3154000AA60010000000100000001000000010000009C -S3154000AA70010000000100000001000000010000008C -S3154000AA80010000000100000001000000010000007C -S3154000AA90010000000100000001000000010000006C -S3154000AAA0010000000100000001000000010000005C -S3154000AAB0010000000100000001000000010000004C -S3154000AAC0010000000100000001000000010000003C -S3154000AAD0010000000100000001000000010000002C -S3154000AAE0010000000100000001000000010000001C -S3154000AAF0010000000100000001000000010000000C -S3154000AB0001000000010000000100000001000000FB -S3154000AB1001000000010000000100000001000000EB -S3154000AB2001000000010000000100000001000000DB -S3154000AB3001000000010000000100000001000000CB -S3154000AB4001000000010000000100000001000000BB -S3154000AB5001000000010000000100000001000000AB -S3154000AB60010000000100000001000000010000009B -S3154000AB70010000000100000001000000010000008B -S3154000AB80010000000100000001000000010000007B -S3154000AB90010000000100000001000000010000006B -S3154000ABA0010000000100000001000000010000005B -S3154000ABB0010000000100000001000000010000004B -S3154000ABC0010000000100000001000000010000003B -S3154000ABD0010000000100000001000000010000002B -S3154000ABE0010000000100000001000000010000001B -S3154000ABF0010000000100000001000000010000000B -S3154000AC0001000000010000000100000001000000FA -S3154000AC1001000000010000000100000001000000EA -S3154000AC2001000000010000000100000001000000DA -S3154000AC3001000000010000000100000001000000CA -S3154000AC4001000000010000000100000001000000BA -S3154000AC5001000000010000000100000001000000AA -S3154000AC60010000000100000001000000010000009A -S3154000AC70010000000100000001000000010000008A -S3154000AC80010000000100000001000000010000007A -S3154000AC90010000000100000001000000010000006A -S3154000ACA0010000000100000001000000010000005A -S3154000ACB0010000000100000001000000010000004A -S3154000ACC0010000000100000001000000010000003A -S3154000ACD0010000000100000001000000010000002A -S3154000ACE0010000000100000001000000010000001A -S3154000ACF0010000000100000001000000010000000A -S3154000AD0001000000010000000100000001000000F9 -S3154000AD1001000000010000000100000001000000E9 -S3154000AD2001000000010000000100000001000000D9 -S3154000AD3001000000010000000100000001000000C9 -S3154000AD4001000000010000000100000001000000B9 -S3154000AD5001000000010000000100000001000000A9 -S3154000AD600100000001000000010000000100000099 -S3154000AD700100000001000000010000000100000089 -S3154000AD800100000001000000010000000100000079 -S3154000AD900100000001000000010000000100000069 -S3154000ADA00100000001000000010000000100000059 -S3154000ADB00100000001000000010000000100000049 -S3154000ADC00100000001000000010000000100000039 -S3154000ADD00100000001000000010000000100000029 -S3154000ADE00100000001000000010000000100000019 -S3154000ADF00100000001000000010000000100000009 -S3154000AE0001000000010000000100000001000000F8 -S3154000AE1001000000010000000100000001000000E8 -S3154000AE2001000000010000000100000001000000D8 -S3154000AE3001000000010000000100000001000000C8 -S3154000AE4001000000010000000100000001000000B8 -S3154000AE5001000000010000000100000001000000A8 -S3154000AE600100000001000000010000000100000098 -S3154000AE700100000001000000010000000100000088 -S3154000AE800100000001000000010000000100000078 -S3154000AE900100000001000000010000000100000068 -S3154000AEA00100000001000000010000000100000058 -S3154000AEB00100000001000000010000000100000048 -S3154000AEC00100000001000000010000000100000038 -S3154000AED00100000001000000010000000100000028 -S3154000AEE00100000001000000010000000100000018 -S3154000AEF00100000001000000010000000100000008 -S3154000AF0001000000010000000100000001000000F7 -S3154000AF1001000000010000000100000001000000E7 -S3154000AF2001000000010000000100000001000000D7 -S3154000AF3001000000010000000100000001000000C7 -S3154000AF4001000000010000000100000001000000B7 -S3154000AF5001000000010000000100000001000000A7 -S3154000AF600100000001000000010000000100000097 -S3154000AF700100000001000000010000000100000087 -S3154000AF800100000001000000010000000100000077 -S3154000AF900100000001000000010000000100000067 -S3154000AFA00100000001000000010000000100000057 -S3154000AFB00100000001000000010000000100000047 -S3154000AFC00100000001000000010000000100000037 -S3154000AFD00100000001000000010000000100000027 -S3154000AFE00100000001000000010000000100000017 -S3154000AFF00100000001000000010000000100000007 -S3154000B00001000000010000000100000001000000F6 -S3154000B01001000000010000000100000001000000E6 -S3154000B02001000000010000000100000001000000D6 -S3154000B03001000000010000000100000001000000C6 -S3154000B04001000000010000000100000001000000B6 -S3154000B05001000000010000000100000001000000A6 -S3154000B0600100000001000000010000000100000096 -S3154000B0700100000001000000010000000100000086 -S3154000B0800100000001000000010000000100000076 -S3154000B0900100000001000000010000000100000066 -S3154000B0A00100000001000000010000000100000056 -S3154000B0B00100000001000000010000000100000046 -S3154000B0C00100000001000000010000000100000036 -S3154000B0D00100000001000000010000000100000026 -S3154000B0E00100000001000000010000000100000016 -S3154000B0F00100000001000000010000000100000006 -S3154000B10001000000010000000100000001000000F5 -S3154000B11001000000010000000100000001000000E5 -S3154000B12001000000010000000100000001000000D5 -S3154000B13001000000010000000100000001000000C5 -S3154000B14001000000010000000100000001000000B5 -S3154000B15001000000010000000100000001000000A5 -S3154000B1600100000001000000010000000100000095 -S3154000B1700100000001000000010000000100000085 -S3154000B1800100000001000000010000000100000075 -S3154000B1900100000001000000010000000100000065 -S3154000B1A00100000001000000010000000100000055 -S3154000B1B00100000001000000010000000100000045 -S3154000B1C00100000001000000010000000100000035 -S3154000B1D00100000001000000010000000100000025 -S3154000B1E00100000001000000010000000100000015 -S3154000B1F00100000001000000010000000100000005 -S3154000B20001000000010000000100000001000000F4 -S3154000B21001000000010000000100000001000000E4 -S3154000B22001000000010000000100000001000000D4 -S3154000B23001000000010000000100000001000000C4 -S3154000B24001000000010000000100000001000000B4 -S3154000B25001000000010000000100000001000000A4 -S3154000B2600100000001000000010000000100000094 -S3154000B2700100000001000000010000000100000084 -S3154000B2800100000001000000010000000100000074 -S3154000B2900100000001000000010000000100000064 -S3154000B2A00100000001000000010000000100000054 -S3154000B2B00100000001000000010000000100000044 -S3154000B2C00100000001000000010000000100000034 -S3154000B2D00100000001000000010000000100000024 -S3154000B2E00100000001000000010000000100000014 -S3154000B2F00100000001000000010000000100000004 -S3154000B30001000000010000000100000001000000F3 -S3154000B31001000000010000000100000001000000E3 -S3154000B32001000000010000000100000001000000D3 -S3154000B33001000000010000000100000001000000C3 -S3154000B34001000000010000000100000001000000B3 -S3154000B35001000000010000000100000001000000A3 -S3154000B3600100000001000000010000000100000093 -S3154000B3700100000001000000010000000100000083 -S3154000B3800100000001000000010000000100000073 -S3154000B3900100000001000000010000000100000063 -S3154000B3A00100000001000000010000000100000053 -S3154000B3B00100000001000000010000000100000043 -S3154000B3C00100000001000000010000000100000033 -S3154000B3D00100000001000000010000000100000023 -S3154000B3E00100000001000000010000000100000013 -S3154000B3F00100000001000000010000000100000003 -S3154000B40001000000010000000100000001000000F2 -S3154000B41001000000010000000100000001000000E2 -S3154000B42001000000010000000100000001000000D2 -S3154000B43001000000010000000100000001000000C2 -S3154000B44001000000010000000100000001000000B2 -S3154000B45001000000010000000100000001000000A2 -S3154000B4600100000001000000010000000100000092 -S3154000B4700100000001000000010000000100000082 -S3154000B4800100000001000000010000000100000072 -S3154000B4900100000001000000010000000100000062 -S3154000B4A00100000001000000010000000100000052 -S3154000B4B00100000001000000010000000100000042 -S3154000B4C00100000001000000010000000100000032 -S3154000B4D00100000001000000010000000100000022 -S3154000B4E00100000001000000010000000100000012 -S3154000B4F00100000001000000010000000100000002 -S3154000B50001000000010000000100000001000000F1 -S3154000B51001000000010000000100000001000000E1 -S3154000B52001000000010000000100000001000000D1 -S3154000B53001000000010000000100000001000000C1 -S3154000B54001000000010000000100000001000000B1 -S3154000B55001000000010000000100000001000000A1 -S3154000B5600100000001000000010000000100000091 -S3154000B5700100000001000000010000000100000081 -S3154000B5800100000001000000010000000100000071 -S3154000B5900100000001000000010000000100000061 -S3154000B5A00100000001000000010000000100000051 -S3154000B5B00100000001000000010000000100000041 -S3154000B5C00100000001000000010000000100000031 -S3154000B5D00100000001000000010000000100000021 -S3154000B5E00100000001000000010000000100000011 -S3154000B5F00100000001000000010000000100000001 -S3154000B60001000000010000000100000001000000F0 -S3154000B61001000000010000000100000001000000E0 -S3154000B62001000000010000000100000001000000D0 -S3154000B63001000000010000000100000001000000C0 -S3154000B64001000000010000000100000001000000B0 -S3154000B65001000000010000000100000001000000A0 -S3154000B6600100000001000000010000000100000090 -S3154000B6700100000001000000010000000100000080 -S3154000B6800100000001000000010000000100000070 -S3154000B6900100000001000000010000000100000060 -S3154000B6A00100000001000000010000000100000050 -S3154000B6B00100000001000000010000000100000040 -S3154000B6C00100000001000000010000000100000030 -S3154000B6D00100000001000000010000000100000020 -S3154000B6E00100000001000000010000000100000010 -S3154000B6F00100000001000000010000000100000000 -S3154000B70001000000010000000100000001000000EF -S3154000B71001000000010000000100000001000000DF -S3154000B72001000000010000000100000001000000CF -S3154000B73001000000010000000100000001000000BF -S3154000B74001000000010000000100000001000000AF -S3154000B750010000000100000001000000010000009F -S3154000B760010000000100000001000000010000008F -S3154000B770010000000100000001000000010000007F -S3154000B780010000000100000001000000010000006F -S3154000B790010000000100000001000000010000005F -S3154000B7A0010000000100000001000000010000004F -S3154000B7B0010000000100000001000000010000003F -S3154000B7C0010000000100000001000000010000002F -S3154000B7D0010000000100000001000000010000001F -S3154000B7E0010000000100000001000000010000000F -S3154000B7F001000000010000000100000001000000FF -S3154000B80001000000010000000100000001000000EE -S3154000B81001000000010000000100000001000000DE -S3154000B82001000000010000000100000001000000CE -S3154000B83001000000010000000100000001000000BE -S3154000B84001000000010000000100000001000000AE -S3154000B850010000000100000001000000010000009E -S3154000B860010000000100000001000000010000008E -S3154000B870010000000100000001000000010000007E -S3154000B880010000000100000001000000010000006E -S3154000B890010000000100000001000000010000005E -S3154000B8A0010000000100000001000000010000004E -S3154000B8B0010000000100000001000000010000003E -S3154000B8C0010000000100000001000000010000002E -S3154000B8D0010000000100000001000000010000001E -S3154000B8E0010000000100000001000000010000000E -S3154000B8F001000000010000000100000001000000FE -S3154000B90001000000010000000100000001000000ED -S3154000B91001000000010000000100000001000000DD -S3154000B92001000000010000000100000001000000CD -S3154000B93001000000010000000100000001000000BD -S3154000B94001000000010000000100000001000000AD -S3154000B950010000000100000001000000010000009D -S3154000B960010000000100000001000000010000008D -S3154000B970010000000100000001000000010000007D -S3154000B980010000000100000001000000010000006D -S3154000B990010000000100000001000000010000005D -S3154000B9A0010000000100000001000000010000004D -S3154000B9B0010000000100000001000000010000003D -S3154000B9C0010000000100000001000000010000002D -S3154000B9D0010000000100000001000000010000001D -S3154000B9E0010000000100000001000000010000000D -S3154000B9F001000000010000000100000001000000FD -S3154000BA0001000000010000000100000001000000EC -S3154000BA1001000000010000000100000001000000DC -S3154000BA2001000000010000000100000001000000CC -S3154000BA3001000000010000000100000001000000BC -S3154000BA4001000000010000000100000001000000AC -S3154000BA50010000000100000001000000010000009C -S3154000BA60010000000100000001000000010000008C -S3154000BA70010000000100000001000000010000007C -S3154000BA80010000000100000001000000010000006C -S3154000BA90010000000100000001000000010000005C -S3154000BAA0010000000100000001000000010000004C -S3154000BAB0010000000100000001000000010000003C -S3154000BAC0010000000100000001000000010000002C -S3154000BAD0010000000100000001000000010000001C -S3154000BAE0010000000100000001000000010000000C -S3154000BAF001000000010000000100000001000000FC -S3154000BB0001000000010000000100000001000000EB -S3154000BB1001000000010000000100000001000000DB -S3154000BB2001000000010000000100000001000000CB -S3154000BB3001000000010000000100000001000000BB -S3154000BB4001000000010000000100000001000000AB -S3154000BB50010000000100000001000000010000009B -S3154000BB60010000000100000001000000010000008B -S3154000BB70010000000100000001000000010000007B -S3154000BB80010000000100000001000000010000006B -S3154000BB90010000000100000001000000010000005B -S3154000BBA0010000000100000001000000010000004B -S3154000BBB0010000000100000001000000010000003B -S3154000BBC0010000000100000001000000010000002B -S3154000BBD0010000000100000001000000010000001B -S3154000BBE0010000000100000001000000010000000B -S3154000BBF001000000010000000100000001000000FB -S3154000BC0001000000010000000100000001000000EA -S3154000BC1001000000010000000100000001000000DA -S3154000BC2001000000010000000100000001000000CA -S3154000BC3001000000010000000100000001000000BA -S3154000BC4001000000010000000100000001000000AA -S3154000BC50010000000100000001000000010000009A -S3154000BC60010000000100000001000000010000008A -S3154000BC70010000000100000001000000010000007A -S3154000BC80010000000100000001000000010000006A -S3154000BC90010000000100000001000000010000005A -S3154000BCA0010000000100000001000000010000004A -S3154000BCB0010000000100000001000000010000003A -S3154000BCC0010000000100000001000000010000002A -S3154000BCD0010000000100000001000000010000001A -S3154000BCE0010000000100000001000000010000000A -S3154000BCF001000000010000000100000001000000FA -S3154000BD0001000000010000000100000001000000E9 -S3154000BD1001000000010000000100000001000000D9 -S3154000BD2001000000010000000100000001000000C9 -S3154000BD3001000000010000000100000001000000B9 -S3154000BD4001000000010000000100000001000000A9 -S3154000BD500100000001000000010000000100000099 -S3154000BD600100000001000000010000000100000089 -S3154000BD700100000001000000010000000100000079 -S3154000BD800100000001000000010000000100000069 -S3154000BD900100000001000000010000000100000059 -S3154000BDA00100000001000000010000000100000049 -S3154000BDB00100000001000000010000000100000039 -S3154000BDC00100000001000000010000000100000029 -S3154000BDD00100000001000000010000000100000019 -S3154000BDE00100000001000000010000000100000009 -S3154000BDF001000000010000000100000001000000F9 -S3154000BE0001000000010000000100000001000000E8 -S3154000BE1001000000010000000100000001000000D8 -S3154000BE2001000000010000000100000001000000C8 -S3154000BE3001000000010000000100000001000000B8 -S3154000BE4001000000010000000100000001000000A8 -S3154000BE500100000001000000010000000100000098 -S3154000BE600100000001000000010000000100000088 -S3154000BE700100000001000000010000000100000078 -S3154000BE800100000001000000010000000100000068 -S3154000BE900100000001000000010000000100000058 -S3154000BEA00100000001000000010000000100000048 -S3154000BEB00100000001000000010000000100000038 -S3154000BEC00100000001000000010000000100000028 -S3154000BED00100000001000000010000000100000018 -S3154000BEE00100000001000000010000000100000008 -S3154000BEF001000000010000000100000001000000F8 -S3154000BF0001000000010000000100000001000000E7 -S3154000BF1001000000010000000100000001000000D7 -S3154000BF2001000000010000000100000001000000C7 -S3154000BF3001000000010000000100000001000000B7 -S3154000BF4001000000010000000100000001000000A7 -S3154000BF500100000001000000010000000100000097 -S3154000BF600100000001000000010000000100000087 -S3154000BF700100000001000000010000000100000077 -S3154000BF800100000001000000010000000100000067 -S3154000BF900100000001000000010000000100000057 -S3154000BFA00100000001000000010000000100000047 -S3154000BFB00100000001000000010000000100000037 -S3154000BFC00100000001000000010000000100000027 -S3154000BFD00100000001000000010000000100000017 -S3154000BFE00100000001000000010000000100000007 -S3154000BFF001000000010000000100000001000000F7 -S3154000C00001000000010000000100000001000000E6 -S3154000C01001000000010000000100000001000000D6 -S3154000C02001000000010000000100000001000000C6 -S3154000C03001000000010000000100000001000000B6 -S3154000C04001000000010000000100000001000000A6 -S3154000C0500100000001000000010000000100000096 -S3154000C0600100000001000000010000000100000086 -S3154000C0700100000001000000010000000100000076 -S3154000C0800100000001000000010000000100000066 -S3154000C0900100000001000000010000000100000056 -S3154000C0A00100000001000000010000000100000046 -S3154000C0B00100000001000000010000000100000036 -S3154000C0C00100000001000000010000000100000026 -S3154000C0D00100000001000000010000000100000016 -S3154000C0E00100000001000000010000000100000006 -S3154000C0F001000000010000000100000001000000F6 -S3154000C10001000000010000000100000001000000E5 -S3154000C11001000000010000000100000001000000D5 -S3154000C12001000000010000000100000001000000C5 -S3154000C13001000000010000000100000001000000B5 -S3154000C14001000000010000000100000001000000A5 -S3154000C1500100000001000000010000000100000095 -S3154000C1600100000001000000010000000100000085 -S3154000C1700100000001000000010000000100000075 -S3154000C1800100000001000000010000000100000065 -S3154000C1900100000001000000010000000100000055 -S3154000C1A00100000001000000010000000100000045 -S3154000C1B00100000001000000010000000100000035 -S3154000C1C00100000001000000010000000100000025 -S3154000C1D00100000001000000010000000100000015 -S3154000C1E00100000001000000010000000100000005 -S3154000C1F001000000010000000100000001000000F5 -S3154000C20001000000010000000100000001000000E4 -S3154000C21001000000010000000100000001000000D4 -S3154000C22001000000010000000100000001000000C4 -S3154000C23001000000010000000100000001000000B4 -S3154000C24001000000010000000100000001000000A4 -S3154000C2500100000001000000010000000100000094 -S3154000C2600100000001000000010000000100000084 -S3154000C2700100000001000000010000000100000074 -S3154000C2800100000001000000010000000100000064 -S3154000C2900100000001000000010000000100000054 -S3154000C2A00100000001000000010000000100000044 -S3154000C2B00100000001000000010000000100000034 -S3154000C2C00100000001000000010000000100000024 -S3154000C2D00100000001000000010000000100000014 -S3154000C2E00100000001000000010000000100000004 -S3154000C2F001000000010000000100000001000000F4 -S3154000C30001000000010000000100000001000000E3 -S3154000C31001000000010000000100000001000000D3 -S3154000C32001000000010000000100000001000000C3 -S3154000C33001000000010000000100000001000000B3 -S3154000C34001000000010000000100000001000000A3 -S3154000C3500100000001000000010000000100000093 -S3154000C3600100000001000000010000000100000083 -S3154000C3700100000001000000010000000100000073 -S3154000C3800100000001000000010000000100000063 -S3154000C3900100000001000000010000000100000053 -S3154000C3A00100000001000000010000000100000043 -S3154000C3B00100000001000000010000000100000033 -S3154000C3C00100000001000000010000000100000023 -S3154000C3D00100000001000000010000000100000013 -S3154000C3E00100000001000000010000000100000003 -S3154000C3F001000000010000000100000001000000F3 -S3154000C40001000000010000000100000001000000E2 -S3154000C41001000000010000000100000001000000D2 -S3154000C42001000000010000000100000001000000C2 -S3154000C43001000000010000000100000001000000B2 -S3154000C44001000000010000000100000001000000A2 -S3154000C4500100000001000000010000000100000092 -S3154000C4600100000001000000010000000100000082 -S3154000C4700100000001000000010000000100000072 -S3154000C4800100000001000000010000000100000062 -S3154000C4900100000001000000010000000100000052 -S3154000C4A00100000001000000010000000100000042 -S3154000C4B00100000001000000010000000100000032 -S3154000C4C00100000001000000010000000100000022 -S3154000C4D00100000001000000010000000100000012 -S3154000C4E00100000001000000010000000100000002 -S3154000C4F001000000010000000100000001000000F2 -S3154000C50001000000010000000100000001000000E1 -S3154000C51001000000010000000100000001000000D1 -S3154000C52001000000010000000100000001000000C1 -S3154000C53001000000010000000100000001000000B1 -S3154000C54001000000010000000100000001000000A1 -S3154000C5500100000001000000010000000100000091 -S3154000C5600100000001000000010000000100000081 -S3154000C5700100000001000000010000000100000071 -S3154000C5800100000001000000010000000100000061 -S3154000C5900100000001000000010000000100000051 -S3154000C5A00100000001000000010000000100000041 -S3154000C5B00100000001000000010000000100000031 -S3154000C5C00100000001000000010000000100000021 -S3154000C5D00100000001000000010000000100000011 -S3154000C5E00100000001000000010000000100000001 -S3154000C5F001000000010000000100000001000000F1 -S3154000C60001000000010000000100000001000000E0 -S3154000C61001000000010000000100000001000000D0 -S3154000C62001000000010000000100000001000000C0 -S3154000C63001000000010000000100000001000000B0 -S3154000C64001000000010000000100000001000000A0 -S3154000C6500100000001000000010000000100000090 -S3154000C6600100000001000000010000000100000080 -S3154000C6700100000001000000010000000100000070 -S3154000C6800100000001000000010000000100000060 -S3154000C6900100000001000000010000000100000050 -S3154000C6A00100000001000000010000000100000040 -S3154000C6B00100000001000000010000000100000030 -S3154000C6C00100000001000000010000000100000020 -S3154000C6D00100000001000000010000000100000010 -S3154000C6E00100000001000000010000000100000000 -S3154000C6F001000000010000000100000001000000F0 -S3154000C70001000000010000000100000001000000DF -S3154000C71001000000010000000100000001000000CF -S3154000C72001000000010000000100000001000000BF -S3154000C73001000000010000000100000001000000AF -S3154000C740010000000100000001000000010000009F -S3154000C750010000000100000001000000010000008F -S3154000C760010000000100000001000000010000007F -S3154000C770010000000100000001000000010000006F -S3154000C780010000000100000001000000010000005F -S3154000C790010000000100000001000000010000004F -S3154000C7A0010000000100000001000000010000003F -S3154000C7B0010000000100000001000000010000002F -S3154000C7C0010000000100000001000000010000001F -S3154000C7D0010000000100000001000000010000000F -S3154000C7E001000000010000000100000001000000FF -S3154000C7F001000000010000000100000001000000EF -S3154000C80001000000010000000100000001000000DE -S3154000C81001000000010000000100000001000000CE -S3154000C82001000000010000000100000001000000BE -S3154000C83001000000010000000100000001000000AE -S3154000C840010000000100000001000000010000009E -S3154000C850010000000100000001000000010000008E -S3154000C860010000000100000001000000010000007E -S3154000C870010000000100000001000000010000006E -S3154000C880010000000100000001000000010000005E -S3154000C890010000000100000001000000010000004E -S3154000C8A0010000000100000001000000010000003E -S3154000C8B0010000000100000001000000010000002E -S3154000C8C0010000000100000001000000010000001E -S3154000C8D0010000000100000001000000010000000E -S3154000C8E001000000010000000100000001000000FE -S3154000C8F001000000010000000100000001000000EE -S3154000C90001000000010000000100000001000000DD -S3154000C91001000000010000000100000001000000CD -S3154000C92001000000010000000100000001000000BD -S3154000C93001000000010000000100000001000000AD -S3154000C940010000000100000001000000010000009D -S3154000C950010000000100000001000000010000008D -S3154000C960010000000100000001000000010000007D -S3154000C970010000000100000001000000010000006D -S3154000C980010000000100000001000000010000005D -S3154000C990010000000100000001000000010000004D -S3154000C9A0010000000100000001000000010000003D -S3154000C9B0010000000100000001000000010000002D -S3154000C9C0010000000100000001000000010000001D -S3154000C9D0010000000100000001000000010000000D -S3154000C9E001000000010000000100000001000000FD -S3154000C9F001000000010000000100000001000000ED -S3154000CA0001000000010000000100000001000000DC -S3154000CA1001000000010000000100000001000000CC -S3154000CA2001000000010000000100000001000000BC -S3154000CA3001000000010000000100000001000000AC -S3154000CA40010000000100000001000000010000009C -S3154000CA50010000000100000001000000010000008C -S3154000CA60010000000100000001000000010000007C -S3154000CA70010000000100000001000000010000006C -S3154000CA80010000000100000001000000010000005C -S3154000CA90010000000100000001000000010000004C -S3154000CAA0010000000100000001000000010000003C -S3154000CAB0010000000100000001000000010000002C -S3154000CAC0010000000100000001000000010000001C -S3154000CAD0010000000100000001000000010000000C -S3154000CAE001000000010000000100000001000000FC -S3154000CAF001000000010000000100000001000000EC -S3154000CB0001000000010000000100000001000000DB -S3154000CB1001000000010000000100000001000000CB -S3154000CB2001000000010000000100000001000000BB -S3154000CB3001000000010000000100000001000000AB -S3154000CB40010000000100000001000000010000009B -S3154000CB50010000000100000001000000010000008B -S3154000CB60010000000100000001000000010000007B -S3154000CB70010000000100000001000000010000006B -S3154000CB80010000000100000001000000010000005B -S3154000CB90010000000100000001000000010000004B -S3154000CBA0010000000100000001000000010000003B -S3154000CBB0010000000100000001000000010000002B -S3154000CBC0010000000100000001000000010000001B -S3154000CBD0010000000100000001000000010000000B -S3154000CBE001000000010000000100000001000000FB -S3154000CBF001000000010000000100000001000000EB -S3154000CC0001000000010000000100000001000000DA -S3154000CC1001000000010000000100000001000000CA -S3154000CC2001000000010000000100000001000000BA -S3154000CC3001000000010000000100000001000000AA -S3154000CC40010000000100000001000000010000009A -S3154000CC50010000000100000001000000010000008A -S3154000CC60010000000100000001000000010000007A -S3154000CC70010000000100000001000000010000006A -S3154000CC80010000000100000001000000010000005A -S3154000CC90010000000100000001000000010000004A -S3154000CCA0010000000100000001000000010000003A -S3154000CCB0010000000100000001000000010000002A -S3154000CCC0010000000100000001000000010000001A -S3154000CCD0010000000100000001000000010000000A -S3154000CCE001000000010000000100000001000000FA -S3154000CCF001000000010000000100000001000000EA -S3154000CD0001000000010000000100000001000000D9 -S3154000CD1001000000010000000100000001000000C9 -S3154000CD2001000000010000000100000001000000B9 -S3154000CD3001000000010000000100000001000000A9 -S3154000CD400100000001000000010000000100000099 -S3154000CD500100000001000000010000000100000089 -S3154000CD600100000001000000010000000100000079 -S3154000CD700100000001000000010000000100000069 -S3154000CD800100000001000000010000000100000059 -S3154000CD900100000001000000010000000100000049 -S3154000CDA00100000001000000010000000100000039 -S3154000CDB00100000001000000010000000100000029 -S3154000CDC00100000001000000010000000100000019 -S3154000CDD00100000001000000010000000100000009 -S3154000CDE001000000010000000100000001000000F9 -S3154000CDF001000000010000000100000001000000E9 -S3154000CE0001000000010000000100000001000000D8 -S3154000CE1001000000010000000100000001000000C8 -S3154000CE2001000000010000000100000001000000B8 -S3154000CE3001000000010000000100000001000000A8 -S3154000CE400100000001000000010000000100000098 -S3154000CE500100000001000000010000000100000088 -S3154000CE600100000001000000010000000100000078 -S3154000CE700100000001000000010000000100000068 -S3154000CE800100000001000000010000000100000058 -S3154000CE900100000001000000010000000100000048 -S3154000CEA00100000001000000010000000100000038 -S3154000CEB00100000001000000010000000100000028 -S3154000CEC00100000001000000010000000100000018 -S3154000CED00100000001000000010000000100000008 -S3154000CEE001000000010000000100000001000000F8 -S3154000CEF001000000010000000100000001000000E8 -S3154000CF0001000000010000000100000001000000D7 -S3154000CF1001000000010000000100000001000000C7 -S3154000CF2001000000010000000100000001000000B7 -S3154000CF3001000000010000000100000001000000A7 -S3154000CF400100000001000000010000000100000097 -S3154000CF500100000001000000010000000100000087 -S3154000CF600100000001000000010000000100000077 -S3154000CF700100000001000000010000000100000067 -S3154000CF800100000001000000010000000100000057 -S3154000CF900100000001000000010000000100000047 -S3154000CFA00100000001000000010000000100000037 -S3154000CFB00100000001000000010000000100000027 -S3154000CFC00100000001000000010000000100000017 -S3154000CFD00100000001000000010000000100000007 -S3154000CFE001000000010000000100000001000000F7 -S3154000CFF001000000010000000100000001000000E7 -S3154000D00001000000010000000100000001000000D6 -S3154000D01001000000010000000100000001000000C6 -S3154000D02001000000010000000100000001000000B6 -S3154000D03001000000010000000100000001000000A6 -S3154000D0400100000001000000010000000100000096 -S3154000D0500100000001000000010000000100000086 -S3154000D0600100000001000000010000000100000076 -S3154000D0700100000001000000010000000100000066 -S3154000D0800100000001000000010000000100000056 -S3154000D0900100000001000000010000000100000046 -S3154000D0A00100000001000000010000000100000036 -S3154000D0B00100000001000000010000000100000026 -S3154000D0C00100000001000000010000000100000016 -S3154000D0D00100000001000000010000000100000006 -S3154000D0E001000000010000000100000001000000F6 -S3154000D0F001000000010000000100000001000000E6 -S3154000D10001000000010000000100000001000000D5 -S3154000D11001000000010000000100000001000000C5 -S3154000D12001000000010000000100000001000000B5 -S3154000D13001000000010000000100000001000000A5 -S3154000D1400100000001000000010000000100000095 -S3154000D1500100000001000000010000000100000085 -S3154000D1600100000001000000010000000100000075 -S3154000D1700100000001000000010000000100000065 -S3154000D1800100000001000000010000000100000055 -S3154000D1900100000001000000010000000100000045 -S3154000D1A00100000001000000010000000100000035 -S3154000D1B00100000001000000010000000100000025 -S3154000D1C00100000001000000010000000100000015 -S3154000D1D00100000001000000010000000100000005 -S3154000D1E001000000010000000100000001000000F5 -S3154000D1F001000000010000000100000001000000E5 -S3154000D20001000000010000000100000001000000D4 -S3154000D21001000000010000000100000001000000C4 -S3154000D22001000000010000000100000001000000B4 -S3154000D23001000000010000000100000001000000A4 -S3154000D2400100000001000000010000000100000094 -S3154000D2500100000001000000010000000100000084 -S3154000D2600100000001000000010000000100000074 -S3154000D2700100000001000000010000000100000064 -S3154000D2800100000001000000010000000100000054 -S3154000D2900100000001000000010000000100000044 -S3154000D2A00100000001000000010000000100000034 -S3154000D2B00100000001000000010000000100000024 -S3154000D2C00100000001000000010000000100000014 -S3154000D2D00100000001000000010000000100000004 -S3154000D2E001000000010000000100000001000000F4 -S3154000D2F001000000010000000100000001000000E4 -S3154000D30001000000010000000100000001000000D3 -S3154000D31001000000010000000100000001000000C3 -S3154000D32001000000010000000100000001000000B3 -S3154000D33001000000010000000100000001000000A3 -S3154000D3400100000001000000010000000100000093 -S3154000D3500100000001000000010000000100000083 -S3154000D3600100000001000000010000000100000073 -S3154000D3700100000001000000010000000100000063 -S3154000D3800100000001000000010000000100000053 -S3154000D3900100000001000000010000000100000043 -S3154000D3A00100000001000000010000000100000033 -S3154000D3B00100000001000000010000000100000023 -S3154000D3C00100000001000000010000000100000013 -S3154000D3D00100000001000000010000000100000003 -S3154000D3E001000000010000000100000001000000F3 -S3154000D3F001000000010000000100000001000000E3 -S3154000D40001000000010000000100000001000000D2 -S3154000D41001000000010000000100000001000000C2 -S3154000D42001000000010000000100000001000000B2 -S3154000D43001000000010000000100000001000000A2 -S3154000D4400100000001000000010000000100000092 -S3154000D4500100000001000000010000000100000082 -S3154000D4600100000001000000010000000100000072 -S3154000D4700100000001000000010000000100000062 -S3154000D4800100000001000000010000000100000052 -S3154000D4900100000001000000010000000100000042 -S3154000D4A00100000001000000010000000100000032 -S3154000D4B00100000001000000010000000100000022 -S3154000D4C00100000001000000010000000100000012 -S3154000D4D00100000001000000010000000100000002 -S3154000D4E001000000010000000100000001000000F2 -S3154000D4F001000000010000000100000001000000E2 -S3154000D50001000000010000000100000001000000D1 -S3154000D51001000000010000000100000001000000C1 -S3154000D52001000000010000000100000001000000B1 -S3154000D53001000000010000000100000001000000A1 -S3154000D5400100000001000000010000000100000091 -S3154000D5500100000001000000010000000100000081 -S3154000D5600100000001000000010000000100000071 -S3154000D5700100000001000000010000000100000061 -S3154000D5800100000001000000010000000100000051 -S3154000D5900100000001000000010000000100000041 -S3154000D5A00100000001000000010000000100000031 -S3154000D5B00100000001000000010000000100000021 -S3154000D5C00100000001000000010000000100000011 -S3154000D5D00100000001000000010000000100000001 -S3154000D5E001000000010000000100000001000000F1 -S3154000D5F001000000010000000100000001000000E1 -S3154000D60001000000010000000100000001000000D0 -S3154000D61001000000010000000100000001000000C0 -S3154000D62001000000010000000100000001000000B0 -S3154000D63001000000010000000100000001000000A0 -S3154000D6400100000001000000010000000100000090 -S3154000D6500100000001000000010000000100000080 -S3154000D6600100000001000000010000000100000070 -S3154000D6700100000001000000010000000100000060 -S3154000D6800100000001000000010000000100000050 -S3154000D6900100000001000000010000000100000040 -S3154000D6A00100000001000000010000000100000030 -S3154000D6B00100000001000000010000000100000020 -S3154000D6C00100000001000000010000000100000010 -S3154000D6D00100000001000000010000000100000000 -S3154000D6E001000000010000000100000001000000F0 -S3154000D6F001000000010000000100000001000000E0 -S3154000D70001000000010000000100000001000000CF -S3154000D71001000000010000000100000001000000BF -S3154000D72001000000010000000100000001000000AF -S3154000D730010000000100000001000000010000009F -S3154000D740010000000100000001000000010000008F -S3154000D750010000000100000001000000010000007F -S3154000D760010000000100000001000000010000006F -S3154000D770010000000100000001000000010000005F -S3154000D780010000000100000001000000010000004F -S3154000D790010000000100000001000000010000003F -S3154000D7A0010000000100000001000000010000002F -S3154000D7B0010000000100000001000000010000001F -S3154000D7C0010000000100000001000000010000000F -S3154000D7D001000000010000000100000001000000FF -S3154000D7E001000000010000000100000001000000EF -S3154000D7F001000000010000000100000001000000DF -S3154000D80001000000010000000100000001000000CE -S3154000D81001000000010000000100000001000000BE -S3154000D82001000000010000000100000001000000AE -S3154000D830010000000100000001000000010000009E -S3154000D840010000000100000001000000010000008E -S3154000D850010000000100000001000000010000007E -S3154000D860010000000100000001000000010000006E -S3154000D870010000000100000001000000010000005E -S3154000D880010000000100000001000000010000004E -S3154000D890010000000100000001000000010000003E -S3154000D8A0010000000100000001000000010000002E -S3154000D8B0010000000100000001000000010000001E -S3154000D8C0010000000100000001000000010000000E -S3154000D8D001000000010000000100000001000000FE -S3154000D8E001000000010000000100000001000000EE -S3154000D8F001000000010000000100000001000000DE -S3154000D90001000000010000000100000001000000CD -S3154000D91001000000010000000100000001000000BD -S3154000D92001000000010000000100000001000000AD -S3154000D930010000000100000001000000010000009D -S3154000D940010000000100000001000000010000008D -S3154000D950010000000100000001000000010000007D -S3154000D960010000000100000001000000010000006D -S3154000D970010000000100000001000000010000005D -S3154000D980010000000100000001000000010000004D -S3154000D990010000000100000001000000010000003D -S3154000D9A0010000000100000001000000010000002D -S3154000D9B0010000000100000001000000010000001D -S3154000D9C0010000000100000001000000010000000D -S3154000D9D001000000010000000100000001000000FD -S3154000D9E001000000010000000100000001000000ED -S3154000D9F001000000010000000100000001000000DD -S3154000DA0001000000010000000100000001000000CC -S3154000DA1001000000010000000100000001000000BC -S3154000DA2001000000010000000100000001000000AC -S3154000DA30010000000100000001000000010000009C -S3154000DA40010000000100000001000000010000008C -S3154000DA50010000000100000001000000010000007C -S3154000DA60010000000100000001000000010000006C -S3154000DA70010000000100000001000000010000005C -S3154000DA80010000000100000001000000010000004C -S3154000DA90010000000100000001000000010000003C -S3154000DAA0010000000100000001000000010000002C -S3154000DAB0010000000100000001000000010000001C -S3154000DAC0010000000100000001000000010000000C -S3154000DAD001000000010000000100000001000000FC -S3154000DAE001000000010000000100000001000000EC -S3154000DAF001000000010000000100000001000000DC -S3154000DB0001000000010000000100000001000000CB -S3154000DB1001000000010000000100000001000000BB -S3154000DB2001000000010000000100000001000000AB -S3154000DB30010000000100000001000000010000009B -S3154000DB40010000000100000001000000010000008B -S3154000DB50010000000100000001000000010000007B -S3154000DB60010000000100000001000000010000006B -S3154000DB70010000000100000001000000010000005B -S3154000DB80010000000100000001000000010000004B -S3154000DB90010000000100000001000000010000003B -S3154000DBA0010000000100000001000000010000002B -S3154000DBB0010000000100000001000000010000001B -S3154000DBC0010000000100000001000000010000000B -S3154000DBD001000000010000000100000001000000FB -S3154000DBE001000000010000000100000001000000EB -S3154000DBF001000000010000000100000001000000DB -S3154000DC0001000000010000000100000001000000CA -S3154000DC1001000000010000000100000001000000BA -S3154000DC2001000000010000000100000001000000AA -S3154000DC30010000000100000001000000010000009A -S3154000DC40010000000100000001000000010000008A -S3154000DC50010000000100000001000000010000007A -S3154000DC60010000000100000001000000010000006A -S3154000DC70010000000100000001000000010000005A -S3154000DC80010000000100000001000000010000004A -S3154000DC90010000000100000001000000010000003A -S3154000DCA0010000000100000001000000010000002A -S3154000DCB0010000000100000001000000010000001A -S3154000DCC0010000000100000001000000010000000A -S3154000DCD001000000010000000100000001000000FA -S3154000DCE001000000010000000100000001000000EA -S3154000DCF001000000010000000100000001000000DA -S3154000DD0001000000010000000100000001000000C9 -S3154000DD1001000000010000000100000001000000B9 -S3154000DD2001000000010000000100000001000000A9 -S3154000DD300100000001000000010000000100000099 -S3154000DD400100000001000000010000000100000089 -S3154000DD500100000001000000010000000100000079 -S3154000DD600100000001000000010000000100000069 -S3154000DD700100000001000000010000000100000059 -S3154000DD800100000001000000010000000100000049 -S3154000DD900100000001000000010000000100000039 -S3154000DDA00100000001000000010000000100000029 -S3154000DDB00100000001000000010000000100000019 -S3154000DDC00100000001000000010000000100000009 -S3154000DDD001000000010000000100000001000000F9 -S3154000DDE001000000010000000100000001000000E9 -S3154000DDF001000000010000000100000001000000D9 -S3154000DE0001000000010000000100000001000000C8 -S3154000DE1001000000010000000100000001000000B8 -S3154000DE2001000000010000000100000001000000A8 -S3154000DE300100000001000000010000000100000098 -S3154000DE400100000001000000010000000100000088 -S3154000DE500100000001000000010000000100000078 -S3154000DE600100000001000000010000000100000068 -S3154000DE700100000001000000010000000100000058 -S3154000DE800100000001000000010000000100000048 -S3154000DE900100000001000000010000000100000038 -S3154000DEA00100000001000000010000000100000028 -S3154000DEB00100000001000000010000000100000018 -S3154000DEC00100000001000000010000000100000008 -S3154000DED001000000010000000100000001000000F8 -S3154000DEE001000000010000000100000001000000E8 -S3154000DEF001000000010000000100000001000000D8 -S3154000DF0001000000010000000100000001000000C7 -S3154000DF1001000000010000000100000001000000B7 -S3154000DF2001000000010000000100000001000000A7 -S3154000DF300100000001000000010000000100000097 -S3154000DF400100000001000000010000000100000087 -S3154000DF500100000001000000010000000100000077 -S3154000DF600100000001000000010000000100000067 -S3154000DF700100000001000000010000000100000057 -S3154000DF800100000001000000010000000100000047 -S3154000DF900100000001000000010000000100000037 -S3154000DFA00100000001000000010000000100000027 -S3154000DFB00100000001000000010000000100000017 -S3154000DFC00100000001000000010000000100000007 -S3154000DFD001000000010000000100000001000000F7 -S3154000DFE001000000010000000100000001000000E7 -S3154000DFF001000000010000000100000001000000D7 -S3154000E00001000000010000000100000001000000C6 -S3154000E01001000000010000000100000001000000B6 -S3154000E02001000000010000000100000001000000A6 -S3154000E0300100000001000000010000000100000096 -S3154000E0400100000001000000010000000100000086 -S3154000E0500100000001000000010000000100000076 -S3154000E0600100000001000000010000000100000066 -S3154000E0700100000001000000010000000100000056 -S3154000E0800100000001000000010000000100000046 -S3154000E0900100000001000000010000000100000036 -S3154000E0A00100000001000000010000000100000026 -S3154000E0B00100000001000000010000000100000016 -S3154000E0C00100000001000000010000000100000006 -S3154000E0D001000000010000000100000001000000F6 -S3154000E0E001000000010000000100000001000000E6 -S3154000E0F001000000010000000100000001000000D6 -S3154000E10001000000010000000100000001000000C5 -S3154000E11001000000010000000100000001000000B5 -S3154000E12001000000010000000100000001000000A5 -S3154000E1300100000001000000010000000100000095 -S3154000E1400100000001000000010000000100000085 -S3154000E1500100000001000000010000000100000075 -S3154000E1600100000001000000010000000100000065 -S3154000E1700100000001000000010000000100000055 -S3154000E1800100000001000000010000000100000045 -S3154000E1900100000001000000010000000100000035 -S3154000E1A00100000001000000010000000100000025 -S3154000E1B00100000001000000010000000100000015 -S3154000E1C00100000001000000010000000100000005 -S3154000E1D001000000010000000100000001000000F5 -S3154000E1E001000000010000000100000001000000E5 -S3154000E1F001000000010000000100000001000000D5 -S3154000E20001000000010000000100000001000000C4 -S3154000E21001000000010000000100000001000000B4 -S3154000E22001000000010000000100000001000000A4 -S3154000E2300100000001000000010000000100000094 -S3154000E2400100000001000000010000000100000084 -S3154000E2500100000001000000010000000100000074 -S3154000E2600100000001000000010000000100000064 -S3154000E2700100000001000000010000000100000054 -S3154000E2800100000001000000010000000100000044 -S3154000E2900100000001000000010000000100000034 -S3154000E2A00100000001000000010000000100000024 -S3154000E2B00100000001000000010000000100000014 -S3154000E2C00100000001000000010000000100000004 -S3154000E2D001000000010000000100000001000000F4 -S3154000E2E001000000010000000100000001000000E4 -S3154000E2F001000000010000000100000001000000D4 -S3154000E30001000000010000000100000001000000C3 -S3154000E31001000000010000000100000001000000B3 -S3154000E32001000000010000000100000001000000A3 -S3154000E3300100000001000000010000000100000093 -S3154000E3400100000001000000010000000100000083 -S3154000E3500100000001000000010000000100000073 -S3154000E3600100000001000000010000000100000063 -S3154000E3700100000001000000010000000100000053 -S3154000E3800100000001000000010000000100000043 -S3154000E3900100000001000000010000000100000033 -S3154000E3A00100000001000000010000000100000023 -S3154000E3B00100000001000000010000000100000013 -S3154000E3C00100000001000000010000000100000003 -S3154000E3D001000000010000000100000001000000F3 -S3154000E3E001000000010000000100000001000000E3 -S3154000E3F001000000010000000100000001000000D3 -S3154000E40001000000010000000100000001000000C2 -S3154000E41001000000010000000100000001000000B2 -S3154000E42001000000010000000100000001000000A2 -S3154000E4300100000001000000010000000100000092 -S3154000E4400100000001000000010000000100000082 -S3154000E4500100000001000000010000000100000072 -S3154000E4600100000001000000010000000100000062 -S3154000E4700100000001000000010000000100000052 -S3154000E4800100000001000000010000000100000042 -S3154000E4900100000001000000010000000100000032 -S3154000E4A00100000001000000010000000100000022 -S3154000E4B00100000001000000010000000100000012 -S3154000E4C00100000001000000010000000100000002 -S3154000E4D001000000010000000100000001000000F2 -S3154000E4E001000000010000000100000001000000E2 -S3154000E4F001000000010000000100000001000000D2 -S3154000E50001000000010000000100000001000000C1 -S3154000E51001000000010000000100000001000000B1 -S3154000E52001000000010000000100000001000000A1 -S3154000E5300100000001000000010000000100000091 -S3154000E5400100000001000000010000000100000081 -S3154000E5500100000001000000010000000100000071 -S3154000E5600100000001000000010000000100000061 -S3154000E5700100000001000000010000000100000051 -S3154000E5800100000001000000010000000100000041 -S3154000E5900100000001000000010000000100000031 -S3154000E5A00100000001000000010000000100000021 -S3154000E5B00100000001000000010000000100000011 -S3154000E5C00100000001000000010000000100000001 -S3154000E5D001000000010000000100000001000000F1 -S3154000E5E001000000010000000100000001000000E1 -S3154000E5F001000000010000000100000001000000D1 -S3154000E60001000000010000000100000001000000C0 -S3154000E61001000000010000000100000001000000B0 -S3154000E62001000000010000000100000001000000A0 -S3154000E6300100000001000000010000000100000090 -S3154000E6400100000001000000010000000100000080 -S3154000E6500100000001000000010000000100000070 -S3154000E6600100000001000000010000000100000060 -S3154000E6700100000001000000010000000100000050 -S3154000E6800100000001000000010000000100000040 -S3154000E6900100000001000000010000000100000030 -S3154000E6A00100000001000000010000000100000020 -S3154000E6B00100000001000000010000000100000010 -S3154000E6C00100000001000000010000000100000000 -S3154000E6D001000000010000000100000001000000F0 -S3154000E6E001000000010000000100000001000000E0 -S3154000E6F001000000010000000100000001000000D0 -S3154000E70001000000010000000100000001000000BF -S3154000E71001000000010000000100000001000000AF -S3154000E720010000000100000001000000010000009F -S3154000E730010000000100000001000000010000008F -S3154000E740010000000100000001000000010000007F -S3154000E750010000000100000001000000010000006F -S3154000E760010000000100000001000000010000005F -S3154000E770010000000100000001000000010000004F -S3154000E780010000000100000001000000010000003F -S3154000E790010000000100000001000000010000002F -S3154000E7A0010000000100000001000000010000001F -S3154000E7B0010000000100000001000000010000000F -S3154000E7C001000000010000000100000001000000FF -S3154000E7D001000000010000000100000001000000EF -S3154000E7E001000000010000000100000001000000DF -S3154000E7F001000000010000000100000001000000CF -S3154000E80001000000010000000100000001000000BE -S3154000E81001000000010000000100000001000000AE -S3154000E820010000000100000001000000010000009E -S3154000E830010000000100000001000000010000008E -S3154000E840010000000100000001000000010000007E -S3154000E850010000000100000001000000010000006E -S3154000E860010000000100000001000000010000005E -S3154000E870010000000100000001000000010000004E -S3154000E880010000000100000001000000010000003E -S3154000E890010000000100000001000000010000002E -S3154000E8A0010000000100000001000000010000001E -S3154000E8B0010000000100000001000000010000000E -S3154000E8C001000000010000000100000001000000FE -S3154000E8D001000000010000000100000001000000EE -S3154000E8E001000000010000000100000001000000DE -S3154000E8F001000000010000000100000001000000CE -S3154000E90001000000010000000100000001000000BD -S3154000E91001000000010000000100000001000000AD -S3154000E920010000000100000001000000010000009D -S3154000E930010000000100000001000000010000008D -S3154000E940010000000100000001000000010000007D -S3154000E950010000000100000001000000010000006D -S3154000E960010000000100000001000000010000005D -S3154000E970010000000100000001000000010000004D -S3154000E980010000000100000001000000010000003D -S3154000E990010000000100000001000000010000002D -S3154000E9A0010000000100000001000000010000001D -S3154000E9B0010000000100000001000000010000000D -S3154000E9C001000000010000000100000001000000FD -S3154000E9D001000000010000000100000001000000ED -S3154000E9E001000000010000000100000001000000DD -S3154000E9F001000000010000000100000001000000CD -S3154000EA0001000000010000000100000001000000BC -S3154000EA1001000000010000000100000001000000AC -S3154000EA20010000000100000001000000010000009C -S3154000EA30010000000100000001000000010000008C -S3154000EA40010000000100000001000000010000007C -S3154000EA50010000000100000001000000010000006C -S3154000EA60010000000100000001000000010000005C -S3154000EA70010000000100000001000000010000004C -S3154000EA80010000000100000001000000010000003C -S3154000EA90010000000100000001000000010000002C -S3154000EAA0010000000100000001000000010000001C -S3154000EAB0010000000100000001000000010000000C -S3154000EAC001000000010000000100000001000000FC -S3154000EAD001000000010000000100000001000000EC -S3154000EAE001000000010000000100000001000000DC -S3154000EAF001000000010000000100000001000000CC -S3154000EB0001000000010000000100000001000000BB -S3154000EB1001000000010000000100000001000000AB -S3154000EB20010000000100000001000000010000009B -S3154000EB30010000000100000001000000010000008B -S3154000EB40010000000100000001000000010000007B -S3154000EB50010000000100000001000000010000006B -S3154000EB60010000000100000001000000010000005B -S3154000EB70010000000100000001000000010000004B -S3154000EB80010000000100000001000000010000003B -S3154000EB90010000000100000001000000010000002B -S3154000EBA0010000000100000001000000010000001B -S3154000EBB0010000000100000001000000010000000B -S3154000EBC001000000010000000100000001000000FB -S3154000EBD001000000010000000100000001000000EB -S3154000EBE001000000010000000100000001000000DB -S3154000EBF001000000010000000100000001000000CB -S3154000EC0001000000010000000100000001000000BA -S3154000EC1001000000010000000100000001000000AA -S3154000EC20010000000100000001000000010000009A -S3154000EC30010000000100000001000000010000008A -S3154000EC40010000000100000001000000010000007A -S3154000EC50010000000100000001000000010000006A -S3154000EC60010000000100000001000000010000005A -S3154000EC70010000000100000001000000010000004A -S3154000EC80010000000100000001000000010000003A -S3154000EC90010000000100000001000000010000002A -S3154000ECA0010000000100000001000000010000001A -S3154000ECB0010000000100000001000000010000000A -S3154000ECC001000000010000000100000001000000FA -S3154000ECD001000000010000000100000001000000EA -S3154000ECE001000000010000000100000001000000DA -S3154000ECF001000000010000000100000001000000CA -S3154000ED0001000000010000000100000001000000B9 -S3154000ED1001000000010000000100000001000000A9 -S3154000ED200100000001000000010000000100000099 -S3154000ED300100000001000000010000000100000089 -S3154000ED400100000001000000010000000100000079 -S3154000ED500100000001000000010000000100000069 -S3154000ED600100000001000000010000000100000059 -S3154000ED700100000001000000010000000100000049 -S3154000ED800100000001000000010000000100000039 -S3154000ED900100000001000000010000000100000029 -S3154000EDA00100000001000000010000000100000019 -S3154000EDB00100000001000000010000000100000009 -S3154000EDC001000000010000000100000001000000F9 -S3154000EDD001000000010000000100000001000000E9 -S3154000EDE001000000010000000100000001000000D9 -S3154000EDF001000000010000000100000001000000C9 -S3154000EE0001000000010000000100000001000000B8 -S3154000EE1001000000010000000100000001000000A8 -S3154000EE200100000001000000010000000100000098 -S3154000EE300100000001000000010000000100000088 -S3154000EE400100000001000000010000000100000078 -S3154000EE500100000001000000010000000100000068 -S3154000EE600100000001000000010000000100000058 -S3154000EE700100000001000000010000000100000048 -S3154000EE800100000001000000010000000100000038 -S3154000EE900100000001000000010000000100000028 -S3154000EEA00100000001000000010000000100000018 -S3154000EEB00100000001000000010000000100000008 -S3154000EEC001000000010000000100000001000000F8 -S3154000EED001000000010000000100000001000000E8 -S3154000EEE001000000010000000100000001000000D8 -S3154000EEF001000000010000000100000001000000C8 -S3154000EF0001000000010000000100000001000000B7 -S3154000EF1001000000010000000100000001000000A7 -S3154000EF200100000001000000010000000100000097 -S3154000EF300100000001000000010000000100000087 -S3154000EF400100000001000000010000000100000077 -S3154000EF500100000001000000010000000100000067 -S3154000EF600100000001000000010000000100000057 -S3154000EF700100000001000000010000000100000047 -S3154000EF800100000001000000010000000100000037 -S3154000EF900100000001000000010000000100000027 -S3154000EFA00100000001000000010000000100000017 -S3154000EFB00100000001000000010000000100000007 -S3154000EFC001000000010000000100000001000000F7 -S3154000EFD001000000010000000100000001000000E7 -S3154000EFE001000000010000000100000001000000D7 -S3154000EFF001000000010000000100000001000000C7 -S3154000F00001000000010000000100000001000000B6 -S3154000F01001000000010000000100000001000000A6 -S3154000F0200100000001000000010000000100000096 -S3154000F0300100000001000000010000000100000086 -S3154000F0400100000001000000010000000100000076 -S3154000F0500100000001000000010000000100000066 -S3154000F0600100000001000000010000000100000056 -S3154000F0700100000001000000010000000100000046 -S3154000F0800100000001000000010000000100000036 -S3154000F0900100000001000000010000000100000026 -S3154000F0A00100000001000000010000000100000016 -S3154000F0B00100000001000000010000000100000006 -S3154000F0C001000000010000000100000001000000F6 -S3154000F0D001000000010000000100000001000000E6 -S3154000F0E001000000010000000100000001000000D6 -S3154000F0F001000000010000000100000001000000C6 -S3154000F10001000000010000000100000001000000B5 -S3154000F11001000000010000000100000001000000A5 -S3154000F1200100000001000000010000000100000095 -S3154000F1300100000001000000010000000100000085 -S3154000F1400100000001000000010000000100000075 -S3154000F1500100000001000000010000000100000065 -S3154000F1600100000001000000010000000100000055 -S3154000F1700100000001000000010000000100000045 -S3154000F1800100000001000000010000000100000035 -S3154000F1900100000001000000010000000100000025 -S3154000F1A00100000001000000010000000100000015 -S3154000F1B00100000001000000010000000100000005 -S3154000F1C001000000010000000100000001000000F5 -S3154000F1D001000000010000000100000001000000E5 -S3154000F1E001000000010000000100000001000000D5 -S3154000F1F001000000010000000100000001000000C5 -S3154000F20001000000010000000100000001000000B4 -S3154000F21001000000010000000100000001000000A4 -S3154000F2200100000001000000010000000100000094 -S3154000F2300100000001000000010000000100000084 -S3154000F2400100000001000000010000000100000074 -S3154000F2500100000001000000010000000100000064 -S3154000F2600100000001000000010000000100000054 -S3154000F2700100000001000000010000000100000044 -S3154000F2800100000001000000010000000100000034 -S3154000F2900100000001000000010000000100000024 -S3154000F2A00100000001000000010000000100000014 -S3154000F2B00100000001000000010000000100000004 -S3154000F2C001000000010000000100000001000000F4 -S3154000F2D001000000010000000100000001000000E4 -S3154000F2E001000000010000000100000001000000D4 -S3154000F2F001000000010000000100000001000000C4 -S3154000F30001000000010000000100000001000000B3 -S3154000F31001000000010000000100000001000000A3 -S3154000F3200100000001000000010000000100000093 -S3154000F3300100000001000000010000000100000083 -S3154000F3400100000001000000010000000100000073 -S3154000F3500100000001000000010000000100000063 -S3154000F3600100000001000000010000000100000053 -S3154000F3700100000001000000010000000100000043 -S3154000F3800100000001000000010000000100000033 -S3154000F3900100000001000000010000000100000023 -S3154000F3A00100000001000000010000000100000013 -S3154000F3B00100000001000000010000000100000003 -S3154000F3C001000000010000000100000001000000F3 -S3154000F3D001000000010000000100000001000000E3 -S3154000F3E001000000010000000100000001000000D3 -S3154000F3F001000000010000000100000001000000C3 -S3154000F40001000000010000000100000001000000B2 -S3154000F41001000000010000000100000001000000A2 -S3154000F4200100000001000000010000000100000092 -S3154000F4300100000001000000010000000100000082 -S3154000F4400100000001000000010000000100000072 -S3154000F4500100000001000000010000000100000062 -S3154000F4600100000001000000010000000100000052 -S3154000F4700100000001000000010000000100000042 -S3154000F4800100000001000000010000000100000032 -S3154000F4900100000001000000010000000100000022 -S3154000F4A00100000001000000010000000100000012 -S3154000F4B00100000001000000010000000100000002 -S3154000F4C001000000010000000100000001000000F2 -S3154000F4D001000000010000000100000001000000E2 -S3154000F4E001000000010000000100000001000000D2 -S3154000F4F001000000010000000100000001000000C2 -S3154000F50001000000010000000100000001000000B1 -S3154000F51001000000010000000100000001000000A1 -S3154000F5200100000001000000010000000100000091 -S3154000F5300100000001000000010000000100000081 -S3154000F5400100000001000000010000000100000071 -S3154000F5500100000001000000010000000100000061 -S3154000F5600100000001000000010000000100000051 -S3154000F5700100000001000000010000000100000041 -S3154000F5800100000001000000010000000100000031 -S3154000F5900100000001000000010000000100000021 -S3154000F5A00100000001000000010000000100000011 -S3154000F5B00100000001000000010000000100000001 -S3154000F5C001000000010000000100000001000000F1 -S3154000F5D001000000010000000100000001000000E1 -S3154000F5E001000000010000000100000001000000D1 -S3154000F5F001000000010000000100000001000000C1 -S3154000F60001000000010000000100000001000000B0 -S3154000F61001000000010000000100000001000000A0 -S3154000F6200100000001000000010000000100000090 -S3154000F6300100000001000000010000000100000080 -S3154000F6400100000001000000010000000100000070 -S3154000F6500100000001000000010000000100000060 -S3154000F6600100000001000000010000000100000050 -S3154000F6700100000001000000010000000100000040 -S3154000F6800100000001000000010000000100000030 -S3154000F6900100000001000000010000000100000020 -S3154000F6A00100000001000000010000000100000010 -S3154000F6B00100000001000000010000000100000000 -S3154000F6C001000000010000000100000001000000F0 -S3154000F6D001000000010000000100000001000000E0 -S3154000F6E001000000010000000100000001000000D0 -S3154000F6F001000000010000000100000001000000C0 -S3154000F70001000000010000000100000001000000AF -S3154000F710010000000100000001000000010000009F -S3154000F720010000000100000001000000010000008F -S3154000F730010000000100000001000000010000007F -S3154000F740010000000100000001000000010000006F -S3154000F750010000000100000001000000010000005F -S3154000F760010000000100000001000000010000004F -S3154000F770010000000100000001000000010000003F -S3154000F780010000000100000001000000010000002F -S3154000F790010000000100000001000000010000001F -S3154000F7A0010000000100000001000000010000000F -S3154000F7B001000000010000000100000001000000FF -S3154000F7C001000000010000000100000001000000EF -S3154000F7D001000000010000000100000001000000DF -S3154000F7E001000000010000000100000001000000CF -S3154000F7F001000000010000000100000001000000BF -S3154000F80001000000010000000100000001000000AE -S3154000F810010000000100000001000000010000009E -S3154000F820010000000100000001000000010000008E -S3154000F830010000000100000001000000010000007E -S3154000F840010000000100000001000000010000006E -S3154000F850010000000100000001000000010000005E -S3154000F860010000000100000001000000010000004E -S3154000F870010000000100000001000000010000003E -S3154000F880010000000100000001000000010000002E -S3154000F890010000000100000001000000010000001E -S3154000F8A0010000000100000001000000010000000E -S3154000F8B001000000010000000100000001000000FE -S3154000F8C001000000010000000100000001000000EE -S3154000F8D001000000010000000100000001000000DE -S3154000F8E001000000010000000100000001000000CE -S3154000F8F001000000010000000100000001000000BE -S3154000F90001000000010000000100000001000000AD -S3154000F910010000000100000001000000010000009D -S3154000F920010000000100000001000000010000008D -S3154000F930010000000100000001000000010000007D -S3154000F940010000000100000001000000010000006D -S3154000F950010000000100000001000000010000005D -S3154000F960010000000100000001000000010000004D -S3154000F970010000000100000001000000010000003D -S3154000F980010000000100000001000000010000002D -S3154000F990010000000100000001000000010000001D -S3154000F9A0010000000100000001000000010000000D -S3154000F9B001000000010000000100000001000000FD -S3154000F9C001000000010000000100000001000000ED -S3154000F9D001000000010000000100000001000000DD -S3154000F9E001000000010000000100000001000000CD -S3154000F9F001000000010000000100000001000000BD -S3154000FA0001000000010000000100000001000000AC -S3154000FA10010000000100000001000000010000009C -S3154000FA20010000000100000001000000010000008C -S3154000FA30010000000100000001000000010000007C -S3154000FA40010000000100000001000000010000006C -S3154000FA50010000000100000001000000010000005C -S3154000FA60010000000100000001000000010000004C -S3154000FA70010000000100000001000000010000003C -S3154000FA80010000000100000001000000010000002C -S3154000FA90010000000100000001000000010000001C -S3154000FAA0010000000100000001000000010000000C -S3154000FAB001000000010000000100000001000000FC -S3154000FAC001000000010000000100000001000000EC -S3154000FAD001000000010000000100000001000000DC -S3154000FAE001000000010000000100000001000000CC -S3154000FAF001000000010000000100000001000000BC -S3154000FB0001000000010000000100000001000000AB -S3154000FB10010000000100000001000000010000009B -S3154000FB20010000000100000001000000010000008B -S3154000FB30010000000100000001000000010000007B -S3154000FB40010000000100000001000000010000006B -S3154000FB50010000000100000001000000010000005B -S3154000FB60010000000100000001000000010000004B -S3154000FB70010000000100000001000000010000003B -S3154000FB80010000000100000001000000010000002B -S3154000FB90010000000100000001000000010000001B -S3154000FBA0010000000100000001000000010000000B -S3154000FBB001000000010000000100000001000000FB -S3154000FBC001000000010000000100000001000000EB -S3154000FBD001000000010000000100000001000000DB -S3154000FBE001000000010000000100000001000000CB -S3154000FBF001000000010000000100000001000000BB -S3154000FC0001000000010000000100000001000000AA -S3154000FC10010000000100000001000000010000009A -S3154000FC20010000000100000001000000010000008A -S3154000FC30010000000100000001000000010000007A -S3154000FC40010000000100000001000000010000006A -S3154000FC50010000000100000001000000010000005A -S3154000FC60010000000100000001000000010000004A -S3154000FC70010000000100000001000000010000003A -S3154000FC80010000000100000001000000010000002A -S3154000FC90010000000100000001000000010000001A -S3154000FCA0010000000100000001000000010000000A -S3154000FCB001000000010000000100000001000000FA -S3154000FCC001000000010000000100000001000000EA -S3154000FCD001000000010000000100000001000000DA -S3154000FCE001000000010000000100000001000000CA -S3154000FCF001000000010000000100000001000000BA -S3154000FD0001000000010000000100000001000000A9 -S3154000FD100100000001000000010000000100000099 -S3154000FD200100000001000000010000000100000089 -S3154000FD300100000001000000010000000100000079 -S3154000FD400100000001000000010000000100000069 -S3154000FD500100000001000000010000000100000059 -S3154000FD600100000001000000010000000100000049 -S3154000FD700100000001000000010000000100000039 -S3154000FD800100000001000000010000000100000029 -S3154000FD900100000001000000010000000100000019 -S3154000FDA00100000001000000010000000100000009 -S3154000FDB001000000010000000100000001000000F9 -S3154000FDC001000000010000000100000001000000E9 -S3154000FDD001000000010000000100000001000000D9 -S3154000FDE001000000010000000100000001000000C9 -S3154000FDF001000000010000000100000001000000B9 -S3154000FE0001000000010000000100000001000000A8 -S3154000FE100100000001000000010000000100000098 -S3154000FE200100000001000000010000000100000088 -S3154000FE300100000001000000010000000100000078 -S3154000FE400100000001000000010000000100000068 -S3154000FE500100000001000000010000000100000058 -S3154000FE600100000001000000010000000100000048 -S3154000FE700100000001000000010000000100000038 -S3154000FE800100000001000000010000000100000028 -S3154000FE900100000001000000010000000100000018 -S3154000FEA00100000001000000010000000100000008 -S3154000FEB001000000010000000100000001000000F8 -S3154000FEC001000000010000000100000001000000E8 -S3154000FED001000000010000000100000001000000D8 -S3154000FEE001000000010000000100000001000000C8 -S3154000FEF001000000010000000100000001000000B8 -S3154000FF0001000000010000000100000001000000A7 -S3154000FF100100000001000000010000000100000097 -S3154000FF200100000001000000010000000100000087 -S3154000FF300100000001000000010000000100000077 -S3154000FF400100000001000000010000000100000067 -S3154000FF500100000001000000010000000100000057 -S3154000FF600100000001000000010000000100000047 -S3154000FF700100000001000000010000000100000037 -S3154000FF800100000001000000010000000100000027 -S3154000FF900100000001000000010000000100000017 -S3154000FFA00100000001000000010000000100000007 -S3154000FFB001000000010000000100000001000000F7 -S3154000FFC001000000010000000100000001000000E7 -S3154000FFD001000000010000000100000001000000D7 -S3154000FFE001000000010000000100000001000000C7 -S3154000FFF001000000010000000100000001000000B7 -S315400100009DE3BF987FFFC4741100403080A2200059 -S31540010010128000F382102001C226200CC026200443 -S31540010020C0260000C026200882102002C2262008D1 -S31540010030C0260000C026000082102003C2262008E8 -S315400100409A102083DA262008A2102063C0260000D9 -S31540010050A2847FFF1CBFFFFE01000000A2102063A7 -S31540010060C2060000A2847FFF1CBFFFFE8210200251 -S31540010070C2262008A4062004C28480208088600409 -S3154001008002BFFFFE01000000C0262008C026000076 -S31540010090A6102001C2848020833860148208603F04 -S315400100A080A0600122800093A604E0018210200313 -S315400100B0C2262008C2848020808860010280000711 -S315400100C080886004C2860020C284802080886001C6 -S315400100D012BFFFFD8088600402BFFFFB808860027B -S315400100E002BFFFF901000000C0262008C0262004F7 -S315400100F080A4E0010480000821100080C284802091 -S315400101008208608080A06001028000AE010000008C -S3154001011021100080DA4C20F0DA260000C2848020CB -S315400101208208600480A060010280009A01000000FC -S31540010130C284802080A4E001048000208210200136 -S31540010140A210200180A440131680000D2B100080C0 -S31540010150A81420F0E00560E8901000114000247AD0 -S3154001016092100010C24D0008A2046001C226000090 -S3154001017080A4401306BFFFFA90100011C28480206C -S315400101808208608080A06001028000920100000028 -S31540010190C2848020833860148208603F80A0401367 -S315400101A002800004010000007FFFC4159010200664 -S315400101B0C284802082102001C226200CDA8480204D -S315400101C0808B60011280006801000000821020834C -S315400101D0C226200880A4E0010280005201000000EE -S315400101E0C28480208088640002BFFFFE01000000B7 -S315400101F0C284802080886001028000530100000093 -S3154001020080A4E00124800012A2102000C284802034 -S315400102108330601A80A04013028000040100000070 -S315400102207FFFC3F790102009C28480208088610037 -S315400102300280005501000000C2848020808864004D -S315400102400280004D01000000A210200080A440134E -S315400102501680001203100080A81060F02B10008059 -S31540010260E08600209010001140002437D20560E856 -S31540010270C24D0008A204600180A040100280000423 -S315400102809010200C7FFFC3DE0100000080A44013C4 -S3154001029006BFFFF40100000080A4E0010480000FC6 -S315400102A001000000C28480208088610012800042E3 -S315400102B001000000C28480208330601A80A0600063 -S315400102C01280003A01000000C284802080886400C8 -S315400102D01280003301000000C284802080886001C2 -S315400102E01280001D01000000C02620083080003C1D -S315400102F0C0260000C2848020833860148208603F93 -S3154001030080A0401322BFFFFBA604E00180A4E001C8 -S3154001031034BFFF67A604FFFF10BFFF6682102003AC -S31540010320C28480208088600112BFFFB201000000B4 -S31540010330C28480208088600102BFFFFA010000006C -S3154001034030BFFFAC7FFFC3AE9010200810BFFFAE99 -S3154001035080A4E0017FFFC3AA9010200CC02620088C -S315400103603080001F7FFFC3A69010200710BFFF9962 -S31540010370821020837FFFC3A29010200B10BFFFB4D1 -S31540010380A21020007FFFC39E9010200A30BFFFAB12 -S315400103907FFFC39B9010200130BFFF667FFFC3984C -S315400103A09010200B30BFFFCD7FFFC3959010200EDC -S315400103B030BFFFC67FFFC3929010200D30BFFFBEF6 -S315400103C07FFFC38F9010200410BFFF532110008080 -S315400103D07FFFC38B9010200530BFFF6E81C7E008B9 -S315400103E091E8200017100143DA02E08090022010C4 -S315400103F09B2B60029812E080D023000DC202E08060 -S3154001040082006001C222E08081C3E0080100000051 -S31540010410C0220000C022204082103FFFC222200C91 -S315400104209A10200103100143DA20608081C3E0085D -S31540010430010000009DE3BF7803100144F02060CC29 -S315400104407FFFC365110040347FFFFFF29010001813 -S31540010450A010200123100040921000104000298F67 -S31540010460901463E4A004200180A4200F04BFFFFC84 -S3154001047092100010C20620208330601CAE0060013D -S31540010480AC10200080A58017168000ED0300003FC8 -S31540010490B81063FE2B1001430300002AB61062AA6E -S315400104A0BA102001B410001CB2156080832DA00C37 -S315400104B080A5E00114800119A600401880A5A0007E -S315400104C01280010A01000000F824E008C204E00895 -S315400104D080A0401C02800004010000007FFFC34849 -S315400104E090102001F824E040C204E04080A0401C66 -S315400104F002800004010000007FFFC34190102002EA -S31540010500C204E00880A0600012BFFFFE01000000A7 -S31540010510C205608080A0601002800005251001435D -S315400105207FFFC3379010200325100143A0102001FF -S31540010530A414A080A2102020832C20029A244010CB -S31540010540D8048001A004200180A3000D028000048C -S31540010550901020047FFFC32A0100000080A4200FD1 -S3154001056004BFFFF7832C2002FA256080F624C000E1 -S31540010570F424E040C204C00080A0401B0280000475 -S31540010580A010001A7FFFC31E90102005C204E04050 -S3154001059080A0401002800004010000007FFFC318C4 -S315400105A090102005F424E008C204E00880A0600011 -S315400105B012BFFFFE01000000C205608080A06010EE -S315400105C002800005251001437FFFC30D90102006D0 -S315400105D025100143A0102001A414A080A210201FC1 -S315400105E09B2C2002C204800D80A04011A004200152 -S315400105F0A2047FFE02800004901020077FFFC30003 -S315400106000100000080A4200704BFFFF79B2C2002B5 -S31540010610A4066028A210201CA0102005C204800058 -S3154001062080A04011A404A004A2047FFE028000041D -S31540010630901020087FFFC2F201000000A0843FFF16 -S315400106401CBFFFF701000000FA27BFE8C207BFE859 -S3154001065082006001C227BFECDA07BFEC9A03600152 -S31540010660DA27BFF0C207BFF082006001C227BFF49C -S315400106709A102006DA27BFD8C024C000C024E04023 -S31540010680FA256080A0102002E024E040E024E00842 -S31540010690834440008088610002800005010000001B -S315400106A0805000018050000180500001C207BFD830 -S315400106B0C227BFDCDA07BFD880A3600602800004E8 -S315400106C0010000007FFFC2CE9010200AE024E0081E -S315400106D001000000C207BFD8C227BFDCDA07BFD876 -S315400106E080A3600602800004010000007FFFC2C4AF -S315400106F09010200AE024E00801000000C027BFDC7A -S31540010700C207BFDC80A06000128000960100000095 -S31540010710C204E00880A0600012BFFFFE0100000095 -S31540010720C205608080A06004028000050300003F8E -S315400107307FFFC2B39010200D0300003FC024E0406C -S31540010740821063FEC224E008031001439A1020017F -S31540010750DA206080400003E801000000400003E821 -S3154001076090122F0082103FFFC224E040C204E040B5 -S3154001077080A0600002BFFFFE01000000C20560804C -S3154001078080A0600202800004A01560807FFFC29CA9 -S315400107909010200EC204200480A0601F0280000435 -S315400107A0010000007FFFC2969010200F400003D247 -S315400107B0A8100010400003D290023F00A010200272 -S315400107C0A4102020400003CC01000000400003CCCF -S315400107D090023F00C2056080A204200180A0401122 -S315400107E002800004901020107FFFC28501000000A6 -S315400107F0832C20029A248010D8050001A0100011F4 -S3154001080080A3000D02800004901020117FFFC27C5E -S315400108100100000080A4200F04BFFFEB010000008F -S31540010820C024E040AC05A00182103FFFC224E00C89 -S3154001083080A5801706BFFF1F832DA00C80A5E00170 -S315400108400480004B01000000C0262024C20620245B -S3154001085080A060001280003F0100000021040000DA -S31540010860E0262024C206202480A0401002800005F4 -S31540010870821020017FFFC262901020148210200155 -S31540010880C2262020C0262024C206202480A0401053 -S3154001089002800004010000007FFFC259901020151C -S315400108A0C0262020C0262024C206202480A0600025 -S315400108B0128000240100000082102002C22620205E -S315400108C0DA062020808B60020280001B01000000B6 -S315400108D0C0262020C2062020808860020280002493 -S315400108E001000000308000117FFFFECA9010001306 -S315400108F09B2DA01CDA24E024C204E0248330601C32 -S3154001090080A0401602BFFEF1010000007FFFC23CFD -S315400109109010201230BFFEED7FFFC23490100016BA -S3154001092010BFFEE880A5A0007FFFC23590102018B9 -S315400109303080000F7FFFC2329010201730BFFFE595 -S315400109407FFFC22F9010201610BFFFDD82102002BC -S315400109507FFFC22B9010201310BFFFC2210400005D -S315400109607FFFC2279010200B30BFFF6A81C7E00886 -S3154001097091E8200003100143DA0060C8C0236008F3 -S3154001098081C3E008901020009DE3BF902F100144E1 -S31540010990E205E0CCA004610027100143C204200413 -S315400109A0F024E0C87FFFC21190102010030180009F -S315400109B0DA04200482106020808B40011280010DF0 -S315400109C001000000DA046100DA27BFF0C2046100C9 -S315400109D080A3400102800005821020017FFFC208EA -S315400109E09010200282102001C2242004DA04610002 -S315400109F0DA27BFF0C204610080A3400102800120D2 -S31540010A0001000000C0242004DA046100DA27BFF0A7 -S31540010A10C204610080A340010280000580A7200036 -S31540010A207FFFC1F79010200480A72000128000B7F5 -S31540010A3080A72001B010200180A6001A1680001759 -S31540010A40A8102001108000052510004280A6001A3A -S31540010A5016800013DA04E0C8A206C0189014A174E7 -S31540010A609210001180A4601F14BFFFF9B006200147 -S31540010A704000280A01000000D805E0CCC20320400E -S31540010A809B2D00118210400DC223204080A6001AE2 -S31540010A9006BFFFF3A206C018DA04E0C89606A00313 -S31540010AA0C0236004833AE01FC023601098103FFFC3 -S31540010AB08330601EAA02C001D8236014D823600C7B -S31540010AC0A2102000AD3D600280A720000280008A6E -S31540010AD0A810200180A4401C168000ECC204E0C886 -S31540010AE080A7200104800015B010200080A5A00039 -S31540010AF00480001380A0001C9B2C6010832C60187E -S31540010B008210400D992C60088210400C82104011D1 -S31540010B10993D6002DA04E0C8C2236020B006200194 -S31540010B2080A72001048000059A03600480A3001871 -S31540010B3014BFFFFA0100000080A0001CB0603FFF17 -S31540010B4080A6001A16800016C204E0C8250180005E -S31540010B5080A72000028000058206C01880A72001D8 -S31540010B60028000848206C011C2242004D804E0C851 -S31540010B70832D00189B3E4018C2232008808B6001BC -S31540010B80128000859A10000CB006200180A6001A3A -S31540010B9006BFFFF180A72000C204E0C8C02060085C -S31540010BA0808E600112800009B0102000B00620013D -S31540010BB080A6201F14800005833E4018808860016E -S31540010BC022BFFFFCB006200180A72000028000065C -S31540010BD08206C01880A72001028000048216E02008 -S31540010BE08206C01182106020C2242004DA04E0C8C3 -S31540010BF0832D0018C2236008C203600880A06000EC -S31540010C0012BFFFFE01000000C2042004808860205C -S31540010C100280009801000000DA042004030100006C -S31540010C20808B40010280009001000000DA0420041C -S31540010C3003008000808B4001028000880100000093 -S31540010C40C2042008C227BFF0DA04200CDA27BFF419 -S31540010C50C204E0C8992D0018D82060089A100001F6 -S31540010C60C203600880A0600012BFFFFE01000000C1 -S31540010C70C2042004808860200280007501000000C3 -S31540010C80DA04200403010000808B40010280006DDC -S31540010C9001000000DA04200403008000808B40013B -S31540010CA00280006501000000DA042008C207BFF097 -S31540010CB080A0400D02800004010000007FFFC1506A -S31540010CC09010200EDA04200CC207BFF480A0400D1C -S31540010CD002800005030180007FFFC1499010200F6B -S31540010CE003018000C224200480A7200012BFFF7A9E -S31540010CF0A204600180A4600004BFFF7B80A720019D -S31540010D0010800062C204E0C80280003D111000421A -S31540010D10B010200080A6001C16BFFF60A81020015D -S31540010D20108000052510004280A6001C16BFFF5CFE -S31540010D30DA04E0C8A206C0189014A17492100011FA -S31540010D4080A4601F14BFFFF9B0062001400027535D -S31540010D5001000000D805E0CCC20320409B2D0011C4 -S31540010D608210400DC223204010BFFFF180A6001C17 -S31540010D70F6242004D804E0C8832D00189B3E401871 -S31540010D80C2232008808B600122BFFF81B00620016B -S31540010D909A10000CC203600880A0600012BFFFFEDB -S31540010DA001000000DA04200403010000808B4001A9 -S31540010DB00280001E01000000DA04200403008000C6 -S31540010DC0808B40010280001601000000E4242004CB -S31540010DD0C20420048088401222BFFF6DB006200164 -S31540010DE07FFFC1079010200710BFFF69B0062001A1 -S31540010DF07FFFC1039010200130BFFEF39012217492 -S31540010E00400027269210001BDA05E0CC832F001BF9 -S31540010E10C223604010BFFF22DA04E0C87FFFC0F85A -S31540010E209010200630BFFFEA7FFFC0F590102005E5 -S31540010E3030BFFFE27FFFC0F29010200D30BFFF9B15 -S31540010E407FFFC0EF9010200C30BFFF937FFFC0ECB7 -S31540010E509010200B30BFFF8B7FFFC0E99010200A16 -S31540010E6030BFFF787FFFC0E69010200930BFFF708A -S31540010E707FFFC0E39010200830BFFF687FFFC0E0CE -S31540010E809010200330BFFEE0C020600CDA05E0CCB4 -S31540010E90C023604082103FFFC223600C81C7E00837 -S31540010EA091E820009DE3BF983B100144E60760CCE2 -S31540010EB07FFFC0CE90102011C024E01CC204E01C6C -S31540010EC080A060000280004801000000C204E01CCE -S31540010ED08330601B80A0401A0A80003F0100000059 -S31540010EE0A410200080A4801A1A8000422D100143CC -S31540010EF0AA102001AE15A080A32CA002E006401145 -S31540010F007FFFFD4490100013A804A0019B2D4012C1 -S31540010F10832D20108210400DC224E01C9A103FFF01 -S31540010F20DA24E040D80600119A10201FDA23200463 -S31540010F30A0043FFFDA230000A12C20048204000C08 -S31540010F409A102005DA206010C0206014EA2060184B -S31540010F509A100001C203601080A0600012BFFFFE1C -S31540010F6001000000A004000CC204201080A0600013 -S31540010F7002BFFFFE01000000C0242018C205A08068 -S31540010F8080A06002028000069A04A011900480129B -S31540010F907FFFC09B900220039A04A011C205E00482 -S31540010FA080A0400D22800006A410001490048012F7 -S31540010FB07FFFC09390022004A4100014C024E01CBB -S31540010FC080A5001A0ABFFFCEA32CA0021080000AFA -S31540010FD0DA0760CC7FFFC08A9010200210BFFFC2A3 -S31540010FE0A41020007FFFC0869010200130BFFFB8BB -S31540010FF0DA0760CCC023604082103FFFC223600CF9 -S3154001100081C7E00891E820009DE3BF987FFFC08B30 -S315400110100100000080A220000280002680A6200058 -S3154001102012800029010000007FFFC08401000000FA -S31540011030912A20047FFFC06D900220034000186D65 -S315400110400100000080A220001280002B0100000058 -S315400110504000182B01000000400017E40100000089 -S31540011060400002270100000080A6A0001280002D4A -S31540011070031001447FFFC071B41060D0912A200251 -S31540011080C206800880A060001280003080A6200041 -S3154001109012800039010000004000048E010000006A -S315400110A040001E0201000000400015C181E8000019 -S315400110B07FFFC0491100400C80A6200002BFFFDB24 -S315400110C0010000007FFFC0F5901000197FFFC05B53 -S315400110D001000000912A20047FFFC04490022003B2 -S315400110E0400018440100000080A2200002BFFFD941 -S315400110F0010000007FFFC04290102001400018000F -S3154001110001000000400017B901000000400001FC49 -S315400111100100000080A6A00002BFFFD703100144D2 -S3154001112040001DED01000000031001447FFFC04354 -S31540011130B41060D0912A2002C206800880A06000C7 -S3154001114002BFFFD480A620007FFFC03C0100000003 -S315400111507FFFC03AA0100008912A2002C2068008EB -S315400111609FC040009010001080A6200002BFFFCB18 -S31540011170010000007FFFC0D99010001940000455BE -S315400111800100000040001DC9010000004000158813 -S3154001119081E800000100000003100143DA0060CC41 -S315400111A09A036001DA2060CC81C3E00801000000A7 -S315400111B09DE3BF987FFFC00811004044D806200830 -S315400111C082103FFFC2262004DA060000C206000054 -S315400111D080A340010280006FA60B20078210201FCA -S315400111E0C2262004C226000080A4E000028000330B -S315400111F082100018A2100013C0206018A2847FFF3D -S3154001120012BFFFFE82006010A210200080A440138E -S315400112101680002B80A4E001A810200FA010001812 -S315400112207FFFBFF290100011C0242010E824201443 -S3154001123082102006C2242018DA04201080A3600FF1 -S3154001124002800004010000007FFFBFED90102003E3 -S31540011250E82420189A10200EC204201080A0400DC8 -S3154001126012BFFFFE010000009A837FFF1CBFFFFBF8 -S31540011270A4100010C204201080A0600F12BFFFFE10 -S3154001128001000000C20420188088601002800035E9 -S3154001129082102010C224A018DA042018808B601016 -S315400112A01280003801000000A204600180A44013AE -S315400112B006BFFFDCA004201080A4E00114800010CA -S315400112C080A4E0000280000782100018A2100013DB -S315400112D0C0206018A2847FFF12BFFFFE820060100B -S315400112E021100144C20420CC80A060000280002D60 -S315400112F0111000441080000D921000197FFFBFBBF2 -S31540011300901020088210200FC22620189A10202FF4 -S31540011310DA262028C206202080A0600D12BFFFFEDB -S3154001132080A4E00030BFFFE8400025DC9012219800 -S315400113307FFFFC38D00420CC82102001832840193D -S31540011340DA0420CCC22360409810200FD8262014FE -S315400113508210200DC2262018A7800000308000117F -S315400113607FFFBFA79010200482102010C224A0182E -S31540011370DA042018808B601022BFFFCDA2046001E1 -S315400113807FFFBF9F9010200510BFFFC9A2046001D7 -S315400113907FFFBF9B9010200110BFFF928210201F3C -S315400113A081C7E00881E8000000000000000000005D -S315400113B000000000000000000000000000000000E6 -S315400113C001000000010000000100000001000000D2 -S315400113D0010000000100000081C3E0080100000097 -S315400113E001000000010000000100000001000000B2 -S315400113F0010000000100000081C3E0080100000077 -S315400114000100000001000000010000000100000091 -S31540011410010000000100000081C3E0080100000056 -S315400114200100000001000000010000000100000071 -S31540011430010000000100000081C3E0080100000036 -S31540011440D482018090A2000916BFFFFE9612800B3E -S3154001145081C3E0089010000BD48201C090A200091C -S3154001146016BFFFFE9612800B81C3E0089010000B59 -S3154001147090A22004C0A201A090A22004C0A201A073 -S3154001148090A22004C0A201A090A22004C0A201A063 -S31540011490C0A2018090A2200414BFFFF70100000002 -S315400114A081C3E0080100000090A22004C0A201E02F -S315400114B090A22004C0A201E090A22004C0A201E0B3 -S315400114C090A22004C0A201E0C0A201C090A22004C3 -S315400114D014BFFFF70100000081C3E00801000000CE -S315400114E0981000089610000A98A3200814BFFFFF21 -S315400114F0D43B00099810000898A3200814BFFFFFA9 -S31540011500C01B00099810000898A32004D6030009BF -S3154001151080A2C00A1280000698A3200434BFFFFDB2 -S31540011520D603000981C3E0089010200090102001E5 -S31540011530981000089610000A98A3200814BFFFFFD0 -S31540011540D43B00099810000898A32004D60300094B -S3154001155080A2C00A1280000698A3200434BFFFFD72 -S31540011560D603000981C3E0089010200090102001A5 -S315400115709810000898A32004D2A301A0DA8301A001 -S3154001158080A340091280000698A3200414BFFFFCE3 -S31540011590D2A301A081C3E008901020009010200141 -S315400115A09A1000089AA3400AD6A34180D883418065 -S315400115B0981B000B988B0009128000069AA3400ADB -S315400115C014BFFFFBD6A3418081C3E00890102000E1 -S315400115D0901020019A1000089AA3400BD8A241CD41 -S315400115E0C48241CD8418800C8488800A128000060A -S315400115F09AA3400B14BFFFFBD8A241CD81C3E0089B -S315400116009010200090102001010000000100000010 -S31540011610010000001310008092126138D40240008C -S3154001162080A2A0011280000780A0A002D40240003F -S31540011630D4024000952AA002108000050100000056 -S315400116403280000381E80000D402400081E00000BE -S3154001165093480000818A602023100045A2146278D5 -S31540011660A40460040100000081C4400081CC8000D4 -S3154001167091D0200191D020012680000590002001C3 -S3154001168090222001912A2001912A200281C3E0085B -S315400116900100000081C3E008D082004081C3E00818 -S315400116A0D2A2004081C3E008D082018081C3E00814 -S315400116B0D2A2018081C3E008D08201A081C3E008A3 -S315400116C0D2A201A081C3E008D08201C081C3E00853 -S315400116D0D2A201C081C3E008D08201E081C3E00803 -S315400116E0D2A201E081C3E008D2A2000081C3E00892 -S315400116F0D082000081C3E00891480000818A000041 -S3154001170001000000010000000100000081C3E00863 -S315400117100100000081C3E008C0A000A081C3E00829 -S31540011720C0A000C081C3E008D01A0000010000003B -S31540011730010000000100000001000000010000005E -S315400117409DE3BF701310006DCD1A6160CD3FBFE0C0 -S31540011750111000801B100080C91B61E0C51A21D8F9 -S31540011760C11FBFE095A088C4D53FBFF0D91FBFF0C8 -S3154001177003100080D11861E881AB0A4801000000DE -S315400117800380002BC13FBFD8F91FBFD8B5A0055C68 -S31540011790F53FBFF0ED1FBFF0F11FBFF0A5A589587A -S315400117A0E91FBFE0A1A488D41510006DA1A00130A6 -S315400117B0DD1AA16881AC0ACE010000000D80002D22 -S315400117C0F53FBFD0C51FBFD083A018C291A0492104 -S315400117D099A01928D51FBFE091A308CA1710006D1B -S315400117E091A00128FD1AE17081AA0ADE01000000DC -S315400117F00D80002F01000000400001AE01000000F5 -S315400118004000020C0100000080A22000128000313D -S3154001181001000000400002610100000080A220009A -S315400118200280003501000000308000317FFFBE7428 -S3154001183090102001F91FBFD8B5A0055CF53FBFF058 -S31540011840ED1FBFF0F11FBFF0A5A58958E91FBFE005 -S31540011850A1A488D41510006DA1A00130DD1AA1689C -S3154001186081AC0ACE010000001BBFFFD7F53FBFD0B8 -S315400118707FFFBE6390102002C51FBFD083A018C250 -S3154001188091A0492199A01928D51FBFE091A308CA63 -S315400118901710006D91A00128FD1AE17081AA0ADE98 -S315400118A0010000001BBFFFD5010000007FFFBE54B1 -S315400118B0901020034000017F01000000400001DD3F -S315400118C00100000080A2200002BFFFD301000000FA -S315400118D07FFFBE4B010000004000023001000000C6 -S315400118E080A2200002800004010000007FFFBE4468 -S315400118F09010200581C7E00881E800009DE3BF986C -S315400119007FFFFF7D210000047FFFFF7D90120010C5 -S315400119107FFFFF79B0102000808A00100280000B03 -S315400119209010200040000267010000007FFFBE4387 -S3154001193001000000912A20047FFFBE2C900220085E -S315400119407FFFFF800100000081C7E00881E80000B9 -S31540011950191000809813217811100200921020006E -S31540011960150FF76C9412A3D7D03B0000D42320085F -S31540011970C11B0000C503200887A089220100000081 -S3154001198089A005408DA0892281A8CA2601000000B0 -S3154001199033800003901020009010200181C3E0089D -S315400119A001000000C11A0000C51A400089A0084282 -S315400119B081C3E008C93A8000C11A0000C51A400037 -S315400119C089A0094281C3E008C93A80001910008004 -S315400119D098132178D0230000D2232008C1030000A8 -S315400119E0C303200885A00D2181C3E008C53A8000C4 -S315400119F0C11A0000C51A400089A009C2C93A80002F -S31540011A0081C3E00801000000C11A000085A005401D -S31540011A10C53A400081C3E008010000000100000012 -S31540011A20010000000100000001000000010000006B -S31540011A30010000000100000001000000010000005B -S31540011A40010000000100000001000000010000004B -S31540011A50010000000100000001000000010000003B -S31540011A60010000000100000001000000010000002B -S31540011A70010000000100000001000000010000001B -S31540011A80010000000100000001000000010000000B -S31540011A9001000000010000000100000081A00020BB -S31540011AA081C3E00801000000C11A000081C3E008BB -S31540011AB001000000C51A000089A009C2C93A4000C8 -S31540011AC081C3E00801000000131000809212617882 -S31540011AD0D0224000C102400085A01900C53A40000D -S31540011AE081C3E008D01A4000131000809212617839 -S31540011AF0D0224000C102400085A01880C522400086 -S31540011B0081C3E008D0024000151000809412A178EC -S31540011B10D03A8000C11A800085A01A40C5228000B3 -S31540011B2081C3E008D0028000151000809412A1788C -S31540011B30D0228000C102800085A01A20C5228000E3 -S31540011B4081C3E008D0028000151000809412A1786C -S31540011B50D0228000C102800081A01920C13A8000B4 -S31540011B6081C3E008D01A8000151000809412A17834 -S31540011B70D03A8000C11A800081A018C0C1228000DD -S31540011B8081C3E008D0028000151000809412A1782C -S31540011B90D0228000CB0280008DA00025CD2280007E -S31540011BA081C3E008D0028000151000809412A1780C -S31540011BB0D0228000CB0280008DA000A5CD228000DE -S31540011BC081C3E008D0028000151000809412A178EC -S31540011BD0D0228000CB0280008DA00125CD2280003D -S31540011BE081C3E008D0028000191000809813217843 -S31540011BF0D03B0000D43B2008C11B0000C51B200878 -S31540011C0081A80A420100000033800009901020009B -S31540011C1029800007901020012D8000059010200298 -S31540011C202F8000039010200391D0200081C3E0084B -S31540011C30010000001910008098132178D03B000064 -S31540011C40D43B2008C11B0000C51B200881A80AC23D -S31540011C500100000033BFFFF69010200029BFFFF4BA -S31540011C60901020012DBFFFF2901020022FBFFFF0F0 -S31540011C709010200391D020001910008098132178EC -S31540011C80D0230000D2232008C1030000C30320084B -S31540011C9081A80A210100000033BFFFE59010200012 -S31540011CA029BFFFE3901020012DBFFFE190102002D4 -S31540011CB02FBFFFDF9010200391D020001910008024 -S31540011CC098132178D0230000D2232008C1030000B5 -S31540011CD0C303200881A80AA10100000033BFFFD435 -S31540011CE09010200029BFFFD2901020012DBFFFD0B8 -S31540011CF0901020022FBFFFCE9010200391D02000DC -S31540011D001910008098132178D03B0000D43B20085D -S31540011D10C11B0000C51B200889A008C2C93B0000A1 -S31540011D2081C3E008D01B0000191000809813217868 -S31540011D30D0230000D2232008C1030000C30320089A -S31540011D4085A00821C523000081C3E008D003000017 -S31540011D501910008098132178D0230000D22320083F -S31540011D60C1030000C303200885A008A1C5230000C4 -S31540011D7081C3E008D0030000191000809813217830 -S31540011D80D0230000D2232008C1030000C30320084A -S31540011D9085A00921C523000081C3E008D0030000C6 -S31540011DA01910008098132178D0230000D2232008EF -S31540011DB0C1030000C303200885A009A1C523000073 -S31540011DC081C3E008D00300001910008098132178E0 -S31540011DD0D0230000C103000083A00520C3230000D7 -S31540011DE081C3E008D0030000131000809212619075 -S31540011DF0C51A6008C11A400089A0084091A108C2CD -S31540011E0095A209C495A2894281C3E008D53A00004A -S31540011E1013100080921261B0C1024000C3026004F7 -S31540011E2085A0082087A088A189A0C9A289A10921E6 -S31540011E3081C3E008C92200009610200213100080D9 -S31540011E4092126190151000809412A190D502400023 -S31540011E50D7028000D5220000D8020000131000806E -S31540011E60921261B096A2E00112BFFFF90100000093 -S31540011E7081C3E008010000001310008092126190B6 -S31540011E80151000809412A1B0C1028000C51A6010DD -S31540011E9083A0082089A088C08BA109A18DA10942F0 -S31540011EA08FA1492691A0054681C3E008D13A000099 -S31540011EB01110008090122188C11A0000C51A000035 -S31540011EC0C91A0000CD1A0000D11A0000D51A000027 -S31540011ED0D91A0000DD1A0000E11A0000E51A0000D7 -S31540011EE0E91A0000ED1A0000F11A0000F51A000087 -S31540011EF0F91A0000FD1A000081C3E0080100000044 -S31540011F0029100080A815215827100080A614E1C089 -S31540011F10C12CC000E604C000A134E00EA00C20078D -S31540011F20A0A42002AE1020002D100080AC15A1C047 -S31540011F30AE05E001AC05A008C1358000C12D000009 -S31540011F40EA050000AB35600DAA8D600112BFFFF9AD -S31540011F5001000000808000100280002F2B3C1FFFF3 -S31540011F60AA1563FFA60CC015E6250000C10D0000A9 -S31540011F702B100080AA1561CC2D100047AC15A3E0AB -S31540011F80AE25E001E0054000E025800081D8200033 -S31540011F9001000000010000000100000001000000F6 -S31540011FA001000000010000000100000001000000E6 -S31540011FB001000000010000000100000001000000D6 -S31540011FC001000000010000000100000001000000C6 -S31540011FD001000000010000000100000001000000B6 -S31540011FE00000000080A5C00012BFFFE6AA056008F8 -S31540011FF0C12D0000E60500002B03C000A614C01544 -S31540012000E6250000C10D000081C4400081CC80005E -S315400120100100000081C4800081CCA00401000000C1 -S315400120200100000081C3E008915800000100000052 -S315400120301110008090122158C10A0000C0220000F0 -S31540012040C10A0000C12A0000D40200001300038027 -S31540012050942A800980A0000A3280004D9010200306 -S315400120601303E000D223BFA0C023BFA4C10BBFA06E -S31540012070C023BFA0151000809412A170C102800038 -S315400120800100000001000000C10BBFA0C10BBFA4AD -S3154001209083A00520C12BBFA0D003BFA0808A220008 -S315400120A02280003B901020049010200015100080E3 -S315400120B09412A140C5028000C902A008D102A00C19 -S315400120C01310008092126170C70240008DA08944AE -S315400120D081A98AC8010000000380000501000000B3 -S315400120E0901020011080002A01000000C5028000E6 -S315400120F0C902A008D102A00C13100080921261708F -S31540012100CB0240008DA0894481A98AC80100000004 -S315400121100380000501000000901020011080001C82 -S315400121200100000025100080A414A168C11C800094 -S31540012130C51C800080A000003280000685A008C032 -S3154001214081A80AC2010000001380000301000000BB -S31540012150901020050100000025100080A414A168FC -S31540012160C11C8000C51C800080A000000100000049 -S315400121703280000685A008C081A80AC2010000007D -S3154001218013800003010000009010200701000000A9 -S3154001219081C3E00801000000901020019544000031 -S315400121A09532A01E940AA00380A2800002800040BE -S315400121B09010200080A2A0030280003D13100080F1 -S315400121C0921261F0C11A4000C51A6008FD026018FA -S315400121D095A0003E99A0003E9DA0003E170000C07C -S315400121E09612E078A182C0000100000001000000C3 -S315400121F00100000001000000010000000100000094 -S3154001220081A0002083A0002195A0002A99A0002C3E -S315400122109DA0002E170000C09612E07CA182C0004E -S315400122200100000001000000010000000100000063 -S31540012230010000000100000085A0002287A00023C4 -S31540012240A180000001000000010000000100000023 -S3154001225001000000010000000100000089A00842C1 -S31540012260A9A2883ED93A4000DD224000CD1A60102D -S31540012270D102600881A90A46010000000380000CD2 -S3154001228081AD0A2801000000038000099344000043 -S315400122909332601B920A60079010200080A2A00131 -S315400122A002800003902260079022600481C3E00807 -S315400122B001000000C12BBFA081C3E008D003BFA02D -S315400122C0D023BFA081C3E008C10BBFA0010000001D -S315400122D09DE3BF6040001B17B0102000913A200AD1 -S315400122E0900A200380A220011280111101000000F2 -S315400122F07FFFBBBE9010200D190C40291B23CD1B1F -S315400123009410200096102000981320069A13609B83 -S31540012310D43FBFE0D43FBFC0D43FBFE87FFFFF42B9 -S31540012320D83FBFF0900A3000032804009012208065 -S315400123308210600FC22200001B1000479002200449 -S315400123409A1363009A234008191000009B3B6002D0 -S31540012350032784009A13400C82106010C222200485 -S315400123607FFFFED4DA2200007FFFFFD61103E00093 -S315400123702D100080C025A1C07FFFFDD49010200004 -S31540012380809200091280000601000000C205A1C02A -S3154001239080A0600002800004010000007FFFBB981E -S315400123A09010200B7FFFFDC990103FFA03300600C5 -S315400123B080A200011280000480A2600002800EDB30 -S315400123C0010000007FFFBB8E9010200B7FFFFDBFF9 -S315400123D09010201403100D0080A200011280000409 -S315400123E080A2600002800ECC010000007FFFBB840A -S315400123F09010200B7FFFFDB5901020620310162030 -S3154001240080A200011280000480A2600002800EBDFD -S31540012410010000007FFFBB7A9010200B7FFFFDB3C8 -S31540012420901020050310280080A2000112800006AA -S3154001243001000000C205A1C080A060000280000426 -S31540012440010000007FFFBB6E9010200B7FFFFF9DB8 -S315400124501103C000111C00007FFFFDAC921020004B -S31540012460031FFFFF821063FF80A200011280000A52 -S315400124701B000070C205A1C09A13601F190000100D -S315400124808208400D9813201080A0400C0280000560 -S31540012490113C00007FFFBB5A9010200C113C0000FC -S315400124A07FFFFD9A921020000320000080A20001C8 -S315400124B01280000A1B000070C205A1C09A13601F5A -S315400124C0190000108208400D9813201080A0400C7E -S315400124D002800004010000007FFFBB499010200CE0 -S315400124E0C025A1C0901020007FFFFD8892102000DA -S315400124F080A220001280000601000000C205A1C092 -S3154001250080A0600002800005110144007FFFBB3CB2 -S315400125109010200C11014400132840009012230210 -S315400125207FFFFD7A9212600180A220001280000690 -S3154001253001000000C205A1C080A060002280000504 -S315400125401111FFFF7FFFBB2E9010200C1111FFFFD1 -S315400125507FFFFD76901223FF0300007F821063FF09 -S3154001256080A200011280000601000000C205A1C040 -S3154001257080A06000028000052F1000857FFFBB20F0 -S315400125809010200C2F1000857FFFFD60D01DE0C804 -S31540012590031FFFFF821063FF80A200011280000A21 -S315400125A01B000070C205A1C09A13601F19000010DC -S315400125B08208400D9813201080A0400C028000052F -S315400125C0031000857FFFBB0E9010200C0310008581 -S315400125D0D01860D8C025A1C07FFFFD4C0100000086 -S315400125E00320000080A200011280000A1B00007037 -S315400125F0C205A1C09A13601F190000108208400D40 -S315400126009813201080A0400C028000051910008507 -S315400126107FFFBAFB9010200C19100085C025A1C080 -S315400126207FFFFD3AD01B20B8031FFFFF821063FFD7 -S3154001263080A200011280000A1B000070C205A1C0E1 -S315400126409A13601F190000108208400D981320103C -S3154001265080A0400C02800005331000857FFFBAE858 -S315400126609010200C33100085C025A1C07FFFFD27A7 -S31540012670D01E60F0C205A1C08330600E820860039F -S3154001268080A0600202800004211000807FFFBADC36 -S315400126909010200C7FFFFF0B1103C000111158044D -S315400126A0C02421C07FFFFD299012223403102B0044 -S315400126B08210624680A200011280000503200000BC -S315400126C080A2400102800FC5010000007FFFBACC05 -S315400126D09010200D113C02AF7FFFFD1C901220D1BE -S315400126E0033180558210639A80A200011280000551 -S315400126F00308000080A2400102800FDB01000000B8 -S315400127007FFFBABF9010200D1111FC007FFFFD170E -S3154001271092102000031FE00080A200011280000AEF -S315400127201B000070C205A1C09A13601F190000105A -S315400127308208400D9813200880A0400C02800005B5 -S3154001274011207C017FFFBAAE9010200D11207C0133 -S31540012750C025A1C0901220307FFFFD041300010067 -S315400127600320000080A200011280000A1B000070B5 -S31540012770C205A1C09A13601F190000108208400DBE -S315400127809813200480A0400C028000040100000040 -S315400127907FFFBA9B9010200DC025A1C0901020004C -S315400127A07FFFFCF29210200080A2200012800006DA -S315400127B001000000C205A1C080A0600002800004A3 -S315400127C0010000007FFFBA8E9010200D7FFFFCE7CD -S315400127D0D01DE0C803100085DA0060C080A2000D5C -S315400127E01280000601000000C205A1C080A0600061 -S315400127F0028000051B1000857FFFBA819010200DD5 -S315400128001B1000857FFFFCD9D01B60D0031FE00061 -S3154001281080A200011280000601000000C205A1C08D -S3154001282080A0600002800005031000857FFFBA7416 -S315400128309010200D031000857FFFFCCCD01860B8A6 -S3154001284003100085DA0060A880A2000D1280000AFC -S315400128501B000070C205A1C09A13601F1900001029 -S315400128608208400D9813201080A0400C028000047D -S31540012870010000007FFFBA629010200DC025A1C063 -S315400128807FFFFCBAD01E60F0C205A1C08330600E46 -S315400128908208600380A06002028000042310008049 -S315400128A07FFFBA579010200D7FFFFE861103E0008F -S315400128B02108C6AF901420DEC02461C07FFFFCB35F -S315400128C0A01420DE80A20010128000060100000044 -S315400128D0C20461C080A06000028000052108C6AF25 -S315400128E07FFFBA479010200E2108C6AF7FFFFCB785 -S315400128F0901420DEA01420DE80A200101280000673 -S3154001290001000000C205A1C080A060002280000530 -S315400129101128C6AF7FFFBA3A9010200E1128C6AFD4 -S315400129207FFFFCAA901220DE0308C6AF821060DE4C -S3154001293080A200011280000601000000C205A1C06C -S3154001294080A06000228000051108C6AF7FFFBA2C27 -S315400129509010200E1108C6AF7FFFFC94901220DE26 -S315400129600328C6AF821060DE80A2000112800006F5 -S3154001297001000000C205A1C080A0600022800005C0 -S315400129801128C6AF7FFFBA1E9010200E1128C6AF80 -S315400129907FFFFC86901220DE0308C6AF821060DE00 -S315400129A080A200011280000601000000C205A1C0FC -S315400129B080A0600002800004010000007FFFBA1081 -S315400129C09010200E7FFFFE3F1103E00011151BC042 -S315400129D01310C82115351BC01710C82190122103A9 -S315400129E0921261419412A1037FFFFC809612E1414C -S315400129F080A220021280000601000000C205A1C08B -S31540012A0080A060000280000511351BC07FFFB9FC24 -S31540012A109010200F11351BC01310C82115151BC06E -S31540012A201710C82190122103921261419412A103F9 -S31540012A307FFFFC6E9612E14180A2200112800006C2 -S31540012A4001000000C205A1C080A06000028000050F -S31540012A50901020007FFFB9EA9010200F90102000BF -S31540012A6092102000152000007FFFFC609610200088 -S31540012A7080A220001280000601000000C205A1C00C -S31540012A8080A0600002800005191000857FFFB9DC37 -S31540012A909010200F191000851B100085D01B20D0E7 -S31540012AA07FFFFC52D41B60D880A220021280000610 -S31540012AB001000000C205A1C080A06000028000059F -S31540012AC011151BC07FFFB9CE9010200F11151BC0E9 -S31540012AD01310C82115151BE81710C82190122103A0 -S31540012AE0921261419412A1037FFFFC409612E1418B -S31540012AF080A220011280000601000000C205A1C08B -S31540012B0080A060000280000511151BE87FFFB9BC5B -S31540012B109010200F11151BE81310C82115151BC065 -S31540012B201710C82190122103921261419412A103F8 -S31540012B307FFFFC2E9612E14180A220021280000600 -S31540012B4001000000C205A1C080A06000028000050E -S31540012B5011151BE87FFFB9AA9010200F11151BE82C -S31540012B601310C82190122103921261417FFFFC1F6D -S31540012B70D41DE0C880A22003128000060100000097 -S31540012B80C205A1C080A06000028000050310008537 -S31540012B907FFFB99B9010200F0310008511151BE88C -S31540012BA01310C82190122103921261417FFFFC0F3D -S31540012BB0D41860B880A220031280000A1B0000705E -S31540012BC0C205A1C09A13601F190000108208400D6A -S31540012BD09813201080A0400C0280000511151BE8B7 -S31540012BE07FFFB9879010200F11151BE81310C821DC -S31540012BF0C025A1C090122103921261417FFFFBFBC8 -S31540012C00D41E60F080A2200212800006010000005E -S31540012C10C205A1C080A060000280000515151BE811 -S31540012C207FFFB9779010200F15151BE81710C821A3 -S31540012C30D01E60F09412A1037FFFFBEC9612E14196 -S31540012C4080A220011280000601000000C205A1C039 -S31540012C5080A060000280000515151BE87FFFB9685A -S31540012C609010200F15151BE81710C821D01DE0C87C -S31540012C709412A1037FFFFBDD9612E14180A220035E -S31540012C801280000601000000C205A1C080A06000BC -S31540012C9002800005191000857FFFB9599010200F59 -S31540012CA01910008515151BE81710C821D01B20B82F -S31540012CB09412A1037FFFFBCD9612E14180A220032E -S31540012CC01280000A1B000070C205A1C09A13601F42 -S31540012CD0190000108208400D9813201080A0400C66 -S31540012CE00280000511151BC07FFFB9459010200FCA -S31540012CF011151BC01310C82115351BC01710C8214B -S31540012D00C025A1C090122103921261419412A103E0 -S31540012D107FFFFBC99612E14180A220021280000684 -S31540012D2001000000C205A1C080A06000028000052C -S31540012D3011351BC07FFFB9329010200F11351BC0D2 -S31540012D401310C82115151BC01710C8219012210355 -S31540012D50921261419412A1037FFFFBB79612E141A2 -S31540012D6080A220011280000601000000C205A1C018 -S31540012D7080A0600002800005901020007FFFB920EE -S31540012D809010200F90102000921020001520000076 -S31540012D907FFFFBA99610200080A22000128000062A -S31540012DA001000000C205A1C080A0600002800005AC -S31540012DB01B1000857FFFB9129010200F1B10008554 -S31540012DC003100085D01B60D07FFFFB9BD41860D8D1 -S31540012DD080A220021280000601000000C205A1C0A7 -S31540012DE080A060000280000511151BC07FFFB90459 -S31540012DF09010200F11151BC01310C82115151BE883 -S31540012E001710C82190122103921261419412A10315 -S31540012E107FFFFB899612E14180A2200112800006C4 -S31540012E2001000000C205A1C080A06000028000052B -S31540012E3011151BE87FFFB8F29010200F11151BE802 -S31540012E401310C82115151BC01710C8219012210354 -S31540012E50921261419412A1037FFFFB779612E141E1 -S31540012E6080A220021280000601000000C205A1C016 -S31540012E7080A060000280000511151BE87FFFB8E0C5 -S31540012E809010200F11151BE81310C8219012210331 -S31540012E90921261417FFFFB68D41DE0C880A22003E6 -S31540012EA01280000A1B000070C205A1C09A13601F60 -S31540012EB0190000108208400D9813201080A0400C84 -S31540012EC002800005191000857FFFB8CD9010200FB4 -S31540012ED01910008511151BE81310C8219012210302 -S31540012EE0921261417FFFFB54D41B20B880A220037C -S31540012EF01280000A1B000070C205A1C09A13601F10 -S31540012F00190000108208400D9813201080A0400C33 -S31540012F100280000511151BE87FFFB8B99010200FFC -S31540012F2011151BE81310C821C025A1C09012210319 -S31540012F30921261417FFFFB40D41E60F080A22002C5 -S31540012F401280000601000000C205A1C080A06000F9 -S31540012F500280000515151BE87FFFB8A99010200FC8 -S31540012F6015151BE81710C821D01E60F09412A10355 -S31540012F707FFFFB319612E14180A2200112800006BB -S31540012F8001000000C205A1C080A0600002800005CA -S31540012F9015151BE87FFFB89A9010200F15151BE8F1 -S31540012FA01710C821D01DE0C89412A1037FFFFB2250 -S31540012FB09612E14180A220031280000A1B00007094 -S31540012FC0C205A1C09A13601F190000108208400D66 -S31540012FD09813201080A0400C028000051B1000852C -S31540012FE07FFFB8879010200F1B10008515151BE831 -S31540012FF01710C821D01B60B89412A1037FFFFB0EA6 -S315400130009612E14180A220031280000A1B00007043 -S31540013010C205A1C09A13601F190000108208400D15 -S315400130209813201080A0400C02800005110048EA48 -S315400130307FFFB8739010200F110048EA13048D15D5 -S31540013040C025A1C0901223CD7FFFFB0C921262785E -S3154001305080A220011280000601000000C205A1C025 -S3154001306080A0600002800005110048EA7FFFB86435 -S315400130709010200F110048EA13048D15901223CDAC -S315400130807FFFFB0F9212627880A220011280000618 -S3154001309001000000C205A1C080A0600002800004BA -S315400130A0010000007FFFB8569010200FC025A1C037 -S315400130B07FFFFC841103C000291001449007BFF033 -S315400130C09207BFE87FFFFA3894152120C207BFF067 -S315400130D0DA05212080A0400D1280000782152120AB -S315400130E0DA006004C207BFF480A0400D02800D598A -S315400130F0010000007FFFB842901020103710008574 -S315400131009007BFF09216E0E07FFFFA279415212041 -S31540013110C206E0E0DA05212080A340018215212084 -S31540013120128000079816E0E0DA006004C20320042A -S3154001313080A3400102800D42010000007FFFB830AC -S31540013140901020109007BFF09215E0C87FFFFA1645 -S3154001315094152120C205E0C8DA05212080A340014B -S3154001316082152120128000079815E0C8DA00600414 -S31540013170C203200480A3400102800D2C01000000FF -S315400131807FFFB81F9010201003100085921060B881 -S315400131909007BFF07FFFFA04941521201B000070B1 -S315400131A0C205A1C09A13601F190000108208400D84 -S315400131B09813201080A0400C028000042110014485 -S315400131C07FFFB80F9010201003100080C02061C00F -S315400131D07FFFFC3C901020001310008594142120A1 -S315400131E0921260B87FFFF9F09007BFF03910008561 -S315400131F0C20720B0DA04212080A340019414212083 -S3154001320012800007821720B0DA02A004C2006004CF -S3154001321080A3400102800004010000007FFFB7F84F -S31540013220901020107FFFFC271103C0009007BFF0CC -S31540013230921660F07FFFF9DC94152120C205A1C0EA -S315400132408330600E8208600380A060022110014431 -S3154001325002800004231000807FFFB7E99010201000 -S3154001326094142120C02461C09007BFE87FFFF9CEA6 -S315400132709207BFF0DA042120C207BFF080A34001C4 -S315400132801280000794142120DA02A004C207BFF479 -S3154001329080A3400102800D21010000007FFFB7D8C5 -S315400132A0901020109007BFE89216E0E07FFFF9BE2C -S315400132B094152120C206E0E0DA05212080A34001D1 -S315400132C082152120128000079816E0E0DA0060049A -S315400132D0C203200480A3400102800D0B01000000BF -S315400132E07FFFB7C7901020109007BFE89215E0C83E -S315400132F07FFFF9AD94152120C205E0C8DA052120EA -S3154001330080A3400182152120128000079815E0C84C -S31540013310DA006004C203200480A3400102800CF558 -S31540013320010000007FFFB7B69010201019100085EC -S31540013330921320B89007BFE87FFFF99B941521208F -S315400133401B000070C205A1C09A13601F190000102E -S315400133508208400D9813201080A0400C0280000482 -S31540013360211001447FFFB7A6901020107FFFFBD5A7 -S31540013370901020001310008594142120921260B8F9 -S315400133807FFFF9899007BFE8C20720B0DA04212000 -S3154001339080A340019414212012800007821720B097 -S315400133A0DA02A004C200600480A340010280000446 -S315400133B0010000007FFFB792901020107FFFFBC1F4 -S315400133C01103C0009007BFE8921660F07FFFF976BF -S315400133D094152120C205A1C08330600E8208600386 -S315400133E080A0600221100144028000042310008065 -S315400133F07FFFB7839010201094142120C02461C010 -S315400134009016E0E07FFFF9689207BFF0C206E0E060 -S31540013410DA04212080A34001941421201280000760 -S315400134208216E0E0DA02A004C200600480A34001F3 -S3154001343002800CAB010000007FFFB7719010201095 -S315400134409016E0E09207BFE87FFFF95794152120D7 -S31540013450C206E0E0DA05212080A340018215212041 -S31540013460128000079816E0E0DA006004C2032004E7 -S3154001347080A3400102800C95010000007FFFB760E8 -S31540013480901020101B100085901360D092100008F8 -S315400134907FFFF9459415212019100085C20320D0DC -S315400134A0DA05212080A340018215212012800007E0 -S315400134B0981320D0DA006004C203200480A340019F -S315400134C002800C7D010000007FFFB74D9010201057 -S315400134D01B100085901360D8921000087FFFF932C7 -S315400134E09415212019100085C20320D8DA05212020 -S315400134F080A340018215212012800007981320D80D -S31540013500DA006004C203200480A3400102800C65F6 -S31540013510010000007FFFB73A901020101B10008574 -S3154001352003100085901360D8921060D07FFFF91E7A -S31540013530941521201B000070C205A1C09A13601F7B -S31540013540190000108208400D9813201080A0400CED -S3154001355002800004211001447FFFB72990102010FA -S315400135607FFFFB5890102000111000851310008535 -S3154001357094142120901220D87FFFF90B921260D02B -S31540013580C20720B0DA04212080A3400194142120EF -S3154001359012800007821720B0DA02A004C20060043C -S315400135A080A3400102800004010000007FFFB714A0 -S315400135B0901020107FFFFB431103C00019100085B6 -S315400135C01B100085901320D0921360D8C025A1C04E -S315400135D07FFFF8F594152120C20720B0DA05212096 -S315400135E080A340018215212012800007981720B040 -S315400135F0DA006004C203200480A3400102800C1F4C -S315400136001B0000707FFFB6FE901020109016E0E080 -S31540013610921660F07FFFF8E494152120C205A1C0FF -S315400136208330600E8208600380A06002211001444D -S3154001363002800004231000807FFFB6F19010201015 -S3154001364094142120C02461C09015E0C87FFFF8D6AC -S315400136509207BFF0C205E0C8DA04212080A34001E9 -S3154001366094142120128000078215E0C8DA02A004D2 -S31540013670C200600480A3400102800B9C010000004F -S315400136807FFFB6DF901020109015E0C89207BFE883 -S315400136907FFFF8C594152120C205E0C8DA0521202F -S315400136A080A3400182152120128000079815E0C8A9 -S315400136B0DA006004C203200480A3400102800B8625 -S315400136C0010000007FFFB6CE901020109015E0C893 -S315400136D09216E0E07FFFF8B494152120C205E0C8B8 -S315400136E0DA05212080A3400182152120128000079E -S315400136F09815E0C8DA006004C203200480A34001A3 -S3154001370002800B70010000007FFFB6BD90102010B3 -S315400137109015E0C8921000087FFFF8A39415212068 -S31540013720C205E0C8DA05212080A340018215212087 -S31540013730128000079815E0C8DA006004C20320042D -S3154001374080A3400102800B5A010000007FFFB6AC06 -S315400137509010201003100085921060B89015E0C8B3 -S315400137607FFFF8919415212003000070A610601F79 -S31540013770DA05A1C0030000109A0B4013AA1060108D -S3154001378080A34015231000852510014402800004C2 -S31540013790211000807FFFB69A90102010C02421C0CE -S315400137A0901460B89207BFF07FFFF87F9414A12070 -S315400137B0C20421C08208401380A040150280000443 -S315400137C0010000007FFFB68E90102010C02421C05A -S315400137D0901460B89207BFE87FFFF8739414A12054 -S315400137E0C20421C08208401380A040150280000413 -S315400137F0010000007FFFB68290102010C02421C036 -S31540013800901460B89216E0E07FFFF8679414A12007 -S31540013810C20421C08208401380A0401502800005E1 -S31540013820131000857FFFB676901020101310008587 -S31540013830C02421C0921260C8901460B87FFFF85A24 -S315400138409414A120C20421C08208401380A04015CF -S3154001385002800005901460B87FFFB6699010201071 -S31540013860901460B8C02421C0921000087FFFF84E22 -S315400138709414A120C20421C08208401380A040159F -S3154001388002800004010000007FFFB65D9010201009 -S31540013890C02421C0901460B8921660F07FFFF842B0 -S315400138A09414A120C20421C08330600E82086003B3 -S315400138B080A06002228000051103C0007FFFB65040 -S315400138C0901020101103C0007FFFFA7E3B10008448 -S315400138D0A2176210C02421C0AA14A120A40460101A -S315400138E0A0102000A6046008B010200C920400131A -S315400138F0900400117FFFF82C94152120DA048010E2 -S3154001390098040012C2052120A004201880A340017A -S315400139101280000790102010DA032004C2056004CB -S3154001392080A3400122800005B0863FFF7FFFB63469 -S3154001393001000000B0863FFF1CBFFFEE920400135A -S31540013940C205A1C080A06000128009890100000063 -S315400139501110008490122348920220087FFFF8122A -S315400139609415212098176210C2052120DA032148B7 -S3154001397080A340011280000782152120DA03214CE1 -S31540013980C200600480A3400122800AAB031000807C -S315400139907FFFB61B901020101110008490122360F7 -S315400139A0920220087FFFF800941521209817621093 -S315400139B0C2052120DA03216080A34001128000075D -S315400139C082152120DA032164C200600480A34001EC -S315400139D002800AA41B0000707FFFB60990102010D8 -S315400139E01110008490122378920220087FFFF7EE8F -S315400139F09415212098176210C2052120DA032178F7 -S31540013A0080A340011280000782152120DA03217C20 -S31540013A10C200600480A3400102800A9C1B00007022 -S31540013A207FFFB5F790102010C025A1C011100000EE -S31540013A3092102000150FFC007FFFF8B2961020006F -S31540013A40030FFC0080A200011280000880A26000E2 -S31540013A501280000601000000C205A1C080A06000DE -S31540013A6002800005111000007FFFB5E5901020107F -S31540013A701110000092102000152FFC007FFFF8A1C5 -S31540013A80961020000310020080A200011280000857 -S31540013A9080A260001280000601000000C205A1C09C -S31540013AA080A0600002800005113000007FFFB5D480 -S31540013AB0901020101130000092102000150FFC00CC -S31540013AC07FFFF890961020000330020080A200018B -S31540013AD01280000880A260001280000601000000EA -S31540013AE0C205A1C080A0600002800005113000001F -S31540013AF07FFFB5C3901020101130000092102000B6 -S31540013B00152FFC007FFFF87F96102000032FFC0045 -S31540013B1080A200011280000880A260001280000687 -S31540013B2001000000C205A1C080A06000028000051E -S31540013B30111000007FFFB5B2901020101110000047 -S31540013B407FFFF87A130FE0000310100080A20001F6 -S31540013B501280000601000000C205A1C080A06000DD -S31540013B6002800005111000007FFFB5A590102010BE -S31540013B70111000007FFFF877130FE000030FE000FC -S31540013B8080A200011280000601000000C205A1C00A -S31540013B9080A0600022800005191000857FFFB5983E -S31540013BA09010201019100085921320E8C025A1C05D -S31540013BB09007BFF07FFFF78F9415212019100085DC -S31540013BC0C20320D8DA05212080A340018215212095 -S31540013BD012800007981320D8DA006004C20320043B -S31540013BE080A3400102800A461B0000707FFFB58416 -S31540013BF0901020111B100085921360D0C025A1C0E2 -S31540013C009007BFF07FFFF77B94152120C207BFE0E5 -S31540013C10DA05212080A34001128000078215212068 -S31540013C20DA006004C207BFE480A3400102800A3E75 -S31540013C30010000007FFFB572901020119007BFF080 -S31540013C409215E0C87FFFF76B94152120C205E0C8A5 -S31540013C50DA05212080A34001821521201280000728 -S31540013C609815E0C8DA006004C203200480A340012D -S31540013C7002800A32010000007FFFB56190102011D9 -S31540013C8003100085921060B89007BFF07FFFF75987 -S31540013C9094152120C20720B0DA05212080A34001D6 -S31540013CA08215212012800007981720B0DA0060049F -S31540013CB0C203200480A3400102800A251B00007034 -S31540013CC07FFFB54F901020119007BFF0921660F01C -S31540013CD07FFFF74894152120C205A1C01B00007043 -S31540013CE08208400D1900002080A0400C211001449B -S31540013CF002800004231000807FFFB54190102011FF -S31540013D0094142120C02461C09007BFE87FFFF73992 -S31540013D109207BFF0DA042120C207BFE880A3400121 -S31540013D201280000794142120DA02A004C207BFECD6 -S31540013D3080A3400102800A10010000007FFFB530D8 -S31540013D409010201119100085901320E89207BFE0CA -S31540013D507FFFF72894152120C20720B0DA052120DC -S31540013D6080A340018215212012800007981720B0B8 -S31540013D70DA006004C203200480A3400102800A03E2 -S31540013D801B0000707FFFB51E901020111B1000858F -S31540013D9003100085901360E8921060D0C025A1C041 -S31540013DA07FFFF7149415212019100085C20320E8DE -S31540013DB0DA05212080A340018215212012800007C7 -S31540013DC0981320E8DA006004C203200480A340016E -S31540013DD0028009F8010000007FFFB509901020110B -S31540013DE09007BFE89215E0C87FFFF702941521209E -S31540013DF0C205E0C8DA05212080A3400182152120B1 -S31540013E00128000079815E0C8DA006004C203200456 -S31540013E1080A34001028009EC010000007FFFB4F855 -S31540013E20901020071B100085921360B89007BFE8D9 -S31540013E307FFFF6F09415212025000070D805A1C01A -S31540013E409A14A01F03000010980B000D82106010F9 -S31540013E5080A3000121100144028000042310008048 -S31540013E607FFFB4E790102011C02461C09007BFE8DE -S31540013E70921660F07FFFF6DF94142120C20461C0E0 -S31540013E80820840121B00002080A0400D22800005C0 -S31540013E90031000857FFFB4DA9010201103100085CE -S31540013EA0901060D894142120C02461C07FFFF6D1C0 -S31540013EB09207BFF019100085C20320D8DA042120E9 -S31540013EC080A340019414212012800007821320D838 -S31540013ED0DA02A004C200600480A34001028008B84F -S31540013EE0010000007FFFB4C6901020111B10008511 -S31540013EF003100085901360D8921060E87FFFF6BDED -S31540013F009415212019100085C20320D0DA052120FD -S31540013F1080A340018215212012800007981320D0EA -S31540013F20DA006004C203200480A34001028008A98C -S31540013F30010000007FFFB4B2901020119016E0E01E -S31540013F40921000087FFFF6AB94152120C20720B0DE -S31540013F50DA05212080A34001821521201280000725 -S31540013F60981720B0DA006004C203200480A3400100 -S31540013F700280089D1B0000707FFFB4A190102011A4 -S31540013F80C025A1C09016E0E09215E0C87FFFF699E2 -S31540013F9094152120C205E0C8DA05212080A34001FD -S31540013FA082152120128000079815E0C8DA006004C6 -S31540013FB0C203200480A3400102800894010000004E -S31540013FC07FFFB48F901020111B100085921360B8AB -S31540013FD09016E0E07FFFF68794152120C20720B0B6 -S31540013FE0DA05212080A34001821521201280000795 -S31540013FF0981720B0DA006004C203200480A3400170 -S31540014000028008871B0000707FFFB47D901020114D -S31540014010C025A1C09016E0E0921660F07FFFF675CC -S3154001402094152120C205A1C01B0000708208400DD5 -S315400140301900002080A0400C23100080028000045B -S31540014040211001447FFFB46E901020119414212059 -S31540014050C02461C09015E0C87FFFF6669207BFF0A5 -S31540014060C205E0C8DA04212080A34001941421202E -S31540014070128000078215E0C8DA02A004C20060047B -S3154001408080A340010280086F010000007FFFB45CFD -S31540014090901020119015E0C89207BFE87FFFF655B2 -S315400140A094152120C205E0C8DA05212080A34001EC -S315400140B082152120128000079815E0C8DA006004B5 -S315400140C0C203200480A3400102800863010000006E -S315400140D07FFFB44B901020119015E0C89216E0E096 -S315400140E07FFFF64494152120C205E0C8DA05212058 -S315400140F080A3400182152120128000079815E0C84F -S31540014100DA006004C203200480A3400102800857FC -S31540014110010000007FFFB43A901020119015E0C8CD -S31540014120921000087FFFF63394152120C205E0C89E -S31540014130DA05212080A34001821521201280000743 -S315400141409815E0C8DA006004C203200480A3400148 -S31540014150028007F3010000007FFFB429901020116F -S3154001416003100085921060B89015E0C87FFFF621D4 -S3154001417094152120C20720B0DA05212080A34001F1 -S315400141808215212012800007981720B0DA006004BA -S31540014190C203200480A34001028007E61B00007091 -S315400141A07FFFB417901020119015E0C8921660F069 -S315400141B07FFFF61094152120C205A1C03100007081 -S315400141C0820840183B00002080A0401D2310014476 -S315400141D002800004211000807FFFB4099010201155 -S315400141E019100085901320B89207BFF07FFFF601A2 -S315400141F094146120C20421C0AA16201F3500001064 -S3154001420082084015A616A01080A040130280000423 -S31540014210251000857FFFB3FA90102011C02421C0DC -S315400142209014A0B89207BFE87FFFF5F2941461207D -S31540014230C20421C08208401580A0401302800004B8 -S31540014240010000007FFFB3EE90102011C02421C071 -S315400142509014A0B89216E0E07FFFF5E69414612031 -S31540014260C20421C08208401580A040130280000587 -S31540014270131000857FFFB3E29010201113100085C3 -S31540014280C02421C0921260C89014A0B87FFFF5D90E -S3154001429094146120C20421C08208401580A04013B5 -S315400142A0028000059014A0B87FFFB3D5901020116D -S315400142B09014A0B8C02421C0921000087FFFF5CD0C -S315400142C094146120C20421C08208401580A0401385 -S315400142D002800005131000857FFFB3C9901020119D -S315400142E013100085C02421C09014A0B8921260F02A -S315400142F07FFFF5C094146120C20421C08208401892 -S3154001430080A0401D2280000515203E837FFFB3BC5F -S315400143109010201115203E83170021C89412A3FF47 -S315400143209612E3A1191FC0001B00C0009A1360B08A -S3154001433098132102D43FBFD0D83FBFD8C02421C053 -S315400143409007BFD89207BFD07FFFF5AA9407BFC891 -S31540014350DA07BFC8033FFC0080A340010280070B78 -S31540014360A207BFC87FFFB3A6901020111510868300 -S31540014370170021C89412A3FF9612E3A11900400029 -S315400143801B00C0009A1360B098132102D43FBFD0DE -S31540014390D83FBFD8C025A1C09007BFD89207BFD08C -S315400143A07FFFF5949407BFC8DA046004C207BFC80B -S315400143B08090400D1280000A1B000070C205A1C00A -S315400143C09A13601F190000108208400D98132004AB -S315400143D080A0400C22800005150FFC007FFFB388AA -S315400143E090102011150FFC00170281D89412A0409D -S315400143F09612E10C9A102010190006AFD43FBFD097 -S31540014400D83FBFD8C025A1C09007BFD89207BFD01B -S315400144107FFFF5789407BFC8030006AEDA07BFC829 -S315400144208210639580A340011280000703003A9AE7 -S31540014430DA0460048210630F80A3400102800733CF -S31540014440010000007FFFB36E90102011150FFFFF92 -S31540014450170281D89412A3409612E10C9A102010AB -S31540014460190006AFD43FBFD0D83FBFD8C025A1C0A1 -S315400144709007BFD89207BFD07FFFF55E9407BFC8AC -S31540014480DA046004C207BFC88090400D1280000A5A -S315400144901B000070C205A1C09A13601F19000010CD -S315400144A08208400D9813200480A0400C028000042D -S315400144B0010000007FFFB35290102011C025A1C01A -S315400144C0111088007FFFF63713100100031066C9EB -S315400144D0821062CA80A2000112800006010000001B -S315400144E0C205A1C080A06000028000051111BBFE7B -S315400144F07FFFB343901020111111BBFE901223FF91 -S315400145007FFFF628130C7040031527CA8210611EDF -S3154001451080A200011280000601000000C205A1C070 -S3154001452080A06000028000051310C7FF7FFFB334EF -S31540014530901020111310C7FF921263FC7FFFF619EA -S31540014540111E607E031D73FC8210633880A2000138 -S315400145501280000601000000C205A1C080A06000D3 -S3154001456002800005130FE0007FFFB3259010201154 -S31540014570130FE000921260017FFFF60A110020003E -S3154001458080A220001280000A1B000070C205A1C053 -S315400145909A13601F190000108208400D98132004D9 -S315400145A080A0400C02800005110FE0007FFFB3148C -S315400145B090102011110FE000C025A1C07FFFF5F931 -S315400145C092100008030FE00080A20001128000064D -S315400145D001000000C205A1C080A060000280000564 -S315400145E0130FE0007FFFB30690102011130FE00078 -S315400145F0921260017FFFF5EB1100200080A220009E -S315400146001280000A1B000070C205A1C09A13601FE8 -S31540014610190000108208400D9813200480A0400C18 -S31540014620028000051B1000857FFFB2F59010201116 -S315400146301B100085921360E8C025A1C09007BFF00A -S315400146407FFFF4DE9415212019100085C20320E86E -S31540014650DA05212080A3400182152120128000071E -S31540014660981320E8DA006004C203200480A34001C5 -S31540014670028006BA010000007FFFB2E190102012CD -S315400146801B100085921360D09007BFF07FFFF4CBDB -S315400146909415212019100085C20320D0DA05212066 -S315400146A080A340018215212012800007981320D053 -S315400146B0DA006004C203200480A34001028006ACF4 -S315400146C0010000007FFFB2CE901020129007BFF08C -S315400146D09215E0C87FFFF4B994152120C205E0C8C0 -S315400146E0DA05212080A3400182152120128000078E -S315400146F09815E0C8DA006004C203200480A3400193 -S31540014700028006A0010000007FFFB2BD901020127A -S315400147101B100085921360B89007BFF07FFFF4A786 -S3154001472094152120C20720B0DA05212080A340013B -S315400147308215212012800007981720B0DA00600404 -S31540014740C203200480A34001028006931B0000702F -S315400147507FFFB2AB901020129007BFF0921660F027 -S315400147607FFFF49694152120C205A1C01B0000705D -S315400147708208400D1900002080A0400C2110014400 -S3154001478002800004231000807FFFB29D901020120A -S3154001479094142120C02461C09007BFE87FFFF487AD -S315400147A09207BFF0DA042120C207BFE880A3400187 -S315400147B01280000794142120DA02A004C207BFEC3C -S315400147C080A34001028006DE010000007FFFB28C1B -S315400147D0901020120310008519100085901060E892 -S315400147E0921320D87FFFF47594152120C20720B07B -S315400147F0DA05212080A3400182152120128000077D -S31540014800981720B0DA006004C203200480A3400157 -S31540014810028006D01B0000707FFFB27990102012F3 -S31540014820C025A1C09007BFE89215E0C87FFFF46399 -S3154001483094152120C205E0C8DA05212080A3400154 -S3154001484082152120128000079815E0C8DA0060041D -S31540014850C203200480A34001028006C70100000074 -S315400148607FFFB267901024991B100085921360B8A0 -S315400148709007BFE87FFFF45194152120C20720B06D -S31540014880DA05212080A340018215212012800007EC -S31540014890981720B0DA006004C203200480A34001C7 -S315400148A0028006BA1B0000707FFFB255901020129D -S315400148B09007BFE8921660F07FFFF44094152120DF -S315400148C0C205A1C01B0000708208400D19000020DE -S315400148D080A0400C21100144028000042310008076 -S315400148E07FFFB2479010201294142120C02461C04A -S315400148F09016E0E07FFFF4319207BFF0C206E0E098 -S31540014900DA04212080A3400194142120128000075B -S315400149108216E0E0DA02A004C200600480A34001EE -S31540014920028006A4010000007FFFB23590102012DC -S315400149309016E0E09207BFE87FFFF420941521200E -S31540014940C20720B0DA05212080A34001821521202B -S3154001495012800007981720B0DA006004C2032004D1 -S3154001496080A34001028006981B0000707FFFB2249D -S3154001497090102012C025A1C09016E0E09215E0C823 -S315400149807FFFF40E94152120C205E0C8DA052120E7 -S3154001499080A3400182152120128000079815E0C8A6 -S315400149A0DA006004C203200480A340010280068F1E -S315400149B0010000007FFFB212901020120310008503 -S315400149C0921060B89016E0E07FFFF3FC9415212029 -S315400149D0C20720B0DA05212080A34001821521209B -S315400149E012800007981720B0DA006004C203200441 -S315400149F080A34001028006821B0000707FFFB20047 -S31540014A00901020129016E0E0921660F07FFFF3EBD3 -S31540014A1094152120C205A1C01B0000708208400DDB -S31540014A201900002080A0400C21100144028000049E -S31540014A30231000807FFFB1F29010201294142120A0 -S31540014A40C02461C09015E0C87FFFF3DC9207BFF038 -S31540014A50C205E0C8DA04212080A340019414212034 -S31540014A60128000078215E0C8DA02A004C200600481 -S31540014A7080A340010280061E010000007FFFB1E0D5 -S31540014A80901020129015E0C89207BFE87FFFF3CB44 -S31540014A9094152120C205E0C8DA05212080A34001F2 -S31540014AA082152120128000079815E0C8DA006004BB -S31540014AB0C203200480A340010280061201000000C7 -S31540014AC07FFFB1CF901020129015E0C89216E0E01A -S31540014AD07FFFF3BA94152120C205E0C8DA052120EB -S31540014AE080A3400182152120128000079815E0C855 -S31540014AF0DA006004C203200480A340010280060656 -S31540014B00010000007FFFB1BE901020129015E0C851 -S31540014B10921000087FFFF3A994152120C205E0C831 -S31540014B20DA05212080A34001821521201280000749 -S31540014B309815E0C8DA006004C203200480A340014E -S31540014B40028005FA010000007FFFB1AD90102012EE -S31540014B50191000859015E0C8921320B87FFFF3978E -S31540014B609415212003000070A610601FDA05A1C02C -S31540014B70030000109A0B4013AA10601080A3401541 -S31540014B802510008523100144028000042110008075 -S31540014B907FFFB19B90102012C02421C09014A0B871 -S31540014BA09207BFF07FFFF38594146120C20421C0B0 -S31540014BB08208401380A040150280000401000000D5 -S31540014BC07FFFB18F90102012C02421C09014A0B84D -S31540014BD09207BFE87FFFF37994146120C20421C094 -S31540014BE08208401380A040150280000401000000A5 -S31540014BF07FFFB18390102012C02421C09014A0B829 -S31540014C009216E0E07FFFF36D94146120C20421C047 -S31540014C108208401380A040150280000513100085CC -S31540014C207FFFB1779010201213100085C02421C058 -S31540014C30921260C89014A0B87FFFF360941461206B -S31540014C40C20421C08208401380A04015028000059D -S31540014C509014A0B87FFFB16A901020129014A0B8AA -S31540014C60C02421C0921000087FFFF35494146120A0 -S31540014C70C20421C08208401380A04015028000046E -S31540014C80010000007FFFB15E90102012C02421C0B8 -S31540014C909014A0B8921660F07FFFF34894146120F7 -S31540014CA0C20421C08330600E8208600380A0600286 -S31540014CB0228000051103C0007FFFB15190102012E0 -S31540014CC01103C0007FFFF57F3B100084A41763905A -S31540014CD0AA146120C02421C0A604A008A210200065 -S31540014CE0B0102005A00440129204401394152120CF -S31540014CF07FFFF33290100010DA042010C205212004 -S31540014D00A204601880A3400112800007901020126F -S31540014D10DA042014C205600480A3400102800474B1 -S31540014D20010000007FFFB13601000000B0863FFF61 -S31540014D303CBFFFEEA00440121110008590122020C6 -S31540014D40920220087FFFF31D941521209817639046 -S31540014D50C2052120DA0320A080A34001128000076A -S31540014D6082152120DA0320A4C200600480A34001F9 -S31540014D70028004DC1B0000707FFFB12190102012DD -S31540014D801110008590122038C025A1C0920220083A -S31540014D907FFFF30A9415212098176390C2052120BD -S31540014DA0DA0320B880A34001128000078215212032 -S31540014DB0DA0320BCC200600480A340010280047F64 -S31540014DC01B0000707FFFB10E90102012111000855C -S31540014DD090122050C025A1C0920220087FFFF2F711 -S31540014DE09415212098176390C2052120DA0320D01B -S31540014DF080A340011280000782152120DA0320D4C6 -S31540014E00C200600480A34001028004761B0000704A -S31540014E107FFFB0FB90102012111000859012206880 -S31540014E20C025A1C0920220087FFFF2E494152120FB -S31540014E3098176390C2052120DA0320E880A3400138 -S31540014E401280000782152120DA0320ECC20060049B -S31540014E5080A340010280046D1B0000707FFFB0E813 -S31540014E60901020121110008590122080C025A1C0FB -S31540014E70920220087FFFF2D1941521209817639062 -S31540014E80C2052120DA03210080A3400112800007D8 -S31540014E9082152120DA032104C200600480A3400167 -S31540014EA0028004641B0000707FFFB0D59010201271 -S31540014EB0C025A1C0111010007FFFF3B013100000F0 -S31540014EC00310300080A2000112800006010000009C -S31540014ED0C205A1C080A0600002800005111FE0004C -S31540014EE07FFFB0C790102012111FE0001310000081 -S31540014EF07FFFF2B794152120031FFC00DA0521201C -S31540014F0080A340011280000A82152120C20060045C -S31540014F1080A060001280000601000000C205A1C009 -S31540014F2080A0600002800005111FE0007FFFB0B441 -S31540014F309010201B111FE000133000007FFFF2A4E8 -S31540014F4094152120033FFC00DA05212080A340016E -S31540014F501280000A82152120C200600480A06000F0 -S31540014F601280000601000000C205A1C080A06000B9 -S31540014F7002800005111000007FFFB0A19010201C97 -S31540014F8011100000921020107FFFF29194152120FC -S31540014F90C205A1C01B0000708208400D1900002007 -S31540014FA080A0400C2110014402800004231000809F -S31540014FB07FFFB0939010201D94142120C02461C01E -S31540014FC0110020007FFFF282130FC000DA04212076 -S31540014FD0030E000080A340011280000A9414212090 -S31540014FE0C202A00480A060001280000601000000F9 -S31540014FF0C20461C080A0600002800005111FDFFF6E -S315400150007FFFB07F9010201E111FDFFF901223FFFC -S31540015010131000007FFFF26E941521200311FFFF4C -S31540015020821063FFDA05212080A340011280000728 -S3154001503082152120DA0060040338000080A3400174 -S3154001504002800405010000007FFFB06D9010201F13 -S31540015050111FD000130FF0007FFFF25D9415212040 -S315400150600311FC80DA05212080A340011280000A49 -S3154001507082152120C200600480A0600012800006D3 -S3154001508001000000C205A1C080A0600002800005A9 -S31540015090111FDFFF7FFFB05A90102021111FDFFF44 -S315400150A0901223FF921000087FFFF24994152120A8 -S315400150B00313FBFF821063FFDA05212080A3400121 -S315400150C01280000882152120DA00600403300000B6 -S315400150D08210602080A34001028003E401000000A9 -S315400150E07FFFB047901020207FFFF4761103C00068 -S315400150F0C025A1C09007BFE07FFFF2449215212051 -S31540015100C207BFE0DA05212080A3400112800007D3 -S3154001511082152120DA006004C207BFE480A3400162 -S31540015120028003D7010000007FFFB03590102013A5 -S315400151301B100085901360E87FFFF2349215212001 -S3154001514003100085DA0060E8C205212080A0400DE9 -S31540015150191000858215212012800007901320E83E -S31540015160DA006004C202200480A34001028003C920 -S31540015170010000007FFFB022901020131B10008514 -S31540015180901360D07FFFF2219215212019100085DE -S31540015190C20320D0DA05212080A3400182152120B7 -S315400151A012800007981320D0DA006004C20320045D -S315400151B080A34001028003BC010000007FFFB010C4 -S315400151C0901020131B100085901360D87FFFF20FBB -S315400151D092152120C20720B0DA05212080A3400183 -S315400151E08215212012800007981720B0DA0060044A -S315400151F0C203200480A34001028003B01B0000705B -S315400152007FFFAFFF9010201303100085901060B808 -S31540015210C025A1C07FFFF1FD92152120C20720B014 -S31540015220DA05212080A34001821521201280000742 -S31540015230981720B0DA006004C203200480A340011D -S315400152400280040F1B0000707FFFAFED901020130A -S31540015250C025A1C09015E0C87FFFF1EC9215212031 -S31540015260C2052120DA05E0C880A0400D8215212023 -S31540015270128000079015E0C8DA006004C2022004DB -S3154001528080A3400102800407010000007FFFAFDCDC -S3154001529090102013170C00089A10200019100C00CA -S315400152A015300F789612E001D83FBFF0D43FBFC00A -S315400152B09007BFF07FFFF1D592152120031004001E -S315400152C0DA05212080A340011280000A821521209F -S315400152D0C200600480A06000128000060100000048 -S315400152E0C205A1C080A06000028000059007BFC032 -S315400152F07FFFAFC3901020139007BFC07FFFF1C35C -S3154001530092152120C2052120DA0720B080A0400D48 -S315400153108215212012800007981720B0DA00600418 -S31540015320C203200480A34001028003E31B000070F6 -S315400153307FFFAFB390102013901660F07FFFF1B35B -S3154001534092152120C205A1C08330600E82086003F8 -S3154001535080A0600202800004211000807FFFAFA878 -S3154001536090102013C02421C07FFFF2981111F20042 -S315400153700310E80080A2000112800006010000002F -S31540015380C20421C080A06000028000040100000028 -S315400153907FFFAF9B901020137FFFF3CA11100000CF -S315400153A01101F5897FFFF289901221E20308E96430 -S315400153B080A200011280000601000000C205A1C0C2 -S315400153C080A0600002800004010000007FFFAF8CD6 -S315400153D0901020237FFFF27D1112A2080311410094 -S315400153E080A200011280000601000000C205A1C092 -S315400153F080A0600002800004010000007FFFAF80B2 -S31540015400901020237FFFF3AF110010009007BFF0EB -S31540015410921660F07FFFF1649415212003100C0071 -S31540015420DA05212080A340011280000A821521203D -S31540015430C200600480A060001280000601000000E6 -S31540015440C205A1C080A0600002800005901660F0F0 -S315400154507FFFAF6B90102014901660F09207BFC08B -S315400154607FFFF1569415212003200000DA05212003 -S3154001547080A340011280000A82152120C2006004E7 -S3154001548080A060001280000601000000C205A1C094 -S3154001549080A0600002800004010000007FFFAF5839 -S315400154A0901020147FFFF19190102001030FE0002E -S315400154B080A200011280000601000000C205A1C0C1 -S315400154C080A0600002800004010000007FFFAF4C15 -S315400154D0901020147FFFF17D90102001030FFC00F6 -S315400154E080A200011280000880A26000128000069E -S315400154F001000000C205A1C080A060000280000436 -S31540015500010000007FFFAF3E901020147FFFF36D36 -S315400155101110100019100085D41B20D07FFFF1F91E -S31540015520D01E60F003100085D03D2120DA0060D8FE -S31540015530C205212080A0400D191000858215212029 -S3154001554012800007901320D8DA006004C2022004BA -S3154001555080A3400102800361010000007FFFAF2864 -S31540015560901020227FFFF35711100000170400808E -S31540015570150F28009612E0F09A102000190FFC0032 -S31540015580D43FBFC0D83FBFF09007BFF09207BFC01E -S315400155907FFFF10594152120030FFC00DA05212038 -S315400155A080A340011280000682152120C2006004BA -S315400155B080A0600002800004010000007FFFAF1060 -S315400155C0901020157FFFF33F112000001700004087 -S315400155D0150014009612E0019A102000190FFC00E4 -S315400155E0D43FBFC0D83FBFF09007BFF09207BFC0BE -S315400155F07FFFF0ED94152120030FFC00DA052120F1 -S3154001560080A340011280000682152120C200600459 -S3154001561080A0600102800004010000007FFFAEF817 -S31540015620901020157FFFF32711300000170000402E -S31540015630152014009612E0019A102000192FFC0043 -S31540015640D43FBFC0D83FBFF09007BFF09207BFC05D -S315400156507FFFF0D594152120032FFC00DA05212088 -S3154001566080A340011280000682152120C2006004F9 -S3154001567080A0600102800004010000007FFFAEE0CF -S31540015680901020157FFFF30F11100000190FFC0039 -S315400156909A102000D83FBFF09007BFF09216E0E085 -S315400156A07FFFF0C194152120C206E0E0DA052120F2 -S315400156B080A3400182152120128000079816E0E060 -S315400156C0DA006004C203200480A340010280000482 -S315400156D0010000007FFFAECA901020157FFFF2F94E -S315400156E01120000017000040150014009612E00139 -S315400156F0190FFC009A102000D43FBFC0D83FBFF01D -S315400157009007BFF09216E0E07FFFF0A794152120A5 -S31540015710C206E0E0DA05212080A34001821521205E -S31540015720128000079816E0E0DA006004C203200404 -S3154001573080A3400102800004010000007FFFAEB05B -S31540015740901020157FFFF2DF113000001700004056 -S31540015750152014009612E0019A102000192FFC0022 -S31540015760D43FBFC0D83FBFF09007BFF09216E0E0EC -S315400157707FFFF08D94152120C2052120DA06E0E055 -S3154001578080A0400D82152120128000079016E0E08E -S31540015790DA006004C202200480A3400102800004B2 -S315400157A0010000007FFFAE96901020157FFFF2C5E5 -S315400157B01110000015100000961020019A102001CA -S315400157C0190FFC00D43FBFC0D83FBFF09007BFF0D0 -S315400157D09207BFC07FFFF079941521200310000086 -S315400157E0DA05212080A3400112800006821521207E -S315400157F0C200600480A06002028000040100000033 -S315400158007FFFAE7F901020157FFFF2AE1120000082 -S315400158109007BFF09207BFC07FFFF0689415212023 -S3154001582003100000DA05212080A340011280000602 -S3154001583082152120C200600480A06003028000041A -S31540015840010000007FFFAE6E901020157FFFF29D94 -S31540015850113000009A102001192FFC00D83FBFF0EB -S315400158609007BFF09207BFC07FFFF05494152120E7 -S3154001587003300000DA05212080A340011280000692 -S3154001588082152120C200600480A0600302800004CA -S31540015890010000007FFFAE5A901020157FFFF2896C -S315400158A011100000150FFC04172F26159412A01293 -S315400158B09612E231190FFEAE1B1CD2E89A13601103 -S315400158C098132154D43FBFC0D83FBFF09007BFF0D3 -S315400158D09207BFC07FFFF04794152120030FFEA713 -S315400158E082106296DA05212080A3400112800008C9 -S315400158F082152120DA006004032C1B348210602FAC -S3154001590080A3400102800004010000007FFFAE3CFD -S31540015910901020157FFFF26B112000009007BFF019 -S315400159209207BFC07FFFF03394152120030FFEA7D6 -S3154001593082106296DA05212080A340011280000878 -S3154001594082152120DA006004032C1B34821060305A -S3154001595080A3400102800004010000007FFFAE28C1 -S31540015960901020157FFFF25711300000192FFC04CB -S315400159701B2F26159A13623198132012D83FBFC0A8 -S315400159809007BFF09207BFC07FFFF01A9415212000 -S31540015990032FFEA782106296DA05212080A34001DB -S315400159A01280000882152120DA006004032C1B3482 -S315400159B08210603080A34001028000040100000093 -S315400159C07FFFAE0F901020157FFFF23E11100000B1 -S315400159D015101000961020009A102000191038005A -S315400159E0D43FBFC0D83FBFF09007BFF09207BFC0BA -S315400159F07FFFF0009415212003102400DA052120B1 -S31540015A0080A340011280000682152120C200600455 -S31540015A1080A0600002800004010000007FFFADF815 -S31540015A20901020157FFFF227112000009007BFF04C -S31540015A309207BFC07FFFEFEF94152120031024008A -S31540015A40DA05212080A3400112800006821521201B -S31540015A50C200600480A060000280000401000000D2 -S31540015A607FFFADE7901020157FFFF2161130000041 -S31540015A709007BFF09207BFC07FFFEFDE941521204C -S31540015A8003102400DA05212080A34001128000067C -S31540015A9082152120C200600480A0600002800004BB -S31540015AA0010000007FFFADD6901020157FFFF20563 -S31540015AB011100000210FE000110020007FFFF0B916 -S31540015AC09214200180A220001280012301000000CF -S31540015AD07FFFF1FC11200000110020007FFFF0B193 -S31540015AE09214200180A220001280011801000000BA -S31540015AF07FFFF1F411300000921420017FFFF0A9DD -S31540015B001100200080A220001280010D010000003A -S31540015B107FFFF1EC111000009A102000190FFC00D4 -S31540015B20D83FBFF09007BFF07FFFEFB89215212015 -S31540015B30C207BFF0DA05212080A340011280000789 -S31540015B4082152120DA006004C207BFF480A3400118 -S31540015B50028002A7010000007FFFADA99010201529 -S31540015B607FFFF1D8112000009007BFF07FFFEFA71C -S31540015B7092152120C207BFF0DA05212080A34001FA -S31540015B801280000782152120DA006004C207BFF4A3 -S31540015B9080A340010280029B010000007FFFAD9877 -S31540015BA0901020157FFFF1C7113000009007BFF01C -S31540015BB07FFFEF9692152120C207BFF0DA0521201B -S31540015BC080A340011280000782152120DA0060047B -S31540015BD0C207BFF480A340010280028F010000008A -S31540015BE07FFFAD87901020157FFFF1B611100000A1 -S31540015BF0030FDFFF901063FF7FFFF074A0100008D2 -S31540015C0080A2001002800004010000007FFFAD7CED -S31540015C10901020157FFFF1AB112000007FFFF06B44 -S31540015C2090100010030FE00080A2000102800004E2 -S31540015C30010000007FFFAD72901020157FFFF1A19A -S31540015C40113000007FFFF0619010001080A200101B -S31540015C5002800004010000007FFFAD69901020150D -S31540015C607FFFF198901020007FFFF0609015212072 -S31540015C70032FFE00DA05212080A340011280000691 -S31540015C8082152120C200600480A0600002800005C8 -S31540015C90211001447FFFAD5A901020162110014476 -S31540015CA07FFFF05C90142128DA042128032FF000AD -S31540015CB080A3400102800004A21421287FFFAD5039 -S31540015CC0901020167FFFF05D90100011DA04212814 -S31540015CD0030FE00080A340010280000401000000A0 -S31540015CE07FFFAD47901020167FFFF064901521206D -S31540015CF0030FFBF7821063F0DA05212080A34001F0 -S31540015D001280000882152120DA0060040303FF1285 -S31540015D108210604A80A3400102800005921660F01D -S31540015D207FFFAD3790102016921660F09007BFF0B6 -S31540015D307FFFEF3094152120C205A1C08330600E4C -S31540015D408208600780A060020280000519100046A3 -S31540015D507FFFAD2B901020171910004617100080B9 -S31540015D60DA02E1C8821321F880A0400DE00321F850 -S31540015D7002800004A212E1C87FFFAD2190102018D5 -S31540015D80C204600480A040100280000401000000AB -S31540015D907FFFAD1B90102018C204600880A06000F0 -S31540015DA01280007701000000C204600C80A06000F0 -S31540015DB01280006C010000007FFFEEE6010000004A -S31540015DC080A220010280019801000000190C40299F -S31540015DD01B23CD1B9A13609B981320069410200019 -S31540015DE096102000D83FBFF0D43FBFC07FFFEF2FB2 -S31540015DF09007BFF003100083A21062101B100081B0 -S31540015E0003100144A0136210A4106120B0102000B9 -S31540015E10832E2002DA044001DA27BFC09007BFC0B3 -S31540015E207FFFEF25921521209B2E2003D804000DDC -S31540015E30C2052120B00620019603401080A300012F -S31540015E401280000790102019DA02E004C204A0046F -S31540015E5080A340010280000580A620FF7FFFACE8B9 -S31540015E600100000080A620FF04BFFFEB832E200225 -S31540015E7003100083A41062101B100080031001441C -S31540015E80A2136210A6106120B0102000A12E20029C -S31540015E90C2048010C227BFC0921521207FFFEEDBCE -S31540015EA09007BFC0DA044010C2052120B006200287 -S31540015EB09804001180A34001128000079010201A17 -S31540015EC0DA032004C204E00480A3400102800005F5 -S31540015ED080A620FF7FFFACCA0100000080A620FFFC -S31540015EE024BFFFECA12E200230800211C205A1C0C1 -S31540015EF080A0600022BFFB8FB0863FFF30BFFB8A88 -S31540015F00C205A1C080A0600002BFF14501000000AA -S31540015F1030BFF141C205A1C080A0600002BFF13689 -S31540015F200100000030BFF132C205A1C080A060006F -S31540015F3002BFF1270100000030BFF1237FFFACB063 -S31540015F409010201530BFFEF37FFFACAD90102015A9 -S31540015F5030BFFEE87FFFACAA9010201530BFFEDDB2 -S31540015F607FFFACA79010201830BFFF947FFFACA4F1 -S31540015F709010201010BFF678111000847FFFACA05E -S31540015F809010201830BFFF89C207BFCC80A06000A7 -S31540015F9012BFF8F501000000C20421C08208401575 -S31540015FA09A16A00880A0400D12BFF8EF010000002C -S31540015FB010BFF8F015108683C205A1C09A13601F61 -S31540015FC0190000108208400D9813200880A0400C4B -S31540015FD012BFFB7D1110008510BFFB7F9012205030 -S31540015FE0C205A1C09A13601F190000108208400D16 -S31540015FF09813200880A0400C12BFFB861110008523 -S3154001600010BFFB8890122068C205A1C09A13601F79 -S31540016010190000108208400D9813200480A0400CFE -S3154001602012BFFB8F1110008510BFFB91901220808B -S31540016030C205A1C09A13601F190000108208400DC5 -S315400160409813200880A0400C12BFFB980100000065 -S3154001605030BFFB98C205A1C080A0600002BFFBFE15 -S31540016060111FD00030BFFBF9C205A1C080A060005E -S3154001607002BFFC1E0100000030BFFC1AC205A1C0D0 -S3154001608080A0600002BFFC2C1B10008530BFFC279E -S31540016090C205A1C080A0600002BFFC3A1B1000856A -S315400160A030BFFC35C205A1C080A0600002BFFC47DD -S315400160B01B10008530BFFC42C205A1C09A13601F68 -S315400160C0190000108208400D9813201080A0400C42 -S315400160D012BFFC4C0310008510BFFC4E901060B8F7 -S315400160E0C205A1C09A13601F190000108208400D15 -S315400160F09813200480A0400C12BFFB20111000858C -S3154001610010BFFB2290122038C205A1C080A06000BA -S3154001611022BFF8D0150FFFFF30BFF8CBC205A1C093 -S3154001612080A0600002BFF8100310008530BFF80B55 -S31540016130C205A1C09A13601F190000108208400DC4 -S315400161409813201080A0400C12BFF8169015E0C895 -S3154001615010BFF818921660F0C205A1C080A0600079 -S3154001616002BFF9491B10008530BFF944C205A1C0E1 -S3154001617080A0600002BFF9579007BFF030BFF952C7 -S31540016180C205A1C080A0600002BFF9631B10008553 -S3154001619030BFF95EC205A1C09A13601F19000010F5 -S315400161A08208400D9813201080A0400C12BFF96957 -S315400161B09007BFF010BFF96B921660F0C20461C040 -S315400161C080A0600002BFF74B1B10008530BFF74629 -S315400161D0C205A1C080A0600002BFF75A9016E0E058 -S315400161E030BFF755C205A1C09A13601F19000010B0 -S315400161F08208400D9813201080A0400C12BFF75F13 -S315400162000100000030BFF75FC205A1C080A0600059 -S3154001621002BFF76F1B10008530BFF76AC205A1C0E8 -S315400162209A13601F190000108208400D9813201020 -S3154001623080A0400C12BFF7750100000030BFF77512 -S31540016240C20461C080A0600002BFF7949015E0C807 -S3154001625030BFF78FC205A1C080A0600002BFF7A082 -S315400162609015E0C830BFF79BC205A1C080A0600071 -S3154001627002BFF7AC9015E0C830BFF7A7C205A1C071 -S315400162809A13601F190000108208400D98132010C0 -S3154001629080A0400C12BFFBED0100000030BFFBEDBA -S315400162A0C205A1C080A0600002BFFBFC170C00081C -S315400162B030BFFBF7C205A1C09A13601F1900001039 -S315400162C08208400D9813201080A0400C12BFFC1983 -S315400162D0901660F030BFFC1AC205A1C080A06000D4 -S315400162E002BFFCA10100000030BFFC9DC20461C099 -S315400162F080A0600002BFF9E59015E0C830BFF9E023 -S31540016300C205A1C080A0600002BFF9F19015E0C8A6 -S3154001631030BFF9ECC205A1C080A0600002BFF9FD03 -S315400163209015E0C830BFF9F8C205A1C080A0600051 -S3154001633002BFFA091910008530BFFA04C20461C0D0 -S3154001634080A0600002BFF9250310008530BFF92007 -S31540016350C205A1C09A13601F190000108208400DA2 -S315400163609813201080A0400C12BFF92C01000000A8 -S3154001637030BFF92CC205A1C080A0600002BFF93C24 -S315400163801B10008530BFF937C205A1C09A13601FA3 -S31540016390190000108208400D9813201080A0400C6F -S315400163A012BFF9429007BFE810BFF944921660F058 -S315400163B0C20461C080A0600002BFF95F9016E0E0B0 -S315400163C030BFF95AC205A1C09A13601F19000010C7 -S315400163D08208400D9813201080A0400C12BFF9642A -S315400163E00100000030BFF964C205A1C080A0600071 -S315400163F002BFF9740310008530BFF96FC205A1C011 -S315400164009A13601F190000108208400D981320103E -S3154001641080A0400C12BFF97A9016E0E010BFF97CDB -S31540016420921660F07FFFAB769010201910BFFE697F -S31540016430190C4029D80061C01B0000709A13601FD7 -S3154001644003000010980B000D8210600880A3000124 -S3154001645012BFF5501110008410BFF55290122360FF -S31540016460C205A1C09A13601F190000108208400D91 -S315400164709813200480A0400C12BFF55811100084D7 -S3154001648010BFF55A90122378C205A1C09A13601F16 -S31540016490190000108208400D9813200480A0400C7A -S315400164A012BFF5600100000030BFF560C205A1C012 -S315400164B080A0600002BFF4A90310008530BFF4A498 -S315400164C0C205A1C080A0600002BFF4939015E0C848 -S315400164D030BFF48EC205A1C080A0600002BFF47D2A -S315400164E09015E0C830BFF478C20461C080A0600056 -S315400164F002BFF4679015E0C830BFF462C205A1C07F -S315400165009A13601F190000108208400D981320024B -S3154001651080A0400C12BFF5B61B10008510BFF5B820 -S31540016520921360D0C205A1C080A0600002BFF5C52C -S315400165309007BFF030BFF5C0C205A1C080A0600082 -S3154001654002BFF5D10310008530BFF5CCC205A1C00D -S315400165509A13601F190000108208400D98132010ED -S3154001656080A0400C12BFF5D79007BFF010BFF5D9F8 -S31540016570921660F0C20461C080A0600022BFF5F3AC -S315400165801910008530BFF5EEC205A1C09A13601FF0 -S31540016590190000108208400D9813201080A0400C6D -S315400165A012BFF5F91B10008510BFF5FB03100085DE -S315400165B0C205A1C080A0600002BFF60B9007BFE8EC -S315400165C030BFF606C205A1C080A0600002BFF61723 -S315400165D01B10008530BFF612C20421C080A06000A6 -S315400165E022BFF03E113C02AF30BFF039C205A1C017 -S315400165F080A0600002BFFD5B0100000030BFFD5777 -S31540016600C205A1C080A0600002BFFD670100000075 -S3154001661030BFFD63C205A1C080A0600002BFFD730B -S315400166200100000030BFFD6FC205A1C080A060001F -S3154001663002BFF2D70310008530BFF2D2C205A1C016 -S3154001664080A0600002BFF2C19007BFF030BFF2BC2C -S31540016650C205A1C080A0600002BFF2AA3710008522 -S3154001666030BFF2A5C205A1C080A0600002BFF028DC -S315400166701111FC0030BFF023C205A1C09A13601F5F -S31540016680190000108208400D9813201080A0400C7C -S3154001669012BFF3DD9016E0E010BFF3DF921660F013 -S315400166A0C205A1C080A0600002BFF39E1B100085F9 -S315400166B030BFF399C205A1C080A0600002BFF38636 -S315400166C01B10008530BFF381C205A1C080A06000C8 -S315400166D002BFF36E1B10008530BFF369C20461C06F -S315400166E080A0600002BFF3589016E0E030BFF3533C -S315400166F0C205A1C080A0600002BFF30E191000853B -S3154001670030BFF309C205A1C080A0600002BFF2F804 -S315400167109007BFE830BFF2F3C20461C080A06000B9 -S3154001672002BFF2E29007BFE830BFF2DD81C7E00861 -S3154001673081E80000D27A000081C3E0080100000030 -S3154001674081C3E008900A20209332600492126001CE -S315400167508213C0007FFFFFF89E1040000100000039 -S3154001676081D8200081C3E008010000009DE3BF9865 -S315400167707FFFFFFC0100000082102400C0A04300FF -S3154001678081C7E00881E80000833220189A1000088A -S315400167908088600F028000049010200083336010CF -S315400167A09008600381C3E008010000009DE3BF98A3 -S315400167B0031000C01B1000C1B0106000A21360009E -S315400167C0031000C21B1000C2A4106000A613610092 -S315400167D0031000201B100020A8106158AA13600066 -S315400167E07FFFEBAD9010200C808A2008028001FDCE -S315400167F0010000007FFFAA7D9010200ED08003206B -S315400168007FFFFFE2010000000310014380A2200246 -S31540016810028000C6D02060D080A22002148000E40D -S3154001682080A2200380A22001028000D1821020197B -S31540016830331000A02F1000A0391000A0371000A07F -S31540016840351000A07FFFFFC7210100007FFFFFC871 -S31540016850BA04A00C921000117FFFFFBC90100018E3 -S31540016860921000117FFFFFB990062004901000118D -S315400168707FFFFFB19210200ADA066014110800006A -S31540016880913A000DC205E010900A0001912A2002BA -S3154001689013008000900200117FFFFFA79212600A49 -S315400168A0DA06601411100000913A000DC205E0109D -S315400168B0900A0001912A2002900200117FFFFF9E5B -S315400168C09214208EDA066014111C0000913A000DD4 -S315400168D0C205E010900A0001912A20021301C0006E -S315400168E0900200117FFFFF949212608E9334A004B0 -S315400168F09004600C7FFFFF90921260019214201E5B -S315400169007FFFFF8D9004A0089010001D7FFFFF8A36 -S31540016910921020009334E004921260017FFFFF86BB -S315400169209004A004111000C2901221087FFFFF823B -S3154001693092102000031000E0A01060009334200460 -S31540016940111000C2901221047FFFFF7B9212601A40 -S3154001695003048D1582106278C2242004111000E0D0 -S3154001696015100120C0222000A2102003AC12A00065 -S31540016970A004E00C90047FFD40000A7392102003AE -S315400169801B100143C20360D08200600C932A0001B0 -S315400169909202401693326004901000107FFFFF660A -S315400169A09212601EA204600180A4600A04BFFFF235 -S315400169B0A0042004C206E008D807200C8208600122 -S315400169C08328400CD605E010111000E0D406A00043 -S315400169D0DA06601498122000960AE003972AC00D41 -S315400169E0920AA002111000A0DA022004940AA00122 -S315400169F0952A800D932A400D1B1000209612C00146 -S31540016A00E8236150030100001B0076418210601E9D -S31540016A109A1361C09212C00999332004C2252004F9 -S31540016A20DA2520089612C00A9E13200E913560047D -S31540016A301B1000C2031000C2821061049012201E76 -S31540016A40953620049813201E9A136108D625202CCA -S31540016A50D8252010D025201CD2252020DE2520280F -S31540016A60D6252014940ABFF0FA250000DA2520180D -S31540016A70C2252024C225200CA2102100D4A44320E3 -S31540016A80C2800320D88443209A102001A0102200FE -S31540016A90DAA40320D884032082102000C2A4032054 -S31540016AA0DAA0032081D820007FFFC55901000000EC -S31540016AB0C2800320E2844320E0840320DA05E0100B -S31540016AC0D6066014C206E0089A0B60039B2B400B66 -S31540016AD082086001D407200CD806A000111000A03E -S31540016AE08328400A980B2001D60220049A134001BC -S31540016AF0992B000B9A13400CC203400080A0600002 -S31540016B0012800008821360041B048D15D8004000D2 -S31540016B109A13627880A3000D02800038C205E01006 -S31540016B2010800000010000008210201A331000A0DE -S31540016B30C22660149810203F2F1000A0391000A0E3 -S31540016B40351000A09A1020148210200E151000A0B6 -S31540016B50371000A0DA27200CC222A004D826A000B4 -S31540016B60D825E01010BFFF38D826E0089A10207FBC -S31540016B70331000A02F1000A0C2266014DA25E010C1 -S31540016B809810203F391000A0351000A08210201324 -S31540016B909A10200D111000A0371000A0C227200C1A -S31540016BA0DA22200410BFFFF0D826A00012BFFF2230 -S31540016BB0331000A08210201CC22660149A102015A2 -S31540016BC08210207F391000A0371000A0DA27200C50 -S31540016BD0C226E0089810200F2F1000A0351000A003 -S31540016BE01B1000A08210203FD8236004C226A000BB -S31540016BF010BFFF15D825E010DA06E008D806601464 -S31540016C00820860039A0B6002D607200C8328400C49 -S31540016C109B2B400B8210400DD80040001B100000FA -S31540016C20C203400080A3000102800004D406E008AC -S31540016C301080000001000000C205E010980AA00182 -S31540016C40D207200CD6066014820860038328400BC5 -S31540016C50992B0009940AA0039810400CDA06A0006B -S31540016C60111000A0952A80099A0B6001D6022004D2 -S31540016C708210400AC20040009B2B400B9813000D26 -S31540016C800321D9509813200482106321C2230000A6 -S31540016C90DA03000080A3400102800004C206E00836 -S31540016CA01080000001000000D407200CDA05E01036 -S31540016CB082086001D60660148328400A9A0B600355 -S31540016CC0D806A0009B2B400B151000A0D602A004AD -S31540016CD0980B20019A134001992B000B9813400CF5 -S31540016CE08210000C05048D158410A278072AF37BC7 -S31540016CF08610E301C4384000C438400003048D15B2 -S31540016D00DA0300008210627880A340010280000409 -S31540016D108213200410800000010000001B2AF37B2F -S31540016D20D80040009A13630180A3000D12BFFFFAF9 -S31540016D30C205E010D6066014D806E0088208600352 -S31540016D40D407200C8328400B980B2001DA06A000BB -S31540016D50111000A0992B000A9A0B6003D602200459 -S31540016D608210400C9B2B400B15100143A010400D87 -S31540016D70F002A0D0A2102003E0240000C0A002200F -S31540016D80921020034000097090047FFD8206200C7A -S31540016D9098102001912A0001992B00011B10012016 -S31540016DA09610000182136000DA02000180A34010B0 -S31540016DB0A204600112800087A004000C80A4600A2E -S31540016DC024BFFFEFE0240000C0A0022003100120F1 -S31540016DD0A810000BAA106000A0102000A2102003EA -S31540016DE090047FFD4000095892102003832C6002D5 -S31540016DF0912A0014DA04C00190020015820B6060EA -S31540016E009132200480A000019012201EA040001063 -S31540016E109A0B7F9F900A3F9F80A340081280006F84 -S31540016E20A204600180A4600A24BFFFEF90047FFDA5 -S31540016E3080A4200012800004C205E01010800000EA -S31540016E4001000000D6066014D806E00882086003F7 -S31540016E50D407200CDA06A000111000A08328400BAD -S31540016E60980B2001992B000AD60220049A0B600246 -S31540016E708210400C9B2B400BAA10400D9FC5400031 -S31540016E800100000082102400C0A04300C0A00220DF -S31540016E90A0102000A21020039B2C6002C204C00D4A -S31540016EA08208606080A00001A0400010A204600139 -S31540016EB080A4600A24BFFFFA9B2C600280A42008AC -S31540016EC022800004D004E00410800000010000008C -S31540016ED0808A204002800007010000007FFFFE19E2 -S31540016EE00100000080A22000128000040100000081 -S31540016EF010800000010000007FFFFE12D004A008B0 -S31540016F0080A22000128000040100000010800000D1 -S31540016F10010000007FFFFE0BD004E00880A22000A4 -S31540016F2012800004010000001080000001000000F2 -S31540016F3083480000842860808188A0000100000009 -S31540016F400100000001000000D806E008D407200C2B -S31540016F50DA05E010980B2001D6066014992B000A39 -S31540016F609A0B6003C206A0009B2B400B151000A094 -S31540016F70D602A004820860018328400B9A13400C74 -S31540016F809A1340019A136004C203400092102004F0 -S31540016F9091D02002010000007FFFC41D01000000C6 -S31540016FA0981020009A102200D8A343208210200175 -S31540016FB0C2A34320D8A3432003100000DA804380B4 -S31540016FC0DAA04380D8A0032081D820003080000574 -S31540016FD01080000001000000108000000100000048 -S31540016FE081C7E00891E820009DE3BF98400007D1A2 -S31540016FF001000000808A21000280003F010000005C -S315400170007FFFA88E01000000912A20047FFFA87708 -S31540017010900220050310014082106048DA006004A6 -S3154001702080A360002280001503100140B0100001CA -S31540017030C20600009B38601F81836000DA06200487 -S3154001704001000000010000008278400DDA062008A8 -S31540017050B006200C80A0400D028000049010200153 -S315400170607FFFA86701000000C206200480A06000DF -S3154001707012BFFFF00310014082106000DA00600485 -S3154001708080A360000280001501000000B0100001DD -S31540017090C206000081800000DA06200401000000DB -S315400170A0010000009A70400D8210000DDA0620089A -S315400170B0B006200C80A0400D0280000490102002F2 -S315400170C07FFFA84F01000000C206200480A0600097 -S315400170D012BFFFF00100000040000824010000003B -S315400170E080A2200012800004010000007FFFA84416 -S315400170F09010200381C7E00891E820009DE3BF98E6 -S315400171007FFFA84E01000000912A20047FFFA83787 -S3154001711090022004400007890100000080A221233B -S3154001712002800004010000007FFFA8359010200175 -S315400171304000078001000000808A21000280002B68 -S315400171400310014082106184DA00600880A360095F -S315400171500280001101000000B0100001C2060000CB -S31540017160DA062004D80620088258400DB006200CC5 -S3154001717080A0400C02800004901020027FFFA820CE -S3154001718001000000C206200880A0600912BFFFF47A -S3154001719001000000400007760100000080A22000A7 -S315400171A00280000F0100000040000762010000005C -S315400171B0808A22000280000D010000004000079EE7 -S315400171C00100000080A2200012800008010000009A -S315400171D07FFFA80B90102004308000047FFFA80891 -S315400171E09010200330BFFFF181C7E00891E82000ED -S315400171F09DE3BFA0941020001110005C9012222440 -S315400172001310005C921262281710005C9612E2304D -S315400172101910005C9813223493C2000081C24000C9 -S315400172201080019181C2C00081C300001080018E8F -S315400172309402A0019402A00180A2A0031280018AB7 -S3154001724001000000874400008D30E00E8C89A007C4 -S3154001725080A1A000028000C701000000AF30E00B12 -S31540017260AE0DE00780A5E000128000C201000000DB -S3154001727080A1A00212800035010000002510000007 -S31540017280E41C80002510000029100000A8152104E7 -S31540017290A6100012AA100012AC100014A1802046BC -S315400172A0A4100000AA10000001000000A180204E99 -S315400172B0A810210001000000A1800000010000008B -S315400172C001000000E83CA03082A4801312800166D0 -S315400172D082A5001612800164010000000100000031 -S315400172E001000000874400008D30E00B8C89A00727 -S315400172F08CA1A0051280015CA18000000100000064 -S315400173000100000001000000E81CA03082A5001623 -S315400173101280015582A54012A4100000128001522C -S315400173200100000001000000874400008D30E00BA1 -S315400173308C89A0078CA1A0031280014B010000009B -S315400173401080008C0100000080A1A0011280002362 -S3154001735025100000E41C80002510000029100000C3 -S31540017360A8152104A6100012AA100012AC10001490 -S31540017370A1802046A4100000AA10000001000000D0 -S31540017380A180204EA810210001000000A18000002C -S31540017390010000000100000001000000E83C8000FF -S315400173A082A480131280013082A500161280012E1C -S315400173B00100000001000000874400008D30E00B11 -S315400173C08C89A0078CA1A002128001270100000030 -S315400173D0108000680100000080A1A00312800065B2 -S315400173E0A6100000A210200EA1844000A6100000A5 -S315400173F0A1800000A814E000AB4400000100000099 -S31540017400AC14E00001000000AF44000080A520005C -S3154001741012800115AA8D6E0080A5400012800112CE -S3154001742080A5A00012800110AF35E00BAE0DE0073C -S3154001743080A5E0011280010C01000000A0100000AF -S31540017440A1844000A6100000A1800000E8180000B9 -S31540017450AC100000AE100000EC04C000EE04E004E5 -S3154001746080A500161280010080A54017128000FEFB -S3154001747001000000A5440000A534A00BA40CA00700 -S3154001748080A4A001128000F801000000A0100000B5 -S31540017490A1844000A6100000A1800000A210200A8D -S315400174A0A1844000A4100000A1800000E81800005B -S315400174B0AC100000AE100000EC04C012EE04E00473 -S315400174C080A50016128000E880A54017128000E6CC -S315400174D001000000A5440000A534A00BA40CA007A0 -S315400174E080A4A002068000E00100000021100140B6 -S315400174F0A0142200EC1C0000A0042008E81C000097 -S31540017500A1844000A6100000A1800000A210200E18 -S31540017510A1844000A4100010AC100000AE10000081 -S31540017520A18000000100000001000000EC3C801336 -S31540017530AC100000AE100000E81CC01280A5001679 -S31540017540128000C980A54017128000C701000000C3 -S31540017550A5440000A534A00BA40CA00780A4A00458 -S31540017560128000C1010000001080000201000000ED -S315400175708B4440008A09601F80A160010280000A95 -S315400175808C1000059DE3BFA08AA1600116BFFFFED6 -S315400175900100000081E800008CA1A00116BFFFFE9A -S315400175A0010000000100000001000000A023A080AE -S315400175B0A02C20078E100010A3480000E2240000F2 -S315400175C0C2242004C43C2008C83C2010CC3C2018CE -S315400175D0F03C2020F43C2028F83C2030FC3C20386C -S315400175E0D03C2040D43C2048D83C2050DC3C20585C -S315400175F0A5500000E424206080102008821020015C -S315400176008410200286102003881020048A10200549 -S315400176108C10200681900000A42C601F818C800074 -S31540017620010000000100000001000000030040408D -S3154001763082106101841000008610000089444000D8 -S315400176408809201F86100004A01000028400400211 -S31540017650A210000284004002A410000284004002ED -S31540017660A610000284004002A810000284004002D5 -S31540017670AA10000284004002AC10000284004002BD -S31540017680AE100002840040029010000284004002C5 -S3154001769092100002840040029410000284004002CD -S315400176A096100002840040029810000284004002B5 -S315400176B09A100002840040029C100002840040029D -S315400176C09E1000028400400281E0000086A0E00195 -S315400176D016BFFFDE01000000030040408210610139 -S315400176E0841000008610000480A400021280003F2E -S315400176F08400400280A440021280003C8400400283 -S3154001770080A48002128000398400400280A4C00215 -S31540017710128000368400400280A5000212800033A8 -S315400177208400400280A5400212800030840040025D -S3154001773080A580021280002D8400400280A5C002EF -S315400177401280002A8400400280A200021280002793 -S315400177508400400280A2400212800024840040023C -S3154001776080A28002128000218400400280A2C002D1 -S315400177701280001E8400400280A300021280001B7A -S315400177808400400280A34002128000188400400217 -S3154001779080A38002128000158400400280A3C002AB -S315400177A0128000128400400281E0000086A0E001C0 -S315400177B016BFFFCE0100000080A020001280000B02 -S315400177C080A0FFFF1280000980A16005128000079A -S315400177D080A1A0061280000501000000A01000074C -S315400177E010800006C0242020A01000079010200120 -S315400177F010800002D024202082100007C4004000DF -S3154001780081888000010000000100000001000000A5 -S31540017810C4186008C8186010CC186018F0186020A9 -S31540017820F4186028F8186030FC186038D0186040A9 -S31540017830D4186048D8186050DC186058E40060607D -S31540017840C200600481948000010000000100000034 -S3154001785001000000A0100007F004202081C7E008C5 -S3154001786081E8000010BFFFFCB010000001000000DD -S3154001787081D8200081C3E008010000001B100144AB -S31540017880D8036150821020018328400C1B1001440B -S3154001789082007FFFD803615482084008932A400C36 -S315400178A0900040098213C0007FFFE77F9E10400091 -S315400178B0010000001B100144D803615082102001D1 -S315400178C08328400C1B10014482007FFFD80361547A -S315400178D0932A400C82084008900040099210000A01 -S315400178E08213C0007FFFE7729E1040000100000036 -S315400178F01B100144D8036150821020018328400C9B -S315400179001B10014482007FFFD8036154932A400C27 -S3154001791082084008900040099210000A8213C00074 -S315400179207FFFE7679E104000010000001B100144E5 -S31540017930D8036150821020018328400C1B1001445A -S3154001794082007FFFD803615482084008932A400C85 -S31540017950900040098213C0007FFFE7579E10400008 -S31540017960010000001B100144D803615C8210200114 -S315400179708328400C1B10014482007FFFD803616CB1 -S31540017980932A400C82084008900040099210000A50 -S315400179908213C0007FFFE74E9E10400001000000A9 -S315400179A01B100144D803615C821020018328400CDE -S315400179B01B10014482007FFFD803616C932A400C5F -S315400179C082084008900040099210000A8213C000C4 -S315400179D07FFFE7439E104000010000009DE3BF5832 -S315400179E02D100144A2102000C205A16080A44001CF -S315400179F01680001BA01020002B10014429100144C1 -S31540017A0027100144A4102001D005615C912C800807 -S31540017A10C205216C90023FFF832C0001900A001899 -S31540017A207FFFE72990020001C204E14C901E000845 -S31540017A30900A000180A00008A2647FFFA0042001F3 -S31540017A40C205A16080A4000126BFFFF1D005615C9B -S31540017A5080A4600012800003B0102000B010200105 -S31540017A6081C7E00881E800001B100144D803615C2E -S31540017A70821020018328400C1B10014482007FFFA5 -S31540017A80D803616C82084008932A400C9000400953 -S31540017A908213C0007FFFE70C9E10400001000000EA -S31540017AA01B100144D803615C821020018328400CDD -S31540017AB01B10014482007FFFD803616C8208400895 -S31540017AC0932A400C900040098213C0007FFFE702D1 -S31540017AD09E10400001000000952AA00D03280000D9 -S31540017AE094028009D02040009422B000D420600442 -S31540017AF081C3E00801000000033FFFBF821062F826 -S31540017B009DE38001193FFFBF94132368B407BFF873 -S31540017B10031000459606800A82106020C222E00CBE -S31540017B2003100044821063E0C222E0041B100044AB -S31540017B309A1363C0033FFFBFDA26800A901323805E -S31540017B40331000458210635C94068008981323C065 -S31540017B50921660008200401ED222E008D4204000E6 -S31540017B60B006800C7FFFA5A1901020067FFFE6CAD4 -S31540017B7090102000920A3FF07FFFE6C99010200046 -S31540017B80210000307FFFE6C490102000808A00105B -S31540017B9012BFFFFD010000007FFFFF3621000030CC -S31540017BA07FFFE6BD90102000808A001012BFFFFDC6 -S31540017BB0010000007FFFE6B890102000030020403E -S31540017BC08210600F921200017FFFE6B590102000EF -S31540017BD07FFFE6B19010200821100144D0242148AE -S31540017BE07FFFE6AD9010200CA73A2010993A201459 -S31540017BF0A60CE007980B200FDA042148A8230013AE -S31540017C00A80520089F3B6014933B60109B3B60187E -S31540017C1094050013A2102001AC03200A9E0BE00F2D -S31540017C2096102400AE0B60039402A00221200000AE -S31540017C30992AC00C1B1001448203E00A952C400A84 -S31540017C409424000A832C4001D8236168A0240001B2 -S31540017C501B10014403100144EC23615C972AC00FB9 -S31540017C60AA03E00A1B100144D620614403100144D3 -S31540017C70EA236154EA2061501B1001440310014478 -S31540017C80D423614C920A6007A53A2018D020615846 -S31540017C90153FFFBF932C4009A40CA00303100144D8 -S31540017CA09412A358932C4009A404A001391001440D -S31540017CB037100144EC20616C9B2C40149402801EC9 -S31540017CC0E0272164E426E160AA027FFFDA228000F0 -S31540017CD0AC85E0010280000CBB2C4013033FFFBF83 -S31540017CE082106368A0068001A4100016D00400002B -S31540017CF09FC20000A0042004A484BFFF32BFFFFD41 -S31540017D00D00400007FFFE66490102000920A3FFCF9 -S31540017D107FFFE66390102000A410200080A4801607 -S31540017D2016800022A2102000033FFFBFAE106368F9 -S31540017D30A610001AA010200080A400163680001854 -S31540017D40A404A00110800005A810001780A4001605 -S31540017D5036800013A404A001921000107FFFFEC8D4 -S31540017D60D004C014820A001580A0401512BFFFF846 -S31540017D70A0042001C204C01482184008DA07216415 -S31540017D808208400D80A00001A2647FFF80A40016F6 -S31540017D9006BFFFF392100010A404A00180A4801630 -S31540017DA006BFFFE5A604E0047FFFE63B90102000F6 -S31540017DB0A6100008901020007FFFE6399214E003D8 -S31540017DC080A46000028001B101000000833CE00C08 -S31540017DD080886003128000A5030048D1833CE013EC -S31540017DE080886003128001AD010000007FFFFEA183 -S31540017DF0210000307FFFE62890102000808A001085 -S31540017E0012BFFFFDA6100008A4102000C206E160C3 -S31540017E1080A480011680000D832CA00292100012CE -S31540017E20901000187FFFFED094102000A404A001FA -S31540017E30C206E16080A4800106BFFFFA92100012DB -S31540017E40A4102000832CA002A404A001C026000196 -S31540017E5080A4A01E04BFFFFD832CA0028210200532 -S31540017E60C22600009A102001DA2620048210200240 -S31540017E70C22620089A102003DA26200C7FFFFED85E -S31540017E809010001880A22000028001D3010000005A -S31540017E90C206000080A060050280000401000000C7 -S31540017EA07FFFA4D7901020067FFFFECD90100018CB -S31540017EB080A22000128001C401000000A41020000D -S31540017EC0C206E16080A480011680000F9210001264 -S31540017ED0A0062004941020007FFFFEB290100018E7 -S31540017EE092100012901000107FFFFEAE94102000F9 -S31540017EF0A404A001C206E16080A4800106BFFFF68A -S31540017F00921000127FFFE5FA901000187FFFE5F806 -S31540017F10900620207FFFE5F6900620407FFFE5F49E -S31540017F2090062060A4102000C206E16080A4800172 -S31540017F3006800196A21020007FFFA4B19010200870 -S31540017F40173FFFBF8212E3C0940680018212E35CB1 -S31540017F508200401ED81A8000C2004000D838400036 -S31540017F609612E380C206800B80A06005128000064F -S31540017F708206800BDA00600480A36001028000055E -S31540017F80A41020007FFFA49E90102009A410200079 -S31540017F90C206E16080A4800116800011A210200073 -S31540017FA0A0062004921000127FFFFEBE9010001022 -S31540017FB0901A200180A00008A2647FFFA404A001BA -S31540017FC0C206E16080A4800106BFFFF8921000124C -S31540017FD080A4600102800005833CE0137FFFA488F2 -S31540017FE09010200A833CE013808860031280018050 -S31540017FF082102005C22600009A102001DA262004AC -S3154001800082102002C22620089A102003DA26200C6C -S315400180101B3FFFBF9A1363589A03401ED00340008B -S315400180204000048D9210001D032EEEEEA12A20027F -S31540018030A21063BBE22600107FFFFE699010001874 -S3154001804080A220001280016701000000C2060010D4 -S3154001805080A0401102800005030048D17FFFA4683B -S3154001806090102012030048D1821061671B226AF3E7 -S31540018070C22620209A1361EFDA262024C20E202040 -S3154001808080A0600102800004010000007FFFA45C23 -S315400180909010201AC20E202180A060230280000485 -S315400180A0010000007FFFA4569010201BC20E202223 -S315400180B080A0604502800004010000007FFFA450BB -S315400180C09010201CC20E202380A06067028000040D -S315400180D0010000007FFFA44A9010201DC20E2024FB -S315400180E080A0608902800004010000007FFFA44453 -S315400180F09010201EC20E202580A060AB0280000495 -S31540018100010000007FFFA43E9010201FC20E2026D2 -S3154001811080A060CD02800004010000007FFFA438EA -S3154001812090102020C20E202780A060EF028000041C -S31540018130010000007FFFA43290102021C2162020AA -S31540018140832860108330601080A061230280000480 -S31540018150010000007FFFA42A90102022DA16202277 -S315400181609B2B6010030000119B33601082106167E6 -S3154001817080A3400102800004010000007FFFA4208B -S3154001818090102023DA1620249B2B60100300002236 -S315400181909B336010821061AB80A3400102800004D2 -S315400181A0010000007FFFA41690102024DA16202635 -S315400181B09B2B6010030000339B336010821061EFEC -S315400181C080A3400102800005821020307FFFA40C6D -S315400181D09010202582102030C22E2020030C08D179 -S315400181E0DA0620208210616780A3400102800005E3 -S315400181F0821020317FFFA402901020278210203167 -S31540018200C22E2021030C0C51DA0620208210616710 -S3154001821080A3400102800005821020327FFFA3F82F -S315400182209010202882102032C22E2022210C0C4C84 -S31540018230DA0620208214226780A3400102800005CD -S31540018240821020337FFFA3EE901020298210203325 -S31540018250C22E20239A142233C206202080A0400D2C -S3154001826002800005821020347FFFA3E59010202A6A -S3154001827082102034C22E2024030D2AF3DA0620244C -S31540018280821061EF80A340010280000582102035F3 -S315400182907FFFA3DB9010202B82102035C22E202594 -S315400182A0030D0D73DA062024821061EF80A340018D -S315400182B002800005821020367FFFA3D19010202C2A -S315400182C082102036C22E2026210D0D4DDA0620249D -S315400182D0821422EF80A340010280000582102037DC -S315400182E07FFFA3C79010202D82102037C22E202752 -S315400182F09A142237C206202480A0400D0280000530 -S31540018300210000107FFFA3BE9010202E21000010F7 -S3154001831082142041C23620200310104CDA06202058 -S315400183208210623380A340010280000582142243F9 -S315400183307FFFA3B39010202F82142243C2362022FE -S3154001834003101050DA0620208210624380A34001B8 -S3154001835002800005210000117FFFA3A99010203063 -S315400183602100001182142045C23620240311114DEB -S31540018370DA0620248210623780A34001028000057C -S31540018380821422477FFFA39E9010203182142247F8 -S31540018390C236202603111151DA0620248210624783 -S315400183A080A3400102800004010000007FFFA394E6 -S315400183B0901020327FFFFD2FA4102000C206E160FD -S315400183C080A48001168000151B100144D403616C02 -S315400183D096100001A010200080A4001D3680000CDC -S315400183E0A404A001832C800A9B286002992CA0102A -S315400183F082130010C226000DA004200180A4001D96 -S3154001840006BFFFFC9A036004A404A00180A4800B6C -S3154001841026BFFFF2A01020007FFFE49F90102000AE -S3154001842003000010808A000112BFFFFC010000001A -S31540018430A4102000C206E16080A4800116800114C8 -S31540018440921000127FFFFD8990100018151001440B -S31540018450C202A14C900A0001820E000180A20001D5 -S31540018460A404A00112BFFFF4901020337FFFA36440 -S3154001847001000000C206E16080A4800106BFFFF250 -S3154001848092100012308001027FFFA35D90102001FF -S3154001849010BFFE50833CE00C7FFFE47F901020002C -S315400184A0133FFFF09212603F920A0009A61000089E -S315400184B07FFFE47B901020007FFFE3D2A4102000D1 -S315400184C01303C0009214C0097FFFE4759010200089 -S315400184D080A4801616800009921000129016600042 -S315400184E07FFFFD0494102000A404A00180A48016FF -S315400184F006BFFFFB921000127FFFE3C2010000009E -S315400185007FFFE46590102000913A200A900A2003EB -S3154001851080A2200102800004010000007FFFA338F1 -S315400185209010200201000000921020009016600079 -S315400185307FFFFCE194102000010000007FFFE4561C -S31540018540901020001303C000922A00097FFFE454D3 -S3154001855090102000010000007FFFE3AA0100000007 -S315400185607FFFE44D90102000913A200C900A2003A1 -S3154001857080A2200102BFFE1E010000007FFFA32052 -S315400185809010200330BFFE1A921000127FFFFD4566 -S3154001859090100018901A200580A00008A2647FFF61 -S315400185A0A404A001C206E16080A4800106BFFFF8D1 -S315400185B09210001280A4600012BFFE63173FFFBFF6 -S315400185C030BFFE5E7FFFA30E9010200710BFFE3D19 -S315400185D0A41020007FFFA30A9010200530BFFE2D76 -S315400185E07FFFA3079010201130BFFE997FFFE42A39 -S315400185F090102000033FFFF08210603F920A000175 -S315400186007FFFE42790102000033FFFBFA010638047 -S3154001861092102000941020007FFFFCE2900680100B -S315400186207FFFE41D901020000303C0009212000159 -S315400186307FFFE41B9010200010800006A41020004C -S31540018640900680107FFFFCD794102005A404A0015A -S31540018650C206E16080A4800106BFFFFA92100012B3 -S31540018660033FFFBFA01063809A102001DA2E8010CD -S3154001867003004000D80680108210600580A30001E7 -S3154001868002800004010000007FFFA2DD9010200B54 -S315400186907FFFE40190102000913A2006900A2003C2 -S315400186A080A2200102800004010000007FFFA2D4C5 -S315400186B09010200C7FFFE3F8901020001303C000B8 -S315400186C0922A00097FFFE3F69010200092102000C5 -S315400186D0900680107FFFFCB3941020007FFFE3EEED -S315400186E0901020002103C000921200107FFFE3EC9E -S315400186F0901020007FFFE3E890102000808A001050 -S3154001870002BFFFFDA6100008A4102000C206E160CA -S3154001871080A480011680000E033FFFBF9A102001FE -S31540018720A2106380A12B401D921000129006801169 -S315400187307FFFFC8D94043FFFA404A001C206E160C3 -S3154001874080A4800106BFFFFA921000121303C000F5 -S31540018750922CC0097FFFE3D2901020002103C00074 -S315400187607FFFE3CD90102000808A001012BFFFFDED -S315400187701B004000213FFFBF82142380D8068001A1 -S315400187809A13600580A3000D0280000401000000D9 -S315400187907FFFA29B9010200D7FFFE3BF901020002A -S315400187A0913A2008900A200380A2200122800005E8 -S315400187B0A01423787FFFA2929010200FA014237853 -S315400187C094068010981020119A102055D83A8000AE -S315400187D07FFFE3B1901020000303C0009212000115 -S315400187E0920A7F3F7FFFE3AE90102000A0068010E3 -S315400187F07FFFE3CD9010001010800006A4102000EA -S31540018800900420047FFFFC6794102055A404A00126 -S31540018810C206E16080A4800106BFFFFA92100012F1 -S31540018820113FFFBF901223787FFFE3BF9006800878 -S3154001883080A220111280000480A2605502800004AB -S31540018840010000007FFFA26E901020107FFFE3928F -S3154001885090102000833A20068208600380A06001C0 -S3154001886002800004A61000087FFFA2659010201028 -S31540018870133C3FF09212603F920CC0097FFFE388A0 -S315400188809010200010BFFDDC821020057FFFE3829F -S31540018890901020009212200F7FFFE381901020005C -S315400188A081C7E00891E820009DE3BF987FFFFC93D4 -S315400188B001000000B0100008130020409212600F22 -S315400188C07FFFE377901020000100000081C7E00898 -S315400188D081E80000033FFFBF821063589DE380019A -S315400188E07FFFFBE401000000400002380100000068 -S315400188F07FFFE36990102008A21000087FFFE3661E -S315400189009010200C7FFFA24DA0100008912A200450 -S315400189107FFFA2369002200C973C6014833C60187E -S31540018920953C2014993C201882086003960AE00F72 -S31540018930820060019602E00AA33C6010A13C20102F -S31540018940980B2003940AA00FA728400B98032001F7 -S31540018950A20C6007A00C20079402A00A9A102001DD -S31540018960A2046002A0042002B12B000A03200000E9 -S31540018970AB2B4011A52B40109620401898057FFF40 -S31540018980822040139A04BFFFAE130001A213400B8D -S31540018990210000307FFFE34090102000808A0010C4 -S315400189A012BFFFFD033FFFBF9A07BFF8821063C0A6 -S315400189B0A00340012D155555901000189210001036 -S315400189C07FFFE2C89415A15580A220001280004B7A -S315400189D0292AAAAA92100010901000187FFFE2D50A -S315400189E0941522AA80A220001280004E01000000A8 -S315400189F07FFFA21201000000912A20047FFFA1FB04 -S31540018A009002200A400001EE01000000921522006A -S31540018A10920C400990100018941000119610001203 -S31540018A207FFFE2ED981522AA80A220001280005114 -S31540018A30010000009215A10090100018920C400907 -S31540018A4094100011961000127FFFE2E39815A1558C -S31540018A5080A2200012800044010000007FFFA1F7A0 -S31540018A6001000000912A20047FFFA1E09002200B23 -S31540018A70901000137FFFE2BF9215A15580A22000FE -S31540018A801280003501000000901000137FFFE2B90B -S31540018A90921522AA80A220001280002C010000001B -S31540018AA07FFFA1E601000000912A20047FFFA1CFAC -S31540018AB0900220099010001392100017941000158F -S31540018AC07FFFE2B8961522AA80A220001280001BE1 -S31540018AD00100000090100013921000179410001529 -S31540018AE07FFFE2B09615A15580A2200002800025A5 -S31540018AF0010000003080000E7FFFA1C190102001CF -S31540018B00292AAAAA92100010901000187FFFE28924 -S31540018B10941522AA80A2200002BFFFB601000000E0 -S31540018B207FFFA1B79010200230BFFFB27FFFA1B4F3 -S31540018B3090102008308000137FFFA1B190102007CC -S31540018B4010BFFFE6901000137FFFA1AD90102006E5 -S31540018B5030BFFFD47FFFA1AA9010200510BFFFCCE4 -S31540018B60901000137FFFA1A69010200430BFFFBCD8 -S31540018B707FFFA1A39010200310BFFFB09215A10063 -S31540018B807FFFFB3CB0102000400001900100000037 -S31540018B900100000081C7E00881E800009DE3BF981D -S31540018BA07FFFA18D1100412CDA062004D80620044E -S31540018BB09A0B6003993B200282102007C2262008A7 -S31540018BC0BA036001B20B27FF010000009010200A92 -S31540018BD0C02600007FFFA1850100000017000200AA -S31540018BE082103FFFC226000B032AAAAA1B15555520 -S31540018BF0D806000BAC102000821062AA9A13615568 -S31540018C00AA0B000180A5801D16800038A80B000D17 -S31540018C109612E020A72E600880A4E0000480000C94 -S31540018C20A2102000832DA0028200401819000200E4 -S31540018C309A10000BE820400CEA20400DA204601077 -S31540018C4080A4C01114BFFFFC82006040AC05A001A6 -S31540018C5080A5801D06BFFFF280A4E000AC10200075 -S31540018C6080A5801D1680002103000200B8106020F7 -S31540018C70A72E6008AE10001880A4E00004800017FB -S31540018C80A210200003000200A4060001A005C01C9A -S31540018C90C2048000A2046010A404A04080A0401435 -S31540018CA002800004901020017FFFA15501000000C1 -S31540018CB0C2040000A004204080A0401502800004A8 -S31540018CC0901020017FFFA14E0100000080A4C01139 -S31540018CD014BFFFF001000000AC05A00180A5801D76 -S31540018CE006BFFFE6AE05E0047FFFA1409010200CD1 -S31540018CF0AC10200080A5801D1680008803155555AF -S31540018D009E1061551B000800032AAAAA9A13600403 -S31540018D10901062AAA72E600880A4E0000480000E8D -S31540018D20A2102000832DA0138200401813000800D2 -S31540018D309410000F9610000D98100008D420400999 -S31540018D40D820400BA204600280A4C01114BFFFFCCE -S31540018D5082006008AC05A00180A5801D06BFFFF01A -S31540018D6080A4E000AC10200080A5801D1680006B19 -S31540018D7003155555B81061551B000800032AAAAAC8 -S31540018D80B6136004B41062AAA72E600880A4E0005E -S31540018D9004800019A2102000832DA013A0004018C2 -S31540018DA02F000800AA10001CA810001BA410001ACE -S31540018DB0C2040017A204600280A04015028000048C -S31540018DC0901020037FFFA10E01000000C204001491 -S31540018DD0A004200880A040120280000490102003C5 -S31540018DE07FFFA1070100000080A4C01114BFFFF15D -S31540018DF001000000AC05A00180A5801D06BFFFE56E -S31540018E0080A4E000AC10200080A5801D16800043A0 -S31540018E10030008009E1060041B155555032AAAAA93 -S31540018E209A136155901062AAA72E600880A4E000AB -S31540018E300480000EA2102000832DA013820040184A -S31540018E40130008009410000F9610000D98100008AA -S31540018E50D620400AD8204009A204600280A4C0114D -S31540018E6014BFFFFC82006008AC05A00180A5801DEF -S31540018E7006BFFFF080A4E000AC10200080A5801D55 -S31540018E801680002603155555B81061551B2AAAAA06 -S31540018E9003000800A72E6008B61362AAB410600446 -S31540018EA080A4E00004800019A2102000832DA013A5 -S31540018EB0A00040182F000800AA10001CA810001B93 -S31540018EC0A410001AC2040012A204600280A0401538 -S31540018ED002800004901020047FFFA0C90100000019 -S31540018EE0C2040017A004200880A040140280000498 -S31540018EF0901020047FFFA0C20100000080A4C01191 -S31540018F0014BFFFF101000000AC05A00180A5801D42 -S31540018F1006BFFFE580A4E00082102005C226200896 -S31540018F201B200000DA26000081C7E00881E8000026 -S31540018F3081C3E00891444000808000001510014043 -S31540018F409412A18090102000921022468180000048 -S31540018F50010000000100000001000000D002800075 -S31540018F609122400881C3E008010000008180000091 -S31540018F70901020018090200180D020011280002C89 -S31540018F800100000080D23FFF168000290100000049 -S31540018F9080DA3FFF9340000080A27FFF12800024C9 -S31540018FA00100000080D23FFF9348000093326014D5 -S31540018FB0920A600F80A260081280001D0100000025 -S31540018FC08180000090102001945220049452A00404 -S31540018FD09452A00496A2A040128000150100000000 -S31540018FE0818000009010200280A000003280001095 -S31540018FF09052000880A220021280000D010000005C -S31540019000818000009010200280A000000100000035 -S31540019010328000079052000880A22002128000048C -S315400190200100000081C3E0089010200181C3E008DF -S31540019030901000001315555592126155A5824000B6 -S31540019040010000000100000001000000954480007D -S3154001905080A2400A1280004301000000923A40007B -S31540019060A58240000100000001000000010000004F -S315400190709544800080A2400A1280003A0100000017 -S315400190801100003F901223FFA5800000818000005F -S3154001909001000000010000000100000093F23FFFC3 -S315400190A09A10000993F23FFF93F23FFF93F23FFF7D -S315400190B093F23FFF93F23FFF93F23FFF93F23FFF5D -S315400190C09940000097448000153FFC009412A00887 -S315400190D080A2400A1280002380A2400B1280002108 -S315400190E080A320071280001F113FFF8090122001AC -S315400190F080A340081280001B1100003F901223FFFD -S31540019100A5800000818000000100000001000000F0 -S315400191100100000093FA3FFF93FA3FFF93FA3FFFA6 -S3154001912093FA3FFF93FA3FFF93FA3FFF93FA3FFFCC -S3154001913093FA3FFF994000009744800080A260085F -S315400191401280000880A260081280000680A32000D9 -S31540019150128000040100000081C3E0089010200144 -S3154001916081C3E00890100000818000009010200229 -S3154001917080A00000328000109072000880A2200278 -S315400191801280000D01000000818000009010200235 -S3154001919080A00000010000003280000790720008A4 -S315400191A080A22002128000040100000081C3E00871 -S315400191B09010200181C3E00890100000C0A000403B -S315400191C081C3E00801000000110020409012200FE9 -S315400191D0D0A0004081C3E008010000009DE3BF9894 -S315400191E07FFFE12D90102008A21000087FFFE12AA1 -S315400191F09010200C833C60149B3A2014A13A20180D -S31540019200A33C6018A20C6003A00C20038208600FE7 -S315400192109A0B600F8200600A9A03600AA2046001F9 -S31540019220A0042001A32C40017FFFFFE5A12C000DE6 -S315400192307FFFE090901000117FFFE09C901000109E -S315400192407FFFF98C010000007FFFFFE081E800000D -S315400192500100000098120009818200009AAB2FFF9D -S315400192600280002598880000992300099923000966 -S315400192709923000999230009992300099923000993 -S315400192809923000999230009992300099923000983 -S315400192909923000999230009992300099923000973 -S315400192A09923000999230009992300099923000963 -S315400192B09923000999230009992300099923000953 -S315400192C09923000999230009992300099923000943 -S315400192D09923000999230009992300099923000933 -S315400192E099230009992300099923000081C3E008C5 -S315400192F09140000099230009992300099923000907 -S315400193009923000999230009992300099923000902 -S3154001931099230009992300099923000999230009F2 -S3154001932099230009992300009B400000992B200CAA -S315400193309B33601481C3E0089013400C1080000BEE -S31540019340861020008092400816800008861000088A -S31540019350809240001680000480920000168000032F -S3154001936092200009902000089A9240001280000540 -S315400193709610000891D0200281C3E00890100000A9 -S3154001938080A2C00D0A8000959410000003020000DF -S3154001939080A2C0010A8000289810000080A34001E5 -S315400193A01A80000D841020019B2B600410BFFFFC26 -S315400193B0980320019A83400D1A8000078400A0017A -S315400193C0832860049B3360019A03400110800007A3 -S315400193D08420A00180A3400B0ABFFFF701000000D3 -S315400193E0028000020100000084A0A00106800076F0 -S315400193F0010000009622C00D941020011080000A41 -S3154001940001000000952AA001068000059B336001FA -S315400194109622C00D108000049402A0019602C00D50 -S315400194209422A00184A0A00116BFFFF78092C0003C -S31540019430308000659B2B600480A3400B08BFFFFE74 -S315400194409883200102800065982320018092C00004 -S31540019450952AA0040680002F9B33600196A2C00D79 -S31540019460068000179B33600196A2C00D0680000B53 -S315400194709B33600196A2C00D068000059B336001B7 -S3154001948096A2C00D108000509402A00F9682C00D86 -S315400194901080004D9402A00D9682C00D06800005F5 -S315400194A09B33600196A2C00D108000479402A00B29 -S315400194B09682C00D108000449402A0099682C00D88 -S315400194C00680000B9B33600196A2C00D0680000505 -S315400194D09B33600196A2C00D1080003B9402A00709 -S315400194E09682C00D108000389402A0059682C00D68 -S315400194F0068000059B33600196A2C00D10800032A4 -S315400195009402A0039682C00D1080002F9402A00100 -S315400195109682C00D068000179B33600196A2C00D4E -S315400195200680000B9B33600196A2C00D06800005A4 -S315400195309B33600196A2C00D108000239402BFFFA9 -S315400195409682C00D108000209402BFFD9682C00D08 -S31540019550068000059B33600196A2C00D1080001A5B -S315400195609402BFFB9682C00D108000179402BFF98A -S315400195709682C00D0680000B9B33600196A2C00DFA -S31540019580068000059B33600196A2C00D1080000E37 -S315400195909402BFF79682C00D1080000B9402BFF56E -S315400195A09682C00D068000059B33600196A2C00DD0 -S315400195B0108000059402BFF39682C00D1080000210 -S315400195C09402BFF198A3200116BFFFA28092C0006A -S315400195D0268000029602C0098090C00026800002C3 -S315400195E09620000B81C3E0089010000B92100008F2 -S315400195F09010200094102000961020008213C00085 -S31540019600400000039E104000010000009DE3BF980A -S3154001961023100143400005F6901460F40310006DD9 -S31540019620E0006178D004214880A220002280002DEC -S315400196309004214CD602200480A2E01F1480001D14 -S315400196400100000080A620001280000B94022088B1 -S31540019650832AE0029A02E00182004008DA222004CD -S31540019660F2206008400005FA901460F41080002250 -S31540019670B0102000821020019328400B992AE00265 -S31540019680DA02A1009A1340098203000AF62060809B -S31540019690F422800C80A6200212BFFFEEDA22A1003E -S315400196A0C202A1048210400910BFFFEAC222A104EE -S315400196B0400000139010219080A220000280000BF0 -S315400196C096102000C2042148C2220000D02421481D -S315400196D0C0222004C022218810BFFFDBC022218C7A -S315400196E010BFFFD5D0242148400005D9901460F41D -S315400196F0B0103FFF81C7E00881E8000092100008E2 -S3154001970003100141D00063708213C0004000000A7B -S315400197109E10400001000000921000080310014114 -S31540019720D00063708213C000400002199E104000B1 -S31540019730010000009DE3BF988206600B80A0601681 -S31540019740A610001818800003A0087FF8A01020106A -S3154001975080A400199A4020008334201F8090400D38 -S31540019760128001B0B0102000400001B090100013EB -S3154001977080A421F718800017993420093910014136 -S315400197808217238098040001F003200C80A6000C68 -S315400197900280004E9F342003C206200494087FFCB9 -S315400197A09A06000AC203600482106001D006200CAA -S315400197B0D2062008D2222008C2236004D022600C9F -S315400197C0400001A09010001310800196B0062008B9 -S315400197D080A32000128000289F34200339100141C4 -S315400197E09B2BE003821723809A0340011080000AD5 -S315400197F0F003600C94087FFC9622801080A2E00F53 -S315400198001480010980A2E00036BFFFE79A06000AEC -S31540019810F006200C80A6000D32BFFFF7C2062004D9 -S315400198209E03E001251001419814A388F003200806 -S3154001983080A6000C0280005D833BE01FC206200427 -S3154001984094087FFC9622801080A2E00F1480009F2E -S3154001985080A2E000D823200C06800023D8232008CC -S315400198609A06000AC20360048210600110BFFFD548 -S31540019870C22360048334200680A3200408BFFFD896 -S315400198809E00603880A3201408BFFFD59E03205B4D -S315400198908334200C80A3205408BFFFD19E00606E04 -S315400198A08334200F80A3215408BFFFCD9E006077EB -S315400198B08334201280A3255408BFFFC99E00607CD3 -S315400198C010BFFFC79E10207E98062008F003200C8B -S315400198D080A6000C32BFFFB2C206200410BFFFD2E1 -S315400198E09E03E00280A2A1FF088000BE9B32A00336 -S315400198F09732A00980A2E0002280001796172380A4 -S315400199008332A00680A2E004088000129A006038E3 -S3154001991080A2E0140880000F9A02E05B8332A00C1B -S3154001992080A2E0540880000B9A00606E8332A00F3B -S3154001993080A2E154088000079A0060778332A01222 -S3154001994080A2E554088000039A00607C9A10207E2C -S3154001995096172380832B60039000400BD202200888 -S3154001996080A240082280010F99336002C20260043E -S3154001997082087FFC80A0400A28800007D002600C44 -S31540019980D202600880A2400832BFFFFAC2026004D8 -S31540019990D002600CD026200CD2262008F022600C82 -S315400199A0F0222008833BE01F8330601E8203C00102 -S315400199B03910014183386002981723809A1020019B -S315400199C0932B4001D803200480A2400C1880004B01 -S315400199D0AE172380808B00091280000D03100141D0 -S315400199E0820BFFFC92024009808B0009128000071E -S315400199F09E0060048210000C920240098088400952 -S31540019A0002BFFFFE9E03E00403100141A2106380E2 -S31540019A10A8100011832BE003980040119010000F0D -S31540019A209A10000C1080000AF003600C94087FFC29 -S31540019A309622801080A2E00F1480007D80A2E00073 -S31540019A403680008B9A06000AF006200C80A6000D8F -S31540019A5032BFFFF7C20620049E03E001808BE0037C -S31540019A6012BFFFF19A036008808A200398033FF8EA -S31540019A70028000D490023FFFC203200880A0400C20 -S31540019A8002BFFFFB808A200392024009C2052004DF -S31540019A9080A24001188000183910014180A260005F -S31540019AA0128000068088400910800014AE1723807A -S31540019AB09E03E0048088400922BFFFFE92024009CE -S31540019AC010BFFFD6832BE0038214200194060010B9 -S31540019AD0C2262004D423200CD42320088212E0017C -S31540019AE0D622800BD822A008C222A00410BFFF357F -S31540019AF0D822A00CAE172380F005E008C206200448 -S31540019B00AA087FFC80A540109A4020009625401067 -S31540019B1080A2E00F14800042821020018093400110 -S31540019B200280002703100143DA0061982D1001419C -S31540019B309A04000DC205A378A810001580A07FFFE6 -S31540019B40A203601002800004A406001582046FFF80 -S31540019B50A208700090100013400000C0921000113E -S31540019B6080A23FFF02800008B210000880A20012C6 -S31540019B701A8000463B10014380A60017228000440C -S31540019B80C207616882172380D8006008DA0320047F -S31540019B909A0B7FFC80A340109840200096234010EA -S31540019BA080A2E00F04800003821020018210200071 -S31540019BB080930001128000980100000098172380CD -S31540019BC0F003200882142001C22620049A060010C0 -S31540019BD08212E001C223600410BFFEFADA23200894 -S31540019BE098033FF8832B60039000400C9B3360023F -S31540019BF0821020018328400DD2022008DA03200476 -S31540019C009A134001D026200CD2262008F022600C5F -S31540019C10DA23200410BFFF64F022200810BFFFC0E2 -S31540019C208210200010BFFEFF9E03FFFFD006200CCE -S31540019C30D20620089A142001940600108214A388A3 -S31540019C40D2222008D022600CDA262004D420600CCF -S31540019C50D42060089A12E001D622800BC222A008C5 -S31540019C60DA22A00410BFFED7C222A00CC2036004B0 -S31540019C7082106001D006200CD2062008C22360045F -S31540019C8010BFFECFD2222008C20761688200401170 -S31540019C9080A640120280004FC2276168C205A378A0 -S31540019CA080A07FFF02800045C20761689A26401264 -S31540019CB08200400DC22761689A8E600702800005C6 -S31540019CC0A410200082102008A420400DB2064012A4 -S31540019CD09A0640119A0B6FFF030000048220400D43 -S31540019CE0A4048001901000134000005C9210001201 -S31540019CF080A23FFF2280003FA4102000822200194B -S31540019D009000401282172380DA0761689A03401255 -S31540019D1080A60001F2206008DA27616802800037D8 -S31540019D208212200180A5600F38800005C22660049A -S31540019D308210200110BFFF94C2266004C20620048F -S31540019D409A057FF4A80B7FF88208600182104014BF -S31540019D50C22620049A06001482102005C2236008F8 -S31540019D6080A5200F18800027C223600419100143E3 -S31540019D70DA076168C203219480A34001388000025A -S31540019D80DA23219419100143C203219080A3400193 -S31540019D9038BFFF7DDA23219010BFFF7C82172380D5 -S31540019DA09A102001C202E0049B2B400C8210400D08 -S31540019DB010BFFEF9C222E00410BFFFC0F225A3780E -S31540019DC0C20460048228400910BFFF30C2246004E7 -S31540019DD0808E6FFF12BFFFB3C205A3789004401473 -S31540019DE0DA05E0088212200110BFFFE1C2236004B8 -S31540019DF010BFFFC39010001910BFFFDDC2266004DB -S31540019E0092062008400000629010001310BFFFD94F -S31540019E10191001434000000B90100013B0102000B0 -S31540019E2081C7E00881E800001110014290122388A1 -S31540019E308213C000400003EE9E1040000100000066 -S31540019E4011100142901223888213C0004000040081 -S31540019E509E104000010000009DE3BF98211001447F -S31540019E60C02421704000020D9010001980A23FFFCE -S31540019E7012800006C204217080A0600002800003A7 -S31540019E8001000000C226000081C7E00891E80008F1 -S31540019E909DE3BF987FFFFFE5901000180310014135 -S31540019EA0A2106380DA046008C2036004A0087FFC44 -S31540019EB0B2240019B2066FEFB20E7000B2067000FE -S31540019EC09210200080A66FFF0480000A90100018AF -S31540019ED07FFFFFE201000000C204600882004010DB -S31540019EE080A04008922000190280000590100018B9 -S31540019EF07FFFFFD4B0102000308000237FFFFFD7C3 -S31540019F00901000188224001980A23FFF8210600140 -S31540019F1092102000191001430280000B9010001886 -S31540019F20DA046008C2236004C20321688220401912 -S31540019F30901000187FFFFFC3C223216810800012D2 -S31540019F40B01020017FFFFFC50100000098100008F6 -S31540019F50D6046008A023000B9010001880A4200F9F -S31540019F6004BFFFE4B214200103100141DA00637813 -S31540019F709A23000D03100143DA20616810BFFFDD0B -S31540019F80F222E00481C7E00881E800009DE3BF9822 -S31540019F9080A660000280009DA41000187FFFFFA3E9 -S31540019FA090100018A0067FF8D6042004900AFFFE00 -S31540019FB01910014194040008A2132380DA02A00477 -S31540019FC0C204600880A0400A028000449E0B7FFCC8 -S31540019FD0808AE001DE22A0041280000CB01020002D -S31540019FE0F2067FF8A024001982046008DA042008EA -S31540019FF080A340010280007D90020019D204200C0A -S3154001A000DA226008D223600C8202800FDA006004F3 -S3154001A010808B60011280000A8212200180A62000F6 -S3154001A020028000229002000FDA02A008D202A00CA0 -S3154001A030DA226008D223600C82122001C224200455 -S3154001A04080A6200002800005D0240008B01000122E -S3154001A0507FFFFF7C81E8000080A221FF1880003647 -S3154001A060973220099B32200398132380832B600368 -S3154001A0709200400C9B336002821020018328400DE0 -S3154001A080D6026008DA0320049A134001D224200C38 -S3154001A090D6242008E022E00CDA232004E0226008DE -S3154001A0A010BFFFECB010001203100141DA02A00804 -S3154001A0B08210638880A3400132BFFFDED202A00C2A -S3154001A0C0E023600CE0236008DA242008DA24200C1F -S3154001A0D010BFFFDAB0102001808AE001128000092A -S3154001A0E09002000FF2067FF8A0240019D204200C3A -S3154001A0F0D6042008D622600890020019D222E00C2C -S3154001A10003100141DA00637C98122001E0246008C3 -S3154001A11080A2000D0ABFFFCFD824200403100143BB -S3154001A120D20061987FFFFF5B901000127FFFFF45D1 -S3154001A13081E8000080A2E000028000169B322003E5 -S3154001A1408332200680A2E004088000129A0060381B -S3154001A15080A2E0140880000F9A02E05B8332200C53 -S3154001A16080A2E0540880000B9A00606E8332200F73 -S3154001A17080A2E154088000079A006077833220125A -S3154001A18080A2E554088000039A00607C9A10207EE4 -S3154001A19094132380832B60039200400AD602600801 -S3154001A1A080A2C0090280001399336002C202E00412 -S3154001A1B082087FFC80A0400828800007D202E00C7C -S3154001A1C0D602E00880A2C00932BFFFFAC202E0040B -S3154001A1D0D202E00CD224200CD6242008E022E00C46 -S3154001A1E010BFFFB0E022600810BFFF88B010200109 -S3154001A1F09A102001C202A0049B2B400C8210400DF4 -S3154001A20010BFFFF5C222A00481C7E00881E8000023 -S3154001A2109DE3BF98D206400080A2600012800004F0 -S3154001A220901000187FFFFF5A81E800007FFFFFF979 -S3154001A230010000007FFFFF5681E800000100000099 -S3154001A2409DE3BF9803100141DA00637080A6000DBB -S3154001A2500280004101000000D206204C80A260002D -S3154001A2601280001CA0102000D206214880A2600066 -S3154001A2702280000FD2062054A006214C80A2401015 -S3154001A2802280000BD206205410800005B21000092E -S3154001A290F20640007FFFFF3E9010001880A400198F -S3154001A2A012BFFFFC92100019D206205480A2600012 -S3154001A2B01280002501000000C206203880A06000FF -S3154001A2C0028000250100000010800017C206203CD4 -S3154001A2D0832C2002F202400180A660002280000BFE -S3154001A2E0A004200192100019F20640007FFFFF28CA -S3154001A2F09010001880A6600012BFFFFC9210001952 -S3154001A300D206204CA004200180A4200E04BFFFF2F7 -S3154001A310832C20027FFFFF1E9010001810BFFFD430 -S3154001A320D20621489FC0400090100018F20622E054 -S3154001A33080A6600002800008010000007FFFFFB593 -S3154001A34081E800007FFFFF129010001810BFFFDC6C -S3154001A350C206203881C7E00881E800009DE3BF9826 -S3154001A36080A620000280001D03100141E406214819 -S3154001A37080A4A00022800013C206203CE204A0046F -S3154001A380A2847FFF0C80000A832C60028200401267 -S3154001A390A0006008C20400009FC04000A0043FFC2A -S3154001A3A0A2847FFF3CBFFFFDC2040000E40480009D -S3154001A3B080A4A00032BFFFF3E204A004C206203C01 -S3154001A3C080A0600002800007010000009FC040009D -S3154001A3D0901000183080000310BFFFE5F000637055 -S3154001A3E081C7E00881E800001080000B861020003C -S3154001A3F08092400816800008861A400880924000E4 -S3154001A4001680000480920000168000039220000905 -S3154001A410902000089A92400012800005961000088C -S3154001A42091D0200281C3E0089010000080A2C00DA7 -S3154001A4300A800095941000000302000080A2C0012A -S3154001A4400A8000289810000080A340011A80000D60 -S3154001A450841020019B2B600410BFFFFC9803200150 -S3154001A4609A83400D1A8000078400A0018328600466 -S3154001A4709B3360019A034001108000078420A001AC -S3154001A48080A3400B0ABFFFF70100000002800002D3 -S3154001A4900100000084A0A0010680007601000000B2 -S3154001A4A09622C00D941020011080000A0100000080 -S3154001A4B0952AA001068000059B3360019622C00DB6 -S3154001A4C0108000049402A0019602C00D9422A001BE -S3154001A4D084A0A00116BFFFF78092C00030800065BE -S3154001A4E09B2B600480A3400B08BFFFFE988320018D -S3154001A4F002800065982320018092C000952AA0041D -S3154001A5000680002F9B33600196A2C00D068000177E -S3154001A5109B33600196A2C00D0680000B9B33600100 -S3154001A52096A2C00D068000059B33600196A2C00D20 -S3154001A530108000509402A00F9682C00D1080004DED -S3154001A5409402A00D9682C00D068000059B336001E2 -S3154001A55096A2C00D108000479402A00B9682C00DB2 -S3154001A560108000449402A0099682C00D0680000B1B -S3154001A5709B33600196A2C00D068000059B336001A6 -S3154001A58096A2C00D1080003B9402A0079682C00D92 -S3154001A590108000389402A0059682C00D0680000501 -S3154001A5A09B33600196A2C00D108000329402A00335 -S3154001A5B09682C00D1080002F9402A0019682C00D94 -S3154001A5C0068000179B33600196A2C00D0680000BE2 -S3154001A5D09B33600196A2C00D068000059B33600146 -S3154001A5E096A2C00D108000239402BFFF9682C00D33 -S3154001A5F0108000209402BFFD9682C00D06800005A2 -S3154001A6009B33600196A2C00D1080001A9402BFFBD5 -S3154001A6109682C00D108000179402BFF99682C00D34 -S3154001A6200680000B9B33600196A2C00D0680000593 -S3154001A6309B33600196A2C00D1080000E9402BFF7B5 -S3154001A6409682C00D1080000B9402BFF59682C00D14 -S3154001A650068000059B33600196A2C00D108000055F -S3154001A6609402BFF39682C00D108000029402BFF19E -S3154001A67098A3200116BFFFA28092C0002680000247 -S3154001A6809422A0018090C000268000029420000AF6 -S3154001A69081C3E0089010000A19100144DA032174BD -S3154001A6A080A3600012800006820340080310014423 -S3154001A6B09A106188DA23217482034008C2232174E7 -S3154001A6C081C3E0089010000DA7500000AE100001B4 -S3154001A6D08334E00129100143E8052038A92CC01430 -S3154001A6E08215000181E000008190400001000000D8 -S3154001A6F00100000001000000E03BA000E43BA0088F -S3154001A700E83BA010EC3BA018F03BA020F43BA0286E -S3154001A710F83BA030FC3BA03881E8000082100017CE -S3154001A72081C4400081CC800001000000010000008E -S3154001A73001000000A7500000A92CE0012B100143A5 -S3154001A740EA056038AB34C015AA154014819540001E -S3154001A75001000000010000000100000081E8000046 -S3154001A76081E80000E01BA000E41BA008E81BA01044 -S3154001A770EC1BA018F01BA020F41BA028F81BA0304E -S3154001A780FC1BA03881E0000081E0000081C440004C -S3154001A79081CC8000A75000002910006CADC5210472 -S3154001A7A00100000027100143A614E018E024C00070 -S3154001A7B0818C202001000000010000000100000002 -S3154001A7C09DE3BFA09DE3BFA09DE3BFA09DE3BFA0C6 -S3154001A7D09DE3BFA09DE3BFA09DE3BFA081E800002C -S3154001A7E081E8000081E8000081E8000081E800007E -S3154001A7F081E8000081E8000027100143A614E01813 -S3154001A800C024C000E203A068A4046004E223A0645B -S3154001A810E423A06810800262AC10000029100142B6 -S3154001A820A81523FCC2252000C8252004E0252010B8 -S3154001A830E2252014E4252018E825201C81E80000A3 -S3154001A8408348000082106F0081886020010000006B -S3154001A850010000000100000009100143C801203831 -S3154001A86081E000008821200180A920FF02800003A9 -S3154001A870010000000100000080A1000012BFFFF9A5 -S3154001A8800100000009100143C801203881E8000099 -S3154001A89080A920FF028000030100000001000000A2 -S3154001A8A08821200180A1000012BFFFF901000000AC -S3154001A8B081E0000029100142A81523FCC8052004A7 -S3154001A8C0C2052000E0052010E2052014E405201809 -S3154001A8D0C025201C818C20000100000001000000E1 -S3154001A8E00100000081C4800081CCA004A0142F0087 -S3154001A8F0818C000001000000010000000100000001 -S3154001A90081C4800081CCA00480A66002128000052B -S3154001A910A8142F00818D0000B01420203080001F24 -S3154001A92080A6600312800006A80E2F00AA2C2F00D5 -S3154001A930A8154014818D00003080001880A660045F -S3154001A94012800008A9480000A8152040818D00000A -S3154001A9500100000001000000010000003080000FEE -S3154001A96080A6600512800008A9480000A82D204055 -S3154001A970818D00000100000001000000010000007F -S3154001A9803080000680A660061280000301000000A8 -S3154001A99030BFFFA391D0200081C4800081CCA004A8 -S3154001A9A09210200381C3E00891D020029210200228 -S3154001A9B081C3E00891D020029210200681C3E008AD -S3154001A9C091D0200281C3E0080100000081C3E00864 -S3154001A9D00100000081C3E00801000000AE25A0107F -S3154001A9E0A75000002D10006AAC15A1F02910006C8B -S3154001A9F081C522AC010000001110014390122024B0 -S3154001AA00D202000092026001D2220000932DE0089A -S3154001AA10902C2F0092120009111001439012201C14 -S3154001AA20D002000080A000082280000292126F002E -S3154001AA30818A602001000000010000000100000041 -S3154001AA4090100017400000319203A06092142F002D -S3154001AA50818A602001000000010000000100000021 -S3154001AA601110014390122024D2020000922260016B -S3154001AA70D22200001080022DAC1000001B100144B0 -S3154001AA809A13602C912A2002C2034008C222600C0C -S3154001AA9081C3E008D22340089DE3BF9803100144D7 -S3154001AAA08210602C992E60021B100143972E600480 -S3154001AAB0D800400C9A13622C901000199202C00DD6 -S3154001AAC080A6601F1480000F8210200010800006AF -S3154001AAD080A320002280000AC2024000D803200C35 -S3154001AAE080A3200012BFFFFC80A300097FFFFFE483 -S3154001AAF0F02240001080000382102000F022400026 -S3154001AB0081C7E00891E800019DE3BF981B1001430E -S3154001AB1082136028D800600480A300180280004494 -S3154001AB20C203602880A6200022800002B010000CDB -S3154001AB3003100144A32E20028210602CE000401134 -S3154001AB4080A420000280003D0310014310800012C2 -S3154001AB50A41061A8D2042008941000199FC30000D4 -S3154001AB609010001803100143C20061A080A060004C -S3154001AB701280002B01000000C204801182007FFF79 -S3154001AB80C2248011E004200C80A420000280002B06 -S3154001AB9001000000D804000080A3200022BFFFFB73 -S3154001ABA0E004200C03100143DA00622880A3600010 -S3154001ABB0128000089610001203100143821061A80A -S3154001ABC0DA00401180A3600032BFFFF0E004200CA0 -S3154001ABD0DA02C011031001439A036001C20061A465 -S3154001ABE080A0600002BFFFDCDA22C0119FC0400096 -S3154001ABF001000000D8040000D20420089410001976 -S3154001AC009FC300009010001803100143C20061A0C9 -S3154001AC1080A0600022BFFFDAC20480119FC04000BD -S3154001AC200100000010BFFFD6C2048011DA0060C0E7 -S3154001AC3010BFFFBDB00B601F81C7E00881E800006F -S3154001AC408C10000FA74800008B34E0188A09600F6A -S3154001AC5080A160030280000C0B1001438A11603011 -S3154001AC600920000088112070C82140000B100143C3 -S3154001AC708A1160500920000088112040C8214000F7 -S3154001AC80108000399010200192102006400001DD0D -S3154001AC900100000080A0000802800033010000008E -S3154001ACA0C2022010113FFC0082084008110003FC3B -S3154001ACB08410400890100002921020019410200C3C -S3154001ACC0400001E60100000080A000080280002645 -S3154001ACD001000000400001F6921000010B100143F3 -S3154001ACE08A116030D221400090100002921020015A -S3154001ACF094102011400001D90100000080A00008F5 -S3154001AD000280001901000000400001E99210000193 -S3154001AD10920260100B1001438A116050D22140000B -S3154001AD2090100002921020019410200D400001CB9A -S3154001AD300100000080A000080280000B0100000015 -S3154001AD40400001DB921000010B1001438A1160287B -S3154001AD50D2214000D40260109532A010940AA00F6F -S3154001AD60D42160049E10000681C3E0080100000062 -S3154001AD7003100143821060488210200191D02000C7 -S3154001AD8081C3E008010000009DE3BF980310014420 -S3154001AD90C20060C8901000189210001980A060008F -S3154001ADA002800005B01020009FC040000100000055 -S3154001ADB0B010000881C7E00881E800009DE3BF9814 -S3154001ADC003100144C20060C49010001880A06000C6 -S3154001ADD002800005B01020009FC040000100000025 -S3154001ADE0B010000881C7E00881E800009DE3BF98E4 -S3154001ADF003100144C20060BC9010001880A060009E -S3154001AE0002800005B01020009FC0400001000000F4 -S3154001AE10B010000881C7E00881E800009DE3BF98B3 -S3154001AE2003100144C20060C09010001880A0600069 -S3154001AE3002800005B01020009FC0400001000000C4 -S3154001AE40B010000881C7E00881E800009DE3BF9883 -S3154001AE5003100144C20060B89010001880A0600041 -S3154001AE6002800005B01020009FC040000100000094 -S3154001AE70B010000881C7E00881E800009DE3BF9853 -S3154001AE8003100144C20060B49010001880A0600015 -S3154001AE9002800005B01020009FC040000100000064 -S3154001AEA0B010000881C7E00881E800009DE3BF9823 -S3154001AEB003100144C20060B09010001880A06000E9 -S3154001AEC002800005B01020009FC040000100000034 -S3154001AED0B010000881C7E00881E800009DE3BF98F3 -S3154001AEE003100144C20060AC901000189210001982 -S3154001AEF080A0600002800005B01020009FC0400085 -S3154001AF0001000000B010000881C7E00881E8000098 -S3154001AF10010000000310006B821063E09FC04000F7 -S3154001AF20010000000310000082106000819840007B -S3154001AF300310006C821060649FC040000100000055 -S3154001AF400310006B821063D09FC0400001000000D7 -S3154001AF508B4800008B3160188A09600380A1600329 -S3154001AF6012800007010000008B4440008B31601CB9 -S3154001AF7080A1400012800006010000007FFFFF31E2 -S3154001AF80010000007FFF9879010000009C23A0404A -S3154001AF907FFF981C010000008210200191D0200003 -S3154001AFA00100000029000004A68C00143280000331 -S3154001AFB0A02C001491D02000818C000001000000DB -S3154001AFC0010000000100000081C4800081CCA00482 -S3154001AFD081C3E0080100000081C1E00801000000D2 -S3154001AFE0A74800008B34E0188A09600380A16003FA -S3154001AFF0128000080100000021100143A0142040E6 -S3154001B000A2102003E22400008B4440001080000877 -S3154001B01021100143A0142040A2102002E224000086 -S3154001B02021200000E60420248B34E0148A09601FA5 -S3154001B03027100143A614E038CA24C0008A016001E2 -S3154001B04027100143A614E034CA24C0002710014347 -S3154001B050A614E03C8A216002CA24C00081C3E008EC -S3154001B0600100000081C3E0080100000083480000A0 -S3154001B070833060188208600380A060031280000656 -S3154001B0800100000083444000050000088228400278 -S3154001B090A3804000881000000910006B81C1231471 -S3154001B0A0010000009DE3BF980310006D1B10006D69 -S3154001B0B0A01061609A13616080A4000D1A8000108F -S3154001B0C0A210000D10800006C204000080A40011E9 -S3154001B0D01A80000B01000000C204000080A060003D -S3154001B0E002BFFFFBA00420049FC0400001000000F6 -S3154001B0F080A400112ABFFFFAC204000081C7E008FC -S3154001B10081E80000AA27A0B0E0256060E2256064DE -S3154001B110E4256068C2256074C43D6078C83D60809E -S3154001B120CC3D608885400000C425606CF03D609050 -S3154001B130F43D6098F83D60A0FC3D60A8A810200150 -S3154001B140A92D0010808D001302800013010000001C -S3154001B1508534E00107100143C600E038A72CC0033F -S3154001B1608414C0028408A0FF81E000008190A00001 -S3154001B170E03BA000E43BA008E83BA010EC3BA01854 -S3154001B180F03BA020F43BA028F83BA030FC3BA03884 -S3154001B19081E8000081C5A0089C10001505100143F7 -S3154001B1A08410A19CC400800080A08000028000041D -S3154001B1B0010000009FC080009203A060818C2000A6 -S3154001B1C0821020028328401005100143C400A03498 -S3154001B1D085304002821040028550000080888001FF -S3154001B1E0028000208328A00107100143C600E038F1 -S3154001B1F08530800382104002820860FF81906000A2 -S3154001B200C203A06C81806000F01BA090F41BA09843 -S3154001B210F81BA0A0FC1BA0A8C203A074C41BA07865 -S3154001B220C81BA080CC1BA088E003A060E203A064F9 -S3154001B230E403A06881E80000E01BA000E41BA0082D -S3154001B240E81BA010EC1BA018F01BA020F41BA028A3 -S3154001B250F81BA030FC1BA0381080000F81E00000D5 -S3154001B260C203A06C81806000F01BA090F41BA098E3 -S3154001B270F81BA0A0FC1BA0A8C203A074C41BA07805 -S3154001B280C81BA080CC1BA088E003A060E203A06499 -S3154001B290E403A068818C2000010000000100000049 -S3154001B2A00100000081C4400081CC8000AA27A0B0E3 -S3154001B2B0C2256074C43D6078C83D6080CC3D6088DD -S3154001B2C085400000C425606CA8102001A92D0010FE -S3154001B2D0808D001302800013010000008534E001D7 -S3154001B2E007100143C600E038A72CC0038414C002EE -S3154001B2F08408A0FF81E000008190A000E03BA0000F -S3154001B300E43BA008E83BA010EC3BA018F03BA02092 -S3154001B310F43BA028F83BA030FC3BA03881E8000074 -S3154001B32081C5A0089C100015051001438410A19CFD -S3154001B330C400800080A0800002800004010000005B -S3154001B3409FC080009203A060818C20008210200261 -S3154001B3508328401005100143C400A03485304002C3 -S3154001B36082104002855000008088800102800019C9 -S3154001B3708328A00107100143C600E03885308003C9 -S3154001B38082104002820860FF81906000C203A06C77 -S3154001B39081806000C203A074C41BA078C81BA08032 -S3154001B3A0CC1BA08881E80000E01BA000E41BA0089C -S3154001B3B0E81BA010EC1BA018F01BA020F41BA02832 -S3154001B3C0F81BA030FC1BA0381080000881E000006B -S3154001B3D0C203A06C81806000C203A074C41BA07824 -S3154001B3E0C81BA080CC1BA088818C200001000000D6 -S3154001B3F0010000000100000081C4400081CC8000B2 -S3154001B400821000089A10380096102000912AE00513 -S3154001B41098034008D40340089132A01880A2000145 -S3154001B420328000089602E0019132A00C900A2FFF6B -S3154001B43080A20009028000079410000C9602E001E8 -S3154001B44080A2E00728BFFFF3912AE005941020006F -S3154001B45081C3E0089010000A82100008981020006D -S3154001B460912B20039A004008D60040089132E018FB -S3154001B47080A2000932800008980320019132E00C35 -S3154001B480900A2FFF80A2000A028000079610000D45 -S3154001B4909803200180A3200F28BFFFF3912B20039F -S3154001B4A09610200081C3E0089010000BD4022004BE -S3154001B4B0173FFC00920A400B900A800B9132200CF8 -S3154001B4C0921240081100003F901223F0940A80081E -S3154001B4D0952AA0049412800B920A400A81C3E0087F -S3154001B4E0901000099DE3BF980310006D82106148DA -S3154001B4F0DA007FFC80A37FFF02800009A0007FFC69 -S3154001B5008210000D9FC04000A0043FFCC204000011 -S3154001B51080A07FFF12BFFFFC0100000081C7E00849 -S3154001B52081E800009DE3BF9881C7E00881E80000FB -S3154001B53000000000000000000000000000000000C4 -S3154001B54000000002FFFFFFFF0000000000000000B6 -S3154001B55000000002FFFFFFFF0000000000000000A6 -S3154001B56040080000000000003CD203AF9EE756169B -S3154001B5703E7AD7F29ABCAF4840050220000000004F -S3154001B580430000009DE3BFA07FFF96DB0100000062 -S3154001B5907FFFFFD50100000081C7E00881E8000078 -S3154001B5A09DE3BFA07FFF96B60100000081C7E0087A -S3154001B5B081E80000000000000000000000000000DB -S315400200000000000100000000000000004001B55859 -S315400200102000000000000000000000000000000078 -S315400200200000000000000000000000000000000088 -S315400200300000000000000000000000000000000078 -S315400200400000000000000000000000000000000068 -S315400200500000000000000000000000010000000057 -S315400200600000000000000000000000000000000048 -S315400200700000000000000000000000000000000038 -S315400200800000000000000000000000000000000028 -S315400200900000000000000000000000000000000117 -S315400200A00000000000000000000000000000000008 -S315400200B000000000000000000000000000000000F8 -S315400200C000000000000000000000000000000000E8 -S315400200D000000000000000000000000000000000D8 -S315400200E00000000100000000000000410000000086 -S315400200F0343074693934612B3079676979753035B2 -S315400201007968617035796934682B612B69697978C8 -S315400201106869346B35396A30713930356A6B6F7953 -S3154002012070686F70746A72686961346979302B34A9 -S315400201300000000000000000000000010000000076 -S3154002014040000000000000004008000000000000DF -S31540020150401800000000000080000000000000007F -S315400201600000000000000000BFF000000000000098 -S31540020170BF800000000000000000000000000000F8 -S315400201800000000000000000000000000000000027 -S315400201903FF00000000000004008000000000000A0 -S315400201A03FF0000040000000000000000000000098 -S315400201B03F800000404000000000000000000000B8 -S315400201C000000000000000000000000000000000E7 -S315400201D0000000000000000048000001000000008E -S315400201E0480000000000000046C000000000000079 -S315400201F03FF0000000000000400000000000000048 -S3154002020040080000000000003F800000000000009F -S31540020210529000000000000052900FF807F60DEBD6 -S3154002022052901FE03F61BAD052902FB8D4E30F48A4 -S3154002023052903F81F636B80C52904F3BD03C0A64FE -S3154002024052905EE68EFAD48B52906E825DA8FC2B5B -S3154002025052907E0F66AFED0752908D8DD3B1D9AADB -S3154002026052909CFDCD8ED0095290AC5F7C69A3C85A -S315400202705290BBB307ACAFDB5290CAF8960E710DE3 -S315400202805290DA304D95FB065290E95A539F492CCB -S315400202905290F876CCDF6CD952910785DD689A295F -S315400202A052911687A8AE14A35291257C5187FD0917 -S315400202B052913463FA37014E5291433EC467EFFB83 -S315400202C05291520CD1372FEB529160CE41341D746C -S315400202D052916F8334644DF952917E2BCA46BAB914 -S315400202E052918CC821D6D3E352919B58598F7C9F09 -S315400202F05291A9DC8F6DF1045291B854E0F496A064 -S315400203005291C6C16B2DB8705291D5224AAE2EE19A -S315400203105291E3779B97F4A85291F1C1799CA8FF39 -S31540020320529200000000000052920E33499A21A9CF -S3154002033052921C5B70D9F82452922A788FC76DE587 -S315400203405292388AC0059C28529246921AD4EA4959 -S315400203505292548EB9151E8552926280B347609668 -S315400203605292706821902E9A52927E451BB944C38E -S3154002037052928C17B9337834529299E01118857596 -S315400203805292A79E3A2CD2E65292B5524AE1278E13 -S315400203905292C2FC595456A75292D09C7B54E03E8C -S315400203A05292DE32C66287415292EBBF4FAFDD4B6D -S315400203B05292F9422C23C47E529306BB705AE7C32B -S315400203C05293142B30A929AB52932191811B0A4196 -S315400203D052932EEE7577041652933C42213EE0C963 -S315400203E05293498C97B10540529356CDEBC9B5E22B -S315400203F0529364063044530652937135779C8DCBA3 -S3154002040052937E5BD40F95A152938B79579D3EAB07 -S315400204105293988E1409212E5293A59A1ADBB257FB -S315400204205293B29D7D6356625293BF984CB56C7798 -S315400204305293CC8A99AF54535293D97474F76DF24E -S315400204405293E655EEFE13675293F32F17FE8D0431 -S31540020450529400000000000052940CC8B6D657C20F -S31540020460529419894C2329F052942641CF569572BB -S31540020470529432F24FB01C7A52943F9ADC3F79CE74 -S3154002048052944C3B83E57153529458D455549C1A1A -S31540020490529465655F122FF6529471EEAF76C2C6DC -S315400204A052947E7054AF098952948AEA5CBC935F37 -S315400204B05294975CD57680885294A3C7CC8A358A63 -S315400204C05294B02B4F7C0A885294BC876BA7F6ECA9 -S315400204D05294C8DC2E4239805294D529A457FCFC4A -S315400204E05294E16FDACFF9375294EDAEDE6B10FEDD -S315400204F05294F9E6BBC4ECB3529506177F5491BBAE -S3154002050052951241356CF6E052951E63EA3D95B01E -S3154002051052952A7FA9D2F8EA529536948017481006 -S31540020520529542A278D2D03652954EA99FAC8A0FA6 -S3154002053052955AAA002A9D5A529566A3A5B2E1B18E -S31540020540529572969B8B5CD852957E82ECDABE8D22 -S3154002055052958A68A4A8D9F352959647CDDF1CA531 -S315400205605295A220734903775295ADF29F948CFB24 -S315400205705295B9BE5D52A9DA5295C583B6F7AB0319 -S315400205805295D142B6DBADC55295DCFB673B05DFE2 -S315400205905295E8ADD236A58F5295F45A01D483B41A -S315400205A0529600000000000052960B9FD68A455490 -S315400205B0529617398F2AAA48529622CD337F0FE890 -S315400205C052962E5ACD0C3EBE529639E2653E421B9B -S315400205D0529645640568C1C3529650DFB6C759F470 -S315400205E052965C55827DF1D2529667C57199104BEF -S315400205F05296732F8D0E2F7752967E93DDBC0E73D5 -S31540020600529689F26C6B01D05296954B41CD4293EC -S315400206100BC0A4068F346C9B0BC093731C185447B3 -S315400206200BC083008E183C230BC072AE83A9704A5E -S315400206300BC0627C9CC166FF0BC0526A7ACE64A430 -S315400206400BC04277C0B04ADA0BC032A412B191A0B5 -S315400206500BC022EF168069500BC0135873280473DF -S315400206600BC003DFD10A08480BBFE909B3B04632D3 -S315400206700BBFCA8E711B8E880BBFAC4D32D4143061 -S315400206800BBF8E4553D34B1B0BBF7076318237EF70 -S315400206900BBF52DF2BADF99C0BBF357FA47C936C0D -S315400206A00BBF18570061F5EB0BBEFB64A61545154B -S315400206B00BBEDEA7FE865A2B0BBEC22074D37FBC6E -S315400206C00BBEA5CD763F66690BBE89AE722750F04A -S315400206D00BBE6DC2D9F976230BBE520A212B976CFB -S315400206E00BBE3683BD31CAA20BBE1B2F257575CAFA -S315400206F00BBE000BD34C7BAF0BBDE51941F097FE09 -S315400207000BBDCA56EE76E9D00BBDAFC457C7AB7325 -S315400207100BBD9560FE9616690BBD7B2C65587275AE -S315400207200BBD612610404EC00BBD474D8532E409D4 -S315400207300BBD2DA24BC19EDF0BBD1423ED22D10171 -S315400207400BBCFAD1F42A88E40BBCE1ABED438E80B4 -S315400207500BBCC8B1666884820BBCAFE1EF1D2D01AC -S315400207600BBC973D1867D0EF0BBC7EC274CAC962F8 -S315400207700BBC6671983E29FE0BBC4E4A18298BA9C2 -S315400207800BBC364B8B5DF6DB0BBC1E758A0FECBF82 -S315400207900BBC06C7ADD18E7E0BBBEF41918CE1F609 -S315400207A00BBBD7E2D17E33360BBBC0AB0B2E921BB3 -S315400207B00BBBA999DD6E6B650BBB92AEE8503CA7AD -S315400207C00BBB7BE9CD2362720BBB654A2E6F002CB5 -S315400207D00BBB4ECFAFED00FE0BBB3879F685313FF2 -S315400207E00BBB2248A8486FDE0BBB0C3B6C6BF73B3E -S315400207F00BBAF651EB44BCEE0BBAE08BCE42E7F1B4 -S315400208000BBACAE8BFED5CC00BBAB5686BDD5EDDFC -S315400208100BBAA00A7EBA475E0BBA8ACEA6354FEB12 -S315400208200BBA75B4910571DB0BBA60BBEEE358EFB8 -S315400208300BBA4BE4708569410BBA372DC79BD7FE7D -S315400208400BBA2297A6CCD68C0BBA0E21C1B0CFA03A -S315400208500BB9F9CBCCCEB6050BB9E5957D98648B31 -S315400208600BB9D17E8A670EE70BB9BD86AA77C3104C -S315400208700BB9A9AD95E7FAC40BB995F305B23CE5B8 -S315400208800BB98256B3AACE570BB96ED85A7C7206AA -S315400208900BB95B77B5A537C80BB94834817359CCC8 -S315400208A00BB9350E7B02284D0BB922056037032E54 -S315400208B00BB90F18EFBE614A0BB8FC48E908E522AE -S315400208C00BB8E9950C487EA90BB8D6FD1A6D99E886 -S315400208D00BB8C480D5245A340BB8B21FFED1E1BC42 -S315400208E00BB89FDA5A91A5260BB88DAFAC32CB0A1C -S315400208F00BB87B9FB83596F60BB869AA43C8DFE1B9 -S315400209000BB857CF14C791B50BB8460DF1B639C6D9 -S315400209100BB83466A1C09DF90BB822D8ECB75E6E0F -S315400209200BB811649B0DA16B0BB8000975D6C9595A -S315400209300BB7EEC746C434A50BB7DD9DD823075285 -S315400209400BB7CC8CF4D9FE010BB7BB9468674A50FF -S315400209500BB7AAB3FEDE78540BB799EB84E65D0C6F -S315400209600BB7893AC7B70D960BB778A19517DF0132 -S315400209700BB7681FBB5D6E910BB757B50967B24C93 -S315400209800BB747614EA011A20BB737245AF786140C -S315400209900BB726FDFEE4C3A00BB716EE0B6268E862 -S315400209A00BB706F451ED36CE0BB6F710A4824F8044 -S315400209B00BB6E742D59D7CB40BB6D78AB8377D0EC7 -S315400209C00BB6C7E81FC458720BB6B85AE031BB32F1 -S315400209D00BB6A8E2CDE557F90BB6997FBDBB50459C -S315400209E00BB68A318504A35C0BB67AF7F985A39BCD -S315400209F00BB66BD2F17471FF0BB65CC243777FCEF6 -S31540020A000BB64DC5C6A416420BB63EDD527CE4116A -S31540020A100BB63008BEF090CF0BB62147E45855EBE3 -S31540020A200BB6129A9B769D520BB60400BD75A584F1 -S31540020A300BB5F57A23E62B070BB5E706A8BE172CAE -S31540020A400BB5D8A6265733FF0BB5CA58776DE54B7B -S31540020A500BB5BC1D771FE6AB0BB5ADF500EB0E78BB -S31540020A600BB59FDEF0AC15940BB591DB229D63F27C -S31540020A700BB583E97355E1C10BB57609BFC7CD32D4 -S31540020A800BB5683BE53F94B80BB55A7FC162B5B624 -S31540020A900BB54CD5322E9F7F0BB53F3C15F79AA12D -S31540020AA00BB531B44B67B45A0BB5243DB17DAE306C -S31540020AB00BB516D8278BF18F0BB509838D37876710 -S31540020AC00BB4FC3FC27713AE0BB4EF0CA791D4BB69 -S31540020AD00BB4E1EA1D1EA6680BB4D4D8040308E59C -S31540020AE00BB4C7D63D722B370BB4BAE4AAEBF9481E -S31540020AF00BB4AE032E3C2D7E0BB4A131A97965C948 -S31540020B000BB4946FFF043C1C0BB487BE118662364D -S31540020B100BB47B1BC3F1C0BF0BB46E88F97F999BA4 -S31540020B200BB4620595AFAD730BB455917C476454D3 -S31540020B300BB4492C9150F96C0BB43CD6B91AA9C8DE -S31540020B400BB4308FD835E60B0BB42457D3768716C1 -S31540020B500BB4182E8FF205900BB40C13F2FEB43B75 -S31540020B600BB40007E232FD1F0BB3F40A4364A167DC -S31540020B700BB3E81AFCA7FBF00BB3DC39F44F468AF9 -S31540020B800BB3D06710E9E1C30BB3C4A239439F4FFD -S31540020B900BB3B8EB54640EF10BB3AD42498DCDDFC6 -S31540020BA00BB3A1A7003DD89B0BB39619602ADF2B46 -S31540020BB00BB38A9951449BB80BB37F26BBB32B79AF -S31540020BC00BB373C187D669EA0BB368699E454E4437 -S31540020BD00BB35D1EE7CD4B2D0BB351E14D71B09872 -S31540020BE00BB346B0B86B0FC30BB33B8D1226A15A5B -S31540020BF00BB330764445ADAC0BB3256C389CF6EB63 -S31540020C000BB31A6ED934256E0BB30F7E104535F5EC -S31540020C100BB30499C83BE9D60BB2F9C1EBB53923FC -S31540020C200BB2EEF6657EC6AA0BB2E437209655D5D0 -S31540020C300BB2D984082942630BB2CEDD0793F9E79A -S31540020C400BB2C4420A6177190BB2B9B2FC4ABEDA98 -S31540020C500BB2AF2FC9365EFF0BB2A4B85D37EEC1F9 -S31540020C600BB29A4CA48F90E30BB28FEC8BA9777997 -S31540020C700BB28597FF1D694D0BB27B4EEBAE48DD3D -S31540020C800BB271113E499CEE0BB266DEE4071AA81E -S31540020C900BB25CB7CA2831380BB2529BDE1796F7B5 -S31540020CA00BB2488B0D68D8030BB23E8545D7E65A40 -S31540020CB00BB2348A7548AB540BB22A9A89C69A97B4 -S31540020CC00BB220B5718446610BB216DB1ADAF53FD8 -S31540020CD00BB20D0B744A39100BB203466C77876C14 -S31540020CE00BB1F98BF22DD3490BB1EFDBF45D27FF44 -S31540020CF00BB1E636621A457E0BB1DC9B2A9E3DD588 -S31540020D000BB1D30A3D4613EE0BB1C98389925B817F -S31540020D100BB1C006FF26DA3F0BB1B6948DCA2A281C -S31540020D200BB1AD2C25655D0F0BB1A3CDB603A13D2D -S31540020D300BB19A792FD1E7410BB1912E831E88D2FE -S31540020D400BB187EDA058F0D60BB17EB6781144733D -S31540020D500BB17588FAF80D3A0BB16C6519DDE45D95 -S31540020D600BB1634AC5B31EEF0BB15A39EF877B28E5 -S31540020D700BB151328889CEAE0BB148348207B5DB0E -S31540020D800BB13F3FCD6D43FF0BB136545C44B49A31 -S31540020D900BB12D7220361D870BB124990B07221BEE -S31540020DA00BB11BC90E9AA72D0BB113021CF0880F6B -S31540020DB00BB10A4428254C650BB1018F2271DEE541 -S31540020DC00BB0F8E2FE2B44F40BB0F03FADC2572312 -S31540020DD00BB0E7A523C37A850BB0DF1352D65AD997 -S31540020DE00BB0D68A2DBDA58C0BB0CE09A756C589A8 -S31540020DF00BB0C591B2999FDB0BB0BD2242985115FB -S31540020E000BB0B4BB4A7EEB870BB0AC5CBD933636B7 -S31540020E1065300000653010006530200065303000D6 -S31540020E2065304000653050006530600065307000C6 -S31540020E3065308000653090006530A0006530B000B6 -S31540020E406530C0006530D0006530E0006530F000A6 -S31540020E506531000065311000653120006531300092 -S31540020E606531400065315000653160006531700082 -S31540020E7065318000653190006531A0006531B00072 -S31540020E806531C0006531D0006531E0006531F00062 -S31540020E90653200006532100065322000653230004E -S31540020EA0653240006532500065326000653270003E -S31540020EB065328000653290006532A0006532B0002E -S31540020EC06532C0006532D0006532E0006532F0001E -S31540020ED0653300006533100065332000653330000A -S31540020EE065334000653350006533600065337000FA -S31540020EF065338000653390006533A0006533B000EA -S31540020F006533C0006533D0006533E0006533F000D9 -S31540020F1065340000653410006534200065343000C5 -S31540020F2065344000653450006534600065347000B5 -S31540020F3065348000653490006534A0006534B000A5 -S31540020F406534C0006534D0006534E0006534F00095 -S31540020F506535000065351000653520006535300081 -S31540020F606535400065355000653560006535700071 -S31540020F7065358000653590006535A0006535B00061 -S31540020F806535C0006535D0006535E0006535F00051 -S31540020F90653600006536100065362000653630003D -S31540020FA0653640006536500065366000653670002D -S31540020FB065368000653690006536A0006536B0001D -S31540020FC06536C0006536D0006536E0006536F0000D -S31540020FD065370000653710006537200065373000F9 -S31540020FE065374000653750006537600065377000E9 -S31540020FF065378000653790006537A0006537B000D9 -S315400210006537C0006537D0006537E0006537F000C8 -S3154002101065380000653810006538200065383000B4 -S3154002102065384000653850006538600065387000A4 -S3154002103065388000653890006538A0006538B00094 -S315400210406538C0006538D0006538E0006538F00084 -S315400210506539000065391000653920006539300070 -S315400210606539400065395000653960006539700060 -S3154002107065398000653990006539A0006539B00050 -S315400210806539C0006539D0006539E0006539F00040 -S31540021090653A0000653A1000653A2000653A30002C -S315400210A0653A4000653A5000653A6000653A70001C -S315400210B0653A8000653A9000653AA000653AB0000C -S315400210C0653AC000653AD000653AE000653AF000FC -S315400210D0653B0000653B1000653B2000653B3000E8 -S315400210E0653B4000653B5000653B6000653B7000D8 -S315400210F0653B8000653B9000653BA000653BB000C8 -S31540021100653BC000653BD000653BE000653BF000B7 -S31540021110653C0000653C1000653C2000653C3000A3 -S31540021120653C4000653C5000653C6000653C700093 -S31540021130653C8000653C9000653CA000653CB00083 -S31540021140653CC000653CD000653CE000653CF00073 -S31540021150653D0000653D1000653D2000653D30005F -S31540021160653D4000653D5000653D6000653D70004F -S31540021170653D8000653D9000653DA000653DB0003F -S31540021180653DC000653DD000653DE000653DF0002F -S31540021190653E0000653E1000653E2000653E30001B -S315400211A0653E4000653E5000653E6000653E70000B -S315400211B0653E8000653E9000653EA000653EB000FB -S315400211C0653EC000653ED000653EE000653EF000EB -S315400211D0653F0000653F1000653F2000653F3000D7 -S315400211E0653F4000653F5000653F6000653F7000C7 -S315400211F0653F8000653F9000653FA000653FB000B7 -S31540021200653FC000653FD000653FE000653FF000A6 -S315400212104200000000000000400FFFFFFFFFFFFFFB -S315400212204200000000200000420FFFFFFFFFFFFFC9 -S3154002123040000000000000004210000000080000CC -S3154002124042000000000000013EB000000000000124 -S315400212504200000000000002420F484C0137D2080B -S31540021260C20E780F256007AB41BA079B7AF94BA0AD -S315400212704201484C0137D208420E780F256007AB2F -S315400212804217E02D934BECDA420F484C0137D20815 -S31540021290C21E780F256007ABC20DA7D249883D4EC4 -S315400212A0421F484C0137D208C20E780F256007AB61 -S315400212B042100C446E87CE32C03340AB371208918F -S315400212C00000000000000000C03340AB3712089116 -S315400212D00000000000000000C29E7A0F236007A6AD -S315400212E0C29E7A0F236007A66F3F484C0137D20849 -S315400212F06E2E780F256007AB6F3F485B3D3F64B863 -S315400213006F3F484C0137D208EE2E780F256007AB67 -S315400213106F3F483CC5303F587FE2F780AB123809F1 -S315400213207FD00000000000007FEAF780AB12380948 -S31540021330002000000000000080280000000000009D -S3154002134080100000000000007FEFF780AB123809E2 -S315400213507FEFF2010203A1117FF0000000000000BE -S315400213600010000000001000801FFFFFF203A111D1 -S315400213708000000000000000001ABCD000023809BC -S31540021380801ABCD0000001110000000000000000DD -S315400213907E71000000000000416010000000000065 -S315400213A07FE11100000000000178100000000000FB -S315400213B03E880000FFF0000000120C00C073F800E7 -S315400213C0C1EFFFFFC00020003FB3C75D224F280F89 -S315400213D0C1B3C75CFAC08192A12FFF8000001FFFF4 -S315400213E03EE0000000FF0000A01FFF8001FE18073C -S315400213F041CFFFFE0000002040303FFFFFFFFFFDD0 -S3154002140042103FFEFC00000D3FD000003FEFFFFFC1 -S31540021410BFD0000010000000BFB000004FF0003FF8 -S3154002142001701000000000003E8000011A0000001A -S3154002143000000000000000007E7C0000000000006A -S31540021440416A1000010000107FF000000000000019 -S3154002145075012034056AC000FA1009091000104FC0 -S31540021460FFF00000000000000100203040030200AF -S31540021470003020340000A00B0000000000000000F5 -S315400214807FE0001010200001400000000010200AFA -S315400214907FF00000000000003FEFDFF00FFC484AFB -S315400214A0BFF80000000000007FFF000000000000BF -S315400214B07FFFE000000000007FF400000000000013 -S315400214C07FC00000000000007FF80000000000001E -S315400214D07FF0000000000000FFF000000000000066 -S315400214E0FFF0000000000000800000000000000045 -S315400214F000000000000100000000000000000000A3 -S315400215000000000000000000000000000000000093 -S315400215100000000000000000000000000000000083 -S315400215200000000000000000000000000000000073 -S315400215300000000000000000000000000000000063 -S315400215400000000000000000000000000000000053 -S315400215500000000000000000000000000000000043 -S315400215600000000000000000000000000000000033 -S315400215700000000000000000000000000000000023 -S315400215800000000000000000000000000000000013 -S315400215900000000000000000000000000000000003 -S315400215A000000000000000000000000000000000F3 -S315400215B000000000000000000000000000000000E3 -S315400215C000000000000000000000000000000000D3 -S315400215D000000000000000000000000000000000C3 -S315400215E000000000000000000000000000000000B3 -S315400215F000000000000000000000000000000000A3 -S315400216000000000000000000000000000000000092 -S315400216100000000000000000000000000000000082 -S315400216200000000000000000000000000000000072 -S315400216300000000000000000000000000000000062 -S315400216400000000000000000000000000000000052 -S315400216500000000000000000000000000000000042 -S315400216600000000000000000000000000000000032 -S315400216700000000000000000000000000000000022 -S315400216800000000000000000000000000000000012 -S315400216900000000000000000000000000000000002 -S315400216A000000000000000000000000000000000F2 -S315400216B000000000000000000000000000000000E2 -S315400216C000000000000000000000000000000000D2 -S315400216D000000000000000000000000000000000C2 -S315400216E000000000000000000000000000000000B2 -S315400216F000000000000000000000000000000000A2 -S315400217000000000000000000000000000000000091 -S315400217100000000000000000000000000000000081 -S315400217200000000000000000000000000000000071 -S315400217300000000000000000000000000000000061 -S315400217400000000000000000000000000000000051 -S315400217500000000000000000000000000000000041 -S315400217600000000000000000000000000000000031 -S315400217700000000000000000000000000000000021 -S315400217800000000000000000000000000000000011 -S315400217900000000000000000000000000000000001 -S315400217A000000000000000000000000000000000F1 -S315400217B000000000000000000000000000000000E1 -S315400217C000000000000000000000000000000000D1 -S315400217D000000000000000000000000000000000C1 -S315400217E000000000000000000000000000000000B1 -S315400217F000000000000000000000000000000000A1 -S315400218000000000000000000000000000000000090 -S315400218100000000000000000000000000000000080 -S315400218200000000000000000000000000000000070 -S315400218300000000000000000000000000000000060 -S315400218400000000000000000000000000000000050 -S315400218500000000000000000000000000000000040 -S315400218600000000000000000000000000000000030 -S315400218700000000000000000000000000000000020 -S315400218800000000000000000000000000000000010 -S315400218900000000000000000000000000000000000 -S315400218A000000000000000000000000000000000F0 -S315400218B000000000000000000000000000000000E0 -S315400218C000000000000000000000000000000000D0 -S315400218D000000000000000000000000000000000C0 -S315400218E000000000000000000000000000000000B0 -S315400218F000000000000000000000000000000000A0 -S31540021900000000000000000000000000000000008F -S31540021910000000000000000000000000000000007F -S31540021920000000000000000000000000000000006F -S31540021930000000000000000000000000000000005F -S31540021940000000000000000000000000000000004F -S31540021950000000000000000000000000000000003F -S31540021960000000000000000000000000000000002F -S31540021970000000000000000000000000000000001F -S31540021980000000000000000000000000000000000F -S3154002199000000000000000000000000000000000FF -S315400219A000000000000000000000000000000000EF -S315400219B000000000000000000000000000000000DF -S315400219C000000000000000000000000000000000CF -S315400219D000000000000000000000000000000000BF -S315400219E000000000000000000000000000000000AF -S315400219F0000000000000000000000000000000009F -S31540021A00000000000000000000000000000000008E -S31540021A10000000000000000000000000000000007E -S31540021A20000000000000000000000000000000006E -S31540021A30000000000000000000000000000000005E -S31540021A40000000000000000000000000000000004E -S31540021A50000000000000000000000000000000003E -S31540021A60000000000000000000000000000000002E -S31540021A70000000000000000000000000000000001E -S31540021A80000000000000000000000000000000000E -S31540021A9000000000000000000000000000000000FE -S31540021AA000000000000000000000000000000000EE -S31540021AB000000000000000000000000000000000DE -S31540021AC000000000000000000000000000000000CE -S31540021AD000000000000000000000000000000000BE -S31540021AE000000000000000000000000000000000AE -S31540021AF0000000000000000000000000000000009E -S31540021B00000000000000000000000000000000008D -S31540021B10000000000000000000000000000000007D -S31540021B20000000000000000000000000000000006D -S31540021B30000000000000000000000000000000005D -S31540021B40000000000000000000000000000000004D -S31540021B50000000000000000000000000000000003D -S31540021B60000000000000000000000000000000002D -S31540021B70000000000000000000000000000000001D -S31540021B80000000000000000000000000000000000D -S31540021B9000000000000000000000000000000000FD -S31540021BA000000000000000000000000000000000ED -S31540021BB000000000000000000000000000000000DD -S31540021BC000000000000000000000000000000000CD -S31540021BD000000000000000000000000000000000BD -S31540021BE000000000000000000000000000000000AD -S31540021BF0000000000000000000000000000000009D -S31540021C00000000000000000000000000000000008C -S31540021C10000000000000000000000000000000007C -S31540021C20000000000000000000000000000000006C -S31540021C30000000000000000000000000000000005C -S31540021C40000000000000000000000000000000004C -S31540021C50000000000000000000000000000000003C -S31540021C60000000000000000000000000000000002C -S31540021C70000000000000000000000000000000001C -S31540021C80000000000000000000000000000000000C -S31540021C9000000000000000000000000000000000FC -S31540021CA000000000000000000000000000000000EC -S31540021CB000000000000000000000000000000000DC -S31540021CC000000000000000000000000000000000CC -S31540021CD000000000000000000000000000000000BC -S31540021CE000000000000000000000000000000000AC -S31540021CF0000000000000000000000000000000009C -S31540021D00000000000000000000000000000000008B -S31540021D10000000000000000000000000000000007B -S31540021D20000000000000000000000000000000006B -S31540021D30000000000000000000000000000000005B -S31540021D40000000000000000000000000000000004B -S31540021D50000000000000000000000000000000003B -S31540021D60000000000000000000000000000000002B -S31540021D70000000000000000000000000000000001B -S31540021D80000000000000000000000000000000000B -S31540021D9000000000000000000000000000000000FB -S31540021DA000000000000000000000000000000000EB -S31540021DB000000000000000000000000000000000DB -S31540021DC000000000000000000000000000000000CB -S31540021DD000000000000000000000000000000000BB -S31540021DE000000000000000000000000000000000AB -S31540021DF0000000000000000000000000000000009B -S31540021E00000000000000000000000000000000008A -S31540021E10000000000000000000000000000000007A -S31540021E20000000000000000000000000000000006A -S31540021E30000000000000000000000000000000005A -S31540021E40000000000000000000000000000000004A -S31540021E50000000000000000000000000000000003A -S31540021E60000000000000000000000000000000002A -S31540021E70000000000000000000000000000000001A -S31540021E80000000000000000000000000000000000A -S31540021E9000000000000000000000000000000000FA -S31540021EA000000000000000000000000000000000EA -S31540021EB000000000000000000000000000000000DA -S31540021EC000000000000000000000000000000000CA -S31540021ED000000000000000000000000000000000BA -S31540021EE000000000000000000000000000000000AA -S31540021EF0000000000000000000000000000000009A -S31540021F000000000000000000000000000000000089 -S31540021F100000000000000000000000000000000079 -S31540021F200000000000000000000000000000000069 -S31540021F300000000000000000000000000000000059 -S31540021F400000000000000000000000000000000049 -S31540021F500000000000000000000000000000000039 -S31540021F600000000000000000000000000000000029 -S31540021F700000000000000000000000000000000019 -S31540021F800000000000000000000000000000000009 -S31540021F9000000000000000000000000000000000F9 -S31540021FA000000000000000000000000000000000E9 -S31540021FB000000000000000000000000000000000D9 -S31540021FC000000000000000000000000000000000C9 -S31540021FD000000000000000000000000000000000B9 -S31540021FE000000000000000000000000000000000A9 -S31540021FF00000000000000000000000000000000099 -S315400220000000000000000000000000000000000088 -S315400220100000000000000000000000000000000078 -S315400220200000000000000000000000000000000068 -S315400220300000000000000000000000000000000058 -S315400220400000000000000000000000000000000048 -S315400220500000000000000000000000000000000038 -S315400220600000000000000000000000000000000028 -S315400220700000000000000000000000000000000018 -S315400220800000000000000000000000000000000008 -S3154002209000000000000000000000000000000000F8 -S315400220A000000000000000000000000000000000E8 -S315400220B000000000000000000000000000000000D8 -S315400220C000000000000000000000000000000000C8 -S315400220D000000000000000000000000000000000B8 -S315400220E000000000000000000000000000000000A8 -S315400220F00000000000000000000000000000000098 -S315400221000000000000000000000000000000000087 -S315400221100000000000000000000000000000000077 -S315400221200000000000000000000000000000000067 -S315400221300000000000000000000000000000000057 -S315400221400000000000000000000000000000000047 -S315400221500000000000000000000000000000000037 -S315400221600000000000000000000000000000000027 -S315400221700000000000000000000000000000000017 -S315400221800000000000000000000000000000000007 -S3154002219000000000000000000000000000000000F7 -S315400221A000000000000000000000000000000000E7 -S315400221B000000000000000000000000000000000D7 -S315400221C000000000000000000000000000000000C7 -S315400221D000000000000000000000000000000000B7 -S315400221E000000000000000000000000000000000A7 -S315400221F00000000000000000000000000000000097 -S315400222000000000000000000000000000000000086 -S315400222100000000000000000000000000000000076 -S315400222200000000000000000000000000000000066 -S315400222300000000000000000000000000000000056 -S315400222400000000000000000000000000000000046 -S315400222500000000000000000000000000000000036 -S315400222600000000000000000000000000000000026 -S315400222700000000000000000000000000000000016 -S315400222800000000000000000000000000000000006 -S3154002229000000000000000000000000000000000F6 -S315400222A000000000000000000000000000000000E6 -S315400222B000000000000000000000000000000000D6 -S315400222C000000000000000000000000000000000C6 -S315400222D000000000000000000000000000000000B6 -S315400222E000000000000000000000000000000000A6 -S315400222F00000000000000000000000000000000096 -S315400223000000000000000000000000000000000085 -S315400223100000000000000000000000000000000075 -S315400223200000000000000000000000000000000065 -S315400223300000000000000000000000000000000055 -S315400223400000000000000000000000000000000045 -S315400223500000000000000000000000000000000035 -S315400223600000000000000000000000000000000025 -S315400223700000000000000000000000000000000015 -S315400223800000000000000000000000000000000005 -S3154002239000000000000000000000000000000000F5 -S315400223A000000000000000000000000000000000E5 -S315400223B000000000000000000000000000000000D5 -S315400223C000000000000000000000000000000000C5 -S315400223D000000000000000000000000000000000B5 -S315400223E000000000000000000000000000000000A5 -S315400223F00000000000000000000000000000000095 -S315400224000000000000000000000000000000000084 -S315400224100000000000000000000000000000000074 -S315400224200000000000000000000000000000000064 -S315400224300000000000000000000000000000000054 -S315400224400000000000000000000000000000000044 -S315400224500000000000000000000000000000000034 -S315400224600000000000000000000000000000000024 -S315400224700000000000000000000000000000000014 -S315400224800000000000000000000000000000000004 -S3154002249000000000000000000000000000000000F4 -S315400224A000000000000000000000000000000000E4 -S315400224B000000000000000000000000000000000D4 -S315400224C000000000000000000000000000000000C4 -S315400224D000000000000000000000000000000000B4 -S315400224E000000000000000000000000000000000A4 -S315400224F00000000000000000000000000000000094 -S315400225000000000000000000000000000000000083 -S315400225100000000000000000000000000000000073 -S315400225200000000000000000000000000000000063 -S315400225300000000000000000000000000000000053 -S315400225400000000000000000000000000000000043 -S315400225500000000000000000000000000000000033 -S315400225600000000000000000000000000000000023 -S315400225700000000000000000000000000000000013 -S315400225800000000000000000000000000000000003 -S3154002259000000000000000000000000000000000F3 -S315400225A000000000000000000000000000000000E3 -S315400225B000000000000000000000000000000000D3 -S315400225C000000000000000000000000000000000C3 -S315400225D000000000000000000000000000000000B3 -S315400225E000000000000000000000000000000000A3 -S315400225F00000000000000000000000000000000093 -S315400226000000000000000000000000000000000082 -S315400226100000000000000000000000000000000072 -S315400226200000000000000000000000000000000062 -S315400226300000000000000000000000000000000052 -S315400226400000000000000000000000000000000042 -S315400226500000000000000000000000000000000032 -S315400226600000000000000000000000000000000022 -S315400226700000000000000000000000000000000012 -S315400226800000000000000000000000000000000002 -S3154002269000000000000000000000000000000000F2 -S315400226A000000000000000000000000000000000E2 -S315400226B000000000000000000000000000000000D2 -S315400226C000000000000000000000000000000000C2 -S315400226D000000000000000000000000000000000B2 -S315400226E000000000000000000000000000000000A2 -S315400226F00000000000000000000000000000000092 -S315400227000000000000000000000000000000000081 -S315400227100000000000000000000000000000000071 -S315400227200000000000000000000000000000000061 -S315400227300000000000000000000000000000000051 -S315400227400000000000000000000000000000000041 -S315400227500000000000000000000000000000000031 -S315400227600000000000000000000000000000000021 -S315400227700000000000000000000000000000000011 -S315400227800000000000000000000000000000000001 -S3154002279000000000000000000000000000000000F1 -S315400227A000000000000000000000000000000000E1 -S315400227B000000000000000000000000000000000D1 -S315400227C000000000000000000000000000000000C1 -S315400227D000000000000000000000000000000000B1 -S315400227E000000000000000000000000000000000A1 -S315400227F00000000000000000000000000000000091 -S315400228000000000000000000000000000000000080 -S315400228100000000000000000000000000000000070 -S315400228200000000000000000000000000000000060 -S315400228300000000000000000000000000000000050 -S315400228400000000000000000000000000000000040 -S315400228500000000000000000000000000000000030 -S315400228600000000000000000000000000000000020 -S315400228700000000000000000000000000000000010 -S315400228800000000000000000000000000000000000 -S3154002289000000000000000000000000000000000F0 -S315400228A000000000000000000000000000000000E0 -S315400228B000000000000000000000000000000000D0 -S315400228C000000000000000000000000000000000C0 -S315400228D000000000000000000000000000000000B0 -S315400228E000000000000000000000000000000000A0 -S315400228F00000000000000000000000000000000090 -S31540022900000000000000000000000000000000007F -S31540022910000000000000000000000000000000006F -S31540022920000000000000000000000000000000005F -S31540022930000000000000000000000000000000004F -S31540022940000000000000000000000000000000003F -S31540022950000000000000000000000000000000002F -S31540022960000000000000000000000000000000001F -S31540022970000000000000000000000000000000000F -S3154002298000000000000000000000000000000000FF -S3154002299000000000000000000000000000000000EF -S315400229A000000000000000000000000000000000DF -S315400229B000000000000000000000000000000000CF -S315400229C000000000000000000000000000000000BF -S315400229D000000000000000000000000000000000AF -S315400229E0000000000000000000000000000000009F -S315400229F0000000000000000000000000000000008F -S31540022A00000000000000000000000000000000007E -S31540022A10000000000000000000000000000000006E -S31540022A20000000000000000000000000000000005E -S31540022A30000000000000000000000000000000004E -S31540022A40000000000000000000000000000000003E -S31540022A50000000000000000000000000000000002E -S31540022A60000000000000000000000000000000001E -S31540022A70000000000000000000000000000000000E -S31540022A8000000000000000000000000000000000FE -S31540022A9000000000000000000000000000000000EE -S31540022AA000000000000000000000000000000000DE -S31540022AB000000000000000000000000000000000CE -S31540022AC000000000000000000000000000000000BE -S31540022AD000000000000000000000000000000000AE -S31540022AE0000000000000000000000000000000009E -S31540022AF0000000000000000000000000000000008E -S31540022B00000000000000000000000000000000007D -S31540022B10000000000000000000000000000000006D -S31540022B20000000000000000000000000000000005D -S31540022B30000000000000000000000000000000004D -S31540022B40000000000000000000000000000000003D -S31540022B50000000000000000000000000000000002D -S31540022B60000000000000000000000000000000001D -S31540022B70000000000000000000000000000000000D -S31540022B8000000000000000000000000000000000FD -S31540022B9000000000000000000000000000000000ED -S31540022BA000000000000000000000000000000000DD -S31540022BB000000000000000000000000000000000CD -S31540022BC000000000000000000000000000000000BD -S31540022BD000000000000000000000000000000000AD -S31540022BE0000000000000000000000000000000009D -S31540022BF0000000000000000000000000000000008D -S31540022C00000000000000000000000000000000007C -S31540022C10000000000000000000000000000000006C -S31540022C20000000000000000000000000000000005C -S31540022C30000000000000000000000000000000004C -S31540022C40000000000000000000000000000000003C -S31540022C50000000000000000000000000000000002C -S31540022C60000000000000000000000000000000001C -S31540022C70000000000000000000000000000000000C -S31540022C8000000000000000000000000000000000FC -S31540022C9000000000000000000000000000000000EC -S31540022CA000000000000000000000000000000000DC -S31540022CB000000000000000000000000000000000CC -S31540022CC000000000000000000000000000000000BC -S31540022CD000000000000000000000000000000000AC -S31540022CE0000000000000000000000000000000009C -S31540022CF0000000000000000000000000000000008C -S31540022D00000000000000000000000000000000007B -S31540022D10000000000000000000000000000000006B -S31540022D20000000000000000000000000000000005B -S31540022D30000000000000000000000000000000004B -S31540022D40000000000000000000000000000000003B -S31540022D50000000000000000000000000000000002B -S31540022D60000000000000000000000000000000001B -S31540022D70000000000000000000000000000000000B -S31540022D8000000000000000000000000000000000FB -S31540022D9000000000000000000000000000000000EB -S31540022DA000000000000000000000000000000000DB -S31540022DB000000000000000000000000000000000CB -S31540022DC000000000000000000000000000000000BB -S31540022DD000000000000000000000000000000000AB -S31540022DE0000000000000000000000000000000009B -S31540022DF0000000000000000000000000000000008B -S31540022E00000000000000000000000000000000007A -S31540022E10000000000000000000000000000000006A -S31540022E20000000000000000000000000000000005A -S31540022E30000000000000000000000000000000004A -S31540022E40000000000000000000000000000000003A -S31540022E50000000000000000000000000000000002A -S31540022E60000000000000000000000000000000001A -S31540022E70000000000000000000000000000000000A -S31540022E8000000000000000000000000000000000FA -S31540022E9000000000000000000000000000000000EA -S31540022EA000000000000000000000000000000000DA -S31540022EB000000000000000000000000000000000CA -S31540022EC000000000000000000000000000000000BA -S31540022ED000000000000000000000000000000000AA -S31540022EE0000000000000000000000000000000009A -S31540022EF0000000000000000000000000000000008A -S31540022F000000000000000000000000000000000079 -S31540022F100000000000000000000000000000000069 -S31540022F200000000000000000000000000000000059 -S31540022F300000000000000000000000000000000049 -S31540022F400000000000000000000000000000000039 -S31540022F500000000000000000000000000000000029 -S31540022F600000000000000000000000000000000019 -S31540022F700000000000000000000000000000000009 -S31540022F8000000000000000000000000000000000F9 -S31540022F9000000000000000000000000000000000E9 -S31540022FA000000000000000000000000000000000D9 -S31540022FB000000000000000000000000000000000C9 -S31540022FC000000000000000000000000000000000B9 -S31540022FD000000000000000000000000000000000A9 -S31540022FE00000000000000000000000000000000099 -S31540022FF00000000000000000000000000000000089 -S315400230000000000000000000000000000000000078 -S315400230100000000000000000000000000000000068 -S315400230200000000000000000000000000000000058 -S315400230300000000000000000000000000000000048 -S315400230400000000000000000000000000000000038 -S315400230500000000000000000000000000000000028 -S315400230600000000000000000000000000000000018 -S315400230700000000000000000000000000000000008 -S3154002308000000000000000000000000000000000F8 -S3154002309000000000000000000000000000000000E8 -S315400230A000000000000000000000000000000000D8 -S315400230B000000000000000000000000000000000C8 -S315400230C000000000000000000000000000000000B8 -S315400230D000000000000000000000000000000000A8 -S315400230E00000000000000000000000000000000098 -S315400230F00000000000000000000000000000000088 -S315400231000000000000000000000000000000000077 -S315400231100000000000000000000000000000000067 -S315400231200000000000000000000000000000000057 -S315400231300000000000000000000000000000000047 -S315400231400000000000000000000000000000000037 -S315400231500000000000000000000000000000000027 -S315400231600000000000000000000000000000000017 -S315400231700000000000000000000000000000000007 -S3154002318000000000000000000000000000000000F7 -S3154002319000000000000000000000000000000000E7 -S315400231A000000000000000000000000000000000D7 -S315400231B000000000000000000000000000000000C7 -S315400231C000000000000000000000000000000000B7 -S315400231D000000000000000000000000000000000A7 -S315400231E00000000000000000000000000000000097 -S315400231F00000000000000000000000000000000087 -S315400232000000000000000000000000000000000076 -S315400232100000000000000000000000000000000066 -S315400232200000000000000000000000000000000056 -S315400232300000000000000000000000000000000046 -S315400232400000000000000000000000000000000036 -S315400232500000000000000000000000000000000026 -S315400232600000000000000000000000000000000016 -S315400232700000000000000000000000000000000006 -S3154002328000000000000000000000000000000000F6 -S3154002329000000000000000000000000000000000E6 -S315400232A000000000000000000000000000000000D6 -S315400232B000000000000000000000000000000000C6 -S315400232C000000000000000000000000000000000B6 -S315400232D000000000000000000000000000000000A6 -S315400232E00000000000000000000000000000000096 -S315400232F00000000000000000000000000000000086 -S315400233000000000000000000000000000000000075 -S315400233100000000000000000000000000000000065 -S315400233200000000000000000000000000000000055 -S315400233300000000000000000000000000000000045 -S315400233400000000000000000000000000000000035 -S315400233500000000000000000000000000000000025 -S315400233600000000000000000000000000000000015 -S315400233700000000000000000000000000000000005 -S3154002338000000000000000000000000000000000F5 -S3154002339000000000000000000000000000000000E5 -S315400233A000000000000000000000000000000000D5 -S315400233B000000000000000000000000000000000C5 -S315400233C000000000000000000000000000000000B5 -S315400233D000000000000000000000000000000000A5 -S315400233E00000000000000000000000000000000095 -S315400233F00000000000000000000000000000000085 -S315400234000000000000000000000000000000000074 -S315400234100000000000000000000000000000000064 -S315400234200000000000000000000000000000000054 -S315400234300000000000000000000000000000000044 -S315400234400000000000000000000000000000000034 -S315400234500000000000000000000000000000000024 -S315400234600000000000000000000000000000000014 -S315400234700000000000000000000000000000000004 -S3154002348000000000000000000000000000000000F4 -S3154002349000000000000000000000000000000000E4 -S315400234A000000000000000000000000000000000D4 -S315400234B000000000000000000000000000000000C4 -S315400234C000000000000000000000000000000000B4 -S315400234D000000000000000000000000000000000A4 -S315400234E00000000000000000000000000000000094 -S315400234F00000000000000000000000000000000084 -S315400235000000000000000000000000000000000073 -S315400235100000000000000000000000000000000063 -S315400235200000000000000000000000000000000053 -S315400235300000000000000000000000000000000043 -S315400235400000000000000000000000000000000033 -S315400235500000000000000000000000000000000023 -S315400235600000000000000000000000000000000013 -S315400235700000000000000000000000000000000003 -S3154002358000000000000000000000000000000000F3 -S3154002359000000000000000000000000000000000E3 -S315400235A000000000000000000000000000000000D3 -S315400235B000000000000000000000000000000000C3 -S315400235C000000000000000000000000000000000B3 -S315400235D000000000000000000000000000000000A3 -S315400235E00000000000000000000000000000000093 -S315400235F00000000000000000000000000000000083 -S315400236000000000000000000000000000000000072 -S315400236100000000000000000000000000000000062 -S315400236200000000000000000000000000000000052 -S315400236300000000000000000000000000000000042 -S315400236400000000000000000000000000000000032 -S315400236500000000000000000000000000000000022 -S315400236600000000000000000000000000000000012 -S315400236700000000000000000000000000000000002 -S3154002368000000000000000000000000000000000F2 -S3154002369000000000000000000000000000000000E2 -S315400236A000000000000000000000000000000000D2 -S315400236B000000000000000000000000000000000C2 -S315400236C000000000000000000000000000000000B2 -S315400236D000000000000000000000000000000000A2 -S315400236E00000000000000000000000000000000092 -S315400236F00000000000000000000000000000000082 -S315400237000000000000000000000000000000000071 -S315400237100000000000000000000000000000000061 -S315400237200000000000000000000000000000000051 -S315400237300000000000000000000000000000000041 -S315400237400000000000000000000000000000000031 -S315400237500000000000000000000000000000000021 -S315400237600000000000000000000000000000000011 -S315400237700000000000000000000000000000000001 -S3154002378000000000000000000000000000000000F1 -S3154002379000000000000000000000000000000000E1 -S315400237A000000000000000000000000000000000D1 -S315400237B000000000000000000000000000000000C1 -S315400237C000000000000000000000000000000000B1 -S315400237D000000000000000000000000000000000A1 -S315400237E00000000000000000000000000000000091 -S315400237F00000000000000000000000000000000081 -S315400238000000000000000000000000000000000070 -S315400238100000000000000000000000000000000060 -S315400238200000000000000000000000000000000050 -S315400238300000000000000000000000000000000040 -S315400238400000000000000000000000000000000030 -S315400238500000000000000000000000000000000020 -S315400238600000000000000000000000000000000010 -S315400238700000000000000000000000000000000000 -S3154002388000000000000000000000000000000000F0 -S3154002389000000000000000000000000000000000E0 -S315400238A000000000000000000000000000000000D0 -S315400238B000000000000000000000000000000000C0 -S315400238C000000000000000000000000000000000B0 -S315400238D000000000000000000000000000000000A0 -S315400238E00000000000000000000000000000000090 -S315400238F00000000000000000000000000000000080 -S31540023900000000000000000000000000000000006F -S31540023910000000000000000000000000000000005F -S31540023920000000000000000000000000000000004F -S31540023930000000000000000000000000000000003F -S31540023940000000000000000000000000000000002F -S31540023950000000000000000000000000000000001F -S31540023960000000000000000000000000000000000F -S3154002397000000000000000000000000000000000FF -S3154002398000000000000000000000000000000000EF -S3154002399000000000000000000000000000000000DF -S315400239A000000000000000000000000000000000CF -S315400239B000000000000000000000000000000000BF -S315400239C000000000000000000000000000000000AF -S315400239D0000000000000000000000000000000009F -S315400239E0000000000000000000000000000000008F -S315400239F0000000000000000000000000000000007F -S31540023A00000000000000000000000000000000006E -S31540023A10000000000000000000000000000000005E -S31540023A20000000000000000000000000000000004E -S31540023A30000000000000000000000000000000003E -S31540023A40000000000000000000000000000000002E -S31540023A50000000000000000000000000000000001E -S31540023A60000000000000000000000000000000000E -S31540023A7000000000000000000000000000000000FE -S31540023A8000000000000000000000000000000000EE -S31540023A9000000000000000000000000000000000DE -S31540023AA000000000000000000000000000000000CE -S31540023AB000000000000000000000000000000000BE -S31540023AC000000000000000000000000000000000AE -S31540023AD0000000000000000000000000000000009E -S31540023AE0000000000000000000000000000000008E -S31540023AF0000000000000000000000000000000007E -S31540023B00000000000000000000000000000000006D -S31540023B10000000000000000000000000000000005D -S31540023B20000000000000000000000000000000004D -S31540023B30000000000000000000000000000000003D -S31540023B40000000000000000000000000000000002D -S31540023B50000000000000000000000000000000001D -S31540023B60000000000000000000000000000000000D -S31540023B7000000000000000000000000000000000FD -S31540023B8000000000000000000000000000000000ED -S31540023B9000000000000000000000000000000000DD -S31540023BA000000000000000000000000000000000CD -S31540023BB000000000000000000000000000000000BD -S31540023BC000000000000000000000000000000000AD -S31540023BD0000000000000000000000000000000009D -S31540023BE0000000000000000000000000000000008D -S31540023BF0000000000000000000000000000000007D -S31540023C00000000000000000000000000000000006C -S31540023C10000000000000000000000000000000005C -S31540023C20000000000000000000000000000000004C -S31540023C30000000000000000000000000000000003C -S31540023C40000000000000000000000000000000002C -S31540023C50000000000000000000000000000000001C -S31540023C60000000000000000000000000000000000C -S31540023C7000000000000000000000000000000000FC -S31540023C8000000000000000000000000000000000EC -S31540023C9000000000000000000000000000000000DC -S31540023CA000000000000000000000000000000000CC -S31540023CB000000000000000000000000000000000BC -S31540023CC000000000000000000000000000000000AC -S31540023CD0000000000000000000000000000000009C -S31540023CE0000000000000000000000000000000008C -S31540023CF0000000000000000000000000000000007C -S31540023D00000000000000000000000000000000006B -S31540023D10000000000000000000000000000000005B -S31540023D20000000000000000000000000000000004B -S31540023D30000000000000000000000000000000003B -S31540023D40000000000000000000000000000000002B -S31540023D50000000000000000000000000000000001B -S31540023D60000000000000000000000000000000000B -S31540023D7000000000000000000000000000000000FB -S31540023D8000000000000000000000000000000000EB -S31540023D9000000000000000000000000000000000DB -S31540023DA000000000000000000000000000000000CB -S31540023DB000000000000000000000000000000000BB -S31540023DC000000000000000000000000000000000AB -S31540023DD0000000000000000000000000000000009B -S31540023DE0000000000000000000000000000000008B -S31540023DF0000000000000000000000000000000007B -S31540023E00000000000000000000000000000000006A -S31540023E10000000000000000000000000000000005A -S31540023E20000000000000000000000000000000004A -S31540023E30000000000000000000000000000000003A -S31540023E40000000000000000000000000000000002A -S31540023E50000000000000000000000000000000001A -S31540023E60000000000000000000000000000000000A -S31540023E7000000000000000000000000000000000FA -S31540023E8000000000000000000000000000000000EA -S31540023E9000000000000000000000000000000000DA -S31540023EA000000000000000000000000000000000CA -S31540023EB000000000000000000000000000000000BA -S31540023EC000000000000000000000000000000000AA -S31540023ED0000000000000000000000000000000009A -S31540023EE0000000000000000000000000000000008A -S31540023EF0000000000000000000000000000000007A -S31540023F000000000000000000000000000000000069 -S31540023F100000000000000000000000000000000059 -S31540023F200000000000000000000000000000000049 -S31540023F300000000000000000000000000000000039 -S31540023F400000000000000000000000000000000029 -S31540023F500000000000000000000000000000000019 -S31540023F600000000000000000000000000000000009 -S31540023F7000000000000000000000000000000000F9 -S31540023F8000000000000000000000000000000000E9 -S31540023F9000000000000000000000000000000000D9 -S31540023FA000000000000000000000000000000000C9 -S31540023FB000000000000000000000000000000000B9 -S31540023FC000000000000000000000000000000000A9 -S31540023FD00000000000000000000000000000000099 -S31540023FE00000000000000000000000000000000089 -S31540023FF00000000000000000000000000000000079 -S315400240000000000000000000000000000000000068 -S315400240100000000000000000000000000000000058 -S315400240200000000000000000000000000000000048 -S315400240300000000000000000000000000000000038 -S315400240400000000000000000000000000000000028 -S315400240500000000000000000000000000000000018 -S315400240600000000000000000000000000000000008 -S3154002407000000000000000000000000000000000F8 -S3154002408000000000000000000000000000000000E8 -S3154002409000000000000000000000000000000000D8 -S315400240A000000000000000000000000000000000C8 -S315400240B000000000000000000000000000000000B8 -S315400240C000000000000000000000000000000000A8 -S315400240D00000000000000000000000000000000098 -S315400240E00000000000000000000000000000000088 -S315400240F00000000000000000000000000000000078 -S315400241000000000000000000000000000000000067 -S315400241100000000000000000000000000000000057 -S315400241200000000000000000000000000000000047 -S315400241300000000000000000000000000000000037 -S315400241400000000000000000000000000000000027 -S315400241500000000000000000000000000000000017 -S315400241600000000000000000000000000000000007 -S3154002417000000000000000000000000000000000F7 -S3154002418000000000000000000000000000000000E7 -S3154002419000000000000000000000000000000000D7 -S315400241A000000000000000000000000000000000C7 -S315400241B000000000000000000000000000000000B7 -S315400241C000000000000000000000000000000000A7 -S315400241D00000000000000000000000000000000097 -S315400241E00000000000000000000000000000000087 -S315400241F00000000000000000000000000000000077 -S315400242000000000000000000000000000000000066 -S315400242100000000000000000000000000000000056 -S315400242200000000000000000000000000000000046 -S315400242300000000000000000000000000000000036 -S315400242400000000000000000000000000000000026 -S315400242500000000000000000000000000000000016 -S315400242600000000000000000000000000000000006 -S3154002427000000000000000000000000000000000F6 -S3154002428000000000000000000000000000000000E6 -S3154002429000000000000000000000000000000000D6 -S315400242A000000000000000000000000000000000C6 -S315400242B000000000000000000000000000000000B6 -S315400242C000000000000000000000000000000000A6 -S315400242D00000000000000000000000000000000096 -S315400242E00000000000000000000000000000000086 -S315400242F00000000000000000000000000000000076 -S315400243000000000000000000000000000000000065 -S315400243100000000000000000000000000000000055 -S315400243200000000000000000000000000000000045 -S315400243300000000000000000000000000000000035 -S315400243400000000000000000000000000000000025 -S315400243500000000000000000000000000000000015 -S315400243600000000000000000000000000000000005 -S3154002437000000000000000000000000000000000F5 -S3154002438000000000000000000000000000000000E5 -S3154002439000000000000000000000000000000000D5 -S315400243A000000000000000000000000000000000C5 -S315400243B000000000000000000000000000000000B5 -S315400243C000000000000000000000000000000000A5 -S315400243D00000000000000000000000000000000095 -S315400243E00000000000000000000000000000000085 -S315400243F00000000000000000000000000000000075 -S315400244000000000000000000000000000000000064 -S315400244100000000000000000000000000000000054 -S315400244200000000000000000000000000000000044 -S315400244300000000000000000000000000000000034 -S315400244400000000000000000000000000000000024 -S315400244500000000000000000000000000000000014 -S315400244600000000000000000000000000000000004 -S3154002447000000000000000000000000000000000F4 -S3154002448000000000000000000000000000000000E4 -S3154002449000000000000000000000000000000000D4 -S315400244A000000000000000000000000000000000C4 -S315400244B000000000000000000000000000000000B4 -S315400244C000000000000000000000000000000000A4 -S315400244D00000000000000000000000000000000094 -S315400244E00000000000000000000000000000000084 -S315400244F00000000000000000000000000000000074 -S315400245000000000000000000000000000000000063 -S315400245100000000000000000000000000000000053 -S315400245200000000000000000000000000000000043 -S315400245300000000000000000000000000000000033 -S315400245400000000000000000000000000000000023 -S315400245500000000000000000000000000000000013 -S315400245600000000000000000000000000000000003 -S3154002457000000000000000000000000000000000F3 -S3154002458000000000000000000000000000000000E3 -S3154002459000000000000000000000000000000000D3 -S315400245A000000000000000000000000000000000C3 -S315400245B000000000000000000000000000000000B3 -S315400245C000000000000000000000000000000000A3 -S315400245D00000000000000000000000000000000093 -S315400245E00000000000000000000000000000000083 -S315400245F00000000000000000000000000000000073 -S315400246000000000000000000000000000000000062 -S315400246100000000000000000000000000000000052 -S315400246200000000000000000000000000000000042 -S315400246300000000000000000000000000000000032 -S315400246400000000000000000000000000000000022 -S315400246500000000000000000000000000000000012 -S315400246600000000000000000000000000000000002 -S3154002467000000000000000000000000000000000F2 -S3154002468000000000000000000000000000000000E2 -S3154002469000000000000000000000000000000000D2 -S315400246A000000000000000000000000000000000C2 -S315400246B000000000000000000000000000000000B2 -S315400246C000000000000000000000000000000000A2 -S315400246D00000000000000000000000000000000092 -S315400246E00000000000000000000000000000000082 -S315400246F00000000000000000000000000000000072 -S315400247000000000000000000000000000000000061 -S315400247100000000000000000000000000000000051 -S315400247200000000000000000000000000000000041 -S315400247300000000000000000000000000000000031 -S315400247400000000000000000000000000000000021 -S315400247500000000000000000000000000000000011 -S315400247600000000000000000000000000000000001 -S3154002477000000000000000000000000000000000F1 -S3154002478000000000000000000000000000000000E1 -S3154002479000000000000000000000000000000000D1 -S315400247A000000000000000000000000000000000C1 -S315400247B000000000000000000000000000000000B1 -S315400247C000000000000000000000000000000000A1 -S315400247D00000000000000000000000000000000091 -S315400247E00000000000000000000000000000000081 -S315400247F00000000000000000000000000000000071 -S315400248000000000000000000000000000000000060 -S315400248100000000000000000000000000000000050 -S315400248200000000000000000000000000000000040 -S315400248300000000000000000000000000000000030 -S315400248400000000000000000000000000000000020 -S315400248500000000000000000000000000000000010 -S315400248600000000000000000000000000000000000 -S3154002487000000000000000000000000000000000F0 -S3154002488000000000000000000000000000000000E0 -S3154002489000000000000000000000000000000000D0 -S315400248A000000000000000000000000000000000C0 -S315400248B000000000000000000000000000000000B0 -S315400248C000000000000000000000000000000000A0 -S315400248D00000000000000000000000000000000090 -S315400248E00000000000000000000000000000000080 -S315400248F00000000000000000000000000000000070 -S31540024900000000000000000000000000000000005F -S31540024910000000000000000000000000000000004F -S31540024920000000000000000000000000000000003F -S31540024930000000000000000000000000000000002F -S31540024940000000000000000000000000000000001F -S31540024950000000000000000000000000000000000F -S3154002496000000000000000000000000000000000FF -S3154002497000000000000000000000000000000000EF -S3154002498000000000000000000000000000000000DF -S3154002499000000000000000000000000000000000CF -S315400249A000000000000000000000000000000000BF -S315400249B000000000000000000000000000000000AF -S315400249C0000000000000000000000000000000009F -S315400249D0000000000000000000000000000000008F -S315400249E0000000000000000000000000000000007F -S315400249F0000000000000000000000000000000006F -S31540024A00000000000000000000000000000000005E -S31540024A10000000000000000000000000000000004E -S31540024A20000000000000000000000000000000003E -S31540024A30000000000000000000000000000000002E -S31540024A40000000000000000000000000000000001E -S31540024A50000000000000000000000000000000000E -S31540024A6000000000000000000000000000000000FE -S31540024A7000000000000000000000000000000000EE -S31540024A8000000000000000000000000000000000DE -S31540024A9000000000000000000000000000000000CE -S31540024AA000000000000000000000000000000000BE -S31540024AB000000000000000000000000000000000AE -S31540024AC0000000000000000000000000000000009E -S31540024AD0000000000000000000000000000000008E -S31540024AE0000000000000000000000000000000007E -S31540024AF0000000000000000000000000000000006E -S31540024B00000000000000000000000000000000005D -S31540024B10000000000000000000000000000000004D -S31540024B20000000000000000000000000000000003D -S31540024B30000000000000000000000000000000002D -S31540024B40000000000000000000000000000000001D -S31540024B50000000000000000000000000000000000D -S31540024B6000000000000000000000000000000000FD -S31540024B7000000000000000000000000000000000ED -S31540024B8000000000000000000000000000000000DD -S31540024B9000000000000000000000000000000000CD -S31540024BA000000000000000000000000000000000BD -S31540024BB000000000000000000000000000000000AD -S31540024BC0000000000000000000000000000000009D -S31540024BD0000000000000000000000000000000008D -S31540024BE0000000000000000000000000000000007D -S31540024BF0000000000000000000000000000000006D -S31540024C00000000000000000000000000000000005C -S31540024C10000000000000000000000000000000004C -S31540024C20000000000000000000000000000000003C -S31540024C30000000000000000000000000000000002C -S31540024C40000000000000000000000000000000001C -S31540024C50000000000000000000000000000000000C -S31540024C6000000000000000000000000000000000FC -S31540024C7000000000000000000000000000000000EC -S31540024C8000000000000000000000000000000000DC -S31540024C9000000000000000000000000000000000CC -S31540024CA000000000000000000000000000000000BC -S31540024CB000000000000000000000000000000000AC -S31540024CC0000000000000000000000000000000009C -S31540024CD0000000000000000000000000000000008C -S31540024CE0000000000000000000000000000000007C -S31540024CF0000000000000000000000000000000006C -S31540024D00000000000000000000000000000000005B -S31540024D10000000000000000000000000000000004B -S31540024D20000000000000000000000000000000003B -S31540024D30000000000000000000000000000000002B -S31540024D40000000000000000000000000000000001B -S31540024D50000000000000000000000000000000000B -S31540024D6000000000000000000000000000000000FB -S31540024D7000000000000000000000000000000000EB -S31540024D8000000000000000000000000000000000DB -S31540024D9000000000000000000000000000000000CB -S31540024DA000000000000000000000000000000000BB -S31540024DB000000000000000000000000000000000AB -S31540024DC0000000000000000000000000000000009B -S31540024DD0000000000000000000000000000000008B -S31540024DE0000000000000000000000000000000007B -S31540024DF0000000000000000000000000000000006B -S31540024E00000000000000000000000000000000005A -S31540024E10000000000000000000000000000000004A -S31540024E20000000000000000000000000000000003A -S31540024E30000000000000000000000000000000002A -S31540024E40000000000000000000000000000000001A -S31540024E50000000000000000000000000000000000A -S31540024E6000000000000000000000000000000000FA -S31540024E7000000000000000000000000000000000EA -S31540024E8000000000000000000000000000000000DA -S31540024E9000000000000000000000000000000000CA -S31540024EA000000000000000000000000000000000BA -S31540024EB000000000000000000000000000000000AA -S31540024EC0000000000000000000000000000000009A -S31540024ED0000000000000000000000000000000008A -S31540024EE0000000000000000000000000000000007A -S31540024EF0000000000000000000000000000000006A -S31540024F000000000000000000000000000000000059 -S31540024F100000000000000000000000000000000049 -S31540024F200000000000000000000000000000000039 -S31540024F300000000000000000000000000000000029 -S31540024F400000000000000000000000000000000019 -S31540024F500000000000000000000000000000000009 -S31540024F6000000000000000000000000000000000F9 -S31540024F7000000000000000000000000000000000E9 -S31540024F8000000000000000000000000000000000D9 -S31540024F9000000000000000000000000000000000C9 -S31540024FA000000000000000000000000000000000B9 -S31540024FB000000000000000000000000000000000A9 -S31540024FC00000000000000000000000000000000099 -S31540024FD00000000000000000000000000000000089 -S31540024FE00000000000000000000000000000000079 -S31540024FF00000000000000000000000000000000069 -S315400250000000000000000000000000000000000058 -S315400250100000000000000000000000000000000048 -S315400250200000000000000000000000000000000038 -S315400250300000000000000000000000000000000028 -S315400250400000000000000000000000000000000018 -S315400250500000000000000000000000000000000008 -S3154002506000000000000000000000000000000000F8 -S3154002507000000000000000000000000000000000E8 -S3154002508000000000000000000000000000000000D8 -S3154002509000000000000000000000000000000000C8 -S315400250A000000000000000000000000000000000B8 -S315400250B000000000000000000000000000000000A8 -S315400250C00000000000000000000000000000000098 -S315400250D00000000000000000000000000000000088 -S315400250E00000000000000000000000000000000078 -S315400250F00000000000000000000000000000000068 -S315400251000000000000000000000000000000000057 -S315400251100000000000000000000000000000000047 -S315400251200000000000000000000000000000000037 -S315400251300000000000000000000000000000000027 -S315400251400000000000000000000000000000000017 -S315400251500000000000000000000000000000000007 -S3154002516000000000000000000000000000000000F7 -S3154002517000000000000000000000000000000000E7 -S3154002518000000000000000000000000000000000D7 -S3154002519000000000000000000000000000000000C7 -S315400251A000000000000000000000000000000000B7 -S315400251B000000000000000000000000000000000A7 -S315400251C00000000000000000000000000000000097 -S315400251D00000000000000000000000000000000087 -S315400251E00000000000000000000000000000000077 -S315400251F00000000000000000000000000000000067 -S315400252000000000000000000000000000000000056 -S315400252100000000000000000000000000000000046 -S315400252200000000000000000000000000000000036 -S315400252300000000000000000000000000000000026 -S315400252400000000000000000000000000000000016 -S315400252500000000000000000000000000000000006 -S3154002526000000000000000000000000000000000F6 -S3154002527000000000000000000000000000000000E6 -S3154002528000000000000000000000000000000000D6 -S3154002529000000000000000000000000000000000C6 -S315400252A000000000000000000000000000000000B6 -S315400252B000000000000000000000000000000000A6 -S315400252C00000000000000000000000000000000096 -S315400252D00000000000000000000000000000000086 -S315400252E00000000000000000000000000000000076 -S315400252F00000000000000000000000000000000066 -S315400253000000000000000000000000000000000055 -S315400253100000000000000000000000000000000045 -S315400253200000000000000000000000000000000035 -S315400253300000000000000000000000000000000025 -S315400253400000000000000000000000000000000015 -S315400253500000000000000000000000000000000005 -S3154002536000000000000000000000000000000000F5 -S3154002537000000000000000000000000000000000E5 -S3154002538000000000000000000000000000000000D5 -S3154002539000000000000000000000000000000000C5 -S315400253A000000000000000000000000000000000B5 -S315400253B000000000000000000000000000000000A5 -S315400253C00000000000000000000000000000000095 -S315400253D00000000000000000000000000000000085 -S315400253E00000000000000000000000000000000075 -S315400253F00000000000000000000000000000000065 -S315400254000000000000000000000000000000000054 -S315400254100000000000000000000000000000000044 -S315400254200000000000000000000000000000000034 -S315400254300000000000000000000000000000000024 -S315400254400000000000000000000000000000000014 -S315400254500000000000000000000000000000000004 -S3154002546000000000000000000000000000000000F4 -S3154002547000000000000000000000000000000000E4 -S3154002548000000000000000000000000000000000D4 -S3154002549000000000000000000000000000000000C4 -S315400254A000000000000000000000000000000000B4 -S315400254B000000000000000000000000000000000A4 -S315400254C00000000000000000000000000000000094 -S315400254D00000000000000000000000000000000084 -S315400254E00000000000000000000000000000000074 -S315400254F00000000000000000000000000000000064 -S315400255000000000000000000000000000000000053 -S315400255100000000000000000000000000000000043 -S315400255200000000000000000000000000000000033 -S315400255300000000000000000000000000000000023 -S315400255400000000000000000000000000000000013 -S315400255500000000000000000000000000000000003 -S3154002556000000000000000000000000000000000F3 -S3154002557000000000000000000000000000000000E3 -S3154002558000000000000000000000000000000000D3 -S3154002559000000000000000000000000000000000C3 -S315400255A000000000000000000000000000000000B3 -S315400255B000000000000000000000000000000000A3 -S315400255C00000000000000000000000000000000093 -S315400255D00000000000000000000000000000000083 -S315400255E00000000000000000000000000000000073 -S315400255F00000000000000000000000000000000063 -S315400256000000000000000000000000000000000052 -S315400256100000000000000000000000000000000042 -S315400256200000000000000000000000000000000032 -S315400256300000000000000000000000000000000022 -S315400256400000000000000000000000000000000012 -S315400256500000000000000000000000000000000002 -S3154002566000000000000000000000000000000000F2 -S3154002567000000000000000000000000000000000E2 -S3154002568000000000000000000000000000000000D2 -S3154002569000000000000000000000000000000000C2 -S315400256A000000000000000000000000000000000B2 -S315400256B000000000000000000000000000000000A2 -S315400256C00000000000000000000000000000000092 -S315400256D00000000000000000000000000000000082 -S315400256E00000000000000000000000000000000072 -S315400256F00000000000000000000000000000000062 -S315400257000000000000000000000000000000000051 -S315400257100000000000000000000000000000000041 -S315400257200000000000000000000000000000000031 -S315400257300000000000000000000000000000000021 -S315400257400000000000000000000000000000000011 -S315400257500000000000000000000000000000000001 -S3154002576000000000000000000000000000000000F1 -S3154002577000000000000000000000000000000000E1 -S3154002578000000000000000000000000000000000D1 -S3154002579000000000000000000000000000000000C1 -S315400257A000000000000000000000000000000000B1 -S315400257B000000000000000000000000000000000A1 -S315400257C00000000000000000000000000000000091 -S315400257D00000000000000000000000000000000081 -S315400257E00000000000000000000000000000000071 -S315400257F00000000000000000000000000000000061 -S315400258000000000000000000000000000000000050 -S315400258100000000000000000000000000000000040 -S315400258200000000000000000000000000000000030 -S315400258300000000000000000000000000000000020 -S315400258400000000000000000000000000000000010 -S315400258500000000000000000000000000000000000 -S3154002586000000000000000000000000000000000F0 -S3154002587000000000000000000000000000000000E0 -S3154002588000000000000000000000000000000000D0 -S3154002589000000000000000000000000000000000C0 -S315400258A000000000000000000000000000000000B0 -S315400258B000000000000000000000000000000000A0 -S315400258C00000000000000000000000000000000090 -S315400258D00000000000000000000000000000000080 -S315400258E00000000000000000000000000000000070 -S315400258F00000000000000000000000000000000060 -S31540025900000000000000000000000000000000004F -S31540025910000000000000000000000000000000003F -S31540025920000000000000000000000000000000002F -S31540025930000000000000000000000000000000001F -S31540025940000000000000000000000000000000000F -S3154002595000000000000000000000000000000000FF -S3154002596000000000000000000000000000000000EF -S3154002597000000000000000000000000000000000DF -S3154002598000000000000000000000000000000000CF -S3154002599000000000000000000000000000000000BF -S315400259A000000000000000000000000000000000AF -S315400259B0000000000000000000000000000000009F -S315400259C0000000000000000000000000000000008F -S315400259D0000000000000000000000000000000007F -S315400259E0000000000000000000000000000000006F -S315400259F0000000000000000000000000000000005F -S31540025A00000000000000000000000000000000004E -S31540025A10000000000000000000000000000000003E -S31540025A20000000000000000000000000000000002E -S31540025A30000000000000000000000000000000001E -S31540025A40000000000000000000000000000000000E -S31540025A5000000000000000000000000000000000FE -S31540025A6000000000000000000000000000000000EE -S31540025A7000000000000000000000000000000000DE -S31540025A8000000000000000000000000000000000CE -S31540025A9000000000000000000000000000000000BE -S31540025AA000000000000000000000000000000000AE -S31540025AB0000000000000000000000000000000009E -S31540025AC0000000000000000000000000000000008E -S31540025AD0000000000000000000000000000000007E -S31540025AE0000000000000000000000000000000006E -S31540025AF0000000000000000000000000000000005E -S31540025B00000000000000000000000000000000004D -S31540025B10000000000000000000000000000000003D -S31540025B20000000000000000000000000000000002D -S31540025B30000000000000000000000000000000001D -S31540025B40000000000000000000000000000000000D -S31540025B5000000000000000000000000000000000FD -S31540025B6000000000000000000000000000000000ED -S31540025B7000000000000000000000000000000000DD -S31540025B8000000000000000000000000000000000CD -S31540025B9000000000000000000000000000000000BD -S31540025BA000000000000000000000000000000000AD -S31540025BB0000000000000000000000000000000009D -S31540025BC0000000000000000000000000000000008D -S31540025BD0000000000000000000000000000000007D -S31540025BE0000000000000000000000000000000006D -S31540025BF0000000000000000000000000000000005D -S31540025C00000000000000000000000000000000004C -S31540025C10000000000000000000000000000000003C -S31540025C20000000000000000000000000000000002C -S31540025C30000000000000000000000000000000001C -S31540025C40000000000000000000000000000000000C -S31540025C5000000000000000000000000000000000FC -S31540025C6000000000000000000000000000000000EC -S31540025C7000000000000000000000000000000000DC -S31540025C8000000000000000000000000000000000CC -S31540025C9000000000000000000000000000000000BC -S31540025CA000000000000000000000000000000000AC -S31540025CB0000000000000000000000000000000009C -S31540025CC0000000000000000000000000000000008C -S31540025CD0000000000000000000000000000000007C -S31540025CE0000000000000000000000000000000006C -S31540025CF0000000000000000000000000000000005C -S31540025D00000000000000000000000000000000004B -S31540025D10000000000000000000000000000000003B -S31540025D20000000000000000000000000000000002B -S31540025D30000000000000000000000000000000001B -S31540025D40000000000000000000000000000000000B -S31540025D5000000000000000000000000000000000FB -S31540025D6000000000000000000000000000000000EB -S31540025D7000000000000000000000000000000000DB -S31540025D8000000000000000000000000000000000CB -S31540025D9000000000000000000000000000000000BB -S31540025DA000000000000000000000000000000000AB -S31540025DB0000000000000000000000000000000009B -S31540025DC0000000000000000000000000000000008B -S31540025DD0000000000000000000000000000000007B -S31540025DE0000000000000000000000000000000006B -S31540025DF0000000000000000000000000000000005B -S31540025E00000000000000000000000000000000004A -S31540025E10000000000000000000000000000000003A -S31540025E20000000000000000000000000000000002A -S31540025E30000000000000000000000000000000001A -S31540025E40000000000000000000000000000000000A -S31540025E5000000000000000000000000000000000FA -S31540025E6000000000000000000000000000000000EA -S31540025E7000000000000000000000000000000000DA -S31540025E8000000000000000000000000000000000CA -S31540025E9000000000000000000000000000000000BA -S31540025EA000000000000000000000000000000000AA -S31540025EB0000000000000000000000000000000009A -S31540025EC0000000000000000000000000000000008A -S31540025ED0000000000000000000000000000000007A -S31540025EE0000000000000000000000000000000006A -S31540025EF0000000000000000000000000000000005A -S31540025F000000000000000000000000000000000049 -S31540025F100000000000000000000000000000000039 -S31540025F200000000000000000000000000000000029 -S31540025F300000000000000000000000000000000019 -S31540025F400000000000000000000000000000000009 -S31540025F5000000000000000000000000000000000F9 -S31540025F6000000000000000000000000000000000E9 -S31540025F7000000000000000000000000000000000D9 -S31540025F8000000000000000000000000000000000C9 -S31540025F9000000000000000000000000000000000B9 -S31540025FA000000000000000000000000000000000A9 -S31540025FB00000000000000000000000000000000099 -S31540025FC00000000000000000000000000000000089 -S31540025FD00000000000000000000000000000000079 -S31540025FE00000000000000000000000000000000069 -S31540025FF00000000000000000000000000000000059 -S315400260000000000000000000000000000000000048 -S315400260100000000000000000000000000000000038 -S315400260200000000000000000000000000000000028 -S315400260300000000000000000000000000000000018 -S315400260400000000000000000000000000000000008 -S3154002605000000000000000000000000000000000F8 -S3154002606000000000000000000000000000000000E8 -S3154002607000000000000000000000000000000000D8 -S3154002608000000000000000000000000000000000C8 -S3154002609000000000000000000000000000000000B8 -S315400260A000000000000000000000000000000000A8 -S315400260B00000000000000000000000000000000098 -S315400260C00000000000000000000000000000000088 -S315400260D00000000000000000000000000000000078 -S315400260E00000000000000000000000000000000068 -S315400260F00000000000000000000000000000000058 -S315400261000000000000000000000000000000000047 -S315400261100000000000000000000000000000000037 -S315400261200000000000000000000000000000000027 -S315400261300000000000000000000000000000000017 -S315400261400000000000000000000000000000000007 -S3154002615000000000000000000000000000000000F7 -S3154002616000000000000000000000000000000000E7 -S3154002617000000000000000000000000000000000D7 -S3154002618000000000000000000000000000000000C7 -S3154002619000000000000000000000000000000000B7 -S315400261A000000000000000000000000000000000A7 -S315400261B00000000000000000000000000000000097 -S315400261C00000000000000000000000000000000087 -S315400261D00000000000000000000000000000000077 -S315400261E00000000000000000000000000000000067 -S315400261F00000000000000000000000000000000057 -S315400262000000000000000000000000000000000046 -S315400262100000000000000000000000000000000036 -S315400262200000000000000000000000000000000026 -S315400262300000000000000000000000000000000016 -S315400262400000000000000000000000000000000006 -S3154002625000000000000000000000000000000000F6 -S3154002626000000000000000000000000000000000E6 -S3154002627000000000000000000000000000000000D6 -S3154002628000000000000000000000000000000000C6 -S3154002629000000000000000000000000000000000B6 -S315400262A000000000000000000000000000000000A6 -S315400262B00000000000000000000000000000000096 -S315400262C00000000000000000000000000000000086 -S315400262D00000000000000000000000000000000076 -S315400262E00000000000000000000000000000000066 -S315400262F00000000000000000000000000000000056 -S315400263000000000000000000000000000000000045 -S315400263100000000000000000000000000000000035 -S315400263200000000000000000000000000000000025 -S315400263300000000000000000000000000000000015 -S315400263400000000000000000000000000000000005 -S3154002635000000000000000000000000000000000F5 -S3154002636000000000000000000000000000000000E5 -S3154002637000000000000000000000000000000000D5 -S3154002638000000000000000000000000000000000C5 -S3154002639000000000000000000000000000000000B5 -S315400263A000000000000000000000000000000000A5 -S315400263B00000000000000000000000000000000095 -S315400263C00000000000000000000000000000000085 -S315400263D00000000000000000000000000000000075 -S315400263E00000000000000000000000000000000065 -S315400263F00000000000000000000000000000000055 -S315400264000000000000000000000000000000000044 -S315400264100000000000000000000000000000000034 -S315400264200000000000000000000000000000000024 -S315400264300000000000000000000000000000000014 -S315400264400000000000000000000000000000000004 -S3154002645000000000000000000000000000000000F4 -S3154002646000000000000000000000000000000000E4 -S3154002647000000000000000000000000000000000D4 -S3154002648000000000000000000000000000000000C4 -S3154002649000000000000000000000000000000000B4 -S315400264A000000000000000000000000000000000A4 -S315400264B00000000000000000000000000000000094 -S315400264C00000000000000000000000000000000084 -S315400264D00000000000000000000000000000000074 -S315400264E00000000000000000000000000000000064 -S315400264F00000000000000000000000000000000054 -S315400265000000000000000000000000000000000043 -S315400265100000000000000000000000000000000033 -S315400265200000000000000000000000000000000023 -S315400265300000000000000000000000000000000013 -S315400265400000000000000000000000000000000003 -S3154002655000000000000000000000000000000000F3 -S3154002656000000000000000000000000000000000E3 -S3154002657000000000000000000000000000000000D3 -S3154002658000000000000000000000000000000000C3 -S3154002659000000000000000000000000000000000B3 -S315400265A000000000000000000000000000000000A3 -S315400265B00000000000000000000000000000000093 -S315400265C00000000000000000000000000000000083 -S315400265D00000000000000000000000000000000073 -S315400265E00000000000000000000000000000000063 -S315400265F00000000000000000000000000000000053 -S315400266000000000000000000000000000000000042 -S315400266100000000000000000000000000000000032 -S315400266200000000000000000000000000000000022 -S315400266300000000000000000000000000000000012 -S315400266400000000000000000000000000000000002 -S3154002665000000000000000000000000000000000F2 -S3154002666000000000000000000000000000000000E2 -S3154002667000000000000000000000000000000000D2 -S3154002668000000000000000000000000000000000C2 -S3154002669000000000000000000000000000000000B2 -S315400266A000000000000000000000000000000000A2 -S315400266B00000000000000000000000000000000092 -S315400266C00000000000000000000000000000000082 -S315400266D00000000000000000000000000000000072 -S315400266E00000000000000000000000000000000062 -S315400266F00000000000000000000000000000000052 -S315400267000000000000000000000000000000000041 -S315400267100000000000000000000000000000000031 -S315400267200000000000000000000000000000000021 -S315400267300000000000000000000000000000000011 -S315400267400000000000000000000000000000000001 -S3154002675000000000000000000000000000000000F1 -S3154002676000000000000000000000000000000000E1 -S3154002677000000000000000000000000000000000D1 -S3154002678000000000000000000000000000000000C1 -S3154002679000000000000000000000000000000000B1 -S315400267A000000000000000000000000000000000A1 -S315400267B00000000000000000000000000000000091 -S315400267C00000000000000000000000000000000081 -S315400267D00000000000000000000000000000000071 -S315400267E00000000000000000000000000000000061 -S315400267F00000000000000000000000000000000051 -S315400268000000000000000000000000000000000040 -S315400268100000000000000000000000000000000030 -S315400268200000000000000000000000000000000020 -S315400268300000000000000000000000000000000010 -S315400268400000000000000000000000000000000000 -S3154002685000000000000000000000000000000000F0 -S3154002686000000000000000000000000000000000E0 -S3154002687000000000000000000000000000000000D0 -S3154002688000000000000000000000000000000000C0 -S3154002689000000000000000000000000000000000B0 -S315400268A000000000000000000000000000000000A0 -S315400268B00000000000000000000000000000000090 -S315400268C00000000000000000000000000000000080 -S315400268D00000000000000000000000000000000070 -S315400268E00000000000000000000000000000000060 -S315400268F00000000000000000000000000000000050 -S31540026900000000000000000000000000000000003F -S31540026910000000000000000000000000000000002F -S31540026920000000000000000000000000000000001F -S31540026930000000000000000000000000000000000F -S3154002694000000000000000000000000000000000FF -S3154002695000000000000000000000000000000000EF -S3154002696000000000000000000000000000000000DF -S3154002697000000000000000000000000000000000CF -S3154002698000000000000000000000000000000000BF -S3154002699000000000000000000000000000000000AF -S315400269A0000000000000000000000000000000009F -S315400269B0000000000000000000000000000000008F -S315400269C0000000000000000000000000000000007F -S315400269D0000000000000000000000000000000006F -S315400269E0000000000000000000000000000000005F -S315400269F0000000000000000000000000000000004F -S31540026A00000000000000000000000000000000003E -S31540026A10000000000000000000000000000000002E -S31540026A20000000000000000000000000000000001E -S31540026A30000000000000000000000000000000000E -S31540026A4000000000000000000000000000000000FE -S31540026A5000000000000000000000000000000000EE -S31540026A6000000000000000000000000000000000DE -S31540026A7000000000000000000000000000000000CE -S31540026A8000000000000000000000000000000000BE -S31540026A9000000000000000000000000000000000AE -S31540026AA0000000000000000000000000000000009E -S31540026AB0000000000000000000000000000000008E -S31540026AC0000000000000000000000000000000007E -S31540026AD0000000000000000000000000000000006E -S31540026AE0000000000000000000000000000000005E -S31540026AF0000000000000000000000000000000004E -S31540026B00000000000000000000000000000000003D -S31540026B10000000000000000000000000000000002D -S31540026B20000000000000000000000000000000001D -S31540026B30000000000000000000000000000000000D -S31540026B4000000000000000000000000000000000FD -S31540026B5000000000000000000000000000000000ED -S31540026B6000000000000000000000000000000000DD -S31540026B7000000000000000000000000000000000CD -S31540026B8000000000000000000000000000000000BD -S31540026B9000000000000000000000000000000000AD -S31540026BA0000000000000000000000000000000009D -S31540026BB0000000000000000000000000000000008D -S31540026BC0000000000000000000000000000000007D -S31540026BD0000000000000000000000000000000006D -S31540026BE0000000000000000000000000000000005D -S31540026BF0000000000000000000000000000000004D -S31540026C00000000000000000000000000000000003C -S31540026C10000000000000000000000000000000002C -S31540026C20000000000000000000000000000000001C -S31540026C30000000000000000000000000000000000C -S31540026C4000000000000000000000000000000000FC -S31540026C5000000000000000000000000000000000EC -S31540026C6000000000000000000000000000000000DC -S31540026C7000000000000000000000000000000000CC -S31540026C8000000000000000000000000000000000BC -S31540026C9000000000000000000000000000000000AC -S31540026CA0000000000000000000000000000000009C -S31540026CB0000000000000000000000000000000008C -S31540026CC0000000000000000000000000000000007C -S31540026CD0000000000000000000000000000000006C -S31540026CE0000000000000000000000000000000005C -S31540026CF0000000000000000000000000000000004C -S31540026D00000000000000000000000000000000003B -S31540026D10000000000000000000000000000000002B -S31540026D20000000000000000000000000000000001B -S31540026D30000000000000000000000000000000000B -S31540026D4000000000000000000000000000000000FB -S31540026D5000000000000000000000000000000000EB -S31540026D6000000000000000000000000000000000DB -S31540026D7000000000000000000000000000000000CB -S31540026D8000000000000000000000000000000000BB -S31540026D9000000000000000000000000000000000AB -S31540026DA0000000000000000000000000000000009B -S31540026DB0000000000000000000000000000000008B -S31540026DC0000000000000000000000000000000007B -S31540026DD0000000000000000000000000000000006B -S31540026DE0000000000000000000000000000000005B -S31540026DF0000000000000000000000000000000004B -S31540026E00000000000000000000000000000000003A -S31540026E10000000000000000000000000000000002A -S31540026E20000000000000000000000000000000001A -S31540026E30000000000000000000000000000000000A -S31540026E4000000000000000000000000000000000FA -S31540026E5000000000000000000000000000000000EA -S31540026E6000000000000000000000000000000000DA -S31540026E7000000000000000000000000000000000CA -S31540026E8000000000000000000000000000000000BA -S31540026E9000000000000000000000000000000000AA -S31540026EA0000000000000000000000000000000009A -S31540026EB0000000000000000000000000000000008A -S31540026EC0000000000000000000000000000000007A -S31540026ED0000000000000000000000000000000006A -S31540026EE0000000000000000000000000000000005A -S31540026EF0000000000000000000000000000000004A -S31540026F000000000000000000000000000000000039 -S31540026F100000000000000000000000000000000029 -S31540026F200000000000000000000000000000000019 -S31540026F300000000000000000000000000000000009 -S31540026F4000000000000000000000000000000000F9 -S31540026F5000000000000000000000000000000000E9 -S31540026F6000000000000000000000000000000000D9 -S31540026F7000000000000000000000000000000000C9 -S31540026F8000000000000000000000000000000000B9 -S31540026F9000000000000000000000000000000000A9 -S31540026FA00000000000000000000000000000000099 -S31540026FB00000000000000000000000000000000089 -S31540026FC00000000000000000000000000000000079 -S31540026FD00000000000000000000000000000000069 -S31540026FE00000000000000000000000000000000059 -S31540026FF00000000000000000000000000000000049 -S315400270000000000000000000000000000000000038 -S315400270100000000000000000000000000000000028 -S315400270200000000000000000000000000000000018 -S315400270300000000000000000000000000000000008 -S3154002704000000000000000000000000000000000F8 -S3154002705000000000000000000000000000000000E8 -S3154002706000000000000000000000000000000000D8 -S3154002707000000000000000000000000000000000C8 -S3154002708000000000000000000000000000000000B8 -S3154002709000000000000000000000000000000000A8 -S315400270A00000000000000000000000000000000098 -S315400270B00000000000000000000000000000000088 -S315400270C00000000000000000000000000000000078 -S315400270D00000000000000000000000000000000068 -S315400270E00000000000000000000000000000000058 -S315400270F00000000000000000000000000000000048 -S315400271000000000000000000000000000000000037 -S315400271100000000000000000000000000000000027 -S315400271200000000000000000000000000000000017 -S315400271300000000000000000000000000000000007 -S3154002714000000000000000000000000000000000F7 -S3154002715000000000000000000000000000000000E7 -S3154002716000000000000000000000000000000000D7 -S3154002717000000000000000000000000000000000C7 -S3154002718000000000000000000000000000000000B7 -S3154002719000000000000000000000000000000000A7 -S315400271A00000000000000000000000000000000097 -S315400271B00000000000000000000000000000000087 -S315400271C00000000000000000000000000000000077 -S315400271D00000000000000000000000000000000067 -S315400271E00000000000000000000000000000000057 -S315400271F00000000000000000000000000000000047 -S315400272000000000000000000000000000000000036 -S315400272100000000000000000000000000000000026 -S315400272200000000000000000000000000000000016 -S315400272300000000000000000000000000000000006 -S3154002724000000000000000000000000000000000F6 -S3154002725000000000000000000000000000000000E6 -S3154002726000000000000000000000000000000000D6 -S3154002727000000000000000000000000000000000C6 -S3154002728000000000000000000000000000000000B6 -S3154002729000000000000000000000000000000000A6 -S315400272A00000000000000000000000000000000096 -S315400272B00000000000000000000000000000000086 -S315400272C00000000000000000000000000000000076 -S315400272D00000000000000000000000000000000066 -S315400272E00000000000000000000000000000000056 -S315400272F00000000000000000000000000000000046 -S315400273000000000000000000000000000000000035 -S315400273100000000000000000000000000000000025 -S315400273200000000000000000000000000000000015 -S315400273300000000000000000000000000000000005 -S3154002734000000000000000000000000000000000F5 -S3154002735000000000000000000000000000000000E5 -S3154002736000000000000000000000000000000000D5 -S3154002737000000000000000000000000000000000C5 -S3154002738000000000000000000000000000000000B5 -S3154002739000000000000000000000000000000000A5 -S315400273A00000000000000000000000000000000095 -S315400273B00000000000000000000000000000000085 -S315400273C00000000000000000000000000000000075 -S315400273D00000000000000000000000000000000065 -S315400273E00000000000000000000000000000000055 -S315400273F00000000000000000000000000000000045 -S315400274000000000000000000000000000000000034 -S315400274100000000000000000000000000000000024 -S315400274200000000000000000000000000000000014 -S315400274300000000000000000000000000000000004 -S3154002744000000000000000000000000000000000F4 -S3154002745000000000000000000000000000000000E4 -S3154002746000000000000000000000000000000000D4 -S3154002747000000000000000000000000000000000C4 -S3154002748000000000000000000000000000000000B4 -S3154002749000000000000000000000000000000000A4 -S315400274A00000000000000000000000000000000094 -S315400274B00000000000000000000000000000000084 -S315400274C00000000000000000000000000000000074 -S315400274D00000000000000000000000000000000064 -S315400274E00000000000000000000000000000000054 -S315400274F00000000000000000000000000000000044 -S315400275000000000000000000000000000000000033 -S315400275100000000000000000000000000000000023 -S315400275200000000000000000000000000000000013 -S315400275300000000000000000000000000000000003 -S3154002754000000000000000000000000000000000F3 -S3154002755000000000000000000000000000000000E3 -S3154002756000000000000000000000000000000000D3 -S3154002757000000000000000000000000000000000C3 -S3154002758000000000000000000000000000000000B3 -S3154002759000000000000000000000000000000000A3 -S315400275A00000000000000000000000000000000093 -S315400275B00000000000000000000000000000000083 -S315400275C00000000000000000000000000000000073 -S315400275D00000000000000000000000000000000063 -S315400275E00000000000000000000000000000000053 -S315400275F00000000000000000000000000000000043 -S315400276000000000000000000000000000000000032 -S315400276100000000000000000000000000000000022 -S315400276200000000000000000000000000000000012 -S315400276300000000000000000000000000000000002 -S3154002764000000000000000000000000000000000F2 -S3154002765000000000000000000000000000000000E2 -S3154002766000000000000000000000000000000000D2 -S3154002767000000000000000000000000000000000C2 -S3154002768000000000000000000000000000000000B2 -S3154002769000000000000000000000000000000000A2 -S315400276A00000000000000000000000000000000092 -S315400276B00000000000000000000000000000000082 -S315400276C00000000000000000000000000000000072 -S315400276D00000000000000000000000000000000062 -S315400276E00000000000000000000000000000000052 -S315400276F00000000000000000000000000000000042 -S315400277000000000000000000000000000000000031 -S315400277100000000000000000000000000000000021 -S315400277200000000000000000000000000000000011 -S315400277300000000000000000000000000000000001 -S3154002774000000000000000000000000000000000F1 -S3154002775000000000000000000000000000000000E1 -S3154002776000000000000000000000000000000000D1 -S3154002777000000000000000000000000000000000C1 -S3154002778000000000000000000000000000000000B1 -S3154002779000000000000000000000000000000000A1 -S315400277A00000000000000000000000000000000091 -S315400277B00000000000000000000000000000000081 -S315400277C00000000000000000000000000000000071 -S315400277D00000000000000000000000000000000061 -S315400277E00000000000000000000000000000000051 -S315400277F00000000000000000000000000000000041 -S315400278000000000000000000000000000000000030 -S315400278100000000000000000000000000000000020 -S315400278200000000000000000000000000000000010 -S315400278300000000000000000000000000000000000 -S3154002784000000000000000000000000000000000F0 -S3154002785000000000000000000000000000000000E0 -S3154002786000000000000000000000000000000000D0 -S3154002787000000000000000000000000000000000C0 -S3154002788000000000000000000000000000000000B0 -S3154002789000000000000000000000000000000000A0 -S315400278A00000000000000000000000000000000090 -S315400278B00000000000000000000000000000000080 -S315400278C00000000000000000000000000000000070 -S315400278D00000000000000000000000000000000060 -S315400278E00000000000000000000000000000000050 -S315400278F00000000000000000000000000000000040 -S31540027900000000000000000000000000000000002F -S31540027910000000000000000000000000000000001F -S31540027920000000000000000000000000000000000F -S3154002793000000000000000000000000000000000FF -S3154002794000000000000000000000000000000000EF -S3154002795000000000000000000000000000000000DF -S3154002796000000000000000000000000000000000CF -S3154002797000000000000000000000000000000000BF -S3154002798000000000000000000000000000000000AF -S31540027990000000000000000000000000000000009F -S315400279A0000000000000000000000000000000008F -S315400279B0000000000000000000000000000000007F -S315400279C0000000000000000000000000000000006F -S315400279D0000000000000000000000000000000005F -S315400279E0000000000000000000000000000000004F -S315400279F0000000000000000000000000000000003F -S31540027A00000000000000000000000000000000002E -S31540027A10000000000000000000000000000000001E -S31540027A20000000000000000000000000000000000E -S31540027A3000000000000000000000000000000000FE -S31540027A4000000000000000000000000000000000EE -S31540027A5000000000000000000000000000000000DE -S31540027A6000000000000000000000000000000000CE -S31540027A7000000000000000000000000000000000BE -S31540027A8000000000000000000000000000000000AE -S31540027A90000000000000000000000000000000009E -S31540027AA0000000000000000000000000000000008E -S31540027AB0000000000000000000000000000000007E -S31540027AC0000000000000000000000000000000006E -S31540027AD0000000000000000000000000000000005E -S31540027AE0000000000000000000000000000000004E -S31540027AF0000000000000000000000000000000003E -S31540027B00000000000000000000000000000000002D -S31540027B10000000000000000000000000000000001D -S31540027B20000000000000000000000000000000000D -S31540027B3000000000000000000000000000000000FD -S31540027B4000000000000000000000000000000000ED -S31540027B5000000000000000000000000000000000DD -S31540027B6000000000000000000000000000000000CD -S31540027B7000000000000000000000000000000000BD -S31540027B8000000000000000000000000000000000AD -S31540027B90000000000000000000000000000000009D -S31540027BA0000000000000000000000000000000008D -S31540027BB0000000000000000000000000000000007D -S31540027BC0000000000000000000000000000000006D -S31540027BD0000000000000000000000000000000005D -S31540027BE0000000000000000000000000000000004D -S31540027BF0000000000000000000000000000000003D -S31540027C00000000000000000000000000000000002C -S31540027C10000000000000000000000000000000001C -S31540027C20000000000000000000000000000000000C -S31540027C3000000000000000000000000000000000FC -S31540027C4000000000000000000000000000000000EC -S31540027C5000000000000000000000000000000000DC -S31540027C6000000000000000000000000000000000CC -S31540027C7000000000000000000000000000000000BC -S31540027C8000000000000000000000000000000000AC -S31540027C90000000000000000000000000000000009C -S31540027CA0000000000000000000000000000000008C -S31540027CB0000000000000000000000000000000007C -S31540027CC0000000000000000000000000000000006C -S31540027CD0000000000000000000000000000000005C -S31540027CE0000000000000000000000000000000004C -S31540027CF0000000000000000000000000000000003C -S31540027D00000000000000000000000000000000002B -S31540027D10000000000000000000000000000000001B -S31540027D20000000000000000000000000000000000B -S31540027D3000000000000000000000000000000000FB -S31540027D4000000000000000000000000000000000EB -S31540027D5000000000000000000000000000000000DB -S31540027D6000000000000000000000000000000000CB -S31540027D7000000000000000000000000000000000BB -S31540027D8000000000000000000000000000000000AB -S31540027D90000000000000000000000000000000009B -S31540027DA0000000000000000000000000000000008B -S31540027DB0000000000000000000000000000000007B -S31540027DC0000000000000000000000000000000006B -S31540027DD0000000000000000000000000000000005B -S31540027DE0000000000000000000000000000000004B -S31540027DF0000000000000000000000000000000003B -S31540027E00000000000000000000000000000000002A -S31540027E10000000000000000000000000000000001A -S31540027E20000000000000000000000000000000000A -S31540027E3000000000000000000000000000000000FA -S31540027E4000000000000000000000000000000000EA -S31540027E5000000000000000000000000000000000DA -S31540027E6000000000000000000000000000000000CA -S31540027E7000000000000000000000000000000000BA -S31540027E8000000000000000000000000000000000AA -S31540027E90000000000000000000000000000000009A -S31540027EA0000000000000000000000000000000008A -S31540027EB0000000000000000000000000000000007A -S31540027EC0000000000000000000000000000000006A -S31540027ED0000000000000000000000000000000005A -S31540027EE0000000000000000000000000000000004A -S31540027EF0000000000000000000000000000000003A -S31540027F000000000000000000000000000000000029 -S31540027F100000000000000000000000000000000019 -S31540027F200000000000000000000000000000000009 -S31540027F3000000000000000000000000000000000F9 -S31540027F4000000000000000000000000000000000E9 -S31540027F5000000000000000000000000000000000D9 -S31540027F6000000000000000000000000000000000C9 -S31540027F7000000000000000000000000000000000B9 -S31540027F8000000000000000000000000000000000A9 -S31540027F900000000000000000000000000000000099 -S31540027FA00000000000000000000000000000000089 -S31540027FB00000000000000000000000000000000079 -S31540027FC00000000000000000000000000000000069 -S31540027FD00000000000000000000000000000000059 -S31540027FE00000000000000000000000000000000049 -S31540027FF00000000000000000000000000000000039 -S315400280000000003F0000000C0000003F000000128C -S31540028010000000FF00000018000000000000000001 -S315400280200000000000000000000000000000000008 -S3154002803000000000000000000000000000000000F8 -S3154002804000000000000000000000000000000000E8 -S3154002805000000000000000000000000000000000D8 -S3154002806000000000000000000000000000000000C8 -S3154002807000000000000000000000000000000000B8 -S3154002808000000000000000000000000000000000A8 -S315400280900000000000000000000000000000000098 -S315400280A00000000000000000000000000000000088 -S315400280B00000000000000000000000000000000078 -S315400280C00000000000000000000000000000000068 -S315400280D00000000000000000000000000000000058 -S315400280E00000000000000000000000000000000048 -S315400280F00000000000000000000000000000000038 -S315400281000000000000000000000000000000000027 -S315400281100000000000000000000000000000000017 -S315400281200000000000000000000000000000000007 -S3154002813000000000000000000000000000000000F7 -S3154002814000000000000000000000000000000000E7 -S3154002815000000000000000000000000000000000D7 -S3154002816000000000000000000000000000000000C7 -S3154002817000000000000000000000000000000000B7 -S3154002818000000000000000000000000000000000A7 -S315400281900000000000000000000000000000000097 -S315400281A00000000000000000000000000000000087 -S315400281B00000000000000000000000000000000077 -S315400281C00000000000000000000000000000000067 -S315400281D00000000000000000000000000000000057 -S315400281E00000000000000000000000000000000047 -S315400281F00000000000000000000000000000000037 -S315400282000000000000000000000000000000000026 -S315400282100000000000000000000000000000000016 -S315400282200000000000000000000000000000000006 -S3154002823000000000000000000000000000000000F6 -S3154002824000000000000000000000000000000000E6 -S3154002825000000000000000000000000000000000D6 -S3154002826000000000000000000000000000000000C6 -S3154002827000000000000000000000000000000000B6 -S3154002828000000000000000000000000000000000A6 -S315400282900000000000000000000000000000000096 -S315400282A00000000000000000000000000000000086 -S315400282B00000000000000000000000000000000076 -S315400282C00000000000000000000000000000000066 -S315400282D00000000000000000000000000000000056 -S315400282E00000000000000000000000000000000046 -S315400282F00000000000000000000000000000000036 -S315400283000000000000000000000000000000000025 -S315400283100000000000000000000000000000000015 -S315400283200000000000000000000000000000000005 -S3154002833000000000000000000000000000000000F5 -S3154002834000000000000000000000000000000000E5 -S3154002835000000000000000000000000000000000D5 -S3154002836000000000000000000000000000000000C5 -S3154002837000000000000000000000000000000000B5 -S3154002838000000000000000000000000000000000A5 -S315400283900000000000000000000000000000000095 -S315400283A00000000000000000000000000000000085 -S315400283B00000000000000000000000000000000075 -S315400283C00000000000000000000000000000000065 -S315400283D00000000000000000000000000000000055 -S315400283E00000000000000000000000000000000045 -S315400283F00000000000000000000000000000000035 -S315400284000000000000000000000000000000000024 -S315400284100000000000000000000000000000000014 -S315400284200000000000000000000000000000000004 -S3154002843000000000000000000000000000000000F4 -S3154002844000000000000000000000000000000000E4 -S3154002845000000000000000000000000000000000D4 -S3154002846000000000000000000000000000000000C4 -S3154002847000000000000000000000000000000000B4 -S3154002848000000000000000000000000000000000A4 -S315400284900000000000000000000000000000000094 -S315400284A00000000000000000000000000000000084 -S315400284B00000000000000000000000000000000074 -S315400284C00000000000000000000000000000000064 -S315400284D00000000000000000000000000000000054 -S315400284E00000000000000000000000000000000044 -S315400284F00000000000000000000000000000000034 -S315400285000000000000000000000000000000000023 -S315400285100000000000000000000000000000000013 -S315400285200000000000000000000000000000000003 -S3154002853000000000000000000000000000000000F3 -S3154002854000000000000000000000000000000000E3 -S3154002855000000000000000000000000000000000D3 -S3154002856000000000000000000000000000000000C3 -S3154002857000000000000000000000000000000000B3 -S3154002858000000000000000000000000000000000A3 -S315400285900000000000000000000000000000000093 -S315400285A00000000000000000000000000000000083 -S315400285B00000000000000000000000000000000073 -S315400285C00000000000000000000000000000000063 -S315400285D00000000000000000000000000000000053 -S315400285E00000000000000000000000000000000043 -S315400285F00000000000000000000000000000000033 -S315400286000000000000000000000000000000000022 -S315400286100000000000000000000000000000000012 -S315400286200000000000000000000000000000000002 -S3154002863000000000000000000000000000000000F2 -S3154002864000000000000000000000000000000000E2 -S3154002865000000000000000000000000000000000D2 -S3154002866000000000000000000000000000000000C2 -S3154002867000000000000000000000000000000000B2 -S3154002868000000000000000000000000000000000A2 -S315400286900000000000000000000000000000000092 -S315400286A00000000000000000000000000000000082 -S315400286B00000000000000000000000000000000072 -S315400286C00000000000000000000000000000000062 -S315400286D00000000000000000000000000000000052 -S315400286E00000000000000000000000000000000042 -S315400286F00000000000000000000000000000000032 -S315400287000000000000000000000000000000000021 -S315400287100000000000000000000000000000000011 -S315400287200000000000000000000000000000000001 -S3154002873000000000000000000000000000000000F1 -S3154002874000000000000000000000000000000000E1 -S3154002875000000000000000000000000000000000D1 -S3154002876000000000000000000000000000000000C1 -S3154002877000000000000000000000000000000000B1 -S3154002878000000000000000000000000000000000A1 -S315400287900000000000000000000000000000000091 -S315400287A00000000000000000000000000000000081 -S315400287B00000000000000000000000000000000071 -S315400287C00000000000000000000000000000000061 -S315400287D00000000000000000000000000000000051 -S315400287E00000000000000000000000000000000041 -S315400287F00000000000000000000000000000000031 -S315400288000000000000000000000000000000000020 -S315400288100000000000000000000000000000000010 -S315400288200000000000000000000000000000000000 -S3154002883000000000000000000000000000000000F0 -S3154002884000000000000000000000000000000000E0 -S3154002885000000000000000000000000000000000D0 -S3154002886000000000000000000000000000000000C0 -S3154002887000000000000000000000000000000000B0 -S3154002888000000000000000000000000000000000A0 -S315400288900000000000000000000000000000000090 -S315400288A00000000000000000000000000000000080 -S315400288B00000000000000000000000000000000070 -S315400288C00000000000000000000000000000000060 -S315400288D00000000000000000000000000000000050 -S315400288E00000000000000000000000000000000040 -S315400288F00000000000000000000000000000000030 -S31540028900000000000000000000000000000000001F -S31540028910000000000000000000000000000000000F -S3154002892000000000000000000000000000000000FF -S3154002893000000000000000000000000000000000EF -S3154002894000000000000000000000000000000000DF -S3154002895000000000000000000000000000000000CF -S3154002896000000000000000000000000000000000BF -S3154002897000000000000000000000000000000000AF -S31540028980000000000000000000000000000000009F -S31540028990000000000000000000000000000000008F -S315400289A0000000000000000000000000000000007F -S315400289B0000000000000000000000000000000006F -S315400289C0000000000000000000000000000000005F -S315400289D0000000000000000000000000000000004F -S315400289E0000000000000000000000000000000003F -S315400289F0000000000000000000000000000000002F -S31540028A00000000000000000000000000000000001E -S31540028A10000000000000000000000000000000000E -S31540028A2000000000000000000000000000000000FE -S31540028A3000000000000000000000000000000000EE -S31540028A4000000000000000000000000000000000DE -S31540028A5000000000000000000000000000000000CE -S31540028A6000000000000000000000000000000000BE -S31540028A7000000000000000000000000000000000AE -S31540028A80000000000000000000000000000000009E -S31540028A90000000000000000000000000000000008E -S31540028AA0000000000000000000000000000000007E -S31540028AB0000000000000000000000000000000006E -S31540028AC0000000000000000000000000000000005E -S31540028AD0000000000000000000000000000000004E -S31540028AE0000000000000000000000000000000003E -S31540028AF0000000000000000000000000000000002E -S31540028B00000000000000000000000000000000001D -S31540028B10000000000000000000000000000000000D -S31540028B2000000000000000000000000000000000FD -S31540028B3000000000000000000000000000000000ED -S31540028B4000000000000000000000000000000000DD -S31540028B5000000000000000000000000000000000CD -S31540028B6000000000000000000000000000000000BD -S31540028B7000000000000000000000000000000000AD -S31540028B80000000000000000000000000000000009D -S31540028B90000000000000000000000000000000008D -S31540028BA0000000000000000000000000000000007D -S31540028BB0000000000000000000000000000000006D -S31540028BC0000000000000000000000000000000005D -S31540028BD0000000000000000000000000000000004D -S31540028BE0000000000000000000000000000000003D -S31540028BF0000000000000000000000000000000002D -S31540028C00000000000000000000000000000000001C -S31540028C10000000000000000000000000000000000C -S31540028C2000000000000000000000000000000000FC -S31540028C3000000000000000000000000000000000EC -S31540028C4000000000000000000000000000000000DC -S31540028C5000000000000000000000000000000000CC -S31540028C6000000000000000000000000000000000BC -S31540028C7000000000000000000000000000000000AC -S31540028C80000000000000000000000000000000009C -S31540028C90000000000000000000000000000000008C -S31540028CA0000000000000000000000000000000007C -S31540028CB0000000000000000000000000000000006C -S31540028CC0000000000000000000000000000000005C -S31540028CD0000000000000000000000000000000004C -S31540028CE0000000000000000000000000000000003C -S31540028CF0000000000000000000000000000000002C -S31540028D00000000000000000000000000000000001B -S31540028D10000000000000000000000000000000000B -S31540028D2000000000000000000000000000000000FB -S31540028D3000000000000000000000000000000000EB -S31540028D4000000000000000000000000000000000DB -S31540028D5000000000000000000000000000000000CB -S31540028D6000000000000000000000000000000000BB -S31540028D7000000000000000000000000000000000AB -S31540028D80000000000000000000000000000000009B -S31540028D90000000000000000000000000000000008B -S31540028DA0000000000000000000000000000000007B -S31540028DB0000000000000000000000000000000006B -S31540028DC0000000000000000000000000000000005B -S31540028DD0000000000000000000000000000000004B -S31540028DE0000000000000000000000000000000003B -S31540028DF0000000000000000000000000000000002B -S31540028E00000000000000000000000000000000001A -S31540028E10000000000000000000000000000000000A -S31540028E2000000000000000000000000000000000FA -S31540028E3000000000000000000000000000000000EA -S31540028E4000000000000000000000000000000000DA -S31540028E5000000000000000000000000000000000CA -S31540028E6000000000000000000000000000000000BA -S31540028E7000000000000000000000000000000000AA -S31540028E80000000000000000000000000000000009A -S31540028E90000000000000000000000000000000008A -S31540028EA0000000000000000000000000000000007A -S31540028EB0000000000000000000000000000000006A -S31540028EC0000000000000000000000000000000005A -S31540028ED0000000000000000000000000000000004A -S31540028EE0000000000000000000000000000000003A -S31540028EF0000000000000000000000000000000002A -S31540028F000000000000000000000000000000000019 -S31540028F100000000000000000000000000000000009 -S31540028F2000000000000000000000000000000000F9 -S31540028F3000000000000000000000000000000000E9 -S31540028F4000000000000000000000000000000000D9 -S31540028F5000000000000000000000000000000000C9 -S31540028F6000000000000000000000000000000000B9 -S31540028F7000000000000000000000000000000000A9 -S31540028F800000000000000000000000000000000099 -S31540028F900000000000000000000000000000000089 -S31540028FA00000000000000000000000000000000079 -S31540028FB00000000000000000000000000000000069 -S31540028FC00000000000000000000000000000000059 -S31540028FD00000000000000000000000000000000049 -S31540028FE00000000000000000000000000000000039 -S31540028FF00000000000000000000000000000000029 -S315400290000000000000000000000000000000000018 -S315400290100000000000000000000000000000000008 -S3154002902000000000000000000000000000000000F8 -S3154002903000000000000000000000000000000000E8 -S3154002904000000000000000000000000000000000D8 -S3154002905000000000000000000000000000000000C8 -S3154002906000000000000000000000000000000000B8 -S3154002907000000000000000000000000000000000A8 -S315400290800000000000000000000000000000000098 -S315400290900000000000000000000000000000000088 -S315400290A00000000000000000000000000000000078 -S315400290B00000000000000000000000000000000068 -S315400290C00000000000000000000000000000000058 -S315400290D00000000000000000000000000000000048 -S315400290E00000000000000000000000000000000038 -S315400290F00000000000000000000000000000000028 -S315400291000000000000000000000000000000000017 -S315400291100000000000000000000000000000000007 -S3154002912000000000000000000000000000000000F7 -S3154002913000000000000000000000000000000000E7 -S3154002914000000000000000000000000000000000D7 -S3154002915000000000000000000000000000000000C7 -S3154002916000000000000000000000000000000000B7 -S3154002917000000000000000000000000000000000A7 -S315400291800000000000000000000000000000000097 -S315400291900000000000000000000000000000000087 -S315400291A00000000000000000000000000000000077 -S315400291B00000000000000000000000000000000067 -S315400291C00000000000000000000000000000000057 -S315400291D00000000000000000000000000000000047 -S315400291E00000000000000000000000000000000037 -S315400291F00000000000000000000000000000000027 -S315400292000000000000000000000000000000000016 -S315400292100000000000000000000000000000000006 -S3154002922000000000000000000000000000000000F6 -S3154002923000000000000000000000000000000000E6 -S3154002924000000000000000000000000000000000D6 -S3154002925000000000000000000000000000000000C6 -S3154002926000000000000000000000000000000000B6 -S3154002927000000000000000000000000000000000A6 -S315400292800000000000000000000000000000000096 -S315400292900000000000000000000000000000000086 -S315400292A00000000000000000000000000000000076 -S315400292B00000000000000000000000000000000066 -S315400292C00000000000000000000000000000000056 -S315400292D00000000000000000000000000000000046 -S315400292E00000000000000000000000000000000036 -S315400292F00000000000000000000000000000000026 -S315400293000000000000000000000000000000000015 -S315400293100000000000000000000000000000000005 -S3154002932000000000000000000000000000000000F5 -S3154002933000000000000000000000000000000000E5 -S3154002934000000000000000000000000000000000D5 -S3154002935000000000000000000000000000000000C5 -S3154002936000000000000000000000000000000000B5 -S3154002937000000000000000000000000000000000A5 -S315400293800000000000000000000000000000000095 -S315400293900000000000000000000000000000000085 -S315400293A00000000000000000000000000000000075 -S315400293B00000000000000000000000000000000065 -S315400293C00000000000000000000000000000000055 -S315400293D00000000000000000000000000000000045 -S315400293E00000000000000000000000000000000035 -S315400293F00000000000000000000000000000000025 -S315400294000000000000000000000000000000000014 -S315400294100000000000000000000000000000000004 -S3154002942000000000000000000000000000000000F4 -S3154002943000000000000000000000000000000000E4 -S3154002944000000000000000000000000000000000D4 -S3154002945000000000000000000000000000000000C4 -S3154002946000000000000000000000000000000000B4 -S3154002947000000000000000000000000000000000A4 -S315400294800000000000000000000000000000000094 -S315400294900000000000000000000000000000000084 -S315400294A00000000000000000000000000000000074 -S315400294B00000000000000000000000000000000064 -S315400294C00000000000000000000000000000000054 -S315400294D00000000000000000000000000000000044 -S315400294E00000000000000000000000000000000034 -S315400294F00000000000000000000000000000000024 -S315400295000000000000000000000000000000000013 -S315400295100000000000000000000000000000000003 -S3154002952000000000000000000000000000000000F3 -S3154002953000000000000000000000000000000000E3 -S3154002954000000000000000000000000000000000D3 -S3154002955000000000000000000000000000000000C3 -S3154002956000000000000000000000000000000000B3 -S3154002957000000000000000000000000000000000A3 -S315400295800000000000000000000000000000000093 -S315400295900000000000000000000000000000000083 -S315400295A00000000000000000000000000000000073 -S315400295B00000000000000000000000000000000063 -S315400295C00000000000000000000000000000000053 -S315400295D00000000000000000000000000000000043 -S315400295E00000000000000000000000000000000033 -S315400295F00000000000000000000000000000000023 -S315400296000000000000000000000000000000000012 -S315400296100000000000000000000000000000000002 -S3154002962000000000000000000000000000000000F2 -S3154002963000000000000000000000000000000000E2 -S3154002964000000000000000000000000000000000D2 -S3154002965000000000000000000000000000000000C2 -S3154002966000000000000000000000000000000000B2 -S3154002967000000000000000000000000000000000A2 -S315400296800000000000000000000000000000000092 -S315400296900000000000000000000000000000000082 -S315400296A00000000000000000000000000000000072 -S315400296B00000000000000000000000000000000062 -S315400296C00000000000000000000000000000000052 -S315400296D00000000000000000000000000000000042 -S315400296E00000000000000000000000000000000032 -S315400296F00000000000000000000000000000000022 -S315400297000000000000000000000000000000000011 -S315400297100000000000000000000000000000000001 -S3154002972000000000000000000000000000000000F1 -S3154002973000000000000000000000000000000000E1 -S3154002974000000000000000000000000000000000D1 -S3154002975000000000000000000000000000000000C1 -S3154002976000000000000000000000000000000000B1 -S3154002977000000000000000000000000000000000A1 -S315400297800000000000000000000000000000000091 -S315400297900000000000000000000000000000000081 -S315400297A00000000000000000000000000000000071 -S315400297B00000000000000000000000000000000061 -S315400297C00000000000000000000000000000000051 -S315400297D00000000000000000000000000000000041 -S315400297E00000000000000000000000000000000031 -S315400297F00000000000000000000000000000000021 -S315400298000000000000000000000000000000000010 -S315400298100000000000000000000000000000000000 -S3154002982000000000000000000000000000000000F0 -S3154002983000000000000000000000000000000000E0 -S3154002984000000000000000000000000000000000D0 -S3154002985000000000000000000000000000000000C0 -S3154002986000000000000000000000000000000000B0 -S3154002987000000000000000000000000000000000A0 -S315400298800000000000000000000000000000000090 -S315400298900000000000000000000000000000000080 -S315400298A00000000000000000000000000000000070 -S315400298B00000000000000000000000000000000060 -S315400298C00000000000000000000000000000000050 -S315400298D00000000000000000000000000000000040 -S315400298E00000000000000000000000000000000030 -S315400298F00000000000000000000000000000000020 -S31540029900000000000000000000000000000000000F -S3154002991000000000000000000000000000000000FF -S3154002992000000000000000000000000000000000EF -S3154002993000000000000000000000000000000000DF -S3154002994000000000000000000000000000000000CF -S3154002995000000000000000000000000000000000BF -S3154002996000000000000000000000000000000000AF -S31540029970000000000000000000000000000000009F -S31540029980000000000000000000000000000000008F -S31540029990000000000000000000000000000000007F -S315400299A0000000000000000000000000000000006F -S315400299B0000000000000000000000000000000005F -S315400299C0000000000000000000000000000000004F -S315400299D0000000000000000000000000000000003F -S315400299E0000000000000000000000000000000002F -S315400299F0000000000000000000000000000000001F -S31540029A00000000000000000000000000000000000E -S31540029A1000000000000000000000000000000000FE -S31540029A2000000000000000000000000000000000EE -S31540029A3000000000000000000000000000000000DE -S31540029A4000000000000000000000000000000000CE -S31540029A5000000000000000000000000000000000BE -S31540029A6000000000000000000000000000000000AE -S31540029A70000000000000000000000000000000009E -S31540029A80000000000000000000000000000000008E -S31540029A90000000000000000000000000000000007E -S31540029AA0000000000000000000000000000000006E -S31540029AB0000000000000000000000000000000005E -S31540029AC0000000000000000000000000000000004E -S31540029AD0000000000000000000000000000000003E -S31540029AE0000000000000000000000000000000002E -S31540029AF0000000000000000000000000000000001E -S31540029B00000000000000000000000000000000000D -S31540029B1000000000000000000000000000000000FD -S31540029B2000000000000000000000000000000000ED -S31540029B3000000000000000000000000000000000DD -S31540029B4000000000000000000000000000000000CD -S31540029B5000000000000000000000000000000000BD -S31540029B6000000000000000000000000000000000AD -S31540029B70000000000000000000000000000000009D -S31540029B80000000000000000000000000000000008D -S31540029B90000000000000000000000000000000007D -S31540029BA0000000000000000000000000000000006D -S31540029BB0000000000000000000000000000000005D -S31540029BC0000000000000000000000000000000004D -S31540029BD0000000000000000000000000000000003D -S31540029BE0000000000000000000000000000000002D -S31540029BF0000000000000000000000000000000001D -S31540029C00000000000000000000000000000000000C -S31540029C1000000000000000000000000000000000FC -S31540029C2000000000000000000000000000000000EC -S31540029C3000000000000000000000000000000000DC -S31540029C4000000000000000000000000000000000CC -S31540029C5000000000000000000000000000000000BC -S31540029C6000000000000000000000000000000000AC -S31540029C70000000000000000000000000000000009C -S31540029C80000000000000000000000000000000008C -S31540029C90000000000000000000000000000000007C -S31540029CA0000000000000000000000000000000006C -S31540029CB0000000000000000000000000000000005C -S31540029CC0000000000000000000000000000000004C -S31540029CD0000000000000000000000000000000003C -S31540029CE0000000000000000000000000000000002C -S31540029CF0000000000000000000000000000000001C -S31540029D00000000000000000000000000000000000B -S31540029D1000000000000000000000000000000000FB -S31540029D2000000000000000000000000000000000EB -S31540029D3000000000000000000000000000000000DB -S31540029D4000000000000000000000000000000000CB -S31540029D5000000000000000000000000000000000BB -S31540029D6000000000000000000000000000000000AB -S31540029D70000000000000000000000000000000009B -S31540029D80000000000000000000000000000000008B -S31540029D90000000000000000000000000000000007B -S31540029DA0000000000000000000000000000000006B -S31540029DB0000000000000000000000000000000005B -S31540029DC0000000000000000000000000000000004B -S31540029DD0000000000000000000000000000000003B -S31540029DE0000000000000000000000000000000002B -S31540029DF0000000000000000000000000000000001B -S31540029E00000000000000000000000000000000000A -S31540029E1000000000000000000000000000000000FA -S31540029E2000000000000000000000000000000000EA -S31540029E3000000000000000000000000000000000DA -S31540029E4000000000000000000000000000000000CA -S31540029E5000000000000000000000000000000000BA -S31540029E6000000000000000000000000000000000AA -S31540029E70000000000000000000000000000000009A -S31540029E80000000000000000000000000000000008A -S31540029E90000000000000000000000000000000007A -S31540029EA0000000000000000000000000000000006A -S31540029EB0000000000000000000000000000000005A -S31540029EC0000000000000000000000000000000004A -S31540029ED0000000000000000000000000000000003A -S31540029EE0000000000000000000000000000000002A -S31540029EF0000000000000000000000000000000001A -S31540029F000000000000000000000000000000000009 -S31540029F1000000000000000000000000000000000F9 -S31540029F2000000000000000000000000000000000E9 -S31540029F3000000000000000000000000000000000D9 -S31540029F4000000000000000000000000000000000C9 -S31540029F5000000000000000000000000000000000B9 -S31540029F6000000000000000000000000000000000A9 -S31540029F700000000000000000000000000000000099 -S31540029F800000000000000000000000000000000089 -S31540029F900000000000000000000000000000000079 -S31540029FA00000000000000000000000000000000069 -S31540029FB00000000000000000000000000000000059 -S31540029FC00000000000000000000000000000000049 -S31540029FD00000000000000000000000000000000039 -S31540029FE00000000000000000000000000000000029 -S31540029FF00000000000000000000000000000000019 -S3154002A0000000000000000000000000000000000008 -S3154002A01000000000000000000000000000000000F8 -S3154002A02000000000000000000000000000000000E8 -S3154002A03000000000000000000000000000000000D8 -S3154002A04000000000000000000000000000000000C8 -S3154002A05000000000000000000000000000000000B8 -S3154002A06000000000000000000000000000000000A8 -S3154002A0700000000000000000000000000000000098 -S3154002A0800000000000000000000000000000000088 -S3154002A0900000000000000000000000000000000078 -S3154002A0A00000000000000000000000000000000068 -S3154002A0B00000000000000000000000000000000058 -S3154002A0C00000000000000000000000000000000048 -S3154002A0D00000000000000000000000000000000038 -S3154002A0E00000000000000000000000000000000028 -S3154002A0F00000000000000000000000000000000018 -S3154002A1000000000000000000000000000000000007 -S3154002A11000000000000000000000000000000000F7 -S3154002A12000000000000000000000000000000000E7 -S3154002A13000000000000000000000000000000000D7 -S3154002A14000000000000000000000000000000000C7 -S3154002A15000000000000000000000000000000000B7 -S3154002A16000000000000000000000000000000000A7 -S3154002A1700000000000000000000000000000000097 -S3154002A1800000000000000000000000000000000087 -S3154002A1900000000000000000000000000000000077 -S3154002A1A00000000000000000000000000000000067 -S3154002A1B00000000000000000000000000000000057 -S3154002A1C00000000000000000000000000000000047 -S3154002A1D00000000000000000000000000000000037 -S3154002A1E00000000000000000000000000000000027 -S3154002A1F00000000000000000000000000000000017 -S3154002A2000000000000000000000000000000000006 -S3154002A21000000000000000000000000000000000F6 -S3154002A22000000000000000000000000000000000E6 -S3154002A23000000000000000000000000000000000D6 -S3154002A24000000000000000000000000000000000C6 -S3154002A25000000000000000000000000000000000B6 -S3154002A26000000000000000000000000000000000A6 -S3154002A2700000000000000000000000000000000096 -S3154002A2800000000000000000000000000000000086 -S3154002A2900000000000000000000000000000000076 -S3154002A2A00000000000000000000000000000000066 -S3154002A2B00000000000000000000000000000000056 -S3154002A2C00000000000000000000000000000000046 -S3154002A2D00000000000000000000000000000000036 -S3154002A2E00000000000000000000000000000000026 -S3154002A2F00000000000000000000000000000000016 -S3154002A3000000000000000000000000000000000005 -S3154002A31000000000000000000000000000000000F5 -S3154002A32000000000000000000000000000000000E5 -S3154002A33000000000000000000000000000000000D5 -S3154002A34000000000000000000000000000000000C5 -S3154002A35000000000000000000000000000000000B5 -S3154002A36000000000000000000000000000000000A5 -S3154002A3700000000000000000000000000000000095 -S3154002A3800000000000000000000000000000000085 -S3154002A3900000000000000000000000000000000075 -S3154002A3A00000000000000000000000000000000065 -S3154002A3B00000000000000000000000000000000055 -S3154002A3C00000000000000000000000000000000045 -S3154002A3D00000000000000000000000000000000035 -S3154002A3E00000000000000000000000000000000025 -S3154002A3F00000000000000000000000000000000015 -S3154002A4000000000000000000000000000000000004 -S3154002A41000000000000000000000000000000000F4 -S3154002A42000000000000000000000000000000000E4 -S3154002A43000000000000000000000000000000000D4 -S3154002A44000000000000000000000000000000000C4 -S3154002A45000000000000000000000000000000000B4 -S3154002A46000000000000000000000000000000000A4 -S3154002A4700000000000000000000000000000000094 -S3154002A4800000000000000000000000000000000084 -S3154002A4900000000000000000000000000000000074 -S3154002A4A00000000000000000000000000000000064 -S3154002A4B00000000000000000000000000000000054 -S3154002A4C00000000000000000000000000000000044 -S3154002A4D00000000000000000000000000000000034 -S3154002A4E00000000000000000000000000000000024 -S3154002A4F00000000000000000000000000000000014 -S3154002A5000000000000000000000000000000000003 -S3154002A51000000000000000000000000000000000F3 -S3154002A52000000000000000000000000000000000E3 -S3154002A53000000000000000000000000000000000D3 -S3154002A54000000000000000000000000000000000C3 -S3154002A55000000000000000000000000000000000B3 -S3154002A56000000000000000000000000000000000A3 -S3154002A5700000000000000000000000000000000093 -S3154002A5800000000000000000000000000000000083 -S3154002A5900000000000000000000000000000000073 -S3154002A5A00000000000000000000000000000000063 -S3154002A5B00000000000000000000000000000000053 -S3154002A5C00000000000000000000000000000000043 -S3154002A5D00000000000000000000000000000000033 -S3154002A5E00000000000000000000000000000000023 -S3154002A5F00000000000000000000000000000000013 -S3154002A6000000000000000000000000000000000002 -S3154002A61000000000000000000000000000000000F2 -S3154002A62000000000000000000000000000000000E2 -S3154002A63000000000000000000000000000000000D2 -S3154002A64000000000000000000000000000000000C2 -S3154002A65000000000000000000000000000000000B2 -S3154002A66000000000000000000000000000000000A2 -S3154002A6700000000000000000000000000000000092 -S3154002A6800000000000000000000000000000000082 -S3154002A6900000000000000000000000000000000072 -S3154002A6A00000000000000000000000000000000062 -S3154002A6B00000000000000000000000000000000052 -S3154002A6C00000000000000000000000000000000042 -S3154002A6D00000000000000000000000000000000032 -S3154002A6E00000000000000000000000000000000022 -S3154002A6F00000000000000000000000000000000012 -S3154002A7000000000000000000000000000000000001 -S3154002A71000000000000000000000000000000000F1 -S3154002A72000000000000000000000000000000000E1 -S3154002A73000000000000000000000000000000000D1 -S3154002A74000000000000000000000000000000000C1 -S3154002A75000000000000000000000000000000000B1 -S3154002A76000000000000000000000000000000000A1 -S3154002A7700000000000000000000000000000000091 -S3154002A7800000000000000000000000000000000081 -S3154002A7900000000000000000000000000000000071 -S3154002A7A00000000000000000000000000000000061 -S3154002A7B00000000000000000000000000000000051 -S3154002A7C00000000000000000000000000000000041 -S3154002A7D00000000000000000000000000000000031 -S3154002A7E00000000000000000000000000000000021 -S3154002A7F00000000000000000000000000000000011 -S3154002A8000000000000000000000000000000000000 -S3154002A81000000000000000000000000000000000F0 -S3154002A82000000000000000000000000000000000E0 -S3154002A83000000000000000000000000000000000D0 -S3154002A84000000000000000000000000000000000C0 -S3154002A85000000000000000000000000000000000B0 -S3154002A86000000000000000000000000000000000A0 -S3154002A8700000000000000000000000000000000090 -S3154002A8800000000000000000000000000000000080 -S3154002A8900000000000000000000000000000000070 -S3154002A8A00000000000000000000000000000000060 -S3154002A8B00000000000000000000000000000000050 -S3154002A8C00000000000000000000000000000000040 -S3154002A8D00000000000000000000000000000000030 -S3154002A8E00000000000000000000000000000000020 -S3154002A8F00000000000000000000000000000000010 -S3154002A90000000000000000000000000000000000FF -S3154002A91000000000000000000000000000000000EF -S3154002A92000000000000000000000000000000000DF -S3154002A93000000000000000000000000000000000CF -S3154002A94000000000000000000000000000000000BF -S3154002A95000000000000000000000000000000000AF -S3154002A960000000000000000000000000000000009F -S3154002A970000000000000000000000000000000008F -S3154002A980000000000000000000000000000000007F -S3154002A990000000000000000000000000000000006F -S3154002A9A0000000000000000000000000000000005F -S3154002A9B0000000000000000000000000000000004F -S3154002A9C0000000000000000000000000000000003F -S3154002A9D0000000000000000000000000000000002F -S3154002A9E0000000000000000000000000000000001F -S3154002A9F0000000000000000000000000000000000F -S3154002AA0000000000000000000000000000000000FE -S3154002AA1000000000000000000000000000000000EE -S3154002AA2000000000000000000000000000000000DE -S3154002AA3000000000000000000000000000000000CE -S3154002AA4000000000000000000000000000000000BE -S3154002AA5000000000000000000000000000000000AE -S3154002AA60000000000000000000000000000000009E -S3154002AA70000000000000000000000000000000008E -S3154002AA80000000000000000000000000000000007E -S3154002AA90000000000000000000000000000000006E -S3154002AAA0000000000000000000000000000000005E -S3154002AAB0000000000000000000000000000000004E -S3154002AAC0000000000000000000000000000000003E -S3154002AAD0000000000000000000000000000000002E -S3154002AAE0000000000000000000000000000000001E -S3154002AAF0000000000000000000000000000000000E -S3154002AB0000000000000000000000000000000000FD -S3154002AB1000000000000000000000000000000000ED -S3154002AB2000000000000000000000000000000000DD -S3154002AB3000000000000000000000000000000000CD -S3154002AB4000000000000000000000000000000000BD -S3154002AB5000000000000000000000000000000000AD -S3154002AB60000000000000000000000000000000009D -S3154002AB70000000000000000000000000000000008D -S3154002AB80000000000000000000000000000000007D -S3154002AB90000000000000000000000000000000006D -S3154002ABA0000000000000000000000000000000005D -S3154002ABB0000000000000000000000000000000004D -S3154002ABC0000000000000000000000000000000003D -S3154002ABD0000000000000000000000000000000002D -S3154002ABE0000000000000000000000000000000001D -S3154002ABF0000000000000000000000000000000000D -S3154002AC0000000000000000000000000000000000FC -S3154002AC1000000000000000000000000000000000EC -S3154002AC2000000000000000000000000000000000DC -S3154002AC3000000000000000000000000000000000CC -S3154002AC4000000000000000000000000000000000BC -S3154002AC5000000000000000000000000000000000AC -S3154002AC60000000000000000000000000000000009C -S3154002AC70000000000000000000000000000000008C -S3154002AC80000000000000000000000000000000007C -S3154002AC90000000000000000000000000000000006C -S3154002ACA0000000000000000000000000000000005C -S3154002ACB0000000000000000000000000000000004C -S3154002ACC0000000000000000000000000000000003C -S3154002ACD0000000000000000000000000000000002C -S3154002ACE0000000000000000000000000000000001C -S3154002ACF0000000000000000000000000000000000C -S3154002AD0000000000000000000000000000000000FB -S3154002AD1000000000000000000000000000000000EB -S3154002AD2000000000000000000000000000000000DB -S3154002AD3000000000000000000000000000000000CB -S3154002AD4000000000000000000000000000000000BB -S3154002AD5000000000000000000000000000000000AB -S3154002AD60000000000000000000000000000000009B -S3154002AD70000000000000000000000000000000008B -S3154002AD80000000000000000000000000000000007B -S3154002AD90000000000000000000000000000000006B -S3154002ADA0000000000000000000000000000000005B -S3154002ADB0000000000000000000000000000000004B -S3154002ADC0000000000000000000000000000000003B -S3154002ADD0000000000000000000000000000000002B -S3154002ADE0000000000000000000000000000000001B -S3154002ADF0000000000000000000000000000000000B -S3154002AE0000000000000000000000000000000000FA -S3154002AE1000000000000000000000000000000000EA -S3154002AE2000000000000000000000000000000000DA -S3154002AE3000000000000000000000000000000000CA -S3154002AE4000000000000000000000000000000000BA -S3154002AE5000000000000000000000000000000000AA -S3154002AE60000000000000000000000000000000009A -S3154002AE70000000000000000000000000000000008A -S3154002AE80000000000000000000000000000000007A -S3154002AE90000000000000000000000000000000006A -S3154002AEA0000000000000000000000000000000005A -S3154002AEB0000000000000000000000000000000004A -S3154002AEC0000000000000000000000000000000003A -S3154002AED0000000000000000000000000000000002A -S3154002AEE0000000000000000000000000000000001A -S3154002AEF0000000000000000000000000000000000A -S3154002AF0000000000000000000000000000000000F9 -S3154002AF1000000000000000000000000000000000E9 -S3154002AF2000000000000000000000000000000000D9 -S3154002AF3000000000000000000000000000000000C9 -S3154002AF4000000000000000000000000000000000B9 -S3154002AF5000000000000000000000000000000000A9 -S3154002AF600000000000000000000000000000000099 -S3154002AF700000000000000000000000000000000089 -S3154002AF800000000000000000000000000000000079 -S3154002AF900000000000000000000000000000000069 -S3154002AFA00000000000000000000000000000000059 -S3154002AFB00000000000000000000000000000000049 -S3154002AFC00000000000000000000000000000000039 -S3154002AFD00000000000000000000000000000000029 -S3154002AFE00000000000000000000000000000000019 -S3154002AFF00000000000000000000000000000000009 -S3154002B00000000000000000000000000000000000F8 -S3154002B01000000000000000000000000000000000E8 -S3154002B02000000000000000000000000000000000D8 -S3154002B03000000000000000000000000000000000C8 -S3154002B04000000000000000000000000000000000B8 -S3154002B05000000000000000000000000000000000A8 -S3154002B0600000000000000000000000000000000098 -S3154002B0700000000000000000000000000000000088 -S3154002B0800000000000000000000000000000000078 -S3154002B0900000000000000000000000000000000068 -S3154002B0A00000000000000000000000000000000058 -S3154002B0B00000000000000000000000000000000048 -S3154002B0C00000000000000000000000000000000038 -S3154002B0D00000000000000000000000000000000028 -S3154002B0E00000000000000000000000000000000018 -S3154002B0F00000000000000000000000000000000008 -S3154002B10000000000000000000000000000000000F7 -S3154002B11000000000000000000000000000000000E7 -S3154002B12000000000000000000000000000000000D7 -S3154002B13000000000000000000000000000000000C7 -S3154002B14000000000000000000000000000000000B7 -S3154002B15000000000000000000000000000000000A7 -S3154002B1600000000000000000000000000000000097 -S3154002B1700000000000000000000000000000000087 -S3154002B1800000000000000000000000000000000077 -S3154002B1900000000000000000000000000000000067 -S3154002B1A00000000000000000000000000000000057 -S3154002B1B00000000000000000000000000000000047 -S3154002B1C00000000000000000000000000000000037 -S3154002B1D00000000000000000000000000000000027 -S3154002B1E00000000000000000000000000000000017 -S3154002B1F00000000000000000000000000000000007 -S3154002B20000000000000000000000000000000000F6 -S3154002B21000000000000000000000000000000000E6 -S3154002B22000000000000000000000000000000000D6 -S3154002B23000000000000000000000000000000000C6 -S3154002B24000000000000000000000000000000000B6 -S3154002B25000000000000000000000000000000000A6 -S3154002B2600000000000000000000000000000000096 -S3154002B2700000000000000000000000000000000086 -S3154002B2800000000000000000000000000000000076 -S3154002B2900000000000000000000000000000000066 -S3154002B2A00000000000000000000000000000000056 -S3154002B2B00000000000000000000000000000000046 -S3154002B2C00000000000000000000000000000000036 -S3154002B2D00000000000000000000000000000000026 -S3154002B2E00000000000000000000000000000000016 -S3154002B2F00000000000000000000000000000000006 -S3154002B30000000000000000000000000000000000F5 -S3154002B31000000000000000000000000000000000E5 -S3154002B32000000000000000000000000000000000D5 -S3154002B33000000000000000000000000000000000C5 -S3154002B34000000000000000000000000000000000B5 -S3154002B35000000000000000000000000000000000A5 -S3154002B3600000000000000000000000000000000095 -S3154002B3700000000000000000000000000000000085 -S3154002B3800000000000000000000000000000000075 -S3154002B3900000000000000000000000000000000065 -S3154002B3A00000000000000000000000000000000055 -S3154002B3B00000000000000000000000000000000045 -S3154002B3C00000000000000000000000000000000035 -S3154002B3D00000000000000000000000000000000025 -S3154002B3E00000000000000000000000000000000015 -S3154002B3F00000000000000000000000000000000005 -S3154002B40000000000000000000000000000000000F4 -S3154002B41000000000000000000000000000000000E4 -S3154002B42000000000000000000000000000000000D4 -S3154002B43000000000000000000000000000000000C4 -S3154002B44000000000000000000000000000000000B4 -S3154002B45000000000000000000000000000000000A4 -S3154002B4600000000000000000000000000000000094 -S3154002B4700000000000000000000000000000000084 -S3154002B4800000000000000000000000000000000074 -S3154002B4900000000000000000000000000000000064 -S3154002B4A00000000000000000000000000000000054 -S3154002B4B00000000000000000000000000000000044 -S3154002B4C00000000000000000000000000000000034 -S3154002B4D00000000000000000000000000000000024 -S3154002B4E00000000000000000000000000000000014 -S3154002B4F00000000000000000000000000000000004 -S3154002B50000000000000000000000000000000000F3 -S3154002B51000000000000000000000000000000000E3 -S3154002B52000000000000000000000000000000000D3 -S3154002B53000000000000000000000000000000000C3 -S3154002B54000000000000000000000000000000000B3 -S3154002B55000000000000000000000000000000000A3 -S3154002B5600000000000000000000000000000000093 -S3154002B5700000000000000000000000000000000083 -S3154002B5800000000000000000000000000000000073 -S3154002B5900000000000000000000000000000000063 -S3154002B5A00000000000000000000000000000000053 -S3154002B5B00000000000000000000000000000000043 -S3154002B5C00000000000000000000000000000000033 -S3154002B5D00000000000000000000000000000000023 -S3154002B5E00000000000000000000000000000000013 -S3154002B5F00000000000000000000000000000000003 -S3154002B60000000000000000000000000000000000F2 -S3154002B61000000000000000000000000000000000E2 -S3154002B62000000000000000000000000000000000D2 -S3154002B63000000000000000000000000000000000C2 -S3154002B64000000000000000000000000000000000B2 -S3154002B65000000000000000000000000000000000A2 -S3154002B6600000000000000000000000000000000092 -S3154002B6700000000000000000000000000000000082 -S3154002B6800000000000000000000000000000000072 -S3154002B6900000000000000000000000000000000062 -S3154002B6A00000000000000000000000000000000052 -S3154002B6B00000000000000000000000000000000042 -S3154002B6C00000000000000000000000000000000032 -S3154002B6D00000000000000000000000000000000022 -S3154002B6E00000000000000000000000000000000012 -S3154002B6F00000000000000000000000000000000002 -S3154002B70000000000000000000000000000000000F1 -S3154002B71000000000000000000000000000000000E1 -S3154002B72000000000000000000000000000000000D1 -S3154002B73000000000000000000000000000000000C1 -S3154002B74000000000000000000000000000000000B1 -S3154002B75000000000000000000000000000000000A1 -S3154002B7600000000000000000000000000000000091 -S3154002B7700000000000000000000000000000000081 -S3154002B7800000000000000000000000000000000071 -S3154002B7900000000000000000000000000000000061 -S3154002B7A00000000000000000000000000000000051 -S3154002B7B00000000000000000000000000000000041 -S3154002B7C00000000000000000000000000000000031 -S3154002B7D00000000000000000000000000000000021 -S3154002B7E00000000000000000000000000000000011 -S3154002B7F00000000000000000000000000000000001 -S3154002B80000000000000000000000000000000000F0 -S3154002B81000000000000000000000000000000000E0 -S3154002B82000000000000000000000000000000000D0 -S3154002B83000000000000000000000000000000000C0 -S3154002B84000000000000000000000000000000000B0 -S3154002B85000000000000000000000000000000000A0 -S3154002B8600000000000000000000000000000000090 -S3154002B8700000000000000000000000000000000080 -S3154002B8800000000000000000000000000000000070 -S3154002B8900000000000000000000000000000000060 -S3154002B8A00000000000000000000000000000000050 -S3154002B8B00000000000000000000000000000000040 -S3154002B8C00000000000000000000000000000000030 -S3154002B8D00000000000000000000000000000000020 -S3154002B8E00000000000000000000000000000000010 -S3154002B8F00000000000000000000000000000000000 -S3154002B90000000000000000000000000000000000EF -S3154002B91000000000000000000000000000000000DF -S3154002B92000000000000000000000000000000000CF -S3154002B93000000000000000000000000000000000BF -S3154002B94000000000000000000000000000000000AF -S3154002B950000000000000000000000000000000009F -S3154002B960000000000000000000000000000000008F -S3154002B970000000000000000000000000000000007F -S3154002B980000000000000000000000000000000006F -S3154002B990000000000000000000000000000000005F -S3154002B9A0000000000000000000000000000000004F -S3154002B9B0000000000000000000000000000000003F -S3154002B9C0000000000000000000000000000000002F -S3154002B9D0000000000000000000000000000000001F -S3154002B9E0000000000000000000000000000000000F -S3154002B9F000000000000000000000000000000000FF -S3154002BA0000000000000000000000000000000000EE -S3154002BA1000000000000000000000000000000000DE -S3154002BA2000000000000000000000000000000000CE -S3154002BA3000000000000000000000000000000000BE -S3154002BA4000000000000000000000000000000000AE -S3154002BA50000000000000000000000000000000009E -S3154002BA60000000000000000000000000000000008E -S3154002BA70000000000000000000000000000000007E -S3154002BA80000000000000000000000000000000006E -S3154002BA90000000000000000000000000000000005E -S3154002BAA0000000000000000000000000000000004E -S3154002BAB0000000000000000000000000000000003E -S3154002BAC0000000000000000000000000000000002E -S3154002BAD0000000000000000000000000000000001E -S3154002BAE0000000000000000000000000000000000E -S3154002BAF000000000000000000000000000000000FE -S3154002BB0000000000000000000000000000000000ED -S3154002BB1000000000000000000000000000000000DD -S3154002BB2000000000000000000000000000000000CD -S3154002BB3000000000000000000000000000000000BD -S3154002BB4000000000000000000000000000000000AD -S3154002BB50000000000000000000000000000000009D -S3154002BB60000000000000000000000000000000008D -S3154002BB70000000000000000000000000000000007D -S3154002BB80000000000000000000000000000000006D -S3154002BB90000000000000000000000000000000005D -S3154002BBA0000000000000000000000000000000004D -S3154002BBB0000000000000000000000000000000003D -S3154002BBC0000000000000000000000000000000002D -S3154002BBD0000000000000000000000000000000001D -S3154002BBE0000000000000000000000000000000000D -S3154002BBF000000000000000000000000000000000FD -S3154002BC0000000000000000000000000000000000EC -S3154002BC1000000000000000000000000000000000DC -S3154002BC2000000000000000000000000000000000CC -S3154002BC3000000000000000000000000000000000BC -S3154002BC4000000000000000000000000000000000AC -S3154002BC50000000000000000000000000000000009C -S3154002BC60000000000000000000000000000000008C -S3154002BC70000000000000000000000000000000007C -S3154002BC80000000000000000000000000000000006C -S3154002BC90000000000000000000000000000000005C -S3154002BCA0000000000000000000000000000000004C -S3154002BCB0000000000000000000000000000000003C -S3154002BCC0000000000000000000000000000000002C -S3154002BCD0000000000000000000000000000000001C -S3154002BCE0000000000000000000000000000000000C -S3154002BCF000000000000000000000000000000000FC -S3154002BD0000000000000000000000000000000000EB -S3154002BD1000000000000000000000000000000000DB -S3154002BD2000000000000000000000000000000000CB -S3154002BD3000000000000000000000000000000000BB -S3154002BD4000000000000000000000000000000000AB -S3154002BD50000000000000000000000000000000009B -S3154002BD60000000000000000000000000000000008B -S3154002BD70000000000000000000000000000000007B -S3154002BD80000000000000000000000000000000006B -S3154002BD90000000000000000000000000000000005B -S3154002BDA0000000000000000000000000000000004B -S3154002BDB0000000000000000000000000000000003B -S3154002BDC0000000000000000000000000000000002B -S3154002BDD0000000000000000000000000000000001B -S3154002BDE0000000000000000000000000000000000B -S3154002BDF000000000000000000000000000000000FB -S3154002BE0000000000000000000000000000000000EA -S3154002BE1000000000000000000000000000000000DA -S3154002BE2000000000000000000000000000000000CA -S3154002BE3000000000000000000000000000000000BA -S3154002BE4000000000000000000000000000000000AA -S3154002BE50000000000000000000000000000000009A -S3154002BE60000000000000000000000000000000008A -S3154002BE70000000000000000000000000000000007A -S3154002BE80000000000000000000000000000000006A -S3154002BE90000000000000000000000000000000005A -S3154002BEA0000000000000000000000000000000004A -S3154002BEB0000000000000000000000000000000003A -S3154002BEC0000000000000000000000000000000002A -S3154002BED0000000000000000000000000000000001A -S3154002BEE0000000000000000000000000000000000A -S3154002BEF000000000000000000000000000000000FA -S3154002BF0000000000000000000000000000000000E9 -S3154002BF1000000000000000000000000000000000D9 -S3154002BF2000000000000000000000000000000000C9 -S3154002BF3000000000000000000000000000000000B9 -S3154002BF4000000000000000000000000000000000A9 -S3154002BF500000000000000000000000000000000099 -S3154002BF600000000000000000000000000000000089 -S3154002BF700000000000000000000000000000000079 -S3154002BF800000000000000000000000000000000069 -S3154002BF900000000000000000000000000000000059 -S3154002BFA00000000000000000000000000000000049 -S3154002BFB00000000000000000000000000000000039 -S3154002BFC00000000000000000000000000000000029 -S3154002BFD00000000000000000000000000000000019 -S3154002BFE00000000000000000000000000000000009 -S3154002BFF000000000000000000000000000000000F9 -S3154002C00000000000000000000000000000000000E8 -S3154002C01000000000000000000000000000000000D8 -S3154002C02000000000000000000000000000000000C8 -S3154002C03000000000000000000000000000000000B8 -S3154002C04000000000000000000000000000000000A8 -S3154002C0500000000000000000000000000000000098 -S3154002C0600000000000000000000000000000000088 -S3154002C0700000000000000000000000000000000078 -S3154002C0800000000000000000000000000000000068 -S3154002C0900000000000000000000000000000000058 -S3154002C0A00000000000000000000000000000000048 -S3154002C0B00000000000000000000000000000000038 -S3154002C0C00000000000000000000000000000000028 -S3154002C0D00000000000000000000000000000000018 -S3154002C0E00000000000000000000000000000000008 -S3154002C0F000000000000000000000000000000000F8 -S3154002C10000000000000000000000000000000000E7 -S3154002C11000000000000000000000000000000000D7 -S3154002C12000000000000000000000000000000000C7 -S3154002C13000000000000000000000000000000000B7 -S3154002C14000000000000000000000000000000000A7 -S3154002C1500000000000000000000000000000000097 -S3154002C1600000000000000000000000000000000087 -S3154002C1700000000000000000000000000000000077 -S3154002C1800000000000000000000000000000000067 -S3154002C1900000000000000000000000000000000057 -S3154002C1A00000000000000000000000000000000047 -S3154002C1B00000000000000000000000000000000037 -S3154002C1C00000000000000000000000000000000027 -S3154002C1D00000000000000000000000000000000017 -S3154002C1E00000000000000000000000000000000007 -S3154002C1F000000000000000000000000000000000F7 -S3154002C20000000000000000000000000000000000E6 -S3154002C21000000000000000000000000000000000D6 -S3154002C22000000000000000000000000000000000C6 -S3154002C23000000000000000000000000000000000B6 -S3154002C24000000000000000000000000000000000A6 -S3154002C2500000000000000000000000000000000096 -S3154002C2600000000000000000000000000000000086 -S3154002C2700000000000000000000000000000000076 -S3154002C2800000000000000000000000000000000066 -S3154002C2900000000000000000000000000000000056 -S3154002C2A00000000000000000000000000000000046 -S3154002C2B00000000000000000000000000000000036 -S3154002C2C00000000000000000000000000000000026 -S3154002C2D00000000000000000000000000000000016 -S3154002C2E00000000000000000000000000000000006 -S3154002C2F000000000000000000000000000000000F6 -S3154002C30000000000000000000000000000000000E5 -S3154002C31000000000000000000000000000000000D5 -S3154002C32000000000000000000000000000000000C5 -S3154002C33000000000000000000000000000000000B5 -S3154002C34000000000000000000000000000000000A5 -S3154002C3500000000000000000000000000000000095 -S3154002C3600000000000000000000000000000000085 -S3154002C3700000000000000000000000000000000075 -S3154002C3800000000000000000000000000000000065 -S3154002C3900000000000000000000000000000000055 -S3154002C3A00000000000000000000000000000000045 -S3154002C3B00000000000000000000000000000000035 -S3154002C3C00000000000000000000000000000000025 -S3154002C3D00000000000000000000000000000000015 -S3154002C3E00000000000000000000000000000000005 -S3154002C3F000000000000000000000000000000000F5 -S3154002C40000000000000000000000000000000000E4 -S3154002C41000000000000000000000000000000000D4 -S3154002C42000000000000000000000000000000000C4 -S3154002C43000000000000000000000000000000000B4 -S3154002C44000000000000000000000000000000000A4 -S3154002C4500000000000000000000000000000000094 -S3154002C4600000000000000000000000000000000084 -S3154002C4700000000000000000000000000000000074 -S3154002C4800000000000000000000000000000000064 -S3154002C4900000000000000000000000000000000054 -S3154002C4A00000000000000000000000000000000044 -S3154002C4B00000000000000000000000000000000034 -S3154002C4C00000000000000000000000000000000024 -S3154002C4D00000000000000000000000000000000014 -S3154002C4E00000000000000000000000000000000004 -S3154002C4F000000000000000000000000000000000F4 -S3154002C50000000000000000000000000000000000E3 -S3154002C51000000000000000000000000000000000D3 -S3154002C52000000000000000000000000000000000C3 -S3154002C53000000000000000000000000000000000B3 -S3154002C54000000000000000000000000000000000A3 -S3154002C5500000000000000000000000000000000093 -S3154002C5600000000000000000000000000000000083 -S3154002C5700000000000000000000000000000000073 -S3154002C5800000000000000000000000000000000063 -S3154002C5900000000000000000000000000000000053 -S3154002C5A00000000000000000000000000000000043 -S3154002C5B00000000000000000000000000000000033 -S3154002C5C00000000000000000000000000000000023 -S3154002C5D00000000000000000000000000000000013 -S3154002C5E00000000000000000000000000000000003 -S3154002C5F000000000000000000000000000000000F3 -S3154002C60000000000000000000000000000000000E2 -S3154002C61000000000000000000000000000000000D2 -S3154002C62000000000000000000000000000000000C2 -S3154002C63000000000000000000000000000000000B2 -S3154002C64000000000000000000000000000000000A2 -S3154002C6500000000000000000000000000000000092 -S3154002C6600000000000000000000000000000000082 -S3154002C6700000000000000000000000000000000072 -S3154002C6800000000000000000000000000000000062 -S3154002C6900000000000000000000000000000000052 -S3154002C6A00000000000000000000000000000000042 -S3154002C6B00000000000000000000000000000000032 -S3154002C6C00000000000000000000000000000000022 -S3154002C6D00000000000000000000000000000000012 -S3154002C6E00000000000000000000000000000000002 -S3154002C6F000000000000000000000000000000000F2 -S3154002C70000000000000000000000000000000000E1 -S3154002C71000000000000000000000000000000000D1 -S3154002C72000000000000000000000000000000000C1 -S3154002C73000000000000000000000000000000000B1 -S3154002C74000000000000000000000000000000000A1 -S3154002C7500000000000000000000000000000000091 -S3154002C7600000000000000000000000000000000081 -S3154002C7700000000000000000000000000000000071 -S3154002C7800000000000000000000000000000000061 -S3154002C7900000000000000000000000000000000051 -S3154002C7A00000000000000000000000000000000041 -S3154002C7B00000000000000000000000000000000031 -S3154002C7C00000000000000000000000000000000021 -S3154002C7D00000000000000000000000000000000011 -S3154002C7E00000000000000000000000000000000001 -S3154002C7F000000000000000000000000000000000F1 -S3154002C80000000000000000000000000000000000E0 -S3154002C81000000000000000000000000000000000D0 -S3154002C82000000000000000000000000000000000C0 -S3154002C83000000000000000000000000000000000B0 -S3154002C84000000000000000000000000000000000A0 -S3154002C8500000000000000000000000000000000090 -S3154002C8600000000000000000000000000000000080 -S3154002C8700000000000000000000000000000000070 -S3154002C8800000000000000000000000000000000060 -S3154002C8900000000000000000000000000000000050 -S3154002C8A00000000000000000000000000000000040 -S3154002C8B00000000000000000000000000000000030 -S3154002C8C00000000000000000000000000000000020 -S3154002C8D00000000000000000000000000000000010 -S3154002C8E00000000000000000000000000000000000 -S3154002C8F000000000000000000000000000000000F0 -S3154002C90000000000000000000000000000000000DF -S3154002C91000000000000000000000000000000000CF -S3154002C92000000000000000000000000000000000BF -S3154002C93000000000000000000000000000000000AF -S3154002C940000000000000000000000000000000009F -S3154002C950000000000000000000000000000000008F -S3154002C960000000000000000000000000000000007F -S3154002C970000000000000000000000000000000006F -S3154002C980000000000000000000000000000000005F -S3154002C990000000000000000000000000000000004F -S3154002C9A0000000000000000000000000000000003F -S3154002C9B0000000000000000000000000000000002F -S3154002C9C0000000000000000000000000000000001F -S3154002C9D0000000000000000000000000000000000F -S3154002C9E000000000000000000000000000000000FF -S3154002C9F000000000000000000000000000000000EF -S3154002CA0000000000000000000000000000000000DE -S3154002CA1000000000000000000000000000000000CE -S3154002CA2000000000000000000000000000000000BE -S3154002CA3000000000000000000000000000000000AE -S3154002CA40000000000000000000000000000000009E -S3154002CA50000000000000000000000000000000008E -S3154002CA60000000000000000000000000000000007E -S3154002CA70000000000000000000000000000000006E -S3154002CA80000000000000000000000000000000005E -S3154002CA90000000000000000000000000000000004E -S3154002CAA0000000000000000000000000000000003E -S3154002CAB0000000000000000000000000000000002E -S3154002CAC0000000000000000000000000000000001E -S3154002CAD0000000000000000000000000000000000E -S3154002CAE000000000000000000000000000000000FE -S3154002CAF000000000000000000000000000000000EE -S3154002CB0000000000000000000000000000000000DD -S3154002CB1000000000000000000000000000000000CD -S3154002CB2000000000000000000000000000000000BD -S3154002CB3000000000000000000000000000000000AD -S3154002CB40000000000000000000000000000000009D -S3154002CB50000000000000000000000000000000008D -S3154002CB60000000000000000000000000000000007D -S3154002CB70000000000000000000000000000000006D -S3154002CB80000000000000000000000000000000005D -S3154002CB90000000000000000000000000000000004D -S3154002CBA0000000000000000000000000000000003D -S3154002CBB0000000000000000000000000000000002D -S3154002CBC0000000000000000000000000000000001D -S3154002CBD0000000000000000000000000000000000D -S3154002CBE000000000000000000000000000000000FD -S3154002CBF000000000000000000000000000000000ED -S3154002CC0000000000000000000000000000000000DC -S3154002CC1000000000000000000000000000000000CC -S3154002CC2000000000000000000000000000000000BC -S3154002CC3000000000000000000000000000000000AC -S3154002CC40000000000000000000000000000000009C -S3154002CC50000000000000000000000000000000008C -S3154002CC60000000000000000000000000000000007C -S3154002CC70000000000000000000000000000000006C -S3154002CC80000000000000000000000000000000005C -S3154002CC90000000000000000000000000000000004C -S3154002CCA0000000000000000000000000000000003C -S3154002CCB0000000000000000000000000000000002C -S3154002CCC0000000000000000000000000000000001C -S3154002CCD0000000000000000000000000000000000C -S3154002CCE000000000000000000000000000000000FC -S3154002CCF000000000000000000000000000000000EC -S3154002CD0000000000000000000000000000000000DB -S3154002CD1000000000000000000000000000000000CB -S3154002CD2000000000000000000000000000000000BB -S3154002CD3000000000000000000000000000000000AB -S3154002CD40000000000000000000000000000000009B -S3154002CD50000000000000000000000000000000008B -S3154002CD60000000000000000000000000000000007B -S3154002CD70000000000000000000000000000000006B -S3154002CD80000000000000000000000000000000005B -S3154002CD90000000000000000000000000000000004B -S3154002CDA0000000000000000000000000000000003B -S3154002CDB0000000000000000000000000000000002B -S3154002CDC0000000000000000000000000000000001B -S3154002CDD0000000000000000000000000000000000B -S3154002CDE000000000000000000000000000000000FB -S3154002CDF000000000000000000000000000000000EB -S3154002CE0000000000000000000000000000000000DA -S3154002CE1000000000000000000000000000000000CA -S3154002CE2000000000000000000000000000000000BA -S3154002CE3000000000000000000000000000000000AA -S3154002CE40000000000000000000000000000000009A -S3154002CE50000000000000000000000000000000008A -S3154002CE60000000000000000000000000000000007A -S3154002CE70000000000000000000000000000000006A -S3154002CE80000000000000000000000000000000005A -S3154002CE90000000000000000000000000000000004A -S3154002CEA0000000000000000000000000000000003A -S3154002CEB0000000000000000000000000000000002A -S3154002CEC0000000000000000000000000000000001A -S3154002CED0000000000000000000000000000000000A -S3154002CEE000000000000000000000000000000000FA -S3154002CEF000000000000000000000000000000000EA -S3154002CF0000000000000000000000000000000000D9 -S3154002CF1000000000000000000000000000000000C9 -S3154002CF2000000000000000000000000000000000B9 -S3154002CF3000000000000000000000000000000000A9 -S3154002CF400000000000000000000000000000000099 -S3154002CF500000000000000000000000000000000089 -S3154002CF600000000000000000000000000000000079 -S3154002CF700000000000000000000000000000000069 -S3154002CF800000000000000000000000000000000059 -S3154002CF900000000000000000000000000000000049 -S3154002CFA00000000000000000000000000000000039 -S3154002CFB00000000000000000000000000000000029 -S3154002CFC00000000000000000000000000000000019 -S3154002CFD00000000000000000000000000000000009 -S3154002CFE000000000000000000000000000000000F9 -S3154002CFF000000000000000000000000000000000E9 -S3154002D00000000000000000000000000000000000D8 -S3154002D01000000000000000000000000000000000C8 -S3154002D02000000000000000000000000000000000B8 -S3154002D03000000000000000000000000000000000A8 -S3154002D0400000000000000000000000000000000098 -S3154002D0500000000000000000000000000000000088 -S3154002D0600000000000000000000000000000000078 -S3154002D0700000000000000000000000000000000068 -S3154002D0800000000000000000000000000000000058 -S3154002D0900000000000000000000000000000000048 -S3154002D0A00000000000000000000000000000000038 -S3154002D0B00000000000000000000000000000000028 -S3154002D0C00000000000000000000000000000000018 -S3154002D0D00000000000000000000000000000000008 -S3154002D0E000000000000000000000000000000000F8 -S3154002D0F000000000000000000000000000000000E8 -S3154002D10000000000000000000000000000000000D7 -S3154002D11000000000000000000000000000000000C7 -S3154002D12000000000000000000000000000000000B7 -S3154002D13000000000000000000000000000000000A7 -S3154002D1400000000000000000000000000000000097 -S3154002D1500000000000000000000000000000000087 -S3154002D1600000000000000000000000000000000077 -S3154002D1700000000000000000000000000000000067 -S3154002D1800000000000000000000000000000000057 -S3154002D1900000000000000000000000000000000047 -S3154002D1A00000000000000000000000000000000037 -S3154002D1B00000000000000000000000000000000027 -S3154002D1C00000000000000000000000000000000017 -S3154002D1D00000000000000000000000000000000007 -S3154002D1E000000000000000000000000000000000F7 -S3154002D1F000000000000000000000000000000000E7 -S3154002D20000000000000000000000000000000000D6 -S3154002D21000000000000000000000000000000000C6 -S3154002D22000000000000000000000000000000000B6 -S3154002D23000000000000000000000000000000000A6 -S3154002D2400000000000000000000000000000000096 -S3154002D2500000000000000000000000000000000086 -S3154002D2600000000000000000000000000000000076 -S3154002D2700000000000000000000000000000000066 -S3154002D2800000000000000000000000000000000056 -S3154002D2900000000000000000000000000000000046 -S3154002D2A00000000000000000000000000000000036 -S3154002D2B00000000000000000000000000000000026 -S3154002D2C00000000000000000000000000000000016 -S3154002D2D00000000000000000000000000000000006 -S3154002D2E000000000000000000000000000000000F6 -S3154002D2F000000000000000000000000000000000E6 -S3154002D30000000000000000000000000000000000D5 -S3154002D31000000000000000000000000000000000C5 -S3154002D32000000000000000000000000000000000B5 -S3154002D33000000000000000000000000000000000A5 -S3154002D3400000000000000000000000000000000095 -S3154002D3500000000000000000000000000000000085 -S3154002D3600000000000000000000000000000000075 -S3154002D3700000000000000000000000000000000065 -S3154002D3800000000000000000000000000000000055 -S3154002D3900000000000000000000000000000000045 -S3154002D3A00000000000000000000000000000000035 -S3154002D3B00000000000000000000000000000000025 -S3154002D3C00000000000000000000000000000000015 -S3154002D3D00000000000000000000000000000000005 -S3154002D3E000000000000000000000000000000000F5 -S3154002D3F000000000000000000000000000000000E5 -S3154002D40000000000000000000000000000000000D4 -S3154002D41000000000000000000000000000000000C4 -S3154002D42000000000000000000000000000000000B4 -S3154002D43000000000000000000000000000000000A4 -S3154002D4400000000000000000000000000000000094 -S3154002D4500000000000000000000000000000000084 -S3154002D4600000000000000000000000000000000074 -S3154002D4700000000000000000000000000000000064 -S3154002D4800000000000000000000000000000000054 -S3154002D4900000000000000000000000000000000044 -S3154002D4A00000000000000000000000000000000034 -S3154002D4B00000000000000000000000000000000024 -S3154002D4C00000000000000000000000000000000014 -S3154002D4D00000000000000000000000000000000004 -S3154002D4E000000000000000000000000000000000F4 -S3154002D4F000000000000000000000000000000000E4 -S3154002D50000000000000000000000000000000000D3 -S3154002D51000000000000000000000000000000000C3 -S3154002D52000000000000000000000000000000000B3 -S3154002D53000000000000000000000000000000000A3 -S3154002D5400000000000000000000000000000000093 -S3154002D5500000000000000000000000000000000083 -S3154002D5600000000000000000000000000000000073 -S3154002D5700000000000000000000000000000000063 -S3154002D5800000000000000000000000000000000053 -S3154002D5900000000000000000000000000000000043 -S3154002D5A00000000000000000000000000000000033 -S3154002D5B00000000000000000000000000000000023 -S3154002D5C00000000000000000000000000000000013 -S3154002D5D00000000000000000000000000000000003 -S3154002D5E000000000000000000000000000000000F3 -S3154002D5F000000000000000000000000000000000E3 -S3154002D60000000000000000000000000000000000D2 -S3154002D61000000000000000000000000000000000C2 -S3154002D62000000000000000000000000000000000B2 -S3154002D63000000000000000000000000000000000A2 -S3154002D6400000000000000000000000000000000092 -S3154002D6500000000000000000000000000000000082 -S3154002D6600000000000000000000000000000000072 -S3154002D6700000000000000000000000000000000062 -S3154002D6800000000000000000000000000000000052 -S3154002D6900000000000000000000000000000000042 -S3154002D6A00000000000000000000000000000000032 -S3154002D6B00000000000000000000000000000000022 -S3154002D6C00000000000000000000000000000000012 -S3154002D6D00000000000000000000000000000000002 -S3154002D6E000000000000000000000000000000000F2 -S3154002D6F000000000000000000000000000000000E2 -S3154002D70000000000000000000000000000000000D1 -S3154002D71000000000000000000000000000000000C1 -S3154002D72000000000000000000000000000000000B1 -S3154002D73000000000000000000000000000000000A1 -S3154002D7400000000000000000000000000000000091 -S3154002D7500000000000000000000000000000000081 -S3154002D7600000000000000000000000000000000071 -S3154002D7700000000000000000000000000000000061 -S3154002D7800000000000000000000000000000000051 -S3154002D7900000000000000000000000000000000041 -S3154002D7A00000000000000000000000000000000031 -S3154002D7B00000000000000000000000000000000021 -S3154002D7C00000000000000000000000000000000011 -S3154002D7D00000000000000000000000000000000001 -S3154002D7E000000000000000000000000000000000F1 -S3154002D7F000000000000000000000000000000000E1 -S3154002D80000000000000000000000000000000000D0 -S3154002D81000000000000000000000000000000000C0 -S3154002D82000000000000000000000000000000000B0 -S3154002D83000000000000000000000000000000000A0 -S3154002D8400000000000000000000000000000000090 -S3154002D8500000000000000000000000000000000080 -S3154002D8600000000000000000000000000000000070 -S3154002D8700000000000000000000000000000000060 -S3154002D8800000000000000000000000000000000050 -S3154002D8900000000000000000000000000000000040 -S3154002D8A00000000000000000000000000000000030 -S3154002D8B00000000000000000000000000000000020 -S3154002D8C00000000000000000000000000000000010 -S3154002D8D00000000000000000000000000000000000 -S3154002D8E000000000000000000000000000000000F0 -S3154002D8F000000000000000000000000000000000E0 -S3154002D90000000000000000000000000000000000CF -S3154002D91000000000000000000000000000000000BF -S3154002D92000000000000000000000000000000000AF -S3154002D930000000000000000000000000000000009F -S3154002D940000000000000000000000000000000008F -S3154002D950000000000000000000000000000000007F -S3154002D960000000000000000000000000000000006F -S3154002D970000000000000000000000000000000005F -S3154002D980000000000000000000000000000000004F -S3154002D990000000000000000000000000000000003F -S3154002D9A0000000000000000000000000000000002F -S3154002D9B0000000000000000000000000000000001F -S3154002D9C0000000000000000000000000000000000F -S3154002D9D000000000000000000000000000000000FF -S3154002D9E000000000000000000000000000000000EF -S3154002D9F000000000000000000000000000000000DF -S3154002DA0000000000000000000000000000000000CE -S3154002DA1000000000000000000000000000000000BE -S3154002DA2000000000000000000000000000000000AE -S3154002DA30000000000000000000000000000000009E -S3154002DA40000000000000000000000000000000008E -S3154002DA50000000000000000000000000000000007E -S3154002DA60000000000000000000000000000000006E -S3154002DA70000000000000000000000000000000005E -S3154002DA80000000000000000000000000000000004E -S3154002DA90000000000000000000000000000000003E -S3154002DAA0000000000000000000000000000000002E -S3154002DAB0000000000000000000000000000000001E -S3154002DAC0000000000000000000000000000000000E -S3154002DAD000000000000000000000000000000000FE -S3154002DAE000000000000000000000000000000000EE -S3154002DAF000000000000000000000000000000000DE -S3154002DB0000000000000000000000000000000000CD -S3154002DB1000000000000000000000000000000000BD -S3154002DB2000000000000000000000000000000000AD -S3154002DB30000000000000000000000000000000009D -S3154002DB40000000000000000000000000000000008D -S3154002DB50000000000000000000000000000000007D -S3154002DB60000000000000000000000000000000006D -S3154002DB70000000000000000000000000000000005D -S3154002DB80000000000000000000000000000000004D -S3154002DB90000000000000000000000000000000003D -S3154002DBA0000000000000000000000000000000002D -S3154002DBB0000000000000000000000000000000001D -S3154002DBC0000000000000000000000000000000000D -S3154002DBD000000000000000000000000000000000FD -S3154002DBE000000000000000000000000000000000ED -S3154002DBF000000000000000000000000000000000DD -S3154002DC0000000000000000000000000000000000CC -S3154002DC1000000000000000000000000000000000BC -S3154002DC2000000000000000000000000000000000AC -S3154002DC30000000000000000000000000000000009C -S3154002DC40000000000000000000000000000000008C -S3154002DC50000000000000000000000000000000007C -S3154002DC60000000000000000000000000000000006C -S3154002DC70000000000000000000000000000000005C -S3154002DC80000000000000000000000000000000004C -S3154002DC90000000000000000000000000000000003C -S3154002DCA0000000000000000000000000000000002C -S3154002DCB0000000000000000000000000000000001C -S3154002DCC0000000000000000000000000000000000C -S3154002DCD000000000000000000000000000000000FC -S3154002DCE000000000000000000000000000000000EC -S3154002DCF000000000000000000000000000000000DC -S3154002DD0000000000000000000000000000000000CB -S3154002DD1000000000000000000000000000000000BB -S3154002DD2000000000000000000000000000000000AB -S3154002DD30000000000000000000000000000000009B -S3154002DD40000000000000000000000000000000008B -S3154002DD50000000000000000000000000000000007B -S3154002DD60000000000000000000000000000000006B -S3154002DD70000000000000000000000000000000005B -S3154002DD80000000000000000000000000000000004B -S3154002DD90000000000000000000000000000000003B -S3154002DDA0000000000000000000000000000000002B -S3154002DDB0000000000000000000000000000000001B -S3154002DDC0000000000000000000000000000000000B -S3154002DDD000000000000000000000000000000000FB -S3154002DDE000000000000000000000000000000000EB -S3154002DDF000000000000000000000000000000000DB -S3154002DE0000000000000000000000000000000000CA -S3154002DE1000000000000000000000000000000000BA -S3154002DE2000000000000000000000000000000000AA -S3154002DE30000000000000000000000000000000009A -S3154002DE40000000000000000000000000000000008A -S3154002DE50000000000000000000000000000000007A -S3154002DE60000000000000000000000000000000006A -S3154002DE70000000000000000000000000000000005A -S3154002DE80000000000000000000000000000000004A -S3154002DE90000000000000000000000000000000003A -S3154002DEA0000000000000000000000000000000002A -S3154002DEB0000000000000000000000000000000001A -S3154002DEC0000000000000000000000000000000000A -S3154002DED000000000000000000000000000000000FA -S3154002DEE000000000000000000000000000000000EA -S3154002DEF000000000000000000000000000000000DA -S3154002DF0000000000000000000000000000000000C9 -S3154002DF1000000000000000000000000000000000B9 -S3154002DF2000000000000000000000000000000000A9 -S3154002DF300000000000000000000000000000000099 -S3154002DF400000000000000000000000000000000089 -S3154002DF500000000000000000000000000000000079 -S3154002DF600000000000000000000000000000000069 -S3154002DF700000000000000000000000000000000059 -S3154002DF800000000000000000000000000000000049 -S3154002DF900000000000000000000000000000000039 -S3154002DFA00000000000000000000000000000000029 -S3154002DFB00000000000000000000000000000000019 -S3154002DFC00000000000000000000000000000000009 -S3154002DFD000000000000000000000000000000000F9 -S3154002DFE000000000000000000000000000000000E9 -S3154002DFF000000000000000000000000000000000D9 -S3154002E00000000000000000000000000000000000C8 -S3154002E01000000000000000000000000000000000B8 -S3154002E02000000000000000000000000000000000A8 -S3154002E0300000000000000000000000000000000098 -S3154002E0400000000000000000000000000000000088 -S3154002E0500000000000000000000000000000000078 -S3154002E0600000000000000000000000000000000068 -S3154002E0700000000000000000000000000000000058 -S3154002E0800000000000000000000000000000000048 -S3154002E0900000000000000000000000000000000038 -S3154002E0A00000000000000000000000000000000028 -S3154002E0B00000000000000000000000000000000018 -S3154002E0C00000000000000000000000000000000008 -S3154002E0D000000000000000000000000000000000F8 -S3154002E0E000000000000000000000000000000000E8 -S3154002E0F000000000000000000000000000000000D8 -S3154002E10000000000000000000000000000000000C7 -S3154002E11000000000000000000000000000000000B7 -S3154002E12000000000000000000000000000000000A7 -S3154002E1300000000000000000000000000000000097 -S3154002E1400000000000000000000000000000000087 -S3154002E1500000000000000000000000000000000077 -S3154002E1600000000000000000000000000000000067 -S3154002E1700000000000000000000000000000000057 -S3154002E1800000000000000000000000000000000047 -S3154002E1900000000000000000000000000000000037 -S3154002E1A00000000000000000000000000000000027 -S3154002E1B00000000000000000000000000000000017 -S3154002E1C00000000000000000000000000000000007 -S3154002E1D000000000000000000000000000000000F7 -S3154002E1E000000000000000000000000000000000E7 -S3154002E1F000000000000000000000000000000000D7 -S3154002E20000000000000000000000000000000000C6 -S3154002E21000000000000000000000000000000000B6 -S3154002E22000000000000000000000000000000000A6 -S3154002E2300000000000000000000000000000000096 -S3154002E2400000000000000000000000000000000086 -S3154002E2500000000000000000000000000000000076 -S3154002E2600000000000000000000000000000000066 -S3154002E2700000000000000000000000000000000056 -S3154002E2800000000000000000000000000000000046 -S3154002E2900000000000000000000000000000000036 -S3154002E2A00000000000000000000000000000000026 -S3154002E2B00000000000000000000000000000000016 -S3154002E2C00000000000000000000000000000000006 -S3154002E2D000000000000000000000000000000000F6 -S3154002E2E000000000000000000000000000000000E6 -S3154002E2F000000000000000000000000000000000D6 -S3154002E30000000000000000000000000000000000C5 -S3154002E31000000000000000000000000000000000B5 -S3154002E32000000000000000000000000000000000A5 -S3154002E3300000000000000000000000000000000095 -S3154002E3400000000000000000000000000000000085 -S3154002E3500000000000000000000000000000000075 -S3154002E3600000000000000000000000000000000065 -S3154002E3700000000000000000000000000000000055 -S3154002E3800000000000000000000000000000000045 -S3154002E3900000000000000000000000000000000035 -S3154002E3A00000000000000000000000000000000025 -S3154002E3B00000000000000000000000000000000015 -S3154002E3C00000000000000000000000000000000005 -S3154002E3D000000000000000000000000000000000F5 -S3154002E3E000000000000000000000000000000000E5 -S3154002E3F000000000000000000000000000000000D5 -S3154002E40000000000000000000000000000000000C4 -S3154002E41000000000000000000000000000000000B4 -S3154002E42000000000000000000000000000000000A4 -S3154002E4300000000000000000000000000000000094 -S3154002E4400000000000000000000000000000000084 -S3154002E4500000000000000000000000000000000074 -S3154002E4600000000000000000000000000000000064 -S3154002E4700000000000000000000000000000000054 -S3154002E4800000000000000000000000000000000044 -S3154002E4900000000000000000000000000000000034 -S3154002E4A00000000000000000000000000000000024 -S3154002E4B00000000000000000000000000000000014 -S3154002E4C00000000000000000000000000000000004 -S3154002E4D000000000000000000000000000000000F4 -S3154002E4E000000000000000000000000000000000E4 -S3154002E4F000000000000000000000000000000000D4 -S3154002E50000000000000000000000000000000000C3 -S3154002E51000000000000000000000000000000000B3 -S3154002E52000000000000000000000000000000000A3 -S3154002E5300000000000000000000000000000000093 -S3154002E5400000000000000000000000000000000083 -S3154002E5500000000000000000000000000000000073 -S3154002E5600000000000000000000000000000000063 -S3154002E5700000000000000000000000000000000053 -S3154002E5800000000000000000000000000000000043 -S3154002E5900000000000000000000000000000000033 -S3154002E5A00000000000000000000000000000000023 -S3154002E5B00000000000000000000000000000000013 -S3154002E5C00000000000000000000000000000000003 -S3154002E5D000000000000000000000000000000000F3 -S3154002E5E000000000000000000000000000000000E3 -S3154002E5F000000000000000000000000000000000D3 -S3154002E60000000000000000000000000000000000C2 -S3154002E61000000000000000000000000000000000B2 -S3154002E62000000000000000000000000000000000A2 -S3154002E6300000000000000000000000000000000092 -S3154002E6400000000000000000000000000000000082 -S3154002E6500000000000000000000000000000000072 -S3154002E6600000000000000000000000000000000062 -S3154002E6700000000000000000000000000000000052 -S3154002E6800000000000000000000000000000000042 -S3154002E6900000000000000000000000000000000032 -S3154002E6A00000000000000000000000000000000022 -S3154002E6B00000000000000000000000000000000012 -S3154002E6C00000000000000000000000000000000002 -S3154002E6D000000000000000000000000000000000F2 -S3154002E6E000000000000000000000000000000000E2 -S3154002E6F000000000000000000000000000000000D2 -S3154002E70000000000000000000000000000000000C1 -S3154002E71000000000000000000000000000000000B1 -S3154002E72000000000000000000000000000000000A1 -S3154002E7300000000000000000000000000000000091 -S3154002E7400000000000000000000000000000000081 -S3154002E7500000000000000000000000000000000071 -S3154002E7600000000000000000000000000000000061 -S3154002E7700000000000000000000000000000000051 -S3154002E7800000000000000000000000000000000041 -S3154002E7900000000000000000000000000000000031 -S3154002E7A00000000000000000000000000000000021 -S3154002E7B00000000000000000000000000000000011 -S3154002E7C00000000000000000000000000000000001 -S3154002E7D000000000000000000000000000000000F1 -S3154002E7E000000000000000000000000000000000E1 -S3154002E7F000000000000000000000000000000000D1 -S3154002E80000000000000000000000000000000000C0 -S3154002E81000000000000000000000000000000000B0 -S3154002E82000000000000000000000000000000000A0 -S3154002E8300000000000000000000000000000000090 -S3154002E8400000000000000000000000000000000080 -S3154002E8500000000000000000000000000000000070 -S3154002E8600000000000000000000000000000000060 -S3154002E8700000000000000000000000000000000050 -S3154002E8800000000000000000000000000000000040 -S3154002E8900000000000000000000000000000000030 -S3154002E8A00000000000000000000000000000000020 -S3154002E8B00000000000000000000000000000000010 -S3154002E8C00000000000000000000000000000000000 -S3154002E8D000000000000000000000000000000000F0 -S3154002E8E000000000000000000000000000000000E0 -S3154002E8F000000000000000000000000000000000D0 -S3154002E90000000000000000000000000000000000BF -S3154002E91000000000000000000000000000000000AF -S3154002E920000000000000000000000000000000009F -S3154002E930000000000000000000000000000000008F -S3154002E940000000000000000000000000000000007F -S3154002E950000000000000000000000000000000006F -S3154002E960000000000000000000000000000000005F -S3154002E970000000000000000000000000000000004F -S3154002E980000000000000000000000000000000003F -S3154002E990000000000000000000000000000000002F -S3154002E9A0000000000000000000000000000000001F -S3154002E9B0000000000000000000000000000000000F -S3154002E9C000000000000000000000000000000000FF -S3154002E9D000000000000000000000000000000000EF -S3154002E9E000000000000000000000000000000000DF -S3154002E9F000000000000000000000000000000000CF -S3154002EA0000000000000000000000000000000000BE -S3154002EA1000000000000000000000000000000000AE -S3154002EA20000000000000000000000000000000009E -S3154002EA30000000000000000000000000000000008E -S3154002EA40000000000000000000000000000000007E -S3154002EA50000000000000000000000000000000006E -S3154002EA60000000000000000000000000000000005E -S3154002EA70000000000000000000000000000000004E -S3154002EA80000000000000000000000000000000003E -S3154002EA90000000000000000000000000000000002E -S3154002EAA0000000000000000000000000000000001E -S3154002EAB0000000000000000000000000000000000E -S3154002EAC000000000000000000000000000000000FE -S3154002EAD000000000000000000000000000000000EE -S3154002EAE000000000000000000000000000000000DE -S3154002EAF000000000000000000000000000000000CE -S3154002EB0000000000000000000000000000000000BD -S3154002EB1000000000000000000000000000000000AD -S3154002EB20000000000000000000000000000000009D -S3154002EB30000000000000000000000000000000008D -S3154002EB40000000000000000000000000000000007D -S3154002EB50000000000000000000000000000000006D -S3154002EB60000000000000000000000000000000005D -S3154002EB70000000000000000000000000000000004D -S3154002EB80000000000000000000000000000000003D -S3154002EB90000000000000000000000000000000002D -S3154002EBA0000000000000000000000000000000001D -S3154002EBB0000000000000000000000000000000000D -S3154002EBC000000000000000000000000000000000FD -S3154002EBD000000000000000000000000000000000ED -S3154002EBE000000000000000000000000000000000DD -S3154002EBF000000000000000000000000000000000CD -S3154002EC0000000000000000000000000000000000BC -S3154002EC1000000000000000000000000000000000AC -S3154002EC20000000000000000000000000000000009C -S3154002EC30000000000000000000000000000000008C -S3154002EC40000000000000000000000000000000007C -S3154002EC50000000000000000000000000000000006C -S3154002EC60000000000000000000000000000000005C -S3154002EC70000000000000000000000000000000004C -S3154002EC80000000000000000000000000000000003C -S3154002EC90000000000000000000000000000000002C -S3154002ECA0000000000000000000000000000000001C -S3154002ECB0000000000000000000000000000000000C -S3154002ECC000000000000000000000000000000000FC -S3154002ECD000000000000000000000000000000000EC -S3154002ECE000000000000000000000000000000000DC -S3154002ECF000000000000000000000000000000000CC -S3154002ED0000000000000000000000000000000000BB -S3154002ED1000000000000000000000000000000000AB -S3154002ED20000000000000000000000000000000009B -S3154002ED30000000000000000000000000000000008B -S3154002ED40000000000000000000000000000000007B -S3154002ED50000000000000000000000000000000006B -S3154002ED60000000000000000000000000000000005B -S3154002ED70000000000000000000000000000000004B -S3154002ED80000000000000000000000000000000003B -S3154002ED90000000000000000000000000000000002B -S3154002EDA0000000000000000000000000000000001B -S3154002EDB0000000000000000000000000000000000B -S3154002EDC000000000000000000000000000000000FB -S3154002EDD000000000000000000000000000000000EB -S3154002EDE000000000000000000000000000000000DB -S3154002EDF000000000000000000000000000000000CB -S3154002EE0000000000000000000000000000000000BA -S3154002EE1000000000000000000000000000000000AA -S3154002EE20000000000000000000000000000000009A -S3154002EE30000000000000000000000000000000008A -S3154002EE40000000000000000000000000000000007A -S3154002EE50000000000000000000000000000000006A -S3154002EE60000000000000000000000000000000005A -S3154002EE70000000000000000000000000000000004A -S3154002EE80000000000000000000000000000000003A -S3154002EE90000000000000000000000000000000002A -S3154002EEA0000000000000000000000000000000001A -S3154002EEB0000000000000000000000000000000000A -S3154002EEC000000000000000000000000000000000FA -S3154002EED000000000000000000000000000000000EA -S3154002EEE000000000000000000000000000000000DA -S3154002EEF000000000000000000000000000000000CA -S3154002EF0000000000000000000000000000000000B9 -S3154002EF1000000000000000000000000000000000A9 -S3154002EF200000000000000000000000000000000099 -S3154002EF300000000000000000000000000000000089 -S3154002EF400000000000000000000000000000000079 -S3154002EF500000000000000000000000000000000069 -S3154002EF600000000000000000000000000000000059 -S3154002EF700000000000000000000000000000000049 -S3154002EF800000000000000000000000000000000039 -S3154002EF900000000000000000000000000000000029 -S3154002EFA00000000000000000000000000000000019 -S3154002EFB00000000000000000000000000000000009 -S3154002EFC000000000000000000000000000000000F9 -S3154002EFD000000000000000000000000000000000E9 -S3154002EFE000000000000000000000000000000000D9 -S3154002EFF000000000000000000000000000000000C9 -S3154002F00000000000000000000000000000000000B8 -S3154002F01000000000000000000000000000000000A8 -S3154002F0200000000000000000000000000000000098 -S3154002F0300000000000000000000000000000000088 -S3154002F0400000000000000000000000000000000078 -S3154002F0500000000000000000000000000000000068 -S3154002F0600000000000000000000000000000000058 -S3154002F0700000000000000000000000000000000048 -S3154002F0800000000000000000000000000000000038 -S3154002F0900000000000000000000000000000000028 -S3154002F0A00000000000000000000000000000000018 -S3154002F0B00000000000000000000000000000000008 -S3154002F0C000000000000000000000000000000000F8 -S3154002F0D000000000000000000000000000000000E8 -S3154002F0E000000000000000000000000000000000D8 -S3154002F0F000000000000000000000000000000000C8 -S3154002F10000000000000000000000000000000000B7 -S3154002F11000000000000000000000000000000000A7 -S3154002F1200000000000000000000000000000000097 -S3154002F1300000000000000000000000000000000087 -S3154002F1400000000000000000000000000000000077 -S3154002F1500000000000000000000000000000000067 -S3154002F1600000000000000000000000000000000057 -S3154002F1700000000000000000000000000000000047 -S3154002F1800000000000000000000000000000000037 -S3154002F1900000000000000000000000000000000027 -S3154002F1A00000000000000000000000000000000017 -S3154002F1B00000000000000000000000000000000007 -S3154002F1C000000000000000000000000000000000F7 -S3154002F1D000000000000000000000000000000000E7 -S3154002F1E000000000000000000000000000000000D7 -S3154002F1F000000000000000000000000000000000C7 -S3154002F20000000000000000000000000000000000B6 -S3154002F21000000000000000000000000000000000A6 -S3154002F2200000000000000000000000000000000096 -S3154002F2300000000000000000000000000000000086 -S3154002F2400000000000000000000000000000000076 -S3154002F2500000000000000000000000000000000066 -S3154002F2600000000000000000000000000000000056 -S3154002F2700000000000000000000000000000000046 -S3154002F2800000000000000000000000000000000036 -S3154002F2900000000000000000000000000000000026 -S3154002F2A00000000000000000000000000000000016 -S3154002F2B00000000000000000000000000000000006 -S3154002F2C000000000000000000000000000000000F6 -S3154002F2D000000000000000000000000000000000E6 -S3154002F2E000000000000000000000000000000000D6 -S3154002F2F000000000000000000000000000000000C6 -S3154002F30000000000000000000000000000000000B5 -S3154002F31000000000000000000000000000000000A5 -S3154002F3200000000000000000000000000000000095 -S3154002F3300000000000000000000000000000000085 -S3154002F3400000000000000000000000000000000075 -S3154002F3500000000000000000000000000000000065 -S3154002F3600000000000000000000000000000000055 -S3154002F3700000000000000000000000000000000045 -S3154002F3800000000000000000000000000000000035 -S3154002F3900000000000000000000000000000000025 -S3154002F3A00000000000000000000000000000000015 -S3154002F3B00000000000000000000000000000000005 -S3154002F3C000000000000000000000000000000000F5 -S3154002F3D000000000000000000000000000000000E5 -S3154002F3E000000000000000000000000000000000D5 -S3154002F3F000000000000000000000000000000000C5 -S3154002F40000000000000000000000000000000000B4 -S3154002F41000000000000000000000000000000000A4 -S3154002F4200000000000000000000000000000000094 -S3154002F4300000000000000000000000000000000084 -S3154002F4400000000000000000000000000000000074 -S3154002F4500000000000000000000000000000000064 -S3154002F4600000000000000000000000000000000054 -S3154002F4700000000000000000000000000000000044 -S3154002F4800000000000000000000000000000000034 -S3154002F4900000000000000000000000000000000024 -S3154002F4A00000000000000000000000000000000014 -S3154002F4B00000000000000000000000000000000004 -S3154002F4C000000000000000000000000000000000F4 -S3154002F4D000000000000000000000000000000000E4 -S3154002F4E000000000000000000000000000000000D4 -S3154002F4F000000000000000000000000000000000C4 -S3154002F50000000000000000000000000000000000B3 -S3154002F51000000000000000000000000000000000A3 -S3154002F5200000000000000000000000000000000093 -S3154002F5300000000000000000000000000000000083 -S3154002F5400000000000000000000000000000000073 -S3154002F5500000000000000000000000000000000063 -S3154002F5600000000000000000000000000000000053 -S3154002F5700000000000000000000000000000000043 -S3154002F5800000000000000000000000000000000033 -S3154002F5900000000000000000000000000000000023 -S3154002F5A00000000000000000000000000000000013 -S3154002F5B00000000000000000000000000000000003 -S3154002F5C000000000000000000000000000000000F3 -S3154002F5D000000000000000000000000000000000E3 -S3154002F5E000000000000000000000000000000000D3 -S3154002F5F000000000000000000000000000000000C3 -S3154002F60000000000000000000000000000000000B2 -S3154002F61000000000000000000000000000000000A2 -S3154002F6200000000000000000000000000000000092 -S3154002F6300000000000000000000000000000000082 -S3154002F6400000000000000000000000000000000072 -S3154002F6500000000000000000000000000000000062 -S3154002F6600000000000000000000000000000000052 -S3154002F6700000000000000000000000000000000042 -S3154002F6800000000000000000000000000000000032 -S3154002F6900000000000000000000000000000000022 -S3154002F6A00000000000000000000000000000000012 -S3154002F6B00000000000000000000000000000000002 -S3154002F6C000000000000000000000000000000000F2 -S3154002F6D000000000000000000000000000000000E2 -S3154002F6E000000000000000000000000000000000D2 -S3154002F6F000000000000000000000000000000000C2 -S3154002F70000000000000000000000000000000000B1 -S3154002F71000000000000000000000000000000000A1 -S3154002F7200000000000000000000000000000000091 -S3154002F7300000000000000000000000000000000081 -S3154002F7400000000000000000000000000000000071 -S3154002F7500000000000000000000000000000000061 -S3154002F7600000000000000000000000000000000051 -S3154002F7700000000000000000000000000000000041 -S3154002F7800000000000000000000000000000000031 -S3154002F7900000000000000000000000000000000021 -S3154002F7A00000000000000000000000000000000011 -S3154002F7B00000000000000000000000000000000001 -S3154002F7C000000000000000000000000000000000F1 -S3154002F7D000000000000000000000000000000000E1 -S3154002F7E000000000000000000000000000000000D1 -S3154002F7F000000000000000000000000000000000C1 -S3154002F80000000000000000000000000000000000B0 -S3154002F81000000000000000000000000000000000A0 -S3154002F8200000000000000000000000000000000090 -S3154002F8300000000000000000000000000000000080 -S3154002F8400000000000000000000000000000000070 -S3154002F8500000000000000000000000000000000060 -S3154002F8600000000000000000000000000000000050 -S3154002F8700000000000000000000000000000000040 -S3154002F8800000000000000000000000000000000030 -S3154002F8900000000000000000000000000000000020 -S3154002F8A00000000000000000000000000000000010 -S3154002F8B00000000000000000000000000000000000 -S3154002F8C000000000000000000000000000000000F0 -S3154002F8D000000000000000000000000000000000E0 -S3154002F8E000000000000000000000000000000000D0 -S3154002F8F000000000000000000000000000000000C0 -S3154002F90000000000000000000000000000000000AF -S3154002F910000000000000000000000000000000009F -S3154002F920000000000000000000000000000000008F -S3154002F930000000000000000000000000000000007F -S3154002F940000000000000000000000000000000006F -S3154002F950000000000000000000000000000000005F -S3154002F960000000000000000000000000000000004F -S3154002F970000000000000000000000000000000003F -S3154002F980000000000000000000000000000000002F -S3154002F990000000000000000000000000000000001F -S3154002F9A0000000000000000000000000000000000F -S3154002F9B000000000000000000000000000000000FF -S3154002F9C000000000000000000000000000000000EF -S3154002F9D000000000000000000000000000000000DF -S3154002F9E000000000000000000000000000000000CF -S3154002F9F000000000000000000000000000000000BF -S3154002FA0000000000000000000000000000000000AE -S3154002FA10000000000000000000000000000000009E -S3154002FA20000000000000000000000000000000008E -S3154002FA30000000000000000000000000000000007E -S3154002FA40000000000000000000000000000000006E -S3154002FA50000000000000000000000000000000005E -S3154002FA60000000000000000000000000000000004E -S3154002FA70000000000000000000000000000000003E -S3154002FA80000000000000000000000000000000002E -S3154002FA90000000000000000000000000000000001E -S3154002FAA0000000000000000000000000000000000E -S3154002FAB000000000000000000000000000000000FE -S3154002FAC000000000000000000000000000000000EE -S3154002FAD000000000000000000000000000000000DE -S3154002FAE000000000000000000000000000000000CE -S3154002FAF000000000000000000000000000000000BE -S3154002FB0000000000000000000000000000000000AD -S3154002FB10000000000000000000000000000000009D -S3154002FB20000000000000000000000000000000008D -S3154002FB30000000000000000000000000000000007D -S3154002FB40000000000000000000000000000000006D -S3154002FB50000000000000000000000000000000005D -S3154002FB60000000000000000000000000000000004D -S3154002FB70000000000000000000000000000000003D -S3154002FB80000000000000000000000000000000002D -S3154002FB90000000000000000000000000000000001D -S3154002FBA0000000000000000000000000000000000D -S3154002FBB000000000000000000000000000000000FD -S3154002FBC000000000000000000000000000000000ED -S3154002FBD000000000000000000000000000000000DD -S3154002FBE000000000000000000000000000000000CD -S3154002FBF000000000000000000000000000000000BD -S3154002FC0000000000000000000000000000000000AC -S3154002FC10000000000000000000000000000000009C -S3154002FC20000000000000000000000000000000008C -S3154002FC30000000000000000000000000000000007C -S3154002FC40000000000000000000000000000000006C -S3154002FC50000000000000000000000000000000005C -S3154002FC60000000000000000000000000000000004C -S3154002FC70000000000000000000000000000000003C -S3154002FC80000000000000000000000000000000002C -S3154002FC90000000000000000000000000000000001C -S3154002FCA0000000000000000000000000000000000C -S3154002FCB000000000000000000000000000000000FC -S3154002FCC000000000000000000000000000000000EC -S3154002FCD000000000000000000000000000000000DC -S3154002FCE000000000000000000000000000000000CC -S3154002FCF000000000000000000000000000000000BC -S3154002FD0000000000000000000000000000000000AB -S3154002FD10000000000000000000000000000000009B -S3154002FD20000000000000000000000000000000008B -S3154002FD30000000000000000000000000000000007B -S3154002FD40000000000000000000000000000000006B -S3154002FD50000000000000000000000000000000005B -S3154002FD60000000000000000000000000000000004B -S3154002FD70000000000000000000000000000000003B -S3154002FD80000000000000000000000000000000002B -S3154002FD90000000000000000000000000000000001B -S3154002FDA0000000000000000000000000000000000B -S3154002FDB000000000000000000000000000000000FB -S3154002FDC000000000000000000000000000000000EB -S3154002FDD000000000000000000000000000000000DB -S3154002FDE000000000000000000000000000000000CB -S3154002FDF000000000000000000000000000000000BB -S3154002FE0000000000000000000000000000000000AA -S3154002FE10000000000000000000000000000000009A -S3154002FE20000000000000000000000000000000008A -S3154002FE30000000000000000000000000000000007A -S3154002FE40000000000000000000000000000000006A -S3154002FE50000000000000000000000000000000005A -S3154002FE60000000000000000000000000000000004A -S3154002FE70000000000000000000000000000000003A -S3154002FE80000000000000000000000000000000002A -S3154002FE90000000000000000000000000000000001A -S3154002FEA0000000000000000000000000000000000A -S3154002FEB000000000000000000000000000000000FA -S3154002FEC000000000000000000000000000000000EA -S3154002FED000000000000000000000000000000000DA -S3154002FEE000000000000000000000000000000000CA -S3154002FEF000000000000000000000000000000000BA -S3154002FF0000000000000000000000000000000000A9 -S3154002FF100000000000000000000000000000000099 -S3154002FF200000000000000000000000000000000089 -S3154002FF300000000000000000000000000000000079 -S3154002FF400000000000000000000000000000000069 -S3154002FF500000000000000000000000000000000059 -S3154002FF600000000000000000000000000000000049 -S3154002FF700000000000000000000000000000000039 -S3154002FF800000000000000000000000000000000029 -S3154002FF900000000000000000000000000000000019 -S3154002FFA00000000000000000000000000000000009 -S3154002FFB000000000000000000000000000000000F9 -S3154002FFC000000000000000000000000000000000E9 -S3154002FFD000000000000000000000000000000000D9 -S3154002FFE000000000000000000000000000000000C9 -S3154002FFF000000000000000000000000000000000B9 -S3154003000000000000000000000000000000000000A7 -S315400300100000000000000000000000000000000097 -S315400300200000000000000000000000000000000087 -S315400300300000000000000000000000000000000077 -S315400300400000000000000000000000000000000067 -S315400300500000000000000000000000000000000057 -S315400300600000000000000000000000000000000047 -S315400300700000000000000000000000000000000037 -S315400300800000000000000000000000000000000027 -S315400300900000000000000000000000000000000017 -S315400300A00000000000000000000000000000000007 -S315400300B000000000000000000000000000000000F7 -S315400300C000000000000000000000000000000000E7 -S315400300D000000000000000000000000000000000D7 -S315400300E000000000000000000000000000000000C7 -S315400300F000000000000000000000000000000000B7 -S3154003010000000000000000000000000000000000A6 -S315400301100000000000000000000000000000000096 -S315400301200000000000000000000000000000000086 -S315400301300000000000000000000000000000000076 -S315400301400000000000000000000000000000000066 -S315400301500000000000000000000000000000000056 -S315400301600000000000000000000000000000000046 -S315400301700000000000000000000000000000000036 -S315400301800000000000000000000000000000000026 -S315400301900000000000000000000000000000000016 -S315400301A00000000000000000000000000000000006 -S315400301B000000000000000000000000000000000F6 -S315400301C000000000000000000000000000000000E6 -S315400301D000000000000000000000000000000000D6 -S315400301E000000000000000000000000000000000C6 -S315400301F000000000000000000000000000000000B6 -S3154003020000000000000000000000000000000000A5 -S315400302100000000000000000000000000000000095 -S315400302200000000000000000000000000000000085 -S315400302300000000000000000000000000000000075 -S315400302400000000000000000000000000000000065 -S315400302500000000000000000000000000000000055 -S315400302600000000000000000000000000000000045 -S315400302700000000000000000000000000000000035 -S315400302800000000000000000000000000000000025 -S315400302900000000000000000000000000000000015 -S315400302A00000000000000000000000000000000005 -S315400302B000000000000000000000000000000000F5 -S315400302C000000000000000000000000000000000E5 -S315400302D000000000000000000000000000000000D5 -S315400302E000000000000000000000000000000000C5 -S315400302F000000000000000000000000000000000B5 -S3154003030000000000000000000000000000000000A4 -S315400303100000000000000000000000000000000094 -S315400303200000000000000000000000000000000084 -S315400303300000000000000000000000000000000074 -S315400303400000000000000000000000000000000064 -S315400303500000000000000000000000000000000054 -S315400303600000000000000000000000000000000044 -S315400303700000000000000000000000000000000034 -S315400303800000000000000000000000000000000024 -S315400303900000000000000000000000000000000014 -S315400303A00000000000000000000000000000000004 -S315400303B000000000000000000000000000000000F4 -S315400303C000000000000000000000000000000000E4 -S315400303D000000000000000000000000000000000D4 -S315400303E000000000000000000000000000000000C4 -S315400303F000000000000000000000000000000000B4 -S3154003040000000000000000000000000000000000A3 -S315400304100000000000000000000000000000000093 -S315400304200000000000000000000000000000000083 -S315400304300000000000000000000000000000000073 -S315400304400000000000000000000000000000000063 -S315400304500000000000000000000000000000000053 -S315400304600000000000000000000000000000000043 -S315400304700000000000000000000000000000000033 -S315400304800000000000000000000000000000000023 -S315400304900000000000000000000000000000000013 -S315400304A00000000000000000000000000000000003 -S315400304B000000000000000000000000000000000F3 -S315400304C000000000000000000000000000000000E3 -S315400304D000000000000000000000000000000000D3 -S315400304E000000000000000000000000000000000C3 -S315400304F000000000000000000000000000000000B3 -S3154003050000000000000000000000000000000000A2 -S315400305100000000000000000000000000000000092 -S315400305200000000000000000000000000000000082 -S315400305300000000000000000000000000000000072 -S315400305400000000000000000000000000000000062 -S315400305500000000000000000000000000000000052 -S315400305600000000000000000000000000000000042 -S315400305700000000000000000000000000000000032 -S315400305800000000000000000000000000000000022 -S315400305900000000000000000000000000000000012 -S315400305A00000000000000000000000000000000002 -S315400305B000000000000000000000000000000000F2 -S315400305C000000000000000000000000000000000E2 -S315400305D000000000000000000000000000000000D2 -S315400305E000000000000000000000000000000000C2 -S315400305F000000000000000000000000000000000B2 -S3154003060000000000000000000000000000000000A1 -S315400306100000000000000000000000000000000091 -S315400306200000000000000000000000000000000081 -S315400306300000000000000000000000000000000071 -S315400306400000000000000000000000000000000061 -S315400306500000000000000000000000000000000051 -S315400306600000000000000000000000000000000041 -S315400306700000000000000000000000000000000031 -S315400306800000000000000000000000000000000021 -S315400306900000000000000000000000000000000011 -S315400306A00000000000000000000000000000000001 -S315400306B000000000000000000000000000000000F1 -S315400306C000000000000000000000000000000000E1 -S315400306D000000000000000000000000000000000D1 -S315400306E000000000000000000000000000000000C1 -S315400306F000000000000000000000000000000000B1 -S3154003070000000000000000000000000000000000A0 -S315400307100000000000000000000000000000000090 -S315400307200000000000000000000000000000000080 -S315400307300000000000000000000000000000000070 -S315400307400000000000000000000000000000000060 -S315400307500000000000000000000000000000000050 -S315400307600000000000000000000000000000000040 -S315400307700000000000000000000000000000000030 -S315400307800000000000000000000000000000000020 -S315400307900000000000000000000000000000000010 -S315400307A00000000000000000000000000000000000 -S315400307B000000000000000000000000000000000F0 -S315400307C000000000000000000000000000000000E0 -S315400307D000000000000000000000000000000000D0 -S315400307E000000000000000000000000000000000C0 -S315400307F000000000000000000000000000000000B0 -S31540030800000000000000000000000000000000009F -S31540030810000000000000000000000000000000008F -S31540030820000000000000000000000000000000007F -S31540030830000000000000000000000000000000006F -S31540030840000000000000000000000000000000005F -S31540030850000000000000000000000000000000004F -S31540030860000000000000000000000000000000003F -S31540030870000000000000000000000000000000002F -S31540030880000000000000000000000000000000001F -S31540030890000000000000000000000000000000000F -S315400308A000000000000000000000000000000000FF -S315400308B000000000000000000000000000000000EF -S315400308C000000000000000000000000000000000DF -S315400308D000000000000000000000000000000000CF -S315400308E000000000000000000000000000000000BF -S315400308F000000000000000000000000000000000AF -S31540030900000000000000000000000000000000009E -S31540030910000000000000000000000000000000008E -S31540030920000000000000000000000000000000007E -S31540030930000000000000000000000000000000006E -S31540030940000000000000000000000000000000005E -S31540030950000000000000000000000000000000004E -S31540030960000000000000000000000000000000003E -S31540030970000000000000000000000000000000002E -S31540030980000000000000000000000000000000001E -S31540030990000000000000000000000000000000000E -S315400309A000000000000000000000000000000000FE -S315400309B000000000000000000000000000000000EE -S315400309C000000000000000000000000000000000DE -S315400309D000000000000000000000000000000000CE -S315400309E000000000000000000000000000000000BE -S315400309F000000000000000000000000000000000AE -S31540030A00000000000000000000000000000000009D -S31540030A10000000000000000000000000000000008D -S31540030A20000000000000000000000000000000007D -S31540030A30000000000000000000000000000000006D -S31540030A40000000000000000000000000000000005D -S31540030A50000000000000000000000000000000004D -S31540030A60000000000000000000000000000000003D -S31540030A70000000000000000000000000000000002D -S31540030A80000000000000000000000000000000001D -S31540030A90000000000000000000000000000000000D -S31540030AA000000000000000000000000000000000FD -S31540030AB000000000000000000000000000000000ED -S31540030AC000000000000000000000000000000000DD -S31540030AD000000000000000000000000000000000CD -S31540030AE000000000000000000000000000000000BD -S31540030AF000000000000000000000000000000000AD -S31540030B00000000000000000000000000000000009C -S31540030B10000000000000000000000000000000008C -S31540030B20000000000000000000000000000000007C -S31540030B30000000000000000000000000000000006C -S31540030B40000000000000000000000000000000005C -S31540030B50000000000000000000000000000000004C -S31540030B60000000000000000000000000000000003C -S31540030B70000000000000000000000000000000002C -S31540030B80000000000000000000000000000000001C -S31540030B90000000000000000000000000000000000C -S31540030BA000000000000000000000000000000000FC -S31540030BB000000000000000000000000000000000EC -S31540030BC000000000000000000000000000000000DC -S31540030BD000000000000000000000000000000000CC -S31540030BE000000000000000000000000000000000BC -S31540030BF000000000000000000000000000000000AC -S31540030C00000000000000000000000000000000009B -S31540030C10000000000000000000000000000000008B -S31540030C20000000000000000000000000000000007B -S31540030C30000000000000000000000000000000006B -S31540030C40000000000000000000000000000000005B -S31540030C50000000000000000000000000000000004B -S31540030C60000000000000000000000000000000003B -S31540030C70000000000000000000000000000000002B -S31540030C80000000000000000000000000000000001B -S31540030C90000000000000000000000000000000000B -S31540030CA000000000000000000000000000000000FB -S31540030CB000000000000000000000000000000000EB -S31540030CC000000000000000000000000000000000DB -S31540030CD000000000000000000000000000000000CB -S31540030CE000000000000000000000000000000000BB -S31540030CF000000000000000000000000000000000AB -S31540030D00000000000000000000000000000000009A -S31540030D10000000000000000000000000000000008A -S31540030D20000000000000000000000000000000007A -S31540030D30000000000000000000000000000000006A -S31540030D40000000000000000000000000000000005A -S31540030D50000000000000000000000000000000004A -S31540030D60000000000000000000000000000000003A -S31540030D70000000000000000000000000000000002A -S31540030D80000000000000000000000000000000001A -S31540030D90000000000000000000000000000000000A -S31540030DA000000000000000000000000000000000FA -S31540030DB000000000000000000000000000000000EA -S31540030DC000000000000000000000000000000000DA -S31540030DD000000000000000000000000000000000CA -S31540030DE000000000000000000000000000000000BA -S31540030DF000000000000000000000000000000000AA -S31540030E000000000000000000000000000000000099 -S31540030E100000000000000000000000000000000089 -S31540030E200000000000000000000000000000000079 -S31540030E300000000000000000000000000000000069 -S31540030E400000000000000000000000000000000059 -S31540030E500000000000000000000000000000000049 -S31540030E600000000000000000000000000000000039 -S31540030E700000000000000000000000000000000029 -S31540030E800000000000000000000000000000000019 -S31540030E900000000000000000000000000000000009 -S31540030EA000000000000000000000000000000000F9 -S31540030EB000000000000000000000000000000000E9 -S31540030EC000000000000000000000000000000000D9 -S31540030ED000000000000000000000000000000000C9 -S31540030EE000000000000000000000000000000000B9 -S31540030EF000000000000000000000000000000000A9 -S31540030F000000000000000000000000000000000098 -S31540030F100000000000000000000000000000000088 -S31540030F200000000000000000000000000000000078 -S31540030F300000000000000000000000000000000068 -S31540030F400000000000000000000000000000000058 -S31540030F500000000000000000000000000000000048 -S31540030F600000000000000000000000000000000038 -S31540030F700000000000000000000000000000000028 -S31540030F800000000000000000000000000000000018 -S31540030F900000000000000000000000000000000008 -S31540030FA000000000000000000000000000000000F8 -S31540030FB000000000000000000000000000000000E8 -S31540030FC000000000000000000000000000000000D8 -S31540030FD000000000000000000000000000000000C8 -S31540030FE000000000000000000000000000000000B8 -S31540030FF000000000000000000000000000000000A8 -S315400310000000000000000000000000000000000097 -S315400310100000000000000000000000000000000087 -S315400310200000000000000000000000000000000077 -S315400310300000000000000000000000000000000067 -S315400310400000000000000000000000000000000057 -S315400310500000000000000000000000000000000047 -S315400310600000000000000000000000000000000037 -S315400310700000000000000000000000000000000027 -S315400310800000000000000000000000000000000017 -S315400310900000000000000000000000000000000007 -S315400310A000000000000000000000000000000000F7 -S315400310B000000000000000000000000000000000E7 -S315400310C000000000000000000000000000000000D7 -S315400310D000000000000000000000000000000000C7 -S315400310E000000000000000000000000000000000B7 -S315400310F000000000000000000000000000000000A7 -S315400311000000000000000000000000000000000096 -S315400311100000000000000000000000000000000086 -S315400311200000000000000000000000000000000076 -S315400311300000000000000000000000000000000066 -S315400311400000000000000000000000000000000056 -S315400311500000000000000000000000000000000046 -S315400311600000000000000000000000000000000036 -S315400311700000000000000000000000000000000026 -S315400311800000000000000000000000000000000016 -S315400311900000000000000000000000000000000006 -S315400311A000000000000000000000000000000000F6 -S315400311B000000000000000000000000000000000E6 -S315400311C000000000000000000000000000000000D6 -S315400311D000000000000000000000000000000000C6 -S315400311E000000000000000000000000000000000B6 -S315400311F000000000000000000000000000000000A6 -S315400312000000000000000000000000000000000095 -S315400312100000000000000000000000000000000085 -S315400312200000000000000000000000000000000075 -S315400312300000000000000000000000000000000065 -S315400312400000000000000000000000000000000055 -S315400312500000000000000000000000000000000045 -S315400312600000000000000000000000000000000035 -S315400312700000000000000000000000000000000025 -S315400312800000000000000000000000000000000015 -S315400312900000000000000000000000000000000005 -S315400312A000000000000000000000000000000000F5 -S315400312B000000000000000000000000000000000E5 -S315400312C000000000000000000000000000000000D5 -S315400312D000000000000000000000000000000000C5 -S315400312E000000000000000000000000000000000B5 -S315400312F000000000000000000000000000000000A5 -S315400313000000000000000000000000000000000094 -S315400313100000000000000000000000000000000084 -S315400313200000000000000000000000000000000074 -S315400313300000000000000000000000000000000064 -S315400313400000000000000000000000000000000054 -S315400313500000000000000000000000000000000044 -S315400313600000000000000000000000000000000034 -S315400313700000000000000000000000000000000024 -S315400313800000000000000000000000000000000014 -S315400313900000000000000000000000000000000004 -S315400313A000000000000000000000000000000000F4 -S315400313B000000000000000000000000000000000E4 -S315400313C000000000000000000000000000000000D4 -S315400313D000000000000000000000000000000000C4 -S315400313E000000000000000000000000000000000B4 -S315400313F000000000000000000000000000000000A4 -S315400314000000000000000000000000000000000093 -S315400314100000000000000000000000000000000083 -S315400314200000000000000000000000000000000073 -S315400314300000000000000000000000000000000063 -S315400314400000000000000000000000000000000053 -S315400314500000000000000000000000000000000043 -S315400314600000000000000000000000000000000033 -S315400314700000000000000000000000000000000023 -S315400314800000000000000000000000000000000013 -S315400314900000000000000000000000000000000003 -S315400314A000000000000000000000000000000000F3 -S315400314B000000000000000000000000000000000E3 -S315400314C000000000000000000000000000000000D3 -S315400314D000000000000000000000000000000000C3 -S315400314E000000000000000000000000000000000B3 -S315400314F000000000000000000000000000000000A3 -S315400315000000000000000000000000000000000092 -S315400315100000000000000000000000000000000082 -S315400315200000000000000000000000000000000072 -S315400315300000000000000000000000000000000062 -S315400315400000000000000000000000000000000052 -S315400315500000000000000000000000000000000042 -S315400315600000000000000000000000000000000032 -S315400315700000000000000000000000000000000022 -S315400315800000000000000000000000000000000012 -S315400315900000000000000000000000000000000002 -S315400315A000000000000000000000000000000000F2 -S315400315B000000000000000000000000000000000E2 -S315400315C000000000000000000000000000000000D2 -S315400315D000000000000000000000000000000000C2 -S315400315E000000000000000000000000000000000B2 -S315400315F000000000000000000000000000000000A2 -S315400316000000000000000000000000000000000091 -S315400316100000000000000000000000000000000081 -S315400316200000000000000000000000000000000071 -S315400316300000000000000000000000000000000061 -S315400316400000000000000000000000000000000051 -S315400316500000000000000000000000000000000041 -S315400316600000000000000000000000000000000031 -S315400316700000000000000000000000000000000021 -S315400316800000000000000000000000000000000011 -S315400316900000000000000000000000000000000001 -S315400316A000000000000000000000000000000000F1 -S315400316B000000000000000000000000000000000E1 -S315400316C000000000000000000000000000000000D1 -S315400316D000000000000000000000000000000000C1 -S315400316E000000000000000000000000000000000B1 -S315400316F000000000000000000000000000000000A1 -S315400317000000000000000000000000000000000090 -S315400317100000000000000000000000000000000080 -S315400317200000000000000000000000000000000070 -S315400317300000000000000000000000000000000060 -S315400317400000000000000000000000000000000050 -S315400317500000000000000000000000000000000040 -S315400317600000000000000000000000000000000030 -S315400317700000000000000000000000000000000020 -S315400317800000000000000000000000000000000010 -S315400317900000000000000000000000000000000000 -S315400317A000000000000000000000000000000000F0 -S315400317B000000000000000000000000000000000E0 -S315400317C000000000000000000000000000000000D0 -S315400317D000000000000000000000000000000000C0 -S315400317E000000000000000000000000000000000B0 -S315400317F000000000000000000000000000000000A0 -S31540031800000000000000000000000000000000008F -S31540031810000000000000000000000000000000007F -S31540031820000000000000000000000000000000006F -S31540031830000000000000000000000000000000005F -S31540031840000000000000000000000000000000004F -S31540031850000000000000000000000000000000003F -S31540031860000000000000000000000000000000002F -S31540031870000000000000000000000000000000001F -S31540031880000000000000000000000000000000000F -S3154003189000000000000000000000000000000000FF -S315400318A000000000000000000000000000000000EF -S315400318B000000000000000000000000000000000DF -S315400318C000000000000000000000000000000000CF -S315400318D000000000000000000000000000000000BF -S315400318E000000000000000000000000000000000AF -S315400318F0000000000000000000000000000000009F -S31540031900000000000000000000000000000000008E -S31540031910000000000000000000000000000000007E -S31540031920000000000000000000000000000000006E -S31540031930000000000000000000000000000000005E -S31540031940000000000000000000000000000000004E -S31540031950000000000000000000000000000000003E -S31540031960000000000000000000000000000000002E -S31540031970000000000000000000000000000000001E -S31540031980000000000000000000000000000000000E -S3154003199000000000000000000000000000000000FE -S315400319A000000000000000000000000000000000EE -S315400319B000000000000000000000000000000000DE -S315400319C000000000000000000000000000000000CE -S315400319D000000000000000000000000000000000BE -S315400319E000000000000000000000000000000000AE -S315400319F0000000000000000000000000000000009E -S31540031A00000000000000000000000000000000008D -S31540031A10000000000000000000000000000000007D -S31540031A20000000000000000000000000000000006D -S31540031A30000000000000000000000000000000005D -S31540031A40000000000000000000000000000000004D -S31540031A50000000000000000000000000000000003D -S31540031A60000000000000000000000000000000002D -S31540031A70000000000000000000000000000000001D -S31540031A80000000000000000000000000000000000D -S31540031A9000000000000000000000000000000000FD -S31540031AA000000000000000000000000000000000ED -S31540031AB000000000000000000000000000000000DD -S31540031AC000000000000000000000000000000000CD -S31540031AD000000000000000000000000000000000BD -S31540031AE000000000000000000000000000000000AD -S31540031AF0000000000000000000000000000000009D -S31540031B00000000000000000000000000000000008C -S31540031B10000000000000000000000000000000007C -S31540031B20000000000000000000000000000000006C -S31540031B30000000000000000000000000000000005C -S31540031B40000000000000000000000000000000004C -S31540031B50000000000000000000000000000000003C -S31540031B60000000000000000000000000000000002C -S31540031B70000000000000000000000000000000001C -S31540031B80000000000000000000000000000000000C -S31540031B9000000000000000000000000000000000FC -S31540031BA000000000000000000000000000000000EC -S31540031BB000000000000000000000000000000000DC -S31540031BC000000000000000000000000000000000CC -S31540031BD000000000000000000000000000000000BC -S31540031BE000000000000000000000000000000000AC -S31540031BF0000000000000000000000000000000009C -S31540031C00000000000000000000000000000000008B -S31540031C10000000000000000000000000000000007B -S31540031C20000000000000000000000000000000006B -S31540031C30000000000000000000000000000000005B -S31540031C40000000000000000000000000000000004B -S31540031C50000000000000000000000000000000003B -S31540031C60000000000000000000000000000000002B -S31540031C70000000000000000000000000000000001B -S31540031C80000000000000000000000000000000000B -S31540031C9000000000000000000000000000000000FB -S31540031CA000000000000000000000000000000000EB -S31540031CB000000000000000000000000000000000DB -S31540031CC000000000000000000000000000000000CB -S31540031CD000000000000000000000000000000000BB -S31540031CE000000000000000000000000000000000AB -S31540031CF0000000000000000000000000000000009B -S31540031D00000000000000000000000000000000008A -S31540031D10000000000000000000000000000000007A -S31540031D20000000000000000000000000000000006A -S31540031D30000000000000000000000000000000005A -S31540031D40000000000000000000000000000000004A -S31540031D50000000000000000000000000000000003A -S31540031D60000000000000000000000000000000002A -S31540031D70000000000000000000000000000000001A -S31540031D80000000000000000000000000000000000A -S31540031D9000000000000000000000000000000000FA -S31540031DA000000000000000000000000000000000EA -S31540031DB000000000000000000000000000000000DA -S31540031DC000000000000000000000000000000000CA -S31540031DD000000000000000000000000000000000BA -S31540031DE000000000000000000000000000000000AA -S31540031DF0000000000000000000000000000000009A -S31540031E000000000000000000000000000000000089 -S31540031E100000000000000000000000000000000079 -S31540031E200000000000000000000000000000000069 -S31540031E300000000000000000000000000000000059 -S31540031E400000000000000000000000000000000049 -S31540031E500000000000000000000000000000000039 -S31540031E600000000000000000000000000000000029 -S31540031E700000000000000000000000000000000019 -S31540031E800000000000000000000000000000000009 -S31540031E9000000000000000000000000000000000F9 -S31540031EA000000000000000000000000000000000E9 -S31540031EB000000000000000000000000000000000D9 -S31540031EC000000000000000000000000000000000C9 -S31540031ED000000000000000000000000000000000B9 -S31540031EE000000000000000000000000000000000A9 -S31540031EF00000000000000000000000000000000099 -S31540031F000000000000000000000000000000000088 -S31540031F100000000000000000000000000000000078 -S31540031F200000000000000000000000000000000068 -S31540031F300000000000000000000000000000000058 -S31540031F400000000000000000000000000000000048 -S31540031F500000000000000000000000000000000038 -S31540031F600000000000000000000000000000000028 -S31540031F700000000000000000000000000000000018 -S31540031F800000000000000000000000000000000008 -S31540031F9000000000000000000000000000000000F8 -S31540031FA000000000000000000000000000000000E8 -S31540031FB000000000000000000000000000000000D8 -S31540031FC000000000000000000000000000000000C8 -S31540031FD000000000000000000000000000000000B8 -S31540031FE000000000000000000000000000000000A8 -S31540031FF00000000000000000000000000000000098 -S315400320000000000000000000000000000000000087 -S315400320100000000000000000000000000000000077 -S315400320200000000000000000000000000000000067 -S315400320300000000000000000000000000000000057 -S315400320400000000000000000000000000000000047 -S315400320500000000000000000000000000000000037 -S315400320600000000000000000000000000000000027 -S315400320700000000000000000000000000000000017 -S315400320800000000000000000000000000000000007 -S3154003209000000000000000000000000000000000F7 -S315400320A000000000000000000000000000000000E7 -S315400320B000000000000000000000000000000000D7 -S315400320C000000000000000000000000000000000C7 -S315400320D000000000000000000000000000000000B7 -S315400320E000000000000000000000000000000000A7 -S315400320F00000000000000000000000000000000097 -S315400321000000000000000000000000000000000086 -S315400321100000000000000000000000000000000076 -S315400321200000000000000000000000000000000066 -S315400321300000000000000000000000000000000056 -S315400321400000000000000000000000000000000046 -S315400321500000000000000000000000000000000036 -S315400321600000000000000000000000000000000026 -S315400321700000000000000000000000000000000016 -S315400321800000000000000000000000000000000006 -S3154003219000000000000000000000000000000000F6 -S315400321A000000000000000000000000000000000E6 -S315400321B000000000000000000000000000000000D6 -S315400321C000000000000000000000000000000000C6 -S315400321D000000000000000000000000000000000B6 -S315400321E000000000000000000000000000000000A6 -S315400321F00000000000000000000000000000000096 -S315400322000000000000000000000000000000000085 -S315400322100000000000000000000000000000000075 -S315400322200000000000000000000000000000000065 -S315400322300000000000000000000000000000000055 -S315400322400000000000000000000000000000000045 -S315400322500000000000000000000000000000000035 -S315400322600000000000000000000000000000000025 -S315400322700000000000000000000000000000000015 -S315400322800000000000000000000000000000000005 -S3154003229000000000000000000000000000000000F5 -S315400322A000000000000000000000000000000000E5 -S315400322B000000000000000000000000000000000D5 -S315400322C000000000000000000000000000000000C5 -S315400322D000000000000000000000000000000000B5 -S315400322E000000000000000000000000000000000A5 -S315400322F00000000000000000000000000000000095 -S315400323000000000000000000000000000000000084 -S315400323100000000000000000000000000000000074 -S315400323200000000000000000000000000000000064 -S315400323300000000000000000000000000000000054 -S315400323400000000000000000000000000000000044 -S315400323500000000000000000000000000000000034 -S315400323600000000000000000000000000000000024 -S315400323700000000000000000000000000000000014 -S315400323800000000000000000000000000000000004 -S3154003239000000000000000000000000000000000F4 -S315400323A000000000000000000000000000000000E4 -S315400323B000000000000000000000000000000000D4 -S315400323C000000000000000000000000000000000C4 -S315400323D000000000000000000000000000000000B4 -S315400323E000000000000000000000000000000000A4 -S315400323F00000000000000000000000000000000094 -S315400324000000000000000000000000000000000083 -S315400324100000000000000000000000000000000073 -S315400324200000000000000000000000000000000063 -S315400324300000000000000000000000000000000053 -S315400324400000000000000000000000000000000043 -S315400324500000000000000000000000000000000033 -S315400324600000000000000000000000000000000023 -S315400324700000000000000000000000000000000013 -S315400324800000000000000000000000000000000003 -S3154003249000000000000000000000000000000000F3 -S315400324A000000000000000000000000000000000E3 -S315400324B000000000000000000000000000000000D3 -S315400324C000000000000000000000000000000000C3 -S315400324D000000000000000000000000000000000B3 -S315400324E000000000000000000000000000000000A3 -S315400324F00000000000000000000000000000000093 -S315400325000000000000000000000000000000000082 -S315400325100000000000000000000000000000000072 -S315400325200000000000000000000000000000000062 -S315400325300000000000000000000000000000000052 -S315400325400000000000000000000000000000000042 -S315400325500000000000000000000000000000000032 -S315400325600000000000000000000000000000000022 -S315400325700000000000000000000000000000000012 -S315400325800000000000000000000000000000000002 -S3154003259000000000000000000000000000000000F2 -S315400325A000000000000000000000000000000000E2 -S315400325B000000000000000000000000000000000D2 -S315400325C000000000000000000000000000000000C2 -S315400325D000000000000000000000000000000000B2 -S315400325E000000000000000000000000000000000A2 -S315400325F00000000000000000000000000000000092 -S315400326000000000000000000000000000000000081 -S315400326100000000000000000000000000000000071 -S315400326200000000000000000000000000000000061 -S315400326300000000000000000000000000000000051 -S315400326400000000000000000000000000000000041 -S315400326500000000000000000000000000000000031 -S315400326600000000000000000000000000000000021 -S315400326700000000000000000000000000000000011 -S315400326800000000000000000000000000000000001 -S3154003269000000000000000000000000000000000F1 -S315400326A000000000000000000000000000000000E1 -S315400326B000000000000000000000000000000000D1 -S315400326C000000000000000000000000000000000C1 -S315400326D000000000000000000000000000000000B1 -S315400326E000000000000000000000000000000000A1 -S315400326F00000000000000000000000000000000091 -S315400327000000000000000000000000000000000080 -S315400327100000000000000000000000000000000070 -S315400327200000000000000000000000000000000060 -S315400327300000000000000000000000000000000050 -S315400327400000000000000000000000000000000040 -S315400327500000000000000000000000000000000030 -S315400327600000000000000000000000000000000020 -S315400327700000000000000000000000000000000010 -S315400327800000000000000000000000000000000000 -S3154003279000000000000000000000000000000000F0 -S315400327A000000000000000000000000000000000E0 -S315400327B000000000000000000000000000000000D0 -S315400327C000000000000000000000000000000000C0 -S315400327D000000000000000000000000000000000B0 -S315400327E000000000000000000000000000000000A0 -S315400327F00000000000000000000000000000000090 -S31540032800000000000000000000000000000000007F -S31540032810000000000000000000000000000000006F -S31540032820000000000000000000000000000000005F -S31540032830000000000000000000000000000000004F -S31540032840000000000000000000000000000000003F -S31540032850000000000000000000000000000000002F -S31540032860000000000000000000000000000000001F -S31540032870000000000000000000000000000000000F -S3154003288000000000000000000000000000000000FF -S3154003289000000000000000000000000000000000EF -S315400328A000000000000000000000000000000000DF -S315400328B000000000000000000000000000000000CF -S315400328C000000000000000000000000000000000BF -S315400328D000000000000000000000000000000000AF -S315400328E0000000000000000000000000000000009F -S315400328F0000000000000000000000000000000008F -S31540032900000000000000000000000000000000007E -S31540032910000000000000000000000000000000006E -S31540032920000000000000000000000000000000005E -S31540032930000000000000000000000000000000004E -S31540032940000000000000000000000000000000003E -S31540032950000000000000000000000000000000002E -S31540032960000000000000000000000000000000001E -S31540032970000000000000000000000000000000000E -S3154003298000000000000000000000000000000000FE -S3154003299000000000000000000000000000000000EE -S315400329A000000000000000000000000000000000DE -S315400329B000000000000000000000000000000000CE -S315400329C000000000000000000000000000000000BE -S315400329D000000000000000000000000000000000AE -S315400329E0000000000000000000000000000000009E -S315400329F0000000000000000000000000000000008E -S31540032A00000000000000000000000000000000007D -S31540032A10000000000000000000000000000000006D -S31540032A20000000000000000000000000000000005D -S31540032A30000000000000000000000000000000004D -S31540032A40000000000000000000000000000000003D -S31540032A50000000000000000000000000000000002D -S31540032A60000000000000000000000000000000001D -S31540032A70000000000000000000000000000000000D -S31540032A8000000000000000000000000000000000FD -S31540032A9000000000000000000000000000000000ED -S31540032AA000000000000000000000000000000000DD -S31540032AB000000000000000000000000000000000CD -S31540032AC000000000000000000000000000000000BD -S31540032AD000000000000000000000000000000000AD -S31540032AE0000000000000000000000000000000009D -S31540032AF0000000000000000000000000000000008D -S31540032B00000000000000000000000000000000007C -S31540032B10000000000000000000000000000000006C -S31540032B20000000000000000000000000000000005C -S31540032B30000000000000000000000000000000004C -S31540032B40000000000000000000000000000000003C -S31540032B50000000000000000000000000000000002C -S31540032B60000000000000000000000000000000001C -S31540032B70000000000000000000000000000000000C -S31540032B8000000000000000000000000000000000FC -S31540032B9000000000000000000000000000000000EC -S31540032BA000000000000000000000000000000000DC -S31540032BB000000000000000000000000000000000CC -S31540032BC000000000000000000000000000000000BC -S31540032BD000000000000000000000000000000000AC -S31540032BE0000000000000000000000000000000009C -S31540032BF0000000000000000000000000000000008C -S31540032C00000000000000000000000000000000007B -S31540032C10000000000000000000000000000000006B -S31540032C20000000000000000000000000000000005B -S31540032C30000000000000000000000000000000004B -S31540032C40000000000000000000000000000000003B -S31540032C50000000000000000000000000000000002B -S31540032C60000000000000000000000000000000001B -S31540032C70000000000000000000000000000000000B -S31540032C8000000000000000000000000000000000FB -S31540032C9000000000000000000000000000000000EB -S31540032CA000000000000000000000000000000000DB -S31540032CB000000000000000000000000000000000CB -S31540032CC000000000000000000000000000000000BB -S31540032CD000000000000000000000000000000000AB -S31540032CE0000000000000000000000000000000009B -S31540032CF0000000000000000000000000000000008B -S31540032D00000000000000000000000000000000007A -S31540032D10000000000000000000000000000000006A -S31540032D20000000000000000000000000000000005A -S31540032D30000000000000000000000000000000004A -S31540032D40000000000000000000000000000000003A -S31540032D50000000000000000000000000000000002A -S31540032D60000000000000000000000000000000001A -S31540032D70000000000000000000000000000000000A -S31540032D8000000000000000000000000000000000FA -S31540032D9000000000000000000000000000000000EA -S31540032DA000000000000000000000000000000000DA -S31540032DB000000000000000000000000000000000CA -S31540032DC000000000000000000000000000000000BA -S31540032DD000000000000000000000000000000000AA -S31540032DE0000000000000000000000000000000009A -S31540032DF0000000000000000000000000000000008A -S31540032E000000000000000000000000000000000079 -S31540032E100000000000000000000000000000000069 -S31540032E200000000000000000000000000000000059 -S31540032E300000000000000000000000000000000049 -S31540032E400000000000000000000000000000000039 -S31540032E500000000000000000000000000000000029 -S31540032E600000000000000000000000000000000019 -S31540032E700000000000000000000000000000000009 -S31540032E8000000000000000000000000000000000F9 -S31540032E9000000000000000000000000000000000E9 -S31540032EA000000000000000000000000000000000D9 -S31540032EB000000000000000000000000000000000C9 -S31540032EC000000000000000000000000000000000B9 -S31540032ED000000000000000000000000000000000A9 -S31540032EE00000000000000000000000000000000099 -S31540032EF00000000000000000000000000000000089 -S31540032F000000000000000000000000000000000078 -S31540032F100000000000000000000000000000000068 -S31540032F200000000000000000000000000000000058 -S31540032F300000000000000000000000000000000048 -S31540032F400000000000000000000000000000000038 -S31540032F500000000000000000000000000000000028 -S31540032F600000000000000000000000000000000018 -S31540032F700000000000000000000000000000000008 -S31540032F8000000000000000000000000000000000F8 -S31540032F9000000000000000000000000000000000E8 -S31540032FA000000000000000000000000000000000D8 -S31540032FB000000000000000000000000000000000C8 -S31540032FC000000000000000000000000000000000B8 -S31540032FD000000000000000000000000000000000A8 -S31540032FE00000000000000000000000000000000098 -S31540032FF00000000000000000000000000000000088 -S315400330000000000000000000000000000000000077 -S315400330100000000000000000000000000000000067 -S315400330200000000000000000000000000000000057 -S315400330300000000000000000000000000000000047 -S315400330400000000000000000000000000000000037 -S315400330500000000000000000000000000000000027 -S315400330600000000000000000000000000000000017 -S315400330700000000000000000000000000000000007 -S3154003308000000000000000000000000000000000F7 -S3154003309000000000000000000000000000000000E7 -S315400330A000000000000000000000000000000000D7 -S315400330B000000000000000000000000000000000C7 -S315400330C000000000000000000000000000000000B7 -S315400330D000000000000000000000000000000000A7 -S315400330E00000000000000000000000000000000097 -S315400330F00000000000000000000000000000000087 -S315400331000000000000000000000000000000000076 -S315400331100000000000000000000000000000000066 -S315400331200000000000000000000000000000000056 -S315400331300000000000000000000000000000000046 -S315400331400000000000000000000000000000000036 -S315400331500000000000000000000000000000000026 -S315400331600000000000000000000000000000000016 -S315400331700000000000000000000000000000000006 -S3154003318000000000000000000000000000000000F6 -S3154003319000000000000000000000000000000000E6 -S315400331A000000000000000000000000000000000D6 -S315400331B000000000000000000000000000000000C6 -S315400331C000000000000000000000000000000000B6 -S315400331D000000000000000000000000000000000A6 -S315400331E00000000000000000000000000000000096 -S315400331F00000000000000000000000000000000086 -S315400332000000000000000000000000000000000075 -S315400332100000000000000000000000000000000065 -S315400332200000000000000000000000000000000055 -S315400332300000000000000000000000000000000045 -S315400332400000000000000000000000000000000035 -S315400332500000000000000000000000000000000025 -S315400332600000000000000000000000000000000015 -S315400332700000000000000000000000000000000005 -S3154003328000000000000000000000000000000000F5 -S3154003329000000000000000000000000000000000E5 -S315400332A000000000000000000000000000000000D5 -S315400332B000000000000000000000000000000000C5 -S315400332C000000000000000000000000000000000B5 -S315400332D000000000000000000000000000000000A5 -S315400332E00000000000000000000000000000000095 -S315400332F00000000000000000000000000000000085 -S315400333000000000000000000000000000000000074 -S315400333100000000000000000000000000000000064 -S315400333200000000000000000000000000000000054 -S315400333300000000000000000000000000000000044 -S315400333400000000000000000000000000000000034 -S315400333500000000000000000000000000000000024 -S315400333600000000000000000000000000000000014 -S315400333700000000000000000000000000000000004 -S3154003338000000000000000000000000000000000F4 -S3154003339000000000000000000000000000000000E4 -S315400333A000000000000000000000000000000000D4 -S315400333B000000000000000000000000000000000C4 -S315400333C000000000000000000000000000000000B4 -S315400333D000000000000000000000000000000000A4 -S315400333E00000000000000000000000000000000094 -S315400333F00000000000000000000000000000000084 -S315400334000000000000000000000000000000000073 -S315400334100000000000000000000000000000000063 -S315400334200000000000000000000000000000000053 -S315400334300000000000000000000000000000000043 -S315400334400000000000000000000000000000000033 -S315400334500000000000000000000000000000000023 -S315400334600000000000000000000000000000000013 -S315400334700000000000000000000000000000000003 -S3154003348000000000000000000000000000000000F3 -S3154003349000000000000000000000000000000000E3 -S315400334A000000000000000000000000000000000D3 -S315400334B000000000000000000000000000000000C3 -S315400334C000000000000000000000000000000000B3 -S315400334D000000000000000000000000000000000A3 -S315400334E00000000000000000000000000000000093 -S315400334F00000000000000000000000000000000083 -S315400335000000000000000000000000000000000072 -S315400335100000000000000000000000000000000062 -S315400335200000000000000000000000000000000052 -S315400335300000000000000000000000000000000042 -S315400335400000000000000000000000000000000032 -S315400335500000000000000000000000000000000022 -S315400335600000000000000000000000000000000012 -S315400335700000000000000000000000000000000002 -S3154003358000000000000000000000000000000000F2 -S3154003359000000000000000000000000000000000E2 -S315400335A000000000000000000000000000000000D2 -S315400335B000000000000000000000000000000000C2 -S315400335C000000000000000000000000000000000B2 -S315400335D000000000000000000000000000000000A2 -S315400335E00000000000000000000000000000000092 -S315400335F00000000000000000000000000000000082 -S315400336000000000000000000000000000000000071 -S315400336100000000000000000000000000000000061 -S315400336200000000000000000000000000000000051 -S315400336300000000000000000000000000000000041 -S315400336400000000000000000000000000000000031 -S315400336500000000000000000000000000000000021 -S315400336600000000000000000000000000000000011 -S315400336700000000000000000000000000000000001 -S3154003368000000000000000000000000000000000F1 -S3154003369000000000000000000000000000000000E1 -S315400336A000000000000000000000000000000000D1 -S315400336B000000000000000000000000000000000C1 -S315400336C000000000000000000000000000000000B1 -S315400336D000000000000000000000000000000000A1 -S315400336E00000000000000000000000000000000091 -S315400336F00000000000000000000000000000000081 -S315400337000000000000000000000000000000000070 -S315400337100000000000000000000000000000000060 -S315400337200000000000000000000000000000000050 -S315400337300000000000000000000000000000000040 -S315400337400000000000000000000000000000000030 -S315400337500000000000000000000000000000000020 -S315400337600000000000000000000000000000000010 -S315400337700000000000000000000000000000000000 -S3154003378000000000000000000000000000000000F0 -S3154003379000000000000000000000000000000000E0 -S315400337A000000000000000000000000000000000D0 -S315400337B000000000000000000000000000000000C0 -S315400337C000000000000000000000000000000000B0 -S315400337D000000000000000000000000000000000A0 -S315400337E00000000000000000000000000000000090 -S315400337F00000000000000000000000000000000080 -S31540033800000000000000000000000000000000006F -S31540033810000000000000000000000000000000005F -S31540033820000000000000000000000000000000004F -S31540033830000000000000000000000000000000003F -S31540033840000000000000000000000000000000002F -S31540033850000000000000000000000000000000001F -S31540033860000000000000000000000000000000000F -S3154003387000000000000000000000000000000000FF -S3154003388000000000000000000000000000000000EF -S3154003389000000000000000000000000000000000DF -S315400338A000000000000000000000000000000000CF -S315400338B000000000000000000000000000000000BF -S315400338C000000000000000000000000000000000AF -S315400338D0000000000000000000000000000000009F -S315400338E0000000000000000000000000000000008F -S315400338F0000000000000000000000000000000007F -S31540033900000000000000000000000000000000006E -S31540033910000000000000000000000000000000005E -S31540033920000000000000000000000000000000004E -S31540033930000000000000000000000000000000003E -S31540033940000000000000000000000000000000002E -S31540033950000000000000000000000000000000001E -S31540033960000000000000000000000000000000000E -S3154003397000000000000000000000000000000000FE -S3154003398000000000000000000000000000000000EE -S3154003399000000000000000000000000000000000DE -S315400339A000000000000000000000000000000000CE -S315400339B000000000000000000000000000000000BE -S315400339C000000000000000000000000000000000AE -S315400339D0000000000000000000000000000000009E -S315400339E0000000000000000000000000000000008E -S315400339F0000000000000000000000000000000007E -S31540033A00000000000000000000000000000000006D -S31540033A10000000000000000000000000000000005D -S31540033A20000000000000000000000000000000004D -S31540033A30000000000000000000000000000000003D -S31540033A40000000000000000000000000000000002D -S31540033A50000000000000000000000000000000001D -S31540033A60000000000000000000000000000000000D -S31540033A7000000000000000000000000000000000FD -S31540033A8000000000000000000000000000000000ED -S31540033A9000000000000000000000000000000000DD -S31540033AA000000000000000000000000000000000CD -S31540033AB000000000000000000000000000000000BD -S31540033AC000000000000000000000000000000000AD -S31540033AD0000000000000000000000000000000009D -S31540033AE0000000000000000000000000000000008D -S31540033AF0000000000000000000000000000000007D -S31540033B00000000000000000000000000000000006C -S31540033B10000000000000000000000000000000005C -S31540033B20000000000000000000000000000000004C -S31540033B30000000000000000000000000000000003C -S31540033B40000000000000000000000000000000002C -S31540033B50000000000000000000000000000000001C -S31540033B60000000000000000000000000000000000C -S31540033B7000000000000000000000000000000000FC -S31540033B8000000000000000000000000000000000EC -S31540033B9000000000000000000000000000000000DC -S31540033BA000000000000000000000000000000000CC -S31540033BB000000000000000000000000000000000BC -S31540033BC000000000000000000000000000000000AC -S31540033BD0000000000000000000000000000000009C -S31540033BE0000000000000000000000000000000008C -S31540033BF0000000000000000000000000000000007C -S31540033C00000000000000000000000000000000006B -S31540033C10000000000000000000000000000000005B -S31540033C20000000000000000000000000000000004B -S31540033C30000000000000000000000000000000003B -S31540033C40000000000000000000000000000000002B -S31540033C50000000000000000000000000000000001B -S31540033C60000000000000000000000000000000000B -S31540033C7000000000000000000000000000000000FB -S31540033C8000000000000000000000000000000000EB -S31540033C9000000000000000000000000000000000DB -S31540033CA000000000000000000000000000000000CB -S31540033CB000000000000000000000000000000000BB -S31540033CC000000000000000000000000000000000AB -S31540033CD0000000000000000000000000000000009B -S31540033CE0000000000000000000000000000000008B -S31540033CF0000000000000000000000000000000007B -S31540033D00000000000000000000000000000000006A -S31540033D10000000000000000000000000000000005A -S31540033D20000000000000000000000000000000004A -S31540033D30000000000000000000000000000000003A -S31540033D40000000000000000000000000000000002A -S31540033D50000000000000000000000000000000001A -S31540033D60000000000000000000000000000000000A -S31540033D7000000000000000000000000000000000FA -S31540033D8000000000000000000000000000000000EA -S31540033D9000000000000000000000000000000000DA -S31540033DA000000000000000000000000000000000CA -S31540033DB000000000000000000000000000000000BA -S31540033DC000000000000000000000000000000000AA -S31540033DD0000000000000000000000000000000009A -S31540033DE0000000000000000000000000000000008A -S31540033DF0000000000000000000000000000000007A -S31540033E000000000000000000000000000000000069 -S31540033E100000000000000000000000000000000059 -S31540033E200000000000000000000000000000000049 -S31540033E300000000000000000000000000000000039 -S31540033E400000000000000000000000000000000029 -S31540033E500000000000000000000000000000000019 -S31540033E600000000000000000000000000000000009 -S31540033E7000000000000000000000000000000000F9 -S31540033E8000000000000000000000000000000000E9 -S31540033E9000000000000000000000000000000000D9 -S31540033EA000000000000000000000000000000000C9 -S31540033EB000000000000000000000000000000000B9 -S31540033EC000000000000000000000000000000000A9 -S31540033ED00000000000000000000000000000000099 -S31540033EE00000000000000000000000000000000089 -S31540033EF00000000000000000000000000000000079 -S31540033F000000000000000000000000000000000068 -S31540033F100000000000000000000000000000000058 -S31540033F200000000000000000000000000000000048 -S31540033F300000000000000000000000000000000038 -S31540033F400000000000000000000000000000000028 -S31540033F500000000000000000000000000000000018 -S31540033F600000000000000000000000000000000008 -S31540033F7000000000000000000000000000000000F8 -S31540033F8000000000000000000000000000000000E8 -S31540033F9000000000000000000000000000000000D8 -S31540033FA000000000000000000000000000000000C8 -S31540033FB000000000000000000000000000000000B8 -S31540033FC000000000000000000000000000000000A8 -S31540033FD00000000000000000000000000000000098 -S31540033FE00000000000000000000000000000000088 -S31540033FF00000000000000000000000000000000078 -S315400340000000000000000000000000000000000067 -S315400340100000000000000000000000000000000057 -S315400340200000000000000000000000000000000047 -S315400340300000000000000000000000000000000037 -S315400340400000000000000000000000000000000027 -S315400340500000000000000000000000000000000017 -S315400340600000000000000000000000000000000007 -S3154003407000000000000000000000000000000000F7 -S3154003408000000000000000000000000000000000E7 -S3154003409000000000000000000000000000000000D7 -S315400340A000000000000000000000000000000000C7 -S315400340B000000000000000000000000000000000B7 -S315400340C000000000000000000000000000000000A7 -S315400340D00000000000000000000000000000000097 -S315400340E00000000000000000000000000000000087 -S315400340F00000000000000000000000000000000077 -S315400341000000000000000000000000000000000066 -S315400341100000000000000000000000000000000056 -S315400341200000000000000000000000000000000046 -S315400341300000000000000000000000000000000036 -S315400341400000000000000000000000000000000026 -S315400341500000000000000000000000000000000016 -S315400341600000000000000000000000000000000006 -S3154003417000000000000000000000000000000000F6 -S3154003418000000000000000000000000000000000E6 -S3154003419000000000000000000000000000000000D6 -S315400341A000000000000000000000000000000000C6 -S315400341B000000000000000000000000000000000B6 -S315400341C000000000000000000000000000000000A6 -S315400341D00000000000000000000000000000000096 -S315400341E00000000000000000000000000000000086 -S315400341F00000000000000000000000000000000076 -S315400342000000000000000000000000000000000065 -S315400342100000000000000000000000000000000055 -S315400342200000000000000000000000000000000045 -S315400342300000000000000000000000000000000035 -S315400342400000000000000000000000000000000025 -S315400342500000000000000000000000000000000015 -S315400342600000000000000000000000000000000005 -S3154003427000000000000000000000000000000000F5 -S3154003428000000000000000000000000000000000E5 -S3154003429000000000000000000000000000000000D5 -S315400342A000000000000000000000000000000000C5 -S315400342B000000000000000000000000000000000B5 -S315400342C000000000000000000000000000000000A5 -S315400342D00000000000000000000000000000000095 -S315400342E00000000000000000000000000000000085 -S315400342F00000000000000000000000000000000075 -S315400343000000000000000000000000000000000064 -S315400343100000000000000000000000000000000054 -S315400343200000000000000000000000000000000044 -S315400343300000000000000000000000000000000034 -S315400343400000000000000000000000000000000024 -S315400343500000000000000000000000000000000014 -S315400343600000000000000000000000000000000004 -S3154003437000000000000000000000000000000000F4 -S3154003438000000000000000000000000000000000E4 -S3154003439000000000000000000000000000000000D4 -S315400343A000000000000000000000000000000000C4 -S315400343B000000000000000000000000000000000B4 -S315400343C000000000000000000000000000000000A4 -S315400343D00000000000000000000000000000000094 -S315400343E00000000000000000000000000000000084 -S315400343F00000000000000000000000000000000074 -S315400344000000000000000000000000000000000063 -S315400344100000000000000000000000000000000053 -S315400344200000000000000000000000000000000043 -S315400344300000000000000000000000000000000033 -S315400344400000000000000000000000000000000023 -S315400344500000000000000000000000000000000013 -S315400344600000000000000000000000000000000003 -S3154003447000000000000000000000000000000000F3 -S3154003448000000000000000000000000000000000E3 -S3154003449000000000000000000000000000000000D3 -S315400344A000000000000000000000000000000000C3 -S315400344B000000000000000000000000000000000B3 -S315400344C000000000000000000000000000000000A3 -S315400344D00000000000000000000000000000000093 -S315400344E00000000000000000000000000000000083 -S315400344F00000000000000000000000000000000073 -S315400345000000000000000000000000000000000062 -S315400345100000000000000000000000000000000052 -S315400345200000000000000000000000000000000042 -S315400345300000000000000000000000000000000032 -S315400345400000000000000000000000000000000022 -S315400345500000000000000000000000000000000012 -S315400345600000000000000000000000000000000002 -S3154003457000000000000000000000000000000000F2 -S3154003458000000000000000000000000000000000E2 -S3154003459000000000000000000000000000000000D2 -S315400345A000000000000000000000000000000000C2 -S315400345B000000000000000000000000000000000B2 -S315400345C000000000000000000000000000000000A2 -S315400345D00000000000000000000000000000000092 -S315400345E00000000000000000000000000000000082 -S315400345F00000000000000000000000000000000072 -S315400346000000000000000000000000000000000061 -S315400346100000000000000000000000000000000051 -S315400346200000000000000000000000000000000041 -S315400346300000000000000000000000000000000031 -S315400346400000000000000000000000000000000021 -S315400346500000000000000000000000000000000011 -S315400346600000000000000000000000000000000001 -S3154003467000000000000000000000000000000000F1 -S3154003468000000000000000000000000000000000E1 -S3154003469000000000000000000000000000000000D1 -S315400346A000000000000000000000000000000000C1 -S315400346B000000000000000000000000000000000B1 -S315400346C000000000000000000000000000000000A1 -S315400346D00000000000000000000000000000000091 -S315400346E00000000000000000000000000000000081 -S315400346F00000000000000000000000000000000071 -S315400347000000000000000000000000000000000060 -S315400347100000000000000000000000000000000050 -S315400347200000000000000000000000000000000040 -S315400347300000000000000000000000000000000030 -S315400347400000000000000000000000000000000020 -S315400347500000000000000000000000000000000010 -S315400347600000000000000000000000000000000000 -S3154003477000000000000000000000000000000000F0 -S3154003478000000000000000000000000000000000E0 -S3154003479000000000000000000000000000000000D0 -S315400347A000000000000000000000000000000000C0 -S315400347B000000000000000000000000000000000B0 -S315400347C000000000000000000000000000000000A0 -S315400347D00000000000000000000000000000000090 -S315400347E00000000000000000000000000000000080 -S315400347F00000000000000000000000000000000070 -S31540034800000000000000000000000000000000005F -S31540034810000000000000000000000000000000004F -S31540034820000000000000000000000000000000003F -S31540034830000000000000000000000000000000002F -S31540034840000000000000000000000000000000001F -S31540034850000000000000000000000000000000000F -S3154003486000000000000000000000000000000000FF -S3154003487000000000000000000000000000000000EF -S3154003488000000000000000000000000000000000DF -S3154003489000000000000000000000000000000000CF -S315400348A000000000000000000000000000000000BF -S315400348B000000000000000000000000000000000AF -S315400348C0000000000000000000000000000000009F -S315400348D0000000000000000000000000000000008F -S315400348E0000000000000000000000000000000007F -S315400348F0000000000000000000000000000000006F -S31540034900000000000000000000000000000000005E -S31540034910000000000000000000000000000000004E -S31540034920000000000000000000000000000000003E -S31540034930000000000000000000000000000000002E -S31540034940000000000000000000000000000000001E -S31540034950000000000000000000000000000000000E -S3154003496000000000000000000000000000000000FE -S3154003497000000000000000000000000000000000EE -S3154003498000000000000000000000000000000000DE -S3154003499000000000000000000000000000000000CE -S315400349A000000000000000000000000000000000BE -S315400349B000000000000000000000000000000000AE -S315400349C0000000000000000000000000000000009E -S315400349D0000000000000000000000000000000008E -S315400349E0000000000000000000000000000000007E -S315400349F0000000000000000000000000000000006E -S31540034A00000000000000000000000000000000005D -S31540034A10000000000000000000000000000000004D -S31540034A20000000000000000000000000000000003D -S31540034A30000000000000000000000000000000002D -S31540034A40000000000000000000000000000000001D -S31540034A50000000000000000000000000000000000D -S31540034A6000000000000000000000000000000000FD -S31540034A7000000000000000000000000000000000ED -S31540034A8000000000000000000000000000000000DD -S31540034A9000000000000000000000000000000000CD -S31540034AA000000000000000000000000000000000BD -S31540034AB000000000000000000000000000000000AD -S31540034AC0000000000000000000000000000000009D -S31540034AD0000000000000000000000000000000008D -S31540034AE0000000000000000000000000000000007D -S31540034AF0000000000000000000000000000000006D -S31540034B00000000000000000000000000000000005C -S31540034B10000000000000000000000000000000004C -S31540034B20000000000000000000000000000000003C -S31540034B30000000000000000000000000000000002C -S31540034B40000000000000000000000000000000001C -S31540034B50000000000000000000000000000000000C -S31540034B6000000000000000000000000000000000FC -S31540034B7000000000000000000000000000000000EC -S31540034B8000000000000000000000000000000000DC -S31540034B9000000000000000000000000000000000CC -S31540034BA000000000000000000000000000000000BC -S31540034BB000000000000000000000000000000000AC -S31540034BC0000000000000000000000000000000009C -S31540034BD0000000000000000000000000000000008C -S31540034BE0000000000000000000000000000000007C -S31540034BF0000000000000000000000000000000006C -S31540034C00000000000000000000000000000000005B -S31540034C10000000000000000000000000000000004B -S31540034C20000000000000000000000000000000003B -S31540034C30000000000000000000000000000000002B -S31540034C40000000000000000000000000000000001B -S31540034C50000000000000000000000000000000000B -S31540034C6000000000000000000000000000000000FB -S31540034C7000000000000000000000000000000000EB -S31540034C8000000000000000000000000000000000DB -S31540034C9000000000000000000000000000000000CB -S31540034CA000000000000000000000000000000000BB -S31540034CB000000000000000000000000000000000AB -S31540034CC0000000000000000000000000000000009B -S31540034CD0000000000000000000000000000000008B -S31540034CE0000000000000000000000000000000007B -S31540034CF0000000000000000000000000000000006B -S31540034D00000000000000000000000000000000005A -S31540034D10000000000000000000000000000000004A -S31540034D20000000000000000000000000000000003A -S31540034D30000000000000000000000000000000002A -S31540034D40000000000000000000000000000000001A -S31540034D50000000000000000000000000000000000A -S31540034D6000000000000000000000000000000000FA -S31540034D7000000000000000000000000000000000EA -S31540034D8000000000000000000000000000000000DA -S31540034D9000000000000000000000000000000000CA -S31540034DA000000000000000000000000000000000BA -S31540034DB000000000000000000000000000000000AA -S31540034DC0000000000000000000000000000000009A -S31540034DD0000000000000000000000000000000008A -S31540034DE0000000000000000000000000000000007A -S31540034DF0000000000000000000000000000000006A -S31540034E000000000000000000000000000000000059 -S31540034E100000000000000000000000000000000049 -S31540034E200000000000000000000000000000000039 -S31540034E300000000000000000000000000000000029 -S31540034E400000000000000000000000000000000019 -S31540034E500000000000000000000000000000000009 -S31540034E6000000000000000000000000000000000F9 -S31540034E7000000000000000000000000000000000E9 -S31540034E8000000000000000000000000000000000D9 -S31540034E9000000000000000000000000000000000C9 -S31540034EA000000000000000000000000000000000B9 -S31540034EB000000000000000000000000000000000A9 -S31540034EC00000000000000000000000000000000099 -S31540034ED00000000000000000000000000000000089 -S31540034EE00000000000000000000000000000000079 -S31540034EF00000000000000000000000000000000069 -S31540034F000000000000000000000000000000000058 -S31540034F100000000000000000000000000000000048 -S31540034F200000000000000000000000000000000038 -S31540034F300000000000000000000000000000000028 -S31540034F400000000000000000000000000000000018 -S31540034F500000000000000000000000000000000008 -S31540034F6000000000000000000000000000000000F8 -S31540034F7000000000000000000000000000000000E8 -S31540034F8000000000000000000000000000000000D8 -S31540034F9000000000000000000000000000000000C8 -S31540034FA000000000000000000000000000000000B8 -S31540034FB000000000000000000000000000000000A8 -S31540034FC00000000000000000000000000000000098 -S31540034FD00000000000000000000000000000000088 -S31540034FE00000000000000000000000000000000078 -S31540034FF00000000000000000000000000000000068 -S315400350000000000000000000000000000000000057 -S315400350100000000000000000000000000000000047 -S315400350200000000000000000000000000000000037 -S315400350300000000000000000000000000000000027 -S315400350400000000000000000000000000000000017 -S315400350500000000000000000000000000000000007 -S3154003506000000000000000000000000000000000F7 -S3154003507000000000000000000000000000000000E7 -S3154003508000000000000000000000000000000000D7 -S3154003509000000000000000000000000000000000C7 -S315400350A000000000000000000000000000000000B7 -S315400350B000000000000000000000000000000000A7 -S315400350C00000000000000000000000000000000097 -S315400350D00000000000000000000000000000000087 -S315400350E00000000000000000000000000000000077 -S315400350F00000000000000000000000000000000067 -S315400351000000000000000000000000000000000056 -S315400351100000000000000000000000000000000046 -S315400351200000000000000000000000000000000036 -S315400351300000000000000000000000000000000026 -S315400351400000000000000000000000000000000016 -S315400351500000000000000000000000000000000006 -S3154003516000000000000000000000000000000000F6 -S3154003517000000000000000000000000000000000E6 -S3154003518000000000000000000000000000000000D6 -S3154003519000000000000000000000000000000000C6 -S315400351A000000000000000000000000000000000B6 -S315400351B000000000000000000000000000000000A6 -S315400351C00000000000000000000000000000000096 -S315400351D00000000000000000000000000000000086 -S315400351E00000000000000000000000000000000076 -S315400351F00000000000000000000000000000000066 -S315400352000000000000000000000000000000000055 -S315400352100000000000000000000000000000000045 -S315400352200000000000000000000000000000000035 -S315400352300000000000000000000000000000000025 -S315400352400000000000000000000000000000000015 -S315400352500000000000000000000000000000000005 -S3154003526000000000000000000000000000000000F5 -S3154003527000000000000000000000000000000000E5 -S3154003528000000000000000000000000000000000D5 -S3154003529000000000000000000000000000000000C5 -S315400352A000000000000000000000000000000000B5 -S315400352B000000000000000000000000000000000A5 -S315400352C00000000000000000000000000000000095 -S315400352D00000000000000000000000000000000085 -S315400352E00000000000000000000000000000000075 -S315400352F00000000000000000000000000000000065 -S315400353000000000000000000000000000000000054 -S315400353100000000000000000000000000000000044 -S315400353200000000000000000000000000000000034 -S315400353300000000000000000000000000000000024 -S315400353400000000000000000000000000000000014 -S315400353500000000000000000000000000000000004 -S3154003536000000000000000000000000000000000F4 -S3154003537000000000000000000000000000000000E4 -S3154003538000000000000000000000000000000000D4 -S3154003539000000000000000000000000000000000C4 -S315400353A000000000000000000000000000000000B4 -S315400353B000000000000000000000000000000000A4 -S315400353C00000000000000000000000000000000094 -S315400353D00000000000000000000000000000000084 -S315400353E00000000000000000000000000000000074 -S315400353F00000000000000000000000000000000064 -S315400354000000000000000000000000000000000053 -S315400354100000000000000000000000000000000043 -S315400354200000000000000000000000000000000033 -S315400354300000000000000000000000000000000023 -S315400354400000000000000000000000000000000013 -S315400354500000000000000000000000000000000003 -S3154003546000000000000000000000000000000000F3 -S3154003547000000000000000000000000000000000E3 -S3154003548000000000000000000000000000000000D3 -S3154003549000000000000000000000000000000000C3 -S315400354A000000000000000000000000000000000B3 -S315400354B000000000000000000000000000000000A3 -S315400354C00000000000000000000000000000000093 -S315400354D00000000000000000000000000000000083 -S315400354E00000000000000000000000000000000073 -S315400354F00000000000000000000000000000000063 -S315400355000000000000000000000000000000000052 -S315400355100000000000000000000000000000000042 -S315400355200000000000000000000000000000000032 -S315400355300000000000000000000000000000000022 -S315400355400000000000000000000000000000000012 -S315400355500000000000000000000000000000000002 -S3154003556000000000000000000000000000000000F2 -S3154003557000000000000000000000000000000000E2 -S3154003558000000000000000000000000000000000D2 -S3154003559000000000000000000000000000000000C2 -S315400355A000000000000000000000000000000000B2 -S315400355B000000000000000000000000000000000A2 -S315400355C00000000000000000000000000000000092 -S315400355D00000000000000000000000000000000082 -S315400355E00000000000000000000000000000000072 -S315400355F00000000000000000000000000000000062 -S315400356000000000000000000000000000000000051 -S315400356100000000000000000000000000000000041 -S315400356200000000000000000000000000000000031 -S315400356300000000000000000000000000000000021 -S315400356400000000000000000000000000000000011 -S315400356500000000000000000000000000000000001 -S3154003566000000000000000000000000000000000F1 -S3154003567000000000000000000000000000000000E1 -S3154003568000000000000000000000000000000000D1 -S3154003569000000000000000000000000000000000C1 -S315400356A000000000000000000000000000000000B1 -S315400356B000000000000000000000000000000000A1 -S315400356C00000000000000000000000000000000091 -S315400356D00000000000000000000000000000000081 -S315400356E00000000000000000000000000000000071 -S315400356F00000000000000000000000000000000061 -S315400357000000000000000000000000000000000050 -S315400357100000000000000000000000000000000040 -S315400357200000000000000000000000000000000030 -S315400357300000000000000000000000000000000020 -S315400357400000000000000000000000000000000010 -S315400357500000000000000000000000000000000000 -S3154003576000000000000000000000000000000000F0 -S3154003577000000000000000000000000000000000E0 -S3154003578000000000000000000000000000000000D0 -S3154003579000000000000000000000000000000000C0 -S315400357A000000000000000000000000000000000B0 -S315400357B000000000000000000000000000000000A0 -S315400357C00000000000000000000000000000000090 -S315400357D00000000000000000000000000000000080 -S315400357E00000000000000000000000000000000070 -S315400357F00000000000000000000000000000000060 -S31540035800000000000000000000000000000000004F -S31540035810000000000000000000000000000000003F -S31540035820000000000000000000000000000000002F -S31540035830000000000000000000000000000000001F -S31540035840000000000000000000000000000000000F -S3154003585000000000000000000000000000000000FF -S3154003586000000000000000000000000000000000EF -S3154003587000000000000000000000000000000000DF -S3154003588000000000000000000000000000000000CF -S3154003589000000000000000000000000000000000BF -S315400358A000000000000000000000000000000000AF -S315400358B0000000000000000000000000000000009F -S315400358C0000000000000000000000000000000008F -S315400358D0000000000000000000000000000000007F -S315400358E0000000000000000000000000000000006F -S315400358F0000000000000000000000000000000005F -S31540035900000000000000000000000000000000004E -S31540035910000000000000000000000000000000003E -S31540035920000000000000000000000000000000002E -S31540035930000000000000000000000000000000001E -S31540035940000000000000000000000000000000000E -S3154003595000000000000000000000000000000000FE -S3154003596000000000000000000000000000000000EE -S3154003597000000000000000000000000000000000DE -S3154003598000000000000000000000000000000000CE -S3154003599000000000000000000000000000000000BE -S315400359A000000000000000000000000000000000AE -S315400359B0000000000000000000000000000000009E -S315400359C0000000000000000000000000000000008E -S315400359D0000000000000000000000000000000007E -S315400359E0000000000000000000000000000000006E -S315400359F0000000000000000000000000000000005E -S31540035A00000000000000000000000000000000004D -S31540035A10000000000000000000000000000000003D -S31540035A20000000000000000000000000000000002D -S31540035A30000000000000000000000000000000001D -S31540035A40000000000000000000000000000000000D -S31540035A5000000000000000000000000000000000FD -S31540035A6000000000000000000000000000000000ED -S31540035A7000000000000000000000000000000000DD -S31540035A8000000000000000000000000000000000CD -S31540035A9000000000000000000000000000000000BD -S31540035AA000000000000000000000000000000000AD -S31540035AB0000000000000000000000000000000009D -S31540035AC0000000000000000000000000000000008D -S31540035AD0000000000000000000000000000000007D -S31540035AE0000000000000000000000000000000006D -S31540035AF0000000000000000000000000000000005D -S31540035B00000000000000000000000000000000004C -S31540035B10000000000000000000000000000000003C -S31540035B20000000000000000000000000000000002C -S31540035B30000000000000000000000000000000001C -S31540035B40000000000000000000000000000000000C -S31540035B5000000000000000000000000000000000FC -S31540035B6000000000000000000000000000000000EC -S31540035B7000000000000000000000000000000000DC -S31540035B8000000000000000000000000000000000CC -S31540035B9000000000000000000000000000000000BC -S31540035BA000000000000000000000000000000000AC -S31540035BB0000000000000000000000000000000009C -S31540035BC0000000000000000000000000000000008C -S31540035BD0000000000000000000000000000000007C -S31540035BE0000000000000000000000000000000006C -S31540035BF0000000000000000000000000000000005C -S31540035C00000000000000000000000000000000004B -S31540035C10000000000000000000000000000000003B -S31540035C20000000000000000000000000000000002B -S31540035C30000000000000000000000000000000001B -S31540035C40000000000000000000000000000000000B -S31540035C5000000000000000000000000000000000FB -S31540035C6000000000000000000000000000000000EB -S31540035C7000000000000000000000000000000000DB -S31540035C8000000000000000000000000000000000CB -S31540035C9000000000000000000000000000000000BB -S31540035CA000000000000000000000000000000000AB -S31540035CB0000000000000000000000000000000009B -S31540035CC0000000000000000000000000000000008B -S31540035CD0000000000000000000000000000000007B -S31540035CE0000000000000000000000000000000006B -S31540035CF0000000000000000000000000000000005B -S31540035D00000000000000000000000000000000004A -S31540035D10000000000000000000000000000000003A -S31540035D20000000000000000000000000000000002A -S31540035D30000000000000000000000000000000001A -S31540035D40000000000000000000000000000000000A -S31540035D5000000000000000000000000000000000FA -S31540035D6000000000000000000000000000000000EA -S31540035D7000000000000000000000000000000000DA -S31540035D8000000000000000000000000000000000CA -S31540035D9000000000000000000000000000000000BA -S31540035DA000000000000000000000000000000000AA -S31540035DB0000000000000000000000000000000009A -S31540035DC0000000000000000000000000000000008A -S31540035DD0000000000000000000000000000000007A -S31540035DE0000000000000000000000000000000006A -S31540035DF0000000000000000000000000000000005A -S31540035E000000000000000000000000000000000049 -S31540035E100000000000000000000000000000000039 -S31540035E200000000000000000000000000000000029 -S31540035E300000000000000000000000000000000019 -S31540035E400000000000000000000000000000000009 -S31540035E5000000000000000000000000000000000F9 -S31540035E6000000000000000000000000000000000E9 -S31540035E7000000000000000000000000000000000D9 -S31540035E8000000000000000000000000000000000C9 -S31540035E9000000000000000000000000000000000B9 -S31540035EA000000000000000000000000000000000A9 -S31540035EB00000000000000000000000000000000099 -S31540035EC00000000000000000000000000000000089 -S31540035ED00000000000000000000000000000000079 -S31540035EE00000000000000000000000000000000069 -S31540035EF00000000000000000000000000000000059 -S31540035F000000000000000000000000000000000048 -S31540035F100000000000000000000000000000000038 -S31540035F200000000000000000000000000000000028 -S31540035F300000000000000000000000000000000018 -S31540035F400000000000000000000000000000000008 -S31540035F5000000000000000000000000000000000F8 -S31540035F6000000000000000000000000000000000E8 -S31540035F7000000000000000000000000000000000D8 -S31540035F8000000000000000000000000000000000C8 -S31540035F9000000000000000000000000000000000B8 -S31540035FA000000000000000000000000000000000A8 -S31540035FB00000000000000000000000000000000098 -S31540035FC00000000000000000000000000000000088 -S31540035FD00000000000000000000000000000000078 -S31540035FE00000000000000000000000000000000068 -S31540035FF00000000000000000000000000000000058 -S315400360000000000000000000000000000000000047 -S315400360100000000000000000000000000000000037 -S315400360200000000000000000000000000000000027 -S315400360300000000000000000000000000000000017 -S315400360400000000000000000000000000000000007 -S3154003605000000000000000000000000000000000F7 -S3154003606000000000000000000000000000000000E7 -S3154003607000000000000000000000000000000000D7 -S3154003608000000000000000000000000000000000C7 -S3154003609000000000000000000000000000000000B7 -S315400360A000000000000000000000000000000000A7 -S315400360B00000000000000000000000000000000097 -S315400360C00000000000000000000000000000000087 -S315400360D00000000000000000000000000000000077 -S315400360E00000000000000000000000000000000067 -S315400360F00000000000000000000000000000000057 -S315400361000000000000000000000000000000000046 -S315400361100000000000000000000000000000000036 -S315400361200000000000000000000000000000000026 -S315400361300000000000000000000000000000000016 -S315400361400000000000000000000000000000000006 -S3154003615000000000000000000000000000000000F6 -S3154003616000000000000000000000000000000000E6 -S3154003617000000000000000000000000000000000D6 -S3154003618000000000000000000000000000000000C6 -S3154003619000000000000000000000000000000000B6 -S315400361A000000000000000000000000000000000A6 -S315400361B00000000000000000000000000000000096 -S315400361C00000000000000000000000000000000086 -S315400361D00000000000000000000000000000000076 -S315400361E00000000000000000000000000000000066 -S315400361F00000000000000000000000000000000056 -S315400362000000000000000000000000000000000045 -S315400362100000000000000000000000000000000035 -S315400362200000000000000000000000000000000025 -S315400362300000000000000000000000000000000015 -S315400362400000000000000000000000000000000005 -S3154003625000000000000000000000000000000000F5 -S3154003626000000000000000000000000000000000E5 -S3154003627000000000000000000000000000000000D5 -S3154003628000000000000000000000000000000000C5 -S3154003629000000000000000000000000000000000B5 -S315400362A000000000000000000000000000000000A5 -S315400362B00000000000000000000000000000000095 -S315400362C00000000000000000000000000000000085 -S315400362D00000000000000000000000000000000075 -S315400362E00000000000000000000000000000000065 -S315400362F00000000000000000000000000000000055 -S315400363000000000000000000000000000000000044 -S315400363100000000000000000000000000000000034 -S315400363200000000000000000000000000000000024 -S315400363300000000000000000000000000000000014 -S315400363400000000000000000000000000000000004 -S3154003635000000000000000000000000000000000F4 -S3154003636000000000000000000000000000000000E4 -S3154003637000000000000000000000000000000000D4 -S3154003638000000000000000000000000000000000C4 -S3154003639000000000000000000000000000000000B4 -S315400363A000000000000000000000000000000000A4 -S315400363B00000000000000000000000000000000094 -S315400363C00000000000000000000000000000000084 -S315400363D00000000000000000000000000000000074 -S315400363E00000000000000000000000000000000064 -S315400363F00000000000000000000000000000000054 -S315400364000000000000000000000000000000000043 -S315400364100000000000000000000000000000000033 -S315400364200000000000000000000000000000000023 -S315400364300000000000000000000000000000000013 -S315400364400000000000000000000000000000000003 -S3154003645000000000000000000000000000000000F3 -S3154003646000000000000000000000000000000000E3 -S3154003647000000000000000000000000000000000D3 -S3154003648000000000000000000000000000000000C3 -S3154003649000000000000000000000000000000000B3 -S315400364A000000000000000000000000000000000A3 -S315400364B00000000000000000000000000000000093 -S315400364C00000000000000000000000000000000083 -S315400364D00000000000000000000000000000000073 -S315400364E00000000000000000000000000000000063 -S315400364F00000000000000000000000000000000053 -S315400365000000000000000000000000000000000042 -S315400365100000000000000000000000000000000032 -S315400365200000000000000000000000000000000022 -S315400365300000000000000000000000000000000012 -S315400365400000000000000000000000000000000002 -S3154003655000000000000000000000000000000000F2 -S3154003656000000000000000000000000000000000E2 -S3154003657000000000000000000000000000000000D2 -S3154003658000000000000000000000000000000000C2 -S3154003659000000000000000000000000000000000B2 -S315400365A000000000000000000000000000000000A2 -S315400365B00000000000000000000000000000000092 -S315400365C00000000000000000000000000000000082 -S315400365D00000000000000000000000000000000072 -S315400365E00000000000000000000000000000000062 -S315400365F00000000000000000000000000000000052 -S315400366000000000000000000000000000000000041 -S315400366100000000000000000000000000000000031 -S315400366200000000000000000000000000000000021 -S315400366300000000000000000000000000000000011 -S315400366400000000000000000000000000000000001 -S3154003665000000000000000000000000000000000F1 -S3154003666000000000000000000000000000000000E1 -S3154003667000000000000000000000000000000000D1 -S3154003668000000000000000000000000000000000C1 -S3154003669000000000000000000000000000000000B1 -S315400366A000000000000000000000000000000000A1 -S315400366B00000000000000000000000000000000091 -S315400366C00000000000000000000000000000000081 -S315400366D00000000000000000000000000000000071 -S315400366E00000000000000000000000000000000061 -S315400366F00000000000000000000000000000000051 -S315400367000000000000000000000000000000000040 -S315400367100000000000000000000000000000000030 -S315400367200000000000000000000000000000000020 -S315400367300000000000000000000000000000000010 -S315400367400000000000000000000000000000000000 -S3154003675000000000000000000000000000000000F0 -S3154003676000000000000000000000000000000000E0 -S3154003677000000000000000000000000000000000D0 -S3154003678000000000000000000000000000000000C0 -S3154003679000000000000000000000000000000000B0 -S315400367A000000000000000000000000000000000A0 -S315400367B00000000000000000000000000000000090 -S315400367C00000000000000000000000000000000080 -S315400367D00000000000000000000000000000000070 -S315400367E00000000000000000000000000000000060 -S315400367F00000000000000000000000000000000050 -S31540036800000000000000000000000000000000003F -S31540036810000000000000000000000000000000002F -S31540036820000000000000000000000000000000001F -S31540036830000000000000000000000000000000000F -S3154003684000000000000000000000000000000000FF -S3154003685000000000000000000000000000000000EF -S3154003686000000000000000000000000000000000DF -S3154003687000000000000000000000000000000000CF -S3154003688000000000000000000000000000000000BF -S3154003689000000000000000000000000000000000AF -S315400368A0000000000000000000000000000000009F -S315400368B0000000000000000000000000000000008F -S315400368C0000000000000000000000000000000007F -S315400368D0000000000000000000000000000000006F -S315400368E0000000000000000000000000000000005F -S315400368F0000000000000000000000000000000004F -S31540036900000000000000000000000000000000003E -S31540036910000000000000000000000000000000002E -S31540036920000000000000000000000000000000001E -S31540036930000000000000000000000000000000000E -S3154003694000000000000000000000000000000000FE -S3154003695000000000000000000000000000000000EE -S3154003696000000000000000000000000000000000DE -S3154003697000000000000000000000000000000000CE -S3154003698000000000000000000000000000000000BE -S3154003699000000000000000000000000000000000AE -S315400369A0000000000000000000000000000000009E -S315400369B0000000000000000000000000000000008E -S315400369C0000000000000000000000000000000007E -S315400369D0000000000000000000000000000000006E -S315400369E0000000000000000000000000000000005E -S315400369F0000000000000000000000000000000004E -S31540036A00000000000000000000000000000000003D -S31540036A10000000000000000000000000000000002D -S31540036A20000000000000000000000000000000001D -S31540036A30000000000000000000000000000000000D -S31540036A4000000000000000000000000000000000FD -S31540036A5000000000000000000000000000000000ED -S31540036A6000000000000000000000000000000000DD -S31540036A7000000000000000000000000000000000CD -S31540036A8000000000000000000000000000000000BD -S31540036A9000000000000000000000000000000000AD -S31540036AA0000000000000000000000000000000009D -S31540036AB0000000000000000000000000000000008D -S31540036AC0000000000000000000000000000000007D -S31540036AD0000000000000000000000000000000006D -S31540036AE0000000000000000000000000000000005D -S31540036AF0000000000000000000000000000000004D -S31540036B00000000000000000000000000000000003C -S31540036B10000000000000000000000000000000002C -S31540036B20000000000000000000000000000000001C -S31540036B30000000000000000000000000000000000C -S31540036B4000000000000000000000000000000000FC -S31540036B5000000000000000000000000000000000EC -S31540036B6000000000000000000000000000000000DC -S31540036B7000000000000000000000000000000000CC -S31540036B8000000000000000000000000000000000BC -S31540036B9000000000000000000000000000000000AC -S31540036BA0000000000000000000000000000000009C -S31540036BB0000000000000000000000000000000008C -S31540036BC0000000000000000000000000000000007C -S31540036BD0000000000000000000000000000000006C -S31540036BE0000000000000000000000000000000005C -S31540036BF0000000000000000000000000000000004C -S31540036C00000000000000000000000000000000003B -S31540036C10000000000000000000000000000000002B -S31540036C20000000000000000000000000000000001B -S31540036C30000000000000000000000000000000000B -S31540036C4000000000000000000000000000000000FB -S31540036C5000000000000000000000000000000000EB -S31540036C6000000000000000000000000000000000DB -S31540036C7000000000000000000000000000000000CB -S31540036C8000000000000000000000000000000000BB -S31540036C9000000000000000000000000000000000AB -S31540036CA0000000000000000000000000000000009B -S31540036CB0000000000000000000000000000000008B -S31540036CC0000000000000000000000000000000007B -S31540036CD0000000000000000000000000000000006B -S31540036CE0000000000000000000000000000000005B -S31540036CF0000000000000000000000000000000004B -S31540036D00000000000000000000000000000000003A -S31540036D10000000000000000000000000000000002A -S31540036D20000000000000000000000000000000001A -S31540036D30000000000000000000000000000000000A -S31540036D4000000000000000000000000000000000FA -S31540036D5000000000000000000000000000000000EA -S31540036D6000000000000000000000000000000000DA -S31540036D7000000000000000000000000000000000CA -S31540036D8000000000000000000000000000000000BA -S31540036D9000000000000000000000000000000000AA -S31540036DA0000000000000000000000000000000009A -S31540036DB0000000000000000000000000000000008A -S31540036DC0000000000000000000000000000000007A -S31540036DD0000000000000000000000000000000006A -S31540036DE0000000000000000000000000000000005A -S31540036DF0000000000000000000000000000000004A -S31540036E000000000000000000000000000000000039 -S31540036E100000000000000000000000000000000029 -S31540036E200000000000000000000000000000000019 -S31540036E300000000000000000000000000000000009 -S31540036E4000000000000000000000000000000000F9 -S31540036E5000000000000000000000000000000000E9 -S31540036E6000000000000000000000000000000000D9 -S31540036E7000000000000000000000000000000000C9 -S31540036E8000000000000000000000000000000000B9 -S31540036E9000000000000000000000000000000000A9 -S31540036EA00000000000000000000000000000000099 -S31540036EB00000000000000000000000000000000089 -S31540036EC00000000000000000000000000000000079 -S31540036ED00000000000000000000000000000000069 -S31540036EE00000000000000000000000000000000059 -S31540036EF00000000000000000000000000000000049 -S31540036F000000000000000000000000000000000038 -S31540036F100000000000000000000000000000000028 -S31540036F200000000000000000000000000000000018 -S31540036F300000000000000000000000000000000008 -S31540036F4000000000000000000000000000000000F8 -S31540036F5000000000000000000000000000000000E8 -S31540036F6000000000000000000000000000000000D8 -S31540036F7000000000000000000000000000000000C8 -S31540036F8000000000000000000000000000000000B8 -S31540036F9000000000000000000000000000000000A8 -S31540036FA00000000000000000000000000000000098 -S31540036FB00000000000000000000000000000000088 -S31540036FC00000000000000000000000000000000078 -S31540036FD00000000000000000000000000000000068 -S31540036FE00000000000000000000000000000000058 -S31540036FF00000000000000000000000000000000048 -S315400370000000000000000000000000000000000037 -S315400370100000000000000000000000000000000027 -S315400370200000000000000000000000000000000017 -S315400370300000000000000000000000000000000007 -S3154003704000000000000000000000000000000000F7 -S3154003705000000000000000000000000000000000E7 -S3154003706000000000000000000000000000000000D7 -S3154003707000000000000000000000000000000000C7 -S3154003708000000000000000000000000000000000B7 -S3154003709000000000000000000000000000000000A7 -S315400370A00000000000000000000000000000000097 -S315400370B00000000000000000000000000000000087 -S315400370C00000000000000000000000000000000077 -S315400370D00000000000000000000000000000000067 -S315400370E00000000000000000000000000000000057 -S315400370F00000000000000000000000000000000047 -S315400371000000000000000000000000000000000036 -S315400371100000000000000000000000000000000026 -S315400371200000000000000000000000000000000016 -S315400371300000000000000000000000000000000006 -S3154003714000000000000000000000000000000000F6 -S3154003715000000000000000000000000000000000E6 -S3154003716000000000000000000000000000000000D6 -S3154003717000000000000000000000000000000000C6 -S3154003718000000000000000000000000000000000B6 -S3154003719000000000000000000000000000000000A6 -S315400371A00000000000000000000000000000000096 -S315400371B00000000000000000000000000000000086 -S315400371C00000000000000000000000000000000076 -S315400371D00000000000000000000000000000000066 -S315400371E00000000000000000000000000000000056 -S315400371F00000000000000000000000000000000046 -S315400372000000000000000000000000000000000035 -S315400372100000000000000000000000000000000025 -S315400372200000000000000000000000000000000015 -S315400372300000000000000000000000000000000005 -S3154003724000000000000000000000000000000000F5 -S3154003725000000000000000000000000000000000E5 -S3154003726000000000000000000000000000000000D5 -S3154003727000000000000000000000000000000000C5 -S3154003728000000000000000000000000000000000B5 -S3154003729000000000000000000000000000000000A5 -S315400372A00000000000000000000000000000000095 -S315400372B00000000000000000000000000000000085 -S315400372C00000000000000000000000000000000075 -S315400372D00000000000000000000000000000000065 -S315400372E00000000000000000000000000000000055 -S315400372F00000000000000000000000000000000045 -S315400373000000000000000000000000000000000034 -S315400373100000000000000000000000000000000024 -S315400373200000000000000000000000000000000014 -S315400373300000000000000000000000000000000004 -S3154003734000000000000000000000000000000000F4 -S3154003735000000000000000000000000000000000E4 -S3154003736000000000000000000000000000000000D4 -S3154003737000000000000000000000000000000000C4 -S3154003738000000000000000000000000000000000B4 -S3154003739000000000000000000000000000000000A4 -S315400373A00000000000000000000000000000000094 -S315400373B00000000000000000000000000000000084 -S315400373C00000000000000000000000000000000074 -S315400373D00000000000000000000000000000000064 -S315400373E00000000000000000000000000000000054 -S315400373F00000000000000000000000000000000044 -S315400374000000000000000000000000000000000033 -S315400374100000000000000000000000000000000023 -S315400374200000000000000000000000000000000013 -S315400374300000000000000000000000000000000003 -S3154003744000000000000000000000000000000000F3 -S3154003745000000000000000000000000000000000E3 -S3154003746000000000000000000000000000000000D3 -S3154003747000000000000000000000000000000000C3 -S3154003748000000000000000000000000000000000B3 -S3154003749000000000000000000000000000000000A3 -S315400374A00000000000000000000000000000000093 -S315400374B00000000000000000000000000000000083 -S315400374C00000000000000000000000000000000073 -S315400374D00000000000000000000000000000000063 -S315400374E00000000000000000000000000000000053 -S315400374F00000000000000000000000000000000043 -S315400375000000000000000000000000000000000032 -S315400375100000000000000000000000000000000022 -S315400375200000000000000000000000000000000012 -S315400375300000000000000000000000000000000002 -S3154003754000000000000000000000000000000000F2 -S3154003755000000000000000000000000000000000E2 -S3154003756000000000000000000000000000000000D2 -S3154003757000000000000000000000000000000000C2 -S3154003758000000000000000000000000000000000B2 -S3154003759000000000000000000000000000000000A2 -S315400375A00000000000000000000000000000000092 -S315400375B00000000000000000000000000000000082 -S315400375C00000000000000000000000000000000072 -S315400375D00000000000000000000000000000000062 -S315400375E00000000000000000000000000000000052 -S315400375F00000000000000000000000000000000042 -S315400376000000000000000000000000000000000031 -S315400376100000000000000000000000000000000021 -S315400376200000000000000000000000000000000011 -S315400376300000000000000000000000000000000001 -S3154003764000000000000000000000000000000000F1 -S3154003765000000000000000000000000000000000E1 -S3154003766000000000000000000000000000000000D1 -S3154003767000000000000000000000000000000000C1 -S3154003768000000000000000000000000000000000B1 -S3154003769000000000000000000000000000000000A1 -S315400376A00000000000000000000000000000000091 -S315400376B00000000000000000000000000000000081 -S315400376C00000000000000000000000000000000071 -S315400376D00000000000000000000000000000000061 -S315400376E00000000000000000000000000000000051 -S315400376F00000000000000000000000000000000041 -S315400377000000000000000000000000000000000030 -S315400377100000000000000000000000000000000020 -S315400377200000000000000000000000000000000010 -S315400377300000000000000000000000000000000000 -S3154003774000000000000000000000000000000000F0 -S3154003775000000000000000000000000000000000E0 -S3154003776000000000000000000000000000000000D0 -S3154003777000000000000000000000000000000000C0 -S3154003778000000000000000000000000000000000B0 -S3154003779000000000000000000000000000000000A0 -S315400377A00000000000000000000000000000000090 -S315400377B00000000000000000000000000000000080 -S315400377C00000000000000000000000000000000070 -S315400377D00000000000000000000000000000000060 -S315400377E00000000000000000000000000000000050 -S315400377F00000000000000000000000000000000040 -S31540037800000000000000000000000000000000002F -S31540037810000000000000000000000000000000001F -S31540037820000000000000000000000000000000000F -S3154003783000000000000000000000000000000000FF -S3154003784000000000000000000000000000000000EF -S3154003785000000000000000000000000000000000DF -S3154003786000000000000000000000000000000000CF -S3154003787000000000000000000000000000000000BF -S3154003788000000000000000000000000000000000AF -S31540037890000000000000000000000000000000009F -S315400378A0000000000000000000000000000000008F -S315400378B0000000000000000000000000000000007F -S315400378C0000000000000000000000000000000006F -S315400378D0000000000000000000000000000000005F -S315400378E0000000000000000000000000000000004F -S315400378F0000000000000000000000000000000003F -S31540037900000000000000000000000000000000002E -S31540037910000000000000000000000000000000001E -S31540037920000000000000000000000000000000000E -S3154003793000000000000000000000000000000000FE -S3154003794000000000000000000000000000000000EE -S3154003795000000000000000000000000000000000DE -S3154003796000000000000000000000000000000000CE -S3154003797000000000000000000000000000000000BE -S3154003798000000000000000000000000000000000AE -S31540037990000000000000000000000000000000009E -S315400379A0000000000000000000000000000000008E -S315400379B0000000000000000000000000000000007E -S315400379C0000000000000000000000000000000006E -S315400379D0000000000000000000000000000000005E -S315400379E0000000000000000000000000000000004E -S315400379F0000000000000000000000000000000003E -S31540037A00000000000000000000000000000000002D -S31540037A10000000000000000000000000000000001D -S31540037A20000000000000000000000000000000000D -S31540037A3000000000000000000000000000000000FD -S31540037A4000000000000000000000000000000000ED -S31540037A5000000000000000000000000000000000DD -S31540037A6000000000000000000000000000000000CD -S31540037A7000000000000000000000000000000000BD -S31540037A8000000000000000000000000000000000AD -S31540037A90000000000000000000000000000000009D -S31540037AA0000000000000000000000000000000008D -S31540037AB0000000000000000000000000000000007D -S31540037AC0000000000000000000000000000000006D -S31540037AD0000000000000000000000000000000005D -S31540037AE0000000000000000000000000000000004D -S31540037AF0000000000000000000000000000000003D -S31540037B00000000000000000000000000000000002C -S31540037B10000000000000000000000000000000001C -S31540037B20000000000000000000000000000000000C -S31540037B3000000000000000000000000000000000FC -S31540037B4000000000000000000000000000000000EC -S31540037B5000000000000000000000000000000000DC -S31540037B6000000000000000000000000000000000CC -S31540037B7000000000000000000000000000000000BC -S31540037B8000000000000000000000000000000000AC -S31540037B90000000000000000000000000000000009C -S31540037BA0000000000000000000000000000000008C -S31540037BB0000000000000000000000000000000007C -S31540037BC0000000000000000000000000000000006C -S31540037BD0000000000000000000000000000000005C -S31540037BE0000000000000000000000000000000004C -S31540037BF0000000000000000000000000000000003C -S31540037C00000000000000000000000000000000002B -S31540037C10000000000000000000000000000000001B -S31540037C20000000000000000000000000000000000B -S31540037C3000000000000000000000000000000000FB -S31540037C4000000000000000000000000000000000EB -S31540037C5000000000000000000000000000000000DB -S31540037C6000000000000000000000000000000000CB -S31540037C7000000000000000000000000000000000BB -S31540037C8000000000000000000000000000000000AB -S31540037C90000000000000000000000000000000009B -S31540037CA0000000000000000000000000000000008B -S31540037CB0000000000000000000000000000000007B -S31540037CC0000000000000000000000000000000006B -S31540037CD0000000000000000000000000000000005B -S31540037CE0000000000000000000000000000000004B -S31540037CF0000000000000000000000000000000003B -S31540037D00000000000000000000000000000000002A -S31540037D10000000000000000000000000000000001A -S31540037D20000000000000000000000000000000000A -S31540037D3000000000000000000000000000000000FA -S31540037D4000000000000000000000000000000000EA -S31540037D5000000000000000000000000000000000DA -S31540037D6000000000000000000000000000000000CA -S31540037D7000000000000000000000000000000000BA -S31540037D8000000000000000000000000000000000AA -S31540037D90000000000000000000000000000000009A -S31540037DA0000000000000000000000000000000008A -S31540037DB0000000000000000000000000000000007A -S31540037DC0000000000000000000000000000000006A -S31540037DD0000000000000000000000000000000005A -S31540037DE0000000000000000000000000000000004A -S31540037DF0000000000000000000000000000000003A -S31540037E000000000000000000000000000000000029 -S31540037E100000000000000000000000000000000019 -S31540037E200000000000000000000000000000000009 -S31540037E3000000000000000000000000000000000F9 -S31540037E4000000000000000000000000000000000E9 -S31540037E5000000000000000000000000000000000D9 -S31540037E6000000000000000000000000000000000C9 -S31540037E7000000000000000000000000000000000B9 -S31540037E8000000000000000000000000000000000A9 -S31540037E900000000000000000000000000000000099 -S31540037EA00000000000000000000000000000000089 -S31540037EB00000000000000000000000000000000079 -S31540037EC00000000000000000000000000000000069 -S31540037ED00000000000000000000000000000000059 -S31540037EE00000000000000000000000000000000049 -S31540037EF00000000000000000000000000000000039 -S31540037F000000000000000000000000000000000028 -S31540037F100000000000000000000000000000000018 -S31540037F200000000000000000000000000000000008 -S31540037F3000000000000000000000000000000000F8 -S31540037F4000000000000000000000000000000000E8 -S31540037F5000000000000000000000000000000000D8 -S31540037F6000000000000000000000000000000000C8 -S31540037F7000000000000000000000000000000000B8 -S31540037F8000000000000000000000000000000000A8 -S31540037F900000000000000000000000000000000098 -S31540037FA00000000000000000000000000000000088 -S31540037FB00000000000000000000000000000000078 -S31540037FC00000000000000000000000000000000068 -S31540037FD00000000000000000000000000000000058 -S31540037FE00000000000000000000000000000000048 -S31540037FF00000000000000000000000000000000038 -S315400380000000000000000000000000000000000027 -S315400380100000000000000000000000000000000017 -S315400380200000000000000000000000000000000007 -S3154003803000000000000000000000000000000000F7 -S3154003804000000000000000000000000000000000E7 -S3154003805000000000000000000000000000000000D7 -S3154003806000000000000000000000000000000000C7 -S3154003807000000000000000000000000000000000B7 -S3154003808000000000000000000000000000000000A7 -S315400380900000000000000000000000000000000097 -S315400380A00000000000000000000000000000000087 -S315400380B00000000000000000000000000000000077 -S315400380C00000000000000000000000000000000067 -S315400380D00000000000000000000000000000000057 -S315400380E00000000000000000000000000000000047 -S315400380F00000000000000000000000000000000037 -S315400381000000000000000000000000000000000026 -S315400381100000000000000000000000000000000016 -S315400381200000000000000000000000000000000006 -S3154003813000000000000000000000000000000000F6 -S3154003814000000000000000000000000000000000E6 -S3154003815000000000000000000000000000000000D6 -S3154003816000000000000000000000000000000000C6 -S3154003817000000000000000000000000000000000B6 -S3154003818000000000000000000000000000000000A6 -S315400381900000000000000000000000000000000096 -S315400381A00000000000000000000000000000000086 -S315400381B00000000000000000000000000000000076 -S315400381C00000000000000000000000000000000066 -S315400381D00000000000000000000000000000000056 -S315400381E00000000000000000000000000000000046 -S315400381F00000000000000000000000000000000036 -S315400382000000000000000000000000000000000025 -S315400382100000000000000000000000000000000015 -S315400382200000000000000000000000000000000005 -S3154003823000000000000000000000000000000000F5 -S3154003824000000000000000000000000000000000E5 -S3154003825000000000000000000000000000000000D5 -S3154003826000000000000000000000000000000000C5 -S3154003827000000000000000000000000000000000B5 -S3154003828000000000000000000000000000000000A5 -S315400382900000000000000000000000000000000095 -S315400382A00000000000000000000000000000000085 -S315400382B00000000000000000000000000000000075 -S315400382C00000000000000000000000000000000065 -S315400382D00000000000000000000000000000000055 -S315400382E00000000000000000000000000000000045 -S315400382F00000000000000000000000000000000035 -S315400383000000000000000000000000000000000024 -S315400383100000000000000000000000000000000014 -S315400383200000000000000000000000000000000004 -S3154003833000000000000000000000000000000000F4 -S3154003834000000000000000000000000000000000E4 -S3154003835000000000000000000000000000000000D4 -S3154003836000000000000000000000000000000000C4 -S3154003837000000000000000000000000000000000B4 -S3154003838000000000000000000000000000000000A4 -S315400383900000000000000000000000000000000094 -S315400383A00000000000000000000000000000000084 -S315400383B00000000000000000000000000000000074 -S315400383C00000000000000000000000000000000064 -S315400383D00000000000000000000000000000000054 -S315400383E00000000000000000000000000000000044 -S315400383F00000000000000000000000000000000034 -S315400384000000000000000000000000000000000023 -S315400384100000000000000000000000000000000013 -S315400384200000000000000000000000000000000003 -S3154003843000000000000000000000000000000000F3 -S3154003844000000000000000000000000000000000E3 -S3154003845000000000000000000000000000000000D3 -S3154003846000000000000000000000000000000000C3 -S3154003847000000000000000000000000000000000B3 -S3154003848000000000000000000000000000000000A3 -S315400384900000000000000000000000000000000093 -S315400384A00000000000000000000000000000000083 -S315400384B00000000000000000000000000000000073 -S315400384C00000000000000000000000000000000063 -S315400384D00000000000000000000000000000000053 -S315400384E00000000000000000000000000000000043 -S315400384F00000000000000000000000000000000033 -S315400385000000000000000000000000000000000022 -S315400385100000000000000000000000000000000012 -S315400385200000000000000000000000000000000002 -S3154003853000000000000000000000000000000000F2 -S3154003854000000000000000000000000000000000E2 -S3154003855000000000000000000000000000000000D2 -S3154003856000000000000000000000000000000000C2 -S3154003857000000000000000000000000000000000B2 -S3154003858000000000000000000000000000000000A2 -S315400385900000000000000000000000000000000092 -S315400385A00000000000000000000000000000000082 -S315400385B00000000000000000000000000000000072 -S315400385C00000000000000000000000000000000062 -S315400385D00000000000000000000000000000000052 -S315400385E00000000000000000000000000000000042 -S315400385F00000000000000000000000000000000032 -S315400386000000000000000000000000000000000021 -S315400386100000000000000000000000000000000011 -S315400386200000000000000000000000000000000001 -S3154003863000000000000000000000000000000000F1 -S3154003864000000000000000000000000000000000E1 -S3154003865000000000000000000000000000000000D1 -S3154003866000000000000000000000000000000000C1 -S3154003867000000000000000000000000000000000B1 -S3154003868000000000000000000000000000000000A1 -S315400386900000000000000000000000000000000091 -S315400386A00000000000000000000000000000000081 -S315400386B00000000000000000000000000000000071 -S315400386C00000000000000000000000000000000061 -S315400386D00000000000000000000000000000000051 -S315400386E00000000000000000000000000000000041 -S315400386F00000000000000000000000000000000031 -S315400387000000000000000000000000000000000020 -S315400387100000000000000000000000000000000010 -S315400387200000000000000000000000000000000000 -S3154003873000000000000000000000000000000000F0 -S3154003874000000000000000000000000000000000E0 -S3154003875000000000000000000000000000000000D0 -S3154003876000000000000000000000000000000000C0 -S3154003877000000000000000000000000000000000B0 -S3154003878000000000000000000000000000000000A0 -S315400387900000000000000000000000000000000090 -S315400387A00000000000000000000000000000000080 -S315400387B00000000000000000000000000000000070 -S315400387C00000000000000000000000000000000060 -S315400387D00000000000000000000000000000000050 -S315400387E00000000000000000000000000000000040 -S315400387F00000000000000000000000000000000030 -S31540038800000000000000000000000000000000001F -S31540038810000000000000000000000000000000000F -S3154003882000000000000000000000000000000000FF -S3154003883000000000000000000000000000000000EF -S3154003884000000000000000000000000000000000DF -S3154003885000000000000000000000000000000000CF -S3154003886000000000000000000000000000000000BF -S3154003887000000000000000000000000000000000AF -S31540038880000000000000000000000000000000009F -S31540038890000000000000000000000000000000008F -S315400388A0000000000000000000000000000000007F -S315400388B0000000000000000000000000000000006F -S315400388C0000000000000000000000000000000005F -S315400388D0000000000000000000000000000000004F -S315400388E0000000000000000000000000000000003F -S315400388F0000000000000000000000000000000002F -S31540038900000000000000000000000000000000001E -S31540038910000000000000000000000000000000000E -S3154003892000000000000000000000000000000000FE -S3154003893000000000000000000000000000000000EE -S3154003894000000000000000000000000000000000DE -S3154003895000000000000000000000000000000000CE -S3154003896000000000000000000000000000000000BE -S3154003897000000000000000000000000000000000AE -S31540038980000000000000000000000000000000009E -S31540038990000000000000000000000000000000008E -S315400389A0000000000000000000000000000000007E -S315400389B0000000000000000000000000000000006E -S315400389C0000000000000000000000000000000005E -S315400389D0000000000000000000000000000000004E -S315400389E0000000000000000000000000000000003E -S315400389F0000000000000000000000000000000002E -S31540038A00000000000000000000000000000000001D -S31540038A10000000000000000000000000000000000D -S31540038A2000000000000000000000000000000000FD -S31540038A3000000000000000000000000000000000ED -S31540038A4000000000000000000000000000000000DD -S31540038A5000000000000000000000000000000000CD -S31540038A6000000000000000000000000000000000BD -S31540038A7000000000000000000000000000000000AD -S31540038A80000000000000000000000000000000009D -S31540038A90000000000000000000000000000000008D -S31540038AA0000000000000000000000000000000007D -S31540038AB0000000000000000000000000000000006D -S31540038AC0000000000000000000000000000000005D -S31540038AD0000000000000000000000000000000004D -S31540038AE0000000000000000000000000000000003D -S31540038AF0000000000000000000000000000000002D -S31540038B00000000000000000000000000000000001C -S31540038B10000000000000000000000000000000000C -S31540038B2000000000000000000000000000000000FC -S31540038B3000000000000000000000000000000000EC -S31540038B4000000000000000000000000000000000DC -S31540038B5000000000000000000000000000000000CC -S31540038B6000000000000000000000000000000000BC -S31540038B7000000000000000000000000000000000AC -S31540038B80000000000000000000000000000000009C -S31540038B90000000000000000000000000000000008C -S31540038BA0000000000000000000000000000000007C -S31540038BB0000000000000000000000000000000006C -S31540038BC0000000000000000000000000000000005C -S31540038BD0000000000000000000000000000000004C -S31540038BE0000000000000000000000000000000003C -S31540038BF0000000000000000000000000000000002C -S31540038C00000000000000000000000000000000001B -S31540038C10000000000000000000000000000000000B -S31540038C2000000000000000000000000000000000FB -S31540038C3000000000000000000000000000000000EB -S31540038C4000000000000000000000000000000000DB -S31540038C5000000000000000000000000000000000CB -S31540038C6000000000000000000000000000000000BB -S31540038C7000000000000000000000000000000000AB -S31540038C80000000000000000000000000000000009B -S31540038C90000000000000000000000000000000008B -S31540038CA0000000000000000000000000000000007B -S31540038CB0000000000000000000000000000000006B -S31540038CC0000000000000000000000000000000005B -S31540038CD0000000000000000000000000000000004B -S31540038CE0000000000000000000000000000000003B -S31540038CF0000000000000000000000000000000002B -S31540038D00000000000000000000000000000000001A -S31540038D10000000000000000000000000000000000A -S31540038D2000000000000000000000000000000000FA -S31540038D3000000000000000000000000000000000EA -S31540038D4000000000000000000000000000000000DA -S31540038D5000000000000000000000000000000000CA -S31540038D6000000000000000000000000000000000BA -S31540038D7000000000000000000000000000000000AA -S31540038D80000000000000000000000000000000009A -S31540038D90000000000000000000000000000000008A -S31540038DA0000000000000000000000000000000007A -S31540038DB0000000000000000000000000000000006A -S31540038DC0000000000000000000000000000000005A -S31540038DD0000000000000000000000000000000004A -S31540038DE0000000000000000000000000000000003A -S31540038DF0000000000000000000000000000000002A -S31540038E000000000000000000000000000000000019 -S31540038E100000000000000000000000000000000009 -S31540038E2000000000000000000000000000000000F9 -S31540038E3000000000000000000000000000000000E9 -S31540038E4000000000000000000000000000000000D9 -S31540038E5000000000000000000000000000000000C9 -S31540038E6000000000000000000000000000000000B9 -S31540038E7000000000000000000000000000000000A9 -S31540038E800000000000000000000000000000000099 -S31540038E900000000000000000000000000000000089 -S31540038EA00000000000000000000000000000000079 -S31540038EB00000000000000000000000000000000069 -S31540038EC00000000000000000000000000000000059 -S31540038ED00000000000000000000000000000000049 -S31540038EE00000000000000000000000000000000039 -S31540038EF00000000000000000000000000000000029 -S31540038F000000000000000000000000000000000018 -S31540038F100000000000000000000000000000000008 -S31540038F2000000000000000000000000000000000F8 -S31540038F3000000000000000000000000000000000E8 -S31540038F4000000000000000000000000000000000D8 -S31540038F5000000000000000000000000000000000C8 -S31540038F6000000000000000000000000000000000B8 -S31540038F7000000000000000000000000000000000A8 -S31540038F800000000000000000000000000000000098 -S31540038F900000000000000000000000000000000088 -S31540038FA00000000000000000000000000000000078 -S31540038FB00000000000000000000000000000000068 -S31540038FC00000000000000000000000000000000058 -S31540038FD00000000000000000000000000000000048 -S31540038FE00000000000000000000000000000000038 -S31540038FF00000000000000000000000000000000028 -S315400390000000000000000000000000000000000017 -S315400390100000000000000000000000000000000007 -S3154003902000000000000000000000000000000000F7 -S3154003903000000000000000000000000000000000E7 -S3154003904000000000000000000000000000000000D7 -S3154003905000000000000000000000000000000000C7 -S3154003906000000000000000000000000000000000B7 -S3154003907000000000000000000000000000000000A7 -S315400390800000000000000000000000000000000097 -S315400390900000000000000000000000000000000087 -S315400390A00000000000000000000000000000000077 -S315400390B00000000000000000000000000000000067 -S315400390C00000000000000000000000000000000057 -S315400390D00000000000000000000000000000000047 -S315400390E00000000000000000000000000000000037 -S315400390F00000000000000000000000000000000027 -S315400391000000000000000000000000000000000016 -S315400391100000000000000000000000000000000006 -S3154003912000000000000000000000000000000000F6 -S3154003913000000000000000000000000000000000E6 -S3154003914000000000000000000000000000000000D6 -S3154003915000000000000000000000000000000000C6 -S3154003916000000000000000000000000000000000B6 -S3154003917000000000000000000000000000000000A6 -S315400391800000000000000000000000000000000096 -S315400391900000000000000000000000000000000086 -S315400391A00000000000000000000000000000000076 -S315400391B00000000000000000000000000000000066 -S315400391C00000000000000000000000000000000056 -S315400391D00000000000000000000000000000000046 -S315400391E00000000000000000000000000000000036 -S315400391F00000000000000000000000000000000026 -S315400392000000000000000000000000000000000015 -S315400392100000000000000000000000000000000005 -S3154003922000000000000000000000000000000000F5 -S3154003923000000000000000000000000000000000E5 -S3154003924000000000000000000000000000000000D5 -S3154003925000000000000000000000000000000000C5 -S3154003926000000000000000000000000000000000B5 -S3154003927000000000000000000000000000000000A5 -S315400392800000000000000000000000000000000095 -S315400392900000000000000000000000000000000085 -S315400392A00000000000000000000000000000000075 -S315400392B00000000000000000000000000000000065 -S315400392C00000000000000000000000000000000055 -S315400392D00000000000000000000000000000000045 -S315400392E00000000000000000000000000000000035 -S315400392F00000000000000000000000000000000025 -S315400393000000000000000000000000000000000014 -S315400393100000000000000000000000000000000004 -S3154003932000000000000000000000000000000000F4 -S3154003933000000000000000000000000000000000E4 -S3154003934000000000000000000000000000000000D4 -S3154003935000000000000000000000000000000000C4 -S3154003936000000000000000000000000000000000B4 -S3154003937000000000000000000000000000000000A4 -S315400393800000000000000000000000000000000094 -S315400393900000000000000000000000000000000084 -S315400393A00000000000000000000000000000000074 -S315400393B00000000000000000000000000000000064 -S315400393C00000000000000000000000000000000054 -S315400393D00000000000000000000000000000000044 -S315400393E00000000000000000000000000000000034 -S315400393F00000000000000000000000000000000024 -S315400394000000000000000000000000000000000013 -S315400394100000000000000000000000000000000003 -S3154003942000000000000000000000000000000000F3 -S3154003943000000000000000000000000000000000E3 -S3154003944000000000000000000000000000000000D3 -S3154003945000000000000000000000000000000000C3 -S3154003946000000000000000000000000000000000B3 -S3154003947000000000000000000000000000000000A3 -S315400394800000000000000000000000000000000093 -S315400394900000000000000000000000000000000083 -S315400394A00000000000000000000000000000000073 -S315400394B00000000000000000000000000000000063 -S315400394C00000000000000000000000000000000053 -S315400394D00000000000000000000000000000000043 -S315400394E00000000000000000000000000000000033 -S315400394F00000000000000000000000000000000023 -S315400395000000000000000000000000000000000012 -S315400395100000000000000000000000000000000002 -S3154003952000000000000000000000000000000000F2 -S3154003953000000000000000000000000000000000E2 -S3154003954000000000000000000000000000000000D2 -S3154003955000000000000000000000000000000000C2 -S3154003956000000000000000000000000000000000B2 -S3154003957000000000000000000000000000000000A2 -S315400395800000000000000000000000000000000092 -S315400395900000000000000000000000000000000082 -S315400395A00000000000000000000000000000000072 -S315400395B00000000000000000000000000000000062 -S315400395C00000000000000000000000000000000052 -S315400395D00000000000000000000000000000000042 -S315400395E00000000000000000000000000000000032 -S315400395F00000000000000000000000000000000022 -S315400396000000000000000000000000000000000011 -S315400396100000000000000000000000000000000001 -S3154003962000000000000000000000000000000000F1 -S3154003963000000000000000000000000000000000E1 -S3154003964000000000000000000000000000000000D1 -S3154003965000000000000000000000000000000000C1 -S3154003966000000000000000000000000000000000B1 -S3154003967000000000000000000000000000000000A1 -S315400396800000000000000000000000000000000091 -S315400396900000000000000000000000000000000081 -S315400396A00000000000000000000000000000000071 -S315400396B00000000000000000000000000000000061 -S315400396C00000000000000000000000000000000051 -S315400396D00000000000000000000000000000000041 -S315400396E00000000000000000000000000000000031 -S315400396F00000000000000000000000000000000021 -S315400397000000000000000000000000000000000010 -S315400397100000000000000000000000000000000000 -S3154003972000000000000000000000000000000000F0 -S3154003973000000000000000000000000000000000E0 -S3154003974000000000000000000000000000000000D0 -S3154003975000000000000000000000000000000000C0 -S3154003976000000000000000000000000000000000B0 -S3154003977000000000000000000000000000000000A0 -S315400397800000000000000000000000000000000090 -S315400397900000000000000000000000000000000080 -S315400397A00000000000000000000000000000000070 -S315400397B00000000000000000000000000000000060 -S315400397C00000000000000000000000000000000050 -S315400397D00000000000000000000000000000000040 -S315400397E00000000000000000000000000000000030 -S315400397F00000000000000000000000000000000020 -S31540039800000000000000000000000000000000000F -S3154003981000000000000000000000000000000000FF -S3154003982000000000000000000000000000000000EF -S3154003983000000000000000000000000000000000DF -S3154003984000000000000000000000000000000000CF -S3154003985000000000000000000000000000000000BF -S3154003986000000000000000000000000000000000AF -S31540039870000000000000000000000000000000009F -S31540039880000000000000000000000000000000008F -S31540039890000000000000000000000000000000007F -S315400398A0000000000000000000000000000000006F -S315400398B0000000000000000000000000000000005F -S315400398C0000000000000000000000000000000004F -S315400398D0000000000000000000000000000000003F -S315400398E0000000000000000000000000000000002F -S315400398F0000000000000000000000000000000001F -S31540039900000000000000000000000000000000000E -S3154003991000000000000000000000000000000000FE -S3154003992000000000000000000000000000000000EE -S3154003993000000000000000000000000000000000DE -S3154003994000000000000000000000000000000000CE -S3154003995000000000000000000000000000000000BE -S3154003996000000000000000000000000000000000AE -S31540039970000000000000000000000000000000009E -S31540039980000000000000000000000000000000008E -S31540039990000000000000000000000000000000007E -S315400399A0000000000000000000000000000000006E -S315400399B0000000000000000000000000000000005E -S315400399C0000000000000000000000000000000004E -S315400399D0000000000000000000000000000000003E -S315400399E0000000000000000000000000000000002E -S315400399F0000000000000000000000000000000001E -S31540039A00000000000000000000000000000000000D -S31540039A1000000000000000000000000000000000FD -S31540039A2000000000000000000000000000000000ED -S31540039A3000000000000000000000000000000000DD -S31540039A4000000000000000000000000000000000CD -S31540039A5000000000000000000000000000000000BD -S31540039A6000000000000000000000000000000000AD -S31540039A70000000000000000000000000000000009D -S31540039A80000000000000000000000000000000008D -S31540039A90000000000000000000000000000000007D -S31540039AA0000000000000000000000000000000006D -S31540039AB0000000000000000000000000000000005D -S31540039AC0000000000000000000000000000000004D -S31540039AD0000000000000000000000000000000003D -S31540039AE0000000000000000000000000000000002D -S31540039AF0000000000000000000000000000000001D -S31540039B00000000000000000000000000000000000C -S31540039B1000000000000000000000000000000000FC -S31540039B2000000000000000000000000000000000EC -S31540039B3000000000000000000000000000000000DC -S31540039B4000000000000000000000000000000000CC -S31540039B5000000000000000000000000000000000BC -S31540039B6000000000000000000000000000000000AC -S31540039B70000000000000000000000000000000009C -S31540039B80000000000000000000000000000000008C -S31540039B90000000000000000000000000000000007C -S31540039BA0000000000000000000000000000000006C -S31540039BB0000000000000000000000000000000005C -S31540039BC0000000000000000000000000000000004C -S31540039BD0000000000000000000000000000000003C -S31540039BE0000000000000000000000000000000002C -S31540039BF0000000000000000000000000000000001C -S31540039C00000000000000000000000000000000000B -S31540039C1000000000000000000000000000000000FB -S31540039C2000000000000000000000000000000000EB -S31540039C3000000000000000000000000000000000DB -S31540039C4000000000000000000000000000000000CB -S31540039C5000000000000000000000000000000000BB -S31540039C6000000000000000000000000000000000AB -S31540039C70000000000000000000000000000000009B -S31540039C80000000000000000000000000000000008B -S31540039C90000000000000000000000000000000007B -S31540039CA0000000000000000000000000000000006B -S31540039CB0000000000000000000000000000000005B -S31540039CC0000000000000000000000000000000004B -S31540039CD0000000000000000000000000000000003B -S31540039CE0000000000000000000000000000000002B -S31540039CF0000000000000000000000000000000001B -S31540039D00000000000000000000000000000000000A -S31540039D1000000000000000000000000000000000FA -S31540039D2000000000000000000000000000000000EA -S31540039D3000000000000000000000000000000000DA -S31540039D4000000000000000000000000000000000CA -S31540039D5000000000000000000000000000000000BA -S31540039D6000000000000000000000000000000000AA -S31540039D70000000000000000000000000000000009A -S31540039D80000000000000000000000000000000008A -S31540039D90000000000000000000000000000000007A -S31540039DA0000000000000000000000000000000006A -S31540039DB0000000000000000000000000000000005A -S31540039DC0000000000000000000000000000000004A -S31540039DD0000000000000000000000000000000003A -S31540039DE0000000000000000000000000000000002A -S31540039DF0000000000000000000000000000000001A -S31540039E000000000000000000000000000000000009 -S31540039E1000000000000000000000000000000000F9 -S31540039E2000000000000000000000000000000000E9 -S31540039E3000000000000000000000000000000000D9 -S31540039E4000000000000000000000000000000000C9 -S31540039E5000000000000000000000000000000000B9 -S31540039E6000000000000000000000000000000000A9 -S31540039E700000000000000000000000000000000099 -S31540039E800000000000000000000000000000000089 -S31540039E900000000000000000000000000000000079 -S31540039EA00000000000000000000000000000000069 -S31540039EB00000000000000000000000000000000059 -S31540039EC00000000000000000000000000000000049 -S31540039ED00000000000000000000000000000000039 -S31540039EE00000000000000000000000000000000029 -S31540039EF00000000000000000000000000000000019 -S31540039F000000000000000000000000000000000008 -S31540039F1000000000000000000000000000000000F8 -S31540039F2000000000000000000000000000000000E8 -S31540039F3000000000000000000000000000000000D8 -S31540039F4000000000000000000000000000000000C8 -S31540039F5000000000000000000000000000000000B8 -S31540039F6000000000000000000000000000000000A8 -S31540039F700000000000000000000000000000000098 -S31540039F800000000000000000000000000000000088 -S31540039F900000000000000000000000000000000078 -S31540039FA00000000000000000000000000000000068 -S31540039FB00000000000000000000000000000000058 -S31540039FC00000000000000000000000000000000048 -S31540039FD00000000000000000000000000000000038 -S31540039FE00000000000000000000000000000000028 -S31540039FF00000000000000000000000000000000018 -S3154003A0000000000000000000000000000000000007 -S3154003A01000000000000000000000000000000000F7 -S3154003A02000000000000000000000000000000000E7 -S3154003A03000000000000000000000000000000000D7 -S3154003A04000000000000000000000000000000000C7 -S3154003A05000000000000000000000000000000000B7 -S3154003A06000000000000000000000000000000000A7 -S3154003A0700000000000000000000000000000000097 -S3154003A0800000000000000000000000000000000087 -S3154003A0900000000000000000000000000000000077 -S3154003A0A00000000000000000000000000000000067 -S3154003A0B00000000000000000000000000000000057 -S3154003A0C00000000000000000000000000000000047 -S3154003A0D00000000000000000000000000000000037 -S3154003A0E00000000000000000000000000000000027 -S3154003A0F00000000000000000000000000000000017 -S3154003A1000000000000000000000000000000000006 -S3154003A11000000000000000000000000000000000F6 -S3154003A12000000000000000000000000000000000E6 -S3154003A13000000000000000000000000000000000D6 -S3154003A14000000000000000000000000000000000C6 -S3154003A15000000000000000000000000000000000B6 -S3154003A16000000000000000000000000000000000A6 -S3154003A1700000000000000000000000000000000096 -S3154003A1800000000000000000000000000000000086 -S3154003A1900000000000000000000000000000000076 -S3154003A1A00000000000000000000000000000000066 -S3154003A1B00000000000000000000000000000000056 -S3154003A1C00000000000000000000000000000000046 -S3154003A1D00000000000000000000000000000000036 -S3154003A1E00000000000000000000000000000000026 -S3154003A1F00000000000000000000000000000000016 -S3154003A2000000000000000000000000000000000005 -S3154003A21000000000000000000000000000000000F5 -S3154003A22000000000000000000000000000000000E5 -S3154003A23000000000000000000000000000000000D5 -S3154003A24000000000000000000000000000000000C5 -S3154003A25000000000000000000000000000000000B5 -S3154003A26000000000000000000000000000000000A5 -S3154003A2700000000000000000000000000000000095 -S3154003A2800000000000000000000000000000000085 -S3154003A2900000000000000000000000000000000075 -S3154003A2A00000000000000000000000000000000065 -S3154003A2B00000000000000000000000000000000055 -S3154003A2C00000000000000000000000000000000045 -S3154003A2D00000000000000000000000000000000035 -S3154003A2E00000000000000000000000000000000025 -S3154003A2F00000000000000000000000000000000015 -S3154003A3000000000000000000000000000000000004 -S3154003A31000000000000000000000000000000000F4 -S3154003A32000000000000000000000000000000000E4 -S3154003A33000000000000000000000000000000000D4 -S3154003A34000000000000000000000000000000000C4 -S3154003A35000000000000000000000000000000000B4 -S3154003A36000000000000000000000000000000000A4 -S3154003A3700000000000000000000000000000000094 -S3154003A3800000000000000000000000000000000084 -S3154003A3900000000000000000000000000000000074 -S3154003A3A00000000000000000000000000000000064 -S3154003A3B00000000000000000000000000000000054 -S3154003A3C00000000000000000000000000000000044 -S3154003A3D00000000000000000000000000000000034 -S3154003A3E00000000000000000000000000000000024 -S3154003A3F00000000000000000000000000000000014 -S3154003A4000000000000000000000000000000000003 -S3154003A41000000000000000000000000000000000F3 -S3154003A42000000000000000000000000000000000E3 -S3154003A43000000000000000000000000000000000D3 -S3154003A44000000000000000000000000000000000C3 -S3154003A45000000000000000000000000000000000B3 -S3154003A46000000000000000000000000000000000A3 -S3154003A4700000000000000000000000000000000093 -S3154003A4800000000000000000000000000000000083 -S3154003A4900000000000000000000000000000000073 -S3154003A4A00000000000000000000000000000000063 -S3154003A4B00000000000000000000000000000000053 -S3154003A4C00000000000000000000000000000000043 -S3154003A4D00000000000000000000000000000000033 -S3154003A4E00000000000000000000000000000000023 -S3154003A4F00000000000000000000000000000000013 -S3154003A5000000000000000000000000000000000002 -S3154003A51000000000000000000000000000000000F2 -S3154003A52000000000000000000000000000000000E2 -S3154003A53000000000000000000000000000000000D2 -S3154003A54000000000000000000000000000000000C2 -S3154003A55000000000000000000000000000000000B2 -S3154003A56000000000000000000000000000000000A2 -S3154003A5700000000000000000000000000000000092 -S3154003A5800000000000000000000000000000000082 -S3154003A5900000000000000000000000000000000072 -S3154003A5A00000000000000000000000000000000062 -S3154003A5B00000000000000000000000000000000052 -S3154003A5C00000000000000000000000000000000042 -S3154003A5D00000000000000000000000000000000032 -S3154003A5E00000000000000000000000000000000022 -S3154003A5F00000000000000000000000000000000012 -S3154003A6000000000000000000000000000000000001 -S3154003A61000000000000000000000000000000000F1 -S3154003A62000000000000000000000000000000000E1 -S3154003A63000000000000000000000000000000000D1 -S3154003A64000000000000000000000000000000000C1 -S3154003A65000000000000000000000000000000000B1 -S3154003A66000000000000000000000000000000000A1 -S3154003A6700000000000000000000000000000000091 -S3154003A6800000000000000000000000000000000081 -S3154003A6900000000000000000000000000000000071 -S3154003A6A00000000000000000000000000000000061 -S3154003A6B00000000000000000000000000000000051 -S3154003A6C00000000000000000000000000000000041 -S3154003A6D00000000000000000000000000000000031 -S3154003A6E00000000000000000000000000000000021 -S3154003A6F00000000000000000000000000000000011 -S3154003A7000000000000000000000000000000000000 -S3154003A71000000000000000000000000000000000F0 -S3154003A72000000000000000000000000000000000E0 -S3154003A73000000000000000000000000000000000D0 -S3154003A74000000000000000000000000000000000C0 -S3154003A75000000000000000000000000000000000B0 -S3154003A76000000000000000000000000000000000A0 -S3154003A7700000000000000000000000000000000090 -S3154003A7800000000000000000000000000000000080 -S3154003A7900000000000000000000000000000000070 -S3154003A7A00000000000000000000000000000000060 -S3154003A7B00000000000000000000000000000000050 -S3154003A7C00000000000000000000000000000000040 -S3154003A7D00000000000000000000000000000000030 -S3154003A7E00000000000000000000000000000000020 -S3154003A7F00000000000000000000000000000000010 -S3154003A80000000000000000000000000000000000FF -S3154003A81000000000000000000000000000000000EF -S3154003A82000000000000000000000000000000000DF -S3154003A83000000000000000000000000000000000CF -S3154003A84000000000000000000000000000000000BF -S3154003A85000000000000000000000000000000000AF -S3154003A860000000000000000000000000000000009F -S3154003A870000000000000000000000000000000008F -S3154003A880000000000000000000000000000000007F -S3154003A890000000000000000000000000000000006F -S3154003A8A0000000000000000000000000000000005F -S3154003A8B0000000000000000000000000000000004F -S3154003A8C0000000000000000000000000000000003F -S3154003A8D0000000000000000000000000000000002F -S3154003A8E0000000000000000000000000000000001F -S3154003A8F0000000000000000000000000000000000F -S3154003A90000000000000000000000000000000000FE -S3154003A91000000000000000000000000000000000EE -S3154003A92000000000000000000000000000000000DE -S3154003A93000000000000000000000000000000000CE -S3154003A94000000000000000000000000000000000BE -S3154003A95000000000000000000000000000000000AE -S3154003A960000000000000000000000000000000009E -S3154003A970000000000000000000000000000000008E -S3154003A980000000000000000000000000000000007E -S3154003A990000000000000000000000000000000006E -S3154003A9A0000000000000000000000000000000005E -S3154003A9B0000000000000000000000000000000004E -S3154003A9C0000000000000000000000000000000003E -S3154003A9D0000000000000000000000000000000002E -S3154003A9E0000000000000000000000000000000001E -S3154003A9F0000000000000000000000000000000000E -S3154003AA0000000000000000000000000000000000FD -S3154003AA1000000000000000000000000000000000ED -S3154003AA2000000000000000000000000000000000DD -S3154003AA3000000000000000000000000000000000CD -S3154003AA4000000000000000000000000000000000BD -S3154003AA5000000000000000000000000000000000AD -S3154003AA60000000000000000000000000000000009D -S3154003AA70000000000000000000000000000000008D -S3154003AA80000000000000000000000000000000007D -S3154003AA90000000000000000000000000000000006D -S3154003AAA0000000000000000000000000000000005D -S3154003AAB0000000000000000000000000000000004D -S3154003AAC0000000000000000000000000000000003D -S3154003AAD0000000000000000000000000000000002D -S3154003AAE0000000000000000000000000000000001D -S3154003AAF0000000000000000000000000000000000D -S3154003AB0000000000000000000000000000000000FC -S3154003AB1000000000000000000000000000000000EC -S3154003AB2000000000000000000000000000000000DC -S3154003AB3000000000000000000000000000000000CC -S3154003AB4000000000000000000000000000000000BC -S3154003AB5000000000000000000000000000000000AC -S3154003AB60000000000000000000000000000000009C -S3154003AB70000000000000000000000000000000008C -S3154003AB80000000000000000000000000000000007C -S3154003AB90000000000000000000000000000000006C -S3154003ABA0000000000000000000000000000000005C -S3154003ABB0000000000000000000000000000000004C -S3154003ABC0000000000000000000000000000000003C -S3154003ABD0000000000000000000000000000000002C -S3154003ABE0000000000000000000000000000000001C -S3154003ABF0000000000000000000000000000000000C -S3154003AC0000000000000000000000000000000000FB -S3154003AC1000000000000000000000000000000000EB -S3154003AC2000000000000000000000000000000000DB -S3154003AC3000000000000000000000000000000000CB -S3154003AC4000000000000000000000000000000000BB -S3154003AC5000000000000000000000000000000000AB -S3154003AC60000000000000000000000000000000009B -S3154003AC70000000000000000000000000000000008B -S3154003AC80000000000000000000000000000000007B -S3154003AC90000000000000000000000000000000006B -S3154003ACA0000000000000000000000000000000005B -S3154003ACB0000000000000000000000000000000004B -S3154003ACC0000000000000000000000000000000003B -S3154003ACD0000000000000000000000000000000002B -S3154003ACE0000000000000000000000000000000001B -S3154003ACF0000000000000000000000000000000000B -S3154003AD0000000000000000000000000000000000FA -S3154003AD1000000000000000000000000000000000EA -S3154003AD2000000000000000000000000000000000DA -S3154003AD3000000000000000000000000000000000CA -S3154003AD4000000000000000000000000000000000BA -S3154003AD5000000000000000000000000000000000AA -S3154003AD60000000000000000000000000000000009A -S3154003AD70000000000000000000000000000000008A -S3154003AD80000000000000000000000000000000007A -S3154003AD90000000000000000000000000000000006A -S3154003ADA0000000000000000000000000000000005A -S3154003ADB0000000000000000000000000000000004A -S3154003ADC0000000000000000000000000000000003A -S3154003ADD0000000000000000000000000000000002A -S3154003ADE0000000000000000000000000000000001A -S3154003ADF0000000000000000000000000000000000A -S3154003AE0000000000000000000000000000000000F9 -S3154003AE1000000000000000000000000000000000E9 -S3154003AE2000000000000000000000000000000000D9 -S3154003AE3000000000000000000000000000000000C9 -S3154003AE4000000000000000000000000000000000B9 -S3154003AE5000000000000000000000000000000000A9 -S3154003AE600000000000000000000000000000000099 -S3154003AE700000000000000000000000000000000089 -S3154003AE800000000000000000000000000000000079 -S3154003AE900000000000000000000000000000000069 -S3154003AEA00000000000000000000000000000000059 -S3154003AEB00000000000000000000000000000000049 -S3154003AEC00000000000000000000000000000000039 -S3154003AED00000000000000000000000000000000029 -S3154003AEE00000000000000000000000000000000019 -S3154003AEF00000000000000000000000000000000009 -S3154003AF0000000000000000000000000000000000F8 -S3154003AF1000000000000000000000000000000000E8 -S3154003AF2000000000000000000000000000000000D8 -S3154003AF3000000000000000000000000000000000C8 -S3154003AF4000000000000000000000000000000000B8 -S3154003AF5000000000000000000000000000000000A8 -S3154003AF600000000000000000000000000000000098 -S3154003AF700000000000000000000000000000000088 -S3154003AF800000000000000000000000000000000078 -S3154003AF900000000000000000000000000000000068 -S3154003AFA00000000000000000000000000000000058 -S3154003AFB00000000000000000000000000000000048 -S3154003AFC00000000000000000000000000000000038 -S3154003AFD00000000000000000000000000000000028 -S3154003AFE00000000000000000000000000000000018 -S3154003AFF00000000000000000000000000000000008 -S3154003B00000000000000000000000000000000000F7 -S3154003B01000000000000000000000000000000000E7 -S3154003B02000000000000000000000000000000000D7 -S3154003B03000000000000000000000000000000000C7 -S3154003B04000000000000000000000000000000000B7 -S3154003B05000000000000000000000000000000000A7 -S3154003B0600000000000000000000000000000000097 -S3154003B0700000000000000000000000000000000087 -S3154003B0800000000000000000000000000000000077 -S3154003B0900000000000000000000000000000000067 -S3154003B0A00000000000000000000000000000000057 -S3154003B0B00000000000000000000000000000000047 -S3154003B0C00000000000000000000000000000000037 -S3154003B0D00000000000000000000000000000000027 -S3154003B0E00000000000000000000000000000000017 -S3154003B0F00000000000000000000000000000000007 -S3154003B10000000000000000000000000000000000F6 -S3154003B11000000000000000000000000000000000E6 -S3154003B12000000000000000000000000000000000D6 -S3154003B13000000000000000000000000000000000C6 -S3154003B14000000000000000000000000000000000B6 -S3154003B15000000000000000000000000000000000A6 -S3154003B1600000000000000000000000000000000096 -S3154003B1700000000000000000000000000000000086 -S3154003B1800000000000000000000000000000000076 -S3154003B1900000000000000000000000000000000066 -S3154003B1A00000000000000000000000000000000056 -S3154003B1B00000000000000000000000000000000046 -S3154003B1C00000000000000000000000000000000036 -S3154003B1D00000000000000000000000000000000026 -S3154003B1E00000000000000000000000000000000016 -S3154003B1F00000000000000000000000000000000006 -S3154003B20000000000000000000000000000000000F5 -S3154003B21000000000000000000000000000000000E5 -S3154003B22000000000000000000000000000000000D5 -S3154003B23000000000000000000000000000000000C5 -S3154003B24000000000000000000000000000000000B5 -S3154003B25000000000000000000000000000000000A5 -S3154003B2600000000000000000000000000000000095 -S3154003B2700000000000000000000000000000000085 -S3154003B2800000000000000000000000000000000075 -S3154003B2900000000000000000000000000000000065 -S3154003B2A00000000000000000000000000000000055 -S3154003B2B00000000000000000000000000000000045 -S3154003B2C00000000000000000000000000000000035 -S3154003B2D00000000000000000000000000000000025 -S3154003B2E00000000000000000000000000000000015 -S3154003B2F00000000000000000000000000000000005 -S3154003B30000000000000000000000000000000000F4 -S3154003B31000000000000000000000000000000000E4 -S3154003B32000000000000000000000000000000000D4 -S3154003B33000000000000000000000000000000000C4 -S3154003B34000000000000000000000000000000000B4 -S3154003B35000000000000000000000000000000000A4 -S3154003B3600000000000000000000000000000000094 -S3154003B3700000000000000000000000000000000084 -S3154003B3800000000000000000000000000000000074 -S3154003B3900000000000000000000000000000000064 -S3154003B3A00000000000000000000000000000000054 -S3154003B3B00000000000000000000000000000000044 -S3154003B3C00000000000000000000000000000000034 -S3154003B3D00000000000000000000000000000000024 -S3154003B3E00000000000000000000000000000000014 -S3154003B3F00000000000000000000000000000000004 -S3154003B40000000000000000000000000000000000F3 -S3154003B41000000000000000000000000000000000E3 -S3154003B42000000000000000000000000000000000D3 -S3154003B43000000000000000000000000000000000C3 -S3154003B44000000000000000000000000000000000B3 -S3154003B45000000000000000000000000000000000A3 -S3154003B4600000000000000000000000000000000093 -S3154003B4700000000000000000000000000000000083 -S3154003B4800000000000000000000000000000000073 -S3154003B4900000000000000000000000000000000063 -S3154003B4A00000000000000000000000000000000053 -S3154003B4B00000000000000000000000000000000043 -S3154003B4C00000000000000000000000000000000033 -S3154003B4D00000000000000000000000000000000023 -S3154003B4E00000000000000000000000000000000013 -S3154003B4F00000000000000000000000000000000003 -S3154003B50000000000000000000000000000000000F2 -S3154003B51000000000000000000000000000000000E2 -S3154003B52000000000000000000000000000000000D2 -S3154003B53000000000000000000000000000000000C2 -S3154003B54000000000000000000000000000000000B2 -S3154003B55000000000000000000000000000000000A2 -S3154003B5600000000000000000000000000000000092 -S3154003B5700000000000000000000000000000000082 -S3154003B5800000000000000000000000000000000072 -S3154003B5900000000000000000000000000000000062 -S3154003B5A00000000000000000000000000000000052 -S3154003B5B00000000000000000000000000000000042 -S3154003B5C00000000000000000000000000000000032 -S3154003B5D00000000000000000000000000000000022 -S3154003B5E00000000000000000000000000000000012 -S3154003B5F00000000000000000000000000000000002 -S3154003B60000000000000000000000000000000000F1 -S3154003B61000000000000000000000000000000000E1 -S3154003B62000000000000000000000000000000000D1 -S3154003B63000000000000000000000000000000000C1 -S3154003B64000000000000000000000000000000000B1 -S3154003B65000000000000000000000000000000000A1 -S3154003B6600000000000000000000000000000000091 -S3154003B6700000000000000000000000000000000081 -S3154003B6800000000000000000000000000000000071 -S3154003B6900000000000000000000000000000000061 -S3154003B6A00000000000000000000000000000000051 -S3154003B6B00000000000000000000000000000000041 -S3154003B6C00000000000000000000000000000000031 -S3154003B6D00000000000000000000000000000000021 -S3154003B6E00000000000000000000000000000000011 -S3154003B6F00000000000000000000000000000000001 -S3154003B70000000000000000000000000000000000F0 -S3154003B71000000000000000000000000000000000E0 -S3154003B72000000000000000000000000000000000D0 -S3154003B73000000000000000000000000000000000C0 -S3154003B74000000000000000000000000000000000B0 -S3154003B75000000000000000000000000000000000A0 -S3154003B7600000000000000000000000000000000090 -S3154003B7700000000000000000000000000000000080 -S3154003B7800000000000000000000000000000000070 -S3154003B7900000000000000000000000000000000060 -S3154003B7A00000000000000000000000000000000050 -S3154003B7B00000000000000000000000000000000040 -S3154003B7C00000000000000000000000000000000030 -S3154003B7D00000000000000000000000000000000020 -S3154003B7E00000000000000000000000000000000010 -S3154003B7F00000000000000000000000000000000000 -S3154003B80000000000000000000000000000000000EF -S3154003B81000000000000000000000000000000000DF -S3154003B82000000000000000000000000000000000CF -S3154003B83000000000000000000000000000000000BF -S3154003B84000000000000000000000000000000000AF -S3154003B850000000000000000000000000000000009F -S3154003B860000000000000000000000000000000008F -S3154003B870000000000000000000000000000000007F -S3154003B880000000000000000000000000000000006F -S3154003B890000000000000000000000000000000005F -S3154003B8A0000000000000000000000000000000004F -S3154003B8B0000000000000000000000000000000003F -S3154003B8C0000000000000000000000000000000002F -S3154003B8D0000000000000000000000000000000001F -S3154003B8E0000000000000000000000000000000000F -S3154003B8F000000000000000000000000000000000FF -S3154003B90000000000000000000000000000000000EE -S3154003B91000000000000000000000000000000000DE -S3154003B92000000000000000000000000000000000CE -S3154003B93000000000000000000000000000000000BE -S3154003B94000000000000000000000000000000000AE -S3154003B950000000000000000000000000000000009E -S3154003B960000000000000000000000000000000008E -S3154003B970000000000000000000000000000000007E -S3154003B980000000000000000000000000000000006E -S3154003B990000000000000000000000000000000005E -S3154003B9A0000000000000000000000000000000004E -S3154003B9B0000000000000000000000000000000003E -S3154003B9C0000000000000000000000000000000002E -S3154003B9D0000000000000000000000000000000001E -S3154003B9E0000000000000000000000000000000000E -S3154003B9F000000000000000000000000000000000FE -S3154003BA0000000000000000000000000000000000ED -S3154003BA1000000000000000000000000000000000DD -S3154003BA2000000000000000000000000000000000CD -S3154003BA3000000000000000000000000000000000BD -S3154003BA4000000000000000000000000000000000AD -S3154003BA50000000000000000000000000000000009D -S3154003BA60000000000000000000000000000000008D -S3154003BA70000000000000000000000000000000007D -S3154003BA80000000000000000000000000000000006D -S3154003BA90000000000000000000000000000000005D -S3154003BAA0000000000000000000000000000000004D -S3154003BAB0000000000000000000000000000000003D -S3154003BAC0000000000000000000000000000000002D -S3154003BAD0000000000000000000000000000000001D -S3154003BAE0000000000000000000000000000000000D -S3154003BAF000000000000000000000000000000000FD -S3154003BB0000000000000000000000000000000000EC -S3154003BB1000000000000000000000000000000000DC -S3154003BB2000000000000000000000000000000000CC -S3154003BB3000000000000000000000000000000000BC -S3154003BB4000000000000000000000000000000000AC -S3154003BB50000000000000000000000000000000009C -S3154003BB60000000000000000000000000000000008C -S3154003BB70000000000000000000000000000000007C -S3154003BB80000000000000000000000000000000006C -S3154003BB90000000000000000000000000000000005C -S3154003BBA0000000000000000000000000000000004C -S3154003BBB0000000000000000000000000000000003C -S3154003BBC0000000000000000000000000000000002C -S3154003BBD0000000000000000000000000000000001C -S3154003BBE0000000000000000000000000000000000C -S3154003BBF000000000000000000000000000000000FC -S3154003BC0000000000000000000000000000000000EB -S3154003BC1000000000000000000000000000000000DB -S3154003BC2000000000000000000000000000000000CB -S3154003BC3000000000000000000000000000000000BB -S3154003BC4000000000000000000000000000000000AB -S3154003BC50000000000000000000000000000000009B -S3154003BC60000000000000000000000000000000008B -S3154003BC70000000000000000000000000000000007B -S3154003BC80000000000000000000000000000000006B -S3154003BC90000000000000000000000000000000005B -S3154003BCA0000000000000000000000000000000004B -S3154003BCB0000000000000000000000000000000003B -S3154003BCC0000000000000000000000000000000002B -S3154003BCD0000000000000000000000000000000001B -S3154003BCE0000000000000000000000000000000000B -S3154003BCF000000000000000000000000000000000FB -S3154003BD0000000000000000000000000000000000EA -S3154003BD1000000000000000000000000000000000DA -S3154003BD2000000000000000000000000000000000CA -S3154003BD3000000000000000000000000000000000BA -S3154003BD4000000000000000000000000000000000AA -S3154003BD50000000000000000000000000000000009A -S3154003BD60000000000000000000000000000000008A -S3154003BD70000000000000000000000000000000007A -S3154003BD80000000000000000000000000000000006A -S3154003BD90000000000000000000000000000000005A -S3154003BDA0000000000000000000000000000000004A -S3154003BDB0000000000000000000000000000000003A -S3154003BDC0000000000000000000000000000000002A -S3154003BDD0000000000000000000000000000000001A -S3154003BDE0000000000000000000000000000000000A -S3154003BDF000000000000000000000000000000000FA -S3154003BE0000000000000000000000000000000000E9 -S3154003BE1000000000000000000000000000000000D9 -S3154003BE2000000000000000000000000000000000C9 -S3154003BE3000000000000000000000000000000000B9 -S3154003BE4000000000000000000000000000000000A9 -S3154003BE500000000000000000000000000000000099 -S3154003BE600000000000000000000000000000000089 -S3154003BE700000000000000000000000000000000079 -S3154003BE800000000000000000000000000000000069 -S3154003BE900000000000000000000000000000000059 -S3154003BEA00000000000000000000000000000000049 -S3154003BEB00000000000000000000000000000000039 -S3154003BEC00000000000000000000000000000000029 -S3154003BED00000000000000000000000000000000019 -S3154003BEE00000000000000000000000000000000009 -S3154003BEF000000000000000000000000000000000F9 -S3154003BF0000000000000000000000000000000000E8 -S3154003BF1000000000000000000000000000000000D8 -S3154003BF2000000000000000000000000000000000C8 -S3154003BF3000000000000000000000000000000000B8 -S3154003BF4000000000000000000000000000000000A8 -S3154003BF500000000000000000000000000000000098 -S3154003BF600000000000000000000000000000000088 -S3154003BF700000000000000000000000000000000078 -S3154003BF800000000000000000000000000000000068 -S3154003BF900000000000000000000000000000000058 -S3154003BFA00000000000000000000000000000000048 -S3154003BFB00000000000000000000000000000000038 -S3154003BFC00000000000000000000000000000000028 -S3154003BFD00000000000000000000000000000000018 -S3154003BFE00000000000000000000000000000000008 -S3154003BFF000000000000000000000000000000000F8 -S3154003C00000000000000000000000000000000000E7 -S3154003C01000000000000000000000000000000000D7 -S3154003C02000000000000000000000000000000000C7 -S3154003C03000000000000000000000000000000000B7 -S3154003C04000000000000000000000000000000000A7 -S3154003C0500000000000000000000000000000000097 -S3154003C0600000000000000000000000000000000087 -S3154003C0700000000000000000000000000000000077 -S3154003C0800000000000000000000000000000000067 -S3154003C0900000000000000000000000000000000057 -S3154003C0A00000000000000000000000000000000047 -S3154003C0B00000000000000000000000000000000037 -S3154003C0C00000000000000000000000000000000027 -S3154003C0D00000000000000000000000000000000017 -S3154003C0E00000000000000000000000000000000007 -S3154003C0F000000000000000000000000000000000F7 -S3154003C10000000000000000000000000000000000E6 -S3154003C11000000000000000000000000000000000D6 -S3154003C12000000000000000000000000000000000C6 -S3154003C13000000000000000000000000000000000B6 -S3154003C14000000000000000000000000000000000A6 -S3154003C1500000000000000000000000000000000096 -S3154003C1600000000000000000000000000000000086 -S3154003C1700000000000000000000000000000000076 -S3154003C1800000000000000000000000000000000066 -S3154003C1900000000000000000000000000000000056 -S3154003C1A00000000000000000000000000000000046 -S3154003C1B00000000000000000000000000000000036 -S3154003C1C00000000000000000000000000000000026 -S3154003C1D00000000000000000000000000000000016 -S3154003C1E00000000000000000000000000000000006 -S3154003C1F000000000000000000000000000000000F6 -S3154003C20000000000000000000000000000000000E5 -S3154003C21000000000000000000000000000000000D5 -S3154003C22000000000000000000000000000000000C5 -S3154003C23000000000000000000000000000000000B5 -S3154003C24000000000000000000000000000000000A5 -S3154003C2500000000000000000000000000000000095 -S3154003C2600000000000000000000000000000000085 -S3154003C2700000000000000000000000000000000075 -S3154003C2800000000000000000000000000000000065 -S3154003C2900000000000000000000000000000000055 -S3154003C2A00000000000000000000000000000000045 -S3154003C2B00000000000000000000000000000000035 -S3154003C2C00000000000000000000000000000000025 -S3154003C2D00000000000000000000000000000000015 -S3154003C2E00000000000000000000000000000000005 -S3154003C2F000000000000000000000000000000000F5 -S3154003C30000000000000000000000000000000000E4 -S3154003C31000000000000000000000000000000000D4 -S3154003C32000000000000000000000000000000000C4 -S3154003C33000000000000000000000000000000000B4 -S3154003C34000000000000000000000000000000000A4 -S3154003C3500000000000000000000000000000000094 -S3154003C3600000000000000000000000000000000084 -S3154003C3700000000000000000000000000000000074 -S3154003C3800000000000000000000000000000000064 -S3154003C3900000000000000000000000000000000054 -S3154003C3A00000000000000000000000000000000044 -S3154003C3B00000000000000000000000000000000034 -S3154003C3C00000000000000000000000000000000024 -S3154003C3D00000000000000000000000000000000014 -S3154003C3E00000000000000000000000000000000004 -S3154003C3F000000000000000000000000000000000F4 -S3154003C40000000000000000000000000000000000E3 -S3154003C41000000000000000000000000000000000D3 -S3154003C42000000000000000000000000000000000C3 -S3154003C43000000000000000000000000000000000B3 -S3154003C44000000000000000000000000000000000A3 -S3154003C4500000000000000000000000000000000093 -S3154003C4600000000000000000000000000000000083 -S3154003C4700000000000000000000000000000000073 -S3154003C4800000000000000000000000000000000063 -S3154003C4900000000000000000000000000000000053 -S3154003C4A00000000000000000000000000000000043 -S3154003C4B00000000000000000000000000000000033 -S3154003C4C00000000000000000000000000000000023 -S3154003C4D00000000000000000000000000000000013 -S3154003C4E00000000000000000000000000000000003 -S3154003C4F000000000000000000000000000000000F3 -S3154003C50000000000000000000000000000000000E2 -S3154003C51000000000000000000000000000000000D2 -S3154003C52000000000000000000000000000000000C2 -S3154003C53000000000000000000000000000000000B2 -S3154003C54000000000000000000000000000000000A2 -S3154003C5500000000000000000000000000000000092 -S3154003C5600000000000000000000000000000000082 -S3154003C5700000000000000000000000000000000072 -S3154003C5800000000000000000000000000000000062 -S3154003C5900000000000000000000000000000000052 -S3154003C5A00000000000000000000000000000000042 -S3154003C5B00000000000000000000000000000000032 -S3154003C5C00000000000000000000000000000000022 -S3154003C5D00000000000000000000000000000000012 -S3154003C5E00000000000000000000000000000000002 -S3154003C5F000000000000000000000000000000000F2 -S3154003C60000000000000000000000000000000000E1 -S3154003C61000000000000000000000000000000000D1 -S3154003C62000000000000000000000000000000000C1 -S3154003C63000000000000000000000000000000000B1 -S3154003C64000000000000000000000000000000000A1 -S3154003C6500000000000000000000000000000000091 -S3154003C6600000000000000000000000000000000081 -S3154003C6700000000000000000000000000000000071 -S3154003C6800000000000000000000000000000000061 -S3154003C6900000000000000000000000000000000051 -S3154003C6A00000000000000000000000000000000041 -S3154003C6B00000000000000000000000000000000031 -S3154003C6C00000000000000000000000000000000021 -S3154003C6D00000000000000000000000000000000011 -S3154003C6E00000000000000000000000000000000001 -S3154003C6F000000000000000000000000000000000F1 -S3154003C70000000000000000000000000000000000E0 -S3154003C71000000000000000000000000000000000D0 -S3154003C72000000000000000000000000000000000C0 -S3154003C73000000000000000000000000000000000B0 -S3154003C74000000000000000000000000000000000A0 -S3154003C7500000000000000000000000000000000090 -S3154003C7600000000000000000000000000000000080 -S3154003C7700000000000000000000000000000000070 -S3154003C7800000000000000000000000000000000060 -S3154003C7900000000000000000000000000000000050 -S3154003C7A00000000000000000000000000000000040 -S3154003C7B00000000000000000000000000000000030 -S3154003C7C00000000000000000000000000000000020 -S3154003C7D00000000000000000000000000000000010 -S3154003C7E00000000000000000000000000000000000 -S3154003C7F000000000000000000000000000000000F0 -S3154003C80000000000000000000000000000000000DF -S3154003C81000000000000000000000000000000000CF -S3154003C82000000000000000000000000000000000BF -S3154003C83000000000000000000000000000000000AF -S3154003C840000000000000000000000000000000009F -S3154003C850000000000000000000000000000000008F -S3154003C860000000000000000000000000000000007F -S3154003C870000000000000000000000000000000006F -S3154003C880000000000000000000000000000000005F -S3154003C890000000000000000000000000000000004F -S3154003C8A0000000000000000000000000000000003F -S3154003C8B0000000000000000000000000000000002F -S3154003C8C0000000000000000000000000000000001F -S3154003C8D0000000000000000000000000000000000F -S3154003C8E000000000000000000000000000000000FF -S3154003C8F000000000000000000000000000000000EF -S3154003C90000000000000000000000000000000000DE -S3154003C91000000000000000000000000000000000CE -S3154003C92000000000000000000000000000000000BE -S3154003C93000000000000000000000000000000000AE -S3154003C940000000000000000000000000000000009E -S3154003C950000000000000000000000000000000008E -S3154003C960000000000000000000000000000000007E -S3154003C970000000000000000000000000000000006E -S3154003C980000000000000000000000000000000005E -S3154003C990000000000000000000000000000000004E -S3154003C9A0000000000000000000000000000000003E -S3154003C9B0000000000000000000000000000000002E -S3154003C9C0000000000000000000000000000000001E -S3154003C9D0000000000000000000000000000000000E -S3154003C9E000000000000000000000000000000000FE -S3154003C9F000000000000000000000000000000000EE -S3154003CA0000000000000000000000000000000000DD -S3154003CA1000000000000000000000000000000000CD -S3154003CA2000000000000000000000000000000000BD -S3154003CA3000000000000000000000000000000000AD -S3154003CA40000000000000000000000000000000009D -S3154003CA50000000000000000000000000000000008D -S3154003CA60000000000000000000000000000000007D -S3154003CA70000000000000000000000000000000006D -S3154003CA80000000000000000000000000000000005D -S3154003CA90000000000000000000000000000000004D -S3154003CAA0000000000000000000000000000000003D -S3154003CAB0000000000000000000000000000000002D -S3154003CAC0000000000000000000000000000000001D -S3154003CAD0000000000000000000000000000000000D -S3154003CAE000000000000000000000000000000000FD -S3154003CAF000000000000000000000000000000000ED -S3154003CB0000000000000000000000000000000000DC -S3154003CB1000000000000000000000000000000000CC -S3154003CB2000000000000000000000000000000000BC -S3154003CB3000000000000000000000000000000000AC -S3154003CB40000000000000000000000000000000009C -S3154003CB50000000000000000000000000000000008C -S3154003CB60000000000000000000000000000000007C -S3154003CB70000000000000000000000000000000006C -S3154003CB80000000000000000000000000000000005C -S3154003CB90000000000000000000000000000000004C -S3154003CBA0000000000000000000000000000000003C -S3154003CBB0000000000000000000000000000000002C -S3154003CBC0000000000000000000000000000000001C -S3154003CBD0000000000000000000000000000000000C -S3154003CBE000000000000000000000000000000000FC -S3154003CBF000000000000000000000000000000000EC -S3154003CC0000000000000000000000000000000000DB -S3154003CC1000000000000000000000000000000000CB -S3154003CC2000000000000000000000000000000000BB -S3154003CC3000000000000000000000000000000000AB -S3154003CC40000000000000000000000000000000009B -S3154003CC50000000000000000000000000000000008B -S3154003CC60000000000000000000000000000000007B -S3154003CC70000000000000000000000000000000006B -S3154003CC80000000000000000000000000000000005B -S3154003CC90000000000000000000000000000000004B -S3154003CCA0000000000000000000000000000000003B -S3154003CCB0000000000000000000000000000000002B -S3154003CCC0000000000000000000000000000000001B -S3154003CCD0000000000000000000000000000000000B -S3154003CCE000000000000000000000000000000000FB -S3154003CCF000000000000000000000000000000000EB -S3154003CD0000000000000000000000000000000000DA -S3154003CD1000000000000000000000000000000000CA -S3154003CD2000000000000000000000000000000000BA -S3154003CD3000000000000000000000000000000000AA -S3154003CD40000000000000000000000000000000009A -S3154003CD50000000000000000000000000000000008A -S3154003CD60000000000000000000000000000000007A -S3154003CD70000000000000000000000000000000006A -S3154003CD80000000000000000000000000000000005A -S3154003CD90000000000000000000000000000000004A -S3154003CDA0000000000000000000000000000000003A -S3154003CDB0000000000000000000000000000000002A -S3154003CDC0000000000000000000000000000000001A -S3154003CDD0000000000000000000000000000000000A -S3154003CDE000000000000000000000000000000000FA -S3154003CDF000000000000000000000000000000000EA -S3154003CE0000000000000000000000000000000000D9 -S3154003CE1000000000000000000000000000000000C9 -S3154003CE2000000000000000000000000000000000B9 -S3154003CE3000000000000000000000000000000000A9 -S3154003CE400000000000000000000000000000000099 -S3154003CE500000000000000000000000000000000089 -S3154003CE600000000000000000000000000000000079 -S3154003CE700000000000000000000000000000000069 -S3154003CE800000000000000000000000000000000059 -S3154003CE900000000000000000000000000000000049 -S3154003CEA00000000000000000000000000000000039 -S3154003CEB00000000000000000000000000000000029 -S3154003CEC00000000000000000000000000000000019 -S3154003CED00000000000000000000000000000000009 -S3154003CEE000000000000000000000000000000000F9 -S3154003CEF000000000000000000000000000000000E9 -S3154003CF0000000000000000000000000000000000D8 -S3154003CF1000000000000000000000000000000000C8 -S3154003CF2000000000000000000000000000000000B8 -S3154003CF3000000000000000000000000000000000A8 -S3154003CF400000000000000000000000000000000098 -S3154003CF500000000000000000000000000000000088 -S3154003CF600000000000000000000000000000000078 -S3154003CF700000000000000000000000000000000068 -S3154003CF800000000000000000000000000000000058 -S3154003CF900000000000000000000000000000000048 -S3154003CFA00000000000000000000000000000000038 -S3154003CFB00000000000000000000000000000000028 -S3154003CFC00000000000000000000000000000000018 -S3154003CFD00000000000000000000000000000000008 -S3154003CFE000000000000000000000000000000000F8 -S3154003CFF000000000000000000000000000000000E8 -S3154003D00000000000000000000000000000000000D7 -S3154003D01000000000000000000000000000000000C7 -S3154003D02000000000000000000000000000000000B7 -S3154003D03000000000000000000000000000000000A7 -S3154003D0400000000000000000000000000000000097 -S3154003D0500000000000000000000000000000000087 -S3154003D0600000000000000000000000000000000077 -S3154003D0700000000000000000000000000000000067 -S3154003D0800000000000000000000000000000000057 -S3154003D0900000000000000000000000000000000047 -S3154003D0A00000000000000000000000000000000037 -S3154003D0B00000000000000000000000000000000027 -S3154003D0C00000000000000000000000000000000017 -S3154003D0D00000000000000000000000000000000007 -S3154003D0E000000000000000000000000000000000F7 -S3154003D0F000000000000000000000000000000000E7 -S3154003D10000000000000000000000000000000000D6 -S3154003D11000000000000000000000000000000000C6 -S3154003D12000000000000000000000000000000000B6 -S3154003D13000000000000000000000000000000000A6 -S3154003D1400000000000000000000000000000000096 -S3154003D1500000000000000000000000000000000086 -S3154003D1600000000000000000000000000000000076 -S3154003D1700000000000000000000000000000000066 -S3154003D1800000000000000000000000000000000056 -S3154003D1900000000000000000000000000000000046 -S3154003D1A00000000000000000000000000000000036 -S3154003D1B00000000000000000000000000000000026 -S3154003D1C00000000000000000000000000000000016 -S3154003D1D00000000000000000000000000000000006 -S3154003D1E000000000000000000000000000000000F6 -S3154003D1F000000000000000000000000000000000E6 -S3154003D20000000000000000000000000000000000D5 -S3154003D21000000000000000000000000000000000C5 -S3154003D22000000000000000000000000000000000B5 -S3154003D23000000000000000000000000000000000A5 -S3154003D2400000000000000000000000000000000095 -S3154003D2500000000000000000000000000000000085 -S3154003D2600000000000000000000000000000000075 -S3154003D2700000000000000000000000000000000065 -S3154003D2800000000000000000000000000000000055 -S3154003D2900000000000000000000000000000000045 -S3154003D2A00000000000000000000000000000000035 -S3154003D2B00000000000000000000000000000000025 -S3154003D2C00000000000000000000000000000000015 -S3154003D2D00000000000000000000000000000000005 -S3154003D2E000000000000000000000000000000000F5 -S3154003D2F000000000000000000000000000000000E5 -S3154003D30000000000000000000000000000000000D4 -S3154003D31000000000000000000000000000000000C4 -S3154003D32000000000000000000000000000000000B4 -S3154003D33000000000000000000000000000000000A4 -S3154003D3400000000000000000000000000000000094 -S3154003D3500000000000000000000000000000000084 -S3154003D3600000000000000000000000000000000074 -S3154003D3700000000000000000000000000000000064 -S3154003D3800000000000000000000000000000000054 -S3154003D3900000000000000000000000000000000044 -S3154003D3A00000000000000000000000000000000034 -S3154003D3B00000000000000000000000000000000024 -S3154003D3C00000000000000000000000000000000014 -S3154003D3D00000000000000000000000000000000004 -S3154003D3E000000000000000000000000000000000F4 -S3154003D3F000000000000000000000000000000000E4 -S3154003D40000000000000000000000000000000000D3 -S3154003D41000000000000000000000000000000000C3 -S3154003D42000000000000000000000000000000000B3 -S3154003D43000000000000000000000000000000000A3 -S3154003D4400000000000000000000000000000000093 -S3154003D4500000000000000000000000000000000083 -S3154003D4600000000000000000000000000000000073 -S3154003D4700000000000000000000000000000000063 -S3154003D4800000000000000000000000000000000053 -S3154003D4900000000000000000000000000000000043 -S3154003D4A00000000000000000000000000000000033 -S3154003D4B00000000000000000000000000000000023 -S3154003D4C00000000000000000000000000000000013 -S3154003D4D00000000000000000000000000000000003 -S3154003D4E000000000000000000000000000000000F3 -S3154003D4F000000000000000000000000000000000E3 -S3154003D50000000000000000000000000000000000D2 -S3154003D51000000000000000000000000000000000C2 -S3154003D52000000000000000000000000000000000B2 -S3154003D53000000000000000000000000000000000A2 -S3154003D5400000000000000000000000000000000092 -S3154003D5500000000000000000000000000000000082 -S3154003D5600000000000000000000000000000000072 -S3154003D5700000000000000000000000000000000062 -S3154003D5800000000000000000000000000000000052 -S3154003D5900000000000000000000000000000000042 -S3154003D5A00000000000000000000000000000000032 -S3154003D5B00000000000000000000000000000000022 -S3154003D5C00000000000000000000000000000000012 -S3154003D5D00000000000000000000000000000000002 -S3154003D5E000000000000000000000000000000000F2 -S3154003D5F000000000000000000000000000000000E2 -S3154003D60000000000000000000000000000000000D1 -S3154003D61000000000000000000000000000000000C1 -S3154003D62000000000000000000000000000000000B1 -S3154003D63000000000000000000000000000000000A1 -S3154003D6400000000000000000000000000000000091 -S3154003D6500000000000000000000000000000000081 -S3154003D6600000000000000000000000000000000071 -S3154003D6700000000000000000000000000000000061 -S3154003D6800000000000000000000000000000000051 -S3154003D6900000000000000000000000000000000041 -S3154003D6A00000000000000000000000000000000031 -S3154003D6B00000000000000000000000000000000021 -S3154003D6C00000000000000000000000000000000011 -S3154003D6D00000000000000000000000000000000001 -S3154003D6E000000000000000000000000000000000F1 -S3154003D6F000000000000000000000000000000000E1 -S3154003D70000000000000000000000000000000000D0 -S3154003D71000000000000000000000000000000000C0 -S3154003D72000000000000000000000000000000000B0 -S3154003D73000000000000000000000000000000000A0 -S3154003D7400000000000000000000000000000000090 -S3154003D7500000000000000000000000000000000080 -S3154003D7600000000000000000000000000000000070 -S3154003D7700000000000000000000000000000000060 -S3154003D7800000000000000000000000000000000050 -S3154003D7900000000000000000000000000000000040 -S3154003D7A00000000000000000000000000000000030 -S3154003D7B00000000000000000000000000000000020 -S3154003D7C00000000000000000000000000000000010 -S3154003D7D00000000000000000000000000000000000 -S3154003D7E000000000000000000000000000000000F0 -S3154003D7F000000000000000000000000000000000E0 -S3154003D80000000000000000000000000000000000CF -S3154003D81000000000000000000000000000000000BF -S3154003D82000000000000000000000000000000000AF -S3154003D830000000000000000000000000000000009F -S3154003D840000000000000000000000000000000008F -S3154003D850000000000000000000000000000000007F -S3154003D860000000000000000000000000000000006F -S3154003D870000000000000000000000000000000005F -S3154003D880000000000000000000000000000000004F -S3154003D890000000000000000000000000000000003F -S3154003D8A0000000000000000000000000000000002F -S3154003D8B0000000000000000000000000000000001F -S3154003D8C0000000000000000000000000000000000F -S3154003D8D000000000000000000000000000000000FF -S3154003D8E000000000000000000000000000000000EF -S3154003D8F000000000000000000000000000000000DF -S3154003D90000000000000000000000000000000000CE -S3154003D91000000000000000000000000000000000BE -S3154003D92000000000000000000000000000000000AE -S3154003D930000000000000000000000000000000009E -S3154003D940000000000000000000000000000000008E -S3154003D950000000000000000000000000000000007E -S3154003D960000000000000000000000000000000006E -S3154003D970000000000000000000000000000000005E -S3154003D980000000000000000000000000000000004E -S3154003D990000000000000000000000000000000003E -S3154003D9A0000000000000000000000000000000002E -S3154003D9B0000000000000000000000000000000001E -S3154003D9C0000000000000000000000000000000000E -S3154003D9D000000000000000000000000000000000FE -S3154003D9E000000000000000000000000000000000EE -S3154003D9F000000000000000000000000000000000DE -S3154003DA0000000000000000000000000000000000CD -S3154003DA1000000000000000000000000000000000BD -S3154003DA2000000000000000000000000000000000AD -S3154003DA30000000000000000000000000000000009D -S3154003DA40000000000000000000000000000000008D -S3154003DA50000000000000000000000000000000007D -S3154003DA60000000000000000000000000000000006D -S3154003DA70000000000000000000000000000000005D -S3154003DA80000000000000000000000000000000004D -S3154003DA90000000000000000000000000000000003D -S3154003DAA0000000000000000000000000000000002D -S3154003DAB0000000000000000000000000000000001D -S3154003DAC0000000000000000000000000000000000D -S3154003DAD000000000000000000000000000000000FD -S3154003DAE000000000000000000000000000000000ED -S3154003DAF000000000000000000000000000000000DD -S3154003DB0000000000000000000000000000000000CC -S3154003DB1000000000000000000000000000000000BC -S3154003DB2000000000000000000000000000000000AC -S3154003DB30000000000000000000000000000000009C -S3154003DB40000000000000000000000000000000008C -S3154003DB50000000000000000000000000000000007C -S3154003DB60000000000000000000000000000000006C -S3154003DB70000000000000000000000000000000005C -S3154003DB80000000000000000000000000000000004C -S3154003DB90000000000000000000000000000000003C -S3154003DBA0000000000000000000000000000000002C -S3154003DBB0000000000000000000000000000000001C -S3154003DBC0000000000000000000000000000000000C -S3154003DBD000000000000000000000000000000000FC -S3154003DBE000000000000000000000000000000000EC -S3154003DBF000000000000000000000000000000000DC -S3154003DC0000000000000000000000000000000000CB -S3154003DC1000000000000000000000000000000000BB -S3154003DC2000000000000000000000000000000000AB -S3154003DC30000000000000000000000000000000009B -S3154003DC40000000000000000000000000000000008B -S3154003DC50000000000000000000000000000000007B -S3154003DC60000000000000000000000000000000006B -S3154003DC70000000000000000000000000000000005B -S3154003DC80000000000000000000000000000000004B -S3154003DC90000000000000000000000000000000003B -S3154003DCA0000000000000000000000000000000002B -S3154003DCB0000000000000000000000000000000001B -S3154003DCC0000000000000000000000000000000000B -S3154003DCD000000000000000000000000000000000FB -S3154003DCE000000000000000000000000000000000EB -S3154003DCF000000000000000000000000000000000DB -S3154003DD0000000000000000000000000000000000CA -S3154003DD1000000000000000000000000000000000BA -S3154003DD2000000000000000000000000000000000AA -S3154003DD30000000000000000000000000000000009A -S3154003DD40000000000000000000000000000000008A -S3154003DD50000000000000000000000000000000007A -S3154003DD60000000000000000000000000000000006A -S3154003DD70000000000000000000000000000000005A -S3154003DD80000000000000000000000000000000004A -S3154003DD90000000000000000000000000000000003A -S3154003DDA0000000000000000000000000000000002A -S3154003DDB0000000000000000000000000000000001A -S3154003DDC0000000000000000000000000000000000A -S3154003DDD000000000000000000000000000000000FA -S3154003DDE000000000000000000000000000000000EA -S3154003DDF000000000000000000000000000000000DA -S3154003DE0000000000000000000000000000000000C9 -S3154003DE1000000000000000000000000000000000B9 -S3154003DE2000000000000000000000000000000000A9 -S3154003DE300000000000000000000000000000000099 -S3154003DE400000000000000000000000000000000089 -S3154003DE500000000000000000000000000000000079 -S3154003DE600000000000000000000000000000000069 -S3154003DE700000000000000000000000000000000059 -S3154003DE800000000000000000000000000000000049 -S3154003DE900000000000000000000000000000000039 -S3154003DEA00000000000000000000000000000000029 -S3154003DEB00000000000000000000000000000000019 -S3154003DEC00000000000000000000000000000000009 -S3154003DED000000000000000000000000000000000F9 -S3154003DEE000000000000000000000000000000000E9 -S3154003DEF000000000000000000000000000000000D9 -S3154003DF0000000000000000000000000000000000C8 -S3154003DF1000000000000000000000000000000000B8 -S3154003DF2000000000000000000000000000000000A8 -S3154003DF300000000000000000000000000000000098 -S3154003DF400000000000000000000000000000000088 -S3154003DF500000000000000000000000000000000078 -S3154003DF600000000000000000000000000000000068 -S3154003DF700000000000000000000000000000000058 -S3154003DF800000000000000000000000000000000048 -S3154003DF900000000000000000000000000000000038 -S3154003DFA00000000000000000000000000000000028 -S3154003DFB00000000000000000000000000000000018 -S3154003DFC00000000000000000000000000000000008 -S3154003DFD000000000000000000000000000000000F8 -S3154003DFE000000000000000000000000000000000E8 -S3154003DFF000000000000000000000000000000000D8 -S3154003E00000000000000000000000000000000000C7 -S3154003E01000000000000000000000000000000000B7 -S3154003E02000000000000000000000000000000000A7 -S3154003E0300000000000000000000000000000000097 -S3154003E0400000000000000000000000000000000087 -S3154003E0500000000000000000000000000000000077 -S3154003E0600000000000000000000000000000000067 -S3154003E0700000000000000000000000000000000057 -S3154003E0800000000000000000000000000000000047 -S3154003E0900000000000000000000000000000000037 -S3154003E0A00000000000000000000000000000000027 -S3154003E0B00000000000000000000000000000000017 -S3154003E0C00000000000000000000000000000000007 -S3154003E0D000000000000000000000000000000000F7 -S3154003E0E000000000000000000000000000000000E7 -S3154003E0F000000000000000000000000000000000D7 -S3154003E10000000000000000000000000000000000C6 -S3154003E11000000000000000000000000000000000B6 -S3154003E12000000000000000000000000000000000A6 -S3154003E1300000000000000000000000000000000096 -S3154003E1400000000000000000000000000000000086 -S3154003E1500000000000000000000000000000000076 -S3154003E1600000000000000000000000000000000066 -S3154003E1700000000000000000000000000000000056 -S3154003E1800000000000000000000000000000000046 -S3154003E1900000000000000000000000000000000036 -S3154003E1A00000000000000000000000000000000026 -S3154003E1B00000000000000000000000000000000016 -S3154003E1C00000000000000000000000000000000006 -S3154003E1D000000000000000000000000000000000F6 -S3154003E1E000000000000000000000000000000000E6 -S3154003E1F000000000000000000000000000000000D6 -S3154003E20000000000000000000000000000000000C5 -S3154003E21000000000000000000000000000000000B5 -S3154003E22000000000000000000000000000000000A5 -S3154003E2300000000000000000000000000000000095 -S3154003E2400000000000000000000000000000000085 -S3154003E2500000000000000000000000000000000075 -S3154003E2600000000000000000000000000000000065 -S3154003E2700000000000000000000000000000000055 -S3154003E2800000000000000000000000000000000045 -S3154003E2900000000000000000000000000000000035 -S3154003E2A00000000000000000000000000000000025 -S3154003E2B00000000000000000000000000000000015 -S3154003E2C00000000000000000000000000000000005 -S3154003E2D000000000000000000000000000000000F5 -S3154003E2E000000000000000000000000000000000E5 -S3154003E2F000000000000000000000000000000000D5 -S3154003E30000000000000000000000000000000000C4 -S3154003E31000000000000000000000000000000000B4 -S3154003E32000000000000000000000000000000000A4 -S3154003E3300000000000000000000000000000000094 -S3154003E3400000000000000000000000000000000084 -S3154003E3500000000000000000000000000000000074 -S3154003E3600000000000000000000000000000000064 -S3154003E3700000000000000000000000000000000054 -S3154003E3800000000000000000000000000000000044 -S3154003E3900000000000000000000000000000000034 -S3154003E3A00000000000000000000000000000000024 -S3154003E3B00000000000000000000000000000000014 -S3154003E3C00000000000000000000000000000000004 -S3154003E3D000000000000000000000000000000000F4 -S3154003E3E000000000000000000000000000000000E4 -S3154003E3F000000000000000000000000000000000D4 -S3154003E40000000000000000000000000000000000C3 -S3154003E41000000000000000000000000000000000B3 -S3154003E42000000000000000000000000000000000A3 -S3154003E4300000000000000000000000000000000093 -S3154003E4400000000000000000000000000000000083 -S3154003E4500000000000000000000000000000000073 -S3154003E4600000000000000000000000000000000063 -S3154003E4700000000000000000000000000000000053 -S3154003E4800000000000000000000000000000000043 -S3154003E4900000000000000000000000000000000033 -S3154003E4A00000000000000000000000000000000023 -S3154003E4B00000000000000000000000000000000013 -S3154003E4C00000000000000000000000000000000003 -S3154003E4D000000000000000000000000000000000F3 -S3154003E4E000000000000000000000000000000000E3 -S3154003E4F000000000000000000000000000000000D3 -S3154003E50000000000000000000000000000000000C2 -S3154003E51000000000000000000000000000000000B2 -S3154003E52000000000000000000000000000000000A2 -S3154003E5300000000000000000000000000000000092 -S3154003E5400000000000000000000000000000000082 -S3154003E5500000000000000000000000000000000072 -S3154003E5600000000000000000000000000000000062 -S3154003E5700000000000000000000000000000000052 -S3154003E5800000000000000000000000000000000042 -S3154003E5900000000000000000000000000000000032 -S3154003E5A00000000000000000000000000000000022 -S3154003E5B00000000000000000000000000000000012 -S3154003E5C00000000000000000000000000000000002 -S3154003E5D000000000000000000000000000000000F2 -S3154003E5E000000000000000000000000000000000E2 -S3154003E5F000000000000000000000000000000000D2 -S3154003E60000000000000000000000000000000000C1 -S3154003E61000000000000000000000000000000000B1 -S3154003E62000000000000000000000000000000000A1 -S3154003E6300000000000000000000000000000000091 -S3154003E6400000000000000000000000000000000081 -S3154003E6500000000000000000000000000000000071 -S3154003E6600000000000000000000000000000000061 -S3154003E6700000000000000000000000000000000051 -S3154003E6800000000000000000000000000000000041 -S3154003E6900000000000000000000000000000000031 -S3154003E6A00000000000000000000000000000000021 -S3154003E6B00000000000000000000000000000000011 -S3154003E6C00000000000000000000000000000000001 -S3154003E6D000000000000000000000000000000000F1 -S3154003E6E000000000000000000000000000000000E1 -S3154003E6F000000000000000000000000000000000D1 -S3154003E70000000000000000000000000000000000C0 -S3154003E71000000000000000000000000000000000B0 -S3154003E72000000000000000000000000000000000A0 -S3154003E7300000000000000000000000000000000090 -S3154003E7400000000000000000000000000000000080 -S3154003E7500000000000000000000000000000000070 -S3154003E7600000000000000000000000000000000060 -S3154003E7700000000000000000000000000000000050 -S3154003E7800000000000000000000000000000000040 -S3154003E7900000000000000000000000000000000030 -S3154003E7A00000000000000000000000000000000020 -S3154003E7B00000000000000000000000000000000010 -S3154003E7C00000000000000000000000000000000000 -S3154003E7D000000000000000000000000000000000F0 -S3154003E7E000000000000000000000000000000000E0 -S3154003E7F000000000000000000000000000000000D0 -S3154003E80000000000000000000000000000000000BF -S3154003E81000000000000000000000000000000000AF -S3154003E820000000000000000000000000000000009F -S3154003E830000000000000000000000000000000008F -S3154003E840000000000000000000000000000000007F -S3154003E850000000000000000000000000000000006F -S3154003E860000000000000000000000000000000005F -S3154003E870000000000000000000000000000000004F -S3154003E880000000000000000000000000000000003F -S3154003E890000000000000000000000000000000002F -S3154003E8A0000000000000000000000000000000001F -S3154003E8B0000000000000000000000000000000000F -S3154003E8C000000000000000000000000000000000FF -S3154003E8D000000000000000000000000000000000EF -S3154003E8E000000000000000000000000000000000DF -S3154003E8F000000000000000000000000000000000CF -S3154003E90000000000000000000000000000000000BE -S3154003E91000000000000000000000000000000000AE -S3154003E920000000000000000000000000000000009E -S3154003E930000000000000000000000000000000008E -S3154003E940000000000000000000000000000000007E -S3154003E950000000000000000000000000000000006E -S3154003E960000000000000000000000000000000005E -S3154003E970000000000000000000000000000000004E -S3154003E980000000000000000000000000000000003E -S3154003E990000000000000000000000000000000002E -S3154003E9A0000000000000000000000000000000001E -S3154003E9B0000000000000000000000000000000000E -S3154003E9C000000000000000000000000000000000FE -S3154003E9D000000000000000000000000000000000EE -S3154003E9E000000000000000000000000000000000DE -S3154003E9F000000000000000000000000000000000CE -S3154003EA0000000000000000000000000000000000BD -S3154003EA1000000000000000000000000000000000AD -S3154003EA20000000000000000000000000000000009D -S3154003EA30000000000000000000000000000000008D -S3154003EA40000000000000000000000000000000007D -S3154003EA50000000000000000000000000000000006D -S3154003EA60000000000000000000000000000000005D -S3154003EA70000000000000000000000000000000004D -S3154003EA80000000000000000000000000000000003D -S3154003EA90000000000000000000000000000000002D -S3154003EAA0000000000000000000000000000000001D -S3154003EAB0000000000000000000000000000000000D -S3154003EAC000000000000000000000000000000000FD -S3154003EAD000000000000000000000000000000000ED -S3154003EAE000000000000000000000000000000000DD -S3154003EAF000000000000000000000000000000000CD -S3154003EB0000000000000000000000000000000000BC -S3154003EB1000000000000000000000000000000000AC -S3154003EB20000000000000000000000000000000009C -S3154003EB30000000000000000000000000000000008C -S3154003EB40000000000000000000000000000000007C -S3154003EB50000000000000000000000000000000006C -S3154003EB60000000000000000000000000000000005C -S3154003EB70000000000000000000000000000000004C -S3154003EB80000000000000000000000000000000003C -S3154003EB90000000000000000000000000000000002C -S3154003EBA0000000000000000000000000000000001C -S3154003EBB0000000000000000000000000000000000C -S3154003EBC000000000000000000000000000000000FC -S3154003EBD000000000000000000000000000000000EC -S3154003EBE000000000000000000000000000000000DC -S3154003EBF000000000000000000000000000000000CC -S3154003EC0000000000000000000000000000000000BB -S3154003EC1000000000000000000000000000000000AB -S3154003EC20000000000000000000000000000000009B -S3154003EC30000000000000000000000000000000008B -S3154003EC40000000000000000000000000000000007B -S3154003EC50000000000000000000000000000000006B -S3154003EC60000000000000000000000000000000005B -S3154003EC70000000000000000000000000000000004B -S3154003EC80000000000000000000000000000000003B -S3154003EC90000000000000000000000000000000002B -S3154003ECA0000000000000000000000000000000001B -S3154003ECB0000000000000000000000000000000000B -S3154003ECC000000000000000000000000000000000FB -S3154003ECD000000000000000000000000000000000EB -S3154003ECE000000000000000000000000000000000DB -S3154003ECF000000000000000000000000000000000CB -S3154003ED0000000000000000000000000000000000BA -S3154003ED1000000000000000000000000000000000AA -S3154003ED20000000000000000000000000000000009A -S3154003ED30000000000000000000000000000000008A -S3154003ED40000000000000000000000000000000007A -S3154003ED50000000000000000000000000000000006A -S3154003ED60000000000000000000000000000000005A -S3154003ED70000000000000000000000000000000004A -S3154003ED80000000000000000000000000000000003A -S3154003ED90000000000000000000000000000000002A -S3154003EDA0000000000000000000000000000000001A -S3154003EDB0000000000000000000000000000000000A -S3154003EDC000000000000000000000000000000000FA -S3154003EDD000000000000000000000000000000000EA -S3154003EDE000000000000000000000000000000000DA -S3154003EDF000000000000000000000000000000000CA -S3154003EE0000000000000000000000000000000000B9 -S3154003EE1000000000000000000000000000000000A9 -S3154003EE200000000000000000000000000000000099 -S3154003EE300000000000000000000000000000000089 -S3154003EE400000000000000000000000000000000079 -S3154003EE500000000000000000000000000000000069 -S3154003EE600000000000000000000000000000000059 -S3154003EE700000000000000000000000000000000049 -S3154003EE800000000000000000000000000000000039 -S3154003EE900000000000000000000000000000000029 -S3154003EEA00000000000000000000000000000000019 -S3154003EEB00000000000000000000000000000000009 -S3154003EEC000000000000000000000000000000000F9 -S3154003EED000000000000000000000000000000000E9 -S3154003EEE000000000000000000000000000000000D9 -S3154003EEF000000000000000000000000000000000C9 -S3154003EF0000000000000000000000000000000000B8 -S3154003EF1000000000000000000000000000000000A8 -S3154003EF200000000000000000000000000000000098 -S3154003EF300000000000000000000000000000000088 -S3154003EF400000000000000000000000000000000078 -S3154003EF500000000000000000000000000000000068 -S3154003EF600000000000000000000000000000000058 -S3154003EF700000000000000000000000000000000048 -S3154003EF800000000000000000000000000000000038 -S3154003EF900000000000000000000000000000000028 -S3154003EFA00000000000000000000000000000000018 -S3154003EFB00000000000000000000000000000000008 -S3154003EFC000000000000000000000000000000000F8 -S3154003EFD000000000000000000000000000000000E8 -S3154003EFE000000000000000000000000000000000D8 -S3154003EFF000000000000000000000000000000000C8 -S3154003F00000000000000000000000000000000000B7 -S3154003F01000000000000000000000000000000000A7 -S3154003F0200000000000000000000000000000000097 -S3154003F0300000000000000000000000000000000087 -S3154003F0400000000000000000000000000000000077 -S3154003F0500000000000000000000000000000000067 -S3154003F0600000000000000000000000000000000057 -S3154003F0700000000000000000000000000000000047 -S3154003F0800000000000000000000000000000000037 -S3154003F0900000000000000000000000000000000027 -S3154003F0A00000000000000000000000000000000017 -S3154003F0B00000000000000000000000000000000007 -S3154003F0C000000000000000000000000000000000F7 -S3154003F0D000000000000000000000000000000000E7 -S3154003F0E000000000000000000000000000000000D7 -S3154003F0F000000000000000000000000000000000C7 -S3154003F10000000000000000000000000000000000B6 -S3154003F11000000000000000000000000000000000A6 -S3154003F1200000000000000000000000000000000096 -S3154003F1300000000000000000000000000000000086 -S3154003F1400000000000000000000000000000000076 -S3154003F1500000000000000000000000000000000066 -S3154003F1600000000000000000000000000000000056 -S3154003F1700000000000000000000000000000000046 -S3154003F1800000000000000000000000000000000036 -S3154003F1900000000000000000000000000000000026 -S3154003F1A00000000000000000000000000000000016 -S3154003F1B00000000000000000000000000000000006 -S3154003F1C000000000000000000000000000000000F6 -S3154003F1D000000000000000000000000000000000E6 -S3154003F1E000000000000000000000000000000000D6 -S3154003F1F000000000000000000000000000000000C6 -S3154003F20000000000000000000000000000000000B5 -S3154003F21000000000000000000000000000000000A5 -S3154003F2200000000000000000000000000000000095 -S3154003F2300000000000000000000000000000000085 -S3154003F2400000000000000000000000000000000075 -S3154003F2500000000000000000000000000000000065 -S3154003F2600000000000000000000000000000000055 -S3154003F2700000000000000000000000000000000045 -S3154003F2800000000000000000000000000000000035 -S3154003F2900000000000000000000000000000000025 -S3154003F2A00000000000000000000000000000000015 -S3154003F2B00000000000000000000000000000000005 -S3154003F2C000000000000000000000000000000000F5 -S3154003F2D000000000000000000000000000000000E5 -S3154003F2E000000000000000000000000000000000D5 -S3154003F2F000000000000000000000000000000000C5 -S3154003F30000000000000000000000000000000000B4 -S3154003F31000000000000000000000000000000000A4 -S3154003F3200000000000000000000000000000000094 -S3154003F3300000000000000000000000000000000084 -S3154003F3400000000000000000000000000000000074 -S3154003F3500000000000000000000000000000000064 -S3154003F3600000000000000000000000000000000054 -S3154003F3700000000000000000000000000000000044 -S3154003F3800000000000000000000000000000000034 -S3154003F3900000000000000000000000000000000024 -S3154003F3A00000000000000000000000000000000014 -S3154003F3B00000000000000000000000000000000004 -S3154003F3C000000000000000000000000000000000F4 -S3154003F3D000000000000000000000000000000000E4 -S3154003F3E000000000000000000000000000000000D4 -S3154003F3F000000000000000000000000000000000C4 -S3154003F40000000000000000000000000000000000B3 -S3154003F41000000000000000000000000000000000A3 -S3154003F4200000000000000000000000000000000093 -S3154003F4300000000000000000000000000000000083 -S3154003F4400000000000000000000000000000000073 -S3154003F4500000000000000000000000000000000063 -S3154003F4600000000000000000000000000000000053 -S3154003F4700000000000000000000000000000000043 -S3154003F4800000000000000000000000000000000033 -S3154003F4900000000000000000000000000000000023 -S3154003F4A00000000000000000000000000000000013 -S3154003F4B00000000000000000000000000000000003 -S3154003F4C000000000000000000000000000000000F3 -S3154003F4D000000000000000000000000000000000E3 -S3154003F4E000000000000000000000000000000000D3 -S3154003F4F000000000000000000000000000000000C3 -S3154003F50000000000000000000000000000000000B2 -S3154003F51000000000000000000000000000000000A2 -S3154003F5200000000000000000000000000000000092 -S3154003F5300000000000000000000000000000000082 -S3154003F5400000000000000000000000000000000072 -S3154003F5500000000000000000000000000000000062 -S3154003F5600000000000000000000000000000000052 -S3154003F5700000000000000000000000000000000042 -S3154003F5800000000000000000000000000000000032 -S3154003F5900000000000000000000000000000000022 -S3154003F5A00000000000000000000000000000000012 -S3154003F5B00000000000000000000000000000000002 -S3154003F5C000000000000000000000000000000000F2 -S3154003F5D000000000000000000000000000000000E2 -S3154003F5E000000000000000000000000000000000D2 -S3154003F5F000000000000000000000000000000000C2 -S3154003F60000000000000000000000000000000000B1 -S3154003F61000000000000000000000000000000000A1 -S3154003F6200000000000000000000000000000000091 -S3154003F6300000000000000000000000000000000081 -S3154003F6400000000000000000000000000000000071 -S3154003F6500000000000000000000000000000000061 -S3154003F6600000000000000000000000000000000051 -S3154003F6700000000000000000000000000000000041 -S3154003F6800000000000000000000000000000000031 -S3154003F6900000000000000000000000000000000021 -S3154003F6A00000000000000000000000000000000011 -S3154003F6B00000000000000000000000000000000001 -S3154003F6C000000000000000000000000000000000F1 -S3154003F6D000000000000000000000000000000000E1 -S3154003F6E000000000000000000000000000000000D1 -S3154003F6F000000000000000000000000000000000C1 -S3154003F70000000000000000000000000000000000B0 -S3154003F71000000000000000000000000000000000A0 -S3154003F7200000000000000000000000000000000090 -S3154003F7300000000000000000000000000000000080 -S3154003F7400000000000000000000000000000000070 -S3154003F7500000000000000000000000000000000060 -S3154003F7600000000000000000000000000000000050 -S3154003F7700000000000000000000000000000000040 -S3154003F7800000000000000000000000000000000030 -S3154003F7900000000000000000000000000000000020 -S3154003F7A00000000000000000000000000000000010 -S3154003F7B00000000000000000000000000000000000 -S3154003F7C000000000000000000000000000000000F0 -S3154003F7D000000000000000000000000000000000E0 -S3154003F7E000000000000000000000000000000000D0 -S3154003F7F000000000000000000000000000000000C0 -S3154003F80000000000000000000000000000000000AF -S3154003F810000000000000000000000000000000009F -S3154003F820000000000000000000000000000000008F -S3154003F830000000000000000000000000000000007F -S3154003F840000000000000000000000000000000006F -S3154003F850000000000000000000000000000000005F -S3154003F860000000000000000000000000000000004F -S3154003F870000000000000000000000000000000003F -S3154003F880000000000000000000000000000000002F -S3154003F890000000000000000000000000000000001F -S3154003F8A0000000000000000000000000000000000F -S3154003F8B000000000000000000000000000000000FF -S3154003F8C000000000000000000000000000000000EF -S3154003F8D000000000000000000000000000000000DF -S3154003F8E000000000000000000000000000000000CF -S3154003F8F000000000000000000000000000000000BF -S3154003F90000000000000000000000000000000000AE -S3154003F910000000000000000000000000000000009E -S3154003F920000000000000000000000000000000008E -S3154003F930000000000000000000000000000000007E -S3154003F940000000000000000000000000000000006E -S3154003F950000000000000000000000000000000005E -S3154003F960000000000000000000000000000000004E -S3154003F970000000000000000000000000000000003E -S3154003F980000000000000000000000000000000002E -S3154003F990000000000000000000000000000000001E -S3154003F9A0000000000000000000000000000000000E -S3154003F9B000000000000000000000000000000000FE -S3154003F9C000000000000000000000000000000000EE -S3154003F9D000000000000000000000000000000000DE -S3154003F9E000000000000000000000000000000000CE -S3154003F9F000000000000000000000000000000000BE -S3154003FA0000000000000000000000000000000000AD -S3154003FA10000000000000000000000000000000009D -S3154003FA20000000000000000000000000000000008D -S3154003FA30000000000000000000000000000000007D -S3154003FA40000000000000000000000000000000006D -S3154003FA50000000000000000000000000000000005D -S3154003FA60000000000000000000000000000000004D -S3154003FA70000000000000000000000000000000003D -S3154003FA80000000000000000000000000000000002D -S3154003FA90000000000000000000000000000000001D -S3154003FAA0000000000000000000000000000000000D -S3154003FAB000000000000000000000000000000000FD -S3154003FAC000000000000000000000000000000000ED -S3154003FAD000000000000000000000000000000000DD -S3154003FAE000000000000000000000000000000000CD -S3154003FAF000000000000000000000000000000000BD -S3154003FB0000000000000000000000000000000000AC -S3154003FB10000000000000000000000000000000009C -S3154003FB20000000000000000000000000000000008C -S3154003FB30000000000000000000000000000000007C -S3154003FB40000000000000000000000000000000006C -S3154003FB50000000000000000000000000000000005C -S3154003FB60000000000000000000000000000000004C -S3154003FB70000000000000000000000000000000003C -S3154003FB80000000000000000000000000000000002C -S3154003FB90000000000000000000000000000000001C -S3154003FBA0000000000000000000000000000000000C -S3154003FBB000000000000000000000000000000000FC -S3154003FBC000000000000000000000000000000000EC -S3154003FBD000000000000000000000000000000000DC -S3154003FBE000000000000000000000000000000000CC -S3154003FBF000000000000000000000000000000000BC -S3154003FC0000000000000000000000000000000000AB -S3154003FC10000000000000000000000000000000009B -S3154003FC20000000000000000000000000000000008B -S3154003FC30000000000000000000000000000000007B -S3154003FC40000000000000000000000000000000006B -S3154003FC50000000000000000000000000000000005B -S3154003FC60000000000000000000000000000000004B -S3154003FC70000000000000000000000000000000003B -S3154003FC80000000000000000000000000000000002B -S3154003FC90000000000000000000000000000000001B -S3154003FCA0000000000000000000000000000000000B -S3154003FCB000000000000000000000000000000000FB -S3154003FCC000000000000000000000000000000000EB -S3154003FCD000000000000000000000000000000000DB -S3154003FCE000000000000000000000000000000000CB -S3154003FCF000000000000000000000000000000000BB -S3154003FD0000000000000000000000000000000000AA -S3154003FD10000000000000000000000000000000009A -S3154003FD20000000000000000000000000000000008A -S3154003FD30000000000000000000000000000000007A -S3154003FD40000000000000000000000000000000006A -S3154003FD50000000000000000000000000000000005A -S3154003FD60000000000000000000000000000000004A -S3154003FD70000000000000000000000000000000003A -S3154003FD80000000000000000000000000000000002A -S3154003FD90000000000000000000000000000000001A -S3154003FDA0000000000000000000000000000000000A -S3154003FDB000000000000000000000000000000000FA -S3154003FDC000000000000000000000000000000000EA -S3154003FDD000000000000000000000000000000000DA -S3154003FDE000000000000000000000000000000000CA -S3154003FDF000000000000000000000000000000000BA -S3154003FE0000000000000000000000000000000000A9 -S3154003FE100000000000000000000000000000000099 -S3154003FE200000000000000000000000000000000089 -S3154003FE300000000000000000000000000000000079 -S3154003FE400000000000000000000000000000000069 -S3154003FE500000000000000000000000000000000059 -S3154003FE600000000000000000000000000000000049 -S3154003FE700000000000000000000000000000000039 -S3154003FE800000000000000000000000000000000029 -S3154003FE900000000000000000000000000000000019 -S3154003FEA00000000000000000000000000000000009 -S3154003FEB000000000000000000000000000000000F9 -S3154003FEC000000000000000000000000000000000E9 -S3154003FED000000000000000000000000000000000D9 -S3154003FEE000000000000000000000000000000000C9 -S3154003FEF000000000000000000000000000000000B9 -S3154003FF0000000000000000000000000000000000A8 -S3154003FF100000000000000000000000000000000098 -S3154003FF200000000000000000000000000000000088 -S3154003FF300000000000000000000000000000000078 -S3154003FF400000000000000000000000000000000068 -S3154003FF500000000000000000000000000000000058 -S3154003FF600000000000000000000000000000000048 -S3154003FF700000000000000000000000000000000038 -S3154003FF800000000000000000000000000000000028 -S3154003FF900000000000000000000000000000000018 -S3154003FFA00000000000000000000000000000000008 -S3154003FFB000000000000000000000000000000000F8 -S3154003FFC000000000000000000000000000000000E8 -S3154003FFD000000000000000000000000000000000D8 -S3154003FFE000000000000000000000000000000000C8 -S3154003FFF000000000000000000000000000000000B8 -S3154004000000000000000000000000000000000000A6 -S315400400100000000000000000000000000000000096 -S315400400200000000000000000000000000000000086 -S315400400300000000000000000000000000000000076 -S315400400400000000000000000000000000000000066 -S315400400500000000000000000000000000000000056 -S315400400600000000000000000000000000000000046 -S315400400700000000000000000000000000000000036 -S315400400800000000000000000000000000000000026 -S315400400900000000000000000000000000000000016 -S315400400A00000000000000000000000000000000006 -S315400400B000000000000000000000000000000000F6 -S315400400C000000000000000000000000000000000E6 -S315400400D000000000000000000000000000000000D6 -S315400400E000000000000000000000000000000000C6 -S315400400F000000000000000000000000000000000B6 -S3154004010000000000000000000000000000000000A5 -S315400401100000000000000000000000000000000095 -S315400401200000000000000000000000000000000085 -S315400401300000000000000000000000000000000075 -S315400401400000000000000000000000000000000065 -S315400401500000000000000000000000000000000055 -S315400401600000000000000000000000000000000045 -S315400401700000000000000000000000000000000035 -S315400401800000000000000000000000000000000025 -S315400401900000000000000000000000000000000015 -S315400401A00000000000000000000000000000000005 -S315400401B000000000000000000000000000000000F5 -S315400401C000000000000000000000000000000000E5 -S315400401D000000000000000000000000000000000D5 -S315400401E000000000000000000000000000000000C5 -S315400401F000000000000000000000000000000000B5 -S3154004020000000000000000000000000000000000A4 -S315400402100000000000000000000000000000000094 -S315400402200000000000000000000000000000000084 -S315400402300000000000000000000000000000000074 -S315400402400000000000000000000000000000000064 -S315400402500000000000000000000000000000000054 -S315400402600000000000000000000000000000000044 -S315400402700000000000000000000000000000000034 -S315400402800000000000000000000000000000000024 -S315400402900000000000000000000000000000000014 -S315400402A00000000000000000000000000000000004 -S315400402B000000000000000000000000000000000F4 -S315400402C000000000000000000000000000000000E4 -S315400402D000000000000000000000000000000000D4 -S315400402E000000000000000000000000000000000C4 -S315400402F000000000000000000000000000000000B4 -S3154004030000000000000000000000000000000000A3 -S315400403100000000000000000000000000000000093 -S315400403200000000000000000000000000000000083 -S315400403300000000000000000000000000000000073 -S315400403400000000000000000000000000000000063 -S315400403500000000000000000000000000000000053 -S315400403600000000000000000000000000000000043 -S315400403700000000000000000000000000000000033 -S315400403800000000000000000000000000000000023 -S315400403900000000000000000000000000000000013 -S315400403A00000000000000000000000000000000003 -S315400403B000000000000000000000000000000000F3 -S315400403C000000000000000000000000000000000E3 -S315400403D000000000000000000000000000000000D3 -S315400403E000000000000000000000000000000000C3 -S315400403F000000000000000000000000000000000B3 -S3154004040000000000000000000000000000000000A2 -S315400404100000000000000000000000000000000092 -S315400404200000000000000000000000000000000082 -S315400404300000000000000000000000000000000072 -S315400404400000000000000000000000000000000062 -S315400404500000000000000000000000000000000052 -S315400404600000000000000000000000000000000042 -S315400404700000000000000000000000000000000032 -S315400404800000000000000000000000000000000022 -S315400404900000000000000000000000000000000012 -S315400404A00000000000000000000000000000000002 -S315400404B000000000000000000000000000000000F2 -S315400404C000000000000000000000000000000000E2 -S315400404D000000000000000000000000000000000D2 -S315400404E000000000000000000000000000000000C2 -S315400404F000000000000000000000000000000000B2 -S3154004050000000000000000000000000000000000A1 -S315400405100000000000000000000000000000000091 -S315400405200000000000000000000000000000000081 -S315400405300000000000000000000000000000000071 -S315400405400000000000000000000000000000000061 -S315400405500000000000000000000000000000000051 -S315400405600000000000000000000000000000000041 -S315400405700000000000000000000000000000000031 -S315400405800000000000000000000000000000000021 -S315400405900000000000000000000000000000000011 -S315400405A00000000000000000000000000000000001 -S315400405B000000000000000000000000000000000F1 -S315400405C000000000000000000000000000000000E1 -S315400405D000000000000000000000000000000000D1 -S315400405E000000000000000000000000000000000C1 -S315400405F000000000000000000000000000000000B1 -S3154004060000000000000000000000000000000000A0 -S315400406100000000000000000000000000000000090 -S315400406200000000000000000000000000000000080 -S315400406300000000000000000000000000000000070 -S315400406400000000000000000000000000000000060 -S315400406500000000000000000000000000000000050 -S315400406600000000000000000000000000000000040 -S315400406700000000000000000000000000000000030 -S315400406800000000000000000000000000000000020 -S315400406900000000000000000000000000000000010 -S315400406A00000000000000000000000000000000000 -S315400406B000000000000000000000000000000000F0 -S315400406C000000000000000000000000000000000E0 -S315400406D000000000000000000000000000000000D0 -S315400406E000000000000000000000000000000000C0 -S315400406F000000000000000000000000000000000B0 -S31540040700000000000000000000000000000000009F -S31540040710000000000000000000000000000000008F -S31540040720000000000000000000000000000000007F -S31540040730000000000000000000000000000000006F -S31540040740000000000000000000000000000000005F -S31540040750000000000000000000000000000000004F -S31540040760000000000000000000000000000000003F -S31540040770000000000000000000000000000000002F -S31540040780000000000000000000000000000000001F -S31540040790000000000000000000000000000000000F -S315400407A000000000000000000000000000000000FF -S315400407B000000000000000000000000000000000EF -S315400407C000000000000000000000000000000000DF -S315400407D000000000000000000000000000000000CF -S315400407E000000000000000000000000000000000BF -S315400407F000000000000000000000000000000000AF -S31540040800000000000000000000000000000000009E -S31540040810000000000000000000000000000000008E -S31540040820000000000000000000000000000000007E -S31540040830000000000000000000000000000000006E -S31540040840000000000000000000000000000000005E -S31540040850000000000000000000000000000000004E -S31540040860000000000000000000000000000000003E -S31540040870000000000000000000000000000000002E -S31540040880000000000000000000000000000000001E -S31540040890000000000000000000000000000000000E -S315400408A000000000000000000000000000000000FE -S315400408B000000000000000000000000000000000EE -S315400408C000000000000000000000000000000000DE -S315400408D000000000000000000000000000000000CE -S315400408E000000000000000000000000000000000BE -S315400408F000000000000000000000000000000000AE -S31540040900000000000000000000000000000000009D -S31540040910000000000000000000000000000000008D -S31540040920000000000000000000000000000000007D -S31540040930000000000000000000000000000000006D -S31540040940000000000000000000000000000000005D -S31540040950000000000000000000000000000000004D -S31540040960000000000000000000000000000000003D -S31540040970000000000000000000000000000000002D -S31540040980000000000000000000000000000000001D -S31540040990000000000000000000000000000000000D -S315400409A000000000000000000000000000000000FD -S315400409B000000000000000000000000000000000ED -S315400409C000000000000000000000000000000000DD -S315400409D000000000000000000000000000000000CD -S315400409E000000000000000000000000000000000BD -S315400409F000000000000000000000000000000000AD -S31540040A00000000000000000000000000000000009C -S31540040A10000000000000000000000000000000008C -S31540040A20000000000000000000000000000000007C -S31540040A30000000000000000000000000000000006C -S31540040A40000000000000000000000000000000005C -S31540040A50000000000000000000000000000000004C -S31540040A60000000000000000000000000000000003C -S31540040A70000000000000000000000000000000002C -S31540040A80000000000000000000000000000000001C -S31540040A90000000000000000000000000000000000C -S31540040AA000000000000000000000000000000000FC -S31540040AB000000000000000000000000000000000EC -S31540040AC000000000000000000000000000000000DC -S31540040AD000000000000000000000000000000000CC -S31540040AE000000000000000000000000000000000BC -S31540040AF000000000000000000000000000000000AC -S31540040B00000000000000000000000000000000009B -S31540040B10000000000000000000000000000000008B -S31540040B20000000000000000000000000000000007B -S31540040B30000000000000000000000000000000006B -S31540040B40000000000000000000000000000000005B -S31540040B50000000000000000000000000000000004B -S31540040B60000000000000000000000000000000003B -S31540040B70000000000000000000000000000000002B -S31540040B80000000000000000000000000000000001B -S31540040B90000000000000000000000000000000000B -S31540040BA000000000000000000000000000000000FB -S31540040BB000000000000000000000000000000000EB -S31540040BC000000000000000000000000000000000DB -S31540040BD000000000000000000000000000000000CB -S31540040BE000000000000000000000000000000000BB -S31540040BF000000000000000000000000000000000AB -S31540040C00000000000000000000000000000000009A -S31540040C10000000000000000000000000000000008A -S31540040C20000000000000000000000000000000007A -S31540040C30000000000000000000000000000000006A -S31540040C40000000000000000000000000000000005A -S31540040C50000000000000000000000000000000004A -S31540040C60000000000000000000000000000000003A -S31540040C70000000000000000000000000000000002A -S31540040C80000000000000000000000000000000001A -S31540040C90000000000000000000000000000000000A -S31540040CA000000000000000000000000000000000FA -S31540040CB000000000000000000000000000000000EA -S31540040CC000000000000000000000000000000000DA -S31540040CD000000000000000000000000000000000CA -S31540040CE000000000000000000000000000000000BA -S31540040CF000000000000000000000000000000000AA -S31540040D000000000000000000000000000000000099 -S31540040D100000000000000000000000000000000089 -S31540040D200000000000000000000000000000000079 -S31540040D300000000000000000000000000000000069 -S31540040D400000000000000000000000000000000059 -S31540040D500000000000000000000000000000000049 -S31540040D600000000000000000000000000000000039 -S31540040D700000000000000000000000000000000029 -S31540040D800000000000000000000000000000000019 -S31540040D900000000000000000000000000000000009 -S31540040DA000000000000000000000000000000000F9 -S31540040DB000000000000000000000000000000000E9 -S31540040DC000000000000000000000000000000000D9 -S31540040DD000000000000000000000000000000000C9 -S31540040DE000000000000000000000000000000000B9 -S31540040DF000000000000000000000000000000000A9 -S31540040E000000000000000000000000000000000098 -S31540040E100000000000000000000000000000000088 -S31540040E200000000000000000000000000000000078 -S31540040E300000000000000000000000000000000068 -S31540040E400000000000000000000000000000000058 -S31540040E500000000000000000000000000000000048 -S31540040E600000000000000000000000000000000038 -S31540040E700000000000000000000000000000000028 -S31540040E800000000000000000000000000000000018 -S31540040E900000000000000000000000000000000008 -S31540040EA000000000000000000000000000000000F8 -S31540040EB000000000000000000000000000000000E8 -S31540040EC000000000000000000000000000000000D8 -S31540040ED000000000000000000000000000000000C8 -S31540040EE000000000000000000000000000000000B8 -S31540040EF000000000000000000000000000000000A8 -S31540040F000000000000000000000000000000000097 -S31540040F100000000000000000000000000000000087 -S31540040F200000000000000000000000000000000077 -S31540040F300000000000000000000000000000000067 -S31540040F400000000000000000000000000000000057 -S31540040F500000000000000000000000000000000047 -S31540040F600000000000000000000000000000000037 -S31540040F700000000000000000000000000000000027 -S31540040F800000000000000000000000000000000017 -S31540040F900000000000000000000000000000000007 -S31540040FA000000000000000000000000000000000F7 -S31540040FB000000000000000000000000000000000E7 -S31540040FC000000000000000000000000000000000D7 -S31540040FD000000000000000000000000000000000C7 -S31540040FE000000000000000000000000000000000B7 -S31540040FF000000000000000000000000000000000A7 -S315400410000000000000000000000000000000000096 -S315400410100000000000000000000000000000000086 -S315400410200000000000000000000000000000000076 -S315400410300000000000000000000000000000000066 -S315400410400000000000000000000000000000000056 -S315400410500000000000000000000000000000000046 -S315400410600000000000000000000000000000000036 -S315400410700000000000000000000000000000000026 -S315400410800000000000000000000000000000000016 -S315400410900000000000000000000000000000000006 -S315400410A000000000000000000000000000000000F6 -S315400410B000000000000000000000000000000000E6 -S315400410C000000000000000000000000000000000D6 -S315400410D000000000000000000000000000000000C6 -S315400410E000000000000000000000000000000000B6 -S315400410F000000000000000000000000000000000A6 -S315400411000000000000000000000000000000000095 -S315400411100000000000000000000000000000000085 -S315400411200000000000000000000000000000000075 -S315400411300000000000000000000000000000000065 -S315400411400000000000000000000000000000000055 -S315400411500000000000000000000000000000000045 -S315400411600000000000000000000000000000000035 -S315400411700000000000000000000000000000000025 -S315400411800000000000000000000000000000000015 -S315400411900000000000000000000000000000000005 -S315400411A000000000000000000000000000000000F5 -S315400411B000000000000000000000000000000000E5 -S315400411C000000000000000000000000000000000D5 -S315400411D000000000000000000000000000000000C5 -S315400411E000000000000000000000000000000000B5 -S315400411F000000000000000000000000000000000A5 -S315400412000000000000000000000000000000000094 -S315400412100000000000000000000000000000000084 -S315400412200000000000000000000000000000000074 -S315400412300000000000000000000000000000000064 -S315400412400000000000000000000000000000000054 -S315400412500000000000000000000000000000000044 -S315400412600000000000000000000000000000000034 -S315400412700000000000000000000000000000000024 -S315400412800000000000000000000000000000000014 -S315400412900000000000000000000000000000000004 -S315400412A000000000000000000000000000000000F4 -S315400412B000000000000000000000000000000000E4 -S315400412C000000000000000000000000000000000D4 -S315400412D000000000000000000000000000000000C4 -S315400412E000000000000000000000000000000000B4 -S315400412F000000000000000000000000000000000A4 -S315400413000000000000000000000000000000000093 -S315400413100000000000000000000000000000000083 -S315400413200000000000000000000000000000000073 -S315400413300000000000000000000000000000000063 -S315400413400000000000000000000000000000000053 -S315400413500000000000000000000000000000000043 -S315400413600000000000000000000000000000000033 -S315400413700000000000000000000000000000000023 -S315400413800000000000000000000000000000000013 -S315400413900000000000000000000000000000000003 -S315400413A000000000000000000000000000000000F3 -S315400413B000000000000000000000000000000000E3 -S315400413C000000000000000000000000000000000D3 -S315400413D000000000000000000000000000000000C3 -S315400413E000000000000000000000000000000000B3 -S315400413F000000000000000000000000000000000A3 -S315400414000000000000000000000000000000000092 -S315400414100000000000000000000000000000000082 -S315400414200000000000000000000000000000000072 -S315400414300000000000000000000000000000000062 -S315400414400000000000000000000000000000000052 -S315400414500000000000000000000000000000000042 -S315400414600000000000000000000000000000000032 -S315400414700000000000000000000000000000000022 -S315400414800000000000000000000000000000000012 -S315400414900000000000000000000000000000000002 -S315400414A000000000000000000000000000000000F2 -S315400414B000000000000000000000000000000000E2 -S315400414C000000000000000000000000000000000D2 -S315400414D000000000000000000000000000000000C2 -S315400414E000000000000000000000000000000000B2 -S315400414F000000000000000000000000000000000A2 -S315400415000000000000000000000000000000000091 -S315400415100000000000000000000000000000000081 -S315400415200000000000000000000000000000000071 -S315400415300000000000000000000000000000000061 -S315400415400000000000000000000000000000000051 -S315400415500000000000000000000000000000000041 -S315400415600000000000000000000000000000000031 -S315400415700000000000000000000000000000000021 -S315400415800000000000000000000000000000000011 -S315400415900000000000000000000000000000000001 -S315400415A000000000000000000000000000000000F1 -S315400415B000000000000000000000000000000000E1 -S315400415C000000000000000000000000000000000D1 -S315400415D000000000000000000000000000000000C1 -S315400415E000000000000000000000000000000000B1 -S315400415F000000000000000000000000000000000A1 -S315400416000000000000000000000000000000000090 -S315400416100000000000000000000000000000000080 -S315400416200000000000000000000000000000000070 -S315400416300000000000000000000000000000000060 -S315400416400000000000000000000000000000000050 -S315400416500000000000000000000000000000000040 -S315400416600000000000000000000000000000000030 -S315400416700000000000000000000000000000000020 -S315400416800000000000000000000000000000000010 -S315400416900000000000000000000000000000000000 -S315400416A000000000000000000000000000000000F0 -S315400416B000000000000000000000000000000000E0 -S315400416C000000000000000000000000000000000D0 -S315400416D000000000000000000000000000000000C0 -S315400416E000000000000000000000000000000000B0 -S315400416F000000000000000000000000000000000A0 -S31540041700000000000000000000000000000000008F -S31540041710000000000000000000000000000000007F -S31540041720000000000000000000000000000000006F -S31540041730000000000000000000000000000000005F -S31540041740000000000000000000000000000000004F -S31540041750000000000000000000000000000000003F -S31540041760000000000000000000000000000000002F -S31540041770000000000000000000000000000000001F -S31540041780000000000000000000000000000000000F -S3154004179000000000000000000000000000000000FF -S315400417A000000000000000000000000000000000EF -S315400417B000000000000000000000000000000000DF -S315400417C000000000000000000000000000000000CF -S315400417D000000000000000000000000000000000BF -S315400417E000000000000000000000000000000000AF -S315400417F0000000000000000000000000000000009F -S31540041800000000000000000000000000000000008E -S31540041810000000000000000000000000000000007E -S31540041820000000000000000000000000000000006E -S31540041830000000000000000000000000000000005E -S31540041840000000000000000000000000000000004E -S31540041850000000000000000000000000000000003E -S31540041860000000000000000000000000000000002E -S31540041870000000000000000000000000000000001E -S31540041880000000000000000000000000000000000E -S3154004189000000000000000000000000000000000FE -S315400418A000000000000000000000000000000000EE -S315400418B000000000000000000000000000000000DE -S315400418C000000000000000000000000000000000CE -S315400418D000000000000000000000000000000000BE -S315400418E000000000000000000000000000000000AE -S315400418F0000000000000000000000000000000009E -S31540041900000000000000000000000000000000008D -S31540041910000000000000000000000000000000007D -S31540041920000000000000000000000000000000006D -S31540041930000000000000000000000000000000005D -S31540041940000000000000000000000000000000004D -S31540041950000000000000000000000000000000003D -S31540041960000000000000000000000000000000002D -S31540041970000000000000000000000000000000001D -S31540041980000000000000000000000000000000000D -S3154004199000000000000000000000000000000000FD -S315400419A000000000000000000000000000000000ED -S315400419B000000000000000000000000000000000DD -S315400419C000000000000000000000000000000000CD -S315400419D000000000000000000000000000000000BD -S315400419E000000000000000000000000000000000AD -S315400419F0000000000000000000000000000000009D -S31540041A00000000000000000000000000000000008C -S31540041A10000000000000000000000000000000007C -S31540041A20000000000000000000000000000000006C -S31540041A30000000000000000000000000000000005C -S31540041A40000000000000000000000000000000004C -S31540041A50000000000000000000000000000000003C -S31540041A60000000000000000000000000000000002C -S31540041A70000000000000000000000000000000001C -S31540041A80000000000000000000000000000000000C -S31540041A9000000000000000000000000000000000FC -S31540041AA000000000000000000000000000000000EC -S31540041AB000000000000000000000000000000000DC -S31540041AC000000000000000000000000000000000CC -S31540041AD000000000000000000000000000000000BC -S31540041AE000000000000000000000000000000000AC -S31540041AF0000000000000000000000000000000009C -S31540041B00000000000000000000000000000000008B -S31540041B10000000000000000000000000000000007B -S31540041B20000000000000000000000000000000006B -S31540041B30000000000000000000000000000000005B -S31540041B40000000000000000000000000000000004B -S31540041B50000000000000000000000000000000003B -S31540041B60000000000000000000000000000000002B -S31540041B70000000000000000000000000000000001B -S31540041B80000000000000000000000000000000000B -S31540041B9000000000000000000000000000000000FB -S31540041BA000000000000000000000000000000000EB -S31540041BB000000000000000000000000000000000DB -S31540041BC000000000000000000000000000000000CB -S31540041BD000000000000000000000000000000000BB -S31540041BE000000000000000000000000000000000AB -S31540041BF0000000000000000000000000000000009B -S31540041C00000000000000000000000000000000008A -S31540041C10000000000000000000000000000000007A -S31540041C20000000000000000000000000000000006A -S31540041C30000000000000000000000000000000005A -S31540041C40000000000000000000000000000000004A -S31540041C50000000000000000000000000000000003A -S31540041C60000000000000000000000000000000002A -S31540041C70000000000000000000000000000000001A -S31540041C80000000000000000000000000000000000A -S31540041C9000000000000000000000000000000000FA -S31540041CA000000000000000000000000000000000EA -S31540041CB000000000000000000000000000000000DA -S31540041CC000000000000000000000000000000000CA -S31540041CD000000000000000000000000000000000BA -S31540041CE000000000000000000000000000000000AA -S31540041CF0000000000000000000000000000000009A -S31540041D000000000000000000000000000000000089 -S31540041D100000000000000000000000000000000079 -S31540041D200000000000000000000000000000000069 -S31540041D300000000000000000000000000000000059 -S31540041D400000000000000000000000000000000049 -S31540041D500000000000000000000000000000000039 -S31540041D600000000000000000000000000000000029 -S31540041D700000000000000000000000000000000019 -S31540041D800000000000000000000000000000000009 -S31540041D9000000000000000000000000000000000F9 -S31540041DA000000000000000000000000000000000E9 -S31540041DB000000000000000000000000000000000D9 -S31540041DC000000000000000000000000000000000C9 -S31540041DD000000000000000000000000000000000B9 -S31540041DE000000000000000000000000000000000A9 -S31540041DF00000000000000000000000000000000099 -S31540041E000000000000000000000000000000000088 -S31540041E100000000000000000000000000000000078 -S31540041E200000000000000000000000000000000068 -S31540041E300000000000000000000000000000000058 -S31540041E400000000000000000000000000000000048 -S31540041E500000000000000000000000000000000038 -S31540041E600000000000000000000000000000000028 -S31540041E700000000000000000000000000000000018 -S31540041E800000000000000000000000000000000008 -S31540041E9000000000000000000000000000000000F8 -S31540041EA000000000000000000000000000000000E8 -S31540041EB000000000000000000000000000000000D8 -S31540041EC000000000000000000000000000000000C8 -S31540041ED000000000000000000000000000000000B8 -S31540041EE000000000000000000000000000000000A8 -S31540041EF00000000000000000000000000000000098 -S31540041F000000000000000000000000000000000087 -S31540041F100000000000000000000000000000000077 -S31540041F200000000000000000000000000000000067 -S31540041F300000000000000000000000000000000057 -S31540041F400000000000000000000000000000000047 -S31540041F500000000000000000000000000000000037 -S31540041F600000000000000000000000000000000027 -S31540041F700000000000000000000000000000000017 -S31540041F800000000000000000000000000000000007 -S31540041F9000000000000000000000000000000000F7 -S31540041FA000000000000000000000000000000000E7 -S31540041FB000000000000000000000000000000000D7 -S31540041FC000000000000000000000000000000000C7 -S31540041FD000000000000000000000000000000000B7 -S31540041FE000000000000000000000000000000000A7 -S31540041FF00000000000000000000000000000000097 -S315400420000000000000000000000000000000000086 -S315400420100000000000000000000000000000000076 -S315400420200000000000000000000000000000000066 -S315400420300000000000000000000000000000000056 -S315400420400000000000000000000000000000000046 -S315400420500000000000000000000000000000000036 -S315400420600000000000000000000000000000000026 -S315400420700000000000000000000000000000000016 -S315400420800000000000000000000000000000000006 -S3154004209000000000000000000000000000000000F6 -S315400420A000000000000000000000000000000000E6 -S315400420B000000000000000000000000000000000D6 -S315400420C000000000000000000000000000000000C6 -S315400420D000000000000000000000000000000000B6 -S315400420E000000000000000000000000000000000A6 -S315400420F00000000000000000000000000000000096 -S315400421000000000000000000000000000000000085 -S315400421100000000000000000000000000000000075 -S315400421200000000000000000000000000000000065 -S315400421300000000000000000000000000000000055 -S315400421400000000000000000000000000000000045 -S315400421500000000000000000000000000000000035 -S315400421600000000000000000000000000000000025 -S315400421700000000000000000000000000000000015 -S315400421800000000000000000000000000000000005 -S3154004219000000000000000000000000000000000F5 -S315400421A000000000000000000000000000000000E5 -S315400421B000000000000000000000000000000000D5 -S315400421C000000000000000000000000000000000C5 -S315400421D000000000000000000000000000000000B5 -S315400421E000000000000000000000000000000000A5 -S315400421F00000000000000000000000000000000095 -S315400422000000000000000000000000000000000084 -S315400422100000000000000000000000000000000074 -S315400422200000000000000000000000000000000064 -S315400422300000000000000000000000000000000054 -S315400422400000000000000000000000000000000044 -S315400422500000000000000000000000000000000034 -S315400422600000000000000000000000000000000024 -S315400422700000000000000000000000000000000014 -S315400422800000000000000000000000000000000004 -S3154004229000000000000000000000000000000000F4 -S315400422A000000000000000000000000000000000E4 -S315400422B000000000000000000000000000000000D4 -S315400422C000000000000000000000000000000000C4 -S315400422D000000000000000000000000000000000B4 -S315400422E000000000000000000000000000000000A4 -S315400422F00000000000000000000000000000000094 -S315400423000000000000000000000000000000000083 -S315400423100000000000000000000000000000000073 -S315400423200000000000000000000000000000000063 -S315400423300000000000000000000000000000000053 -S315400423400000000000000000000000000000000043 -S315400423500000000000000000000000000000000033 -S315400423600000000000000000000000000000000023 -S315400423700000000000000000000000000000000013 -S315400423800000000000000000000000000000000003 -S3154004239000000000000000000000000000000000F3 -S315400423A000000000000000000000000000000000E3 -S315400423B000000000000000000000000000000000D3 -S315400423C000000000000000000000000000000000C3 -S315400423D000000000000000000000000000000000B3 -S315400423E000000000000000000000000000000000A3 -S315400423F00000000000000000000000000000000093 -S315400424000000000000000000000000000000000082 -S315400424100000000000000000000000000000000072 -S315400424200000000000000000000000000000000062 -S315400424300000000000000000000000000000000052 -S315400424400000000000000000000000000000000042 -S315400424500000000000000000000000000000000032 -S315400424600000000000000000000000000000000022 -S315400424700000000000000000000000000000000012 -S315400424800000000000000000000000000000000002 -S3154004249000000000000000000000000000000000F2 -S315400424A000000000000000000000000000000000E2 -S315400424B000000000000000000000000000000000D2 -S315400424C000000000000000000000000000000000C2 -S315400424D000000000000000000000000000000000B2 -S315400424E000000000000000000000000000000000A2 -S315400424F00000000000000000000000000000000092 -S315400425000000000000000000000000000000000081 -S315400425100000000000000000000000000000000071 -S315400425200000000000000000000000000000000061 -S315400425300000000000000000000000000000000051 -S315400425400000000000000000000000000000000041 -S315400425500000000000000000000000000000000031 -S315400425600000000000000000000000000000000021 -S315400425700000000000000000000000000000000011 -S315400425800000000000000000000000000000000001 -S3154004259000000000000000000000000000000000F1 -S315400425A000000000000000000000000000000000E1 -S315400425B000000000000000000000000000000000D1 -S315400425C000000000000000000000000000000000C1 -S315400425D000000000000000000000000000000000B1 -S315400425E000000000000000000000000000000000A1 -S315400425F00000000000000000000000000000000091 -S315400426000000000000000000000000000000000080 -S315400426100000000000000000000000000000000070 -S315400426200000000000000000000000000000000060 -S315400426300000000000000000000000000000000050 -S315400426400000000000000000000000000000000040 -S315400426500000000000000000000000000000000030 -S315400426600000000000000000000000000000000020 -S315400426700000000000000000000000000000000010 -S315400426800000000000000000000000000000000000 -S3154004269000000000000000000000000000000000F0 -S315400426A000000000000000000000000000000000E0 -S315400426B000000000000000000000000000000000D0 -S315400426C000000000000000000000000000000000C0 -S315400426D000000000000000000000000000000000B0 -S315400426E000000000000000000000000000000000A0 -S315400426F00000000000000000000000000000000090 -S31540042700000000000000000000000000000000007F -S31540042710000000000000000000000000000000006F -S31540042720000000000000000000000000000000005F -S31540042730000000000000000000000000000000004F -S31540042740000000000000000000000000000000003F -S31540042750000000000000000000000000000000002F -S31540042760000000000000000000000000000000001F -S31540042770000000000000000000000000000000000F -S3154004278000000000000000000000000000000000FF -S3154004279000000000000000000000000000000000EF -S315400427A000000000000000000000000000000000DF -S315400427B000000000000000000000000000000000CF -S315400427C000000000000000000000000000000000BF -S315400427D000000000000000000000000000000000AF -S315400427E0000000000000000000000000000000009F -S315400427F0000000000000000000000000000000008F -S31540042800000000000000000000000000000000007E -S31540042810000000000000000000000000000000006E -S31540042820000000000000000000000000000000005E -S31540042830000000000000000000000000000000004E -S31540042840000000000000000000000000000000003E -S31540042850000000000000000000000000000000002E -S31540042860000000000000000000000000000000001E -S31540042870000000000000000000000000000000000E -S3154004288000000000000000000000000000000000FE -S3154004289000000000000000000000000000000000EE -S315400428A000000000000000000000000000000000DE -S315400428B000000000000000000000000000000000CE -S315400428C000000000000000000000000000000000BE -S315400428D000000000000000000000000000000000AE -S315400428E0000000000000000000000000000000009E -S315400428F0000000000000000000000000000000008E -S31540042900000000000000000000000000000000007D -S31540042910000000000000000000000000000000006D -S31540042920000000000000000000000000000000005D -S31540042930000000000000000000000000000000004D -S31540042940000000000000000000000000000000003D -S31540042950000000000000000000000000000000002D -S31540042960000000000000000000000000000000001D -S31540042970000000000000000000000000000000000D -S3154004298000000000000000000000000000000000FD -S3154004299000000000000000000000000000000000ED -S315400429A000000000000000000000000000000000DD -S315400429B000000000000000000000000000000000CD -S315400429C000000000000000000000000000000000BD -S315400429D000000000000000000000000000000000AD -S315400429E0000000000000000000000000000000009D -S315400429F0000000000000000000000000000000008D -S31540042A00000000000000000000000000000000007C -S31540042A10000000000000000000000000000000006C -S31540042A20000000000000000000000000000000005C -S31540042A30000000000000000000000000000000004C -S31540042A40000000000000000000000000000000003C -S31540042A50000000000000000000000000000000002C -S31540042A60000000000000000000000000000000001C -S31540042A70000000000000000000000000000000000C -S31540042A8000000000000000000000000000000000FC -S31540042A9000000000000000000000000000000000EC -S31540042AA000000000000000000000000000000000DC -S31540042AB000000000000000000000000000000000CC -S31540042AC000000000000000000000000000000000BC -S31540042AD000000000000000000000000000000000AC -S31540042AE0000000000000000000000000000000009C -S31540042AF0000000000000000000000000000000008C -S31540042B00000000000000000000000000000000007B -S31540042B10000000000000000000000000000000006B -S31540042B20000000000000000000000000000000005B -S31540042B30000000000000000000000000000000004B -S31540042B40000000000000000000000000000000003B -S31540042B50000000000000000000000000000000002B -S31540042B60000000000000000000000000000000001B -S31540042B70000000000000000000000000000000000B -S31540042B8000000000000000000000000000000000FB -S31540042B9000000000000000000000000000000000EB -S31540042BA000000000000000000000000000000000DB -S31540042BB000000000000000000000000000000000CB -S31540042BC000000000000000000000000000000000BB -S31540042BD000000000000000000000000000000000AB -S31540042BE0000000000000000000000000000000009B -S31540042BF0000000000000000000000000000000008B -S31540042C00000000000000000000000000000000007A -S31540042C10000000000000000000000000000000006A -S31540042C20000000000000000000000000000000005A -S31540042C30000000000000000000000000000000004A -S31540042C40000000000000000000000000000000003A -S31540042C50000000000000000000000000000000002A -S31540042C60000000000000000000000000000000001A -S31540042C70000000000000000000000000000000000A -S31540042C8000000000000000000000000000000000FA -S31540042C9000000000000000000000000000000000EA -S31540042CA000000000000000000000000000000000DA -S31540042CB000000000000000000000000000000000CA -S31540042CC000000000000000000000000000000000BA -S31540042CD000000000000000000000000000000000AA -S31540042CE0000000000000000000000000000000009A -S31540042CF0000000000000000000000000000000008A -S31540042D000000000000000000000000000000000079 -S31540042D100000000000000000000000000000000069 -S31540042D200000000000000000000000000000000059 -S31540042D300000000000000000000000000000000049 -S31540042D400000000000000000000000000000000039 -S31540042D500000000000000000000000000000000029 -S31540042D600000000000000000000000000000000019 -S31540042D700000000000000000000000000000000009 -S31540042D8000000000000000000000000000000000F9 -S31540042D9000000000000000000000000000000000E9 -S31540042DA000000000000000000000000000000000D9 -S31540042DB000000000000000000000000000000000C9 -S31540042DC000000000000000000000000000000000B9 -S31540042DD000000000000000000000000000000000A9 -S31540042DE00000000000000000000000000000000099 -S31540042DF00000000000000000000000000000000089 -S31540042E000000000000000000000000000000000078 -S31540042E100000000000000000000000000000000068 -S31540042E200000000000000000000000000000000058 -S31540042E300000000000000000000000000000000048 -S31540042E400000000000000000000000000000000038 -S31540042E500000000000000000000000000000000028 -S31540042E600000000000000000000000000000000018 -S31540042E700000000000000000000000000000000008 -S31540042E8000000000000000000000000000000000F8 -S31540042E9000000000000000000000000000000000E8 -S31540042EA000000000000000000000000000000000D8 -S31540042EB000000000000000000000000000000000C8 -S31540042EC000000000000000000000000000000000B8 -S31540042ED000000000000000000000000000000000A8 -S31540042EE00000000000000000000000000000000098 -S31540042EF00000000000000000000000000000000088 -S31540042F000000000000000000000000000000000077 -S31540042F100000000000000000000000000000000067 -S31540042F200000000000000000000000000000000057 -S31540042F300000000000000000000000000000000047 -S31540042F400000000000000000000000000000000037 -S31540042F500000000000000000000000000000000027 -S31540042F600000000000000000000000000000000017 -S31540042F700000000000000000000000000000000007 -S31540042F8000000000000000000000000000000000F7 -S31540042F9000000000000000000000000000000000E7 -S31540042FA000000000000000000000000000000000D7 -S31540042FB000000000000000000000000000000000C7 -S31540042FC000000000000000000000000000000000B7 -S31540042FD000000000000000000000000000000000A7 -S31540042FE00000000000000000000000000000000097 -S31540042FF00000000000000000000000000000000087 -S315400430000000000000000000000000000000000076 -S315400430100000000000000000000000000000000066 -S315400430200000000000000000000000000000000056 -S315400430300000000000000000000000000000000046 -S315400430400000000000000000000000000000000036 -S315400430500000000000000000000000000000000026 -S315400430600000000000000000000000000000000016 -S315400430700000000000000000000000000000000006 -S3154004308000000000000000000000000000000000F6 -S3154004309000000000000000000000000000000000E6 -S315400430A000000000000000000000000000000000D6 -S315400430B000000000000000000000000000000000C6 -S315400430C000000000000000000000000000000000B6 -S315400430D000000000000000000000000000000000A6 -S315400430E00000000000000000000000000000000096 -S315400430F00000000000000000000000000000000086 -S315400431000000000000000000000000000000000075 -S315400431100000000000000000000000000000000065 -S315400431200000000000000000000000000000000055 -S315400431300000000000000000000000000000000045 -S315400431400000000000000000000000000000000035 -S315400431500000000000000000000000000000000025 -S315400431600000000000000000000000000000000015 -S315400431700000000000000000000000000000000005 -S3154004318000000000000000000000000000000000F5 -S3154004319000000000000000000000000000000000E5 -S315400431A000000000000000000000000000000000D5 -S315400431B000000000000000000000000000000000C5 -S315400431C000000000000000000000000000000000B5 -S315400431D000000000000000000000000000000000A5 -S315400431E00000000000000000000000000000000095 -S315400431F00000000000000000000000000000000085 -S315400432000000000000000000000000000000000074 -S315400432100000000000000000000000000000000064 -S315400432200000000000000000000000000000000054 -S315400432300000000000000000000000000000000044 -S315400432400000000000000000000000000000000034 -S315400432500000000000000000000000000000000024 -S315400432600000000000000000000000000000000014 -S315400432700000000000000000000000000000000004 -S3154004328000000000000000000000000000000000F4 -S3154004329000000000000000000000000000000000E4 -S315400432A000000000000000000000000000000000D4 -S315400432B000000000000000000000000000000000C4 -S315400432C000000000000000000000000000000000B4 -S315400432D000000000000000000000000000000000A4 -S315400432E00000000000000000000000000000000094 -S315400432F00000000000000000000000000000000084 -S315400433000000000000000000000000000000000073 -S315400433100000000000000000000000000000000063 -S315400433200000000000000000000000000000000053 -S315400433300000000000000000000000000000000043 -S315400433400000000000000000000000000000000033 -S315400433500000000000000000000000000000000023 -S315400433600000000000000000000000000000000013 -S315400433700000000000000000000000000000000003 -S3154004338000000000000000000000000000000000F3 -S3154004339000000000000000000000000000000000E3 -S315400433A000000000000000000000000000000000D3 -S315400433B000000000000000000000000000000000C3 -S315400433C000000000000000000000000000000000B3 -S315400433D000000000000000000000000000000000A3 -S315400433E00000000000000000000000000000000093 -S315400433F00000000000000000000000000000000083 -S315400434000000000000000000000000000000000072 -S315400434100000000000000000000000000000000062 -S315400434200000000000000000000000000000000052 -S315400434300000000000000000000000000000000042 -S315400434400000000000000000000000000000000032 -S315400434500000000000000000000000000000000022 -S315400434600000000000000000000000000000000012 -S315400434700000000000000000000000000000000002 -S3154004348000000000000000000000000000000000F2 -S3154004349000000000000000000000000000000000E2 -S315400434A000000000000000000000000000000000D2 -S315400434B000000000000000000000000000000000C2 -S315400434C000000000000000000000000000000000B2 -S315400434D000000000000000000000000000000000A2 -S315400434E00000000000000000000000000000000092 -S315400434F00000000000000000000000000000000082 -S315400435000000000000000000000000000000000071 -S315400435100000000000000000000000000000000061 -S315400435200000000000000000000000000000000051 -S315400435300000000000000000000000000000000041 -S315400435400000000000000000000000000000000031 -S315400435500000000000000000000000000000000021 -S315400435600000000000000000000000000000000011 -S315400435700000000000000000000000000000000001 -S3154004358000000000000000000000000000000000F1 -S3154004359000000000000000000000000000000000E1 -S315400435A000000000000000000000000000000000D1 -S315400435B000000000000000000000000000000000C1 -S315400435C000000000000000000000000000000000B1 -S315400435D000000000000000000000000000000000A1 -S315400435E00000000000000000000000000000000091 -S315400435F00000000000000000000000000000000081 -S315400436000000000000000000000000000000000070 -S315400436100000000000000000000000000000000060 -S315400436200000000000000000000000000000000050 -S315400436300000000000000000000000000000000040 -S315400436400000000000000000000000000000000030 -S315400436500000000000000000000000000000000020 -S315400436600000000000000000000000000000000010 -S315400436700000000000000000000000000000000000 -S3154004368000000000000000000000000000000000F0 -S3154004369000000000000000000000000000000000E0 -S315400436A000000000000000000000000000000000D0 -S315400436B000000000000000000000000000000000C0 -S315400436C000000000000000000000000000000000B0 -S315400436D000000000000000000000000000000000A0 -S315400436E00000000000000000000000000000000090 -S315400436F00000000000000000000000000000000080 -S31540043700000000000000000000000000000000006F -S31540043710000000000000000000000000000000005F -S31540043720000000000000000000000000000000004F -S31540043730000000000000000000000000000000003F -S31540043740000000000000000000000000000000002F -S31540043750000000000000000000000000000000001F -S31540043760000000000000000000000000000000000F -S3154004377000000000000000000000000000000000FF -S3154004378000000000000000000000000000000000EF -S3154004379000000000000000000000000000000000DF -S315400437A000000000000000000000000000000000CF -S315400437B000000000000000000000000000000000BF -S315400437C000000000000000000000000000000000AF -S315400437D0000000000000000000000000000000009F -S315400437E0000000000000000000000000000000008F -S315400437F0000000000000000000000000000000007F -S31540043800000000000000000000000000000000006E -S31540043810000000000000000000000000000000005E -S31540043820000000000000000000000000000000004E -S31540043830000000000000000000000000000000003E -S31540043840000000000000000000000000000000002E -S31540043850000000000000000000000000000000001E -S31540043860000000000000000000000000000000000E -S3154004387000000000000000000000000000000000FE -S3154004388000000000000000000000000000000000EE -S3154004389000000000000000000000000000000000DE -S315400438A000000000000000000000000000000000CE -S315400438B000000000000000000000000000000000BE -S315400438C000000000000000000000000000000000AE -S315400438D0000000000000000000000000000000009E -S315400438E0000000000000000000000000000000008E -S315400438F0000000000000000000000000000000007E -S31540043900000000000000000000000000000000006D -S31540043910000000000000000000000000000000005D -S31540043920000000000000000000000000000000004D -S31540043930000000000000000000000000000000003D -S31540043940000000000000000000000000000000002D -S31540043950000000000000000000000000000000001D -S31540043960000000000000000000000000000000000D -S3154004397000000000000000000000000000000000FD -S3154004398000000000000000000000000000000000ED -S3154004399000000000000000000000000000000000DD -S315400439A000000000000000000000000000000000CD -S315400439B000000000000000000000000000000000BD -S315400439C000000000000000000000000000000000AD -S315400439D0000000000000000000000000000000009D -S315400439E0000000000000000000000000000000008D -S315400439F0000000000000000000000000000000007D -S31540043A00000000000000000000000000000000006C -S31540043A10000000000000000000000000000000005C -S31540043A20000000000000000000000000000000004C -S31540043A30000000000000000000000000000000003C -S31540043A40000000000000000000000000000000002C -S31540043A50000000000000000000000000000000001C -S31540043A60000000000000000000000000000000000C -S31540043A7000000000000000000000000000000000FC -S31540043A8000000000000000000000000000000000EC -S31540043A9000000000000000000000000000000000DC -S31540043AA000000000000000000000000000000000CC -S31540043AB000000000000000000000000000000000BC -S31540043AC000000000000000000000000000000000AC -S31540043AD0000000000000000000000000000000009C -S31540043AE0000000000000000000000000000000008C -S31540043AF0000000000000000000000000000000007C -S31540043B00000000000000000000000000000000006B -S31540043B10000000000000000000000000000000005B -S31540043B20000000000000000000000000000000004B -S31540043B30000000000000000000000000000000003B -S31540043B40000000000000000000000000000000002B -S31540043B50000000000000000000000000000000001B -S31540043B60000000000000000000000000000000000B -S31540043B7000000000000000000000000000000000FB -S31540043B8000000000000000000000000000000000EB -S31540043B9000000000000000000000000000000000DB -S31540043BA000000000000000000000000000000000CB -S31540043BB000000000000000000000000000000000BB -S31540043BC000000000000000000000000000000000AB -S31540043BD0000000000000000000000000000000009B -S31540043BE0000000000000000000000000000000008B -S31540043BF0000000000000000000000000000000007B -S31540043C00000000000000000000000000000000006A -S31540043C10000000000000000000000000000000005A -S31540043C20000000000000000000000000000000004A -S31540043C30000000000000000000000000000000003A -S31540043C40000000000000000000000000000000002A -S31540043C50000000000000000000000000000000001A -S31540043C60000000000000000000000000000000000A -S31540043C7000000000000000000000000000000000FA -S31540043C8000000000000000000000000000000000EA -S31540043C9000000000000000000000000000000000DA -S31540043CA000000000000000000000000000000000CA -S31540043CB000000000000000000000000000000000BA -S31540043CC000000000000000000000000000000000AA -S31540043CD0000000000000000000000000000000009A -S31540043CE0000000000000000000000000000000008A -S31540043CF0000000000000000000000000000000007A -S31540043D000000000000000000000000000000000069 -S31540043D100000000000000000000000000000000059 -S31540043D200000000000000000000000000000000049 -S31540043D300000000000000000000000000000000039 -S31540043D400000000000000000000000000000000029 -S31540043D500000000000000000000000000000000019 -S31540043D600000000000000000000000000000000009 -S31540043D7000000000000000000000000000000000F9 -S31540043D8000000000000000000000000000000000E9 -S31540043D9000000000000000000000000000000000D9 -S31540043DA000000000000000000000000000000000C9 -S31540043DB000000000000000000000000000000000B9 -S31540043DC000000000000000000000000000000000A9 -S31540043DD00000000000000000000000000000000099 -S31540043DE00000000000000000000000000000000089 -S31540043DF00000000000000000000000000000000079 -S31540043E000000000000000000000000000000000068 -S31540043E100000000000000000000000000000000058 -S31540043E200000000000000000000000000000000048 -S31540043E300000000000000000000000000000000038 -S31540043E400000000000000000000000000000000028 -S31540043E500000000000000000000000000000000018 -S31540043E600000000000000000000000000000000008 -S31540043E7000000000000000000000000000000000F8 -S31540043E8000000000000000000000000000000000E8 -S31540043E9000000000000000000000000000000000D8 -S31540043EA000000000000000000000000000000000C8 -S31540043EB000000000000000000000000000000000B8 -S31540043EC000000000000000000000000000000000A8 -S31540043ED00000000000000000000000000000000098 -S31540043EE00000000000000000000000000000000088 -S31540043EF00000000000000000000000000000000078 -S31540043F000000000000000000000000000000000067 -S31540043F100000000000000000000000000000000057 -S31540043F200000000000000000000000000000000047 -S31540043F300000000000000000000000000000000037 -S31540043F400000000000000000000000000000000027 -S31540043F500000000000000000000000000000000017 -S31540043F600000000000000000000000000000000007 -S31540043F7000000000000000000000000000000000F7 -S31540043F8000000000000000000000000000000000E7 -S31540043F9000000000000000000000000000000000D7 -S31540043FA000000000000000000000000000000000C7 -S31540043FB000000000000000000000000000000000B7 -S31540043FC000000000000000000000000000000000A7 -S31540043FD00000000000000000000000000000000097 -S31540043FE00000000000000000000000000000000087 -S31540043FF00000000000000000000000000000000077 -S315400440000000000000000000000000000000000066 -S315400440100000000000000000000000000000000056 -S315400440200000000000000000000000000000000046 -S315400440300000000000000000000000000000000036 -S315400440400000000000000000000000000000000026 -S315400440500000000000000000000000000000000016 -S315400440600000000000000000000000000000000006 -S3154004407000000000000000000000000000000000F6 -S3154004408000000000000000000000000000000000E6 -S3154004409000000000000000000000000000000000D6 -S315400440A000000000000000000000000000000000C6 -S315400440B000000000000000000000000000000000B6 -S315400440C000000000000000000000000000000000A6 -S315400440D00000000000000000000000000000000096 -S315400440E00000000000000000000000000000000086 -S315400440F00000000000000000000000000000000076 -S315400441000000000000000000000000000000000065 -S315400441100000000000000000000000000000000055 -S315400441200000000000000000000000000000000045 -S315400441300000000000000000000000000000000035 -S315400441400000000000000000000000000000000025 -S315400441500000000000000000000000000000000015 -S315400441600000000000000000000000000000000005 -S3154004417000000000000000000000000000000000F5 -S3154004418000000000000000000000000000000000E5 -S3154004419000000000000000000000000000000000D5 -S315400441A000000000000000000000000000000000C5 -S315400441B000000000000000000000000000000000B5 -S315400441C000000000000000000000000000000000A5 -S315400441D00000000000000000000000000000000095 -S315400441E00000000000000000000000000000000085 -S315400441F00000000000000000000000000000000075 -S315400442000000000000000000000000000000000064 -S315400442100000000000000000000000000000000054 -S315400442200000000000000000000000000000000044 -S315400442300000000000000000000000000000000034 -S315400442400000000000000000000000000000000024 -S315400442500000000000000000000000000000000014 -S315400442600000000000000000000000000000000004 -S3154004427000000000000000000000000000000000F4 -S3154004428000000000000000000000000000000000E4 -S3154004429000000000000000000000000000000000D4 -S315400442A000000000000000000000000000000000C4 -S315400442B000000000000000000000000000000000B4 -S315400442C000000000000000000000000000000000A4 -S315400442D00000000000000000000000000000000094 -S315400442E00000000000000000000000000000000084 -S315400442F00000000000000000000000000000000074 -S315400443000000000000000000000000000000000063 -S315400443100000000000000000000000000000000053 -S315400443200000000000000000000000000000000043 -S315400443300000000000000000000000000000000033 -S315400443400000000000000000000000000000000023 -S315400443500000000000000000000000000000000013 -S315400443600000000000000000000000000000000003 -S3154004437000000000000000000000000000000000F3 -S3154004438000000000000000000000000000000000E3 -S3154004439000000000000000000000000000000000D3 -S315400443A000000000000000000000000000000000C3 -S315400443B000000000000000000000000000000000B3 -S315400443C000000000000000000000000000000000A3 -S315400443D00000000000000000000000000000000093 -S315400443E00000000000000000000000000000000083 -S315400443F00000000000000000000000000000000073 -S315400444000000000000000000000000000000000062 -S315400444100000000000000000000000000000000052 -S315400444200000000000000000000000000000000042 -S315400444300000000000000000000000000000000032 -S315400444400000000000000000000000000000000022 -S315400444500000000000000000000000000000000012 -S315400444600000000000000000000000000000000002 -S3154004447000000000000000000000000000000000F2 -S3154004448000000000000000000000000000000000E2 -S3154004449000000000000000000000000000000000D2 -S315400444A000000000000000000000000000000000C2 -S315400444B000000000000000000000000000000000B2 -S315400444C000000000000000000000000000000000A2 -S315400444D00000000000000000000000000000000092 -S315400444E00000000000000000000000000000000082 -S315400444F00000000000000000000000000000000072 -S315400445000000000000000000000000000000000061 -S315400445100000000000000000000000000000000051 -S315400445200000000000000000000000000000000041 -S315400445300000000000000000000000000000000031 -S315400445400000000000000000000000000000000021 -S315400445500000000000000000000000000000000011 -S315400445600000000000000000000000000000000001 -S3154004457000000000000000000000000000000000F1 -S3154004458000000000000000000000000000000000E1 -S3154004459000000000000000000000000000000000D1 -S315400445A000000000000000000000000000000000C1 -S315400445B000000000000000000000000000000000B1 -S315400445C000000000000000000000000000000000A1 -S315400445D00000000000000000000000000000000091 -S315400445E00000000000000000000000000000000081 -S315400445F00000000000000000000000000000000071 -S315400446000000000000000000000000000000000060 -S315400446100000000000000000000000000000000050 -S315400446200000000000000000000000000000000040 -S315400446300000000000000000000000000000000030 -S315400446400000000000000000000000000000000020 -S315400446500000000000000000000000000000000010 -S315400446600000000000000000000000000000000000 -S3154004467000000000000000000000000000000000F0 -S3154004468000000000000000000000000000000000E0 -S3154004469000000000000000000000000000000000D0 -S315400446A000000000000000000000000000000000C0 -S315400446B000000000000000000000000000000000B0 -S315400446C000000000000000000000000000000000A0 -S315400446D00000000000000000000000000000000090 -S315400446E00000000000000000000000000000000080 -S315400446F00000000000000000000000000000000070 -S31540044700000000000000000000000000000000005F -S31540044710000000000000000000000000000000004F -S31540044720000000000000000000000000000000003F -S31540044730000000000000000000000000000000002F -S31540044740000000000000000000000000000000001F -S31540044750000000000000000000000000000000000F -S3154004476000000000000000000000000000000000FF -S3154004477000000000000000000000000000000000EF -S3154004478000000000000000000000000000000000DF -S3154004479000000000000000000000000000000000CF -S315400447A000000000000000000000000000000000BF -S315400447B000000000000000000000000000000000AF -S315400447C0000000000000000000000000000000009F -S315400447D0000000000000000000000000000000008F -S315400447E0000000000000000000000000000000007F -S315400447F0000000000000000000000000000000006F -S31540044800000000000000000000000000000000005E -S31540044810000000000000000000000000000000004E -S31540044820000000000000000000000000000000003E -S31540044830000000000000000000000000000000002E -S31540044840000000000000000000000000000000001E -S31540044850000000000000000000000000000000000E -S3154004486000000000000000000000000000000000FE -S3154004487000000000000000000000000000000000EE -S3154004488000000000000000000000000000000000DE -S3154004489000000000000000000000000000000000CE -S315400448A000000000000000000000000000000000BE -S315400448B000000000000000000000000000000000AE -S315400448C0000000000000000000000000000000009E -S315400448D0000000000000000000000000000000008E -S315400448E0000000000000000000000000000000007E -S315400448F0000000000000000000000000000000006E -S31540044900000000000000000000000000000000005D -S31540044910000000000000000000000000000000004D -S31540044920000000000000000000000000000000003D -S31540044930000000000000000000000000000000002D -S31540044940000000000000000000000000000000001D -S31540044950000000000000000000000000000000000D -S3154004496000000000000000000000000000000000FD -S3154004497000000000000000000000000000000000ED -S3154004498000000000000000000000000000000000DD -S3154004499000000000000000000000000000000000CD -S315400449A000000000000000000000000000000000BD -S315400449B000000000000000000000000000000000AD -S315400449C0000000000000000000000000000000009D -S315400449D0000000000000000000000000000000008D -S315400449E0000000000000000000000000000000007D -S315400449F0000000000000000000000000000000006D -S31540044A00000000000000000000000000000000005C -S31540044A10000000000000000000000000000000004C -S31540044A20000000000000000000000000000000003C -S31540044A30000000000000000000000000000000002C -S31540044A40000000000000000000000000000000001C -S31540044A50000000000000000000000000000000000C -S31540044A6000000000000000000000000000000000FC -S31540044A7000000000000000000000000000000000EC -S31540044A8000000000000000000000000000000000DC -S31540044A9000000000000000000000000000000000CC -S31540044AA000000000000000000000000000000000BC -S31540044AB000000000000000000000000000000000AC -S31540044AC0000000000000000000000000000000009C -S31540044AD0000000000000000000000000000000008C -S31540044AE0000000000000000000000000000000007C -S31540044AF0000000000000000000000000000000006C -S31540044B00000000000000000000000000000000005B -S31540044B10000000000000000000000000000000004B -S31540044B20000000000000000000000000000000003B -S31540044B30000000000000000000000000000000002B -S31540044B40000000000000000000000000000000001B -S31540044B50000000000000000000000000000000000B -S31540044B6000000000000000000000000000000000FB -S31540044B7000000000000000000000000000000000EB -S31540044B8000000000000000000000000000000000DB -S31540044B9000000000000000000000000000000000CB -S31540044BA000000000000000000000000000000000BB -S31540044BB000000000000000000000000000000000AB -S31540044BC0000000000000000000000000000000009B -S31540044BD0000000000000000000000000000000008B -S31540044BE0000000000000000000000000000000007B -S31540044BF0000000000000000000000000000000006B -S31540044C00000000000000000000000000000000005A -S31540044C10000000000000000000000000000000004A -S31540044C20000000000000000000000000000000003A -S31540044C30000000000000000000000000000000002A -S31540044C40000000000000000000000000000000001A -S31540044C50000000000000000000000000000000000A -S31540044C6000000000000000000000000000000000FA -S31540044C7000000000000000000000000000000000EA -S31540044C8000000000000000000000000000000000DA -S31540044C9000000000000000000000000000000000CA -S31540044CA000000000000000000000000000000000BA -S31540044CB000000000000000000000000000000000AA -S31540044CC0000000000000000000000000000000009A -S31540044CD0000000000000000000000000000000008A -S31540044CE0000000000000000000000000000000007A -S31540044CF0000000000000000000000000000000006A -S31540044D000000000000000000000000000000000059 -S31540044D100000000000000000000000000000000049 -S31540044D200000000000000000000000000000000039 -S31540044D300000000000000000000000000000000029 -S31540044D400000000000000000000000000000000019 -S31540044D500000000000000000000000000000000009 -S31540044D6000000000000000000000000000000000F9 -S31540044D7000000000000000000000000000000000E9 -S31540044D8000000000000000000000000000000000D9 -S31540044D9000000000000000000000000000000000C9 -S31540044DA000000000000000000000000000000000B9 -S31540044DB000000000000000000000000000000000A9 -S31540044DC00000000000000000000000000000000099 -S31540044DD00000000000000000000000000000000089 -S31540044DE00000000000000000000000000000000079 -S31540044DF00000000000000000000000000000000069 -S31540044E000000000000000000000000000000000058 -S31540044E100000000000000000000000000000000048 -S31540044E200000000000000000000000000000000038 -S31540044E300000000000000000000000000000000028 -S31540044E400000000000000000000000000000000018 -S31540044E500000000000000000000000000000000008 -S31540044E6000000000000000000000000000000000F8 -S31540044E7000000000000000000000000000000000E8 -S31540044E8000000000000000000000000000000000D8 -S31540044E9000000000000000000000000000000000C8 -S31540044EA000000000000000000000000000000000B8 -S31540044EB000000000000000000000000000000000A8 -S31540044EC00000000000000000000000000000000098 -S31540044ED00000000000000000000000000000000088 -S31540044EE00000000000000000000000000000000078 -S31540044EF00000000000000000000000000000000068 -S31540044F000000000000000000000000000000000057 -S31540044F100000000000000000000000000000000047 -S31540044F200000000000000000000000000000000037 -S31540044F300000000000000000000000000000000027 -S31540044F400000000000000000000000000000000017 -S31540044F500000000000000000000000000000000007 -S31540044F6000000000000000000000000000000000F7 -S31540044F7000000000000000000000000000000000E7 -S31540044F8000000000000000000000000000000000D7 -S31540044F9000000000000000000000000000000000C7 -S31540044FA000000000000000000000000000000000B7 -S31540044FB000000000000000000000000000000000A7 -S31540044FC00000000000000000000000000000000097 -S31540044FD00000000000000000000000000000000087 -S31540044FE00000000000000000000000000000000077 -S31540044FF00000000000000000000000000000000067 -S315400450000000000000000000000000000000000056 -S315400450100000000000000000000000000000000046 -S315400450200000000000000000000000000000000036 -S315400450300000000000000000000000000000000026 -S315400450400000000000000000000000000000000016 -S315400450500000000000000000000000000000000006 -S3154004506000000000000000000000000000000000F6 -S3154004507000000000000000000000000000000000E6 -S3154004508000000000000000000000000000000000D6 -S3154004509000000000000000000000000000000000C6 -S315400450A000000000000000000000000000000000B6 -S315400450B000000000000000000000000000000000A6 -S315400450C00000000000000000000000000000000096 -S315400450D00000000000000000000000000000000086 -S315400450E00000000000000000000000000000000076 -S315400450F00000000000000000000000000000000066 -S315400451000000000000000000000000000000000055 -S315400451100000000000000000000000000000000045 -S315400451200000000000000000000000000000000035 -S315400451300000000000000000000000000000000025 -S315400451400000000000000000000000000000000015 -S315400451500000000000000000000000000000000005 -S3154004516000000000000000000000000000000000F5 -S3154004517000000000000000000000000000000000E5 -S3154004518000000000000000000000000000000000D5 -S3154004519000000000000000000000000000000000C5 -S315400451A000000000000000000000000000000000B5 -S315400451B000000000000000000000000000000000A5 -S315400451C00000000000000000000000000000000095 -S315400451D00000000000000000000000000000000085 -S315400451E00000000000000000000000000000000075 -S315400451F00000000000000000000000000000000065 -S315400452000000000000000000000000000000000054 -S315400452100000000000000000000000000000000044 -S315400452200000000000000000000000000000000034 -S315400452300000000000000000000000000000000024 -S315400452400000000000000000000000000000000014 -S315400452500000000000000000000000000000000004 -S3154004526000000000000000000000000000000000F4 -S3154004527000000000000000000000000000000000E4 -S3154004528000000000000000000000000000000000D4 -S3154004529000000000000000000000000000000000C4 -S315400452A000000000000000000000000000000000B4 -S315400452B000000000000000000000000000000000A4 -S315400452C00000000000000000000000000000000094 -S315400452D00000000000000000000000000000000084 -S315400452E00000000000000000000000000000000074 -S315400452F00000000000000000000000000000000064 -S315400453000000000000000000000000000000000053 -S315400453100000000000000000000000000000000043 -S315400453200000000000000000000000000000000033 -S315400453300000000000000000000000000000000023 -S315400453400000000000000000000000000000000013 -S315400453500000000000000000000000000000000003 -S3154004536000000000000000000000000000000000F3 -S3154004537000000000000000000000000000000000E3 -S3154004538000000000000000000000000000000000D3 -S3154004539000000000000000000000000000000000C3 -S315400453A000000000000000000000000000000000B3 -S315400453B000000000000000000000000000000000A3 -S315400453C00000000000000000000000000000000093 -S315400453D00000000000000000000000000000000083 -S315400453E00000000000000000000000000000000073 -S315400453F00000000000000000000000000000000063 -S315400454000000000000000000000000000000000052 -S315400454100000000000000000000000000000000042 -S315400454200000000000000000000000000000000032 -S315400454300000000000000000000000000000000022 -S315400454400000000000000000000000000000000012 -S315400454500000000000000000000000000000000002 -S3154004546000000000000000000000000000000000F2 -S3154004547000000000000000000000000000000000E2 -S3154004548000000000000000000000000000000000D2 -S3154004549000000000000000000000000000000000C2 -S315400454A000000000000000000000000000000000B2 -S315400454B000000000000000000000000000000000A2 -S315400454C00000000000000000000000000000000092 -S315400454D00000000000000000000000000000000082 -S315400454E00000000000000000000000000000000072 -S315400454F00000000000000000000000000000000062 -S315400455000000000000000000000000000000000051 -S315400455100000000000000000000000000000000041 -S315400455200000000000000000000000000000000031 -S315400455300000000000000000000000000000000021 -S315400455400000000000000000000000000000000011 -S315400455500000000000000000000000000000000001 -S3154004556000000000000000000000000000000000F1 -S3154004557000000000000000000000000000000000E1 -S3154004558000000000000000000000000000000000D1 -S3154004559000000000000000000000000000000000C1 -S315400455A000000000000000000000000000000000B1 -S315400455B000000000000000000000000000000000A1 -S315400455C00000000000000000000000000000000091 -S315400455D00000000000000000000000000000000081 -S315400455E00000000000000000000000000000000071 -S315400455F00000000000000000000000000000000061 -S315400456000000000000000000000000000000000050 -S315400456100000000000000000000000000000000040 -S315400456200000000000000000000000000000000030 -S315400456300000000000000000000000000000000020 -S315400456400000000000000000000000000000000010 -S315400456500000000000000000000000000000000000 -S3154004566000000000000000000000000000000000F0 -S3154004567000000000000000000000000000000000E0 -S3154004568000000000000000000000000000000000D0 -S3154004569000000000000000000000000000000000C0 -S315400456A000000000000000000000000000000000B0 -S315400456B000000000000000000000000000000000A0 -S315400456C00000000000000000000000000000000090 -S315400456D00000000000000000000000000000000080 -S315400456E00000000000000000000000000000000070 -S315400456F00000000000000000000000000000000060 -S31540045700000000000000000000000000000000004F -S31540045710000000000000000000000000000000003F -S31540045720000000000000000000000000000000002F -S31540045730000000000000000000000000000000001F -S31540045740000000000000000000000000000000000F -S3154004575000000000000000000000000000000000FF -S3154004576000000000000000000000000000000000EF -S3154004577000000000000000000000000000000000DF -S3154004578000000000000000000000000000000000CF -S3154004579000000000000000000000000000000000BF -S315400457A000000000000000000000000000000000AF -S315400457B0000000000000000000000000000000009F -S315400457C0000000000000000000000000000000008F -S315400457D0000000000000000000000000000000007F -S315400457E0000000000000000000000000000000006F -S315400457F0000000000000000000000000000000005F -S31540045800000000000000000000000000000000004E -S31540045810000000000000000000000000000000003E -S31540045820000000000000000000000000000000002E -S31540045830000000000000000000000000000000001E -S31540045840000000000000000000000000000000000E -S3154004585000000000000000000000000000000000FE -S3154004586000000000000000000000000000000000EE -S3154004587000000000000000000000000000000000DE -S3154004588000000000000000000000000000000000CE -S3154004589000000000000000000000000000000000BE -S315400458A000000000000000000000000000000000AE -S315400458B0000000000000000000000000000000009E -S315400458C0000000000000000000000000000000008E -S315400458D0000000000000000000000000000000007E -S315400458E0000000000000000000000000000000006E -S315400458F0000000000000000000000000000000005E -S31540045900000000000000000000000000000000004D -S31540045910000000000000000000000000000000003D -S31540045920000000000000000000000000000000002D -S31540045930000000000000000000000000000000001D -S31540045940000000000000000000000000000000000D -S3154004595000000000000000000000000000000000FD -S3154004596000000000000000000000000000000000ED -S3154004597000000000000000000000000000000000DD -S3154004598000000000000000000000000000000000CD -S3154004599000000000000000000000000000000000BD -S315400459A000000000000000000000000000000000AD -S315400459B0000000000000000000000000000000009D -S315400459C0000000000000000000000000000000008D -S315400459D0000000000000000000000000000000007D -S315400459E0000000000000000000000000000000006D -S315400459F0000000000000000000000000000000005D -S31540045A00000000000000000000000000000000004C -S31540045A10000000000000000000000000000000003C -S31540045A20000000000000000000000000000000002C -S31540045A30000000000000000000000000000000001C -S31540045A40000000000000000000000000000000000C -S31540045A5000000000000000000000000000000000FC -S31540045A6000000000000000000000000000000000EC -S31540045A7000000000000000000000000000000000DC -S31540045A8000000000000000000000000000000000CC -S31540045A9000000000000000000000000000000000BC -S31540045AA000000000000000000000000000000000AC -S31540045AB0000000000000000000000000000000009C -S31540045AC0000000000000000000000000000000008C -S31540045AD0000000000000000000000000000000007C -S31540045AE0000000000000000000000000000000006C -S31540045AF0000000000000000000000000000000005C -S31540045B00000000000000000000000000000000004B -S31540045B10000000000000000000000000000000003B -S31540045B20000000000000000000000000000000002B -S31540045B30000000000000000000000000000000001B -S31540045B40000000000000000000000000000000000B -S31540045B5000000000000000000000000000000000FB -S31540045B6000000000000000000000000000000000EB -S31540045B7000000000000000000000000000000000DB -S31540045B8000000000000000000000000000000000CB -S31540045B9000000000000000000000000000000000BB -S31540045BA000000000000000000000000000000000AB -S31540045BB0000000000000000000000000000000009B -S31540045BC0000000000000000000000000000000008B -S31540045BD0000000000000000000000000000000007B -S31540045BE0000000000000000000000000000000006B -S31540045BF0000000000000000000000000000000005B -S31540045C00000000000000000000000000000000004A -S31540045C10000000000000000000000000000000003A -S31540045C20000000000000000000000000000000002A -S31540045C30000000000000000000000000000000001A -S31540045C40000000000000000000000000000000000A -S31540045C5000000000000000000000000000000000FA -S31540045C6000000000000000000000000000000000EA -S31540045C7000000000000000000000000000000000DA -S31540045C8000000000000000000000000000000000CA -S31540045C9000000000000000000000000000000000BA -S31540045CA000000000000000000000000000000000AA -S31540045CB0000000000000000000000000000000009A -S31540045CC0000000000000000000000000000000008A -S31540045CD0000000000000000000000000000000007A -S31540045CE0000000000000000000000000000000006A -S31540045CF0000000000000000000000000000000005A -S31540045D000000000000000000000000000000000049 -S31540045D100000000000000000000000000000000039 -S31540045D200000000000000000000000000000000029 -S31540045D300000000000000000000000000000000019 -S31540045D400000000000000000000000000000000009 -S31540045D5000000000000000000000000000000000F9 -S31540045D6000000000000000000000000000000000E9 -S31540045D7000000000000000000000000000000000D9 -S31540045D8000000000000000000000000000000000C9 -S31540045D9000000000000000000000000000000000B9 -S31540045DA000000000000000000000000000000000A9 -S31540045DB00000000000000000000000000000000099 -S31540045DC00000000000000000000000000000000089 -S31540045DD00000000000000000000000000000000079 -S31540045DE00000000000000000000000000000000069 -S31540045DF00000000000000000000000000000000059 -S31540045E000000000000000000000000000000000048 -S31540045E100000000000000000000000000000000038 -S31540045E200000000000000000000000000000000028 -S31540045E300000000000000000000000000000000018 -S31540045E400000000000000000000000000000000008 -S31540045E5000000000000000000000000000000000F8 -S31540045E6000000000000000000000000000000000E8 -S31540045E7000000000000000000000000000000000D8 -S31540045E8000000000000000000000000000000000C8 -S31540045E9000000000000000000000000000000000B8 -S31540045EA000000000000000000000000000000000A8 -S31540045EB00000000000000000000000000000000098 -S31540045EC00000000000000000000000000000000088 -S31540045ED00000000000000000000000000000000078 -S31540045EE00000000000000000000000000000000068 -S31540045EF00000000000000000000000000000000058 -S31540045F000000000000000000000000000000000047 -S31540045F100000000000000000000000000000000037 -S31540045F200000000000000000000000000000000027 -S31540045F300000000000000000000000000000000017 -S31540045F400000000000000000000000000000000007 -S31540045F5000000000000000000000000000000000F7 -S31540045F6000000000000000000000000000000000E7 -S31540045F7000000000000000000000000000000000D7 -S31540045F8000000000000000000000000000000000C7 -S31540045F9000000000000000000000000000000000B7 -S31540045FA000000000000000000000000000000000A7 -S31540045FB00000000000000000000000000000000097 -S31540045FC00000000000000000000000000000000087 -S31540045FD00000000000000000000000000000000077 -S31540045FE00000000000000000000000000000000067 -S31540045FF00000000000000000000000000000000057 -S315400460000000000000000000000000000000000046 -S315400460100000000000000000000000000000000036 -S315400460200000000000000000000000000000000026 -S315400460300000000000000000000000000000000016 -S315400460400000000000000000000000000000000006 -S3154004605000000000000000000000000000000000F6 -S3154004606000000000000000000000000000000000E6 -S3154004607000000000000000000000000000000000D6 -S3154004608000000000000000000000000000000000C6 -S3154004609000000000000000000000000000000000B6 -S315400460A000000000000000000000000000000000A6 -S315400460B00000000000000000000000000000000096 -S315400460C00000000000000000000000000000000086 -S315400460D00000000000000000000000000000000076 -S315400460E00000000000000000000000000000000066 -S315400460F00000000000000000000000000000000056 -S315400461000000000000000000000000000000000045 -S315400461100000000000000000000000000000000035 -S315400461200000000000000000000000000000000025 -S315400461300000000000000000000000000000000015 -S315400461400000000000000000000000000000000005 -S3154004615000000000000000000000000000000000F5 -S3154004616000000000000000000000000000000000E5 -S3154004617000000000000000000000000000000000D5 -S3154004618000000000000000000000000000000000C5 -S3154004619000000000000000000000000000000000B5 -S315400461A000000000000000000000000000000000A5 -S315400461B00000000000000000000000000000000095 -S315400461C00000000000000000000000000000000085 -S315400461D00000000000000000000000000000000075 -S315400461E00000000000000000000000000000000065 -S315400461F00000000000000000000000000000000055 -S315400462000000000000000000000000000000000044 -S315400462100000000000000000000000000000000034 -S315400462200000000000000000000000000000000024 -S315400462300000000000000000000000000000000014 -S315400462400000000000000000000000000000000004 -S3154004625000000000000000000000000000000000F4 -S3154004626000000000000000000000000000000000E4 -S3154004627000000000000000000000000000000000D4 -S3154004628000000000000000000000000000000000C4 -S3154004629000000000000000000000000000000000B4 -S315400462A000000000000000000000000000000000A4 -S315400462B00000000000000000000000000000000094 -S315400462C00000000000000000000000000000000084 -S315400462D00000000000000000000000000000000074 -S315400462E00000000000000000000000000000000064 -S315400462F00000000000000000000000000000000054 -S315400463000000000000000000000000000000000043 -S315400463100000000000000000000000000000000033 -S315400463200000000000000000000000000000000023 -S315400463300000000000000000000000000000000013 -S315400463400000000000000000000000000000000003 -S3154004635000000000000000000000000000000000F3 -S3154004636000000000000000000000000000000000E3 -S3154004637000000000000000000000000000000000D3 -S3154004638000000000000000000000000000000000C3 -S3154004639000000000000000000000000000000000B3 -S315400463A000000000000000000000000000000000A3 -S315400463B00000000000000000000000000000000093 -S315400463C00000000000000000000000000000000083 -S315400463D00000000000000000000000000000000073 -S315400463E00000000000000000000000000000000063 -S315400463F00000000000000000000000000000000053 -S315400464000000000000000000000000000000000042 -S315400464100000000000000000000000000000000032 -S315400464200000000000000000000000000000000022 -S315400464300000000000000000000000000000000012 -S315400464400000000000000000000000000000000002 -S3154004645000000000000000000000000000000000F2 -S3154004646000000000000000000000000000000000E2 -S3154004647000000000000000000000000000000000D2 -S3154004648000000000000000000000000000000000C2 -S3154004649000000000000000000000000000000000B2 -S315400464A000000000000000000000000000000000A2 -S315400464B00000000000000000000000000000000092 -S315400464C00000000000000000000000000000000082 -S315400464D00000000000000000000000000000000072 -S315400464E00000000000000000000000000000000062 -S315400464F00000000000000000000000000000000052 -S315400465000000000000000000000000000000000041 -S315400465100000000000000000000000000000000031 -S315400465200000000000000000000000000000000021 -S315400465300000000000000000000000000000000011 -S315400465400000000000000000000000000000000001 -S3154004655000000000000000000000000000000000F1 -S3154004656000000000000000000000000000000000E1 -S3154004657000000000000000000000000000000000D1 -S3154004658000000000000000000000000000000000C1 -S3154004659000000000000000000000000000000000B1 -S315400465A000000000000000000000000000000000A1 -S315400465B00000000000000000000000000000000091 -S315400465C00000000000000000000000000000000081 -S315400465D00000000000000000000000000000000071 -S315400465E00000000000000000000000000000000061 -S315400465F00000000000000000000000000000000051 -S315400466000000000000000000000000000000000040 -S315400466100000000000000000000000000000000030 -S315400466200000000000000000000000000000000020 -S315400466300000000000000000000000000000000010 -S315400466400000000000000000000000000000000000 -S3154004665000000000000000000000000000000000F0 -S3154004666000000000000000000000000000000000E0 -S3154004667000000000000000000000000000000000D0 -S3154004668000000000000000000000000000000000C0 -S3154004669000000000000000000000000000000000B0 -S315400466A000000000000000000000000000000000A0 -S315400466B00000000000000000000000000000000090 -S315400466C00000000000000000000000000000000080 -S315400466D00000000000000000000000000000000070 -S315400466E00000000000000000000000000000000060 -S315400466F00000000000000000000000000000000050 -S31540046700000000000000000000000000000000003F -S31540046710000000000000000000000000000000002F -S31540046720000000000000000000000000000000001F -S31540046730000000000000000000000000000000000F -S3154004674000000000000000000000000000000000FF -S3154004675000000000000000000000000000000000EF -S3154004676000000000000000000000000000000000DF -S3154004677000000000000000000000000000000000CF -S3154004678000000000000000000000000000000000BF -S3154004679000000000000000000000000000000000AF -S315400467A0000000000000000000000000000000009F -S315400467B0000000000000000000000000000000008F -S315400467C0000000000000000000000000000000007F -S315400467D0000000000000000000000000000000006F -S315400467E0000000000000000000000000000000005F -S315400467F0000000000000000000000000000000004F -S31540046800000000000000000000000000000000003E -S31540046810000000000000000000000000000000002E -S31540046820000000000000000000000000000000001E -S31540046830000000000000000000000000000000000E -S3154004684000000000000000000000000000000000FE -S3154004685000000000000000000000000000000000EE -S3154004686000000000000000000000000000000000DE -S3154004687000000000000000000000000000000000CE -S3154004688000000000000000000000000000000000BE -S3154004689000000000000000000000000000000000AE -S315400468A0000000000000000000000000000000009E -S315400468B0000000000000000000000000000000008E -S315400468C0000000000000000000000000000000007E -S315400468D0000000000000000000000000000000006E -S315400468E0000000000000000000000000000000005E -S315400468F0000000000000000000000000000000004E -S31540046900000000000000000000000000000000003D -S31540046910000000000000000000000000000000002D -S31540046920000000000000000000000000000000001D -S31540046930000000000000000000000000000000000D -S3154004694000000000000000000000000000000000FD -S3154004695000000000000000000000000000000000ED -S3154004696000000000000000000000000000000000DD -S3154004697000000000000000000000000000000000CD -S3154004698000000000000000000000000000000000BD -S3154004699000000000000000000000000000000000AD -S315400469A0000000000000000000000000000000009D -S315400469B0000000000000000000000000000000008D -S315400469C0000000000000000000000000000000007D -S315400469D0000000000000000000000000000000006D -S315400469E0000000000000000000000000000000005D -S315400469F0000000000000000000000000000000004D -S31540046A00000000000000000000000000000000003C -S31540046A10000000000000000000000000000000002C -S31540046A20000000000000000000000000000000001C -S31540046A30000000000000000000000000000000000C -S31540046A4000000000000000000000000000000000FC -S31540046A5000000000000000000000000000000000EC -S31540046A6000000000000000000000000000000000DC -S31540046A7000000000000000000000000000000000CC -S31540046A8000000000000000000000000000000000BC -S31540046A9000000000000000000000000000000000AC -S31540046AA0000000000000000000000000000000009C -S31540046AB0000000000000000000000000000000008C -S31540046AC0000000000000000000000000000000007C -S31540046AD0000000000000000000000000000000006C -S31540046AE0000000000000000000000000000000005C -S31540046AF0000000000000000000000000000000004C -S31540046B00000000000000000000000000000000003B -S31540046B10000000000000000000000000000000002B -S31540046B20000000000000000000000000000000001B -S31540046B30000000000000000000000000000000000B -S31540046B4000000000000000000000000000000000FB -S31540046B5000000000000000000000000000000000EB -S31540046B6000000000000000000000000000000000DB -S31540046B7000000000000000000000000000000000CB -S31540046B8000000000000000000000000000000000BB -S31540046B9000000000000000000000000000000000AB -S31540046BA0000000000000000000000000000000009B -S31540046BB0000000000000000000000000000000008B -S31540046BC0000000000000000000000000000000007B -S31540046BD0000000000000000000000000000000006B -S31540046BE0000000000000000000000000000000005B -S31540046BF0000000000000000000000000000000004B -S31540046C00000000000000000000000000000000003A -S31540046C10000000000000000000000000000000002A -S31540046C20000000000000000000000000000000001A -S31540046C30000000000000000000000000000000000A -S31540046C4000000000000000000000000000000000FA -S31540046C5000000000000000000000000000000000EA -S31540046C6000000000000000000000000000000000DA -S31540046C7000000000000000000000000000000000CA -S31540046C8000000000000000000000000000000000BA -S31540046C9000000000000000000000000000000000AA -S31540046CA0000000000000000000000000000000009A -S31540046CB0000000000000000000000000000000008A -S31540046CC0000000000000000000000000000000007A -S31540046CD0000000000000000000000000000000006A -S31540046CE0000000000000000000000000000000005A -S31540046CF0000000000000000000000000000000004A -S31540046D000000000000000000000000000000000039 -S31540046D100000000000000000000000000000000029 -S31540046D200000000000000000000000000000000019 -S31540046D300000000000000000000000000000000009 -S31540046D4000000000000000000000000000000000F9 -S31540046D5000000000000000000000000000000000E9 -S31540046D6000000000000000000000000000000000D9 -S31540046D7000000000000000000000000000000000C9 -S31540046D8000000000000000000000000000000000B9 -S31540046D9000000000000000000000000000000000A9 -S31540046DA00000000000000000000000000000000099 -S31540046DB00000000000000000000000000000000089 -S31540046DC00000000000000000000000000000000079 -S31540046DD00000000000000000000000000000000069 -S31540046DE00000000000000000000000000000000059 -S31540046DF00000000000000000000000000000000049 -S31540046E000000000000000000000000000000000038 -S31540046E100000000000000000000000000000000028 -S31540046E200000000000000000000000000000000018 -S31540046E300000000000000000000000000000000008 -S31540046E4000000000000000000000000000000000F8 -S31540046E5000000000000000000000000000000000E8 -S31540046E6000000000000000000000000000000000D8 -S31540046E7000000000000000000000000000000000C8 -S31540046E8000000000000000000000000000000000B8 -S31540046E9000000000000000000000000000000000A8 -S31540046EA00000000000000000000000000000000098 -S31540046EB00000000000000000000000000000000088 -S31540046EC00000000000000000000000000000000078 -S31540046ED00000000000000000000000000000000068 -S31540046EE00000000000000000000000000000000058 -S31540046EF00000000000000000000000000000000048 -S31540046F000000000000000000000000000000000037 -S31540046F100000000000000000000000000000000027 -S31540046F200000000000000000000000000000000017 -S31540046F300000000000000000000000000000000007 -S31540046F4000000000000000000000000000000000F7 -S31540046F5000000000000000000000000000000000E7 -S31540046F6000000000000000000000000000000000D7 -S31540046F7000000000000000000000000000000000C7 -S31540046F8000000000000000000000000000000000B7 -S31540046F9000000000000000000000000000000000A7 -S31540046FA00000000000000000000000000000000097 -S31540046FB00000000000000000000000000000000087 -S31540046FC00000000000000000000000000000000077 -S31540046FD00000000000000000000000000000000067 -S31540046FE00000000000000000000000000000000057 -S31540046FF00000000000000000000000000000000047 -S315400470000000000000000000000000000000000036 -S315400470100000000000000000000000000000000026 -S315400470200000000000000000000000000000000016 -S315400470300000000000000000000000000000000006 -S3154004704000000000000000000000000000000000F6 -S3154004705000000000000000000000000000000000E6 -S3154004706000000000000000000000000000000000D6 -S3154004707000000000000000000000000000000000C6 -S3154004708000000000000000000000000000000000B6 -S3154004709000000000000000000000000000000000A6 -S315400470A00000000000000000000000000000000096 -S315400470B00000000000000000000000000000000086 -S315400470C00000000000000000000000000000000076 -S315400470D00000000000000000000000000000000066 -S315400470E00000000000000000000000000000000056 -S315400470F00000000000000000000000000000000046 -S315400471000000000000000000000000000000000035 -S315400471100000000000000000000000000000000025 -S315400471200000000000000000000000000000000015 -S315400471300000000000000000000000000000000005 -S3154004714000000000000000000000000000000000F5 -S3154004715000000000000000000000000000000000E5 -S3154004716000000000000000000000000000000000D5 -S3154004717000000000000000000000000000000000C5 -S3154004718000000000000000000000000000000000B5 -S3154004719000000000000000000000000000000000A5 -S315400471A00000000000000000000000000000000095 -S315400471B00000000000000000000000000000000085 -S315400471C00000000000000000000000000000000075 -S315400471D00000000000000000000000000000000065 -S315400471E00000000000000000000000000000000055 -S315400471F00000000000000000000000000000000045 -S315400472000000000000000000000000000000000034 -S315400472100000000000000000000000000000000024 -S315400472200000000000000000000000000000000014 -S315400472300000000000000000000000000000000004 -S3154004724000000000000000000000000000000000F4 -S3154004725000000000000000000000000000000000E4 -S3154004726000000000000000000000000000000000D4 -S3154004727000000000000000000000000000000000C4 -S3154004728000000000000000000000000000000000B4 -S3154004729000000000000000000000000000000000A4 -S315400472A00000000000000000000000000000000094 -S315400472B00000000000000000000000000000000084 -S315400472C00000000000000000000000000000000074 -S315400472D00000000000000000000000000000000064 -S315400472E00000000000000000000000000000000054 -S315400472F00000000000000000000000000000000044 -S315400473000000000000000000000000000000000033 -S315400473100000000000000000000000000000000023 -S315400473200000000000000000000000000000000013 -S315400473300000000000000000000000000000000003 -S3154004734000000000000000000000000000000000F3 -S3154004735000000000000000000000000000000000E3 -S3154004736000000000000000000000000000000000D3 -S3154004737000000000000000000000000000000000C3 -S3154004738000000000000000000000000000000000B3 -S3154004739000000000000000000000000000000000A3 -S315400473A00000000000000000000000000000000093 -S315400473B00000000000000000000000000000000083 -S315400473C00000000000000000000000000000000073 -S315400473D00000000000000000000000000000000063 -S315400473E00000000000000000000000000000000053 -S315400473F00000000000000000000000000000000043 -S315400474000000000000000000000000000000000032 -S315400474100000000000000000000000000000000022 -S315400474200000000000000000000000000000000012 -S315400474300000000000000000000000000000000002 -S3154004744000000000000000000000000000000000F2 -S3154004745000000000000000000000000000000000E2 -S3154004746000000000000000000000000000000000D2 -S3154004747000000000000000000000000000000000C2 -S3154004748000000000000000000000000000000000B2 -S3154004749000000000000000000000000000000000A2 -S315400474A00000000000000000000000000000000092 -S315400474B00000000000000000000000000000000082 -S315400474C00000000000000000000000000000000072 -S315400474D00000000000000000000000000000000062 -S315400474E00000000000000000000000000000000052 -S315400474F00000000000000000000000000000000042 -S315400475000000000000000000000000000000000031 -S315400475100000000000000000000000000000000021 -S315400475200000000000000000000000000000000011 -S315400475300000000000000000000000000000000001 -S3154004754000000000000000000000000000000000F1 -S3154004755000000000000000000000000000000000E1 -S3154004756000000000000000000000000000000000D1 -S3154004757000000000000000000000000000000000C1 -S3154004758000000000000000000000000000000000B1 -S3154004759000000000000000000000000000000000A1 -S315400475A00000000000000000000000000000000091 -S315400475B00000000000000000000000000000000081 -S315400475C00000000000000000000000000000000071 -S315400475D00000000000000000000000000000000061 -S315400475E00000000000000000000000000000000051 -S315400475F00000000000000000000000000000000041 -S315400476000000000000000000000000000000000030 -S315400476100000000000000000000000000000000020 -S315400476200000000000000000000000000000000010 -S315400476300000000000000000000000000000000000 -S3154004764000000000000000000000000000000000F0 -S3154004765000000000000000000000000000000000E0 -S3154004766000000000000000000000000000000000D0 -S3154004767000000000000000000000000000000000C0 -S3154004768000000000000000000000000000000000B0 -S3154004769000000000000000000000000000000000A0 -S315400476A00000000000000000000000000000000090 -S315400476B00000000000000000000000000000000080 -S315400476C00000000000000000000000000000000070 -S315400476D00000000000000000000000000000000060 -S315400476E00000000000000000000000000000000050 -S315400476F00000000000000000000000000000000040 -S31540047700000000000000000000000000000000002F -S31540047710000000000000000000000000000000001F -S31540047720000000000000000000000000000000000F -S3154004773000000000000000000000000000000000FF -S3154004774000000000000000000000000000000000EF -S3154004775000000000000000000000000000000000DF -S3154004776000000000000000000000000000000000CF -S3154004777000000000000000000000000000000000BF -S3154004778000000000000000000000000000000000AF -S31540047790000000000000000000000000000000009F -S315400477A0000000000000000000000000000000008F -S315400477B0000000000000000000000000000000007F -S315400477C0000000000000000000000000000000006F -S315400477D0000000000000000000000000000000005F -S315400477E0000000000000000000000000000000004F -S315400477F0000000000000000000000000000000003F -S31540047800000000000000000000000000000000002E -S31540047810000000000000000000000000000000001E -S31540047820000000000000000000000000000000000E -S3154004783000000000000000000000000000000000FE -S3154004784000000000000000000000000000000000EE -S3154004785000000000000000000000000000000000DE -S3154004786000000000000000000000000000000000CE -S3154004787000000000000000000000000000000000BE -S3154004788000000000000000000000000000000000AE -S31540047890000000000000000000000000000000009E -S315400478A0000000000000000000000000000000008E -S315400478B0000000000000000000000000000000007E -S315400478C0000000000000000000000000000000006E -S315400478D0000000000000000000000000000000005E -S315400478E0000000000000000000000000000000004E -S315400478F0000000000000000000000000000000003E -S31540047900000000000000000000000000000000002D -S31540047910000000000000000000000000000000001D -S31540047920000000000000000000000000000000000D -S3154004793000000000000000000000000000000000FD -S3154004794000000000000000000000000000000000ED -S3154004795000000000000000000000000000000000DD -S3154004796000000000000000000000000000000000CD -S3154004797000000000000000000000000000000000BD -S3154004798000000000000000000000000000000000AD -S31540047990000000000000000000000000000000009D -S315400479A0000000000000000000000000000000008D -S315400479B0000000000000000000000000000000007D -S315400479C0000000000000000000000000000000006D -S315400479D0000000000000000000000000000000005D -S315400479E0000000000000000000000000000000004D -S315400479F0000000000000000000000000000000003D -S31540047A00000000000000000000000000000000002C -S31540047A10000000000000000000000000000000001C -S31540047A20000000000000000000000000000000000C -S31540047A3000000000000000000000000000000000FC -S31540047A4000000000000000000000000000000000EC -S31540047A5000000000000000000000000000000000DC -S31540047A6000000000000000000000000000000000CC -S31540047A7000000000000000000000000000000000BC -S31540047A8000000000000000000000000000000000AC -S31540047A90000000000000000000000000000000009C -S31540047AA0000000000000000000000000000000008C -S31540047AB0000000000000000000000000000000007C -S31540047AC0000000000000000000000000000000006C -S31540047AD0000000000000000000000000000000005C -S31540047AE0000000000000000000000000000000004C -S31540047AF0000000000000000000000000000000003C -S31540047B00000000000000000000000000000000002B -S31540047B10000000000000000000000000000000001B -S31540047B20000000000000000000000000000000000B -S31540047B3000000000000000000000000000000000FB -S31540047B4000000000000000000000000000000000EB -S31540047B5000000000000000000000000000000000DB -S31540047B6000000000000000000000000000000000CB -S31540047B7000000000000000000000000000000000BB -S31540047B8000000000000000000000000000000000AB -S31540047B90000000000000000000000000000000009B -S31540047BA0000000000000000000000000000000008B -S31540047BB0000000000000000000000000000000007B -S31540047BC0000000000000000000000000000000006B -S31540047BD0000000000000000000000000000000005B -S31540047BE0000000000000000000000000000000004B -S31540047BF0000000000000000000000000000000003B -S31540047C00000000000000000000000000000000002A -S31540047C10000000000000000000000000000000001A -S31540047C20000000000000000000000000000000000A -S31540047C3000000000000000000000000000000000FA -S31540047C4000000000000000000000000000000000EA -S31540047C5000000000000000000000000000000000DA -S31540047C6000000000000000000000000000000000CA -S31540047C7000000000000000000000000000000000BA -S31540047C8000000000000000000000000000000000AA -S31540047C90000000000000000000000000000000009A -S31540047CA0000000000000000000000000000000008A -S31540047CB0000000000000000000000000000000007A -S31540047CC0000000000000000000000000000000006A -S31540047CD0000000000000000000000000000000005A -S31540047CE0000000000000000000000000000000004A -S31540047CF0000000000000000000000000000000003A -S31540047D000000000000000000000000000000000029 -S31540047D100000000000000000000000000000000019 -S31540047D200000000000000000000000000000000009 -S31540047D3000000000000000000000000000000000F9 -S31540047D4000000000000000000000000000000000E9 -S31540047D5000000000000000000000000000000000D9 -S31540047D6000000000000000000000000000000000C9 -S31540047D7000000000000000000000000000000000B9 -S31540047D8000000000000000000000000000000000A9 -S31540047D900000000000000000000000000000000099 -S31540047DA00000000000000000000000000000000089 -S31540047DB00000000000000000000000000000000079 -S31540047DC00000000000000000000000000000000069 -S31540047DD00000000000000000000000000000000059 -S31540047DE00000000000000000000000000000000049 -S31540047DF00000000000000000000000000000000039 -S31540047E000000000000000000000000000000000028 -S31540047E100000000000000000000000000000000018 -S31540047E200000000000000000000000000000000008 -S31540047E3000000000000000000000000000000000F8 -S31540047E4000000000000000000000000000000000E8 -S31540047E5000000000000000000000000000000000D8 -S31540047E6000000000000000000000000000000000C8 -S31540047E7000000000000000000000000000000000B8 -S31540047E8000000000000000000000000000000000A8 -S31540047E900000000000000000000000000000000098 -S31540047EA00000000000000000000000000000000088 -S31540047EB00000000000000000000000000000000078 -S31540047EC00000000000000000000000000000000068 -S31540047ED00000000000000000000000000000000058 -S31540047EE00000000000000000000000000000000048 -S31540047EF00000000000000000000000000000000038 -S31540047F000000000000000000000000000000000027 -S31540047F100000000000000000000000000000000017 -S31540047F200000000000000000000000000000000007 -S31540047F3000000000000000000000000000000000F7 -S31540047F4000000000000000000000000000000000E7 -S31540047F5000000000000000000000000000000000D7 -S31540047F6000000000000000000000000000000000C7 -S31540047F7000000000000000000000000000000000B7 -S31540047F8000000000000000000000000000000000A7 -S31540047F900000000000000000000000000000000097 -S31540047FA00000000000000000000000000000000087 -S31540047FB00000000000000000000000000000000077 -S31540047FC00000000000000000000000000000000067 -S31540047FD00000000000000000000000000000000057 -S31540047FE00000000000000000000000000000000047 -S31540047FF00000000000000000000000000000000037 -S315400480000000000000000000000000000000000026 -S315400480100000000000000000000000000000000016 -S315400480200000000000000000000000000000000006 -S3154004803000000000000000000000000000000000F6 -S3154004804000000000000000000000000000000000E6 -S3154004805000000000000000000000000000000000D6 -S3154004806000000000000000000000000000000000C6 -S3154004807000000000000000000000000000000000B6 -S3154004808000000000000000000000000000000000A6 -S315400480900000000000000000000000000000000096 -S315400480A00000000000000000000000000000000086 -S315400480B00000000000000000000000000000000076 -S315400480C00000000000000000000000000000000066 -S315400480D00000000000000000000000000000000056 -S315400480E00000000000000000000000000000000046 -S315400480F00000000000000000000000000000000036 -S315400481000000000000000000000000000000000025 -S315400481100000000000000000000000000000000015 -S315400481200000000000000000000000000000000005 -S3154004813000000000000000000000000000000000F5 -S3154004814000000000000000000000000000000000E5 -S3154004815000000000000000000000000000000000D5 -S3154004816000000000000000000000000000000000C5 -S3154004817000000000000000000000000000000000B5 -S3154004818000000000000000000000000000000000A5 -S315400481900000000000000000000000000000000095 -S315400481A00000000000000000000000000000000085 -S315400481B00000000000000000000000000000000075 -S315400481C00000000000000000000000000000000065 -S315400481D00000000000000000000000000000000055 -S315400481E00000000000000000000000000000000045 -S315400481F00000000000000000000000000000000035 -S315400482000000000000000000000000000000000024 -S315400482100000000000000000000000000000000014 -S315400482200000000000000000000000000000000004 -S3154004823000000000000000000000000000000000F4 -S3154004824000000000000000000000000000000000E4 -S3154004825000000000000000000000000000000000D4 -S3154004826000000000000000000000000000000000C4 -S3154004827000000000000000000000000000000000B4 -S3154004828000000000000000000000000000000000A4 -S315400482900000000000000000000000000000000094 -S315400482A00000000000000000000000000000000084 -S315400482B00000000000000000000000000000000074 -S315400482C00000000000000000000000000000000064 -S315400482D00000000000000000000000000000000054 -S315400482E00000000000000000000000000000000044 -S315400482F00000000000000000000000000000000034 -S315400483000000000000000000000000000000000023 -S315400483100000000000000000000000000000000013 -S315400483200000000000000000000000000000000003 -S3154004833000000000000000000000000000000000F3 -S3154004834000000000000000000000000000000000E3 -S3154004835000000000000000000000000000000000D3 -S3154004836000000000000000000000000000000000C3 -S3154004837000000000000000000000000000000000B3 -S3154004838000000000000000000000000000000000A3 -S315400483900000000000000000000000000000000093 -S315400483A00000000000000000000000000000000083 -S315400483B00000000000000000000000000000000073 -S315400483C00000000000000000000000000000000063 -S315400483D00000000000000000000000000000000053 -S315400483E00000000000000000000000000000000043 -S315400483F00000000000000000000000000000000033 -S315400484000000000000000000000000000000000022 -S315400484100000000000000000000000000000000012 -S315400484200000000000000000000000000000000002 -S3154004843000000000000000000000000000000000F2 -S3154004844000000000000000000000000000000000E2 -S3154004845000000000000000000000000000000000D2 -S3154004846000000000000000000000000000000000C2 -S3154004847000000000000000000000000000000000B2 -S3154004848000000000000000000000000000000000A2 -S315400484900000000000000000000000000000000092 -S315400484A00000000000000000000000000000000082 -S315400484B00000000000000000000000000000000072 -S315400484C00000000000000000000000000000000062 -S315400484D00000000000000000000000000000000052 -S315400484E00000000000000000000000000000000042 -S315400484F00000000000000000000000000000000032 -S315400485000000000000000000000000000000000021 -S315400485100000000000000000000000000000000011 -S315400485200000000000000000000000000000000001 -S3154004853000000000000000000000000000000000F1 -S3154004854000000000000000000000000000000000E1 -S3154004855000000000000000000000000000000000D1 -S3154004856000000000000000000000000000000000C1 -S3154004857000000000000000000000000000000000B1 -S3154004858000000000000000000000000000000000A1 -S315400485900000000000000000000000000000000091 -S315400485A00000000000000000000000000000000081 -S315400485B00000000000000000000000000000000071 -S315400485C00000000000000000000000000000000061 -S315400485D00000000000000000000000000000000051 -S315400485E00000000000000000000000000000000041 -S315400485F00000000000000000000000000000000031 -S315400486000000000000000000000000000000000020 -S315400486100000000000000000000000000000000010 -S315400486200000000000000000000000000000000000 -S3154004863000000000000000000000000000000000F0 -S3154004864000000000000000000000000000000000E0 -S3154004865000000000000000000000000000000000D0 -S3154004866000000000000000000000000000000000C0 -S3154004867000000000000000000000000000000000B0 -S3154004868000000000000000000000000000000000A0 -S315400486900000000000000000000000000000000090 -S315400486A00000000000000000000000000000000080 -S315400486B00000000000000000000000000000000070 -S315400486C00000000000000000000000000000000060 -S315400486D00000000000000000000000000000000050 -S315400486E00000000000000000000000000000000040 -S315400486F00000000000000000000000000000000030 -S31540048700000000000000000000000000000000001F -S31540048710000000000000000000000000000000000F -S3154004872000000000000000000000000000000000FF -S3154004873000000000000000000000000000000000EF -S3154004874000000000000000000000000000000000DF -S3154004875000000000000000000000000000000000CF -S3154004876000000000000000000000000000000000BF -S3154004877000000000000000000000000000000000AF -S31540048780000000000000000000000000000000009F -S31540048790000000000000000000000000000000008F -S315400487A0000000000000000000000000000000007F -S315400487B0000000000000000000000000000000006F -S315400487C0000000000000000000000000000000005F -S315400487D0000000000000000000000000000000004F -S315400487E0000000000000000000000000000000003F -S315400487F0000000000000000000000000000000002F -S31540048800000000000000000000000000000000001E -S31540048810000000000000000000000000000000000E -S3154004882000000000000000000000000000000000FE -S3154004883000000000000000000000000000000000EE -S3154004884000000000000000000000000000000000DE -S3154004885000000000000000000000000000000000CE -S3154004886000000000000000000000000000000000BE -S3154004887000000000000000000000000000000000AE -S31540048880000000000000000000000000000000009E -S31540048890000000000000000000000000000000008E -S315400488A0000000000000000000000000000000007E -S315400488B0000000000000000000000000000000006E -S315400488C0000000000000000000000000000000005E -S315400488D0000000000000000000000000000000004E -S315400488E0000000000000000000000000000000003E -S315400488F0000000000000000000000000000000002E -S31540048900000000000000000000000000000000001D -S31540048910000000000000000000000000000000000D -S3154004892000000000000000000000000000000000FD -S3154004893000000000000000000000000000000000ED -S3154004894000000000000000000000000000000000DD -S3154004895000000000000000000000000000000000CD -S3154004896000000000000000000000000000000000BD -S3154004897000000000000000000000000000000000AD -S31540048980000000000000000000000000000000009D -S31540048990000000000000000000000000000000008D -S315400489A0000000000000000000000000000000007D -S315400489B0000000000000000000000000000000006D -S315400489C0000000000000000000000000000000005D -S315400489D0000000000000000000000000000000004D -S315400489E0000000000000000000000000000000003D -S315400489F0000000000000000000000000000000002D -S31540048A00000000000000000000000000000000001C -S31540048A10000000000000000000000000000000000C -S31540048A2000000000000000000000000000000000FC -S31540048A3000000000000000000000000000000000EC -S31540048A4000000000000000000000000000000000DC -S31540048A5000000000000000000000000000000000CC -S31540048A6000000000000000000000000000000000BC -S31540048A7000000000000000000000000000000000AC -S31540048A80000000000000000000000000000000009C -S31540048A90000000000000000000000000000000008C -S31540048AA0000000000000000000000000000000007C -S31540048AB0000000000000000000000000000000006C -S31540048AC0000000000000000000000000000000005C -S31540048AD0000000000000000000000000000000004C -S31540048AE0000000000000000000000000000000003C -S31540048AF0000000000000000000000000000000002C -S31540048B00000000000000000000000000000000001B -S31540048B10000000000000000000000000000000000B -S31540048B2000000000000000000000000000000000FB -S31540048B3000000000000000000000000000000000EB -S31540048B4000000000000000000000000000000000DB -S31540048B5000000000000000000000000000000000CB -S31540048B6000000000000000000000000000000000BB -S31540048B7000000000000000000000000000000000AB -S31540048B80000000000000000000000000000000009B -S31540048B90000000000000000000000000000000008B -S31540048BA0000000000000000000000000000000007B -S31540048BB0000000000000000000000000000000006B -S31540048BC0000000000000000000000000000000005B -S31540048BD0000000000000000000000000000000004B -S31540048BE0000000000000000000000000000000003B -S31540048BF0000000000000000000000000000000002B -S31540048C00000000000000000000000000000000001A -S31540048C10000000000000000000000000000000000A -S31540048C2000000000000000000000000000000000FA -S31540048C3000000000000000000000000000000000EA -S31540048C4000000000000000000000000000000000DA -S31540048C5000000000000000000000000000000000CA -S31540048C6000000000000000000000000000000000BA -S31540048C7000000000000000000000000000000000AA -S31540048C80000000000000000000000000000000009A -S31540048C90000000000000000000000000000000008A -S31540048CA0000000000000000000000000000000007A -S31540048CB0000000000000000000000000000000006A -S31540048CC0000000000000000000000000000000005A -S31540048CD0000000000000000000000000000000004A -S31540048CE0000000000000000000000000000000003A -S31540048CF0000000000000000000000000000000002A -S31540048D000000000000000000000000000000000019 -S31540048D100000000000000000000000000000000009 -S31540048D2000000000000000000000000000000000F9 -S31540048D3000000000000000000000000000000000E9 -S31540048D4000000000000000000000000000000000D9 -S31540048D5000000000000000000000000000000000C9 -S31540048D6000000000000000000000000000000000B9 -S31540048D7000000000000000000000000000000000A9 -S31540048D800000000000000000000000000000000099 -S31540048D900000000000000000000000000000000089 -S31540048DA00000000000000000000000000000000079 -S31540048DB00000000000000000000000000000000069 -S31540048DC00000000000000000000000000000000059 -S31540048DD00000000000000000000000000000000049 -S31540048DE00000000000000000000000000000000039 -S31540048DF00000000000000000000000000000000029 -S31540048E000000000000000000000000000000000018 -S31540048E100000000000000000000000000000000008 -S31540048E2000000000000000000000000000000000F8 -S31540048E3000000000000000000000000000000000E8 -S31540048E4000000000000000000000000000000000D8 -S31540048E5000000000000000000000000000000000C8 -S31540048E6000000000000000000000000000000000B8 -S31540048E7000000000000000000000000000000000A8 -S31540048E800000000000000000000000000000000098 -S31540048E900000000000000000000000000000000088 -S31540048EA00000000000000000000000000000000078 -S31540048EB00000000000000000000000000000000068 -S31540048EC00000000000000000000000000000000058 -S31540048ED00000000000000000000000000000000048 -S31540048EE00000000000000000000000000000000038 -S31540048EF00000000000000000000000000000000028 -S31540048F000000000000000000000000000000000017 -S31540048F100000000000000000000000000000000007 -S31540048F2000000000000000000000000000000000F7 -S31540048F3000000000000000000000000000000000E7 -S31540048F4000000000000000000000000000000000D7 -S31540048F5000000000000000000000000000000000C7 -S31540048F6000000000000000000000000000000000B7 -S31540048F7000000000000000000000000000000000A7 -S31540048F800000000000000000000000000000000097 -S31540048F900000000000000000000000000000000087 -S31540048FA00000000000000000000000000000000077 -S31540048FB00000000000000000000000000000000067 -S31540048FC00000000000000000000000000000000057 -S31540048FD00000000000000000000000000000000047 -S31540048FE00000000000000000000000000000000037 -S31540048FF00000000000000000000000000000000027 -S315400490000000000000000000000000000000000016 -S315400490100000000000000000000000000000000006 -S3154004902000000000000000000000000000000000F6 -S3154004903000000000000000000000000000000000E6 -S3154004904000000000000000000000000000000000D6 -S3154004905000000000000000000000000000000000C6 -S3154004906000000000000000000000000000000000B6 -S3154004907000000000000000000000000000000000A6 -S315400490800000000000000000000000000000000096 -S315400490900000000000000000000000000000000086 -S315400490A00000000000000000000000000000000076 -S315400490B00000000000000000000000000000000066 -S315400490C00000000000000000000000000000000056 -S315400490D00000000000000000000000000000000046 -S315400490E00000000000000000000000000000000036 -S315400490F00000000000000000000000000000000026 -S315400491000000000000000000000000000000000015 -S315400491100000000000000000000000000000000005 -S3154004912000000000000000000000000000000000F5 -S3154004913000000000000000000000000000000000E5 -S3154004914000000000000000000000000000000000D5 -S3154004915000000000000000000000000000000000C5 -S3154004916000000000000000000000000000000000B5 -S3154004917000000000000000000000000000000000A5 -S315400491800000000000000000000000000000000095 -S315400491900000000000000000000000000000000085 -S315400491A00000000000000000000000000000000075 -S315400491B00000000000000000000000000000000065 -S315400491C00000000000000000000000000000000055 -S315400491D00000000000000000000000000000000045 -S315400491E00000000000000000000000000000000035 -S315400491F00000000000000000000000000000000025 -S315400492000000000000000000000000000000000014 -S315400492100000000000000000000000000000000004 -S3154004922000000000000000000000000000000000F4 -S3154004923000000000000000000000000000000000E4 -S3154004924000000000000000000000000000000000D4 -S3154004925000000000000000000000000000000000C4 -S3154004926000000000000000000000000000000000B4 -S3154004927000000000000000000000000000000000A4 -S315400492800000000000000000000000000000000094 -S315400492900000000000000000000000000000000084 -S315400492A00000000000000000000000000000000074 -S315400492B00000000000000000000000000000000064 -S315400492C00000000000000000000000000000000054 -S315400492D00000000000000000000000000000000044 -S315400492E00000000000000000000000000000000034 -S315400492F00000000000000000000000000000000024 -S315400493000000000000000000000000000000000013 -S315400493100000000000000000000000000000000003 -S3154004932000000000000000000000000000000000F3 -S3154004933000000000000000000000000000000000E3 -S3154004934000000000000000000000000000000000D3 -S3154004935000000000000000000000000000000000C3 -S3154004936000000000000000000000000000000000B3 -S3154004937000000000000000000000000000000000A3 -S315400493800000000000000000000000000000000093 -S315400493900000000000000000000000000000000083 -S315400493A00000000000000000000000000000000073 -S315400493B00000000000000000000000000000000063 -S315400493C00000000000000000000000000000000053 -S315400493D00000000000000000000000000000000043 -S315400493E00000000000000000000000000000000033 -S315400493F00000000000000000000000000000000023 -S315400494000000000000000000000000000000000012 -S315400494100000000000000000000000000000000002 -S3154004942000000000000000000000000000000000F2 -S3154004943000000000000000000000000000000000E2 -S3154004944000000000000000000000000000000000D2 -S3154004945000000000000000000000000000000000C2 -S3154004946000000000000000000000000000000000B2 -S3154004947000000000000000000000000000000000A2 -S315400494800000000000000000000000000000000092 -S315400494900000000000000000000000000000000082 -S315400494A00000000000000000000000000000000072 -S315400494B00000000000000000000000000000000062 -S315400494C00000000000000000000000000000000052 -S315400494D00000000000000000000000000000000042 -S315400494E00000000000000000000000000000000032 -S315400494F00000000000000000000000000000000022 -S315400495000000000000000000000000000000000011 -S315400495100000000000000000000000000000000001 -S3154004952000000000000000000000000000000000F1 -S3154004953000000000000000000000000000000000E1 -S3154004954000000000000000000000000000000000D1 -S3154004955000000000000000000000000000000000C1 -S3154004956000000000000000000000000000000000B1 -S3154004957000000000000000000000000000000000A1 -S315400495800000000000000000000000000000000091 -S315400495900000000000000000000000000000000081 -S315400495A00000000000000000000000000000000071 -S315400495B00000000000000000000000000000000061 -S315400495C00000000000000000000000000000000051 -S315400495D00000000000000000000000000000000041 -S315400495E00000000000000000000000000000000031 -S315400495F00000000000000000000000000000000021 -S315400496000000000000000000000000000000000010 -S315400496100000000000000000000000000000000000 -S3154004962000000000000000000000000000000000F0 -S3154004963000000000000000000000000000000000E0 -S3154004964000000000000000000000000000000000D0 -S3154004965000000000000000000000000000000000C0 -S3154004966000000000000000000000000000000000B0 -S3154004967000000000000000000000000000000000A0 -S315400496800000000000000000000000000000000090 -S315400496900000000000000000000000000000000080 -S315400496A00000000000000000000000000000000070 -S315400496B00000000000000000000000000000000060 -S315400496C00000000000000000000000000000000050 -S315400496D00000000000000000000000000000000040 -S315400496E00000000000000000000000000000000030 -S315400496F00000000000000000000000000000000020 -S31540049700000000000000000000000000000000000F -S3154004971000000000000000000000000000000000FF -S3154004972000000000000000000000000000000000EF -S3154004973000000000000000000000000000000000DF -S3154004974000000000000000000000000000000000CF -S3154004975000000000000000000000000000000000BF -S3154004976000000000000000000000000000000000AF -S31540049770000000000000000000000000000000009F -S31540049780000000000000000000000000000000008F -S31540049790000000000000000000000000000000007F -S315400497A0000000000000000000000000000000006F -S315400497B0000000000000000000000000000000005F -S315400497C0000000000000000000000000000000004F -S315400497D0000000000000000000000000000000003F -S315400497E0000000000000000000000000000000002F -S315400497F0000000000000000000000000000000001F -S31540049800000000000000000000000000000000000E -S3154004981000000000000000000000000000000000FE -S3154004982000000000000000000000000000000000EE -S3154004983000000000000000000000000000000000DE -S3154004984000000000000000000000000000000000CE -S3154004985000000000000000000000000000000000BE -S3154004986000000000000000000000000000000000AE -S31540049870000000000000000000000000000000009E -S31540049880000000000000000000000000000000008E -S31540049890000000000000000000000000000000007E -S315400498A0000000000000000000000000000000006E -S315400498B0000000000000000000000000000000005E -S315400498C0000000000000000000000000000000004E -S315400498D0000000000000000000000000000000003E -S315400498E0000000000000000000000000000000002E -S315400498F0000000000000000000000000000000001E -S31540049900000000000000000000000000000000000D -S3154004991000000000000000000000000000000000FD -S3154004992000000000000000000000000000000000ED -S3154004993000000000000000000000000000000000DD -S3154004994000000000000000000000000000000000CD -S3154004995000000000000000000000000000000000BD -S3154004996000000000000000000000000000000000AD -S31540049970000000000000000000000000000000009D -S31540049980000000000000000000000000000000008D -S31540049990000000000000000000000000000000007D -S315400499A0000000000000000000000000000000006D -S315400499B0000000000000000000000000000000005D -S315400499C0000000000000000000000000000000004D -S315400499D0000000000000000000000000000000003D -S315400499E0000000000000000000000000000000002D -S315400499F0000000000000000000000000000000001D -S31540049A00000000000000000000000000000000000C -S31540049A1000000000000000000000000000000000FC -S31540049A2000000000000000000000000000000000EC -S31540049A3000000000000000000000000000000000DC -S31540049A4000000000000000000000000000000000CC -S31540049A5000000000000000000000000000000000BC -S31540049A6000000000000000000000000000000000AC -S31540049A70000000000000000000000000000000009C -S31540049A80000000000000000000000000000000008C -S31540049A90000000000000000000000000000000007C -S31540049AA0000000000000000000000000000000006C -S31540049AB0000000000000000000000000000000005C -S31540049AC0000000000000000000000000000000004C -S31540049AD0000000000000000000000000000000003C -S31540049AE0000000000000000000000000000000002C -S31540049AF0000000000000000000000000000000001C -S31540049B00000000000000000000000000000000000B -S31540049B1000000000000000000000000000000000FB -S31540049B2000000000000000000000000000000000EB -S31540049B3000000000000000000000000000000000DB -S31540049B4000000000000000000000000000000000CB -S31540049B5000000000000000000000000000000000BB -S31540049B6000000000000000000000000000000000AB -S31540049B70000000000000000000000000000000009B -S31540049B80000000000000000000000000000000008B -S31540049B90000000000000000000000000000000007B -S31540049BA0000000000000000000000000000000006B -S31540049BB0000000000000000000000000000000005B -S31540049BC0000000000000000000000000000000004B -S31540049BD0000000000000000000000000000000003B -S31540049BE0000000000000000000000000000000002B -S31540049BF0000000000000000000000000000000001B -S31540049C00000000000000000000000000000000000A -S31540049C1000000000000000000000000000000000FA -S31540049C2000000000000000000000000000000000EA -S31540049C3000000000000000000000000000000000DA -S31540049C4000000000000000000000000000000000CA -S31540049C5000000000000000000000000000000000BA -S31540049C6000000000000000000000000000000000AA -S31540049C70000000000000000000000000000000009A -S31540049C80000000000000000000000000000000008A -S31540049C90000000000000000000000000000000007A -S31540049CA0000000000000000000000000000000006A -S31540049CB0000000000000000000000000000000005A -S31540049CC0000000000000000000000000000000004A -S31540049CD0000000000000000000000000000000003A -S31540049CE0000000000000000000000000000000002A -S31540049CF0000000000000000000000000000000001A -S31540049D000000000000000000000000000000000009 -S31540049D1000000000000000000000000000000000F9 -S31540049D2000000000000000000000000000000000E9 -S31540049D3000000000000000000000000000000000D9 -S31540049D4000000000000000000000000000000000C9 -S31540049D5000000000000000000000000000000000B9 -S31540049D6000000000000000000000000000000000A9 -S31540049D700000000000000000000000000000000099 -S31540049D800000000000000000000000000000000089 -S31540049D900000000000000000000000000000000079 -S31540049DA00000000000000000000000000000000069 -S31540049DB00000000000000000000000000000000059 -S31540049DC00000000000000000000000000000000049 -S31540049DD00000000000000000000000000000000039 -S31540049DE00000000000000000000000000000000029 -S31540049DF00000000000000000000000000000000019 -S31540049E000000000000000000000000000000000008 -S31540049E1000000000000000000000000000000000F8 -S31540049E2000000000000000000000000000000000E8 -S31540049E3000000000000000000000000000000000D8 -S31540049E4000000000000000000000000000000000C8 -S31540049E5000000000000000000000000000000000B8 -S31540049E6000000000000000000000000000000000A8 -S31540049E700000000000000000000000000000000098 -S31540049E800000000000000000000000000000000088 -S31540049E900000000000000000000000000000000078 -S31540049EA00000000000000000000000000000000068 -S31540049EB00000000000000000000000000000000058 -S31540049EC00000000000000000000000000000000048 -S31540049ED00000000000000000000000000000000038 -S31540049EE00000000000000000000000000000000028 -S31540049EF00000000000000000000000000000000018 -S31540049F000000000000000000000000000000000007 -S31540049F1000000000000000000000000000000000F7 -S31540049F2000000000000000000000000000000000E7 -S31540049F3000000000000000000000000000000000D7 -S31540049F4000000000000000000000000000000000C7 -S31540049F5000000000000000000000000000000000B7 -S31540049F6000000000000000000000000000000000A7 -S31540049F700000000000000000000000000000000097 -S31540049F800000000000000000000000000000000087 -S31540049F900000000000000000000000000000000077 -S31540049FA00000000000000000000000000000000067 -S31540049FB00000000000000000000000000000000057 -S31540049FC00000000000000000000000000000000047 -S31540049FD00000000000000000000000000000000037 -S31540049FE00000000000000000000000000000000027 -S31540049FF00000000000000000000000000000000017 -S3154004A0000000000000000000000000000000000006 -S3154004A01000000000000000000000000000000000F6 -S3154004A02000000000000000000000000000000000E6 -S3154004A03000000000000000000000000000000000D6 -S3154004A04000000000000000000000000000000000C6 -S3154004A05000000000000000000000000000000000B6 -S3154004A06000000000000000000000000000000000A6 -S3154004A0700000000000000000000000000000000096 -S3154004A0800000000000000000000000000000000086 -S3154004A0900000000000000000000000000000000076 -S3154004A0A00000000000000000000000000000000066 -S3154004A0B00000000000000000000000000000000056 -S3154004A0C00000000000000000000000000000000046 -S3154004A0D00000000000000000000000000000000036 -S3154004A0E00000000000000000000000000000000026 -S3154004A0F00000000000000000000000000000000016 -S3154004A1000000000000000000000000000000000005 -S3154004A11000000000000000000000000000000000F5 -S3154004A12000000000000000000000000000000000E5 -S3154004A13000000000000000000000000000000000D5 -S3154004A14000000000000000000000000000000000C5 -S3154004A15000000000000000000000000000000000B5 -S3154004A16000000000000000000000000000000000A5 -S3154004A1700000000000000000000000000000000095 -S3154004A1800000000000000000000000000000000085 -S3154004A1900000000000000000000000000000000075 -S3154004A1A00000000000000000000000000000000065 -S3154004A1B00000000000000000000000000000000055 -S3154004A1C00000000000000000000000000000000045 -S3154004A1D00000000000000000000000000000000035 -S3154004A1E00000000000000000000000000000000025 -S3154004A1F00000000000000000000000000000000015 -S3154004A2000000000000000000000000000000000004 -S3154004A21000000000000000000000000000000000F4 -S3154004A22000000000000000000000000000000000E4 -S3154004A23000000000000000000000000000000000D4 -S3154004A24000000000000000000000000000000000C4 -S3154004A25000000000000000000000000000000000B4 -S3154004A26000000000000000000000000000000000A4 -S3154004A2700000000000000000000000000000000094 -S3154004A2800000000000000000000000000000000084 -S3154004A2900000000000000000000000000000000074 -S3154004A2A00000000000000000000000000000000064 -S3154004A2B00000000000000000000000000000000054 -S3154004A2C00000000000000000000000000000000044 -S3154004A2D00000000000000000000000000000000034 -S3154004A2E00000000000000000000000000000000024 -S3154004A2F00000000000000000000000000000000014 -S3154004A3000000000000000000000000000000000003 -S3154004A31000000000000000000000000000000000F3 -S3154004A32000000000000000000000000000000000E3 -S3154004A33000000000000000000000000000000000D3 -S3154004A34000000000000000000000000000000000C3 -S3154004A35000000000000000000000000000000000B3 -S3154004A36000000000000000000000000000000000A3 -S3154004A3700000000000000000000000000000000093 -S3154004A3800000000000000000000000000000000083 -S3154004A3900000000000000000000000000000000073 -S3154004A3A00000000000000000000000000000000063 -S3154004A3B00000000000000000000000000000000053 -S3154004A3C00000000000000000000000000000000043 -S3154004A3D00000000000000000000000000000000033 -S3154004A3E00000000000000000000000000000000023 -S3154004A3F00000000000000000000000000000000013 -S3154004A4000000000000000000000000000000000002 -S3154004A41000000000000000000000000000000000F2 -S3154004A42000000000000000000000000000000000E2 -S3154004A43000000000000000000000000000000000D2 -S3154004A44000000000000000000000000000000000C2 -S3154004A45000000000000000000000000000000000B2 -S3154004A46000000000000000000000000000000000A2 -S3154004A4700000000000000000000000000000000092 -S3154004A4800000000000000000000000000000000082 -S3154004A4900000000000000000000000000000000072 -S3154004A4A00000000000000000000000000000000062 -S3154004A4B00000000000000000000000000000000052 -S3154004A4C00000000000000000000000000000000042 -S3154004A4D00000000000000000000000000000000032 -S3154004A4E00000000000000000000000000000000022 -S3154004A4F00000000000000000000000000000000012 -S3154004A5000000000000000000000000000000000001 -S3154004A51000000000000000000000000000000000F1 -S3154004A52000000000000000000000000000000000E1 -S3154004A53000000000000000000000000000000000D1 -S3154004A54000000000000000000000000000000000C1 -S3154004A55000000000000000000000000000000000B1 -S3154004A56000000000000000000000000000000000A1 -S3154004A5700000000000000000000000000000000091 -S3154004A5800000000000000000000000000000000081 -S3154004A5900000000000000000000000000000000071 -S3154004A5A00000000000000000000000000000000061 -S3154004A5B00000000000000000000000000000000051 -S3154004A5C00000000000000000000000000000000041 -S3154004A5D00000000000000000000000000000000031 -S3154004A5E00000000000000000000000000000000021 -S3154004A5F00000000000000000000000000000000011 -S3154004A6000000000000000000000000000000000000 -S3154004A61000000000000000000000000000000000F0 -S3154004A62000000000000000000000000000000000E0 -S3154004A63000000000000000000000000000000000D0 -S3154004A64000000000000000000000000000000000C0 -S3154004A65000000000000000000000000000000000B0 -S3154004A66000000000000000000000000000000000A0 -S3154004A6700000000000000000000000000000000090 -S3154004A6800000000000000000000000000000000080 -S3154004A6900000000000000000000000000000000070 -S3154004A6A00000000000000000000000000000000060 -S3154004A6B00000000000000000000000000000000050 -S3154004A6C00000000000000000000000000000000040 -S3154004A6D00000000000000000000000000000000030 -S3154004A6E00000000000000000000000000000000020 -S3154004A6F00000000000000000000000000000000010 -S3154004A70000000000000000000000000000000000FF -S3154004A71000000000000000000000000000000000EF -S3154004A72000000000000000000000000000000000DF -S3154004A73000000000000000000000000000000000CF -S3154004A74000000000000000000000000000000000BF -S3154004A75000000000000000000000000000000000AF -S3154004A760000000000000000000000000000000009F -S3154004A770000000000000000000000000000000008F -S3154004A780000000000000000000000000000000007F -S3154004A790000000000000000000000000000000006F -S3154004A7A0000000000000000000000000000000005F -S3154004A7B0000000000000000000000000000000004F -S3154004A7C0000000000000000000000000000000003F -S3154004A7D0000000000000000000000000000000002F -S3154004A7E0000000000000000000000000000000001F -S3154004A7F0000000000000000000000000000000000F -S3154004A80000000000000000000000000000000000FE -S3154004A81000000000000000000000000000000000EE -S3154004A82000000000000000000000000000000000DE -S3154004A83000000000000000000000000000000000CE -S3154004A84000000000000000000000000000000000BE -S3154004A85000000000000000000000000000000000AE -S3154004A860000000000000000000000000000000009E -S3154004A870000000000000000000000000000000008E -S3154004A880000000000000000000000000000000007E -S3154004A890000000000000000000000000000000006E -S3154004A8A0000000000000000000000000000000005E -S3154004A8B0000000000000000000000000000000004E -S3154004A8C0000000000000000000000000000000003E -S3154004A8D0000000000000000000000000000000002E -S3154004A8E0000000000000000000000000000000001E -S3154004A8F0000000000000000000000000000000000E -S3154004A90000000000000000000000000000000000FD -S3154004A91000000000000000000000000000000000ED -S3154004A92000000000000000000000000000000000DD -S3154004A93000000000000000000000000000000000CD -S3154004A94000000000000000000000000000000000BD -S3154004A95000000000000000000000000000000000AD -S3154004A960000000000000000000000000000000009D -S3154004A970000000000000000000000000000000008D -S3154004A980000000000000000000000000000000007D -S3154004A990000000000000000000000000000000006D -S3154004A9A0000000000000000000000000000000005D -S3154004A9B0000000000000000000000000000000004D -S3154004A9C0000000000000000000000000000000003D -S3154004A9D0000000000000000000000000000000002D -S3154004A9E0000000000000000000000000000000001D -S3154004A9F0000000000000000000000000000000000D -S3154004AA0000000000000000000000000000000000FC -S3154004AA1000000000000000000000000000000000EC -S3154004AA2000000000000000000000000000000000DC -S3154004AA3000000000000000000000000000000000CC -S3154004AA4000000000000000000000000000000000BC -S3154004AA5000000000000000000000000000000000AC -S3154004AA60000000000000000000000000000000009C -S3154004AA70000000000000000000000000000000008C -S3154004AA80000000000000000000000000000000007C -S3154004AA90000000000000000000000000000000006C -S3154004AAA0000000000000000000000000000000005C -S3154004AAB0000000000000000000000000000000004C -S3154004AAC0000000000000000000000000000000003C -S3154004AAD0000000000000000000000000000000002C -S3154004AAE0000000000000000000000000000000001C -S3154004AAF0000000000000000000000000000000000C -S3154004AB0000000000000000000000000000000000FB -S3154004AB1000000000000000000000000000000000EB -S3154004AB2000000000000000000000000000000000DB -S3154004AB3000000000000000000000000000000000CB -S3154004AB4000000000000000000000000000000000BB -S3154004AB5000000000000000000000000000000000AB -S3154004AB60000000000000000000000000000000009B -S3154004AB70000000000000000000000000000000008B -S3154004AB80000000000000000000000000000000007B -S3154004AB90000000000000000000000000000000006B -S3154004ABA0000000000000000000000000000000005B -S3154004ABB0000000000000000000000000000000004B -S3154004ABC0000000000000000000000000000000003B -S3154004ABD0000000000000000000000000000000002B -S3154004ABE0000000000000000000000000000000001B -S3154004ABF0000000000000000000000000000000000B -S3154004AC0000000000000000000000000000000000FA -S3154004AC1000000000000000000000000000000000EA -S3154004AC2000000000000000000000000000000000DA -S3154004AC3000000000000000000000000000000000CA -S3154004AC4000000000000000000000000000000000BA -S3154004AC5000000000000000000000000000000000AA -S3154004AC60000000000000000000000000000000009A -S3154004AC70000000000000000000000000000000008A -S3154004AC80000000000000000000000000000000007A -S3154004AC90000000000000000000000000000000006A -S3154004ACA0000000000000000000000000000000005A -S3154004ACB0000000000000000000000000000000004A -S3154004ACC0000000000000000000000000000000003A -S3154004ACD0000000000000000000000000000000002A -S3154004ACE0000000000000000000000000000000001A -S3154004ACF0000000000000000000000000000000000A -S3154004AD0000000000000000000000000000000000F9 -S3154004AD1000000000000000000000000000000000E9 -S3154004AD2000000000000000000000000000000000D9 -S3154004AD3000000000000000000000000000000000C9 -S3154004AD4000000000000000000000000000000000B9 -S3154004AD5000000000000000000000000000000000A9 -S3154004AD600000000000000000000000000000000099 -S3154004AD700000000000000000000000000000000089 -S3154004AD800000000000000000000000000000000079 -S3154004AD900000000000000000000000000000000069 -S3154004ADA00000000000000000000000000000000059 -S3154004ADB00000000000000000000000000000000049 -S3154004ADC00000000000000000000000000000000039 -S3154004ADD00000000000000000000000000000000029 -S3154004ADE00000000000000000000000000000000019 -S3154004ADF00000000000000000000000000000000009 -S3154004AE0000000000000000000000000000000000F8 -S3154004AE1000000000000000000000000000000000E8 -S3154004AE2000000000000000000000000000000000D8 -S3154004AE3000000000000000000000000000000000C8 -S3154004AE4000000000000000000000000000000000B8 -S3154004AE5000000000000000000000000000000000A8 -S3154004AE600000000000000000000000000000000098 -S3154004AE700000000000000000000000000000000088 -S3154004AE800000000000000000000000000000000078 -S3154004AE900000000000000000000000000000000068 -S3154004AEA00000000000000000000000000000000058 -S3154004AEB00000000000000000000000000000000048 -S3154004AEC00000000000000000000000000000000038 -S3154004AED00000000000000000000000000000000028 -S3154004AEE00000000000000000000000000000000018 -S3154004AEF00000000000000000000000000000000008 -S3154004AF0000000000000000000000000000000000F7 -S3154004AF1000000000000000000000000000000000E7 -S3154004AF2000000000000000000000000000000000D7 -S3154004AF3000000000000000000000000000000000C7 -S3154004AF4000000000000000000000000000000000B7 -S3154004AF5000000000000000000000000000000000A7 -S3154004AF600000000000000000000000000000000097 -S3154004AF700000000000000000000000000000000087 -S3154004AF800000000000000000000000000000000077 -S3154004AF900000000000000000000000000000000067 -S3154004AFA00000000000000000000000000000000057 -S3154004AFB00000000000000000000000000000000047 -S3154004AFC00000000000000000000000000000000037 -S3154004AFD00000000000000000000000000000000027 -S3154004AFE00000000000000000000000000000000017 -S3154004AFF00000000000000000000000000000000007 -S3154004B00000000000000000000000000000000000F6 -S3154004B01000000000000000000000000000000000E6 -S3154004B02000000000000000000000000000000000D6 -S3154004B03000000000000000000000000000000000C6 -S3154004B04000000000000000000000000000000000B6 -S3154004B05000000000000000000000000000000000A6 -S3154004B0600000000000000000000000000000000096 -S3154004B0700000000000000000000000000000000086 -S3154004B0800000000000000000000000000000000076 -S3154004B0900000000000000000000000000000000066 -S3154004B0A00000000000000000000000000000000056 -S3154004B0B00000000000000000000000000000000046 -S3154004B0C00000000000000000000000000000000036 -S3154004B0D00000000000000000000000000000000026 -S3154004B0E00000000000000000000000000000000016 -S3154004B0F00000000000000000000000000000000006 -S3154004B10000000000000000000000000000000000F5 -S3154004B11000000000000000000000000000000000E5 -S3154004B12000000000000000000000000000000000D5 -S3154004B13000000000000000000000000000000000C5 -S3154004B14000000000000000000000000000000000B5 -S3154004B15000000000000000000000000000000000A5 -S3154004B1600000000000000000000000000000000095 -S3154004B1700000000000000000000000000000000085 -S3154004B1800000000000000000000000000000000075 -S3154004B1900000000000000000000000000000000065 -S3154004B1A00000000000000000000000000000000055 -S3154004B1B00000000000000000000000000000000045 -S3154004B1C00000000000000000000000000000000035 -S3154004B1D00000000000000000000000000000000025 -S3154004B1E00000000000000000000000000000000015 -S3154004B1F00000000000000000000000000000000005 -S3154004B20000000000000000000000000000000000F4 -S3154004B21000000000000000000000000000000000E4 -S3154004B22000000000000000000000000000000000D4 -S3154004B23000000000000000000000000000000000C4 -S3154004B24000000000000000000000000000000000B4 -S3154004B25000000000000000000000000000000000A4 -S3154004B2600000000000000000000000000000000094 -S3154004B2700000000000000000000000000000000084 -S3154004B2800000000000000000000000000000000074 -S3154004B2900000000000000000000000000000000064 -S3154004B2A00000000000000000000000000000000054 -S3154004B2B00000000000000000000000000000000044 -S3154004B2C00000000000000000000000000000000034 -S3154004B2D00000000000000000000000000000000024 -S3154004B2E00000000000000000000000000000000014 -S3154004B2F00000000000000000000000000000000004 -S3154004B30000000000000000000000000000000000F3 -S3154004B31000000000000000000000000000000000E3 -S3154004B32000000000000000000000000000000000D3 -S3154004B33000000000000000000000000000000000C3 -S3154004B34000000000000000000000000000000000B3 -S3154004B35000000000000000000000000000000000A3 -S3154004B3600000000000000000000000000000000093 -S3154004B3700000000000000000000000000000000083 -S3154004B3800000000000000000000000000000000073 -S3154004B3900000000000000000000000000000000063 -S3154004B3A00000000000000000000000000000000053 -S3154004B3B00000000000000000000000000000000043 -S3154004B3C00000000000000000000000000000000033 -S3154004B3D00000000000000000000000000000000023 -S3154004B3E00000000000000000000000000000000013 -S3154004B3F00000000000000000000000000000000003 -S3154004B40000000000000000000000000000000000F2 -S3154004B41000000000000000000000000000000000E2 -S3154004B42000000000000000000000000000000000D2 -S3154004B43000000000000000000000000000000000C2 -S3154004B44000000000000000000000000000000000B2 -S3154004B45000000000000000000000000000000000A2 -S3154004B4600000000000000000000000000000000092 -S3154004B4700000000000000000000000000000000082 -S3154004B4800000000000000000000000000000000072 -S3154004B4900000000000000000000000000000000062 -S3154004B4A00000000000000000000000000000000052 -S3154004B4B00000000000000000000000000000000042 -S3154004B4C00000000000000000000000000000000032 -S3154004B4D00000000000000000000000000000000022 -S3154004B4E00000000000000000000000000000000012 -S3154004B4F00000000000000000000000000000000002 -S3154004B50000000000000000000000000000000000F1 -S3154004B51000000000000000000000000000000000E1 -S3154004B52000000000000000000000000000000000D1 -S3154004B53000000000000000000000000000000000C1 -S3154004B54000000000000000000000000000000000B1 -S3154004B55000000000000000000000000000000000A1 -S3154004B5600000000000000000000000000000000091 -S3154004B5700000000000000000000000000000000081 -S3154004B5800000000000000000000000000000000071 -S3154004B5900000000000000000000000000000000061 -S3154004B5A00000000000000000000000000000000051 -S3154004B5B00000000000000000000000000000000041 -S3154004B5C00000000000000000000000000000000031 -S3154004B5D00000000000000000000000000000000021 -S3154004B5E00000000000000000000000000000000011 -S3154004B5F00000000000000000000000000000000001 -S3154004B60000000000000000000000000000000000F0 -S3154004B61000000000000000000000000000000000E0 -S3154004B62000000000000000000000000000000000D0 -S3154004B63000000000000000000000000000000000C0 -S3154004B64000000000000000000000000000000000B0 -S3154004B65000000000000000000000000000000000A0 -S3154004B6600000000000000000000000000000000090 -S3154004B6700000000000000000000000000000000080 -S3154004B6800000000000000000000000000000000070 -S3154004B6900000000000000000000000000000000060 -S3154004B6A00000000000000000000000000000000050 -S3154004B6B00000000000000000000000000000000040 -S3154004B6C00000000000000000000000000000000030 -S3154004B6D00000000000000000000000000000000020 -S3154004B6E00000000000000000000000000000000010 -S3154004B6F00000000000000000000000000000000000 -S3154004B70000000000000000000000000000000000EF -S3154004B71000000000000000000000000000000000DF -S3154004B72000000000000000000000000000000000CF -S3154004B73000000000000000000000000000000000BF -S3154004B74000000000000000000000000000000000AF -S3154004B750000000000000000000000000000000009F -S3154004B760000000000000000000000000000000008F -S3154004B770000000000000000000000000000000007F -S3154004B780000000000000000000000000000000006F -S3154004B790000000000000000000000000000000005F -S3154004B7A0000000000000000000000000000000004F -S3154004B7B0000000000000000000000000000000003F -S3154004B7C0000000000000000000000000000000002F -S3154004B7D0000000000000000000000000000000001F -S3154004B7E0000000000000000000000000000000000F -S3154004B7F000000000000000000000000000000000FF -S3154004B80000000000000000000000000000000000EE -S3154004B81000000000000000000000000000000000DE -S3154004B82000000000000000000000000000000000CE -S3154004B83000000000000000000000000000000000BE -S3154004B84000000000000000000000000000000000AE -S3154004B850000000000000000000000000000000009E -S3154004B860000000000000000000000000000000008E -S3154004B870000000000000000000000000000000007E -S3154004B880000000000000000000000000000000006E -S3154004B890000000000000000000000000000000005E -S3154004B8A0000000000000000000000000000000004E -S3154004B8B0000000000000000000000000000000003E -S3154004B8C0000000000000000000000000000000002E -S3154004B8D0000000000000000000000000000000001E -S3154004B8E0000000000000000000000000000000000E -S3154004B8F000000000000000000000000000000000FE -S3154004B90000000000000000000000000000000000ED -S3154004B91000000000000000000000000000000000DD -S3154004B92000000000000000000000000000000000CD -S3154004B93000000000000000000000000000000000BD -S3154004B94000000000000000000000000000000000AD -S3154004B950000000000000000000000000000000009D -S3154004B960000000000000000000000000000000008D -S3154004B970000000000000000000000000000000007D -S3154004B980000000000000000000000000000000006D -S3154004B990000000000000000000000000000000005D -S3154004B9A0000000000000000000000000000000004D -S3154004B9B0000000000000000000000000000000003D -S3154004B9C0000000000000000000000000000000002D -S3154004B9D0000000000000000000000000000000001D -S3154004B9E0000000000000000000000000000000000D -S3154004B9F000000000000000000000000000000000FD -S3154004BA0000000000000000000000000000000000EC -S3154004BA1000000000000000000000000000000000DC -S3154004BA2000000000000000000000000000000000CC -S3154004BA3000000000000000000000000000000000BC -S3154004BA4000000000000000000000000000000000AC -S3154004BA50000000000000000000000000000000009C -S3154004BA60000000000000000000000000000000008C -S3154004BA70000000000000000000000000000000007C -S3154004BA80000000000000000000000000000000006C -S3154004BA90000000000000000000000000000000005C -S3154004BAA0000000000000000000000000000000004C -S3154004BAB0000000000000000000000000000000003C -S3154004BAC0000000000000000000000000000000002C -S3154004BAD0000000000000000000000000000000001C -S3154004BAE0000000000000000000000000000000000C -S3154004BAF000000000000000000000000000000000FC -S3154004BB0000000000000000000000000000000000EB -S3154004BB1000000000000000000000000000000000DB -S3154004BB2000000000000000000000000000000000CB -S3154004BB3000000000000000000000000000000000BB -S3154004BB4000000000000000000000000000000000AB -S3154004BB50000000000000000000000000000000009B -S3154004BB60000000000000000000000000000000008B -S3154004BB70000000000000000000000000000000007B -S3154004BB80000000000000000000000000000000006B -S3154004BB90000000000000000000000000000000005B -S3154004BBA0000000000000000000000000000000004B -S3154004BBB0000000000000000000000000000000003B -S3154004BBC0000000000000000000000000000000002B -S3154004BBD0000000000000000000000000000000001B -S3154004BBE0000000000000000000000000000000000B -S3154004BBF000000000000000000000000000000000FB -S3154004BC0000000000000000000000000000000000EA -S3154004BC1000000000000000000000000000000000DA -S3154004BC2000000000000000000000000000000000CA -S3154004BC3000000000000000000000000000000000BA -S3154004BC4000000000000000000000000000000000AA -S3154004BC50000000000000000000000000000000009A -S3154004BC60000000000000000000000000000000008A -S3154004BC70000000000000000000000000000000007A -S3154004BC80000000000000000000000000000000006A -S3154004BC90000000000000000000000000000000005A -S3154004BCA0000000000000000000000000000000004A -S3154004BCB0000000000000000000000000000000003A -S3154004BCC0000000000000000000000000000000002A -S3154004BCD0000000000000000000000000000000001A -S3154004BCE0000000000000000000000000000000000A -S3154004BCF000000000000000000000000000000000FA -S3154004BD0000000000000000000000000000000000E9 -S3154004BD1000000000000000000000000000000000D9 -S3154004BD2000000000000000000000000000000000C9 -S3154004BD3000000000000000000000000000000000B9 -S3154004BD4000000000000000000000000000000000A9 -S3154004BD500000000000000000000000000000000099 -S3154004BD600000000000000000000000000000000089 -S3154004BD700000000000000000000000000000000079 -S3154004BD800000000000000000000000000000000069 -S3154004BD900000000000000000000000000000000059 -S3154004BDA00000000000000000000000000000000049 -S3154004BDB00000000000000000000000000000000039 -S3154004BDC00000000000000000000000000000000029 -S3154004BDD00000000000000000000000000000000019 -S3154004BDE00000000000000000000000000000000009 -S3154004BDF000000000000000000000000000000000F9 -S3154004BE0000000000000000000000000000000000E8 -S3154004BE1000000000000000000000000000000000D8 -S3154004BE2000000000000000000000000000000000C8 -S3154004BE3000000000000000000000000000000000B8 -S3154004BE4000000000000000000000000000000000A8 -S3154004BE500000000000000000000000000000000098 -S3154004BE600000000000000000000000000000000088 -S3154004BE700000000000000000000000000000000078 -S3154004BE800000000000000000000000000000000068 -S3154004BE900000000000000000000000000000000058 -S3154004BEA00000000000000000000000000000000048 -S3154004BEB00000000000000000000000000000000038 -S3154004BEC00000000000000000000000000000000028 -S3154004BED00000000000000000000000000000000018 -S3154004BEE00000000000000000000000000000000008 -S3154004BEF000000000000000000000000000000000F8 -S3154004BF0000000000000000000000000000000000E7 -S3154004BF1000000000000000000000000000000000D7 -S3154004BF2000000000000000000000000000000000C7 -S3154004BF3000000000000000000000000000000000B7 -S3154004BF4000000000000000000000000000000000A7 -S3154004BF500000000000000000000000000000000097 -S3154004BF600000000000000000000000000000000087 -S3154004BF700000000000000000000000000000000077 -S3154004BF800000000000000000000000000000000067 -S3154004BF900000000000000000000000000000000057 -S3154004BFA00000000000000000000000000000000047 -S3154004BFB00000000000000000000000000000000037 -S3154004BFC00000000000000000000000000000000027 -S3154004BFD00000000000000000000000000000000017 -S3154004BFE00000000000000000000000000000000007 -S3154004BFF000000000000000000000000000000000F7 -S3154004C00000000000000000000000000000000000E6 -S3154004C01000000000000000000000000000000000D6 -S3154004C02000000000000000000000000000000000C6 -S3154004C03000000000000000000000000000000000B6 -S3154004C04000000000000000000000000000000000A6 -S3154004C0500000000000000000000000000000000096 -S3154004C0600000000000000000000000000000000086 -S3154004C0700000000000000000000000000000000076 -S3154004C0800000000000000000000000000000000066 -S3154004C0900000000000000000000000000000000056 -S3154004C0A00000000000000000000000000000000046 -S3154004C0B00000000000000000000000000000000036 -S3154004C0C00000000000000000000000000000000026 -S3154004C0D00000000000000000000000000000000016 -S3154004C0E00000000000000000000000000000000006 -S3154004C0F000000000000000000000000000000000F6 -S3154004C10000000000000000000000000000000000E5 -S3154004C11000000000000000000000000000000000D5 -S3154004C12000000000000000000000000000000000C5 -S3154004C13000000000000000000000000000000000B5 -S3154004C14000000000000000000000000000000000A5 -S3154004C1500000000000000000000000000000000095 -S3154004C1600000000000000000000000000000000085 -S3154004C1700000000000000000000000000000000075 -S3154004C1800000000000000000000000000000000065 -S3154004C1900000000000000000000000000000000055 -S3154004C1A00000000000000000000000000000000045 -S3154004C1B00000000000000000000000000000000035 -S3154004C1C00000000000000000000000000000000025 -S3154004C1D00000000000000000000000000000000015 -S3154004C1E00000000000000000000000000000000005 -S3154004C1F000000000000000000000000000000000F5 -S3154004C20000000000000000000000000000000000E4 -S3154004C21000000000000000000000000000000000D4 -S3154004C22000000000000000000000000000000000C4 -S3154004C23000000000000000000000000000000000B4 -S3154004C24000000000000000000000000000000000A4 -S3154004C2500000000000000000000000000000000094 -S3154004C2600000000000000000000000000000000084 -S3154004C2700000000000000000000000000000000074 -S3154004C2800000000000000000000000000000000064 -S3154004C2900000000000000000000000000000000054 -S3154004C2A00000000000000000000000000000000044 -S3154004C2B00000000000000000000000000000000034 -S3154004C2C00000000000000000000000000000000024 -S3154004C2D00000000000000000000000000000000014 -S3154004C2E00000000000000000000000000000000004 -S3154004C2F000000000000000000000000000000000F4 -S3154004C30000000000000000000000000000000000E3 -S3154004C31000000000000000000000000000000000D3 -S3154004C32000000000000000000000000000000000C3 -S3154004C33000000000000000000000000000000000B3 -S3154004C34000000000000000000000000000000000A3 -S3154004C3500000000000000000000000000000000093 -S3154004C3600000000000000000000000000000000083 -S3154004C3700000000000000000000000000000000073 -S3154004C3800000000000000000000000000000000063 -S3154004C3900000000000000000000000000000000053 -S3154004C3A00000000000000000000000000000000043 -S3154004C3B00000000000000000000000000000000033 -S3154004C3C00000000000000000000000000000000023 -S3154004C3D00000000000000000000000000000000013 -S3154004C3E00000000000000000000000000000000003 -S3154004C3F000000000000000000000000000000000F3 -S3154004C40000000000000000000000000000000000E2 -S3154004C41000000000000000000000000000000000D2 -S3154004C42000000000000000000000000000000000C2 -S3154004C43000000000000000000000000000000000B2 -S3154004C44000000000000000000000000000000000A2 -S3154004C4500000000000000000000000000000000092 -S3154004C4600000000000000000000000000000000082 -S3154004C4700000000000000000000000000000000072 -S3154004C4800000000000000000000000000000000062 -S3154004C4900000000000000000000000000000000052 -S3154004C4A00000000000000000000000000000000042 -S3154004C4B00000000000000000000000000000000032 -S3154004C4C00000000000000000000000000000000022 -S3154004C4D00000000000000000000000000000000012 -S3154004C4E00000000000000000000000000000000002 -S3154004C4F000000000000000000000000000000000F2 -S3154004C50000000000000000000000000000000000E1 -S3154004C51000000000000000000000000000000000D1 -S3154004C52000000000000000000000000000000000C1 -S3154004C53000000000000000000000000000000000B1 -S3154004C54000000000000000000000000000000000A1 -S3154004C5500000000000000000000000000000000091 -S3154004C5600000000000000000000000000000000081 -S3154004C5700000000000000000000000000000000071 -S3154004C5800000000000000000000000000000000061 -S3154004C5900000000000000000000000000000000051 -S3154004C5A00000000000000000000000000000000041 -S3154004C5B00000000000000000000000000000000031 -S3154004C5C00000000000000000000000000000000021 -S3154004C5D00000000000000000000000000000000011 -S3154004C5E00000000000000000000000000000000001 -S3154004C5F000000000000000000000000000000000F1 -S3154004C60000000000000000000000000000000000E0 -S3154004C61000000000000000000000000000000000D0 -S3154004C62000000000000000000000000000000000C0 -S3154004C63000000000000000000000000000000000B0 -S3154004C64000000000000000000000000000000000A0 -S3154004C6500000000000000000000000000000000090 -S3154004C6600000000000000000000000000000000080 -S3154004C6700000000000000000000000000000000070 -S3154004C6800000000000000000000000000000000060 -S3154004C6900000000000000000000000000000000050 -S3154004C6A00000000000000000000000000000000040 -S3154004C6B00000000000000000000000000000000030 -S3154004C6C00000000000000000000000000000000020 -S3154004C6D00000000000000000000000000000000010 -S3154004C6E00000000000000000000000000000000000 -S3154004C6F000000000000000000000000000000000F0 -S3154004C70000000000000000000000000000000000DF -S3154004C71000000000000000000000000000000000CF -S3154004C72000000000000000000000000000000000BF -S3154004C73000000000000000000000000000000000AF -S3154004C740000000000000000000000000000000009F -S3154004C750000000000000000000000000000000008F -S3154004C760000000000000000000000000000000007F -S3154004C770000000000000000000000000000000006F -S3154004C780000000000000000000000000000000005F -S3154004C790000000000000000000000000000000004F -S3154004C7A0000000000000000000000000000000003F -S3154004C7B0000000000000000000000000000000002F -S3154004C7C0000000000000000000000000000000001F -S3154004C7D0000000000000000000000000000000000F -S3154004C7E000000000000000000000000000000000FF -S3154004C7F000000000000000000000000000000000EF -S3154004C80000000000000000000000000000000000DE -S3154004C81000000000000000000000000000000000CE -S3154004C82000000000000000000000000000000000BE -S3154004C83000000000000000000000000000000000AE -S3154004C840000000000000000000000000000000009E -S3154004C850000000000000000000000000000000008E -S3154004C860000000000000000000000000000000007E -S3154004C870000000000000000000000000000000006E -S3154004C880000000000000000000000000000000005E -S3154004C890000000000000000000000000000000004E -S3154004C8A0000000000000000000000000000000003E -S3154004C8B0000000000000000000000000000000002E -S3154004C8C0000000000000000000000000000000001E -S3154004C8D0000000000000000000000000000000000E -S3154004C8E000000000000000000000000000000000FE -S3154004C8F000000000000000000000000000000000EE -S3154004C90000000000000000000000000000000000DD -S3154004C91000000000000000000000000000000000CD -S3154004C92000000000000000000000000000000000BD -S3154004C93000000000000000000000000000000000AD -S3154004C940000000000000000000000000000000009D -S3154004C950000000000000000000000000000000008D -S3154004C960000000000000000000000000000000007D -S3154004C970000000000000000000000000000000006D -S3154004C980000000000000000000000000000000005D -S3154004C990000000000000000000000000000000004D -S3154004C9A0000000000000000000000000000000003D -S3154004C9B0000000000000000000000000000000002D -S3154004C9C0000000000000000000000000000000001D -S3154004C9D0000000000000000000000000000000000D -S3154004C9E000000000000000000000000000000000FD -S3154004C9F000000000000000000000000000000000ED -S3154004CA0000000000000000000000000000000000DC -S3154004CA1000000000000000000000000000000000CC -S3154004CA2000000000000000000000000000000000BC -S3154004CA3000000000000000000000000000000000AC -S3154004CA40000000000000000000000000000000009C -S3154004CA50000000000000000000000000000000008C -S3154004CA60000000000000000000000000000000007C -S3154004CA70000000000000000000000000000000006C -S3154004CA80000000000000000000000000000000005C -S3154004CA90000000000000000000000000000000004C -S3154004CAA0000000000000000000000000000000003C -S3154004CAB0000000000000000000000000000000002C -S3154004CAC0000000000000000000000000000000001C -S3154004CAD0000000000000000000000000000000000C -S3154004CAE000000000000000000000000000000000FC -S3154004CAF000000000000000000000000000000000EC -S3154004CB0000000000000000000000000000000000DB -S3154004CB1000000000000000000000000000000000CB -S3154004CB2000000000000000000000000000000000BB -S3154004CB3000000000000000000000000000000000AB -S3154004CB40000000000000000000000000000000009B -S3154004CB50000000000000000000000000000000008B -S3154004CB60000000000000000000000000000000007B -S3154004CB70000000000000000000000000000000006B -S3154004CB80000000000000000000000000000000005B -S3154004CB90000000000000000000000000000000004B -S3154004CBA0000000000000000000000000000000003B -S3154004CBB0000000000000000000000000000000002B -S3154004CBC0000000000000000000000000000000001B -S3154004CBD0000000000000000000000000000000000B -S3154004CBE000000000000000000000000000000000FB -S3154004CBF000000000000000000000000000000000EB -S3154004CC0000000000000000000000000000000000DA -S3154004CC1000000000000000000000000000000000CA -S3154004CC2000000000000000000000000000000000BA -S3154004CC3000000000000000000000000000000000AA -S3154004CC40000000000000000000000000000000009A -S3154004CC50000000000000000000000000000000008A -S3154004CC60000000000000000000000000000000007A -S3154004CC70000000000000000000000000000000006A -S3154004CC80000000000000000000000000000000005A -S3154004CC90000000000000000000000000000000004A -S3154004CCA0000000000000000000000000000000003A -S3154004CCB0000000000000000000000000000000002A -S3154004CCC0000000000000000000000000000000001A -S3154004CCD0000000000000000000000000000000000A -S3154004CCE000000000000000000000000000000000FA -S3154004CCF000000000000000000000000000000000EA -S3154004CD0000000000000000000000000000000000D9 -S3154004CD1000000000000000000000000000000000C9 -S3154004CD2000000000000000000000000000000000B9 -S3154004CD3000000000000000000000000000000000A9 -S3154004CD400000000000000000000000000000000099 -S3154004CD500000000000000000000000000000000089 -S3154004CD600000000000000000000000000000000079 -S3154004CD700000000000000000000000000000000069 -S3154004CD800000000000000000000000000000000059 -S3154004CD900000000000000000000000000000000049 -S3154004CDA00000000000000000000000000000000039 -S3154004CDB00000000000000000000000000000000029 -S3154004CDC00000000000000000000000000000000019 -S3154004CDD00000000000000000000000000000000009 -S3154004CDE000000000000000000000000000000000F9 -S3154004CDF000000000000000000000000000000000E9 -S3154004CE0000000000000000000000000000000000D8 -S3154004CE1000000000000000000000000000000000C8 -S3154004CE2000000000000000000000000000000000B8 -S3154004CE3000000000000000000000000000000000A8 -S3154004CE400000000000000000000000000000000098 -S3154004CE500000000000000000000000000000000088 -S3154004CE600000000000000000000000000000000078 -S3154004CE700000000000000000000000000000000068 -S3154004CE800000000000000000000000000000000058 -S3154004CE900000000000000000000000000000000048 -S3154004CEA00000000000000000000000000000000038 -S3154004CEB00000000000000000000000000000000028 -S3154004CEC00000000000000000000000000000000018 -S3154004CED00000000000000000000000000000000008 -S3154004CEE000000000000000000000000000000000F8 -S3154004CEF000000000000000000000000000000000E8 -S3154004CF0000000000000000000000000000000000D7 -S3154004CF1000000000000000000000000000000000C7 -S3154004CF2000000000000000000000000000000000B7 -S3154004CF3000000000000000000000000000000000A7 -S3154004CF400000000000000000000000000000000097 -S3154004CF500000000000000000000000000000000087 -S3154004CF600000000000000000000000000000000077 -S3154004CF700000000000000000000000000000000067 -S3154004CF800000000000000000000000000000000057 -S3154004CF900000000000000000000000000000000047 -S3154004CFA00000000000000000000000000000000037 -S3154004CFB00000000000000000000000000000000027 -S3154004CFC00000000000000000000000000000000017 -S3154004CFD00000000000000000000000000000000007 -S3154004CFE000000000000000000000000000000000F7 -S3154004CFF000000000000000000000000000000000E7 -S3154004D00000000000000000000000000000000000D6 -S3154004D01000000000000000000000000000000000C6 -S3154004D02000000000000000000000000000000000B6 -S3154004D03000000000000000000000000000000000A6 -S3154004D0400000000000000000000000000000000096 -S3154004D0500000000000000000000000000000000086 -S3154004D0600000000000000000000000000000000076 -S3154004D0700000000000000000000000000000000066 -S3154004D0800000000000000000000000000000000056 -S3154004D0900000000000000000000000000000000046 -S3154004D0A00000000000000000000000000000000036 -S3154004D0B00000000000000000000000000000000026 -S3154004D0C00000000000000000000000000000000016 -S3154004D0D00000000000000000000000000000000006 -S3154004D0E000000000000000000000000000000000F6 -S3154004D0F000000000000000000000000000000000E6 -S3154004D10000000000000000000000000000000000D5 -S3154004D11000000000000000000000000000000000C5 -S3154004D12000000000000000000000000000000000B5 -S3154004D13000000000000000000000000000000000A5 -S3154004D1400000000000000000000000000000000095 -S3154004D1500000000000000000000000000000000085 -S3154004D1600000000000000000000000000000000075 -S3154004D1700000000000000000000000000000000065 -S3154004D1800000000000000000000000000000000055 -S3154004D1900000000000000000000000000000000045 -S3154004D1A00000000000000000000000000000000035 -S3154004D1B00000000000000000000000000000000025 -S3154004D1C00000000000000000000000000000000015 -S3154004D1D00000000000000000000000000000000005 -S3154004D1E000000000000000000000000000000000F5 -S3154004D1F000000000000000000000000000000000E5 -S3154004D20000000000000000000000000000000000D4 -S3154004D21000000000000000000000000000000000C4 -S3154004D22000000000000000000000000000000000B4 -S3154004D23000000000000000000000000000000000A4 -S3154004D2400000000000000000000000000000000094 -S3154004D2500000000000000000000000000000000084 -S3154004D2600000000000000000000000000000000074 -S3154004D2700000000000000000000000000000000064 -S3154004D2800000000000000000000000000000000054 -S3154004D2900000000000000000000000000000000044 -S3154004D2A00000000000000000000000000000000034 -S3154004D2B00000000000000000000000000000000024 -S3154004D2C00000000000000000000000000000000014 -S3154004D2D00000000000000000000000000000000004 -S3154004D2E000000000000000000000000000000000F4 -S3154004D2F000000000000000000000000000000000E4 -S3154004D30000000000000000000000000000000000D3 -S3154004D31000000000000000000000000000000000C3 -S3154004D32000000000000000000000000000000000B3 -S3154004D33000000000000000000000000000000000A3 -S3154004D3400000000000000000000000000000000093 -S3154004D3500000000000000000000000000000000083 -S3154004D3600000000000000000000000000000000073 -S3154004D3700000000000000000000000000000000063 -S3154004D3800000000000000000000000000000000053 -S3154004D3900000000000000000000000000000000043 -S3154004D3A00000000000000000000000000000000033 -S3154004D3B00000000000000000000000000000000023 -S3154004D3C00000000000000000000000000000000013 -S3154004D3D00000000000000000000000000000000003 -S3154004D3E000000000000000000000000000000000F3 -S3154004D3F000000000000000000000000000000000E3 -S3154004D40000000000000000000000000000000000D2 -S3154004D41000000000000000000000000000000000C2 -S3154004D42000000000000000000000000000000000B2 -S3154004D43000000000000000000000000000000000A2 -S3154004D4400000000000000000000000000000000092 -S3154004D4500000000000000000000000000000000082 -S3154004D4600000000000000000000000000000000072 -S3154004D4700000000000000000000000000000000062 -S3154004D4800000000000000000000000000000000052 -S3154004D4900000000000000000000000000000000042 -S3154004D4A00000000000000000000000000000000032 -S3154004D4B00000000000000000000000000000000022 -S3154004D4C00000000000000000000000000000000012 -S3154004D4D00000000000000000000000000000000002 -S3154004D4E000000000000000000000000000000000F2 -S3154004D4F000000000000000000000000000000000E2 -S3154004D50000000000000000000000000000000000D1 -S3154004D51000000000000000000000000000000000C1 -S3154004D52000000000000000000000000000000000B1 -S3154004D53000000000000000000000000000000000A1 -S3154004D5400000000000000000000000000000000091 -S3154004D5500000000000000000000000000000000081 -S3154004D5600000000000000000000000000000000071 -S3154004D5700000000000000000000000000000000061 -S3154004D5800000000000000000000000000000000051 -S3154004D5900000000000000000000000000000000041 -S3154004D5A00000000000000000000000000000000031 -S3154004D5B00000000000000000000000000000000021 -S3154004D5C00000000000000000000000000000000011 -S3154004D5D00000000000000000000000000000000001 -S3154004D5E000000000000000000000000000000000F1 -S3154004D5F000000000000000000000000000000000E1 -S3154004D60000000000000000000000000000000000D0 -S3154004D61000000000000000000000000000000000C0 -S3154004D62000000000000000000000000000000000B0 -S3154004D63000000000000000000000000000000000A0 -S3154004D6400000000000000000000000000000000090 -S3154004D6500000000000000000000000000000000080 -S3154004D6600000000000000000000000000000000070 -S3154004D6700000000000000000000000000000000060 -S3154004D6800000000000000000000000000000000050 -S3154004D6900000000000000000000000000000000040 -S3154004D6A00000000000000000000000000000000030 -S3154004D6B00000000000000000000000000000000020 -S3154004D6C00000000000000000000000000000000010 -S3154004D6D00000000000000000000000000000000000 -S3154004D6E000000000000000000000000000000000F0 -S3154004D6F000000000000000000000000000000000E0 -S3154004D70000000000000000000000000000000000CF -S3154004D71000000000000000000000000000000000BF -S3154004D72000000000000000000000000000000000AF -S3154004D730000000000000000000000000000000009F -S3154004D740000000000000000000000000000000008F -S3154004D750000000000000000000000000000000007F -S3154004D760000000000000000000000000000000006F -S3154004D770000000000000000000000000000000005F -S3154004D780000000000000000000000000000000004F -S3154004D790000000000000000000000000000000003F -S3154004D7A0000000000000000000000000000000002F -S3154004D7B0000000000000000000000000000000001F -S3154004D7C0000000000000000000000000000000000F -S3154004D7D000000000000000000000000000000000FF -S3154004D7E000000000000000000000000000000000EF -S3154004D7F000000000000000000000000000000000DF -S3154004D80000000000000000000000000000000000CE -S3154004D81000000000000000000000000000000000BE -S3154004D82000000000000000000000000000000000AE -S3154004D830000000000000000000000000000000009E -S3154004D840000000000000000000000000000000008E -S3154004D850000000000000000000000000000000007E -S3154004D860000000000000000000000000000000006E -S3154004D870000000000000000000000000000000005E -S3154004D880000000000000000000000000000000004E -S3154004D890000000000000000000000000000000003E -S3154004D8A0000000000000000000000000000000002E -S3154004D8B0000000000000000000000000000000001E -S3154004D8C0000000000000000000000000000000000E -S3154004D8D000000000000000000000000000000000FE -S3154004D8E000000000000000000000000000000000EE -S3154004D8F000000000000000000000000000000000DE -S3154004D90000000000000000000000000000000000CD -S3154004D91000000000000000000000000000000000BD -S3154004D92000000000000000000000000000000000AD -S3154004D930000000000000000000000000000000009D -S3154004D940000000000000000000000000000000008D -S3154004D950000000000000000000000000000000007D -S3154004D960000000000000000000000000000000006D -S3154004D970000000000000000000000000000000005D -S3154004D980000000000000000000000000000000004D -S3154004D990000000000000000000000000000000003D -S3154004D9A0000000000000000000000000000000002D -S3154004D9B0000000000000000000000000000000001D -S3154004D9C0000000000000000000000000000000000D -S3154004D9D000000000000000000000000000000000FD -S3154004D9E000000000000000000000000000000000ED -S3154004D9F000000000000000000000000000000000DD -S3154004DA0000000000000000000000000000000000CC -S3154004DA1000000000000000000000000000000000BC -S3154004DA2000000000000000000000000000000000AC -S3154004DA30000000000000000000000000000000009C -S3154004DA40000000000000000000000000000000008C -S3154004DA50000000000000000000000000000000007C -S3154004DA60000000000000000000000000000000006C -S3154004DA70000000000000000000000000000000005C -S3154004DA80000000000000000000000000000000004C -S3154004DA90000000000000000000000000000000003C -S3154004DAA0000000000000000000000000000000002C -S3154004DAB0000000000000000000000000000000001C -S3154004DAC0000000000000000000000000000000000C -S3154004DAD000000000000000000000000000000000FC -S3154004DAE000000000000000000000000000000000EC -S3154004DAF000000000000000000000000000000000DC -S3154004DB0000000000000000000000000000000000CB -S3154004DB1000000000000000000000000000000000BB -S3154004DB2000000000000000000000000000000000AB -S3154004DB30000000000000000000000000000000009B -S3154004DB40000000000000000000000000000000008B -S3154004DB50000000000000000000000000000000007B -S3154004DB60000000000000000000000000000000006B -S3154004DB70000000000000000000000000000000005B -S3154004DB80000000000000000000000000000000004B -S3154004DB90000000000000000000000000000000003B -S3154004DBA0000000000000000000000000000000002B -S3154004DBB0000000000000000000000000000000001B -S3154004DBC0000000000000000000000000000000000B -S3154004DBD000000000000000000000000000000000FB -S3154004DBE000000000000000000000000000000000EB -S3154004DBF000000000000000000000000000000000DB -S3154004DC0000000000000000000000000000000000CA -S3154004DC1000000000000000000000000000000000BA -S3154004DC2000000000000000000000000000000000AA -S3154004DC30000000000000000000000000000000009A -S3154004DC40000000000000000000000000000000008A -S3154004DC50000000000000000000000000000000007A -S3154004DC60000000000000000000000000000000006A -S3154004DC70000000000000000000000000000000005A -S3154004DC80000000000000000000000000000000004A -S3154004DC90000000000000000000000000000000003A -S3154004DCA0000000000000000000000000000000002A -S3154004DCB0000000000000000000000000000000001A -S3154004DCC0000000000000000000000000000000000A -S3154004DCD000000000000000000000000000000000FA -S3154004DCE000000000000000000000000000000000EA -S3154004DCF000000000000000000000000000000000DA -S3154004DD0000000000000000000000000000000000C9 -S3154004DD1000000000000000000000000000000000B9 -S3154004DD2000000000000000000000000000000000A9 -S3154004DD300000000000000000000000000000000099 -S3154004DD400000000000000000000000000000000089 -S3154004DD500000000000000000000000000000000079 -S3154004DD600000000000000000000000000000000069 -S3154004DD700000000000000000000000000000000059 -S3154004DD800000000000000000000000000000000049 -S3154004DD900000000000000000000000000000000039 -S3154004DDA00000000000000000000000000000000029 -S3154004DDB00000000000000000000000000000000019 -S3154004DDC00000000000000000000000000000000009 -S3154004DDD000000000000000000000000000000000F9 -S3154004DDE000000000000000000000000000000000E9 -S3154004DDF000000000000000000000000000000000D9 -S3154004DE0000000000000000000000000000000000C8 -S3154004DE1000000000000000000000000000000000B8 -S3154004DE2000000000000000000000000000000000A8 -S3154004DE300000000000000000000000000000000098 -S3154004DE400000000000000000000000000000000088 -S3154004DE500000000000000000000000000000000078 -S3154004DE600000000000000000000000000000000068 -S3154004DE700000000000000000000000000000000058 -S3154004DE800000000000000000000000000000000048 -S3154004DE900000000000000000000000000000000038 -S3154004DEA00000000000000000000000000000000028 -S3154004DEB00000000000000000000000000000000018 -S3154004DEC00000000000000000000000000000000008 -S3154004DED000000000000000000000000000000000F8 -S3154004DEE000000000000000000000000000000000E8 -S3154004DEF000000000000000000000000000000000D8 -S3154004DF0000000000000000000000000000000000C7 -S3154004DF1000000000000000000000000000000000B7 -S3154004DF2000000000000000000000000000000000A7 -S3154004DF300000000000000000000000000000000097 -S3154004DF400000000000000000000000000000000087 -S3154004DF500000000000000000000000000000000077 -S3154004DF600000000000000000000000000000000067 -S3154004DF700000000000000000000000000000000057 -S3154004DF800000000000000000000000000000000047 -S3154004DF900000000000000000000000000000000037 -S3154004DFA00000000000000000000000000000000027 -S3154004DFB00000000000000000000000000000000017 -S3154004DFC00000000000000000000000000000000007 -S3154004DFD000000000000000000000000000000000F7 -S3154004DFE000000000000000000000000000000000E7 -S3154004DFF000000000000000000000000000000000D7 -S3154004E00000000000000000000000000000000000C6 -S3154004E01000000000000000000000000000000000B6 -S3154004E02000000000000000000000000000000000A6 -S3154004E0300000000000000000000000000000000096 -S3154004E0400000000000000000000000000000000086 -S3154004E0500000000000000000000000000000000076 -S3154004E0600000000000000000000000000000000066 -S3154004E0700000000000000000000000000000000056 -S3154004E0800000000000000000000000000000000046 -S3154004E0900000000000000000000000000000000036 -S3154004E0A00000000000000000000000000000000026 -S3154004E0B00000000000000000000000000000000016 -S3154004E0C00000000000000000000000000000000006 -S3154004E0D000000000000000000000000000000000F6 -S3154004E0E000000000000000000000000000000000E6 -S3154004E0F000000000000000000000000000000000D6 -S3154004E10000000000000000000000000000000000C5 -S3154004E11000000000000000000000000000000000B5 -S3154004E12000000000000000000000000000000000A5 -S3154004E1300000000000000000000000000000000095 -S3154004E1400000000000000000000000000000000085 -S3154004E1500000000000000000000000000000000075 -S3154004E1600000000000000000000000000000000065 -S3154004E1700000000000000000000000000000000055 -S3154004E1800000000000000000000000000000000045 -S3154004E1900000000000000000000000000000000035 -S3154004E1A00000000000000000000000000000000025 -S3154004E1B00000000000000000000000000000000015 -S3154004E1C00000000000000000000000000000000005 -S3154004E1D000000000000000000000000000000000F5 -S3154004E1E000000000000000000000000000000000E5 -S3154004E1F000000000000000000000000000000000D5 -S3154004E20000000000000000000000000000000000C4 -S3154004E21000000000000000000000000000000000B4 -S3154004E22000000000000000000000000000000000A4 -S3154004E2300000000000000000000000000000000094 -S3154004E2400000000000000000000000000000000084 -S3154004E2500000000000000000000000000000000074 -S3154004E2600000000000000000000000000000000064 -S3154004E2700000000000000000000000000000000054 -S3154004E2800000000000000000000000000000000044 -S3154004E2900000000000000000000000000000000034 -S3154004E2A00000000000000000000000000000000024 -S3154004E2B00000000000000000000000000000000014 -S3154004E2C00000000000000000000000000000000004 -S3154004E2D000000000000000000000000000000000F4 -S3154004E2E000000000000000000000000000000000E4 -S3154004E2F000000000000000000000000000000000D4 -S3154004E30000000000000000000000000000000000C3 -S3154004E31000000000000000000000000000000000B3 -S3154004E32000000000000000000000000000000000A3 -S3154004E3300000000000000000000000000000000093 -S3154004E3400000000000000000000000000000000083 -S3154004E3500000000000000000000000000000000073 -S3154004E3600000000000000000000000000000000063 -S3154004E3700000000000000000000000000000000053 -S3154004E3800000000000000000000000000000000043 -S3154004E3900000000000000000000000000000000033 -S3154004E3A00000000000000000000000000000000023 -S3154004E3B00000000000000000000000000000000013 -S3154004E3C00000000000000000000000000000000003 -S3154004E3D000000000000000000000000000000000F3 -S3154004E3E000000000000000000000000000000000E3 -S3154004E3F000000000000000000000000000000000D3 -S3154004E40000000000000000000000000000000000C2 -S3154004E41000000000000000000000000000000000B2 -S3154004E42000000000000000000000000000000000A2 -S3154004E4300000000000000000000000000000000092 -S3154004E4400000000000000000000000000000000082 -S3154004E4500000000000000000000000000000000072 -S3154004E4600000000000000000000000000000000062 -S3154004E4700000000000000000000000000000000052 -S3154004E4800000000000000000000000000000000042 -S3154004E4900000000000000000000000000000000032 -S3154004E4A00000000000000000000000000000000022 -S3154004E4B00000000000000000000000000000000012 -S3154004E4C00000000000000000000000000000000002 -S3154004E4D000000000000000000000000000000000F2 -S3154004E4E000000000000000000000000000000000E2 -S3154004E4F000000000000000000000000000000000D2 -S3154004E50000000000000000000000000000000000C1 -S3154004E51000000000000000000000000000000000B1 -S3154004E52000000000000000000000000000000000A1 -S3154004E5300000000000000000000000000000000091 -S3154004E5400000000000000000000000000000000081 -S3154004E5500000000000000000000000000000000071 -S3154004E5600000000000000000000000000000000061 -S3154004E5700000000000000000000000000000000051 -S3154004E5800000000000000000000000000000000041 -S3154004E5900000000000000000000000000000000031 -S3154004E5A00000000000000000000000000000000021 -S3154004E5B00000000000000000000000000000000011 -S3154004E5C00000000000000000000000000000000001 -S3154004E5D000000000000000000000000000000000F1 -S3154004E5E000000000000000000000000000000000E1 -S3154004E5F000000000000000000000000000000000D1 -S3154004E60000000000000000000000000000000000C0 -S3154004E61000000000000000000000000000000000B0 -S3154004E62000000000000000000000000000000000A0 -S3154004E6300000000000000000000000000000000090 -S3154004E6400000000000000000000000000000000080 -S3154004E6500000000000000000000000000000000070 -S3154004E6600000000000000000000000000000000060 -S3154004E6700000000000000000000000000000000050 -S3154004E6800000000000000000000000000000000040 -S3154004E6900000000000000000000000000000000030 -S3154004E6A00000000000000000000000000000000020 -S3154004E6B00000000000000000000000000000000010 -S3154004E6C00000000000000000000000000000000000 -S3154004E6D000000000000000000000000000000000F0 -S3154004E6E000000000000000000000000000000000E0 -S3154004E6F000000000000000000000000000000000D0 -S3154004E70000000000000000000000000000000000BF -S3154004E71000000000000000000000000000000000AF -S3154004E720000000000000000000000000000000009F -S3154004E730000000000000000000000000000000008F -S3154004E740000000000000000000000000000000007F -S3154004E750000000000000000000000000000000006F -S3154004E760000000000000000000000000000000005F -S3154004E770000000000000000000000000000000004F -S3154004E780000000000000000000000000000000003F -S3154004E790000000000000000000000000000000002F -S3154004E7A0000000000000000000000000000000001F -S3154004E7B0000000000000000000000000000000000F -S3154004E7C000000000000000000000000000000000FF -S3154004E7D000000000000000000000000000000000EF -S3154004E7E000000000000000000000000000000000DF -S3154004E7F000000000000000000000000000000000CF -S3154004E80000000000000000000000000000000000BE -S3154004E81000000000000000000000000000000000AE -S3154004E820000000000000000000000000000000009E -S3154004E830000000000000000000000000000000008E -S3154004E840000000000000000000000000000000007E -S3154004E850000000000000000000000000000000006E -S3154004E860000000000000000000000000000000005E -S3154004E870000000000000000000000000000000004E -S3154004E880000000000000000000000000000000003E -S3154004E890000000000000000000000000000000002E -S3154004E8A0000000000000000000000000000000001E -S3154004E8B0000000000000000000000000000000000E -S3154004E8C000000000000000000000000000000000FE -S3154004E8D000000000000000000000000000000000EE -S3154004E8E000000000000000000000000000000000DE -S3154004E8F000000000000000000000000000000000CE -S3154004E90000000000000000000000000000000000BD -S3154004E91000000000000000000000000000000000AD -S3154004E920000000000000000000000000000000009D -S3154004E930000000000000000000000000000000008D -S3154004E940000000000000000000000000000000007D -S3154004E950000000000000000000000000000000006D -S3154004E960000000000000000000000000000000005D -S3154004E970000000000000000000000000000000004D -S3154004E980000000000000000000000000000000003D -S3154004E990000000000000000000000000000000002D -S3154004E9A0000000000000000000000000000000001D -S3154004E9B0000000000000000000000000000000000D -S3154004E9C000000000000000000000000000000000FD -S3154004E9D000000000000000000000000000000000ED -S3154004E9E000000000000000000000000000000000DD -S3154004E9F000000000000000000000000000000000CD -S3154004EA0000000000000000000000000000000000BC -S3154004EA1000000000000000000000000000000000AC -S3154004EA20000000000000000000000000000000009C -S3154004EA30000000000000000000000000000000008C -S3154004EA40000000000000000000000000000000007C -S3154004EA50000000000000000000000000000000006C -S3154004EA60000000000000000000000000000000005C -S3154004EA70000000000000000000000000000000004C -S3154004EA80000000000000000000000000000000003C -S3154004EA90000000000000000000000000000000002C -S3154004EAA0000000000000000000000000000000001C -S3154004EAB0000000000000000000000000000000000C -S3154004EAC000000000000000000000000000000000FC -S3154004EAD000000000000000000000000000000000EC -S3154004EAE000000000000000000000000000000000DC -S3154004EAF000000000000000000000000000000000CC -S3154004EB0000000000000000000000000000000000BB -S3154004EB1000000000000000000000000000000000AB -S3154004EB20000000000000000000000000000000009B -S3154004EB30000000000000000000000000000000008B -S3154004EB40000000000000000000000000000000007B -S3154004EB50000000000000000000000000000000006B -S3154004EB60000000000000000000000000000000005B -S3154004EB70000000000000000000000000000000004B -S3154004EB80000000000000000000000000000000003B -S3154004EB90000000000000000000000000000000002B -S3154004EBA0000000000000000000000000000000001B -S3154004EBB0000000000000000000000000000000000B -S3154004EBC000000000000000000000000000000000FB -S3154004EBD000000000000000000000000000000000EB -S3154004EBE000000000000000000000000000000000DB -S3154004EBF000000000000000000000000000000000CB -S3154004EC0000000000000000000000000000000000BA -S3154004EC1000000000000000000000000000000000AA -S3154004EC20000000000000000000000000000000009A -S3154004EC30000000000000000000000000000000008A -S3154004EC40000000000000000000000000000000007A -S3154004EC50000000000000000000000000000000006A -S3154004EC60000000000000000000000000000000005A -S3154004EC70000000000000000000000000000000004A -S3154004EC80000000000000000000000000000000003A -S3154004EC90000000000000000000000000000000002A -S3154004ECA0000000000000000000000000000000001A -S3154004ECB0000000000000000000000000000000000A -S3154004ECC000000000000000000000000000000000FA -S3154004ECD000000000000000000000000000000000EA -S3154004ECE000000000000000000000000000000000DA -S3154004ECF000000000000000000000000000000000CA -S3154004ED0000000000000000000000000000000000B9 -S3154004ED1000000000000000000000000000000000A9 -S3154004ED200000000000000000000000000000000099 -S3154004ED300000000000000000000000000000000089 -S3154004ED400000000000000000000000000000000079 -S3154004ED500000000000000000000000000000000069 -S3154004ED600000000000000000000000000000000059 -S3154004ED700000000000000000000000000000000049 -S3154004ED800000000000000000000000000000000039 -S3154004ED900000000000000000000000000000000029 -S3154004EDA00000000000000000000000000000000019 -S3154004EDB00000000000000000000000000000000009 -S3154004EDC000000000000000000000000000000000F9 -S3154004EDD000000000000000000000000000000000E9 -S3154004EDE000000000000000000000000000000000D9 -S3154004EDF000000000000000000000000000000000C9 -S3154004EE0000000000000000000000000000000000B8 -S3154004EE1000000000000000000000000000000000A8 -S3154004EE200000000000000000000000000000000098 -S3154004EE300000000000000000000000000000000088 -S3154004EE400000000000000000000000000000000078 -S3154004EE500000000000000000000000000000000068 -S3154004EE600000000000000000000000000000000058 -S3154004EE700000000000000000000000000000000048 -S3154004EE800000000000000000000000000000000038 -S3154004EE900000000000000000000000000000000028 -S3154004EEA00000000000000000000000000000000018 -S3154004EEB00000000000000000000000000000000008 -S3154004EEC000000000000000000000000000000000F8 -S3154004EED000000000000000000000000000000000E8 -S3154004EEE000000000000000000000000000000000D8 -S3154004EEF000000000000000000000000000000000C8 -S3154004EF0000000000000000000000000000000000B7 -S3154004EF1000000000000000000000000000000000A7 -S3154004EF200000000000000000000000000000000097 -S3154004EF300000000000000000000000000000000087 -S3154004EF400000000000000000000000000000000077 -S3154004EF500000000000000000000000000000000067 -S3154004EF600000000000000000000000000000000057 -S3154004EF700000000000000000000000000000000047 -S3154004EF800000000000000000000000000000000037 -S3154004EF900000000000000000000000000000000027 -S3154004EFA00000000000000000000000000000000017 -S3154004EFB00000000000000000000000000000000007 -S3154004EFC000000000000000000000000000000000F7 -S3154004EFD000000000000000000000000000000000E7 -S3154004EFE000000000000000000000000000000000D7 -S3154004EFF000000000000000000000000000000000C7 -S3154004F00000000000000000000000000000000000B6 -S3154004F01000000000000000000000000000000000A6 -S3154004F0200000000000000000000000000000000096 -S3154004F0300000000000000000000000000000000086 -S3154004F0400000000000000000000000000000000076 -S3154004F0500000000000000000000000000000000066 -S3154004F0600000000000000000000000000000000056 -S3154004F0700000000000000000000000000000000046 -S3154004F0800000000000000000000000000000000036 -S3154004F0900000000000000000000000000000000026 -S3154004F0A00000000000000000000000000000000016 -S3154004F0B00000000000000000000000000000000006 -S3154004F0C000000000000000000000000000000000F6 -S3154004F0D000000000000000000000000000000000E6 -S3154004F0E000000000000000000000000000000000D6 -S3154004F0F000000000000000000000000000000000C6 -S3154004F10000000000000000000000000000000000B5 -S3154004F11000000000000000000000000000000000A5 -S3154004F1200000000000000000000000000000000095 -S3154004F1300000000000000000000000000000000085 -S3154004F1400000000000000000000000000000000075 -S3154004F1500000000000000000000000000000000065 -S3154004F1600000000000000000000000000000000055 -S3154004F1700000000000000000000000000000000045 -S3154004F1800000000000000000000000000000000035 -S3154004F1900000000000000000000000000000000025 -S3154004F1A00000000000000000000000000000000015 -S3154004F1B00000000000000000000000000000000005 -S3154004F1C000000000000000000000000000000000F5 -S3154004F1D000000000000000000000000000000000E5 -S3154004F1E000000000000000000000000000000000D5 -S3154004F1F000000000000000000000000000000000C5 -S3154004F20000000000000000000000000000000000B4 -S3154004F21000000000000000000000000000000000A4 -S3154004F2200000000000000000000000000000000094 -S3154004F2300000000000000000000000000000000084 -S3154004F2400000000000000000000000000000000074 -S3154004F2500000000000000000000000000000000064 -S3154004F2600000000000000000000000000000000054 -S3154004F2700000000000000000000000000000000044 -S3154004F2800000000000000000000000000000000034 -S3154004F2900000000000000000000000000000000024 -S3154004F2A00000000000000000000000000000000014 -S3154004F2B00000000000000000000000000000000004 -S3154004F2C000000000000000000000000000000000F4 -S3154004F2D000000000000000000000000000000000E4 -S3154004F2E000000000000000000000000000000000D4 -S3154004F2F000000000000000000000000000000000C4 -S3154004F30000000000000000000000000000000000B3 -S3154004F31000000000000000000000000000000000A3 -S3154004F3200000000000000000000000000000000093 -S3154004F3300000000000000000000000000000000083 -S3154004F3400000000000000000000000000000000073 -S3154004F3500000000000000000000000000000000063 -S3154004F3600000000000000000000000000000000053 -S3154004F3700000000000000000000000000000000043 -S3154004F3800000000000000000000000000000000033 -S3154004F3900000000000000000000000000000000023 -S3154004F3A00000000000000000000000000000000013 -S3154004F3B00000000000000000000000000000000003 -S3154004F3C000000000000000000000000000000000F3 -S3154004F3D000000000000000000000000000000000E3 -S3154004F3E000000000000000000000000000000000D3 -S3154004F3F000000000000000000000000000000000C3 -S3154004F40000000000000000000000000000000000B2 -S3154004F41000000000000000000000000000000000A2 -S3154004F4200000000000000000000000000000000092 -S3154004F4300000000000000000000000000000000082 -S3154004F4400000000000000000000000000000000072 -S3154004F4500000000000000000000000000000000062 -S3154004F4600000000000000000000000000000000052 -S3154004F4700000000000000000000000000000000042 -S3154004F4800000000000000000000000000000000032 -S3154004F4900000000000000000000000000000000022 -S3154004F4A00000000000000000000000000000000012 -S3154004F4B00000000000000000000000000000000002 -S3154004F4C000000000000000000000000000000000F2 -S3154004F4D000000000000000000000000000000000E2 -S3154004F4E000000000000000000000000000000000D2 -S3154004F4F000000000000000000000000000000000C2 -S3154004F50000000000000000000000000000000000B1 -S3154004F51000000000000000000000000000000000A1 -S3154004F5200000000000000000000000000000000091 -S3154004F5300000000000000000000000000000000081 -S3154004F5400000000000000000000000000000000071 -S3154004F5500000000000000000000000000000000061 -S3154004F5600000000000000000000000000000000051 -S3154004F5700000000000000000000000000000000041 -S3154004F5800000000000000000000000000000000031 -S3154004F5900000000000000000000000000000000021 -S3154004F5A00000000000000000000000000000000011 -S3154004F5B00000000000000000000000000000000001 -S3154004F5C000000000000000000000000000000000F1 -S3154004F5D000000000000000000000000000000000E1 -S3154004F5E000000000000000000000000000000000D1 -S3154004F5F000000000000000000000000000000000C1 -S3154004F60000000000000000000000000000000000B0 -S3154004F61000000000000000000000000000000000A0 -S3154004F6200000000000000000000000000000000090 -S3154004F6300000000000000000000000000000000080 -S3154004F6400000000000000000000000000000000070 -S3154004F6500000000000000000000000000000000060 -S3154004F6600000000000000000000000000000000050 -S3154004F6700000000000000000000000000000000040 -S3154004F6800000000000000000000000000000000030 -S3154004F6900000000000000000000000000000000020 -S3154004F6A00000000000000000000000000000000010 -S3154004F6B00000000000000000000000000000000000 -S3154004F6C000000000000000000000000000000000F0 -S3154004F6D000000000000000000000000000000000E0 -S3154004F6E000000000000000000000000000000000D0 -S3154004F6F000000000000000000000000000000000C0 -S3154004F70000000000000000000000000000000000AF -S3154004F710000000000000000000000000000000009F -S3154004F720000000000000000000000000000000008F -S3154004F730000000000000000000000000000000007F -S3154004F740000000000000000000000000000000006F -S3154004F750000000000000000000000000000000005F -S3154004F760000000000000000000000000000000004F -S3154004F770000000000000000000000000000000003F -S3154004F780000000000000000000000000000000002F -S3154004F790000000000000000000000000000000001F -S3154004F7A0000000000000000000000000000000000F -S3154004F7B000000000000000000000000000000000FF -S3154004F7C000000000000000000000000000000000EF -S3154004F7D000000000000000000000000000000000DF -S3154004F7E000000000000000000000000000000000CF -S3154004F7F000000000000000000000000000000000BF -S3154004F80000000000000000000000000000000000AE -S3154004F810000000000000000000000000000000009E -S3154004F820000000000000000000000000000000008E -S3154004F830000000000000000000000000000000007E -S3154004F840000000000000000000000000000000006E -S3154004F850000000000000000000000000000000005E -S3154004F860000000000000000000000000000000004E -S3154004F870000000000000000000000000000000003E -S3154004F880000000000000000000000000000000002E -S3154004F890000000000000000000000000000000001E -S3154004F8A0000000000000000000000000000000000E -S3154004F8B000000000000000000000000000000000FE -S3154004F8C000000000000000000000000000000000EE -S3154004F8D000000000000000000000000000000000DE -S3154004F8E000000000000000000000000000000000CE -S3154004F8F000000000000000000000000000000000BE -S3154004F90000000000000000000000000000000000AD -S3154004F910000000000000000000000000000000009D -S3154004F920000000000000000000000000000000008D -S3154004F930000000000000000000000000000000007D -S3154004F940000000000000000000000000000000006D -S3154004F950000000000000000000000000000000005D -S3154004F960000000000000000000000000000000004D -S3154004F970000000000000000000000000000000003D -S3154004F980000000000000000000000000000000002D -S3154004F990000000000000000000000000000000001D -S3154004F9A0000000000000000000000000000000000D -S3154004F9B000000000000000000000000000000000FD -S3154004F9C000000000000000000000000000000000ED -S3154004F9D000000000000000000000000000000000DD -S3154004F9E000000000000000000000000000000000CD -S3154004F9F000000000000000000000000000000000BD -S3154004FA0000000000000000000000000000000000AC -S3154004FA10000000000000000000000000000000009C -S3154004FA20000000000000000000000000000000008C -S3154004FA30000000000000000000000000000000007C -S3154004FA40000000000000000000000000000000006C -S3154004FA50000000000000000000000000000000005C -S3154004FA60000000000000000000000000000000004C -S3154004FA70000000000000000000000000000000003C -S3154004FA80000000000000000000000000000000002C -S3154004FA90000000000000000000000000000000001C -S3154004FAA0000000000000000000000000000000000C -S3154004FAB000000000000000000000000000000000FC -S3154004FAC000000000000000000000000000000000EC -S3154004FAD000000000000000000000000000000000DC -S3154004FAE000000000000000000000000000000000CC -S3154004FAF000000000000000000000000000000000BC -S3154004FB0000000000000000000000000000000000AB -S3154004FB10000000000000000000000000000000009B -S3154004FB20000000000000000000000000000000008B -S3154004FB30000000000000000000000000000000007B -S3154004FB40000000000000000000000000000000006B -S3154004FB50000000000000000000000000000000005B -S3154004FB60000000000000000000000000000000004B -S3154004FB70000000000000000000000000000000003B -S3154004FB80000000000000000000000000000000002B -S3154004FB90000000000000000000000000000000001B -S3154004FBA0000000000000000000000000000000000B -S3154004FBB000000000000000000000000000000000FB -S3154004FBC000000000000000000000000000000000EB -S3154004FBD000000000000000000000000000000000DB -S3154004FBE000000000000000000000000000000000CB -S3154004FBF000000000000000000000000000000000BB -S3154004FC0000000000000000000000000000000000AA -S3154004FC10000000000000000000000000000000009A -S3154004FC20000000000000000000000000000000008A -S3154004FC30000000000000000000000000000000007A -S3154004FC40000000000000000000000000000000006A -S3154004FC50000000000000000000000000000000005A -S3154004FC60000000000000000000000000000000004A -S3154004FC70000000000000000000000000000000003A -S3154004FC80000000000000000000000000000000002A -S3154004FC90000000000000000000000000000000001A -S3154004FCA0000000000000000000000000000000000A -S3154004FCB000000000000000000000000000000000FA -S3154004FCC000000000000000000000000000000000EA -S3154004FCD000000000000000000000000000000000DA -S3154004FCE000000000000000000000000000000000CA -S3154004FCF000000000000000000000000000000000BA -S3154004FD0000000000000000000000000000000000A9 -S3154004FD100000000000000000000000000000000099 -S3154004FD200000000000000000000000000000000089 -S3154004FD300000000000000000000000000000000079 -S3154004FD400000000000000000000000000000000069 -S3154004FD500000000000000000000000000000000059 -S3154004FD600000000000000000000000000000000049 -S3154004FD700000000000000000000000000000000039 -S3154004FD800000000000000000000000000000000029 -S3154004FD900000000000000000000000000000000019 -S3154004FDA00000000000000000000000000000000009 -S3154004FDB000000000000000000000000000000000F9 -S3154004FDC000000000000000000000000000000000E9 -S3154004FDD000000000000000000000000000000000D9 -S3154004FDE000000000000000000000000000000000C9 -S3154004FDF000000000000000000000000000000000B9 -S3154004FE0000000000000000000000000000000000A8 -S3154004FE100000000000000000000000000000000098 -S3154004FE200000000000000000000000000000000088 -S3154004FE300000000000000000000000000000000078 -S3154004FE400000000000000000000000000000000068 -S3154004FE500000000000000000000000000000000058 -S3154004FE600000000000000000000000000000000048 -S3154004FE700000000000000000000000000000000038 -S3154004FE800000000000000000000000000000000028 -S3154004FE900000000000000000000000000000000018 -S3154004FEA00000000000000000000000000000000008 -S3154004FEB000000000000000000000000000000000F8 -S3154004FEC000000000000000000000000000000000E8 -S3154004FED000000000000000000000000000000000D8 -S3154004FEE000000000000000000000000000000000C8 -S3154004FEF000000000000000000000000000000000B8 -S3154004FF0000000000000000000000000000000000A7 -S3154004FF100000000000000000000000000000000097 -S3154004FF200000000000000000000000000000000087 -S3154004FF300000000000000000000000000000000077 -S3154004FF400000000000000000000000000000000067 -S3154004FF500000000000000000000000000000000057 -S3154004FF600000000000000000000000000000000047 -S3154004FF700000000000000000000000000000000037 -S3154004FF800000000000000000000000000000000027 -S3154004FF900000000000000000000000000000000017 -S3154004FFA00000000000000000000000000000000007 -S3154004FFB000000000000000000000000000000000F7 -S3154004FFC000000000000000000000000000000000E7 -S3154004FFD000000000000000000000000000000000D7 -S3154004FFE000000000000000000000000000000000C7 -S3154004FFF000000000000000000000000000000000B7 -S3154005000000000002000000030000000000000000A0 -S315400500100000000100000000FFFFFFFE0000000396 -S3154005002055555554FFFFFFFE0000000355555554E1 -S31540050030700FFFFE00000007100249240000000073 -S315400500400000000000000000000000020000000360 -S315400500500000000000000003FFFFFFFEFFFFFFFF5B -S3154005006000000002FFFFFFFD000000000000000049 -S31540050070000000010000000000000000FFFFFFFF38 -S315400500800000000000000001FFFFFFFFFFFFFFFF2C -S31540050090FFFFFFFF00000001FFFFFFFFFFFFFFFE21 -S315400500A00000000300000000FFFFFFFEFFFFFFFD0D -S315400500B000000000000000090000000700000001E4 -S315400500C0FFFFFFF700000002FFFFFFFCFFFFFFF801 -S315400500D000000002FFFFFFFCFFFFFFF8FFFFFFFCEC -S315400500E00000000200000008FFFFFFFCFFFFFFFEC7 -S315400500F0FFFFFFF8FFFFFFF800000001FFFFFFF8D5 -S31540050100FFFFFFF7000000000000000B00000002A3 -S31540050110000000050000002F000000020000001747 -S3154005012000003039000002A700000012FFFF076CEF -S315400501300000004DFFFFFCC600003039FFFFFD59AA -S31540050140FFFFFFEEFFFF076CFFFFFFB30000033A1B -S3154005015000000091FFFFE84100000000FFFFFD841D -S31540050160FFFED02F000000000000F6FA006E498120 -S315400501700000000000000000000000000000000034 -S31540050180FFFFF0000000000200000003000000062B -S3154005019000000002FFFFFFFDFFFFFFFA0000000021 -S315400501A0000000010000000000000000FFFFFFFF07 -S315400501B00000000000000001FFFFFFFFFFFFFFFFFB -S315400501C0FFFFFFFF00000001FFFFFFFFFFFFFFFEF0 -S315400501D000000003FFFFFFFAFFFFFFFEFFFFFFFDE5 -S315400501E000000006000000000000000000000009B5 -S315400501F000000000000000000000000000000000B4 -S31540050200000000000000000100000002000000039D -S315400502100000000000000000000000000000000093 -S31540050220000000004005050C400505D8400506A41C -S315400502300000000000000000000000000000000073 -S315400502400000000000000000000000000000000063 -S31540050250000000004001B5800000000000000000DD -S315400502600000000000000000000000000000000043 -S315400502700000000000000000000000000000000033 -S315400502800000000000000000000000000000000023 -S315400502900000000000000000000000000000000013 -S315400502A00000000000000000000000000000000003 -S315400502B000000000000000000000000000000000F3 -S315400502C000000000000000000000000000000001E2 -S315400502D0330EABCD1234E66DDEEC0005000B0000A7 -S315400502E000000000000000000000000000000000C3 -S315400502F000000000000000000000000000000000B3 -S3154005030000000000000000000000000000000000A2 -S315400503100000000000000000000000000000000092 -S315400503200000000000000000000000000000000082 -S315400503300000000000000000000000000000000072 -S315400503400000000000000000000000000000000062 -S315400503500000000000000000000000000000000052 -S315400503600000000000000000000000000000000042 -S315400503700000000000000000000000000000000032 -S315400503800000000000000000000000000000000022 -S315400503900000000000000000000000000000000012 -S315400503A00000000000000000000000000000000002 -S315400503B000000000000000000000000000000000F2 -S315400503C000000000000000000000000000000000E2 -S315400503D000000000000000000000000000000000D2 -S315400503E000000000000000000000000000000000C2 -S315400503F000000000000000000000000000000000B2 -S3154005040000000000000000000000000000000000A1 -S315400504100000000000000000000000000000000091 -S315400504200000000000000000000000000000000081 -S315400504300000000000000000000000000000000071 -S315400504400000000000000000000000000000000061 -S315400504500000000000000000000000000000000051 -S315400504600000000000000000000000000000000041 -S315400504700000000000000000000000000000000031 -S315400504800000000000000000000000000000000021 -S315400504900000000000000000000000000000000011 -S315400504A00000000000000000000000000000000001 -S315400504B000000000000000000000000000000000F1 -S315400504C000000000000000000000000000000000E1 -S315400504D000000000000000000000000000000000D1 -S315400504E000000000000000000000000000000000C1 -S315400504F000000000000000000000000000000000B1 -S3154005050000000000000000000000000000000000A0 -S315400505100000000000000000000000000000000090 -S315400505200000000000000000000000000000000080 -S315400505300000000000000000000000000000000070 -S315400505400000000000000000000000000000000060 -S315400505500000000000000000000000000000000050 -S315400505600000000000000000000000000000000040 -S315400505700000000000000000000000000000000030 -S315400505800000000000000000000000000000000020 -S315400505900000000000000000000000000000000010 -S315400505A00000000000000000000000000000000000 -S315400505B000000000000000000000000000000000F0 -S315400505C000000000000000000000000000000000E0 -S315400505D000000000000000000000000000000000D0 -S315400505E000000000000000000000000000000000C0 -S315400505F000000000000000000000000000000000B0 -S31540050600000000000000000000000000000000009F -S31540050610000000000000000000000000000000008F -S31540050620000000000000000000000000000000007F -S31540050630000000000000000000000000000000006F -S31540050640000000000000000000000000000000005F -S31540050650000000000000000000000000000000004F -S31540050660000000000000000000000000000000003F -S31540050670000000000000000000000000000000002F -S31540050680000000000000000000000000000000001F -S31540050690000000000000000000000000000000000F -S315400506A000000000000000000000000000000000FF -S315400506B000000000000000000000000000000000EF -S315400506C000000000000000000000000000000000DF -S315400506D000000000000000000000000000000000CF -S315400506E000000000000000000000000000000000BF -S315400506F000000000000000000000000000000000AF -S31540050700000000000000000000000000000000009E -S31540050710000000000000000000000000000000008E -S31540050720000000000000000000000000000000007E -S31540050730000000000000000000000000000000006E -S31540050740000000000000000000000000000000005E -S31540050750000000000000000000000000000000004E -S31540050760000000000000000000000000000000003E -S315400507704005022000000000FFFFFFFF00020000C9 -S315400507800000000000000000400507804005078086 -S3154005079040050788400507884005079040050790AE -S315400507A04005079840050798400507A0400507A05E -S315400507B0400507A8400507A8400507B0400507B00E -S315400507C0400507B8400507B8400507C0400507C0BE -S315400507D0400507C8400507C8400507D0400507D06E -S315400507E0400507D8400507D8400507E0400507E01E -S315400507F0400507E8400507E8400507F0400507F0CE -S31540050800400507F8400507F840050800400508007B -S315400508104005080840050808400508104005081029 -S3154005082040050818400508184005082040050820D9 -S315400508304005082840050828400508304005083089 -S315400508404005083840050838400508404005084039 -S3154005085040050848400508484005085040050850E9 -S315400508604005085840050858400508604005086099 -S315400508704005086840050868400508704005087049 -S3154005088040050878400508784005088040050880F9 -S3154005089040050888400508884005089040050890A9 -S315400508A04005089840050898400508A0400508A059 -S315400508B0400508A8400508A8400508B0400508B009 -S315400508C0400508B8400508B8400508C0400508C0B9 -S315400508D0400508C8400508C8400508D0400508D069 -S315400508E0400508D8400508D8400508E0400508E019 -S315400508F0400508E8400508E8400508F0400508F0C9 -S31540050900400508F8400508F8400509004005090076 -S315400509104005090840050908400509104005091024 -S3154005092040050918400509184005092040050920D4 -S315400509304005092840050928400509304005093084 -S315400509404005093840050938400509404005094034 -S3154005095040050948400509484005095040050950E4 -S315400509604005095840050958400509604005096094 -S315400509704005096840050968400509704005097044 -S3154005098040050978400509784005098040050980F4 -S3154005099040050988400509884005099040050990A4 -S315400509A04005099840050998400509A0400509A054 -S315400509B0400509A8400509A8400509B0400509B004 -S315400509C0400509B8400509B8400509C0400509C0B4 -S315400509D0400509C8400509C8400509D0400509D064 -S315400509E0400509D8400509D8400509E0400509E014 -S315400509F0400509E8400509E8400509F0400509F0C4 -S31540050A00400509F8400509F840050A0040050A0071 -S31540050A1040050A0840050A0840050A1040050A101F -S31540050A2040050A1840050A1840050A2040050A20CF -S31540050A3040050A2840050A2840050A3040050A307F -S31540050A4040050A3840050A3840050A4040050A402F -S31540050A5040050A4840050A4840050A5040050A50DF -S31540050A6040050A5840050A5840050A6040050A608F -S31540050A7040050A6840050A6840050A7040050A703F -S31540050A8040050A7840050A7840050A8040050A80EF -S31540050A9040050A8840050A8840050A9040050A909F -S31540050AA040050A9840050A9840050AA040050AA04F -S31540050AB040050AA840050AA840050AB040050AB0FF -S31540050AC040050AB840050AB840050AC040050AC0AF -S31540050AD040050AC840050AC840050AD040050AD05F -S31540050AE040050AD840050AD840050AE040050AE00F -S31540050AF040050AE840050AE840050AF040050AF0BF -S31540050B0040050AF840050AF840050B0040050B006C -S31540050B1040050B0840050B0840050B1040050B101A -S31540050B2040050B1840050B1840050B2040050B20CA -S31540050B3040050B2840050B2840050B3040050B307A -S31540050B4040050B3840050B3840050B4040050B402A -S31540050B5040050B4840050B4840050B5040050B50DA -S31540050B6040050B5840050B5840050B6040050B608A -S31540050B7040050B6840050B6840050B7040050B703A -S31540050B8040050B7840050B780000000040050B88B2 -S31540050B900000000000000000000000000000000208 -S31540050BA000000000000000000000000000000000FA -S31540050BB000000000000000000000000000000000EA -S31540050BC000000000000000000000000000000000DA -S31540050BD000000000000000000000000000000000CA -S31540050BE000000000000000000000000000000000BA -S31540050BF000000000000000000000000000000000AA -S31540050C000000000000000000000000000000000099 -S31540050C100000000000000000000000000000000089 -S31540050C200000000000000000000000000000000079 -S31540050C3080000100000000080000000700000006D3 -S31540050C40000000030000000000000000FFFF8AD0FE -S30940050C5080000310C2 -S70540000000BA diff --git a/designs/leon3-ge-hpe-midi-ep2s180/systest.c b/designs/leon3-ge-hpe-midi-ep2s180/systest.c deleted file mode 100644 index 100c2697..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/systest.c +++ /dev/null @@ -1,10 +0,0 @@ - -main() - -{ - report_start(); - - base_test(); - - report_end(); -} diff --git a/designs/leon3-ge-hpe-midi-ep2s180/testbench.vhd b/designs/leon3-ge-hpe-midi-ep2s180/testbench.vhd deleted file mode 100644 index 45bd0b32..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/testbench.vhd +++ /dev/null @@ -1,733 +0,0 @@ ------------------------------------------------------------------------------ --- LEON3 Demonstration design test bench --- Copyright (C) 2004 Jiri Gaisler, Gaisler Research ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; - -library gaisler; -use gaisler.libdcom.all; -use gaisler.sim.all; ---use gaisler.jtagtst.all; - -library techmap; -use techmap.gencomp.all; - -library micron; -use micron.components.all; - -library gleichmann; -use gleichmann.hpi.all; --- modified version of the JTAG test package --- use gleichmann.jtagtst.all; - -library work; -use work.debug.all; -use work.config.all; -- configuration - - -entity testbench is - generic ( - fabtech : integer := CFG_FABTECH; - memtech : integer := CFG_MEMTECH; - padtech : integer := CFG_PADTECH; - clktech : integer := CFG_CLKTECH; - disas : integer := CFG_DISAS; -- Enable disassembly to console - dbguart : integer := CFG_DUART; -- Print UART on console - pclow : integer := CFG_PCLOW; - - clkperiod : integer := 25; -- system clock period - romwidth : integer := 32; -- rom data width (8/32) - romdepth : integer := 16; -- rom address depth - sramwidth : integer := 32; -- ram data width (8/16/32) - sramdepth : integer := 16; -- ram address depth - srambanks : integer := 2); -- number of ram banks - port ( - pci_rst : in std_logic; -- PCI bus - pci_clk : in std_logic; - pci_gnt : in std_logic; - pci_idsel : in std_logic; - pci_lock : inout std_logic; - pci_ad : inout std_logic_vector(31 downto 0); - pci_cbe : inout std_logic_vector(3 downto 0); - pci_frame : inout std_logic; - pci_irdy : inout std_logic; - pci_trdy : inout std_logic; - pci_devsel : inout std_logic; - pci_stop : inout std_logic; - pci_perr : inout std_logic; - pci_par : inout std_logic; - pci_req : inout std_logic; - pci_serr : inout std_logic; - pci_host : in std_logic; - pci_66 : in std_logic); -end testbench; - - -architecture behav of testbench is - - constant promfile : string := "prom.srec"; -- rom contents - constant sramfile : string := "sram.srec"; -- ram contents - constant sdramfile : string := "sdram.srec"; -- sdram contents - - - signal clk : std_logic := '0'; - signal Rst : std_logic := '0'; -- Reset - constant ct : integer := clkperiod/2; - - signal address : std_logic_vector(27 downto 0); - signal data : std_logic_vector(31 downto 0); - - signal ramsn : std_logic_vector(4 downto 0); - signal ramoen : std_logic_vector(4 downto 0); - signal rwen : std_logic_vector(3 downto 0); - signal rwenx : std_logic_vector(3 downto 0); - signal romsn : std_logic_vector(1 downto 0); - signal iosn : std_logic; - signal oen : std_logic; - signal read : std_logic; - signal writen : std_logic; - signal brdyn : std_logic; - signal bexcn : std_logic; - signal wdog : std_logic; - signal dsuen, dsutx, dsurx, dsubre, dsuact : std_logic; - signal dsurst : std_logic; - signal test : std_logic; - - signal error : std_logic; - alias errorn : std_logic is error; - - signal pio : std_logic_vector(15 downto 0); - signal GND : std_logic := '0'; - signal VCC : std_logic := '1'; - signal NC : std_logic := 'Z'; - signal clk2 : std_logic := '1'; - --- sdram - signal sdclk : std_logic_vector(1 downto 0); --- signal sdclk : std_logic; --- alias sdclk : std_logic is sd_clk(0); - signal sdcke : std_logic_vector (1 downto 0); -- clk en - signal sa : std_logic_vector(14 downto 0); - signal sd : std_logic_vector(63 downto 0); - signal sddqm : std_logic_vector (7 downto 0); -- data i/o mask - signal sdwen : std_logic; -- write en - signal sdcasn : std_logic; -- col addr stb - signal sdrasn : std_logic; -- row addr stb - signal sdcsn : std_logic_vector (1 downto 0); -- chip sel - - signal plllock : std_logic; - --- pulled up high, therefore std_logic - signal txd1, rxd1 : std_logic; - - signal etx_clk, erx_clk, erx_dv, erx_er, erx_col, erx_crs, etx_en, etx_er : std_logic := '0'; - signal erxd, etxd : std_logic_vector(3 downto 0) := (others => '0'); - signal emdc, emdio : std_logic; --dummy signal for the mdc,mdio in the phy which is not used - - signal emddis : std_logic; - signal epwrdwn : std_logic; - signal ereset : std_logic; - signal esleep : std_logic; - signal epause : std_logic; - signal tp_out : std_logic_vector(7 downto 0); - signal led_cfg : std_logic_vector(2 downto 0); - - constant lresp : boolean := false; - - - --- Added for Hpe - - signal resoutn : std_logic; - signal disrams : std_logic; - signal rben : std_logic_vector(3 downto 0); - signal sdclk0 : std_logic; - signal sdclk1 : std_logic; - signal sdba0 : std_logic; -- bank address zero - signal sdba1 : std_logic; -- bank address one - signal dsubren : std_logic; - signal dsuactn : std_logic; - signal bufdir : std_logic; - signal bufoen : std_logic; - signal s_sddqm : std_logic_vector (3 downto 0); - - signal HRESETn : std_logic; - signal HSEL : std_logic; - signal HREADY_ba : std_logic; -- hready input signal - signal HADDR : std_logic_vector(31 downto 0); - signal HWRITE : std_logic; - signal HTRANS : std_logic_vector(1 downto 0); - signal HSIZE : std_logic_vector(2 downto 0); - signal HBURST : std_logic_vector(2 downto 0); - signal HWDATA : std_logic_vector(31 downto 0); - signal HMASTER : std_logic_vector(3 downto 0); - signal HMASTLOCK : std_logic; - signal HREADY : std_logic; - signal HRESP : std_logic_vector(1 downto 0); - signal HRDATA : std_logic_vector(31 downto 0); - signal HSPLIT : std_logic_vector(15 downto 0); - - signal clk_ctrl : std_logic_vector(1 downto 0); -- cpld - signal CAN_RXD : std_logic; - signal CAN_TXD : std_logic; - signal CAN_STB : std_logic; - signal CAN_TXD_delayed : std_logic := '1'; - signal gpio : std_logic_vector(7 downto 0); - - subtype sd_address_range is natural range 24 downto 12; - subtype sd_ba_range is natural range 26 downto 25; - - --------------------------------------------------------------------------------------- - -- HPI SIGNALS - --------------------------------------------------------------------------------------- - signal hpiaddr : std_logic_vector(1 downto 0); - signal hpidata : std_logic_vector(15 downto 0); - signal hpicsn : std_logic; - signal hpiwrn : std_logic; - signal hpiint : std_logic; - signal hpirdn : std_logic; --- signal hpirdata : std_logic_vector(15 downto 0); --- signal hpiwdata : std_logic_vector(15 downto 0); - --- signal dbg_rdata : std_logic_vector(15 downto 0); --- signal dbg_wdata : std_logic_vector(15 downto 0); ---------------------------------------------------------------------------------------- - -component hpi_ram - generic ( - abits : integer; - dbits : integer); - port ( - clk : in std_logic; - address : in std_logic_vector(1 downto 0); - datain : in std_logic_vector(dbits-1 downto 0); - dataout : out std_logic_vector(dbits-1 downto 0); - writen : in std_logic; - readn : in std_logic; - csn : in std_logic); -end component; - ------------------------------------------------------------------------------------------ --- IO SECTION ------------------------------------------------------------------------------------------ - signal dsw : std_logic_vector(7 downto 0) := "00000001"; - signal led : std_logic_vector(7 downto 0); - signal sevensegment : std_logic_vector(9 downto 0); - signal tst_col : std_logic_vector(2 downto 0); - signal tst_row : std_logic_vector(3 downto 0); - signal lcd_enable : std_logic; - signal lcd_regsel : std_logic; - signal lcd_rw : std_logic; - - signal ac97_bit_clk : std_logic := '0'; - signal ac97_sync : std_logic; - signal ac97_sdata_out : std_logic; - signal ac97_sdata_in : std_logic; - signal ac97_resetn : std_logic; - signal ac97_ext_clk : std_logic; - - signal vga_clk : std_logic; - signal vga_syncn : std_logic; - signal vga_blankn : std_logic; - signal vga_vsync : std_logic; - signal vga_hsync : std_logic; - signal vga_rd : std_logic_vector(7 downto 0); - signal vga_gr : std_logic_vector(7 downto 0); - signal vga_bl : std_logic_vector(7 downto 0); - - signal ps2_clk : std_logic_vector(1 downto 0); - signal ps2_data : std_logic_vector(1 downto 0); - - signal exp_datao : std_logic_vector(19 downto 0); - signal exp_datai : std_logic_vector(19 downto 0); - - signal cb4_datao : std_logic_vector(35 downto 0); - signal cb4_datai : std_logic_vector(35 downto 0); - - signal sdcard_cs : std_logic; - signal sdcard_di : std_logic; - signal sdcard_sclk : std_logic; - signal sdcard_do : std_logic; - - component spi_slave_model - port( - csn : in std_logic; - sck : in std_logic; - di : in std_logic; - do : out std_logic - ); - end component; - ------------------------------------------------------------------------------------------ --- USB DEBUG LINK ------------------------------------------------------------------------------------------ - signal usb_clkout : std_logic; - signal usb_d : std_logic_vector(15 downto 0); - signal usb_linestate : std_logic_vector(1 downto 0); - signal usb_opmode : std_logic_vector(1 downto 0); - signal usb_reset : std_logic; - signal usb_rxactive : std_logic; - signal usb_rxerror : std_logic; - signal usb_rxvalid : std_logic; - signal usb_suspend : std_logic; - signal usb_termsel : std_logic; - signal usb_txready : std_logic; - signal usb_txvalid : std_logic; - signal usb_validh : std_logic; - signal usb_xcvrsel : std_logic; - signal usb_vbus : std_logic; - signal usb_dbus16 : std_logic; - signal usb_unidir : std_logic; - ------------------------------------------------------------------------------------------ --- ADC/DAC ------------------------------------------------------------------------------------------ - signal adc_dout : std_logic; - signal adc_ain : std_logic; - signal dac_out : std_logic; - --------------------------------------------------------------------------------- --- MISC TEST BENCH SIGNALS --------------------------------------------------------------------------------- - signal clock_cycle_counter : integer; --- UART test bench module - signal rts_internal : std_logic; - signal cts_internal : std_logic; - -begin - - dsubren <= not dsubre; - disrams <= '0'; - --- clock and reset - - clk <= not clk after ct * 1 ns; - rst <= '1', '0' after 10 ns, '1' after 100 ns; - - dsuen <= '1'; dsubre <= '0'; rxd1 <= 'H'; - led_cfg <= "011"; -- put the phy in base100f mode - - clk_count_seq : process (rst, clk) is - begin - if rst = '0' then - clock_cycle_counter <= 0; - elsif rising_edge(clk) then - clock_cycle_counter <= clock_cycle_counter + 1; - end if; - end process; - - d3 : entity work.leon3hpe --- generic map ( --- fabtech => fabtech, --- memtech => memtech, --- padtech => padtech, --- clktech => clktech, --- disas => disas, --- dbguart => dbguart, --- pclow => pclow) - port map ( - resetn => rst, - resoutn => resoutn, - clk => clk, --- pllref => clk, - errorn => errorn, - address => address, - data => data, - - sdclk => sdclk, - sdcke => sdcke, - sdaddr => sa(12 downto 0), - sddq => sd, - sddqm => sddqm, -- topmost bits are undriven - sdwen => sdwen, - sdcasn => sdcasn, - sdrasn => sdrasn, - sdcsn => sdcsn, - sdba => sa(14 downto 13), - - dsutx => dsutx, - dsurx => dsurx, --- dsuen => dsuen, - dsubre => dsubre, - dsuactn => dsuactn, - - txd1 => txd1, - rxd1 => rxd1, - --- gpio => gpio, - - ramsn => ramsn, - ramoen => ramoen, - oen => oen, - rben => rben, - rwen => rwen, - writen => writen, - read => read, - iosn => iosn, - romsn => romsn, - - emdio => emdio, - etx_clk => etx_clk, - erx_clk => erx_clk, - erxd => erxd, - erx_dv => erx_dv, - erx_er => erx_er, - erx_col => erx_col, - erx_crs => erx_crs, - etxd => etxd, - etx_en => etx_en, - etx_er => etx_er, - emdc => emdc, - - can_txd => can_txd, - can_rxd => can_rxd, - can_stb => can_stb, - - dsw => dsw, --- led => led, - sevensegment => sevensegment, - tst_col => tst_col, - tst_row => tst_row, - lcd_enable => lcd_enable, - lcd_regsel => lcd_regsel, - lcd_rw => lcd_rw, - - ps2_clk => ps2_clk, - ps2_data => ps2_data, - exp_datao => exp_datao, - exp_datai => exp_datai, - - ----------------------------------------------------------------------------------- - -- FOR TEST PURPOSES WITH THE AHB2HPI CORE - ----------------------------------------------------------------------------------- - - hpiint => gnd, - - hpiaddr => hpiaddr, - hpidata => hpidata, - hpicsn => hpicsn, - hpiwrn => hpiwrn, - hpirdn => hpirdn, - - vga_clk => vga_clk, - vga_syncn => vga_syncn, - vga_blankn => vga_blankn, - vga_vsync => vga_vsync, - vga_hsync => vga_hsync, - vga_rd => vga_rd, - vga_gr => vga_gr, - vga_bl => vga_bl, - - ac97_bit_clk => ac97_bit_clk, - ac97_sync => ac97_sync, - ac97_sdata_out => ac97_sdata_out, - ac97_sdata_in => ac97_sdata_in, - ac97_resetn => ac97_resetn, --- ac97_ext_clk => ac97_ext_clk - - usb_clkout => usb_clkout, - usb_d => usb_d, - usb_linestate => usb_linestate, - usb_opmode => usb_opmode, --- usb_reset => usb_reset, - usb_rxactive => usb_rxactive, - usb_rxerror => usb_rxerror, - usb_rxvalid => usb_rxvalid, - usb_suspend => usb_suspend, - usb_termsel => usb_termsel, - usb_txready => usb_txready, - usb_txvalid => usb_txvalid, - usb_validh => usb_validh, - usb_xcvrsel => usb_xcvrsel, - usb_vbus => usb_vbus, - usb_dbus16 => usb_dbus16, - usb_unidir => usb_unidir, - - adc_dout => adc_dout, - adc_ain => adc_ain, - dac_out => dac_out, - - sdcard_cs => sdcard_cs, - sdcard_di => sdcard_di, - sdcard_sclk => sdcard_sclk, - sdcard_do => sdcard_do - - ); - - - spi_slave_model_1 : spi_slave_model - port map ( - csn => sdcard_cs, - sck => sdcard_sclk, - di => sdcard_di, - do => sdcard_do); - - - hpi_ram_1 : hpi_ram - generic map ( - abits => 10, - dbits => 16) - port map ( - clk => clk, - address => hpiaddr, - datain => hpidata, - dataout => hpidata, - writen => hpiwrn, - readn => hpirdn, - csn => hpicsn); - - - sd0 : if (CFG_MCTRL_SDEN = 1) and (CFG_MCTRL_SEPBUS = 0) generate - u0 : mt48lc16m16a2 generic map (index => 0, fname => sdramfile) - port map( - Dq => data(31 downto 16), Addr => address(14 downto 2), - Ba => address(16 downto 15), Clk => sdclk(0), Cke => sdcke(0), - Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(3 downto 2)); - u1 : mt48lc16m16a2 generic map (index => 16, fname => sdramfile) - port map( - Dq => data(15 downto 0), Addr => address(14 downto 2), - Ba => address(16 downto 15), Clk => sdclk(0), Cke => sdcke(0), - Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(1 downto 0)); - u2 : mt48lc16m16a2 generic map (index => 0, fname => sdramfile) - port map( - Dq => data(31 downto 16), Addr => address(14 downto 2), - Ba => address(16 downto 15), Clk => sdclk(0), Cke => sdcke(0), - Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(3 downto 2)); - u3 : mt48lc16m16a2 generic map (index => 16, fname => sdramfile) - port map( - Dq => data(15 downto 0), Addr => address(14 downto 2), - Ba => address(16 downto 15), Clk => sdclk(0), Cke => sdcke(0), - Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(1 downto 0)); - end generate; - - sd1 : if (CFG_MCTRL_SDEN = 1) and (CFG_MCTRL_SEPBUS = 1) generate - u0 : mt48lc16m16a2 generic map (index => 0, fname => sdramfile) - port map( - Dq => sd(31 downto 16), Addr => sa(12 downto 0), - Ba => sa(14 downto 13), Clk => sdclk(0), Cke => sdcke(0), - Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(3 downto 2)); - u1 : mt48lc16m16a2 generic map (index => 16, fname => sdramfile) - port map( - Dq => sd(15 downto 0), Addr => sa(12 downto 0), - Ba => sa(14 downto 13), Clk => sdclk(0), Cke => sdcke(0), - Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(1 downto 0)); - u2 : mt48lc16m16a2 generic map (index => 0, fname => sdramfile) - port map( - Dq => sd(31 downto 16), Addr => sa(12 downto 0), - Ba => sa(14 downto 13), Clk => sdclk(0), Cke => sdcke(0), - Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(3 downto 2)); - u3 : mt48lc16m16a2 generic map (index => 16, fname => sdramfile) - port map( - Dq => sd(15 downto 0), Addr => sa(12 downto 0), - Ba => sa(14 downto 13), Clk => sdclk(0), Cke => sdcke(0), - Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(1 downto 0)); - sd64 : if (CFG_MCTRL_SD64 = 1) generate - u4 : mt48lc16m16a2 generic map (index => 0, fname => sdramfile) - port map( - Dq => sd(63 downto 48), Addr => sa(12 downto 0), - Ba => sa(14 downto 13), Clk => sdclk(0), Cke => sdcke(0), - Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(7 downto 6)); - u5 : mt48lc16m16a2 generic map (index => 16, fname => sdramfile) - port map( - Dq => sd(47 downto 32), Addr => sa(12 downto 0), - Ba => sa(14 downto 13), Clk => sdclk(0), Cke => sdcke(0), - Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(5 downto 4)); - u6 : mt48lc16m16a2 generic map (index => 0, fname => sdramfile) - port map( - Dq => sd(63 downto 48), Addr => sa(12 downto 0), - Ba => sa(14 downto 13), Clk => sdclk(0), Cke => sdcke(0), - Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(7 downto 6)); - u7 : mt48lc16m16a2 generic map (index => 16, fname => sdramfile) - port map( - Dq => sd(47 downto 32), Addr => sa(12 downto 0), - Ba => sa(14 downto 13), Clk => sdclk(0), Cke => sdcke(0), - Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(5 downto 4)); - end generate; - end generate; - - - extbprom : if CFG_AHBROMEN = 0 generate - prom0 : for i in 0 to (romwidth/8)-1 generate - sr0 : sram generic map (index => i, abits => romdepth, fname => promfile) - port map (address(romdepth+1 downto 2), data(31-i*8 downto 24-i*8), romsn(0), - rwen(i), oen); - end generate; - end generate extbprom; - - - sram0 : for i in 0 to (sramwidth/8)-1 generate - sr0 : sram generic map (index => i, abits => sramdepth, fname => sramfile) - port map (address(sramdepth+1 downto 2), data(31-i*8 downto 24-i*8), ramsn(0), - rwen(0), ramoen(0)); - end generate; - - error <= 'H'; -- ERROR pull-up - - iuerr : process - begin - wait for 2500 ns; - if to_x01(error) = '1' then wait on error; end if; - assert (to_x01(error) = '1') - report "*** IU in error mode, simulation halted ***" - severity failure; - end process; - - data <= buskeep(data) after 5 ns; - sd <= buskeep(sd) after 5 ns; - - can01 : if CFG_CAN /= 0 generate - -- CAN_TXD_delayed <= CAN_TXD after 160 ns; - CAN_TXD_delayed <= CAN_TXD; - CAN_RXD <= '1' and CAN_TXD_delayed; - end generate; - can00 : if CFG_CAN = 0 generate - CAN_RXD <= '1'; - end generate; - - test0 : grtestmod - port map (rst, clk, error, address(21 downto 2), data, - iosn, oen, writen, brdyn); - - - dcomstart : if CFG_AHBROMEN = 0 generate - dsucom : process - procedure dsucfg(signal dsurx : in std_logic; signal dsutx : out std_logic) is - variable w32 : std_logic_vector(31 downto 0); - variable c8 : std_logic_vector(7 downto 0); - constant txp : time := 160 * 1 ns; - begin - dsutx <= '1'; - dsurst <= '1'; - wait; - wait for 5000 ns; - txc(dsutx, 16#55#, txp); -- sync uart - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#ef#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); - txa(dsutx, 16#00#, 16#00#, 16#ff#, 16#ff#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#40#, 16#00#, 16#48#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#12#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#40#, 16#00#, 16#60#, txp); - txa(dsutx, 16#00#, 16#00#, 16#12#, 16#10#, txp); - - txc(dsutx, 16#80#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); - rxi(dsurx, w32, txp, lresp); - - txc(dsutx, 16#a0#, txp); - txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); - rxi(dsurx, w32, txp, lresp); - - end; - - begin - dsucfg(dsutx, dsurx); - wait; - end process; - end generate dcomstart; - - - altstimuli : if CFG_AHBROMEN = 1 generate - stimuli : process - begin - dsurx <= '1'; - -- rxd1 <= 'H'; --already defined above - txd1 <= 'H'; - - - wait; - end process STIMULI; - end generate altstimuli; - - ----------------------------------------------------------------------------- - -- ARC testbench modules - ----------------------------------------------------------------------------- - - phy0 : if CFG_GRETH > 0 generate - p0 : entity gleichmann.phy_ext - generic map ( - infile_name => "indata", - outfile_name => "outdata", - logfile_name => "logfile_phy", - win_size => 3) - port map ( - resetn => rst, - led_cfg => led_cfg, - log_en => VCC, - cycle_num => clock_cycle_counter, - mdio => emdio, - tx_clk => etx_clk, - rx_clk => erx_clk, - rxd => erxd, - rx_dv => erx_dv, - rx_er => erx_er, - rx_col => erx_col, - rx_crs => erx_crs, - txd => etxd, - tx_en => etx_en, - tx_er => etx_er, - mdc => emdc); - end generate; - - uart0 : if CFG_UART1_ENABLE > 0 generate - rts_internal <= '0', - '1' after 1000 ns, - '0' after 1150 ns, - 'Z' after 1500 ns; - - uart_ext_1 : entity gleichmann.uart_ext - generic map ( - logfile_name => "logfile_uart", - t_delay => 5 ns) - port map ( - resetn => rst, - log_en => VCC, - cycle_num => clock_cycle_counter, - cts => cts_internal, - rxd => rxd1, - txd => txd1, - rts => rts_internal); - end generate uart0; -end architecture behav; - - diff --git a/designs/leon3-ge-hpe-midi-ep2s180/wave.do b/designs/leon3-ge-hpe-midi-ep2s180/wave.do deleted file mode 100644 index 6a269488..00000000 --- a/designs/leon3-ge-hpe-midi-ep2s180/wave.do +++ /dev/null @@ -1,44 +0,0 @@ -onerror {resume} -quietly WaveActivateNextPane {} 0 -add wave -noupdate -format Logic /testbench/clk -add wave -noupdate -format Logic /testbench/rst -add wave -noupdate -format Literal -radix hexadecimal /testbench/address -add wave -noupdate -format Literal -radix hexadecimal /testbench/data -add wave -noupdate -format Literal /testbench/ramsn -add wave -noupdate -format Literal /testbench/ramoen -add wave -noupdate -format Literal /testbench/rwen -add wave -noupdate -format Literal /testbench/rwenx -add wave -noupdate -format Literal /testbench/romsn -add wave -noupdate -format Logic /testbench/iosn -add wave -noupdate -format Logic /testbench/oen -add wave -noupdate -format Logic /testbench/read -add wave -noupdate -format Logic /testbench/writen -add wave -noupdate -format Literal /testbench/sdcke -add wave -noupdate -format Literal /testbench/sdcsn -add wave -noupdate -format Logic /testbench/sdwen -add wave -noupdate -format Logic /testbench/sdrasn -add wave -noupdate -format Logic /testbench/sdcasn -add wave -noupdate -format Literal /testbench/sddqm -add wave -noupdate -format Logic /testbench/sdclk -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/apbi -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/apbo -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/ahbsi -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/ahbso -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/ahbmi -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/ahbmo -TreeUpdate [SetDefaultTree] -WaveRestoreCursors {{Cursor 1} {39252698 ps} 0} -configure wave -namecolwidth 189 -configure wave -valuecolwidth 40 -configure wave -justifyvalue left -configure wave -signalnamewidth 0 -configure wave -snapdistance 10 -configure wave -datasetprefix 0 -configure wave -rowmargin 4 -configure wave -childrowmargin 2 -configure wave -gridoffset 0 -configure wave -gridperiod 1 -configure wave -griddelta 40 -configure wave -timeline 0 -update -WaveRestoreZoom {37002043 ps} {71398707 ps} diff --git a/designs/leon3-ge-hpe-mini-lattice/Makefile b/designs/leon3-ge-hpe-mini-lattice/Makefile deleted file mode 100755 index 2766b318..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -GRLIB=../.. -TOP=leon3mini -BOARD=ge-hpe-mini-lattice -include $(GRLIB)/boards/$(BOARD)/Makefile.inc -DEVICE=$(PART)-$(PACKAGE)$(SPEED) -UCF=$(GRLIB)/boards/$(BOARD)/$(TOP).lpf -QSF=$(GRLIB)/boards/$(BOARD)/$(TOP).qsf -EFFORT=1 -XSTOPT= -VHDLSYNFILES=config.vhd ahbrom.vhd clkgen_lattice_ea.vhd leon3mini.vhd -VHDLSIMFILES=testbench.vhd -SIMTOP=testbench -SDCFILE=$(GRLIB)/boards/$(BOARD)/default.sdc -BITGEN=$(GRLIB)/boards/$(BOARD)/default.ut -CLEAN=soft-clean - -TECHLIBS = ec -LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip cypress ihp usbhc hynix spansion gsi fmf -DIRSKIP = pcif leon2 leon2ft crypto pci ambatest usb grusbhc b1553 satcan usbhc \ - leon3ft leon4 leon4b64 l2cache spacewire slink ascs pwm haps coremp7 \ - gr1553b iommu grlfpc4 grfpcft grlfpcft ac97 hcan ddr -DIRADD = ddrv1 -FILEADD = ddrrec.vhd ddrctrl.vhd - -FILESKIP = vgaclkgen.vhd - -include $(GRLIB)/bin/Makefile -include $(GRLIB)/software/leon3/Makefile -XLDFLAGS=-L./ lib3tests.a -Ttext=0x60000000 - - -################## project specific targets ########################## diff --git a/designs/leon3-ge-hpe-mini-lattice/README.txt b/designs/leon3-ge-hpe-mini-lattice/README.txt deleted file mode 100644 index 0293a131..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/README.txt +++ /dev/null @@ -1,9 +0,0 @@ - -This leon3 design is tailored to the HPE_mini board from -Gleichmann Electronics: - -http://www.ger-fae.com/hpe_mini_lec.html - - -NOTE: This design is no longer maintained, and needs to be -updated to work with the current grlib version. diff --git a/designs/leon3-ge-hpe-mini-lattice/ahbrom.vhd b/designs/leon3-ge-hpe-mini-lattice/ahbrom.vhd deleted file mode 100644 index a61a155a..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/ahbrom.vhd +++ /dev/null @@ -1,172 +0,0 @@ - ----------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2004 GAISLER RESEARCH --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- See the file COPYING for the full details of the license. --- ------------------------------------------------------------------------------ --- Entity: ahbrom --- File: ahbrom.vhd --- Author: Jiri Gaisler - Gaisler Research --- Description: AHB rom. 0/1-waitstate read ------------------------------------------------------------------------------- -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; - -entity ahbrom is - generic ( - hindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#fff#; - pipe : integer := 0; - tech : integer := 0; - kbytes : integer := 1); - port ( - rst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type - ); -end; - -architecture rtl of ahbrom is -constant abits : integer := 9; -constant bytes : integer := 288; - -constant hconfig : ahb_config_type := ( - 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_AHBROM, 0, 0, 0), - 4 => ahb_membar(haddr, '1', '1', hmask), others => zero32); - -signal romdata : std_logic_vector(31 downto 0); -signal addr : std_logic_vector(abits-1 downto 2); -signal hsel, hready : std_ulogic; - -begin - - ahbso.hresp <= "00"; - ahbso.hsplit <= (others => '0'); - ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; - ahbso.hconfig <= hconfig; - ahbso.hindex <= hindex; - - reg : process (clk) - begin - if rising_edge(clk) then - addr <= ahbsi.haddr(abits-1 downto 2); - end if; - end process; - - p0 : if pipe = 0 generate - ahbso.hrdata <= ahbdrivedata(romdata); - ahbso.hready <= '1'; - end generate; - - p1 : if pipe = 1 generate - reg2 : process (clk) - begin - if rising_edge(clk) then - hsel <= ahbsi.hsel(hindex) and ahbsi.htrans(1); - hready <= ahbsi.hready; - ahbso.hready <= (not rst) or (hsel and hready) or - (ahbsi.hsel(hindex) and not ahbsi.htrans(1) and ahbsi.hready); - ahbso.hrdata <= ahbdrivedata(romdata); - end if; - end process; - end generate; - - comb : process (addr) - begin - case conv_integer(addr) is - when 16#00000# => romdata <= X"81D82000"; - when 16#00001# => romdata <= X"03000004"; - when 16#00002# => romdata <= X"821060C0"; - when 16#00003# => romdata <= X"81884000"; - when 16#00004# => romdata <= X"81900000"; - when 16#00005# => romdata <= X"81980000"; - when 16#00006# => romdata <= X"81800000"; - when 16#00007# => romdata <= X"01000000"; - when 16#00008# => romdata <= X"03000040"; - when 16#00009# => romdata <= X"8210600F"; - when 16#0000A# => romdata <= X"C2A00040"; - when 16#0000B# => romdata <= X"87444000"; - when 16#0000C# => romdata <= X"8608E01F"; - when 16#0000D# => romdata <= X"88100000"; - when 16#0000E# => romdata <= X"8A100000"; - when 16#0000F# => romdata <= X"8C100000"; - when 16#00010# => romdata <= X"8E100000"; - when 16#00011# => romdata <= X"A0100000"; - when 16#00012# => romdata <= X"A2100000"; - when 16#00013# => romdata <= X"A4100000"; - when 16#00014# => romdata <= X"A6100000"; - when 16#00015# => romdata <= X"A8100000"; - when 16#00016# => romdata <= X"AA100000"; - when 16#00017# => romdata <= X"AC100000"; - when 16#00018# => romdata <= X"AE100000"; - when 16#00019# => romdata <= X"90100000"; - when 16#0001A# => romdata <= X"92100000"; - when 16#0001B# => romdata <= X"94100000"; - when 16#0001C# => romdata <= X"96100000"; - when 16#0001D# => romdata <= X"98100000"; - when 16#0001E# => romdata <= X"9A100000"; - when 16#0001F# => romdata <= X"9C100000"; - when 16#00020# => romdata <= X"9E100000"; - when 16#00021# => romdata <= X"86A0E001"; - when 16#00022# => romdata <= X"16BFFFEF"; - when 16#00023# => romdata <= X"81E00000"; - when 16#00024# => romdata <= X"82102002"; - when 16#00025# => romdata <= X"81904000"; - when 16#00026# => romdata <= X"03000004"; - when 16#00027# => romdata <= X"821060E0"; - when 16#00028# => romdata <= X"81884000"; - when 16#00029# => romdata <= X"01000000"; - when 16#0002A# => romdata <= X"01000000"; - when 16#0002B# => romdata <= X"01000000"; - when 16#0002C# => romdata <= X"03200000"; - when 16#0002D# => romdata <= X"84102233"; - when 16#0002E# => romdata <= X"C4204000"; - when 16#0002F# => romdata <= X"0539AE13"; - when 16#00030# => romdata <= X"8410A260"; - when 16#00031# => romdata <= X"C4206004"; - when 16#00032# => romdata <= X"050003FC"; - when 16#00033# => romdata <= X"C4206008"; - when 16#00034# => romdata <= X"3D1003FF"; - when 16#00035# => romdata <= X"BC17A3E0"; - when 16#00036# => romdata <= X"9C27A060"; - when 16#00037# => romdata <= X"03100000"; - when 16#00038# => romdata <= X"81C04000"; - when 16#00039# => romdata <= X"01000000"; - when 16#0003A# => romdata <= X"01000000"; - when 16#0003B# => romdata <= X"01000000"; - when 16#0003C# => romdata <= X"01000000"; - when 16#0003D# => romdata <= X"01000000"; - when 16#0003E# => romdata <= X"01000000"; - when 16#0003F# => romdata <= X"01000000"; - when 16#00040# => romdata <= X"00000004"; - when 16#00041# => romdata <= X"00000000"; - when 16#00042# => romdata <= X"00000004"; - when 16#00043# => romdata <= X"00000000"; - when 16#00044# => romdata <= X"FFFFFFFC"; - when 16#00045# => romdata <= X"00000000"; - when 16#00046# => romdata <= X"FFFFFFFC"; - when 16#00047# => romdata <= X"00000000"; - when 16#00048# => romdata <= X"00000000"; - when others => romdata <= (others => '-'); - end case; - end process; - -- pragma translate_off - bootmsg : report_version - generic map ("ahbrom" & tost(hindex) & - ": 32-bit AHB ROM Module, " & tost(bytes/4) & " words, " & tost(abits-2) & " address bits" ); - -- pragma translate_on - end; diff --git a/designs/leon3-ge-hpe-mini-lattice/clkgen_lattice_ea.vhd b/designs/leon3-ge-hpe-mini-lattice/clkgen_lattice_ea.vhd deleted file mode 100644 index 636f0c3f..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/clkgen_lattice_ea.vhd +++ /dev/null @@ -1,154 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: clkgen_lattice --- File: clkgen_lattice.vhd --- Author: Nils-Johan Wessman - Gaisler Research --- Description: Clock generators for Lattice fpgas ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; --- pragma translate_off -library grlib; -use grlib.stdlib.all; ---library unisim; --- pragma translate_on -library techmap; -use techmap.gencomp.all; - -library ec; -use ec.components.all; - ------------------------------------------------------------------- --- LEC clock generator --------------------------------------- ------------------------------------------------------------------- - -entity clkgen_lattice is - generic ( - clk_mul : string := "2"; - clk_div : string := "1"; - freq : string := "25"; -- clock frequency in MHz - ddrclk_mul : string := "4"; - ddrclk_div : string := "1"); - port ( - clkin : in std_logic; - clk0 : out std_logic; -- main clock - clk180 : out std_logic; -- main clock phase 180 - clk270 : out std_logic; -- main clock phase 270 - - ddrclk : out std_logic; - ddrclkb : out std_logic; - - clkm : out std_logic; - - cgi : in clkgen_in_type; - cgo : out clkgen_out_type); -end; - -architecture struct of clkgen_lattice is -constant VERSION : integer := 1; -signal clkin200, clkin_fb, clk0_fb, clkm_fb, clk180_fb, clk_270 : std_logic; -signal pllinlock, pll0lock, pll1lock, pll2lock : std_logic; -signal pllinrst, pllrst : std_logic_vector(0 to 5); - -attribute FB_MODE : string; -attribute FB_MODE of pllm : label is "INTERNAL"; -- INTERNAL CLOCKTREE -attribute FB_MODE of pllddr1 : label is "INTERNAL"; -attribute FB_MODE of pllddr2 : label is "INTERNAL"; - -begin -pllm : EHXPLLB - generic map( - FIN => freq, CLKI_DIV => clk_div, CLKOP_DIV => "16", - CLKFB_DIV => clk_mul, FDEL => "0", CLKOK_DIV => "2", - WAKE_ON_LOCK => "off", DELAY_CNTL => "STATIC", PHASEADJ => "0", DUTY => "4") - port map( - CLKI => clkin, CLKFB => clkm_fb, RST => pllrst(0), - CLKOP => clkm_fb, CLKOS => clkm, CLKOK => open, LOCK => pll0lock, - - -- Static - DDAMODE => '0', DDAIZR => '0', DDAILAG => '0', DDAIDEL0 => '0', DDAIDEL1 => '0', DDAIDEL2 => '0', - DDAOZR => open, DDAOLAG => open, DDAODEL0 => open, DDAODEL1 => open, DDAODEL2 => open - ); - -pllddr1 : EHXPLLB - generic map( - FIN => freq, CLKI_DIV => ddrclk_div, CLKOP_DIV => "8", - CLKFB_DIV => ddrclk_mul, FDEL => "0", CLKOK_DIV => "2", - WAKE_ON_LOCK => "off", DELAY_CNTL => "STATIC", PHASEADJ => "180", DUTY => "4") - port map( - CLKI => clkin, CLKFB => clk180_fb, RST => pllrst(0), - CLKOP => clk180_fb, CLKOS => clk180, CLKOK => open, LOCK => pll1lock, - - -- Static - DDAMODE => '0', DDAIZR => '0', DDAILAG => '0', DDAIDEL0 => '0', DDAIDEL1 => '0', DDAIDEL2 => '0', - DDAOZR => open, DDAOLAG => open, DDAODEL0 => open, DDAODEL1 => open, DDAODEL2 => open - ); - -pllddr2 : EHXPLLB - generic map( - FIN => freq, CLKI_DIV => ddrclk_div, CLKOP_DIV => "8", - CLKFB_DIV => ddrclk_mul, FDEL => "0", CLKOK_DIV => "2", - WAKE_ON_LOCK => "off", DELAY_CNTL => "STATIC", PHASEADJ => "270", DUTY => "4") - port map( - CLKI => clkin, CLKFB => clk0_fb, RST => pllrst(0), - CLKOP => clk0_fb, CLKOS => clk_270, CLKOK => open, LOCK => pll2lock, - - -- Static - DDAMODE => '0', DDAIZR => '0', DDAILAG => '0', DDAIDEL0 => '0', DDAIDEL1 => '0', DDAIDEL2 => '0', - DDAOZR => open, DDAOLAG => open, DDAODEL0 => open, DDAODEL1 => open, DDAODEL2 => open - ); - --- ddrclk_reg : ODDRXB --- port map(DA => '1', DB => '0', CLK => clk_270, LSR => '0', Q => ddrclk); --- ddrclkb_reg : ODDRXB --- port map(DA => '0', DB => '1', CLK => clk_270, LSR => '0', Q => ddrclkb); - -- invert DDR memory clock - ddrclk_reg : ODDRXB - port map(DA => '0', DB => '1', CLK => clk_270, LSR => '0', Q => ddrclk); - ddrclkb_reg : ODDRXB - port map(DA => '1', DB => '0', CLK => clk_270, LSR => '0', Q => ddrclkb); - - - clk0 <= clk0_fb; - clk270 <= clk_270; --- pllinrst <= cgi.pllrst; - - rstdel : process (clkin, cgi.pllrst) - begin - if cgi.pllrst = '1' then pllrst <= (others => '1'); - elsif rising_edge(clkin) then - pllrst <= pllrst(1 to 5) & '0'; - end if; - end process; - - cgo.clklock <= pll0lock and pll1lock and pll2lock; - - -- cgo.pcilock <= dll2lock; - --- pragma translate_off - bootmsg : report_version - generic map ( - "clkgen_lattice" & ": lattice clock generator, version " & tost(VERSION), - "clkgen_lattice" & ": Frequency " & freq & " MHz, PLL divisor " & clk_mul & "/" & clk_div & ddrclk_mul & "/" & ddrclk_div); --- pragma translate_on - -end; - diff --git a/designs/leon3-ge-hpe-mini-lattice/config.help b/designs/leon3-ge-hpe-mini-lattice/config.help deleted file mode 100644 index baf5cd33..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/config.help +++ /dev/null @@ -1,1034 +0,0 @@ - - -Prompt for target technology -CONFIG_SYN_INFERRED - Selects the target technology for memory and pads. - The following are available: - - - Inferred: Generic FPGA or ASIC targets if your synthesis tool - is capable of inferring RAMs and pads automatically. - - - Actel ProAsic/P/3, IGLOO and Axcelerator FPGAs - - Aeroflex UT25CRH Rad-Hard 0.25 um CMOS - - Altera: Most Altera FPGA families - - Altera-Stratix: Altera Stratix FPGA family - - Altera-StratixII: Altera Stratix-II FPGA family - - ATC18: Atmel-Nantes 0.18 um rad-hard CMOS - - IHP25: IHP 0.25 um CMOS - - IHP25RH: IHP Rad-Hard 0.25 um CMOS - - Lattice : EC/ECP/XP FPGAs - - Quicklogic : Eclipse/E/II FPGAs - - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries - - Xilinx-Spartan3E: Xilinx Spartan3E libraries - - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries - - -Ram library -CONFIG_MEM_VIRAGE - Select RAM generators for ASIC targets. - -Infer ram -CONFIG_SYN_INFER_RAM - Say Y here if you want the synthesis tool to infer your - RAM automatically. Say N to directly instantiate technology- - specific RAM cells for the selected target technology package. - -Infer pads -CONFIG_SYN_INFER_PADS - Say Y here if you want the synthesis tool to infer pads. - Say N to directly instantiate technology-specific pads from - the selected target technology package. - -No async reset -CONFIG_SYN_NO_ASYNC - Say Y here if you disable asynchronous reset in some of the IP cores. - Might be necessary if the target library does not have cells with - asynchronous set/reset. - -Scan support -CONFIG_SYN_SCAN - Say Y here to enable scan support in some cores. This will enable - the scan support generics where available and add logic to make - the design testable using full-scan. - -Use Virtex CLKDLL for clock synchronisation -CONFIG_CLK_INFERRED - Certain target technologies include clock generators to scale or - phase-adjust the system and SDRAM clocks. This is currently supported - for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you - can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. - -Clock multiplier -CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - - WARNING: The resulting clock must be within the limits specified - by the target FPGA family. - -Clock divider -CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - - WARNING: The resulting clock must be within the limits specified - by the target FPGA family. - -Output clock divider -CONFIG_OCLK_DIV - When using the Proasic3 PLL, the system clock is generated by three - parameters: input clock multiplication, input clock division and - output clock division. Only certain values of these parameters - are allowed, but unfortunately this is not documented by Actel. - To find the correct values, run the Libero Smartgen tool and - insert you desired input and output clock frequencies in the - Static PLL configurator. The mul/div factors can then be read - out from tool. - -Output clock divider, 2nd clock -CONFIG_OCLKB_DIV - See help for 'Ouput division factor'. Set this to 0 to disable the - second clock output. - -Output clock divider, 3rd clock -CONFIG_OCLKC_DIV - See help for 'Ouput division factor'. Set this to 0 to disable the - third clock output. - -System clock multiplier -CONFIG_CLKDLL_1_2 - The Xilinx CLKDLL can scale the input clock with a factor of 0.5, 1.0, - or 2.0. Useful when the target board has an oscillator with a too high - (or low) frequency for your design. The divided clock will be used as the - main clock for the whole processor (except PCI and ethernet clocks). - -System clock multiplier -CONFIG_DCM_2_3 - The Xilinx DCM and Altera ALTDLL can scale the input clock with a large - range of factors. Useful when the target board has an oscillator with a - too high (or low) frequency for your design. The divided clock will - be used as the main clock for the whole processor (except PCI and - ethernet clocks). NOTE: the resulting frequency must be at least - 24 MHz or the DCM and ALTDLL might not work. - -Enable CLKDLL for PCI clock -CONFIG_PCI_CLKDLL - Say Y here to re-synchronize the PCI clock using a - Virtex BUFGDLL macro. Will improve PCI clock-to-output - delays on the expense of input-setup requirements. - -Use PCI clock system clock -CONFIG_PCI_SYSCLK - Say Y here to the PCI clock to generate the system clock. - The PCI clock can be scaled using the DCM or CLKDLL to - generate a suitable processor clock. - -External SDRAM clock feedback -CONFIG_CLK_NOFB - Say Y here to disable the external clock feedback to synchronize the - SDRAM clock. This option is necessary if your board or design does not - have an external clock feedback that is connected to the pllref input - of the clock generator. - -Number of processors -CONFIG_PROC_NUM - The number of processor cores. The LEON3MP design can accomodate - up to 4 LEON3 processor cores. Use 1 unless you know what you are - doing ... - -Number of SPARC register windows -CONFIG_IU_NWINDOWS - The SPARC architecture (and LEON) allows 2 - 32 register windows. - However, any number except 8 will require that you modify and - recompile your run-time system or kernel. Unless you know what - you are doing, use 8. - -SPARC V8 multiply and divide instruction -CONFIG_IU_V8MULDIV - If you say Y here, the SPARC V8 multiply and divide instructions - will be implemented. The instructions are: UMUL, UMULCC, SMUL, - SMULCC, UDIV, UDIVCC, SDIV, SDIVCC. In code containing frequent - integer multiplications and divisions, significant performance - increase can be achieved. Emulated floating-point operations will - also benefit from this option. - - By default, the gcc compiler does not emit multiply or divide - instructions and your code must be compiled with -mv8 to see any - performance increase. On the other hand, code compiled with -mv8 - will generate an illegal instruction trap when executed on processors - with this option disabled. - - The divider consumes approximately 2 kgates, the multiplier 6 kgates. - -Multiplier latency -CONFIG_IU_MUL_LATENCY_2 - Implementation options for the integer multiplier. - - Type Implementation issue-rate/latency - 2-clocks 32x32 pipelined multiplier 1/2 - 4-clocks 16x16 standard multiplier 4/4 - 5-clocks 16x16 pipelined multiplier 4/5 - -MAC operation -CONFIG_IU_MUL_MAC - If you say Y here, the SPARC V8e UMAC/SMAC (multiply-accumulate) - instructions will be enabled. The instructions implement a - single-cycle 16x16->32 bits multiply with a 40-bits accumulator. - The details of these instructions can be found in the LEON manual, - This option is only available when 16x16 multiplier is used. - -Multiplier structure -CONFIG_IU_MUL_INFERRED - Structure options for the integer multiplier. The multiplier - can be implemented with the following structures: - - * Inferred by the synthesis tool - * Generated using Module Generators from NTNU - * Using technology specific netlists (TechSpec) - * Using Synopsys Designware (DW02_mult and DW_mult_pipe) - -Branch prediction -CONFIG_IU_BP - Enabling branch prediction will improve performance with - up to 20%, depending on application. The timing and area - overhead are minor, so it is recommended to always enable - this option. - -Single vector trapping -CONFIG_IU_SVT - Single-vector trapping is a SPARC V8e option to reduce code-size - in small applications. If enabled, the processor will jump to - the address of trap 0 (tt = 0x00) for all traps. No trap table - is then needed. The trap type is present in %psr.tt and must - be decoded by the O/S. Saves 4 Kbyte of code, but increases - trap and interrupt overhead. Currently, the only O/S supporting - this option is eCos. To enable SVT, the O/S must also set bit 13 - in %asr17. - -Load latency -CONFIG_IU_LDELAY - Defines the pipeline load delay (= pipeline cycles before the data - from a load instruction is available for the next instruction). - One cycle gives best performance, but might create a critical path - on targets with slow (data) cache memories. A 2-cycle delay can - improve timing but will reduce performance with about 5%. - -Reset address -CONFIG_IU_RSTADDR - By default, a SPARC processor starts execution at address 0. - With this option, any 4-kbyte aligned reset start address can be - choosen. Keep at 0 unless you really know what you are doing. - -No tagged arithmetic -CONFIG_NOTAG - Say Y here to disable tagged arithmetic and the CASA instructions. - This will save some area in minimal systems that do not need - these features. - -Power-down -CONFIG_PWD - Say Y here to enable the power-down feature of the processor. - Might reduce the maximum frequency slightly on FPGA targets. - For details on the power-down operation, see the LEON3 manual. - -Hardware watchpoints -CONFIG_IU_WATCHPOINTS - The processor can have up to 4 hardware watchpoints, allowing to - create both data and instruction breakpoints at any memory location, - also in PROM. Each watchpoint will use approximately 500 gates. - Use 0 to disable the watchpoint function. - -Floating-point enable -CONFIG_FPU_ENABLE - Say Y here to enable the floating-point interface for the MEIKO - or GRFPU. Note that no FPU's are provided with the GPL version - of GRLIB. Both the Gaisler GRFPU and the Meiko FPU are commercial - cores and must be obtained separately. - -FPU selection -CONFIG_FPU_GRFPU - Select between Gaisler Research's GRFPU and GRFPU-lite FPUs or the Sun - Meiko FPU core. All cores are fully IEEE-754 compatible and support - all SPARC FPU instructions. - -GRFPU Multiplier -CONFIG_FPU_GRFPU_INFMUL - On FPGA targets choose inferred multiplier. For ASIC implementations - choose between Synopsys Design Ware (DW) multiplier or Module - Generator (ModGen) multiplier. The DW multiplier gives better results - (smaller area and better timing) but requires a DW license. - The ModGen multiplier is part of GRLIB and does not require a license. - The Technology Specific multiplier option selects a pre-designed - multiplier using technology specific macrocells when available, else - an inferred multiplier is used. - -Shared GRFPU -CONFIG_FPU_GRFPU_SH - If enabled multiple CPU cores will share one GRFPU. - -GRFPC Configuration -CONFIG_FPU_GRFPC0 - Configures the GRFPU-LITE controller. - - In simple configuration controller executes FP instructions - in parallel with integer instructions. FP operands are fetched - in the register file stage and the result is written in the write - stage. This option uses least area resources. - - Data forwarding configuration gives ~ 10 % higher FP performance than - the simple configuration by adding data forwarding between the pipeline - stages. - - Non-blocking controller allows FP load and store instructions to - execute in parallel with FP instructions. The performance increase is - ~ 20 % for FP applications. This option uses most logic resources and - is suitable for ASIC implementations. - -Floating-point netlist -CONFIG_FPU_NETLIST - Say Y here to use a VHDL netlist of the GRFPU-Lite. This is - only available in certain versions of grlib. - -Enable Instruction cache -CONFIG_ICACHE_ENABLE - The instruction cache should always be enabled to allow - maximum performance. Some low-end system might want to - save area and disable the cache, but this will reduce - the performance with a factor of 2 - 3. - -Enable Data cache -CONFIG_DCACHE_ENABLE - The data cache should always be enabled to allow - maximum performance. Some low-end system might want to - save area and disable the cache, but this will reduce - the performance with a factor of 2 at least. - -Instruction cache associativity -CONFIG_ICACHE_ASSO1 - The instruction cache can be implemented as a multi-way cache with - 1 - 4 ways. Higher associativity usually increases the cache hit - rate and thereby the performance. The downside is higher power - consumption and increased gate-count for tag comparators. - - Note that a 1-way cache is effectively a direct-mapped cache. - -Instruction cache way size -CONFIG_ICACHE_SZ1 - The size of each way in the instuction cache (kbytes). Valid values - are 1 - 64 in binary steps. Note that the full range is only supported - by the generic and virtex2 targets. Most target packages are limited - to 2 - 16 kbyte. Large way size gives higher performance but might - affect the maximum frequency (on ASIC targets). The total instruction - cache size is the number of way multiplied with the way size. - -Instruction cache line size -CONFIG_ICACHE_LZ16 - The instruction cache line size. Can be set to either 16 or 32 - bytes per line. Instruction caches typically benefit from larger - line sizes, but on small caches it migh be better with 16 bytes/line - to limit eviction miss rate. - -Instruction cache replacement algorithm -CONFIG_ICACHE_ALGORND - Cache replacement algorithm for caches with 2 - 4 ways. The 'random' - algorithm selects the way to evict randomly. The least-recently-replaced - (LRR) algorithm evicts the way least recently replaced. The least- - recently-used (LRU) algorithm evicts the way least recently accessed. - The random algorithm uses a simple 1- or 2-bit counter to select - the eviction way and has low area overhead. The LRR scheme uses one - extra bit in the tag ram and has therefore also low area overhead. - However, the LRR scheme can only be used with 2-way caches. The LRU - scheme has typically the best performance but also highest area overhead. - A 2-way LRU uses 1 flip-flop per line, a 3-way LRU uses 3 flip-flops - per line, and a 4-way LRU uses 5 flip-flops per line to store the access - history. - -Instruction cache locking -CONFIG_ICACHE_LOCK - Say Y here to enable cache locking in the instruction cache. - Locking can be done on cache-line level, but will increase the - width of the tag ram with one bit. If you don't know what - locking is good for, it is safe to say N. - -Data cache associativity -CONFIG_DCACHE_ASSO1 - The data cache can be implemented as a multi-way cache with - 1 - 4 ways. Higher associativity usually increases the cache hit - rate and thereby the performance. The downside is higher power - consumption and increased gate-count for tag comparators. - - Note that a 1-way cache is effectively a direct-mapped cache. - -Data cache way size -CONFIG_DCACHE_SZ1 - The size of each way in the data cache (kbytes). Valid values are - 1 - 64 in binary steps. Note that the full range is only supported - by the generic and virtex2 targets. Most target packages are limited - to 2 - 16 kbyte. A large cache gives higher performance but the - data cache is timing critical an a too large setting might affect - the maximum frequency (on ASIC targets). The total data cache size - is the number of way multiplied with the way size. - -Data cache line size -CONFIG_DCACHE_LZ16 - The data cache line size. Can be set to either 16 or 32 bytes per - line. A smaller line size gives better associativity and higher - cache hit rate, but requires a larger tag memory. - -Data cache replacement algorithm -CONFIG_DCACHE_ALGORND - See the explanation for instruction cache replacement algorithm. - -Data cache locking -CONFIG_DCACHE_LOCK - Say Y here to enable cache locking in the data cache. - Locking can be done on cache-line level, but will increase the - width of the tag ram with one bit. If you don't know what - locking is good for, it is safe to say N. - -Data cache snooping -CONFIG_DCACHE_SNOOP - Say Y here to enable data cache snooping on the AHB bus. Is only - useful if you have additional AHB masters such as the DSU or a - target PCI interface. Note that the target technology must support - dual-port RAMs for this option to be enabled. Dual-port RAMS are - currently supported on Virtex/2, Virage and Actel targets. - -Data cache snooping implementation -CONFIG_DCACHE_SNOOP_FAST - The default snooping implementation is 'slow', which works if you - don't have AHB slaves in cacheable areas capable of zero-waitstates - non-sequential write accesses. Otherwise use 'fast' and suffer a - few kgates extra area. This option is currently only needed in - multi-master systems with the SSRAM or DDR memory controllers. - -Separate snoop tags -CONFIG_DCACHE_SNOOP_SEPTAG - Enable a separate memory to store the data tags used for snooping. - This is necessary when snooping support is wanted in systems - with MMU, typically for SMP systems. In this case, the snoop - tags will contain the physical tag address while the normal - tags contain the virtual tag address. This option can also be - together with the 'fast snooping' option to enable snooping - support on technologies without dual-port RAMs. In such case, - the snoop tag RAM will be implemented using a two-port RAM. - -Fixed cacheability map -CONFIG_CACHE_FIXED - If this variable is 0, the cacheable memory regions are defined - by the AHB plug&play information (default). To overriden the - plug&play settings, this variable can be set to indicate which - areas should be cached. The value is treated as a 16-bit hex value - with each bit defining if a 256 Mbyte segment should be cached or not. - The right-most (LSB) bit defines the cacheability of AHB address - 0 - 256 MByte, while the left-most bit (MSB) defines AHB address - 3840 - 4096 MByte. If the bit is set, the corresponding area is - cacheable. A value of 00F3 defines address 0 - 0x20000000 and - 0x40000000 - 0x80000000 as cacheable. - -Local data ram -CONFIG_DCACHE_LRAM - Say Y here to add a local ram to the data cache controller. - Accesses to the ram (load/store) will be performed at 0 waitstates - and store data will never be written back to the AHB bus. - -Size of local data ram -CONFIG_DCACHE_LRAM_SZ1 - Defines the size of the local data ram in Kbytes. Note that most - technology libraries do not support larger rams than 16 Kbyte. - -Start address of local data ram -CONFIG_DCACHE_LRSTART - Defines the 8 MSB bits of start address of the local data ram. - By default set to 8f (start address = 0x8f000000), but any value - (except 0) is possible. Note that the local data ram 'shadows' - a 16 Mbyte block of the address space. - -MMU enable -CONFIG_MMU_ENABLE - Say Y here to enable the Memory Management Unit. - -MMU split icache/dcache table lookaside buffer -CONFIG_MMU_COMBINED - Select "combined" for a combined icache/dcache table lookaside buffer, - "split" for a split icache/dcache table lookaside buffer - -MMU tlb replacement scheme -CONFIG_MMU_REPARRAY - Select "LRU" to use the "least recently used" algorithm for TLB - replacement, or "Increment" for a simple incremental replacement - scheme. - -Combined i/dcache tlb -CONFIG_MMU_I2 - Select the number of entries for the instruction TLB, or the - combined icache/dcache TLB if such is used. - -Split tlb, dcache -CONFIG_MMU_D2 - Select the number of entries for the dcache TLB. - -Fast writebuffer -CONFIG_MMU_FASTWB - Only selectable if split tlb is enabled. In case fast writebuffer is - enabled the tlb hit will be made concurrent to the cache hit. This - leads to higher store performance, but increased power and area. - -MMU pagesize -CONFIG_MMU_PAGE_4K - The deafult SPARC V8 SRMMU page size is 4 Kbyte. This limits the - cache way size to 4 Kbyte, and total data cache size to 16 Kbyte, - when the MMU is used. To increase the maximum data cache size, - the MMU pages size can be increased to up 32 Kbyte. This will - give a maximum data cache size of 128 Kbyte. - - Note that an MMU page size different than 4 Kbyte will require - a special linux tool-chain if glibc is used. If you don't know - what you are doing, stay with 4 Kbyte ... - -DSU enable -CONFIG_DSU_ENABLE - The debug support unit (DSU) allows non-intrusive debugging and tracing - of both executed instructions and AHB transfers. If you want to enable - the DSU, say Y here and select the configuration below. - -Trace buffer enable -CONFIG_DSU_TRACEBUF - Say Y to enable the trace buffer. The buffer is not necessary for - debugging, only for tracing instructions and data transfers. - -Enable instruction tracing -CONFIG_DSU_ITRACE - If you say Y here, an instruction trace buffer will be implemented - in each processor. The trace buffer will trace executed instructions - and their results, and place them in a circular buffer. The buffer - can be read out by any AHB master, and in particular by the debug - communication link. - -Size of trace buffer -CONFIG_DSU_ITRACESZ1 - Select the buffer size (in kbytes) for the instruction trace buffer. - Each line in the buffer needs 16 bytes. A 128-entry buffer will thus - need 2 kbyte. - -Enable AHB tracing -CONFIG_DSU_ATRACE - If you say Y here, an AHB trace buffer will be implemented in the - debug support unit processor. The AHB buffer will trace all transfers - on the AHB bus and save them in a circular buffer. The trace buffer - can be read out by any AHB master, and in particular by the debug - communication link. - -Size of trace buffer -CONFIG_DSU_ATRACESZ1 - Select the buffer size (in kbytes) for the AHB trace buffer. - Each line in the buffer needs 16 bytes. A 128-entry buffer will thus - need 2 kbyte. - - -LEON3FT enable -CONFIG_LEON3FT_EN - Say Y here to use the fault-tolerant LEON3FT core instead of the - standard non-FT LEON3. - -IU Register file protection -CONFIG_IUFT_NONE - Select the FT implementation in the LEON3FT integer unit - register file. The options include parity, parity with - sparing, 7-bit BCH and TMR. - -FPU Register file protection -CONFIG_FPUFT_EN - Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. - -Cache memory error injection -CONFIG_RF_ERRINJ - Say Y here to enable error injection in to the IU/FPU regfiles. - Affects only simulation. - -Cache memory protection -CONFIG_CACHE_FT_EN - Enable SEU error-correction in the cache memories. - -Cache memory error injection -CONFIG_CACHE_ERRINJ - Say Y here to enable error injection in to the cache memories. - Affects only simulation. - -Leon3ft netlist -CONFIG_LEON3_NETLIST - Say Y here to use a VHDL netlist of the LEON3FT. This is - only available in certain versions of grlib. - -IU assembly printing -CONFIG_IU_DISAS - Enable printing of executed instructions to the console. - -IU assembly printing in netlist -CONFIG_IU_DISAS_NET - Enable printing of executed instructions to the console also - when simulating a netlist. NOTE: with this option enabled, it - will not be possible to pass place&route. - -32-bit program counters -CONFIG_DEBUG_PC32 - Since the LSB 2 bits of the program counters always are zero, they are - normally not implemented. If you say Y here, the program counters will - be implemented with full 32 bits, making debugging of the VHDL model - much easier. Turn of this option for synthesis or you will be wasting - area. -CONFIG_AHB_DEFMST - Sets the default AHB master (see AMBA 2.0 specification for definition). - Should not be set to a value larger than the number of AHB masters - 1. - For highest processor performance, leave it at 0. - -Default AHB master -CONFIG_AHB_RROBIN - Say Y here to enable round-robin arbitration of the AHB bus. A N will - select fixed priority, with the master with the highest bus index having - the highest priority. - -Support AHB split-transactions -CONFIG_AHB_SPLIT - Say Y here to enable AHB split-transaction support in the AHB arbiter. - Unless you actually have an AHB slave that can generate AHB split - responses, say N and save some gates. - -Enable full PnP decoding -CONFIG_AHB_FPNPEN - Say Y here to enable full decoding of the PnP configuration records in - in the AHB arbiter. When disabled the user-defined registers in the - PnP configuration records are not mapped in the configuration area. - -IO area start address -CONFIG_AHB_IOADDR - Selects the MSB adddress (HADDR[31:20]) of the AHB IO area, as defined - in the plug&play extentions of the AMBA bus. Should be kept to FFF - unless you really know what you are doing. - -APB bridge address -CONFIG_APB_HADDR - Selects the MSB adddress (HADDR[31:20]) of the APB bridge. Should be - kept at 800 for software compatibility. - -AHB monitor -CONFIG_AHB_MON - Say Y to enable the AHB bus monitor. The monitor will check for - illegal AHB transactions during simulation. It has no impact on - synthesis. - -Report AHB errors -CONFIG_AHB_MONERR - Print out detected AHB violations on console. - -Report AHB warnings -CONFIG_AHB_MONWAR - Print out detected AHB warnings on console. - -Write trace to console -CONFIG_AHB_DTRACE - Say yes here to write a trace of all AHB transfers to the - simulator console. Has not impact on final netlist. - -DSU enable -CONFIG_DSU_UART - Say Y to enable the AHB uart (serial-to-AHB). This is the most - commonly used debug communication link. - -Ethernet DSU enable -CONFIG_DSU_ETH - Say Y to enable the Ethernet Debug Communication Link (EDCL). The link - provides a DSU gateway between ethernet and the AHB bus. Debugging is - done at 10 or 100 Mbit/s, using the GRMON debug monitor. You must - enable the GRETH Ethernet MAC for this option to become active. - -Size of EDCL trace buffer -CONFIG_DSU_ETHSZ1 - Select the buffer size (in kbytes) for the EDCL. 1 or 2 kbyte is - usually enough, while a larger buffer will increase the transfer rate. - When operating at 100 Mbit, use a buffer size of at least 8 kbyte for - maximum throughput. - -MSB IP address -CONFIG_DSU_IPMSB - Set the MSB 16 bits of the IP address of the EDCL. - -LSB IP address -CONFIG_DSU_IPLSB - Set the LSB 16 bits of the IP address of the EDCL. - -MSB ethernet address -CONFIG_DSU_ETHMSB - Set the MSB 24 bits of the ethernet address of the EDCL. - -LSB ethernet address -CONFIG_DSU_ETHLSB - Set the LSB 24 bits of the ethernet address of the EDCL. - -Programmable MAC/IP address -CONFIG_DSU_ETH_PROG - Say Y to make the LSB 4 bits of the EDCL MAC and IP address - configurable using the ethi.edcladdr inputs. -PROM/SRAM memory controller -CONFIG_SRCTRL - Say Y here to enable a simple (and small) PROM/SRAM memory controller. - The controller has a fixed number of waitstates, and is primarily - intended for FPGA implementations. The RAM data bus is always 32 bits, - the PROM can be configured to either 8 or 32 bits (hardwired). - -8-bit memory support -CONFIG_SRCTRL_8BIT - If you say Y here, the simple PROM/SRAM memory controller will - implement 8-bit PROM mode. - -PROM waitstates -CONFIG_SRCTRL_PROMWS - Select the number of waitstates for PROM access. - -RAM waitstates -CONFIG_SRCTRL_RAMWS - Select the number of waitstates for RAM access. - -IO waitstates -CONFIG_SRCTRL_IOWS - Select the number of waitstates for IO access. - -Read-modify-write support -CONFIG_SRCTRL_RMW - Say Y here to perform byte- and half-word writes as a - read-modify-write sequence. This is necessary if your - SRAM does not have individual byte enables. If you are - unsure, it is safe to say Y. - -SRAM bank select -CONFIG_SRCTRL_SRBANKS - Select number of SRAM banks. - -SRAM bank size select -CONFIG_SRCTRL_BANKSZ - Select size of SRAM banks in kBytes. - -PROM address bit select -CONFIG_SRCTRL_ROMASEL - Select address bit for PROM bank decoding. -Leon2 memory controller -CONFIG_MCTRL_LEON2 - Say Y here to enable the LEON2 memory controller. The controller - can access PROM, I/O, SRAM and SDRAM. The bus width for PROM - and SRAM is programmable to 8-, 16- or 32-bits. - -8-bit memory support -CONFIG_MCTRL_8BIT - If you say Y here, the PROM/SRAM memory controller will support - 8-bit mode, i.e. operate from 8-bit devices as if they were 32-bit. - Say N to save a few hundred gates. - -16-bit memory support -CONFIG_MCTRL_16BIT - If you say Y here, the PROM/SRAM memory controller will support - 16-bit mode, i.e. operate from 16-bit devices as if they were 32-bit. - Say N to save a few hundred gates. - -Write strobe feedback -CONFIG_MCTRL_WFB - If you say Y here, the PROM/SRAM write strobes (WRITEN, WEN) will - be used to enable the data bus drivers during write cycles. This - will guarantee that the data is still valid on the rising edge of - the write strobe. If you say N, the write strobes and the data bus - drivers will be clocked on the rising edge, potentially creating - a hold time problem in external memory or I/O. However, in all - practical cases, there is enough capacitance in the data bus lines - to keep the value stable for a few (many?) nano-seconds after the - buffers have been disabled, making it safe to say N and remove a - combinational path in the netlist that might be difficult to - analyze. - -Write strobe feedback -CONFIG_MCTRL_5CS - If you say Y here, the 5th (RAMSN[4]) SRAM chip select signal will - be enabled. If you don't intend to use it, say N and save some gates. - -SDRAM controller enable -CONFIG_MCTRL_SDRAM - Say Y here to enabled the PC100/PC133 SDRAM controller. If you don't - intend to use SDRAM, say N and save about 1 kgates. - -SDRAM controller inverted clock -CONFIG_MCTRL_SDRAM_INVCLK - If you say Y here, the SDRAM controller output signals will be delayed - with 1/2 clock in respect to the SDRAM clock. This will allow the used - of an SDRAM clock which in not strictly in phase with the internal - clock. This option will limit the SDRAM frequency to 40 - 50 MHz. - - On FPGA targets without SDRAM clock synchronizations through PLL/DLL, - say Y. On ASIC targets, say N and tell your foundry to balance the - SDRAM clock output. - -SDRAM separate address buses -CONFIG_MCTRL_SDRAM_SEPBUS - Say Y here if your SDRAM is connected through separate address - and data buses (SA & SD). This is the case on the GR-CPCI-XC2V6000 - board, but not on the GR-PCI-XC2V3000 or Avnet XCV1500E boards. - -64-bit data bus -CONFIG_MCTRL_SDRAM_BUS64 - Say Y here to enable 64-bit SDRAM data bus. - -Page burst enable -CONFIG_MCTRL_PAGE - Say Y here to enable SDRAM page burst operation. This will implement - read operations using page bursts rather than 8-word bursts and save - about 500 gates (100 LUTs). Note that not all SDRAM supports page - burst, so use this option with care. - -Programmable page burst enable -CONFIG_MCTRL_PROGPAGE - Say Y here to enable programmable SDRAM page burst operation. This - will allow to dynamically enable/disable page burst by setting - bit 17 in MCFG2. - -SDRAM controller enable -CONFIG_DDRMP - Say Y here to enabled a 32-bit DDR SDRAM controller. - -DDR chip selects -CONFIG_DDRMP_NCS - The number of chip selects the DDR controller should supply (1 - 2). - -DDR devices per bank -CONFIG_DDRMP_NDEV - The number of DDR devices per bank (chip select). Must be one - of 1, 2, 4, 8 or 16. - -DDR device data width -CONFIG_DDRMP_NBITS - The data width of each DDR device. Must be 4, 8 or 16 bits. - -DDR device density -CONFIG_DDRMP_MBITS - The density in Mbit of each DDR device. Must be 64, 128, 256, - 512 or 1024 Mbit. - -DDR frequency -CONFIG_DDRMP_FREQ - The DDR clock frequency in MHz. - -Secondary AHB port -CONFIG_DDRMP_EN2P - Say Y here to enable the second AHB port - -On-chip rom -CONFIG_AHBROM_ENABLE - Say Y here to add a block on on-chip rom to the AHB bus. The ram - provides 0-waitstates read access, burst support, and 8-, 16- - and 32-bit data size. The rom will be syntheised into block rams - on Xilinx and Altera FPGA devices, and into gates on ASIC - technologies. GRLIB includes a utility to automatically create - the rom VHDL model (ahbrom.vhd) from an ELF file. Refer to the GRLIB - documentation for details. - -On-chip rom address -CONFIG_AHBROM_START - Set the start address of AHB ROM (HADDR[31:20]). The ROM will occupy - a 1 Mbyte slot at the selected address. Default is 000, corresponding - to AHB address 0x00000000. When address 0x0 is selected, the rom area - of any other memory controller is set to 0x10000000 to avoid conflicts. - -Enable pipeline register for on-chip rom -CONFIG_AHBROM_PIPE - Say Y here to add a data pipeline register to the on-chip rom. - This should be done when the rom is implemenented in (ASIC) gates, - or in logic cells on FPGAs. Do not use this option when the rom is - implemented in block rams. If enabled, the rom will operate with - one waitstate. - -On-chip ram -CONFIG_AHBRAM_ENABLE - Say Y here to add a block on on-chip ram to the AHB bus. The ram - provides 0-waitstates read access and 0/1 waitstates write access. - All AHB burst types are supported, as well as 8-, 16- and 32-bit - data size. - -On-chip ram size -CONFIG_AHBRAM_SZ1 - Set the size of the on-chip AHB ram. The ram is infered/instantiated - as four byte-wide ram slices to allow byte and half-word write - accesses. It is therefore essential that the target package can - infer byte-wide rams. This is currently supported on the generic, - virtex, virtex2, proasic and axellerator targets. - -On-chip ram address -CONFIG_AHBRAM_START - Set the start address of AHB RAM (HADDR[31:20]). The RAM will occupy - a 1 Mbyte slot at the selected address. Default is A00, corresponding - to AHB address 0xA0000000. - -Gaisler Ethernet MAC enable -CONFIG_GRETH_ENABLE - Say Y here to enable the Gaisler Research Ethernet MAC . The MAC has - one AHB master interface to read and write packets to memory, and one - APB slave interface for accessing the control registers. - -Gaisler Ethernet 1G MAC enable -CONFIG_GRETH_GIGA - Say Y here to enable the Gaisler Research 1000 Mbit Ethernet MAC . - The 1G MAC is only available in the commercial version of GRLIB, - so do NOT enable it if you are using the GPL version. - -CONFIG_GRETH_FIFO4 - Set the depth of the receive and transmit FIFOs in the MAC core. - The MAC core will perform AHB burst read/writes with half the - size of the FIFO depth. - - -ATA interface enable -CONFIG_ATA_ENABLE - Say Y here to enable the ATA interace from OpenCores. The core has one - AHB slave interface for accessing all control registers. - -ATA register address -CONFIG_ATAIO - The control registers of the ATA core occupy 256 byte, and are - mapped in the AHB bus I/O area (0xFFF00000 - 0xFFFFF000). This setting - defines at which address in the I/O area the registers appear (HADDR[19:8]). - -ATA interrupt -CONFIG_ATAIRQ - Defines which interrupt number the ATA core will generate. - -ATA DMA support -CONFIG_ATA_MWDMA - Say yes here to enable IDE multi-word DMA support (MWDMA). - This will increase transfer rate compared to the PIO mode, - but increase area with approxiamtely 5,000 gates. Note that - DMA is not supported by legacy CF cards, so it makes no sense - to enable it on CF card sockets. - -ATA DMA FIFO depth -CONFIG_ATA_FIFO - Defines the DMA FIFO depth. Choose 8 or 16. -UART1 enable -CONFIG_UART1_ENABLE - Say Y here to enable UART1, or the console UART. This is needed to - get any print-out from LEON3 systems regardless of operating system. - -UART1 FIFO -CONFIG_UA1_FIFO1 - The UART has configurable transmitt and receive FIFO's, which can - be set to 1 - 32 bytes. Use 1 for minimum area, or 8 - 32 for - maximum throughput. - - -LEON3 interrupt controller -CONFIG_IRQ3_ENABLE - Say Y here to enable the LEON3 interrupt controller. This is needed - if you want to be able to receive interrupts. Operating systems like - Linux, RTEMS and eCos needs this option to be enabled. If you intend - to use the Bare-C run-time and not use interrupts, you could disable - the interrupt controller and save about 500 gates. - -LEON3 interrupt controller broadcast -CONFIG_IRQ3_BROADCAST_ENABLE - If enabled the broadcast register is used to determine which - interrupt should be sent to all cpus instead of just the first - one that consumes it. - -Secondary interrupts -CONFIG_IRQ3_SEC - The interrupt controller handles 15 interrupts by default (1 - 15). - These correspond to the 15 SPARC asyncronous traps (0x11 - 0x1F), - and AMBA interrupts 1 - 15. This option will enable 16 additional - (secondary) interrupts, corresponding to AMBA interrupts 16 - 31. - The secondary interrupts will be multiplexed onto one of the first - 15 interrupts. The total number of handled interrupts can then - be up to 30 (14 primary and 16 secondary). - -Number of interrupts -CONFIG_IRQ3_NSEC - Defines which of the first 15 interrupts should be used for the - secondary (16 - 31) interrupts. Interrupt 15 should be avoided - since it is not maskable by the processor. -Timer module enable -CONFIG_GPT_ENABLE - Say Y here to enable the Modular Timer Unit. The timer unit consists - of one common scaler and up to 7 independent timers. The timer unit - is needed for Linux, RTEMS, eCos and the Bare-C run-times. - -Timer module enable -CONFIG_GPT_NTIM - Set the number of timers in the timer unit (1 - 7). - -Scaler width -CONFIG_GPT_SW - Set the width if the common pre-scaler (2 - 16 bits). The scaler - is used to divide the system clock down to 1 MHz, so 8 bits should - be sufficient for most implementations (allows clocks up to 256 MHz). - -Timer width -CONFIG_GPT_TW - Set the width if the timers (2 - 32 bits). 32 bits is recommended - for the Bare-C run-time, lower values (e.g. 16 bits) can work with - RTEMS and Linux. - -Timer Interrupt -CONFIG_GPT_IRQ - Set the interrupt number for the first timer. Remaining timers will - have incrementing interrupts, unless the separate-interrupts option - below is disabled. - -Watchdog enable -CONFIG_GPT_WDOGEN - Say Y here to enable the watchdog functionality in the timer unit. - -Watchdog time-out value -CONFIG_GPT_WDOG - This value will be loaded in the watchdog timer at reset. - -Text-mode VGA -CONFIG_VGA_ENABLE - Say Y here to enable a simple text-mode VGA controller. The controller - generate 48x36 characters on a 640x480 pixel screen. The pixel clock - is 25 MHz. - -SVGA frame buffer -CONFIG_SVGA_ENABLE - Say Y here to enable a graphical frame buffer. The frame buffer - can be configured up to 1024x768 pixels and 8-, 16- or 32-bit - colour depth. - -PS2 KBD interface -CONFIG_KBD_ENABLE - Say Y here to enable a PS/2 keyboard or mouse interface. - -UART debugging -CONFIG_DEBUG_UART - During simulation, the output from the UARTs is printed on the - simulator console. Since the ratio between the system clock and - UART baud-rate is quite high, simulating UART output will be very - slow. If you say Y here, the UARTs will print a character as soon - as it is stored in the transmitter data register. The transmitter - ready flag will be permanently set, speeding up simulation. However, - the output on the UART tx line will be garbled. Has not impact on - synthesis, but will cause the LEON test bench to fail. - -FPU register tracing -CONFIG_DEBUG_FPURF - If you say Y here, all writes to the floating-point unit register file - will be printed on the simulator console. - diff --git a/designs/leon3-ge-hpe-mini-lattice/config.vhd b/designs/leon3-ge-hpe-mini-lattice/config.vhd deleted file mode 100644 index 6743eb32..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/config.vhd +++ /dev/null @@ -1,212 +0,0 @@ - - - - ------------------------------------------------------------------------------ --- LEON3 Demonstration design test bench configuration --- Copyright (C) 2009 Aeroflex Gaisler ------------------------------------------------------------------------------- - - -library techmap; -use techmap.gencomp.all; - -package config is - - ----------------------------------------------------------------------------- - -- GLEICHMANN SPECIFIC OPTIONS - ----------------------------------------------------------------------------- - - -- boot prom source - -- 0: external - -- 1: internal - constant CFG_BOOTOPT : integer := 0; - - -- HPE board version - -- 1: version 1 - -- /= 1: version 2 - constant CFG_HPEVER : integer := 2; - - -- provide ahb signals for an external slave - -- slave number can be defined below - -- numbers 8 to 15 can be used safely, numbers below - -- might be used by other LEON cores depending on configuration - constant CFG_EXTAHB : integer := 0; - - constant CFG_EXTAHB_ADDR : integer := 16#A00#; - - -- interrupt number the external slave is assigned to - -- unused at the moment - constant CFG_EXTAHB_IRQ : integer := 6; - - -- AHB slave number the external slave is assigned to - constant CFG_EXTAHB_NR : integer := 8; - - -- index number the external slave is assigned to - constant CFG_EXTAHB_ID : integer := 8; - - -- shift sdram address to bits 12+ - constant CFG_SDSHIFT : integer := 0; - - ----------------------------------------------------------------------------- - -- END GLEICHMANN SPECIFIC OPTIONS - ----------------------------------------------------------------------------- --- Technology and synthesis options - constant CFG_FABTECH : integer := lattice; - constant CFG_MEMTECH : integer := inferred; - constant CFG_PADTECH : integer := inferred; - constant CFG_NOASYNC : integer := 0; - constant CFG_SCAN : integer := 0; --- Clock generator - constant CFG_CLKTECH : integer := lattice; - constant CFG_CLKMUL : integer := (1); - constant CFG_CLKDIV : integer := (1); - constant CFG_OCLKDIV : integer := 1; - constant CFG_OCLKBDIV : integer := 0; - constant CFG_OCLKCDIV : integer := 0; - constant CFG_PCIDLL : integer := 0; - constant CFG_PCISYSCLK: integer := 0; - constant CFG_CLK_NOFB : integer := 0; --- LEON3 processor core - constant CFG_LEON3 : integer := 1; - constant CFG_NCPU : integer := (1); - constant CFG_NWIN : integer := (8); - constant CFG_V8 : integer := 0 + 4*0; - constant CFG_MAC : integer := 0; - constant CFG_BP : integer := 0; - constant CFG_SVT : integer := 0; - constant CFG_RSTADDR : integer := 16#00000#; - constant CFG_LDDEL : integer := (2); - constant CFG_NOTAG : integer := 0; - constant CFG_NWP : integer := (0); - constant CFG_PWD : integer := 0*2; - constant CFG_FPU : integer := 0 + 16*0 + 32*0; - constant CFG_GRFPUSH : integer := 0; - constant CFG_ICEN : integer := 1; - constant CFG_ISETS : integer := 1; - constant CFG_ISETSZ : integer := 8; - constant CFG_ILINE : integer := 8; - constant CFG_IREPL : integer := 0; - constant CFG_ILOCK : integer := 0; - constant CFG_ILRAMEN : integer := 0; - constant CFG_ILRAMADDR: integer := 16#8E#; - constant CFG_ILRAMSZ : integer := 1; - constant CFG_DCEN : integer := 1; - constant CFG_DSETS : integer := 1; - constant CFG_DSETSZ : integer := 4; - constant CFG_DLINE : integer := 4; - constant CFG_DREPL : integer := 0; - constant CFG_DLOCK : integer := 0; - constant CFG_DSNOOP : integer := 1 + 1 + 4*1; - constant CFG_DFIXED : integer := 16#0#; - constant CFG_DLRAMEN : integer := 0; - constant CFG_DLRAMADDR: integer := 16#8F#; - constant CFG_DLRAMSZ : integer := 1; - constant CFG_MMUEN : integer := 1; - constant CFG_ITLBNUM : integer := 8; - constant CFG_DTLBNUM : integer := 8; - constant CFG_TLB_TYPE : integer := 0 + 1*2; - constant CFG_TLB_REP : integer := 0; - constant CFG_MMU_PAGE : integer := 0; - constant CFG_DSU : integer := 1; - constant CFG_ITBSZ : integer := 1; - constant CFG_ATBSZ : integer := 1; - constant CFG_LEON3FT_EN : integer := 0; - constant CFG_IUFT_EN : integer := 0; - constant CFG_FPUFT_EN : integer := 0; - constant CFG_RF_ERRINJ : integer := 0; - constant CFG_CACHE_FT_EN : integer := 0; - constant CFG_CACHE_ERRINJ : integer := 0; - constant CFG_LEON3_NETLIST: integer := 0; - constant CFG_DISAS : integer := 0 + 0; - constant CFG_PCLOW : integer := 2; --- AMBA settings - constant CFG_DEFMST : integer := (0); - constant CFG_RROBIN : integer := 1; - constant CFG_SPLIT : integer := 0; - constant CFG_FPNPEN : integer := 0; - constant CFG_AHBIO : integer := 16#FFF#; - constant CFG_APBADDR : integer := 16#800#; - constant CFG_AHB_MON : integer := 0; - constant CFG_AHB_MONERR : integer := 0; - constant CFG_AHB_MONWAR : integer := 0; - constant CFG_AHB_DTRACE : integer := 0; --- DSU UART - constant CFG_AHB_UART : integer := 1; --- Ethernet DSU - constant CFG_DSU_ETH : integer := 1 + 0 + 0; - constant CFG_ETH_BUF : integer := 2; - constant CFG_ETH_IPM : integer := 16#C0A8#; - constant CFG_ETH_IPL : integer := 16#0040#; - constant CFG_ETH_ENM : integer := 16#020000#; - constant CFG_ETH_ENL : integer := 16#000020#; --- PROM/SRAM controller - constant CFG_SRCTRL : integer := 0; - constant CFG_SRCTRL_PROMWS : integer := 0; - constant CFG_SRCTRL_RAMWS : integer := 0; - constant CFG_SRCTRL_IOWS : integer := 0; - constant CFG_SRCTRL_RMW : integer := 0; - constant CFG_SRCTRL_8BIT : integer := 0; - constant CFG_SRCTRL_SRBANKS : integer := 1; - constant CFG_SRCTRL_BANKSZ : integer := 0; - constant CFG_SRCTRL_ROMASEL : integer := 0; --- LEON2 memory controller - constant CFG_MCTRL_LEON2 : integer := 1; - constant CFG_MCTRL_RAM8BIT : integer := 0; - constant CFG_MCTRL_RAM16BIT : integer := 0; - constant CFG_MCTRL_5CS : integer := 0; - constant CFG_MCTRL_SDEN : integer := 0; - constant CFG_MCTRL_SEPBUS : integer := 0; - constant CFG_MCTRL_INVCLK : integer := 0; - constant CFG_MCTRL_SD64 : integer := 0; - constant CFG_MCTRL_PAGE : integer := 0 + 0; --- DDRMP controller - constant CFG_DDRMP_EN : integer := 0; - constant CFG_DDRMP_EN2P : integer := 0; - constant CFG_DDRMP_NCS : integer := 1; - constant CFG_DDRMP_NDEV : integer := 2; - constant CFG_DDRMP_NBITS : integer := 16; - constant CFG_DDRMP_MBITS : integer := 64; - constant CFG_DDRMP_PERIOD : integer := 1000/100; --- AHB ROM - constant CFG_AHBROMEN : integer := 0; - constant CFG_AHBROPIP : integer := 0; - constant CFG_AHBRODDR : integer := 16#000#; - constant CFG_ROMADDR : integer := 16#000#; - constant CFG_ROMMASK : integer := 16#E00# + 16#000#; --- AHB RAM - constant CFG_AHBRAMEN : integer := 0; - constant CFG_AHBRSZ : integer := 1; - constant CFG_AHBRADDR : integer := 16#A00#; --- Gaisler Ethernet core - constant CFG_GRETH : integer := 1; - constant CFG_GRETH1G : integer := 0; - constant CFG_ETH_FIFO : integer := 32; --- ATA interface - constant CFG_ATA : integer := 0; - constant CFG_ATAIO : integer := 16#0#; - constant CFG_ATAIRQ : integer := 0; - constant CFG_ATADMA : integer := 0; - constant CFG_ATAFIFO : integer := 8; --- UART 1 - constant CFG_UART1_ENABLE : integer := 1; - constant CFG_UART1_FIFO : integer := 1; --- LEON3 interrupt controller - constant CFG_IRQ3_ENABLE : integer := 1; - constant CFG_IRQ3_NSEC : integer := 0; --- Modular timer - constant CFG_GPT_ENABLE : integer := 1; - constant CFG_GPT_NTIM : integer := (2); - constant CFG_GPT_SW : integer := (8); - constant CFG_GPT_TW : integer := (32); - constant CFG_GPT_IRQ : integer := (8); - constant CFG_GPT_SEPIRQ : integer := 1; - constant CFG_GPT_WDOGEN : integer := 0; - constant CFG_GPT_WDOG : integer := 16#0#; --- VGA and PS2/ interface - constant CFG_KBD_ENABLE : integer := 0; - constant CFG_VGA_ENABLE : integer := 1; - constant CFG_SVGA_ENABLE : integer := 0; --- GRLIB debugging - constant CFG_DUART : integer := 0; -end; diff --git a/designs/leon3-ge-hpe-mini-lattice/config.vhd.h b/designs/leon3-ge-hpe-mini-lattice/config.vhd.h deleted file mode 100644 index 0331827a..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/config.vhd.h +++ /dev/null @@ -1,176 +0,0 @@ --- Technology and synthesis options - constant CFG_FABTECH : integer := CONFIG_SYN_TECH; - constant CFG_MEMTECH : integer := CFG_RAM_TECH; - constant CFG_PADTECH : integer := CFG_PAD_TECH; - constant CFG_NOASYNC : integer := CONFIG_SYN_NO_ASYNC; - constant CFG_SCAN : integer := CONFIG_SYN_SCAN; - --- Clock generator - constant CFG_CLKTECH : integer := CFG_CLK_TECH; - constant CFG_CLKMUL : integer := CONFIG_CLK_MUL; - constant CFG_CLKDIV : integer := CONFIG_CLK_DIV; - constant CFG_OCLKDIV : integer := CONFIG_OCLK_DIV; - constant CFG_OCLKBDIV : integer := CONFIG_OCLKB_DIV; - constant CFG_OCLKCDIV : integer := CONFIG_OCLKC_DIV; - constant CFG_PCIDLL : integer := CONFIG_PCI_CLKDLL; - constant CFG_PCISYSCLK: integer := CONFIG_PCI_SYSCLK; - constant CFG_CLK_NOFB : integer := CONFIG_CLK_NOFB; - --- LEON3 processor core - constant CFG_LEON3 : integer := CONFIG_LEON3; - constant CFG_NCPU : integer := CONFIG_PROC_NUM; - constant CFG_NWIN : integer := CONFIG_IU_NWINDOWS; - constant CFG_V8 : integer := CFG_IU_V8 + 4*CFG_IU_MUL_STRUCT; - constant CFG_MAC : integer := CONFIG_IU_MUL_MAC; - constant CFG_BP : integer := CONFIG_IU_BP; - constant CFG_SVT : integer := CONFIG_IU_SVT; - constant CFG_RSTADDR : integer := 16#CONFIG_IU_RSTADDR#; - constant CFG_LDDEL : integer := CONFIG_IU_LDELAY; - constant CFG_NOTAG : integer := CONFIG_NOTAG; - constant CFG_NWP : integer := CONFIG_IU_WATCHPOINTS; - constant CFG_PWD : integer := CONFIG_PWD*2; - constant CFG_FPU : integer := CONFIG_FPU + 16*CONFIG_FPU_NETLIST + 32*CONFIG_FPU_GRFPU_SHARED; - constant CFG_GRFPUSH : integer := CONFIG_FPU_GRFPU_SHARED; - constant CFG_ICEN : integer := CONFIG_ICACHE_ENABLE; - constant CFG_ISETS : integer := CFG_IU_ISETS; - constant CFG_ISETSZ : integer := CFG_ICACHE_SZ; - constant CFG_ILINE : integer := CFG_ILINE_SZ; - constant CFG_IREPL : integer := CFG_ICACHE_ALGORND; - constant CFG_ILOCK : integer := CONFIG_ICACHE_LOCK; - constant CFG_ILRAMEN : integer := CONFIG_ICACHE_LRAM; - constant CFG_ILRAMADDR: integer := 16#CONFIG_ICACHE_LRSTART#; - constant CFG_ILRAMSZ : integer := CFG_ILRAM_SIZE; - constant CFG_DCEN : integer := CONFIG_DCACHE_ENABLE; - constant CFG_DSETS : integer := CFG_IU_DSETS; - constant CFG_DSETSZ : integer := CFG_DCACHE_SZ; - constant CFG_DLINE : integer := CFG_DLINE_SZ; - constant CFG_DREPL : integer := CFG_DCACHE_ALGORND; - constant CFG_DLOCK : integer := CONFIG_DCACHE_LOCK; - constant CFG_DSNOOP : integer := CONFIG_DCACHE_SNOOP + CONFIG_DCACHE_SNOOP_FAST + 4*CONFIG_DCACHE_SNOOP_SEPTAG; - constant CFG_DFIXED : integer := 16#CONFIG_CACHE_FIXED#; - constant CFG_DLRAMEN : integer := CONFIG_DCACHE_LRAM; - constant CFG_DLRAMADDR: integer := 16#CONFIG_DCACHE_LRSTART#; - constant CFG_DLRAMSZ : integer := CFG_DLRAM_SIZE; - constant CFG_MMUEN : integer := CONFIG_MMUEN; - constant CFG_ITLBNUM : integer := CONFIG_ITLBNUM; - constant CFG_DTLBNUM : integer := CONFIG_DTLBNUM; - constant CFG_TLB_TYPE : integer := CONFIG_TLB_TYPE + CFG_MMU_FASTWB*2; - constant CFG_TLB_REP : integer := CONFIG_TLB_REP; - constant CFG_MMU_PAGE : integer := CONFIG_MMU_PAGE; - constant CFG_DSU : integer := CONFIG_DSU_ENABLE; - constant CFG_ITBSZ : integer := CFG_DSU_ITB; - constant CFG_ATBSZ : integer := CFG_DSU_ATB; - constant CFG_LEON3FT_EN : integer := CONFIG_LEON3FT_EN; - constant CFG_IUFT_EN : integer := CONFIG_IUFT_EN; - constant CFG_FPUFT_EN : integer := CONFIG_FPUFT; - constant CFG_RF_ERRINJ : integer := CONFIG_RF_ERRINJ; - constant CFG_CACHE_FT_EN : integer := CONFIG_CACHE_FT_EN; - constant CFG_CACHE_ERRINJ : integer := CONFIG_CACHE_ERRINJ; - constant CFG_LEON3_NETLIST: integer := CONFIG_LEON3_NETLIST; - constant CFG_DISAS : integer := CONFIG_IU_DISAS + CONFIG_IU_DISAS_NET; - constant CFG_PCLOW : integer := CFG_DEBUG_PC32; - --- AMBA settings - constant CFG_DEFMST : integer := CONFIG_AHB_DEFMST; - constant CFG_RROBIN : integer := CONFIG_AHB_RROBIN; - constant CFG_SPLIT : integer := CONFIG_AHB_SPLIT; - constant CFG_FPNPEN : integer := CONFIG_AHB_FPNPEN; - constant CFG_AHBIO : integer := 16#CONFIG_AHB_IOADDR#; - constant CFG_APBADDR : integer := 16#CONFIG_APB_HADDR#; - constant CFG_AHB_MON : integer := CONFIG_AHB_MON; - constant CFG_AHB_MONERR : integer := CONFIG_AHB_MONERR; - constant CFG_AHB_MONWAR : integer := CONFIG_AHB_MONWAR; - constant CFG_AHB_DTRACE : integer := CONFIG_AHB_DTRACE; - --- DSU UART - constant CFG_AHB_UART : integer := CONFIG_DSU_UART; - --- Ethernet DSU - constant CFG_DSU_ETH : integer := CONFIG_DSU_ETH + CONFIG_DSU_ETH_PROG + CONFIG_DSU_ETH_DIS; - constant CFG_ETH_BUF : integer := CFG_DSU_ETHB; - constant CFG_ETH_IPM : integer := 16#CONFIG_DSU_IPMSB#; - constant CFG_ETH_IPL : integer := 16#CONFIG_DSU_IPLSB#; - constant CFG_ETH_ENM : integer := 16#CONFIG_DSU_ETHMSB#; - constant CFG_ETH_ENL : integer := 16#CONFIG_DSU_ETHLSB#; - --- PROM/SRAM controller - constant CFG_SRCTRL : integer := CONFIG_SRCTRL; - constant CFG_SRCTRL_PROMWS : integer := CONFIG_SRCTRL_PROMWS; - constant CFG_SRCTRL_RAMWS : integer := CONFIG_SRCTRL_RAMWS; - constant CFG_SRCTRL_IOWS : integer := CONFIG_SRCTRL_IOWS; - constant CFG_SRCTRL_RMW : integer := CONFIG_SRCTRL_RMW; - constant CFG_SRCTRL_8BIT : integer := CONFIG_SRCTRL_8BIT; - - constant CFG_SRCTRL_SRBANKS : integer := CFG_SR_CTRL_SRBANKS; - constant CFG_SRCTRL_BANKSZ : integer := CFG_SR_CTRL_BANKSZ; - constant CFG_SRCTRL_ROMASEL : integer := CONFIG_SRCTRL_ROMASEL; --- LEON2 memory controller - constant CFG_MCTRL_LEON2 : integer := CONFIG_MCTRL_LEON2; - constant CFG_MCTRL_RAM8BIT : integer := CONFIG_MCTRL_8BIT; - constant CFG_MCTRL_RAM16BIT : integer := CONFIG_MCTRL_16BIT; - constant CFG_MCTRL_5CS : integer := CONFIG_MCTRL_5CS; - constant CFG_MCTRL_SDEN : integer := CONFIG_MCTRL_SDRAM; - constant CFG_MCTRL_SEPBUS : integer := CONFIG_MCTRL_SDRAM_SEPBUS; - constant CFG_MCTRL_INVCLK : integer := CONFIG_MCTRL_SDRAM_INVCLK; - constant CFG_MCTRL_SD64 : integer := CONFIG_MCTRL_SDRAM_BUS64; - constant CFG_MCTRL_PAGE : integer := CONFIG_MCTRL_PAGE + CONFIG_MCTRL_PROGPAGE; - --- DDRMP controller - constant CFG_DDRMP_EN : integer := CONFIG_DDRMP; - constant CFG_DDRMP_EN2P : integer := CONFIG_DDRMP_EN2P; - constant CFG_DDRMP_NCS : integer := CONFIG_DDRMP_NCS; - constant CFG_DDRMP_NDEV : integer := CONFIG_DDRMP_NDEV; - constant CFG_DDRMP_NBITS : integer := CONFIG_DDRMP_NBITS; - constant CFG_DDRMP_MBITS : integer := CONFIG_DDRMP_MBITS; - constant CFG_DDRMP_PERIOD : integer := 1000/CONFIG_DDRMP_FREQ; - --- AHB ROM - constant CFG_AHBROMEN : integer := CONFIG_AHBROM_ENABLE; - constant CFG_AHBROPIP : integer := CONFIG_AHBROM_PIPE; - constant CFG_AHBRODDR : integer := 16#CONFIG_AHBROM_START#; - constant CFG_ROMADDR : integer := 16#CONFIG_ROM_START#; - constant CFG_ROMMASK : integer := 16#E00# + 16#CONFIG_ROM_START#; - --- AHB RAM - constant CFG_AHBRAMEN : integer := CONFIG_AHBRAM_ENABLE; - constant CFG_AHBRSZ : integer := CFG_AHBRAMSZ; - constant CFG_AHBRADDR : integer := 16#CONFIG_AHBRAM_START#; - --- Gaisler Ethernet core - constant CFG_GRETH : integer := CONFIG_GRETH_ENABLE; - constant CFG_GRETH1G : integer := CONFIG_GRETH_GIGA; - constant CFG_ETH_FIFO : integer := CFG_GRETH_FIFO; - --- ATA interface - constant CFG_ATA : integer := CONFIG_ATA_ENABLE; - constant CFG_ATAIO : integer := 16#CONFIG_ATAIO#; - constant CFG_ATAIRQ : integer := CONFIG_ATAIRQ; - constant CFG_ATADMA : integer := CONFIG_ATA_MWDMA; - constant CFG_ATAFIFO : integer := CONFIG_ATA_FIFO; - --- UART 1 - constant CFG_UART1_ENABLE : integer := CONFIG_UART1_ENABLE; - constant CFG_UART1_FIFO : integer := CFG_UA1_FIFO; - --- LEON3 interrupt controller - constant CFG_IRQ3_ENABLE : integer := CONFIG_IRQ3_ENABLE; - constant CFG_IRQ3_NSEC : integer := CONFIG_IRQ3_NSEC; - --- Modular timer - constant CFG_GPT_ENABLE : integer := CONFIG_GPT_ENABLE; - constant CFG_GPT_NTIM : integer := CONFIG_GPT_NTIM; - constant CFG_GPT_SW : integer := CONFIG_GPT_SW; - constant CFG_GPT_TW : integer := CONFIG_GPT_TW; - constant CFG_GPT_IRQ : integer := CONFIG_GPT_IRQ; - constant CFG_GPT_SEPIRQ : integer := CONFIG_GPT_SEPIRQ; - constant CFG_GPT_WDOGEN : integer := CONFIG_GPT_WDOGEN; - constant CFG_GPT_WDOG : integer := 16#CONFIG_GPT_WDOG#; - --- VGA and PS2/ interface - constant CFG_KBD_ENABLE : integer := CONFIG_KBD_ENABLE; - constant CFG_VGA_ENABLE : integer := CONFIG_VGA_ENABLE; - constant CFG_SVGA_ENABLE : integer := CONFIG_SVGA_ENABLE; - --- GRLIB debugging - constant CFG_DUART : integer := CONFIG_DEBUG_UART; - diff --git a/designs/leon3-ge-hpe-mini-lattice/config.vhd.in b/designs/leon3-ge-hpe-mini-lattice/config.vhd.in deleted file mode 100644 index 70ef3ddb..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/config.vhd.in +++ /dev/null @@ -1,57 +0,0 @@ -#include "config.h" -#include "tkconfig.h" -#include "leon3mini.h" - ------------------------------------------------------------------------------ --- LEON3 Demonstration design test bench configuration --- Copyright (C) 2009 Aeroflex Gaisler ------------------------------------------------------------------------------- - - -library techmap; -use techmap.gencomp.all; - -package config is - - ----------------------------------------------------------------------------- - -- GLEICHMANN SPECIFIC OPTIONS - ----------------------------------------------------------------------------- - - -- boot prom source - -- 0: external - -- 1: internal - constant CFG_BOOTOPT : integer := CONFIG_BOOTOPT; - - -- HPE board version - -- 1: version 1 - -- /= 1: version 2 - constant CFG_HPEVER : integer := CONFIG_HPEVER; - - -- provide ahb signals for an external slave - -- slave number can be defined below - -- numbers 8 to 15 can be used safely, numbers below - -- might be used by other LEON cores depending on configuration - constant CFG_EXTAHB : integer := CONFIG_EXTAHB_ENABLE; - - constant CFG_EXTAHB_ADDR : integer := 16#CONFIG_EXTAHB_BASE#; - - -- interrupt number the external slave is assigned to - -- unused at the moment - constant CFG_EXTAHB_IRQ : integer := CONFIG_EXTAHB_INT; - - -- AHB slave number the external slave is assigned to - constant CFG_EXTAHB_NR : integer := 8; - - -- index number the external slave is assigned to - constant CFG_EXTAHB_ID : integer := 8; - - -- shift sdram address to bits 12+ - constant CFG_SDSHIFT : integer := CONFIG_SDRAM_SHIFT; - - ----------------------------------------------------------------------------- - -- END GLEICHMANN SPECIFIC OPTIONS - ----------------------------------------------------------------------------- - -#include "config.vhd.h" - -end; diff --git a/designs/leon3-ge-hpe-mini-lattice/defconfig b/designs/leon3-ge-hpe-mini-lattice/defconfig deleted file mode 100755 index 852d3dc0..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/defconfig +++ /dev/null @@ -1,252 +0,0 @@ -# -# Automatically generated make config: don't edit -# - -# -# Synthesis -# -# CONFIG_SYN_INFERRED is not set -# CONFIG_SYN_ALTERA is not set -# CONFIG_SYN_AXCEL is not set -# CONFIG_SYN_PROASIC is not set -# CONFIG_SYN_PROASICPLUS is not set -# CONFIG_SYN_PROASIC3 is not set -# CONFIG_SYN_ATC18 is not set -# CONFIG_SYN_IHP25 is not set -CONFIG_SYN_LATTICE=y -# CONFIG_SYN_RH_LIB18T is not set -# CONFIG_SYN_RHUMC is not set -# CONFIG_SYN_SPARTAN2 is not set -# CONFIG_SYN_SPARTAN3 is not set -# CONFIG_SYN_VIRTEX is not set -# CONFIG_SYN_VIRTEXE is not set -# CONFIG_SYN_VIRTEX2 is not set -# CONFIG_SYN_VIRTEX4 is not set -# CONFIG_SYN_INFER_RAM is not set -# CONFIG_SYN_INFER_PADS is not set -# CONFIG_SYN_NO_ASYNC is not set - -# -# Clock generation -# -# CONFIG_CLK_INFERRED is not set -# CONFIG_CLK_HCLKBUF is not set -# CONFIG_CLK_ALTDLL is not set -CONFIG_CLK_LATDLL=y -# CONFIG_CLK_LIB18T is not set -# CONFIG_CLK_CLKDLL is not set -# CONFIG_CLK_DCM is not set -CONFIG_CLK_MUL=1 -CONFIG_CLK_DIV=1 -# CONFIG_PCI_SYSCLK is not set -CONFIG_LEON3=y -CONFIG_PROC_NUM=1 - -# -# Processor -# - -# -# Integer unit -# -CONFIG_IU_NWINDOWS=8 -# CONFIG_IU_V8MULDIV is not set -# CONFIG_IU_SVT is not set -CONFIG_IU_LDELAY=2 -CONFIG_IU_WATCHPOINTS=0 -# CONFIG_PWD is not set -CONFIG_IU_RSTADDR=00000 - -# -# Floating-point unit -# -# CONFIG_FPU_ENABLE is not set - -# -# Cache system -# -CONFIG_ICACHE_ENABLE=y -CONFIG_ICACHE_ASSO1=y -# CONFIG_ICACHE_ASSO2 is not set -# CONFIG_ICACHE_ASSO3 is not set -# CONFIG_ICACHE_ASSO4 is not set -# CONFIG_ICACHE_SZ1 is not set -# CONFIG_ICACHE_SZ2 is not set -# CONFIG_ICACHE_SZ4 is not set -CONFIG_ICACHE_SZ8=y -# CONFIG_ICACHE_SZ16 is not set -# CONFIG_ICACHE_SZ32 is not set -# CONFIG_ICACHE_SZ64 is not set -# CONFIG_ICACHE_SZ128 is not set -# CONFIG_ICACHE_SZ256 is not set -# CONFIG_ICACHE_LZ16 is not set -CONFIG_ICACHE_LZ32=y -CONFIG_DCACHE_ENABLE=y -CONFIG_DCACHE_ASSO1=y -# CONFIG_DCACHE_ASSO2 is not set -# CONFIG_DCACHE_ASSO3 is not set -# CONFIG_DCACHE_ASSO4 is not set -# CONFIG_DCACHE_SZ1 is not set -# CONFIG_DCACHE_SZ2 is not set -CONFIG_DCACHE_SZ4=y -# CONFIG_DCACHE_SZ8 is not set -# CONFIG_DCACHE_SZ16 is not set -# CONFIG_DCACHE_SZ32 is not set -# CONFIG_DCACHE_SZ64 is not set -# CONFIG_DCACHE_SZ128 is not set -# CONFIG_DCACHE_SZ256 is not set -CONFIG_DCACHE_LZ16=y -# CONFIG_DCACHE_LZ32 is not set -CONFIG_DCACHE_SNOOP=y -# CONFIG_DCACHE_SNOOP_FAST is not set -CONFIG_CACHE_FIXED=0 - -# -# MMU -# -CONFIG_MMU_ENABLE=y -# CONFIG_MMU_COMBINED is not set -CONFIG_MMU_SPLIT=y -CONFIG_MMU_REPARRAY=y -# CONFIG_MMU_REPINCREMENT is not set -# CONFIG_MMU_I2 is not set -# CONFIG_MMU_I4 is not set -CONFIG_MMU_I8=y -# CONFIG_MMU_I16 is not set -# CONFIG_MMU_I32 is not set -# CONFIG_MMU_D2 is not set -# CONFIG_MMU_D4 is not set -CONFIG_MMU_D8=y -# CONFIG_MMU_D16 is not set -# CONFIG_MMU_D32 is not set - -# -# Debug Support Unit -# -CONFIG_DSU_ENABLE=y -CONFIG_DSU_ITRACE=y -CONFIG_DSU_ITRACESZ1=y -# CONFIG_DSU_ITRACESZ2 is not set -# CONFIG_DSU_ITRACESZ4 is not set -# CONFIG_DSU_ITRACESZ8 is not set -# CONFIG_DSU_ITRACESZ16 is not set -CONFIG_DSU_ATRACE=y -CONFIG_DSU_ATRACESZ1=y -# CONFIG_DSU_ATRACESZ2 is not set -# CONFIG_DSU_ATRACESZ4 is not set -# CONFIG_DSU_ATRACESZ8 is not set -# CONFIG_DSU_ATRACESZ16 is not set - -# -# VHDL debug settings -# -# CONFIG_IU_DISAS is not set -# CONFIG_DEBUG_PC32 is not set - -# -# AMBA configuration -# -CONFIG_AHB_DEFMST=0 -CONFIG_AHB_RROBIN=y -# CONFIG_AHB_SPLIT is not set -CONFIG_AHB_IOADDR=FFF -CONFIG_APB_HADDR=800 - -# -# Debug Link -# -CONFIG_DSU_UART=y -CONFIG_DSU_ETH=y -# CONFIG_DSU_ETHSZ1 is not set -CONFIG_DSU_ETHSZ2=y -# CONFIG_DSU_ETHSZ4 is not set -# CONFIG_DSU_ETHSZ8 is not set -# CONFIG_DSU_ETHSZ16 is not set -CONFIG_DSU_IPMSB=C0A8 -CONFIG_DSU_IPLSB=0040 -CONFIG_DSU_ETHMSB=00007A -CONFIG_DSU_ETHLSB=CC0040 - -# -# Peripherals -# - -# -# Memory controllers -# - -# -# 8/32-bit PROM/SRAM controller -# -# CONFIG_SRCTRL is not set - -# -# Leon2 memory controller -# -CONFIG_MCTRL_LEON2=y -# CONFIG_MCTRL_8BIT is not set -# CONFIG_MCTRL_16BIT is not set -# CONFIG_MCTRL_5CS is not set -# CONFIG_MCTRL_SDRAM is not set - -# -# Multi-port DDR controller -# -CONFIG_DDRMP=y -CONFIG_DDRMP_NCS=1 -CONFIG_DDRMP_NDEV=2 -CONFIG_DDRMP_NBITS=16 -CONFIG_DDRMP_MBITS=256 - -# -# On-chip RAM/ROM -# -# CONFIG_AHBROM_ENABLE is not set -# CONFIG_AHBRAM_ENABLE is not set - -# -# Ethernet -# -CONFIG_GRETH_ENABLE=y -# CONFIG_GRETH_FIFO4 is not set -# CONFIG_GRETH_FIFO8 is not set -# CONFIG_GRETH_FIFO16 is not set -CONFIG_GRETH_FIFO32=y -# CONFIG_GRETH_FIFO64 is not set - -# -# ATA -# -CONFIG_ATA_ENABLE=y -CONFIG_ATAIO=A00 -CONFIG_ATAIRQ=10 - -# -# UARTs, timers and irq control -# -CONFIG_UART1_ENABLE=y -CONFIG_UA1_FIFO1=y -# CONFIG_UA1_FIFO2 is not set -# CONFIG_UA1_FIFO4 is not set -# CONFIG_UA1_FIFO8 is not set -# CONFIG_UA1_FIFO16 is not set -# CONFIG_UA1_FIFO32 is not set -CONFIG_IRQ3_ENABLE=y -CONFIG_GPT_ENABLE=y -CONFIG_GPT_NTIM=2 -CONFIG_GPT_SW=8 -CONFIG_GPT_TW=32 -CONFIG_GPT_IRQ=8 -CONFIG_GPT_SEPIRQ=y -# CONFIG_GPT_WDOGEN is not set - -# -# Keybord and VGA interface -# -# CONFIG_KBD_ENABLE is not set -# CONFIG_VGA_ENABLE is not set - -# -# VHDL Debugging -# -# CONFIG_DEBUG_UART is not set diff --git a/designs/leon3-ge-hpe-mini-lattice/leon3mini.h b/designs/leon3-ge-hpe-mini-lattice/leon3mini.h deleted file mode 100644 index 60343996..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/leon3mini.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef CONFIG_EXTAHB_ENABLE -#define CONFIG_EXTAHB_ENABLE 0 -#define CONFIG_EXTAHB_BASE A00 -#define CONFIG_EXTAHB_INT 6 -#endif - -#ifndef CONFIG_SDRAM_SHIFT -#define CONFIG_SDRAM_SHIFT 0 -#endif - -#ifdef CONFIG_BOOTOPT_INT -#define CONFIG_BOOTOPT 1 -#else -#define CONFIG_BOOTOPT 0 -#endif - -#ifdef CONFIG_HPEVER_1 -#define CONFIG_HPEVER 1 -#else -#define CONFIG_HPEVER 2 -#endif - diff --git a/designs/leon3-ge-hpe-mini-lattice/leon3mini.vhd b/designs/leon3-ge-hpe-mini-lattice/leon3mini.vhd deleted file mode 100644 index a6d333df..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/leon3mini.vhd +++ /dev/null @@ -1,794 +0,0 @@ ------------------------------------------------------------------------------- --- LEON3 Demonstration design --- Copyright (C) 2004 Jiri Gaisler, Gaisler Research --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------- --- modified by Thomas Ameseder, Gleichmann Electronics 2004, 2005 to --- support the use of an external AHB slave and different HPE board versions ------------------------------------------------------------------------------- --- further adapted from Hpe_compact to Hpe_mini (Feb. 2005) ------------------------------------------------------------------------------- - - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; -library techmap; -use techmap.gencomp.all; -library gaisler; -use gaisler.memctrl.all; -use gaisler.ddrpkg.all; -use gaisler.leon3.all; -use gaisler.uart.all; -use gaisler.misc.all; -use gaisler.net.all; -library esa; -use esa.memoryctrl.all; -library gleichmann; -use gleichmann.hpi.all; -use gleichmann.multiio.all; -use gleichmann.dac.all; -use gleichmann.ge_clkgen.all; -library ec; -use ec.components.all; - -use work.config.all; - - -entity leon3mini is - generic ( - fabtech : integer := CFG_FABTECH; - memtech : integer := CFG_MEMTECH; - padtech : integer := CFG_PADTECH; - clktech : integer := CFG_CLKTECH; - disas : integer := CFG_DISAS; -- Enable disassembly to console - dbguart : integer := CFG_DUART; -- Print UART on console - pclow : integer := CFG_PCLOW; - ddrfreq : integer := 100000; -- frequency of ddr clock in kHz - cpufreq : integer := 50000; -- frequency of cpu/ahb clock in kHz - boardfreq : string := "25" -- frequency of ddr clock in MHz - ); - port ( - resetn : in std_ulogic; - resoutn : out std_logic; - clk : in std_ulogic; - - errorn : out std_ulogic; - address : out std_logic_vector(24 downto 2); - data : inout std_logic_vector(31 downto 0); - - ramsn : out std_ulogic; - rben : out std_logic_vector(3 downto 0); - - romsn : out std_ulogic; --- iosn : out std_ulogic; - oen : out std_ulogic; - -- read : out std_ulogic; - writen : out std_ulogic; - romwpn : out std_ulogic; - romrstn : out std_ulogic; - - -- ddr memory - ddr_clk0 : out std_logic; - ddr_clk0b : out std_logic; - ddr_clk_fb : in std_logic; - ddr_cke0 : out std_logic; - ddr_cs0b : out std_logic; - ddr_web : out std_ulogic; -- ddr write enable - ddr_rasb : out std_ulogic; -- ddr ras - ddr_casb : out std_ulogic; -- ddr cas - ddr_dm : out std_logic_vector (3 downto 0); -- ddr dm - ddr_dqs : inout std_logic_vector (3 downto 0); -- ddr dqs - ddr_ad : out std_logic_vector (12 downto 0); -- ddr address - ddr_ba : out std_logic_vector (1 downto 0); -- ddr bank address - ddr_dq : inout std_logic_vector (31 downto 0); -- ddr data - ddr_clk1 : out std_logic; -- ddr module 1 - ddr_clk1b : out std_logic; -- ddr module 1 - ddr_cke1 : out std_logic; -- ddr module 1 - ddr_cs1b : out std_logic; -- ddr module 1 - - -- debug support unit - -- dsuen : in std_ulogic; - dsubre : in std_ulogic; - -- dsuactn : out std_ulogic; - - -- UART for serial DCL/console I/O - serrx : in std_ulogic; - sertx : out std_ulogic; - - -- ethernet signals - emdio : inout std_logic; -- ethernet PHY interface - etx_clk : in std_ulogic; - erx_clk : in std_ulogic; - erxd : in std_logic_vector(3 downto 0); - erx_dv : in std_ulogic; - erx_er : in std_ulogic; - erx_col : in std_ulogic; - erx_crs : in std_ulogic; - etxd : out std_logic_vector(3 downto 0); - etx_en : out std_ulogic; - etx_er : out std_ulogic; - emdc : out std_ulogic; - --- sample_clock : out std_ulogic; - -------------------------------------------------------------------------------- --- HPI PORT -------------------------------------------------------------------------------- - hpiaddr : out std_logic_vector(1 downto 0); - hpidata : inout std_logic_vector(15 downto 0); - hpicsn : out std_ulogic; - hpiwrn : out std_ulogic; - hpirdn : out std_ulogic; - hpiint : in std_ulogic; - - -- equality flag for R/W data --- dbg_equal : out std_ulogic; -------------------------------------------------------------------------------- - - ------------------------------------------------------------------------------------- - -- IO SECTION - ------------------------------------------------------------------------------------- - dsw : in std_logic_vector(3 downto 0); - led : out std_logic_vector(7 downto 0); -- 8 leds - - sevensegment : out std_logic_vector(9 downto 0); -- 7-segments and 2 strobes - - lcd_enable : out std_logic; - lcd_regsel : out std_logic; - lcd_rw : out std_logic; - - -- keyboard - tst_col : out std_logic_vector(2 downto 0); -- column outputs - tst_row : in std_logic_vector(3 downto 0); -- row inputs - - -- expansion connector signals - exp_datao : out std_logic_vector(19 downto 0); - exp_datai : in std_logic_vector(19 downto 0); - - -- audio codec - codec_mode : out std_ulogic; - codec_mclk : out std_ulogic; - codec_sclk : out std_ulogic; - codec_cs : out std_ulogic; - codec_sdin : out std_ulogic; - codec_din : out std_ulogic; -- I2S format serial data input to the sigma-delta stereo DAC - codec_bclk : out std_ulogic; -- I2S serial-bit clock --- codec_dout : in std_ulogic; -- I2S format serial data output from the sigma-delta stereo ADC - codec_lrcin : out std_ulogic; -- I2S DAC-word clock signal - codec_lrcout : out std_ulogic; -- I2S ADC-word clock signal - - dac : out std_ulogic; - vga_vsync : out std_ulogic; - vga_hsync : out std_ulogic; - vga_rd : out std_logic_vector(1 downto 0); - vga_gr : out std_logic_vector(1 downto 0); - vga_bl : out std_logic_vector(1 downto 0) - - ); -end; - -architecture rtl of leon3mini is - - - component clkgen_lattice - generic ( - clk_mul : string := "2"; - clk_div : string := "1"; - freq : string := "25"; -- clock frequency in MHz - ddrclk_mul : string := "4"; - ddrclk_div : string := "1"); - port ( - clkin : in std_logic; - clk0 : out std_logic; -- main clock - clk180 : out std_logic; -- main clock phase 180 - clk270 : out std_logic; -- main clock phase 270 - ddrclk : out std_logic; - ddrclkb : out std_logic; - clkm : out std_logic; - cgi : in clkgen_in_type; - cgo : out clkgen_out_type); - end component; - - - constant blength : integer := 12; - constant fifodepth : integer := 8; - constant CFG_MULTIIO : integer := 0; - constant CFG_AHB2HPI : integer := 0; - constant CFG_DAC_AHB : integer := 0; - - signal vcc, gnd : std_logic_vector(4 downto 0); - signal memi : memory_in_type; - signal memo : memory_out_type; - signal wpo : wprot_out_type; - signal sdi : sdctrl_in_type; - signal sdo : sdram_out_type; - signal sdo2, sdo3 : sdctrl_out_type; - - signal apbi : apb_slv_in_type; - signal apbo : apb_slv_out_vector := (others => apb_none); - signal ahbsi : ahb_slv_in_type; - signal ahbso : ahb_slv_out_vector := (others => ahbs_none); - signal ahbmi : ahb_mst_in_type; - signal ahbmo : ahb_mst_out_vector := (others => ahbm_none); - - signal ddrclk0, ddrclk90, ddrclk180, ddrclk270, ddrclk, ddrclkb : std_ulogic; - signal clkm, rstn, sdclkl : std_ulogic; - signal cgi : clkgen_in_type; - signal cgo : clkgen_out_type; - signal u1i, dui : uart_in_type; - signal u1o, duo : uart_out_type; - - signal irqi : irq_in_vector(0 to CFG_NCPU-1); - signal irqo : irq_out_vector(0 to CFG_NCPU-1); - - signal dbgi : l3_debug_in_vector(0 to CFG_NCPU-1); - signal dbgo : l3_debug_out_vector(0 to CFG_NCPU-1); - - signal dsui : dsu_in_type; - signal dsuo : dsu_out_type; - - signal ethi, ethi1, ethi2 : eth_in_type; - signal etho, etho1, etho2 : eth_out_type; - - signal gpti : gptimer_in_type; - - --- Adaptions for HPE Compact - --- signal dsubre : std_logic; - signal dsuact : std_logic; - signal oen_ctrl : std_logic; - - signal shortcut : std_logic; - signal rx : std_logic; - signal tx : std_logic; - signal duart, ldsuen : std_logic; - signal rsertx, rserrx, rdsuen : std_logic; - - -- ram write enable, not needed on the port - signal rwen : std_logic_vector(3 downto 0); - - signal rxd1 : std_logic; - signal txd1 : std_logic; - signal dsutx : std_ulogic; -- DSU tx data - signal dsurx : std_ulogic; -- DSU rx data - - --------------------------------------------------------------------------------------- - -- HPI SIGNALS - --------------------------------------------------------------------------------------- --- signal hpiaddr : std_logic_vector(1 downto 0); --- signal hpidata : std_logic_vector(15 downto 0); --- signal hpicsn : std_ulogic; --- signal hpiwrn : std_ulogic; --- signal hpirdn : std_ulogic; --- signal hpiint : std_ulogic; - - signal hpiwriten : std_ulogic; -- intermediate signal - signal hpirdata : std_logic_vector(15 downto 0); - signal hpiwdata : std_logic_vector(15 downto 0); - signal drive_bus : std_ulogic; - - signal dbg_rdata : std_logic_vector(15 downto 0); - signal dbg_wdata : std_logic_vector(15 downto 0); - --------------------------------------------------------------------------------------- - - signal vgao : apbvga_out_type; - signal ddsi : ddrmem_in_type; - signal ddso : ddrmem_out_type; - - constant modbanks : integer := CFG_DDRMP_NCS; -- Allowed: 1,2 (banks on module) - constant numchips : integer := CFG_DDRMP_NDEV; -- Allowed: 1, 2, 4, 8, 16 - constant chipbits : integer := CFG_DDRMP_NBITS; -- Allowed: 4, 8, 16 - constant chipsize : integer := CFG_DDRMP_MBITS; -- Allowed: 64, 128, 256, 512, 1024 (Mbit) - --- attribute syn_useioff : boolean; --- attribute syn_useioff of rtl : architecture is false; - - --------------------------------------------------------------------------------------- - -- IO SECTION - --------------------------------------------------------------------------------------- - - signal mioi : MultiIO_in_type; - signal mioo : MultiIO_out_type; - - signal dsuactn : std_ulogic; --- signal errorn : std_ulogic; - - -- synplify attribute to flatten netlist - attribute syn_netlist_hierarchy : boolean; - attribute syn_netlist_hierarchy of rtl : architecture is false; - -begin - - romwpn <= '1'; - romrstn <= rstn; - ----------------------------------------------------------------------- ---- Reset and Clock generation ------------------------------------- ----------------------------------------------------------------------- - - vcc <= (others => '1'); gnd <= (others => '0'); - cgi.pllctrl <= "00"; cgi.pllrst <= not resetn; - ddrclk90 <= '0'; sdclkl <= clkm; - - -- do not change the generics (ddr requirements) - clkgen0 : clkgen_lattice -- clock generator - generic map (freq => boardfreq, - clk_mul => "1", - clk_div => "1", - ddrclk_mul => "4", - ddrclk_div => "1") -- 25 MHz cpu clock and 100 MHz DDR clock - port map (clkin => clk, clkm => clkm, clk0 => ddrclk0, clk180 => ddrclk180, - clk270 => ddrclk270, ddrclk => ddrclk, ddrclkb => ddrclkb, - cgi => cgi, cgo => cgo); - - ddrclk_pad : outpad generic map (tech => padtech, level => sstl2_i) - port map (ddr_clk0, ddrclk); - ddrclkn_pad : outpad generic map (tech => padtech, level => sstl2_i) - port map (ddr_clk0b, ddrclkb); - - rst0 : rstgen port map (resetn, clkm, cgo.clklock, rstn); - ----------------------------------------------------------------------- ---- AHB CONTROLLER -------------------------------------------------- ----------------------------------------------------------------------- - - ahb0 : ahbctrl -- AHB arbiter/multiplexer - generic map (defmast => CFG_DEFMST, split => CFG_SPLIT, - rrobin => CFG_RROBIN, ioaddr => CFG_AHBIO, - ioen => 1, nahbm => 4, nahbs => 8) - port map (rstn, clkm, ahbmi, ahbmo, ahbsi, ahbso); - ----------------------------------------------------------------------- ---- LEON3 processor and DSU ----------------------------------------- ----------------------------------------------------------------------- - - l3 : if CFG_LEON3 = 1 generate - cpu : for i in 0 to CFG_NCPU-1 generate - u0 : leon3s -- LEON3 processor - generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, - 0, CFG_MAC, pclow, 0, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, - CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, - CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, - CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, - CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, - CFG_NCPU-1) - port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, - irqi(i), irqo(i), dbgi(i), dbgo(i)); - end generate; - errorn_pad : odpad generic map (tech => padtech) port map (errorn, dbgo(0).error); - - dsugen : if CFG_DSU = 1 generate - dsu0 : dsu3 -- LEON3 Debug Support Unit - generic map (hindex => 2, haddr => 16#900#, hmask => 16#F00#, - ncpu => CFG_NCPU, tbits => 30, tech => memtech, irq => 0, kbytes => CFG_ATBSZ) - port map (rstn, clkm, ahbmi, ahbsi, ahbso(2), dbgo, dbgi, dsui, dsuo); - -- dsuen_pad : inpad generic map (tech => padtech) port map (dsuen, dsui.enable); - dsui.enable <= '1'; - -- **** tame: do not use inversion - dsubre_pad : inpad generic map (tech => padtech) port map (dsubre, dsui.break); - dsuact_pad : outpad generic map (tech => padtech) port map (dsuact, dsuo.active); - end generate; - end generate; - nodsu : if CFG_DSU = 0 generate - ahbso(2) <= ahbs_none; dsuo.tstop <= '0'; dsuo.active <= '0'; - end generate; - - dcomgen : if CFG_AHB_UART = 1 generate - dcom0 : ahbuart -- Debug UART - generic map (hindex => CFG_NCPU, pindex => 4, paddr => 7) - port map (rstn, clkm, dui, duo, apbi, apbo(4), ahbmi, ahbmo(CFG_NCPU)); - dsurx_pad : inpad generic map (tech => padtech) port map (dsurx, dui.rxd); - dsutx_pad : outpad generic map (tech => padtech) port map (dsutx, duo.txd); - end generate; - nouah : if CFG_AHB_UART = 0 generate apbo(4) <= apb_none; end generate; - ----------------------------------------------------------------------- ---- Memory controllers ---------------------------------------------- ----------------------------------------------------------------------- - - mg1 : if CFG_SRCTRL = 1 generate -- 32-bit PROM/SRAM controller - sr0 : srctrl generic map (hindex => 5, ramws => CFG_SRCTRL_RAMWS, - romws => CFG_SRCTRL_PROMWS, ramaddr => 16#400#, rmw => 1) - port map (rstn, clkm, ahbsi, ahbso(5), memi, memo, sdo3); - apbo(0) <= apb_none; - end generate; - - mg2 : if CFG_MCTRL_LEON2 = 1 generate -- LEON2 memory controller - sr1 : mctrl generic map (hindex => 5, pindex => 0, - paddr => 0, srbanks => 1, ramaddr => 16#600#, sden => 0) - port map (rstn, clkm, memi, memo, ahbsi, ahbso(5), apbi, apbo(0), wpo, sdo); - end generate; - - memi.brdyn <= '1'; memi.bexcn <= '1'; - memi.writen <= '1'; memi.wrn <= "1111"; memi.bwidth <= "10"; - - mg0 : if (CFG_MCTRL_LEON2 = 0) and (CFG_SRCTRL = 0) generate - apbo(0) <= apb_none; ahbso(0) <= ahbs_none; - rams_pad : outpad generic map (tech => padtech) - port map (ramsn, vcc(0)); - roms_pad : outpad generic map (tech => padtech) - port map (romsn, vcc(0)); - end generate; - - mgpads : if not ((CFG_MCTRL_LEON2 = 0) and (CFG_SRCTRL = 0)) generate - addr_pad : outpadv generic map (width => 23, tech => padtech) - port map (address, memo.address(24 downto 2)); - rams_pad : outpad generic map (tech => padtech) - port map (ramsn, memo.ramsn(0)); - roms_pad : outpad generic map (tech => padtech) - port map (romsn, memo.romsn(0)); - oen_pad : outpad generic map (tech => padtech) - port map (oen, memo.oen); - rwen_pad : outpadv generic map (width => 4, tech => padtech) - port map (rwen, memo.wrn); - rben_pad : outpadv generic map (width => 4, tech => padtech) - port map (rben, memo.mben); --- roen_pad : outpad generic map (tech => padtech) --- port map (ramoen, memo.ramoen(0)); - wri_pad : outpad generic map (tech => padtech) - port map (writen, memo.writen); - -- read_pad : outpad generic map (tech => padtech) - -- port map (read, memo.read); - -- iosn_pad : outpad generic map (tech => padtech) - -- port map (iosn, memo.iosn); - bdr : for i in 0 to 3 generate - data_pad : iopadv generic map (tech => padtech, width => 8) - port map (data(31-i*8 downto 24-i*8), memo.data(31-i*8 downto 24-i*8), - memo.bdrive(i), memi.data(31-i*8 downto 24-i*8)); - end generate; - end generate; - ----------------------------------------------------------------------- ---- DDR memory controller ------------------------------------------- ----------------------------------------------------------------------- - - -- not tested/working at the moment - - ddr0 : if CFG_DDRMP_EN = 1 generate - ddrc : ddrctrl - generic map( - hindex1 => 0, haddr1 => 16#600#, hmask1 => 16#FC0#, - hindex2 => 7, haddr2 => 16#D00#, hmask2 => 16#FC0#, - pindex => 8, paddr => 8, numahb => 1, - ahb1sepclk => 1, ahb2sepclk => 1, modbanks => modbanks, - numchips => numchips, chipbits => chipbits, chipsize => chipsize, - plldelay => 1, tech => fabtech, clkperiod => (1000000/ddrfreq)) - port map(rst => rstn, clk0 => ddrclk0, clk90 => ddrclk90, - clk180 => ddrclk180, clk270 => ddrclk270, hclk1 => clkm, hclk2 => clkm, - pclk => clkm, ahb1si => ahbsi, ahb1so => ahbso(0), ahb2si => ahbsi, - ahb2so => open, apbsi => apbi, apbso => apbo(8), ddsi => ddsi, - ddso => ddso); - - -- Outpads - ddr_cke_pad : outpad generic map (tech => padtech, level => sstl2_i) port map (ddr_cke0, ddsi.cke); - ddr_csb_pad : outpad generic map (tech => padtech, level => sstl2_i) port map (ddr_cs0b, ddsi.cs(0)); - ddr_web_pad : outpad generic map (tech => padtech, level => sstl2_i) port map (ddr_web, ddsi.control(0)); - ddr_casb_pad : outpad generic map (tech => padtech, level => sstl2_i) port map (ddr_casb, ddsi.control(1)); - ddr_rasb_pad : outpad generic map (tech => padtech, level => sstl2_i) port map (ddr_rasb, ddsi.control(2)); - ddr_dm_pad : outpadv generic map (tech => padtech, level => sstl2_i, width => 4) port map (ddr_dm, ddsi.dm(3 downto 0)); - ddr_ad_pad : outpadv generic map (tech => padtech, level => sstl2_i, width => 13) port map (ddr_ad, ddsi.adr(12 downto 0)); - ddr_ba_pad : outpadv generic map (tech => padtech, level => sstl2_i, width => 2) port map (ddr_ba, ddsi.ba); - - -- InOut-pads - - ddr_dq_pad : for i in 0 to 31 generate - dq_pad : iopad generic map (tech => padtech, level => sstl2_ii) - port map (pad => ddr_dq(i), i => ddsi.dq(i), en => ddsi.dq_oe(i), o => ddso.dq(i)); - end generate; - - - ddr_dqs_pad : for i in 0 to 3 generate - dqs_pad : iopad generic map (tech => padtech, level => sstl2_ii) - port map (pad => ddr_dqs(i), i => ddsi.dqs(i), en => ddsi.dqs_oe(i), o => ddso.dqs(i)); - end generate; - - -- ddr module 1 - ddr_clk1 <= '0'; ddr_clk1b <= '0'; ddr_cke1 <= '0'; ddr_cs1b <= '1'; - end generate; - ----------------------------------------------------------------------- ---- APB Bridge and various periherals ------------------------------- ----------------------------------------------------------------------- - - apb0 : apbctrl -- AHB/APB bridge - generic map (hindex => 1, haddr => CFG_APBADDR) - port map (rstn, clkm, ahbsi, ahbso(1), apbi, apbo); - - ua1 : if CFG_UART1_ENABLE /= 0 generate - uart1 : apbuart -- UART 1 - generic map (pindex => 1, paddr => 1, pirq => 2, console => dbguart, - fifosize => CFG_UART1_FIFO) - port map (rstn, clkm, apbi, apbo(1), u1i, u1o); - u1i.rxd <= rxd1; u1i.ctsn <= '0'; u1i.extclk <= '0'; txd1 <= u1o.txd; - end generate; - noua0 : if CFG_UART1_ENABLE = 0 generate apbo(1) <= apb_none; end generate; - - irqctrl : if CFG_IRQ3_ENABLE /= 0 generate - irqctrl0 : irqmp -- interrupt controller - generic map (pindex => 2, paddr => 2, ncpu => CFG_NCPU) - port map (rstn, clkm, apbi, apbo(2), irqo, irqi); - end generate; - irq3 : if CFG_IRQ3_ENABLE = 0 generate - x : for i in 0 to CFG_NCPU-1 generate - irqi(i).irl <= "0000"; - end generate; - apbo(2) <= apb_none; - end generate; - - gpt : if CFG_GPT_ENABLE /= 0 generate - timer0 : gptimer -- timer unit - generic map (pindex => 3, paddr => 3, pirq => CFG_GPT_IRQ, - sepirq => CFG_GPT_SEPIRQ, sbits => CFG_GPT_SW, ntimers => CFG_GPT_NTIM, - nbits => CFG_GPT_TW) - port map (rstn, clkm, apbi, apbo(3), gpti, open); - gpti.dhalt <= dsuo.tstop; gpti.extclk <= '0'; - end generate; - notim : if CFG_GPT_ENABLE = 0 generate apbo(3) <= apb_none; end generate; - - vga : if CFG_VGA_ENABLE /= 0 generate - vga0 : apbvga generic map(memtech => memtech, pindex => 5, paddr => 5) - port map(rstn, clkm, clk, apbi, apbo(5), vgao); - end generate; - novga : if CFG_VGA_ENABLE = 0 generate apbo(5) <= apb_none; vgao <= vgao_none; end generate; - vert_sync_pad : outpad generic map (tech => padtech) - port map (vga_vsync, vgao.vsync); - horiz_sync_pad : outpad generic map (tech => padtech) - port map (vga_hsync, vgao.hsync); - video_out_r_pad : outpadv generic map (width => 2, tech => padtech) - port map (vga_rd, vgao.video_out_r(7 downto 6)); - video_out_g_pad : outpadv generic map (width => 2, tech => padtech) - port map (vga_gr, vgao.video_out_g(7 downto 6)); - video_out_b_pad : outpadv generic map (width => 2, tech => padtech) - port map (vga_bl, vgao.video_out_b(7 downto 6)); - ------------------------------------------------------------------------ ---- MULTIIO SECTION -------------------------------------------------- ------------------------------------------------------------------------ - MULTIIO : if CFG_MULTIIO /= 0 generate - -- human interface controller - mio : MultiIO_APB - generic map ( - pindex => 6, - paddr => 6, - pmask => 16#fff#, - pirq => 6, - clk_freq_in => cpufreq, - led7act => '0', - ledact => '0', - switchact => '0', -- switch polarity is inverse to Hpe_compact - buttonact => '1') - port map ( - rst_n => rstn, - clk => clkm, - apbi => apbi, - apbo => apbo(6), - MultiIO_in => mioi, - MultiIO_out => mioo); - - mioi.switch_in <= "0000" & dsw; - mioi.row_in <= tst_row; - sevensegment <= mioo.led_ca_out(1) & -- 9 - mioo.led_ca_out(0) & -- 8 - mioo.led_dp_out & -- . - mioo.led_g_out & -- . - mioo.led_f_out & -- . - mioo.led_e_out & - mioo.led_d_out & - mioo.led_c_out & - mioo.led_b_out & - mioo.led_a_out; -- 0 - tst_col <= mioo.column_out; - led <= mioo.led_out when dsubre = '0' else - vcc(4 downto 0) & vcc(0) & (not dsuact) & dbgo(0).error; - - lcd_regsel <= mioo.lcd_regsel; - lcd_rw <= mioo.lcd_rw; - lcd_enable <= mioo.lcd_enable; - - -- expansion connector - exp_datao <= mioo.exp_out; - mioi.exp_in <= exp_datai; - - codec_mode <= mioo.codec_mode; - codec_mclk <= mioo.codec_mclk; - codec_sclk <= mioo.codec_sclk; - codec_sdin <= mioo.codec_sdin; - codec_cs <= mioo.codec_cs; - codec_din <= mioo.codec_din; - codec_bclk <= mioo.codec_bclk; - codec_lrcin <= mioo.codec_lrcin; - codec_lrcout <= mioo.codec_lrcout; - - end generate; - - nMULTIIO : if CFG_MULTIIO = 0 generate - apbo(6) <= apb_none; - end generate; - ------------------------------------------------------------------------ ---- ETHERNET --------------------------------------------------------- ------------------------------------------------------------------------ - - eth0 : if CFG_GRETH = 1 generate -- Gaisler ethernet MAC - e1 : greth generic map(hindex => CFG_NCPU+CFG_AHB_UART, - pindex => 15, paddr => 15, pirq => 12, memtech => memtech, - mdcscaler => cpufreq/1000, enable_mdio => 1, fifosize => CFG_ETH_FIFO, - nsync => 1, edcl => CFG_DSU_ETH, edclbufsz => CFG_ETH_BUF, - macaddrh => CFG_ETH_ENM, macaddrl => CFG_ETH_ENL, - ipaddrh => CFG_ETH_IPM, ipaddrl => CFG_ETH_IPL) - port map(rst => rstn, clk => clkm, ahbmi => ahbmi, - ahbmo => ahbmo(CFG_NCPU+CFG_AHB_UART), apbi => apbi, - apbo => apbo(15), ethi => ethi, etho => etho); - - emdio_pad : iopad generic map (tech => padtech) - port map (emdio, etho.mdio_o, etho.mdio_oe, ethi.mdio_i); - etxc_pad : inpad generic map (tech => padtech) - port map (etx_clk, ethi.tx_clk); - erxc_pad : inpad generic map (tech => padtech) - port map (erx_clk, ethi.rx_clk); - erxd_pad : inpadv generic map (tech => padtech, width => 4) - port map (erxd, ethi.rxd(3 downto 0)); - erxdv_pad : inpad generic map (tech => padtech) - port map (erx_dv, ethi.rx_dv); - erxer_pad : inpad generic map (tech => padtech) - port map (erx_er, ethi.rx_er); - erxco_pad : inpad generic map (tech => padtech) - port map (erx_col, ethi.rx_col); - erxcr_pad : inpad generic map (tech => padtech) - port map (erx_crs, ethi.rx_crs); - - etxd_pad : outpadv generic map (tech => padtech, width => 4) - port map (etxd, etho.txd(3 downto 0)); - etxen_pad : outpad generic map (tech => padtech) - port map (etx_en, etho.tx_en); - etxer_pad : outpad generic map (tech => padtech) - port map (etx_er, etho.tx_er); - emdc_pad : outpad generic map (tech => padtech) - port map (emdc, etho.mdc); - - end generate; - - - ----------------------------------------------------------------------------- - -- HPI SECTION - ----------------------------------------------------------------------------- - - ahb2hpi_inst : if CFG_AHB2HPI /= 0 generate - ahb2hpi2_1 : ahb2hpi2 - generic map ( - counter_width => 4, - data_width => 16, - address_width => 2, - hindex => 8, - haddr => 16#240#, - hmask => 16#fff#) - port map ( - HCLK => clkm, - HRESETn => rstn, - ahbso => ahbso(8), - ahbsi => ahbsi, - ADDR => hpiaddr, - WDATA => hpiwdata, - RDATA => hpirdata, - nCS => hpicsn, - nWR => hpiwriten, - nRD => hpirdn, - INT => hpiint, - drive_bus => drive_bus); - - hpidata <= hpiwdata when drive_bus = '1' else - (others => 'Z'); - - hpirdata <= hpidata; - - hpiwrn <= hpiwriten; - - end generate; - nahb2hpi_inst : if CFG_AHB2HPI = 0 generate - ahbso(8) <= ahbs_none; - end generate; - ------------------------------------------------------------------------ ---- AHB ROM ---------------------------------------------------------- ------------------------------------------------------------------------ - - bpromgen : if CFG_AHBROMEN /= 0 generate - brom : entity work.ahbrom - generic map (hindex => 6, haddr => CFG_AHBRODDR, pipe => CFG_AHBROPIP) - port map (rstn, clkm, ahbsi, ahbso(6)); - end generate; - nobpromgen : if CFG_AHBROMEN = 0 generate - ahbso(6) <= ahbs_none; - end generate; - ------------------------------------------------------------------------ ---- AHB RAM ---------------------------------------------------------- ------------------------------------------------------------------------ - - ahbramgen : if CFG_AHBRAMEN = 1 generate - ahbram0 : ahbram generic map (hindex => 3, haddr => CFG_AHBRADDR, - tech => CFG_MEMTECH, kbytes => CFG_AHBRSZ) - port map (rstn, clkm, ahbsi, ahbso(3)); - end generate; - nram : if CFG_AHBRAMEN = 0 generate ahbso(3) <= ahbs_none; end generate; - ------------------------------------------------------------------------ ---- AHB DAC IF ------------------------------------------------------- ------------------------------------------------------------------------ - - dac_ahb_inst : if CFG_DAC_AHB /= 0 generate - dac_ahb_1 : dac_ahb - generic map(length => 16, hindex => 4, haddr => 16#010#, hmask => 16#FFF#, tech => fabtech, kbytes => 1) - port map(rst => rstn, clk => clkm, ahbsi => ahbsi, ahbso => ahbso(4), dac_out => dac); - end generate; - ndac_ahb_inst : if CFG_DAC_AHB = 0 generate - ahbso(4) <= ahbs_none; - end generate; - - ------------------------------------------------------------------------ ---- Drive unused bus elements --------------------------------------- ------------------------------------------------------------------------ - - nam1 : for i in (CFG_NCPU+CFG_AHB_UART+CFG_GRETH) to NAHBMST-1 generate - ahbmo(i) <= ahbm_none; - end generate; - nap0 : for i in 9 to NAPBSLV-1-CFG_GRETH generate apbo(i) <= apb_none; end generate; - nah0 : for i in 9 to NAHBSLV-1 generate ahbso(i) <= ahbs_none; end generate; - ------------------------------------------------------------------------ ---- Adaptions for HPE Mini ---------------------------------------- ------------------------------------------------------------------------ - - -- invert dsuact signal for output on LED - dsuactn <= not dsuact; - - resoutn <= rstn; - ------------------------------------------------------------------------ ---- Boot message ---------------------------------------------------- ------------------------------------------------------------------------ - --- pragma translate_off - x : report_version - generic map ( - msg1 => "LEON3 Demonstration design for HPE_mini board", - msg2 => "GRLIB Version " & tost(LIBVHDL_VERSION/100) & "." & tost((LIBVHDL_VERSION mod 10)/10) - & "." & tost(LIBVHDL_VERSION mod 100), - msg3 => "Target technology: " & tech_table(fabtech) & ", memory library: " & tech_table(memtech), - mdel => 1 - ); --- pragma translate_on - - dsuen_pad : inpad generic map (tech => padtech) port map ('1', ldsuen); - duart <= rdsuen when CFG_AHB_UART /= 0 else '0'; - rxd1 <= txd1 when duart = '1' else rserrx; - rsertx <= dsutx when duart = '1' else txd1; - dsurx <= rserrx when duart = '1' else '1'; - - p1 : process(clkm) - begin - if rising_edge(clkm) then - sertx <= rsertx; rserrx <= serrx; rdsuen <= ldsuen; - end if; - end process; - -end rtl; diff --git a/designs/leon3-ge-hpe-mini-lattice/linkprom b/designs/leon3-ge-hpe-mini-lattice/linkprom deleted file mode 100755 index 1805994a..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/linkprom +++ /dev/null @@ -1,155 +0,0 @@ -/* linkcmds - * - * $Id: linkcmds,v 1.8.2.1 2000/05/24 17:06:38 joel Exp $ - */ - -OUTPUT_ARCH(sparc) -__DYNAMIC = 0; - -/* - * The memory map looks like this: - * +--------------------+ <- low memory - * | .text | - * | etext | - * | ctor list | the ctor and dtor lists are for - * | dtor list | C++ support - * | _endtext | - * +--------------------+ - * | .data | initialized data goes here - * | _sdata | - * | _edata | - * +--------------------+ - * | .bss | - * | __bss_start | start of bss, cleared by crt0 - * | _end | start of heap, used by sbrk() - * +--------------------+ - * | heap space | - * | _ENDHEAP | - * | stack space | - * | __stack | top of stack - * +--------------------+ <- high memory - */ - - -/* Default values, can be overridden */ - -_PROM_SIZE = 2M; -_RAM_SIZE = 4M; - -_RAM_START = 0x02000000; -_RAM_END = _RAM_START + _RAM_SIZE; - -_PROM_START = 0x00000000; -_PROM_END = _PROM_START + _PROM_SIZE; - -/* - * Alternate names without leading _. - */ - -PROM_START = _PROM_START; -PROM_SIZE = _PROM_SIZE; -PROM_END = _PROM_END; - -RAM_START = _RAM_START; -RAM_SIZE = _RAM_SIZE; -RAM_END = _RAM_END; - -_LEON_REG = 0x80000000; -LEON_REG = 0x80000000; - -/* these are the maximum values */ - -MEMORY -{ - rom : ORIGIN = 0x00000000, LENGTH = 16M - ram : ORIGIN = 0x40000000, LENGTH = 1024M -} - -SECTIONS -{ - .text : - { - CREATE_OBJECT_SYMBOLS - text_start = .; - _text_start = .; - *(.text) - . = ALIGN (16); - - *(.eh_frame) - . = ALIGN (16); - - *(.gnu.linkonce.t*) - - /* - * C++ constructors - */ - __CTOR_LIST__ = .; - LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) - *(.ctors) - LONG(0) - __CTOR_END__ = .; - __DTOR_LIST__ = .; - LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) - *(.dtors) - LONG(0) - __DTOR_END__ = .; - - _rodata_start = . ; - *(.rodata*) - *(.gnu.linkonce.r*) - _erodata = ALIGN( 0x10 ) ; - - etext = ALIGN(0x10); - _etext = .; - *(.init) - *(.fini) - *(.lit) - *(.shdata) - . = ALIGN (16); - _endtext = .; - } > rom - .dynamic : { *(.dynamic) } >ram - .got : { *(.got) } >ram - .plt : { *(.plt) } >ram - .hash : { *(.hash) } >ram - .dynrel : { *(.dynrel) } >ram - .dynsym : { *(.dynsym) } >ram - .dynstr : { *(.dynstr) } >ram - .hash : { *(.hash) } >ram - .data : - { - data_start = .; - _data_start = .; - _sdata = . ; - *(.data) - *(.gnu.linkonce.d*) - *(.gcc_except_table) - . = ALIGN(0x10); - edata = .; - _edata = .; - } > ram - .shbss : - { - *(.shbss) - } > ram - .bss : - { - __bss_start = ALIGN(0x8); - _bss_start = .; - bss_start = .; - *(.bss) - *(COMMON) - end = .; - _end = ALIGN(0x8); - __end = ALIGN(0x8); - } > ram - .jcr . (NOLOAD) : { *(.jcr) } - .stab . (NOLOAD) : - { - [ .stab ] - } - .stabstr . (NOLOAD) : - { - [ .stabstr ] - } -} diff --git a/designs/leon3-ge-hpe-mini-lattice/prom.h b/designs/leon3-ge-hpe-mini-lattice/prom.h deleted file mode 100644 index 5514ce56..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/prom.h +++ /dev/null @@ -1,10 +0,0 @@ -#define MCFG1 0x10380233 -#define MCFG2 0xe6B80e60 -#define MCFG3 0x000ff000 -#define ASDCFG 0xfff00100 -#define DSDCFG 0xe6A06e60 -#define L2MCTRLIO 0x80000000 -#define IRQCTRL 0x80000200 -#define RAMSTART 0x60000000 -#define RAMSIZE 0x00100000 - diff --git a/designs/leon3-ge-hpe-mini-lattice/prom.srec b/designs/leon3-ge-hpe-mini-lattice/prom.srec deleted file mode 100755 index c1439b8d..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/prom.srec +++ /dev/null @@ -1,37 +0,0 @@ -S00C000070726F6D2E737265635A -S113000081D8200003000004821060E08188400051 -S1130010819000008198000081800000A180000090 -S113002001000000030020408210600FC2A00040C5 -S11300308410000001000000010000000100000025 -S11300400100000001000000801080020100000097 -S11300500100000001000000010000000100000098 -S1130060874440008608E01F881000008A100000C2 -S11300708C1000008E100000A0100000A2100000E0 -S1130080A4100000A6100000A8100000AA10000090 -S1130090AC100000AE1000009010000092100000A0 -S11300A09410000096100000981000009A100000B0 -S11300B09C1000009E10000086A0E00116BFFFEF18 -S11300C081E00000821020028190400003000004BF -S11300D0821060E0818840000100000001000000FF -S11300E001000000834800008330600C80886001B8 -S11300F00280002401000000070000008610E1785F -S1130100C108C000C118C000C518C000C918C0008B -S1130110CD18C000D118C000D518C000D918C0002F -S1130120DD18C000E118C000E518C000E918C000DF -S1130130ED18C000F118C000F518C000F918C0008F -S1130140FD18C000010000000100000001000000D3 -S1130150010000000100000089A008420100000025 -S113016001000000010000000100000010800005F3 -S11301700100000001000000000000000000000079 -S1130180874440008730E01C8688E00F1280001608 -S11301900320000005040E008410A233C420400094 -S11301A00539AE038410A260C4206004050003FC7A -S11301B0C420600882103860C40040008530A00C60 -S11301C0030000048210600980A04002128000062F -S11301D0033FFC00821061000539A81B8410A26053 -S11301E0C4204000050000808210000080A0E000D0 -S11301F002800005010000008200400210BFFFFCE5 -S11302008620E0013D1803FFBC17A3E0BC27800152 -S11302109C27A0600318000081C04000010000007A -S113022000000000000000000000000000000000CA -S9030000FC diff --git a/designs/leon3-ge-hpe-mini-lattice/sdram.srec b/designs/leon3-ge-hpe-mini-lattice/sdram.srec deleted file mode 100755 index 0507f4a2..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/sdram.srec +++ /dev/null @@ -1,19492 +0,0 @@ -S00D0000736472616D2E7372656300 -S31560000000881000000918006C81C1206C0100000096 -S31560000010A1480000A75000001080203BAC102001D2 -S3156000002091D02000010000000100000001000000E6 -S3156000003091D02000010000000100000001000000D6 -S31560000040A14800002918006B81C523A401000000A7 -S31560000050A14800002918006981C522C80100000076 -S31560000060A14800002918006981C5233401000000F9 -S3156000007091D0200001000000010000000100000096 -S3156000008091D0200001000000010000000100000086 -S31560000090A1480000A75000001080201BAC1020096A -S315600000A091D0200001000000010000000100000066 -S315600000B091D0200001000000010000000100000056 -S315600000C091D0200001000000010000000100000046 -S315600000D091D0200001000000010000000100000036 -S315600000E091D0200001000000010000000100000026 -S315600000F091D0200001000000010000000100000016 -S3156000010091D0200001000000010000000100000005 -S31560000110AE102001A148000010806A33A75000008D -S31560000120AE102002A148000010806A2FA750000080 -S31560000130AE102003A148000010806A2BA750000073 -S31560000140AE102004A148000010806A27A750000066 -S31560000150AE102005A148000010806A23A750000059 -S31560000160AE102006A148000010806A1FA75000004C -S31560000170AE102007A148000010806A1BA75000003F -S31560000180AE102008A148000010806A17A750000032 -S31560000190AE102009A148000010806A13A750000025 -S315600001A0AE10200AA148000010806A0FA750000018 -S315600001B0AE10200BA148000010806A0BA75000000B -S315600001C0AE10200CA148000010806A07A7500000FE -S315600001D0AE10200DA148000010806A03A7500000F1 -S315600001E0AE10200EA1480000108069FFA7500000E5 -S315600001F0AE10200FA1480000108069FBA7500000D8 -S3156000020091D0200001000000010000000100000004 -S3156000021091D02000010000000100000001000000F4 -S3156000022091D02000010000000100000001000000E4 -S3156000023091D02000010000000100000001000000D4 -S3156000024091D02000010000000100000001000000C4 -S3156000025091D02000010000000100000001000000B4 -S3156000026091D02000010000000100000001000000A4 -S3156000027091D0200001000000010000000100000094 -S3156000028091D0200001000000010000000100000084 -S3156000029091D0200001000000010000000100000074 -S315600002A091D0200001000000010000000100000064 -S315600002B091D0200001000000010000000100000054 -S315600002C091D0200001000000010000000100000044 -S315600002D091D0200001000000010000000100000034 -S315600002E091D0200001000000010000000100000024 -S315600002F091D0200001000000010000000100000014 -S3156000030091D0200001000000010000000100000003 -S3156000031091D02000010000000100000001000000F3 -S3156000032091D02000010000000100000001000000E3 -S3156000033091D02000010000000100000001000000D3 -S3156000034091D02000010000000100000001000000C3 -S3156000035091D02000010000000100000001000000B3 -S3156000036091D02000010000000100000001000000A3 -S3156000037091D0200001000000010000000100000093 -S3156000038091D0200001000000010000000100000083 -S3156000039091D0200001000000010000000100000073 -S315600003A091D0200001000000010000000100000063 -S315600003B091D0200001000000010000000100000053 -S315600003C091D0200001000000010000000100000043 -S315600003D091D0200001000000010000000100000033 -S315600003E091D0200001000000010000000100000023 -S315600003F091D0200001000000010000000100000013 -S3156000040091D0200001000000010000000100000002 -S3156000041091D02000010000000100000001000000F2 -S3156000042091D02000010000000100000001000000E2 -S3156000043091D02000010000000100000001000000D2 -S3156000044091D02000010000000100000001000000C2 -S3156000045091D02000010000000100000001000000B2 -S3156000046091D02000010000000100000001000000A2 -S3156000047091D0200001000000010000000100000092 -S3156000048091D0200001000000010000000100000082 -S3156000049091D0200001000000010000000100000072 -S315600004A091D0200001000000010000000100000062 -S315600004B091D0200001000000010000000100000052 -S315600004C091D0200001000000010000000100000042 -S315600004D091D0200001000000010000000100000032 -S315600004E091D0200001000000010000000100000022 -S315600004F091D0200001000000010000000100000012 -S3156000050091D0200001000000010000000100000001 -S3156000051091D02000010000000100000001000000F1 -S3156000052091D02000010000000100000001000000E1 -S3156000053091D02000010000000100000001000000D1 -S3156000054091D02000010000000100000001000000C1 -S3156000055091D02000010000000100000001000000B1 -S3156000056091D02000010000000100000001000000A1 -S3156000057091D0200001000000010000000100000091 -S3156000058091D0200001000000010000000100000081 -S3156000059091D0200001000000010000000100000071 -S315600005A091D0200001000000010000000100000061 -S315600005B091D0200001000000010000000100000051 -S315600005C091D0200001000000010000000100000041 -S315600005D091D0200001000000010000000100000031 -S315600005E091D0200001000000010000000100000021 -S315600005F091D0200001000000010000000100000011 -S3156000060091D0200001000000010000000100000000 -S3156000061091D02000010000000100000001000000F0 -S3156000062091D02000010000000100000001000000E0 -S3156000063091D02000010000000100000001000000D0 -S3156000064091D02000010000000100000001000000C0 -S3156000065091D02000010000000100000001000000B0 -S3156000066091D02000010000000100000001000000A0 -S3156000067091D0200001000000010000000100000090 -S3156000068091D0200001000000010000000100000080 -S3156000069091D0200001000000010000000100000070 -S315600006A091D0200001000000010000000100000060 -S315600006B091D0200001000000010000000100000050 -S315600006C091D0200001000000010000000100000040 -S315600006D091D0200001000000010000000100000030 -S315600006E091D0200001000000010000000100000020 -S315600006F091D0200001000000010000000100000010 -S3156000070091D02000010000000100000001000000FF -S3156000071091D02000010000000100000001000000EF -S3156000072091D02000010000000100000001000000DF -S3156000073091D02000010000000100000001000000CF -S3156000074091D02000010000000100000001000000BF -S3156000075091D02000010000000100000001000000AF -S3156000076091D020000100000001000000010000009F -S3156000077091D020000100000001000000010000008F -S3156000078091D020000100000001000000010000007F -S3156000079091D020000100000001000000010000006F -S315600007A091D020000100000001000000010000005F -S315600007B091D020000100000001000000010000004F -S315600007C091D020000100000001000000010000003F -S315600007D091D020000100000001000000010000002F -S315600007E091D020000100000001000000010000001F -S315600007F091D020000100000001000000010000000F -S3156000080091D02000010000000100000001000000FE -S3156000081091D02000010000000100000001000000EE -S31560000820A14800002918006A81C52108010000005E -S31560000830A1480000108067D9A750000001000000A1 -S3156000084091D02000010000000100000001000000BE -S31560000850A14800002918006A81C520EC010000004B -S3156000086091D020000100000001000000010000009E -S3156000087091D020000100000001000000010000008E -S3156000088091D020000100000001000000010000007E -S3156000089091D020000100000001000000010000006E -S315600008A091D020000100000001000000010000005E -S315600008B091D020000100000001000000010000004E -S315600008C091D020000100000001000000010000003E -S315600008D091D020000100000001000000010000002E -S315600008E091D020000100000001000000010000001E -S315600008F091D020000100000001000000010000000E -S3156000090091D02000010000000100000001000000FD -S3156000091091D02000010000000100000001000000ED -S3156000092091D02000010000000100000001000000DD -S3156000093091D02000010000000100000001000000CD -S3156000094091D02000010000000100000001000000BD -S3156000095091D02000010000000100000001000000AD -S3156000096091D020000100000001000000010000009D -S3156000097091D020000100000001000000010000008D -S3156000098091D020000100000001000000010000007D -S3156000099091D020000100000001000000010000006D -S315600009A091D020000100000001000000010000005D -S315600009B091D020000100000001000000010000004D -S315600009C091D020000100000001000000010000003D -S315600009D091D020000100000001000000010000002D -S315600009E091D020000100000001000000010000001D -S315600009F091D020000100000001000000010000000D -S31560000A0091D02000010000000100000001000000FC -S31560000A1091D02000010000000100000001000000EC -S31560000A2091D02000010000000100000001000000DC -S31560000A3091D02000010000000100000001000000CC -S31560000A4091D02000010000000100000001000000BC -S31560000A5091D02000010000000100000001000000AC -S31560000A6091D020000100000001000000010000009C -S31560000A7091D020000100000001000000010000008C -S31560000A8091D020000100000001000000010000007C -S31560000A9091D020000100000001000000010000006C -S31560000AA091D020000100000001000000010000005C -S31560000AB091D020000100000001000000010000004C -S31560000AC091D020000100000001000000010000003C -S31560000AD091D020000100000001000000010000002C -S31560000AE091D020000100000001000000010000001C -S31560000AF091D020000100000001000000010000000C -S31560000B0091D02000010000000100000001000000FB -S31560000B1091D02000010000000100000001000000EB -S31560000B2091D02000010000000100000001000000DB -S31560000B3091D02000010000000100000001000000CB -S31560000B4091D02000010000000100000001000000BB -S31560000B5091D02000010000000100000001000000AB -S31560000B6091D020000100000001000000010000009B -S31560000B7091D020000100000001000000010000008B -S31560000B8091D020000100000001000000010000007B -S31560000B9091D020000100000001000000010000006B -S31560000BA091D020000100000001000000010000005B -S31560000BB091D020000100000001000000010000004B -S31560000BC091D020000100000001000000010000003B -S31560000BD091D020000100000001000000010000002B -S31560000BE091D020000100000001000000010000001B -S31560000BF091D020000100000001000000010000000B -S31560000C0091D02000010000000100000001000000FA -S31560000C1091D02000010000000100000001000000EA -S31560000C2091D02000010000000100000001000000DA -S31560000C3091D02000010000000100000001000000CA -S31560000C4091D02000010000000100000001000000BA -S31560000C5091D02000010000000100000001000000AA -S31560000C6091D020000100000001000000010000009A -S31560000C7091D020000100000001000000010000008A -S31560000C8091D020000100000001000000010000007A -S31560000C9091D020000100000001000000010000006A -S31560000CA091D020000100000001000000010000005A -S31560000CB091D020000100000001000000010000004A -S31560000CC091D020000100000001000000010000003A -S31560000CD091D020000100000001000000010000002A -S31560000CE091D020000100000001000000010000001A -S31560000CF091D020000100000001000000010000000A -S31560000D0091D02000010000000100000001000000F9 -S31560000D1091D02000010000000100000001000000E9 -S31560000D2091D02000010000000100000001000000D9 -S31560000D3091D02000010000000100000001000000C9 -S31560000D4091D02000010000000100000001000000B9 -S31560000D5091D02000010000000100000001000000A9 -S31560000D6091D0200001000000010000000100000099 -S31560000D7091D0200001000000010000000100000089 -S31560000D8091D0200001000000010000000100000079 -S31560000D9091D0200001000000010000000100000069 -S31560000DA091D0200001000000010000000100000059 -S31560000DB091D0200001000000010000000100000049 -S31560000DC091D0200001000000010000000100000039 -S31560000DD091D0200001000000010000000100000029 -S31560000DE091D0200001000000010000000100000019 -S31560000DF091D0200001000000010000000100000009 -S31560000E0091D02000010000000100000001000000F8 -S31560000E1091D02000010000000100000001000000E8 -S31560000E2091D02000010000000100000001000000D8 -S31560000E3091D02000010000000100000001000000C8 -S31560000E4091D02000010000000100000001000000B8 -S31560000E5091D02000010000000100000001000000A8 -S31560000E6091D0200001000000010000000100000098 -S31560000E7091D0200001000000010000000100000088 -S31560000E8091D0200001000000010000000100000078 -S31560000E9091D0200001000000010000000100000068 -S31560000EA091D0200001000000010000000100000058 -S31560000EB091D0200001000000010000000100000048 -S31560000EC091D0200001000000010000000100000038 -S31560000ED091D0200001000000010000000100000028 -S31560000EE091D0200001000000010000000100000018 -S31560000EF091D0200001000000010000000100000008 -S31560000F0091D02000010000000100000001000000F7 -S31560000F1091D02000010000000100000001000000E7 -S31560000F2091D02000010000000100000001000000D7 -S31560000F3091D02000010000000100000001000000C7 -S31560000F4091D02000010000000100000001000000B7 -S31560000F5091D02000010000000100000001000000A7 -S31560000F6091D0200001000000010000000100000097 -S31560000F7091D0200001000000010000000100000087 -S31560000F8091D0200001000000010000000100000077 -S31560000F9091D0200001000000010000000100000067 -S31560000FA091D0200001000000010000000100000057 -S31560000FB091D0200001000000010000000100000047 -S31560000FC091D0200001000000010000000100000037 -S31560000FD091D0200001000000010000000100000027 -S31560000FE091D0200001000000010000000100000017 -S31560000FF091D0200001000000010000000100000007 -S315600010009DE3BFC0051801438410A0600718014422 -S315600010108610E188821000008620C00286A0E00863 -S3156000102036BFFFFFC0388003111801449012218833 -S31560001030C02200004000666601000000400066664F -S315600010400100000040006818010000001118006DE2 -S31560001050901221A040006166010000004000694ACC -S3156000106001000000400000430100000040006743AB -S315600010700100000081C7E00881E800009DE3BF9899 -S3156000108023180143C20C606080A0600012800015C6 -S315600010902118008010800005C204200C9FC3400008 -S315600010A0C224200CC204200CDA00400080A3600039 -S315600010B012BFFFFB82006004030000008210600024 -S315600010C080A0600002800006821020011118006D69 -S315600010D067FFFBCC9012213082102001C22C606029 -S315600010E081C7E00881E800009DE3BF9881C7E008FA -S315600010F081E800009DE3BF98030000008210600055 -S315600011001118006D1318014380A060009012213001 -S31560001110028000049212606467FFFBBA010000005F -S315600011201B180144C203618880A060000280000928 -S31560001130B0136188030000008210600080A0600028 -S31560001140028000040100000067FFFBAE81E800003A -S315600011500100000081C7E00881E800009DE3BF98B8 -S3156000116081C7E00881E8000081C3E0080100000053 -S315600011709DE3BF9840000007010000004000014663 -S31560001180010000004000000E81E800000100000040 -S315600011909DE3BF98400000290100000080A2200066 -S315600011A01280000503180080D80060109A10200194 -S315600011B0DA23201081C7E00891E820000318008038 -S315600011C0D80060109A102001DA23201481C3E00849 -S315600011D09010200003180080DA006010D0234000D1 -S315600011E081C3E0089010200003180080DA006010C8 -S315600011F0D023600881C3E0089010200003180080A7 -S31560001200DA006010D023600481C3E00890102000EB -S3156000121013180080921260149010200081C3E008B9 -S31560001220D0EA4020901020001318008092126014BB -S3156000123081C3E008D0224000914440009132201CD6 -S3156000124081C3E008900A200F81C3E008D0820020A5 -S315600012509010200C81C3E008D08200408210000804 -S3156000126080A20009148000039022000990224001A8 -S3156000127081C3E00801000000932A60028210200109 -S31560001280C22200099810200080A3000A1680000A76 -S3156000129096102001832B2002DA02000180A0000D47 -S315600012A0826020009803200180A3000A06BFFFFA2F -S315600012B0960AC00180A2E00002BFFFF498102000E9 -S315600012C081C3E008010000009DE3BF98C2062010BC -S315600012D08330601CA0100018A400600180A4A001E7 -S315600012E00280006CB0103FFF7FFFFFD4010000005A -S315600012F0AA100008912A20047FFFFFBC90022007F5 -S315600013007FFFFFD40100000003020000808A000115 -S315600013100280005C010000009A05600182102001D5 -S315600013208328400D11180080C2242010901220A03E -S31560001330921000157FFFFFD19410001203180080F1 -S3156000134082106018A12D6002C0204010DA004010A3 -S31560001350A610000180A36009291801431480002BA0 -S31560001360AC1000017FFFFFAB0100000080A22000EF -S3156000137012BFFFFD01000000B010200080A6001221 -S31560001380168000140100000010800005A2100016EF -S3156000139080A600121680000F01000000832E200236 -S315600013A0D0044010D20440017FFFFFADB00620019B -S315600013B080A2200104BFFFF7901020027FFFFF90FC -S315600013C00100000080A6001206BFFFF6832E2002F1 -S315600013D0C205207C82006001C225207C7FFFFF92CF -S315600013E001000000C204C01082006001C224C01067 -S315600013F0DA04C01080A3600904BFFFDB1118008007 -S31560001400108000049012205C111800809012205CFD -S31560001410921000157FFFFF9994100012832CA00292 -S3156000142082004012A0004001DA05207C80A4000DF5 -S3156000143002800004231801437FFFFF719010200390 -S31560001440C204607C80A06000048000060100000089 -S31560001450C204607C80A400011680000580A560003F -S315600014607FFFFF679010200380A56000228000093F -S31560001470B010200091D0200010800006B01020002F -S315600014807FFFFF5F9010200110BFFFA59A056001E6 -S3156000149081C7E00881E800009DE3BF98C20620107E -S315600014A0A01000188330601C80A0600002800009D4 -S315600014B0B0103FFF7FFFFF610100000080A22000A7 -S315600014C0128000040300003F821063FFC2242010D4 -S315600014D081C7E00881E800009DE3BF98C20620103E -S315600014E08330601CA400600180A4A00102800068B3 -S315600014F0B0103FFF7FFFFF5101000000AA100008F7 -S31560001500912A20047FFFFF39900220077FFFFF5159 -S315600015100100000003020000808A0001028000587A -S315600015200100000011180080901220A09210001592 -S315600015307FFFFF529410001203180080821060181B -S31560001540A12D6002C0204010DA004010A6100001F4 -S3156000155080A36009291801431480002BAC10000198 -S315600015607FFFFF2C0100000080A2200012BFFFFD5C -S3156000157001000000B010200080A600121680001442 -S315600015800100000010800005A210001680A600125F -S315600015901680000F01000000832E2002D004401048 -S315600015A0D20440017FFFFF2EB006200180A22001F9 -S315600015B004BFFFF7901020027FFFFF1101000000BB -S315600015C080A6001206BFFFF6832E2002C205207C8D -S315600015D082006001C225207C7FFFFF1301000000AE -S315600015E0C204C01082006001C224C010DA04C010B8 -S315600015F080A3600904BFFFDB11180080108000041F -S315600016009012205C111800809012205C92100015D8 -S315600016107FFFFF1A94100012832CA00282004012F2 -S31560001620A0004001DA05207C80A4000D0280000441 -S31560001630231801437FFFFEF290102003C204607CF2 -S3156000164080A060000480000601000000C204607C87 -S3156000165080A400011680000580A560007FFFFEE87B -S315600016609010200380A5600022800009B010200041 -S3156000167091D0200010800006B01020007FFFFEE0B1 -S315600016809010200110BFFFA91118008081C7E008E3 -S3156000169081E800009DE3BF98312000009216220089 -S315600016A09410200040003E599010200140003B629B -S315600016B0901622009016230040003EBE921020082D -S315600016C0B016210040003A4F81E80000010000009A -S315600016D09DE3BF9821200000921422009410200000 -S315600016E040003E4A9010200140003B539014220077 -S315600016F09210001840003EAF90142300B0142100F1 -S3156000170040003A4081E8000001000000000000004F -S315600017100000000000000000000000000000000063 -S315600017200000000000000000000000000000000053 -S315600017300000000000000000000000000000000043 -S315600017400000000000000000000000000000000033 -S315600017500000000000000000000000000000000023 -S315600017600000000000000000000000000000000013 -S315600017700000000000000000000000000000000003 -S3156000178000000000000000000000000000000000F3 -S3156000179000000000000000000000000000000000E3 -S315600017A000000000000000000000000000000000D3 -S315600017B000000000000000000000000000000000C3 -S315600017C000000000000000000000000000000000B3 -S315600017D000000000000000000000000000000000A3 -S315600017E00000000000000000000000000000000093 -S315600017F00000000000000000000000000000000083 -S315600018000000000000000000000000000000000072 -S315600018100000000000000000000000000000000062 -S315600018200000000000000000000000000000000052 -S315600018300000000000000000000000000000000042 -S315600018400000000000000000000000000000000032 -S315600018500000000000000000000000000000000022 -S315600018600000000000000000000000000000000012 -S315600018700000000000000000000000000000000002 -S3156000188000000000000000000000000000000000F2 -S3156000189000000000000000000000000000000000E2 -S315600018A000000000000000000000000000000000D2 -S315600018B000000000000000000000000000000000C2 -S315600018C000000000000000000000000000000000B2 -S315600018D000000000000000000000000000000000A2 -S315600018E00000000000000000000000000000000092 -S315600018F00000000000000000000000000000000082 -S315600019000000000000000000000000000000000071 -S315600019100000000000000000000000000000000061 -S315600019200000000000000000000000000000000051 -S315600019300000000000000000000000000000000041 -S315600019400000000000000000000000000000000031 -S315600019500000000000000000000000000000000021 -S315600019600000000000000000000000000000000011 -S315600019700000000000000000000000000000000001 -S3156000198000000000000000000000000000000000F1 -S3156000199000000000000000000000000000000000E1 -S315600019A000000000000000000000000000000000D1 -S315600019B000000000000000000000000000000000C1 -S315600019C000000000000000000000000000000000B1 -S315600019D000000000000000000000000000000000A1 -S315600019E00000000000000000000000000000000091 -S315600019F00000000000000000000000000000000081 -S31560001A000000000000000000000000000000000070 -S31560001A100000000000000000000000000000000060 -S31560001A200000000000000000000000000000000050 -S31560001A300000000000000000000000000000000040 -S31560001A400000000000000000000000000000000030 -S31560001A500000000000000000000000000000000020 -S31560001A600000000000000000000000000000000010 -S31560001A700000000000000000000000000000000000 -S31560001A8000000000000000000000000000000000F0 -S31560001A9000000000000000000000000000000000E0 -S31560001AA000000000000000000000000000000000D0 -S31560001AB000000000000000000000000000000000C0 -S31560001AC000000000000000000000000000000000B0 -S31560001AD000000000000000000000000000000000A0 -S31560001AE00000000000000000000000000000000090 -S31560001AF00000000000000000000000000000000080 -S31560001B00000000000000000000000000000000006F -S31560001B10000000000000000000000000000000005F -S31560001B20000000000000000000000000000000004F -S31560001B30000000000000000000000000000000003F -S31560001B40000000000000000000000000000000002F -S31560001B50000000000000000000000000000000001F -S31560001B60000000000000000000000000000000000F -S31560001B7000000000000000000000000000000000FF -S31560001B8000000000000000000000000000000000EF -S31560001B9000000000000000000000000000000000DF -S31560001BA000000000000000000000000000000000CF -S31560001BB000000000000000000000000000000000BF -S31560001BC000000000000000000000000000000000AF -S31560001BD0000000000000000000000000000000009F -S31560001BE0000000000000000000000000000000008F -S31560001BF0000000000000000000000000000000007F -S31560001C00000000000000000000000000000000006E -S31560001C10000000000000000000000000000000005E -S31560001C20000000000000000000000000000000004E -S31560001C30000000000000000000000000000000003E -S31560001C40000000000000000000000000000000002E -S31560001C50000000000000000000000000000000001E -S31560001C60000000000000000000000000000000000E -S31560001C7000000000000000000000000000000000FE -S31560001C8000000000000000000000000000000000EE -S31560001C9000000000000000000000000000000000DE -S31560001CA000000000000000000000000000000000CE -S31560001CB000000000000000000000000000000000BE -S31560001CC000000000000000000000000000000000AE -S31560001CD0000000000000000000000000000000009E -S31560001CE0000000000000000000000000000000008E -S31560001CF0000000000000000000000000000000007E -S31560001D00000000000000000000000000000000006D -S31560001D10000000000000000000000000000000005D -S31560001D20000000000000000000000000000000004D -S31560001D30000000000000000000000000000000003D -S31560001D40000000000000000000000000000000002D -S31560001D50000000000000000000000000000000001D -S31560001D60000000000000000000000000000000000D -S31560001D7000000000000000000000000000000000FD -S31560001D8000000000000000000000000000000000ED -S31560001D9000000000000000000000000000000000DD -S31560001DA000000000000000000000000000000000CD -S31560001DB000000000000000000000000000000000BD -S31560001DC000000000000000000000000000000000AD -S31560001DD0000000000000000000000000000000009D -S31560001DE0000000000000000000000000000000008D -S31560001DF0000000000000000000000000000000007D -S31560001E00000000000000000000000000000000006C -S31560001E10000000000000000000000000000000005C -S31560001E20000000000000000000000000000000004C -S31560001E30000000000000000000000000000000003C -S31560001E40000000000000000000000000000000002C -S31560001E50000000000000000000000000000000001C -S31560001E60000000000000000000000000000000000C -S31560001E7000000000000000000000000000000000FC -S31560001E8000000000000000000000000000000000EC -S31560001E9000000000000000000000000000000000DC -S31560001EA000000000000000000000000000000000CC -S31560001EB000000000000000000000000000000000BC -S31560001EC000000000000000000000000000000000AC -S31560001ED0000000000000000000000000000000009C -S31560001EE0000000000000000000000000000000008C -S31560001EF0000000000000000000000000000000007C -S31560001F00000000000000000000000000000000006B -S31560001F10000000000000000000000000000000005B -S31560001F20000000000000000000000000000000004B -S31560001F30000000000000000000000000000000003B -S31560001F40000000000000000000000000000000002B -S31560001F50000000000000000000000000000000001B -S31560001F60000000000000000000000000000000000B -S31560001F7000000000000000000000000000000000FB -S31560001F8000000000000000000000000000000000EB -S31560001F9000000000000000000000000000000000DB -S31560001FA000000000000000000000000000000000CB -S31560001FB000000000000000000000000000000000BB -S31560001FC000000000000000000000000000000000AB -S31560001FD0000000000000000000000000000000009B -S31560001FE0000000000000000000000000000000008B -S31560001FF0000000000000000000000000000000007B -S31560002000000000000000000000000000000000006A -S31560002010000000000000000000000000000000005A -S31560002020000000000000000000000000000000004A -S31560002030000000000000000000000000000000003A -S31560002040000000000000000000000000000000002A -S31560002050000000000000000000000000000000001A -S31560002060000000000000000000000000000000000A -S3156000207000000000000000000000000000000000FA -S3156000208000000000000000000000000000000000EA -S3156000209000000000000000000000000000000000DA -S315600020A000000000000000000000000000000000CA -S315600020B000000000000000000000000000000000BA -S315600020C000000000000000000000000000000000AA -S315600020D0000000000000000000000000000000009A -S315600020E0000000000000000000000000000000008A -S315600020F0000000000000000000000000000000007A -S315600021000000000000000000000000000000000069 -S315600021100000000000000000000000000000000059 -S315600021200000000000000000000000000000000049 -S315600021300000000000000000000000000000000039 -S315600021400000000000000000000000000000000029 -S315600021500000000000000000000000000000000019 -S315600021600000000000000000000000000000000009 -S3156000217000000000000000000000000000000000F9 -S3156000218000000000000000000000000000000000E9 -S3156000219000000000000000000000000000000000D9 -S315600021A000000000000000000000000000000000C9 -S315600021B000000000000000000000000000000000B9 -S315600021C000000000000000000000000000000000A9 -S315600021D00000000000000000000000000000000099 -S315600021E00000000000000000000000000000000089 -S315600021F00000000000000000000000000000000079 -S315600022000000000000000000000000000000000068 -S315600022100000000000000000000000000000000058 -S315600022200000000000000000000000000000000048 -S315600022300000000000000000000000000000000038 -S315600022400000000000000000000000000000000028 -S315600022500000000000000000000000000000000018 -S315600022600000000000000000000000000000000008 -S3156000227000000000000000000000000000000000F8 -S3156000228000000000000000000000000000000000E8 -S3156000229000000000000000000000000000000000D8 -S315600022A000000000000000000000000000000000C8 -S315600022B000000000000000000000000000000000B8 -S315600022C000000000000000000000000000000000A8 -S315600022D00000000000000000000000000000000098 -S315600022E00000000000000000000000000000000088 -S315600022F00000000000000000000000000000000078 -S315600023000000000000000000000000000000000067 -S315600023100000000000000000000000000000000057 -S315600023200000000000000000000000000000000047 -S315600023300000000000000000000000000000000037 -S315600023400000000000000000000000000000000027 -S315600023500000000000000000000000000000000017 -S315600023600000000000000000000000000000000007 -S3156000237000000000000000000000000000000000F7 -S3156000238000000000000000000000000000000000E7 -S3156000239000000000000000000000000000000000D7 -S315600023A000000000000000000000000000000000C7 -S315600023B000000000000000000000000000000000B7 -S315600023C000000000000000000000000000000000A7 -S315600023D00000000000000000000000000000000097 -S315600023E00000000000000000000000000000000087 -S315600023F00000000000000000000000000000000077 -S315600024000000000000000000000000000000000066 -S315600024100000000000000000000000000000000056 -S315600024200000000000000000000000000000000046 -S315600024300000000000000000000000000000000036 -S315600024400000000000000000000000000000000026 -S315600024500000000000000000000000000000000016 -S315600024600000000000000000000000000000000006 -S3156000247000000000000000000000000000000000F6 -S3156000248000000000000000000000000000000000E6 -S3156000249000000000000000000000000000000000D6 -S315600024A000000000000000000000000000000000C6 -S315600024B000000000000000000000000000000000B6 -S315600024C000000000000000000000000000000000A6 -S315600024D00000000000000000000000000000000096 -S315600024E00000000000000000000000000000000086 -S315600024F00000000000000000000000000000000076 -S315600025000000000000000000000000000000000065 -S315600025100000000000000000000000000000000055 -S315600025200000000000000000000000000000000045 -S315600025300000000000000000000000000000000035 -S315600025400000000000000000000000000000000025 -S315600025500000000000000000000000000000000015 -S315600025600000000000000000000000000000000005 -S3156000257000000000000000000000000000000000F5 -S3156000258000000000000000000000000000000000E5 -S3156000259000000000000000000000000000000000D5 -S315600025A000000000000000000000000000000000C5 -S315600025B000000000000000000000000000000000B5 -S315600025C000000000000000000000000000000000A5 -S315600025D00000000000000000000000000000000095 -S315600025E00000000000000000000000000000000085 -S315600025F00000000000000000000000000000000075 -S315600026000000000000000000000000000000000064 -S315600026100000000000000000000000000000000054 -S315600026200000000000000000000000000000000044 -S315600026300000000000000000000000000000000034 -S315600026400000000000000000000000000000000024 -S315600026500000000000000000000000000000000014 -S315600026600000000000000000000000000000000004 -S3156000267000000000000000000000000000000000F4 -S3156000268000000000000000000000000000000000E4 -S3156000269000000000000000000000000000000000D4 -S315600026A000000000000000000000000000000000C4 -S315600026B000000000000000000000000000000000B4 -S315600026C000000000000000000000000000000000A4 -S315600026D00000000000000000000000000000000094 -S315600026E00000000000000000000000000000000084 -S315600026F00000000000000000000000000000000074 -S315600027000000000000000000000000000000000063 -S315600027100000000000000000000000000000000053 -S315600027200000000000000000000000000000000043 -S315600027300000000000000000000000000000000033 -S315600027400000000000000000000000000000000023 -S315600027500000000000000000000000000000000013 -S315600027600000000000000000000000000000000003 -S3156000277000000000000000000000000000000000F3 -S3156000278000000000000000000000000000000000E3 -S3156000279000000000000000000000000000000000D3 -S315600027A000000000000000000000000000000000C3 -S315600027B000000000000000000000000000000000B3 -S315600027C000000000000000000000000000000000A3 -S315600027D00000000000000000000000000000000093 -S315600027E00000000000000000000000000000000083 -S315600027F00000000000000000000000000000000073 -S315600028000000000000000000000000000000000062 -S315600028100000000000000000000000000000000052 -S315600028200000000000000000000000000000000042 -S315600028300000000000000000000000000000000032 -S315600028400000000000000000000000000000000022 -S315600028500000000000000000000000000000000012 -S315600028600000000000000000000000000000000002 -S3156000287000000000000000000000000000000000F2 -S3156000288000000000000000000000000000000000E2 -S3156000289000000000000000000000000000000000D2 -S315600028A000000000000000000000000000000000C2 -S315600028B000000000000000000000000000000000B2 -S315600028C000000000000000000000000000000000A2 -S315600028D00000000000000000000000000000000092 -S315600028E00000000000000000000000000000000082 -S315600028F00000000000000000000000000000000072 -S315600029000000000000000000000000000000000061 -S315600029100000000000000000000000000000000051 -S315600029200000000000000000000000000000000041 -S315600029300000000000000000000000000000000031 -S315600029400000000000000000000000000000000021 -S315600029500000000000000000000000000000000011 -S315600029600000000000000000000000000000000001 -S3156000297000000000000000000000000000000000F1 -S3156000298000000000000000000000000000000000E1 -S3156000299000000000000000000000000000000000D1 -S315600029A000000000000000000000000000000000C1 -S315600029B000000000000000000000000000000000B1 -S315600029C000000000000000000000000000000000A1 -S315600029D00000000000000000000000000000000091 -S315600029E00000000000000000000000000000000081 -S315600029F00000000000000000000000000000000071 -S31560002A000000000000000000000000000000000060 -S31560002A100000000000000000000000000000000050 -S31560002A200000000000000000000000000000000040 -S31560002A300000000000000000000000000000000030 -S31560002A400000000000000000000000000000000020 -S31560002A500000000000000000000000000000000010 -S31560002A600000000000000000000000000000000000 -S31560002A7000000000000000000000000000000000F0 -S31560002A8000000000000000000000000000000000E0 -S31560002A9000000000000000000000000000000000D0 -S31560002AA000000000000000000000000000000000C0 -S31560002AB000000000000000000000000000000000B0 -S31560002AC000000000000000000000000000000000A0 -S31560002AD00000000000000000000000000000000090 -S31560002AE00000000000000000000000000000000080 -S31560002AF00000000000000000000000000000000070 -S31560002B00000000000000000000000000000000005F -S31560002B10000000000000000000000000000000004F -S31560002B20000000000000000000000000000000003F -S31560002B30000000000000000000000000000000002F -S31560002B40000000000000000000000000000000001F -S31560002B50000000000000000000000000000000000F -S31560002B6000000000000000000000000000000000FF -S31560002B7000000000000000000000000000000000EF -S31560002B8000000000000000000000000000000000DF -S31560002B9000000000000000000000000000000000CF -S31560002BA000000000000000000000000000000000BF -S31560002BB000000000000000000000000000000000AF -S31560002BC0000000000000000000000000000000009F -S31560002BD0000000000000000000000000000000008F -S31560002BE0000000000000000000000000000000007F -S31560002BF0000000000000000000000000000000006F -S31560002C00000000000000000000000000000000005E -S31560002C10000000000000000000000000000000004E -S31560002C20000000000000000000000000000000003E -S31560002C30000000000000000000000000000000002E -S31560002C40000000000000000000000000000000001E -S31560002C50000000000000000000000000000000000E -S31560002C6000000000000000000000000000000000FE -S31560002C7000000000000000000000000000000000EE -S31560002C8000000000000000000000000000000000DE -S31560002C9000000000000000000000000000000000CE -S31560002CA000000000000000000000000000000000BE -S31560002CB000000000000000000000000000000000AE -S31560002CC0000000000000000000000000000000009E -S31560002CD0000000000000000000000000000000008E -S31560002CE0000000000000000000000000000000007E -S31560002CF0000000000000000000000000000000006E -S31560002D00000000000000000000000000000000005D -S31560002D10000000000000000000000000000000004D -S31560002D20000000000000000000000000000000003D -S31560002D30000000000000000000000000000000002D -S31560002D40000000000000000000000000000000001D -S31560002D50000000000000000000000000000000000D -S31560002D6000000000000000000000000000000000FD -S31560002D7000000000000000000000000000000000ED -S31560002D8000000000000000000000000000000000DD -S31560002D9000000000000000000000000000000000CD -S31560002DA000000000000000000000000000000000BD -S31560002DB000000000000000000000000000000000AD -S31560002DC0000000000000000000000000000000009D -S31560002DD0000000000000000000000000000000008D -S31560002DE0000000000000000000000000000000007D -S31560002DF0000000000000000000000000000000006D -S31560002E00000000000000000000000000000000005C -S31560002E10000000000000000000000000000000004C -S31560002E20000000000000000000000000000000003C -S31560002E30000000000000000000000000000000002C -S31560002E40000000000000000000000000000000001C -S31560002E50000000000000000000000000000000000C -S31560002E6000000000000000000000000000000000FC -S31560002E7000000000000000000000000000000000EC -S31560002E8000000000000000000000000000000000DC -S31560002E9000000000000000000000000000000000CC -S31560002EA000000000000000000000000000000000BC -S31560002EB000000000000000000000000000000000AC -S31560002EC0000000000000000000000000000000009C -S31560002ED0000000000000000000000000000000008C -S31560002EE0000000000000000000000000000000007C -S31560002EF0000000000000000000000000000000006C -S31560002F00000000000000000000000000000000005B -S31560002F10000000000000000000000000000000004B -S31560002F20000000000000000000000000000000003B -S31560002F30000000000000000000000000000000002B -S31560002F40000000000000000000000000000000001B -S31560002F50000000000000000000000000000000000B -S31560002F6000000000000000000000000000000000FB -S31560002F7000000000000000000000000000000000EB -S31560002F8000000000000000000000000000000000DB -S31560002F9000000000000000000000000000000000CB -S31560002FA000000000000000000000000000000000BB -S31560002FB000000000000000000000000000000000AB -S31560002FC0000000000000000000000000000000009B -S31560002FD0000000000000000000000000000000008B -S31560002FE0000000000000000000000000000000007B -S31560002FF0000000000000000000000000000000006B -S31560003000000000000000000000000000000000005A -S31560003010000000000000000000000000000000004A -S31560003020000000000000000000000000000000003A -S31560003030000000000000000000000000000000002A -S31560003040000000000000000000000000000000001A -S31560003050000000000000000000000000000000000A -S3156000306000000000000000000000000000000000FA -S3156000307000000000000000000000000000000000EA -S3156000308000000000000000000000000000000000DA -S3156000309000000000000000000000000000000000CA -S315600030A000000000000000000000000000000000BA -S315600030B000000000000000000000000000000000AA -S315600030C0000000000000000000000000000000009A -S315600030D0000000000000000000000000000000008A -S315600030E0000000000000000000000000000000007A -S315600030F0000000000000000000000000000000006A -S315600031000000000000000000000000000000000059 -S315600031100000000000000000000000000000000049 -S315600031200000000000000000000000000000000039 -S315600031300000000000000000000000000000000029 -S315600031400000000000000000000000000000000019 -S315600031500000000000000000000000000000000009 -S3156000316000000000000000000000000000000000F9 -S3156000317000000000000000000000000000000000E9 -S3156000318000000000000000000000000000000000D9 -S3156000319000000000000000000000000000000000C9 -S315600031A000000000000000000000000000000000B9 -S315600031B000000000000000000000000000000000A9 -S315600031C00000000000000000000000000000000099 -S315600031D00000000000000000000000000000000089 -S315600031E00000000000000000000000000000000079 -S315600031F00000000000000000000000000000000069 -S315600032000000000000000000000000000000000058 -S315600032100000000000000000000000000000000048 -S315600032200000000000000000000000000000000038 -S315600032300000000000000000000000000000000028 -S315600032400000000000000000000000000000000018 -S315600032500000000000000000000000000000000008 -S3156000326000000000000000000000000000000000F8 -S3156000327000000000000000000000000000000000E8 -S3156000328000000000000000000000000000000000D8 -S3156000329000000000000000000000000000000000C8 -S315600032A000000000000000000000000000000000B8 -S315600032B000000000000000000000000000000000A8 -S315600032C00000000000000000000000000000000098 -S315600032D00000000000000000000000000000000088 -S315600032E00000000000000000000000000000000078 -S315600032F00000000000000000000000000000000068 -S315600033000000000000000000000000000000000057 -S315600033100000000000000000000000000000000047 -S315600033200000000000000000000000000000000037 -S315600033300000000000000000000000000000000027 -S315600033400000000000000000000000000000000017 -S315600033500000000000000000000000000000000007 -S3156000336000000000000000000000000000000000F7 -S3156000337000000000000000000000000000000000E7 -S3156000338000000000000000000000000000000000D7 -S3156000339000000000000000000000000000000000C7 -S315600033A000000000000000000000000000000000B7 -S315600033B000000000000000000000000000000000A7 -S315600033C00000000000000000000000000000000097 -S315600033D00000000000000000000000000000000087 -S315600033E00000000000000000000000000000000077 -S315600033F00000000000000000000000000000000067 -S315600034000000000000000000000000000000000056 -S315600034100000000000000000000000000000000046 -S315600034200000000000000000000000000000000036 -S315600034300000000000000000000000000000000026 -S315600034400000000000000000000000000000000016 -S315600034500000000000000000000000000000000006 -S3156000346000000000000000000000000000000000F6 -S3156000347000000000000000000000000000000000E6 -S3156000348000000000000000000000000000000000D6 -S3156000349000000000000000000000000000000000C6 -S315600034A000000000000000000000000000000000B6 -S315600034B000000000000000000000000000000000A6 -S315600034C00000000000000000000000000000000096 -S315600034D00000000000000000000000000000000086 -S315600034E00000000000000000000000000000000076 -S315600034F00000000000000000000000000000000066 -S315600035000000000000000000000000000000000055 -S315600035100000000000000000000000000000000045 -S315600035200000000000000000000000000000000035 -S315600035300000000000000000000000000000000025 -S315600035400000000000000000000000000000000015 -S315600035500000000000000000000000000000000005 -S3156000356000000000000000000000000000000000F5 -S3156000357000000000000000000000000000000000E5 -S3156000358000000000000000000000000000000000D5 -S3156000359000000000000000000000000000000000C5 -S315600035A000000000000000000000000000000000B5 -S315600035B000000000000000000000000000000000A5 -S315600035C00000000000000000000000000000000095 -S315600035D00000000000000000000000000000000085 -S315600035E00000000000000000000000000000000075 -S315600035F00000000000000000000000000000000065 -S315600036000000000000000000000000000000000054 -S315600036100000000000000000000000000000000044 -S315600036200000000000000000000000000000000034 -S315600036300000000000000000000000000000000024 -S315600036400000000000000000000000000000000014 -S315600036500000000000000000000000000000000004 -S3156000366000000000000000000000000000000000F4 -S3156000367000000000000000000000000000000000E4 -S3156000368000000000000000000000000000000000D4 -S3156000369000000000000000000000000000000000C4 -S315600036A000000000000000000000000000000000B4 -S315600036B000000000000000000000000000000000A4 -S315600036C00000000000000000000000000000000094 -S315600036D00000000000000000000000000000000084 -S315600036E00000000000000000000000000000000074 -S315600036F00000000000000000000000000000000064 -S315600037000000000000000000000000000000000053 -S315600037100000000000000000000000000000000043 -S315600037200000000000000000000000000000000033 -S315600037300000000000000000000000000000000023 -S315600037400000000000000000000000000000000013 -S315600037500000000000000000000000000000000003 -S3156000376000000000000000000000000000000000F3 -S3156000377000000000000000000000000000000000E3 -S3156000378000000000000000000000000000000000D3 -S3156000379000000000000000000000000000000000C3 -S315600037A000000000000000000000000000000000B3 -S315600037B000000000000000000000000000000000A3 -S315600037C00000000000000000000000000000000093 -S315600037D00000000000000000000000000000000083 -S315600037E00000000000000000000000000000000073 -S315600037F00000000000000000000000000000000063 -S315600038000000000000000000000000000000000052 -S315600038100000000000000000000000000000000042 -S315600038200000000000000000000000000000000032 -S315600038300000000000000000000000000000000022 -S315600038400000000000000000000000000000000012 -S315600038500000000000000000000000000000000002 -S3156000386000000000000000000000000000000000F2 -S3156000387000000000000000000000000000000000E2 -S3156000388000000000000000000000000000000000D2 -S3156000389000000000000000000000000000000000C2 -S315600038A000000000000000000000000000000000B2 -S315600038B000000000000000000000000000000000A2 -S315600038C00000000000000000000000000000000092 -S315600038D00000000000000000000000000000000082 -S315600038E00000000000000000000000000000000072 -S315600038F00000000000000000000000000000000062 -S315600039000000000000000000000000000000000051 -S315600039100000000000000000000000000000000041 -S315600039200000000000000000000000000000000031 -S315600039300000000000000000000000000000000021 -S315600039400000000000000000000000000000000011 -S315600039500000000000000000000000000000000001 -S3156000396000000000000000000000000000000000F1 -S3156000397000000000000000000000000000000000E1 -S3156000398000000000000000000000000000000000D1 -S3156000399000000000000000000000000000000000C1 -S315600039A000000000000000000000000000000000B1 -S315600039B000000000000000000000000000000000A1 -S315600039C00000000000000000000000000000000091 -S315600039D00000000000000000000000000000000081 -S315600039E00000000000000000000000000000000071 -S315600039F00000000000000000000000000000000061 -S31560003A000000000000000000000000000000000050 -S31560003A100000000000000000000000000000000040 -S31560003A200000000000000000000000000000000030 -S31560003A300000000000000000000000000000000020 -S31560003A400000000000000000000000000000000010 -S31560003A500000000000000000000000000000000000 -S31560003A6000000000000000000000000000000000F0 -S31560003A7000000000000000000000000000000000E0 -S31560003A8000000000000000000000000000000000D0 -S31560003A9000000000000000000000000000000000C0 -S31560003AA000000000000000000000000000000000B0 -S31560003AB000000000000000000000000000000000A0 -S31560003AC00000000000000000000000000000000090 -S31560003AD00000000000000000000000000000000080 -S31560003AE00000000000000000000000000000000070 -S31560003AF00000000000000000000000000000000060 -S31560003B00000000000000000000000000000000004F -S31560003B10000000000000000000000000000000003F -S31560003B20000000000000000000000000000000002F -S31560003B30000000000000000000000000000000001F -S31560003B40000000000000000000000000000000000F -S31560003B5000000000000000000000000000000000FF -S31560003B6000000000000000000000000000000000EF -S31560003B7000000000000000000000000000000000DF -S31560003B8000000000000000000000000000000000CF -S31560003B9000000000000000000000000000000000BF -S31560003BA000000000000000000000000000000000AF -S31560003BB0000000000000000000000000000000009F -S31560003BC0000000000000000000000000000000008F -S31560003BD0000000000000000000000000000000007F -S31560003BE0000000000000000000000000000000006F -S31560003BF0000000000000000000000000000000005F -S31560003C00000000000000000000000000000000004E -S31560003C10000000000000000000000000000000003E -S31560003C20000000000000000000000000000000002E -S31560003C30000000000000000000000000000000001E -S31560003C40000000000000000000000000000000000E -S31560003C5000000000000000000000000000000000FE -S31560003C6000000000000000000000000000000000EE -S31560003C7000000000000000000000000000000000DE -S31560003C8000000000000000000000000000000000CE -S31560003C9000000000000000000000000000000000BE -S31560003CA000000000000000000000000000000000AE -S31560003CB0000000000000000000000000000000009E -S31560003CC0000000000000000000000000000000008E -S31560003CD0000000000000000000000000000000007E -S31560003CE0000000000000000000000000000000006E -S31560003CF0000000000000000000000000000000005E -S31560003D00000000000000000000000000000000004D -S31560003D10000000000000000000000000000000003D -S31560003D20000000000000000000000000000000002D -S31560003D30000000000000000000000000000000001D -S31560003D40000000000000000000000000000000000D -S31560003D5000000000000000000000000000000000FD -S31560003D6000000000000000000000000000000000ED -S31560003D7000000000000000000000000000000000DD -S31560003D8000000000000000000000000000000000CD -S31560003D9000000000000000000000000000000000BD -S31560003DA000000000000000000000000000000000AD -S31560003DB0000000000000000000000000000000009D -S31560003DC0000000000000000000000000000000008D -S31560003DD0000000000000000000000000000000007D -S31560003DE0000000000000000000000000000000006D -S31560003DF0000000000000000000000000000000005D -S31560003E00000000000000000000000000000000004C -S31560003E10000000000000000000000000000000003C -S31560003E20000000000000000000000000000000002C -S31560003E30000000000000000000000000000000001C -S31560003E40000000000000000000000000000000000C -S31560003E5000000000000000000000000000000000FC -S31560003E6000000000000000000000000000000000EC -S31560003E7000000000000000000000000000000000DC -S31560003E8000000000000000000000000000000000CC -S31560003E9000000000000000000000000000000000BC -S31560003EA000000000000000000000000000000000AC -S31560003EB0000000000000000000000000000000009C -S31560003EC0000000000000000000000000000000008C -S31560003ED0000000000000000000000000000000007C -S31560003EE0000000000000000000000000000000006C -S31560003EF0000000000000000000000000000000005C -S31560003F00000000000000000000000000000000004B -S31560003F10000000000000000000000000000000003B -S31560003F20000000000000000000000000000000002B -S31560003F30000000000000000000000000000000001B -S31560003F40000000000000000000000000000000000B -S31560003F5000000000000000000000000000000000FB -S31560003F6000000000000000000000000000000000EB -S31560003F7000000000000000000000000000000000DB -S31560003F8000000000000000000000000000000000CB -S31560003F9000000000000000000000000000000000BB -S31560003FA000000000000000000000000000000000AB -S31560003FB0000000000000000000000000000000009B -S31560003FC0000000000000000000000000000000008B -S31560003FD0000000000000000000000000000000007B -S31560003FE0000000000000000000000000000000006B -S31560003FF0000000000000000000000000000000005B -S31560004000000000000000000000000000000000004A -S31560004010000000000000000000000000000000003A -S31560004020000000000000000000000000000000002A -S31560004030000000000000000000000000000000001A -S31560004040000000000000000000000000000000000A -S3156000405000000000000000000000000000000000FA -S3156000406000000000000000000000000000000000EA -S3156000407000000000000000000000000000000000DA -S3156000408000000000000000000000000000000000CA -S3156000409000000000000000000000000000000000BA -S315600040A000000000000000000000000000000000AA -S315600040B0000000000000000000000000000000009A -S315600040C0000000000000000000000000000000008A -S315600040D0000000000000000000000000000000007A -S315600040E0000000000000000000000000000000006A -S315600040F0000000000000000000000000000000005A -S315600041000000000000000000000000000000000049 -S315600041100000000000000000000000000000000039 -S315600041200000000000000000000000000000000029 -S315600041300000000000000000000000000000000019 -S315600041400000000000000000000000000000000009 -S3156000415000000000000000000000000000000000F9 -S3156000416000000000000000000000000000000000E9 -S3156000417000000000000000000000000000000000D9 -S3156000418000000000000000000000000000000000C9 -S3156000419000000000000000000000000000000000B9 -S315600041A000000000000000000000000000000000A9 -S315600041B00000000000000000000000000000000099 -S315600041C00000000000000000000000000000000089 -S315600041D00000000000000000000000000000000079 -S315600041E00000000000000000000000000000000069 -S315600041F00000000000000000000000000000000059 -S315600042000000000000000000000000000000000048 -S315600042100000000000000000000000000000000038 -S315600042200000000000000000000000000000000028 -S315600042300000000000000000000000000000000018 -S315600042400000000000000000000000000000000008 -S3156000425000000000000000000000000000000000F8 -S3156000426000000000000000000000000000000000E8 -S3156000427000000000000000000000000000000000D8 -S3156000428000000000000000000000000000000000C8 -S3156000429000000000000000000000000000000000B8 -S315600042A000000000000000000000000000000000A8 -S315600042B00000000000000000000000000000000098 -S315600042C00000000000000000000000000000000088 -S315600042D00000000000000000000000000000000078 -S315600042E00000000000000000000000000000000068 -S315600042F00000000000000000000000000000000058 -S315600043000000000000000000000000000000000047 -S315600043100000000000000000000000000000000037 -S315600043200000000000000000000000000000000027 -S315600043300000000000000000000000000000000017 -S315600043400000000000000000000000000000000007 -S3156000435000000000000000000000000000000000F7 -S3156000436000000000000000000000000000000000E7 -S3156000437000000000000000000000000000000000D7 -S3156000438000000000000000000000000000000000C7 -S3156000439000000000000000000000000000000000B7 -S315600043A000000000000000000000000000000000A7 -S315600043B00000000000000000000000000000000097 -S315600043C00000000000000000000000000000000087 -S315600043D00000000000000000000000000000000077 -S315600043E00000000000000000000000000000000067 -S315600043F00000000000000000000000000000000057 -S315600044000000000000000000000000000000000046 -S315600044100000000000000000000000000000000036 -S315600044200000000000000000000000000000000026 -S315600044300000000000000000000000000000000016 -S315600044400000000000000000000000000000000006 -S3156000445000000000000000000000000000000000F6 -S3156000446000000000000000000000000000000000E6 -S3156000447000000000000000000000000000000000D6 -S3156000448000000000000000000000000000000000C6 -S3156000449000000000000000000000000000000000B6 -S315600044A000000000000000000000000000000000A6 -S315600044B00000000000000000000000000000000096 -S315600044C00000000000000000000000000000000086 -S315600044D00000000000000000000000000000000076 -S315600044E00000000000000000000000000000000066 -S315600044F00000000000000000000000000000000056 -S315600045000000000000000000000000000000000045 -S315600045100000000000000000000000000000000035 -S315600045200000000000000000000000000000000025 -S315600045300000000000000000000000000000000015 -S315600045400000000000000000000000000000000005 -S3156000455000000000000000000000000000000000F5 -S3156000456000000000000000000000000000000000E5 -S3156000457000000000000000000000000000000000D5 -S3156000458000000000000000000000000000000000C5 -S3156000459000000000000000000000000000000000B5 -S315600045A000000000000000000000000000000000A5 -S315600045B00000000000000000000000000000000095 -S315600045C00000000000000000000000000000000085 -S315600045D00000000000000000000000000000000075 -S315600045E00000000000000000000000000000000065 -S315600045F00000000000000000000000000000000055 -S315600046000000000000000000000000000000000044 -S315600046100000000000000000000000000000000034 -S315600046200000000000000000000000000000000024 -S315600046300000000000000000000000000000000014 -S315600046400000000000000000000000000000000004 -S3156000465000000000000000000000000000000000F4 -S3156000466000000000000000000000000000000000E4 -S3156000467000000000000000000000000000000000D4 -S3156000468000000000000000000000000000000000C4 -S3156000469000000000000000000000000000000000B4 -S315600046A000000000000000000000000000000000A4 -S315600046B00000000000000000000000000000000094 -S315600046C00000000000000000000000000000000084 -S315600046D00000000000000000000000000000000074 -S315600046E00000000000000000000000000000000064 -S315600046F00000000000000000000000000000000054 -S315600047000000000000000000000000000000000043 -S315600047100000000000000000000000000000000033 -S315600047200000000000000000000000000000000023 -S315600047300000000000000000000000000000000013 -S315600047400000000000000000000000000000000003 -S3156000475000000000000000000000000000000000F3 -S3156000476000000000000000000000000000000000E3 -S3156000477000000000000000000000000000000000D3 -S3156000478000000000000000000000000000000000C3 -S3156000479000000000000000000000000000000000B3 -S315600047A000000000000000000000000000000000A3 -S315600047B00000000000000000000000000000000093 -S315600047C00000000000000000000000000000000083 -S315600047D00000000000000000000000000000000073 -S315600047E00000000000000000000000000000000063 -S315600047F00000000000000000000000000000000053 -S315600048000000000000000000000000000000000042 -S315600048100000000000000000000000000000000032 -S315600048200000000000000000000000000000000022 -S315600048300000000000000000000000000000000012 -S315600048400000000000000000000000000000000002 -S3156000485000000000000000000000000000000000F2 -S3156000486000000000000000000000000000000000E2 -S3156000487000000000000000000000000000000000D2 -S3156000488000000000000000000000000000000000C2 -S3156000489000000000000000000000000000000000B2 -S315600048A000000000000000000000000000000000A2 -S315600048B00000000000000000000000000000000092 -S315600048C00000000000000000000000000000000082 -S315600048D00000000000000000000000000000000072 -S315600048E00000000000000000000000000000000062 -S315600048F00000000000000000000000000000000052 -S315600049000000000000000000000000000000000041 -S315600049100000000000000000000000000000000031 -S315600049200000000000000000000000000000000021 -S315600049300000000000000000000000000000000011 -S315600049400000000000000000000000000000000001 -S3156000495000000000000000000000000000000000F1 -S3156000496000000000000000000000000000000000E1 -S3156000497000000000000000000000000000000000D1 -S3156000498000000000000000000000000000000000C1 -S3156000499000000000000000000000000000000000B1 -S315600049A000000000000000000000000000000000A1 -S315600049B00000000000000000000000000000000091 -S315600049C00000000000000000000000000000000081 -S315600049D00000000000000000000000000000000071 -S315600049E00000000000000000000000000000000061 -S315600049F00000000000000000000000000000000051 -S31560004A000000000000000000000000000000000040 -S31560004A100000000000000000000000000000000030 -S31560004A200000000000000000000000000000000020 -S31560004A300000000000000000000000000000000010 -S31560004A400000000000000000000000000000000000 -S31560004A5000000000000000000000000000000000F0 -S31560004A6000000000000000000000000000000000E0 -S31560004A7000000000000000000000000000000000D0 -S31560004A8000000000000000000000000000000000C0 -S31560004A9000000000000000000000000000000000B0 -S31560004AA000000000000000000000000000000000A0 -S31560004AB00000000000000000000000000000000090 -S31560004AC00000000000000000000000000000000080 -S31560004AD00000000000000000000000000000000070 -S31560004AE00000000000000000000000000000000060 -S31560004AF00000000000000000000000000000000050 -S31560004B00000000000000000000000000000000003F -S31560004B10000000000000000000000000000000002F -S31560004B20000000000000000000000000000000001F -S31560004B30000000000000000000000000000000000F -S31560004B4000000000000000000000000000000000FF -S31560004B5000000000000000000000000000000000EF -S31560004B6000000000000000000000000000000000DF -S31560004B7000000000000000000000000000000000CF -S31560004B8000000000000000000000000000000000BF -S31560004B9000000000000000000000000000000000AF -S31560004BA0000000000000000000000000000000009F -S31560004BB0000000000000000000000000000000008F -S31560004BC0000000000000000000000000000000007F -S31560004BD0000000000000000000000000000000006F -S31560004BE0000000000000000000000000000000005F -S31560004BF0000000000000000000000000000000004F -S31560004C00000000000000000000000000000000003E -S31560004C10000000000000000000000000000000002E -S31560004C20000000000000000000000000000000001E -S31560004C30000000000000000000000000000000000E -S31560004C4000000000000000000000000000000000FE -S31560004C5000000000000000000000000000000000EE -S31560004C6000000000000000000000000000000000DE -S31560004C7000000000000000000000000000000000CE -S31560004C8000000000000000000000000000000000BE -S31560004C9000000000000000000000000000000000AE -S31560004CA0000000000000000000000000000000009E -S31560004CB0000000000000000000000000000000008E -S31560004CC0000000000000000000000000000000007E -S31560004CD0000000000000000000000000000000006E -S31560004CE0000000000000000000000000000000005E -S31560004CF0000000000000000000000000000000004E -S31560004D00000000000000000000000000000000003D -S31560004D10000000000000000000000000000000002D -S31560004D20000000000000000000000000000000001D -S31560004D30000000000000000000000000000000000D -S31560004D4000000000000000000000000000000000FD -S31560004D5000000000000000000000000000000000ED -S31560004D6000000000000000000000000000000000DD -S31560004D7000000000000000000000000000000000CD -S31560004D8000000000000000000000000000000000BD -S31560004D9000000000000000000000000000000000AD -S31560004DA0000000000000000000000000000000009D -S31560004DB0000000000000000000000000000000008D -S31560004DC0000000000000000000000000000000007D -S31560004DD0000000000000000000000000000000006D -S31560004DE0000000000000000000000000000000005D -S31560004DF0000000000000000000000000000000004D -S31560004E00000000000000000000000000000000003C -S31560004E10000000000000000000000000000000002C -S31560004E20000000000000000000000000000000001C -S31560004E30000000000000000000000000000000000C -S31560004E4000000000000000000000000000000000FC -S31560004E5000000000000000000000000000000000EC -S31560004E6000000000000000000000000000000000DC -S31560004E7000000000000000000000000000000000CC -S31560004E8000000000000000000000000000000000BC -S31560004E9000000000000000000000000000000000AC -S31560004EA0000000000000000000000000000000009C -S31560004EB0000000000000000000000000000000008C -S31560004EC0000000000000000000000000000000007C -S31560004ED0000000000000000000000000000000006C -S31560004EE0000000000000000000000000000000005C -S31560004EF0000000000000000000000000000000004C -S31560004F00000000000000000000000000000000003B -S31560004F10000000000000000000000000000000002B -S31560004F20000000000000000000000000000000001B -S31560004F30000000000000000000000000000000000B -S31560004F4000000000000000000000000000000000FB -S31560004F5000000000000000000000000000000000EB -S31560004F6000000000000000000000000000000000DB -S31560004F7000000000000000000000000000000000CB -S31560004F8000000000000000000000000000000000BB -S31560004F9000000000000000000000000000000000AB -S31560004FA0000000000000000000000000000000009B -S31560004FB0000000000000000000000000000000008B -S31560004FC0000000000000000000000000000000007B -S31560004FD0000000000000000000000000000000006B -S31560004FE0000000000000000000000000000000005B -S31560004FF0000000000000000000000000000000004B -S31560005000000000000000000000000000000000003A -S31560005010000000000000000000000000000000002A -S31560005020000000000000000000000000000000001A -S31560005030000000000000000000000000000000000A -S3156000504000000000000000000000000000000000FA -S3156000505000000000000000000000000000000000EA -S3156000506000000000000000000000000000000000DA -S3156000507000000000000000000000000000000000CA -S3156000508000000000000000000000000000000000BA -S3156000509000000000000000000000000000000000AA -S315600050A0000000000000000000000000000000009A -S315600050B0000000000000000000000000000000008A -S315600050C0000000000000000000000000000000007A -S315600050D0000000000000000000000000000000006A -S315600050E0000000000000000000000000000000005A -S315600050F0000000000000000000000000000000004A -S315600051000000000000000000000000000000000039 -S315600051100000000000000000000000000000000029 -S315600051200000000000000000000000000000000019 -S315600051300000000000000000000000000000000009 -S3156000514000000000000000000000000000000000F9 -S3156000515000000000000000000000000000000000E9 -S3156000516000000000000000000000000000000000D9 -S3156000517000000000000000000000000000000000C9 -S3156000518000000000000000000000000000000000B9 -S3156000519000000000000000000000000000000000A9 -S315600051A00000000000000000000000000000000099 -S315600051B00000000000000000000000000000000089 -S315600051C00000000000000000000000000000000079 -S315600051D00000000000000000000000000000000069 -S315600051E00000000000000000000000000000000059 -S315600051F00000000000000000000000000000000049 -S315600052000000000000000000000000000000000038 -S315600052100000000000000000000000000000000028 -S315600052200000000000000000000000000000000018 -S315600052300000000000000000000000000000000008 -S3156000524000000000000000000000000000000000F8 -S3156000525000000000000000000000000000000000E8 -S3156000526000000000000000000000000000000000D8 -S3156000527000000000000000000000000000000000C8 -S3156000528000000000000000000000000000000000B8 -S3156000529000000000000000000000000000000000A8 -S315600052A00000000000000000000000000000000098 -S315600052B00000000000000000000000000000000088 -S315600052C00000000000000000000000000000000078 -S315600052D00000000000000000000000000000000068 -S315600052E00000000000000000000000000000000058 -S315600052F00000000000000000000000000000000048 -S315600053000000000000000000000000000000000037 -S315600053100000000000000000000000000000000027 -S315600053200000000000000000000000000000000017 -S315600053300000000000000000000000000000000007 -S3156000534000000000000000000000000000000000F7 -S3156000535000000000000000000000000000000000E7 -S3156000536000000000000000000000000000000000D7 -S3156000537000000000000000000000000000000000C7 -S3156000538000000000000000000000000000000000B7 -S3156000539000000000000000000000000000000000A7 -S315600053A00000000000000000000000000000000097 -S315600053B00000000000000000000000000000000087 -S315600053C00000000000000000000000000000000077 -S315600053D00000000000000000000000000000000067 -S315600053E00000000000000000000000000000000057 -S315600053F00000000000000000000000000000000047 -S315600054000000000000000000000000000000000036 -S315600054100000000000000000000000000000000026 -S315600054200000000000000000000000000000000016 -S315600054300000000000000000000000000000000006 -S3156000544000000000000000000000000000000000F6 -S3156000545000000000000000000000000000000000E6 -S3156000546000000000000000000000000000000000D6 -S3156000547000000000000000000000000000000000C6 -S3156000548000000000000000000000000000000000B6 -S3156000549000000000000000000000000000000000A6 -S315600054A00000000000000000000000000000000096 -S315600054B00000000000000000000000000000000086 -S315600054C00000000000000000000000000000000076 -S315600054D00000000000000000000000000000000066 -S315600054E00000000000000000000000000000000056 -S315600054F00000000000000000000000000000000046 -S315600055000000000000000000000000000000000035 -S315600055100000000000000000000000000000000025 -S315600055200000000000000000000000000000000015 -S315600055300000000000000000000000000000000005 -S3156000554000000000000000000000000000000000F5 -S3156000555000000000000000000000000000000000E5 -S3156000556000000000000000000000000000000000D5 -S3156000557000000000000000000000000000000000C5 -S3156000558000000000000000000000000000000000B5 -S3156000559000000000000000000000000000000000A5 -S315600055A00000000000000000000000000000000095 -S315600055B00000000000000000000000000000000085 -S315600055C00000000000000000000000000000000075 -S315600055D00000000000000000000000000000000065 -S315600055E00000000000000000000000000000000055 -S315600055F00000000000000000000000000000000045 -S315600056000000000000000000000000000000000034 -S315600056100000000000000000000000000000000024 -S315600056200000000000000000000000000000000014 -S315600056300000000000000000000000000000000004 -S3156000564000000000000000000000000000000000F4 -S3156000565000000000000000000000000000000000E4 -S3156000566000000000000000000000000000000000D4 -S3156000567000000000000000000000000000000000C4 -S3156000568000000000000000000000000000000000B4 -S3156000569000000000000000000000000000000000A4 -S315600056A00000000000000000000000000000000094 -S315600056B00000000000000000000000000000000084 -S315600056C00000000000000000000000000000000074 -S315600056D00000000000000000000000000000000064 -S315600056E00000000000000000000000000000000054 -S315600056F00000000000000000000000000000000044 -S315600057000000000000000000000000000000000033 -S315600057100000000000000000000000000000000023 -S315600057200000000000000000000000000000000013 -S315600057300000000000000000000000000000000003 -S3156000574000000000000000000000000000000000F3 -S3156000575000000000000000000000000000000000E3 -S3156000576000000000000000000000000000000000D3 -S3156000577000000000000000000000000000000000C3 -S3156000578000000000000000000000000000000000B3 -S3156000579000000000000000000000000000000000A3 -S315600057A00000000000000000000000000000000093 -S315600057B00000000000000000000000000000000083 -S315600057C00000000000000000000000000000000073 -S315600057D00000000000000000000000000000000063 -S315600057E00000000000000000000000000000000053 -S315600057F00000000000000000000000000000000043 -S315600058000000000000000000000000000000000032 -S315600058100000000000000000000000000000000022 -S315600058200000000000000000000000000000000012 -S315600058300000000000000000000000000000000002 -S3156000584000000000000000000000000000000000F2 -S3156000585000000000000000000000000000000000E2 -S3156000586000000000000000000000000000000000D2 -S3156000587000000000000000000000000000000000C2 -S3156000588000000000000000000000000000000000B2 -S3156000589000000000000000000000000000000000A2 -S315600058A00000000000000000000000000000000092 -S315600058B00000000000000000000000000000000082 -S315600058C00000000000000000000000000000000072 -S315600058D00000000000000000000000000000000062 -S315600058E00000000000000000000000000000000052 -S315600058F00000000000000000000000000000000042 -S315600059000000000000000000000000000000000031 -S315600059100000000000000000000000000000000021 -S315600059200000000000000000000000000000000011 -S315600059300000000000000000000000000000000001 -S3156000594000000000000000000000000000000000F1 -S3156000595000000000000000000000000000000000E1 -S3156000596000000000000000000000000000000000D1 -S3156000597000000000000000000000000000000000C1 -S3156000598000000000000000000000000000000000B1 -S3156000599000000000000000000000000000000000A1 -S315600059A00000000000000000000000000000000091 -S315600059B00000000000000000000000000000000081 -S315600059C00000000000000000000000000000000071 -S315600059D00000000000000000000000000000000061 -S315600059E00000000000000000000000000000000051 -S315600059F00000000000000000000000000000000041 -S31560005A000000000000000000000000000000000030 -S31560005A100000000000000000000000000000000020 -S31560005A200000000000000000000000000000000010 -S31560005A300000000000000000000000000000000000 -S31560005A4000000000000000000000000000000000F0 -S31560005A5000000000000000000000000000000000E0 -S31560005A6000000000000000000000000000000000D0 -S31560005A7000000000000000000000000000000000C0 -S31560005A8000000000000000000000000000000000B0 -S31560005A9000000000000000000000000000000000A0 -S31560005AA00000000000000000000000000000000090 -S31560005AB00000000000000000000000000000000080 -S31560005AC00000000000000000000000000000000070 -S31560005AD00000000000000000000000000000000060 -S31560005AE00000000000000000000000000000000050 -S31560005AF00000000000000000000000000000000040 -S31560005B00000000000000000000000000000000002F -S31560005B10000000000000000000000000000000001F -S31560005B20000000000000000000000000000000000F -S31560005B3000000000000000000000000000000000FF -S31560005B4000000000000000000000000000000000EF -S31560005B5000000000000000000000000000000000DF -S31560005B6000000000000000000000000000000000CF -S31560005B7000000000000000000000000000000000BF -S31560005B8000000000000000000000000000000000AF -S31560005B90000000000000000000000000000000009F -S31560005BA0000000000000000000000000000000008F -S31560005BB0000000000000000000000000000000007F -S31560005BC0000000000000000000000000000000006F -S31560005BD0000000000000000000000000000000005F -S31560005BE0000000000000000000000000000000004F -S31560005BF0000000000000000000000000000000003F -S31560005C00000000000000000000000000000000002E -S31560005C10000000000000000000000000000000001E -S31560005C20000000000000000000000000000000000E -S31560005C3000000000000000000000000000000000FE -S31560005C4000000000000000000000000000000000EE -S31560005C5000000000000000000000000000000000DE -S31560005C6000000000000000000000000000000000CE -S31560005C7000000000000000000000000000000000BE -S31560005C8000000000000000000000000000000000AE -S31560005C90000000000000000000000000000000009E -S31560005CA0000000000000000000000000000000008E -S31560005CB0000000000000000000000000000000007E -S31560005CC0000000000000000000000000000000006E -S31560005CD0000000000000000000000000000000005E -S31560005CE0000000000000000000000000000000004E -S31560005CF0000000000000000000000000000000003E -S31560005D00000000000000000000000000000000002D -S31560005D10000000000000000000000000000000001D -S31560005D20000000000000000000000000000000000D -S31560005D3000000000000000000000000000000000FD -S31560005D4000000000000000000000000000000000ED -S31560005D5000000000000000000000000000000000DD -S31560005D6000000000000000000000000000000000CD -S31560005D7000000000000000000000000000000000BD -S31560005D8000000000000000000000000000000000AD -S31560005D90000000000000000000000000000000009D -S31560005DA0000000000000000000000000000000008D -S31560005DB0000000000000000000000000000000007D -S31560005DC0000000000000000000000000000000006D -S31560005DD0000000000000000000000000000000005D -S31560005DE0000000000000000000000000000000004D -S31560005DF0000000000000000000000000000000003D -S31560005E00000000000000000000000000000000002C -S31560005E10000000000000000000000000000000001C -S31560005E20000000000000000000000000000000000C -S31560005E3000000000000000000000000000000000FC -S31560005E4000000000000000000000000000000000EC -S31560005E5000000000000000000000000000000000DC -S31560005E6000000000000000000000000000000000CC -S31560005E7000000000000000000000000000000000BC -S31560005E8000000000000000000000000000000000AC -S31560005E90000000000000000000000000000000009C -S31560005EA0000000000000000000000000000000008C -S31560005EB0000000000000000000000000000000007C -S31560005EC0000000000000000000000000000000006C -S31560005ED0000000000000000000000000000000005C -S31560005EE0000000000000000000000000000000004C -S31560005EF0000000000000000000000000000000003C -S31560005F00000000000000000000000000000000002B -S31560005F10000000000000000000000000000000001B -S31560005F20000000000000000000000000000000000B -S31560005F3000000000000000000000000000000000FB -S31560005F4000000000000000000000000000000000EB -S31560005F5000000000000000000000000000000000DB -S31560005F6000000000000000000000000000000000CB -S31560005F7000000000000000000000000000000000BB -S31560005F8000000000000000000000000000000000AB -S31560005F90000000000000000000000000000000009B -S31560005FA0000000000000000000000000000000008B -S31560005FB0000000000000000000000000000000007B -S31560005FC0000000000000000000000000000000006B -S31560005FD0000000000000000000000000000000005B -S31560005FE0000000000000000000000000000000004B -S31560005FF0000000000000000000000000000000003B -S31560006000000000000000000000000000000000002A -S31560006010000000000000000000000000000000001A -S31560006020000000000000000000000000000000000A -S3156000603000000000000000000000000000000000FA -S3156000604000000000000000000000000000000000EA -S3156000605000000000000000000000000000000000DA -S3156000606000000000000000000000000000000000CA -S3156000607000000000000000000000000000000000BA -S3156000608000000000000000000000000000000000AA -S31560006090000000000000000000000000000000009A -S315600060A0000000000000000000000000000000008A -S315600060B0000000000000000000000000000000007A -S315600060C0000000000000000000000000000000006A -S315600060D0000000000000000000000000000000005A -S315600060E0000000000000000000000000000000004A -S315600060F0000000000000000000000000000000003A -S315600061000000000000000000000000000000000029 -S315600061100000000000000000000000000000000019 -S315600061200000000000000000000000000000000009 -S3156000613000000000000000000000000000000000F9 -S3156000614000000000000000000000000000000000E9 -S3156000615000000000000000000000000000000000D9 -S3156000616000000000000000000000000000000000C9 -S3156000617000000000000000000000000000000000B9 -S3156000618000000000000000000000000000000000A9 -S315600061900000000000000000000000000000000099 -S315600061A00000000000000000000000000000000089 -S315600061B00000000000000000000000000000000079 -S315600061C00000000000000000000000000000000069 -S315600061D00000000000000000000000000000000059 -S315600061E00000000000000000000000000000000049 -S315600061F00000000000000000000000000000000039 -S315600062000000000000000000000000000000000028 -S315600062100000000000000000000000000000000018 -S315600062200000000000000000000000000000000008 -S3156000623000000000000000000000000000000000F8 -S3156000624000000000000000000000000000000000E8 -S3156000625000000000000000000000000000000000D8 -S3156000626000000000000000000000000000000000C8 -S3156000627000000000000000000000000000000000B8 -S3156000628000000000000000000000000000000000A8 -S315600062900000000000000000000000000000000098 -S315600062A00000000000000000000000000000000088 -S315600062B00000000000000000000000000000000078 -S315600062C00000000000000000000000000000000068 -S315600062D00000000000000000000000000000000058 -S315600062E00000000000000000000000000000000048 -S315600062F00000000000000000000000000000000038 -S315600063000000000000000000000000000000000027 -S315600063100000000000000000000000000000000017 -S315600063200000000000000000000000000000000007 -S3156000633000000000000000000000000000000000F7 -S3156000634000000000000000000000000000000000E7 -S3156000635000000000000000000000000000000000D7 -S3156000636000000000000000000000000000000000C7 -S3156000637000000000000000000000000000000000B7 -S3156000638000000000000000000000000000000000A7 -S315600063900000000000000000000000000000000097 -S315600063A00000000000000000000000000000000087 -S315600063B00000000000000000000000000000000077 -S315600063C00000000000000000000000000000000067 -S315600063D00000000000000000000000000000000057 -S315600063E00000000000000000000000000000000047 -S315600063F00000000000000000000000000000000037 -S315600064000000000000000000000000000000000026 -S315600064100000000000000000000000000000000016 -S315600064200000000000000000000000000000000006 -S3156000643000000000000000000000000000000000F6 -S3156000644000000000000000000000000000000000E6 -S3156000645000000000000000000000000000000000D6 -S3156000646000000000000000000000000000000000C6 -S3156000647000000000000000000000000000000000B6 -S3156000648000000000000000000000000000000000A6 -S315600064900000000000000000000000000000000096 -S315600064A00000000000000000000000000000000086 -S315600064B00000000000000000000000000000000076 -S315600064C00000000000000000000000000000000066 -S315600064D00000000000000000000000000000000056 -S315600064E00000000000000000000000000000000046 -S315600064F00000000000000000000000000000000036 -S315600065000000000000000000000000000000000025 -S315600065100000000000000000000000000000000015 -S315600065200000000000000000000000000000000005 -S3156000653000000000000000000000000000000000F5 -S3156000654000000000000000000000000000000000E5 -S3156000655000000000000000000000000000000000D5 -S3156000656000000000000000000000000000000000C5 -S3156000657000000000000000000000000000000000B5 -S3156000658000000000000000000000000000000000A5 -S315600065900000000000000000000000000000000095 -S315600065A00000000000000000000000000000000085 -S315600065B00000000000000000000000000000000075 -S315600065C00000000000000000000000000000000065 -S315600065D00000000000000000000000000000000055 -S315600065E00000000000000000000000000000000045 -S315600065F00000000000000000000000000000000035 -S315600066000000000000000000000000000000000024 -S315600066100000000000000000000000000000000014 -S315600066200000000000000000000000000000000004 -S3156000663000000000000000000000000000000000F4 -S3156000664000000000000000000000000000000000E4 -S3156000665000000000000000000000000000000000D4 -S3156000666000000000000000000000000000000000C4 -S3156000667000000000000000000000000000000000B4 -S3156000668000000000000000000000000000000000A4 -S315600066900000000000000000000000000000000094 -S315600066A00000000000000000000000000000000084 -S315600066B00000000000000000000000000000000074 -S315600066C00000000000000000000000000000000064 -S315600066D00000000000000000000000000000000054 -S315600066E00000000000000000000000000000000044 -S315600066F00000000000000000000000000000000034 -S315600067000000000000000000000000000000000023 -S315600067100000000000000000000000000000000013 -S315600067200000000000000000000000000000000003 -S3156000673000000000000000000000000000000000F3 -S3156000674000000000000000000000000000000000E3 -S3156000675000000000000000000000000000000000D3 -S3156000676000000000000000000000000000000000C3 -S3156000677000000000000000000000000000000000B3 -S3156000678000000000000000000000000000000000A3 -S315600067900000000000000000000000000000000093 -S315600067A00000000000000000000000000000000083 -S315600067B00000000000000000000000000000000073 -S315600067C00000000000000000000000000000000063 -S315600067D00000000000000000000000000000000053 -S315600067E00000000000000000000000000000000043 -S315600067F00000000000000000000000000000000033 -S315600068000000000000000000000000000000000022 -S315600068100000000000000000000000000000000012 -S315600068200000000000000000000000000000000002 -S3156000683000000000000000000000000000000000F2 -S3156000684000000000000000000000000000000000E2 -S3156000685000000000000000000000000000000000D2 -S3156000686000000000000000000000000000000000C2 -S3156000687000000000000000000000000000000000B2 -S3156000688000000000000000000000000000000000A2 -S315600068900000000000000000000000000000000092 -S315600068A00000000000000000000000000000000082 -S315600068B00000000000000000000000000000000072 -S315600068C00000000000000000000000000000000062 -S315600068D00000000000000000000000000000000052 -S315600068E00000000000000000000000000000000042 -S315600068F00000000000000000000000000000000032 -S315600069000000000000000000000000000000000021 -S315600069100000000000000000000000000000000011 -S315600069200000000000000000000000000000000001 -S3156000693000000000000000000000000000000000F1 -S3156000694000000000000000000000000000000000E1 -S3156000695000000000000000000000000000000000D1 -S3156000696000000000000000000000000000000000C1 -S3156000697000000000000000000000000000000000B1 -S3156000698000000000000000000000000000000000A1 -S315600069900000000000000000000000000000000091 -S315600069A00000000000000000000000000000000081 -S315600069B00000000000000000000000000000000071 -S315600069C00000000000000000000000000000000061 -S315600069D00000000000000000000000000000000051 -S315600069E00000000000000000000000000000000041 -S315600069F00000000000000000000000000000000031 -S31560006A000000000000000000000000000000000020 -S31560006A100000000000000000000000000000000010 -S31560006A200000000000000000000000000000000000 -S31560006A3000000000000000000000000000000000F0 -S31560006A4000000000000000000000000000000000E0 -S31560006A5000000000000000000000000000000000D0 -S31560006A6000000000000000000000000000000000C0 -S31560006A7000000000000000000000000000000000B0 -S31560006A8000000000000000000000000000000000A0 -S31560006A900000000000000000000000000000000090 -S31560006AA00000000000000000000000000000000080 -S31560006AB00000000000000000000000000000000070 -S31560006AC00000000000000000000000000000000060 -S31560006AD00000000000000000000000000000000050 -S31560006AE00000000000000000000000000000000040 -S31560006AF00000000000000000000000000000000030 -S31560006B00000000000000000000000000000000001F -S31560006B10000000000000000000000000000000000F -S31560006B2000000000000000000000000000000000FF -S31560006B3000000000000000000000000000000000EF -S31560006B4000000000000000000000000000000000DF -S31560006B5000000000000000000000000000000000CF -S31560006B6000000000000000000000000000000000BF -S31560006B7000000000000000000000000000000000AF -S31560006B80000000000000000000000000000000009F -S31560006B90000000000000000000000000000000008F -S31560006BA0000000000000000000000000000000007F -S31560006BB0000000000000000000000000000000006F -S31560006BC0000000000000000000000000000000005F -S31560006BD0000000000000000000000000000000004F -S31560006BE0000000000000000000000000000000003F -S31560006BF0000000000000000000000000000000002F -S31560006C00000000000000000000000000000000001E -S31560006C10000000000000000000000000000000000E -S31560006C2000000000000000000000000000000000FE -S31560006C3000000000000000000000000000000000EE -S31560006C4000000000000000000000000000000000DE -S31560006C5000000000000000000000000000000000CE -S31560006C6000000000000000000000000000000000BE -S31560006C7000000000000000000000000000000000AE -S31560006C80000000000000000000000000000000009E -S31560006C90000000000000000000000000000000008E -S31560006CA0000000000000000000000000000000007E -S31560006CB0000000000000000000000000000000006E -S31560006CC0000000000000000000000000000000005E -S31560006CD0000000000000000000000000000000004E -S31560006CE0000000000000000000000000000000003E -S31560006CF0000000000000000000000000000000002E -S31560006D00000000000000000000000000000000001D -S31560006D10000000000000000000000000000000000D -S31560006D2000000000000000000000000000000000FD -S31560006D3000000000000000000000000000000000ED -S31560006D4000000000000000000000000000000000DD -S31560006D5000000000000000000000000000000000CD -S31560006D6000000000000000000000000000000000BD -S31560006D7000000000000000000000000000000000AD -S31560006D80000000000000000000000000000000009D -S31560006D90000000000000000000000000000000008D -S31560006DA0000000000000000000000000000000007D -S31560006DB0000000000000000000000000000000006D -S31560006DC0000000000000000000000000000000005D -S31560006DD0000000000000000000000000000000004D -S31560006DE0000000000000000000000000000000003D -S31560006DF0000000000000000000000000000000002D -S31560006E00000000000000000000000000000000001C -S31560006E10000000000000000000000000000000000C -S31560006E2000000000000000000000000000000000FC -S31560006E3000000000000000000000000000000000EC -S31560006E4000000000000000000000000000000000DC -S31560006E5000000000000000000000000000000000CC -S31560006E6000000000000000000000000000000000BC -S31560006E7000000000000000000000000000000000AC -S31560006E80000000000000000000000000000000009C -S31560006E90000000000000000000000000000000008C -S31560006EA0000000000000000000000000000000007C -S31560006EB0000000000000000000000000000000006C -S31560006EC0000000000000000000000000000000005C -S31560006ED0000000000000000000000000000000004C -S31560006EE0000000000000000000000000000000003C -S31560006EF0000000000000000000000000000000002C -S31560006F00000000000000000000000000000000001B -S31560006F10000000000000000000000000000000000B -S31560006F2000000000000000000000000000000000FB -S31560006F3000000000000000000000000000000000EB -S31560006F4000000000000000000000000000000000DB -S31560006F5000000000000000000000000000000000CB -S31560006F6000000000000000000000000000000000BB -S31560006F7000000000000000000000000000000000AB -S31560006F80000000000000000000000000000000009B -S31560006F90000000000000000000000000000000008B -S31560006FA0000000000000000000000000000000007B -S31560006FB0000000000000000000000000000000006B -S31560006FC0000000000000000000000000000000005B -S31560006FD0000000000000000000000000000000004B -S31560006FE0000000000000000000000000000000003B -S31560006FF0000000000000000000000000000000002B -S31560007000000000000000000000000000000000001A -S31560007010000000000000000000000000000000000A -S3156000702000000000000000000000000000000000FA -S3156000703000000000000000000000000000000000EA -S3156000704000000000000000000000000000000000DA -S3156000705000000000000000000000000000000000CA -S3156000706000000000000000000000000000000000BA -S3156000707000000000000000000000000000000000AA -S31560007080000000000000000000000000000000009A -S31560007090000000000000000000000000000000008A -S315600070A0000000000000000000000000000000007A -S315600070B0000000000000000000000000000000006A -S315600070C0000000000000000000000000000000005A -S315600070D0000000000000000000000000000000004A -S315600070E0000000000000000000000000000000003A -S315600070F0000000000000000000000000000000002A -S315600071000000000000000000000000000000000019 -S315600071100000000000000000000000000000000009 -S3156000712000000000000000000000000000000000F9 -S3156000713000000000000000000000000000000000E9 -S3156000714000000000000000000000000000000000D9 -S3156000715000000000000000000000000000000000C9 -S3156000716000000000000000000000000000000000B9 -S3156000717000000000000000000000000000000000A9 -S315600071800000000000000000000000000000000099 -S315600071900000000000000000000000000000000089 -S315600071A00000000000000000000000000000000079 -S315600071B00000000000000000000000000000000069 -S315600071C00000000000000000000000000000000059 -S315600071D00000000000000000000000000000000049 -S315600071E00000000000000000000000000000000039 -S315600071F00000000000000000000000000000000029 -S315600072000000000000000000000000000000000018 -S315600072100000000000000000000000000000000008 -S3156000722000000000000000000000000000000000F8 -S3156000723000000000000000000000000000000000E8 -S3156000724000000000000000000000000000000000D8 -S3156000725000000000000000000000000000000000C8 -S3156000726000000000000000000000000000000000B8 -S3156000727000000000000000000000000000000000A8 -S315600072800000000000000000000000000000000098 -S315600072900000000000000000000000000000000088 -S315600072A00000000000000000000000000000000078 -S315600072B00000000000000000000000000000000068 -S315600072C00000000000000000000000000000000058 -S315600072D00000000000000000000000000000000048 -S315600072E00000000000000000000000000000000038 -S315600072F00000000000000000000000000000000028 -S315600073000000000000000000000000000000000017 -S315600073100000000000000000000000000000000007 -S3156000732000000000000000000000000000000000F7 -S3156000733000000000000000000000000000000000E7 -S3156000734000000000000000000000000000000000D7 -S3156000735000000000000000000000000000000000C7 -S3156000736000000000000000000000000000000000B7 -S3156000737000000000000000000000000000000000A7 -S315600073800000000000000000000000000000000097 -S315600073900000000000000000000000000000000087 -S315600073A00000000000000000000000000000000077 -S315600073B00000000000000000000000000000000067 -S315600073C00000000000000000000000000000000057 -S315600073D00000000000000000000000000000000047 -S315600073E00000000000000000000000000000000037 -S315600073F00000000000000000000000000000000027 -S315600074000000000000000000000000000000000016 -S315600074100000000000000000000000000000000006 -S3156000742000000000000000000000000000000000F6 -S3156000743000000000000000000000000000000000E6 -S3156000744000000000000000000000000000000000D6 -S3156000745000000000000000000000000000000000C6 -S3156000746000000000000000000000000000000000B6 -S3156000747000000000000000000000000000000000A6 -S315600074800000000000000000000000000000000096 -S315600074900000000000000000000000000000000086 -S315600074A00000000000000000000000000000000076 -S315600074B00000000000000000000000000000000066 -S315600074C00000000000000000000000000000000056 -S315600074D00000000000000000000000000000000046 -S315600074E00000000000000000000000000000000036 -S315600074F00000000000000000000000000000000026 -S315600075000000000000000000000000000000000015 -S315600075100000000000000000000000000000000005 -S3156000752000000000000000000000000000000000F5 -S3156000753000000000000000000000000000000000E5 -S3156000754000000000000000000000000000000000D5 -S3156000755000000000000000000000000000000000C5 -S3156000756000000000000000000000000000000000B5 -S3156000757000000000000000000000000000000000A5 -S315600075800000000000000000000000000000000095 -S315600075900000000000000000000000000000000085 -S315600075A00000000000000000000000000000000075 -S315600075B00000000000000000000000000000000065 -S315600075C00000000000000000000000000000000055 -S315600075D00000000000000000000000000000000045 -S315600075E00000000000000000000000000000000035 -S315600075F00000000000000000000000000000000025 -S315600076000000000000000000000000000000000014 -S315600076100000000000000000000000000000000004 -S3156000762000000000000000000000000000000000F4 -S3156000763000000000000000000000000000000000E4 -S3156000764000000000000000000000000000000000D4 -S3156000765000000000000000000000000000000000C4 -S3156000766000000000000000000000000000000000B4 -S3156000767000000000000000000000000000000000A4 -S315600076800000000000000000000000000000000094 -S315600076900000000000000000000000000000000084 -S315600076A00000000000000000000000000000000074 -S315600076B00000000000000000000000000000000064 -S315600076C00000000000000000000000000000000054 -S315600076D00000000000000000000000000000000044 -S315600076E00000000000000000000000000000000034 -S315600076F00000000000000000000000000000000024 -S315600077000000000000000000000000000000000013 -S315600077100000000000000000000000000000000003 -S3156000772000000000000000000000000000000000F3 -S3156000773000000000000000000000000000000000E3 -S3156000774000000000000000000000000000000000D3 -S3156000775000000000000000000000000000000000C3 -S3156000776000000000000000000000000000000000B3 -S3156000777000000000000000000000000000000000A3 -S315600077800000000000000000000000000000000093 -S315600077900000000000000000000000000000000083 -S315600077A00000000000000000000000000000000073 -S315600077B00000000000000000000000000000000063 -S315600077C00000000000000000000000000000000053 -S315600077D00000000000000000000000000000000043 -S315600077E00000000000000000000000000000000033 -S315600077F00000000000000000000000000000000023 -S315600078000000000000000000000000000000000012 -S315600078100000000000000000000000000000000002 -S3156000782000000000000000000000000000000000F2 -S3156000783000000000000000000000000000000000E2 -S3156000784000000000000000000000000000000000D2 -S3156000785000000000000000000000000000000000C2 -S3156000786000000000000000000000000000000000B2 -S3156000787000000000000000000000000000000000A2 -S315600078800000000000000000000000000000000092 -S315600078900000000000000000000000000000000082 -S315600078A00000000000000000000000000000000072 -S315600078B00000000000000000000000000000000062 -S315600078C00000000000000000000000000000000052 -S315600078D00000000000000000000000000000000042 -S315600078E00000000000000000000000000000000032 -S315600078F00000000000000000000000000000000022 -S315600079000000000000000000000000000000000011 -S315600079100000000000000000000000000000000001 -S3156000792000000000000000000000000000000000F1 -S3156000793000000000000000000000000000000000E1 -S3156000794000000000000000000000000000000000D1 -S3156000795000000000000000000000000000000000C1 -S3156000796000000000000000000000000000000000B1 -S3156000797000000000000000000000000000000000A1 -S315600079800000000000000000000000000000000091 -S315600079900000000000000000000000000000000081 -S315600079A00000000000000000000000000000000071 -S315600079B00000000000000000000000000000000061 -S315600079C00000000000000000000000000000000051 -S315600079D00000000000000000000000000000000041 -S315600079E00000000000000000000000000000000031 -S315600079F00000000000000000000000000000000021 -S31560007A000000000000000000000000000000000010 -S31560007A100000000000000000000000000000000000 -S31560007A2000000000000000000000000000000000F0 -S31560007A3000000000000000000000000000000000E0 -S31560007A4000000000000000000000000000000000D0 -S31560007A5000000000000000000000000000000000C0 -S31560007A6000000000000000000000000000000000B0 -S31560007A7000000000000000000000000000000000A0 -S31560007A800000000000000000000000000000000090 -S31560007A900000000000000000000000000000000080 -S31560007AA00000000000000000000000000000000070 -S31560007AB00000000000000000000000000000000060 -S31560007AC00000000000000000000000000000000050 -S31560007AD00000000000000000000000000000000040 -S31560007AE00000000000000000000000000000000030 -S31560007AF00000000000000000000000000000000020 -S31560007B00000000000000000000000000000000000F -S31560007B1000000000000000000000000000000000FF -S31560007B2000000000000000000000000000000000EF -S31560007B3000000000000000000000000000000000DF -S31560007B4000000000000000000000000000000000CF -S31560007B5000000000000000000000000000000000BF -S31560007B6000000000000000000000000000000000AF -S31560007B70000000000000000000000000000000009F -S31560007B80000000000000000000000000000000008F -S31560007B90000000000000000000000000000000007F -S31560007BA0000000000000000000000000000000006F -S31560007BB0000000000000000000000000000000005F -S31560007BC0000000000000000000000000000000004F -S31560007BD0000000000000000000000000000000003F -S31560007BE0000000000000000000000000000000002F -S31560007BF0000000000000000000000000000000001F -S31560007C00000000000000000000000000000000000E -S31560007C1000000000000000000000000000000000FE -S31560007C2000000000000000000000000000000000EE -S31560007C3000000000000000000000000000000000DE -S31560007C4000000000000000000000000000000000CE -S31560007C5000000000000000000000000000000000BE -S31560007C6000000000000000000000000000000000AE -S31560007C70000000000000000000000000000000009E -S31560007C80000000000000000000000000000000008E -S31560007C90000000000000000000000000000000007E -S31560007CA0000000000000000000000000000000006E -S31560007CB0000000000000000000000000000000005E -S31560007CC0000000000000000000000000000000004E -S31560007CD0000000000000000000000000000000003E -S31560007CE0000000000000000000000000000000002E -S31560007CF0000000000000000000000000000000001E -S31560007D00000000000000000000000000000000000D -S31560007D1000000000000000000000000000000000FD -S31560007D2000000000000000000000000000000000ED -S31560007D3000000000000000000000000000000000DD -S31560007D4000000000000000000000000000000000CD -S31560007D5000000000000000000000000000000000BD -S31560007D6000000000000000000000000000000000AD -S31560007D70000000000000000000000000000000009D -S31560007D80000000000000000000000000000000008D -S31560007D90000000000000000000000000000000007D -S31560007DA0000000000000000000000000000000006D -S31560007DB0000000000000000000000000000000005D -S31560007DC0000000000000000000000000000000004D -S31560007DD0000000000000000000000000000000003D -S31560007DE0000000000000000000000000000000002D -S31560007DF0000000000000000000000000000000001D -S31560007E00000000000000000000000000000000000C -S31560007E1000000000000000000000000000000000FC -S31560007E2000000000000000000000000000000000EC -S31560007E3000000000000000000000000000000000DC -S31560007E4000000000000000000000000000000000CC -S31560007E5000000000000000000000000000000000BC -S31560007E6000000000000000000000000000000000AC -S31560007E70000000000000000000000000000000009C -S31560007E80000000000000000000000000000000008C -S31560007E90000000000000000000000000000000007C -S31560007EA0000000000000000000000000000000006C -S31560007EB0000000000000000000000000000000005C -S31560007EC0000000000000000000000000000000004C -S31560007ED0000000000000000000000000000000003C -S31560007EE0000000000000000000000000000000002C -S31560007EF0000000000000000000000000000000001C -S31560007F00000000000000000000000000000000000B -S31560007F1000000000000000000000000000000000FB -S31560007F2000000000000000000000000000000000EB -S31560007F3000000000000000000000000000000000DB -S31560007F4000000000000000000000000000000000CB -S31560007F5000000000000000000000000000000000BB -S31560007F6000000000000000000000000000000000AB -S31560007F70000000000000000000000000000000009B -S31560007F80000000000000000000000000000000008B -S31560007F90000000000000000000000000000000007B -S31560007FA0000000000000000000000000000000006B -S31560007FB0000000000000000000000000000000005B -S31560007FC0000000000000000000000000000000004B -S31560007FD0000000000000000000000000000000003B -S31560007FE0000000000000000000000000000000002B -S31560007FF0000000000000000000000000000000001B -S315600080009DE3BF9081C7E00881E80000030000108F -S31560008010C48000408088800112BFFFFE010000001E -S315600080209DE3BF909DE3BF909DE3BF909DE3BF90AE -S315600080309DE3BF909DE3BF9021044444A0142111A9 -S3156000804023088888A2146222250CCCCCA414A333FE -S3156000805027111111A614E04429155555A815215567 -S315600080602B199999AA1562662D1DDDDDAC15A377CE -S315600080702F222222AE15E08801100000E03FBFE00B -S31560008080E43FBFE8E83FBFF0EC3FBFF88210001E58 -S315600080908220601CC0A041E082206008C0A041E050 -S315600080A082206008C0A041E082206008C0A041E054 -S315600080B0C0A002209DE3BF909DE3BF9081E80000D1 -S315600080C081E800000100000001000000E01FBFE041 -S315600080D0E41FBFE8E81FBFF0EC1FBFF80100000017 -S315600080E00100000081E8000081E8000081E80000EE -S315600080F081E8000081E8000081C7E00881E80000AF -S31560008100A7500000AA102400A8102300EC85432085 -S31560008110EA8503202F180020AE15E150EE05C00059 -S31560008120E805C000EA05E004EC05E008AC15A0002F -S31560008130C0A58300EA250000AE05E00C2B180020E0 -S31560008140AA156150EE25400081C4400081CC8000B4 -S3156000815000000000010000000000000000000000B8 -S3156000816000000000000000000000000000000000A9 -S315600081700000000000000000000000000000000099 -S315600081800000000000000000000000000000000089 -S315600081900000000001000000010000000100000076 -S315600081A00100000001000000010000000100000065 -S315600081B00100000001000000010000000100000055 -S315600081C00100000001000000010000000100000045 -S315600081D00100000001000000010000000100000035 -S315600081E00100000001000000010000000100000025 -S315600081F00100000001000000010000000100000015 -S315600082000100000001000000010000000100000004 -S3156000821001000000010000000100000001000000F4 -S3156000822001000000010000000100000001000000E4 -S3156000823001000000010000000100000001000000D4 -S3156000824001000000010000000100000001000000C4 -S3156000825001000000010000000100000001000000B4 -S3156000826001000000010000000100000001000000A4 -S315600082700100000001000000010000000100000094 -S315600082800100000001000000010000000100000084 -S315600082900100000001000000010000000100000074 -S315600082A00100000001000000010000000100000064 -S315600082B00100000001000000010000000100000054 -S315600082C00100000001000000010000000100000044 -S315600082D00100000001000000010000000100000034 -S315600082E00100000001000000010000000100000024 -S315600082F00100000001000000010000000100000014 -S315600083000100000001000000010000000100000003 -S3156000831001000000010000000100000001000000F3 -S3156000832001000000010000000100000001000000E3 -S3156000833001000000010000000100000001000000D3 -S3156000834001000000010000000100000001000000C3 -S3156000835001000000010000000100000001000000B3 -S3156000836001000000010000000100000001000000A3 -S315600083700100000001000000010000000100000093 -S315600083800100000001000000010000000100000083 -S315600083900100000001000000010000000100000073 -S315600083A00100000001000000010000000100000063 -S315600083B00100000001000000010000000100000053 -S315600083C00100000001000000010000000100000043 -S315600083D00100000001000000010000000100000033 -S315600083E00100000001000000010000000100000023 -S315600083F00100000001000000010000000100000013 -S315600084000100000001000000010000000100000002 -S3156000841001000000010000000100000001000000F2 -S3156000842001000000010000000100000001000000E2 -S3156000843001000000010000000100000001000000D2 -S3156000844001000000010000000100000001000000C2 -S3156000845001000000010000000100000001000000B2 -S3156000846001000000010000000100000001000000A2 -S315600084700100000001000000010000000100000092 -S315600084800100000001000000010000000100000082 -S315600084900100000001000000010000000100000072 -S315600084A00100000001000000010000000100000062 -S315600084B00100000001000000010000000100000052 -S315600084C00100000001000000010000000100000042 -S315600084D00100000001000000010000000100000032 -S315600084E00100000001000000010000000100000022 -S315600084F00100000001000000010000000100000012 -S315600085000100000001000000010000000100000001 -S3156000851001000000010000000100000001000000F1 -S3156000852001000000010000000100000001000000E1 -S3156000853001000000010000000100000001000000D1 -S3156000854001000000010000000100000001000000C1 -S3156000855001000000010000000100000001000000B1 -S3156000856001000000010000000100000001000000A1 -S315600085700100000001000000010000000100000091 -S315600085800100000001000000010000000100000081 -S315600085900100000001000000010000000100000071 -S315600085A00100000001000000010000000100000061 -S315600085B00100000001000000010000000100000051 -S315600085C00100000001000000010000000100000041 -S315600085D00100000001000000010000000100000031 -S315600085E00100000001000000010000000100000021 -S315600085F00100000001000000010000000100000011 -S315600086000100000001000000010000000100000000 -S3156000861001000000010000000100000001000000F0 -S3156000862001000000010000000100000001000000E0 -S3156000863001000000010000000100000001000000D0 -S3156000864001000000010000000100000001000000C0 -S3156000865001000000010000000100000001000000B0 -S3156000866001000000010000000100000001000000A0 -S315600086700100000001000000010000000100000090 -S315600086800100000001000000010000000100000080 -S315600086900100000001000000010000000100000070 -S315600086A00100000001000000010000000100000060 -S315600086B00100000001000000010000000100000050 -S315600086C00100000001000000010000000100000040 -S315600086D00100000001000000010000000100000030 -S315600086E00100000001000000010000000100000020 -S315600086F00100000001000000010000000100000010 -S3156000870001000000010000000100000001000000FF -S3156000871001000000010000000100000001000000EF -S3156000872001000000010000000100000001000000DF -S3156000873001000000010000000100000001000000CF -S3156000874001000000010000000100000001000000BF -S3156000875001000000010000000100000001000000AF -S31560008760010000000100000001000000010000009F -S31560008770010000000100000001000000010000008F -S31560008780010000000100000001000000010000007F -S31560008790010000000100000001000000010000006F -S315600087A0010000000100000001000000010000005F -S315600087B0010000000100000001000000010000004F -S315600087C0010000000100000001000000010000003F -S315600087D0010000000100000001000000010000002F -S315600087E0010000000100000001000000010000001F -S315600087F0010000000100000001000000010000000F -S3156000880001000000010000000100000001000000FE -S3156000881001000000010000000100000001000000EE -S3156000882001000000010000000100000001000000DE -S3156000883001000000010000000100000001000000CE -S3156000884001000000010000000100000001000000BE -S3156000885001000000010000000100000001000000AE -S31560008860010000000100000001000000010000009E -S31560008870010000000100000001000000010000008E -S31560008880010000000100000001000000010000007E -S31560008890010000000100000001000000010000006E -S315600088A0010000000100000001000000010000005E -S315600088B0010000000100000001000000010000004E -S315600088C0010000000100000001000000010000003E -S315600088D0010000000100000001000000010000002E -S315600088E0010000000100000001000000010000001E -S315600088F0010000000100000001000000010000000E -S3156000890001000000010000000100000001000000FD -S3156000891001000000010000000100000001000000ED -S3156000892001000000010000000100000001000000DD -S3156000893001000000010000000100000001000000CD -S3156000894001000000010000000100000001000000BD -S3156000895001000000010000000100000001000000AD -S31560008960010000000100000001000000010000009D -S31560008970010000000100000001000000010000008D -S31560008980010000000100000001000000010000007D -S31560008990010000000100000001000000010000006D -S315600089A0010000000100000001000000010000005D -S315600089B0010000000100000001000000010000004D -S315600089C0010000000100000001000000010000003D -S315600089D0010000000100000001000000010000002D -S315600089E0010000000100000001000000010000001D -S315600089F0010000000100000001000000010000000D -S31560008A0001000000010000000100000001000000FC -S31560008A1001000000010000000100000001000000EC -S31560008A2001000000010000000100000001000000DC -S31560008A3001000000010000000100000001000000CC -S31560008A4001000000010000000100000001000000BC -S31560008A5001000000010000000100000001000000AC -S31560008A60010000000100000001000000010000009C -S31560008A70010000000100000001000000010000008C -S31560008A80010000000100000001000000010000007C -S31560008A90010000000100000001000000010000006C -S31560008AA0010000000100000001000000010000005C -S31560008AB0010000000100000001000000010000004C -S31560008AC0010000000100000001000000010000003C -S31560008AD0010000000100000001000000010000002C -S31560008AE0010000000100000001000000010000001C -S31560008AF0010000000100000001000000010000000C -S31560008B0001000000010000000100000001000000FB -S31560008B1001000000010000000100000001000000EB -S31560008B2001000000010000000100000001000000DB -S31560008B3001000000010000000100000001000000CB -S31560008B4001000000010000000100000001000000BB -S31560008B5001000000010000000100000001000000AB -S31560008B60010000000100000001000000010000009B -S31560008B70010000000100000001000000010000008B -S31560008B80010000000100000001000000010000007B -S31560008B90010000000100000001000000010000006B -S31560008BA0010000000100000001000000010000005B -S31560008BB0010000000100000001000000010000004B -S31560008BC0010000000100000001000000010000003B -S31560008BD0010000000100000001000000010000002B -S31560008BE0010000000100000001000000010000001B -S31560008BF0010000000100000001000000010000000B -S31560008C0001000000010000000100000001000000FA -S31560008C1001000000010000000100000001000000EA -S31560008C2001000000010000000100000001000000DA -S31560008C3001000000010000000100000001000000CA -S31560008C4001000000010000000100000001000000BA -S31560008C5001000000010000000100000001000000AA -S31560008C60010000000100000001000000010000009A -S31560008C70010000000100000001000000010000008A -S31560008C80010000000100000001000000010000007A -S31560008C90010000000100000001000000010000006A -S31560008CA0010000000100000001000000010000005A -S31560008CB0010000000100000001000000010000004A -S31560008CC0010000000100000001000000010000003A -S31560008CD0010000000100000001000000010000002A -S31560008CE0010000000100000001000000010000001A -S31560008CF0010000000100000001000000010000000A -S31560008D0001000000010000000100000001000000F9 -S31560008D1001000000010000000100000001000000E9 -S31560008D2001000000010000000100000001000000D9 -S31560008D3001000000010000000100000001000000C9 -S31560008D4001000000010000000100000001000000B9 -S31560008D5001000000010000000100000001000000A9 -S31560008D600100000001000000010000000100000099 -S31560008D700100000001000000010000000100000089 -S31560008D800100000001000000010000000100000079 -S31560008D900100000001000000010000000100000069 -S31560008DA00100000001000000010000000100000059 -S31560008DB00100000001000000010000000100000049 -S31560008DC00100000001000000010000000100000039 -S31560008DD00100000001000000010000000100000029 -S31560008DE00100000001000000010000000100000019 -S31560008DF00100000001000000010000000100000009 -S31560008E0001000000010000000100000001000000F8 -S31560008E1001000000010000000100000001000000E8 -S31560008E2001000000010000000100000001000000D8 -S31560008E3001000000010000000100000001000000C8 -S31560008E4001000000010000000100000001000000B8 -S31560008E5001000000010000000100000001000000A8 -S31560008E600100000001000000010000000100000098 -S31560008E700100000001000000010000000100000088 -S31560008E800100000001000000010000000100000078 -S31560008E900100000001000000010000000100000068 -S31560008EA00100000001000000010000000100000058 -S31560008EB00100000001000000010000000100000048 -S31560008EC00100000001000000010000000100000038 -S31560008ED00100000001000000010000000100000028 -S31560008EE00100000001000000010000000100000018 -S31560008EF00100000001000000010000000100000008 -S31560008F0001000000010000000100000001000000F7 -S31560008F1001000000010000000100000001000000E7 -S31560008F2001000000010000000100000001000000D7 -S31560008F3001000000010000000100000001000000C7 -S31560008F4001000000010000000100000001000000B7 -S31560008F5001000000010000000100000001000000A7 -S31560008F600100000001000000010000000100000097 -S31560008F700100000001000000010000000100000087 -S31560008F800100000001000000010000000100000077 -S31560008F900100000001000000010000000100000067 -S31560008FA00100000001000000010000000100000057 -S31560008FB00100000001000000010000000100000047 -S31560008FC00100000001000000010000000100000037 -S31560008FD00100000001000000010000000100000027 -S31560008FE00100000001000000010000000100000017 -S31560008FF00100000001000000010000000100000007 -S3156000900001000000010000000100000001000000F6 -S3156000901001000000010000000100000001000000E6 -S3156000902001000000010000000100000001000000D6 -S3156000903001000000010000000100000001000000C6 -S3156000904001000000010000000100000001000000B6 -S3156000905001000000010000000100000001000000A6 -S315600090600100000001000000010000000100000096 -S315600090700100000001000000010000000100000086 -S315600090800100000001000000010000000100000076 -S315600090900100000001000000010000000100000066 -S315600090A00100000001000000010000000100000056 -S315600090B00100000001000000010000000100000046 -S315600090C00100000001000000010000000100000036 -S315600090D00100000001000000010000000100000026 -S315600090E00100000001000000010000000100000016 -S315600090F00100000001000000010000000100000006 -S3156000910001000000010000000100000001000000F5 -S3156000911001000000010000000100000001000000E5 -S3156000912001000000010000000100000001000000D5 -S3156000913001000000010000000100000001000000C5 -S3156000914001000000010000000100000001000000B5 -S3156000915001000000010000000100000001000000A5 -S315600091600100000001000000010000000100000095 -S315600091700100000001000000010000000100000085 -S315600091800100000001000000010000000100000075 -S315600091900100000001000000010000000100000065 -S315600091A00100000001000000010000000100000055 -S315600091B00100000001000000010000000100000045 -S315600091C00100000001000000010000000100000035 -S315600091D00100000001000000010000000100000025 -S315600091E00100000001000000010000000100000015 -S315600091F00100000001000000010000000100000005 -S3156000920001000000010000000100000001000000F4 -S3156000921001000000010000000100000001000000E4 -S3156000922001000000010000000100000001000000D4 -S3156000923001000000010000000100000001000000C4 -S3156000924001000000010000000100000001000000B4 -S3156000925001000000010000000100000001000000A4 -S315600092600100000001000000010000000100000094 -S315600092700100000001000000010000000100000084 -S315600092800100000001000000010000000100000074 -S315600092900100000001000000010000000100000064 -S315600092A00100000001000000010000000100000054 -S315600092B00100000001000000010000000100000044 -S315600092C00100000001000000010000000100000034 -S315600092D00100000001000000010000000100000024 -S315600092E00100000001000000010000000100000014 -S315600092F00100000001000000010000000100000004 -S3156000930001000000010000000100000001000000F3 -S3156000931001000000010000000100000001000000E3 -S3156000932001000000010000000100000001000000D3 -S3156000933001000000010000000100000001000000C3 -S3156000934001000000010000000100000001000000B3 -S3156000935001000000010000000100000001000000A3 -S315600093600100000001000000010000000100000093 -S315600093700100000001000000010000000100000083 -S315600093800100000001000000010000000100000073 -S315600093900100000001000000010000000100000063 -S315600093A00100000001000000010000000100000053 -S315600093B00100000001000000010000000100000043 -S315600093C00100000001000000010000000100000033 -S315600093D00100000001000000010000000100000023 -S315600093E00100000001000000010000000100000013 -S315600093F00100000001000000010000000100000003 -S3156000940001000000010000000100000001000000F2 -S3156000941001000000010000000100000001000000E2 -S3156000942001000000010000000100000001000000D2 -S3156000943001000000010000000100000001000000C2 -S3156000944001000000010000000100000001000000B2 -S3156000945001000000010000000100000001000000A2 -S315600094600100000001000000010000000100000092 -S315600094700100000001000000010000000100000082 -S315600094800100000001000000010000000100000072 -S315600094900100000001000000010000000100000062 -S315600094A00100000001000000010000000100000052 -S315600094B00100000001000000010000000100000042 -S315600094C00100000001000000010000000100000032 -S315600094D00100000001000000010000000100000022 -S315600094E00100000001000000010000000100000012 -S315600094F00100000001000000010000000100000002 -S3156000950001000000010000000100000001000000F1 -S3156000951001000000010000000100000001000000E1 -S3156000952001000000010000000100000001000000D1 -S3156000953001000000010000000100000001000000C1 -S3156000954001000000010000000100000001000000B1 -S3156000955001000000010000000100000001000000A1 -S315600095600100000001000000010000000100000091 -S315600095700100000001000000010000000100000081 -S315600095800100000001000000010000000100000071 -S315600095900100000001000000010000000100000061 -S315600095A00100000001000000010000000100000051 -S315600095B00100000001000000010000000100000041 -S315600095C00100000001000000010000000100000031 -S315600095D00100000001000000010000000100000021 -S315600095E00100000001000000010000000100000011 -S315600095F00100000001000000010000000100000001 -S3156000960001000000010000000100000001000000F0 -S3156000961001000000010000000100000001000000E0 -S3156000962001000000010000000100000001000000D0 -S3156000963001000000010000000100000001000000C0 -S3156000964001000000010000000100000001000000B0 -S3156000965001000000010000000100000001000000A0 -S315600096600100000001000000010000000100000090 -S315600096700100000001000000010000000100000080 -S315600096800100000001000000010000000100000070 -S315600096900100000001000000010000000100000060 -S315600096A00100000001000000010000000100000050 -S315600096B00100000001000000010000000100000040 -S315600096C00100000001000000010000000100000030 -S315600096D00100000001000000010000000100000020 -S315600096E00100000001000000010000000100000010 -S315600096F00100000001000000010000000100000000 -S3156000970001000000010000000100000001000000EF -S3156000971001000000010000000100000001000000DF -S3156000972001000000010000000100000001000000CF -S3156000973001000000010000000100000001000000BF -S3156000974001000000010000000100000001000000AF -S31560009750010000000100000001000000010000009F -S31560009760010000000100000001000000010000008F -S31560009770010000000100000001000000010000007F -S31560009780010000000100000001000000010000006F -S31560009790010000000100000001000000010000005F -S315600097A0010000000100000001000000010000004F -S315600097B0010000000100000001000000010000003F -S315600097C0010000000100000001000000010000002F -S315600097D0010000000100000001000000010000001F -S315600097E0010000000100000001000000010000000F -S315600097F001000000010000000100000001000000FF -S3156000980001000000010000000100000001000000EE -S3156000981001000000010000000100000001000000DE -S3156000982001000000010000000100000001000000CE -S3156000983001000000010000000100000001000000BE -S3156000984001000000010000000100000001000000AE -S31560009850010000000100000001000000010000009E -S31560009860010000000100000001000000010000008E -S31560009870010000000100000001000000010000007E -S31560009880010000000100000001000000010000006E -S31560009890010000000100000001000000010000005E -S315600098A0010000000100000001000000010000004E -S315600098B0010000000100000001000000010000003E -S315600098C0010000000100000001000000010000002E -S315600098D0010000000100000001000000010000001E -S315600098E0010000000100000001000000010000000E -S315600098F001000000010000000100000001000000FE -S3156000990001000000010000000100000001000000ED -S3156000991001000000010000000100000001000000DD -S3156000992001000000010000000100000001000000CD -S3156000993001000000010000000100000001000000BD -S3156000994001000000010000000100000001000000AD -S31560009950010000000100000001000000010000009D -S31560009960010000000100000001000000010000008D -S31560009970010000000100000001000000010000007D -S31560009980010000000100000001000000010000006D -S31560009990010000000100000001000000010000005D -S315600099A0010000000100000001000000010000004D -S315600099B0010000000100000001000000010000003D -S315600099C0010000000100000001000000010000002D -S315600099D0010000000100000001000000010000001D -S315600099E0010000000100000001000000010000000D -S315600099F001000000010000000100000001000000FD -S31560009A0001000000010000000100000001000000EC -S31560009A1001000000010000000100000001000000DC -S31560009A2001000000010000000100000001000000CC -S31560009A3001000000010000000100000001000000BC -S31560009A4001000000010000000100000001000000AC -S31560009A50010000000100000001000000010000009C -S31560009A60010000000100000001000000010000008C -S31560009A70010000000100000001000000010000007C -S31560009A80010000000100000001000000010000006C -S31560009A90010000000100000001000000010000005C -S31560009AA0010000000100000001000000010000004C -S31560009AB0010000000100000001000000010000003C -S31560009AC0010000000100000001000000010000002C -S31560009AD0010000000100000001000000010000001C -S31560009AE0010000000100000001000000010000000C -S31560009AF001000000010000000100000001000000FC -S31560009B0001000000010000000100000001000000EB -S31560009B1001000000010000000100000001000000DB -S31560009B2001000000010000000100000001000000CB -S31560009B3001000000010000000100000001000000BB -S31560009B4001000000010000000100000001000000AB -S31560009B50010000000100000001000000010000009B -S31560009B60010000000100000001000000010000008B -S31560009B70010000000100000001000000010000007B -S31560009B80010000000100000001000000010000006B -S31560009B90010000000100000001000000010000005B -S31560009BA0010000000100000001000000010000004B -S31560009BB0010000000100000001000000010000003B -S31560009BC0010000000100000001000000010000002B -S31560009BD0010000000100000001000000010000001B -S31560009BE0010000000100000001000000010000000B -S31560009BF001000000010000000100000001000000FB -S31560009C0001000000010000000100000001000000EA -S31560009C1001000000010000000100000001000000DA -S31560009C2001000000010000000100000001000000CA -S31560009C3001000000010000000100000001000000BA -S31560009C4001000000010000000100000001000000AA -S31560009C50010000000100000001000000010000009A -S31560009C60010000000100000001000000010000008A -S31560009C70010000000100000001000000010000007A -S31560009C80010000000100000001000000010000006A -S31560009C90010000000100000001000000010000005A -S31560009CA0010000000100000001000000010000004A -S31560009CB0010000000100000001000000010000003A -S31560009CC0010000000100000001000000010000002A -S31560009CD0010000000100000001000000010000001A -S31560009CE0010000000100000001000000010000000A -S31560009CF001000000010000000100000001000000FA -S31560009D0001000000010000000100000001000000E9 -S31560009D1001000000010000000100000001000000D9 -S31560009D2001000000010000000100000001000000C9 -S31560009D3001000000010000000100000001000000B9 -S31560009D4001000000010000000100000001000000A9 -S31560009D500100000001000000010000000100000099 -S31560009D600100000001000000010000000100000089 -S31560009D700100000001000000010000000100000079 -S31560009D800100000001000000010000000100000069 -S31560009D900100000001000000010000000100000059 -S31560009DA00100000001000000010000000100000049 -S31560009DB00100000001000000010000000100000039 -S31560009DC00100000001000000010000000100000029 -S31560009DD00100000001000000010000000100000019 -S31560009DE00100000001000000010000000100000009 -S31560009DF001000000010000000100000001000000F9 -S31560009E0001000000010000000100000001000000E8 -S31560009E1001000000010000000100000001000000D8 -S31560009E2001000000010000000100000001000000C8 -S31560009E3001000000010000000100000001000000B8 -S31560009E4001000000010000000100000001000000A8 -S31560009E500100000001000000010000000100000098 -S31560009E600100000001000000010000000100000088 -S31560009E700100000001000000010000000100000078 -S31560009E800100000001000000010000000100000068 -S31560009E900100000001000000010000000100000058 -S31560009EA00100000001000000010000000100000048 -S31560009EB00100000001000000010000000100000038 -S31560009EC00100000001000000010000000100000028 -S31560009ED00100000001000000010000000100000018 -S31560009EE00100000001000000010000000100000008 -S31560009EF001000000010000000100000001000000F8 -S31560009F0001000000010000000100000001000000E7 -S31560009F1001000000010000000100000001000000D7 -S31560009F2001000000010000000100000001000000C7 -S31560009F3001000000010000000100000001000000B7 -S31560009F4001000000010000000100000001000000A7 -S31560009F500100000001000000010000000100000097 -S31560009F600100000001000000010000000100000087 -S31560009F700100000001000000010000000100000077 -S31560009F800100000001000000010000000100000067 -S31560009F900100000001000000010000000100000057 -S31560009FA00100000001000000010000000100000047 -S31560009FB00100000001000000010000000100000037 -S31560009FC00100000001000000010000000100000027 -S31560009FD00100000001000000010000000100000017 -S31560009FE00100000001000000010000000100000007 -S31560009FF001000000010000000100000001000000F7 -S3156000A00001000000010000000100000001000000E6 -S3156000A01001000000010000000100000001000000D6 -S3156000A02001000000010000000100000001000000C6 -S3156000A03001000000010000000100000001000000B6 -S3156000A04001000000010000000100000001000000A6 -S3156000A0500100000001000000010000000100000096 -S3156000A0600100000001000000010000000100000086 -S3156000A0700100000001000000010000000100000076 -S3156000A0800100000001000000010000000100000066 -S3156000A0900100000001000000010000000100000056 -S3156000A0A00100000001000000010000000100000046 -S3156000A0B00100000001000000010000000100000036 -S3156000A0C00100000001000000010000000100000026 -S3156000A0D00100000001000000010000000100000016 -S3156000A0E00100000001000000010000000100000006 -S3156000A0F001000000010000000100000001000000F6 -S3156000A10001000000010000000100000001000000E5 -S3156000A11001000000010000000100000001000000D5 -S3156000A12001000000010000000100000001000000C5 -S3156000A13001000000010000000100000001000000B5 -S3156000A14001000000010000000100000001000000A5 -S3156000A1500100000001000000010000000100000095 -S3156000A1600100000001000000010000000100000085 -S3156000A1700100000001000000010000000100000075 -S3156000A1800100000001000000010000000100000065 -S3156000A1900100000001000000010000000100000055 -S3156000A1A00100000001000000010000000100000045 -S3156000A1B00100000001000000010000000100000035 -S3156000A1C00100000001000000010000000100000025 -S3156000A1D00100000001000000010000000100000015 -S3156000A1E00100000001000000010000000100000005 -S3156000A1F001000000010000000100000001000000F5 -S3156000A20001000000010000000100000001000000E4 -S3156000A21001000000010000000100000001000000D4 -S3156000A22001000000010000000100000001000000C4 -S3156000A23001000000010000000100000001000000B4 -S3156000A24001000000010000000100000001000000A4 -S3156000A2500100000001000000010000000100000094 -S3156000A2600100000001000000010000000100000084 -S3156000A2700100000001000000010000000100000074 -S3156000A2800100000001000000010000000100000064 -S3156000A2900100000001000000010000000100000054 -S3156000A2A00100000001000000010000000100000044 -S3156000A2B00100000001000000010000000100000034 -S3156000A2C00100000001000000010000000100000024 -S3156000A2D00100000001000000010000000100000014 -S3156000A2E00100000001000000010000000100000004 -S3156000A2F001000000010000000100000001000000F4 -S3156000A30001000000010000000100000001000000E3 -S3156000A31001000000010000000100000001000000D3 -S3156000A32001000000010000000100000001000000C3 -S3156000A33001000000010000000100000001000000B3 -S3156000A34001000000010000000100000001000000A3 -S3156000A3500100000001000000010000000100000093 -S3156000A3600100000001000000010000000100000083 -S3156000A3700100000001000000010000000100000073 -S3156000A3800100000001000000010000000100000063 -S3156000A3900100000001000000010000000100000053 -S3156000A3A00100000001000000010000000100000043 -S3156000A3B00100000001000000010000000100000033 -S3156000A3C00100000001000000010000000100000023 -S3156000A3D00100000001000000010000000100000013 -S3156000A3E00100000001000000010000000100000003 -S3156000A3F001000000010000000100000001000000F3 -S3156000A40001000000010000000100000001000000E2 -S3156000A41001000000010000000100000001000000D2 -S3156000A42001000000010000000100000001000000C2 -S3156000A43001000000010000000100000001000000B2 -S3156000A44001000000010000000100000001000000A2 -S3156000A4500100000001000000010000000100000092 -S3156000A4600100000001000000010000000100000082 -S3156000A4700100000001000000010000000100000072 -S3156000A4800100000001000000010000000100000062 -S3156000A4900100000001000000010000000100000052 -S3156000A4A00100000001000000010000000100000042 -S3156000A4B00100000001000000010000000100000032 -S3156000A4C00100000001000000010000000100000022 -S3156000A4D00100000001000000010000000100000012 -S3156000A4E00100000001000000010000000100000002 -S3156000A4F001000000010000000100000001000000F2 -S3156000A50001000000010000000100000001000000E1 -S3156000A51001000000010000000100000001000000D1 -S3156000A52001000000010000000100000001000000C1 -S3156000A53001000000010000000100000001000000B1 -S3156000A54001000000010000000100000001000000A1 -S3156000A5500100000001000000010000000100000091 -S3156000A5600100000001000000010000000100000081 -S3156000A5700100000001000000010000000100000071 -S3156000A5800100000001000000010000000100000061 -S3156000A5900100000001000000010000000100000051 -S3156000A5A00100000001000000010000000100000041 -S3156000A5B00100000001000000010000000100000031 -S3156000A5C00100000001000000010000000100000021 -S3156000A5D00100000001000000010000000100000011 -S3156000A5E00100000001000000010000000100000001 -S3156000A5F001000000010000000100000001000000F1 -S3156000A60001000000010000000100000001000000E0 -S3156000A61001000000010000000100000001000000D0 -S3156000A62001000000010000000100000001000000C0 -S3156000A63001000000010000000100000001000000B0 -S3156000A64001000000010000000100000001000000A0 -S3156000A6500100000001000000010000000100000090 -S3156000A6600100000001000000010000000100000080 -S3156000A6700100000001000000010000000100000070 -S3156000A6800100000001000000010000000100000060 -S3156000A6900100000001000000010000000100000050 -S3156000A6A00100000001000000010000000100000040 -S3156000A6B00100000001000000010000000100000030 -S3156000A6C00100000001000000010000000100000020 -S3156000A6D00100000001000000010000000100000010 -S3156000A6E00100000001000000010000000100000000 -S3156000A6F001000000010000000100000001000000F0 -S3156000A70001000000010000000100000001000000DF -S3156000A71001000000010000000100000001000000CF -S3156000A72001000000010000000100000001000000BF -S3156000A73001000000010000000100000001000000AF -S3156000A740010000000100000001000000010000009F -S3156000A750010000000100000001000000010000008F -S3156000A760010000000100000001000000010000007F -S3156000A770010000000100000001000000010000006F -S3156000A780010000000100000001000000010000005F -S3156000A790010000000100000001000000010000004F -S3156000A7A0010000000100000001000000010000003F -S3156000A7B0010000000100000001000000010000002F -S3156000A7C0010000000100000001000000010000001F -S3156000A7D0010000000100000001000000010000000F -S3156000A7E001000000010000000100000001000000FF -S3156000A7F001000000010000000100000001000000EF -S3156000A80001000000010000000100000001000000DE -S3156000A81001000000010000000100000001000000CE -S3156000A82001000000010000000100000001000000BE -S3156000A83001000000010000000100000001000000AE -S3156000A840010000000100000001000000010000009E -S3156000A850010000000100000001000000010000008E -S3156000A860010000000100000001000000010000007E -S3156000A870010000000100000001000000010000006E -S3156000A880010000000100000001000000010000005E -S3156000A890010000000100000001000000010000004E -S3156000A8A0010000000100000001000000010000003E -S3156000A8B0010000000100000001000000010000002E -S3156000A8C0010000000100000001000000010000001E -S3156000A8D0010000000100000001000000010000000E -S3156000A8E001000000010000000100000001000000FE -S3156000A8F001000000010000000100000001000000EE -S3156000A90001000000010000000100000001000000DD -S3156000A91001000000010000000100000001000000CD -S3156000A92001000000010000000100000001000000BD -S3156000A93001000000010000000100000001000000AD -S3156000A940010000000100000001000000010000009D -S3156000A950010000000100000001000000010000008D -S3156000A960010000000100000001000000010000007D -S3156000A970010000000100000001000000010000006D -S3156000A980010000000100000001000000010000005D -S3156000A990010000000100000001000000010000004D -S3156000A9A0010000000100000001000000010000003D -S3156000A9B0010000000100000001000000010000002D -S3156000A9C0010000000100000001000000010000001D -S3156000A9D0010000000100000001000000010000000D -S3156000A9E001000000010000000100000001000000FD -S3156000A9F001000000010000000100000001000000ED -S3156000AA0001000000010000000100000001000000DC -S3156000AA1001000000010000000100000001000000CC -S3156000AA2001000000010000000100000001000000BC -S3156000AA3001000000010000000100000001000000AC -S3156000AA40010000000100000001000000010000009C -S3156000AA50010000000100000001000000010000008C -S3156000AA60010000000100000001000000010000007C -S3156000AA70010000000100000001000000010000006C -S3156000AA80010000000100000001000000010000005C -S3156000AA90010000000100000001000000010000004C -S3156000AAA0010000000100000001000000010000003C -S3156000AAB0010000000100000001000000010000002C -S3156000AAC0010000000100000001000000010000001C -S3156000AAD0010000000100000001000000010000000C -S3156000AAE001000000010000000100000001000000FC -S3156000AAF001000000010000000100000001000000EC -S3156000AB0001000000010000000100000001000000DB -S3156000AB1001000000010000000100000001000000CB -S3156000AB2001000000010000000100000001000000BB -S3156000AB3001000000010000000100000001000000AB -S3156000AB40010000000100000001000000010000009B -S3156000AB50010000000100000001000000010000008B -S3156000AB60010000000100000001000000010000007B -S3156000AB70010000000100000001000000010000006B -S3156000AB80010000000100000001000000010000005B -S3156000AB90010000000100000001000000010000004B -S3156000ABA0010000000100000001000000010000003B -S3156000ABB0010000000100000001000000010000002B -S3156000ABC0010000000100000001000000010000001B -S3156000ABD0010000000100000001000000010000000B -S3156000ABE001000000010000000100000001000000FB -S3156000ABF001000000010000000100000001000000EB -S3156000AC0001000000010000000100000001000000DA -S3156000AC1001000000010000000100000001000000CA -S3156000AC2001000000010000000100000001000000BA -S3156000AC3001000000010000000100000001000000AA -S3156000AC40010000000100000001000000010000009A -S3156000AC50010000000100000001000000010000008A -S3156000AC60010000000100000001000000010000007A -S3156000AC70010000000100000001000000010000006A -S3156000AC80010000000100000001000000010000005A -S3156000AC90010000000100000001000000010000004A -S3156000ACA0010000000100000001000000010000003A -S3156000ACB0010000000100000001000000010000002A -S3156000ACC0010000000100000001000000010000001A -S3156000ACD0010000000100000001000000010000000A -S3156000ACE001000000010000000100000001000000FA -S3156000ACF001000000010000000100000001000000EA -S3156000AD0001000000010000000100000001000000D9 -S3156000AD1001000000010000000100000001000000C9 -S3156000AD2001000000010000000100000001000000B9 -S3156000AD3001000000010000000100000001000000A9 -S3156000AD400100000001000000010000000100000099 -S3156000AD500100000001000000010000000100000089 -S3156000AD600100000001000000010000000100000079 -S3156000AD700100000001000000010000000100000069 -S3156000AD800100000001000000010000000100000059 -S3156000AD900100000001000000010000000100000049 -S3156000ADA00100000001000000010000000100000039 -S3156000ADB00100000001000000010000000100000029 -S3156000ADC00100000001000000010000000100000019 -S3156000ADD00100000001000000010000000100000009 -S3156000ADE001000000010000000100000001000000F9 -S3156000ADF001000000010000000100000001000000E9 -S3156000AE0001000000010000000100000001000000D8 -S3156000AE1001000000010000000100000001000000C8 -S3156000AE2001000000010000000100000001000000B8 -S3156000AE3001000000010000000100000001000000A8 -S3156000AE400100000001000000010000000100000098 -S3156000AE500100000001000000010000000100000088 -S3156000AE600100000001000000010000000100000078 -S3156000AE700100000001000000010000000100000068 -S3156000AE800100000001000000010000000100000058 -S3156000AE900100000001000000010000000100000048 -S3156000AEA00100000001000000010000000100000038 -S3156000AEB00100000001000000010000000100000028 -S3156000AEC00100000001000000010000000100000018 -S3156000AED00100000001000000010000000100000008 -S3156000AEE001000000010000000100000001000000F8 -S3156000AEF001000000010000000100000001000000E8 -S3156000AF0001000000010000000100000001000000D7 -S3156000AF1001000000010000000100000001000000C7 -S3156000AF2001000000010000000100000001000000B7 -S3156000AF3001000000010000000100000001000000A7 -S3156000AF400100000001000000010000000100000097 -S3156000AF500100000001000000010000000100000087 -S3156000AF600100000001000000010000000100000077 -S3156000AF700100000001000000010000000100000067 -S3156000AF800100000001000000010000000100000057 -S3156000AF900100000001000000010000000100000047 -S3156000AFA00100000001000000010000000100000037 -S3156000AFB00100000001000000010000000100000027 -S3156000AFC00100000001000000010000000100000017 -S3156000AFD00100000001000000010000000100000007 -S3156000AFE001000000010000000100000001000000F7 -S3156000AFF001000000010000000100000001000000E7 -S3156000B00001000000010000000100000001000000D6 -S3156000B01001000000010000000100000001000000C6 -S3156000B02001000000010000000100000001000000B6 -S3156000B03001000000010000000100000001000000A6 -S3156000B0400100000001000000010000000100000096 -S3156000B0500100000001000000010000000100000086 -S3156000B0600100000001000000010000000100000076 -S3156000B0700100000001000000010000000100000066 -S3156000B0800100000001000000010000000100000056 -S3156000B0900100000001000000010000000100000046 -S3156000B0A00100000001000000010000000100000036 -S3156000B0B00100000001000000010000000100000026 -S3156000B0C00100000001000000010000000100000016 -S3156000B0D00100000001000000010000000100000006 -S3156000B0E001000000010000000100000001000000F6 -S3156000B0F001000000010000000100000001000000E6 -S3156000B10001000000010000000100000001000000D5 -S3156000B11001000000010000000100000001000000C5 -S3156000B12001000000010000000100000001000000B5 -S3156000B13001000000010000000100000001000000A5 -S3156000B1400100000001000000010000000100000095 -S3156000B1500100000001000000010000000100000085 -S3156000B1600100000001000000010000000100000075 -S3156000B1700100000001000000010000000100000065 -S3156000B1800100000001000000010000000100000055 -S3156000B1900100000001000000010000000100000045 -S3156000B1A00100000001000000010000000100000035 -S3156000B1B00100000001000000010000000100000025 -S3156000B1C00100000001000000010000000100000015 -S3156000B1D00100000001000000010000000100000005 -S3156000B1E001000000010000000100000001000000F5 -S3156000B1F001000000010000000100000001000000E5 -S3156000B20001000000010000000100000001000000D4 -S3156000B21001000000010000000100000001000000C4 -S3156000B22001000000010000000100000001000000B4 -S3156000B23001000000010000000100000001000000A4 -S3156000B2400100000001000000010000000100000094 -S3156000B2500100000001000000010000000100000084 -S3156000B2600100000001000000010000000100000074 -S3156000B2700100000001000000010000000100000064 -S3156000B2800100000001000000010000000100000054 -S3156000B2900100000001000000010000000100000044 -S3156000B2A00100000001000000010000000100000034 -S3156000B2B00100000001000000010000000100000024 -S3156000B2C00100000001000000010000000100000014 -S3156000B2D00100000001000000010000000100000004 -S3156000B2E001000000010000000100000001000000F4 -S3156000B2F001000000010000000100000001000000E4 -S3156000B30001000000010000000100000001000000D3 -S3156000B31001000000010000000100000001000000C3 -S3156000B32001000000010000000100000001000000B3 -S3156000B33001000000010000000100000001000000A3 -S3156000B3400100000001000000010000000100000093 -S3156000B3500100000001000000010000000100000083 -S3156000B3600100000001000000010000000100000073 -S3156000B3700100000001000000010000000100000063 -S3156000B3800100000001000000010000000100000053 -S3156000B3900100000001000000010000000100000043 -S3156000B3A00100000001000000010000000100000033 -S3156000B3B00100000001000000010000000100000023 -S3156000B3C00100000001000000010000000100000013 -S3156000B3D00100000001000000010000000100000003 -S3156000B3E001000000010000000100000001000000F3 -S3156000B3F001000000010000000100000001000000E3 -S3156000B40001000000010000000100000001000000D2 -S3156000B41001000000010000000100000001000000C2 -S3156000B42001000000010000000100000001000000B2 -S3156000B43001000000010000000100000001000000A2 -S3156000B4400100000001000000010000000100000092 -S3156000B4500100000001000000010000000100000082 -S3156000B4600100000001000000010000000100000072 -S3156000B4700100000001000000010000000100000062 -S3156000B4800100000001000000010000000100000052 -S3156000B4900100000001000000010000000100000042 -S3156000B4A00100000001000000010000000100000032 -S3156000B4B00100000001000000010000000100000022 -S3156000B4C00100000001000000010000000100000012 -S3156000B4D00100000001000000010000000100000002 -S3156000B4E001000000010000000100000001000000F2 -S3156000B4F001000000010000000100000001000000E2 -S3156000B50001000000010000000100000001000000D1 -S3156000B51001000000010000000100000001000000C1 -S3156000B52001000000010000000100000001000000B1 -S3156000B53001000000010000000100000001000000A1 -S3156000B5400100000001000000010000000100000091 -S3156000B5500100000001000000010000000100000081 -S3156000B5600100000001000000010000000100000071 -S3156000B5700100000001000000010000000100000061 -S3156000B5800100000001000000010000000100000051 -S3156000B5900100000001000000010000000100000041 -S3156000B5A00100000001000000010000000100000031 -S3156000B5B00100000001000000010000000100000021 -S3156000B5C00100000001000000010000000100000011 -S3156000B5D00100000001000000010000000100000001 -S3156000B5E001000000010000000100000001000000F1 -S3156000B5F001000000010000000100000001000000E1 -S3156000B60001000000010000000100000001000000D0 -S3156000B61001000000010000000100000001000000C0 -S3156000B62001000000010000000100000001000000B0 -S3156000B63001000000010000000100000001000000A0 -S3156000B6400100000001000000010000000100000090 -S3156000B6500100000001000000010000000100000080 -S3156000B6600100000001000000010000000100000070 -S3156000B6700100000001000000010000000100000060 -S3156000B6800100000001000000010000000100000050 -S3156000B6900100000001000000010000000100000040 -S3156000B6A00100000001000000010000000100000030 -S3156000B6B00100000001000000010000000100000020 -S3156000B6C00100000001000000010000000100000010 -S3156000B6D00100000001000000010000000100000000 -S3156000B6E001000000010000000100000001000000F0 -S3156000B6F001000000010000000100000001000000E0 -S3156000B70001000000010000000100000001000000CF -S3156000B71001000000010000000100000001000000BF -S3156000B72001000000010000000100000001000000AF -S3156000B730010000000100000001000000010000009F -S3156000B740010000000100000001000000010000008F -S3156000B750010000000100000001000000010000007F -S3156000B760010000000100000001000000010000006F -S3156000B770010000000100000001000000010000005F -S3156000B780010000000100000001000000010000004F -S3156000B790010000000100000001000000010000003F -S3156000B7A0010000000100000001000000010000002F -S3156000B7B0010000000100000001000000010000001F -S3156000B7C0010000000100000001000000010000000F -S3156000B7D001000000010000000100000001000000FF -S3156000B7E001000000010000000100000001000000EF -S3156000B7F001000000010000000100000001000000DF -S3156000B80001000000010000000100000001000000CE -S3156000B81001000000010000000100000001000000BE -S3156000B82001000000010000000100000001000000AE -S3156000B830010000000100000001000000010000009E -S3156000B840010000000100000001000000010000008E -S3156000B850010000000100000001000000010000007E -S3156000B860010000000100000001000000010000006E -S3156000B870010000000100000001000000010000005E -S3156000B880010000000100000001000000010000004E -S3156000B890010000000100000001000000010000003E -S3156000B8A0010000000100000001000000010000002E -S3156000B8B0010000000100000001000000010000001E -S3156000B8C0010000000100000001000000010000000E -S3156000B8D001000000010000000100000001000000FE -S3156000B8E001000000010000000100000001000000EE -S3156000B8F001000000010000000100000001000000DE -S3156000B90001000000010000000100000001000000CD -S3156000B91001000000010000000100000001000000BD -S3156000B92001000000010000000100000001000000AD -S3156000B930010000000100000001000000010000009D -S3156000B940010000000100000001000000010000008D -S3156000B950010000000100000001000000010000007D -S3156000B960010000000100000001000000010000006D -S3156000B970010000000100000001000000010000005D -S3156000B980010000000100000001000000010000004D -S3156000B990010000000100000001000000010000003D -S3156000B9A0010000000100000001000000010000002D -S3156000B9B0010000000100000001000000010000001D -S3156000B9C0010000000100000001000000010000000D -S3156000B9D001000000010000000100000001000000FD -S3156000B9E001000000010000000100000001000000ED -S3156000B9F001000000010000000100000001000000DD -S3156000BA0001000000010000000100000001000000CC -S3156000BA1001000000010000000100000001000000BC -S3156000BA2001000000010000000100000001000000AC -S3156000BA30010000000100000001000000010000009C -S3156000BA40010000000100000001000000010000008C -S3156000BA50010000000100000001000000010000007C -S3156000BA60010000000100000001000000010000006C -S3156000BA70010000000100000001000000010000005C -S3156000BA80010000000100000001000000010000004C -S3156000BA90010000000100000001000000010000003C -S3156000BAA0010000000100000001000000010000002C -S3156000BAB0010000000100000001000000010000001C -S3156000BAC0010000000100000001000000010000000C -S3156000BAD001000000010000000100000001000000FC -S3156000BAE001000000010000000100000001000000EC -S3156000BAF001000000010000000100000001000000DC -S3156000BB0001000000010000000100000001000000CB -S3156000BB1001000000010000000100000001000000BB -S3156000BB2001000000010000000100000001000000AB -S3156000BB30010000000100000001000000010000009B -S3156000BB40010000000100000001000000010000008B -S3156000BB50010000000100000001000000010000007B -S3156000BB60010000000100000001000000010000006B -S3156000BB70010000000100000001000000010000005B -S3156000BB80010000000100000001000000010000004B -S3156000BB90010000000100000001000000010000003B -S3156000BBA0010000000100000001000000010000002B -S3156000BBB0010000000100000001000000010000001B -S3156000BBC0010000000100000001000000010000000B -S3156000BBD001000000010000000100000001000000FB -S3156000BBE001000000010000000100000001000000EB -S3156000BBF001000000010000000100000001000000DB -S3156000BC0001000000010000000100000001000000CA -S3156000BC1001000000010000000100000001000000BA -S3156000BC2001000000010000000100000001000000AA -S3156000BC30010000000100000001000000010000009A -S3156000BC40010000000100000001000000010000008A -S3156000BC50010000000100000001000000010000007A -S3156000BC60010000000100000001000000010000006A -S3156000BC70010000000100000001000000010000005A -S3156000BC80010000000100000001000000010000004A -S3156000BC90010000000100000001000000010000003A -S3156000BCA0010000000100000001000000010000002A -S3156000BCB0010000000100000001000000010000001A -S3156000BCC0010000000100000001000000010000000A -S3156000BCD001000000010000000100000001000000FA -S3156000BCE001000000010000000100000001000000EA -S3156000BCF001000000010000000100000001000000DA -S3156000BD0001000000010000000100000001000000C9 -S3156000BD1001000000010000000100000001000000B9 -S3156000BD2001000000010000000100000001000000A9 -S3156000BD300100000001000000010000000100000099 -S3156000BD400100000001000000010000000100000089 -S3156000BD500100000001000000010000000100000079 -S3156000BD600100000001000000010000000100000069 -S3156000BD700100000001000000010000000100000059 -S3156000BD800100000001000000010000000100000049 -S3156000BD900100000001000000010000000100000039 -S3156000BDA00100000001000000010000000100000029 -S3156000BDB00100000001000000010000000100000019 -S3156000BDC00100000001000000010000000100000009 -S3156000BDD001000000010000000100000001000000F9 -S3156000BDE001000000010000000100000001000000E9 -S3156000BDF001000000010000000100000001000000D9 -S3156000BE0001000000010000000100000001000000C8 -S3156000BE1001000000010000000100000001000000B8 -S3156000BE2001000000010000000100000001000000A8 -S3156000BE300100000001000000010000000100000098 -S3156000BE400100000001000000010000000100000088 -S3156000BE500100000001000000010000000100000078 -S3156000BE600100000001000000010000000100000068 -S3156000BE700100000001000000010000000100000058 -S3156000BE800100000001000000010000000100000048 -S3156000BE900100000001000000010000000100000038 -S3156000BEA00100000001000000010000000100000028 -S3156000BEB00100000001000000010000000100000018 -S3156000BEC00100000001000000010000000100000008 -S3156000BED001000000010000000100000001000000F8 -S3156000BEE001000000010000000100000001000000E8 -S3156000BEF001000000010000000100000001000000D8 -S3156000BF0001000000010000000100000001000000C7 -S3156000BF1001000000010000000100000001000000B7 -S3156000BF2001000000010000000100000001000000A7 -S3156000BF300100000001000000010000000100000097 -S3156000BF400100000001000000010000000100000087 -S3156000BF500100000001000000010000000100000077 -S3156000BF600100000001000000010000000100000067 -S3156000BF700100000001000000010000000100000057 -S3156000BF800100000001000000010000000100000047 -S3156000BF900100000001000000010000000100000037 -S3156000BFA00100000001000000010000000100000027 -S3156000BFB00100000001000000010000000100000017 -S3156000BFC00100000001000000010000000100000007 -S3156000BFD001000000010000000100000001000000F7 -S3156000BFE001000000010000000100000001000000E7 -S3156000BFF001000000010000000100000001000000D7 -S3156000C00001000000010000000100000001000000C6 -S3156000C01001000000010000000100000001000000B6 -S3156000C02001000000010000000100000001000000A6 -S3156000C0300100000001000000010000000100000096 -S3156000C0400100000001000000010000000100000086 -S3156000C0500100000001000000010000000100000076 -S3156000C0600100000001000000010000000100000066 -S3156000C0700100000001000000010000000100000056 -S3156000C0800100000001000000010000000100000046 -S3156000C0900100000001000000010000000100000036 -S3156000C0A00100000001000000010000000100000026 -S3156000C0B00100000001000000010000000100000016 -S3156000C0C00100000001000000010000000100000006 -S3156000C0D001000000010000000100000001000000F6 -S3156000C0E001000000010000000100000001000000E6 -S3156000C0F001000000010000000100000001000000D6 -S3156000C10001000000010000000100000001000000C5 -S3156000C11001000000010000000100000001000000B5 -S3156000C12001000000010000000100000001000000A5 -S3156000C1300100000001000000010000000100000095 -S3156000C1400100000001000000010000000100000085 -S3156000C1500100000001000000010000000100000075 -S3156000C1600100000001000000010000000100000065 -S3156000C1700100000001000000010000000100000055 -S3156000C1800100000001000000010000000100000045 -S3156000C1900100000001000000010000000100000035 -S3156000C1A00100000001000000010000000100000025 -S3156000C1B00100000001000000010000000100000015 -S3156000C1C00100000001000000010000000100000005 -S3156000C1D001000000010000000100000001000000F5 -S3156000C1E001000000010000000100000001000000E5 -S3156000C1F001000000010000000100000001000000D5 -S3156000C20001000000010000000100000001000000C4 -S3156000C21001000000010000000100000001000000B4 -S3156000C22001000000010000000100000001000000A4 -S3156000C2300100000001000000010000000100000094 -S3156000C2400100000001000000010000000100000084 -S3156000C2500100000001000000010000000100000074 -S3156000C2600100000001000000010000000100000064 -S3156000C2700100000001000000010000000100000054 -S3156000C2800100000001000000010000000100000044 -S3156000C2900100000001000000010000000100000034 -S3156000C2A00100000001000000010000000100000024 -S3156000C2B00100000001000000010000000100000014 -S3156000C2C00100000001000000010000000100000004 -S3156000C2D001000000010000000100000001000000F4 -S3156000C2E001000000010000000100000001000000E4 -S3156000C2F001000000010000000100000001000000D4 -S3156000C30001000000010000000100000001000000C3 -S3156000C31001000000010000000100000001000000B3 -S3156000C32001000000010000000100000001000000A3 -S3156000C3300100000001000000010000000100000093 -S3156000C3400100000001000000010000000100000083 -S3156000C3500100000001000000010000000100000073 -S3156000C3600100000001000000010000000100000063 -S3156000C3700100000001000000010000000100000053 -S3156000C3800100000001000000010000000100000043 -S3156000C3900100000001000000010000000100000033 -S3156000C3A00100000001000000010000000100000023 -S3156000C3B00100000001000000010000000100000013 -S3156000C3C00100000001000000010000000100000003 -S3156000C3D001000000010000000100000001000000F3 -S3156000C3E001000000010000000100000001000000E3 -S3156000C3F001000000010000000100000001000000D3 -S3156000C40001000000010000000100000001000000C2 -S3156000C41001000000010000000100000001000000B2 -S3156000C42001000000010000000100000001000000A2 -S3156000C4300100000001000000010000000100000092 -S3156000C4400100000001000000010000000100000082 -S3156000C4500100000001000000010000000100000072 -S3156000C4600100000001000000010000000100000062 -S3156000C4700100000001000000010000000100000052 -S3156000C4800100000001000000010000000100000042 -S3156000C4900100000001000000010000000100000032 -S3156000C4A00100000001000000010000000100000022 -S3156000C4B00100000001000000010000000100000012 -S3156000C4C00100000001000000010000000100000002 -S3156000C4D001000000010000000100000001000000F2 -S3156000C4E001000000010000000100000001000000E2 -S3156000C4F001000000010000000100000001000000D2 -S3156000C50001000000010000000100000001000000C1 -S3156000C51001000000010000000100000001000000B1 -S3156000C52001000000010000000100000001000000A1 -S3156000C5300100000001000000010000000100000091 -S3156000C5400100000001000000010000000100000081 -S3156000C5500100000001000000010000000100000071 -S3156000C5600100000001000000010000000100000061 -S3156000C5700100000001000000010000000100000051 -S3156000C5800100000001000000010000000100000041 -S3156000C5900100000001000000010000000100000031 -S3156000C5A00100000001000000010000000100000021 -S3156000C5B00100000001000000010000000100000011 -S3156000C5C00100000001000000010000000100000001 -S3156000C5D001000000010000000100000001000000F1 -S3156000C5E001000000010000000100000001000000E1 -S3156000C5F001000000010000000100000001000000D1 -S3156000C60001000000010000000100000001000000C0 -S3156000C61001000000010000000100000001000000B0 -S3156000C62001000000010000000100000001000000A0 -S3156000C6300100000001000000010000000100000090 -S3156000C6400100000001000000010000000100000080 -S3156000C6500100000001000000010000000100000070 -S3156000C6600100000001000000010000000100000060 -S3156000C6700100000001000000010000000100000050 -S3156000C6800100000001000000010000000100000040 -S3156000C6900100000001000000010000000100000030 -S3156000C6A00100000001000000010000000100000020 -S3156000C6B00100000001000000010000000100000010 -S3156000C6C00100000001000000010000000100000000 -S3156000C6D001000000010000000100000001000000F0 -S3156000C6E001000000010000000100000001000000E0 -S3156000C6F001000000010000000100000001000000D0 -S3156000C70001000000010000000100000001000000BF -S3156000C71001000000010000000100000001000000AF -S3156000C720010000000100000001000000010000009F -S3156000C730010000000100000001000000010000008F -S3156000C740010000000100000001000000010000007F -S3156000C750010000000100000001000000010000006F -S3156000C760010000000100000001000000010000005F -S3156000C770010000000100000001000000010000004F -S3156000C780010000000100000001000000010000003F -S3156000C790010000000100000001000000010000002F -S3156000C7A0010000000100000001000000010000001F -S3156000C7B0010000000100000001000000010000000F -S3156000C7C001000000010000000100000001000000FF -S3156000C7D001000000010000000100000001000000EF -S3156000C7E001000000010000000100000001000000DF -S3156000C7F001000000010000000100000001000000CF -S3156000C80001000000010000000100000001000000BE -S3156000C81001000000010000000100000001000000AE -S3156000C820010000000100000001000000010000009E -S3156000C830010000000100000001000000010000008E -S3156000C840010000000100000001000000010000007E -S3156000C850010000000100000001000000010000006E -S3156000C860010000000100000001000000010000005E -S3156000C870010000000100000001000000010000004E -S3156000C880010000000100000001000000010000003E -S3156000C890010000000100000001000000010000002E -S3156000C8A0010000000100000001000000010000001E -S3156000C8B0010000000100000001000000010000000E -S3156000C8C001000000010000000100000001000000FE -S3156000C8D001000000010000000100000001000000EE -S3156000C8E001000000010000000100000001000000DE -S3156000C8F001000000010000000100000001000000CE -S3156000C90001000000010000000100000001000000BD -S3156000C91001000000010000000100000001000000AD -S3156000C920010000000100000001000000010000009D -S3156000C930010000000100000001000000010000008D -S3156000C940010000000100000001000000010000007D -S3156000C950010000000100000001000000010000006D -S3156000C960010000000100000001000000010000005D -S3156000C970010000000100000001000000010000004D -S3156000C980010000000100000001000000010000003D -S3156000C990010000000100000001000000010000002D -S3156000C9A0010000000100000001000000010000001D -S3156000C9B0010000000100000001000000010000000D -S3156000C9C001000000010000000100000001000000FD -S3156000C9D001000000010000000100000001000000ED -S3156000C9E001000000010000000100000001000000DD -S3156000C9F001000000010000000100000001000000CD -S3156000CA0001000000010000000100000001000000BC -S3156000CA1001000000010000000100000001000000AC -S3156000CA20010000000100000001000000010000009C -S3156000CA30010000000100000001000000010000008C -S3156000CA40010000000100000001000000010000007C -S3156000CA50010000000100000001000000010000006C -S3156000CA60010000000100000001000000010000005C -S3156000CA70010000000100000001000000010000004C -S3156000CA80010000000100000001000000010000003C -S3156000CA90010000000100000001000000010000002C -S3156000CAA0010000000100000001000000010000001C -S3156000CAB0010000000100000001000000010000000C -S3156000CAC001000000010000000100000001000000FC -S3156000CAD001000000010000000100000001000000EC -S3156000CAE001000000010000000100000001000000DC -S3156000CAF001000000010000000100000001000000CC -S3156000CB0001000000010000000100000001000000BB -S3156000CB1001000000010000000100000001000000AB -S3156000CB20010000000100000001000000010000009B -S3156000CB30010000000100000001000000010000008B -S3156000CB40010000000100000001000000010000007B -S3156000CB50010000000100000001000000010000006B -S3156000CB60010000000100000001000000010000005B -S3156000CB70010000000100000001000000010000004B -S3156000CB80010000000100000001000000010000003B -S3156000CB90010000000100000001000000010000002B -S3156000CBA0010000000100000001000000010000001B -S3156000CBB0010000000100000001000000010000000B -S3156000CBC001000000010000000100000001000000FB -S3156000CBD001000000010000000100000001000000EB -S3156000CBE001000000010000000100000001000000DB -S3156000CBF001000000010000000100000001000000CB -S3156000CC0001000000010000000100000001000000BA -S3156000CC1001000000010000000100000001000000AA -S3156000CC20010000000100000001000000010000009A -S3156000CC30010000000100000001000000010000008A -S3156000CC40010000000100000001000000010000007A -S3156000CC50010000000100000001000000010000006A -S3156000CC60010000000100000001000000010000005A -S3156000CC70010000000100000001000000010000004A -S3156000CC80010000000100000001000000010000003A -S3156000CC90010000000100000001000000010000002A -S3156000CCA0010000000100000001000000010000001A -S3156000CCB0010000000100000001000000010000000A -S3156000CCC001000000010000000100000001000000FA -S3156000CCD001000000010000000100000001000000EA -S3156000CCE001000000010000000100000001000000DA -S3156000CCF001000000010000000100000001000000CA -S3156000CD0001000000010000000100000001000000B9 -S3156000CD1001000000010000000100000001000000A9 -S3156000CD200100000001000000010000000100000099 -S3156000CD300100000001000000010000000100000089 -S3156000CD400100000001000000010000000100000079 -S3156000CD500100000001000000010000000100000069 -S3156000CD600100000001000000010000000100000059 -S3156000CD700100000001000000010000000100000049 -S3156000CD800100000001000000010000000100000039 -S3156000CD900100000001000000010000000100000029 -S3156000CDA00100000001000000010000000100000019 -S3156000CDB00100000001000000010000000100000009 -S3156000CDC001000000010000000100000001000000F9 -S3156000CDD001000000010000000100000001000000E9 -S3156000CDE001000000010000000100000001000000D9 -S3156000CDF001000000010000000100000001000000C9 -S3156000CE0001000000010000000100000001000000B8 -S3156000CE1001000000010000000100000001000000A8 -S3156000CE200100000001000000010000000100000098 -S3156000CE300100000001000000010000000100000088 -S3156000CE400100000001000000010000000100000078 -S3156000CE500100000001000000010000000100000068 -S3156000CE600100000001000000010000000100000058 -S3156000CE700100000001000000010000000100000048 -S3156000CE800100000001000000010000000100000038 -S3156000CE900100000001000000010000000100000028 -S3156000CEA00100000001000000010000000100000018 -S3156000CEB00100000001000000010000000100000008 -S3156000CEC001000000010000000100000001000000F8 -S3156000CED001000000010000000100000001000000E8 -S3156000CEE001000000010000000100000001000000D8 -S3156000CEF001000000010000000100000001000000C8 -S3156000CF0001000000010000000100000001000000B7 -S3156000CF1001000000010000000100000001000000A7 -S3156000CF200100000001000000010000000100000097 -S3156000CF300100000001000000010000000100000087 -S3156000CF400100000001000000010000000100000077 -S3156000CF500100000001000000010000000100000067 -S3156000CF600100000001000000010000000100000057 -S3156000CF700100000001000000010000000100000047 -S3156000CF800100000001000000010000000100000037 -S3156000CF900100000001000000010000000100000027 -S3156000CFA00100000001000000010000000100000017 -S3156000CFB00100000001000000010000000100000007 -S3156000CFC001000000010000000100000001000000F7 -S3156000CFD001000000010000000100000001000000E7 -S3156000CFE001000000010000000100000001000000D7 -S3156000CFF001000000010000000100000001000000C7 -S3156000D00001000000010000000100000001000000B6 -S3156000D01001000000010000000100000001000000A6 -S3156000D0200100000001000000010000000100000096 -S3156000D0300100000001000000010000000100000086 -S3156000D0400100000001000000010000000100000076 -S3156000D0500100000001000000010000000100000066 -S3156000D0600100000001000000010000000100000056 -S3156000D0700100000001000000010000000100000046 -S3156000D0800100000001000000010000000100000036 -S3156000D0900100000001000000010000000100000026 -S3156000D0A00100000001000000010000000100000016 -S3156000D0B00100000001000000010000000100000006 -S3156000D0C001000000010000000100000001000000F6 -S3156000D0D001000000010000000100000001000000E6 -S3156000D0E001000000010000000100000001000000D6 -S3156000D0F001000000010000000100000001000000C6 -S3156000D10001000000010000000100000001000000B5 -S3156000D11001000000010000000100000001000000A5 -S3156000D1200100000001000000010000000100000095 -S3156000D1300100000001000000010000000100000085 -S3156000D1400100000001000000010000000100000075 -S3156000D1500100000001000000010000000100000065 -S3156000D1600100000001000000010000000100000055 -S3156000D1700100000001000000010000000100000045 -S3156000D1800100000001000000010000000100000035 -S3156000D1900100000001000000010000000100000025 -S3156000D1A00100000001000000010000000100000015 -S3156000D1B00100000001000000010000000100000005 -S3156000D1C001000000010000000100000001000000F5 -S3156000D1D001000000010000000100000001000000E5 -S3156000D1E001000000010000000100000001000000D5 -S3156000D1F001000000010000000100000001000000C5 -S3156000D20001000000010000000100000001000000B4 -S3156000D21001000000010000000100000001000000A4 -S3156000D2200100000001000000010000000100000094 -S3156000D2300100000001000000010000000100000084 -S3156000D2400100000001000000010000000100000074 -S3156000D2500100000001000000010000000100000064 -S3156000D2600100000001000000010000000100000054 -S3156000D2700100000001000000010000000100000044 -S3156000D2800100000001000000010000000100000034 -S3156000D2900100000001000000010000000100000024 -S3156000D2A00100000001000000010000000100000014 -S3156000D2B00100000001000000010000000100000004 -S3156000D2C001000000010000000100000001000000F4 -S3156000D2D001000000010000000100000001000000E4 -S3156000D2E001000000010000000100000001000000D4 -S3156000D2F001000000010000000100000001000000C4 -S3156000D30001000000010000000100000001000000B3 -S3156000D31001000000010000000100000001000000A3 -S3156000D3200100000001000000010000000100000093 -S3156000D3300100000001000000010000000100000083 -S3156000D3400100000001000000010000000100000073 -S3156000D3500100000001000000010000000100000063 -S3156000D3600100000001000000010000000100000053 -S3156000D3700100000001000000010000000100000043 -S3156000D3800100000001000000010000000100000033 -S3156000D3900100000001000000010000000100000023 -S3156000D3A00100000001000000010000000100000013 -S3156000D3B00100000001000000010000000100000003 -S3156000D3C001000000010000000100000001000000F3 -S3156000D3D001000000010000000100000001000000E3 -S3156000D3E001000000010000000100000001000000D3 -S3156000D3F001000000010000000100000001000000C3 -S3156000D40001000000010000000100000001000000B2 -S3156000D41001000000010000000100000001000000A2 -S3156000D4200100000001000000010000000100000092 -S3156000D4300100000001000000010000000100000082 -S3156000D4400100000001000000010000000100000072 -S3156000D4500100000001000000010000000100000062 -S3156000D4600100000001000000010000000100000052 -S3156000D4700100000001000000010000000100000042 -S3156000D4800100000001000000010000000100000032 -S3156000D4900100000001000000010000000100000022 -S3156000D4A00100000001000000010000000100000012 -S3156000D4B00100000001000000010000000100000002 -S3156000D4C001000000010000000100000001000000F2 -S3156000D4D001000000010000000100000001000000E2 -S3156000D4E001000000010000000100000001000000D2 -S3156000D4F001000000010000000100000001000000C2 -S3156000D50001000000010000000100000001000000B1 -S3156000D51001000000010000000100000001000000A1 -S3156000D5200100000001000000010000000100000091 -S3156000D5300100000001000000010000000100000081 -S3156000D5400100000001000000010000000100000071 -S3156000D5500100000001000000010000000100000061 -S3156000D5600100000001000000010000000100000051 -S3156000D5700100000001000000010000000100000041 -S3156000D5800100000001000000010000000100000031 -S3156000D5900100000001000000010000000100000021 -S3156000D5A00100000001000000010000000100000011 -S3156000D5B00100000001000000010000000100000001 -S3156000D5C001000000010000000100000001000000F1 -S3156000D5D001000000010000000100000001000000E1 -S3156000D5E001000000010000000100000001000000D1 -S3156000D5F001000000010000000100000001000000C1 -S3156000D60001000000010000000100000001000000B0 -S3156000D61001000000010000000100000001000000A0 -S3156000D6200100000001000000010000000100000090 -S3156000D6300100000001000000010000000100000080 -S3156000D6400100000001000000010000000100000070 -S3156000D6500100000001000000010000000100000060 -S3156000D6600100000001000000010000000100000050 -S3156000D6700100000001000000010000000100000040 -S3156000D6800100000001000000010000000100000030 -S3156000D6900100000001000000010000000100000020 -S3156000D6A00100000001000000010000000100000010 -S3156000D6B00100000001000000010000000100000000 -S3156000D6C001000000010000000100000001000000F0 -S3156000D6D001000000010000000100000001000000E0 -S3156000D6E001000000010000000100000001000000D0 -S3156000D6F001000000010000000100000001000000C0 -S3156000D70001000000010000000100000001000000AF -S3156000D710010000000100000001000000010000009F -S3156000D720010000000100000001000000010000008F -S3156000D730010000000100000001000000010000007F -S3156000D740010000000100000001000000010000006F -S3156000D750010000000100000001000000010000005F -S3156000D760010000000100000001000000010000004F -S3156000D770010000000100000001000000010000003F -S3156000D780010000000100000001000000010000002F -S3156000D790010000000100000001000000010000001F -S3156000D7A0010000000100000001000000010000000F -S3156000D7B001000000010000000100000001000000FF -S3156000D7C001000000010000000100000001000000EF -S3156000D7D001000000010000000100000001000000DF -S3156000D7E001000000010000000100000001000000CF -S3156000D7F001000000010000000100000001000000BF -S3156000D80001000000010000000100000001000000AE -S3156000D810010000000100000001000000010000009E -S3156000D820010000000100000001000000010000008E -S3156000D830010000000100000001000000010000007E -S3156000D840010000000100000001000000010000006E -S3156000D850010000000100000001000000010000005E -S3156000D860010000000100000001000000010000004E -S3156000D870010000000100000001000000010000003E -S3156000D880010000000100000001000000010000002E -S3156000D890010000000100000001000000010000001E -S3156000D8A0010000000100000001000000010000000E -S3156000D8B001000000010000000100000001000000FE -S3156000D8C001000000010000000100000001000000EE -S3156000D8D001000000010000000100000001000000DE -S3156000D8E001000000010000000100000001000000CE -S3156000D8F001000000010000000100000001000000BE -S3156000D90001000000010000000100000001000000AD -S3156000D910010000000100000001000000010000009D -S3156000D920010000000100000001000000010000008D -S3156000D930010000000100000001000000010000007D -S3156000D940010000000100000001000000010000006D -S3156000D950010000000100000001000000010000005D -S3156000D960010000000100000001000000010000004D -S3156000D970010000000100000001000000010000003D -S3156000D980010000000100000001000000010000002D -S3156000D990010000000100000001000000010000001D -S3156000D9A0010000000100000001000000010000000D -S3156000D9B001000000010000000100000001000000FD -S3156000D9C001000000010000000100000001000000ED -S3156000D9D001000000010000000100000001000000DD -S3156000D9E001000000010000000100000001000000CD -S3156000D9F001000000010000000100000001000000BD -S3156000DA0001000000010000000100000001000000AC -S3156000DA10010000000100000001000000010000009C -S3156000DA20010000000100000001000000010000008C -S3156000DA30010000000100000001000000010000007C -S3156000DA40010000000100000001000000010000006C -S3156000DA50010000000100000001000000010000005C -S3156000DA60010000000100000001000000010000004C -S3156000DA70010000000100000001000000010000003C -S3156000DA80010000000100000001000000010000002C -S3156000DA90010000000100000001000000010000001C -S3156000DAA0010000000100000001000000010000000C -S3156000DAB001000000010000000100000001000000FC -S3156000DAC001000000010000000100000001000000EC -S3156000DAD001000000010000000100000001000000DC -S3156000DAE001000000010000000100000001000000CC -S3156000DAF001000000010000000100000001000000BC -S3156000DB0001000000010000000100000001000000AB -S3156000DB10010000000100000001000000010000009B -S3156000DB20010000000100000001000000010000008B -S3156000DB30010000000100000001000000010000007B -S3156000DB40010000000100000001000000010000006B -S3156000DB50010000000100000001000000010000005B -S3156000DB60010000000100000001000000010000004B -S3156000DB70010000000100000001000000010000003B -S3156000DB80010000000100000001000000010000002B -S3156000DB90010000000100000001000000010000001B -S3156000DBA0010000000100000001000000010000000B -S3156000DBB001000000010000000100000001000000FB -S3156000DBC001000000010000000100000001000000EB -S3156000DBD001000000010000000100000001000000DB -S3156000DBE001000000010000000100000001000000CB -S3156000DBF001000000010000000100000001000000BB -S3156000DC0001000000010000000100000001000000AA -S3156000DC10010000000100000001000000010000009A -S3156000DC20010000000100000001000000010000008A -S3156000DC30010000000100000001000000010000007A -S3156000DC40010000000100000001000000010000006A -S3156000DC50010000000100000001000000010000005A -S3156000DC60010000000100000001000000010000004A -S3156000DC70010000000100000001000000010000003A -S3156000DC80010000000100000001000000010000002A -S3156000DC90010000000100000001000000010000001A -S3156000DCA0010000000100000001000000010000000A -S3156000DCB001000000010000000100000001000000FA -S3156000DCC001000000010000000100000001000000EA -S3156000DCD001000000010000000100000001000000DA -S3156000DCE001000000010000000100000001000000CA -S3156000DCF001000000010000000100000001000000BA -S3156000DD0001000000010000000100000001000000A9 -S3156000DD100100000001000000010000000100000099 -S3156000DD200100000001000000010000000100000089 -S3156000DD300100000001000000010000000100000079 -S3156000DD400100000001000000010000000100000069 -S3156000DD500100000001000000010000000100000059 -S3156000DD600100000001000000010000000100000049 -S3156000DD700100000001000000010000000100000039 -S3156000DD800100000001000000010000000100000029 -S3156000DD900100000001000000010000000100000019 -S3156000DDA00100000001000000010000000100000009 -S3156000DDB001000000010000000100000001000000F9 -S3156000DDC001000000010000000100000001000000E9 -S3156000DDD001000000010000000100000001000000D9 -S3156000DDE001000000010000000100000001000000C9 -S3156000DDF001000000010000000100000001000000B9 -S3156000DE0001000000010000000100000001000000A8 -S3156000DE100100000001000000010000000100000098 -S3156000DE200100000001000000010000000100000088 -S3156000DE300100000001000000010000000100000078 -S3156000DE400100000001000000010000000100000068 -S3156000DE500100000001000000010000000100000058 -S3156000DE600100000001000000010000000100000048 -S3156000DE700100000001000000010000000100000038 -S3156000DE800100000001000000010000000100000028 -S3156000DE900100000001000000010000000100000018 -S3156000DEA00100000001000000010000000100000008 -S3156000DEB001000000010000000100000001000000F8 -S3156000DEC001000000010000000100000001000000E8 -S3156000DED001000000010000000100000001000000D8 -S3156000DEE001000000010000000100000001000000C8 -S3156000DEF001000000010000000100000001000000B8 -S3156000DF0001000000010000000100000001000000A7 -S3156000DF100100000001000000010000000100000097 -S3156000DF200100000001000000010000000100000087 -S3156000DF300100000001000000010000000100000077 -S3156000DF400100000001000000010000000100000067 -S3156000DF500100000001000000010000000100000057 -S3156000DF600100000001000000010000000100000047 -S3156000DF700100000001000000010000000100000037 -S3156000DF800100000001000000010000000100000027 -S3156000DF900100000001000000010000000100000017 -S3156000DFA00100000001000000010000000100000007 -S3156000DFB001000000010000000100000001000000F7 -S3156000DFC001000000010000000100000001000000E7 -S3156000DFD001000000010000000100000001000000D7 -S3156000DFE001000000010000000100000001000000C7 -S3156000DFF001000000010000000100000001000000B7 -S3156000E00001000000010000000100000001000000A6 -S3156000E0100100000001000000010000000100000096 -S3156000E0200100000001000000010000000100000086 -S3156000E0300100000001000000010000000100000076 -S3156000E0400100000001000000010000000100000066 -S3156000E0500100000001000000010000000100000056 -S3156000E0600100000001000000010000000100000046 -S3156000E0700100000001000000010000000100000036 -S3156000E0800100000001000000010000000100000026 -S3156000E0900100000001000000010000000100000016 -S3156000E0A00100000001000000010000000100000006 -S3156000E0B001000000010000000100000001000000F6 -S3156000E0C001000000010000000100000001000000E6 -S3156000E0D001000000010000000100000001000000D6 -S3156000E0E001000000010000000100000001000000C6 -S3156000E0F001000000010000000100000001000000B6 -S3156000E10001000000010000000100000001000000A5 -S3156000E1100100000001000000010000000100000095 -S3156000E1200100000001000000010000000100000085 -S3156000E1300100000001000000010000000100000075 -S3156000E1400100000001000000010000000100000065 -S3156000E1500100000001000000010000000100000055 -S3156000E1600100000001000000010000000100000045 -S3156000E1700100000001000000010000000100000035 -S3156000E1800100000001000000010000000100000025 -S3156000E1900100000001000000010000000100000015 -S3156000E1A00100000001000000010000000100000005 -S3156000E1B001000000010000000100000001000000F5 -S3156000E1C001000000010000000100000001000000E5 -S3156000E1D001000000010000000100000001000000D5 -S3156000E1E001000000010000000100000001000000C5 -S3156000E1F001000000010000000100000001000000B5 -S3156000E20001000000010000000100000001000000A4 -S3156000E2100100000001000000010000000100000094 -S3156000E2200100000001000000010000000100000084 -S3156000E2300100000001000000010000000100000074 -S3156000E2400100000001000000010000000100000064 -S3156000E2500100000001000000010000000100000054 -S3156000E2600100000001000000010000000100000044 -S3156000E2700100000001000000010000000100000034 -S3156000E2800100000001000000010000000100000024 -S3156000E2900100000001000000010000000100000014 -S3156000E2A00100000001000000010000000100000004 -S3156000E2B001000000010000000100000001000000F4 -S3156000E2C001000000010000000100000001000000E4 -S3156000E2D001000000010000000100000001000000D4 -S3156000E2E001000000010000000100000001000000C4 -S3156000E2F001000000010000000100000001000000B4 -S3156000E30001000000010000000100000001000000A3 -S3156000E3100100000001000000010000000100000093 -S3156000E3200100000001000000010000000100000083 -S3156000E3300100000001000000010000000100000073 -S3156000E3400100000001000000010000000100000063 -S3156000E3500100000001000000010000000100000053 -S3156000E3600100000001000000010000000100000043 -S3156000E3700100000001000000010000000100000033 -S3156000E3800100000001000000010000000100000023 -S3156000E3900100000001000000010000000100000013 -S3156000E3A00100000001000000010000000100000003 -S3156000E3B001000000010000000100000001000000F3 -S3156000E3C001000000010000000100000001000000E3 -S3156000E3D001000000010000000100000001000000D3 -S3156000E3E001000000010000000100000001000000C3 -S3156000E3F001000000010000000100000001000000B3 -S3156000E40001000000010000000100000001000000A2 -S3156000E4100100000001000000010000000100000092 -S3156000E4200100000001000000010000000100000082 -S3156000E4300100000001000000010000000100000072 -S3156000E4400100000001000000010000000100000062 -S3156000E4500100000001000000010000000100000052 -S3156000E4600100000001000000010000000100000042 -S3156000E4700100000001000000010000000100000032 -S3156000E4800100000001000000010000000100000022 -S3156000E4900100000001000000010000000100000012 -S3156000E4A00100000001000000010000000100000002 -S3156000E4B001000000010000000100000001000000F2 -S3156000E4C001000000010000000100000001000000E2 -S3156000E4D001000000010000000100000001000000D2 -S3156000E4E001000000010000000100000001000000C2 -S3156000E4F001000000010000000100000001000000B2 -S3156000E50001000000010000000100000001000000A1 -S3156000E5100100000001000000010000000100000091 -S3156000E5200100000001000000010000000100000081 -S3156000E5300100000001000000010000000100000071 -S3156000E5400100000001000000010000000100000061 -S3156000E5500100000001000000010000000100000051 -S3156000E5600100000001000000010000000100000041 -S3156000E5700100000001000000010000000100000031 -S3156000E5800100000001000000010000000100000021 -S3156000E5900100000001000000010000000100000011 -S3156000E5A00100000001000000010000000100000001 -S3156000E5B001000000010000000100000001000000F1 -S3156000E5C001000000010000000100000001000000E1 -S3156000E5D001000000010000000100000001000000D1 -S3156000E5E001000000010000000100000001000000C1 -S3156000E5F001000000010000000100000001000000B1 -S3156000E60001000000010000000100000001000000A0 -S3156000E6100100000001000000010000000100000090 -S3156000E6200100000001000000010000000100000080 -S3156000E6300100000001000000010000000100000070 -S3156000E6400100000001000000010000000100000060 -S3156000E6500100000001000000010000000100000050 -S3156000E6600100000001000000010000000100000040 -S3156000E6700100000001000000010000000100000030 -S3156000E6800100000001000000010000000100000020 -S3156000E6900100000001000000010000000100000010 -S3156000E6A00100000001000000010000000100000000 -S3156000E6B001000000010000000100000001000000F0 -S3156000E6C001000000010000000100000001000000E0 -S3156000E6D001000000010000000100000001000000D0 -S3156000E6E001000000010000000100000001000000C0 -S3156000E6F001000000010000000100000001000000B0 -S3156000E700010000000100000001000000010000009F -S3156000E710010000000100000001000000010000008F -S3156000E720010000000100000001000000010000007F -S3156000E730010000000100000001000000010000006F -S3156000E740010000000100000001000000010000005F -S3156000E750010000000100000001000000010000004F -S3156000E760010000000100000001000000010000003F -S3156000E770010000000100000001000000010000002F -S3156000E780010000000100000001000000010000001F -S3156000E790010000000100000001000000010000000F -S3156000E7A001000000010000000100000001000000FF -S3156000E7B001000000010000000100000001000000EF -S3156000E7C001000000010000000100000001000000DF -S3156000E7D001000000010000000100000001000000CF -S3156000E7E001000000010000000100000001000000BF -S3156000E7F001000000010000000100000001000000AF -S3156000E800010000000100000001000000010000009E -S3156000E810010000000100000001000000010000008E -S3156000E820010000000100000001000000010000007E -S3156000E830010000000100000001000000010000006E -S3156000E840010000000100000001000000010000005E -S3156000E850010000000100000001000000010000004E -S3156000E860010000000100000001000000010000003E -S3156000E870010000000100000001000000010000002E -S3156000E880010000000100000001000000010000001E -S3156000E890010000000100000001000000010000000E -S3156000E8A001000000010000000100000001000000FE -S3156000E8B001000000010000000100000001000000EE -S3156000E8C001000000010000000100000001000000DE -S3156000E8D001000000010000000100000001000000CE -S3156000E8E001000000010000000100000001000000BE -S3156000E8F001000000010000000100000001000000AE -S3156000E900010000000100000001000000010000009D -S3156000E910010000000100000001000000010000008D -S3156000E920010000000100000001000000010000007D -S3156000E930010000000100000001000000010000006D -S3156000E940010000000100000001000000010000005D -S3156000E950010000000100000001000000010000004D -S3156000E960010000000100000001000000010000003D -S3156000E970010000000100000001000000010000002D -S3156000E980010000000100000001000000010000001D -S3156000E990010000000100000001000000010000000D -S3156000E9A001000000010000000100000001000000FD -S3156000E9B001000000010000000100000001000000ED -S3156000E9C001000000010000000100000001000000DD -S3156000E9D001000000010000000100000001000000CD -S3156000E9E001000000010000000100000001000000BD -S3156000E9F001000000010000000100000001000000AD -S3156000EA00010000000100000001000000010000009C -S3156000EA10010000000100000001000000010000008C -S3156000EA20010000000100000001000000010000007C -S3156000EA30010000000100000001000000010000006C -S3156000EA40010000000100000001000000010000005C -S3156000EA50010000000100000001000000010000004C -S3156000EA60010000000100000001000000010000003C -S3156000EA70010000000100000001000000010000002C -S3156000EA80010000000100000001000000010000001C -S3156000EA90010000000100000001000000010000000C -S3156000EAA001000000010000000100000001000000FC -S3156000EAB001000000010000000100000001000000EC -S3156000EAC001000000010000000100000001000000DC -S3156000EAD001000000010000000100000001000000CC -S3156000EAE001000000010000000100000001000000BC -S3156000EAF001000000010000000100000001000000AC -S3156000EB00010000000100000001000000010000009B -S3156000EB10010000000100000001000000010000008B -S3156000EB20010000000100000001000000010000007B -S3156000EB30010000000100000001000000010000006B -S3156000EB40010000000100000001000000010000005B -S3156000EB50010000000100000001000000010000004B -S3156000EB60010000000100000001000000010000003B -S3156000EB70010000000100000001000000010000002B -S3156000EB80010000000100000001000000010000001B -S3156000EB90010000000100000001000000010000000B -S3156000EBA001000000010000000100000001000000FB -S3156000EBB001000000010000000100000001000000EB -S3156000EBC001000000010000000100000001000000DB -S3156000EBD001000000010000000100000001000000CB -S3156000EBE001000000010000000100000001000000BB -S3156000EBF001000000010000000100000001000000AB -S3156000EC00010000000100000001000000010000009A -S3156000EC10010000000100000001000000010000008A -S3156000EC20010000000100000001000000010000007A -S3156000EC30010000000100000001000000010000006A -S3156000EC40010000000100000001000000010000005A -S3156000EC50010000000100000001000000010000004A -S3156000EC60010000000100000001000000010000003A -S3156000EC70010000000100000001000000010000002A -S3156000EC80010000000100000001000000010000001A -S3156000EC90010000000100000001000000010000000A -S3156000ECA001000000010000000100000001000000FA -S3156000ECB001000000010000000100000001000000EA -S3156000ECC001000000010000000100000001000000DA -S3156000ECD001000000010000000100000001000000CA -S3156000ECE001000000010000000100000001000000BA -S3156000ECF001000000010000000100000001000000AA -S3156000ED000100000001000000010000000100000099 -S3156000ED100100000001000000010000000100000089 -S3156000ED200100000001000000010000000100000079 -S3156000ED300100000001000000010000000100000069 -S3156000ED400100000001000000010000000100000059 -S3156000ED500100000001000000010000000100000049 -S3156000ED600100000001000000010000000100000039 -S3156000ED700100000001000000010000000100000029 -S3156000ED800100000001000000010000000100000019 -S3156000ED900100000001000000010000000100000009 -S3156000EDA001000000010000000100000001000000F9 -S3156000EDB001000000010000000100000001000000E9 -S3156000EDC001000000010000000100000001000000D9 -S3156000EDD001000000010000000100000001000000C9 -S3156000EDE001000000010000000100000001000000B9 -S3156000EDF001000000010000000100000001000000A9 -S3156000EE000100000001000000010000000100000098 -S3156000EE100100000001000000010000000100000088 -S3156000EE200100000001000000010000000100000078 -S3156000EE300100000001000000010000000100000068 -S3156000EE400100000001000000010000000100000058 -S3156000EE500100000001000000010000000100000048 -S3156000EE600100000001000000010000000100000038 -S3156000EE700100000001000000010000000100000028 -S3156000EE800100000001000000010000000100000018 -S3156000EE900100000001000000010000000100000008 -S3156000EEA001000000010000000100000001000000F8 -S3156000EEB001000000010000000100000001000000E8 -S3156000EEC001000000010000000100000001000000D8 -S3156000EED001000000010000000100000001000000C8 -S3156000EEE001000000010000000100000001000000B8 -S3156000EEF001000000010000000100000001000000A8 -S3156000EF000100000001000000010000000100000097 -S3156000EF100100000001000000010000000100000087 -S3156000EF200100000001000000010000000100000077 -S3156000EF300100000001000000010000000100000067 -S3156000EF400100000001000000010000000100000057 -S3156000EF500100000001000000010000000100000047 -S3156000EF600100000001000000010000000100000037 -S3156000EF700100000001000000010000000100000027 -S3156000EF800100000001000000010000000100000017 -S3156000EF900100000001000000010000000100000007 -S3156000EFA001000000010000000100000001000000F7 -S3156000EFB001000000010000000100000001000000E7 -S3156000EFC001000000010000000100000001000000D7 -S3156000EFD001000000010000000100000001000000C7 -S3156000EFE001000000010000000100000001000000B7 -S3156000EFF001000000010000000100000001000000A7 -S3156000F0000100000001000000010000000100000096 -S3156000F0100100000001000000010000000100000086 -S3156000F0200100000001000000010000000100000076 -S3156000F0300100000001000000010000000100000066 -S3156000F0400100000001000000010000000100000056 -S3156000F0500100000001000000010000000100000046 -S3156000F0600100000001000000010000000100000036 -S3156000F0700100000001000000010000000100000026 -S3156000F0800100000001000000010000000100000016 -S3156000F0900100000001000000010000000100000006 -S3156000F0A001000000010000000100000001000000F6 -S3156000F0B001000000010000000100000001000000E6 -S3156000F0C001000000010000000100000001000000D6 -S3156000F0D001000000010000000100000001000000C6 -S3156000F0E001000000010000000100000001000000B6 -S3156000F0F001000000010000000100000001000000A6 -S3156000F1000100000001000000010000000100000095 -S3156000F1100100000001000000010000000100000085 -S3156000F1200100000001000000010000000100000075 -S3156000F1300100000001000000010000000100000065 -S3156000F1400100000001000000010000000100000055 -S3156000F1500100000001000000010000000100000045 -S3156000F1600100000001000000010000000100000035 -S3156000F1700100000001000000010000000100000025 -S3156000F1800100000001000000010000000100000015 -S3156000F1900100000001000000010000000100000005 -S3156000F1A001000000010000000100000001000000F5 -S3156000F1B001000000010000000100000001000000E5 -S3156000F1C001000000010000000100000001000000D5 -S3156000F1D001000000010000000100000001000000C5 -S3156000F1E001000000010000000100000001000000B5 -S3156000F1F001000000010000000100000001000000A5 -S3156000F2000100000001000000010000000100000094 -S3156000F2100100000001000000010000000100000084 -S3156000F2200100000001000000010000000100000074 -S3156000F2300100000001000000010000000100000064 -S3156000F2400100000001000000010000000100000054 -S3156000F2500100000001000000010000000100000044 -S3156000F2600100000001000000010000000100000034 -S3156000F2700100000001000000010000000100000024 -S3156000F2800100000001000000010000000100000014 -S3156000F2900100000001000000010000000100000004 -S3156000F2A001000000010000000100000001000000F4 -S3156000F2B001000000010000000100000001000000E4 -S3156000F2C001000000010000000100000001000000D4 -S3156000F2D001000000010000000100000001000000C4 -S3156000F2E001000000010000000100000001000000B4 -S3156000F2F001000000010000000100000001000000A4 -S3156000F3000100000001000000010000000100000093 -S3156000F3100100000001000000010000000100000083 -S3156000F3200100000001000000010000000100000073 -S3156000F3300100000001000000010000000100000063 -S3156000F3400100000001000000010000000100000053 -S3156000F3500100000001000000010000000100000043 -S3156000F3600100000001000000010000000100000033 -S3156000F3700100000001000000010000000100000023 -S3156000F3800100000001000000010000000100000013 -S3156000F3900100000001000000010000000100000003 -S3156000F3A001000000010000000100000001000000F3 -S3156000F3B001000000010000000100000001000000E3 -S3156000F3C001000000010000000100000001000000D3 -S3156000F3D001000000010000000100000001000000C3 -S3156000F3E001000000010000000100000001000000B3 -S3156000F3F001000000010000000100000001000000A3 -S3156000F4000100000001000000010000000100000092 -S3156000F4100100000001000000010000000100000082 -S3156000F4200100000001000000010000000100000072 -S3156000F4300100000001000000010000000100000062 -S3156000F4400100000001000000010000000100000052 -S3156000F4500100000001000000010000000100000042 -S3156000F4600100000001000000010000000100000032 -S3156000F4700100000001000000010000000100000022 -S3156000F4800100000001000000010000000100000012 -S3156000F4900100000001000000010000000100000002 -S3156000F4A001000000010000000100000001000000F2 -S3156000F4B001000000010000000100000001000000E2 -S3156000F4C001000000010000000100000001000000D2 -S3156000F4D001000000010000000100000001000000C2 -S3156000F4E001000000010000000100000001000000B2 -S3156000F4F001000000010000000100000001000000A2 -S3156000F5000100000001000000010000000100000091 -S3156000F5100100000001000000010000000100000081 -S3156000F5200100000001000000010000000100000071 -S3156000F5300100000001000000010000000100000061 -S3156000F5400100000001000000010000000100000051 -S3156000F5500100000001000000010000000100000041 -S3156000F5600100000001000000010000000100000031 -S3156000F5700100000001000000010000000100000021 -S3156000F5800100000001000000010000000100000011 -S3156000F5900100000001000000010000000100000001 -S3156000F5A001000000010000000100000001000000F1 -S3156000F5B001000000010000000100000001000000E1 -S3156000F5C001000000010000000100000001000000D1 -S3156000F5D001000000010000000100000001000000C1 -S3156000F5E001000000010000000100000001000000B1 -S3156000F5F001000000010000000100000001000000A1 -S3156000F6000100000001000000010000000100000090 -S3156000F6100100000001000000010000000100000080 -S3156000F6200100000001000000010000000100000070 -S3156000F6300100000001000000010000000100000060 -S3156000F6400100000001000000010000000100000050 -S3156000F6500100000001000000010000000100000040 -S3156000F6600100000001000000010000000100000030 -S3156000F6700100000001000000010000000100000020 -S3156000F6800100000001000000010000000100000010 -S3156000F6900100000001000000010000000100000000 -S3156000F6A001000000010000000100000001000000F0 -S3156000F6B001000000010000000100000001000000E0 -S3156000F6C001000000010000000100000001000000D0 -S3156000F6D001000000010000000100000001000000C0 -S3156000F6E001000000010000000100000001000000B0 -S3156000F6F001000000010000000100000001000000A0 -S3156000F700010000000100000001000000010000008F -S3156000F710010000000100000001000000010000007F -S3156000F720010000000100000001000000010000006F -S3156000F730010000000100000001000000010000005F -S3156000F740010000000100000001000000010000004F -S3156000F750010000000100000001000000010000003F -S3156000F760010000000100000001000000010000002F -S3156000F770010000000100000001000000010000001F -S3156000F780010000000100000001000000010000000F -S3156000F79001000000010000000100000001000000FF -S3156000F7A001000000010000000100000001000000EF -S3156000F7B001000000010000000100000001000000DF -S3156000F7C001000000010000000100000001000000CF -S3156000F7D001000000010000000100000001000000BF -S3156000F7E001000000010000000100000001000000AF -S3156000F7F0010000000100000001000000010000009F -S3156000F800010000000100000001000000010000008E -S3156000F810010000000100000001000000010000007E -S3156000F820010000000100000001000000010000006E -S3156000F830010000000100000001000000010000005E -S3156000F840010000000100000001000000010000004E -S3156000F850010000000100000001000000010000003E -S3156000F860010000000100000001000000010000002E -S3156000F870010000000100000001000000010000001E -S3156000F880010000000100000001000000010000000E -S3156000F89001000000010000000100000001000000FE -S3156000F8A001000000010000000100000001000000EE -S3156000F8B001000000010000000100000001000000DE -S3156000F8C001000000010000000100000001000000CE -S3156000F8D001000000010000000100000001000000BE -S3156000F8E001000000010000000100000001000000AE -S3156000F8F0010000000100000001000000010000009E -S3156000F900010000000100000001000000010000008D -S3156000F910010000000100000001000000010000007D -S3156000F920010000000100000001000000010000006D -S3156000F930010000000100000001000000010000005D -S3156000F940010000000100000001000000010000004D -S3156000F950010000000100000001000000010000003D -S3156000F960010000000100000001000000010000002D -S3156000F970010000000100000001000000010000001D -S3156000F980010000000100000001000000010000000D -S3156000F99001000000010000000100000001000000FD -S3156000F9A001000000010000000100000001000000ED -S3156000F9B001000000010000000100000001000000DD -S3156000F9C001000000010000000100000001000000CD -S3156000F9D001000000010000000100000001000000BD -S3156000F9E001000000010000000100000001000000AD -S3156000F9F0010000000100000001000000010000009D -S3156000FA00010000000100000001000000010000008C -S3156000FA10010000000100000001000000010000007C -S3156000FA20010000000100000001000000010000006C -S3156000FA30010000000100000001000000010000005C -S3156000FA40010000000100000001000000010000004C -S3156000FA50010000000100000001000000010000003C -S3156000FA60010000000100000001000000010000002C -S3156000FA70010000000100000001000000010000001C -S3156000FA80010000000100000001000000010000000C -S3156000FA9001000000010000000100000001000000FC -S3156000FAA001000000010000000100000001000000EC -S3156000FAB001000000010000000100000001000000DC -S3156000FAC001000000010000000100000001000000CC -S3156000FAD001000000010000000100000001000000BC -S3156000FAE001000000010000000100000001000000AC -S3156000FAF0010000000100000001000000010000009C -S3156000FB00010000000100000001000000010000008B -S3156000FB10010000000100000001000000010000007B -S3156000FB20010000000100000001000000010000006B -S3156000FB30010000000100000001000000010000005B -S3156000FB40010000000100000001000000010000004B -S3156000FB50010000000100000001000000010000003B -S3156000FB60010000000100000001000000010000002B -S3156000FB70010000000100000001000000010000001B -S3156000FB80010000000100000001000000010000000B -S3156000FB9001000000010000000100000001000000FB -S3156000FBA001000000010000000100000001000000EB -S3156000FBB001000000010000000100000001000000DB -S3156000FBC001000000010000000100000001000000CB -S3156000FBD001000000010000000100000001000000BB -S3156000FBE001000000010000000100000001000000AB -S3156000FBF0010000000100000001000000010000009B -S3156000FC00010000000100000001000000010000008A -S3156000FC10010000000100000001000000010000007A -S3156000FC20010000000100000001000000010000006A -S3156000FC30010000000100000001000000010000005A -S3156000FC40010000000100000001000000010000004A -S3156000FC50010000000100000001000000010000003A -S3156000FC60010000000100000001000000010000002A -S3156000FC70010000000100000001000000010000001A -S3156000FC80010000000100000001000000010000000A -S3156000FC9001000000010000000100000001000000FA -S3156000FCA001000000010000000100000001000000EA -S3156000FCB001000000010000000100000001000000DA -S3156000FCC001000000010000000100000001000000CA -S3156000FCD001000000010000000100000001000000BA -S3156000FCE001000000010000000100000001000000AA -S3156000FCF0010000000100000001000000010000009A -S3156000FD000100000001000000010000000100000089 -S3156000FD100100000001000000010000000100000079 -S3156000FD200100000001000000010000000100000069 -S3156000FD300100000001000000010000000100000059 -S3156000FD400100000001000000010000000100000049 -S3156000FD500100000001000000010000000100000039 -S3156000FD600100000001000000010000000100000029 -S3156000FD700100000001000000010000000100000019 -S3156000FD800100000001000000010000000100000009 -S3156000FD9001000000010000000100000001000000F9 -S3156000FDA001000000010000000100000001000000E9 -S3156000FDB001000000010000000100000001000000D9 -S3156000FDC001000000010000000100000001000000C9 -S3156000FDD001000000010000000100000001000000B9 -S3156000FDE001000000010000000100000001000000A9 -S3156000FDF00100000001000000010000000100000099 -S3156000FE000100000001000000010000000100000088 -S3156000FE100100000001000000010000000100000078 -S3156000FE200100000001000000010000000100000068 -S3156000FE300100000001000000010000000100000058 -S3156000FE400100000001000000010000000100000048 -S3156000FE500100000001000000010000000100000038 -S3156000FE600100000001000000010000000100000028 -S3156000FE700100000001000000010000000100000018 -S3156000FE800100000001000000010000000100000008 -S3156000FE9001000000010000000100000001000000F8 -S3156000FEA001000000010000000100000001000000E8 -S3156000FEB001000000010000000100000001000000D8 -S3156000FEC001000000010000000100000001000000C8 -S3156000FED001000000010000000100000001000000B8 -S3156000FEE001000000010000000100000001000000A8 -S3156000FEF00100000001000000010000000100000098 -S3156000FF000100000001000000010000000100000087 -S3156000FF100100000001000000010000000100000077 -S3156000FF200100000001000000010000000100000067 -S3156000FF300100000001000000010000000100000057 -S3156000FF400100000001000000010000000100000047 -S3156000FF500100000001000000010000000100000037 -S3156000FF600100000001000000010000000100000027 -S3156000FF700100000001000000010000000100000017 -S3156000FF800100000001000000010000000100000007 -S3156000FF9001000000010000000100000001000000F7 -S3156000FFA001000000010000000100000001000000E7 -S3156000FFB001000000010000000100000001000000D7 -S3156000FFC001000000010000000100000001000000C7 -S3156000FFD001000000010000000100000001000000B7 -S3156000FFE001000000010000000100000001000000A7 -S3156000FFF00100000001000000010000000100000097 -S315600100009DE3BF987FFFC4741100403080A2200039 -S31560010010128000F382102001C226200CC026200423 -S31560010020C0260000C026200882102002C2262008B1 -S31560010030C0260000C026000082102003C2262008C8 -S315600100409A102083DA262008A2102063C0260000B9 -S31560010050A2847FFF1CBFFFFE01000000A210206387 -S31560010060C2060000A2847FFF1CBFFFFE8210200231 -S31560010070C2262008A4062004C284802080886004E9 -S3156001008002BFFFFE01000000C0262008C026000056 -S31560010090A6102001C2848020833860148208603FE4 -S315600100A080A0600122800093A604E00182102003F3 -S315600100B0C2262008C28480208088600102800007F1 -S315600100C080886004C2860020C284802080886001A6 -S315600100D012BFFFFD8088600402BFFFFB808860025B -S315600100E002BFFFF901000000C0262008C0262004D7 -S315600100F080A4E0010480000821180080C284802069 -S315600101008208608080A06001028000AE010000006C -S3156001011021180080DA4C20F0DA260000C2848020A3 -S315600101208208600480A060010280009A01000000DC -S31560010130C284802080A4E001048000208210200116 -S31560010140A210200180A440131680000D2B18008098 -S31560010150A81420F0E00560E8901000114000247AB0 -S3156001016092100010C24D0008A2046001C226000070 -S3156001017080A4401306BFFFFA90100011C28480204C -S315600101808208608080A06001028000920100000008 -S31560010190C2848020833860148208603F80A0401347 -S315600101A002800004010000007FFFC4159010200644 -S315600101B0C284802082102001C226200CDA8480202D -S315600101C0808B60011280006801000000821020832C -S315600101D0C226200880A4E0010280005201000000CE -S315600101E0C28480208088640002BFFFFE0100000097 -S315600101F0C284802080886001028000530100000073 -S3156001020080A4E00124800012A2102000C284802014 -S315600102108330601A80A04013028000040100000050 -S315600102207FFFC3F790102009C28480208088610017 -S315600102300280005501000000C2848020808864002D -S315600102400280004D01000000A210200080A440132E -S315600102501680001203180080A81060F02B18008029 -S31560010260E08600209010001140002437D20560E836 -S31560010270C24D0008A204600180A040100280000403 -S315600102809010200C7FFFC3DE0100000080A44013A4 -S3156001029006BFFFF40100000080A4E0010480000FA6 -S315600102A001000000C28480208088610012800042C3 -S315600102B001000000C28480208330601A80A0600043 -S315600102C01280003A01000000C284802080886400A8 -S315600102D01280003301000000C284802080886001A2 -S315600102E01280001D01000000C02620083080003CFD -S315600102F0C0260000C2848020833860148208603F73 -S3156001030080A0401322BFFFFBA604E00180A4E001A8 -S3156001031034BFFF67A604FFFF10BFFF66821020038C -S31560010320C28480208088600112BFFFB20100000094 -S31560010330C28480208088600102BFFFFA010000004C -S3156001034030BFFFAC7FFFC3AE9010200810BFFFAE79 -S3156001035080A4E0017FFFC3AA9010200CC02620086C -S315600103603080001F7FFFC3A69010200710BFFF9942 -S31560010370821020837FFFC3A29010200B10BFFFB4B1 -S31560010380A21020007FFFC39E9010200A30BFFFABF2 -S315600103907FFFC39B9010200130BFFF667FFFC3982C -S315600103A09010200B30BFFFCD7FFFC3959010200EBC -S315600103B030BFFFC67FFFC3929010200D30BFFFBED6 -S315600103C07FFFC38F9010200410BFFF532118008058 -S315600103D07FFFC38B9010200530BFFF6E81C7E00899 -S315600103E091E8200017180143DA02E080900220109C -S315600103F09B2B60029812E080D023000DC202E08040 -S3156001040082006001C222E08081C3E0080100000031 -S31560010410C0220000C022204082103FFFC222200C71 -S315600104209A10200103180143DA20608081C3E00835 -S31560010430010000009DE3BF7803180144F02060CC01 -S315600104407FFFC365110040347FFFFFF290100018F3 -S31560010450A010200123180040921000104000298F3F -S31560010460901463E4A004200180A4200F04BFFFFC64 -S3156001047092100010C20620208330601CAE0060011D -S31560010480AC10200080A58017168000ED0300003FA8 -S31560010490B81063FE2B1801430300002AB61062AA46 -S315600104A0BA102001B410001CB2156080832DA00C17 -S315600104B080A5E00114800119A600401880A5A0005E -S315600104C01280010A01000000F824E008C204E00875 -S315600104D080A0401C02800004010000007FFFC34829 -S315600104E090102001F824E040C204E04080A0401C46 -S315600104F002800004010000007FFFC34190102002CA -S31560010500C204E00880A0600012BFFFFE0100000087 -S31560010510C205608080A06010028000052518014335 -S315600105207FFFC3379010200325180143A0102001D7 -S31560010530A414A080A2102020832C20029A244010AB -S31560010540D8048001A004200180A3000D028000046C -S31560010550901020047FFFC32A0100000080A4200FB1 -S3156001056004BFFFF7832C2002FA256080F624C000C1 -S31560010570F424E040C204C00080A0401B0280000455 -S31560010580A010001A7FFFC31E90102005C204E04030 -S3156001059080A0401002800004010000007FFFC318A4 -S315600105A090102005F424E008C204E00880A06000F1 -S315600105B012BFFFFE01000000C205608080A06010CE -S315600105C002800005251801437FFFC30D90102006A8 -S315600105D025180143A0102001A414A080A210201F99 -S315600105E09B2C2002C204800D80A04011A004200132 -S315600105F0A2047FFE02800004901020077FFFC300E3 -S315600106000100000080A4200704BFFFF79B2C200295 -S31560010610A4066028A210201CA0102005C204800038 -S3156001062080A04011A404A004A2047FFE02800004FD -S31560010630901020087FFFC2F201000000A0843FFFF6 -S315600106401CBFFFF701000000FA27BFE8C207BFE839 -S3156001065082006001C227BFECDA07BFEC9A03600132 -S31560010660DA27BFF0C207BFF082006001C227BFF47C -S315600106709A102006DA27BFD8C024C000C024E04003 -S31560010680FA256080A0102002E024E040E024E00822 -S3156001069083444000808861000280000501000000FB -S315600106A0805000018050000180500001C207BFD810 -S315600106B0C227BFDCDA07BFD880A3600602800004C8 -S315600106C0010000007FFFC2CE9010200AE024E008FE -S315600106D001000000C207BFD8C227BFDCDA07BFD856 -S315600106E080A3600602800004010000007FFFC2C48F -S315600106F09010200AE024E00801000000C027BFDC5A -S31560010700C207BFDC80A06000128000960100000075 -S31560010710C204E00880A0600012BFFFFE0100000075 -S31560010720C205608080A06004028000050300003F6E -S315600107307FFFC2B39010200D0300003FC024E0404C -S31560010740821063FEC224E008031801439A10200157 -S31560010750DA206080400003E801000000400003E801 -S3156001076090122F0082103FFFC224E040C204E04095 -S3156001077080A0600002BFFFFE01000000C20560802C -S3156001078080A0600202800004A01560807FFFC29C89 -S315600107909010200EC204200480A0601F0280000415 -S315600107A0010000007FFFC2969010200F400003D227 -S315600107B0A8100010400003D290023F00A010200252 -S315600107C0A4102020400003CC01000000400003CCAF -S315600107D090023F00C2056080A204200180A0401102 -S315600107E002800004901020107FFFC2850100000086 -S315600107F0832C20029A248010D8050001A0100011D4 -S3156001080080A3000D02800004901020117FFFC27C3E -S315600108100100000080A4200F04BFFFEB010000006F -S31560010820C024E040AC05A00182103FFFC224E00C69 -S3156001083080A5801706BFFF1F832DA00C80A5E00150 -S315600108400480004B01000000C0262024C20620243B -S3156001085080A060001280003F0100000021040000BA -S31560010860E0262024C206202480A0401002800005D4 -S31560010870821020017FFFC262901020148210200135 -S31560010880C2262020C0262024C206202480A0401033 -S3156001089002800004010000007FFFC25990102015FC -S315600108A0C0262020C0262024C206202480A0600005 -S315600108B0128000240100000082102002C22620203E -S315600108C0DA062020808B60020280001B0100000096 -S315600108D0C0262020C2062020808860020280002473 -S315600108E001000000308000117FFFFECA90100013E6 -S315600108F09B2DA01CDA24E024C204E0248330601C12 -S3156001090080A0401602BFFEF1010000007FFFC23CDD -S315600109109010201230BFFEED7FFFC234901000169A -S3156001092010BFFEE880A5A0007FFFC2359010201899 -S315600109303080000F7FFFC2329010201730BFFFE575 -S315600109407FFFC22F9010201610BFFFDD821020029C -S315600109507FFFC22B9010201310BFFFC2210400003D -S315600109607FFFC2279010200B30BFFF6A81C7E00866 -S3156001097091E8200003180143DA0060C8C0236008CB -S3156001098081C3E008901020009DE3BF902F180144B9 -S31560010990E205E0CCA004610027180143C2042004EB -S315600109A0F024E0C87FFFC21190102010030180007F -S315600109B0DA04200482106020808B40011280010DD0 -S315600109C001000000DA046100DA27BFF0C2046100A9 -S315600109D080A3400102800005821020017FFFC208CA -S315600109E09010200282102001C2242004DA046100E2 -S315600109F0DA27BFF0C204610080A3400102800120B2 -S31560010A0001000000C0242004DA046100DA27BFF087 -S31560010A10C204610080A340010280000580A7200016 -S31560010A207FFFC1F79010200480A72000128000B7D5 -S31560010A3080A72001B010200180A6001A1680001739 -S31560010A40A8102001108000052518004280A6001A12 -S31560010A5016800013DA04E0C8A206C0189014A174C7 -S31560010A609210001180A4601F14BFFFF9B006200127 -S31560010A704000280A01000000D805E0CCC2032040EE -S31560010A809B2D00118210400DC223204080A6001AC2 -S31560010A9006BFFFF3A206C018DA04E0C89606A003F3 -S31560010AA0C0236004833AE01FC023601098103FFFA3 -S31560010AB08330601EAA02C001D8236014D823600C5B -S31560010AC0A2102000AD3D600280A720000280008A4E -S31560010AD0A810200180A4401C168000ECC204E0C866 -S31560010AE080A7200104800015B010200080A5A00019 -S31560010AF00480001380A0001C9B2C6010832C60185E -S31560010B008210400D992C60088210400C82104011B1 -S31560010B10993D6002DA04E0C8C2236020B006200174 -S31560010B2080A72001048000059A03600480A3001851 -S31560010B3014BFFFFA0100000080A0001CB0603FFFF7 -S31560010B4080A6001A16800016C204E0C8250180003E -S31560010B5080A72000028000058206C01880A72001B8 -S31560010B60028000848206C011C2242004D804E0C831 -S31560010B70832D00189B3E4018C2232008808B60019C -S31560010B80128000859A10000CB006200180A6001A1A -S31560010B9006BFFFF180A72000C204E0C8C02060083C -S31560010BA0808E600112800009B0102000B00620011D -S31560010BB080A6201F14800005833E4018808860014E -S31560010BC022BFFFFCB006200180A72000028000063C -S31560010BD08206C01880A72001028000048216E020E8 -S31560010BE08206C01182106020C2242004DA04E0C8A3 -S31560010BF0832D0018C2236008C203600880A06000CC -S31560010C0012BFFFFE01000000C2042004808860203C -S31560010C100280009801000000DA042004030100004C -S31560010C20808B40010280009001000000DA042004FC -S31560010C3003008000808B4001028000880100000073 -S31560010C40C2042008C227BFF0DA04200CDA27BFF4F9 -S31560010C50C204E0C8992D0018D82060089A100001D6 -S31560010C60C203600880A0600012BFFFFE01000000A1 -S31560010C70C2042004808860200280007501000000A3 -S31560010C80DA04200403010000808B40010280006DBC -S31560010C9001000000DA04200403008000808B40011B -S31560010CA00280006501000000DA042008C207BFF077 -S31560010CB080A0400D02800004010000007FFFC1504A -S31560010CC09010200EDA04200CC207BFF480A0400DFC -S31560010CD002800005030180007FFFC1499010200F4B -S31560010CE003018000C224200480A7200012BFFF7A7E -S31560010CF0A204600180A4600004BFFF7B80A720017D -S31560010D0010800062C204E0C80280003D11180042F2 -S31560010D10B010200080A6001C16BFFF60A81020013D -S31560010D20108000052518004280A6001C16BFFF5CD6 -S31560010D30DA04E0C8A206C0189014A17492100011DA -S31560010D4080A4601F14BFFFF9B0062001400027533D -S31560010D5001000000D805E0CCC20320409B2D0011A4 -S31560010D608210400DC223204010BFFFF180A6001CF7 -S31560010D70F6242004D804E0C8832D00189B3E401851 -S31560010D80C2232008808B600122BFFF81B00620014B -S31560010D909A10000CC203600880A0600012BFFFFEBB -S31560010DA001000000DA04200403010000808B400189 -S31560010DB00280001E01000000DA04200403008000A6 -S31560010DC0808B40010280001601000000E4242004AB -S31560010DD0C20420048088401222BFFF6DB006200144 -S31560010DE07FFFC1079010200710BFFF69B006200181 -S31560010DF07FFFC1039010200130BFFEF39012217472 -S31560010E00400027269210001BDA05E0CC832F001BD9 -S31560010E10C223604010BFFF22DA04E0C87FFFC0F83A -S31560010E209010200630BFFFEA7FFFC0F590102005C5 -S31560010E3030BFFFE27FFFC0F29010200D30BFFF9BF5 -S31560010E407FFFC0EF9010200C30BFFF937FFFC0EC97 -S31560010E509010200B30BFFF8B7FFFC0E99010200AF6 -S31560010E6030BFFF787FFFC0E69010200930BFFF706A -S31560010E707FFFC0E39010200830BFFF687FFFC0E0AE -S31560010E809010200330BFFEE0C020600CDA05E0CC94 -S31560010E90C023604082103FFFC223600C81C7E00817 -S31560010EA091E820009DE3BF983B180144E60760CCBA -S31560010EB07FFFC0CE90102011C024E01CC204E01C4C -S31560010EC080A060000280004801000000C204E01CAE -S31560010ED08330601B80A0401A0A80003F0100000039 -S31560010EE0A410200080A4801A1A8000422D180143A4 -S31560010EF0AA102001AE15A080A32CA002E006401125 -S31560010F007FFFFD4490100013A804A0019B2D4012A1 -S31560010F10832D20108210400DC224E01C9A103FFFE1 -S31560010F20DA24E040D80600119A10201FDA23200443 -S31560010F30A0043FFFDA230000A12C20048204000CE8 -S31560010F409A102005DA206010C0206014EA2060182B -S31560010F509A100001C203601080A0600012BFFFFEFC -S31560010F6001000000A004000CC204201080A06000F3 -S31560010F7002BFFFFE01000000C0242018C205A08048 -S31560010F8080A06002028000069A04A011900480127B -S31560010F907FFFC09B900220039A04A011C205E00462 -S31560010FA080A0400D22800006A410001490048012D7 -S31560010FB07FFFC09390022004A4100014C024E01C9B -S31560010FC080A5001A0ABFFFCEA32CA0021080000ADA -S31560010FD0DA0760CC7FFFC08A9010200210BFFFC283 -S31560010FE0A41020007FFFC0869010200130BFFFB89B -S31560010FF0DA0760CCC023604082103FFFC223600CD9 -S3156001100081C7E00891E820009DE3BF987FFFC08B10 -S315600110100100000080A220000280002680A6200038 -S3156001102012800029010000007FFFC08401000000DA -S31560011030912A20047FFFC06D900220034000186D45 -S315600110400100000080A220001280002B0100000038 -S315600110504000182B01000000400017E40100000069 -S31560011060400002270100000080A6A0001280002D2A -S31560011070031801447FFFC071B41060D0912A200229 -S31560011080C206800880A060001280003080A6200021 -S3156001109012800039010000004000048E010000004A -S315600110A040001E0201000000400015C181E80000F9 -S315600110B07FFFC0491100400C80A6200002BFFFDB04 -S315600110C0010000007FFFC0F5901000197FFFC05B33 -S315600110D001000000912A20047FFFC0449002200392 -S315600110E0400018440100000080A2200002BFFFD921 -S315600110F0010000007FFFC0429010200140001800EF -S3156001110001000000400017B901000000400001FC29 -S315600111100100000080A6A00002BFFFD703180144AA -S3156001112040001DED01000000031801447FFFC0432C -S31560011130B41060D0912A2002C206800880A06000A7 -S3156001114002BFFFD480A620007FFFC03C01000000E3 -S315600111507FFFC03AA0100008912A2002C2068008CB -S315600111609FC040009010001080A6200002BFFFCBF8 -S31560011170010000007FFFC0D990100019400004559E -S315600111800100000040001DC90100000040001588F3 -S3156001119081E800000100000003180143DA0060CC19 -S315600111A09A036001DA2060CC81C3E0080100000087 -S315600111B09DE3BF987FFFC00811004044D806200810 -S315600111C082103FFFC2262004DA060000C206000034 -S315600111D080A340010280006FA60B20078210201FAA -S315600111E0C2262004C226000080A4E00002800033EB -S315600111F082100018A2100013C0206018A2847FFF1D -S3156001120012BFFFFE82006010A210200080A440136E -S315600112101680002B80A4E001A810200FA0100018F2 -S315600112207FFFBFF290100011C0242010E824201423 -S3156001123082102006C2242018DA04201080A3600FD1 -S3156001124002800004010000007FFFBFED90102003C3 -S31560011250E82420189A10200EC204201080A0400DA8 -S3156001126012BFFFFE010000009A837FFF1CBFFFFBD8 -S31560011270A4100010C204201080A0600F12BFFFFEF0 -S3156001128001000000C20420188088601002800035C9 -S3156001129082102010C224A018DA042018808B6010F6 -S315600112A01280003801000000A204600180A440138E -S315600112B006BFFFDCA004201080A4E00114800010AA -S315600112C080A4E0000280000782100018A2100013BB -S315600112D0C0206018A2847FFF12BFFFFE82006010EB -S315600112E021180144C20420CC80A060000280002D38 -S315600112F0111800441080000D921000197FFFBFBBCA -S31560011300901020088210200FC22620189A10202FD4 -S31560011310DA262028C206202080A0600D12BFFFFEBB -S3156001132080A4E00030BFFFE8400025DC90122198E0 -S315600113307FFFFC38D00420CC82102001832840191D -S31560011340DA0420CCC22360409810200FD8262014DE -S315600113508210200DC2262018A7800000308000115F -S315600113607FFFBFA79010200482102010C224A0180E -S31560011370DA042018808B601022BFFFCDA2046001C1 -S315600113807FFFBF9F9010200510BFFFC9A2046001B7 -S315600113907FFFBF9B9010200110BFFF928210201F1C -S315600113A081C7E00881E8000000000000000000003D -S315600113B000000000000000000000000000000000C6 -S315600113C001000000010000000100000001000000B2 -S315600113D0010000000100000081C3E0080100000077 -S315600113E00100000001000000010000000100000092 -S315600113F0010000000100000081C3E0080100000057 -S315600114000100000001000000010000000100000071 -S31560011410010000000100000081C3E0080100000036 -S315600114200100000001000000010000000100000051 -S31560011430010000000100000081C3E0080100000016 -S31560011440D482018090A2000916BFFFFE9612800B1E -S3156001145081C3E0089010000BD48201C090A20009FC -S3156001146016BFFFFE9612800B81C3E0089010000B39 -S3156001147090A22004C0A201A090A22004C0A201A053 -S3156001148090A22004C0A201A090A22004C0A201A043 -S31560011490C0A2018090A2200414BFFFF701000000E2 -S315600114A081C3E0080100000090A22004C0A201E00F -S315600114B090A22004C0A201E090A22004C0A201E093 -S315600114C090A22004C0A201E0C0A201C090A22004A3 -S315600114D014BFFFF70100000081C3E00801000000AE -S315600114E0981000089610000A98A3200814BFFFFF01 -S315600114F0D43B00099810000898A3200814BFFFFF89 -S31560011500C01B00099810000898A32004D60300099F -S3156001151080A2C00A1280000698A3200434BFFFFD92 -S31560011520D603000981C3E0089010200090102001C5 -S31560011530981000089610000A98A3200814BFFFFFB0 -S31560011540D43B00099810000898A32004D60300092B -S3156001155080A2C00A1280000698A3200434BFFFFD52 -S31560011560D603000981C3E008901020009010200185 -S315600115709810000898A32004D2A301A0DA8301A0E1 -S3156001158080A340091280000698A3200414BFFFFCC3 -S31560011590D2A301A081C3E008901020009010200121 -S315600115A09A1000089AA3400AD6A34180D883418045 -S315600115B0981B000B988B0009128000069AA3400ABB -S315600115C014BFFFFBD6A3418081C3E00890102000C1 -S315600115D0901020019A1000089AA3400BD8A241CD21 -S315600115E0C48241CD8418800C8488800A12800006EA -S315600115F09AA3400B14BFFFFBD8A241CD81C3E0087B -S3156001160090102000901020010100000001000000F0 -S31560011610010000001318008092126138D402400064 -S3156001162080A2A0011280000780A0A002D40240001F -S31560011630D4024000952AA002108000050100000036 -S315600116403280000381E80000D402400081E000009E -S3156001165093480000818A602023180045A2146278AD -S31560011660A40460040100000081C4400081CC8000B4 -S3156001167091D0200191D020012680000590002001A3 -S3156001168090222001912A2001912A200281C3E0083B -S315600116900100000081C3E008D082004081C3E008F8 -S315600116A0D2A2004081C3E008D082018081C3E008F4 -S315600116B0D2A2018081C3E008D08201A081C3E00883 -S315600116C0D2A201A081C3E008D08201C081C3E00833 -S315600116D0D2A201C081C3E008D08201E081C3E008E3 -S315600116E0D2A201E081C3E008D2A2000081C3E00872 -S315600116F0D082000081C3E00891480000818A000021 -S3156001170001000000010000000100000081C3E00843 -S315600117100100000081C3E008C0A000A081C3E00809 -S31560011720C0A000C081C3E008D01A0000010000001B -S31560011730010000000100000001000000010000003E -S315600117409DE3BF701318006DCD1A6160CD3FBFE098 -S31560011750111800801B180080C91B61E0C51A21D8C9 -S31560011760C11FBFE095A088C4D53FBFF0D91FBFF0A8 -S3156001177003180080D11861E881AB0A4801000000B6 -S315600117800380002BC13FBFD8F91FBFD8B5A0055C48 -S31560011790F53FBFF0ED1FBFF0F11FBFF0A5A589585A -S315600117A0E91FBFE0A1A488D41518006DA1A001307E -S315600117B0DD1AA16881AC0ACE010000000D80002D02 -S315600117C0F53FBFD0C51FBFD083A018C291A04921E4 -S315600117D099A01928D51FBFE091A308CA1718006DF3 -S315600117E091A00128FD1AE17081AA0ADE01000000BC -S315600117F00D80002F01000000400001AE01000000D5 -S315600118004000020C0100000080A22000128000311D -S3156001181001000000400002610100000080A220007A -S315600118200280003501000000308000317FFFBE7408 -S3156001183090102001F91FBFD8B5A0055CF53FBFF038 -S31560011840ED1FBFF0F11FBFF0A5A58958E91FBFE0E5 -S31560011850A1A488D41518006DA1A00130DD1AA16874 -S3156001186081AC0ACE010000001BBFFFD7F53FBFD098 -S315600118707FFFBE6390102002C51FBFD083A018C230 -S3156001188091A0492199A01928D51FBFE091A308CA43 -S315600118901718006D91A00128FD1AE17081AA0ADE70 -S315600118A0010000001BBFFFD5010000007FFFBE5491 -S315600118B0901020034000017F01000000400001DD1F -S315600118C00100000080A2200002BFFFD301000000DA -S315600118D07FFFBE4B010000004000023001000000A6 -S315600118E080A2200002800004010000007FFFBE4448 -S315600118F09010200581C7E00881E800009DE3BF984C -S315600119007FFFFF7D210000047FFFFF7D90120010A5 -S315600119107FFFFF79B0102000808A00100280000BE3 -S315600119209010200040000267010000007FFFBE4367 -S3156001193001000000912A20047FFFBE2C900220083E -S315600119407FFFFF800100000081C7E00881E8000099 -S315600119501918008098132178111002009210200046 -S31560011960150FF76C9412A3D7D03B0000D42320083F -S31560011970C11B0000C503200887A089220100000061 -S3156001198089A005408DA0892281A8CA260100000090 -S3156001199033800003901020009010200181C3E0087D -S315600119A001000000C11A0000C51A400089A0084262 -S315600119B081C3E008C93A8000C11A0000C51A400017 -S315600119C089A0094281C3E008C93A800019180080DC -S315600119D098132178D0230000D2232008C103000088 -S315600119E0C303200885A00D2181C3E008C53A8000A4 -S315600119F0C11A0000C51A400089A009C2C93A80000F -S31560011A0081C3E00801000000C11A000085A00540FD -S31560011A10C53A400081C3E0080100000001000000F2 -S31560011A20010000000100000001000000010000004B -S31560011A30010000000100000001000000010000003B -S31560011A40010000000100000001000000010000002B -S31560011A50010000000100000001000000010000001B -S31560011A60010000000100000001000000010000000B -S31560011A7001000000010000000100000001000000FB -S31560011A8001000000010000000100000001000000EB -S31560011A9001000000010000000100000081A000209B -S31560011AA081C3E00801000000C11A000081C3E0089B -S31560011AB001000000C51A000089A009C2C93A4000A8 -S31560011AC081C3E0080100000013180080921261785A -S31560011AD0D0224000C102400085A01900C53A4000ED -S31560011AE081C3E008D01A4000131800809212617811 -S31560011AF0D0224000C102400085A01880C522400066 -S31560011B0081C3E008D0024000151800809412A178C4 -S31560011B10D03A8000C11A800085A01A40C522800093 -S31560011B2081C3E008D0028000151800809412A17864 -S31560011B30D0228000C102800085A01A20C5228000C3 -S31560011B4081C3E008D0028000151800809412A17844 -S31560011B50D0228000C102800081A01920C13A800094 -S31560011B6081C3E008D01A8000151800809412A1780C -S31560011B70D03A8000C11A800081A018C0C1228000BD -S31560011B8081C3E008D0028000151800809412A17804 -S31560011B90D0228000CB0280008DA00025CD2280005E -S31560011BA081C3E008D0028000151800809412A178E4 -S31560011BB0D0228000CB0280008DA000A5CD228000BE -S31560011BC081C3E008D0028000151800809412A178C4 -S31560011BD0D0228000CB0280008DA00125CD2280001D -S31560011BE081C3E008D002800019180080981321781B -S31560011BF0D03B0000D43B2008C11B0000C51B200858 -S31560011C0081A80A420100000033800009901020007B -S31560011C1029800007901020012D8000059010200278 -S31560011C202F8000039010200391D0200081C3E0082B -S31560011C30010000001918008098132178D03B00003C -S31560011C40D43B2008C11B0000C51B200881A80AC21D -S31560011C500100000033BFFFF69010200029BFFFF49A -S31560011C60901020012DBFFFF2901020022FBFFFF0D0 -S31560011C709010200391D020001918008098132178C4 -S31560011C80D0230000D2232008C1030000C30320082B -S31560011C9081A80A210100000033BFFFE590102000F2 -S31560011CA029BFFFE3901020012DBFFFE190102002B4 -S31560011CB02FBFFFDF9010200391D0200019180080FC -S31560011CC098132178D0230000D2232008C103000095 -S31560011CD0C303200881A80AA10100000033BFFFD415 -S31560011CE09010200029BFFFD2901020012DBFFFD098 -S31560011CF0901020022FBFFFCE9010200391D02000BC -S31560011D001918008098132178D03B0000D43B200835 -S31560011D10C11B0000C51B200889A008C2C93B000081 -S31560011D2081C3E008D01B0000191800809813217840 -S31560011D30D0230000D2232008C1030000C30320087A -S31560011D4085A00821C523000081C3E008D0030000F7 -S31560011D501918008098132178D0230000D223200817 -S31560011D60C1030000C303200885A008A1C5230000A4 -S31560011D7081C3E008D0030000191800809813217808 -S31560011D80D0230000D2232008C1030000C30320082A -S31560011D9085A00921C523000081C3E008D0030000A6 -S31560011DA01918008098132178D0230000D2232008C7 -S31560011DB0C1030000C303200885A009A1C523000053 -S31560011DC081C3E008D00300001918008098132178B8 -S31560011DD0D0230000C103000083A00520C3230000B7 -S31560011DE081C3E008D003000013180080921261904D -S31560011DF0C51A6008C11A400089A0084091A108C2AD -S31560011E0095A209C495A2894281C3E008D53A00002A -S31560011E1013180080921261B0C1024000C3026004CF -S31560011E2085A0082087A088A189A0C9A289A10921C6 -S31560011E3081C3E008C92200009610200213180080B1 -S31560011E4092126190151800809412A190D5024000FB -S31560011E50D7028000D5220000D80200001318008046 -S31560011E60921261B096A2E00112BFFFF90100000073 -S31560011E7081C3E0080100000013180080921261908E -S31560011E80151800809412A1B0C1028000C51A6010B5 -S31560011E9083A0082089A088C08BA109A18DA10942D0 -S31560011EA08FA1492691A0054681C3E008D13A000079 -S31560011EB01118008090122188C11A0000C51A00000D -S31560011EC0C91A0000CD1A0000D11A0000D51A000007 -S31560011ED0D91A0000DD1A0000E11A0000E51A0000B7 -S31560011EE0E91A0000ED1A0000F11A0000F51A000067 -S31560011EF0F91A0000FD1A000081C3E0080100000024 -S31560011F0029180080A815215827180080A614E1C059 -S31560011F10C12CC000E604C000A134E00EA00C20076D -S31560011F20A0A42002AE1020002D180080AC15A1C01F -S31560011F30AE05E001AC05A008C1358000C12D0000E9 -S31560011F40EA050000AB35600DAA8D600112BFFFF98D -S31560011F5001000000808000100280002F2B3C1FFFD3 -S31560011F60AA1563FFA60CC015E6250000C10D000089 -S31560011F702B180080AA1561CC2D180047AC15A3E07B -S31560011F80AE25E001E0054000E025800081D8200013 -S31560011F9001000000010000000100000001000000D6 -S31560011FA001000000010000000100000001000000C6 -S31560011FB001000000010000000100000001000000B6 -S31560011FC001000000010000000100000001000000A6 -S31560011FD00100000001000000010000000100000096 -S31560011FE00000000080A5C00012BFFFE6AA056008D8 -S31560011FF0C12D0000E60500002B03C000A614C01524 -S31560012000E6250000C10D000081C4400081CC80003E -S315600120100100000081C4800081CCA00401000000A1 -S315600120200100000081C3E008915800000100000032 -S315600120301118008090122158C10A0000C0220000C8 -S31560012040C10A0000C12A0000D40200001300038007 -S31560012050942A800980A0000A3280004D90102003E6 -S315600120601303E000D223BFA0C023BFA4C10BBFA04E -S31560012070C023BFA0151800809412A170C102800010 -S315600120800100000001000000C10BBFA0C10BBFA48D -S3156001209083A00520C12BBFA0D003BFA0808A2200E8 -S315600120A02280003B901020049010200015180080BB -S315600120B09412A140C5028000C902A008D102A00CF9 -S315600120C01318008092126170C70240008DA0894486 -S315600120D081A98AC801000000038000050100000093 -S315600120E0901020011080002A01000000C5028000C6 -S315600120F0C902A008D102A00C131800809212617067 -S31560012100CB0240008DA0894481A98AC801000000E4 -S315600121100380000501000000901020011080001C62 -S315600121200100000025180080A414A168C11C80006C -S31560012130C51C800080A000003280000685A008C012 -S3156001214081A80AC20100000013800003010000009B -S31560012150901020050100000025180080A414A168D4 -S31560012160C11C8000C51C800080A000000100000029 -S315600121703280000685A008C081A80AC2010000005D -S315600121801380000301000000901020070100000089 -S3156001219081C3E00801000000901020019544000011 -S315600121A09532A01E940AA00380A28000028000409E -S315600121B09010200080A2A0030280003D13180080C9 -S315600121C0921261F0C11A4000C51A6008FD026018DA -S315600121D095A0003E99A0003E9DA0003E170000C05C -S315600121E09612E078A182C0000100000001000000A3 -S315600121F00100000001000000010000000100000074 -S3156001220081A0002083A0002195A0002A99A0002C1E -S315600122109DA0002E170000C09612E07CA182C0002E -S315600122200100000001000000010000000100000043 -S31560012230010000000100000085A0002287A00023A4 -S31560012240A180000001000000010000000100000003 -S3156001225001000000010000000100000089A00842A1 -S31560012260A9A2883ED93A4000DD224000CD1A60100D -S31560012270D102600881A90A46010000000380000CB2 -S3156001228081AD0A2801000000038000099344000023 -S315600122909332601B920A60079010200080A2A00111 -S315600122A002800003902260079022600481C3E008E7 -S315600122B001000000C12BBFA081C3E008D003BFA00D -S315600122C0D023BFA081C3E008C10BBFA001000000FD -S315600122D09DE3BF6040001B17B0102000913A200AB1 -S315600122E0900A200380A220011280111101000000D2 -S315600122F07FFFBBBE9010200D190C40291B23CD1BFF -S315600123009410200096102000981320069A13609B63 -S31560012310D43FBFE0D43FBFC0D43FBFE87FFFFF4299 -S31560012320D83FBFF0900A3000032804009012208045 -S315600123308210600FC22200001B1800479002200421 -S315600123409A1363009A234008191000009B3B6002B0 -S31560012350032784009A13400C82106010C222200465 -S315600123607FFFFED4DA2200007FFFFFD61103E00073 -S315600123702D180080C025A1C07FFFFDD490102000DC -S31560012380809200091280000601000000C205A1C00A -S3156001239080A0600002800004010000007FFFBB98FE -S315600123A09010200B7FFFFDC990103FFA03300600A5 -S315600123B080A200011280000480A2600002800EDB10 -S315600123C0010000007FFFBB8E9010200B7FFFFDBFD9 -S315600123D09010201403100D0080A2000112800004E9 -S315600123E080A2600002800ECC010000007FFFBB84EA -S315600123F09010200B7FFFFDB5901020620310162010 -S3156001240080A200011280000480A2600002800EBDDD -S31560012410010000007FFFBB7A9010200B7FFFFDB3A8 -S31560012420901020050310280080A20001128000068A -S3156001243001000000C205A1C080A060000280000406 -S31560012440010000007FFFBB6E9010200B7FFFFF9D98 -S315600124501103C000111C00007FFFFDAC921020002B -S31560012460031FFFFF821063FF80A200011280000A32 -S315600124701B000070C205A1C09A13601F19000010ED -S315600124808208400D9813201080A0400C0280000540 -S31560012490113C00007FFFBB5A9010200C113C0000DC -S315600124A07FFFFD9A921020000320000080A20001A8 -S315600124B01280000A1B000070C205A1C09A13601F3A -S315600124C0190000108208400D9813201080A0400C5E -S315600124D002800004010000007FFFBB499010200CC0 -S315600124E0C025A1C0901020007FFFFD8892102000BA -S315600124F080A220001280000601000000C205A1C072 -S3156001250080A0600002800005110144007FFFBB3C92 -S315600125109010200C110144001328400090122302F0 -S315600125207FFFFD7A9212600180A220001280000670 -S3156001253001000000C205A1C080A0600022800005E4 -S315600125401111FFFF7FFFBB2E9010200C1111FFFFB1 -S315600125507FFFFD76901223FF0300007F821063FFE9 -S3156001256080A200011280000601000000C205A1C020 -S3156001257080A06000028000052F1800857FFFBB20C8 -S315600125809010200C2F1800857FFFFD60D01DE0C8DC -S31560012590031FFFFF821063FF80A200011280000A01 -S315600125A01B000070C205A1C09A13601F19000010BC -S315600125B08208400D9813201080A0400C028000050F -S315600125C0031800857FFFBB0E9010200C0318008551 -S315600125D0D01860D8C025A1C07FFFFD4C0100000066 -S315600125E00320000080A200011280000A1B00007017 -S315600125F0C205A1C09A13601F190000108208400D20 -S315600126009813201080A0400C0280000519180085DF -S315600126107FFFBAFB9010200C19180085C025A1C058 -S315600126207FFFFD3AD01B20B8031FFFFF821063FFB7 -S3156001263080A200011280000A1B000070C205A1C0C1 -S315600126409A13601F190000108208400D981320101C -S3156001265080A0400C02800005331800857FFFBAE830 -S315600126609010200C33180085C025A1C07FFFFD277F -S31560012670D01E60F0C205A1C08330600E820860037F -S3156001268080A0600202800004211800807FFFBADC0E -S315600126909010200C7FFFFF0B1103C000111158042D -S315600126A0C02421C07FFFFD299012223403102B0024 -S315600126B08210624680A2000112800005032000009C -S315600126C080A2400102800FC5010000007FFFBACCE5 -S315600126D09010200D113C02AF7FFFFD1C901220D19E -S315600126E0033180558210639A80A200011280000531 -S315600126F00308000080A2400102800FDB0100000098 -S315600127007FFFBABF9010200D1111FC007FFFFD17EE -S3156001271092102000031FE00080A200011280000ACF -S315600127201B000070C205A1C09A13601F190000103A -S315600127308208400D9813200880A0400C0280000595 -S3156001274011207C017FFFBAAE9010200D11207C0113 -S31560012750C025A1C0901220307FFFFD041300010047 -S315600127600320000080A200011280000A1B00007095 -S31560012770C205A1C09A13601F190000108208400D9E -S315600127809813200480A0400C028000040100000020 -S315600127907FFFBA9B9010200DC025A1C0901020002C -S315600127A07FFFFCF29210200080A2200012800006BA -S315600127B001000000C205A1C080A060000280000483 -S315600127C0010000007FFFBA8E9010200D7FFFFCE7AD -S315600127D0D01DE0C803180085DA0060C080A2000D34 -S315600127E01280000601000000C205A1C080A0600041 -S315600127F0028000051B1800857FFFBA819010200DAD -S315600128001B1800857FFFFCD9D01B60D0031FE00039 -S3156001281080A200011280000601000000C205A1C06D -S3156001282080A0600002800005031800857FFFBA74EE -S315600128309010200D031800857FFFFCCCD01860B87E -S3156001284003180085DA0060A880A2000D1280000AD4 -S315600128501B000070C205A1C09A13601F1900001009 -S315600128608208400D9813201080A0400C028000045D -S31560012870010000007FFFBA629010200DC025A1C043 -S315600128807FFFFCBAD01E60F0C205A1C08330600E26 -S315600128908208600380A06002028000042318008021 -S315600128A07FFFBA579010200D7FFFFE861103E0006F -S315600128B02108C6AF901420DEC02461C07FFFFCB33F -S315600128C0A01420DE80A20010128000060100000024 -S315600128D0C20461C080A06000028000052108C6AF05 -S315600128E07FFFBA479010200E2108C6AF7FFFFCB765 -S315600128F0901420DEA01420DE80A200101280000653 -S3156001290001000000C205A1C080A060002280000510 -S315600129101128C6AF7FFFBA3A9010200E1128C6AFB4 -S315600129207FFFFCAA901220DE0308C6AF821060DE2C -S3156001293080A200011280000601000000C205A1C04C -S3156001294080A06000228000051108C6AF7FFFBA2C07 -S315600129509010200E1108C6AF7FFFFC94901220DE06 -S315600129600328C6AF821060DE80A2000112800006D5 -S3156001297001000000C205A1C080A0600022800005A0 -S315600129801128C6AF7FFFBA1E9010200E1128C6AF60 -S315600129907FFFFC86901220DE0308C6AF821060DEE0 -S315600129A080A200011280000601000000C205A1C0DC -S315600129B080A0600002800004010000007FFFBA1061 -S315600129C09010200E7FFFFE3F1103E00011151BC022 -S315600129D01310C82115351BC01710C8219012210389 -S315600129E0921261419412A1037FFFFC809612E1412C -S315600129F080A220021280000601000000C205A1C06B -S31560012A0080A060000280000511351BC07FFFB9FC04 -S31560012A109010200F11351BC01310C82115151BC04E -S31560012A201710C82190122103921261419412A103D9 -S31560012A307FFFFC6E9612E14180A2200112800006A2 -S31560012A4001000000C205A1C080A0600002800005EF -S31560012A50901020007FFFB9EA9010200F901020009F -S31560012A6092102000152000007FFFFC609610200068 -S31560012A7080A220001280000601000000C205A1C0EC -S31560012A8080A0600002800005191800857FFFB9DC0F -S31560012A909010200F191800851B180085D01B20D0B7 -S31560012AA07FFFFC52D41B60D880A2200212800006F0 -S31560012AB001000000C205A1C080A06000028000057F -S31560012AC011151BC07FFFB9CE9010200F11151BC0C9 -S31560012AD01310C82115151BE81710C8219012210380 -S31560012AE0921261419412A1037FFFFC409612E1416B -S31560012AF080A220011280000601000000C205A1C06B -S31560012B0080A060000280000511151BE87FFFB9BC3B -S31560012B109010200F11151BE81310C82115151BC045 -S31560012B201710C82190122103921261419412A103D8 -S31560012B307FFFFC2E9612E14180A2200212800006E0 -S31560012B4001000000C205A1C080A0600002800005EE -S31560012B5011151BE87FFFB9AA9010200F11151BE80C -S31560012B601310C82190122103921261417FFFFC1F4D -S31560012B70D41DE0C880A22003128000060100000077 -S31560012B80C205A1C080A0600002800005031800850F -S31560012B907FFFB99B9010200F0318008511151BE864 -S31560012BA01310C82190122103921261417FFFFC0F1D -S31560012BB0D41860B880A220031280000A1B0000703E -S31560012BC0C205A1C09A13601F190000108208400D4A -S31560012BD09813201080A0400C0280000511151BE897 -S31560012BE07FFFB9879010200F11151BE81310C821BC -S31560012BF0C025A1C090122103921261417FFFFBFBA8 -S31560012C00D41E60F080A2200212800006010000003E -S31560012C10C205A1C080A060000280000515151BE8F1 -S31560012C207FFFB9779010200F15151BE81710C82183 -S31560012C30D01E60F09412A1037FFFFBEC9612E14176 -S31560012C4080A220011280000601000000C205A1C019 -S31560012C5080A060000280000515151BE87FFFB9683A -S31560012C609010200F15151BE81710C821D01DE0C85C -S31560012C709412A1037FFFFBDD9612E14180A220033E -S31560012C801280000601000000C205A1C080A060009C -S31560012C9002800005191800857FFFB9599010200F31 -S31560012CA01918008515151BE81710C821D01B20B807 -S31560012CB09412A1037FFFFBCD9612E14180A220030E -S31560012CC01280000A1B000070C205A1C09A13601F22 -S31560012CD0190000108208400D9813201080A0400C46 -S31560012CE00280000511151BC07FFFB9459010200FAA -S31560012CF011151BC01310C82115351BC01710C8212B -S31560012D00C025A1C090122103921261419412A103C0 -S31560012D107FFFFBC99612E14180A220021280000664 -S31560012D2001000000C205A1C080A06000028000050C -S31560012D3011351BC07FFFB9329010200F11351BC0B2 -S31560012D401310C82115151BC01710C8219012210335 -S31560012D50921261419412A1037FFFFBB79612E14182 -S31560012D6080A220011280000601000000C205A1C0F8 -S31560012D7080A0600002800005901020007FFFB920CE -S31560012D809010200F90102000921020001520000056 -S31560012D907FFFFBA99610200080A22000128000060A -S31560012DA001000000C205A1C080A06000028000058C -S31560012DB01B1800857FFFB9129010200F1B18008524 -S31560012DC003180085D01B60D07FFFFB9BD41860D8A9 -S31560012DD080A220021280000601000000C205A1C087 -S31560012DE080A060000280000511151BC07FFFB90439 -S31560012DF09010200F11151BC01310C82115151BE863 -S31560012E001710C82190122103921261419412A103F5 -S31560012E107FFFFB899612E14180A2200112800006A4 -S31560012E2001000000C205A1C080A06000028000050B -S31560012E3011151BE87FFFB8F29010200F11151BE8E2 -S31560012E401310C82115151BC01710C8219012210334 -S31560012E50921261419412A1037FFFFB779612E141C1 -S31560012E6080A220021280000601000000C205A1C0F6 -S31560012E7080A060000280000511151BE87FFFB8E0A5 -S31560012E809010200F11151BE81310C8219012210311 -S31560012E90921261417FFFFB68D41DE0C880A22003C6 -S31560012EA01280000A1B000070C205A1C09A13601F40 -S31560012EB0190000108208400D9813201080A0400C64 -S31560012EC002800005191800857FFFB8CD9010200F8C -S31560012ED01918008511151BE81310C82190122103DA -S31560012EE0921261417FFFFB54D41B20B880A220035C -S31560012EF01280000A1B000070C205A1C09A13601FF0 -S31560012F00190000108208400D9813201080A0400C13 -S31560012F100280000511151BE87FFFB8B99010200FDC -S31560012F2011151BE81310C821C025A1C090122103F9 -S31560012F30921261417FFFFB40D41E60F080A22002A5 -S31560012F401280000601000000C205A1C080A06000D9 -S31560012F500280000515151BE87FFFB8A99010200FA8 -S31560012F6015151BE81710C821D01E60F09412A10335 -S31560012F707FFFFB319612E14180A22001128000069B -S31560012F8001000000C205A1C080A0600002800005AA -S31560012F9015151BE87FFFB89A9010200F15151BE8D1 -S31560012FA01710C821D01DE0C89412A1037FFFFB2230 -S31560012FB09612E14180A220031280000A1B00007074 -S31560012FC0C205A1C09A13601F190000108208400D46 -S31560012FD09813201080A0400C028000051B18008504 -S31560012FE07FFFB8879010200F1B18008515151BE809 -S31560012FF01710C821D01B60B89412A1037FFFFB0E86 -S315600130009612E14180A220031280000A1B00007023 -S31560013010C205A1C09A13601F190000108208400DF5 -S315600130209813201080A0400C02800005110048EA28 -S315600130307FFFB8739010200F110048EA13048D15B5 -S31560013040C025A1C0901223CD7FFFFB0C921262783E -S3156001305080A220011280000601000000C205A1C005 -S3156001306080A0600002800005110048EA7FFFB86415 -S315600130709010200F110048EA13048D15901223CD8C -S315600130807FFFFB0F9212627880A2200112800006F8 -S3156001309001000000C205A1C080A06000028000049A -S315600130A0010000007FFFB8569010200FC025A1C017 -S315600130B07FFFFC841103C000291801449007BFF00B -S315600130C09207BFE87FFFFA3894152120C207BFF047 -S315600130D0DA05212080A0400D12800007821521208B -S315600130E0DA006004C207BFF480A0400D02800D596A -S315600130F0010000007FFFB84290102010371800854C -S315600131009007BFF09216E0E07FFFFA279415212021 -S31560013110C206E0E0DA05212080A340018215212064 -S31560013120128000079816E0E0DA006004C20320040A -S3156001313080A3400102800D42010000007FFFB8308C -S31560013140901020109007BFF09215E0C87FFFFA1625 -S3156001315094152120C205E0C8DA05212080A340012B -S3156001316082152120128000079815E0C8DA006004F4 -S31560013170C203200480A3400102800D2C01000000DF -S315600131807FFFB81F9010201003180085921060B859 -S315600131909007BFF07FFFFA04941521201B00007091 -S315600131A0C205A1C09A13601F190000108208400D64 -S315600131B09813201080A0400C02800004211801445D -S315600131C07FFFB80F9010201003180080C02061C0E7 -S315600131D07FFFFC3C90102000131800859414212079 -S315600131E0921260B87FFFF9F09007BFF03918008539 -S315600131F0C20720B0DA04212080A340019414212063 -S3156001320012800007821720B0DA02A004C2006004AF -S3156001321080A3400102800004010000007FFFB7F82F -S31560013220901020107FFFFC271103C0009007BFF0AC -S31560013230921660F07FFFF9DC94152120C205A1C0CA -S315600132408330600E8208600380A060022118014409 -S3156001325002800004231800807FFFB7E990102010D8 -S3156001326094142120C02461C09007BFE87FFFF9CE86 -S315600132709207BFF0DA042120C207BFF080A34001A4 -S315600132801280000794142120DA02A004C207BFF459 -S3156001329080A3400102800D21010000007FFFB7D8A5 -S315600132A0901020109007BFE89216E0E07FFFF9BE0C -S315600132B094152120C206E0E0DA05212080A34001B1 -S315600132C082152120128000079816E0E0DA0060047A -S315600132D0C203200480A3400102800D0B010000009F -S315600132E07FFFB7C7901020109007BFE89215E0C81E -S315600132F07FFFF9AD94152120C205E0C8DA052120CA -S3156001330080A3400182152120128000079815E0C82C -S31560013310DA006004C203200480A3400102800CF538 -S31560013320010000007FFFB7B69010201019180085C4 -S31560013330921320B89007BFE87FFFF99B941521206F -S315600133401B000070C205A1C09A13601F190000100E -S315600133508208400D9813201080A0400C0280000462 -S31560013360211801447FFFB7A6901020107FFFFBD57F -S31560013370901020001318008594142120921260B8D1 -S315600133807FFFF9899007BFE8C20720B0DA042120E0 -S3156001339080A340019414212012800007821720B077 -S315600133A0DA02A004C200600480A340010280000426 -S315600133B0010000007FFFB792901020107FFFFBC1D4 -S315600133C01103C0009007BFE8921660F07FFFF9769F -S315600133D094152120C205A1C08330600E8208600366 -S315600133E080A0600221180144028000042318008035 -S315600133F07FFFB7839010201094142120C02461C0F0 -S315600134009016E0E07FFFF9689207BFF0C206E0E040 -S31560013410DA04212080A34001941421201280000740 -S315600134208216E0E0DA02A004C200600480A34001D3 -S3156001343002800CAB010000007FFFB7719010201075 -S315600134409016E0E09207BFE87FFFF95794152120B7 -S31560013450C206E0E0DA05212080A340018215212021 -S31560013460128000079816E0E0DA006004C2032004C7 -S3156001347080A3400102800C95010000007FFFB760C8 -S31560013480901020101B180085901360D092100008D0 -S315600134907FFFF9459415212019180085C20320D0B4 -S315600134A0DA05212080A340018215212012800007C0 -S315600134B0981320D0DA006004C203200480A340017F -S315600134C002800C7D010000007FFFB74D9010201037 -S315600134D01B180085901360D8921000087FFFF9329F -S315600134E09415212019180085C20320D8DA052120F8 -S315600134F080A340018215212012800007981320D8ED -S31560013500DA006004C203200480A3400102800C65D6 -S31560013510010000007FFFB73A901020101B1800854C -S3156001352003180085901360D8921060D07FFFF91E52 -S31560013530941521201B000070C205A1C09A13601F5B -S31560013540190000108208400D9813201080A0400CCD -S3156001355002800004211801447FFFB72990102010D2 -S315600135607FFFFB5890102000111800851318008505 -S3156001357094142120901220D87FFFF90B921260D00B -S31560013580C20720B0DA04212080A3400194142120CF -S3156001359012800007821720B0DA02A004C20060041C -S315600135A080A3400102800004010000007FFFB71480 -S315600135B0901020107FFFFB431103C000191800858E -S315600135C01B180085901320D0921360D8C025A1C026 -S315600135D07FFFF8F594152120C20720B0DA05212076 -S315600135E080A340018215212012800007981720B020 -S315600135F0DA006004C203200480A3400102800C1F2C -S315600136001B0000707FFFB6FE901020109016E0E060 -S31560013610921660F07FFFF8E494152120C205A1C0DF -S315600136208330600E8208600380A060022118014425 -S3156001363002800004231800807FFFB6F190102010ED -S3156001364094142120C02461C09015E0C87FFFF8D68C -S315600136509207BFF0C205E0C8DA04212080A34001C9 -S3156001366094142120128000078215E0C8DA02A004B2 -S31560013670C200600480A3400102800B9C010000002F -S315600136807FFFB6DF901020109015E0C89207BFE863 -S315600136907FFFF8C594152120C205E0C8DA0521200F -S315600136A080A3400182152120128000079815E0C889 -S315600136B0DA006004C203200480A3400102800B8605 -S315600136C0010000007FFFB6CE901020109015E0C873 -S315600136D09216E0E07FFFF8B494152120C205E0C898 -S315600136E0DA05212080A3400182152120128000077E -S315600136F09815E0C8DA006004C203200480A3400183 -S3156001370002800B70010000007FFFB6BD9010201093 -S315600137109015E0C8921000087FFFF8A39415212048 -S31560013720C205E0C8DA05212080A340018215212067 -S31560013730128000079815E0C8DA006004C20320040D -S3156001374080A3400102800B5A010000007FFFB6ACE6 -S315600137509010201003180085921060B89015E0C88B -S315600137607FFFF8919415212003000070A610601F59 -S31560013770DA05A1C0030000109A0B4013AA1060106D -S3156001378080A3401523180085251801440280000492 -S31560013790211800807FFFB69A90102010C02421C0A6 -S315600137A0901460B89207BFF07FFFF87F9414A12050 -S315600137B0C20421C08208401380A040150280000423 -S315600137C0010000007FFFB68E90102010C02421C03A -S315600137D0901460B89207BFE87FFFF8739414A12034 -S315600137E0C20421C08208401380A0401502800004F3 -S315600137F0010000007FFFB68290102010C02421C016 -S31560013800901460B89216E0E07FFFF8679414A120E7 -S31560013810C20421C08208401380A0401502800005C1 -S31560013820131800857FFFB676901020101318008557 -S31560013830C02421C0921260C8901460B87FFFF85A04 -S315600138409414A120C20421C08208401380A04015AF -S3156001385002800005901460B87FFFB6699010201051 -S31560013860901460B8C02421C0921000087FFFF84E02 -S315600138709414A120C20421C08208401380A040157F -S3156001388002800004010000007FFFB65D90102010E9 -S31560013890C02421C0901460B8921660F07FFFF84290 -S315600138A09414A120C20421C08330600E8208600393 -S315600138B080A06002228000051103C0007FFFB65020 -S315600138C0901020101103C0007FFFFA7E3B18008420 -S315600138D0A2176210C02421C0AA14A120A4046010FA -S315600138E0A0102000A6046008B010200C92040013FA -S315600138F0900400117FFFF82C94152120DA048010C2 -S3156001390098040012C2052120A004201880A340015A -S315600139101280000790102010DA032004C2056004AB -S3156001392080A3400122800005B0863FFF7FFFB63449 -S3156001393001000000B0863FFF1CBFFFEE920400133A -S31560013940C205A1C080A06000128009890100000043 -S315600139501118008490122348920220087FFFF81202 -S315600139609415212098176210C2052120DA03214897 -S3156001397080A340011280000782152120DA03214CC1 -S31560013980C200600480A3400122800AAB0318008054 -S315600139907FFFB61B901020101118008490122360CF -S315600139A0920220087FFFF800941521209817621073 -S315600139B0C2052120DA03216080A34001128000073D -S315600139C082152120DA032164C200600480A34001CC -S315600139D002800AA41B0000707FFFB60990102010B8 -S315600139E01118008490122378920220087FFFF7EE67 -S315600139F09415212098176210C2052120DA032178D7 -S31560013A0080A340011280000782152120DA03217C00 -S31560013A10C200600480A3400102800A9C1B00007002 -S31560013A207FFFB5F790102010C025A1C011100000CE -S31560013A3092102000150FFC007FFFF8B2961020004F -S31560013A40030FFC0080A200011280000880A26000C2 -S31560013A501280000601000000C205A1C080A06000BE -S31560013A6002800005111000007FFFB5E5901020105F -S31560013A701110000092102000152FFC007FFFF8A1A5 -S31560013A80961020000310020080A200011280000837 -S31560013A9080A260001280000601000000C205A1C07C -S31560013AA080A0600002800005113000007FFFB5D460 -S31560013AB0901020101130000092102000150FFC00AC -S31560013AC07FFFF890961020000330020080A200016B -S31560013AD01280000880A260001280000601000000CA -S31560013AE0C205A1C080A060000280000511300000FF -S31560013AF07FFFB5C390102010113000009210200096 -S31560013B00152FFC007FFFF87F96102000032FFC0025 -S31560013B1080A200011280000880A260001280000667 -S31560013B2001000000C205A1C080A0600002800005FE -S31560013B30111000007FFFB5B2901020101110000027 -S31560013B407FFFF87A130FE0000310100080A20001D6 -S31560013B501280000601000000C205A1C080A06000BD -S31560013B6002800005111000007FFFB5A5901020109E -S31560013B70111000007FFFF877130FE000030FE000DC -S31560013B8080A200011280000601000000C205A1C0EA -S31560013B9080A0600022800005191800857FFFB59816 -S31560013BA09010201019180085921320E8C025A1C035 -S31560013BB09007BFF07FFFF78F9415212019180085B4 -S31560013BC0C20320D8DA05212080A340018215212075 -S31560013BD012800007981320D8DA006004C20320041B -S31560013BE080A3400102800A461B0000707FFFB584F6 -S31560013BF0901020111B180085921360D0C025A1C0BA -S31560013C009007BFF07FFFF77B94152120C207BFE0C5 -S31560013C10DA05212080A34001128000078215212048 -S31560013C20DA006004C207BFE480A3400102800A3E55 -S31560013C30010000007FFFB572901020119007BFF060 -S31560013C409215E0C87FFFF76B94152120C205E0C885 -S31560013C50DA05212080A34001821521201280000708 -S31560013C609815E0C8DA006004C203200480A340010D -S31560013C7002800A32010000007FFFB56190102011B9 -S31560013C8003180085921060B89007BFF07FFFF7595F -S31560013C9094152120C20720B0DA05212080A34001B6 -S31560013CA08215212012800007981720B0DA0060047F -S31560013CB0C203200480A3400102800A251B00007014 -S31560013CC07FFFB54F901020119007BFF0921660F0FC -S31560013CD07FFFF74894152120C205A1C01B00007023 -S31560013CE08208400D1900002080A0400C2118014473 -S31560013CF002800004231800807FFFB54190102011D7 -S31560013D0094142120C02461C09007BFE87FFFF73972 -S31560013D109207BFF0DA042120C207BFE880A3400101 -S31560013D201280000794142120DA02A004C207BFECB6 -S31560013D3080A3400102800A10010000007FFFB530B8 -S31560013D409010201119180085901320E89207BFE0A2 -S31560013D507FFFF72894152120C20720B0DA052120BC -S31560013D6080A340018215212012800007981720B098 -S31560013D70DA006004C203200480A3400102800A03C2 -S31560013D801B0000707FFFB51E901020111B18008567 -S31560013D9003180085901360E8921060D0C025A1C019 -S31560013DA07FFFF7149415212019180085C20320E8B6 -S31560013DB0DA05212080A340018215212012800007A7 -S31560013DC0981320E8DA006004C203200480A340014E -S31560013DD0028009F8010000007FFFB50990102011EB -S31560013DE09007BFE89215E0C87FFFF702941521207E -S31560013DF0C205E0C8DA05212080A340018215212091 -S31560013E00128000079815E0C8DA006004C203200436 -S31560013E1080A34001028009EC010000007FFFB4F835 -S31560013E20901020071B180085921360B89007BFE8B1 -S31560013E307FFFF6F09415212025000070D805A1C0FA -S31560013E409A14A01F03000010980B000D82106010D9 -S31560013E5080A3000121180144028000042318008018 -S31560013E607FFFB4E790102011C02461C09007BFE8BE -S31560013E70921660F07FFFF6DF94142120C20461C0C0 -S31560013E80820840121B00002080A0400D22800005A0 -S31560013E90031800857FFFB4DA90102011031800859E -S31560013EA0901060D894142120C02461C07FFFF6D1A0 -S31560013EB09207BFF019180085C20320D8DA042120C1 -S31560013EC080A340019414212012800007821320D818 -S31560013ED0DA02A004C200600480A34001028008B82F -S31560013EE0010000007FFFB4C6901020111B180085E9 -S31560013EF003180085901360D8921060E87FFFF6BDC5 -S31560013F009415212019180085C20320D0DA052120D5 -S31560013F1080A340018215212012800007981320D0CA -S31560013F20DA006004C203200480A34001028008A96C -S31560013F30010000007FFFB4B2901020119016E0E0FE -S31560013F40921000087FFFF6AB94152120C20720B0BE -S31560013F50DA05212080A34001821521201280000705 -S31560013F60981720B0DA006004C203200480A34001E0 -S31560013F700280089D1B0000707FFFB4A19010201184 -S31560013F80C025A1C09016E0E09215E0C87FFFF699C2 -S31560013F9094152120C205E0C8DA05212080A34001DD -S31560013FA082152120128000079815E0C8DA006004A6 -S31560013FB0C203200480A3400102800894010000002E -S31560013FC07FFFB48F901020111B180085921360B883 -S31560013FD09016E0E07FFFF68794152120C20720B096 -S31560013FE0DA05212080A34001821521201280000775 -S31560013FF0981720B0DA006004C203200480A3400150 -S31560014000028008871B0000707FFFB47D901020112D -S31560014010C025A1C09016E0E0921660F07FFFF675AC -S3156001402094152120C205A1C01B0000708208400DB5 -S315600140301900002080A0400C231800800280000433 -S31560014040211801447FFFB46E901020119414212031 -S31560014050C02461C09015E0C87FFFF6669207BFF085 -S31560014060C205E0C8DA04212080A34001941421200E -S31560014070128000078215E0C8DA02A004C20060045B -S3156001408080A340010280086F010000007FFFB45CDD -S31560014090901020119015E0C89207BFE87FFFF65592 -S315600140A094152120C205E0C8DA05212080A34001CC -S315600140B082152120128000079815E0C8DA00600495 -S315600140C0C203200480A3400102800863010000004E -S315600140D07FFFB44B901020119015E0C89216E0E076 -S315600140E07FFFF64494152120C205E0C8DA05212038 -S315600140F080A3400182152120128000079815E0C82F -S31560014100DA006004C203200480A3400102800857DC -S31560014110010000007FFFB43A901020119015E0C8AD -S31560014120921000087FFFF63394152120C205E0C87E -S31560014130DA05212080A34001821521201280000723 -S315600141409815E0C8DA006004C203200480A3400128 -S31560014150028007F3010000007FFFB429901020114F -S3156001416003180085921060B89015E0C87FFFF621AC -S3156001417094152120C20720B0DA05212080A34001D1 -S315600141808215212012800007981720B0DA0060049A -S31560014190C203200480A34001028007E61B00007071 -S315600141A07FFFB417901020119015E0C8921660F049 -S315600141B07FFFF61094152120C205A1C03100007061 -S315600141C0820840183B00002080A0401D231801444E -S315600141D002800004211800807FFFB409901020112D -S315600141E019180085901320B89207BFF07FFFF6017A -S315600141F094146120C20421C0AA16201F3500001044 -S3156001420082084015A616A01080A040130280000403 -S31560014210251800857FFFB3FA90102011C02421C0B4 -S315600142209014A0B89207BFE87FFFF5F2941461205D -S31560014230C20421C08208401580A040130280000498 -S31560014240010000007FFFB3EE90102011C02421C051 -S315600142509014A0B89216E0E07FFFF5E69414612011 -S31560014260C20421C08208401580A040130280000567 -S31560014270131800857FFFB3E2901020111318008593 -S31560014280C02421C0921260C89014A0B87FFFF5D9EE -S3156001429094146120C20421C08208401580A0401395 -S315600142A0028000059014A0B87FFFB3D5901020114D -S315600142B09014A0B8C02421C0921000087FFFF5CDEC -S315600142C094146120C20421C08208401580A0401365 -S315600142D002800005131800857FFFB3C99010201175 -S315600142E013180085C02421C09014A0B8921260F002 -S315600142F07FFFF5C094146120C20421C08208401872 -S3156001430080A0401D2280000515203E837FFFB3BC3F -S315600143109010201115203E83170021C89412A3FF27 -S315600143209612E3A1191FC0001B00C0009A1360B06A -S3156001433098132102D43FBFD0D83FBFD8C02421C033 -S315600143409007BFD89207BFD07FFFF5AA9407BFC871 -S31560014350DA07BFC8033FFC0080A340010280070B58 -S31560014360A207BFC87FFFB3A69010201115108683E0 -S31560014370170021C89412A3FF9612E3A11900400009 -S315600143801B00C0009A1360B098132102D43FBFD0BE -S31560014390D83FBFD8C025A1C09007BFD89207BFD06C -S315600143A07FFFF5949407BFC8DA046004C207BFC8EB -S315600143B08090400D1280000A1B000070C205A1C0EA -S315600143C09A13601F190000108208400D981320048B -S315600143D080A0400C22800005150FFC007FFFB3888A -S315600143E090102011150FFC00170281D89412A0407D -S315600143F09612E10C9A102010190006AFD43FBFD077 -S31560014400D83FBFD8C025A1C09007BFD89207BFD0FB -S315600144107FFFF5789407BFC8030006AEDA07BFC809 -S315600144208210639580A340011280000703003A9AC7 -S31560014430DA0460048210630F80A3400102800733AF -S31560014440010000007FFFB36E90102011150FFFFF72 -S31560014450170281D89412A3409612E10C9A1020108B -S31560014460190006AFD43FBFD0D83FBFD8C025A1C081 -S315600144709007BFD89207BFD07FFFF55E9407BFC88C -S31560014480DA046004C207BFC88090400D1280000A3A -S315600144901B000070C205A1C09A13601F19000010AD -S315600144A08208400D9813200480A0400C028000040D -S315600144B0010000007FFFB35290102011C025A1C0FA -S315600144C0111088007FFFF63713100100031066C9CB -S315600144D0821062CA80A200011280000601000000FB -S315600144E0C205A1C080A06000028000051111BBFE5B -S315600144F07FFFB343901020111111BBFE901223FF71 -S315600145007FFFF628130C7040031527CA8210611EBF -S3156001451080A200011280000601000000C205A1C050 -S3156001452080A06000028000051310C7FF7FFFB334CF -S31560014530901020111310C7FF921263FC7FFFF619CA -S31560014540111E607E031D73FC8210633880A2000118 -S315600145501280000601000000C205A1C080A06000B3 -S3156001456002800005130FE0007FFFB3259010201134 -S31560014570130FE000921260017FFFF60A110020001E -S3156001458080A220001280000A1B000070C205A1C033 -S315600145909A13601F190000108208400D98132004B9 -S315600145A080A0400C02800005110FE0007FFFB3146C -S315600145B090102011110FE000C025A1C07FFFF5F911 -S315600145C092100008030FE00080A20001128000062D -S315600145D001000000C205A1C080A060000280000544 -S315600145E0130FE0007FFFB30690102011130FE00058 -S315600145F0921260017FFFF5EB1100200080A220007E -S315600146001280000A1B000070C205A1C09A13601FC8 -S31560014610190000108208400D9813200480A0400CF8 -S31560014620028000051B1800857FFFB2F590102011EE -S315600146301B180085921360E8C025A1C09007BFF0E2 -S315600146407FFFF4DE9415212019180085C20320E846 -S31560014650DA05212080A340018215212012800007FE -S31560014660981320E8DA006004C203200480A34001A5 -S31560014670028006BA010000007FFFB2E190102012AD -S315600146801B180085921360D09007BFF07FFFF4CBB3 -S315600146909415212019180085C20320D0DA0521203E -S315600146A080A340018215212012800007981320D033 -S315600146B0DA006004C203200480A34001028006ACD4 -S315600146C0010000007FFFB2CE901020129007BFF06C -S315600146D09215E0C87FFFF4B994152120C205E0C8A0 -S315600146E0DA05212080A3400182152120128000076E -S315600146F09815E0C8DA006004C203200480A3400173 -S31560014700028006A0010000007FFFB2BD901020125A -S315600147101B180085921360B89007BFF07FFFF4A75E -S3156001472094152120C20720B0DA05212080A340011B -S315600147308215212012800007981720B0DA006004E4 -S31560014740C203200480A34001028006931B0000700F -S315600147507FFFB2AB901020129007BFF0921660F007 -S315600147607FFFF49694152120C205A1C01B0000703D -S315600147708208400D1900002080A0400C21180144D8 -S3156001478002800004231800807FFFB29D90102012E2 -S3156001479094142120C02461C09007BFE87FFFF4878D -S315600147A09207BFF0DA042120C207BFE880A3400167 -S315600147B01280000794142120DA02A004C207BFEC1C -S315600147C080A34001028006DE010000007FFFB28CFB -S315600147D0901020120318008519180085901060E862 -S315600147E0921320D87FFFF47594152120C20720B05B -S315600147F0DA05212080A3400182152120128000075D -S31560014800981720B0DA006004C203200480A3400137 -S31560014810028006D01B0000707FFFB27990102012D3 -S31560014820C025A1C09007BFE89215E0C87FFFF46379 -S3156001483094152120C205E0C8DA05212080A3400134 -S3156001484082152120128000079815E0C8DA006004FD -S31560014850C203200480A34001028006C70100000054 -S315600148607FFFB267901024991B180085921360B878 -S315600148709007BFE87FFFF45194152120C20720B04D -S31560014880DA05212080A340018215212012800007CC -S31560014890981720B0DA006004C203200480A34001A7 -S315600148A0028006BA1B0000707FFFB255901020127D -S315600148B09007BFE8921660F07FFFF44094152120BF -S315600148C0C205A1C01B0000708208400D19000020BE -S315600148D080A0400C21180144028000042318008046 -S315600148E07FFFB2479010201294142120C02461C02A -S315600148F09016E0E07FFFF4319207BFF0C206E0E078 -S31560014900DA04212080A3400194142120128000073B -S315600149108216E0E0DA02A004C200600480A34001CE -S31560014920028006A4010000007FFFB23590102012BC -S315600149309016E0E09207BFE87FFFF42094152120EE -S31560014940C20720B0DA05212080A34001821521200B -S3156001495012800007981720B0DA006004C2032004B1 -S3156001496080A34001028006981B0000707FFFB2247D -S3156001497090102012C025A1C09016E0E09215E0C803 -S315600149807FFFF40E94152120C205E0C8DA052120C7 -S3156001499080A3400182152120128000079815E0C886 -S315600149A0DA006004C203200480A340010280068FFE -S315600149B0010000007FFFB2129010201203180085DB -S315600149C0921060B89016E0E07FFFF3FC9415212009 -S315600149D0C20720B0DA05212080A34001821521207B -S315600149E012800007981720B0DA006004C203200421 -S315600149F080A34001028006821B0000707FFFB20027 -S31560014A00901020129016E0E0921660F07FFFF3EBB3 -S31560014A1094152120C205A1C01B0000708208400DBB -S31560014A201900002080A0400C211801440280000476 -S31560014A30231800807FFFB1F2901020129414212078 -S31560014A40C02461C09015E0C87FFFF3DC9207BFF018 -S31560014A50C205E0C8DA04212080A340019414212014 -S31560014A60128000078215E0C8DA02A004C200600461 -S31560014A7080A340010280061E010000007FFFB1E0B5 -S31560014A80901020129015E0C89207BFE87FFFF3CB24 -S31560014A9094152120C205E0C8DA05212080A34001D2 -S31560014AA082152120128000079815E0C8DA0060049B -S31560014AB0C203200480A340010280061201000000A7 -S31560014AC07FFFB1CF901020129015E0C89216E0E0FA -S31560014AD07FFFF3BA94152120C205E0C8DA052120CB -S31560014AE080A3400182152120128000079815E0C835 -S31560014AF0DA006004C203200480A340010280060636 -S31560014B00010000007FFFB1BE901020129015E0C831 -S31560014B10921000087FFFF3A994152120C205E0C811 -S31560014B20DA05212080A34001821521201280000729 -S31560014B309815E0C8DA006004C203200480A340012E -S31560014B40028005FA010000007FFFB1AD90102012CE -S31560014B50191800859015E0C8921320B87FFFF39766 -S31560014B609415212003000070A610601FDA05A1C00C -S31560014B70030000109A0B4013AA10601080A3401521 -S31560014B80251800852318014402800004211800803D -S31560014B907FFFB19B90102012C02421C09014A0B851 -S31560014BA09207BFF07FFFF38594146120C20421C090 -S31560014BB08208401380A040150280000401000000B5 -S31560014BC07FFFB18F90102012C02421C09014A0B82D -S31560014BD09207BFE87FFFF37994146120C20421C074 -S31560014BE08208401380A04015028000040100000085 -S31560014BF07FFFB18390102012C02421C09014A0B809 -S31560014C009216E0E07FFFF36D94146120C20421C027 -S31560014C108208401380A040150280000513180085A4 -S31560014C207FFFB1779010201213180085C02421C030 -S31560014C30921260C89014A0B87FFFF360941461204B -S31560014C40C20421C08208401380A04015028000057D -S31560014C509014A0B87FFFB16A901020129014A0B88A -S31560014C60C02421C0921000087FFFF3549414612080 -S31560014C70C20421C08208401380A04015028000044E -S31560014C80010000007FFFB15E90102012C02421C098 -S31560014C909014A0B8921660F07FFFF34894146120D7 -S31560014CA0C20421C08330600E8208600380A0600266 -S31560014CB0228000051103C0007FFFB15190102012C0 -S31560014CC01103C0007FFFF57F3B180084A417639032 -S31560014CD0AA146120C02421C0A604A008A210200045 -S31560014CE0B0102005A00440129204401394152120AF -S31560014CF07FFFF33290100010DA042010C2052120E4 -S31560014D00A204601880A3400112800007901020124F -S31560014D10DA042014C205600480A340010280047491 -S31560014D20010000007FFFB13601000000B0863FFF41 -S31560014D303CBFFFEEA004401211180085901220209E -S31560014D40920220087FFFF31D941521209817639026 -S31560014D50C2052120DA0320A080A34001128000074A -S31560014D6082152120DA0320A4C200600480A34001D9 -S31560014D70028004DC1B0000707FFFB12190102012BD -S31560014D801118008590122038C025A1C09202200812 -S31560014D907FFFF30A9415212098176390C20521209D -S31560014DA0DA0320B880A34001128000078215212012 -S31560014DB0DA0320BCC200600480A340010280047F44 -S31560014DC01B0000707FFFB10E901020121118008534 -S31560014DD090122050C025A1C0920220087FFFF2F7F1 -S31560014DE09415212098176390C2052120DA0320D0FB -S31560014DF080A340011280000782152120DA0320D4A6 -S31560014E00C200600480A34001028004761B0000702A -S31560014E107FFFB0FB90102012111800859012206858 -S31560014E20C025A1C0920220087FFFF2E494152120DB -S31560014E3098176390C2052120DA0320E880A3400118 -S31560014E401280000782152120DA0320ECC20060047B -S31560014E5080A340010280046D1B0000707FFFB0E8F3 -S31560014E60901020121118008590122080C025A1C0D3 -S31560014E70920220087FFFF2D1941521209817639042 -S31560014E80C2052120DA03210080A3400112800007B8 -S31560014E9082152120DA032104C200600480A3400147 -S31560014EA0028004641B0000707FFFB0D59010201251 -S31560014EB0C025A1C0111010007FFFF3B013100000D0 -S31560014EC00310300080A2000112800006010000007C -S31560014ED0C205A1C080A0600002800005111FE0002C -S31560014EE07FFFB0C790102012111FE0001310000061 -S31560014EF07FFFF2B794152120031FFC00DA052120FC -S31560014F0080A340011280000A82152120C20060043C -S31560014F1080A060001280000601000000C205A1C0E9 -S31560014F2080A0600002800005111FE0007FFFB0B421 -S31560014F309010201B111FE000133000007FFFF2A4C8 -S31560014F4094152120033FFC00DA05212080A340014E -S31560014F501280000A82152120C200600480A06000D0 -S31560014F601280000601000000C205A1C080A0600099 -S31560014F7002800005111000007FFFB0A19010201C77 -S31560014F8011100000921020107FFFF29194152120DC -S31560014F90C205A1C01B0000708208400D19000020E7 -S31560014FA080A0400C2118014402800004231800806F -S31560014FB07FFFB0939010201D94142120C02461C0FE -S31560014FC0110020007FFFF282130FC000DA04212056 -S31560014FD0030E000080A340011280000A9414212070 -S31560014FE0C202A00480A060001280000601000000D9 -S31560014FF0C20461C080A0600002800005111FDFFF4E -S315600150007FFFB07F9010201E111FDFFF901223FFDC -S31560015010131000007FFFF26E941521200311FFFF2C -S31560015020821063FFDA05212080A340011280000708 -S3156001503082152120DA0060040338000080A3400154 -S3156001504002800405010000007FFFB06D9010201FF3 -S31560015050111FD000130FF0007FFFF25D9415212020 -S315600150600311FC80DA05212080A340011280000A29 -S3156001507082152120C200600480A0600012800006B3 -S3156001508001000000C205A1C080A060000280000589 -S31560015090111FDFFF7FFFB05A90102021111FDFFF24 -S315600150A0901223FF921000087FFFF2499415212088 -S315600150B00313FBFF821063FFDA05212080A3400101 -S315600150C01280000882152120DA0060040330000096 -S315600150D08210602080A34001028003E40100000089 -S315600150E07FFFB047901020207FFFF4761103C00048 -S315600150F0C025A1C09007BFE07FFFF2449215212031 -S31560015100C207BFE0DA05212080A3400112800007B3 -S3156001511082152120DA006004C207BFE480A3400142 -S31560015120028003D7010000007FFFB0359010201385 -S315600151301B180085901360E87FFFF23492152120D9 -S3156001514003180085DA0060E8C205212080A0400DC1 -S31560015150191800858215212012800007901320E816 -S31560015160DA006004C202200480A34001028003C900 -S31560015170010000007FFFB022901020131B180085EC -S31560015180901360D07FFFF2219215212019180085B6 -S31560015190C20320D0DA05212080A340018215212097 -S315600151A012800007981320D0DA006004C20320043D -S315600151B080A34001028003BC010000007FFFB010A4 -S315600151C0901020131B180085901360D87FFFF20F93 -S315600151D092152120C20720B0DA05212080A3400163 -S315600151E08215212012800007981720B0DA0060042A -S315600151F0C203200480A34001028003B01B0000703B -S315600152007FFFAFFF9010201303180085901060B8E0 -S31560015210C025A1C07FFFF1FD92152120C20720B0F4 -S31560015220DA05212080A34001821521201280000722 -S31560015230981720B0DA006004C203200480A34001FD -S315600152400280040F1B0000707FFFAFED90102013EA -S31560015250C025A1C09015E0C87FFFF1EC9215212011 -S31560015260C2052120DA05E0C880A0400D8215212003 -S31560015270128000079015E0C8DA006004C2022004BB -S3156001528080A3400102800407010000007FFFAFDCBC -S3156001529090102013170C00089A10200019100C00AA -S315600152A015300F789612E001D83FBFF0D43FBFC0EA -S315600152B09007BFF07FFFF1D59215212003100400FE -S315600152C0DA05212080A340011280000A821521207F -S315600152D0C200600480A06000128000060100000028 -S315600152E0C205A1C080A06000028000059007BFC012 -S315600152F07FFFAFC3901020139007BFC07FFFF1C33C -S3156001530092152120C2052120DA0720B080A0400D28 -S315600153108215212012800007981720B0DA006004F8 -S31560015320C203200480A34001028003E31B000070D6 -S315600153307FFFAFB390102013901660F07FFFF1B33B -S3156001534092152120C205A1C08330600E82086003D8 -S3156001535080A0600202800004211800807FFFAFA850 -S3156001536090102013C02421C07FFFF2981111F20022 -S315600153700310E80080A2000112800006010000000F -S31560015380C20421C080A06000028000040100000008 -S315600153907FFFAF9B901020137FFFF3CA11100000AF -S315600153A01101F5897FFFF289901221E20308E96410 -S315600153B080A200011280000601000000C205A1C0A2 -S315600153C080A0600002800004010000007FFFAF8CB6 -S315600153D0901020237FFFF27D1112A2080311410074 -S315600153E080A200011280000601000000C205A1C072 -S315600153F080A0600002800004010000007FFFAF8092 -S31560015400901020237FFFF3AF110010009007BFF0CB -S31560015410921660F07FFFF1649415212003100C0051 -S31560015420DA05212080A340011280000A821521201D -S31560015430C200600480A060001280000601000000C6 -S31560015440C205A1C080A0600002800005901660F0D0 -S315600154507FFFAF6B90102014901660F09207BFC06B -S315600154607FFFF1569415212003200000DA052120E3 -S3156001547080A340011280000A82152120C2006004C7 -S3156001548080A060001280000601000000C205A1C074 -S3156001549080A0600002800004010000007FFFAF5819 -S315600154A0901020147FFFF19190102001030FE0000E -S315600154B080A200011280000601000000C205A1C0A1 -S315600154C080A0600002800004010000007FFFAF4CF5 -S315600154D0901020147FFFF17D90102001030FFC00D6 -S315600154E080A200011280000880A26000128000067E -S315600154F001000000C205A1C080A060000280000416 -S31560015500010000007FFFAF3E901020147FFFF36D16 -S315600155101110100019180085D41B20D07FFFF1F9F6 -S31560015520D01E60F003180085D03D2120DA0060D8D6 -S31560015530C205212080A0400D191800858215212001 -S3156001554012800007901320D8DA006004C20220049A -S3156001555080A3400102800361010000007FFFAF2844 -S31560015560901020227FFFF35711100000170400806E -S31560015570150F28009612E0F09A102000190FFC0012 -S31560015580D43FBFC0D83FBFF09007BFF09207BFC0FE -S315600155907FFFF10594152120030FFC00DA05212018 -S315600155A080A340011280000682152120C20060049A -S315600155B080A0600002800004010000007FFFAF1040 -S315600155C0901020157FFFF33F112000001700004067 -S315600155D0150014009612E0019A102000190FFC00C4 -S315600155E0D43FBFC0D83FBFF09007BFF09207BFC09E -S315600155F07FFFF0ED94152120030FFC00DA052120D1 -S3156001560080A340011280000682152120C200600439 -S3156001561080A0600102800004010000007FFFAEF8F7 -S31560015620901020157FFFF32711300000170000400E -S31560015630152014009612E0019A102000192FFC0023 -S31560015640D43FBFC0D83FBFF09007BFF09207BFC03D -S315600156507FFFF0D594152120032FFC00DA05212068 -S3156001566080A340011280000682152120C2006004D9 -S3156001567080A0600102800004010000007FFFAEE0AF -S31560015680901020157FFFF30F11100000190FFC0019 -S315600156909A102000D83FBFF09007BFF09216E0E065 -S315600156A07FFFF0C194152120C206E0E0DA052120D2 -S315600156B080A3400182152120128000079816E0E040 -S315600156C0DA006004C203200480A340010280000462 -S315600156D0010000007FFFAECA901020157FFFF2F92E -S315600156E01120000017000040150014009612E00119 -S315600156F0190FFC009A102000D43FBFC0D83FBFF0FD -S315600157009007BFF09216E0E07FFFF0A79415212085 -S31560015710C206E0E0DA05212080A34001821521203E -S31560015720128000079816E0E0DA006004C2032004E4 -S3156001573080A3400102800004010000007FFFAEB03B -S31560015740901020157FFFF2DF113000001700004036 -S31560015750152014009612E0019A102000192FFC0002 -S31560015760D43FBFC0D83FBFF09007BFF09216E0E0CC -S315600157707FFFF08D94152120C2052120DA06E0E035 -S3156001578080A0400D82152120128000079016E0E06E -S31560015790DA006004C202200480A340010280000492 -S315600157A0010000007FFFAE96901020157FFFF2C5C5 -S315600157B01110000015100000961020019A102001AA -S315600157C0190FFC00D43FBFC0D83FBFF09007BFF0B0 -S315600157D09207BFC07FFFF079941521200310000066 -S315600157E0DA05212080A3400112800006821521205E -S315600157F0C200600480A06002028000040100000013 -S315600158007FFFAE7F901020157FFFF2AE1120000062 -S315600158109007BFF09207BFC07FFFF0689415212003 -S3156001582003100000DA05212080A3400112800006E2 -S3156001583082152120C200600480A0600302800004FA -S31560015840010000007FFFAE6E901020157FFFF29D74 -S31560015850113000009A102001192FFC00D83FBFF0CB -S315600158609007BFF09207BFC07FFFF05494152120C7 -S3156001587003300000DA05212080A340011280000672 -S3156001588082152120C200600480A0600302800004AA -S31560015890010000007FFFAE5A901020157FFFF2894C -S315600158A011100000150FFC04172F26159412A01273 -S315600158B09612E231190FFEAE1B1CD2E89A136011E3 -S315600158C098132154D43FBFC0D83FBFF09007BFF0B3 -S315600158D09207BFC07FFFF04794152120030FFEA7F3 -S315600158E082106296DA05212080A3400112800008A9 -S315600158F082152120DA006004032C1B348210602F8C -S3156001590080A3400102800004010000007FFFAE3CDD -S31560015910901020157FFFF26B112000009007BFF0F9 -S315600159209207BFC07FFFF03394152120030FFEA7B6 -S3156001593082106296DA05212080A340011280000858 -S3156001594082152120DA006004032C1B34821060303A -S3156001595080A3400102800004010000007FFFAE28A1 -S31560015960901020157FFFF25711300000192FFC04AB -S315600159701B2F26159A13623198132012D83FBFC088 -S315600159809007BFF09207BFC07FFFF01A94152120E0 -S31560015990032FFEA782106296DA05212080A34001BB -S315600159A01280000882152120DA006004032C1B3462 -S315600159B08210603080A34001028000040100000073 -S315600159C07FFFAE0F901020157FFFF23E1110000091 -S315600159D015101000961020009A102000191038003A -S315600159E0D43FBFC0D83FBFF09007BFF09207BFC09A -S315600159F07FFFF0009415212003102400DA05212091 -S31560015A0080A340011280000682152120C200600435 -S31560015A1080A0600002800004010000007FFFADF8F5 -S31560015A20901020157FFFF227112000009007BFF02C -S31560015A309207BFC07FFFEFEF94152120031024006A -S31560015A40DA05212080A340011280000682152120FB -S31560015A50C200600480A060000280000401000000B2 -S31560015A607FFFADE7901020157FFFF2161130000021 -S31560015A709007BFF09207BFC07FFFEFDE941521202C -S31560015A8003102400DA05212080A34001128000065C -S31560015A9082152120C200600480A06000028000049B -S31560015AA0010000007FFFADD6901020157FFFF20543 -S31560015AB011100000210FE000110020007FFFF0B9F6 -S31560015AC09214200180A220001280012301000000AF -S31560015AD07FFFF1FC11200000110020007FFFF0B173 -S31560015AE09214200180A2200012800118010000009A -S31560015AF07FFFF1F411300000921420017FFFF0A9BD -S31560015B001100200080A220001280010D010000001A -S31560015B107FFFF1EC111000009A102000190FFC00B4 -S31560015B20D83FBFF09007BFF07FFFEFB892152120F5 -S31560015B30C207BFF0DA05212080A340011280000769 -S31560015B4082152120DA006004C207BFF480A34001F8 -S31560015B50028002A7010000007FFFADA99010201509 -S31560015B607FFFF1D8112000009007BFF07FFFEFA7FC -S31560015B7092152120C207BFF0DA05212080A34001DA -S31560015B801280000782152120DA006004C207BFF483 -S31560015B9080A340010280029B010000007FFFAD9857 -S31560015BA0901020157FFFF1C7113000009007BFF0FC -S31560015BB07FFFEF9692152120C207BFF0DA052120FB -S31560015BC080A340011280000782152120DA0060045B -S31560015BD0C207BFF480A340010280028F010000006A -S31560015BE07FFFAD87901020157FFFF1B61110000081 -S31560015BF0030FDFFF901063FF7FFFF074A0100008B2 -S31560015C0080A2001002800004010000007FFFAD7CCD -S31560015C10901020157FFFF1AB112000007FFFF06B24 -S31560015C2090100010030FE00080A2000102800004C2 -S31560015C30010000007FFFAD72901020157FFFF1A17A -S31560015C40113000007FFFF0619010001080A20010FB -S31560015C5002800004010000007FFFAD6990102015ED -S31560015C607FFFF198901020007FFFF0609015212052 -S31560015C70032FFE00DA05212080A340011280000671 -S31560015C8082152120C200600480A0600002800005A8 -S31560015C90211801447FFFAD5A901020162118014446 -S31560015CA07FFFF05C90142128DA042128032FF0008D -S31560015CB080A3400102800004A21421287FFFAD5019 -S31560015CC0901020167FFFF05D90100011DA042128F4 -S31560015CD0030FE00080A34001028000040100000080 -S31560015CE07FFFAD47901020167FFFF064901521204D -S31560015CF0030FFBF7821063F0DA05212080A34001D0 -S31560015D001280000882152120DA0060040303FF1265 -S31560015D108210604A80A3400102800005921660F0FD -S31560015D207FFFAD3790102016921660F09007BFF096 -S31560015D307FFFEF3094152120C205A1C08330600E2C -S31560015D408208600780A0600202800005191800467B -S31560015D507FFFAD2B90102017191800461718008089 -S31560015D60DA02E1C8821321F880A0400DE00321F830 -S31560015D7002800004A212E1C87FFFAD2190102018B5 -S31560015D80C204600480A0401002800004010000008B -S31560015D907FFFAD1B90102018C204600880A06000D0 -S31560015DA01280007701000000C204600C80A06000D0 -S31560015DB01280006C010000007FFFEEE6010000002A -S31560015DC080A220010280019801000000190C40297F -S31560015DD01B23CD1B9A13609B9813200694102000F9 -S31560015DE096102000D83FBFF0D43FBFC07FFFEF2F92 -S31560015DF09007BFF003180083A21062101B18008180 -S31560015E0003180144A0136210A4106120B010200091 -S31560015E10832E2002DA044001DA27BFC09007BFC093 -S31560015E207FFFEF25921521209B2E2003D804000DBC -S31560015E30C2052120B00620019603401080A300010F -S31560015E401280000790102019DA02E004C204A0044F -S31560015E5080A340010280000580A620FF7FFFACE899 -S31560015E600100000080A620FF04BFFFEB832E200205 -S31560015E7003180083A41062101B18008003180144E4 -S31560015E80A2136210A6106120B0102000A12E20027C -S31560015E90C2048010C227BFC0921521207FFFEEDBAE -S31560015EA09007BFC0DA044010C2052120B006200267 -S31560015EB09804001180A34001128000079010201AF7 -S31560015EC0DA032004C204E00480A3400102800005D5 -S31560015ED080A620FF7FFFACCA0100000080A620FFDC -S31560015EE024BFFFECA12E200230800211C205A1C0A1 -S31560015EF080A0600022BFFB8FB0863FFF30BFFB8A68 -S31560015F00C205A1C080A0600002BFF145010000008A -S31560015F1030BFF141C205A1C080A0600002BFF13669 -S31560015F200100000030BFF132C205A1C080A060004F -S31560015F3002BFF1270100000030BFF1237FFFACB043 -S31560015F409010201530BFFEF37FFFACAD9010201589 -S31560015F5030BFFEE87FFFACAA9010201530BFFEDD92 -S31560015F607FFFACA79010201830BFFF947FFFACA4D1 -S31560015F709010201010BFF678111800847FFFACA036 -S31560015F809010201830BFFF89C207BFCC80A0600087 -S31560015F9012BFF8F501000000C20421C08208401555 -S31560015FA09A16A00880A0400D12BFF8EF010000000C -S31560015FB010BFF8F015108683C205A1C09A13601F41 -S31560015FC0190000108208400D9813200880A0400C2B -S31560015FD012BFFB7D1118008510BFFB7F9012205008 -S31560015FE0C205A1C09A13601F190000108208400DF6 -S31560015FF09813200880A0400C12BFFB8611180085FB -S3156001600010BFFB8890122068C205A1C09A13601F59 -S31560016010190000108208400D9813200480A0400CDE -S3156001602012BFFB8F1118008510BFFB919012208063 -S31560016030C205A1C09A13601F190000108208400DA5 -S315600160409813200880A0400C12BFFB980100000045 -S3156001605030BFFB98C205A1C080A0600002BFFBFEF5 -S31560016060111FD00030BFFBF9C205A1C080A060003E -S3156001607002BFFC1E0100000030BFFC1AC205A1C0B0 -S3156001608080A0600002BFFC2C1B18008530BFFC2776 -S31560016090C205A1C080A0600002BFFC3A1B18008542 -S315600160A030BFFC35C205A1C080A0600002BFFC47BD -S315600160B01B18008530BFFC42C205A1C09A13601F40 -S315600160C0190000108208400D9813201080A0400C22 -S315600160D012BFFC4C0318008510BFFC4E901060B8CF -S315600160E0C205A1C09A13601F190000108208400DF5 -S315600160F09813200480A0400C12BFFB201118008564 -S3156001610010BFFB2290122038C205A1C080A060009A -S3156001611022BFF8D0150FFFFF30BFF8CBC205A1C073 -S3156001612080A0600002BFF8100318008530BFF80B2D -S31560016130C205A1C09A13601F190000108208400DA4 -S315600161409813201080A0400C12BFF8169015E0C875 -S3156001615010BFF818921660F0C205A1C080A0600059 -S3156001616002BFF9491B18008530BFF944C205A1C0B9 -S3156001617080A0600002BFF9579007BFF030BFF952A7 -S31560016180C205A1C080A0600002BFF9631B1800852B -S3156001619030BFF95EC205A1C09A13601F19000010D5 -S315600161A08208400D9813201080A0400C12BFF96937 -S315600161B09007BFF010BFF96B921660F0C20461C020 -S315600161C080A0600002BFF74B1B18008530BFF74601 -S315600161D0C205A1C080A0600002BFF75A9016E0E038 -S315600161E030BFF755C205A1C09A13601F1900001090 -S315600161F08208400D9813201080A0400C12BFF75FF3 -S315600162000100000030BFF75FC205A1C080A0600039 -S3156001621002BFF76F1B18008530BFF76AC205A1C0C0 -S315600162209A13601F190000108208400D9813201000 -S3156001623080A0400C12BFF7750100000030BFF775F2 -S31560016240C20461C080A0600002BFF7949015E0C8E7 -S3156001625030BFF78FC205A1C080A0600002BFF7A062 -S315600162609015E0C830BFF79BC205A1C080A0600051 -S3156001627002BFF7AC9015E0C830BFF7A7C205A1C051 -S315600162809A13601F190000108208400D98132010A0 -S3156001629080A0400C12BFFBED0100000030BFFBED9A -S315600162A0C205A1C080A0600002BFFBFC170C0008FC -S315600162B030BFFBF7C205A1C09A13601F1900001019 -S315600162C08208400D9813201080A0400C12BFFC1963 -S315600162D0901660F030BFFC1AC205A1C080A06000B4 -S315600162E002BFFCA10100000030BFFC9DC20461C079 -S315600162F080A0600002BFF9E59015E0C830BFF9E003 -S31560016300C205A1C080A0600002BFF9F19015E0C886 -S3156001631030BFF9ECC205A1C080A0600002BFF9FDE3 -S315600163209015E0C830BFF9F8C205A1C080A0600031 -S3156001633002BFFA091918008530BFFA04C20461C0A8 -S3156001634080A0600002BFF9250318008530BFF920DF -S31560016350C205A1C09A13601F190000108208400D82 -S315600163609813201080A0400C12BFF92C0100000088 -S3156001637030BFF92CC205A1C080A0600002BFF93C04 -S315600163801B18008530BFF937C205A1C09A13601F7B -S31560016390190000108208400D9813201080A0400C4F -S315600163A012BFF9429007BFE810BFF944921660F038 -S315600163B0C20461C080A0600002BFF95F9016E0E090 -S315600163C030BFF95AC205A1C09A13601F19000010A7 -S315600163D08208400D9813201080A0400C12BFF9640A -S315600163E00100000030BFF964C205A1C080A0600051 -S315600163F002BFF9740318008530BFF96FC205A1C0E9 -S315600164009A13601F190000108208400D981320101E -S3156001641080A0400C12BFF97A9016E0E010BFF97CBB -S31560016420921660F07FFFAB769010201910BFFE695F -S31560016430190C4029D80061C01B0000709A13601FB7 -S3156001644003000010980B000D8210600880A3000104 -S3156001645012BFF5501118008410BFF55290122360D7 -S31560016460C205A1C09A13601F190000108208400D71 -S315600164709813200480A0400C12BFF55811180084AF -S3156001648010BFF55A90122378C205A1C09A13601FF6 -S31560016490190000108208400D9813200480A0400C5A -S315600164A012BFF5600100000030BFF560C205A1C0F2 -S315600164B080A0600002BFF4A90318008530BFF4A470 -S315600164C0C205A1C080A0600002BFF4939015E0C828 -S315600164D030BFF48EC205A1C080A0600002BFF47D0A -S315600164E09015E0C830BFF478C20461C080A0600036 -S315600164F002BFF4679015E0C830BFF462C205A1C05F -S315600165009A13601F190000108208400D981320022B -S3156001651080A0400C12BFF5B61B18008510BFF5B8F8 -S31560016520921360D0C205A1C080A0600002BFF5C50C -S315600165309007BFF030BFF5C0C205A1C080A0600062 -S3156001654002BFF5D10318008530BFF5CCC205A1C0E5 -S315600165509A13601F190000108208400D98132010CD -S3156001656080A0400C12BFF5D79007BFF010BFF5D9D8 -S31560016570921660F0C20461C080A0600022BFF5F38C -S315600165801918008530BFF5EEC205A1C09A13601FC8 -S31560016590190000108208400D9813201080A0400C4D -S315600165A012BFF5F91B18008510BFF5FB03180085AE -S315600165B0C205A1C080A0600002BFF60B9007BFE8CC -S315600165C030BFF606C205A1C080A0600002BFF61703 -S315600165D01B18008530BFF612C20421C080A060007E -S315600165E022BFF03E113C02AF30BFF039C205A1C0F7 -S315600165F080A0600002BFFD5B0100000030BFFD5757 -S31560016600C205A1C080A0600002BFFD670100000055 -S3156001661030BFFD63C205A1C080A0600002BFFD73EB -S315600166200100000030BFFD6FC205A1C080A06000FF -S3156001663002BFF2D70318008530BFF2D2C205A1C0EE -S3156001664080A0600002BFF2C19007BFF030BFF2BC0C -S31560016650C205A1C080A0600002BFF2AA37180085FA -S3156001666030BFF2A5C205A1C080A0600002BFF028BC -S315600166701111FC0030BFF023C205A1C09A13601F3F -S31560016680190000108208400D9813201080A0400C5C -S3156001669012BFF3DD9016E0E010BFF3DF921660F0F3 -S315600166A0C205A1C080A0600002BFF39E1B180085D1 -S315600166B030BFF399C205A1C080A0600002BFF38616 -S315600166C01B18008530BFF381C205A1C080A06000A0 -S315600166D002BFF36E1B18008530BFF369C20461C047 -S315600166E080A0600002BFF3589016E0E030BFF3531C -S315600166F0C205A1C080A0600002BFF30E1918008513 -S3156001670030BFF309C205A1C080A0600002BFF2F8E4 -S315600167109007BFE830BFF2F3C20461C080A0600099 -S3156001672002BFF2E29007BFE830BFF2DD81C7E00841 -S3156001673081E80000D27A000081C3E0080100000010 -S3156001674081C3E008900A20209332600492126001AE -S315600167508213C0007FFFFFF89E1040000100000019 -S3156001676081D8200081C3E008010000009DE3BF9845 -S315600167707FFFFFFC0100000082102400C0A04300DF -S3156001678081C7E00881E80000833220189A1000086A -S315600167908088600F028000049010200083336010AF -S315600167A09008600381C3E008010000009DE3BF9883 -S315600167B0031800C01B1800C1B0106000A21360006E -S315600167C0031800C21B1800C2A4106000A613610062 -S315600167D0031800201B180020A8106158AA13600036 -S315600167E07FFFEBAD9010200C808A2008028001FDAE -S315600167F0010000007FFFAA7D9010200ED08003204B -S315600168007FFFFFE2010000000318014380A220021E -S31560016810028000C6D02060D080A22002148000E4ED -S3156001682080A2200380A22001028000D1821020195B -S31560016830331800A02F1800A0391800A0371800A03F -S31560016840351800A07FFFFFC7210100007FFFFFC849 -S31560016850BA04A00C921000117FFFFFBC90100018C3 -S31560016860921000117FFFFFB990062004901000116D -S315600168707FFFFFB19210200ADA066014110800004A -S31560016880913A000DC205E010900A0001912A20029A -S3156001689013008000900200117FFFFFA79212600A29 -S315600168A0DA06601411100000913A000DC205E0107D -S315600168B0900A0001912A2002900200117FFFFF9E3B -S315600168C09214208EDA066014111C0000913A000DB4 -S315600168D0C205E010900A0001912A20021301C0004E -S315600168E0900200117FFFFF949212608E9334A00490 -S315600168F09004600C7FFFFF90921260019214201E3B -S315600169007FFFFF8D9004A0089010001D7FFFFF8A16 -S31560016910921020009334E004921260017FFFFF869B -S315600169209004A004111800C2901221087FFFFF8213 -S3156001693092102000031800E0A01060009334200438 -S31560016940111800C2901221047FFFFF7B9212601A18 -S3156001695003048D1582106278C2242004111800E0A8 -S3156001696015180120C0222000A2102003AC12A0003D -S31560016970A004E00C90047FFD40000A73921020038E -S315600169801B180143C20360D08200600C932A000188 -S315600169909202401693326004901000107FFFFF66EA -S315600169A09212601EA204600180A4600A04BFFFF215 -S315600169B0A0042004C206E008D807200C8208600102 -S315600169C08328400CD605E010111800E0D406A0001B -S315600169D0DA06601498122000960AE003972AC00D21 -S315600169E0920AA002111800A0DA022004940AA001FA -S315600169F0952A800D932A400D1B1800209612C0011E -S31560016A00E8236150030100001B0076418210601E7D -S31560016A109A1361C09212C00999332004C2252004D9 -S31560016A20DA2520089612C00A9E13200E913560045D -S31560016A301B1800C2031800C2821061049012201E46 -S31560016A40953620049813201E9A136108D625202CAA -S31560016A50D8252010D025201CD2252020DE252028EF -S31560016A60D6252014940ABFF0FA250000DA252018ED -S31560016A70C2252024C225200CA2102100D4A44320C3 -S31560016A80C2800320D88443209A102001A0102200DE -S31560016A90DAA40320D884032082102000C2A4032034 -S31560016AA0DAA0032081D820007FFFC55901000000CC -S31560016AB0C2800320E2844320E0840320DA05E010EB -S31560016AC0D6066014C206E0089A0B60039B2B400B46 -S31560016AD082086001D407200CD806A000111800A016 -S31560016AE08328400A980B2001D60220049A1340019C -S31560016AF0992B000B9A13400CC203400080A06000E2 -S31560016B0012800008821360041B048D15D8004000B2 -S31560016B109A13627880A3000D02800038C205E010E6 -S31560016B2010800000010000008210201A331800A0B6 -S31560016B30C22660149810203F2F1800A0391800A0B3 -S31560016B40351800A09A1020148210200E151800A086 -S31560016B50371800A0DA27200CC222A004D826A0008C -S31560016B60D825E01010BFFF38D826E0089A10207F9C -S31560016B70331800A02F1800A0C2266014DA25E01091 -S31560016B809810203F391800A0351800A082102013F4 -S31560016B909A10200D111800A0371800A0C227200CEA -S31560016BA0DA22200410BFFFF0D826A00012BFFF2210 -S31560016BB0331800A08210201CC22660149A1020157A -S31560016BC08210207F391800A0371800A0DA27200C20 -S31560016BD0C226E0089810200F2F1800A0351800A0D3 -S31560016BE01B1800A08210203FD8236004C226A00093 -S31560016BF010BFFF15D825E010DA06E008D806601444 -S31560016C00820860039A0B6002D607200C8328400C29 -S31560016C109B2B400B8210400DD80040001B100000DA -S31560016C20C203400080A3000102800004D406E0088C -S31560016C301080000001000000C205E010980AA00162 -S31560016C40D207200CD6066014820860038328400BA5 -S31560016C50992B0009940AA0039810400CDA06A0004B -S31560016C60111800A0952A80099A0B6001D6022004AA -S31560016C708210400AC20040009B2B400B9813000D06 -S31560016C800321D9509813200482106321C223000086 -S31560016C90DA03000080A3400102800004C206E00816 -S31560016CA01080000001000000D407200CDA05E01016 -S31560016CB082086001D60660148328400A9A0B600335 -S31560016CC0D806A0009B2B400B151800A0D602A00485 -S31560016CD0980B20019A134001992B000B9813400CD5 -S31560016CE08210000C05048D158410A278072AF37BA7 -S31560016CF08610E301C4384000C438400003048D1592 -S31560016D00DA0300008210627880A3400102800004E9 -S31560016D108213200410800000010000001B2AF37B0F -S31560016D20D80040009A13630180A3000D12BFFFFAD9 -S31560016D30C205E010D6066014D806E0088208600332 -S31560016D40D407200C8328400B980B2001DA06A0009B -S31560016D50111800A0992B000A9A0B6003D602200431 -S31560016D608210400C9B2B400B15180143A010400D5F -S31560016D70F002A0D0A2102003E0240000C0A00220EF -S31560016D80921020034000097090047FFD8206200C5A -S31560016D9098102001912A0001992B00011B180120EE -S31560016DA09610000182136000DA02000180A3401090 -S31560016DB0A204600112800087A004000C80A4600A0E -S31560016DC024BFFFEFE0240000C0A0022003180120C9 -S31560016DD0A810000BAA106000A0102000A2102003CA -S31560016DE090047FFD4000095892102003832C6002B5 -S31560016DF0912A0014DA04C00190020015820B6060CA -S31560016E009132200480A000019012201EA040001043 -S31560016E109A0B7F9F900A3F9F80A340081280006F64 -S31560016E20A204600180A4600A24BFFFEF90047FFD85 -S31560016E3080A4200012800004C205E01010800000CA -S31560016E4001000000D6066014D806E00882086003D7 -S31560016E50D407200CDA06A000111800A08328400B85 -S31560016E60980B2001992B000AD60220049A0B600226 -S31560016E708210400C9B2B400BAA10400D9FC5400011 -S31560016E800100000082102400C0A04300C0A00220BF -S31560016E90A0102000A21020039B2C6002C204C00D2A -S31560016EA08208606080A00001A0400010A204600119 -S31560016EB080A4600A24BFFFFA9B2C600280A420088C -S31560016EC022800004D004E00410800000010000006C -S31560016ED0808A204002800007010000007FFFFE19C2 -S31560016EE00100000080A22000128000040100000061 -S31560016EF010800000010000007FFFFE12D004A00890 -S31560016F0080A22000128000040100000010800000B1 -S31560016F10010000007FFFFE0BD004E00880A2200084 -S31560016F2012800004010000001080000001000000D2 -S31560016F3083480000842860808188A00001000000E9 -S31560016F400100000001000000D806E008D407200C0B -S31560016F50DA05E010980B2001D6066014992B000A19 -S31560016F609A0B6003C206A0009B2B400B151800A06C -S31560016F70D602A004820860018328400B9A13400C54 -S31560016F809A1340019A136004C203400092102004D0 -S31560016F9091D02002010000007FFFC41D01000000A6 -S31560016FA0981020009A102200D8A343208210200155 -S31560016FB0C2A34320D8A3432003100000DA80438094 -S31560016FC0DAA04380D8A0032081D820003080000554 -S31560016FD01080000001000000108000000100000028 -S31560016FE081C7E00891E820009DE3BF98400007D182 -S31560016FF001000000808A21000280003F010000003C -S315600170007FFFA88E01000000912A20047FFFA877E8 -S31560017010900220050318014082106048DA0060047E -S3156001702080A360002280001503180140B0100001A2 -S31560017030C20600009B38601F81836000DA06200467 -S3156001704001000000010000008278400DDA06200888 -S31560017050B006200C80A0400D028000049010200133 -S315600170607FFFA86701000000C206200480A06000BF -S3156001707012BFFFF00318014082106000DA0060045D -S3156001708080A360000280001501000000B0100001BD -S31560017090C206000081800000DA06200401000000BB -S315600170A0010000009A70400D8210000DDA0620087A -S315600170B0B006200C80A0400D0280000490102002D2 -S315600170C07FFFA84F01000000C206200480A0600077 -S315600170D012BFFFF00100000040000824010000001B -S315600170E080A2200012800004010000007FFFA844F6 -S315600170F09010200381C7E00891E820009DE3BF98C6 -S315600171007FFFA84E01000000912A20047FFFA83767 -S3156001711090022004400007890100000080A221231B -S3156001712002800004010000007FFFA8359010200155 -S315600171304000078001000000808A21000280002B48 -S315600171400318014082106184DA00600880A3600937 -S315600171500280001101000000B0100001C2060000AB -S31560017160DA062004D80620088258400DB006200CA5 -S3156001717080A0400C02800004901020027FFFA820AE -S3156001718001000000C206200880A0600912BFFFF45A -S3156001719001000000400007760100000080A2200087 -S315600171A00280000F0100000040000762010000003C -S315600171B0808A22000280000D010000004000079EC7 -S315600171C00100000080A2200012800008010000007A -S315600171D07FFFA80B90102004308000047FFFA80871 -S315600171E09010200330BFFFF181C7E00891E82000CD -S315600171F09DE3BFA0941020001118005C9012222418 -S315600172001318005C921262281718005C9612E2301D -S315600172101918005C9813223493C2000081C24000A1 -S315600172201080019181C2C00081C300001080018E6F -S315600172309402A0019402A00180A2A0031280018A97 -S3156001724001000000874400008D30E00E8C89A007A4 -S3156001725080A1A000028000C701000000AF30E00BF2 -S31560017260AE0DE00780A5E000128000C201000000BB -S3156001727080A1A002128000350100000025100000E7 -S31560017280E41C80002510000029100000A8152104C7 -S31560017290A6100012AA100012AC100014A18020469C -S315600172A0A4100000AA10000001000000A180204E79 -S315600172B0A810210001000000A1800000010000006B -S315600172C001000000E83CA03082A4801312800166B0 -S315600172D082A5001612800164010000000100000011 -S315600172E001000000874400008D30E00B8C89A00707 -S315600172F08CA1A0051280015CA18000000100000044 -S315600173000100000001000000E81CA03082A5001603 -S315600173101280015582A54012A4100000128001520C -S315600173200100000001000000874400008D30E00B81 -S315600173308C89A0078CA1A0031280014B010000007B -S315600173401080008C0100000080A1A0011280002342 -S3156001735025100000E41C80002510000029100000A3 -S31560017360A8152104A6100012AA100012AC10001470 -S31560017370A1802046A4100000AA10000001000000B0 -S31560017380A180204EA810210001000000A18000000C -S31560017390010000000100000001000000E83C8000DF -S315600173A082A480131280013082A500161280012EFC -S315600173B00100000001000000874400008D30E00BF1 -S315600173C08C89A0078CA1A002128001270100000010 -S315600173D0108000680100000080A1A0031280006592 -S315600173E0A6100000A210200EA1844000A610000085 -S315600173F0A1800000A814E000AB4400000100000079 -S31560017400AC14E00001000000AF44000080A520003C -S3156001741012800115AA8D6E0080A5400012800112AE -S3156001742080A5A00012800110AF35E00BAE0DE0071C -S3156001743080A5E0011280010C01000000A01000008F -S31560017440A1844000A6100000A1800000E818000099 -S31560017450AC100000AE100000EC04C000EE04E004C5 -S3156001746080A500161280010080A54017128000FEDB -S3156001747001000000A5440000A534A00BA40CA007E0 -S3156001748080A4A001128000F801000000A010000095 -S31560017490A1844000A6100000A1800000A210200A6D -S315600174A0A1844000A4100000A1800000E81800003B -S315600174B0AC100000AE100000EC04C012EE04E00453 -S315600174C080A50016128000E880A54017128000E6AC -S315600174D001000000A5440000A534A00BA40CA00780 -S315600174E080A4A002068000E001000000211801408E -S315600174F0A0142200EC1C0000A0042008E81C000077 -S31560017500A1844000A6100000A1800000A210200EF8 -S31560017510A1844000A4100010AC100000AE10000061 -S31560017520A18000000100000001000000EC3C801316 -S31560017530AC100000AE100000E81CC01280A5001659 -S31560017540128000C980A54017128000C701000000A3 -S31560017550A5440000A534A00BA40CA00780A4A00438 -S31560017560128000C1010000001080000201000000CD -S315600175708B4440008A09601F80A160010280000A75 -S315600175808C1000059DE3BFA08AA1600116BFFFFEB6 -S315600175900100000081E800008CA1A00116BFFFFE7A -S315600175A0010000000100000001000000A023A0808E -S315600175B0A02C20078E100010A3480000E2240000D2 -S315600175C0C2242004C43C2008C83C2010CC3C2018AE -S315600175D0F03C2020F43C2028F83C2030FC3C20384C -S315600175E0D03C2040D43C2048D83C2050DC3C20583C -S315600175F0A5500000E424206080102008821020013C -S315600176008410200286102003881020048A10200529 -S315600176108C10200681900000A42C601F818C800054 -S31560017620010000000100000001000000030040406D -S3156001763082106101841000008610000089444000B8 -S315600176408809201F86100004A010000284004002F1 -S31560017650A210000284004002A410000284004002CD -S31560017660A610000284004002A810000284004002B5 -S31560017670AA10000284004002AC100002840040029D -S31560017680AE100002840040029010000284004002A5 -S3156001769092100002840040029410000284004002AD -S315600176A09610000284004002981000028400400295 -S315600176B09A100002840040029C100002840040027D -S315600176C09E1000028400400281E0000086A0E00175 -S315600176D016BFFFDE01000000030040408210610119 -S315600176E0841000008610000480A400021280003F0E -S315600176F08400400280A440021280003C8400400263 -S3156001770080A48002128000398400400280A4C002F5 -S31560017710128000368400400280A500021280003388 -S315600177208400400280A5400212800030840040023D -S3156001773080A580021280002D8400400280A5C002CF -S315600177401280002A8400400280A200021280002773 -S315600177508400400280A2400212800024840040021C -S3156001776080A28002128000218400400280A2C002B1 -S315600177701280001E8400400280A300021280001B5A -S315600177808400400280A340021280001884004002F7 -S3156001779080A38002128000158400400280A3C0028B -S315600177A0128000128400400281E0000086A0E001A0 -S315600177B016BFFFCE0100000080A020001280000BE2 -S315600177C080A0FFFF1280000980A16005128000077A -S315600177D080A1A0061280000501000000A01000072C -S315600177E010800006C0242020A01000079010200100 -S315600177F010800002D024202082100007C4004000BF -S315600178008188800001000000010000000100000085 -S31560017810C4186008C8186010CC186018F018602089 -S31560017820F4186028F8186030FC186038D018604089 -S31560017830D4186048D8186050DC186058E40060605D -S31560017840C200600481948000010000000100000014 -S3156001785001000000A0100007F004202081C7E008A5 -S3156001786081E8000010BFFFFCB010000001000000BD -S3156001787081D8200081C3E008010000001B18014483 -S31560017880D8036150821020018328400C1B180144E3 -S3156001789082007FFFD803615482084008932A400C16 -S315600178A0900040098213C0007FFFE77F9E10400071 -S315600178B0010000001B180144D803615082102001A9 -S315600178C08328400C1B18014482007FFFD803615452 -S315600178D0932A400C82084008900040099210000AE1 -S315600178E08213C0007FFFE7729E1040000100000016 -S315600178F01B180144D8036150821020018328400C73 -S315600179001B18014482007FFFD8036154932A400CFF -S3156001791082084008900040099210000A8213C00054 -S315600179207FFFE7679E104000010000001B180144BD -S31560017930D8036150821020018328400C1B18014432 -S3156001794082007FFFD803615482084008932A400C65 -S31560017950900040098213C0007FFFE7579E104000E8 -S31560017960010000001B180144D803615C82102001EC -S315600179708328400C1B18014482007FFFD803616C89 -S31560017980932A400C82084008900040099210000A30 -S315600179908213C0007FFFE74E9E1040000100000089 -S315600179A01B180144D803615C821020018328400CB6 -S315600179B01B18014482007FFFD803616C932A400C37 -S315600179C082084008900040099210000A8213C000A4 -S315600179D07FFFE7439E104000010000009DE3BF5812 -S315600179E02D180144A2102000C205A16080A44001A7 -S315600179F01680001BA01020002B1801442918014491 -S31560017A0027180144A4102001D005615C912C8008DF -S31560017A10C205216C90023FFF832C0001900A001879 -S31560017A207FFFE72990020001C204E14C901E000825 -S31560017A30900A000180A00008A2647FFFA0042001D3 -S31560017A40C205A16080A4000126BFFFF1D005615C7B -S31560017A5080A4600012800003B0102000B0102001E5 -S31560017A6081C7E00881E800001B180144D803615C06 -S31560017A70821020018328400C1B18014482007FFF7D -S31560017A80D803616C82084008932A400C9000400933 -S31560017A908213C0007FFFE70C9E10400001000000CA -S31560017AA01B180144D803615C821020018328400CB5 -S31560017AB01B18014482007FFFD803616C820840086D -S31560017AC0932A400C900040098213C0007FFFE702B1 -S31560017AD09E10400001000000952AA00D03280000B9 -S31560017AE094028009D02040009422B000D420600422 -S31560017AF081C3E00801000000033FFFBF821062F806 -S31560017B009DE38001193FFFBF94132368B407BFF853 -S31560017B10031800459606800A82106020C222E00C96 -S31560017B2003180044821063E0C222E0041B1800447B -S31560017B309A1363C0033FFFBFDA26800A901323803E -S31560017B40331800458210635C94068008981323C03D -S31560017B50921660008200401ED222E008D4204000C6 -S31560017B60B006800C7FFFA5A1901020067FFFE6CAB4 -S31560017B7090102000920A3FF07FFFE6C99010200026 -S31560017B80210000307FFFE6C490102000808A00103B -S31560017B9012BFFFFD010000007FFFFF3621000030AC -S31560017BA07FFFE6BD90102000808A001012BFFFFDA6 -S31560017BB0010000007FFFE6B890102000030020401E -S31560017BC08210600F921200017FFFE6B590102000CF -S31560017BD07FFFE6B19010200821180144D024214886 -S31560017BE07FFFE6AD9010200CA73A2010993A201439 -S31560017BF0A60CE007980B200FDA042148A82300138E -S31560017C00A80520089F3B6014933B60109B3B60185E -S31560017C1094050013A2102001AC03200A9E0BE00F0D -S31560017C2096102400AE0B60039402A002212000008E -S31560017C30992AC00C1B1801448203E00A952C400A5C -S31560017C409424000A832C4001D8236168A024000192 -S31560017C501B18014403180144EC23615C972AC00F89 -S31560017C60AA03E00A1B180144D620614403180144A3 -S31560017C70EA236154EA2061501B1801440318014448 -S31560017C80D423614C920A6007A53A2018D020615826 -S31560017C90153FFFBF932C4009A40CA00303180144B0 -S31560017CA09412A358932C4009A404A00139180144E5 -S31560017CB037180144EC20616C9B2C40149402801EA1 -S31560017CC0E0272164E426E160AA027FFFDA228000D0 -S31560017CD0AC85E0010280000CBB2C4013033FFFBF63 -S31560017CE082106368A0068001A4100016D00400000B -S31560017CF09FC20000A0042004A484BFFF32BFFFFD21 -S31560017D00D00400007FFFE66490102000920A3FFCD9 -S31560017D107FFFE66390102000A410200080A48016E7 -S31560017D2016800022A2102000033FFFBFAE106368D9 -S31560017D30A610001AA010200080A400163680001834 -S31560017D40A404A00110800005A810001780A40016E5 -S31560017D5036800013A404A001921000107FFFFEC8B4 -S31560017D60D004C014820A001580A0401512BFFFF826 -S31560017D70A0042001C204C01482184008DA072164F5 -S31560017D808208400D80A00001A2647FFF80A40016D6 -S31560017D9006BFFFF392100010A404A00180A4801610 -S31560017DA006BFFFE5A604E0047FFFE63B90102000D6 -S31560017DB0A6100008901020007FFFE6399214E003B8 -S31560017DC080A46000028001B101000000833CE00CE8 -S31560017DD080886003128000A5030048D1833CE013CC -S31560017DE080886003128001AD010000007FFFFEA163 -S31560017DF0210000307FFFE62890102000808A001065 -S31560017E0012BFFFFDA6100008A4102000C206E160A3 -S31560017E1080A480011680000D832CA00292100012AE -S31560017E20901000187FFFFED094102000A404A001DA -S31560017E30C206E16080A4800106BFFFFA92100012BB -S31560017E40A4102000832CA002A404A001C026000176 -S31560017E5080A4A01E04BFFFFD832CA0028210200512 -S31560017E60C22600009A102001DA2620048210200220 -S31560017E70C22620089A102003DA26200C7FFFFED83E -S31560017E809010001880A22000028001D3010000003A -S31560017E90C206000080A060050280000401000000A7 -S31560017EA07FFFA4D7901020067FFFFECD90100018AB -S31560017EB080A22000128001C401000000A4102000ED -S31560017EC0C206E16080A480011680000F9210001244 -S31560017ED0A0062004941020007FFFFEB290100018C7 -S31560017EE092100012901000107FFFFEAE94102000D9 -S31560017EF0A404A001C206E16080A4800106BFFFF66A -S31560017F00921000127FFFE5FA901000187FFFE5F8E6 -S31560017F10900620207FFFE5F6900620407FFFE5F47E -S31560017F2090062060A4102000C206E16080A4800152 -S31560017F3006800196A21020007FFFA4B19010200850 -S31560017F40173FFFBF8212E3C0940680018212E35C91 -S31560017F508200401ED81A8000C2004000D838400016 -S31560017F609612E380C206800B80A06005128000062F -S31560017F708206800BDA00600480A36001028000053E -S31560017F80A41020007FFFA49E90102009A410200059 -S31560017F90C206E16080A4800116800011A210200053 -S31560017FA0A0062004921000127FFFFEBE9010001002 -S31560017FB0901A200180A00008A2647FFFA404A0019A -S31560017FC0C206E16080A4800106BFFFF8921000122C -S31560017FD080A4600102800005833CE0137FFFA488D2 -S31560017FE09010200A833CE013808860031280018030 -S31560017FF082102005C22600009A102001DA2620048C -S3156001800082102002C22620089A102003DA26200C4C -S315600180101B3FFFBF9A1363589A03401ED00340006B -S315600180204000048D9210001D032EEEEEA12A20025F -S31560018030A21063BBE22600107FFFFE699010001854 -S3156001804080A220001280016701000000C2060010B4 -S3156001805080A0401102800005030048D17FFFA4681B -S3156001806090102012030048D1821061671B226AF3C7 -S31560018070C22620209A1361EFDA262024C20E202020 -S3156001808080A0600102800004010000007FFFA45C03 -S315600180909010201AC20E202180A060230280000465 -S315600180A0010000007FFFA4569010201BC20E202203 -S315600180B080A0604502800004010000007FFFA4509B -S315600180C09010201CC20E202380A0606702800004ED -S315600180D0010000007FFFA44A9010201DC20E2024DB -S315600180E080A0608902800004010000007FFFA44433 -S315600180F09010201EC20E202580A060AB0280000475 -S31560018100010000007FFFA43E9010201FC20E2026B2 -S3156001811080A060CD02800004010000007FFFA438CA -S3156001812090102020C20E202780A060EF02800004FC -S31560018130010000007FFFA43290102021C21620208A -S31560018140832860108330601080A061230280000460 -S31560018150010000007FFFA42A90102022DA16202257 -S315600181609B2B6010030000119B33601082106167C6 -S3156001817080A3400102800004010000007FFFA4206B -S3156001818090102023DA1620249B2B60100300002216 -S315600181909B336010821061AB80A3400102800004B2 -S315600181A0010000007FFFA41690102024DA16202615 -S315600181B09B2B6010030000339B336010821061EFCC -S315600181C080A3400102800005821020307FFFA40C4D -S315600181D09010202582102030C22E2020030C08D159 -S315600181E0DA0620208210616780A3400102800005C3 -S315600181F0821020317FFFA402901020278210203147 -S31560018200C22E2021030C0C51DA06202082106167F0 -S3156001821080A3400102800005821020327FFFA3F80F -S315600182209010202882102032C22E2022210C0C4C64 -S31560018230DA0620208214226780A3400102800005AD -S31560018240821020337FFFA3EE901020298210203305 -S31560018250C22E20239A142233C206202080A0400D0C -S3156001826002800005821020347FFFA3E59010202A4A -S3156001827082102034C22E2024030D2AF3DA0620242C -S31560018280821061EF80A340010280000582102035D3 -S315600182907FFFA3DB9010202B82102035C22E202574 -S315600182A0030D0D73DA062024821061EF80A340016D -S315600182B002800005821020367FFFA3D19010202C0A -S315600182C082102036C22E2026210D0D4DDA0620247D -S315600182D0821422EF80A340010280000582102037BC -S315600182E07FFFA3C79010202D82102037C22E202732 -S315600182F09A142237C206202480A0400D0280000510 -S31560018300210000107FFFA3BE9010202E21000010D7 -S3156001831082142041C23620200310104CDA06202038 -S315600183208210623380A340010280000582142243D9 -S315600183307FFFA3B39010202F82142243C2362022DE -S3156001834003101050DA0620208210624380A3400198 -S3156001835002800005210000117FFFA3A99010203043 -S315600183602100001182142045C23620240311114DCB -S31560018370DA0620248210623780A34001028000055C -S31560018380821422477FFFA39E9010203182142247D8 -S31560018390C236202603111151DA0620248210624763 -S315600183A080A3400102800004010000007FFFA394C6 -S315600183B0901020327FFFFD2FA4102000C206E160DD -S315600183C080A48001168000151B180144D403616CDA -S315600183D096100001A010200080A4001D3680000CBC -S315600183E0A404A001832C800A9B286002992CA0100A -S315600183F082130010C226000DA004200180A4001D76 -S3156001840006BFFFFC9A036004A404A00180A4800B4C -S3156001841026BFFFF2A01020007FFFE49F901020008E -S3156001842003000010808A000112BFFFFC01000000FA -S31560018430A4102000C206E16080A4800116800114A8 -S31560018440921000127FFFFD899010001815180144E3 -S31560018450C202A14C900A0001820E000180A20001B5 -S31560018460A404A00112BFFFF4901020337FFFA36420 -S3156001847001000000C206E16080A4800106BFFFF230 -S3156001848092100012308001027FFFA35D90102001DF -S3156001849010BFFE50833CE00C7FFFE47F901020000C -S315600184A0133FFFF09212603F920A0009A61000087E -S315600184B07FFFE47B901020007FFFE3D2A4102000B1 -S315600184C01303C0009214C0097FFFE4759010200069 -S315600184D080A4801616800009921000129016600022 -S315600184E07FFFFD0494102000A404A00180A48016DF -S315600184F006BFFFFB921000127FFFE3C2010000007E -S315600185007FFFE46590102000913A200A900A2003CB -S3156001851080A2200102800004010000007FFFA338D1 -S315600185209010200201000000921020009016600059 -S315600185307FFFFCE194102000010000007FFFE456FC -S31560018540901020001303C000922A00097FFFE454B3 -S3156001855090102000010000007FFFE3AA01000000E7 -S315600185607FFFE44D90102000913A200C900A200381 -S3156001857080A2200102BFFE1E010000007FFFA32032 -S315600185809010200330BFFE1A921000127FFFFD4546 -S3156001859090100018901A200580A00008A2647FFF41 -S315600185A0A404A001C206E16080A4800106BFFFF8B1 -S315600185B09210001280A4600012BFFE63173FFFBFD6 -S315600185C030BFFE5E7FFFA30E9010200710BFFE3DF9 -S315600185D0A41020007FFFA30A9010200530BFFE2D56 -S315600185E07FFFA3079010201130BFFE997FFFE42A19 -S315600185F090102000033FFFF08210603F920A000155 -S315600186007FFFE42790102000033FFFBFA010638027 -S3156001861092102000941020007FFFFCE290068010EB -S315600186207FFFE41D901020000303C0009212000139 -S315600186307FFFE41B9010200010800006A41020002C -S31560018640900680107FFFFCD794102005A404A0013A -S31560018650C206E16080A4800106BFFFFA9210001293 -S31560018660033FFFBFA01063809A102001DA2E8010AD -S3156001867003004000D80680108210600580A30001C7 -S3156001868002800004010000007FFFA2DD9010200B34 -S315600186907FFFE40190102000913A2006900A2003A2 -S315600186A080A2200102800004010000007FFFA2D4A5 -S315600186B09010200C7FFFE3F8901020001303C00098 -S315600186C0922A00097FFFE3F69010200092102000A5 -S315600186D0900680107FFFFCB3941020007FFFE3EECD -S315600186E0901020002103C000921200107FFFE3EC7E -S315600186F0901020007FFFE3E890102000808A001030 -S3156001870002BFFFFDA6100008A4102000C206E160AA -S3156001871080A480011680000E033FFFBF9A102001DE -S31560018720A2106380A12B401D921000129006801149 -S315600187307FFFFC8D94043FFFA404A001C206E160A3 -S3156001874080A4800106BFFFFA921000121303C000D5 -S31560018750922CC0097FFFE3D2901020002103C00054 -S315600187607FFFE3CD90102000808A001012BFFFFDCD -S315600187701B004000213FFFBF82142380D806800181 -S315600187809A13600580A3000D0280000401000000B9 -S315600187907FFFA29B9010200D7FFFE3BF901020000A -S315600187A0913A2008900A200380A2200122800005C8 -S315600187B0A01423787FFFA2929010200FA014237833 -S315600187C094068010981020119A102055D83A80008E -S315600187D07FFFE3B1901020000303C00092120001F5 -S315600187E0920A7F3F7FFFE3AE90102000A0068010C3 -S315600187F07FFFE3CD9010001010800006A4102000CA -S31560018800900420047FFFFC6794102055A404A00106 -S31560018810C206E16080A4800106BFFFFA92100012D1 -S31560018820113FFFBF901223787FFFE3BF9006800858 -S3156001883080A220111280000480A26055028000048B -S31560018840010000007FFFA26E901020107FFFE3926F -S3156001885090102000833A20068208600380A06001A0 -S3156001886002800004A61000087FFFA2659010201008 -S31560018870133C3FF09212603F920CC0097FFFE38880 -S315600188809010200010BFFDDC821020057FFFE3827F -S31560018890901020009212200F7FFFE381901020003C -S315600188A081C7E00891E820009DE3BF987FFFFC93B4 -S315600188B001000000B0100008130020409212600F02 -S315600188C07FFFE377901020000100000081C7E00878 -S315600188D081E80000033FFFBF821063589DE380017A -S315600188E07FFFFBE401000000400002380100000048 -S315600188F07FFFE36990102008A21000087FFFE366FE -S315600189009010200C7FFFA24DA0100008912A200430 -S315600189107FFFA2369002200C973C6014833C60185E -S31560018920953C2014993C201882086003960AE00F52 -S31560018930820060019602E00AA33C6010A13C20100F -S31560018940980B2003940AA00FA728400B98032001D7 -S31560018950A20C6007A00C20079402A00A9A102001BD -S31560018960A2046002A0042002B12B000A03200000C9 -S31560018970AB2B4011A52B40109620401898057FFF20 -S31560018980822040139A04BFFFAE130001A213400B6D -S31560018990210000307FFFE34090102000808A0010A4 -S315600189A012BFFFFD033FFFBF9A07BFF8821063C086 -S315600189B0A00340012D155555901000189210001016 -S315600189C07FFFE2C89415A15580A220001280004B5A -S315600189D0292AAAAA92100010901000187FFFE2D5EA -S315600189E0941522AA80A220001280004E0100000088 -S315600189F07FFFA21201000000912A20047FFFA1FBE4 -S31560018A009002200A400001EE01000000921522004A -S31560018A10920C4009901000189410001196100012E3 -S31560018A207FFFE2ED981522AA80A2200012800051F4 -S31560018A30010000009215A10090100018920C4009E7 -S31560018A4094100011961000127FFFE2E39815A1556C -S31560018A5080A2200012800044010000007FFFA1F780 -S31560018A6001000000912A20047FFFA1E09002200B03 -S31560018A70901000137FFFE2BF9215A15580A22000DE -S31560018A801280003501000000901000137FFFE2B9EB -S31560018A90921522AA80A220001280002C01000000FB -S31560018AA07FFFA1E601000000912A20047FFFA1CF8C -S31560018AB0900220099010001392100017941000156F -S31560018AC07FFFE2B8961522AA80A220001280001BC1 -S31560018AD00100000090100013921000179410001509 -S31560018AE07FFFE2B09615A15580A220000280002585 -S31560018AF0010000003080000E7FFFA1C190102001AF -S31560018B00292AAAAA92100010901000187FFFE28904 -S31560018B10941522AA80A2200002BFFFB601000000C0 -S31560018B207FFFA1B79010200230BFFFB27FFFA1B4D3 -S31560018B3090102008308000137FFFA1B190102007AC -S31560018B4010BFFFE6901000137FFFA1AD90102006C5 -S31560018B5030BFFFD47FFFA1AA9010200510BFFFCCC4 -S31560018B60901000137FFFA1A69010200430BFFFBCB8 -S31560018B707FFFA1A39010200310BFFFB09215A10043 -S31560018B807FFFFB3CB0102000400001900100000017 -S31560018B900100000081C7E00881E800009DE3BF98FD -S31560018BA07FFFA18D1100412CDA062004D80620042E -S31560018BB09A0B6003993B200282102007C226200887 -S31560018BC0BA036001B20B27FF010000009010200A72 -S31560018BD0C02600007FFFA18501000000170002008A -S31560018BE082103FFFC226000B032AAAAA1B15555500 -S31560018BF0D806000BAC102000821062AA9A13615548 -S31560018C00AA0B000180A5801D16800038A80B000DF7 -S31560018C109612E020A72E600880A4E0000480000C74 -S31560018C20A2102000832DA0028200401819000200C4 -S31560018C309A10000BE820400CEA20400DA204601057 -S31560018C4080A4C01114BFFFFC82006040AC05A00186 -S31560018C5080A5801D06BFFFF280A4E000AC10200055 -S31560018C6080A5801D1680002103000200B8106020D7 -S31560018C70A72E6008AE10001880A4E00004800017DB -S31560018C80A210200003000200A4060001A005C01C7A -S31560018C90C2048000A2046010A404A04080A0401415 -S31560018CA002800004901020017FFFA15501000000A1 -S31560018CB0C2040000A004204080A040150280000488 -S31560018CC0901020017FFFA14E0100000080A4C01119 -S31560018CD014BFFFF001000000AC05A00180A5801D56 -S31560018CE006BFFFE6AE05E0047FFFA1409010200CB1 -S31560018CF0AC10200080A5801D16800088031555558F -S31560018D009E1061551B000800032AAAAA9A136004E3 -S31560018D10901062AAA72E600880A4E0000480000E6D -S31560018D20A2102000832DA0138200401813000800B2 -S31560018D309410000F9610000D98100008D420400979 -S31560018D40D820400BA204600280A4C01114BFFFFCAE -S31560018D5082006008AC05A00180A5801D06BFFFF0FA -S31560018D6080A4E000AC10200080A5801D1680006BF9 -S31560018D7003155555B81061551B000800032AAAAAA8 -S31560018D80B6136004B41062AAA72E600880A4E0003E -S31560018D9004800019A2102000832DA013A0004018A2 -S31560018DA02F000800AA10001CA810001BA410001AAE -S31560018DB0C2040017A204600280A04015028000046C -S31560018DC0901020037FFFA10E01000000C204001471 -S31560018DD0A004200880A040120280000490102003A5 -S31560018DE07FFFA1070100000080A4C01114BFFFF13D -S31560018DF001000000AC05A00180A5801D06BFFFE54E -S31560018E0080A4E000AC10200080A5801D1680004380 -S31560018E10030008009E1060041B155555032AAAAA73 -S31560018E209A136155901062AAA72E600880A4E0008B -S31560018E300480000EA2102000832DA013820040182A -S31560018E40130008009410000F9610000D981000088A -S31560018E50D620400AD8204009A204600280A4C0112D -S31560018E6014BFFFFC82006008AC05A00180A5801DCF -S31560018E7006BFFFF080A4E000AC10200080A5801D35 -S31560018E801680002603155555B81061551B2AAAAAE6 -S31560018E9003000800A72E6008B61362AAB410600426 -S31560018EA080A4E00004800019A2102000832DA01385 -S31560018EB0A00040182F000800AA10001CA810001B73 -S31560018EC0A410001AC2040012A204600280A0401518 -S31560018ED002800004901020047FFFA0C901000000F9 -S31560018EE0C2040017A004200880A040140280000478 -S31560018EF0901020047FFFA0C20100000080A4C01171 -S31560018F0014BFFFF101000000AC05A00180A5801D22 -S31560018F1006BFFFE580A4E00082102005C226200876 -S31560018F201B200000DA26000081C7E00881E8000006 -S31560018F3081C3E0089144400080800000151801401B -S31560018F409412A18090102000921022468180000028 -S31560018F50010000000100000001000000D002800055 -S31560018F609122400881C3E008010000008180000071 -S31560018F70901020018090200180D020011280002C69 -S31560018F800100000080D23FFF168000290100000029 -S31560018F9080DA3FFF9340000080A27FFF12800024A9 -S31560018FA00100000080D23FFF9348000093326014B5 -S31560018FB0920A600F80A260081280001D0100000005 -S31560018FC08180000090102001945220049452A004E4 -S31560018FD09452A00496A2A0401280001501000000E0 -S31560018FE0818000009010200280A000003280001075 -S31560018FF09052000880A220021280000D010000003C -S31560019000818000009010200280A000000100000015 -S31560019010328000079052000880A22002128000046C -S315600190200100000081C3E0089010200181C3E008BF -S31560019030901000001315555592126155A582400096 -S31560019040010000000100000001000000954480005D -S3156001905080A2400A1280004301000000923A40005B -S31560019060A58240000100000001000000010000002F -S315600190709544800080A2400A1280003A01000000F7 -S315600190801100003F901223FFA5800000818000003F -S3156001909001000000010000000100000093F23FFFA3 -S315600190A09A10000993F23FFF93F23FFF93F23FFF5D -S315600190B093F23FFF93F23FFF93F23FFF93F23FFF3D -S315600190C09940000097448000153FFC009412A00867 -S315600190D080A2400A1280002380A2400B12800021E8 -S315600190E080A320071280001F113FFF80901220018C -S315600190F080A340081280001B1100003F901223FFDD -S31560019100A5800000818000000100000001000000D0 -S315600191100100000093FA3FFF93FA3FFF93FA3FFF86 -S3156001912093FA3FFF93FA3FFF93FA3FFF93FA3FFFAC -S3156001913093FA3FFF994000009744800080A260083F -S315600191401280000880A260081280000680A32000B9 -S31560019150128000040100000081C3E0089010200124 -S3156001916081C3E00890100000818000009010200209 -S3156001917080A00000328000109072000880A2200258 -S315600191801280000D01000000818000009010200215 -S3156001919080A0000001000000328000079072000884 -S315600191A080A22002128000040100000081C3E00851 -S315600191B09010200181C3E00890100000C0A000401B -S315600191C081C3E00801000000110020409012200FC9 -S315600191D0D0A0004081C3E008010000009DE3BF9874 -S315600191E07FFFE12D90102008A21000087FFFE12A81 -S315600191F09010200C833C60149B3A2014A13A2018ED -S31560019200A33C6018A20C6003A00C20038208600FC7 -S315600192109A0B600F8200600A9A03600AA2046001D9 -S31560019220A0042001A32C40017FFFFFE5A12C000DC6 -S315600192307FFFE090901000117FFFE09C901000107E -S315600192407FFFF98C010000007FFFFFE081E80000ED -S315600192500100000098120009818200009AAB2FFF7D -S315600192600280002598880000992300099923000946 -S315600192709923000999230009992300099923000973 -S315600192809923000999230009992300099923000963 -S315600192909923000999230009992300099923000953 -S315600192A09923000999230009992300099923000943 -S315600192B09923000999230009992300099923000933 -S315600192C09923000999230009992300099923000923 -S315600192D09923000999230009992300099923000913 -S315600192E099230009992300099923000081C3E008A5 -S315600192F091400000992300099923000999230009E7 -S3156001930099230009992300099923000999230009E2 -S3156001931099230009992300099923000999230009D2 -S3156001932099230009992300009B400000992B200C8A -S315600193309B33601481C3E0089013400C1080000BCE -S31560019340861020008092400816800008861000086A -S31560019350809240001680000480920000168000030F -S3156001936092200009902000089A9240001280000520 -S315600193709610000891D0200281C3E0089010000089 -S3156001938080A2C00D0A8000959410000003020000BF -S3156001939080A2C0010A8000289810000080A34001C5 -S315600193A01A80000D841020019B2B600410BFFFFC06 -S315600193B0980320019A83400D1A8000078400A0015A -S315600193C0832860049B3360019A0340011080000783 -S315600193D08420A00180A3400B0ABFFFF701000000B3 -S315600193E0028000020100000084A0A00106800076D0 -S315600193F0010000009622C00D941020011080000A21 -S3156001940001000000952AA001068000059B336001DA -S315600194109622C00D108000049402A0019602C00D30 -S315600194209422A00184A0A00116BFFFF78092C0001C -S31560019430308000659B2B600480A3400B08BFFFFE54 -S315600194409883200102800065982320018092C000E4 -S31560019450952AA0040680002F9B33600196A2C00D59 -S31560019460068000179B33600196A2C00D0680000B33 -S315600194709B33600196A2C00D068000059B33600197 -S3156001948096A2C00D108000509402A00F9682C00D66 -S315600194901080004D9402A00D9682C00D06800005D5 -S315600194A09B33600196A2C00D108000479402A00B09 -S315600194B09682C00D108000449402A0099682C00D68 -S315600194C00680000B9B33600196A2C00D06800005E5 -S315600194D09B33600196A2C00D1080003B9402A007E9 -S315600194E09682C00D108000389402A0059682C00D48 -S315600194F0068000059B33600196A2C00D1080003284 -S315600195009402A0039682C00D1080002F9402A001E0 -S315600195109682C00D068000179B33600196A2C00D2E -S315600195200680000B9B33600196A2C00D0680000584 -S315600195309B33600196A2C00D108000239402BFFF89 -S315600195409682C00D108000209402BFFD9682C00DE8 -S31560019550068000059B33600196A2C00D1080001A3B -S315600195609402BFFB9682C00D108000179402BFF96A -S315600195709682C00D0680000B9B33600196A2C00DDA -S31560019580068000059B33600196A2C00D1080000E17 -S315600195909402BFF79682C00D1080000B9402BFF54E -S315600195A09682C00D068000059B33600196A2C00DB0 -S315600195B0108000059402BFF39682C00D10800002F0 -S315600195C09402BFF198A3200116BFFFA28092C0004A -S315600195D0268000029602C0098090C00026800002A3 -S315600195E09620000B81C3E0089010000B92100008D2 -S315600195F09010200094102000961020008213C00065 -S31560019600400000039E104000010000009DE3BF98EA -S3156001961023180143400005F6901460F40318006DA9 -S31560019620E0006178D004214880A220002280002DCC -S315600196309004214CD602200480A2E01F1480001DF4 -S315600196400100000080A620001280000B9402208891 -S31560019650832AE0029A02E00182004008DA222004AD -S31560019660F2206008400005FA901460F41080002230 -S31560019670B0102000821020019328400B992AE00245 -S31560019680DA02A1009A1340098203000AF62060807B -S31560019690F422800C80A6200212BFFFEEDA22A1001E -S315600196A0C202A1048210400910BFFFEAC222A104CE -S315600196B0400000139010219080A220000280000BD0 -S315600196C096102000C2042148C2220000D0242148FD -S315600196D0C0222004C022218810BFFFDBC022218C5A -S315600196E010BFFFD5D0242148400005D9901460F4FD -S315600196F0B0103FFF81C7E00881E8000092100008C2 -S3156001970003180141D00063708213C0004000000A53 -S315600197109E104000010000009210000803180141EC -S31560019720D00063708213C000400002199E10400091 -S31560019730010000009DE3BF988206600B80A0601661 -S31560019740A610001818800003A0087FF8A01020104A -S3156001975080A400199A4020008334201F8090400D18 -S31560019760128001B0B0102000400001B090100013CB -S3156001977080A421F71880001799342009391801410E -S315600197808217238098040001F003200C80A6000C48 -S315600197900280004E9F342003C206200494087FFC99 -S315600197A09A06000AC203600482106001D006200C8A -S315600197B0D2062008D2222008C2236004D022600C7F -S315600197C0400001A09010001310800196B006200899 -S315600197D080A32000128000289F342003391801419C -S315600197E09B2BE003821723809A0340011080000AB5 -S315600197F0F003600C94087FFC9622801080A2E00F33 -S315600198001480010980A2E00036BFFFE79A06000ACC -S31560019810F006200C80A6000D32BFFFF7C2062004B9 -S315600198209E03E001251801419814A388F0032008DE -S3156001983080A6000C0280005D833BE01FC206200407 -S3156001984094087FFC9622801080A2E00F1480009F0E -S3156001985080A2E000D823200C06800023D8232008AC -S315600198609A06000AC20360048210600110BFFFD528 -S31560019870C22360048334200680A3200408BFFFD876 -S315600198809E00603880A3201408BFFFD59E03205B2D -S315600198908334200C80A3205408BFFFD19E00606EE4 -S315600198A08334200F80A3215408BFFFCD9E006077CB -S315600198B08334201280A3255408BFFFC99E00607CB3 -S315600198C010BFFFC79E10207E98062008F003200C6B -S315600198D080A6000C32BFFFB2C206200410BFFFD2C1 -S315600198E09E03E00280A2A1FF088000BE9B32A00316 -S315600198F09732A00980A2E000228000179617238084 -S315600199008332A00680A2E004088000129A006038C3 -S3156001991080A2E0140880000F9A02E05B8332A00CFB -S3156001992080A2E0540880000B9A00606E8332A00F1B -S3156001993080A2E154088000079A0060778332A01202 -S3156001994080A2E554088000039A00607C9A10207E0C -S3156001995096172380832B60039000400BD202200868 -S3156001996080A240082280010F99336002C20260041E -S3156001997082087FFC80A0400A28800007D002600C24 -S31560019980D202600880A2400832BFFFFAC2026004B8 -S31560019990D002600CD026200CD2262008F022600C62 -S315600199A0F0222008833BE01F8330601E8203C001E2 -S315600199B03918014183386002981723809A10200173 -S315600199C0932B4001D803200480A2400C1880004BE1 -S315600199D0AE172380808B00091280000D03180141A8 -S315600199E0820BFFFC92024009808B000912800007FE -S315600199F09E0060048210000C920240098088400932 -S31560019A0002BFFFFE9E03E00403180141A2106380BA -S31560019A10A8100011832BE003980040119010000FED -S31560019A209A10000C1080000AF003600C94087FFC09 -S31560019A309622801080A2E00F1480007D80A2E00053 -S31560019A403680008B9A06000AF006200C80A6000D6F -S31560019A5032BFFFF7C20620049E03E001808BE0035C -S31560019A6012BFFFF19A036008808A200398033FF8CA -S31560019A70028000D490023FFFC203200880A0400C00 -S31560019A8002BFFFFB808A200392024009C2052004BF -S31560019A9080A24001188000183918014180A2600037 -S31560019AA0128000068088400910800014AE1723805A -S31560019AB09E03E0048088400922BFFFFE92024009AE -S31560019AC010BFFFD6832BE003821420019406001099 -S31560019AD0C2262004D423200CD42320088212E0015C -S31560019AE0D622800BD822A008C222A00410BFFF355F -S31560019AF0D822A00CAE172380F005E008C206200428 -S31560019B00AA087FFC80A540109A4020009625401047 -S31560019B1080A2E00F148000428210200180934001F0 -S31560019B200280002703180143DA0061982D1801416C -S31560019B309A04000DC205A378A810001580A07FFFC6 -S31560019B40A203601002800004A406001582046FFF60 -S31560019B50A208700090100013400000C0921000111E -S31560019B6080A23FFF02800008B210000880A20012A6 -S31560019B701A8000463B18014380A6001722800044E4 -S31560019B80C207616882172380D8006008DA0320045F -S31560019B909A0B7FFC80A340109840200096234010CA -S31560019BA080A2E00F04800003821020018210200051 -S31560019BB080930001128000980100000098172380AD -S31560019BC0F003200882142001C22620049A060010A0 -S31560019BD08212E001C223600410BFFEFADA23200874 -S31560019BE098033FF8832B60039000400C9B3360021F -S31560019BF0821020018328400DD2022008DA03200456 -S31560019C009A134001D026200CD2262008F022600C3F -S31560019C10DA23200410BFFF64F022200810BFFFC0C2 -S31560019C208210200010BFFEFF9E03FFFFD006200CAE -S31560019C30D20620089A142001940600108214A38883 -S31560019C40D2222008D022600CDA262004D420600CAF -S31560019C50D42060089A12E001D622800BC222A008A5 -S31560019C60DA22A00410BFFED7C222A00CC203600490 -S31560019C7082106001D006200CD2062008C22360043F -S31560019C8010BFFECFD2222008C20761688200401150 -S31560019C9080A640120280004FC2276168C205A37880 -S31560019CA080A07FFF02800045C20761689A26401244 -S31560019CB08200400DC22761689A8E600702800005A6 -S31560019CC0A410200082102008A420400DB206401284 -S31560019CD09A0640119A0B6FFF030000048220400D23 -S31560019CE0A4048001901000134000005C92100012E1 -S31560019CF080A23FFF2280003FA4102000822200192B -S31560019D009000401282172380DA0761689A03401235 -S31560019D1080A60001F2206008DA27616802800037B8 -S31560019D208212200180A5600F38800005C22660047A -S31560019D308210200110BFFF94C2266004C20620046F -S31560019D409A057FF4A80B7FF882086001821040149F -S31560019D50C22620049A06001482102005C2236008D8 -S31560019D6080A5200F18800027C223600419180143BB -S31560019D70DA076168C203219480A34001388000023A -S31560019D80DA23219419180143C203219080A340016B -S31560019D9038BFFF7DDA23219010BFFF7C82172380B5 -S31560019DA09A102001C202E0049B2B400C8210400DE8 -S31560019DB010BFFEF9C222E00410BFFFC0F225A378EE -S31560019DC0C20460048228400910BFFF30C2246004C7 -S31560019DD0808E6FFF12BFFFB3C205A3789004401453 -S31560019DE0DA05E0088212200110BFFFE1C223600498 -S31560019DF010BFFFC39010001910BFFFDDC2266004BB -S31560019E0092062008400000629010001310BFFFD92F -S31560019E10191801434000000B90100013B010200088 -S31560019E2081C7E00881E80000111801429012238879 -S31560019E308213C000400003EE9E1040000100000046 -S31560019E4011180142901223888213C0004000040059 -S31560019E509E104000010000009DE3BF982118014457 -S31560019E60C02421704000020D9010001980A23FFFAE -S31560019E7012800006C204217080A060000280000387 -S31560019E8001000000C226000081C7E00891E80008D1 -S31560019E909DE3BF987FFFFFE590100018031801410D -S31560019EA0A2106380DA046008C2036004A0087FFC24 -S31560019EB0B2240019B2066FEFB20E7000B2067000DE -S31560019EC09210200080A66FFF0480000A901000188F -S31560019ED07FFFFFE201000000C204600882004010BB -S31560019EE080A0400892200019028000059010001899 -S31560019EF07FFFFFD4B0102000308000237FFFFFD7A3 -S31560019F00901000188224001980A23FFF8210600120 -S31560019F1092102000191801430280000B901000185E -S31560019F20DA046008C2236004C203216882204019F2 -S31560019F30901000187FFFFFC3C223216810800012B2 -S31560019F40B01020017FFFFFC50100000098100008D6 -S31560019F50D6046008A023000B9010001880A4200F7F -S31560019F6004BFFFE4B214200103180141DA006378EB -S31560019F709A23000D03180143DA20616810BFFFDDE3 -S31560019F80F222E00481C7E00881E800009DE3BF9802 -S31560019F9080A660000280009DA41000187FFFFFA3C9 -S31560019FA090100018A0067FF8D6042004900AFFFEE0 -S31560019FB01918014194040008A2132380DA02A0044F -S31560019FC0C204600880A0400A028000449E0B7FFCA8 -S31560019FD0808AE001DE22A0041280000CB01020000D -S31560019FE0F2067FF8A024001982046008DA042008CA -S31560019FF080A340010280007D90020019D204200CEA -S3156001A000DA226008D223600C8202800FDA006004D3 -S3156001A010808B60011280000A8212200180A62000D6 -S3156001A020028000229002000FDA02A008D202A00C80 -S3156001A030DA226008D223600C82122001C224200435 -S3156001A04080A6200002800005D0240008B01000120E -S3156001A0507FFFFF7C81E8000080A221FF1880003627 -S3156001A060973220099B32200398132380832B600348 -S3156001A0709200400C9B336002821020018328400DC0 -S3156001A080D6026008DA0320049A134001D224200C18 -S3156001A090D6242008E022E00CDA232004E0226008BE -S3156001A0A010BFFFECB010001203180141DA02A008DC -S3156001A0B08210638880A3400132BFFFDED202A00C0A -S3156001A0C0E023600CE0236008DA242008DA24200CFF -S3156001A0D010BFFFDAB0102001808AE001128000090A -S3156001A0E09002000FF2067FF8A0240019D204200C1A -S3156001A0F0D6042008D622600890020019D222E00C0C -S3156001A10003180141DA00637C98122001E02460089B -S3156001A11080A2000D0ABFFFCFD82420040318014393 -S3156001A120D20061987FFFFF5B901000127FFFFF45B1 -S3156001A13081E8000080A2E000028000169B322003C5 -S3156001A1408332200680A2E004088000129A006038FB -S3156001A15080A2E0140880000F9A02E05B8332200C33 -S3156001A16080A2E0540880000B9A00606E8332200F53 -S3156001A17080A2E154088000079A006077833220123A -S3156001A18080A2E554088000039A00607C9A10207EC4 -S3156001A19094132380832B60039200400AD6026008E1 -S3156001A1A080A2C0090280001399336002C202E004F2 -S3156001A1B082087FFC80A0400828800007D202E00C5C -S3156001A1C0D602E00880A2C00932BFFFFAC202E004EB -S3156001A1D0D202E00CD224200CD6242008E022E00C26 -S3156001A1E010BFFFB0E022600810BFFF88B0102001E9 -S3156001A1F09A102001C202A0049B2B400C8210400DD4 -S3156001A20010BFFFF5C222A00481C7E00881E8000003 -S3156001A2109DE3BF98D206400080A2600012800004D0 -S3156001A220901000187FFFFF5A81E800007FFFFFF959 -S3156001A230010000007FFFFF5681E800000100000079 -S3156001A2409DE3BF9803180141DA00637080A6000D93 -S3156001A2500280004101000000D206204C80A260000D -S3156001A2601280001CA0102000D206214880A2600046 -S3156001A2702280000FD2062054A006214C80A24010F5 -S3156001A2802280000BD206205410800005B21000090E -S3156001A290F20640007FFFFF3E9010001880A400196F -S3156001A2A012BFFFFC92100019D206205480A26000F2 -S3156001A2B01280002501000000C206203880A06000DF -S3156001A2C0028000250100000010800017C206203CB4 -S3156001A2D0832C2002F202400180A660002280000BDE -S3156001A2E0A004200192100019F20640007FFFFF28AA -S3156001A2F09010001880A6600012BFFFFC9210001932 -S3156001A300D206204CA004200180A4200E04BFFFF2D7 -S3156001A310832C20027FFFFF1E9010001810BFFFD410 -S3156001A320D20621489FC0400090100018F20622E034 -S3156001A33080A6600002800008010000007FFFFFB573 -S3156001A34081E800007FFFFF129010001810BFFFDC4C -S3156001A350C206203881C7E00881E800009DE3BF9806 -S3156001A36080A620000280001D03180141E4062148F1 -S3156001A37080A4A00022800013C206203CE204A0044F -S3156001A380A2847FFF0C80000A832C60028200401247 -S3156001A390A0006008C20400009FC04000A0043FFC0A -S3156001A3A0A2847FFF3CBFFFFDC2040000E40480007D -S3156001A3B080A4A00032BFFFF3E204A004C206203CE1 -S3156001A3C080A0600002800007010000009FC040007D -S3156001A3D0901000183080000310BFFFE5F000637035 -S3156001A3E081C7E00881E800001080000B861020001C -S3156001A3F08092400816800008861A400880924000C4 -S3156001A40016800004809200001680000392200009E5 -S3156001A410902000089A92400012800005961000086C -S3156001A42091D0200281C3E0089010000080A2C00D87 -S3156001A4300A800095941000000302000080A2C0010A -S3156001A4400A8000289810000080A340011A80000D40 -S3156001A450841020019B2B600410BFFFFC9803200130 -S3156001A4609A83400D1A8000078400A0018328600446 -S3156001A4709B3360019A034001108000078420A0018C -S3156001A48080A3400B0ABFFFF70100000002800002B3 -S3156001A4900100000084A0A001068000760100000092 -S3156001A4A09622C00D941020011080000A0100000060 -S3156001A4B0952AA001068000059B3360019622C00D96 -S3156001A4C0108000049402A0019602C00D9422A0019E -S3156001A4D084A0A00116BFFFF78092C000308000659E -S3156001A4E09B2B600480A3400B08BFFFFE988320016D -S3156001A4F002800065982320018092C000952AA004FD -S3156001A5000680002F9B33600196A2C00D068000175E -S3156001A5109B33600196A2C00D0680000B9B336001E0 -S3156001A52096A2C00D068000059B33600196A2C00D00 -S3156001A530108000509402A00F9682C00D1080004DCD -S3156001A5409402A00D9682C00D068000059B336001C2 -S3156001A55096A2C00D108000479402A00B9682C00D92 -S3156001A560108000449402A0099682C00D0680000BFB -S3156001A5709B33600196A2C00D068000059B33600186 -S3156001A58096A2C00D1080003B9402A0079682C00D72 -S3156001A590108000389402A0059682C00D06800005E1 -S3156001A5A09B33600196A2C00D108000329402A00315 -S3156001A5B09682C00D1080002F9402A0019682C00D74 -S3156001A5C0068000179B33600196A2C00D0680000BC2 -S3156001A5D09B33600196A2C00D068000059B33600126 -S3156001A5E096A2C00D108000239402BFFF9682C00D13 -S3156001A5F0108000209402BFFD9682C00D0680000582 -S3156001A6009B33600196A2C00D1080001A9402BFFBB5 -S3156001A6109682C00D108000179402BFF99682C00D14 -S3156001A6200680000B9B33600196A2C00D0680000573 -S3156001A6309B33600196A2C00D1080000E9402BFF795 -S3156001A6409682C00D1080000B9402BFF59682C00DF4 -S3156001A650068000059B33600196A2C00D108000053F -S3156001A6609402BFF39682C00D108000029402BFF17E -S3156001A67098A3200116BFFFA28092C0002680000227 -S3156001A6809422A0018090C000268000029420000AD6 -S3156001A69081C3E0089010000A19180144DA03217495 -S3156001A6A080A36000128000068203400803180144FB -S3156001A6B09A106188DA23217482034008C2232174C7 -S3156001A6C081C3E0089010000DA7500000AE10000194 -S3156001A6D08334E00129180143E8052038A92CC01408 -S3156001A6E08215000181E000008190400001000000B8 -S3156001A6F00100000001000000E03BA000E43BA0086F -S3156001A700E83BA010EC3BA018F03BA020F43BA0284E -S3156001A710F83BA030FC3BA03881E8000082100017AE -S3156001A72081C4400081CC800001000000010000006E -S3156001A73001000000A7500000A92CE0012B1801437D -S3156001A740EA056038AB34C015AA15401481954000FE -S3156001A75001000000010000000100000081E8000026 -S3156001A76081E80000E01BA000E41BA008E81BA01024 -S3156001A770EC1BA018F01BA020F41BA028F81BA0302E -S3156001A780FC1BA03881E0000081E0000081C440002C -S3156001A79081CC8000A75000002918006CADC521044A -S3156001A7A00100000027180143A614E018E024C00048 -S3156001A7B0818C2020010000000100000001000000E2 -S3156001A7C09DE3BFA09DE3BFA09DE3BFA09DE3BFA0A6 -S3156001A7D09DE3BFA09DE3BFA09DE3BFA081E800000C -S3156001A7E081E8000081E8000081E8000081E800005E -S3156001A7F081E8000081E8000027180143A614E018EB -S3156001A800C024C000E203A068A4046004E223A0643B -S3156001A810E423A06810800262AC100000291801428E -S3156001A820A81523FCC2252000C8252004E025201098 -S3156001A830E2252014E4252018E825201C81E8000083 -S3156001A8408348000082106F0081886020010000004B -S3156001A850010000000100000009180143C801203809 -S3156001A86081E000008821200180A920FF0280000389 -S3156001A870010000000100000080A1000012BFFFF985 -S3156001A8800100000009180143C801203881E8000071 -S3156001A89080A920FF02800003010000000100000082 -S3156001A8A08821200180A1000012BFFFF9010000008C -S3156001A8B081E0000029180142A81523FCC80520047F -S3156001A8C0C2052000E0052010E2052014E4052018E9 -S3156001A8D0C025201C818C20000100000001000000C1 -S3156001A8E00100000081C4800081CCA004A0142F0067 -S3156001A8F0818C0000010000000100000001000000E1 -S3156001A90081C4800081CCA00480A66002128000050B -S3156001A910A8142F00818D0000B01420203080001F04 -S3156001A92080A6600312800006A80E2F00AA2C2F00B5 -S3156001A930A8154014818D00003080001880A660043F -S3156001A94012800008A9480000A8152040818D0000EA -S3156001A9500100000001000000010000003080000FCE -S3156001A96080A6600512800008A9480000A82D204035 -S3156001A970818D00000100000001000000010000005F -S3156001A9803080000680A66006128000030100000088 -S3156001A99030BFFFA391D0200081C4800081CCA00488 -S3156001A9A09210200381C3E00891D020029210200208 -S3156001A9B081C3E00891D020029210200681C3E0088D -S3156001A9C091D0200281C3E0080100000081C3E00844 -S3156001A9D00100000081C3E00801000000AE25A0105F -S3156001A9E0A75000002D18006AAC15A1F02918006C5B -S3156001A9F081C522AC01000000111801439012202488 -S3156001AA00D202000092026001D2220000932DE0087A -S3156001AA10902C2F0092120009111801439012201CEC -S3156001AA20D002000080A000082280000292126F000E -S3156001AA30818A602001000000010000000100000021 -S3156001AA4090100017400000319203A06092142F000D -S3156001AA50818A602001000000010000000100000001 -S3156001AA601118014390122024D20200009222600143 -S3156001AA70D22200001080022DAC1000001B18014488 -S3156001AA809A13602C912A2002C2034008C222600CEC -S3156001AA9081C3E008D22340089DE3BF9803180144AF -S3156001AAA08210602C992E60021B180143972E600458 -S3156001AAB0D800400C9A13622C901000199202C00DB6 -S3156001AAC080A6601F1480000F82102000108000068F -S3156001AAD080A320002280000AC2024000D803200C15 -S3156001AAE080A3200012BFFFFC80A300097FFFFFE463 -S3156001AAF0F02240001080000382102000F022400006 -S3156001AB0081C7E00891E800019DE3BF981B180143E6 -S3156001AB1082136028D800600480A300180280004474 -S3156001AB20C203602880A6200022800002B010000CBB -S3156001AB3003180144A32E20028210602CE00040110C -S3156001AB4080A420000280003D03180143108000129A -S3156001AB50A41061A8D2042008941000199FC30000B4 -S3156001AB609010001803180143C20061A080A0600024 -S3156001AB701280002B01000000C204801182007FFF59 -S3156001AB80C2248011E004200C80A420000280002BE6 -S3156001AB9001000000D804000080A3200022BFFFFB53 -S3156001ABA0E004200C03180143DA00622880A36000E8 -S3156001ABB0128000089610001203180143821061A8E2 -S3156001ABC0DA00401180A3600032BFFFF0E004200C80 -S3156001ABD0DA02C011031801439A036001C20061A43D -S3156001ABE080A0600002BFFFDCDA22C0119FC0400076 -S3156001ABF001000000D8040000D20420089410001956 -S3156001AC009FC300009010001803180143C20061A0A1 -S3156001AC1080A0600022BFFFDAC20480119FC040009D -S3156001AC200100000010BFFFD6C2048011DA0060C0C7 -S3156001AC3010BFFFBDB00B601F81C7E00881E800004F -S3156001AC408C10000FA74800008B34E0188A09600F4A -S3156001AC5080A160030280000C0B1801438A116030E9 -S3156001AC600920000088112070C82140000B1801439B -S3156001AC708A1160500920000088112040C8214000D7 -S3156001AC80108000399010200192102006400001DDED -S3156001AC900100000080A0000802800033010000006E -S3156001ACA0C2022010113FFC0082084008110003FC1B -S3156001ACB08410400890100002921020019410200C1C -S3156001ACC0400001E60100000080A000080280002625 -S3156001ACD001000000400001F6921000010B180143CB -S3156001ACE08A116030D221400090100002921020013A -S3156001ACF094102011400001D90100000080A00008D5 -S3156001AD000280001901000000400001E99210000173 -S3156001AD10920260100B1801438A116050D2214000E3 -S3156001AD2090100002921020019410200D400001CB7A -S3156001AD300100000080A000080280000B01000000F5 -S3156001AD40400001DB921000010B1801438A11602853 -S3156001AD50D2214000D40260109532A010940AA00F4F -S3156001AD60D42160049E10000681C3E0080100000042 -S3156001AD7003180143821060488210200191D020009F -S3156001AD8081C3E008010000009DE3BF9803180144F8 -S3156001AD90C20060C8901000189210001980A060006F -S3156001ADA002800005B01020009FC040000100000035 -S3156001ADB0B010000881C7E00881E800009DE3BF98F4 -S3156001ADC003180144C20060C49010001880A060009E -S3156001ADD002800005B01020009FC040000100000005 -S3156001ADE0B010000881C7E00881E800009DE3BF98C4 -S3156001ADF003180144C20060BC9010001880A0600076 -S3156001AE0002800005B01020009FC0400001000000D4 -S3156001AE10B010000881C7E00881E800009DE3BF9893 -S3156001AE2003180144C20060C09010001880A0600041 -S3156001AE3002800005B01020009FC0400001000000A4 -S3156001AE40B010000881C7E00881E800009DE3BF9863 -S3156001AE5003180144C20060B89010001880A0600019 -S3156001AE6002800005B01020009FC040000100000074 -S3156001AE70B010000881C7E00881E800009DE3BF9833 -S3156001AE8003180144C20060B49010001880A06000ED -S3156001AE9002800005B01020009FC040000100000044 -S3156001AEA0B010000881C7E00881E800009DE3BF9803 -S3156001AEB003180144C20060B09010001880A06000C1 -S3156001AEC002800005B01020009FC040000100000014 -S3156001AED0B010000881C7E00881E800009DE3BF98D3 -S3156001AEE003180144C20060AC90100018921000195A -S3156001AEF080A0600002800005B01020009FC0400065 -S3156001AF0001000000B010000881C7E00881E8000078 -S3156001AF10010000000318006B821063E09FC04000CF -S3156001AF200100000003180000821060008198400053 -S3156001AF300318006C821060649FC04000010000002D -S3156001AF400318006B821063D09FC0400001000000AF -S3156001AF508B4800008B3160188A09600380A1600309 -S3156001AF6012800007010000008B4440008B31601C99 -S3156001AF7080A1400012800006010000007FFFFF31C2 -S3156001AF80010000007FFF9879010000009C23A0402A -S3156001AF907FFF981C010000008210200191D02000E3 -S3156001AFA00100000029000004A68C00143280000311 -S3156001AFB0A02C001491D02000818C000001000000BB -S3156001AFC0010000000100000081C4800081CCA00462 -S3156001AFD081C3E0080100000081C1E00801000000B2 -S3156001AFE0A74800008B34E0188A09600380A16003DA -S3156001AFF0128000080100000021180143A0142040BE -S3156001B000A2102003E22400008B4440001080000857 -S3156001B01021180143A0142040A2102002E22400005E -S3156001B02021200000E60420248B34E0148A09601F85 -S3156001B03027180143A614E038CA24C0008A016001BA -S3156001B04027180143A614E034CA24C0002718014317 -S3156001B050A614E03C8A216002CA24C00081C3E008CC -S3156001B0600100000081C3E008010000008348000080 -S3156001B070833060188208600380A060031280000636 -S3156001B0800100000083444000050000088228400258 -S3156001B090A3804000881000000918006B81C1231449 -S3156001B0A0010000009DE3BF980318006D1B18006D39 -S3156001B0B0A01061609A13616080A4000D1A8000106F -S3156001B0C0A210000D10800006C204000080A40011C9 -S3156001B0D01A80000B01000000C204000080A060001D -S3156001B0E002BFFFFBA00420049FC0400001000000D6 -S3156001B0F080A400112ABFFFFAC204000081C7E008DC -S3156001B10081E80000AA27A0B0E0256060E2256064BE -S3156001B110E4256068C2256074C43D6078C83D60807E -S3156001B120CC3D608885400000C425606CF03D609030 -S3156001B130F43D6098F83D60A0FC3D60A8A810200130 -S3156001B140A92D0010808D00130280001301000000FC -S3156001B1508534E00107180143C600E038A72CC00317 -S3156001B1608414C0028408A0FF81E000008190A000E1 -S3156001B170E03BA000E43BA008E83BA010EC3BA01834 -S3156001B180F03BA020F43BA028F83BA030FC3BA03864 -S3156001B19081E8000081C5A0089C10001505180143CF -S3156001B1A08410A19CC400800080A0800002800004FD -S3156001B1B0010000009FC080009203A060818C200086 -S3156001B1C0821020028328401005180143C400A03470 -S3156001B1D085304002821040028550000080888001DF -S3156001B1E0028000208328A00107180143C600E038C9 -S3156001B1F08530800382104002820860FF8190600082 -S3156001B200C203A06C81806000F01BA090F41BA09823 -S3156001B210F81BA0A0FC1BA0A8C203A074C41BA07845 -S3156001B220C81BA080CC1BA088E003A060E203A064D9 -S3156001B230E403A06881E80000E01BA000E41BA0080D -S3156001B240E81BA010EC1BA018F01BA020F41BA02883 -S3156001B250F81BA030FC1BA0381080000F81E00000B5 -S3156001B260C203A06C81806000F01BA090F41BA098C3 -S3156001B270F81BA0A0FC1BA0A8C203A074C41BA078E5 -S3156001B280C81BA080CC1BA088E003A060E203A06479 -S3156001B290E403A068818C2000010000000100000029 -S3156001B2A00100000081C4400081CC8000AA27A0B0C3 -S3156001B2B0C2256074C43D6078C83D6080CC3D6088BD -S3156001B2C085400000C425606CA8102001A92D0010DE -S3156001B2D0808D001302800013010000008534E001B7 -S3156001B2E007180143C600E038A72CC0038414C002C6 -S3156001B2F08408A0FF81E000008190A000E03BA000EF -S3156001B300E43BA008E83BA010EC3BA018F03BA02072 -S3156001B310F43BA028F83BA030FC3BA03881E8000054 -S3156001B32081C5A0089C100015051801438410A19CD5 -S3156001B330C400800080A0800002800004010000003B -S3156001B3409FC080009203A060818C20008210200241 -S3156001B3508328401005180143C400A034853040029B -S3156001B36082104002855000008088800102800019A9 -S3156001B3708328A00107180143C600E03885308003A1 -S3156001B38082104002820860FF81906000C203A06C57 -S3156001B39081806000C203A074C41BA078C81BA08012 -S3156001B3A0CC1BA08881E80000E01BA000E41BA0087C -S3156001B3B0E81BA010EC1BA018F01BA020F41BA02812 -S3156001B3C0F81BA030FC1BA0381080000881E000004B -S3156001B3D0C203A06C81806000C203A074C41BA07804 -S3156001B3E0C81BA080CC1BA088818C200001000000B6 -S3156001B3F0010000000100000081C4400081CC800092 -S3156001B400821000089A10380096102000912AE005F3 -S3156001B41098034008D40340089132A01880A2000125 -S3156001B420328000089602E0019132A00C900A2FFF4B -S3156001B43080A20009028000079410000C9602E001C8 -S3156001B44080A2E00728BFFFF3912AE005941020004F -S3156001B45081C3E0089010000A82100008981020004D -S3156001B460912B20039A004008D60040089132E018DB -S3156001B47080A2000932800008980320019132E00C15 -S3156001B480900A2FFF80A2000A028000079610000D25 -S3156001B4909803200180A3200F28BFFFF3912B20037F -S3156001B4A09610200081C3E0089010000BD40220049E -S3156001B4B0173FFC00920A400B900A800B9132200CD8 -S3156001B4C0921240081100003F901223F0940A8008FE -S3156001B4D0952AA0049412800B920A400A81C3E0085F -S3156001B4E0901000099DE3BF980318006D82106148B2 -S3156001B4F0DA007FFC80A37FFF02800009A0007FFC49 -S3156001B5008210000D9FC04000A0043FFCC2040000F1 -S3156001B51080A07FFF12BFFFFC0100000081C7E00829 -S3156001B52081E800009DE3BF9881C7E00881E80000DB -S3156001B53000000000000000000000000000000000A4 -S3156001B54000000002FFFFFFFF000000000000000096 -S3156001B55000000002FFFFFFFF000000000000000086 -S3156001B56040080000000000003CD203AF9EE756167B -S3156001B5703E7AD7F29ABCAF4860050220000000000F -S3156001B580430000009DE3BFA07FFF96DB0100000042 -S3156001B5907FFFFFD50100000081C7E00881E8000058 -S3156001B5A09DE3BFA07FFF96B60100000081C7E0085A -S3156001B5B081E80000000000000000000000000000BB -S315600200000000000100000000000000006001B55819 -S315600200102000000000000000000000000000000058 -S315600200200000000000000000000000000000000068 -S315600200300000000000000000000000000000000058 -S315600200400000000000000000000000000000000048 -S315600200500000000000000000000000010000000037 -S315600200600000000000000000000000000000000028 -S315600200700000000000000000000000000000000018 -S315600200800000000000000000000000000000000008 -S3156002009000000000000000000000000000000001F7 -S315600200A000000000000000000000000000000000E8 -S315600200B000000000000000000000000000000000D8 -S315600200C000000000000000000000000000000000C8 -S315600200D000000000000000000000000000000000B8 -S315600200E00000000100000000000000410000000066 -S315600200F0343074693934612B307967697975303592 -S315600201007968617035796934682B612B69697978A8 -S315600201106869346B35396A30713930356A6B6F7933 -S3156002012070686F70746A72686961346979302B3489 -S315600201300000000000000000000000010000000056 -S3156002014040000000000000004008000000000000BF -S31560020150401800000000000080000000000000005F -S315600201600000000000000000BFF000000000000078 -S31560020170BF800000000000000000000000000000D8 -S315600201800000000000000000000000000000000007 -S315600201903FF0000000000000400800000000000080 -S315600201A03FF0000040000000000000000000000078 -S315600201B03F80000040400000000000000000000098 -S315600201C000000000000000000000000000000000C7 -S315600201D0000000000000000048000001000000006E -S315600201E0480000000000000046C000000000000059 -S315600201F03FF0000000000000400000000000000028 -S3156002020040080000000000003F800000000000007F -S31560020210529000000000000052900FF807F60DEBB6 -S3156002022052901FE03F61BAD052902FB8D4E30F4884 -S3156002023052903F81F636B80C52904F3BD03C0A64DE -S3156002024052905EE68EFAD48B52906E825DA8FC2B3B -S3156002025052907E0F66AFED0752908D8DD3B1D9AABB -S3156002026052909CFDCD8ED0095290AC5F7C69A3C83A -S315600202705290BBB307ACAFDB5290CAF8960E710DC3 -S315600202805290DA304D95FB065290E95A539F492CAB -S315600202905290F876CCDF6CD952910785DD689A293F -S315600202A052911687A8AE14A35291257C5187FD09F7 -S315600202B052913463FA37014E5291433EC467EFFB63 -S315600202C05291520CD1372FEB529160CE41341D744C -S315600202D052916F8334644DF952917E2BCA46BAB9F4 -S315600202E052918CC821D6D3E352919B58598F7C9FE9 -S315600202F05291A9DC8F6DF1045291B854E0F496A044 -S315600203005291C6C16B2DB8705291D5224AAE2EE17A -S315600203105291E3779B97F4A85291F1C1799CA8FF19 -S31560020320529200000000000052920E33499A21A9AF -S3156002033052921C5B70D9F82452922A788FC76DE567 -S315600203405292388AC0059C28529246921AD4EA4939 -S315600203505292548EB9151E8552926280B347609648 -S315600203605292706821902E9A52927E451BB944C36E -S3156002037052928C17B9337834529299E01118857576 -S315600203805292A79E3A2CD2E65292B5524AE1278EF3 -S315600203905292C2FC595456A75292D09C7B54E03E6C -S315600203A05292DE32C66287415292EBBF4FAFDD4B4D -S315600203B05292F9422C23C47E529306BB705AE7C30B -S315600203C05293142B30A929AB52932191811B0A4176 -S315600203D052932EEE7577041652933C42213EE0C943 -S315600203E05293498C97B10540529356CDEBC9B5E20B -S315600203F0529364063044530652937135779C8DCB83 -S3156002040052937E5BD40F95A152938B79579D3EABE7 -S315600204105293988E1409212E5293A59A1ADBB257DB -S315600204205293B29D7D6356625293BF984CB56C7778 -S315600204305293CC8A99AF54535293D97474F76DF22E -S315600204405293E655EEFE13675293F32F17FE8D0411 -S31560020450529400000000000052940CC8B6D657C2EF -S31560020460529419894C2329F052942641CF5695729B -S31560020470529432F24FB01C7A52943F9ADC3F79CE54 -S3156002048052944C3B83E57153529458D455549C1AFA -S31560020490529465655F122FF6529471EEAF76C2C6BC -S315600204A052947E7054AF098952948AEA5CBC935F17 -S315600204B05294975CD57680885294A3C7CC8A358A43 -S315600204C05294B02B4F7C0A885294BC876BA7F6EC89 -S315600204D05294C8DC2E4239805294D529A457FCFC2A -S315600204E05294E16FDACFF9375294EDAEDE6B10FEBD -S315600204F05294F9E6BBC4ECB3529506177F5491BB8E -S3156002050052951241356CF6E052951E63EA3D95B0FE -S3156002051052952A7FA9D2F8EA5295369480174810E6 -S31560020520529542A278D2D03652954EA99FAC8A0F86 -S3156002053052955AAA002A9D5A529566A3A5B2E1B16E -S31560020540529572969B8B5CD852957E82ECDABE8D02 -S3156002055052958A68A4A8D9F352959647CDDF1CA511 -S315600205605295A220734903775295ADF29F948CFB04 -S315600205705295B9BE5D52A9DA5295C583B6F7AB03F9 -S315600205805295D142B6DBADC55295DCFB673B05DFC2 -S315600205905295E8ADD236A58F5295F45A01D483B4FA -S315600205A0529600000000000052960B9FD68A455470 -S315600205B0529617398F2AAA48529622CD337F0FE870 -S315600205C052962E5ACD0C3EBE529639E2653E421B7B -S315600205D0529645640568C1C3529650DFB6C759F450 -S315600205E052965C55827DF1D2529667C57199104BCF -S315600205F05296732F8D0E2F7752967E93DDBC0E73B5 -S31560020600529689F26C6B01D05296954B41CD4293CC -S315600206100BC0A4068F346C9B0BC093731C18544793 -S315600206200BC083008E183C230BC072AE83A9704A3E -S315600206300BC0627C9CC166FF0BC0526A7ACE64A410 -S315600206400BC04277C0B04ADA0BC032A412B191A095 -S315600206500BC022EF168069500BC0135873280473BF -S315600206600BC003DFD10A08480BBFE909B3B04632B3 -S315600206700BBFCA8E711B8E880BBFAC4D32D4143041 -S315600206800BBF8E4553D34B1B0BBF7076318237EF50 -S315600206900BBF52DF2BADF99C0BBF357FA47C936CED -S315600206A00BBF18570061F5EB0BBEFB64A61545152B -S315600206B00BBEDEA7FE865A2B0BBEC22074D37FBC4E -S315600206C00BBEA5CD763F66690BBE89AE722750F02A -S315600206D00BBE6DC2D9F976230BBE520A212B976CDB -S315600206E00BBE3683BD31CAA20BBE1B2F257575CADA -S315600206F00BBE000BD34C7BAF0BBDE51941F097FEE9 -S315600207000BBDCA56EE76E9D00BBDAFC457C7AB7305 -S315600207100BBD9560FE9616690BBD7B2C655872758E -S315600207200BBD612610404EC00BBD474D8532E409B4 -S315600207300BBD2DA24BC19EDF0BBD1423ED22D10151 -S315600207400BBCFAD1F42A88E40BBCE1ABED438E8094 -S315600207500BBCC8B1666884820BBCAFE1EF1D2D018C -S315600207600BBC973D1867D0EF0BBC7EC274CAC962D8 -S315600207700BBC6671983E29FE0BBC4E4A18298BA9A2 -S315600207800BBC364B8B5DF6DB0BBC1E758A0FECBF62 -S315600207900BBC06C7ADD18E7E0BBBEF41918CE1F6E9 -S315600207A00BBBD7E2D17E33360BBBC0AB0B2E921B93 -S315600207B00BBBA999DD6E6B650BBB92AEE8503CA78D -S315600207C00BBB7BE9CD2362720BBB654A2E6F002C95 -S315600207D00BBB4ECFAFED00FE0BBB3879F685313FD2 -S315600207E00BBB2248A8486FDE0BBB0C3B6C6BF73B1E -S315600207F00BBAF651EB44BCEE0BBAE08BCE42E7F194 -S315600208000BBACAE8BFED5CC00BBAB5686BDD5EDDDC -S315600208100BBAA00A7EBA475E0BBA8ACEA6354FEBF2 -S315600208200BBA75B4910571DB0BBA60BBEEE358EF98 -S315600208300BBA4BE4708569410BBA372DC79BD7FE5D -S315600208400BBA2297A6CCD68C0BBA0E21C1B0CFA01A -S315600208500BB9F9CBCCCEB6050BB9E5957D98648B11 -S315600208600BB9D17E8A670EE70BB9BD86AA77C3102C -S315600208700BB9A9AD95E7FAC40BB995F305B23CE598 -S315600208800BB98256B3AACE570BB96ED85A7C72068A -S315600208900BB95B77B5A537C80BB94834817359CCA8 -S315600208A00BB9350E7B02284D0BB922056037032E34 -S315600208B00BB90F18EFBE614A0BB8FC48E908E5228E -S315600208C00BB8E9950C487EA90BB8D6FD1A6D99E866 -S315600208D00BB8C480D5245A340BB8B21FFED1E1BC22 -S315600208E00BB89FDA5A91A5260BB88DAFAC32CB0AFC -S315600208F00BB87B9FB83596F60BB869AA43C8DFE199 -S315600209000BB857CF14C791B50BB8460DF1B639C6B9 -S315600209100BB83466A1C09DF90BB822D8ECB75E6EEF -S315600209200BB811649B0DA16B0BB8000975D6C9593A -S315600209300BB7EEC746C434A50BB7DD9DD823075265 -S315600209400BB7CC8CF4D9FE010BB7BB9468674A50DF -S315600209500BB7AAB3FEDE78540BB799EB84E65D0C4F -S315600209600BB7893AC7B70D960BB778A19517DF0112 -S315600209700BB7681FBB5D6E910BB757B50967B24C73 -S315600209800BB747614EA011A20BB737245AF78614EC -S315600209900BB726FDFEE4C3A00BB716EE0B6268E842 -S315600209A00BB706F451ED36CE0BB6F710A4824F8024 -S315600209B00BB6E742D59D7CB40BB6D78AB8377D0EA7 -S315600209C00BB6C7E81FC458720BB6B85AE031BB32D1 -S315600209D00BB6A8E2CDE557F90BB6997FBDBB50457C -S315600209E00BB68A318504A35C0BB67AF7F985A39BAD -S315600209F00BB66BD2F17471FF0BB65CC243777FCED6 -S31560020A000BB64DC5C6A416420BB63EDD527CE4114A -S31560020A100BB63008BEF090CF0BB62147E45855EBC3 -S31560020A200BB6129A9B769D520BB60400BD75A584D1 -S31560020A300BB5F57A23E62B070BB5E706A8BE172C8E -S31560020A400BB5D8A6265733FF0BB5CA58776DE54B5B -S31560020A500BB5BC1D771FE6AB0BB5ADF500EB0E789B -S31560020A600BB59FDEF0AC15940BB591DB229D63F25C -S31560020A700BB583E97355E1C10BB57609BFC7CD32B4 -S31560020A800BB5683BE53F94B80BB55A7FC162B5B604 -S31560020A900BB54CD5322E9F7F0BB53F3C15F79AA10D -S31560020AA00BB531B44B67B45A0BB5243DB17DAE304C -S31560020AB00BB516D8278BF18F0BB509838D378767F0 -S31560020AC00BB4FC3FC27713AE0BB4EF0CA791D4BB49 -S31560020AD00BB4E1EA1D1EA6680BB4D4D8040308E57C -S31560020AE00BB4C7D63D722B370BB4BAE4AAEBF948FE -S31560020AF00BB4AE032E3C2D7E0BB4A131A97965C928 -S31560020B000BB4946FFF043C1C0BB487BE118662362D -S31560020B100BB47B1BC3F1C0BF0BB46E88F97F999B84 -S31560020B200BB4620595AFAD730BB455917C476454B3 -S31560020B300BB4492C9150F96C0BB43CD6B91AA9C8BE -S31560020B400BB4308FD835E60B0BB42457D3768716A1 -S31560020B500BB4182E8FF205900BB40C13F2FEB43B55 -S31560020B600BB40007E232FD1F0BB3F40A4364A167BC -S31560020B700BB3E81AFCA7FBF00BB3DC39F44F468AD9 -S31560020B800BB3D06710E9E1C30BB3C4A239439F4FDD -S31560020B900BB3B8EB54640EF10BB3AD42498DCDDFA6 -S31560020BA00BB3A1A7003DD89B0BB39619602ADF2B26 -S31560020BB00BB38A9951449BB80BB37F26BBB32B798F -S31560020BC00BB373C187D669EA0BB368699E454E4417 -S31560020BD00BB35D1EE7CD4B2D0BB351E14D71B09852 -S31560020BE00BB346B0B86B0FC30BB33B8D1226A15A3B -S31560020BF00BB330764445ADAC0BB3256C389CF6EB43 -S31560020C000BB31A6ED934256E0BB30F7E104535F5CC -S31560020C100BB30499C83BE9D60BB2F9C1EBB53923DC -S31560020C200BB2EEF6657EC6AA0BB2E437209655D5B0 -S31560020C300BB2D984082942630BB2CEDD0793F9E77A -S31560020C400BB2C4420A6177190BB2B9B2FC4ABEDA78 -S31560020C500BB2AF2FC9365EFF0BB2A4B85D37EEC1D9 -S31560020C600BB29A4CA48F90E30BB28FEC8BA9777977 -S31560020C700BB28597FF1D694D0BB27B4EEBAE48DD1D -S31560020C800BB271113E499CEE0BB266DEE4071AA8FE -S31560020C900BB25CB7CA2831380BB2529BDE1796F795 -S31560020CA00BB2488B0D68D8030BB23E8545D7E65A20 -S31560020CB00BB2348A7548AB540BB22A9A89C69A9794 -S31560020CC00BB220B5718446610BB216DB1ADAF53FB8 -S31560020CD00BB20D0B744A39100BB203466C77876CF4 -S31560020CE00BB1F98BF22DD3490BB1EFDBF45D27FF24 -S31560020CF00BB1E636621A457E0BB1DC9B2A9E3DD568 -S31560020D000BB1D30A3D4613EE0BB1C98389925B815F -S31560020D100BB1C006FF26DA3F0BB1B6948DCA2A28FC -S31560020D200BB1AD2C25655D0F0BB1A3CDB603A13D0D -S31560020D300BB19A792FD1E7410BB1912E831E88D2DE -S31560020D400BB187EDA058F0D60BB17EB6781144731D -S31560020D500BB17588FAF80D3A0BB16C6519DDE45D75 -S31560020D600BB1634AC5B31EEF0BB15A39EF877B28C5 -S31560020D700BB151328889CEAE0BB148348207B5DBEE -S31560020D800BB13F3FCD6D43FF0BB136545C44B49A11 -S31560020D900BB12D7220361D870BB124990B07221BCE -S31560020DA00BB11BC90E9AA72D0BB113021CF0880F4B -S31560020DB00BB10A4428254C650BB1018F2271DEE521 -S31560020DC00BB0F8E2FE2B44F40BB0F03FADC25723F2 -S31560020DD00BB0E7A523C37A850BB0DF1352D65AD977 -S31560020DE00BB0D68A2DBDA58C0BB0CE09A756C58988 -S31560020DF00BB0C591B2999FDB0BB0BD2242985115DB -S31560020E000BB0B4BB4A7EEB870BB0AC5CBD93363697 -S31560020E1065300000653010006530200065303000B6 -S31560020E2065304000653050006530600065307000A6 -S31560020E3065308000653090006530A0006530B00096 -S31560020E406530C0006530D0006530E0006530F00086 -S31560020E506531000065311000653120006531300072 -S31560020E606531400065315000653160006531700062 -S31560020E7065318000653190006531A0006531B00052 -S31560020E806531C0006531D0006531E0006531F00042 -S31560020E90653200006532100065322000653230002E -S31560020EA0653240006532500065326000653270001E -S31560020EB065328000653290006532A0006532B0000E -S31560020EC06532C0006532D0006532E0006532F000FE -S31560020ED065330000653310006533200065333000EA -S31560020EE065334000653350006533600065337000DA -S31560020EF065338000653390006533A0006533B000CA -S31560020F006533C0006533D0006533E0006533F000B9 -S31560020F1065340000653410006534200065343000A5 -S31560020F206534400065345000653460006534700095 -S31560020F3065348000653490006534A0006534B00085 -S31560020F406534C0006534D0006534E0006534F00075 -S31560020F506535000065351000653520006535300061 -S31560020F606535400065355000653560006535700051 -S31560020F7065358000653590006535A0006535B00041 -S31560020F806535C0006535D0006535E0006535F00031 -S31560020F90653600006536100065362000653630001D -S31560020FA0653640006536500065366000653670000D -S31560020FB065368000653690006536A0006536B000FD -S31560020FC06536C0006536D0006536E0006536F000ED -S31560020FD065370000653710006537200065373000D9 -S31560020FE065374000653750006537600065377000C9 -S31560020FF065378000653790006537A0006537B000B9 -S315600210006537C0006537D0006537E0006537F000A8 -S315600210106538000065381000653820006538300094 -S315600210206538400065385000653860006538700084 -S3156002103065388000653890006538A0006538B00074 -S315600210406538C0006538D0006538E0006538F00064 -S315600210506539000065391000653920006539300050 -S315600210606539400065395000653960006539700040 -S3156002107065398000653990006539A0006539B00030 -S315600210806539C0006539D0006539E0006539F00020 -S31560021090653A0000653A1000653A2000653A30000C -S315600210A0653A4000653A5000653A6000653A7000FC -S315600210B0653A8000653A9000653AA000653AB000EC -S315600210C0653AC000653AD000653AE000653AF000DC -S315600210D0653B0000653B1000653B2000653B3000C8 -S315600210E0653B4000653B5000653B6000653B7000B8 -S315600210F0653B8000653B9000653BA000653BB000A8 -S31560021100653BC000653BD000653BE000653BF00097 -S31560021110653C0000653C1000653C2000653C300083 -S31560021120653C4000653C5000653C6000653C700073 -S31560021130653C8000653C9000653CA000653CB00063 -S31560021140653CC000653CD000653CE000653CF00053 -S31560021150653D0000653D1000653D2000653D30003F -S31560021160653D4000653D5000653D6000653D70002F -S31560021170653D8000653D9000653DA000653DB0001F -S31560021180653DC000653DD000653DE000653DF0000F -S31560021190653E0000653E1000653E2000653E3000FB -S315600211A0653E4000653E5000653E6000653E7000EB -S315600211B0653E8000653E9000653EA000653EB000DB -S315600211C0653EC000653ED000653EE000653EF000CB -S315600211D0653F0000653F1000653F2000653F3000B7 -S315600211E0653F4000653F5000653F6000653F7000A7 -S315600211F0653F8000653F9000653FA000653FB00097 -S31560021200653FC000653FD000653FE000653FF00086 -S315600212104200000000000000400FFFFFFFFFFFFFDB -S315600212204200000000200000420FFFFFFFFFFFFFA9 -S3156002123040000000000000004210000000080000AC -S3156002124042000000000000013EB000000000000104 -S315600212504200000000000002420F484C0137D208EB -S31560021260C20E780F256007AB41BA079B7AF94BA08D -S315600212704201484C0137D208420E780F256007AB0F -S315600212804217E02D934BECDA420F484C0137D208F5 -S31560021290C21E780F256007ABC20DA7D249883D4EA4 -S315600212A0421F484C0137D208C20E780F256007AB41 -S315600212B042100C446E87CE32C03340AB371208916F -S315600212C00000000000000000C03340AB37120891F6 -S315600212D00000000000000000C29E7A0F236007A68D -S315600212E0C29E7A0F236007A66F3F484C0137D20829 -S315600212F06E2E780F256007AB6F3F485B3D3F64B843 -S315600213006F3F484C0137D208EE2E780F256007AB47 -S315600213106F3F483CC5303F587FE2F780AB123809D1 -S315600213207FD00000000000007FEAF780AB12380928 -S31560021330002000000000000080280000000000007D -S3156002134080100000000000007FEFF780AB123809C2 -S315600213507FEFF2010203A1117FF00000000000009E -S315600213600010000000001000801FFFFFF203A111B1 -S315600213708000000000000000001ABCD0000238099C -S31560021380801ABCD0000001110000000000000000BD -S315600213907E71000000000000416010000000000045 -S315600213A07FE11100000000000178100000000000DB -S315600213B03E880000FFF0000000120C00C073F800C7 -S315600213C0C1EFFFFFC00020003FB3C75D224F280F69 -S315600213D0C1B3C75CFAC08192A12FFF8000001FFFD4 -S315600213E03EE0000000FF0000A01FFF8001FE18071C -S315600213F041CFFFFE0000002040303FFFFFFFFFFDB0 -S3156002140042103FFEFC00000D3FD000003FEFFFFFA1 -S31560021410BFD0000010000000BFB000004FF0003FD8 -S3156002142001701000000000003E8000011A000000FA -S3156002143000000000000000007E7C0000000000004A -S31560021440416A1000010000107FF0000000000000F9 -S3156002145075012034056AC000FA1009091000104FA0 -S31560021460FFF000000000000001002030400302008F -S31560021470003020340000A00B0000000000000000D5 -S315600214807FE0001010200001400000000010200ADA -S315600214907FF00000000000003FEFDFF00FFC484ADB -S315600214A0BFF80000000000007FFF0000000000009F -S315600214B07FFFE000000000007FF4000000000000F3 -S315600214C07FC00000000000007FF8000000000000FE -S315600214D07FF0000000000000FFF000000000000046 -S315600214E0FFF0000000000000800000000000000025 -S315600214F00000000000010000000000000000000083 -S315600215000000000000000000000000000000000073 -S315600215100000000000000000000000000000000063 -S315600215200000000000000000000000000000000053 -S315600215300000000000000000000000000000000043 -S315600215400000000000000000000000000000000033 -S315600215500000000000000000000000000000000023 -S315600215600000000000000000000000000000000013 -S315600215700000000000000000000000000000000003 -S3156002158000000000000000000000000000000000F3 -S3156002159000000000000000000000000000000000E3 -S315600215A000000000000000000000000000000000D3 -S315600215B000000000000000000000000000000000C3 -S315600215C000000000000000000000000000000000B3 -S315600215D000000000000000000000000000000000A3 -S315600215E00000000000000000000000000000000093 -S315600215F00000000000000000000000000000000083 -S315600216000000000000000000000000000000000072 -S315600216100000000000000000000000000000000062 -S315600216200000000000000000000000000000000052 -S315600216300000000000000000000000000000000042 -S315600216400000000000000000000000000000000032 -S315600216500000000000000000000000000000000022 -S315600216600000000000000000000000000000000012 -S315600216700000000000000000000000000000000002 -S3156002168000000000000000000000000000000000F2 -S3156002169000000000000000000000000000000000E2 -S315600216A000000000000000000000000000000000D2 -S315600216B000000000000000000000000000000000C2 -S315600216C000000000000000000000000000000000B2 -S315600216D000000000000000000000000000000000A2 -S315600216E00000000000000000000000000000000092 -S315600216F00000000000000000000000000000000082 -S315600217000000000000000000000000000000000071 -S315600217100000000000000000000000000000000061 -S315600217200000000000000000000000000000000051 -S315600217300000000000000000000000000000000041 -S315600217400000000000000000000000000000000031 -S315600217500000000000000000000000000000000021 -S315600217600000000000000000000000000000000011 -S315600217700000000000000000000000000000000001 -S3156002178000000000000000000000000000000000F1 -S3156002179000000000000000000000000000000000E1 -S315600217A000000000000000000000000000000000D1 -S315600217B000000000000000000000000000000000C1 -S315600217C000000000000000000000000000000000B1 -S315600217D000000000000000000000000000000000A1 -S315600217E00000000000000000000000000000000091 -S315600217F00000000000000000000000000000000081 -S315600218000000000000000000000000000000000070 -S315600218100000000000000000000000000000000060 -S315600218200000000000000000000000000000000050 -S315600218300000000000000000000000000000000040 -S315600218400000000000000000000000000000000030 -S315600218500000000000000000000000000000000020 -S315600218600000000000000000000000000000000010 -S315600218700000000000000000000000000000000000 -S3156002188000000000000000000000000000000000F0 -S3156002189000000000000000000000000000000000E0 -S315600218A000000000000000000000000000000000D0 -S315600218B000000000000000000000000000000000C0 -S315600218C000000000000000000000000000000000B0 -S315600218D000000000000000000000000000000000A0 -S315600218E00000000000000000000000000000000090 -S315600218F00000000000000000000000000000000080 -S31560021900000000000000000000000000000000006F -S31560021910000000000000000000000000000000005F -S31560021920000000000000000000000000000000004F -S31560021930000000000000000000000000000000003F -S31560021940000000000000000000000000000000002F -S31560021950000000000000000000000000000000001F -S31560021960000000000000000000000000000000000F -S3156002197000000000000000000000000000000000FF -S3156002198000000000000000000000000000000000EF -S3156002199000000000000000000000000000000000DF -S315600219A000000000000000000000000000000000CF -S315600219B000000000000000000000000000000000BF -S315600219C000000000000000000000000000000000AF -S315600219D0000000000000000000000000000000009F -S315600219E0000000000000000000000000000000008F -S315600219F0000000000000000000000000000000007F -S31560021A00000000000000000000000000000000006E -S31560021A10000000000000000000000000000000005E -S31560021A20000000000000000000000000000000004E -S31560021A30000000000000000000000000000000003E -S31560021A40000000000000000000000000000000002E -S31560021A50000000000000000000000000000000001E -S31560021A60000000000000000000000000000000000E -S31560021A7000000000000000000000000000000000FE -S31560021A8000000000000000000000000000000000EE -S31560021A9000000000000000000000000000000000DE -S31560021AA000000000000000000000000000000000CE -S31560021AB000000000000000000000000000000000BE -S31560021AC000000000000000000000000000000000AE -S31560021AD0000000000000000000000000000000009E -S31560021AE0000000000000000000000000000000008E -S31560021AF0000000000000000000000000000000007E -S31560021B00000000000000000000000000000000006D -S31560021B10000000000000000000000000000000005D -S31560021B20000000000000000000000000000000004D -S31560021B30000000000000000000000000000000003D -S31560021B40000000000000000000000000000000002D -S31560021B50000000000000000000000000000000001D -S31560021B60000000000000000000000000000000000D -S31560021B7000000000000000000000000000000000FD -S31560021B8000000000000000000000000000000000ED -S31560021B9000000000000000000000000000000000DD -S31560021BA000000000000000000000000000000000CD -S31560021BB000000000000000000000000000000000BD -S31560021BC000000000000000000000000000000000AD -S31560021BD0000000000000000000000000000000009D -S31560021BE0000000000000000000000000000000008D -S31560021BF0000000000000000000000000000000007D -S31560021C00000000000000000000000000000000006C -S31560021C10000000000000000000000000000000005C -S31560021C20000000000000000000000000000000004C -S31560021C30000000000000000000000000000000003C -S31560021C40000000000000000000000000000000002C -S31560021C50000000000000000000000000000000001C -S31560021C60000000000000000000000000000000000C -S31560021C7000000000000000000000000000000000FC -S31560021C8000000000000000000000000000000000EC -S31560021C9000000000000000000000000000000000DC -S31560021CA000000000000000000000000000000000CC -S31560021CB000000000000000000000000000000000BC -S31560021CC000000000000000000000000000000000AC -S31560021CD0000000000000000000000000000000009C -S31560021CE0000000000000000000000000000000008C -S31560021CF0000000000000000000000000000000007C -S31560021D00000000000000000000000000000000006B -S31560021D10000000000000000000000000000000005B -S31560021D20000000000000000000000000000000004B -S31560021D30000000000000000000000000000000003B -S31560021D40000000000000000000000000000000002B -S31560021D50000000000000000000000000000000001B -S31560021D60000000000000000000000000000000000B -S31560021D7000000000000000000000000000000000FB -S31560021D8000000000000000000000000000000000EB -S31560021D9000000000000000000000000000000000DB -S31560021DA000000000000000000000000000000000CB -S31560021DB000000000000000000000000000000000BB -S31560021DC000000000000000000000000000000000AB -S31560021DD0000000000000000000000000000000009B -S31560021DE0000000000000000000000000000000008B -S31560021DF0000000000000000000000000000000007B -S31560021E00000000000000000000000000000000006A -S31560021E10000000000000000000000000000000005A -S31560021E20000000000000000000000000000000004A -S31560021E30000000000000000000000000000000003A -S31560021E40000000000000000000000000000000002A -S31560021E50000000000000000000000000000000001A -S31560021E60000000000000000000000000000000000A -S31560021E7000000000000000000000000000000000FA -S31560021E8000000000000000000000000000000000EA -S31560021E9000000000000000000000000000000000DA -S31560021EA000000000000000000000000000000000CA -S31560021EB000000000000000000000000000000000BA -S31560021EC000000000000000000000000000000000AA -S31560021ED0000000000000000000000000000000009A -S31560021EE0000000000000000000000000000000008A -S31560021EF0000000000000000000000000000000007A -S31560021F000000000000000000000000000000000069 -S31560021F100000000000000000000000000000000059 -S31560021F200000000000000000000000000000000049 -S31560021F300000000000000000000000000000000039 -S31560021F400000000000000000000000000000000029 -S31560021F500000000000000000000000000000000019 -S31560021F600000000000000000000000000000000009 -S31560021F7000000000000000000000000000000000F9 -S31560021F8000000000000000000000000000000000E9 -S31560021F9000000000000000000000000000000000D9 -S31560021FA000000000000000000000000000000000C9 -S31560021FB000000000000000000000000000000000B9 -S31560021FC000000000000000000000000000000000A9 -S31560021FD00000000000000000000000000000000099 -S31560021FE00000000000000000000000000000000089 -S31560021FF00000000000000000000000000000000079 -S315600220000000000000000000000000000000000068 -S315600220100000000000000000000000000000000058 -S315600220200000000000000000000000000000000048 -S315600220300000000000000000000000000000000038 -S315600220400000000000000000000000000000000028 -S315600220500000000000000000000000000000000018 -S315600220600000000000000000000000000000000008 -S3156002207000000000000000000000000000000000F8 -S3156002208000000000000000000000000000000000E8 -S3156002209000000000000000000000000000000000D8 -S315600220A000000000000000000000000000000000C8 -S315600220B000000000000000000000000000000000B8 -S315600220C000000000000000000000000000000000A8 -S315600220D00000000000000000000000000000000098 -S315600220E00000000000000000000000000000000088 -S315600220F00000000000000000000000000000000078 -S315600221000000000000000000000000000000000067 -S315600221100000000000000000000000000000000057 -S315600221200000000000000000000000000000000047 -S315600221300000000000000000000000000000000037 -S315600221400000000000000000000000000000000027 -S315600221500000000000000000000000000000000017 -S315600221600000000000000000000000000000000007 -S3156002217000000000000000000000000000000000F7 -S3156002218000000000000000000000000000000000E7 -S3156002219000000000000000000000000000000000D7 -S315600221A000000000000000000000000000000000C7 -S315600221B000000000000000000000000000000000B7 -S315600221C000000000000000000000000000000000A7 -S315600221D00000000000000000000000000000000097 -S315600221E00000000000000000000000000000000087 -S315600221F00000000000000000000000000000000077 -S315600222000000000000000000000000000000000066 -S315600222100000000000000000000000000000000056 -S315600222200000000000000000000000000000000046 -S315600222300000000000000000000000000000000036 -S315600222400000000000000000000000000000000026 -S315600222500000000000000000000000000000000016 -S315600222600000000000000000000000000000000006 -S3156002227000000000000000000000000000000000F6 -S3156002228000000000000000000000000000000000E6 -S3156002229000000000000000000000000000000000D6 -S315600222A000000000000000000000000000000000C6 -S315600222B000000000000000000000000000000000B6 -S315600222C000000000000000000000000000000000A6 -S315600222D00000000000000000000000000000000096 -S315600222E00000000000000000000000000000000086 -S315600222F00000000000000000000000000000000076 -S315600223000000000000000000000000000000000065 -S315600223100000000000000000000000000000000055 -S315600223200000000000000000000000000000000045 -S315600223300000000000000000000000000000000035 -S315600223400000000000000000000000000000000025 -S315600223500000000000000000000000000000000015 -S315600223600000000000000000000000000000000005 -S3156002237000000000000000000000000000000000F5 -S3156002238000000000000000000000000000000000E5 -S3156002239000000000000000000000000000000000D5 -S315600223A000000000000000000000000000000000C5 -S315600223B000000000000000000000000000000000B5 -S315600223C000000000000000000000000000000000A5 -S315600223D00000000000000000000000000000000095 -S315600223E00000000000000000000000000000000085 -S315600223F00000000000000000000000000000000075 -S315600224000000000000000000000000000000000064 -S315600224100000000000000000000000000000000054 -S315600224200000000000000000000000000000000044 -S315600224300000000000000000000000000000000034 -S315600224400000000000000000000000000000000024 -S315600224500000000000000000000000000000000014 -S315600224600000000000000000000000000000000004 -S3156002247000000000000000000000000000000000F4 -S3156002248000000000000000000000000000000000E4 -S3156002249000000000000000000000000000000000D4 -S315600224A000000000000000000000000000000000C4 -S315600224B000000000000000000000000000000000B4 -S315600224C000000000000000000000000000000000A4 -S315600224D00000000000000000000000000000000094 -S315600224E00000000000000000000000000000000084 -S315600224F00000000000000000000000000000000074 -S315600225000000000000000000000000000000000063 -S315600225100000000000000000000000000000000053 -S315600225200000000000000000000000000000000043 -S315600225300000000000000000000000000000000033 -S315600225400000000000000000000000000000000023 -S315600225500000000000000000000000000000000013 -S315600225600000000000000000000000000000000003 -S3156002257000000000000000000000000000000000F3 -S3156002258000000000000000000000000000000000E3 -S3156002259000000000000000000000000000000000D3 -S315600225A000000000000000000000000000000000C3 -S315600225B000000000000000000000000000000000B3 -S315600225C000000000000000000000000000000000A3 -S315600225D00000000000000000000000000000000093 -S315600225E00000000000000000000000000000000083 -S315600225F00000000000000000000000000000000073 -S315600226000000000000000000000000000000000062 -S315600226100000000000000000000000000000000052 -S315600226200000000000000000000000000000000042 -S315600226300000000000000000000000000000000032 -S315600226400000000000000000000000000000000022 -S315600226500000000000000000000000000000000012 -S315600226600000000000000000000000000000000002 -S3156002267000000000000000000000000000000000F2 -S3156002268000000000000000000000000000000000E2 -S3156002269000000000000000000000000000000000D2 -S315600226A000000000000000000000000000000000C2 -S315600226B000000000000000000000000000000000B2 -S315600226C000000000000000000000000000000000A2 -S315600226D00000000000000000000000000000000092 -S315600226E00000000000000000000000000000000082 -S315600226F00000000000000000000000000000000072 -S315600227000000000000000000000000000000000061 -S315600227100000000000000000000000000000000051 -S315600227200000000000000000000000000000000041 -S315600227300000000000000000000000000000000031 -S315600227400000000000000000000000000000000021 -S315600227500000000000000000000000000000000011 -S315600227600000000000000000000000000000000001 -S3156002277000000000000000000000000000000000F1 -S3156002278000000000000000000000000000000000E1 -S3156002279000000000000000000000000000000000D1 -S315600227A000000000000000000000000000000000C1 -S315600227B000000000000000000000000000000000B1 -S315600227C000000000000000000000000000000000A1 -S315600227D00000000000000000000000000000000091 -S315600227E00000000000000000000000000000000081 -S315600227F00000000000000000000000000000000071 -S315600228000000000000000000000000000000000060 -S315600228100000000000000000000000000000000050 -S315600228200000000000000000000000000000000040 -S315600228300000000000000000000000000000000030 -S315600228400000000000000000000000000000000020 -S315600228500000000000000000000000000000000010 -S315600228600000000000000000000000000000000000 -S3156002287000000000000000000000000000000000F0 -S3156002288000000000000000000000000000000000E0 -S3156002289000000000000000000000000000000000D0 -S315600228A000000000000000000000000000000000C0 -S315600228B000000000000000000000000000000000B0 -S315600228C000000000000000000000000000000000A0 -S315600228D00000000000000000000000000000000090 -S315600228E00000000000000000000000000000000080 -S315600228F00000000000000000000000000000000070 -S31560022900000000000000000000000000000000005F -S31560022910000000000000000000000000000000004F -S31560022920000000000000000000000000000000003F -S31560022930000000000000000000000000000000002F -S31560022940000000000000000000000000000000001F -S31560022950000000000000000000000000000000000F -S3156002296000000000000000000000000000000000FF -S3156002297000000000000000000000000000000000EF -S3156002298000000000000000000000000000000000DF -S3156002299000000000000000000000000000000000CF -S315600229A000000000000000000000000000000000BF -S315600229B000000000000000000000000000000000AF -S315600229C0000000000000000000000000000000009F -S315600229D0000000000000000000000000000000008F -S315600229E0000000000000000000000000000000007F -S315600229F0000000000000000000000000000000006F -S31560022A00000000000000000000000000000000005E -S31560022A10000000000000000000000000000000004E -S31560022A20000000000000000000000000000000003E -S31560022A30000000000000000000000000000000002E -S31560022A40000000000000000000000000000000001E -S31560022A50000000000000000000000000000000000E -S31560022A6000000000000000000000000000000000FE -S31560022A7000000000000000000000000000000000EE -S31560022A8000000000000000000000000000000000DE -S31560022A9000000000000000000000000000000000CE -S31560022AA000000000000000000000000000000000BE -S31560022AB000000000000000000000000000000000AE -S31560022AC0000000000000000000000000000000009E -S31560022AD0000000000000000000000000000000008E -S31560022AE0000000000000000000000000000000007E -S31560022AF0000000000000000000000000000000006E -S31560022B00000000000000000000000000000000005D -S31560022B10000000000000000000000000000000004D -S31560022B20000000000000000000000000000000003D -S31560022B30000000000000000000000000000000002D -S31560022B40000000000000000000000000000000001D -S31560022B50000000000000000000000000000000000D -S31560022B6000000000000000000000000000000000FD -S31560022B7000000000000000000000000000000000ED -S31560022B8000000000000000000000000000000000DD -S31560022B9000000000000000000000000000000000CD -S31560022BA000000000000000000000000000000000BD -S31560022BB000000000000000000000000000000000AD -S31560022BC0000000000000000000000000000000009D -S31560022BD0000000000000000000000000000000008D -S31560022BE0000000000000000000000000000000007D -S31560022BF0000000000000000000000000000000006D -S31560022C00000000000000000000000000000000005C -S31560022C10000000000000000000000000000000004C -S31560022C20000000000000000000000000000000003C -S31560022C30000000000000000000000000000000002C -S31560022C40000000000000000000000000000000001C -S31560022C50000000000000000000000000000000000C -S31560022C6000000000000000000000000000000000FC -S31560022C7000000000000000000000000000000000EC -S31560022C8000000000000000000000000000000000DC -S31560022C9000000000000000000000000000000000CC -S31560022CA000000000000000000000000000000000BC -S31560022CB000000000000000000000000000000000AC -S31560022CC0000000000000000000000000000000009C -S31560022CD0000000000000000000000000000000008C -S31560022CE0000000000000000000000000000000007C -S31560022CF0000000000000000000000000000000006C -S31560022D00000000000000000000000000000000005B -S31560022D10000000000000000000000000000000004B -S31560022D20000000000000000000000000000000003B -S31560022D30000000000000000000000000000000002B -S31560022D40000000000000000000000000000000001B -S31560022D50000000000000000000000000000000000B -S31560022D6000000000000000000000000000000000FB -S31560022D7000000000000000000000000000000000EB -S31560022D8000000000000000000000000000000000DB -S31560022D9000000000000000000000000000000000CB -S31560022DA000000000000000000000000000000000BB -S31560022DB000000000000000000000000000000000AB -S31560022DC0000000000000000000000000000000009B -S31560022DD0000000000000000000000000000000008B -S31560022DE0000000000000000000000000000000007B -S31560022DF0000000000000000000000000000000006B -S31560022E00000000000000000000000000000000005A -S31560022E10000000000000000000000000000000004A -S31560022E20000000000000000000000000000000003A -S31560022E30000000000000000000000000000000002A -S31560022E40000000000000000000000000000000001A -S31560022E50000000000000000000000000000000000A -S31560022E6000000000000000000000000000000000FA -S31560022E7000000000000000000000000000000000EA -S31560022E8000000000000000000000000000000000DA -S31560022E9000000000000000000000000000000000CA -S31560022EA000000000000000000000000000000000BA -S31560022EB000000000000000000000000000000000AA -S31560022EC0000000000000000000000000000000009A -S31560022ED0000000000000000000000000000000008A -S31560022EE0000000000000000000000000000000007A -S31560022EF0000000000000000000000000000000006A -S31560022F000000000000000000000000000000000059 -S31560022F100000000000000000000000000000000049 -S31560022F200000000000000000000000000000000039 -S31560022F300000000000000000000000000000000029 -S31560022F400000000000000000000000000000000019 -S31560022F500000000000000000000000000000000009 -S31560022F6000000000000000000000000000000000F9 -S31560022F7000000000000000000000000000000000E9 -S31560022F8000000000000000000000000000000000D9 -S31560022F9000000000000000000000000000000000C9 -S31560022FA000000000000000000000000000000000B9 -S31560022FB000000000000000000000000000000000A9 -S31560022FC00000000000000000000000000000000099 -S31560022FD00000000000000000000000000000000089 -S31560022FE00000000000000000000000000000000079 -S31560022FF00000000000000000000000000000000069 -S315600230000000000000000000000000000000000058 -S315600230100000000000000000000000000000000048 -S315600230200000000000000000000000000000000038 -S315600230300000000000000000000000000000000028 -S315600230400000000000000000000000000000000018 -S315600230500000000000000000000000000000000008 -S3156002306000000000000000000000000000000000F8 -S3156002307000000000000000000000000000000000E8 -S3156002308000000000000000000000000000000000D8 -S3156002309000000000000000000000000000000000C8 -S315600230A000000000000000000000000000000000B8 -S315600230B000000000000000000000000000000000A8 -S315600230C00000000000000000000000000000000098 -S315600230D00000000000000000000000000000000088 -S315600230E00000000000000000000000000000000078 -S315600230F00000000000000000000000000000000068 -S315600231000000000000000000000000000000000057 -S315600231100000000000000000000000000000000047 -S315600231200000000000000000000000000000000037 -S315600231300000000000000000000000000000000027 -S315600231400000000000000000000000000000000017 -S315600231500000000000000000000000000000000007 -S3156002316000000000000000000000000000000000F7 -S3156002317000000000000000000000000000000000E7 -S3156002318000000000000000000000000000000000D7 -S3156002319000000000000000000000000000000000C7 -S315600231A000000000000000000000000000000000B7 -S315600231B000000000000000000000000000000000A7 -S315600231C00000000000000000000000000000000097 -S315600231D00000000000000000000000000000000087 -S315600231E00000000000000000000000000000000077 -S315600231F00000000000000000000000000000000067 -S315600232000000000000000000000000000000000056 -S315600232100000000000000000000000000000000046 -S315600232200000000000000000000000000000000036 -S315600232300000000000000000000000000000000026 -S315600232400000000000000000000000000000000016 -S315600232500000000000000000000000000000000006 -S3156002326000000000000000000000000000000000F6 -S3156002327000000000000000000000000000000000E6 -S3156002328000000000000000000000000000000000D6 -S3156002329000000000000000000000000000000000C6 -S315600232A000000000000000000000000000000000B6 -S315600232B000000000000000000000000000000000A6 -S315600232C00000000000000000000000000000000096 -S315600232D00000000000000000000000000000000086 -S315600232E00000000000000000000000000000000076 -S315600232F00000000000000000000000000000000066 -S315600233000000000000000000000000000000000055 -S315600233100000000000000000000000000000000045 -S315600233200000000000000000000000000000000035 -S315600233300000000000000000000000000000000025 -S315600233400000000000000000000000000000000015 -S315600233500000000000000000000000000000000005 -S3156002336000000000000000000000000000000000F5 -S3156002337000000000000000000000000000000000E5 -S3156002338000000000000000000000000000000000D5 -S3156002339000000000000000000000000000000000C5 -S315600233A000000000000000000000000000000000B5 -S315600233B000000000000000000000000000000000A5 -S315600233C00000000000000000000000000000000095 -S315600233D00000000000000000000000000000000085 -S315600233E00000000000000000000000000000000075 -S315600233F00000000000000000000000000000000065 -S315600234000000000000000000000000000000000054 -S315600234100000000000000000000000000000000044 -S315600234200000000000000000000000000000000034 -S315600234300000000000000000000000000000000024 -S315600234400000000000000000000000000000000014 -S315600234500000000000000000000000000000000004 -S3156002346000000000000000000000000000000000F4 -S3156002347000000000000000000000000000000000E4 -S3156002348000000000000000000000000000000000D4 -S3156002349000000000000000000000000000000000C4 -S315600234A000000000000000000000000000000000B4 -S315600234B000000000000000000000000000000000A4 -S315600234C00000000000000000000000000000000094 -S315600234D00000000000000000000000000000000084 -S315600234E00000000000000000000000000000000074 -S315600234F00000000000000000000000000000000064 -S315600235000000000000000000000000000000000053 -S315600235100000000000000000000000000000000043 -S315600235200000000000000000000000000000000033 -S315600235300000000000000000000000000000000023 -S315600235400000000000000000000000000000000013 -S315600235500000000000000000000000000000000003 -S3156002356000000000000000000000000000000000F3 -S3156002357000000000000000000000000000000000E3 -S3156002358000000000000000000000000000000000D3 -S3156002359000000000000000000000000000000000C3 -S315600235A000000000000000000000000000000000B3 -S315600235B000000000000000000000000000000000A3 -S315600235C00000000000000000000000000000000093 -S315600235D00000000000000000000000000000000083 -S315600235E00000000000000000000000000000000073 -S315600235F00000000000000000000000000000000063 -S315600236000000000000000000000000000000000052 -S315600236100000000000000000000000000000000042 -S315600236200000000000000000000000000000000032 -S315600236300000000000000000000000000000000022 -S315600236400000000000000000000000000000000012 -S315600236500000000000000000000000000000000002 -S3156002366000000000000000000000000000000000F2 -S3156002367000000000000000000000000000000000E2 -S3156002368000000000000000000000000000000000D2 -S3156002369000000000000000000000000000000000C2 -S315600236A000000000000000000000000000000000B2 -S315600236B000000000000000000000000000000000A2 -S315600236C00000000000000000000000000000000092 -S315600236D00000000000000000000000000000000082 -S315600236E00000000000000000000000000000000072 -S315600236F00000000000000000000000000000000062 -S315600237000000000000000000000000000000000051 -S315600237100000000000000000000000000000000041 -S315600237200000000000000000000000000000000031 -S315600237300000000000000000000000000000000021 -S315600237400000000000000000000000000000000011 -S315600237500000000000000000000000000000000001 -S3156002376000000000000000000000000000000000F1 -S3156002377000000000000000000000000000000000E1 -S3156002378000000000000000000000000000000000D1 -S3156002379000000000000000000000000000000000C1 -S315600237A000000000000000000000000000000000B1 -S315600237B000000000000000000000000000000000A1 -S315600237C00000000000000000000000000000000091 -S315600237D00000000000000000000000000000000081 -S315600237E00000000000000000000000000000000071 -S315600237F00000000000000000000000000000000061 -S315600238000000000000000000000000000000000050 -S315600238100000000000000000000000000000000040 -S315600238200000000000000000000000000000000030 -S315600238300000000000000000000000000000000020 -S315600238400000000000000000000000000000000010 -S315600238500000000000000000000000000000000000 -S3156002386000000000000000000000000000000000F0 -S3156002387000000000000000000000000000000000E0 -S3156002388000000000000000000000000000000000D0 -S3156002389000000000000000000000000000000000C0 -S315600238A000000000000000000000000000000000B0 -S315600238B000000000000000000000000000000000A0 -S315600238C00000000000000000000000000000000090 -S315600238D00000000000000000000000000000000080 -S315600238E00000000000000000000000000000000070 -S315600238F00000000000000000000000000000000060 -S31560023900000000000000000000000000000000004F -S31560023910000000000000000000000000000000003F -S31560023920000000000000000000000000000000002F -S31560023930000000000000000000000000000000001F -S31560023940000000000000000000000000000000000F -S3156002395000000000000000000000000000000000FF -S3156002396000000000000000000000000000000000EF -S3156002397000000000000000000000000000000000DF -S3156002398000000000000000000000000000000000CF -S3156002399000000000000000000000000000000000BF -S315600239A000000000000000000000000000000000AF -S315600239B0000000000000000000000000000000009F -S315600239C0000000000000000000000000000000008F -S315600239D0000000000000000000000000000000007F -S315600239E0000000000000000000000000000000006F -S315600239F0000000000000000000000000000000005F -S31560023A00000000000000000000000000000000004E -S31560023A10000000000000000000000000000000003E -S31560023A20000000000000000000000000000000002E -S31560023A30000000000000000000000000000000001E -S31560023A40000000000000000000000000000000000E -S31560023A5000000000000000000000000000000000FE -S31560023A6000000000000000000000000000000000EE -S31560023A7000000000000000000000000000000000DE -S31560023A8000000000000000000000000000000000CE -S31560023A9000000000000000000000000000000000BE -S31560023AA000000000000000000000000000000000AE -S31560023AB0000000000000000000000000000000009E -S31560023AC0000000000000000000000000000000008E -S31560023AD0000000000000000000000000000000007E -S31560023AE0000000000000000000000000000000006E -S31560023AF0000000000000000000000000000000005E -S31560023B00000000000000000000000000000000004D -S31560023B10000000000000000000000000000000003D -S31560023B20000000000000000000000000000000002D -S31560023B30000000000000000000000000000000001D -S31560023B40000000000000000000000000000000000D -S31560023B5000000000000000000000000000000000FD -S31560023B6000000000000000000000000000000000ED -S31560023B7000000000000000000000000000000000DD -S31560023B8000000000000000000000000000000000CD -S31560023B9000000000000000000000000000000000BD -S31560023BA000000000000000000000000000000000AD -S31560023BB0000000000000000000000000000000009D -S31560023BC0000000000000000000000000000000008D -S31560023BD0000000000000000000000000000000007D -S31560023BE0000000000000000000000000000000006D -S31560023BF0000000000000000000000000000000005D -S31560023C00000000000000000000000000000000004C -S31560023C10000000000000000000000000000000003C -S31560023C20000000000000000000000000000000002C -S31560023C30000000000000000000000000000000001C -S31560023C40000000000000000000000000000000000C -S31560023C5000000000000000000000000000000000FC -S31560023C6000000000000000000000000000000000EC -S31560023C7000000000000000000000000000000000DC -S31560023C8000000000000000000000000000000000CC -S31560023C9000000000000000000000000000000000BC -S31560023CA000000000000000000000000000000000AC -S31560023CB0000000000000000000000000000000009C -S31560023CC0000000000000000000000000000000008C -S31560023CD0000000000000000000000000000000007C -S31560023CE0000000000000000000000000000000006C -S31560023CF0000000000000000000000000000000005C -S31560023D00000000000000000000000000000000004B -S31560023D10000000000000000000000000000000003B -S31560023D20000000000000000000000000000000002B -S31560023D30000000000000000000000000000000001B -S31560023D40000000000000000000000000000000000B -S31560023D5000000000000000000000000000000000FB -S31560023D6000000000000000000000000000000000EB -S31560023D7000000000000000000000000000000000DB -S31560023D8000000000000000000000000000000000CB -S31560023D9000000000000000000000000000000000BB -S31560023DA000000000000000000000000000000000AB -S31560023DB0000000000000000000000000000000009B -S31560023DC0000000000000000000000000000000008B -S31560023DD0000000000000000000000000000000007B -S31560023DE0000000000000000000000000000000006B -S31560023DF0000000000000000000000000000000005B -S31560023E00000000000000000000000000000000004A -S31560023E10000000000000000000000000000000003A -S31560023E20000000000000000000000000000000002A -S31560023E30000000000000000000000000000000001A -S31560023E40000000000000000000000000000000000A -S31560023E5000000000000000000000000000000000FA -S31560023E6000000000000000000000000000000000EA -S31560023E7000000000000000000000000000000000DA -S31560023E8000000000000000000000000000000000CA -S31560023E9000000000000000000000000000000000BA -S31560023EA000000000000000000000000000000000AA -S31560023EB0000000000000000000000000000000009A -S31560023EC0000000000000000000000000000000008A -S31560023ED0000000000000000000000000000000007A -S31560023EE0000000000000000000000000000000006A -S31560023EF0000000000000000000000000000000005A -S31560023F000000000000000000000000000000000049 -S31560023F100000000000000000000000000000000039 -S31560023F200000000000000000000000000000000029 -S31560023F300000000000000000000000000000000019 -S31560023F400000000000000000000000000000000009 -S31560023F5000000000000000000000000000000000F9 -S31560023F6000000000000000000000000000000000E9 -S31560023F7000000000000000000000000000000000D9 -S31560023F8000000000000000000000000000000000C9 -S31560023F9000000000000000000000000000000000B9 -S31560023FA000000000000000000000000000000000A9 -S31560023FB00000000000000000000000000000000099 -S31560023FC00000000000000000000000000000000089 -S31560023FD00000000000000000000000000000000079 -S31560023FE00000000000000000000000000000000069 -S31560023FF00000000000000000000000000000000059 -S315600240000000000000000000000000000000000048 -S315600240100000000000000000000000000000000038 -S315600240200000000000000000000000000000000028 -S315600240300000000000000000000000000000000018 -S315600240400000000000000000000000000000000008 -S3156002405000000000000000000000000000000000F8 -S3156002406000000000000000000000000000000000E8 -S3156002407000000000000000000000000000000000D8 -S3156002408000000000000000000000000000000000C8 -S3156002409000000000000000000000000000000000B8 -S315600240A000000000000000000000000000000000A8 -S315600240B00000000000000000000000000000000098 -S315600240C00000000000000000000000000000000088 -S315600240D00000000000000000000000000000000078 -S315600240E00000000000000000000000000000000068 -S315600240F00000000000000000000000000000000058 -S315600241000000000000000000000000000000000047 -S315600241100000000000000000000000000000000037 -S315600241200000000000000000000000000000000027 -S315600241300000000000000000000000000000000017 -S315600241400000000000000000000000000000000007 -S3156002415000000000000000000000000000000000F7 -S3156002416000000000000000000000000000000000E7 -S3156002417000000000000000000000000000000000D7 -S3156002418000000000000000000000000000000000C7 -S3156002419000000000000000000000000000000000B7 -S315600241A000000000000000000000000000000000A7 -S315600241B00000000000000000000000000000000097 -S315600241C00000000000000000000000000000000087 -S315600241D00000000000000000000000000000000077 -S315600241E00000000000000000000000000000000067 -S315600241F00000000000000000000000000000000057 -S315600242000000000000000000000000000000000046 -S315600242100000000000000000000000000000000036 -S315600242200000000000000000000000000000000026 -S315600242300000000000000000000000000000000016 -S315600242400000000000000000000000000000000006 -S3156002425000000000000000000000000000000000F6 -S3156002426000000000000000000000000000000000E6 -S3156002427000000000000000000000000000000000D6 -S3156002428000000000000000000000000000000000C6 -S3156002429000000000000000000000000000000000B6 -S315600242A000000000000000000000000000000000A6 -S315600242B00000000000000000000000000000000096 -S315600242C00000000000000000000000000000000086 -S315600242D00000000000000000000000000000000076 -S315600242E00000000000000000000000000000000066 -S315600242F00000000000000000000000000000000056 -S315600243000000000000000000000000000000000045 -S315600243100000000000000000000000000000000035 -S315600243200000000000000000000000000000000025 -S315600243300000000000000000000000000000000015 -S315600243400000000000000000000000000000000005 -S3156002435000000000000000000000000000000000F5 -S3156002436000000000000000000000000000000000E5 -S3156002437000000000000000000000000000000000D5 -S3156002438000000000000000000000000000000000C5 -S3156002439000000000000000000000000000000000B5 -S315600243A000000000000000000000000000000000A5 -S315600243B00000000000000000000000000000000095 -S315600243C00000000000000000000000000000000085 -S315600243D00000000000000000000000000000000075 -S315600243E00000000000000000000000000000000065 -S315600243F00000000000000000000000000000000055 -S315600244000000000000000000000000000000000044 -S315600244100000000000000000000000000000000034 -S315600244200000000000000000000000000000000024 -S315600244300000000000000000000000000000000014 -S315600244400000000000000000000000000000000004 -S3156002445000000000000000000000000000000000F4 -S3156002446000000000000000000000000000000000E4 -S3156002447000000000000000000000000000000000D4 -S3156002448000000000000000000000000000000000C4 -S3156002449000000000000000000000000000000000B4 -S315600244A000000000000000000000000000000000A4 -S315600244B00000000000000000000000000000000094 -S315600244C00000000000000000000000000000000084 -S315600244D00000000000000000000000000000000074 -S315600244E00000000000000000000000000000000064 -S315600244F00000000000000000000000000000000054 -S315600245000000000000000000000000000000000043 -S315600245100000000000000000000000000000000033 -S315600245200000000000000000000000000000000023 -S315600245300000000000000000000000000000000013 -S315600245400000000000000000000000000000000003 -S3156002455000000000000000000000000000000000F3 -S3156002456000000000000000000000000000000000E3 -S3156002457000000000000000000000000000000000D3 -S3156002458000000000000000000000000000000000C3 -S3156002459000000000000000000000000000000000B3 -S315600245A000000000000000000000000000000000A3 -S315600245B00000000000000000000000000000000093 -S315600245C00000000000000000000000000000000083 -S315600245D00000000000000000000000000000000073 -S315600245E00000000000000000000000000000000063 -S315600245F00000000000000000000000000000000053 -S315600246000000000000000000000000000000000042 -S315600246100000000000000000000000000000000032 -S315600246200000000000000000000000000000000022 -S315600246300000000000000000000000000000000012 -S315600246400000000000000000000000000000000002 -S3156002465000000000000000000000000000000000F2 -S3156002466000000000000000000000000000000000E2 -S3156002467000000000000000000000000000000000D2 -S3156002468000000000000000000000000000000000C2 -S3156002469000000000000000000000000000000000B2 -S315600246A000000000000000000000000000000000A2 -S315600246B00000000000000000000000000000000092 -S315600246C00000000000000000000000000000000082 -S315600246D00000000000000000000000000000000072 -S315600246E00000000000000000000000000000000062 -S315600246F00000000000000000000000000000000052 -S315600247000000000000000000000000000000000041 -S315600247100000000000000000000000000000000031 -S315600247200000000000000000000000000000000021 -S315600247300000000000000000000000000000000011 -S315600247400000000000000000000000000000000001 -S3156002475000000000000000000000000000000000F1 -S3156002476000000000000000000000000000000000E1 -S3156002477000000000000000000000000000000000D1 -S3156002478000000000000000000000000000000000C1 -S3156002479000000000000000000000000000000000B1 -S315600247A000000000000000000000000000000000A1 -S315600247B00000000000000000000000000000000091 -S315600247C00000000000000000000000000000000081 -S315600247D00000000000000000000000000000000071 -S315600247E00000000000000000000000000000000061 -S315600247F00000000000000000000000000000000051 -S315600248000000000000000000000000000000000040 -S315600248100000000000000000000000000000000030 -S315600248200000000000000000000000000000000020 -S315600248300000000000000000000000000000000010 -S315600248400000000000000000000000000000000000 -S3156002485000000000000000000000000000000000F0 -S3156002486000000000000000000000000000000000E0 -S3156002487000000000000000000000000000000000D0 -S3156002488000000000000000000000000000000000C0 -S3156002489000000000000000000000000000000000B0 -S315600248A000000000000000000000000000000000A0 -S315600248B00000000000000000000000000000000090 -S315600248C00000000000000000000000000000000080 -S315600248D00000000000000000000000000000000070 -S315600248E00000000000000000000000000000000060 -S315600248F00000000000000000000000000000000050 -S31560024900000000000000000000000000000000003F -S31560024910000000000000000000000000000000002F -S31560024920000000000000000000000000000000001F -S31560024930000000000000000000000000000000000F -S3156002494000000000000000000000000000000000FF -S3156002495000000000000000000000000000000000EF -S3156002496000000000000000000000000000000000DF -S3156002497000000000000000000000000000000000CF -S3156002498000000000000000000000000000000000BF -S3156002499000000000000000000000000000000000AF -S315600249A0000000000000000000000000000000009F -S315600249B0000000000000000000000000000000008F -S315600249C0000000000000000000000000000000007F -S315600249D0000000000000000000000000000000006F -S315600249E0000000000000000000000000000000005F -S315600249F0000000000000000000000000000000004F -S31560024A00000000000000000000000000000000003E -S31560024A10000000000000000000000000000000002E -S31560024A20000000000000000000000000000000001E -S31560024A30000000000000000000000000000000000E -S31560024A4000000000000000000000000000000000FE -S31560024A5000000000000000000000000000000000EE -S31560024A6000000000000000000000000000000000DE -S31560024A7000000000000000000000000000000000CE -S31560024A8000000000000000000000000000000000BE -S31560024A9000000000000000000000000000000000AE -S31560024AA0000000000000000000000000000000009E -S31560024AB0000000000000000000000000000000008E -S31560024AC0000000000000000000000000000000007E -S31560024AD0000000000000000000000000000000006E -S31560024AE0000000000000000000000000000000005E -S31560024AF0000000000000000000000000000000004E -S31560024B00000000000000000000000000000000003D -S31560024B10000000000000000000000000000000002D -S31560024B20000000000000000000000000000000001D -S31560024B30000000000000000000000000000000000D -S31560024B4000000000000000000000000000000000FD -S31560024B5000000000000000000000000000000000ED -S31560024B6000000000000000000000000000000000DD -S31560024B7000000000000000000000000000000000CD -S31560024B8000000000000000000000000000000000BD -S31560024B9000000000000000000000000000000000AD -S31560024BA0000000000000000000000000000000009D -S31560024BB0000000000000000000000000000000008D -S31560024BC0000000000000000000000000000000007D -S31560024BD0000000000000000000000000000000006D -S31560024BE0000000000000000000000000000000005D -S31560024BF0000000000000000000000000000000004D -S31560024C00000000000000000000000000000000003C -S31560024C10000000000000000000000000000000002C -S31560024C20000000000000000000000000000000001C -S31560024C30000000000000000000000000000000000C -S31560024C4000000000000000000000000000000000FC -S31560024C5000000000000000000000000000000000EC -S31560024C6000000000000000000000000000000000DC -S31560024C7000000000000000000000000000000000CC -S31560024C8000000000000000000000000000000000BC -S31560024C9000000000000000000000000000000000AC -S31560024CA0000000000000000000000000000000009C -S31560024CB0000000000000000000000000000000008C -S31560024CC0000000000000000000000000000000007C -S31560024CD0000000000000000000000000000000006C -S31560024CE0000000000000000000000000000000005C -S31560024CF0000000000000000000000000000000004C -S31560024D00000000000000000000000000000000003B -S31560024D10000000000000000000000000000000002B -S31560024D20000000000000000000000000000000001B -S31560024D30000000000000000000000000000000000B -S31560024D4000000000000000000000000000000000FB -S31560024D5000000000000000000000000000000000EB -S31560024D6000000000000000000000000000000000DB -S31560024D7000000000000000000000000000000000CB -S31560024D8000000000000000000000000000000000BB -S31560024D9000000000000000000000000000000000AB -S31560024DA0000000000000000000000000000000009B -S31560024DB0000000000000000000000000000000008B -S31560024DC0000000000000000000000000000000007B -S31560024DD0000000000000000000000000000000006B -S31560024DE0000000000000000000000000000000005B -S31560024DF0000000000000000000000000000000004B -S31560024E00000000000000000000000000000000003A -S31560024E10000000000000000000000000000000002A -S31560024E20000000000000000000000000000000001A -S31560024E30000000000000000000000000000000000A -S31560024E4000000000000000000000000000000000FA -S31560024E5000000000000000000000000000000000EA -S31560024E6000000000000000000000000000000000DA -S31560024E7000000000000000000000000000000000CA -S31560024E8000000000000000000000000000000000BA -S31560024E9000000000000000000000000000000000AA -S31560024EA0000000000000000000000000000000009A -S31560024EB0000000000000000000000000000000008A -S31560024EC0000000000000000000000000000000007A -S31560024ED0000000000000000000000000000000006A -S31560024EE0000000000000000000000000000000005A -S31560024EF0000000000000000000000000000000004A -S31560024F000000000000000000000000000000000039 -S31560024F100000000000000000000000000000000029 -S31560024F200000000000000000000000000000000019 -S31560024F300000000000000000000000000000000009 -S31560024F4000000000000000000000000000000000F9 -S31560024F5000000000000000000000000000000000E9 -S31560024F6000000000000000000000000000000000D9 -S31560024F7000000000000000000000000000000000C9 -S31560024F8000000000000000000000000000000000B9 -S31560024F9000000000000000000000000000000000A9 -S31560024FA00000000000000000000000000000000099 -S31560024FB00000000000000000000000000000000089 -S31560024FC00000000000000000000000000000000079 -S31560024FD00000000000000000000000000000000069 -S31560024FE00000000000000000000000000000000059 -S31560024FF00000000000000000000000000000000049 -S315600250000000000000000000000000000000000038 -S315600250100000000000000000000000000000000028 -S315600250200000000000000000000000000000000018 -S315600250300000000000000000000000000000000008 -S3156002504000000000000000000000000000000000F8 -S3156002505000000000000000000000000000000000E8 -S3156002506000000000000000000000000000000000D8 -S3156002507000000000000000000000000000000000C8 -S3156002508000000000000000000000000000000000B8 -S3156002509000000000000000000000000000000000A8 -S315600250A00000000000000000000000000000000098 -S315600250B00000000000000000000000000000000088 -S315600250C00000000000000000000000000000000078 -S315600250D00000000000000000000000000000000068 -S315600250E00000000000000000000000000000000058 -S315600250F00000000000000000000000000000000048 -S315600251000000000000000000000000000000000037 -S315600251100000000000000000000000000000000027 -S315600251200000000000000000000000000000000017 -S315600251300000000000000000000000000000000007 -S3156002514000000000000000000000000000000000F7 -S3156002515000000000000000000000000000000000E7 -S3156002516000000000000000000000000000000000D7 -S3156002517000000000000000000000000000000000C7 -S3156002518000000000000000000000000000000000B7 -S3156002519000000000000000000000000000000000A7 -S315600251A00000000000000000000000000000000097 -S315600251B00000000000000000000000000000000087 -S315600251C00000000000000000000000000000000077 -S315600251D00000000000000000000000000000000067 -S315600251E00000000000000000000000000000000057 -S315600251F00000000000000000000000000000000047 -S315600252000000000000000000000000000000000036 -S315600252100000000000000000000000000000000026 -S315600252200000000000000000000000000000000016 -S315600252300000000000000000000000000000000006 -S3156002524000000000000000000000000000000000F6 -S3156002525000000000000000000000000000000000E6 -S3156002526000000000000000000000000000000000D6 -S3156002527000000000000000000000000000000000C6 -S3156002528000000000000000000000000000000000B6 -S3156002529000000000000000000000000000000000A6 -S315600252A00000000000000000000000000000000096 -S315600252B00000000000000000000000000000000086 -S315600252C00000000000000000000000000000000076 -S315600252D00000000000000000000000000000000066 -S315600252E00000000000000000000000000000000056 -S315600252F00000000000000000000000000000000046 -S315600253000000000000000000000000000000000035 -S315600253100000000000000000000000000000000025 -S315600253200000000000000000000000000000000015 -S315600253300000000000000000000000000000000005 -S3156002534000000000000000000000000000000000F5 -S3156002535000000000000000000000000000000000E5 -S3156002536000000000000000000000000000000000D5 -S3156002537000000000000000000000000000000000C5 -S3156002538000000000000000000000000000000000B5 -S3156002539000000000000000000000000000000000A5 -S315600253A00000000000000000000000000000000095 -S315600253B00000000000000000000000000000000085 -S315600253C00000000000000000000000000000000075 -S315600253D00000000000000000000000000000000065 -S315600253E00000000000000000000000000000000055 -S315600253F00000000000000000000000000000000045 -S315600254000000000000000000000000000000000034 -S315600254100000000000000000000000000000000024 -S315600254200000000000000000000000000000000014 -S315600254300000000000000000000000000000000004 -S3156002544000000000000000000000000000000000F4 -S3156002545000000000000000000000000000000000E4 -S3156002546000000000000000000000000000000000D4 -S3156002547000000000000000000000000000000000C4 -S3156002548000000000000000000000000000000000B4 -S3156002549000000000000000000000000000000000A4 -S315600254A00000000000000000000000000000000094 -S315600254B00000000000000000000000000000000084 -S315600254C00000000000000000000000000000000074 -S315600254D00000000000000000000000000000000064 -S315600254E00000000000000000000000000000000054 -S315600254F00000000000000000000000000000000044 -S315600255000000000000000000000000000000000033 -S315600255100000000000000000000000000000000023 -S315600255200000000000000000000000000000000013 -S315600255300000000000000000000000000000000003 -S3156002554000000000000000000000000000000000F3 -S3156002555000000000000000000000000000000000E3 -S3156002556000000000000000000000000000000000D3 -S3156002557000000000000000000000000000000000C3 -S3156002558000000000000000000000000000000000B3 -S3156002559000000000000000000000000000000000A3 -S315600255A00000000000000000000000000000000093 -S315600255B00000000000000000000000000000000083 -S315600255C00000000000000000000000000000000073 -S315600255D00000000000000000000000000000000063 -S315600255E00000000000000000000000000000000053 -S315600255F00000000000000000000000000000000043 -S315600256000000000000000000000000000000000032 -S315600256100000000000000000000000000000000022 -S315600256200000000000000000000000000000000012 -S315600256300000000000000000000000000000000002 -S3156002564000000000000000000000000000000000F2 -S3156002565000000000000000000000000000000000E2 -S3156002566000000000000000000000000000000000D2 -S3156002567000000000000000000000000000000000C2 -S3156002568000000000000000000000000000000000B2 -S3156002569000000000000000000000000000000000A2 -S315600256A00000000000000000000000000000000092 -S315600256B00000000000000000000000000000000082 -S315600256C00000000000000000000000000000000072 -S315600256D00000000000000000000000000000000062 -S315600256E00000000000000000000000000000000052 -S315600256F00000000000000000000000000000000042 -S315600257000000000000000000000000000000000031 -S315600257100000000000000000000000000000000021 -S315600257200000000000000000000000000000000011 -S315600257300000000000000000000000000000000001 -S3156002574000000000000000000000000000000000F1 -S3156002575000000000000000000000000000000000E1 -S3156002576000000000000000000000000000000000D1 -S3156002577000000000000000000000000000000000C1 -S3156002578000000000000000000000000000000000B1 -S3156002579000000000000000000000000000000000A1 -S315600257A00000000000000000000000000000000091 -S315600257B00000000000000000000000000000000081 -S315600257C00000000000000000000000000000000071 -S315600257D00000000000000000000000000000000061 -S315600257E00000000000000000000000000000000051 -S315600257F00000000000000000000000000000000041 -S315600258000000000000000000000000000000000030 -S315600258100000000000000000000000000000000020 -S315600258200000000000000000000000000000000010 -S315600258300000000000000000000000000000000000 -S3156002584000000000000000000000000000000000F0 -S3156002585000000000000000000000000000000000E0 -S3156002586000000000000000000000000000000000D0 -S3156002587000000000000000000000000000000000C0 -S3156002588000000000000000000000000000000000B0 -S3156002589000000000000000000000000000000000A0 -S315600258A00000000000000000000000000000000090 -S315600258B00000000000000000000000000000000080 -S315600258C00000000000000000000000000000000070 -S315600258D00000000000000000000000000000000060 -S315600258E00000000000000000000000000000000050 -S315600258F00000000000000000000000000000000040 -S31560025900000000000000000000000000000000002F -S31560025910000000000000000000000000000000001F -S31560025920000000000000000000000000000000000F -S3156002593000000000000000000000000000000000FF -S3156002594000000000000000000000000000000000EF -S3156002595000000000000000000000000000000000DF -S3156002596000000000000000000000000000000000CF -S3156002597000000000000000000000000000000000BF -S3156002598000000000000000000000000000000000AF -S31560025990000000000000000000000000000000009F -S315600259A0000000000000000000000000000000008F -S315600259B0000000000000000000000000000000007F -S315600259C0000000000000000000000000000000006F -S315600259D0000000000000000000000000000000005F -S315600259E0000000000000000000000000000000004F -S315600259F0000000000000000000000000000000003F -S31560025A00000000000000000000000000000000002E -S31560025A10000000000000000000000000000000001E -S31560025A20000000000000000000000000000000000E -S31560025A3000000000000000000000000000000000FE -S31560025A4000000000000000000000000000000000EE -S31560025A5000000000000000000000000000000000DE -S31560025A6000000000000000000000000000000000CE -S31560025A7000000000000000000000000000000000BE -S31560025A8000000000000000000000000000000000AE -S31560025A90000000000000000000000000000000009E -S31560025AA0000000000000000000000000000000008E -S31560025AB0000000000000000000000000000000007E -S31560025AC0000000000000000000000000000000006E -S31560025AD0000000000000000000000000000000005E -S31560025AE0000000000000000000000000000000004E -S31560025AF0000000000000000000000000000000003E -S31560025B00000000000000000000000000000000002D -S31560025B10000000000000000000000000000000001D -S31560025B20000000000000000000000000000000000D -S31560025B3000000000000000000000000000000000FD -S31560025B4000000000000000000000000000000000ED -S31560025B5000000000000000000000000000000000DD -S31560025B6000000000000000000000000000000000CD -S31560025B7000000000000000000000000000000000BD -S31560025B8000000000000000000000000000000000AD -S31560025B90000000000000000000000000000000009D -S31560025BA0000000000000000000000000000000008D -S31560025BB0000000000000000000000000000000007D -S31560025BC0000000000000000000000000000000006D -S31560025BD0000000000000000000000000000000005D -S31560025BE0000000000000000000000000000000004D -S31560025BF0000000000000000000000000000000003D -S31560025C00000000000000000000000000000000002C -S31560025C10000000000000000000000000000000001C -S31560025C20000000000000000000000000000000000C -S31560025C3000000000000000000000000000000000FC -S31560025C4000000000000000000000000000000000EC -S31560025C5000000000000000000000000000000000DC -S31560025C6000000000000000000000000000000000CC -S31560025C7000000000000000000000000000000000BC -S31560025C8000000000000000000000000000000000AC -S31560025C90000000000000000000000000000000009C -S31560025CA0000000000000000000000000000000008C -S31560025CB0000000000000000000000000000000007C -S31560025CC0000000000000000000000000000000006C -S31560025CD0000000000000000000000000000000005C -S31560025CE0000000000000000000000000000000004C -S31560025CF0000000000000000000000000000000003C -S31560025D00000000000000000000000000000000002B -S31560025D10000000000000000000000000000000001B -S31560025D20000000000000000000000000000000000B -S31560025D3000000000000000000000000000000000FB -S31560025D4000000000000000000000000000000000EB -S31560025D5000000000000000000000000000000000DB -S31560025D6000000000000000000000000000000000CB -S31560025D7000000000000000000000000000000000BB -S31560025D8000000000000000000000000000000000AB -S31560025D90000000000000000000000000000000009B -S31560025DA0000000000000000000000000000000008B -S31560025DB0000000000000000000000000000000007B -S31560025DC0000000000000000000000000000000006B -S31560025DD0000000000000000000000000000000005B -S31560025DE0000000000000000000000000000000004B -S31560025DF0000000000000000000000000000000003B -S31560025E00000000000000000000000000000000002A -S31560025E10000000000000000000000000000000001A -S31560025E20000000000000000000000000000000000A -S31560025E3000000000000000000000000000000000FA -S31560025E4000000000000000000000000000000000EA -S31560025E5000000000000000000000000000000000DA -S31560025E6000000000000000000000000000000000CA -S31560025E7000000000000000000000000000000000BA -S31560025E8000000000000000000000000000000000AA -S31560025E90000000000000000000000000000000009A -S31560025EA0000000000000000000000000000000008A -S31560025EB0000000000000000000000000000000007A -S31560025EC0000000000000000000000000000000006A -S31560025ED0000000000000000000000000000000005A -S31560025EE0000000000000000000000000000000004A -S31560025EF0000000000000000000000000000000003A -S31560025F000000000000000000000000000000000029 -S31560025F100000000000000000000000000000000019 -S31560025F200000000000000000000000000000000009 -S31560025F3000000000000000000000000000000000F9 -S31560025F4000000000000000000000000000000000E9 -S31560025F5000000000000000000000000000000000D9 -S31560025F6000000000000000000000000000000000C9 -S31560025F7000000000000000000000000000000000B9 -S31560025F8000000000000000000000000000000000A9 -S31560025F900000000000000000000000000000000099 -S31560025FA00000000000000000000000000000000089 -S31560025FB00000000000000000000000000000000079 -S31560025FC00000000000000000000000000000000069 -S31560025FD00000000000000000000000000000000059 -S31560025FE00000000000000000000000000000000049 -S31560025FF00000000000000000000000000000000039 -S315600260000000000000000000000000000000000028 -S315600260100000000000000000000000000000000018 -S315600260200000000000000000000000000000000008 -S3156002603000000000000000000000000000000000F8 -S3156002604000000000000000000000000000000000E8 -S3156002605000000000000000000000000000000000D8 -S3156002606000000000000000000000000000000000C8 -S3156002607000000000000000000000000000000000B8 -S3156002608000000000000000000000000000000000A8 -S315600260900000000000000000000000000000000098 -S315600260A00000000000000000000000000000000088 -S315600260B00000000000000000000000000000000078 -S315600260C00000000000000000000000000000000068 -S315600260D00000000000000000000000000000000058 -S315600260E00000000000000000000000000000000048 -S315600260F00000000000000000000000000000000038 -S315600261000000000000000000000000000000000027 -S315600261100000000000000000000000000000000017 -S315600261200000000000000000000000000000000007 -S3156002613000000000000000000000000000000000F7 -S3156002614000000000000000000000000000000000E7 -S3156002615000000000000000000000000000000000D7 -S3156002616000000000000000000000000000000000C7 -S3156002617000000000000000000000000000000000B7 -S3156002618000000000000000000000000000000000A7 -S315600261900000000000000000000000000000000097 -S315600261A00000000000000000000000000000000087 -S315600261B00000000000000000000000000000000077 -S315600261C00000000000000000000000000000000067 -S315600261D00000000000000000000000000000000057 -S315600261E00000000000000000000000000000000047 -S315600261F00000000000000000000000000000000037 -S315600262000000000000000000000000000000000026 -S315600262100000000000000000000000000000000016 -S315600262200000000000000000000000000000000006 -S3156002623000000000000000000000000000000000F6 -S3156002624000000000000000000000000000000000E6 -S3156002625000000000000000000000000000000000D6 -S3156002626000000000000000000000000000000000C6 -S3156002627000000000000000000000000000000000B6 -S3156002628000000000000000000000000000000000A6 -S315600262900000000000000000000000000000000096 -S315600262A00000000000000000000000000000000086 -S315600262B00000000000000000000000000000000076 -S315600262C00000000000000000000000000000000066 -S315600262D00000000000000000000000000000000056 -S315600262E00000000000000000000000000000000046 -S315600262F00000000000000000000000000000000036 -S315600263000000000000000000000000000000000025 -S315600263100000000000000000000000000000000015 -S315600263200000000000000000000000000000000005 -S3156002633000000000000000000000000000000000F5 -S3156002634000000000000000000000000000000000E5 -S3156002635000000000000000000000000000000000D5 -S3156002636000000000000000000000000000000000C5 -S3156002637000000000000000000000000000000000B5 -S3156002638000000000000000000000000000000000A5 -S315600263900000000000000000000000000000000095 -S315600263A00000000000000000000000000000000085 -S315600263B00000000000000000000000000000000075 -S315600263C00000000000000000000000000000000065 -S315600263D00000000000000000000000000000000055 -S315600263E00000000000000000000000000000000045 -S315600263F00000000000000000000000000000000035 -S315600264000000000000000000000000000000000024 -S315600264100000000000000000000000000000000014 -S315600264200000000000000000000000000000000004 -S3156002643000000000000000000000000000000000F4 -S3156002644000000000000000000000000000000000E4 -S3156002645000000000000000000000000000000000D4 -S3156002646000000000000000000000000000000000C4 -S3156002647000000000000000000000000000000000B4 -S3156002648000000000000000000000000000000000A4 -S315600264900000000000000000000000000000000094 -S315600264A00000000000000000000000000000000084 -S315600264B00000000000000000000000000000000074 -S315600264C00000000000000000000000000000000064 -S315600264D00000000000000000000000000000000054 -S315600264E00000000000000000000000000000000044 -S315600264F00000000000000000000000000000000034 -S315600265000000000000000000000000000000000023 -S315600265100000000000000000000000000000000013 -S315600265200000000000000000000000000000000003 -S3156002653000000000000000000000000000000000F3 -S3156002654000000000000000000000000000000000E3 -S3156002655000000000000000000000000000000000D3 -S3156002656000000000000000000000000000000000C3 -S3156002657000000000000000000000000000000000B3 -S3156002658000000000000000000000000000000000A3 -S315600265900000000000000000000000000000000093 -S315600265A00000000000000000000000000000000083 -S315600265B00000000000000000000000000000000073 -S315600265C00000000000000000000000000000000063 -S315600265D00000000000000000000000000000000053 -S315600265E00000000000000000000000000000000043 -S315600265F00000000000000000000000000000000033 -S315600266000000000000000000000000000000000022 -S315600266100000000000000000000000000000000012 -S315600266200000000000000000000000000000000002 -S3156002663000000000000000000000000000000000F2 -S3156002664000000000000000000000000000000000E2 -S3156002665000000000000000000000000000000000D2 -S3156002666000000000000000000000000000000000C2 -S3156002667000000000000000000000000000000000B2 -S3156002668000000000000000000000000000000000A2 -S315600266900000000000000000000000000000000092 -S315600266A00000000000000000000000000000000082 -S315600266B00000000000000000000000000000000072 -S315600266C00000000000000000000000000000000062 -S315600266D00000000000000000000000000000000052 -S315600266E00000000000000000000000000000000042 -S315600266F00000000000000000000000000000000032 -S315600267000000000000000000000000000000000021 -S315600267100000000000000000000000000000000011 -S315600267200000000000000000000000000000000001 -S3156002673000000000000000000000000000000000F1 -S3156002674000000000000000000000000000000000E1 -S3156002675000000000000000000000000000000000D1 -S3156002676000000000000000000000000000000000C1 -S3156002677000000000000000000000000000000000B1 -S3156002678000000000000000000000000000000000A1 -S315600267900000000000000000000000000000000091 -S315600267A00000000000000000000000000000000081 -S315600267B00000000000000000000000000000000071 -S315600267C00000000000000000000000000000000061 -S315600267D00000000000000000000000000000000051 -S315600267E00000000000000000000000000000000041 -S315600267F00000000000000000000000000000000031 -S315600268000000000000000000000000000000000020 -S315600268100000000000000000000000000000000010 -S315600268200000000000000000000000000000000000 -S3156002683000000000000000000000000000000000F0 -S3156002684000000000000000000000000000000000E0 -S3156002685000000000000000000000000000000000D0 -S3156002686000000000000000000000000000000000C0 -S3156002687000000000000000000000000000000000B0 -S3156002688000000000000000000000000000000000A0 -S315600268900000000000000000000000000000000090 -S315600268A00000000000000000000000000000000080 -S315600268B00000000000000000000000000000000070 -S315600268C00000000000000000000000000000000060 -S315600268D00000000000000000000000000000000050 -S315600268E00000000000000000000000000000000040 -S315600268F00000000000000000000000000000000030 -S31560026900000000000000000000000000000000001F -S31560026910000000000000000000000000000000000F -S3156002692000000000000000000000000000000000FF -S3156002693000000000000000000000000000000000EF -S3156002694000000000000000000000000000000000DF -S3156002695000000000000000000000000000000000CF -S3156002696000000000000000000000000000000000BF -S3156002697000000000000000000000000000000000AF -S31560026980000000000000000000000000000000009F -S31560026990000000000000000000000000000000008F -S315600269A0000000000000000000000000000000007F -S315600269B0000000000000000000000000000000006F -S315600269C0000000000000000000000000000000005F -S315600269D0000000000000000000000000000000004F -S315600269E0000000000000000000000000000000003F -S315600269F0000000000000000000000000000000002F -S31560026A00000000000000000000000000000000001E -S31560026A10000000000000000000000000000000000E -S31560026A2000000000000000000000000000000000FE -S31560026A3000000000000000000000000000000000EE -S31560026A4000000000000000000000000000000000DE -S31560026A5000000000000000000000000000000000CE -S31560026A6000000000000000000000000000000000BE -S31560026A7000000000000000000000000000000000AE -S31560026A80000000000000000000000000000000009E -S31560026A90000000000000000000000000000000008E -S31560026AA0000000000000000000000000000000007E -S31560026AB0000000000000000000000000000000006E -S31560026AC0000000000000000000000000000000005E -S31560026AD0000000000000000000000000000000004E -S31560026AE0000000000000000000000000000000003E -S31560026AF0000000000000000000000000000000002E -S31560026B00000000000000000000000000000000001D -S31560026B10000000000000000000000000000000000D -S31560026B2000000000000000000000000000000000FD -S31560026B3000000000000000000000000000000000ED -S31560026B4000000000000000000000000000000000DD -S31560026B5000000000000000000000000000000000CD -S31560026B6000000000000000000000000000000000BD -S31560026B7000000000000000000000000000000000AD -S31560026B80000000000000000000000000000000009D -S31560026B90000000000000000000000000000000008D -S31560026BA0000000000000000000000000000000007D -S31560026BB0000000000000000000000000000000006D -S31560026BC0000000000000000000000000000000005D -S31560026BD0000000000000000000000000000000004D -S31560026BE0000000000000000000000000000000003D -S31560026BF0000000000000000000000000000000002D -S31560026C00000000000000000000000000000000001C -S31560026C10000000000000000000000000000000000C -S31560026C2000000000000000000000000000000000FC -S31560026C3000000000000000000000000000000000EC -S31560026C4000000000000000000000000000000000DC -S31560026C5000000000000000000000000000000000CC -S31560026C6000000000000000000000000000000000BC -S31560026C7000000000000000000000000000000000AC -S31560026C80000000000000000000000000000000009C -S31560026C90000000000000000000000000000000008C -S31560026CA0000000000000000000000000000000007C -S31560026CB0000000000000000000000000000000006C -S31560026CC0000000000000000000000000000000005C -S31560026CD0000000000000000000000000000000004C -S31560026CE0000000000000000000000000000000003C -S31560026CF0000000000000000000000000000000002C -S31560026D00000000000000000000000000000000001B -S31560026D10000000000000000000000000000000000B -S31560026D2000000000000000000000000000000000FB -S31560026D3000000000000000000000000000000000EB -S31560026D4000000000000000000000000000000000DB -S31560026D5000000000000000000000000000000000CB -S31560026D6000000000000000000000000000000000BB -S31560026D7000000000000000000000000000000000AB -S31560026D80000000000000000000000000000000009B -S31560026D90000000000000000000000000000000008B -S31560026DA0000000000000000000000000000000007B -S31560026DB0000000000000000000000000000000006B -S31560026DC0000000000000000000000000000000005B -S31560026DD0000000000000000000000000000000004B -S31560026DE0000000000000000000000000000000003B -S31560026DF0000000000000000000000000000000002B -S31560026E00000000000000000000000000000000001A -S31560026E10000000000000000000000000000000000A -S31560026E2000000000000000000000000000000000FA -S31560026E3000000000000000000000000000000000EA -S31560026E4000000000000000000000000000000000DA -S31560026E5000000000000000000000000000000000CA -S31560026E6000000000000000000000000000000000BA -S31560026E7000000000000000000000000000000000AA -S31560026E80000000000000000000000000000000009A -S31560026E90000000000000000000000000000000008A -S31560026EA0000000000000000000000000000000007A -S31560026EB0000000000000000000000000000000006A -S31560026EC0000000000000000000000000000000005A -S31560026ED0000000000000000000000000000000004A -S31560026EE0000000000000000000000000000000003A -S31560026EF0000000000000000000000000000000002A -S31560026F000000000000000000000000000000000019 -S31560026F100000000000000000000000000000000009 -S31560026F2000000000000000000000000000000000F9 -S31560026F3000000000000000000000000000000000E9 -S31560026F4000000000000000000000000000000000D9 -S31560026F5000000000000000000000000000000000C9 -S31560026F6000000000000000000000000000000000B9 -S31560026F7000000000000000000000000000000000A9 -S31560026F800000000000000000000000000000000099 -S31560026F900000000000000000000000000000000089 -S31560026FA00000000000000000000000000000000079 -S31560026FB00000000000000000000000000000000069 -S31560026FC00000000000000000000000000000000059 -S31560026FD00000000000000000000000000000000049 -S31560026FE00000000000000000000000000000000039 -S31560026FF00000000000000000000000000000000029 -S315600270000000000000000000000000000000000018 -S315600270100000000000000000000000000000000008 -S3156002702000000000000000000000000000000000F8 -S3156002703000000000000000000000000000000000E8 -S3156002704000000000000000000000000000000000D8 -S3156002705000000000000000000000000000000000C8 -S3156002706000000000000000000000000000000000B8 -S3156002707000000000000000000000000000000000A8 -S315600270800000000000000000000000000000000098 -S315600270900000000000000000000000000000000088 -S315600270A00000000000000000000000000000000078 -S315600270B00000000000000000000000000000000068 -S315600270C00000000000000000000000000000000058 -S315600270D00000000000000000000000000000000048 -S315600270E00000000000000000000000000000000038 -S315600270F00000000000000000000000000000000028 -S315600271000000000000000000000000000000000017 -S315600271100000000000000000000000000000000007 -S3156002712000000000000000000000000000000000F7 -S3156002713000000000000000000000000000000000E7 -S3156002714000000000000000000000000000000000D7 -S3156002715000000000000000000000000000000000C7 -S3156002716000000000000000000000000000000000B7 -S3156002717000000000000000000000000000000000A7 -S315600271800000000000000000000000000000000097 -S315600271900000000000000000000000000000000087 -S315600271A00000000000000000000000000000000077 -S315600271B00000000000000000000000000000000067 -S315600271C00000000000000000000000000000000057 -S315600271D00000000000000000000000000000000047 -S315600271E00000000000000000000000000000000037 -S315600271F00000000000000000000000000000000027 -S315600272000000000000000000000000000000000016 -S315600272100000000000000000000000000000000006 -S3156002722000000000000000000000000000000000F6 -S3156002723000000000000000000000000000000000E6 -S3156002724000000000000000000000000000000000D6 -S3156002725000000000000000000000000000000000C6 -S3156002726000000000000000000000000000000000B6 -S3156002727000000000000000000000000000000000A6 -S315600272800000000000000000000000000000000096 -S315600272900000000000000000000000000000000086 -S315600272A00000000000000000000000000000000076 -S315600272B00000000000000000000000000000000066 -S315600272C00000000000000000000000000000000056 -S315600272D00000000000000000000000000000000046 -S315600272E00000000000000000000000000000000036 -S315600272F00000000000000000000000000000000026 -S315600273000000000000000000000000000000000015 -S315600273100000000000000000000000000000000005 -S3156002732000000000000000000000000000000000F5 -S3156002733000000000000000000000000000000000E5 -S3156002734000000000000000000000000000000000D5 -S3156002735000000000000000000000000000000000C5 -S3156002736000000000000000000000000000000000B5 -S3156002737000000000000000000000000000000000A5 -S315600273800000000000000000000000000000000095 -S315600273900000000000000000000000000000000085 -S315600273A00000000000000000000000000000000075 -S315600273B00000000000000000000000000000000065 -S315600273C00000000000000000000000000000000055 -S315600273D00000000000000000000000000000000045 -S315600273E00000000000000000000000000000000035 -S315600273F00000000000000000000000000000000025 -S315600274000000000000000000000000000000000014 -S315600274100000000000000000000000000000000004 -S3156002742000000000000000000000000000000000F4 -S3156002743000000000000000000000000000000000E4 -S3156002744000000000000000000000000000000000D4 -S3156002745000000000000000000000000000000000C4 -S3156002746000000000000000000000000000000000B4 -S3156002747000000000000000000000000000000000A4 -S315600274800000000000000000000000000000000094 -S315600274900000000000000000000000000000000084 -S315600274A00000000000000000000000000000000074 -S315600274B00000000000000000000000000000000064 -S315600274C00000000000000000000000000000000054 -S315600274D00000000000000000000000000000000044 -S315600274E00000000000000000000000000000000034 -S315600274F00000000000000000000000000000000024 -S315600275000000000000000000000000000000000013 -S315600275100000000000000000000000000000000003 -S3156002752000000000000000000000000000000000F3 -S3156002753000000000000000000000000000000000E3 -S3156002754000000000000000000000000000000000D3 -S3156002755000000000000000000000000000000000C3 -S3156002756000000000000000000000000000000000B3 -S3156002757000000000000000000000000000000000A3 -S315600275800000000000000000000000000000000093 -S315600275900000000000000000000000000000000083 -S315600275A00000000000000000000000000000000073 -S315600275B00000000000000000000000000000000063 -S315600275C00000000000000000000000000000000053 -S315600275D00000000000000000000000000000000043 -S315600275E00000000000000000000000000000000033 -S315600275F00000000000000000000000000000000023 -S315600276000000000000000000000000000000000012 -S315600276100000000000000000000000000000000002 -S3156002762000000000000000000000000000000000F2 -S3156002763000000000000000000000000000000000E2 -S3156002764000000000000000000000000000000000D2 -S3156002765000000000000000000000000000000000C2 -S3156002766000000000000000000000000000000000B2 -S3156002767000000000000000000000000000000000A2 -S315600276800000000000000000000000000000000092 -S315600276900000000000000000000000000000000082 -S315600276A00000000000000000000000000000000072 -S315600276B00000000000000000000000000000000062 -S315600276C00000000000000000000000000000000052 -S315600276D00000000000000000000000000000000042 -S315600276E00000000000000000000000000000000032 -S315600276F00000000000000000000000000000000022 -S315600277000000000000000000000000000000000011 -S315600277100000000000000000000000000000000001 -S3156002772000000000000000000000000000000000F1 -S3156002773000000000000000000000000000000000E1 -S3156002774000000000000000000000000000000000D1 -S3156002775000000000000000000000000000000000C1 -S3156002776000000000000000000000000000000000B1 -S3156002777000000000000000000000000000000000A1 -S315600277800000000000000000000000000000000091 -S315600277900000000000000000000000000000000081 -S315600277A00000000000000000000000000000000071 -S315600277B00000000000000000000000000000000061 -S315600277C00000000000000000000000000000000051 -S315600277D00000000000000000000000000000000041 -S315600277E00000000000000000000000000000000031 -S315600277F00000000000000000000000000000000021 -S315600278000000000000000000000000000000000010 -S315600278100000000000000000000000000000000000 -S3156002782000000000000000000000000000000000F0 -S3156002783000000000000000000000000000000000E0 -S3156002784000000000000000000000000000000000D0 -S3156002785000000000000000000000000000000000C0 -S3156002786000000000000000000000000000000000B0 -S3156002787000000000000000000000000000000000A0 -S315600278800000000000000000000000000000000090 -S315600278900000000000000000000000000000000080 -S315600278A00000000000000000000000000000000070 -S315600278B00000000000000000000000000000000060 -S315600278C00000000000000000000000000000000050 -S315600278D00000000000000000000000000000000040 -S315600278E00000000000000000000000000000000030 -S315600278F00000000000000000000000000000000020 -S31560027900000000000000000000000000000000000F -S3156002791000000000000000000000000000000000FF -S3156002792000000000000000000000000000000000EF -S3156002793000000000000000000000000000000000DF -S3156002794000000000000000000000000000000000CF -S3156002795000000000000000000000000000000000BF -S3156002796000000000000000000000000000000000AF -S31560027970000000000000000000000000000000009F -S31560027980000000000000000000000000000000008F -S31560027990000000000000000000000000000000007F -S315600279A0000000000000000000000000000000006F -S315600279B0000000000000000000000000000000005F -S315600279C0000000000000000000000000000000004F -S315600279D0000000000000000000000000000000003F -S315600279E0000000000000000000000000000000002F -S315600279F0000000000000000000000000000000001F -S31560027A00000000000000000000000000000000000E -S31560027A1000000000000000000000000000000000FE -S31560027A2000000000000000000000000000000000EE -S31560027A3000000000000000000000000000000000DE -S31560027A4000000000000000000000000000000000CE -S31560027A5000000000000000000000000000000000BE -S31560027A6000000000000000000000000000000000AE -S31560027A70000000000000000000000000000000009E -S31560027A80000000000000000000000000000000008E -S31560027A90000000000000000000000000000000007E -S31560027AA0000000000000000000000000000000006E -S31560027AB0000000000000000000000000000000005E -S31560027AC0000000000000000000000000000000004E -S31560027AD0000000000000000000000000000000003E -S31560027AE0000000000000000000000000000000002E -S31560027AF0000000000000000000000000000000001E -S31560027B00000000000000000000000000000000000D -S31560027B1000000000000000000000000000000000FD -S31560027B2000000000000000000000000000000000ED -S31560027B3000000000000000000000000000000000DD -S31560027B4000000000000000000000000000000000CD -S31560027B5000000000000000000000000000000000BD -S31560027B6000000000000000000000000000000000AD -S31560027B70000000000000000000000000000000009D -S31560027B80000000000000000000000000000000008D -S31560027B90000000000000000000000000000000007D -S31560027BA0000000000000000000000000000000006D -S31560027BB0000000000000000000000000000000005D -S31560027BC0000000000000000000000000000000004D -S31560027BD0000000000000000000000000000000003D -S31560027BE0000000000000000000000000000000002D -S31560027BF0000000000000000000000000000000001D -S31560027C00000000000000000000000000000000000C -S31560027C1000000000000000000000000000000000FC -S31560027C2000000000000000000000000000000000EC -S31560027C3000000000000000000000000000000000DC -S31560027C4000000000000000000000000000000000CC -S31560027C5000000000000000000000000000000000BC -S31560027C6000000000000000000000000000000000AC -S31560027C70000000000000000000000000000000009C -S31560027C80000000000000000000000000000000008C -S31560027C90000000000000000000000000000000007C -S31560027CA0000000000000000000000000000000006C -S31560027CB0000000000000000000000000000000005C -S31560027CC0000000000000000000000000000000004C -S31560027CD0000000000000000000000000000000003C -S31560027CE0000000000000000000000000000000002C -S31560027CF0000000000000000000000000000000001C -S31560027D00000000000000000000000000000000000B -S31560027D1000000000000000000000000000000000FB -S31560027D2000000000000000000000000000000000EB -S31560027D3000000000000000000000000000000000DB -S31560027D4000000000000000000000000000000000CB -S31560027D5000000000000000000000000000000000BB -S31560027D6000000000000000000000000000000000AB -S31560027D70000000000000000000000000000000009B -S31560027D80000000000000000000000000000000008B -S31560027D90000000000000000000000000000000007B -S31560027DA0000000000000000000000000000000006B -S31560027DB0000000000000000000000000000000005B -S31560027DC0000000000000000000000000000000004B -S31560027DD0000000000000000000000000000000003B -S31560027DE0000000000000000000000000000000002B -S31560027DF0000000000000000000000000000000001B -S31560027E00000000000000000000000000000000000A -S31560027E1000000000000000000000000000000000FA -S31560027E2000000000000000000000000000000000EA -S31560027E3000000000000000000000000000000000DA -S31560027E4000000000000000000000000000000000CA -S31560027E5000000000000000000000000000000000BA -S31560027E6000000000000000000000000000000000AA -S31560027E70000000000000000000000000000000009A -S31560027E80000000000000000000000000000000008A -S31560027E90000000000000000000000000000000007A -S31560027EA0000000000000000000000000000000006A -S31560027EB0000000000000000000000000000000005A -S31560027EC0000000000000000000000000000000004A -S31560027ED0000000000000000000000000000000003A -S31560027EE0000000000000000000000000000000002A -S31560027EF0000000000000000000000000000000001A -S31560027F000000000000000000000000000000000009 -S31560027F1000000000000000000000000000000000F9 -S31560027F2000000000000000000000000000000000E9 -S31560027F3000000000000000000000000000000000D9 -S31560027F4000000000000000000000000000000000C9 -S31560027F5000000000000000000000000000000000B9 -S31560027F6000000000000000000000000000000000A9 -S31560027F700000000000000000000000000000000099 -S31560027F800000000000000000000000000000000089 -S31560027F900000000000000000000000000000000079 -S31560027FA00000000000000000000000000000000069 -S31560027FB00000000000000000000000000000000059 -S31560027FC00000000000000000000000000000000049 -S31560027FD00000000000000000000000000000000039 -S31560027FE00000000000000000000000000000000029 -S31560027FF00000000000000000000000000000000019 -S315600280000000003F0000000C0000003F000000126C -S31560028010000000FF000000180000000000000000E1 -S3156002802000000000000000000000000000000000E8 -S3156002803000000000000000000000000000000000D8 -S3156002804000000000000000000000000000000000C8 -S3156002805000000000000000000000000000000000B8 -S3156002806000000000000000000000000000000000A8 -S315600280700000000000000000000000000000000098 -S315600280800000000000000000000000000000000088 -S315600280900000000000000000000000000000000078 -S315600280A00000000000000000000000000000000068 -S315600280B00000000000000000000000000000000058 -S315600280C00000000000000000000000000000000048 -S315600280D00000000000000000000000000000000038 -S315600280E00000000000000000000000000000000028 -S315600280F00000000000000000000000000000000018 -S315600281000000000000000000000000000000000007 -S3156002811000000000000000000000000000000000F7 -S3156002812000000000000000000000000000000000E7 -S3156002813000000000000000000000000000000000D7 -S3156002814000000000000000000000000000000000C7 -S3156002815000000000000000000000000000000000B7 -S3156002816000000000000000000000000000000000A7 -S315600281700000000000000000000000000000000097 -S315600281800000000000000000000000000000000087 -S315600281900000000000000000000000000000000077 -S315600281A00000000000000000000000000000000067 -S315600281B00000000000000000000000000000000057 -S315600281C00000000000000000000000000000000047 -S315600281D00000000000000000000000000000000037 -S315600281E00000000000000000000000000000000027 -S315600281F00000000000000000000000000000000017 -S315600282000000000000000000000000000000000006 -S3156002821000000000000000000000000000000000F6 -S3156002822000000000000000000000000000000000E6 -S3156002823000000000000000000000000000000000D6 -S3156002824000000000000000000000000000000000C6 -S3156002825000000000000000000000000000000000B6 -S3156002826000000000000000000000000000000000A6 -S315600282700000000000000000000000000000000096 -S315600282800000000000000000000000000000000086 -S315600282900000000000000000000000000000000076 -S315600282A00000000000000000000000000000000066 -S315600282B00000000000000000000000000000000056 -S315600282C00000000000000000000000000000000046 -S315600282D00000000000000000000000000000000036 -S315600282E00000000000000000000000000000000026 -S315600282F00000000000000000000000000000000016 -S315600283000000000000000000000000000000000005 -S3156002831000000000000000000000000000000000F5 -S3156002832000000000000000000000000000000000E5 -S3156002833000000000000000000000000000000000D5 -S3156002834000000000000000000000000000000000C5 -S3156002835000000000000000000000000000000000B5 -S3156002836000000000000000000000000000000000A5 -S315600283700000000000000000000000000000000095 -S315600283800000000000000000000000000000000085 -S315600283900000000000000000000000000000000075 -S315600283A00000000000000000000000000000000065 -S315600283B00000000000000000000000000000000055 -S315600283C00000000000000000000000000000000045 -S315600283D00000000000000000000000000000000035 -S315600283E00000000000000000000000000000000025 -S315600283F00000000000000000000000000000000015 -S315600284000000000000000000000000000000000004 -S3156002841000000000000000000000000000000000F4 -S3156002842000000000000000000000000000000000E4 -S3156002843000000000000000000000000000000000D4 -S3156002844000000000000000000000000000000000C4 -S3156002845000000000000000000000000000000000B4 -S3156002846000000000000000000000000000000000A4 -S315600284700000000000000000000000000000000094 -S315600284800000000000000000000000000000000084 -S315600284900000000000000000000000000000000074 -S315600284A00000000000000000000000000000000064 -S315600284B00000000000000000000000000000000054 -S315600284C00000000000000000000000000000000044 -S315600284D00000000000000000000000000000000034 -S315600284E00000000000000000000000000000000024 -S315600284F00000000000000000000000000000000014 -S315600285000000000000000000000000000000000003 -S3156002851000000000000000000000000000000000F3 -S3156002852000000000000000000000000000000000E3 -S3156002853000000000000000000000000000000000D3 -S3156002854000000000000000000000000000000000C3 -S3156002855000000000000000000000000000000000B3 -S3156002856000000000000000000000000000000000A3 -S315600285700000000000000000000000000000000093 -S315600285800000000000000000000000000000000083 -S315600285900000000000000000000000000000000073 -S315600285A00000000000000000000000000000000063 -S315600285B00000000000000000000000000000000053 -S315600285C00000000000000000000000000000000043 -S315600285D00000000000000000000000000000000033 -S315600285E00000000000000000000000000000000023 -S315600285F00000000000000000000000000000000013 -S315600286000000000000000000000000000000000002 -S3156002861000000000000000000000000000000000F2 -S3156002862000000000000000000000000000000000E2 -S3156002863000000000000000000000000000000000D2 -S3156002864000000000000000000000000000000000C2 -S3156002865000000000000000000000000000000000B2 -S3156002866000000000000000000000000000000000A2 -S315600286700000000000000000000000000000000092 -S315600286800000000000000000000000000000000082 -S315600286900000000000000000000000000000000072 -S315600286A00000000000000000000000000000000062 -S315600286B00000000000000000000000000000000052 -S315600286C00000000000000000000000000000000042 -S315600286D00000000000000000000000000000000032 -S315600286E00000000000000000000000000000000022 -S315600286F00000000000000000000000000000000012 -S315600287000000000000000000000000000000000001 -S3156002871000000000000000000000000000000000F1 -S3156002872000000000000000000000000000000000E1 -S3156002873000000000000000000000000000000000D1 -S3156002874000000000000000000000000000000000C1 -S3156002875000000000000000000000000000000000B1 -S3156002876000000000000000000000000000000000A1 -S315600287700000000000000000000000000000000091 -S315600287800000000000000000000000000000000081 -S315600287900000000000000000000000000000000071 -S315600287A00000000000000000000000000000000061 -S315600287B00000000000000000000000000000000051 -S315600287C00000000000000000000000000000000041 -S315600287D00000000000000000000000000000000031 -S315600287E00000000000000000000000000000000021 -S315600287F00000000000000000000000000000000011 -S315600288000000000000000000000000000000000000 -S3156002881000000000000000000000000000000000F0 -S3156002882000000000000000000000000000000000E0 -S3156002883000000000000000000000000000000000D0 -S3156002884000000000000000000000000000000000C0 -S3156002885000000000000000000000000000000000B0 -S3156002886000000000000000000000000000000000A0 -S315600288700000000000000000000000000000000090 -S315600288800000000000000000000000000000000080 -S315600288900000000000000000000000000000000070 -S315600288A00000000000000000000000000000000060 -S315600288B00000000000000000000000000000000050 -S315600288C00000000000000000000000000000000040 -S315600288D00000000000000000000000000000000030 -S315600288E00000000000000000000000000000000020 -S315600288F00000000000000000000000000000000010 -S3156002890000000000000000000000000000000000FF -S3156002891000000000000000000000000000000000EF -S3156002892000000000000000000000000000000000DF -S3156002893000000000000000000000000000000000CF -S3156002894000000000000000000000000000000000BF -S3156002895000000000000000000000000000000000AF -S31560028960000000000000000000000000000000009F -S31560028970000000000000000000000000000000008F -S31560028980000000000000000000000000000000007F -S31560028990000000000000000000000000000000006F -S315600289A0000000000000000000000000000000005F -S315600289B0000000000000000000000000000000004F -S315600289C0000000000000000000000000000000003F -S315600289D0000000000000000000000000000000002F -S315600289E0000000000000000000000000000000001F -S315600289F0000000000000000000000000000000000F -S31560028A0000000000000000000000000000000000FE -S31560028A1000000000000000000000000000000000EE -S31560028A2000000000000000000000000000000000DE -S31560028A3000000000000000000000000000000000CE -S31560028A4000000000000000000000000000000000BE -S31560028A5000000000000000000000000000000000AE -S31560028A60000000000000000000000000000000009E -S31560028A70000000000000000000000000000000008E -S31560028A80000000000000000000000000000000007E -S31560028A90000000000000000000000000000000006E -S31560028AA0000000000000000000000000000000005E -S31560028AB0000000000000000000000000000000004E -S31560028AC0000000000000000000000000000000003E -S31560028AD0000000000000000000000000000000002E -S31560028AE0000000000000000000000000000000001E -S31560028AF0000000000000000000000000000000000E -S31560028B0000000000000000000000000000000000FD -S31560028B1000000000000000000000000000000000ED -S31560028B2000000000000000000000000000000000DD -S31560028B3000000000000000000000000000000000CD -S31560028B4000000000000000000000000000000000BD -S31560028B5000000000000000000000000000000000AD -S31560028B60000000000000000000000000000000009D -S31560028B70000000000000000000000000000000008D -S31560028B80000000000000000000000000000000007D -S31560028B90000000000000000000000000000000006D -S31560028BA0000000000000000000000000000000005D -S31560028BB0000000000000000000000000000000004D -S31560028BC0000000000000000000000000000000003D -S31560028BD0000000000000000000000000000000002D -S31560028BE0000000000000000000000000000000001D -S31560028BF0000000000000000000000000000000000D -S31560028C0000000000000000000000000000000000FC -S31560028C1000000000000000000000000000000000EC -S31560028C2000000000000000000000000000000000DC -S31560028C3000000000000000000000000000000000CC -S31560028C4000000000000000000000000000000000BC -S31560028C5000000000000000000000000000000000AC -S31560028C60000000000000000000000000000000009C -S31560028C70000000000000000000000000000000008C -S31560028C80000000000000000000000000000000007C -S31560028C90000000000000000000000000000000006C -S31560028CA0000000000000000000000000000000005C -S31560028CB0000000000000000000000000000000004C -S31560028CC0000000000000000000000000000000003C -S31560028CD0000000000000000000000000000000002C -S31560028CE0000000000000000000000000000000001C -S31560028CF0000000000000000000000000000000000C -S31560028D0000000000000000000000000000000000FB -S31560028D1000000000000000000000000000000000EB -S31560028D2000000000000000000000000000000000DB -S31560028D3000000000000000000000000000000000CB -S31560028D4000000000000000000000000000000000BB -S31560028D5000000000000000000000000000000000AB -S31560028D60000000000000000000000000000000009B -S31560028D70000000000000000000000000000000008B -S31560028D80000000000000000000000000000000007B -S31560028D90000000000000000000000000000000006B -S31560028DA0000000000000000000000000000000005B -S31560028DB0000000000000000000000000000000004B -S31560028DC0000000000000000000000000000000003B -S31560028DD0000000000000000000000000000000002B -S31560028DE0000000000000000000000000000000001B -S31560028DF0000000000000000000000000000000000B -S31560028E0000000000000000000000000000000000FA -S31560028E1000000000000000000000000000000000EA -S31560028E2000000000000000000000000000000000DA -S31560028E3000000000000000000000000000000000CA -S31560028E4000000000000000000000000000000000BA -S31560028E5000000000000000000000000000000000AA -S31560028E60000000000000000000000000000000009A -S31560028E70000000000000000000000000000000008A -S31560028E80000000000000000000000000000000007A -S31560028E90000000000000000000000000000000006A -S31560028EA0000000000000000000000000000000005A -S31560028EB0000000000000000000000000000000004A -S31560028EC0000000000000000000000000000000003A -S31560028ED0000000000000000000000000000000002A -S31560028EE0000000000000000000000000000000001A -S31560028EF0000000000000000000000000000000000A -S31560028F0000000000000000000000000000000000F9 -S31560028F1000000000000000000000000000000000E9 -S31560028F2000000000000000000000000000000000D9 -S31560028F3000000000000000000000000000000000C9 -S31560028F4000000000000000000000000000000000B9 -S31560028F5000000000000000000000000000000000A9 -S31560028F600000000000000000000000000000000099 -S31560028F700000000000000000000000000000000089 -S31560028F800000000000000000000000000000000079 -S31560028F900000000000000000000000000000000069 -S31560028FA00000000000000000000000000000000059 -S31560028FB00000000000000000000000000000000049 -S31560028FC00000000000000000000000000000000039 -S31560028FD00000000000000000000000000000000029 -S31560028FE00000000000000000000000000000000019 -S31560028FF00000000000000000000000000000000009 -S3156002900000000000000000000000000000000000F8 -S3156002901000000000000000000000000000000000E8 -S3156002902000000000000000000000000000000000D8 -S3156002903000000000000000000000000000000000C8 -S3156002904000000000000000000000000000000000B8 -S3156002905000000000000000000000000000000000A8 -S315600290600000000000000000000000000000000098 -S315600290700000000000000000000000000000000088 -S315600290800000000000000000000000000000000078 -S315600290900000000000000000000000000000000068 -S315600290A00000000000000000000000000000000058 -S315600290B00000000000000000000000000000000048 -S315600290C00000000000000000000000000000000038 -S315600290D00000000000000000000000000000000028 -S315600290E00000000000000000000000000000000018 -S315600290F00000000000000000000000000000000008 -S3156002910000000000000000000000000000000000F7 -S3156002911000000000000000000000000000000000E7 -S3156002912000000000000000000000000000000000D7 -S3156002913000000000000000000000000000000000C7 -S3156002914000000000000000000000000000000000B7 -S3156002915000000000000000000000000000000000A7 -S315600291600000000000000000000000000000000097 -S315600291700000000000000000000000000000000087 -S315600291800000000000000000000000000000000077 -S315600291900000000000000000000000000000000067 -S315600291A00000000000000000000000000000000057 -S315600291B00000000000000000000000000000000047 -S315600291C00000000000000000000000000000000037 -S315600291D00000000000000000000000000000000027 -S315600291E00000000000000000000000000000000017 -S315600291F00000000000000000000000000000000007 -S3156002920000000000000000000000000000000000F6 -S3156002921000000000000000000000000000000000E6 -S3156002922000000000000000000000000000000000D6 -S3156002923000000000000000000000000000000000C6 -S3156002924000000000000000000000000000000000B6 -S3156002925000000000000000000000000000000000A6 -S315600292600000000000000000000000000000000096 -S315600292700000000000000000000000000000000086 -S315600292800000000000000000000000000000000076 -S315600292900000000000000000000000000000000066 -S315600292A00000000000000000000000000000000056 -S315600292B00000000000000000000000000000000046 -S315600292C00000000000000000000000000000000036 -S315600292D00000000000000000000000000000000026 -S315600292E00000000000000000000000000000000016 -S315600292F00000000000000000000000000000000006 -S3156002930000000000000000000000000000000000F5 -S3156002931000000000000000000000000000000000E5 -S3156002932000000000000000000000000000000000D5 -S3156002933000000000000000000000000000000000C5 -S3156002934000000000000000000000000000000000B5 -S3156002935000000000000000000000000000000000A5 -S315600293600000000000000000000000000000000095 -S315600293700000000000000000000000000000000085 -S315600293800000000000000000000000000000000075 -S315600293900000000000000000000000000000000065 -S315600293A00000000000000000000000000000000055 -S315600293B00000000000000000000000000000000045 -S315600293C00000000000000000000000000000000035 -S315600293D00000000000000000000000000000000025 -S315600293E00000000000000000000000000000000015 -S315600293F00000000000000000000000000000000005 -S3156002940000000000000000000000000000000000F4 -S3156002941000000000000000000000000000000000E4 -S3156002942000000000000000000000000000000000D4 -S3156002943000000000000000000000000000000000C4 -S3156002944000000000000000000000000000000000B4 -S3156002945000000000000000000000000000000000A4 -S315600294600000000000000000000000000000000094 -S315600294700000000000000000000000000000000084 -S315600294800000000000000000000000000000000074 -S315600294900000000000000000000000000000000064 -S315600294A00000000000000000000000000000000054 -S315600294B00000000000000000000000000000000044 -S315600294C00000000000000000000000000000000034 -S315600294D00000000000000000000000000000000024 -S315600294E00000000000000000000000000000000014 -S315600294F00000000000000000000000000000000004 -S3156002950000000000000000000000000000000000F3 -S3156002951000000000000000000000000000000000E3 -S3156002952000000000000000000000000000000000D3 -S3156002953000000000000000000000000000000000C3 -S3156002954000000000000000000000000000000000B3 -S3156002955000000000000000000000000000000000A3 -S315600295600000000000000000000000000000000093 -S315600295700000000000000000000000000000000083 -S315600295800000000000000000000000000000000073 -S315600295900000000000000000000000000000000063 -S315600295A00000000000000000000000000000000053 -S315600295B00000000000000000000000000000000043 -S315600295C00000000000000000000000000000000033 -S315600295D00000000000000000000000000000000023 -S315600295E00000000000000000000000000000000013 -S315600295F00000000000000000000000000000000003 -S3156002960000000000000000000000000000000000F2 -S3156002961000000000000000000000000000000000E2 -S3156002962000000000000000000000000000000000D2 -S3156002963000000000000000000000000000000000C2 -S3156002964000000000000000000000000000000000B2 -S3156002965000000000000000000000000000000000A2 -S315600296600000000000000000000000000000000092 -S315600296700000000000000000000000000000000082 -S315600296800000000000000000000000000000000072 -S315600296900000000000000000000000000000000062 -S315600296A00000000000000000000000000000000052 -S315600296B00000000000000000000000000000000042 -S315600296C00000000000000000000000000000000032 -S315600296D00000000000000000000000000000000022 -S315600296E00000000000000000000000000000000012 -S315600296F00000000000000000000000000000000002 -S3156002970000000000000000000000000000000000F1 -S3156002971000000000000000000000000000000000E1 -S3156002972000000000000000000000000000000000D1 -S3156002973000000000000000000000000000000000C1 -S3156002974000000000000000000000000000000000B1 -S3156002975000000000000000000000000000000000A1 -S315600297600000000000000000000000000000000091 -S315600297700000000000000000000000000000000081 -S315600297800000000000000000000000000000000071 -S315600297900000000000000000000000000000000061 -S315600297A00000000000000000000000000000000051 -S315600297B00000000000000000000000000000000041 -S315600297C00000000000000000000000000000000031 -S315600297D00000000000000000000000000000000021 -S315600297E00000000000000000000000000000000011 -S315600297F00000000000000000000000000000000001 -S3156002980000000000000000000000000000000000F0 -S3156002981000000000000000000000000000000000E0 -S3156002982000000000000000000000000000000000D0 -S3156002983000000000000000000000000000000000C0 -S3156002984000000000000000000000000000000000B0 -S3156002985000000000000000000000000000000000A0 -S315600298600000000000000000000000000000000090 -S315600298700000000000000000000000000000000080 -S315600298800000000000000000000000000000000070 -S315600298900000000000000000000000000000000060 -S315600298A00000000000000000000000000000000050 -S315600298B00000000000000000000000000000000040 -S315600298C00000000000000000000000000000000030 -S315600298D00000000000000000000000000000000020 -S315600298E00000000000000000000000000000000010 -S315600298F00000000000000000000000000000000000 -S3156002990000000000000000000000000000000000EF -S3156002991000000000000000000000000000000000DF -S3156002992000000000000000000000000000000000CF -S3156002993000000000000000000000000000000000BF -S3156002994000000000000000000000000000000000AF -S31560029950000000000000000000000000000000009F -S31560029960000000000000000000000000000000008F -S31560029970000000000000000000000000000000007F -S31560029980000000000000000000000000000000006F -S31560029990000000000000000000000000000000005F -S315600299A0000000000000000000000000000000004F -S315600299B0000000000000000000000000000000003F -S315600299C0000000000000000000000000000000002F -S315600299D0000000000000000000000000000000001F -S315600299E0000000000000000000000000000000000F -S315600299F000000000000000000000000000000000FF -S31560029A0000000000000000000000000000000000EE -S31560029A1000000000000000000000000000000000DE -S31560029A2000000000000000000000000000000000CE -S31560029A3000000000000000000000000000000000BE -S31560029A4000000000000000000000000000000000AE -S31560029A50000000000000000000000000000000009E -S31560029A60000000000000000000000000000000008E -S31560029A70000000000000000000000000000000007E -S31560029A80000000000000000000000000000000006E -S31560029A90000000000000000000000000000000005E -S31560029AA0000000000000000000000000000000004E -S31560029AB0000000000000000000000000000000003E -S31560029AC0000000000000000000000000000000002E -S31560029AD0000000000000000000000000000000001E -S31560029AE0000000000000000000000000000000000E -S31560029AF000000000000000000000000000000000FE -S31560029B0000000000000000000000000000000000ED -S31560029B1000000000000000000000000000000000DD -S31560029B2000000000000000000000000000000000CD -S31560029B3000000000000000000000000000000000BD -S31560029B4000000000000000000000000000000000AD -S31560029B50000000000000000000000000000000009D -S31560029B60000000000000000000000000000000008D -S31560029B70000000000000000000000000000000007D -S31560029B80000000000000000000000000000000006D -S31560029B90000000000000000000000000000000005D -S31560029BA0000000000000000000000000000000004D -S31560029BB0000000000000000000000000000000003D -S31560029BC0000000000000000000000000000000002D -S31560029BD0000000000000000000000000000000001D -S31560029BE0000000000000000000000000000000000D -S31560029BF000000000000000000000000000000000FD -S31560029C0000000000000000000000000000000000EC -S31560029C1000000000000000000000000000000000DC -S31560029C2000000000000000000000000000000000CC -S31560029C3000000000000000000000000000000000BC -S31560029C4000000000000000000000000000000000AC -S31560029C50000000000000000000000000000000009C -S31560029C60000000000000000000000000000000008C -S31560029C70000000000000000000000000000000007C -S31560029C80000000000000000000000000000000006C -S31560029C90000000000000000000000000000000005C -S31560029CA0000000000000000000000000000000004C -S31560029CB0000000000000000000000000000000003C -S31560029CC0000000000000000000000000000000002C -S31560029CD0000000000000000000000000000000001C -S31560029CE0000000000000000000000000000000000C -S31560029CF000000000000000000000000000000000FC -S31560029D0000000000000000000000000000000000EB -S31560029D1000000000000000000000000000000000DB -S31560029D2000000000000000000000000000000000CB -S31560029D3000000000000000000000000000000000BB -S31560029D4000000000000000000000000000000000AB -S31560029D50000000000000000000000000000000009B -S31560029D60000000000000000000000000000000008B -S31560029D70000000000000000000000000000000007B -S31560029D80000000000000000000000000000000006B -S31560029D90000000000000000000000000000000005B -S31560029DA0000000000000000000000000000000004B -S31560029DB0000000000000000000000000000000003B -S31560029DC0000000000000000000000000000000002B -S31560029DD0000000000000000000000000000000001B -S31560029DE0000000000000000000000000000000000B -S31560029DF000000000000000000000000000000000FB -S31560029E0000000000000000000000000000000000EA -S31560029E1000000000000000000000000000000000DA -S31560029E2000000000000000000000000000000000CA -S31560029E3000000000000000000000000000000000BA -S31560029E4000000000000000000000000000000000AA -S31560029E50000000000000000000000000000000009A -S31560029E60000000000000000000000000000000008A -S31560029E70000000000000000000000000000000007A -S31560029E80000000000000000000000000000000006A -S31560029E90000000000000000000000000000000005A -S31560029EA0000000000000000000000000000000004A -S31560029EB0000000000000000000000000000000003A -S31560029EC0000000000000000000000000000000002A -S31560029ED0000000000000000000000000000000001A -S31560029EE0000000000000000000000000000000000A -S31560029EF000000000000000000000000000000000FA -S31560029F0000000000000000000000000000000000E9 -S31560029F1000000000000000000000000000000000D9 -S31560029F2000000000000000000000000000000000C9 -S31560029F3000000000000000000000000000000000B9 -S31560029F4000000000000000000000000000000000A9 -S31560029F500000000000000000000000000000000099 -S31560029F600000000000000000000000000000000089 -S31560029F700000000000000000000000000000000079 -S31560029F800000000000000000000000000000000069 -S31560029F900000000000000000000000000000000059 -S31560029FA00000000000000000000000000000000049 -S31560029FB00000000000000000000000000000000039 -S31560029FC00000000000000000000000000000000029 -S31560029FD00000000000000000000000000000000019 -S31560029FE00000000000000000000000000000000009 -S31560029FF000000000000000000000000000000000F9 -S3156002A00000000000000000000000000000000000E8 -S3156002A01000000000000000000000000000000000D8 -S3156002A02000000000000000000000000000000000C8 -S3156002A03000000000000000000000000000000000B8 -S3156002A04000000000000000000000000000000000A8 -S3156002A0500000000000000000000000000000000098 -S3156002A0600000000000000000000000000000000088 -S3156002A0700000000000000000000000000000000078 -S3156002A0800000000000000000000000000000000068 -S3156002A0900000000000000000000000000000000058 -S3156002A0A00000000000000000000000000000000048 -S3156002A0B00000000000000000000000000000000038 -S3156002A0C00000000000000000000000000000000028 -S3156002A0D00000000000000000000000000000000018 -S3156002A0E00000000000000000000000000000000008 -S3156002A0F000000000000000000000000000000000F8 -S3156002A10000000000000000000000000000000000E7 -S3156002A11000000000000000000000000000000000D7 -S3156002A12000000000000000000000000000000000C7 -S3156002A13000000000000000000000000000000000B7 -S3156002A14000000000000000000000000000000000A7 -S3156002A1500000000000000000000000000000000097 -S3156002A1600000000000000000000000000000000087 -S3156002A1700000000000000000000000000000000077 -S3156002A1800000000000000000000000000000000067 -S3156002A1900000000000000000000000000000000057 -S3156002A1A00000000000000000000000000000000047 -S3156002A1B00000000000000000000000000000000037 -S3156002A1C00000000000000000000000000000000027 -S3156002A1D00000000000000000000000000000000017 -S3156002A1E00000000000000000000000000000000007 -S3156002A1F000000000000000000000000000000000F7 -S3156002A20000000000000000000000000000000000E6 -S3156002A21000000000000000000000000000000000D6 -S3156002A22000000000000000000000000000000000C6 -S3156002A23000000000000000000000000000000000B6 -S3156002A24000000000000000000000000000000000A6 -S3156002A2500000000000000000000000000000000096 -S3156002A2600000000000000000000000000000000086 -S3156002A2700000000000000000000000000000000076 -S3156002A2800000000000000000000000000000000066 -S3156002A2900000000000000000000000000000000056 -S3156002A2A00000000000000000000000000000000046 -S3156002A2B00000000000000000000000000000000036 -S3156002A2C00000000000000000000000000000000026 -S3156002A2D00000000000000000000000000000000016 -S3156002A2E00000000000000000000000000000000006 -S3156002A2F000000000000000000000000000000000F6 -S3156002A30000000000000000000000000000000000E5 -S3156002A31000000000000000000000000000000000D5 -S3156002A32000000000000000000000000000000000C5 -S3156002A33000000000000000000000000000000000B5 -S3156002A34000000000000000000000000000000000A5 -S3156002A3500000000000000000000000000000000095 -S3156002A3600000000000000000000000000000000085 -S3156002A3700000000000000000000000000000000075 -S3156002A3800000000000000000000000000000000065 -S3156002A3900000000000000000000000000000000055 -S3156002A3A00000000000000000000000000000000045 -S3156002A3B00000000000000000000000000000000035 -S3156002A3C00000000000000000000000000000000025 -S3156002A3D00000000000000000000000000000000015 -S3156002A3E00000000000000000000000000000000005 -S3156002A3F000000000000000000000000000000000F5 -S3156002A40000000000000000000000000000000000E4 -S3156002A41000000000000000000000000000000000D4 -S3156002A42000000000000000000000000000000000C4 -S3156002A43000000000000000000000000000000000B4 -S3156002A44000000000000000000000000000000000A4 -S3156002A4500000000000000000000000000000000094 -S3156002A4600000000000000000000000000000000084 -S3156002A4700000000000000000000000000000000074 -S3156002A4800000000000000000000000000000000064 -S3156002A4900000000000000000000000000000000054 -S3156002A4A00000000000000000000000000000000044 -S3156002A4B00000000000000000000000000000000034 -S3156002A4C00000000000000000000000000000000024 -S3156002A4D00000000000000000000000000000000014 -S3156002A4E00000000000000000000000000000000004 -S3156002A4F000000000000000000000000000000000F4 -S3156002A50000000000000000000000000000000000E3 -S3156002A51000000000000000000000000000000000D3 -S3156002A52000000000000000000000000000000000C3 -S3156002A53000000000000000000000000000000000B3 -S3156002A54000000000000000000000000000000000A3 -S3156002A5500000000000000000000000000000000093 -S3156002A5600000000000000000000000000000000083 -S3156002A5700000000000000000000000000000000073 -S3156002A5800000000000000000000000000000000063 -S3156002A5900000000000000000000000000000000053 -S3156002A5A00000000000000000000000000000000043 -S3156002A5B00000000000000000000000000000000033 -S3156002A5C00000000000000000000000000000000023 -S3156002A5D00000000000000000000000000000000013 -S3156002A5E00000000000000000000000000000000003 -S3156002A5F000000000000000000000000000000000F3 -S3156002A60000000000000000000000000000000000E2 -S3156002A61000000000000000000000000000000000D2 -S3156002A62000000000000000000000000000000000C2 -S3156002A63000000000000000000000000000000000B2 -S3156002A64000000000000000000000000000000000A2 -S3156002A6500000000000000000000000000000000092 -S3156002A6600000000000000000000000000000000082 -S3156002A6700000000000000000000000000000000072 -S3156002A6800000000000000000000000000000000062 -S3156002A6900000000000000000000000000000000052 -S3156002A6A00000000000000000000000000000000042 -S3156002A6B00000000000000000000000000000000032 -S3156002A6C00000000000000000000000000000000022 -S3156002A6D00000000000000000000000000000000012 -S3156002A6E00000000000000000000000000000000002 -S3156002A6F000000000000000000000000000000000F2 -S3156002A70000000000000000000000000000000000E1 -S3156002A71000000000000000000000000000000000D1 -S3156002A72000000000000000000000000000000000C1 -S3156002A73000000000000000000000000000000000B1 -S3156002A74000000000000000000000000000000000A1 -S3156002A7500000000000000000000000000000000091 -S3156002A7600000000000000000000000000000000081 -S3156002A7700000000000000000000000000000000071 -S3156002A7800000000000000000000000000000000061 -S3156002A7900000000000000000000000000000000051 -S3156002A7A00000000000000000000000000000000041 -S3156002A7B00000000000000000000000000000000031 -S3156002A7C00000000000000000000000000000000021 -S3156002A7D00000000000000000000000000000000011 -S3156002A7E00000000000000000000000000000000001 -S3156002A7F000000000000000000000000000000000F1 -S3156002A80000000000000000000000000000000000E0 -S3156002A81000000000000000000000000000000000D0 -S3156002A82000000000000000000000000000000000C0 -S3156002A83000000000000000000000000000000000B0 -S3156002A84000000000000000000000000000000000A0 -S3156002A8500000000000000000000000000000000090 -S3156002A8600000000000000000000000000000000080 -S3156002A8700000000000000000000000000000000070 -S3156002A8800000000000000000000000000000000060 -S3156002A8900000000000000000000000000000000050 -S3156002A8A00000000000000000000000000000000040 -S3156002A8B00000000000000000000000000000000030 -S3156002A8C00000000000000000000000000000000020 -S3156002A8D00000000000000000000000000000000010 -S3156002A8E00000000000000000000000000000000000 -S3156002A8F000000000000000000000000000000000F0 -S3156002A90000000000000000000000000000000000DF -S3156002A91000000000000000000000000000000000CF -S3156002A92000000000000000000000000000000000BF -S3156002A93000000000000000000000000000000000AF -S3156002A940000000000000000000000000000000009F -S3156002A950000000000000000000000000000000008F -S3156002A960000000000000000000000000000000007F -S3156002A970000000000000000000000000000000006F -S3156002A980000000000000000000000000000000005F -S3156002A990000000000000000000000000000000004F -S3156002A9A0000000000000000000000000000000003F -S3156002A9B0000000000000000000000000000000002F -S3156002A9C0000000000000000000000000000000001F -S3156002A9D0000000000000000000000000000000000F -S3156002A9E000000000000000000000000000000000FF -S3156002A9F000000000000000000000000000000000EF -S3156002AA0000000000000000000000000000000000DE -S3156002AA1000000000000000000000000000000000CE -S3156002AA2000000000000000000000000000000000BE -S3156002AA3000000000000000000000000000000000AE -S3156002AA40000000000000000000000000000000009E -S3156002AA50000000000000000000000000000000008E -S3156002AA60000000000000000000000000000000007E -S3156002AA70000000000000000000000000000000006E -S3156002AA80000000000000000000000000000000005E -S3156002AA90000000000000000000000000000000004E -S3156002AAA0000000000000000000000000000000003E -S3156002AAB0000000000000000000000000000000002E -S3156002AAC0000000000000000000000000000000001E -S3156002AAD0000000000000000000000000000000000E -S3156002AAE000000000000000000000000000000000FE -S3156002AAF000000000000000000000000000000000EE -S3156002AB0000000000000000000000000000000000DD -S3156002AB1000000000000000000000000000000000CD -S3156002AB2000000000000000000000000000000000BD -S3156002AB3000000000000000000000000000000000AD -S3156002AB40000000000000000000000000000000009D -S3156002AB50000000000000000000000000000000008D -S3156002AB60000000000000000000000000000000007D -S3156002AB70000000000000000000000000000000006D -S3156002AB80000000000000000000000000000000005D -S3156002AB90000000000000000000000000000000004D -S3156002ABA0000000000000000000000000000000003D -S3156002ABB0000000000000000000000000000000002D -S3156002ABC0000000000000000000000000000000001D -S3156002ABD0000000000000000000000000000000000D -S3156002ABE000000000000000000000000000000000FD -S3156002ABF000000000000000000000000000000000ED -S3156002AC0000000000000000000000000000000000DC -S3156002AC1000000000000000000000000000000000CC -S3156002AC2000000000000000000000000000000000BC -S3156002AC3000000000000000000000000000000000AC -S3156002AC40000000000000000000000000000000009C -S3156002AC50000000000000000000000000000000008C -S3156002AC60000000000000000000000000000000007C -S3156002AC70000000000000000000000000000000006C -S3156002AC80000000000000000000000000000000005C -S3156002AC90000000000000000000000000000000004C -S3156002ACA0000000000000000000000000000000003C -S3156002ACB0000000000000000000000000000000002C -S3156002ACC0000000000000000000000000000000001C -S3156002ACD0000000000000000000000000000000000C -S3156002ACE000000000000000000000000000000000FC -S3156002ACF000000000000000000000000000000000EC -S3156002AD0000000000000000000000000000000000DB -S3156002AD1000000000000000000000000000000000CB -S3156002AD2000000000000000000000000000000000BB -S3156002AD3000000000000000000000000000000000AB -S3156002AD40000000000000000000000000000000009B -S3156002AD50000000000000000000000000000000008B -S3156002AD60000000000000000000000000000000007B -S3156002AD70000000000000000000000000000000006B -S3156002AD80000000000000000000000000000000005B -S3156002AD90000000000000000000000000000000004B -S3156002ADA0000000000000000000000000000000003B -S3156002ADB0000000000000000000000000000000002B -S3156002ADC0000000000000000000000000000000001B -S3156002ADD0000000000000000000000000000000000B -S3156002ADE000000000000000000000000000000000FB -S3156002ADF000000000000000000000000000000000EB -S3156002AE0000000000000000000000000000000000DA -S3156002AE1000000000000000000000000000000000CA -S3156002AE2000000000000000000000000000000000BA -S3156002AE3000000000000000000000000000000000AA -S3156002AE40000000000000000000000000000000009A -S3156002AE50000000000000000000000000000000008A -S3156002AE60000000000000000000000000000000007A -S3156002AE70000000000000000000000000000000006A -S3156002AE80000000000000000000000000000000005A -S3156002AE90000000000000000000000000000000004A -S3156002AEA0000000000000000000000000000000003A -S3156002AEB0000000000000000000000000000000002A -S3156002AEC0000000000000000000000000000000001A -S3156002AED0000000000000000000000000000000000A -S3156002AEE000000000000000000000000000000000FA -S3156002AEF000000000000000000000000000000000EA -S3156002AF0000000000000000000000000000000000D9 -S3156002AF1000000000000000000000000000000000C9 -S3156002AF2000000000000000000000000000000000B9 -S3156002AF3000000000000000000000000000000000A9 -S3156002AF400000000000000000000000000000000099 -S3156002AF500000000000000000000000000000000089 -S3156002AF600000000000000000000000000000000079 -S3156002AF700000000000000000000000000000000069 -S3156002AF800000000000000000000000000000000059 -S3156002AF900000000000000000000000000000000049 -S3156002AFA00000000000000000000000000000000039 -S3156002AFB00000000000000000000000000000000029 -S3156002AFC00000000000000000000000000000000019 -S3156002AFD00000000000000000000000000000000009 -S3156002AFE000000000000000000000000000000000F9 -S3156002AFF000000000000000000000000000000000E9 -S3156002B00000000000000000000000000000000000D8 -S3156002B01000000000000000000000000000000000C8 -S3156002B02000000000000000000000000000000000B8 -S3156002B03000000000000000000000000000000000A8 -S3156002B0400000000000000000000000000000000098 -S3156002B0500000000000000000000000000000000088 -S3156002B0600000000000000000000000000000000078 -S3156002B0700000000000000000000000000000000068 -S3156002B0800000000000000000000000000000000058 -S3156002B0900000000000000000000000000000000048 -S3156002B0A00000000000000000000000000000000038 -S3156002B0B00000000000000000000000000000000028 -S3156002B0C00000000000000000000000000000000018 -S3156002B0D00000000000000000000000000000000008 -S3156002B0E000000000000000000000000000000000F8 -S3156002B0F000000000000000000000000000000000E8 -S3156002B10000000000000000000000000000000000D7 -S3156002B11000000000000000000000000000000000C7 -S3156002B12000000000000000000000000000000000B7 -S3156002B13000000000000000000000000000000000A7 -S3156002B1400000000000000000000000000000000097 -S3156002B1500000000000000000000000000000000087 -S3156002B1600000000000000000000000000000000077 -S3156002B1700000000000000000000000000000000067 -S3156002B1800000000000000000000000000000000057 -S3156002B1900000000000000000000000000000000047 -S3156002B1A00000000000000000000000000000000037 -S3156002B1B00000000000000000000000000000000027 -S3156002B1C00000000000000000000000000000000017 -S3156002B1D00000000000000000000000000000000007 -S3156002B1E000000000000000000000000000000000F7 -S3156002B1F000000000000000000000000000000000E7 -S3156002B20000000000000000000000000000000000D6 -S3156002B21000000000000000000000000000000000C6 -S3156002B22000000000000000000000000000000000B6 -S3156002B23000000000000000000000000000000000A6 -S3156002B2400000000000000000000000000000000096 -S3156002B2500000000000000000000000000000000086 -S3156002B2600000000000000000000000000000000076 -S3156002B2700000000000000000000000000000000066 -S3156002B2800000000000000000000000000000000056 -S3156002B2900000000000000000000000000000000046 -S3156002B2A00000000000000000000000000000000036 -S3156002B2B00000000000000000000000000000000026 -S3156002B2C00000000000000000000000000000000016 -S3156002B2D00000000000000000000000000000000006 -S3156002B2E000000000000000000000000000000000F6 -S3156002B2F000000000000000000000000000000000E6 -S3156002B30000000000000000000000000000000000D5 -S3156002B31000000000000000000000000000000000C5 -S3156002B32000000000000000000000000000000000B5 -S3156002B33000000000000000000000000000000000A5 -S3156002B3400000000000000000000000000000000095 -S3156002B3500000000000000000000000000000000085 -S3156002B3600000000000000000000000000000000075 -S3156002B3700000000000000000000000000000000065 -S3156002B3800000000000000000000000000000000055 -S3156002B3900000000000000000000000000000000045 -S3156002B3A00000000000000000000000000000000035 -S3156002B3B00000000000000000000000000000000025 -S3156002B3C00000000000000000000000000000000015 -S3156002B3D00000000000000000000000000000000005 -S3156002B3E000000000000000000000000000000000F5 -S3156002B3F000000000000000000000000000000000E5 -S3156002B40000000000000000000000000000000000D4 -S3156002B41000000000000000000000000000000000C4 -S3156002B42000000000000000000000000000000000B4 -S3156002B43000000000000000000000000000000000A4 -S3156002B4400000000000000000000000000000000094 -S3156002B4500000000000000000000000000000000084 -S3156002B4600000000000000000000000000000000074 -S3156002B4700000000000000000000000000000000064 -S3156002B4800000000000000000000000000000000054 -S3156002B4900000000000000000000000000000000044 -S3156002B4A00000000000000000000000000000000034 -S3156002B4B00000000000000000000000000000000024 -S3156002B4C00000000000000000000000000000000014 -S3156002B4D00000000000000000000000000000000004 -S3156002B4E000000000000000000000000000000000F4 -S3156002B4F000000000000000000000000000000000E4 -S3156002B50000000000000000000000000000000000D3 -S3156002B51000000000000000000000000000000000C3 -S3156002B52000000000000000000000000000000000B3 -S3156002B53000000000000000000000000000000000A3 -S3156002B5400000000000000000000000000000000093 -S3156002B5500000000000000000000000000000000083 -S3156002B5600000000000000000000000000000000073 -S3156002B5700000000000000000000000000000000063 -S3156002B5800000000000000000000000000000000053 -S3156002B5900000000000000000000000000000000043 -S3156002B5A00000000000000000000000000000000033 -S3156002B5B00000000000000000000000000000000023 -S3156002B5C00000000000000000000000000000000013 -S3156002B5D00000000000000000000000000000000003 -S3156002B5E000000000000000000000000000000000F3 -S3156002B5F000000000000000000000000000000000E3 -S3156002B60000000000000000000000000000000000D2 -S3156002B61000000000000000000000000000000000C2 -S3156002B62000000000000000000000000000000000B2 -S3156002B63000000000000000000000000000000000A2 -S3156002B6400000000000000000000000000000000092 -S3156002B6500000000000000000000000000000000082 -S3156002B6600000000000000000000000000000000072 -S3156002B6700000000000000000000000000000000062 -S3156002B6800000000000000000000000000000000052 -S3156002B6900000000000000000000000000000000042 -S3156002B6A00000000000000000000000000000000032 -S3156002B6B00000000000000000000000000000000022 -S3156002B6C00000000000000000000000000000000012 -S3156002B6D00000000000000000000000000000000002 -S3156002B6E000000000000000000000000000000000F2 -S3156002B6F000000000000000000000000000000000E2 -S3156002B70000000000000000000000000000000000D1 -S3156002B71000000000000000000000000000000000C1 -S3156002B72000000000000000000000000000000000B1 -S3156002B73000000000000000000000000000000000A1 -S3156002B7400000000000000000000000000000000091 -S3156002B7500000000000000000000000000000000081 -S3156002B7600000000000000000000000000000000071 -S3156002B7700000000000000000000000000000000061 -S3156002B7800000000000000000000000000000000051 -S3156002B7900000000000000000000000000000000041 -S3156002B7A00000000000000000000000000000000031 -S3156002B7B00000000000000000000000000000000021 -S3156002B7C00000000000000000000000000000000011 -S3156002B7D00000000000000000000000000000000001 -S3156002B7E000000000000000000000000000000000F1 -S3156002B7F000000000000000000000000000000000E1 -S3156002B80000000000000000000000000000000000D0 -S3156002B81000000000000000000000000000000000C0 -S3156002B82000000000000000000000000000000000B0 -S3156002B83000000000000000000000000000000000A0 -S3156002B8400000000000000000000000000000000090 -S3156002B8500000000000000000000000000000000080 -S3156002B8600000000000000000000000000000000070 -S3156002B8700000000000000000000000000000000060 -S3156002B8800000000000000000000000000000000050 -S3156002B8900000000000000000000000000000000040 -S3156002B8A00000000000000000000000000000000030 -S3156002B8B00000000000000000000000000000000020 -S3156002B8C00000000000000000000000000000000010 -S3156002B8D00000000000000000000000000000000000 -S3156002B8E000000000000000000000000000000000F0 -S3156002B8F000000000000000000000000000000000E0 -S3156002B90000000000000000000000000000000000CF -S3156002B91000000000000000000000000000000000BF -S3156002B92000000000000000000000000000000000AF -S3156002B930000000000000000000000000000000009F -S3156002B940000000000000000000000000000000008F -S3156002B950000000000000000000000000000000007F -S3156002B960000000000000000000000000000000006F -S3156002B970000000000000000000000000000000005F -S3156002B980000000000000000000000000000000004F -S3156002B990000000000000000000000000000000003F -S3156002B9A0000000000000000000000000000000002F -S3156002B9B0000000000000000000000000000000001F -S3156002B9C0000000000000000000000000000000000F -S3156002B9D000000000000000000000000000000000FF -S3156002B9E000000000000000000000000000000000EF -S3156002B9F000000000000000000000000000000000DF -S3156002BA0000000000000000000000000000000000CE -S3156002BA1000000000000000000000000000000000BE -S3156002BA2000000000000000000000000000000000AE -S3156002BA30000000000000000000000000000000009E -S3156002BA40000000000000000000000000000000008E -S3156002BA50000000000000000000000000000000007E -S3156002BA60000000000000000000000000000000006E -S3156002BA70000000000000000000000000000000005E -S3156002BA80000000000000000000000000000000004E -S3156002BA90000000000000000000000000000000003E -S3156002BAA0000000000000000000000000000000002E -S3156002BAB0000000000000000000000000000000001E -S3156002BAC0000000000000000000000000000000000E -S3156002BAD000000000000000000000000000000000FE -S3156002BAE000000000000000000000000000000000EE -S3156002BAF000000000000000000000000000000000DE -S3156002BB0000000000000000000000000000000000CD -S3156002BB1000000000000000000000000000000000BD -S3156002BB2000000000000000000000000000000000AD -S3156002BB30000000000000000000000000000000009D -S3156002BB40000000000000000000000000000000008D -S3156002BB50000000000000000000000000000000007D -S3156002BB60000000000000000000000000000000006D -S3156002BB70000000000000000000000000000000005D -S3156002BB80000000000000000000000000000000004D -S3156002BB90000000000000000000000000000000003D -S3156002BBA0000000000000000000000000000000002D -S3156002BBB0000000000000000000000000000000001D -S3156002BBC0000000000000000000000000000000000D -S3156002BBD000000000000000000000000000000000FD -S3156002BBE000000000000000000000000000000000ED -S3156002BBF000000000000000000000000000000000DD -S3156002BC0000000000000000000000000000000000CC -S3156002BC1000000000000000000000000000000000BC -S3156002BC2000000000000000000000000000000000AC -S3156002BC30000000000000000000000000000000009C -S3156002BC40000000000000000000000000000000008C -S3156002BC50000000000000000000000000000000007C -S3156002BC60000000000000000000000000000000006C -S3156002BC70000000000000000000000000000000005C -S3156002BC80000000000000000000000000000000004C -S3156002BC90000000000000000000000000000000003C -S3156002BCA0000000000000000000000000000000002C -S3156002BCB0000000000000000000000000000000001C -S3156002BCC0000000000000000000000000000000000C -S3156002BCD000000000000000000000000000000000FC -S3156002BCE000000000000000000000000000000000EC -S3156002BCF000000000000000000000000000000000DC -S3156002BD0000000000000000000000000000000000CB -S3156002BD1000000000000000000000000000000000BB -S3156002BD2000000000000000000000000000000000AB -S3156002BD30000000000000000000000000000000009B -S3156002BD40000000000000000000000000000000008B -S3156002BD50000000000000000000000000000000007B -S3156002BD60000000000000000000000000000000006B -S3156002BD70000000000000000000000000000000005B -S3156002BD80000000000000000000000000000000004B -S3156002BD90000000000000000000000000000000003B -S3156002BDA0000000000000000000000000000000002B -S3156002BDB0000000000000000000000000000000001B -S3156002BDC0000000000000000000000000000000000B -S3156002BDD000000000000000000000000000000000FB -S3156002BDE000000000000000000000000000000000EB -S3156002BDF000000000000000000000000000000000DB -S3156002BE0000000000000000000000000000000000CA -S3156002BE1000000000000000000000000000000000BA -S3156002BE2000000000000000000000000000000000AA -S3156002BE30000000000000000000000000000000009A -S3156002BE40000000000000000000000000000000008A -S3156002BE50000000000000000000000000000000007A -S3156002BE60000000000000000000000000000000006A -S3156002BE70000000000000000000000000000000005A -S3156002BE80000000000000000000000000000000004A -S3156002BE90000000000000000000000000000000003A -S3156002BEA0000000000000000000000000000000002A -S3156002BEB0000000000000000000000000000000001A -S3156002BEC0000000000000000000000000000000000A -S3156002BED000000000000000000000000000000000FA -S3156002BEE000000000000000000000000000000000EA -S3156002BEF000000000000000000000000000000000DA -S3156002BF0000000000000000000000000000000000C9 -S3156002BF1000000000000000000000000000000000B9 -S3156002BF2000000000000000000000000000000000A9 -S3156002BF300000000000000000000000000000000099 -S3156002BF400000000000000000000000000000000089 -S3156002BF500000000000000000000000000000000079 -S3156002BF600000000000000000000000000000000069 -S3156002BF700000000000000000000000000000000059 -S3156002BF800000000000000000000000000000000049 -S3156002BF900000000000000000000000000000000039 -S3156002BFA00000000000000000000000000000000029 -S3156002BFB00000000000000000000000000000000019 -S3156002BFC00000000000000000000000000000000009 -S3156002BFD000000000000000000000000000000000F9 -S3156002BFE000000000000000000000000000000000E9 -S3156002BFF000000000000000000000000000000000D9 -S3156002C00000000000000000000000000000000000C8 -S3156002C01000000000000000000000000000000000B8 -S3156002C02000000000000000000000000000000000A8 -S3156002C0300000000000000000000000000000000098 -S3156002C0400000000000000000000000000000000088 -S3156002C0500000000000000000000000000000000078 -S3156002C0600000000000000000000000000000000068 -S3156002C0700000000000000000000000000000000058 -S3156002C0800000000000000000000000000000000048 -S3156002C0900000000000000000000000000000000038 -S3156002C0A00000000000000000000000000000000028 -S3156002C0B00000000000000000000000000000000018 -S3156002C0C00000000000000000000000000000000008 -S3156002C0D000000000000000000000000000000000F8 -S3156002C0E000000000000000000000000000000000E8 -S3156002C0F000000000000000000000000000000000D8 -S3156002C10000000000000000000000000000000000C7 -S3156002C11000000000000000000000000000000000B7 -S3156002C12000000000000000000000000000000000A7 -S3156002C1300000000000000000000000000000000097 -S3156002C1400000000000000000000000000000000087 -S3156002C1500000000000000000000000000000000077 -S3156002C1600000000000000000000000000000000067 -S3156002C1700000000000000000000000000000000057 -S3156002C1800000000000000000000000000000000047 -S3156002C1900000000000000000000000000000000037 -S3156002C1A00000000000000000000000000000000027 -S3156002C1B00000000000000000000000000000000017 -S3156002C1C00000000000000000000000000000000007 -S3156002C1D000000000000000000000000000000000F7 -S3156002C1E000000000000000000000000000000000E7 -S3156002C1F000000000000000000000000000000000D7 -S3156002C20000000000000000000000000000000000C6 -S3156002C21000000000000000000000000000000000B6 -S3156002C22000000000000000000000000000000000A6 -S3156002C2300000000000000000000000000000000096 -S3156002C2400000000000000000000000000000000086 -S3156002C2500000000000000000000000000000000076 -S3156002C2600000000000000000000000000000000066 -S3156002C2700000000000000000000000000000000056 -S3156002C2800000000000000000000000000000000046 -S3156002C2900000000000000000000000000000000036 -S3156002C2A00000000000000000000000000000000026 -S3156002C2B00000000000000000000000000000000016 -S3156002C2C00000000000000000000000000000000006 -S3156002C2D000000000000000000000000000000000F6 -S3156002C2E000000000000000000000000000000000E6 -S3156002C2F000000000000000000000000000000000D6 -S3156002C30000000000000000000000000000000000C5 -S3156002C31000000000000000000000000000000000B5 -S3156002C32000000000000000000000000000000000A5 -S3156002C3300000000000000000000000000000000095 -S3156002C3400000000000000000000000000000000085 -S3156002C3500000000000000000000000000000000075 -S3156002C3600000000000000000000000000000000065 -S3156002C3700000000000000000000000000000000055 -S3156002C3800000000000000000000000000000000045 -S3156002C3900000000000000000000000000000000035 -S3156002C3A00000000000000000000000000000000025 -S3156002C3B00000000000000000000000000000000015 -S3156002C3C00000000000000000000000000000000005 -S3156002C3D000000000000000000000000000000000F5 -S3156002C3E000000000000000000000000000000000E5 -S3156002C3F000000000000000000000000000000000D5 -S3156002C40000000000000000000000000000000000C4 -S3156002C41000000000000000000000000000000000B4 -S3156002C42000000000000000000000000000000000A4 -S3156002C4300000000000000000000000000000000094 -S3156002C4400000000000000000000000000000000084 -S3156002C4500000000000000000000000000000000074 -S3156002C4600000000000000000000000000000000064 -S3156002C4700000000000000000000000000000000054 -S3156002C4800000000000000000000000000000000044 -S3156002C4900000000000000000000000000000000034 -S3156002C4A00000000000000000000000000000000024 -S3156002C4B00000000000000000000000000000000014 -S3156002C4C00000000000000000000000000000000004 -S3156002C4D000000000000000000000000000000000F4 -S3156002C4E000000000000000000000000000000000E4 -S3156002C4F000000000000000000000000000000000D4 -S3156002C50000000000000000000000000000000000C3 -S3156002C51000000000000000000000000000000000B3 -S3156002C52000000000000000000000000000000000A3 -S3156002C5300000000000000000000000000000000093 -S3156002C5400000000000000000000000000000000083 -S3156002C5500000000000000000000000000000000073 -S3156002C5600000000000000000000000000000000063 -S3156002C5700000000000000000000000000000000053 -S3156002C5800000000000000000000000000000000043 -S3156002C5900000000000000000000000000000000033 -S3156002C5A00000000000000000000000000000000023 -S3156002C5B00000000000000000000000000000000013 -S3156002C5C00000000000000000000000000000000003 -S3156002C5D000000000000000000000000000000000F3 -S3156002C5E000000000000000000000000000000000E3 -S3156002C5F000000000000000000000000000000000D3 -S3156002C60000000000000000000000000000000000C2 -S3156002C61000000000000000000000000000000000B2 -S3156002C62000000000000000000000000000000000A2 -S3156002C6300000000000000000000000000000000092 -S3156002C6400000000000000000000000000000000082 -S3156002C6500000000000000000000000000000000072 -S3156002C6600000000000000000000000000000000062 -S3156002C6700000000000000000000000000000000052 -S3156002C6800000000000000000000000000000000042 -S3156002C6900000000000000000000000000000000032 -S3156002C6A00000000000000000000000000000000022 -S3156002C6B00000000000000000000000000000000012 -S3156002C6C00000000000000000000000000000000002 -S3156002C6D000000000000000000000000000000000F2 -S3156002C6E000000000000000000000000000000000E2 -S3156002C6F000000000000000000000000000000000D2 -S3156002C70000000000000000000000000000000000C1 -S3156002C71000000000000000000000000000000000B1 -S3156002C72000000000000000000000000000000000A1 -S3156002C7300000000000000000000000000000000091 -S3156002C7400000000000000000000000000000000081 -S3156002C7500000000000000000000000000000000071 -S3156002C7600000000000000000000000000000000061 -S3156002C7700000000000000000000000000000000051 -S3156002C7800000000000000000000000000000000041 -S3156002C7900000000000000000000000000000000031 -S3156002C7A00000000000000000000000000000000021 -S3156002C7B00000000000000000000000000000000011 -S3156002C7C00000000000000000000000000000000001 -S3156002C7D000000000000000000000000000000000F1 -S3156002C7E000000000000000000000000000000000E1 -S3156002C7F000000000000000000000000000000000D1 -S3156002C80000000000000000000000000000000000C0 -S3156002C81000000000000000000000000000000000B0 -S3156002C82000000000000000000000000000000000A0 -S3156002C8300000000000000000000000000000000090 -S3156002C8400000000000000000000000000000000080 -S3156002C8500000000000000000000000000000000070 -S3156002C8600000000000000000000000000000000060 -S3156002C8700000000000000000000000000000000050 -S3156002C8800000000000000000000000000000000040 -S3156002C8900000000000000000000000000000000030 -S3156002C8A00000000000000000000000000000000020 -S3156002C8B00000000000000000000000000000000010 -S3156002C8C00000000000000000000000000000000000 -S3156002C8D000000000000000000000000000000000F0 -S3156002C8E000000000000000000000000000000000E0 -S3156002C8F000000000000000000000000000000000D0 -S3156002C90000000000000000000000000000000000BF -S3156002C91000000000000000000000000000000000AF -S3156002C920000000000000000000000000000000009F -S3156002C930000000000000000000000000000000008F -S3156002C940000000000000000000000000000000007F -S3156002C950000000000000000000000000000000006F -S3156002C960000000000000000000000000000000005F -S3156002C970000000000000000000000000000000004F -S3156002C980000000000000000000000000000000003F -S3156002C990000000000000000000000000000000002F -S3156002C9A0000000000000000000000000000000001F -S3156002C9B0000000000000000000000000000000000F -S3156002C9C000000000000000000000000000000000FF -S3156002C9D000000000000000000000000000000000EF -S3156002C9E000000000000000000000000000000000DF -S3156002C9F000000000000000000000000000000000CF -S3156002CA0000000000000000000000000000000000BE -S3156002CA1000000000000000000000000000000000AE -S3156002CA20000000000000000000000000000000009E -S3156002CA30000000000000000000000000000000008E -S3156002CA40000000000000000000000000000000007E -S3156002CA50000000000000000000000000000000006E -S3156002CA60000000000000000000000000000000005E -S3156002CA70000000000000000000000000000000004E -S3156002CA80000000000000000000000000000000003E -S3156002CA90000000000000000000000000000000002E -S3156002CAA0000000000000000000000000000000001E -S3156002CAB0000000000000000000000000000000000E -S3156002CAC000000000000000000000000000000000FE -S3156002CAD000000000000000000000000000000000EE -S3156002CAE000000000000000000000000000000000DE -S3156002CAF000000000000000000000000000000000CE -S3156002CB0000000000000000000000000000000000BD -S3156002CB1000000000000000000000000000000000AD -S3156002CB20000000000000000000000000000000009D -S3156002CB30000000000000000000000000000000008D -S3156002CB40000000000000000000000000000000007D -S3156002CB50000000000000000000000000000000006D -S3156002CB60000000000000000000000000000000005D -S3156002CB70000000000000000000000000000000004D -S3156002CB80000000000000000000000000000000003D -S3156002CB90000000000000000000000000000000002D -S3156002CBA0000000000000000000000000000000001D -S3156002CBB0000000000000000000000000000000000D -S3156002CBC000000000000000000000000000000000FD -S3156002CBD000000000000000000000000000000000ED -S3156002CBE000000000000000000000000000000000DD -S3156002CBF000000000000000000000000000000000CD -S3156002CC0000000000000000000000000000000000BC -S3156002CC1000000000000000000000000000000000AC -S3156002CC20000000000000000000000000000000009C -S3156002CC30000000000000000000000000000000008C -S3156002CC40000000000000000000000000000000007C -S3156002CC50000000000000000000000000000000006C -S3156002CC60000000000000000000000000000000005C -S3156002CC70000000000000000000000000000000004C -S3156002CC80000000000000000000000000000000003C -S3156002CC90000000000000000000000000000000002C -S3156002CCA0000000000000000000000000000000001C -S3156002CCB0000000000000000000000000000000000C -S3156002CCC000000000000000000000000000000000FC -S3156002CCD000000000000000000000000000000000EC -S3156002CCE000000000000000000000000000000000DC -S3156002CCF000000000000000000000000000000000CC -S3156002CD0000000000000000000000000000000000BB -S3156002CD1000000000000000000000000000000000AB -S3156002CD20000000000000000000000000000000009B -S3156002CD30000000000000000000000000000000008B -S3156002CD40000000000000000000000000000000007B -S3156002CD50000000000000000000000000000000006B -S3156002CD60000000000000000000000000000000005B -S3156002CD70000000000000000000000000000000004B -S3156002CD80000000000000000000000000000000003B -S3156002CD90000000000000000000000000000000002B -S3156002CDA0000000000000000000000000000000001B -S3156002CDB0000000000000000000000000000000000B -S3156002CDC000000000000000000000000000000000FB -S3156002CDD000000000000000000000000000000000EB -S3156002CDE000000000000000000000000000000000DB -S3156002CDF000000000000000000000000000000000CB -S3156002CE0000000000000000000000000000000000BA -S3156002CE1000000000000000000000000000000000AA -S3156002CE20000000000000000000000000000000009A -S3156002CE30000000000000000000000000000000008A -S3156002CE40000000000000000000000000000000007A -S3156002CE50000000000000000000000000000000006A -S3156002CE60000000000000000000000000000000005A -S3156002CE70000000000000000000000000000000004A -S3156002CE80000000000000000000000000000000003A -S3156002CE90000000000000000000000000000000002A -S3156002CEA0000000000000000000000000000000001A -S3156002CEB0000000000000000000000000000000000A -S3156002CEC000000000000000000000000000000000FA -S3156002CED000000000000000000000000000000000EA -S3156002CEE000000000000000000000000000000000DA -S3156002CEF000000000000000000000000000000000CA -S3156002CF0000000000000000000000000000000000B9 -S3156002CF1000000000000000000000000000000000A9 -S3156002CF200000000000000000000000000000000099 -S3156002CF300000000000000000000000000000000089 -S3156002CF400000000000000000000000000000000079 -S3156002CF500000000000000000000000000000000069 -S3156002CF600000000000000000000000000000000059 -S3156002CF700000000000000000000000000000000049 -S3156002CF800000000000000000000000000000000039 -S3156002CF900000000000000000000000000000000029 -S3156002CFA00000000000000000000000000000000019 -S3156002CFB00000000000000000000000000000000009 -S3156002CFC000000000000000000000000000000000F9 -S3156002CFD000000000000000000000000000000000E9 -S3156002CFE000000000000000000000000000000000D9 -S3156002CFF000000000000000000000000000000000C9 -S3156002D00000000000000000000000000000000000B8 -S3156002D01000000000000000000000000000000000A8 -S3156002D0200000000000000000000000000000000098 -S3156002D0300000000000000000000000000000000088 -S3156002D0400000000000000000000000000000000078 -S3156002D0500000000000000000000000000000000068 -S3156002D0600000000000000000000000000000000058 -S3156002D0700000000000000000000000000000000048 -S3156002D0800000000000000000000000000000000038 -S3156002D0900000000000000000000000000000000028 -S3156002D0A00000000000000000000000000000000018 -S3156002D0B00000000000000000000000000000000008 -S3156002D0C000000000000000000000000000000000F8 -S3156002D0D000000000000000000000000000000000E8 -S3156002D0E000000000000000000000000000000000D8 -S3156002D0F000000000000000000000000000000000C8 -S3156002D10000000000000000000000000000000000B7 -S3156002D11000000000000000000000000000000000A7 -S3156002D1200000000000000000000000000000000097 -S3156002D1300000000000000000000000000000000087 -S3156002D1400000000000000000000000000000000077 -S3156002D1500000000000000000000000000000000067 -S3156002D1600000000000000000000000000000000057 -S3156002D1700000000000000000000000000000000047 -S3156002D1800000000000000000000000000000000037 -S3156002D1900000000000000000000000000000000027 -S3156002D1A00000000000000000000000000000000017 -S3156002D1B00000000000000000000000000000000007 -S3156002D1C000000000000000000000000000000000F7 -S3156002D1D000000000000000000000000000000000E7 -S3156002D1E000000000000000000000000000000000D7 -S3156002D1F000000000000000000000000000000000C7 -S3156002D20000000000000000000000000000000000B6 -S3156002D21000000000000000000000000000000000A6 -S3156002D2200000000000000000000000000000000096 -S3156002D2300000000000000000000000000000000086 -S3156002D2400000000000000000000000000000000076 -S3156002D2500000000000000000000000000000000066 -S3156002D2600000000000000000000000000000000056 -S3156002D2700000000000000000000000000000000046 -S3156002D2800000000000000000000000000000000036 -S3156002D2900000000000000000000000000000000026 -S3156002D2A00000000000000000000000000000000016 -S3156002D2B00000000000000000000000000000000006 -S3156002D2C000000000000000000000000000000000F6 -S3156002D2D000000000000000000000000000000000E6 -S3156002D2E000000000000000000000000000000000D6 -S3156002D2F000000000000000000000000000000000C6 -S3156002D30000000000000000000000000000000000B5 -S3156002D31000000000000000000000000000000000A5 -S3156002D3200000000000000000000000000000000095 -S3156002D3300000000000000000000000000000000085 -S3156002D3400000000000000000000000000000000075 -S3156002D3500000000000000000000000000000000065 -S3156002D3600000000000000000000000000000000055 -S3156002D3700000000000000000000000000000000045 -S3156002D3800000000000000000000000000000000035 -S3156002D3900000000000000000000000000000000025 -S3156002D3A00000000000000000000000000000000015 -S3156002D3B00000000000000000000000000000000005 -S3156002D3C000000000000000000000000000000000F5 -S3156002D3D000000000000000000000000000000000E5 -S3156002D3E000000000000000000000000000000000D5 -S3156002D3F000000000000000000000000000000000C5 -S3156002D40000000000000000000000000000000000B4 -S3156002D41000000000000000000000000000000000A4 -S3156002D4200000000000000000000000000000000094 -S3156002D4300000000000000000000000000000000084 -S3156002D4400000000000000000000000000000000074 -S3156002D4500000000000000000000000000000000064 -S3156002D4600000000000000000000000000000000054 -S3156002D4700000000000000000000000000000000044 -S3156002D4800000000000000000000000000000000034 -S3156002D4900000000000000000000000000000000024 -S3156002D4A00000000000000000000000000000000014 -S3156002D4B00000000000000000000000000000000004 -S3156002D4C000000000000000000000000000000000F4 -S3156002D4D000000000000000000000000000000000E4 -S3156002D4E000000000000000000000000000000000D4 -S3156002D4F000000000000000000000000000000000C4 -S3156002D50000000000000000000000000000000000B3 -S3156002D51000000000000000000000000000000000A3 -S3156002D5200000000000000000000000000000000093 -S3156002D5300000000000000000000000000000000083 -S3156002D5400000000000000000000000000000000073 -S3156002D5500000000000000000000000000000000063 -S3156002D5600000000000000000000000000000000053 -S3156002D5700000000000000000000000000000000043 -S3156002D5800000000000000000000000000000000033 -S3156002D5900000000000000000000000000000000023 -S3156002D5A00000000000000000000000000000000013 -S3156002D5B00000000000000000000000000000000003 -S3156002D5C000000000000000000000000000000000F3 -S3156002D5D000000000000000000000000000000000E3 -S3156002D5E000000000000000000000000000000000D3 -S3156002D5F000000000000000000000000000000000C3 -S3156002D60000000000000000000000000000000000B2 -S3156002D61000000000000000000000000000000000A2 -S3156002D6200000000000000000000000000000000092 -S3156002D6300000000000000000000000000000000082 -S3156002D6400000000000000000000000000000000072 -S3156002D6500000000000000000000000000000000062 -S3156002D6600000000000000000000000000000000052 -S3156002D6700000000000000000000000000000000042 -S3156002D6800000000000000000000000000000000032 -S3156002D6900000000000000000000000000000000022 -S3156002D6A00000000000000000000000000000000012 -S3156002D6B00000000000000000000000000000000002 -S3156002D6C000000000000000000000000000000000F2 -S3156002D6D000000000000000000000000000000000E2 -S3156002D6E000000000000000000000000000000000D2 -S3156002D6F000000000000000000000000000000000C2 -S3156002D70000000000000000000000000000000000B1 -S3156002D71000000000000000000000000000000000A1 -S3156002D7200000000000000000000000000000000091 -S3156002D7300000000000000000000000000000000081 -S3156002D7400000000000000000000000000000000071 -S3156002D7500000000000000000000000000000000061 -S3156002D7600000000000000000000000000000000051 -S3156002D7700000000000000000000000000000000041 -S3156002D7800000000000000000000000000000000031 -S3156002D7900000000000000000000000000000000021 -S3156002D7A00000000000000000000000000000000011 -S3156002D7B00000000000000000000000000000000001 -S3156002D7C000000000000000000000000000000000F1 -S3156002D7D000000000000000000000000000000000E1 -S3156002D7E000000000000000000000000000000000D1 -S3156002D7F000000000000000000000000000000000C1 -S3156002D80000000000000000000000000000000000B0 -S3156002D81000000000000000000000000000000000A0 -S3156002D8200000000000000000000000000000000090 -S3156002D8300000000000000000000000000000000080 -S3156002D8400000000000000000000000000000000070 -S3156002D8500000000000000000000000000000000060 -S3156002D8600000000000000000000000000000000050 -S3156002D8700000000000000000000000000000000040 -S3156002D8800000000000000000000000000000000030 -S3156002D8900000000000000000000000000000000020 -S3156002D8A00000000000000000000000000000000010 -S3156002D8B00000000000000000000000000000000000 -S3156002D8C000000000000000000000000000000000F0 -S3156002D8D000000000000000000000000000000000E0 -S3156002D8E000000000000000000000000000000000D0 -S3156002D8F000000000000000000000000000000000C0 -S3156002D90000000000000000000000000000000000AF -S3156002D910000000000000000000000000000000009F -S3156002D920000000000000000000000000000000008F -S3156002D930000000000000000000000000000000007F -S3156002D940000000000000000000000000000000006F -S3156002D950000000000000000000000000000000005F -S3156002D960000000000000000000000000000000004F -S3156002D970000000000000000000000000000000003F -S3156002D980000000000000000000000000000000002F -S3156002D990000000000000000000000000000000001F -S3156002D9A0000000000000000000000000000000000F -S3156002D9B000000000000000000000000000000000FF -S3156002D9C000000000000000000000000000000000EF -S3156002D9D000000000000000000000000000000000DF -S3156002D9E000000000000000000000000000000000CF -S3156002D9F000000000000000000000000000000000BF -S3156002DA0000000000000000000000000000000000AE -S3156002DA10000000000000000000000000000000009E -S3156002DA20000000000000000000000000000000008E -S3156002DA30000000000000000000000000000000007E -S3156002DA40000000000000000000000000000000006E -S3156002DA50000000000000000000000000000000005E -S3156002DA60000000000000000000000000000000004E -S3156002DA70000000000000000000000000000000003E -S3156002DA80000000000000000000000000000000002E -S3156002DA90000000000000000000000000000000001E -S3156002DAA0000000000000000000000000000000000E -S3156002DAB000000000000000000000000000000000FE -S3156002DAC000000000000000000000000000000000EE -S3156002DAD000000000000000000000000000000000DE -S3156002DAE000000000000000000000000000000000CE -S3156002DAF000000000000000000000000000000000BE -S3156002DB0000000000000000000000000000000000AD -S3156002DB10000000000000000000000000000000009D -S3156002DB20000000000000000000000000000000008D -S3156002DB30000000000000000000000000000000007D -S3156002DB40000000000000000000000000000000006D -S3156002DB50000000000000000000000000000000005D -S3156002DB60000000000000000000000000000000004D -S3156002DB70000000000000000000000000000000003D -S3156002DB80000000000000000000000000000000002D -S3156002DB90000000000000000000000000000000001D -S3156002DBA0000000000000000000000000000000000D -S3156002DBB000000000000000000000000000000000FD -S3156002DBC000000000000000000000000000000000ED -S3156002DBD000000000000000000000000000000000DD -S3156002DBE000000000000000000000000000000000CD -S3156002DBF000000000000000000000000000000000BD -S3156002DC0000000000000000000000000000000000AC -S3156002DC10000000000000000000000000000000009C -S3156002DC20000000000000000000000000000000008C -S3156002DC30000000000000000000000000000000007C -S3156002DC40000000000000000000000000000000006C -S3156002DC50000000000000000000000000000000005C -S3156002DC60000000000000000000000000000000004C -S3156002DC70000000000000000000000000000000003C -S3156002DC80000000000000000000000000000000002C -S3156002DC90000000000000000000000000000000001C -S3156002DCA0000000000000000000000000000000000C -S3156002DCB000000000000000000000000000000000FC -S3156002DCC000000000000000000000000000000000EC -S3156002DCD000000000000000000000000000000000DC -S3156002DCE000000000000000000000000000000000CC -S3156002DCF000000000000000000000000000000000BC -S3156002DD0000000000000000000000000000000000AB -S3156002DD10000000000000000000000000000000009B -S3156002DD20000000000000000000000000000000008B -S3156002DD30000000000000000000000000000000007B -S3156002DD40000000000000000000000000000000006B -S3156002DD50000000000000000000000000000000005B -S3156002DD60000000000000000000000000000000004B -S3156002DD70000000000000000000000000000000003B -S3156002DD80000000000000000000000000000000002B -S3156002DD90000000000000000000000000000000001B -S3156002DDA0000000000000000000000000000000000B -S3156002DDB000000000000000000000000000000000FB -S3156002DDC000000000000000000000000000000000EB -S3156002DDD000000000000000000000000000000000DB -S3156002DDE000000000000000000000000000000000CB -S3156002DDF000000000000000000000000000000000BB -S3156002DE0000000000000000000000000000000000AA -S3156002DE10000000000000000000000000000000009A -S3156002DE20000000000000000000000000000000008A -S3156002DE30000000000000000000000000000000007A -S3156002DE40000000000000000000000000000000006A -S3156002DE50000000000000000000000000000000005A -S3156002DE60000000000000000000000000000000004A -S3156002DE70000000000000000000000000000000003A -S3156002DE80000000000000000000000000000000002A -S3156002DE90000000000000000000000000000000001A -S3156002DEA0000000000000000000000000000000000A -S3156002DEB000000000000000000000000000000000FA -S3156002DEC000000000000000000000000000000000EA -S3156002DED000000000000000000000000000000000DA -S3156002DEE000000000000000000000000000000000CA -S3156002DEF000000000000000000000000000000000BA -S3156002DF0000000000000000000000000000000000A9 -S3156002DF100000000000000000000000000000000099 -S3156002DF200000000000000000000000000000000089 -S3156002DF300000000000000000000000000000000079 -S3156002DF400000000000000000000000000000000069 -S3156002DF500000000000000000000000000000000059 -S3156002DF600000000000000000000000000000000049 -S3156002DF700000000000000000000000000000000039 -S3156002DF800000000000000000000000000000000029 -S3156002DF900000000000000000000000000000000019 -S3156002DFA00000000000000000000000000000000009 -S3156002DFB000000000000000000000000000000000F9 -S3156002DFC000000000000000000000000000000000E9 -S3156002DFD000000000000000000000000000000000D9 -S3156002DFE000000000000000000000000000000000C9 -S3156002DFF000000000000000000000000000000000B9 -S3156002E00000000000000000000000000000000000A8 -S3156002E0100000000000000000000000000000000098 -S3156002E0200000000000000000000000000000000088 -S3156002E0300000000000000000000000000000000078 -S3156002E0400000000000000000000000000000000068 -S3156002E0500000000000000000000000000000000058 -S3156002E0600000000000000000000000000000000048 -S3156002E0700000000000000000000000000000000038 -S3156002E0800000000000000000000000000000000028 -S3156002E0900000000000000000000000000000000018 -S3156002E0A00000000000000000000000000000000008 -S3156002E0B000000000000000000000000000000000F8 -S3156002E0C000000000000000000000000000000000E8 -S3156002E0D000000000000000000000000000000000D8 -S3156002E0E000000000000000000000000000000000C8 -S3156002E0F000000000000000000000000000000000B8 -S3156002E10000000000000000000000000000000000A7 -S3156002E1100000000000000000000000000000000097 -S3156002E1200000000000000000000000000000000087 -S3156002E1300000000000000000000000000000000077 -S3156002E1400000000000000000000000000000000067 -S3156002E1500000000000000000000000000000000057 -S3156002E1600000000000000000000000000000000047 -S3156002E1700000000000000000000000000000000037 -S3156002E1800000000000000000000000000000000027 -S3156002E1900000000000000000000000000000000017 -S3156002E1A00000000000000000000000000000000007 -S3156002E1B000000000000000000000000000000000F7 -S3156002E1C000000000000000000000000000000000E7 -S3156002E1D000000000000000000000000000000000D7 -S3156002E1E000000000000000000000000000000000C7 -S3156002E1F000000000000000000000000000000000B7 -S3156002E20000000000000000000000000000000000A6 -S3156002E2100000000000000000000000000000000096 -S3156002E2200000000000000000000000000000000086 -S3156002E2300000000000000000000000000000000076 -S3156002E2400000000000000000000000000000000066 -S3156002E2500000000000000000000000000000000056 -S3156002E2600000000000000000000000000000000046 -S3156002E2700000000000000000000000000000000036 -S3156002E2800000000000000000000000000000000026 -S3156002E2900000000000000000000000000000000016 -S3156002E2A00000000000000000000000000000000006 -S3156002E2B000000000000000000000000000000000F6 -S3156002E2C000000000000000000000000000000000E6 -S3156002E2D000000000000000000000000000000000D6 -S3156002E2E000000000000000000000000000000000C6 -S3156002E2F000000000000000000000000000000000B6 -S3156002E30000000000000000000000000000000000A5 -S3156002E3100000000000000000000000000000000095 -S3156002E3200000000000000000000000000000000085 -S3156002E3300000000000000000000000000000000075 -S3156002E3400000000000000000000000000000000065 -S3156002E3500000000000000000000000000000000055 -S3156002E3600000000000000000000000000000000045 -S3156002E3700000000000000000000000000000000035 -S3156002E3800000000000000000000000000000000025 -S3156002E3900000000000000000000000000000000015 -S3156002E3A00000000000000000000000000000000005 -S3156002E3B000000000000000000000000000000000F5 -S3156002E3C000000000000000000000000000000000E5 -S3156002E3D000000000000000000000000000000000D5 -S3156002E3E000000000000000000000000000000000C5 -S3156002E3F000000000000000000000000000000000B5 -S3156002E40000000000000000000000000000000000A4 -S3156002E4100000000000000000000000000000000094 -S3156002E4200000000000000000000000000000000084 -S3156002E4300000000000000000000000000000000074 -S3156002E4400000000000000000000000000000000064 -S3156002E4500000000000000000000000000000000054 -S3156002E4600000000000000000000000000000000044 -S3156002E4700000000000000000000000000000000034 -S3156002E4800000000000000000000000000000000024 -S3156002E4900000000000000000000000000000000014 -S3156002E4A00000000000000000000000000000000004 -S3156002E4B000000000000000000000000000000000F4 -S3156002E4C000000000000000000000000000000000E4 -S3156002E4D000000000000000000000000000000000D4 -S3156002E4E000000000000000000000000000000000C4 -S3156002E4F000000000000000000000000000000000B4 -S3156002E50000000000000000000000000000000000A3 -S3156002E5100000000000000000000000000000000093 -S3156002E5200000000000000000000000000000000083 -S3156002E5300000000000000000000000000000000073 -S3156002E5400000000000000000000000000000000063 -S3156002E5500000000000000000000000000000000053 -S3156002E5600000000000000000000000000000000043 -S3156002E5700000000000000000000000000000000033 -S3156002E5800000000000000000000000000000000023 -S3156002E5900000000000000000000000000000000013 -S3156002E5A00000000000000000000000000000000003 -S3156002E5B000000000000000000000000000000000F3 -S3156002E5C000000000000000000000000000000000E3 -S3156002E5D000000000000000000000000000000000D3 -S3156002E5E000000000000000000000000000000000C3 -S3156002E5F000000000000000000000000000000000B3 -S3156002E60000000000000000000000000000000000A2 -S3156002E6100000000000000000000000000000000092 -S3156002E6200000000000000000000000000000000082 -S3156002E6300000000000000000000000000000000072 -S3156002E6400000000000000000000000000000000062 -S3156002E6500000000000000000000000000000000052 -S3156002E6600000000000000000000000000000000042 -S3156002E6700000000000000000000000000000000032 -S3156002E6800000000000000000000000000000000022 -S3156002E6900000000000000000000000000000000012 -S3156002E6A00000000000000000000000000000000002 -S3156002E6B000000000000000000000000000000000F2 -S3156002E6C000000000000000000000000000000000E2 -S3156002E6D000000000000000000000000000000000D2 -S3156002E6E000000000000000000000000000000000C2 -S3156002E6F000000000000000000000000000000000B2 -S3156002E70000000000000000000000000000000000A1 -S3156002E7100000000000000000000000000000000091 -S3156002E7200000000000000000000000000000000081 -S3156002E7300000000000000000000000000000000071 -S3156002E7400000000000000000000000000000000061 -S3156002E7500000000000000000000000000000000051 -S3156002E7600000000000000000000000000000000041 -S3156002E7700000000000000000000000000000000031 -S3156002E7800000000000000000000000000000000021 -S3156002E7900000000000000000000000000000000011 -S3156002E7A00000000000000000000000000000000001 -S3156002E7B000000000000000000000000000000000F1 -S3156002E7C000000000000000000000000000000000E1 -S3156002E7D000000000000000000000000000000000D1 -S3156002E7E000000000000000000000000000000000C1 -S3156002E7F000000000000000000000000000000000B1 -S3156002E80000000000000000000000000000000000A0 -S3156002E8100000000000000000000000000000000090 -S3156002E8200000000000000000000000000000000080 -S3156002E8300000000000000000000000000000000070 -S3156002E8400000000000000000000000000000000060 -S3156002E8500000000000000000000000000000000050 -S3156002E8600000000000000000000000000000000040 -S3156002E8700000000000000000000000000000000030 -S3156002E8800000000000000000000000000000000020 -S3156002E8900000000000000000000000000000000010 -S3156002E8A00000000000000000000000000000000000 -S3156002E8B000000000000000000000000000000000F0 -S3156002E8C000000000000000000000000000000000E0 -S3156002E8D000000000000000000000000000000000D0 -S3156002E8E000000000000000000000000000000000C0 -S3156002E8F000000000000000000000000000000000B0 -S3156002E900000000000000000000000000000000009F -S3156002E910000000000000000000000000000000008F -S3156002E920000000000000000000000000000000007F -S3156002E930000000000000000000000000000000006F -S3156002E940000000000000000000000000000000005F -S3156002E950000000000000000000000000000000004F -S3156002E960000000000000000000000000000000003F -S3156002E970000000000000000000000000000000002F -S3156002E980000000000000000000000000000000001F -S3156002E990000000000000000000000000000000000F -S3156002E9A000000000000000000000000000000000FF -S3156002E9B000000000000000000000000000000000EF -S3156002E9C000000000000000000000000000000000DF -S3156002E9D000000000000000000000000000000000CF -S3156002E9E000000000000000000000000000000000BF -S3156002E9F000000000000000000000000000000000AF -S3156002EA00000000000000000000000000000000009E -S3156002EA10000000000000000000000000000000008E -S3156002EA20000000000000000000000000000000007E -S3156002EA30000000000000000000000000000000006E -S3156002EA40000000000000000000000000000000005E -S3156002EA50000000000000000000000000000000004E -S3156002EA60000000000000000000000000000000003E -S3156002EA70000000000000000000000000000000002E -S3156002EA80000000000000000000000000000000001E -S3156002EA90000000000000000000000000000000000E -S3156002EAA000000000000000000000000000000000FE -S3156002EAB000000000000000000000000000000000EE -S3156002EAC000000000000000000000000000000000DE -S3156002EAD000000000000000000000000000000000CE -S3156002EAE000000000000000000000000000000000BE -S3156002EAF000000000000000000000000000000000AE -S3156002EB00000000000000000000000000000000009D -S3156002EB10000000000000000000000000000000008D -S3156002EB20000000000000000000000000000000007D -S3156002EB30000000000000000000000000000000006D -S3156002EB40000000000000000000000000000000005D -S3156002EB50000000000000000000000000000000004D -S3156002EB60000000000000000000000000000000003D -S3156002EB70000000000000000000000000000000002D -S3156002EB80000000000000000000000000000000001D -S3156002EB90000000000000000000000000000000000D -S3156002EBA000000000000000000000000000000000FD -S3156002EBB000000000000000000000000000000000ED -S3156002EBC000000000000000000000000000000000DD -S3156002EBD000000000000000000000000000000000CD -S3156002EBE000000000000000000000000000000000BD -S3156002EBF000000000000000000000000000000000AD -S3156002EC00000000000000000000000000000000009C -S3156002EC10000000000000000000000000000000008C -S3156002EC20000000000000000000000000000000007C -S3156002EC30000000000000000000000000000000006C -S3156002EC40000000000000000000000000000000005C -S3156002EC50000000000000000000000000000000004C -S3156002EC60000000000000000000000000000000003C -S3156002EC70000000000000000000000000000000002C -S3156002EC80000000000000000000000000000000001C -S3156002EC90000000000000000000000000000000000C -S3156002ECA000000000000000000000000000000000FC -S3156002ECB000000000000000000000000000000000EC -S3156002ECC000000000000000000000000000000000DC -S3156002ECD000000000000000000000000000000000CC -S3156002ECE000000000000000000000000000000000BC -S3156002ECF000000000000000000000000000000000AC -S3156002ED00000000000000000000000000000000009B -S3156002ED10000000000000000000000000000000008B -S3156002ED20000000000000000000000000000000007B -S3156002ED30000000000000000000000000000000006B -S3156002ED40000000000000000000000000000000005B -S3156002ED50000000000000000000000000000000004B -S3156002ED60000000000000000000000000000000003B -S3156002ED70000000000000000000000000000000002B -S3156002ED80000000000000000000000000000000001B -S3156002ED90000000000000000000000000000000000B -S3156002EDA000000000000000000000000000000000FB -S3156002EDB000000000000000000000000000000000EB -S3156002EDC000000000000000000000000000000000DB -S3156002EDD000000000000000000000000000000000CB -S3156002EDE000000000000000000000000000000000BB -S3156002EDF000000000000000000000000000000000AB -S3156002EE00000000000000000000000000000000009A -S3156002EE10000000000000000000000000000000008A -S3156002EE20000000000000000000000000000000007A -S3156002EE30000000000000000000000000000000006A -S3156002EE40000000000000000000000000000000005A -S3156002EE50000000000000000000000000000000004A -S3156002EE60000000000000000000000000000000003A -S3156002EE70000000000000000000000000000000002A -S3156002EE80000000000000000000000000000000001A -S3156002EE90000000000000000000000000000000000A -S3156002EEA000000000000000000000000000000000FA -S3156002EEB000000000000000000000000000000000EA -S3156002EEC000000000000000000000000000000000DA -S3156002EED000000000000000000000000000000000CA -S3156002EEE000000000000000000000000000000000BA -S3156002EEF000000000000000000000000000000000AA -S3156002EF000000000000000000000000000000000099 -S3156002EF100000000000000000000000000000000089 -S3156002EF200000000000000000000000000000000079 -S3156002EF300000000000000000000000000000000069 -S3156002EF400000000000000000000000000000000059 -S3156002EF500000000000000000000000000000000049 -S3156002EF600000000000000000000000000000000039 -S3156002EF700000000000000000000000000000000029 -S3156002EF800000000000000000000000000000000019 -S3156002EF900000000000000000000000000000000009 -S3156002EFA000000000000000000000000000000000F9 -S3156002EFB000000000000000000000000000000000E9 -S3156002EFC000000000000000000000000000000000D9 -S3156002EFD000000000000000000000000000000000C9 -S3156002EFE000000000000000000000000000000000B9 -S3156002EFF000000000000000000000000000000000A9 -S3156002F0000000000000000000000000000000000098 -S3156002F0100000000000000000000000000000000088 -S3156002F0200000000000000000000000000000000078 -S3156002F0300000000000000000000000000000000068 -S3156002F0400000000000000000000000000000000058 -S3156002F0500000000000000000000000000000000048 -S3156002F0600000000000000000000000000000000038 -S3156002F0700000000000000000000000000000000028 -S3156002F0800000000000000000000000000000000018 -S3156002F0900000000000000000000000000000000008 -S3156002F0A000000000000000000000000000000000F8 -S3156002F0B000000000000000000000000000000000E8 -S3156002F0C000000000000000000000000000000000D8 -S3156002F0D000000000000000000000000000000000C8 -S3156002F0E000000000000000000000000000000000B8 -S3156002F0F000000000000000000000000000000000A8 -S3156002F1000000000000000000000000000000000097 -S3156002F1100000000000000000000000000000000087 -S3156002F1200000000000000000000000000000000077 -S3156002F1300000000000000000000000000000000067 -S3156002F1400000000000000000000000000000000057 -S3156002F1500000000000000000000000000000000047 -S3156002F1600000000000000000000000000000000037 -S3156002F1700000000000000000000000000000000027 -S3156002F1800000000000000000000000000000000017 -S3156002F1900000000000000000000000000000000007 -S3156002F1A000000000000000000000000000000000F7 -S3156002F1B000000000000000000000000000000000E7 -S3156002F1C000000000000000000000000000000000D7 -S3156002F1D000000000000000000000000000000000C7 -S3156002F1E000000000000000000000000000000000B7 -S3156002F1F000000000000000000000000000000000A7 -S3156002F2000000000000000000000000000000000096 -S3156002F2100000000000000000000000000000000086 -S3156002F2200000000000000000000000000000000076 -S3156002F2300000000000000000000000000000000066 -S3156002F2400000000000000000000000000000000056 -S3156002F2500000000000000000000000000000000046 -S3156002F2600000000000000000000000000000000036 -S3156002F2700000000000000000000000000000000026 -S3156002F2800000000000000000000000000000000016 -S3156002F2900000000000000000000000000000000006 -S3156002F2A000000000000000000000000000000000F6 -S3156002F2B000000000000000000000000000000000E6 -S3156002F2C000000000000000000000000000000000D6 -S3156002F2D000000000000000000000000000000000C6 -S3156002F2E000000000000000000000000000000000B6 -S3156002F2F000000000000000000000000000000000A6 -S3156002F3000000000000000000000000000000000095 -S3156002F3100000000000000000000000000000000085 -S3156002F3200000000000000000000000000000000075 -S3156002F3300000000000000000000000000000000065 -S3156002F3400000000000000000000000000000000055 -S3156002F3500000000000000000000000000000000045 -S3156002F3600000000000000000000000000000000035 -S3156002F3700000000000000000000000000000000025 -S3156002F3800000000000000000000000000000000015 -S3156002F3900000000000000000000000000000000005 -S3156002F3A000000000000000000000000000000000F5 -S3156002F3B000000000000000000000000000000000E5 -S3156002F3C000000000000000000000000000000000D5 -S3156002F3D000000000000000000000000000000000C5 -S3156002F3E000000000000000000000000000000000B5 -S3156002F3F000000000000000000000000000000000A5 -S3156002F4000000000000000000000000000000000094 -S3156002F4100000000000000000000000000000000084 -S3156002F4200000000000000000000000000000000074 -S3156002F4300000000000000000000000000000000064 -S3156002F4400000000000000000000000000000000054 -S3156002F4500000000000000000000000000000000044 -S3156002F4600000000000000000000000000000000034 -S3156002F4700000000000000000000000000000000024 -S3156002F4800000000000000000000000000000000014 -S3156002F4900000000000000000000000000000000004 -S3156002F4A000000000000000000000000000000000F4 -S3156002F4B000000000000000000000000000000000E4 -S3156002F4C000000000000000000000000000000000D4 -S3156002F4D000000000000000000000000000000000C4 -S3156002F4E000000000000000000000000000000000B4 -S3156002F4F000000000000000000000000000000000A4 -S3156002F5000000000000000000000000000000000093 -S3156002F5100000000000000000000000000000000083 -S3156002F5200000000000000000000000000000000073 -S3156002F5300000000000000000000000000000000063 -S3156002F5400000000000000000000000000000000053 -S3156002F5500000000000000000000000000000000043 -S3156002F5600000000000000000000000000000000033 -S3156002F5700000000000000000000000000000000023 -S3156002F5800000000000000000000000000000000013 -S3156002F5900000000000000000000000000000000003 -S3156002F5A000000000000000000000000000000000F3 -S3156002F5B000000000000000000000000000000000E3 -S3156002F5C000000000000000000000000000000000D3 -S3156002F5D000000000000000000000000000000000C3 -S3156002F5E000000000000000000000000000000000B3 -S3156002F5F000000000000000000000000000000000A3 -S3156002F6000000000000000000000000000000000092 -S3156002F6100000000000000000000000000000000082 -S3156002F6200000000000000000000000000000000072 -S3156002F6300000000000000000000000000000000062 -S3156002F6400000000000000000000000000000000052 -S3156002F6500000000000000000000000000000000042 -S3156002F6600000000000000000000000000000000032 -S3156002F6700000000000000000000000000000000022 -S3156002F6800000000000000000000000000000000012 -S3156002F6900000000000000000000000000000000002 -S3156002F6A000000000000000000000000000000000F2 -S3156002F6B000000000000000000000000000000000E2 -S3156002F6C000000000000000000000000000000000D2 -S3156002F6D000000000000000000000000000000000C2 -S3156002F6E000000000000000000000000000000000B2 -S3156002F6F000000000000000000000000000000000A2 -S3156002F7000000000000000000000000000000000091 -S3156002F7100000000000000000000000000000000081 -S3156002F7200000000000000000000000000000000071 -S3156002F7300000000000000000000000000000000061 -S3156002F7400000000000000000000000000000000051 -S3156002F7500000000000000000000000000000000041 -S3156002F7600000000000000000000000000000000031 -S3156002F7700000000000000000000000000000000021 -S3156002F7800000000000000000000000000000000011 -S3156002F7900000000000000000000000000000000001 -S3156002F7A000000000000000000000000000000000F1 -S3156002F7B000000000000000000000000000000000E1 -S3156002F7C000000000000000000000000000000000D1 -S3156002F7D000000000000000000000000000000000C1 -S3156002F7E000000000000000000000000000000000B1 -S3156002F7F000000000000000000000000000000000A1 -S3156002F8000000000000000000000000000000000090 -S3156002F8100000000000000000000000000000000080 -S3156002F8200000000000000000000000000000000070 -S3156002F8300000000000000000000000000000000060 -S3156002F8400000000000000000000000000000000050 -S3156002F8500000000000000000000000000000000040 -S3156002F8600000000000000000000000000000000030 -S3156002F8700000000000000000000000000000000020 -S3156002F8800000000000000000000000000000000010 -S3156002F8900000000000000000000000000000000000 -S3156002F8A000000000000000000000000000000000F0 -S3156002F8B000000000000000000000000000000000E0 -S3156002F8C000000000000000000000000000000000D0 -S3156002F8D000000000000000000000000000000000C0 -S3156002F8E000000000000000000000000000000000B0 -S3156002F8F000000000000000000000000000000000A0 -S3156002F900000000000000000000000000000000008F -S3156002F910000000000000000000000000000000007F -S3156002F920000000000000000000000000000000006F -S3156002F930000000000000000000000000000000005F -S3156002F940000000000000000000000000000000004F -S3156002F950000000000000000000000000000000003F -S3156002F960000000000000000000000000000000002F -S3156002F970000000000000000000000000000000001F -S3156002F980000000000000000000000000000000000F -S3156002F99000000000000000000000000000000000FF -S3156002F9A000000000000000000000000000000000EF -S3156002F9B000000000000000000000000000000000DF -S3156002F9C000000000000000000000000000000000CF -S3156002F9D000000000000000000000000000000000BF -S3156002F9E000000000000000000000000000000000AF -S3156002F9F0000000000000000000000000000000009F -S3156002FA00000000000000000000000000000000008E -S3156002FA10000000000000000000000000000000007E -S3156002FA20000000000000000000000000000000006E -S3156002FA30000000000000000000000000000000005E -S3156002FA40000000000000000000000000000000004E -S3156002FA50000000000000000000000000000000003E -S3156002FA60000000000000000000000000000000002E -S3156002FA70000000000000000000000000000000001E -S3156002FA80000000000000000000000000000000000E -S3156002FA9000000000000000000000000000000000FE -S3156002FAA000000000000000000000000000000000EE -S3156002FAB000000000000000000000000000000000DE -S3156002FAC000000000000000000000000000000000CE -S3156002FAD000000000000000000000000000000000BE -S3156002FAE000000000000000000000000000000000AE -S3156002FAF0000000000000000000000000000000009E -S3156002FB00000000000000000000000000000000008D -S3156002FB10000000000000000000000000000000007D -S3156002FB20000000000000000000000000000000006D -S3156002FB30000000000000000000000000000000005D -S3156002FB40000000000000000000000000000000004D -S3156002FB50000000000000000000000000000000003D -S3156002FB60000000000000000000000000000000002D -S3156002FB70000000000000000000000000000000001D -S3156002FB80000000000000000000000000000000000D -S3156002FB9000000000000000000000000000000000FD -S3156002FBA000000000000000000000000000000000ED -S3156002FBB000000000000000000000000000000000DD -S3156002FBC000000000000000000000000000000000CD -S3156002FBD000000000000000000000000000000000BD -S3156002FBE000000000000000000000000000000000AD -S3156002FBF0000000000000000000000000000000009D -S3156002FC00000000000000000000000000000000008C -S3156002FC10000000000000000000000000000000007C -S3156002FC20000000000000000000000000000000006C -S3156002FC30000000000000000000000000000000005C -S3156002FC40000000000000000000000000000000004C -S3156002FC50000000000000000000000000000000003C -S3156002FC60000000000000000000000000000000002C -S3156002FC70000000000000000000000000000000001C -S3156002FC80000000000000000000000000000000000C -S3156002FC9000000000000000000000000000000000FC -S3156002FCA000000000000000000000000000000000EC -S3156002FCB000000000000000000000000000000000DC -S3156002FCC000000000000000000000000000000000CC -S3156002FCD000000000000000000000000000000000BC -S3156002FCE000000000000000000000000000000000AC -S3156002FCF0000000000000000000000000000000009C -S3156002FD00000000000000000000000000000000008B -S3156002FD10000000000000000000000000000000007B -S3156002FD20000000000000000000000000000000006B -S3156002FD30000000000000000000000000000000005B -S3156002FD40000000000000000000000000000000004B -S3156002FD50000000000000000000000000000000003B -S3156002FD60000000000000000000000000000000002B -S3156002FD70000000000000000000000000000000001B -S3156002FD80000000000000000000000000000000000B -S3156002FD9000000000000000000000000000000000FB -S3156002FDA000000000000000000000000000000000EB -S3156002FDB000000000000000000000000000000000DB -S3156002FDC000000000000000000000000000000000CB -S3156002FDD000000000000000000000000000000000BB -S3156002FDE000000000000000000000000000000000AB -S3156002FDF0000000000000000000000000000000009B -S3156002FE00000000000000000000000000000000008A -S3156002FE10000000000000000000000000000000007A -S3156002FE20000000000000000000000000000000006A -S3156002FE30000000000000000000000000000000005A -S3156002FE40000000000000000000000000000000004A -S3156002FE50000000000000000000000000000000003A -S3156002FE60000000000000000000000000000000002A -S3156002FE70000000000000000000000000000000001A -S3156002FE80000000000000000000000000000000000A -S3156002FE9000000000000000000000000000000000FA -S3156002FEA000000000000000000000000000000000EA -S3156002FEB000000000000000000000000000000000DA -S3156002FEC000000000000000000000000000000000CA -S3156002FED000000000000000000000000000000000BA -S3156002FEE000000000000000000000000000000000AA -S3156002FEF0000000000000000000000000000000009A -S3156002FF000000000000000000000000000000000089 -S3156002FF100000000000000000000000000000000079 -S3156002FF200000000000000000000000000000000069 -S3156002FF300000000000000000000000000000000059 -S3156002FF400000000000000000000000000000000049 -S3156002FF500000000000000000000000000000000039 -S3156002FF600000000000000000000000000000000029 -S3156002FF700000000000000000000000000000000019 -S3156002FF800000000000000000000000000000000009 -S3156002FF9000000000000000000000000000000000F9 -S3156002FFA000000000000000000000000000000000E9 -S3156002FFB000000000000000000000000000000000D9 -S3156002FFC000000000000000000000000000000000C9 -S3156002FFD000000000000000000000000000000000B9 -S3156002FFE000000000000000000000000000000000A9 -S3156002FFF00000000000000000000000000000000099 -S315600300000000000000000000000000000000000087 -S315600300100000000000000000000000000000000077 -S315600300200000000000000000000000000000000067 -S315600300300000000000000000000000000000000057 -S315600300400000000000000000000000000000000047 -S315600300500000000000000000000000000000000037 -S315600300600000000000000000000000000000000027 -S315600300700000000000000000000000000000000017 -S315600300800000000000000000000000000000000007 -S3156003009000000000000000000000000000000000F7 -S315600300A000000000000000000000000000000000E7 -S315600300B000000000000000000000000000000000D7 -S315600300C000000000000000000000000000000000C7 -S315600300D000000000000000000000000000000000B7 -S315600300E000000000000000000000000000000000A7 -S315600300F00000000000000000000000000000000097 -S315600301000000000000000000000000000000000086 -S315600301100000000000000000000000000000000076 -S315600301200000000000000000000000000000000066 -S315600301300000000000000000000000000000000056 -S315600301400000000000000000000000000000000046 -S315600301500000000000000000000000000000000036 -S315600301600000000000000000000000000000000026 -S315600301700000000000000000000000000000000016 -S315600301800000000000000000000000000000000006 -S3156003019000000000000000000000000000000000F6 -S315600301A000000000000000000000000000000000E6 -S315600301B000000000000000000000000000000000D6 -S315600301C000000000000000000000000000000000C6 -S315600301D000000000000000000000000000000000B6 -S315600301E000000000000000000000000000000000A6 -S315600301F00000000000000000000000000000000096 -S315600302000000000000000000000000000000000085 -S315600302100000000000000000000000000000000075 -S315600302200000000000000000000000000000000065 -S315600302300000000000000000000000000000000055 -S315600302400000000000000000000000000000000045 -S315600302500000000000000000000000000000000035 -S315600302600000000000000000000000000000000025 -S315600302700000000000000000000000000000000015 -S315600302800000000000000000000000000000000005 -S3156003029000000000000000000000000000000000F5 -S315600302A000000000000000000000000000000000E5 -S315600302B000000000000000000000000000000000D5 -S315600302C000000000000000000000000000000000C5 -S315600302D000000000000000000000000000000000B5 -S315600302E000000000000000000000000000000000A5 -S315600302F00000000000000000000000000000000095 -S315600303000000000000000000000000000000000084 -S315600303100000000000000000000000000000000074 -S315600303200000000000000000000000000000000064 -S315600303300000000000000000000000000000000054 -S315600303400000000000000000000000000000000044 -S315600303500000000000000000000000000000000034 -S315600303600000000000000000000000000000000024 -S315600303700000000000000000000000000000000014 -S315600303800000000000000000000000000000000004 -S3156003039000000000000000000000000000000000F4 -S315600303A000000000000000000000000000000000E4 -S315600303B000000000000000000000000000000000D4 -S315600303C000000000000000000000000000000000C4 -S315600303D000000000000000000000000000000000B4 -S315600303E000000000000000000000000000000000A4 -S315600303F00000000000000000000000000000000094 -S315600304000000000000000000000000000000000083 -S315600304100000000000000000000000000000000073 -S315600304200000000000000000000000000000000063 -S315600304300000000000000000000000000000000053 -S315600304400000000000000000000000000000000043 -S315600304500000000000000000000000000000000033 -S315600304600000000000000000000000000000000023 -S315600304700000000000000000000000000000000013 -S315600304800000000000000000000000000000000003 -S3156003049000000000000000000000000000000000F3 -S315600304A000000000000000000000000000000000E3 -S315600304B000000000000000000000000000000000D3 -S315600304C000000000000000000000000000000000C3 -S315600304D000000000000000000000000000000000B3 -S315600304E000000000000000000000000000000000A3 -S315600304F00000000000000000000000000000000093 -S315600305000000000000000000000000000000000082 -S315600305100000000000000000000000000000000072 -S315600305200000000000000000000000000000000062 -S315600305300000000000000000000000000000000052 -S315600305400000000000000000000000000000000042 -S315600305500000000000000000000000000000000032 -S315600305600000000000000000000000000000000022 -S315600305700000000000000000000000000000000012 -S315600305800000000000000000000000000000000002 -S3156003059000000000000000000000000000000000F2 -S315600305A000000000000000000000000000000000E2 -S315600305B000000000000000000000000000000000D2 -S315600305C000000000000000000000000000000000C2 -S315600305D000000000000000000000000000000000B2 -S315600305E000000000000000000000000000000000A2 -S315600305F00000000000000000000000000000000092 -S315600306000000000000000000000000000000000081 -S315600306100000000000000000000000000000000071 -S315600306200000000000000000000000000000000061 -S315600306300000000000000000000000000000000051 -S315600306400000000000000000000000000000000041 -S315600306500000000000000000000000000000000031 -S315600306600000000000000000000000000000000021 -S315600306700000000000000000000000000000000011 -S315600306800000000000000000000000000000000001 -S3156003069000000000000000000000000000000000F1 -S315600306A000000000000000000000000000000000E1 -S315600306B000000000000000000000000000000000D1 -S315600306C000000000000000000000000000000000C1 -S315600306D000000000000000000000000000000000B1 -S315600306E000000000000000000000000000000000A1 -S315600306F00000000000000000000000000000000091 -S315600307000000000000000000000000000000000080 -S315600307100000000000000000000000000000000070 -S315600307200000000000000000000000000000000060 -S315600307300000000000000000000000000000000050 -S315600307400000000000000000000000000000000040 -S315600307500000000000000000000000000000000030 -S315600307600000000000000000000000000000000020 -S315600307700000000000000000000000000000000010 -S315600307800000000000000000000000000000000000 -S3156003079000000000000000000000000000000000F0 -S315600307A000000000000000000000000000000000E0 -S315600307B000000000000000000000000000000000D0 -S315600307C000000000000000000000000000000000C0 -S315600307D000000000000000000000000000000000B0 -S315600307E000000000000000000000000000000000A0 -S315600307F00000000000000000000000000000000090 -S31560030800000000000000000000000000000000007F -S31560030810000000000000000000000000000000006F -S31560030820000000000000000000000000000000005F -S31560030830000000000000000000000000000000004F -S31560030840000000000000000000000000000000003F -S31560030850000000000000000000000000000000002F -S31560030860000000000000000000000000000000001F -S31560030870000000000000000000000000000000000F -S3156003088000000000000000000000000000000000FF -S3156003089000000000000000000000000000000000EF -S315600308A000000000000000000000000000000000DF -S315600308B000000000000000000000000000000000CF -S315600308C000000000000000000000000000000000BF -S315600308D000000000000000000000000000000000AF -S315600308E0000000000000000000000000000000009F -S315600308F0000000000000000000000000000000008F -S31560030900000000000000000000000000000000007E -S31560030910000000000000000000000000000000006E -S31560030920000000000000000000000000000000005E -S31560030930000000000000000000000000000000004E -S31560030940000000000000000000000000000000003E -S31560030950000000000000000000000000000000002E -S31560030960000000000000000000000000000000001E -S31560030970000000000000000000000000000000000E -S3156003098000000000000000000000000000000000FE -S3156003099000000000000000000000000000000000EE -S315600309A000000000000000000000000000000000DE -S315600309B000000000000000000000000000000000CE -S315600309C000000000000000000000000000000000BE -S315600309D000000000000000000000000000000000AE -S315600309E0000000000000000000000000000000009E -S315600309F0000000000000000000000000000000008E -S31560030A00000000000000000000000000000000007D -S31560030A10000000000000000000000000000000006D -S31560030A20000000000000000000000000000000005D -S31560030A30000000000000000000000000000000004D -S31560030A40000000000000000000000000000000003D -S31560030A50000000000000000000000000000000002D -S31560030A60000000000000000000000000000000001D -S31560030A70000000000000000000000000000000000D -S31560030A8000000000000000000000000000000000FD -S31560030A9000000000000000000000000000000000ED -S31560030AA000000000000000000000000000000000DD -S31560030AB000000000000000000000000000000000CD -S31560030AC000000000000000000000000000000000BD -S31560030AD000000000000000000000000000000000AD -S31560030AE0000000000000000000000000000000009D -S31560030AF0000000000000000000000000000000008D -S31560030B00000000000000000000000000000000007C -S31560030B10000000000000000000000000000000006C -S31560030B20000000000000000000000000000000005C -S31560030B30000000000000000000000000000000004C -S31560030B40000000000000000000000000000000003C -S31560030B50000000000000000000000000000000002C -S31560030B60000000000000000000000000000000001C -S31560030B70000000000000000000000000000000000C -S31560030B8000000000000000000000000000000000FC -S31560030B9000000000000000000000000000000000EC -S31560030BA000000000000000000000000000000000DC -S31560030BB000000000000000000000000000000000CC -S31560030BC000000000000000000000000000000000BC -S31560030BD000000000000000000000000000000000AC -S31560030BE0000000000000000000000000000000009C -S31560030BF0000000000000000000000000000000008C -S31560030C00000000000000000000000000000000007B -S31560030C10000000000000000000000000000000006B -S31560030C20000000000000000000000000000000005B -S31560030C30000000000000000000000000000000004B -S31560030C40000000000000000000000000000000003B -S31560030C50000000000000000000000000000000002B -S31560030C60000000000000000000000000000000001B -S31560030C70000000000000000000000000000000000B -S31560030C8000000000000000000000000000000000FB -S31560030C9000000000000000000000000000000000EB -S31560030CA000000000000000000000000000000000DB -S31560030CB000000000000000000000000000000000CB -S31560030CC000000000000000000000000000000000BB -S31560030CD000000000000000000000000000000000AB -S31560030CE0000000000000000000000000000000009B -S31560030CF0000000000000000000000000000000008B -S31560030D00000000000000000000000000000000007A -S31560030D10000000000000000000000000000000006A -S31560030D20000000000000000000000000000000005A -S31560030D30000000000000000000000000000000004A -S31560030D40000000000000000000000000000000003A -S31560030D50000000000000000000000000000000002A -S31560030D60000000000000000000000000000000001A -S31560030D70000000000000000000000000000000000A -S31560030D8000000000000000000000000000000000FA -S31560030D9000000000000000000000000000000000EA -S31560030DA000000000000000000000000000000000DA -S31560030DB000000000000000000000000000000000CA -S31560030DC000000000000000000000000000000000BA -S31560030DD000000000000000000000000000000000AA -S31560030DE0000000000000000000000000000000009A -S31560030DF0000000000000000000000000000000008A -S31560030E000000000000000000000000000000000079 -S31560030E100000000000000000000000000000000069 -S31560030E200000000000000000000000000000000059 -S31560030E300000000000000000000000000000000049 -S31560030E400000000000000000000000000000000039 -S31560030E500000000000000000000000000000000029 -S31560030E600000000000000000000000000000000019 -S31560030E700000000000000000000000000000000009 -S31560030E8000000000000000000000000000000000F9 -S31560030E9000000000000000000000000000000000E9 -S31560030EA000000000000000000000000000000000D9 -S31560030EB000000000000000000000000000000000C9 -S31560030EC000000000000000000000000000000000B9 -S31560030ED000000000000000000000000000000000A9 -S31560030EE00000000000000000000000000000000099 -S31560030EF00000000000000000000000000000000089 -S31560030F000000000000000000000000000000000078 -S31560030F100000000000000000000000000000000068 -S31560030F200000000000000000000000000000000058 -S31560030F300000000000000000000000000000000048 -S31560030F400000000000000000000000000000000038 -S31560030F500000000000000000000000000000000028 -S31560030F600000000000000000000000000000000018 -S31560030F700000000000000000000000000000000008 -S31560030F8000000000000000000000000000000000F8 -S31560030F9000000000000000000000000000000000E8 -S31560030FA000000000000000000000000000000000D8 -S31560030FB000000000000000000000000000000000C8 -S31560030FC000000000000000000000000000000000B8 -S31560030FD000000000000000000000000000000000A8 -S31560030FE00000000000000000000000000000000098 -S31560030FF00000000000000000000000000000000088 -S315600310000000000000000000000000000000000077 -S315600310100000000000000000000000000000000067 -S315600310200000000000000000000000000000000057 -S315600310300000000000000000000000000000000047 -S315600310400000000000000000000000000000000037 -S315600310500000000000000000000000000000000027 -S315600310600000000000000000000000000000000017 -S315600310700000000000000000000000000000000007 -S3156003108000000000000000000000000000000000F7 -S3156003109000000000000000000000000000000000E7 -S315600310A000000000000000000000000000000000D7 -S315600310B000000000000000000000000000000000C7 -S315600310C000000000000000000000000000000000B7 -S315600310D000000000000000000000000000000000A7 -S315600310E00000000000000000000000000000000097 -S315600310F00000000000000000000000000000000087 -S315600311000000000000000000000000000000000076 -S315600311100000000000000000000000000000000066 -S315600311200000000000000000000000000000000056 -S315600311300000000000000000000000000000000046 -S315600311400000000000000000000000000000000036 -S315600311500000000000000000000000000000000026 -S315600311600000000000000000000000000000000016 -S315600311700000000000000000000000000000000006 -S3156003118000000000000000000000000000000000F6 -S3156003119000000000000000000000000000000000E6 -S315600311A000000000000000000000000000000000D6 -S315600311B000000000000000000000000000000000C6 -S315600311C000000000000000000000000000000000B6 -S315600311D000000000000000000000000000000000A6 -S315600311E00000000000000000000000000000000096 -S315600311F00000000000000000000000000000000086 -S315600312000000000000000000000000000000000075 -S315600312100000000000000000000000000000000065 -S315600312200000000000000000000000000000000055 -S315600312300000000000000000000000000000000045 -S315600312400000000000000000000000000000000035 -S315600312500000000000000000000000000000000025 -S315600312600000000000000000000000000000000015 -S315600312700000000000000000000000000000000005 -S3156003128000000000000000000000000000000000F5 -S3156003129000000000000000000000000000000000E5 -S315600312A000000000000000000000000000000000D5 -S315600312B000000000000000000000000000000000C5 -S315600312C000000000000000000000000000000000B5 -S315600312D000000000000000000000000000000000A5 -S315600312E00000000000000000000000000000000095 -S315600312F00000000000000000000000000000000085 -S315600313000000000000000000000000000000000074 -S315600313100000000000000000000000000000000064 -S315600313200000000000000000000000000000000054 -S315600313300000000000000000000000000000000044 -S315600313400000000000000000000000000000000034 -S315600313500000000000000000000000000000000024 -S315600313600000000000000000000000000000000014 -S315600313700000000000000000000000000000000004 -S3156003138000000000000000000000000000000000F4 -S3156003139000000000000000000000000000000000E4 -S315600313A000000000000000000000000000000000D4 -S315600313B000000000000000000000000000000000C4 -S315600313C000000000000000000000000000000000B4 -S315600313D000000000000000000000000000000000A4 -S315600313E00000000000000000000000000000000094 -S315600313F00000000000000000000000000000000084 -S315600314000000000000000000000000000000000073 -S315600314100000000000000000000000000000000063 -S315600314200000000000000000000000000000000053 -S315600314300000000000000000000000000000000043 -S315600314400000000000000000000000000000000033 -S315600314500000000000000000000000000000000023 -S315600314600000000000000000000000000000000013 -S315600314700000000000000000000000000000000003 -S3156003148000000000000000000000000000000000F3 -S3156003149000000000000000000000000000000000E3 -S315600314A000000000000000000000000000000000D3 -S315600314B000000000000000000000000000000000C3 -S315600314C000000000000000000000000000000000B3 -S315600314D000000000000000000000000000000000A3 -S315600314E00000000000000000000000000000000093 -S315600314F00000000000000000000000000000000083 -S315600315000000000000000000000000000000000072 -S315600315100000000000000000000000000000000062 -S315600315200000000000000000000000000000000052 -S315600315300000000000000000000000000000000042 -S315600315400000000000000000000000000000000032 -S315600315500000000000000000000000000000000022 -S315600315600000000000000000000000000000000012 -S315600315700000000000000000000000000000000002 -S3156003158000000000000000000000000000000000F2 -S3156003159000000000000000000000000000000000E2 -S315600315A000000000000000000000000000000000D2 -S315600315B000000000000000000000000000000000C2 -S315600315C000000000000000000000000000000000B2 -S315600315D000000000000000000000000000000000A2 -S315600315E00000000000000000000000000000000092 -S315600315F00000000000000000000000000000000082 -S315600316000000000000000000000000000000000071 -S315600316100000000000000000000000000000000061 -S315600316200000000000000000000000000000000051 -S315600316300000000000000000000000000000000041 -S315600316400000000000000000000000000000000031 -S315600316500000000000000000000000000000000021 -S315600316600000000000000000000000000000000011 -S315600316700000000000000000000000000000000001 -S3156003168000000000000000000000000000000000F1 -S3156003169000000000000000000000000000000000E1 -S315600316A000000000000000000000000000000000D1 -S315600316B000000000000000000000000000000000C1 -S315600316C000000000000000000000000000000000B1 -S315600316D000000000000000000000000000000000A1 -S315600316E00000000000000000000000000000000091 -S315600316F00000000000000000000000000000000081 -S315600317000000000000000000000000000000000070 -S315600317100000000000000000000000000000000060 -S315600317200000000000000000000000000000000050 -S315600317300000000000000000000000000000000040 -S315600317400000000000000000000000000000000030 -S315600317500000000000000000000000000000000020 -S315600317600000000000000000000000000000000010 -S315600317700000000000000000000000000000000000 -S3156003178000000000000000000000000000000000F0 -S3156003179000000000000000000000000000000000E0 -S315600317A000000000000000000000000000000000D0 -S315600317B000000000000000000000000000000000C0 -S315600317C000000000000000000000000000000000B0 -S315600317D000000000000000000000000000000000A0 -S315600317E00000000000000000000000000000000090 -S315600317F00000000000000000000000000000000080 -S31560031800000000000000000000000000000000006F -S31560031810000000000000000000000000000000005F -S31560031820000000000000000000000000000000004F -S31560031830000000000000000000000000000000003F -S31560031840000000000000000000000000000000002F -S31560031850000000000000000000000000000000001F -S31560031860000000000000000000000000000000000F -S3156003187000000000000000000000000000000000FF -S3156003188000000000000000000000000000000000EF -S3156003189000000000000000000000000000000000DF -S315600318A000000000000000000000000000000000CF -S315600318B000000000000000000000000000000000BF -S315600318C000000000000000000000000000000000AF -S315600318D0000000000000000000000000000000009F -S315600318E0000000000000000000000000000000008F -S315600318F0000000000000000000000000000000007F -S31560031900000000000000000000000000000000006E -S31560031910000000000000000000000000000000005E -S31560031920000000000000000000000000000000004E -S31560031930000000000000000000000000000000003E -S31560031940000000000000000000000000000000002E -S31560031950000000000000000000000000000000001E -S31560031960000000000000000000000000000000000E -S3156003197000000000000000000000000000000000FE -S3156003198000000000000000000000000000000000EE -S3156003199000000000000000000000000000000000DE -S315600319A000000000000000000000000000000000CE -S315600319B000000000000000000000000000000000BE -S315600319C000000000000000000000000000000000AE -S315600319D0000000000000000000000000000000009E -S315600319E0000000000000000000000000000000008E -S315600319F0000000000000000000000000000000007E -S31560031A00000000000000000000000000000000006D -S31560031A10000000000000000000000000000000005D -S31560031A20000000000000000000000000000000004D -S31560031A30000000000000000000000000000000003D -S31560031A40000000000000000000000000000000002D -S31560031A50000000000000000000000000000000001D -S31560031A60000000000000000000000000000000000D -S31560031A7000000000000000000000000000000000FD -S31560031A8000000000000000000000000000000000ED -S31560031A9000000000000000000000000000000000DD -S31560031AA000000000000000000000000000000000CD -S31560031AB000000000000000000000000000000000BD -S31560031AC000000000000000000000000000000000AD -S31560031AD0000000000000000000000000000000009D -S31560031AE0000000000000000000000000000000008D -S31560031AF0000000000000000000000000000000007D -S31560031B00000000000000000000000000000000006C -S31560031B10000000000000000000000000000000005C -S31560031B20000000000000000000000000000000004C -S31560031B30000000000000000000000000000000003C -S31560031B40000000000000000000000000000000002C -S31560031B50000000000000000000000000000000001C -S31560031B60000000000000000000000000000000000C -S31560031B7000000000000000000000000000000000FC -S31560031B8000000000000000000000000000000000EC -S31560031B9000000000000000000000000000000000DC -S31560031BA000000000000000000000000000000000CC -S31560031BB000000000000000000000000000000000BC -S31560031BC000000000000000000000000000000000AC -S31560031BD0000000000000000000000000000000009C -S31560031BE0000000000000000000000000000000008C -S31560031BF0000000000000000000000000000000007C -S31560031C00000000000000000000000000000000006B -S31560031C10000000000000000000000000000000005B -S31560031C20000000000000000000000000000000004B -S31560031C30000000000000000000000000000000003B -S31560031C40000000000000000000000000000000002B -S31560031C50000000000000000000000000000000001B -S31560031C60000000000000000000000000000000000B -S31560031C7000000000000000000000000000000000FB -S31560031C8000000000000000000000000000000000EB -S31560031C9000000000000000000000000000000000DB -S31560031CA000000000000000000000000000000000CB -S31560031CB000000000000000000000000000000000BB -S31560031CC000000000000000000000000000000000AB -S31560031CD0000000000000000000000000000000009B -S31560031CE0000000000000000000000000000000008B -S31560031CF0000000000000000000000000000000007B -S31560031D00000000000000000000000000000000006A -S31560031D10000000000000000000000000000000005A -S31560031D20000000000000000000000000000000004A -S31560031D30000000000000000000000000000000003A -S31560031D40000000000000000000000000000000002A -S31560031D50000000000000000000000000000000001A -S31560031D60000000000000000000000000000000000A -S31560031D7000000000000000000000000000000000FA -S31560031D8000000000000000000000000000000000EA -S31560031D9000000000000000000000000000000000DA -S31560031DA000000000000000000000000000000000CA -S31560031DB000000000000000000000000000000000BA -S31560031DC000000000000000000000000000000000AA -S31560031DD0000000000000000000000000000000009A -S31560031DE0000000000000000000000000000000008A -S31560031DF0000000000000000000000000000000007A -S31560031E000000000000000000000000000000000069 -S31560031E100000000000000000000000000000000059 -S31560031E200000000000000000000000000000000049 -S31560031E300000000000000000000000000000000039 -S31560031E400000000000000000000000000000000029 -S31560031E500000000000000000000000000000000019 -S31560031E600000000000000000000000000000000009 -S31560031E7000000000000000000000000000000000F9 -S31560031E8000000000000000000000000000000000E9 -S31560031E9000000000000000000000000000000000D9 -S31560031EA000000000000000000000000000000000C9 -S31560031EB000000000000000000000000000000000B9 -S31560031EC000000000000000000000000000000000A9 -S31560031ED00000000000000000000000000000000099 -S31560031EE00000000000000000000000000000000089 -S31560031EF00000000000000000000000000000000079 -S31560031F000000000000000000000000000000000068 -S31560031F100000000000000000000000000000000058 -S31560031F200000000000000000000000000000000048 -S31560031F300000000000000000000000000000000038 -S31560031F400000000000000000000000000000000028 -S31560031F500000000000000000000000000000000018 -S31560031F600000000000000000000000000000000008 -S31560031F7000000000000000000000000000000000F8 -S31560031F8000000000000000000000000000000000E8 -S31560031F9000000000000000000000000000000000D8 -S31560031FA000000000000000000000000000000000C8 -S31560031FB000000000000000000000000000000000B8 -S31560031FC000000000000000000000000000000000A8 -S31560031FD00000000000000000000000000000000098 -S31560031FE00000000000000000000000000000000088 -S31560031FF00000000000000000000000000000000078 -S315600320000000000000000000000000000000000067 -S315600320100000000000000000000000000000000057 -S315600320200000000000000000000000000000000047 -S315600320300000000000000000000000000000000037 -S315600320400000000000000000000000000000000027 -S315600320500000000000000000000000000000000017 -S315600320600000000000000000000000000000000007 -S3156003207000000000000000000000000000000000F7 -S3156003208000000000000000000000000000000000E7 -S3156003209000000000000000000000000000000000D7 -S315600320A000000000000000000000000000000000C7 -S315600320B000000000000000000000000000000000B7 -S315600320C000000000000000000000000000000000A7 -S315600320D00000000000000000000000000000000097 -S315600320E00000000000000000000000000000000087 -S315600320F00000000000000000000000000000000077 -S315600321000000000000000000000000000000000066 -S315600321100000000000000000000000000000000056 -S315600321200000000000000000000000000000000046 -S315600321300000000000000000000000000000000036 -S315600321400000000000000000000000000000000026 -S315600321500000000000000000000000000000000016 -S315600321600000000000000000000000000000000006 -S3156003217000000000000000000000000000000000F6 -S3156003218000000000000000000000000000000000E6 -S3156003219000000000000000000000000000000000D6 -S315600321A000000000000000000000000000000000C6 -S315600321B000000000000000000000000000000000B6 -S315600321C000000000000000000000000000000000A6 -S315600321D00000000000000000000000000000000096 -S315600321E00000000000000000000000000000000086 -S315600321F00000000000000000000000000000000076 -S315600322000000000000000000000000000000000065 -S315600322100000000000000000000000000000000055 -S315600322200000000000000000000000000000000045 -S315600322300000000000000000000000000000000035 -S315600322400000000000000000000000000000000025 -S315600322500000000000000000000000000000000015 -S315600322600000000000000000000000000000000005 -S3156003227000000000000000000000000000000000F5 -S3156003228000000000000000000000000000000000E5 -S3156003229000000000000000000000000000000000D5 -S315600322A000000000000000000000000000000000C5 -S315600322B000000000000000000000000000000000B5 -S315600322C000000000000000000000000000000000A5 -S315600322D00000000000000000000000000000000095 -S315600322E00000000000000000000000000000000085 -S315600322F00000000000000000000000000000000075 -S315600323000000000000000000000000000000000064 -S315600323100000000000000000000000000000000054 -S315600323200000000000000000000000000000000044 -S315600323300000000000000000000000000000000034 -S315600323400000000000000000000000000000000024 -S315600323500000000000000000000000000000000014 -S315600323600000000000000000000000000000000004 -S3156003237000000000000000000000000000000000F4 -S3156003238000000000000000000000000000000000E4 -S3156003239000000000000000000000000000000000D4 -S315600323A000000000000000000000000000000000C4 -S315600323B000000000000000000000000000000000B4 -S315600323C000000000000000000000000000000000A4 -S315600323D00000000000000000000000000000000094 -S315600323E00000000000000000000000000000000084 -S315600323F00000000000000000000000000000000074 -S315600324000000000000000000000000000000000063 -S315600324100000000000000000000000000000000053 -S315600324200000000000000000000000000000000043 -S315600324300000000000000000000000000000000033 -S315600324400000000000000000000000000000000023 -S315600324500000000000000000000000000000000013 -S315600324600000000000000000000000000000000003 -S3156003247000000000000000000000000000000000F3 -S3156003248000000000000000000000000000000000E3 -S3156003249000000000000000000000000000000000D3 -S315600324A000000000000000000000000000000000C3 -S315600324B000000000000000000000000000000000B3 -S315600324C000000000000000000000000000000000A3 -S315600324D00000000000000000000000000000000093 -S315600324E00000000000000000000000000000000083 -S315600324F00000000000000000000000000000000073 -S315600325000000000000000000000000000000000062 -S315600325100000000000000000000000000000000052 -S315600325200000000000000000000000000000000042 -S315600325300000000000000000000000000000000032 -S315600325400000000000000000000000000000000022 -S315600325500000000000000000000000000000000012 -S315600325600000000000000000000000000000000002 -S3156003257000000000000000000000000000000000F2 -S3156003258000000000000000000000000000000000E2 -S3156003259000000000000000000000000000000000D2 -S315600325A000000000000000000000000000000000C2 -S315600325B000000000000000000000000000000000B2 -S315600325C000000000000000000000000000000000A2 -S315600325D00000000000000000000000000000000092 -S315600325E00000000000000000000000000000000082 -S315600325F00000000000000000000000000000000072 -S315600326000000000000000000000000000000000061 -S315600326100000000000000000000000000000000051 -S315600326200000000000000000000000000000000041 -S315600326300000000000000000000000000000000031 -S315600326400000000000000000000000000000000021 -S315600326500000000000000000000000000000000011 -S315600326600000000000000000000000000000000001 -S3156003267000000000000000000000000000000000F1 -S3156003268000000000000000000000000000000000E1 -S3156003269000000000000000000000000000000000D1 -S315600326A000000000000000000000000000000000C1 -S315600326B000000000000000000000000000000000B1 -S315600326C000000000000000000000000000000000A1 -S315600326D00000000000000000000000000000000091 -S315600326E00000000000000000000000000000000081 -S315600326F00000000000000000000000000000000071 -S315600327000000000000000000000000000000000060 -S315600327100000000000000000000000000000000050 -S315600327200000000000000000000000000000000040 -S315600327300000000000000000000000000000000030 -S315600327400000000000000000000000000000000020 -S315600327500000000000000000000000000000000010 -S315600327600000000000000000000000000000000000 -S3156003277000000000000000000000000000000000F0 -S3156003278000000000000000000000000000000000E0 -S3156003279000000000000000000000000000000000D0 -S315600327A000000000000000000000000000000000C0 -S315600327B000000000000000000000000000000000B0 -S315600327C000000000000000000000000000000000A0 -S315600327D00000000000000000000000000000000090 -S315600327E00000000000000000000000000000000080 -S315600327F00000000000000000000000000000000070 -S31560032800000000000000000000000000000000005F -S31560032810000000000000000000000000000000004F -S31560032820000000000000000000000000000000003F -S31560032830000000000000000000000000000000002F -S31560032840000000000000000000000000000000001F -S31560032850000000000000000000000000000000000F -S3156003286000000000000000000000000000000000FF -S3156003287000000000000000000000000000000000EF -S3156003288000000000000000000000000000000000DF -S3156003289000000000000000000000000000000000CF -S315600328A000000000000000000000000000000000BF -S315600328B000000000000000000000000000000000AF -S315600328C0000000000000000000000000000000009F -S315600328D0000000000000000000000000000000008F -S315600328E0000000000000000000000000000000007F -S315600328F0000000000000000000000000000000006F -S31560032900000000000000000000000000000000005E -S31560032910000000000000000000000000000000004E -S31560032920000000000000000000000000000000003E -S31560032930000000000000000000000000000000002E -S31560032940000000000000000000000000000000001E -S31560032950000000000000000000000000000000000E -S3156003296000000000000000000000000000000000FE -S3156003297000000000000000000000000000000000EE -S3156003298000000000000000000000000000000000DE -S3156003299000000000000000000000000000000000CE -S315600329A000000000000000000000000000000000BE -S315600329B000000000000000000000000000000000AE -S315600329C0000000000000000000000000000000009E -S315600329D0000000000000000000000000000000008E -S315600329E0000000000000000000000000000000007E -S315600329F0000000000000000000000000000000006E -S31560032A00000000000000000000000000000000005D -S31560032A10000000000000000000000000000000004D -S31560032A20000000000000000000000000000000003D -S31560032A30000000000000000000000000000000002D -S31560032A40000000000000000000000000000000001D -S31560032A50000000000000000000000000000000000D -S31560032A6000000000000000000000000000000000FD -S31560032A7000000000000000000000000000000000ED -S31560032A8000000000000000000000000000000000DD -S31560032A9000000000000000000000000000000000CD -S31560032AA000000000000000000000000000000000BD -S31560032AB000000000000000000000000000000000AD -S31560032AC0000000000000000000000000000000009D -S31560032AD0000000000000000000000000000000008D -S31560032AE0000000000000000000000000000000007D -S31560032AF0000000000000000000000000000000006D -S31560032B00000000000000000000000000000000005C -S31560032B10000000000000000000000000000000004C -S31560032B20000000000000000000000000000000003C -S31560032B30000000000000000000000000000000002C -S31560032B40000000000000000000000000000000001C -S31560032B50000000000000000000000000000000000C -S31560032B6000000000000000000000000000000000FC -S31560032B7000000000000000000000000000000000EC -S31560032B8000000000000000000000000000000000DC -S31560032B9000000000000000000000000000000000CC -S31560032BA000000000000000000000000000000000BC -S31560032BB000000000000000000000000000000000AC -S31560032BC0000000000000000000000000000000009C -S31560032BD0000000000000000000000000000000008C -S31560032BE0000000000000000000000000000000007C -S31560032BF0000000000000000000000000000000006C -S31560032C00000000000000000000000000000000005B -S31560032C10000000000000000000000000000000004B -S31560032C20000000000000000000000000000000003B -S31560032C30000000000000000000000000000000002B -S31560032C40000000000000000000000000000000001B -S31560032C50000000000000000000000000000000000B -S31560032C6000000000000000000000000000000000FB -S31560032C7000000000000000000000000000000000EB -S31560032C8000000000000000000000000000000000DB -S31560032C9000000000000000000000000000000000CB -S31560032CA000000000000000000000000000000000BB -S31560032CB000000000000000000000000000000000AB -S31560032CC0000000000000000000000000000000009B -S31560032CD0000000000000000000000000000000008B -S31560032CE0000000000000000000000000000000007B -S31560032CF0000000000000000000000000000000006B -S31560032D00000000000000000000000000000000005A -S31560032D10000000000000000000000000000000004A -S31560032D20000000000000000000000000000000003A -S31560032D30000000000000000000000000000000002A -S31560032D40000000000000000000000000000000001A -S31560032D50000000000000000000000000000000000A -S31560032D6000000000000000000000000000000000FA -S31560032D7000000000000000000000000000000000EA -S31560032D8000000000000000000000000000000000DA -S31560032D9000000000000000000000000000000000CA -S31560032DA000000000000000000000000000000000BA -S31560032DB000000000000000000000000000000000AA -S31560032DC0000000000000000000000000000000009A -S31560032DD0000000000000000000000000000000008A -S31560032DE0000000000000000000000000000000007A -S31560032DF0000000000000000000000000000000006A -S31560032E000000000000000000000000000000000059 -S31560032E100000000000000000000000000000000049 -S31560032E200000000000000000000000000000000039 -S31560032E300000000000000000000000000000000029 -S31560032E400000000000000000000000000000000019 -S31560032E500000000000000000000000000000000009 -S31560032E6000000000000000000000000000000000F9 -S31560032E7000000000000000000000000000000000E9 -S31560032E8000000000000000000000000000000000D9 -S31560032E9000000000000000000000000000000000C9 -S31560032EA000000000000000000000000000000000B9 -S31560032EB000000000000000000000000000000000A9 -S31560032EC00000000000000000000000000000000099 -S31560032ED00000000000000000000000000000000089 -S31560032EE00000000000000000000000000000000079 -S31560032EF00000000000000000000000000000000069 -S31560032F000000000000000000000000000000000058 -S31560032F100000000000000000000000000000000048 -S31560032F200000000000000000000000000000000038 -S31560032F300000000000000000000000000000000028 -S31560032F400000000000000000000000000000000018 -S31560032F500000000000000000000000000000000008 -S31560032F6000000000000000000000000000000000F8 -S31560032F7000000000000000000000000000000000E8 -S31560032F8000000000000000000000000000000000D8 -S31560032F9000000000000000000000000000000000C8 -S31560032FA000000000000000000000000000000000B8 -S31560032FB000000000000000000000000000000000A8 -S31560032FC00000000000000000000000000000000098 -S31560032FD00000000000000000000000000000000088 -S31560032FE00000000000000000000000000000000078 -S31560032FF00000000000000000000000000000000068 -S315600330000000000000000000000000000000000057 -S315600330100000000000000000000000000000000047 -S315600330200000000000000000000000000000000037 -S315600330300000000000000000000000000000000027 -S315600330400000000000000000000000000000000017 -S315600330500000000000000000000000000000000007 -S3156003306000000000000000000000000000000000F7 -S3156003307000000000000000000000000000000000E7 -S3156003308000000000000000000000000000000000D7 -S3156003309000000000000000000000000000000000C7 -S315600330A000000000000000000000000000000000B7 -S315600330B000000000000000000000000000000000A7 -S315600330C00000000000000000000000000000000097 -S315600330D00000000000000000000000000000000087 -S315600330E00000000000000000000000000000000077 -S315600330F00000000000000000000000000000000067 -S315600331000000000000000000000000000000000056 -S315600331100000000000000000000000000000000046 -S315600331200000000000000000000000000000000036 -S315600331300000000000000000000000000000000026 -S315600331400000000000000000000000000000000016 -S315600331500000000000000000000000000000000006 -S3156003316000000000000000000000000000000000F6 -S3156003317000000000000000000000000000000000E6 -S3156003318000000000000000000000000000000000D6 -S3156003319000000000000000000000000000000000C6 -S315600331A000000000000000000000000000000000B6 -S315600331B000000000000000000000000000000000A6 -S315600331C00000000000000000000000000000000096 -S315600331D00000000000000000000000000000000086 -S315600331E00000000000000000000000000000000076 -S315600331F00000000000000000000000000000000066 -S315600332000000000000000000000000000000000055 -S315600332100000000000000000000000000000000045 -S315600332200000000000000000000000000000000035 -S315600332300000000000000000000000000000000025 -S315600332400000000000000000000000000000000015 -S315600332500000000000000000000000000000000005 -S3156003326000000000000000000000000000000000F5 -S3156003327000000000000000000000000000000000E5 -S3156003328000000000000000000000000000000000D5 -S3156003329000000000000000000000000000000000C5 -S315600332A000000000000000000000000000000000B5 -S315600332B000000000000000000000000000000000A5 -S315600332C00000000000000000000000000000000095 -S315600332D00000000000000000000000000000000085 -S315600332E00000000000000000000000000000000075 -S315600332F00000000000000000000000000000000065 -S315600333000000000000000000000000000000000054 -S315600333100000000000000000000000000000000044 -S315600333200000000000000000000000000000000034 -S315600333300000000000000000000000000000000024 -S315600333400000000000000000000000000000000014 -S315600333500000000000000000000000000000000004 -S3156003336000000000000000000000000000000000F4 -S3156003337000000000000000000000000000000000E4 -S3156003338000000000000000000000000000000000D4 -S3156003339000000000000000000000000000000000C4 -S315600333A000000000000000000000000000000000B4 -S315600333B000000000000000000000000000000000A4 -S315600333C00000000000000000000000000000000094 -S315600333D00000000000000000000000000000000084 -S315600333E00000000000000000000000000000000074 -S315600333F00000000000000000000000000000000064 -S315600334000000000000000000000000000000000053 -S315600334100000000000000000000000000000000043 -S315600334200000000000000000000000000000000033 -S315600334300000000000000000000000000000000023 -S315600334400000000000000000000000000000000013 -S315600334500000000000000000000000000000000003 -S3156003346000000000000000000000000000000000F3 -S3156003347000000000000000000000000000000000E3 -S3156003348000000000000000000000000000000000D3 -S3156003349000000000000000000000000000000000C3 -S315600334A000000000000000000000000000000000B3 -S315600334B000000000000000000000000000000000A3 -S315600334C00000000000000000000000000000000093 -S315600334D00000000000000000000000000000000083 -S315600334E00000000000000000000000000000000073 -S315600334F00000000000000000000000000000000063 -S315600335000000000000000000000000000000000052 -S315600335100000000000000000000000000000000042 -S315600335200000000000000000000000000000000032 -S315600335300000000000000000000000000000000022 -S315600335400000000000000000000000000000000012 -S315600335500000000000000000000000000000000002 -S3156003356000000000000000000000000000000000F2 -S3156003357000000000000000000000000000000000E2 -S3156003358000000000000000000000000000000000D2 -S3156003359000000000000000000000000000000000C2 -S315600335A000000000000000000000000000000000B2 -S315600335B000000000000000000000000000000000A2 -S315600335C00000000000000000000000000000000092 -S315600335D00000000000000000000000000000000082 -S315600335E00000000000000000000000000000000072 -S315600335F00000000000000000000000000000000062 -S315600336000000000000000000000000000000000051 -S315600336100000000000000000000000000000000041 -S315600336200000000000000000000000000000000031 -S315600336300000000000000000000000000000000021 -S315600336400000000000000000000000000000000011 -S315600336500000000000000000000000000000000001 -S3156003366000000000000000000000000000000000F1 -S3156003367000000000000000000000000000000000E1 -S3156003368000000000000000000000000000000000D1 -S3156003369000000000000000000000000000000000C1 -S315600336A000000000000000000000000000000000B1 -S315600336B000000000000000000000000000000000A1 -S315600336C00000000000000000000000000000000091 -S315600336D00000000000000000000000000000000081 -S315600336E00000000000000000000000000000000071 -S315600336F00000000000000000000000000000000061 -S315600337000000000000000000000000000000000050 -S315600337100000000000000000000000000000000040 -S315600337200000000000000000000000000000000030 -S315600337300000000000000000000000000000000020 -S315600337400000000000000000000000000000000010 -S315600337500000000000000000000000000000000000 -S3156003376000000000000000000000000000000000F0 -S3156003377000000000000000000000000000000000E0 -S3156003378000000000000000000000000000000000D0 -S3156003379000000000000000000000000000000000C0 -S315600337A000000000000000000000000000000000B0 -S315600337B000000000000000000000000000000000A0 -S315600337C00000000000000000000000000000000090 -S315600337D00000000000000000000000000000000080 -S315600337E00000000000000000000000000000000070 -S315600337F00000000000000000000000000000000060 -S31560033800000000000000000000000000000000004F -S31560033810000000000000000000000000000000003F -S31560033820000000000000000000000000000000002F -S31560033830000000000000000000000000000000001F -S31560033840000000000000000000000000000000000F -S3156003385000000000000000000000000000000000FF -S3156003386000000000000000000000000000000000EF -S3156003387000000000000000000000000000000000DF -S3156003388000000000000000000000000000000000CF -S3156003389000000000000000000000000000000000BF -S315600338A000000000000000000000000000000000AF -S315600338B0000000000000000000000000000000009F -S315600338C0000000000000000000000000000000008F -S315600338D0000000000000000000000000000000007F -S315600338E0000000000000000000000000000000006F -S315600338F0000000000000000000000000000000005F -S31560033900000000000000000000000000000000004E -S31560033910000000000000000000000000000000003E -S31560033920000000000000000000000000000000002E -S31560033930000000000000000000000000000000001E -S31560033940000000000000000000000000000000000E -S3156003395000000000000000000000000000000000FE -S3156003396000000000000000000000000000000000EE -S3156003397000000000000000000000000000000000DE -S3156003398000000000000000000000000000000000CE -S3156003399000000000000000000000000000000000BE -S315600339A000000000000000000000000000000000AE -S315600339B0000000000000000000000000000000009E -S315600339C0000000000000000000000000000000008E -S315600339D0000000000000000000000000000000007E -S315600339E0000000000000000000000000000000006E -S315600339F0000000000000000000000000000000005E -S31560033A00000000000000000000000000000000004D -S31560033A10000000000000000000000000000000003D -S31560033A20000000000000000000000000000000002D -S31560033A30000000000000000000000000000000001D -S31560033A40000000000000000000000000000000000D -S31560033A5000000000000000000000000000000000FD -S31560033A6000000000000000000000000000000000ED -S31560033A7000000000000000000000000000000000DD -S31560033A8000000000000000000000000000000000CD -S31560033A9000000000000000000000000000000000BD -S31560033AA000000000000000000000000000000000AD -S31560033AB0000000000000000000000000000000009D -S31560033AC0000000000000000000000000000000008D -S31560033AD0000000000000000000000000000000007D -S31560033AE0000000000000000000000000000000006D -S31560033AF0000000000000000000000000000000005D -S31560033B00000000000000000000000000000000004C -S31560033B10000000000000000000000000000000003C -S31560033B20000000000000000000000000000000002C -S31560033B30000000000000000000000000000000001C -S31560033B40000000000000000000000000000000000C -S31560033B5000000000000000000000000000000000FC -S31560033B6000000000000000000000000000000000EC -S31560033B7000000000000000000000000000000000DC -S31560033B8000000000000000000000000000000000CC -S31560033B9000000000000000000000000000000000BC -S31560033BA000000000000000000000000000000000AC -S31560033BB0000000000000000000000000000000009C -S31560033BC0000000000000000000000000000000008C -S31560033BD0000000000000000000000000000000007C -S31560033BE0000000000000000000000000000000006C -S31560033BF0000000000000000000000000000000005C -S31560033C00000000000000000000000000000000004B -S31560033C10000000000000000000000000000000003B -S31560033C20000000000000000000000000000000002B -S31560033C30000000000000000000000000000000001B -S31560033C40000000000000000000000000000000000B -S31560033C5000000000000000000000000000000000FB -S31560033C6000000000000000000000000000000000EB -S31560033C7000000000000000000000000000000000DB -S31560033C8000000000000000000000000000000000CB -S31560033C9000000000000000000000000000000000BB -S31560033CA000000000000000000000000000000000AB -S31560033CB0000000000000000000000000000000009B -S31560033CC0000000000000000000000000000000008B -S31560033CD0000000000000000000000000000000007B -S31560033CE0000000000000000000000000000000006B -S31560033CF0000000000000000000000000000000005B -S31560033D00000000000000000000000000000000004A -S31560033D10000000000000000000000000000000003A -S31560033D20000000000000000000000000000000002A -S31560033D30000000000000000000000000000000001A -S31560033D40000000000000000000000000000000000A -S31560033D5000000000000000000000000000000000FA -S31560033D6000000000000000000000000000000000EA -S31560033D7000000000000000000000000000000000DA -S31560033D8000000000000000000000000000000000CA -S31560033D9000000000000000000000000000000000BA -S31560033DA000000000000000000000000000000000AA -S31560033DB0000000000000000000000000000000009A -S31560033DC0000000000000000000000000000000008A -S31560033DD0000000000000000000000000000000007A -S31560033DE0000000000000000000000000000000006A -S31560033DF0000000000000000000000000000000005A -S31560033E000000000000000000000000000000000049 -S31560033E100000000000000000000000000000000039 -S31560033E200000000000000000000000000000000029 -S31560033E300000000000000000000000000000000019 -S31560033E400000000000000000000000000000000009 -S31560033E5000000000000000000000000000000000F9 -S31560033E6000000000000000000000000000000000E9 -S31560033E7000000000000000000000000000000000D9 -S31560033E8000000000000000000000000000000000C9 -S31560033E9000000000000000000000000000000000B9 -S31560033EA000000000000000000000000000000000A9 -S31560033EB00000000000000000000000000000000099 -S31560033EC00000000000000000000000000000000089 -S31560033ED00000000000000000000000000000000079 -S31560033EE00000000000000000000000000000000069 -S31560033EF00000000000000000000000000000000059 -S31560033F000000000000000000000000000000000048 -S31560033F100000000000000000000000000000000038 -S31560033F200000000000000000000000000000000028 -S31560033F300000000000000000000000000000000018 -S31560033F400000000000000000000000000000000008 -S31560033F5000000000000000000000000000000000F8 -S31560033F6000000000000000000000000000000000E8 -S31560033F7000000000000000000000000000000000D8 -S31560033F8000000000000000000000000000000000C8 -S31560033F9000000000000000000000000000000000B8 -S31560033FA000000000000000000000000000000000A8 -S31560033FB00000000000000000000000000000000098 -S31560033FC00000000000000000000000000000000088 -S31560033FD00000000000000000000000000000000078 -S31560033FE00000000000000000000000000000000068 -S31560033FF00000000000000000000000000000000058 -S315600340000000000000000000000000000000000047 -S315600340100000000000000000000000000000000037 -S315600340200000000000000000000000000000000027 -S315600340300000000000000000000000000000000017 -S315600340400000000000000000000000000000000007 -S3156003405000000000000000000000000000000000F7 -S3156003406000000000000000000000000000000000E7 -S3156003407000000000000000000000000000000000D7 -S3156003408000000000000000000000000000000000C7 -S3156003409000000000000000000000000000000000B7 -S315600340A000000000000000000000000000000000A7 -S315600340B00000000000000000000000000000000097 -S315600340C00000000000000000000000000000000087 -S315600340D00000000000000000000000000000000077 -S315600340E00000000000000000000000000000000067 -S315600340F00000000000000000000000000000000057 -S315600341000000000000000000000000000000000046 -S315600341100000000000000000000000000000000036 -S315600341200000000000000000000000000000000026 -S315600341300000000000000000000000000000000016 -S315600341400000000000000000000000000000000006 -S3156003415000000000000000000000000000000000F6 -S3156003416000000000000000000000000000000000E6 -S3156003417000000000000000000000000000000000D6 -S3156003418000000000000000000000000000000000C6 -S3156003419000000000000000000000000000000000B6 -S315600341A000000000000000000000000000000000A6 -S315600341B00000000000000000000000000000000096 -S315600341C00000000000000000000000000000000086 -S315600341D00000000000000000000000000000000076 -S315600341E00000000000000000000000000000000066 -S315600341F00000000000000000000000000000000056 -S315600342000000000000000000000000000000000045 -S315600342100000000000000000000000000000000035 -S315600342200000000000000000000000000000000025 -S315600342300000000000000000000000000000000015 -S315600342400000000000000000000000000000000005 -S3156003425000000000000000000000000000000000F5 -S3156003426000000000000000000000000000000000E5 -S3156003427000000000000000000000000000000000D5 -S3156003428000000000000000000000000000000000C5 -S3156003429000000000000000000000000000000000B5 -S315600342A000000000000000000000000000000000A5 -S315600342B00000000000000000000000000000000095 -S315600342C00000000000000000000000000000000085 -S315600342D00000000000000000000000000000000075 -S315600342E00000000000000000000000000000000065 -S315600342F00000000000000000000000000000000055 -S315600343000000000000000000000000000000000044 -S315600343100000000000000000000000000000000034 -S315600343200000000000000000000000000000000024 -S315600343300000000000000000000000000000000014 -S315600343400000000000000000000000000000000004 -S3156003435000000000000000000000000000000000F4 -S3156003436000000000000000000000000000000000E4 -S3156003437000000000000000000000000000000000D4 -S3156003438000000000000000000000000000000000C4 -S3156003439000000000000000000000000000000000B4 -S315600343A000000000000000000000000000000000A4 -S315600343B00000000000000000000000000000000094 -S315600343C00000000000000000000000000000000084 -S315600343D00000000000000000000000000000000074 -S315600343E00000000000000000000000000000000064 -S315600343F00000000000000000000000000000000054 -S315600344000000000000000000000000000000000043 -S315600344100000000000000000000000000000000033 -S315600344200000000000000000000000000000000023 -S315600344300000000000000000000000000000000013 -S315600344400000000000000000000000000000000003 -S3156003445000000000000000000000000000000000F3 -S3156003446000000000000000000000000000000000E3 -S3156003447000000000000000000000000000000000D3 -S3156003448000000000000000000000000000000000C3 -S3156003449000000000000000000000000000000000B3 -S315600344A000000000000000000000000000000000A3 -S315600344B00000000000000000000000000000000093 -S315600344C00000000000000000000000000000000083 -S315600344D00000000000000000000000000000000073 -S315600344E00000000000000000000000000000000063 -S315600344F00000000000000000000000000000000053 -S315600345000000000000000000000000000000000042 -S315600345100000000000000000000000000000000032 -S315600345200000000000000000000000000000000022 -S315600345300000000000000000000000000000000012 -S315600345400000000000000000000000000000000002 -S3156003455000000000000000000000000000000000F2 -S3156003456000000000000000000000000000000000E2 -S3156003457000000000000000000000000000000000D2 -S3156003458000000000000000000000000000000000C2 -S3156003459000000000000000000000000000000000B2 -S315600345A000000000000000000000000000000000A2 -S315600345B00000000000000000000000000000000092 -S315600345C00000000000000000000000000000000082 -S315600345D00000000000000000000000000000000072 -S315600345E00000000000000000000000000000000062 -S315600345F00000000000000000000000000000000052 -S315600346000000000000000000000000000000000041 -S315600346100000000000000000000000000000000031 -S315600346200000000000000000000000000000000021 -S315600346300000000000000000000000000000000011 -S315600346400000000000000000000000000000000001 -S3156003465000000000000000000000000000000000F1 -S3156003466000000000000000000000000000000000E1 -S3156003467000000000000000000000000000000000D1 -S3156003468000000000000000000000000000000000C1 -S3156003469000000000000000000000000000000000B1 -S315600346A000000000000000000000000000000000A1 -S315600346B00000000000000000000000000000000091 -S315600346C00000000000000000000000000000000081 -S315600346D00000000000000000000000000000000071 -S315600346E00000000000000000000000000000000061 -S315600346F00000000000000000000000000000000051 -S315600347000000000000000000000000000000000040 -S315600347100000000000000000000000000000000030 -S315600347200000000000000000000000000000000020 -S315600347300000000000000000000000000000000010 -S315600347400000000000000000000000000000000000 -S3156003475000000000000000000000000000000000F0 -S3156003476000000000000000000000000000000000E0 -S3156003477000000000000000000000000000000000D0 -S3156003478000000000000000000000000000000000C0 -S3156003479000000000000000000000000000000000B0 -S315600347A000000000000000000000000000000000A0 -S315600347B00000000000000000000000000000000090 -S315600347C00000000000000000000000000000000080 -S315600347D00000000000000000000000000000000070 -S315600347E00000000000000000000000000000000060 -S315600347F00000000000000000000000000000000050 -S31560034800000000000000000000000000000000003F -S31560034810000000000000000000000000000000002F -S31560034820000000000000000000000000000000001F -S31560034830000000000000000000000000000000000F -S3156003484000000000000000000000000000000000FF -S3156003485000000000000000000000000000000000EF -S3156003486000000000000000000000000000000000DF -S3156003487000000000000000000000000000000000CF -S3156003488000000000000000000000000000000000BF -S3156003489000000000000000000000000000000000AF -S315600348A0000000000000000000000000000000009F -S315600348B0000000000000000000000000000000008F -S315600348C0000000000000000000000000000000007F -S315600348D0000000000000000000000000000000006F -S315600348E0000000000000000000000000000000005F -S315600348F0000000000000000000000000000000004F -S31560034900000000000000000000000000000000003E -S31560034910000000000000000000000000000000002E -S31560034920000000000000000000000000000000001E -S31560034930000000000000000000000000000000000E -S3156003494000000000000000000000000000000000FE -S3156003495000000000000000000000000000000000EE -S3156003496000000000000000000000000000000000DE -S3156003497000000000000000000000000000000000CE -S3156003498000000000000000000000000000000000BE -S3156003499000000000000000000000000000000000AE -S315600349A0000000000000000000000000000000009E -S315600349B0000000000000000000000000000000008E -S315600349C0000000000000000000000000000000007E -S315600349D0000000000000000000000000000000006E -S315600349E0000000000000000000000000000000005E -S315600349F0000000000000000000000000000000004E -S31560034A00000000000000000000000000000000003D -S31560034A10000000000000000000000000000000002D -S31560034A20000000000000000000000000000000001D -S31560034A30000000000000000000000000000000000D -S31560034A4000000000000000000000000000000000FD -S31560034A5000000000000000000000000000000000ED -S31560034A6000000000000000000000000000000000DD -S31560034A7000000000000000000000000000000000CD -S31560034A8000000000000000000000000000000000BD -S31560034A9000000000000000000000000000000000AD -S31560034AA0000000000000000000000000000000009D -S31560034AB0000000000000000000000000000000008D -S31560034AC0000000000000000000000000000000007D -S31560034AD0000000000000000000000000000000006D -S31560034AE0000000000000000000000000000000005D -S31560034AF0000000000000000000000000000000004D -S31560034B00000000000000000000000000000000003C -S31560034B10000000000000000000000000000000002C -S31560034B20000000000000000000000000000000001C -S31560034B30000000000000000000000000000000000C -S31560034B4000000000000000000000000000000000FC -S31560034B5000000000000000000000000000000000EC -S31560034B6000000000000000000000000000000000DC -S31560034B7000000000000000000000000000000000CC -S31560034B8000000000000000000000000000000000BC -S31560034B9000000000000000000000000000000000AC -S31560034BA0000000000000000000000000000000009C -S31560034BB0000000000000000000000000000000008C -S31560034BC0000000000000000000000000000000007C -S31560034BD0000000000000000000000000000000006C -S31560034BE0000000000000000000000000000000005C -S31560034BF0000000000000000000000000000000004C -S31560034C00000000000000000000000000000000003B -S31560034C10000000000000000000000000000000002B -S31560034C20000000000000000000000000000000001B -S31560034C30000000000000000000000000000000000B -S31560034C4000000000000000000000000000000000FB -S31560034C5000000000000000000000000000000000EB -S31560034C6000000000000000000000000000000000DB -S31560034C7000000000000000000000000000000000CB -S31560034C8000000000000000000000000000000000BB -S31560034C9000000000000000000000000000000000AB -S31560034CA0000000000000000000000000000000009B -S31560034CB0000000000000000000000000000000008B -S31560034CC0000000000000000000000000000000007B -S31560034CD0000000000000000000000000000000006B -S31560034CE0000000000000000000000000000000005B -S31560034CF0000000000000000000000000000000004B -S31560034D00000000000000000000000000000000003A -S31560034D10000000000000000000000000000000002A -S31560034D20000000000000000000000000000000001A -S31560034D30000000000000000000000000000000000A -S31560034D4000000000000000000000000000000000FA -S31560034D5000000000000000000000000000000000EA -S31560034D6000000000000000000000000000000000DA -S31560034D7000000000000000000000000000000000CA -S31560034D8000000000000000000000000000000000BA -S31560034D9000000000000000000000000000000000AA -S31560034DA0000000000000000000000000000000009A -S31560034DB0000000000000000000000000000000008A -S31560034DC0000000000000000000000000000000007A -S31560034DD0000000000000000000000000000000006A -S31560034DE0000000000000000000000000000000005A -S31560034DF0000000000000000000000000000000004A -S31560034E000000000000000000000000000000000039 -S31560034E100000000000000000000000000000000029 -S31560034E200000000000000000000000000000000019 -S31560034E300000000000000000000000000000000009 -S31560034E4000000000000000000000000000000000F9 -S31560034E5000000000000000000000000000000000E9 -S31560034E6000000000000000000000000000000000D9 -S31560034E7000000000000000000000000000000000C9 -S31560034E8000000000000000000000000000000000B9 -S31560034E9000000000000000000000000000000000A9 -S31560034EA00000000000000000000000000000000099 -S31560034EB00000000000000000000000000000000089 -S31560034EC00000000000000000000000000000000079 -S31560034ED00000000000000000000000000000000069 -S31560034EE00000000000000000000000000000000059 -S31560034EF00000000000000000000000000000000049 -S31560034F000000000000000000000000000000000038 -S31560034F100000000000000000000000000000000028 -S31560034F200000000000000000000000000000000018 -S31560034F300000000000000000000000000000000008 -S31560034F4000000000000000000000000000000000F8 -S31560034F5000000000000000000000000000000000E8 -S31560034F6000000000000000000000000000000000D8 -S31560034F7000000000000000000000000000000000C8 -S31560034F8000000000000000000000000000000000B8 -S31560034F9000000000000000000000000000000000A8 -S31560034FA00000000000000000000000000000000098 -S31560034FB00000000000000000000000000000000088 -S31560034FC00000000000000000000000000000000078 -S31560034FD00000000000000000000000000000000068 -S31560034FE00000000000000000000000000000000058 -S31560034FF00000000000000000000000000000000048 -S315600350000000000000000000000000000000000037 -S315600350100000000000000000000000000000000027 -S315600350200000000000000000000000000000000017 -S315600350300000000000000000000000000000000007 -S3156003504000000000000000000000000000000000F7 -S3156003505000000000000000000000000000000000E7 -S3156003506000000000000000000000000000000000D7 -S3156003507000000000000000000000000000000000C7 -S3156003508000000000000000000000000000000000B7 -S3156003509000000000000000000000000000000000A7 -S315600350A00000000000000000000000000000000097 -S315600350B00000000000000000000000000000000087 -S315600350C00000000000000000000000000000000077 -S315600350D00000000000000000000000000000000067 -S315600350E00000000000000000000000000000000057 -S315600350F00000000000000000000000000000000047 -S315600351000000000000000000000000000000000036 -S315600351100000000000000000000000000000000026 -S315600351200000000000000000000000000000000016 -S315600351300000000000000000000000000000000006 -S3156003514000000000000000000000000000000000F6 -S3156003515000000000000000000000000000000000E6 -S3156003516000000000000000000000000000000000D6 -S3156003517000000000000000000000000000000000C6 -S3156003518000000000000000000000000000000000B6 -S3156003519000000000000000000000000000000000A6 -S315600351A00000000000000000000000000000000096 -S315600351B00000000000000000000000000000000086 -S315600351C00000000000000000000000000000000076 -S315600351D00000000000000000000000000000000066 -S315600351E00000000000000000000000000000000056 -S315600351F00000000000000000000000000000000046 -S315600352000000000000000000000000000000000035 -S315600352100000000000000000000000000000000025 -S315600352200000000000000000000000000000000015 -S315600352300000000000000000000000000000000005 -S3156003524000000000000000000000000000000000F5 -S3156003525000000000000000000000000000000000E5 -S3156003526000000000000000000000000000000000D5 -S3156003527000000000000000000000000000000000C5 -S3156003528000000000000000000000000000000000B5 -S3156003529000000000000000000000000000000000A5 -S315600352A00000000000000000000000000000000095 -S315600352B00000000000000000000000000000000085 -S315600352C00000000000000000000000000000000075 -S315600352D00000000000000000000000000000000065 -S315600352E00000000000000000000000000000000055 -S315600352F00000000000000000000000000000000045 -S315600353000000000000000000000000000000000034 -S315600353100000000000000000000000000000000024 -S315600353200000000000000000000000000000000014 -S315600353300000000000000000000000000000000004 -S3156003534000000000000000000000000000000000F4 -S3156003535000000000000000000000000000000000E4 -S3156003536000000000000000000000000000000000D4 -S3156003537000000000000000000000000000000000C4 -S3156003538000000000000000000000000000000000B4 -S3156003539000000000000000000000000000000000A4 -S315600353A00000000000000000000000000000000094 -S315600353B00000000000000000000000000000000084 -S315600353C00000000000000000000000000000000074 -S315600353D00000000000000000000000000000000064 -S315600353E00000000000000000000000000000000054 -S315600353F00000000000000000000000000000000044 -S315600354000000000000000000000000000000000033 -S315600354100000000000000000000000000000000023 -S315600354200000000000000000000000000000000013 -S315600354300000000000000000000000000000000003 -S3156003544000000000000000000000000000000000F3 -S3156003545000000000000000000000000000000000E3 -S3156003546000000000000000000000000000000000D3 -S3156003547000000000000000000000000000000000C3 -S3156003548000000000000000000000000000000000B3 -S3156003549000000000000000000000000000000000A3 -S315600354A00000000000000000000000000000000093 -S315600354B00000000000000000000000000000000083 -S315600354C00000000000000000000000000000000073 -S315600354D00000000000000000000000000000000063 -S315600354E00000000000000000000000000000000053 -S315600354F00000000000000000000000000000000043 -S315600355000000000000000000000000000000000032 -S315600355100000000000000000000000000000000022 -S315600355200000000000000000000000000000000012 -S315600355300000000000000000000000000000000002 -S3156003554000000000000000000000000000000000F2 -S3156003555000000000000000000000000000000000E2 -S3156003556000000000000000000000000000000000D2 -S3156003557000000000000000000000000000000000C2 -S3156003558000000000000000000000000000000000B2 -S3156003559000000000000000000000000000000000A2 -S315600355A00000000000000000000000000000000092 -S315600355B00000000000000000000000000000000082 -S315600355C00000000000000000000000000000000072 -S315600355D00000000000000000000000000000000062 -S315600355E00000000000000000000000000000000052 -S315600355F00000000000000000000000000000000042 -S315600356000000000000000000000000000000000031 -S315600356100000000000000000000000000000000021 -S315600356200000000000000000000000000000000011 -S315600356300000000000000000000000000000000001 -S3156003564000000000000000000000000000000000F1 -S3156003565000000000000000000000000000000000E1 -S3156003566000000000000000000000000000000000D1 -S3156003567000000000000000000000000000000000C1 -S3156003568000000000000000000000000000000000B1 -S3156003569000000000000000000000000000000000A1 -S315600356A00000000000000000000000000000000091 -S315600356B00000000000000000000000000000000081 -S315600356C00000000000000000000000000000000071 -S315600356D00000000000000000000000000000000061 -S315600356E00000000000000000000000000000000051 -S315600356F00000000000000000000000000000000041 -S315600357000000000000000000000000000000000030 -S315600357100000000000000000000000000000000020 -S315600357200000000000000000000000000000000010 -S315600357300000000000000000000000000000000000 -S3156003574000000000000000000000000000000000F0 -S3156003575000000000000000000000000000000000E0 -S3156003576000000000000000000000000000000000D0 -S3156003577000000000000000000000000000000000C0 -S3156003578000000000000000000000000000000000B0 -S3156003579000000000000000000000000000000000A0 -S315600357A00000000000000000000000000000000090 -S315600357B00000000000000000000000000000000080 -S315600357C00000000000000000000000000000000070 -S315600357D00000000000000000000000000000000060 -S315600357E00000000000000000000000000000000050 -S315600357F00000000000000000000000000000000040 -S31560035800000000000000000000000000000000002F -S31560035810000000000000000000000000000000001F -S31560035820000000000000000000000000000000000F -S3156003583000000000000000000000000000000000FF -S3156003584000000000000000000000000000000000EF -S3156003585000000000000000000000000000000000DF -S3156003586000000000000000000000000000000000CF -S3156003587000000000000000000000000000000000BF -S3156003588000000000000000000000000000000000AF -S31560035890000000000000000000000000000000009F -S315600358A0000000000000000000000000000000008F -S315600358B0000000000000000000000000000000007F -S315600358C0000000000000000000000000000000006F -S315600358D0000000000000000000000000000000005F -S315600358E0000000000000000000000000000000004F -S315600358F0000000000000000000000000000000003F -S31560035900000000000000000000000000000000002E -S31560035910000000000000000000000000000000001E -S31560035920000000000000000000000000000000000E -S3156003593000000000000000000000000000000000FE -S3156003594000000000000000000000000000000000EE -S3156003595000000000000000000000000000000000DE -S3156003596000000000000000000000000000000000CE -S3156003597000000000000000000000000000000000BE -S3156003598000000000000000000000000000000000AE -S31560035990000000000000000000000000000000009E -S315600359A0000000000000000000000000000000008E -S315600359B0000000000000000000000000000000007E -S315600359C0000000000000000000000000000000006E -S315600359D0000000000000000000000000000000005E -S315600359E0000000000000000000000000000000004E -S315600359F0000000000000000000000000000000003E -S31560035A00000000000000000000000000000000002D -S31560035A10000000000000000000000000000000001D -S31560035A20000000000000000000000000000000000D -S31560035A3000000000000000000000000000000000FD -S31560035A4000000000000000000000000000000000ED -S31560035A5000000000000000000000000000000000DD -S31560035A6000000000000000000000000000000000CD -S31560035A7000000000000000000000000000000000BD -S31560035A8000000000000000000000000000000000AD -S31560035A90000000000000000000000000000000009D -S31560035AA0000000000000000000000000000000008D -S31560035AB0000000000000000000000000000000007D -S31560035AC0000000000000000000000000000000006D -S31560035AD0000000000000000000000000000000005D -S31560035AE0000000000000000000000000000000004D -S31560035AF0000000000000000000000000000000003D -S31560035B00000000000000000000000000000000002C -S31560035B10000000000000000000000000000000001C -S31560035B20000000000000000000000000000000000C -S31560035B3000000000000000000000000000000000FC -S31560035B4000000000000000000000000000000000EC -S31560035B5000000000000000000000000000000000DC -S31560035B6000000000000000000000000000000000CC -S31560035B7000000000000000000000000000000000BC -S31560035B8000000000000000000000000000000000AC -S31560035B90000000000000000000000000000000009C -S31560035BA0000000000000000000000000000000008C -S31560035BB0000000000000000000000000000000007C -S31560035BC0000000000000000000000000000000006C -S31560035BD0000000000000000000000000000000005C -S31560035BE0000000000000000000000000000000004C -S31560035BF0000000000000000000000000000000003C -S31560035C00000000000000000000000000000000002B -S31560035C10000000000000000000000000000000001B -S31560035C20000000000000000000000000000000000B -S31560035C3000000000000000000000000000000000FB -S31560035C4000000000000000000000000000000000EB -S31560035C5000000000000000000000000000000000DB -S31560035C6000000000000000000000000000000000CB -S31560035C7000000000000000000000000000000000BB -S31560035C8000000000000000000000000000000000AB -S31560035C90000000000000000000000000000000009B -S31560035CA0000000000000000000000000000000008B -S31560035CB0000000000000000000000000000000007B -S31560035CC0000000000000000000000000000000006B -S31560035CD0000000000000000000000000000000005B -S31560035CE0000000000000000000000000000000004B -S31560035CF0000000000000000000000000000000003B -S31560035D00000000000000000000000000000000002A -S31560035D10000000000000000000000000000000001A -S31560035D20000000000000000000000000000000000A -S31560035D3000000000000000000000000000000000FA -S31560035D4000000000000000000000000000000000EA -S31560035D5000000000000000000000000000000000DA -S31560035D6000000000000000000000000000000000CA -S31560035D7000000000000000000000000000000000BA -S31560035D8000000000000000000000000000000000AA -S31560035D90000000000000000000000000000000009A -S31560035DA0000000000000000000000000000000008A -S31560035DB0000000000000000000000000000000007A -S31560035DC0000000000000000000000000000000006A -S31560035DD0000000000000000000000000000000005A -S31560035DE0000000000000000000000000000000004A -S31560035DF0000000000000000000000000000000003A -S31560035E000000000000000000000000000000000029 -S31560035E100000000000000000000000000000000019 -S31560035E200000000000000000000000000000000009 -S31560035E3000000000000000000000000000000000F9 -S31560035E4000000000000000000000000000000000E9 -S31560035E5000000000000000000000000000000000D9 -S31560035E6000000000000000000000000000000000C9 -S31560035E7000000000000000000000000000000000B9 -S31560035E8000000000000000000000000000000000A9 -S31560035E900000000000000000000000000000000099 -S31560035EA00000000000000000000000000000000089 -S31560035EB00000000000000000000000000000000079 -S31560035EC00000000000000000000000000000000069 -S31560035ED00000000000000000000000000000000059 -S31560035EE00000000000000000000000000000000049 -S31560035EF00000000000000000000000000000000039 -S31560035F000000000000000000000000000000000028 -S31560035F100000000000000000000000000000000018 -S31560035F200000000000000000000000000000000008 -S31560035F3000000000000000000000000000000000F8 -S31560035F4000000000000000000000000000000000E8 -S31560035F5000000000000000000000000000000000D8 -S31560035F6000000000000000000000000000000000C8 -S31560035F7000000000000000000000000000000000B8 -S31560035F8000000000000000000000000000000000A8 -S31560035F900000000000000000000000000000000098 -S31560035FA00000000000000000000000000000000088 -S31560035FB00000000000000000000000000000000078 -S31560035FC00000000000000000000000000000000068 -S31560035FD00000000000000000000000000000000058 -S31560035FE00000000000000000000000000000000048 -S31560035FF00000000000000000000000000000000038 -S315600360000000000000000000000000000000000027 -S315600360100000000000000000000000000000000017 -S315600360200000000000000000000000000000000007 -S3156003603000000000000000000000000000000000F7 -S3156003604000000000000000000000000000000000E7 -S3156003605000000000000000000000000000000000D7 -S3156003606000000000000000000000000000000000C7 -S3156003607000000000000000000000000000000000B7 -S3156003608000000000000000000000000000000000A7 -S315600360900000000000000000000000000000000097 -S315600360A00000000000000000000000000000000087 -S315600360B00000000000000000000000000000000077 -S315600360C00000000000000000000000000000000067 -S315600360D00000000000000000000000000000000057 -S315600360E00000000000000000000000000000000047 -S315600360F00000000000000000000000000000000037 -S315600361000000000000000000000000000000000026 -S315600361100000000000000000000000000000000016 -S315600361200000000000000000000000000000000006 -S3156003613000000000000000000000000000000000F6 -S3156003614000000000000000000000000000000000E6 -S3156003615000000000000000000000000000000000D6 -S3156003616000000000000000000000000000000000C6 -S3156003617000000000000000000000000000000000B6 -S3156003618000000000000000000000000000000000A6 -S315600361900000000000000000000000000000000096 -S315600361A00000000000000000000000000000000086 -S315600361B00000000000000000000000000000000076 -S315600361C00000000000000000000000000000000066 -S315600361D00000000000000000000000000000000056 -S315600361E00000000000000000000000000000000046 -S315600361F00000000000000000000000000000000036 -S315600362000000000000000000000000000000000025 -S315600362100000000000000000000000000000000015 -S315600362200000000000000000000000000000000005 -S3156003623000000000000000000000000000000000F5 -S3156003624000000000000000000000000000000000E5 -S3156003625000000000000000000000000000000000D5 -S3156003626000000000000000000000000000000000C5 -S3156003627000000000000000000000000000000000B5 -S3156003628000000000000000000000000000000000A5 -S315600362900000000000000000000000000000000095 -S315600362A00000000000000000000000000000000085 -S315600362B00000000000000000000000000000000075 -S315600362C00000000000000000000000000000000065 -S315600362D00000000000000000000000000000000055 -S315600362E00000000000000000000000000000000045 -S315600362F00000000000000000000000000000000035 -S315600363000000000000000000000000000000000024 -S315600363100000000000000000000000000000000014 -S315600363200000000000000000000000000000000004 -S3156003633000000000000000000000000000000000F4 -S3156003634000000000000000000000000000000000E4 -S3156003635000000000000000000000000000000000D4 -S3156003636000000000000000000000000000000000C4 -S3156003637000000000000000000000000000000000B4 -S3156003638000000000000000000000000000000000A4 -S315600363900000000000000000000000000000000094 -S315600363A00000000000000000000000000000000084 -S315600363B00000000000000000000000000000000074 -S315600363C00000000000000000000000000000000064 -S315600363D00000000000000000000000000000000054 -S315600363E00000000000000000000000000000000044 -S315600363F00000000000000000000000000000000034 -S315600364000000000000000000000000000000000023 -S315600364100000000000000000000000000000000013 -S315600364200000000000000000000000000000000003 -S3156003643000000000000000000000000000000000F3 -S3156003644000000000000000000000000000000000E3 -S3156003645000000000000000000000000000000000D3 -S3156003646000000000000000000000000000000000C3 -S3156003647000000000000000000000000000000000B3 -S3156003648000000000000000000000000000000000A3 -S315600364900000000000000000000000000000000093 -S315600364A00000000000000000000000000000000083 -S315600364B00000000000000000000000000000000073 -S315600364C00000000000000000000000000000000063 -S315600364D00000000000000000000000000000000053 -S315600364E00000000000000000000000000000000043 -S315600364F00000000000000000000000000000000033 -S315600365000000000000000000000000000000000022 -S315600365100000000000000000000000000000000012 -S315600365200000000000000000000000000000000002 -S3156003653000000000000000000000000000000000F2 -S3156003654000000000000000000000000000000000E2 -S3156003655000000000000000000000000000000000D2 -S3156003656000000000000000000000000000000000C2 -S3156003657000000000000000000000000000000000B2 -S3156003658000000000000000000000000000000000A2 -S315600365900000000000000000000000000000000092 -S315600365A00000000000000000000000000000000082 -S315600365B00000000000000000000000000000000072 -S315600365C00000000000000000000000000000000062 -S315600365D00000000000000000000000000000000052 -S315600365E00000000000000000000000000000000042 -S315600365F00000000000000000000000000000000032 -S315600366000000000000000000000000000000000021 -S315600366100000000000000000000000000000000011 -S315600366200000000000000000000000000000000001 -S3156003663000000000000000000000000000000000F1 -S3156003664000000000000000000000000000000000E1 -S3156003665000000000000000000000000000000000D1 -S3156003666000000000000000000000000000000000C1 -S3156003667000000000000000000000000000000000B1 -S3156003668000000000000000000000000000000000A1 -S315600366900000000000000000000000000000000091 -S315600366A00000000000000000000000000000000081 -S315600366B00000000000000000000000000000000071 -S315600366C00000000000000000000000000000000061 -S315600366D00000000000000000000000000000000051 -S315600366E00000000000000000000000000000000041 -S315600366F00000000000000000000000000000000031 -S315600367000000000000000000000000000000000020 -S315600367100000000000000000000000000000000010 -S315600367200000000000000000000000000000000000 -S3156003673000000000000000000000000000000000F0 -S3156003674000000000000000000000000000000000E0 -S3156003675000000000000000000000000000000000D0 -S3156003676000000000000000000000000000000000C0 -S3156003677000000000000000000000000000000000B0 -S3156003678000000000000000000000000000000000A0 -S315600367900000000000000000000000000000000090 -S315600367A00000000000000000000000000000000080 -S315600367B00000000000000000000000000000000070 -S315600367C00000000000000000000000000000000060 -S315600367D00000000000000000000000000000000050 -S315600367E00000000000000000000000000000000040 -S315600367F00000000000000000000000000000000030 -S31560036800000000000000000000000000000000001F -S31560036810000000000000000000000000000000000F -S3156003682000000000000000000000000000000000FF -S3156003683000000000000000000000000000000000EF -S3156003684000000000000000000000000000000000DF -S3156003685000000000000000000000000000000000CF -S3156003686000000000000000000000000000000000BF -S3156003687000000000000000000000000000000000AF -S31560036880000000000000000000000000000000009F -S31560036890000000000000000000000000000000008F -S315600368A0000000000000000000000000000000007F -S315600368B0000000000000000000000000000000006F -S315600368C0000000000000000000000000000000005F -S315600368D0000000000000000000000000000000004F -S315600368E0000000000000000000000000000000003F -S315600368F0000000000000000000000000000000002F -S31560036900000000000000000000000000000000001E -S31560036910000000000000000000000000000000000E -S3156003692000000000000000000000000000000000FE -S3156003693000000000000000000000000000000000EE -S3156003694000000000000000000000000000000000DE -S3156003695000000000000000000000000000000000CE -S3156003696000000000000000000000000000000000BE -S3156003697000000000000000000000000000000000AE -S31560036980000000000000000000000000000000009E -S31560036990000000000000000000000000000000008E -S315600369A0000000000000000000000000000000007E -S315600369B0000000000000000000000000000000006E -S315600369C0000000000000000000000000000000005E -S315600369D0000000000000000000000000000000004E -S315600369E0000000000000000000000000000000003E -S315600369F0000000000000000000000000000000002E -S31560036A00000000000000000000000000000000001D -S31560036A10000000000000000000000000000000000D -S31560036A2000000000000000000000000000000000FD -S31560036A3000000000000000000000000000000000ED -S31560036A4000000000000000000000000000000000DD -S31560036A5000000000000000000000000000000000CD -S31560036A6000000000000000000000000000000000BD -S31560036A7000000000000000000000000000000000AD -S31560036A80000000000000000000000000000000009D -S31560036A90000000000000000000000000000000008D -S31560036AA0000000000000000000000000000000007D -S31560036AB0000000000000000000000000000000006D -S31560036AC0000000000000000000000000000000005D -S31560036AD0000000000000000000000000000000004D -S31560036AE0000000000000000000000000000000003D -S31560036AF0000000000000000000000000000000002D -S31560036B00000000000000000000000000000000001C -S31560036B10000000000000000000000000000000000C -S31560036B2000000000000000000000000000000000FC -S31560036B3000000000000000000000000000000000EC -S31560036B4000000000000000000000000000000000DC -S31560036B5000000000000000000000000000000000CC -S31560036B6000000000000000000000000000000000BC -S31560036B7000000000000000000000000000000000AC -S31560036B80000000000000000000000000000000009C -S31560036B90000000000000000000000000000000008C -S31560036BA0000000000000000000000000000000007C -S31560036BB0000000000000000000000000000000006C -S31560036BC0000000000000000000000000000000005C -S31560036BD0000000000000000000000000000000004C -S31560036BE0000000000000000000000000000000003C -S31560036BF0000000000000000000000000000000002C -S31560036C00000000000000000000000000000000001B -S31560036C10000000000000000000000000000000000B -S31560036C2000000000000000000000000000000000FB -S31560036C3000000000000000000000000000000000EB -S31560036C4000000000000000000000000000000000DB -S31560036C5000000000000000000000000000000000CB -S31560036C6000000000000000000000000000000000BB -S31560036C7000000000000000000000000000000000AB -S31560036C80000000000000000000000000000000009B -S31560036C90000000000000000000000000000000008B -S31560036CA0000000000000000000000000000000007B -S31560036CB0000000000000000000000000000000006B -S31560036CC0000000000000000000000000000000005B -S31560036CD0000000000000000000000000000000004B -S31560036CE0000000000000000000000000000000003B -S31560036CF0000000000000000000000000000000002B -S31560036D00000000000000000000000000000000001A -S31560036D10000000000000000000000000000000000A -S31560036D2000000000000000000000000000000000FA -S31560036D3000000000000000000000000000000000EA -S31560036D4000000000000000000000000000000000DA -S31560036D5000000000000000000000000000000000CA -S31560036D6000000000000000000000000000000000BA -S31560036D7000000000000000000000000000000000AA -S31560036D80000000000000000000000000000000009A -S31560036D90000000000000000000000000000000008A -S31560036DA0000000000000000000000000000000007A -S31560036DB0000000000000000000000000000000006A -S31560036DC0000000000000000000000000000000005A -S31560036DD0000000000000000000000000000000004A -S31560036DE0000000000000000000000000000000003A -S31560036DF0000000000000000000000000000000002A -S31560036E000000000000000000000000000000000019 -S31560036E100000000000000000000000000000000009 -S31560036E2000000000000000000000000000000000F9 -S31560036E3000000000000000000000000000000000E9 -S31560036E4000000000000000000000000000000000D9 -S31560036E5000000000000000000000000000000000C9 -S31560036E6000000000000000000000000000000000B9 -S31560036E7000000000000000000000000000000000A9 -S31560036E800000000000000000000000000000000099 -S31560036E900000000000000000000000000000000089 -S31560036EA00000000000000000000000000000000079 -S31560036EB00000000000000000000000000000000069 -S31560036EC00000000000000000000000000000000059 -S31560036ED00000000000000000000000000000000049 -S31560036EE00000000000000000000000000000000039 -S31560036EF00000000000000000000000000000000029 -S31560036F000000000000000000000000000000000018 -S31560036F100000000000000000000000000000000008 -S31560036F2000000000000000000000000000000000F8 -S31560036F3000000000000000000000000000000000E8 -S31560036F4000000000000000000000000000000000D8 -S31560036F5000000000000000000000000000000000C8 -S31560036F6000000000000000000000000000000000B8 -S31560036F7000000000000000000000000000000000A8 -S31560036F800000000000000000000000000000000098 -S31560036F900000000000000000000000000000000088 -S31560036FA00000000000000000000000000000000078 -S31560036FB00000000000000000000000000000000068 -S31560036FC00000000000000000000000000000000058 -S31560036FD00000000000000000000000000000000048 -S31560036FE00000000000000000000000000000000038 -S31560036FF00000000000000000000000000000000028 -S315600370000000000000000000000000000000000017 -S315600370100000000000000000000000000000000007 -S3156003702000000000000000000000000000000000F7 -S3156003703000000000000000000000000000000000E7 -S3156003704000000000000000000000000000000000D7 -S3156003705000000000000000000000000000000000C7 -S3156003706000000000000000000000000000000000B7 -S3156003707000000000000000000000000000000000A7 -S315600370800000000000000000000000000000000097 -S315600370900000000000000000000000000000000087 -S315600370A00000000000000000000000000000000077 -S315600370B00000000000000000000000000000000067 -S315600370C00000000000000000000000000000000057 -S315600370D00000000000000000000000000000000047 -S315600370E00000000000000000000000000000000037 -S315600370F00000000000000000000000000000000027 -S315600371000000000000000000000000000000000016 -S315600371100000000000000000000000000000000006 -S3156003712000000000000000000000000000000000F6 -S3156003713000000000000000000000000000000000E6 -S3156003714000000000000000000000000000000000D6 -S3156003715000000000000000000000000000000000C6 -S3156003716000000000000000000000000000000000B6 -S3156003717000000000000000000000000000000000A6 -S315600371800000000000000000000000000000000096 -S315600371900000000000000000000000000000000086 -S315600371A00000000000000000000000000000000076 -S315600371B00000000000000000000000000000000066 -S315600371C00000000000000000000000000000000056 -S315600371D00000000000000000000000000000000046 -S315600371E00000000000000000000000000000000036 -S315600371F00000000000000000000000000000000026 -S315600372000000000000000000000000000000000015 -S315600372100000000000000000000000000000000005 -S3156003722000000000000000000000000000000000F5 -S3156003723000000000000000000000000000000000E5 -S3156003724000000000000000000000000000000000D5 -S3156003725000000000000000000000000000000000C5 -S3156003726000000000000000000000000000000000B5 -S3156003727000000000000000000000000000000000A5 -S315600372800000000000000000000000000000000095 -S315600372900000000000000000000000000000000085 -S315600372A00000000000000000000000000000000075 -S315600372B00000000000000000000000000000000065 -S315600372C00000000000000000000000000000000055 -S315600372D00000000000000000000000000000000045 -S315600372E00000000000000000000000000000000035 -S315600372F00000000000000000000000000000000025 -S315600373000000000000000000000000000000000014 -S315600373100000000000000000000000000000000004 -S3156003732000000000000000000000000000000000F4 -S3156003733000000000000000000000000000000000E4 -S3156003734000000000000000000000000000000000D4 -S3156003735000000000000000000000000000000000C4 -S3156003736000000000000000000000000000000000B4 -S3156003737000000000000000000000000000000000A4 -S315600373800000000000000000000000000000000094 -S315600373900000000000000000000000000000000084 -S315600373A00000000000000000000000000000000074 -S315600373B00000000000000000000000000000000064 -S315600373C00000000000000000000000000000000054 -S315600373D00000000000000000000000000000000044 -S315600373E00000000000000000000000000000000034 -S315600373F00000000000000000000000000000000024 -S315600374000000000000000000000000000000000013 -S315600374100000000000000000000000000000000003 -S3156003742000000000000000000000000000000000F3 -S3156003743000000000000000000000000000000000E3 -S3156003744000000000000000000000000000000000D3 -S3156003745000000000000000000000000000000000C3 -S3156003746000000000000000000000000000000000B3 -S3156003747000000000000000000000000000000000A3 -S315600374800000000000000000000000000000000093 -S315600374900000000000000000000000000000000083 -S315600374A00000000000000000000000000000000073 -S315600374B00000000000000000000000000000000063 -S315600374C00000000000000000000000000000000053 -S315600374D00000000000000000000000000000000043 -S315600374E00000000000000000000000000000000033 -S315600374F00000000000000000000000000000000023 -S315600375000000000000000000000000000000000012 -S315600375100000000000000000000000000000000002 -S3156003752000000000000000000000000000000000F2 -S3156003753000000000000000000000000000000000E2 -S3156003754000000000000000000000000000000000D2 -S3156003755000000000000000000000000000000000C2 -S3156003756000000000000000000000000000000000B2 -S3156003757000000000000000000000000000000000A2 -S315600375800000000000000000000000000000000092 -S315600375900000000000000000000000000000000082 -S315600375A00000000000000000000000000000000072 -S315600375B00000000000000000000000000000000062 -S315600375C00000000000000000000000000000000052 -S315600375D00000000000000000000000000000000042 -S315600375E00000000000000000000000000000000032 -S315600375F00000000000000000000000000000000022 -S315600376000000000000000000000000000000000011 -S315600376100000000000000000000000000000000001 -S3156003762000000000000000000000000000000000F1 -S3156003763000000000000000000000000000000000E1 -S3156003764000000000000000000000000000000000D1 -S3156003765000000000000000000000000000000000C1 -S3156003766000000000000000000000000000000000B1 -S3156003767000000000000000000000000000000000A1 -S315600376800000000000000000000000000000000091 -S315600376900000000000000000000000000000000081 -S315600376A00000000000000000000000000000000071 -S315600376B00000000000000000000000000000000061 -S315600376C00000000000000000000000000000000051 -S315600376D00000000000000000000000000000000041 -S315600376E00000000000000000000000000000000031 -S315600376F00000000000000000000000000000000021 -S315600377000000000000000000000000000000000010 -S315600377100000000000000000000000000000000000 -S3156003772000000000000000000000000000000000F0 -S3156003773000000000000000000000000000000000E0 -S3156003774000000000000000000000000000000000D0 -S3156003775000000000000000000000000000000000C0 -S3156003776000000000000000000000000000000000B0 -S3156003777000000000000000000000000000000000A0 -S315600377800000000000000000000000000000000090 -S315600377900000000000000000000000000000000080 -S315600377A00000000000000000000000000000000070 -S315600377B00000000000000000000000000000000060 -S315600377C00000000000000000000000000000000050 -S315600377D00000000000000000000000000000000040 -S315600377E00000000000000000000000000000000030 -S315600377F00000000000000000000000000000000020 -S31560037800000000000000000000000000000000000F -S3156003781000000000000000000000000000000000FF -S3156003782000000000000000000000000000000000EF -S3156003783000000000000000000000000000000000DF -S3156003784000000000000000000000000000000000CF -S3156003785000000000000000000000000000000000BF -S3156003786000000000000000000000000000000000AF -S31560037870000000000000000000000000000000009F -S31560037880000000000000000000000000000000008F -S31560037890000000000000000000000000000000007F -S315600378A0000000000000000000000000000000006F -S315600378B0000000000000000000000000000000005F -S315600378C0000000000000000000000000000000004F -S315600378D0000000000000000000000000000000003F -S315600378E0000000000000000000000000000000002F -S315600378F0000000000000000000000000000000001F -S31560037900000000000000000000000000000000000E -S3156003791000000000000000000000000000000000FE -S3156003792000000000000000000000000000000000EE -S3156003793000000000000000000000000000000000DE -S3156003794000000000000000000000000000000000CE -S3156003795000000000000000000000000000000000BE -S3156003796000000000000000000000000000000000AE -S31560037970000000000000000000000000000000009E -S31560037980000000000000000000000000000000008E -S31560037990000000000000000000000000000000007E -S315600379A0000000000000000000000000000000006E -S315600379B0000000000000000000000000000000005E -S315600379C0000000000000000000000000000000004E -S315600379D0000000000000000000000000000000003E -S315600379E0000000000000000000000000000000002E -S315600379F0000000000000000000000000000000001E -S31560037A00000000000000000000000000000000000D -S31560037A1000000000000000000000000000000000FD -S31560037A2000000000000000000000000000000000ED -S31560037A3000000000000000000000000000000000DD -S31560037A4000000000000000000000000000000000CD -S31560037A5000000000000000000000000000000000BD -S31560037A6000000000000000000000000000000000AD -S31560037A70000000000000000000000000000000009D -S31560037A80000000000000000000000000000000008D -S31560037A90000000000000000000000000000000007D -S31560037AA0000000000000000000000000000000006D -S31560037AB0000000000000000000000000000000005D -S31560037AC0000000000000000000000000000000004D -S31560037AD0000000000000000000000000000000003D -S31560037AE0000000000000000000000000000000002D -S31560037AF0000000000000000000000000000000001D -S31560037B00000000000000000000000000000000000C -S31560037B1000000000000000000000000000000000FC -S31560037B2000000000000000000000000000000000EC -S31560037B3000000000000000000000000000000000DC -S31560037B4000000000000000000000000000000000CC -S31560037B5000000000000000000000000000000000BC -S31560037B6000000000000000000000000000000000AC -S31560037B70000000000000000000000000000000009C -S31560037B80000000000000000000000000000000008C -S31560037B90000000000000000000000000000000007C -S31560037BA0000000000000000000000000000000006C -S31560037BB0000000000000000000000000000000005C -S31560037BC0000000000000000000000000000000004C -S31560037BD0000000000000000000000000000000003C -S31560037BE0000000000000000000000000000000002C -S31560037BF0000000000000000000000000000000001C -S31560037C00000000000000000000000000000000000B -S31560037C1000000000000000000000000000000000FB -S31560037C2000000000000000000000000000000000EB -S31560037C3000000000000000000000000000000000DB -S31560037C4000000000000000000000000000000000CB -S31560037C5000000000000000000000000000000000BB -S31560037C6000000000000000000000000000000000AB -S31560037C70000000000000000000000000000000009B -S31560037C80000000000000000000000000000000008B -S31560037C90000000000000000000000000000000007B -S31560037CA0000000000000000000000000000000006B -S31560037CB0000000000000000000000000000000005B -S31560037CC0000000000000000000000000000000004B -S31560037CD0000000000000000000000000000000003B -S31560037CE0000000000000000000000000000000002B -S31560037CF0000000000000000000000000000000001B -S31560037D00000000000000000000000000000000000A -S31560037D1000000000000000000000000000000000FA -S31560037D2000000000000000000000000000000000EA -S31560037D3000000000000000000000000000000000DA -S31560037D4000000000000000000000000000000000CA -S31560037D5000000000000000000000000000000000BA -S31560037D6000000000000000000000000000000000AA -S31560037D70000000000000000000000000000000009A -S31560037D80000000000000000000000000000000008A -S31560037D90000000000000000000000000000000007A -S31560037DA0000000000000000000000000000000006A -S31560037DB0000000000000000000000000000000005A -S31560037DC0000000000000000000000000000000004A -S31560037DD0000000000000000000000000000000003A -S31560037DE0000000000000000000000000000000002A -S31560037DF0000000000000000000000000000000001A -S31560037E000000000000000000000000000000000009 -S31560037E1000000000000000000000000000000000F9 -S31560037E2000000000000000000000000000000000E9 -S31560037E3000000000000000000000000000000000D9 -S31560037E4000000000000000000000000000000000C9 -S31560037E5000000000000000000000000000000000B9 -S31560037E6000000000000000000000000000000000A9 -S31560037E700000000000000000000000000000000099 -S31560037E800000000000000000000000000000000089 -S31560037E900000000000000000000000000000000079 -S31560037EA00000000000000000000000000000000069 -S31560037EB00000000000000000000000000000000059 -S31560037EC00000000000000000000000000000000049 -S31560037ED00000000000000000000000000000000039 -S31560037EE00000000000000000000000000000000029 -S31560037EF00000000000000000000000000000000019 -S31560037F000000000000000000000000000000000008 -S31560037F1000000000000000000000000000000000F8 -S31560037F2000000000000000000000000000000000E8 -S31560037F3000000000000000000000000000000000D8 -S31560037F4000000000000000000000000000000000C8 -S31560037F5000000000000000000000000000000000B8 -S31560037F6000000000000000000000000000000000A8 -S31560037F700000000000000000000000000000000098 -S31560037F800000000000000000000000000000000088 -S31560037F900000000000000000000000000000000078 -S31560037FA00000000000000000000000000000000068 -S31560037FB00000000000000000000000000000000058 -S31560037FC00000000000000000000000000000000048 -S31560037FD00000000000000000000000000000000038 -S31560037FE00000000000000000000000000000000028 -S31560037FF00000000000000000000000000000000018 -S315600380000000000000000000000000000000000007 -S3156003801000000000000000000000000000000000F7 -S3156003802000000000000000000000000000000000E7 -S3156003803000000000000000000000000000000000D7 -S3156003804000000000000000000000000000000000C7 -S3156003805000000000000000000000000000000000B7 -S3156003806000000000000000000000000000000000A7 -S315600380700000000000000000000000000000000097 -S315600380800000000000000000000000000000000087 -S315600380900000000000000000000000000000000077 -S315600380A00000000000000000000000000000000067 -S315600380B00000000000000000000000000000000057 -S315600380C00000000000000000000000000000000047 -S315600380D00000000000000000000000000000000037 -S315600380E00000000000000000000000000000000027 -S315600380F00000000000000000000000000000000017 -S315600381000000000000000000000000000000000006 -S3156003811000000000000000000000000000000000F6 -S3156003812000000000000000000000000000000000E6 -S3156003813000000000000000000000000000000000D6 -S3156003814000000000000000000000000000000000C6 -S3156003815000000000000000000000000000000000B6 -S3156003816000000000000000000000000000000000A6 -S315600381700000000000000000000000000000000096 -S315600381800000000000000000000000000000000086 -S315600381900000000000000000000000000000000076 -S315600381A00000000000000000000000000000000066 -S315600381B00000000000000000000000000000000056 -S315600381C00000000000000000000000000000000046 -S315600381D00000000000000000000000000000000036 -S315600381E00000000000000000000000000000000026 -S315600381F00000000000000000000000000000000016 -S315600382000000000000000000000000000000000005 -S3156003821000000000000000000000000000000000F5 -S3156003822000000000000000000000000000000000E5 -S3156003823000000000000000000000000000000000D5 -S3156003824000000000000000000000000000000000C5 -S3156003825000000000000000000000000000000000B5 -S3156003826000000000000000000000000000000000A5 -S315600382700000000000000000000000000000000095 -S315600382800000000000000000000000000000000085 -S315600382900000000000000000000000000000000075 -S315600382A00000000000000000000000000000000065 -S315600382B00000000000000000000000000000000055 -S315600382C00000000000000000000000000000000045 -S315600382D00000000000000000000000000000000035 -S315600382E00000000000000000000000000000000025 -S315600382F00000000000000000000000000000000015 -S315600383000000000000000000000000000000000004 -S3156003831000000000000000000000000000000000F4 -S3156003832000000000000000000000000000000000E4 -S3156003833000000000000000000000000000000000D4 -S3156003834000000000000000000000000000000000C4 -S3156003835000000000000000000000000000000000B4 -S3156003836000000000000000000000000000000000A4 -S315600383700000000000000000000000000000000094 -S315600383800000000000000000000000000000000084 -S315600383900000000000000000000000000000000074 -S315600383A00000000000000000000000000000000064 -S315600383B00000000000000000000000000000000054 -S315600383C00000000000000000000000000000000044 -S315600383D00000000000000000000000000000000034 -S315600383E00000000000000000000000000000000024 -S315600383F00000000000000000000000000000000014 -S315600384000000000000000000000000000000000003 -S3156003841000000000000000000000000000000000F3 -S3156003842000000000000000000000000000000000E3 -S3156003843000000000000000000000000000000000D3 -S3156003844000000000000000000000000000000000C3 -S3156003845000000000000000000000000000000000B3 -S3156003846000000000000000000000000000000000A3 -S315600384700000000000000000000000000000000093 -S315600384800000000000000000000000000000000083 -S315600384900000000000000000000000000000000073 -S315600384A00000000000000000000000000000000063 -S315600384B00000000000000000000000000000000053 -S315600384C00000000000000000000000000000000043 -S315600384D00000000000000000000000000000000033 -S315600384E00000000000000000000000000000000023 -S315600384F00000000000000000000000000000000013 -S315600385000000000000000000000000000000000002 -S3156003851000000000000000000000000000000000F2 -S3156003852000000000000000000000000000000000E2 -S3156003853000000000000000000000000000000000D2 -S3156003854000000000000000000000000000000000C2 -S3156003855000000000000000000000000000000000B2 -S3156003856000000000000000000000000000000000A2 -S315600385700000000000000000000000000000000092 -S315600385800000000000000000000000000000000082 -S315600385900000000000000000000000000000000072 -S315600385A00000000000000000000000000000000062 -S315600385B00000000000000000000000000000000052 -S315600385C00000000000000000000000000000000042 -S315600385D00000000000000000000000000000000032 -S315600385E00000000000000000000000000000000022 -S315600385F00000000000000000000000000000000012 -S315600386000000000000000000000000000000000001 -S3156003861000000000000000000000000000000000F1 -S3156003862000000000000000000000000000000000E1 -S3156003863000000000000000000000000000000000D1 -S3156003864000000000000000000000000000000000C1 -S3156003865000000000000000000000000000000000B1 -S3156003866000000000000000000000000000000000A1 -S315600386700000000000000000000000000000000091 -S315600386800000000000000000000000000000000081 -S315600386900000000000000000000000000000000071 -S315600386A00000000000000000000000000000000061 -S315600386B00000000000000000000000000000000051 -S315600386C00000000000000000000000000000000041 -S315600386D00000000000000000000000000000000031 -S315600386E00000000000000000000000000000000021 -S315600386F00000000000000000000000000000000011 -S315600387000000000000000000000000000000000000 -S3156003871000000000000000000000000000000000F0 -S3156003872000000000000000000000000000000000E0 -S3156003873000000000000000000000000000000000D0 -S3156003874000000000000000000000000000000000C0 -S3156003875000000000000000000000000000000000B0 -S3156003876000000000000000000000000000000000A0 -S315600387700000000000000000000000000000000090 -S315600387800000000000000000000000000000000080 -S315600387900000000000000000000000000000000070 -S315600387A00000000000000000000000000000000060 -S315600387B00000000000000000000000000000000050 -S315600387C00000000000000000000000000000000040 -S315600387D00000000000000000000000000000000030 -S315600387E00000000000000000000000000000000020 -S315600387F00000000000000000000000000000000010 -S3156003880000000000000000000000000000000000FF -S3156003881000000000000000000000000000000000EF -S3156003882000000000000000000000000000000000DF -S3156003883000000000000000000000000000000000CF -S3156003884000000000000000000000000000000000BF -S3156003885000000000000000000000000000000000AF -S31560038860000000000000000000000000000000009F -S31560038870000000000000000000000000000000008F -S31560038880000000000000000000000000000000007F -S31560038890000000000000000000000000000000006F -S315600388A0000000000000000000000000000000005F -S315600388B0000000000000000000000000000000004F -S315600388C0000000000000000000000000000000003F -S315600388D0000000000000000000000000000000002F -S315600388E0000000000000000000000000000000001F -S315600388F0000000000000000000000000000000000F -S3156003890000000000000000000000000000000000FE -S3156003891000000000000000000000000000000000EE -S3156003892000000000000000000000000000000000DE -S3156003893000000000000000000000000000000000CE -S3156003894000000000000000000000000000000000BE -S3156003895000000000000000000000000000000000AE -S31560038960000000000000000000000000000000009E -S31560038970000000000000000000000000000000008E -S31560038980000000000000000000000000000000007E -S31560038990000000000000000000000000000000006E -S315600389A0000000000000000000000000000000005E -S315600389B0000000000000000000000000000000004E -S315600389C0000000000000000000000000000000003E -S315600389D0000000000000000000000000000000002E -S315600389E0000000000000000000000000000000001E -S315600389F0000000000000000000000000000000000E -S31560038A0000000000000000000000000000000000FD -S31560038A1000000000000000000000000000000000ED -S31560038A2000000000000000000000000000000000DD -S31560038A3000000000000000000000000000000000CD -S31560038A4000000000000000000000000000000000BD -S31560038A5000000000000000000000000000000000AD -S31560038A60000000000000000000000000000000009D -S31560038A70000000000000000000000000000000008D -S31560038A80000000000000000000000000000000007D -S31560038A90000000000000000000000000000000006D -S31560038AA0000000000000000000000000000000005D -S31560038AB0000000000000000000000000000000004D -S31560038AC0000000000000000000000000000000003D -S31560038AD0000000000000000000000000000000002D -S31560038AE0000000000000000000000000000000001D -S31560038AF0000000000000000000000000000000000D -S31560038B0000000000000000000000000000000000FC -S31560038B1000000000000000000000000000000000EC -S31560038B2000000000000000000000000000000000DC -S31560038B3000000000000000000000000000000000CC -S31560038B4000000000000000000000000000000000BC -S31560038B5000000000000000000000000000000000AC -S31560038B60000000000000000000000000000000009C -S31560038B70000000000000000000000000000000008C -S31560038B80000000000000000000000000000000007C -S31560038B90000000000000000000000000000000006C -S31560038BA0000000000000000000000000000000005C -S31560038BB0000000000000000000000000000000004C -S31560038BC0000000000000000000000000000000003C -S31560038BD0000000000000000000000000000000002C -S31560038BE0000000000000000000000000000000001C -S31560038BF0000000000000000000000000000000000C -S31560038C0000000000000000000000000000000000FB -S31560038C1000000000000000000000000000000000EB -S31560038C2000000000000000000000000000000000DB -S31560038C3000000000000000000000000000000000CB -S31560038C4000000000000000000000000000000000BB -S31560038C5000000000000000000000000000000000AB -S31560038C60000000000000000000000000000000009B -S31560038C70000000000000000000000000000000008B -S31560038C80000000000000000000000000000000007B -S31560038C90000000000000000000000000000000006B -S31560038CA0000000000000000000000000000000005B -S31560038CB0000000000000000000000000000000004B -S31560038CC0000000000000000000000000000000003B -S31560038CD0000000000000000000000000000000002B -S31560038CE0000000000000000000000000000000001B -S31560038CF0000000000000000000000000000000000B -S31560038D0000000000000000000000000000000000FA -S31560038D1000000000000000000000000000000000EA -S31560038D2000000000000000000000000000000000DA -S31560038D3000000000000000000000000000000000CA -S31560038D4000000000000000000000000000000000BA -S31560038D5000000000000000000000000000000000AA -S31560038D60000000000000000000000000000000009A -S31560038D70000000000000000000000000000000008A -S31560038D80000000000000000000000000000000007A -S31560038D90000000000000000000000000000000006A -S31560038DA0000000000000000000000000000000005A -S31560038DB0000000000000000000000000000000004A -S31560038DC0000000000000000000000000000000003A -S31560038DD0000000000000000000000000000000002A -S31560038DE0000000000000000000000000000000001A -S31560038DF0000000000000000000000000000000000A -S31560038E0000000000000000000000000000000000F9 -S31560038E1000000000000000000000000000000000E9 -S31560038E2000000000000000000000000000000000D9 -S31560038E3000000000000000000000000000000000C9 -S31560038E4000000000000000000000000000000000B9 -S31560038E5000000000000000000000000000000000A9 -S31560038E600000000000000000000000000000000099 -S31560038E700000000000000000000000000000000089 -S31560038E800000000000000000000000000000000079 -S31560038E900000000000000000000000000000000069 -S31560038EA00000000000000000000000000000000059 -S31560038EB00000000000000000000000000000000049 -S31560038EC00000000000000000000000000000000039 -S31560038ED00000000000000000000000000000000029 -S31560038EE00000000000000000000000000000000019 -S31560038EF00000000000000000000000000000000009 -S31560038F0000000000000000000000000000000000F8 -S31560038F1000000000000000000000000000000000E8 -S31560038F2000000000000000000000000000000000D8 -S31560038F3000000000000000000000000000000000C8 -S31560038F4000000000000000000000000000000000B8 -S31560038F5000000000000000000000000000000000A8 -S31560038F600000000000000000000000000000000098 -S31560038F700000000000000000000000000000000088 -S31560038F800000000000000000000000000000000078 -S31560038F900000000000000000000000000000000068 -S31560038FA00000000000000000000000000000000058 -S31560038FB00000000000000000000000000000000048 -S31560038FC00000000000000000000000000000000038 -S31560038FD00000000000000000000000000000000028 -S31560038FE00000000000000000000000000000000018 -S31560038FF00000000000000000000000000000000008 -S3156003900000000000000000000000000000000000F7 -S3156003901000000000000000000000000000000000E7 -S3156003902000000000000000000000000000000000D7 -S3156003903000000000000000000000000000000000C7 -S3156003904000000000000000000000000000000000B7 -S3156003905000000000000000000000000000000000A7 -S315600390600000000000000000000000000000000097 -S315600390700000000000000000000000000000000087 -S315600390800000000000000000000000000000000077 -S315600390900000000000000000000000000000000067 -S315600390A00000000000000000000000000000000057 -S315600390B00000000000000000000000000000000047 -S315600390C00000000000000000000000000000000037 -S315600390D00000000000000000000000000000000027 -S315600390E00000000000000000000000000000000017 -S315600390F00000000000000000000000000000000007 -S3156003910000000000000000000000000000000000F6 -S3156003911000000000000000000000000000000000E6 -S3156003912000000000000000000000000000000000D6 -S3156003913000000000000000000000000000000000C6 -S3156003914000000000000000000000000000000000B6 -S3156003915000000000000000000000000000000000A6 -S315600391600000000000000000000000000000000096 -S315600391700000000000000000000000000000000086 -S315600391800000000000000000000000000000000076 -S315600391900000000000000000000000000000000066 -S315600391A00000000000000000000000000000000056 -S315600391B00000000000000000000000000000000046 -S315600391C00000000000000000000000000000000036 -S315600391D00000000000000000000000000000000026 -S315600391E00000000000000000000000000000000016 -S315600391F00000000000000000000000000000000006 -S3156003920000000000000000000000000000000000F5 -S3156003921000000000000000000000000000000000E5 -S3156003922000000000000000000000000000000000D5 -S3156003923000000000000000000000000000000000C5 -S3156003924000000000000000000000000000000000B5 -S3156003925000000000000000000000000000000000A5 -S315600392600000000000000000000000000000000095 -S315600392700000000000000000000000000000000085 -S315600392800000000000000000000000000000000075 -S315600392900000000000000000000000000000000065 -S315600392A00000000000000000000000000000000055 -S315600392B00000000000000000000000000000000045 -S315600392C00000000000000000000000000000000035 -S315600392D00000000000000000000000000000000025 -S315600392E00000000000000000000000000000000015 -S315600392F00000000000000000000000000000000005 -S3156003930000000000000000000000000000000000F4 -S3156003931000000000000000000000000000000000E4 -S3156003932000000000000000000000000000000000D4 -S3156003933000000000000000000000000000000000C4 -S3156003934000000000000000000000000000000000B4 -S3156003935000000000000000000000000000000000A4 -S315600393600000000000000000000000000000000094 -S315600393700000000000000000000000000000000084 -S315600393800000000000000000000000000000000074 -S315600393900000000000000000000000000000000064 -S315600393A00000000000000000000000000000000054 -S315600393B00000000000000000000000000000000044 -S315600393C00000000000000000000000000000000034 -S315600393D00000000000000000000000000000000024 -S315600393E00000000000000000000000000000000014 -S315600393F00000000000000000000000000000000004 -S3156003940000000000000000000000000000000000F3 -S3156003941000000000000000000000000000000000E3 -S3156003942000000000000000000000000000000000D3 -S3156003943000000000000000000000000000000000C3 -S3156003944000000000000000000000000000000000B3 -S3156003945000000000000000000000000000000000A3 -S315600394600000000000000000000000000000000093 -S315600394700000000000000000000000000000000083 -S315600394800000000000000000000000000000000073 -S315600394900000000000000000000000000000000063 -S315600394A00000000000000000000000000000000053 -S315600394B00000000000000000000000000000000043 -S315600394C00000000000000000000000000000000033 -S315600394D00000000000000000000000000000000023 -S315600394E00000000000000000000000000000000013 -S315600394F00000000000000000000000000000000003 -S3156003950000000000000000000000000000000000F2 -S3156003951000000000000000000000000000000000E2 -S3156003952000000000000000000000000000000000D2 -S3156003953000000000000000000000000000000000C2 -S3156003954000000000000000000000000000000000B2 -S3156003955000000000000000000000000000000000A2 -S315600395600000000000000000000000000000000092 -S315600395700000000000000000000000000000000082 -S315600395800000000000000000000000000000000072 -S315600395900000000000000000000000000000000062 -S315600395A00000000000000000000000000000000052 -S315600395B00000000000000000000000000000000042 -S315600395C00000000000000000000000000000000032 -S315600395D00000000000000000000000000000000022 -S315600395E00000000000000000000000000000000012 -S315600395F00000000000000000000000000000000002 -S3156003960000000000000000000000000000000000F1 -S3156003961000000000000000000000000000000000E1 -S3156003962000000000000000000000000000000000D1 -S3156003963000000000000000000000000000000000C1 -S3156003964000000000000000000000000000000000B1 -S3156003965000000000000000000000000000000000A1 -S315600396600000000000000000000000000000000091 -S315600396700000000000000000000000000000000081 -S315600396800000000000000000000000000000000071 -S315600396900000000000000000000000000000000061 -S315600396A00000000000000000000000000000000051 -S315600396B00000000000000000000000000000000041 -S315600396C00000000000000000000000000000000031 -S315600396D00000000000000000000000000000000021 -S315600396E00000000000000000000000000000000011 -S315600396F00000000000000000000000000000000001 -S3156003970000000000000000000000000000000000F0 -S3156003971000000000000000000000000000000000E0 -S3156003972000000000000000000000000000000000D0 -S3156003973000000000000000000000000000000000C0 -S3156003974000000000000000000000000000000000B0 -S3156003975000000000000000000000000000000000A0 -S315600397600000000000000000000000000000000090 -S315600397700000000000000000000000000000000080 -S315600397800000000000000000000000000000000070 -S315600397900000000000000000000000000000000060 -S315600397A00000000000000000000000000000000050 -S315600397B00000000000000000000000000000000040 -S315600397C00000000000000000000000000000000030 -S315600397D00000000000000000000000000000000020 -S315600397E00000000000000000000000000000000010 -S315600397F00000000000000000000000000000000000 -S3156003980000000000000000000000000000000000EF -S3156003981000000000000000000000000000000000DF -S3156003982000000000000000000000000000000000CF -S3156003983000000000000000000000000000000000BF -S3156003984000000000000000000000000000000000AF -S31560039850000000000000000000000000000000009F -S31560039860000000000000000000000000000000008F -S31560039870000000000000000000000000000000007F -S31560039880000000000000000000000000000000006F -S31560039890000000000000000000000000000000005F -S315600398A0000000000000000000000000000000004F -S315600398B0000000000000000000000000000000003F -S315600398C0000000000000000000000000000000002F -S315600398D0000000000000000000000000000000001F -S315600398E0000000000000000000000000000000000F -S315600398F000000000000000000000000000000000FF -S3156003990000000000000000000000000000000000EE -S3156003991000000000000000000000000000000000DE -S3156003992000000000000000000000000000000000CE -S3156003993000000000000000000000000000000000BE -S3156003994000000000000000000000000000000000AE -S31560039950000000000000000000000000000000009E -S31560039960000000000000000000000000000000008E -S31560039970000000000000000000000000000000007E -S31560039980000000000000000000000000000000006E -S31560039990000000000000000000000000000000005E -S315600399A0000000000000000000000000000000004E -S315600399B0000000000000000000000000000000003E -S315600399C0000000000000000000000000000000002E -S315600399D0000000000000000000000000000000001E -S315600399E0000000000000000000000000000000000E -S315600399F000000000000000000000000000000000FE -S31560039A0000000000000000000000000000000000ED -S31560039A1000000000000000000000000000000000DD -S31560039A2000000000000000000000000000000000CD -S31560039A3000000000000000000000000000000000BD -S31560039A4000000000000000000000000000000000AD -S31560039A50000000000000000000000000000000009D -S31560039A60000000000000000000000000000000008D -S31560039A70000000000000000000000000000000007D -S31560039A80000000000000000000000000000000006D -S31560039A90000000000000000000000000000000005D -S31560039AA0000000000000000000000000000000004D -S31560039AB0000000000000000000000000000000003D -S31560039AC0000000000000000000000000000000002D -S31560039AD0000000000000000000000000000000001D -S31560039AE0000000000000000000000000000000000D -S31560039AF000000000000000000000000000000000FD -S31560039B0000000000000000000000000000000000EC -S31560039B1000000000000000000000000000000000DC -S31560039B2000000000000000000000000000000000CC -S31560039B3000000000000000000000000000000000BC -S31560039B4000000000000000000000000000000000AC -S31560039B50000000000000000000000000000000009C -S31560039B60000000000000000000000000000000008C -S31560039B70000000000000000000000000000000007C -S31560039B80000000000000000000000000000000006C -S31560039B90000000000000000000000000000000005C -S31560039BA0000000000000000000000000000000004C -S31560039BB0000000000000000000000000000000003C -S31560039BC0000000000000000000000000000000002C -S31560039BD0000000000000000000000000000000001C -S31560039BE0000000000000000000000000000000000C -S31560039BF000000000000000000000000000000000FC -S31560039C0000000000000000000000000000000000EB -S31560039C1000000000000000000000000000000000DB -S31560039C2000000000000000000000000000000000CB -S31560039C3000000000000000000000000000000000BB -S31560039C4000000000000000000000000000000000AB -S31560039C50000000000000000000000000000000009B -S31560039C60000000000000000000000000000000008B -S31560039C70000000000000000000000000000000007B -S31560039C80000000000000000000000000000000006B -S31560039C90000000000000000000000000000000005B -S31560039CA0000000000000000000000000000000004B -S31560039CB0000000000000000000000000000000003B -S31560039CC0000000000000000000000000000000002B -S31560039CD0000000000000000000000000000000001B -S31560039CE0000000000000000000000000000000000B -S31560039CF000000000000000000000000000000000FB -S31560039D0000000000000000000000000000000000EA -S31560039D1000000000000000000000000000000000DA -S31560039D2000000000000000000000000000000000CA -S31560039D3000000000000000000000000000000000BA -S31560039D4000000000000000000000000000000000AA -S31560039D50000000000000000000000000000000009A -S31560039D60000000000000000000000000000000008A -S31560039D70000000000000000000000000000000007A -S31560039D80000000000000000000000000000000006A -S31560039D90000000000000000000000000000000005A -S31560039DA0000000000000000000000000000000004A -S31560039DB0000000000000000000000000000000003A -S31560039DC0000000000000000000000000000000002A -S31560039DD0000000000000000000000000000000001A -S31560039DE0000000000000000000000000000000000A -S31560039DF000000000000000000000000000000000FA -S31560039E0000000000000000000000000000000000E9 -S31560039E1000000000000000000000000000000000D9 -S31560039E2000000000000000000000000000000000C9 -S31560039E3000000000000000000000000000000000B9 -S31560039E4000000000000000000000000000000000A9 -S31560039E500000000000000000000000000000000099 -S31560039E600000000000000000000000000000000089 -S31560039E700000000000000000000000000000000079 -S31560039E800000000000000000000000000000000069 -S31560039E900000000000000000000000000000000059 -S31560039EA00000000000000000000000000000000049 -S31560039EB00000000000000000000000000000000039 -S31560039EC00000000000000000000000000000000029 -S31560039ED00000000000000000000000000000000019 -S31560039EE00000000000000000000000000000000009 -S31560039EF000000000000000000000000000000000F9 -S31560039F0000000000000000000000000000000000E8 -S31560039F1000000000000000000000000000000000D8 -S31560039F2000000000000000000000000000000000C8 -S31560039F3000000000000000000000000000000000B8 -S31560039F4000000000000000000000000000000000A8 -S31560039F500000000000000000000000000000000098 -S31560039F600000000000000000000000000000000088 -S31560039F700000000000000000000000000000000078 -S31560039F800000000000000000000000000000000068 -S31560039F900000000000000000000000000000000058 -S31560039FA00000000000000000000000000000000048 -S31560039FB00000000000000000000000000000000038 -S31560039FC00000000000000000000000000000000028 -S31560039FD00000000000000000000000000000000018 -S31560039FE00000000000000000000000000000000008 -S31560039FF000000000000000000000000000000000F8 -S3156003A00000000000000000000000000000000000E7 -S3156003A01000000000000000000000000000000000D7 -S3156003A02000000000000000000000000000000000C7 -S3156003A03000000000000000000000000000000000B7 -S3156003A04000000000000000000000000000000000A7 -S3156003A0500000000000000000000000000000000097 -S3156003A0600000000000000000000000000000000087 -S3156003A0700000000000000000000000000000000077 -S3156003A0800000000000000000000000000000000067 -S3156003A0900000000000000000000000000000000057 -S3156003A0A00000000000000000000000000000000047 -S3156003A0B00000000000000000000000000000000037 -S3156003A0C00000000000000000000000000000000027 -S3156003A0D00000000000000000000000000000000017 -S3156003A0E00000000000000000000000000000000007 -S3156003A0F000000000000000000000000000000000F7 -S3156003A10000000000000000000000000000000000E6 -S3156003A11000000000000000000000000000000000D6 -S3156003A12000000000000000000000000000000000C6 -S3156003A13000000000000000000000000000000000B6 -S3156003A14000000000000000000000000000000000A6 -S3156003A1500000000000000000000000000000000096 -S3156003A1600000000000000000000000000000000086 -S3156003A1700000000000000000000000000000000076 -S3156003A1800000000000000000000000000000000066 -S3156003A1900000000000000000000000000000000056 -S3156003A1A00000000000000000000000000000000046 -S3156003A1B00000000000000000000000000000000036 -S3156003A1C00000000000000000000000000000000026 -S3156003A1D00000000000000000000000000000000016 -S3156003A1E00000000000000000000000000000000006 -S3156003A1F000000000000000000000000000000000F6 -S3156003A20000000000000000000000000000000000E5 -S3156003A21000000000000000000000000000000000D5 -S3156003A22000000000000000000000000000000000C5 -S3156003A23000000000000000000000000000000000B5 -S3156003A24000000000000000000000000000000000A5 -S3156003A2500000000000000000000000000000000095 -S3156003A2600000000000000000000000000000000085 -S3156003A2700000000000000000000000000000000075 -S3156003A2800000000000000000000000000000000065 -S3156003A2900000000000000000000000000000000055 -S3156003A2A00000000000000000000000000000000045 -S3156003A2B00000000000000000000000000000000035 -S3156003A2C00000000000000000000000000000000025 -S3156003A2D00000000000000000000000000000000015 -S3156003A2E00000000000000000000000000000000005 -S3156003A2F000000000000000000000000000000000F5 -S3156003A30000000000000000000000000000000000E4 -S3156003A31000000000000000000000000000000000D4 -S3156003A32000000000000000000000000000000000C4 -S3156003A33000000000000000000000000000000000B4 -S3156003A34000000000000000000000000000000000A4 -S3156003A3500000000000000000000000000000000094 -S3156003A3600000000000000000000000000000000084 -S3156003A3700000000000000000000000000000000074 -S3156003A3800000000000000000000000000000000064 -S3156003A3900000000000000000000000000000000054 -S3156003A3A00000000000000000000000000000000044 -S3156003A3B00000000000000000000000000000000034 -S3156003A3C00000000000000000000000000000000024 -S3156003A3D00000000000000000000000000000000014 -S3156003A3E00000000000000000000000000000000004 -S3156003A3F000000000000000000000000000000000F4 -S3156003A40000000000000000000000000000000000E3 -S3156003A41000000000000000000000000000000000D3 -S3156003A42000000000000000000000000000000000C3 -S3156003A43000000000000000000000000000000000B3 -S3156003A44000000000000000000000000000000000A3 -S3156003A4500000000000000000000000000000000093 -S3156003A4600000000000000000000000000000000083 -S3156003A4700000000000000000000000000000000073 -S3156003A4800000000000000000000000000000000063 -S3156003A4900000000000000000000000000000000053 -S3156003A4A00000000000000000000000000000000043 -S3156003A4B00000000000000000000000000000000033 -S3156003A4C00000000000000000000000000000000023 -S3156003A4D00000000000000000000000000000000013 -S3156003A4E00000000000000000000000000000000003 -S3156003A4F000000000000000000000000000000000F3 -S3156003A50000000000000000000000000000000000E2 -S3156003A51000000000000000000000000000000000D2 -S3156003A52000000000000000000000000000000000C2 -S3156003A53000000000000000000000000000000000B2 -S3156003A54000000000000000000000000000000000A2 -S3156003A5500000000000000000000000000000000092 -S3156003A5600000000000000000000000000000000082 -S3156003A5700000000000000000000000000000000072 -S3156003A5800000000000000000000000000000000062 -S3156003A5900000000000000000000000000000000052 -S3156003A5A00000000000000000000000000000000042 -S3156003A5B00000000000000000000000000000000032 -S3156003A5C00000000000000000000000000000000022 -S3156003A5D00000000000000000000000000000000012 -S3156003A5E00000000000000000000000000000000002 -S3156003A5F000000000000000000000000000000000F2 -S3156003A60000000000000000000000000000000000E1 -S3156003A61000000000000000000000000000000000D1 -S3156003A62000000000000000000000000000000000C1 -S3156003A63000000000000000000000000000000000B1 -S3156003A64000000000000000000000000000000000A1 -S3156003A6500000000000000000000000000000000091 -S3156003A6600000000000000000000000000000000081 -S3156003A6700000000000000000000000000000000071 -S3156003A6800000000000000000000000000000000061 -S3156003A6900000000000000000000000000000000051 -S3156003A6A00000000000000000000000000000000041 -S3156003A6B00000000000000000000000000000000031 -S3156003A6C00000000000000000000000000000000021 -S3156003A6D00000000000000000000000000000000011 -S3156003A6E00000000000000000000000000000000001 -S3156003A6F000000000000000000000000000000000F1 -S3156003A70000000000000000000000000000000000E0 -S3156003A71000000000000000000000000000000000D0 -S3156003A72000000000000000000000000000000000C0 -S3156003A73000000000000000000000000000000000B0 -S3156003A74000000000000000000000000000000000A0 -S3156003A7500000000000000000000000000000000090 -S3156003A7600000000000000000000000000000000080 -S3156003A7700000000000000000000000000000000070 -S3156003A7800000000000000000000000000000000060 -S3156003A7900000000000000000000000000000000050 -S3156003A7A00000000000000000000000000000000040 -S3156003A7B00000000000000000000000000000000030 -S3156003A7C00000000000000000000000000000000020 -S3156003A7D00000000000000000000000000000000010 -S3156003A7E00000000000000000000000000000000000 -S3156003A7F000000000000000000000000000000000F0 -S3156003A80000000000000000000000000000000000DF -S3156003A81000000000000000000000000000000000CF -S3156003A82000000000000000000000000000000000BF -S3156003A83000000000000000000000000000000000AF -S3156003A840000000000000000000000000000000009F -S3156003A850000000000000000000000000000000008F -S3156003A860000000000000000000000000000000007F -S3156003A870000000000000000000000000000000006F -S3156003A880000000000000000000000000000000005F -S3156003A890000000000000000000000000000000004F -S3156003A8A0000000000000000000000000000000003F -S3156003A8B0000000000000000000000000000000002F -S3156003A8C0000000000000000000000000000000001F -S3156003A8D0000000000000000000000000000000000F -S3156003A8E000000000000000000000000000000000FF -S3156003A8F000000000000000000000000000000000EF -S3156003A90000000000000000000000000000000000DE -S3156003A91000000000000000000000000000000000CE -S3156003A92000000000000000000000000000000000BE -S3156003A93000000000000000000000000000000000AE -S3156003A940000000000000000000000000000000009E -S3156003A950000000000000000000000000000000008E -S3156003A960000000000000000000000000000000007E -S3156003A970000000000000000000000000000000006E -S3156003A980000000000000000000000000000000005E -S3156003A990000000000000000000000000000000004E -S3156003A9A0000000000000000000000000000000003E -S3156003A9B0000000000000000000000000000000002E -S3156003A9C0000000000000000000000000000000001E -S3156003A9D0000000000000000000000000000000000E -S3156003A9E000000000000000000000000000000000FE -S3156003A9F000000000000000000000000000000000EE -S3156003AA0000000000000000000000000000000000DD -S3156003AA1000000000000000000000000000000000CD -S3156003AA2000000000000000000000000000000000BD -S3156003AA3000000000000000000000000000000000AD -S3156003AA40000000000000000000000000000000009D -S3156003AA50000000000000000000000000000000008D -S3156003AA60000000000000000000000000000000007D -S3156003AA70000000000000000000000000000000006D -S3156003AA80000000000000000000000000000000005D -S3156003AA90000000000000000000000000000000004D -S3156003AAA0000000000000000000000000000000003D -S3156003AAB0000000000000000000000000000000002D -S3156003AAC0000000000000000000000000000000001D -S3156003AAD0000000000000000000000000000000000D -S3156003AAE000000000000000000000000000000000FD -S3156003AAF000000000000000000000000000000000ED -S3156003AB0000000000000000000000000000000000DC -S3156003AB1000000000000000000000000000000000CC -S3156003AB2000000000000000000000000000000000BC -S3156003AB3000000000000000000000000000000000AC -S3156003AB40000000000000000000000000000000009C -S3156003AB50000000000000000000000000000000008C -S3156003AB60000000000000000000000000000000007C -S3156003AB70000000000000000000000000000000006C -S3156003AB80000000000000000000000000000000005C -S3156003AB90000000000000000000000000000000004C -S3156003ABA0000000000000000000000000000000003C -S3156003ABB0000000000000000000000000000000002C -S3156003ABC0000000000000000000000000000000001C -S3156003ABD0000000000000000000000000000000000C -S3156003ABE000000000000000000000000000000000FC -S3156003ABF000000000000000000000000000000000EC -S3156003AC0000000000000000000000000000000000DB -S3156003AC1000000000000000000000000000000000CB -S3156003AC2000000000000000000000000000000000BB -S3156003AC3000000000000000000000000000000000AB -S3156003AC40000000000000000000000000000000009B -S3156003AC50000000000000000000000000000000008B -S3156003AC60000000000000000000000000000000007B -S3156003AC70000000000000000000000000000000006B -S3156003AC80000000000000000000000000000000005B -S3156003AC90000000000000000000000000000000004B -S3156003ACA0000000000000000000000000000000003B -S3156003ACB0000000000000000000000000000000002B -S3156003ACC0000000000000000000000000000000001B -S3156003ACD0000000000000000000000000000000000B -S3156003ACE000000000000000000000000000000000FB -S3156003ACF000000000000000000000000000000000EB -S3156003AD0000000000000000000000000000000000DA -S3156003AD1000000000000000000000000000000000CA -S3156003AD2000000000000000000000000000000000BA -S3156003AD3000000000000000000000000000000000AA -S3156003AD40000000000000000000000000000000009A -S3156003AD50000000000000000000000000000000008A -S3156003AD60000000000000000000000000000000007A -S3156003AD70000000000000000000000000000000006A -S3156003AD80000000000000000000000000000000005A -S3156003AD90000000000000000000000000000000004A -S3156003ADA0000000000000000000000000000000003A -S3156003ADB0000000000000000000000000000000002A -S3156003ADC0000000000000000000000000000000001A -S3156003ADD0000000000000000000000000000000000A -S3156003ADE000000000000000000000000000000000FA -S3156003ADF000000000000000000000000000000000EA -S3156003AE0000000000000000000000000000000000D9 -S3156003AE1000000000000000000000000000000000C9 -S3156003AE2000000000000000000000000000000000B9 -S3156003AE3000000000000000000000000000000000A9 -S3156003AE400000000000000000000000000000000099 -S3156003AE500000000000000000000000000000000089 -S3156003AE600000000000000000000000000000000079 -S3156003AE700000000000000000000000000000000069 -S3156003AE800000000000000000000000000000000059 -S3156003AE900000000000000000000000000000000049 -S3156003AEA00000000000000000000000000000000039 -S3156003AEB00000000000000000000000000000000029 -S3156003AEC00000000000000000000000000000000019 -S3156003AED00000000000000000000000000000000009 -S3156003AEE000000000000000000000000000000000F9 -S3156003AEF000000000000000000000000000000000E9 -S3156003AF0000000000000000000000000000000000D8 -S3156003AF1000000000000000000000000000000000C8 -S3156003AF2000000000000000000000000000000000B8 -S3156003AF3000000000000000000000000000000000A8 -S3156003AF400000000000000000000000000000000098 -S3156003AF500000000000000000000000000000000088 -S3156003AF600000000000000000000000000000000078 -S3156003AF700000000000000000000000000000000068 -S3156003AF800000000000000000000000000000000058 -S3156003AF900000000000000000000000000000000048 -S3156003AFA00000000000000000000000000000000038 -S3156003AFB00000000000000000000000000000000028 -S3156003AFC00000000000000000000000000000000018 -S3156003AFD00000000000000000000000000000000008 -S3156003AFE000000000000000000000000000000000F8 -S3156003AFF000000000000000000000000000000000E8 -S3156003B00000000000000000000000000000000000D7 -S3156003B01000000000000000000000000000000000C7 -S3156003B02000000000000000000000000000000000B7 -S3156003B03000000000000000000000000000000000A7 -S3156003B0400000000000000000000000000000000097 -S3156003B0500000000000000000000000000000000087 -S3156003B0600000000000000000000000000000000077 -S3156003B0700000000000000000000000000000000067 -S3156003B0800000000000000000000000000000000057 -S3156003B0900000000000000000000000000000000047 -S3156003B0A00000000000000000000000000000000037 -S3156003B0B00000000000000000000000000000000027 -S3156003B0C00000000000000000000000000000000017 -S3156003B0D00000000000000000000000000000000007 -S3156003B0E000000000000000000000000000000000F7 -S3156003B0F000000000000000000000000000000000E7 -S3156003B10000000000000000000000000000000000D6 -S3156003B11000000000000000000000000000000000C6 -S3156003B12000000000000000000000000000000000B6 -S3156003B13000000000000000000000000000000000A6 -S3156003B1400000000000000000000000000000000096 -S3156003B1500000000000000000000000000000000086 -S3156003B1600000000000000000000000000000000076 -S3156003B1700000000000000000000000000000000066 -S3156003B1800000000000000000000000000000000056 -S3156003B1900000000000000000000000000000000046 -S3156003B1A00000000000000000000000000000000036 -S3156003B1B00000000000000000000000000000000026 -S3156003B1C00000000000000000000000000000000016 -S3156003B1D00000000000000000000000000000000006 -S3156003B1E000000000000000000000000000000000F6 -S3156003B1F000000000000000000000000000000000E6 -S3156003B20000000000000000000000000000000000D5 -S3156003B21000000000000000000000000000000000C5 -S3156003B22000000000000000000000000000000000B5 -S3156003B23000000000000000000000000000000000A5 -S3156003B2400000000000000000000000000000000095 -S3156003B2500000000000000000000000000000000085 -S3156003B2600000000000000000000000000000000075 -S3156003B2700000000000000000000000000000000065 -S3156003B2800000000000000000000000000000000055 -S3156003B2900000000000000000000000000000000045 -S3156003B2A00000000000000000000000000000000035 -S3156003B2B00000000000000000000000000000000025 -S3156003B2C00000000000000000000000000000000015 -S3156003B2D00000000000000000000000000000000005 -S3156003B2E000000000000000000000000000000000F5 -S3156003B2F000000000000000000000000000000000E5 -S3156003B30000000000000000000000000000000000D4 -S3156003B31000000000000000000000000000000000C4 -S3156003B32000000000000000000000000000000000B4 -S3156003B33000000000000000000000000000000000A4 -S3156003B3400000000000000000000000000000000094 -S3156003B3500000000000000000000000000000000084 -S3156003B3600000000000000000000000000000000074 -S3156003B3700000000000000000000000000000000064 -S3156003B3800000000000000000000000000000000054 -S3156003B3900000000000000000000000000000000044 -S3156003B3A00000000000000000000000000000000034 -S3156003B3B00000000000000000000000000000000024 -S3156003B3C00000000000000000000000000000000014 -S3156003B3D00000000000000000000000000000000004 -S3156003B3E000000000000000000000000000000000F4 -S3156003B3F000000000000000000000000000000000E4 -S3156003B40000000000000000000000000000000000D3 -S3156003B41000000000000000000000000000000000C3 -S3156003B42000000000000000000000000000000000B3 -S3156003B43000000000000000000000000000000000A3 -S3156003B4400000000000000000000000000000000093 -S3156003B4500000000000000000000000000000000083 -S3156003B4600000000000000000000000000000000073 -S3156003B4700000000000000000000000000000000063 -S3156003B4800000000000000000000000000000000053 -S3156003B4900000000000000000000000000000000043 -S3156003B4A00000000000000000000000000000000033 -S3156003B4B00000000000000000000000000000000023 -S3156003B4C00000000000000000000000000000000013 -S3156003B4D00000000000000000000000000000000003 -S3156003B4E000000000000000000000000000000000F3 -S3156003B4F000000000000000000000000000000000E3 -S3156003B50000000000000000000000000000000000D2 -S3156003B51000000000000000000000000000000000C2 -S3156003B52000000000000000000000000000000000B2 -S3156003B53000000000000000000000000000000000A2 -S3156003B5400000000000000000000000000000000092 -S3156003B5500000000000000000000000000000000082 -S3156003B5600000000000000000000000000000000072 -S3156003B5700000000000000000000000000000000062 -S3156003B5800000000000000000000000000000000052 -S3156003B5900000000000000000000000000000000042 -S3156003B5A00000000000000000000000000000000032 -S3156003B5B00000000000000000000000000000000022 -S3156003B5C00000000000000000000000000000000012 -S3156003B5D00000000000000000000000000000000002 -S3156003B5E000000000000000000000000000000000F2 -S3156003B5F000000000000000000000000000000000E2 -S3156003B60000000000000000000000000000000000D1 -S3156003B61000000000000000000000000000000000C1 -S3156003B62000000000000000000000000000000000B1 -S3156003B63000000000000000000000000000000000A1 -S3156003B6400000000000000000000000000000000091 -S3156003B6500000000000000000000000000000000081 -S3156003B6600000000000000000000000000000000071 -S3156003B6700000000000000000000000000000000061 -S3156003B6800000000000000000000000000000000051 -S3156003B6900000000000000000000000000000000041 -S3156003B6A00000000000000000000000000000000031 -S3156003B6B00000000000000000000000000000000021 -S3156003B6C00000000000000000000000000000000011 -S3156003B6D00000000000000000000000000000000001 -S3156003B6E000000000000000000000000000000000F1 -S3156003B6F000000000000000000000000000000000E1 -S3156003B70000000000000000000000000000000000D0 -S3156003B71000000000000000000000000000000000C0 -S3156003B72000000000000000000000000000000000B0 -S3156003B73000000000000000000000000000000000A0 -S3156003B7400000000000000000000000000000000090 -S3156003B7500000000000000000000000000000000080 -S3156003B7600000000000000000000000000000000070 -S3156003B7700000000000000000000000000000000060 -S3156003B7800000000000000000000000000000000050 -S3156003B7900000000000000000000000000000000040 -S3156003B7A00000000000000000000000000000000030 -S3156003B7B00000000000000000000000000000000020 -S3156003B7C00000000000000000000000000000000010 -S3156003B7D00000000000000000000000000000000000 -S3156003B7E000000000000000000000000000000000F0 -S3156003B7F000000000000000000000000000000000E0 -S3156003B80000000000000000000000000000000000CF -S3156003B81000000000000000000000000000000000BF -S3156003B82000000000000000000000000000000000AF -S3156003B830000000000000000000000000000000009F -S3156003B840000000000000000000000000000000008F -S3156003B850000000000000000000000000000000007F -S3156003B860000000000000000000000000000000006F -S3156003B870000000000000000000000000000000005F -S3156003B880000000000000000000000000000000004F -S3156003B890000000000000000000000000000000003F -S3156003B8A0000000000000000000000000000000002F -S3156003B8B0000000000000000000000000000000001F -S3156003B8C0000000000000000000000000000000000F -S3156003B8D000000000000000000000000000000000FF -S3156003B8E000000000000000000000000000000000EF -S3156003B8F000000000000000000000000000000000DF -S3156003B90000000000000000000000000000000000CE -S3156003B91000000000000000000000000000000000BE -S3156003B92000000000000000000000000000000000AE -S3156003B930000000000000000000000000000000009E -S3156003B940000000000000000000000000000000008E -S3156003B950000000000000000000000000000000007E -S3156003B960000000000000000000000000000000006E -S3156003B970000000000000000000000000000000005E -S3156003B980000000000000000000000000000000004E -S3156003B990000000000000000000000000000000003E -S3156003B9A0000000000000000000000000000000002E -S3156003B9B0000000000000000000000000000000001E -S3156003B9C0000000000000000000000000000000000E -S3156003B9D000000000000000000000000000000000FE -S3156003B9E000000000000000000000000000000000EE -S3156003B9F000000000000000000000000000000000DE -S3156003BA0000000000000000000000000000000000CD -S3156003BA1000000000000000000000000000000000BD -S3156003BA2000000000000000000000000000000000AD -S3156003BA30000000000000000000000000000000009D -S3156003BA40000000000000000000000000000000008D -S3156003BA50000000000000000000000000000000007D -S3156003BA60000000000000000000000000000000006D -S3156003BA70000000000000000000000000000000005D -S3156003BA80000000000000000000000000000000004D -S3156003BA90000000000000000000000000000000003D -S3156003BAA0000000000000000000000000000000002D -S3156003BAB0000000000000000000000000000000001D -S3156003BAC0000000000000000000000000000000000D -S3156003BAD000000000000000000000000000000000FD -S3156003BAE000000000000000000000000000000000ED -S3156003BAF000000000000000000000000000000000DD -S3156003BB0000000000000000000000000000000000CC -S3156003BB1000000000000000000000000000000000BC -S3156003BB2000000000000000000000000000000000AC -S3156003BB30000000000000000000000000000000009C -S3156003BB40000000000000000000000000000000008C -S3156003BB50000000000000000000000000000000007C -S3156003BB60000000000000000000000000000000006C -S3156003BB70000000000000000000000000000000005C -S3156003BB80000000000000000000000000000000004C -S3156003BB90000000000000000000000000000000003C -S3156003BBA0000000000000000000000000000000002C -S3156003BBB0000000000000000000000000000000001C -S3156003BBC0000000000000000000000000000000000C -S3156003BBD000000000000000000000000000000000FC -S3156003BBE000000000000000000000000000000000EC -S3156003BBF000000000000000000000000000000000DC -S3156003BC0000000000000000000000000000000000CB -S3156003BC1000000000000000000000000000000000BB -S3156003BC2000000000000000000000000000000000AB -S3156003BC30000000000000000000000000000000009B -S3156003BC40000000000000000000000000000000008B -S3156003BC50000000000000000000000000000000007B -S3156003BC60000000000000000000000000000000006B -S3156003BC70000000000000000000000000000000005B -S3156003BC80000000000000000000000000000000004B -S3156003BC90000000000000000000000000000000003B -S3156003BCA0000000000000000000000000000000002B -S3156003BCB0000000000000000000000000000000001B -S3156003BCC0000000000000000000000000000000000B -S3156003BCD000000000000000000000000000000000FB -S3156003BCE000000000000000000000000000000000EB -S3156003BCF000000000000000000000000000000000DB -S3156003BD0000000000000000000000000000000000CA -S3156003BD1000000000000000000000000000000000BA -S3156003BD2000000000000000000000000000000000AA -S3156003BD30000000000000000000000000000000009A -S3156003BD40000000000000000000000000000000008A -S3156003BD50000000000000000000000000000000007A -S3156003BD60000000000000000000000000000000006A -S3156003BD70000000000000000000000000000000005A -S3156003BD80000000000000000000000000000000004A -S3156003BD90000000000000000000000000000000003A -S3156003BDA0000000000000000000000000000000002A -S3156003BDB0000000000000000000000000000000001A -S3156003BDC0000000000000000000000000000000000A -S3156003BDD000000000000000000000000000000000FA -S3156003BDE000000000000000000000000000000000EA -S3156003BDF000000000000000000000000000000000DA -S3156003BE0000000000000000000000000000000000C9 -S3156003BE1000000000000000000000000000000000B9 -S3156003BE2000000000000000000000000000000000A9 -S3156003BE300000000000000000000000000000000099 -S3156003BE400000000000000000000000000000000089 -S3156003BE500000000000000000000000000000000079 -S3156003BE600000000000000000000000000000000069 -S3156003BE700000000000000000000000000000000059 -S3156003BE800000000000000000000000000000000049 -S3156003BE900000000000000000000000000000000039 -S3156003BEA00000000000000000000000000000000029 -S3156003BEB00000000000000000000000000000000019 -S3156003BEC00000000000000000000000000000000009 -S3156003BED000000000000000000000000000000000F9 -S3156003BEE000000000000000000000000000000000E9 -S3156003BEF000000000000000000000000000000000D9 -S3156003BF0000000000000000000000000000000000C8 -S3156003BF1000000000000000000000000000000000B8 -S3156003BF2000000000000000000000000000000000A8 -S3156003BF300000000000000000000000000000000098 -S3156003BF400000000000000000000000000000000088 -S3156003BF500000000000000000000000000000000078 -S3156003BF600000000000000000000000000000000068 -S3156003BF700000000000000000000000000000000058 -S3156003BF800000000000000000000000000000000048 -S3156003BF900000000000000000000000000000000038 -S3156003BFA00000000000000000000000000000000028 -S3156003BFB00000000000000000000000000000000018 -S3156003BFC00000000000000000000000000000000008 -S3156003BFD000000000000000000000000000000000F8 -S3156003BFE000000000000000000000000000000000E8 -S3156003BFF000000000000000000000000000000000D8 -S3156003C00000000000000000000000000000000000C7 -S3156003C01000000000000000000000000000000000B7 -S3156003C02000000000000000000000000000000000A7 -S3156003C0300000000000000000000000000000000097 -S3156003C0400000000000000000000000000000000087 -S3156003C0500000000000000000000000000000000077 -S3156003C0600000000000000000000000000000000067 -S3156003C0700000000000000000000000000000000057 -S3156003C0800000000000000000000000000000000047 -S3156003C0900000000000000000000000000000000037 -S3156003C0A00000000000000000000000000000000027 -S3156003C0B00000000000000000000000000000000017 -S3156003C0C00000000000000000000000000000000007 -S3156003C0D000000000000000000000000000000000F7 -S3156003C0E000000000000000000000000000000000E7 -S3156003C0F000000000000000000000000000000000D7 -S3156003C10000000000000000000000000000000000C6 -S3156003C11000000000000000000000000000000000B6 -S3156003C12000000000000000000000000000000000A6 -S3156003C1300000000000000000000000000000000096 -S3156003C1400000000000000000000000000000000086 -S3156003C1500000000000000000000000000000000076 -S3156003C1600000000000000000000000000000000066 -S3156003C1700000000000000000000000000000000056 -S3156003C1800000000000000000000000000000000046 -S3156003C1900000000000000000000000000000000036 -S3156003C1A00000000000000000000000000000000026 -S3156003C1B00000000000000000000000000000000016 -S3156003C1C00000000000000000000000000000000006 -S3156003C1D000000000000000000000000000000000F6 -S3156003C1E000000000000000000000000000000000E6 -S3156003C1F000000000000000000000000000000000D6 -S3156003C20000000000000000000000000000000000C5 -S3156003C21000000000000000000000000000000000B5 -S3156003C22000000000000000000000000000000000A5 -S3156003C2300000000000000000000000000000000095 -S3156003C2400000000000000000000000000000000085 -S3156003C2500000000000000000000000000000000075 -S3156003C2600000000000000000000000000000000065 -S3156003C2700000000000000000000000000000000055 -S3156003C2800000000000000000000000000000000045 -S3156003C2900000000000000000000000000000000035 -S3156003C2A00000000000000000000000000000000025 -S3156003C2B00000000000000000000000000000000015 -S3156003C2C00000000000000000000000000000000005 -S3156003C2D000000000000000000000000000000000F5 -S3156003C2E000000000000000000000000000000000E5 -S3156003C2F000000000000000000000000000000000D5 -S3156003C30000000000000000000000000000000000C4 -S3156003C31000000000000000000000000000000000B4 -S3156003C32000000000000000000000000000000000A4 -S3156003C3300000000000000000000000000000000094 -S3156003C3400000000000000000000000000000000084 -S3156003C3500000000000000000000000000000000074 -S3156003C3600000000000000000000000000000000064 -S3156003C3700000000000000000000000000000000054 -S3156003C3800000000000000000000000000000000044 -S3156003C3900000000000000000000000000000000034 -S3156003C3A00000000000000000000000000000000024 -S3156003C3B00000000000000000000000000000000014 -S3156003C3C00000000000000000000000000000000004 -S3156003C3D000000000000000000000000000000000F4 -S3156003C3E000000000000000000000000000000000E4 -S3156003C3F000000000000000000000000000000000D4 -S3156003C40000000000000000000000000000000000C3 -S3156003C41000000000000000000000000000000000B3 -S3156003C42000000000000000000000000000000000A3 -S3156003C4300000000000000000000000000000000093 -S3156003C4400000000000000000000000000000000083 -S3156003C4500000000000000000000000000000000073 -S3156003C4600000000000000000000000000000000063 -S3156003C4700000000000000000000000000000000053 -S3156003C4800000000000000000000000000000000043 -S3156003C4900000000000000000000000000000000033 -S3156003C4A00000000000000000000000000000000023 -S3156003C4B00000000000000000000000000000000013 -S3156003C4C00000000000000000000000000000000003 -S3156003C4D000000000000000000000000000000000F3 -S3156003C4E000000000000000000000000000000000E3 -S3156003C4F000000000000000000000000000000000D3 -S3156003C50000000000000000000000000000000000C2 -S3156003C51000000000000000000000000000000000B2 -S3156003C52000000000000000000000000000000000A2 -S3156003C5300000000000000000000000000000000092 -S3156003C5400000000000000000000000000000000082 -S3156003C5500000000000000000000000000000000072 -S3156003C5600000000000000000000000000000000062 -S3156003C5700000000000000000000000000000000052 -S3156003C5800000000000000000000000000000000042 -S3156003C5900000000000000000000000000000000032 -S3156003C5A00000000000000000000000000000000022 -S3156003C5B00000000000000000000000000000000012 -S3156003C5C00000000000000000000000000000000002 -S3156003C5D000000000000000000000000000000000F2 -S3156003C5E000000000000000000000000000000000E2 -S3156003C5F000000000000000000000000000000000D2 -S3156003C60000000000000000000000000000000000C1 -S3156003C61000000000000000000000000000000000B1 -S3156003C62000000000000000000000000000000000A1 -S3156003C6300000000000000000000000000000000091 -S3156003C6400000000000000000000000000000000081 -S3156003C6500000000000000000000000000000000071 -S3156003C6600000000000000000000000000000000061 -S3156003C6700000000000000000000000000000000051 -S3156003C6800000000000000000000000000000000041 -S3156003C6900000000000000000000000000000000031 -S3156003C6A00000000000000000000000000000000021 -S3156003C6B00000000000000000000000000000000011 -S3156003C6C00000000000000000000000000000000001 -S3156003C6D000000000000000000000000000000000F1 -S3156003C6E000000000000000000000000000000000E1 -S3156003C6F000000000000000000000000000000000D1 -S3156003C70000000000000000000000000000000000C0 -S3156003C71000000000000000000000000000000000B0 -S3156003C72000000000000000000000000000000000A0 -S3156003C7300000000000000000000000000000000090 -S3156003C7400000000000000000000000000000000080 -S3156003C7500000000000000000000000000000000070 -S3156003C7600000000000000000000000000000000060 -S3156003C7700000000000000000000000000000000050 -S3156003C7800000000000000000000000000000000040 -S3156003C7900000000000000000000000000000000030 -S3156003C7A00000000000000000000000000000000020 -S3156003C7B00000000000000000000000000000000010 -S3156003C7C00000000000000000000000000000000000 -S3156003C7D000000000000000000000000000000000F0 -S3156003C7E000000000000000000000000000000000E0 -S3156003C7F000000000000000000000000000000000D0 -S3156003C80000000000000000000000000000000000BF -S3156003C81000000000000000000000000000000000AF -S3156003C820000000000000000000000000000000009F -S3156003C830000000000000000000000000000000008F -S3156003C840000000000000000000000000000000007F -S3156003C850000000000000000000000000000000006F -S3156003C860000000000000000000000000000000005F -S3156003C870000000000000000000000000000000004F -S3156003C880000000000000000000000000000000003F -S3156003C890000000000000000000000000000000002F -S3156003C8A0000000000000000000000000000000001F -S3156003C8B0000000000000000000000000000000000F -S3156003C8C000000000000000000000000000000000FF -S3156003C8D000000000000000000000000000000000EF -S3156003C8E000000000000000000000000000000000DF -S3156003C8F000000000000000000000000000000000CF -S3156003C90000000000000000000000000000000000BE -S3156003C91000000000000000000000000000000000AE -S3156003C920000000000000000000000000000000009E -S3156003C930000000000000000000000000000000008E -S3156003C940000000000000000000000000000000007E -S3156003C950000000000000000000000000000000006E -S3156003C960000000000000000000000000000000005E -S3156003C970000000000000000000000000000000004E -S3156003C980000000000000000000000000000000003E -S3156003C990000000000000000000000000000000002E -S3156003C9A0000000000000000000000000000000001E -S3156003C9B0000000000000000000000000000000000E -S3156003C9C000000000000000000000000000000000FE -S3156003C9D000000000000000000000000000000000EE -S3156003C9E000000000000000000000000000000000DE -S3156003C9F000000000000000000000000000000000CE -S3156003CA0000000000000000000000000000000000BD -S3156003CA1000000000000000000000000000000000AD -S3156003CA20000000000000000000000000000000009D -S3156003CA30000000000000000000000000000000008D -S3156003CA40000000000000000000000000000000007D -S3156003CA50000000000000000000000000000000006D -S3156003CA60000000000000000000000000000000005D -S3156003CA70000000000000000000000000000000004D -S3156003CA80000000000000000000000000000000003D -S3156003CA90000000000000000000000000000000002D -S3156003CAA0000000000000000000000000000000001D -S3156003CAB0000000000000000000000000000000000D -S3156003CAC000000000000000000000000000000000FD -S3156003CAD000000000000000000000000000000000ED -S3156003CAE000000000000000000000000000000000DD -S3156003CAF000000000000000000000000000000000CD -S3156003CB0000000000000000000000000000000000BC -S3156003CB1000000000000000000000000000000000AC -S3156003CB20000000000000000000000000000000009C -S3156003CB30000000000000000000000000000000008C -S3156003CB40000000000000000000000000000000007C -S3156003CB50000000000000000000000000000000006C -S3156003CB60000000000000000000000000000000005C -S3156003CB70000000000000000000000000000000004C -S3156003CB80000000000000000000000000000000003C -S3156003CB90000000000000000000000000000000002C -S3156003CBA0000000000000000000000000000000001C -S3156003CBB0000000000000000000000000000000000C -S3156003CBC000000000000000000000000000000000FC -S3156003CBD000000000000000000000000000000000EC -S3156003CBE000000000000000000000000000000000DC -S3156003CBF000000000000000000000000000000000CC -S3156003CC0000000000000000000000000000000000BB -S3156003CC1000000000000000000000000000000000AB -S3156003CC20000000000000000000000000000000009B -S3156003CC30000000000000000000000000000000008B -S3156003CC40000000000000000000000000000000007B -S3156003CC50000000000000000000000000000000006B -S3156003CC60000000000000000000000000000000005B -S3156003CC70000000000000000000000000000000004B -S3156003CC80000000000000000000000000000000003B -S3156003CC90000000000000000000000000000000002B -S3156003CCA0000000000000000000000000000000001B -S3156003CCB0000000000000000000000000000000000B -S3156003CCC000000000000000000000000000000000FB -S3156003CCD000000000000000000000000000000000EB -S3156003CCE000000000000000000000000000000000DB -S3156003CCF000000000000000000000000000000000CB -S3156003CD0000000000000000000000000000000000BA -S3156003CD1000000000000000000000000000000000AA -S3156003CD20000000000000000000000000000000009A -S3156003CD30000000000000000000000000000000008A -S3156003CD40000000000000000000000000000000007A -S3156003CD50000000000000000000000000000000006A -S3156003CD60000000000000000000000000000000005A -S3156003CD70000000000000000000000000000000004A -S3156003CD80000000000000000000000000000000003A -S3156003CD90000000000000000000000000000000002A -S3156003CDA0000000000000000000000000000000001A -S3156003CDB0000000000000000000000000000000000A -S3156003CDC000000000000000000000000000000000FA -S3156003CDD000000000000000000000000000000000EA -S3156003CDE000000000000000000000000000000000DA -S3156003CDF000000000000000000000000000000000CA -S3156003CE0000000000000000000000000000000000B9 -S3156003CE1000000000000000000000000000000000A9 -S3156003CE200000000000000000000000000000000099 -S3156003CE300000000000000000000000000000000089 -S3156003CE400000000000000000000000000000000079 -S3156003CE500000000000000000000000000000000069 -S3156003CE600000000000000000000000000000000059 -S3156003CE700000000000000000000000000000000049 -S3156003CE800000000000000000000000000000000039 -S3156003CE900000000000000000000000000000000029 -S3156003CEA00000000000000000000000000000000019 -S3156003CEB00000000000000000000000000000000009 -S3156003CEC000000000000000000000000000000000F9 -S3156003CED000000000000000000000000000000000E9 -S3156003CEE000000000000000000000000000000000D9 -S3156003CEF000000000000000000000000000000000C9 -S3156003CF0000000000000000000000000000000000B8 -S3156003CF1000000000000000000000000000000000A8 -S3156003CF200000000000000000000000000000000098 -S3156003CF300000000000000000000000000000000088 -S3156003CF400000000000000000000000000000000078 -S3156003CF500000000000000000000000000000000068 -S3156003CF600000000000000000000000000000000058 -S3156003CF700000000000000000000000000000000048 -S3156003CF800000000000000000000000000000000038 -S3156003CF900000000000000000000000000000000028 -S3156003CFA00000000000000000000000000000000018 -S3156003CFB00000000000000000000000000000000008 -S3156003CFC000000000000000000000000000000000F8 -S3156003CFD000000000000000000000000000000000E8 -S3156003CFE000000000000000000000000000000000D8 -S3156003CFF000000000000000000000000000000000C8 -S3156003D00000000000000000000000000000000000B7 -S3156003D01000000000000000000000000000000000A7 -S3156003D0200000000000000000000000000000000097 -S3156003D0300000000000000000000000000000000087 -S3156003D0400000000000000000000000000000000077 -S3156003D0500000000000000000000000000000000067 -S3156003D0600000000000000000000000000000000057 -S3156003D0700000000000000000000000000000000047 -S3156003D0800000000000000000000000000000000037 -S3156003D0900000000000000000000000000000000027 -S3156003D0A00000000000000000000000000000000017 -S3156003D0B00000000000000000000000000000000007 -S3156003D0C000000000000000000000000000000000F7 -S3156003D0D000000000000000000000000000000000E7 -S3156003D0E000000000000000000000000000000000D7 -S3156003D0F000000000000000000000000000000000C7 -S3156003D10000000000000000000000000000000000B6 -S3156003D11000000000000000000000000000000000A6 -S3156003D1200000000000000000000000000000000096 -S3156003D1300000000000000000000000000000000086 -S3156003D1400000000000000000000000000000000076 -S3156003D1500000000000000000000000000000000066 -S3156003D1600000000000000000000000000000000056 -S3156003D1700000000000000000000000000000000046 -S3156003D1800000000000000000000000000000000036 -S3156003D1900000000000000000000000000000000026 -S3156003D1A00000000000000000000000000000000016 -S3156003D1B00000000000000000000000000000000006 -S3156003D1C000000000000000000000000000000000F6 -S3156003D1D000000000000000000000000000000000E6 -S3156003D1E000000000000000000000000000000000D6 -S3156003D1F000000000000000000000000000000000C6 -S3156003D20000000000000000000000000000000000B5 -S3156003D21000000000000000000000000000000000A5 -S3156003D2200000000000000000000000000000000095 -S3156003D2300000000000000000000000000000000085 -S3156003D2400000000000000000000000000000000075 -S3156003D2500000000000000000000000000000000065 -S3156003D2600000000000000000000000000000000055 -S3156003D2700000000000000000000000000000000045 -S3156003D2800000000000000000000000000000000035 -S3156003D2900000000000000000000000000000000025 -S3156003D2A00000000000000000000000000000000015 -S3156003D2B00000000000000000000000000000000005 -S3156003D2C000000000000000000000000000000000F5 -S3156003D2D000000000000000000000000000000000E5 -S3156003D2E000000000000000000000000000000000D5 -S3156003D2F000000000000000000000000000000000C5 -S3156003D30000000000000000000000000000000000B4 -S3156003D31000000000000000000000000000000000A4 -S3156003D3200000000000000000000000000000000094 -S3156003D3300000000000000000000000000000000084 -S3156003D3400000000000000000000000000000000074 -S3156003D3500000000000000000000000000000000064 -S3156003D3600000000000000000000000000000000054 -S3156003D3700000000000000000000000000000000044 -S3156003D3800000000000000000000000000000000034 -S3156003D3900000000000000000000000000000000024 -S3156003D3A00000000000000000000000000000000014 -S3156003D3B00000000000000000000000000000000004 -S3156003D3C000000000000000000000000000000000F4 -S3156003D3D000000000000000000000000000000000E4 -S3156003D3E000000000000000000000000000000000D4 -S3156003D3F000000000000000000000000000000000C4 -S3156003D40000000000000000000000000000000000B3 -S3156003D41000000000000000000000000000000000A3 -S3156003D4200000000000000000000000000000000093 -S3156003D4300000000000000000000000000000000083 -S3156003D4400000000000000000000000000000000073 -S3156003D4500000000000000000000000000000000063 -S3156003D4600000000000000000000000000000000053 -S3156003D4700000000000000000000000000000000043 -S3156003D4800000000000000000000000000000000033 -S3156003D4900000000000000000000000000000000023 -S3156003D4A00000000000000000000000000000000013 -S3156003D4B00000000000000000000000000000000003 -S3156003D4C000000000000000000000000000000000F3 -S3156003D4D000000000000000000000000000000000E3 -S3156003D4E000000000000000000000000000000000D3 -S3156003D4F000000000000000000000000000000000C3 -S3156003D50000000000000000000000000000000000B2 -S3156003D51000000000000000000000000000000000A2 -S3156003D5200000000000000000000000000000000092 -S3156003D5300000000000000000000000000000000082 -S3156003D5400000000000000000000000000000000072 -S3156003D5500000000000000000000000000000000062 -S3156003D5600000000000000000000000000000000052 -S3156003D5700000000000000000000000000000000042 -S3156003D5800000000000000000000000000000000032 -S3156003D5900000000000000000000000000000000022 -S3156003D5A00000000000000000000000000000000012 -S3156003D5B00000000000000000000000000000000002 -S3156003D5C000000000000000000000000000000000F2 -S3156003D5D000000000000000000000000000000000E2 -S3156003D5E000000000000000000000000000000000D2 -S3156003D5F000000000000000000000000000000000C2 -S3156003D60000000000000000000000000000000000B1 -S3156003D61000000000000000000000000000000000A1 -S3156003D6200000000000000000000000000000000091 -S3156003D6300000000000000000000000000000000081 -S3156003D6400000000000000000000000000000000071 -S3156003D6500000000000000000000000000000000061 -S3156003D6600000000000000000000000000000000051 -S3156003D6700000000000000000000000000000000041 -S3156003D6800000000000000000000000000000000031 -S3156003D6900000000000000000000000000000000021 -S3156003D6A00000000000000000000000000000000011 -S3156003D6B00000000000000000000000000000000001 -S3156003D6C000000000000000000000000000000000F1 -S3156003D6D000000000000000000000000000000000E1 -S3156003D6E000000000000000000000000000000000D1 -S3156003D6F000000000000000000000000000000000C1 -S3156003D70000000000000000000000000000000000B0 -S3156003D71000000000000000000000000000000000A0 -S3156003D7200000000000000000000000000000000090 -S3156003D7300000000000000000000000000000000080 -S3156003D7400000000000000000000000000000000070 -S3156003D7500000000000000000000000000000000060 -S3156003D7600000000000000000000000000000000050 -S3156003D7700000000000000000000000000000000040 -S3156003D7800000000000000000000000000000000030 -S3156003D7900000000000000000000000000000000020 -S3156003D7A00000000000000000000000000000000010 -S3156003D7B00000000000000000000000000000000000 -S3156003D7C000000000000000000000000000000000F0 -S3156003D7D000000000000000000000000000000000E0 -S3156003D7E000000000000000000000000000000000D0 -S3156003D7F000000000000000000000000000000000C0 -S3156003D80000000000000000000000000000000000AF -S3156003D810000000000000000000000000000000009F -S3156003D820000000000000000000000000000000008F -S3156003D830000000000000000000000000000000007F -S3156003D840000000000000000000000000000000006F -S3156003D850000000000000000000000000000000005F -S3156003D860000000000000000000000000000000004F -S3156003D870000000000000000000000000000000003F -S3156003D880000000000000000000000000000000002F -S3156003D890000000000000000000000000000000001F -S3156003D8A0000000000000000000000000000000000F -S3156003D8B000000000000000000000000000000000FF -S3156003D8C000000000000000000000000000000000EF -S3156003D8D000000000000000000000000000000000DF -S3156003D8E000000000000000000000000000000000CF -S3156003D8F000000000000000000000000000000000BF -S3156003D90000000000000000000000000000000000AE -S3156003D910000000000000000000000000000000009E -S3156003D920000000000000000000000000000000008E -S3156003D930000000000000000000000000000000007E -S3156003D940000000000000000000000000000000006E -S3156003D950000000000000000000000000000000005E -S3156003D960000000000000000000000000000000004E -S3156003D970000000000000000000000000000000003E -S3156003D980000000000000000000000000000000002E -S3156003D990000000000000000000000000000000001E -S3156003D9A0000000000000000000000000000000000E -S3156003D9B000000000000000000000000000000000FE -S3156003D9C000000000000000000000000000000000EE -S3156003D9D000000000000000000000000000000000DE -S3156003D9E000000000000000000000000000000000CE -S3156003D9F000000000000000000000000000000000BE -S3156003DA0000000000000000000000000000000000AD -S3156003DA10000000000000000000000000000000009D -S3156003DA20000000000000000000000000000000008D -S3156003DA30000000000000000000000000000000007D -S3156003DA40000000000000000000000000000000006D -S3156003DA50000000000000000000000000000000005D -S3156003DA60000000000000000000000000000000004D -S3156003DA70000000000000000000000000000000003D -S3156003DA80000000000000000000000000000000002D -S3156003DA90000000000000000000000000000000001D -S3156003DAA0000000000000000000000000000000000D -S3156003DAB000000000000000000000000000000000FD -S3156003DAC000000000000000000000000000000000ED -S3156003DAD000000000000000000000000000000000DD -S3156003DAE000000000000000000000000000000000CD -S3156003DAF000000000000000000000000000000000BD -S3156003DB0000000000000000000000000000000000AC -S3156003DB10000000000000000000000000000000009C -S3156003DB20000000000000000000000000000000008C -S3156003DB30000000000000000000000000000000007C -S3156003DB40000000000000000000000000000000006C -S3156003DB50000000000000000000000000000000005C -S3156003DB60000000000000000000000000000000004C -S3156003DB70000000000000000000000000000000003C -S3156003DB80000000000000000000000000000000002C -S3156003DB90000000000000000000000000000000001C -S3156003DBA0000000000000000000000000000000000C -S3156003DBB000000000000000000000000000000000FC -S3156003DBC000000000000000000000000000000000EC -S3156003DBD000000000000000000000000000000000DC -S3156003DBE000000000000000000000000000000000CC -S3156003DBF000000000000000000000000000000000BC -S3156003DC0000000000000000000000000000000000AB -S3156003DC10000000000000000000000000000000009B -S3156003DC20000000000000000000000000000000008B -S3156003DC30000000000000000000000000000000007B -S3156003DC40000000000000000000000000000000006B -S3156003DC50000000000000000000000000000000005B -S3156003DC60000000000000000000000000000000004B -S3156003DC70000000000000000000000000000000003B -S3156003DC80000000000000000000000000000000002B -S3156003DC90000000000000000000000000000000001B -S3156003DCA0000000000000000000000000000000000B -S3156003DCB000000000000000000000000000000000FB -S3156003DCC000000000000000000000000000000000EB -S3156003DCD000000000000000000000000000000000DB -S3156003DCE000000000000000000000000000000000CB -S3156003DCF000000000000000000000000000000000BB -S3156003DD0000000000000000000000000000000000AA -S3156003DD10000000000000000000000000000000009A -S3156003DD20000000000000000000000000000000008A -S3156003DD30000000000000000000000000000000007A -S3156003DD40000000000000000000000000000000006A -S3156003DD50000000000000000000000000000000005A -S3156003DD60000000000000000000000000000000004A -S3156003DD70000000000000000000000000000000003A -S3156003DD80000000000000000000000000000000002A -S3156003DD90000000000000000000000000000000001A -S3156003DDA0000000000000000000000000000000000A -S3156003DDB000000000000000000000000000000000FA -S3156003DDC000000000000000000000000000000000EA -S3156003DDD000000000000000000000000000000000DA -S3156003DDE000000000000000000000000000000000CA -S3156003DDF000000000000000000000000000000000BA -S3156003DE0000000000000000000000000000000000A9 -S3156003DE100000000000000000000000000000000099 -S3156003DE200000000000000000000000000000000089 -S3156003DE300000000000000000000000000000000079 -S3156003DE400000000000000000000000000000000069 -S3156003DE500000000000000000000000000000000059 -S3156003DE600000000000000000000000000000000049 -S3156003DE700000000000000000000000000000000039 -S3156003DE800000000000000000000000000000000029 -S3156003DE900000000000000000000000000000000019 -S3156003DEA00000000000000000000000000000000009 -S3156003DEB000000000000000000000000000000000F9 -S3156003DEC000000000000000000000000000000000E9 -S3156003DED000000000000000000000000000000000D9 -S3156003DEE000000000000000000000000000000000C9 -S3156003DEF000000000000000000000000000000000B9 -S3156003DF0000000000000000000000000000000000A8 -S3156003DF100000000000000000000000000000000098 -S3156003DF200000000000000000000000000000000088 -S3156003DF300000000000000000000000000000000078 -S3156003DF400000000000000000000000000000000068 -S3156003DF500000000000000000000000000000000058 -S3156003DF600000000000000000000000000000000048 -S3156003DF700000000000000000000000000000000038 -S3156003DF800000000000000000000000000000000028 -S3156003DF900000000000000000000000000000000018 -S3156003DFA00000000000000000000000000000000008 -S3156003DFB000000000000000000000000000000000F8 -S3156003DFC000000000000000000000000000000000E8 -S3156003DFD000000000000000000000000000000000D8 -S3156003DFE000000000000000000000000000000000C8 -S3156003DFF000000000000000000000000000000000B8 -S3156003E00000000000000000000000000000000000A7 -S3156003E0100000000000000000000000000000000097 -S3156003E0200000000000000000000000000000000087 -S3156003E0300000000000000000000000000000000077 -S3156003E0400000000000000000000000000000000067 -S3156003E0500000000000000000000000000000000057 -S3156003E0600000000000000000000000000000000047 -S3156003E0700000000000000000000000000000000037 -S3156003E0800000000000000000000000000000000027 -S3156003E0900000000000000000000000000000000017 -S3156003E0A00000000000000000000000000000000007 -S3156003E0B000000000000000000000000000000000F7 -S3156003E0C000000000000000000000000000000000E7 -S3156003E0D000000000000000000000000000000000D7 -S3156003E0E000000000000000000000000000000000C7 -S3156003E0F000000000000000000000000000000000B7 -S3156003E10000000000000000000000000000000000A6 -S3156003E1100000000000000000000000000000000096 -S3156003E1200000000000000000000000000000000086 -S3156003E1300000000000000000000000000000000076 -S3156003E1400000000000000000000000000000000066 -S3156003E1500000000000000000000000000000000056 -S3156003E1600000000000000000000000000000000046 -S3156003E1700000000000000000000000000000000036 -S3156003E1800000000000000000000000000000000026 -S3156003E1900000000000000000000000000000000016 -S3156003E1A00000000000000000000000000000000006 -S3156003E1B000000000000000000000000000000000F6 -S3156003E1C000000000000000000000000000000000E6 -S3156003E1D000000000000000000000000000000000D6 -S3156003E1E000000000000000000000000000000000C6 -S3156003E1F000000000000000000000000000000000B6 -S3156003E20000000000000000000000000000000000A5 -S3156003E2100000000000000000000000000000000095 -S3156003E2200000000000000000000000000000000085 -S3156003E2300000000000000000000000000000000075 -S3156003E2400000000000000000000000000000000065 -S3156003E2500000000000000000000000000000000055 -S3156003E2600000000000000000000000000000000045 -S3156003E2700000000000000000000000000000000035 -S3156003E2800000000000000000000000000000000025 -S3156003E2900000000000000000000000000000000015 -S3156003E2A00000000000000000000000000000000005 -S3156003E2B000000000000000000000000000000000F5 -S3156003E2C000000000000000000000000000000000E5 -S3156003E2D000000000000000000000000000000000D5 -S3156003E2E000000000000000000000000000000000C5 -S3156003E2F000000000000000000000000000000000B5 -S3156003E30000000000000000000000000000000000A4 -S3156003E3100000000000000000000000000000000094 -S3156003E3200000000000000000000000000000000084 -S3156003E3300000000000000000000000000000000074 -S3156003E3400000000000000000000000000000000064 -S3156003E3500000000000000000000000000000000054 -S3156003E3600000000000000000000000000000000044 -S3156003E3700000000000000000000000000000000034 -S3156003E3800000000000000000000000000000000024 -S3156003E3900000000000000000000000000000000014 -S3156003E3A00000000000000000000000000000000004 -S3156003E3B000000000000000000000000000000000F4 -S3156003E3C000000000000000000000000000000000E4 -S3156003E3D000000000000000000000000000000000D4 -S3156003E3E000000000000000000000000000000000C4 -S3156003E3F000000000000000000000000000000000B4 -S3156003E40000000000000000000000000000000000A3 -S3156003E4100000000000000000000000000000000093 -S3156003E4200000000000000000000000000000000083 -S3156003E4300000000000000000000000000000000073 -S3156003E4400000000000000000000000000000000063 -S3156003E4500000000000000000000000000000000053 -S3156003E4600000000000000000000000000000000043 -S3156003E4700000000000000000000000000000000033 -S3156003E4800000000000000000000000000000000023 -S3156003E4900000000000000000000000000000000013 -S3156003E4A00000000000000000000000000000000003 -S3156003E4B000000000000000000000000000000000F3 -S3156003E4C000000000000000000000000000000000E3 -S3156003E4D000000000000000000000000000000000D3 -S3156003E4E000000000000000000000000000000000C3 -S3156003E4F000000000000000000000000000000000B3 -S3156003E50000000000000000000000000000000000A2 -S3156003E5100000000000000000000000000000000092 -S3156003E5200000000000000000000000000000000082 -S3156003E5300000000000000000000000000000000072 -S3156003E5400000000000000000000000000000000062 -S3156003E5500000000000000000000000000000000052 -S3156003E5600000000000000000000000000000000042 -S3156003E5700000000000000000000000000000000032 -S3156003E5800000000000000000000000000000000022 -S3156003E5900000000000000000000000000000000012 -S3156003E5A00000000000000000000000000000000002 -S3156003E5B000000000000000000000000000000000F2 -S3156003E5C000000000000000000000000000000000E2 -S3156003E5D000000000000000000000000000000000D2 -S3156003E5E000000000000000000000000000000000C2 -S3156003E5F000000000000000000000000000000000B2 -S3156003E60000000000000000000000000000000000A1 -S3156003E6100000000000000000000000000000000091 -S3156003E6200000000000000000000000000000000081 -S3156003E6300000000000000000000000000000000071 -S3156003E6400000000000000000000000000000000061 -S3156003E6500000000000000000000000000000000051 -S3156003E6600000000000000000000000000000000041 -S3156003E6700000000000000000000000000000000031 -S3156003E6800000000000000000000000000000000021 -S3156003E6900000000000000000000000000000000011 -S3156003E6A00000000000000000000000000000000001 -S3156003E6B000000000000000000000000000000000F1 -S3156003E6C000000000000000000000000000000000E1 -S3156003E6D000000000000000000000000000000000D1 -S3156003E6E000000000000000000000000000000000C1 -S3156003E6F000000000000000000000000000000000B1 -S3156003E70000000000000000000000000000000000A0 -S3156003E7100000000000000000000000000000000090 -S3156003E7200000000000000000000000000000000080 -S3156003E7300000000000000000000000000000000070 -S3156003E7400000000000000000000000000000000060 -S3156003E7500000000000000000000000000000000050 -S3156003E7600000000000000000000000000000000040 -S3156003E7700000000000000000000000000000000030 -S3156003E7800000000000000000000000000000000020 -S3156003E7900000000000000000000000000000000010 -S3156003E7A00000000000000000000000000000000000 -S3156003E7B000000000000000000000000000000000F0 -S3156003E7C000000000000000000000000000000000E0 -S3156003E7D000000000000000000000000000000000D0 -S3156003E7E000000000000000000000000000000000C0 -S3156003E7F000000000000000000000000000000000B0 -S3156003E800000000000000000000000000000000009F -S3156003E810000000000000000000000000000000008F -S3156003E820000000000000000000000000000000007F -S3156003E830000000000000000000000000000000006F -S3156003E840000000000000000000000000000000005F -S3156003E850000000000000000000000000000000004F -S3156003E860000000000000000000000000000000003F -S3156003E870000000000000000000000000000000002F -S3156003E880000000000000000000000000000000001F -S3156003E890000000000000000000000000000000000F -S3156003E8A000000000000000000000000000000000FF -S3156003E8B000000000000000000000000000000000EF -S3156003E8C000000000000000000000000000000000DF -S3156003E8D000000000000000000000000000000000CF -S3156003E8E000000000000000000000000000000000BF -S3156003E8F000000000000000000000000000000000AF -S3156003E900000000000000000000000000000000009E -S3156003E910000000000000000000000000000000008E -S3156003E920000000000000000000000000000000007E -S3156003E930000000000000000000000000000000006E -S3156003E940000000000000000000000000000000005E -S3156003E950000000000000000000000000000000004E -S3156003E960000000000000000000000000000000003E -S3156003E970000000000000000000000000000000002E -S3156003E980000000000000000000000000000000001E -S3156003E990000000000000000000000000000000000E -S3156003E9A000000000000000000000000000000000FE -S3156003E9B000000000000000000000000000000000EE -S3156003E9C000000000000000000000000000000000DE -S3156003E9D000000000000000000000000000000000CE -S3156003E9E000000000000000000000000000000000BE -S3156003E9F000000000000000000000000000000000AE -S3156003EA00000000000000000000000000000000009D -S3156003EA10000000000000000000000000000000008D -S3156003EA20000000000000000000000000000000007D -S3156003EA30000000000000000000000000000000006D -S3156003EA40000000000000000000000000000000005D -S3156003EA50000000000000000000000000000000004D -S3156003EA60000000000000000000000000000000003D -S3156003EA70000000000000000000000000000000002D -S3156003EA80000000000000000000000000000000001D -S3156003EA90000000000000000000000000000000000D -S3156003EAA000000000000000000000000000000000FD -S3156003EAB000000000000000000000000000000000ED -S3156003EAC000000000000000000000000000000000DD -S3156003EAD000000000000000000000000000000000CD -S3156003EAE000000000000000000000000000000000BD -S3156003EAF000000000000000000000000000000000AD -S3156003EB00000000000000000000000000000000009C -S3156003EB10000000000000000000000000000000008C -S3156003EB20000000000000000000000000000000007C -S3156003EB30000000000000000000000000000000006C -S3156003EB40000000000000000000000000000000005C -S3156003EB50000000000000000000000000000000004C -S3156003EB60000000000000000000000000000000003C -S3156003EB70000000000000000000000000000000002C -S3156003EB80000000000000000000000000000000001C -S3156003EB90000000000000000000000000000000000C -S3156003EBA000000000000000000000000000000000FC -S3156003EBB000000000000000000000000000000000EC -S3156003EBC000000000000000000000000000000000DC -S3156003EBD000000000000000000000000000000000CC -S3156003EBE000000000000000000000000000000000BC -S3156003EBF000000000000000000000000000000000AC -S3156003EC00000000000000000000000000000000009B -S3156003EC10000000000000000000000000000000008B -S3156003EC20000000000000000000000000000000007B -S3156003EC30000000000000000000000000000000006B -S3156003EC40000000000000000000000000000000005B -S3156003EC50000000000000000000000000000000004B -S3156003EC60000000000000000000000000000000003B -S3156003EC70000000000000000000000000000000002B -S3156003EC80000000000000000000000000000000001B -S3156003EC90000000000000000000000000000000000B -S3156003ECA000000000000000000000000000000000FB -S3156003ECB000000000000000000000000000000000EB -S3156003ECC000000000000000000000000000000000DB -S3156003ECD000000000000000000000000000000000CB -S3156003ECE000000000000000000000000000000000BB -S3156003ECF000000000000000000000000000000000AB -S3156003ED00000000000000000000000000000000009A -S3156003ED10000000000000000000000000000000008A -S3156003ED20000000000000000000000000000000007A -S3156003ED30000000000000000000000000000000006A -S3156003ED40000000000000000000000000000000005A -S3156003ED50000000000000000000000000000000004A -S3156003ED60000000000000000000000000000000003A -S3156003ED70000000000000000000000000000000002A -S3156003ED80000000000000000000000000000000001A -S3156003ED90000000000000000000000000000000000A -S3156003EDA000000000000000000000000000000000FA -S3156003EDB000000000000000000000000000000000EA -S3156003EDC000000000000000000000000000000000DA -S3156003EDD000000000000000000000000000000000CA -S3156003EDE000000000000000000000000000000000BA -S3156003EDF000000000000000000000000000000000AA -S3156003EE000000000000000000000000000000000099 -S3156003EE100000000000000000000000000000000089 -S3156003EE200000000000000000000000000000000079 -S3156003EE300000000000000000000000000000000069 -S3156003EE400000000000000000000000000000000059 -S3156003EE500000000000000000000000000000000049 -S3156003EE600000000000000000000000000000000039 -S3156003EE700000000000000000000000000000000029 -S3156003EE800000000000000000000000000000000019 -S3156003EE900000000000000000000000000000000009 -S3156003EEA000000000000000000000000000000000F9 -S3156003EEB000000000000000000000000000000000E9 -S3156003EEC000000000000000000000000000000000D9 -S3156003EED000000000000000000000000000000000C9 -S3156003EEE000000000000000000000000000000000B9 -S3156003EEF000000000000000000000000000000000A9 -S3156003EF000000000000000000000000000000000098 -S3156003EF100000000000000000000000000000000088 -S3156003EF200000000000000000000000000000000078 -S3156003EF300000000000000000000000000000000068 -S3156003EF400000000000000000000000000000000058 -S3156003EF500000000000000000000000000000000048 -S3156003EF600000000000000000000000000000000038 -S3156003EF700000000000000000000000000000000028 -S3156003EF800000000000000000000000000000000018 -S3156003EF900000000000000000000000000000000008 -S3156003EFA000000000000000000000000000000000F8 -S3156003EFB000000000000000000000000000000000E8 -S3156003EFC000000000000000000000000000000000D8 -S3156003EFD000000000000000000000000000000000C8 -S3156003EFE000000000000000000000000000000000B8 -S3156003EFF000000000000000000000000000000000A8 -S3156003F0000000000000000000000000000000000097 -S3156003F0100000000000000000000000000000000087 -S3156003F0200000000000000000000000000000000077 -S3156003F0300000000000000000000000000000000067 -S3156003F0400000000000000000000000000000000057 -S3156003F0500000000000000000000000000000000047 -S3156003F0600000000000000000000000000000000037 -S3156003F0700000000000000000000000000000000027 -S3156003F0800000000000000000000000000000000017 -S3156003F0900000000000000000000000000000000007 -S3156003F0A000000000000000000000000000000000F7 -S3156003F0B000000000000000000000000000000000E7 -S3156003F0C000000000000000000000000000000000D7 -S3156003F0D000000000000000000000000000000000C7 -S3156003F0E000000000000000000000000000000000B7 -S3156003F0F000000000000000000000000000000000A7 -S3156003F1000000000000000000000000000000000096 -S3156003F1100000000000000000000000000000000086 -S3156003F1200000000000000000000000000000000076 -S3156003F1300000000000000000000000000000000066 -S3156003F1400000000000000000000000000000000056 -S3156003F1500000000000000000000000000000000046 -S3156003F1600000000000000000000000000000000036 -S3156003F1700000000000000000000000000000000026 -S3156003F1800000000000000000000000000000000016 -S3156003F1900000000000000000000000000000000006 -S3156003F1A000000000000000000000000000000000F6 -S3156003F1B000000000000000000000000000000000E6 -S3156003F1C000000000000000000000000000000000D6 -S3156003F1D000000000000000000000000000000000C6 -S3156003F1E000000000000000000000000000000000B6 -S3156003F1F000000000000000000000000000000000A6 -S3156003F2000000000000000000000000000000000095 -S3156003F2100000000000000000000000000000000085 -S3156003F2200000000000000000000000000000000075 -S3156003F2300000000000000000000000000000000065 -S3156003F2400000000000000000000000000000000055 -S3156003F2500000000000000000000000000000000045 -S3156003F2600000000000000000000000000000000035 -S3156003F2700000000000000000000000000000000025 -S3156003F2800000000000000000000000000000000015 -S3156003F2900000000000000000000000000000000005 -S3156003F2A000000000000000000000000000000000F5 -S3156003F2B000000000000000000000000000000000E5 -S3156003F2C000000000000000000000000000000000D5 -S3156003F2D000000000000000000000000000000000C5 -S3156003F2E000000000000000000000000000000000B5 -S3156003F2F000000000000000000000000000000000A5 -S3156003F3000000000000000000000000000000000094 -S3156003F3100000000000000000000000000000000084 -S3156003F3200000000000000000000000000000000074 -S3156003F3300000000000000000000000000000000064 -S3156003F3400000000000000000000000000000000054 -S3156003F3500000000000000000000000000000000044 -S3156003F3600000000000000000000000000000000034 -S3156003F3700000000000000000000000000000000024 -S3156003F3800000000000000000000000000000000014 -S3156003F3900000000000000000000000000000000004 -S3156003F3A000000000000000000000000000000000F4 -S3156003F3B000000000000000000000000000000000E4 -S3156003F3C000000000000000000000000000000000D4 -S3156003F3D000000000000000000000000000000000C4 -S3156003F3E000000000000000000000000000000000B4 -S3156003F3F000000000000000000000000000000000A4 -S3156003F4000000000000000000000000000000000093 -S3156003F4100000000000000000000000000000000083 -S3156003F4200000000000000000000000000000000073 -S3156003F4300000000000000000000000000000000063 -S3156003F4400000000000000000000000000000000053 -S3156003F4500000000000000000000000000000000043 -S3156003F4600000000000000000000000000000000033 -S3156003F4700000000000000000000000000000000023 -S3156003F4800000000000000000000000000000000013 -S3156003F4900000000000000000000000000000000003 -S3156003F4A000000000000000000000000000000000F3 -S3156003F4B000000000000000000000000000000000E3 -S3156003F4C000000000000000000000000000000000D3 -S3156003F4D000000000000000000000000000000000C3 -S3156003F4E000000000000000000000000000000000B3 -S3156003F4F000000000000000000000000000000000A3 -S3156003F5000000000000000000000000000000000092 -S3156003F5100000000000000000000000000000000082 -S3156003F5200000000000000000000000000000000072 -S3156003F5300000000000000000000000000000000062 -S3156003F5400000000000000000000000000000000052 -S3156003F5500000000000000000000000000000000042 -S3156003F5600000000000000000000000000000000032 -S3156003F5700000000000000000000000000000000022 -S3156003F5800000000000000000000000000000000012 -S3156003F5900000000000000000000000000000000002 -S3156003F5A000000000000000000000000000000000F2 -S3156003F5B000000000000000000000000000000000E2 -S3156003F5C000000000000000000000000000000000D2 -S3156003F5D000000000000000000000000000000000C2 -S3156003F5E000000000000000000000000000000000B2 -S3156003F5F000000000000000000000000000000000A2 -S3156003F6000000000000000000000000000000000091 -S3156003F6100000000000000000000000000000000081 -S3156003F6200000000000000000000000000000000071 -S3156003F6300000000000000000000000000000000061 -S3156003F6400000000000000000000000000000000051 -S3156003F6500000000000000000000000000000000041 -S3156003F6600000000000000000000000000000000031 -S3156003F6700000000000000000000000000000000021 -S3156003F6800000000000000000000000000000000011 -S3156003F6900000000000000000000000000000000001 -S3156003F6A000000000000000000000000000000000F1 -S3156003F6B000000000000000000000000000000000E1 -S3156003F6C000000000000000000000000000000000D1 -S3156003F6D000000000000000000000000000000000C1 -S3156003F6E000000000000000000000000000000000B1 -S3156003F6F000000000000000000000000000000000A1 -S3156003F7000000000000000000000000000000000090 -S3156003F7100000000000000000000000000000000080 -S3156003F7200000000000000000000000000000000070 -S3156003F7300000000000000000000000000000000060 -S3156003F7400000000000000000000000000000000050 -S3156003F7500000000000000000000000000000000040 -S3156003F7600000000000000000000000000000000030 -S3156003F7700000000000000000000000000000000020 -S3156003F7800000000000000000000000000000000010 -S3156003F7900000000000000000000000000000000000 -S3156003F7A000000000000000000000000000000000F0 -S3156003F7B000000000000000000000000000000000E0 -S3156003F7C000000000000000000000000000000000D0 -S3156003F7D000000000000000000000000000000000C0 -S3156003F7E000000000000000000000000000000000B0 -S3156003F7F000000000000000000000000000000000A0 -S3156003F800000000000000000000000000000000008F -S3156003F810000000000000000000000000000000007F -S3156003F820000000000000000000000000000000006F -S3156003F830000000000000000000000000000000005F -S3156003F840000000000000000000000000000000004F -S3156003F850000000000000000000000000000000003F -S3156003F860000000000000000000000000000000002F -S3156003F870000000000000000000000000000000001F -S3156003F880000000000000000000000000000000000F -S3156003F89000000000000000000000000000000000FF -S3156003F8A000000000000000000000000000000000EF -S3156003F8B000000000000000000000000000000000DF -S3156003F8C000000000000000000000000000000000CF -S3156003F8D000000000000000000000000000000000BF -S3156003F8E000000000000000000000000000000000AF -S3156003F8F0000000000000000000000000000000009F -S3156003F900000000000000000000000000000000008E -S3156003F910000000000000000000000000000000007E -S3156003F920000000000000000000000000000000006E -S3156003F930000000000000000000000000000000005E -S3156003F940000000000000000000000000000000004E -S3156003F950000000000000000000000000000000003E -S3156003F960000000000000000000000000000000002E -S3156003F970000000000000000000000000000000001E -S3156003F980000000000000000000000000000000000E -S3156003F99000000000000000000000000000000000FE -S3156003F9A000000000000000000000000000000000EE -S3156003F9B000000000000000000000000000000000DE -S3156003F9C000000000000000000000000000000000CE -S3156003F9D000000000000000000000000000000000BE -S3156003F9E000000000000000000000000000000000AE -S3156003F9F0000000000000000000000000000000009E -S3156003FA00000000000000000000000000000000008D -S3156003FA10000000000000000000000000000000007D -S3156003FA20000000000000000000000000000000006D -S3156003FA30000000000000000000000000000000005D -S3156003FA40000000000000000000000000000000004D -S3156003FA50000000000000000000000000000000003D -S3156003FA60000000000000000000000000000000002D -S3156003FA70000000000000000000000000000000001D -S3156003FA80000000000000000000000000000000000D -S3156003FA9000000000000000000000000000000000FD -S3156003FAA000000000000000000000000000000000ED -S3156003FAB000000000000000000000000000000000DD -S3156003FAC000000000000000000000000000000000CD -S3156003FAD000000000000000000000000000000000BD -S3156003FAE000000000000000000000000000000000AD -S3156003FAF0000000000000000000000000000000009D -S3156003FB00000000000000000000000000000000008C -S3156003FB10000000000000000000000000000000007C -S3156003FB20000000000000000000000000000000006C -S3156003FB30000000000000000000000000000000005C -S3156003FB40000000000000000000000000000000004C -S3156003FB50000000000000000000000000000000003C -S3156003FB60000000000000000000000000000000002C -S3156003FB70000000000000000000000000000000001C -S3156003FB80000000000000000000000000000000000C -S3156003FB9000000000000000000000000000000000FC -S3156003FBA000000000000000000000000000000000EC -S3156003FBB000000000000000000000000000000000DC -S3156003FBC000000000000000000000000000000000CC -S3156003FBD000000000000000000000000000000000BC -S3156003FBE000000000000000000000000000000000AC -S3156003FBF0000000000000000000000000000000009C -S3156003FC00000000000000000000000000000000008B -S3156003FC10000000000000000000000000000000007B -S3156003FC20000000000000000000000000000000006B -S3156003FC30000000000000000000000000000000005B -S3156003FC40000000000000000000000000000000004B -S3156003FC50000000000000000000000000000000003B -S3156003FC60000000000000000000000000000000002B -S3156003FC70000000000000000000000000000000001B -S3156003FC80000000000000000000000000000000000B -S3156003FC9000000000000000000000000000000000FB -S3156003FCA000000000000000000000000000000000EB -S3156003FCB000000000000000000000000000000000DB -S3156003FCC000000000000000000000000000000000CB -S3156003FCD000000000000000000000000000000000BB -S3156003FCE000000000000000000000000000000000AB -S3156003FCF0000000000000000000000000000000009B -S3156003FD00000000000000000000000000000000008A -S3156003FD10000000000000000000000000000000007A -S3156003FD20000000000000000000000000000000006A -S3156003FD30000000000000000000000000000000005A -S3156003FD40000000000000000000000000000000004A -S3156003FD50000000000000000000000000000000003A -S3156003FD60000000000000000000000000000000002A -S3156003FD70000000000000000000000000000000001A -S3156003FD80000000000000000000000000000000000A -S3156003FD9000000000000000000000000000000000FA -S3156003FDA000000000000000000000000000000000EA -S3156003FDB000000000000000000000000000000000DA -S3156003FDC000000000000000000000000000000000CA -S3156003FDD000000000000000000000000000000000BA -S3156003FDE000000000000000000000000000000000AA -S3156003FDF0000000000000000000000000000000009A -S3156003FE000000000000000000000000000000000089 -S3156003FE100000000000000000000000000000000079 -S3156003FE200000000000000000000000000000000069 -S3156003FE300000000000000000000000000000000059 -S3156003FE400000000000000000000000000000000049 -S3156003FE500000000000000000000000000000000039 -S3156003FE600000000000000000000000000000000029 -S3156003FE700000000000000000000000000000000019 -S3156003FE800000000000000000000000000000000009 -S3156003FE9000000000000000000000000000000000F9 -S3156003FEA000000000000000000000000000000000E9 -S3156003FEB000000000000000000000000000000000D9 -S3156003FEC000000000000000000000000000000000C9 -S3156003FED000000000000000000000000000000000B9 -S3156003FEE000000000000000000000000000000000A9 -S3156003FEF00000000000000000000000000000000099 -S3156003FF000000000000000000000000000000000088 -S3156003FF100000000000000000000000000000000078 -S3156003FF200000000000000000000000000000000068 -S3156003FF300000000000000000000000000000000058 -S3156003FF400000000000000000000000000000000048 -S3156003FF500000000000000000000000000000000038 -S3156003FF600000000000000000000000000000000028 -S3156003FF700000000000000000000000000000000018 -S3156003FF800000000000000000000000000000000008 -S3156003FF9000000000000000000000000000000000F8 -S3156003FFA000000000000000000000000000000000E8 -S3156003FFB000000000000000000000000000000000D8 -S3156003FFC000000000000000000000000000000000C8 -S3156003FFD000000000000000000000000000000000B8 -S3156003FFE000000000000000000000000000000000A8 -S3156003FFF00000000000000000000000000000000098 -S315600400000000000000000000000000000000000086 -S315600400100000000000000000000000000000000076 -S315600400200000000000000000000000000000000066 -S315600400300000000000000000000000000000000056 -S315600400400000000000000000000000000000000046 -S315600400500000000000000000000000000000000036 -S315600400600000000000000000000000000000000026 -S315600400700000000000000000000000000000000016 -S315600400800000000000000000000000000000000006 -S3156004009000000000000000000000000000000000F6 -S315600400A000000000000000000000000000000000E6 -S315600400B000000000000000000000000000000000D6 -S315600400C000000000000000000000000000000000C6 -S315600400D000000000000000000000000000000000B6 -S315600400E000000000000000000000000000000000A6 -S315600400F00000000000000000000000000000000096 -S315600401000000000000000000000000000000000085 -S315600401100000000000000000000000000000000075 -S315600401200000000000000000000000000000000065 -S315600401300000000000000000000000000000000055 -S315600401400000000000000000000000000000000045 -S315600401500000000000000000000000000000000035 -S315600401600000000000000000000000000000000025 -S315600401700000000000000000000000000000000015 -S315600401800000000000000000000000000000000005 -S3156004019000000000000000000000000000000000F5 -S315600401A000000000000000000000000000000000E5 -S315600401B000000000000000000000000000000000D5 -S315600401C000000000000000000000000000000000C5 -S315600401D000000000000000000000000000000000B5 -S315600401E000000000000000000000000000000000A5 -S315600401F00000000000000000000000000000000095 -S315600402000000000000000000000000000000000084 -S315600402100000000000000000000000000000000074 -S315600402200000000000000000000000000000000064 -S315600402300000000000000000000000000000000054 -S315600402400000000000000000000000000000000044 -S315600402500000000000000000000000000000000034 -S315600402600000000000000000000000000000000024 -S315600402700000000000000000000000000000000014 -S315600402800000000000000000000000000000000004 -S3156004029000000000000000000000000000000000F4 -S315600402A000000000000000000000000000000000E4 -S315600402B000000000000000000000000000000000D4 -S315600402C000000000000000000000000000000000C4 -S315600402D000000000000000000000000000000000B4 -S315600402E000000000000000000000000000000000A4 -S315600402F00000000000000000000000000000000094 -S315600403000000000000000000000000000000000083 -S315600403100000000000000000000000000000000073 -S315600403200000000000000000000000000000000063 -S315600403300000000000000000000000000000000053 -S315600403400000000000000000000000000000000043 -S315600403500000000000000000000000000000000033 -S315600403600000000000000000000000000000000023 -S315600403700000000000000000000000000000000013 -S315600403800000000000000000000000000000000003 -S3156004039000000000000000000000000000000000F3 -S315600403A000000000000000000000000000000000E3 -S315600403B000000000000000000000000000000000D3 -S315600403C000000000000000000000000000000000C3 -S315600403D000000000000000000000000000000000B3 -S315600403E000000000000000000000000000000000A3 -S315600403F00000000000000000000000000000000093 -S315600404000000000000000000000000000000000082 -S315600404100000000000000000000000000000000072 -S315600404200000000000000000000000000000000062 -S315600404300000000000000000000000000000000052 -S315600404400000000000000000000000000000000042 -S315600404500000000000000000000000000000000032 -S315600404600000000000000000000000000000000022 -S315600404700000000000000000000000000000000012 -S315600404800000000000000000000000000000000002 -S3156004049000000000000000000000000000000000F2 -S315600404A000000000000000000000000000000000E2 -S315600404B000000000000000000000000000000000D2 -S315600404C000000000000000000000000000000000C2 -S315600404D000000000000000000000000000000000B2 -S315600404E000000000000000000000000000000000A2 -S315600404F00000000000000000000000000000000092 -S315600405000000000000000000000000000000000081 -S315600405100000000000000000000000000000000071 -S315600405200000000000000000000000000000000061 -S315600405300000000000000000000000000000000051 -S315600405400000000000000000000000000000000041 -S315600405500000000000000000000000000000000031 -S315600405600000000000000000000000000000000021 -S315600405700000000000000000000000000000000011 -S315600405800000000000000000000000000000000001 -S3156004059000000000000000000000000000000000F1 -S315600405A000000000000000000000000000000000E1 -S315600405B000000000000000000000000000000000D1 -S315600405C000000000000000000000000000000000C1 -S315600405D000000000000000000000000000000000B1 -S315600405E000000000000000000000000000000000A1 -S315600405F00000000000000000000000000000000091 -S315600406000000000000000000000000000000000080 -S315600406100000000000000000000000000000000070 -S315600406200000000000000000000000000000000060 -S315600406300000000000000000000000000000000050 -S315600406400000000000000000000000000000000040 -S315600406500000000000000000000000000000000030 -S315600406600000000000000000000000000000000020 -S315600406700000000000000000000000000000000010 -S315600406800000000000000000000000000000000000 -S3156004069000000000000000000000000000000000F0 -S315600406A000000000000000000000000000000000E0 -S315600406B000000000000000000000000000000000D0 -S315600406C000000000000000000000000000000000C0 -S315600406D000000000000000000000000000000000B0 -S315600406E000000000000000000000000000000000A0 -S315600406F00000000000000000000000000000000090 -S31560040700000000000000000000000000000000007F -S31560040710000000000000000000000000000000006F -S31560040720000000000000000000000000000000005F -S31560040730000000000000000000000000000000004F -S31560040740000000000000000000000000000000003F -S31560040750000000000000000000000000000000002F -S31560040760000000000000000000000000000000001F -S31560040770000000000000000000000000000000000F -S3156004078000000000000000000000000000000000FF -S3156004079000000000000000000000000000000000EF -S315600407A000000000000000000000000000000000DF -S315600407B000000000000000000000000000000000CF -S315600407C000000000000000000000000000000000BF -S315600407D000000000000000000000000000000000AF -S315600407E0000000000000000000000000000000009F -S315600407F0000000000000000000000000000000008F -S31560040800000000000000000000000000000000007E -S31560040810000000000000000000000000000000006E -S31560040820000000000000000000000000000000005E -S31560040830000000000000000000000000000000004E -S31560040840000000000000000000000000000000003E -S31560040850000000000000000000000000000000002E -S31560040860000000000000000000000000000000001E -S31560040870000000000000000000000000000000000E -S3156004088000000000000000000000000000000000FE -S3156004089000000000000000000000000000000000EE -S315600408A000000000000000000000000000000000DE -S315600408B000000000000000000000000000000000CE -S315600408C000000000000000000000000000000000BE -S315600408D000000000000000000000000000000000AE -S315600408E0000000000000000000000000000000009E -S315600408F0000000000000000000000000000000008E -S31560040900000000000000000000000000000000007D -S31560040910000000000000000000000000000000006D -S31560040920000000000000000000000000000000005D -S31560040930000000000000000000000000000000004D -S31560040940000000000000000000000000000000003D -S31560040950000000000000000000000000000000002D -S31560040960000000000000000000000000000000001D -S31560040970000000000000000000000000000000000D -S3156004098000000000000000000000000000000000FD -S3156004099000000000000000000000000000000000ED -S315600409A000000000000000000000000000000000DD -S315600409B000000000000000000000000000000000CD -S315600409C000000000000000000000000000000000BD -S315600409D000000000000000000000000000000000AD -S315600409E0000000000000000000000000000000009D -S315600409F0000000000000000000000000000000008D -S31560040A00000000000000000000000000000000007C -S31560040A10000000000000000000000000000000006C -S31560040A20000000000000000000000000000000005C -S31560040A30000000000000000000000000000000004C -S31560040A40000000000000000000000000000000003C -S31560040A50000000000000000000000000000000002C -S31560040A60000000000000000000000000000000001C -S31560040A70000000000000000000000000000000000C -S31560040A8000000000000000000000000000000000FC -S31560040A9000000000000000000000000000000000EC -S31560040AA000000000000000000000000000000000DC -S31560040AB000000000000000000000000000000000CC -S31560040AC000000000000000000000000000000000BC -S31560040AD000000000000000000000000000000000AC -S31560040AE0000000000000000000000000000000009C -S31560040AF0000000000000000000000000000000008C -S31560040B00000000000000000000000000000000007B -S31560040B10000000000000000000000000000000006B -S31560040B20000000000000000000000000000000005B -S31560040B30000000000000000000000000000000004B -S31560040B40000000000000000000000000000000003B -S31560040B50000000000000000000000000000000002B -S31560040B60000000000000000000000000000000001B -S31560040B70000000000000000000000000000000000B -S31560040B8000000000000000000000000000000000FB -S31560040B9000000000000000000000000000000000EB -S31560040BA000000000000000000000000000000000DB -S31560040BB000000000000000000000000000000000CB -S31560040BC000000000000000000000000000000000BB -S31560040BD000000000000000000000000000000000AB -S31560040BE0000000000000000000000000000000009B -S31560040BF0000000000000000000000000000000008B -S31560040C00000000000000000000000000000000007A -S31560040C10000000000000000000000000000000006A -S31560040C20000000000000000000000000000000005A -S31560040C30000000000000000000000000000000004A -S31560040C40000000000000000000000000000000003A -S31560040C50000000000000000000000000000000002A -S31560040C60000000000000000000000000000000001A -S31560040C70000000000000000000000000000000000A -S31560040C8000000000000000000000000000000000FA -S31560040C9000000000000000000000000000000000EA -S31560040CA000000000000000000000000000000000DA -S31560040CB000000000000000000000000000000000CA -S31560040CC000000000000000000000000000000000BA -S31560040CD000000000000000000000000000000000AA -S31560040CE0000000000000000000000000000000009A -S31560040CF0000000000000000000000000000000008A -S31560040D000000000000000000000000000000000079 -S31560040D100000000000000000000000000000000069 -S31560040D200000000000000000000000000000000059 -S31560040D300000000000000000000000000000000049 -S31560040D400000000000000000000000000000000039 -S31560040D500000000000000000000000000000000029 -S31560040D600000000000000000000000000000000019 -S31560040D700000000000000000000000000000000009 -S31560040D8000000000000000000000000000000000F9 -S31560040D9000000000000000000000000000000000E9 -S31560040DA000000000000000000000000000000000D9 -S31560040DB000000000000000000000000000000000C9 -S31560040DC000000000000000000000000000000000B9 -S31560040DD000000000000000000000000000000000A9 -S31560040DE00000000000000000000000000000000099 -S31560040DF00000000000000000000000000000000089 -S31560040E000000000000000000000000000000000078 -S31560040E100000000000000000000000000000000068 -S31560040E200000000000000000000000000000000058 -S31560040E300000000000000000000000000000000048 -S31560040E400000000000000000000000000000000038 -S31560040E500000000000000000000000000000000028 -S31560040E600000000000000000000000000000000018 -S31560040E700000000000000000000000000000000008 -S31560040E8000000000000000000000000000000000F8 -S31560040E9000000000000000000000000000000000E8 -S31560040EA000000000000000000000000000000000D8 -S31560040EB000000000000000000000000000000000C8 -S31560040EC000000000000000000000000000000000B8 -S31560040ED000000000000000000000000000000000A8 -S31560040EE00000000000000000000000000000000098 -S31560040EF00000000000000000000000000000000088 -S31560040F000000000000000000000000000000000077 -S31560040F100000000000000000000000000000000067 -S31560040F200000000000000000000000000000000057 -S31560040F300000000000000000000000000000000047 -S31560040F400000000000000000000000000000000037 -S31560040F500000000000000000000000000000000027 -S31560040F600000000000000000000000000000000017 -S31560040F700000000000000000000000000000000007 -S31560040F8000000000000000000000000000000000F7 -S31560040F9000000000000000000000000000000000E7 -S31560040FA000000000000000000000000000000000D7 -S31560040FB000000000000000000000000000000000C7 -S31560040FC000000000000000000000000000000000B7 -S31560040FD000000000000000000000000000000000A7 -S31560040FE00000000000000000000000000000000097 -S31560040FF00000000000000000000000000000000087 -S315600410000000000000000000000000000000000076 -S315600410100000000000000000000000000000000066 -S315600410200000000000000000000000000000000056 -S315600410300000000000000000000000000000000046 -S315600410400000000000000000000000000000000036 -S315600410500000000000000000000000000000000026 -S315600410600000000000000000000000000000000016 -S315600410700000000000000000000000000000000006 -S3156004108000000000000000000000000000000000F6 -S3156004109000000000000000000000000000000000E6 -S315600410A000000000000000000000000000000000D6 -S315600410B000000000000000000000000000000000C6 -S315600410C000000000000000000000000000000000B6 -S315600410D000000000000000000000000000000000A6 -S315600410E00000000000000000000000000000000096 -S315600410F00000000000000000000000000000000086 -S315600411000000000000000000000000000000000075 -S315600411100000000000000000000000000000000065 -S315600411200000000000000000000000000000000055 -S315600411300000000000000000000000000000000045 -S315600411400000000000000000000000000000000035 -S315600411500000000000000000000000000000000025 -S315600411600000000000000000000000000000000015 -S315600411700000000000000000000000000000000005 -S3156004118000000000000000000000000000000000F5 -S3156004119000000000000000000000000000000000E5 -S315600411A000000000000000000000000000000000D5 -S315600411B000000000000000000000000000000000C5 -S315600411C000000000000000000000000000000000B5 -S315600411D000000000000000000000000000000000A5 -S315600411E00000000000000000000000000000000095 -S315600411F00000000000000000000000000000000085 -S315600412000000000000000000000000000000000074 -S315600412100000000000000000000000000000000064 -S315600412200000000000000000000000000000000054 -S315600412300000000000000000000000000000000044 -S315600412400000000000000000000000000000000034 -S315600412500000000000000000000000000000000024 -S315600412600000000000000000000000000000000014 -S315600412700000000000000000000000000000000004 -S3156004128000000000000000000000000000000000F4 -S3156004129000000000000000000000000000000000E4 -S315600412A000000000000000000000000000000000D4 -S315600412B000000000000000000000000000000000C4 -S315600412C000000000000000000000000000000000B4 -S315600412D000000000000000000000000000000000A4 -S315600412E00000000000000000000000000000000094 -S315600412F00000000000000000000000000000000084 -S315600413000000000000000000000000000000000073 -S315600413100000000000000000000000000000000063 -S315600413200000000000000000000000000000000053 -S315600413300000000000000000000000000000000043 -S315600413400000000000000000000000000000000033 -S315600413500000000000000000000000000000000023 -S315600413600000000000000000000000000000000013 -S315600413700000000000000000000000000000000003 -S3156004138000000000000000000000000000000000F3 -S3156004139000000000000000000000000000000000E3 -S315600413A000000000000000000000000000000000D3 -S315600413B000000000000000000000000000000000C3 -S315600413C000000000000000000000000000000000B3 -S315600413D000000000000000000000000000000000A3 -S315600413E00000000000000000000000000000000093 -S315600413F00000000000000000000000000000000083 -S315600414000000000000000000000000000000000072 -S315600414100000000000000000000000000000000062 -S315600414200000000000000000000000000000000052 -S315600414300000000000000000000000000000000042 -S315600414400000000000000000000000000000000032 -S315600414500000000000000000000000000000000022 -S315600414600000000000000000000000000000000012 -S315600414700000000000000000000000000000000002 -S3156004148000000000000000000000000000000000F2 -S3156004149000000000000000000000000000000000E2 -S315600414A000000000000000000000000000000000D2 -S315600414B000000000000000000000000000000000C2 -S315600414C000000000000000000000000000000000B2 -S315600414D000000000000000000000000000000000A2 -S315600414E00000000000000000000000000000000092 -S315600414F00000000000000000000000000000000082 -S315600415000000000000000000000000000000000071 -S315600415100000000000000000000000000000000061 -S315600415200000000000000000000000000000000051 -S315600415300000000000000000000000000000000041 -S315600415400000000000000000000000000000000031 -S315600415500000000000000000000000000000000021 -S315600415600000000000000000000000000000000011 -S315600415700000000000000000000000000000000001 -S3156004158000000000000000000000000000000000F1 -S3156004159000000000000000000000000000000000E1 -S315600415A000000000000000000000000000000000D1 -S315600415B000000000000000000000000000000000C1 -S315600415C000000000000000000000000000000000B1 -S315600415D000000000000000000000000000000000A1 -S315600415E00000000000000000000000000000000091 -S315600415F00000000000000000000000000000000081 -S315600416000000000000000000000000000000000070 -S315600416100000000000000000000000000000000060 -S315600416200000000000000000000000000000000050 -S315600416300000000000000000000000000000000040 -S315600416400000000000000000000000000000000030 -S315600416500000000000000000000000000000000020 -S315600416600000000000000000000000000000000010 -S315600416700000000000000000000000000000000000 -S3156004168000000000000000000000000000000000F0 -S3156004169000000000000000000000000000000000E0 -S315600416A000000000000000000000000000000000D0 -S315600416B000000000000000000000000000000000C0 -S315600416C000000000000000000000000000000000B0 -S315600416D000000000000000000000000000000000A0 -S315600416E00000000000000000000000000000000090 -S315600416F00000000000000000000000000000000080 -S31560041700000000000000000000000000000000006F -S31560041710000000000000000000000000000000005F -S31560041720000000000000000000000000000000004F -S31560041730000000000000000000000000000000003F -S31560041740000000000000000000000000000000002F -S31560041750000000000000000000000000000000001F -S31560041760000000000000000000000000000000000F -S3156004177000000000000000000000000000000000FF -S3156004178000000000000000000000000000000000EF -S3156004179000000000000000000000000000000000DF -S315600417A000000000000000000000000000000000CF -S315600417B000000000000000000000000000000000BF -S315600417C000000000000000000000000000000000AF -S315600417D0000000000000000000000000000000009F -S315600417E0000000000000000000000000000000008F -S315600417F0000000000000000000000000000000007F -S31560041800000000000000000000000000000000006E -S31560041810000000000000000000000000000000005E -S31560041820000000000000000000000000000000004E -S31560041830000000000000000000000000000000003E -S31560041840000000000000000000000000000000002E -S31560041850000000000000000000000000000000001E -S31560041860000000000000000000000000000000000E -S3156004187000000000000000000000000000000000FE -S3156004188000000000000000000000000000000000EE -S3156004189000000000000000000000000000000000DE -S315600418A000000000000000000000000000000000CE -S315600418B000000000000000000000000000000000BE -S315600418C000000000000000000000000000000000AE -S315600418D0000000000000000000000000000000009E -S315600418E0000000000000000000000000000000008E -S315600418F0000000000000000000000000000000007E -S31560041900000000000000000000000000000000006D -S31560041910000000000000000000000000000000005D -S31560041920000000000000000000000000000000004D -S31560041930000000000000000000000000000000003D -S31560041940000000000000000000000000000000002D -S31560041950000000000000000000000000000000001D -S31560041960000000000000000000000000000000000D -S3156004197000000000000000000000000000000000FD -S3156004198000000000000000000000000000000000ED -S3156004199000000000000000000000000000000000DD -S315600419A000000000000000000000000000000000CD -S315600419B000000000000000000000000000000000BD -S315600419C000000000000000000000000000000000AD -S315600419D0000000000000000000000000000000009D -S315600419E0000000000000000000000000000000008D -S315600419F0000000000000000000000000000000007D -S31560041A00000000000000000000000000000000006C -S31560041A10000000000000000000000000000000005C -S31560041A20000000000000000000000000000000004C -S31560041A30000000000000000000000000000000003C -S31560041A40000000000000000000000000000000002C -S31560041A50000000000000000000000000000000001C -S31560041A60000000000000000000000000000000000C -S31560041A7000000000000000000000000000000000FC -S31560041A8000000000000000000000000000000000EC -S31560041A9000000000000000000000000000000000DC -S31560041AA000000000000000000000000000000000CC -S31560041AB000000000000000000000000000000000BC -S31560041AC000000000000000000000000000000000AC -S31560041AD0000000000000000000000000000000009C -S31560041AE0000000000000000000000000000000008C -S31560041AF0000000000000000000000000000000007C -S31560041B00000000000000000000000000000000006B -S31560041B10000000000000000000000000000000005B -S31560041B20000000000000000000000000000000004B -S31560041B30000000000000000000000000000000003B -S31560041B40000000000000000000000000000000002B -S31560041B50000000000000000000000000000000001B -S31560041B60000000000000000000000000000000000B -S31560041B7000000000000000000000000000000000FB -S31560041B8000000000000000000000000000000000EB -S31560041B9000000000000000000000000000000000DB -S31560041BA000000000000000000000000000000000CB -S31560041BB000000000000000000000000000000000BB -S31560041BC000000000000000000000000000000000AB -S31560041BD0000000000000000000000000000000009B -S31560041BE0000000000000000000000000000000008B -S31560041BF0000000000000000000000000000000007B -S31560041C00000000000000000000000000000000006A -S31560041C10000000000000000000000000000000005A -S31560041C20000000000000000000000000000000004A -S31560041C30000000000000000000000000000000003A -S31560041C40000000000000000000000000000000002A -S31560041C50000000000000000000000000000000001A -S31560041C60000000000000000000000000000000000A -S31560041C7000000000000000000000000000000000FA -S31560041C8000000000000000000000000000000000EA -S31560041C9000000000000000000000000000000000DA -S31560041CA000000000000000000000000000000000CA -S31560041CB000000000000000000000000000000000BA -S31560041CC000000000000000000000000000000000AA -S31560041CD0000000000000000000000000000000009A -S31560041CE0000000000000000000000000000000008A -S31560041CF0000000000000000000000000000000007A -S31560041D000000000000000000000000000000000069 -S31560041D100000000000000000000000000000000059 -S31560041D200000000000000000000000000000000049 -S31560041D300000000000000000000000000000000039 -S31560041D400000000000000000000000000000000029 -S31560041D500000000000000000000000000000000019 -S31560041D600000000000000000000000000000000009 -S31560041D7000000000000000000000000000000000F9 -S31560041D8000000000000000000000000000000000E9 -S31560041D9000000000000000000000000000000000D9 -S31560041DA000000000000000000000000000000000C9 -S31560041DB000000000000000000000000000000000B9 -S31560041DC000000000000000000000000000000000A9 -S31560041DD00000000000000000000000000000000099 -S31560041DE00000000000000000000000000000000089 -S31560041DF00000000000000000000000000000000079 -S31560041E000000000000000000000000000000000068 -S31560041E100000000000000000000000000000000058 -S31560041E200000000000000000000000000000000048 -S31560041E300000000000000000000000000000000038 -S31560041E400000000000000000000000000000000028 -S31560041E500000000000000000000000000000000018 -S31560041E600000000000000000000000000000000008 -S31560041E7000000000000000000000000000000000F8 -S31560041E8000000000000000000000000000000000E8 -S31560041E9000000000000000000000000000000000D8 -S31560041EA000000000000000000000000000000000C8 -S31560041EB000000000000000000000000000000000B8 -S31560041EC000000000000000000000000000000000A8 -S31560041ED00000000000000000000000000000000098 -S31560041EE00000000000000000000000000000000088 -S31560041EF00000000000000000000000000000000078 -S31560041F000000000000000000000000000000000067 -S31560041F100000000000000000000000000000000057 -S31560041F200000000000000000000000000000000047 -S31560041F300000000000000000000000000000000037 -S31560041F400000000000000000000000000000000027 -S31560041F500000000000000000000000000000000017 -S31560041F600000000000000000000000000000000007 -S31560041F7000000000000000000000000000000000F7 -S31560041F8000000000000000000000000000000000E7 -S31560041F9000000000000000000000000000000000D7 -S31560041FA000000000000000000000000000000000C7 -S31560041FB000000000000000000000000000000000B7 -S31560041FC000000000000000000000000000000000A7 -S31560041FD00000000000000000000000000000000097 -S31560041FE00000000000000000000000000000000087 -S31560041FF00000000000000000000000000000000077 -S315600420000000000000000000000000000000000066 -S315600420100000000000000000000000000000000056 -S315600420200000000000000000000000000000000046 -S315600420300000000000000000000000000000000036 -S315600420400000000000000000000000000000000026 -S315600420500000000000000000000000000000000016 -S315600420600000000000000000000000000000000006 -S3156004207000000000000000000000000000000000F6 -S3156004208000000000000000000000000000000000E6 -S3156004209000000000000000000000000000000000D6 -S315600420A000000000000000000000000000000000C6 -S315600420B000000000000000000000000000000000B6 -S315600420C000000000000000000000000000000000A6 -S315600420D00000000000000000000000000000000096 -S315600420E00000000000000000000000000000000086 -S315600420F00000000000000000000000000000000076 -S315600421000000000000000000000000000000000065 -S315600421100000000000000000000000000000000055 -S315600421200000000000000000000000000000000045 -S315600421300000000000000000000000000000000035 -S315600421400000000000000000000000000000000025 -S315600421500000000000000000000000000000000015 -S315600421600000000000000000000000000000000005 -S3156004217000000000000000000000000000000000F5 -S3156004218000000000000000000000000000000000E5 -S3156004219000000000000000000000000000000000D5 -S315600421A000000000000000000000000000000000C5 -S315600421B000000000000000000000000000000000B5 -S315600421C000000000000000000000000000000000A5 -S315600421D00000000000000000000000000000000095 -S315600421E00000000000000000000000000000000085 -S315600421F00000000000000000000000000000000075 -S315600422000000000000000000000000000000000064 -S315600422100000000000000000000000000000000054 -S315600422200000000000000000000000000000000044 -S315600422300000000000000000000000000000000034 -S315600422400000000000000000000000000000000024 -S315600422500000000000000000000000000000000014 -S315600422600000000000000000000000000000000004 -S3156004227000000000000000000000000000000000F4 -S3156004228000000000000000000000000000000000E4 -S3156004229000000000000000000000000000000000D4 -S315600422A000000000000000000000000000000000C4 -S315600422B000000000000000000000000000000000B4 -S315600422C000000000000000000000000000000000A4 -S315600422D00000000000000000000000000000000094 -S315600422E00000000000000000000000000000000084 -S315600422F00000000000000000000000000000000074 -S315600423000000000000000000000000000000000063 -S315600423100000000000000000000000000000000053 -S315600423200000000000000000000000000000000043 -S315600423300000000000000000000000000000000033 -S315600423400000000000000000000000000000000023 -S315600423500000000000000000000000000000000013 -S315600423600000000000000000000000000000000003 -S3156004237000000000000000000000000000000000F3 -S3156004238000000000000000000000000000000000E3 -S3156004239000000000000000000000000000000000D3 -S315600423A000000000000000000000000000000000C3 -S315600423B000000000000000000000000000000000B3 -S315600423C000000000000000000000000000000000A3 -S315600423D00000000000000000000000000000000093 -S315600423E00000000000000000000000000000000083 -S315600423F00000000000000000000000000000000073 -S315600424000000000000000000000000000000000062 -S315600424100000000000000000000000000000000052 -S315600424200000000000000000000000000000000042 -S315600424300000000000000000000000000000000032 -S315600424400000000000000000000000000000000022 -S315600424500000000000000000000000000000000012 -S315600424600000000000000000000000000000000002 -S3156004247000000000000000000000000000000000F2 -S3156004248000000000000000000000000000000000E2 -S3156004249000000000000000000000000000000000D2 -S315600424A000000000000000000000000000000000C2 -S315600424B000000000000000000000000000000000B2 -S315600424C000000000000000000000000000000000A2 -S315600424D00000000000000000000000000000000092 -S315600424E00000000000000000000000000000000082 -S315600424F00000000000000000000000000000000072 -S315600425000000000000000000000000000000000061 -S315600425100000000000000000000000000000000051 -S315600425200000000000000000000000000000000041 -S315600425300000000000000000000000000000000031 -S315600425400000000000000000000000000000000021 -S315600425500000000000000000000000000000000011 -S315600425600000000000000000000000000000000001 -S3156004257000000000000000000000000000000000F1 -S3156004258000000000000000000000000000000000E1 -S3156004259000000000000000000000000000000000D1 -S315600425A000000000000000000000000000000000C1 -S315600425B000000000000000000000000000000000B1 -S315600425C000000000000000000000000000000000A1 -S315600425D00000000000000000000000000000000091 -S315600425E00000000000000000000000000000000081 -S315600425F00000000000000000000000000000000071 -S315600426000000000000000000000000000000000060 -S315600426100000000000000000000000000000000050 -S315600426200000000000000000000000000000000040 -S315600426300000000000000000000000000000000030 -S315600426400000000000000000000000000000000020 -S315600426500000000000000000000000000000000010 -S315600426600000000000000000000000000000000000 -S3156004267000000000000000000000000000000000F0 -S3156004268000000000000000000000000000000000E0 -S3156004269000000000000000000000000000000000D0 -S315600426A000000000000000000000000000000000C0 -S315600426B000000000000000000000000000000000B0 -S315600426C000000000000000000000000000000000A0 -S315600426D00000000000000000000000000000000090 -S315600426E00000000000000000000000000000000080 -S315600426F00000000000000000000000000000000070 -S31560042700000000000000000000000000000000005F -S31560042710000000000000000000000000000000004F -S31560042720000000000000000000000000000000003F -S31560042730000000000000000000000000000000002F -S31560042740000000000000000000000000000000001F -S31560042750000000000000000000000000000000000F -S3156004276000000000000000000000000000000000FF -S3156004277000000000000000000000000000000000EF -S3156004278000000000000000000000000000000000DF -S3156004279000000000000000000000000000000000CF -S315600427A000000000000000000000000000000000BF -S315600427B000000000000000000000000000000000AF -S315600427C0000000000000000000000000000000009F -S315600427D0000000000000000000000000000000008F -S315600427E0000000000000000000000000000000007F -S315600427F0000000000000000000000000000000006F -S31560042800000000000000000000000000000000005E -S31560042810000000000000000000000000000000004E -S31560042820000000000000000000000000000000003E -S31560042830000000000000000000000000000000002E -S31560042840000000000000000000000000000000001E -S31560042850000000000000000000000000000000000E -S3156004286000000000000000000000000000000000FE -S3156004287000000000000000000000000000000000EE -S3156004288000000000000000000000000000000000DE -S3156004289000000000000000000000000000000000CE -S315600428A000000000000000000000000000000000BE -S315600428B000000000000000000000000000000000AE -S315600428C0000000000000000000000000000000009E -S315600428D0000000000000000000000000000000008E -S315600428E0000000000000000000000000000000007E -S315600428F0000000000000000000000000000000006E -S31560042900000000000000000000000000000000005D -S31560042910000000000000000000000000000000004D -S31560042920000000000000000000000000000000003D -S31560042930000000000000000000000000000000002D -S31560042940000000000000000000000000000000001D -S31560042950000000000000000000000000000000000D -S3156004296000000000000000000000000000000000FD -S3156004297000000000000000000000000000000000ED -S3156004298000000000000000000000000000000000DD -S3156004299000000000000000000000000000000000CD -S315600429A000000000000000000000000000000000BD -S315600429B000000000000000000000000000000000AD -S315600429C0000000000000000000000000000000009D -S315600429D0000000000000000000000000000000008D -S315600429E0000000000000000000000000000000007D -S315600429F0000000000000000000000000000000006D -S31560042A00000000000000000000000000000000005C -S31560042A10000000000000000000000000000000004C -S31560042A20000000000000000000000000000000003C -S31560042A30000000000000000000000000000000002C -S31560042A40000000000000000000000000000000001C -S31560042A50000000000000000000000000000000000C -S31560042A6000000000000000000000000000000000FC -S31560042A7000000000000000000000000000000000EC -S31560042A8000000000000000000000000000000000DC -S31560042A9000000000000000000000000000000000CC -S31560042AA000000000000000000000000000000000BC -S31560042AB000000000000000000000000000000000AC -S31560042AC0000000000000000000000000000000009C -S31560042AD0000000000000000000000000000000008C -S31560042AE0000000000000000000000000000000007C -S31560042AF0000000000000000000000000000000006C -S31560042B00000000000000000000000000000000005B -S31560042B10000000000000000000000000000000004B -S31560042B20000000000000000000000000000000003B -S31560042B30000000000000000000000000000000002B -S31560042B40000000000000000000000000000000001B -S31560042B50000000000000000000000000000000000B -S31560042B6000000000000000000000000000000000FB -S31560042B7000000000000000000000000000000000EB -S31560042B8000000000000000000000000000000000DB -S31560042B9000000000000000000000000000000000CB -S31560042BA000000000000000000000000000000000BB -S31560042BB000000000000000000000000000000000AB -S31560042BC0000000000000000000000000000000009B -S31560042BD0000000000000000000000000000000008B -S31560042BE0000000000000000000000000000000007B -S31560042BF0000000000000000000000000000000006B -S31560042C00000000000000000000000000000000005A -S31560042C10000000000000000000000000000000004A -S31560042C20000000000000000000000000000000003A -S31560042C30000000000000000000000000000000002A -S31560042C40000000000000000000000000000000001A -S31560042C50000000000000000000000000000000000A -S31560042C6000000000000000000000000000000000FA -S31560042C7000000000000000000000000000000000EA -S31560042C8000000000000000000000000000000000DA -S31560042C9000000000000000000000000000000000CA -S31560042CA000000000000000000000000000000000BA -S31560042CB000000000000000000000000000000000AA -S31560042CC0000000000000000000000000000000009A -S31560042CD0000000000000000000000000000000008A -S31560042CE0000000000000000000000000000000007A -S31560042CF0000000000000000000000000000000006A -S31560042D000000000000000000000000000000000059 -S31560042D100000000000000000000000000000000049 -S31560042D200000000000000000000000000000000039 -S31560042D300000000000000000000000000000000029 -S31560042D400000000000000000000000000000000019 -S31560042D500000000000000000000000000000000009 -S31560042D6000000000000000000000000000000000F9 -S31560042D7000000000000000000000000000000000E9 -S31560042D8000000000000000000000000000000000D9 -S31560042D9000000000000000000000000000000000C9 -S31560042DA000000000000000000000000000000000B9 -S31560042DB000000000000000000000000000000000A9 -S31560042DC00000000000000000000000000000000099 -S31560042DD00000000000000000000000000000000089 -S31560042DE00000000000000000000000000000000079 -S31560042DF00000000000000000000000000000000069 -S31560042E000000000000000000000000000000000058 -S31560042E100000000000000000000000000000000048 -S31560042E200000000000000000000000000000000038 -S31560042E300000000000000000000000000000000028 -S31560042E400000000000000000000000000000000018 -S31560042E500000000000000000000000000000000008 -S31560042E6000000000000000000000000000000000F8 -S31560042E7000000000000000000000000000000000E8 -S31560042E8000000000000000000000000000000000D8 -S31560042E9000000000000000000000000000000000C8 -S31560042EA000000000000000000000000000000000B8 -S31560042EB000000000000000000000000000000000A8 -S31560042EC00000000000000000000000000000000098 -S31560042ED00000000000000000000000000000000088 -S31560042EE00000000000000000000000000000000078 -S31560042EF00000000000000000000000000000000068 -S31560042F000000000000000000000000000000000057 -S31560042F100000000000000000000000000000000047 -S31560042F200000000000000000000000000000000037 -S31560042F300000000000000000000000000000000027 -S31560042F400000000000000000000000000000000017 -S31560042F500000000000000000000000000000000007 -S31560042F6000000000000000000000000000000000F7 -S31560042F7000000000000000000000000000000000E7 -S31560042F8000000000000000000000000000000000D7 -S31560042F9000000000000000000000000000000000C7 -S31560042FA000000000000000000000000000000000B7 -S31560042FB000000000000000000000000000000000A7 -S31560042FC00000000000000000000000000000000097 -S31560042FD00000000000000000000000000000000087 -S31560042FE00000000000000000000000000000000077 -S31560042FF00000000000000000000000000000000067 -S315600430000000000000000000000000000000000056 -S315600430100000000000000000000000000000000046 -S315600430200000000000000000000000000000000036 -S315600430300000000000000000000000000000000026 -S315600430400000000000000000000000000000000016 -S315600430500000000000000000000000000000000006 -S3156004306000000000000000000000000000000000F6 -S3156004307000000000000000000000000000000000E6 -S3156004308000000000000000000000000000000000D6 -S3156004309000000000000000000000000000000000C6 -S315600430A000000000000000000000000000000000B6 -S315600430B000000000000000000000000000000000A6 -S315600430C00000000000000000000000000000000096 -S315600430D00000000000000000000000000000000086 -S315600430E00000000000000000000000000000000076 -S315600430F00000000000000000000000000000000066 -S315600431000000000000000000000000000000000055 -S315600431100000000000000000000000000000000045 -S315600431200000000000000000000000000000000035 -S315600431300000000000000000000000000000000025 -S315600431400000000000000000000000000000000015 -S315600431500000000000000000000000000000000005 -S3156004316000000000000000000000000000000000F5 -S3156004317000000000000000000000000000000000E5 -S3156004318000000000000000000000000000000000D5 -S3156004319000000000000000000000000000000000C5 -S315600431A000000000000000000000000000000000B5 -S315600431B000000000000000000000000000000000A5 -S315600431C00000000000000000000000000000000095 -S315600431D00000000000000000000000000000000085 -S315600431E00000000000000000000000000000000075 -S315600431F00000000000000000000000000000000065 -S315600432000000000000000000000000000000000054 -S315600432100000000000000000000000000000000044 -S315600432200000000000000000000000000000000034 -S315600432300000000000000000000000000000000024 -S315600432400000000000000000000000000000000014 -S315600432500000000000000000000000000000000004 -S3156004326000000000000000000000000000000000F4 -S3156004327000000000000000000000000000000000E4 -S3156004328000000000000000000000000000000000D4 -S3156004329000000000000000000000000000000000C4 -S315600432A000000000000000000000000000000000B4 -S315600432B000000000000000000000000000000000A4 -S315600432C00000000000000000000000000000000094 -S315600432D00000000000000000000000000000000084 -S315600432E00000000000000000000000000000000074 -S315600432F00000000000000000000000000000000064 -S315600433000000000000000000000000000000000053 -S315600433100000000000000000000000000000000043 -S315600433200000000000000000000000000000000033 -S315600433300000000000000000000000000000000023 -S315600433400000000000000000000000000000000013 -S315600433500000000000000000000000000000000003 -S3156004336000000000000000000000000000000000F3 -S3156004337000000000000000000000000000000000E3 -S3156004338000000000000000000000000000000000D3 -S3156004339000000000000000000000000000000000C3 -S315600433A000000000000000000000000000000000B3 -S315600433B000000000000000000000000000000000A3 -S315600433C00000000000000000000000000000000093 -S315600433D00000000000000000000000000000000083 -S315600433E00000000000000000000000000000000073 -S315600433F00000000000000000000000000000000063 -S315600434000000000000000000000000000000000052 -S315600434100000000000000000000000000000000042 -S315600434200000000000000000000000000000000032 -S315600434300000000000000000000000000000000022 -S315600434400000000000000000000000000000000012 -S315600434500000000000000000000000000000000002 -S3156004346000000000000000000000000000000000F2 -S3156004347000000000000000000000000000000000E2 -S3156004348000000000000000000000000000000000D2 -S3156004349000000000000000000000000000000000C2 -S315600434A000000000000000000000000000000000B2 -S315600434B000000000000000000000000000000000A2 -S315600434C00000000000000000000000000000000092 -S315600434D00000000000000000000000000000000082 -S315600434E00000000000000000000000000000000072 -S315600434F00000000000000000000000000000000062 -S315600435000000000000000000000000000000000051 -S315600435100000000000000000000000000000000041 -S315600435200000000000000000000000000000000031 -S315600435300000000000000000000000000000000021 -S315600435400000000000000000000000000000000011 -S315600435500000000000000000000000000000000001 -S3156004356000000000000000000000000000000000F1 -S3156004357000000000000000000000000000000000E1 -S3156004358000000000000000000000000000000000D1 -S3156004359000000000000000000000000000000000C1 -S315600435A000000000000000000000000000000000B1 -S315600435B000000000000000000000000000000000A1 -S315600435C00000000000000000000000000000000091 -S315600435D00000000000000000000000000000000081 -S315600435E00000000000000000000000000000000071 -S315600435F00000000000000000000000000000000061 -S315600436000000000000000000000000000000000050 -S315600436100000000000000000000000000000000040 -S315600436200000000000000000000000000000000030 -S315600436300000000000000000000000000000000020 -S315600436400000000000000000000000000000000010 -S315600436500000000000000000000000000000000000 -S3156004366000000000000000000000000000000000F0 -S3156004367000000000000000000000000000000000E0 -S3156004368000000000000000000000000000000000D0 -S3156004369000000000000000000000000000000000C0 -S315600436A000000000000000000000000000000000B0 -S315600436B000000000000000000000000000000000A0 -S315600436C00000000000000000000000000000000090 -S315600436D00000000000000000000000000000000080 -S315600436E00000000000000000000000000000000070 -S315600436F00000000000000000000000000000000060 -S31560043700000000000000000000000000000000004F -S31560043710000000000000000000000000000000003F -S31560043720000000000000000000000000000000002F -S31560043730000000000000000000000000000000001F -S31560043740000000000000000000000000000000000F -S3156004375000000000000000000000000000000000FF -S3156004376000000000000000000000000000000000EF -S3156004377000000000000000000000000000000000DF -S3156004378000000000000000000000000000000000CF -S3156004379000000000000000000000000000000000BF -S315600437A000000000000000000000000000000000AF -S315600437B0000000000000000000000000000000009F -S315600437C0000000000000000000000000000000008F -S315600437D0000000000000000000000000000000007F -S315600437E0000000000000000000000000000000006F -S315600437F0000000000000000000000000000000005F -S31560043800000000000000000000000000000000004E -S31560043810000000000000000000000000000000003E -S31560043820000000000000000000000000000000002E -S31560043830000000000000000000000000000000001E -S31560043840000000000000000000000000000000000E -S3156004385000000000000000000000000000000000FE -S3156004386000000000000000000000000000000000EE -S3156004387000000000000000000000000000000000DE -S3156004388000000000000000000000000000000000CE -S3156004389000000000000000000000000000000000BE -S315600438A000000000000000000000000000000000AE -S315600438B0000000000000000000000000000000009E -S315600438C0000000000000000000000000000000008E -S315600438D0000000000000000000000000000000007E -S315600438E0000000000000000000000000000000006E -S315600438F0000000000000000000000000000000005E -S31560043900000000000000000000000000000000004D -S31560043910000000000000000000000000000000003D -S31560043920000000000000000000000000000000002D -S31560043930000000000000000000000000000000001D -S31560043940000000000000000000000000000000000D -S3156004395000000000000000000000000000000000FD -S3156004396000000000000000000000000000000000ED -S3156004397000000000000000000000000000000000DD -S3156004398000000000000000000000000000000000CD -S3156004399000000000000000000000000000000000BD -S315600439A000000000000000000000000000000000AD -S315600439B0000000000000000000000000000000009D -S315600439C0000000000000000000000000000000008D -S315600439D0000000000000000000000000000000007D -S315600439E0000000000000000000000000000000006D -S315600439F0000000000000000000000000000000005D -S31560043A00000000000000000000000000000000004C -S31560043A10000000000000000000000000000000003C -S31560043A20000000000000000000000000000000002C -S31560043A30000000000000000000000000000000001C -S31560043A40000000000000000000000000000000000C -S31560043A5000000000000000000000000000000000FC -S31560043A6000000000000000000000000000000000EC -S31560043A7000000000000000000000000000000000DC -S31560043A8000000000000000000000000000000000CC -S31560043A9000000000000000000000000000000000BC -S31560043AA000000000000000000000000000000000AC -S31560043AB0000000000000000000000000000000009C -S31560043AC0000000000000000000000000000000008C -S31560043AD0000000000000000000000000000000007C -S31560043AE0000000000000000000000000000000006C -S31560043AF0000000000000000000000000000000005C -S31560043B00000000000000000000000000000000004B -S31560043B10000000000000000000000000000000003B -S31560043B20000000000000000000000000000000002B -S31560043B30000000000000000000000000000000001B -S31560043B40000000000000000000000000000000000B -S31560043B5000000000000000000000000000000000FB -S31560043B6000000000000000000000000000000000EB -S31560043B7000000000000000000000000000000000DB -S31560043B8000000000000000000000000000000000CB -S31560043B9000000000000000000000000000000000BB -S31560043BA000000000000000000000000000000000AB -S31560043BB0000000000000000000000000000000009B -S31560043BC0000000000000000000000000000000008B -S31560043BD0000000000000000000000000000000007B -S31560043BE0000000000000000000000000000000006B -S31560043BF0000000000000000000000000000000005B -S31560043C00000000000000000000000000000000004A -S31560043C10000000000000000000000000000000003A -S31560043C20000000000000000000000000000000002A -S31560043C30000000000000000000000000000000001A -S31560043C40000000000000000000000000000000000A -S31560043C5000000000000000000000000000000000FA -S31560043C6000000000000000000000000000000000EA -S31560043C7000000000000000000000000000000000DA -S31560043C8000000000000000000000000000000000CA -S31560043C9000000000000000000000000000000000BA -S31560043CA000000000000000000000000000000000AA -S31560043CB0000000000000000000000000000000009A -S31560043CC0000000000000000000000000000000008A -S31560043CD0000000000000000000000000000000007A -S31560043CE0000000000000000000000000000000006A -S31560043CF0000000000000000000000000000000005A -S31560043D000000000000000000000000000000000049 -S31560043D100000000000000000000000000000000039 -S31560043D200000000000000000000000000000000029 -S31560043D300000000000000000000000000000000019 -S31560043D400000000000000000000000000000000009 -S31560043D5000000000000000000000000000000000F9 -S31560043D6000000000000000000000000000000000E9 -S31560043D7000000000000000000000000000000000D9 -S31560043D8000000000000000000000000000000000C9 -S31560043D9000000000000000000000000000000000B9 -S31560043DA000000000000000000000000000000000A9 -S31560043DB00000000000000000000000000000000099 -S31560043DC00000000000000000000000000000000089 -S31560043DD00000000000000000000000000000000079 -S31560043DE00000000000000000000000000000000069 -S31560043DF00000000000000000000000000000000059 -S31560043E000000000000000000000000000000000048 -S31560043E100000000000000000000000000000000038 -S31560043E200000000000000000000000000000000028 -S31560043E300000000000000000000000000000000018 -S31560043E400000000000000000000000000000000008 -S31560043E5000000000000000000000000000000000F8 -S31560043E6000000000000000000000000000000000E8 -S31560043E7000000000000000000000000000000000D8 -S31560043E8000000000000000000000000000000000C8 -S31560043E9000000000000000000000000000000000B8 -S31560043EA000000000000000000000000000000000A8 -S31560043EB00000000000000000000000000000000098 -S31560043EC00000000000000000000000000000000088 -S31560043ED00000000000000000000000000000000078 -S31560043EE00000000000000000000000000000000068 -S31560043EF00000000000000000000000000000000058 -S31560043F000000000000000000000000000000000047 -S31560043F100000000000000000000000000000000037 -S31560043F200000000000000000000000000000000027 -S31560043F300000000000000000000000000000000017 -S31560043F400000000000000000000000000000000007 -S31560043F5000000000000000000000000000000000F7 -S31560043F6000000000000000000000000000000000E7 -S31560043F7000000000000000000000000000000000D7 -S31560043F8000000000000000000000000000000000C7 -S31560043F9000000000000000000000000000000000B7 -S31560043FA000000000000000000000000000000000A7 -S31560043FB00000000000000000000000000000000097 -S31560043FC00000000000000000000000000000000087 -S31560043FD00000000000000000000000000000000077 -S31560043FE00000000000000000000000000000000067 -S31560043FF00000000000000000000000000000000057 -S315600440000000000000000000000000000000000046 -S315600440100000000000000000000000000000000036 -S315600440200000000000000000000000000000000026 -S315600440300000000000000000000000000000000016 -S315600440400000000000000000000000000000000006 -S3156004405000000000000000000000000000000000F6 -S3156004406000000000000000000000000000000000E6 -S3156004407000000000000000000000000000000000D6 -S3156004408000000000000000000000000000000000C6 -S3156004409000000000000000000000000000000000B6 -S315600440A000000000000000000000000000000000A6 -S315600440B00000000000000000000000000000000096 -S315600440C00000000000000000000000000000000086 -S315600440D00000000000000000000000000000000076 -S315600440E00000000000000000000000000000000066 -S315600440F00000000000000000000000000000000056 -S315600441000000000000000000000000000000000045 -S315600441100000000000000000000000000000000035 -S315600441200000000000000000000000000000000025 -S315600441300000000000000000000000000000000015 -S315600441400000000000000000000000000000000005 -S3156004415000000000000000000000000000000000F5 -S3156004416000000000000000000000000000000000E5 -S3156004417000000000000000000000000000000000D5 -S3156004418000000000000000000000000000000000C5 -S3156004419000000000000000000000000000000000B5 -S315600441A000000000000000000000000000000000A5 -S315600441B00000000000000000000000000000000095 -S315600441C00000000000000000000000000000000085 -S315600441D00000000000000000000000000000000075 -S315600441E00000000000000000000000000000000065 -S315600441F00000000000000000000000000000000055 -S315600442000000000000000000000000000000000044 -S315600442100000000000000000000000000000000034 -S315600442200000000000000000000000000000000024 -S315600442300000000000000000000000000000000014 -S315600442400000000000000000000000000000000004 -S3156004425000000000000000000000000000000000F4 -S3156004426000000000000000000000000000000000E4 -S3156004427000000000000000000000000000000000D4 -S3156004428000000000000000000000000000000000C4 -S3156004429000000000000000000000000000000000B4 -S315600442A000000000000000000000000000000000A4 -S315600442B00000000000000000000000000000000094 -S315600442C00000000000000000000000000000000084 -S315600442D00000000000000000000000000000000074 -S315600442E00000000000000000000000000000000064 -S315600442F00000000000000000000000000000000054 -S315600443000000000000000000000000000000000043 -S315600443100000000000000000000000000000000033 -S315600443200000000000000000000000000000000023 -S315600443300000000000000000000000000000000013 -S315600443400000000000000000000000000000000003 -S3156004435000000000000000000000000000000000F3 -S3156004436000000000000000000000000000000000E3 -S3156004437000000000000000000000000000000000D3 -S3156004438000000000000000000000000000000000C3 -S3156004439000000000000000000000000000000000B3 -S315600443A000000000000000000000000000000000A3 -S315600443B00000000000000000000000000000000093 -S315600443C00000000000000000000000000000000083 -S315600443D00000000000000000000000000000000073 -S315600443E00000000000000000000000000000000063 -S315600443F00000000000000000000000000000000053 -S315600444000000000000000000000000000000000042 -S315600444100000000000000000000000000000000032 -S315600444200000000000000000000000000000000022 -S315600444300000000000000000000000000000000012 -S315600444400000000000000000000000000000000002 -S3156004445000000000000000000000000000000000F2 -S3156004446000000000000000000000000000000000E2 -S3156004447000000000000000000000000000000000D2 -S3156004448000000000000000000000000000000000C2 -S3156004449000000000000000000000000000000000B2 -S315600444A000000000000000000000000000000000A2 -S315600444B00000000000000000000000000000000092 -S315600444C00000000000000000000000000000000082 -S315600444D00000000000000000000000000000000072 -S315600444E00000000000000000000000000000000062 -S315600444F00000000000000000000000000000000052 -S315600445000000000000000000000000000000000041 -S315600445100000000000000000000000000000000031 -S315600445200000000000000000000000000000000021 -S315600445300000000000000000000000000000000011 -S315600445400000000000000000000000000000000001 -S3156004455000000000000000000000000000000000F1 -S3156004456000000000000000000000000000000000E1 -S3156004457000000000000000000000000000000000D1 -S3156004458000000000000000000000000000000000C1 -S3156004459000000000000000000000000000000000B1 -S315600445A000000000000000000000000000000000A1 -S315600445B00000000000000000000000000000000091 -S315600445C00000000000000000000000000000000081 -S315600445D00000000000000000000000000000000071 -S315600445E00000000000000000000000000000000061 -S315600445F00000000000000000000000000000000051 -S315600446000000000000000000000000000000000040 -S315600446100000000000000000000000000000000030 -S315600446200000000000000000000000000000000020 -S315600446300000000000000000000000000000000010 -S315600446400000000000000000000000000000000000 -S3156004465000000000000000000000000000000000F0 -S3156004466000000000000000000000000000000000E0 -S3156004467000000000000000000000000000000000D0 -S3156004468000000000000000000000000000000000C0 -S3156004469000000000000000000000000000000000B0 -S315600446A000000000000000000000000000000000A0 -S315600446B00000000000000000000000000000000090 -S315600446C00000000000000000000000000000000080 -S315600446D00000000000000000000000000000000070 -S315600446E00000000000000000000000000000000060 -S315600446F00000000000000000000000000000000050 -S31560044700000000000000000000000000000000003F -S31560044710000000000000000000000000000000002F -S31560044720000000000000000000000000000000001F -S31560044730000000000000000000000000000000000F -S3156004474000000000000000000000000000000000FF -S3156004475000000000000000000000000000000000EF -S3156004476000000000000000000000000000000000DF -S3156004477000000000000000000000000000000000CF -S3156004478000000000000000000000000000000000BF -S3156004479000000000000000000000000000000000AF -S315600447A0000000000000000000000000000000009F -S315600447B0000000000000000000000000000000008F -S315600447C0000000000000000000000000000000007F -S315600447D0000000000000000000000000000000006F -S315600447E0000000000000000000000000000000005F -S315600447F0000000000000000000000000000000004F -S31560044800000000000000000000000000000000003E -S31560044810000000000000000000000000000000002E -S31560044820000000000000000000000000000000001E -S31560044830000000000000000000000000000000000E -S3156004484000000000000000000000000000000000FE -S3156004485000000000000000000000000000000000EE -S3156004486000000000000000000000000000000000DE -S3156004487000000000000000000000000000000000CE -S3156004488000000000000000000000000000000000BE -S3156004489000000000000000000000000000000000AE -S315600448A0000000000000000000000000000000009E -S315600448B0000000000000000000000000000000008E -S315600448C0000000000000000000000000000000007E -S315600448D0000000000000000000000000000000006E -S315600448E0000000000000000000000000000000005E -S315600448F0000000000000000000000000000000004E -S31560044900000000000000000000000000000000003D -S31560044910000000000000000000000000000000002D -S31560044920000000000000000000000000000000001D -S31560044930000000000000000000000000000000000D -S3156004494000000000000000000000000000000000FD -S3156004495000000000000000000000000000000000ED -S3156004496000000000000000000000000000000000DD -S3156004497000000000000000000000000000000000CD -S3156004498000000000000000000000000000000000BD -S3156004499000000000000000000000000000000000AD -S315600449A0000000000000000000000000000000009D -S315600449B0000000000000000000000000000000008D -S315600449C0000000000000000000000000000000007D -S315600449D0000000000000000000000000000000006D -S315600449E0000000000000000000000000000000005D -S315600449F0000000000000000000000000000000004D -S31560044A00000000000000000000000000000000003C -S31560044A10000000000000000000000000000000002C -S31560044A20000000000000000000000000000000001C -S31560044A30000000000000000000000000000000000C -S31560044A4000000000000000000000000000000000FC -S31560044A5000000000000000000000000000000000EC -S31560044A6000000000000000000000000000000000DC -S31560044A7000000000000000000000000000000000CC -S31560044A8000000000000000000000000000000000BC -S31560044A9000000000000000000000000000000000AC -S31560044AA0000000000000000000000000000000009C -S31560044AB0000000000000000000000000000000008C -S31560044AC0000000000000000000000000000000007C -S31560044AD0000000000000000000000000000000006C -S31560044AE0000000000000000000000000000000005C -S31560044AF0000000000000000000000000000000004C -S31560044B00000000000000000000000000000000003B -S31560044B10000000000000000000000000000000002B -S31560044B20000000000000000000000000000000001B -S31560044B30000000000000000000000000000000000B -S31560044B4000000000000000000000000000000000FB -S31560044B5000000000000000000000000000000000EB -S31560044B6000000000000000000000000000000000DB -S31560044B7000000000000000000000000000000000CB -S31560044B8000000000000000000000000000000000BB -S31560044B9000000000000000000000000000000000AB -S31560044BA0000000000000000000000000000000009B -S31560044BB0000000000000000000000000000000008B -S31560044BC0000000000000000000000000000000007B -S31560044BD0000000000000000000000000000000006B -S31560044BE0000000000000000000000000000000005B -S31560044BF0000000000000000000000000000000004B -S31560044C00000000000000000000000000000000003A -S31560044C10000000000000000000000000000000002A -S31560044C20000000000000000000000000000000001A -S31560044C30000000000000000000000000000000000A -S31560044C4000000000000000000000000000000000FA -S31560044C5000000000000000000000000000000000EA -S31560044C6000000000000000000000000000000000DA -S31560044C7000000000000000000000000000000000CA -S31560044C8000000000000000000000000000000000BA -S31560044C9000000000000000000000000000000000AA -S31560044CA0000000000000000000000000000000009A -S31560044CB0000000000000000000000000000000008A -S31560044CC0000000000000000000000000000000007A -S31560044CD0000000000000000000000000000000006A -S31560044CE0000000000000000000000000000000005A -S31560044CF0000000000000000000000000000000004A -S31560044D000000000000000000000000000000000039 -S31560044D100000000000000000000000000000000029 -S31560044D200000000000000000000000000000000019 -S31560044D300000000000000000000000000000000009 -S31560044D4000000000000000000000000000000000F9 -S31560044D5000000000000000000000000000000000E9 -S31560044D6000000000000000000000000000000000D9 -S31560044D7000000000000000000000000000000000C9 -S31560044D8000000000000000000000000000000000B9 -S31560044D9000000000000000000000000000000000A9 -S31560044DA00000000000000000000000000000000099 -S31560044DB00000000000000000000000000000000089 -S31560044DC00000000000000000000000000000000079 -S31560044DD00000000000000000000000000000000069 -S31560044DE00000000000000000000000000000000059 -S31560044DF00000000000000000000000000000000049 -S31560044E000000000000000000000000000000000038 -S31560044E100000000000000000000000000000000028 -S31560044E200000000000000000000000000000000018 -S31560044E300000000000000000000000000000000008 -S31560044E4000000000000000000000000000000000F8 -S31560044E5000000000000000000000000000000000E8 -S31560044E6000000000000000000000000000000000D8 -S31560044E7000000000000000000000000000000000C8 -S31560044E8000000000000000000000000000000000B8 -S31560044E9000000000000000000000000000000000A8 -S31560044EA00000000000000000000000000000000098 -S31560044EB00000000000000000000000000000000088 -S31560044EC00000000000000000000000000000000078 -S31560044ED00000000000000000000000000000000068 -S31560044EE00000000000000000000000000000000058 -S31560044EF00000000000000000000000000000000048 -S31560044F000000000000000000000000000000000037 -S31560044F100000000000000000000000000000000027 -S31560044F200000000000000000000000000000000017 -S31560044F300000000000000000000000000000000007 -S31560044F4000000000000000000000000000000000F7 -S31560044F5000000000000000000000000000000000E7 -S31560044F6000000000000000000000000000000000D7 -S31560044F7000000000000000000000000000000000C7 -S31560044F8000000000000000000000000000000000B7 -S31560044F9000000000000000000000000000000000A7 -S31560044FA00000000000000000000000000000000097 -S31560044FB00000000000000000000000000000000087 -S31560044FC00000000000000000000000000000000077 -S31560044FD00000000000000000000000000000000067 -S31560044FE00000000000000000000000000000000057 -S31560044FF00000000000000000000000000000000047 -S315600450000000000000000000000000000000000036 -S315600450100000000000000000000000000000000026 -S315600450200000000000000000000000000000000016 -S315600450300000000000000000000000000000000006 -S3156004504000000000000000000000000000000000F6 -S3156004505000000000000000000000000000000000E6 -S3156004506000000000000000000000000000000000D6 -S3156004507000000000000000000000000000000000C6 -S3156004508000000000000000000000000000000000B6 -S3156004509000000000000000000000000000000000A6 -S315600450A00000000000000000000000000000000096 -S315600450B00000000000000000000000000000000086 -S315600450C00000000000000000000000000000000076 -S315600450D00000000000000000000000000000000066 -S315600450E00000000000000000000000000000000056 -S315600450F00000000000000000000000000000000046 -S315600451000000000000000000000000000000000035 -S315600451100000000000000000000000000000000025 -S315600451200000000000000000000000000000000015 -S315600451300000000000000000000000000000000005 -S3156004514000000000000000000000000000000000F5 -S3156004515000000000000000000000000000000000E5 -S3156004516000000000000000000000000000000000D5 -S3156004517000000000000000000000000000000000C5 -S3156004518000000000000000000000000000000000B5 -S3156004519000000000000000000000000000000000A5 -S315600451A00000000000000000000000000000000095 -S315600451B00000000000000000000000000000000085 -S315600451C00000000000000000000000000000000075 -S315600451D00000000000000000000000000000000065 -S315600451E00000000000000000000000000000000055 -S315600451F00000000000000000000000000000000045 -S315600452000000000000000000000000000000000034 -S315600452100000000000000000000000000000000024 -S315600452200000000000000000000000000000000014 -S315600452300000000000000000000000000000000004 -S3156004524000000000000000000000000000000000F4 -S3156004525000000000000000000000000000000000E4 -S3156004526000000000000000000000000000000000D4 -S3156004527000000000000000000000000000000000C4 -S3156004528000000000000000000000000000000000B4 -S3156004529000000000000000000000000000000000A4 -S315600452A00000000000000000000000000000000094 -S315600452B00000000000000000000000000000000084 -S315600452C00000000000000000000000000000000074 -S315600452D00000000000000000000000000000000064 -S315600452E00000000000000000000000000000000054 -S315600452F00000000000000000000000000000000044 -S315600453000000000000000000000000000000000033 -S315600453100000000000000000000000000000000023 -S315600453200000000000000000000000000000000013 -S315600453300000000000000000000000000000000003 -S3156004534000000000000000000000000000000000F3 -S3156004535000000000000000000000000000000000E3 -S3156004536000000000000000000000000000000000D3 -S3156004537000000000000000000000000000000000C3 -S3156004538000000000000000000000000000000000B3 -S3156004539000000000000000000000000000000000A3 -S315600453A00000000000000000000000000000000093 -S315600453B00000000000000000000000000000000083 -S315600453C00000000000000000000000000000000073 -S315600453D00000000000000000000000000000000063 -S315600453E00000000000000000000000000000000053 -S315600453F00000000000000000000000000000000043 -S315600454000000000000000000000000000000000032 -S315600454100000000000000000000000000000000022 -S315600454200000000000000000000000000000000012 -S315600454300000000000000000000000000000000002 -S3156004544000000000000000000000000000000000F2 -S3156004545000000000000000000000000000000000E2 -S3156004546000000000000000000000000000000000D2 -S3156004547000000000000000000000000000000000C2 -S3156004548000000000000000000000000000000000B2 -S3156004549000000000000000000000000000000000A2 -S315600454A00000000000000000000000000000000092 -S315600454B00000000000000000000000000000000082 -S315600454C00000000000000000000000000000000072 -S315600454D00000000000000000000000000000000062 -S315600454E00000000000000000000000000000000052 -S315600454F00000000000000000000000000000000042 -S315600455000000000000000000000000000000000031 -S315600455100000000000000000000000000000000021 -S315600455200000000000000000000000000000000011 -S315600455300000000000000000000000000000000001 -S3156004554000000000000000000000000000000000F1 -S3156004555000000000000000000000000000000000E1 -S3156004556000000000000000000000000000000000D1 -S3156004557000000000000000000000000000000000C1 -S3156004558000000000000000000000000000000000B1 -S3156004559000000000000000000000000000000000A1 -S315600455A00000000000000000000000000000000091 -S315600455B00000000000000000000000000000000081 -S315600455C00000000000000000000000000000000071 -S315600455D00000000000000000000000000000000061 -S315600455E00000000000000000000000000000000051 -S315600455F00000000000000000000000000000000041 -S315600456000000000000000000000000000000000030 -S315600456100000000000000000000000000000000020 -S315600456200000000000000000000000000000000010 -S315600456300000000000000000000000000000000000 -S3156004564000000000000000000000000000000000F0 -S3156004565000000000000000000000000000000000E0 -S3156004566000000000000000000000000000000000D0 -S3156004567000000000000000000000000000000000C0 -S3156004568000000000000000000000000000000000B0 -S3156004569000000000000000000000000000000000A0 -S315600456A00000000000000000000000000000000090 -S315600456B00000000000000000000000000000000080 -S315600456C00000000000000000000000000000000070 -S315600456D00000000000000000000000000000000060 -S315600456E00000000000000000000000000000000050 -S315600456F00000000000000000000000000000000040 -S31560045700000000000000000000000000000000002F -S31560045710000000000000000000000000000000001F -S31560045720000000000000000000000000000000000F -S3156004573000000000000000000000000000000000FF -S3156004574000000000000000000000000000000000EF -S3156004575000000000000000000000000000000000DF -S3156004576000000000000000000000000000000000CF -S3156004577000000000000000000000000000000000BF -S3156004578000000000000000000000000000000000AF -S31560045790000000000000000000000000000000009F -S315600457A0000000000000000000000000000000008F -S315600457B0000000000000000000000000000000007F -S315600457C0000000000000000000000000000000006F -S315600457D0000000000000000000000000000000005F -S315600457E0000000000000000000000000000000004F -S315600457F0000000000000000000000000000000003F -S31560045800000000000000000000000000000000002E -S31560045810000000000000000000000000000000001E -S31560045820000000000000000000000000000000000E -S3156004583000000000000000000000000000000000FE -S3156004584000000000000000000000000000000000EE -S3156004585000000000000000000000000000000000DE -S3156004586000000000000000000000000000000000CE -S3156004587000000000000000000000000000000000BE -S3156004588000000000000000000000000000000000AE -S31560045890000000000000000000000000000000009E -S315600458A0000000000000000000000000000000008E -S315600458B0000000000000000000000000000000007E -S315600458C0000000000000000000000000000000006E -S315600458D0000000000000000000000000000000005E -S315600458E0000000000000000000000000000000004E -S315600458F0000000000000000000000000000000003E -S31560045900000000000000000000000000000000002D -S31560045910000000000000000000000000000000001D -S31560045920000000000000000000000000000000000D -S3156004593000000000000000000000000000000000FD -S3156004594000000000000000000000000000000000ED -S3156004595000000000000000000000000000000000DD -S3156004596000000000000000000000000000000000CD -S3156004597000000000000000000000000000000000BD -S3156004598000000000000000000000000000000000AD -S31560045990000000000000000000000000000000009D -S315600459A0000000000000000000000000000000008D -S315600459B0000000000000000000000000000000007D -S315600459C0000000000000000000000000000000006D -S315600459D0000000000000000000000000000000005D -S315600459E0000000000000000000000000000000004D -S315600459F0000000000000000000000000000000003D -S31560045A00000000000000000000000000000000002C -S31560045A10000000000000000000000000000000001C -S31560045A20000000000000000000000000000000000C -S31560045A3000000000000000000000000000000000FC -S31560045A4000000000000000000000000000000000EC -S31560045A5000000000000000000000000000000000DC -S31560045A6000000000000000000000000000000000CC -S31560045A7000000000000000000000000000000000BC -S31560045A8000000000000000000000000000000000AC -S31560045A90000000000000000000000000000000009C -S31560045AA0000000000000000000000000000000008C -S31560045AB0000000000000000000000000000000007C -S31560045AC0000000000000000000000000000000006C -S31560045AD0000000000000000000000000000000005C -S31560045AE0000000000000000000000000000000004C -S31560045AF0000000000000000000000000000000003C -S31560045B00000000000000000000000000000000002B -S31560045B10000000000000000000000000000000001B -S31560045B20000000000000000000000000000000000B -S31560045B3000000000000000000000000000000000FB -S31560045B4000000000000000000000000000000000EB -S31560045B5000000000000000000000000000000000DB -S31560045B6000000000000000000000000000000000CB -S31560045B7000000000000000000000000000000000BB -S31560045B8000000000000000000000000000000000AB -S31560045B90000000000000000000000000000000009B -S31560045BA0000000000000000000000000000000008B -S31560045BB0000000000000000000000000000000007B -S31560045BC0000000000000000000000000000000006B -S31560045BD0000000000000000000000000000000005B -S31560045BE0000000000000000000000000000000004B -S31560045BF0000000000000000000000000000000003B -S31560045C00000000000000000000000000000000002A -S31560045C10000000000000000000000000000000001A -S31560045C20000000000000000000000000000000000A -S31560045C3000000000000000000000000000000000FA -S31560045C4000000000000000000000000000000000EA -S31560045C5000000000000000000000000000000000DA -S31560045C6000000000000000000000000000000000CA -S31560045C7000000000000000000000000000000000BA -S31560045C8000000000000000000000000000000000AA -S31560045C90000000000000000000000000000000009A -S31560045CA0000000000000000000000000000000008A -S31560045CB0000000000000000000000000000000007A -S31560045CC0000000000000000000000000000000006A -S31560045CD0000000000000000000000000000000005A -S31560045CE0000000000000000000000000000000004A -S31560045CF0000000000000000000000000000000003A -S31560045D000000000000000000000000000000000029 -S31560045D100000000000000000000000000000000019 -S31560045D200000000000000000000000000000000009 -S31560045D3000000000000000000000000000000000F9 -S31560045D4000000000000000000000000000000000E9 -S31560045D5000000000000000000000000000000000D9 -S31560045D6000000000000000000000000000000000C9 -S31560045D7000000000000000000000000000000000B9 -S31560045D8000000000000000000000000000000000A9 -S31560045D900000000000000000000000000000000099 -S31560045DA00000000000000000000000000000000089 -S31560045DB00000000000000000000000000000000079 -S31560045DC00000000000000000000000000000000069 -S31560045DD00000000000000000000000000000000059 -S31560045DE00000000000000000000000000000000049 -S31560045DF00000000000000000000000000000000039 -S31560045E000000000000000000000000000000000028 -S31560045E100000000000000000000000000000000018 -S31560045E200000000000000000000000000000000008 -S31560045E3000000000000000000000000000000000F8 -S31560045E4000000000000000000000000000000000E8 -S31560045E5000000000000000000000000000000000D8 -S31560045E6000000000000000000000000000000000C8 -S31560045E7000000000000000000000000000000000B8 -S31560045E8000000000000000000000000000000000A8 -S31560045E900000000000000000000000000000000098 -S31560045EA00000000000000000000000000000000088 -S31560045EB00000000000000000000000000000000078 -S31560045EC00000000000000000000000000000000068 -S31560045ED00000000000000000000000000000000058 -S31560045EE00000000000000000000000000000000048 -S31560045EF00000000000000000000000000000000038 -S31560045F000000000000000000000000000000000027 -S31560045F100000000000000000000000000000000017 -S31560045F200000000000000000000000000000000007 -S31560045F3000000000000000000000000000000000F7 -S31560045F4000000000000000000000000000000000E7 -S31560045F5000000000000000000000000000000000D7 -S31560045F6000000000000000000000000000000000C7 -S31560045F7000000000000000000000000000000000B7 -S31560045F8000000000000000000000000000000000A7 -S31560045F900000000000000000000000000000000097 -S31560045FA00000000000000000000000000000000087 -S31560045FB00000000000000000000000000000000077 -S31560045FC00000000000000000000000000000000067 -S31560045FD00000000000000000000000000000000057 -S31560045FE00000000000000000000000000000000047 -S31560045FF00000000000000000000000000000000037 -S315600460000000000000000000000000000000000026 -S315600460100000000000000000000000000000000016 -S315600460200000000000000000000000000000000006 -S3156004603000000000000000000000000000000000F6 -S3156004604000000000000000000000000000000000E6 -S3156004605000000000000000000000000000000000D6 -S3156004606000000000000000000000000000000000C6 -S3156004607000000000000000000000000000000000B6 -S3156004608000000000000000000000000000000000A6 -S315600460900000000000000000000000000000000096 -S315600460A00000000000000000000000000000000086 -S315600460B00000000000000000000000000000000076 -S315600460C00000000000000000000000000000000066 -S315600460D00000000000000000000000000000000056 -S315600460E00000000000000000000000000000000046 -S315600460F00000000000000000000000000000000036 -S315600461000000000000000000000000000000000025 -S315600461100000000000000000000000000000000015 -S315600461200000000000000000000000000000000005 -S3156004613000000000000000000000000000000000F5 -S3156004614000000000000000000000000000000000E5 -S3156004615000000000000000000000000000000000D5 -S3156004616000000000000000000000000000000000C5 -S3156004617000000000000000000000000000000000B5 -S3156004618000000000000000000000000000000000A5 -S315600461900000000000000000000000000000000095 -S315600461A00000000000000000000000000000000085 -S315600461B00000000000000000000000000000000075 -S315600461C00000000000000000000000000000000065 -S315600461D00000000000000000000000000000000055 -S315600461E00000000000000000000000000000000045 -S315600461F00000000000000000000000000000000035 -S315600462000000000000000000000000000000000024 -S315600462100000000000000000000000000000000014 -S315600462200000000000000000000000000000000004 -S3156004623000000000000000000000000000000000F4 -S3156004624000000000000000000000000000000000E4 -S3156004625000000000000000000000000000000000D4 -S3156004626000000000000000000000000000000000C4 -S3156004627000000000000000000000000000000000B4 -S3156004628000000000000000000000000000000000A4 -S315600462900000000000000000000000000000000094 -S315600462A00000000000000000000000000000000084 -S315600462B00000000000000000000000000000000074 -S315600462C00000000000000000000000000000000064 -S315600462D00000000000000000000000000000000054 -S315600462E00000000000000000000000000000000044 -S315600462F00000000000000000000000000000000034 -S315600463000000000000000000000000000000000023 -S315600463100000000000000000000000000000000013 -S315600463200000000000000000000000000000000003 -S3156004633000000000000000000000000000000000F3 -S3156004634000000000000000000000000000000000E3 -S3156004635000000000000000000000000000000000D3 -S3156004636000000000000000000000000000000000C3 -S3156004637000000000000000000000000000000000B3 -S3156004638000000000000000000000000000000000A3 -S315600463900000000000000000000000000000000093 -S315600463A00000000000000000000000000000000083 -S315600463B00000000000000000000000000000000073 -S315600463C00000000000000000000000000000000063 -S315600463D00000000000000000000000000000000053 -S315600463E00000000000000000000000000000000043 -S315600463F00000000000000000000000000000000033 -S315600464000000000000000000000000000000000022 -S315600464100000000000000000000000000000000012 -S315600464200000000000000000000000000000000002 -S3156004643000000000000000000000000000000000F2 -S3156004644000000000000000000000000000000000E2 -S3156004645000000000000000000000000000000000D2 -S3156004646000000000000000000000000000000000C2 -S3156004647000000000000000000000000000000000B2 -S3156004648000000000000000000000000000000000A2 -S315600464900000000000000000000000000000000092 -S315600464A00000000000000000000000000000000082 -S315600464B00000000000000000000000000000000072 -S315600464C00000000000000000000000000000000062 -S315600464D00000000000000000000000000000000052 -S315600464E00000000000000000000000000000000042 -S315600464F00000000000000000000000000000000032 -S315600465000000000000000000000000000000000021 -S315600465100000000000000000000000000000000011 -S315600465200000000000000000000000000000000001 -S3156004653000000000000000000000000000000000F1 -S3156004654000000000000000000000000000000000E1 -S3156004655000000000000000000000000000000000D1 -S3156004656000000000000000000000000000000000C1 -S3156004657000000000000000000000000000000000B1 -S3156004658000000000000000000000000000000000A1 -S315600465900000000000000000000000000000000091 -S315600465A00000000000000000000000000000000081 -S315600465B00000000000000000000000000000000071 -S315600465C00000000000000000000000000000000061 -S315600465D00000000000000000000000000000000051 -S315600465E00000000000000000000000000000000041 -S315600465F00000000000000000000000000000000031 -S315600466000000000000000000000000000000000020 -S315600466100000000000000000000000000000000010 -S315600466200000000000000000000000000000000000 -S3156004663000000000000000000000000000000000F0 -S3156004664000000000000000000000000000000000E0 -S3156004665000000000000000000000000000000000D0 -S3156004666000000000000000000000000000000000C0 -S3156004667000000000000000000000000000000000B0 -S3156004668000000000000000000000000000000000A0 -S315600466900000000000000000000000000000000090 -S315600466A00000000000000000000000000000000080 -S315600466B00000000000000000000000000000000070 -S315600466C00000000000000000000000000000000060 -S315600466D00000000000000000000000000000000050 -S315600466E00000000000000000000000000000000040 -S315600466F00000000000000000000000000000000030 -S31560046700000000000000000000000000000000001F -S31560046710000000000000000000000000000000000F -S3156004672000000000000000000000000000000000FF -S3156004673000000000000000000000000000000000EF -S3156004674000000000000000000000000000000000DF -S3156004675000000000000000000000000000000000CF -S3156004676000000000000000000000000000000000BF -S3156004677000000000000000000000000000000000AF -S31560046780000000000000000000000000000000009F -S31560046790000000000000000000000000000000008F -S315600467A0000000000000000000000000000000007F -S315600467B0000000000000000000000000000000006F -S315600467C0000000000000000000000000000000005F -S315600467D0000000000000000000000000000000004F -S315600467E0000000000000000000000000000000003F -S315600467F0000000000000000000000000000000002F -S31560046800000000000000000000000000000000001E -S31560046810000000000000000000000000000000000E -S3156004682000000000000000000000000000000000FE -S3156004683000000000000000000000000000000000EE -S3156004684000000000000000000000000000000000DE -S3156004685000000000000000000000000000000000CE -S3156004686000000000000000000000000000000000BE -S3156004687000000000000000000000000000000000AE -S31560046880000000000000000000000000000000009E -S31560046890000000000000000000000000000000008E -S315600468A0000000000000000000000000000000007E -S315600468B0000000000000000000000000000000006E -S315600468C0000000000000000000000000000000005E -S315600468D0000000000000000000000000000000004E -S315600468E0000000000000000000000000000000003E -S315600468F0000000000000000000000000000000002E -S31560046900000000000000000000000000000000001D -S31560046910000000000000000000000000000000000D -S3156004692000000000000000000000000000000000FD -S3156004693000000000000000000000000000000000ED -S3156004694000000000000000000000000000000000DD -S3156004695000000000000000000000000000000000CD -S3156004696000000000000000000000000000000000BD -S3156004697000000000000000000000000000000000AD -S31560046980000000000000000000000000000000009D -S31560046990000000000000000000000000000000008D -S315600469A0000000000000000000000000000000007D -S315600469B0000000000000000000000000000000006D -S315600469C0000000000000000000000000000000005D -S315600469D0000000000000000000000000000000004D -S315600469E0000000000000000000000000000000003D -S315600469F0000000000000000000000000000000002D -S31560046A00000000000000000000000000000000001C -S31560046A10000000000000000000000000000000000C -S31560046A2000000000000000000000000000000000FC -S31560046A3000000000000000000000000000000000EC -S31560046A4000000000000000000000000000000000DC -S31560046A5000000000000000000000000000000000CC -S31560046A6000000000000000000000000000000000BC -S31560046A7000000000000000000000000000000000AC -S31560046A80000000000000000000000000000000009C -S31560046A90000000000000000000000000000000008C -S31560046AA0000000000000000000000000000000007C -S31560046AB0000000000000000000000000000000006C -S31560046AC0000000000000000000000000000000005C -S31560046AD0000000000000000000000000000000004C -S31560046AE0000000000000000000000000000000003C -S31560046AF0000000000000000000000000000000002C -S31560046B00000000000000000000000000000000001B -S31560046B10000000000000000000000000000000000B -S31560046B2000000000000000000000000000000000FB -S31560046B3000000000000000000000000000000000EB -S31560046B4000000000000000000000000000000000DB -S31560046B5000000000000000000000000000000000CB -S31560046B6000000000000000000000000000000000BB -S31560046B7000000000000000000000000000000000AB -S31560046B80000000000000000000000000000000009B -S31560046B90000000000000000000000000000000008B -S31560046BA0000000000000000000000000000000007B -S31560046BB0000000000000000000000000000000006B -S31560046BC0000000000000000000000000000000005B -S31560046BD0000000000000000000000000000000004B -S31560046BE0000000000000000000000000000000003B -S31560046BF0000000000000000000000000000000002B -S31560046C00000000000000000000000000000000001A -S31560046C10000000000000000000000000000000000A -S31560046C2000000000000000000000000000000000FA -S31560046C3000000000000000000000000000000000EA -S31560046C4000000000000000000000000000000000DA -S31560046C5000000000000000000000000000000000CA -S31560046C6000000000000000000000000000000000BA -S31560046C7000000000000000000000000000000000AA -S31560046C80000000000000000000000000000000009A -S31560046C90000000000000000000000000000000008A -S31560046CA0000000000000000000000000000000007A -S31560046CB0000000000000000000000000000000006A -S31560046CC0000000000000000000000000000000005A -S31560046CD0000000000000000000000000000000004A -S31560046CE0000000000000000000000000000000003A -S31560046CF0000000000000000000000000000000002A -S31560046D000000000000000000000000000000000019 -S31560046D100000000000000000000000000000000009 -S31560046D2000000000000000000000000000000000F9 -S31560046D3000000000000000000000000000000000E9 -S31560046D4000000000000000000000000000000000D9 -S31560046D5000000000000000000000000000000000C9 -S31560046D6000000000000000000000000000000000B9 -S31560046D7000000000000000000000000000000000A9 -S31560046D800000000000000000000000000000000099 -S31560046D900000000000000000000000000000000089 -S31560046DA00000000000000000000000000000000079 -S31560046DB00000000000000000000000000000000069 -S31560046DC00000000000000000000000000000000059 -S31560046DD00000000000000000000000000000000049 -S31560046DE00000000000000000000000000000000039 -S31560046DF00000000000000000000000000000000029 -S31560046E000000000000000000000000000000000018 -S31560046E100000000000000000000000000000000008 -S31560046E2000000000000000000000000000000000F8 -S31560046E3000000000000000000000000000000000E8 -S31560046E4000000000000000000000000000000000D8 -S31560046E5000000000000000000000000000000000C8 -S31560046E6000000000000000000000000000000000B8 -S31560046E7000000000000000000000000000000000A8 -S31560046E800000000000000000000000000000000098 -S31560046E900000000000000000000000000000000088 -S31560046EA00000000000000000000000000000000078 -S31560046EB00000000000000000000000000000000068 -S31560046EC00000000000000000000000000000000058 -S31560046ED00000000000000000000000000000000048 -S31560046EE00000000000000000000000000000000038 -S31560046EF00000000000000000000000000000000028 -S31560046F000000000000000000000000000000000017 -S31560046F100000000000000000000000000000000007 -S31560046F2000000000000000000000000000000000F7 -S31560046F3000000000000000000000000000000000E7 -S31560046F4000000000000000000000000000000000D7 -S31560046F5000000000000000000000000000000000C7 -S31560046F6000000000000000000000000000000000B7 -S31560046F7000000000000000000000000000000000A7 -S31560046F800000000000000000000000000000000097 -S31560046F900000000000000000000000000000000087 -S31560046FA00000000000000000000000000000000077 -S31560046FB00000000000000000000000000000000067 -S31560046FC00000000000000000000000000000000057 -S31560046FD00000000000000000000000000000000047 -S31560046FE00000000000000000000000000000000037 -S31560046FF00000000000000000000000000000000027 -S315600470000000000000000000000000000000000016 -S315600470100000000000000000000000000000000006 -S3156004702000000000000000000000000000000000F6 -S3156004703000000000000000000000000000000000E6 -S3156004704000000000000000000000000000000000D6 -S3156004705000000000000000000000000000000000C6 -S3156004706000000000000000000000000000000000B6 -S3156004707000000000000000000000000000000000A6 -S315600470800000000000000000000000000000000096 -S315600470900000000000000000000000000000000086 -S315600470A00000000000000000000000000000000076 -S315600470B00000000000000000000000000000000066 -S315600470C00000000000000000000000000000000056 -S315600470D00000000000000000000000000000000046 -S315600470E00000000000000000000000000000000036 -S315600470F00000000000000000000000000000000026 -S315600471000000000000000000000000000000000015 -S315600471100000000000000000000000000000000005 -S3156004712000000000000000000000000000000000F5 -S3156004713000000000000000000000000000000000E5 -S3156004714000000000000000000000000000000000D5 -S3156004715000000000000000000000000000000000C5 -S3156004716000000000000000000000000000000000B5 -S3156004717000000000000000000000000000000000A5 -S315600471800000000000000000000000000000000095 -S315600471900000000000000000000000000000000085 -S315600471A00000000000000000000000000000000075 -S315600471B00000000000000000000000000000000065 -S315600471C00000000000000000000000000000000055 -S315600471D00000000000000000000000000000000045 -S315600471E00000000000000000000000000000000035 -S315600471F00000000000000000000000000000000025 -S315600472000000000000000000000000000000000014 -S315600472100000000000000000000000000000000004 -S3156004722000000000000000000000000000000000F4 -S3156004723000000000000000000000000000000000E4 -S3156004724000000000000000000000000000000000D4 -S3156004725000000000000000000000000000000000C4 -S3156004726000000000000000000000000000000000B4 -S3156004727000000000000000000000000000000000A4 -S315600472800000000000000000000000000000000094 -S315600472900000000000000000000000000000000084 -S315600472A00000000000000000000000000000000074 -S315600472B00000000000000000000000000000000064 -S315600472C00000000000000000000000000000000054 -S315600472D00000000000000000000000000000000044 -S315600472E00000000000000000000000000000000034 -S315600472F00000000000000000000000000000000024 -S315600473000000000000000000000000000000000013 -S315600473100000000000000000000000000000000003 -S3156004732000000000000000000000000000000000F3 -S3156004733000000000000000000000000000000000E3 -S3156004734000000000000000000000000000000000D3 -S3156004735000000000000000000000000000000000C3 -S3156004736000000000000000000000000000000000B3 -S3156004737000000000000000000000000000000000A3 -S315600473800000000000000000000000000000000093 -S315600473900000000000000000000000000000000083 -S315600473A00000000000000000000000000000000073 -S315600473B00000000000000000000000000000000063 -S315600473C00000000000000000000000000000000053 -S315600473D00000000000000000000000000000000043 -S315600473E00000000000000000000000000000000033 -S315600473F00000000000000000000000000000000023 -S315600474000000000000000000000000000000000012 -S315600474100000000000000000000000000000000002 -S3156004742000000000000000000000000000000000F2 -S3156004743000000000000000000000000000000000E2 -S3156004744000000000000000000000000000000000D2 -S3156004745000000000000000000000000000000000C2 -S3156004746000000000000000000000000000000000B2 -S3156004747000000000000000000000000000000000A2 -S315600474800000000000000000000000000000000092 -S315600474900000000000000000000000000000000082 -S315600474A00000000000000000000000000000000072 -S315600474B00000000000000000000000000000000062 -S315600474C00000000000000000000000000000000052 -S315600474D00000000000000000000000000000000042 -S315600474E00000000000000000000000000000000032 -S315600474F00000000000000000000000000000000022 -S315600475000000000000000000000000000000000011 -S315600475100000000000000000000000000000000001 -S3156004752000000000000000000000000000000000F1 -S3156004753000000000000000000000000000000000E1 -S3156004754000000000000000000000000000000000D1 -S3156004755000000000000000000000000000000000C1 -S3156004756000000000000000000000000000000000B1 -S3156004757000000000000000000000000000000000A1 -S315600475800000000000000000000000000000000091 -S315600475900000000000000000000000000000000081 -S315600475A00000000000000000000000000000000071 -S315600475B00000000000000000000000000000000061 -S315600475C00000000000000000000000000000000051 -S315600475D00000000000000000000000000000000041 -S315600475E00000000000000000000000000000000031 -S315600475F00000000000000000000000000000000021 -S315600476000000000000000000000000000000000010 -S315600476100000000000000000000000000000000000 -S3156004762000000000000000000000000000000000F0 -S3156004763000000000000000000000000000000000E0 -S3156004764000000000000000000000000000000000D0 -S3156004765000000000000000000000000000000000C0 -S3156004766000000000000000000000000000000000B0 -S3156004767000000000000000000000000000000000A0 -S315600476800000000000000000000000000000000090 -S315600476900000000000000000000000000000000080 -S315600476A00000000000000000000000000000000070 -S315600476B00000000000000000000000000000000060 -S315600476C00000000000000000000000000000000050 -S315600476D00000000000000000000000000000000040 -S315600476E00000000000000000000000000000000030 -S315600476F00000000000000000000000000000000020 -S31560047700000000000000000000000000000000000F -S3156004771000000000000000000000000000000000FF -S3156004772000000000000000000000000000000000EF -S3156004773000000000000000000000000000000000DF -S3156004774000000000000000000000000000000000CF -S3156004775000000000000000000000000000000000BF -S3156004776000000000000000000000000000000000AF -S31560047770000000000000000000000000000000009F -S31560047780000000000000000000000000000000008F -S31560047790000000000000000000000000000000007F -S315600477A0000000000000000000000000000000006F -S315600477B0000000000000000000000000000000005F -S315600477C0000000000000000000000000000000004F -S315600477D0000000000000000000000000000000003F -S315600477E0000000000000000000000000000000002F -S315600477F0000000000000000000000000000000001F -S31560047800000000000000000000000000000000000E -S3156004781000000000000000000000000000000000FE -S3156004782000000000000000000000000000000000EE -S3156004783000000000000000000000000000000000DE -S3156004784000000000000000000000000000000000CE -S3156004785000000000000000000000000000000000BE -S3156004786000000000000000000000000000000000AE -S31560047870000000000000000000000000000000009E -S31560047880000000000000000000000000000000008E -S31560047890000000000000000000000000000000007E -S315600478A0000000000000000000000000000000006E -S315600478B0000000000000000000000000000000005E -S315600478C0000000000000000000000000000000004E -S315600478D0000000000000000000000000000000003E -S315600478E0000000000000000000000000000000002E -S315600478F0000000000000000000000000000000001E -S31560047900000000000000000000000000000000000D -S3156004791000000000000000000000000000000000FD -S3156004792000000000000000000000000000000000ED -S3156004793000000000000000000000000000000000DD -S3156004794000000000000000000000000000000000CD -S3156004795000000000000000000000000000000000BD -S3156004796000000000000000000000000000000000AD -S31560047970000000000000000000000000000000009D -S31560047980000000000000000000000000000000008D -S31560047990000000000000000000000000000000007D -S315600479A0000000000000000000000000000000006D -S315600479B0000000000000000000000000000000005D -S315600479C0000000000000000000000000000000004D -S315600479D0000000000000000000000000000000003D -S315600479E0000000000000000000000000000000002D -S315600479F0000000000000000000000000000000001D -S31560047A00000000000000000000000000000000000C -S31560047A1000000000000000000000000000000000FC -S31560047A2000000000000000000000000000000000EC -S31560047A3000000000000000000000000000000000DC -S31560047A4000000000000000000000000000000000CC -S31560047A5000000000000000000000000000000000BC -S31560047A6000000000000000000000000000000000AC -S31560047A70000000000000000000000000000000009C -S31560047A80000000000000000000000000000000008C -S31560047A90000000000000000000000000000000007C -S31560047AA0000000000000000000000000000000006C -S31560047AB0000000000000000000000000000000005C -S31560047AC0000000000000000000000000000000004C -S31560047AD0000000000000000000000000000000003C -S31560047AE0000000000000000000000000000000002C -S31560047AF0000000000000000000000000000000001C -S31560047B00000000000000000000000000000000000B -S31560047B1000000000000000000000000000000000FB -S31560047B2000000000000000000000000000000000EB -S31560047B3000000000000000000000000000000000DB -S31560047B4000000000000000000000000000000000CB -S31560047B5000000000000000000000000000000000BB -S31560047B6000000000000000000000000000000000AB -S31560047B70000000000000000000000000000000009B -S31560047B80000000000000000000000000000000008B -S31560047B90000000000000000000000000000000007B -S31560047BA0000000000000000000000000000000006B -S31560047BB0000000000000000000000000000000005B -S31560047BC0000000000000000000000000000000004B -S31560047BD0000000000000000000000000000000003B -S31560047BE0000000000000000000000000000000002B -S31560047BF0000000000000000000000000000000001B -S31560047C00000000000000000000000000000000000A -S31560047C1000000000000000000000000000000000FA -S31560047C2000000000000000000000000000000000EA -S31560047C3000000000000000000000000000000000DA -S31560047C4000000000000000000000000000000000CA -S31560047C5000000000000000000000000000000000BA -S31560047C6000000000000000000000000000000000AA -S31560047C70000000000000000000000000000000009A -S31560047C80000000000000000000000000000000008A -S31560047C90000000000000000000000000000000007A -S31560047CA0000000000000000000000000000000006A -S31560047CB0000000000000000000000000000000005A -S31560047CC0000000000000000000000000000000004A -S31560047CD0000000000000000000000000000000003A -S31560047CE0000000000000000000000000000000002A -S31560047CF0000000000000000000000000000000001A -S31560047D000000000000000000000000000000000009 -S31560047D1000000000000000000000000000000000F9 -S31560047D2000000000000000000000000000000000E9 -S31560047D3000000000000000000000000000000000D9 -S31560047D4000000000000000000000000000000000C9 -S31560047D5000000000000000000000000000000000B9 -S31560047D6000000000000000000000000000000000A9 -S31560047D700000000000000000000000000000000099 -S31560047D800000000000000000000000000000000089 -S31560047D900000000000000000000000000000000079 -S31560047DA00000000000000000000000000000000069 -S31560047DB00000000000000000000000000000000059 -S31560047DC00000000000000000000000000000000049 -S31560047DD00000000000000000000000000000000039 -S31560047DE00000000000000000000000000000000029 -S31560047DF00000000000000000000000000000000019 -S31560047E000000000000000000000000000000000008 -S31560047E1000000000000000000000000000000000F8 -S31560047E2000000000000000000000000000000000E8 -S31560047E3000000000000000000000000000000000D8 -S31560047E4000000000000000000000000000000000C8 -S31560047E5000000000000000000000000000000000B8 -S31560047E6000000000000000000000000000000000A8 -S31560047E700000000000000000000000000000000098 -S31560047E800000000000000000000000000000000088 -S31560047E900000000000000000000000000000000078 -S31560047EA00000000000000000000000000000000068 -S31560047EB00000000000000000000000000000000058 -S31560047EC00000000000000000000000000000000048 -S31560047ED00000000000000000000000000000000038 -S31560047EE00000000000000000000000000000000028 -S31560047EF00000000000000000000000000000000018 -S31560047F000000000000000000000000000000000007 -S31560047F1000000000000000000000000000000000F7 -S31560047F2000000000000000000000000000000000E7 -S31560047F3000000000000000000000000000000000D7 -S31560047F4000000000000000000000000000000000C7 -S31560047F5000000000000000000000000000000000B7 -S31560047F6000000000000000000000000000000000A7 -S31560047F700000000000000000000000000000000097 -S31560047F800000000000000000000000000000000087 -S31560047F900000000000000000000000000000000077 -S31560047FA00000000000000000000000000000000067 -S31560047FB00000000000000000000000000000000057 -S31560047FC00000000000000000000000000000000047 -S31560047FD00000000000000000000000000000000037 -S31560047FE00000000000000000000000000000000027 -S31560047FF00000000000000000000000000000000017 -S315600480000000000000000000000000000000000006 -S3156004801000000000000000000000000000000000F6 -S3156004802000000000000000000000000000000000E6 -S3156004803000000000000000000000000000000000D6 -S3156004804000000000000000000000000000000000C6 -S3156004805000000000000000000000000000000000B6 -S3156004806000000000000000000000000000000000A6 -S315600480700000000000000000000000000000000096 -S315600480800000000000000000000000000000000086 -S315600480900000000000000000000000000000000076 -S315600480A00000000000000000000000000000000066 -S315600480B00000000000000000000000000000000056 -S315600480C00000000000000000000000000000000046 -S315600480D00000000000000000000000000000000036 -S315600480E00000000000000000000000000000000026 -S315600480F00000000000000000000000000000000016 -S315600481000000000000000000000000000000000005 -S3156004811000000000000000000000000000000000F5 -S3156004812000000000000000000000000000000000E5 -S3156004813000000000000000000000000000000000D5 -S3156004814000000000000000000000000000000000C5 -S3156004815000000000000000000000000000000000B5 -S3156004816000000000000000000000000000000000A5 -S315600481700000000000000000000000000000000095 -S315600481800000000000000000000000000000000085 -S315600481900000000000000000000000000000000075 -S315600481A00000000000000000000000000000000065 -S315600481B00000000000000000000000000000000055 -S315600481C00000000000000000000000000000000045 -S315600481D00000000000000000000000000000000035 -S315600481E00000000000000000000000000000000025 -S315600481F00000000000000000000000000000000015 -S315600482000000000000000000000000000000000004 -S3156004821000000000000000000000000000000000F4 -S3156004822000000000000000000000000000000000E4 -S3156004823000000000000000000000000000000000D4 -S3156004824000000000000000000000000000000000C4 -S3156004825000000000000000000000000000000000B4 -S3156004826000000000000000000000000000000000A4 -S315600482700000000000000000000000000000000094 -S315600482800000000000000000000000000000000084 -S315600482900000000000000000000000000000000074 -S315600482A00000000000000000000000000000000064 -S315600482B00000000000000000000000000000000054 -S315600482C00000000000000000000000000000000044 -S315600482D00000000000000000000000000000000034 -S315600482E00000000000000000000000000000000024 -S315600482F00000000000000000000000000000000014 -S315600483000000000000000000000000000000000003 -S3156004831000000000000000000000000000000000F3 -S3156004832000000000000000000000000000000000E3 -S3156004833000000000000000000000000000000000D3 -S3156004834000000000000000000000000000000000C3 -S3156004835000000000000000000000000000000000B3 -S3156004836000000000000000000000000000000000A3 -S315600483700000000000000000000000000000000093 -S315600483800000000000000000000000000000000083 -S315600483900000000000000000000000000000000073 -S315600483A00000000000000000000000000000000063 -S315600483B00000000000000000000000000000000053 -S315600483C00000000000000000000000000000000043 -S315600483D00000000000000000000000000000000033 -S315600483E00000000000000000000000000000000023 -S315600483F00000000000000000000000000000000013 -S315600484000000000000000000000000000000000002 -S3156004841000000000000000000000000000000000F2 -S3156004842000000000000000000000000000000000E2 -S3156004843000000000000000000000000000000000D2 -S3156004844000000000000000000000000000000000C2 -S3156004845000000000000000000000000000000000B2 -S3156004846000000000000000000000000000000000A2 -S315600484700000000000000000000000000000000092 -S315600484800000000000000000000000000000000082 -S315600484900000000000000000000000000000000072 -S315600484A00000000000000000000000000000000062 -S315600484B00000000000000000000000000000000052 -S315600484C00000000000000000000000000000000042 -S315600484D00000000000000000000000000000000032 -S315600484E00000000000000000000000000000000022 -S315600484F00000000000000000000000000000000012 -S315600485000000000000000000000000000000000001 -S3156004851000000000000000000000000000000000F1 -S3156004852000000000000000000000000000000000E1 -S3156004853000000000000000000000000000000000D1 -S3156004854000000000000000000000000000000000C1 -S3156004855000000000000000000000000000000000B1 -S3156004856000000000000000000000000000000000A1 -S315600485700000000000000000000000000000000091 -S315600485800000000000000000000000000000000081 -S315600485900000000000000000000000000000000071 -S315600485A00000000000000000000000000000000061 -S315600485B00000000000000000000000000000000051 -S315600485C00000000000000000000000000000000041 -S315600485D00000000000000000000000000000000031 -S315600485E00000000000000000000000000000000021 -S315600485F00000000000000000000000000000000011 -S315600486000000000000000000000000000000000000 -S3156004861000000000000000000000000000000000F0 -S3156004862000000000000000000000000000000000E0 -S3156004863000000000000000000000000000000000D0 -S3156004864000000000000000000000000000000000C0 -S3156004865000000000000000000000000000000000B0 -S3156004866000000000000000000000000000000000A0 -S315600486700000000000000000000000000000000090 -S315600486800000000000000000000000000000000080 -S315600486900000000000000000000000000000000070 -S315600486A00000000000000000000000000000000060 -S315600486B00000000000000000000000000000000050 -S315600486C00000000000000000000000000000000040 -S315600486D00000000000000000000000000000000030 -S315600486E00000000000000000000000000000000020 -S315600486F00000000000000000000000000000000010 -S3156004870000000000000000000000000000000000FF -S3156004871000000000000000000000000000000000EF -S3156004872000000000000000000000000000000000DF -S3156004873000000000000000000000000000000000CF -S3156004874000000000000000000000000000000000BF -S3156004875000000000000000000000000000000000AF -S31560048760000000000000000000000000000000009F -S31560048770000000000000000000000000000000008F -S31560048780000000000000000000000000000000007F -S31560048790000000000000000000000000000000006F -S315600487A0000000000000000000000000000000005F -S315600487B0000000000000000000000000000000004F -S315600487C0000000000000000000000000000000003F -S315600487D0000000000000000000000000000000002F -S315600487E0000000000000000000000000000000001F -S315600487F0000000000000000000000000000000000F -S3156004880000000000000000000000000000000000FE -S3156004881000000000000000000000000000000000EE -S3156004882000000000000000000000000000000000DE -S3156004883000000000000000000000000000000000CE -S3156004884000000000000000000000000000000000BE -S3156004885000000000000000000000000000000000AE -S31560048860000000000000000000000000000000009E -S31560048870000000000000000000000000000000008E -S31560048880000000000000000000000000000000007E -S31560048890000000000000000000000000000000006E -S315600488A0000000000000000000000000000000005E -S315600488B0000000000000000000000000000000004E -S315600488C0000000000000000000000000000000003E -S315600488D0000000000000000000000000000000002E -S315600488E0000000000000000000000000000000001E -S315600488F0000000000000000000000000000000000E -S3156004890000000000000000000000000000000000FD -S3156004891000000000000000000000000000000000ED -S3156004892000000000000000000000000000000000DD -S3156004893000000000000000000000000000000000CD -S3156004894000000000000000000000000000000000BD -S3156004895000000000000000000000000000000000AD -S31560048960000000000000000000000000000000009D -S31560048970000000000000000000000000000000008D -S31560048980000000000000000000000000000000007D -S31560048990000000000000000000000000000000006D -S315600489A0000000000000000000000000000000005D -S315600489B0000000000000000000000000000000004D -S315600489C0000000000000000000000000000000003D -S315600489D0000000000000000000000000000000002D -S315600489E0000000000000000000000000000000001D -S315600489F0000000000000000000000000000000000D -S31560048A0000000000000000000000000000000000FC -S31560048A1000000000000000000000000000000000EC -S31560048A2000000000000000000000000000000000DC -S31560048A3000000000000000000000000000000000CC -S31560048A4000000000000000000000000000000000BC -S31560048A5000000000000000000000000000000000AC -S31560048A60000000000000000000000000000000009C -S31560048A70000000000000000000000000000000008C -S31560048A80000000000000000000000000000000007C -S31560048A90000000000000000000000000000000006C -S31560048AA0000000000000000000000000000000005C -S31560048AB0000000000000000000000000000000004C -S31560048AC0000000000000000000000000000000003C -S31560048AD0000000000000000000000000000000002C -S31560048AE0000000000000000000000000000000001C -S31560048AF0000000000000000000000000000000000C -S31560048B0000000000000000000000000000000000FB -S31560048B1000000000000000000000000000000000EB -S31560048B2000000000000000000000000000000000DB -S31560048B3000000000000000000000000000000000CB -S31560048B4000000000000000000000000000000000BB -S31560048B5000000000000000000000000000000000AB -S31560048B60000000000000000000000000000000009B -S31560048B70000000000000000000000000000000008B -S31560048B80000000000000000000000000000000007B -S31560048B90000000000000000000000000000000006B -S31560048BA0000000000000000000000000000000005B -S31560048BB0000000000000000000000000000000004B -S31560048BC0000000000000000000000000000000003B -S31560048BD0000000000000000000000000000000002B -S31560048BE0000000000000000000000000000000001B -S31560048BF0000000000000000000000000000000000B -S31560048C0000000000000000000000000000000000FA -S31560048C1000000000000000000000000000000000EA -S31560048C2000000000000000000000000000000000DA -S31560048C3000000000000000000000000000000000CA -S31560048C4000000000000000000000000000000000BA -S31560048C5000000000000000000000000000000000AA -S31560048C60000000000000000000000000000000009A -S31560048C70000000000000000000000000000000008A -S31560048C80000000000000000000000000000000007A -S31560048C90000000000000000000000000000000006A -S31560048CA0000000000000000000000000000000005A -S31560048CB0000000000000000000000000000000004A -S31560048CC0000000000000000000000000000000003A -S31560048CD0000000000000000000000000000000002A -S31560048CE0000000000000000000000000000000001A -S31560048CF0000000000000000000000000000000000A -S31560048D0000000000000000000000000000000000F9 -S31560048D1000000000000000000000000000000000E9 -S31560048D2000000000000000000000000000000000D9 -S31560048D3000000000000000000000000000000000C9 -S31560048D4000000000000000000000000000000000B9 -S31560048D5000000000000000000000000000000000A9 -S31560048D600000000000000000000000000000000099 -S31560048D700000000000000000000000000000000089 -S31560048D800000000000000000000000000000000079 -S31560048D900000000000000000000000000000000069 -S31560048DA00000000000000000000000000000000059 -S31560048DB00000000000000000000000000000000049 -S31560048DC00000000000000000000000000000000039 -S31560048DD00000000000000000000000000000000029 -S31560048DE00000000000000000000000000000000019 -S31560048DF00000000000000000000000000000000009 -S31560048E0000000000000000000000000000000000F8 -S31560048E1000000000000000000000000000000000E8 -S31560048E2000000000000000000000000000000000D8 -S31560048E3000000000000000000000000000000000C8 -S31560048E4000000000000000000000000000000000B8 -S31560048E5000000000000000000000000000000000A8 -S31560048E600000000000000000000000000000000098 -S31560048E700000000000000000000000000000000088 -S31560048E800000000000000000000000000000000078 -S31560048E900000000000000000000000000000000068 -S31560048EA00000000000000000000000000000000058 -S31560048EB00000000000000000000000000000000048 -S31560048EC00000000000000000000000000000000038 -S31560048ED00000000000000000000000000000000028 -S31560048EE00000000000000000000000000000000018 -S31560048EF00000000000000000000000000000000008 -S31560048F0000000000000000000000000000000000F7 -S31560048F1000000000000000000000000000000000E7 -S31560048F2000000000000000000000000000000000D7 -S31560048F3000000000000000000000000000000000C7 -S31560048F4000000000000000000000000000000000B7 -S31560048F5000000000000000000000000000000000A7 -S31560048F600000000000000000000000000000000097 -S31560048F700000000000000000000000000000000087 -S31560048F800000000000000000000000000000000077 -S31560048F900000000000000000000000000000000067 -S31560048FA00000000000000000000000000000000057 -S31560048FB00000000000000000000000000000000047 -S31560048FC00000000000000000000000000000000037 -S31560048FD00000000000000000000000000000000027 -S31560048FE00000000000000000000000000000000017 -S31560048FF00000000000000000000000000000000007 -S3156004900000000000000000000000000000000000F6 -S3156004901000000000000000000000000000000000E6 -S3156004902000000000000000000000000000000000D6 -S3156004903000000000000000000000000000000000C6 -S3156004904000000000000000000000000000000000B6 -S3156004905000000000000000000000000000000000A6 -S315600490600000000000000000000000000000000096 -S315600490700000000000000000000000000000000086 -S315600490800000000000000000000000000000000076 -S315600490900000000000000000000000000000000066 -S315600490A00000000000000000000000000000000056 -S315600490B00000000000000000000000000000000046 -S315600490C00000000000000000000000000000000036 -S315600490D00000000000000000000000000000000026 -S315600490E00000000000000000000000000000000016 -S315600490F00000000000000000000000000000000006 -S3156004910000000000000000000000000000000000F5 -S3156004911000000000000000000000000000000000E5 -S3156004912000000000000000000000000000000000D5 -S3156004913000000000000000000000000000000000C5 -S3156004914000000000000000000000000000000000B5 -S3156004915000000000000000000000000000000000A5 -S315600491600000000000000000000000000000000095 -S315600491700000000000000000000000000000000085 -S315600491800000000000000000000000000000000075 -S315600491900000000000000000000000000000000065 -S315600491A00000000000000000000000000000000055 -S315600491B00000000000000000000000000000000045 -S315600491C00000000000000000000000000000000035 -S315600491D00000000000000000000000000000000025 -S315600491E00000000000000000000000000000000015 -S315600491F00000000000000000000000000000000005 -S3156004920000000000000000000000000000000000F4 -S3156004921000000000000000000000000000000000E4 -S3156004922000000000000000000000000000000000D4 -S3156004923000000000000000000000000000000000C4 -S3156004924000000000000000000000000000000000B4 -S3156004925000000000000000000000000000000000A4 -S315600492600000000000000000000000000000000094 -S315600492700000000000000000000000000000000084 -S315600492800000000000000000000000000000000074 -S315600492900000000000000000000000000000000064 -S315600492A00000000000000000000000000000000054 -S315600492B00000000000000000000000000000000044 -S315600492C00000000000000000000000000000000034 -S315600492D00000000000000000000000000000000024 -S315600492E00000000000000000000000000000000014 -S315600492F00000000000000000000000000000000004 -S3156004930000000000000000000000000000000000F3 -S3156004931000000000000000000000000000000000E3 -S3156004932000000000000000000000000000000000D3 -S3156004933000000000000000000000000000000000C3 -S3156004934000000000000000000000000000000000B3 -S3156004935000000000000000000000000000000000A3 -S315600493600000000000000000000000000000000093 -S315600493700000000000000000000000000000000083 -S315600493800000000000000000000000000000000073 -S315600493900000000000000000000000000000000063 -S315600493A00000000000000000000000000000000053 -S315600493B00000000000000000000000000000000043 -S315600493C00000000000000000000000000000000033 -S315600493D00000000000000000000000000000000023 -S315600493E00000000000000000000000000000000013 -S315600493F00000000000000000000000000000000003 -S3156004940000000000000000000000000000000000F2 -S3156004941000000000000000000000000000000000E2 -S3156004942000000000000000000000000000000000D2 -S3156004943000000000000000000000000000000000C2 -S3156004944000000000000000000000000000000000B2 -S3156004945000000000000000000000000000000000A2 -S315600494600000000000000000000000000000000092 -S315600494700000000000000000000000000000000082 -S315600494800000000000000000000000000000000072 -S315600494900000000000000000000000000000000062 -S315600494A00000000000000000000000000000000052 -S315600494B00000000000000000000000000000000042 -S315600494C00000000000000000000000000000000032 -S315600494D00000000000000000000000000000000022 -S315600494E00000000000000000000000000000000012 -S315600494F00000000000000000000000000000000002 -S3156004950000000000000000000000000000000000F1 -S3156004951000000000000000000000000000000000E1 -S3156004952000000000000000000000000000000000D1 -S3156004953000000000000000000000000000000000C1 -S3156004954000000000000000000000000000000000B1 -S3156004955000000000000000000000000000000000A1 -S315600495600000000000000000000000000000000091 -S315600495700000000000000000000000000000000081 -S315600495800000000000000000000000000000000071 -S315600495900000000000000000000000000000000061 -S315600495A00000000000000000000000000000000051 -S315600495B00000000000000000000000000000000041 -S315600495C00000000000000000000000000000000031 -S315600495D00000000000000000000000000000000021 -S315600495E00000000000000000000000000000000011 -S315600495F00000000000000000000000000000000001 -S3156004960000000000000000000000000000000000F0 -S3156004961000000000000000000000000000000000E0 -S3156004962000000000000000000000000000000000D0 -S3156004963000000000000000000000000000000000C0 -S3156004964000000000000000000000000000000000B0 -S3156004965000000000000000000000000000000000A0 -S315600496600000000000000000000000000000000090 -S315600496700000000000000000000000000000000080 -S315600496800000000000000000000000000000000070 -S315600496900000000000000000000000000000000060 -S315600496A00000000000000000000000000000000050 -S315600496B00000000000000000000000000000000040 -S315600496C00000000000000000000000000000000030 -S315600496D00000000000000000000000000000000020 -S315600496E00000000000000000000000000000000010 -S315600496F00000000000000000000000000000000000 -S3156004970000000000000000000000000000000000EF -S3156004971000000000000000000000000000000000DF -S3156004972000000000000000000000000000000000CF -S3156004973000000000000000000000000000000000BF -S3156004974000000000000000000000000000000000AF -S31560049750000000000000000000000000000000009F -S31560049760000000000000000000000000000000008F -S31560049770000000000000000000000000000000007F -S31560049780000000000000000000000000000000006F -S31560049790000000000000000000000000000000005F -S315600497A0000000000000000000000000000000004F -S315600497B0000000000000000000000000000000003F -S315600497C0000000000000000000000000000000002F -S315600497D0000000000000000000000000000000001F -S315600497E0000000000000000000000000000000000F -S315600497F000000000000000000000000000000000FF -S3156004980000000000000000000000000000000000EE -S3156004981000000000000000000000000000000000DE -S3156004982000000000000000000000000000000000CE -S3156004983000000000000000000000000000000000BE -S3156004984000000000000000000000000000000000AE -S31560049850000000000000000000000000000000009E -S31560049860000000000000000000000000000000008E -S31560049870000000000000000000000000000000007E -S31560049880000000000000000000000000000000006E -S31560049890000000000000000000000000000000005E -S315600498A0000000000000000000000000000000004E -S315600498B0000000000000000000000000000000003E -S315600498C0000000000000000000000000000000002E -S315600498D0000000000000000000000000000000001E -S315600498E0000000000000000000000000000000000E -S315600498F000000000000000000000000000000000FE -S3156004990000000000000000000000000000000000ED -S3156004991000000000000000000000000000000000DD -S3156004992000000000000000000000000000000000CD -S3156004993000000000000000000000000000000000BD -S3156004994000000000000000000000000000000000AD -S31560049950000000000000000000000000000000009D -S31560049960000000000000000000000000000000008D -S31560049970000000000000000000000000000000007D -S31560049980000000000000000000000000000000006D -S31560049990000000000000000000000000000000005D -S315600499A0000000000000000000000000000000004D -S315600499B0000000000000000000000000000000003D -S315600499C0000000000000000000000000000000002D -S315600499D0000000000000000000000000000000001D -S315600499E0000000000000000000000000000000000D -S315600499F000000000000000000000000000000000FD -S31560049A0000000000000000000000000000000000EC -S31560049A1000000000000000000000000000000000DC -S31560049A2000000000000000000000000000000000CC -S31560049A3000000000000000000000000000000000BC -S31560049A4000000000000000000000000000000000AC -S31560049A50000000000000000000000000000000009C -S31560049A60000000000000000000000000000000008C -S31560049A70000000000000000000000000000000007C -S31560049A80000000000000000000000000000000006C -S31560049A90000000000000000000000000000000005C -S31560049AA0000000000000000000000000000000004C -S31560049AB0000000000000000000000000000000003C -S31560049AC0000000000000000000000000000000002C -S31560049AD0000000000000000000000000000000001C -S31560049AE0000000000000000000000000000000000C -S31560049AF000000000000000000000000000000000FC -S31560049B0000000000000000000000000000000000EB -S31560049B1000000000000000000000000000000000DB -S31560049B2000000000000000000000000000000000CB -S31560049B3000000000000000000000000000000000BB -S31560049B4000000000000000000000000000000000AB -S31560049B50000000000000000000000000000000009B -S31560049B60000000000000000000000000000000008B -S31560049B70000000000000000000000000000000007B -S31560049B80000000000000000000000000000000006B -S31560049B90000000000000000000000000000000005B -S31560049BA0000000000000000000000000000000004B -S31560049BB0000000000000000000000000000000003B -S31560049BC0000000000000000000000000000000002B -S31560049BD0000000000000000000000000000000001B -S31560049BE0000000000000000000000000000000000B -S31560049BF000000000000000000000000000000000FB -S31560049C0000000000000000000000000000000000EA -S31560049C1000000000000000000000000000000000DA -S31560049C2000000000000000000000000000000000CA -S31560049C3000000000000000000000000000000000BA -S31560049C4000000000000000000000000000000000AA -S31560049C50000000000000000000000000000000009A -S31560049C60000000000000000000000000000000008A -S31560049C70000000000000000000000000000000007A -S31560049C80000000000000000000000000000000006A -S31560049C90000000000000000000000000000000005A -S31560049CA0000000000000000000000000000000004A -S31560049CB0000000000000000000000000000000003A -S31560049CC0000000000000000000000000000000002A -S31560049CD0000000000000000000000000000000001A -S31560049CE0000000000000000000000000000000000A -S31560049CF000000000000000000000000000000000FA -S31560049D0000000000000000000000000000000000E9 -S31560049D1000000000000000000000000000000000D9 -S31560049D2000000000000000000000000000000000C9 -S31560049D3000000000000000000000000000000000B9 -S31560049D4000000000000000000000000000000000A9 -S31560049D500000000000000000000000000000000099 -S31560049D600000000000000000000000000000000089 -S31560049D700000000000000000000000000000000079 -S31560049D800000000000000000000000000000000069 -S31560049D900000000000000000000000000000000059 -S31560049DA00000000000000000000000000000000049 -S31560049DB00000000000000000000000000000000039 -S31560049DC00000000000000000000000000000000029 -S31560049DD00000000000000000000000000000000019 -S31560049DE00000000000000000000000000000000009 -S31560049DF000000000000000000000000000000000F9 -S31560049E0000000000000000000000000000000000E8 -S31560049E1000000000000000000000000000000000D8 -S31560049E2000000000000000000000000000000000C8 -S31560049E3000000000000000000000000000000000B8 -S31560049E4000000000000000000000000000000000A8 -S31560049E500000000000000000000000000000000098 -S31560049E600000000000000000000000000000000088 -S31560049E700000000000000000000000000000000078 -S31560049E800000000000000000000000000000000068 -S31560049E900000000000000000000000000000000058 -S31560049EA00000000000000000000000000000000048 -S31560049EB00000000000000000000000000000000038 -S31560049EC00000000000000000000000000000000028 -S31560049ED00000000000000000000000000000000018 -S31560049EE00000000000000000000000000000000008 -S31560049EF000000000000000000000000000000000F8 -S31560049F0000000000000000000000000000000000E7 -S31560049F1000000000000000000000000000000000D7 -S31560049F2000000000000000000000000000000000C7 -S31560049F3000000000000000000000000000000000B7 -S31560049F4000000000000000000000000000000000A7 -S31560049F500000000000000000000000000000000097 -S31560049F600000000000000000000000000000000087 -S31560049F700000000000000000000000000000000077 -S31560049F800000000000000000000000000000000067 -S31560049F900000000000000000000000000000000057 -S31560049FA00000000000000000000000000000000047 -S31560049FB00000000000000000000000000000000037 -S31560049FC00000000000000000000000000000000027 -S31560049FD00000000000000000000000000000000017 -S31560049FE00000000000000000000000000000000007 -S31560049FF000000000000000000000000000000000F7 -S3156004A00000000000000000000000000000000000E6 -S3156004A01000000000000000000000000000000000D6 -S3156004A02000000000000000000000000000000000C6 -S3156004A03000000000000000000000000000000000B6 -S3156004A04000000000000000000000000000000000A6 -S3156004A0500000000000000000000000000000000096 -S3156004A0600000000000000000000000000000000086 -S3156004A0700000000000000000000000000000000076 -S3156004A0800000000000000000000000000000000066 -S3156004A0900000000000000000000000000000000056 -S3156004A0A00000000000000000000000000000000046 -S3156004A0B00000000000000000000000000000000036 -S3156004A0C00000000000000000000000000000000026 -S3156004A0D00000000000000000000000000000000016 -S3156004A0E00000000000000000000000000000000006 -S3156004A0F000000000000000000000000000000000F6 -S3156004A10000000000000000000000000000000000E5 -S3156004A11000000000000000000000000000000000D5 -S3156004A12000000000000000000000000000000000C5 -S3156004A13000000000000000000000000000000000B5 -S3156004A14000000000000000000000000000000000A5 -S3156004A1500000000000000000000000000000000095 -S3156004A1600000000000000000000000000000000085 -S3156004A1700000000000000000000000000000000075 -S3156004A1800000000000000000000000000000000065 -S3156004A1900000000000000000000000000000000055 -S3156004A1A00000000000000000000000000000000045 -S3156004A1B00000000000000000000000000000000035 -S3156004A1C00000000000000000000000000000000025 -S3156004A1D00000000000000000000000000000000015 -S3156004A1E00000000000000000000000000000000005 -S3156004A1F000000000000000000000000000000000F5 -S3156004A20000000000000000000000000000000000E4 -S3156004A21000000000000000000000000000000000D4 -S3156004A22000000000000000000000000000000000C4 -S3156004A23000000000000000000000000000000000B4 -S3156004A24000000000000000000000000000000000A4 -S3156004A2500000000000000000000000000000000094 -S3156004A2600000000000000000000000000000000084 -S3156004A2700000000000000000000000000000000074 -S3156004A2800000000000000000000000000000000064 -S3156004A2900000000000000000000000000000000054 -S3156004A2A00000000000000000000000000000000044 -S3156004A2B00000000000000000000000000000000034 -S3156004A2C00000000000000000000000000000000024 -S3156004A2D00000000000000000000000000000000014 -S3156004A2E00000000000000000000000000000000004 -S3156004A2F000000000000000000000000000000000F4 -S3156004A30000000000000000000000000000000000E3 -S3156004A31000000000000000000000000000000000D3 -S3156004A32000000000000000000000000000000000C3 -S3156004A33000000000000000000000000000000000B3 -S3156004A34000000000000000000000000000000000A3 -S3156004A3500000000000000000000000000000000093 -S3156004A3600000000000000000000000000000000083 -S3156004A3700000000000000000000000000000000073 -S3156004A3800000000000000000000000000000000063 -S3156004A3900000000000000000000000000000000053 -S3156004A3A00000000000000000000000000000000043 -S3156004A3B00000000000000000000000000000000033 -S3156004A3C00000000000000000000000000000000023 -S3156004A3D00000000000000000000000000000000013 -S3156004A3E00000000000000000000000000000000003 -S3156004A3F000000000000000000000000000000000F3 -S3156004A40000000000000000000000000000000000E2 -S3156004A41000000000000000000000000000000000D2 -S3156004A42000000000000000000000000000000000C2 -S3156004A43000000000000000000000000000000000B2 -S3156004A44000000000000000000000000000000000A2 -S3156004A4500000000000000000000000000000000092 -S3156004A4600000000000000000000000000000000082 -S3156004A4700000000000000000000000000000000072 -S3156004A4800000000000000000000000000000000062 -S3156004A4900000000000000000000000000000000052 -S3156004A4A00000000000000000000000000000000042 -S3156004A4B00000000000000000000000000000000032 -S3156004A4C00000000000000000000000000000000022 -S3156004A4D00000000000000000000000000000000012 -S3156004A4E00000000000000000000000000000000002 -S3156004A4F000000000000000000000000000000000F2 -S3156004A50000000000000000000000000000000000E1 -S3156004A51000000000000000000000000000000000D1 -S3156004A52000000000000000000000000000000000C1 -S3156004A53000000000000000000000000000000000B1 -S3156004A54000000000000000000000000000000000A1 -S3156004A5500000000000000000000000000000000091 -S3156004A5600000000000000000000000000000000081 -S3156004A5700000000000000000000000000000000071 -S3156004A5800000000000000000000000000000000061 -S3156004A5900000000000000000000000000000000051 -S3156004A5A00000000000000000000000000000000041 -S3156004A5B00000000000000000000000000000000031 -S3156004A5C00000000000000000000000000000000021 -S3156004A5D00000000000000000000000000000000011 -S3156004A5E00000000000000000000000000000000001 -S3156004A5F000000000000000000000000000000000F1 -S3156004A60000000000000000000000000000000000E0 -S3156004A61000000000000000000000000000000000D0 -S3156004A62000000000000000000000000000000000C0 -S3156004A63000000000000000000000000000000000B0 -S3156004A64000000000000000000000000000000000A0 -S3156004A6500000000000000000000000000000000090 -S3156004A6600000000000000000000000000000000080 -S3156004A6700000000000000000000000000000000070 -S3156004A6800000000000000000000000000000000060 -S3156004A6900000000000000000000000000000000050 -S3156004A6A00000000000000000000000000000000040 -S3156004A6B00000000000000000000000000000000030 -S3156004A6C00000000000000000000000000000000020 -S3156004A6D00000000000000000000000000000000010 -S3156004A6E00000000000000000000000000000000000 -S3156004A6F000000000000000000000000000000000F0 -S3156004A70000000000000000000000000000000000DF -S3156004A71000000000000000000000000000000000CF -S3156004A72000000000000000000000000000000000BF -S3156004A73000000000000000000000000000000000AF -S3156004A740000000000000000000000000000000009F -S3156004A750000000000000000000000000000000008F -S3156004A760000000000000000000000000000000007F -S3156004A770000000000000000000000000000000006F -S3156004A780000000000000000000000000000000005F -S3156004A790000000000000000000000000000000004F -S3156004A7A0000000000000000000000000000000003F -S3156004A7B0000000000000000000000000000000002F -S3156004A7C0000000000000000000000000000000001F -S3156004A7D0000000000000000000000000000000000F -S3156004A7E000000000000000000000000000000000FF -S3156004A7F000000000000000000000000000000000EF -S3156004A80000000000000000000000000000000000DE -S3156004A81000000000000000000000000000000000CE -S3156004A82000000000000000000000000000000000BE -S3156004A83000000000000000000000000000000000AE -S3156004A840000000000000000000000000000000009E -S3156004A850000000000000000000000000000000008E -S3156004A860000000000000000000000000000000007E -S3156004A870000000000000000000000000000000006E -S3156004A880000000000000000000000000000000005E -S3156004A890000000000000000000000000000000004E -S3156004A8A0000000000000000000000000000000003E -S3156004A8B0000000000000000000000000000000002E -S3156004A8C0000000000000000000000000000000001E -S3156004A8D0000000000000000000000000000000000E -S3156004A8E000000000000000000000000000000000FE -S3156004A8F000000000000000000000000000000000EE -S3156004A90000000000000000000000000000000000DD -S3156004A91000000000000000000000000000000000CD -S3156004A92000000000000000000000000000000000BD -S3156004A93000000000000000000000000000000000AD -S3156004A940000000000000000000000000000000009D -S3156004A950000000000000000000000000000000008D -S3156004A960000000000000000000000000000000007D -S3156004A970000000000000000000000000000000006D -S3156004A980000000000000000000000000000000005D -S3156004A990000000000000000000000000000000004D -S3156004A9A0000000000000000000000000000000003D -S3156004A9B0000000000000000000000000000000002D -S3156004A9C0000000000000000000000000000000001D -S3156004A9D0000000000000000000000000000000000D -S3156004A9E000000000000000000000000000000000FD -S3156004A9F000000000000000000000000000000000ED -S3156004AA0000000000000000000000000000000000DC -S3156004AA1000000000000000000000000000000000CC -S3156004AA2000000000000000000000000000000000BC -S3156004AA3000000000000000000000000000000000AC -S3156004AA40000000000000000000000000000000009C -S3156004AA50000000000000000000000000000000008C -S3156004AA60000000000000000000000000000000007C -S3156004AA70000000000000000000000000000000006C -S3156004AA80000000000000000000000000000000005C -S3156004AA90000000000000000000000000000000004C -S3156004AAA0000000000000000000000000000000003C -S3156004AAB0000000000000000000000000000000002C -S3156004AAC0000000000000000000000000000000001C -S3156004AAD0000000000000000000000000000000000C -S3156004AAE000000000000000000000000000000000FC -S3156004AAF000000000000000000000000000000000EC -S3156004AB0000000000000000000000000000000000DB -S3156004AB1000000000000000000000000000000000CB -S3156004AB2000000000000000000000000000000000BB -S3156004AB3000000000000000000000000000000000AB -S3156004AB40000000000000000000000000000000009B -S3156004AB50000000000000000000000000000000008B -S3156004AB60000000000000000000000000000000007B -S3156004AB70000000000000000000000000000000006B -S3156004AB80000000000000000000000000000000005B -S3156004AB90000000000000000000000000000000004B -S3156004ABA0000000000000000000000000000000003B -S3156004ABB0000000000000000000000000000000002B -S3156004ABC0000000000000000000000000000000001B -S3156004ABD0000000000000000000000000000000000B -S3156004ABE000000000000000000000000000000000FB -S3156004ABF000000000000000000000000000000000EB -S3156004AC0000000000000000000000000000000000DA -S3156004AC1000000000000000000000000000000000CA -S3156004AC2000000000000000000000000000000000BA -S3156004AC3000000000000000000000000000000000AA -S3156004AC40000000000000000000000000000000009A -S3156004AC50000000000000000000000000000000008A -S3156004AC60000000000000000000000000000000007A -S3156004AC70000000000000000000000000000000006A -S3156004AC80000000000000000000000000000000005A -S3156004AC90000000000000000000000000000000004A -S3156004ACA0000000000000000000000000000000003A -S3156004ACB0000000000000000000000000000000002A -S3156004ACC0000000000000000000000000000000001A -S3156004ACD0000000000000000000000000000000000A -S3156004ACE000000000000000000000000000000000FA -S3156004ACF000000000000000000000000000000000EA -S3156004AD0000000000000000000000000000000000D9 -S3156004AD1000000000000000000000000000000000C9 -S3156004AD2000000000000000000000000000000000B9 -S3156004AD3000000000000000000000000000000000A9 -S3156004AD400000000000000000000000000000000099 -S3156004AD500000000000000000000000000000000089 -S3156004AD600000000000000000000000000000000079 -S3156004AD700000000000000000000000000000000069 -S3156004AD800000000000000000000000000000000059 -S3156004AD900000000000000000000000000000000049 -S3156004ADA00000000000000000000000000000000039 -S3156004ADB00000000000000000000000000000000029 -S3156004ADC00000000000000000000000000000000019 -S3156004ADD00000000000000000000000000000000009 -S3156004ADE000000000000000000000000000000000F9 -S3156004ADF000000000000000000000000000000000E9 -S3156004AE0000000000000000000000000000000000D8 -S3156004AE1000000000000000000000000000000000C8 -S3156004AE2000000000000000000000000000000000B8 -S3156004AE3000000000000000000000000000000000A8 -S3156004AE400000000000000000000000000000000098 -S3156004AE500000000000000000000000000000000088 -S3156004AE600000000000000000000000000000000078 -S3156004AE700000000000000000000000000000000068 -S3156004AE800000000000000000000000000000000058 -S3156004AE900000000000000000000000000000000048 -S3156004AEA00000000000000000000000000000000038 -S3156004AEB00000000000000000000000000000000028 -S3156004AEC00000000000000000000000000000000018 -S3156004AED00000000000000000000000000000000008 -S3156004AEE000000000000000000000000000000000F8 -S3156004AEF000000000000000000000000000000000E8 -S3156004AF0000000000000000000000000000000000D7 -S3156004AF1000000000000000000000000000000000C7 -S3156004AF2000000000000000000000000000000000B7 -S3156004AF3000000000000000000000000000000000A7 -S3156004AF400000000000000000000000000000000097 -S3156004AF500000000000000000000000000000000087 -S3156004AF600000000000000000000000000000000077 -S3156004AF700000000000000000000000000000000067 -S3156004AF800000000000000000000000000000000057 -S3156004AF900000000000000000000000000000000047 -S3156004AFA00000000000000000000000000000000037 -S3156004AFB00000000000000000000000000000000027 -S3156004AFC00000000000000000000000000000000017 -S3156004AFD00000000000000000000000000000000007 -S3156004AFE000000000000000000000000000000000F7 -S3156004AFF000000000000000000000000000000000E7 -S3156004B00000000000000000000000000000000000D6 -S3156004B01000000000000000000000000000000000C6 -S3156004B02000000000000000000000000000000000B6 -S3156004B03000000000000000000000000000000000A6 -S3156004B0400000000000000000000000000000000096 -S3156004B0500000000000000000000000000000000086 -S3156004B0600000000000000000000000000000000076 -S3156004B0700000000000000000000000000000000066 -S3156004B0800000000000000000000000000000000056 -S3156004B0900000000000000000000000000000000046 -S3156004B0A00000000000000000000000000000000036 -S3156004B0B00000000000000000000000000000000026 -S3156004B0C00000000000000000000000000000000016 -S3156004B0D00000000000000000000000000000000006 -S3156004B0E000000000000000000000000000000000F6 -S3156004B0F000000000000000000000000000000000E6 -S3156004B10000000000000000000000000000000000D5 -S3156004B11000000000000000000000000000000000C5 -S3156004B12000000000000000000000000000000000B5 -S3156004B13000000000000000000000000000000000A5 -S3156004B1400000000000000000000000000000000095 -S3156004B1500000000000000000000000000000000085 -S3156004B1600000000000000000000000000000000075 -S3156004B1700000000000000000000000000000000065 -S3156004B1800000000000000000000000000000000055 -S3156004B1900000000000000000000000000000000045 -S3156004B1A00000000000000000000000000000000035 -S3156004B1B00000000000000000000000000000000025 -S3156004B1C00000000000000000000000000000000015 -S3156004B1D00000000000000000000000000000000005 -S3156004B1E000000000000000000000000000000000F5 -S3156004B1F000000000000000000000000000000000E5 -S3156004B20000000000000000000000000000000000D4 -S3156004B21000000000000000000000000000000000C4 -S3156004B22000000000000000000000000000000000B4 -S3156004B23000000000000000000000000000000000A4 -S3156004B2400000000000000000000000000000000094 -S3156004B2500000000000000000000000000000000084 -S3156004B2600000000000000000000000000000000074 -S3156004B2700000000000000000000000000000000064 -S3156004B2800000000000000000000000000000000054 -S3156004B2900000000000000000000000000000000044 -S3156004B2A00000000000000000000000000000000034 -S3156004B2B00000000000000000000000000000000024 -S3156004B2C00000000000000000000000000000000014 -S3156004B2D00000000000000000000000000000000004 -S3156004B2E000000000000000000000000000000000F4 -S3156004B2F000000000000000000000000000000000E4 -S3156004B30000000000000000000000000000000000D3 -S3156004B31000000000000000000000000000000000C3 -S3156004B32000000000000000000000000000000000B3 -S3156004B33000000000000000000000000000000000A3 -S3156004B3400000000000000000000000000000000093 -S3156004B3500000000000000000000000000000000083 -S3156004B3600000000000000000000000000000000073 -S3156004B3700000000000000000000000000000000063 -S3156004B3800000000000000000000000000000000053 -S3156004B3900000000000000000000000000000000043 -S3156004B3A00000000000000000000000000000000033 -S3156004B3B00000000000000000000000000000000023 -S3156004B3C00000000000000000000000000000000013 -S3156004B3D00000000000000000000000000000000003 -S3156004B3E000000000000000000000000000000000F3 -S3156004B3F000000000000000000000000000000000E3 -S3156004B40000000000000000000000000000000000D2 -S3156004B41000000000000000000000000000000000C2 -S3156004B42000000000000000000000000000000000B2 -S3156004B43000000000000000000000000000000000A2 -S3156004B4400000000000000000000000000000000092 -S3156004B4500000000000000000000000000000000082 -S3156004B4600000000000000000000000000000000072 -S3156004B4700000000000000000000000000000000062 -S3156004B4800000000000000000000000000000000052 -S3156004B4900000000000000000000000000000000042 -S3156004B4A00000000000000000000000000000000032 -S3156004B4B00000000000000000000000000000000022 -S3156004B4C00000000000000000000000000000000012 -S3156004B4D00000000000000000000000000000000002 -S3156004B4E000000000000000000000000000000000F2 -S3156004B4F000000000000000000000000000000000E2 -S3156004B50000000000000000000000000000000000D1 -S3156004B51000000000000000000000000000000000C1 -S3156004B52000000000000000000000000000000000B1 -S3156004B53000000000000000000000000000000000A1 -S3156004B5400000000000000000000000000000000091 -S3156004B5500000000000000000000000000000000081 -S3156004B5600000000000000000000000000000000071 -S3156004B5700000000000000000000000000000000061 -S3156004B5800000000000000000000000000000000051 -S3156004B5900000000000000000000000000000000041 -S3156004B5A00000000000000000000000000000000031 -S3156004B5B00000000000000000000000000000000021 -S3156004B5C00000000000000000000000000000000011 -S3156004B5D00000000000000000000000000000000001 -S3156004B5E000000000000000000000000000000000F1 -S3156004B5F000000000000000000000000000000000E1 -S3156004B60000000000000000000000000000000000D0 -S3156004B61000000000000000000000000000000000C0 -S3156004B62000000000000000000000000000000000B0 -S3156004B63000000000000000000000000000000000A0 -S3156004B6400000000000000000000000000000000090 -S3156004B6500000000000000000000000000000000080 -S3156004B6600000000000000000000000000000000070 -S3156004B6700000000000000000000000000000000060 -S3156004B6800000000000000000000000000000000050 -S3156004B6900000000000000000000000000000000040 -S3156004B6A00000000000000000000000000000000030 -S3156004B6B00000000000000000000000000000000020 -S3156004B6C00000000000000000000000000000000010 -S3156004B6D00000000000000000000000000000000000 -S3156004B6E000000000000000000000000000000000F0 -S3156004B6F000000000000000000000000000000000E0 -S3156004B70000000000000000000000000000000000CF -S3156004B71000000000000000000000000000000000BF -S3156004B72000000000000000000000000000000000AF -S3156004B730000000000000000000000000000000009F -S3156004B740000000000000000000000000000000008F -S3156004B750000000000000000000000000000000007F -S3156004B760000000000000000000000000000000006F -S3156004B770000000000000000000000000000000005F -S3156004B780000000000000000000000000000000004F -S3156004B790000000000000000000000000000000003F -S3156004B7A0000000000000000000000000000000002F -S3156004B7B0000000000000000000000000000000001F -S3156004B7C0000000000000000000000000000000000F -S3156004B7D000000000000000000000000000000000FF -S3156004B7E000000000000000000000000000000000EF -S3156004B7F000000000000000000000000000000000DF -S3156004B80000000000000000000000000000000000CE -S3156004B81000000000000000000000000000000000BE -S3156004B82000000000000000000000000000000000AE -S3156004B830000000000000000000000000000000009E -S3156004B840000000000000000000000000000000008E -S3156004B850000000000000000000000000000000007E -S3156004B860000000000000000000000000000000006E -S3156004B870000000000000000000000000000000005E -S3156004B880000000000000000000000000000000004E -S3156004B890000000000000000000000000000000003E -S3156004B8A0000000000000000000000000000000002E -S3156004B8B0000000000000000000000000000000001E -S3156004B8C0000000000000000000000000000000000E -S3156004B8D000000000000000000000000000000000FE -S3156004B8E000000000000000000000000000000000EE -S3156004B8F000000000000000000000000000000000DE -S3156004B90000000000000000000000000000000000CD -S3156004B91000000000000000000000000000000000BD -S3156004B92000000000000000000000000000000000AD -S3156004B930000000000000000000000000000000009D -S3156004B940000000000000000000000000000000008D -S3156004B950000000000000000000000000000000007D -S3156004B960000000000000000000000000000000006D -S3156004B970000000000000000000000000000000005D -S3156004B980000000000000000000000000000000004D -S3156004B990000000000000000000000000000000003D -S3156004B9A0000000000000000000000000000000002D -S3156004B9B0000000000000000000000000000000001D -S3156004B9C0000000000000000000000000000000000D -S3156004B9D000000000000000000000000000000000FD -S3156004B9E000000000000000000000000000000000ED -S3156004B9F000000000000000000000000000000000DD -S3156004BA0000000000000000000000000000000000CC -S3156004BA1000000000000000000000000000000000BC -S3156004BA2000000000000000000000000000000000AC -S3156004BA30000000000000000000000000000000009C -S3156004BA40000000000000000000000000000000008C -S3156004BA50000000000000000000000000000000007C -S3156004BA60000000000000000000000000000000006C -S3156004BA70000000000000000000000000000000005C -S3156004BA80000000000000000000000000000000004C -S3156004BA90000000000000000000000000000000003C -S3156004BAA0000000000000000000000000000000002C -S3156004BAB0000000000000000000000000000000001C -S3156004BAC0000000000000000000000000000000000C -S3156004BAD000000000000000000000000000000000FC -S3156004BAE000000000000000000000000000000000EC -S3156004BAF000000000000000000000000000000000DC -S3156004BB0000000000000000000000000000000000CB -S3156004BB1000000000000000000000000000000000BB -S3156004BB2000000000000000000000000000000000AB -S3156004BB30000000000000000000000000000000009B -S3156004BB40000000000000000000000000000000008B -S3156004BB50000000000000000000000000000000007B -S3156004BB60000000000000000000000000000000006B -S3156004BB70000000000000000000000000000000005B -S3156004BB80000000000000000000000000000000004B -S3156004BB90000000000000000000000000000000003B -S3156004BBA0000000000000000000000000000000002B -S3156004BBB0000000000000000000000000000000001B -S3156004BBC0000000000000000000000000000000000B -S3156004BBD000000000000000000000000000000000FB -S3156004BBE000000000000000000000000000000000EB -S3156004BBF000000000000000000000000000000000DB -S3156004BC0000000000000000000000000000000000CA -S3156004BC1000000000000000000000000000000000BA -S3156004BC2000000000000000000000000000000000AA -S3156004BC30000000000000000000000000000000009A -S3156004BC40000000000000000000000000000000008A -S3156004BC50000000000000000000000000000000007A -S3156004BC60000000000000000000000000000000006A -S3156004BC70000000000000000000000000000000005A -S3156004BC80000000000000000000000000000000004A -S3156004BC90000000000000000000000000000000003A -S3156004BCA0000000000000000000000000000000002A -S3156004BCB0000000000000000000000000000000001A -S3156004BCC0000000000000000000000000000000000A -S3156004BCD000000000000000000000000000000000FA -S3156004BCE000000000000000000000000000000000EA -S3156004BCF000000000000000000000000000000000DA -S3156004BD0000000000000000000000000000000000C9 -S3156004BD1000000000000000000000000000000000B9 -S3156004BD2000000000000000000000000000000000A9 -S3156004BD300000000000000000000000000000000099 -S3156004BD400000000000000000000000000000000089 -S3156004BD500000000000000000000000000000000079 -S3156004BD600000000000000000000000000000000069 -S3156004BD700000000000000000000000000000000059 -S3156004BD800000000000000000000000000000000049 -S3156004BD900000000000000000000000000000000039 -S3156004BDA00000000000000000000000000000000029 -S3156004BDB00000000000000000000000000000000019 -S3156004BDC00000000000000000000000000000000009 -S3156004BDD000000000000000000000000000000000F9 -S3156004BDE000000000000000000000000000000000E9 -S3156004BDF000000000000000000000000000000000D9 -S3156004BE0000000000000000000000000000000000C8 -S3156004BE1000000000000000000000000000000000B8 -S3156004BE2000000000000000000000000000000000A8 -S3156004BE300000000000000000000000000000000098 -S3156004BE400000000000000000000000000000000088 -S3156004BE500000000000000000000000000000000078 -S3156004BE600000000000000000000000000000000068 -S3156004BE700000000000000000000000000000000058 -S3156004BE800000000000000000000000000000000048 -S3156004BE900000000000000000000000000000000038 -S3156004BEA00000000000000000000000000000000028 -S3156004BEB00000000000000000000000000000000018 -S3156004BEC00000000000000000000000000000000008 -S3156004BED000000000000000000000000000000000F8 -S3156004BEE000000000000000000000000000000000E8 -S3156004BEF000000000000000000000000000000000D8 -S3156004BF0000000000000000000000000000000000C7 -S3156004BF1000000000000000000000000000000000B7 -S3156004BF2000000000000000000000000000000000A7 -S3156004BF300000000000000000000000000000000097 -S3156004BF400000000000000000000000000000000087 -S3156004BF500000000000000000000000000000000077 -S3156004BF600000000000000000000000000000000067 -S3156004BF700000000000000000000000000000000057 -S3156004BF800000000000000000000000000000000047 -S3156004BF900000000000000000000000000000000037 -S3156004BFA00000000000000000000000000000000027 -S3156004BFB00000000000000000000000000000000017 -S3156004BFC00000000000000000000000000000000007 -S3156004BFD000000000000000000000000000000000F7 -S3156004BFE000000000000000000000000000000000E7 -S3156004BFF000000000000000000000000000000000D7 -S3156004C00000000000000000000000000000000000C6 -S3156004C01000000000000000000000000000000000B6 -S3156004C02000000000000000000000000000000000A6 -S3156004C0300000000000000000000000000000000096 -S3156004C0400000000000000000000000000000000086 -S3156004C0500000000000000000000000000000000076 -S3156004C0600000000000000000000000000000000066 -S3156004C0700000000000000000000000000000000056 -S3156004C0800000000000000000000000000000000046 -S3156004C0900000000000000000000000000000000036 -S3156004C0A00000000000000000000000000000000026 -S3156004C0B00000000000000000000000000000000016 -S3156004C0C00000000000000000000000000000000006 -S3156004C0D000000000000000000000000000000000F6 -S3156004C0E000000000000000000000000000000000E6 -S3156004C0F000000000000000000000000000000000D6 -S3156004C10000000000000000000000000000000000C5 -S3156004C11000000000000000000000000000000000B5 -S3156004C12000000000000000000000000000000000A5 -S3156004C1300000000000000000000000000000000095 -S3156004C1400000000000000000000000000000000085 -S3156004C1500000000000000000000000000000000075 -S3156004C1600000000000000000000000000000000065 -S3156004C1700000000000000000000000000000000055 -S3156004C1800000000000000000000000000000000045 -S3156004C1900000000000000000000000000000000035 -S3156004C1A00000000000000000000000000000000025 -S3156004C1B00000000000000000000000000000000015 -S3156004C1C00000000000000000000000000000000005 -S3156004C1D000000000000000000000000000000000F5 -S3156004C1E000000000000000000000000000000000E5 -S3156004C1F000000000000000000000000000000000D5 -S3156004C20000000000000000000000000000000000C4 -S3156004C21000000000000000000000000000000000B4 -S3156004C22000000000000000000000000000000000A4 -S3156004C2300000000000000000000000000000000094 -S3156004C2400000000000000000000000000000000084 -S3156004C2500000000000000000000000000000000074 -S3156004C2600000000000000000000000000000000064 -S3156004C2700000000000000000000000000000000054 -S3156004C2800000000000000000000000000000000044 -S3156004C2900000000000000000000000000000000034 -S3156004C2A00000000000000000000000000000000024 -S3156004C2B00000000000000000000000000000000014 -S3156004C2C00000000000000000000000000000000004 -S3156004C2D000000000000000000000000000000000F4 -S3156004C2E000000000000000000000000000000000E4 -S3156004C2F000000000000000000000000000000000D4 -S3156004C30000000000000000000000000000000000C3 -S3156004C31000000000000000000000000000000000B3 -S3156004C32000000000000000000000000000000000A3 -S3156004C3300000000000000000000000000000000093 -S3156004C3400000000000000000000000000000000083 -S3156004C3500000000000000000000000000000000073 -S3156004C3600000000000000000000000000000000063 -S3156004C3700000000000000000000000000000000053 -S3156004C3800000000000000000000000000000000043 -S3156004C3900000000000000000000000000000000033 -S3156004C3A00000000000000000000000000000000023 -S3156004C3B00000000000000000000000000000000013 -S3156004C3C00000000000000000000000000000000003 -S3156004C3D000000000000000000000000000000000F3 -S3156004C3E000000000000000000000000000000000E3 -S3156004C3F000000000000000000000000000000000D3 -S3156004C40000000000000000000000000000000000C2 -S3156004C41000000000000000000000000000000000B2 -S3156004C42000000000000000000000000000000000A2 -S3156004C4300000000000000000000000000000000092 -S3156004C4400000000000000000000000000000000082 -S3156004C4500000000000000000000000000000000072 -S3156004C4600000000000000000000000000000000062 -S3156004C4700000000000000000000000000000000052 -S3156004C4800000000000000000000000000000000042 -S3156004C4900000000000000000000000000000000032 -S3156004C4A00000000000000000000000000000000022 -S3156004C4B00000000000000000000000000000000012 -S3156004C4C00000000000000000000000000000000002 -S3156004C4D000000000000000000000000000000000F2 -S3156004C4E000000000000000000000000000000000E2 -S3156004C4F000000000000000000000000000000000D2 -S3156004C50000000000000000000000000000000000C1 -S3156004C51000000000000000000000000000000000B1 -S3156004C52000000000000000000000000000000000A1 -S3156004C5300000000000000000000000000000000091 -S3156004C5400000000000000000000000000000000081 -S3156004C5500000000000000000000000000000000071 -S3156004C5600000000000000000000000000000000061 -S3156004C5700000000000000000000000000000000051 -S3156004C5800000000000000000000000000000000041 -S3156004C5900000000000000000000000000000000031 -S3156004C5A00000000000000000000000000000000021 -S3156004C5B00000000000000000000000000000000011 -S3156004C5C00000000000000000000000000000000001 -S3156004C5D000000000000000000000000000000000F1 -S3156004C5E000000000000000000000000000000000E1 -S3156004C5F000000000000000000000000000000000D1 -S3156004C60000000000000000000000000000000000C0 -S3156004C61000000000000000000000000000000000B0 -S3156004C62000000000000000000000000000000000A0 -S3156004C6300000000000000000000000000000000090 -S3156004C6400000000000000000000000000000000080 -S3156004C6500000000000000000000000000000000070 -S3156004C6600000000000000000000000000000000060 -S3156004C6700000000000000000000000000000000050 -S3156004C6800000000000000000000000000000000040 -S3156004C6900000000000000000000000000000000030 -S3156004C6A00000000000000000000000000000000020 -S3156004C6B00000000000000000000000000000000010 -S3156004C6C00000000000000000000000000000000000 -S3156004C6D000000000000000000000000000000000F0 -S3156004C6E000000000000000000000000000000000E0 -S3156004C6F000000000000000000000000000000000D0 -S3156004C70000000000000000000000000000000000BF -S3156004C71000000000000000000000000000000000AF -S3156004C720000000000000000000000000000000009F -S3156004C730000000000000000000000000000000008F -S3156004C740000000000000000000000000000000007F -S3156004C750000000000000000000000000000000006F -S3156004C760000000000000000000000000000000005F -S3156004C770000000000000000000000000000000004F -S3156004C780000000000000000000000000000000003F -S3156004C790000000000000000000000000000000002F -S3156004C7A0000000000000000000000000000000001F -S3156004C7B0000000000000000000000000000000000F -S3156004C7C000000000000000000000000000000000FF -S3156004C7D000000000000000000000000000000000EF -S3156004C7E000000000000000000000000000000000DF -S3156004C7F000000000000000000000000000000000CF -S3156004C80000000000000000000000000000000000BE -S3156004C81000000000000000000000000000000000AE -S3156004C820000000000000000000000000000000009E -S3156004C830000000000000000000000000000000008E -S3156004C840000000000000000000000000000000007E -S3156004C850000000000000000000000000000000006E -S3156004C860000000000000000000000000000000005E -S3156004C870000000000000000000000000000000004E -S3156004C880000000000000000000000000000000003E -S3156004C890000000000000000000000000000000002E -S3156004C8A0000000000000000000000000000000001E -S3156004C8B0000000000000000000000000000000000E -S3156004C8C000000000000000000000000000000000FE -S3156004C8D000000000000000000000000000000000EE -S3156004C8E000000000000000000000000000000000DE -S3156004C8F000000000000000000000000000000000CE -S3156004C90000000000000000000000000000000000BD -S3156004C91000000000000000000000000000000000AD -S3156004C920000000000000000000000000000000009D -S3156004C930000000000000000000000000000000008D -S3156004C940000000000000000000000000000000007D -S3156004C950000000000000000000000000000000006D -S3156004C960000000000000000000000000000000005D -S3156004C970000000000000000000000000000000004D -S3156004C980000000000000000000000000000000003D -S3156004C990000000000000000000000000000000002D -S3156004C9A0000000000000000000000000000000001D -S3156004C9B0000000000000000000000000000000000D -S3156004C9C000000000000000000000000000000000FD -S3156004C9D000000000000000000000000000000000ED -S3156004C9E000000000000000000000000000000000DD -S3156004C9F000000000000000000000000000000000CD -S3156004CA0000000000000000000000000000000000BC -S3156004CA1000000000000000000000000000000000AC -S3156004CA20000000000000000000000000000000009C -S3156004CA30000000000000000000000000000000008C -S3156004CA40000000000000000000000000000000007C -S3156004CA50000000000000000000000000000000006C -S3156004CA60000000000000000000000000000000005C -S3156004CA70000000000000000000000000000000004C -S3156004CA80000000000000000000000000000000003C -S3156004CA90000000000000000000000000000000002C -S3156004CAA0000000000000000000000000000000001C -S3156004CAB0000000000000000000000000000000000C -S3156004CAC000000000000000000000000000000000FC -S3156004CAD000000000000000000000000000000000EC -S3156004CAE000000000000000000000000000000000DC -S3156004CAF000000000000000000000000000000000CC -S3156004CB0000000000000000000000000000000000BB -S3156004CB1000000000000000000000000000000000AB -S3156004CB20000000000000000000000000000000009B -S3156004CB30000000000000000000000000000000008B -S3156004CB40000000000000000000000000000000007B -S3156004CB50000000000000000000000000000000006B -S3156004CB60000000000000000000000000000000005B -S3156004CB70000000000000000000000000000000004B -S3156004CB80000000000000000000000000000000003B -S3156004CB90000000000000000000000000000000002B -S3156004CBA0000000000000000000000000000000001B -S3156004CBB0000000000000000000000000000000000B -S3156004CBC000000000000000000000000000000000FB -S3156004CBD000000000000000000000000000000000EB -S3156004CBE000000000000000000000000000000000DB -S3156004CBF000000000000000000000000000000000CB -S3156004CC0000000000000000000000000000000000BA -S3156004CC1000000000000000000000000000000000AA -S3156004CC20000000000000000000000000000000009A -S3156004CC30000000000000000000000000000000008A -S3156004CC40000000000000000000000000000000007A -S3156004CC50000000000000000000000000000000006A -S3156004CC60000000000000000000000000000000005A -S3156004CC70000000000000000000000000000000004A -S3156004CC80000000000000000000000000000000003A -S3156004CC90000000000000000000000000000000002A -S3156004CCA0000000000000000000000000000000001A -S3156004CCB0000000000000000000000000000000000A -S3156004CCC000000000000000000000000000000000FA -S3156004CCD000000000000000000000000000000000EA -S3156004CCE000000000000000000000000000000000DA -S3156004CCF000000000000000000000000000000000CA -S3156004CD0000000000000000000000000000000000B9 -S3156004CD1000000000000000000000000000000000A9 -S3156004CD200000000000000000000000000000000099 -S3156004CD300000000000000000000000000000000089 -S3156004CD400000000000000000000000000000000079 -S3156004CD500000000000000000000000000000000069 -S3156004CD600000000000000000000000000000000059 -S3156004CD700000000000000000000000000000000049 -S3156004CD800000000000000000000000000000000039 -S3156004CD900000000000000000000000000000000029 -S3156004CDA00000000000000000000000000000000019 -S3156004CDB00000000000000000000000000000000009 -S3156004CDC000000000000000000000000000000000F9 -S3156004CDD000000000000000000000000000000000E9 -S3156004CDE000000000000000000000000000000000D9 -S3156004CDF000000000000000000000000000000000C9 -S3156004CE0000000000000000000000000000000000B8 -S3156004CE1000000000000000000000000000000000A8 -S3156004CE200000000000000000000000000000000098 -S3156004CE300000000000000000000000000000000088 -S3156004CE400000000000000000000000000000000078 -S3156004CE500000000000000000000000000000000068 -S3156004CE600000000000000000000000000000000058 -S3156004CE700000000000000000000000000000000048 -S3156004CE800000000000000000000000000000000038 -S3156004CE900000000000000000000000000000000028 -S3156004CEA00000000000000000000000000000000018 -S3156004CEB00000000000000000000000000000000008 -S3156004CEC000000000000000000000000000000000F8 -S3156004CED000000000000000000000000000000000E8 -S3156004CEE000000000000000000000000000000000D8 -S3156004CEF000000000000000000000000000000000C8 -S3156004CF0000000000000000000000000000000000B7 -S3156004CF1000000000000000000000000000000000A7 -S3156004CF200000000000000000000000000000000097 -S3156004CF300000000000000000000000000000000087 -S3156004CF400000000000000000000000000000000077 -S3156004CF500000000000000000000000000000000067 -S3156004CF600000000000000000000000000000000057 -S3156004CF700000000000000000000000000000000047 -S3156004CF800000000000000000000000000000000037 -S3156004CF900000000000000000000000000000000027 -S3156004CFA00000000000000000000000000000000017 -S3156004CFB00000000000000000000000000000000007 -S3156004CFC000000000000000000000000000000000F7 -S3156004CFD000000000000000000000000000000000E7 -S3156004CFE000000000000000000000000000000000D7 -S3156004CFF000000000000000000000000000000000C7 -S3156004D00000000000000000000000000000000000B6 -S3156004D01000000000000000000000000000000000A6 -S3156004D0200000000000000000000000000000000096 -S3156004D0300000000000000000000000000000000086 -S3156004D0400000000000000000000000000000000076 -S3156004D0500000000000000000000000000000000066 -S3156004D0600000000000000000000000000000000056 -S3156004D0700000000000000000000000000000000046 -S3156004D0800000000000000000000000000000000036 -S3156004D0900000000000000000000000000000000026 -S3156004D0A00000000000000000000000000000000016 -S3156004D0B00000000000000000000000000000000006 -S3156004D0C000000000000000000000000000000000F6 -S3156004D0D000000000000000000000000000000000E6 -S3156004D0E000000000000000000000000000000000D6 -S3156004D0F000000000000000000000000000000000C6 -S3156004D10000000000000000000000000000000000B5 -S3156004D11000000000000000000000000000000000A5 -S3156004D1200000000000000000000000000000000095 -S3156004D1300000000000000000000000000000000085 -S3156004D1400000000000000000000000000000000075 -S3156004D1500000000000000000000000000000000065 -S3156004D1600000000000000000000000000000000055 -S3156004D1700000000000000000000000000000000045 -S3156004D1800000000000000000000000000000000035 -S3156004D1900000000000000000000000000000000025 -S3156004D1A00000000000000000000000000000000015 -S3156004D1B00000000000000000000000000000000005 -S3156004D1C000000000000000000000000000000000F5 -S3156004D1D000000000000000000000000000000000E5 -S3156004D1E000000000000000000000000000000000D5 -S3156004D1F000000000000000000000000000000000C5 -S3156004D20000000000000000000000000000000000B4 -S3156004D21000000000000000000000000000000000A4 -S3156004D2200000000000000000000000000000000094 -S3156004D2300000000000000000000000000000000084 -S3156004D2400000000000000000000000000000000074 -S3156004D2500000000000000000000000000000000064 -S3156004D2600000000000000000000000000000000054 -S3156004D2700000000000000000000000000000000044 -S3156004D2800000000000000000000000000000000034 -S3156004D2900000000000000000000000000000000024 -S3156004D2A00000000000000000000000000000000014 -S3156004D2B00000000000000000000000000000000004 -S3156004D2C000000000000000000000000000000000F4 -S3156004D2D000000000000000000000000000000000E4 -S3156004D2E000000000000000000000000000000000D4 -S3156004D2F000000000000000000000000000000000C4 -S3156004D30000000000000000000000000000000000B3 -S3156004D31000000000000000000000000000000000A3 -S3156004D3200000000000000000000000000000000093 -S3156004D3300000000000000000000000000000000083 -S3156004D3400000000000000000000000000000000073 -S3156004D3500000000000000000000000000000000063 -S3156004D3600000000000000000000000000000000053 -S3156004D3700000000000000000000000000000000043 -S3156004D3800000000000000000000000000000000033 -S3156004D3900000000000000000000000000000000023 -S3156004D3A00000000000000000000000000000000013 -S3156004D3B00000000000000000000000000000000003 -S3156004D3C000000000000000000000000000000000F3 -S3156004D3D000000000000000000000000000000000E3 -S3156004D3E000000000000000000000000000000000D3 -S3156004D3F000000000000000000000000000000000C3 -S3156004D40000000000000000000000000000000000B2 -S3156004D41000000000000000000000000000000000A2 -S3156004D4200000000000000000000000000000000092 -S3156004D4300000000000000000000000000000000082 -S3156004D4400000000000000000000000000000000072 -S3156004D4500000000000000000000000000000000062 -S3156004D4600000000000000000000000000000000052 -S3156004D4700000000000000000000000000000000042 -S3156004D4800000000000000000000000000000000032 -S3156004D4900000000000000000000000000000000022 -S3156004D4A00000000000000000000000000000000012 -S3156004D4B00000000000000000000000000000000002 -S3156004D4C000000000000000000000000000000000F2 -S3156004D4D000000000000000000000000000000000E2 -S3156004D4E000000000000000000000000000000000D2 -S3156004D4F000000000000000000000000000000000C2 -S3156004D50000000000000000000000000000000000B1 -S3156004D51000000000000000000000000000000000A1 -S3156004D5200000000000000000000000000000000091 -S3156004D5300000000000000000000000000000000081 -S3156004D5400000000000000000000000000000000071 -S3156004D5500000000000000000000000000000000061 -S3156004D5600000000000000000000000000000000051 -S3156004D5700000000000000000000000000000000041 -S3156004D5800000000000000000000000000000000031 -S3156004D5900000000000000000000000000000000021 -S3156004D5A00000000000000000000000000000000011 -S3156004D5B00000000000000000000000000000000001 -S3156004D5C000000000000000000000000000000000F1 -S3156004D5D000000000000000000000000000000000E1 -S3156004D5E000000000000000000000000000000000D1 -S3156004D5F000000000000000000000000000000000C1 -S3156004D60000000000000000000000000000000000B0 -S3156004D61000000000000000000000000000000000A0 -S3156004D6200000000000000000000000000000000090 -S3156004D6300000000000000000000000000000000080 -S3156004D6400000000000000000000000000000000070 -S3156004D6500000000000000000000000000000000060 -S3156004D6600000000000000000000000000000000050 -S3156004D6700000000000000000000000000000000040 -S3156004D6800000000000000000000000000000000030 -S3156004D6900000000000000000000000000000000020 -S3156004D6A00000000000000000000000000000000010 -S3156004D6B00000000000000000000000000000000000 -S3156004D6C000000000000000000000000000000000F0 -S3156004D6D000000000000000000000000000000000E0 -S3156004D6E000000000000000000000000000000000D0 -S3156004D6F000000000000000000000000000000000C0 -S3156004D70000000000000000000000000000000000AF -S3156004D710000000000000000000000000000000009F -S3156004D720000000000000000000000000000000008F -S3156004D730000000000000000000000000000000007F -S3156004D740000000000000000000000000000000006F -S3156004D750000000000000000000000000000000005F -S3156004D760000000000000000000000000000000004F -S3156004D770000000000000000000000000000000003F -S3156004D780000000000000000000000000000000002F -S3156004D790000000000000000000000000000000001F -S3156004D7A0000000000000000000000000000000000F -S3156004D7B000000000000000000000000000000000FF -S3156004D7C000000000000000000000000000000000EF -S3156004D7D000000000000000000000000000000000DF -S3156004D7E000000000000000000000000000000000CF -S3156004D7F000000000000000000000000000000000BF -S3156004D80000000000000000000000000000000000AE -S3156004D810000000000000000000000000000000009E -S3156004D820000000000000000000000000000000008E -S3156004D830000000000000000000000000000000007E -S3156004D840000000000000000000000000000000006E -S3156004D850000000000000000000000000000000005E -S3156004D860000000000000000000000000000000004E -S3156004D870000000000000000000000000000000003E -S3156004D880000000000000000000000000000000002E -S3156004D890000000000000000000000000000000001E -S3156004D8A0000000000000000000000000000000000E -S3156004D8B000000000000000000000000000000000FE -S3156004D8C000000000000000000000000000000000EE -S3156004D8D000000000000000000000000000000000DE -S3156004D8E000000000000000000000000000000000CE -S3156004D8F000000000000000000000000000000000BE -S3156004D90000000000000000000000000000000000AD -S3156004D910000000000000000000000000000000009D -S3156004D920000000000000000000000000000000008D -S3156004D930000000000000000000000000000000007D -S3156004D940000000000000000000000000000000006D -S3156004D950000000000000000000000000000000005D -S3156004D960000000000000000000000000000000004D -S3156004D970000000000000000000000000000000003D -S3156004D980000000000000000000000000000000002D -S3156004D990000000000000000000000000000000001D -S3156004D9A0000000000000000000000000000000000D -S3156004D9B000000000000000000000000000000000FD -S3156004D9C000000000000000000000000000000000ED -S3156004D9D000000000000000000000000000000000DD -S3156004D9E000000000000000000000000000000000CD -S3156004D9F000000000000000000000000000000000BD -S3156004DA0000000000000000000000000000000000AC -S3156004DA10000000000000000000000000000000009C -S3156004DA20000000000000000000000000000000008C -S3156004DA30000000000000000000000000000000007C -S3156004DA40000000000000000000000000000000006C -S3156004DA50000000000000000000000000000000005C -S3156004DA60000000000000000000000000000000004C -S3156004DA70000000000000000000000000000000003C -S3156004DA80000000000000000000000000000000002C -S3156004DA90000000000000000000000000000000001C -S3156004DAA0000000000000000000000000000000000C -S3156004DAB000000000000000000000000000000000FC -S3156004DAC000000000000000000000000000000000EC -S3156004DAD000000000000000000000000000000000DC -S3156004DAE000000000000000000000000000000000CC -S3156004DAF000000000000000000000000000000000BC -S3156004DB0000000000000000000000000000000000AB -S3156004DB10000000000000000000000000000000009B -S3156004DB20000000000000000000000000000000008B -S3156004DB30000000000000000000000000000000007B -S3156004DB40000000000000000000000000000000006B -S3156004DB50000000000000000000000000000000005B -S3156004DB60000000000000000000000000000000004B -S3156004DB70000000000000000000000000000000003B -S3156004DB80000000000000000000000000000000002B -S3156004DB90000000000000000000000000000000001B -S3156004DBA0000000000000000000000000000000000B -S3156004DBB000000000000000000000000000000000FB -S3156004DBC000000000000000000000000000000000EB -S3156004DBD000000000000000000000000000000000DB -S3156004DBE000000000000000000000000000000000CB -S3156004DBF000000000000000000000000000000000BB -S3156004DC0000000000000000000000000000000000AA -S3156004DC10000000000000000000000000000000009A -S3156004DC20000000000000000000000000000000008A -S3156004DC30000000000000000000000000000000007A -S3156004DC40000000000000000000000000000000006A -S3156004DC50000000000000000000000000000000005A -S3156004DC60000000000000000000000000000000004A -S3156004DC70000000000000000000000000000000003A -S3156004DC80000000000000000000000000000000002A -S3156004DC90000000000000000000000000000000001A -S3156004DCA0000000000000000000000000000000000A -S3156004DCB000000000000000000000000000000000FA -S3156004DCC000000000000000000000000000000000EA -S3156004DCD000000000000000000000000000000000DA -S3156004DCE000000000000000000000000000000000CA -S3156004DCF000000000000000000000000000000000BA -S3156004DD0000000000000000000000000000000000A9 -S3156004DD100000000000000000000000000000000099 -S3156004DD200000000000000000000000000000000089 -S3156004DD300000000000000000000000000000000079 -S3156004DD400000000000000000000000000000000069 -S3156004DD500000000000000000000000000000000059 -S3156004DD600000000000000000000000000000000049 -S3156004DD700000000000000000000000000000000039 -S3156004DD800000000000000000000000000000000029 -S3156004DD900000000000000000000000000000000019 -S3156004DDA00000000000000000000000000000000009 -S3156004DDB000000000000000000000000000000000F9 -S3156004DDC000000000000000000000000000000000E9 -S3156004DDD000000000000000000000000000000000D9 -S3156004DDE000000000000000000000000000000000C9 -S3156004DDF000000000000000000000000000000000B9 -S3156004DE0000000000000000000000000000000000A8 -S3156004DE100000000000000000000000000000000098 -S3156004DE200000000000000000000000000000000088 -S3156004DE300000000000000000000000000000000078 -S3156004DE400000000000000000000000000000000068 -S3156004DE500000000000000000000000000000000058 -S3156004DE600000000000000000000000000000000048 -S3156004DE700000000000000000000000000000000038 -S3156004DE800000000000000000000000000000000028 -S3156004DE900000000000000000000000000000000018 -S3156004DEA00000000000000000000000000000000008 -S3156004DEB000000000000000000000000000000000F8 -S3156004DEC000000000000000000000000000000000E8 -S3156004DED000000000000000000000000000000000D8 -S3156004DEE000000000000000000000000000000000C8 -S3156004DEF000000000000000000000000000000000B8 -S3156004DF0000000000000000000000000000000000A7 -S3156004DF100000000000000000000000000000000097 -S3156004DF200000000000000000000000000000000087 -S3156004DF300000000000000000000000000000000077 -S3156004DF400000000000000000000000000000000067 -S3156004DF500000000000000000000000000000000057 -S3156004DF600000000000000000000000000000000047 -S3156004DF700000000000000000000000000000000037 -S3156004DF800000000000000000000000000000000027 -S3156004DF900000000000000000000000000000000017 -S3156004DFA00000000000000000000000000000000007 -S3156004DFB000000000000000000000000000000000F7 -S3156004DFC000000000000000000000000000000000E7 -S3156004DFD000000000000000000000000000000000D7 -S3156004DFE000000000000000000000000000000000C7 -S3156004DFF000000000000000000000000000000000B7 -S3156004E00000000000000000000000000000000000A6 -S3156004E0100000000000000000000000000000000096 -S3156004E0200000000000000000000000000000000086 -S3156004E0300000000000000000000000000000000076 -S3156004E0400000000000000000000000000000000066 -S3156004E0500000000000000000000000000000000056 -S3156004E0600000000000000000000000000000000046 -S3156004E0700000000000000000000000000000000036 -S3156004E0800000000000000000000000000000000026 -S3156004E0900000000000000000000000000000000016 -S3156004E0A00000000000000000000000000000000006 -S3156004E0B000000000000000000000000000000000F6 -S3156004E0C000000000000000000000000000000000E6 -S3156004E0D000000000000000000000000000000000D6 -S3156004E0E000000000000000000000000000000000C6 -S3156004E0F000000000000000000000000000000000B6 -S3156004E10000000000000000000000000000000000A5 -S3156004E1100000000000000000000000000000000095 -S3156004E1200000000000000000000000000000000085 -S3156004E1300000000000000000000000000000000075 -S3156004E1400000000000000000000000000000000065 -S3156004E1500000000000000000000000000000000055 -S3156004E1600000000000000000000000000000000045 -S3156004E1700000000000000000000000000000000035 -S3156004E1800000000000000000000000000000000025 -S3156004E1900000000000000000000000000000000015 -S3156004E1A00000000000000000000000000000000005 -S3156004E1B000000000000000000000000000000000F5 -S3156004E1C000000000000000000000000000000000E5 -S3156004E1D000000000000000000000000000000000D5 -S3156004E1E000000000000000000000000000000000C5 -S3156004E1F000000000000000000000000000000000B5 -S3156004E20000000000000000000000000000000000A4 -S3156004E2100000000000000000000000000000000094 -S3156004E2200000000000000000000000000000000084 -S3156004E2300000000000000000000000000000000074 -S3156004E2400000000000000000000000000000000064 -S3156004E2500000000000000000000000000000000054 -S3156004E2600000000000000000000000000000000044 -S3156004E2700000000000000000000000000000000034 -S3156004E2800000000000000000000000000000000024 -S3156004E2900000000000000000000000000000000014 -S3156004E2A00000000000000000000000000000000004 -S3156004E2B000000000000000000000000000000000F4 -S3156004E2C000000000000000000000000000000000E4 -S3156004E2D000000000000000000000000000000000D4 -S3156004E2E000000000000000000000000000000000C4 -S3156004E2F000000000000000000000000000000000B4 -S3156004E30000000000000000000000000000000000A3 -S3156004E3100000000000000000000000000000000093 -S3156004E3200000000000000000000000000000000083 -S3156004E3300000000000000000000000000000000073 -S3156004E3400000000000000000000000000000000063 -S3156004E3500000000000000000000000000000000053 -S3156004E3600000000000000000000000000000000043 -S3156004E3700000000000000000000000000000000033 -S3156004E3800000000000000000000000000000000023 -S3156004E3900000000000000000000000000000000013 -S3156004E3A00000000000000000000000000000000003 -S3156004E3B000000000000000000000000000000000F3 -S3156004E3C000000000000000000000000000000000E3 -S3156004E3D000000000000000000000000000000000D3 -S3156004E3E000000000000000000000000000000000C3 -S3156004E3F000000000000000000000000000000000B3 -S3156004E40000000000000000000000000000000000A2 -S3156004E4100000000000000000000000000000000092 -S3156004E4200000000000000000000000000000000082 -S3156004E4300000000000000000000000000000000072 -S3156004E4400000000000000000000000000000000062 -S3156004E4500000000000000000000000000000000052 -S3156004E4600000000000000000000000000000000042 -S3156004E4700000000000000000000000000000000032 -S3156004E4800000000000000000000000000000000022 -S3156004E4900000000000000000000000000000000012 -S3156004E4A00000000000000000000000000000000002 -S3156004E4B000000000000000000000000000000000F2 -S3156004E4C000000000000000000000000000000000E2 -S3156004E4D000000000000000000000000000000000D2 -S3156004E4E000000000000000000000000000000000C2 -S3156004E4F000000000000000000000000000000000B2 -S3156004E50000000000000000000000000000000000A1 -S3156004E5100000000000000000000000000000000091 -S3156004E5200000000000000000000000000000000081 -S3156004E5300000000000000000000000000000000071 -S3156004E5400000000000000000000000000000000061 -S3156004E5500000000000000000000000000000000051 -S3156004E5600000000000000000000000000000000041 -S3156004E5700000000000000000000000000000000031 -S3156004E5800000000000000000000000000000000021 -S3156004E5900000000000000000000000000000000011 -S3156004E5A00000000000000000000000000000000001 -S3156004E5B000000000000000000000000000000000F1 -S3156004E5C000000000000000000000000000000000E1 -S3156004E5D000000000000000000000000000000000D1 -S3156004E5E000000000000000000000000000000000C1 -S3156004E5F000000000000000000000000000000000B1 -S3156004E60000000000000000000000000000000000A0 -S3156004E6100000000000000000000000000000000090 -S3156004E6200000000000000000000000000000000080 -S3156004E6300000000000000000000000000000000070 -S3156004E6400000000000000000000000000000000060 -S3156004E6500000000000000000000000000000000050 -S3156004E6600000000000000000000000000000000040 -S3156004E6700000000000000000000000000000000030 -S3156004E6800000000000000000000000000000000020 -S3156004E6900000000000000000000000000000000010 -S3156004E6A00000000000000000000000000000000000 -S3156004E6B000000000000000000000000000000000F0 -S3156004E6C000000000000000000000000000000000E0 -S3156004E6D000000000000000000000000000000000D0 -S3156004E6E000000000000000000000000000000000C0 -S3156004E6F000000000000000000000000000000000B0 -S3156004E700000000000000000000000000000000009F -S3156004E710000000000000000000000000000000008F -S3156004E720000000000000000000000000000000007F -S3156004E730000000000000000000000000000000006F -S3156004E740000000000000000000000000000000005F -S3156004E750000000000000000000000000000000004F -S3156004E760000000000000000000000000000000003F -S3156004E770000000000000000000000000000000002F -S3156004E780000000000000000000000000000000001F -S3156004E790000000000000000000000000000000000F -S3156004E7A000000000000000000000000000000000FF -S3156004E7B000000000000000000000000000000000EF -S3156004E7C000000000000000000000000000000000DF -S3156004E7D000000000000000000000000000000000CF -S3156004E7E000000000000000000000000000000000BF -S3156004E7F000000000000000000000000000000000AF -S3156004E800000000000000000000000000000000009E -S3156004E810000000000000000000000000000000008E -S3156004E820000000000000000000000000000000007E -S3156004E830000000000000000000000000000000006E -S3156004E840000000000000000000000000000000005E -S3156004E850000000000000000000000000000000004E -S3156004E860000000000000000000000000000000003E -S3156004E870000000000000000000000000000000002E -S3156004E880000000000000000000000000000000001E -S3156004E890000000000000000000000000000000000E -S3156004E8A000000000000000000000000000000000FE -S3156004E8B000000000000000000000000000000000EE -S3156004E8C000000000000000000000000000000000DE -S3156004E8D000000000000000000000000000000000CE -S3156004E8E000000000000000000000000000000000BE -S3156004E8F000000000000000000000000000000000AE -S3156004E900000000000000000000000000000000009D -S3156004E910000000000000000000000000000000008D -S3156004E920000000000000000000000000000000007D -S3156004E930000000000000000000000000000000006D -S3156004E940000000000000000000000000000000005D -S3156004E950000000000000000000000000000000004D -S3156004E960000000000000000000000000000000003D -S3156004E970000000000000000000000000000000002D -S3156004E980000000000000000000000000000000001D -S3156004E990000000000000000000000000000000000D -S3156004E9A000000000000000000000000000000000FD -S3156004E9B000000000000000000000000000000000ED -S3156004E9C000000000000000000000000000000000DD -S3156004E9D000000000000000000000000000000000CD -S3156004E9E000000000000000000000000000000000BD -S3156004E9F000000000000000000000000000000000AD -S3156004EA00000000000000000000000000000000009C -S3156004EA10000000000000000000000000000000008C -S3156004EA20000000000000000000000000000000007C -S3156004EA30000000000000000000000000000000006C -S3156004EA40000000000000000000000000000000005C -S3156004EA50000000000000000000000000000000004C -S3156004EA60000000000000000000000000000000003C -S3156004EA70000000000000000000000000000000002C -S3156004EA80000000000000000000000000000000001C -S3156004EA90000000000000000000000000000000000C -S3156004EAA000000000000000000000000000000000FC -S3156004EAB000000000000000000000000000000000EC -S3156004EAC000000000000000000000000000000000DC -S3156004EAD000000000000000000000000000000000CC -S3156004EAE000000000000000000000000000000000BC -S3156004EAF000000000000000000000000000000000AC -S3156004EB00000000000000000000000000000000009B -S3156004EB10000000000000000000000000000000008B -S3156004EB20000000000000000000000000000000007B -S3156004EB30000000000000000000000000000000006B -S3156004EB40000000000000000000000000000000005B -S3156004EB50000000000000000000000000000000004B -S3156004EB60000000000000000000000000000000003B -S3156004EB70000000000000000000000000000000002B -S3156004EB80000000000000000000000000000000001B -S3156004EB90000000000000000000000000000000000B -S3156004EBA000000000000000000000000000000000FB -S3156004EBB000000000000000000000000000000000EB -S3156004EBC000000000000000000000000000000000DB -S3156004EBD000000000000000000000000000000000CB -S3156004EBE000000000000000000000000000000000BB -S3156004EBF000000000000000000000000000000000AB -S3156004EC00000000000000000000000000000000009A -S3156004EC10000000000000000000000000000000008A -S3156004EC20000000000000000000000000000000007A -S3156004EC30000000000000000000000000000000006A -S3156004EC40000000000000000000000000000000005A -S3156004EC50000000000000000000000000000000004A -S3156004EC60000000000000000000000000000000003A -S3156004EC70000000000000000000000000000000002A -S3156004EC80000000000000000000000000000000001A -S3156004EC90000000000000000000000000000000000A -S3156004ECA000000000000000000000000000000000FA -S3156004ECB000000000000000000000000000000000EA -S3156004ECC000000000000000000000000000000000DA -S3156004ECD000000000000000000000000000000000CA -S3156004ECE000000000000000000000000000000000BA -S3156004ECF000000000000000000000000000000000AA -S3156004ED000000000000000000000000000000000099 -S3156004ED100000000000000000000000000000000089 -S3156004ED200000000000000000000000000000000079 -S3156004ED300000000000000000000000000000000069 -S3156004ED400000000000000000000000000000000059 -S3156004ED500000000000000000000000000000000049 -S3156004ED600000000000000000000000000000000039 -S3156004ED700000000000000000000000000000000029 -S3156004ED800000000000000000000000000000000019 -S3156004ED900000000000000000000000000000000009 -S3156004EDA000000000000000000000000000000000F9 -S3156004EDB000000000000000000000000000000000E9 -S3156004EDC000000000000000000000000000000000D9 -S3156004EDD000000000000000000000000000000000C9 -S3156004EDE000000000000000000000000000000000B9 -S3156004EDF000000000000000000000000000000000A9 -S3156004EE000000000000000000000000000000000098 -S3156004EE100000000000000000000000000000000088 -S3156004EE200000000000000000000000000000000078 -S3156004EE300000000000000000000000000000000068 -S3156004EE400000000000000000000000000000000058 -S3156004EE500000000000000000000000000000000048 -S3156004EE600000000000000000000000000000000038 -S3156004EE700000000000000000000000000000000028 -S3156004EE800000000000000000000000000000000018 -S3156004EE900000000000000000000000000000000008 -S3156004EEA000000000000000000000000000000000F8 -S3156004EEB000000000000000000000000000000000E8 -S3156004EEC000000000000000000000000000000000D8 -S3156004EED000000000000000000000000000000000C8 -S3156004EEE000000000000000000000000000000000B8 -S3156004EEF000000000000000000000000000000000A8 -S3156004EF000000000000000000000000000000000097 -S3156004EF100000000000000000000000000000000087 -S3156004EF200000000000000000000000000000000077 -S3156004EF300000000000000000000000000000000067 -S3156004EF400000000000000000000000000000000057 -S3156004EF500000000000000000000000000000000047 -S3156004EF600000000000000000000000000000000037 -S3156004EF700000000000000000000000000000000027 -S3156004EF800000000000000000000000000000000017 -S3156004EF900000000000000000000000000000000007 -S3156004EFA000000000000000000000000000000000F7 -S3156004EFB000000000000000000000000000000000E7 -S3156004EFC000000000000000000000000000000000D7 -S3156004EFD000000000000000000000000000000000C7 -S3156004EFE000000000000000000000000000000000B7 -S3156004EFF000000000000000000000000000000000A7 -S3156004F0000000000000000000000000000000000096 -S3156004F0100000000000000000000000000000000086 -S3156004F0200000000000000000000000000000000076 -S3156004F0300000000000000000000000000000000066 -S3156004F0400000000000000000000000000000000056 -S3156004F0500000000000000000000000000000000046 -S3156004F0600000000000000000000000000000000036 -S3156004F0700000000000000000000000000000000026 -S3156004F0800000000000000000000000000000000016 -S3156004F0900000000000000000000000000000000006 -S3156004F0A000000000000000000000000000000000F6 -S3156004F0B000000000000000000000000000000000E6 -S3156004F0C000000000000000000000000000000000D6 -S3156004F0D000000000000000000000000000000000C6 -S3156004F0E000000000000000000000000000000000B6 -S3156004F0F000000000000000000000000000000000A6 -S3156004F1000000000000000000000000000000000095 -S3156004F1100000000000000000000000000000000085 -S3156004F1200000000000000000000000000000000075 -S3156004F1300000000000000000000000000000000065 -S3156004F1400000000000000000000000000000000055 -S3156004F1500000000000000000000000000000000045 -S3156004F1600000000000000000000000000000000035 -S3156004F1700000000000000000000000000000000025 -S3156004F1800000000000000000000000000000000015 -S3156004F1900000000000000000000000000000000005 -S3156004F1A000000000000000000000000000000000F5 -S3156004F1B000000000000000000000000000000000E5 -S3156004F1C000000000000000000000000000000000D5 -S3156004F1D000000000000000000000000000000000C5 -S3156004F1E000000000000000000000000000000000B5 -S3156004F1F000000000000000000000000000000000A5 -S3156004F2000000000000000000000000000000000094 -S3156004F2100000000000000000000000000000000084 -S3156004F2200000000000000000000000000000000074 -S3156004F2300000000000000000000000000000000064 -S3156004F2400000000000000000000000000000000054 -S3156004F2500000000000000000000000000000000044 -S3156004F2600000000000000000000000000000000034 -S3156004F2700000000000000000000000000000000024 -S3156004F2800000000000000000000000000000000014 -S3156004F2900000000000000000000000000000000004 -S3156004F2A000000000000000000000000000000000F4 -S3156004F2B000000000000000000000000000000000E4 -S3156004F2C000000000000000000000000000000000D4 -S3156004F2D000000000000000000000000000000000C4 -S3156004F2E000000000000000000000000000000000B4 -S3156004F2F000000000000000000000000000000000A4 -S3156004F3000000000000000000000000000000000093 -S3156004F3100000000000000000000000000000000083 -S3156004F3200000000000000000000000000000000073 -S3156004F3300000000000000000000000000000000063 -S3156004F3400000000000000000000000000000000053 -S3156004F3500000000000000000000000000000000043 -S3156004F3600000000000000000000000000000000033 -S3156004F3700000000000000000000000000000000023 -S3156004F3800000000000000000000000000000000013 -S3156004F3900000000000000000000000000000000003 -S3156004F3A000000000000000000000000000000000F3 -S3156004F3B000000000000000000000000000000000E3 -S3156004F3C000000000000000000000000000000000D3 -S3156004F3D000000000000000000000000000000000C3 -S3156004F3E000000000000000000000000000000000B3 -S3156004F3F000000000000000000000000000000000A3 -S3156004F4000000000000000000000000000000000092 -S3156004F4100000000000000000000000000000000082 -S3156004F4200000000000000000000000000000000072 -S3156004F4300000000000000000000000000000000062 -S3156004F4400000000000000000000000000000000052 -S3156004F4500000000000000000000000000000000042 -S3156004F4600000000000000000000000000000000032 -S3156004F4700000000000000000000000000000000022 -S3156004F4800000000000000000000000000000000012 -S3156004F4900000000000000000000000000000000002 -S3156004F4A000000000000000000000000000000000F2 -S3156004F4B000000000000000000000000000000000E2 -S3156004F4C000000000000000000000000000000000D2 -S3156004F4D000000000000000000000000000000000C2 -S3156004F4E000000000000000000000000000000000B2 -S3156004F4F000000000000000000000000000000000A2 -S3156004F5000000000000000000000000000000000091 -S3156004F5100000000000000000000000000000000081 -S3156004F5200000000000000000000000000000000071 -S3156004F5300000000000000000000000000000000061 -S3156004F5400000000000000000000000000000000051 -S3156004F5500000000000000000000000000000000041 -S3156004F5600000000000000000000000000000000031 -S3156004F5700000000000000000000000000000000021 -S3156004F5800000000000000000000000000000000011 -S3156004F5900000000000000000000000000000000001 -S3156004F5A000000000000000000000000000000000F1 -S3156004F5B000000000000000000000000000000000E1 -S3156004F5C000000000000000000000000000000000D1 -S3156004F5D000000000000000000000000000000000C1 -S3156004F5E000000000000000000000000000000000B1 -S3156004F5F000000000000000000000000000000000A1 -S3156004F6000000000000000000000000000000000090 -S3156004F6100000000000000000000000000000000080 -S3156004F6200000000000000000000000000000000070 -S3156004F6300000000000000000000000000000000060 -S3156004F6400000000000000000000000000000000050 -S3156004F6500000000000000000000000000000000040 -S3156004F6600000000000000000000000000000000030 -S3156004F6700000000000000000000000000000000020 -S3156004F6800000000000000000000000000000000010 -S3156004F6900000000000000000000000000000000000 -S3156004F6A000000000000000000000000000000000F0 -S3156004F6B000000000000000000000000000000000E0 -S3156004F6C000000000000000000000000000000000D0 -S3156004F6D000000000000000000000000000000000C0 -S3156004F6E000000000000000000000000000000000B0 -S3156004F6F000000000000000000000000000000000A0 -S3156004F700000000000000000000000000000000008F -S3156004F710000000000000000000000000000000007F -S3156004F720000000000000000000000000000000006F -S3156004F730000000000000000000000000000000005F -S3156004F740000000000000000000000000000000004F -S3156004F750000000000000000000000000000000003F -S3156004F760000000000000000000000000000000002F -S3156004F770000000000000000000000000000000001F -S3156004F780000000000000000000000000000000000F -S3156004F79000000000000000000000000000000000FF -S3156004F7A000000000000000000000000000000000EF -S3156004F7B000000000000000000000000000000000DF -S3156004F7C000000000000000000000000000000000CF -S3156004F7D000000000000000000000000000000000BF -S3156004F7E000000000000000000000000000000000AF -S3156004F7F0000000000000000000000000000000009F -S3156004F800000000000000000000000000000000008E -S3156004F810000000000000000000000000000000007E -S3156004F820000000000000000000000000000000006E -S3156004F830000000000000000000000000000000005E -S3156004F840000000000000000000000000000000004E -S3156004F850000000000000000000000000000000003E -S3156004F860000000000000000000000000000000002E -S3156004F870000000000000000000000000000000001E -S3156004F880000000000000000000000000000000000E -S3156004F89000000000000000000000000000000000FE -S3156004F8A000000000000000000000000000000000EE -S3156004F8B000000000000000000000000000000000DE -S3156004F8C000000000000000000000000000000000CE -S3156004F8D000000000000000000000000000000000BE -S3156004F8E000000000000000000000000000000000AE -S3156004F8F0000000000000000000000000000000009E -S3156004F900000000000000000000000000000000008D -S3156004F910000000000000000000000000000000007D -S3156004F920000000000000000000000000000000006D -S3156004F930000000000000000000000000000000005D -S3156004F940000000000000000000000000000000004D -S3156004F950000000000000000000000000000000003D -S3156004F960000000000000000000000000000000002D -S3156004F970000000000000000000000000000000001D -S3156004F980000000000000000000000000000000000D -S3156004F99000000000000000000000000000000000FD -S3156004F9A000000000000000000000000000000000ED -S3156004F9B000000000000000000000000000000000DD -S3156004F9C000000000000000000000000000000000CD -S3156004F9D000000000000000000000000000000000BD -S3156004F9E000000000000000000000000000000000AD -S3156004F9F0000000000000000000000000000000009D -S3156004FA00000000000000000000000000000000008C -S3156004FA10000000000000000000000000000000007C -S3156004FA20000000000000000000000000000000006C -S3156004FA30000000000000000000000000000000005C -S3156004FA40000000000000000000000000000000004C -S3156004FA50000000000000000000000000000000003C -S3156004FA60000000000000000000000000000000002C -S3156004FA70000000000000000000000000000000001C -S3156004FA80000000000000000000000000000000000C -S3156004FA9000000000000000000000000000000000FC -S3156004FAA000000000000000000000000000000000EC -S3156004FAB000000000000000000000000000000000DC -S3156004FAC000000000000000000000000000000000CC -S3156004FAD000000000000000000000000000000000BC -S3156004FAE000000000000000000000000000000000AC -S3156004FAF0000000000000000000000000000000009C -S3156004FB00000000000000000000000000000000008B -S3156004FB10000000000000000000000000000000007B -S3156004FB20000000000000000000000000000000006B -S3156004FB30000000000000000000000000000000005B -S3156004FB40000000000000000000000000000000004B -S3156004FB50000000000000000000000000000000003B -S3156004FB60000000000000000000000000000000002B -S3156004FB70000000000000000000000000000000001B -S3156004FB80000000000000000000000000000000000B -S3156004FB9000000000000000000000000000000000FB -S3156004FBA000000000000000000000000000000000EB -S3156004FBB000000000000000000000000000000000DB -S3156004FBC000000000000000000000000000000000CB -S3156004FBD000000000000000000000000000000000BB -S3156004FBE000000000000000000000000000000000AB -S3156004FBF0000000000000000000000000000000009B -S3156004FC00000000000000000000000000000000008A -S3156004FC10000000000000000000000000000000007A -S3156004FC20000000000000000000000000000000006A -S3156004FC30000000000000000000000000000000005A -S3156004FC40000000000000000000000000000000004A -S3156004FC50000000000000000000000000000000003A -S3156004FC60000000000000000000000000000000002A -S3156004FC70000000000000000000000000000000001A -S3156004FC80000000000000000000000000000000000A -S3156004FC9000000000000000000000000000000000FA -S3156004FCA000000000000000000000000000000000EA -S3156004FCB000000000000000000000000000000000DA -S3156004FCC000000000000000000000000000000000CA -S3156004FCD000000000000000000000000000000000BA -S3156004FCE000000000000000000000000000000000AA -S3156004FCF0000000000000000000000000000000009A -S3156004FD000000000000000000000000000000000089 -S3156004FD100000000000000000000000000000000079 -S3156004FD200000000000000000000000000000000069 -S3156004FD300000000000000000000000000000000059 -S3156004FD400000000000000000000000000000000049 -S3156004FD500000000000000000000000000000000039 -S3156004FD600000000000000000000000000000000029 -S3156004FD700000000000000000000000000000000019 -S3156004FD800000000000000000000000000000000009 -S3156004FD9000000000000000000000000000000000F9 -S3156004FDA000000000000000000000000000000000E9 -S3156004FDB000000000000000000000000000000000D9 -S3156004FDC000000000000000000000000000000000C9 -S3156004FDD000000000000000000000000000000000B9 -S3156004FDE000000000000000000000000000000000A9 -S3156004FDF00000000000000000000000000000000099 -S3156004FE000000000000000000000000000000000088 -S3156004FE100000000000000000000000000000000078 -S3156004FE200000000000000000000000000000000068 -S3156004FE300000000000000000000000000000000058 -S3156004FE400000000000000000000000000000000048 -S3156004FE500000000000000000000000000000000038 -S3156004FE600000000000000000000000000000000028 -S3156004FE700000000000000000000000000000000018 -S3156004FE800000000000000000000000000000000008 -S3156004FE9000000000000000000000000000000000F8 -S3156004FEA000000000000000000000000000000000E8 -S3156004FEB000000000000000000000000000000000D8 -S3156004FEC000000000000000000000000000000000C8 -S3156004FED000000000000000000000000000000000B8 -S3156004FEE000000000000000000000000000000000A8 -S3156004FEF00000000000000000000000000000000098 -S3156004FF000000000000000000000000000000000087 -S3156004FF100000000000000000000000000000000077 -S3156004FF200000000000000000000000000000000067 -S3156004FF300000000000000000000000000000000057 -S3156004FF400000000000000000000000000000000047 -S3156004FF500000000000000000000000000000000037 -S3156004FF600000000000000000000000000000000027 -S3156004FF700000000000000000000000000000000017 -S3156004FF800000000000000000000000000000000007 -S3156004FF9000000000000000000000000000000000F7 -S3156004FFA000000000000000000000000000000000E7 -S3156004FFB000000000000000000000000000000000D7 -S3156004FFC000000000000000000000000000000000C7 -S3156004FFD000000000000000000000000000000000B7 -S3156004FFE000000000000000000000000000000000A7 -S3156004FFF00000000000000000000000000000000097 -S315600500000000000200000003000000000000000080 -S315600500100000000100000000FFFFFFFE0000000376 -S3156005002055555554FFFFFFFE0000000355555554C1 -S31560050030700FFFFE00000007100249240000000053 -S315600500400000000000000000000000020000000340 -S315600500500000000000000003FFFFFFFEFFFFFFFF3B -S3156005006000000002FFFFFFFD000000000000000029 -S31560050070000000010000000000000000FFFFFFFF18 -S315600500800000000000000001FFFFFFFFFFFFFFFF0C -S31560050090FFFFFFFF00000001FFFFFFFFFFFFFFFE01 -S315600500A00000000300000000FFFFFFFEFFFFFFFDED -S315600500B000000000000000090000000700000001C4 -S315600500C0FFFFFFF700000002FFFFFFFCFFFFFFF8E1 -S315600500D000000002FFFFFFFCFFFFFFF8FFFFFFFCCC -S315600500E00000000200000008FFFFFFFCFFFFFFFEA7 -S315600500F0FFFFFFF8FFFFFFF800000001FFFFFFF8B5 -S31560050100FFFFFFF7000000000000000B0000000283 -S31560050110000000050000002F000000020000001727 -S3156005012000003039000002A700000012FFFF076CCF -S315600501300000004DFFFFFCC600003039FFFFFD598A -S31560050140FFFFFFEEFFFF076CFFFFFFB30000033AFB -S3156005015000000091FFFFE84100000000FFFFFD84FD -S31560050160FFFED02F000000000000F6FA006E498100 -S315600501700000000000000000000000000000000014 -S31560050180FFFFF0000000000200000003000000060B -S3156005019000000002FFFFFFFDFFFFFFFA0000000001 -S315600501A0000000010000000000000000FFFFFFFFE7 -S315600501B00000000000000001FFFFFFFFFFFFFFFFDB -S315600501C0FFFFFFFF00000001FFFFFFFFFFFFFFFED0 -S315600501D000000003FFFFFFFAFFFFFFFEFFFFFFFDC5 -S315600501E00000000600000000000000000000000995 -S315600501F00000000000000000000000000000000094 -S31560050200000000000000000100000002000000037D -S315600502100000000000000000000000000000000073 -S31560050220000000006005050C600505D8600506A49C -S315600502300000000000000000000000000000000053 -S315600502400000000000000000000000000000000043 -S31560050250000000006001B58000000000000000009D -S315600502600000000000000000000000000000000023 -S315600502700000000000000000000000000000000013 -S315600502800000000000000000000000000000000003 -S3156005029000000000000000000000000000000000F3 -S315600502A000000000000000000000000000000000E3 -S315600502B000000000000000000000000000000000D3 -S315600502C000000000000000000000000000000001C2 -S315600502D0330EABCD1234E66DDEEC0005000B000087 -S315600502E000000000000000000000000000000000A3 -S315600502F00000000000000000000000000000000093 -S315600503000000000000000000000000000000000082 -S315600503100000000000000000000000000000000072 -S315600503200000000000000000000000000000000062 -S315600503300000000000000000000000000000000052 -S315600503400000000000000000000000000000000042 -S315600503500000000000000000000000000000000032 -S315600503600000000000000000000000000000000022 -S315600503700000000000000000000000000000000012 -S315600503800000000000000000000000000000000002 -S3156005039000000000000000000000000000000000F2 -S315600503A000000000000000000000000000000000E2 -S315600503B000000000000000000000000000000000D2 -S315600503C000000000000000000000000000000000C2 -S315600503D000000000000000000000000000000000B2 -S315600503E000000000000000000000000000000000A2 -S315600503F00000000000000000000000000000000092 -S315600504000000000000000000000000000000000081 -S315600504100000000000000000000000000000000071 -S315600504200000000000000000000000000000000061 -S315600504300000000000000000000000000000000051 -S315600504400000000000000000000000000000000041 -S315600504500000000000000000000000000000000031 -S315600504600000000000000000000000000000000021 -S315600504700000000000000000000000000000000011 -S315600504800000000000000000000000000000000001 -S3156005049000000000000000000000000000000000F1 -S315600504A000000000000000000000000000000000E1 -S315600504B000000000000000000000000000000000D1 -S315600504C000000000000000000000000000000000C1 -S315600504D000000000000000000000000000000000B1 -S315600504E000000000000000000000000000000000A1 -S315600504F00000000000000000000000000000000091 -S315600505000000000000000000000000000000000080 -S315600505100000000000000000000000000000000070 -S315600505200000000000000000000000000000000060 -S315600505300000000000000000000000000000000050 -S315600505400000000000000000000000000000000040 -S315600505500000000000000000000000000000000030 -S315600505600000000000000000000000000000000020 -S315600505700000000000000000000000000000000010 -S315600505800000000000000000000000000000000000 -S3156005059000000000000000000000000000000000F0 -S315600505A000000000000000000000000000000000E0 -S315600505B000000000000000000000000000000000D0 -S315600505C000000000000000000000000000000000C0 -S315600505D000000000000000000000000000000000B0 -S315600505E000000000000000000000000000000000A0 -S315600505F00000000000000000000000000000000090 -S31560050600000000000000000000000000000000007F -S31560050610000000000000000000000000000000006F -S31560050620000000000000000000000000000000005F -S31560050630000000000000000000000000000000004F -S31560050640000000000000000000000000000000003F -S31560050650000000000000000000000000000000002F -S31560050660000000000000000000000000000000001F -S31560050670000000000000000000000000000000000F -S3156005068000000000000000000000000000000000FF -S3156005069000000000000000000000000000000000EF -S315600506A000000000000000000000000000000000DF -S315600506B000000000000000000000000000000000CF -S315600506C000000000000000000000000000000000BF -S315600506D000000000000000000000000000000000AF -S315600506E0000000000000000000000000000000009F -S315600506F0000000000000000000000000000000008F -S31560050700000000000000000000000000000000007E -S31560050710000000000000000000000000000000006E -S31560050720000000000000000000000000000000005E -S31560050730000000000000000000000000000000004E -S31560050740000000000000000000000000000000003E -S31560050750000000000000000000000000000000002E -S31560050760000000000000000000000000000000001E -S315600507706005022000000000FFFFFFFF0002000089 -S315600507800000000000000000600507806005078026 -S31560050790600507886005078860050790600507900E -S315600507A06005079860050798600507A0600507A0BE -S315600507B0600507A8600507A8600507B0600507B06E -S315600507C0600507B8600507B8600507C0600507C01E -S315600507D0600507C8600507C8600507D0600507D0CE -S315600507E0600507D8600507D8600507E0600507E07E -S315600507F0600507E8600507E8600507F0600507F02E -S31560050800600507F8600507F86005080060050800DB -S315600508106005080860050808600508106005081089 -S315600508206005081860050818600508206005082039 -S3156005083060050828600508286005083060050830E9 -S315600508406005083860050838600508406005084099 -S315600508506005084860050848600508506005085049 -S3156005086060050858600508586005086060050860F9 -S3156005087060050868600508686005087060050870A9 -S315600508806005087860050878600508806005088059 -S315600508906005088860050888600508906005089009 -S315600508A06005089860050898600508A0600508A0B9 -S315600508B0600508A8600508A8600508B0600508B069 -S315600508C0600508B8600508B8600508C0600508C019 -S315600508D0600508C8600508C8600508D0600508D0C9 -S315600508E0600508D8600508D8600508E0600508E079 -S315600508F0600508E8600508E8600508F0600508F029 -S31560050900600508F8600508F86005090060050900D6 -S315600509106005090860050908600509106005091084 -S315600509206005091860050918600509206005092034 -S3156005093060050928600509286005093060050930E4 -S315600509406005093860050938600509406005094094 -S315600509506005094860050948600509506005095044 -S3156005096060050958600509586005096060050960F4 -S3156005097060050968600509686005097060050970A4 -S315600509806005097860050978600509806005098054 -S315600509906005098860050988600509906005099004 -S315600509A06005099860050998600509A0600509A0B4 -S315600509B0600509A8600509A8600509B0600509B064 -S315600509C0600509B8600509B8600509C0600509C014 -S315600509D0600509C8600509C8600509D0600509D0C4 -S315600509E0600509D8600509D8600509E0600509E074 -S315600509F0600509E8600509E8600509F0600509F024 -S31560050A00600509F8600509F860050A0060050A00D1 -S31560050A1060050A0860050A0860050A1060050A107F -S31560050A2060050A1860050A1860050A2060050A202F -S31560050A3060050A2860050A2860050A3060050A30DF -S31560050A4060050A3860050A3860050A4060050A408F -S31560050A5060050A4860050A4860050A5060050A503F -S31560050A6060050A5860050A5860050A6060050A60EF -S31560050A7060050A6860050A6860050A7060050A709F -S31560050A8060050A7860050A7860050A8060050A804F -S31560050A9060050A8860050A8860050A9060050A90FF -S31560050AA060050A9860050A9860050AA060050AA0AF -S31560050AB060050AA860050AA860050AB060050AB05F -S31560050AC060050AB860050AB860050AC060050AC00F -S31560050AD060050AC860050AC860050AD060050AD0BF -S31560050AE060050AD860050AD860050AE060050AE06F -S31560050AF060050AE860050AE860050AF060050AF01F -S31560050B0060050AF860050AF860050B0060050B00CC -S31560050B1060050B0860050B0860050B1060050B107A -S31560050B2060050B1860050B1860050B2060050B202A -S31560050B3060050B2860050B2860050B3060050B30DA -S31560050B4060050B3860050B3860050B4060050B408A -S31560050B5060050B4860050B4860050B5060050B503A -S31560050B6060050B5860050B5860050B6060050B60EA -S31560050B7060050B6860050B6860050B7060050B709A -S31560050B8060050B7860050B780000000060050B8832 -S31560050B9000000000000000000000000000000002E8 -S31560050BA000000000000000000000000000000000DA -S31560050BB000000000000000000000000000000000CA -S31560050BC000000000000000000000000000000000BA -S31560050BD000000000000000000000000000000000AA -S31560050BE0000000000000000000000000000000009A -S31560050BF0000000000000000000000000000000008A -S31560050C000000000000000000000000000000000079 -S31560050C100000000000000000000000000000000069 -S31560050C200000000000000000000000000000000059 -S31560050C3080000100000000080000000700000006B3 -S31560050C40000000030000000000000000FFFF8AD0DE -S30960050C5080000310A2 -S705600000009A diff --git a/designs/leon3-ge-hpe-mini-lattice/sram.srec b/designs/leon3-ge-hpe-mini-lattice/sram.srec deleted file mode 100755 index 3576a8f4..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/sram.srec +++ /dev/null @@ -1,19492 +0,0 @@ -S00C00007372616D2E7372656365 -S31560000000881000000918006C81C1206C0100000096 -S31560000010A1480000A75000001080203BAC102001D2 -S3156000002091D02000010000000100000001000000E6 -S3156000003091D02000010000000100000001000000D6 -S31560000040A14800002918006B81C523A401000000A7 -S31560000050A14800002918006981C522C80100000076 -S31560000060A14800002918006981C5233401000000F9 -S3156000007091D0200001000000010000000100000096 -S3156000008091D0200001000000010000000100000086 -S31560000090A1480000A75000001080201BAC1020096A -S315600000A091D0200001000000010000000100000066 -S315600000B091D0200001000000010000000100000056 -S315600000C091D0200001000000010000000100000046 -S315600000D091D0200001000000010000000100000036 -S315600000E091D0200001000000010000000100000026 -S315600000F091D0200001000000010000000100000016 -S3156000010091D0200001000000010000000100000005 -S31560000110AE102001A148000010806A33A75000008D -S31560000120AE102002A148000010806A2FA750000080 -S31560000130AE102003A148000010806A2BA750000073 -S31560000140AE102004A148000010806A27A750000066 -S31560000150AE102005A148000010806A23A750000059 -S31560000160AE102006A148000010806A1FA75000004C -S31560000170AE102007A148000010806A1BA75000003F -S31560000180AE102008A148000010806A17A750000032 -S31560000190AE102009A148000010806A13A750000025 -S315600001A0AE10200AA148000010806A0FA750000018 -S315600001B0AE10200BA148000010806A0BA75000000B -S315600001C0AE10200CA148000010806A07A7500000FE -S315600001D0AE10200DA148000010806A03A7500000F1 -S315600001E0AE10200EA1480000108069FFA7500000E5 -S315600001F0AE10200FA1480000108069FBA7500000D8 -S3156000020091D0200001000000010000000100000004 -S3156000021091D02000010000000100000001000000F4 -S3156000022091D02000010000000100000001000000E4 -S3156000023091D02000010000000100000001000000D4 -S3156000024091D02000010000000100000001000000C4 -S3156000025091D02000010000000100000001000000B4 -S3156000026091D02000010000000100000001000000A4 -S3156000027091D0200001000000010000000100000094 -S3156000028091D0200001000000010000000100000084 -S3156000029091D0200001000000010000000100000074 -S315600002A091D0200001000000010000000100000064 -S315600002B091D0200001000000010000000100000054 -S315600002C091D0200001000000010000000100000044 -S315600002D091D0200001000000010000000100000034 -S315600002E091D0200001000000010000000100000024 -S315600002F091D0200001000000010000000100000014 -S3156000030091D0200001000000010000000100000003 -S3156000031091D02000010000000100000001000000F3 -S3156000032091D02000010000000100000001000000E3 -S3156000033091D02000010000000100000001000000D3 -S3156000034091D02000010000000100000001000000C3 -S3156000035091D02000010000000100000001000000B3 -S3156000036091D02000010000000100000001000000A3 -S3156000037091D0200001000000010000000100000093 -S3156000038091D0200001000000010000000100000083 -S3156000039091D0200001000000010000000100000073 -S315600003A091D0200001000000010000000100000063 -S315600003B091D0200001000000010000000100000053 -S315600003C091D0200001000000010000000100000043 -S315600003D091D0200001000000010000000100000033 -S315600003E091D0200001000000010000000100000023 -S315600003F091D0200001000000010000000100000013 -S3156000040091D0200001000000010000000100000002 -S3156000041091D02000010000000100000001000000F2 -S3156000042091D02000010000000100000001000000E2 -S3156000043091D02000010000000100000001000000D2 -S3156000044091D02000010000000100000001000000C2 -S3156000045091D02000010000000100000001000000B2 -S3156000046091D02000010000000100000001000000A2 -S3156000047091D0200001000000010000000100000092 -S3156000048091D0200001000000010000000100000082 -S3156000049091D0200001000000010000000100000072 -S315600004A091D0200001000000010000000100000062 -S315600004B091D0200001000000010000000100000052 -S315600004C091D0200001000000010000000100000042 -S315600004D091D0200001000000010000000100000032 -S315600004E091D0200001000000010000000100000022 -S315600004F091D0200001000000010000000100000012 -S3156000050091D0200001000000010000000100000001 -S3156000051091D02000010000000100000001000000F1 -S3156000052091D02000010000000100000001000000E1 -S3156000053091D02000010000000100000001000000D1 -S3156000054091D02000010000000100000001000000C1 -S3156000055091D02000010000000100000001000000B1 -S3156000056091D02000010000000100000001000000A1 -S3156000057091D0200001000000010000000100000091 -S3156000058091D0200001000000010000000100000081 -S3156000059091D0200001000000010000000100000071 -S315600005A091D0200001000000010000000100000061 -S315600005B091D0200001000000010000000100000051 -S315600005C091D0200001000000010000000100000041 -S315600005D091D0200001000000010000000100000031 -S315600005E091D0200001000000010000000100000021 -S315600005F091D0200001000000010000000100000011 -S3156000060091D0200001000000010000000100000000 -S3156000061091D02000010000000100000001000000F0 -S3156000062091D02000010000000100000001000000E0 -S3156000063091D02000010000000100000001000000D0 -S3156000064091D02000010000000100000001000000C0 -S3156000065091D02000010000000100000001000000B0 -S3156000066091D02000010000000100000001000000A0 -S3156000067091D0200001000000010000000100000090 -S3156000068091D0200001000000010000000100000080 -S3156000069091D0200001000000010000000100000070 -S315600006A091D0200001000000010000000100000060 -S315600006B091D0200001000000010000000100000050 -S315600006C091D0200001000000010000000100000040 -S315600006D091D0200001000000010000000100000030 -S315600006E091D0200001000000010000000100000020 -S315600006F091D0200001000000010000000100000010 -S3156000070091D02000010000000100000001000000FF -S3156000071091D02000010000000100000001000000EF -S3156000072091D02000010000000100000001000000DF -S3156000073091D02000010000000100000001000000CF -S3156000074091D02000010000000100000001000000BF -S3156000075091D02000010000000100000001000000AF -S3156000076091D020000100000001000000010000009F -S3156000077091D020000100000001000000010000008F -S3156000078091D020000100000001000000010000007F -S3156000079091D020000100000001000000010000006F -S315600007A091D020000100000001000000010000005F -S315600007B091D020000100000001000000010000004F -S315600007C091D020000100000001000000010000003F -S315600007D091D020000100000001000000010000002F -S315600007E091D020000100000001000000010000001F -S315600007F091D020000100000001000000010000000F -S3156000080091D02000010000000100000001000000FE -S3156000081091D02000010000000100000001000000EE -S31560000820A14800002918006A81C52108010000005E -S31560000830A1480000108067D9A750000001000000A1 -S3156000084091D02000010000000100000001000000BE -S31560000850A14800002918006A81C520EC010000004B -S3156000086091D020000100000001000000010000009E -S3156000087091D020000100000001000000010000008E -S3156000088091D020000100000001000000010000007E -S3156000089091D020000100000001000000010000006E -S315600008A091D020000100000001000000010000005E -S315600008B091D020000100000001000000010000004E -S315600008C091D020000100000001000000010000003E -S315600008D091D020000100000001000000010000002E -S315600008E091D020000100000001000000010000001E -S315600008F091D020000100000001000000010000000E -S3156000090091D02000010000000100000001000000FD -S3156000091091D02000010000000100000001000000ED -S3156000092091D02000010000000100000001000000DD -S3156000093091D02000010000000100000001000000CD -S3156000094091D02000010000000100000001000000BD -S3156000095091D02000010000000100000001000000AD -S3156000096091D020000100000001000000010000009D -S3156000097091D020000100000001000000010000008D -S3156000098091D020000100000001000000010000007D -S3156000099091D020000100000001000000010000006D -S315600009A091D020000100000001000000010000005D -S315600009B091D020000100000001000000010000004D -S315600009C091D020000100000001000000010000003D -S315600009D091D020000100000001000000010000002D -S315600009E091D020000100000001000000010000001D -S315600009F091D020000100000001000000010000000D -S31560000A0091D02000010000000100000001000000FC -S31560000A1091D02000010000000100000001000000EC -S31560000A2091D02000010000000100000001000000DC -S31560000A3091D02000010000000100000001000000CC -S31560000A4091D02000010000000100000001000000BC -S31560000A5091D02000010000000100000001000000AC -S31560000A6091D020000100000001000000010000009C -S31560000A7091D020000100000001000000010000008C -S31560000A8091D020000100000001000000010000007C -S31560000A9091D020000100000001000000010000006C -S31560000AA091D020000100000001000000010000005C -S31560000AB091D020000100000001000000010000004C -S31560000AC091D020000100000001000000010000003C -S31560000AD091D020000100000001000000010000002C -S31560000AE091D020000100000001000000010000001C -S31560000AF091D020000100000001000000010000000C -S31560000B0091D02000010000000100000001000000FB -S31560000B1091D02000010000000100000001000000EB -S31560000B2091D02000010000000100000001000000DB -S31560000B3091D02000010000000100000001000000CB -S31560000B4091D02000010000000100000001000000BB -S31560000B5091D02000010000000100000001000000AB -S31560000B6091D020000100000001000000010000009B -S31560000B7091D020000100000001000000010000008B -S31560000B8091D020000100000001000000010000007B -S31560000B9091D020000100000001000000010000006B -S31560000BA091D020000100000001000000010000005B -S31560000BB091D020000100000001000000010000004B -S31560000BC091D020000100000001000000010000003B -S31560000BD091D020000100000001000000010000002B -S31560000BE091D020000100000001000000010000001B -S31560000BF091D020000100000001000000010000000B -S31560000C0091D02000010000000100000001000000FA -S31560000C1091D02000010000000100000001000000EA -S31560000C2091D02000010000000100000001000000DA -S31560000C3091D02000010000000100000001000000CA -S31560000C4091D02000010000000100000001000000BA -S31560000C5091D02000010000000100000001000000AA -S31560000C6091D020000100000001000000010000009A -S31560000C7091D020000100000001000000010000008A -S31560000C8091D020000100000001000000010000007A -S31560000C9091D020000100000001000000010000006A -S31560000CA091D020000100000001000000010000005A -S31560000CB091D020000100000001000000010000004A -S31560000CC091D020000100000001000000010000003A -S31560000CD091D020000100000001000000010000002A -S31560000CE091D020000100000001000000010000001A -S31560000CF091D020000100000001000000010000000A -S31560000D0091D02000010000000100000001000000F9 -S31560000D1091D02000010000000100000001000000E9 -S31560000D2091D02000010000000100000001000000D9 -S31560000D3091D02000010000000100000001000000C9 -S31560000D4091D02000010000000100000001000000B9 -S31560000D5091D02000010000000100000001000000A9 -S31560000D6091D0200001000000010000000100000099 -S31560000D7091D0200001000000010000000100000089 -S31560000D8091D0200001000000010000000100000079 -S31560000D9091D0200001000000010000000100000069 -S31560000DA091D0200001000000010000000100000059 -S31560000DB091D0200001000000010000000100000049 -S31560000DC091D0200001000000010000000100000039 -S31560000DD091D0200001000000010000000100000029 -S31560000DE091D0200001000000010000000100000019 -S31560000DF091D0200001000000010000000100000009 -S31560000E0091D02000010000000100000001000000F8 -S31560000E1091D02000010000000100000001000000E8 -S31560000E2091D02000010000000100000001000000D8 -S31560000E3091D02000010000000100000001000000C8 -S31560000E4091D02000010000000100000001000000B8 -S31560000E5091D02000010000000100000001000000A8 -S31560000E6091D0200001000000010000000100000098 -S31560000E7091D0200001000000010000000100000088 -S31560000E8091D0200001000000010000000100000078 -S31560000E9091D0200001000000010000000100000068 -S31560000EA091D0200001000000010000000100000058 -S31560000EB091D0200001000000010000000100000048 -S31560000EC091D0200001000000010000000100000038 -S31560000ED091D0200001000000010000000100000028 -S31560000EE091D0200001000000010000000100000018 -S31560000EF091D0200001000000010000000100000008 -S31560000F0091D02000010000000100000001000000F7 -S31560000F1091D02000010000000100000001000000E7 -S31560000F2091D02000010000000100000001000000D7 -S31560000F3091D02000010000000100000001000000C7 -S31560000F4091D02000010000000100000001000000B7 -S31560000F5091D02000010000000100000001000000A7 -S31560000F6091D0200001000000010000000100000097 -S31560000F7091D0200001000000010000000100000087 -S31560000F8091D0200001000000010000000100000077 -S31560000F9091D0200001000000010000000100000067 -S31560000FA091D0200001000000010000000100000057 -S31560000FB091D0200001000000010000000100000047 -S31560000FC091D0200001000000010000000100000037 -S31560000FD091D0200001000000010000000100000027 -S31560000FE091D0200001000000010000000100000017 -S31560000FF091D0200001000000010000000100000007 -S315600010009DE3BFC0051801438410A0600718014422 -S315600010108610E188821000008620C00286A0E00863 -S3156000102036BFFFFFC0388003111801449012218833 -S31560001030C02200004000666601000000400066664F -S315600010400100000040006818010000001118006DE2 -S31560001050901221A040006166010000004000694ACC -S3156000106001000000400000430100000040006743AB -S315600010700100000081C7E00881E800009DE3BF9899 -S3156000108023180143C20C606080A0600012800015C6 -S315600010902118008010800005C204200C9FC3400008 -S315600010A0C224200CC204200CDA00400080A3600039 -S315600010B012BFFFFB82006004030000008210600024 -S315600010C080A0600002800006821020011118006D69 -S315600010D067FFFBCC9012213082102001C22C606029 -S315600010E081C7E00881E800009DE3BF9881C7E008FA -S315600010F081E800009DE3BF98030000008210600055 -S315600011001118006D1318014380A060009012213001 -S31560001110028000049212606467FFFBBA010000005F -S315600011201B180144C203618880A060000280000928 -S31560001130B0136188030000008210600080A0600028 -S31560001140028000040100000067FFFBAE81E800003A -S315600011500100000081C7E00881E800009DE3BF98B8 -S3156000116081C7E00881E8000081C3E0080100000053 -S315600011709DE3BF9840000007010000004000014663 -S31560001180010000004000000E81E800000100000040 -S315600011909DE3BF98400000290100000080A2200066 -S315600011A01280000503180080D80060109A10200194 -S315600011B0DA23201081C7E00891E820000318008038 -S315600011C0D80060109A102001DA23201481C3E00849 -S315600011D09010200003180080DA006010D0234000D1 -S315600011E081C3E0089010200003180080DA006010C8 -S315600011F0D023600881C3E0089010200003180080A7 -S31560001200DA006010D023600481C3E00890102000EB -S3156000121013180080921260149010200081C3E008B9 -S31560001220D0EA4020901020001318008092126014BB -S3156000123081C3E008D0224000914440009132201CD6 -S3156000124081C3E008900A200F81C3E008D0820020A5 -S315600012509010200C81C3E008D08200408210000804 -S3156000126080A20009148000039022000990224001A8 -S3156000127081C3E00801000000932A60028210200109 -S31560001280C22200099810200080A3000A1680000A76 -S3156000129096102001832B2002DA02000180A0000D47 -S315600012A0826020009803200180A3000A06BFFFFA2F -S315600012B0960AC00180A2E00002BFFFF498102000E9 -S315600012C081C3E008010000009DE3BF98C2062010BC -S315600012D08330601CA0100018A400600180A4A001E7 -S315600012E00280006CB0103FFF7FFFFFD4010000005A -S315600012F0AA100008912A20047FFFFFBC90022007F5 -S315600013007FFFFFD40100000003020000808A000115 -S315600013100280005C010000009A05600182102001D5 -S315600013208328400D11180080C2242010901220A03E -S31560001330921000157FFFFFD19410001203180080F1 -S3156000134082106018A12D6002C0204010DA004010A3 -S31560001350A610000180A36009291801431480002BA0 -S31560001360AC1000017FFFFFAB0100000080A22000EF -S3156000137012BFFFFD01000000B010200080A6001221 -S31560001380168000140100000010800005A2100016EF -S3156000139080A600121680000F01000000832E200236 -S315600013A0D0044010D20440017FFFFFADB00620019B -S315600013B080A2200104BFFFF7901020027FFFFF90FC -S315600013C00100000080A6001206BFFFF6832E2002F1 -S315600013D0C205207C82006001C225207C7FFFFF92CF -S315600013E001000000C204C01082006001C224C01067 -S315600013F0DA04C01080A3600904BFFFDB1118008007 -S31560001400108000049012205C111800809012205CFD -S31560001410921000157FFFFF9994100012832CA00292 -S3156000142082004012A0004001DA05207C80A4000DF5 -S3156000143002800004231801437FFFFF719010200390 -S31560001440C204607C80A06000048000060100000089 -S31560001450C204607C80A400011680000580A560003F -S315600014607FFFFF679010200380A56000228000093F -S31560001470B010200091D0200010800006B01020002F -S315600014807FFFFF5F9010200110BFFFA59A056001E6 -S3156000149081C7E00881E800009DE3BF98C20620107E -S315600014A0A01000188330601C80A0600002800009D4 -S315600014B0B0103FFF7FFFFF610100000080A22000A7 -S315600014C0128000040300003F821063FFC2242010D4 -S315600014D081C7E00881E800009DE3BF98C20620103E -S315600014E08330601CA400600180A4A00102800068B3 -S315600014F0B0103FFF7FFFFF5101000000AA100008F7 -S31560001500912A20047FFFFF39900220077FFFFF5159 -S315600015100100000003020000808A0001028000587A -S315600015200100000011180080901220A09210001592 -S315600015307FFFFF529410001203180080821060181B -S31560001540A12D6002C0204010DA004010A6100001F4 -S3156000155080A36009291801431480002BAC10000198 -S315600015607FFFFF2C0100000080A2200012BFFFFD5C -S3156000157001000000B010200080A600121680001442 -S315600015800100000010800005A210001680A600125F -S315600015901680000F01000000832E2002D004401048 -S315600015A0D20440017FFFFF2EB006200180A22001F9 -S315600015B004BFFFF7901020027FFFFF1101000000BB -S315600015C080A6001206BFFFF6832E2002C205207C8D -S315600015D082006001C225207C7FFFFF1301000000AE -S315600015E0C204C01082006001C224C010DA04C010B8 -S315600015F080A3600904BFFFDB11180080108000041F -S315600016009012205C111800809012205C92100015D8 -S315600016107FFFFF1A94100012832CA00282004012F2 -S31560001620A0004001DA05207C80A4000D0280000441 -S31560001630231801437FFFFEF290102003C204607CF2 -S3156000164080A060000480000601000000C204607C87 -S3156000165080A400011680000580A560007FFFFEE87B -S315600016609010200380A5600022800009B010200041 -S3156000167091D0200010800006B01020007FFFFEE0B1 -S315600016809010200110BFFFA91118008081C7E008E3 -S3156000169081E800009DE3BF98312000009216220089 -S315600016A09410200040003E599010200140003B629B -S315600016B0901622009016230040003EBE921020082D -S315600016C0B016210040003A4F81E80000010000009A -S315600016D09DE3BF9821200000921422009410200000 -S315600016E040003E4A9010200140003B539014220077 -S315600016F09210001840003EAF90142300B0142100F1 -S3156000170040003A4081E8000001000000000000004F -S315600017100000000000000000000000000000000063 -S315600017200000000000000000000000000000000053 -S315600017300000000000000000000000000000000043 -S315600017400000000000000000000000000000000033 -S315600017500000000000000000000000000000000023 -S315600017600000000000000000000000000000000013 -S315600017700000000000000000000000000000000003 -S3156000178000000000000000000000000000000000F3 -S3156000179000000000000000000000000000000000E3 -S315600017A000000000000000000000000000000000D3 -S315600017B000000000000000000000000000000000C3 -S315600017C000000000000000000000000000000000B3 -S315600017D000000000000000000000000000000000A3 -S315600017E00000000000000000000000000000000093 -S315600017F00000000000000000000000000000000083 -S315600018000000000000000000000000000000000072 -S315600018100000000000000000000000000000000062 -S315600018200000000000000000000000000000000052 -S315600018300000000000000000000000000000000042 -S315600018400000000000000000000000000000000032 -S315600018500000000000000000000000000000000022 -S315600018600000000000000000000000000000000012 -S315600018700000000000000000000000000000000002 -S3156000188000000000000000000000000000000000F2 -S3156000189000000000000000000000000000000000E2 -S315600018A000000000000000000000000000000000D2 -S315600018B000000000000000000000000000000000C2 -S315600018C000000000000000000000000000000000B2 -S315600018D000000000000000000000000000000000A2 -S315600018E00000000000000000000000000000000092 -S315600018F00000000000000000000000000000000082 -S315600019000000000000000000000000000000000071 -S315600019100000000000000000000000000000000061 -S315600019200000000000000000000000000000000051 -S315600019300000000000000000000000000000000041 -S315600019400000000000000000000000000000000031 -S315600019500000000000000000000000000000000021 -S315600019600000000000000000000000000000000011 -S315600019700000000000000000000000000000000001 -S3156000198000000000000000000000000000000000F1 -S3156000199000000000000000000000000000000000E1 -S315600019A000000000000000000000000000000000D1 -S315600019B000000000000000000000000000000000C1 -S315600019C000000000000000000000000000000000B1 -S315600019D000000000000000000000000000000000A1 -S315600019E00000000000000000000000000000000091 -S315600019F00000000000000000000000000000000081 -S31560001A000000000000000000000000000000000070 -S31560001A100000000000000000000000000000000060 -S31560001A200000000000000000000000000000000050 -S31560001A300000000000000000000000000000000040 -S31560001A400000000000000000000000000000000030 -S31560001A500000000000000000000000000000000020 -S31560001A600000000000000000000000000000000010 -S31560001A700000000000000000000000000000000000 -S31560001A8000000000000000000000000000000000F0 -S31560001A9000000000000000000000000000000000E0 -S31560001AA000000000000000000000000000000000D0 -S31560001AB000000000000000000000000000000000C0 -S31560001AC000000000000000000000000000000000B0 -S31560001AD000000000000000000000000000000000A0 -S31560001AE00000000000000000000000000000000090 -S31560001AF00000000000000000000000000000000080 -S31560001B00000000000000000000000000000000006F -S31560001B10000000000000000000000000000000005F -S31560001B20000000000000000000000000000000004F -S31560001B30000000000000000000000000000000003F -S31560001B40000000000000000000000000000000002F -S31560001B50000000000000000000000000000000001F -S31560001B60000000000000000000000000000000000F -S31560001B7000000000000000000000000000000000FF -S31560001B8000000000000000000000000000000000EF -S31560001B9000000000000000000000000000000000DF -S31560001BA000000000000000000000000000000000CF -S31560001BB000000000000000000000000000000000BF -S31560001BC000000000000000000000000000000000AF -S31560001BD0000000000000000000000000000000009F -S31560001BE0000000000000000000000000000000008F -S31560001BF0000000000000000000000000000000007F -S31560001C00000000000000000000000000000000006E -S31560001C10000000000000000000000000000000005E -S31560001C20000000000000000000000000000000004E -S31560001C30000000000000000000000000000000003E -S31560001C40000000000000000000000000000000002E -S31560001C50000000000000000000000000000000001E -S31560001C60000000000000000000000000000000000E -S31560001C7000000000000000000000000000000000FE -S31560001C8000000000000000000000000000000000EE -S31560001C9000000000000000000000000000000000DE -S31560001CA000000000000000000000000000000000CE -S31560001CB000000000000000000000000000000000BE -S31560001CC000000000000000000000000000000000AE -S31560001CD0000000000000000000000000000000009E -S31560001CE0000000000000000000000000000000008E -S31560001CF0000000000000000000000000000000007E -S31560001D00000000000000000000000000000000006D -S31560001D10000000000000000000000000000000005D -S31560001D20000000000000000000000000000000004D -S31560001D30000000000000000000000000000000003D -S31560001D40000000000000000000000000000000002D -S31560001D50000000000000000000000000000000001D -S31560001D60000000000000000000000000000000000D -S31560001D7000000000000000000000000000000000FD -S31560001D8000000000000000000000000000000000ED -S31560001D9000000000000000000000000000000000DD -S31560001DA000000000000000000000000000000000CD -S31560001DB000000000000000000000000000000000BD -S31560001DC000000000000000000000000000000000AD -S31560001DD0000000000000000000000000000000009D -S31560001DE0000000000000000000000000000000008D -S31560001DF0000000000000000000000000000000007D -S31560001E00000000000000000000000000000000006C -S31560001E10000000000000000000000000000000005C -S31560001E20000000000000000000000000000000004C -S31560001E30000000000000000000000000000000003C -S31560001E40000000000000000000000000000000002C -S31560001E50000000000000000000000000000000001C -S31560001E60000000000000000000000000000000000C -S31560001E7000000000000000000000000000000000FC -S31560001E8000000000000000000000000000000000EC -S31560001E9000000000000000000000000000000000DC -S31560001EA000000000000000000000000000000000CC -S31560001EB000000000000000000000000000000000BC -S31560001EC000000000000000000000000000000000AC -S31560001ED0000000000000000000000000000000009C -S31560001EE0000000000000000000000000000000008C -S31560001EF0000000000000000000000000000000007C -S31560001F00000000000000000000000000000000006B -S31560001F10000000000000000000000000000000005B -S31560001F20000000000000000000000000000000004B -S31560001F30000000000000000000000000000000003B -S31560001F40000000000000000000000000000000002B -S31560001F50000000000000000000000000000000001B -S31560001F60000000000000000000000000000000000B -S31560001F7000000000000000000000000000000000FB -S31560001F8000000000000000000000000000000000EB -S31560001F9000000000000000000000000000000000DB -S31560001FA000000000000000000000000000000000CB -S31560001FB000000000000000000000000000000000BB -S31560001FC000000000000000000000000000000000AB -S31560001FD0000000000000000000000000000000009B -S31560001FE0000000000000000000000000000000008B -S31560001FF0000000000000000000000000000000007B -S31560002000000000000000000000000000000000006A -S31560002010000000000000000000000000000000005A -S31560002020000000000000000000000000000000004A -S31560002030000000000000000000000000000000003A -S31560002040000000000000000000000000000000002A -S31560002050000000000000000000000000000000001A -S31560002060000000000000000000000000000000000A -S3156000207000000000000000000000000000000000FA -S3156000208000000000000000000000000000000000EA -S3156000209000000000000000000000000000000000DA -S315600020A000000000000000000000000000000000CA -S315600020B000000000000000000000000000000000BA -S315600020C000000000000000000000000000000000AA -S315600020D0000000000000000000000000000000009A -S315600020E0000000000000000000000000000000008A -S315600020F0000000000000000000000000000000007A -S315600021000000000000000000000000000000000069 -S315600021100000000000000000000000000000000059 -S315600021200000000000000000000000000000000049 -S315600021300000000000000000000000000000000039 -S315600021400000000000000000000000000000000029 -S315600021500000000000000000000000000000000019 -S315600021600000000000000000000000000000000009 -S3156000217000000000000000000000000000000000F9 -S3156000218000000000000000000000000000000000E9 -S3156000219000000000000000000000000000000000D9 -S315600021A000000000000000000000000000000000C9 -S315600021B000000000000000000000000000000000B9 -S315600021C000000000000000000000000000000000A9 -S315600021D00000000000000000000000000000000099 -S315600021E00000000000000000000000000000000089 -S315600021F00000000000000000000000000000000079 -S315600022000000000000000000000000000000000068 -S315600022100000000000000000000000000000000058 -S315600022200000000000000000000000000000000048 -S315600022300000000000000000000000000000000038 -S315600022400000000000000000000000000000000028 -S315600022500000000000000000000000000000000018 -S315600022600000000000000000000000000000000008 -S3156000227000000000000000000000000000000000F8 -S3156000228000000000000000000000000000000000E8 -S3156000229000000000000000000000000000000000D8 -S315600022A000000000000000000000000000000000C8 -S315600022B000000000000000000000000000000000B8 -S315600022C000000000000000000000000000000000A8 -S315600022D00000000000000000000000000000000098 -S315600022E00000000000000000000000000000000088 -S315600022F00000000000000000000000000000000078 -S315600023000000000000000000000000000000000067 -S315600023100000000000000000000000000000000057 -S315600023200000000000000000000000000000000047 -S315600023300000000000000000000000000000000037 -S315600023400000000000000000000000000000000027 -S315600023500000000000000000000000000000000017 -S315600023600000000000000000000000000000000007 -S3156000237000000000000000000000000000000000F7 -S3156000238000000000000000000000000000000000E7 -S3156000239000000000000000000000000000000000D7 -S315600023A000000000000000000000000000000000C7 -S315600023B000000000000000000000000000000000B7 -S315600023C000000000000000000000000000000000A7 -S315600023D00000000000000000000000000000000097 -S315600023E00000000000000000000000000000000087 -S315600023F00000000000000000000000000000000077 -S315600024000000000000000000000000000000000066 -S315600024100000000000000000000000000000000056 -S315600024200000000000000000000000000000000046 -S315600024300000000000000000000000000000000036 -S315600024400000000000000000000000000000000026 -S315600024500000000000000000000000000000000016 -S315600024600000000000000000000000000000000006 -S3156000247000000000000000000000000000000000F6 -S3156000248000000000000000000000000000000000E6 -S3156000249000000000000000000000000000000000D6 -S315600024A000000000000000000000000000000000C6 -S315600024B000000000000000000000000000000000B6 -S315600024C000000000000000000000000000000000A6 -S315600024D00000000000000000000000000000000096 -S315600024E00000000000000000000000000000000086 -S315600024F00000000000000000000000000000000076 -S315600025000000000000000000000000000000000065 -S315600025100000000000000000000000000000000055 -S315600025200000000000000000000000000000000045 -S315600025300000000000000000000000000000000035 -S315600025400000000000000000000000000000000025 -S315600025500000000000000000000000000000000015 -S315600025600000000000000000000000000000000005 -S3156000257000000000000000000000000000000000F5 -S3156000258000000000000000000000000000000000E5 -S3156000259000000000000000000000000000000000D5 -S315600025A000000000000000000000000000000000C5 -S315600025B000000000000000000000000000000000B5 -S315600025C000000000000000000000000000000000A5 -S315600025D00000000000000000000000000000000095 -S315600025E00000000000000000000000000000000085 -S315600025F00000000000000000000000000000000075 -S315600026000000000000000000000000000000000064 -S315600026100000000000000000000000000000000054 -S315600026200000000000000000000000000000000044 -S315600026300000000000000000000000000000000034 -S315600026400000000000000000000000000000000024 -S315600026500000000000000000000000000000000014 -S315600026600000000000000000000000000000000004 -S3156000267000000000000000000000000000000000F4 -S3156000268000000000000000000000000000000000E4 -S3156000269000000000000000000000000000000000D4 -S315600026A000000000000000000000000000000000C4 -S315600026B000000000000000000000000000000000B4 -S315600026C000000000000000000000000000000000A4 -S315600026D00000000000000000000000000000000094 -S315600026E00000000000000000000000000000000084 -S315600026F00000000000000000000000000000000074 -S315600027000000000000000000000000000000000063 -S315600027100000000000000000000000000000000053 -S315600027200000000000000000000000000000000043 -S315600027300000000000000000000000000000000033 -S315600027400000000000000000000000000000000023 -S315600027500000000000000000000000000000000013 -S315600027600000000000000000000000000000000003 -S3156000277000000000000000000000000000000000F3 -S3156000278000000000000000000000000000000000E3 -S3156000279000000000000000000000000000000000D3 -S315600027A000000000000000000000000000000000C3 -S315600027B000000000000000000000000000000000B3 -S315600027C000000000000000000000000000000000A3 -S315600027D00000000000000000000000000000000093 -S315600027E00000000000000000000000000000000083 -S315600027F00000000000000000000000000000000073 -S315600028000000000000000000000000000000000062 -S315600028100000000000000000000000000000000052 -S315600028200000000000000000000000000000000042 -S315600028300000000000000000000000000000000032 -S315600028400000000000000000000000000000000022 -S315600028500000000000000000000000000000000012 -S315600028600000000000000000000000000000000002 -S3156000287000000000000000000000000000000000F2 -S3156000288000000000000000000000000000000000E2 -S3156000289000000000000000000000000000000000D2 -S315600028A000000000000000000000000000000000C2 -S315600028B000000000000000000000000000000000B2 -S315600028C000000000000000000000000000000000A2 -S315600028D00000000000000000000000000000000092 -S315600028E00000000000000000000000000000000082 -S315600028F00000000000000000000000000000000072 -S315600029000000000000000000000000000000000061 -S315600029100000000000000000000000000000000051 -S315600029200000000000000000000000000000000041 -S315600029300000000000000000000000000000000031 -S315600029400000000000000000000000000000000021 -S315600029500000000000000000000000000000000011 -S315600029600000000000000000000000000000000001 -S3156000297000000000000000000000000000000000F1 -S3156000298000000000000000000000000000000000E1 -S3156000299000000000000000000000000000000000D1 -S315600029A000000000000000000000000000000000C1 -S315600029B000000000000000000000000000000000B1 -S315600029C000000000000000000000000000000000A1 -S315600029D00000000000000000000000000000000091 -S315600029E00000000000000000000000000000000081 -S315600029F00000000000000000000000000000000071 -S31560002A000000000000000000000000000000000060 -S31560002A100000000000000000000000000000000050 -S31560002A200000000000000000000000000000000040 -S31560002A300000000000000000000000000000000030 -S31560002A400000000000000000000000000000000020 -S31560002A500000000000000000000000000000000010 -S31560002A600000000000000000000000000000000000 -S31560002A7000000000000000000000000000000000F0 -S31560002A8000000000000000000000000000000000E0 -S31560002A9000000000000000000000000000000000D0 -S31560002AA000000000000000000000000000000000C0 -S31560002AB000000000000000000000000000000000B0 -S31560002AC000000000000000000000000000000000A0 -S31560002AD00000000000000000000000000000000090 -S31560002AE00000000000000000000000000000000080 -S31560002AF00000000000000000000000000000000070 -S31560002B00000000000000000000000000000000005F -S31560002B10000000000000000000000000000000004F -S31560002B20000000000000000000000000000000003F -S31560002B30000000000000000000000000000000002F -S31560002B40000000000000000000000000000000001F -S31560002B50000000000000000000000000000000000F -S31560002B6000000000000000000000000000000000FF -S31560002B7000000000000000000000000000000000EF -S31560002B8000000000000000000000000000000000DF -S31560002B9000000000000000000000000000000000CF -S31560002BA000000000000000000000000000000000BF -S31560002BB000000000000000000000000000000000AF -S31560002BC0000000000000000000000000000000009F -S31560002BD0000000000000000000000000000000008F -S31560002BE0000000000000000000000000000000007F -S31560002BF0000000000000000000000000000000006F -S31560002C00000000000000000000000000000000005E -S31560002C10000000000000000000000000000000004E -S31560002C20000000000000000000000000000000003E -S31560002C30000000000000000000000000000000002E -S31560002C40000000000000000000000000000000001E -S31560002C50000000000000000000000000000000000E -S31560002C6000000000000000000000000000000000FE -S31560002C7000000000000000000000000000000000EE -S31560002C8000000000000000000000000000000000DE -S31560002C9000000000000000000000000000000000CE -S31560002CA000000000000000000000000000000000BE -S31560002CB000000000000000000000000000000000AE -S31560002CC0000000000000000000000000000000009E -S31560002CD0000000000000000000000000000000008E -S31560002CE0000000000000000000000000000000007E -S31560002CF0000000000000000000000000000000006E -S31560002D00000000000000000000000000000000005D -S31560002D10000000000000000000000000000000004D -S31560002D20000000000000000000000000000000003D -S31560002D30000000000000000000000000000000002D -S31560002D40000000000000000000000000000000001D -S31560002D50000000000000000000000000000000000D -S31560002D6000000000000000000000000000000000FD -S31560002D7000000000000000000000000000000000ED -S31560002D8000000000000000000000000000000000DD -S31560002D9000000000000000000000000000000000CD -S31560002DA000000000000000000000000000000000BD -S31560002DB000000000000000000000000000000000AD -S31560002DC0000000000000000000000000000000009D -S31560002DD0000000000000000000000000000000008D -S31560002DE0000000000000000000000000000000007D -S31560002DF0000000000000000000000000000000006D -S31560002E00000000000000000000000000000000005C -S31560002E10000000000000000000000000000000004C -S31560002E20000000000000000000000000000000003C -S31560002E30000000000000000000000000000000002C -S31560002E40000000000000000000000000000000001C -S31560002E50000000000000000000000000000000000C -S31560002E6000000000000000000000000000000000FC -S31560002E7000000000000000000000000000000000EC -S31560002E8000000000000000000000000000000000DC -S31560002E9000000000000000000000000000000000CC -S31560002EA000000000000000000000000000000000BC -S31560002EB000000000000000000000000000000000AC -S31560002EC0000000000000000000000000000000009C -S31560002ED0000000000000000000000000000000008C -S31560002EE0000000000000000000000000000000007C -S31560002EF0000000000000000000000000000000006C -S31560002F00000000000000000000000000000000005B -S31560002F10000000000000000000000000000000004B -S31560002F20000000000000000000000000000000003B -S31560002F30000000000000000000000000000000002B -S31560002F40000000000000000000000000000000001B -S31560002F50000000000000000000000000000000000B -S31560002F6000000000000000000000000000000000FB -S31560002F7000000000000000000000000000000000EB -S31560002F8000000000000000000000000000000000DB -S31560002F9000000000000000000000000000000000CB -S31560002FA000000000000000000000000000000000BB -S31560002FB000000000000000000000000000000000AB -S31560002FC0000000000000000000000000000000009B -S31560002FD0000000000000000000000000000000008B -S31560002FE0000000000000000000000000000000007B -S31560002FF0000000000000000000000000000000006B -S31560003000000000000000000000000000000000005A -S31560003010000000000000000000000000000000004A -S31560003020000000000000000000000000000000003A -S31560003030000000000000000000000000000000002A -S31560003040000000000000000000000000000000001A -S31560003050000000000000000000000000000000000A -S3156000306000000000000000000000000000000000FA -S3156000307000000000000000000000000000000000EA -S3156000308000000000000000000000000000000000DA -S3156000309000000000000000000000000000000000CA -S315600030A000000000000000000000000000000000BA -S315600030B000000000000000000000000000000000AA -S315600030C0000000000000000000000000000000009A -S315600030D0000000000000000000000000000000008A -S315600030E0000000000000000000000000000000007A -S315600030F0000000000000000000000000000000006A -S315600031000000000000000000000000000000000059 -S315600031100000000000000000000000000000000049 -S315600031200000000000000000000000000000000039 -S315600031300000000000000000000000000000000029 -S315600031400000000000000000000000000000000019 -S315600031500000000000000000000000000000000009 -S3156000316000000000000000000000000000000000F9 -S3156000317000000000000000000000000000000000E9 -S3156000318000000000000000000000000000000000D9 -S3156000319000000000000000000000000000000000C9 -S315600031A000000000000000000000000000000000B9 -S315600031B000000000000000000000000000000000A9 -S315600031C00000000000000000000000000000000099 -S315600031D00000000000000000000000000000000089 -S315600031E00000000000000000000000000000000079 -S315600031F00000000000000000000000000000000069 -S315600032000000000000000000000000000000000058 -S315600032100000000000000000000000000000000048 -S315600032200000000000000000000000000000000038 -S315600032300000000000000000000000000000000028 -S315600032400000000000000000000000000000000018 -S315600032500000000000000000000000000000000008 -S3156000326000000000000000000000000000000000F8 -S3156000327000000000000000000000000000000000E8 -S3156000328000000000000000000000000000000000D8 -S3156000329000000000000000000000000000000000C8 -S315600032A000000000000000000000000000000000B8 -S315600032B000000000000000000000000000000000A8 -S315600032C00000000000000000000000000000000098 -S315600032D00000000000000000000000000000000088 -S315600032E00000000000000000000000000000000078 -S315600032F00000000000000000000000000000000068 -S315600033000000000000000000000000000000000057 -S315600033100000000000000000000000000000000047 -S315600033200000000000000000000000000000000037 -S315600033300000000000000000000000000000000027 -S315600033400000000000000000000000000000000017 -S315600033500000000000000000000000000000000007 -S3156000336000000000000000000000000000000000F7 -S3156000337000000000000000000000000000000000E7 -S3156000338000000000000000000000000000000000D7 -S3156000339000000000000000000000000000000000C7 -S315600033A000000000000000000000000000000000B7 -S315600033B000000000000000000000000000000000A7 -S315600033C00000000000000000000000000000000097 -S315600033D00000000000000000000000000000000087 -S315600033E00000000000000000000000000000000077 -S315600033F00000000000000000000000000000000067 -S315600034000000000000000000000000000000000056 -S315600034100000000000000000000000000000000046 -S315600034200000000000000000000000000000000036 -S315600034300000000000000000000000000000000026 -S315600034400000000000000000000000000000000016 -S315600034500000000000000000000000000000000006 -S3156000346000000000000000000000000000000000F6 -S3156000347000000000000000000000000000000000E6 -S3156000348000000000000000000000000000000000D6 -S3156000349000000000000000000000000000000000C6 -S315600034A000000000000000000000000000000000B6 -S315600034B000000000000000000000000000000000A6 -S315600034C00000000000000000000000000000000096 -S315600034D00000000000000000000000000000000086 -S315600034E00000000000000000000000000000000076 -S315600034F00000000000000000000000000000000066 -S315600035000000000000000000000000000000000055 -S315600035100000000000000000000000000000000045 -S315600035200000000000000000000000000000000035 -S315600035300000000000000000000000000000000025 -S315600035400000000000000000000000000000000015 -S315600035500000000000000000000000000000000005 -S3156000356000000000000000000000000000000000F5 -S3156000357000000000000000000000000000000000E5 -S3156000358000000000000000000000000000000000D5 -S3156000359000000000000000000000000000000000C5 -S315600035A000000000000000000000000000000000B5 -S315600035B000000000000000000000000000000000A5 -S315600035C00000000000000000000000000000000095 -S315600035D00000000000000000000000000000000085 -S315600035E00000000000000000000000000000000075 -S315600035F00000000000000000000000000000000065 -S315600036000000000000000000000000000000000054 -S315600036100000000000000000000000000000000044 -S315600036200000000000000000000000000000000034 -S315600036300000000000000000000000000000000024 -S315600036400000000000000000000000000000000014 -S315600036500000000000000000000000000000000004 -S3156000366000000000000000000000000000000000F4 -S3156000367000000000000000000000000000000000E4 -S3156000368000000000000000000000000000000000D4 -S3156000369000000000000000000000000000000000C4 -S315600036A000000000000000000000000000000000B4 -S315600036B000000000000000000000000000000000A4 -S315600036C00000000000000000000000000000000094 -S315600036D00000000000000000000000000000000084 -S315600036E00000000000000000000000000000000074 -S315600036F00000000000000000000000000000000064 -S315600037000000000000000000000000000000000053 -S315600037100000000000000000000000000000000043 -S315600037200000000000000000000000000000000033 -S315600037300000000000000000000000000000000023 -S315600037400000000000000000000000000000000013 -S315600037500000000000000000000000000000000003 -S3156000376000000000000000000000000000000000F3 -S3156000377000000000000000000000000000000000E3 -S3156000378000000000000000000000000000000000D3 -S3156000379000000000000000000000000000000000C3 -S315600037A000000000000000000000000000000000B3 -S315600037B000000000000000000000000000000000A3 -S315600037C00000000000000000000000000000000093 -S315600037D00000000000000000000000000000000083 -S315600037E00000000000000000000000000000000073 -S315600037F00000000000000000000000000000000063 -S315600038000000000000000000000000000000000052 -S315600038100000000000000000000000000000000042 -S315600038200000000000000000000000000000000032 -S315600038300000000000000000000000000000000022 -S315600038400000000000000000000000000000000012 -S315600038500000000000000000000000000000000002 -S3156000386000000000000000000000000000000000F2 -S3156000387000000000000000000000000000000000E2 -S3156000388000000000000000000000000000000000D2 -S3156000389000000000000000000000000000000000C2 -S315600038A000000000000000000000000000000000B2 -S315600038B000000000000000000000000000000000A2 -S315600038C00000000000000000000000000000000092 -S315600038D00000000000000000000000000000000082 -S315600038E00000000000000000000000000000000072 -S315600038F00000000000000000000000000000000062 -S315600039000000000000000000000000000000000051 -S315600039100000000000000000000000000000000041 -S315600039200000000000000000000000000000000031 -S315600039300000000000000000000000000000000021 -S315600039400000000000000000000000000000000011 -S315600039500000000000000000000000000000000001 -S3156000396000000000000000000000000000000000F1 -S3156000397000000000000000000000000000000000E1 -S3156000398000000000000000000000000000000000D1 -S3156000399000000000000000000000000000000000C1 -S315600039A000000000000000000000000000000000B1 -S315600039B000000000000000000000000000000000A1 -S315600039C00000000000000000000000000000000091 -S315600039D00000000000000000000000000000000081 -S315600039E00000000000000000000000000000000071 -S315600039F00000000000000000000000000000000061 -S31560003A000000000000000000000000000000000050 -S31560003A100000000000000000000000000000000040 -S31560003A200000000000000000000000000000000030 -S31560003A300000000000000000000000000000000020 -S31560003A400000000000000000000000000000000010 -S31560003A500000000000000000000000000000000000 -S31560003A6000000000000000000000000000000000F0 -S31560003A7000000000000000000000000000000000E0 -S31560003A8000000000000000000000000000000000D0 -S31560003A9000000000000000000000000000000000C0 -S31560003AA000000000000000000000000000000000B0 -S31560003AB000000000000000000000000000000000A0 -S31560003AC00000000000000000000000000000000090 -S31560003AD00000000000000000000000000000000080 -S31560003AE00000000000000000000000000000000070 -S31560003AF00000000000000000000000000000000060 -S31560003B00000000000000000000000000000000004F -S31560003B10000000000000000000000000000000003F -S31560003B20000000000000000000000000000000002F -S31560003B30000000000000000000000000000000001F -S31560003B40000000000000000000000000000000000F -S31560003B5000000000000000000000000000000000FF -S31560003B6000000000000000000000000000000000EF -S31560003B7000000000000000000000000000000000DF -S31560003B8000000000000000000000000000000000CF -S31560003B9000000000000000000000000000000000BF -S31560003BA000000000000000000000000000000000AF -S31560003BB0000000000000000000000000000000009F -S31560003BC0000000000000000000000000000000008F -S31560003BD0000000000000000000000000000000007F -S31560003BE0000000000000000000000000000000006F -S31560003BF0000000000000000000000000000000005F -S31560003C00000000000000000000000000000000004E -S31560003C10000000000000000000000000000000003E -S31560003C20000000000000000000000000000000002E -S31560003C30000000000000000000000000000000001E -S31560003C40000000000000000000000000000000000E -S31560003C5000000000000000000000000000000000FE -S31560003C6000000000000000000000000000000000EE -S31560003C7000000000000000000000000000000000DE -S31560003C8000000000000000000000000000000000CE -S31560003C9000000000000000000000000000000000BE -S31560003CA000000000000000000000000000000000AE -S31560003CB0000000000000000000000000000000009E -S31560003CC0000000000000000000000000000000008E -S31560003CD0000000000000000000000000000000007E -S31560003CE0000000000000000000000000000000006E -S31560003CF0000000000000000000000000000000005E -S31560003D00000000000000000000000000000000004D -S31560003D10000000000000000000000000000000003D -S31560003D20000000000000000000000000000000002D -S31560003D30000000000000000000000000000000001D -S31560003D40000000000000000000000000000000000D -S31560003D5000000000000000000000000000000000FD -S31560003D6000000000000000000000000000000000ED -S31560003D7000000000000000000000000000000000DD -S31560003D8000000000000000000000000000000000CD -S31560003D9000000000000000000000000000000000BD -S31560003DA000000000000000000000000000000000AD -S31560003DB0000000000000000000000000000000009D -S31560003DC0000000000000000000000000000000008D -S31560003DD0000000000000000000000000000000007D -S31560003DE0000000000000000000000000000000006D -S31560003DF0000000000000000000000000000000005D -S31560003E00000000000000000000000000000000004C -S31560003E10000000000000000000000000000000003C -S31560003E20000000000000000000000000000000002C -S31560003E30000000000000000000000000000000001C -S31560003E40000000000000000000000000000000000C -S31560003E5000000000000000000000000000000000FC -S31560003E6000000000000000000000000000000000EC -S31560003E7000000000000000000000000000000000DC -S31560003E8000000000000000000000000000000000CC -S31560003E9000000000000000000000000000000000BC -S31560003EA000000000000000000000000000000000AC -S31560003EB0000000000000000000000000000000009C -S31560003EC0000000000000000000000000000000008C -S31560003ED0000000000000000000000000000000007C -S31560003EE0000000000000000000000000000000006C -S31560003EF0000000000000000000000000000000005C -S31560003F00000000000000000000000000000000004B -S31560003F10000000000000000000000000000000003B -S31560003F20000000000000000000000000000000002B -S31560003F30000000000000000000000000000000001B -S31560003F40000000000000000000000000000000000B -S31560003F5000000000000000000000000000000000FB -S31560003F6000000000000000000000000000000000EB -S31560003F7000000000000000000000000000000000DB -S31560003F8000000000000000000000000000000000CB -S31560003F9000000000000000000000000000000000BB -S31560003FA000000000000000000000000000000000AB -S31560003FB0000000000000000000000000000000009B -S31560003FC0000000000000000000000000000000008B -S31560003FD0000000000000000000000000000000007B -S31560003FE0000000000000000000000000000000006B -S31560003FF0000000000000000000000000000000005B -S31560004000000000000000000000000000000000004A -S31560004010000000000000000000000000000000003A -S31560004020000000000000000000000000000000002A -S31560004030000000000000000000000000000000001A -S31560004040000000000000000000000000000000000A -S3156000405000000000000000000000000000000000FA -S3156000406000000000000000000000000000000000EA -S3156000407000000000000000000000000000000000DA -S3156000408000000000000000000000000000000000CA -S3156000409000000000000000000000000000000000BA -S315600040A000000000000000000000000000000000AA -S315600040B0000000000000000000000000000000009A -S315600040C0000000000000000000000000000000008A -S315600040D0000000000000000000000000000000007A -S315600040E0000000000000000000000000000000006A -S315600040F0000000000000000000000000000000005A -S315600041000000000000000000000000000000000049 -S315600041100000000000000000000000000000000039 -S315600041200000000000000000000000000000000029 -S315600041300000000000000000000000000000000019 -S315600041400000000000000000000000000000000009 -S3156000415000000000000000000000000000000000F9 -S3156000416000000000000000000000000000000000E9 -S3156000417000000000000000000000000000000000D9 -S3156000418000000000000000000000000000000000C9 -S3156000419000000000000000000000000000000000B9 -S315600041A000000000000000000000000000000000A9 -S315600041B00000000000000000000000000000000099 -S315600041C00000000000000000000000000000000089 -S315600041D00000000000000000000000000000000079 -S315600041E00000000000000000000000000000000069 -S315600041F00000000000000000000000000000000059 -S315600042000000000000000000000000000000000048 -S315600042100000000000000000000000000000000038 -S315600042200000000000000000000000000000000028 -S315600042300000000000000000000000000000000018 -S315600042400000000000000000000000000000000008 -S3156000425000000000000000000000000000000000F8 -S3156000426000000000000000000000000000000000E8 -S3156000427000000000000000000000000000000000D8 -S3156000428000000000000000000000000000000000C8 -S3156000429000000000000000000000000000000000B8 -S315600042A000000000000000000000000000000000A8 -S315600042B00000000000000000000000000000000098 -S315600042C00000000000000000000000000000000088 -S315600042D00000000000000000000000000000000078 -S315600042E00000000000000000000000000000000068 -S315600042F00000000000000000000000000000000058 -S315600043000000000000000000000000000000000047 -S315600043100000000000000000000000000000000037 -S315600043200000000000000000000000000000000027 -S315600043300000000000000000000000000000000017 -S315600043400000000000000000000000000000000007 -S3156000435000000000000000000000000000000000F7 -S3156000436000000000000000000000000000000000E7 -S3156000437000000000000000000000000000000000D7 -S3156000438000000000000000000000000000000000C7 -S3156000439000000000000000000000000000000000B7 -S315600043A000000000000000000000000000000000A7 -S315600043B00000000000000000000000000000000097 -S315600043C00000000000000000000000000000000087 -S315600043D00000000000000000000000000000000077 -S315600043E00000000000000000000000000000000067 -S315600043F00000000000000000000000000000000057 -S315600044000000000000000000000000000000000046 -S315600044100000000000000000000000000000000036 -S315600044200000000000000000000000000000000026 -S315600044300000000000000000000000000000000016 -S315600044400000000000000000000000000000000006 -S3156000445000000000000000000000000000000000F6 -S3156000446000000000000000000000000000000000E6 -S3156000447000000000000000000000000000000000D6 -S3156000448000000000000000000000000000000000C6 -S3156000449000000000000000000000000000000000B6 -S315600044A000000000000000000000000000000000A6 -S315600044B00000000000000000000000000000000096 -S315600044C00000000000000000000000000000000086 -S315600044D00000000000000000000000000000000076 -S315600044E00000000000000000000000000000000066 -S315600044F00000000000000000000000000000000056 -S315600045000000000000000000000000000000000045 -S315600045100000000000000000000000000000000035 -S315600045200000000000000000000000000000000025 -S315600045300000000000000000000000000000000015 -S315600045400000000000000000000000000000000005 -S3156000455000000000000000000000000000000000F5 -S3156000456000000000000000000000000000000000E5 -S3156000457000000000000000000000000000000000D5 -S3156000458000000000000000000000000000000000C5 -S3156000459000000000000000000000000000000000B5 -S315600045A000000000000000000000000000000000A5 -S315600045B00000000000000000000000000000000095 -S315600045C00000000000000000000000000000000085 -S315600045D00000000000000000000000000000000075 -S315600045E00000000000000000000000000000000065 -S315600045F00000000000000000000000000000000055 -S315600046000000000000000000000000000000000044 -S315600046100000000000000000000000000000000034 -S315600046200000000000000000000000000000000024 -S315600046300000000000000000000000000000000014 -S315600046400000000000000000000000000000000004 -S3156000465000000000000000000000000000000000F4 -S3156000466000000000000000000000000000000000E4 -S3156000467000000000000000000000000000000000D4 -S3156000468000000000000000000000000000000000C4 -S3156000469000000000000000000000000000000000B4 -S315600046A000000000000000000000000000000000A4 -S315600046B00000000000000000000000000000000094 -S315600046C00000000000000000000000000000000084 -S315600046D00000000000000000000000000000000074 -S315600046E00000000000000000000000000000000064 -S315600046F00000000000000000000000000000000054 -S315600047000000000000000000000000000000000043 -S315600047100000000000000000000000000000000033 -S315600047200000000000000000000000000000000023 -S315600047300000000000000000000000000000000013 -S315600047400000000000000000000000000000000003 -S3156000475000000000000000000000000000000000F3 -S3156000476000000000000000000000000000000000E3 -S3156000477000000000000000000000000000000000D3 -S3156000478000000000000000000000000000000000C3 -S3156000479000000000000000000000000000000000B3 -S315600047A000000000000000000000000000000000A3 -S315600047B00000000000000000000000000000000093 -S315600047C00000000000000000000000000000000083 -S315600047D00000000000000000000000000000000073 -S315600047E00000000000000000000000000000000063 -S315600047F00000000000000000000000000000000053 -S315600048000000000000000000000000000000000042 -S315600048100000000000000000000000000000000032 -S315600048200000000000000000000000000000000022 -S315600048300000000000000000000000000000000012 -S315600048400000000000000000000000000000000002 -S3156000485000000000000000000000000000000000F2 -S3156000486000000000000000000000000000000000E2 -S3156000487000000000000000000000000000000000D2 -S3156000488000000000000000000000000000000000C2 -S3156000489000000000000000000000000000000000B2 -S315600048A000000000000000000000000000000000A2 -S315600048B00000000000000000000000000000000092 -S315600048C00000000000000000000000000000000082 -S315600048D00000000000000000000000000000000072 -S315600048E00000000000000000000000000000000062 -S315600048F00000000000000000000000000000000052 -S315600049000000000000000000000000000000000041 -S315600049100000000000000000000000000000000031 -S315600049200000000000000000000000000000000021 -S315600049300000000000000000000000000000000011 -S315600049400000000000000000000000000000000001 -S3156000495000000000000000000000000000000000F1 -S3156000496000000000000000000000000000000000E1 -S3156000497000000000000000000000000000000000D1 -S3156000498000000000000000000000000000000000C1 -S3156000499000000000000000000000000000000000B1 -S315600049A000000000000000000000000000000000A1 -S315600049B00000000000000000000000000000000091 -S315600049C00000000000000000000000000000000081 -S315600049D00000000000000000000000000000000071 -S315600049E00000000000000000000000000000000061 -S315600049F00000000000000000000000000000000051 -S31560004A000000000000000000000000000000000040 -S31560004A100000000000000000000000000000000030 -S31560004A200000000000000000000000000000000020 -S31560004A300000000000000000000000000000000010 -S31560004A400000000000000000000000000000000000 -S31560004A5000000000000000000000000000000000F0 -S31560004A6000000000000000000000000000000000E0 -S31560004A7000000000000000000000000000000000D0 -S31560004A8000000000000000000000000000000000C0 -S31560004A9000000000000000000000000000000000B0 -S31560004AA000000000000000000000000000000000A0 -S31560004AB00000000000000000000000000000000090 -S31560004AC00000000000000000000000000000000080 -S31560004AD00000000000000000000000000000000070 -S31560004AE00000000000000000000000000000000060 -S31560004AF00000000000000000000000000000000050 -S31560004B00000000000000000000000000000000003F -S31560004B10000000000000000000000000000000002F -S31560004B20000000000000000000000000000000001F -S31560004B30000000000000000000000000000000000F -S31560004B4000000000000000000000000000000000FF -S31560004B5000000000000000000000000000000000EF -S31560004B6000000000000000000000000000000000DF -S31560004B7000000000000000000000000000000000CF -S31560004B8000000000000000000000000000000000BF -S31560004B9000000000000000000000000000000000AF -S31560004BA0000000000000000000000000000000009F -S31560004BB0000000000000000000000000000000008F -S31560004BC0000000000000000000000000000000007F -S31560004BD0000000000000000000000000000000006F -S31560004BE0000000000000000000000000000000005F -S31560004BF0000000000000000000000000000000004F -S31560004C00000000000000000000000000000000003E -S31560004C10000000000000000000000000000000002E -S31560004C20000000000000000000000000000000001E -S31560004C30000000000000000000000000000000000E -S31560004C4000000000000000000000000000000000FE -S31560004C5000000000000000000000000000000000EE -S31560004C6000000000000000000000000000000000DE -S31560004C7000000000000000000000000000000000CE -S31560004C8000000000000000000000000000000000BE -S31560004C9000000000000000000000000000000000AE -S31560004CA0000000000000000000000000000000009E -S31560004CB0000000000000000000000000000000008E -S31560004CC0000000000000000000000000000000007E -S31560004CD0000000000000000000000000000000006E -S31560004CE0000000000000000000000000000000005E -S31560004CF0000000000000000000000000000000004E -S31560004D00000000000000000000000000000000003D -S31560004D10000000000000000000000000000000002D -S31560004D20000000000000000000000000000000001D -S31560004D30000000000000000000000000000000000D -S31560004D4000000000000000000000000000000000FD -S31560004D5000000000000000000000000000000000ED -S31560004D6000000000000000000000000000000000DD -S31560004D7000000000000000000000000000000000CD -S31560004D8000000000000000000000000000000000BD -S31560004D9000000000000000000000000000000000AD -S31560004DA0000000000000000000000000000000009D -S31560004DB0000000000000000000000000000000008D -S31560004DC0000000000000000000000000000000007D -S31560004DD0000000000000000000000000000000006D -S31560004DE0000000000000000000000000000000005D -S31560004DF0000000000000000000000000000000004D -S31560004E00000000000000000000000000000000003C -S31560004E10000000000000000000000000000000002C -S31560004E20000000000000000000000000000000001C -S31560004E30000000000000000000000000000000000C -S31560004E4000000000000000000000000000000000FC -S31560004E5000000000000000000000000000000000EC -S31560004E6000000000000000000000000000000000DC -S31560004E7000000000000000000000000000000000CC -S31560004E8000000000000000000000000000000000BC -S31560004E9000000000000000000000000000000000AC -S31560004EA0000000000000000000000000000000009C -S31560004EB0000000000000000000000000000000008C -S31560004EC0000000000000000000000000000000007C -S31560004ED0000000000000000000000000000000006C -S31560004EE0000000000000000000000000000000005C -S31560004EF0000000000000000000000000000000004C -S31560004F00000000000000000000000000000000003B -S31560004F10000000000000000000000000000000002B -S31560004F20000000000000000000000000000000001B -S31560004F30000000000000000000000000000000000B -S31560004F4000000000000000000000000000000000FB -S31560004F5000000000000000000000000000000000EB -S31560004F6000000000000000000000000000000000DB -S31560004F7000000000000000000000000000000000CB -S31560004F8000000000000000000000000000000000BB -S31560004F9000000000000000000000000000000000AB -S31560004FA0000000000000000000000000000000009B -S31560004FB0000000000000000000000000000000008B -S31560004FC0000000000000000000000000000000007B -S31560004FD0000000000000000000000000000000006B -S31560004FE0000000000000000000000000000000005B -S31560004FF0000000000000000000000000000000004B -S31560005000000000000000000000000000000000003A -S31560005010000000000000000000000000000000002A -S31560005020000000000000000000000000000000001A -S31560005030000000000000000000000000000000000A -S3156000504000000000000000000000000000000000FA -S3156000505000000000000000000000000000000000EA -S3156000506000000000000000000000000000000000DA -S3156000507000000000000000000000000000000000CA -S3156000508000000000000000000000000000000000BA -S3156000509000000000000000000000000000000000AA -S315600050A0000000000000000000000000000000009A -S315600050B0000000000000000000000000000000008A -S315600050C0000000000000000000000000000000007A -S315600050D0000000000000000000000000000000006A -S315600050E0000000000000000000000000000000005A -S315600050F0000000000000000000000000000000004A -S315600051000000000000000000000000000000000039 -S315600051100000000000000000000000000000000029 -S315600051200000000000000000000000000000000019 -S315600051300000000000000000000000000000000009 -S3156000514000000000000000000000000000000000F9 -S3156000515000000000000000000000000000000000E9 -S3156000516000000000000000000000000000000000D9 -S3156000517000000000000000000000000000000000C9 -S3156000518000000000000000000000000000000000B9 -S3156000519000000000000000000000000000000000A9 -S315600051A00000000000000000000000000000000099 -S315600051B00000000000000000000000000000000089 -S315600051C00000000000000000000000000000000079 -S315600051D00000000000000000000000000000000069 -S315600051E00000000000000000000000000000000059 -S315600051F00000000000000000000000000000000049 -S315600052000000000000000000000000000000000038 -S315600052100000000000000000000000000000000028 -S315600052200000000000000000000000000000000018 -S315600052300000000000000000000000000000000008 -S3156000524000000000000000000000000000000000F8 -S3156000525000000000000000000000000000000000E8 -S3156000526000000000000000000000000000000000D8 -S3156000527000000000000000000000000000000000C8 -S3156000528000000000000000000000000000000000B8 -S3156000529000000000000000000000000000000000A8 -S315600052A00000000000000000000000000000000098 -S315600052B00000000000000000000000000000000088 -S315600052C00000000000000000000000000000000078 -S315600052D00000000000000000000000000000000068 -S315600052E00000000000000000000000000000000058 -S315600052F00000000000000000000000000000000048 -S315600053000000000000000000000000000000000037 -S315600053100000000000000000000000000000000027 -S315600053200000000000000000000000000000000017 -S315600053300000000000000000000000000000000007 -S3156000534000000000000000000000000000000000F7 -S3156000535000000000000000000000000000000000E7 -S3156000536000000000000000000000000000000000D7 -S3156000537000000000000000000000000000000000C7 -S3156000538000000000000000000000000000000000B7 -S3156000539000000000000000000000000000000000A7 -S315600053A00000000000000000000000000000000097 -S315600053B00000000000000000000000000000000087 -S315600053C00000000000000000000000000000000077 -S315600053D00000000000000000000000000000000067 -S315600053E00000000000000000000000000000000057 -S315600053F00000000000000000000000000000000047 -S315600054000000000000000000000000000000000036 -S315600054100000000000000000000000000000000026 -S315600054200000000000000000000000000000000016 -S315600054300000000000000000000000000000000006 -S3156000544000000000000000000000000000000000F6 -S3156000545000000000000000000000000000000000E6 -S3156000546000000000000000000000000000000000D6 -S3156000547000000000000000000000000000000000C6 -S3156000548000000000000000000000000000000000B6 -S3156000549000000000000000000000000000000000A6 -S315600054A00000000000000000000000000000000096 -S315600054B00000000000000000000000000000000086 -S315600054C00000000000000000000000000000000076 -S315600054D00000000000000000000000000000000066 -S315600054E00000000000000000000000000000000056 -S315600054F00000000000000000000000000000000046 -S315600055000000000000000000000000000000000035 -S315600055100000000000000000000000000000000025 -S315600055200000000000000000000000000000000015 -S315600055300000000000000000000000000000000005 -S3156000554000000000000000000000000000000000F5 -S3156000555000000000000000000000000000000000E5 -S3156000556000000000000000000000000000000000D5 -S3156000557000000000000000000000000000000000C5 -S3156000558000000000000000000000000000000000B5 -S3156000559000000000000000000000000000000000A5 -S315600055A00000000000000000000000000000000095 -S315600055B00000000000000000000000000000000085 -S315600055C00000000000000000000000000000000075 -S315600055D00000000000000000000000000000000065 -S315600055E00000000000000000000000000000000055 -S315600055F00000000000000000000000000000000045 -S315600056000000000000000000000000000000000034 -S315600056100000000000000000000000000000000024 -S315600056200000000000000000000000000000000014 -S315600056300000000000000000000000000000000004 -S3156000564000000000000000000000000000000000F4 -S3156000565000000000000000000000000000000000E4 -S3156000566000000000000000000000000000000000D4 -S3156000567000000000000000000000000000000000C4 -S3156000568000000000000000000000000000000000B4 -S3156000569000000000000000000000000000000000A4 -S315600056A00000000000000000000000000000000094 -S315600056B00000000000000000000000000000000084 -S315600056C00000000000000000000000000000000074 -S315600056D00000000000000000000000000000000064 -S315600056E00000000000000000000000000000000054 -S315600056F00000000000000000000000000000000044 -S315600057000000000000000000000000000000000033 -S315600057100000000000000000000000000000000023 -S315600057200000000000000000000000000000000013 -S315600057300000000000000000000000000000000003 -S3156000574000000000000000000000000000000000F3 -S3156000575000000000000000000000000000000000E3 -S3156000576000000000000000000000000000000000D3 -S3156000577000000000000000000000000000000000C3 -S3156000578000000000000000000000000000000000B3 -S3156000579000000000000000000000000000000000A3 -S315600057A00000000000000000000000000000000093 -S315600057B00000000000000000000000000000000083 -S315600057C00000000000000000000000000000000073 -S315600057D00000000000000000000000000000000063 -S315600057E00000000000000000000000000000000053 -S315600057F00000000000000000000000000000000043 -S315600058000000000000000000000000000000000032 -S315600058100000000000000000000000000000000022 -S315600058200000000000000000000000000000000012 -S315600058300000000000000000000000000000000002 -S3156000584000000000000000000000000000000000F2 -S3156000585000000000000000000000000000000000E2 -S3156000586000000000000000000000000000000000D2 -S3156000587000000000000000000000000000000000C2 -S3156000588000000000000000000000000000000000B2 -S3156000589000000000000000000000000000000000A2 -S315600058A00000000000000000000000000000000092 -S315600058B00000000000000000000000000000000082 -S315600058C00000000000000000000000000000000072 -S315600058D00000000000000000000000000000000062 -S315600058E00000000000000000000000000000000052 -S315600058F00000000000000000000000000000000042 -S315600059000000000000000000000000000000000031 -S315600059100000000000000000000000000000000021 -S315600059200000000000000000000000000000000011 -S315600059300000000000000000000000000000000001 -S3156000594000000000000000000000000000000000F1 -S3156000595000000000000000000000000000000000E1 -S3156000596000000000000000000000000000000000D1 -S3156000597000000000000000000000000000000000C1 -S3156000598000000000000000000000000000000000B1 -S3156000599000000000000000000000000000000000A1 -S315600059A00000000000000000000000000000000091 -S315600059B00000000000000000000000000000000081 -S315600059C00000000000000000000000000000000071 -S315600059D00000000000000000000000000000000061 -S315600059E00000000000000000000000000000000051 -S315600059F00000000000000000000000000000000041 -S31560005A000000000000000000000000000000000030 -S31560005A100000000000000000000000000000000020 -S31560005A200000000000000000000000000000000010 -S31560005A300000000000000000000000000000000000 -S31560005A4000000000000000000000000000000000F0 -S31560005A5000000000000000000000000000000000E0 -S31560005A6000000000000000000000000000000000D0 -S31560005A7000000000000000000000000000000000C0 -S31560005A8000000000000000000000000000000000B0 -S31560005A9000000000000000000000000000000000A0 -S31560005AA00000000000000000000000000000000090 -S31560005AB00000000000000000000000000000000080 -S31560005AC00000000000000000000000000000000070 -S31560005AD00000000000000000000000000000000060 -S31560005AE00000000000000000000000000000000050 -S31560005AF00000000000000000000000000000000040 -S31560005B00000000000000000000000000000000002F -S31560005B10000000000000000000000000000000001F -S31560005B20000000000000000000000000000000000F -S31560005B3000000000000000000000000000000000FF -S31560005B4000000000000000000000000000000000EF -S31560005B5000000000000000000000000000000000DF -S31560005B6000000000000000000000000000000000CF -S31560005B7000000000000000000000000000000000BF -S31560005B8000000000000000000000000000000000AF -S31560005B90000000000000000000000000000000009F -S31560005BA0000000000000000000000000000000008F -S31560005BB0000000000000000000000000000000007F -S31560005BC0000000000000000000000000000000006F -S31560005BD0000000000000000000000000000000005F -S31560005BE0000000000000000000000000000000004F -S31560005BF0000000000000000000000000000000003F -S31560005C00000000000000000000000000000000002E -S31560005C10000000000000000000000000000000001E -S31560005C20000000000000000000000000000000000E -S31560005C3000000000000000000000000000000000FE -S31560005C4000000000000000000000000000000000EE -S31560005C5000000000000000000000000000000000DE -S31560005C6000000000000000000000000000000000CE -S31560005C7000000000000000000000000000000000BE -S31560005C8000000000000000000000000000000000AE -S31560005C90000000000000000000000000000000009E -S31560005CA0000000000000000000000000000000008E -S31560005CB0000000000000000000000000000000007E -S31560005CC0000000000000000000000000000000006E -S31560005CD0000000000000000000000000000000005E -S31560005CE0000000000000000000000000000000004E -S31560005CF0000000000000000000000000000000003E -S31560005D00000000000000000000000000000000002D -S31560005D10000000000000000000000000000000001D -S31560005D20000000000000000000000000000000000D -S31560005D3000000000000000000000000000000000FD -S31560005D4000000000000000000000000000000000ED -S31560005D5000000000000000000000000000000000DD -S31560005D6000000000000000000000000000000000CD -S31560005D7000000000000000000000000000000000BD -S31560005D8000000000000000000000000000000000AD -S31560005D90000000000000000000000000000000009D -S31560005DA0000000000000000000000000000000008D -S31560005DB0000000000000000000000000000000007D -S31560005DC0000000000000000000000000000000006D -S31560005DD0000000000000000000000000000000005D -S31560005DE0000000000000000000000000000000004D -S31560005DF0000000000000000000000000000000003D -S31560005E00000000000000000000000000000000002C -S31560005E10000000000000000000000000000000001C -S31560005E20000000000000000000000000000000000C -S31560005E3000000000000000000000000000000000FC -S31560005E4000000000000000000000000000000000EC -S31560005E5000000000000000000000000000000000DC -S31560005E6000000000000000000000000000000000CC -S31560005E7000000000000000000000000000000000BC -S31560005E8000000000000000000000000000000000AC -S31560005E90000000000000000000000000000000009C -S31560005EA0000000000000000000000000000000008C -S31560005EB0000000000000000000000000000000007C -S31560005EC0000000000000000000000000000000006C -S31560005ED0000000000000000000000000000000005C -S31560005EE0000000000000000000000000000000004C -S31560005EF0000000000000000000000000000000003C -S31560005F00000000000000000000000000000000002B -S31560005F10000000000000000000000000000000001B -S31560005F20000000000000000000000000000000000B -S31560005F3000000000000000000000000000000000FB -S31560005F4000000000000000000000000000000000EB -S31560005F5000000000000000000000000000000000DB -S31560005F6000000000000000000000000000000000CB -S31560005F7000000000000000000000000000000000BB -S31560005F8000000000000000000000000000000000AB -S31560005F90000000000000000000000000000000009B -S31560005FA0000000000000000000000000000000008B -S31560005FB0000000000000000000000000000000007B -S31560005FC0000000000000000000000000000000006B -S31560005FD0000000000000000000000000000000005B -S31560005FE0000000000000000000000000000000004B -S31560005FF0000000000000000000000000000000003B -S31560006000000000000000000000000000000000002A -S31560006010000000000000000000000000000000001A -S31560006020000000000000000000000000000000000A -S3156000603000000000000000000000000000000000FA -S3156000604000000000000000000000000000000000EA -S3156000605000000000000000000000000000000000DA -S3156000606000000000000000000000000000000000CA -S3156000607000000000000000000000000000000000BA -S3156000608000000000000000000000000000000000AA -S31560006090000000000000000000000000000000009A -S315600060A0000000000000000000000000000000008A -S315600060B0000000000000000000000000000000007A -S315600060C0000000000000000000000000000000006A -S315600060D0000000000000000000000000000000005A -S315600060E0000000000000000000000000000000004A -S315600060F0000000000000000000000000000000003A -S315600061000000000000000000000000000000000029 -S315600061100000000000000000000000000000000019 -S315600061200000000000000000000000000000000009 -S3156000613000000000000000000000000000000000F9 -S3156000614000000000000000000000000000000000E9 -S3156000615000000000000000000000000000000000D9 -S3156000616000000000000000000000000000000000C9 -S3156000617000000000000000000000000000000000B9 -S3156000618000000000000000000000000000000000A9 -S315600061900000000000000000000000000000000099 -S315600061A00000000000000000000000000000000089 -S315600061B00000000000000000000000000000000079 -S315600061C00000000000000000000000000000000069 -S315600061D00000000000000000000000000000000059 -S315600061E00000000000000000000000000000000049 -S315600061F00000000000000000000000000000000039 -S315600062000000000000000000000000000000000028 -S315600062100000000000000000000000000000000018 -S315600062200000000000000000000000000000000008 -S3156000623000000000000000000000000000000000F8 -S3156000624000000000000000000000000000000000E8 -S3156000625000000000000000000000000000000000D8 -S3156000626000000000000000000000000000000000C8 -S3156000627000000000000000000000000000000000B8 -S3156000628000000000000000000000000000000000A8 -S315600062900000000000000000000000000000000098 -S315600062A00000000000000000000000000000000088 -S315600062B00000000000000000000000000000000078 -S315600062C00000000000000000000000000000000068 -S315600062D00000000000000000000000000000000058 -S315600062E00000000000000000000000000000000048 -S315600062F00000000000000000000000000000000038 -S315600063000000000000000000000000000000000027 -S315600063100000000000000000000000000000000017 -S315600063200000000000000000000000000000000007 -S3156000633000000000000000000000000000000000F7 -S3156000634000000000000000000000000000000000E7 -S3156000635000000000000000000000000000000000D7 -S3156000636000000000000000000000000000000000C7 -S3156000637000000000000000000000000000000000B7 -S3156000638000000000000000000000000000000000A7 -S315600063900000000000000000000000000000000097 -S315600063A00000000000000000000000000000000087 -S315600063B00000000000000000000000000000000077 -S315600063C00000000000000000000000000000000067 -S315600063D00000000000000000000000000000000057 -S315600063E00000000000000000000000000000000047 -S315600063F00000000000000000000000000000000037 -S315600064000000000000000000000000000000000026 -S315600064100000000000000000000000000000000016 -S315600064200000000000000000000000000000000006 -S3156000643000000000000000000000000000000000F6 -S3156000644000000000000000000000000000000000E6 -S3156000645000000000000000000000000000000000D6 -S3156000646000000000000000000000000000000000C6 -S3156000647000000000000000000000000000000000B6 -S3156000648000000000000000000000000000000000A6 -S315600064900000000000000000000000000000000096 -S315600064A00000000000000000000000000000000086 -S315600064B00000000000000000000000000000000076 -S315600064C00000000000000000000000000000000066 -S315600064D00000000000000000000000000000000056 -S315600064E00000000000000000000000000000000046 -S315600064F00000000000000000000000000000000036 -S315600065000000000000000000000000000000000025 -S315600065100000000000000000000000000000000015 -S315600065200000000000000000000000000000000005 -S3156000653000000000000000000000000000000000F5 -S3156000654000000000000000000000000000000000E5 -S3156000655000000000000000000000000000000000D5 -S3156000656000000000000000000000000000000000C5 -S3156000657000000000000000000000000000000000B5 -S3156000658000000000000000000000000000000000A5 -S315600065900000000000000000000000000000000095 -S315600065A00000000000000000000000000000000085 -S315600065B00000000000000000000000000000000075 -S315600065C00000000000000000000000000000000065 -S315600065D00000000000000000000000000000000055 -S315600065E00000000000000000000000000000000045 -S315600065F00000000000000000000000000000000035 -S315600066000000000000000000000000000000000024 -S315600066100000000000000000000000000000000014 -S315600066200000000000000000000000000000000004 -S3156000663000000000000000000000000000000000F4 -S3156000664000000000000000000000000000000000E4 -S3156000665000000000000000000000000000000000D4 -S3156000666000000000000000000000000000000000C4 -S3156000667000000000000000000000000000000000B4 -S3156000668000000000000000000000000000000000A4 -S315600066900000000000000000000000000000000094 -S315600066A00000000000000000000000000000000084 -S315600066B00000000000000000000000000000000074 -S315600066C00000000000000000000000000000000064 -S315600066D00000000000000000000000000000000054 -S315600066E00000000000000000000000000000000044 -S315600066F00000000000000000000000000000000034 -S315600067000000000000000000000000000000000023 -S315600067100000000000000000000000000000000013 -S315600067200000000000000000000000000000000003 -S3156000673000000000000000000000000000000000F3 -S3156000674000000000000000000000000000000000E3 -S3156000675000000000000000000000000000000000D3 -S3156000676000000000000000000000000000000000C3 -S3156000677000000000000000000000000000000000B3 -S3156000678000000000000000000000000000000000A3 -S315600067900000000000000000000000000000000093 -S315600067A00000000000000000000000000000000083 -S315600067B00000000000000000000000000000000073 -S315600067C00000000000000000000000000000000063 -S315600067D00000000000000000000000000000000053 -S315600067E00000000000000000000000000000000043 -S315600067F00000000000000000000000000000000033 -S315600068000000000000000000000000000000000022 -S315600068100000000000000000000000000000000012 -S315600068200000000000000000000000000000000002 -S3156000683000000000000000000000000000000000F2 -S3156000684000000000000000000000000000000000E2 -S3156000685000000000000000000000000000000000D2 -S3156000686000000000000000000000000000000000C2 -S3156000687000000000000000000000000000000000B2 -S3156000688000000000000000000000000000000000A2 -S315600068900000000000000000000000000000000092 -S315600068A00000000000000000000000000000000082 -S315600068B00000000000000000000000000000000072 -S315600068C00000000000000000000000000000000062 -S315600068D00000000000000000000000000000000052 -S315600068E00000000000000000000000000000000042 -S315600068F00000000000000000000000000000000032 -S315600069000000000000000000000000000000000021 -S315600069100000000000000000000000000000000011 -S315600069200000000000000000000000000000000001 -S3156000693000000000000000000000000000000000F1 -S3156000694000000000000000000000000000000000E1 -S3156000695000000000000000000000000000000000D1 -S3156000696000000000000000000000000000000000C1 -S3156000697000000000000000000000000000000000B1 -S3156000698000000000000000000000000000000000A1 -S315600069900000000000000000000000000000000091 -S315600069A00000000000000000000000000000000081 -S315600069B00000000000000000000000000000000071 -S315600069C00000000000000000000000000000000061 -S315600069D00000000000000000000000000000000051 -S315600069E00000000000000000000000000000000041 -S315600069F00000000000000000000000000000000031 -S31560006A000000000000000000000000000000000020 -S31560006A100000000000000000000000000000000010 -S31560006A200000000000000000000000000000000000 -S31560006A3000000000000000000000000000000000F0 -S31560006A4000000000000000000000000000000000E0 -S31560006A5000000000000000000000000000000000D0 -S31560006A6000000000000000000000000000000000C0 -S31560006A7000000000000000000000000000000000B0 -S31560006A8000000000000000000000000000000000A0 -S31560006A900000000000000000000000000000000090 -S31560006AA00000000000000000000000000000000080 -S31560006AB00000000000000000000000000000000070 -S31560006AC00000000000000000000000000000000060 -S31560006AD00000000000000000000000000000000050 -S31560006AE00000000000000000000000000000000040 -S31560006AF00000000000000000000000000000000030 -S31560006B00000000000000000000000000000000001F -S31560006B10000000000000000000000000000000000F -S31560006B2000000000000000000000000000000000FF -S31560006B3000000000000000000000000000000000EF -S31560006B4000000000000000000000000000000000DF -S31560006B5000000000000000000000000000000000CF -S31560006B6000000000000000000000000000000000BF -S31560006B7000000000000000000000000000000000AF -S31560006B80000000000000000000000000000000009F -S31560006B90000000000000000000000000000000008F -S31560006BA0000000000000000000000000000000007F -S31560006BB0000000000000000000000000000000006F -S31560006BC0000000000000000000000000000000005F -S31560006BD0000000000000000000000000000000004F -S31560006BE0000000000000000000000000000000003F -S31560006BF0000000000000000000000000000000002F -S31560006C00000000000000000000000000000000001E -S31560006C10000000000000000000000000000000000E -S31560006C2000000000000000000000000000000000FE -S31560006C3000000000000000000000000000000000EE -S31560006C4000000000000000000000000000000000DE -S31560006C5000000000000000000000000000000000CE -S31560006C6000000000000000000000000000000000BE -S31560006C7000000000000000000000000000000000AE -S31560006C80000000000000000000000000000000009E -S31560006C90000000000000000000000000000000008E -S31560006CA0000000000000000000000000000000007E -S31560006CB0000000000000000000000000000000006E -S31560006CC0000000000000000000000000000000005E -S31560006CD0000000000000000000000000000000004E -S31560006CE0000000000000000000000000000000003E -S31560006CF0000000000000000000000000000000002E -S31560006D00000000000000000000000000000000001D -S31560006D10000000000000000000000000000000000D -S31560006D2000000000000000000000000000000000FD -S31560006D3000000000000000000000000000000000ED -S31560006D4000000000000000000000000000000000DD -S31560006D5000000000000000000000000000000000CD -S31560006D6000000000000000000000000000000000BD -S31560006D7000000000000000000000000000000000AD -S31560006D80000000000000000000000000000000009D -S31560006D90000000000000000000000000000000008D -S31560006DA0000000000000000000000000000000007D -S31560006DB0000000000000000000000000000000006D -S31560006DC0000000000000000000000000000000005D -S31560006DD0000000000000000000000000000000004D -S31560006DE0000000000000000000000000000000003D -S31560006DF0000000000000000000000000000000002D -S31560006E00000000000000000000000000000000001C -S31560006E10000000000000000000000000000000000C -S31560006E2000000000000000000000000000000000FC -S31560006E3000000000000000000000000000000000EC -S31560006E4000000000000000000000000000000000DC -S31560006E5000000000000000000000000000000000CC -S31560006E6000000000000000000000000000000000BC -S31560006E7000000000000000000000000000000000AC -S31560006E80000000000000000000000000000000009C -S31560006E90000000000000000000000000000000008C -S31560006EA0000000000000000000000000000000007C -S31560006EB0000000000000000000000000000000006C -S31560006EC0000000000000000000000000000000005C -S31560006ED0000000000000000000000000000000004C -S31560006EE0000000000000000000000000000000003C -S31560006EF0000000000000000000000000000000002C -S31560006F00000000000000000000000000000000001B -S31560006F10000000000000000000000000000000000B -S31560006F2000000000000000000000000000000000FB -S31560006F3000000000000000000000000000000000EB -S31560006F4000000000000000000000000000000000DB -S31560006F5000000000000000000000000000000000CB -S31560006F6000000000000000000000000000000000BB -S31560006F7000000000000000000000000000000000AB -S31560006F80000000000000000000000000000000009B -S31560006F90000000000000000000000000000000008B -S31560006FA0000000000000000000000000000000007B -S31560006FB0000000000000000000000000000000006B -S31560006FC0000000000000000000000000000000005B -S31560006FD0000000000000000000000000000000004B -S31560006FE0000000000000000000000000000000003B -S31560006FF0000000000000000000000000000000002B -S31560007000000000000000000000000000000000001A -S31560007010000000000000000000000000000000000A -S3156000702000000000000000000000000000000000FA -S3156000703000000000000000000000000000000000EA -S3156000704000000000000000000000000000000000DA -S3156000705000000000000000000000000000000000CA -S3156000706000000000000000000000000000000000BA -S3156000707000000000000000000000000000000000AA -S31560007080000000000000000000000000000000009A -S31560007090000000000000000000000000000000008A -S315600070A0000000000000000000000000000000007A -S315600070B0000000000000000000000000000000006A -S315600070C0000000000000000000000000000000005A -S315600070D0000000000000000000000000000000004A -S315600070E0000000000000000000000000000000003A -S315600070F0000000000000000000000000000000002A -S315600071000000000000000000000000000000000019 -S315600071100000000000000000000000000000000009 -S3156000712000000000000000000000000000000000F9 -S3156000713000000000000000000000000000000000E9 -S3156000714000000000000000000000000000000000D9 -S3156000715000000000000000000000000000000000C9 -S3156000716000000000000000000000000000000000B9 -S3156000717000000000000000000000000000000000A9 -S315600071800000000000000000000000000000000099 -S315600071900000000000000000000000000000000089 -S315600071A00000000000000000000000000000000079 -S315600071B00000000000000000000000000000000069 -S315600071C00000000000000000000000000000000059 -S315600071D00000000000000000000000000000000049 -S315600071E00000000000000000000000000000000039 -S315600071F00000000000000000000000000000000029 -S315600072000000000000000000000000000000000018 -S315600072100000000000000000000000000000000008 -S3156000722000000000000000000000000000000000F8 -S3156000723000000000000000000000000000000000E8 -S3156000724000000000000000000000000000000000D8 -S3156000725000000000000000000000000000000000C8 -S3156000726000000000000000000000000000000000B8 -S3156000727000000000000000000000000000000000A8 -S315600072800000000000000000000000000000000098 -S315600072900000000000000000000000000000000088 -S315600072A00000000000000000000000000000000078 -S315600072B00000000000000000000000000000000068 -S315600072C00000000000000000000000000000000058 -S315600072D00000000000000000000000000000000048 -S315600072E00000000000000000000000000000000038 -S315600072F00000000000000000000000000000000028 -S315600073000000000000000000000000000000000017 -S315600073100000000000000000000000000000000007 -S3156000732000000000000000000000000000000000F7 -S3156000733000000000000000000000000000000000E7 -S3156000734000000000000000000000000000000000D7 -S3156000735000000000000000000000000000000000C7 -S3156000736000000000000000000000000000000000B7 -S3156000737000000000000000000000000000000000A7 -S315600073800000000000000000000000000000000097 -S315600073900000000000000000000000000000000087 -S315600073A00000000000000000000000000000000077 -S315600073B00000000000000000000000000000000067 -S315600073C00000000000000000000000000000000057 -S315600073D00000000000000000000000000000000047 -S315600073E00000000000000000000000000000000037 -S315600073F00000000000000000000000000000000027 -S315600074000000000000000000000000000000000016 -S315600074100000000000000000000000000000000006 -S3156000742000000000000000000000000000000000F6 -S3156000743000000000000000000000000000000000E6 -S3156000744000000000000000000000000000000000D6 -S3156000745000000000000000000000000000000000C6 -S3156000746000000000000000000000000000000000B6 -S3156000747000000000000000000000000000000000A6 -S315600074800000000000000000000000000000000096 -S315600074900000000000000000000000000000000086 -S315600074A00000000000000000000000000000000076 -S315600074B00000000000000000000000000000000066 -S315600074C00000000000000000000000000000000056 -S315600074D00000000000000000000000000000000046 -S315600074E00000000000000000000000000000000036 -S315600074F00000000000000000000000000000000026 -S315600075000000000000000000000000000000000015 -S315600075100000000000000000000000000000000005 -S3156000752000000000000000000000000000000000F5 -S3156000753000000000000000000000000000000000E5 -S3156000754000000000000000000000000000000000D5 -S3156000755000000000000000000000000000000000C5 -S3156000756000000000000000000000000000000000B5 -S3156000757000000000000000000000000000000000A5 -S315600075800000000000000000000000000000000095 -S315600075900000000000000000000000000000000085 -S315600075A00000000000000000000000000000000075 -S315600075B00000000000000000000000000000000065 -S315600075C00000000000000000000000000000000055 -S315600075D00000000000000000000000000000000045 -S315600075E00000000000000000000000000000000035 -S315600075F00000000000000000000000000000000025 -S315600076000000000000000000000000000000000014 -S315600076100000000000000000000000000000000004 -S3156000762000000000000000000000000000000000F4 -S3156000763000000000000000000000000000000000E4 -S3156000764000000000000000000000000000000000D4 -S3156000765000000000000000000000000000000000C4 -S3156000766000000000000000000000000000000000B4 -S3156000767000000000000000000000000000000000A4 -S315600076800000000000000000000000000000000094 -S315600076900000000000000000000000000000000084 -S315600076A00000000000000000000000000000000074 -S315600076B00000000000000000000000000000000064 -S315600076C00000000000000000000000000000000054 -S315600076D00000000000000000000000000000000044 -S315600076E00000000000000000000000000000000034 -S315600076F00000000000000000000000000000000024 -S315600077000000000000000000000000000000000013 -S315600077100000000000000000000000000000000003 -S3156000772000000000000000000000000000000000F3 -S3156000773000000000000000000000000000000000E3 -S3156000774000000000000000000000000000000000D3 -S3156000775000000000000000000000000000000000C3 -S3156000776000000000000000000000000000000000B3 -S3156000777000000000000000000000000000000000A3 -S315600077800000000000000000000000000000000093 -S315600077900000000000000000000000000000000083 -S315600077A00000000000000000000000000000000073 -S315600077B00000000000000000000000000000000063 -S315600077C00000000000000000000000000000000053 -S315600077D00000000000000000000000000000000043 -S315600077E00000000000000000000000000000000033 -S315600077F00000000000000000000000000000000023 -S315600078000000000000000000000000000000000012 -S315600078100000000000000000000000000000000002 -S3156000782000000000000000000000000000000000F2 -S3156000783000000000000000000000000000000000E2 -S3156000784000000000000000000000000000000000D2 -S3156000785000000000000000000000000000000000C2 -S3156000786000000000000000000000000000000000B2 -S3156000787000000000000000000000000000000000A2 -S315600078800000000000000000000000000000000092 -S315600078900000000000000000000000000000000082 -S315600078A00000000000000000000000000000000072 -S315600078B00000000000000000000000000000000062 -S315600078C00000000000000000000000000000000052 -S315600078D00000000000000000000000000000000042 -S315600078E00000000000000000000000000000000032 -S315600078F00000000000000000000000000000000022 -S315600079000000000000000000000000000000000011 -S315600079100000000000000000000000000000000001 -S3156000792000000000000000000000000000000000F1 -S3156000793000000000000000000000000000000000E1 -S3156000794000000000000000000000000000000000D1 -S3156000795000000000000000000000000000000000C1 -S3156000796000000000000000000000000000000000B1 -S3156000797000000000000000000000000000000000A1 -S315600079800000000000000000000000000000000091 -S315600079900000000000000000000000000000000081 -S315600079A00000000000000000000000000000000071 -S315600079B00000000000000000000000000000000061 -S315600079C00000000000000000000000000000000051 -S315600079D00000000000000000000000000000000041 -S315600079E00000000000000000000000000000000031 -S315600079F00000000000000000000000000000000021 -S31560007A000000000000000000000000000000000010 -S31560007A100000000000000000000000000000000000 -S31560007A2000000000000000000000000000000000F0 -S31560007A3000000000000000000000000000000000E0 -S31560007A4000000000000000000000000000000000D0 -S31560007A5000000000000000000000000000000000C0 -S31560007A6000000000000000000000000000000000B0 -S31560007A7000000000000000000000000000000000A0 -S31560007A800000000000000000000000000000000090 -S31560007A900000000000000000000000000000000080 -S31560007AA00000000000000000000000000000000070 -S31560007AB00000000000000000000000000000000060 -S31560007AC00000000000000000000000000000000050 -S31560007AD00000000000000000000000000000000040 -S31560007AE00000000000000000000000000000000030 -S31560007AF00000000000000000000000000000000020 -S31560007B00000000000000000000000000000000000F -S31560007B1000000000000000000000000000000000FF -S31560007B2000000000000000000000000000000000EF -S31560007B3000000000000000000000000000000000DF -S31560007B4000000000000000000000000000000000CF -S31560007B5000000000000000000000000000000000BF -S31560007B6000000000000000000000000000000000AF -S31560007B70000000000000000000000000000000009F -S31560007B80000000000000000000000000000000008F -S31560007B90000000000000000000000000000000007F -S31560007BA0000000000000000000000000000000006F -S31560007BB0000000000000000000000000000000005F -S31560007BC0000000000000000000000000000000004F -S31560007BD0000000000000000000000000000000003F -S31560007BE0000000000000000000000000000000002F -S31560007BF0000000000000000000000000000000001F -S31560007C00000000000000000000000000000000000E -S31560007C1000000000000000000000000000000000FE -S31560007C2000000000000000000000000000000000EE -S31560007C3000000000000000000000000000000000DE -S31560007C4000000000000000000000000000000000CE -S31560007C5000000000000000000000000000000000BE -S31560007C6000000000000000000000000000000000AE -S31560007C70000000000000000000000000000000009E -S31560007C80000000000000000000000000000000008E -S31560007C90000000000000000000000000000000007E -S31560007CA0000000000000000000000000000000006E -S31560007CB0000000000000000000000000000000005E -S31560007CC0000000000000000000000000000000004E -S31560007CD0000000000000000000000000000000003E -S31560007CE0000000000000000000000000000000002E -S31560007CF0000000000000000000000000000000001E -S31560007D00000000000000000000000000000000000D -S31560007D1000000000000000000000000000000000FD -S31560007D2000000000000000000000000000000000ED -S31560007D3000000000000000000000000000000000DD -S31560007D4000000000000000000000000000000000CD -S31560007D5000000000000000000000000000000000BD -S31560007D6000000000000000000000000000000000AD -S31560007D70000000000000000000000000000000009D -S31560007D80000000000000000000000000000000008D -S31560007D90000000000000000000000000000000007D -S31560007DA0000000000000000000000000000000006D -S31560007DB0000000000000000000000000000000005D -S31560007DC0000000000000000000000000000000004D -S31560007DD0000000000000000000000000000000003D -S31560007DE0000000000000000000000000000000002D -S31560007DF0000000000000000000000000000000001D -S31560007E00000000000000000000000000000000000C -S31560007E1000000000000000000000000000000000FC -S31560007E2000000000000000000000000000000000EC -S31560007E3000000000000000000000000000000000DC -S31560007E4000000000000000000000000000000000CC -S31560007E5000000000000000000000000000000000BC -S31560007E6000000000000000000000000000000000AC -S31560007E70000000000000000000000000000000009C -S31560007E80000000000000000000000000000000008C -S31560007E90000000000000000000000000000000007C -S31560007EA0000000000000000000000000000000006C -S31560007EB0000000000000000000000000000000005C -S31560007EC0000000000000000000000000000000004C -S31560007ED0000000000000000000000000000000003C -S31560007EE0000000000000000000000000000000002C -S31560007EF0000000000000000000000000000000001C -S31560007F00000000000000000000000000000000000B -S31560007F1000000000000000000000000000000000FB -S31560007F2000000000000000000000000000000000EB -S31560007F3000000000000000000000000000000000DB -S31560007F4000000000000000000000000000000000CB -S31560007F5000000000000000000000000000000000BB -S31560007F6000000000000000000000000000000000AB -S31560007F70000000000000000000000000000000009B -S31560007F80000000000000000000000000000000008B -S31560007F90000000000000000000000000000000007B -S31560007FA0000000000000000000000000000000006B -S31560007FB0000000000000000000000000000000005B -S31560007FC0000000000000000000000000000000004B -S31560007FD0000000000000000000000000000000003B -S31560007FE0000000000000000000000000000000002B -S31560007FF0000000000000000000000000000000001B -S315600080009DE3BF9081C7E00881E80000030000108F -S31560008010C48000408088800112BFFFFE010000001E -S315600080209DE3BF909DE3BF909DE3BF909DE3BF90AE -S315600080309DE3BF909DE3BF9021044444A0142111A9 -S3156000804023088888A2146222250CCCCCA414A333FE -S3156000805027111111A614E04429155555A815215567 -S315600080602B199999AA1562662D1DDDDDAC15A377CE -S315600080702F222222AE15E08801100000E03FBFE00B -S31560008080E43FBFE8E83FBFF0EC3FBFF88210001E58 -S315600080908220601CC0A041E082206008C0A041E050 -S315600080A082206008C0A041E082206008C0A041E054 -S315600080B0C0A002209DE3BF909DE3BF9081E80000D1 -S315600080C081E800000100000001000000E01FBFE041 -S315600080D0E41FBFE8E81FBFF0EC1FBFF80100000017 -S315600080E00100000081E8000081E8000081E80000EE -S315600080F081E8000081E8000081C7E00881E80000AF -S31560008100A7500000AA102400A8102300EC85432085 -S31560008110EA8503202F180020AE15E150EE05C00059 -S31560008120E805C000EA05E004EC05E008AC15A0002F -S31560008130C0A58300EA250000AE05E00C2B180020E0 -S31560008140AA156150EE25400081C4400081CC8000B4 -S3156000815000000000010000000000000000000000B8 -S3156000816000000000000000000000000000000000A9 -S315600081700000000000000000000000000000000099 -S315600081800000000000000000000000000000000089 -S315600081900000000001000000010000000100000076 -S315600081A00100000001000000010000000100000065 -S315600081B00100000001000000010000000100000055 -S315600081C00100000001000000010000000100000045 -S315600081D00100000001000000010000000100000035 -S315600081E00100000001000000010000000100000025 -S315600081F00100000001000000010000000100000015 -S315600082000100000001000000010000000100000004 -S3156000821001000000010000000100000001000000F4 -S3156000822001000000010000000100000001000000E4 -S3156000823001000000010000000100000001000000D4 -S3156000824001000000010000000100000001000000C4 -S3156000825001000000010000000100000001000000B4 -S3156000826001000000010000000100000001000000A4 -S315600082700100000001000000010000000100000094 -S315600082800100000001000000010000000100000084 -S315600082900100000001000000010000000100000074 -S315600082A00100000001000000010000000100000064 -S315600082B00100000001000000010000000100000054 -S315600082C00100000001000000010000000100000044 -S315600082D00100000001000000010000000100000034 -S315600082E00100000001000000010000000100000024 -S315600082F00100000001000000010000000100000014 -S315600083000100000001000000010000000100000003 -S3156000831001000000010000000100000001000000F3 -S3156000832001000000010000000100000001000000E3 -S3156000833001000000010000000100000001000000D3 -S3156000834001000000010000000100000001000000C3 -S3156000835001000000010000000100000001000000B3 -S3156000836001000000010000000100000001000000A3 -S315600083700100000001000000010000000100000093 -S315600083800100000001000000010000000100000083 -S315600083900100000001000000010000000100000073 -S315600083A00100000001000000010000000100000063 -S315600083B00100000001000000010000000100000053 -S315600083C00100000001000000010000000100000043 -S315600083D00100000001000000010000000100000033 -S315600083E00100000001000000010000000100000023 -S315600083F00100000001000000010000000100000013 -S315600084000100000001000000010000000100000002 -S3156000841001000000010000000100000001000000F2 -S3156000842001000000010000000100000001000000E2 -S3156000843001000000010000000100000001000000D2 -S3156000844001000000010000000100000001000000C2 -S3156000845001000000010000000100000001000000B2 -S3156000846001000000010000000100000001000000A2 -S315600084700100000001000000010000000100000092 -S315600084800100000001000000010000000100000082 -S315600084900100000001000000010000000100000072 -S315600084A00100000001000000010000000100000062 -S315600084B00100000001000000010000000100000052 -S315600084C00100000001000000010000000100000042 -S315600084D00100000001000000010000000100000032 -S315600084E00100000001000000010000000100000022 -S315600084F00100000001000000010000000100000012 -S315600085000100000001000000010000000100000001 -S3156000851001000000010000000100000001000000F1 -S3156000852001000000010000000100000001000000E1 -S3156000853001000000010000000100000001000000D1 -S3156000854001000000010000000100000001000000C1 -S3156000855001000000010000000100000001000000B1 -S3156000856001000000010000000100000001000000A1 -S315600085700100000001000000010000000100000091 -S315600085800100000001000000010000000100000081 -S315600085900100000001000000010000000100000071 -S315600085A00100000001000000010000000100000061 -S315600085B00100000001000000010000000100000051 -S315600085C00100000001000000010000000100000041 -S315600085D00100000001000000010000000100000031 -S315600085E00100000001000000010000000100000021 -S315600085F00100000001000000010000000100000011 -S315600086000100000001000000010000000100000000 -S3156000861001000000010000000100000001000000F0 -S3156000862001000000010000000100000001000000E0 -S3156000863001000000010000000100000001000000D0 -S3156000864001000000010000000100000001000000C0 -S3156000865001000000010000000100000001000000B0 -S3156000866001000000010000000100000001000000A0 -S315600086700100000001000000010000000100000090 -S315600086800100000001000000010000000100000080 -S315600086900100000001000000010000000100000070 -S315600086A00100000001000000010000000100000060 -S315600086B00100000001000000010000000100000050 -S315600086C00100000001000000010000000100000040 -S315600086D00100000001000000010000000100000030 -S315600086E00100000001000000010000000100000020 -S315600086F00100000001000000010000000100000010 -S3156000870001000000010000000100000001000000FF -S3156000871001000000010000000100000001000000EF -S3156000872001000000010000000100000001000000DF -S3156000873001000000010000000100000001000000CF -S3156000874001000000010000000100000001000000BF -S3156000875001000000010000000100000001000000AF -S31560008760010000000100000001000000010000009F -S31560008770010000000100000001000000010000008F -S31560008780010000000100000001000000010000007F -S31560008790010000000100000001000000010000006F -S315600087A0010000000100000001000000010000005F -S315600087B0010000000100000001000000010000004F -S315600087C0010000000100000001000000010000003F -S315600087D0010000000100000001000000010000002F -S315600087E0010000000100000001000000010000001F -S315600087F0010000000100000001000000010000000F -S3156000880001000000010000000100000001000000FE -S3156000881001000000010000000100000001000000EE -S3156000882001000000010000000100000001000000DE -S3156000883001000000010000000100000001000000CE -S3156000884001000000010000000100000001000000BE -S3156000885001000000010000000100000001000000AE -S31560008860010000000100000001000000010000009E -S31560008870010000000100000001000000010000008E -S31560008880010000000100000001000000010000007E -S31560008890010000000100000001000000010000006E -S315600088A0010000000100000001000000010000005E -S315600088B0010000000100000001000000010000004E -S315600088C0010000000100000001000000010000003E -S315600088D0010000000100000001000000010000002E -S315600088E0010000000100000001000000010000001E -S315600088F0010000000100000001000000010000000E -S3156000890001000000010000000100000001000000FD -S3156000891001000000010000000100000001000000ED -S3156000892001000000010000000100000001000000DD -S3156000893001000000010000000100000001000000CD -S3156000894001000000010000000100000001000000BD -S3156000895001000000010000000100000001000000AD -S31560008960010000000100000001000000010000009D -S31560008970010000000100000001000000010000008D -S31560008980010000000100000001000000010000007D -S31560008990010000000100000001000000010000006D -S315600089A0010000000100000001000000010000005D -S315600089B0010000000100000001000000010000004D -S315600089C0010000000100000001000000010000003D -S315600089D0010000000100000001000000010000002D -S315600089E0010000000100000001000000010000001D -S315600089F0010000000100000001000000010000000D -S31560008A0001000000010000000100000001000000FC -S31560008A1001000000010000000100000001000000EC -S31560008A2001000000010000000100000001000000DC -S31560008A3001000000010000000100000001000000CC -S31560008A4001000000010000000100000001000000BC -S31560008A5001000000010000000100000001000000AC -S31560008A60010000000100000001000000010000009C -S31560008A70010000000100000001000000010000008C -S31560008A80010000000100000001000000010000007C -S31560008A90010000000100000001000000010000006C -S31560008AA0010000000100000001000000010000005C -S31560008AB0010000000100000001000000010000004C -S31560008AC0010000000100000001000000010000003C -S31560008AD0010000000100000001000000010000002C -S31560008AE0010000000100000001000000010000001C -S31560008AF0010000000100000001000000010000000C -S31560008B0001000000010000000100000001000000FB -S31560008B1001000000010000000100000001000000EB -S31560008B2001000000010000000100000001000000DB -S31560008B3001000000010000000100000001000000CB -S31560008B4001000000010000000100000001000000BB -S31560008B5001000000010000000100000001000000AB -S31560008B60010000000100000001000000010000009B -S31560008B70010000000100000001000000010000008B -S31560008B80010000000100000001000000010000007B -S31560008B90010000000100000001000000010000006B -S31560008BA0010000000100000001000000010000005B -S31560008BB0010000000100000001000000010000004B -S31560008BC0010000000100000001000000010000003B -S31560008BD0010000000100000001000000010000002B -S31560008BE0010000000100000001000000010000001B -S31560008BF0010000000100000001000000010000000B -S31560008C0001000000010000000100000001000000FA -S31560008C1001000000010000000100000001000000EA -S31560008C2001000000010000000100000001000000DA -S31560008C3001000000010000000100000001000000CA -S31560008C4001000000010000000100000001000000BA -S31560008C5001000000010000000100000001000000AA -S31560008C60010000000100000001000000010000009A -S31560008C70010000000100000001000000010000008A -S31560008C80010000000100000001000000010000007A -S31560008C90010000000100000001000000010000006A -S31560008CA0010000000100000001000000010000005A -S31560008CB0010000000100000001000000010000004A -S31560008CC0010000000100000001000000010000003A -S31560008CD0010000000100000001000000010000002A -S31560008CE0010000000100000001000000010000001A -S31560008CF0010000000100000001000000010000000A -S31560008D0001000000010000000100000001000000F9 -S31560008D1001000000010000000100000001000000E9 -S31560008D2001000000010000000100000001000000D9 -S31560008D3001000000010000000100000001000000C9 -S31560008D4001000000010000000100000001000000B9 -S31560008D5001000000010000000100000001000000A9 -S31560008D600100000001000000010000000100000099 -S31560008D700100000001000000010000000100000089 -S31560008D800100000001000000010000000100000079 -S31560008D900100000001000000010000000100000069 -S31560008DA00100000001000000010000000100000059 -S31560008DB00100000001000000010000000100000049 -S31560008DC00100000001000000010000000100000039 -S31560008DD00100000001000000010000000100000029 -S31560008DE00100000001000000010000000100000019 -S31560008DF00100000001000000010000000100000009 -S31560008E0001000000010000000100000001000000F8 -S31560008E1001000000010000000100000001000000E8 -S31560008E2001000000010000000100000001000000D8 -S31560008E3001000000010000000100000001000000C8 -S31560008E4001000000010000000100000001000000B8 -S31560008E5001000000010000000100000001000000A8 -S31560008E600100000001000000010000000100000098 -S31560008E700100000001000000010000000100000088 -S31560008E800100000001000000010000000100000078 -S31560008E900100000001000000010000000100000068 -S31560008EA00100000001000000010000000100000058 -S31560008EB00100000001000000010000000100000048 -S31560008EC00100000001000000010000000100000038 -S31560008ED00100000001000000010000000100000028 -S31560008EE00100000001000000010000000100000018 -S31560008EF00100000001000000010000000100000008 -S31560008F0001000000010000000100000001000000F7 -S31560008F1001000000010000000100000001000000E7 -S31560008F2001000000010000000100000001000000D7 -S31560008F3001000000010000000100000001000000C7 -S31560008F4001000000010000000100000001000000B7 -S31560008F5001000000010000000100000001000000A7 -S31560008F600100000001000000010000000100000097 -S31560008F700100000001000000010000000100000087 -S31560008F800100000001000000010000000100000077 -S31560008F900100000001000000010000000100000067 -S31560008FA00100000001000000010000000100000057 -S31560008FB00100000001000000010000000100000047 -S31560008FC00100000001000000010000000100000037 -S31560008FD00100000001000000010000000100000027 -S31560008FE00100000001000000010000000100000017 -S31560008FF00100000001000000010000000100000007 -S3156000900001000000010000000100000001000000F6 -S3156000901001000000010000000100000001000000E6 -S3156000902001000000010000000100000001000000D6 -S3156000903001000000010000000100000001000000C6 -S3156000904001000000010000000100000001000000B6 -S3156000905001000000010000000100000001000000A6 -S315600090600100000001000000010000000100000096 -S315600090700100000001000000010000000100000086 -S315600090800100000001000000010000000100000076 -S315600090900100000001000000010000000100000066 -S315600090A00100000001000000010000000100000056 -S315600090B00100000001000000010000000100000046 -S315600090C00100000001000000010000000100000036 -S315600090D00100000001000000010000000100000026 -S315600090E00100000001000000010000000100000016 -S315600090F00100000001000000010000000100000006 -S3156000910001000000010000000100000001000000F5 -S3156000911001000000010000000100000001000000E5 -S3156000912001000000010000000100000001000000D5 -S3156000913001000000010000000100000001000000C5 -S3156000914001000000010000000100000001000000B5 -S3156000915001000000010000000100000001000000A5 -S315600091600100000001000000010000000100000095 -S315600091700100000001000000010000000100000085 -S315600091800100000001000000010000000100000075 -S315600091900100000001000000010000000100000065 -S315600091A00100000001000000010000000100000055 -S315600091B00100000001000000010000000100000045 -S315600091C00100000001000000010000000100000035 -S315600091D00100000001000000010000000100000025 -S315600091E00100000001000000010000000100000015 -S315600091F00100000001000000010000000100000005 -S3156000920001000000010000000100000001000000F4 -S3156000921001000000010000000100000001000000E4 -S3156000922001000000010000000100000001000000D4 -S3156000923001000000010000000100000001000000C4 -S3156000924001000000010000000100000001000000B4 -S3156000925001000000010000000100000001000000A4 -S315600092600100000001000000010000000100000094 -S315600092700100000001000000010000000100000084 -S315600092800100000001000000010000000100000074 -S315600092900100000001000000010000000100000064 -S315600092A00100000001000000010000000100000054 -S315600092B00100000001000000010000000100000044 -S315600092C00100000001000000010000000100000034 -S315600092D00100000001000000010000000100000024 -S315600092E00100000001000000010000000100000014 -S315600092F00100000001000000010000000100000004 -S3156000930001000000010000000100000001000000F3 -S3156000931001000000010000000100000001000000E3 -S3156000932001000000010000000100000001000000D3 -S3156000933001000000010000000100000001000000C3 -S3156000934001000000010000000100000001000000B3 -S3156000935001000000010000000100000001000000A3 -S315600093600100000001000000010000000100000093 -S315600093700100000001000000010000000100000083 -S315600093800100000001000000010000000100000073 -S315600093900100000001000000010000000100000063 -S315600093A00100000001000000010000000100000053 -S315600093B00100000001000000010000000100000043 -S315600093C00100000001000000010000000100000033 -S315600093D00100000001000000010000000100000023 -S315600093E00100000001000000010000000100000013 -S315600093F00100000001000000010000000100000003 -S3156000940001000000010000000100000001000000F2 -S3156000941001000000010000000100000001000000E2 -S3156000942001000000010000000100000001000000D2 -S3156000943001000000010000000100000001000000C2 -S3156000944001000000010000000100000001000000B2 -S3156000945001000000010000000100000001000000A2 -S315600094600100000001000000010000000100000092 -S315600094700100000001000000010000000100000082 -S315600094800100000001000000010000000100000072 -S315600094900100000001000000010000000100000062 -S315600094A00100000001000000010000000100000052 -S315600094B00100000001000000010000000100000042 -S315600094C00100000001000000010000000100000032 -S315600094D00100000001000000010000000100000022 -S315600094E00100000001000000010000000100000012 -S315600094F00100000001000000010000000100000002 -S3156000950001000000010000000100000001000000F1 -S3156000951001000000010000000100000001000000E1 -S3156000952001000000010000000100000001000000D1 -S3156000953001000000010000000100000001000000C1 -S3156000954001000000010000000100000001000000B1 -S3156000955001000000010000000100000001000000A1 -S315600095600100000001000000010000000100000091 -S315600095700100000001000000010000000100000081 -S315600095800100000001000000010000000100000071 -S315600095900100000001000000010000000100000061 -S315600095A00100000001000000010000000100000051 -S315600095B00100000001000000010000000100000041 -S315600095C00100000001000000010000000100000031 -S315600095D00100000001000000010000000100000021 -S315600095E00100000001000000010000000100000011 -S315600095F00100000001000000010000000100000001 -S3156000960001000000010000000100000001000000F0 -S3156000961001000000010000000100000001000000E0 -S3156000962001000000010000000100000001000000D0 -S3156000963001000000010000000100000001000000C0 -S3156000964001000000010000000100000001000000B0 -S3156000965001000000010000000100000001000000A0 -S315600096600100000001000000010000000100000090 -S315600096700100000001000000010000000100000080 -S315600096800100000001000000010000000100000070 -S315600096900100000001000000010000000100000060 -S315600096A00100000001000000010000000100000050 -S315600096B00100000001000000010000000100000040 -S315600096C00100000001000000010000000100000030 -S315600096D00100000001000000010000000100000020 -S315600096E00100000001000000010000000100000010 -S315600096F00100000001000000010000000100000000 -S3156000970001000000010000000100000001000000EF -S3156000971001000000010000000100000001000000DF -S3156000972001000000010000000100000001000000CF -S3156000973001000000010000000100000001000000BF -S3156000974001000000010000000100000001000000AF -S31560009750010000000100000001000000010000009F -S31560009760010000000100000001000000010000008F -S31560009770010000000100000001000000010000007F -S31560009780010000000100000001000000010000006F -S31560009790010000000100000001000000010000005F -S315600097A0010000000100000001000000010000004F -S315600097B0010000000100000001000000010000003F -S315600097C0010000000100000001000000010000002F -S315600097D0010000000100000001000000010000001F -S315600097E0010000000100000001000000010000000F -S315600097F001000000010000000100000001000000FF -S3156000980001000000010000000100000001000000EE -S3156000981001000000010000000100000001000000DE -S3156000982001000000010000000100000001000000CE -S3156000983001000000010000000100000001000000BE -S3156000984001000000010000000100000001000000AE -S31560009850010000000100000001000000010000009E -S31560009860010000000100000001000000010000008E -S31560009870010000000100000001000000010000007E -S31560009880010000000100000001000000010000006E -S31560009890010000000100000001000000010000005E -S315600098A0010000000100000001000000010000004E -S315600098B0010000000100000001000000010000003E -S315600098C0010000000100000001000000010000002E -S315600098D0010000000100000001000000010000001E -S315600098E0010000000100000001000000010000000E -S315600098F001000000010000000100000001000000FE -S3156000990001000000010000000100000001000000ED -S3156000991001000000010000000100000001000000DD -S3156000992001000000010000000100000001000000CD -S3156000993001000000010000000100000001000000BD -S3156000994001000000010000000100000001000000AD -S31560009950010000000100000001000000010000009D -S31560009960010000000100000001000000010000008D -S31560009970010000000100000001000000010000007D -S31560009980010000000100000001000000010000006D -S31560009990010000000100000001000000010000005D -S315600099A0010000000100000001000000010000004D -S315600099B0010000000100000001000000010000003D -S315600099C0010000000100000001000000010000002D -S315600099D0010000000100000001000000010000001D -S315600099E0010000000100000001000000010000000D -S315600099F001000000010000000100000001000000FD -S31560009A0001000000010000000100000001000000EC -S31560009A1001000000010000000100000001000000DC -S31560009A2001000000010000000100000001000000CC -S31560009A3001000000010000000100000001000000BC -S31560009A4001000000010000000100000001000000AC -S31560009A50010000000100000001000000010000009C -S31560009A60010000000100000001000000010000008C -S31560009A70010000000100000001000000010000007C -S31560009A80010000000100000001000000010000006C -S31560009A90010000000100000001000000010000005C -S31560009AA0010000000100000001000000010000004C -S31560009AB0010000000100000001000000010000003C -S31560009AC0010000000100000001000000010000002C -S31560009AD0010000000100000001000000010000001C -S31560009AE0010000000100000001000000010000000C -S31560009AF001000000010000000100000001000000FC -S31560009B0001000000010000000100000001000000EB -S31560009B1001000000010000000100000001000000DB -S31560009B2001000000010000000100000001000000CB -S31560009B3001000000010000000100000001000000BB -S31560009B4001000000010000000100000001000000AB -S31560009B50010000000100000001000000010000009B -S31560009B60010000000100000001000000010000008B -S31560009B70010000000100000001000000010000007B -S31560009B80010000000100000001000000010000006B -S31560009B90010000000100000001000000010000005B -S31560009BA0010000000100000001000000010000004B -S31560009BB0010000000100000001000000010000003B -S31560009BC0010000000100000001000000010000002B -S31560009BD0010000000100000001000000010000001B -S31560009BE0010000000100000001000000010000000B -S31560009BF001000000010000000100000001000000FB -S31560009C0001000000010000000100000001000000EA -S31560009C1001000000010000000100000001000000DA -S31560009C2001000000010000000100000001000000CA -S31560009C3001000000010000000100000001000000BA -S31560009C4001000000010000000100000001000000AA -S31560009C50010000000100000001000000010000009A -S31560009C60010000000100000001000000010000008A -S31560009C70010000000100000001000000010000007A -S31560009C80010000000100000001000000010000006A -S31560009C90010000000100000001000000010000005A -S31560009CA0010000000100000001000000010000004A -S31560009CB0010000000100000001000000010000003A -S31560009CC0010000000100000001000000010000002A -S31560009CD0010000000100000001000000010000001A -S31560009CE0010000000100000001000000010000000A -S31560009CF001000000010000000100000001000000FA -S31560009D0001000000010000000100000001000000E9 -S31560009D1001000000010000000100000001000000D9 -S31560009D2001000000010000000100000001000000C9 -S31560009D3001000000010000000100000001000000B9 -S31560009D4001000000010000000100000001000000A9 -S31560009D500100000001000000010000000100000099 -S31560009D600100000001000000010000000100000089 -S31560009D700100000001000000010000000100000079 -S31560009D800100000001000000010000000100000069 -S31560009D900100000001000000010000000100000059 -S31560009DA00100000001000000010000000100000049 -S31560009DB00100000001000000010000000100000039 -S31560009DC00100000001000000010000000100000029 -S31560009DD00100000001000000010000000100000019 -S31560009DE00100000001000000010000000100000009 -S31560009DF001000000010000000100000001000000F9 -S31560009E0001000000010000000100000001000000E8 -S31560009E1001000000010000000100000001000000D8 -S31560009E2001000000010000000100000001000000C8 -S31560009E3001000000010000000100000001000000B8 -S31560009E4001000000010000000100000001000000A8 -S31560009E500100000001000000010000000100000098 -S31560009E600100000001000000010000000100000088 -S31560009E700100000001000000010000000100000078 -S31560009E800100000001000000010000000100000068 -S31560009E900100000001000000010000000100000058 -S31560009EA00100000001000000010000000100000048 -S31560009EB00100000001000000010000000100000038 -S31560009EC00100000001000000010000000100000028 -S31560009ED00100000001000000010000000100000018 -S31560009EE00100000001000000010000000100000008 -S31560009EF001000000010000000100000001000000F8 -S31560009F0001000000010000000100000001000000E7 -S31560009F1001000000010000000100000001000000D7 -S31560009F2001000000010000000100000001000000C7 -S31560009F3001000000010000000100000001000000B7 -S31560009F4001000000010000000100000001000000A7 -S31560009F500100000001000000010000000100000097 -S31560009F600100000001000000010000000100000087 -S31560009F700100000001000000010000000100000077 -S31560009F800100000001000000010000000100000067 -S31560009F900100000001000000010000000100000057 -S31560009FA00100000001000000010000000100000047 -S31560009FB00100000001000000010000000100000037 -S31560009FC00100000001000000010000000100000027 -S31560009FD00100000001000000010000000100000017 -S31560009FE00100000001000000010000000100000007 -S31560009FF001000000010000000100000001000000F7 -S3156000A00001000000010000000100000001000000E6 -S3156000A01001000000010000000100000001000000D6 -S3156000A02001000000010000000100000001000000C6 -S3156000A03001000000010000000100000001000000B6 -S3156000A04001000000010000000100000001000000A6 -S3156000A0500100000001000000010000000100000096 -S3156000A0600100000001000000010000000100000086 -S3156000A0700100000001000000010000000100000076 -S3156000A0800100000001000000010000000100000066 -S3156000A0900100000001000000010000000100000056 -S3156000A0A00100000001000000010000000100000046 -S3156000A0B00100000001000000010000000100000036 -S3156000A0C00100000001000000010000000100000026 -S3156000A0D00100000001000000010000000100000016 -S3156000A0E00100000001000000010000000100000006 -S3156000A0F001000000010000000100000001000000F6 -S3156000A10001000000010000000100000001000000E5 -S3156000A11001000000010000000100000001000000D5 -S3156000A12001000000010000000100000001000000C5 -S3156000A13001000000010000000100000001000000B5 -S3156000A14001000000010000000100000001000000A5 -S3156000A1500100000001000000010000000100000095 -S3156000A1600100000001000000010000000100000085 -S3156000A1700100000001000000010000000100000075 -S3156000A1800100000001000000010000000100000065 -S3156000A1900100000001000000010000000100000055 -S3156000A1A00100000001000000010000000100000045 -S3156000A1B00100000001000000010000000100000035 -S3156000A1C00100000001000000010000000100000025 -S3156000A1D00100000001000000010000000100000015 -S3156000A1E00100000001000000010000000100000005 -S3156000A1F001000000010000000100000001000000F5 -S3156000A20001000000010000000100000001000000E4 -S3156000A21001000000010000000100000001000000D4 -S3156000A22001000000010000000100000001000000C4 -S3156000A23001000000010000000100000001000000B4 -S3156000A24001000000010000000100000001000000A4 -S3156000A2500100000001000000010000000100000094 -S3156000A2600100000001000000010000000100000084 -S3156000A2700100000001000000010000000100000074 -S3156000A2800100000001000000010000000100000064 -S3156000A2900100000001000000010000000100000054 -S3156000A2A00100000001000000010000000100000044 -S3156000A2B00100000001000000010000000100000034 -S3156000A2C00100000001000000010000000100000024 -S3156000A2D00100000001000000010000000100000014 -S3156000A2E00100000001000000010000000100000004 -S3156000A2F001000000010000000100000001000000F4 -S3156000A30001000000010000000100000001000000E3 -S3156000A31001000000010000000100000001000000D3 -S3156000A32001000000010000000100000001000000C3 -S3156000A33001000000010000000100000001000000B3 -S3156000A34001000000010000000100000001000000A3 -S3156000A3500100000001000000010000000100000093 -S3156000A3600100000001000000010000000100000083 -S3156000A3700100000001000000010000000100000073 -S3156000A3800100000001000000010000000100000063 -S3156000A3900100000001000000010000000100000053 -S3156000A3A00100000001000000010000000100000043 -S3156000A3B00100000001000000010000000100000033 -S3156000A3C00100000001000000010000000100000023 -S3156000A3D00100000001000000010000000100000013 -S3156000A3E00100000001000000010000000100000003 -S3156000A3F001000000010000000100000001000000F3 -S3156000A40001000000010000000100000001000000E2 -S3156000A41001000000010000000100000001000000D2 -S3156000A42001000000010000000100000001000000C2 -S3156000A43001000000010000000100000001000000B2 -S3156000A44001000000010000000100000001000000A2 -S3156000A4500100000001000000010000000100000092 -S3156000A4600100000001000000010000000100000082 -S3156000A4700100000001000000010000000100000072 -S3156000A4800100000001000000010000000100000062 -S3156000A4900100000001000000010000000100000052 -S3156000A4A00100000001000000010000000100000042 -S3156000A4B00100000001000000010000000100000032 -S3156000A4C00100000001000000010000000100000022 -S3156000A4D00100000001000000010000000100000012 -S3156000A4E00100000001000000010000000100000002 -S3156000A4F001000000010000000100000001000000F2 -S3156000A50001000000010000000100000001000000E1 -S3156000A51001000000010000000100000001000000D1 -S3156000A52001000000010000000100000001000000C1 -S3156000A53001000000010000000100000001000000B1 -S3156000A54001000000010000000100000001000000A1 -S3156000A5500100000001000000010000000100000091 -S3156000A5600100000001000000010000000100000081 -S3156000A5700100000001000000010000000100000071 -S3156000A5800100000001000000010000000100000061 -S3156000A5900100000001000000010000000100000051 -S3156000A5A00100000001000000010000000100000041 -S3156000A5B00100000001000000010000000100000031 -S3156000A5C00100000001000000010000000100000021 -S3156000A5D00100000001000000010000000100000011 -S3156000A5E00100000001000000010000000100000001 -S3156000A5F001000000010000000100000001000000F1 -S3156000A60001000000010000000100000001000000E0 -S3156000A61001000000010000000100000001000000D0 -S3156000A62001000000010000000100000001000000C0 -S3156000A63001000000010000000100000001000000B0 -S3156000A64001000000010000000100000001000000A0 -S3156000A6500100000001000000010000000100000090 -S3156000A6600100000001000000010000000100000080 -S3156000A6700100000001000000010000000100000070 -S3156000A6800100000001000000010000000100000060 -S3156000A6900100000001000000010000000100000050 -S3156000A6A00100000001000000010000000100000040 -S3156000A6B00100000001000000010000000100000030 -S3156000A6C00100000001000000010000000100000020 -S3156000A6D00100000001000000010000000100000010 -S3156000A6E00100000001000000010000000100000000 -S3156000A6F001000000010000000100000001000000F0 -S3156000A70001000000010000000100000001000000DF -S3156000A71001000000010000000100000001000000CF -S3156000A72001000000010000000100000001000000BF -S3156000A73001000000010000000100000001000000AF -S3156000A740010000000100000001000000010000009F -S3156000A750010000000100000001000000010000008F -S3156000A760010000000100000001000000010000007F -S3156000A770010000000100000001000000010000006F -S3156000A780010000000100000001000000010000005F -S3156000A790010000000100000001000000010000004F -S3156000A7A0010000000100000001000000010000003F -S3156000A7B0010000000100000001000000010000002F -S3156000A7C0010000000100000001000000010000001F -S3156000A7D0010000000100000001000000010000000F -S3156000A7E001000000010000000100000001000000FF -S3156000A7F001000000010000000100000001000000EF -S3156000A80001000000010000000100000001000000DE -S3156000A81001000000010000000100000001000000CE -S3156000A82001000000010000000100000001000000BE -S3156000A83001000000010000000100000001000000AE -S3156000A840010000000100000001000000010000009E -S3156000A850010000000100000001000000010000008E -S3156000A860010000000100000001000000010000007E -S3156000A870010000000100000001000000010000006E -S3156000A880010000000100000001000000010000005E -S3156000A890010000000100000001000000010000004E -S3156000A8A0010000000100000001000000010000003E -S3156000A8B0010000000100000001000000010000002E -S3156000A8C0010000000100000001000000010000001E -S3156000A8D0010000000100000001000000010000000E -S3156000A8E001000000010000000100000001000000FE -S3156000A8F001000000010000000100000001000000EE -S3156000A90001000000010000000100000001000000DD -S3156000A91001000000010000000100000001000000CD -S3156000A92001000000010000000100000001000000BD -S3156000A93001000000010000000100000001000000AD -S3156000A940010000000100000001000000010000009D -S3156000A950010000000100000001000000010000008D -S3156000A960010000000100000001000000010000007D -S3156000A970010000000100000001000000010000006D -S3156000A980010000000100000001000000010000005D -S3156000A990010000000100000001000000010000004D -S3156000A9A0010000000100000001000000010000003D -S3156000A9B0010000000100000001000000010000002D -S3156000A9C0010000000100000001000000010000001D -S3156000A9D0010000000100000001000000010000000D -S3156000A9E001000000010000000100000001000000FD -S3156000A9F001000000010000000100000001000000ED -S3156000AA0001000000010000000100000001000000DC -S3156000AA1001000000010000000100000001000000CC -S3156000AA2001000000010000000100000001000000BC -S3156000AA3001000000010000000100000001000000AC -S3156000AA40010000000100000001000000010000009C -S3156000AA50010000000100000001000000010000008C -S3156000AA60010000000100000001000000010000007C -S3156000AA70010000000100000001000000010000006C -S3156000AA80010000000100000001000000010000005C -S3156000AA90010000000100000001000000010000004C -S3156000AAA0010000000100000001000000010000003C -S3156000AAB0010000000100000001000000010000002C -S3156000AAC0010000000100000001000000010000001C -S3156000AAD0010000000100000001000000010000000C -S3156000AAE001000000010000000100000001000000FC -S3156000AAF001000000010000000100000001000000EC -S3156000AB0001000000010000000100000001000000DB -S3156000AB1001000000010000000100000001000000CB -S3156000AB2001000000010000000100000001000000BB -S3156000AB3001000000010000000100000001000000AB -S3156000AB40010000000100000001000000010000009B -S3156000AB50010000000100000001000000010000008B -S3156000AB60010000000100000001000000010000007B -S3156000AB70010000000100000001000000010000006B -S3156000AB80010000000100000001000000010000005B -S3156000AB90010000000100000001000000010000004B -S3156000ABA0010000000100000001000000010000003B -S3156000ABB0010000000100000001000000010000002B -S3156000ABC0010000000100000001000000010000001B -S3156000ABD0010000000100000001000000010000000B -S3156000ABE001000000010000000100000001000000FB -S3156000ABF001000000010000000100000001000000EB -S3156000AC0001000000010000000100000001000000DA -S3156000AC1001000000010000000100000001000000CA -S3156000AC2001000000010000000100000001000000BA -S3156000AC3001000000010000000100000001000000AA -S3156000AC40010000000100000001000000010000009A -S3156000AC50010000000100000001000000010000008A -S3156000AC60010000000100000001000000010000007A -S3156000AC70010000000100000001000000010000006A -S3156000AC80010000000100000001000000010000005A -S3156000AC90010000000100000001000000010000004A -S3156000ACA0010000000100000001000000010000003A -S3156000ACB0010000000100000001000000010000002A -S3156000ACC0010000000100000001000000010000001A -S3156000ACD0010000000100000001000000010000000A -S3156000ACE001000000010000000100000001000000FA -S3156000ACF001000000010000000100000001000000EA -S3156000AD0001000000010000000100000001000000D9 -S3156000AD1001000000010000000100000001000000C9 -S3156000AD2001000000010000000100000001000000B9 -S3156000AD3001000000010000000100000001000000A9 -S3156000AD400100000001000000010000000100000099 -S3156000AD500100000001000000010000000100000089 -S3156000AD600100000001000000010000000100000079 -S3156000AD700100000001000000010000000100000069 -S3156000AD800100000001000000010000000100000059 -S3156000AD900100000001000000010000000100000049 -S3156000ADA00100000001000000010000000100000039 -S3156000ADB00100000001000000010000000100000029 -S3156000ADC00100000001000000010000000100000019 -S3156000ADD00100000001000000010000000100000009 -S3156000ADE001000000010000000100000001000000F9 -S3156000ADF001000000010000000100000001000000E9 -S3156000AE0001000000010000000100000001000000D8 -S3156000AE1001000000010000000100000001000000C8 -S3156000AE2001000000010000000100000001000000B8 -S3156000AE3001000000010000000100000001000000A8 -S3156000AE400100000001000000010000000100000098 -S3156000AE500100000001000000010000000100000088 -S3156000AE600100000001000000010000000100000078 -S3156000AE700100000001000000010000000100000068 -S3156000AE800100000001000000010000000100000058 -S3156000AE900100000001000000010000000100000048 -S3156000AEA00100000001000000010000000100000038 -S3156000AEB00100000001000000010000000100000028 -S3156000AEC00100000001000000010000000100000018 -S3156000AED00100000001000000010000000100000008 -S3156000AEE001000000010000000100000001000000F8 -S3156000AEF001000000010000000100000001000000E8 -S3156000AF0001000000010000000100000001000000D7 -S3156000AF1001000000010000000100000001000000C7 -S3156000AF2001000000010000000100000001000000B7 -S3156000AF3001000000010000000100000001000000A7 -S3156000AF400100000001000000010000000100000097 -S3156000AF500100000001000000010000000100000087 -S3156000AF600100000001000000010000000100000077 -S3156000AF700100000001000000010000000100000067 -S3156000AF800100000001000000010000000100000057 -S3156000AF900100000001000000010000000100000047 -S3156000AFA00100000001000000010000000100000037 -S3156000AFB00100000001000000010000000100000027 -S3156000AFC00100000001000000010000000100000017 -S3156000AFD00100000001000000010000000100000007 -S3156000AFE001000000010000000100000001000000F7 -S3156000AFF001000000010000000100000001000000E7 -S3156000B00001000000010000000100000001000000D6 -S3156000B01001000000010000000100000001000000C6 -S3156000B02001000000010000000100000001000000B6 -S3156000B03001000000010000000100000001000000A6 -S3156000B0400100000001000000010000000100000096 -S3156000B0500100000001000000010000000100000086 -S3156000B0600100000001000000010000000100000076 -S3156000B0700100000001000000010000000100000066 -S3156000B0800100000001000000010000000100000056 -S3156000B0900100000001000000010000000100000046 -S3156000B0A00100000001000000010000000100000036 -S3156000B0B00100000001000000010000000100000026 -S3156000B0C00100000001000000010000000100000016 -S3156000B0D00100000001000000010000000100000006 -S3156000B0E001000000010000000100000001000000F6 -S3156000B0F001000000010000000100000001000000E6 -S3156000B10001000000010000000100000001000000D5 -S3156000B11001000000010000000100000001000000C5 -S3156000B12001000000010000000100000001000000B5 -S3156000B13001000000010000000100000001000000A5 -S3156000B1400100000001000000010000000100000095 -S3156000B1500100000001000000010000000100000085 -S3156000B1600100000001000000010000000100000075 -S3156000B1700100000001000000010000000100000065 -S3156000B1800100000001000000010000000100000055 -S3156000B1900100000001000000010000000100000045 -S3156000B1A00100000001000000010000000100000035 -S3156000B1B00100000001000000010000000100000025 -S3156000B1C00100000001000000010000000100000015 -S3156000B1D00100000001000000010000000100000005 -S3156000B1E001000000010000000100000001000000F5 -S3156000B1F001000000010000000100000001000000E5 -S3156000B20001000000010000000100000001000000D4 -S3156000B21001000000010000000100000001000000C4 -S3156000B22001000000010000000100000001000000B4 -S3156000B23001000000010000000100000001000000A4 -S3156000B2400100000001000000010000000100000094 -S3156000B2500100000001000000010000000100000084 -S3156000B2600100000001000000010000000100000074 -S3156000B2700100000001000000010000000100000064 -S3156000B2800100000001000000010000000100000054 -S3156000B2900100000001000000010000000100000044 -S3156000B2A00100000001000000010000000100000034 -S3156000B2B00100000001000000010000000100000024 -S3156000B2C00100000001000000010000000100000014 -S3156000B2D00100000001000000010000000100000004 -S3156000B2E001000000010000000100000001000000F4 -S3156000B2F001000000010000000100000001000000E4 -S3156000B30001000000010000000100000001000000D3 -S3156000B31001000000010000000100000001000000C3 -S3156000B32001000000010000000100000001000000B3 -S3156000B33001000000010000000100000001000000A3 -S3156000B3400100000001000000010000000100000093 -S3156000B3500100000001000000010000000100000083 -S3156000B3600100000001000000010000000100000073 -S3156000B3700100000001000000010000000100000063 -S3156000B3800100000001000000010000000100000053 -S3156000B3900100000001000000010000000100000043 -S3156000B3A00100000001000000010000000100000033 -S3156000B3B00100000001000000010000000100000023 -S3156000B3C00100000001000000010000000100000013 -S3156000B3D00100000001000000010000000100000003 -S3156000B3E001000000010000000100000001000000F3 -S3156000B3F001000000010000000100000001000000E3 -S3156000B40001000000010000000100000001000000D2 -S3156000B41001000000010000000100000001000000C2 -S3156000B42001000000010000000100000001000000B2 -S3156000B43001000000010000000100000001000000A2 -S3156000B4400100000001000000010000000100000092 -S3156000B4500100000001000000010000000100000082 -S3156000B4600100000001000000010000000100000072 -S3156000B4700100000001000000010000000100000062 -S3156000B4800100000001000000010000000100000052 -S3156000B4900100000001000000010000000100000042 -S3156000B4A00100000001000000010000000100000032 -S3156000B4B00100000001000000010000000100000022 -S3156000B4C00100000001000000010000000100000012 -S3156000B4D00100000001000000010000000100000002 -S3156000B4E001000000010000000100000001000000F2 -S3156000B4F001000000010000000100000001000000E2 -S3156000B50001000000010000000100000001000000D1 -S3156000B51001000000010000000100000001000000C1 -S3156000B52001000000010000000100000001000000B1 -S3156000B53001000000010000000100000001000000A1 -S3156000B5400100000001000000010000000100000091 -S3156000B5500100000001000000010000000100000081 -S3156000B5600100000001000000010000000100000071 -S3156000B5700100000001000000010000000100000061 -S3156000B5800100000001000000010000000100000051 -S3156000B5900100000001000000010000000100000041 -S3156000B5A00100000001000000010000000100000031 -S3156000B5B00100000001000000010000000100000021 -S3156000B5C00100000001000000010000000100000011 -S3156000B5D00100000001000000010000000100000001 -S3156000B5E001000000010000000100000001000000F1 -S3156000B5F001000000010000000100000001000000E1 -S3156000B60001000000010000000100000001000000D0 -S3156000B61001000000010000000100000001000000C0 -S3156000B62001000000010000000100000001000000B0 -S3156000B63001000000010000000100000001000000A0 -S3156000B6400100000001000000010000000100000090 -S3156000B6500100000001000000010000000100000080 -S3156000B6600100000001000000010000000100000070 -S3156000B6700100000001000000010000000100000060 -S3156000B6800100000001000000010000000100000050 -S3156000B6900100000001000000010000000100000040 -S3156000B6A00100000001000000010000000100000030 -S3156000B6B00100000001000000010000000100000020 -S3156000B6C00100000001000000010000000100000010 -S3156000B6D00100000001000000010000000100000000 -S3156000B6E001000000010000000100000001000000F0 -S3156000B6F001000000010000000100000001000000E0 -S3156000B70001000000010000000100000001000000CF -S3156000B71001000000010000000100000001000000BF -S3156000B72001000000010000000100000001000000AF -S3156000B730010000000100000001000000010000009F -S3156000B740010000000100000001000000010000008F -S3156000B750010000000100000001000000010000007F -S3156000B760010000000100000001000000010000006F -S3156000B770010000000100000001000000010000005F -S3156000B780010000000100000001000000010000004F -S3156000B790010000000100000001000000010000003F -S3156000B7A0010000000100000001000000010000002F -S3156000B7B0010000000100000001000000010000001F -S3156000B7C0010000000100000001000000010000000F -S3156000B7D001000000010000000100000001000000FF -S3156000B7E001000000010000000100000001000000EF -S3156000B7F001000000010000000100000001000000DF -S3156000B80001000000010000000100000001000000CE -S3156000B81001000000010000000100000001000000BE -S3156000B82001000000010000000100000001000000AE -S3156000B830010000000100000001000000010000009E -S3156000B840010000000100000001000000010000008E -S3156000B850010000000100000001000000010000007E -S3156000B860010000000100000001000000010000006E -S3156000B870010000000100000001000000010000005E -S3156000B880010000000100000001000000010000004E -S3156000B890010000000100000001000000010000003E -S3156000B8A0010000000100000001000000010000002E -S3156000B8B0010000000100000001000000010000001E -S3156000B8C0010000000100000001000000010000000E -S3156000B8D001000000010000000100000001000000FE -S3156000B8E001000000010000000100000001000000EE -S3156000B8F001000000010000000100000001000000DE -S3156000B90001000000010000000100000001000000CD -S3156000B91001000000010000000100000001000000BD -S3156000B92001000000010000000100000001000000AD -S3156000B930010000000100000001000000010000009D -S3156000B940010000000100000001000000010000008D -S3156000B950010000000100000001000000010000007D -S3156000B960010000000100000001000000010000006D -S3156000B970010000000100000001000000010000005D -S3156000B980010000000100000001000000010000004D -S3156000B990010000000100000001000000010000003D -S3156000B9A0010000000100000001000000010000002D -S3156000B9B0010000000100000001000000010000001D -S3156000B9C0010000000100000001000000010000000D -S3156000B9D001000000010000000100000001000000FD -S3156000B9E001000000010000000100000001000000ED -S3156000B9F001000000010000000100000001000000DD -S3156000BA0001000000010000000100000001000000CC -S3156000BA1001000000010000000100000001000000BC -S3156000BA2001000000010000000100000001000000AC -S3156000BA30010000000100000001000000010000009C -S3156000BA40010000000100000001000000010000008C -S3156000BA50010000000100000001000000010000007C -S3156000BA60010000000100000001000000010000006C -S3156000BA70010000000100000001000000010000005C -S3156000BA80010000000100000001000000010000004C -S3156000BA90010000000100000001000000010000003C -S3156000BAA0010000000100000001000000010000002C -S3156000BAB0010000000100000001000000010000001C -S3156000BAC0010000000100000001000000010000000C -S3156000BAD001000000010000000100000001000000FC -S3156000BAE001000000010000000100000001000000EC -S3156000BAF001000000010000000100000001000000DC -S3156000BB0001000000010000000100000001000000CB -S3156000BB1001000000010000000100000001000000BB -S3156000BB2001000000010000000100000001000000AB -S3156000BB30010000000100000001000000010000009B -S3156000BB40010000000100000001000000010000008B -S3156000BB50010000000100000001000000010000007B -S3156000BB60010000000100000001000000010000006B -S3156000BB70010000000100000001000000010000005B -S3156000BB80010000000100000001000000010000004B -S3156000BB90010000000100000001000000010000003B -S3156000BBA0010000000100000001000000010000002B -S3156000BBB0010000000100000001000000010000001B -S3156000BBC0010000000100000001000000010000000B -S3156000BBD001000000010000000100000001000000FB -S3156000BBE001000000010000000100000001000000EB -S3156000BBF001000000010000000100000001000000DB -S3156000BC0001000000010000000100000001000000CA -S3156000BC1001000000010000000100000001000000BA -S3156000BC2001000000010000000100000001000000AA -S3156000BC30010000000100000001000000010000009A -S3156000BC40010000000100000001000000010000008A -S3156000BC50010000000100000001000000010000007A -S3156000BC60010000000100000001000000010000006A -S3156000BC70010000000100000001000000010000005A -S3156000BC80010000000100000001000000010000004A -S3156000BC90010000000100000001000000010000003A -S3156000BCA0010000000100000001000000010000002A -S3156000BCB0010000000100000001000000010000001A -S3156000BCC0010000000100000001000000010000000A -S3156000BCD001000000010000000100000001000000FA -S3156000BCE001000000010000000100000001000000EA -S3156000BCF001000000010000000100000001000000DA -S3156000BD0001000000010000000100000001000000C9 -S3156000BD1001000000010000000100000001000000B9 -S3156000BD2001000000010000000100000001000000A9 -S3156000BD300100000001000000010000000100000099 -S3156000BD400100000001000000010000000100000089 -S3156000BD500100000001000000010000000100000079 -S3156000BD600100000001000000010000000100000069 -S3156000BD700100000001000000010000000100000059 -S3156000BD800100000001000000010000000100000049 -S3156000BD900100000001000000010000000100000039 -S3156000BDA00100000001000000010000000100000029 -S3156000BDB00100000001000000010000000100000019 -S3156000BDC00100000001000000010000000100000009 -S3156000BDD001000000010000000100000001000000F9 -S3156000BDE001000000010000000100000001000000E9 -S3156000BDF001000000010000000100000001000000D9 -S3156000BE0001000000010000000100000001000000C8 -S3156000BE1001000000010000000100000001000000B8 -S3156000BE2001000000010000000100000001000000A8 -S3156000BE300100000001000000010000000100000098 -S3156000BE400100000001000000010000000100000088 -S3156000BE500100000001000000010000000100000078 -S3156000BE600100000001000000010000000100000068 -S3156000BE700100000001000000010000000100000058 -S3156000BE800100000001000000010000000100000048 -S3156000BE900100000001000000010000000100000038 -S3156000BEA00100000001000000010000000100000028 -S3156000BEB00100000001000000010000000100000018 -S3156000BEC00100000001000000010000000100000008 -S3156000BED001000000010000000100000001000000F8 -S3156000BEE001000000010000000100000001000000E8 -S3156000BEF001000000010000000100000001000000D8 -S3156000BF0001000000010000000100000001000000C7 -S3156000BF1001000000010000000100000001000000B7 -S3156000BF2001000000010000000100000001000000A7 -S3156000BF300100000001000000010000000100000097 -S3156000BF400100000001000000010000000100000087 -S3156000BF500100000001000000010000000100000077 -S3156000BF600100000001000000010000000100000067 -S3156000BF700100000001000000010000000100000057 -S3156000BF800100000001000000010000000100000047 -S3156000BF900100000001000000010000000100000037 -S3156000BFA00100000001000000010000000100000027 -S3156000BFB00100000001000000010000000100000017 -S3156000BFC00100000001000000010000000100000007 -S3156000BFD001000000010000000100000001000000F7 -S3156000BFE001000000010000000100000001000000E7 -S3156000BFF001000000010000000100000001000000D7 -S3156000C00001000000010000000100000001000000C6 -S3156000C01001000000010000000100000001000000B6 -S3156000C02001000000010000000100000001000000A6 -S3156000C0300100000001000000010000000100000096 -S3156000C0400100000001000000010000000100000086 -S3156000C0500100000001000000010000000100000076 -S3156000C0600100000001000000010000000100000066 -S3156000C0700100000001000000010000000100000056 -S3156000C0800100000001000000010000000100000046 -S3156000C0900100000001000000010000000100000036 -S3156000C0A00100000001000000010000000100000026 -S3156000C0B00100000001000000010000000100000016 -S3156000C0C00100000001000000010000000100000006 -S3156000C0D001000000010000000100000001000000F6 -S3156000C0E001000000010000000100000001000000E6 -S3156000C0F001000000010000000100000001000000D6 -S3156000C10001000000010000000100000001000000C5 -S3156000C11001000000010000000100000001000000B5 -S3156000C12001000000010000000100000001000000A5 -S3156000C1300100000001000000010000000100000095 -S3156000C1400100000001000000010000000100000085 -S3156000C1500100000001000000010000000100000075 -S3156000C1600100000001000000010000000100000065 -S3156000C1700100000001000000010000000100000055 -S3156000C1800100000001000000010000000100000045 -S3156000C1900100000001000000010000000100000035 -S3156000C1A00100000001000000010000000100000025 -S3156000C1B00100000001000000010000000100000015 -S3156000C1C00100000001000000010000000100000005 -S3156000C1D001000000010000000100000001000000F5 -S3156000C1E001000000010000000100000001000000E5 -S3156000C1F001000000010000000100000001000000D5 -S3156000C20001000000010000000100000001000000C4 -S3156000C21001000000010000000100000001000000B4 -S3156000C22001000000010000000100000001000000A4 -S3156000C2300100000001000000010000000100000094 -S3156000C2400100000001000000010000000100000084 -S3156000C2500100000001000000010000000100000074 -S3156000C2600100000001000000010000000100000064 -S3156000C2700100000001000000010000000100000054 -S3156000C2800100000001000000010000000100000044 -S3156000C2900100000001000000010000000100000034 -S3156000C2A00100000001000000010000000100000024 -S3156000C2B00100000001000000010000000100000014 -S3156000C2C00100000001000000010000000100000004 -S3156000C2D001000000010000000100000001000000F4 -S3156000C2E001000000010000000100000001000000E4 -S3156000C2F001000000010000000100000001000000D4 -S3156000C30001000000010000000100000001000000C3 -S3156000C31001000000010000000100000001000000B3 -S3156000C32001000000010000000100000001000000A3 -S3156000C3300100000001000000010000000100000093 -S3156000C3400100000001000000010000000100000083 -S3156000C3500100000001000000010000000100000073 -S3156000C3600100000001000000010000000100000063 -S3156000C3700100000001000000010000000100000053 -S3156000C3800100000001000000010000000100000043 -S3156000C3900100000001000000010000000100000033 -S3156000C3A00100000001000000010000000100000023 -S3156000C3B00100000001000000010000000100000013 -S3156000C3C00100000001000000010000000100000003 -S3156000C3D001000000010000000100000001000000F3 -S3156000C3E001000000010000000100000001000000E3 -S3156000C3F001000000010000000100000001000000D3 -S3156000C40001000000010000000100000001000000C2 -S3156000C41001000000010000000100000001000000B2 -S3156000C42001000000010000000100000001000000A2 -S3156000C4300100000001000000010000000100000092 -S3156000C4400100000001000000010000000100000082 -S3156000C4500100000001000000010000000100000072 -S3156000C4600100000001000000010000000100000062 -S3156000C4700100000001000000010000000100000052 -S3156000C4800100000001000000010000000100000042 -S3156000C4900100000001000000010000000100000032 -S3156000C4A00100000001000000010000000100000022 -S3156000C4B00100000001000000010000000100000012 -S3156000C4C00100000001000000010000000100000002 -S3156000C4D001000000010000000100000001000000F2 -S3156000C4E001000000010000000100000001000000E2 -S3156000C4F001000000010000000100000001000000D2 -S3156000C50001000000010000000100000001000000C1 -S3156000C51001000000010000000100000001000000B1 -S3156000C52001000000010000000100000001000000A1 -S3156000C5300100000001000000010000000100000091 -S3156000C5400100000001000000010000000100000081 -S3156000C5500100000001000000010000000100000071 -S3156000C5600100000001000000010000000100000061 -S3156000C5700100000001000000010000000100000051 -S3156000C5800100000001000000010000000100000041 -S3156000C5900100000001000000010000000100000031 -S3156000C5A00100000001000000010000000100000021 -S3156000C5B00100000001000000010000000100000011 -S3156000C5C00100000001000000010000000100000001 -S3156000C5D001000000010000000100000001000000F1 -S3156000C5E001000000010000000100000001000000E1 -S3156000C5F001000000010000000100000001000000D1 -S3156000C60001000000010000000100000001000000C0 -S3156000C61001000000010000000100000001000000B0 -S3156000C62001000000010000000100000001000000A0 -S3156000C6300100000001000000010000000100000090 -S3156000C6400100000001000000010000000100000080 -S3156000C6500100000001000000010000000100000070 -S3156000C6600100000001000000010000000100000060 -S3156000C6700100000001000000010000000100000050 -S3156000C6800100000001000000010000000100000040 -S3156000C6900100000001000000010000000100000030 -S3156000C6A00100000001000000010000000100000020 -S3156000C6B00100000001000000010000000100000010 -S3156000C6C00100000001000000010000000100000000 -S3156000C6D001000000010000000100000001000000F0 -S3156000C6E001000000010000000100000001000000E0 -S3156000C6F001000000010000000100000001000000D0 -S3156000C70001000000010000000100000001000000BF -S3156000C71001000000010000000100000001000000AF -S3156000C720010000000100000001000000010000009F -S3156000C730010000000100000001000000010000008F -S3156000C740010000000100000001000000010000007F -S3156000C750010000000100000001000000010000006F -S3156000C760010000000100000001000000010000005F -S3156000C770010000000100000001000000010000004F -S3156000C780010000000100000001000000010000003F -S3156000C790010000000100000001000000010000002F -S3156000C7A0010000000100000001000000010000001F -S3156000C7B0010000000100000001000000010000000F -S3156000C7C001000000010000000100000001000000FF -S3156000C7D001000000010000000100000001000000EF -S3156000C7E001000000010000000100000001000000DF -S3156000C7F001000000010000000100000001000000CF -S3156000C80001000000010000000100000001000000BE -S3156000C81001000000010000000100000001000000AE -S3156000C820010000000100000001000000010000009E -S3156000C830010000000100000001000000010000008E -S3156000C840010000000100000001000000010000007E -S3156000C850010000000100000001000000010000006E -S3156000C860010000000100000001000000010000005E -S3156000C870010000000100000001000000010000004E -S3156000C880010000000100000001000000010000003E -S3156000C890010000000100000001000000010000002E -S3156000C8A0010000000100000001000000010000001E -S3156000C8B0010000000100000001000000010000000E -S3156000C8C001000000010000000100000001000000FE -S3156000C8D001000000010000000100000001000000EE -S3156000C8E001000000010000000100000001000000DE -S3156000C8F001000000010000000100000001000000CE -S3156000C90001000000010000000100000001000000BD -S3156000C91001000000010000000100000001000000AD -S3156000C920010000000100000001000000010000009D -S3156000C930010000000100000001000000010000008D -S3156000C940010000000100000001000000010000007D -S3156000C950010000000100000001000000010000006D -S3156000C960010000000100000001000000010000005D -S3156000C970010000000100000001000000010000004D -S3156000C980010000000100000001000000010000003D -S3156000C990010000000100000001000000010000002D -S3156000C9A0010000000100000001000000010000001D -S3156000C9B0010000000100000001000000010000000D -S3156000C9C001000000010000000100000001000000FD -S3156000C9D001000000010000000100000001000000ED -S3156000C9E001000000010000000100000001000000DD -S3156000C9F001000000010000000100000001000000CD -S3156000CA0001000000010000000100000001000000BC -S3156000CA1001000000010000000100000001000000AC -S3156000CA20010000000100000001000000010000009C -S3156000CA30010000000100000001000000010000008C -S3156000CA40010000000100000001000000010000007C -S3156000CA50010000000100000001000000010000006C -S3156000CA60010000000100000001000000010000005C -S3156000CA70010000000100000001000000010000004C -S3156000CA80010000000100000001000000010000003C -S3156000CA90010000000100000001000000010000002C -S3156000CAA0010000000100000001000000010000001C -S3156000CAB0010000000100000001000000010000000C -S3156000CAC001000000010000000100000001000000FC -S3156000CAD001000000010000000100000001000000EC -S3156000CAE001000000010000000100000001000000DC -S3156000CAF001000000010000000100000001000000CC -S3156000CB0001000000010000000100000001000000BB -S3156000CB1001000000010000000100000001000000AB -S3156000CB20010000000100000001000000010000009B -S3156000CB30010000000100000001000000010000008B -S3156000CB40010000000100000001000000010000007B -S3156000CB50010000000100000001000000010000006B -S3156000CB60010000000100000001000000010000005B -S3156000CB70010000000100000001000000010000004B -S3156000CB80010000000100000001000000010000003B -S3156000CB90010000000100000001000000010000002B -S3156000CBA0010000000100000001000000010000001B -S3156000CBB0010000000100000001000000010000000B -S3156000CBC001000000010000000100000001000000FB -S3156000CBD001000000010000000100000001000000EB -S3156000CBE001000000010000000100000001000000DB -S3156000CBF001000000010000000100000001000000CB -S3156000CC0001000000010000000100000001000000BA -S3156000CC1001000000010000000100000001000000AA -S3156000CC20010000000100000001000000010000009A -S3156000CC30010000000100000001000000010000008A -S3156000CC40010000000100000001000000010000007A -S3156000CC50010000000100000001000000010000006A -S3156000CC60010000000100000001000000010000005A -S3156000CC70010000000100000001000000010000004A -S3156000CC80010000000100000001000000010000003A -S3156000CC90010000000100000001000000010000002A -S3156000CCA0010000000100000001000000010000001A -S3156000CCB0010000000100000001000000010000000A -S3156000CCC001000000010000000100000001000000FA -S3156000CCD001000000010000000100000001000000EA -S3156000CCE001000000010000000100000001000000DA -S3156000CCF001000000010000000100000001000000CA -S3156000CD0001000000010000000100000001000000B9 -S3156000CD1001000000010000000100000001000000A9 -S3156000CD200100000001000000010000000100000099 -S3156000CD300100000001000000010000000100000089 -S3156000CD400100000001000000010000000100000079 -S3156000CD500100000001000000010000000100000069 -S3156000CD600100000001000000010000000100000059 -S3156000CD700100000001000000010000000100000049 -S3156000CD800100000001000000010000000100000039 -S3156000CD900100000001000000010000000100000029 -S3156000CDA00100000001000000010000000100000019 -S3156000CDB00100000001000000010000000100000009 -S3156000CDC001000000010000000100000001000000F9 -S3156000CDD001000000010000000100000001000000E9 -S3156000CDE001000000010000000100000001000000D9 -S3156000CDF001000000010000000100000001000000C9 -S3156000CE0001000000010000000100000001000000B8 -S3156000CE1001000000010000000100000001000000A8 -S3156000CE200100000001000000010000000100000098 -S3156000CE300100000001000000010000000100000088 -S3156000CE400100000001000000010000000100000078 -S3156000CE500100000001000000010000000100000068 -S3156000CE600100000001000000010000000100000058 -S3156000CE700100000001000000010000000100000048 -S3156000CE800100000001000000010000000100000038 -S3156000CE900100000001000000010000000100000028 -S3156000CEA00100000001000000010000000100000018 -S3156000CEB00100000001000000010000000100000008 -S3156000CEC001000000010000000100000001000000F8 -S3156000CED001000000010000000100000001000000E8 -S3156000CEE001000000010000000100000001000000D8 -S3156000CEF001000000010000000100000001000000C8 -S3156000CF0001000000010000000100000001000000B7 -S3156000CF1001000000010000000100000001000000A7 -S3156000CF200100000001000000010000000100000097 -S3156000CF300100000001000000010000000100000087 -S3156000CF400100000001000000010000000100000077 -S3156000CF500100000001000000010000000100000067 -S3156000CF600100000001000000010000000100000057 -S3156000CF700100000001000000010000000100000047 -S3156000CF800100000001000000010000000100000037 -S3156000CF900100000001000000010000000100000027 -S3156000CFA00100000001000000010000000100000017 -S3156000CFB00100000001000000010000000100000007 -S3156000CFC001000000010000000100000001000000F7 -S3156000CFD001000000010000000100000001000000E7 -S3156000CFE001000000010000000100000001000000D7 -S3156000CFF001000000010000000100000001000000C7 -S3156000D00001000000010000000100000001000000B6 -S3156000D01001000000010000000100000001000000A6 -S3156000D0200100000001000000010000000100000096 -S3156000D0300100000001000000010000000100000086 -S3156000D0400100000001000000010000000100000076 -S3156000D0500100000001000000010000000100000066 -S3156000D0600100000001000000010000000100000056 -S3156000D0700100000001000000010000000100000046 -S3156000D0800100000001000000010000000100000036 -S3156000D0900100000001000000010000000100000026 -S3156000D0A00100000001000000010000000100000016 -S3156000D0B00100000001000000010000000100000006 -S3156000D0C001000000010000000100000001000000F6 -S3156000D0D001000000010000000100000001000000E6 -S3156000D0E001000000010000000100000001000000D6 -S3156000D0F001000000010000000100000001000000C6 -S3156000D10001000000010000000100000001000000B5 -S3156000D11001000000010000000100000001000000A5 -S3156000D1200100000001000000010000000100000095 -S3156000D1300100000001000000010000000100000085 -S3156000D1400100000001000000010000000100000075 -S3156000D1500100000001000000010000000100000065 -S3156000D1600100000001000000010000000100000055 -S3156000D1700100000001000000010000000100000045 -S3156000D1800100000001000000010000000100000035 -S3156000D1900100000001000000010000000100000025 -S3156000D1A00100000001000000010000000100000015 -S3156000D1B00100000001000000010000000100000005 -S3156000D1C001000000010000000100000001000000F5 -S3156000D1D001000000010000000100000001000000E5 -S3156000D1E001000000010000000100000001000000D5 -S3156000D1F001000000010000000100000001000000C5 -S3156000D20001000000010000000100000001000000B4 -S3156000D21001000000010000000100000001000000A4 -S3156000D2200100000001000000010000000100000094 -S3156000D2300100000001000000010000000100000084 -S3156000D2400100000001000000010000000100000074 -S3156000D2500100000001000000010000000100000064 -S3156000D2600100000001000000010000000100000054 -S3156000D2700100000001000000010000000100000044 -S3156000D2800100000001000000010000000100000034 -S3156000D2900100000001000000010000000100000024 -S3156000D2A00100000001000000010000000100000014 -S3156000D2B00100000001000000010000000100000004 -S3156000D2C001000000010000000100000001000000F4 -S3156000D2D001000000010000000100000001000000E4 -S3156000D2E001000000010000000100000001000000D4 -S3156000D2F001000000010000000100000001000000C4 -S3156000D30001000000010000000100000001000000B3 -S3156000D31001000000010000000100000001000000A3 -S3156000D3200100000001000000010000000100000093 -S3156000D3300100000001000000010000000100000083 -S3156000D3400100000001000000010000000100000073 -S3156000D3500100000001000000010000000100000063 -S3156000D3600100000001000000010000000100000053 -S3156000D3700100000001000000010000000100000043 -S3156000D3800100000001000000010000000100000033 -S3156000D3900100000001000000010000000100000023 -S3156000D3A00100000001000000010000000100000013 -S3156000D3B00100000001000000010000000100000003 -S3156000D3C001000000010000000100000001000000F3 -S3156000D3D001000000010000000100000001000000E3 -S3156000D3E001000000010000000100000001000000D3 -S3156000D3F001000000010000000100000001000000C3 -S3156000D40001000000010000000100000001000000B2 -S3156000D41001000000010000000100000001000000A2 -S3156000D4200100000001000000010000000100000092 -S3156000D4300100000001000000010000000100000082 -S3156000D4400100000001000000010000000100000072 -S3156000D4500100000001000000010000000100000062 -S3156000D4600100000001000000010000000100000052 -S3156000D4700100000001000000010000000100000042 -S3156000D4800100000001000000010000000100000032 -S3156000D4900100000001000000010000000100000022 -S3156000D4A00100000001000000010000000100000012 -S3156000D4B00100000001000000010000000100000002 -S3156000D4C001000000010000000100000001000000F2 -S3156000D4D001000000010000000100000001000000E2 -S3156000D4E001000000010000000100000001000000D2 -S3156000D4F001000000010000000100000001000000C2 -S3156000D50001000000010000000100000001000000B1 -S3156000D51001000000010000000100000001000000A1 -S3156000D5200100000001000000010000000100000091 -S3156000D5300100000001000000010000000100000081 -S3156000D5400100000001000000010000000100000071 -S3156000D5500100000001000000010000000100000061 -S3156000D5600100000001000000010000000100000051 -S3156000D5700100000001000000010000000100000041 -S3156000D5800100000001000000010000000100000031 -S3156000D5900100000001000000010000000100000021 -S3156000D5A00100000001000000010000000100000011 -S3156000D5B00100000001000000010000000100000001 -S3156000D5C001000000010000000100000001000000F1 -S3156000D5D001000000010000000100000001000000E1 -S3156000D5E001000000010000000100000001000000D1 -S3156000D5F001000000010000000100000001000000C1 -S3156000D60001000000010000000100000001000000B0 -S3156000D61001000000010000000100000001000000A0 -S3156000D6200100000001000000010000000100000090 -S3156000D6300100000001000000010000000100000080 -S3156000D6400100000001000000010000000100000070 -S3156000D6500100000001000000010000000100000060 -S3156000D6600100000001000000010000000100000050 -S3156000D6700100000001000000010000000100000040 -S3156000D6800100000001000000010000000100000030 -S3156000D6900100000001000000010000000100000020 -S3156000D6A00100000001000000010000000100000010 -S3156000D6B00100000001000000010000000100000000 -S3156000D6C001000000010000000100000001000000F0 -S3156000D6D001000000010000000100000001000000E0 -S3156000D6E001000000010000000100000001000000D0 -S3156000D6F001000000010000000100000001000000C0 -S3156000D70001000000010000000100000001000000AF -S3156000D710010000000100000001000000010000009F -S3156000D720010000000100000001000000010000008F -S3156000D730010000000100000001000000010000007F -S3156000D740010000000100000001000000010000006F -S3156000D750010000000100000001000000010000005F -S3156000D760010000000100000001000000010000004F -S3156000D770010000000100000001000000010000003F -S3156000D780010000000100000001000000010000002F -S3156000D790010000000100000001000000010000001F -S3156000D7A0010000000100000001000000010000000F -S3156000D7B001000000010000000100000001000000FF -S3156000D7C001000000010000000100000001000000EF -S3156000D7D001000000010000000100000001000000DF -S3156000D7E001000000010000000100000001000000CF -S3156000D7F001000000010000000100000001000000BF -S3156000D80001000000010000000100000001000000AE -S3156000D810010000000100000001000000010000009E -S3156000D820010000000100000001000000010000008E -S3156000D830010000000100000001000000010000007E -S3156000D840010000000100000001000000010000006E -S3156000D850010000000100000001000000010000005E -S3156000D860010000000100000001000000010000004E -S3156000D870010000000100000001000000010000003E -S3156000D880010000000100000001000000010000002E -S3156000D890010000000100000001000000010000001E -S3156000D8A0010000000100000001000000010000000E -S3156000D8B001000000010000000100000001000000FE -S3156000D8C001000000010000000100000001000000EE -S3156000D8D001000000010000000100000001000000DE -S3156000D8E001000000010000000100000001000000CE -S3156000D8F001000000010000000100000001000000BE -S3156000D90001000000010000000100000001000000AD -S3156000D910010000000100000001000000010000009D -S3156000D920010000000100000001000000010000008D -S3156000D930010000000100000001000000010000007D -S3156000D940010000000100000001000000010000006D -S3156000D950010000000100000001000000010000005D -S3156000D960010000000100000001000000010000004D -S3156000D970010000000100000001000000010000003D -S3156000D980010000000100000001000000010000002D -S3156000D990010000000100000001000000010000001D -S3156000D9A0010000000100000001000000010000000D -S3156000D9B001000000010000000100000001000000FD -S3156000D9C001000000010000000100000001000000ED -S3156000D9D001000000010000000100000001000000DD -S3156000D9E001000000010000000100000001000000CD -S3156000D9F001000000010000000100000001000000BD -S3156000DA0001000000010000000100000001000000AC -S3156000DA10010000000100000001000000010000009C -S3156000DA20010000000100000001000000010000008C -S3156000DA30010000000100000001000000010000007C -S3156000DA40010000000100000001000000010000006C -S3156000DA50010000000100000001000000010000005C -S3156000DA60010000000100000001000000010000004C -S3156000DA70010000000100000001000000010000003C -S3156000DA80010000000100000001000000010000002C -S3156000DA90010000000100000001000000010000001C -S3156000DAA0010000000100000001000000010000000C -S3156000DAB001000000010000000100000001000000FC -S3156000DAC001000000010000000100000001000000EC -S3156000DAD001000000010000000100000001000000DC -S3156000DAE001000000010000000100000001000000CC -S3156000DAF001000000010000000100000001000000BC -S3156000DB0001000000010000000100000001000000AB -S3156000DB10010000000100000001000000010000009B -S3156000DB20010000000100000001000000010000008B -S3156000DB30010000000100000001000000010000007B -S3156000DB40010000000100000001000000010000006B -S3156000DB50010000000100000001000000010000005B -S3156000DB60010000000100000001000000010000004B -S3156000DB70010000000100000001000000010000003B -S3156000DB80010000000100000001000000010000002B -S3156000DB90010000000100000001000000010000001B -S3156000DBA0010000000100000001000000010000000B -S3156000DBB001000000010000000100000001000000FB -S3156000DBC001000000010000000100000001000000EB -S3156000DBD001000000010000000100000001000000DB -S3156000DBE001000000010000000100000001000000CB -S3156000DBF001000000010000000100000001000000BB -S3156000DC0001000000010000000100000001000000AA -S3156000DC10010000000100000001000000010000009A -S3156000DC20010000000100000001000000010000008A -S3156000DC30010000000100000001000000010000007A -S3156000DC40010000000100000001000000010000006A -S3156000DC50010000000100000001000000010000005A -S3156000DC60010000000100000001000000010000004A -S3156000DC70010000000100000001000000010000003A -S3156000DC80010000000100000001000000010000002A -S3156000DC90010000000100000001000000010000001A -S3156000DCA0010000000100000001000000010000000A -S3156000DCB001000000010000000100000001000000FA -S3156000DCC001000000010000000100000001000000EA -S3156000DCD001000000010000000100000001000000DA -S3156000DCE001000000010000000100000001000000CA -S3156000DCF001000000010000000100000001000000BA -S3156000DD0001000000010000000100000001000000A9 -S3156000DD100100000001000000010000000100000099 -S3156000DD200100000001000000010000000100000089 -S3156000DD300100000001000000010000000100000079 -S3156000DD400100000001000000010000000100000069 -S3156000DD500100000001000000010000000100000059 -S3156000DD600100000001000000010000000100000049 -S3156000DD700100000001000000010000000100000039 -S3156000DD800100000001000000010000000100000029 -S3156000DD900100000001000000010000000100000019 -S3156000DDA00100000001000000010000000100000009 -S3156000DDB001000000010000000100000001000000F9 -S3156000DDC001000000010000000100000001000000E9 -S3156000DDD001000000010000000100000001000000D9 -S3156000DDE001000000010000000100000001000000C9 -S3156000DDF001000000010000000100000001000000B9 -S3156000DE0001000000010000000100000001000000A8 -S3156000DE100100000001000000010000000100000098 -S3156000DE200100000001000000010000000100000088 -S3156000DE300100000001000000010000000100000078 -S3156000DE400100000001000000010000000100000068 -S3156000DE500100000001000000010000000100000058 -S3156000DE600100000001000000010000000100000048 -S3156000DE700100000001000000010000000100000038 -S3156000DE800100000001000000010000000100000028 -S3156000DE900100000001000000010000000100000018 -S3156000DEA00100000001000000010000000100000008 -S3156000DEB001000000010000000100000001000000F8 -S3156000DEC001000000010000000100000001000000E8 -S3156000DED001000000010000000100000001000000D8 -S3156000DEE001000000010000000100000001000000C8 -S3156000DEF001000000010000000100000001000000B8 -S3156000DF0001000000010000000100000001000000A7 -S3156000DF100100000001000000010000000100000097 -S3156000DF200100000001000000010000000100000087 -S3156000DF300100000001000000010000000100000077 -S3156000DF400100000001000000010000000100000067 -S3156000DF500100000001000000010000000100000057 -S3156000DF600100000001000000010000000100000047 -S3156000DF700100000001000000010000000100000037 -S3156000DF800100000001000000010000000100000027 -S3156000DF900100000001000000010000000100000017 -S3156000DFA00100000001000000010000000100000007 -S3156000DFB001000000010000000100000001000000F7 -S3156000DFC001000000010000000100000001000000E7 -S3156000DFD001000000010000000100000001000000D7 -S3156000DFE001000000010000000100000001000000C7 -S3156000DFF001000000010000000100000001000000B7 -S3156000E00001000000010000000100000001000000A6 -S3156000E0100100000001000000010000000100000096 -S3156000E0200100000001000000010000000100000086 -S3156000E0300100000001000000010000000100000076 -S3156000E0400100000001000000010000000100000066 -S3156000E0500100000001000000010000000100000056 -S3156000E0600100000001000000010000000100000046 -S3156000E0700100000001000000010000000100000036 -S3156000E0800100000001000000010000000100000026 -S3156000E0900100000001000000010000000100000016 -S3156000E0A00100000001000000010000000100000006 -S3156000E0B001000000010000000100000001000000F6 -S3156000E0C001000000010000000100000001000000E6 -S3156000E0D001000000010000000100000001000000D6 -S3156000E0E001000000010000000100000001000000C6 -S3156000E0F001000000010000000100000001000000B6 -S3156000E10001000000010000000100000001000000A5 -S3156000E1100100000001000000010000000100000095 -S3156000E1200100000001000000010000000100000085 -S3156000E1300100000001000000010000000100000075 -S3156000E1400100000001000000010000000100000065 -S3156000E1500100000001000000010000000100000055 -S3156000E1600100000001000000010000000100000045 -S3156000E1700100000001000000010000000100000035 -S3156000E1800100000001000000010000000100000025 -S3156000E1900100000001000000010000000100000015 -S3156000E1A00100000001000000010000000100000005 -S3156000E1B001000000010000000100000001000000F5 -S3156000E1C001000000010000000100000001000000E5 -S3156000E1D001000000010000000100000001000000D5 -S3156000E1E001000000010000000100000001000000C5 -S3156000E1F001000000010000000100000001000000B5 -S3156000E20001000000010000000100000001000000A4 -S3156000E2100100000001000000010000000100000094 -S3156000E2200100000001000000010000000100000084 -S3156000E2300100000001000000010000000100000074 -S3156000E2400100000001000000010000000100000064 -S3156000E2500100000001000000010000000100000054 -S3156000E2600100000001000000010000000100000044 -S3156000E2700100000001000000010000000100000034 -S3156000E2800100000001000000010000000100000024 -S3156000E2900100000001000000010000000100000014 -S3156000E2A00100000001000000010000000100000004 -S3156000E2B001000000010000000100000001000000F4 -S3156000E2C001000000010000000100000001000000E4 -S3156000E2D001000000010000000100000001000000D4 -S3156000E2E001000000010000000100000001000000C4 -S3156000E2F001000000010000000100000001000000B4 -S3156000E30001000000010000000100000001000000A3 -S3156000E3100100000001000000010000000100000093 -S3156000E3200100000001000000010000000100000083 -S3156000E3300100000001000000010000000100000073 -S3156000E3400100000001000000010000000100000063 -S3156000E3500100000001000000010000000100000053 -S3156000E3600100000001000000010000000100000043 -S3156000E3700100000001000000010000000100000033 -S3156000E3800100000001000000010000000100000023 -S3156000E3900100000001000000010000000100000013 -S3156000E3A00100000001000000010000000100000003 -S3156000E3B001000000010000000100000001000000F3 -S3156000E3C001000000010000000100000001000000E3 -S3156000E3D001000000010000000100000001000000D3 -S3156000E3E001000000010000000100000001000000C3 -S3156000E3F001000000010000000100000001000000B3 -S3156000E40001000000010000000100000001000000A2 -S3156000E4100100000001000000010000000100000092 -S3156000E4200100000001000000010000000100000082 -S3156000E4300100000001000000010000000100000072 -S3156000E4400100000001000000010000000100000062 -S3156000E4500100000001000000010000000100000052 -S3156000E4600100000001000000010000000100000042 -S3156000E4700100000001000000010000000100000032 -S3156000E4800100000001000000010000000100000022 -S3156000E4900100000001000000010000000100000012 -S3156000E4A00100000001000000010000000100000002 -S3156000E4B001000000010000000100000001000000F2 -S3156000E4C001000000010000000100000001000000E2 -S3156000E4D001000000010000000100000001000000D2 -S3156000E4E001000000010000000100000001000000C2 -S3156000E4F001000000010000000100000001000000B2 -S3156000E50001000000010000000100000001000000A1 -S3156000E5100100000001000000010000000100000091 -S3156000E5200100000001000000010000000100000081 -S3156000E5300100000001000000010000000100000071 -S3156000E5400100000001000000010000000100000061 -S3156000E5500100000001000000010000000100000051 -S3156000E5600100000001000000010000000100000041 -S3156000E5700100000001000000010000000100000031 -S3156000E5800100000001000000010000000100000021 -S3156000E5900100000001000000010000000100000011 -S3156000E5A00100000001000000010000000100000001 -S3156000E5B001000000010000000100000001000000F1 -S3156000E5C001000000010000000100000001000000E1 -S3156000E5D001000000010000000100000001000000D1 -S3156000E5E001000000010000000100000001000000C1 -S3156000E5F001000000010000000100000001000000B1 -S3156000E60001000000010000000100000001000000A0 -S3156000E6100100000001000000010000000100000090 -S3156000E6200100000001000000010000000100000080 -S3156000E6300100000001000000010000000100000070 -S3156000E6400100000001000000010000000100000060 -S3156000E6500100000001000000010000000100000050 -S3156000E6600100000001000000010000000100000040 -S3156000E6700100000001000000010000000100000030 -S3156000E6800100000001000000010000000100000020 -S3156000E6900100000001000000010000000100000010 -S3156000E6A00100000001000000010000000100000000 -S3156000E6B001000000010000000100000001000000F0 -S3156000E6C001000000010000000100000001000000E0 -S3156000E6D001000000010000000100000001000000D0 -S3156000E6E001000000010000000100000001000000C0 -S3156000E6F001000000010000000100000001000000B0 -S3156000E700010000000100000001000000010000009F -S3156000E710010000000100000001000000010000008F -S3156000E720010000000100000001000000010000007F -S3156000E730010000000100000001000000010000006F -S3156000E740010000000100000001000000010000005F -S3156000E750010000000100000001000000010000004F -S3156000E760010000000100000001000000010000003F -S3156000E770010000000100000001000000010000002F -S3156000E780010000000100000001000000010000001F -S3156000E790010000000100000001000000010000000F -S3156000E7A001000000010000000100000001000000FF -S3156000E7B001000000010000000100000001000000EF -S3156000E7C001000000010000000100000001000000DF -S3156000E7D001000000010000000100000001000000CF -S3156000E7E001000000010000000100000001000000BF -S3156000E7F001000000010000000100000001000000AF -S3156000E800010000000100000001000000010000009E -S3156000E810010000000100000001000000010000008E -S3156000E820010000000100000001000000010000007E -S3156000E830010000000100000001000000010000006E -S3156000E840010000000100000001000000010000005E -S3156000E850010000000100000001000000010000004E -S3156000E860010000000100000001000000010000003E -S3156000E870010000000100000001000000010000002E -S3156000E880010000000100000001000000010000001E -S3156000E890010000000100000001000000010000000E -S3156000E8A001000000010000000100000001000000FE -S3156000E8B001000000010000000100000001000000EE -S3156000E8C001000000010000000100000001000000DE -S3156000E8D001000000010000000100000001000000CE -S3156000E8E001000000010000000100000001000000BE -S3156000E8F001000000010000000100000001000000AE -S3156000E900010000000100000001000000010000009D -S3156000E910010000000100000001000000010000008D -S3156000E920010000000100000001000000010000007D -S3156000E930010000000100000001000000010000006D -S3156000E940010000000100000001000000010000005D -S3156000E950010000000100000001000000010000004D -S3156000E960010000000100000001000000010000003D -S3156000E970010000000100000001000000010000002D -S3156000E980010000000100000001000000010000001D -S3156000E990010000000100000001000000010000000D -S3156000E9A001000000010000000100000001000000FD -S3156000E9B001000000010000000100000001000000ED -S3156000E9C001000000010000000100000001000000DD -S3156000E9D001000000010000000100000001000000CD -S3156000E9E001000000010000000100000001000000BD -S3156000E9F001000000010000000100000001000000AD -S3156000EA00010000000100000001000000010000009C -S3156000EA10010000000100000001000000010000008C -S3156000EA20010000000100000001000000010000007C -S3156000EA30010000000100000001000000010000006C -S3156000EA40010000000100000001000000010000005C -S3156000EA50010000000100000001000000010000004C -S3156000EA60010000000100000001000000010000003C -S3156000EA70010000000100000001000000010000002C -S3156000EA80010000000100000001000000010000001C -S3156000EA90010000000100000001000000010000000C -S3156000EAA001000000010000000100000001000000FC -S3156000EAB001000000010000000100000001000000EC -S3156000EAC001000000010000000100000001000000DC -S3156000EAD001000000010000000100000001000000CC -S3156000EAE001000000010000000100000001000000BC -S3156000EAF001000000010000000100000001000000AC -S3156000EB00010000000100000001000000010000009B -S3156000EB10010000000100000001000000010000008B -S3156000EB20010000000100000001000000010000007B -S3156000EB30010000000100000001000000010000006B -S3156000EB40010000000100000001000000010000005B -S3156000EB50010000000100000001000000010000004B -S3156000EB60010000000100000001000000010000003B -S3156000EB70010000000100000001000000010000002B -S3156000EB80010000000100000001000000010000001B -S3156000EB90010000000100000001000000010000000B -S3156000EBA001000000010000000100000001000000FB -S3156000EBB001000000010000000100000001000000EB -S3156000EBC001000000010000000100000001000000DB -S3156000EBD001000000010000000100000001000000CB -S3156000EBE001000000010000000100000001000000BB -S3156000EBF001000000010000000100000001000000AB -S3156000EC00010000000100000001000000010000009A -S3156000EC10010000000100000001000000010000008A -S3156000EC20010000000100000001000000010000007A -S3156000EC30010000000100000001000000010000006A -S3156000EC40010000000100000001000000010000005A -S3156000EC50010000000100000001000000010000004A -S3156000EC60010000000100000001000000010000003A -S3156000EC70010000000100000001000000010000002A -S3156000EC80010000000100000001000000010000001A -S3156000EC90010000000100000001000000010000000A -S3156000ECA001000000010000000100000001000000FA -S3156000ECB001000000010000000100000001000000EA -S3156000ECC001000000010000000100000001000000DA -S3156000ECD001000000010000000100000001000000CA -S3156000ECE001000000010000000100000001000000BA -S3156000ECF001000000010000000100000001000000AA -S3156000ED000100000001000000010000000100000099 -S3156000ED100100000001000000010000000100000089 -S3156000ED200100000001000000010000000100000079 -S3156000ED300100000001000000010000000100000069 -S3156000ED400100000001000000010000000100000059 -S3156000ED500100000001000000010000000100000049 -S3156000ED600100000001000000010000000100000039 -S3156000ED700100000001000000010000000100000029 -S3156000ED800100000001000000010000000100000019 -S3156000ED900100000001000000010000000100000009 -S3156000EDA001000000010000000100000001000000F9 -S3156000EDB001000000010000000100000001000000E9 -S3156000EDC001000000010000000100000001000000D9 -S3156000EDD001000000010000000100000001000000C9 -S3156000EDE001000000010000000100000001000000B9 -S3156000EDF001000000010000000100000001000000A9 -S3156000EE000100000001000000010000000100000098 -S3156000EE100100000001000000010000000100000088 -S3156000EE200100000001000000010000000100000078 -S3156000EE300100000001000000010000000100000068 -S3156000EE400100000001000000010000000100000058 -S3156000EE500100000001000000010000000100000048 -S3156000EE600100000001000000010000000100000038 -S3156000EE700100000001000000010000000100000028 -S3156000EE800100000001000000010000000100000018 -S3156000EE900100000001000000010000000100000008 -S3156000EEA001000000010000000100000001000000F8 -S3156000EEB001000000010000000100000001000000E8 -S3156000EEC001000000010000000100000001000000D8 -S3156000EED001000000010000000100000001000000C8 -S3156000EEE001000000010000000100000001000000B8 -S3156000EEF001000000010000000100000001000000A8 -S3156000EF000100000001000000010000000100000097 -S3156000EF100100000001000000010000000100000087 -S3156000EF200100000001000000010000000100000077 -S3156000EF300100000001000000010000000100000067 -S3156000EF400100000001000000010000000100000057 -S3156000EF500100000001000000010000000100000047 -S3156000EF600100000001000000010000000100000037 -S3156000EF700100000001000000010000000100000027 -S3156000EF800100000001000000010000000100000017 -S3156000EF900100000001000000010000000100000007 -S3156000EFA001000000010000000100000001000000F7 -S3156000EFB001000000010000000100000001000000E7 -S3156000EFC001000000010000000100000001000000D7 -S3156000EFD001000000010000000100000001000000C7 -S3156000EFE001000000010000000100000001000000B7 -S3156000EFF001000000010000000100000001000000A7 -S3156000F0000100000001000000010000000100000096 -S3156000F0100100000001000000010000000100000086 -S3156000F0200100000001000000010000000100000076 -S3156000F0300100000001000000010000000100000066 -S3156000F0400100000001000000010000000100000056 -S3156000F0500100000001000000010000000100000046 -S3156000F0600100000001000000010000000100000036 -S3156000F0700100000001000000010000000100000026 -S3156000F0800100000001000000010000000100000016 -S3156000F0900100000001000000010000000100000006 -S3156000F0A001000000010000000100000001000000F6 -S3156000F0B001000000010000000100000001000000E6 -S3156000F0C001000000010000000100000001000000D6 -S3156000F0D001000000010000000100000001000000C6 -S3156000F0E001000000010000000100000001000000B6 -S3156000F0F001000000010000000100000001000000A6 -S3156000F1000100000001000000010000000100000095 -S3156000F1100100000001000000010000000100000085 -S3156000F1200100000001000000010000000100000075 -S3156000F1300100000001000000010000000100000065 -S3156000F1400100000001000000010000000100000055 -S3156000F1500100000001000000010000000100000045 -S3156000F1600100000001000000010000000100000035 -S3156000F1700100000001000000010000000100000025 -S3156000F1800100000001000000010000000100000015 -S3156000F1900100000001000000010000000100000005 -S3156000F1A001000000010000000100000001000000F5 -S3156000F1B001000000010000000100000001000000E5 -S3156000F1C001000000010000000100000001000000D5 -S3156000F1D001000000010000000100000001000000C5 -S3156000F1E001000000010000000100000001000000B5 -S3156000F1F001000000010000000100000001000000A5 -S3156000F2000100000001000000010000000100000094 -S3156000F2100100000001000000010000000100000084 -S3156000F2200100000001000000010000000100000074 -S3156000F2300100000001000000010000000100000064 -S3156000F2400100000001000000010000000100000054 -S3156000F2500100000001000000010000000100000044 -S3156000F2600100000001000000010000000100000034 -S3156000F2700100000001000000010000000100000024 -S3156000F2800100000001000000010000000100000014 -S3156000F2900100000001000000010000000100000004 -S3156000F2A001000000010000000100000001000000F4 -S3156000F2B001000000010000000100000001000000E4 -S3156000F2C001000000010000000100000001000000D4 -S3156000F2D001000000010000000100000001000000C4 -S3156000F2E001000000010000000100000001000000B4 -S3156000F2F001000000010000000100000001000000A4 -S3156000F3000100000001000000010000000100000093 -S3156000F3100100000001000000010000000100000083 -S3156000F3200100000001000000010000000100000073 -S3156000F3300100000001000000010000000100000063 -S3156000F3400100000001000000010000000100000053 -S3156000F3500100000001000000010000000100000043 -S3156000F3600100000001000000010000000100000033 -S3156000F3700100000001000000010000000100000023 -S3156000F3800100000001000000010000000100000013 -S3156000F3900100000001000000010000000100000003 -S3156000F3A001000000010000000100000001000000F3 -S3156000F3B001000000010000000100000001000000E3 -S3156000F3C001000000010000000100000001000000D3 -S3156000F3D001000000010000000100000001000000C3 -S3156000F3E001000000010000000100000001000000B3 -S3156000F3F001000000010000000100000001000000A3 -S3156000F4000100000001000000010000000100000092 -S3156000F4100100000001000000010000000100000082 -S3156000F4200100000001000000010000000100000072 -S3156000F4300100000001000000010000000100000062 -S3156000F4400100000001000000010000000100000052 -S3156000F4500100000001000000010000000100000042 -S3156000F4600100000001000000010000000100000032 -S3156000F4700100000001000000010000000100000022 -S3156000F4800100000001000000010000000100000012 -S3156000F4900100000001000000010000000100000002 -S3156000F4A001000000010000000100000001000000F2 -S3156000F4B001000000010000000100000001000000E2 -S3156000F4C001000000010000000100000001000000D2 -S3156000F4D001000000010000000100000001000000C2 -S3156000F4E001000000010000000100000001000000B2 -S3156000F4F001000000010000000100000001000000A2 -S3156000F5000100000001000000010000000100000091 -S3156000F5100100000001000000010000000100000081 -S3156000F5200100000001000000010000000100000071 -S3156000F5300100000001000000010000000100000061 -S3156000F5400100000001000000010000000100000051 -S3156000F5500100000001000000010000000100000041 -S3156000F5600100000001000000010000000100000031 -S3156000F5700100000001000000010000000100000021 -S3156000F5800100000001000000010000000100000011 -S3156000F5900100000001000000010000000100000001 -S3156000F5A001000000010000000100000001000000F1 -S3156000F5B001000000010000000100000001000000E1 -S3156000F5C001000000010000000100000001000000D1 -S3156000F5D001000000010000000100000001000000C1 -S3156000F5E001000000010000000100000001000000B1 -S3156000F5F001000000010000000100000001000000A1 -S3156000F6000100000001000000010000000100000090 -S3156000F6100100000001000000010000000100000080 -S3156000F6200100000001000000010000000100000070 -S3156000F6300100000001000000010000000100000060 -S3156000F6400100000001000000010000000100000050 -S3156000F6500100000001000000010000000100000040 -S3156000F6600100000001000000010000000100000030 -S3156000F6700100000001000000010000000100000020 -S3156000F6800100000001000000010000000100000010 -S3156000F6900100000001000000010000000100000000 -S3156000F6A001000000010000000100000001000000F0 -S3156000F6B001000000010000000100000001000000E0 -S3156000F6C001000000010000000100000001000000D0 -S3156000F6D001000000010000000100000001000000C0 -S3156000F6E001000000010000000100000001000000B0 -S3156000F6F001000000010000000100000001000000A0 -S3156000F700010000000100000001000000010000008F -S3156000F710010000000100000001000000010000007F -S3156000F720010000000100000001000000010000006F -S3156000F730010000000100000001000000010000005F -S3156000F740010000000100000001000000010000004F -S3156000F750010000000100000001000000010000003F -S3156000F760010000000100000001000000010000002F -S3156000F770010000000100000001000000010000001F -S3156000F780010000000100000001000000010000000F -S3156000F79001000000010000000100000001000000FF -S3156000F7A001000000010000000100000001000000EF -S3156000F7B001000000010000000100000001000000DF -S3156000F7C001000000010000000100000001000000CF -S3156000F7D001000000010000000100000001000000BF -S3156000F7E001000000010000000100000001000000AF -S3156000F7F0010000000100000001000000010000009F -S3156000F800010000000100000001000000010000008E -S3156000F810010000000100000001000000010000007E -S3156000F820010000000100000001000000010000006E -S3156000F830010000000100000001000000010000005E -S3156000F840010000000100000001000000010000004E -S3156000F850010000000100000001000000010000003E -S3156000F860010000000100000001000000010000002E -S3156000F870010000000100000001000000010000001E -S3156000F880010000000100000001000000010000000E -S3156000F89001000000010000000100000001000000FE -S3156000F8A001000000010000000100000001000000EE -S3156000F8B001000000010000000100000001000000DE -S3156000F8C001000000010000000100000001000000CE -S3156000F8D001000000010000000100000001000000BE -S3156000F8E001000000010000000100000001000000AE -S3156000F8F0010000000100000001000000010000009E -S3156000F900010000000100000001000000010000008D -S3156000F910010000000100000001000000010000007D -S3156000F920010000000100000001000000010000006D -S3156000F930010000000100000001000000010000005D -S3156000F940010000000100000001000000010000004D -S3156000F950010000000100000001000000010000003D -S3156000F960010000000100000001000000010000002D -S3156000F970010000000100000001000000010000001D -S3156000F980010000000100000001000000010000000D -S3156000F99001000000010000000100000001000000FD -S3156000F9A001000000010000000100000001000000ED -S3156000F9B001000000010000000100000001000000DD -S3156000F9C001000000010000000100000001000000CD -S3156000F9D001000000010000000100000001000000BD -S3156000F9E001000000010000000100000001000000AD -S3156000F9F0010000000100000001000000010000009D -S3156000FA00010000000100000001000000010000008C -S3156000FA10010000000100000001000000010000007C -S3156000FA20010000000100000001000000010000006C -S3156000FA30010000000100000001000000010000005C -S3156000FA40010000000100000001000000010000004C -S3156000FA50010000000100000001000000010000003C -S3156000FA60010000000100000001000000010000002C -S3156000FA70010000000100000001000000010000001C -S3156000FA80010000000100000001000000010000000C -S3156000FA9001000000010000000100000001000000FC -S3156000FAA001000000010000000100000001000000EC -S3156000FAB001000000010000000100000001000000DC -S3156000FAC001000000010000000100000001000000CC -S3156000FAD001000000010000000100000001000000BC -S3156000FAE001000000010000000100000001000000AC -S3156000FAF0010000000100000001000000010000009C -S3156000FB00010000000100000001000000010000008B -S3156000FB10010000000100000001000000010000007B -S3156000FB20010000000100000001000000010000006B -S3156000FB30010000000100000001000000010000005B -S3156000FB40010000000100000001000000010000004B -S3156000FB50010000000100000001000000010000003B -S3156000FB60010000000100000001000000010000002B -S3156000FB70010000000100000001000000010000001B -S3156000FB80010000000100000001000000010000000B -S3156000FB9001000000010000000100000001000000FB -S3156000FBA001000000010000000100000001000000EB -S3156000FBB001000000010000000100000001000000DB -S3156000FBC001000000010000000100000001000000CB -S3156000FBD001000000010000000100000001000000BB -S3156000FBE001000000010000000100000001000000AB -S3156000FBF0010000000100000001000000010000009B -S3156000FC00010000000100000001000000010000008A -S3156000FC10010000000100000001000000010000007A -S3156000FC20010000000100000001000000010000006A -S3156000FC30010000000100000001000000010000005A -S3156000FC40010000000100000001000000010000004A -S3156000FC50010000000100000001000000010000003A -S3156000FC60010000000100000001000000010000002A -S3156000FC70010000000100000001000000010000001A -S3156000FC80010000000100000001000000010000000A -S3156000FC9001000000010000000100000001000000FA -S3156000FCA001000000010000000100000001000000EA -S3156000FCB001000000010000000100000001000000DA -S3156000FCC001000000010000000100000001000000CA -S3156000FCD001000000010000000100000001000000BA -S3156000FCE001000000010000000100000001000000AA -S3156000FCF0010000000100000001000000010000009A -S3156000FD000100000001000000010000000100000089 -S3156000FD100100000001000000010000000100000079 -S3156000FD200100000001000000010000000100000069 -S3156000FD300100000001000000010000000100000059 -S3156000FD400100000001000000010000000100000049 -S3156000FD500100000001000000010000000100000039 -S3156000FD600100000001000000010000000100000029 -S3156000FD700100000001000000010000000100000019 -S3156000FD800100000001000000010000000100000009 -S3156000FD9001000000010000000100000001000000F9 -S3156000FDA001000000010000000100000001000000E9 -S3156000FDB001000000010000000100000001000000D9 -S3156000FDC001000000010000000100000001000000C9 -S3156000FDD001000000010000000100000001000000B9 -S3156000FDE001000000010000000100000001000000A9 -S3156000FDF00100000001000000010000000100000099 -S3156000FE000100000001000000010000000100000088 -S3156000FE100100000001000000010000000100000078 -S3156000FE200100000001000000010000000100000068 -S3156000FE300100000001000000010000000100000058 -S3156000FE400100000001000000010000000100000048 -S3156000FE500100000001000000010000000100000038 -S3156000FE600100000001000000010000000100000028 -S3156000FE700100000001000000010000000100000018 -S3156000FE800100000001000000010000000100000008 -S3156000FE9001000000010000000100000001000000F8 -S3156000FEA001000000010000000100000001000000E8 -S3156000FEB001000000010000000100000001000000D8 -S3156000FEC001000000010000000100000001000000C8 -S3156000FED001000000010000000100000001000000B8 -S3156000FEE001000000010000000100000001000000A8 -S3156000FEF00100000001000000010000000100000098 -S3156000FF000100000001000000010000000100000087 -S3156000FF100100000001000000010000000100000077 -S3156000FF200100000001000000010000000100000067 -S3156000FF300100000001000000010000000100000057 -S3156000FF400100000001000000010000000100000047 -S3156000FF500100000001000000010000000100000037 -S3156000FF600100000001000000010000000100000027 -S3156000FF700100000001000000010000000100000017 -S3156000FF800100000001000000010000000100000007 -S3156000FF9001000000010000000100000001000000F7 -S3156000FFA001000000010000000100000001000000E7 -S3156000FFB001000000010000000100000001000000D7 -S3156000FFC001000000010000000100000001000000C7 -S3156000FFD001000000010000000100000001000000B7 -S3156000FFE001000000010000000100000001000000A7 -S3156000FFF00100000001000000010000000100000097 -S315600100009DE3BF987FFFC4741100403080A2200039 -S31560010010128000F382102001C226200CC026200423 -S31560010020C0260000C026200882102002C2262008B1 -S31560010030C0260000C026000082102003C2262008C8 -S315600100409A102083DA262008A2102063C0260000B9 -S31560010050A2847FFF1CBFFFFE01000000A210206387 -S31560010060C2060000A2847FFF1CBFFFFE8210200231 -S31560010070C2262008A4062004C284802080886004E9 -S3156001008002BFFFFE01000000C0262008C026000056 -S31560010090A6102001C2848020833860148208603FE4 -S315600100A080A0600122800093A604E00182102003F3 -S315600100B0C2262008C28480208088600102800007F1 -S315600100C080886004C2860020C284802080886001A6 -S315600100D012BFFFFD8088600402BFFFFB808860025B -S315600100E002BFFFF901000000C0262008C0262004D7 -S315600100F080A4E0010480000821180080C284802069 -S315600101008208608080A06001028000AE010000006C -S3156001011021180080DA4C20F0DA260000C2848020A3 -S315600101208208600480A060010280009A01000000DC -S31560010130C284802080A4E001048000208210200116 -S31560010140A210200180A440131680000D2B18008098 -S31560010150A81420F0E00560E8901000114000247AB0 -S3156001016092100010C24D0008A2046001C226000070 -S3156001017080A4401306BFFFFA90100011C28480204C -S315600101808208608080A06001028000920100000008 -S31560010190C2848020833860148208603F80A0401347 -S315600101A002800004010000007FFFC4159010200644 -S315600101B0C284802082102001C226200CDA8480202D -S315600101C0808B60011280006801000000821020832C -S315600101D0C226200880A4E0010280005201000000CE -S315600101E0C28480208088640002BFFFFE0100000097 -S315600101F0C284802080886001028000530100000073 -S3156001020080A4E00124800012A2102000C284802014 -S315600102108330601A80A04013028000040100000050 -S315600102207FFFC3F790102009C28480208088610017 -S315600102300280005501000000C2848020808864002D -S315600102400280004D01000000A210200080A440132E -S315600102501680001203180080A81060F02B18008029 -S31560010260E08600209010001140002437D20560E836 -S31560010270C24D0008A204600180A040100280000403 -S315600102809010200C7FFFC3DE0100000080A44013A4 -S3156001029006BFFFF40100000080A4E0010480000FA6 -S315600102A001000000C28480208088610012800042C3 -S315600102B001000000C28480208330601A80A0600043 -S315600102C01280003A01000000C284802080886400A8 -S315600102D01280003301000000C284802080886001A2 -S315600102E01280001D01000000C02620083080003CFD -S315600102F0C0260000C2848020833860148208603F73 -S3156001030080A0401322BFFFFBA604E00180A4E001A8 -S3156001031034BFFF67A604FFFF10BFFF66821020038C -S31560010320C28480208088600112BFFFB20100000094 -S31560010330C28480208088600102BFFFFA010000004C -S3156001034030BFFFAC7FFFC3AE9010200810BFFFAE79 -S3156001035080A4E0017FFFC3AA9010200CC02620086C -S315600103603080001F7FFFC3A69010200710BFFF9942 -S31560010370821020837FFFC3A29010200B10BFFFB4B1 -S31560010380A21020007FFFC39E9010200A30BFFFABF2 -S315600103907FFFC39B9010200130BFFF667FFFC3982C -S315600103A09010200B30BFFFCD7FFFC3959010200EBC -S315600103B030BFFFC67FFFC3929010200D30BFFFBED6 -S315600103C07FFFC38F9010200410BFFF532118008058 -S315600103D07FFFC38B9010200530BFFF6E81C7E00899 -S315600103E091E8200017180143DA02E080900220109C -S315600103F09B2B60029812E080D023000DC202E08040 -S3156001040082006001C222E08081C3E0080100000031 -S31560010410C0220000C022204082103FFFC222200C71 -S315600104209A10200103180143DA20608081C3E00835 -S31560010430010000009DE3BF7803180144F02060CC01 -S315600104407FFFC365110040347FFFFFF290100018F3 -S31560010450A010200123180040921000104000298F3F -S31560010460901463E4A004200180A4200F04BFFFFC64 -S3156001047092100010C20620208330601CAE0060011D -S31560010480AC10200080A58017168000ED0300003FA8 -S31560010490B81063FE2B1801430300002AB61062AA46 -S315600104A0BA102001B410001CB2156080832DA00C17 -S315600104B080A5E00114800119A600401880A5A0005E -S315600104C01280010A01000000F824E008C204E00875 -S315600104D080A0401C02800004010000007FFFC34829 -S315600104E090102001F824E040C204E04080A0401C46 -S315600104F002800004010000007FFFC34190102002CA -S31560010500C204E00880A0600012BFFFFE0100000087 -S31560010510C205608080A06010028000052518014335 -S315600105207FFFC3379010200325180143A0102001D7 -S31560010530A414A080A2102020832C20029A244010AB -S31560010540D8048001A004200180A3000D028000046C -S31560010550901020047FFFC32A0100000080A4200FB1 -S3156001056004BFFFF7832C2002FA256080F624C000C1 -S31560010570F424E040C204C00080A0401B0280000455 -S31560010580A010001A7FFFC31E90102005C204E04030 -S3156001059080A0401002800004010000007FFFC318A4 -S315600105A090102005F424E008C204E00880A06000F1 -S315600105B012BFFFFE01000000C205608080A06010CE -S315600105C002800005251801437FFFC30D90102006A8 -S315600105D025180143A0102001A414A080A210201F99 -S315600105E09B2C2002C204800D80A04011A004200132 -S315600105F0A2047FFE02800004901020077FFFC300E3 -S315600106000100000080A4200704BFFFF79B2C200295 -S31560010610A4066028A210201CA0102005C204800038 -S3156001062080A04011A404A004A2047FFE02800004FD -S31560010630901020087FFFC2F201000000A0843FFFF6 -S315600106401CBFFFF701000000FA27BFE8C207BFE839 -S3156001065082006001C227BFECDA07BFEC9A03600132 -S31560010660DA27BFF0C207BFF082006001C227BFF47C -S315600106709A102006DA27BFD8C024C000C024E04003 -S31560010680FA256080A0102002E024E040E024E00822 -S3156001069083444000808861000280000501000000FB -S315600106A0805000018050000180500001C207BFD810 -S315600106B0C227BFDCDA07BFD880A3600602800004C8 -S315600106C0010000007FFFC2CE9010200AE024E008FE -S315600106D001000000C207BFD8C227BFDCDA07BFD856 -S315600106E080A3600602800004010000007FFFC2C48F -S315600106F09010200AE024E00801000000C027BFDC5A -S31560010700C207BFDC80A06000128000960100000075 -S31560010710C204E00880A0600012BFFFFE0100000075 -S31560010720C205608080A06004028000050300003F6E -S315600107307FFFC2B39010200D0300003FC024E0404C -S31560010740821063FEC224E008031801439A10200157 -S31560010750DA206080400003E801000000400003E801 -S3156001076090122F0082103FFFC224E040C204E04095 -S3156001077080A0600002BFFFFE01000000C20560802C -S3156001078080A0600202800004A01560807FFFC29C89 -S315600107909010200EC204200480A0601F0280000415 -S315600107A0010000007FFFC2969010200F400003D227 -S315600107B0A8100010400003D290023F00A010200252 -S315600107C0A4102020400003CC01000000400003CCAF -S315600107D090023F00C2056080A204200180A0401102 -S315600107E002800004901020107FFFC2850100000086 -S315600107F0832C20029A248010D8050001A0100011D4 -S3156001080080A3000D02800004901020117FFFC27C3E -S315600108100100000080A4200F04BFFFEB010000006F -S31560010820C024E040AC05A00182103FFFC224E00C69 -S3156001083080A5801706BFFF1F832DA00C80A5E00150 -S315600108400480004B01000000C0262024C20620243B -S3156001085080A060001280003F0100000021040000BA -S31560010860E0262024C206202480A0401002800005D4 -S31560010870821020017FFFC262901020148210200135 -S31560010880C2262020C0262024C206202480A0401033 -S3156001089002800004010000007FFFC25990102015FC -S315600108A0C0262020C0262024C206202480A0600005 -S315600108B0128000240100000082102002C22620203E -S315600108C0DA062020808B60020280001B0100000096 -S315600108D0C0262020C2062020808860020280002473 -S315600108E001000000308000117FFFFECA90100013E6 -S315600108F09B2DA01CDA24E024C204E0248330601C12 -S3156001090080A0401602BFFEF1010000007FFFC23CDD -S315600109109010201230BFFEED7FFFC234901000169A -S3156001092010BFFEE880A5A0007FFFC2359010201899 -S315600109303080000F7FFFC2329010201730BFFFE575 -S315600109407FFFC22F9010201610BFFFDD821020029C -S315600109507FFFC22B9010201310BFFFC2210400003D -S315600109607FFFC2279010200B30BFFF6A81C7E00866 -S3156001097091E8200003180143DA0060C8C0236008CB -S3156001098081C3E008901020009DE3BF902F180144B9 -S31560010990E205E0CCA004610027180143C2042004EB -S315600109A0F024E0C87FFFC21190102010030180007F -S315600109B0DA04200482106020808B40011280010DD0 -S315600109C001000000DA046100DA27BFF0C2046100A9 -S315600109D080A3400102800005821020017FFFC208CA -S315600109E09010200282102001C2242004DA046100E2 -S315600109F0DA27BFF0C204610080A3400102800120B2 -S31560010A0001000000C0242004DA046100DA27BFF087 -S31560010A10C204610080A340010280000580A7200016 -S31560010A207FFFC1F79010200480A72000128000B7D5 -S31560010A3080A72001B010200180A6001A1680001739 -S31560010A40A8102001108000052518004280A6001A12 -S31560010A5016800013DA04E0C8A206C0189014A174C7 -S31560010A609210001180A4601F14BFFFF9B006200127 -S31560010A704000280A01000000D805E0CCC2032040EE -S31560010A809B2D00118210400DC223204080A6001AC2 -S31560010A9006BFFFF3A206C018DA04E0C89606A003F3 -S31560010AA0C0236004833AE01FC023601098103FFFA3 -S31560010AB08330601EAA02C001D8236014D823600C5B -S31560010AC0A2102000AD3D600280A720000280008A4E -S31560010AD0A810200180A4401C168000ECC204E0C866 -S31560010AE080A7200104800015B010200080A5A00019 -S31560010AF00480001380A0001C9B2C6010832C60185E -S31560010B008210400D992C60088210400C82104011B1 -S31560010B10993D6002DA04E0C8C2236020B006200174 -S31560010B2080A72001048000059A03600480A3001851 -S31560010B3014BFFFFA0100000080A0001CB0603FFFF7 -S31560010B4080A6001A16800016C204E0C8250180003E -S31560010B5080A72000028000058206C01880A72001B8 -S31560010B60028000848206C011C2242004D804E0C831 -S31560010B70832D00189B3E4018C2232008808B60019C -S31560010B80128000859A10000CB006200180A6001A1A -S31560010B9006BFFFF180A72000C204E0C8C02060083C -S31560010BA0808E600112800009B0102000B00620011D -S31560010BB080A6201F14800005833E4018808860014E -S31560010BC022BFFFFCB006200180A72000028000063C -S31560010BD08206C01880A72001028000048216E020E8 -S31560010BE08206C01182106020C2242004DA04E0C8A3 -S31560010BF0832D0018C2236008C203600880A06000CC -S31560010C0012BFFFFE01000000C2042004808860203C -S31560010C100280009801000000DA042004030100004C -S31560010C20808B40010280009001000000DA042004FC -S31560010C3003008000808B4001028000880100000073 -S31560010C40C2042008C227BFF0DA04200CDA27BFF4F9 -S31560010C50C204E0C8992D0018D82060089A100001D6 -S31560010C60C203600880A0600012BFFFFE01000000A1 -S31560010C70C2042004808860200280007501000000A3 -S31560010C80DA04200403010000808B40010280006DBC -S31560010C9001000000DA04200403008000808B40011B -S31560010CA00280006501000000DA042008C207BFF077 -S31560010CB080A0400D02800004010000007FFFC1504A -S31560010CC09010200EDA04200CC207BFF480A0400DFC -S31560010CD002800005030180007FFFC1499010200F4B -S31560010CE003018000C224200480A7200012BFFF7A7E -S31560010CF0A204600180A4600004BFFF7B80A720017D -S31560010D0010800062C204E0C80280003D11180042F2 -S31560010D10B010200080A6001C16BFFF60A81020013D -S31560010D20108000052518004280A6001C16BFFF5CD6 -S31560010D30DA04E0C8A206C0189014A17492100011DA -S31560010D4080A4601F14BFFFF9B0062001400027533D -S31560010D5001000000D805E0CCC20320409B2D0011A4 -S31560010D608210400DC223204010BFFFF180A6001CF7 -S31560010D70F6242004D804E0C8832D00189B3E401851 -S31560010D80C2232008808B600122BFFF81B00620014B -S31560010D909A10000CC203600880A0600012BFFFFEBB -S31560010DA001000000DA04200403010000808B400189 -S31560010DB00280001E01000000DA04200403008000A6 -S31560010DC0808B40010280001601000000E4242004AB -S31560010DD0C20420048088401222BFFF6DB006200144 -S31560010DE07FFFC1079010200710BFFF69B006200181 -S31560010DF07FFFC1039010200130BFFEF39012217472 -S31560010E00400027269210001BDA05E0CC832F001BD9 -S31560010E10C223604010BFFF22DA04E0C87FFFC0F83A -S31560010E209010200630BFFFEA7FFFC0F590102005C5 -S31560010E3030BFFFE27FFFC0F29010200D30BFFF9BF5 -S31560010E407FFFC0EF9010200C30BFFF937FFFC0EC97 -S31560010E509010200B30BFFF8B7FFFC0E99010200AF6 -S31560010E6030BFFF787FFFC0E69010200930BFFF706A -S31560010E707FFFC0E39010200830BFFF687FFFC0E0AE -S31560010E809010200330BFFEE0C020600CDA05E0CC94 -S31560010E90C023604082103FFFC223600C81C7E00817 -S31560010EA091E820009DE3BF983B180144E60760CCBA -S31560010EB07FFFC0CE90102011C024E01CC204E01C4C -S31560010EC080A060000280004801000000C204E01CAE -S31560010ED08330601B80A0401A0A80003F0100000039 -S31560010EE0A410200080A4801A1A8000422D180143A4 -S31560010EF0AA102001AE15A080A32CA002E006401125 -S31560010F007FFFFD4490100013A804A0019B2D4012A1 -S31560010F10832D20108210400DC224E01C9A103FFFE1 -S31560010F20DA24E040D80600119A10201FDA23200443 -S31560010F30A0043FFFDA230000A12C20048204000CE8 -S31560010F409A102005DA206010C0206014EA2060182B -S31560010F509A100001C203601080A0600012BFFFFEFC -S31560010F6001000000A004000CC204201080A06000F3 -S31560010F7002BFFFFE01000000C0242018C205A08048 -S31560010F8080A06002028000069A04A011900480127B -S31560010F907FFFC09B900220039A04A011C205E00462 -S31560010FA080A0400D22800006A410001490048012D7 -S31560010FB07FFFC09390022004A4100014C024E01C9B -S31560010FC080A5001A0ABFFFCEA32CA0021080000ADA -S31560010FD0DA0760CC7FFFC08A9010200210BFFFC283 -S31560010FE0A41020007FFFC0869010200130BFFFB89B -S31560010FF0DA0760CCC023604082103FFFC223600CD9 -S3156001100081C7E00891E820009DE3BF987FFFC08B10 -S315600110100100000080A220000280002680A6200038 -S3156001102012800029010000007FFFC08401000000DA -S31560011030912A20047FFFC06D900220034000186D45 -S315600110400100000080A220001280002B0100000038 -S315600110504000182B01000000400017E40100000069 -S31560011060400002270100000080A6A0001280002D2A -S31560011070031801447FFFC071B41060D0912A200229 -S31560011080C206800880A060001280003080A6200021 -S3156001109012800039010000004000048E010000004A -S315600110A040001E0201000000400015C181E80000F9 -S315600110B07FFFC0491100400C80A6200002BFFFDB04 -S315600110C0010000007FFFC0F5901000197FFFC05B33 -S315600110D001000000912A20047FFFC0449002200392 -S315600110E0400018440100000080A2200002BFFFD921 -S315600110F0010000007FFFC0429010200140001800EF -S3156001110001000000400017B901000000400001FC29 -S315600111100100000080A6A00002BFFFD703180144AA -S3156001112040001DED01000000031801447FFFC0432C -S31560011130B41060D0912A2002C206800880A06000A7 -S3156001114002BFFFD480A620007FFFC03C01000000E3 -S315600111507FFFC03AA0100008912A2002C2068008CB -S315600111609FC040009010001080A6200002BFFFCBF8 -S31560011170010000007FFFC0D990100019400004559E -S315600111800100000040001DC90100000040001588F3 -S3156001119081E800000100000003180143DA0060CC19 -S315600111A09A036001DA2060CC81C3E0080100000087 -S315600111B09DE3BF987FFFC00811004044D806200810 -S315600111C082103FFFC2262004DA060000C206000034 -S315600111D080A340010280006FA60B20078210201FAA -S315600111E0C2262004C226000080A4E00002800033EB -S315600111F082100018A2100013C0206018A2847FFF1D -S3156001120012BFFFFE82006010A210200080A440136E -S315600112101680002B80A4E001A810200FA0100018F2 -S315600112207FFFBFF290100011C0242010E824201423 -S3156001123082102006C2242018DA04201080A3600FD1 -S3156001124002800004010000007FFFBFED90102003C3 -S31560011250E82420189A10200EC204201080A0400DA8 -S3156001126012BFFFFE010000009A837FFF1CBFFFFBD8 -S31560011270A4100010C204201080A0600F12BFFFFEF0 -S3156001128001000000C20420188088601002800035C9 -S3156001129082102010C224A018DA042018808B6010F6 -S315600112A01280003801000000A204600180A440138E -S315600112B006BFFFDCA004201080A4E00114800010AA -S315600112C080A4E0000280000782100018A2100013BB -S315600112D0C0206018A2847FFF12BFFFFE82006010EB -S315600112E021180144C20420CC80A060000280002D38 -S315600112F0111800441080000D921000197FFFBFBBCA -S31560011300901020088210200FC22620189A10202FD4 -S31560011310DA262028C206202080A0600D12BFFFFEBB -S3156001132080A4E00030BFFFE8400025DC90122198E0 -S315600113307FFFFC38D00420CC82102001832840191D -S31560011340DA0420CCC22360409810200FD8262014DE -S315600113508210200DC2262018A7800000308000115F -S315600113607FFFBFA79010200482102010C224A0180E -S31560011370DA042018808B601022BFFFCDA2046001C1 -S315600113807FFFBF9F9010200510BFFFC9A2046001B7 -S315600113907FFFBF9B9010200110BFFF928210201F1C -S315600113A081C7E00881E8000000000000000000003D -S315600113B000000000000000000000000000000000C6 -S315600113C001000000010000000100000001000000B2 -S315600113D0010000000100000081C3E0080100000077 -S315600113E00100000001000000010000000100000092 -S315600113F0010000000100000081C3E0080100000057 -S315600114000100000001000000010000000100000071 -S31560011410010000000100000081C3E0080100000036 -S315600114200100000001000000010000000100000051 -S31560011430010000000100000081C3E0080100000016 -S31560011440D482018090A2000916BFFFFE9612800B1E -S3156001145081C3E0089010000BD48201C090A20009FC -S3156001146016BFFFFE9612800B81C3E0089010000B39 -S3156001147090A22004C0A201A090A22004C0A201A053 -S3156001148090A22004C0A201A090A22004C0A201A043 -S31560011490C0A2018090A2200414BFFFF701000000E2 -S315600114A081C3E0080100000090A22004C0A201E00F -S315600114B090A22004C0A201E090A22004C0A201E093 -S315600114C090A22004C0A201E0C0A201C090A22004A3 -S315600114D014BFFFF70100000081C3E00801000000AE -S315600114E0981000089610000A98A3200814BFFFFF01 -S315600114F0D43B00099810000898A3200814BFFFFF89 -S31560011500C01B00099810000898A32004D60300099F -S3156001151080A2C00A1280000698A3200434BFFFFD92 -S31560011520D603000981C3E0089010200090102001C5 -S31560011530981000089610000A98A3200814BFFFFFB0 -S31560011540D43B00099810000898A32004D60300092B -S3156001155080A2C00A1280000698A3200434BFFFFD52 -S31560011560D603000981C3E008901020009010200185 -S315600115709810000898A32004D2A301A0DA8301A0E1 -S3156001158080A340091280000698A3200414BFFFFCC3 -S31560011590D2A301A081C3E008901020009010200121 -S315600115A09A1000089AA3400AD6A34180D883418045 -S315600115B0981B000B988B0009128000069AA3400ABB -S315600115C014BFFFFBD6A3418081C3E00890102000C1 -S315600115D0901020019A1000089AA3400BD8A241CD21 -S315600115E0C48241CD8418800C8488800A12800006EA -S315600115F09AA3400B14BFFFFBD8A241CD81C3E0087B -S3156001160090102000901020010100000001000000F0 -S31560011610010000001318008092126138D402400064 -S3156001162080A2A0011280000780A0A002D40240001F -S31560011630D4024000952AA002108000050100000036 -S315600116403280000381E80000D402400081E000009E -S3156001165093480000818A602023180045A2146278AD -S31560011660A40460040100000081C4400081CC8000B4 -S3156001167091D0200191D020012680000590002001A3 -S3156001168090222001912A2001912A200281C3E0083B -S315600116900100000081C3E008D082004081C3E008F8 -S315600116A0D2A2004081C3E008D082018081C3E008F4 -S315600116B0D2A2018081C3E008D08201A081C3E00883 -S315600116C0D2A201A081C3E008D08201C081C3E00833 -S315600116D0D2A201C081C3E008D08201E081C3E008E3 -S315600116E0D2A201E081C3E008D2A2000081C3E00872 -S315600116F0D082000081C3E00891480000818A000021 -S3156001170001000000010000000100000081C3E00843 -S315600117100100000081C3E008C0A000A081C3E00809 -S31560011720C0A000C081C3E008D01A0000010000001B -S31560011730010000000100000001000000010000003E -S315600117409DE3BF701318006DCD1A6160CD3FBFE098 -S31560011750111800801B180080C91B61E0C51A21D8C9 -S31560011760C11FBFE095A088C4D53FBFF0D91FBFF0A8 -S3156001177003180080D11861E881AB0A4801000000B6 -S315600117800380002BC13FBFD8F91FBFD8B5A0055C48 -S31560011790F53FBFF0ED1FBFF0F11FBFF0A5A589585A -S315600117A0E91FBFE0A1A488D41518006DA1A001307E -S315600117B0DD1AA16881AC0ACE010000000D80002D02 -S315600117C0F53FBFD0C51FBFD083A018C291A04921E4 -S315600117D099A01928D51FBFE091A308CA1718006DF3 -S315600117E091A00128FD1AE17081AA0ADE01000000BC -S315600117F00D80002F01000000400001AE01000000D5 -S315600118004000020C0100000080A22000128000311D -S3156001181001000000400002610100000080A220007A -S315600118200280003501000000308000317FFFBE7408 -S3156001183090102001F91FBFD8B5A0055CF53FBFF038 -S31560011840ED1FBFF0F11FBFF0A5A58958E91FBFE0E5 -S31560011850A1A488D41518006DA1A00130DD1AA16874 -S3156001186081AC0ACE010000001BBFFFD7F53FBFD098 -S315600118707FFFBE6390102002C51FBFD083A018C230 -S3156001188091A0492199A01928D51FBFE091A308CA43 -S315600118901718006D91A00128FD1AE17081AA0ADE70 -S315600118A0010000001BBFFFD5010000007FFFBE5491 -S315600118B0901020034000017F01000000400001DD1F -S315600118C00100000080A2200002BFFFD301000000DA -S315600118D07FFFBE4B010000004000023001000000A6 -S315600118E080A2200002800004010000007FFFBE4448 -S315600118F09010200581C7E00881E800009DE3BF984C -S315600119007FFFFF7D210000047FFFFF7D90120010A5 -S315600119107FFFFF79B0102000808A00100280000BE3 -S315600119209010200040000267010000007FFFBE4367 -S3156001193001000000912A20047FFFBE2C900220083E -S315600119407FFFFF800100000081C7E00881E8000099 -S315600119501918008098132178111002009210200046 -S31560011960150FF76C9412A3D7D03B0000D42320083F -S31560011970C11B0000C503200887A089220100000061 -S3156001198089A005408DA0892281A8CA260100000090 -S3156001199033800003901020009010200181C3E0087D -S315600119A001000000C11A0000C51A400089A0084262 -S315600119B081C3E008C93A8000C11A0000C51A400017 -S315600119C089A0094281C3E008C93A800019180080DC -S315600119D098132178D0230000D2232008C103000088 -S315600119E0C303200885A00D2181C3E008C53A8000A4 -S315600119F0C11A0000C51A400089A009C2C93A80000F -S31560011A0081C3E00801000000C11A000085A00540FD -S31560011A10C53A400081C3E0080100000001000000F2 -S31560011A20010000000100000001000000010000004B -S31560011A30010000000100000001000000010000003B -S31560011A40010000000100000001000000010000002B -S31560011A50010000000100000001000000010000001B -S31560011A60010000000100000001000000010000000B -S31560011A7001000000010000000100000001000000FB -S31560011A8001000000010000000100000001000000EB -S31560011A9001000000010000000100000081A000209B -S31560011AA081C3E00801000000C11A000081C3E0089B -S31560011AB001000000C51A000089A009C2C93A4000A8 -S31560011AC081C3E0080100000013180080921261785A -S31560011AD0D0224000C102400085A01900C53A4000ED -S31560011AE081C3E008D01A4000131800809212617811 -S31560011AF0D0224000C102400085A01880C522400066 -S31560011B0081C3E008D0024000151800809412A178C4 -S31560011B10D03A8000C11A800085A01A40C522800093 -S31560011B2081C3E008D0028000151800809412A17864 -S31560011B30D0228000C102800085A01A20C5228000C3 -S31560011B4081C3E008D0028000151800809412A17844 -S31560011B50D0228000C102800081A01920C13A800094 -S31560011B6081C3E008D01A8000151800809412A1780C -S31560011B70D03A8000C11A800081A018C0C1228000BD -S31560011B8081C3E008D0028000151800809412A17804 -S31560011B90D0228000CB0280008DA00025CD2280005E -S31560011BA081C3E008D0028000151800809412A178E4 -S31560011BB0D0228000CB0280008DA000A5CD228000BE -S31560011BC081C3E008D0028000151800809412A178C4 -S31560011BD0D0228000CB0280008DA00125CD2280001D -S31560011BE081C3E008D002800019180080981321781B -S31560011BF0D03B0000D43B2008C11B0000C51B200858 -S31560011C0081A80A420100000033800009901020007B -S31560011C1029800007901020012D8000059010200278 -S31560011C202F8000039010200391D0200081C3E0082B -S31560011C30010000001918008098132178D03B00003C -S31560011C40D43B2008C11B0000C51B200881A80AC21D -S31560011C500100000033BFFFF69010200029BFFFF49A -S31560011C60901020012DBFFFF2901020022FBFFFF0D0 -S31560011C709010200391D020001918008098132178C4 -S31560011C80D0230000D2232008C1030000C30320082B -S31560011C9081A80A210100000033BFFFE590102000F2 -S31560011CA029BFFFE3901020012DBFFFE190102002B4 -S31560011CB02FBFFFDF9010200391D0200019180080FC -S31560011CC098132178D0230000D2232008C103000095 -S31560011CD0C303200881A80AA10100000033BFFFD415 -S31560011CE09010200029BFFFD2901020012DBFFFD098 -S31560011CF0901020022FBFFFCE9010200391D02000BC -S31560011D001918008098132178D03B0000D43B200835 -S31560011D10C11B0000C51B200889A008C2C93B000081 -S31560011D2081C3E008D01B0000191800809813217840 -S31560011D30D0230000D2232008C1030000C30320087A -S31560011D4085A00821C523000081C3E008D0030000F7 -S31560011D501918008098132178D0230000D223200817 -S31560011D60C1030000C303200885A008A1C5230000A4 -S31560011D7081C3E008D0030000191800809813217808 -S31560011D80D0230000D2232008C1030000C30320082A -S31560011D9085A00921C523000081C3E008D0030000A6 -S31560011DA01918008098132178D0230000D2232008C7 -S31560011DB0C1030000C303200885A009A1C523000053 -S31560011DC081C3E008D00300001918008098132178B8 -S31560011DD0D0230000C103000083A00520C3230000B7 -S31560011DE081C3E008D003000013180080921261904D -S31560011DF0C51A6008C11A400089A0084091A108C2AD -S31560011E0095A209C495A2894281C3E008D53A00002A -S31560011E1013180080921261B0C1024000C3026004CF -S31560011E2085A0082087A088A189A0C9A289A10921C6 -S31560011E3081C3E008C92200009610200213180080B1 -S31560011E4092126190151800809412A190D5024000FB -S31560011E50D7028000D5220000D80200001318008046 -S31560011E60921261B096A2E00112BFFFF90100000073 -S31560011E7081C3E0080100000013180080921261908E -S31560011E80151800809412A1B0C1028000C51A6010B5 -S31560011E9083A0082089A088C08BA109A18DA10942D0 -S31560011EA08FA1492691A0054681C3E008D13A000079 -S31560011EB01118008090122188C11A0000C51A00000D -S31560011EC0C91A0000CD1A0000D11A0000D51A000007 -S31560011ED0D91A0000DD1A0000E11A0000E51A0000B7 -S31560011EE0E91A0000ED1A0000F11A0000F51A000067 -S31560011EF0F91A0000FD1A000081C3E0080100000024 -S31560011F0029180080A815215827180080A614E1C059 -S31560011F10C12CC000E604C000A134E00EA00C20076D -S31560011F20A0A42002AE1020002D180080AC15A1C01F -S31560011F30AE05E001AC05A008C1358000C12D0000E9 -S31560011F40EA050000AB35600DAA8D600112BFFFF98D -S31560011F5001000000808000100280002F2B3C1FFFD3 -S31560011F60AA1563FFA60CC015E6250000C10D000089 -S31560011F702B180080AA1561CC2D180047AC15A3E07B -S31560011F80AE25E001E0054000E025800081D8200013 -S31560011F9001000000010000000100000001000000D6 -S31560011FA001000000010000000100000001000000C6 -S31560011FB001000000010000000100000001000000B6 -S31560011FC001000000010000000100000001000000A6 -S31560011FD00100000001000000010000000100000096 -S31560011FE00000000080A5C00012BFFFE6AA056008D8 -S31560011FF0C12D0000E60500002B03C000A614C01524 -S31560012000E6250000C10D000081C4400081CC80003E -S315600120100100000081C4800081CCA00401000000A1 -S315600120200100000081C3E008915800000100000032 -S315600120301118008090122158C10A0000C0220000C8 -S31560012040C10A0000C12A0000D40200001300038007 -S31560012050942A800980A0000A3280004D90102003E6 -S315600120601303E000D223BFA0C023BFA4C10BBFA04E -S31560012070C023BFA0151800809412A170C102800010 -S315600120800100000001000000C10BBFA0C10BBFA48D -S3156001209083A00520C12BBFA0D003BFA0808A2200E8 -S315600120A02280003B901020049010200015180080BB -S315600120B09412A140C5028000C902A008D102A00CF9 -S315600120C01318008092126170C70240008DA0894486 -S315600120D081A98AC801000000038000050100000093 -S315600120E0901020011080002A01000000C5028000C6 -S315600120F0C902A008D102A00C131800809212617067 -S31560012100CB0240008DA0894481A98AC801000000E4 -S315600121100380000501000000901020011080001C62 -S315600121200100000025180080A414A168C11C80006C -S31560012130C51C800080A000003280000685A008C012 -S3156001214081A80AC20100000013800003010000009B -S31560012150901020050100000025180080A414A168D4 -S31560012160C11C8000C51C800080A000000100000029 -S315600121703280000685A008C081A80AC2010000005D -S315600121801380000301000000901020070100000089 -S3156001219081C3E00801000000901020019544000011 -S315600121A09532A01E940AA00380A28000028000409E -S315600121B09010200080A2A0030280003D13180080C9 -S315600121C0921261F0C11A4000C51A6008FD026018DA -S315600121D095A0003E99A0003E9DA0003E170000C05C -S315600121E09612E078A182C0000100000001000000A3 -S315600121F00100000001000000010000000100000074 -S3156001220081A0002083A0002195A0002A99A0002C1E -S315600122109DA0002E170000C09612E07CA182C0002E -S315600122200100000001000000010000000100000043 -S31560012230010000000100000085A0002287A00023A4 -S31560012240A180000001000000010000000100000003 -S3156001225001000000010000000100000089A00842A1 -S31560012260A9A2883ED93A4000DD224000CD1A60100D -S31560012270D102600881A90A46010000000380000CB2 -S3156001228081AD0A2801000000038000099344000023 -S315600122909332601B920A60079010200080A2A00111 -S315600122A002800003902260079022600481C3E008E7 -S315600122B001000000C12BBFA081C3E008D003BFA00D -S315600122C0D023BFA081C3E008C10BBFA001000000FD -S315600122D09DE3BF6040001B17B0102000913A200AB1 -S315600122E0900A200380A220011280111101000000D2 -S315600122F07FFFBBBE9010200D190C40291B23CD1BFF -S315600123009410200096102000981320069A13609B63 -S31560012310D43FBFE0D43FBFC0D43FBFE87FFFFF4299 -S31560012320D83FBFF0900A3000032804009012208045 -S315600123308210600FC22200001B1800479002200421 -S315600123409A1363009A234008191000009B3B6002B0 -S31560012350032784009A13400C82106010C222200465 -S315600123607FFFFED4DA2200007FFFFFD61103E00073 -S315600123702D180080C025A1C07FFFFDD490102000DC -S31560012380809200091280000601000000C205A1C00A -S3156001239080A0600002800004010000007FFFBB98FE -S315600123A09010200B7FFFFDC990103FFA03300600A5 -S315600123B080A200011280000480A2600002800EDB10 -S315600123C0010000007FFFBB8E9010200B7FFFFDBFD9 -S315600123D09010201403100D0080A2000112800004E9 -S315600123E080A2600002800ECC010000007FFFBB84EA -S315600123F09010200B7FFFFDB5901020620310162010 -S3156001240080A200011280000480A2600002800EBDDD -S31560012410010000007FFFBB7A9010200B7FFFFDB3A8 -S31560012420901020050310280080A20001128000068A -S3156001243001000000C205A1C080A060000280000406 -S31560012440010000007FFFBB6E9010200B7FFFFF9D98 -S315600124501103C000111C00007FFFFDAC921020002B -S31560012460031FFFFF821063FF80A200011280000A32 -S315600124701B000070C205A1C09A13601F19000010ED -S315600124808208400D9813201080A0400C0280000540 -S31560012490113C00007FFFBB5A9010200C113C0000DC -S315600124A07FFFFD9A921020000320000080A20001A8 -S315600124B01280000A1B000070C205A1C09A13601F3A -S315600124C0190000108208400D9813201080A0400C5E -S315600124D002800004010000007FFFBB499010200CC0 -S315600124E0C025A1C0901020007FFFFD8892102000BA -S315600124F080A220001280000601000000C205A1C072 -S3156001250080A0600002800005110144007FFFBB3C92 -S315600125109010200C110144001328400090122302F0 -S315600125207FFFFD7A9212600180A220001280000670 -S3156001253001000000C205A1C080A0600022800005E4 -S315600125401111FFFF7FFFBB2E9010200C1111FFFFB1 -S315600125507FFFFD76901223FF0300007F821063FFE9 -S3156001256080A200011280000601000000C205A1C020 -S3156001257080A06000028000052F1800857FFFBB20C8 -S315600125809010200C2F1800857FFFFD60D01DE0C8DC -S31560012590031FFFFF821063FF80A200011280000A01 -S315600125A01B000070C205A1C09A13601F19000010BC -S315600125B08208400D9813201080A0400C028000050F -S315600125C0031800857FFFBB0E9010200C0318008551 -S315600125D0D01860D8C025A1C07FFFFD4C0100000066 -S315600125E00320000080A200011280000A1B00007017 -S315600125F0C205A1C09A13601F190000108208400D20 -S315600126009813201080A0400C0280000519180085DF -S315600126107FFFBAFB9010200C19180085C025A1C058 -S315600126207FFFFD3AD01B20B8031FFFFF821063FFB7 -S3156001263080A200011280000A1B000070C205A1C0C1 -S315600126409A13601F190000108208400D981320101C -S3156001265080A0400C02800005331800857FFFBAE830 -S315600126609010200C33180085C025A1C07FFFFD277F -S31560012670D01E60F0C205A1C08330600E820860037F -S3156001268080A0600202800004211800807FFFBADC0E -S315600126909010200C7FFFFF0B1103C000111158042D -S315600126A0C02421C07FFFFD299012223403102B0024 -S315600126B08210624680A2000112800005032000009C -S315600126C080A2400102800FC5010000007FFFBACCE5 -S315600126D09010200D113C02AF7FFFFD1C901220D19E -S315600126E0033180558210639A80A200011280000531 -S315600126F00308000080A2400102800FDB0100000098 -S315600127007FFFBABF9010200D1111FC007FFFFD17EE -S3156001271092102000031FE00080A200011280000ACF -S315600127201B000070C205A1C09A13601F190000103A -S315600127308208400D9813200880A0400C0280000595 -S3156001274011207C017FFFBAAE9010200D11207C0113 -S31560012750C025A1C0901220307FFFFD041300010047 -S315600127600320000080A200011280000A1B00007095 -S31560012770C205A1C09A13601F190000108208400D9E -S315600127809813200480A0400C028000040100000020 -S315600127907FFFBA9B9010200DC025A1C0901020002C -S315600127A07FFFFCF29210200080A2200012800006BA -S315600127B001000000C205A1C080A060000280000483 -S315600127C0010000007FFFBA8E9010200D7FFFFCE7AD -S315600127D0D01DE0C803180085DA0060C080A2000D34 -S315600127E01280000601000000C205A1C080A0600041 -S315600127F0028000051B1800857FFFBA819010200DAD -S315600128001B1800857FFFFCD9D01B60D0031FE00039 -S3156001281080A200011280000601000000C205A1C06D -S3156001282080A0600002800005031800857FFFBA74EE -S315600128309010200D031800857FFFFCCCD01860B87E -S3156001284003180085DA0060A880A2000D1280000AD4 -S315600128501B000070C205A1C09A13601F1900001009 -S315600128608208400D9813201080A0400C028000045D -S31560012870010000007FFFBA629010200DC025A1C043 -S315600128807FFFFCBAD01E60F0C205A1C08330600E26 -S315600128908208600380A06002028000042318008021 -S315600128A07FFFBA579010200D7FFFFE861103E0006F -S315600128B02108C6AF901420DEC02461C07FFFFCB33F -S315600128C0A01420DE80A20010128000060100000024 -S315600128D0C20461C080A06000028000052108C6AF05 -S315600128E07FFFBA479010200E2108C6AF7FFFFCB765 -S315600128F0901420DEA01420DE80A200101280000653 -S3156001290001000000C205A1C080A060002280000510 -S315600129101128C6AF7FFFBA3A9010200E1128C6AFB4 -S315600129207FFFFCAA901220DE0308C6AF821060DE2C -S3156001293080A200011280000601000000C205A1C04C -S3156001294080A06000228000051108C6AF7FFFBA2C07 -S315600129509010200E1108C6AF7FFFFC94901220DE06 -S315600129600328C6AF821060DE80A2000112800006D5 -S3156001297001000000C205A1C080A0600022800005A0 -S315600129801128C6AF7FFFBA1E9010200E1128C6AF60 -S315600129907FFFFC86901220DE0308C6AF821060DEE0 -S315600129A080A200011280000601000000C205A1C0DC -S315600129B080A0600002800004010000007FFFBA1061 -S315600129C09010200E7FFFFE3F1103E00011151BC022 -S315600129D01310C82115351BC01710C8219012210389 -S315600129E0921261419412A1037FFFFC809612E1412C -S315600129F080A220021280000601000000C205A1C06B -S31560012A0080A060000280000511351BC07FFFB9FC04 -S31560012A109010200F11351BC01310C82115151BC04E -S31560012A201710C82190122103921261419412A103D9 -S31560012A307FFFFC6E9612E14180A2200112800006A2 -S31560012A4001000000C205A1C080A0600002800005EF -S31560012A50901020007FFFB9EA9010200F901020009F -S31560012A6092102000152000007FFFFC609610200068 -S31560012A7080A220001280000601000000C205A1C0EC -S31560012A8080A0600002800005191800857FFFB9DC0F -S31560012A909010200F191800851B180085D01B20D0B7 -S31560012AA07FFFFC52D41B60D880A2200212800006F0 -S31560012AB001000000C205A1C080A06000028000057F -S31560012AC011151BC07FFFB9CE9010200F11151BC0C9 -S31560012AD01310C82115151BE81710C8219012210380 -S31560012AE0921261419412A1037FFFFC409612E1416B -S31560012AF080A220011280000601000000C205A1C06B -S31560012B0080A060000280000511151BE87FFFB9BC3B -S31560012B109010200F11151BE81310C82115151BC045 -S31560012B201710C82190122103921261419412A103D8 -S31560012B307FFFFC2E9612E14180A2200212800006E0 -S31560012B4001000000C205A1C080A0600002800005EE -S31560012B5011151BE87FFFB9AA9010200F11151BE80C -S31560012B601310C82190122103921261417FFFFC1F4D -S31560012B70D41DE0C880A22003128000060100000077 -S31560012B80C205A1C080A0600002800005031800850F -S31560012B907FFFB99B9010200F0318008511151BE864 -S31560012BA01310C82190122103921261417FFFFC0F1D -S31560012BB0D41860B880A220031280000A1B0000703E -S31560012BC0C205A1C09A13601F190000108208400D4A -S31560012BD09813201080A0400C0280000511151BE897 -S31560012BE07FFFB9879010200F11151BE81310C821BC -S31560012BF0C025A1C090122103921261417FFFFBFBA8 -S31560012C00D41E60F080A2200212800006010000003E -S31560012C10C205A1C080A060000280000515151BE8F1 -S31560012C207FFFB9779010200F15151BE81710C82183 -S31560012C30D01E60F09412A1037FFFFBEC9612E14176 -S31560012C4080A220011280000601000000C205A1C019 -S31560012C5080A060000280000515151BE87FFFB9683A -S31560012C609010200F15151BE81710C821D01DE0C85C -S31560012C709412A1037FFFFBDD9612E14180A220033E -S31560012C801280000601000000C205A1C080A060009C -S31560012C9002800005191800857FFFB9599010200F31 -S31560012CA01918008515151BE81710C821D01B20B807 -S31560012CB09412A1037FFFFBCD9612E14180A220030E -S31560012CC01280000A1B000070C205A1C09A13601F22 -S31560012CD0190000108208400D9813201080A0400C46 -S31560012CE00280000511151BC07FFFB9459010200FAA -S31560012CF011151BC01310C82115351BC01710C8212B -S31560012D00C025A1C090122103921261419412A103C0 -S31560012D107FFFFBC99612E14180A220021280000664 -S31560012D2001000000C205A1C080A06000028000050C -S31560012D3011351BC07FFFB9329010200F11351BC0B2 -S31560012D401310C82115151BC01710C8219012210335 -S31560012D50921261419412A1037FFFFBB79612E14182 -S31560012D6080A220011280000601000000C205A1C0F8 -S31560012D7080A0600002800005901020007FFFB920CE -S31560012D809010200F90102000921020001520000056 -S31560012D907FFFFBA99610200080A22000128000060A -S31560012DA001000000C205A1C080A06000028000058C -S31560012DB01B1800857FFFB9129010200F1B18008524 -S31560012DC003180085D01B60D07FFFFB9BD41860D8A9 -S31560012DD080A220021280000601000000C205A1C087 -S31560012DE080A060000280000511151BC07FFFB90439 -S31560012DF09010200F11151BC01310C82115151BE863 -S31560012E001710C82190122103921261419412A103F5 -S31560012E107FFFFB899612E14180A2200112800006A4 -S31560012E2001000000C205A1C080A06000028000050B -S31560012E3011151BE87FFFB8F29010200F11151BE8E2 -S31560012E401310C82115151BC01710C8219012210334 -S31560012E50921261419412A1037FFFFB779612E141C1 -S31560012E6080A220021280000601000000C205A1C0F6 -S31560012E7080A060000280000511151BE87FFFB8E0A5 -S31560012E809010200F11151BE81310C8219012210311 -S31560012E90921261417FFFFB68D41DE0C880A22003C6 -S31560012EA01280000A1B000070C205A1C09A13601F40 -S31560012EB0190000108208400D9813201080A0400C64 -S31560012EC002800005191800857FFFB8CD9010200F8C -S31560012ED01918008511151BE81310C82190122103DA -S31560012EE0921261417FFFFB54D41B20B880A220035C -S31560012EF01280000A1B000070C205A1C09A13601FF0 -S31560012F00190000108208400D9813201080A0400C13 -S31560012F100280000511151BE87FFFB8B99010200FDC -S31560012F2011151BE81310C821C025A1C090122103F9 -S31560012F30921261417FFFFB40D41E60F080A22002A5 -S31560012F401280000601000000C205A1C080A06000D9 -S31560012F500280000515151BE87FFFB8A99010200FA8 -S31560012F6015151BE81710C821D01E60F09412A10335 -S31560012F707FFFFB319612E14180A22001128000069B -S31560012F8001000000C205A1C080A0600002800005AA -S31560012F9015151BE87FFFB89A9010200F15151BE8D1 -S31560012FA01710C821D01DE0C89412A1037FFFFB2230 -S31560012FB09612E14180A220031280000A1B00007074 -S31560012FC0C205A1C09A13601F190000108208400D46 -S31560012FD09813201080A0400C028000051B18008504 -S31560012FE07FFFB8879010200F1B18008515151BE809 -S31560012FF01710C821D01B60B89412A1037FFFFB0E86 -S315600130009612E14180A220031280000A1B00007023 -S31560013010C205A1C09A13601F190000108208400DF5 -S315600130209813201080A0400C02800005110048EA28 -S315600130307FFFB8739010200F110048EA13048D15B5 -S31560013040C025A1C0901223CD7FFFFB0C921262783E -S3156001305080A220011280000601000000C205A1C005 -S3156001306080A0600002800005110048EA7FFFB86415 -S315600130709010200F110048EA13048D15901223CD8C -S315600130807FFFFB0F9212627880A2200112800006F8 -S3156001309001000000C205A1C080A06000028000049A -S315600130A0010000007FFFB8569010200FC025A1C017 -S315600130B07FFFFC841103C000291801449007BFF00B -S315600130C09207BFE87FFFFA3894152120C207BFF047 -S315600130D0DA05212080A0400D12800007821521208B -S315600130E0DA006004C207BFF480A0400D02800D596A -S315600130F0010000007FFFB84290102010371800854C -S315600131009007BFF09216E0E07FFFFA279415212021 -S31560013110C206E0E0DA05212080A340018215212064 -S31560013120128000079816E0E0DA006004C20320040A -S3156001313080A3400102800D42010000007FFFB8308C -S31560013140901020109007BFF09215E0C87FFFFA1625 -S3156001315094152120C205E0C8DA05212080A340012B -S3156001316082152120128000079815E0C8DA006004F4 -S31560013170C203200480A3400102800D2C01000000DF -S315600131807FFFB81F9010201003180085921060B859 -S315600131909007BFF07FFFFA04941521201B00007091 -S315600131A0C205A1C09A13601F190000108208400D64 -S315600131B09813201080A0400C02800004211801445D -S315600131C07FFFB80F9010201003180080C02061C0E7 -S315600131D07FFFFC3C90102000131800859414212079 -S315600131E0921260B87FFFF9F09007BFF03918008539 -S315600131F0C20720B0DA04212080A340019414212063 -S3156001320012800007821720B0DA02A004C2006004AF -S3156001321080A3400102800004010000007FFFB7F82F -S31560013220901020107FFFFC271103C0009007BFF0AC -S31560013230921660F07FFFF9DC94152120C205A1C0CA -S315600132408330600E8208600380A060022118014409 -S3156001325002800004231800807FFFB7E990102010D8 -S3156001326094142120C02461C09007BFE87FFFF9CE86 -S315600132709207BFF0DA042120C207BFF080A34001A4 -S315600132801280000794142120DA02A004C207BFF459 -S3156001329080A3400102800D21010000007FFFB7D8A5 -S315600132A0901020109007BFE89216E0E07FFFF9BE0C -S315600132B094152120C206E0E0DA05212080A34001B1 -S315600132C082152120128000079816E0E0DA0060047A -S315600132D0C203200480A3400102800D0B010000009F -S315600132E07FFFB7C7901020109007BFE89215E0C81E -S315600132F07FFFF9AD94152120C205E0C8DA052120CA -S3156001330080A3400182152120128000079815E0C82C -S31560013310DA006004C203200480A3400102800CF538 -S31560013320010000007FFFB7B69010201019180085C4 -S31560013330921320B89007BFE87FFFF99B941521206F -S315600133401B000070C205A1C09A13601F190000100E -S315600133508208400D9813201080A0400C0280000462 -S31560013360211801447FFFB7A6901020107FFFFBD57F -S31560013370901020001318008594142120921260B8D1 -S315600133807FFFF9899007BFE8C20720B0DA042120E0 -S3156001339080A340019414212012800007821720B077 -S315600133A0DA02A004C200600480A340010280000426 -S315600133B0010000007FFFB792901020107FFFFBC1D4 -S315600133C01103C0009007BFE8921660F07FFFF9769F -S315600133D094152120C205A1C08330600E8208600366 -S315600133E080A0600221180144028000042318008035 -S315600133F07FFFB7839010201094142120C02461C0F0 -S315600134009016E0E07FFFF9689207BFF0C206E0E040 -S31560013410DA04212080A34001941421201280000740 -S315600134208216E0E0DA02A004C200600480A34001D3 -S3156001343002800CAB010000007FFFB7719010201075 -S315600134409016E0E09207BFE87FFFF95794152120B7 -S31560013450C206E0E0DA05212080A340018215212021 -S31560013460128000079816E0E0DA006004C2032004C7 -S3156001347080A3400102800C95010000007FFFB760C8 -S31560013480901020101B180085901360D092100008D0 -S315600134907FFFF9459415212019180085C20320D0B4 -S315600134A0DA05212080A340018215212012800007C0 -S315600134B0981320D0DA006004C203200480A340017F -S315600134C002800C7D010000007FFFB74D9010201037 -S315600134D01B180085901360D8921000087FFFF9329F -S315600134E09415212019180085C20320D8DA052120F8 -S315600134F080A340018215212012800007981320D8ED -S31560013500DA006004C203200480A3400102800C65D6 -S31560013510010000007FFFB73A901020101B1800854C -S3156001352003180085901360D8921060D07FFFF91E52 -S31560013530941521201B000070C205A1C09A13601F5B -S31560013540190000108208400D9813201080A0400CCD -S3156001355002800004211801447FFFB72990102010D2 -S315600135607FFFFB5890102000111800851318008505 -S3156001357094142120901220D87FFFF90B921260D00B -S31560013580C20720B0DA04212080A3400194142120CF -S3156001359012800007821720B0DA02A004C20060041C -S315600135A080A3400102800004010000007FFFB71480 -S315600135B0901020107FFFFB431103C000191800858E -S315600135C01B180085901320D0921360D8C025A1C026 -S315600135D07FFFF8F594152120C20720B0DA05212076 -S315600135E080A340018215212012800007981720B020 -S315600135F0DA006004C203200480A3400102800C1F2C -S315600136001B0000707FFFB6FE901020109016E0E060 -S31560013610921660F07FFFF8E494152120C205A1C0DF -S315600136208330600E8208600380A060022118014425 -S3156001363002800004231800807FFFB6F190102010ED -S3156001364094142120C02461C09015E0C87FFFF8D68C -S315600136509207BFF0C205E0C8DA04212080A34001C9 -S3156001366094142120128000078215E0C8DA02A004B2 -S31560013670C200600480A3400102800B9C010000002F -S315600136807FFFB6DF901020109015E0C89207BFE863 -S315600136907FFFF8C594152120C205E0C8DA0521200F -S315600136A080A3400182152120128000079815E0C889 -S315600136B0DA006004C203200480A3400102800B8605 -S315600136C0010000007FFFB6CE901020109015E0C873 -S315600136D09216E0E07FFFF8B494152120C205E0C898 -S315600136E0DA05212080A3400182152120128000077E -S315600136F09815E0C8DA006004C203200480A3400183 -S3156001370002800B70010000007FFFB6BD9010201093 -S315600137109015E0C8921000087FFFF8A39415212048 -S31560013720C205E0C8DA05212080A340018215212067 -S31560013730128000079815E0C8DA006004C20320040D -S3156001374080A3400102800B5A010000007FFFB6ACE6 -S315600137509010201003180085921060B89015E0C88B -S315600137607FFFF8919415212003000070A610601F59 -S31560013770DA05A1C0030000109A0B4013AA1060106D -S3156001378080A3401523180085251801440280000492 -S31560013790211800807FFFB69A90102010C02421C0A6 -S315600137A0901460B89207BFF07FFFF87F9414A12050 -S315600137B0C20421C08208401380A040150280000423 -S315600137C0010000007FFFB68E90102010C02421C03A -S315600137D0901460B89207BFE87FFFF8739414A12034 -S315600137E0C20421C08208401380A0401502800004F3 -S315600137F0010000007FFFB68290102010C02421C016 -S31560013800901460B89216E0E07FFFF8679414A120E7 -S31560013810C20421C08208401380A0401502800005C1 -S31560013820131800857FFFB676901020101318008557 -S31560013830C02421C0921260C8901460B87FFFF85A04 -S315600138409414A120C20421C08208401380A04015AF -S3156001385002800005901460B87FFFB6699010201051 -S31560013860901460B8C02421C0921000087FFFF84E02 -S315600138709414A120C20421C08208401380A040157F -S3156001388002800004010000007FFFB65D90102010E9 -S31560013890C02421C0901460B8921660F07FFFF84290 -S315600138A09414A120C20421C08330600E8208600393 -S315600138B080A06002228000051103C0007FFFB65020 -S315600138C0901020101103C0007FFFFA7E3B18008420 -S315600138D0A2176210C02421C0AA14A120A4046010FA -S315600138E0A0102000A6046008B010200C92040013FA -S315600138F0900400117FFFF82C94152120DA048010C2 -S3156001390098040012C2052120A004201880A340015A -S315600139101280000790102010DA032004C2056004AB -S3156001392080A3400122800005B0863FFF7FFFB63449 -S3156001393001000000B0863FFF1CBFFFEE920400133A -S31560013940C205A1C080A06000128009890100000043 -S315600139501118008490122348920220087FFFF81202 -S315600139609415212098176210C2052120DA03214897 -S3156001397080A340011280000782152120DA03214CC1 -S31560013980C200600480A3400122800AAB0318008054 -S315600139907FFFB61B901020101118008490122360CF -S315600139A0920220087FFFF800941521209817621073 -S315600139B0C2052120DA03216080A34001128000073D -S315600139C082152120DA032164C200600480A34001CC -S315600139D002800AA41B0000707FFFB60990102010B8 -S315600139E01118008490122378920220087FFFF7EE67 -S315600139F09415212098176210C2052120DA032178D7 -S31560013A0080A340011280000782152120DA03217C00 -S31560013A10C200600480A3400102800A9C1B00007002 -S31560013A207FFFB5F790102010C025A1C011100000CE -S31560013A3092102000150FFC007FFFF8B2961020004F -S31560013A40030FFC0080A200011280000880A26000C2 -S31560013A501280000601000000C205A1C080A06000BE -S31560013A6002800005111000007FFFB5E5901020105F -S31560013A701110000092102000152FFC007FFFF8A1A5 -S31560013A80961020000310020080A200011280000837 -S31560013A9080A260001280000601000000C205A1C07C -S31560013AA080A0600002800005113000007FFFB5D460 -S31560013AB0901020101130000092102000150FFC00AC -S31560013AC07FFFF890961020000330020080A200016B -S31560013AD01280000880A260001280000601000000CA -S31560013AE0C205A1C080A060000280000511300000FF -S31560013AF07FFFB5C390102010113000009210200096 -S31560013B00152FFC007FFFF87F96102000032FFC0025 -S31560013B1080A200011280000880A260001280000667 -S31560013B2001000000C205A1C080A0600002800005FE -S31560013B30111000007FFFB5B2901020101110000027 -S31560013B407FFFF87A130FE0000310100080A20001D6 -S31560013B501280000601000000C205A1C080A06000BD -S31560013B6002800005111000007FFFB5A5901020109E -S31560013B70111000007FFFF877130FE000030FE000DC -S31560013B8080A200011280000601000000C205A1C0EA -S31560013B9080A0600022800005191800857FFFB59816 -S31560013BA09010201019180085921320E8C025A1C035 -S31560013BB09007BFF07FFFF78F9415212019180085B4 -S31560013BC0C20320D8DA05212080A340018215212075 -S31560013BD012800007981320D8DA006004C20320041B -S31560013BE080A3400102800A461B0000707FFFB584F6 -S31560013BF0901020111B180085921360D0C025A1C0BA -S31560013C009007BFF07FFFF77B94152120C207BFE0C5 -S31560013C10DA05212080A34001128000078215212048 -S31560013C20DA006004C207BFE480A3400102800A3E55 -S31560013C30010000007FFFB572901020119007BFF060 -S31560013C409215E0C87FFFF76B94152120C205E0C885 -S31560013C50DA05212080A34001821521201280000708 -S31560013C609815E0C8DA006004C203200480A340010D -S31560013C7002800A32010000007FFFB56190102011B9 -S31560013C8003180085921060B89007BFF07FFFF7595F -S31560013C9094152120C20720B0DA05212080A34001B6 -S31560013CA08215212012800007981720B0DA0060047F -S31560013CB0C203200480A3400102800A251B00007014 -S31560013CC07FFFB54F901020119007BFF0921660F0FC -S31560013CD07FFFF74894152120C205A1C01B00007023 -S31560013CE08208400D1900002080A0400C2118014473 -S31560013CF002800004231800807FFFB54190102011D7 -S31560013D0094142120C02461C09007BFE87FFFF73972 -S31560013D109207BFF0DA042120C207BFE880A3400101 -S31560013D201280000794142120DA02A004C207BFECB6 -S31560013D3080A3400102800A10010000007FFFB530B8 -S31560013D409010201119180085901320E89207BFE0A2 -S31560013D507FFFF72894152120C20720B0DA052120BC -S31560013D6080A340018215212012800007981720B098 -S31560013D70DA006004C203200480A3400102800A03C2 -S31560013D801B0000707FFFB51E901020111B18008567 -S31560013D9003180085901360E8921060D0C025A1C019 -S31560013DA07FFFF7149415212019180085C20320E8B6 -S31560013DB0DA05212080A340018215212012800007A7 -S31560013DC0981320E8DA006004C203200480A340014E -S31560013DD0028009F8010000007FFFB50990102011EB -S31560013DE09007BFE89215E0C87FFFF702941521207E -S31560013DF0C205E0C8DA05212080A340018215212091 -S31560013E00128000079815E0C8DA006004C203200436 -S31560013E1080A34001028009EC010000007FFFB4F835 -S31560013E20901020071B180085921360B89007BFE8B1 -S31560013E307FFFF6F09415212025000070D805A1C0FA -S31560013E409A14A01F03000010980B000D82106010D9 -S31560013E5080A3000121180144028000042318008018 -S31560013E607FFFB4E790102011C02461C09007BFE8BE -S31560013E70921660F07FFFF6DF94142120C20461C0C0 -S31560013E80820840121B00002080A0400D22800005A0 -S31560013E90031800857FFFB4DA90102011031800859E -S31560013EA0901060D894142120C02461C07FFFF6D1A0 -S31560013EB09207BFF019180085C20320D8DA042120C1 -S31560013EC080A340019414212012800007821320D818 -S31560013ED0DA02A004C200600480A34001028008B82F -S31560013EE0010000007FFFB4C6901020111B180085E9 -S31560013EF003180085901360D8921060E87FFFF6BDC5 -S31560013F009415212019180085C20320D0DA052120D5 -S31560013F1080A340018215212012800007981320D0CA -S31560013F20DA006004C203200480A34001028008A96C -S31560013F30010000007FFFB4B2901020119016E0E0FE -S31560013F40921000087FFFF6AB94152120C20720B0BE -S31560013F50DA05212080A34001821521201280000705 -S31560013F60981720B0DA006004C203200480A34001E0 -S31560013F700280089D1B0000707FFFB4A19010201184 -S31560013F80C025A1C09016E0E09215E0C87FFFF699C2 -S31560013F9094152120C205E0C8DA05212080A34001DD -S31560013FA082152120128000079815E0C8DA006004A6 -S31560013FB0C203200480A3400102800894010000002E -S31560013FC07FFFB48F901020111B180085921360B883 -S31560013FD09016E0E07FFFF68794152120C20720B096 -S31560013FE0DA05212080A34001821521201280000775 -S31560013FF0981720B0DA006004C203200480A3400150 -S31560014000028008871B0000707FFFB47D901020112D -S31560014010C025A1C09016E0E0921660F07FFFF675AC -S3156001402094152120C205A1C01B0000708208400DB5 -S315600140301900002080A0400C231800800280000433 -S31560014040211801447FFFB46E901020119414212031 -S31560014050C02461C09015E0C87FFFF6669207BFF085 -S31560014060C205E0C8DA04212080A34001941421200E -S31560014070128000078215E0C8DA02A004C20060045B -S3156001408080A340010280086F010000007FFFB45CDD -S31560014090901020119015E0C89207BFE87FFFF65592 -S315600140A094152120C205E0C8DA05212080A34001CC -S315600140B082152120128000079815E0C8DA00600495 -S315600140C0C203200480A3400102800863010000004E -S315600140D07FFFB44B901020119015E0C89216E0E076 -S315600140E07FFFF64494152120C205E0C8DA05212038 -S315600140F080A3400182152120128000079815E0C82F -S31560014100DA006004C203200480A3400102800857DC -S31560014110010000007FFFB43A901020119015E0C8AD -S31560014120921000087FFFF63394152120C205E0C87E -S31560014130DA05212080A34001821521201280000723 -S315600141409815E0C8DA006004C203200480A3400128 -S31560014150028007F3010000007FFFB429901020114F -S3156001416003180085921060B89015E0C87FFFF621AC -S3156001417094152120C20720B0DA05212080A34001D1 -S315600141808215212012800007981720B0DA0060049A -S31560014190C203200480A34001028007E61B00007071 -S315600141A07FFFB417901020119015E0C8921660F049 -S315600141B07FFFF61094152120C205A1C03100007061 -S315600141C0820840183B00002080A0401D231801444E -S315600141D002800004211800807FFFB409901020112D -S315600141E019180085901320B89207BFF07FFFF6017A -S315600141F094146120C20421C0AA16201F3500001044 -S3156001420082084015A616A01080A040130280000403 -S31560014210251800857FFFB3FA90102011C02421C0B4 -S315600142209014A0B89207BFE87FFFF5F2941461205D -S31560014230C20421C08208401580A040130280000498 -S31560014240010000007FFFB3EE90102011C02421C051 -S315600142509014A0B89216E0E07FFFF5E69414612011 -S31560014260C20421C08208401580A040130280000567 -S31560014270131800857FFFB3E2901020111318008593 -S31560014280C02421C0921260C89014A0B87FFFF5D9EE -S3156001429094146120C20421C08208401580A0401395 -S315600142A0028000059014A0B87FFFB3D5901020114D -S315600142B09014A0B8C02421C0921000087FFFF5CDEC -S315600142C094146120C20421C08208401580A0401365 -S315600142D002800005131800857FFFB3C99010201175 -S315600142E013180085C02421C09014A0B8921260F002 -S315600142F07FFFF5C094146120C20421C08208401872 -S3156001430080A0401D2280000515203E837FFFB3BC3F -S315600143109010201115203E83170021C89412A3FF27 -S315600143209612E3A1191FC0001B00C0009A1360B06A -S3156001433098132102D43FBFD0D83FBFD8C02421C033 -S315600143409007BFD89207BFD07FFFF5AA9407BFC871 -S31560014350DA07BFC8033FFC0080A340010280070B58 -S31560014360A207BFC87FFFB3A69010201115108683E0 -S31560014370170021C89412A3FF9612E3A11900400009 -S315600143801B00C0009A1360B098132102D43FBFD0BE -S31560014390D83FBFD8C025A1C09007BFD89207BFD06C -S315600143A07FFFF5949407BFC8DA046004C207BFC8EB -S315600143B08090400D1280000A1B000070C205A1C0EA -S315600143C09A13601F190000108208400D981320048B -S315600143D080A0400C22800005150FFC007FFFB3888A -S315600143E090102011150FFC00170281D89412A0407D -S315600143F09612E10C9A102010190006AFD43FBFD077 -S31560014400D83FBFD8C025A1C09007BFD89207BFD0FB -S315600144107FFFF5789407BFC8030006AEDA07BFC809 -S315600144208210639580A340011280000703003A9AC7 -S31560014430DA0460048210630F80A3400102800733AF -S31560014440010000007FFFB36E90102011150FFFFF72 -S31560014450170281D89412A3409612E10C9A1020108B -S31560014460190006AFD43FBFD0D83FBFD8C025A1C081 -S315600144709007BFD89207BFD07FFFF55E9407BFC88C -S31560014480DA046004C207BFC88090400D1280000A3A -S315600144901B000070C205A1C09A13601F19000010AD -S315600144A08208400D9813200480A0400C028000040D -S315600144B0010000007FFFB35290102011C025A1C0FA -S315600144C0111088007FFFF63713100100031066C9CB -S315600144D0821062CA80A200011280000601000000FB -S315600144E0C205A1C080A06000028000051111BBFE5B -S315600144F07FFFB343901020111111BBFE901223FF71 -S315600145007FFFF628130C7040031527CA8210611EBF -S3156001451080A200011280000601000000C205A1C050 -S3156001452080A06000028000051310C7FF7FFFB334CF -S31560014530901020111310C7FF921263FC7FFFF619CA -S31560014540111E607E031D73FC8210633880A2000118 -S315600145501280000601000000C205A1C080A06000B3 -S3156001456002800005130FE0007FFFB3259010201134 -S31560014570130FE000921260017FFFF60A110020001E -S3156001458080A220001280000A1B000070C205A1C033 -S315600145909A13601F190000108208400D98132004B9 -S315600145A080A0400C02800005110FE0007FFFB3146C -S315600145B090102011110FE000C025A1C07FFFF5F911 -S315600145C092100008030FE00080A20001128000062D -S315600145D001000000C205A1C080A060000280000544 -S315600145E0130FE0007FFFB30690102011130FE00058 -S315600145F0921260017FFFF5EB1100200080A220007E -S315600146001280000A1B000070C205A1C09A13601FC8 -S31560014610190000108208400D9813200480A0400CF8 -S31560014620028000051B1800857FFFB2F590102011EE -S315600146301B180085921360E8C025A1C09007BFF0E2 -S315600146407FFFF4DE9415212019180085C20320E846 -S31560014650DA05212080A340018215212012800007FE -S31560014660981320E8DA006004C203200480A34001A5 -S31560014670028006BA010000007FFFB2E190102012AD -S315600146801B180085921360D09007BFF07FFFF4CBB3 -S315600146909415212019180085C20320D0DA0521203E -S315600146A080A340018215212012800007981320D033 -S315600146B0DA006004C203200480A34001028006ACD4 -S315600146C0010000007FFFB2CE901020129007BFF06C -S315600146D09215E0C87FFFF4B994152120C205E0C8A0 -S315600146E0DA05212080A3400182152120128000076E -S315600146F09815E0C8DA006004C203200480A3400173 -S31560014700028006A0010000007FFFB2BD901020125A -S315600147101B180085921360B89007BFF07FFFF4A75E -S3156001472094152120C20720B0DA05212080A340011B -S315600147308215212012800007981720B0DA006004E4 -S31560014740C203200480A34001028006931B0000700F -S315600147507FFFB2AB901020129007BFF0921660F007 -S315600147607FFFF49694152120C205A1C01B0000703D -S315600147708208400D1900002080A0400C21180144D8 -S3156001478002800004231800807FFFB29D90102012E2 -S3156001479094142120C02461C09007BFE87FFFF4878D -S315600147A09207BFF0DA042120C207BFE880A3400167 -S315600147B01280000794142120DA02A004C207BFEC1C -S315600147C080A34001028006DE010000007FFFB28CFB -S315600147D0901020120318008519180085901060E862 -S315600147E0921320D87FFFF47594152120C20720B05B -S315600147F0DA05212080A3400182152120128000075D -S31560014800981720B0DA006004C203200480A3400137 -S31560014810028006D01B0000707FFFB27990102012D3 -S31560014820C025A1C09007BFE89215E0C87FFFF46379 -S3156001483094152120C205E0C8DA05212080A3400134 -S3156001484082152120128000079815E0C8DA006004FD -S31560014850C203200480A34001028006C70100000054 -S315600148607FFFB267901024991B180085921360B878 -S315600148709007BFE87FFFF45194152120C20720B04D -S31560014880DA05212080A340018215212012800007CC -S31560014890981720B0DA006004C203200480A34001A7 -S315600148A0028006BA1B0000707FFFB255901020127D -S315600148B09007BFE8921660F07FFFF44094152120BF -S315600148C0C205A1C01B0000708208400D19000020BE -S315600148D080A0400C21180144028000042318008046 -S315600148E07FFFB2479010201294142120C02461C02A -S315600148F09016E0E07FFFF4319207BFF0C206E0E078 -S31560014900DA04212080A3400194142120128000073B -S315600149108216E0E0DA02A004C200600480A34001CE -S31560014920028006A4010000007FFFB23590102012BC -S315600149309016E0E09207BFE87FFFF42094152120EE -S31560014940C20720B0DA05212080A34001821521200B -S3156001495012800007981720B0DA006004C2032004B1 -S3156001496080A34001028006981B0000707FFFB2247D -S3156001497090102012C025A1C09016E0E09215E0C803 -S315600149807FFFF40E94152120C205E0C8DA052120C7 -S3156001499080A3400182152120128000079815E0C886 -S315600149A0DA006004C203200480A340010280068FFE -S315600149B0010000007FFFB2129010201203180085DB -S315600149C0921060B89016E0E07FFFF3FC9415212009 -S315600149D0C20720B0DA05212080A34001821521207B -S315600149E012800007981720B0DA006004C203200421 -S315600149F080A34001028006821B0000707FFFB20027 -S31560014A00901020129016E0E0921660F07FFFF3EBB3 -S31560014A1094152120C205A1C01B0000708208400DBB -S31560014A201900002080A0400C211801440280000476 -S31560014A30231800807FFFB1F2901020129414212078 -S31560014A40C02461C09015E0C87FFFF3DC9207BFF018 -S31560014A50C205E0C8DA04212080A340019414212014 -S31560014A60128000078215E0C8DA02A004C200600461 -S31560014A7080A340010280061E010000007FFFB1E0B5 -S31560014A80901020129015E0C89207BFE87FFFF3CB24 -S31560014A9094152120C205E0C8DA05212080A34001D2 -S31560014AA082152120128000079815E0C8DA0060049B -S31560014AB0C203200480A340010280061201000000A7 -S31560014AC07FFFB1CF901020129015E0C89216E0E0FA -S31560014AD07FFFF3BA94152120C205E0C8DA052120CB -S31560014AE080A3400182152120128000079815E0C835 -S31560014AF0DA006004C203200480A340010280060636 -S31560014B00010000007FFFB1BE901020129015E0C831 -S31560014B10921000087FFFF3A994152120C205E0C811 -S31560014B20DA05212080A34001821521201280000729 -S31560014B309815E0C8DA006004C203200480A340012E -S31560014B40028005FA010000007FFFB1AD90102012CE -S31560014B50191800859015E0C8921320B87FFFF39766 -S31560014B609415212003000070A610601FDA05A1C00C -S31560014B70030000109A0B4013AA10601080A3401521 -S31560014B80251800852318014402800004211800803D -S31560014B907FFFB19B90102012C02421C09014A0B851 -S31560014BA09207BFF07FFFF38594146120C20421C090 -S31560014BB08208401380A040150280000401000000B5 -S31560014BC07FFFB18F90102012C02421C09014A0B82D -S31560014BD09207BFE87FFFF37994146120C20421C074 -S31560014BE08208401380A04015028000040100000085 -S31560014BF07FFFB18390102012C02421C09014A0B809 -S31560014C009216E0E07FFFF36D94146120C20421C027 -S31560014C108208401380A040150280000513180085A4 -S31560014C207FFFB1779010201213180085C02421C030 -S31560014C30921260C89014A0B87FFFF360941461204B -S31560014C40C20421C08208401380A04015028000057D -S31560014C509014A0B87FFFB16A901020129014A0B88A -S31560014C60C02421C0921000087FFFF3549414612080 -S31560014C70C20421C08208401380A04015028000044E -S31560014C80010000007FFFB15E90102012C02421C098 -S31560014C909014A0B8921660F07FFFF34894146120D7 -S31560014CA0C20421C08330600E8208600380A0600266 -S31560014CB0228000051103C0007FFFB15190102012C0 -S31560014CC01103C0007FFFF57F3B180084A417639032 -S31560014CD0AA146120C02421C0A604A008A210200045 -S31560014CE0B0102005A00440129204401394152120AF -S31560014CF07FFFF33290100010DA042010C2052120E4 -S31560014D00A204601880A3400112800007901020124F -S31560014D10DA042014C205600480A340010280047491 -S31560014D20010000007FFFB13601000000B0863FFF41 -S31560014D303CBFFFEEA004401211180085901220209E -S31560014D40920220087FFFF31D941521209817639026 -S31560014D50C2052120DA0320A080A34001128000074A -S31560014D6082152120DA0320A4C200600480A34001D9 -S31560014D70028004DC1B0000707FFFB12190102012BD -S31560014D801118008590122038C025A1C09202200812 -S31560014D907FFFF30A9415212098176390C20521209D -S31560014DA0DA0320B880A34001128000078215212012 -S31560014DB0DA0320BCC200600480A340010280047F44 -S31560014DC01B0000707FFFB10E901020121118008534 -S31560014DD090122050C025A1C0920220087FFFF2F7F1 -S31560014DE09415212098176390C2052120DA0320D0FB -S31560014DF080A340011280000782152120DA0320D4A6 -S31560014E00C200600480A34001028004761B0000702A -S31560014E107FFFB0FB90102012111800859012206858 -S31560014E20C025A1C0920220087FFFF2E494152120DB -S31560014E3098176390C2052120DA0320E880A3400118 -S31560014E401280000782152120DA0320ECC20060047B -S31560014E5080A340010280046D1B0000707FFFB0E8F3 -S31560014E60901020121118008590122080C025A1C0D3 -S31560014E70920220087FFFF2D1941521209817639042 -S31560014E80C2052120DA03210080A3400112800007B8 -S31560014E9082152120DA032104C200600480A3400147 -S31560014EA0028004641B0000707FFFB0D59010201251 -S31560014EB0C025A1C0111010007FFFF3B013100000D0 -S31560014EC00310300080A2000112800006010000007C -S31560014ED0C205A1C080A0600002800005111FE0002C -S31560014EE07FFFB0C790102012111FE0001310000061 -S31560014EF07FFFF2B794152120031FFC00DA052120FC -S31560014F0080A340011280000A82152120C20060043C -S31560014F1080A060001280000601000000C205A1C0E9 -S31560014F2080A0600002800005111FE0007FFFB0B421 -S31560014F309010201B111FE000133000007FFFF2A4C8 -S31560014F4094152120033FFC00DA05212080A340014E -S31560014F501280000A82152120C200600480A06000D0 -S31560014F601280000601000000C205A1C080A0600099 -S31560014F7002800005111000007FFFB0A19010201C77 -S31560014F8011100000921020107FFFF29194152120DC -S31560014F90C205A1C01B0000708208400D19000020E7 -S31560014FA080A0400C2118014402800004231800806F -S31560014FB07FFFB0939010201D94142120C02461C0FE -S31560014FC0110020007FFFF282130FC000DA04212056 -S31560014FD0030E000080A340011280000A9414212070 -S31560014FE0C202A00480A060001280000601000000D9 -S31560014FF0C20461C080A0600002800005111FDFFF4E -S315600150007FFFB07F9010201E111FDFFF901223FFDC -S31560015010131000007FFFF26E941521200311FFFF2C -S31560015020821063FFDA05212080A340011280000708 -S3156001503082152120DA0060040338000080A3400154 -S3156001504002800405010000007FFFB06D9010201FF3 -S31560015050111FD000130FF0007FFFF25D9415212020 -S315600150600311FC80DA05212080A340011280000A29 -S3156001507082152120C200600480A0600012800006B3 -S3156001508001000000C205A1C080A060000280000589 -S31560015090111FDFFF7FFFB05A90102021111FDFFF24 -S315600150A0901223FF921000087FFFF2499415212088 -S315600150B00313FBFF821063FFDA05212080A3400101 -S315600150C01280000882152120DA0060040330000096 -S315600150D08210602080A34001028003E40100000089 -S315600150E07FFFB047901020207FFFF4761103C00048 -S315600150F0C025A1C09007BFE07FFFF2449215212031 -S31560015100C207BFE0DA05212080A3400112800007B3 -S3156001511082152120DA006004C207BFE480A3400142 -S31560015120028003D7010000007FFFB0359010201385 -S315600151301B180085901360E87FFFF23492152120D9 -S3156001514003180085DA0060E8C205212080A0400DC1 -S31560015150191800858215212012800007901320E816 -S31560015160DA006004C202200480A34001028003C900 -S31560015170010000007FFFB022901020131B180085EC -S31560015180901360D07FFFF2219215212019180085B6 -S31560015190C20320D0DA05212080A340018215212097 -S315600151A012800007981320D0DA006004C20320043D -S315600151B080A34001028003BC010000007FFFB010A4 -S315600151C0901020131B180085901360D87FFFF20F93 -S315600151D092152120C20720B0DA05212080A3400163 -S315600151E08215212012800007981720B0DA0060042A -S315600151F0C203200480A34001028003B01B0000703B -S315600152007FFFAFFF9010201303180085901060B8E0 -S31560015210C025A1C07FFFF1FD92152120C20720B0F4 -S31560015220DA05212080A34001821521201280000722 -S31560015230981720B0DA006004C203200480A34001FD -S315600152400280040F1B0000707FFFAFED90102013EA -S31560015250C025A1C09015E0C87FFFF1EC9215212011 -S31560015260C2052120DA05E0C880A0400D8215212003 -S31560015270128000079015E0C8DA006004C2022004BB -S3156001528080A3400102800407010000007FFFAFDCBC -S3156001529090102013170C00089A10200019100C00AA -S315600152A015300F789612E001D83FBFF0D43FBFC0EA -S315600152B09007BFF07FFFF1D59215212003100400FE -S315600152C0DA05212080A340011280000A821521207F -S315600152D0C200600480A06000128000060100000028 -S315600152E0C205A1C080A06000028000059007BFC012 -S315600152F07FFFAFC3901020139007BFC07FFFF1C33C -S3156001530092152120C2052120DA0720B080A0400D28 -S315600153108215212012800007981720B0DA006004F8 -S31560015320C203200480A34001028003E31B000070D6 -S315600153307FFFAFB390102013901660F07FFFF1B33B -S3156001534092152120C205A1C08330600E82086003D8 -S3156001535080A0600202800004211800807FFFAFA850 -S3156001536090102013C02421C07FFFF2981111F20022 -S315600153700310E80080A2000112800006010000000F -S31560015380C20421C080A06000028000040100000008 -S315600153907FFFAF9B901020137FFFF3CA11100000AF -S315600153A01101F5897FFFF289901221E20308E96410 -S315600153B080A200011280000601000000C205A1C0A2 -S315600153C080A0600002800004010000007FFFAF8CB6 -S315600153D0901020237FFFF27D1112A2080311410074 -S315600153E080A200011280000601000000C205A1C072 -S315600153F080A0600002800004010000007FFFAF8092 -S31560015400901020237FFFF3AF110010009007BFF0CB -S31560015410921660F07FFFF1649415212003100C0051 -S31560015420DA05212080A340011280000A821521201D -S31560015430C200600480A060001280000601000000C6 -S31560015440C205A1C080A0600002800005901660F0D0 -S315600154507FFFAF6B90102014901660F09207BFC06B -S315600154607FFFF1569415212003200000DA052120E3 -S3156001547080A340011280000A82152120C2006004C7 -S3156001548080A060001280000601000000C205A1C074 -S3156001549080A0600002800004010000007FFFAF5819 -S315600154A0901020147FFFF19190102001030FE0000E -S315600154B080A200011280000601000000C205A1C0A1 -S315600154C080A0600002800004010000007FFFAF4CF5 -S315600154D0901020147FFFF17D90102001030FFC00D6 -S315600154E080A200011280000880A26000128000067E -S315600154F001000000C205A1C080A060000280000416 -S31560015500010000007FFFAF3E901020147FFFF36D16 -S315600155101110100019180085D41B20D07FFFF1F9F6 -S31560015520D01E60F003180085D03D2120DA0060D8D6 -S31560015530C205212080A0400D191800858215212001 -S3156001554012800007901320D8DA006004C20220049A -S3156001555080A3400102800361010000007FFFAF2844 -S31560015560901020227FFFF35711100000170400806E -S31560015570150F28009612E0F09A102000190FFC0012 -S31560015580D43FBFC0D83FBFF09007BFF09207BFC0FE -S315600155907FFFF10594152120030FFC00DA05212018 -S315600155A080A340011280000682152120C20060049A -S315600155B080A0600002800004010000007FFFAF1040 -S315600155C0901020157FFFF33F112000001700004067 -S315600155D0150014009612E0019A102000190FFC00C4 -S315600155E0D43FBFC0D83FBFF09007BFF09207BFC09E -S315600155F07FFFF0ED94152120030FFC00DA052120D1 -S3156001560080A340011280000682152120C200600439 -S3156001561080A0600102800004010000007FFFAEF8F7 -S31560015620901020157FFFF32711300000170000400E -S31560015630152014009612E0019A102000192FFC0023 -S31560015640D43FBFC0D83FBFF09007BFF09207BFC03D -S315600156507FFFF0D594152120032FFC00DA05212068 -S3156001566080A340011280000682152120C2006004D9 -S3156001567080A0600102800004010000007FFFAEE0AF -S31560015680901020157FFFF30F11100000190FFC0019 -S315600156909A102000D83FBFF09007BFF09216E0E065 -S315600156A07FFFF0C194152120C206E0E0DA052120D2 -S315600156B080A3400182152120128000079816E0E040 -S315600156C0DA006004C203200480A340010280000462 -S315600156D0010000007FFFAECA901020157FFFF2F92E -S315600156E01120000017000040150014009612E00119 -S315600156F0190FFC009A102000D43FBFC0D83FBFF0FD -S315600157009007BFF09216E0E07FFFF0A79415212085 -S31560015710C206E0E0DA05212080A34001821521203E -S31560015720128000079816E0E0DA006004C2032004E4 -S3156001573080A3400102800004010000007FFFAEB03B -S31560015740901020157FFFF2DF113000001700004036 -S31560015750152014009612E0019A102000192FFC0002 -S31560015760D43FBFC0D83FBFF09007BFF09216E0E0CC -S315600157707FFFF08D94152120C2052120DA06E0E035 -S3156001578080A0400D82152120128000079016E0E06E -S31560015790DA006004C202200480A340010280000492 -S315600157A0010000007FFFAE96901020157FFFF2C5C5 -S315600157B01110000015100000961020019A102001AA -S315600157C0190FFC00D43FBFC0D83FBFF09007BFF0B0 -S315600157D09207BFC07FFFF079941521200310000066 -S315600157E0DA05212080A3400112800006821521205E -S315600157F0C200600480A06002028000040100000013 -S315600158007FFFAE7F901020157FFFF2AE1120000062 -S315600158109007BFF09207BFC07FFFF0689415212003 -S3156001582003100000DA05212080A3400112800006E2 -S3156001583082152120C200600480A0600302800004FA -S31560015840010000007FFFAE6E901020157FFFF29D74 -S31560015850113000009A102001192FFC00D83FBFF0CB -S315600158609007BFF09207BFC07FFFF05494152120C7 -S3156001587003300000DA05212080A340011280000672 -S3156001588082152120C200600480A0600302800004AA -S31560015890010000007FFFAE5A901020157FFFF2894C -S315600158A011100000150FFC04172F26159412A01273 -S315600158B09612E231190FFEAE1B1CD2E89A136011E3 -S315600158C098132154D43FBFC0D83FBFF09007BFF0B3 -S315600158D09207BFC07FFFF04794152120030FFEA7F3 -S315600158E082106296DA05212080A3400112800008A9 -S315600158F082152120DA006004032C1B348210602F8C -S3156001590080A3400102800004010000007FFFAE3CDD -S31560015910901020157FFFF26B112000009007BFF0F9 -S315600159209207BFC07FFFF03394152120030FFEA7B6 -S3156001593082106296DA05212080A340011280000858 -S3156001594082152120DA006004032C1B34821060303A -S3156001595080A3400102800004010000007FFFAE28A1 -S31560015960901020157FFFF25711300000192FFC04AB -S315600159701B2F26159A13623198132012D83FBFC088 -S315600159809007BFF09207BFC07FFFF01A94152120E0 -S31560015990032FFEA782106296DA05212080A34001BB -S315600159A01280000882152120DA006004032C1B3462 -S315600159B08210603080A34001028000040100000073 -S315600159C07FFFAE0F901020157FFFF23E1110000091 -S315600159D015101000961020009A102000191038003A -S315600159E0D43FBFC0D83FBFF09007BFF09207BFC09A -S315600159F07FFFF0009415212003102400DA05212091 -S31560015A0080A340011280000682152120C200600435 -S31560015A1080A0600002800004010000007FFFADF8F5 -S31560015A20901020157FFFF227112000009007BFF02C -S31560015A309207BFC07FFFEFEF94152120031024006A -S31560015A40DA05212080A340011280000682152120FB -S31560015A50C200600480A060000280000401000000B2 -S31560015A607FFFADE7901020157FFFF2161130000021 -S31560015A709007BFF09207BFC07FFFEFDE941521202C -S31560015A8003102400DA05212080A34001128000065C -S31560015A9082152120C200600480A06000028000049B -S31560015AA0010000007FFFADD6901020157FFFF20543 -S31560015AB011100000210FE000110020007FFFF0B9F6 -S31560015AC09214200180A220001280012301000000AF -S31560015AD07FFFF1FC11200000110020007FFFF0B173 -S31560015AE09214200180A2200012800118010000009A -S31560015AF07FFFF1F411300000921420017FFFF0A9BD -S31560015B001100200080A220001280010D010000001A -S31560015B107FFFF1EC111000009A102000190FFC00B4 -S31560015B20D83FBFF09007BFF07FFFEFB892152120F5 -S31560015B30C207BFF0DA05212080A340011280000769 -S31560015B4082152120DA006004C207BFF480A34001F8 -S31560015B50028002A7010000007FFFADA99010201509 -S31560015B607FFFF1D8112000009007BFF07FFFEFA7FC -S31560015B7092152120C207BFF0DA05212080A34001DA -S31560015B801280000782152120DA006004C207BFF483 -S31560015B9080A340010280029B010000007FFFAD9857 -S31560015BA0901020157FFFF1C7113000009007BFF0FC -S31560015BB07FFFEF9692152120C207BFF0DA052120FB -S31560015BC080A340011280000782152120DA0060045B -S31560015BD0C207BFF480A340010280028F010000006A -S31560015BE07FFFAD87901020157FFFF1B61110000081 -S31560015BF0030FDFFF901063FF7FFFF074A0100008B2 -S31560015C0080A2001002800004010000007FFFAD7CCD -S31560015C10901020157FFFF1AB112000007FFFF06B24 -S31560015C2090100010030FE00080A2000102800004C2 -S31560015C30010000007FFFAD72901020157FFFF1A17A -S31560015C40113000007FFFF0619010001080A20010FB -S31560015C5002800004010000007FFFAD6990102015ED -S31560015C607FFFF198901020007FFFF0609015212052 -S31560015C70032FFE00DA05212080A340011280000671 -S31560015C8082152120C200600480A0600002800005A8 -S31560015C90211801447FFFAD5A901020162118014446 -S31560015CA07FFFF05C90142128DA042128032FF0008D -S31560015CB080A3400102800004A21421287FFFAD5019 -S31560015CC0901020167FFFF05D90100011DA042128F4 -S31560015CD0030FE00080A34001028000040100000080 -S31560015CE07FFFAD47901020167FFFF064901521204D -S31560015CF0030FFBF7821063F0DA05212080A34001D0 -S31560015D001280000882152120DA0060040303FF1265 -S31560015D108210604A80A3400102800005921660F0FD -S31560015D207FFFAD3790102016921660F09007BFF096 -S31560015D307FFFEF3094152120C205A1C08330600E2C -S31560015D408208600780A0600202800005191800467B -S31560015D507FFFAD2B90102017191800461718008089 -S31560015D60DA02E1C8821321F880A0400DE00321F830 -S31560015D7002800004A212E1C87FFFAD2190102018B5 -S31560015D80C204600480A0401002800004010000008B -S31560015D907FFFAD1B90102018C204600880A06000D0 -S31560015DA01280007701000000C204600C80A06000D0 -S31560015DB01280006C010000007FFFEEE6010000002A -S31560015DC080A220010280019801000000190C40297F -S31560015DD01B23CD1B9A13609B9813200694102000F9 -S31560015DE096102000D83FBFF0D43FBFC07FFFEF2F92 -S31560015DF09007BFF003180083A21062101B18008180 -S31560015E0003180144A0136210A4106120B010200091 -S31560015E10832E2002DA044001DA27BFC09007BFC093 -S31560015E207FFFEF25921521209B2E2003D804000DBC -S31560015E30C2052120B00620019603401080A300010F -S31560015E401280000790102019DA02E004C204A0044F -S31560015E5080A340010280000580A620FF7FFFACE899 -S31560015E600100000080A620FF04BFFFEB832E200205 -S31560015E7003180083A41062101B18008003180144E4 -S31560015E80A2136210A6106120B0102000A12E20027C -S31560015E90C2048010C227BFC0921521207FFFEEDBAE -S31560015EA09007BFC0DA044010C2052120B006200267 -S31560015EB09804001180A34001128000079010201AF7 -S31560015EC0DA032004C204E00480A3400102800005D5 -S31560015ED080A620FF7FFFACCA0100000080A620FFDC -S31560015EE024BFFFECA12E200230800211C205A1C0A1 -S31560015EF080A0600022BFFB8FB0863FFF30BFFB8A68 -S31560015F00C205A1C080A0600002BFF145010000008A -S31560015F1030BFF141C205A1C080A0600002BFF13669 -S31560015F200100000030BFF132C205A1C080A060004F -S31560015F3002BFF1270100000030BFF1237FFFACB043 -S31560015F409010201530BFFEF37FFFACAD9010201589 -S31560015F5030BFFEE87FFFACAA9010201530BFFEDD92 -S31560015F607FFFACA79010201830BFFF947FFFACA4D1 -S31560015F709010201010BFF678111800847FFFACA036 -S31560015F809010201830BFFF89C207BFCC80A0600087 -S31560015F9012BFF8F501000000C20421C08208401555 -S31560015FA09A16A00880A0400D12BFF8EF010000000C -S31560015FB010BFF8F015108683C205A1C09A13601F41 -S31560015FC0190000108208400D9813200880A0400C2B -S31560015FD012BFFB7D1118008510BFFB7F9012205008 -S31560015FE0C205A1C09A13601F190000108208400DF6 -S31560015FF09813200880A0400C12BFFB8611180085FB -S3156001600010BFFB8890122068C205A1C09A13601F59 -S31560016010190000108208400D9813200480A0400CDE -S3156001602012BFFB8F1118008510BFFB919012208063 -S31560016030C205A1C09A13601F190000108208400DA5 -S315600160409813200880A0400C12BFFB980100000045 -S3156001605030BFFB98C205A1C080A0600002BFFBFEF5 -S31560016060111FD00030BFFBF9C205A1C080A060003E -S3156001607002BFFC1E0100000030BFFC1AC205A1C0B0 -S3156001608080A0600002BFFC2C1B18008530BFFC2776 -S31560016090C205A1C080A0600002BFFC3A1B18008542 -S315600160A030BFFC35C205A1C080A0600002BFFC47BD -S315600160B01B18008530BFFC42C205A1C09A13601F40 -S315600160C0190000108208400D9813201080A0400C22 -S315600160D012BFFC4C0318008510BFFC4E901060B8CF -S315600160E0C205A1C09A13601F190000108208400DF5 -S315600160F09813200480A0400C12BFFB201118008564 -S3156001610010BFFB2290122038C205A1C080A060009A -S3156001611022BFF8D0150FFFFF30BFF8CBC205A1C073 -S3156001612080A0600002BFF8100318008530BFF80B2D -S31560016130C205A1C09A13601F190000108208400DA4 -S315600161409813201080A0400C12BFF8169015E0C875 -S3156001615010BFF818921660F0C205A1C080A0600059 -S3156001616002BFF9491B18008530BFF944C205A1C0B9 -S3156001617080A0600002BFF9579007BFF030BFF952A7 -S31560016180C205A1C080A0600002BFF9631B1800852B -S3156001619030BFF95EC205A1C09A13601F19000010D5 -S315600161A08208400D9813201080A0400C12BFF96937 -S315600161B09007BFF010BFF96B921660F0C20461C020 -S315600161C080A0600002BFF74B1B18008530BFF74601 -S315600161D0C205A1C080A0600002BFF75A9016E0E038 -S315600161E030BFF755C205A1C09A13601F1900001090 -S315600161F08208400D9813201080A0400C12BFF75FF3 -S315600162000100000030BFF75FC205A1C080A0600039 -S3156001621002BFF76F1B18008530BFF76AC205A1C0C0 -S315600162209A13601F190000108208400D9813201000 -S3156001623080A0400C12BFF7750100000030BFF775F2 -S31560016240C20461C080A0600002BFF7949015E0C8E7 -S3156001625030BFF78FC205A1C080A0600002BFF7A062 -S315600162609015E0C830BFF79BC205A1C080A0600051 -S3156001627002BFF7AC9015E0C830BFF7A7C205A1C051 -S315600162809A13601F190000108208400D98132010A0 -S3156001629080A0400C12BFFBED0100000030BFFBED9A -S315600162A0C205A1C080A0600002BFFBFC170C0008FC -S315600162B030BFFBF7C205A1C09A13601F1900001019 -S315600162C08208400D9813201080A0400C12BFFC1963 -S315600162D0901660F030BFFC1AC205A1C080A06000B4 -S315600162E002BFFCA10100000030BFFC9DC20461C079 -S315600162F080A0600002BFF9E59015E0C830BFF9E003 -S31560016300C205A1C080A0600002BFF9F19015E0C886 -S3156001631030BFF9ECC205A1C080A0600002BFF9FDE3 -S315600163209015E0C830BFF9F8C205A1C080A0600031 -S3156001633002BFFA091918008530BFFA04C20461C0A8 -S3156001634080A0600002BFF9250318008530BFF920DF -S31560016350C205A1C09A13601F190000108208400D82 -S315600163609813201080A0400C12BFF92C0100000088 -S3156001637030BFF92CC205A1C080A0600002BFF93C04 -S315600163801B18008530BFF937C205A1C09A13601F7B -S31560016390190000108208400D9813201080A0400C4F -S315600163A012BFF9429007BFE810BFF944921660F038 -S315600163B0C20461C080A0600002BFF95F9016E0E090 -S315600163C030BFF95AC205A1C09A13601F19000010A7 -S315600163D08208400D9813201080A0400C12BFF9640A -S315600163E00100000030BFF964C205A1C080A0600051 -S315600163F002BFF9740318008530BFF96FC205A1C0E9 -S315600164009A13601F190000108208400D981320101E -S3156001641080A0400C12BFF97A9016E0E010BFF97CBB -S31560016420921660F07FFFAB769010201910BFFE695F -S31560016430190C4029D80061C01B0000709A13601FB7 -S3156001644003000010980B000D8210600880A3000104 -S3156001645012BFF5501118008410BFF55290122360D7 -S31560016460C205A1C09A13601F190000108208400D71 -S315600164709813200480A0400C12BFF55811180084AF -S3156001648010BFF55A90122378C205A1C09A13601FF6 -S31560016490190000108208400D9813200480A0400C5A -S315600164A012BFF5600100000030BFF560C205A1C0F2 -S315600164B080A0600002BFF4A90318008530BFF4A470 -S315600164C0C205A1C080A0600002BFF4939015E0C828 -S315600164D030BFF48EC205A1C080A0600002BFF47D0A -S315600164E09015E0C830BFF478C20461C080A0600036 -S315600164F002BFF4679015E0C830BFF462C205A1C05F -S315600165009A13601F190000108208400D981320022B -S3156001651080A0400C12BFF5B61B18008510BFF5B8F8 -S31560016520921360D0C205A1C080A0600002BFF5C50C -S315600165309007BFF030BFF5C0C205A1C080A0600062 -S3156001654002BFF5D10318008530BFF5CCC205A1C0E5 -S315600165509A13601F190000108208400D98132010CD -S3156001656080A0400C12BFF5D79007BFF010BFF5D9D8 -S31560016570921660F0C20461C080A0600022BFF5F38C -S315600165801918008530BFF5EEC205A1C09A13601FC8 -S31560016590190000108208400D9813201080A0400C4D -S315600165A012BFF5F91B18008510BFF5FB03180085AE -S315600165B0C205A1C080A0600002BFF60B9007BFE8CC -S315600165C030BFF606C205A1C080A0600002BFF61703 -S315600165D01B18008530BFF612C20421C080A060007E -S315600165E022BFF03E113C02AF30BFF039C205A1C0F7 -S315600165F080A0600002BFFD5B0100000030BFFD5757 -S31560016600C205A1C080A0600002BFFD670100000055 -S3156001661030BFFD63C205A1C080A0600002BFFD73EB -S315600166200100000030BFFD6FC205A1C080A06000FF -S3156001663002BFF2D70318008530BFF2D2C205A1C0EE -S3156001664080A0600002BFF2C19007BFF030BFF2BC0C -S31560016650C205A1C080A0600002BFF2AA37180085FA -S3156001666030BFF2A5C205A1C080A0600002BFF028BC -S315600166701111FC0030BFF023C205A1C09A13601F3F -S31560016680190000108208400D9813201080A0400C5C -S3156001669012BFF3DD9016E0E010BFF3DF921660F0F3 -S315600166A0C205A1C080A0600002BFF39E1B180085D1 -S315600166B030BFF399C205A1C080A0600002BFF38616 -S315600166C01B18008530BFF381C205A1C080A06000A0 -S315600166D002BFF36E1B18008530BFF369C20461C047 -S315600166E080A0600002BFF3589016E0E030BFF3531C -S315600166F0C205A1C080A0600002BFF30E1918008513 -S3156001670030BFF309C205A1C080A0600002BFF2F8E4 -S315600167109007BFE830BFF2F3C20461C080A0600099 -S3156001672002BFF2E29007BFE830BFF2DD81C7E00841 -S3156001673081E80000D27A000081C3E0080100000010 -S3156001674081C3E008900A20209332600492126001AE -S315600167508213C0007FFFFFF89E1040000100000019 -S3156001676081D8200081C3E008010000009DE3BF9845 -S315600167707FFFFFFC0100000082102400C0A04300DF -S3156001678081C7E00881E80000833220189A1000086A -S315600167908088600F028000049010200083336010AF -S315600167A09008600381C3E008010000009DE3BF9883 -S315600167B0031800C01B1800C1B0106000A21360006E -S315600167C0031800C21B1800C2A4106000A613610062 -S315600167D0031800201B180020A8106158AA13600036 -S315600167E07FFFEBAD9010200C808A2008028001FDAE -S315600167F0010000007FFFAA7D9010200ED08003204B -S315600168007FFFFFE2010000000318014380A220021E -S31560016810028000C6D02060D080A22002148000E4ED -S3156001682080A2200380A22001028000D1821020195B -S31560016830331800A02F1800A0391800A0371800A03F -S31560016840351800A07FFFFFC7210100007FFFFFC849 -S31560016850BA04A00C921000117FFFFFBC90100018C3 -S31560016860921000117FFFFFB990062004901000116D -S315600168707FFFFFB19210200ADA066014110800004A -S31560016880913A000DC205E010900A0001912A20029A -S3156001689013008000900200117FFFFFA79212600A29 -S315600168A0DA06601411100000913A000DC205E0107D -S315600168B0900A0001912A2002900200117FFFFF9E3B -S315600168C09214208EDA066014111C0000913A000DB4 -S315600168D0C205E010900A0001912A20021301C0004E -S315600168E0900200117FFFFF949212608E9334A00490 -S315600168F09004600C7FFFFF90921260019214201E3B -S315600169007FFFFF8D9004A0089010001D7FFFFF8A16 -S31560016910921020009334E004921260017FFFFF869B -S315600169209004A004111800C2901221087FFFFF8213 -S3156001693092102000031800E0A01060009334200438 -S31560016940111800C2901221047FFFFF7B9212601A18 -S3156001695003048D1582106278C2242004111800E0A8 -S3156001696015180120C0222000A2102003AC12A0003D -S31560016970A004E00C90047FFD40000A73921020038E -S315600169801B180143C20360D08200600C932A000188 -S315600169909202401693326004901000107FFFFF66EA -S315600169A09212601EA204600180A4600A04BFFFF215 -S315600169B0A0042004C206E008D807200C8208600102 -S315600169C08328400CD605E010111800E0D406A0001B -S315600169D0DA06601498122000960AE003972AC00D21 -S315600169E0920AA002111800A0DA022004940AA001FA -S315600169F0952A800D932A400D1B1800209612C0011E -S31560016A00E8236150030100001B0076418210601E7D -S31560016A109A1361C09212C00999332004C2252004D9 -S31560016A20DA2520089612C00A9E13200E913560045D -S31560016A301B1800C2031800C2821061049012201E46 -S31560016A40953620049813201E9A136108D625202CAA -S31560016A50D8252010D025201CD2252020DE252028EF -S31560016A60D6252014940ABFF0FA250000DA252018ED -S31560016A70C2252024C225200CA2102100D4A44320C3 -S31560016A80C2800320D88443209A102001A0102200DE -S31560016A90DAA40320D884032082102000C2A4032034 -S31560016AA0DAA0032081D820007FFFC55901000000CC -S31560016AB0C2800320E2844320E0840320DA05E010EB -S31560016AC0D6066014C206E0089A0B60039B2B400B46 -S31560016AD082086001D407200CD806A000111800A016 -S31560016AE08328400A980B2001D60220049A1340019C -S31560016AF0992B000B9A13400CC203400080A06000E2 -S31560016B0012800008821360041B048D15D8004000B2 -S31560016B109A13627880A3000D02800038C205E010E6 -S31560016B2010800000010000008210201A331800A0B6 -S31560016B30C22660149810203F2F1800A0391800A0B3 -S31560016B40351800A09A1020148210200E151800A086 -S31560016B50371800A0DA27200CC222A004D826A0008C -S31560016B60D825E01010BFFF38D826E0089A10207F9C -S31560016B70331800A02F1800A0C2266014DA25E01091 -S31560016B809810203F391800A0351800A082102013F4 -S31560016B909A10200D111800A0371800A0C227200CEA -S31560016BA0DA22200410BFFFF0D826A00012BFFF2210 -S31560016BB0331800A08210201CC22660149A1020157A -S31560016BC08210207F391800A0371800A0DA27200C20 -S31560016BD0C226E0089810200F2F1800A0351800A0D3 -S31560016BE01B1800A08210203FD8236004C226A00093 -S31560016BF010BFFF15D825E010DA06E008D806601444 -S31560016C00820860039A0B6002D607200C8328400C29 -S31560016C109B2B400B8210400DD80040001B100000DA -S31560016C20C203400080A3000102800004D406E0088C -S31560016C301080000001000000C205E010980AA00162 -S31560016C40D207200CD6066014820860038328400BA5 -S31560016C50992B0009940AA0039810400CDA06A0004B -S31560016C60111800A0952A80099A0B6001D6022004AA -S31560016C708210400AC20040009B2B400B9813000D06 -S31560016C800321D9509813200482106321C223000086 -S31560016C90DA03000080A3400102800004C206E00816 -S31560016CA01080000001000000D407200CDA05E01016 -S31560016CB082086001D60660148328400A9A0B600335 -S31560016CC0D806A0009B2B400B151800A0D602A00485 -S31560016CD0980B20019A134001992B000B9813400CD5 -S31560016CE08210000C05048D158410A278072AF37BA7 -S31560016CF08610E301C4384000C438400003048D1592 -S31560016D00DA0300008210627880A3400102800004E9 -S31560016D108213200410800000010000001B2AF37B0F -S31560016D20D80040009A13630180A3000D12BFFFFAD9 -S31560016D30C205E010D6066014D806E0088208600332 -S31560016D40D407200C8328400B980B2001DA06A0009B -S31560016D50111800A0992B000A9A0B6003D602200431 -S31560016D608210400C9B2B400B15180143A010400D5F -S31560016D70F002A0D0A2102003E0240000C0A00220EF -S31560016D80921020034000097090047FFD8206200C5A -S31560016D9098102001912A0001992B00011B180120EE -S31560016DA09610000182136000DA02000180A3401090 -S31560016DB0A204600112800087A004000C80A4600A0E -S31560016DC024BFFFEFE0240000C0A0022003180120C9 -S31560016DD0A810000BAA106000A0102000A2102003CA -S31560016DE090047FFD4000095892102003832C6002B5 -S31560016DF0912A0014DA04C00190020015820B6060CA -S31560016E009132200480A000019012201EA040001043 -S31560016E109A0B7F9F900A3F9F80A340081280006F64 -S31560016E20A204600180A4600A24BFFFEF90047FFD85 -S31560016E3080A4200012800004C205E01010800000CA -S31560016E4001000000D6066014D806E00882086003D7 -S31560016E50D407200CDA06A000111800A08328400B85 -S31560016E60980B2001992B000AD60220049A0B600226 -S31560016E708210400C9B2B400BAA10400D9FC5400011 -S31560016E800100000082102400C0A04300C0A00220BF -S31560016E90A0102000A21020039B2C6002C204C00D2A -S31560016EA08208606080A00001A0400010A204600119 -S31560016EB080A4600A24BFFFFA9B2C600280A420088C -S31560016EC022800004D004E00410800000010000006C -S31560016ED0808A204002800007010000007FFFFE19C2 -S31560016EE00100000080A22000128000040100000061 -S31560016EF010800000010000007FFFFE12D004A00890 -S31560016F0080A22000128000040100000010800000B1 -S31560016F10010000007FFFFE0BD004E00880A2200084 -S31560016F2012800004010000001080000001000000D2 -S31560016F3083480000842860808188A00001000000E9 -S31560016F400100000001000000D806E008D407200C0B -S31560016F50DA05E010980B2001D6066014992B000A19 -S31560016F609A0B6003C206A0009B2B400B151800A06C -S31560016F70D602A004820860018328400B9A13400C54 -S31560016F809A1340019A136004C203400092102004D0 -S31560016F9091D02002010000007FFFC41D01000000A6 -S31560016FA0981020009A102200D8A343208210200155 -S31560016FB0C2A34320D8A3432003100000DA80438094 -S31560016FC0DAA04380D8A0032081D820003080000554 -S31560016FD01080000001000000108000000100000028 -S31560016FE081C7E00891E820009DE3BF98400007D182 -S31560016FF001000000808A21000280003F010000003C -S315600170007FFFA88E01000000912A20047FFFA877E8 -S31560017010900220050318014082106048DA0060047E -S3156001702080A360002280001503180140B0100001A2 -S31560017030C20600009B38601F81836000DA06200467 -S3156001704001000000010000008278400DDA06200888 -S31560017050B006200C80A0400D028000049010200133 -S315600170607FFFA86701000000C206200480A06000BF -S3156001707012BFFFF00318014082106000DA0060045D -S3156001708080A360000280001501000000B0100001BD -S31560017090C206000081800000DA06200401000000BB -S315600170A0010000009A70400D8210000DDA0620087A -S315600170B0B006200C80A0400D0280000490102002D2 -S315600170C07FFFA84F01000000C206200480A0600077 -S315600170D012BFFFF00100000040000824010000001B -S315600170E080A2200012800004010000007FFFA844F6 -S315600170F09010200381C7E00891E820009DE3BF98C6 -S315600171007FFFA84E01000000912A20047FFFA83767 -S3156001711090022004400007890100000080A221231B -S3156001712002800004010000007FFFA8359010200155 -S315600171304000078001000000808A21000280002B48 -S315600171400318014082106184DA00600880A3600937 -S315600171500280001101000000B0100001C2060000AB -S31560017160DA062004D80620088258400DB006200CA5 -S3156001717080A0400C02800004901020027FFFA820AE -S3156001718001000000C206200880A0600912BFFFF45A -S3156001719001000000400007760100000080A2200087 -S315600171A00280000F0100000040000762010000003C -S315600171B0808A22000280000D010000004000079EC7 -S315600171C00100000080A2200012800008010000007A -S315600171D07FFFA80B90102004308000047FFFA80871 -S315600171E09010200330BFFFF181C7E00891E82000CD -S315600171F09DE3BFA0941020001118005C9012222418 -S315600172001318005C921262281718005C9612E2301D -S315600172101918005C9813223493C2000081C24000A1 -S315600172201080019181C2C00081C300001080018E6F -S315600172309402A0019402A00180A2A0031280018A97 -S3156001724001000000874400008D30E00E8C89A007A4 -S3156001725080A1A000028000C701000000AF30E00BF2 -S31560017260AE0DE00780A5E000128000C201000000BB -S3156001727080A1A002128000350100000025100000E7 -S31560017280E41C80002510000029100000A8152104C7 -S31560017290A6100012AA100012AC100014A18020469C -S315600172A0A4100000AA10000001000000A180204E79 -S315600172B0A810210001000000A1800000010000006B -S315600172C001000000E83CA03082A4801312800166B0 -S315600172D082A5001612800164010000000100000011 -S315600172E001000000874400008D30E00B8C89A00707 -S315600172F08CA1A0051280015CA18000000100000044 -S315600173000100000001000000E81CA03082A5001603 -S315600173101280015582A54012A4100000128001520C -S315600173200100000001000000874400008D30E00B81 -S315600173308C89A0078CA1A0031280014B010000007B -S315600173401080008C0100000080A1A0011280002342 -S3156001735025100000E41C80002510000029100000A3 -S31560017360A8152104A6100012AA100012AC10001470 -S31560017370A1802046A4100000AA10000001000000B0 -S31560017380A180204EA810210001000000A18000000C -S31560017390010000000100000001000000E83C8000DF -S315600173A082A480131280013082A500161280012EFC -S315600173B00100000001000000874400008D30E00BF1 -S315600173C08C89A0078CA1A002128001270100000010 -S315600173D0108000680100000080A1A0031280006592 -S315600173E0A6100000A210200EA1844000A610000085 -S315600173F0A1800000A814E000AB4400000100000079 -S31560017400AC14E00001000000AF44000080A520003C -S3156001741012800115AA8D6E0080A5400012800112AE -S3156001742080A5A00012800110AF35E00BAE0DE0071C -S3156001743080A5E0011280010C01000000A01000008F -S31560017440A1844000A6100000A1800000E818000099 -S31560017450AC100000AE100000EC04C000EE04E004C5 -S3156001746080A500161280010080A54017128000FEDB -S3156001747001000000A5440000A534A00BA40CA007E0 -S3156001748080A4A001128000F801000000A010000095 -S31560017490A1844000A6100000A1800000A210200A6D -S315600174A0A1844000A4100000A1800000E81800003B -S315600174B0AC100000AE100000EC04C012EE04E00453 -S315600174C080A50016128000E880A54017128000E6AC -S315600174D001000000A5440000A534A00BA40CA00780 -S315600174E080A4A002068000E001000000211801408E -S315600174F0A0142200EC1C0000A0042008E81C000077 -S31560017500A1844000A6100000A1800000A210200EF8 -S31560017510A1844000A4100010AC100000AE10000061 -S31560017520A18000000100000001000000EC3C801316 -S31560017530AC100000AE100000E81CC01280A5001659 -S31560017540128000C980A54017128000C701000000A3 -S31560017550A5440000A534A00BA40CA00780A4A00438 -S31560017560128000C1010000001080000201000000CD -S315600175708B4440008A09601F80A160010280000A75 -S315600175808C1000059DE3BFA08AA1600116BFFFFEB6 -S315600175900100000081E800008CA1A00116BFFFFE7A -S315600175A0010000000100000001000000A023A0808E -S315600175B0A02C20078E100010A3480000E2240000D2 -S315600175C0C2242004C43C2008C83C2010CC3C2018AE -S315600175D0F03C2020F43C2028F83C2030FC3C20384C -S315600175E0D03C2040D43C2048D83C2050DC3C20583C -S315600175F0A5500000E424206080102008821020013C -S315600176008410200286102003881020048A10200529 -S315600176108C10200681900000A42C601F818C800054 -S31560017620010000000100000001000000030040406D -S3156001763082106101841000008610000089444000B8 -S315600176408809201F86100004A010000284004002F1 -S31560017650A210000284004002A410000284004002CD -S31560017660A610000284004002A810000284004002B5 -S31560017670AA10000284004002AC100002840040029D -S31560017680AE100002840040029010000284004002A5 -S3156001769092100002840040029410000284004002AD -S315600176A09610000284004002981000028400400295 -S315600176B09A100002840040029C100002840040027D -S315600176C09E1000028400400281E0000086A0E00175 -S315600176D016BFFFDE01000000030040408210610119 -S315600176E0841000008610000480A400021280003F0E -S315600176F08400400280A440021280003C8400400263 -S3156001770080A48002128000398400400280A4C002F5 -S31560017710128000368400400280A500021280003388 -S315600177208400400280A5400212800030840040023D -S3156001773080A580021280002D8400400280A5C002CF -S315600177401280002A8400400280A200021280002773 -S315600177508400400280A2400212800024840040021C -S3156001776080A28002128000218400400280A2C002B1 -S315600177701280001E8400400280A300021280001B5A -S315600177808400400280A340021280001884004002F7 -S3156001779080A38002128000158400400280A3C0028B -S315600177A0128000128400400281E0000086A0E001A0 -S315600177B016BFFFCE0100000080A020001280000BE2 -S315600177C080A0FFFF1280000980A16005128000077A -S315600177D080A1A0061280000501000000A01000072C -S315600177E010800006C0242020A01000079010200100 -S315600177F010800002D024202082100007C4004000BF -S315600178008188800001000000010000000100000085 -S31560017810C4186008C8186010CC186018F018602089 -S31560017820F4186028F8186030FC186038D018604089 -S31560017830D4186048D8186050DC186058E40060605D -S31560017840C200600481948000010000000100000014 -S3156001785001000000A0100007F004202081C7E008A5 -S3156001786081E8000010BFFFFCB010000001000000BD -S3156001787081D8200081C3E008010000001B18014483 -S31560017880D8036150821020018328400C1B180144E3 -S3156001789082007FFFD803615482084008932A400C16 -S315600178A0900040098213C0007FFFE77F9E10400071 -S315600178B0010000001B180144D803615082102001A9 -S315600178C08328400C1B18014482007FFFD803615452 -S315600178D0932A400C82084008900040099210000AE1 -S315600178E08213C0007FFFE7729E1040000100000016 -S315600178F01B180144D8036150821020018328400C73 -S315600179001B18014482007FFFD8036154932A400CFF -S3156001791082084008900040099210000A8213C00054 -S315600179207FFFE7679E104000010000001B180144BD -S31560017930D8036150821020018328400C1B18014432 -S3156001794082007FFFD803615482084008932A400C65 -S31560017950900040098213C0007FFFE7579E104000E8 -S31560017960010000001B180144D803615C82102001EC -S315600179708328400C1B18014482007FFFD803616C89 -S31560017980932A400C82084008900040099210000A30 -S315600179908213C0007FFFE74E9E1040000100000089 -S315600179A01B180144D803615C821020018328400CB6 -S315600179B01B18014482007FFFD803616C932A400C37 -S315600179C082084008900040099210000A8213C000A4 -S315600179D07FFFE7439E104000010000009DE3BF5812 -S315600179E02D180144A2102000C205A16080A44001A7 -S315600179F01680001BA01020002B1801442918014491 -S31560017A0027180144A4102001D005615C912C8008DF -S31560017A10C205216C90023FFF832C0001900A001879 -S31560017A207FFFE72990020001C204E14C901E000825 -S31560017A30900A000180A00008A2647FFFA0042001D3 -S31560017A40C205A16080A4000126BFFFF1D005615C7B -S31560017A5080A4600012800003B0102000B0102001E5 -S31560017A6081C7E00881E800001B180144D803615C06 -S31560017A70821020018328400C1B18014482007FFF7D -S31560017A80D803616C82084008932A400C9000400933 -S31560017A908213C0007FFFE70C9E10400001000000CA -S31560017AA01B180144D803615C821020018328400CB5 -S31560017AB01B18014482007FFFD803616C820840086D -S31560017AC0932A400C900040098213C0007FFFE702B1 -S31560017AD09E10400001000000952AA00D03280000B9 -S31560017AE094028009D02040009422B000D420600422 -S31560017AF081C3E00801000000033FFFBF821062F806 -S31560017B009DE38001193FFFBF94132368B407BFF853 -S31560017B10031800459606800A82106020C222E00C96 -S31560017B2003180044821063E0C222E0041B1800447B -S31560017B309A1363C0033FFFBFDA26800A901323803E -S31560017B40331800458210635C94068008981323C03D -S31560017B50921660008200401ED222E008D4204000C6 -S31560017B60B006800C7FFFA5A1901020067FFFE6CAB4 -S31560017B7090102000920A3FF07FFFE6C99010200026 -S31560017B80210000307FFFE6C490102000808A00103B -S31560017B9012BFFFFD010000007FFFFF3621000030AC -S31560017BA07FFFE6BD90102000808A001012BFFFFDA6 -S31560017BB0010000007FFFE6B890102000030020401E -S31560017BC08210600F921200017FFFE6B590102000CF -S31560017BD07FFFE6B19010200821180144D024214886 -S31560017BE07FFFE6AD9010200CA73A2010993A201439 -S31560017BF0A60CE007980B200FDA042148A82300138E -S31560017C00A80520089F3B6014933B60109B3B60185E -S31560017C1094050013A2102001AC03200A9E0BE00F0D -S31560017C2096102400AE0B60039402A002212000008E -S31560017C30992AC00C1B1801448203E00A952C400A5C -S31560017C409424000A832C4001D8236168A024000192 -S31560017C501B18014403180144EC23615C972AC00F89 -S31560017C60AA03E00A1B180144D620614403180144A3 -S31560017C70EA236154EA2061501B1801440318014448 -S31560017C80D423614C920A6007A53A2018D020615826 -S31560017C90153FFFBF932C4009A40CA00303180144B0 -S31560017CA09412A358932C4009A404A00139180144E5 -S31560017CB037180144EC20616C9B2C40149402801EA1 -S31560017CC0E0272164E426E160AA027FFFDA228000D0 -S31560017CD0AC85E0010280000CBB2C4013033FFFBF63 -S31560017CE082106368A0068001A4100016D00400000B -S31560017CF09FC20000A0042004A484BFFF32BFFFFD21 -S31560017D00D00400007FFFE66490102000920A3FFCD9 -S31560017D107FFFE66390102000A410200080A48016E7 -S31560017D2016800022A2102000033FFFBFAE106368D9 -S31560017D30A610001AA010200080A400163680001834 -S31560017D40A404A00110800005A810001780A40016E5 -S31560017D5036800013A404A001921000107FFFFEC8B4 -S31560017D60D004C014820A001580A0401512BFFFF826 -S31560017D70A0042001C204C01482184008DA072164F5 -S31560017D808208400D80A00001A2647FFF80A40016D6 -S31560017D9006BFFFF392100010A404A00180A4801610 -S31560017DA006BFFFE5A604E0047FFFE63B90102000D6 -S31560017DB0A6100008901020007FFFE6399214E003B8 -S31560017DC080A46000028001B101000000833CE00CE8 -S31560017DD080886003128000A5030048D1833CE013CC -S31560017DE080886003128001AD010000007FFFFEA163 -S31560017DF0210000307FFFE62890102000808A001065 -S31560017E0012BFFFFDA6100008A4102000C206E160A3 -S31560017E1080A480011680000D832CA00292100012AE -S31560017E20901000187FFFFED094102000A404A001DA -S31560017E30C206E16080A4800106BFFFFA92100012BB -S31560017E40A4102000832CA002A404A001C026000176 -S31560017E5080A4A01E04BFFFFD832CA0028210200512 -S31560017E60C22600009A102001DA2620048210200220 -S31560017E70C22620089A102003DA26200C7FFFFED83E -S31560017E809010001880A22000028001D3010000003A -S31560017E90C206000080A060050280000401000000A7 -S31560017EA07FFFA4D7901020067FFFFECD90100018AB -S31560017EB080A22000128001C401000000A4102000ED -S31560017EC0C206E16080A480011680000F9210001244 -S31560017ED0A0062004941020007FFFFEB290100018C7 -S31560017EE092100012901000107FFFFEAE94102000D9 -S31560017EF0A404A001C206E16080A4800106BFFFF66A -S31560017F00921000127FFFE5FA901000187FFFE5F8E6 -S31560017F10900620207FFFE5F6900620407FFFE5F47E -S31560017F2090062060A4102000C206E16080A4800152 -S31560017F3006800196A21020007FFFA4B19010200850 -S31560017F40173FFFBF8212E3C0940680018212E35C91 -S31560017F508200401ED81A8000C2004000D838400016 -S31560017F609612E380C206800B80A06005128000062F -S31560017F708206800BDA00600480A36001028000053E -S31560017F80A41020007FFFA49E90102009A410200059 -S31560017F90C206E16080A4800116800011A210200053 -S31560017FA0A0062004921000127FFFFEBE9010001002 -S31560017FB0901A200180A00008A2647FFFA404A0019A -S31560017FC0C206E16080A4800106BFFFF8921000122C -S31560017FD080A4600102800005833CE0137FFFA488D2 -S31560017FE09010200A833CE013808860031280018030 -S31560017FF082102005C22600009A102001DA2620048C -S3156001800082102002C22620089A102003DA26200C4C -S315600180101B3FFFBF9A1363589A03401ED00340006B -S315600180204000048D9210001D032EEEEEA12A20025F -S31560018030A21063BBE22600107FFFFE699010001854 -S3156001804080A220001280016701000000C2060010B4 -S3156001805080A0401102800005030048D17FFFA4681B -S3156001806090102012030048D1821061671B226AF3C7 -S31560018070C22620209A1361EFDA262024C20E202020 -S3156001808080A0600102800004010000007FFFA45C03 -S315600180909010201AC20E202180A060230280000465 -S315600180A0010000007FFFA4569010201BC20E202203 -S315600180B080A0604502800004010000007FFFA4509B -S315600180C09010201CC20E202380A0606702800004ED -S315600180D0010000007FFFA44A9010201DC20E2024DB -S315600180E080A0608902800004010000007FFFA44433 -S315600180F09010201EC20E202580A060AB0280000475 -S31560018100010000007FFFA43E9010201FC20E2026B2 -S3156001811080A060CD02800004010000007FFFA438CA -S3156001812090102020C20E202780A060EF02800004FC -S31560018130010000007FFFA43290102021C21620208A -S31560018140832860108330601080A061230280000460 -S31560018150010000007FFFA42A90102022DA16202257 -S315600181609B2B6010030000119B33601082106167C6 -S3156001817080A3400102800004010000007FFFA4206B -S3156001818090102023DA1620249B2B60100300002216 -S315600181909B336010821061AB80A3400102800004B2 -S315600181A0010000007FFFA41690102024DA16202615 -S315600181B09B2B6010030000339B336010821061EFCC -S315600181C080A3400102800005821020307FFFA40C4D -S315600181D09010202582102030C22E2020030C08D159 -S315600181E0DA0620208210616780A3400102800005C3 -S315600181F0821020317FFFA402901020278210203147 -S31560018200C22E2021030C0C51DA06202082106167F0 -S3156001821080A3400102800005821020327FFFA3F80F -S315600182209010202882102032C22E2022210C0C4C64 -S31560018230DA0620208214226780A3400102800005AD -S31560018240821020337FFFA3EE901020298210203305 -S31560018250C22E20239A142233C206202080A0400D0C -S3156001826002800005821020347FFFA3E59010202A4A -S3156001827082102034C22E2024030D2AF3DA0620242C -S31560018280821061EF80A340010280000582102035D3 -S315600182907FFFA3DB9010202B82102035C22E202574 -S315600182A0030D0D73DA062024821061EF80A340016D -S315600182B002800005821020367FFFA3D19010202C0A -S315600182C082102036C22E2026210D0D4DDA0620247D -S315600182D0821422EF80A340010280000582102037BC -S315600182E07FFFA3C79010202D82102037C22E202732 -S315600182F09A142237C206202480A0400D0280000510 -S31560018300210000107FFFA3BE9010202E21000010D7 -S3156001831082142041C23620200310104CDA06202038 -S315600183208210623380A340010280000582142243D9 -S315600183307FFFA3B39010202F82142243C2362022DE -S3156001834003101050DA0620208210624380A3400198 -S3156001835002800005210000117FFFA3A99010203043 -S315600183602100001182142045C23620240311114DCB -S31560018370DA0620248210623780A34001028000055C -S31560018380821422477FFFA39E9010203182142247D8 -S31560018390C236202603111151DA0620248210624763 -S315600183A080A3400102800004010000007FFFA394C6 -S315600183B0901020327FFFFD2FA4102000C206E160DD -S315600183C080A48001168000151B180144D403616CDA -S315600183D096100001A010200080A4001D3680000CBC -S315600183E0A404A001832C800A9B286002992CA0100A -S315600183F082130010C226000DA004200180A4001D76 -S3156001840006BFFFFC9A036004A404A00180A4800B4C -S3156001841026BFFFF2A01020007FFFE49F901020008E -S3156001842003000010808A000112BFFFFC01000000FA -S31560018430A4102000C206E16080A4800116800114A8 -S31560018440921000127FFFFD899010001815180144E3 -S31560018450C202A14C900A0001820E000180A20001B5 -S31560018460A404A00112BFFFF4901020337FFFA36420 -S3156001847001000000C206E16080A4800106BFFFF230 -S3156001848092100012308001027FFFA35D90102001DF -S3156001849010BFFE50833CE00C7FFFE47F901020000C -S315600184A0133FFFF09212603F920A0009A61000087E -S315600184B07FFFE47B901020007FFFE3D2A4102000B1 -S315600184C01303C0009214C0097FFFE4759010200069 -S315600184D080A4801616800009921000129016600022 -S315600184E07FFFFD0494102000A404A00180A48016DF -S315600184F006BFFFFB921000127FFFE3C2010000007E -S315600185007FFFE46590102000913A200A900A2003CB -S3156001851080A2200102800004010000007FFFA338D1 -S315600185209010200201000000921020009016600059 -S315600185307FFFFCE194102000010000007FFFE456FC -S31560018540901020001303C000922A00097FFFE454B3 -S3156001855090102000010000007FFFE3AA01000000E7 -S315600185607FFFE44D90102000913A200C900A200381 -S3156001857080A2200102BFFE1E010000007FFFA32032 -S315600185809010200330BFFE1A921000127FFFFD4546 -S3156001859090100018901A200580A00008A2647FFF41 -S315600185A0A404A001C206E16080A4800106BFFFF8B1 -S315600185B09210001280A4600012BFFE63173FFFBFD6 -S315600185C030BFFE5E7FFFA30E9010200710BFFE3DF9 -S315600185D0A41020007FFFA30A9010200530BFFE2D56 -S315600185E07FFFA3079010201130BFFE997FFFE42A19 -S315600185F090102000033FFFF08210603F920A000155 -S315600186007FFFE42790102000033FFFBFA010638027 -S3156001861092102000941020007FFFFCE290068010EB -S315600186207FFFE41D901020000303C0009212000139 -S315600186307FFFE41B9010200010800006A41020002C -S31560018640900680107FFFFCD794102005A404A0013A -S31560018650C206E16080A4800106BFFFFA9210001293 -S31560018660033FFFBFA01063809A102001DA2E8010AD -S3156001867003004000D80680108210600580A30001C7 -S3156001868002800004010000007FFFA2DD9010200B34 -S315600186907FFFE40190102000913A2006900A2003A2 -S315600186A080A2200102800004010000007FFFA2D4A5 -S315600186B09010200C7FFFE3F8901020001303C00098 -S315600186C0922A00097FFFE3F69010200092102000A5 -S315600186D0900680107FFFFCB3941020007FFFE3EECD -S315600186E0901020002103C000921200107FFFE3EC7E -S315600186F0901020007FFFE3E890102000808A001030 -S3156001870002BFFFFDA6100008A4102000C206E160AA -S3156001871080A480011680000E033FFFBF9A102001DE -S31560018720A2106380A12B401D921000129006801149 -S315600187307FFFFC8D94043FFFA404A001C206E160A3 -S3156001874080A4800106BFFFFA921000121303C000D5 -S31560018750922CC0097FFFE3D2901020002103C00054 -S315600187607FFFE3CD90102000808A001012BFFFFDCD -S315600187701B004000213FFFBF82142380D806800181 -S315600187809A13600580A3000D0280000401000000B9 -S315600187907FFFA29B9010200D7FFFE3BF901020000A -S315600187A0913A2008900A200380A2200122800005C8 -S315600187B0A01423787FFFA2929010200FA014237833 -S315600187C094068010981020119A102055D83A80008E -S315600187D07FFFE3B1901020000303C00092120001F5 -S315600187E0920A7F3F7FFFE3AE90102000A0068010C3 -S315600187F07FFFE3CD9010001010800006A4102000CA -S31560018800900420047FFFFC6794102055A404A00106 -S31560018810C206E16080A4800106BFFFFA92100012D1 -S31560018820113FFFBF901223787FFFE3BF9006800858 -S3156001883080A220111280000480A26055028000048B -S31560018840010000007FFFA26E901020107FFFE3926F -S3156001885090102000833A20068208600380A06001A0 -S3156001886002800004A61000087FFFA2659010201008 -S31560018870133C3FF09212603F920CC0097FFFE38880 -S315600188809010200010BFFDDC821020057FFFE3827F -S31560018890901020009212200F7FFFE381901020003C -S315600188A081C7E00891E820009DE3BF987FFFFC93B4 -S315600188B001000000B0100008130020409212600F02 -S315600188C07FFFE377901020000100000081C7E00878 -S315600188D081E80000033FFFBF821063589DE380017A -S315600188E07FFFFBE401000000400002380100000048 -S315600188F07FFFE36990102008A21000087FFFE366FE -S315600189009010200C7FFFA24DA0100008912A200430 -S315600189107FFFA2369002200C973C6014833C60185E -S31560018920953C2014993C201882086003960AE00F52 -S31560018930820060019602E00AA33C6010A13C20100F -S31560018940980B2003940AA00FA728400B98032001D7 -S31560018950A20C6007A00C20079402A00A9A102001BD -S31560018960A2046002A0042002B12B000A03200000C9 -S31560018970AB2B4011A52B40109620401898057FFF20 -S31560018980822040139A04BFFFAE130001A213400B6D -S31560018990210000307FFFE34090102000808A0010A4 -S315600189A012BFFFFD033FFFBF9A07BFF8821063C086 -S315600189B0A00340012D155555901000189210001016 -S315600189C07FFFE2C89415A15580A220001280004B5A -S315600189D0292AAAAA92100010901000187FFFE2D5EA -S315600189E0941522AA80A220001280004E0100000088 -S315600189F07FFFA21201000000912A20047FFFA1FBE4 -S31560018A009002200A400001EE01000000921522004A -S31560018A10920C4009901000189410001196100012E3 -S31560018A207FFFE2ED981522AA80A2200012800051F4 -S31560018A30010000009215A10090100018920C4009E7 -S31560018A4094100011961000127FFFE2E39815A1556C -S31560018A5080A2200012800044010000007FFFA1F780 -S31560018A6001000000912A20047FFFA1E09002200B03 -S31560018A70901000137FFFE2BF9215A15580A22000DE -S31560018A801280003501000000901000137FFFE2B9EB -S31560018A90921522AA80A220001280002C01000000FB -S31560018AA07FFFA1E601000000912A20047FFFA1CF8C -S31560018AB0900220099010001392100017941000156F -S31560018AC07FFFE2B8961522AA80A220001280001BC1 -S31560018AD00100000090100013921000179410001509 -S31560018AE07FFFE2B09615A15580A220000280002585 -S31560018AF0010000003080000E7FFFA1C190102001AF -S31560018B00292AAAAA92100010901000187FFFE28904 -S31560018B10941522AA80A2200002BFFFB601000000C0 -S31560018B207FFFA1B79010200230BFFFB27FFFA1B4D3 -S31560018B3090102008308000137FFFA1B190102007AC -S31560018B4010BFFFE6901000137FFFA1AD90102006C5 -S31560018B5030BFFFD47FFFA1AA9010200510BFFFCCC4 -S31560018B60901000137FFFA1A69010200430BFFFBCB8 -S31560018B707FFFA1A39010200310BFFFB09215A10043 -S31560018B807FFFFB3CB0102000400001900100000017 -S31560018B900100000081C7E00881E800009DE3BF98FD -S31560018BA07FFFA18D1100412CDA062004D80620042E -S31560018BB09A0B6003993B200282102007C226200887 -S31560018BC0BA036001B20B27FF010000009010200A72 -S31560018BD0C02600007FFFA18501000000170002008A -S31560018BE082103FFFC226000B032AAAAA1B15555500 -S31560018BF0D806000BAC102000821062AA9A13615548 -S31560018C00AA0B000180A5801D16800038A80B000DF7 -S31560018C109612E020A72E600880A4E0000480000C74 -S31560018C20A2102000832DA0028200401819000200C4 -S31560018C309A10000BE820400CEA20400DA204601057 -S31560018C4080A4C01114BFFFFC82006040AC05A00186 -S31560018C5080A5801D06BFFFF280A4E000AC10200055 -S31560018C6080A5801D1680002103000200B8106020D7 -S31560018C70A72E6008AE10001880A4E00004800017DB -S31560018C80A210200003000200A4060001A005C01C7A -S31560018C90C2048000A2046010A404A04080A0401415 -S31560018CA002800004901020017FFFA15501000000A1 -S31560018CB0C2040000A004204080A040150280000488 -S31560018CC0901020017FFFA14E0100000080A4C01119 -S31560018CD014BFFFF001000000AC05A00180A5801D56 -S31560018CE006BFFFE6AE05E0047FFFA1409010200CB1 -S31560018CF0AC10200080A5801D16800088031555558F -S31560018D009E1061551B000800032AAAAA9A136004E3 -S31560018D10901062AAA72E600880A4E0000480000E6D -S31560018D20A2102000832DA0138200401813000800B2 -S31560018D309410000F9610000D98100008D420400979 -S31560018D40D820400BA204600280A4C01114BFFFFCAE -S31560018D5082006008AC05A00180A5801D06BFFFF0FA -S31560018D6080A4E000AC10200080A5801D1680006BF9 -S31560018D7003155555B81061551B000800032AAAAAA8 -S31560018D80B6136004B41062AAA72E600880A4E0003E -S31560018D9004800019A2102000832DA013A0004018A2 -S31560018DA02F000800AA10001CA810001BA410001AAE -S31560018DB0C2040017A204600280A04015028000046C -S31560018DC0901020037FFFA10E01000000C204001471 -S31560018DD0A004200880A040120280000490102003A5 -S31560018DE07FFFA1070100000080A4C01114BFFFF13D -S31560018DF001000000AC05A00180A5801D06BFFFE54E -S31560018E0080A4E000AC10200080A5801D1680004380 -S31560018E10030008009E1060041B155555032AAAAA73 -S31560018E209A136155901062AAA72E600880A4E0008B -S31560018E300480000EA2102000832DA013820040182A -S31560018E40130008009410000F9610000D981000088A -S31560018E50D620400AD8204009A204600280A4C0112D -S31560018E6014BFFFFC82006008AC05A00180A5801DCF -S31560018E7006BFFFF080A4E000AC10200080A5801D35 -S31560018E801680002603155555B81061551B2AAAAAE6 -S31560018E9003000800A72E6008B61362AAB410600426 -S31560018EA080A4E00004800019A2102000832DA01385 -S31560018EB0A00040182F000800AA10001CA810001B73 -S31560018EC0A410001AC2040012A204600280A0401518 -S31560018ED002800004901020047FFFA0C901000000F9 -S31560018EE0C2040017A004200880A040140280000478 -S31560018EF0901020047FFFA0C20100000080A4C01171 -S31560018F0014BFFFF101000000AC05A00180A5801D22 -S31560018F1006BFFFE580A4E00082102005C226200876 -S31560018F201B200000DA26000081C7E00881E8000006 -S31560018F3081C3E0089144400080800000151801401B -S31560018F409412A18090102000921022468180000028 -S31560018F50010000000100000001000000D002800055 -S31560018F609122400881C3E008010000008180000071 -S31560018F70901020018090200180D020011280002C69 -S31560018F800100000080D23FFF168000290100000029 -S31560018F9080DA3FFF9340000080A27FFF12800024A9 -S31560018FA00100000080D23FFF9348000093326014B5 -S31560018FB0920A600F80A260081280001D0100000005 -S31560018FC08180000090102001945220049452A004E4 -S31560018FD09452A00496A2A0401280001501000000E0 -S31560018FE0818000009010200280A000003280001075 -S31560018FF09052000880A220021280000D010000003C -S31560019000818000009010200280A000000100000015 -S31560019010328000079052000880A22002128000046C -S315600190200100000081C3E0089010200181C3E008BF -S31560019030901000001315555592126155A582400096 -S31560019040010000000100000001000000954480005D -S3156001905080A2400A1280004301000000923A40005B -S31560019060A58240000100000001000000010000002F -S315600190709544800080A2400A1280003A01000000F7 -S315600190801100003F901223FFA5800000818000003F -S3156001909001000000010000000100000093F23FFFA3 -S315600190A09A10000993F23FFF93F23FFF93F23FFF5D -S315600190B093F23FFF93F23FFF93F23FFF93F23FFF3D -S315600190C09940000097448000153FFC009412A00867 -S315600190D080A2400A1280002380A2400B12800021E8 -S315600190E080A320071280001F113FFF80901220018C -S315600190F080A340081280001B1100003F901223FFDD -S31560019100A5800000818000000100000001000000D0 -S315600191100100000093FA3FFF93FA3FFF93FA3FFF86 -S3156001912093FA3FFF93FA3FFF93FA3FFF93FA3FFFAC -S3156001913093FA3FFF994000009744800080A260083F -S315600191401280000880A260081280000680A32000B9 -S31560019150128000040100000081C3E0089010200124 -S3156001916081C3E00890100000818000009010200209 -S3156001917080A00000328000109072000880A2200258 -S315600191801280000D01000000818000009010200215 -S3156001919080A0000001000000328000079072000884 -S315600191A080A22002128000040100000081C3E00851 -S315600191B09010200181C3E00890100000C0A000401B -S315600191C081C3E00801000000110020409012200FC9 -S315600191D0D0A0004081C3E008010000009DE3BF9874 -S315600191E07FFFE12D90102008A21000087FFFE12A81 -S315600191F09010200C833C60149B3A2014A13A2018ED -S31560019200A33C6018A20C6003A00C20038208600FC7 -S315600192109A0B600F8200600A9A03600AA2046001D9 -S31560019220A0042001A32C40017FFFFFE5A12C000DC6 -S315600192307FFFE090901000117FFFE09C901000107E -S315600192407FFFF98C010000007FFFFFE081E80000ED -S315600192500100000098120009818200009AAB2FFF7D -S315600192600280002598880000992300099923000946 -S315600192709923000999230009992300099923000973 -S315600192809923000999230009992300099923000963 -S315600192909923000999230009992300099923000953 -S315600192A09923000999230009992300099923000943 -S315600192B09923000999230009992300099923000933 -S315600192C09923000999230009992300099923000923 -S315600192D09923000999230009992300099923000913 -S315600192E099230009992300099923000081C3E008A5 -S315600192F091400000992300099923000999230009E7 -S3156001930099230009992300099923000999230009E2 -S3156001931099230009992300099923000999230009D2 -S3156001932099230009992300009B400000992B200C8A -S315600193309B33601481C3E0089013400C1080000BCE -S31560019340861020008092400816800008861000086A -S31560019350809240001680000480920000168000030F -S3156001936092200009902000089A9240001280000520 -S315600193709610000891D0200281C3E0089010000089 -S3156001938080A2C00D0A8000959410000003020000BF -S3156001939080A2C0010A8000289810000080A34001C5 -S315600193A01A80000D841020019B2B600410BFFFFC06 -S315600193B0980320019A83400D1A8000078400A0015A -S315600193C0832860049B3360019A0340011080000783 -S315600193D08420A00180A3400B0ABFFFF701000000B3 -S315600193E0028000020100000084A0A00106800076D0 -S315600193F0010000009622C00D941020011080000A21 -S3156001940001000000952AA001068000059B336001DA -S315600194109622C00D108000049402A0019602C00D30 -S315600194209422A00184A0A00116BFFFF78092C0001C -S31560019430308000659B2B600480A3400B08BFFFFE54 -S315600194409883200102800065982320018092C000E4 -S31560019450952AA0040680002F9B33600196A2C00D59 -S31560019460068000179B33600196A2C00D0680000B33 -S315600194709B33600196A2C00D068000059B33600197 -S3156001948096A2C00D108000509402A00F9682C00D66 -S315600194901080004D9402A00D9682C00D06800005D5 -S315600194A09B33600196A2C00D108000479402A00B09 -S315600194B09682C00D108000449402A0099682C00D68 -S315600194C00680000B9B33600196A2C00D06800005E5 -S315600194D09B33600196A2C00D1080003B9402A007E9 -S315600194E09682C00D108000389402A0059682C00D48 -S315600194F0068000059B33600196A2C00D1080003284 -S315600195009402A0039682C00D1080002F9402A001E0 -S315600195109682C00D068000179B33600196A2C00D2E -S315600195200680000B9B33600196A2C00D0680000584 -S315600195309B33600196A2C00D108000239402BFFF89 -S315600195409682C00D108000209402BFFD9682C00DE8 -S31560019550068000059B33600196A2C00D1080001A3B -S315600195609402BFFB9682C00D108000179402BFF96A -S315600195709682C00D0680000B9B33600196A2C00DDA -S31560019580068000059B33600196A2C00D1080000E17 -S315600195909402BFF79682C00D1080000B9402BFF54E -S315600195A09682C00D068000059B33600196A2C00DB0 -S315600195B0108000059402BFF39682C00D10800002F0 -S315600195C09402BFF198A3200116BFFFA28092C0004A -S315600195D0268000029602C0098090C00026800002A3 -S315600195E09620000B81C3E0089010000B92100008D2 -S315600195F09010200094102000961020008213C00065 -S31560019600400000039E104000010000009DE3BF98EA -S3156001961023180143400005F6901460F40318006DA9 -S31560019620E0006178D004214880A220002280002DCC -S315600196309004214CD602200480A2E01F1480001DF4 -S315600196400100000080A620001280000B9402208891 -S31560019650832AE0029A02E00182004008DA222004AD -S31560019660F2206008400005FA901460F41080002230 -S31560019670B0102000821020019328400B992AE00245 -S31560019680DA02A1009A1340098203000AF62060807B -S31560019690F422800C80A6200212BFFFEEDA22A1001E -S315600196A0C202A1048210400910BFFFEAC222A104CE -S315600196B0400000139010219080A220000280000BD0 -S315600196C096102000C2042148C2220000D0242148FD -S315600196D0C0222004C022218810BFFFDBC022218C5A -S315600196E010BFFFD5D0242148400005D9901460F4FD -S315600196F0B0103FFF81C7E00881E8000092100008C2 -S3156001970003180141D00063708213C0004000000A53 -S315600197109E104000010000009210000803180141EC -S31560019720D00063708213C000400002199E10400091 -S31560019730010000009DE3BF988206600B80A0601661 -S31560019740A610001818800003A0087FF8A01020104A -S3156001975080A400199A4020008334201F8090400D18 -S31560019760128001B0B0102000400001B090100013CB -S3156001977080A421F71880001799342009391801410E -S315600197808217238098040001F003200C80A6000C48 -S315600197900280004E9F342003C206200494087FFC99 -S315600197A09A06000AC203600482106001D006200C8A -S315600197B0D2062008D2222008C2236004D022600C7F -S315600197C0400001A09010001310800196B006200899 -S315600197D080A32000128000289F342003391801419C -S315600197E09B2BE003821723809A0340011080000AB5 -S315600197F0F003600C94087FFC9622801080A2E00F33 -S315600198001480010980A2E00036BFFFE79A06000ACC -S31560019810F006200C80A6000D32BFFFF7C2062004B9 -S315600198209E03E001251801419814A388F0032008DE -S3156001983080A6000C0280005D833BE01FC206200407 -S3156001984094087FFC9622801080A2E00F1480009F0E -S3156001985080A2E000D823200C06800023D8232008AC -S315600198609A06000AC20360048210600110BFFFD528 -S31560019870C22360048334200680A3200408BFFFD876 -S315600198809E00603880A3201408BFFFD59E03205B2D -S315600198908334200C80A3205408BFFFD19E00606EE4 -S315600198A08334200F80A3215408BFFFCD9E006077CB -S315600198B08334201280A3255408BFFFC99E00607CB3 -S315600198C010BFFFC79E10207E98062008F003200C6B -S315600198D080A6000C32BFFFB2C206200410BFFFD2C1 -S315600198E09E03E00280A2A1FF088000BE9B32A00316 -S315600198F09732A00980A2E000228000179617238084 -S315600199008332A00680A2E004088000129A006038C3 -S3156001991080A2E0140880000F9A02E05B8332A00CFB -S3156001992080A2E0540880000B9A00606E8332A00F1B -S3156001993080A2E154088000079A0060778332A01202 -S3156001994080A2E554088000039A00607C9A10207E0C -S3156001995096172380832B60039000400BD202200868 -S3156001996080A240082280010F99336002C20260041E -S3156001997082087FFC80A0400A28800007D002600C24 -S31560019980D202600880A2400832BFFFFAC2026004B8 -S31560019990D002600CD026200CD2262008F022600C62 -S315600199A0F0222008833BE01F8330601E8203C001E2 -S315600199B03918014183386002981723809A10200173 -S315600199C0932B4001D803200480A2400C1880004BE1 -S315600199D0AE172380808B00091280000D03180141A8 -S315600199E0820BFFFC92024009808B000912800007FE -S315600199F09E0060048210000C920240098088400932 -S31560019A0002BFFFFE9E03E00403180141A2106380BA -S31560019A10A8100011832BE003980040119010000FED -S31560019A209A10000C1080000AF003600C94087FFC09 -S31560019A309622801080A2E00F1480007D80A2E00053 -S31560019A403680008B9A06000AF006200C80A6000D6F -S31560019A5032BFFFF7C20620049E03E001808BE0035C -S31560019A6012BFFFF19A036008808A200398033FF8CA -S31560019A70028000D490023FFFC203200880A0400C00 -S31560019A8002BFFFFB808A200392024009C2052004BF -S31560019A9080A24001188000183918014180A2600037 -S31560019AA0128000068088400910800014AE1723805A -S31560019AB09E03E0048088400922BFFFFE92024009AE -S31560019AC010BFFFD6832BE003821420019406001099 -S31560019AD0C2262004D423200CD42320088212E0015C -S31560019AE0D622800BD822A008C222A00410BFFF355F -S31560019AF0D822A00CAE172380F005E008C206200428 -S31560019B00AA087FFC80A540109A4020009625401047 -S31560019B1080A2E00F148000428210200180934001F0 -S31560019B200280002703180143DA0061982D1801416C -S31560019B309A04000DC205A378A810001580A07FFFC6 -S31560019B40A203601002800004A406001582046FFF60 -S31560019B50A208700090100013400000C0921000111E -S31560019B6080A23FFF02800008B210000880A20012A6 -S31560019B701A8000463B18014380A6001722800044E4 -S31560019B80C207616882172380D8006008DA0320045F -S31560019B909A0B7FFC80A340109840200096234010CA -S31560019BA080A2E00F04800003821020018210200051 -S31560019BB080930001128000980100000098172380AD -S31560019BC0F003200882142001C22620049A060010A0 -S31560019BD08212E001C223600410BFFEFADA23200874 -S31560019BE098033FF8832B60039000400C9B3360021F -S31560019BF0821020018328400DD2022008DA03200456 -S31560019C009A134001D026200CD2262008F022600C3F -S31560019C10DA23200410BFFF64F022200810BFFFC0C2 -S31560019C208210200010BFFEFF9E03FFFFD006200CAE -S31560019C30D20620089A142001940600108214A38883 -S31560019C40D2222008D022600CDA262004D420600CAF -S31560019C50D42060089A12E001D622800BC222A008A5 -S31560019C60DA22A00410BFFED7C222A00CC203600490 -S31560019C7082106001D006200CD2062008C22360043F -S31560019C8010BFFECFD2222008C20761688200401150 -S31560019C9080A640120280004FC2276168C205A37880 -S31560019CA080A07FFF02800045C20761689A26401244 -S31560019CB08200400DC22761689A8E600702800005A6 -S31560019CC0A410200082102008A420400DB206401284 -S31560019CD09A0640119A0B6FFF030000048220400D23 -S31560019CE0A4048001901000134000005C92100012E1 -S31560019CF080A23FFF2280003FA4102000822200192B -S31560019D009000401282172380DA0761689A03401235 -S31560019D1080A60001F2206008DA27616802800037B8 -S31560019D208212200180A5600F38800005C22660047A -S31560019D308210200110BFFF94C2266004C20620046F -S31560019D409A057FF4A80B7FF882086001821040149F -S31560019D50C22620049A06001482102005C2236008D8 -S31560019D6080A5200F18800027C223600419180143BB -S31560019D70DA076168C203219480A34001388000023A -S31560019D80DA23219419180143C203219080A340016B -S31560019D9038BFFF7DDA23219010BFFF7C82172380B5 -S31560019DA09A102001C202E0049B2B400C8210400DE8 -S31560019DB010BFFEF9C222E00410BFFFC0F225A378EE -S31560019DC0C20460048228400910BFFF30C2246004C7 -S31560019DD0808E6FFF12BFFFB3C205A3789004401453 -S31560019DE0DA05E0088212200110BFFFE1C223600498 -S31560019DF010BFFFC39010001910BFFFDDC2266004BB -S31560019E0092062008400000629010001310BFFFD92F -S31560019E10191801434000000B90100013B010200088 -S31560019E2081C7E00881E80000111801429012238879 -S31560019E308213C000400003EE9E1040000100000046 -S31560019E4011180142901223888213C0004000040059 -S31560019E509E104000010000009DE3BF982118014457 -S31560019E60C02421704000020D9010001980A23FFFAE -S31560019E7012800006C204217080A060000280000387 -S31560019E8001000000C226000081C7E00891E80008D1 -S31560019E909DE3BF987FFFFFE590100018031801410D -S31560019EA0A2106380DA046008C2036004A0087FFC24 -S31560019EB0B2240019B2066FEFB20E7000B2067000DE -S31560019EC09210200080A66FFF0480000A901000188F -S31560019ED07FFFFFE201000000C204600882004010BB -S31560019EE080A0400892200019028000059010001899 -S31560019EF07FFFFFD4B0102000308000237FFFFFD7A3 -S31560019F00901000188224001980A23FFF8210600120 -S31560019F1092102000191801430280000B901000185E -S31560019F20DA046008C2236004C203216882204019F2 -S31560019F30901000187FFFFFC3C223216810800012B2 -S31560019F40B01020017FFFFFC50100000098100008D6 -S31560019F50D6046008A023000B9010001880A4200F7F -S31560019F6004BFFFE4B214200103180141DA006378EB -S31560019F709A23000D03180143DA20616810BFFFDDE3 -S31560019F80F222E00481C7E00881E800009DE3BF9802 -S31560019F9080A660000280009DA41000187FFFFFA3C9 -S31560019FA090100018A0067FF8D6042004900AFFFEE0 -S31560019FB01918014194040008A2132380DA02A0044F -S31560019FC0C204600880A0400A028000449E0B7FFCA8 -S31560019FD0808AE001DE22A0041280000CB01020000D -S31560019FE0F2067FF8A024001982046008DA042008CA -S31560019FF080A340010280007D90020019D204200CEA -S3156001A000DA226008D223600C8202800FDA006004D3 -S3156001A010808B60011280000A8212200180A62000D6 -S3156001A020028000229002000FDA02A008D202A00C80 -S3156001A030DA226008D223600C82122001C224200435 -S3156001A04080A6200002800005D0240008B01000120E -S3156001A0507FFFFF7C81E8000080A221FF1880003627 -S3156001A060973220099B32200398132380832B600348 -S3156001A0709200400C9B336002821020018328400DC0 -S3156001A080D6026008DA0320049A134001D224200C18 -S3156001A090D6242008E022E00CDA232004E0226008BE -S3156001A0A010BFFFECB010001203180141DA02A008DC -S3156001A0B08210638880A3400132BFFFDED202A00C0A -S3156001A0C0E023600CE0236008DA242008DA24200CFF -S3156001A0D010BFFFDAB0102001808AE001128000090A -S3156001A0E09002000FF2067FF8A0240019D204200C1A -S3156001A0F0D6042008D622600890020019D222E00C0C -S3156001A10003180141DA00637C98122001E02460089B -S3156001A11080A2000D0ABFFFCFD82420040318014393 -S3156001A120D20061987FFFFF5B901000127FFFFF45B1 -S3156001A13081E8000080A2E000028000169B322003C5 -S3156001A1408332200680A2E004088000129A006038FB -S3156001A15080A2E0140880000F9A02E05B8332200C33 -S3156001A16080A2E0540880000B9A00606E8332200F53 -S3156001A17080A2E154088000079A006077833220123A -S3156001A18080A2E554088000039A00607C9A10207EC4 -S3156001A19094132380832B60039200400AD6026008E1 -S3156001A1A080A2C0090280001399336002C202E004F2 -S3156001A1B082087FFC80A0400828800007D202E00C5C -S3156001A1C0D602E00880A2C00932BFFFFAC202E004EB -S3156001A1D0D202E00CD224200CD6242008E022E00C26 -S3156001A1E010BFFFB0E022600810BFFF88B0102001E9 -S3156001A1F09A102001C202A0049B2B400C8210400DD4 -S3156001A20010BFFFF5C222A00481C7E00881E8000003 -S3156001A2109DE3BF98D206400080A2600012800004D0 -S3156001A220901000187FFFFF5A81E800007FFFFFF959 -S3156001A230010000007FFFFF5681E800000100000079 -S3156001A2409DE3BF9803180141DA00637080A6000D93 -S3156001A2500280004101000000D206204C80A260000D -S3156001A2601280001CA0102000D206214880A2600046 -S3156001A2702280000FD2062054A006214C80A24010F5 -S3156001A2802280000BD206205410800005B21000090E -S3156001A290F20640007FFFFF3E9010001880A400196F -S3156001A2A012BFFFFC92100019D206205480A26000F2 -S3156001A2B01280002501000000C206203880A06000DF -S3156001A2C0028000250100000010800017C206203CB4 -S3156001A2D0832C2002F202400180A660002280000BDE -S3156001A2E0A004200192100019F20640007FFFFF28AA -S3156001A2F09010001880A6600012BFFFFC9210001932 -S3156001A300D206204CA004200180A4200E04BFFFF2D7 -S3156001A310832C20027FFFFF1E9010001810BFFFD410 -S3156001A320D20621489FC0400090100018F20622E034 -S3156001A33080A6600002800008010000007FFFFFB573 -S3156001A34081E800007FFFFF129010001810BFFFDC4C -S3156001A350C206203881C7E00881E800009DE3BF9806 -S3156001A36080A620000280001D03180141E4062148F1 -S3156001A37080A4A00022800013C206203CE204A0044F -S3156001A380A2847FFF0C80000A832C60028200401247 -S3156001A390A0006008C20400009FC04000A0043FFC0A -S3156001A3A0A2847FFF3CBFFFFDC2040000E40480007D -S3156001A3B080A4A00032BFFFF3E204A004C206203CE1 -S3156001A3C080A0600002800007010000009FC040007D -S3156001A3D0901000183080000310BFFFE5F000637035 -S3156001A3E081C7E00881E800001080000B861020001C -S3156001A3F08092400816800008861A400880924000C4 -S3156001A40016800004809200001680000392200009E5 -S3156001A410902000089A92400012800005961000086C -S3156001A42091D0200281C3E0089010000080A2C00D87 -S3156001A4300A800095941000000302000080A2C0010A -S3156001A4400A8000289810000080A340011A80000D40 -S3156001A450841020019B2B600410BFFFFC9803200130 -S3156001A4609A83400D1A8000078400A0018328600446 -S3156001A4709B3360019A034001108000078420A0018C -S3156001A48080A3400B0ABFFFF70100000002800002B3 -S3156001A4900100000084A0A001068000760100000092 -S3156001A4A09622C00D941020011080000A0100000060 -S3156001A4B0952AA001068000059B3360019622C00D96 -S3156001A4C0108000049402A0019602C00D9422A0019E -S3156001A4D084A0A00116BFFFF78092C000308000659E -S3156001A4E09B2B600480A3400B08BFFFFE988320016D -S3156001A4F002800065982320018092C000952AA004FD -S3156001A5000680002F9B33600196A2C00D068000175E -S3156001A5109B33600196A2C00D0680000B9B336001E0 -S3156001A52096A2C00D068000059B33600196A2C00D00 -S3156001A530108000509402A00F9682C00D1080004DCD -S3156001A5409402A00D9682C00D068000059B336001C2 -S3156001A55096A2C00D108000479402A00B9682C00D92 -S3156001A560108000449402A0099682C00D0680000BFB -S3156001A5709B33600196A2C00D068000059B33600186 -S3156001A58096A2C00D1080003B9402A0079682C00D72 -S3156001A590108000389402A0059682C00D06800005E1 -S3156001A5A09B33600196A2C00D108000329402A00315 -S3156001A5B09682C00D1080002F9402A0019682C00D74 -S3156001A5C0068000179B33600196A2C00D0680000BC2 -S3156001A5D09B33600196A2C00D068000059B33600126 -S3156001A5E096A2C00D108000239402BFFF9682C00D13 -S3156001A5F0108000209402BFFD9682C00D0680000582 -S3156001A6009B33600196A2C00D1080001A9402BFFBB5 -S3156001A6109682C00D108000179402BFF99682C00D14 -S3156001A6200680000B9B33600196A2C00D0680000573 -S3156001A6309B33600196A2C00D1080000E9402BFF795 -S3156001A6409682C00D1080000B9402BFF59682C00DF4 -S3156001A650068000059B33600196A2C00D108000053F -S3156001A6609402BFF39682C00D108000029402BFF17E -S3156001A67098A3200116BFFFA28092C0002680000227 -S3156001A6809422A0018090C000268000029420000AD6 -S3156001A69081C3E0089010000A19180144DA03217495 -S3156001A6A080A36000128000068203400803180144FB -S3156001A6B09A106188DA23217482034008C2232174C7 -S3156001A6C081C3E0089010000DA7500000AE10000194 -S3156001A6D08334E00129180143E8052038A92CC01408 -S3156001A6E08215000181E000008190400001000000B8 -S3156001A6F00100000001000000E03BA000E43BA0086F -S3156001A700E83BA010EC3BA018F03BA020F43BA0284E -S3156001A710F83BA030FC3BA03881E8000082100017AE -S3156001A72081C4400081CC800001000000010000006E -S3156001A73001000000A7500000A92CE0012B1801437D -S3156001A740EA056038AB34C015AA15401481954000FE -S3156001A75001000000010000000100000081E8000026 -S3156001A76081E80000E01BA000E41BA008E81BA01024 -S3156001A770EC1BA018F01BA020F41BA028F81BA0302E -S3156001A780FC1BA03881E0000081E0000081C440002C -S3156001A79081CC8000A75000002918006CADC521044A -S3156001A7A00100000027180143A614E018E024C00048 -S3156001A7B0818C2020010000000100000001000000E2 -S3156001A7C09DE3BFA09DE3BFA09DE3BFA09DE3BFA0A6 -S3156001A7D09DE3BFA09DE3BFA09DE3BFA081E800000C -S3156001A7E081E8000081E8000081E8000081E800005E -S3156001A7F081E8000081E8000027180143A614E018EB -S3156001A800C024C000E203A068A4046004E223A0643B -S3156001A810E423A06810800262AC100000291801428E -S3156001A820A81523FCC2252000C8252004E025201098 -S3156001A830E2252014E4252018E825201C81E8000083 -S3156001A8408348000082106F0081886020010000004B -S3156001A850010000000100000009180143C801203809 -S3156001A86081E000008821200180A920FF0280000389 -S3156001A870010000000100000080A1000012BFFFF985 -S3156001A8800100000009180143C801203881E8000071 -S3156001A89080A920FF02800003010000000100000082 -S3156001A8A08821200180A1000012BFFFF9010000008C -S3156001A8B081E0000029180142A81523FCC80520047F -S3156001A8C0C2052000E0052010E2052014E4052018E9 -S3156001A8D0C025201C818C20000100000001000000C1 -S3156001A8E00100000081C4800081CCA004A0142F0067 -S3156001A8F0818C0000010000000100000001000000E1 -S3156001A90081C4800081CCA00480A66002128000050B -S3156001A910A8142F00818D0000B01420203080001F04 -S3156001A92080A6600312800006A80E2F00AA2C2F00B5 -S3156001A930A8154014818D00003080001880A660043F -S3156001A94012800008A9480000A8152040818D0000EA -S3156001A9500100000001000000010000003080000FCE -S3156001A96080A6600512800008A9480000A82D204035 -S3156001A970818D00000100000001000000010000005F -S3156001A9803080000680A66006128000030100000088 -S3156001A99030BFFFA391D0200081C4800081CCA00488 -S3156001A9A09210200381C3E00891D020029210200208 -S3156001A9B081C3E00891D020029210200681C3E0088D -S3156001A9C091D0200281C3E0080100000081C3E00844 -S3156001A9D00100000081C3E00801000000AE25A0105F -S3156001A9E0A75000002D18006AAC15A1F02918006C5B -S3156001A9F081C522AC01000000111801439012202488 -S3156001AA00D202000092026001D2220000932DE0087A -S3156001AA10902C2F0092120009111801439012201CEC -S3156001AA20D002000080A000082280000292126F000E -S3156001AA30818A602001000000010000000100000021 -S3156001AA4090100017400000319203A06092142F000D -S3156001AA50818A602001000000010000000100000001 -S3156001AA601118014390122024D20200009222600143 -S3156001AA70D22200001080022DAC1000001B18014488 -S3156001AA809A13602C912A2002C2034008C222600CEC -S3156001AA9081C3E008D22340089DE3BF9803180144AF -S3156001AAA08210602C992E60021B180143972E600458 -S3156001AAB0D800400C9A13622C901000199202C00DB6 -S3156001AAC080A6601F1480000F82102000108000068F -S3156001AAD080A320002280000AC2024000D803200C15 -S3156001AAE080A3200012BFFFFC80A300097FFFFFE463 -S3156001AAF0F02240001080000382102000F022400006 -S3156001AB0081C7E00891E800019DE3BF981B180143E6 -S3156001AB1082136028D800600480A300180280004474 -S3156001AB20C203602880A6200022800002B010000CBB -S3156001AB3003180144A32E20028210602CE00040110C -S3156001AB4080A420000280003D03180143108000129A -S3156001AB50A41061A8D2042008941000199FC30000B4 -S3156001AB609010001803180143C20061A080A0600024 -S3156001AB701280002B01000000C204801182007FFF59 -S3156001AB80C2248011E004200C80A420000280002BE6 -S3156001AB9001000000D804000080A3200022BFFFFB53 -S3156001ABA0E004200C03180143DA00622880A36000E8 -S3156001ABB0128000089610001203180143821061A8E2 -S3156001ABC0DA00401180A3600032BFFFF0E004200C80 -S3156001ABD0DA02C011031801439A036001C20061A43D -S3156001ABE080A0600002BFFFDCDA22C0119FC0400076 -S3156001ABF001000000D8040000D20420089410001956 -S3156001AC009FC300009010001803180143C20061A0A1 -S3156001AC1080A0600022BFFFDAC20480119FC040009D -S3156001AC200100000010BFFFD6C2048011DA0060C0C7 -S3156001AC3010BFFFBDB00B601F81C7E00881E800004F -S3156001AC408C10000FA74800008B34E0188A09600F4A -S3156001AC5080A160030280000C0B1801438A116030E9 -S3156001AC600920000088112070C82140000B1801439B -S3156001AC708A1160500920000088112040C8214000D7 -S3156001AC80108000399010200192102006400001DDED -S3156001AC900100000080A0000802800033010000006E -S3156001ACA0C2022010113FFC0082084008110003FC1B -S3156001ACB08410400890100002921020019410200C1C -S3156001ACC0400001E60100000080A000080280002625 -S3156001ACD001000000400001F6921000010B180143CB -S3156001ACE08A116030D221400090100002921020013A -S3156001ACF094102011400001D90100000080A00008D5 -S3156001AD000280001901000000400001E99210000173 -S3156001AD10920260100B1801438A116050D2214000E3 -S3156001AD2090100002921020019410200D400001CB7A -S3156001AD300100000080A000080280000B01000000F5 -S3156001AD40400001DB921000010B1801438A11602853 -S3156001AD50D2214000D40260109532A010940AA00F4F -S3156001AD60D42160049E10000681C3E0080100000042 -S3156001AD7003180143821060488210200191D020009F -S3156001AD8081C3E008010000009DE3BF9803180144F8 -S3156001AD90C20060C8901000189210001980A060006F -S3156001ADA002800005B01020009FC040000100000035 -S3156001ADB0B010000881C7E00881E800009DE3BF98F4 -S3156001ADC003180144C20060C49010001880A060009E -S3156001ADD002800005B01020009FC040000100000005 -S3156001ADE0B010000881C7E00881E800009DE3BF98C4 -S3156001ADF003180144C20060BC9010001880A0600076 -S3156001AE0002800005B01020009FC0400001000000D4 -S3156001AE10B010000881C7E00881E800009DE3BF9893 -S3156001AE2003180144C20060C09010001880A0600041 -S3156001AE3002800005B01020009FC0400001000000A4 -S3156001AE40B010000881C7E00881E800009DE3BF9863 -S3156001AE5003180144C20060B89010001880A0600019 -S3156001AE6002800005B01020009FC040000100000074 -S3156001AE70B010000881C7E00881E800009DE3BF9833 -S3156001AE8003180144C20060B49010001880A06000ED -S3156001AE9002800005B01020009FC040000100000044 -S3156001AEA0B010000881C7E00881E800009DE3BF9803 -S3156001AEB003180144C20060B09010001880A06000C1 -S3156001AEC002800005B01020009FC040000100000014 -S3156001AED0B010000881C7E00881E800009DE3BF98D3 -S3156001AEE003180144C20060AC90100018921000195A -S3156001AEF080A0600002800005B01020009FC0400065 -S3156001AF0001000000B010000881C7E00881E8000078 -S3156001AF10010000000318006B821063E09FC04000CF -S3156001AF200100000003180000821060008198400053 -S3156001AF300318006C821060649FC04000010000002D -S3156001AF400318006B821063D09FC0400001000000AF -S3156001AF508B4800008B3160188A09600380A1600309 -S3156001AF6012800007010000008B4440008B31601C99 -S3156001AF7080A1400012800006010000007FFFFF31C2 -S3156001AF80010000007FFF9879010000009C23A0402A -S3156001AF907FFF981C010000008210200191D02000E3 -S3156001AFA00100000029000004A68C00143280000311 -S3156001AFB0A02C001491D02000818C000001000000BB -S3156001AFC0010000000100000081C4800081CCA00462 -S3156001AFD081C3E0080100000081C1E00801000000B2 -S3156001AFE0A74800008B34E0188A09600380A16003DA -S3156001AFF0128000080100000021180143A0142040BE -S3156001B000A2102003E22400008B4440001080000857 -S3156001B01021180143A0142040A2102002E22400005E -S3156001B02021200000E60420248B34E0148A09601F85 -S3156001B03027180143A614E038CA24C0008A016001BA -S3156001B04027180143A614E034CA24C0002718014317 -S3156001B050A614E03C8A216002CA24C00081C3E008CC -S3156001B0600100000081C3E008010000008348000080 -S3156001B070833060188208600380A060031280000636 -S3156001B0800100000083444000050000088228400258 -S3156001B090A3804000881000000918006B81C1231449 -S3156001B0A0010000009DE3BF980318006D1B18006D39 -S3156001B0B0A01061609A13616080A4000D1A8000106F -S3156001B0C0A210000D10800006C204000080A40011C9 -S3156001B0D01A80000B01000000C204000080A060001D -S3156001B0E002BFFFFBA00420049FC0400001000000D6 -S3156001B0F080A400112ABFFFFAC204000081C7E008DC -S3156001B10081E80000AA27A0B0E0256060E2256064BE -S3156001B110E4256068C2256074C43D6078C83D60807E -S3156001B120CC3D608885400000C425606CF03D609030 -S3156001B130F43D6098F83D60A0FC3D60A8A810200130 -S3156001B140A92D0010808D00130280001301000000FC -S3156001B1508534E00107180143C600E038A72CC00317 -S3156001B1608414C0028408A0FF81E000008190A000E1 -S3156001B170E03BA000E43BA008E83BA010EC3BA01834 -S3156001B180F03BA020F43BA028F83BA030FC3BA03864 -S3156001B19081E8000081C5A0089C10001505180143CF -S3156001B1A08410A19CC400800080A0800002800004FD -S3156001B1B0010000009FC080009203A060818C200086 -S3156001B1C0821020028328401005180143C400A03470 -S3156001B1D085304002821040028550000080888001DF -S3156001B1E0028000208328A00107180143C600E038C9 -S3156001B1F08530800382104002820860FF8190600082 -S3156001B200C203A06C81806000F01BA090F41BA09823 -S3156001B210F81BA0A0FC1BA0A8C203A074C41BA07845 -S3156001B220C81BA080CC1BA088E003A060E203A064D9 -S3156001B230E403A06881E80000E01BA000E41BA0080D -S3156001B240E81BA010EC1BA018F01BA020F41BA02883 -S3156001B250F81BA030FC1BA0381080000F81E00000B5 -S3156001B260C203A06C81806000F01BA090F41BA098C3 -S3156001B270F81BA0A0FC1BA0A8C203A074C41BA078E5 -S3156001B280C81BA080CC1BA088E003A060E203A06479 -S3156001B290E403A068818C2000010000000100000029 -S3156001B2A00100000081C4400081CC8000AA27A0B0C3 -S3156001B2B0C2256074C43D6078C83D6080CC3D6088BD -S3156001B2C085400000C425606CA8102001A92D0010DE -S3156001B2D0808D001302800013010000008534E001B7 -S3156001B2E007180143C600E038A72CC0038414C002C6 -S3156001B2F08408A0FF81E000008190A000E03BA000EF -S3156001B300E43BA008E83BA010EC3BA018F03BA02072 -S3156001B310F43BA028F83BA030FC3BA03881E8000054 -S3156001B32081C5A0089C100015051801438410A19CD5 -S3156001B330C400800080A0800002800004010000003B -S3156001B3409FC080009203A060818C20008210200241 -S3156001B3508328401005180143C400A034853040029B -S3156001B36082104002855000008088800102800019A9 -S3156001B3708328A00107180143C600E03885308003A1 -S3156001B38082104002820860FF81906000C203A06C57 -S3156001B39081806000C203A074C41BA078C81BA08012 -S3156001B3A0CC1BA08881E80000E01BA000E41BA0087C -S3156001B3B0E81BA010EC1BA018F01BA020F41BA02812 -S3156001B3C0F81BA030FC1BA0381080000881E000004B -S3156001B3D0C203A06C81806000C203A074C41BA07804 -S3156001B3E0C81BA080CC1BA088818C200001000000B6 -S3156001B3F0010000000100000081C4400081CC800092 -S3156001B400821000089A10380096102000912AE005F3 -S3156001B41098034008D40340089132A01880A2000125 -S3156001B420328000089602E0019132A00C900A2FFF4B -S3156001B43080A20009028000079410000C9602E001C8 -S3156001B44080A2E00728BFFFF3912AE005941020004F -S3156001B45081C3E0089010000A82100008981020004D -S3156001B460912B20039A004008D60040089132E018DB -S3156001B47080A2000932800008980320019132E00C15 -S3156001B480900A2FFF80A2000A028000079610000D25 -S3156001B4909803200180A3200F28BFFFF3912B20037F -S3156001B4A09610200081C3E0089010000BD40220049E -S3156001B4B0173FFC00920A400B900A800B9132200CD8 -S3156001B4C0921240081100003F901223F0940A8008FE -S3156001B4D0952AA0049412800B920A400A81C3E0085F -S3156001B4E0901000099DE3BF980318006D82106148B2 -S3156001B4F0DA007FFC80A37FFF02800009A0007FFC49 -S3156001B5008210000D9FC04000A0043FFCC2040000F1 -S3156001B51080A07FFF12BFFFFC0100000081C7E00829 -S3156001B52081E800009DE3BF9881C7E00881E80000DB -S3156001B53000000000000000000000000000000000A4 -S3156001B54000000002FFFFFFFF000000000000000096 -S3156001B55000000002FFFFFFFF000000000000000086 -S3156001B56040080000000000003CD203AF9EE756167B -S3156001B5703E7AD7F29ABCAF4860050220000000000F -S3156001B580430000009DE3BFA07FFF96DB0100000042 -S3156001B5907FFFFFD50100000081C7E00881E8000058 -S3156001B5A09DE3BFA07FFF96B60100000081C7E0085A -S3156001B5B081E80000000000000000000000000000BB -S315600200000000000100000000000000006001B55819 -S315600200102000000000000000000000000000000058 -S315600200200000000000000000000000000000000068 -S315600200300000000000000000000000000000000058 -S315600200400000000000000000000000000000000048 -S315600200500000000000000000000000010000000037 -S315600200600000000000000000000000000000000028 -S315600200700000000000000000000000000000000018 -S315600200800000000000000000000000000000000008 -S3156002009000000000000000000000000000000001F7 -S315600200A000000000000000000000000000000000E8 -S315600200B000000000000000000000000000000000D8 -S315600200C000000000000000000000000000000000C8 -S315600200D000000000000000000000000000000000B8 -S315600200E00000000100000000000000410000000066 -S315600200F0343074693934612B307967697975303592 -S315600201007968617035796934682B612B69697978A8 -S315600201106869346B35396A30713930356A6B6F7933 -S3156002012070686F70746A72686961346979302B3489 -S315600201300000000000000000000000010000000056 -S3156002014040000000000000004008000000000000BF -S31560020150401800000000000080000000000000005F -S315600201600000000000000000BFF000000000000078 -S31560020170BF800000000000000000000000000000D8 -S315600201800000000000000000000000000000000007 -S315600201903FF0000000000000400800000000000080 -S315600201A03FF0000040000000000000000000000078 -S315600201B03F80000040400000000000000000000098 -S315600201C000000000000000000000000000000000C7 -S315600201D0000000000000000048000001000000006E -S315600201E0480000000000000046C000000000000059 -S315600201F03FF0000000000000400000000000000028 -S3156002020040080000000000003F800000000000007F -S31560020210529000000000000052900FF807F60DEBB6 -S3156002022052901FE03F61BAD052902FB8D4E30F4884 -S3156002023052903F81F636B80C52904F3BD03C0A64DE -S3156002024052905EE68EFAD48B52906E825DA8FC2B3B -S3156002025052907E0F66AFED0752908D8DD3B1D9AABB -S3156002026052909CFDCD8ED0095290AC5F7C69A3C83A -S315600202705290BBB307ACAFDB5290CAF8960E710DC3 -S315600202805290DA304D95FB065290E95A539F492CAB -S315600202905290F876CCDF6CD952910785DD689A293F -S315600202A052911687A8AE14A35291257C5187FD09F7 -S315600202B052913463FA37014E5291433EC467EFFB63 -S315600202C05291520CD1372FEB529160CE41341D744C -S315600202D052916F8334644DF952917E2BCA46BAB9F4 -S315600202E052918CC821D6D3E352919B58598F7C9FE9 -S315600202F05291A9DC8F6DF1045291B854E0F496A044 -S315600203005291C6C16B2DB8705291D5224AAE2EE17A -S315600203105291E3779B97F4A85291F1C1799CA8FF19 -S31560020320529200000000000052920E33499A21A9AF -S3156002033052921C5B70D9F82452922A788FC76DE567 -S315600203405292388AC0059C28529246921AD4EA4939 -S315600203505292548EB9151E8552926280B347609648 -S315600203605292706821902E9A52927E451BB944C36E -S3156002037052928C17B9337834529299E01118857576 -S315600203805292A79E3A2CD2E65292B5524AE1278EF3 -S315600203905292C2FC595456A75292D09C7B54E03E6C -S315600203A05292DE32C66287415292EBBF4FAFDD4B4D -S315600203B05292F9422C23C47E529306BB705AE7C30B -S315600203C05293142B30A929AB52932191811B0A4176 -S315600203D052932EEE7577041652933C42213EE0C943 -S315600203E05293498C97B10540529356CDEBC9B5E20B -S315600203F0529364063044530652937135779C8DCB83 -S3156002040052937E5BD40F95A152938B79579D3EABE7 -S315600204105293988E1409212E5293A59A1ADBB257DB -S315600204205293B29D7D6356625293BF984CB56C7778 -S315600204305293CC8A99AF54535293D97474F76DF22E -S315600204405293E655EEFE13675293F32F17FE8D0411 -S31560020450529400000000000052940CC8B6D657C2EF -S31560020460529419894C2329F052942641CF5695729B -S31560020470529432F24FB01C7A52943F9ADC3F79CE54 -S3156002048052944C3B83E57153529458D455549C1AFA -S31560020490529465655F122FF6529471EEAF76C2C6BC -S315600204A052947E7054AF098952948AEA5CBC935F17 -S315600204B05294975CD57680885294A3C7CC8A358A43 -S315600204C05294B02B4F7C0A885294BC876BA7F6EC89 -S315600204D05294C8DC2E4239805294D529A457FCFC2A -S315600204E05294E16FDACFF9375294EDAEDE6B10FEBD -S315600204F05294F9E6BBC4ECB3529506177F5491BB8E -S3156002050052951241356CF6E052951E63EA3D95B0FE -S3156002051052952A7FA9D2F8EA5295369480174810E6 -S31560020520529542A278D2D03652954EA99FAC8A0F86 -S3156002053052955AAA002A9D5A529566A3A5B2E1B16E -S31560020540529572969B8B5CD852957E82ECDABE8D02 -S3156002055052958A68A4A8D9F352959647CDDF1CA511 -S315600205605295A220734903775295ADF29F948CFB04 -S315600205705295B9BE5D52A9DA5295C583B6F7AB03F9 -S315600205805295D142B6DBADC55295DCFB673B05DFC2 -S315600205905295E8ADD236A58F5295F45A01D483B4FA -S315600205A0529600000000000052960B9FD68A455470 -S315600205B0529617398F2AAA48529622CD337F0FE870 -S315600205C052962E5ACD0C3EBE529639E2653E421B7B -S315600205D0529645640568C1C3529650DFB6C759F450 -S315600205E052965C55827DF1D2529667C57199104BCF -S315600205F05296732F8D0E2F7752967E93DDBC0E73B5 -S31560020600529689F26C6B01D05296954B41CD4293CC -S315600206100BC0A4068F346C9B0BC093731C18544793 -S315600206200BC083008E183C230BC072AE83A9704A3E -S315600206300BC0627C9CC166FF0BC0526A7ACE64A410 -S315600206400BC04277C0B04ADA0BC032A412B191A095 -S315600206500BC022EF168069500BC0135873280473BF -S315600206600BC003DFD10A08480BBFE909B3B04632B3 -S315600206700BBFCA8E711B8E880BBFAC4D32D4143041 -S315600206800BBF8E4553D34B1B0BBF7076318237EF50 -S315600206900BBF52DF2BADF99C0BBF357FA47C936CED -S315600206A00BBF18570061F5EB0BBEFB64A61545152B -S315600206B00BBEDEA7FE865A2B0BBEC22074D37FBC4E -S315600206C00BBEA5CD763F66690BBE89AE722750F02A -S315600206D00BBE6DC2D9F976230BBE520A212B976CDB -S315600206E00BBE3683BD31CAA20BBE1B2F257575CADA -S315600206F00BBE000BD34C7BAF0BBDE51941F097FEE9 -S315600207000BBDCA56EE76E9D00BBDAFC457C7AB7305 -S315600207100BBD9560FE9616690BBD7B2C655872758E -S315600207200BBD612610404EC00BBD474D8532E409B4 -S315600207300BBD2DA24BC19EDF0BBD1423ED22D10151 -S315600207400BBCFAD1F42A88E40BBCE1ABED438E8094 -S315600207500BBCC8B1666884820BBCAFE1EF1D2D018C -S315600207600BBC973D1867D0EF0BBC7EC274CAC962D8 -S315600207700BBC6671983E29FE0BBC4E4A18298BA9A2 -S315600207800BBC364B8B5DF6DB0BBC1E758A0FECBF62 -S315600207900BBC06C7ADD18E7E0BBBEF41918CE1F6E9 -S315600207A00BBBD7E2D17E33360BBBC0AB0B2E921B93 -S315600207B00BBBA999DD6E6B650BBB92AEE8503CA78D -S315600207C00BBB7BE9CD2362720BBB654A2E6F002C95 -S315600207D00BBB4ECFAFED00FE0BBB3879F685313FD2 -S315600207E00BBB2248A8486FDE0BBB0C3B6C6BF73B1E -S315600207F00BBAF651EB44BCEE0BBAE08BCE42E7F194 -S315600208000BBACAE8BFED5CC00BBAB5686BDD5EDDDC -S315600208100BBAA00A7EBA475E0BBA8ACEA6354FEBF2 -S315600208200BBA75B4910571DB0BBA60BBEEE358EF98 -S315600208300BBA4BE4708569410BBA372DC79BD7FE5D -S315600208400BBA2297A6CCD68C0BBA0E21C1B0CFA01A -S315600208500BB9F9CBCCCEB6050BB9E5957D98648B11 -S315600208600BB9D17E8A670EE70BB9BD86AA77C3102C -S315600208700BB9A9AD95E7FAC40BB995F305B23CE598 -S315600208800BB98256B3AACE570BB96ED85A7C72068A -S315600208900BB95B77B5A537C80BB94834817359CCA8 -S315600208A00BB9350E7B02284D0BB922056037032E34 -S315600208B00BB90F18EFBE614A0BB8FC48E908E5228E -S315600208C00BB8E9950C487EA90BB8D6FD1A6D99E866 -S315600208D00BB8C480D5245A340BB8B21FFED1E1BC22 -S315600208E00BB89FDA5A91A5260BB88DAFAC32CB0AFC -S315600208F00BB87B9FB83596F60BB869AA43C8DFE199 -S315600209000BB857CF14C791B50BB8460DF1B639C6B9 -S315600209100BB83466A1C09DF90BB822D8ECB75E6EEF -S315600209200BB811649B0DA16B0BB8000975D6C9593A -S315600209300BB7EEC746C434A50BB7DD9DD823075265 -S315600209400BB7CC8CF4D9FE010BB7BB9468674A50DF -S315600209500BB7AAB3FEDE78540BB799EB84E65D0C4F -S315600209600BB7893AC7B70D960BB778A19517DF0112 -S315600209700BB7681FBB5D6E910BB757B50967B24C73 -S315600209800BB747614EA011A20BB737245AF78614EC -S315600209900BB726FDFEE4C3A00BB716EE0B6268E842 -S315600209A00BB706F451ED36CE0BB6F710A4824F8024 -S315600209B00BB6E742D59D7CB40BB6D78AB8377D0EA7 -S315600209C00BB6C7E81FC458720BB6B85AE031BB32D1 -S315600209D00BB6A8E2CDE557F90BB6997FBDBB50457C -S315600209E00BB68A318504A35C0BB67AF7F985A39BAD -S315600209F00BB66BD2F17471FF0BB65CC243777FCED6 -S31560020A000BB64DC5C6A416420BB63EDD527CE4114A -S31560020A100BB63008BEF090CF0BB62147E45855EBC3 -S31560020A200BB6129A9B769D520BB60400BD75A584D1 -S31560020A300BB5F57A23E62B070BB5E706A8BE172C8E -S31560020A400BB5D8A6265733FF0BB5CA58776DE54B5B -S31560020A500BB5BC1D771FE6AB0BB5ADF500EB0E789B -S31560020A600BB59FDEF0AC15940BB591DB229D63F25C -S31560020A700BB583E97355E1C10BB57609BFC7CD32B4 -S31560020A800BB5683BE53F94B80BB55A7FC162B5B604 -S31560020A900BB54CD5322E9F7F0BB53F3C15F79AA10D -S31560020AA00BB531B44B67B45A0BB5243DB17DAE304C -S31560020AB00BB516D8278BF18F0BB509838D378767F0 -S31560020AC00BB4FC3FC27713AE0BB4EF0CA791D4BB49 -S31560020AD00BB4E1EA1D1EA6680BB4D4D8040308E57C -S31560020AE00BB4C7D63D722B370BB4BAE4AAEBF948FE -S31560020AF00BB4AE032E3C2D7E0BB4A131A97965C928 -S31560020B000BB4946FFF043C1C0BB487BE118662362D -S31560020B100BB47B1BC3F1C0BF0BB46E88F97F999B84 -S31560020B200BB4620595AFAD730BB455917C476454B3 -S31560020B300BB4492C9150F96C0BB43CD6B91AA9C8BE -S31560020B400BB4308FD835E60B0BB42457D3768716A1 -S31560020B500BB4182E8FF205900BB40C13F2FEB43B55 -S31560020B600BB40007E232FD1F0BB3F40A4364A167BC -S31560020B700BB3E81AFCA7FBF00BB3DC39F44F468AD9 -S31560020B800BB3D06710E9E1C30BB3C4A239439F4FDD -S31560020B900BB3B8EB54640EF10BB3AD42498DCDDFA6 -S31560020BA00BB3A1A7003DD89B0BB39619602ADF2B26 -S31560020BB00BB38A9951449BB80BB37F26BBB32B798F -S31560020BC00BB373C187D669EA0BB368699E454E4417 -S31560020BD00BB35D1EE7CD4B2D0BB351E14D71B09852 -S31560020BE00BB346B0B86B0FC30BB33B8D1226A15A3B -S31560020BF00BB330764445ADAC0BB3256C389CF6EB43 -S31560020C000BB31A6ED934256E0BB30F7E104535F5CC -S31560020C100BB30499C83BE9D60BB2F9C1EBB53923DC -S31560020C200BB2EEF6657EC6AA0BB2E437209655D5B0 -S31560020C300BB2D984082942630BB2CEDD0793F9E77A -S31560020C400BB2C4420A6177190BB2B9B2FC4ABEDA78 -S31560020C500BB2AF2FC9365EFF0BB2A4B85D37EEC1D9 -S31560020C600BB29A4CA48F90E30BB28FEC8BA9777977 -S31560020C700BB28597FF1D694D0BB27B4EEBAE48DD1D -S31560020C800BB271113E499CEE0BB266DEE4071AA8FE -S31560020C900BB25CB7CA2831380BB2529BDE1796F795 -S31560020CA00BB2488B0D68D8030BB23E8545D7E65A20 -S31560020CB00BB2348A7548AB540BB22A9A89C69A9794 -S31560020CC00BB220B5718446610BB216DB1ADAF53FB8 -S31560020CD00BB20D0B744A39100BB203466C77876CF4 -S31560020CE00BB1F98BF22DD3490BB1EFDBF45D27FF24 -S31560020CF00BB1E636621A457E0BB1DC9B2A9E3DD568 -S31560020D000BB1D30A3D4613EE0BB1C98389925B815F -S31560020D100BB1C006FF26DA3F0BB1B6948DCA2A28FC -S31560020D200BB1AD2C25655D0F0BB1A3CDB603A13D0D -S31560020D300BB19A792FD1E7410BB1912E831E88D2DE -S31560020D400BB187EDA058F0D60BB17EB6781144731D -S31560020D500BB17588FAF80D3A0BB16C6519DDE45D75 -S31560020D600BB1634AC5B31EEF0BB15A39EF877B28C5 -S31560020D700BB151328889CEAE0BB148348207B5DBEE -S31560020D800BB13F3FCD6D43FF0BB136545C44B49A11 -S31560020D900BB12D7220361D870BB124990B07221BCE -S31560020DA00BB11BC90E9AA72D0BB113021CF0880F4B -S31560020DB00BB10A4428254C650BB1018F2271DEE521 -S31560020DC00BB0F8E2FE2B44F40BB0F03FADC25723F2 -S31560020DD00BB0E7A523C37A850BB0DF1352D65AD977 -S31560020DE00BB0D68A2DBDA58C0BB0CE09A756C58988 -S31560020DF00BB0C591B2999FDB0BB0BD2242985115DB -S31560020E000BB0B4BB4A7EEB870BB0AC5CBD93363697 -S31560020E1065300000653010006530200065303000B6 -S31560020E2065304000653050006530600065307000A6 -S31560020E3065308000653090006530A0006530B00096 -S31560020E406530C0006530D0006530E0006530F00086 -S31560020E506531000065311000653120006531300072 -S31560020E606531400065315000653160006531700062 -S31560020E7065318000653190006531A0006531B00052 -S31560020E806531C0006531D0006531E0006531F00042 -S31560020E90653200006532100065322000653230002E -S31560020EA0653240006532500065326000653270001E -S31560020EB065328000653290006532A0006532B0000E -S31560020EC06532C0006532D0006532E0006532F000FE -S31560020ED065330000653310006533200065333000EA -S31560020EE065334000653350006533600065337000DA -S31560020EF065338000653390006533A0006533B000CA -S31560020F006533C0006533D0006533E0006533F000B9 -S31560020F1065340000653410006534200065343000A5 -S31560020F206534400065345000653460006534700095 -S31560020F3065348000653490006534A0006534B00085 -S31560020F406534C0006534D0006534E0006534F00075 -S31560020F506535000065351000653520006535300061 -S31560020F606535400065355000653560006535700051 -S31560020F7065358000653590006535A0006535B00041 -S31560020F806535C0006535D0006535E0006535F00031 -S31560020F90653600006536100065362000653630001D -S31560020FA0653640006536500065366000653670000D -S31560020FB065368000653690006536A0006536B000FD -S31560020FC06536C0006536D0006536E0006536F000ED -S31560020FD065370000653710006537200065373000D9 -S31560020FE065374000653750006537600065377000C9 -S31560020FF065378000653790006537A0006537B000B9 -S315600210006537C0006537D0006537E0006537F000A8 -S315600210106538000065381000653820006538300094 -S315600210206538400065385000653860006538700084 -S3156002103065388000653890006538A0006538B00074 -S315600210406538C0006538D0006538E0006538F00064 -S315600210506539000065391000653920006539300050 -S315600210606539400065395000653960006539700040 -S3156002107065398000653990006539A0006539B00030 -S315600210806539C0006539D0006539E0006539F00020 -S31560021090653A0000653A1000653A2000653A30000C -S315600210A0653A4000653A5000653A6000653A7000FC -S315600210B0653A8000653A9000653AA000653AB000EC -S315600210C0653AC000653AD000653AE000653AF000DC -S315600210D0653B0000653B1000653B2000653B3000C8 -S315600210E0653B4000653B5000653B6000653B7000B8 -S315600210F0653B8000653B9000653BA000653BB000A8 -S31560021100653BC000653BD000653BE000653BF00097 -S31560021110653C0000653C1000653C2000653C300083 -S31560021120653C4000653C5000653C6000653C700073 -S31560021130653C8000653C9000653CA000653CB00063 -S31560021140653CC000653CD000653CE000653CF00053 -S31560021150653D0000653D1000653D2000653D30003F -S31560021160653D4000653D5000653D6000653D70002F -S31560021170653D8000653D9000653DA000653DB0001F -S31560021180653DC000653DD000653DE000653DF0000F -S31560021190653E0000653E1000653E2000653E3000FB -S315600211A0653E4000653E5000653E6000653E7000EB -S315600211B0653E8000653E9000653EA000653EB000DB -S315600211C0653EC000653ED000653EE000653EF000CB -S315600211D0653F0000653F1000653F2000653F3000B7 -S315600211E0653F4000653F5000653F6000653F7000A7 -S315600211F0653F8000653F9000653FA000653FB00097 -S31560021200653FC000653FD000653FE000653FF00086 -S315600212104200000000000000400FFFFFFFFFFFFFDB -S315600212204200000000200000420FFFFFFFFFFFFFA9 -S3156002123040000000000000004210000000080000AC -S3156002124042000000000000013EB000000000000104 -S315600212504200000000000002420F484C0137D208EB -S31560021260C20E780F256007AB41BA079B7AF94BA08D -S315600212704201484C0137D208420E780F256007AB0F -S315600212804217E02D934BECDA420F484C0137D208F5 -S31560021290C21E780F256007ABC20DA7D249883D4EA4 -S315600212A0421F484C0137D208C20E780F256007AB41 -S315600212B042100C446E87CE32C03340AB371208916F -S315600212C00000000000000000C03340AB37120891F6 -S315600212D00000000000000000C29E7A0F236007A68D -S315600212E0C29E7A0F236007A66F3F484C0137D20829 -S315600212F06E2E780F256007AB6F3F485B3D3F64B843 -S315600213006F3F484C0137D208EE2E780F256007AB47 -S315600213106F3F483CC5303F587FE2F780AB123809D1 -S315600213207FD00000000000007FEAF780AB12380928 -S31560021330002000000000000080280000000000007D -S3156002134080100000000000007FEFF780AB123809C2 -S315600213507FEFF2010203A1117FF00000000000009E -S315600213600010000000001000801FFFFFF203A111B1 -S315600213708000000000000000001ABCD0000238099C -S31560021380801ABCD0000001110000000000000000BD -S315600213907E71000000000000416010000000000045 -S315600213A07FE11100000000000178100000000000DB -S315600213B03E880000FFF0000000120C00C073F800C7 -S315600213C0C1EFFFFFC00020003FB3C75D224F280F69 -S315600213D0C1B3C75CFAC08192A12FFF8000001FFFD4 -S315600213E03EE0000000FF0000A01FFF8001FE18071C -S315600213F041CFFFFE0000002040303FFFFFFFFFFDB0 -S3156002140042103FFEFC00000D3FD000003FEFFFFFA1 -S31560021410BFD0000010000000BFB000004FF0003FD8 -S3156002142001701000000000003E8000011A000000FA -S3156002143000000000000000007E7C0000000000004A -S31560021440416A1000010000107FF0000000000000F9 -S3156002145075012034056AC000FA1009091000104FA0 -S31560021460FFF000000000000001002030400302008F -S31560021470003020340000A00B0000000000000000D5 -S315600214807FE0001010200001400000000010200ADA -S315600214907FF00000000000003FEFDFF00FFC484ADB -S315600214A0BFF80000000000007FFF0000000000009F -S315600214B07FFFE000000000007FF4000000000000F3 -S315600214C07FC00000000000007FF8000000000000FE -S315600214D07FF0000000000000FFF000000000000046 -S315600214E0FFF0000000000000800000000000000025 -S315600214F00000000000010000000000000000000083 -S315600215000000000000000000000000000000000073 -S315600215100000000000000000000000000000000063 -S315600215200000000000000000000000000000000053 -S315600215300000000000000000000000000000000043 -S315600215400000000000000000000000000000000033 -S315600215500000000000000000000000000000000023 -S315600215600000000000000000000000000000000013 -S315600215700000000000000000000000000000000003 -S3156002158000000000000000000000000000000000F3 -S3156002159000000000000000000000000000000000E3 -S315600215A000000000000000000000000000000000D3 -S315600215B000000000000000000000000000000000C3 -S315600215C000000000000000000000000000000000B3 -S315600215D000000000000000000000000000000000A3 -S315600215E00000000000000000000000000000000093 -S315600215F00000000000000000000000000000000083 -S315600216000000000000000000000000000000000072 -S315600216100000000000000000000000000000000062 -S315600216200000000000000000000000000000000052 -S315600216300000000000000000000000000000000042 -S315600216400000000000000000000000000000000032 -S315600216500000000000000000000000000000000022 -S315600216600000000000000000000000000000000012 -S315600216700000000000000000000000000000000002 -S3156002168000000000000000000000000000000000F2 -S3156002169000000000000000000000000000000000E2 -S315600216A000000000000000000000000000000000D2 -S315600216B000000000000000000000000000000000C2 -S315600216C000000000000000000000000000000000B2 -S315600216D000000000000000000000000000000000A2 -S315600216E00000000000000000000000000000000092 -S315600216F00000000000000000000000000000000082 -S315600217000000000000000000000000000000000071 -S315600217100000000000000000000000000000000061 -S315600217200000000000000000000000000000000051 -S315600217300000000000000000000000000000000041 -S315600217400000000000000000000000000000000031 -S315600217500000000000000000000000000000000021 -S315600217600000000000000000000000000000000011 -S315600217700000000000000000000000000000000001 -S3156002178000000000000000000000000000000000F1 -S3156002179000000000000000000000000000000000E1 -S315600217A000000000000000000000000000000000D1 -S315600217B000000000000000000000000000000000C1 -S315600217C000000000000000000000000000000000B1 -S315600217D000000000000000000000000000000000A1 -S315600217E00000000000000000000000000000000091 -S315600217F00000000000000000000000000000000081 -S315600218000000000000000000000000000000000070 -S315600218100000000000000000000000000000000060 -S315600218200000000000000000000000000000000050 -S315600218300000000000000000000000000000000040 -S315600218400000000000000000000000000000000030 -S315600218500000000000000000000000000000000020 -S315600218600000000000000000000000000000000010 -S315600218700000000000000000000000000000000000 -S3156002188000000000000000000000000000000000F0 -S3156002189000000000000000000000000000000000E0 -S315600218A000000000000000000000000000000000D0 -S315600218B000000000000000000000000000000000C0 -S315600218C000000000000000000000000000000000B0 -S315600218D000000000000000000000000000000000A0 -S315600218E00000000000000000000000000000000090 -S315600218F00000000000000000000000000000000080 -S31560021900000000000000000000000000000000006F -S31560021910000000000000000000000000000000005F -S31560021920000000000000000000000000000000004F -S31560021930000000000000000000000000000000003F -S31560021940000000000000000000000000000000002F -S31560021950000000000000000000000000000000001F -S31560021960000000000000000000000000000000000F -S3156002197000000000000000000000000000000000FF -S3156002198000000000000000000000000000000000EF -S3156002199000000000000000000000000000000000DF -S315600219A000000000000000000000000000000000CF -S315600219B000000000000000000000000000000000BF -S315600219C000000000000000000000000000000000AF -S315600219D0000000000000000000000000000000009F -S315600219E0000000000000000000000000000000008F -S315600219F0000000000000000000000000000000007F -S31560021A00000000000000000000000000000000006E -S31560021A10000000000000000000000000000000005E -S31560021A20000000000000000000000000000000004E -S31560021A30000000000000000000000000000000003E -S31560021A40000000000000000000000000000000002E -S31560021A50000000000000000000000000000000001E -S31560021A60000000000000000000000000000000000E -S31560021A7000000000000000000000000000000000FE -S31560021A8000000000000000000000000000000000EE -S31560021A9000000000000000000000000000000000DE -S31560021AA000000000000000000000000000000000CE -S31560021AB000000000000000000000000000000000BE -S31560021AC000000000000000000000000000000000AE -S31560021AD0000000000000000000000000000000009E -S31560021AE0000000000000000000000000000000008E -S31560021AF0000000000000000000000000000000007E -S31560021B00000000000000000000000000000000006D -S31560021B10000000000000000000000000000000005D -S31560021B20000000000000000000000000000000004D -S31560021B30000000000000000000000000000000003D -S31560021B40000000000000000000000000000000002D -S31560021B50000000000000000000000000000000001D -S31560021B60000000000000000000000000000000000D -S31560021B7000000000000000000000000000000000FD -S31560021B8000000000000000000000000000000000ED -S31560021B9000000000000000000000000000000000DD -S31560021BA000000000000000000000000000000000CD -S31560021BB000000000000000000000000000000000BD -S31560021BC000000000000000000000000000000000AD -S31560021BD0000000000000000000000000000000009D -S31560021BE0000000000000000000000000000000008D -S31560021BF0000000000000000000000000000000007D -S31560021C00000000000000000000000000000000006C -S31560021C10000000000000000000000000000000005C -S31560021C20000000000000000000000000000000004C -S31560021C30000000000000000000000000000000003C -S31560021C40000000000000000000000000000000002C -S31560021C50000000000000000000000000000000001C -S31560021C60000000000000000000000000000000000C -S31560021C7000000000000000000000000000000000FC -S31560021C8000000000000000000000000000000000EC -S31560021C9000000000000000000000000000000000DC -S31560021CA000000000000000000000000000000000CC -S31560021CB000000000000000000000000000000000BC -S31560021CC000000000000000000000000000000000AC -S31560021CD0000000000000000000000000000000009C -S31560021CE0000000000000000000000000000000008C -S31560021CF0000000000000000000000000000000007C -S31560021D00000000000000000000000000000000006B -S31560021D10000000000000000000000000000000005B -S31560021D20000000000000000000000000000000004B -S31560021D30000000000000000000000000000000003B -S31560021D40000000000000000000000000000000002B -S31560021D50000000000000000000000000000000001B -S31560021D60000000000000000000000000000000000B -S31560021D7000000000000000000000000000000000FB -S31560021D8000000000000000000000000000000000EB -S31560021D9000000000000000000000000000000000DB -S31560021DA000000000000000000000000000000000CB -S31560021DB000000000000000000000000000000000BB -S31560021DC000000000000000000000000000000000AB -S31560021DD0000000000000000000000000000000009B -S31560021DE0000000000000000000000000000000008B -S31560021DF0000000000000000000000000000000007B -S31560021E00000000000000000000000000000000006A -S31560021E10000000000000000000000000000000005A -S31560021E20000000000000000000000000000000004A -S31560021E30000000000000000000000000000000003A -S31560021E40000000000000000000000000000000002A -S31560021E50000000000000000000000000000000001A -S31560021E60000000000000000000000000000000000A -S31560021E7000000000000000000000000000000000FA -S31560021E8000000000000000000000000000000000EA -S31560021E9000000000000000000000000000000000DA -S31560021EA000000000000000000000000000000000CA -S31560021EB000000000000000000000000000000000BA -S31560021EC000000000000000000000000000000000AA -S31560021ED0000000000000000000000000000000009A -S31560021EE0000000000000000000000000000000008A -S31560021EF0000000000000000000000000000000007A -S31560021F000000000000000000000000000000000069 -S31560021F100000000000000000000000000000000059 -S31560021F200000000000000000000000000000000049 -S31560021F300000000000000000000000000000000039 -S31560021F400000000000000000000000000000000029 -S31560021F500000000000000000000000000000000019 -S31560021F600000000000000000000000000000000009 -S31560021F7000000000000000000000000000000000F9 -S31560021F8000000000000000000000000000000000E9 -S31560021F9000000000000000000000000000000000D9 -S31560021FA000000000000000000000000000000000C9 -S31560021FB000000000000000000000000000000000B9 -S31560021FC000000000000000000000000000000000A9 -S31560021FD00000000000000000000000000000000099 -S31560021FE00000000000000000000000000000000089 -S31560021FF00000000000000000000000000000000079 -S315600220000000000000000000000000000000000068 -S315600220100000000000000000000000000000000058 -S315600220200000000000000000000000000000000048 -S315600220300000000000000000000000000000000038 -S315600220400000000000000000000000000000000028 -S315600220500000000000000000000000000000000018 -S315600220600000000000000000000000000000000008 -S3156002207000000000000000000000000000000000F8 -S3156002208000000000000000000000000000000000E8 -S3156002209000000000000000000000000000000000D8 -S315600220A000000000000000000000000000000000C8 -S315600220B000000000000000000000000000000000B8 -S315600220C000000000000000000000000000000000A8 -S315600220D00000000000000000000000000000000098 -S315600220E00000000000000000000000000000000088 -S315600220F00000000000000000000000000000000078 -S315600221000000000000000000000000000000000067 -S315600221100000000000000000000000000000000057 -S315600221200000000000000000000000000000000047 -S315600221300000000000000000000000000000000037 -S315600221400000000000000000000000000000000027 -S315600221500000000000000000000000000000000017 -S315600221600000000000000000000000000000000007 -S3156002217000000000000000000000000000000000F7 -S3156002218000000000000000000000000000000000E7 -S3156002219000000000000000000000000000000000D7 -S315600221A000000000000000000000000000000000C7 -S315600221B000000000000000000000000000000000B7 -S315600221C000000000000000000000000000000000A7 -S315600221D00000000000000000000000000000000097 -S315600221E00000000000000000000000000000000087 -S315600221F00000000000000000000000000000000077 -S315600222000000000000000000000000000000000066 -S315600222100000000000000000000000000000000056 -S315600222200000000000000000000000000000000046 -S315600222300000000000000000000000000000000036 -S315600222400000000000000000000000000000000026 -S315600222500000000000000000000000000000000016 -S315600222600000000000000000000000000000000006 -S3156002227000000000000000000000000000000000F6 -S3156002228000000000000000000000000000000000E6 -S3156002229000000000000000000000000000000000D6 -S315600222A000000000000000000000000000000000C6 -S315600222B000000000000000000000000000000000B6 -S315600222C000000000000000000000000000000000A6 -S315600222D00000000000000000000000000000000096 -S315600222E00000000000000000000000000000000086 -S315600222F00000000000000000000000000000000076 -S315600223000000000000000000000000000000000065 -S315600223100000000000000000000000000000000055 -S315600223200000000000000000000000000000000045 -S315600223300000000000000000000000000000000035 -S315600223400000000000000000000000000000000025 -S315600223500000000000000000000000000000000015 -S315600223600000000000000000000000000000000005 -S3156002237000000000000000000000000000000000F5 -S3156002238000000000000000000000000000000000E5 -S3156002239000000000000000000000000000000000D5 -S315600223A000000000000000000000000000000000C5 -S315600223B000000000000000000000000000000000B5 -S315600223C000000000000000000000000000000000A5 -S315600223D00000000000000000000000000000000095 -S315600223E00000000000000000000000000000000085 -S315600223F00000000000000000000000000000000075 -S315600224000000000000000000000000000000000064 -S315600224100000000000000000000000000000000054 -S315600224200000000000000000000000000000000044 -S315600224300000000000000000000000000000000034 -S315600224400000000000000000000000000000000024 -S315600224500000000000000000000000000000000014 -S315600224600000000000000000000000000000000004 -S3156002247000000000000000000000000000000000F4 -S3156002248000000000000000000000000000000000E4 -S3156002249000000000000000000000000000000000D4 -S315600224A000000000000000000000000000000000C4 -S315600224B000000000000000000000000000000000B4 -S315600224C000000000000000000000000000000000A4 -S315600224D00000000000000000000000000000000094 -S315600224E00000000000000000000000000000000084 -S315600224F00000000000000000000000000000000074 -S315600225000000000000000000000000000000000063 -S315600225100000000000000000000000000000000053 -S315600225200000000000000000000000000000000043 -S315600225300000000000000000000000000000000033 -S315600225400000000000000000000000000000000023 -S315600225500000000000000000000000000000000013 -S315600225600000000000000000000000000000000003 -S3156002257000000000000000000000000000000000F3 -S3156002258000000000000000000000000000000000E3 -S3156002259000000000000000000000000000000000D3 -S315600225A000000000000000000000000000000000C3 -S315600225B000000000000000000000000000000000B3 -S315600225C000000000000000000000000000000000A3 -S315600225D00000000000000000000000000000000093 -S315600225E00000000000000000000000000000000083 -S315600225F00000000000000000000000000000000073 -S315600226000000000000000000000000000000000062 -S315600226100000000000000000000000000000000052 -S315600226200000000000000000000000000000000042 -S315600226300000000000000000000000000000000032 -S315600226400000000000000000000000000000000022 -S315600226500000000000000000000000000000000012 -S315600226600000000000000000000000000000000002 -S3156002267000000000000000000000000000000000F2 -S3156002268000000000000000000000000000000000E2 -S3156002269000000000000000000000000000000000D2 -S315600226A000000000000000000000000000000000C2 -S315600226B000000000000000000000000000000000B2 -S315600226C000000000000000000000000000000000A2 -S315600226D00000000000000000000000000000000092 -S315600226E00000000000000000000000000000000082 -S315600226F00000000000000000000000000000000072 -S315600227000000000000000000000000000000000061 -S315600227100000000000000000000000000000000051 -S315600227200000000000000000000000000000000041 -S315600227300000000000000000000000000000000031 -S315600227400000000000000000000000000000000021 -S315600227500000000000000000000000000000000011 -S315600227600000000000000000000000000000000001 -S3156002277000000000000000000000000000000000F1 -S3156002278000000000000000000000000000000000E1 -S3156002279000000000000000000000000000000000D1 -S315600227A000000000000000000000000000000000C1 -S315600227B000000000000000000000000000000000B1 -S315600227C000000000000000000000000000000000A1 -S315600227D00000000000000000000000000000000091 -S315600227E00000000000000000000000000000000081 -S315600227F00000000000000000000000000000000071 -S315600228000000000000000000000000000000000060 -S315600228100000000000000000000000000000000050 -S315600228200000000000000000000000000000000040 -S315600228300000000000000000000000000000000030 -S315600228400000000000000000000000000000000020 -S315600228500000000000000000000000000000000010 -S315600228600000000000000000000000000000000000 -S3156002287000000000000000000000000000000000F0 -S3156002288000000000000000000000000000000000E0 -S3156002289000000000000000000000000000000000D0 -S315600228A000000000000000000000000000000000C0 -S315600228B000000000000000000000000000000000B0 -S315600228C000000000000000000000000000000000A0 -S315600228D00000000000000000000000000000000090 -S315600228E00000000000000000000000000000000080 -S315600228F00000000000000000000000000000000070 -S31560022900000000000000000000000000000000005F -S31560022910000000000000000000000000000000004F -S31560022920000000000000000000000000000000003F -S31560022930000000000000000000000000000000002F -S31560022940000000000000000000000000000000001F -S31560022950000000000000000000000000000000000F -S3156002296000000000000000000000000000000000FF -S3156002297000000000000000000000000000000000EF -S3156002298000000000000000000000000000000000DF -S3156002299000000000000000000000000000000000CF -S315600229A000000000000000000000000000000000BF -S315600229B000000000000000000000000000000000AF -S315600229C0000000000000000000000000000000009F -S315600229D0000000000000000000000000000000008F -S315600229E0000000000000000000000000000000007F -S315600229F0000000000000000000000000000000006F -S31560022A00000000000000000000000000000000005E -S31560022A10000000000000000000000000000000004E -S31560022A20000000000000000000000000000000003E -S31560022A30000000000000000000000000000000002E -S31560022A40000000000000000000000000000000001E -S31560022A50000000000000000000000000000000000E -S31560022A6000000000000000000000000000000000FE -S31560022A7000000000000000000000000000000000EE -S31560022A8000000000000000000000000000000000DE -S31560022A9000000000000000000000000000000000CE -S31560022AA000000000000000000000000000000000BE -S31560022AB000000000000000000000000000000000AE -S31560022AC0000000000000000000000000000000009E -S31560022AD0000000000000000000000000000000008E -S31560022AE0000000000000000000000000000000007E -S31560022AF0000000000000000000000000000000006E -S31560022B00000000000000000000000000000000005D -S31560022B10000000000000000000000000000000004D -S31560022B20000000000000000000000000000000003D -S31560022B30000000000000000000000000000000002D -S31560022B40000000000000000000000000000000001D -S31560022B50000000000000000000000000000000000D -S31560022B6000000000000000000000000000000000FD -S31560022B7000000000000000000000000000000000ED -S31560022B8000000000000000000000000000000000DD -S31560022B9000000000000000000000000000000000CD -S31560022BA000000000000000000000000000000000BD -S31560022BB000000000000000000000000000000000AD -S31560022BC0000000000000000000000000000000009D -S31560022BD0000000000000000000000000000000008D -S31560022BE0000000000000000000000000000000007D -S31560022BF0000000000000000000000000000000006D -S31560022C00000000000000000000000000000000005C -S31560022C10000000000000000000000000000000004C -S31560022C20000000000000000000000000000000003C -S31560022C30000000000000000000000000000000002C -S31560022C40000000000000000000000000000000001C -S31560022C50000000000000000000000000000000000C -S31560022C6000000000000000000000000000000000FC -S31560022C7000000000000000000000000000000000EC -S31560022C8000000000000000000000000000000000DC -S31560022C9000000000000000000000000000000000CC -S31560022CA000000000000000000000000000000000BC -S31560022CB000000000000000000000000000000000AC -S31560022CC0000000000000000000000000000000009C -S31560022CD0000000000000000000000000000000008C -S31560022CE0000000000000000000000000000000007C -S31560022CF0000000000000000000000000000000006C -S31560022D00000000000000000000000000000000005B -S31560022D10000000000000000000000000000000004B -S31560022D20000000000000000000000000000000003B -S31560022D30000000000000000000000000000000002B -S31560022D40000000000000000000000000000000001B -S31560022D50000000000000000000000000000000000B -S31560022D6000000000000000000000000000000000FB -S31560022D7000000000000000000000000000000000EB -S31560022D8000000000000000000000000000000000DB -S31560022D9000000000000000000000000000000000CB -S31560022DA000000000000000000000000000000000BB -S31560022DB000000000000000000000000000000000AB -S31560022DC0000000000000000000000000000000009B -S31560022DD0000000000000000000000000000000008B -S31560022DE0000000000000000000000000000000007B -S31560022DF0000000000000000000000000000000006B -S31560022E00000000000000000000000000000000005A -S31560022E10000000000000000000000000000000004A -S31560022E20000000000000000000000000000000003A -S31560022E30000000000000000000000000000000002A -S31560022E40000000000000000000000000000000001A -S31560022E50000000000000000000000000000000000A -S31560022E6000000000000000000000000000000000FA -S31560022E7000000000000000000000000000000000EA -S31560022E8000000000000000000000000000000000DA -S31560022E9000000000000000000000000000000000CA -S31560022EA000000000000000000000000000000000BA -S31560022EB000000000000000000000000000000000AA -S31560022EC0000000000000000000000000000000009A -S31560022ED0000000000000000000000000000000008A -S31560022EE0000000000000000000000000000000007A -S31560022EF0000000000000000000000000000000006A -S31560022F000000000000000000000000000000000059 -S31560022F100000000000000000000000000000000049 -S31560022F200000000000000000000000000000000039 -S31560022F300000000000000000000000000000000029 -S31560022F400000000000000000000000000000000019 -S31560022F500000000000000000000000000000000009 -S31560022F6000000000000000000000000000000000F9 -S31560022F7000000000000000000000000000000000E9 -S31560022F8000000000000000000000000000000000D9 -S31560022F9000000000000000000000000000000000C9 -S31560022FA000000000000000000000000000000000B9 -S31560022FB000000000000000000000000000000000A9 -S31560022FC00000000000000000000000000000000099 -S31560022FD00000000000000000000000000000000089 -S31560022FE00000000000000000000000000000000079 -S31560022FF00000000000000000000000000000000069 -S315600230000000000000000000000000000000000058 -S315600230100000000000000000000000000000000048 -S315600230200000000000000000000000000000000038 -S315600230300000000000000000000000000000000028 -S315600230400000000000000000000000000000000018 -S315600230500000000000000000000000000000000008 -S3156002306000000000000000000000000000000000F8 -S3156002307000000000000000000000000000000000E8 -S3156002308000000000000000000000000000000000D8 -S3156002309000000000000000000000000000000000C8 -S315600230A000000000000000000000000000000000B8 -S315600230B000000000000000000000000000000000A8 -S315600230C00000000000000000000000000000000098 -S315600230D00000000000000000000000000000000088 -S315600230E00000000000000000000000000000000078 -S315600230F00000000000000000000000000000000068 -S315600231000000000000000000000000000000000057 -S315600231100000000000000000000000000000000047 -S315600231200000000000000000000000000000000037 -S315600231300000000000000000000000000000000027 -S315600231400000000000000000000000000000000017 -S315600231500000000000000000000000000000000007 -S3156002316000000000000000000000000000000000F7 -S3156002317000000000000000000000000000000000E7 -S3156002318000000000000000000000000000000000D7 -S3156002319000000000000000000000000000000000C7 -S315600231A000000000000000000000000000000000B7 -S315600231B000000000000000000000000000000000A7 -S315600231C00000000000000000000000000000000097 -S315600231D00000000000000000000000000000000087 -S315600231E00000000000000000000000000000000077 -S315600231F00000000000000000000000000000000067 -S315600232000000000000000000000000000000000056 -S315600232100000000000000000000000000000000046 -S315600232200000000000000000000000000000000036 -S315600232300000000000000000000000000000000026 -S315600232400000000000000000000000000000000016 -S315600232500000000000000000000000000000000006 -S3156002326000000000000000000000000000000000F6 -S3156002327000000000000000000000000000000000E6 -S3156002328000000000000000000000000000000000D6 -S3156002329000000000000000000000000000000000C6 -S315600232A000000000000000000000000000000000B6 -S315600232B000000000000000000000000000000000A6 -S315600232C00000000000000000000000000000000096 -S315600232D00000000000000000000000000000000086 -S315600232E00000000000000000000000000000000076 -S315600232F00000000000000000000000000000000066 -S315600233000000000000000000000000000000000055 -S315600233100000000000000000000000000000000045 -S315600233200000000000000000000000000000000035 -S315600233300000000000000000000000000000000025 -S315600233400000000000000000000000000000000015 -S315600233500000000000000000000000000000000005 -S3156002336000000000000000000000000000000000F5 -S3156002337000000000000000000000000000000000E5 -S3156002338000000000000000000000000000000000D5 -S3156002339000000000000000000000000000000000C5 -S315600233A000000000000000000000000000000000B5 -S315600233B000000000000000000000000000000000A5 -S315600233C00000000000000000000000000000000095 -S315600233D00000000000000000000000000000000085 -S315600233E00000000000000000000000000000000075 -S315600233F00000000000000000000000000000000065 -S315600234000000000000000000000000000000000054 -S315600234100000000000000000000000000000000044 -S315600234200000000000000000000000000000000034 -S315600234300000000000000000000000000000000024 -S315600234400000000000000000000000000000000014 -S315600234500000000000000000000000000000000004 -S3156002346000000000000000000000000000000000F4 -S3156002347000000000000000000000000000000000E4 -S3156002348000000000000000000000000000000000D4 -S3156002349000000000000000000000000000000000C4 -S315600234A000000000000000000000000000000000B4 -S315600234B000000000000000000000000000000000A4 -S315600234C00000000000000000000000000000000094 -S315600234D00000000000000000000000000000000084 -S315600234E00000000000000000000000000000000074 -S315600234F00000000000000000000000000000000064 -S315600235000000000000000000000000000000000053 -S315600235100000000000000000000000000000000043 -S315600235200000000000000000000000000000000033 -S315600235300000000000000000000000000000000023 -S315600235400000000000000000000000000000000013 -S315600235500000000000000000000000000000000003 -S3156002356000000000000000000000000000000000F3 -S3156002357000000000000000000000000000000000E3 -S3156002358000000000000000000000000000000000D3 -S3156002359000000000000000000000000000000000C3 -S315600235A000000000000000000000000000000000B3 -S315600235B000000000000000000000000000000000A3 -S315600235C00000000000000000000000000000000093 -S315600235D00000000000000000000000000000000083 -S315600235E00000000000000000000000000000000073 -S315600235F00000000000000000000000000000000063 -S315600236000000000000000000000000000000000052 -S315600236100000000000000000000000000000000042 -S315600236200000000000000000000000000000000032 -S315600236300000000000000000000000000000000022 -S315600236400000000000000000000000000000000012 -S315600236500000000000000000000000000000000002 -S3156002366000000000000000000000000000000000F2 -S3156002367000000000000000000000000000000000E2 -S3156002368000000000000000000000000000000000D2 -S3156002369000000000000000000000000000000000C2 -S315600236A000000000000000000000000000000000B2 -S315600236B000000000000000000000000000000000A2 -S315600236C00000000000000000000000000000000092 -S315600236D00000000000000000000000000000000082 -S315600236E00000000000000000000000000000000072 -S315600236F00000000000000000000000000000000062 -S315600237000000000000000000000000000000000051 -S315600237100000000000000000000000000000000041 -S315600237200000000000000000000000000000000031 -S315600237300000000000000000000000000000000021 -S315600237400000000000000000000000000000000011 -S315600237500000000000000000000000000000000001 -S3156002376000000000000000000000000000000000F1 -S3156002377000000000000000000000000000000000E1 -S3156002378000000000000000000000000000000000D1 -S3156002379000000000000000000000000000000000C1 -S315600237A000000000000000000000000000000000B1 -S315600237B000000000000000000000000000000000A1 -S315600237C00000000000000000000000000000000091 -S315600237D00000000000000000000000000000000081 -S315600237E00000000000000000000000000000000071 -S315600237F00000000000000000000000000000000061 -S315600238000000000000000000000000000000000050 -S315600238100000000000000000000000000000000040 -S315600238200000000000000000000000000000000030 -S315600238300000000000000000000000000000000020 -S315600238400000000000000000000000000000000010 -S315600238500000000000000000000000000000000000 -S3156002386000000000000000000000000000000000F0 -S3156002387000000000000000000000000000000000E0 -S3156002388000000000000000000000000000000000D0 -S3156002389000000000000000000000000000000000C0 -S315600238A000000000000000000000000000000000B0 -S315600238B000000000000000000000000000000000A0 -S315600238C00000000000000000000000000000000090 -S315600238D00000000000000000000000000000000080 -S315600238E00000000000000000000000000000000070 -S315600238F00000000000000000000000000000000060 -S31560023900000000000000000000000000000000004F -S31560023910000000000000000000000000000000003F -S31560023920000000000000000000000000000000002F -S31560023930000000000000000000000000000000001F -S31560023940000000000000000000000000000000000F -S3156002395000000000000000000000000000000000FF -S3156002396000000000000000000000000000000000EF -S3156002397000000000000000000000000000000000DF -S3156002398000000000000000000000000000000000CF -S3156002399000000000000000000000000000000000BF -S315600239A000000000000000000000000000000000AF -S315600239B0000000000000000000000000000000009F -S315600239C0000000000000000000000000000000008F -S315600239D0000000000000000000000000000000007F -S315600239E0000000000000000000000000000000006F -S315600239F0000000000000000000000000000000005F -S31560023A00000000000000000000000000000000004E -S31560023A10000000000000000000000000000000003E -S31560023A20000000000000000000000000000000002E -S31560023A30000000000000000000000000000000001E -S31560023A40000000000000000000000000000000000E -S31560023A5000000000000000000000000000000000FE -S31560023A6000000000000000000000000000000000EE -S31560023A7000000000000000000000000000000000DE -S31560023A8000000000000000000000000000000000CE -S31560023A9000000000000000000000000000000000BE -S31560023AA000000000000000000000000000000000AE -S31560023AB0000000000000000000000000000000009E -S31560023AC0000000000000000000000000000000008E -S31560023AD0000000000000000000000000000000007E -S31560023AE0000000000000000000000000000000006E -S31560023AF0000000000000000000000000000000005E -S31560023B00000000000000000000000000000000004D -S31560023B10000000000000000000000000000000003D -S31560023B20000000000000000000000000000000002D -S31560023B30000000000000000000000000000000001D -S31560023B40000000000000000000000000000000000D -S31560023B5000000000000000000000000000000000FD -S31560023B6000000000000000000000000000000000ED -S31560023B7000000000000000000000000000000000DD -S31560023B8000000000000000000000000000000000CD -S31560023B9000000000000000000000000000000000BD -S31560023BA000000000000000000000000000000000AD -S31560023BB0000000000000000000000000000000009D -S31560023BC0000000000000000000000000000000008D -S31560023BD0000000000000000000000000000000007D -S31560023BE0000000000000000000000000000000006D -S31560023BF0000000000000000000000000000000005D -S31560023C00000000000000000000000000000000004C -S31560023C10000000000000000000000000000000003C -S31560023C20000000000000000000000000000000002C -S31560023C30000000000000000000000000000000001C -S31560023C40000000000000000000000000000000000C -S31560023C5000000000000000000000000000000000FC -S31560023C6000000000000000000000000000000000EC -S31560023C7000000000000000000000000000000000DC -S31560023C8000000000000000000000000000000000CC -S31560023C9000000000000000000000000000000000BC -S31560023CA000000000000000000000000000000000AC -S31560023CB0000000000000000000000000000000009C -S31560023CC0000000000000000000000000000000008C -S31560023CD0000000000000000000000000000000007C -S31560023CE0000000000000000000000000000000006C -S31560023CF0000000000000000000000000000000005C -S31560023D00000000000000000000000000000000004B -S31560023D10000000000000000000000000000000003B -S31560023D20000000000000000000000000000000002B -S31560023D30000000000000000000000000000000001B -S31560023D40000000000000000000000000000000000B -S31560023D5000000000000000000000000000000000FB -S31560023D6000000000000000000000000000000000EB -S31560023D7000000000000000000000000000000000DB -S31560023D8000000000000000000000000000000000CB -S31560023D9000000000000000000000000000000000BB -S31560023DA000000000000000000000000000000000AB -S31560023DB0000000000000000000000000000000009B -S31560023DC0000000000000000000000000000000008B -S31560023DD0000000000000000000000000000000007B -S31560023DE0000000000000000000000000000000006B -S31560023DF0000000000000000000000000000000005B -S31560023E00000000000000000000000000000000004A -S31560023E10000000000000000000000000000000003A -S31560023E20000000000000000000000000000000002A -S31560023E30000000000000000000000000000000001A -S31560023E40000000000000000000000000000000000A -S31560023E5000000000000000000000000000000000FA -S31560023E6000000000000000000000000000000000EA -S31560023E7000000000000000000000000000000000DA -S31560023E8000000000000000000000000000000000CA -S31560023E9000000000000000000000000000000000BA -S31560023EA000000000000000000000000000000000AA -S31560023EB0000000000000000000000000000000009A -S31560023EC0000000000000000000000000000000008A -S31560023ED0000000000000000000000000000000007A -S31560023EE0000000000000000000000000000000006A -S31560023EF0000000000000000000000000000000005A -S31560023F000000000000000000000000000000000049 -S31560023F100000000000000000000000000000000039 -S31560023F200000000000000000000000000000000029 -S31560023F300000000000000000000000000000000019 -S31560023F400000000000000000000000000000000009 -S31560023F5000000000000000000000000000000000F9 -S31560023F6000000000000000000000000000000000E9 -S31560023F7000000000000000000000000000000000D9 -S31560023F8000000000000000000000000000000000C9 -S31560023F9000000000000000000000000000000000B9 -S31560023FA000000000000000000000000000000000A9 -S31560023FB00000000000000000000000000000000099 -S31560023FC00000000000000000000000000000000089 -S31560023FD00000000000000000000000000000000079 -S31560023FE00000000000000000000000000000000069 -S31560023FF00000000000000000000000000000000059 -S315600240000000000000000000000000000000000048 -S315600240100000000000000000000000000000000038 -S315600240200000000000000000000000000000000028 -S315600240300000000000000000000000000000000018 -S315600240400000000000000000000000000000000008 -S3156002405000000000000000000000000000000000F8 -S3156002406000000000000000000000000000000000E8 -S3156002407000000000000000000000000000000000D8 -S3156002408000000000000000000000000000000000C8 -S3156002409000000000000000000000000000000000B8 -S315600240A000000000000000000000000000000000A8 -S315600240B00000000000000000000000000000000098 -S315600240C00000000000000000000000000000000088 -S315600240D00000000000000000000000000000000078 -S315600240E00000000000000000000000000000000068 -S315600240F00000000000000000000000000000000058 -S315600241000000000000000000000000000000000047 -S315600241100000000000000000000000000000000037 -S315600241200000000000000000000000000000000027 -S315600241300000000000000000000000000000000017 -S315600241400000000000000000000000000000000007 -S3156002415000000000000000000000000000000000F7 -S3156002416000000000000000000000000000000000E7 -S3156002417000000000000000000000000000000000D7 -S3156002418000000000000000000000000000000000C7 -S3156002419000000000000000000000000000000000B7 -S315600241A000000000000000000000000000000000A7 -S315600241B00000000000000000000000000000000097 -S315600241C00000000000000000000000000000000087 -S315600241D00000000000000000000000000000000077 -S315600241E00000000000000000000000000000000067 -S315600241F00000000000000000000000000000000057 -S315600242000000000000000000000000000000000046 -S315600242100000000000000000000000000000000036 -S315600242200000000000000000000000000000000026 -S315600242300000000000000000000000000000000016 -S315600242400000000000000000000000000000000006 -S3156002425000000000000000000000000000000000F6 -S3156002426000000000000000000000000000000000E6 -S3156002427000000000000000000000000000000000D6 -S3156002428000000000000000000000000000000000C6 -S3156002429000000000000000000000000000000000B6 -S315600242A000000000000000000000000000000000A6 -S315600242B00000000000000000000000000000000096 -S315600242C00000000000000000000000000000000086 -S315600242D00000000000000000000000000000000076 -S315600242E00000000000000000000000000000000066 -S315600242F00000000000000000000000000000000056 -S315600243000000000000000000000000000000000045 -S315600243100000000000000000000000000000000035 -S315600243200000000000000000000000000000000025 -S315600243300000000000000000000000000000000015 -S315600243400000000000000000000000000000000005 -S3156002435000000000000000000000000000000000F5 -S3156002436000000000000000000000000000000000E5 -S3156002437000000000000000000000000000000000D5 -S3156002438000000000000000000000000000000000C5 -S3156002439000000000000000000000000000000000B5 -S315600243A000000000000000000000000000000000A5 -S315600243B00000000000000000000000000000000095 -S315600243C00000000000000000000000000000000085 -S315600243D00000000000000000000000000000000075 -S315600243E00000000000000000000000000000000065 -S315600243F00000000000000000000000000000000055 -S315600244000000000000000000000000000000000044 -S315600244100000000000000000000000000000000034 -S315600244200000000000000000000000000000000024 -S315600244300000000000000000000000000000000014 -S315600244400000000000000000000000000000000004 -S3156002445000000000000000000000000000000000F4 -S3156002446000000000000000000000000000000000E4 -S3156002447000000000000000000000000000000000D4 -S3156002448000000000000000000000000000000000C4 -S3156002449000000000000000000000000000000000B4 -S315600244A000000000000000000000000000000000A4 -S315600244B00000000000000000000000000000000094 -S315600244C00000000000000000000000000000000084 -S315600244D00000000000000000000000000000000074 -S315600244E00000000000000000000000000000000064 -S315600244F00000000000000000000000000000000054 -S315600245000000000000000000000000000000000043 -S315600245100000000000000000000000000000000033 -S315600245200000000000000000000000000000000023 -S315600245300000000000000000000000000000000013 -S315600245400000000000000000000000000000000003 -S3156002455000000000000000000000000000000000F3 -S3156002456000000000000000000000000000000000E3 -S3156002457000000000000000000000000000000000D3 -S3156002458000000000000000000000000000000000C3 -S3156002459000000000000000000000000000000000B3 -S315600245A000000000000000000000000000000000A3 -S315600245B00000000000000000000000000000000093 -S315600245C00000000000000000000000000000000083 -S315600245D00000000000000000000000000000000073 -S315600245E00000000000000000000000000000000063 -S315600245F00000000000000000000000000000000053 -S315600246000000000000000000000000000000000042 -S315600246100000000000000000000000000000000032 -S315600246200000000000000000000000000000000022 -S315600246300000000000000000000000000000000012 -S315600246400000000000000000000000000000000002 -S3156002465000000000000000000000000000000000F2 -S3156002466000000000000000000000000000000000E2 -S3156002467000000000000000000000000000000000D2 -S3156002468000000000000000000000000000000000C2 -S3156002469000000000000000000000000000000000B2 -S315600246A000000000000000000000000000000000A2 -S315600246B00000000000000000000000000000000092 -S315600246C00000000000000000000000000000000082 -S315600246D00000000000000000000000000000000072 -S315600246E00000000000000000000000000000000062 -S315600246F00000000000000000000000000000000052 -S315600247000000000000000000000000000000000041 -S315600247100000000000000000000000000000000031 -S315600247200000000000000000000000000000000021 -S315600247300000000000000000000000000000000011 -S315600247400000000000000000000000000000000001 -S3156002475000000000000000000000000000000000F1 -S3156002476000000000000000000000000000000000E1 -S3156002477000000000000000000000000000000000D1 -S3156002478000000000000000000000000000000000C1 -S3156002479000000000000000000000000000000000B1 -S315600247A000000000000000000000000000000000A1 -S315600247B00000000000000000000000000000000091 -S315600247C00000000000000000000000000000000081 -S315600247D00000000000000000000000000000000071 -S315600247E00000000000000000000000000000000061 -S315600247F00000000000000000000000000000000051 -S315600248000000000000000000000000000000000040 -S315600248100000000000000000000000000000000030 -S315600248200000000000000000000000000000000020 -S315600248300000000000000000000000000000000010 -S315600248400000000000000000000000000000000000 -S3156002485000000000000000000000000000000000F0 -S3156002486000000000000000000000000000000000E0 -S3156002487000000000000000000000000000000000D0 -S3156002488000000000000000000000000000000000C0 -S3156002489000000000000000000000000000000000B0 -S315600248A000000000000000000000000000000000A0 -S315600248B00000000000000000000000000000000090 -S315600248C00000000000000000000000000000000080 -S315600248D00000000000000000000000000000000070 -S315600248E00000000000000000000000000000000060 -S315600248F00000000000000000000000000000000050 -S31560024900000000000000000000000000000000003F -S31560024910000000000000000000000000000000002F -S31560024920000000000000000000000000000000001F -S31560024930000000000000000000000000000000000F -S3156002494000000000000000000000000000000000FF -S3156002495000000000000000000000000000000000EF -S3156002496000000000000000000000000000000000DF -S3156002497000000000000000000000000000000000CF -S3156002498000000000000000000000000000000000BF -S3156002499000000000000000000000000000000000AF -S315600249A0000000000000000000000000000000009F -S315600249B0000000000000000000000000000000008F -S315600249C0000000000000000000000000000000007F -S315600249D0000000000000000000000000000000006F -S315600249E0000000000000000000000000000000005F -S315600249F0000000000000000000000000000000004F -S31560024A00000000000000000000000000000000003E -S31560024A10000000000000000000000000000000002E -S31560024A20000000000000000000000000000000001E -S31560024A30000000000000000000000000000000000E -S31560024A4000000000000000000000000000000000FE -S31560024A5000000000000000000000000000000000EE -S31560024A6000000000000000000000000000000000DE -S31560024A7000000000000000000000000000000000CE -S31560024A8000000000000000000000000000000000BE -S31560024A9000000000000000000000000000000000AE -S31560024AA0000000000000000000000000000000009E -S31560024AB0000000000000000000000000000000008E -S31560024AC0000000000000000000000000000000007E -S31560024AD0000000000000000000000000000000006E -S31560024AE0000000000000000000000000000000005E -S31560024AF0000000000000000000000000000000004E -S31560024B00000000000000000000000000000000003D -S31560024B10000000000000000000000000000000002D -S31560024B20000000000000000000000000000000001D -S31560024B30000000000000000000000000000000000D -S31560024B4000000000000000000000000000000000FD -S31560024B5000000000000000000000000000000000ED -S31560024B6000000000000000000000000000000000DD -S31560024B7000000000000000000000000000000000CD -S31560024B8000000000000000000000000000000000BD -S31560024B9000000000000000000000000000000000AD -S31560024BA0000000000000000000000000000000009D -S31560024BB0000000000000000000000000000000008D -S31560024BC0000000000000000000000000000000007D -S31560024BD0000000000000000000000000000000006D -S31560024BE0000000000000000000000000000000005D -S31560024BF0000000000000000000000000000000004D -S31560024C00000000000000000000000000000000003C -S31560024C10000000000000000000000000000000002C -S31560024C20000000000000000000000000000000001C -S31560024C30000000000000000000000000000000000C -S31560024C4000000000000000000000000000000000FC -S31560024C5000000000000000000000000000000000EC -S31560024C6000000000000000000000000000000000DC -S31560024C7000000000000000000000000000000000CC -S31560024C8000000000000000000000000000000000BC -S31560024C9000000000000000000000000000000000AC -S31560024CA0000000000000000000000000000000009C -S31560024CB0000000000000000000000000000000008C -S31560024CC0000000000000000000000000000000007C -S31560024CD0000000000000000000000000000000006C -S31560024CE0000000000000000000000000000000005C -S31560024CF0000000000000000000000000000000004C -S31560024D00000000000000000000000000000000003B -S31560024D10000000000000000000000000000000002B -S31560024D20000000000000000000000000000000001B -S31560024D30000000000000000000000000000000000B -S31560024D4000000000000000000000000000000000FB -S31560024D5000000000000000000000000000000000EB -S31560024D6000000000000000000000000000000000DB -S31560024D7000000000000000000000000000000000CB -S31560024D8000000000000000000000000000000000BB -S31560024D9000000000000000000000000000000000AB -S31560024DA0000000000000000000000000000000009B -S31560024DB0000000000000000000000000000000008B -S31560024DC0000000000000000000000000000000007B -S31560024DD0000000000000000000000000000000006B -S31560024DE0000000000000000000000000000000005B -S31560024DF0000000000000000000000000000000004B -S31560024E00000000000000000000000000000000003A -S31560024E10000000000000000000000000000000002A -S31560024E20000000000000000000000000000000001A -S31560024E30000000000000000000000000000000000A -S31560024E4000000000000000000000000000000000FA -S31560024E5000000000000000000000000000000000EA -S31560024E6000000000000000000000000000000000DA -S31560024E7000000000000000000000000000000000CA -S31560024E8000000000000000000000000000000000BA -S31560024E9000000000000000000000000000000000AA -S31560024EA0000000000000000000000000000000009A -S31560024EB0000000000000000000000000000000008A -S31560024EC0000000000000000000000000000000007A -S31560024ED0000000000000000000000000000000006A -S31560024EE0000000000000000000000000000000005A -S31560024EF0000000000000000000000000000000004A -S31560024F000000000000000000000000000000000039 -S31560024F100000000000000000000000000000000029 -S31560024F200000000000000000000000000000000019 -S31560024F300000000000000000000000000000000009 -S31560024F4000000000000000000000000000000000F9 -S31560024F5000000000000000000000000000000000E9 -S31560024F6000000000000000000000000000000000D9 -S31560024F7000000000000000000000000000000000C9 -S31560024F8000000000000000000000000000000000B9 -S31560024F9000000000000000000000000000000000A9 -S31560024FA00000000000000000000000000000000099 -S31560024FB00000000000000000000000000000000089 -S31560024FC00000000000000000000000000000000079 -S31560024FD00000000000000000000000000000000069 -S31560024FE00000000000000000000000000000000059 -S31560024FF00000000000000000000000000000000049 -S315600250000000000000000000000000000000000038 -S315600250100000000000000000000000000000000028 -S315600250200000000000000000000000000000000018 -S315600250300000000000000000000000000000000008 -S3156002504000000000000000000000000000000000F8 -S3156002505000000000000000000000000000000000E8 -S3156002506000000000000000000000000000000000D8 -S3156002507000000000000000000000000000000000C8 -S3156002508000000000000000000000000000000000B8 -S3156002509000000000000000000000000000000000A8 -S315600250A00000000000000000000000000000000098 -S315600250B00000000000000000000000000000000088 -S315600250C00000000000000000000000000000000078 -S315600250D00000000000000000000000000000000068 -S315600250E00000000000000000000000000000000058 -S315600250F00000000000000000000000000000000048 -S315600251000000000000000000000000000000000037 -S315600251100000000000000000000000000000000027 -S315600251200000000000000000000000000000000017 -S315600251300000000000000000000000000000000007 -S3156002514000000000000000000000000000000000F7 -S3156002515000000000000000000000000000000000E7 -S3156002516000000000000000000000000000000000D7 -S3156002517000000000000000000000000000000000C7 -S3156002518000000000000000000000000000000000B7 -S3156002519000000000000000000000000000000000A7 -S315600251A00000000000000000000000000000000097 -S315600251B00000000000000000000000000000000087 -S315600251C00000000000000000000000000000000077 -S315600251D00000000000000000000000000000000067 -S315600251E00000000000000000000000000000000057 -S315600251F00000000000000000000000000000000047 -S315600252000000000000000000000000000000000036 -S315600252100000000000000000000000000000000026 -S315600252200000000000000000000000000000000016 -S315600252300000000000000000000000000000000006 -S3156002524000000000000000000000000000000000F6 -S3156002525000000000000000000000000000000000E6 -S3156002526000000000000000000000000000000000D6 -S3156002527000000000000000000000000000000000C6 -S3156002528000000000000000000000000000000000B6 -S3156002529000000000000000000000000000000000A6 -S315600252A00000000000000000000000000000000096 -S315600252B00000000000000000000000000000000086 -S315600252C00000000000000000000000000000000076 -S315600252D00000000000000000000000000000000066 -S315600252E00000000000000000000000000000000056 -S315600252F00000000000000000000000000000000046 -S315600253000000000000000000000000000000000035 -S315600253100000000000000000000000000000000025 -S315600253200000000000000000000000000000000015 -S315600253300000000000000000000000000000000005 -S3156002534000000000000000000000000000000000F5 -S3156002535000000000000000000000000000000000E5 -S3156002536000000000000000000000000000000000D5 -S3156002537000000000000000000000000000000000C5 -S3156002538000000000000000000000000000000000B5 -S3156002539000000000000000000000000000000000A5 -S315600253A00000000000000000000000000000000095 -S315600253B00000000000000000000000000000000085 -S315600253C00000000000000000000000000000000075 -S315600253D00000000000000000000000000000000065 -S315600253E00000000000000000000000000000000055 -S315600253F00000000000000000000000000000000045 -S315600254000000000000000000000000000000000034 -S315600254100000000000000000000000000000000024 -S315600254200000000000000000000000000000000014 -S315600254300000000000000000000000000000000004 -S3156002544000000000000000000000000000000000F4 -S3156002545000000000000000000000000000000000E4 -S3156002546000000000000000000000000000000000D4 -S3156002547000000000000000000000000000000000C4 -S3156002548000000000000000000000000000000000B4 -S3156002549000000000000000000000000000000000A4 -S315600254A00000000000000000000000000000000094 -S315600254B00000000000000000000000000000000084 -S315600254C00000000000000000000000000000000074 -S315600254D00000000000000000000000000000000064 -S315600254E00000000000000000000000000000000054 -S315600254F00000000000000000000000000000000044 -S315600255000000000000000000000000000000000033 -S315600255100000000000000000000000000000000023 -S315600255200000000000000000000000000000000013 -S315600255300000000000000000000000000000000003 -S3156002554000000000000000000000000000000000F3 -S3156002555000000000000000000000000000000000E3 -S3156002556000000000000000000000000000000000D3 -S3156002557000000000000000000000000000000000C3 -S3156002558000000000000000000000000000000000B3 -S3156002559000000000000000000000000000000000A3 -S315600255A00000000000000000000000000000000093 -S315600255B00000000000000000000000000000000083 -S315600255C00000000000000000000000000000000073 -S315600255D00000000000000000000000000000000063 -S315600255E00000000000000000000000000000000053 -S315600255F00000000000000000000000000000000043 -S315600256000000000000000000000000000000000032 -S315600256100000000000000000000000000000000022 -S315600256200000000000000000000000000000000012 -S315600256300000000000000000000000000000000002 -S3156002564000000000000000000000000000000000F2 -S3156002565000000000000000000000000000000000E2 -S3156002566000000000000000000000000000000000D2 -S3156002567000000000000000000000000000000000C2 -S3156002568000000000000000000000000000000000B2 -S3156002569000000000000000000000000000000000A2 -S315600256A00000000000000000000000000000000092 -S315600256B00000000000000000000000000000000082 -S315600256C00000000000000000000000000000000072 -S315600256D00000000000000000000000000000000062 -S315600256E00000000000000000000000000000000052 -S315600256F00000000000000000000000000000000042 -S315600257000000000000000000000000000000000031 -S315600257100000000000000000000000000000000021 -S315600257200000000000000000000000000000000011 -S315600257300000000000000000000000000000000001 -S3156002574000000000000000000000000000000000F1 -S3156002575000000000000000000000000000000000E1 -S3156002576000000000000000000000000000000000D1 -S3156002577000000000000000000000000000000000C1 -S3156002578000000000000000000000000000000000B1 -S3156002579000000000000000000000000000000000A1 -S315600257A00000000000000000000000000000000091 -S315600257B00000000000000000000000000000000081 -S315600257C00000000000000000000000000000000071 -S315600257D00000000000000000000000000000000061 -S315600257E00000000000000000000000000000000051 -S315600257F00000000000000000000000000000000041 -S315600258000000000000000000000000000000000030 -S315600258100000000000000000000000000000000020 -S315600258200000000000000000000000000000000010 -S315600258300000000000000000000000000000000000 -S3156002584000000000000000000000000000000000F0 -S3156002585000000000000000000000000000000000E0 -S3156002586000000000000000000000000000000000D0 -S3156002587000000000000000000000000000000000C0 -S3156002588000000000000000000000000000000000B0 -S3156002589000000000000000000000000000000000A0 -S315600258A00000000000000000000000000000000090 -S315600258B00000000000000000000000000000000080 -S315600258C00000000000000000000000000000000070 -S315600258D00000000000000000000000000000000060 -S315600258E00000000000000000000000000000000050 -S315600258F00000000000000000000000000000000040 -S31560025900000000000000000000000000000000002F -S31560025910000000000000000000000000000000001F -S31560025920000000000000000000000000000000000F -S3156002593000000000000000000000000000000000FF -S3156002594000000000000000000000000000000000EF -S3156002595000000000000000000000000000000000DF -S3156002596000000000000000000000000000000000CF -S3156002597000000000000000000000000000000000BF -S3156002598000000000000000000000000000000000AF -S31560025990000000000000000000000000000000009F -S315600259A0000000000000000000000000000000008F -S315600259B0000000000000000000000000000000007F -S315600259C0000000000000000000000000000000006F -S315600259D0000000000000000000000000000000005F -S315600259E0000000000000000000000000000000004F -S315600259F0000000000000000000000000000000003F -S31560025A00000000000000000000000000000000002E -S31560025A10000000000000000000000000000000001E -S31560025A20000000000000000000000000000000000E -S31560025A3000000000000000000000000000000000FE -S31560025A4000000000000000000000000000000000EE -S31560025A5000000000000000000000000000000000DE -S31560025A6000000000000000000000000000000000CE -S31560025A7000000000000000000000000000000000BE -S31560025A8000000000000000000000000000000000AE -S31560025A90000000000000000000000000000000009E -S31560025AA0000000000000000000000000000000008E -S31560025AB0000000000000000000000000000000007E -S31560025AC0000000000000000000000000000000006E -S31560025AD0000000000000000000000000000000005E -S31560025AE0000000000000000000000000000000004E -S31560025AF0000000000000000000000000000000003E -S31560025B00000000000000000000000000000000002D -S31560025B10000000000000000000000000000000001D -S31560025B20000000000000000000000000000000000D -S31560025B3000000000000000000000000000000000FD -S31560025B4000000000000000000000000000000000ED -S31560025B5000000000000000000000000000000000DD -S31560025B6000000000000000000000000000000000CD -S31560025B7000000000000000000000000000000000BD -S31560025B8000000000000000000000000000000000AD -S31560025B90000000000000000000000000000000009D -S31560025BA0000000000000000000000000000000008D -S31560025BB0000000000000000000000000000000007D -S31560025BC0000000000000000000000000000000006D -S31560025BD0000000000000000000000000000000005D -S31560025BE0000000000000000000000000000000004D -S31560025BF0000000000000000000000000000000003D -S31560025C00000000000000000000000000000000002C -S31560025C10000000000000000000000000000000001C -S31560025C20000000000000000000000000000000000C -S31560025C3000000000000000000000000000000000FC -S31560025C4000000000000000000000000000000000EC -S31560025C5000000000000000000000000000000000DC -S31560025C6000000000000000000000000000000000CC -S31560025C7000000000000000000000000000000000BC -S31560025C8000000000000000000000000000000000AC -S31560025C90000000000000000000000000000000009C -S31560025CA0000000000000000000000000000000008C -S31560025CB0000000000000000000000000000000007C -S31560025CC0000000000000000000000000000000006C -S31560025CD0000000000000000000000000000000005C -S31560025CE0000000000000000000000000000000004C -S31560025CF0000000000000000000000000000000003C -S31560025D00000000000000000000000000000000002B -S31560025D10000000000000000000000000000000001B -S31560025D20000000000000000000000000000000000B -S31560025D3000000000000000000000000000000000FB -S31560025D4000000000000000000000000000000000EB -S31560025D5000000000000000000000000000000000DB -S31560025D6000000000000000000000000000000000CB -S31560025D7000000000000000000000000000000000BB -S31560025D8000000000000000000000000000000000AB -S31560025D90000000000000000000000000000000009B -S31560025DA0000000000000000000000000000000008B -S31560025DB0000000000000000000000000000000007B -S31560025DC0000000000000000000000000000000006B -S31560025DD0000000000000000000000000000000005B -S31560025DE0000000000000000000000000000000004B -S31560025DF0000000000000000000000000000000003B -S31560025E00000000000000000000000000000000002A -S31560025E10000000000000000000000000000000001A -S31560025E20000000000000000000000000000000000A -S31560025E3000000000000000000000000000000000FA -S31560025E4000000000000000000000000000000000EA -S31560025E5000000000000000000000000000000000DA -S31560025E6000000000000000000000000000000000CA -S31560025E7000000000000000000000000000000000BA -S31560025E8000000000000000000000000000000000AA -S31560025E90000000000000000000000000000000009A -S31560025EA0000000000000000000000000000000008A -S31560025EB0000000000000000000000000000000007A -S31560025EC0000000000000000000000000000000006A -S31560025ED0000000000000000000000000000000005A -S31560025EE0000000000000000000000000000000004A -S31560025EF0000000000000000000000000000000003A -S31560025F000000000000000000000000000000000029 -S31560025F100000000000000000000000000000000019 -S31560025F200000000000000000000000000000000009 -S31560025F3000000000000000000000000000000000F9 -S31560025F4000000000000000000000000000000000E9 -S31560025F5000000000000000000000000000000000D9 -S31560025F6000000000000000000000000000000000C9 -S31560025F7000000000000000000000000000000000B9 -S31560025F8000000000000000000000000000000000A9 -S31560025F900000000000000000000000000000000099 -S31560025FA00000000000000000000000000000000089 -S31560025FB00000000000000000000000000000000079 -S31560025FC00000000000000000000000000000000069 -S31560025FD00000000000000000000000000000000059 -S31560025FE00000000000000000000000000000000049 -S31560025FF00000000000000000000000000000000039 -S315600260000000000000000000000000000000000028 -S315600260100000000000000000000000000000000018 -S315600260200000000000000000000000000000000008 -S3156002603000000000000000000000000000000000F8 -S3156002604000000000000000000000000000000000E8 -S3156002605000000000000000000000000000000000D8 -S3156002606000000000000000000000000000000000C8 -S3156002607000000000000000000000000000000000B8 -S3156002608000000000000000000000000000000000A8 -S315600260900000000000000000000000000000000098 -S315600260A00000000000000000000000000000000088 -S315600260B00000000000000000000000000000000078 -S315600260C00000000000000000000000000000000068 -S315600260D00000000000000000000000000000000058 -S315600260E00000000000000000000000000000000048 -S315600260F00000000000000000000000000000000038 -S315600261000000000000000000000000000000000027 -S315600261100000000000000000000000000000000017 -S315600261200000000000000000000000000000000007 -S3156002613000000000000000000000000000000000F7 -S3156002614000000000000000000000000000000000E7 -S3156002615000000000000000000000000000000000D7 -S3156002616000000000000000000000000000000000C7 -S3156002617000000000000000000000000000000000B7 -S3156002618000000000000000000000000000000000A7 -S315600261900000000000000000000000000000000097 -S315600261A00000000000000000000000000000000087 -S315600261B00000000000000000000000000000000077 -S315600261C00000000000000000000000000000000067 -S315600261D00000000000000000000000000000000057 -S315600261E00000000000000000000000000000000047 -S315600261F00000000000000000000000000000000037 -S315600262000000000000000000000000000000000026 -S315600262100000000000000000000000000000000016 -S315600262200000000000000000000000000000000006 -S3156002623000000000000000000000000000000000F6 -S3156002624000000000000000000000000000000000E6 -S3156002625000000000000000000000000000000000D6 -S3156002626000000000000000000000000000000000C6 -S3156002627000000000000000000000000000000000B6 -S3156002628000000000000000000000000000000000A6 -S315600262900000000000000000000000000000000096 -S315600262A00000000000000000000000000000000086 -S315600262B00000000000000000000000000000000076 -S315600262C00000000000000000000000000000000066 -S315600262D00000000000000000000000000000000056 -S315600262E00000000000000000000000000000000046 -S315600262F00000000000000000000000000000000036 -S315600263000000000000000000000000000000000025 -S315600263100000000000000000000000000000000015 -S315600263200000000000000000000000000000000005 -S3156002633000000000000000000000000000000000F5 -S3156002634000000000000000000000000000000000E5 -S3156002635000000000000000000000000000000000D5 -S3156002636000000000000000000000000000000000C5 -S3156002637000000000000000000000000000000000B5 -S3156002638000000000000000000000000000000000A5 -S315600263900000000000000000000000000000000095 -S315600263A00000000000000000000000000000000085 -S315600263B00000000000000000000000000000000075 -S315600263C00000000000000000000000000000000065 -S315600263D00000000000000000000000000000000055 -S315600263E00000000000000000000000000000000045 -S315600263F00000000000000000000000000000000035 -S315600264000000000000000000000000000000000024 -S315600264100000000000000000000000000000000014 -S315600264200000000000000000000000000000000004 -S3156002643000000000000000000000000000000000F4 -S3156002644000000000000000000000000000000000E4 -S3156002645000000000000000000000000000000000D4 -S3156002646000000000000000000000000000000000C4 -S3156002647000000000000000000000000000000000B4 -S3156002648000000000000000000000000000000000A4 -S315600264900000000000000000000000000000000094 -S315600264A00000000000000000000000000000000084 -S315600264B00000000000000000000000000000000074 -S315600264C00000000000000000000000000000000064 -S315600264D00000000000000000000000000000000054 -S315600264E00000000000000000000000000000000044 -S315600264F00000000000000000000000000000000034 -S315600265000000000000000000000000000000000023 -S315600265100000000000000000000000000000000013 -S315600265200000000000000000000000000000000003 -S3156002653000000000000000000000000000000000F3 -S3156002654000000000000000000000000000000000E3 -S3156002655000000000000000000000000000000000D3 -S3156002656000000000000000000000000000000000C3 -S3156002657000000000000000000000000000000000B3 -S3156002658000000000000000000000000000000000A3 -S315600265900000000000000000000000000000000093 -S315600265A00000000000000000000000000000000083 -S315600265B00000000000000000000000000000000073 -S315600265C00000000000000000000000000000000063 -S315600265D00000000000000000000000000000000053 -S315600265E00000000000000000000000000000000043 -S315600265F00000000000000000000000000000000033 -S315600266000000000000000000000000000000000022 -S315600266100000000000000000000000000000000012 -S315600266200000000000000000000000000000000002 -S3156002663000000000000000000000000000000000F2 -S3156002664000000000000000000000000000000000E2 -S3156002665000000000000000000000000000000000D2 -S3156002666000000000000000000000000000000000C2 -S3156002667000000000000000000000000000000000B2 -S3156002668000000000000000000000000000000000A2 -S315600266900000000000000000000000000000000092 -S315600266A00000000000000000000000000000000082 -S315600266B00000000000000000000000000000000072 -S315600266C00000000000000000000000000000000062 -S315600266D00000000000000000000000000000000052 -S315600266E00000000000000000000000000000000042 -S315600266F00000000000000000000000000000000032 -S315600267000000000000000000000000000000000021 -S315600267100000000000000000000000000000000011 -S315600267200000000000000000000000000000000001 -S3156002673000000000000000000000000000000000F1 -S3156002674000000000000000000000000000000000E1 -S3156002675000000000000000000000000000000000D1 -S3156002676000000000000000000000000000000000C1 -S3156002677000000000000000000000000000000000B1 -S3156002678000000000000000000000000000000000A1 -S315600267900000000000000000000000000000000091 -S315600267A00000000000000000000000000000000081 -S315600267B00000000000000000000000000000000071 -S315600267C00000000000000000000000000000000061 -S315600267D00000000000000000000000000000000051 -S315600267E00000000000000000000000000000000041 -S315600267F00000000000000000000000000000000031 -S315600268000000000000000000000000000000000020 -S315600268100000000000000000000000000000000010 -S315600268200000000000000000000000000000000000 -S3156002683000000000000000000000000000000000F0 -S3156002684000000000000000000000000000000000E0 -S3156002685000000000000000000000000000000000D0 -S3156002686000000000000000000000000000000000C0 -S3156002687000000000000000000000000000000000B0 -S3156002688000000000000000000000000000000000A0 -S315600268900000000000000000000000000000000090 -S315600268A00000000000000000000000000000000080 -S315600268B00000000000000000000000000000000070 -S315600268C00000000000000000000000000000000060 -S315600268D00000000000000000000000000000000050 -S315600268E00000000000000000000000000000000040 -S315600268F00000000000000000000000000000000030 -S31560026900000000000000000000000000000000001F -S31560026910000000000000000000000000000000000F -S3156002692000000000000000000000000000000000FF -S3156002693000000000000000000000000000000000EF -S3156002694000000000000000000000000000000000DF -S3156002695000000000000000000000000000000000CF -S3156002696000000000000000000000000000000000BF -S3156002697000000000000000000000000000000000AF -S31560026980000000000000000000000000000000009F -S31560026990000000000000000000000000000000008F -S315600269A0000000000000000000000000000000007F -S315600269B0000000000000000000000000000000006F -S315600269C0000000000000000000000000000000005F -S315600269D0000000000000000000000000000000004F -S315600269E0000000000000000000000000000000003F -S315600269F0000000000000000000000000000000002F -S31560026A00000000000000000000000000000000001E -S31560026A10000000000000000000000000000000000E -S31560026A2000000000000000000000000000000000FE -S31560026A3000000000000000000000000000000000EE -S31560026A4000000000000000000000000000000000DE -S31560026A5000000000000000000000000000000000CE -S31560026A6000000000000000000000000000000000BE -S31560026A7000000000000000000000000000000000AE -S31560026A80000000000000000000000000000000009E -S31560026A90000000000000000000000000000000008E -S31560026AA0000000000000000000000000000000007E -S31560026AB0000000000000000000000000000000006E -S31560026AC0000000000000000000000000000000005E -S31560026AD0000000000000000000000000000000004E -S31560026AE0000000000000000000000000000000003E -S31560026AF0000000000000000000000000000000002E -S31560026B00000000000000000000000000000000001D -S31560026B10000000000000000000000000000000000D -S31560026B2000000000000000000000000000000000FD -S31560026B3000000000000000000000000000000000ED -S31560026B4000000000000000000000000000000000DD -S31560026B5000000000000000000000000000000000CD -S31560026B6000000000000000000000000000000000BD -S31560026B7000000000000000000000000000000000AD -S31560026B80000000000000000000000000000000009D -S31560026B90000000000000000000000000000000008D -S31560026BA0000000000000000000000000000000007D -S31560026BB0000000000000000000000000000000006D -S31560026BC0000000000000000000000000000000005D -S31560026BD0000000000000000000000000000000004D -S31560026BE0000000000000000000000000000000003D -S31560026BF0000000000000000000000000000000002D -S31560026C00000000000000000000000000000000001C -S31560026C10000000000000000000000000000000000C -S31560026C2000000000000000000000000000000000FC -S31560026C3000000000000000000000000000000000EC -S31560026C4000000000000000000000000000000000DC -S31560026C5000000000000000000000000000000000CC -S31560026C6000000000000000000000000000000000BC -S31560026C7000000000000000000000000000000000AC -S31560026C80000000000000000000000000000000009C -S31560026C90000000000000000000000000000000008C -S31560026CA0000000000000000000000000000000007C -S31560026CB0000000000000000000000000000000006C -S31560026CC0000000000000000000000000000000005C -S31560026CD0000000000000000000000000000000004C -S31560026CE0000000000000000000000000000000003C -S31560026CF0000000000000000000000000000000002C -S31560026D00000000000000000000000000000000001B -S31560026D10000000000000000000000000000000000B -S31560026D2000000000000000000000000000000000FB -S31560026D3000000000000000000000000000000000EB -S31560026D4000000000000000000000000000000000DB -S31560026D5000000000000000000000000000000000CB -S31560026D6000000000000000000000000000000000BB -S31560026D7000000000000000000000000000000000AB -S31560026D80000000000000000000000000000000009B -S31560026D90000000000000000000000000000000008B -S31560026DA0000000000000000000000000000000007B -S31560026DB0000000000000000000000000000000006B -S31560026DC0000000000000000000000000000000005B -S31560026DD0000000000000000000000000000000004B -S31560026DE0000000000000000000000000000000003B -S31560026DF0000000000000000000000000000000002B -S31560026E00000000000000000000000000000000001A -S31560026E10000000000000000000000000000000000A -S31560026E2000000000000000000000000000000000FA -S31560026E3000000000000000000000000000000000EA -S31560026E4000000000000000000000000000000000DA -S31560026E5000000000000000000000000000000000CA -S31560026E6000000000000000000000000000000000BA -S31560026E7000000000000000000000000000000000AA -S31560026E80000000000000000000000000000000009A -S31560026E90000000000000000000000000000000008A -S31560026EA0000000000000000000000000000000007A -S31560026EB0000000000000000000000000000000006A -S31560026EC0000000000000000000000000000000005A -S31560026ED0000000000000000000000000000000004A -S31560026EE0000000000000000000000000000000003A -S31560026EF0000000000000000000000000000000002A -S31560026F000000000000000000000000000000000019 -S31560026F100000000000000000000000000000000009 -S31560026F2000000000000000000000000000000000F9 -S31560026F3000000000000000000000000000000000E9 -S31560026F4000000000000000000000000000000000D9 -S31560026F5000000000000000000000000000000000C9 -S31560026F6000000000000000000000000000000000B9 -S31560026F7000000000000000000000000000000000A9 -S31560026F800000000000000000000000000000000099 -S31560026F900000000000000000000000000000000089 -S31560026FA00000000000000000000000000000000079 -S31560026FB00000000000000000000000000000000069 -S31560026FC00000000000000000000000000000000059 -S31560026FD00000000000000000000000000000000049 -S31560026FE00000000000000000000000000000000039 -S31560026FF00000000000000000000000000000000029 -S315600270000000000000000000000000000000000018 -S315600270100000000000000000000000000000000008 -S3156002702000000000000000000000000000000000F8 -S3156002703000000000000000000000000000000000E8 -S3156002704000000000000000000000000000000000D8 -S3156002705000000000000000000000000000000000C8 -S3156002706000000000000000000000000000000000B8 -S3156002707000000000000000000000000000000000A8 -S315600270800000000000000000000000000000000098 -S315600270900000000000000000000000000000000088 -S315600270A00000000000000000000000000000000078 -S315600270B00000000000000000000000000000000068 -S315600270C00000000000000000000000000000000058 -S315600270D00000000000000000000000000000000048 -S315600270E00000000000000000000000000000000038 -S315600270F00000000000000000000000000000000028 -S315600271000000000000000000000000000000000017 -S315600271100000000000000000000000000000000007 -S3156002712000000000000000000000000000000000F7 -S3156002713000000000000000000000000000000000E7 -S3156002714000000000000000000000000000000000D7 -S3156002715000000000000000000000000000000000C7 -S3156002716000000000000000000000000000000000B7 -S3156002717000000000000000000000000000000000A7 -S315600271800000000000000000000000000000000097 -S315600271900000000000000000000000000000000087 -S315600271A00000000000000000000000000000000077 -S315600271B00000000000000000000000000000000067 -S315600271C00000000000000000000000000000000057 -S315600271D00000000000000000000000000000000047 -S315600271E00000000000000000000000000000000037 -S315600271F00000000000000000000000000000000027 -S315600272000000000000000000000000000000000016 -S315600272100000000000000000000000000000000006 -S3156002722000000000000000000000000000000000F6 -S3156002723000000000000000000000000000000000E6 -S3156002724000000000000000000000000000000000D6 -S3156002725000000000000000000000000000000000C6 -S3156002726000000000000000000000000000000000B6 -S3156002727000000000000000000000000000000000A6 -S315600272800000000000000000000000000000000096 -S315600272900000000000000000000000000000000086 -S315600272A00000000000000000000000000000000076 -S315600272B00000000000000000000000000000000066 -S315600272C00000000000000000000000000000000056 -S315600272D00000000000000000000000000000000046 -S315600272E00000000000000000000000000000000036 -S315600272F00000000000000000000000000000000026 -S315600273000000000000000000000000000000000015 -S315600273100000000000000000000000000000000005 -S3156002732000000000000000000000000000000000F5 -S3156002733000000000000000000000000000000000E5 -S3156002734000000000000000000000000000000000D5 -S3156002735000000000000000000000000000000000C5 -S3156002736000000000000000000000000000000000B5 -S3156002737000000000000000000000000000000000A5 -S315600273800000000000000000000000000000000095 -S315600273900000000000000000000000000000000085 -S315600273A00000000000000000000000000000000075 -S315600273B00000000000000000000000000000000065 -S315600273C00000000000000000000000000000000055 -S315600273D00000000000000000000000000000000045 -S315600273E00000000000000000000000000000000035 -S315600273F00000000000000000000000000000000025 -S315600274000000000000000000000000000000000014 -S315600274100000000000000000000000000000000004 -S3156002742000000000000000000000000000000000F4 -S3156002743000000000000000000000000000000000E4 -S3156002744000000000000000000000000000000000D4 -S3156002745000000000000000000000000000000000C4 -S3156002746000000000000000000000000000000000B4 -S3156002747000000000000000000000000000000000A4 -S315600274800000000000000000000000000000000094 -S315600274900000000000000000000000000000000084 -S315600274A00000000000000000000000000000000074 -S315600274B00000000000000000000000000000000064 -S315600274C00000000000000000000000000000000054 -S315600274D00000000000000000000000000000000044 -S315600274E00000000000000000000000000000000034 -S315600274F00000000000000000000000000000000024 -S315600275000000000000000000000000000000000013 -S315600275100000000000000000000000000000000003 -S3156002752000000000000000000000000000000000F3 -S3156002753000000000000000000000000000000000E3 -S3156002754000000000000000000000000000000000D3 -S3156002755000000000000000000000000000000000C3 -S3156002756000000000000000000000000000000000B3 -S3156002757000000000000000000000000000000000A3 -S315600275800000000000000000000000000000000093 -S315600275900000000000000000000000000000000083 -S315600275A00000000000000000000000000000000073 -S315600275B00000000000000000000000000000000063 -S315600275C00000000000000000000000000000000053 -S315600275D00000000000000000000000000000000043 -S315600275E00000000000000000000000000000000033 -S315600275F00000000000000000000000000000000023 -S315600276000000000000000000000000000000000012 -S315600276100000000000000000000000000000000002 -S3156002762000000000000000000000000000000000F2 -S3156002763000000000000000000000000000000000E2 -S3156002764000000000000000000000000000000000D2 -S3156002765000000000000000000000000000000000C2 -S3156002766000000000000000000000000000000000B2 -S3156002767000000000000000000000000000000000A2 -S315600276800000000000000000000000000000000092 -S315600276900000000000000000000000000000000082 -S315600276A00000000000000000000000000000000072 -S315600276B00000000000000000000000000000000062 -S315600276C00000000000000000000000000000000052 -S315600276D00000000000000000000000000000000042 -S315600276E00000000000000000000000000000000032 -S315600276F00000000000000000000000000000000022 -S315600277000000000000000000000000000000000011 -S315600277100000000000000000000000000000000001 -S3156002772000000000000000000000000000000000F1 -S3156002773000000000000000000000000000000000E1 -S3156002774000000000000000000000000000000000D1 -S3156002775000000000000000000000000000000000C1 -S3156002776000000000000000000000000000000000B1 -S3156002777000000000000000000000000000000000A1 -S315600277800000000000000000000000000000000091 -S315600277900000000000000000000000000000000081 -S315600277A00000000000000000000000000000000071 -S315600277B00000000000000000000000000000000061 -S315600277C00000000000000000000000000000000051 -S315600277D00000000000000000000000000000000041 -S315600277E00000000000000000000000000000000031 -S315600277F00000000000000000000000000000000021 -S315600278000000000000000000000000000000000010 -S315600278100000000000000000000000000000000000 -S3156002782000000000000000000000000000000000F0 -S3156002783000000000000000000000000000000000E0 -S3156002784000000000000000000000000000000000D0 -S3156002785000000000000000000000000000000000C0 -S3156002786000000000000000000000000000000000B0 -S3156002787000000000000000000000000000000000A0 -S315600278800000000000000000000000000000000090 -S315600278900000000000000000000000000000000080 -S315600278A00000000000000000000000000000000070 -S315600278B00000000000000000000000000000000060 -S315600278C00000000000000000000000000000000050 -S315600278D00000000000000000000000000000000040 -S315600278E00000000000000000000000000000000030 -S315600278F00000000000000000000000000000000020 -S31560027900000000000000000000000000000000000F -S3156002791000000000000000000000000000000000FF -S3156002792000000000000000000000000000000000EF -S3156002793000000000000000000000000000000000DF -S3156002794000000000000000000000000000000000CF -S3156002795000000000000000000000000000000000BF -S3156002796000000000000000000000000000000000AF -S31560027970000000000000000000000000000000009F -S31560027980000000000000000000000000000000008F -S31560027990000000000000000000000000000000007F -S315600279A0000000000000000000000000000000006F -S315600279B0000000000000000000000000000000005F -S315600279C0000000000000000000000000000000004F -S315600279D0000000000000000000000000000000003F -S315600279E0000000000000000000000000000000002F -S315600279F0000000000000000000000000000000001F -S31560027A00000000000000000000000000000000000E -S31560027A1000000000000000000000000000000000FE -S31560027A2000000000000000000000000000000000EE -S31560027A3000000000000000000000000000000000DE -S31560027A4000000000000000000000000000000000CE -S31560027A5000000000000000000000000000000000BE -S31560027A6000000000000000000000000000000000AE -S31560027A70000000000000000000000000000000009E -S31560027A80000000000000000000000000000000008E -S31560027A90000000000000000000000000000000007E -S31560027AA0000000000000000000000000000000006E -S31560027AB0000000000000000000000000000000005E -S31560027AC0000000000000000000000000000000004E -S31560027AD0000000000000000000000000000000003E -S31560027AE0000000000000000000000000000000002E -S31560027AF0000000000000000000000000000000001E -S31560027B00000000000000000000000000000000000D -S31560027B1000000000000000000000000000000000FD -S31560027B2000000000000000000000000000000000ED -S31560027B3000000000000000000000000000000000DD -S31560027B4000000000000000000000000000000000CD -S31560027B5000000000000000000000000000000000BD -S31560027B6000000000000000000000000000000000AD -S31560027B70000000000000000000000000000000009D -S31560027B80000000000000000000000000000000008D -S31560027B90000000000000000000000000000000007D -S31560027BA0000000000000000000000000000000006D -S31560027BB0000000000000000000000000000000005D -S31560027BC0000000000000000000000000000000004D -S31560027BD0000000000000000000000000000000003D -S31560027BE0000000000000000000000000000000002D -S31560027BF0000000000000000000000000000000001D -S31560027C00000000000000000000000000000000000C -S31560027C1000000000000000000000000000000000FC -S31560027C2000000000000000000000000000000000EC -S31560027C3000000000000000000000000000000000DC -S31560027C4000000000000000000000000000000000CC -S31560027C5000000000000000000000000000000000BC -S31560027C6000000000000000000000000000000000AC -S31560027C70000000000000000000000000000000009C -S31560027C80000000000000000000000000000000008C -S31560027C90000000000000000000000000000000007C -S31560027CA0000000000000000000000000000000006C -S31560027CB0000000000000000000000000000000005C -S31560027CC0000000000000000000000000000000004C -S31560027CD0000000000000000000000000000000003C -S31560027CE0000000000000000000000000000000002C -S31560027CF0000000000000000000000000000000001C -S31560027D00000000000000000000000000000000000B -S31560027D1000000000000000000000000000000000FB -S31560027D2000000000000000000000000000000000EB -S31560027D3000000000000000000000000000000000DB -S31560027D4000000000000000000000000000000000CB -S31560027D5000000000000000000000000000000000BB -S31560027D6000000000000000000000000000000000AB -S31560027D70000000000000000000000000000000009B -S31560027D80000000000000000000000000000000008B -S31560027D90000000000000000000000000000000007B -S31560027DA0000000000000000000000000000000006B -S31560027DB0000000000000000000000000000000005B -S31560027DC0000000000000000000000000000000004B -S31560027DD0000000000000000000000000000000003B -S31560027DE0000000000000000000000000000000002B -S31560027DF0000000000000000000000000000000001B -S31560027E00000000000000000000000000000000000A -S31560027E1000000000000000000000000000000000FA -S31560027E2000000000000000000000000000000000EA -S31560027E3000000000000000000000000000000000DA -S31560027E4000000000000000000000000000000000CA -S31560027E5000000000000000000000000000000000BA -S31560027E6000000000000000000000000000000000AA -S31560027E70000000000000000000000000000000009A -S31560027E80000000000000000000000000000000008A -S31560027E90000000000000000000000000000000007A -S31560027EA0000000000000000000000000000000006A -S31560027EB0000000000000000000000000000000005A -S31560027EC0000000000000000000000000000000004A -S31560027ED0000000000000000000000000000000003A -S31560027EE0000000000000000000000000000000002A -S31560027EF0000000000000000000000000000000001A -S31560027F000000000000000000000000000000000009 -S31560027F1000000000000000000000000000000000F9 -S31560027F2000000000000000000000000000000000E9 -S31560027F3000000000000000000000000000000000D9 -S31560027F4000000000000000000000000000000000C9 -S31560027F5000000000000000000000000000000000B9 -S31560027F6000000000000000000000000000000000A9 -S31560027F700000000000000000000000000000000099 -S31560027F800000000000000000000000000000000089 -S31560027F900000000000000000000000000000000079 -S31560027FA00000000000000000000000000000000069 -S31560027FB00000000000000000000000000000000059 -S31560027FC00000000000000000000000000000000049 -S31560027FD00000000000000000000000000000000039 -S31560027FE00000000000000000000000000000000029 -S31560027FF00000000000000000000000000000000019 -S315600280000000003F0000000C0000003F000000126C -S31560028010000000FF000000180000000000000000E1 -S3156002802000000000000000000000000000000000E8 -S3156002803000000000000000000000000000000000D8 -S3156002804000000000000000000000000000000000C8 -S3156002805000000000000000000000000000000000B8 -S3156002806000000000000000000000000000000000A8 -S315600280700000000000000000000000000000000098 -S315600280800000000000000000000000000000000088 -S315600280900000000000000000000000000000000078 -S315600280A00000000000000000000000000000000068 -S315600280B00000000000000000000000000000000058 -S315600280C00000000000000000000000000000000048 -S315600280D00000000000000000000000000000000038 -S315600280E00000000000000000000000000000000028 -S315600280F00000000000000000000000000000000018 -S315600281000000000000000000000000000000000007 -S3156002811000000000000000000000000000000000F7 -S3156002812000000000000000000000000000000000E7 -S3156002813000000000000000000000000000000000D7 -S3156002814000000000000000000000000000000000C7 -S3156002815000000000000000000000000000000000B7 -S3156002816000000000000000000000000000000000A7 -S315600281700000000000000000000000000000000097 -S315600281800000000000000000000000000000000087 -S315600281900000000000000000000000000000000077 -S315600281A00000000000000000000000000000000067 -S315600281B00000000000000000000000000000000057 -S315600281C00000000000000000000000000000000047 -S315600281D00000000000000000000000000000000037 -S315600281E00000000000000000000000000000000027 -S315600281F00000000000000000000000000000000017 -S315600282000000000000000000000000000000000006 -S3156002821000000000000000000000000000000000F6 -S3156002822000000000000000000000000000000000E6 -S3156002823000000000000000000000000000000000D6 -S3156002824000000000000000000000000000000000C6 -S3156002825000000000000000000000000000000000B6 -S3156002826000000000000000000000000000000000A6 -S315600282700000000000000000000000000000000096 -S315600282800000000000000000000000000000000086 -S315600282900000000000000000000000000000000076 -S315600282A00000000000000000000000000000000066 -S315600282B00000000000000000000000000000000056 -S315600282C00000000000000000000000000000000046 -S315600282D00000000000000000000000000000000036 -S315600282E00000000000000000000000000000000026 -S315600282F00000000000000000000000000000000016 -S315600283000000000000000000000000000000000005 -S3156002831000000000000000000000000000000000F5 -S3156002832000000000000000000000000000000000E5 -S3156002833000000000000000000000000000000000D5 -S3156002834000000000000000000000000000000000C5 -S3156002835000000000000000000000000000000000B5 -S3156002836000000000000000000000000000000000A5 -S315600283700000000000000000000000000000000095 -S315600283800000000000000000000000000000000085 -S315600283900000000000000000000000000000000075 -S315600283A00000000000000000000000000000000065 -S315600283B00000000000000000000000000000000055 -S315600283C00000000000000000000000000000000045 -S315600283D00000000000000000000000000000000035 -S315600283E00000000000000000000000000000000025 -S315600283F00000000000000000000000000000000015 -S315600284000000000000000000000000000000000004 -S3156002841000000000000000000000000000000000F4 -S3156002842000000000000000000000000000000000E4 -S3156002843000000000000000000000000000000000D4 -S3156002844000000000000000000000000000000000C4 -S3156002845000000000000000000000000000000000B4 -S3156002846000000000000000000000000000000000A4 -S315600284700000000000000000000000000000000094 -S315600284800000000000000000000000000000000084 -S315600284900000000000000000000000000000000074 -S315600284A00000000000000000000000000000000064 -S315600284B00000000000000000000000000000000054 -S315600284C00000000000000000000000000000000044 -S315600284D00000000000000000000000000000000034 -S315600284E00000000000000000000000000000000024 -S315600284F00000000000000000000000000000000014 -S315600285000000000000000000000000000000000003 -S3156002851000000000000000000000000000000000F3 -S3156002852000000000000000000000000000000000E3 -S3156002853000000000000000000000000000000000D3 -S3156002854000000000000000000000000000000000C3 -S3156002855000000000000000000000000000000000B3 -S3156002856000000000000000000000000000000000A3 -S315600285700000000000000000000000000000000093 -S315600285800000000000000000000000000000000083 -S315600285900000000000000000000000000000000073 -S315600285A00000000000000000000000000000000063 -S315600285B00000000000000000000000000000000053 -S315600285C00000000000000000000000000000000043 -S315600285D00000000000000000000000000000000033 -S315600285E00000000000000000000000000000000023 -S315600285F00000000000000000000000000000000013 -S315600286000000000000000000000000000000000002 -S3156002861000000000000000000000000000000000F2 -S3156002862000000000000000000000000000000000E2 -S3156002863000000000000000000000000000000000D2 -S3156002864000000000000000000000000000000000C2 -S3156002865000000000000000000000000000000000B2 -S3156002866000000000000000000000000000000000A2 -S315600286700000000000000000000000000000000092 -S315600286800000000000000000000000000000000082 -S315600286900000000000000000000000000000000072 -S315600286A00000000000000000000000000000000062 -S315600286B00000000000000000000000000000000052 -S315600286C00000000000000000000000000000000042 -S315600286D00000000000000000000000000000000032 -S315600286E00000000000000000000000000000000022 -S315600286F00000000000000000000000000000000012 -S315600287000000000000000000000000000000000001 -S3156002871000000000000000000000000000000000F1 -S3156002872000000000000000000000000000000000E1 -S3156002873000000000000000000000000000000000D1 -S3156002874000000000000000000000000000000000C1 -S3156002875000000000000000000000000000000000B1 -S3156002876000000000000000000000000000000000A1 -S315600287700000000000000000000000000000000091 -S315600287800000000000000000000000000000000081 -S315600287900000000000000000000000000000000071 -S315600287A00000000000000000000000000000000061 -S315600287B00000000000000000000000000000000051 -S315600287C00000000000000000000000000000000041 -S315600287D00000000000000000000000000000000031 -S315600287E00000000000000000000000000000000021 -S315600287F00000000000000000000000000000000011 -S315600288000000000000000000000000000000000000 -S3156002881000000000000000000000000000000000F0 -S3156002882000000000000000000000000000000000E0 -S3156002883000000000000000000000000000000000D0 -S3156002884000000000000000000000000000000000C0 -S3156002885000000000000000000000000000000000B0 -S3156002886000000000000000000000000000000000A0 -S315600288700000000000000000000000000000000090 -S315600288800000000000000000000000000000000080 -S315600288900000000000000000000000000000000070 -S315600288A00000000000000000000000000000000060 -S315600288B00000000000000000000000000000000050 -S315600288C00000000000000000000000000000000040 -S315600288D00000000000000000000000000000000030 -S315600288E00000000000000000000000000000000020 -S315600288F00000000000000000000000000000000010 -S3156002890000000000000000000000000000000000FF -S3156002891000000000000000000000000000000000EF -S3156002892000000000000000000000000000000000DF -S3156002893000000000000000000000000000000000CF -S3156002894000000000000000000000000000000000BF -S3156002895000000000000000000000000000000000AF -S31560028960000000000000000000000000000000009F -S31560028970000000000000000000000000000000008F -S31560028980000000000000000000000000000000007F -S31560028990000000000000000000000000000000006F -S315600289A0000000000000000000000000000000005F -S315600289B0000000000000000000000000000000004F -S315600289C0000000000000000000000000000000003F -S315600289D0000000000000000000000000000000002F -S315600289E0000000000000000000000000000000001F -S315600289F0000000000000000000000000000000000F -S31560028A0000000000000000000000000000000000FE -S31560028A1000000000000000000000000000000000EE -S31560028A2000000000000000000000000000000000DE -S31560028A3000000000000000000000000000000000CE -S31560028A4000000000000000000000000000000000BE -S31560028A5000000000000000000000000000000000AE -S31560028A60000000000000000000000000000000009E -S31560028A70000000000000000000000000000000008E -S31560028A80000000000000000000000000000000007E -S31560028A90000000000000000000000000000000006E -S31560028AA0000000000000000000000000000000005E -S31560028AB0000000000000000000000000000000004E -S31560028AC0000000000000000000000000000000003E -S31560028AD0000000000000000000000000000000002E -S31560028AE0000000000000000000000000000000001E -S31560028AF0000000000000000000000000000000000E -S31560028B0000000000000000000000000000000000FD -S31560028B1000000000000000000000000000000000ED -S31560028B2000000000000000000000000000000000DD -S31560028B3000000000000000000000000000000000CD -S31560028B4000000000000000000000000000000000BD -S31560028B5000000000000000000000000000000000AD -S31560028B60000000000000000000000000000000009D -S31560028B70000000000000000000000000000000008D -S31560028B80000000000000000000000000000000007D -S31560028B90000000000000000000000000000000006D -S31560028BA0000000000000000000000000000000005D -S31560028BB0000000000000000000000000000000004D -S31560028BC0000000000000000000000000000000003D -S31560028BD0000000000000000000000000000000002D -S31560028BE0000000000000000000000000000000001D -S31560028BF0000000000000000000000000000000000D -S31560028C0000000000000000000000000000000000FC -S31560028C1000000000000000000000000000000000EC -S31560028C2000000000000000000000000000000000DC -S31560028C3000000000000000000000000000000000CC -S31560028C4000000000000000000000000000000000BC -S31560028C5000000000000000000000000000000000AC -S31560028C60000000000000000000000000000000009C -S31560028C70000000000000000000000000000000008C -S31560028C80000000000000000000000000000000007C -S31560028C90000000000000000000000000000000006C -S31560028CA0000000000000000000000000000000005C -S31560028CB0000000000000000000000000000000004C -S31560028CC0000000000000000000000000000000003C -S31560028CD0000000000000000000000000000000002C -S31560028CE0000000000000000000000000000000001C -S31560028CF0000000000000000000000000000000000C -S31560028D0000000000000000000000000000000000FB -S31560028D1000000000000000000000000000000000EB -S31560028D2000000000000000000000000000000000DB -S31560028D3000000000000000000000000000000000CB -S31560028D4000000000000000000000000000000000BB -S31560028D5000000000000000000000000000000000AB -S31560028D60000000000000000000000000000000009B -S31560028D70000000000000000000000000000000008B -S31560028D80000000000000000000000000000000007B -S31560028D90000000000000000000000000000000006B -S31560028DA0000000000000000000000000000000005B -S31560028DB0000000000000000000000000000000004B -S31560028DC0000000000000000000000000000000003B -S31560028DD0000000000000000000000000000000002B -S31560028DE0000000000000000000000000000000001B -S31560028DF0000000000000000000000000000000000B -S31560028E0000000000000000000000000000000000FA -S31560028E1000000000000000000000000000000000EA -S31560028E2000000000000000000000000000000000DA -S31560028E3000000000000000000000000000000000CA -S31560028E4000000000000000000000000000000000BA -S31560028E5000000000000000000000000000000000AA -S31560028E60000000000000000000000000000000009A -S31560028E70000000000000000000000000000000008A -S31560028E80000000000000000000000000000000007A -S31560028E90000000000000000000000000000000006A -S31560028EA0000000000000000000000000000000005A -S31560028EB0000000000000000000000000000000004A -S31560028EC0000000000000000000000000000000003A -S31560028ED0000000000000000000000000000000002A -S31560028EE0000000000000000000000000000000001A -S31560028EF0000000000000000000000000000000000A -S31560028F0000000000000000000000000000000000F9 -S31560028F1000000000000000000000000000000000E9 -S31560028F2000000000000000000000000000000000D9 -S31560028F3000000000000000000000000000000000C9 -S31560028F4000000000000000000000000000000000B9 -S31560028F5000000000000000000000000000000000A9 -S31560028F600000000000000000000000000000000099 -S31560028F700000000000000000000000000000000089 -S31560028F800000000000000000000000000000000079 -S31560028F900000000000000000000000000000000069 -S31560028FA00000000000000000000000000000000059 -S31560028FB00000000000000000000000000000000049 -S31560028FC00000000000000000000000000000000039 -S31560028FD00000000000000000000000000000000029 -S31560028FE00000000000000000000000000000000019 -S31560028FF00000000000000000000000000000000009 -S3156002900000000000000000000000000000000000F8 -S3156002901000000000000000000000000000000000E8 -S3156002902000000000000000000000000000000000D8 -S3156002903000000000000000000000000000000000C8 -S3156002904000000000000000000000000000000000B8 -S3156002905000000000000000000000000000000000A8 -S315600290600000000000000000000000000000000098 -S315600290700000000000000000000000000000000088 -S315600290800000000000000000000000000000000078 -S315600290900000000000000000000000000000000068 -S315600290A00000000000000000000000000000000058 -S315600290B00000000000000000000000000000000048 -S315600290C00000000000000000000000000000000038 -S315600290D00000000000000000000000000000000028 -S315600290E00000000000000000000000000000000018 -S315600290F00000000000000000000000000000000008 -S3156002910000000000000000000000000000000000F7 -S3156002911000000000000000000000000000000000E7 -S3156002912000000000000000000000000000000000D7 -S3156002913000000000000000000000000000000000C7 -S3156002914000000000000000000000000000000000B7 -S3156002915000000000000000000000000000000000A7 -S315600291600000000000000000000000000000000097 -S315600291700000000000000000000000000000000087 -S315600291800000000000000000000000000000000077 -S315600291900000000000000000000000000000000067 -S315600291A00000000000000000000000000000000057 -S315600291B00000000000000000000000000000000047 -S315600291C00000000000000000000000000000000037 -S315600291D00000000000000000000000000000000027 -S315600291E00000000000000000000000000000000017 -S315600291F00000000000000000000000000000000007 -S3156002920000000000000000000000000000000000F6 -S3156002921000000000000000000000000000000000E6 -S3156002922000000000000000000000000000000000D6 -S3156002923000000000000000000000000000000000C6 -S3156002924000000000000000000000000000000000B6 -S3156002925000000000000000000000000000000000A6 -S315600292600000000000000000000000000000000096 -S315600292700000000000000000000000000000000086 -S315600292800000000000000000000000000000000076 -S315600292900000000000000000000000000000000066 -S315600292A00000000000000000000000000000000056 -S315600292B00000000000000000000000000000000046 -S315600292C00000000000000000000000000000000036 -S315600292D00000000000000000000000000000000026 -S315600292E00000000000000000000000000000000016 -S315600292F00000000000000000000000000000000006 -S3156002930000000000000000000000000000000000F5 -S3156002931000000000000000000000000000000000E5 -S3156002932000000000000000000000000000000000D5 -S3156002933000000000000000000000000000000000C5 -S3156002934000000000000000000000000000000000B5 -S3156002935000000000000000000000000000000000A5 -S315600293600000000000000000000000000000000095 -S315600293700000000000000000000000000000000085 -S315600293800000000000000000000000000000000075 -S315600293900000000000000000000000000000000065 -S315600293A00000000000000000000000000000000055 -S315600293B00000000000000000000000000000000045 -S315600293C00000000000000000000000000000000035 -S315600293D00000000000000000000000000000000025 -S315600293E00000000000000000000000000000000015 -S315600293F00000000000000000000000000000000005 -S3156002940000000000000000000000000000000000F4 -S3156002941000000000000000000000000000000000E4 -S3156002942000000000000000000000000000000000D4 -S3156002943000000000000000000000000000000000C4 -S3156002944000000000000000000000000000000000B4 -S3156002945000000000000000000000000000000000A4 -S315600294600000000000000000000000000000000094 -S315600294700000000000000000000000000000000084 -S315600294800000000000000000000000000000000074 -S315600294900000000000000000000000000000000064 -S315600294A00000000000000000000000000000000054 -S315600294B00000000000000000000000000000000044 -S315600294C00000000000000000000000000000000034 -S315600294D00000000000000000000000000000000024 -S315600294E00000000000000000000000000000000014 -S315600294F00000000000000000000000000000000004 -S3156002950000000000000000000000000000000000F3 -S3156002951000000000000000000000000000000000E3 -S3156002952000000000000000000000000000000000D3 -S3156002953000000000000000000000000000000000C3 -S3156002954000000000000000000000000000000000B3 -S3156002955000000000000000000000000000000000A3 -S315600295600000000000000000000000000000000093 -S315600295700000000000000000000000000000000083 -S315600295800000000000000000000000000000000073 -S315600295900000000000000000000000000000000063 -S315600295A00000000000000000000000000000000053 -S315600295B00000000000000000000000000000000043 -S315600295C00000000000000000000000000000000033 -S315600295D00000000000000000000000000000000023 -S315600295E00000000000000000000000000000000013 -S315600295F00000000000000000000000000000000003 -S3156002960000000000000000000000000000000000F2 -S3156002961000000000000000000000000000000000E2 -S3156002962000000000000000000000000000000000D2 -S3156002963000000000000000000000000000000000C2 -S3156002964000000000000000000000000000000000B2 -S3156002965000000000000000000000000000000000A2 -S315600296600000000000000000000000000000000092 -S315600296700000000000000000000000000000000082 -S315600296800000000000000000000000000000000072 -S315600296900000000000000000000000000000000062 -S315600296A00000000000000000000000000000000052 -S315600296B00000000000000000000000000000000042 -S315600296C00000000000000000000000000000000032 -S315600296D00000000000000000000000000000000022 -S315600296E00000000000000000000000000000000012 -S315600296F00000000000000000000000000000000002 -S3156002970000000000000000000000000000000000F1 -S3156002971000000000000000000000000000000000E1 -S3156002972000000000000000000000000000000000D1 -S3156002973000000000000000000000000000000000C1 -S3156002974000000000000000000000000000000000B1 -S3156002975000000000000000000000000000000000A1 -S315600297600000000000000000000000000000000091 -S315600297700000000000000000000000000000000081 -S315600297800000000000000000000000000000000071 -S315600297900000000000000000000000000000000061 -S315600297A00000000000000000000000000000000051 -S315600297B00000000000000000000000000000000041 -S315600297C00000000000000000000000000000000031 -S315600297D00000000000000000000000000000000021 -S315600297E00000000000000000000000000000000011 -S315600297F00000000000000000000000000000000001 -S3156002980000000000000000000000000000000000F0 -S3156002981000000000000000000000000000000000E0 -S3156002982000000000000000000000000000000000D0 -S3156002983000000000000000000000000000000000C0 -S3156002984000000000000000000000000000000000B0 -S3156002985000000000000000000000000000000000A0 -S315600298600000000000000000000000000000000090 -S315600298700000000000000000000000000000000080 -S315600298800000000000000000000000000000000070 -S315600298900000000000000000000000000000000060 -S315600298A00000000000000000000000000000000050 -S315600298B00000000000000000000000000000000040 -S315600298C00000000000000000000000000000000030 -S315600298D00000000000000000000000000000000020 -S315600298E00000000000000000000000000000000010 -S315600298F00000000000000000000000000000000000 -S3156002990000000000000000000000000000000000EF -S3156002991000000000000000000000000000000000DF -S3156002992000000000000000000000000000000000CF -S3156002993000000000000000000000000000000000BF -S3156002994000000000000000000000000000000000AF -S31560029950000000000000000000000000000000009F -S31560029960000000000000000000000000000000008F -S31560029970000000000000000000000000000000007F -S31560029980000000000000000000000000000000006F -S31560029990000000000000000000000000000000005F -S315600299A0000000000000000000000000000000004F -S315600299B0000000000000000000000000000000003F -S315600299C0000000000000000000000000000000002F -S315600299D0000000000000000000000000000000001F -S315600299E0000000000000000000000000000000000F -S315600299F000000000000000000000000000000000FF -S31560029A0000000000000000000000000000000000EE -S31560029A1000000000000000000000000000000000DE -S31560029A2000000000000000000000000000000000CE -S31560029A3000000000000000000000000000000000BE -S31560029A4000000000000000000000000000000000AE -S31560029A50000000000000000000000000000000009E -S31560029A60000000000000000000000000000000008E -S31560029A70000000000000000000000000000000007E -S31560029A80000000000000000000000000000000006E -S31560029A90000000000000000000000000000000005E -S31560029AA0000000000000000000000000000000004E -S31560029AB0000000000000000000000000000000003E -S31560029AC0000000000000000000000000000000002E -S31560029AD0000000000000000000000000000000001E -S31560029AE0000000000000000000000000000000000E -S31560029AF000000000000000000000000000000000FE -S31560029B0000000000000000000000000000000000ED -S31560029B1000000000000000000000000000000000DD -S31560029B2000000000000000000000000000000000CD -S31560029B3000000000000000000000000000000000BD -S31560029B4000000000000000000000000000000000AD -S31560029B50000000000000000000000000000000009D -S31560029B60000000000000000000000000000000008D -S31560029B70000000000000000000000000000000007D -S31560029B80000000000000000000000000000000006D -S31560029B90000000000000000000000000000000005D -S31560029BA0000000000000000000000000000000004D -S31560029BB0000000000000000000000000000000003D -S31560029BC0000000000000000000000000000000002D -S31560029BD0000000000000000000000000000000001D -S31560029BE0000000000000000000000000000000000D -S31560029BF000000000000000000000000000000000FD -S31560029C0000000000000000000000000000000000EC -S31560029C1000000000000000000000000000000000DC -S31560029C2000000000000000000000000000000000CC -S31560029C3000000000000000000000000000000000BC -S31560029C4000000000000000000000000000000000AC -S31560029C50000000000000000000000000000000009C -S31560029C60000000000000000000000000000000008C -S31560029C70000000000000000000000000000000007C -S31560029C80000000000000000000000000000000006C -S31560029C90000000000000000000000000000000005C -S31560029CA0000000000000000000000000000000004C -S31560029CB0000000000000000000000000000000003C -S31560029CC0000000000000000000000000000000002C -S31560029CD0000000000000000000000000000000001C -S31560029CE0000000000000000000000000000000000C -S31560029CF000000000000000000000000000000000FC -S31560029D0000000000000000000000000000000000EB -S31560029D1000000000000000000000000000000000DB -S31560029D2000000000000000000000000000000000CB -S31560029D3000000000000000000000000000000000BB -S31560029D4000000000000000000000000000000000AB -S31560029D50000000000000000000000000000000009B -S31560029D60000000000000000000000000000000008B -S31560029D70000000000000000000000000000000007B -S31560029D80000000000000000000000000000000006B -S31560029D90000000000000000000000000000000005B -S31560029DA0000000000000000000000000000000004B -S31560029DB0000000000000000000000000000000003B -S31560029DC0000000000000000000000000000000002B -S31560029DD0000000000000000000000000000000001B -S31560029DE0000000000000000000000000000000000B -S31560029DF000000000000000000000000000000000FB -S31560029E0000000000000000000000000000000000EA -S31560029E1000000000000000000000000000000000DA -S31560029E2000000000000000000000000000000000CA -S31560029E3000000000000000000000000000000000BA -S31560029E4000000000000000000000000000000000AA -S31560029E50000000000000000000000000000000009A -S31560029E60000000000000000000000000000000008A -S31560029E70000000000000000000000000000000007A -S31560029E80000000000000000000000000000000006A -S31560029E90000000000000000000000000000000005A -S31560029EA0000000000000000000000000000000004A -S31560029EB0000000000000000000000000000000003A -S31560029EC0000000000000000000000000000000002A -S31560029ED0000000000000000000000000000000001A -S31560029EE0000000000000000000000000000000000A -S31560029EF000000000000000000000000000000000FA -S31560029F0000000000000000000000000000000000E9 -S31560029F1000000000000000000000000000000000D9 -S31560029F2000000000000000000000000000000000C9 -S31560029F3000000000000000000000000000000000B9 -S31560029F4000000000000000000000000000000000A9 -S31560029F500000000000000000000000000000000099 -S31560029F600000000000000000000000000000000089 -S31560029F700000000000000000000000000000000079 -S31560029F800000000000000000000000000000000069 -S31560029F900000000000000000000000000000000059 -S31560029FA00000000000000000000000000000000049 -S31560029FB00000000000000000000000000000000039 -S31560029FC00000000000000000000000000000000029 -S31560029FD00000000000000000000000000000000019 -S31560029FE00000000000000000000000000000000009 -S31560029FF000000000000000000000000000000000F9 -S3156002A00000000000000000000000000000000000E8 -S3156002A01000000000000000000000000000000000D8 -S3156002A02000000000000000000000000000000000C8 -S3156002A03000000000000000000000000000000000B8 -S3156002A04000000000000000000000000000000000A8 -S3156002A0500000000000000000000000000000000098 -S3156002A0600000000000000000000000000000000088 -S3156002A0700000000000000000000000000000000078 -S3156002A0800000000000000000000000000000000068 -S3156002A0900000000000000000000000000000000058 -S3156002A0A00000000000000000000000000000000048 -S3156002A0B00000000000000000000000000000000038 -S3156002A0C00000000000000000000000000000000028 -S3156002A0D00000000000000000000000000000000018 -S3156002A0E00000000000000000000000000000000008 -S3156002A0F000000000000000000000000000000000F8 -S3156002A10000000000000000000000000000000000E7 -S3156002A11000000000000000000000000000000000D7 -S3156002A12000000000000000000000000000000000C7 -S3156002A13000000000000000000000000000000000B7 -S3156002A14000000000000000000000000000000000A7 -S3156002A1500000000000000000000000000000000097 -S3156002A1600000000000000000000000000000000087 -S3156002A1700000000000000000000000000000000077 -S3156002A1800000000000000000000000000000000067 -S3156002A1900000000000000000000000000000000057 -S3156002A1A00000000000000000000000000000000047 -S3156002A1B00000000000000000000000000000000037 -S3156002A1C00000000000000000000000000000000027 -S3156002A1D00000000000000000000000000000000017 -S3156002A1E00000000000000000000000000000000007 -S3156002A1F000000000000000000000000000000000F7 -S3156002A20000000000000000000000000000000000E6 -S3156002A21000000000000000000000000000000000D6 -S3156002A22000000000000000000000000000000000C6 -S3156002A23000000000000000000000000000000000B6 -S3156002A24000000000000000000000000000000000A6 -S3156002A2500000000000000000000000000000000096 -S3156002A2600000000000000000000000000000000086 -S3156002A2700000000000000000000000000000000076 -S3156002A2800000000000000000000000000000000066 -S3156002A2900000000000000000000000000000000056 -S3156002A2A00000000000000000000000000000000046 -S3156002A2B00000000000000000000000000000000036 -S3156002A2C00000000000000000000000000000000026 -S3156002A2D00000000000000000000000000000000016 -S3156002A2E00000000000000000000000000000000006 -S3156002A2F000000000000000000000000000000000F6 -S3156002A30000000000000000000000000000000000E5 -S3156002A31000000000000000000000000000000000D5 -S3156002A32000000000000000000000000000000000C5 -S3156002A33000000000000000000000000000000000B5 -S3156002A34000000000000000000000000000000000A5 -S3156002A3500000000000000000000000000000000095 -S3156002A3600000000000000000000000000000000085 -S3156002A3700000000000000000000000000000000075 -S3156002A3800000000000000000000000000000000065 -S3156002A3900000000000000000000000000000000055 -S3156002A3A00000000000000000000000000000000045 -S3156002A3B00000000000000000000000000000000035 -S3156002A3C00000000000000000000000000000000025 -S3156002A3D00000000000000000000000000000000015 -S3156002A3E00000000000000000000000000000000005 -S3156002A3F000000000000000000000000000000000F5 -S3156002A40000000000000000000000000000000000E4 -S3156002A41000000000000000000000000000000000D4 -S3156002A42000000000000000000000000000000000C4 -S3156002A43000000000000000000000000000000000B4 -S3156002A44000000000000000000000000000000000A4 -S3156002A4500000000000000000000000000000000094 -S3156002A4600000000000000000000000000000000084 -S3156002A4700000000000000000000000000000000074 -S3156002A4800000000000000000000000000000000064 -S3156002A4900000000000000000000000000000000054 -S3156002A4A00000000000000000000000000000000044 -S3156002A4B00000000000000000000000000000000034 -S3156002A4C00000000000000000000000000000000024 -S3156002A4D00000000000000000000000000000000014 -S3156002A4E00000000000000000000000000000000004 -S3156002A4F000000000000000000000000000000000F4 -S3156002A50000000000000000000000000000000000E3 -S3156002A51000000000000000000000000000000000D3 -S3156002A52000000000000000000000000000000000C3 -S3156002A53000000000000000000000000000000000B3 -S3156002A54000000000000000000000000000000000A3 -S3156002A5500000000000000000000000000000000093 -S3156002A5600000000000000000000000000000000083 -S3156002A5700000000000000000000000000000000073 -S3156002A5800000000000000000000000000000000063 -S3156002A5900000000000000000000000000000000053 -S3156002A5A00000000000000000000000000000000043 -S3156002A5B00000000000000000000000000000000033 -S3156002A5C00000000000000000000000000000000023 -S3156002A5D00000000000000000000000000000000013 -S3156002A5E00000000000000000000000000000000003 -S3156002A5F000000000000000000000000000000000F3 -S3156002A60000000000000000000000000000000000E2 -S3156002A61000000000000000000000000000000000D2 -S3156002A62000000000000000000000000000000000C2 -S3156002A63000000000000000000000000000000000B2 -S3156002A64000000000000000000000000000000000A2 -S3156002A6500000000000000000000000000000000092 -S3156002A6600000000000000000000000000000000082 -S3156002A6700000000000000000000000000000000072 -S3156002A6800000000000000000000000000000000062 -S3156002A6900000000000000000000000000000000052 -S3156002A6A00000000000000000000000000000000042 -S3156002A6B00000000000000000000000000000000032 -S3156002A6C00000000000000000000000000000000022 -S3156002A6D00000000000000000000000000000000012 -S3156002A6E00000000000000000000000000000000002 -S3156002A6F000000000000000000000000000000000F2 -S3156002A70000000000000000000000000000000000E1 -S3156002A71000000000000000000000000000000000D1 -S3156002A72000000000000000000000000000000000C1 -S3156002A73000000000000000000000000000000000B1 -S3156002A74000000000000000000000000000000000A1 -S3156002A7500000000000000000000000000000000091 -S3156002A7600000000000000000000000000000000081 -S3156002A7700000000000000000000000000000000071 -S3156002A7800000000000000000000000000000000061 -S3156002A7900000000000000000000000000000000051 -S3156002A7A00000000000000000000000000000000041 -S3156002A7B00000000000000000000000000000000031 -S3156002A7C00000000000000000000000000000000021 -S3156002A7D00000000000000000000000000000000011 -S3156002A7E00000000000000000000000000000000001 -S3156002A7F000000000000000000000000000000000F1 -S3156002A80000000000000000000000000000000000E0 -S3156002A81000000000000000000000000000000000D0 -S3156002A82000000000000000000000000000000000C0 -S3156002A83000000000000000000000000000000000B0 -S3156002A84000000000000000000000000000000000A0 -S3156002A8500000000000000000000000000000000090 -S3156002A8600000000000000000000000000000000080 -S3156002A8700000000000000000000000000000000070 -S3156002A8800000000000000000000000000000000060 -S3156002A8900000000000000000000000000000000050 -S3156002A8A00000000000000000000000000000000040 -S3156002A8B00000000000000000000000000000000030 -S3156002A8C00000000000000000000000000000000020 -S3156002A8D00000000000000000000000000000000010 -S3156002A8E00000000000000000000000000000000000 -S3156002A8F000000000000000000000000000000000F0 -S3156002A90000000000000000000000000000000000DF -S3156002A91000000000000000000000000000000000CF -S3156002A92000000000000000000000000000000000BF -S3156002A93000000000000000000000000000000000AF -S3156002A940000000000000000000000000000000009F -S3156002A950000000000000000000000000000000008F -S3156002A960000000000000000000000000000000007F -S3156002A970000000000000000000000000000000006F -S3156002A980000000000000000000000000000000005F -S3156002A990000000000000000000000000000000004F -S3156002A9A0000000000000000000000000000000003F -S3156002A9B0000000000000000000000000000000002F -S3156002A9C0000000000000000000000000000000001F -S3156002A9D0000000000000000000000000000000000F -S3156002A9E000000000000000000000000000000000FF -S3156002A9F000000000000000000000000000000000EF -S3156002AA0000000000000000000000000000000000DE -S3156002AA1000000000000000000000000000000000CE -S3156002AA2000000000000000000000000000000000BE -S3156002AA3000000000000000000000000000000000AE -S3156002AA40000000000000000000000000000000009E -S3156002AA50000000000000000000000000000000008E -S3156002AA60000000000000000000000000000000007E -S3156002AA70000000000000000000000000000000006E -S3156002AA80000000000000000000000000000000005E -S3156002AA90000000000000000000000000000000004E -S3156002AAA0000000000000000000000000000000003E -S3156002AAB0000000000000000000000000000000002E -S3156002AAC0000000000000000000000000000000001E -S3156002AAD0000000000000000000000000000000000E -S3156002AAE000000000000000000000000000000000FE -S3156002AAF000000000000000000000000000000000EE -S3156002AB0000000000000000000000000000000000DD -S3156002AB1000000000000000000000000000000000CD -S3156002AB2000000000000000000000000000000000BD -S3156002AB3000000000000000000000000000000000AD -S3156002AB40000000000000000000000000000000009D -S3156002AB50000000000000000000000000000000008D -S3156002AB60000000000000000000000000000000007D -S3156002AB70000000000000000000000000000000006D -S3156002AB80000000000000000000000000000000005D -S3156002AB90000000000000000000000000000000004D -S3156002ABA0000000000000000000000000000000003D -S3156002ABB0000000000000000000000000000000002D -S3156002ABC0000000000000000000000000000000001D -S3156002ABD0000000000000000000000000000000000D -S3156002ABE000000000000000000000000000000000FD -S3156002ABF000000000000000000000000000000000ED -S3156002AC0000000000000000000000000000000000DC -S3156002AC1000000000000000000000000000000000CC -S3156002AC2000000000000000000000000000000000BC -S3156002AC3000000000000000000000000000000000AC -S3156002AC40000000000000000000000000000000009C -S3156002AC50000000000000000000000000000000008C -S3156002AC60000000000000000000000000000000007C -S3156002AC70000000000000000000000000000000006C -S3156002AC80000000000000000000000000000000005C -S3156002AC90000000000000000000000000000000004C -S3156002ACA0000000000000000000000000000000003C -S3156002ACB0000000000000000000000000000000002C -S3156002ACC0000000000000000000000000000000001C -S3156002ACD0000000000000000000000000000000000C -S3156002ACE000000000000000000000000000000000FC -S3156002ACF000000000000000000000000000000000EC -S3156002AD0000000000000000000000000000000000DB -S3156002AD1000000000000000000000000000000000CB -S3156002AD2000000000000000000000000000000000BB -S3156002AD3000000000000000000000000000000000AB -S3156002AD40000000000000000000000000000000009B -S3156002AD50000000000000000000000000000000008B -S3156002AD60000000000000000000000000000000007B -S3156002AD70000000000000000000000000000000006B -S3156002AD80000000000000000000000000000000005B -S3156002AD90000000000000000000000000000000004B -S3156002ADA0000000000000000000000000000000003B -S3156002ADB0000000000000000000000000000000002B -S3156002ADC0000000000000000000000000000000001B -S3156002ADD0000000000000000000000000000000000B -S3156002ADE000000000000000000000000000000000FB -S3156002ADF000000000000000000000000000000000EB -S3156002AE0000000000000000000000000000000000DA -S3156002AE1000000000000000000000000000000000CA -S3156002AE2000000000000000000000000000000000BA -S3156002AE3000000000000000000000000000000000AA -S3156002AE40000000000000000000000000000000009A -S3156002AE50000000000000000000000000000000008A -S3156002AE60000000000000000000000000000000007A -S3156002AE70000000000000000000000000000000006A -S3156002AE80000000000000000000000000000000005A -S3156002AE90000000000000000000000000000000004A -S3156002AEA0000000000000000000000000000000003A -S3156002AEB0000000000000000000000000000000002A -S3156002AEC0000000000000000000000000000000001A -S3156002AED0000000000000000000000000000000000A -S3156002AEE000000000000000000000000000000000FA -S3156002AEF000000000000000000000000000000000EA -S3156002AF0000000000000000000000000000000000D9 -S3156002AF1000000000000000000000000000000000C9 -S3156002AF2000000000000000000000000000000000B9 -S3156002AF3000000000000000000000000000000000A9 -S3156002AF400000000000000000000000000000000099 -S3156002AF500000000000000000000000000000000089 -S3156002AF600000000000000000000000000000000079 -S3156002AF700000000000000000000000000000000069 -S3156002AF800000000000000000000000000000000059 -S3156002AF900000000000000000000000000000000049 -S3156002AFA00000000000000000000000000000000039 -S3156002AFB00000000000000000000000000000000029 -S3156002AFC00000000000000000000000000000000019 -S3156002AFD00000000000000000000000000000000009 -S3156002AFE000000000000000000000000000000000F9 -S3156002AFF000000000000000000000000000000000E9 -S3156002B00000000000000000000000000000000000D8 -S3156002B01000000000000000000000000000000000C8 -S3156002B02000000000000000000000000000000000B8 -S3156002B03000000000000000000000000000000000A8 -S3156002B0400000000000000000000000000000000098 -S3156002B0500000000000000000000000000000000088 -S3156002B0600000000000000000000000000000000078 -S3156002B0700000000000000000000000000000000068 -S3156002B0800000000000000000000000000000000058 -S3156002B0900000000000000000000000000000000048 -S3156002B0A00000000000000000000000000000000038 -S3156002B0B00000000000000000000000000000000028 -S3156002B0C00000000000000000000000000000000018 -S3156002B0D00000000000000000000000000000000008 -S3156002B0E000000000000000000000000000000000F8 -S3156002B0F000000000000000000000000000000000E8 -S3156002B10000000000000000000000000000000000D7 -S3156002B11000000000000000000000000000000000C7 -S3156002B12000000000000000000000000000000000B7 -S3156002B13000000000000000000000000000000000A7 -S3156002B1400000000000000000000000000000000097 -S3156002B1500000000000000000000000000000000087 -S3156002B1600000000000000000000000000000000077 -S3156002B1700000000000000000000000000000000067 -S3156002B1800000000000000000000000000000000057 -S3156002B1900000000000000000000000000000000047 -S3156002B1A00000000000000000000000000000000037 -S3156002B1B00000000000000000000000000000000027 -S3156002B1C00000000000000000000000000000000017 -S3156002B1D00000000000000000000000000000000007 -S3156002B1E000000000000000000000000000000000F7 -S3156002B1F000000000000000000000000000000000E7 -S3156002B20000000000000000000000000000000000D6 -S3156002B21000000000000000000000000000000000C6 -S3156002B22000000000000000000000000000000000B6 -S3156002B23000000000000000000000000000000000A6 -S3156002B2400000000000000000000000000000000096 -S3156002B2500000000000000000000000000000000086 -S3156002B2600000000000000000000000000000000076 -S3156002B2700000000000000000000000000000000066 -S3156002B2800000000000000000000000000000000056 -S3156002B2900000000000000000000000000000000046 -S3156002B2A00000000000000000000000000000000036 -S3156002B2B00000000000000000000000000000000026 -S3156002B2C00000000000000000000000000000000016 -S3156002B2D00000000000000000000000000000000006 -S3156002B2E000000000000000000000000000000000F6 -S3156002B2F000000000000000000000000000000000E6 -S3156002B30000000000000000000000000000000000D5 -S3156002B31000000000000000000000000000000000C5 -S3156002B32000000000000000000000000000000000B5 -S3156002B33000000000000000000000000000000000A5 -S3156002B3400000000000000000000000000000000095 -S3156002B3500000000000000000000000000000000085 -S3156002B3600000000000000000000000000000000075 -S3156002B3700000000000000000000000000000000065 -S3156002B3800000000000000000000000000000000055 -S3156002B3900000000000000000000000000000000045 -S3156002B3A00000000000000000000000000000000035 -S3156002B3B00000000000000000000000000000000025 -S3156002B3C00000000000000000000000000000000015 -S3156002B3D00000000000000000000000000000000005 -S3156002B3E000000000000000000000000000000000F5 -S3156002B3F000000000000000000000000000000000E5 -S3156002B40000000000000000000000000000000000D4 -S3156002B41000000000000000000000000000000000C4 -S3156002B42000000000000000000000000000000000B4 -S3156002B43000000000000000000000000000000000A4 -S3156002B4400000000000000000000000000000000094 -S3156002B4500000000000000000000000000000000084 -S3156002B4600000000000000000000000000000000074 -S3156002B4700000000000000000000000000000000064 -S3156002B4800000000000000000000000000000000054 -S3156002B4900000000000000000000000000000000044 -S3156002B4A00000000000000000000000000000000034 -S3156002B4B00000000000000000000000000000000024 -S3156002B4C00000000000000000000000000000000014 -S3156002B4D00000000000000000000000000000000004 -S3156002B4E000000000000000000000000000000000F4 -S3156002B4F000000000000000000000000000000000E4 -S3156002B50000000000000000000000000000000000D3 -S3156002B51000000000000000000000000000000000C3 -S3156002B52000000000000000000000000000000000B3 -S3156002B53000000000000000000000000000000000A3 -S3156002B5400000000000000000000000000000000093 -S3156002B5500000000000000000000000000000000083 -S3156002B5600000000000000000000000000000000073 -S3156002B5700000000000000000000000000000000063 -S3156002B5800000000000000000000000000000000053 -S3156002B5900000000000000000000000000000000043 -S3156002B5A00000000000000000000000000000000033 -S3156002B5B00000000000000000000000000000000023 -S3156002B5C00000000000000000000000000000000013 -S3156002B5D00000000000000000000000000000000003 -S3156002B5E000000000000000000000000000000000F3 -S3156002B5F000000000000000000000000000000000E3 -S3156002B60000000000000000000000000000000000D2 -S3156002B61000000000000000000000000000000000C2 -S3156002B62000000000000000000000000000000000B2 -S3156002B63000000000000000000000000000000000A2 -S3156002B6400000000000000000000000000000000092 -S3156002B6500000000000000000000000000000000082 -S3156002B6600000000000000000000000000000000072 -S3156002B6700000000000000000000000000000000062 -S3156002B6800000000000000000000000000000000052 -S3156002B6900000000000000000000000000000000042 -S3156002B6A00000000000000000000000000000000032 -S3156002B6B00000000000000000000000000000000022 -S3156002B6C00000000000000000000000000000000012 -S3156002B6D00000000000000000000000000000000002 -S3156002B6E000000000000000000000000000000000F2 -S3156002B6F000000000000000000000000000000000E2 -S3156002B70000000000000000000000000000000000D1 -S3156002B71000000000000000000000000000000000C1 -S3156002B72000000000000000000000000000000000B1 -S3156002B73000000000000000000000000000000000A1 -S3156002B7400000000000000000000000000000000091 -S3156002B7500000000000000000000000000000000081 -S3156002B7600000000000000000000000000000000071 -S3156002B7700000000000000000000000000000000061 -S3156002B7800000000000000000000000000000000051 -S3156002B7900000000000000000000000000000000041 -S3156002B7A00000000000000000000000000000000031 -S3156002B7B00000000000000000000000000000000021 -S3156002B7C00000000000000000000000000000000011 -S3156002B7D00000000000000000000000000000000001 -S3156002B7E000000000000000000000000000000000F1 -S3156002B7F000000000000000000000000000000000E1 -S3156002B80000000000000000000000000000000000D0 -S3156002B81000000000000000000000000000000000C0 -S3156002B82000000000000000000000000000000000B0 -S3156002B83000000000000000000000000000000000A0 -S3156002B8400000000000000000000000000000000090 -S3156002B8500000000000000000000000000000000080 -S3156002B8600000000000000000000000000000000070 -S3156002B8700000000000000000000000000000000060 -S3156002B8800000000000000000000000000000000050 -S3156002B8900000000000000000000000000000000040 -S3156002B8A00000000000000000000000000000000030 -S3156002B8B00000000000000000000000000000000020 -S3156002B8C00000000000000000000000000000000010 -S3156002B8D00000000000000000000000000000000000 -S3156002B8E000000000000000000000000000000000F0 -S3156002B8F000000000000000000000000000000000E0 -S3156002B90000000000000000000000000000000000CF -S3156002B91000000000000000000000000000000000BF -S3156002B92000000000000000000000000000000000AF -S3156002B930000000000000000000000000000000009F -S3156002B940000000000000000000000000000000008F -S3156002B950000000000000000000000000000000007F -S3156002B960000000000000000000000000000000006F -S3156002B970000000000000000000000000000000005F -S3156002B980000000000000000000000000000000004F -S3156002B990000000000000000000000000000000003F -S3156002B9A0000000000000000000000000000000002F -S3156002B9B0000000000000000000000000000000001F -S3156002B9C0000000000000000000000000000000000F -S3156002B9D000000000000000000000000000000000FF -S3156002B9E000000000000000000000000000000000EF -S3156002B9F000000000000000000000000000000000DF -S3156002BA0000000000000000000000000000000000CE -S3156002BA1000000000000000000000000000000000BE -S3156002BA2000000000000000000000000000000000AE -S3156002BA30000000000000000000000000000000009E -S3156002BA40000000000000000000000000000000008E -S3156002BA50000000000000000000000000000000007E -S3156002BA60000000000000000000000000000000006E -S3156002BA70000000000000000000000000000000005E -S3156002BA80000000000000000000000000000000004E -S3156002BA90000000000000000000000000000000003E -S3156002BAA0000000000000000000000000000000002E -S3156002BAB0000000000000000000000000000000001E -S3156002BAC0000000000000000000000000000000000E -S3156002BAD000000000000000000000000000000000FE -S3156002BAE000000000000000000000000000000000EE -S3156002BAF000000000000000000000000000000000DE -S3156002BB0000000000000000000000000000000000CD -S3156002BB1000000000000000000000000000000000BD -S3156002BB2000000000000000000000000000000000AD -S3156002BB30000000000000000000000000000000009D -S3156002BB40000000000000000000000000000000008D -S3156002BB50000000000000000000000000000000007D -S3156002BB60000000000000000000000000000000006D -S3156002BB70000000000000000000000000000000005D -S3156002BB80000000000000000000000000000000004D -S3156002BB90000000000000000000000000000000003D -S3156002BBA0000000000000000000000000000000002D -S3156002BBB0000000000000000000000000000000001D -S3156002BBC0000000000000000000000000000000000D -S3156002BBD000000000000000000000000000000000FD -S3156002BBE000000000000000000000000000000000ED -S3156002BBF000000000000000000000000000000000DD -S3156002BC0000000000000000000000000000000000CC -S3156002BC1000000000000000000000000000000000BC -S3156002BC2000000000000000000000000000000000AC -S3156002BC30000000000000000000000000000000009C -S3156002BC40000000000000000000000000000000008C -S3156002BC50000000000000000000000000000000007C -S3156002BC60000000000000000000000000000000006C -S3156002BC70000000000000000000000000000000005C -S3156002BC80000000000000000000000000000000004C -S3156002BC90000000000000000000000000000000003C -S3156002BCA0000000000000000000000000000000002C -S3156002BCB0000000000000000000000000000000001C -S3156002BCC0000000000000000000000000000000000C -S3156002BCD000000000000000000000000000000000FC -S3156002BCE000000000000000000000000000000000EC -S3156002BCF000000000000000000000000000000000DC -S3156002BD0000000000000000000000000000000000CB -S3156002BD1000000000000000000000000000000000BB -S3156002BD2000000000000000000000000000000000AB -S3156002BD30000000000000000000000000000000009B -S3156002BD40000000000000000000000000000000008B -S3156002BD50000000000000000000000000000000007B -S3156002BD60000000000000000000000000000000006B -S3156002BD70000000000000000000000000000000005B -S3156002BD80000000000000000000000000000000004B -S3156002BD90000000000000000000000000000000003B -S3156002BDA0000000000000000000000000000000002B -S3156002BDB0000000000000000000000000000000001B -S3156002BDC0000000000000000000000000000000000B -S3156002BDD000000000000000000000000000000000FB -S3156002BDE000000000000000000000000000000000EB -S3156002BDF000000000000000000000000000000000DB -S3156002BE0000000000000000000000000000000000CA -S3156002BE1000000000000000000000000000000000BA -S3156002BE2000000000000000000000000000000000AA -S3156002BE30000000000000000000000000000000009A -S3156002BE40000000000000000000000000000000008A -S3156002BE50000000000000000000000000000000007A -S3156002BE60000000000000000000000000000000006A -S3156002BE70000000000000000000000000000000005A -S3156002BE80000000000000000000000000000000004A -S3156002BE90000000000000000000000000000000003A -S3156002BEA0000000000000000000000000000000002A -S3156002BEB0000000000000000000000000000000001A -S3156002BEC0000000000000000000000000000000000A -S3156002BED000000000000000000000000000000000FA -S3156002BEE000000000000000000000000000000000EA -S3156002BEF000000000000000000000000000000000DA -S3156002BF0000000000000000000000000000000000C9 -S3156002BF1000000000000000000000000000000000B9 -S3156002BF2000000000000000000000000000000000A9 -S3156002BF300000000000000000000000000000000099 -S3156002BF400000000000000000000000000000000089 -S3156002BF500000000000000000000000000000000079 -S3156002BF600000000000000000000000000000000069 -S3156002BF700000000000000000000000000000000059 -S3156002BF800000000000000000000000000000000049 -S3156002BF900000000000000000000000000000000039 -S3156002BFA00000000000000000000000000000000029 -S3156002BFB00000000000000000000000000000000019 -S3156002BFC00000000000000000000000000000000009 -S3156002BFD000000000000000000000000000000000F9 -S3156002BFE000000000000000000000000000000000E9 -S3156002BFF000000000000000000000000000000000D9 -S3156002C00000000000000000000000000000000000C8 -S3156002C01000000000000000000000000000000000B8 -S3156002C02000000000000000000000000000000000A8 -S3156002C0300000000000000000000000000000000098 -S3156002C0400000000000000000000000000000000088 -S3156002C0500000000000000000000000000000000078 -S3156002C0600000000000000000000000000000000068 -S3156002C0700000000000000000000000000000000058 -S3156002C0800000000000000000000000000000000048 -S3156002C0900000000000000000000000000000000038 -S3156002C0A00000000000000000000000000000000028 -S3156002C0B00000000000000000000000000000000018 -S3156002C0C00000000000000000000000000000000008 -S3156002C0D000000000000000000000000000000000F8 -S3156002C0E000000000000000000000000000000000E8 -S3156002C0F000000000000000000000000000000000D8 -S3156002C10000000000000000000000000000000000C7 -S3156002C11000000000000000000000000000000000B7 -S3156002C12000000000000000000000000000000000A7 -S3156002C1300000000000000000000000000000000097 -S3156002C1400000000000000000000000000000000087 -S3156002C1500000000000000000000000000000000077 -S3156002C1600000000000000000000000000000000067 -S3156002C1700000000000000000000000000000000057 -S3156002C1800000000000000000000000000000000047 -S3156002C1900000000000000000000000000000000037 -S3156002C1A00000000000000000000000000000000027 -S3156002C1B00000000000000000000000000000000017 -S3156002C1C00000000000000000000000000000000007 -S3156002C1D000000000000000000000000000000000F7 -S3156002C1E000000000000000000000000000000000E7 -S3156002C1F000000000000000000000000000000000D7 -S3156002C20000000000000000000000000000000000C6 -S3156002C21000000000000000000000000000000000B6 -S3156002C22000000000000000000000000000000000A6 -S3156002C2300000000000000000000000000000000096 -S3156002C2400000000000000000000000000000000086 -S3156002C2500000000000000000000000000000000076 -S3156002C2600000000000000000000000000000000066 -S3156002C2700000000000000000000000000000000056 -S3156002C2800000000000000000000000000000000046 -S3156002C2900000000000000000000000000000000036 -S3156002C2A00000000000000000000000000000000026 -S3156002C2B00000000000000000000000000000000016 -S3156002C2C00000000000000000000000000000000006 -S3156002C2D000000000000000000000000000000000F6 -S3156002C2E000000000000000000000000000000000E6 -S3156002C2F000000000000000000000000000000000D6 -S3156002C30000000000000000000000000000000000C5 -S3156002C31000000000000000000000000000000000B5 -S3156002C32000000000000000000000000000000000A5 -S3156002C3300000000000000000000000000000000095 -S3156002C3400000000000000000000000000000000085 -S3156002C3500000000000000000000000000000000075 -S3156002C3600000000000000000000000000000000065 -S3156002C3700000000000000000000000000000000055 -S3156002C3800000000000000000000000000000000045 -S3156002C3900000000000000000000000000000000035 -S3156002C3A00000000000000000000000000000000025 -S3156002C3B00000000000000000000000000000000015 -S3156002C3C00000000000000000000000000000000005 -S3156002C3D000000000000000000000000000000000F5 -S3156002C3E000000000000000000000000000000000E5 -S3156002C3F000000000000000000000000000000000D5 -S3156002C40000000000000000000000000000000000C4 -S3156002C41000000000000000000000000000000000B4 -S3156002C42000000000000000000000000000000000A4 -S3156002C4300000000000000000000000000000000094 -S3156002C4400000000000000000000000000000000084 -S3156002C4500000000000000000000000000000000074 -S3156002C4600000000000000000000000000000000064 -S3156002C4700000000000000000000000000000000054 -S3156002C4800000000000000000000000000000000044 -S3156002C4900000000000000000000000000000000034 -S3156002C4A00000000000000000000000000000000024 -S3156002C4B00000000000000000000000000000000014 -S3156002C4C00000000000000000000000000000000004 -S3156002C4D000000000000000000000000000000000F4 -S3156002C4E000000000000000000000000000000000E4 -S3156002C4F000000000000000000000000000000000D4 -S3156002C50000000000000000000000000000000000C3 -S3156002C51000000000000000000000000000000000B3 -S3156002C52000000000000000000000000000000000A3 -S3156002C5300000000000000000000000000000000093 -S3156002C5400000000000000000000000000000000083 -S3156002C5500000000000000000000000000000000073 -S3156002C5600000000000000000000000000000000063 -S3156002C5700000000000000000000000000000000053 -S3156002C5800000000000000000000000000000000043 -S3156002C5900000000000000000000000000000000033 -S3156002C5A00000000000000000000000000000000023 -S3156002C5B00000000000000000000000000000000013 -S3156002C5C00000000000000000000000000000000003 -S3156002C5D000000000000000000000000000000000F3 -S3156002C5E000000000000000000000000000000000E3 -S3156002C5F000000000000000000000000000000000D3 -S3156002C60000000000000000000000000000000000C2 -S3156002C61000000000000000000000000000000000B2 -S3156002C62000000000000000000000000000000000A2 -S3156002C6300000000000000000000000000000000092 -S3156002C6400000000000000000000000000000000082 -S3156002C6500000000000000000000000000000000072 -S3156002C6600000000000000000000000000000000062 -S3156002C6700000000000000000000000000000000052 -S3156002C6800000000000000000000000000000000042 -S3156002C6900000000000000000000000000000000032 -S3156002C6A00000000000000000000000000000000022 -S3156002C6B00000000000000000000000000000000012 -S3156002C6C00000000000000000000000000000000002 -S3156002C6D000000000000000000000000000000000F2 -S3156002C6E000000000000000000000000000000000E2 -S3156002C6F000000000000000000000000000000000D2 -S3156002C70000000000000000000000000000000000C1 -S3156002C71000000000000000000000000000000000B1 -S3156002C72000000000000000000000000000000000A1 -S3156002C7300000000000000000000000000000000091 -S3156002C7400000000000000000000000000000000081 -S3156002C7500000000000000000000000000000000071 -S3156002C7600000000000000000000000000000000061 -S3156002C7700000000000000000000000000000000051 -S3156002C7800000000000000000000000000000000041 -S3156002C7900000000000000000000000000000000031 -S3156002C7A00000000000000000000000000000000021 -S3156002C7B00000000000000000000000000000000011 -S3156002C7C00000000000000000000000000000000001 -S3156002C7D000000000000000000000000000000000F1 -S3156002C7E000000000000000000000000000000000E1 -S3156002C7F000000000000000000000000000000000D1 -S3156002C80000000000000000000000000000000000C0 -S3156002C81000000000000000000000000000000000B0 -S3156002C82000000000000000000000000000000000A0 -S3156002C8300000000000000000000000000000000090 -S3156002C8400000000000000000000000000000000080 -S3156002C8500000000000000000000000000000000070 -S3156002C8600000000000000000000000000000000060 -S3156002C8700000000000000000000000000000000050 -S3156002C8800000000000000000000000000000000040 -S3156002C8900000000000000000000000000000000030 -S3156002C8A00000000000000000000000000000000020 -S3156002C8B00000000000000000000000000000000010 -S3156002C8C00000000000000000000000000000000000 -S3156002C8D000000000000000000000000000000000F0 -S3156002C8E000000000000000000000000000000000E0 -S3156002C8F000000000000000000000000000000000D0 -S3156002C90000000000000000000000000000000000BF -S3156002C91000000000000000000000000000000000AF -S3156002C920000000000000000000000000000000009F -S3156002C930000000000000000000000000000000008F -S3156002C940000000000000000000000000000000007F -S3156002C950000000000000000000000000000000006F -S3156002C960000000000000000000000000000000005F -S3156002C970000000000000000000000000000000004F -S3156002C980000000000000000000000000000000003F -S3156002C990000000000000000000000000000000002F -S3156002C9A0000000000000000000000000000000001F -S3156002C9B0000000000000000000000000000000000F -S3156002C9C000000000000000000000000000000000FF -S3156002C9D000000000000000000000000000000000EF -S3156002C9E000000000000000000000000000000000DF -S3156002C9F000000000000000000000000000000000CF -S3156002CA0000000000000000000000000000000000BE -S3156002CA1000000000000000000000000000000000AE -S3156002CA20000000000000000000000000000000009E -S3156002CA30000000000000000000000000000000008E -S3156002CA40000000000000000000000000000000007E -S3156002CA50000000000000000000000000000000006E -S3156002CA60000000000000000000000000000000005E -S3156002CA70000000000000000000000000000000004E -S3156002CA80000000000000000000000000000000003E -S3156002CA90000000000000000000000000000000002E -S3156002CAA0000000000000000000000000000000001E -S3156002CAB0000000000000000000000000000000000E -S3156002CAC000000000000000000000000000000000FE -S3156002CAD000000000000000000000000000000000EE -S3156002CAE000000000000000000000000000000000DE -S3156002CAF000000000000000000000000000000000CE -S3156002CB0000000000000000000000000000000000BD -S3156002CB1000000000000000000000000000000000AD -S3156002CB20000000000000000000000000000000009D -S3156002CB30000000000000000000000000000000008D -S3156002CB40000000000000000000000000000000007D -S3156002CB50000000000000000000000000000000006D -S3156002CB60000000000000000000000000000000005D -S3156002CB70000000000000000000000000000000004D -S3156002CB80000000000000000000000000000000003D -S3156002CB90000000000000000000000000000000002D -S3156002CBA0000000000000000000000000000000001D -S3156002CBB0000000000000000000000000000000000D -S3156002CBC000000000000000000000000000000000FD -S3156002CBD000000000000000000000000000000000ED -S3156002CBE000000000000000000000000000000000DD -S3156002CBF000000000000000000000000000000000CD -S3156002CC0000000000000000000000000000000000BC -S3156002CC1000000000000000000000000000000000AC -S3156002CC20000000000000000000000000000000009C -S3156002CC30000000000000000000000000000000008C -S3156002CC40000000000000000000000000000000007C -S3156002CC50000000000000000000000000000000006C -S3156002CC60000000000000000000000000000000005C -S3156002CC70000000000000000000000000000000004C -S3156002CC80000000000000000000000000000000003C -S3156002CC90000000000000000000000000000000002C -S3156002CCA0000000000000000000000000000000001C -S3156002CCB0000000000000000000000000000000000C -S3156002CCC000000000000000000000000000000000FC -S3156002CCD000000000000000000000000000000000EC -S3156002CCE000000000000000000000000000000000DC -S3156002CCF000000000000000000000000000000000CC -S3156002CD0000000000000000000000000000000000BB -S3156002CD1000000000000000000000000000000000AB -S3156002CD20000000000000000000000000000000009B -S3156002CD30000000000000000000000000000000008B -S3156002CD40000000000000000000000000000000007B -S3156002CD50000000000000000000000000000000006B -S3156002CD60000000000000000000000000000000005B -S3156002CD70000000000000000000000000000000004B -S3156002CD80000000000000000000000000000000003B -S3156002CD90000000000000000000000000000000002B -S3156002CDA0000000000000000000000000000000001B -S3156002CDB0000000000000000000000000000000000B -S3156002CDC000000000000000000000000000000000FB -S3156002CDD000000000000000000000000000000000EB -S3156002CDE000000000000000000000000000000000DB -S3156002CDF000000000000000000000000000000000CB -S3156002CE0000000000000000000000000000000000BA -S3156002CE1000000000000000000000000000000000AA -S3156002CE20000000000000000000000000000000009A -S3156002CE30000000000000000000000000000000008A -S3156002CE40000000000000000000000000000000007A -S3156002CE50000000000000000000000000000000006A -S3156002CE60000000000000000000000000000000005A -S3156002CE70000000000000000000000000000000004A -S3156002CE80000000000000000000000000000000003A -S3156002CE90000000000000000000000000000000002A -S3156002CEA0000000000000000000000000000000001A -S3156002CEB0000000000000000000000000000000000A -S3156002CEC000000000000000000000000000000000FA -S3156002CED000000000000000000000000000000000EA -S3156002CEE000000000000000000000000000000000DA -S3156002CEF000000000000000000000000000000000CA -S3156002CF0000000000000000000000000000000000B9 -S3156002CF1000000000000000000000000000000000A9 -S3156002CF200000000000000000000000000000000099 -S3156002CF300000000000000000000000000000000089 -S3156002CF400000000000000000000000000000000079 -S3156002CF500000000000000000000000000000000069 -S3156002CF600000000000000000000000000000000059 -S3156002CF700000000000000000000000000000000049 -S3156002CF800000000000000000000000000000000039 -S3156002CF900000000000000000000000000000000029 -S3156002CFA00000000000000000000000000000000019 -S3156002CFB00000000000000000000000000000000009 -S3156002CFC000000000000000000000000000000000F9 -S3156002CFD000000000000000000000000000000000E9 -S3156002CFE000000000000000000000000000000000D9 -S3156002CFF000000000000000000000000000000000C9 -S3156002D00000000000000000000000000000000000B8 -S3156002D01000000000000000000000000000000000A8 -S3156002D0200000000000000000000000000000000098 -S3156002D0300000000000000000000000000000000088 -S3156002D0400000000000000000000000000000000078 -S3156002D0500000000000000000000000000000000068 -S3156002D0600000000000000000000000000000000058 -S3156002D0700000000000000000000000000000000048 -S3156002D0800000000000000000000000000000000038 -S3156002D0900000000000000000000000000000000028 -S3156002D0A00000000000000000000000000000000018 -S3156002D0B00000000000000000000000000000000008 -S3156002D0C000000000000000000000000000000000F8 -S3156002D0D000000000000000000000000000000000E8 -S3156002D0E000000000000000000000000000000000D8 -S3156002D0F000000000000000000000000000000000C8 -S3156002D10000000000000000000000000000000000B7 -S3156002D11000000000000000000000000000000000A7 -S3156002D1200000000000000000000000000000000097 -S3156002D1300000000000000000000000000000000087 -S3156002D1400000000000000000000000000000000077 -S3156002D1500000000000000000000000000000000067 -S3156002D1600000000000000000000000000000000057 -S3156002D1700000000000000000000000000000000047 -S3156002D1800000000000000000000000000000000037 -S3156002D1900000000000000000000000000000000027 -S3156002D1A00000000000000000000000000000000017 -S3156002D1B00000000000000000000000000000000007 -S3156002D1C000000000000000000000000000000000F7 -S3156002D1D000000000000000000000000000000000E7 -S3156002D1E000000000000000000000000000000000D7 -S3156002D1F000000000000000000000000000000000C7 -S3156002D20000000000000000000000000000000000B6 -S3156002D21000000000000000000000000000000000A6 -S3156002D2200000000000000000000000000000000096 -S3156002D2300000000000000000000000000000000086 -S3156002D2400000000000000000000000000000000076 -S3156002D2500000000000000000000000000000000066 -S3156002D2600000000000000000000000000000000056 -S3156002D2700000000000000000000000000000000046 -S3156002D2800000000000000000000000000000000036 -S3156002D2900000000000000000000000000000000026 -S3156002D2A00000000000000000000000000000000016 -S3156002D2B00000000000000000000000000000000006 -S3156002D2C000000000000000000000000000000000F6 -S3156002D2D000000000000000000000000000000000E6 -S3156002D2E000000000000000000000000000000000D6 -S3156002D2F000000000000000000000000000000000C6 -S3156002D30000000000000000000000000000000000B5 -S3156002D31000000000000000000000000000000000A5 -S3156002D3200000000000000000000000000000000095 -S3156002D3300000000000000000000000000000000085 -S3156002D3400000000000000000000000000000000075 -S3156002D3500000000000000000000000000000000065 -S3156002D3600000000000000000000000000000000055 -S3156002D3700000000000000000000000000000000045 -S3156002D3800000000000000000000000000000000035 -S3156002D3900000000000000000000000000000000025 -S3156002D3A00000000000000000000000000000000015 -S3156002D3B00000000000000000000000000000000005 -S3156002D3C000000000000000000000000000000000F5 -S3156002D3D000000000000000000000000000000000E5 -S3156002D3E000000000000000000000000000000000D5 -S3156002D3F000000000000000000000000000000000C5 -S3156002D40000000000000000000000000000000000B4 -S3156002D41000000000000000000000000000000000A4 -S3156002D4200000000000000000000000000000000094 -S3156002D4300000000000000000000000000000000084 -S3156002D4400000000000000000000000000000000074 -S3156002D4500000000000000000000000000000000064 -S3156002D4600000000000000000000000000000000054 -S3156002D4700000000000000000000000000000000044 -S3156002D4800000000000000000000000000000000034 -S3156002D4900000000000000000000000000000000024 -S3156002D4A00000000000000000000000000000000014 -S3156002D4B00000000000000000000000000000000004 -S3156002D4C000000000000000000000000000000000F4 -S3156002D4D000000000000000000000000000000000E4 -S3156002D4E000000000000000000000000000000000D4 -S3156002D4F000000000000000000000000000000000C4 -S3156002D50000000000000000000000000000000000B3 -S3156002D51000000000000000000000000000000000A3 -S3156002D5200000000000000000000000000000000093 -S3156002D5300000000000000000000000000000000083 -S3156002D5400000000000000000000000000000000073 -S3156002D5500000000000000000000000000000000063 -S3156002D5600000000000000000000000000000000053 -S3156002D5700000000000000000000000000000000043 -S3156002D5800000000000000000000000000000000033 -S3156002D5900000000000000000000000000000000023 -S3156002D5A00000000000000000000000000000000013 -S3156002D5B00000000000000000000000000000000003 -S3156002D5C000000000000000000000000000000000F3 -S3156002D5D000000000000000000000000000000000E3 -S3156002D5E000000000000000000000000000000000D3 -S3156002D5F000000000000000000000000000000000C3 -S3156002D60000000000000000000000000000000000B2 -S3156002D61000000000000000000000000000000000A2 -S3156002D6200000000000000000000000000000000092 -S3156002D6300000000000000000000000000000000082 -S3156002D6400000000000000000000000000000000072 -S3156002D6500000000000000000000000000000000062 -S3156002D6600000000000000000000000000000000052 -S3156002D6700000000000000000000000000000000042 -S3156002D6800000000000000000000000000000000032 -S3156002D6900000000000000000000000000000000022 -S3156002D6A00000000000000000000000000000000012 -S3156002D6B00000000000000000000000000000000002 -S3156002D6C000000000000000000000000000000000F2 -S3156002D6D000000000000000000000000000000000E2 -S3156002D6E000000000000000000000000000000000D2 -S3156002D6F000000000000000000000000000000000C2 -S3156002D70000000000000000000000000000000000B1 -S3156002D71000000000000000000000000000000000A1 -S3156002D7200000000000000000000000000000000091 -S3156002D7300000000000000000000000000000000081 -S3156002D7400000000000000000000000000000000071 -S3156002D7500000000000000000000000000000000061 -S3156002D7600000000000000000000000000000000051 -S3156002D7700000000000000000000000000000000041 -S3156002D7800000000000000000000000000000000031 -S3156002D7900000000000000000000000000000000021 -S3156002D7A00000000000000000000000000000000011 -S3156002D7B00000000000000000000000000000000001 -S3156002D7C000000000000000000000000000000000F1 -S3156002D7D000000000000000000000000000000000E1 -S3156002D7E000000000000000000000000000000000D1 -S3156002D7F000000000000000000000000000000000C1 -S3156002D80000000000000000000000000000000000B0 -S3156002D81000000000000000000000000000000000A0 -S3156002D8200000000000000000000000000000000090 -S3156002D8300000000000000000000000000000000080 -S3156002D8400000000000000000000000000000000070 -S3156002D8500000000000000000000000000000000060 -S3156002D8600000000000000000000000000000000050 -S3156002D8700000000000000000000000000000000040 -S3156002D8800000000000000000000000000000000030 -S3156002D8900000000000000000000000000000000020 -S3156002D8A00000000000000000000000000000000010 -S3156002D8B00000000000000000000000000000000000 -S3156002D8C000000000000000000000000000000000F0 -S3156002D8D000000000000000000000000000000000E0 -S3156002D8E000000000000000000000000000000000D0 -S3156002D8F000000000000000000000000000000000C0 -S3156002D90000000000000000000000000000000000AF -S3156002D910000000000000000000000000000000009F -S3156002D920000000000000000000000000000000008F -S3156002D930000000000000000000000000000000007F -S3156002D940000000000000000000000000000000006F -S3156002D950000000000000000000000000000000005F -S3156002D960000000000000000000000000000000004F -S3156002D970000000000000000000000000000000003F -S3156002D980000000000000000000000000000000002F -S3156002D990000000000000000000000000000000001F -S3156002D9A0000000000000000000000000000000000F -S3156002D9B000000000000000000000000000000000FF -S3156002D9C000000000000000000000000000000000EF -S3156002D9D000000000000000000000000000000000DF -S3156002D9E000000000000000000000000000000000CF -S3156002D9F000000000000000000000000000000000BF -S3156002DA0000000000000000000000000000000000AE -S3156002DA10000000000000000000000000000000009E -S3156002DA20000000000000000000000000000000008E -S3156002DA30000000000000000000000000000000007E -S3156002DA40000000000000000000000000000000006E -S3156002DA50000000000000000000000000000000005E -S3156002DA60000000000000000000000000000000004E -S3156002DA70000000000000000000000000000000003E -S3156002DA80000000000000000000000000000000002E -S3156002DA90000000000000000000000000000000001E -S3156002DAA0000000000000000000000000000000000E -S3156002DAB000000000000000000000000000000000FE -S3156002DAC000000000000000000000000000000000EE -S3156002DAD000000000000000000000000000000000DE -S3156002DAE000000000000000000000000000000000CE -S3156002DAF000000000000000000000000000000000BE -S3156002DB0000000000000000000000000000000000AD -S3156002DB10000000000000000000000000000000009D -S3156002DB20000000000000000000000000000000008D -S3156002DB30000000000000000000000000000000007D -S3156002DB40000000000000000000000000000000006D -S3156002DB50000000000000000000000000000000005D -S3156002DB60000000000000000000000000000000004D -S3156002DB70000000000000000000000000000000003D -S3156002DB80000000000000000000000000000000002D -S3156002DB90000000000000000000000000000000001D -S3156002DBA0000000000000000000000000000000000D -S3156002DBB000000000000000000000000000000000FD -S3156002DBC000000000000000000000000000000000ED -S3156002DBD000000000000000000000000000000000DD -S3156002DBE000000000000000000000000000000000CD -S3156002DBF000000000000000000000000000000000BD -S3156002DC0000000000000000000000000000000000AC -S3156002DC10000000000000000000000000000000009C -S3156002DC20000000000000000000000000000000008C -S3156002DC30000000000000000000000000000000007C -S3156002DC40000000000000000000000000000000006C -S3156002DC50000000000000000000000000000000005C -S3156002DC60000000000000000000000000000000004C -S3156002DC70000000000000000000000000000000003C -S3156002DC80000000000000000000000000000000002C -S3156002DC90000000000000000000000000000000001C -S3156002DCA0000000000000000000000000000000000C -S3156002DCB000000000000000000000000000000000FC -S3156002DCC000000000000000000000000000000000EC -S3156002DCD000000000000000000000000000000000DC -S3156002DCE000000000000000000000000000000000CC -S3156002DCF000000000000000000000000000000000BC -S3156002DD0000000000000000000000000000000000AB -S3156002DD10000000000000000000000000000000009B -S3156002DD20000000000000000000000000000000008B -S3156002DD30000000000000000000000000000000007B -S3156002DD40000000000000000000000000000000006B -S3156002DD50000000000000000000000000000000005B -S3156002DD60000000000000000000000000000000004B -S3156002DD70000000000000000000000000000000003B -S3156002DD80000000000000000000000000000000002B -S3156002DD90000000000000000000000000000000001B -S3156002DDA0000000000000000000000000000000000B -S3156002DDB000000000000000000000000000000000FB -S3156002DDC000000000000000000000000000000000EB -S3156002DDD000000000000000000000000000000000DB -S3156002DDE000000000000000000000000000000000CB -S3156002DDF000000000000000000000000000000000BB -S3156002DE0000000000000000000000000000000000AA -S3156002DE10000000000000000000000000000000009A -S3156002DE20000000000000000000000000000000008A -S3156002DE30000000000000000000000000000000007A -S3156002DE40000000000000000000000000000000006A -S3156002DE50000000000000000000000000000000005A -S3156002DE60000000000000000000000000000000004A -S3156002DE70000000000000000000000000000000003A -S3156002DE80000000000000000000000000000000002A -S3156002DE90000000000000000000000000000000001A -S3156002DEA0000000000000000000000000000000000A -S3156002DEB000000000000000000000000000000000FA -S3156002DEC000000000000000000000000000000000EA -S3156002DED000000000000000000000000000000000DA -S3156002DEE000000000000000000000000000000000CA -S3156002DEF000000000000000000000000000000000BA -S3156002DF0000000000000000000000000000000000A9 -S3156002DF100000000000000000000000000000000099 -S3156002DF200000000000000000000000000000000089 -S3156002DF300000000000000000000000000000000079 -S3156002DF400000000000000000000000000000000069 -S3156002DF500000000000000000000000000000000059 -S3156002DF600000000000000000000000000000000049 -S3156002DF700000000000000000000000000000000039 -S3156002DF800000000000000000000000000000000029 -S3156002DF900000000000000000000000000000000019 -S3156002DFA00000000000000000000000000000000009 -S3156002DFB000000000000000000000000000000000F9 -S3156002DFC000000000000000000000000000000000E9 -S3156002DFD000000000000000000000000000000000D9 -S3156002DFE000000000000000000000000000000000C9 -S3156002DFF000000000000000000000000000000000B9 -S3156002E00000000000000000000000000000000000A8 -S3156002E0100000000000000000000000000000000098 -S3156002E0200000000000000000000000000000000088 -S3156002E0300000000000000000000000000000000078 -S3156002E0400000000000000000000000000000000068 -S3156002E0500000000000000000000000000000000058 -S3156002E0600000000000000000000000000000000048 -S3156002E0700000000000000000000000000000000038 -S3156002E0800000000000000000000000000000000028 -S3156002E0900000000000000000000000000000000018 -S3156002E0A00000000000000000000000000000000008 -S3156002E0B000000000000000000000000000000000F8 -S3156002E0C000000000000000000000000000000000E8 -S3156002E0D000000000000000000000000000000000D8 -S3156002E0E000000000000000000000000000000000C8 -S3156002E0F000000000000000000000000000000000B8 -S3156002E10000000000000000000000000000000000A7 -S3156002E1100000000000000000000000000000000097 -S3156002E1200000000000000000000000000000000087 -S3156002E1300000000000000000000000000000000077 -S3156002E1400000000000000000000000000000000067 -S3156002E1500000000000000000000000000000000057 -S3156002E1600000000000000000000000000000000047 -S3156002E1700000000000000000000000000000000037 -S3156002E1800000000000000000000000000000000027 -S3156002E1900000000000000000000000000000000017 -S3156002E1A00000000000000000000000000000000007 -S3156002E1B000000000000000000000000000000000F7 -S3156002E1C000000000000000000000000000000000E7 -S3156002E1D000000000000000000000000000000000D7 -S3156002E1E000000000000000000000000000000000C7 -S3156002E1F000000000000000000000000000000000B7 -S3156002E20000000000000000000000000000000000A6 -S3156002E2100000000000000000000000000000000096 -S3156002E2200000000000000000000000000000000086 -S3156002E2300000000000000000000000000000000076 -S3156002E2400000000000000000000000000000000066 -S3156002E2500000000000000000000000000000000056 -S3156002E2600000000000000000000000000000000046 -S3156002E2700000000000000000000000000000000036 -S3156002E2800000000000000000000000000000000026 -S3156002E2900000000000000000000000000000000016 -S3156002E2A00000000000000000000000000000000006 -S3156002E2B000000000000000000000000000000000F6 -S3156002E2C000000000000000000000000000000000E6 -S3156002E2D000000000000000000000000000000000D6 -S3156002E2E000000000000000000000000000000000C6 -S3156002E2F000000000000000000000000000000000B6 -S3156002E30000000000000000000000000000000000A5 -S3156002E3100000000000000000000000000000000095 -S3156002E3200000000000000000000000000000000085 -S3156002E3300000000000000000000000000000000075 -S3156002E3400000000000000000000000000000000065 -S3156002E3500000000000000000000000000000000055 -S3156002E3600000000000000000000000000000000045 -S3156002E3700000000000000000000000000000000035 -S3156002E3800000000000000000000000000000000025 -S3156002E3900000000000000000000000000000000015 -S3156002E3A00000000000000000000000000000000005 -S3156002E3B000000000000000000000000000000000F5 -S3156002E3C000000000000000000000000000000000E5 -S3156002E3D000000000000000000000000000000000D5 -S3156002E3E000000000000000000000000000000000C5 -S3156002E3F000000000000000000000000000000000B5 -S3156002E40000000000000000000000000000000000A4 -S3156002E4100000000000000000000000000000000094 -S3156002E4200000000000000000000000000000000084 -S3156002E4300000000000000000000000000000000074 -S3156002E4400000000000000000000000000000000064 -S3156002E4500000000000000000000000000000000054 -S3156002E4600000000000000000000000000000000044 -S3156002E4700000000000000000000000000000000034 -S3156002E4800000000000000000000000000000000024 -S3156002E4900000000000000000000000000000000014 -S3156002E4A00000000000000000000000000000000004 -S3156002E4B000000000000000000000000000000000F4 -S3156002E4C000000000000000000000000000000000E4 -S3156002E4D000000000000000000000000000000000D4 -S3156002E4E000000000000000000000000000000000C4 -S3156002E4F000000000000000000000000000000000B4 -S3156002E50000000000000000000000000000000000A3 -S3156002E5100000000000000000000000000000000093 -S3156002E5200000000000000000000000000000000083 -S3156002E5300000000000000000000000000000000073 -S3156002E5400000000000000000000000000000000063 -S3156002E5500000000000000000000000000000000053 -S3156002E5600000000000000000000000000000000043 -S3156002E5700000000000000000000000000000000033 -S3156002E5800000000000000000000000000000000023 -S3156002E5900000000000000000000000000000000013 -S3156002E5A00000000000000000000000000000000003 -S3156002E5B000000000000000000000000000000000F3 -S3156002E5C000000000000000000000000000000000E3 -S3156002E5D000000000000000000000000000000000D3 -S3156002E5E000000000000000000000000000000000C3 -S3156002E5F000000000000000000000000000000000B3 -S3156002E60000000000000000000000000000000000A2 -S3156002E6100000000000000000000000000000000092 -S3156002E6200000000000000000000000000000000082 -S3156002E6300000000000000000000000000000000072 -S3156002E6400000000000000000000000000000000062 -S3156002E6500000000000000000000000000000000052 -S3156002E6600000000000000000000000000000000042 -S3156002E6700000000000000000000000000000000032 -S3156002E6800000000000000000000000000000000022 -S3156002E6900000000000000000000000000000000012 -S3156002E6A00000000000000000000000000000000002 -S3156002E6B000000000000000000000000000000000F2 -S3156002E6C000000000000000000000000000000000E2 -S3156002E6D000000000000000000000000000000000D2 -S3156002E6E000000000000000000000000000000000C2 -S3156002E6F000000000000000000000000000000000B2 -S3156002E70000000000000000000000000000000000A1 -S3156002E7100000000000000000000000000000000091 -S3156002E7200000000000000000000000000000000081 -S3156002E7300000000000000000000000000000000071 -S3156002E7400000000000000000000000000000000061 -S3156002E7500000000000000000000000000000000051 -S3156002E7600000000000000000000000000000000041 -S3156002E7700000000000000000000000000000000031 -S3156002E7800000000000000000000000000000000021 -S3156002E7900000000000000000000000000000000011 -S3156002E7A00000000000000000000000000000000001 -S3156002E7B000000000000000000000000000000000F1 -S3156002E7C000000000000000000000000000000000E1 -S3156002E7D000000000000000000000000000000000D1 -S3156002E7E000000000000000000000000000000000C1 -S3156002E7F000000000000000000000000000000000B1 -S3156002E80000000000000000000000000000000000A0 -S3156002E8100000000000000000000000000000000090 -S3156002E8200000000000000000000000000000000080 -S3156002E8300000000000000000000000000000000070 -S3156002E8400000000000000000000000000000000060 -S3156002E8500000000000000000000000000000000050 -S3156002E8600000000000000000000000000000000040 -S3156002E8700000000000000000000000000000000030 -S3156002E8800000000000000000000000000000000020 -S3156002E8900000000000000000000000000000000010 -S3156002E8A00000000000000000000000000000000000 -S3156002E8B000000000000000000000000000000000F0 -S3156002E8C000000000000000000000000000000000E0 -S3156002E8D000000000000000000000000000000000D0 -S3156002E8E000000000000000000000000000000000C0 -S3156002E8F000000000000000000000000000000000B0 -S3156002E900000000000000000000000000000000009F -S3156002E910000000000000000000000000000000008F -S3156002E920000000000000000000000000000000007F -S3156002E930000000000000000000000000000000006F -S3156002E940000000000000000000000000000000005F -S3156002E950000000000000000000000000000000004F -S3156002E960000000000000000000000000000000003F -S3156002E970000000000000000000000000000000002F -S3156002E980000000000000000000000000000000001F -S3156002E990000000000000000000000000000000000F -S3156002E9A000000000000000000000000000000000FF -S3156002E9B000000000000000000000000000000000EF -S3156002E9C000000000000000000000000000000000DF -S3156002E9D000000000000000000000000000000000CF -S3156002E9E000000000000000000000000000000000BF -S3156002E9F000000000000000000000000000000000AF -S3156002EA00000000000000000000000000000000009E -S3156002EA10000000000000000000000000000000008E -S3156002EA20000000000000000000000000000000007E -S3156002EA30000000000000000000000000000000006E -S3156002EA40000000000000000000000000000000005E -S3156002EA50000000000000000000000000000000004E -S3156002EA60000000000000000000000000000000003E -S3156002EA70000000000000000000000000000000002E -S3156002EA80000000000000000000000000000000001E -S3156002EA90000000000000000000000000000000000E -S3156002EAA000000000000000000000000000000000FE -S3156002EAB000000000000000000000000000000000EE -S3156002EAC000000000000000000000000000000000DE -S3156002EAD000000000000000000000000000000000CE -S3156002EAE000000000000000000000000000000000BE -S3156002EAF000000000000000000000000000000000AE -S3156002EB00000000000000000000000000000000009D -S3156002EB10000000000000000000000000000000008D -S3156002EB20000000000000000000000000000000007D -S3156002EB30000000000000000000000000000000006D -S3156002EB40000000000000000000000000000000005D -S3156002EB50000000000000000000000000000000004D -S3156002EB60000000000000000000000000000000003D -S3156002EB70000000000000000000000000000000002D -S3156002EB80000000000000000000000000000000001D -S3156002EB90000000000000000000000000000000000D -S3156002EBA000000000000000000000000000000000FD -S3156002EBB000000000000000000000000000000000ED -S3156002EBC000000000000000000000000000000000DD -S3156002EBD000000000000000000000000000000000CD -S3156002EBE000000000000000000000000000000000BD -S3156002EBF000000000000000000000000000000000AD -S3156002EC00000000000000000000000000000000009C -S3156002EC10000000000000000000000000000000008C -S3156002EC20000000000000000000000000000000007C -S3156002EC30000000000000000000000000000000006C -S3156002EC40000000000000000000000000000000005C -S3156002EC50000000000000000000000000000000004C -S3156002EC60000000000000000000000000000000003C -S3156002EC70000000000000000000000000000000002C -S3156002EC80000000000000000000000000000000001C -S3156002EC90000000000000000000000000000000000C -S3156002ECA000000000000000000000000000000000FC -S3156002ECB000000000000000000000000000000000EC -S3156002ECC000000000000000000000000000000000DC -S3156002ECD000000000000000000000000000000000CC -S3156002ECE000000000000000000000000000000000BC -S3156002ECF000000000000000000000000000000000AC -S3156002ED00000000000000000000000000000000009B -S3156002ED10000000000000000000000000000000008B -S3156002ED20000000000000000000000000000000007B -S3156002ED30000000000000000000000000000000006B -S3156002ED40000000000000000000000000000000005B -S3156002ED50000000000000000000000000000000004B -S3156002ED60000000000000000000000000000000003B -S3156002ED70000000000000000000000000000000002B -S3156002ED80000000000000000000000000000000001B -S3156002ED90000000000000000000000000000000000B -S3156002EDA000000000000000000000000000000000FB -S3156002EDB000000000000000000000000000000000EB -S3156002EDC000000000000000000000000000000000DB -S3156002EDD000000000000000000000000000000000CB -S3156002EDE000000000000000000000000000000000BB -S3156002EDF000000000000000000000000000000000AB -S3156002EE00000000000000000000000000000000009A -S3156002EE10000000000000000000000000000000008A -S3156002EE20000000000000000000000000000000007A -S3156002EE30000000000000000000000000000000006A -S3156002EE40000000000000000000000000000000005A -S3156002EE50000000000000000000000000000000004A -S3156002EE60000000000000000000000000000000003A -S3156002EE70000000000000000000000000000000002A -S3156002EE80000000000000000000000000000000001A -S3156002EE90000000000000000000000000000000000A -S3156002EEA000000000000000000000000000000000FA -S3156002EEB000000000000000000000000000000000EA -S3156002EEC000000000000000000000000000000000DA -S3156002EED000000000000000000000000000000000CA -S3156002EEE000000000000000000000000000000000BA -S3156002EEF000000000000000000000000000000000AA -S3156002EF000000000000000000000000000000000099 -S3156002EF100000000000000000000000000000000089 -S3156002EF200000000000000000000000000000000079 -S3156002EF300000000000000000000000000000000069 -S3156002EF400000000000000000000000000000000059 -S3156002EF500000000000000000000000000000000049 -S3156002EF600000000000000000000000000000000039 -S3156002EF700000000000000000000000000000000029 -S3156002EF800000000000000000000000000000000019 -S3156002EF900000000000000000000000000000000009 -S3156002EFA000000000000000000000000000000000F9 -S3156002EFB000000000000000000000000000000000E9 -S3156002EFC000000000000000000000000000000000D9 -S3156002EFD000000000000000000000000000000000C9 -S3156002EFE000000000000000000000000000000000B9 -S3156002EFF000000000000000000000000000000000A9 -S3156002F0000000000000000000000000000000000098 -S3156002F0100000000000000000000000000000000088 -S3156002F0200000000000000000000000000000000078 -S3156002F0300000000000000000000000000000000068 -S3156002F0400000000000000000000000000000000058 -S3156002F0500000000000000000000000000000000048 -S3156002F0600000000000000000000000000000000038 -S3156002F0700000000000000000000000000000000028 -S3156002F0800000000000000000000000000000000018 -S3156002F0900000000000000000000000000000000008 -S3156002F0A000000000000000000000000000000000F8 -S3156002F0B000000000000000000000000000000000E8 -S3156002F0C000000000000000000000000000000000D8 -S3156002F0D000000000000000000000000000000000C8 -S3156002F0E000000000000000000000000000000000B8 -S3156002F0F000000000000000000000000000000000A8 -S3156002F1000000000000000000000000000000000097 -S3156002F1100000000000000000000000000000000087 -S3156002F1200000000000000000000000000000000077 -S3156002F1300000000000000000000000000000000067 -S3156002F1400000000000000000000000000000000057 -S3156002F1500000000000000000000000000000000047 -S3156002F1600000000000000000000000000000000037 -S3156002F1700000000000000000000000000000000027 -S3156002F1800000000000000000000000000000000017 -S3156002F1900000000000000000000000000000000007 -S3156002F1A000000000000000000000000000000000F7 -S3156002F1B000000000000000000000000000000000E7 -S3156002F1C000000000000000000000000000000000D7 -S3156002F1D000000000000000000000000000000000C7 -S3156002F1E000000000000000000000000000000000B7 -S3156002F1F000000000000000000000000000000000A7 -S3156002F2000000000000000000000000000000000096 -S3156002F2100000000000000000000000000000000086 -S3156002F2200000000000000000000000000000000076 -S3156002F2300000000000000000000000000000000066 -S3156002F2400000000000000000000000000000000056 -S3156002F2500000000000000000000000000000000046 -S3156002F2600000000000000000000000000000000036 -S3156002F2700000000000000000000000000000000026 -S3156002F2800000000000000000000000000000000016 -S3156002F2900000000000000000000000000000000006 -S3156002F2A000000000000000000000000000000000F6 -S3156002F2B000000000000000000000000000000000E6 -S3156002F2C000000000000000000000000000000000D6 -S3156002F2D000000000000000000000000000000000C6 -S3156002F2E000000000000000000000000000000000B6 -S3156002F2F000000000000000000000000000000000A6 -S3156002F3000000000000000000000000000000000095 -S3156002F3100000000000000000000000000000000085 -S3156002F3200000000000000000000000000000000075 -S3156002F3300000000000000000000000000000000065 -S3156002F3400000000000000000000000000000000055 -S3156002F3500000000000000000000000000000000045 -S3156002F3600000000000000000000000000000000035 -S3156002F3700000000000000000000000000000000025 -S3156002F3800000000000000000000000000000000015 -S3156002F3900000000000000000000000000000000005 -S3156002F3A000000000000000000000000000000000F5 -S3156002F3B000000000000000000000000000000000E5 -S3156002F3C000000000000000000000000000000000D5 -S3156002F3D000000000000000000000000000000000C5 -S3156002F3E000000000000000000000000000000000B5 -S3156002F3F000000000000000000000000000000000A5 -S3156002F4000000000000000000000000000000000094 -S3156002F4100000000000000000000000000000000084 -S3156002F4200000000000000000000000000000000074 -S3156002F4300000000000000000000000000000000064 -S3156002F4400000000000000000000000000000000054 -S3156002F4500000000000000000000000000000000044 -S3156002F4600000000000000000000000000000000034 -S3156002F4700000000000000000000000000000000024 -S3156002F4800000000000000000000000000000000014 -S3156002F4900000000000000000000000000000000004 -S3156002F4A000000000000000000000000000000000F4 -S3156002F4B000000000000000000000000000000000E4 -S3156002F4C000000000000000000000000000000000D4 -S3156002F4D000000000000000000000000000000000C4 -S3156002F4E000000000000000000000000000000000B4 -S3156002F4F000000000000000000000000000000000A4 -S3156002F5000000000000000000000000000000000093 -S3156002F5100000000000000000000000000000000083 -S3156002F5200000000000000000000000000000000073 -S3156002F5300000000000000000000000000000000063 -S3156002F5400000000000000000000000000000000053 -S3156002F5500000000000000000000000000000000043 -S3156002F5600000000000000000000000000000000033 -S3156002F5700000000000000000000000000000000023 -S3156002F5800000000000000000000000000000000013 -S3156002F5900000000000000000000000000000000003 -S3156002F5A000000000000000000000000000000000F3 -S3156002F5B000000000000000000000000000000000E3 -S3156002F5C000000000000000000000000000000000D3 -S3156002F5D000000000000000000000000000000000C3 -S3156002F5E000000000000000000000000000000000B3 -S3156002F5F000000000000000000000000000000000A3 -S3156002F6000000000000000000000000000000000092 -S3156002F6100000000000000000000000000000000082 -S3156002F6200000000000000000000000000000000072 -S3156002F6300000000000000000000000000000000062 -S3156002F6400000000000000000000000000000000052 -S3156002F6500000000000000000000000000000000042 -S3156002F6600000000000000000000000000000000032 -S3156002F6700000000000000000000000000000000022 -S3156002F6800000000000000000000000000000000012 -S3156002F6900000000000000000000000000000000002 -S3156002F6A000000000000000000000000000000000F2 -S3156002F6B000000000000000000000000000000000E2 -S3156002F6C000000000000000000000000000000000D2 -S3156002F6D000000000000000000000000000000000C2 -S3156002F6E000000000000000000000000000000000B2 -S3156002F6F000000000000000000000000000000000A2 -S3156002F7000000000000000000000000000000000091 -S3156002F7100000000000000000000000000000000081 -S3156002F7200000000000000000000000000000000071 -S3156002F7300000000000000000000000000000000061 -S3156002F7400000000000000000000000000000000051 -S3156002F7500000000000000000000000000000000041 -S3156002F7600000000000000000000000000000000031 -S3156002F7700000000000000000000000000000000021 -S3156002F7800000000000000000000000000000000011 -S3156002F7900000000000000000000000000000000001 -S3156002F7A000000000000000000000000000000000F1 -S3156002F7B000000000000000000000000000000000E1 -S3156002F7C000000000000000000000000000000000D1 -S3156002F7D000000000000000000000000000000000C1 -S3156002F7E000000000000000000000000000000000B1 -S3156002F7F000000000000000000000000000000000A1 -S3156002F8000000000000000000000000000000000090 -S3156002F8100000000000000000000000000000000080 -S3156002F8200000000000000000000000000000000070 -S3156002F8300000000000000000000000000000000060 -S3156002F8400000000000000000000000000000000050 -S3156002F8500000000000000000000000000000000040 -S3156002F8600000000000000000000000000000000030 -S3156002F8700000000000000000000000000000000020 -S3156002F8800000000000000000000000000000000010 -S3156002F8900000000000000000000000000000000000 -S3156002F8A000000000000000000000000000000000F0 -S3156002F8B000000000000000000000000000000000E0 -S3156002F8C000000000000000000000000000000000D0 -S3156002F8D000000000000000000000000000000000C0 -S3156002F8E000000000000000000000000000000000B0 -S3156002F8F000000000000000000000000000000000A0 -S3156002F900000000000000000000000000000000008F -S3156002F910000000000000000000000000000000007F -S3156002F920000000000000000000000000000000006F -S3156002F930000000000000000000000000000000005F -S3156002F940000000000000000000000000000000004F -S3156002F950000000000000000000000000000000003F -S3156002F960000000000000000000000000000000002F -S3156002F970000000000000000000000000000000001F -S3156002F980000000000000000000000000000000000F -S3156002F99000000000000000000000000000000000FF -S3156002F9A000000000000000000000000000000000EF -S3156002F9B000000000000000000000000000000000DF -S3156002F9C000000000000000000000000000000000CF -S3156002F9D000000000000000000000000000000000BF -S3156002F9E000000000000000000000000000000000AF -S3156002F9F0000000000000000000000000000000009F -S3156002FA00000000000000000000000000000000008E -S3156002FA10000000000000000000000000000000007E -S3156002FA20000000000000000000000000000000006E -S3156002FA30000000000000000000000000000000005E -S3156002FA40000000000000000000000000000000004E -S3156002FA50000000000000000000000000000000003E -S3156002FA60000000000000000000000000000000002E -S3156002FA70000000000000000000000000000000001E -S3156002FA80000000000000000000000000000000000E -S3156002FA9000000000000000000000000000000000FE -S3156002FAA000000000000000000000000000000000EE -S3156002FAB000000000000000000000000000000000DE -S3156002FAC000000000000000000000000000000000CE -S3156002FAD000000000000000000000000000000000BE -S3156002FAE000000000000000000000000000000000AE -S3156002FAF0000000000000000000000000000000009E -S3156002FB00000000000000000000000000000000008D -S3156002FB10000000000000000000000000000000007D -S3156002FB20000000000000000000000000000000006D -S3156002FB30000000000000000000000000000000005D -S3156002FB40000000000000000000000000000000004D -S3156002FB50000000000000000000000000000000003D -S3156002FB60000000000000000000000000000000002D -S3156002FB70000000000000000000000000000000001D -S3156002FB80000000000000000000000000000000000D -S3156002FB9000000000000000000000000000000000FD -S3156002FBA000000000000000000000000000000000ED -S3156002FBB000000000000000000000000000000000DD -S3156002FBC000000000000000000000000000000000CD -S3156002FBD000000000000000000000000000000000BD -S3156002FBE000000000000000000000000000000000AD -S3156002FBF0000000000000000000000000000000009D -S3156002FC00000000000000000000000000000000008C -S3156002FC10000000000000000000000000000000007C -S3156002FC20000000000000000000000000000000006C -S3156002FC30000000000000000000000000000000005C -S3156002FC40000000000000000000000000000000004C -S3156002FC50000000000000000000000000000000003C -S3156002FC60000000000000000000000000000000002C -S3156002FC70000000000000000000000000000000001C -S3156002FC80000000000000000000000000000000000C -S3156002FC9000000000000000000000000000000000FC -S3156002FCA000000000000000000000000000000000EC -S3156002FCB000000000000000000000000000000000DC -S3156002FCC000000000000000000000000000000000CC -S3156002FCD000000000000000000000000000000000BC -S3156002FCE000000000000000000000000000000000AC -S3156002FCF0000000000000000000000000000000009C -S3156002FD00000000000000000000000000000000008B -S3156002FD10000000000000000000000000000000007B -S3156002FD20000000000000000000000000000000006B -S3156002FD30000000000000000000000000000000005B -S3156002FD40000000000000000000000000000000004B -S3156002FD50000000000000000000000000000000003B -S3156002FD60000000000000000000000000000000002B -S3156002FD70000000000000000000000000000000001B -S3156002FD80000000000000000000000000000000000B -S3156002FD9000000000000000000000000000000000FB -S3156002FDA000000000000000000000000000000000EB -S3156002FDB000000000000000000000000000000000DB -S3156002FDC000000000000000000000000000000000CB -S3156002FDD000000000000000000000000000000000BB -S3156002FDE000000000000000000000000000000000AB -S3156002FDF0000000000000000000000000000000009B -S3156002FE00000000000000000000000000000000008A -S3156002FE10000000000000000000000000000000007A -S3156002FE20000000000000000000000000000000006A -S3156002FE30000000000000000000000000000000005A -S3156002FE40000000000000000000000000000000004A -S3156002FE50000000000000000000000000000000003A -S3156002FE60000000000000000000000000000000002A -S3156002FE70000000000000000000000000000000001A -S3156002FE80000000000000000000000000000000000A -S3156002FE9000000000000000000000000000000000FA -S3156002FEA000000000000000000000000000000000EA -S3156002FEB000000000000000000000000000000000DA -S3156002FEC000000000000000000000000000000000CA -S3156002FED000000000000000000000000000000000BA -S3156002FEE000000000000000000000000000000000AA -S3156002FEF0000000000000000000000000000000009A -S3156002FF000000000000000000000000000000000089 -S3156002FF100000000000000000000000000000000079 -S3156002FF200000000000000000000000000000000069 -S3156002FF300000000000000000000000000000000059 -S3156002FF400000000000000000000000000000000049 -S3156002FF500000000000000000000000000000000039 -S3156002FF600000000000000000000000000000000029 -S3156002FF700000000000000000000000000000000019 -S3156002FF800000000000000000000000000000000009 -S3156002FF9000000000000000000000000000000000F9 -S3156002FFA000000000000000000000000000000000E9 -S3156002FFB000000000000000000000000000000000D9 -S3156002FFC000000000000000000000000000000000C9 -S3156002FFD000000000000000000000000000000000B9 -S3156002FFE000000000000000000000000000000000A9 -S3156002FFF00000000000000000000000000000000099 -S315600300000000000000000000000000000000000087 -S315600300100000000000000000000000000000000077 -S315600300200000000000000000000000000000000067 -S315600300300000000000000000000000000000000057 -S315600300400000000000000000000000000000000047 -S315600300500000000000000000000000000000000037 -S315600300600000000000000000000000000000000027 -S315600300700000000000000000000000000000000017 -S315600300800000000000000000000000000000000007 -S3156003009000000000000000000000000000000000F7 -S315600300A000000000000000000000000000000000E7 -S315600300B000000000000000000000000000000000D7 -S315600300C000000000000000000000000000000000C7 -S315600300D000000000000000000000000000000000B7 -S315600300E000000000000000000000000000000000A7 -S315600300F00000000000000000000000000000000097 -S315600301000000000000000000000000000000000086 -S315600301100000000000000000000000000000000076 -S315600301200000000000000000000000000000000066 -S315600301300000000000000000000000000000000056 -S315600301400000000000000000000000000000000046 -S315600301500000000000000000000000000000000036 -S315600301600000000000000000000000000000000026 -S315600301700000000000000000000000000000000016 -S315600301800000000000000000000000000000000006 -S3156003019000000000000000000000000000000000F6 -S315600301A000000000000000000000000000000000E6 -S315600301B000000000000000000000000000000000D6 -S315600301C000000000000000000000000000000000C6 -S315600301D000000000000000000000000000000000B6 -S315600301E000000000000000000000000000000000A6 -S315600301F00000000000000000000000000000000096 -S315600302000000000000000000000000000000000085 -S315600302100000000000000000000000000000000075 -S315600302200000000000000000000000000000000065 -S315600302300000000000000000000000000000000055 -S315600302400000000000000000000000000000000045 -S315600302500000000000000000000000000000000035 -S315600302600000000000000000000000000000000025 -S315600302700000000000000000000000000000000015 -S315600302800000000000000000000000000000000005 -S3156003029000000000000000000000000000000000F5 -S315600302A000000000000000000000000000000000E5 -S315600302B000000000000000000000000000000000D5 -S315600302C000000000000000000000000000000000C5 -S315600302D000000000000000000000000000000000B5 -S315600302E000000000000000000000000000000000A5 -S315600302F00000000000000000000000000000000095 -S315600303000000000000000000000000000000000084 -S315600303100000000000000000000000000000000074 -S315600303200000000000000000000000000000000064 -S315600303300000000000000000000000000000000054 -S315600303400000000000000000000000000000000044 -S315600303500000000000000000000000000000000034 -S315600303600000000000000000000000000000000024 -S315600303700000000000000000000000000000000014 -S315600303800000000000000000000000000000000004 -S3156003039000000000000000000000000000000000F4 -S315600303A000000000000000000000000000000000E4 -S315600303B000000000000000000000000000000000D4 -S315600303C000000000000000000000000000000000C4 -S315600303D000000000000000000000000000000000B4 -S315600303E000000000000000000000000000000000A4 -S315600303F00000000000000000000000000000000094 -S315600304000000000000000000000000000000000083 -S315600304100000000000000000000000000000000073 -S315600304200000000000000000000000000000000063 -S315600304300000000000000000000000000000000053 -S315600304400000000000000000000000000000000043 -S315600304500000000000000000000000000000000033 -S315600304600000000000000000000000000000000023 -S315600304700000000000000000000000000000000013 -S315600304800000000000000000000000000000000003 -S3156003049000000000000000000000000000000000F3 -S315600304A000000000000000000000000000000000E3 -S315600304B000000000000000000000000000000000D3 -S315600304C000000000000000000000000000000000C3 -S315600304D000000000000000000000000000000000B3 -S315600304E000000000000000000000000000000000A3 -S315600304F00000000000000000000000000000000093 -S315600305000000000000000000000000000000000082 -S315600305100000000000000000000000000000000072 -S315600305200000000000000000000000000000000062 -S315600305300000000000000000000000000000000052 -S315600305400000000000000000000000000000000042 -S315600305500000000000000000000000000000000032 -S315600305600000000000000000000000000000000022 -S315600305700000000000000000000000000000000012 -S315600305800000000000000000000000000000000002 -S3156003059000000000000000000000000000000000F2 -S315600305A000000000000000000000000000000000E2 -S315600305B000000000000000000000000000000000D2 -S315600305C000000000000000000000000000000000C2 -S315600305D000000000000000000000000000000000B2 -S315600305E000000000000000000000000000000000A2 -S315600305F00000000000000000000000000000000092 -S315600306000000000000000000000000000000000081 -S315600306100000000000000000000000000000000071 -S315600306200000000000000000000000000000000061 -S315600306300000000000000000000000000000000051 -S315600306400000000000000000000000000000000041 -S315600306500000000000000000000000000000000031 -S315600306600000000000000000000000000000000021 -S315600306700000000000000000000000000000000011 -S315600306800000000000000000000000000000000001 -S3156003069000000000000000000000000000000000F1 -S315600306A000000000000000000000000000000000E1 -S315600306B000000000000000000000000000000000D1 -S315600306C000000000000000000000000000000000C1 -S315600306D000000000000000000000000000000000B1 -S315600306E000000000000000000000000000000000A1 -S315600306F00000000000000000000000000000000091 -S315600307000000000000000000000000000000000080 -S315600307100000000000000000000000000000000070 -S315600307200000000000000000000000000000000060 -S315600307300000000000000000000000000000000050 -S315600307400000000000000000000000000000000040 -S315600307500000000000000000000000000000000030 -S315600307600000000000000000000000000000000020 -S315600307700000000000000000000000000000000010 -S315600307800000000000000000000000000000000000 -S3156003079000000000000000000000000000000000F0 -S315600307A000000000000000000000000000000000E0 -S315600307B000000000000000000000000000000000D0 -S315600307C000000000000000000000000000000000C0 -S315600307D000000000000000000000000000000000B0 -S315600307E000000000000000000000000000000000A0 -S315600307F00000000000000000000000000000000090 -S31560030800000000000000000000000000000000007F -S31560030810000000000000000000000000000000006F -S31560030820000000000000000000000000000000005F -S31560030830000000000000000000000000000000004F -S31560030840000000000000000000000000000000003F -S31560030850000000000000000000000000000000002F -S31560030860000000000000000000000000000000001F -S31560030870000000000000000000000000000000000F -S3156003088000000000000000000000000000000000FF -S3156003089000000000000000000000000000000000EF -S315600308A000000000000000000000000000000000DF -S315600308B000000000000000000000000000000000CF -S315600308C000000000000000000000000000000000BF -S315600308D000000000000000000000000000000000AF -S315600308E0000000000000000000000000000000009F -S315600308F0000000000000000000000000000000008F -S31560030900000000000000000000000000000000007E -S31560030910000000000000000000000000000000006E -S31560030920000000000000000000000000000000005E -S31560030930000000000000000000000000000000004E -S31560030940000000000000000000000000000000003E -S31560030950000000000000000000000000000000002E -S31560030960000000000000000000000000000000001E -S31560030970000000000000000000000000000000000E -S3156003098000000000000000000000000000000000FE -S3156003099000000000000000000000000000000000EE -S315600309A000000000000000000000000000000000DE -S315600309B000000000000000000000000000000000CE -S315600309C000000000000000000000000000000000BE -S315600309D000000000000000000000000000000000AE -S315600309E0000000000000000000000000000000009E -S315600309F0000000000000000000000000000000008E -S31560030A00000000000000000000000000000000007D -S31560030A10000000000000000000000000000000006D -S31560030A20000000000000000000000000000000005D -S31560030A30000000000000000000000000000000004D -S31560030A40000000000000000000000000000000003D -S31560030A50000000000000000000000000000000002D -S31560030A60000000000000000000000000000000001D -S31560030A70000000000000000000000000000000000D -S31560030A8000000000000000000000000000000000FD -S31560030A9000000000000000000000000000000000ED -S31560030AA000000000000000000000000000000000DD -S31560030AB000000000000000000000000000000000CD -S31560030AC000000000000000000000000000000000BD -S31560030AD000000000000000000000000000000000AD -S31560030AE0000000000000000000000000000000009D -S31560030AF0000000000000000000000000000000008D -S31560030B00000000000000000000000000000000007C -S31560030B10000000000000000000000000000000006C -S31560030B20000000000000000000000000000000005C -S31560030B30000000000000000000000000000000004C -S31560030B40000000000000000000000000000000003C -S31560030B50000000000000000000000000000000002C -S31560030B60000000000000000000000000000000001C -S31560030B70000000000000000000000000000000000C -S31560030B8000000000000000000000000000000000FC -S31560030B9000000000000000000000000000000000EC -S31560030BA000000000000000000000000000000000DC -S31560030BB000000000000000000000000000000000CC -S31560030BC000000000000000000000000000000000BC -S31560030BD000000000000000000000000000000000AC -S31560030BE0000000000000000000000000000000009C -S31560030BF0000000000000000000000000000000008C -S31560030C00000000000000000000000000000000007B -S31560030C10000000000000000000000000000000006B -S31560030C20000000000000000000000000000000005B -S31560030C30000000000000000000000000000000004B -S31560030C40000000000000000000000000000000003B -S31560030C50000000000000000000000000000000002B -S31560030C60000000000000000000000000000000001B -S31560030C70000000000000000000000000000000000B -S31560030C8000000000000000000000000000000000FB -S31560030C9000000000000000000000000000000000EB -S31560030CA000000000000000000000000000000000DB -S31560030CB000000000000000000000000000000000CB -S31560030CC000000000000000000000000000000000BB -S31560030CD000000000000000000000000000000000AB -S31560030CE0000000000000000000000000000000009B -S31560030CF0000000000000000000000000000000008B -S31560030D00000000000000000000000000000000007A -S31560030D10000000000000000000000000000000006A -S31560030D20000000000000000000000000000000005A -S31560030D30000000000000000000000000000000004A -S31560030D40000000000000000000000000000000003A -S31560030D50000000000000000000000000000000002A -S31560030D60000000000000000000000000000000001A -S31560030D70000000000000000000000000000000000A -S31560030D8000000000000000000000000000000000FA -S31560030D9000000000000000000000000000000000EA -S31560030DA000000000000000000000000000000000DA -S31560030DB000000000000000000000000000000000CA -S31560030DC000000000000000000000000000000000BA -S31560030DD000000000000000000000000000000000AA -S31560030DE0000000000000000000000000000000009A -S31560030DF0000000000000000000000000000000008A -S31560030E000000000000000000000000000000000079 -S31560030E100000000000000000000000000000000069 -S31560030E200000000000000000000000000000000059 -S31560030E300000000000000000000000000000000049 -S31560030E400000000000000000000000000000000039 -S31560030E500000000000000000000000000000000029 -S31560030E600000000000000000000000000000000019 -S31560030E700000000000000000000000000000000009 -S31560030E8000000000000000000000000000000000F9 -S31560030E9000000000000000000000000000000000E9 -S31560030EA000000000000000000000000000000000D9 -S31560030EB000000000000000000000000000000000C9 -S31560030EC000000000000000000000000000000000B9 -S31560030ED000000000000000000000000000000000A9 -S31560030EE00000000000000000000000000000000099 -S31560030EF00000000000000000000000000000000089 -S31560030F000000000000000000000000000000000078 -S31560030F100000000000000000000000000000000068 -S31560030F200000000000000000000000000000000058 -S31560030F300000000000000000000000000000000048 -S31560030F400000000000000000000000000000000038 -S31560030F500000000000000000000000000000000028 -S31560030F600000000000000000000000000000000018 -S31560030F700000000000000000000000000000000008 -S31560030F8000000000000000000000000000000000F8 -S31560030F9000000000000000000000000000000000E8 -S31560030FA000000000000000000000000000000000D8 -S31560030FB000000000000000000000000000000000C8 -S31560030FC000000000000000000000000000000000B8 -S31560030FD000000000000000000000000000000000A8 -S31560030FE00000000000000000000000000000000098 -S31560030FF00000000000000000000000000000000088 -S315600310000000000000000000000000000000000077 -S315600310100000000000000000000000000000000067 -S315600310200000000000000000000000000000000057 -S315600310300000000000000000000000000000000047 -S315600310400000000000000000000000000000000037 -S315600310500000000000000000000000000000000027 -S315600310600000000000000000000000000000000017 -S315600310700000000000000000000000000000000007 -S3156003108000000000000000000000000000000000F7 -S3156003109000000000000000000000000000000000E7 -S315600310A000000000000000000000000000000000D7 -S315600310B000000000000000000000000000000000C7 -S315600310C000000000000000000000000000000000B7 -S315600310D000000000000000000000000000000000A7 -S315600310E00000000000000000000000000000000097 -S315600310F00000000000000000000000000000000087 -S315600311000000000000000000000000000000000076 -S315600311100000000000000000000000000000000066 -S315600311200000000000000000000000000000000056 -S315600311300000000000000000000000000000000046 -S315600311400000000000000000000000000000000036 -S315600311500000000000000000000000000000000026 -S315600311600000000000000000000000000000000016 -S315600311700000000000000000000000000000000006 -S3156003118000000000000000000000000000000000F6 -S3156003119000000000000000000000000000000000E6 -S315600311A000000000000000000000000000000000D6 -S315600311B000000000000000000000000000000000C6 -S315600311C000000000000000000000000000000000B6 -S315600311D000000000000000000000000000000000A6 -S315600311E00000000000000000000000000000000096 -S315600311F00000000000000000000000000000000086 -S315600312000000000000000000000000000000000075 -S315600312100000000000000000000000000000000065 -S315600312200000000000000000000000000000000055 -S315600312300000000000000000000000000000000045 -S315600312400000000000000000000000000000000035 -S315600312500000000000000000000000000000000025 -S315600312600000000000000000000000000000000015 -S315600312700000000000000000000000000000000005 -S3156003128000000000000000000000000000000000F5 -S3156003129000000000000000000000000000000000E5 -S315600312A000000000000000000000000000000000D5 -S315600312B000000000000000000000000000000000C5 -S315600312C000000000000000000000000000000000B5 -S315600312D000000000000000000000000000000000A5 -S315600312E00000000000000000000000000000000095 -S315600312F00000000000000000000000000000000085 -S315600313000000000000000000000000000000000074 -S315600313100000000000000000000000000000000064 -S315600313200000000000000000000000000000000054 -S315600313300000000000000000000000000000000044 -S315600313400000000000000000000000000000000034 -S315600313500000000000000000000000000000000024 -S315600313600000000000000000000000000000000014 -S315600313700000000000000000000000000000000004 -S3156003138000000000000000000000000000000000F4 -S3156003139000000000000000000000000000000000E4 -S315600313A000000000000000000000000000000000D4 -S315600313B000000000000000000000000000000000C4 -S315600313C000000000000000000000000000000000B4 -S315600313D000000000000000000000000000000000A4 -S315600313E00000000000000000000000000000000094 -S315600313F00000000000000000000000000000000084 -S315600314000000000000000000000000000000000073 -S315600314100000000000000000000000000000000063 -S315600314200000000000000000000000000000000053 -S315600314300000000000000000000000000000000043 -S315600314400000000000000000000000000000000033 -S315600314500000000000000000000000000000000023 -S315600314600000000000000000000000000000000013 -S315600314700000000000000000000000000000000003 -S3156003148000000000000000000000000000000000F3 -S3156003149000000000000000000000000000000000E3 -S315600314A000000000000000000000000000000000D3 -S315600314B000000000000000000000000000000000C3 -S315600314C000000000000000000000000000000000B3 -S315600314D000000000000000000000000000000000A3 -S315600314E00000000000000000000000000000000093 -S315600314F00000000000000000000000000000000083 -S315600315000000000000000000000000000000000072 -S315600315100000000000000000000000000000000062 -S315600315200000000000000000000000000000000052 -S315600315300000000000000000000000000000000042 -S315600315400000000000000000000000000000000032 -S315600315500000000000000000000000000000000022 -S315600315600000000000000000000000000000000012 -S315600315700000000000000000000000000000000002 -S3156003158000000000000000000000000000000000F2 -S3156003159000000000000000000000000000000000E2 -S315600315A000000000000000000000000000000000D2 -S315600315B000000000000000000000000000000000C2 -S315600315C000000000000000000000000000000000B2 -S315600315D000000000000000000000000000000000A2 -S315600315E00000000000000000000000000000000092 -S315600315F00000000000000000000000000000000082 -S315600316000000000000000000000000000000000071 -S315600316100000000000000000000000000000000061 -S315600316200000000000000000000000000000000051 -S315600316300000000000000000000000000000000041 -S315600316400000000000000000000000000000000031 -S315600316500000000000000000000000000000000021 -S315600316600000000000000000000000000000000011 -S315600316700000000000000000000000000000000001 -S3156003168000000000000000000000000000000000F1 -S3156003169000000000000000000000000000000000E1 -S315600316A000000000000000000000000000000000D1 -S315600316B000000000000000000000000000000000C1 -S315600316C000000000000000000000000000000000B1 -S315600316D000000000000000000000000000000000A1 -S315600316E00000000000000000000000000000000091 -S315600316F00000000000000000000000000000000081 -S315600317000000000000000000000000000000000070 -S315600317100000000000000000000000000000000060 -S315600317200000000000000000000000000000000050 -S315600317300000000000000000000000000000000040 -S315600317400000000000000000000000000000000030 -S315600317500000000000000000000000000000000020 -S315600317600000000000000000000000000000000010 -S315600317700000000000000000000000000000000000 -S3156003178000000000000000000000000000000000F0 -S3156003179000000000000000000000000000000000E0 -S315600317A000000000000000000000000000000000D0 -S315600317B000000000000000000000000000000000C0 -S315600317C000000000000000000000000000000000B0 -S315600317D000000000000000000000000000000000A0 -S315600317E00000000000000000000000000000000090 -S315600317F00000000000000000000000000000000080 -S31560031800000000000000000000000000000000006F -S31560031810000000000000000000000000000000005F -S31560031820000000000000000000000000000000004F -S31560031830000000000000000000000000000000003F -S31560031840000000000000000000000000000000002F -S31560031850000000000000000000000000000000001F -S31560031860000000000000000000000000000000000F -S3156003187000000000000000000000000000000000FF -S3156003188000000000000000000000000000000000EF -S3156003189000000000000000000000000000000000DF -S315600318A000000000000000000000000000000000CF -S315600318B000000000000000000000000000000000BF -S315600318C000000000000000000000000000000000AF -S315600318D0000000000000000000000000000000009F -S315600318E0000000000000000000000000000000008F -S315600318F0000000000000000000000000000000007F -S31560031900000000000000000000000000000000006E -S31560031910000000000000000000000000000000005E -S31560031920000000000000000000000000000000004E -S31560031930000000000000000000000000000000003E -S31560031940000000000000000000000000000000002E -S31560031950000000000000000000000000000000001E -S31560031960000000000000000000000000000000000E -S3156003197000000000000000000000000000000000FE -S3156003198000000000000000000000000000000000EE -S3156003199000000000000000000000000000000000DE -S315600319A000000000000000000000000000000000CE -S315600319B000000000000000000000000000000000BE -S315600319C000000000000000000000000000000000AE -S315600319D0000000000000000000000000000000009E -S315600319E0000000000000000000000000000000008E -S315600319F0000000000000000000000000000000007E -S31560031A00000000000000000000000000000000006D -S31560031A10000000000000000000000000000000005D -S31560031A20000000000000000000000000000000004D -S31560031A30000000000000000000000000000000003D -S31560031A40000000000000000000000000000000002D -S31560031A50000000000000000000000000000000001D -S31560031A60000000000000000000000000000000000D -S31560031A7000000000000000000000000000000000FD -S31560031A8000000000000000000000000000000000ED -S31560031A9000000000000000000000000000000000DD -S31560031AA000000000000000000000000000000000CD -S31560031AB000000000000000000000000000000000BD -S31560031AC000000000000000000000000000000000AD -S31560031AD0000000000000000000000000000000009D -S31560031AE0000000000000000000000000000000008D -S31560031AF0000000000000000000000000000000007D -S31560031B00000000000000000000000000000000006C -S31560031B10000000000000000000000000000000005C -S31560031B20000000000000000000000000000000004C -S31560031B30000000000000000000000000000000003C -S31560031B40000000000000000000000000000000002C -S31560031B50000000000000000000000000000000001C -S31560031B60000000000000000000000000000000000C -S31560031B7000000000000000000000000000000000FC -S31560031B8000000000000000000000000000000000EC -S31560031B9000000000000000000000000000000000DC -S31560031BA000000000000000000000000000000000CC -S31560031BB000000000000000000000000000000000BC -S31560031BC000000000000000000000000000000000AC -S31560031BD0000000000000000000000000000000009C -S31560031BE0000000000000000000000000000000008C -S31560031BF0000000000000000000000000000000007C -S31560031C00000000000000000000000000000000006B -S31560031C10000000000000000000000000000000005B -S31560031C20000000000000000000000000000000004B -S31560031C30000000000000000000000000000000003B -S31560031C40000000000000000000000000000000002B -S31560031C50000000000000000000000000000000001B -S31560031C60000000000000000000000000000000000B -S31560031C7000000000000000000000000000000000FB -S31560031C8000000000000000000000000000000000EB -S31560031C9000000000000000000000000000000000DB -S31560031CA000000000000000000000000000000000CB -S31560031CB000000000000000000000000000000000BB -S31560031CC000000000000000000000000000000000AB -S31560031CD0000000000000000000000000000000009B -S31560031CE0000000000000000000000000000000008B -S31560031CF0000000000000000000000000000000007B -S31560031D00000000000000000000000000000000006A -S31560031D10000000000000000000000000000000005A -S31560031D20000000000000000000000000000000004A -S31560031D30000000000000000000000000000000003A -S31560031D40000000000000000000000000000000002A -S31560031D50000000000000000000000000000000001A -S31560031D60000000000000000000000000000000000A -S31560031D7000000000000000000000000000000000FA -S31560031D8000000000000000000000000000000000EA -S31560031D9000000000000000000000000000000000DA -S31560031DA000000000000000000000000000000000CA -S31560031DB000000000000000000000000000000000BA -S31560031DC000000000000000000000000000000000AA -S31560031DD0000000000000000000000000000000009A -S31560031DE0000000000000000000000000000000008A -S31560031DF0000000000000000000000000000000007A -S31560031E000000000000000000000000000000000069 -S31560031E100000000000000000000000000000000059 -S31560031E200000000000000000000000000000000049 -S31560031E300000000000000000000000000000000039 -S31560031E400000000000000000000000000000000029 -S31560031E500000000000000000000000000000000019 -S31560031E600000000000000000000000000000000009 -S31560031E7000000000000000000000000000000000F9 -S31560031E8000000000000000000000000000000000E9 -S31560031E9000000000000000000000000000000000D9 -S31560031EA000000000000000000000000000000000C9 -S31560031EB000000000000000000000000000000000B9 -S31560031EC000000000000000000000000000000000A9 -S31560031ED00000000000000000000000000000000099 -S31560031EE00000000000000000000000000000000089 -S31560031EF00000000000000000000000000000000079 -S31560031F000000000000000000000000000000000068 -S31560031F100000000000000000000000000000000058 -S31560031F200000000000000000000000000000000048 -S31560031F300000000000000000000000000000000038 -S31560031F400000000000000000000000000000000028 -S31560031F500000000000000000000000000000000018 -S31560031F600000000000000000000000000000000008 -S31560031F7000000000000000000000000000000000F8 -S31560031F8000000000000000000000000000000000E8 -S31560031F9000000000000000000000000000000000D8 -S31560031FA000000000000000000000000000000000C8 -S31560031FB000000000000000000000000000000000B8 -S31560031FC000000000000000000000000000000000A8 -S31560031FD00000000000000000000000000000000098 -S31560031FE00000000000000000000000000000000088 -S31560031FF00000000000000000000000000000000078 -S315600320000000000000000000000000000000000067 -S315600320100000000000000000000000000000000057 -S315600320200000000000000000000000000000000047 -S315600320300000000000000000000000000000000037 -S315600320400000000000000000000000000000000027 -S315600320500000000000000000000000000000000017 -S315600320600000000000000000000000000000000007 -S3156003207000000000000000000000000000000000F7 -S3156003208000000000000000000000000000000000E7 -S3156003209000000000000000000000000000000000D7 -S315600320A000000000000000000000000000000000C7 -S315600320B000000000000000000000000000000000B7 -S315600320C000000000000000000000000000000000A7 -S315600320D00000000000000000000000000000000097 -S315600320E00000000000000000000000000000000087 -S315600320F00000000000000000000000000000000077 -S315600321000000000000000000000000000000000066 -S315600321100000000000000000000000000000000056 -S315600321200000000000000000000000000000000046 -S315600321300000000000000000000000000000000036 -S315600321400000000000000000000000000000000026 -S315600321500000000000000000000000000000000016 -S315600321600000000000000000000000000000000006 -S3156003217000000000000000000000000000000000F6 -S3156003218000000000000000000000000000000000E6 -S3156003219000000000000000000000000000000000D6 -S315600321A000000000000000000000000000000000C6 -S315600321B000000000000000000000000000000000B6 -S315600321C000000000000000000000000000000000A6 -S315600321D00000000000000000000000000000000096 -S315600321E00000000000000000000000000000000086 -S315600321F00000000000000000000000000000000076 -S315600322000000000000000000000000000000000065 -S315600322100000000000000000000000000000000055 -S315600322200000000000000000000000000000000045 -S315600322300000000000000000000000000000000035 -S315600322400000000000000000000000000000000025 -S315600322500000000000000000000000000000000015 -S315600322600000000000000000000000000000000005 -S3156003227000000000000000000000000000000000F5 -S3156003228000000000000000000000000000000000E5 -S3156003229000000000000000000000000000000000D5 -S315600322A000000000000000000000000000000000C5 -S315600322B000000000000000000000000000000000B5 -S315600322C000000000000000000000000000000000A5 -S315600322D00000000000000000000000000000000095 -S315600322E00000000000000000000000000000000085 -S315600322F00000000000000000000000000000000075 -S315600323000000000000000000000000000000000064 -S315600323100000000000000000000000000000000054 -S315600323200000000000000000000000000000000044 -S315600323300000000000000000000000000000000034 -S315600323400000000000000000000000000000000024 -S315600323500000000000000000000000000000000014 -S315600323600000000000000000000000000000000004 -S3156003237000000000000000000000000000000000F4 -S3156003238000000000000000000000000000000000E4 -S3156003239000000000000000000000000000000000D4 -S315600323A000000000000000000000000000000000C4 -S315600323B000000000000000000000000000000000B4 -S315600323C000000000000000000000000000000000A4 -S315600323D00000000000000000000000000000000094 -S315600323E00000000000000000000000000000000084 -S315600323F00000000000000000000000000000000074 -S315600324000000000000000000000000000000000063 -S315600324100000000000000000000000000000000053 -S315600324200000000000000000000000000000000043 -S315600324300000000000000000000000000000000033 -S315600324400000000000000000000000000000000023 -S315600324500000000000000000000000000000000013 -S315600324600000000000000000000000000000000003 -S3156003247000000000000000000000000000000000F3 -S3156003248000000000000000000000000000000000E3 -S3156003249000000000000000000000000000000000D3 -S315600324A000000000000000000000000000000000C3 -S315600324B000000000000000000000000000000000B3 -S315600324C000000000000000000000000000000000A3 -S315600324D00000000000000000000000000000000093 -S315600324E00000000000000000000000000000000083 -S315600324F00000000000000000000000000000000073 -S315600325000000000000000000000000000000000062 -S315600325100000000000000000000000000000000052 -S315600325200000000000000000000000000000000042 -S315600325300000000000000000000000000000000032 -S315600325400000000000000000000000000000000022 -S315600325500000000000000000000000000000000012 -S315600325600000000000000000000000000000000002 -S3156003257000000000000000000000000000000000F2 -S3156003258000000000000000000000000000000000E2 -S3156003259000000000000000000000000000000000D2 -S315600325A000000000000000000000000000000000C2 -S315600325B000000000000000000000000000000000B2 -S315600325C000000000000000000000000000000000A2 -S315600325D00000000000000000000000000000000092 -S315600325E00000000000000000000000000000000082 -S315600325F00000000000000000000000000000000072 -S315600326000000000000000000000000000000000061 -S315600326100000000000000000000000000000000051 -S315600326200000000000000000000000000000000041 -S315600326300000000000000000000000000000000031 -S315600326400000000000000000000000000000000021 -S315600326500000000000000000000000000000000011 -S315600326600000000000000000000000000000000001 -S3156003267000000000000000000000000000000000F1 -S3156003268000000000000000000000000000000000E1 -S3156003269000000000000000000000000000000000D1 -S315600326A000000000000000000000000000000000C1 -S315600326B000000000000000000000000000000000B1 -S315600326C000000000000000000000000000000000A1 -S315600326D00000000000000000000000000000000091 -S315600326E00000000000000000000000000000000081 -S315600326F00000000000000000000000000000000071 -S315600327000000000000000000000000000000000060 -S315600327100000000000000000000000000000000050 -S315600327200000000000000000000000000000000040 -S315600327300000000000000000000000000000000030 -S315600327400000000000000000000000000000000020 -S315600327500000000000000000000000000000000010 -S315600327600000000000000000000000000000000000 -S3156003277000000000000000000000000000000000F0 -S3156003278000000000000000000000000000000000E0 -S3156003279000000000000000000000000000000000D0 -S315600327A000000000000000000000000000000000C0 -S315600327B000000000000000000000000000000000B0 -S315600327C000000000000000000000000000000000A0 -S315600327D00000000000000000000000000000000090 -S315600327E00000000000000000000000000000000080 -S315600327F00000000000000000000000000000000070 -S31560032800000000000000000000000000000000005F -S31560032810000000000000000000000000000000004F -S31560032820000000000000000000000000000000003F -S31560032830000000000000000000000000000000002F -S31560032840000000000000000000000000000000001F -S31560032850000000000000000000000000000000000F -S3156003286000000000000000000000000000000000FF -S3156003287000000000000000000000000000000000EF -S3156003288000000000000000000000000000000000DF -S3156003289000000000000000000000000000000000CF -S315600328A000000000000000000000000000000000BF -S315600328B000000000000000000000000000000000AF -S315600328C0000000000000000000000000000000009F -S315600328D0000000000000000000000000000000008F -S315600328E0000000000000000000000000000000007F -S315600328F0000000000000000000000000000000006F -S31560032900000000000000000000000000000000005E -S31560032910000000000000000000000000000000004E -S31560032920000000000000000000000000000000003E -S31560032930000000000000000000000000000000002E -S31560032940000000000000000000000000000000001E -S31560032950000000000000000000000000000000000E -S3156003296000000000000000000000000000000000FE -S3156003297000000000000000000000000000000000EE -S3156003298000000000000000000000000000000000DE -S3156003299000000000000000000000000000000000CE -S315600329A000000000000000000000000000000000BE -S315600329B000000000000000000000000000000000AE -S315600329C0000000000000000000000000000000009E -S315600329D0000000000000000000000000000000008E -S315600329E0000000000000000000000000000000007E -S315600329F0000000000000000000000000000000006E -S31560032A00000000000000000000000000000000005D -S31560032A10000000000000000000000000000000004D -S31560032A20000000000000000000000000000000003D -S31560032A30000000000000000000000000000000002D -S31560032A40000000000000000000000000000000001D -S31560032A50000000000000000000000000000000000D -S31560032A6000000000000000000000000000000000FD -S31560032A7000000000000000000000000000000000ED -S31560032A8000000000000000000000000000000000DD -S31560032A9000000000000000000000000000000000CD -S31560032AA000000000000000000000000000000000BD -S31560032AB000000000000000000000000000000000AD -S31560032AC0000000000000000000000000000000009D -S31560032AD0000000000000000000000000000000008D -S31560032AE0000000000000000000000000000000007D -S31560032AF0000000000000000000000000000000006D -S31560032B00000000000000000000000000000000005C -S31560032B10000000000000000000000000000000004C -S31560032B20000000000000000000000000000000003C -S31560032B30000000000000000000000000000000002C -S31560032B40000000000000000000000000000000001C -S31560032B50000000000000000000000000000000000C -S31560032B6000000000000000000000000000000000FC -S31560032B7000000000000000000000000000000000EC -S31560032B8000000000000000000000000000000000DC -S31560032B9000000000000000000000000000000000CC -S31560032BA000000000000000000000000000000000BC -S31560032BB000000000000000000000000000000000AC -S31560032BC0000000000000000000000000000000009C -S31560032BD0000000000000000000000000000000008C -S31560032BE0000000000000000000000000000000007C -S31560032BF0000000000000000000000000000000006C -S31560032C00000000000000000000000000000000005B -S31560032C10000000000000000000000000000000004B -S31560032C20000000000000000000000000000000003B -S31560032C30000000000000000000000000000000002B -S31560032C40000000000000000000000000000000001B -S31560032C50000000000000000000000000000000000B -S31560032C6000000000000000000000000000000000FB -S31560032C7000000000000000000000000000000000EB -S31560032C8000000000000000000000000000000000DB -S31560032C9000000000000000000000000000000000CB -S31560032CA000000000000000000000000000000000BB -S31560032CB000000000000000000000000000000000AB -S31560032CC0000000000000000000000000000000009B -S31560032CD0000000000000000000000000000000008B -S31560032CE0000000000000000000000000000000007B -S31560032CF0000000000000000000000000000000006B -S31560032D00000000000000000000000000000000005A -S31560032D10000000000000000000000000000000004A -S31560032D20000000000000000000000000000000003A -S31560032D30000000000000000000000000000000002A -S31560032D40000000000000000000000000000000001A -S31560032D50000000000000000000000000000000000A -S31560032D6000000000000000000000000000000000FA -S31560032D7000000000000000000000000000000000EA -S31560032D8000000000000000000000000000000000DA -S31560032D9000000000000000000000000000000000CA -S31560032DA000000000000000000000000000000000BA -S31560032DB000000000000000000000000000000000AA -S31560032DC0000000000000000000000000000000009A -S31560032DD0000000000000000000000000000000008A -S31560032DE0000000000000000000000000000000007A -S31560032DF0000000000000000000000000000000006A -S31560032E000000000000000000000000000000000059 -S31560032E100000000000000000000000000000000049 -S31560032E200000000000000000000000000000000039 -S31560032E300000000000000000000000000000000029 -S31560032E400000000000000000000000000000000019 -S31560032E500000000000000000000000000000000009 -S31560032E6000000000000000000000000000000000F9 -S31560032E7000000000000000000000000000000000E9 -S31560032E8000000000000000000000000000000000D9 -S31560032E9000000000000000000000000000000000C9 -S31560032EA000000000000000000000000000000000B9 -S31560032EB000000000000000000000000000000000A9 -S31560032EC00000000000000000000000000000000099 -S31560032ED00000000000000000000000000000000089 -S31560032EE00000000000000000000000000000000079 -S31560032EF00000000000000000000000000000000069 -S31560032F000000000000000000000000000000000058 -S31560032F100000000000000000000000000000000048 -S31560032F200000000000000000000000000000000038 -S31560032F300000000000000000000000000000000028 -S31560032F400000000000000000000000000000000018 -S31560032F500000000000000000000000000000000008 -S31560032F6000000000000000000000000000000000F8 -S31560032F7000000000000000000000000000000000E8 -S31560032F8000000000000000000000000000000000D8 -S31560032F9000000000000000000000000000000000C8 -S31560032FA000000000000000000000000000000000B8 -S31560032FB000000000000000000000000000000000A8 -S31560032FC00000000000000000000000000000000098 -S31560032FD00000000000000000000000000000000088 -S31560032FE00000000000000000000000000000000078 -S31560032FF00000000000000000000000000000000068 -S315600330000000000000000000000000000000000057 -S315600330100000000000000000000000000000000047 -S315600330200000000000000000000000000000000037 -S315600330300000000000000000000000000000000027 -S315600330400000000000000000000000000000000017 -S315600330500000000000000000000000000000000007 -S3156003306000000000000000000000000000000000F7 -S3156003307000000000000000000000000000000000E7 -S3156003308000000000000000000000000000000000D7 -S3156003309000000000000000000000000000000000C7 -S315600330A000000000000000000000000000000000B7 -S315600330B000000000000000000000000000000000A7 -S315600330C00000000000000000000000000000000097 -S315600330D00000000000000000000000000000000087 -S315600330E00000000000000000000000000000000077 -S315600330F00000000000000000000000000000000067 -S315600331000000000000000000000000000000000056 -S315600331100000000000000000000000000000000046 -S315600331200000000000000000000000000000000036 -S315600331300000000000000000000000000000000026 -S315600331400000000000000000000000000000000016 -S315600331500000000000000000000000000000000006 -S3156003316000000000000000000000000000000000F6 -S3156003317000000000000000000000000000000000E6 -S3156003318000000000000000000000000000000000D6 -S3156003319000000000000000000000000000000000C6 -S315600331A000000000000000000000000000000000B6 -S315600331B000000000000000000000000000000000A6 -S315600331C00000000000000000000000000000000096 -S315600331D00000000000000000000000000000000086 -S315600331E00000000000000000000000000000000076 -S315600331F00000000000000000000000000000000066 -S315600332000000000000000000000000000000000055 -S315600332100000000000000000000000000000000045 -S315600332200000000000000000000000000000000035 -S315600332300000000000000000000000000000000025 -S315600332400000000000000000000000000000000015 -S315600332500000000000000000000000000000000005 -S3156003326000000000000000000000000000000000F5 -S3156003327000000000000000000000000000000000E5 -S3156003328000000000000000000000000000000000D5 -S3156003329000000000000000000000000000000000C5 -S315600332A000000000000000000000000000000000B5 -S315600332B000000000000000000000000000000000A5 -S315600332C00000000000000000000000000000000095 -S315600332D00000000000000000000000000000000085 -S315600332E00000000000000000000000000000000075 -S315600332F00000000000000000000000000000000065 -S315600333000000000000000000000000000000000054 -S315600333100000000000000000000000000000000044 -S315600333200000000000000000000000000000000034 -S315600333300000000000000000000000000000000024 -S315600333400000000000000000000000000000000014 -S315600333500000000000000000000000000000000004 -S3156003336000000000000000000000000000000000F4 -S3156003337000000000000000000000000000000000E4 -S3156003338000000000000000000000000000000000D4 -S3156003339000000000000000000000000000000000C4 -S315600333A000000000000000000000000000000000B4 -S315600333B000000000000000000000000000000000A4 -S315600333C00000000000000000000000000000000094 -S315600333D00000000000000000000000000000000084 -S315600333E00000000000000000000000000000000074 -S315600333F00000000000000000000000000000000064 -S315600334000000000000000000000000000000000053 -S315600334100000000000000000000000000000000043 -S315600334200000000000000000000000000000000033 -S315600334300000000000000000000000000000000023 -S315600334400000000000000000000000000000000013 -S315600334500000000000000000000000000000000003 -S3156003346000000000000000000000000000000000F3 -S3156003347000000000000000000000000000000000E3 -S3156003348000000000000000000000000000000000D3 -S3156003349000000000000000000000000000000000C3 -S315600334A000000000000000000000000000000000B3 -S315600334B000000000000000000000000000000000A3 -S315600334C00000000000000000000000000000000093 -S315600334D00000000000000000000000000000000083 -S315600334E00000000000000000000000000000000073 -S315600334F00000000000000000000000000000000063 -S315600335000000000000000000000000000000000052 -S315600335100000000000000000000000000000000042 -S315600335200000000000000000000000000000000032 -S315600335300000000000000000000000000000000022 -S315600335400000000000000000000000000000000012 -S315600335500000000000000000000000000000000002 -S3156003356000000000000000000000000000000000F2 -S3156003357000000000000000000000000000000000E2 -S3156003358000000000000000000000000000000000D2 -S3156003359000000000000000000000000000000000C2 -S315600335A000000000000000000000000000000000B2 -S315600335B000000000000000000000000000000000A2 -S315600335C00000000000000000000000000000000092 -S315600335D00000000000000000000000000000000082 -S315600335E00000000000000000000000000000000072 -S315600335F00000000000000000000000000000000062 -S315600336000000000000000000000000000000000051 -S315600336100000000000000000000000000000000041 -S315600336200000000000000000000000000000000031 -S315600336300000000000000000000000000000000021 -S315600336400000000000000000000000000000000011 -S315600336500000000000000000000000000000000001 -S3156003366000000000000000000000000000000000F1 -S3156003367000000000000000000000000000000000E1 -S3156003368000000000000000000000000000000000D1 -S3156003369000000000000000000000000000000000C1 -S315600336A000000000000000000000000000000000B1 -S315600336B000000000000000000000000000000000A1 -S315600336C00000000000000000000000000000000091 -S315600336D00000000000000000000000000000000081 -S315600336E00000000000000000000000000000000071 -S315600336F00000000000000000000000000000000061 -S315600337000000000000000000000000000000000050 -S315600337100000000000000000000000000000000040 -S315600337200000000000000000000000000000000030 -S315600337300000000000000000000000000000000020 -S315600337400000000000000000000000000000000010 -S315600337500000000000000000000000000000000000 -S3156003376000000000000000000000000000000000F0 -S3156003377000000000000000000000000000000000E0 -S3156003378000000000000000000000000000000000D0 -S3156003379000000000000000000000000000000000C0 -S315600337A000000000000000000000000000000000B0 -S315600337B000000000000000000000000000000000A0 -S315600337C00000000000000000000000000000000090 -S315600337D00000000000000000000000000000000080 -S315600337E00000000000000000000000000000000070 -S315600337F00000000000000000000000000000000060 -S31560033800000000000000000000000000000000004F -S31560033810000000000000000000000000000000003F -S31560033820000000000000000000000000000000002F -S31560033830000000000000000000000000000000001F -S31560033840000000000000000000000000000000000F -S3156003385000000000000000000000000000000000FF -S3156003386000000000000000000000000000000000EF -S3156003387000000000000000000000000000000000DF -S3156003388000000000000000000000000000000000CF -S3156003389000000000000000000000000000000000BF -S315600338A000000000000000000000000000000000AF -S315600338B0000000000000000000000000000000009F -S315600338C0000000000000000000000000000000008F -S315600338D0000000000000000000000000000000007F -S315600338E0000000000000000000000000000000006F -S315600338F0000000000000000000000000000000005F -S31560033900000000000000000000000000000000004E -S31560033910000000000000000000000000000000003E -S31560033920000000000000000000000000000000002E -S31560033930000000000000000000000000000000001E -S31560033940000000000000000000000000000000000E -S3156003395000000000000000000000000000000000FE -S3156003396000000000000000000000000000000000EE -S3156003397000000000000000000000000000000000DE -S3156003398000000000000000000000000000000000CE -S3156003399000000000000000000000000000000000BE -S315600339A000000000000000000000000000000000AE -S315600339B0000000000000000000000000000000009E -S315600339C0000000000000000000000000000000008E -S315600339D0000000000000000000000000000000007E -S315600339E0000000000000000000000000000000006E -S315600339F0000000000000000000000000000000005E -S31560033A00000000000000000000000000000000004D -S31560033A10000000000000000000000000000000003D -S31560033A20000000000000000000000000000000002D -S31560033A30000000000000000000000000000000001D -S31560033A40000000000000000000000000000000000D -S31560033A5000000000000000000000000000000000FD -S31560033A6000000000000000000000000000000000ED -S31560033A7000000000000000000000000000000000DD -S31560033A8000000000000000000000000000000000CD -S31560033A9000000000000000000000000000000000BD -S31560033AA000000000000000000000000000000000AD -S31560033AB0000000000000000000000000000000009D -S31560033AC0000000000000000000000000000000008D -S31560033AD0000000000000000000000000000000007D -S31560033AE0000000000000000000000000000000006D -S31560033AF0000000000000000000000000000000005D -S31560033B00000000000000000000000000000000004C -S31560033B10000000000000000000000000000000003C -S31560033B20000000000000000000000000000000002C -S31560033B30000000000000000000000000000000001C -S31560033B40000000000000000000000000000000000C -S31560033B5000000000000000000000000000000000FC -S31560033B6000000000000000000000000000000000EC -S31560033B7000000000000000000000000000000000DC -S31560033B8000000000000000000000000000000000CC -S31560033B9000000000000000000000000000000000BC -S31560033BA000000000000000000000000000000000AC -S31560033BB0000000000000000000000000000000009C -S31560033BC0000000000000000000000000000000008C -S31560033BD0000000000000000000000000000000007C -S31560033BE0000000000000000000000000000000006C -S31560033BF0000000000000000000000000000000005C -S31560033C00000000000000000000000000000000004B -S31560033C10000000000000000000000000000000003B -S31560033C20000000000000000000000000000000002B -S31560033C30000000000000000000000000000000001B -S31560033C40000000000000000000000000000000000B -S31560033C5000000000000000000000000000000000FB -S31560033C6000000000000000000000000000000000EB -S31560033C7000000000000000000000000000000000DB -S31560033C8000000000000000000000000000000000CB -S31560033C9000000000000000000000000000000000BB -S31560033CA000000000000000000000000000000000AB -S31560033CB0000000000000000000000000000000009B -S31560033CC0000000000000000000000000000000008B -S31560033CD0000000000000000000000000000000007B -S31560033CE0000000000000000000000000000000006B -S31560033CF0000000000000000000000000000000005B -S31560033D00000000000000000000000000000000004A -S31560033D10000000000000000000000000000000003A -S31560033D20000000000000000000000000000000002A -S31560033D30000000000000000000000000000000001A -S31560033D40000000000000000000000000000000000A -S31560033D5000000000000000000000000000000000FA -S31560033D6000000000000000000000000000000000EA -S31560033D7000000000000000000000000000000000DA -S31560033D8000000000000000000000000000000000CA -S31560033D9000000000000000000000000000000000BA -S31560033DA000000000000000000000000000000000AA -S31560033DB0000000000000000000000000000000009A -S31560033DC0000000000000000000000000000000008A -S31560033DD0000000000000000000000000000000007A -S31560033DE0000000000000000000000000000000006A -S31560033DF0000000000000000000000000000000005A -S31560033E000000000000000000000000000000000049 -S31560033E100000000000000000000000000000000039 -S31560033E200000000000000000000000000000000029 -S31560033E300000000000000000000000000000000019 -S31560033E400000000000000000000000000000000009 -S31560033E5000000000000000000000000000000000F9 -S31560033E6000000000000000000000000000000000E9 -S31560033E7000000000000000000000000000000000D9 -S31560033E8000000000000000000000000000000000C9 -S31560033E9000000000000000000000000000000000B9 -S31560033EA000000000000000000000000000000000A9 -S31560033EB00000000000000000000000000000000099 -S31560033EC00000000000000000000000000000000089 -S31560033ED00000000000000000000000000000000079 -S31560033EE00000000000000000000000000000000069 -S31560033EF00000000000000000000000000000000059 -S31560033F000000000000000000000000000000000048 -S31560033F100000000000000000000000000000000038 -S31560033F200000000000000000000000000000000028 -S31560033F300000000000000000000000000000000018 -S31560033F400000000000000000000000000000000008 -S31560033F5000000000000000000000000000000000F8 -S31560033F6000000000000000000000000000000000E8 -S31560033F7000000000000000000000000000000000D8 -S31560033F8000000000000000000000000000000000C8 -S31560033F9000000000000000000000000000000000B8 -S31560033FA000000000000000000000000000000000A8 -S31560033FB00000000000000000000000000000000098 -S31560033FC00000000000000000000000000000000088 -S31560033FD00000000000000000000000000000000078 -S31560033FE00000000000000000000000000000000068 -S31560033FF00000000000000000000000000000000058 -S315600340000000000000000000000000000000000047 -S315600340100000000000000000000000000000000037 -S315600340200000000000000000000000000000000027 -S315600340300000000000000000000000000000000017 -S315600340400000000000000000000000000000000007 -S3156003405000000000000000000000000000000000F7 -S3156003406000000000000000000000000000000000E7 -S3156003407000000000000000000000000000000000D7 -S3156003408000000000000000000000000000000000C7 -S3156003409000000000000000000000000000000000B7 -S315600340A000000000000000000000000000000000A7 -S315600340B00000000000000000000000000000000097 -S315600340C00000000000000000000000000000000087 -S315600340D00000000000000000000000000000000077 -S315600340E00000000000000000000000000000000067 -S315600340F00000000000000000000000000000000057 -S315600341000000000000000000000000000000000046 -S315600341100000000000000000000000000000000036 -S315600341200000000000000000000000000000000026 -S315600341300000000000000000000000000000000016 -S315600341400000000000000000000000000000000006 -S3156003415000000000000000000000000000000000F6 -S3156003416000000000000000000000000000000000E6 -S3156003417000000000000000000000000000000000D6 -S3156003418000000000000000000000000000000000C6 -S3156003419000000000000000000000000000000000B6 -S315600341A000000000000000000000000000000000A6 -S315600341B00000000000000000000000000000000096 -S315600341C00000000000000000000000000000000086 -S315600341D00000000000000000000000000000000076 -S315600341E00000000000000000000000000000000066 -S315600341F00000000000000000000000000000000056 -S315600342000000000000000000000000000000000045 -S315600342100000000000000000000000000000000035 -S315600342200000000000000000000000000000000025 -S315600342300000000000000000000000000000000015 -S315600342400000000000000000000000000000000005 -S3156003425000000000000000000000000000000000F5 -S3156003426000000000000000000000000000000000E5 -S3156003427000000000000000000000000000000000D5 -S3156003428000000000000000000000000000000000C5 -S3156003429000000000000000000000000000000000B5 -S315600342A000000000000000000000000000000000A5 -S315600342B00000000000000000000000000000000095 -S315600342C00000000000000000000000000000000085 -S315600342D00000000000000000000000000000000075 -S315600342E00000000000000000000000000000000065 -S315600342F00000000000000000000000000000000055 -S315600343000000000000000000000000000000000044 -S315600343100000000000000000000000000000000034 -S315600343200000000000000000000000000000000024 -S315600343300000000000000000000000000000000014 -S315600343400000000000000000000000000000000004 -S3156003435000000000000000000000000000000000F4 -S3156003436000000000000000000000000000000000E4 -S3156003437000000000000000000000000000000000D4 -S3156003438000000000000000000000000000000000C4 -S3156003439000000000000000000000000000000000B4 -S315600343A000000000000000000000000000000000A4 -S315600343B00000000000000000000000000000000094 -S315600343C00000000000000000000000000000000084 -S315600343D00000000000000000000000000000000074 -S315600343E00000000000000000000000000000000064 -S315600343F00000000000000000000000000000000054 -S315600344000000000000000000000000000000000043 -S315600344100000000000000000000000000000000033 -S315600344200000000000000000000000000000000023 -S315600344300000000000000000000000000000000013 -S315600344400000000000000000000000000000000003 -S3156003445000000000000000000000000000000000F3 -S3156003446000000000000000000000000000000000E3 -S3156003447000000000000000000000000000000000D3 -S3156003448000000000000000000000000000000000C3 -S3156003449000000000000000000000000000000000B3 -S315600344A000000000000000000000000000000000A3 -S315600344B00000000000000000000000000000000093 -S315600344C00000000000000000000000000000000083 -S315600344D00000000000000000000000000000000073 -S315600344E00000000000000000000000000000000063 -S315600344F00000000000000000000000000000000053 -S315600345000000000000000000000000000000000042 -S315600345100000000000000000000000000000000032 -S315600345200000000000000000000000000000000022 -S315600345300000000000000000000000000000000012 -S315600345400000000000000000000000000000000002 -S3156003455000000000000000000000000000000000F2 -S3156003456000000000000000000000000000000000E2 -S3156003457000000000000000000000000000000000D2 -S3156003458000000000000000000000000000000000C2 -S3156003459000000000000000000000000000000000B2 -S315600345A000000000000000000000000000000000A2 -S315600345B00000000000000000000000000000000092 -S315600345C00000000000000000000000000000000082 -S315600345D00000000000000000000000000000000072 -S315600345E00000000000000000000000000000000062 -S315600345F00000000000000000000000000000000052 -S315600346000000000000000000000000000000000041 -S315600346100000000000000000000000000000000031 -S315600346200000000000000000000000000000000021 -S315600346300000000000000000000000000000000011 -S315600346400000000000000000000000000000000001 -S3156003465000000000000000000000000000000000F1 -S3156003466000000000000000000000000000000000E1 -S3156003467000000000000000000000000000000000D1 -S3156003468000000000000000000000000000000000C1 -S3156003469000000000000000000000000000000000B1 -S315600346A000000000000000000000000000000000A1 -S315600346B00000000000000000000000000000000091 -S315600346C00000000000000000000000000000000081 -S315600346D00000000000000000000000000000000071 -S315600346E00000000000000000000000000000000061 -S315600346F00000000000000000000000000000000051 -S315600347000000000000000000000000000000000040 -S315600347100000000000000000000000000000000030 -S315600347200000000000000000000000000000000020 -S315600347300000000000000000000000000000000010 -S315600347400000000000000000000000000000000000 -S3156003475000000000000000000000000000000000F0 -S3156003476000000000000000000000000000000000E0 -S3156003477000000000000000000000000000000000D0 -S3156003478000000000000000000000000000000000C0 -S3156003479000000000000000000000000000000000B0 -S315600347A000000000000000000000000000000000A0 -S315600347B00000000000000000000000000000000090 -S315600347C00000000000000000000000000000000080 -S315600347D00000000000000000000000000000000070 -S315600347E00000000000000000000000000000000060 -S315600347F00000000000000000000000000000000050 -S31560034800000000000000000000000000000000003F -S31560034810000000000000000000000000000000002F -S31560034820000000000000000000000000000000001F -S31560034830000000000000000000000000000000000F -S3156003484000000000000000000000000000000000FF -S3156003485000000000000000000000000000000000EF -S3156003486000000000000000000000000000000000DF -S3156003487000000000000000000000000000000000CF -S3156003488000000000000000000000000000000000BF -S3156003489000000000000000000000000000000000AF -S315600348A0000000000000000000000000000000009F -S315600348B0000000000000000000000000000000008F -S315600348C0000000000000000000000000000000007F -S315600348D0000000000000000000000000000000006F -S315600348E0000000000000000000000000000000005F -S315600348F0000000000000000000000000000000004F -S31560034900000000000000000000000000000000003E -S31560034910000000000000000000000000000000002E -S31560034920000000000000000000000000000000001E -S31560034930000000000000000000000000000000000E -S3156003494000000000000000000000000000000000FE -S3156003495000000000000000000000000000000000EE -S3156003496000000000000000000000000000000000DE -S3156003497000000000000000000000000000000000CE -S3156003498000000000000000000000000000000000BE -S3156003499000000000000000000000000000000000AE -S315600349A0000000000000000000000000000000009E -S315600349B0000000000000000000000000000000008E -S315600349C0000000000000000000000000000000007E -S315600349D0000000000000000000000000000000006E -S315600349E0000000000000000000000000000000005E -S315600349F0000000000000000000000000000000004E -S31560034A00000000000000000000000000000000003D -S31560034A10000000000000000000000000000000002D -S31560034A20000000000000000000000000000000001D -S31560034A30000000000000000000000000000000000D -S31560034A4000000000000000000000000000000000FD -S31560034A5000000000000000000000000000000000ED -S31560034A6000000000000000000000000000000000DD -S31560034A7000000000000000000000000000000000CD -S31560034A8000000000000000000000000000000000BD -S31560034A9000000000000000000000000000000000AD -S31560034AA0000000000000000000000000000000009D -S31560034AB0000000000000000000000000000000008D -S31560034AC0000000000000000000000000000000007D -S31560034AD0000000000000000000000000000000006D -S31560034AE0000000000000000000000000000000005D -S31560034AF0000000000000000000000000000000004D -S31560034B00000000000000000000000000000000003C -S31560034B10000000000000000000000000000000002C -S31560034B20000000000000000000000000000000001C -S31560034B30000000000000000000000000000000000C -S31560034B4000000000000000000000000000000000FC -S31560034B5000000000000000000000000000000000EC -S31560034B6000000000000000000000000000000000DC -S31560034B7000000000000000000000000000000000CC -S31560034B8000000000000000000000000000000000BC -S31560034B9000000000000000000000000000000000AC -S31560034BA0000000000000000000000000000000009C -S31560034BB0000000000000000000000000000000008C -S31560034BC0000000000000000000000000000000007C -S31560034BD0000000000000000000000000000000006C -S31560034BE0000000000000000000000000000000005C -S31560034BF0000000000000000000000000000000004C -S31560034C00000000000000000000000000000000003B -S31560034C10000000000000000000000000000000002B -S31560034C20000000000000000000000000000000001B -S31560034C30000000000000000000000000000000000B -S31560034C4000000000000000000000000000000000FB -S31560034C5000000000000000000000000000000000EB -S31560034C6000000000000000000000000000000000DB -S31560034C7000000000000000000000000000000000CB -S31560034C8000000000000000000000000000000000BB -S31560034C9000000000000000000000000000000000AB -S31560034CA0000000000000000000000000000000009B -S31560034CB0000000000000000000000000000000008B -S31560034CC0000000000000000000000000000000007B -S31560034CD0000000000000000000000000000000006B -S31560034CE0000000000000000000000000000000005B -S31560034CF0000000000000000000000000000000004B -S31560034D00000000000000000000000000000000003A -S31560034D10000000000000000000000000000000002A -S31560034D20000000000000000000000000000000001A -S31560034D30000000000000000000000000000000000A -S31560034D4000000000000000000000000000000000FA -S31560034D5000000000000000000000000000000000EA -S31560034D6000000000000000000000000000000000DA -S31560034D7000000000000000000000000000000000CA -S31560034D8000000000000000000000000000000000BA -S31560034D9000000000000000000000000000000000AA -S31560034DA0000000000000000000000000000000009A -S31560034DB0000000000000000000000000000000008A -S31560034DC0000000000000000000000000000000007A -S31560034DD0000000000000000000000000000000006A -S31560034DE0000000000000000000000000000000005A -S31560034DF0000000000000000000000000000000004A -S31560034E000000000000000000000000000000000039 -S31560034E100000000000000000000000000000000029 -S31560034E200000000000000000000000000000000019 -S31560034E300000000000000000000000000000000009 -S31560034E4000000000000000000000000000000000F9 -S31560034E5000000000000000000000000000000000E9 -S31560034E6000000000000000000000000000000000D9 -S31560034E7000000000000000000000000000000000C9 -S31560034E8000000000000000000000000000000000B9 -S31560034E9000000000000000000000000000000000A9 -S31560034EA00000000000000000000000000000000099 -S31560034EB00000000000000000000000000000000089 -S31560034EC00000000000000000000000000000000079 -S31560034ED00000000000000000000000000000000069 -S31560034EE00000000000000000000000000000000059 -S31560034EF00000000000000000000000000000000049 -S31560034F000000000000000000000000000000000038 -S31560034F100000000000000000000000000000000028 -S31560034F200000000000000000000000000000000018 -S31560034F300000000000000000000000000000000008 -S31560034F4000000000000000000000000000000000F8 -S31560034F5000000000000000000000000000000000E8 -S31560034F6000000000000000000000000000000000D8 -S31560034F7000000000000000000000000000000000C8 -S31560034F8000000000000000000000000000000000B8 -S31560034F9000000000000000000000000000000000A8 -S31560034FA00000000000000000000000000000000098 -S31560034FB00000000000000000000000000000000088 -S31560034FC00000000000000000000000000000000078 -S31560034FD00000000000000000000000000000000068 -S31560034FE00000000000000000000000000000000058 -S31560034FF00000000000000000000000000000000048 -S315600350000000000000000000000000000000000037 -S315600350100000000000000000000000000000000027 -S315600350200000000000000000000000000000000017 -S315600350300000000000000000000000000000000007 -S3156003504000000000000000000000000000000000F7 -S3156003505000000000000000000000000000000000E7 -S3156003506000000000000000000000000000000000D7 -S3156003507000000000000000000000000000000000C7 -S3156003508000000000000000000000000000000000B7 -S3156003509000000000000000000000000000000000A7 -S315600350A00000000000000000000000000000000097 -S315600350B00000000000000000000000000000000087 -S315600350C00000000000000000000000000000000077 -S315600350D00000000000000000000000000000000067 -S315600350E00000000000000000000000000000000057 -S315600350F00000000000000000000000000000000047 -S315600351000000000000000000000000000000000036 -S315600351100000000000000000000000000000000026 -S315600351200000000000000000000000000000000016 -S315600351300000000000000000000000000000000006 -S3156003514000000000000000000000000000000000F6 -S3156003515000000000000000000000000000000000E6 -S3156003516000000000000000000000000000000000D6 -S3156003517000000000000000000000000000000000C6 -S3156003518000000000000000000000000000000000B6 -S3156003519000000000000000000000000000000000A6 -S315600351A00000000000000000000000000000000096 -S315600351B00000000000000000000000000000000086 -S315600351C00000000000000000000000000000000076 -S315600351D00000000000000000000000000000000066 -S315600351E00000000000000000000000000000000056 -S315600351F00000000000000000000000000000000046 -S315600352000000000000000000000000000000000035 -S315600352100000000000000000000000000000000025 -S315600352200000000000000000000000000000000015 -S315600352300000000000000000000000000000000005 -S3156003524000000000000000000000000000000000F5 -S3156003525000000000000000000000000000000000E5 -S3156003526000000000000000000000000000000000D5 -S3156003527000000000000000000000000000000000C5 -S3156003528000000000000000000000000000000000B5 -S3156003529000000000000000000000000000000000A5 -S315600352A00000000000000000000000000000000095 -S315600352B00000000000000000000000000000000085 -S315600352C00000000000000000000000000000000075 -S315600352D00000000000000000000000000000000065 -S315600352E00000000000000000000000000000000055 -S315600352F00000000000000000000000000000000045 -S315600353000000000000000000000000000000000034 -S315600353100000000000000000000000000000000024 -S315600353200000000000000000000000000000000014 -S315600353300000000000000000000000000000000004 -S3156003534000000000000000000000000000000000F4 -S3156003535000000000000000000000000000000000E4 -S3156003536000000000000000000000000000000000D4 -S3156003537000000000000000000000000000000000C4 -S3156003538000000000000000000000000000000000B4 -S3156003539000000000000000000000000000000000A4 -S315600353A00000000000000000000000000000000094 -S315600353B00000000000000000000000000000000084 -S315600353C00000000000000000000000000000000074 -S315600353D00000000000000000000000000000000064 -S315600353E00000000000000000000000000000000054 -S315600353F00000000000000000000000000000000044 -S315600354000000000000000000000000000000000033 -S315600354100000000000000000000000000000000023 -S315600354200000000000000000000000000000000013 -S315600354300000000000000000000000000000000003 -S3156003544000000000000000000000000000000000F3 -S3156003545000000000000000000000000000000000E3 -S3156003546000000000000000000000000000000000D3 -S3156003547000000000000000000000000000000000C3 -S3156003548000000000000000000000000000000000B3 -S3156003549000000000000000000000000000000000A3 -S315600354A00000000000000000000000000000000093 -S315600354B00000000000000000000000000000000083 -S315600354C00000000000000000000000000000000073 -S315600354D00000000000000000000000000000000063 -S315600354E00000000000000000000000000000000053 -S315600354F00000000000000000000000000000000043 -S315600355000000000000000000000000000000000032 -S315600355100000000000000000000000000000000022 -S315600355200000000000000000000000000000000012 -S315600355300000000000000000000000000000000002 -S3156003554000000000000000000000000000000000F2 -S3156003555000000000000000000000000000000000E2 -S3156003556000000000000000000000000000000000D2 -S3156003557000000000000000000000000000000000C2 -S3156003558000000000000000000000000000000000B2 -S3156003559000000000000000000000000000000000A2 -S315600355A00000000000000000000000000000000092 -S315600355B00000000000000000000000000000000082 -S315600355C00000000000000000000000000000000072 -S315600355D00000000000000000000000000000000062 -S315600355E00000000000000000000000000000000052 -S315600355F00000000000000000000000000000000042 -S315600356000000000000000000000000000000000031 -S315600356100000000000000000000000000000000021 -S315600356200000000000000000000000000000000011 -S315600356300000000000000000000000000000000001 -S3156003564000000000000000000000000000000000F1 -S3156003565000000000000000000000000000000000E1 -S3156003566000000000000000000000000000000000D1 -S3156003567000000000000000000000000000000000C1 -S3156003568000000000000000000000000000000000B1 -S3156003569000000000000000000000000000000000A1 -S315600356A00000000000000000000000000000000091 -S315600356B00000000000000000000000000000000081 -S315600356C00000000000000000000000000000000071 -S315600356D00000000000000000000000000000000061 -S315600356E00000000000000000000000000000000051 -S315600356F00000000000000000000000000000000041 -S315600357000000000000000000000000000000000030 -S315600357100000000000000000000000000000000020 -S315600357200000000000000000000000000000000010 -S315600357300000000000000000000000000000000000 -S3156003574000000000000000000000000000000000F0 -S3156003575000000000000000000000000000000000E0 -S3156003576000000000000000000000000000000000D0 -S3156003577000000000000000000000000000000000C0 -S3156003578000000000000000000000000000000000B0 -S3156003579000000000000000000000000000000000A0 -S315600357A00000000000000000000000000000000090 -S315600357B00000000000000000000000000000000080 -S315600357C00000000000000000000000000000000070 -S315600357D00000000000000000000000000000000060 -S315600357E00000000000000000000000000000000050 -S315600357F00000000000000000000000000000000040 -S31560035800000000000000000000000000000000002F -S31560035810000000000000000000000000000000001F -S31560035820000000000000000000000000000000000F -S3156003583000000000000000000000000000000000FF -S3156003584000000000000000000000000000000000EF -S3156003585000000000000000000000000000000000DF -S3156003586000000000000000000000000000000000CF -S3156003587000000000000000000000000000000000BF -S3156003588000000000000000000000000000000000AF -S31560035890000000000000000000000000000000009F -S315600358A0000000000000000000000000000000008F -S315600358B0000000000000000000000000000000007F -S315600358C0000000000000000000000000000000006F -S315600358D0000000000000000000000000000000005F -S315600358E0000000000000000000000000000000004F -S315600358F0000000000000000000000000000000003F -S31560035900000000000000000000000000000000002E -S31560035910000000000000000000000000000000001E -S31560035920000000000000000000000000000000000E -S3156003593000000000000000000000000000000000FE -S3156003594000000000000000000000000000000000EE -S3156003595000000000000000000000000000000000DE -S3156003596000000000000000000000000000000000CE -S3156003597000000000000000000000000000000000BE -S3156003598000000000000000000000000000000000AE -S31560035990000000000000000000000000000000009E -S315600359A0000000000000000000000000000000008E -S315600359B0000000000000000000000000000000007E -S315600359C0000000000000000000000000000000006E -S315600359D0000000000000000000000000000000005E -S315600359E0000000000000000000000000000000004E -S315600359F0000000000000000000000000000000003E -S31560035A00000000000000000000000000000000002D -S31560035A10000000000000000000000000000000001D -S31560035A20000000000000000000000000000000000D -S31560035A3000000000000000000000000000000000FD -S31560035A4000000000000000000000000000000000ED -S31560035A5000000000000000000000000000000000DD -S31560035A6000000000000000000000000000000000CD -S31560035A7000000000000000000000000000000000BD -S31560035A8000000000000000000000000000000000AD -S31560035A90000000000000000000000000000000009D -S31560035AA0000000000000000000000000000000008D -S31560035AB0000000000000000000000000000000007D -S31560035AC0000000000000000000000000000000006D -S31560035AD0000000000000000000000000000000005D -S31560035AE0000000000000000000000000000000004D -S31560035AF0000000000000000000000000000000003D -S31560035B00000000000000000000000000000000002C -S31560035B10000000000000000000000000000000001C -S31560035B20000000000000000000000000000000000C -S31560035B3000000000000000000000000000000000FC -S31560035B4000000000000000000000000000000000EC -S31560035B5000000000000000000000000000000000DC -S31560035B6000000000000000000000000000000000CC -S31560035B7000000000000000000000000000000000BC -S31560035B8000000000000000000000000000000000AC -S31560035B90000000000000000000000000000000009C -S31560035BA0000000000000000000000000000000008C -S31560035BB0000000000000000000000000000000007C -S31560035BC0000000000000000000000000000000006C -S31560035BD0000000000000000000000000000000005C -S31560035BE0000000000000000000000000000000004C -S31560035BF0000000000000000000000000000000003C -S31560035C00000000000000000000000000000000002B -S31560035C10000000000000000000000000000000001B -S31560035C20000000000000000000000000000000000B -S31560035C3000000000000000000000000000000000FB -S31560035C4000000000000000000000000000000000EB -S31560035C5000000000000000000000000000000000DB -S31560035C6000000000000000000000000000000000CB -S31560035C7000000000000000000000000000000000BB -S31560035C8000000000000000000000000000000000AB -S31560035C90000000000000000000000000000000009B -S31560035CA0000000000000000000000000000000008B -S31560035CB0000000000000000000000000000000007B -S31560035CC0000000000000000000000000000000006B -S31560035CD0000000000000000000000000000000005B -S31560035CE0000000000000000000000000000000004B -S31560035CF0000000000000000000000000000000003B -S31560035D00000000000000000000000000000000002A -S31560035D10000000000000000000000000000000001A -S31560035D20000000000000000000000000000000000A -S31560035D3000000000000000000000000000000000FA -S31560035D4000000000000000000000000000000000EA -S31560035D5000000000000000000000000000000000DA -S31560035D6000000000000000000000000000000000CA -S31560035D7000000000000000000000000000000000BA -S31560035D8000000000000000000000000000000000AA -S31560035D90000000000000000000000000000000009A -S31560035DA0000000000000000000000000000000008A -S31560035DB0000000000000000000000000000000007A -S31560035DC0000000000000000000000000000000006A -S31560035DD0000000000000000000000000000000005A -S31560035DE0000000000000000000000000000000004A -S31560035DF0000000000000000000000000000000003A -S31560035E000000000000000000000000000000000029 -S31560035E100000000000000000000000000000000019 -S31560035E200000000000000000000000000000000009 -S31560035E3000000000000000000000000000000000F9 -S31560035E4000000000000000000000000000000000E9 -S31560035E5000000000000000000000000000000000D9 -S31560035E6000000000000000000000000000000000C9 -S31560035E7000000000000000000000000000000000B9 -S31560035E8000000000000000000000000000000000A9 -S31560035E900000000000000000000000000000000099 -S31560035EA00000000000000000000000000000000089 -S31560035EB00000000000000000000000000000000079 -S31560035EC00000000000000000000000000000000069 -S31560035ED00000000000000000000000000000000059 -S31560035EE00000000000000000000000000000000049 -S31560035EF00000000000000000000000000000000039 -S31560035F000000000000000000000000000000000028 -S31560035F100000000000000000000000000000000018 -S31560035F200000000000000000000000000000000008 -S31560035F3000000000000000000000000000000000F8 -S31560035F4000000000000000000000000000000000E8 -S31560035F5000000000000000000000000000000000D8 -S31560035F6000000000000000000000000000000000C8 -S31560035F7000000000000000000000000000000000B8 -S31560035F8000000000000000000000000000000000A8 -S31560035F900000000000000000000000000000000098 -S31560035FA00000000000000000000000000000000088 -S31560035FB00000000000000000000000000000000078 -S31560035FC00000000000000000000000000000000068 -S31560035FD00000000000000000000000000000000058 -S31560035FE00000000000000000000000000000000048 -S31560035FF00000000000000000000000000000000038 -S315600360000000000000000000000000000000000027 -S315600360100000000000000000000000000000000017 -S315600360200000000000000000000000000000000007 -S3156003603000000000000000000000000000000000F7 -S3156003604000000000000000000000000000000000E7 -S3156003605000000000000000000000000000000000D7 -S3156003606000000000000000000000000000000000C7 -S3156003607000000000000000000000000000000000B7 -S3156003608000000000000000000000000000000000A7 -S315600360900000000000000000000000000000000097 -S315600360A00000000000000000000000000000000087 -S315600360B00000000000000000000000000000000077 -S315600360C00000000000000000000000000000000067 -S315600360D00000000000000000000000000000000057 -S315600360E00000000000000000000000000000000047 -S315600360F00000000000000000000000000000000037 -S315600361000000000000000000000000000000000026 -S315600361100000000000000000000000000000000016 -S315600361200000000000000000000000000000000006 -S3156003613000000000000000000000000000000000F6 -S3156003614000000000000000000000000000000000E6 -S3156003615000000000000000000000000000000000D6 -S3156003616000000000000000000000000000000000C6 -S3156003617000000000000000000000000000000000B6 -S3156003618000000000000000000000000000000000A6 -S315600361900000000000000000000000000000000096 -S315600361A00000000000000000000000000000000086 -S315600361B00000000000000000000000000000000076 -S315600361C00000000000000000000000000000000066 -S315600361D00000000000000000000000000000000056 -S315600361E00000000000000000000000000000000046 -S315600361F00000000000000000000000000000000036 -S315600362000000000000000000000000000000000025 -S315600362100000000000000000000000000000000015 -S315600362200000000000000000000000000000000005 -S3156003623000000000000000000000000000000000F5 -S3156003624000000000000000000000000000000000E5 -S3156003625000000000000000000000000000000000D5 -S3156003626000000000000000000000000000000000C5 -S3156003627000000000000000000000000000000000B5 -S3156003628000000000000000000000000000000000A5 -S315600362900000000000000000000000000000000095 -S315600362A00000000000000000000000000000000085 -S315600362B00000000000000000000000000000000075 -S315600362C00000000000000000000000000000000065 -S315600362D00000000000000000000000000000000055 -S315600362E00000000000000000000000000000000045 -S315600362F00000000000000000000000000000000035 -S315600363000000000000000000000000000000000024 -S315600363100000000000000000000000000000000014 -S315600363200000000000000000000000000000000004 -S3156003633000000000000000000000000000000000F4 -S3156003634000000000000000000000000000000000E4 -S3156003635000000000000000000000000000000000D4 -S3156003636000000000000000000000000000000000C4 -S3156003637000000000000000000000000000000000B4 -S3156003638000000000000000000000000000000000A4 -S315600363900000000000000000000000000000000094 -S315600363A00000000000000000000000000000000084 -S315600363B00000000000000000000000000000000074 -S315600363C00000000000000000000000000000000064 -S315600363D00000000000000000000000000000000054 -S315600363E00000000000000000000000000000000044 -S315600363F00000000000000000000000000000000034 -S315600364000000000000000000000000000000000023 -S315600364100000000000000000000000000000000013 -S315600364200000000000000000000000000000000003 -S3156003643000000000000000000000000000000000F3 -S3156003644000000000000000000000000000000000E3 -S3156003645000000000000000000000000000000000D3 -S3156003646000000000000000000000000000000000C3 -S3156003647000000000000000000000000000000000B3 -S3156003648000000000000000000000000000000000A3 -S315600364900000000000000000000000000000000093 -S315600364A00000000000000000000000000000000083 -S315600364B00000000000000000000000000000000073 -S315600364C00000000000000000000000000000000063 -S315600364D00000000000000000000000000000000053 -S315600364E00000000000000000000000000000000043 -S315600364F00000000000000000000000000000000033 -S315600365000000000000000000000000000000000022 -S315600365100000000000000000000000000000000012 -S315600365200000000000000000000000000000000002 -S3156003653000000000000000000000000000000000F2 -S3156003654000000000000000000000000000000000E2 -S3156003655000000000000000000000000000000000D2 -S3156003656000000000000000000000000000000000C2 -S3156003657000000000000000000000000000000000B2 -S3156003658000000000000000000000000000000000A2 -S315600365900000000000000000000000000000000092 -S315600365A00000000000000000000000000000000082 -S315600365B00000000000000000000000000000000072 -S315600365C00000000000000000000000000000000062 -S315600365D00000000000000000000000000000000052 -S315600365E00000000000000000000000000000000042 -S315600365F00000000000000000000000000000000032 -S315600366000000000000000000000000000000000021 -S315600366100000000000000000000000000000000011 -S315600366200000000000000000000000000000000001 -S3156003663000000000000000000000000000000000F1 -S3156003664000000000000000000000000000000000E1 -S3156003665000000000000000000000000000000000D1 -S3156003666000000000000000000000000000000000C1 -S3156003667000000000000000000000000000000000B1 -S3156003668000000000000000000000000000000000A1 -S315600366900000000000000000000000000000000091 -S315600366A00000000000000000000000000000000081 -S315600366B00000000000000000000000000000000071 -S315600366C00000000000000000000000000000000061 -S315600366D00000000000000000000000000000000051 -S315600366E00000000000000000000000000000000041 -S315600366F00000000000000000000000000000000031 -S315600367000000000000000000000000000000000020 -S315600367100000000000000000000000000000000010 -S315600367200000000000000000000000000000000000 -S3156003673000000000000000000000000000000000F0 -S3156003674000000000000000000000000000000000E0 -S3156003675000000000000000000000000000000000D0 -S3156003676000000000000000000000000000000000C0 -S3156003677000000000000000000000000000000000B0 -S3156003678000000000000000000000000000000000A0 -S315600367900000000000000000000000000000000090 -S315600367A00000000000000000000000000000000080 -S315600367B00000000000000000000000000000000070 -S315600367C00000000000000000000000000000000060 -S315600367D00000000000000000000000000000000050 -S315600367E00000000000000000000000000000000040 -S315600367F00000000000000000000000000000000030 -S31560036800000000000000000000000000000000001F -S31560036810000000000000000000000000000000000F -S3156003682000000000000000000000000000000000FF -S3156003683000000000000000000000000000000000EF -S3156003684000000000000000000000000000000000DF -S3156003685000000000000000000000000000000000CF -S3156003686000000000000000000000000000000000BF -S3156003687000000000000000000000000000000000AF -S31560036880000000000000000000000000000000009F -S31560036890000000000000000000000000000000008F -S315600368A0000000000000000000000000000000007F -S315600368B0000000000000000000000000000000006F -S315600368C0000000000000000000000000000000005F -S315600368D0000000000000000000000000000000004F -S315600368E0000000000000000000000000000000003F -S315600368F0000000000000000000000000000000002F -S31560036900000000000000000000000000000000001E -S31560036910000000000000000000000000000000000E -S3156003692000000000000000000000000000000000FE -S3156003693000000000000000000000000000000000EE -S3156003694000000000000000000000000000000000DE -S3156003695000000000000000000000000000000000CE -S3156003696000000000000000000000000000000000BE -S3156003697000000000000000000000000000000000AE -S31560036980000000000000000000000000000000009E -S31560036990000000000000000000000000000000008E -S315600369A0000000000000000000000000000000007E -S315600369B0000000000000000000000000000000006E -S315600369C0000000000000000000000000000000005E -S315600369D0000000000000000000000000000000004E -S315600369E0000000000000000000000000000000003E -S315600369F0000000000000000000000000000000002E -S31560036A00000000000000000000000000000000001D -S31560036A10000000000000000000000000000000000D -S31560036A2000000000000000000000000000000000FD -S31560036A3000000000000000000000000000000000ED -S31560036A4000000000000000000000000000000000DD -S31560036A5000000000000000000000000000000000CD -S31560036A6000000000000000000000000000000000BD -S31560036A7000000000000000000000000000000000AD -S31560036A80000000000000000000000000000000009D -S31560036A90000000000000000000000000000000008D -S31560036AA0000000000000000000000000000000007D -S31560036AB0000000000000000000000000000000006D -S31560036AC0000000000000000000000000000000005D -S31560036AD0000000000000000000000000000000004D -S31560036AE0000000000000000000000000000000003D -S31560036AF0000000000000000000000000000000002D -S31560036B00000000000000000000000000000000001C -S31560036B10000000000000000000000000000000000C -S31560036B2000000000000000000000000000000000FC -S31560036B3000000000000000000000000000000000EC -S31560036B4000000000000000000000000000000000DC -S31560036B5000000000000000000000000000000000CC -S31560036B6000000000000000000000000000000000BC -S31560036B7000000000000000000000000000000000AC -S31560036B80000000000000000000000000000000009C -S31560036B90000000000000000000000000000000008C -S31560036BA0000000000000000000000000000000007C -S31560036BB0000000000000000000000000000000006C -S31560036BC0000000000000000000000000000000005C -S31560036BD0000000000000000000000000000000004C -S31560036BE0000000000000000000000000000000003C -S31560036BF0000000000000000000000000000000002C -S31560036C00000000000000000000000000000000001B -S31560036C10000000000000000000000000000000000B -S31560036C2000000000000000000000000000000000FB -S31560036C3000000000000000000000000000000000EB -S31560036C4000000000000000000000000000000000DB -S31560036C5000000000000000000000000000000000CB -S31560036C6000000000000000000000000000000000BB -S31560036C7000000000000000000000000000000000AB -S31560036C80000000000000000000000000000000009B -S31560036C90000000000000000000000000000000008B -S31560036CA0000000000000000000000000000000007B -S31560036CB0000000000000000000000000000000006B -S31560036CC0000000000000000000000000000000005B -S31560036CD0000000000000000000000000000000004B -S31560036CE0000000000000000000000000000000003B -S31560036CF0000000000000000000000000000000002B -S31560036D00000000000000000000000000000000001A -S31560036D10000000000000000000000000000000000A -S31560036D2000000000000000000000000000000000FA -S31560036D3000000000000000000000000000000000EA -S31560036D4000000000000000000000000000000000DA -S31560036D5000000000000000000000000000000000CA -S31560036D6000000000000000000000000000000000BA -S31560036D7000000000000000000000000000000000AA -S31560036D80000000000000000000000000000000009A -S31560036D90000000000000000000000000000000008A -S31560036DA0000000000000000000000000000000007A -S31560036DB0000000000000000000000000000000006A -S31560036DC0000000000000000000000000000000005A -S31560036DD0000000000000000000000000000000004A -S31560036DE0000000000000000000000000000000003A -S31560036DF0000000000000000000000000000000002A -S31560036E000000000000000000000000000000000019 -S31560036E100000000000000000000000000000000009 -S31560036E2000000000000000000000000000000000F9 -S31560036E3000000000000000000000000000000000E9 -S31560036E4000000000000000000000000000000000D9 -S31560036E5000000000000000000000000000000000C9 -S31560036E6000000000000000000000000000000000B9 -S31560036E7000000000000000000000000000000000A9 -S31560036E800000000000000000000000000000000099 -S31560036E900000000000000000000000000000000089 -S31560036EA00000000000000000000000000000000079 -S31560036EB00000000000000000000000000000000069 -S31560036EC00000000000000000000000000000000059 -S31560036ED00000000000000000000000000000000049 -S31560036EE00000000000000000000000000000000039 -S31560036EF00000000000000000000000000000000029 -S31560036F000000000000000000000000000000000018 -S31560036F100000000000000000000000000000000008 -S31560036F2000000000000000000000000000000000F8 -S31560036F3000000000000000000000000000000000E8 -S31560036F4000000000000000000000000000000000D8 -S31560036F5000000000000000000000000000000000C8 -S31560036F6000000000000000000000000000000000B8 -S31560036F7000000000000000000000000000000000A8 -S31560036F800000000000000000000000000000000098 -S31560036F900000000000000000000000000000000088 -S31560036FA00000000000000000000000000000000078 -S31560036FB00000000000000000000000000000000068 -S31560036FC00000000000000000000000000000000058 -S31560036FD00000000000000000000000000000000048 -S31560036FE00000000000000000000000000000000038 -S31560036FF00000000000000000000000000000000028 -S315600370000000000000000000000000000000000017 -S315600370100000000000000000000000000000000007 -S3156003702000000000000000000000000000000000F7 -S3156003703000000000000000000000000000000000E7 -S3156003704000000000000000000000000000000000D7 -S3156003705000000000000000000000000000000000C7 -S3156003706000000000000000000000000000000000B7 -S3156003707000000000000000000000000000000000A7 -S315600370800000000000000000000000000000000097 -S315600370900000000000000000000000000000000087 -S315600370A00000000000000000000000000000000077 -S315600370B00000000000000000000000000000000067 -S315600370C00000000000000000000000000000000057 -S315600370D00000000000000000000000000000000047 -S315600370E00000000000000000000000000000000037 -S315600370F00000000000000000000000000000000027 -S315600371000000000000000000000000000000000016 -S315600371100000000000000000000000000000000006 -S3156003712000000000000000000000000000000000F6 -S3156003713000000000000000000000000000000000E6 -S3156003714000000000000000000000000000000000D6 -S3156003715000000000000000000000000000000000C6 -S3156003716000000000000000000000000000000000B6 -S3156003717000000000000000000000000000000000A6 -S315600371800000000000000000000000000000000096 -S315600371900000000000000000000000000000000086 -S315600371A00000000000000000000000000000000076 -S315600371B00000000000000000000000000000000066 -S315600371C00000000000000000000000000000000056 -S315600371D00000000000000000000000000000000046 -S315600371E00000000000000000000000000000000036 -S315600371F00000000000000000000000000000000026 -S315600372000000000000000000000000000000000015 -S315600372100000000000000000000000000000000005 -S3156003722000000000000000000000000000000000F5 -S3156003723000000000000000000000000000000000E5 -S3156003724000000000000000000000000000000000D5 -S3156003725000000000000000000000000000000000C5 -S3156003726000000000000000000000000000000000B5 -S3156003727000000000000000000000000000000000A5 -S315600372800000000000000000000000000000000095 -S315600372900000000000000000000000000000000085 -S315600372A00000000000000000000000000000000075 -S315600372B00000000000000000000000000000000065 -S315600372C00000000000000000000000000000000055 -S315600372D00000000000000000000000000000000045 -S315600372E00000000000000000000000000000000035 -S315600372F00000000000000000000000000000000025 -S315600373000000000000000000000000000000000014 -S315600373100000000000000000000000000000000004 -S3156003732000000000000000000000000000000000F4 -S3156003733000000000000000000000000000000000E4 -S3156003734000000000000000000000000000000000D4 -S3156003735000000000000000000000000000000000C4 -S3156003736000000000000000000000000000000000B4 -S3156003737000000000000000000000000000000000A4 -S315600373800000000000000000000000000000000094 -S315600373900000000000000000000000000000000084 -S315600373A00000000000000000000000000000000074 -S315600373B00000000000000000000000000000000064 -S315600373C00000000000000000000000000000000054 -S315600373D00000000000000000000000000000000044 -S315600373E00000000000000000000000000000000034 -S315600373F00000000000000000000000000000000024 -S315600374000000000000000000000000000000000013 -S315600374100000000000000000000000000000000003 -S3156003742000000000000000000000000000000000F3 -S3156003743000000000000000000000000000000000E3 -S3156003744000000000000000000000000000000000D3 -S3156003745000000000000000000000000000000000C3 -S3156003746000000000000000000000000000000000B3 -S3156003747000000000000000000000000000000000A3 -S315600374800000000000000000000000000000000093 -S315600374900000000000000000000000000000000083 -S315600374A00000000000000000000000000000000073 -S315600374B00000000000000000000000000000000063 -S315600374C00000000000000000000000000000000053 -S315600374D00000000000000000000000000000000043 -S315600374E00000000000000000000000000000000033 -S315600374F00000000000000000000000000000000023 -S315600375000000000000000000000000000000000012 -S315600375100000000000000000000000000000000002 -S3156003752000000000000000000000000000000000F2 -S3156003753000000000000000000000000000000000E2 -S3156003754000000000000000000000000000000000D2 -S3156003755000000000000000000000000000000000C2 -S3156003756000000000000000000000000000000000B2 -S3156003757000000000000000000000000000000000A2 -S315600375800000000000000000000000000000000092 -S315600375900000000000000000000000000000000082 -S315600375A00000000000000000000000000000000072 -S315600375B00000000000000000000000000000000062 -S315600375C00000000000000000000000000000000052 -S315600375D00000000000000000000000000000000042 -S315600375E00000000000000000000000000000000032 -S315600375F00000000000000000000000000000000022 -S315600376000000000000000000000000000000000011 -S315600376100000000000000000000000000000000001 -S3156003762000000000000000000000000000000000F1 -S3156003763000000000000000000000000000000000E1 -S3156003764000000000000000000000000000000000D1 -S3156003765000000000000000000000000000000000C1 -S3156003766000000000000000000000000000000000B1 -S3156003767000000000000000000000000000000000A1 -S315600376800000000000000000000000000000000091 -S315600376900000000000000000000000000000000081 -S315600376A00000000000000000000000000000000071 -S315600376B00000000000000000000000000000000061 -S315600376C00000000000000000000000000000000051 -S315600376D00000000000000000000000000000000041 -S315600376E00000000000000000000000000000000031 -S315600376F00000000000000000000000000000000021 -S315600377000000000000000000000000000000000010 -S315600377100000000000000000000000000000000000 -S3156003772000000000000000000000000000000000F0 -S3156003773000000000000000000000000000000000E0 -S3156003774000000000000000000000000000000000D0 -S3156003775000000000000000000000000000000000C0 -S3156003776000000000000000000000000000000000B0 -S3156003777000000000000000000000000000000000A0 -S315600377800000000000000000000000000000000090 -S315600377900000000000000000000000000000000080 -S315600377A00000000000000000000000000000000070 -S315600377B00000000000000000000000000000000060 -S315600377C00000000000000000000000000000000050 -S315600377D00000000000000000000000000000000040 -S315600377E00000000000000000000000000000000030 -S315600377F00000000000000000000000000000000020 -S31560037800000000000000000000000000000000000F -S3156003781000000000000000000000000000000000FF -S3156003782000000000000000000000000000000000EF -S3156003783000000000000000000000000000000000DF -S3156003784000000000000000000000000000000000CF -S3156003785000000000000000000000000000000000BF -S3156003786000000000000000000000000000000000AF -S31560037870000000000000000000000000000000009F -S31560037880000000000000000000000000000000008F -S31560037890000000000000000000000000000000007F -S315600378A0000000000000000000000000000000006F -S315600378B0000000000000000000000000000000005F -S315600378C0000000000000000000000000000000004F -S315600378D0000000000000000000000000000000003F -S315600378E0000000000000000000000000000000002F -S315600378F0000000000000000000000000000000001F -S31560037900000000000000000000000000000000000E -S3156003791000000000000000000000000000000000FE -S3156003792000000000000000000000000000000000EE -S3156003793000000000000000000000000000000000DE -S3156003794000000000000000000000000000000000CE -S3156003795000000000000000000000000000000000BE -S3156003796000000000000000000000000000000000AE -S31560037970000000000000000000000000000000009E -S31560037980000000000000000000000000000000008E -S31560037990000000000000000000000000000000007E -S315600379A0000000000000000000000000000000006E -S315600379B0000000000000000000000000000000005E -S315600379C0000000000000000000000000000000004E -S315600379D0000000000000000000000000000000003E -S315600379E0000000000000000000000000000000002E -S315600379F0000000000000000000000000000000001E -S31560037A00000000000000000000000000000000000D -S31560037A1000000000000000000000000000000000FD -S31560037A2000000000000000000000000000000000ED -S31560037A3000000000000000000000000000000000DD -S31560037A4000000000000000000000000000000000CD -S31560037A5000000000000000000000000000000000BD -S31560037A6000000000000000000000000000000000AD -S31560037A70000000000000000000000000000000009D -S31560037A80000000000000000000000000000000008D -S31560037A90000000000000000000000000000000007D -S31560037AA0000000000000000000000000000000006D -S31560037AB0000000000000000000000000000000005D -S31560037AC0000000000000000000000000000000004D -S31560037AD0000000000000000000000000000000003D -S31560037AE0000000000000000000000000000000002D -S31560037AF0000000000000000000000000000000001D -S31560037B00000000000000000000000000000000000C -S31560037B1000000000000000000000000000000000FC -S31560037B2000000000000000000000000000000000EC -S31560037B3000000000000000000000000000000000DC -S31560037B4000000000000000000000000000000000CC -S31560037B5000000000000000000000000000000000BC -S31560037B6000000000000000000000000000000000AC -S31560037B70000000000000000000000000000000009C -S31560037B80000000000000000000000000000000008C -S31560037B90000000000000000000000000000000007C -S31560037BA0000000000000000000000000000000006C -S31560037BB0000000000000000000000000000000005C -S31560037BC0000000000000000000000000000000004C -S31560037BD0000000000000000000000000000000003C -S31560037BE0000000000000000000000000000000002C -S31560037BF0000000000000000000000000000000001C -S31560037C00000000000000000000000000000000000B -S31560037C1000000000000000000000000000000000FB -S31560037C2000000000000000000000000000000000EB -S31560037C3000000000000000000000000000000000DB -S31560037C4000000000000000000000000000000000CB -S31560037C5000000000000000000000000000000000BB -S31560037C6000000000000000000000000000000000AB -S31560037C70000000000000000000000000000000009B -S31560037C80000000000000000000000000000000008B -S31560037C90000000000000000000000000000000007B -S31560037CA0000000000000000000000000000000006B -S31560037CB0000000000000000000000000000000005B -S31560037CC0000000000000000000000000000000004B -S31560037CD0000000000000000000000000000000003B -S31560037CE0000000000000000000000000000000002B -S31560037CF0000000000000000000000000000000001B -S31560037D00000000000000000000000000000000000A -S31560037D1000000000000000000000000000000000FA -S31560037D2000000000000000000000000000000000EA -S31560037D3000000000000000000000000000000000DA -S31560037D4000000000000000000000000000000000CA -S31560037D5000000000000000000000000000000000BA -S31560037D6000000000000000000000000000000000AA -S31560037D70000000000000000000000000000000009A -S31560037D80000000000000000000000000000000008A -S31560037D90000000000000000000000000000000007A -S31560037DA0000000000000000000000000000000006A -S31560037DB0000000000000000000000000000000005A -S31560037DC0000000000000000000000000000000004A -S31560037DD0000000000000000000000000000000003A -S31560037DE0000000000000000000000000000000002A -S31560037DF0000000000000000000000000000000001A -S31560037E000000000000000000000000000000000009 -S31560037E1000000000000000000000000000000000F9 -S31560037E2000000000000000000000000000000000E9 -S31560037E3000000000000000000000000000000000D9 -S31560037E4000000000000000000000000000000000C9 -S31560037E5000000000000000000000000000000000B9 -S31560037E6000000000000000000000000000000000A9 -S31560037E700000000000000000000000000000000099 -S31560037E800000000000000000000000000000000089 -S31560037E900000000000000000000000000000000079 -S31560037EA00000000000000000000000000000000069 -S31560037EB00000000000000000000000000000000059 -S31560037EC00000000000000000000000000000000049 -S31560037ED00000000000000000000000000000000039 -S31560037EE00000000000000000000000000000000029 -S31560037EF00000000000000000000000000000000019 -S31560037F000000000000000000000000000000000008 -S31560037F1000000000000000000000000000000000F8 -S31560037F2000000000000000000000000000000000E8 -S31560037F3000000000000000000000000000000000D8 -S31560037F4000000000000000000000000000000000C8 -S31560037F5000000000000000000000000000000000B8 -S31560037F6000000000000000000000000000000000A8 -S31560037F700000000000000000000000000000000098 -S31560037F800000000000000000000000000000000088 -S31560037F900000000000000000000000000000000078 -S31560037FA00000000000000000000000000000000068 -S31560037FB00000000000000000000000000000000058 -S31560037FC00000000000000000000000000000000048 -S31560037FD00000000000000000000000000000000038 -S31560037FE00000000000000000000000000000000028 -S31560037FF00000000000000000000000000000000018 -S315600380000000000000000000000000000000000007 -S3156003801000000000000000000000000000000000F7 -S3156003802000000000000000000000000000000000E7 -S3156003803000000000000000000000000000000000D7 -S3156003804000000000000000000000000000000000C7 -S3156003805000000000000000000000000000000000B7 -S3156003806000000000000000000000000000000000A7 -S315600380700000000000000000000000000000000097 -S315600380800000000000000000000000000000000087 -S315600380900000000000000000000000000000000077 -S315600380A00000000000000000000000000000000067 -S315600380B00000000000000000000000000000000057 -S315600380C00000000000000000000000000000000047 -S315600380D00000000000000000000000000000000037 -S315600380E00000000000000000000000000000000027 -S315600380F00000000000000000000000000000000017 -S315600381000000000000000000000000000000000006 -S3156003811000000000000000000000000000000000F6 -S3156003812000000000000000000000000000000000E6 -S3156003813000000000000000000000000000000000D6 -S3156003814000000000000000000000000000000000C6 -S3156003815000000000000000000000000000000000B6 -S3156003816000000000000000000000000000000000A6 -S315600381700000000000000000000000000000000096 -S315600381800000000000000000000000000000000086 -S315600381900000000000000000000000000000000076 -S315600381A00000000000000000000000000000000066 -S315600381B00000000000000000000000000000000056 -S315600381C00000000000000000000000000000000046 -S315600381D00000000000000000000000000000000036 -S315600381E00000000000000000000000000000000026 -S315600381F00000000000000000000000000000000016 -S315600382000000000000000000000000000000000005 -S3156003821000000000000000000000000000000000F5 -S3156003822000000000000000000000000000000000E5 -S3156003823000000000000000000000000000000000D5 -S3156003824000000000000000000000000000000000C5 -S3156003825000000000000000000000000000000000B5 -S3156003826000000000000000000000000000000000A5 -S315600382700000000000000000000000000000000095 -S315600382800000000000000000000000000000000085 -S315600382900000000000000000000000000000000075 -S315600382A00000000000000000000000000000000065 -S315600382B00000000000000000000000000000000055 -S315600382C00000000000000000000000000000000045 -S315600382D00000000000000000000000000000000035 -S315600382E00000000000000000000000000000000025 -S315600382F00000000000000000000000000000000015 -S315600383000000000000000000000000000000000004 -S3156003831000000000000000000000000000000000F4 -S3156003832000000000000000000000000000000000E4 -S3156003833000000000000000000000000000000000D4 -S3156003834000000000000000000000000000000000C4 -S3156003835000000000000000000000000000000000B4 -S3156003836000000000000000000000000000000000A4 -S315600383700000000000000000000000000000000094 -S315600383800000000000000000000000000000000084 -S315600383900000000000000000000000000000000074 -S315600383A00000000000000000000000000000000064 -S315600383B00000000000000000000000000000000054 -S315600383C00000000000000000000000000000000044 -S315600383D00000000000000000000000000000000034 -S315600383E00000000000000000000000000000000024 -S315600383F00000000000000000000000000000000014 -S315600384000000000000000000000000000000000003 -S3156003841000000000000000000000000000000000F3 -S3156003842000000000000000000000000000000000E3 -S3156003843000000000000000000000000000000000D3 -S3156003844000000000000000000000000000000000C3 -S3156003845000000000000000000000000000000000B3 -S3156003846000000000000000000000000000000000A3 -S315600384700000000000000000000000000000000093 -S315600384800000000000000000000000000000000083 -S315600384900000000000000000000000000000000073 -S315600384A00000000000000000000000000000000063 -S315600384B00000000000000000000000000000000053 -S315600384C00000000000000000000000000000000043 -S315600384D00000000000000000000000000000000033 -S315600384E00000000000000000000000000000000023 -S315600384F00000000000000000000000000000000013 -S315600385000000000000000000000000000000000002 -S3156003851000000000000000000000000000000000F2 -S3156003852000000000000000000000000000000000E2 -S3156003853000000000000000000000000000000000D2 -S3156003854000000000000000000000000000000000C2 -S3156003855000000000000000000000000000000000B2 -S3156003856000000000000000000000000000000000A2 -S315600385700000000000000000000000000000000092 -S315600385800000000000000000000000000000000082 -S315600385900000000000000000000000000000000072 -S315600385A00000000000000000000000000000000062 -S315600385B00000000000000000000000000000000052 -S315600385C00000000000000000000000000000000042 -S315600385D00000000000000000000000000000000032 -S315600385E00000000000000000000000000000000022 -S315600385F00000000000000000000000000000000012 -S315600386000000000000000000000000000000000001 -S3156003861000000000000000000000000000000000F1 -S3156003862000000000000000000000000000000000E1 -S3156003863000000000000000000000000000000000D1 -S3156003864000000000000000000000000000000000C1 -S3156003865000000000000000000000000000000000B1 -S3156003866000000000000000000000000000000000A1 -S315600386700000000000000000000000000000000091 -S315600386800000000000000000000000000000000081 -S315600386900000000000000000000000000000000071 -S315600386A00000000000000000000000000000000061 -S315600386B00000000000000000000000000000000051 -S315600386C00000000000000000000000000000000041 -S315600386D00000000000000000000000000000000031 -S315600386E00000000000000000000000000000000021 -S315600386F00000000000000000000000000000000011 -S315600387000000000000000000000000000000000000 -S3156003871000000000000000000000000000000000F0 -S3156003872000000000000000000000000000000000E0 -S3156003873000000000000000000000000000000000D0 -S3156003874000000000000000000000000000000000C0 -S3156003875000000000000000000000000000000000B0 -S3156003876000000000000000000000000000000000A0 -S315600387700000000000000000000000000000000090 -S315600387800000000000000000000000000000000080 -S315600387900000000000000000000000000000000070 -S315600387A00000000000000000000000000000000060 -S315600387B00000000000000000000000000000000050 -S315600387C00000000000000000000000000000000040 -S315600387D00000000000000000000000000000000030 -S315600387E00000000000000000000000000000000020 -S315600387F00000000000000000000000000000000010 -S3156003880000000000000000000000000000000000FF -S3156003881000000000000000000000000000000000EF -S3156003882000000000000000000000000000000000DF -S3156003883000000000000000000000000000000000CF -S3156003884000000000000000000000000000000000BF -S3156003885000000000000000000000000000000000AF -S31560038860000000000000000000000000000000009F -S31560038870000000000000000000000000000000008F -S31560038880000000000000000000000000000000007F -S31560038890000000000000000000000000000000006F -S315600388A0000000000000000000000000000000005F -S315600388B0000000000000000000000000000000004F -S315600388C0000000000000000000000000000000003F -S315600388D0000000000000000000000000000000002F -S315600388E0000000000000000000000000000000001F -S315600388F0000000000000000000000000000000000F -S3156003890000000000000000000000000000000000FE -S3156003891000000000000000000000000000000000EE -S3156003892000000000000000000000000000000000DE -S3156003893000000000000000000000000000000000CE -S3156003894000000000000000000000000000000000BE -S3156003895000000000000000000000000000000000AE -S31560038960000000000000000000000000000000009E -S31560038970000000000000000000000000000000008E -S31560038980000000000000000000000000000000007E -S31560038990000000000000000000000000000000006E -S315600389A0000000000000000000000000000000005E -S315600389B0000000000000000000000000000000004E -S315600389C0000000000000000000000000000000003E -S315600389D0000000000000000000000000000000002E -S315600389E0000000000000000000000000000000001E -S315600389F0000000000000000000000000000000000E -S31560038A0000000000000000000000000000000000FD -S31560038A1000000000000000000000000000000000ED -S31560038A2000000000000000000000000000000000DD -S31560038A3000000000000000000000000000000000CD -S31560038A4000000000000000000000000000000000BD -S31560038A5000000000000000000000000000000000AD -S31560038A60000000000000000000000000000000009D -S31560038A70000000000000000000000000000000008D -S31560038A80000000000000000000000000000000007D -S31560038A90000000000000000000000000000000006D -S31560038AA0000000000000000000000000000000005D -S31560038AB0000000000000000000000000000000004D -S31560038AC0000000000000000000000000000000003D -S31560038AD0000000000000000000000000000000002D -S31560038AE0000000000000000000000000000000001D -S31560038AF0000000000000000000000000000000000D -S31560038B0000000000000000000000000000000000FC -S31560038B1000000000000000000000000000000000EC -S31560038B2000000000000000000000000000000000DC -S31560038B3000000000000000000000000000000000CC -S31560038B4000000000000000000000000000000000BC -S31560038B5000000000000000000000000000000000AC -S31560038B60000000000000000000000000000000009C -S31560038B70000000000000000000000000000000008C -S31560038B80000000000000000000000000000000007C -S31560038B90000000000000000000000000000000006C -S31560038BA0000000000000000000000000000000005C -S31560038BB0000000000000000000000000000000004C -S31560038BC0000000000000000000000000000000003C -S31560038BD0000000000000000000000000000000002C -S31560038BE0000000000000000000000000000000001C -S31560038BF0000000000000000000000000000000000C -S31560038C0000000000000000000000000000000000FB -S31560038C1000000000000000000000000000000000EB -S31560038C2000000000000000000000000000000000DB -S31560038C3000000000000000000000000000000000CB -S31560038C4000000000000000000000000000000000BB -S31560038C5000000000000000000000000000000000AB -S31560038C60000000000000000000000000000000009B -S31560038C70000000000000000000000000000000008B -S31560038C80000000000000000000000000000000007B -S31560038C90000000000000000000000000000000006B -S31560038CA0000000000000000000000000000000005B -S31560038CB0000000000000000000000000000000004B -S31560038CC0000000000000000000000000000000003B -S31560038CD0000000000000000000000000000000002B -S31560038CE0000000000000000000000000000000001B -S31560038CF0000000000000000000000000000000000B -S31560038D0000000000000000000000000000000000FA -S31560038D1000000000000000000000000000000000EA -S31560038D2000000000000000000000000000000000DA -S31560038D3000000000000000000000000000000000CA -S31560038D4000000000000000000000000000000000BA -S31560038D5000000000000000000000000000000000AA -S31560038D60000000000000000000000000000000009A -S31560038D70000000000000000000000000000000008A -S31560038D80000000000000000000000000000000007A -S31560038D90000000000000000000000000000000006A -S31560038DA0000000000000000000000000000000005A -S31560038DB0000000000000000000000000000000004A -S31560038DC0000000000000000000000000000000003A -S31560038DD0000000000000000000000000000000002A -S31560038DE0000000000000000000000000000000001A -S31560038DF0000000000000000000000000000000000A -S31560038E0000000000000000000000000000000000F9 -S31560038E1000000000000000000000000000000000E9 -S31560038E2000000000000000000000000000000000D9 -S31560038E3000000000000000000000000000000000C9 -S31560038E4000000000000000000000000000000000B9 -S31560038E5000000000000000000000000000000000A9 -S31560038E600000000000000000000000000000000099 -S31560038E700000000000000000000000000000000089 -S31560038E800000000000000000000000000000000079 -S31560038E900000000000000000000000000000000069 -S31560038EA00000000000000000000000000000000059 -S31560038EB00000000000000000000000000000000049 -S31560038EC00000000000000000000000000000000039 -S31560038ED00000000000000000000000000000000029 -S31560038EE00000000000000000000000000000000019 -S31560038EF00000000000000000000000000000000009 -S31560038F0000000000000000000000000000000000F8 -S31560038F1000000000000000000000000000000000E8 -S31560038F2000000000000000000000000000000000D8 -S31560038F3000000000000000000000000000000000C8 -S31560038F4000000000000000000000000000000000B8 -S31560038F5000000000000000000000000000000000A8 -S31560038F600000000000000000000000000000000098 -S31560038F700000000000000000000000000000000088 -S31560038F800000000000000000000000000000000078 -S31560038F900000000000000000000000000000000068 -S31560038FA00000000000000000000000000000000058 -S31560038FB00000000000000000000000000000000048 -S31560038FC00000000000000000000000000000000038 -S31560038FD00000000000000000000000000000000028 -S31560038FE00000000000000000000000000000000018 -S31560038FF00000000000000000000000000000000008 -S3156003900000000000000000000000000000000000F7 -S3156003901000000000000000000000000000000000E7 -S3156003902000000000000000000000000000000000D7 -S3156003903000000000000000000000000000000000C7 -S3156003904000000000000000000000000000000000B7 -S3156003905000000000000000000000000000000000A7 -S315600390600000000000000000000000000000000097 -S315600390700000000000000000000000000000000087 -S315600390800000000000000000000000000000000077 -S315600390900000000000000000000000000000000067 -S315600390A00000000000000000000000000000000057 -S315600390B00000000000000000000000000000000047 -S315600390C00000000000000000000000000000000037 -S315600390D00000000000000000000000000000000027 -S315600390E00000000000000000000000000000000017 -S315600390F00000000000000000000000000000000007 -S3156003910000000000000000000000000000000000F6 -S3156003911000000000000000000000000000000000E6 -S3156003912000000000000000000000000000000000D6 -S3156003913000000000000000000000000000000000C6 -S3156003914000000000000000000000000000000000B6 -S3156003915000000000000000000000000000000000A6 -S315600391600000000000000000000000000000000096 -S315600391700000000000000000000000000000000086 -S315600391800000000000000000000000000000000076 -S315600391900000000000000000000000000000000066 -S315600391A00000000000000000000000000000000056 -S315600391B00000000000000000000000000000000046 -S315600391C00000000000000000000000000000000036 -S315600391D00000000000000000000000000000000026 -S315600391E00000000000000000000000000000000016 -S315600391F00000000000000000000000000000000006 -S3156003920000000000000000000000000000000000F5 -S3156003921000000000000000000000000000000000E5 -S3156003922000000000000000000000000000000000D5 -S3156003923000000000000000000000000000000000C5 -S3156003924000000000000000000000000000000000B5 -S3156003925000000000000000000000000000000000A5 -S315600392600000000000000000000000000000000095 -S315600392700000000000000000000000000000000085 -S315600392800000000000000000000000000000000075 -S315600392900000000000000000000000000000000065 -S315600392A00000000000000000000000000000000055 -S315600392B00000000000000000000000000000000045 -S315600392C00000000000000000000000000000000035 -S315600392D00000000000000000000000000000000025 -S315600392E00000000000000000000000000000000015 -S315600392F00000000000000000000000000000000005 -S3156003930000000000000000000000000000000000F4 -S3156003931000000000000000000000000000000000E4 -S3156003932000000000000000000000000000000000D4 -S3156003933000000000000000000000000000000000C4 -S3156003934000000000000000000000000000000000B4 -S3156003935000000000000000000000000000000000A4 -S315600393600000000000000000000000000000000094 -S315600393700000000000000000000000000000000084 -S315600393800000000000000000000000000000000074 -S315600393900000000000000000000000000000000064 -S315600393A00000000000000000000000000000000054 -S315600393B00000000000000000000000000000000044 -S315600393C00000000000000000000000000000000034 -S315600393D00000000000000000000000000000000024 -S315600393E00000000000000000000000000000000014 -S315600393F00000000000000000000000000000000004 -S3156003940000000000000000000000000000000000F3 -S3156003941000000000000000000000000000000000E3 -S3156003942000000000000000000000000000000000D3 -S3156003943000000000000000000000000000000000C3 -S3156003944000000000000000000000000000000000B3 -S3156003945000000000000000000000000000000000A3 -S315600394600000000000000000000000000000000093 -S315600394700000000000000000000000000000000083 -S315600394800000000000000000000000000000000073 -S315600394900000000000000000000000000000000063 -S315600394A00000000000000000000000000000000053 -S315600394B00000000000000000000000000000000043 -S315600394C00000000000000000000000000000000033 -S315600394D00000000000000000000000000000000023 -S315600394E00000000000000000000000000000000013 -S315600394F00000000000000000000000000000000003 -S3156003950000000000000000000000000000000000F2 -S3156003951000000000000000000000000000000000E2 -S3156003952000000000000000000000000000000000D2 -S3156003953000000000000000000000000000000000C2 -S3156003954000000000000000000000000000000000B2 -S3156003955000000000000000000000000000000000A2 -S315600395600000000000000000000000000000000092 -S315600395700000000000000000000000000000000082 -S315600395800000000000000000000000000000000072 -S315600395900000000000000000000000000000000062 -S315600395A00000000000000000000000000000000052 -S315600395B00000000000000000000000000000000042 -S315600395C00000000000000000000000000000000032 -S315600395D00000000000000000000000000000000022 -S315600395E00000000000000000000000000000000012 -S315600395F00000000000000000000000000000000002 -S3156003960000000000000000000000000000000000F1 -S3156003961000000000000000000000000000000000E1 -S3156003962000000000000000000000000000000000D1 -S3156003963000000000000000000000000000000000C1 -S3156003964000000000000000000000000000000000B1 -S3156003965000000000000000000000000000000000A1 -S315600396600000000000000000000000000000000091 -S315600396700000000000000000000000000000000081 -S315600396800000000000000000000000000000000071 -S315600396900000000000000000000000000000000061 -S315600396A00000000000000000000000000000000051 -S315600396B00000000000000000000000000000000041 -S315600396C00000000000000000000000000000000031 -S315600396D00000000000000000000000000000000021 -S315600396E00000000000000000000000000000000011 -S315600396F00000000000000000000000000000000001 -S3156003970000000000000000000000000000000000F0 -S3156003971000000000000000000000000000000000E0 -S3156003972000000000000000000000000000000000D0 -S3156003973000000000000000000000000000000000C0 -S3156003974000000000000000000000000000000000B0 -S3156003975000000000000000000000000000000000A0 -S315600397600000000000000000000000000000000090 -S315600397700000000000000000000000000000000080 -S315600397800000000000000000000000000000000070 -S315600397900000000000000000000000000000000060 -S315600397A00000000000000000000000000000000050 -S315600397B00000000000000000000000000000000040 -S315600397C00000000000000000000000000000000030 -S315600397D00000000000000000000000000000000020 -S315600397E00000000000000000000000000000000010 -S315600397F00000000000000000000000000000000000 -S3156003980000000000000000000000000000000000EF -S3156003981000000000000000000000000000000000DF -S3156003982000000000000000000000000000000000CF -S3156003983000000000000000000000000000000000BF -S3156003984000000000000000000000000000000000AF -S31560039850000000000000000000000000000000009F -S31560039860000000000000000000000000000000008F -S31560039870000000000000000000000000000000007F -S31560039880000000000000000000000000000000006F -S31560039890000000000000000000000000000000005F -S315600398A0000000000000000000000000000000004F -S315600398B0000000000000000000000000000000003F -S315600398C0000000000000000000000000000000002F -S315600398D0000000000000000000000000000000001F -S315600398E0000000000000000000000000000000000F -S315600398F000000000000000000000000000000000FF -S3156003990000000000000000000000000000000000EE -S3156003991000000000000000000000000000000000DE -S3156003992000000000000000000000000000000000CE -S3156003993000000000000000000000000000000000BE -S3156003994000000000000000000000000000000000AE -S31560039950000000000000000000000000000000009E -S31560039960000000000000000000000000000000008E -S31560039970000000000000000000000000000000007E -S31560039980000000000000000000000000000000006E -S31560039990000000000000000000000000000000005E -S315600399A0000000000000000000000000000000004E -S315600399B0000000000000000000000000000000003E -S315600399C0000000000000000000000000000000002E -S315600399D0000000000000000000000000000000001E -S315600399E0000000000000000000000000000000000E -S315600399F000000000000000000000000000000000FE -S31560039A0000000000000000000000000000000000ED -S31560039A1000000000000000000000000000000000DD -S31560039A2000000000000000000000000000000000CD -S31560039A3000000000000000000000000000000000BD -S31560039A4000000000000000000000000000000000AD -S31560039A50000000000000000000000000000000009D -S31560039A60000000000000000000000000000000008D -S31560039A70000000000000000000000000000000007D -S31560039A80000000000000000000000000000000006D -S31560039A90000000000000000000000000000000005D -S31560039AA0000000000000000000000000000000004D -S31560039AB0000000000000000000000000000000003D -S31560039AC0000000000000000000000000000000002D -S31560039AD0000000000000000000000000000000001D -S31560039AE0000000000000000000000000000000000D -S31560039AF000000000000000000000000000000000FD -S31560039B0000000000000000000000000000000000EC -S31560039B1000000000000000000000000000000000DC -S31560039B2000000000000000000000000000000000CC -S31560039B3000000000000000000000000000000000BC -S31560039B4000000000000000000000000000000000AC -S31560039B50000000000000000000000000000000009C -S31560039B60000000000000000000000000000000008C -S31560039B70000000000000000000000000000000007C -S31560039B80000000000000000000000000000000006C -S31560039B90000000000000000000000000000000005C -S31560039BA0000000000000000000000000000000004C -S31560039BB0000000000000000000000000000000003C -S31560039BC0000000000000000000000000000000002C -S31560039BD0000000000000000000000000000000001C -S31560039BE0000000000000000000000000000000000C -S31560039BF000000000000000000000000000000000FC -S31560039C0000000000000000000000000000000000EB -S31560039C1000000000000000000000000000000000DB -S31560039C2000000000000000000000000000000000CB -S31560039C3000000000000000000000000000000000BB -S31560039C4000000000000000000000000000000000AB -S31560039C50000000000000000000000000000000009B -S31560039C60000000000000000000000000000000008B -S31560039C70000000000000000000000000000000007B -S31560039C80000000000000000000000000000000006B -S31560039C90000000000000000000000000000000005B -S31560039CA0000000000000000000000000000000004B -S31560039CB0000000000000000000000000000000003B -S31560039CC0000000000000000000000000000000002B -S31560039CD0000000000000000000000000000000001B -S31560039CE0000000000000000000000000000000000B -S31560039CF000000000000000000000000000000000FB -S31560039D0000000000000000000000000000000000EA -S31560039D1000000000000000000000000000000000DA -S31560039D2000000000000000000000000000000000CA -S31560039D3000000000000000000000000000000000BA -S31560039D4000000000000000000000000000000000AA -S31560039D50000000000000000000000000000000009A -S31560039D60000000000000000000000000000000008A -S31560039D70000000000000000000000000000000007A -S31560039D80000000000000000000000000000000006A -S31560039D90000000000000000000000000000000005A -S31560039DA0000000000000000000000000000000004A -S31560039DB0000000000000000000000000000000003A -S31560039DC0000000000000000000000000000000002A -S31560039DD0000000000000000000000000000000001A -S31560039DE0000000000000000000000000000000000A -S31560039DF000000000000000000000000000000000FA -S31560039E0000000000000000000000000000000000E9 -S31560039E1000000000000000000000000000000000D9 -S31560039E2000000000000000000000000000000000C9 -S31560039E3000000000000000000000000000000000B9 -S31560039E4000000000000000000000000000000000A9 -S31560039E500000000000000000000000000000000099 -S31560039E600000000000000000000000000000000089 -S31560039E700000000000000000000000000000000079 -S31560039E800000000000000000000000000000000069 -S31560039E900000000000000000000000000000000059 -S31560039EA00000000000000000000000000000000049 -S31560039EB00000000000000000000000000000000039 -S31560039EC00000000000000000000000000000000029 -S31560039ED00000000000000000000000000000000019 -S31560039EE00000000000000000000000000000000009 -S31560039EF000000000000000000000000000000000F9 -S31560039F0000000000000000000000000000000000E8 -S31560039F1000000000000000000000000000000000D8 -S31560039F2000000000000000000000000000000000C8 -S31560039F3000000000000000000000000000000000B8 -S31560039F4000000000000000000000000000000000A8 -S31560039F500000000000000000000000000000000098 -S31560039F600000000000000000000000000000000088 -S31560039F700000000000000000000000000000000078 -S31560039F800000000000000000000000000000000068 -S31560039F900000000000000000000000000000000058 -S31560039FA00000000000000000000000000000000048 -S31560039FB00000000000000000000000000000000038 -S31560039FC00000000000000000000000000000000028 -S31560039FD00000000000000000000000000000000018 -S31560039FE00000000000000000000000000000000008 -S31560039FF000000000000000000000000000000000F8 -S3156003A00000000000000000000000000000000000E7 -S3156003A01000000000000000000000000000000000D7 -S3156003A02000000000000000000000000000000000C7 -S3156003A03000000000000000000000000000000000B7 -S3156003A04000000000000000000000000000000000A7 -S3156003A0500000000000000000000000000000000097 -S3156003A0600000000000000000000000000000000087 -S3156003A0700000000000000000000000000000000077 -S3156003A0800000000000000000000000000000000067 -S3156003A0900000000000000000000000000000000057 -S3156003A0A00000000000000000000000000000000047 -S3156003A0B00000000000000000000000000000000037 -S3156003A0C00000000000000000000000000000000027 -S3156003A0D00000000000000000000000000000000017 -S3156003A0E00000000000000000000000000000000007 -S3156003A0F000000000000000000000000000000000F7 -S3156003A10000000000000000000000000000000000E6 -S3156003A11000000000000000000000000000000000D6 -S3156003A12000000000000000000000000000000000C6 -S3156003A13000000000000000000000000000000000B6 -S3156003A14000000000000000000000000000000000A6 -S3156003A1500000000000000000000000000000000096 -S3156003A1600000000000000000000000000000000086 -S3156003A1700000000000000000000000000000000076 -S3156003A1800000000000000000000000000000000066 -S3156003A1900000000000000000000000000000000056 -S3156003A1A00000000000000000000000000000000046 -S3156003A1B00000000000000000000000000000000036 -S3156003A1C00000000000000000000000000000000026 -S3156003A1D00000000000000000000000000000000016 -S3156003A1E00000000000000000000000000000000006 -S3156003A1F000000000000000000000000000000000F6 -S3156003A20000000000000000000000000000000000E5 -S3156003A21000000000000000000000000000000000D5 -S3156003A22000000000000000000000000000000000C5 -S3156003A23000000000000000000000000000000000B5 -S3156003A24000000000000000000000000000000000A5 -S3156003A2500000000000000000000000000000000095 -S3156003A2600000000000000000000000000000000085 -S3156003A2700000000000000000000000000000000075 -S3156003A2800000000000000000000000000000000065 -S3156003A2900000000000000000000000000000000055 -S3156003A2A00000000000000000000000000000000045 -S3156003A2B00000000000000000000000000000000035 -S3156003A2C00000000000000000000000000000000025 -S3156003A2D00000000000000000000000000000000015 -S3156003A2E00000000000000000000000000000000005 -S3156003A2F000000000000000000000000000000000F5 -S3156003A30000000000000000000000000000000000E4 -S3156003A31000000000000000000000000000000000D4 -S3156003A32000000000000000000000000000000000C4 -S3156003A33000000000000000000000000000000000B4 -S3156003A34000000000000000000000000000000000A4 -S3156003A3500000000000000000000000000000000094 -S3156003A3600000000000000000000000000000000084 -S3156003A3700000000000000000000000000000000074 -S3156003A3800000000000000000000000000000000064 -S3156003A3900000000000000000000000000000000054 -S3156003A3A00000000000000000000000000000000044 -S3156003A3B00000000000000000000000000000000034 -S3156003A3C00000000000000000000000000000000024 -S3156003A3D00000000000000000000000000000000014 -S3156003A3E00000000000000000000000000000000004 -S3156003A3F000000000000000000000000000000000F4 -S3156003A40000000000000000000000000000000000E3 -S3156003A41000000000000000000000000000000000D3 -S3156003A42000000000000000000000000000000000C3 -S3156003A43000000000000000000000000000000000B3 -S3156003A44000000000000000000000000000000000A3 -S3156003A4500000000000000000000000000000000093 -S3156003A4600000000000000000000000000000000083 -S3156003A4700000000000000000000000000000000073 -S3156003A4800000000000000000000000000000000063 -S3156003A4900000000000000000000000000000000053 -S3156003A4A00000000000000000000000000000000043 -S3156003A4B00000000000000000000000000000000033 -S3156003A4C00000000000000000000000000000000023 -S3156003A4D00000000000000000000000000000000013 -S3156003A4E00000000000000000000000000000000003 -S3156003A4F000000000000000000000000000000000F3 -S3156003A50000000000000000000000000000000000E2 -S3156003A51000000000000000000000000000000000D2 -S3156003A52000000000000000000000000000000000C2 -S3156003A53000000000000000000000000000000000B2 -S3156003A54000000000000000000000000000000000A2 -S3156003A5500000000000000000000000000000000092 -S3156003A5600000000000000000000000000000000082 -S3156003A5700000000000000000000000000000000072 -S3156003A5800000000000000000000000000000000062 -S3156003A5900000000000000000000000000000000052 -S3156003A5A00000000000000000000000000000000042 -S3156003A5B00000000000000000000000000000000032 -S3156003A5C00000000000000000000000000000000022 -S3156003A5D00000000000000000000000000000000012 -S3156003A5E00000000000000000000000000000000002 -S3156003A5F000000000000000000000000000000000F2 -S3156003A60000000000000000000000000000000000E1 -S3156003A61000000000000000000000000000000000D1 -S3156003A62000000000000000000000000000000000C1 -S3156003A63000000000000000000000000000000000B1 -S3156003A64000000000000000000000000000000000A1 -S3156003A6500000000000000000000000000000000091 -S3156003A6600000000000000000000000000000000081 -S3156003A6700000000000000000000000000000000071 -S3156003A6800000000000000000000000000000000061 -S3156003A6900000000000000000000000000000000051 -S3156003A6A00000000000000000000000000000000041 -S3156003A6B00000000000000000000000000000000031 -S3156003A6C00000000000000000000000000000000021 -S3156003A6D00000000000000000000000000000000011 -S3156003A6E00000000000000000000000000000000001 -S3156003A6F000000000000000000000000000000000F1 -S3156003A70000000000000000000000000000000000E0 -S3156003A71000000000000000000000000000000000D0 -S3156003A72000000000000000000000000000000000C0 -S3156003A73000000000000000000000000000000000B0 -S3156003A74000000000000000000000000000000000A0 -S3156003A7500000000000000000000000000000000090 -S3156003A7600000000000000000000000000000000080 -S3156003A7700000000000000000000000000000000070 -S3156003A7800000000000000000000000000000000060 -S3156003A7900000000000000000000000000000000050 -S3156003A7A00000000000000000000000000000000040 -S3156003A7B00000000000000000000000000000000030 -S3156003A7C00000000000000000000000000000000020 -S3156003A7D00000000000000000000000000000000010 -S3156003A7E00000000000000000000000000000000000 -S3156003A7F000000000000000000000000000000000F0 -S3156003A80000000000000000000000000000000000DF -S3156003A81000000000000000000000000000000000CF -S3156003A82000000000000000000000000000000000BF -S3156003A83000000000000000000000000000000000AF -S3156003A840000000000000000000000000000000009F -S3156003A850000000000000000000000000000000008F -S3156003A860000000000000000000000000000000007F -S3156003A870000000000000000000000000000000006F -S3156003A880000000000000000000000000000000005F -S3156003A890000000000000000000000000000000004F -S3156003A8A0000000000000000000000000000000003F -S3156003A8B0000000000000000000000000000000002F -S3156003A8C0000000000000000000000000000000001F -S3156003A8D0000000000000000000000000000000000F -S3156003A8E000000000000000000000000000000000FF -S3156003A8F000000000000000000000000000000000EF -S3156003A90000000000000000000000000000000000DE -S3156003A91000000000000000000000000000000000CE -S3156003A92000000000000000000000000000000000BE -S3156003A93000000000000000000000000000000000AE -S3156003A940000000000000000000000000000000009E -S3156003A950000000000000000000000000000000008E -S3156003A960000000000000000000000000000000007E -S3156003A970000000000000000000000000000000006E -S3156003A980000000000000000000000000000000005E -S3156003A990000000000000000000000000000000004E -S3156003A9A0000000000000000000000000000000003E -S3156003A9B0000000000000000000000000000000002E -S3156003A9C0000000000000000000000000000000001E -S3156003A9D0000000000000000000000000000000000E -S3156003A9E000000000000000000000000000000000FE -S3156003A9F000000000000000000000000000000000EE -S3156003AA0000000000000000000000000000000000DD -S3156003AA1000000000000000000000000000000000CD -S3156003AA2000000000000000000000000000000000BD -S3156003AA3000000000000000000000000000000000AD -S3156003AA40000000000000000000000000000000009D -S3156003AA50000000000000000000000000000000008D -S3156003AA60000000000000000000000000000000007D -S3156003AA70000000000000000000000000000000006D -S3156003AA80000000000000000000000000000000005D -S3156003AA90000000000000000000000000000000004D -S3156003AAA0000000000000000000000000000000003D -S3156003AAB0000000000000000000000000000000002D -S3156003AAC0000000000000000000000000000000001D -S3156003AAD0000000000000000000000000000000000D -S3156003AAE000000000000000000000000000000000FD -S3156003AAF000000000000000000000000000000000ED -S3156003AB0000000000000000000000000000000000DC -S3156003AB1000000000000000000000000000000000CC -S3156003AB2000000000000000000000000000000000BC -S3156003AB3000000000000000000000000000000000AC -S3156003AB40000000000000000000000000000000009C -S3156003AB50000000000000000000000000000000008C -S3156003AB60000000000000000000000000000000007C -S3156003AB70000000000000000000000000000000006C -S3156003AB80000000000000000000000000000000005C -S3156003AB90000000000000000000000000000000004C -S3156003ABA0000000000000000000000000000000003C -S3156003ABB0000000000000000000000000000000002C -S3156003ABC0000000000000000000000000000000001C -S3156003ABD0000000000000000000000000000000000C -S3156003ABE000000000000000000000000000000000FC -S3156003ABF000000000000000000000000000000000EC -S3156003AC0000000000000000000000000000000000DB -S3156003AC1000000000000000000000000000000000CB -S3156003AC2000000000000000000000000000000000BB -S3156003AC3000000000000000000000000000000000AB -S3156003AC40000000000000000000000000000000009B -S3156003AC50000000000000000000000000000000008B -S3156003AC60000000000000000000000000000000007B -S3156003AC70000000000000000000000000000000006B -S3156003AC80000000000000000000000000000000005B -S3156003AC90000000000000000000000000000000004B -S3156003ACA0000000000000000000000000000000003B -S3156003ACB0000000000000000000000000000000002B -S3156003ACC0000000000000000000000000000000001B -S3156003ACD0000000000000000000000000000000000B -S3156003ACE000000000000000000000000000000000FB -S3156003ACF000000000000000000000000000000000EB -S3156003AD0000000000000000000000000000000000DA -S3156003AD1000000000000000000000000000000000CA -S3156003AD2000000000000000000000000000000000BA -S3156003AD3000000000000000000000000000000000AA -S3156003AD40000000000000000000000000000000009A -S3156003AD50000000000000000000000000000000008A -S3156003AD60000000000000000000000000000000007A -S3156003AD70000000000000000000000000000000006A -S3156003AD80000000000000000000000000000000005A -S3156003AD90000000000000000000000000000000004A -S3156003ADA0000000000000000000000000000000003A -S3156003ADB0000000000000000000000000000000002A -S3156003ADC0000000000000000000000000000000001A -S3156003ADD0000000000000000000000000000000000A -S3156003ADE000000000000000000000000000000000FA -S3156003ADF000000000000000000000000000000000EA -S3156003AE0000000000000000000000000000000000D9 -S3156003AE1000000000000000000000000000000000C9 -S3156003AE2000000000000000000000000000000000B9 -S3156003AE3000000000000000000000000000000000A9 -S3156003AE400000000000000000000000000000000099 -S3156003AE500000000000000000000000000000000089 -S3156003AE600000000000000000000000000000000079 -S3156003AE700000000000000000000000000000000069 -S3156003AE800000000000000000000000000000000059 -S3156003AE900000000000000000000000000000000049 -S3156003AEA00000000000000000000000000000000039 -S3156003AEB00000000000000000000000000000000029 -S3156003AEC00000000000000000000000000000000019 -S3156003AED00000000000000000000000000000000009 -S3156003AEE000000000000000000000000000000000F9 -S3156003AEF000000000000000000000000000000000E9 -S3156003AF0000000000000000000000000000000000D8 -S3156003AF1000000000000000000000000000000000C8 -S3156003AF2000000000000000000000000000000000B8 -S3156003AF3000000000000000000000000000000000A8 -S3156003AF400000000000000000000000000000000098 -S3156003AF500000000000000000000000000000000088 -S3156003AF600000000000000000000000000000000078 -S3156003AF700000000000000000000000000000000068 -S3156003AF800000000000000000000000000000000058 -S3156003AF900000000000000000000000000000000048 -S3156003AFA00000000000000000000000000000000038 -S3156003AFB00000000000000000000000000000000028 -S3156003AFC00000000000000000000000000000000018 -S3156003AFD00000000000000000000000000000000008 -S3156003AFE000000000000000000000000000000000F8 -S3156003AFF000000000000000000000000000000000E8 -S3156003B00000000000000000000000000000000000D7 -S3156003B01000000000000000000000000000000000C7 -S3156003B02000000000000000000000000000000000B7 -S3156003B03000000000000000000000000000000000A7 -S3156003B0400000000000000000000000000000000097 -S3156003B0500000000000000000000000000000000087 -S3156003B0600000000000000000000000000000000077 -S3156003B0700000000000000000000000000000000067 -S3156003B0800000000000000000000000000000000057 -S3156003B0900000000000000000000000000000000047 -S3156003B0A00000000000000000000000000000000037 -S3156003B0B00000000000000000000000000000000027 -S3156003B0C00000000000000000000000000000000017 -S3156003B0D00000000000000000000000000000000007 -S3156003B0E000000000000000000000000000000000F7 -S3156003B0F000000000000000000000000000000000E7 -S3156003B10000000000000000000000000000000000D6 -S3156003B11000000000000000000000000000000000C6 -S3156003B12000000000000000000000000000000000B6 -S3156003B13000000000000000000000000000000000A6 -S3156003B1400000000000000000000000000000000096 -S3156003B1500000000000000000000000000000000086 -S3156003B1600000000000000000000000000000000076 -S3156003B1700000000000000000000000000000000066 -S3156003B1800000000000000000000000000000000056 -S3156003B1900000000000000000000000000000000046 -S3156003B1A00000000000000000000000000000000036 -S3156003B1B00000000000000000000000000000000026 -S3156003B1C00000000000000000000000000000000016 -S3156003B1D00000000000000000000000000000000006 -S3156003B1E000000000000000000000000000000000F6 -S3156003B1F000000000000000000000000000000000E6 -S3156003B20000000000000000000000000000000000D5 -S3156003B21000000000000000000000000000000000C5 -S3156003B22000000000000000000000000000000000B5 -S3156003B23000000000000000000000000000000000A5 -S3156003B2400000000000000000000000000000000095 -S3156003B2500000000000000000000000000000000085 -S3156003B2600000000000000000000000000000000075 -S3156003B2700000000000000000000000000000000065 -S3156003B2800000000000000000000000000000000055 -S3156003B2900000000000000000000000000000000045 -S3156003B2A00000000000000000000000000000000035 -S3156003B2B00000000000000000000000000000000025 -S3156003B2C00000000000000000000000000000000015 -S3156003B2D00000000000000000000000000000000005 -S3156003B2E000000000000000000000000000000000F5 -S3156003B2F000000000000000000000000000000000E5 -S3156003B30000000000000000000000000000000000D4 -S3156003B31000000000000000000000000000000000C4 -S3156003B32000000000000000000000000000000000B4 -S3156003B33000000000000000000000000000000000A4 -S3156003B3400000000000000000000000000000000094 -S3156003B3500000000000000000000000000000000084 -S3156003B3600000000000000000000000000000000074 -S3156003B3700000000000000000000000000000000064 -S3156003B3800000000000000000000000000000000054 -S3156003B3900000000000000000000000000000000044 -S3156003B3A00000000000000000000000000000000034 -S3156003B3B00000000000000000000000000000000024 -S3156003B3C00000000000000000000000000000000014 -S3156003B3D00000000000000000000000000000000004 -S3156003B3E000000000000000000000000000000000F4 -S3156003B3F000000000000000000000000000000000E4 -S3156003B40000000000000000000000000000000000D3 -S3156003B41000000000000000000000000000000000C3 -S3156003B42000000000000000000000000000000000B3 -S3156003B43000000000000000000000000000000000A3 -S3156003B4400000000000000000000000000000000093 -S3156003B4500000000000000000000000000000000083 -S3156003B4600000000000000000000000000000000073 -S3156003B4700000000000000000000000000000000063 -S3156003B4800000000000000000000000000000000053 -S3156003B4900000000000000000000000000000000043 -S3156003B4A00000000000000000000000000000000033 -S3156003B4B00000000000000000000000000000000023 -S3156003B4C00000000000000000000000000000000013 -S3156003B4D00000000000000000000000000000000003 -S3156003B4E000000000000000000000000000000000F3 -S3156003B4F000000000000000000000000000000000E3 -S3156003B50000000000000000000000000000000000D2 -S3156003B51000000000000000000000000000000000C2 -S3156003B52000000000000000000000000000000000B2 -S3156003B53000000000000000000000000000000000A2 -S3156003B5400000000000000000000000000000000092 -S3156003B5500000000000000000000000000000000082 -S3156003B5600000000000000000000000000000000072 -S3156003B5700000000000000000000000000000000062 -S3156003B5800000000000000000000000000000000052 -S3156003B5900000000000000000000000000000000042 -S3156003B5A00000000000000000000000000000000032 -S3156003B5B00000000000000000000000000000000022 -S3156003B5C00000000000000000000000000000000012 -S3156003B5D00000000000000000000000000000000002 -S3156003B5E000000000000000000000000000000000F2 -S3156003B5F000000000000000000000000000000000E2 -S3156003B60000000000000000000000000000000000D1 -S3156003B61000000000000000000000000000000000C1 -S3156003B62000000000000000000000000000000000B1 -S3156003B63000000000000000000000000000000000A1 -S3156003B6400000000000000000000000000000000091 -S3156003B6500000000000000000000000000000000081 -S3156003B6600000000000000000000000000000000071 -S3156003B6700000000000000000000000000000000061 -S3156003B6800000000000000000000000000000000051 -S3156003B6900000000000000000000000000000000041 -S3156003B6A00000000000000000000000000000000031 -S3156003B6B00000000000000000000000000000000021 -S3156003B6C00000000000000000000000000000000011 -S3156003B6D00000000000000000000000000000000001 -S3156003B6E000000000000000000000000000000000F1 -S3156003B6F000000000000000000000000000000000E1 -S3156003B70000000000000000000000000000000000D0 -S3156003B71000000000000000000000000000000000C0 -S3156003B72000000000000000000000000000000000B0 -S3156003B73000000000000000000000000000000000A0 -S3156003B7400000000000000000000000000000000090 -S3156003B7500000000000000000000000000000000080 -S3156003B7600000000000000000000000000000000070 -S3156003B7700000000000000000000000000000000060 -S3156003B7800000000000000000000000000000000050 -S3156003B7900000000000000000000000000000000040 -S3156003B7A00000000000000000000000000000000030 -S3156003B7B00000000000000000000000000000000020 -S3156003B7C00000000000000000000000000000000010 -S3156003B7D00000000000000000000000000000000000 -S3156003B7E000000000000000000000000000000000F0 -S3156003B7F000000000000000000000000000000000E0 -S3156003B80000000000000000000000000000000000CF -S3156003B81000000000000000000000000000000000BF -S3156003B82000000000000000000000000000000000AF -S3156003B830000000000000000000000000000000009F -S3156003B840000000000000000000000000000000008F -S3156003B850000000000000000000000000000000007F -S3156003B860000000000000000000000000000000006F -S3156003B870000000000000000000000000000000005F -S3156003B880000000000000000000000000000000004F -S3156003B890000000000000000000000000000000003F -S3156003B8A0000000000000000000000000000000002F -S3156003B8B0000000000000000000000000000000001F -S3156003B8C0000000000000000000000000000000000F -S3156003B8D000000000000000000000000000000000FF -S3156003B8E000000000000000000000000000000000EF -S3156003B8F000000000000000000000000000000000DF -S3156003B90000000000000000000000000000000000CE -S3156003B91000000000000000000000000000000000BE -S3156003B92000000000000000000000000000000000AE -S3156003B930000000000000000000000000000000009E -S3156003B940000000000000000000000000000000008E -S3156003B950000000000000000000000000000000007E -S3156003B960000000000000000000000000000000006E -S3156003B970000000000000000000000000000000005E -S3156003B980000000000000000000000000000000004E -S3156003B990000000000000000000000000000000003E -S3156003B9A0000000000000000000000000000000002E -S3156003B9B0000000000000000000000000000000001E -S3156003B9C0000000000000000000000000000000000E -S3156003B9D000000000000000000000000000000000FE -S3156003B9E000000000000000000000000000000000EE -S3156003B9F000000000000000000000000000000000DE -S3156003BA0000000000000000000000000000000000CD -S3156003BA1000000000000000000000000000000000BD -S3156003BA2000000000000000000000000000000000AD -S3156003BA30000000000000000000000000000000009D -S3156003BA40000000000000000000000000000000008D -S3156003BA50000000000000000000000000000000007D -S3156003BA60000000000000000000000000000000006D -S3156003BA70000000000000000000000000000000005D -S3156003BA80000000000000000000000000000000004D -S3156003BA90000000000000000000000000000000003D -S3156003BAA0000000000000000000000000000000002D -S3156003BAB0000000000000000000000000000000001D -S3156003BAC0000000000000000000000000000000000D -S3156003BAD000000000000000000000000000000000FD -S3156003BAE000000000000000000000000000000000ED -S3156003BAF000000000000000000000000000000000DD -S3156003BB0000000000000000000000000000000000CC -S3156003BB1000000000000000000000000000000000BC -S3156003BB2000000000000000000000000000000000AC -S3156003BB30000000000000000000000000000000009C -S3156003BB40000000000000000000000000000000008C -S3156003BB50000000000000000000000000000000007C -S3156003BB60000000000000000000000000000000006C -S3156003BB70000000000000000000000000000000005C -S3156003BB80000000000000000000000000000000004C -S3156003BB90000000000000000000000000000000003C -S3156003BBA0000000000000000000000000000000002C -S3156003BBB0000000000000000000000000000000001C -S3156003BBC0000000000000000000000000000000000C -S3156003BBD000000000000000000000000000000000FC -S3156003BBE000000000000000000000000000000000EC -S3156003BBF000000000000000000000000000000000DC -S3156003BC0000000000000000000000000000000000CB -S3156003BC1000000000000000000000000000000000BB -S3156003BC2000000000000000000000000000000000AB -S3156003BC30000000000000000000000000000000009B -S3156003BC40000000000000000000000000000000008B -S3156003BC50000000000000000000000000000000007B -S3156003BC60000000000000000000000000000000006B -S3156003BC70000000000000000000000000000000005B -S3156003BC80000000000000000000000000000000004B -S3156003BC90000000000000000000000000000000003B -S3156003BCA0000000000000000000000000000000002B -S3156003BCB0000000000000000000000000000000001B -S3156003BCC0000000000000000000000000000000000B -S3156003BCD000000000000000000000000000000000FB -S3156003BCE000000000000000000000000000000000EB -S3156003BCF000000000000000000000000000000000DB -S3156003BD0000000000000000000000000000000000CA -S3156003BD1000000000000000000000000000000000BA -S3156003BD2000000000000000000000000000000000AA -S3156003BD30000000000000000000000000000000009A -S3156003BD40000000000000000000000000000000008A -S3156003BD50000000000000000000000000000000007A -S3156003BD60000000000000000000000000000000006A -S3156003BD70000000000000000000000000000000005A -S3156003BD80000000000000000000000000000000004A -S3156003BD90000000000000000000000000000000003A -S3156003BDA0000000000000000000000000000000002A -S3156003BDB0000000000000000000000000000000001A -S3156003BDC0000000000000000000000000000000000A -S3156003BDD000000000000000000000000000000000FA -S3156003BDE000000000000000000000000000000000EA -S3156003BDF000000000000000000000000000000000DA -S3156003BE0000000000000000000000000000000000C9 -S3156003BE1000000000000000000000000000000000B9 -S3156003BE2000000000000000000000000000000000A9 -S3156003BE300000000000000000000000000000000099 -S3156003BE400000000000000000000000000000000089 -S3156003BE500000000000000000000000000000000079 -S3156003BE600000000000000000000000000000000069 -S3156003BE700000000000000000000000000000000059 -S3156003BE800000000000000000000000000000000049 -S3156003BE900000000000000000000000000000000039 -S3156003BEA00000000000000000000000000000000029 -S3156003BEB00000000000000000000000000000000019 -S3156003BEC00000000000000000000000000000000009 -S3156003BED000000000000000000000000000000000F9 -S3156003BEE000000000000000000000000000000000E9 -S3156003BEF000000000000000000000000000000000D9 -S3156003BF0000000000000000000000000000000000C8 -S3156003BF1000000000000000000000000000000000B8 -S3156003BF2000000000000000000000000000000000A8 -S3156003BF300000000000000000000000000000000098 -S3156003BF400000000000000000000000000000000088 -S3156003BF500000000000000000000000000000000078 -S3156003BF600000000000000000000000000000000068 -S3156003BF700000000000000000000000000000000058 -S3156003BF800000000000000000000000000000000048 -S3156003BF900000000000000000000000000000000038 -S3156003BFA00000000000000000000000000000000028 -S3156003BFB00000000000000000000000000000000018 -S3156003BFC00000000000000000000000000000000008 -S3156003BFD000000000000000000000000000000000F8 -S3156003BFE000000000000000000000000000000000E8 -S3156003BFF000000000000000000000000000000000D8 -S3156003C00000000000000000000000000000000000C7 -S3156003C01000000000000000000000000000000000B7 -S3156003C02000000000000000000000000000000000A7 -S3156003C0300000000000000000000000000000000097 -S3156003C0400000000000000000000000000000000087 -S3156003C0500000000000000000000000000000000077 -S3156003C0600000000000000000000000000000000067 -S3156003C0700000000000000000000000000000000057 -S3156003C0800000000000000000000000000000000047 -S3156003C0900000000000000000000000000000000037 -S3156003C0A00000000000000000000000000000000027 -S3156003C0B00000000000000000000000000000000017 -S3156003C0C00000000000000000000000000000000007 -S3156003C0D000000000000000000000000000000000F7 -S3156003C0E000000000000000000000000000000000E7 -S3156003C0F000000000000000000000000000000000D7 -S3156003C10000000000000000000000000000000000C6 -S3156003C11000000000000000000000000000000000B6 -S3156003C12000000000000000000000000000000000A6 -S3156003C1300000000000000000000000000000000096 -S3156003C1400000000000000000000000000000000086 -S3156003C1500000000000000000000000000000000076 -S3156003C1600000000000000000000000000000000066 -S3156003C1700000000000000000000000000000000056 -S3156003C1800000000000000000000000000000000046 -S3156003C1900000000000000000000000000000000036 -S3156003C1A00000000000000000000000000000000026 -S3156003C1B00000000000000000000000000000000016 -S3156003C1C00000000000000000000000000000000006 -S3156003C1D000000000000000000000000000000000F6 -S3156003C1E000000000000000000000000000000000E6 -S3156003C1F000000000000000000000000000000000D6 -S3156003C20000000000000000000000000000000000C5 -S3156003C21000000000000000000000000000000000B5 -S3156003C22000000000000000000000000000000000A5 -S3156003C2300000000000000000000000000000000095 -S3156003C2400000000000000000000000000000000085 -S3156003C2500000000000000000000000000000000075 -S3156003C2600000000000000000000000000000000065 -S3156003C2700000000000000000000000000000000055 -S3156003C2800000000000000000000000000000000045 -S3156003C2900000000000000000000000000000000035 -S3156003C2A00000000000000000000000000000000025 -S3156003C2B00000000000000000000000000000000015 -S3156003C2C00000000000000000000000000000000005 -S3156003C2D000000000000000000000000000000000F5 -S3156003C2E000000000000000000000000000000000E5 -S3156003C2F000000000000000000000000000000000D5 -S3156003C30000000000000000000000000000000000C4 -S3156003C31000000000000000000000000000000000B4 -S3156003C32000000000000000000000000000000000A4 -S3156003C3300000000000000000000000000000000094 -S3156003C3400000000000000000000000000000000084 -S3156003C3500000000000000000000000000000000074 -S3156003C3600000000000000000000000000000000064 -S3156003C3700000000000000000000000000000000054 -S3156003C3800000000000000000000000000000000044 -S3156003C3900000000000000000000000000000000034 -S3156003C3A00000000000000000000000000000000024 -S3156003C3B00000000000000000000000000000000014 -S3156003C3C00000000000000000000000000000000004 -S3156003C3D000000000000000000000000000000000F4 -S3156003C3E000000000000000000000000000000000E4 -S3156003C3F000000000000000000000000000000000D4 -S3156003C40000000000000000000000000000000000C3 -S3156003C41000000000000000000000000000000000B3 -S3156003C42000000000000000000000000000000000A3 -S3156003C4300000000000000000000000000000000093 -S3156003C4400000000000000000000000000000000083 -S3156003C4500000000000000000000000000000000073 -S3156003C4600000000000000000000000000000000063 -S3156003C4700000000000000000000000000000000053 -S3156003C4800000000000000000000000000000000043 -S3156003C4900000000000000000000000000000000033 -S3156003C4A00000000000000000000000000000000023 -S3156003C4B00000000000000000000000000000000013 -S3156003C4C00000000000000000000000000000000003 -S3156003C4D000000000000000000000000000000000F3 -S3156003C4E000000000000000000000000000000000E3 -S3156003C4F000000000000000000000000000000000D3 -S3156003C50000000000000000000000000000000000C2 -S3156003C51000000000000000000000000000000000B2 -S3156003C52000000000000000000000000000000000A2 -S3156003C5300000000000000000000000000000000092 -S3156003C5400000000000000000000000000000000082 -S3156003C5500000000000000000000000000000000072 -S3156003C5600000000000000000000000000000000062 -S3156003C5700000000000000000000000000000000052 -S3156003C5800000000000000000000000000000000042 -S3156003C5900000000000000000000000000000000032 -S3156003C5A00000000000000000000000000000000022 -S3156003C5B00000000000000000000000000000000012 -S3156003C5C00000000000000000000000000000000002 -S3156003C5D000000000000000000000000000000000F2 -S3156003C5E000000000000000000000000000000000E2 -S3156003C5F000000000000000000000000000000000D2 -S3156003C60000000000000000000000000000000000C1 -S3156003C61000000000000000000000000000000000B1 -S3156003C62000000000000000000000000000000000A1 -S3156003C6300000000000000000000000000000000091 -S3156003C6400000000000000000000000000000000081 -S3156003C6500000000000000000000000000000000071 -S3156003C6600000000000000000000000000000000061 -S3156003C6700000000000000000000000000000000051 -S3156003C6800000000000000000000000000000000041 -S3156003C6900000000000000000000000000000000031 -S3156003C6A00000000000000000000000000000000021 -S3156003C6B00000000000000000000000000000000011 -S3156003C6C00000000000000000000000000000000001 -S3156003C6D000000000000000000000000000000000F1 -S3156003C6E000000000000000000000000000000000E1 -S3156003C6F000000000000000000000000000000000D1 -S3156003C70000000000000000000000000000000000C0 -S3156003C71000000000000000000000000000000000B0 -S3156003C72000000000000000000000000000000000A0 -S3156003C7300000000000000000000000000000000090 -S3156003C7400000000000000000000000000000000080 -S3156003C7500000000000000000000000000000000070 -S3156003C7600000000000000000000000000000000060 -S3156003C7700000000000000000000000000000000050 -S3156003C7800000000000000000000000000000000040 -S3156003C7900000000000000000000000000000000030 -S3156003C7A00000000000000000000000000000000020 -S3156003C7B00000000000000000000000000000000010 -S3156003C7C00000000000000000000000000000000000 -S3156003C7D000000000000000000000000000000000F0 -S3156003C7E000000000000000000000000000000000E0 -S3156003C7F000000000000000000000000000000000D0 -S3156003C80000000000000000000000000000000000BF -S3156003C81000000000000000000000000000000000AF -S3156003C820000000000000000000000000000000009F -S3156003C830000000000000000000000000000000008F -S3156003C840000000000000000000000000000000007F -S3156003C850000000000000000000000000000000006F -S3156003C860000000000000000000000000000000005F -S3156003C870000000000000000000000000000000004F -S3156003C880000000000000000000000000000000003F -S3156003C890000000000000000000000000000000002F -S3156003C8A0000000000000000000000000000000001F -S3156003C8B0000000000000000000000000000000000F -S3156003C8C000000000000000000000000000000000FF -S3156003C8D000000000000000000000000000000000EF -S3156003C8E000000000000000000000000000000000DF -S3156003C8F000000000000000000000000000000000CF -S3156003C90000000000000000000000000000000000BE -S3156003C91000000000000000000000000000000000AE -S3156003C920000000000000000000000000000000009E -S3156003C930000000000000000000000000000000008E -S3156003C940000000000000000000000000000000007E -S3156003C950000000000000000000000000000000006E -S3156003C960000000000000000000000000000000005E -S3156003C970000000000000000000000000000000004E -S3156003C980000000000000000000000000000000003E -S3156003C990000000000000000000000000000000002E -S3156003C9A0000000000000000000000000000000001E -S3156003C9B0000000000000000000000000000000000E -S3156003C9C000000000000000000000000000000000FE -S3156003C9D000000000000000000000000000000000EE -S3156003C9E000000000000000000000000000000000DE -S3156003C9F000000000000000000000000000000000CE -S3156003CA0000000000000000000000000000000000BD -S3156003CA1000000000000000000000000000000000AD -S3156003CA20000000000000000000000000000000009D -S3156003CA30000000000000000000000000000000008D -S3156003CA40000000000000000000000000000000007D -S3156003CA50000000000000000000000000000000006D -S3156003CA60000000000000000000000000000000005D -S3156003CA70000000000000000000000000000000004D -S3156003CA80000000000000000000000000000000003D -S3156003CA90000000000000000000000000000000002D -S3156003CAA0000000000000000000000000000000001D -S3156003CAB0000000000000000000000000000000000D -S3156003CAC000000000000000000000000000000000FD -S3156003CAD000000000000000000000000000000000ED -S3156003CAE000000000000000000000000000000000DD -S3156003CAF000000000000000000000000000000000CD -S3156003CB0000000000000000000000000000000000BC -S3156003CB1000000000000000000000000000000000AC -S3156003CB20000000000000000000000000000000009C -S3156003CB30000000000000000000000000000000008C -S3156003CB40000000000000000000000000000000007C -S3156003CB50000000000000000000000000000000006C -S3156003CB60000000000000000000000000000000005C -S3156003CB70000000000000000000000000000000004C -S3156003CB80000000000000000000000000000000003C -S3156003CB90000000000000000000000000000000002C -S3156003CBA0000000000000000000000000000000001C -S3156003CBB0000000000000000000000000000000000C -S3156003CBC000000000000000000000000000000000FC -S3156003CBD000000000000000000000000000000000EC -S3156003CBE000000000000000000000000000000000DC -S3156003CBF000000000000000000000000000000000CC -S3156003CC0000000000000000000000000000000000BB -S3156003CC1000000000000000000000000000000000AB -S3156003CC20000000000000000000000000000000009B -S3156003CC30000000000000000000000000000000008B -S3156003CC40000000000000000000000000000000007B -S3156003CC50000000000000000000000000000000006B -S3156003CC60000000000000000000000000000000005B -S3156003CC70000000000000000000000000000000004B -S3156003CC80000000000000000000000000000000003B -S3156003CC90000000000000000000000000000000002B -S3156003CCA0000000000000000000000000000000001B -S3156003CCB0000000000000000000000000000000000B -S3156003CCC000000000000000000000000000000000FB -S3156003CCD000000000000000000000000000000000EB -S3156003CCE000000000000000000000000000000000DB -S3156003CCF000000000000000000000000000000000CB -S3156003CD0000000000000000000000000000000000BA -S3156003CD1000000000000000000000000000000000AA -S3156003CD20000000000000000000000000000000009A -S3156003CD30000000000000000000000000000000008A -S3156003CD40000000000000000000000000000000007A -S3156003CD50000000000000000000000000000000006A -S3156003CD60000000000000000000000000000000005A -S3156003CD70000000000000000000000000000000004A -S3156003CD80000000000000000000000000000000003A -S3156003CD90000000000000000000000000000000002A -S3156003CDA0000000000000000000000000000000001A -S3156003CDB0000000000000000000000000000000000A -S3156003CDC000000000000000000000000000000000FA -S3156003CDD000000000000000000000000000000000EA -S3156003CDE000000000000000000000000000000000DA -S3156003CDF000000000000000000000000000000000CA -S3156003CE0000000000000000000000000000000000B9 -S3156003CE1000000000000000000000000000000000A9 -S3156003CE200000000000000000000000000000000099 -S3156003CE300000000000000000000000000000000089 -S3156003CE400000000000000000000000000000000079 -S3156003CE500000000000000000000000000000000069 -S3156003CE600000000000000000000000000000000059 -S3156003CE700000000000000000000000000000000049 -S3156003CE800000000000000000000000000000000039 -S3156003CE900000000000000000000000000000000029 -S3156003CEA00000000000000000000000000000000019 -S3156003CEB00000000000000000000000000000000009 -S3156003CEC000000000000000000000000000000000F9 -S3156003CED000000000000000000000000000000000E9 -S3156003CEE000000000000000000000000000000000D9 -S3156003CEF000000000000000000000000000000000C9 -S3156003CF0000000000000000000000000000000000B8 -S3156003CF1000000000000000000000000000000000A8 -S3156003CF200000000000000000000000000000000098 -S3156003CF300000000000000000000000000000000088 -S3156003CF400000000000000000000000000000000078 -S3156003CF500000000000000000000000000000000068 -S3156003CF600000000000000000000000000000000058 -S3156003CF700000000000000000000000000000000048 -S3156003CF800000000000000000000000000000000038 -S3156003CF900000000000000000000000000000000028 -S3156003CFA00000000000000000000000000000000018 -S3156003CFB00000000000000000000000000000000008 -S3156003CFC000000000000000000000000000000000F8 -S3156003CFD000000000000000000000000000000000E8 -S3156003CFE000000000000000000000000000000000D8 -S3156003CFF000000000000000000000000000000000C8 -S3156003D00000000000000000000000000000000000B7 -S3156003D01000000000000000000000000000000000A7 -S3156003D0200000000000000000000000000000000097 -S3156003D0300000000000000000000000000000000087 -S3156003D0400000000000000000000000000000000077 -S3156003D0500000000000000000000000000000000067 -S3156003D0600000000000000000000000000000000057 -S3156003D0700000000000000000000000000000000047 -S3156003D0800000000000000000000000000000000037 -S3156003D0900000000000000000000000000000000027 -S3156003D0A00000000000000000000000000000000017 -S3156003D0B00000000000000000000000000000000007 -S3156003D0C000000000000000000000000000000000F7 -S3156003D0D000000000000000000000000000000000E7 -S3156003D0E000000000000000000000000000000000D7 -S3156003D0F000000000000000000000000000000000C7 -S3156003D10000000000000000000000000000000000B6 -S3156003D11000000000000000000000000000000000A6 -S3156003D1200000000000000000000000000000000096 -S3156003D1300000000000000000000000000000000086 -S3156003D1400000000000000000000000000000000076 -S3156003D1500000000000000000000000000000000066 -S3156003D1600000000000000000000000000000000056 -S3156003D1700000000000000000000000000000000046 -S3156003D1800000000000000000000000000000000036 -S3156003D1900000000000000000000000000000000026 -S3156003D1A00000000000000000000000000000000016 -S3156003D1B00000000000000000000000000000000006 -S3156003D1C000000000000000000000000000000000F6 -S3156003D1D000000000000000000000000000000000E6 -S3156003D1E000000000000000000000000000000000D6 -S3156003D1F000000000000000000000000000000000C6 -S3156003D20000000000000000000000000000000000B5 -S3156003D21000000000000000000000000000000000A5 -S3156003D2200000000000000000000000000000000095 -S3156003D2300000000000000000000000000000000085 -S3156003D2400000000000000000000000000000000075 -S3156003D2500000000000000000000000000000000065 -S3156003D2600000000000000000000000000000000055 -S3156003D2700000000000000000000000000000000045 -S3156003D2800000000000000000000000000000000035 -S3156003D2900000000000000000000000000000000025 -S3156003D2A00000000000000000000000000000000015 -S3156003D2B00000000000000000000000000000000005 -S3156003D2C000000000000000000000000000000000F5 -S3156003D2D000000000000000000000000000000000E5 -S3156003D2E000000000000000000000000000000000D5 -S3156003D2F000000000000000000000000000000000C5 -S3156003D30000000000000000000000000000000000B4 -S3156003D31000000000000000000000000000000000A4 -S3156003D3200000000000000000000000000000000094 -S3156003D3300000000000000000000000000000000084 -S3156003D3400000000000000000000000000000000074 -S3156003D3500000000000000000000000000000000064 -S3156003D3600000000000000000000000000000000054 -S3156003D3700000000000000000000000000000000044 -S3156003D3800000000000000000000000000000000034 -S3156003D3900000000000000000000000000000000024 -S3156003D3A00000000000000000000000000000000014 -S3156003D3B00000000000000000000000000000000004 -S3156003D3C000000000000000000000000000000000F4 -S3156003D3D000000000000000000000000000000000E4 -S3156003D3E000000000000000000000000000000000D4 -S3156003D3F000000000000000000000000000000000C4 -S3156003D40000000000000000000000000000000000B3 -S3156003D41000000000000000000000000000000000A3 -S3156003D4200000000000000000000000000000000093 -S3156003D4300000000000000000000000000000000083 -S3156003D4400000000000000000000000000000000073 -S3156003D4500000000000000000000000000000000063 -S3156003D4600000000000000000000000000000000053 -S3156003D4700000000000000000000000000000000043 -S3156003D4800000000000000000000000000000000033 -S3156003D4900000000000000000000000000000000023 -S3156003D4A00000000000000000000000000000000013 -S3156003D4B00000000000000000000000000000000003 -S3156003D4C000000000000000000000000000000000F3 -S3156003D4D000000000000000000000000000000000E3 -S3156003D4E000000000000000000000000000000000D3 -S3156003D4F000000000000000000000000000000000C3 -S3156003D50000000000000000000000000000000000B2 -S3156003D51000000000000000000000000000000000A2 -S3156003D5200000000000000000000000000000000092 -S3156003D5300000000000000000000000000000000082 -S3156003D5400000000000000000000000000000000072 -S3156003D5500000000000000000000000000000000062 -S3156003D5600000000000000000000000000000000052 -S3156003D5700000000000000000000000000000000042 -S3156003D5800000000000000000000000000000000032 -S3156003D5900000000000000000000000000000000022 -S3156003D5A00000000000000000000000000000000012 -S3156003D5B00000000000000000000000000000000002 -S3156003D5C000000000000000000000000000000000F2 -S3156003D5D000000000000000000000000000000000E2 -S3156003D5E000000000000000000000000000000000D2 -S3156003D5F000000000000000000000000000000000C2 -S3156003D60000000000000000000000000000000000B1 -S3156003D61000000000000000000000000000000000A1 -S3156003D6200000000000000000000000000000000091 -S3156003D6300000000000000000000000000000000081 -S3156003D6400000000000000000000000000000000071 -S3156003D6500000000000000000000000000000000061 -S3156003D6600000000000000000000000000000000051 -S3156003D6700000000000000000000000000000000041 -S3156003D6800000000000000000000000000000000031 -S3156003D6900000000000000000000000000000000021 -S3156003D6A00000000000000000000000000000000011 -S3156003D6B00000000000000000000000000000000001 -S3156003D6C000000000000000000000000000000000F1 -S3156003D6D000000000000000000000000000000000E1 -S3156003D6E000000000000000000000000000000000D1 -S3156003D6F000000000000000000000000000000000C1 -S3156003D70000000000000000000000000000000000B0 -S3156003D71000000000000000000000000000000000A0 -S3156003D7200000000000000000000000000000000090 -S3156003D7300000000000000000000000000000000080 -S3156003D7400000000000000000000000000000000070 -S3156003D7500000000000000000000000000000000060 -S3156003D7600000000000000000000000000000000050 -S3156003D7700000000000000000000000000000000040 -S3156003D7800000000000000000000000000000000030 -S3156003D7900000000000000000000000000000000020 -S3156003D7A00000000000000000000000000000000010 -S3156003D7B00000000000000000000000000000000000 -S3156003D7C000000000000000000000000000000000F0 -S3156003D7D000000000000000000000000000000000E0 -S3156003D7E000000000000000000000000000000000D0 -S3156003D7F000000000000000000000000000000000C0 -S3156003D80000000000000000000000000000000000AF -S3156003D810000000000000000000000000000000009F -S3156003D820000000000000000000000000000000008F -S3156003D830000000000000000000000000000000007F -S3156003D840000000000000000000000000000000006F -S3156003D850000000000000000000000000000000005F -S3156003D860000000000000000000000000000000004F -S3156003D870000000000000000000000000000000003F -S3156003D880000000000000000000000000000000002F -S3156003D890000000000000000000000000000000001F -S3156003D8A0000000000000000000000000000000000F -S3156003D8B000000000000000000000000000000000FF -S3156003D8C000000000000000000000000000000000EF -S3156003D8D000000000000000000000000000000000DF -S3156003D8E000000000000000000000000000000000CF -S3156003D8F000000000000000000000000000000000BF -S3156003D90000000000000000000000000000000000AE -S3156003D910000000000000000000000000000000009E -S3156003D920000000000000000000000000000000008E -S3156003D930000000000000000000000000000000007E -S3156003D940000000000000000000000000000000006E -S3156003D950000000000000000000000000000000005E -S3156003D960000000000000000000000000000000004E -S3156003D970000000000000000000000000000000003E -S3156003D980000000000000000000000000000000002E -S3156003D990000000000000000000000000000000001E -S3156003D9A0000000000000000000000000000000000E -S3156003D9B000000000000000000000000000000000FE -S3156003D9C000000000000000000000000000000000EE -S3156003D9D000000000000000000000000000000000DE -S3156003D9E000000000000000000000000000000000CE -S3156003D9F000000000000000000000000000000000BE -S3156003DA0000000000000000000000000000000000AD -S3156003DA10000000000000000000000000000000009D -S3156003DA20000000000000000000000000000000008D -S3156003DA30000000000000000000000000000000007D -S3156003DA40000000000000000000000000000000006D -S3156003DA50000000000000000000000000000000005D -S3156003DA60000000000000000000000000000000004D -S3156003DA70000000000000000000000000000000003D -S3156003DA80000000000000000000000000000000002D -S3156003DA90000000000000000000000000000000001D -S3156003DAA0000000000000000000000000000000000D -S3156003DAB000000000000000000000000000000000FD -S3156003DAC000000000000000000000000000000000ED -S3156003DAD000000000000000000000000000000000DD -S3156003DAE000000000000000000000000000000000CD -S3156003DAF000000000000000000000000000000000BD -S3156003DB0000000000000000000000000000000000AC -S3156003DB10000000000000000000000000000000009C -S3156003DB20000000000000000000000000000000008C -S3156003DB30000000000000000000000000000000007C -S3156003DB40000000000000000000000000000000006C -S3156003DB50000000000000000000000000000000005C -S3156003DB60000000000000000000000000000000004C -S3156003DB70000000000000000000000000000000003C -S3156003DB80000000000000000000000000000000002C -S3156003DB90000000000000000000000000000000001C -S3156003DBA0000000000000000000000000000000000C -S3156003DBB000000000000000000000000000000000FC -S3156003DBC000000000000000000000000000000000EC -S3156003DBD000000000000000000000000000000000DC -S3156003DBE000000000000000000000000000000000CC -S3156003DBF000000000000000000000000000000000BC -S3156003DC0000000000000000000000000000000000AB -S3156003DC10000000000000000000000000000000009B -S3156003DC20000000000000000000000000000000008B -S3156003DC30000000000000000000000000000000007B -S3156003DC40000000000000000000000000000000006B -S3156003DC50000000000000000000000000000000005B -S3156003DC60000000000000000000000000000000004B -S3156003DC70000000000000000000000000000000003B -S3156003DC80000000000000000000000000000000002B -S3156003DC90000000000000000000000000000000001B -S3156003DCA0000000000000000000000000000000000B -S3156003DCB000000000000000000000000000000000FB -S3156003DCC000000000000000000000000000000000EB -S3156003DCD000000000000000000000000000000000DB -S3156003DCE000000000000000000000000000000000CB -S3156003DCF000000000000000000000000000000000BB -S3156003DD0000000000000000000000000000000000AA -S3156003DD10000000000000000000000000000000009A -S3156003DD20000000000000000000000000000000008A -S3156003DD30000000000000000000000000000000007A -S3156003DD40000000000000000000000000000000006A -S3156003DD50000000000000000000000000000000005A -S3156003DD60000000000000000000000000000000004A -S3156003DD70000000000000000000000000000000003A -S3156003DD80000000000000000000000000000000002A -S3156003DD90000000000000000000000000000000001A -S3156003DDA0000000000000000000000000000000000A -S3156003DDB000000000000000000000000000000000FA -S3156003DDC000000000000000000000000000000000EA -S3156003DDD000000000000000000000000000000000DA -S3156003DDE000000000000000000000000000000000CA -S3156003DDF000000000000000000000000000000000BA -S3156003DE0000000000000000000000000000000000A9 -S3156003DE100000000000000000000000000000000099 -S3156003DE200000000000000000000000000000000089 -S3156003DE300000000000000000000000000000000079 -S3156003DE400000000000000000000000000000000069 -S3156003DE500000000000000000000000000000000059 -S3156003DE600000000000000000000000000000000049 -S3156003DE700000000000000000000000000000000039 -S3156003DE800000000000000000000000000000000029 -S3156003DE900000000000000000000000000000000019 -S3156003DEA00000000000000000000000000000000009 -S3156003DEB000000000000000000000000000000000F9 -S3156003DEC000000000000000000000000000000000E9 -S3156003DED000000000000000000000000000000000D9 -S3156003DEE000000000000000000000000000000000C9 -S3156003DEF000000000000000000000000000000000B9 -S3156003DF0000000000000000000000000000000000A8 -S3156003DF100000000000000000000000000000000098 -S3156003DF200000000000000000000000000000000088 -S3156003DF300000000000000000000000000000000078 -S3156003DF400000000000000000000000000000000068 -S3156003DF500000000000000000000000000000000058 -S3156003DF600000000000000000000000000000000048 -S3156003DF700000000000000000000000000000000038 -S3156003DF800000000000000000000000000000000028 -S3156003DF900000000000000000000000000000000018 -S3156003DFA00000000000000000000000000000000008 -S3156003DFB000000000000000000000000000000000F8 -S3156003DFC000000000000000000000000000000000E8 -S3156003DFD000000000000000000000000000000000D8 -S3156003DFE000000000000000000000000000000000C8 -S3156003DFF000000000000000000000000000000000B8 -S3156003E00000000000000000000000000000000000A7 -S3156003E0100000000000000000000000000000000097 -S3156003E0200000000000000000000000000000000087 -S3156003E0300000000000000000000000000000000077 -S3156003E0400000000000000000000000000000000067 -S3156003E0500000000000000000000000000000000057 -S3156003E0600000000000000000000000000000000047 -S3156003E0700000000000000000000000000000000037 -S3156003E0800000000000000000000000000000000027 -S3156003E0900000000000000000000000000000000017 -S3156003E0A00000000000000000000000000000000007 -S3156003E0B000000000000000000000000000000000F7 -S3156003E0C000000000000000000000000000000000E7 -S3156003E0D000000000000000000000000000000000D7 -S3156003E0E000000000000000000000000000000000C7 -S3156003E0F000000000000000000000000000000000B7 -S3156003E10000000000000000000000000000000000A6 -S3156003E1100000000000000000000000000000000096 -S3156003E1200000000000000000000000000000000086 -S3156003E1300000000000000000000000000000000076 -S3156003E1400000000000000000000000000000000066 -S3156003E1500000000000000000000000000000000056 -S3156003E1600000000000000000000000000000000046 -S3156003E1700000000000000000000000000000000036 -S3156003E1800000000000000000000000000000000026 -S3156003E1900000000000000000000000000000000016 -S3156003E1A00000000000000000000000000000000006 -S3156003E1B000000000000000000000000000000000F6 -S3156003E1C000000000000000000000000000000000E6 -S3156003E1D000000000000000000000000000000000D6 -S3156003E1E000000000000000000000000000000000C6 -S3156003E1F000000000000000000000000000000000B6 -S3156003E20000000000000000000000000000000000A5 -S3156003E2100000000000000000000000000000000095 -S3156003E2200000000000000000000000000000000085 -S3156003E2300000000000000000000000000000000075 -S3156003E2400000000000000000000000000000000065 -S3156003E2500000000000000000000000000000000055 -S3156003E2600000000000000000000000000000000045 -S3156003E2700000000000000000000000000000000035 -S3156003E2800000000000000000000000000000000025 -S3156003E2900000000000000000000000000000000015 -S3156003E2A00000000000000000000000000000000005 -S3156003E2B000000000000000000000000000000000F5 -S3156003E2C000000000000000000000000000000000E5 -S3156003E2D000000000000000000000000000000000D5 -S3156003E2E000000000000000000000000000000000C5 -S3156003E2F000000000000000000000000000000000B5 -S3156003E30000000000000000000000000000000000A4 -S3156003E3100000000000000000000000000000000094 -S3156003E3200000000000000000000000000000000084 -S3156003E3300000000000000000000000000000000074 -S3156003E3400000000000000000000000000000000064 -S3156003E3500000000000000000000000000000000054 -S3156003E3600000000000000000000000000000000044 -S3156003E3700000000000000000000000000000000034 -S3156003E3800000000000000000000000000000000024 -S3156003E3900000000000000000000000000000000014 -S3156003E3A00000000000000000000000000000000004 -S3156003E3B000000000000000000000000000000000F4 -S3156003E3C000000000000000000000000000000000E4 -S3156003E3D000000000000000000000000000000000D4 -S3156003E3E000000000000000000000000000000000C4 -S3156003E3F000000000000000000000000000000000B4 -S3156003E40000000000000000000000000000000000A3 -S3156003E4100000000000000000000000000000000093 -S3156003E4200000000000000000000000000000000083 -S3156003E4300000000000000000000000000000000073 -S3156003E4400000000000000000000000000000000063 -S3156003E4500000000000000000000000000000000053 -S3156003E4600000000000000000000000000000000043 -S3156003E4700000000000000000000000000000000033 -S3156003E4800000000000000000000000000000000023 -S3156003E4900000000000000000000000000000000013 -S3156003E4A00000000000000000000000000000000003 -S3156003E4B000000000000000000000000000000000F3 -S3156003E4C000000000000000000000000000000000E3 -S3156003E4D000000000000000000000000000000000D3 -S3156003E4E000000000000000000000000000000000C3 -S3156003E4F000000000000000000000000000000000B3 -S3156003E50000000000000000000000000000000000A2 -S3156003E5100000000000000000000000000000000092 -S3156003E5200000000000000000000000000000000082 -S3156003E5300000000000000000000000000000000072 -S3156003E5400000000000000000000000000000000062 -S3156003E5500000000000000000000000000000000052 -S3156003E5600000000000000000000000000000000042 -S3156003E5700000000000000000000000000000000032 -S3156003E5800000000000000000000000000000000022 -S3156003E5900000000000000000000000000000000012 -S3156003E5A00000000000000000000000000000000002 -S3156003E5B000000000000000000000000000000000F2 -S3156003E5C000000000000000000000000000000000E2 -S3156003E5D000000000000000000000000000000000D2 -S3156003E5E000000000000000000000000000000000C2 -S3156003E5F000000000000000000000000000000000B2 -S3156003E60000000000000000000000000000000000A1 -S3156003E6100000000000000000000000000000000091 -S3156003E6200000000000000000000000000000000081 -S3156003E6300000000000000000000000000000000071 -S3156003E6400000000000000000000000000000000061 -S3156003E6500000000000000000000000000000000051 -S3156003E6600000000000000000000000000000000041 -S3156003E6700000000000000000000000000000000031 -S3156003E6800000000000000000000000000000000021 -S3156003E6900000000000000000000000000000000011 -S3156003E6A00000000000000000000000000000000001 -S3156003E6B000000000000000000000000000000000F1 -S3156003E6C000000000000000000000000000000000E1 -S3156003E6D000000000000000000000000000000000D1 -S3156003E6E000000000000000000000000000000000C1 -S3156003E6F000000000000000000000000000000000B1 -S3156003E70000000000000000000000000000000000A0 -S3156003E7100000000000000000000000000000000090 -S3156003E7200000000000000000000000000000000080 -S3156003E7300000000000000000000000000000000070 -S3156003E7400000000000000000000000000000000060 -S3156003E7500000000000000000000000000000000050 -S3156003E7600000000000000000000000000000000040 -S3156003E7700000000000000000000000000000000030 -S3156003E7800000000000000000000000000000000020 -S3156003E7900000000000000000000000000000000010 -S3156003E7A00000000000000000000000000000000000 -S3156003E7B000000000000000000000000000000000F0 -S3156003E7C000000000000000000000000000000000E0 -S3156003E7D000000000000000000000000000000000D0 -S3156003E7E000000000000000000000000000000000C0 -S3156003E7F000000000000000000000000000000000B0 -S3156003E800000000000000000000000000000000009F -S3156003E810000000000000000000000000000000008F -S3156003E820000000000000000000000000000000007F -S3156003E830000000000000000000000000000000006F -S3156003E840000000000000000000000000000000005F -S3156003E850000000000000000000000000000000004F -S3156003E860000000000000000000000000000000003F -S3156003E870000000000000000000000000000000002F -S3156003E880000000000000000000000000000000001F -S3156003E890000000000000000000000000000000000F -S3156003E8A000000000000000000000000000000000FF -S3156003E8B000000000000000000000000000000000EF -S3156003E8C000000000000000000000000000000000DF -S3156003E8D000000000000000000000000000000000CF -S3156003E8E000000000000000000000000000000000BF -S3156003E8F000000000000000000000000000000000AF -S3156003E900000000000000000000000000000000009E -S3156003E910000000000000000000000000000000008E -S3156003E920000000000000000000000000000000007E -S3156003E930000000000000000000000000000000006E -S3156003E940000000000000000000000000000000005E -S3156003E950000000000000000000000000000000004E -S3156003E960000000000000000000000000000000003E -S3156003E970000000000000000000000000000000002E -S3156003E980000000000000000000000000000000001E -S3156003E990000000000000000000000000000000000E -S3156003E9A000000000000000000000000000000000FE -S3156003E9B000000000000000000000000000000000EE -S3156003E9C000000000000000000000000000000000DE -S3156003E9D000000000000000000000000000000000CE -S3156003E9E000000000000000000000000000000000BE -S3156003E9F000000000000000000000000000000000AE -S3156003EA00000000000000000000000000000000009D -S3156003EA10000000000000000000000000000000008D -S3156003EA20000000000000000000000000000000007D -S3156003EA30000000000000000000000000000000006D -S3156003EA40000000000000000000000000000000005D -S3156003EA50000000000000000000000000000000004D -S3156003EA60000000000000000000000000000000003D -S3156003EA70000000000000000000000000000000002D -S3156003EA80000000000000000000000000000000001D -S3156003EA90000000000000000000000000000000000D -S3156003EAA000000000000000000000000000000000FD -S3156003EAB000000000000000000000000000000000ED -S3156003EAC000000000000000000000000000000000DD -S3156003EAD000000000000000000000000000000000CD -S3156003EAE000000000000000000000000000000000BD -S3156003EAF000000000000000000000000000000000AD -S3156003EB00000000000000000000000000000000009C -S3156003EB10000000000000000000000000000000008C -S3156003EB20000000000000000000000000000000007C -S3156003EB30000000000000000000000000000000006C -S3156003EB40000000000000000000000000000000005C -S3156003EB50000000000000000000000000000000004C -S3156003EB60000000000000000000000000000000003C -S3156003EB70000000000000000000000000000000002C -S3156003EB80000000000000000000000000000000001C -S3156003EB90000000000000000000000000000000000C -S3156003EBA000000000000000000000000000000000FC -S3156003EBB000000000000000000000000000000000EC -S3156003EBC000000000000000000000000000000000DC -S3156003EBD000000000000000000000000000000000CC -S3156003EBE000000000000000000000000000000000BC -S3156003EBF000000000000000000000000000000000AC -S3156003EC00000000000000000000000000000000009B -S3156003EC10000000000000000000000000000000008B -S3156003EC20000000000000000000000000000000007B -S3156003EC30000000000000000000000000000000006B -S3156003EC40000000000000000000000000000000005B -S3156003EC50000000000000000000000000000000004B -S3156003EC60000000000000000000000000000000003B -S3156003EC70000000000000000000000000000000002B -S3156003EC80000000000000000000000000000000001B -S3156003EC90000000000000000000000000000000000B -S3156003ECA000000000000000000000000000000000FB -S3156003ECB000000000000000000000000000000000EB -S3156003ECC000000000000000000000000000000000DB -S3156003ECD000000000000000000000000000000000CB -S3156003ECE000000000000000000000000000000000BB -S3156003ECF000000000000000000000000000000000AB -S3156003ED00000000000000000000000000000000009A -S3156003ED10000000000000000000000000000000008A -S3156003ED20000000000000000000000000000000007A -S3156003ED30000000000000000000000000000000006A -S3156003ED40000000000000000000000000000000005A -S3156003ED50000000000000000000000000000000004A -S3156003ED60000000000000000000000000000000003A -S3156003ED70000000000000000000000000000000002A -S3156003ED80000000000000000000000000000000001A -S3156003ED90000000000000000000000000000000000A -S3156003EDA000000000000000000000000000000000FA -S3156003EDB000000000000000000000000000000000EA -S3156003EDC000000000000000000000000000000000DA -S3156003EDD000000000000000000000000000000000CA -S3156003EDE000000000000000000000000000000000BA -S3156003EDF000000000000000000000000000000000AA -S3156003EE000000000000000000000000000000000099 -S3156003EE100000000000000000000000000000000089 -S3156003EE200000000000000000000000000000000079 -S3156003EE300000000000000000000000000000000069 -S3156003EE400000000000000000000000000000000059 -S3156003EE500000000000000000000000000000000049 -S3156003EE600000000000000000000000000000000039 -S3156003EE700000000000000000000000000000000029 -S3156003EE800000000000000000000000000000000019 -S3156003EE900000000000000000000000000000000009 -S3156003EEA000000000000000000000000000000000F9 -S3156003EEB000000000000000000000000000000000E9 -S3156003EEC000000000000000000000000000000000D9 -S3156003EED000000000000000000000000000000000C9 -S3156003EEE000000000000000000000000000000000B9 -S3156003EEF000000000000000000000000000000000A9 -S3156003EF000000000000000000000000000000000098 -S3156003EF100000000000000000000000000000000088 -S3156003EF200000000000000000000000000000000078 -S3156003EF300000000000000000000000000000000068 -S3156003EF400000000000000000000000000000000058 -S3156003EF500000000000000000000000000000000048 -S3156003EF600000000000000000000000000000000038 -S3156003EF700000000000000000000000000000000028 -S3156003EF800000000000000000000000000000000018 -S3156003EF900000000000000000000000000000000008 -S3156003EFA000000000000000000000000000000000F8 -S3156003EFB000000000000000000000000000000000E8 -S3156003EFC000000000000000000000000000000000D8 -S3156003EFD000000000000000000000000000000000C8 -S3156003EFE000000000000000000000000000000000B8 -S3156003EFF000000000000000000000000000000000A8 -S3156003F0000000000000000000000000000000000097 -S3156003F0100000000000000000000000000000000087 -S3156003F0200000000000000000000000000000000077 -S3156003F0300000000000000000000000000000000067 -S3156003F0400000000000000000000000000000000057 -S3156003F0500000000000000000000000000000000047 -S3156003F0600000000000000000000000000000000037 -S3156003F0700000000000000000000000000000000027 -S3156003F0800000000000000000000000000000000017 -S3156003F0900000000000000000000000000000000007 -S3156003F0A000000000000000000000000000000000F7 -S3156003F0B000000000000000000000000000000000E7 -S3156003F0C000000000000000000000000000000000D7 -S3156003F0D000000000000000000000000000000000C7 -S3156003F0E000000000000000000000000000000000B7 -S3156003F0F000000000000000000000000000000000A7 -S3156003F1000000000000000000000000000000000096 -S3156003F1100000000000000000000000000000000086 -S3156003F1200000000000000000000000000000000076 -S3156003F1300000000000000000000000000000000066 -S3156003F1400000000000000000000000000000000056 -S3156003F1500000000000000000000000000000000046 -S3156003F1600000000000000000000000000000000036 -S3156003F1700000000000000000000000000000000026 -S3156003F1800000000000000000000000000000000016 -S3156003F1900000000000000000000000000000000006 -S3156003F1A000000000000000000000000000000000F6 -S3156003F1B000000000000000000000000000000000E6 -S3156003F1C000000000000000000000000000000000D6 -S3156003F1D000000000000000000000000000000000C6 -S3156003F1E000000000000000000000000000000000B6 -S3156003F1F000000000000000000000000000000000A6 -S3156003F2000000000000000000000000000000000095 -S3156003F2100000000000000000000000000000000085 -S3156003F2200000000000000000000000000000000075 -S3156003F2300000000000000000000000000000000065 -S3156003F2400000000000000000000000000000000055 -S3156003F2500000000000000000000000000000000045 -S3156003F2600000000000000000000000000000000035 -S3156003F2700000000000000000000000000000000025 -S3156003F2800000000000000000000000000000000015 -S3156003F2900000000000000000000000000000000005 -S3156003F2A000000000000000000000000000000000F5 -S3156003F2B000000000000000000000000000000000E5 -S3156003F2C000000000000000000000000000000000D5 -S3156003F2D000000000000000000000000000000000C5 -S3156003F2E000000000000000000000000000000000B5 -S3156003F2F000000000000000000000000000000000A5 -S3156003F3000000000000000000000000000000000094 -S3156003F3100000000000000000000000000000000084 -S3156003F3200000000000000000000000000000000074 -S3156003F3300000000000000000000000000000000064 -S3156003F3400000000000000000000000000000000054 -S3156003F3500000000000000000000000000000000044 -S3156003F3600000000000000000000000000000000034 -S3156003F3700000000000000000000000000000000024 -S3156003F3800000000000000000000000000000000014 -S3156003F3900000000000000000000000000000000004 -S3156003F3A000000000000000000000000000000000F4 -S3156003F3B000000000000000000000000000000000E4 -S3156003F3C000000000000000000000000000000000D4 -S3156003F3D000000000000000000000000000000000C4 -S3156003F3E000000000000000000000000000000000B4 -S3156003F3F000000000000000000000000000000000A4 -S3156003F4000000000000000000000000000000000093 -S3156003F4100000000000000000000000000000000083 -S3156003F4200000000000000000000000000000000073 -S3156003F4300000000000000000000000000000000063 -S3156003F4400000000000000000000000000000000053 -S3156003F4500000000000000000000000000000000043 -S3156003F4600000000000000000000000000000000033 -S3156003F4700000000000000000000000000000000023 -S3156003F4800000000000000000000000000000000013 -S3156003F4900000000000000000000000000000000003 -S3156003F4A000000000000000000000000000000000F3 -S3156003F4B000000000000000000000000000000000E3 -S3156003F4C000000000000000000000000000000000D3 -S3156003F4D000000000000000000000000000000000C3 -S3156003F4E000000000000000000000000000000000B3 -S3156003F4F000000000000000000000000000000000A3 -S3156003F5000000000000000000000000000000000092 -S3156003F5100000000000000000000000000000000082 -S3156003F5200000000000000000000000000000000072 -S3156003F5300000000000000000000000000000000062 -S3156003F5400000000000000000000000000000000052 -S3156003F5500000000000000000000000000000000042 -S3156003F5600000000000000000000000000000000032 -S3156003F5700000000000000000000000000000000022 -S3156003F5800000000000000000000000000000000012 -S3156003F5900000000000000000000000000000000002 -S3156003F5A000000000000000000000000000000000F2 -S3156003F5B000000000000000000000000000000000E2 -S3156003F5C000000000000000000000000000000000D2 -S3156003F5D000000000000000000000000000000000C2 -S3156003F5E000000000000000000000000000000000B2 -S3156003F5F000000000000000000000000000000000A2 -S3156003F6000000000000000000000000000000000091 -S3156003F6100000000000000000000000000000000081 -S3156003F6200000000000000000000000000000000071 -S3156003F6300000000000000000000000000000000061 -S3156003F6400000000000000000000000000000000051 -S3156003F6500000000000000000000000000000000041 -S3156003F6600000000000000000000000000000000031 -S3156003F6700000000000000000000000000000000021 -S3156003F6800000000000000000000000000000000011 -S3156003F6900000000000000000000000000000000001 -S3156003F6A000000000000000000000000000000000F1 -S3156003F6B000000000000000000000000000000000E1 -S3156003F6C000000000000000000000000000000000D1 -S3156003F6D000000000000000000000000000000000C1 -S3156003F6E000000000000000000000000000000000B1 -S3156003F6F000000000000000000000000000000000A1 -S3156003F7000000000000000000000000000000000090 -S3156003F7100000000000000000000000000000000080 -S3156003F7200000000000000000000000000000000070 -S3156003F7300000000000000000000000000000000060 -S3156003F7400000000000000000000000000000000050 -S3156003F7500000000000000000000000000000000040 -S3156003F7600000000000000000000000000000000030 -S3156003F7700000000000000000000000000000000020 -S3156003F7800000000000000000000000000000000010 -S3156003F7900000000000000000000000000000000000 -S3156003F7A000000000000000000000000000000000F0 -S3156003F7B000000000000000000000000000000000E0 -S3156003F7C000000000000000000000000000000000D0 -S3156003F7D000000000000000000000000000000000C0 -S3156003F7E000000000000000000000000000000000B0 -S3156003F7F000000000000000000000000000000000A0 -S3156003F800000000000000000000000000000000008F -S3156003F810000000000000000000000000000000007F -S3156003F820000000000000000000000000000000006F -S3156003F830000000000000000000000000000000005F -S3156003F840000000000000000000000000000000004F -S3156003F850000000000000000000000000000000003F -S3156003F860000000000000000000000000000000002F -S3156003F870000000000000000000000000000000001F -S3156003F880000000000000000000000000000000000F -S3156003F89000000000000000000000000000000000FF -S3156003F8A000000000000000000000000000000000EF -S3156003F8B000000000000000000000000000000000DF -S3156003F8C000000000000000000000000000000000CF -S3156003F8D000000000000000000000000000000000BF -S3156003F8E000000000000000000000000000000000AF -S3156003F8F0000000000000000000000000000000009F -S3156003F900000000000000000000000000000000008E -S3156003F910000000000000000000000000000000007E -S3156003F920000000000000000000000000000000006E -S3156003F930000000000000000000000000000000005E -S3156003F940000000000000000000000000000000004E -S3156003F950000000000000000000000000000000003E -S3156003F960000000000000000000000000000000002E -S3156003F970000000000000000000000000000000001E -S3156003F980000000000000000000000000000000000E -S3156003F99000000000000000000000000000000000FE -S3156003F9A000000000000000000000000000000000EE -S3156003F9B000000000000000000000000000000000DE -S3156003F9C000000000000000000000000000000000CE -S3156003F9D000000000000000000000000000000000BE -S3156003F9E000000000000000000000000000000000AE -S3156003F9F0000000000000000000000000000000009E -S3156003FA00000000000000000000000000000000008D -S3156003FA10000000000000000000000000000000007D -S3156003FA20000000000000000000000000000000006D -S3156003FA30000000000000000000000000000000005D -S3156003FA40000000000000000000000000000000004D -S3156003FA50000000000000000000000000000000003D -S3156003FA60000000000000000000000000000000002D -S3156003FA70000000000000000000000000000000001D -S3156003FA80000000000000000000000000000000000D -S3156003FA9000000000000000000000000000000000FD -S3156003FAA000000000000000000000000000000000ED -S3156003FAB000000000000000000000000000000000DD -S3156003FAC000000000000000000000000000000000CD -S3156003FAD000000000000000000000000000000000BD -S3156003FAE000000000000000000000000000000000AD -S3156003FAF0000000000000000000000000000000009D -S3156003FB00000000000000000000000000000000008C -S3156003FB10000000000000000000000000000000007C -S3156003FB20000000000000000000000000000000006C -S3156003FB30000000000000000000000000000000005C -S3156003FB40000000000000000000000000000000004C -S3156003FB50000000000000000000000000000000003C -S3156003FB60000000000000000000000000000000002C -S3156003FB70000000000000000000000000000000001C -S3156003FB80000000000000000000000000000000000C -S3156003FB9000000000000000000000000000000000FC -S3156003FBA000000000000000000000000000000000EC -S3156003FBB000000000000000000000000000000000DC -S3156003FBC000000000000000000000000000000000CC -S3156003FBD000000000000000000000000000000000BC -S3156003FBE000000000000000000000000000000000AC -S3156003FBF0000000000000000000000000000000009C -S3156003FC00000000000000000000000000000000008B -S3156003FC10000000000000000000000000000000007B -S3156003FC20000000000000000000000000000000006B -S3156003FC30000000000000000000000000000000005B -S3156003FC40000000000000000000000000000000004B -S3156003FC50000000000000000000000000000000003B -S3156003FC60000000000000000000000000000000002B -S3156003FC70000000000000000000000000000000001B -S3156003FC80000000000000000000000000000000000B -S3156003FC9000000000000000000000000000000000FB -S3156003FCA000000000000000000000000000000000EB -S3156003FCB000000000000000000000000000000000DB -S3156003FCC000000000000000000000000000000000CB -S3156003FCD000000000000000000000000000000000BB -S3156003FCE000000000000000000000000000000000AB -S3156003FCF0000000000000000000000000000000009B -S3156003FD00000000000000000000000000000000008A -S3156003FD10000000000000000000000000000000007A -S3156003FD20000000000000000000000000000000006A -S3156003FD30000000000000000000000000000000005A -S3156003FD40000000000000000000000000000000004A -S3156003FD50000000000000000000000000000000003A -S3156003FD60000000000000000000000000000000002A -S3156003FD70000000000000000000000000000000001A -S3156003FD80000000000000000000000000000000000A -S3156003FD9000000000000000000000000000000000FA -S3156003FDA000000000000000000000000000000000EA -S3156003FDB000000000000000000000000000000000DA -S3156003FDC000000000000000000000000000000000CA -S3156003FDD000000000000000000000000000000000BA -S3156003FDE000000000000000000000000000000000AA -S3156003FDF0000000000000000000000000000000009A -S3156003FE000000000000000000000000000000000089 -S3156003FE100000000000000000000000000000000079 -S3156003FE200000000000000000000000000000000069 -S3156003FE300000000000000000000000000000000059 -S3156003FE400000000000000000000000000000000049 -S3156003FE500000000000000000000000000000000039 -S3156003FE600000000000000000000000000000000029 -S3156003FE700000000000000000000000000000000019 -S3156003FE800000000000000000000000000000000009 -S3156003FE9000000000000000000000000000000000F9 -S3156003FEA000000000000000000000000000000000E9 -S3156003FEB000000000000000000000000000000000D9 -S3156003FEC000000000000000000000000000000000C9 -S3156003FED000000000000000000000000000000000B9 -S3156003FEE000000000000000000000000000000000A9 -S3156003FEF00000000000000000000000000000000099 -S3156003FF000000000000000000000000000000000088 -S3156003FF100000000000000000000000000000000078 -S3156003FF200000000000000000000000000000000068 -S3156003FF300000000000000000000000000000000058 -S3156003FF400000000000000000000000000000000048 -S3156003FF500000000000000000000000000000000038 -S3156003FF600000000000000000000000000000000028 -S3156003FF700000000000000000000000000000000018 -S3156003FF800000000000000000000000000000000008 -S3156003FF9000000000000000000000000000000000F8 -S3156003FFA000000000000000000000000000000000E8 -S3156003FFB000000000000000000000000000000000D8 -S3156003FFC000000000000000000000000000000000C8 -S3156003FFD000000000000000000000000000000000B8 -S3156003FFE000000000000000000000000000000000A8 -S3156003FFF00000000000000000000000000000000098 -S315600400000000000000000000000000000000000086 -S315600400100000000000000000000000000000000076 -S315600400200000000000000000000000000000000066 -S315600400300000000000000000000000000000000056 -S315600400400000000000000000000000000000000046 -S315600400500000000000000000000000000000000036 -S315600400600000000000000000000000000000000026 -S315600400700000000000000000000000000000000016 -S315600400800000000000000000000000000000000006 -S3156004009000000000000000000000000000000000F6 -S315600400A000000000000000000000000000000000E6 -S315600400B000000000000000000000000000000000D6 -S315600400C000000000000000000000000000000000C6 -S315600400D000000000000000000000000000000000B6 -S315600400E000000000000000000000000000000000A6 -S315600400F00000000000000000000000000000000096 -S315600401000000000000000000000000000000000085 -S315600401100000000000000000000000000000000075 -S315600401200000000000000000000000000000000065 -S315600401300000000000000000000000000000000055 -S315600401400000000000000000000000000000000045 -S315600401500000000000000000000000000000000035 -S315600401600000000000000000000000000000000025 -S315600401700000000000000000000000000000000015 -S315600401800000000000000000000000000000000005 -S3156004019000000000000000000000000000000000F5 -S315600401A000000000000000000000000000000000E5 -S315600401B000000000000000000000000000000000D5 -S315600401C000000000000000000000000000000000C5 -S315600401D000000000000000000000000000000000B5 -S315600401E000000000000000000000000000000000A5 -S315600401F00000000000000000000000000000000095 -S315600402000000000000000000000000000000000084 -S315600402100000000000000000000000000000000074 -S315600402200000000000000000000000000000000064 -S315600402300000000000000000000000000000000054 -S315600402400000000000000000000000000000000044 -S315600402500000000000000000000000000000000034 -S315600402600000000000000000000000000000000024 -S315600402700000000000000000000000000000000014 -S315600402800000000000000000000000000000000004 -S3156004029000000000000000000000000000000000F4 -S315600402A000000000000000000000000000000000E4 -S315600402B000000000000000000000000000000000D4 -S315600402C000000000000000000000000000000000C4 -S315600402D000000000000000000000000000000000B4 -S315600402E000000000000000000000000000000000A4 -S315600402F00000000000000000000000000000000094 -S315600403000000000000000000000000000000000083 -S315600403100000000000000000000000000000000073 -S315600403200000000000000000000000000000000063 -S315600403300000000000000000000000000000000053 -S315600403400000000000000000000000000000000043 -S315600403500000000000000000000000000000000033 -S315600403600000000000000000000000000000000023 -S315600403700000000000000000000000000000000013 -S315600403800000000000000000000000000000000003 -S3156004039000000000000000000000000000000000F3 -S315600403A000000000000000000000000000000000E3 -S315600403B000000000000000000000000000000000D3 -S315600403C000000000000000000000000000000000C3 -S315600403D000000000000000000000000000000000B3 -S315600403E000000000000000000000000000000000A3 -S315600403F00000000000000000000000000000000093 -S315600404000000000000000000000000000000000082 -S315600404100000000000000000000000000000000072 -S315600404200000000000000000000000000000000062 -S315600404300000000000000000000000000000000052 -S315600404400000000000000000000000000000000042 -S315600404500000000000000000000000000000000032 -S315600404600000000000000000000000000000000022 -S315600404700000000000000000000000000000000012 -S315600404800000000000000000000000000000000002 -S3156004049000000000000000000000000000000000F2 -S315600404A000000000000000000000000000000000E2 -S315600404B000000000000000000000000000000000D2 -S315600404C000000000000000000000000000000000C2 -S315600404D000000000000000000000000000000000B2 -S315600404E000000000000000000000000000000000A2 -S315600404F00000000000000000000000000000000092 -S315600405000000000000000000000000000000000081 -S315600405100000000000000000000000000000000071 -S315600405200000000000000000000000000000000061 -S315600405300000000000000000000000000000000051 -S315600405400000000000000000000000000000000041 -S315600405500000000000000000000000000000000031 -S315600405600000000000000000000000000000000021 -S315600405700000000000000000000000000000000011 -S315600405800000000000000000000000000000000001 -S3156004059000000000000000000000000000000000F1 -S315600405A000000000000000000000000000000000E1 -S315600405B000000000000000000000000000000000D1 -S315600405C000000000000000000000000000000000C1 -S315600405D000000000000000000000000000000000B1 -S315600405E000000000000000000000000000000000A1 -S315600405F00000000000000000000000000000000091 -S315600406000000000000000000000000000000000080 -S315600406100000000000000000000000000000000070 -S315600406200000000000000000000000000000000060 -S315600406300000000000000000000000000000000050 -S315600406400000000000000000000000000000000040 -S315600406500000000000000000000000000000000030 -S315600406600000000000000000000000000000000020 -S315600406700000000000000000000000000000000010 -S315600406800000000000000000000000000000000000 -S3156004069000000000000000000000000000000000F0 -S315600406A000000000000000000000000000000000E0 -S315600406B000000000000000000000000000000000D0 -S315600406C000000000000000000000000000000000C0 -S315600406D000000000000000000000000000000000B0 -S315600406E000000000000000000000000000000000A0 -S315600406F00000000000000000000000000000000090 -S31560040700000000000000000000000000000000007F -S31560040710000000000000000000000000000000006F -S31560040720000000000000000000000000000000005F -S31560040730000000000000000000000000000000004F -S31560040740000000000000000000000000000000003F -S31560040750000000000000000000000000000000002F -S31560040760000000000000000000000000000000001F -S31560040770000000000000000000000000000000000F -S3156004078000000000000000000000000000000000FF -S3156004079000000000000000000000000000000000EF -S315600407A000000000000000000000000000000000DF -S315600407B000000000000000000000000000000000CF -S315600407C000000000000000000000000000000000BF -S315600407D000000000000000000000000000000000AF -S315600407E0000000000000000000000000000000009F -S315600407F0000000000000000000000000000000008F -S31560040800000000000000000000000000000000007E -S31560040810000000000000000000000000000000006E -S31560040820000000000000000000000000000000005E -S31560040830000000000000000000000000000000004E -S31560040840000000000000000000000000000000003E -S31560040850000000000000000000000000000000002E -S31560040860000000000000000000000000000000001E -S31560040870000000000000000000000000000000000E -S3156004088000000000000000000000000000000000FE -S3156004089000000000000000000000000000000000EE -S315600408A000000000000000000000000000000000DE -S315600408B000000000000000000000000000000000CE -S315600408C000000000000000000000000000000000BE -S315600408D000000000000000000000000000000000AE -S315600408E0000000000000000000000000000000009E -S315600408F0000000000000000000000000000000008E -S31560040900000000000000000000000000000000007D -S31560040910000000000000000000000000000000006D -S31560040920000000000000000000000000000000005D -S31560040930000000000000000000000000000000004D -S31560040940000000000000000000000000000000003D -S31560040950000000000000000000000000000000002D -S31560040960000000000000000000000000000000001D -S31560040970000000000000000000000000000000000D -S3156004098000000000000000000000000000000000FD -S3156004099000000000000000000000000000000000ED -S315600409A000000000000000000000000000000000DD -S315600409B000000000000000000000000000000000CD -S315600409C000000000000000000000000000000000BD -S315600409D000000000000000000000000000000000AD -S315600409E0000000000000000000000000000000009D -S315600409F0000000000000000000000000000000008D -S31560040A00000000000000000000000000000000007C -S31560040A10000000000000000000000000000000006C -S31560040A20000000000000000000000000000000005C -S31560040A30000000000000000000000000000000004C -S31560040A40000000000000000000000000000000003C -S31560040A50000000000000000000000000000000002C -S31560040A60000000000000000000000000000000001C -S31560040A70000000000000000000000000000000000C -S31560040A8000000000000000000000000000000000FC -S31560040A9000000000000000000000000000000000EC -S31560040AA000000000000000000000000000000000DC -S31560040AB000000000000000000000000000000000CC -S31560040AC000000000000000000000000000000000BC -S31560040AD000000000000000000000000000000000AC -S31560040AE0000000000000000000000000000000009C -S31560040AF0000000000000000000000000000000008C -S31560040B00000000000000000000000000000000007B -S31560040B10000000000000000000000000000000006B -S31560040B20000000000000000000000000000000005B -S31560040B30000000000000000000000000000000004B -S31560040B40000000000000000000000000000000003B -S31560040B50000000000000000000000000000000002B -S31560040B60000000000000000000000000000000001B -S31560040B70000000000000000000000000000000000B -S31560040B8000000000000000000000000000000000FB -S31560040B9000000000000000000000000000000000EB -S31560040BA000000000000000000000000000000000DB -S31560040BB000000000000000000000000000000000CB -S31560040BC000000000000000000000000000000000BB -S31560040BD000000000000000000000000000000000AB -S31560040BE0000000000000000000000000000000009B -S31560040BF0000000000000000000000000000000008B -S31560040C00000000000000000000000000000000007A -S31560040C10000000000000000000000000000000006A -S31560040C20000000000000000000000000000000005A -S31560040C30000000000000000000000000000000004A -S31560040C40000000000000000000000000000000003A -S31560040C50000000000000000000000000000000002A -S31560040C60000000000000000000000000000000001A -S31560040C70000000000000000000000000000000000A -S31560040C8000000000000000000000000000000000FA -S31560040C9000000000000000000000000000000000EA -S31560040CA000000000000000000000000000000000DA -S31560040CB000000000000000000000000000000000CA -S31560040CC000000000000000000000000000000000BA -S31560040CD000000000000000000000000000000000AA -S31560040CE0000000000000000000000000000000009A -S31560040CF0000000000000000000000000000000008A -S31560040D000000000000000000000000000000000079 -S31560040D100000000000000000000000000000000069 -S31560040D200000000000000000000000000000000059 -S31560040D300000000000000000000000000000000049 -S31560040D400000000000000000000000000000000039 -S31560040D500000000000000000000000000000000029 -S31560040D600000000000000000000000000000000019 -S31560040D700000000000000000000000000000000009 -S31560040D8000000000000000000000000000000000F9 -S31560040D9000000000000000000000000000000000E9 -S31560040DA000000000000000000000000000000000D9 -S31560040DB000000000000000000000000000000000C9 -S31560040DC000000000000000000000000000000000B9 -S31560040DD000000000000000000000000000000000A9 -S31560040DE00000000000000000000000000000000099 -S31560040DF00000000000000000000000000000000089 -S31560040E000000000000000000000000000000000078 -S31560040E100000000000000000000000000000000068 -S31560040E200000000000000000000000000000000058 -S31560040E300000000000000000000000000000000048 -S31560040E400000000000000000000000000000000038 -S31560040E500000000000000000000000000000000028 -S31560040E600000000000000000000000000000000018 -S31560040E700000000000000000000000000000000008 -S31560040E8000000000000000000000000000000000F8 -S31560040E9000000000000000000000000000000000E8 -S31560040EA000000000000000000000000000000000D8 -S31560040EB000000000000000000000000000000000C8 -S31560040EC000000000000000000000000000000000B8 -S31560040ED000000000000000000000000000000000A8 -S31560040EE00000000000000000000000000000000098 -S31560040EF00000000000000000000000000000000088 -S31560040F000000000000000000000000000000000077 -S31560040F100000000000000000000000000000000067 -S31560040F200000000000000000000000000000000057 -S31560040F300000000000000000000000000000000047 -S31560040F400000000000000000000000000000000037 -S31560040F500000000000000000000000000000000027 -S31560040F600000000000000000000000000000000017 -S31560040F700000000000000000000000000000000007 -S31560040F8000000000000000000000000000000000F7 -S31560040F9000000000000000000000000000000000E7 -S31560040FA000000000000000000000000000000000D7 -S31560040FB000000000000000000000000000000000C7 -S31560040FC000000000000000000000000000000000B7 -S31560040FD000000000000000000000000000000000A7 -S31560040FE00000000000000000000000000000000097 -S31560040FF00000000000000000000000000000000087 -S315600410000000000000000000000000000000000076 -S315600410100000000000000000000000000000000066 -S315600410200000000000000000000000000000000056 -S315600410300000000000000000000000000000000046 -S315600410400000000000000000000000000000000036 -S315600410500000000000000000000000000000000026 -S315600410600000000000000000000000000000000016 -S315600410700000000000000000000000000000000006 -S3156004108000000000000000000000000000000000F6 -S3156004109000000000000000000000000000000000E6 -S315600410A000000000000000000000000000000000D6 -S315600410B000000000000000000000000000000000C6 -S315600410C000000000000000000000000000000000B6 -S315600410D000000000000000000000000000000000A6 -S315600410E00000000000000000000000000000000096 -S315600410F00000000000000000000000000000000086 -S315600411000000000000000000000000000000000075 -S315600411100000000000000000000000000000000065 -S315600411200000000000000000000000000000000055 -S315600411300000000000000000000000000000000045 -S315600411400000000000000000000000000000000035 -S315600411500000000000000000000000000000000025 -S315600411600000000000000000000000000000000015 -S315600411700000000000000000000000000000000005 -S3156004118000000000000000000000000000000000F5 -S3156004119000000000000000000000000000000000E5 -S315600411A000000000000000000000000000000000D5 -S315600411B000000000000000000000000000000000C5 -S315600411C000000000000000000000000000000000B5 -S315600411D000000000000000000000000000000000A5 -S315600411E00000000000000000000000000000000095 -S315600411F00000000000000000000000000000000085 -S315600412000000000000000000000000000000000074 -S315600412100000000000000000000000000000000064 -S315600412200000000000000000000000000000000054 -S315600412300000000000000000000000000000000044 -S315600412400000000000000000000000000000000034 -S315600412500000000000000000000000000000000024 -S315600412600000000000000000000000000000000014 -S315600412700000000000000000000000000000000004 -S3156004128000000000000000000000000000000000F4 -S3156004129000000000000000000000000000000000E4 -S315600412A000000000000000000000000000000000D4 -S315600412B000000000000000000000000000000000C4 -S315600412C000000000000000000000000000000000B4 -S315600412D000000000000000000000000000000000A4 -S315600412E00000000000000000000000000000000094 -S315600412F00000000000000000000000000000000084 -S315600413000000000000000000000000000000000073 -S315600413100000000000000000000000000000000063 -S315600413200000000000000000000000000000000053 -S315600413300000000000000000000000000000000043 -S315600413400000000000000000000000000000000033 -S315600413500000000000000000000000000000000023 -S315600413600000000000000000000000000000000013 -S315600413700000000000000000000000000000000003 -S3156004138000000000000000000000000000000000F3 -S3156004139000000000000000000000000000000000E3 -S315600413A000000000000000000000000000000000D3 -S315600413B000000000000000000000000000000000C3 -S315600413C000000000000000000000000000000000B3 -S315600413D000000000000000000000000000000000A3 -S315600413E00000000000000000000000000000000093 -S315600413F00000000000000000000000000000000083 -S315600414000000000000000000000000000000000072 -S315600414100000000000000000000000000000000062 -S315600414200000000000000000000000000000000052 -S315600414300000000000000000000000000000000042 -S315600414400000000000000000000000000000000032 -S315600414500000000000000000000000000000000022 -S315600414600000000000000000000000000000000012 -S315600414700000000000000000000000000000000002 -S3156004148000000000000000000000000000000000F2 -S3156004149000000000000000000000000000000000E2 -S315600414A000000000000000000000000000000000D2 -S315600414B000000000000000000000000000000000C2 -S315600414C000000000000000000000000000000000B2 -S315600414D000000000000000000000000000000000A2 -S315600414E00000000000000000000000000000000092 -S315600414F00000000000000000000000000000000082 -S315600415000000000000000000000000000000000071 -S315600415100000000000000000000000000000000061 -S315600415200000000000000000000000000000000051 -S315600415300000000000000000000000000000000041 -S315600415400000000000000000000000000000000031 -S315600415500000000000000000000000000000000021 -S315600415600000000000000000000000000000000011 -S315600415700000000000000000000000000000000001 -S3156004158000000000000000000000000000000000F1 -S3156004159000000000000000000000000000000000E1 -S315600415A000000000000000000000000000000000D1 -S315600415B000000000000000000000000000000000C1 -S315600415C000000000000000000000000000000000B1 -S315600415D000000000000000000000000000000000A1 -S315600415E00000000000000000000000000000000091 -S315600415F00000000000000000000000000000000081 -S315600416000000000000000000000000000000000070 -S315600416100000000000000000000000000000000060 -S315600416200000000000000000000000000000000050 -S315600416300000000000000000000000000000000040 -S315600416400000000000000000000000000000000030 -S315600416500000000000000000000000000000000020 -S315600416600000000000000000000000000000000010 -S315600416700000000000000000000000000000000000 -S3156004168000000000000000000000000000000000F0 -S3156004169000000000000000000000000000000000E0 -S315600416A000000000000000000000000000000000D0 -S315600416B000000000000000000000000000000000C0 -S315600416C000000000000000000000000000000000B0 -S315600416D000000000000000000000000000000000A0 -S315600416E00000000000000000000000000000000090 -S315600416F00000000000000000000000000000000080 -S31560041700000000000000000000000000000000006F -S31560041710000000000000000000000000000000005F -S31560041720000000000000000000000000000000004F -S31560041730000000000000000000000000000000003F -S31560041740000000000000000000000000000000002F -S31560041750000000000000000000000000000000001F -S31560041760000000000000000000000000000000000F -S3156004177000000000000000000000000000000000FF -S3156004178000000000000000000000000000000000EF -S3156004179000000000000000000000000000000000DF -S315600417A000000000000000000000000000000000CF -S315600417B000000000000000000000000000000000BF -S315600417C000000000000000000000000000000000AF -S315600417D0000000000000000000000000000000009F -S315600417E0000000000000000000000000000000008F -S315600417F0000000000000000000000000000000007F -S31560041800000000000000000000000000000000006E -S31560041810000000000000000000000000000000005E -S31560041820000000000000000000000000000000004E -S31560041830000000000000000000000000000000003E -S31560041840000000000000000000000000000000002E -S31560041850000000000000000000000000000000001E -S31560041860000000000000000000000000000000000E -S3156004187000000000000000000000000000000000FE -S3156004188000000000000000000000000000000000EE -S3156004189000000000000000000000000000000000DE -S315600418A000000000000000000000000000000000CE -S315600418B000000000000000000000000000000000BE -S315600418C000000000000000000000000000000000AE -S315600418D0000000000000000000000000000000009E -S315600418E0000000000000000000000000000000008E -S315600418F0000000000000000000000000000000007E -S31560041900000000000000000000000000000000006D -S31560041910000000000000000000000000000000005D -S31560041920000000000000000000000000000000004D -S31560041930000000000000000000000000000000003D -S31560041940000000000000000000000000000000002D -S31560041950000000000000000000000000000000001D -S31560041960000000000000000000000000000000000D -S3156004197000000000000000000000000000000000FD -S3156004198000000000000000000000000000000000ED -S3156004199000000000000000000000000000000000DD -S315600419A000000000000000000000000000000000CD -S315600419B000000000000000000000000000000000BD -S315600419C000000000000000000000000000000000AD -S315600419D0000000000000000000000000000000009D -S315600419E0000000000000000000000000000000008D -S315600419F0000000000000000000000000000000007D -S31560041A00000000000000000000000000000000006C -S31560041A10000000000000000000000000000000005C -S31560041A20000000000000000000000000000000004C -S31560041A30000000000000000000000000000000003C -S31560041A40000000000000000000000000000000002C -S31560041A50000000000000000000000000000000001C -S31560041A60000000000000000000000000000000000C -S31560041A7000000000000000000000000000000000FC -S31560041A8000000000000000000000000000000000EC -S31560041A9000000000000000000000000000000000DC -S31560041AA000000000000000000000000000000000CC -S31560041AB000000000000000000000000000000000BC -S31560041AC000000000000000000000000000000000AC -S31560041AD0000000000000000000000000000000009C -S31560041AE0000000000000000000000000000000008C -S31560041AF0000000000000000000000000000000007C -S31560041B00000000000000000000000000000000006B -S31560041B10000000000000000000000000000000005B -S31560041B20000000000000000000000000000000004B -S31560041B30000000000000000000000000000000003B -S31560041B40000000000000000000000000000000002B -S31560041B50000000000000000000000000000000001B -S31560041B60000000000000000000000000000000000B -S31560041B7000000000000000000000000000000000FB -S31560041B8000000000000000000000000000000000EB -S31560041B9000000000000000000000000000000000DB -S31560041BA000000000000000000000000000000000CB -S31560041BB000000000000000000000000000000000BB -S31560041BC000000000000000000000000000000000AB -S31560041BD0000000000000000000000000000000009B -S31560041BE0000000000000000000000000000000008B -S31560041BF0000000000000000000000000000000007B -S31560041C00000000000000000000000000000000006A -S31560041C10000000000000000000000000000000005A -S31560041C20000000000000000000000000000000004A -S31560041C30000000000000000000000000000000003A -S31560041C40000000000000000000000000000000002A -S31560041C50000000000000000000000000000000001A -S31560041C60000000000000000000000000000000000A -S31560041C7000000000000000000000000000000000FA -S31560041C8000000000000000000000000000000000EA -S31560041C9000000000000000000000000000000000DA -S31560041CA000000000000000000000000000000000CA -S31560041CB000000000000000000000000000000000BA -S31560041CC000000000000000000000000000000000AA -S31560041CD0000000000000000000000000000000009A -S31560041CE0000000000000000000000000000000008A -S31560041CF0000000000000000000000000000000007A -S31560041D000000000000000000000000000000000069 -S31560041D100000000000000000000000000000000059 -S31560041D200000000000000000000000000000000049 -S31560041D300000000000000000000000000000000039 -S31560041D400000000000000000000000000000000029 -S31560041D500000000000000000000000000000000019 -S31560041D600000000000000000000000000000000009 -S31560041D7000000000000000000000000000000000F9 -S31560041D8000000000000000000000000000000000E9 -S31560041D9000000000000000000000000000000000D9 -S31560041DA000000000000000000000000000000000C9 -S31560041DB000000000000000000000000000000000B9 -S31560041DC000000000000000000000000000000000A9 -S31560041DD00000000000000000000000000000000099 -S31560041DE00000000000000000000000000000000089 -S31560041DF00000000000000000000000000000000079 -S31560041E000000000000000000000000000000000068 -S31560041E100000000000000000000000000000000058 -S31560041E200000000000000000000000000000000048 -S31560041E300000000000000000000000000000000038 -S31560041E400000000000000000000000000000000028 -S31560041E500000000000000000000000000000000018 -S31560041E600000000000000000000000000000000008 -S31560041E7000000000000000000000000000000000F8 -S31560041E8000000000000000000000000000000000E8 -S31560041E9000000000000000000000000000000000D8 -S31560041EA000000000000000000000000000000000C8 -S31560041EB000000000000000000000000000000000B8 -S31560041EC000000000000000000000000000000000A8 -S31560041ED00000000000000000000000000000000098 -S31560041EE00000000000000000000000000000000088 -S31560041EF00000000000000000000000000000000078 -S31560041F000000000000000000000000000000000067 -S31560041F100000000000000000000000000000000057 -S31560041F200000000000000000000000000000000047 -S31560041F300000000000000000000000000000000037 -S31560041F400000000000000000000000000000000027 -S31560041F500000000000000000000000000000000017 -S31560041F600000000000000000000000000000000007 -S31560041F7000000000000000000000000000000000F7 -S31560041F8000000000000000000000000000000000E7 -S31560041F9000000000000000000000000000000000D7 -S31560041FA000000000000000000000000000000000C7 -S31560041FB000000000000000000000000000000000B7 -S31560041FC000000000000000000000000000000000A7 -S31560041FD00000000000000000000000000000000097 -S31560041FE00000000000000000000000000000000087 -S31560041FF00000000000000000000000000000000077 -S315600420000000000000000000000000000000000066 -S315600420100000000000000000000000000000000056 -S315600420200000000000000000000000000000000046 -S315600420300000000000000000000000000000000036 -S315600420400000000000000000000000000000000026 -S315600420500000000000000000000000000000000016 -S315600420600000000000000000000000000000000006 -S3156004207000000000000000000000000000000000F6 -S3156004208000000000000000000000000000000000E6 -S3156004209000000000000000000000000000000000D6 -S315600420A000000000000000000000000000000000C6 -S315600420B000000000000000000000000000000000B6 -S315600420C000000000000000000000000000000000A6 -S315600420D00000000000000000000000000000000096 -S315600420E00000000000000000000000000000000086 -S315600420F00000000000000000000000000000000076 -S315600421000000000000000000000000000000000065 -S315600421100000000000000000000000000000000055 -S315600421200000000000000000000000000000000045 -S315600421300000000000000000000000000000000035 -S315600421400000000000000000000000000000000025 -S315600421500000000000000000000000000000000015 -S315600421600000000000000000000000000000000005 -S3156004217000000000000000000000000000000000F5 -S3156004218000000000000000000000000000000000E5 -S3156004219000000000000000000000000000000000D5 -S315600421A000000000000000000000000000000000C5 -S315600421B000000000000000000000000000000000B5 -S315600421C000000000000000000000000000000000A5 -S315600421D00000000000000000000000000000000095 -S315600421E00000000000000000000000000000000085 -S315600421F00000000000000000000000000000000075 -S315600422000000000000000000000000000000000064 -S315600422100000000000000000000000000000000054 -S315600422200000000000000000000000000000000044 -S315600422300000000000000000000000000000000034 -S315600422400000000000000000000000000000000024 -S315600422500000000000000000000000000000000014 -S315600422600000000000000000000000000000000004 -S3156004227000000000000000000000000000000000F4 -S3156004228000000000000000000000000000000000E4 -S3156004229000000000000000000000000000000000D4 -S315600422A000000000000000000000000000000000C4 -S315600422B000000000000000000000000000000000B4 -S315600422C000000000000000000000000000000000A4 -S315600422D00000000000000000000000000000000094 -S315600422E00000000000000000000000000000000084 -S315600422F00000000000000000000000000000000074 -S315600423000000000000000000000000000000000063 -S315600423100000000000000000000000000000000053 -S315600423200000000000000000000000000000000043 -S315600423300000000000000000000000000000000033 -S315600423400000000000000000000000000000000023 -S315600423500000000000000000000000000000000013 -S315600423600000000000000000000000000000000003 -S3156004237000000000000000000000000000000000F3 -S3156004238000000000000000000000000000000000E3 -S3156004239000000000000000000000000000000000D3 -S315600423A000000000000000000000000000000000C3 -S315600423B000000000000000000000000000000000B3 -S315600423C000000000000000000000000000000000A3 -S315600423D00000000000000000000000000000000093 -S315600423E00000000000000000000000000000000083 -S315600423F00000000000000000000000000000000073 -S315600424000000000000000000000000000000000062 -S315600424100000000000000000000000000000000052 -S315600424200000000000000000000000000000000042 -S315600424300000000000000000000000000000000032 -S315600424400000000000000000000000000000000022 -S315600424500000000000000000000000000000000012 -S315600424600000000000000000000000000000000002 -S3156004247000000000000000000000000000000000F2 -S3156004248000000000000000000000000000000000E2 -S3156004249000000000000000000000000000000000D2 -S315600424A000000000000000000000000000000000C2 -S315600424B000000000000000000000000000000000B2 -S315600424C000000000000000000000000000000000A2 -S315600424D00000000000000000000000000000000092 -S315600424E00000000000000000000000000000000082 -S315600424F00000000000000000000000000000000072 -S315600425000000000000000000000000000000000061 -S315600425100000000000000000000000000000000051 -S315600425200000000000000000000000000000000041 -S315600425300000000000000000000000000000000031 -S315600425400000000000000000000000000000000021 -S315600425500000000000000000000000000000000011 -S315600425600000000000000000000000000000000001 -S3156004257000000000000000000000000000000000F1 -S3156004258000000000000000000000000000000000E1 -S3156004259000000000000000000000000000000000D1 -S315600425A000000000000000000000000000000000C1 -S315600425B000000000000000000000000000000000B1 -S315600425C000000000000000000000000000000000A1 -S315600425D00000000000000000000000000000000091 -S315600425E00000000000000000000000000000000081 -S315600425F00000000000000000000000000000000071 -S315600426000000000000000000000000000000000060 -S315600426100000000000000000000000000000000050 -S315600426200000000000000000000000000000000040 -S315600426300000000000000000000000000000000030 -S315600426400000000000000000000000000000000020 -S315600426500000000000000000000000000000000010 -S315600426600000000000000000000000000000000000 -S3156004267000000000000000000000000000000000F0 -S3156004268000000000000000000000000000000000E0 -S3156004269000000000000000000000000000000000D0 -S315600426A000000000000000000000000000000000C0 -S315600426B000000000000000000000000000000000B0 -S315600426C000000000000000000000000000000000A0 -S315600426D00000000000000000000000000000000090 -S315600426E00000000000000000000000000000000080 -S315600426F00000000000000000000000000000000070 -S31560042700000000000000000000000000000000005F -S31560042710000000000000000000000000000000004F -S31560042720000000000000000000000000000000003F -S31560042730000000000000000000000000000000002F -S31560042740000000000000000000000000000000001F -S31560042750000000000000000000000000000000000F -S3156004276000000000000000000000000000000000FF -S3156004277000000000000000000000000000000000EF -S3156004278000000000000000000000000000000000DF -S3156004279000000000000000000000000000000000CF -S315600427A000000000000000000000000000000000BF -S315600427B000000000000000000000000000000000AF -S315600427C0000000000000000000000000000000009F -S315600427D0000000000000000000000000000000008F -S315600427E0000000000000000000000000000000007F -S315600427F0000000000000000000000000000000006F -S31560042800000000000000000000000000000000005E -S31560042810000000000000000000000000000000004E -S31560042820000000000000000000000000000000003E -S31560042830000000000000000000000000000000002E -S31560042840000000000000000000000000000000001E -S31560042850000000000000000000000000000000000E -S3156004286000000000000000000000000000000000FE -S3156004287000000000000000000000000000000000EE -S3156004288000000000000000000000000000000000DE -S3156004289000000000000000000000000000000000CE -S315600428A000000000000000000000000000000000BE -S315600428B000000000000000000000000000000000AE -S315600428C0000000000000000000000000000000009E -S315600428D0000000000000000000000000000000008E -S315600428E0000000000000000000000000000000007E -S315600428F0000000000000000000000000000000006E -S31560042900000000000000000000000000000000005D -S31560042910000000000000000000000000000000004D -S31560042920000000000000000000000000000000003D -S31560042930000000000000000000000000000000002D -S31560042940000000000000000000000000000000001D -S31560042950000000000000000000000000000000000D -S3156004296000000000000000000000000000000000FD -S3156004297000000000000000000000000000000000ED -S3156004298000000000000000000000000000000000DD -S3156004299000000000000000000000000000000000CD -S315600429A000000000000000000000000000000000BD -S315600429B000000000000000000000000000000000AD -S315600429C0000000000000000000000000000000009D -S315600429D0000000000000000000000000000000008D -S315600429E0000000000000000000000000000000007D -S315600429F0000000000000000000000000000000006D -S31560042A00000000000000000000000000000000005C -S31560042A10000000000000000000000000000000004C -S31560042A20000000000000000000000000000000003C -S31560042A30000000000000000000000000000000002C -S31560042A40000000000000000000000000000000001C -S31560042A50000000000000000000000000000000000C -S31560042A6000000000000000000000000000000000FC -S31560042A7000000000000000000000000000000000EC -S31560042A8000000000000000000000000000000000DC -S31560042A9000000000000000000000000000000000CC -S31560042AA000000000000000000000000000000000BC -S31560042AB000000000000000000000000000000000AC -S31560042AC0000000000000000000000000000000009C -S31560042AD0000000000000000000000000000000008C -S31560042AE0000000000000000000000000000000007C -S31560042AF0000000000000000000000000000000006C -S31560042B00000000000000000000000000000000005B -S31560042B10000000000000000000000000000000004B -S31560042B20000000000000000000000000000000003B -S31560042B30000000000000000000000000000000002B -S31560042B40000000000000000000000000000000001B -S31560042B50000000000000000000000000000000000B -S31560042B6000000000000000000000000000000000FB -S31560042B7000000000000000000000000000000000EB -S31560042B8000000000000000000000000000000000DB -S31560042B9000000000000000000000000000000000CB -S31560042BA000000000000000000000000000000000BB -S31560042BB000000000000000000000000000000000AB -S31560042BC0000000000000000000000000000000009B -S31560042BD0000000000000000000000000000000008B -S31560042BE0000000000000000000000000000000007B -S31560042BF0000000000000000000000000000000006B -S31560042C00000000000000000000000000000000005A -S31560042C10000000000000000000000000000000004A -S31560042C20000000000000000000000000000000003A -S31560042C30000000000000000000000000000000002A -S31560042C40000000000000000000000000000000001A -S31560042C50000000000000000000000000000000000A -S31560042C6000000000000000000000000000000000FA -S31560042C7000000000000000000000000000000000EA -S31560042C8000000000000000000000000000000000DA -S31560042C9000000000000000000000000000000000CA -S31560042CA000000000000000000000000000000000BA -S31560042CB000000000000000000000000000000000AA -S31560042CC0000000000000000000000000000000009A -S31560042CD0000000000000000000000000000000008A -S31560042CE0000000000000000000000000000000007A -S31560042CF0000000000000000000000000000000006A -S31560042D000000000000000000000000000000000059 -S31560042D100000000000000000000000000000000049 -S31560042D200000000000000000000000000000000039 -S31560042D300000000000000000000000000000000029 -S31560042D400000000000000000000000000000000019 -S31560042D500000000000000000000000000000000009 -S31560042D6000000000000000000000000000000000F9 -S31560042D7000000000000000000000000000000000E9 -S31560042D8000000000000000000000000000000000D9 -S31560042D9000000000000000000000000000000000C9 -S31560042DA000000000000000000000000000000000B9 -S31560042DB000000000000000000000000000000000A9 -S31560042DC00000000000000000000000000000000099 -S31560042DD00000000000000000000000000000000089 -S31560042DE00000000000000000000000000000000079 -S31560042DF00000000000000000000000000000000069 -S31560042E000000000000000000000000000000000058 -S31560042E100000000000000000000000000000000048 -S31560042E200000000000000000000000000000000038 -S31560042E300000000000000000000000000000000028 -S31560042E400000000000000000000000000000000018 -S31560042E500000000000000000000000000000000008 -S31560042E6000000000000000000000000000000000F8 -S31560042E7000000000000000000000000000000000E8 -S31560042E8000000000000000000000000000000000D8 -S31560042E9000000000000000000000000000000000C8 -S31560042EA000000000000000000000000000000000B8 -S31560042EB000000000000000000000000000000000A8 -S31560042EC00000000000000000000000000000000098 -S31560042ED00000000000000000000000000000000088 -S31560042EE00000000000000000000000000000000078 -S31560042EF00000000000000000000000000000000068 -S31560042F000000000000000000000000000000000057 -S31560042F100000000000000000000000000000000047 -S31560042F200000000000000000000000000000000037 -S31560042F300000000000000000000000000000000027 -S31560042F400000000000000000000000000000000017 -S31560042F500000000000000000000000000000000007 -S31560042F6000000000000000000000000000000000F7 -S31560042F7000000000000000000000000000000000E7 -S31560042F8000000000000000000000000000000000D7 -S31560042F9000000000000000000000000000000000C7 -S31560042FA000000000000000000000000000000000B7 -S31560042FB000000000000000000000000000000000A7 -S31560042FC00000000000000000000000000000000097 -S31560042FD00000000000000000000000000000000087 -S31560042FE00000000000000000000000000000000077 -S31560042FF00000000000000000000000000000000067 -S315600430000000000000000000000000000000000056 -S315600430100000000000000000000000000000000046 -S315600430200000000000000000000000000000000036 -S315600430300000000000000000000000000000000026 -S315600430400000000000000000000000000000000016 -S315600430500000000000000000000000000000000006 -S3156004306000000000000000000000000000000000F6 -S3156004307000000000000000000000000000000000E6 -S3156004308000000000000000000000000000000000D6 -S3156004309000000000000000000000000000000000C6 -S315600430A000000000000000000000000000000000B6 -S315600430B000000000000000000000000000000000A6 -S315600430C00000000000000000000000000000000096 -S315600430D00000000000000000000000000000000086 -S315600430E00000000000000000000000000000000076 -S315600430F00000000000000000000000000000000066 -S315600431000000000000000000000000000000000055 -S315600431100000000000000000000000000000000045 -S315600431200000000000000000000000000000000035 -S315600431300000000000000000000000000000000025 -S315600431400000000000000000000000000000000015 -S315600431500000000000000000000000000000000005 -S3156004316000000000000000000000000000000000F5 -S3156004317000000000000000000000000000000000E5 -S3156004318000000000000000000000000000000000D5 -S3156004319000000000000000000000000000000000C5 -S315600431A000000000000000000000000000000000B5 -S315600431B000000000000000000000000000000000A5 -S315600431C00000000000000000000000000000000095 -S315600431D00000000000000000000000000000000085 -S315600431E00000000000000000000000000000000075 -S315600431F00000000000000000000000000000000065 -S315600432000000000000000000000000000000000054 -S315600432100000000000000000000000000000000044 -S315600432200000000000000000000000000000000034 -S315600432300000000000000000000000000000000024 -S315600432400000000000000000000000000000000014 -S315600432500000000000000000000000000000000004 -S3156004326000000000000000000000000000000000F4 -S3156004327000000000000000000000000000000000E4 -S3156004328000000000000000000000000000000000D4 -S3156004329000000000000000000000000000000000C4 -S315600432A000000000000000000000000000000000B4 -S315600432B000000000000000000000000000000000A4 -S315600432C00000000000000000000000000000000094 -S315600432D00000000000000000000000000000000084 -S315600432E00000000000000000000000000000000074 -S315600432F00000000000000000000000000000000064 -S315600433000000000000000000000000000000000053 -S315600433100000000000000000000000000000000043 -S315600433200000000000000000000000000000000033 -S315600433300000000000000000000000000000000023 -S315600433400000000000000000000000000000000013 -S315600433500000000000000000000000000000000003 -S3156004336000000000000000000000000000000000F3 -S3156004337000000000000000000000000000000000E3 -S3156004338000000000000000000000000000000000D3 -S3156004339000000000000000000000000000000000C3 -S315600433A000000000000000000000000000000000B3 -S315600433B000000000000000000000000000000000A3 -S315600433C00000000000000000000000000000000093 -S315600433D00000000000000000000000000000000083 -S315600433E00000000000000000000000000000000073 -S315600433F00000000000000000000000000000000063 -S315600434000000000000000000000000000000000052 -S315600434100000000000000000000000000000000042 -S315600434200000000000000000000000000000000032 -S315600434300000000000000000000000000000000022 -S315600434400000000000000000000000000000000012 -S315600434500000000000000000000000000000000002 -S3156004346000000000000000000000000000000000F2 -S3156004347000000000000000000000000000000000E2 -S3156004348000000000000000000000000000000000D2 -S3156004349000000000000000000000000000000000C2 -S315600434A000000000000000000000000000000000B2 -S315600434B000000000000000000000000000000000A2 -S315600434C00000000000000000000000000000000092 -S315600434D00000000000000000000000000000000082 -S315600434E00000000000000000000000000000000072 -S315600434F00000000000000000000000000000000062 -S315600435000000000000000000000000000000000051 -S315600435100000000000000000000000000000000041 -S315600435200000000000000000000000000000000031 -S315600435300000000000000000000000000000000021 -S315600435400000000000000000000000000000000011 -S315600435500000000000000000000000000000000001 -S3156004356000000000000000000000000000000000F1 -S3156004357000000000000000000000000000000000E1 -S3156004358000000000000000000000000000000000D1 -S3156004359000000000000000000000000000000000C1 -S315600435A000000000000000000000000000000000B1 -S315600435B000000000000000000000000000000000A1 -S315600435C00000000000000000000000000000000091 -S315600435D00000000000000000000000000000000081 -S315600435E00000000000000000000000000000000071 -S315600435F00000000000000000000000000000000061 -S315600436000000000000000000000000000000000050 -S315600436100000000000000000000000000000000040 -S315600436200000000000000000000000000000000030 -S315600436300000000000000000000000000000000020 -S315600436400000000000000000000000000000000010 -S315600436500000000000000000000000000000000000 -S3156004366000000000000000000000000000000000F0 -S3156004367000000000000000000000000000000000E0 -S3156004368000000000000000000000000000000000D0 -S3156004369000000000000000000000000000000000C0 -S315600436A000000000000000000000000000000000B0 -S315600436B000000000000000000000000000000000A0 -S315600436C00000000000000000000000000000000090 -S315600436D00000000000000000000000000000000080 -S315600436E00000000000000000000000000000000070 -S315600436F00000000000000000000000000000000060 -S31560043700000000000000000000000000000000004F -S31560043710000000000000000000000000000000003F -S31560043720000000000000000000000000000000002F -S31560043730000000000000000000000000000000001F -S31560043740000000000000000000000000000000000F -S3156004375000000000000000000000000000000000FF -S3156004376000000000000000000000000000000000EF -S3156004377000000000000000000000000000000000DF -S3156004378000000000000000000000000000000000CF -S3156004379000000000000000000000000000000000BF -S315600437A000000000000000000000000000000000AF -S315600437B0000000000000000000000000000000009F -S315600437C0000000000000000000000000000000008F -S315600437D0000000000000000000000000000000007F -S315600437E0000000000000000000000000000000006F -S315600437F0000000000000000000000000000000005F -S31560043800000000000000000000000000000000004E -S31560043810000000000000000000000000000000003E -S31560043820000000000000000000000000000000002E -S31560043830000000000000000000000000000000001E -S31560043840000000000000000000000000000000000E -S3156004385000000000000000000000000000000000FE -S3156004386000000000000000000000000000000000EE -S3156004387000000000000000000000000000000000DE -S3156004388000000000000000000000000000000000CE -S3156004389000000000000000000000000000000000BE -S315600438A000000000000000000000000000000000AE -S315600438B0000000000000000000000000000000009E -S315600438C0000000000000000000000000000000008E -S315600438D0000000000000000000000000000000007E -S315600438E0000000000000000000000000000000006E -S315600438F0000000000000000000000000000000005E -S31560043900000000000000000000000000000000004D -S31560043910000000000000000000000000000000003D -S31560043920000000000000000000000000000000002D -S31560043930000000000000000000000000000000001D -S31560043940000000000000000000000000000000000D -S3156004395000000000000000000000000000000000FD -S3156004396000000000000000000000000000000000ED -S3156004397000000000000000000000000000000000DD -S3156004398000000000000000000000000000000000CD -S3156004399000000000000000000000000000000000BD -S315600439A000000000000000000000000000000000AD -S315600439B0000000000000000000000000000000009D -S315600439C0000000000000000000000000000000008D -S315600439D0000000000000000000000000000000007D -S315600439E0000000000000000000000000000000006D -S315600439F0000000000000000000000000000000005D -S31560043A00000000000000000000000000000000004C -S31560043A10000000000000000000000000000000003C -S31560043A20000000000000000000000000000000002C -S31560043A30000000000000000000000000000000001C -S31560043A40000000000000000000000000000000000C -S31560043A5000000000000000000000000000000000FC -S31560043A6000000000000000000000000000000000EC -S31560043A7000000000000000000000000000000000DC -S31560043A8000000000000000000000000000000000CC -S31560043A9000000000000000000000000000000000BC -S31560043AA000000000000000000000000000000000AC -S31560043AB0000000000000000000000000000000009C -S31560043AC0000000000000000000000000000000008C -S31560043AD0000000000000000000000000000000007C -S31560043AE0000000000000000000000000000000006C -S31560043AF0000000000000000000000000000000005C -S31560043B00000000000000000000000000000000004B -S31560043B10000000000000000000000000000000003B -S31560043B20000000000000000000000000000000002B -S31560043B30000000000000000000000000000000001B -S31560043B40000000000000000000000000000000000B -S31560043B5000000000000000000000000000000000FB -S31560043B6000000000000000000000000000000000EB -S31560043B7000000000000000000000000000000000DB -S31560043B8000000000000000000000000000000000CB -S31560043B9000000000000000000000000000000000BB -S31560043BA000000000000000000000000000000000AB -S31560043BB0000000000000000000000000000000009B -S31560043BC0000000000000000000000000000000008B -S31560043BD0000000000000000000000000000000007B -S31560043BE0000000000000000000000000000000006B -S31560043BF0000000000000000000000000000000005B -S31560043C00000000000000000000000000000000004A -S31560043C10000000000000000000000000000000003A -S31560043C20000000000000000000000000000000002A -S31560043C30000000000000000000000000000000001A -S31560043C40000000000000000000000000000000000A -S31560043C5000000000000000000000000000000000FA -S31560043C6000000000000000000000000000000000EA -S31560043C7000000000000000000000000000000000DA -S31560043C8000000000000000000000000000000000CA -S31560043C9000000000000000000000000000000000BA -S31560043CA000000000000000000000000000000000AA -S31560043CB0000000000000000000000000000000009A -S31560043CC0000000000000000000000000000000008A -S31560043CD0000000000000000000000000000000007A -S31560043CE0000000000000000000000000000000006A -S31560043CF0000000000000000000000000000000005A -S31560043D000000000000000000000000000000000049 -S31560043D100000000000000000000000000000000039 -S31560043D200000000000000000000000000000000029 -S31560043D300000000000000000000000000000000019 -S31560043D400000000000000000000000000000000009 -S31560043D5000000000000000000000000000000000F9 -S31560043D6000000000000000000000000000000000E9 -S31560043D7000000000000000000000000000000000D9 -S31560043D8000000000000000000000000000000000C9 -S31560043D9000000000000000000000000000000000B9 -S31560043DA000000000000000000000000000000000A9 -S31560043DB00000000000000000000000000000000099 -S31560043DC00000000000000000000000000000000089 -S31560043DD00000000000000000000000000000000079 -S31560043DE00000000000000000000000000000000069 -S31560043DF00000000000000000000000000000000059 -S31560043E000000000000000000000000000000000048 -S31560043E100000000000000000000000000000000038 -S31560043E200000000000000000000000000000000028 -S31560043E300000000000000000000000000000000018 -S31560043E400000000000000000000000000000000008 -S31560043E5000000000000000000000000000000000F8 -S31560043E6000000000000000000000000000000000E8 -S31560043E7000000000000000000000000000000000D8 -S31560043E8000000000000000000000000000000000C8 -S31560043E9000000000000000000000000000000000B8 -S31560043EA000000000000000000000000000000000A8 -S31560043EB00000000000000000000000000000000098 -S31560043EC00000000000000000000000000000000088 -S31560043ED00000000000000000000000000000000078 -S31560043EE00000000000000000000000000000000068 -S31560043EF00000000000000000000000000000000058 -S31560043F000000000000000000000000000000000047 -S31560043F100000000000000000000000000000000037 -S31560043F200000000000000000000000000000000027 -S31560043F300000000000000000000000000000000017 -S31560043F400000000000000000000000000000000007 -S31560043F5000000000000000000000000000000000F7 -S31560043F6000000000000000000000000000000000E7 -S31560043F7000000000000000000000000000000000D7 -S31560043F8000000000000000000000000000000000C7 -S31560043F9000000000000000000000000000000000B7 -S31560043FA000000000000000000000000000000000A7 -S31560043FB00000000000000000000000000000000097 -S31560043FC00000000000000000000000000000000087 -S31560043FD00000000000000000000000000000000077 -S31560043FE00000000000000000000000000000000067 -S31560043FF00000000000000000000000000000000057 -S315600440000000000000000000000000000000000046 -S315600440100000000000000000000000000000000036 -S315600440200000000000000000000000000000000026 -S315600440300000000000000000000000000000000016 -S315600440400000000000000000000000000000000006 -S3156004405000000000000000000000000000000000F6 -S3156004406000000000000000000000000000000000E6 -S3156004407000000000000000000000000000000000D6 -S3156004408000000000000000000000000000000000C6 -S3156004409000000000000000000000000000000000B6 -S315600440A000000000000000000000000000000000A6 -S315600440B00000000000000000000000000000000096 -S315600440C00000000000000000000000000000000086 -S315600440D00000000000000000000000000000000076 -S315600440E00000000000000000000000000000000066 -S315600440F00000000000000000000000000000000056 -S315600441000000000000000000000000000000000045 -S315600441100000000000000000000000000000000035 -S315600441200000000000000000000000000000000025 -S315600441300000000000000000000000000000000015 -S315600441400000000000000000000000000000000005 -S3156004415000000000000000000000000000000000F5 -S3156004416000000000000000000000000000000000E5 -S3156004417000000000000000000000000000000000D5 -S3156004418000000000000000000000000000000000C5 -S3156004419000000000000000000000000000000000B5 -S315600441A000000000000000000000000000000000A5 -S315600441B00000000000000000000000000000000095 -S315600441C00000000000000000000000000000000085 -S315600441D00000000000000000000000000000000075 -S315600441E00000000000000000000000000000000065 -S315600441F00000000000000000000000000000000055 -S315600442000000000000000000000000000000000044 -S315600442100000000000000000000000000000000034 -S315600442200000000000000000000000000000000024 -S315600442300000000000000000000000000000000014 -S315600442400000000000000000000000000000000004 -S3156004425000000000000000000000000000000000F4 -S3156004426000000000000000000000000000000000E4 -S3156004427000000000000000000000000000000000D4 -S3156004428000000000000000000000000000000000C4 -S3156004429000000000000000000000000000000000B4 -S315600442A000000000000000000000000000000000A4 -S315600442B00000000000000000000000000000000094 -S315600442C00000000000000000000000000000000084 -S315600442D00000000000000000000000000000000074 -S315600442E00000000000000000000000000000000064 -S315600442F00000000000000000000000000000000054 -S315600443000000000000000000000000000000000043 -S315600443100000000000000000000000000000000033 -S315600443200000000000000000000000000000000023 -S315600443300000000000000000000000000000000013 -S315600443400000000000000000000000000000000003 -S3156004435000000000000000000000000000000000F3 -S3156004436000000000000000000000000000000000E3 -S3156004437000000000000000000000000000000000D3 -S3156004438000000000000000000000000000000000C3 -S3156004439000000000000000000000000000000000B3 -S315600443A000000000000000000000000000000000A3 -S315600443B00000000000000000000000000000000093 -S315600443C00000000000000000000000000000000083 -S315600443D00000000000000000000000000000000073 -S315600443E00000000000000000000000000000000063 -S315600443F00000000000000000000000000000000053 -S315600444000000000000000000000000000000000042 -S315600444100000000000000000000000000000000032 -S315600444200000000000000000000000000000000022 -S315600444300000000000000000000000000000000012 -S315600444400000000000000000000000000000000002 -S3156004445000000000000000000000000000000000F2 -S3156004446000000000000000000000000000000000E2 -S3156004447000000000000000000000000000000000D2 -S3156004448000000000000000000000000000000000C2 -S3156004449000000000000000000000000000000000B2 -S315600444A000000000000000000000000000000000A2 -S315600444B00000000000000000000000000000000092 -S315600444C00000000000000000000000000000000082 -S315600444D00000000000000000000000000000000072 -S315600444E00000000000000000000000000000000062 -S315600444F00000000000000000000000000000000052 -S315600445000000000000000000000000000000000041 -S315600445100000000000000000000000000000000031 -S315600445200000000000000000000000000000000021 -S315600445300000000000000000000000000000000011 -S315600445400000000000000000000000000000000001 -S3156004455000000000000000000000000000000000F1 -S3156004456000000000000000000000000000000000E1 -S3156004457000000000000000000000000000000000D1 -S3156004458000000000000000000000000000000000C1 -S3156004459000000000000000000000000000000000B1 -S315600445A000000000000000000000000000000000A1 -S315600445B00000000000000000000000000000000091 -S315600445C00000000000000000000000000000000081 -S315600445D00000000000000000000000000000000071 -S315600445E00000000000000000000000000000000061 -S315600445F00000000000000000000000000000000051 -S315600446000000000000000000000000000000000040 -S315600446100000000000000000000000000000000030 -S315600446200000000000000000000000000000000020 -S315600446300000000000000000000000000000000010 -S315600446400000000000000000000000000000000000 -S3156004465000000000000000000000000000000000F0 -S3156004466000000000000000000000000000000000E0 -S3156004467000000000000000000000000000000000D0 -S3156004468000000000000000000000000000000000C0 -S3156004469000000000000000000000000000000000B0 -S315600446A000000000000000000000000000000000A0 -S315600446B00000000000000000000000000000000090 -S315600446C00000000000000000000000000000000080 -S315600446D00000000000000000000000000000000070 -S315600446E00000000000000000000000000000000060 -S315600446F00000000000000000000000000000000050 -S31560044700000000000000000000000000000000003F -S31560044710000000000000000000000000000000002F -S31560044720000000000000000000000000000000001F -S31560044730000000000000000000000000000000000F -S3156004474000000000000000000000000000000000FF -S3156004475000000000000000000000000000000000EF -S3156004476000000000000000000000000000000000DF -S3156004477000000000000000000000000000000000CF -S3156004478000000000000000000000000000000000BF -S3156004479000000000000000000000000000000000AF -S315600447A0000000000000000000000000000000009F -S315600447B0000000000000000000000000000000008F -S315600447C0000000000000000000000000000000007F -S315600447D0000000000000000000000000000000006F -S315600447E0000000000000000000000000000000005F -S315600447F0000000000000000000000000000000004F -S31560044800000000000000000000000000000000003E -S31560044810000000000000000000000000000000002E -S31560044820000000000000000000000000000000001E -S31560044830000000000000000000000000000000000E -S3156004484000000000000000000000000000000000FE -S3156004485000000000000000000000000000000000EE -S3156004486000000000000000000000000000000000DE -S3156004487000000000000000000000000000000000CE -S3156004488000000000000000000000000000000000BE -S3156004489000000000000000000000000000000000AE -S315600448A0000000000000000000000000000000009E -S315600448B0000000000000000000000000000000008E -S315600448C0000000000000000000000000000000007E -S315600448D0000000000000000000000000000000006E -S315600448E0000000000000000000000000000000005E -S315600448F0000000000000000000000000000000004E -S31560044900000000000000000000000000000000003D -S31560044910000000000000000000000000000000002D -S31560044920000000000000000000000000000000001D -S31560044930000000000000000000000000000000000D -S3156004494000000000000000000000000000000000FD -S3156004495000000000000000000000000000000000ED -S3156004496000000000000000000000000000000000DD -S3156004497000000000000000000000000000000000CD -S3156004498000000000000000000000000000000000BD -S3156004499000000000000000000000000000000000AD -S315600449A0000000000000000000000000000000009D -S315600449B0000000000000000000000000000000008D -S315600449C0000000000000000000000000000000007D -S315600449D0000000000000000000000000000000006D -S315600449E0000000000000000000000000000000005D -S315600449F0000000000000000000000000000000004D -S31560044A00000000000000000000000000000000003C -S31560044A10000000000000000000000000000000002C -S31560044A20000000000000000000000000000000001C -S31560044A30000000000000000000000000000000000C -S31560044A4000000000000000000000000000000000FC -S31560044A5000000000000000000000000000000000EC -S31560044A6000000000000000000000000000000000DC -S31560044A7000000000000000000000000000000000CC -S31560044A8000000000000000000000000000000000BC -S31560044A9000000000000000000000000000000000AC -S31560044AA0000000000000000000000000000000009C -S31560044AB0000000000000000000000000000000008C -S31560044AC0000000000000000000000000000000007C -S31560044AD0000000000000000000000000000000006C -S31560044AE0000000000000000000000000000000005C -S31560044AF0000000000000000000000000000000004C -S31560044B00000000000000000000000000000000003B -S31560044B10000000000000000000000000000000002B -S31560044B20000000000000000000000000000000001B -S31560044B30000000000000000000000000000000000B -S31560044B4000000000000000000000000000000000FB -S31560044B5000000000000000000000000000000000EB -S31560044B6000000000000000000000000000000000DB -S31560044B7000000000000000000000000000000000CB -S31560044B8000000000000000000000000000000000BB -S31560044B9000000000000000000000000000000000AB -S31560044BA0000000000000000000000000000000009B -S31560044BB0000000000000000000000000000000008B -S31560044BC0000000000000000000000000000000007B -S31560044BD0000000000000000000000000000000006B -S31560044BE0000000000000000000000000000000005B -S31560044BF0000000000000000000000000000000004B -S31560044C00000000000000000000000000000000003A -S31560044C10000000000000000000000000000000002A -S31560044C20000000000000000000000000000000001A -S31560044C30000000000000000000000000000000000A -S31560044C4000000000000000000000000000000000FA -S31560044C5000000000000000000000000000000000EA -S31560044C6000000000000000000000000000000000DA -S31560044C7000000000000000000000000000000000CA -S31560044C8000000000000000000000000000000000BA -S31560044C9000000000000000000000000000000000AA -S31560044CA0000000000000000000000000000000009A -S31560044CB0000000000000000000000000000000008A -S31560044CC0000000000000000000000000000000007A -S31560044CD0000000000000000000000000000000006A -S31560044CE0000000000000000000000000000000005A -S31560044CF0000000000000000000000000000000004A -S31560044D000000000000000000000000000000000039 -S31560044D100000000000000000000000000000000029 -S31560044D200000000000000000000000000000000019 -S31560044D300000000000000000000000000000000009 -S31560044D4000000000000000000000000000000000F9 -S31560044D5000000000000000000000000000000000E9 -S31560044D6000000000000000000000000000000000D9 -S31560044D7000000000000000000000000000000000C9 -S31560044D8000000000000000000000000000000000B9 -S31560044D9000000000000000000000000000000000A9 -S31560044DA00000000000000000000000000000000099 -S31560044DB00000000000000000000000000000000089 -S31560044DC00000000000000000000000000000000079 -S31560044DD00000000000000000000000000000000069 -S31560044DE00000000000000000000000000000000059 -S31560044DF00000000000000000000000000000000049 -S31560044E000000000000000000000000000000000038 -S31560044E100000000000000000000000000000000028 -S31560044E200000000000000000000000000000000018 -S31560044E300000000000000000000000000000000008 -S31560044E4000000000000000000000000000000000F8 -S31560044E5000000000000000000000000000000000E8 -S31560044E6000000000000000000000000000000000D8 -S31560044E7000000000000000000000000000000000C8 -S31560044E8000000000000000000000000000000000B8 -S31560044E9000000000000000000000000000000000A8 -S31560044EA00000000000000000000000000000000098 -S31560044EB00000000000000000000000000000000088 -S31560044EC00000000000000000000000000000000078 -S31560044ED00000000000000000000000000000000068 -S31560044EE00000000000000000000000000000000058 -S31560044EF00000000000000000000000000000000048 -S31560044F000000000000000000000000000000000037 -S31560044F100000000000000000000000000000000027 -S31560044F200000000000000000000000000000000017 -S31560044F300000000000000000000000000000000007 -S31560044F4000000000000000000000000000000000F7 -S31560044F5000000000000000000000000000000000E7 -S31560044F6000000000000000000000000000000000D7 -S31560044F7000000000000000000000000000000000C7 -S31560044F8000000000000000000000000000000000B7 -S31560044F9000000000000000000000000000000000A7 -S31560044FA00000000000000000000000000000000097 -S31560044FB00000000000000000000000000000000087 -S31560044FC00000000000000000000000000000000077 -S31560044FD00000000000000000000000000000000067 -S31560044FE00000000000000000000000000000000057 -S31560044FF00000000000000000000000000000000047 -S315600450000000000000000000000000000000000036 -S315600450100000000000000000000000000000000026 -S315600450200000000000000000000000000000000016 -S315600450300000000000000000000000000000000006 -S3156004504000000000000000000000000000000000F6 -S3156004505000000000000000000000000000000000E6 -S3156004506000000000000000000000000000000000D6 -S3156004507000000000000000000000000000000000C6 -S3156004508000000000000000000000000000000000B6 -S3156004509000000000000000000000000000000000A6 -S315600450A00000000000000000000000000000000096 -S315600450B00000000000000000000000000000000086 -S315600450C00000000000000000000000000000000076 -S315600450D00000000000000000000000000000000066 -S315600450E00000000000000000000000000000000056 -S315600450F00000000000000000000000000000000046 -S315600451000000000000000000000000000000000035 -S315600451100000000000000000000000000000000025 -S315600451200000000000000000000000000000000015 -S315600451300000000000000000000000000000000005 -S3156004514000000000000000000000000000000000F5 -S3156004515000000000000000000000000000000000E5 -S3156004516000000000000000000000000000000000D5 -S3156004517000000000000000000000000000000000C5 -S3156004518000000000000000000000000000000000B5 -S3156004519000000000000000000000000000000000A5 -S315600451A00000000000000000000000000000000095 -S315600451B00000000000000000000000000000000085 -S315600451C00000000000000000000000000000000075 -S315600451D00000000000000000000000000000000065 -S315600451E00000000000000000000000000000000055 -S315600451F00000000000000000000000000000000045 -S315600452000000000000000000000000000000000034 -S315600452100000000000000000000000000000000024 -S315600452200000000000000000000000000000000014 -S315600452300000000000000000000000000000000004 -S3156004524000000000000000000000000000000000F4 -S3156004525000000000000000000000000000000000E4 -S3156004526000000000000000000000000000000000D4 -S3156004527000000000000000000000000000000000C4 -S3156004528000000000000000000000000000000000B4 -S3156004529000000000000000000000000000000000A4 -S315600452A00000000000000000000000000000000094 -S315600452B00000000000000000000000000000000084 -S315600452C00000000000000000000000000000000074 -S315600452D00000000000000000000000000000000064 -S315600452E00000000000000000000000000000000054 -S315600452F00000000000000000000000000000000044 -S315600453000000000000000000000000000000000033 -S315600453100000000000000000000000000000000023 -S315600453200000000000000000000000000000000013 -S315600453300000000000000000000000000000000003 -S3156004534000000000000000000000000000000000F3 -S3156004535000000000000000000000000000000000E3 -S3156004536000000000000000000000000000000000D3 -S3156004537000000000000000000000000000000000C3 -S3156004538000000000000000000000000000000000B3 -S3156004539000000000000000000000000000000000A3 -S315600453A00000000000000000000000000000000093 -S315600453B00000000000000000000000000000000083 -S315600453C00000000000000000000000000000000073 -S315600453D00000000000000000000000000000000063 -S315600453E00000000000000000000000000000000053 -S315600453F00000000000000000000000000000000043 -S315600454000000000000000000000000000000000032 -S315600454100000000000000000000000000000000022 -S315600454200000000000000000000000000000000012 -S315600454300000000000000000000000000000000002 -S3156004544000000000000000000000000000000000F2 -S3156004545000000000000000000000000000000000E2 -S3156004546000000000000000000000000000000000D2 -S3156004547000000000000000000000000000000000C2 -S3156004548000000000000000000000000000000000B2 -S3156004549000000000000000000000000000000000A2 -S315600454A00000000000000000000000000000000092 -S315600454B00000000000000000000000000000000082 -S315600454C00000000000000000000000000000000072 -S315600454D00000000000000000000000000000000062 -S315600454E00000000000000000000000000000000052 -S315600454F00000000000000000000000000000000042 -S315600455000000000000000000000000000000000031 -S315600455100000000000000000000000000000000021 -S315600455200000000000000000000000000000000011 -S315600455300000000000000000000000000000000001 -S3156004554000000000000000000000000000000000F1 -S3156004555000000000000000000000000000000000E1 -S3156004556000000000000000000000000000000000D1 -S3156004557000000000000000000000000000000000C1 -S3156004558000000000000000000000000000000000B1 -S3156004559000000000000000000000000000000000A1 -S315600455A00000000000000000000000000000000091 -S315600455B00000000000000000000000000000000081 -S315600455C00000000000000000000000000000000071 -S315600455D00000000000000000000000000000000061 -S315600455E00000000000000000000000000000000051 -S315600455F00000000000000000000000000000000041 -S315600456000000000000000000000000000000000030 -S315600456100000000000000000000000000000000020 -S315600456200000000000000000000000000000000010 -S315600456300000000000000000000000000000000000 -S3156004564000000000000000000000000000000000F0 -S3156004565000000000000000000000000000000000E0 -S3156004566000000000000000000000000000000000D0 -S3156004567000000000000000000000000000000000C0 -S3156004568000000000000000000000000000000000B0 -S3156004569000000000000000000000000000000000A0 -S315600456A00000000000000000000000000000000090 -S315600456B00000000000000000000000000000000080 -S315600456C00000000000000000000000000000000070 -S315600456D00000000000000000000000000000000060 -S315600456E00000000000000000000000000000000050 -S315600456F00000000000000000000000000000000040 -S31560045700000000000000000000000000000000002F -S31560045710000000000000000000000000000000001F -S31560045720000000000000000000000000000000000F -S3156004573000000000000000000000000000000000FF -S3156004574000000000000000000000000000000000EF -S3156004575000000000000000000000000000000000DF -S3156004576000000000000000000000000000000000CF -S3156004577000000000000000000000000000000000BF -S3156004578000000000000000000000000000000000AF -S31560045790000000000000000000000000000000009F -S315600457A0000000000000000000000000000000008F -S315600457B0000000000000000000000000000000007F -S315600457C0000000000000000000000000000000006F -S315600457D0000000000000000000000000000000005F -S315600457E0000000000000000000000000000000004F -S315600457F0000000000000000000000000000000003F -S31560045800000000000000000000000000000000002E -S31560045810000000000000000000000000000000001E -S31560045820000000000000000000000000000000000E -S3156004583000000000000000000000000000000000FE -S3156004584000000000000000000000000000000000EE -S3156004585000000000000000000000000000000000DE -S3156004586000000000000000000000000000000000CE -S3156004587000000000000000000000000000000000BE -S3156004588000000000000000000000000000000000AE -S31560045890000000000000000000000000000000009E -S315600458A0000000000000000000000000000000008E -S315600458B0000000000000000000000000000000007E -S315600458C0000000000000000000000000000000006E -S315600458D0000000000000000000000000000000005E -S315600458E0000000000000000000000000000000004E -S315600458F0000000000000000000000000000000003E -S31560045900000000000000000000000000000000002D -S31560045910000000000000000000000000000000001D -S31560045920000000000000000000000000000000000D -S3156004593000000000000000000000000000000000FD -S3156004594000000000000000000000000000000000ED -S3156004595000000000000000000000000000000000DD -S3156004596000000000000000000000000000000000CD -S3156004597000000000000000000000000000000000BD -S3156004598000000000000000000000000000000000AD -S31560045990000000000000000000000000000000009D -S315600459A0000000000000000000000000000000008D -S315600459B0000000000000000000000000000000007D -S315600459C0000000000000000000000000000000006D -S315600459D0000000000000000000000000000000005D -S315600459E0000000000000000000000000000000004D -S315600459F0000000000000000000000000000000003D -S31560045A00000000000000000000000000000000002C -S31560045A10000000000000000000000000000000001C -S31560045A20000000000000000000000000000000000C -S31560045A3000000000000000000000000000000000FC -S31560045A4000000000000000000000000000000000EC -S31560045A5000000000000000000000000000000000DC -S31560045A6000000000000000000000000000000000CC -S31560045A7000000000000000000000000000000000BC -S31560045A8000000000000000000000000000000000AC -S31560045A90000000000000000000000000000000009C -S31560045AA0000000000000000000000000000000008C -S31560045AB0000000000000000000000000000000007C -S31560045AC0000000000000000000000000000000006C -S31560045AD0000000000000000000000000000000005C -S31560045AE0000000000000000000000000000000004C -S31560045AF0000000000000000000000000000000003C -S31560045B00000000000000000000000000000000002B -S31560045B10000000000000000000000000000000001B -S31560045B20000000000000000000000000000000000B -S31560045B3000000000000000000000000000000000FB -S31560045B4000000000000000000000000000000000EB -S31560045B5000000000000000000000000000000000DB -S31560045B6000000000000000000000000000000000CB -S31560045B7000000000000000000000000000000000BB -S31560045B8000000000000000000000000000000000AB -S31560045B90000000000000000000000000000000009B -S31560045BA0000000000000000000000000000000008B -S31560045BB0000000000000000000000000000000007B -S31560045BC0000000000000000000000000000000006B -S31560045BD0000000000000000000000000000000005B -S31560045BE0000000000000000000000000000000004B -S31560045BF0000000000000000000000000000000003B -S31560045C00000000000000000000000000000000002A -S31560045C10000000000000000000000000000000001A -S31560045C20000000000000000000000000000000000A -S31560045C3000000000000000000000000000000000FA -S31560045C4000000000000000000000000000000000EA -S31560045C5000000000000000000000000000000000DA -S31560045C6000000000000000000000000000000000CA -S31560045C7000000000000000000000000000000000BA -S31560045C8000000000000000000000000000000000AA -S31560045C90000000000000000000000000000000009A -S31560045CA0000000000000000000000000000000008A -S31560045CB0000000000000000000000000000000007A -S31560045CC0000000000000000000000000000000006A -S31560045CD0000000000000000000000000000000005A -S31560045CE0000000000000000000000000000000004A -S31560045CF0000000000000000000000000000000003A -S31560045D000000000000000000000000000000000029 -S31560045D100000000000000000000000000000000019 -S31560045D200000000000000000000000000000000009 -S31560045D3000000000000000000000000000000000F9 -S31560045D4000000000000000000000000000000000E9 -S31560045D5000000000000000000000000000000000D9 -S31560045D6000000000000000000000000000000000C9 -S31560045D7000000000000000000000000000000000B9 -S31560045D8000000000000000000000000000000000A9 -S31560045D900000000000000000000000000000000099 -S31560045DA00000000000000000000000000000000089 -S31560045DB00000000000000000000000000000000079 -S31560045DC00000000000000000000000000000000069 -S31560045DD00000000000000000000000000000000059 -S31560045DE00000000000000000000000000000000049 -S31560045DF00000000000000000000000000000000039 -S31560045E000000000000000000000000000000000028 -S31560045E100000000000000000000000000000000018 -S31560045E200000000000000000000000000000000008 -S31560045E3000000000000000000000000000000000F8 -S31560045E4000000000000000000000000000000000E8 -S31560045E5000000000000000000000000000000000D8 -S31560045E6000000000000000000000000000000000C8 -S31560045E7000000000000000000000000000000000B8 -S31560045E8000000000000000000000000000000000A8 -S31560045E900000000000000000000000000000000098 -S31560045EA00000000000000000000000000000000088 -S31560045EB00000000000000000000000000000000078 -S31560045EC00000000000000000000000000000000068 -S31560045ED00000000000000000000000000000000058 -S31560045EE00000000000000000000000000000000048 -S31560045EF00000000000000000000000000000000038 -S31560045F000000000000000000000000000000000027 -S31560045F100000000000000000000000000000000017 -S31560045F200000000000000000000000000000000007 -S31560045F3000000000000000000000000000000000F7 -S31560045F4000000000000000000000000000000000E7 -S31560045F5000000000000000000000000000000000D7 -S31560045F6000000000000000000000000000000000C7 -S31560045F7000000000000000000000000000000000B7 -S31560045F8000000000000000000000000000000000A7 -S31560045F900000000000000000000000000000000097 -S31560045FA00000000000000000000000000000000087 -S31560045FB00000000000000000000000000000000077 -S31560045FC00000000000000000000000000000000067 -S31560045FD00000000000000000000000000000000057 -S31560045FE00000000000000000000000000000000047 -S31560045FF00000000000000000000000000000000037 -S315600460000000000000000000000000000000000026 -S315600460100000000000000000000000000000000016 -S315600460200000000000000000000000000000000006 -S3156004603000000000000000000000000000000000F6 -S3156004604000000000000000000000000000000000E6 -S3156004605000000000000000000000000000000000D6 -S3156004606000000000000000000000000000000000C6 -S3156004607000000000000000000000000000000000B6 -S3156004608000000000000000000000000000000000A6 -S315600460900000000000000000000000000000000096 -S315600460A00000000000000000000000000000000086 -S315600460B00000000000000000000000000000000076 -S315600460C00000000000000000000000000000000066 -S315600460D00000000000000000000000000000000056 -S315600460E00000000000000000000000000000000046 -S315600460F00000000000000000000000000000000036 -S315600461000000000000000000000000000000000025 -S315600461100000000000000000000000000000000015 -S315600461200000000000000000000000000000000005 -S3156004613000000000000000000000000000000000F5 -S3156004614000000000000000000000000000000000E5 -S3156004615000000000000000000000000000000000D5 -S3156004616000000000000000000000000000000000C5 -S3156004617000000000000000000000000000000000B5 -S3156004618000000000000000000000000000000000A5 -S315600461900000000000000000000000000000000095 -S315600461A00000000000000000000000000000000085 -S315600461B00000000000000000000000000000000075 -S315600461C00000000000000000000000000000000065 -S315600461D00000000000000000000000000000000055 -S315600461E00000000000000000000000000000000045 -S315600461F00000000000000000000000000000000035 -S315600462000000000000000000000000000000000024 -S315600462100000000000000000000000000000000014 -S315600462200000000000000000000000000000000004 -S3156004623000000000000000000000000000000000F4 -S3156004624000000000000000000000000000000000E4 -S3156004625000000000000000000000000000000000D4 -S3156004626000000000000000000000000000000000C4 -S3156004627000000000000000000000000000000000B4 -S3156004628000000000000000000000000000000000A4 -S315600462900000000000000000000000000000000094 -S315600462A00000000000000000000000000000000084 -S315600462B00000000000000000000000000000000074 -S315600462C00000000000000000000000000000000064 -S315600462D00000000000000000000000000000000054 -S315600462E00000000000000000000000000000000044 -S315600462F00000000000000000000000000000000034 -S315600463000000000000000000000000000000000023 -S315600463100000000000000000000000000000000013 -S315600463200000000000000000000000000000000003 -S3156004633000000000000000000000000000000000F3 -S3156004634000000000000000000000000000000000E3 -S3156004635000000000000000000000000000000000D3 -S3156004636000000000000000000000000000000000C3 -S3156004637000000000000000000000000000000000B3 -S3156004638000000000000000000000000000000000A3 -S315600463900000000000000000000000000000000093 -S315600463A00000000000000000000000000000000083 -S315600463B00000000000000000000000000000000073 -S315600463C00000000000000000000000000000000063 -S315600463D00000000000000000000000000000000053 -S315600463E00000000000000000000000000000000043 -S315600463F00000000000000000000000000000000033 -S315600464000000000000000000000000000000000022 -S315600464100000000000000000000000000000000012 -S315600464200000000000000000000000000000000002 -S3156004643000000000000000000000000000000000F2 -S3156004644000000000000000000000000000000000E2 -S3156004645000000000000000000000000000000000D2 -S3156004646000000000000000000000000000000000C2 -S3156004647000000000000000000000000000000000B2 -S3156004648000000000000000000000000000000000A2 -S315600464900000000000000000000000000000000092 -S315600464A00000000000000000000000000000000082 -S315600464B00000000000000000000000000000000072 -S315600464C00000000000000000000000000000000062 -S315600464D00000000000000000000000000000000052 -S315600464E00000000000000000000000000000000042 -S315600464F00000000000000000000000000000000032 -S315600465000000000000000000000000000000000021 -S315600465100000000000000000000000000000000011 -S315600465200000000000000000000000000000000001 -S3156004653000000000000000000000000000000000F1 -S3156004654000000000000000000000000000000000E1 -S3156004655000000000000000000000000000000000D1 -S3156004656000000000000000000000000000000000C1 -S3156004657000000000000000000000000000000000B1 -S3156004658000000000000000000000000000000000A1 -S315600465900000000000000000000000000000000091 -S315600465A00000000000000000000000000000000081 -S315600465B00000000000000000000000000000000071 -S315600465C00000000000000000000000000000000061 -S315600465D00000000000000000000000000000000051 -S315600465E00000000000000000000000000000000041 -S315600465F00000000000000000000000000000000031 -S315600466000000000000000000000000000000000020 -S315600466100000000000000000000000000000000010 -S315600466200000000000000000000000000000000000 -S3156004663000000000000000000000000000000000F0 -S3156004664000000000000000000000000000000000E0 -S3156004665000000000000000000000000000000000D0 -S3156004666000000000000000000000000000000000C0 -S3156004667000000000000000000000000000000000B0 -S3156004668000000000000000000000000000000000A0 -S315600466900000000000000000000000000000000090 -S315600466A00000000000000000000000000000000080 -S315600466B00000000000000000000000000000000070 -S315600466C00000000000000000000000000000000060 -S315600466D00000000000000000000000000000000050 -S315600466E00000000000000000000000000000000040 -S315600466F00000000000000000000000000000000030 -S31560046700000000000000000000000000000000001F -S31560046710000000000000000000000000000000000F -S3156004672000000000000000000000000000000000FF -S3156004673000000000000000000000000000000000EF -S3156004674000000000000000000000000000000000DF -S3156004675000000000000000000000000000000000CF -S3156004676000000000000000000000000000000000BF -S3156004677000000000000000000000000000000000AF -S31560046780000000000000000000000000000000009F -S31560046790000000000000000000000000000000008F -S315600467A0000000000000000000000000000000007F -S315600467B0000000000000000000000000000000006F -S315600467C0000000000000000000000000000000005F -S315600467D0000000000000000000000000000000004F -S315600467E0000000000000000000000000000000003F -S315600467F0000000000000000000000000000000002F -S31560046800000000000000000000000000000000001E -S31560046810000000000000000000000000000000000E -S3156004682000000000000000000000000000000000FE -S3156004683000000000000000000000000000000000EE -S3156004684000000000000000000000000000000000DE -S3156004685000000000000000000000000000000000CE -S3156004686000000000000000000000000000000000BE -S3156004687000000000000000000000000000000000AE -S31560046880000000000000000000000000000000009E -S31560046890000000000000000000000000000000008E -S315600468A0000000000000000000000000000000007E -S315600468B0000000000000000000000000000000006E -S315600468C0000000000000000000000000000000005E -S315600468D0000000000000000000000000000000004E -S315600468E0000000000000000000000000000000003E -S315600468F0000000000000000000000000000000002E -S31560046900000000000000000000000000000000001D -S31560046910000000000000000000000000000000000D -S3156004692000000000000000000000000000000000FD -S3156004693000000000000000000000000000000000ED -S3156004694000000000000000000000000000000000DD -S3156004695000000000000000000000000000000000CD -S3156004696000000000000000000000000000000000BD -S3156004697000000000000000000000000000000000AD -S31560046980000000000000000000000000000000009D -S31560046990000000000000000000000000000000008D -S315600469A0000000000000000000000000000000007D -S315600469B0000000000000000000000000000000006D -S315600469C0000000000000000000000000000000005D -S315600469D0000000000000000000000000000000004D -S315600469E0000000000000000000000000000000003D -S315600469F0000000000000000000000000000000002D -S31560046A00000000000000000000000000000000001C -S31560046A10000000000000000000000000000000000C -S31560046A2000000000000000000000000000000000FC -S31560046A3000000000000000000000000000000000EC -S31560046A4000000000000000000000000000000000DC -S31560046A5000000000000000000000000000000000CC -S31560046A6000000000000000000000000000000000BC -S31560046A7000000000000000000000000000000000AC -S31560046A80000000000000000000000000000000009C -S31560046A90000000000000000000000000000000008C -S31560046AA0000000000000000000000000000000007C -S31560046AB0000000000000000000000000000000006C -S31560046AC0000000000000000000000000000000005C -S31560046AD0000000000000000000000000000000004C -S31560046AE0000000000000000000000000000000003C -S31560046AF0000000000000000000000000000000002C -S31560046B00000000000000000000000000000000001B -S31560046B10000000000000000000000000000000000B -S31560046B2000000000000000000000000000000000FB -S31560046B3000000000000000000000000000000000EB -S31560046B4000000000000000000000000000000000DB -S31560046B5000000000000000000000000000000000CB -S31560046B6000000000000000000000000000000000BB -S31560046B7000000000000000000000000000000000AB -S31560046B80000000000000000000000000000000009B -S31560046B90000000000000000000000000000000008B -S31560046BA0000000000000000000000000000000007B -S31560046BB0000000000000000000000000000000006B -S31560046BC0000000000000000000000000000000005B -S31560046BD0000000000000000000000000000000004B -S31560046BE0000000000000000000000000000000003B -S31560046BF0000000000000000000000000000000002B -S31560046C00000000000000000000000000000000001A -S31560046C10000000000000000000000000000000000A -S31560046C2000000000000000000000000000000000FA -S31560046C3000000000000000000000000000000000EA -S31560046C4000000000000000000000000000000000DA -S31560046C5000000000000000000000000000000000CA -S31560046C6000000000000000000000000000000000BA -S31560046C7000000000000000000000000000000000AA -S31560046C80000000000000000000000000000000009A -S31560046C90000000000000000000000000000000008A -S31560046CA0000000000000000000000000000000007A -S31560046CB0000000000000000000000000000000006A -S31560046CC0000000000000000000000000000000005A -S31560046CD0000000000000000000000000000000004A -S31560046CE0000000000000000000000000000000003A -S31560046CF0000000000000000000000000000000002A -S31560046D000000000000000000000000000000000019 -S31560046D100000000000000000000000000000000009 -S31560046D2000000000000000000000000000000000F9 -S31560046D3000000000000000000000000000000000E9 -S31560046D4000000000000000000000000000000000D9 -S31560046D5000000000000000000000000000000000C9 -S31560046D6000000000000000000000000000000000B9 -S31560046D7000000000000000000000000000000000A9 -S31560046D800000000000000000000000000000000099 -S31560046D900000000000000000000000000000000089 -S31560046DA00000000000000000000000000000000079 -S31560046DB00000000000000000000000000000000069 -S31560046DC00000000000000000000000000000000059 -S31560046DD00000000000000000000000000000000049 -S31560046DE00000000000000000000000000000000039 -S31560046DF00000000000000000000000000000000029 -S31560046E000000000000000000000000000000000018 -S31560046E100000000000000000000000000000000008 -S31560046E2000000000000000000000000000000000F8 -S31560046E3000000000000000000000000000000000E8 -S31560046E4000000000000000000000000000000000D8 -S31560046E5000000000000000000000000000000000C8 -S31560046E6000000000000000000000000000000000B8 -S31560046E7000000000000000000000000000000000A8 -S31560046E800000000000000000000000000000000098 -S31560046E900000000000000000000000000000000088 -S31560046EA00000000000000000000000000000000078 -S31560046EB00000000000000000000000000000000068 -S31560046EC00000000000000000000000000000000058 -S31560046ED00000000000000000000000000000000048 -S31560046EE00000000000000000000000000000000038 -S31560046EF00000000000000000000000000000000028 -S31560046F000000000000000000000000000000000017 -S31560046F100000000000000000000000000000000007 -S31560046F2000000000000000000000000000000000F7 -S31560046F3000000000000000000000000000000000E7 -S31560046F4000000000000000000000000000000000D7 -S31560046F5000000000000000000000000000000000C7 -S31560046F6000000000000000000000000000000000B7 -S31560046F7000000000000000000000000000000000A7 -S31560046F800000000000000000000000000000000097 -S31560046F900000000000000000000000000000000087 -S31560046FA00000000000000000000000000000000077 -S31560046FB00000000000000000000000000000000067 -S31560046FC00000000000000000000000000000000057 -S31560046FD00000000000000000000000000000000047 -S31560046FE00000000000000000000000000000000037 -S31560046FF00000000000000000000000000000000027 -S315600470000000000000000000000000000000000016 -S315600470100000000000000000000000000000000006 -S3156004702000000000000000000000000000000000F6 -S3156004703000000000000000000000000000000000E6 -S3156004704000000000000000000000000000000000D6 -S3156004705000000000000000000000000000000000C6 -S3156004706000000000000000000000000000000000B6 -S3156004707000000000000000000000000000000000A6 -S315600470800000000000000000000000000000000096 -S315600470900000000000000000000000000000000086 -S315600470A00000000000000000000000000000000076 -S315600470B00000000000000000000000000000000066 -S315600470C00000000000000000000000000000000056 -S315600470D00000000000000000000000000000000046 -S315600470E00000000000000000000000000000000036 -S315600470F00000000000000000000000000000000026 -S315600471000000000000000000000000000000000015 -S315600471100000000000000000000000000000000005 -S3156004712000000000000000000000000000000000F5 -S3156004713000000000000000000000000000000000E5 -S3156004714000000000000000000000000000000000D5 -S3156004715000000000000000000000000000000000C5 -S3156004716000000000000000000000000000000000B5 -S3156004717000000000000000000000000000000000A5 -S315600471800000000000000000000000000000000095 -S315600471900000000000000000000000000000000085 -S315600471A00000000000000000000000000000000075 -S315600471B00000000000000000000000000000000065 -S315600471C00000000000000000000000000000000055 -S315600471D00000000000000000000000000000000045 -S315600471E00000000000000000000000000000000035 -S315600471F00000000000000000000000000000000025 -S315600472000000000000000000000000000000000014 -S315600472100000000000000000000000000000000004 -S3156004722000000000000000000000000000000000F4 -S3156004723000000000000000000000000000000000E4 -S3156004724000000000000000000000000000000000D4 -S3156004725000000000000000000000000000000000C4 -S3156004726000000000000000000000000000000000B4 -S3156004727000000000000000000000000000000000A4 -S315600472800000000000000000000000000000000094 -S315600472900000000000000000000000000000000084 -S315600472A00000000000000000000000000000000074 -S315600472B00000000000000000000000000000000064 -S315600472C00000000000000000000000000000000054 -S315600472D00000000000000000000000000000000044 -S315600472E00000000000000000000000000000000034 -S315600472F00000000000000000000000000000000024 -S315600473000000000000000000000000000000000013 -S315600473100000000000000000000000000000000003 -S3156004732000000000000000000000000000000000F3 -S3156004733000000000000000000000000000000000E3 -S3156004734000000000000000000000000000000000D3 -S3156004735000000000000000000000000000000000C3 -S3156004736000000000000000000000000000000000B3 -S3156004737000000000000000000000000000000000A3 -S315600473800000000000000000000000000000000093 -S315600473900000000000000000000000000000000083 -S315600473A00000000000000000000000000000000073 -S315600473B00000000000000000000000000000000063 -S315600473C00000000000000000000000000000000053 -S315600473D00000000000000000000000000000000043 -S315600473E00000000000000000000000000000000033 -S315600473F00000000000000000000000000000000023 -S315600474000000000000000000000000000000000012 -S315600474100000000000000000000000000000000002 -S3156004742000000000000000000000000000000000F2 -S3156004743000000000000000000000000000000000E2 -S3156004744000000000000000000000000000000000D2 -S3156004745000000000000000000000000000000000C2 -S3156004746000000000000000000000000000000000B2 -S3156004747000000000000000000000000000000000A2 -S315600474800000000000000000000000000000000092 -S315600474900000000000000000000000000000000082 -S315600474A00000000000000000000000000000000072 -S315600474B00000000000000000000000000000000062 -S315600474C00000000000000000000000000000000052 -S315600474D00000000000000000000000000000000042 -S315600474E00000000000000000000000000000000032 -S315600474F00000000000000000000000000000000022 -S315600475000000000000000000000000000000000011 -S315600475100000000000000000000000000000000001 -S3156004752000000000000000000000000000000000F1 -S3156004753000000000000000000000000000000000E1 -S3156004754000000000000000000000000000000000D1 -S3156004755000000000000000000000000000000000C1 -S3156004756000000000000000000000000000000000B1 -S3156004757000000000000000000000000000000000A1 -S315600475800000000000000000000000000000000091 -S315600475900000000000000000000000000000000081 -S315600475A00000000000000000000000000000000071 -S315600475B00000000000000000000000000000000061 -S315600475C00000000000000000000000000000000051 -S315600475D00000000000000000000000000000000041 -S315600475E00000000000000000000000000000000031 -S315600475F00000000000000000000000000000000021 -S315600476000000000000000000000000000000000010 -S315600476100000000000000000000000000000000000 -S3156004762000000000000000000000000000000000F0 -S3156004763000000000000000000000000000000000E0 -S3156004764000000000000000000000000000000000D0 -S3156004765000000000000000000000000000000000C0 -S3156004766000000000000000000000000000000000B0 -S3156004767000000000000000000000000000000000A0 -S315600476800000000000000000000000000000000090 -S315600476900000000000000000000000000000000080 -S315600476A00000000000000000000000000000000070 -S315600476B00000000000000000000000000000000060 -S315600476C00000000000000000000000000000000050 -S315600476D00000000000000000000000000000000040 -S315600476E00000000000000000000000000000000030 -S315600476F00000000000000000000000000000000020 -S31560047700000000000000000000000000000000000F -S3156004771000000000000000000000000000000000FF -S3156004772000000000000000000000000000000000EF -S3156004773000000000000000000000000000000000DF -S3156004774000000000000000000000000000000000CF -S3156004775000000000000000000000000000000000BF -S3156004776000000000000000000000000000000000AF -S31560047770000000000000000000000000000000009F -S31560047780000000000000000000000000000000008F -S31560047790000000000000000000000000000000007F -S315600477A0000000000000000000000000000000006F -S315600477B0000000000000000000000000000000005F -S315600477C0000000000000000000000000000000004F -S315600477D0000000000000000000000000000000003F -S315600477E0000000000000000000000000000000002F -S315600477F0000000000000000000000000000000001F -S31560047800000000000000000000000000000000000E -S3156004781000000000000000000000000000000000FE -S3156004782000000000000000000000000000000000EE -S3156004783000000000000000000000000000000000DE -S3156004784000000000000000000000000000000000CE -S3156004785000000000000000000000000000000000BE -S3156004786000000000000000000000000000000000AE -S31560047870000000000000000000000000000000009E -S31560047880000000000000000000000000000000008E -S31560047890000000000000000000000000000000007E -S315600478A0000000000000000000000000000000006E -S315600478B0000000000000000000000000000000005E -S315600478C0000000000000000000000000000000004E -S315600478D0000000000000000000000000000000003E -S315600478E0000000000000000000000000000000002E -S315600478F0000000000000000000000000000000001E -S31560047900000000000000000000000000000000000D -S3156004791000000000000000000000000000000000FD -S3156004792000000000000000000000000000000000ED -S3156004793000000000000000000000000000000000DD -S3156004794000000000000000000000000000000000CD -S3156004795000000000000000000000000000000000BD -S3156004796000000000000000000000000000000000AD -S31560047970000000000000000000000000000000009D -S31560047980000000000000000000000000000000008D -S31560047990000000000000000000000000000000007D -S315600479A0000000000000000000000000000000006D -S315600479B0000000000000000000000000000000005D -S315600479C0000000000000000000000000000000004D -S315600479D0000000000000000000000000000000003D -S315600479E0000000000000000000000000000000002D -S315600479F0000000000000000000000000000000001D -S31560047A00000000000000000000000000000000000C -S31560047A1000000000000000000000000000000000FC -S31560047A2000000000000000000000000000000000EC -S31560047A3000000000000000000000000000000000DC -S31560047A4000000000000000000000000000000000CC -S31560047A5000000000000000000000000000000000BC -S31560047A6000000000000000000000000000000000AC -S31560047A70000000000000000000000000000000009C -S31560047A80000000000000000000000000000000008C -S31560047A90000000000000000000000000000000007C -S31560047AA0000000000000000000000000000000006C -S31560047AB0000000000000000000000000000000005C -S31560047AC0000000000000000000000000000000004C -S31560047AD0000000000000000000000000000000003C -S31560047AE0000000000000000000000000000000002C -S31560047AF0000000000000000000000000000000001C -S31560047B00000000000000000000000000000000000B -S31560047B1000000000000000000000000000000000FB -S31560047B2000000000000000000000000000000000EB -S31560047B3000000000000000000000000000000000DB -S31560047B4000000000000000000000000000000000CB -S31560047B5000000000000000000000000000000000BB -S31560047B6000000000000000000000000000000000AB -S31560047B70000000000000000000000000000000009B -S31560047B80000000000000000000000000000000008B -S31560047B90000000000000000000000000000000007B -S31560047BA0000000000000000000000000000000006B -S31560047BB0000000000000000000000000000000005B -S31560047BC0000000000000000000000000000000004B -S31560047BD0000000000000000000000000000000003B -S31560047BE0000000000000000000000000000000002B -S31560047BF0000000000000000000000000000000001B -S31560047C00000000000000000000000000000000000A -S31560047C1000000000000000000000000000000000FA -S31560047C2000000000000000000000000000000000EA -S31560047C3000000000000000000000000000000000DA -S31560047C4000000000000000000000000000000000CA -S31560047C5000000000000000000000000000000000BA -S31560047C6000000000000000000000000000000000AA -S31560047C70000000000000000000000000000000009A -S31560047C80000000000000000000000000000000008A -S31560047C90000000000000000000000000000000007A -S31560047CA0000000000000000000000000000000006A -S31560047CB0000000000000000000000000000000005A -S31560047CC0000000000000000000000000000000004A -S31560047CD0000000000000000000000000000000003A -S31560047CE0000000000000000000000000000000002A -S31560047CF0000000000000000000000000000000001A -S31560047D000000000000000000000000000000000009 -S31560047D1000000000000000000000000000000000F9 -S31560047D2000000000000000000000000000000000E9 -S31560047D3000000000000000000000000000000000D9 -S31560047D4000000000000000000000000000000000C9 -S31560047D5000000000000000000000000000000000B9 -S31560047D6000000000000000000000000000000000A9 -S31560047D700000000000000000000000000000000099 -S31560047D800000000000000000000000000000000089 -S31560047D900000000000000000000000000000000079 -S31560047DA00000000000000000000000000000000069 -S31560047DB00000000000000000000000000000000059 -S31560047DC00000000000000000000000000000000049 -S31560047DD00000000000000000000000000000000039 -S31560047DE00000000000000000000000000000000029 -S31560047DF00000000000000000000000000000000019 -S31560047E000000000000000000000000000000000008 -S31560047E1000000000000000000000000000000000F8 -S31560047E2000000000000000000000000000000000E8 -S31560047E3000000000000000000000000000000000D8 -S31560047E4000000000000000000000000000000000C8 -S31560047E5000000000000000000000000000000000B8 -S31560047E6000000000000000000000000000000000A8 -S31560047E700000000000000000000000000000000098 -S31560047E800000000000000000000000000000000088 -S31560047E900000000000000000000000000000000078 -S31560047EA00000000000000000000000000000000068 -S31560047EB00000000000000000000000000000000058 -S31560047EC00000000000000000000000000000000048 -S31560047ED00000000000000000000000000000000038 -S31560047EE00000000000000000000000000000000028 -S31560047EF00000000000000000000000000000000018 -S31560047F000000000000000000000000000000000007 -S31560047F1000000000000000000000000000000000F7 -S31560047F2000000000000000000000000000000000E7 -S31560047F3000000000000000000000000000000000D7 -S31560047F4000000000000000000000000000000000C7 -S31560047F5000000000000000000000000000000000B7 -S31560047F6000000000000000000000000000000000A7 -S31560047F700000000000000000000000000000000097 -S31560047F800000000000000000000000000000000087 -S31560047F900000000000000000000000000000000077 -S31560047FA00000000000000000000000000000000067 -S31560047FB00000000000000000000000000000000057 -S31560047FC00000000000000000000000000000000047 -S31560047FD00000000000000000000000000000000037 -S31560047FE00000000000000000000000000000000027 -S31560047FF00000000000000000000000000000000017 -S315600480000000000000000000000000000000000006 -S3156004801000000000000000000000000000000000F6 -S3156004802000000000000000000000000000000000E6 -S3156004803000000000000000000000000000000000D6 -S3156004804000000000000000000000000000000000C6 -S3156004805000000000000000000000000000000000B6 -S3156004806000000000000000000000000000000000A6 -S315600480700000000000000000000000000000000096 -S315600480800000000000000000000000000000000086 -S315600480900000000000000000000000000000000076 -S315600480A00000000000000000000000000000000066 -S315600480B00000000000000000000000000000000056 -S315600480C00000000000000000000000000000000046 -S315600480D00000000000000000000000000000000036 -S315600480E00000000000000000000000000000000026 -S315600480F00000000000000000000000000000000016 -S315600481000000000000000000000000000000000005 -S3156004811000000000000000000000000000000000F5 -S3156004812000000000000000000000000000000000E5 -S3156004813000000000000000000000000000000000D5 -S3156004814000000000000000000000000000000000C5 -S3156004815000000000000000000000000000000000B5 -S3156004816000000000000000000000000000000000A5 -S315600481700000000000000000000000000000000095 -S315600481800000000000000000000000000000000085 -S315600481900000000000000000000000000000000075 -S315600481A00000000000000000000000000000000065 -S315600481B00000000000000000000000000000000055 -S315600481C00000000000000000000000000000000045 -S315600481D00000000000000000000000000000000035 -S315600481E00000000000000000000000000000000025 -S315600481F00000000000000000000000000000000015 -S315600482000000000000000000000000000000000004 -S3156004821000000000000000000000000000000000F4 -S3156004822000000000000000000000000000000000E4 -S3156004823000000000000000000000000000000000D4 -S3156004824000000000000000000000000000000000C4 -S3156004825000000000000000000000000000000000B4 -S3156004826000000000000000000000000000000000A4 -S315600482700000000000000000000000000000000094 -S315600482800000000000000000000000000000000084 -S315600482900000000000000000000000000000000074 -S315600482A00000000000000000000000000000000064 -S315600482B00000000000000000000000000000000054 -S315600482C00000000000000000000000000000000044 -S315600482D00000000000000000000000000000000034 -S315600482E00000000000000000000000000000000024 -S315600482F00000000000000000000000000000000014 -S315600483000000000000000000000000000000000003 -S3156004831000000000000000000000000000000000F3 -S3156004832000000000000000000000000000000000E3 -S3156004833000000000000000000000000000000000D3 -S3156004834000000000000000000000000000000000C3 -S3156004835000000000000000000000000000000000B3 -S3156004836000000000000000000000000000000000A3 -S315600483700000000000000000000000000000000093 -S315600483800000000000000000000000000000000083 -S315600483900000000000000000000000000000000073 -S315600483A00000000000000000000000000000000063 -S315600483B00000000000000000000000000000000053 -S315600483C00000000000000000000000000000000043 -S315600483D00000000000000000000000000000000033 -S315600483E00000000000000000000000000000000023 -S315600483F00000000000000000000000000000000013 -S315600484000000000000000000000000000000000002 -S3156004841000000000000000000000000000000000F2 -S3156004842000000000000000000000000000000000E2 -S3156004843000000000000000000000000000000000D2 -S3156004844000000000000000000000000000000000C2 -S3156004845000000000000000000000000000000000B2 -S3156004846000000000000000000000000000000000A2 -S315600484700000000000000000000000000000000092 -S315600484800000000000000000000000000000000082 -S315600484900000000000000000000000000000000072 -S315600484A00000000000000000000000000000000062 -S315600484B00000000000000000000000000000000052 -S315600484C00000000000000000000000000000000042 -S315600484D00000000000000000000000000000000032 -S315600484E00000000000000000000000000000000022 -S315600484F00000000000000000000000000000000012 -S315600485000000000000000000000000000000000001 -S3156004851000000000000000000000000000000000F1 -S3156004852000000000000000000000000000000000E1 -S3156004853000000000000000000000000000000000D1 -S3156004854000000000000000000000000000000000C1 -S3156004855000000000000000000000000000000000B1 -S3156004856000000000000000000000000000000000A1 -S315600485700000000000000000000000000000000091 -S315600485800000000000000000000000000000000081 -S315600485900000000000000000000000000000000071 -S315600485A00000000000000000000000000000000061 -S315600485B00000000000000000000000000000000051 -S315600485C00000000000000000000000000000000041 -S315600485D00000000000000000000000000000000031 -S315600485E00000000000000000000000000000000021 -S315600485F00000000000000000000000000000000011 -S315600486000000000000000000000000000000000000 -S3156004861000000000000000000000000000000000F0 -S3156004862000000000000000000000000000000000E0 -S3156004863000000000000000000000000000000000D0 -S3156004864000000000000000000000000000000000C0 -S3156004865000000000000000000000000000000000B0 -S3156004866000000000000000000000000000000000A0 -S315600486700000000000000000000000000000000090 -S315600486800000000000000000000000000000000080 -S315600486900000000000000000000000000000000070 -S315600486A00000000000000000000000000000000060 -S315600486B00000000000000000000000000000000050 -S315600486C00000000000000000000000000000000040 -S315600486D00000000000000000000000000000000030 -S315600486E00000000000000000000000000000000020 -S315600486F00000000000000000000000000000000010 -S3156004870000000000000000000000000000000000FF -S3156004871000000000000000000000000000000000EF -S3156004872000000000000000000000000000000000DF -S3156004873000000000000000000000000000000000CF -S3156004874000000000000000000000000000000000BF -S3156004875000000000000000000000000000000000AF -S31560048760000000000000000000000000000000009F -S31560048770000000000000000000000000000000008F -S31560048780000000000000000000000000000000007F -S31560048790000000000000000000000000000000006F -S315600487A0000000000000000000000000000000005F -S315600487B0000000000000000000000000000000004F -S315600487C0000000000000000000000000000000003F -S315600487D0000000000000000000000000000000002F -S315600487E0000000000000000000000000000000001F -S315600487F0000000000000000000000000000000000F -S3156004880000000000000000000000000000000000FE -S3156004881000000000000000000000000000000000EE -S3156004882000000000000000000000000000000000DE -S3156004883000000000000000000000000000000000CE -S3156004884000000000000000000000000000000000BE -S3156004885000000000000000000000000000000000AE -S31560048860000000000000000000000000000000009E -S31560048870000000000000000000000000000000008E -S31560048880000000000000000000000000000000007E -S31560048890000000000000000000000000000000006E -S315600488A0000000000000000000000000000000005E -S315600488B0000000000000000000000000000000004E -S315600488C0000000000000000000000000000000003E -S315600488D0000000000000000000000000000000002E -S315600488E0000000000000000000000000000000001E -S315600488F0000000000000000000000000000000000E -S3156004890000000000000000000000000000000000FD -S3156004891000000000000000000000000000000000ED -S3156004892000000000000000000000000000000000DD -S3156004893000000000000000000000000000000000CD -S3156004894000000000000000000000000000000000BD -S3156004895000000000000000000000000000000000AD -S31560048960000000000000000000000000000000009D -S31560048970000000000000000000000000000000008D -S31560048980000000000000000000000000000000007D -S31560048990000000000000000000000000000000006D -S315600489A0000000000000000000000000000000005D -S315600489B0000000000000000000000000000000004D -S315600489C0000000000000000000000000000000003D -S315600489D0000000000000000000000000000000002D -S315600489E0000000000000000000000000000000001D -S315600489F0000000000000000000000000000000000D -S31560048A0000000000000000000000000000000000FC -S31560048A1000000000000000000000000000000000EC -S31560048A2000000000000000000000000000000000DC -S31560048A3000000000000000000000000000000000CC -S31560048A4000000000000000000000000000000000BC -S31560048A5000000000000000000000000000000000AC -S31560048A60000000000000000000000000000000009C -S31560048A70000000000000000000000000000000008C -S31560048A80000000000000000000000000000000007C -S31560048A90000000000000000000000000000000006C -S31560048AA0000000000000000000000000000000005C -S31560048AB0000000000000000000000000000000004C -S31560048AC0000000000000000000000000000000003C -S31560048AD0000000000000000000000000000000002C -S31560048AE0000000000000000000000000000000001C -S31560048AF0000000000000000000000000000000000C -S31560048B0000000000000000000000000000000000FB -S31560048B1000000000000000000000000000000000EB -S31560048B2000000000000000000000000000000000DB -S31560048B3000000000000000000000000000000000CB -S31560048B4000000000000000000000000000000000BB -S31560048B5000000000000000000000000000000000AB -S31560048B60000000000000000000000000000000009B -S31560048B70000000000000000000000000000000008B -S31560048B80000000000000000000000000000000007B -S31560048B90000000000000000000000000000000006B -S31560048BA0000000000000000000000000000000005B -S31560048BB0000000000000000000000000000000004B -S31560048BC0000000000000000000000000000000003B -S31560048BD0000000000000000000000000000000002B -S31560048BE0000000000000000000000000000000001B -S31560048BF0000000000000000000000000000000000B -S31560048C0000000000000000000000000000000000FA -S31560048C1000000000000000000000000000000000EA -S31560048C2000000000000000000000000000000000DA -S31560048C3000000000000000000000000000000000CA -S31560048C4000000000000000000000000000000000BA -S31560048C5000000000000000000000000000000000AA -S31560048C60000000000000000000000000000000009A -S31560048C70000000000000000000000000000000008A -S31560048C80000000000000000000000000000000007A -S31560048C90000000000000000000000000000000006A -S31560048CA0000000000000000000000000000000005A -S31560048CB0000000000000000000000000000000004A -S31560048CC0000000000000000000000000000000003A -S31560048CD0000000000000000000000000000000002A -S31560048CE0000000000000000000000000000000001A -S31560048CF0000000000000000000000000000000000A -S31560048D0000000000000000000000000000000000F9 -S31560048D1000000000000000000000000000000000E9 -S31560048D2000000000000000000000000000000000D9 -S31560048D3000000000000000000000000000000000C9 -S31560048D4000000000000000000000000000000000B9 -S31560048D5000000000000000000000000000000000A9 -S31560048D600000000000000000000000000000000099 -S31560048D700000000000000000000000000000000089 -S31560048D800000000000000000000000000000000079 -S31560048D900000000000000000000000000000000069 -S31560048DA00000000000000000000000000000000059 -S31560048DB00000000000000000000000000000000049 -S31560048DC00000000000000000000000000000000039 -S31560048DD00000000000000000000000000000000029 -S31560048DE00000000000000000000000000000000019 -S31560048DF00000000000000000000000000000000009 -S31560048E0000000000000000000000000000000000F8 -S31560048E1000000000000000000000000000000000E8 -S31560048E2000000000000000000000000000000000D8 -S31560048E3000000000000000000000000000000000C8 -S31560048E4000000000000000000000000000000000B8 -S31560048E5000000000000000000000000000000000A8 -S31560048E600000000000000000000000000000000098 -S31560048E700000000000000000000000000000000088 -S31560048E800000000000000000000000000000000078 -S31560048E900000000000000000000000000000000068 -S31560048EA00000000000000000000000000000000058 -S31560048EB00000000000000000000000000000000048 -S31560048EC00000000000000000000000000000000038 -S31560048ED00000000000000000000000000000000028 -S31560048EE00000000000000000000000000000000018 -S31560048EF00000000000000000000000000000000008 -S31560048F0000000000000000000000000000000000F7 -S31560048F1000000000000000000000000000000000E7 -S31560048F2000000000000000000000000000000000D7 -S31560048F3000000000000000000000000000000000C7 -S31560048F4000000000000000000000000000000000B7 -S31560048F5000000000000000000000000000000000A7 -S31560048F600000000000000000000000000000000097 -S31560048F700000000000000000000000000000000087 -S31560048F800000000000000000000000000000000077 -S31560048F900000000000000000000000000000000067 -S31560048FA00000000000000000000000000000000057 -S31560048FB00000000000000000000000000000000047 -S31560048FC00000000000000000000000000000000037 -S31560048FD00000000000000000000000000000000027 -S31560048FE00000000000000000000000000000000017 -S31560048FF00000000000000000000000000000000007 -S3156004900000000000000000000000000000000000F6 -S3156004901000000000000000000000000000000000E6 -S3156004902000000000000000000000000000000000D6 -S3156004903000000000000000000000000000000000C6 -S3156004904000000000000000000000000000000000B6 -S3156004905000000000000000000000000000000000A6 -S315600490600000000000000000000000000000000096 -S315600490700000000000000000000000000000000086 -S315600490800000000000000000000000000000000076 -S315600490900000000000000000000000000000000066 -S315600490A00000000000000000000000000000000056 -S315600490B00000000000000000000000000000000046 -S315600490C00000000000000000000000000000000036 -S315600490D00000000000000000000000000000000026 -S315600490E00000000000000000000000000000000016 -S315600490F00000000000000000000000000000000006 -S3156004910000000000000000000000000000000000F5 -S3156004911000000000000000000000000000000000E5 -S3156004912000000000000000000000000000000000D5 -S3156004913000000000000000000000000000000000C5 -S3156004914000000000000000000000000000000000B5 -S3156004915000000000000000000000000000000000A5 -S315600491600000000000000000000000000000000095 -S315600491700000000000000000000000000000000085 -S315600491800000000000000000000000000000000075 -S315600491900000000000000000000000000000000065 -S315600491A00000000000000000000000000000000055 -S315600491B00000000000000000000000000000000045 -S315600491C00000000000000000000000000000000035 -S315600491D00000000000000000000000000000000025 -S315600491E00000000000000000000000000000000015 -S315600491F00000000000000000000000000000000005 -S3156004920000000000000000000000000000000000F4 -S3156004921000000000000000000000000000000000E4 -S3156004922000000000000000000000000000000000D4 -S3156004923000000000000000000000000000000000C4 -S3156004924000000000000000000000000000000000B4 -S3156004925000000000000000000000000000000000A4 -S315600492600000000000000000000000000000000094 -S315600492700000000000000000000000000000000084 -S315600492800000000000000000000000000000000074 -S315600492900000000000000000000000000000000064 -S315600492A00000000000000000000000000000000054 -S315600492B00000000000000000000000000000000044 -S315600492C00000000000000000000000000000000034 -S315600492D00000000000000000000000000000000024 -S315600492E00000000000000000000000000000000014 -S315600492F00000000000000000000000000000000004 -S3156004930000000000000000000000000000000000F3 -S3156004931000000000000000000000000000000000E3 -S3156004932000000000000000000000000000000000D3 -S3156004933000000000000000000000000000000000C3 -S3156004934000000000000000000000000000000000B3 -S3156004935000000000000000000000000000000000A3 -S315600493600000000000000000000000000000000093 -S315600493700000000000000000000000000000000083 -S315600493800000000000000000000000000000000073 -S315600493900000000000000000000000000000000063 -S315600493A00000000000000000000000000000000053 -S315600493B00000000000000000000000000000000043 -S315600493C00000000000000000000000000000000033 -S315600493D00000000000000000000000000000000023 -S315600493E00000000000000000000000000000000013 -S315600493F00000000000000000000000000000000003 -S3156004940000000000000000000000000000000000F2 -S3156004941000000000000000000000000000000000E2 -S3156004942000000000000000000000000000000000D2 -S3156004943000000000000000000000000000000000C2 -S3156004944000000000000000000000000000000000B2 -S3156004945000000000000000000000000000000000A2 -S315600494600000000000000000000000000000000092 -S315600494700000000000000000000000000000000082 -S315600494800000000000000000000000000000000072 -S315600494900000000000000000000000000000000062 -S315600494A00000000000000000000000000000000052 -S315600494B00000000000000000000000000000000042 -S315600494C00000000000000000000000000000000032 -S315600494D00000000000000000000000000000000022 -S315600494E00000000000000000000000000000000012 -S315600494F00000000000000000000000000000000002 -S3156004950000000000000000000000000000000000F1 -S3156004951000000000000000000000000000000000E1 -S3156004952000000000000000000000000000000000D1 -S3156004953000000000000000000000000000000000C1 -S3156004954000000000000000000000000000000000B1 -S3156004955000000000000000000000000000000000A1 -S315600495600000000000000000000000000000000091 -S315600495700000000000000000000000000000000081 -S315600495800000000000000000000000000000000071 -S315600495900000000000000000000000000000000061 -S315600495A00000000000000000000000000000000051 -S315600495B00000000000000000000000000000000041 -S315600495C00000000000000000000000000000000031 -S315600495D00000000000000000000000000000000021 -S315600495E00000000000000000000000000000000011 -S315600495F00000000000000000000000000000000001 -S3156004960000000000000000000000000000000000F0 -S3156004961000000000000000000000000000000000E0 -S3156004962000000000000000000000000000000000D0 -S3156004963000000000000000000000000000000000C0 -S3156004964000000000000000000000000000000000B0 -S3156004965000000000000000000000000000000000A0 -S315600496600000000000000000000000000000000090 -S315600496700000000000000000000000000000000080 -S315600496800000000000000000000000000000000070 -S315600496900000000000000000000000000000000060 -S315600496A00000000000000000000000000000000050 -S315600496B00000000000000000000000000000000040 -S315600496C00000000000000000000000000000000030 -S315600496D00000000000000000000000000000000020 -S315600496E00000000000000000000000000000000010 -S315600496F00000000000000000000000000000000000 -S3156004970000000000000000000000000000000000EF -S3156004971000000000000000000000000000000000DF -S3156004972000000000000000000000000000000000CF -S3156004973000000000000000000000000000000000BF -S3156004974000000000000000000000000000000000AF -S31560049750000000000000000000000000000000009F -S31560049760000000000000000000000000000000008F -S31560049770000000000000000000000000000000007F -S31560049780000000000000000000000000000000006F -S31560049790000000000000000000000000000000005F -S315600497A0000000000000000000000000000000004F -S315600497B0000000000000000000000000000000003F -S315600497C0000000000000000000000000000000002F -S315600497D0000000000000000000000000000000001F -S315600497E0000000000000000000000000000000000F -S315600497F000000000000000000000000000000000FF -S3156004980000000000000000000000000000000000EE -S3156004981000000000000000000000000000000000DE -S3156004982000000000000000000000000000000000CE -S3156004983000000000000000000000000000000000BE -S3156004984000000000000000000000000000000000AE -S31560049850000000000000000000000000000000009E -S31560049860000000000000000000000000000000008E -S31560049870000000000000000000000000000000007E -S31560049880000000000000000000000000000000006E -S31560049890000000000000000000000000000000005E -S315600498A0000000000000000000000000000000004E -S315600498B0000000000000000000000000000000003E -S315600498C0000000000000000000000000000000002E -S315600498D0000000000000000000000000000000001E -S315600498E0000000000000000000000000000000000E -S315600498F000000000000000000000000000000000FE -S3156004990000000000000000000000000000000000ED -S3156004991000000000000000000000000000000000DD -S3156004992000000000000000000000000000000000CD -S3156004993000000000000000000000000000000000BD -S3156004994000000000000000000000000000000000AD -S31560049950000000000000000000000000000000009D -S31560049960000000000000000000000000000000008D -S31560049970000000000000000000000000000000007D -S31560049980000000000000000000000000000000006D -S31560049990000000000000000000000000000000005D -S315600499A0000000000000000000000000000000004D -S315600499B0000000000000000000000000000000003D -S315600499C0000000000000000000000000000000002D -S315600499D0000000000000000000000000000000001D -S315600499E0000000000000000000000000000000000D -S315600499F000000000000000000000000000000000FD -S31560049A0000000000000000000000000000000000EC -S31560049A1000000000000000000000000000000000DC -S31560049A2000000000000000000000000000000000CC -S31560049A3000000000000000000000000000000000BC -S31560049A4000000000000000000000000000000000AC -S31560049A50000000000000000000000000000000009C -S31560049A60000000000000000000000000000000008C -S31560049A70000000000000000000000000000000007C -S31560049A80000000000000000000000000000000006C -S31560049A90000000000000000000000000000000005C -S31560049AA0000000000000000000000000000000004C -S31560049AB0000000000000000000000000000000003C -S31560049AC0000000000000000000000000000000002C -S31560049AD0000000000000000000000000000000001C -S31560049AE0000000000000000000000000000000000C -S31560049AF000000000000000000000000000000000FC -S31560049B0000000000000000000000000000000000EB -S31560049B1000000000000000000000000000000000DB -S31560049B2000000000000000000000000000000000CB -S31560049B3000000000000000000000000000000000BB -S31560049B4000000000000000000000000000000000AB -S31560049B50000000000000000000000000000000009B -S31560049B60000000000000000000000000000000008B -S31560049B70000000000000000000000000000000007B -S31560049B80000000000000000000000000000000006B -S31560049B90000000000000000000000000000000005B -S31560049BA0000000000000000000000000000000004B -S31560049BB0000000000000000000000000000000003B -S31560049BC0000000000000000000000000000000002B -S31560049BD0000000000000000000000000000000001B -S31560049BE0000000000000000000000000000000000B -S31560049BF000000000000000000000000000000000FB -S31560049C0000000000000000000000000000000000EA -S31560049C1000000000000000000000000000000000DA -S31560049C2000000000000000000000000000000000CA -S31560049C3000000000000000000000000000000000BA -S31560049C4000000000000000000000000000000000AA -S31560049C50000000000000000000000000000000009A -S31560049C60000000000000000000000000000000008A -S31560049C70000000000000000000000000000000007A -S31560049C80000000000000000000000000000000006A -S31560049C90000000000000000000000000000000005A -S31560049CA0000000000000000000000000000000004A -S31560049CB0000000000000000000000000000000003A -S31560049CC0000000000000000000000000000000002A -S31560049CD0000000000000000000000000000000001A -S31560049CE0000000000000000000000000000000000A -S31560049CF000000000000000000000000000000000FA -S31560049D0000000000000000000000000000000000E9 -S31560049D1000000000000000000000000000000000D9 -S31560049D2000000000000000000000000000000000C9 -S31560049D3000000000000000000000000000000000B9 -S31560049D4000000000000000000000000000000000A9 -S31560049D500000000000000000000000000000000099 -S31560049D600000000000000000000000000000000089 -S31560049D700000000000000000000000000000000079 -S31560049D800000000000000000000000000000000069 -S31560049D900000000000000000000000000000000059 -S31560049DA00000000000000000000000000000000049 -S31560049DB00000000000000000000000000000000039 -S31560049DC00000000000000000000000000000000029 -S31560049DD00000000000000000000000000000000019 -S31560049DE00000000000000000000000000000000009 -S31560049DF000000000000000000000000000000000F9 -S31560049E0000000000000000000000000000000000E8 -S31560049E1000000000000000000000000000000000D8 -S31560049E2000000000000000000000000000000000C8 -S31560049E3000000000000000000000000000000000B8 -S31560049E4000000000000000000000000000000000A8 -S31560049E500000000000000000000000000000000098 -S31560049E600000000000000000000000000000000088 -S31560049E700000000000000000000000000000000078 -S31560049E800000000000000000000000000000000068 -S31560049E900000000000000000000000000000000058 -S31560049EA00000000000000000000000000000000048 -S31560049EB00000000000000000000000000000000038 -S31560049EC00000000000000000000000000000000028 -S31560049ED00000000000000000000000000000000018 -S31560049EE00000000000000000000000000000000008 -S31560049EF000000000000000000000000000000000F8 -S31560049F0000000000000000000000000000000000E7 -S31560049F1000000000000000000000000000000000D7 -S31560049F2000000000000000000000000000000000C7 -S31560049F3000000000000000000000000000000000B7 -S31560049F4000000000000000000000000000000000A7 -S31560049F500000000000000000000000000000000097 -S31560049F600000000000000000000000000000000087 -S31560049F700000000000000000000000000000000077 -S31560049F800000000000000000000000000000000067 -S31560049F900000000000000000000000000000000057 -S31560049FA00000000000000000000000000000000047 -S31560049FB00000000000000000000000000000000037 -S31560049FC00000000000000000000000000000000027 -S31560049FD00000000000000000000000000000000017 -S31560049FE00000000000000000000000000000000007 -S31560049FF000000000000000000000000000000000F7 -S3156004A00000000000000000000000000000000000E6 -S3156004A01000000000000000000000000000000000D6 -S3156004A02000000000000000000000000000000000C6 -S3156004A03000000000000000000000000000000000B6 -S3156004A04000000000000000000000000000000000A6 -S3156004A0500000000000000000000000000000000096 -S3156004A0600000000000000000000000000000000086 -S3156004A0700000000000000000000000000000000076 -S3156004A0800000000000000000000000000000000066 -S3156004A0900000000000000000000000000000000056 -S3156004A0A00000000000000000000000000000000046 -S3156004A0B00000000000000000000000000000000036 -S3156004A0C00000000000000000000000000000000026 -S3156004A0D00000000000000000000000000000000016 -S3156004A0E00000000000000000000000000000000006 -S3156004A0F000000000000000000000000000000000F6 -S3156004A10000000000000000000000000000000000E5 -S3156004A11000000000000000000000000000000000D5 -S3156004A12000000000000000000000000000000000C5 -S3156004A13000000000000000000000000000000000B5 -S3156004A14000000000000000000000000000000000A5 -S3156004A1500000000000000000000000000000000095 -S3156004A1600000000000000000000000000000000085 -S3156004A1700000000000000000000000000000000075 -S3156004A1800000000000000000000000000000000065 -S3156004A1900000000000000000000000000000000055 -S3156004A1A00000000000000000000000000000000045 -S3156004A1B00000000000000000000000000000000035 -S3156004A1C00000000000000000000000000000000025 -S3156004A1D00000000000000000000000000000000015 -S3156004A1E00000000000000000000000000000000005 -S3156004A1F000000000000000000000000000000000F5 -S3156004A20000000000000000000000000000000000E4 -S3156004A21000000000000000000000000000000000D4 -S3156004A22000000000000000000000000000000000C4 -S3156004A23000000000000000000000000000000000B4 -S3156004A24000000000000000000000000000000000A4 -S3156004A2500000000000000000000000000000000094 -S3156004A2600000000000000000000000000000000084 -S3156004A2700000000000000000000000000000000074 -S3156004A2800000000000000000000000000000000064 -S3156004A2900000000000000000000000000000000054 -S3156004A2A00000000000000000000000000000000044 -S3156004A2B00000000000000000000000000000000034 -S3156004A2C00000000000000000000000000000000024 -S3156004A2D00000000000000000000000000000000014 -S3156004A2E00000000000000000000000000000000004 -S3156004A2F000000000000000000000000000000000F4 -S3156004A30000000000000000000000000000000000E3 -S3156004A31000000000000000000000000000000000D3 -S3156004A32000000000000000000000000000000000C3 -S3156004A33000000000000000000000000000000000B3 -S3156004A34000000000000000000000000000000000A3 -S3156004A3500000000000000000000000000000000093 -S3156004A3600000000000000000000000000000000083 -S3156004A3700000000000000000000000000000000073 -S3156004A3800000000000000000000000000000000063 -S3156004A3900000000000000000000000000000000053 -S3156004A3A00000000000000000000000000000000043 -S3156004A3B00000000000000000000000000000000033 -S3156004A3C00000000000000000000000000000000023 -S3156004A3D00000000000000000000000000000000013 -S3156004A3E00000000000000000000000000000000003 -S3156004A3F000000000000000000000000000000000F3 -S3156004A40000000000000000000000000000000000E2 -S3156004A41000000000000000000000000000000000D2 -S3156004A42000000000000000000000000000000000C2 -S3156004A43000000000000000000000000000000000B2 -S3156004A44000000000000000000000000000000000A2 -S3156004A4500000000000000000000000000000000092 -S3156004A4600000000000000000000000000000000082 -S3156004A4700000000000000000000000000000000072 -S3156004A4800000000000000000000000000000000062 -S3156004A4900000000000000000000000000000000052 -S3156004A4A00000000000000000000000000000000042 -S3156004A4B00000000000000000000000000000000032 -S3156004A4C00000000000000000000000000000000022 -S3156004A4D00000000000000000000000000000000012 -S3156004A4E00000000000000000000000000000000002 -S3156004A4F000000000000000000000000000000000F2 -S3156004A50000000000000000000000000000000000E1 -S3156004A51000000000000000000000000000000000D1 -S3156004A52000000000000000000000000000000000C1 -S3156004A53000000000000000000000000000000000B1 -S3156004A54000000000000000000000000000000000A1 -S3156004A5500000000000000000000000000000000091 -S3156004A5600000000000000000000000000000000081 -S3156004A5700000000000000000000000000000000071 -S3156004A5800000000000000000000000000000000061 -S3156004A5900000000000000000000000000000000051 -S3156004A5A00000000000000000000000000000000041 -S3156004A5B00000000000000000000000000000000031 -S3156004A5C00000000000000000000000000000000021 -S3156004A5D00000000000000000000000000000000011 -S3156004A5E00000000000000000000000000000000001 -S3156004A5F000000000000000000000000000000000F1 -S3156004A60000000000000000000000000000000000E0 -S3156004A61000000000000000000000000000000000D0 -S3156004A62000000000000000000000000000000000C0 -S3156004A63000000000000000000000000000000000B0 -S3156004A64000000000000000000000000000000000A0 -S3156004A6500000000000000000000000000000000090 -S3156004A6600000000000000000000000000000000080 -S3156004A6700000000000000000000000000000000070 -S3156004A6800000000000000000000000000000000060 -S3156004A6900000000000000000000000000000000050 -S3156004A6A00000000000000000000000000000000040 -S3156004A6B00000000000000000000000000000000030 -S3156004A6C00000000000000000000000000000000020 -S3156004A6D00000000000000000000000000000000010 -S3156004A6E00000000000000000000000000000000000 -S3156004A6F000000000000000000000000000000000F0 -S3156004A70000000000000000000000000000000000DF -S3156004A71000000000000000000000000000000000CF -S3156004A72000000000000000000000000000000000BF -S3156004A73000000000000000000000000000000000AF -S3156004A740000000000000000000000000000000009F -S3156004A750000000000000000000000000000000008F -S3156004A760000000000000000000000000000000007F -S3156004A770000000000000000000000000000000006F -S3156004A780000000000000000000000000000000005F -S3156004A790000000000000000000000000000000004F -S3156004A7A0000000000000000000000000000000003F -S3156004A7B0000000000000000000000000000000002F -S3156004A7C0000000000000000000000000000000001F -S3156004A7D0000000000000000000000000000000000F -S3156004A7E000000000000000000000000000000000FF -S3156004A7F000000000000000000000000000000000EF -S3156004A80000000000000000000000000000000000DE -S3156004A81000000000000000000000000000000000CE -S3156004A82000000000000000000000000000000000BE -S3156004A83000000000000000000000000000000000AE -S3156004A840000000000000000000000000000000009E -S3156004A850000000000000000000000000000000008E -S3156004A860000000000000000000000000000000007E -S3156004A870000000000000000000000000000000006E -S3156004A880000000000000000000000000000000005E -S3156004A890000000000000000000000000000000004E -S3156004A8A0000000000000000000000000000000003E -S3156004A8B0000000000000000000000000000000002E -S3156004A8C0000000000000000000000000000000001E -S3156004A8D0000000000000000000000000000000000E -S3156004A8E000000000000000000000000000000000FE -S3156004A8F000000000000000000000000000000000EE -S3156004A90000000000000000000000000000000000DD -S3156004A91000000000000000000000000000000000CD -S3156004A92000000000000000000000000000000000BD -S3156004A93000000000000000000000000000000000AD -S3156004A940000000000000000000000000000000009D -S3156004A950000000000000000000000000000000008D -S3156004A960000000000000000000000000000000007D -S3156004A970000000000000000000000000000000006D -S3156004A980000000000000000000000000000000005D -S3156004A990000000000000000000000000000000004D -S3156004A9A0000000000000000000000000000000003D -S3156004A9B0000000000000000000000000000000002D -S3156004A9C0000000000000000000000000000000001D -S3156004A9D0000000000000000000000000000000000D -S3156004A9E000000000000000000000000000000000FD -S3156004A9F000000000000000000000000000000000ED -S3156004AA0000000000000000000000000000000000DC -S3156004AA1000000000000000000000000000000000CC -S3156004AA2000000000000000000000000000000000BC -S3156004AA3000000000000000000000000000000000AC -S3156004AA40000000000000000000000000000000009C -S3156004AA50000000000000000000000000000000008C -S3156004AA60000000000000000000000000000000007C -S3156004AA70000000000000000000000000000000006C -S3156004AA80000000000000000000000000000000005C -S3156004AA90000000000000000000000000000000004C -S3156004AAA0000000000000000000000000000000003C -S3156004AAB0000000000000000000000000000000002C -S3156004AAC0000000000000000000000000000000001C -S3156004AAD0000000000000000000000000000000000C -S3156004AAE000000000000000000000000000000000FC -S3156004AAF000000000000000000000000000000000EC -S3156004AB0000000000000000000000000000000000DB -S3156004AB1000000000000000000000000000000000CB -S3156004AB2000000000000000000000000000000000BB -S3156004AB3000000000000000000000000000000000AB -S3156004AB40000000000000000000000000000000009B -S3156004AB50000000000000000000000000000000008B -S3156004AB60000000000000000000000000000000007B -S3156004AB70000000000000000000000000000000006B -S3156004AB80000000000000000000000000000000005B -S3156004AB90000000000000000000000000000000004B -S3156004ABA0000000000000000000000000000000003B -S3156004ABB0000000000000000000000000000000002B -S3156004ABC0000000000000000000000000000000001B -S3156004ABD0000000000000000000000000000000000B -S3156004ABE000000000000000000000000000000000FB -S3156004ABF000000000000000000000000000000000EB -S3156004AC0000000000000000000000000000000000DA -S3156004AC1000000000000000000000000000000000CA -S3156004AC2000000000000000000000000000000000BA -S3156004AC3000000000000000000000000000000000AA -S3156004AC40000000000000000000000000000000009A -S3156004AC50000000000000000000000000000000008A -S3156004AC60000000000000000000000000000000007A -S3156004AC70000000000000000000000000000000006A -S3156004AC80000000000000000000000000000000005A -S3156004AC90000000000000000000000000000000004A -S3156004ACA0000000000000000000000000000000003A -S3156004ACB0000000000000000000000000000000002A -S3156004ACC0000000000000000000000000000000001A -S3156004ACD0000000000000000000000000000000000A -S3156004ACE000000000000000000000000000000000FA -S3156004ACF000000000000000000000000000000000EA -S3156004AD0000000000000000000000000000000000D9 -S3156004AD1000000000000000000000000000000000C9 -S3156004AD2000000000000000000000000000000000B9 -S3156004AD3000000000000000000000000000000000A9 -S3156004AD400000000000000000000000000000000099 -S3156004AD500000000000000000000000000000000089 -S3156004AD600000000000000000000000000000000079 -S3156004AD700000000000000000000000000000000069 -S3156004AD800000000000000000000000000000000059 -S3156004AD900000000000000000000000000000000049 -S3156004ADA00000000000000000000000000000000039 -S3156004ADB00000000000000000000000000000000029 -S3156004ADC00000000000000000000000000000000019 -S3156004ADD00000000000000000000000000000000009 -S3156004ADE000000000000000000000000000000000F9 -S3156004ADF000000000000000000000000000000000E9 -S3156004AE0000000000000000000000000000000000D8 -S3156004AE1000000000000000000000000000000000C8 -S3156004AE2000000000000000000000000000000000B8 -S3156004AE3000000000000000000000000000000000A8 -S3156004AE400000000000000000000000000000000098 -S3156004AE500000000000000000000000000000000088 -S3156004AE600000000000000000000000000000000078 -S3156004AE700000000000000000000000000000000068 -S3156004AE800000000000000000000000000000000058 -S3156004AE900000000000000000000000000000000048 -S3156004AEA00000000000000000000000000000000038 -S3156004AEB00000000000000000000000000000000028 -S3156004AEC00000000000000000000000000000000018 -S3156004AED00000000000000000000000000000000008 -S3156004AEE000000000000000000000000000000000F8 -S3156004AEF000000000000000000000000000000000E8 -S3156004AF0000000000000000000000000000000000D7 -S3156004AF1000000000000000000000000000000000C7 -S3156004AF2000000000000000000000000000000000B7 -S3156004AF3000000000000000000000000000000000A7 -S3156004AF400000000000000000000000000000000097 -S3156004AF500000000000000000000000000000000087 -S3156004AF600000000000000000000000000000000077 -S3156004AF700000000000000000000000000000000067 -S3156004AF800000000000000000000000000000000057 -S3156004AF900000000000000000000000000000000047 -S3156004AFA00000000000000000000000000000000037 -S3156004AFB00000000000000000000000000000000027 -S3156004AFC00000000000000000000000000000000017 -S3156004AFD00000000000000000000000000000000007 -S3156004AFE000000000000000000000000000000000F7 -S3156004AFF000000000000000000000000000000000E7 -S3156004B00000000000000000000000000000000000D6 -S3156004B01000000000000000000000000000000000C6 -S3156004B02000000000000000000000000000000000B6 -S3156004B03000000000000000000000000000000000A6 -S3156004B0400000000000000000000000000000000096 -S3156004B0500000000000000000000000000000000086 -S3156004B0600000000000000000000000000000000076 -S3156004B0700000000000000000000000000000000066 -S3156004B0800000000000000000000000000000000056 -S3156004B0900000000000000000000000000000000046 -S3156004B0A00000000000000000000000000000000036 -S3156004B0B00000000000000000000000000000000026 -S3156004B0C00000000000000000000000000000000016 -S3156004B0D00000000000000000000000000000000006 -S3156004B0E000000000000000000000000000000000F6 -S3156004B0F000000000000000000000000000000000E6 -S3156004B10000000000000000000000000000000000D5 -S3156004B11000000000000000000000000000000000C5 -S3156004B12000000000000000000000000000000000B5 -S3156004B13000000000000000000000000000000000A5 -S3156004B1400000000000000000000000000000000095 -S3156004B1500000000000000000000000000000000085 -S3156004B1600000000000000000000000000000000075 -S3156004B1700000000000000000000000000000000065 -S3156004B1800000000000000000000000000000000055 -S3156004B1900000000000000000000000000000000045 -S3156004B1A00000000000000000000000000000000035 -S3156004B1B00000000000000000000000000000000025 -S3156004B1C00000000000000000000000000000000015 -S3156004B1D00000000000000000000000000000000005 -S3156004B1E000000000000000000000000000000000F5 -S3156004B1F000000000000000000000000000000000E5 -S3156004B20000000000000000000000000000000000D4 -S3156004B21000000000000000000000000000000000C4 -S3156004B22000000000000000000000000000000000B4 -S3156004B23000000000000000000000000000000000A4 -S3156004B2400000000000000000000000000000000094 -S3156004B2500000000000000000000000000000000084 -S3156004B2600000000000000000000000000000000074 -S3156004B2700000000000000000000000000000000064 -S3156004B2800000000000000000000000000000000054 -S3156004B2900000000000000000000000000000000044 -S3156004B2A00000000000000000000000000000000034 -S3156004B2B00000000000000000000000000000000024 -S3156004B2C00000000000000000000000000000000014 -S3156004B2D00000000000000000000000000000000004 -S3156004B2E000000000000000000000000000000000F4 -S3156004B2F000000000000000000000000000000000E4 -S3156004B30000000000000000000000000000000000D3 -S3156004B31000000000000000000000000000000000C3 -S3156004B32000000000000000000000000000000000B3 -S3156004B33000000000000000000000000000000000A3 -S3156004B3400000000000000000000000000000000093 -S3156004B3500000000000000000000000000000000083 -S3156004B3600000000000000000000000000000000073 -S3156004B3700000000000000000000000000000000063 -S3156004B3800000000000000000000000000000000053 -S3156004B3900000000000000000000000000000000043 -S3156004B3A00000000000000000000000000000000033 -S3156004B3B00000000000000000000000000000000023 -S3156004B3C00000000000000000000000000000000013 -S3156004B3D00000000000000000000000000000000003 -S3156004B3E000000000000000000000000000000000F3 -S3156004B3F000000000000000000000000000000000E3 -S3156004B40000000000000000000000000000000000D2 -S3156004B41000000000000000000000000000000000C2 -S3156004B42000000000000000000000000000000000B2 -S3156004B43000000000000000000000000000000000A2 -S3156004B4400000000000000000000000000000000092 -S3156004B4500000000000000000000000000000000082 -S3156004B4600000000000000000000000000000000072 -S3156004B4700000000000000000000000000000000062 -S3156004B4800000000000000000000000000000000052 -S3156004B4900000000000000000000000000000000042 -S3156004B4A00000000000000000000000000000000032 -S3156004B4B00000000000000000000000000000000022 -S3156004B4C00000000000000000000000000000000012 -S3156004B4D00000000000000000000000000000000002 -S3156004B4E000000000000000000000000000000000F2 -S3156004B4F000000000000000000000000000000000E2 -S3156004B50000000000000000000000000000000000D1 -S3156004B51000000000000000000000000000000000C1 -S3156004B52000000000000000000000000000000000B1 -S3156004B53000000000000000000000000000000000A1 -S3156004B5400000000000000000000000000000000091 -S3156004B5500000000000000000000000000000000081 -S3156004B5600000000000000000000000000000000071 -S3156004B5700000000000000000000000000000000061 -S3156004B5800000000000000000000000000000000051 -S3156004B5900000000000000000000000000000000041 -S3156004B5A00000000000000000000000000000000031 -S3156004B5B00000000000000000000000000000000021 -S3156004B5C00000000000000000000000000000000011 -S3156004B5D00000000000000000000000000000000001 -S3156004B5E000000000000000000000000000000000F1 -S3156004B5F000000000000000000000000000000000E1 -S3156004B60000000000000000000000000000000000D0 -S3156004B61000000000000000000000000000000000C0 -S3156004B62000000000000000000000000000000000B0 -S3156004B63000000000000000000000000000000000A0 -S3156004B6400000000000000000000000000000000090 -S3156004B6500000000000000000000000000000000080 -S3156004B6600000000000000000000000000000000070 -S3156004B6700000000000000000000000000000000060 -S3156004B6800000000000000000000000000000000050 -S3156004B6900000000000000000000000000000000040 -S3156004B6A00000000000000000000000000000000030 -S3156004B6B00000000000000000000000000000000020 -S3156004B6C00000000000000000000000000000000010 -S3156004B6D00000000000000000000000000000000000 -S3156004B6E000000000000000000000000000000000F0 -S3156004B6F000000000000000000000000000000000E0 -S3156004B70000000000000000000000000000000000CF -S3156004B71000000000000000000000000000000000BF -S3156004B72000000000000000000000000000000000AF -S3156004B730000000000000000000000000000000009F -S3156004B740000000000000000000000000000000008F -S3156004B750000000000000000000000000000000007F -S3156004B760000000000000000000000000000000006F -S3156004B770000000000000000000000000000000005F -S3156004B780000000000000000000000000000000004F -S3156004B790000000000000000000000000000000003F -S3156004B7A0000000000000000000000000000000002F -S3156004B7B0000000000000000000000000000000001F -S3156004B7C0000000000000000000000000000000000F -S3156004B7D000000000000000000000000000000000FF -S3156004B7E000000000000000000000000000000000EF -S3156004B7F000000000000000000000000000000000DF -S3156004B80000000000000000000000000000000000CE -S3156004B81000000000000000000000000000000000BE -S3156004B82000000000000000000000000000000000AE -S3156004B830000000000000000000000000000000009E -S3156004B840000000000000000000000000000000008E -S3156004B850000000000000000000000000000000007E -S3156004B860000000000000000000000000000000006E -S3156004B870000000000000000000000000000000005E -S3156004B880000000000000000000000000000000004E -S3156004B890000000000000000000000000000000003E -S3156004B8A0000000000000000000000000000000002E -S3156004B8B0000000000000000000000000000000001E -S3156004B8C0000000000000000000000000000000000E -S3156004B8D000000000000000000000000000000000FE -S3156004B8E000000000000000000000000000000000EE -S3156004B8F000000000000000000000000000000000DE -S3156004B90000000000000000000000000000000000CD -S3156004B91000000000000000000000000000000000BD -S3156004B92000000000000000000000000000000000AD -S3156004B930000000000000000000000000000000009D -S3156004B940000000000000000000000000000000008D -S3156004B950000000000000000000000000000000007D -S3156004B960000000000000000000000000000000006D -S3156004B970000000000000000000000000000000005D -S3156004B980000000000000000000000000000000004D -S3156004B990000000000000000000000000000000003D -S3156004B9A0000000000000000000000000000000002D -S3156004B9B0000000000000000000000000000000001D -S3156004B9C0000000000000000000000000000000000D -S3156004B9D000000000000000000000000000000000FD -S3156004B9E000000000000000000000000000000000ED -S3156004B9F000000000000000000000000000000000DD -S3156004BA0000000000000000000000000000000000CC -S3156004BA1000000000000000000000000000000000BC -S3156004BA2000000000000000000000000000000000AC -S3156004BA30000000000000000000000000000000009C -S3156004BA40000000000000000000000000000000008C -S3156004BA50000000000000000000000000000000007C -S3156004BA60000000000000000000000000000000006C -S3156004BA70000000000000000000000000000000005C -S3156004BA80000000000000000000000000000000004C -S3156004BA90000000000000000000000000000000003C -S3156004BAA0000000000000000000000000000000002C -S3156004BAB0000000000000000000000000000000001C -S3156004BAC0000000000000000000000000000000000C -S3156004BAD000000000000000000000000000000000FC -S3156004BAE000000000000000000000000000000000EC -S3156004BAF000000000000000000000000000000000DC -S3156004BB0000000000000000000000000000000000CB -S3156004BB1000000000000000000000000000000000BB -S3156004BB2000000000000000000000000000000000AB -S3156004BB30000000000000000000000000000000009B -S3156004BB40000000000000000000000000000000008B -S3156004BB50000000000000000000000000000000007B -S3156004BB60000000000000000000000000000000006B -S3156004BB70000000000000000000000000000000005B -S3156004BB80000000000000000000000000000000004B -S3156004BB90000000000000000000000000000000003B -S3156004BBA0000000000000000000000000000000002B -S3156004BBB0000000000000000000000000000000001B -S3156004BBC0000000000000000000000000000000000B -S3156004BBD000000000000000000000000000000000FB -S3156004BBE000000000000000000000000000000000EB -S3156004BBF000000000000000000000000000000000DB -S3156004BC0000000000000000000000000000000000CA -S3156004BC1000000000000000000000000000000000BA -S3156004BC2000000000000000000000000000000000AA -S3156004BC30000000000000000000000000000000009A -S3156004BC40000000000000000000000000000000008A -S3156004BC50000000000000000000000000000000007A -S3156004BC60000000000000000000000000000000006A -S3156004BC70000000000000000000000000000000005A -S3156004BC80000000000000000000000000000000004A -S3156004BC90000000000000000000000000000000003A -S3156004BCA0000000000000000000000000000000002A -S3156004BCB0000000000000000000000000000000001A -S3156004BCC0000000000000000000000000000000000A -S3156004BCD000000000000000000000000000000000FA -S3156004BCE000000000000000000000000000000000EA -S3156004BCF000000000000000000000000000000000DA -S3156004BD0000000000000000000000000000000000C9 -S3156004BD1000000000000000000000000000000000B9 -S3156004BD2000000000000000000000000000000000A9 -S3156004BD300000000000000000000000000000000099 -S3156004BD400000000000000000000000000000000089 -S3156004BD500000000000000000000000000000000079 -S3156004BD600000000000000000000000000000000069 -S3156004BD700000000000000000000000000000000059 -S3156004BD800000000000000000000000000000000049 -S3156004BD900000000000000000000000000000000039 -S3156004BDA00000000000000000000000000000000029 -S3156004BDB00000000000000000000000000000000019 -S3156004BDC00000000000000000000000000000000009 -S3156004BDD000000000000000000000000000000000F9 -S3156004BDE000000000000000000000000000000000E9 -S3156004BDF000000000000000000000000000000000D9 -S3156004BE0000000000000000000000000000000000C8 -S3156004BE1000000000000000000000000000000000B8 -S3156004BE2000000000000000000000000000000000A8 -S3156004BE300000000000000000000000000000000098 -S3156004BE400000000000000000000000000000000088 -S3156004BE500000000000000000000000000000000078 -S3156004BE600000000000000000000000000000000068 -S3156004BE700000000000000000000000000000000058 -S3156004BE800000000000000000000000000000000048 -S3156004BE900000000000000000000000000000000038 -S3156004BEA00000000000000000000000000000000028 -S3156004BEB00000000000000000000000000000000018 -S3156004BEC00000000000000000000000000000000008 -S3156004BED000000000000000000000000000000000F8 -S3156004BEE000000000000000000000000000000000E8 -S3156004BEF000000000000000000000000000000000D8 -S3156004BF0000000000000000000000000000000000C7 -S3156004BF1000000000000000000000000000000000B7 -S3156004BF2000000000000000000000000000000000A7 -S3156004BF300000000000000000000000000000000097 -S3156004BF400000000000000000000000000000000087 -S3156004BF500000000000000000000000000000000077 -S3156004BF600000000000000000000000000000000067 -S3156004BF700000000000000000000000000000000057 -S3156004BF800000000000000000000000000000000047 -S3156004BF900000000000000000000000000000000037 -S3156004BFA00000000000000000000000000000000027 -S3156004BFB00000000000000000000000000000000017 -S3156004BFC00000000000000000000000000000000007 -S3156004BFD000000000000000000000000000000000F7 -S3156004BFE000000000000000000000000000000000E7 -S3156004BFF000000000000000000000000000000000D7 -S3156004C00000000000000000000000000000000000C6 -S3156004C01000000000000000000000000000000000B6 -S3156004C02000000000000000000000000000000000A6 -S3156004C0300000000000000000000000000000000096 -S3156004C0400000000000000000000000000000000086 -S3156004C0500000000000000000000000000000000076 -S3156004C0600000000000000000000000000000000066 -S3156004C0700000000000000000000000000000000056 -S3156004C0800000000000000000000000000000000046 -S3156004C0900000000000000000000000000000000036 -S3156004C0A00000000000000000000000000000000026 -S3156004C0B00000000000000000000000000000000016 -S3156004C0C00000000000000000000000000000000006 -S3156004C0D000000000000000000000000000000000F6 -S3156004C0E000000000000000000000000000000000E6 -S3156004C0F000000000000000000000000000000000D6 -S3156004C10000000000000000000000000000000000C5 -S3156004C11000000000000000000000000000000000B5 -S3156004C12000000000000000000000000000000000A5 -S3156004C1300000000000000000000000000000000095 -S3156004C1400000000000000000000000000000000085 -S3156004C1500000000000000000000000000000000075 -S3156004C1600000000000000000000000000000000065 -S3156004C1700000000000000000000000000000000055 -S3156004C1800000000000000000000000000000000045 -S3156004C1900000000000000000000000000000000035 -S3156004C1A00000000000000000000000000000000025 -S3156004C1B00000000000000000000000000000000015 -S3156004C1C00000000000000000000000000000000005 -S3156004C1D000000000000000000000000000000000F5 -S3156004C1E000000000000000000000000000000000E5 -S3156004C1F000000000000000000000000000000000D5 -S3156004C20000000000000000000000000000000000C4 -S3156004C21000000000000000000000000000000000B4 -S3156004C22000000000000000000000000000000000A4 -S3156004C2300000000000000000000000000000000094 -S3156004C2400000000000000000000000000000000084 -S3156004C2500000000000000000000000000000000074 -S3156004C2600000000000000000000000000000000064 -S3156004C2700000000000000000000000000000000054 -S3156004C2800000000000000000000000000000000044 -S3156004C2900000000000000000000000000000000034 -S3156004C2A00000000000000000000000000000000024 -S3156004C2B00000000000000000000000000000000014 -S3156004C2C00000000000000000000000000000000004 -S3156004C2D000000000000000000000000000000000F4 -S3156004C2E000000000000000000000000000000000E4 -S3156004C2F000000000000000000000000000000000D4 -S3156004C30000000000000000000000000000000000C3 -S3156004C31000000000000000000000000000000000B3 -S3156004C32000000000000000000000000000000000A3 -S3156004C3300000000000000000000000000000000093 -S3156004C3400000000000000000000000000000000083 -S3156004C3500000000000000000000000000000000073 -S3156004C3600000000000000000000000000000000063 -S3156004C3700000000000000000000000000000000053 -S3156004C3800000000000000000000000000000000043 -S3156004C3900000000000000000000000000000000033 -S3156004C3A00000000000000000000000000000000023 -S3156004C3B00000000000000000000000000000000013 -S3156004C3C00000000000000000000000000000000003 -S3156004C3D000000000000000000000000000000000F3 -S3156004C3E000000000000000000000000000000000E3 -S3156004C3F000000000000000000000000000000000D3 -S3156004C40000000000000000000000000000000000C2 -S3156004C41000000000000000000000000000000000B2 -S3156004C42000000000000000000000000000000000A2 -S3156004C4300000000000000000000000000000000092 -S3156004C4400000000000000000000000000000000082 -S3156004C4500000000000000000000000000000000072 -S3156004C4600000000000000000000000000000000062 -S3156004C4700000000000000000000000000000000052 -S3156004C4800000000000000000000000000000000042 -S3156004C4900000000000000000000000000000000032 -S3156004C4A00000000000000000000000000000000022 -S3156004C4B00000000000000000000000000000000012 -S3156004C4C00000000000000000000000000000000002 -S3156004C4D000000000000000000000000000000000F2 -S3156004C4E000000000000000000000000000000000E2 -S3156004C4F000000000000000000000000000000000D2 -S3156004C50000000000000000000000000000000000C1 -S3156004C51000000000000000000000000000000000B1 -S3156004C52000000000000000000000000000000000A1 -S3156004C5300000000000000000000000000000000091 -S3156004C5400000000000000000000000000000000081 -S3156004C5500000000000000000000000000000000071 -S3156004C5600000000000000000000000000000000061 -S3156004C5700000000000000000000000000000000051 -S3156004C5800000000000000000000000000000000041 -S3156004C5900000000000000000000000000000000031 -S3156004C5A00000000000000000000000000000000021 -S3156004C5B00000000000000000000000000000000011 -S3156004C5C00000000000000000000000000000000001 -S3156004C5D000000000000000000000000000000000F1 -S3156004C5E000000000000000000000000000000000E1 -S3156004C5F000000000000000000000000000000000D1 -S3156004C60000000000000000000000000000000000C0 -S3156004C61000000000000000000000000000000000B0 -S3156004C62000000000000000000000000000000000A0 -S3156004C6300000000000000000000000000000000090 -S3156004C6400000000000000000000000000000000080 -S3156004C6500000000000000000000000000000000070 -S3156004C6600000000000000000000000000000000060 -S3156004C6700000000000000000000000000000000050 -S3156004C6800000000000000000000000000000000040 -S3156004C6900000000000000000000000000000000030 -S3156004C6A00000000000000000000000000000000020 -S3156004C6B00000000000000000000000000000000010 -S3156004C6C00000000000000000000000000000000000 -S3156004C6D000000000000000000000000000000000F0 -S3156004C6E000000000000000000000000000000000E0 -S3156004C6F000000000000000000000000000000000D0 -S3156004C70000000000000000000000000000000000BF -S3156004C71000000000000000000000000000000000AF -S3156004C720000000000000000000000000000000009F -S3156004C730000000000000000000000000000000008F -S3156004C740000000000000000000000000000000007F -S3156004C750000000000000000000000000000000006F -S3156004C760000000000000000000000000000000005F -S3156004C770000000000000000000000000000000004F -S3156004C780000000000000000000000000000000003F -S3156004C790000000000000000000000000000000002F -S3156004C7A0000000000000000000000000000000001F -S3156004C7B0000000000000000000000000000000000F -S3156004C7C000000000000000000000000000000000FF -S3156004C7D000000000000000000000000000000000EF -S3156004C7E000000000000000000000000000000000DF -S3156004C7F000000000000000000000000000000000CF -S3156004C80000000000000000000000000000000000BE -S3156004C81000000000000000000000000000000000AE -S3156004C820000000000000000000000000000000009E -S3156004C830000000000000000000000000000000008E -S3156004C840000000000000000000000000000000007E -S3156004C850000000000000000000000000000000006E -S3156004C860000000000000000000000000000000005E -S3156004C870000000000000000000000000000000004E -S3156004C880000000000000000000000000000000003E -S3156004C890000000000000000000000000000000002E -S3156004C8A0000000000000000000000000000000001E -S3156004C8B0000000000000000000000000000000000E -S3156004C8C000000000000000000000000000000000FE -S3156004C8D000000000000000000000000000000000EE -S3156004C8E000000000000000000000000000000000DE -S3156004C8F000000000000000000000000000000000CE -S3156004C90000000000000000000000000000000000BD -S3156004C91000000000000000000000000000000000AD -S3156004C920000000000000000000000000000000009D -S3156004C930000000000000000000000000000000008D -S3156004C940000000000000000000000000000000007D -S3156004C950000000000000000000000000000000006D -S3156004C960000000000000000000000000000000005D -S3156004C970000000000000000000000000000000004D -S3156004C980000000000000000000000000000000003D -S3156004C990000000000000000000000000000000002D -S3156004C9A0000000000000000000000000000000001D -S3156004C9B0000000000000000000000000000000000D -S3156004C9C000000000000000000000000000000000FD -S3156004C9D000000000000000000000000000000000ED -S3156004C9E000000000000000000000000000000000DD -S3156004C9F000000000000000000000000000000000CD -S3156004CA0000000000000000000000000000000000BC -S3156004CA1000000000000000000000000000000000AC -S3156004CA20000000000000000000000000000000009C -S3156004CA30000000000000000000000000000000008C -S3156004CA40000000000000000000000000000000007C -S3156004CA50000000000000000000000000000000006C -S3156004CA60000000000000000000000000000000005C -S3156004CA70000000000000000000000000000000004C -S3156004CA80000000000000000000000000000000003C -S3156004CA90000000000000000000000000000000002C -S3156004CAA0000000000000000000000000000000001C -S3156004CAB0000000000000000000000000000000000C -S3156004CAC000000000000000000000000000000000FC -S3156004CAD000000000000000000000000000000000EC -S3156004CAE000000000000000000000000000000000DC -S3156004CAF000000000000000000000000000000000CC -S3156004CB0000000000000000000000000000000000BB -S3156004CB1000000000000000000000000000000000AB -S3156004CB20000000000000000000000000000000009B -S3156004CB30000000000000000000000000000000008B -S3156004CB40000000000000000000000000000000007B -S3156004CB50000000000000000000000000000000006B -S3156004CB60000000000000000000000000000000005B -S3156004CB70000000000000000000000000000000004B -S3156004CB80000000000000000000000000000000003B -S3156004CB90000000000000000000000000000000002B -S3156004CBA0000000000000000000000000000000001B -S3156004CBB0000000000000000000000000000000000B -S3156004CBC000000000000000000000000000000000FB -S3156004CBD000000000000000000000000000000000EB -S3156004CBE000000000000000000000000000000000DB -S3156004CBF000000000000000000000000000000000CB -S3156004CC0000000000000000000000000000000000BA -S3156004CC1000000000000000000000000000000000AA -S3156004CC20000000000000000000000000000000009A -S3156004CC30000000000000000000000000000000008A -S3156004CC40000000000000000000000000000000007A -S3156004CC50000000000000000000000000000000006A -S3156004CC60000000000000000000000000000000005A -S3156004CC70000000000000000000000000000000004A -S3156004CC80000000000000000000000000000000003A -S3156004CC90000000000000000000000000000000002A -S3156004CCA0000000000000000000000000000000001A -S3156004CCB0000000000000000000000000000000000A -S3156004CCC000000000000000000000000000000000FA -S3156004CCD000000000000000000000000000000000EA -S3156004CCE000000000000000000000000000000000DA -S3156004CCF000000000000000000000000000000000CA -S3156004CD0000000000000000000000000000000000B9 -S3156004CD1000000000000000000000000000000000A9 -S3156004CD200000000000000000000000000000000099 -S3156004CD300000000000000000000000000000000089 -S3156004CD400000000000000000000000000000000079 -S3156004CD500000000000000000000000000000000069 -S3156004CD600000000000000000000000000000000059 -S3156004CD700000000000000000000000000000000049 -S3156004CD800000000000000000000000000000000039 -S3156004CD900000000000000000000000000000000029 -S3156004CDA00000000000000000000000000000000019 -S3156004CDB00000000000000000000000000000000009 -S3156004CDC000000000000000000000000000000000F9 -S3156004CDD000000000000000000000000000000000E9 -S3156004CDE000000000000000000000000000000000D9 -S3156004CDF000000000000000000000000000000000C9 -S3156004CE0000000000000000000000000000000000B8 -S3156004CE1000000000000000000000000000000000A8 -S3156004CE200000000000000000000000000000000098 -S3156004CE300000000000000000000000000000000088 -S3156004CE400000000000000000000000000000000078 -S3156004CE500000000000000000000000000000000068 -S3156004CE600000000000000000000000000000000058 -S3156004CE700000000000000000000000000000000048 -S3156004CE800000000000000000000000000000000038 -S3156004CE900000000000000000000000000000000028 -S3156004CEA00000000000000000000000000000000018 -S3156004CEB00000000000000000000000000000000008 -S3156004CEC000000000000000000000000000000000F8 -S3156004CED000000000000000000000000000000000E8 -S3156004CEE000000000000000000000000000000000D8 -S3156004CEF000000000000000000000000000000000C8 -S3156004CF0000000000000000000000000000000000B7 -S3156004CF1000000000000000000000000000000000A7 -S3156004CF200000000000000000000000000000000097 -S3156004CF300000000000000000000000000000000087 -S3156004CF400000000000000000000000000000000077 -S3156004CF500000000000000000000000000000000067 -S3156004CF600000000000000000000000000000000057 -S3156004CF700000000000000000000000000000000047 -S3156004CF800000000000000000000000000000000037 -S3156004CF900000000000000000000000000000000027 -S3156004CFA00000000000000000000000000000000017 -S3156004CFB00000000000000000000000000000000007 -S3156004CFC000000000000000000000000000000000F7 -S3156004CFD000000000000000000000000000000000E7 -S3156004CFE000000000000000000000000000000000D7 -S3156004CFF000000000000000000000000000000000C7 -S3156004D00000000000000000000000000000000000B6 -S3156004D01000000000000000000000000000000000A6 -S3156004D0200000000000000000000000000000000096 -S3156004D0300000000000000000000000000000000086 -S3156004D0400000000000000000000000000000000076 -S3156004D0500000000000000000000000000000000066 -S3156004D0600000000000000000000000000000000056 -S3156004D0700000000000000000000000000000000046 -S3156004D0800000000000000000000000000000000036 -S3156004D0900000000000000000000000000000000026 -S3156004D0A00000000000000000000000000000000016 -S3156004D0B00000000000000000000000000000000006 -S3156004D0C000000000000000000000000000000000F6 -S3156004D0D000000000000000000000000000000000E6 -S3156004D0E000000000000000000000000000000000D6 -S3156004D0F000000000000000000000000000000000C6 -S3156004D10000000000000000000000000000000000B5 -S3156004D11000000000000000000000000000000000A5 -S3156004D1200000000000000000000000000000000095 -S3156004D1300000000000000000000000000000000085 -S3156004D1400000000000000000000000000000000075 -S3156004D1500000000000000000000000000000000065 -S3156004D1600000000000000000000000000000000055 -S3156004D1700000000000000000000000000000000045 -S3156004D1800000000000000000000000000000000035 -S3156004D1900000000000000000000000000000000025 -S3156004D1A00000000000000000000000000000000015 -S3156004D1B00000000000000000000000000000000005 -S3156004D1C000000000000000000000000000000000F5 -S3156004D1D000000000000000000000000000000000E5 -S3156004D1E000000000000000000000000000000000D5 -S3156004D1F000000000000000000000000000000000C5 -S3156004D20000000000000000000000000000000000B4 -S3156004D21000000000000000000000000000000000A4 -S3156004D2200000000000000000000000000000000094 -S3156004D2300000000000000000000000000000000084 -S3156004D2400000000000000000000000000000000074 -S3156004D2500000000000000000000000000000000064 -S3156004D2600000000000000000000000000000000054 -S3156004D2700000000000000000000000000000000044 -S3156004D2800000000000000000000000000000000034 -S3156004D2900000000000000000000000000000000024 -S3156004D2A00000000000000000000000000000000014 -S3156004D2B00000000000000000000000000000000004 -S3156004D2C000000000000000000000000000000000F4 -S3156004D2D000000000000000000000000000000000E4 -S3156004D2E000000000000000000000000000000000D4 -S3156004D2F000000000000000000000000000000000C4 -S3156004D30000000000000000000000000000000000B3 -S3156004D31000000000000000000000000000000000A3 -S3156004D3200000000000000000000000000000000093 -S3156004D3300000000000000000000000000000000083 -S3156004D3400000000000000000000000000000000073 -S3156004D3500000000000000000000000000000000063 -S3156004D3600000000000000000000000000000000053 -S3156004D3700000000000000000000000000000000043 -S3156004D3800000000000000000000000000000000033 -S3156004D3900000000000000000000000000000000023 -S3156004D3A00000000000000000000000000000000013 -S3156004D3B00000000000000000000000000000000003 -S3156004D3C000000000000000000000000000000000F3 -S3156004D3D000000000000000000000000000000000E3 -S3156004D3E000000000000000000000000000000000D3 -S3156004D3F000000000000000000000000000000000C3 -S3156004D40000000000000000000000000000000000B2 -S3156004D41000000000000000000000000000000000A2 -S3156004D4200000000000000000000000000000000092 -S3156004D4300000000000000000000000000000000082 -S3156004D4400000000000000000000000000000000072 -S3156004D4500000000000000000000000000000000062 -S3156004D4600000000000000000000000000000000052 -S3156004D4700000000000000000000000000000000042 -S3156004D4800000000000000000000000000000000032 -S3156004D4900000000000000000000000000000000022 -S3156004D4A00000000000000000000000000000000012 -S3156004D4B00000000000000000000000000000000002 -S3156004D4C000000000000000000000000000000000F2 -S3156004D4D000000000000000000000000000000000E2 -S3156004D4E000000000000000000000000000000000D2 -S3156004D4F000000000000000000000000000000000C2 -S3156004D50000000000000000000000000000000000B1 -S3156004D51000000000000000000000000000000000A1 -S3156004D5200000000000000000000000000000000091 -S3156004D5300000000000000000000000000000000081 -S3156004D5400000000000000000000000000000000071 -S3156004D5500000000000000000000000000000000061 -S3156004D5600000000000000000000000000000000051 -S3156004D5700000000000000000000000000000000041 -S3156004D5800000000000000000000000000000000031 -S3156004D5900000000000000000000000000000000021 -S3156004D5A00000000000000000000000000000000011 -S3156004D5B00000000000000000000000000000000001 -S3156004D5C000000000000000000000000000000000F1 -S3156004D5D000000000000000000000000000000000E1 -S3156004D5E000000000000000000000000000000000D1 -S3156004D5F000000000000000000000000000000000C1 -S3156004D60000000000000000000000000000000000B0 -S3156004D61000000000000000000000000000000000A0 -S3156004D6200000000000000000000000000000000090 -S3156004D6300000000000000000000000000000000080 -S3156004D6400000000000000000000000000000000070 -S3156004D6500000000000000000000000000000000060 -S3156004D6600000000000000000000000000000000050 -S3156004D6700000000000000000000000000000000040 -S3156004D6800000000000000000000000000000000030 -S3156004D6900000000000000000000000000000000020 -S3156004D6A00000000000000000000000000000000010 -S3156004D6B00000000000000000000000000000000000 -S3156004D6C000000000000000000000000000000000F0 -S3156004D6D000000000000000000000000000000000E0 -S3156004D6E000000000000000000000000000000000D0 -S3156004D6F000000000000000000000000000000000C0 -S3156004D70000000000000000000000000000000000AF -S3156004D710000000000000000000000000000000009F -S3156004D720000000000000000000000000000000008F -S3156004D730000000000000000000000000000000007F -S3156004D740000000000000000000000000000000006F -S3156004D750000000000000000000000000000000005F -S3156004D760000000000000000000000000000000004F -S3156004D770000000000000000000000000000000003F -S3156004D780000000000000000000000000000000002F -S3156004D790000000000000000000000000000000001F -S3156004D7A0000000000000000000000000000000000F -S3156004D7B000000000000000000000000000000000FF -S3156004D7C000000000000000000000000000000000EF -S3156004D7D000000000000000000000000000000000DF -S3156004D7E000000000000000000000000000000000CF -S3156004D7F000000000000000000000000000000000BF -S3156004D80000000000000000000000000000000000AE -S3156004D810000000000000000000000000000000009E -S3156004D820000000000000000000000000000000008E -S3156004D830000000000000000000000000000000007E -S3156004D840000000000000000000000000000000006E -S3156004D850000000000000000000000000000000005E -S3156004D860000000000000000000000000000000004E -S3156004D870000000000000000000000000000000003E -S3156004D880000000000000000000000000000000002E -S3156004D890000000000000000000000000000000001E -S3156004D8A0000000000000000000000000000000000E -S3156004D8B000000000000000000000000000000000FE -S3156004D8C000000000000000000000000000000000EE -S3156004D8D000000000000000000000000000000000DE -S3156004D8E000000000000000000000000000000000CE -S3156004D8F000000000000000000000000000000000BE -S3156004D90000000000000000000000000000000000AD -S3156004D910000000000000000000000000000000009D -S3156004D920000000000000000000000000000000008D -S3156004D930000000000000000000000000000000007D -S3156004D940000000000000000000000000000000006D -S3156004D950000000000000000000000000000000005D -S3156004D960000000000000000000000000000000004D -S3156004D970000000000000000000000000000000003D -S3156004D980000000000000000000000000000000002D -S3156004D990000000000000000000000000000000001D -S3156004D9A0000000000000000000000000000000000D -S3156004D9B000000000000000000000000000000000FD -S3156004D9C000000000000000000000000000000000ED -S3156004D9D000000000000000000000000000000000DD -S3156004D9E000000000000000000000000000000000CD -S3156004D9F000000000000000000000000000000000BD -S3156004DA0000000000000000000000000000000000AC -S3156004DA10000000000000000000000000000000009C -S3156004DA20000000000000000000000000000000008C -S3156004DA30000000000000000000000000000000007C -S3156004DA40000000000000000000000000000000006C -S3156004DA50000000000000000000000000000000005C -S3156004DA60000000000000000000000000000000004C -S3156004DA70000000000000000000000000000000003C -S3156004DA80000000000000000000000000000000002C -S3156004DA90000000000000000000000000000000001C -S3156004DAA0000000000000000000000000000000000C -S3156004DAB000000000000000000000000000000000FC -S3156004DAC000000000000000000000000000000000EC -S3156004DAD000000000000000000000000000000000DC -S3156004DAE000000000000000000000000000000000CC -S3156004DAF000000000000000000000000000000000BC -S3156004DB0000000000000000000000000000000000AB -S3156004DB10000000000000000000000000000000009B -S3156004DB20000000000000000000000000000000008B -S3156004DB30000000000000000000000000000000007B -S3156004DB40000000000000000000000000000000006B -S3156004DB50000000000000000000000000000000005B -S3156004DB60000000000000000000000000000000004B -S3156004DB70000000000000000000000000000000003B -S3156004DB80000000000000000000000000000000002B -S3156004DB90000000000000000000000000000000001B -S3156004DBA0000000000000000000000000000000000B -S3156004DBB000000000000000000000000000000000FB -S3156004DBC000000000000000000000000000000000EB -S3156004DBD000000000000000000000000000000000DB -S3156004DBE000000000000000000000000000000000CB -S3156004DBF000000000000000000000000000000000BB -S3156004DC0000000000000000000000000000000000AA -S3156004DC10000000000000000000000000000000009A -S3156004DC20000000000000000000000000000000008A -S3156004DC30000000000000000000000000000000007A -S3156004DC40000000000000000000000000000000006A -S3156004DC50000000000000000000000000000000005A -S3156004DC60000000000000000000000000000000004A -S3156004DC70000000000000000000000000000000003A -S3156004DC80000000000000000000000000000000002A -S3156004DC90000000000000000000000000000000001A -S3156004DCA0000000000000000000000000000000000A -S3156004DCB000000000000000000000000000000000FA -S3156004DCC000000000000000000000000000000000EA -S3156004DCD000000000000000000000000000000000DA -S3156004DCE000000000000000000000000000000000CA -S3156004DCF000000000000000000000000000000000BA -S3156004DD0000000000000000000000000000000000A9 -S3156004DD100000000000000000000000000000000099 -S3156004DD200000000000000000000000000000000089 -S3156004DD300000000000000000000000000000000079 -S3156004DD400000000000000000000000000000000069 -S3156004DD500000000000000000000000000000000059 -S3156004DD600000000000000000000000000000000049 -S3156004DD700000000000000000000000000000000039 -S3156004DD800000000000000000000000000000000029 -S3156004DD900000000000000000000000000000000019 -S3156004DDA00000000000000000000000000000000009 -S3156004DDB000000000000000000000000000000000F9 -S3156004DDC000000000000000000000000000000000E9 -S3156004DDD000000000000000000000000000000000D9 -S3156004DDE000000000000000000000000000000000C9 -S3156004DDF000000000000000000000000000000000B9 -S3156004DE0000000000000000000000000000000000A8 -S3156004DE100000000000000000000000000000000098 -S3156004DE200000000000000000000000000000000088 -S3156004DE300000000000000000000000000000000078 -S3156004DE400000000000000000000000000000000068 -S3156004DE500000000000000000000000000000000058 -S3156004DE600000000000000000000000000000000048 -S3156004DE700000000000000000000000000000000038 -S3156004DE800000000000000000000000000000000028 -S3156004DE900000000000000000000000000000000018 -S3156004DEA00000000000000000000000000000000008 -S3156004DEB000000000000000000000000000000000F8 -S3156004DEC000000000000000000000000000000000E8 -S3156004DED000000000000000000000000000000000D8 -S3156004DEE000000000000000000000000000000000C8 -S3156004DEF000000000000000000000000000000000B8 -S3156004DF0000000000000000000000000000000000A7 -S3156004DF100000000000000000000000000000000097 -S3156004DF200000000000000000000000000000000087 -S3156004DF300000000000000000000000000000000077 -S3156004DF400000000000000000000000000000000067 -S3156004DF500000000000000000000000000000000057 -S3156004DF600000000000000000000000000000000047 -S3156004DF700000000000000000000000000000000037 -S3156004DF800000000000000000000000000000000027 -S3156004DF900000000000000000000000000000000017 -S3156004DFA00000000000000000000000000000000007 -S3156004DFB000000000000000000000000000000000F7 -S3156004DFC000000000000000000000000000000000E7 -S3156004DFD000000000000000000000000000000000D7 -S3156004DFE000000000000000000000000000000000C7 -S3156004DFF000000000000000000000000000000000B7 -S3156004E00000000000000000000000000000000000A6 -S3156004E0100000000000000000000000000000000096 -S3156004E0200000000000000000000000000000000086 -S3156004E0300000000000000000000000000000000076 -S3156004E0400000000000000000000000000000000066 -S3156004E0500000000000000000000000000000000056 -S3156004E0600000000000000000000000000000000046 -S3156004E0700000000000000000000000000000000036 -S3156004E0800000000000000000000000000000000026 -S3156004E0900000000000000000000000000000000016 -S3156004E0A00000000000000000000000000000000006 -S3156004E0B000000000000000000000000000000000F6 -S3156004E0C000000000000000000000000000000000E6 -S3156004E0D000000000000000000000000000000000D6 -S3156004E0E000000000000000000000000000000000C6 -S3156004E0F000000000000000000000000000000000B6 -S3156004E10000000000000000000000000000000000A5 -S3156004E1100000000000000000000000000000000095 -S3156004E1200000000000000000000000000000000085 -S3156004E1300000000000000000000000000000000075 -S3156004E1400000000000000000000000000000000065 -S3156004E1500000000000000000000000000000000055 -S3156004E1600000000000000000000000000000000045 -S3156004E1700000000000000000000000000000000035 -S3156004E1800000000000000000000000000000000025 -S3156004E1900000000000000000000000000000000015 -S3156004E1A00000000000000000000000000000000005 -S3156004E1B000000000000000000000000000000000F5 -S3156004E1C000000000000000000000000000000000E5 -S3156004E1D000000000000000000000000000000000D5 -S3156004E1E000000000000000000000000000000000C5 -S3156004E1F000000000000000000000000000000000B5 -S3156004E20000000000000000000000000000000000A4 -S3156004E2100000000000000000000000000000000094 -S3156004E2200000000000000000000000000000000084 -S3156004E2300000000000000000000000000000000074 -S3156004E2400000000000000000000000000000000064 -S3156004E2500000000000000000000000000000000054 -S3156004E2600000000000000000000000000000000044 -S3156004E2700000000000000000000000000000000034 -S3156004E2800000000000000000000000000000000024 -S3156004E2900000000000000000000000000000000014 -S3156004E2A00000000000000000000000000000000004 -S3156004E2B000000000000000000000000000000000F4 -S3156004E2C000000000000000000000000000000000E4 -S3156004E2D000000000000000000000000000000000D4 -S3156004E2E000000000000000000000000000000000C4 -S3156004E2F000000000000000000000000000000000B4 -S3156004E30000000000000000000000000000000000A3 -S3156004E3100000000000000000000000000000000093 -S3156004E3200000000000000000000000000000000083 -S3156004E3300000000000000000000000000000000073 -S3156004E3400000000000000000000000000000000063 -S3156004E3500000000000000000000000000000000053 -S3156004E3600000000000000000000000000000000043 -S3156004E3700000000000000000000000000000000033 -S3156004E3800000000000000000000000000000000023 -S3156004E3900000000000000000000000000000000013 -S3156004E3A00000000000000000000000000000000003 -S3156004E3B000000000000000000000000000000000F3 -S3156004E3C000000000000000000000000000000000E3 -S3156004E3D000000000000000000000000000000000D3 -S3156004E3E000000000000000000000000000000000C3 -S3156004E3F000000000000000000000000000000000B3 -S3156004E40000000000000000000000000000000000A2 -S3156004E4100000000000000000000000000000000092 -S3156004E4200000000000000000000000000000000082 -S3156004E4300000000000000000000000000000000072 -S3156004E4400000000000000000000000000000000062 -S3156004E4500000000000000000000000000000000052 -S3156004E4600000000000000000000000000000000042 -S3156004E4700000000000000000000000000000000032 -S3156004E4800000000000000000000000000000000022 -S3156004E4900000000000000000000000000000000012 -S3156004E4A00000000000000000000000000000000002 -S3156004E4B000000000000000000000000000000000F2 -S3156004E4C000000000000000000000000000000000E2 -S3156004E4D000000000000000000000000000000000D2 -S3156004E4E000000000000000000000000000000000C2 -S3156004E4F000000000000000000000000000000000B2 -S3156004E50000000000000000000000000000000000A1 -S3156004E5100000000000000000000000000000000091 -S3156004E5200000000000000000000000000000000081 -S3156004E5300000000000000000000000000000000071 -S3156004E5400000000000000000000000000000000061 -S3156004E5500000000000000000000000000000000051 -S3156004E5600000000000000000000000000000000041 -S3156004E5700000000000000000000000000000000031 -S3156004E5800000000000000000000000000000000021 -S3156004E5900000000000000000000000000000000011 -S3156004E5A00000000000000000000000000000000001 -S3156004E5B000000000000000000000000000000000F1 -S3156004E5C000000000000000000000000000000000E1 -S3156004E5D000000000000000000000000000000000D1 -S3156004E5E000000000000000000000000000000000C1 -S3156004E5F000000000000000000000000000000000B1 -S3156004E60000000000000000000000000000000000A0 -S3156004E6100000000000000000000000000000000090 -S3156004E6200000000000000000000000000000000080 -S3156004E6300000000000000000000000000000000070 -S3156004E6400000000000000000000000000000000060 -S3156004E6500000000000000000000000000000000050 -S3156004E6600000000000000000000000000000000040 -S3156004E6700000000000000000000000000000000030 -S3156004E6800000000000000000000000000000000020 -S3156004E6900000000000000000000000000000000010 -S3156004E6A00000000000000000000000000000000000 -S3156004E6B000000000000000000000000000000000F0 -S3156004E6C000000000000000000000000000000000E0 -S3156004E6D000000000000000000000000000000000D0 -S3156004E6E000000000000000000000000000000000C0 -S3156004E6F000000000000000000000000000000000B0 -S3156004E700000000000000000000000000000000009F -S3156004E710000000000000000000000000000000008F -S3156004E720000000000000000000000000000000007F -S3156004E730000000000000000000000000000000006F -S3156004E740000000000000000000000000000000005F -S3156004E750000000000000000000000000000000004F -S3156004E760000000000000000000000000000000003F -S3156004E770000000000000000000000000000000002F -S3156004E780000000000000000000000000000000001F -S3156004E790000000000000000000000000000000000F -S3156004E7A000000000000000000000000000000000FF -S3156004E7B000000000000000000000000000000000EF -S3156004E7C000000000000000000000000000000000DF -S3156004E7D000000000000000000000000000000000CF -S3156004E7E000000000000000000000000000000000BF -S3156004E7F000000000000000000000000000000000AF -S3156004E800000000000000000000000000000000009E -S3156004E810000000000000000000000000000000008E -S3156004E820000000000000000000000000000000007E -S3156004E830000000000000000000000000000000006E -S3156004E840000000000000000000000000000000005E -S3156004E850000000000000000000000000000000004E -S3156004E860000000000000000000000000000000003E -S3156004E870000000000000000000000000000000002E -S3156004E880000000000000000000000000000000001E -S3156004E890000000000000000000000000000000000E -S3156004E8A000000000000000000000000000000000FE -S3156004E8B000000000000000000000000000000000EE -S3156004E8C000000000000000000000000000000000DE -S3156004E8D000000000000000000000000000000000CE -S3156004E8E000000000000000000000000000000000BE -S3156004E8F000000000000000000000000000000000AE -S3156004E900000000000000000000000000000000009D -S3156004E910000000000000000000000000000000008D -S3156004E920000000000000000000000000000000007D -S3156004E930000000000000000000000000000000006D -S3156004E940000000000000000000000000000000005D -S3156004E950000000000000000000000000000000004D -S3156004E960000000000000000000000000000000003D -S3156004E970000000000000000000000000000000002D -S3156004E980000000000000000000000000000000001D -S3156004E990000000000000000000000000000000000D -S3156004E9A000000000000000000000000000000000FD -S3156004E9B000000000000000000000000000000000ED -S3156004E9C000000000000000000000000000000000DD -S3156004E9D000000000000000000000000000000000CD -S3156004E9E000000000000000000000000000000000BD -S3156004E9F000000000000000000000000000000000AD -S3156004EA00000000000000000000000000000000009C -S3156004EA10000000000000000000000000000000008C -S3156004EA20000000000000000000000000000000007C -S3156004EA30000000000000000000000000000000006C -S3156004EA40000000000000000000000000000000005C -S3156004EA50000000000000000000000000000000004C -S3156004EA60000000000000000000000000000000003C -S3156004EA70000000000000000000000000000000002C -S3156004EA80000000000000000000000000000000001C -S3156004EA90000000000000000000000000000000000C -S3156004EAA000000000000000000000000000000000FC -S3156004EAB000000000000000000000000000000000EC -S3156004EAC000000000000000000000000000000000DC -S3156004EAD000000000000000000000000000000000CC -S3156004EAE000000000000000000000000000000000BC -S3156004EAF000000000000000000000000000000000AC -S3156004EB00000000000000000000000000000000009B -S3156004EB10000000000000000000000000000000008B -S3156004EB20000000000000000000000000000000007B -S3156004EB30000000000000000000000000000000006B -S3156004EB40000000000000000000000000000000005B -S3156004EB50000000000000000000000000000000004B -S3156004EB60000000000000000000000000000000003B -S3156004EB70000000000000000000000000000000002B -S3156004EB80000000000000000000000000000000001B -S3156004EB90000000000000000000000000000000000B -S3156004EBA000000000000000000000000000000000FB -S3156004EBB000000000000000000000000000000000EB -S3156004EBC000000000000000000000000000000000DB -S3156004EBD000000000000000000000000000000000CB -S3156004EBE000000000000000000000000000000000BB -S3156004EBF000000000000000000000000000000000AB -S3156004EC00000000000000000000000000000000009A -S3156004EC10000000000000000000000000000000008A -S3156004EC20000000000000000000000000000000007A -S3156004EC30000000000000000000000000000000006A -S3156004EC40000000000000000000000000000000005A -S3156004EC50000000000000000000000000000000004A -S3156004EC60000000000000000000000000000000003A -S3156004EC70000000000000000000000000000000002A -S3156004EC80000000000000000000000000000000001A -S3156004EC90000000000000000000000000000000000A -S3156004ECA000000000000000000000000000000000FA -S3156004ECB000000000000000000000000000000000EA -S3156004ECC000000000000000000000000000000000DA -S3156004ECD000000000000000000000000000000000CA -S3156004ECE000000000000000000000000000000000BA -S3156004ECF000000000000000000000000000000000AA -S3156004ED000000000000000000000000000000000099 -S3156004ED100000000000000000000000000000000089 -S3156004ED200000000000000000000000000000000079 -S3156004ED300000000000000000000000000000000069 -S3156004ED400000000000000000000000000000000059 -S3156004ED500000000000000000000000000000000049 -S3156004ED600000000000000000000000000000000039 -S3156004ED700000000000000000000000000000000029 -S3156004ED800000000000000000000000000000000019 -S3156004ED900000000000000000000000000000000009 -S3156004EDA000000000000000000000000000000000F9 -S3156004EDB000000000000000000000000000000000E9 -S3156004EDC000000000000000000000000000000000D9 -S3156004EDD000000000000000000000000000000000C9 -S3156004EDE000000000000000000000000000000000B9 -S3156004EDF000000000000000000000000000000000A9 -S3156004EE000000000000000000000000000000000098 -S3156004EE100000000000000000000000000000000088 -S3156004EE200000000000000000000000000000000078 -S3156004EE300000000000000000000000000000000068 -S3156004EE400000000000000000000000000000000058 -S3156004EE500000000000000000000000000000000048 -S3156004EE600000000000000000000000000000000038 -S3156004EE700000000000000000000000000000000028 -S3156004EE800000000000000000000000000000000018 -S3156004EE900000000000000000000000000000000008 -S3156004EEA000000000000000000000000000000000F8 -S3156004EEB000000000000000000000000000000000E8 -S3156004EEC000000000000000000000000000000000D8 -S3156004EED000000000000000000000000000000000C8 -S3156004EEE000000000000000000000000000000000B8 -S3156004EEF000000000000000000000000000000000A8 -S3156004EF000000000000000000000000000000000097 -S3156004EF100000000000000000000000000000000087 -S3156004EF200000000000000000000000000000000077 -S3156004EF300000000000000000000000000000000067 -S3156004EF400000000000000000000000000000000057 -S3156004EF500000000000000000000000000000000047 -S3156004EF600000000000000000000000000000000037 -S3156004EF700000000000000000000000000000000027 -S3156004EF800000000000000000000000000000000017 -S3156004EF900000000000000000000000000000000007 -S3156004EFA000000000000000000000000000000000F7 -S3156004EFB000000000000000000000000000000000E7 -S3156004EFC000000000000000000000000000000000D7 -S3156004EFD000000000000000000000000000000000C7 -S3156004EFE000000000000000000000000000000000B7 -S3156004EFF000000000000000000000000000000000A7 -S3156004F0000000000000000000000000000000000096 -S3156004F0100000000000000000000000000000000086 -S3156004F0200000000000000000000000000000000076 -S3156004F0300000000000000000000000000000000066 -S3156004F0400000000000000000000000000000000056 -S3156004F0500000000000000000000000000000000046 -S3156004F0600000000000000000000000000000000036 -S3156004F0700000000000000000000000000000000026 -S3156004F0800000000000000000000000000000000016 -S3156004F0900000000000000000000000000000000006 -S3156004F0A000000000000000000000000000000000F6 -S3156004F0B000000000000000000000000000000000E6 -S3156004F0C000000000000000000000000000000000D6 -S3156004F0D000000000000000000000000000000000C6 -S3156004F0E000000000000000000000000000000000B6 -S3156004F0F000000000000000000000000000000000A6 -S3156004F1000000000000000000000000000000000095 -S3156004F1100000000000000000000000000000000085 -S3156004F1200000000000000000000000000000000075 -S3156004F1300000000000000000000000000000000065 -S3156004F1400000000000000000000000000000000055 -S3156004F1500000000000000000000000000000000045 -S3156004F1600000000000000000000000000000000035 -S3156004F1700000000000000000000000000000000025 -S3156004F1800000000000000000000000000000000015 -S3156004F1900000000000000000000000000000000005 -S3156004F1A000000000000000000000000000000000F5 -S3156004F1B000000000000000000000000000000000E5 -S3156004F1C000000000000000000000000000000000D5 -S3156004F1D000000000000000000000000000000000C5 -S3156004F1E000000000000000000000000000000000B5 -S3156004F1F000000000000000000000000000000000A5 -S3156004F2000000000000000000000000000000000094 -S3156004F2100000000000000000000000000000000084 -S3156004F2200000000000000000000000000000000074 -S3156004F2300000000000000000000000000000000064 -S3156004F2400000000000000000000000000000000054 -S3156004F2500000000000000000000000000000000044 -S3156004F2600000000000000000000000000000000034 -S3156004F2700000000000000000000000000000000024 -S3156004F2800000000000000000000000000000000014 -S3156004F2900000000000000000000000000000000004 -S3156004F2A000000000000000000000000000000000F4 -S3156004F2B000000000000000000000000000000000E4 -S3156004F2C000000000000000000000000000000000D4 -S3156004F2D000000000000000000000000000000000C4 -S3156004F2E000000000000000000000000000000000B4 -S3156004F2F000000000000000000000000000000000A4 -S3156004F3000000000000000000000000000000000093 -S3156004F3100000000000000000000000000000000083 -S3156004F3200000000000000000000000000000000073 -S3156004F3300000000000000000000000000000000063 -S3156004F3400000000000000000000000000000000053 -S3156004F3500000000000000000000000000000000043 -S3156004F3600000000000000000000000000000000033 -S3156004F3700000000000000000000000000000000023 -S3156004F3800000000000000000000000000000000013 -S3156004F3900000000000000000000000000000000003 -S3156004F3A000000000000000000000000000000000F3 -S3156004F3B000000000000000000000000000000000E3 -S3156004F3C000000000000000000000000000000000D3 -S3156004F3D000000000000000000000000000000000C3 -S3156004F3E000000000000000000000000000000000B3 -S3156004F3F000000000000000000000000000000000A3 -S3156004F4000000000000000000000000000000000092 -S3156004F4100000000000000000000000000000000082 -S3156004F4200000000000000000000000000000000072 -S3156004F4300000000000000000000000000000000062 -S3156004F4400000000000000000000000000000000052 -S3156004F4500000000000000000000000000000000042 -S3156004F4600000000000000000000000000000000032 -S3156004F4700000000000000000000000000000000022 -S3156004F4800000000000000000000000000000000012 -S3156004F4900000000000000000000000000000000002 -S3156004F4A000000000000000000000000000000000F2 -S3156004F4B000000000000000000000000000000000E2 -S3156004F4C000000000000000000000000000000000D2 -S3156004F4D000000000000000000000000000000000C2 -S3156004F4E000000000000000000000000000000000B2 -S3156004F4F000000000000000000000000000000000A2 -S3156004F5000000000000000000000000000000000091 -S3156004F5100000000000000000000000000000000081 -S3156004F5200000000000000000000000000000000071 -S3156004F5300000000000000000000000000000000061 -S3156004F5400000000000000000000000000000000051 -S3156004F5500000000000000000000000000000000041 -S3156004F5600000000000000000000000000000000031 -S3156004F5700000000000000000000000000000000021 -S3156004F5800000000000000000000000000000000011 -S3156004F5900000000000000000000000000000000001 -S3156004F5A000000000000000000000000000000000F1 -S3156004F5B000000000000000000000000000000000E1 -S3156004F5C000000000000000000000000000000000D1 -S3156004F5D000000000000000000000000000000000C1 -S3156004F5E000000000000000000000000000000000B1 -S3156004F5F000000000000000000000000000000000A1 -S3156004F6000000000000000000000000000000000090 -S3156004F6100000000000000000000000000000000080 -S3156004F6200000000000000000000000000000000070 -S3156004F6300000000000000000000000000000000060 -S3156004F6400000000000000000000000000000000050 -S3156004F6500000000000000000000000000000000040 -S3156004F6600000000000000000000000000000000030 -S3156004F6700000000000000000000000000000000020 -S3156004F6800000000000000000000000000000000010 -S3156004F6900000000000000000000000000000000000 -S3156004F6A000000000000000000000000000000000F0 -S3156004F6B000000000000000000000000000000000E0 -S3156004F6C000000000000000000000000000000000D0 -S3156004F6D000000000000000000000000000000000C0 -S3156004F6E000000000000000000000000000000000B0 -S3156004F6F000000000000000000000000000000000A0 -S3156004F700000000000000000000000000000000008F -S3156004F710000000000000000000000000000000007F -S3156004F720000000000000000000000000000000006F -S3156004F730000000000000000000000000000000005F -S3156004F740000000000000000000000000000000004F -S3156004F750000000000000000000000000000000003F -S3156004F760000000000000000000000000000000002F -S3156004F770000000000000000000000000000000001F -S3156004F780000000000000000000000000000000000F -S3156004F79000000000000000000000000000000000FF -S3156004F7A000000000000000000000000000000000EF -S3156004F7B000000000000000000000000000000000DF -S3156004F7C000000000000000000000000000000000CF -S3156004F7D000000000000000000000000000000000BF -S3156004F7E000000000000000000000000000000000AF -S3156004F7F0000000000000000000000000000000009F -S3156004F800000000000000000000000000000000008E -S3156004F810000000000000000000000000000000007E -S3156004F820000000000000000000000000000000006E -S3156004F830000000000000000000000000000000005E -S3156004F840000000000000000000000000000000004E -S3156004F850000000000000000000000000000000003E -S3156004F860000000000000000000000000000000002E -S3156004F870000000000000000000000000000000001E -S3156004F880000000000000000000000000000000000E -S3156004F89000000000000000000000000000000000FE -S3156004F8A000000000000000000000000000000000EE -S3156004F8B000000000000000000000000000000000DE -S3156004F8C000000000000000000000000000000000CE -S3156004F8D000000000000000000000000000000000BE -S3156004F8E000000000000000000000000000000000AE -S3156004F8F0000000000000000000000000000000009E -S3156004F900000000000000000000000000000000008D -S3156004F910000000000000000000000000000000007D -S3156004F920000000000000000000000000000000006D -S3156004F930000000000000000000000000000000005D -S3156004F940000000000000000000000000000000004D -S3156004F950000000000000000000000000000000003D -S3156004F960000000000000000000000000000000002D -S3156004F970000000000000000000000000000000001D -S3156004F980000000000000000000000000000000000D -S3156004F99000000000000000000000000000000000FD -S3156004F9A000000000000000000000000000000000ED -S3156004F9B000000000000000000000000000000000DD -S3156004F9C000000000000000000000000000000000CD -S3156004F9D000000000000000000000000000000000BD -S3156004F9E000000000000000000000000000000000AD -S3156004F9F0000000000000000000000000000000009D -S3156004FA00000000000000000000000000000000008C -S3156004FA10000000000000000000000000000000007C -S3156004FA20000000000000000000000000000000006C -S3156004FA30000000000000000000000000000000005C -S3156004FA40000000000000000000000000000000004C -S3156004FA50000000000000000000000000000000003C -S3156004FA60000000000000000000000000000000002C -S3156004FA70000000000000000000000000000000001C -S3156004FA80000000000000000000000000000000000C -S3156004FA9000000000000000000000000000000000FC -S3156004FAA000000000000000000000000000000000EC -S3156004FAB000000000000000000000000000000000DC -S3156004FAC000000000000000000000000000000000CC -S3156004FAD000000000000000000000000000000000BC -S3156004FAE000000000000000000000000000000000AC -S3156004FAF0000000000000000000000000000000009C -S3156004FB00000000000000000000000000000000008B -S3156004FB10000000000000000000000000000000007B -S3156004FB20000000000000000000000000000000006B -S3156004FB30000000000000000000000000000000005B -S3156004FB40000000000000000000000000000000004B -S3156004FB50000000000000000000000000000000003B -S3156004FB60000000000000000000000000000000002B -S3156004FB70000000000000000000000000000000001B -S3156004FB80000000000000000000000000000000000B -S3156004FB9000000000000000000000000000000000FB -S3156004FBA000000000000000000000000000000000EB -S3156004FBB000000000000000000000000000000000DB -S3156004FBC000000000000000000000000000000000CB -S3156004FBD000000000000000000000000000000000BB -S3156004FBE000000000000000000000000000000000AB -S3156004FBF0000000000000000000000000000000009B -S3156004FC00000000000000000000000000000000008A -S3156004FC10000000000000000000000000000000007A -S3156004FC20000000000000000000000000000000006A -S3156004FC30000000000000000000000000000000005A -S3156004FC40000000000000000000000000000000004A -S3156004FC50000000000000000000000000000000003A -S3156004FC60000000000000000000000000000000002A -S3156004FC70000000000000000000000000000000001A -S3156004FC80000000000000000000000000000000000A -S3156004FC9000000000000000000000000000000000FA -S3156004FCA000000000000000000000000000000000EA -S3156004FCB000000000000000000000000000000000DA -S3156004FCC000000000000000000000000000000000CA -S3156004FCD000000000000000000000000000000000BA -S3156004FCE000000000000000000000000000000000AA -S3156004FCF0000000000000000000000000000000009A -S3156004FD000000000000000000000000000000000089 -S3156004FD100000000000000000000000000000000079 -S3156004FD200000000000000000000000000000000069 -S3156004FD300000000000000000000000000000000059 -S3156004FD400000000000000000000000000000000049 -S3156004FD500000000000000000000000000000000039 -S3156004FD600000000000000000000000000000000029 -S3156004FD700000000000000000000000000000000019 -S3156004FD800000000000000000000000000000000009 -S3156004FD9000000000000000000000000000000000F9 -S3156004FDA000000000000000000000000000000000E9 -S3156004FDB000000000000000000000000000000000D9 -S3156004FDC000000000000000000000000000000000C9 -S3156004FDD000000000000000000000000000000000B9 -S3156004FDE000000000000000000000000000000000A9 -S3156004FDF00000000000000000000000000000000099 -S3156004FE000000000000000000000000000000000088 -S3156004FE100000000000000000000000000000000078 -S3156004FE200000000000000000000000000000000068 -S3156004FE300000000000000000000000000000000058 -S3156004FE400000000000000000000000000000000048 -S3156004FE500000000000000000000000000000000038 -S3156004FE600000000000000000000000000000000028 -S3156004FE700000000000000000000000000000000018 -S3156004FE800000000000000000000000000000000008 -S3156004FE9000000000000000000000000000000000F8 -S3156004FEA000000000000000000000000000000000E8 -S3156004FEB000000000000000000000000000000000D8 -S3156004FEC000000000000000000000000000000000C8 -S3156004FED000000000000000000000000000000000B8 -S3156004FEE000000000000000000000000000000000A8 -S3156004FEF00000000000000000000000000000000098 -S3156004FF000000000000000000000000000000000087 -S3156004FF100000000000000000000000000000000077 -S3156004FF200000000000000000000000000000000067 -S3156004FF300000000000000000000000000000000057 -S3156004FF400000000000000000000000000000000047 -S3156004FF500000000000000000000000000000000037 -S3156004FF600000000000000000000000000000000027 -S3156004FF700000000000000000000000000000000017 -S3156004FF800000000000000000000000000000000007 -S3156004FF9000000000000000000000000000000000F7 -S3156004FFA000000000000000000000000000000000E7 -S3156004FFB000000000000000000000000000000000D7 -S3156004FFC000000000000000000000000000000000C7 -S3156004FFD000000000000000000000000000000000B7 -S3156004FFE000000000000000000000000000000000A7 -S3156004FFF00000000000000000000000000000000097 -S315600500000000000200000003000000000000000080 -S315600500100000000100000000FFFFFFFE0000000376 -S3156005002055555554FFFFFFFE0000000355555554C1 -S31560050030700FFFFE00000007100249240000000053 -S315600500400000000000000000000000020000000340 -S315600500500000000000000003FFFFFFFEFFFFFFFF3B -S3156005006000000002FFFFFFFD000000000000000029 -S31560050070000000010000000000000000FFFFFFFF18 -S315600500800000000000000001FFFFFFFFFFFFFFFF0C -S31560050090FFFFFFFF00000001FFFFFFFFFFFFFFFE01 -S315600500A00000000300000000FFFFFFFEFFFFFFFDED -S315600500B000000000000000090000000700000001C4 -S315600500C0FFFFFFF700000002FFFFFFFCFFFFFFF8E1 -S315600500D000000002FFFFFFFCFFFFFFF8FFFFFFFCCC -S315600500E00000000200000008FFFFFFFCFFFFFFFEA7 -S315600500F0FFFFFFF8FFFFFFF800000001FFFFFFF8B5 -S31560050100FFFFFFF7000000000000000B0000000283 -S31560050110000000050000002F000000020000001727 -S3156005012000003039000002A700000012FFFF076CCF -S315600501300000004DFFFFFCC600003039FFFFFD598A -S31560050140FFFFFFEEFFFF076CFFFFFFB30000033AFB -S3156005015000000091FFFFE84100000000FFFFFD84FD -S31560050160FFFED02F000000000000F6FA006E498100 -S315600501700000000000000000000000000000000014 -S31560050180FFFFF0000000000200000003000000060B -S3156005019000000002FFFFFFFDFFFFFFFA0000000001 -S315600501A0000000010000000000000000FFFFFFFFE7 -S315600501B00000000000000001FFFFFFFFFFFFFFFFDB -S315600501C0FFFFFFFF00000001FFFFFFFFFFFFFFFED0 -S315600501D000000003FFFFFFFAFFFFFFFEFFFFFFFDC5 -S315600501E00000000600000000000000000000000995 -S315600501F00000000000000000000000000000000094 -S31560050200000000000000000100000002000000037D -S315600502100000000000000000000000000000000073 -S31560050220000000006005050C600505D8600506A49C -S315600502300000000000000000000000000000000053 -S315600502400000000000000000000000000000000043 -S31560050250000000006001B58000000000000000009D -S315600502600000000000000000000000000000000023 -S315600502700000000000000000000000000000000013 -S315600502800000000000000000000000000000000003 -S3156005029000000000000000000000000000000000F3 -S315600502A000000000000000000000000000000000E3 -S315600502B000000000000000000000000000000000D3 -S315600502C000000000000000000000000000000001C2 -S315600502D0330EABCD1234E66DDEEC0005000B000087 -S315600502E000000000000000000000000000000000A3 -S315600502F00000000000000000000000000000000093 -S315600503000000000000000000000000000000000082 -S315600503100000000000000000000000000000000072 -S315600503200000000000000000000000000000000062 -S315600503300000000000000000000000000000000052 -S315600503400000000000000000000000000000000042 -S315600503500000000000000000000000000000000032 -S315600503600000000000000000000000000000000022 -S315600503700000000000000000000000000000000012 -S315600503800000000000000000000000000000000002 -S3156005039000000000000000000000000000000000F2 -S315600503A000000000000000000000000000000000E2 -S315600503B000000000000000000000000000000000D2 -S315600503C000000000000000000000000000000000C2 -S315600503D000000000000000000000000000000000B2 -S315600503E000000000000000000000000000000000A2 -S315600503F00000000000000000000000000000000092 -S315600504000000000000000000000000000000000081 -S315600504100000000000000000000000000000000071 -S315600504200000000000000000000000000000000061 -S315600504300000000000000000000000000000000051 -S315600504400000000000000000000000000000000041 -S315600504500000000000000000000000000000000031 -S315600504600000000000000000000000000000000021 -S315600504700000000000000000000000000000000011 -S315600504800000000000000000000000000000000001 -S3156005049000000000000000000000000000000000F1 -S315600504A000000000000000000000000000000000E1 -S315600504B000000000000000000000000000000000D1 -S315600504C000000000000000000000000000000000C1 -S315600504D000000000000000000000000000000000B1 -S315600504E000000000000000000000000000000000A1 -S315600504F00000000000000000000000000000000091 -S315600505000000000000000000000000000000000080 -S315600505100000000000000000000000000000000070 -S315600505200000000000000000000000000000000060 -S315600505300000000000000000000000000000000050 -S315600505400000000000000000000000000000000040 -S315600505500000000000000000000000000000000030 -S315600505600000000000000000000000000000000020 -S315600505700000000000000000000000000000000010 -S315600505800000000000000000000000000000000000 -S3156005059000000000000000000000000000000000F0 -S315600505A000000000000000000000000000000000E0 -S315600505B000000000000000000000000000000000D0 -S315600505C000000000000000000000000000000000C0 -S315600505D000000000000000000000000000000000B0 -S315600505E000000000000000000000000000000000A0 -S315600505F00000000000000000000000000000000090 -S31560050600000000000000000000000000000000007F -S31560050610000000000000000000000000000000006F -S31560050620000000000000000000000000000000005F -S31560050630000000000000000000000000000000004F -S31560050640000000000000000000000000000000003F -S31560050650000000000000000000000000000000002F -S31560050660000000000000000000000000000000001F -S31560050670000000000000000000000000000000000F -S3156005068000000000000000000000000000000000FF -S3156005069000000000000000000000000000000000EF -S315600506A000000000000000000000000000000000DF -S315600506B000000000000000000000000000000000CF -S315600506C000000000000000000000000000000000BF -S315600506D000000000000000000000000000000000AF -S315600506E0000000000000000000000000000000009F -S315600506F0000000000000000000000000000000008F -S31560050700000000000000000000000000000000007E -S31560050710000000000000000000000000000000006E -S31560050720000000000000000000000000000000005E -S31560050730000000000000000000000000000000004E -S31560050740000000000000000000000000000000003E -S31560050750000000000000000000000000000000002E -S31560050760000000000000000000000000000000001E -S315600507706005022000000000FFFFFFFF0002000089 -S315600507800000000000000000600507806005078026 -S31560050790600507886005078860050790600507900E -S315600507A06005079860050798600507A0600507A0BE -S315600507B0600507A8600507A8600507B0600507B06E -S315600507C0600507B8600507B8600507C0600507C01E -S315600507D0600507C8600507C8600507D0600507D0CE -S315600507E0600507D8600507D8600507E0600507E07E -S315600507F0600507E8600507E8600507F0600507F02E -S31560050800600507F8600507F86005080060050800DB -S315600508106005080860050808600508106005081089 -S315600508206005081860050818600508206005082039 -S3156005083060050828600508286005083060050830E9 -S315600508406005083860050838600508406005084099 -S315600508506005084860050848600508506005085049 -S3156005086060050858600508586005086060050860F9 -S3156005087060050868600508686005087060050870A9 -S315600508806005087860050878600508806005088059 -S315600508906005088860050888600508906005089009 -S315600508A06005089860050898600508A0600508A0B9 -S315600508B0600508A8600508A8600508B0600508B069 -S315600508C0600508B8600508B8600508C0600508C019 -S315600508D0600508C8600508C8600508D0600508D0C9 -S315600508E0600508D8600508D8600508E0600508E079 -S315600508F0600508E8600508E8600508F0600508F029 -S31560050900600508F8600508F86005090060050900D6 -S315600509106005090860050908600509106005091084 -S315600509206005091860050918600509206005092034 -S3156005093060050928600509286005093060050930E4 -S315600509406005093860050938600509406005094094 -S315600509506005094860050948600509506005095044 -S3156005096060050958600509586005096060050960F4 -S3156005097060050968600509686005097060050970A4 -S315600509806005097860050978600509806005098054 -S315600509906005098860050988600509906005099004 -S315600509A06005099860050998600509A0600509A0B4 -S315600509B0600509A8600509A8600509B0600509B064 -S315600509C0600509B8600509B8600509C0600509C014 -S315600509D0600509C8600509C8600509D0600509D0C4 -S315600509E0600509D8600509D8600509E0600509E074 -S315600509F0600509E8600509E8600509F0600509F024 -S31560050A00600509F8600509F860050A0060050A00D1 -S31560050A1060050A0860050A0860050A1060050A107F -S31560050A2060050A1860050A1860050A2060050A202F -S31560050A3060050A2860050A2860050A3060050A30DF -S31560050A4060050A3860050A3860050A4060050A408F -S31560050A5060050A4860050A4860050A5060050A503F -S31560050A6060050A5860050A5860050A6060050A60EF -S31560050A7060050A6860050A6860050A7060050A709F -S31560050A8060050A7860050A7860050A8060050A804F -S31560050A9060050A8860050A8860050A9060050A90FF -S31560050AA060050A9860050A9860050AA060050AA0AF -S31560050AB060050AA860050AA860050AB060050AB05F -S31560050AC060050AB860050AB860050AC060050AC00F -S31560050AD060050AC860050AC860050AD060050AD0BF -S31560050AE060050AD860050AD860050AE060050AE06F -S31560050AF060050AE860050AE860050AF060050AF01F -S31560050B0060050AF860050AF860050B0060050B00CC -S31560050B1060050B0860050B0860050B1060050B107A -S31560050B2060050B1860050B1860050B2060050B202A -S31560050B3060050B2860050B2860050B3060050B30DA -S31560050B4060050B3860050B3860050B4060050B408A -S31560050B5060050B4860050B4860050B5060050B503A -S31560050B6060050B5860050B5860050B6060050B60EA -S31560050B7060050B6860050B6860050B7060050B709A -S31560050B8060050B7860050B780000000060050B8832 -S31560050B9000000000000000000000000000000002E8 -S31560050BA000000000000000000000000000000000DA -S31560050BB000000000000000000000000000000000CA -S31560050BC000000000000000000000000000000000BA -S31560050BD000000000000000000000000000000000AA -S31560050BE0000000000000000000000000000000009A -S31560050BF0000000000000000000000000000000008A -S31560050C000000000000000000000000000000000079 -S31560050C100000000000000000000000000000000069 -S31560050C200000000000000000000000000000000059 -S31560050C3080000100000000080000000700000006B3 -S31560050C40000000030000000000000000FFFF8AD0DE -S30960050C5080000310A2 -S705600000009A diff --git a/designs/leon3-ge-hpe-mini-lattice/testbench.vhd b/designs/leon3-ge-hpe-mini-lattice/testbench.vhd deleted file mode 100644 index 4fc7d2a6..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/testbench.vhd +++ /dev/null @@ -1,501 +0,0 @@ ------------------------------------------------------------------------------ --- LEON3 Demonstration design test bench --- Copyright (C) 2004 Jiri Gaisler, Gaisler Research --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. ------------------------------------------------------------------------------- --- modified by Thomas Ameseder, Gleichmann Electronics 2004, 2005 to --- support the use of an external AHB slave and different HPE board versions ------------------------------------------------------------------------------- --- further adapted from Hpe_compact to Hpe_mini (Feb. 2005) ------------------------------------------------------------------------------- - - -library ieee; -use ieee.std_logic_1164.all; -library gaisler; -use gaisler.libdcom.all; -use gaisler.sim.all; -library techmap; -use techmap.gencomp.all; -library micron; -use micron.components.all; -library gleichmann; -use gleichmann.hpi.all; - -use work.config.all; -- configuration -use work.debug.all; -use std.textio.all; -library grlib; -use grlib.stdlib.all; -use grlib.stdio.all; -use grlib.devices.all; - - -entity testbench is - generic ( - fabtech : integer := CFG_FABTECH; - memtech : integer := CFG_MEMTECH; - padtech : integer := CFG_PADTECH; - clktech : integer := CFG_CLKTECH; - disas : integer := CFG_DISAS; -- Enable disassembly to console - dbguart : integer := CFG_DUART; -- Print UART on console - pclow : integer := CFG_PCLOW; - - clkperiod : integer := 40; -- system clock period - romwidth : integer := 32; -- rom data width (8/32) - romdepth : integer := 16; -- rom address depth - sramwidth : integer := 32; -- ram data width (8/16/32) - sramdepth : integer := 18; -- ram address depth - srambanks : integer := 2 -- number of ram banks - ); -end; - -architecture behav of testbench is - - constant promfile : string := "prom.srec"; -- rom contents - constant sramfile : string := "sram.srec"; -- ram contents - constant sdramfile : string := "sdram.srec"; -- sdram contents - - - signal clk : std_logic := '0'; - signal Rst : std_logic := '0'; -- Reset - constant ct : integer := clkperiod/2; - - signal address : std_logic_vector(27 downto 0); - signal data : std_logic_vector(31 downto 0); - - signal ramsn : std_logic_vector(4 downto 0); - signal ramoen : std_logic_vector(4 downto 0); - signal rwen : std_logic_vector(3 downto 0); - signal rwenx : std_logic_vector(3 downto 0); - signal romsn : std_logic_vector(1 downto 0); - signal iosn : std_ulogic; - signal oen : std_ulogic; - signal read : std_ulogic; - signal writen : std_ulogic; - signal rben : std_logic_vector(3 downto 0); - signal tmp : std_logic_vector(3 downto 0); - - -- ddr memory - signal ddr_clk : std_logic; - signal ddr_clkb : std_logic; - signal ddr_clk_fb : std_logic; - signal ddr_cke : std_logic; - signal ddr_csb : std_logic; - signal ddr_web : std_ulogic; -- ddr write enable - signal ddr_rasb : std_ulogic; -- ddr ras - signal ddr_casb : std_ulogic; -- ddr cas - signal ddr_dm : std_logic_vector (3 downto 0); -- ddr dm - signal ddr_dqs : std_logic_vector (3 downto 0); -- ddr dqs - signal ddr_ad : std_logic_vector (12 downto 0); -- ddr address - signal ddr_ba : std_logic_vector (1 downto 0); -- ddr bank address - signal ddr_dq : std_logic_vector (31 downto 0); -- ddr data - - signal ddr_clk_del : std_logic; -- delayed DDR memory clocks - signal ddr_clkb_del : std_logic; - - signal brdyn : std_ulogic; - signal bexcn : std_ulogic; - signal wdog : std_ulogic; - signal dsuen, dsutx, dsurx, dsubre, dsuact : std_ulogic; - signal dsurst : std_ulogic; - signal test : std_ulogic; - - signal error : std_logic; - - signal pio : std_logic_vector(15 downto 0); - signal GND : std_ulogic := '0'; - signal VCC : std_ulogic := '1'; - signal NC : std_ulogic := 'Z'; - signal clk2 : std_ulogic := '1'; - - signal sdcke : std_logic_vector (1 downto 0); -- clk en - signal sdcsn : std_logic_vector (1 downto 0); -- chip sel - signal sdwen : std_ulogic; -- write en - signal sdrasn : std_ulogic; -- row addr stb - signal sdcasn : std_ulogic; -- col addr stb - signal sddqm : std_logic_vector (3 downto 0); -- data i/o mask - signal sd_clk : std_logic_vector(1 downto 0); - - signal sdclk : std_ulogic; --- alias sdclk : std_logic is sd_clk(0); - signal plllock : std_ulogic; - --- pulled up high, therefore std_logic - signal txd1, rxd1 : std_logic; - - signal etx_clk, erx_clk, erx_dv, erx_er, erx_col, erx_crs, etx_en, etx_er : std_logic := '0'; - signal erxd, etxd : std_logic_vector(3 downto 0) := (others => '0'); - signal erxdt, etxdt : std_logic_vector(7 downto 0) := (others => '0'); - signal emdc, emdio : std_logic; - signal gtx_clk : std_ulogic := '0'; - - signal emddis : std_logic; - signal epwrdwn : std_logic; - signal ereset : std_logic; - signal esleep : std_logic; - signal epause : std_logic; - signal tp_out : std_logic_vector(7 downto 0); - signal led_cfg : std_logic_vector(2 downto 0); - - constant lresp : boolean := false; - - signal sa : std_logic_vector(14 downto 0); - signal sd : std_logic_vector(63 downto 0); - - --- Added for Hpe - - signal resoutn : std_logic; - signal disrams : std_logic; - signal sdclk0 : std_ulogic; - signal sdclk1 : std_ulogic; - signal sdba0 : std_logic; -- bank address zero - signal sdba1 : std_logic; -- bank address one - signal dsubren : std_ulogic; - signal dsuactn : std_ulogic; - signal bufdir : std_logic; - signal bufoen : std_logic; - signal s_sddqm : std_logic_vector (3 downto 0); - - signal HRESETn : std_ulogic; - signal HSEL : std_ulogic; - signal HREADY_ba : std_ulogic; -- hready input signal - signal HADDR : std_logic_vector(31 downto 0); - signal HWRITE : std_ulogic; - signal HTRANS : std_logic_vector(1 downto 0); - signal HSIZE : std_logic_vector(2 downto 0); - signal HBURST : std_logic_vector(2 downto 0); - signal HWDATA : std_logic_vector(31 downto 0); - signal HMASTER : std_logic_vector(3 downto 0); - signal HMASTLOCK : std_ulogic; - signal HREADY : std_ulogic; - signal HRESP : std_logic_vector(1 downto 0); - signal HRDATA : std_logic_vector(31 downto 0); - signal HSPLIT : std_logic_vector(15 downto 0); - - signal clk_ctrl : std_logic_vector(1 downto 0); -- cpld - signal CAN_RXD : std_logic; - signal CAN_TXD : std_logic; - signal CAN_STB : std_logic; - signal CAN_TXD_delayed : std_logic := '1'; - signal gpio : std_logic_vector(7 downto 0); - - signal dac : std_ulogic; -- ouput of sigma delta DAC - - subtype sd_address_range is natural range 14 downto 2; - subtype sd_ba_range is natural range 16 downto 15; - - signal vga_vsync : std_ulogic; - signal vga_hsync : std_ulogic; - signal vga_rd : std_logic_vector(1 downto 0); - signal vga_gr : std_logic_vector(1 downto 0); - signal vga_bl : std_logic_vector(1 downto 0); - - signal ata_data : std_logic_vector(15 downto 0); - signal ata_da : std_logic_vector(2 downto 0); - signal ata_cs0 : std_logic; - signal ata_cs1 : std_logic; - signal ata_dior : std_logic; - signal ata_diow : std_logic; - signal ata_iordy : std_logic; - signal ata_intrq : std_logic; - - - --------------------------------------------------------------------------------------- - -- HPI SIGNALS - --------------------------------------------------------------------------------------- - signal hpiaddr : std_logic_vector(1 downto 0); - signal hpidata, hpirdata : std_logic_vector(15 downto 0); - signal hpicsn : std_ulogic; - signal hpiwrn : std_ulogic; - signal hpirdn : std_ulogic; - signal hpiint : std_ulogic; - signal dbg_equal : std_ulogic; - signal drive_bus : std_ulogic; - --------------------------------------------------------------------------------------- -begin - - dsubren <= not dsubre; - disrams <= '0'; - --- clock and reset - - clk <= not clk after ct * 1 ns; - rst <= '1' after 10 ns; - dsuen <= '0'; dsubre <= '0'; rxd1 <= 'H'; - led_cfg <= "000"; --put the phy in base10h mode - - d3 : entity work.leon3mini - port map ( - resetn => rst, - resoutn => resoutn, - clk => clk, - errorn => error, - address => address, - data => data, - - ddr_clk0 => ddr_clk, - ddr_clk0b => ddr_clkb, - ddr_clk_fb => ddr_clk_fb, - ddr_cke0 => ddr_cke, - ddr_cs0b => ddr_csb, - ddr_web => ddr_web, - ddr_rasb => ddr_rasb, - ddr_casb => ddr_casb, - ddr_dm => ddr_dm, - ddr_dqs => ddr_dqs, - ddr_ad => ddr_ad, - ddr_ba => ddr_ba, - ddr_dq => ddr_dq, - ddr_clk1 => open, - ddr_clk1b => open, - ddr_cke1 => open, - ddr_cs1b => open, - sertx => dsutx, - serrx => dsurx, - --- dsuen => dsuen, - dsubre => dsubre, --- dsuactn => dsuactn, - - ramsn => ramsn(0), - oen => oen, - rben => rben, - writen => writen, - read => read, - iosn => iosn, - romsn => romsn(0), - - emdio => emdio, - etx_clk => etx_clk, - erx_clk => erx_clk, - erxd => erxd, - erx_dv => erx_dv, - erx_er => erx_er, - erx_col => erx_col, - erx_crs => erx_crs, - etxd => etxd, - etx_en => etx_en, - etx_er => etx_er, - emdc => emdc, - - ata_data => ata_data, - ata_da => ata_da, - ata_cs0 => ata_cs0, - ata_cs1 => ata_cs1, - ata_dior => ata_dior, - ata_diow => ata_diow, - ata_iordy => ata_iordy, - ata_intrq => ata_intrq, - - dac => dac, - vga_vsync => vga_vsync, - vga_hsync => vga_hsync, - vga_rd => vga_rd, - vga_gr => vga_gr, - vga_bl => vga_bl - ); - - hpidata <= hpirdata when hpirdn = '0' else (others => 'Z'); - - hpiint <= '0'; - - hpi_ram_1 : hpi_ram - generic map ( - abits => 10, - dbits => 16) - port map ( - clk => clk, - address => hpiaddr, - datain => hpidata, - dataout => hpirdata, - writen => hpiwrn, - readn => hpirdn, - csn => hpicsn - ); - --- optional sdram - - sd0 : if (CFG_MCTRL_SDEN = 1) generate - u0 : mt48lc16m16a2 generic map (index => 0, fname => sdramfile) - port map( - Dq => data(31 downto 16), Addr => address(sd_address_range), - Ba => address(sd_ba_range), Clk => sdclk, Cke => sdcke(0), - Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(3 downto 2)); - u1 : mt48lc16m16a2 generic map (index => 16, fname => sdramfile) - port map( - Dq => data(15 downto 0), Addr => address(sd_address_range), - Ba => address(sd_ba_range), Clk => sdclk, Cke => sdcke(0), - Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(1 downto 0)); - u2 : mt48lc16m16a2 generic map (index => 0, fname => sdramfile) - port map( - Dq => data(31 downto 16), Addr => address(sd_address_range), - Ba => address(sd_ba_range), Clk => sdclk, Cke => sdcke(0), - Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(3 downto 2)); - u3 : mt48lc16m16a2 generic map (index => 16, fname => sdramfile) - port map( - Dq => data(15 downto 0), Addr => address(sd_address_range), - Ba => address(sd_ba_range), Clk => sdclk, Cke => sdcke(0), - Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(1 downto 0)); - end generate; - - ddr_clk_del <= transport ddr_clk after 5 ns; - ddr_clkb_del <= transport ddr_clkb after 5 ns; - - u1 : mt46v16m16 - port map( - Dq => ddr_dq(15 downto 0), Dqs => ddr_dqs(1 downto 0), Addr => ddr_ad, - Ba => ddr_ba, Clk => ddr_clk_del, Clk_n => ddr_clkb_del, Cke => ddr_cke, - Cs_n => ddr_csb, Ras_n => ddr_rasb, Cas_n => ddr_casb, We_n => ddr_web, - Dm => ddr_dm(1 downto 0)); - - u2 : mt46v16m16 - port map( - Dq => ddr_dq(31 downto 16), Dqs => ddr_dqs(3 downto 2), Addr => ddr_ad, - Ba => ddr_ba, Clk => ddr_clk_del, Clk_n => ddr_clkb_del, Cke => ddr_cke, - Cs_n => ddr_csb, Ras_n => ddr_rasb, Cas_n => ddr_casb, We_n => ddr_web, - Dm => ddr_dm(3 downto 2)); - - tmp <= not rben; - extbprom : if CFG_BOOTOPT = 0 generate - prom0 : for i in 0 to (romwidth/8)-1 generate - sr0 : sram generic map (index => i, abits => romdepth, fname => promfile) - port map (address(romdepth+1 downto 2), data(31-i*8 downto 24-i*8), romsn(0), - tmp(i), oen); -- **** tame: changed rwen to rben - end generate; - end generate extbprom; - - - sram0 : for i in 0 to (sramwidth/8)-1 generate - sr0 : sram generic map (index => i, abits => sramdepth, fname => sramfile) - port map (address(sramdepth+1 downto 2), data(31-i*8 downto 24-i*8), ramsn(0), - writen, oen); -- **** tame: changed rwen to rben - -- rben(0), ramoen(0)); -- **** tame: changed rwen to rben - end generate; - - phy0 : if CFG_GRETH > 0 generate - emdio <= 'H'; - erxd <= erxdt(3 downto 0); - etxdt <= "0000" & etxd; - - p0 : phy - generic map(base1000_t_fd => 0, base1000_t_hd => 0) - port map(rst, emdio, etx_clk, erx_clk, erxdt, erx_dv, - erx_er, erx_col, erx_crs, etxdt, etx_en, etx_er, emdc, gtx_clk); - end generate; - error <= 'H'; -- ERROR pull-up - - iuerr : process - begin - wait for 5 us; - assert (to_X01(error) /= '0') - report "*** IU in error mode, simulation halted ***" - severity failure; - end process; - - data <= buskeep(data), (others => 'H') after 250 ns; - sd <= buskeep(sd), (others => 'H') after 250 ns; - - test0 : grtestmod - port map (rst, clk, error, address(21 downto 2), data, - iosn, oen, writen, brdyn); - - dcomstart : if CFG_BOOTOPT = 0 generate - - dsucom : process - procedure dsucfg(signal dsurx : in std_ulogic; signal dsutx : out std_ulogic) is - variable w32 : std_logic_vector(31 downto 0); - variable c8 : std_logic_vector(7 downto 0); - constant txp : time := 160 * 1 ns; - begin - dsutx <= '1'; - dsurst <= '1'; --- wait; - wait for 5000 ns; - txc(dsutx, 16#55#, txp); -- sync uart - --- txc(dsutx, 16#c0#, txp); --- txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); --- txa(dsutx, 16#00#, 16#00#, 16#00#, 16#ef#, txp); --- --- txc(dsutx, 16#c0#, txp); --- txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); --- txa(dsutx, 16#00#, 16#00#, 16#ff#, 16#ff#, txp); --- --- txc(dsutx, 16#c0#, txp); --- txa(dsutx, 16#90#, 16#40#, 16#00#, 16#48#, txp); --- txa(dsutx, 16#00#, 16#00#, 16#00#, 16#12#, txp); --- --- txc(dsutx, 16#c0#, txp); --- txa(dsutx, 16#90#, 16#40#, 16#00#, 16#60#, txp); --- txa(dsutx, 16#00#, 16#00#, 16#12#, 16#10#, txp); --- --- txc(dsutx, 16#80#, txp); --- txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); --- rxi(dsurx, w32, txp, lresp); ---********** --- print("Start write"); - txc(dsutx, 16#c2#, txp); - txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); - txa(dsutx, 16#aa#, 16#aa#, 16#aa#, 16#a0#, txp); - txa(dsutx, 16#aa#, 16#aa#, 16#aa#, 16#a4#, txp); - txa(dsutx, 16#aa#, 16#aa#, 16#aa#, 16#a8#, txp); --- txa(dsutx, 16#aa#, 16#aa#, 16#aa#, 16#ac#, txp); --- txa(dsutx, 16#aa#, 16#aa#, 16#aa#, 16#10#, txp); --- txa(dsutx, 16#aa#, 16#aa#, 16#aa#, 16#14#, txp); --- txa(dsutx, 16#aa#, 16#aa#, 16#aa#, 16#18#, txp); --- txa(dsutx, 16#aa#, 16#aa#, 16#aa#, 16#1c#, txp); - --- print("Start read"); - txc(dsutx, 16#80#, txp); - txa(dsutx, 16#40#, 16#00#, 16#00#, 16#04#, txp); - rxi(dsurx, w32, txp, lresp); - --- print("Res: " & tost(w32)); ---********** - - txc(dsutx, 16#a0#, txp); - txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); - rxi(dsurx, w32, txp, lresp); - - end; - - begin - - dsucfg(dsutx, dsurx); - - wait; - end process; - - end generate dcomstart; - - - altstimuli : if CFG_BOOTOPT = 1 generate - stimuli : process - begin - dsurx <= '1'; - -- rxd1 <= 'H'; --already defined above - txd1 <= 'H'; - - - wait; - end process STIMULI; - end generate altstimuli; - -end; - - diff --git a/designs/leon3-ge-hpe-mini-lattice/tkconfig.h b/designs/leon3-ge-hpe-mini-lattice/tkconfig.h deleted file mode 100644 index 7c024404..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/tkconfig.h +++ /dev/null @@ -1,1063 +0,0 @@ -#if defined CONFIG_SYN_INFERRED -#define CONFIG_SYN_TECH inferred -#elif defined CONFIG_SYN_UMC -#define CONFIG_SYN_TECH umc -#elif defined CONFIG_SYN_RHUMC -#define CONFIG_SYN_TECH rhumc -#elif defined CONFIG_SYN_ATC18 -#define CONFIG_SYN_TECH atc18s -#elif defined CONFIG_SYN_ATC18RHA -#define CONFIG_SYN_TECH atc18rha -#elif defined CONFIG_SYN_AXCEL -#define CONFIG_SYN_TECH axcel -#elif defined CONFIG_SYN_AXDSP -#define CONFIG_SYN_TECH axdsp -#elif defined CONFIG_SYN_PROASICPLUS -#define CONFIG_SYN_TECH proasic -#elif defined CONFIG_SYN_ALTERA -#define CONFIG_SYN_TECH altera -#elif defined CONFIG_SYN_STRATIX -#define CONFIG_SYN_TECH stratix1 -#elif defined CONFIG_SYN_STRATIXII -#define CONFIG_SYN_TECH stratix2 -#elif defined CONFIG_SYN_STRATIXIII -#define CONFIG_SYN_TECH stratix3 -#elif defined CONFIG_SYN_CYCLONEIII -#define CONFIG_SYN_TECH cyclone3 -#elif defined CONFIG_SYN_EASIC45 -#define CONFIG_SYN_TECH easic45 -#elif defined CONFIG_SYN_EASIC90 -#define CONFIG_SYN_TECH easic90 -#elif defined CONFIG_SYN_IHP25 -#define CONFIG_SYN_TECH ihp25 -#elif defined CONFIG_SYN_IHP25RH -#define CONFIG_SYN_TECH ihp25rh -#elif defined CONFIG_SYN_CMOS9SF -#define CONFIG_SYN_TECH cmos9sf -#elif defined CONFIG_SYN_LATTICE -#define CONFIG_SYN_TECH lattice -#elif defined CONFIG_SYN_ECLIPSE -#define CONFIG_SYN_TECH eclipse -#elif defined CONFIG_SYN_PEREGRINE -#define CONFIG_SYN_TECH peregrine -#elif defined CONFIG_SYN_PROASIC -#define CONFIG_SYN_TECH proasic -#elif defined CONFIG_SYN_PROASIC3 -#define CONFIG_SYN_TECH apa3 -#elif defined CONFIG_SYN_PROASIC3E -#define CONFIG_SYN_TECH apa3e -#elif defined CONFIG_SYN_PROASIC3L -#define CONFIG_SYN_TECH apa3l -#elif defined CONFIG_SYN_IGLOO -#define CONFIG_SYN_TECH apa3 -#elif defined CONFIG_SYN_FUSION -#define CONFIG_SYN_TECH actfus -#elif defined CONFIG_SYN_SPARTAN2 -#define CONFIG_SYN_TECH virtex -#elif defined CONFIG_SYN_VIRTEX -#define CONFIG_SYN_TECH virtex -#elif defined CONFIG_SYN_VIRTEXE -#define CONFIG_SYN_TECH virtex -#elif defined CONFIG_SYN_SPARTAN3 -#define CONFIG_SYN_TECH spartan3 -#elif defined CONFIG_SYN_SPARTAN3E -#define CONFIG_SYN_TECH spartan3e -#elif defined CONFIG_SYN_SPARTAN6 -#define CONFIG_SYN_TECH spartan6 -#elif defined CONFIG_SYN_VIRTEX2 -#define CONFIG_SYN_TECH virtex2 -#elif defined CONFIG_SYN_VIRTEX4 -#define CONFIG_SYN_TECH virtex4 -#elif defined CONFIG_SYN_VIRTEX5 -#define CONFIG_SYN_TECH virtex5 -#elif defined CONFIG_SYN_VIRTEX6 -#define CONFIG_SYN_TECH virtex6 -#elif defined CONFIG_SYN_RH_LIB18T -#define CONFIG_SYN_TECH rhlib18t -#elif defined CONFIG_SYN_SMIC13 -#define CONFIG_SYN_TECH smic013 -#elif defined CONFIG_SYN_UT025CRH -#define CONFIG_SYN_TECH ut25 -#elif defined CONFIG_SYN_UT130HBD -#define CONFIG_SYN_TECH ut130 -#elif defined CONFIG_SYN_UT90NHBD -#define CONFIG_SYN_TECH ut90 -#elif defined CONFIG_SYN_TSMC90 -#define CONFIG_SYN_TECH tsmc90 -#elif defined CONFIG_SYN_TM65GPLUS -#define CONFIG_SYN_TECH tm65gpl -#elif defined CONFIG_SYN_CUSTOM1 -#define CONFIG_SYN_TECH custom1 -#else -#error "unknown target technology" -#endif - -#if defined CONFIG_SYN_INFER_RAM -#define CFG_RAM_TECH inferred -#elif defined CONFIG_MEM_UMC -#define CFG_RAM_TECH umc -#elif defined CONFIG_MEM_RHUMC -#define CFG_RAM_TECH rhumc -#elif defined CONFIG_MEM_VIRAGE -#define CFG_RAM_TECH memvirage -#elif defined CONFIG_MEM_ARTISAN -#define CFG_RAM_TECH memartisan -#elif defined CONFIG_MEM_CUSTOM1 -#define CFG_RAM_TECH custom1 -#elif defined CONFIG_MEM_VIRAGE90 -#define CFG_RAM_TECH memvirage90 -#elif defined CONFIG_MEM_INFERRED -#define CFG_RAM_TECH inferred -#else -#define CFG_RAM_TECH CONFIG_SYN_TECH -#endif - -#if defined CONFIG_SYN_INFER_PADS -#define CFG_PAD_TECH inferred -#else -#define CFG_PAD_TECH CONFIG_SYN_TECH -#endif - -#ifndef CONFIG_SYN_NO_ASYNC -#define CONFIG_SYN_NO_ASYNC 0 -#endif - -#ifndef CONFIG_SYN_SCAN -#define CONFIG_SYN_SCAN 0 -#endif - - -#if defined CONFIG_CLK_ALTDLL -#define CFG_CLK_TECH CONFIG_SYN_TECH -#elif defined CONFIG_CLK_HCLKBUF -#define CFG_CLK_TECH axcel -#elif defined CONFIG_CLK_LATDLL -#define CFG_CLK_TECH lattice -#elif defined CONFIG_CLK_PRO3PLL -#define CFG_CLK_TECH apa3 -#elif defined CONFIG_CLK_PRO3EPLL -#define CFG_CLK_TECH apa3e -#elif defined CONFIG_CLK_PRO3LPLL -#define CFG_CLK_TECH apa3l -#elif defined CONFIG_CLK_FUSPLL -#define CFG_CLK_TECH actfus -#elif defined CONFIG_CLK_CLKDLL -#define CFG_CLK_TECH virtex -#elif defined CONFIG_CLK_DCM -#define CFG_CLK_TECH CONFIG_SYN_TECH -#elif defined CONFIG_CLK_LIB18T -#define CFG_CLK_TECH rhlib18t -#elif defined CONFIG_CLK_RHUMC -#define CFG_CLK_TECH rhumc -#elif defined CONFIG_CLK_UT130HBD -#define CFG_CLK_TECH ut130 -#else -#define CFG_CLK_TECH inferred -#endif - -#ifndef CONFIG_CLK_MUL -#define CONFIG_CLK_MUL 2 -#endif - -#ifndef CONFIG_CLK_DIV -#define CONFIG_CLK_DIV 2 -#endif - -#ifndef CONFIG_OCLK_DIV -#define CONFIG_OCLK_DIV 1 -#endif - -#ifndef CONFIG_OCLKB_DIV -#define CONFIG_OCLKB_DIV 0 -#endif - -#ifndef CONFIG_OCLKC_DIV -#define CONFIG_OCLKC_DIV 0 -#endif - -#ifndef CONFIG_PCI_CLKDLL -#define CONFIG_PCI_CLKDLL 0 -#endif - -#ifndef CONFIG_PCI_SYSCLK -#define CONFIG_PCI_SYSCLK 0 -#endif - -#ifndef CONFIG_CLK_NOFB -#define CONFIG_CLK_NOFB 0 -#endif -#ifndef CONFIG_LEON3 -#define CONFIG_LEON3 0 -#endif - -#ifndef CONFIG_PROC_NUM -#define CONFIG_PROC_NUM 1 -#endif - -#ifndef CONFIG_IU_NWINDOWS -#define CONFIG_IU_NWINDOWS 8 -#endif - -#ifndef CONFIG_IU_RSTADDR -#define CONFIG_IU_RSTADDR 8 -#endif - -#ifndef CONFIG_IU_LDELAY -#define CONFIG_IU_LDELAY 1 -#endif - -#ifndef CONFIG_IU_WATCHPOINTS -#define CONFIG_IU_WATCHPOINTS 0 -#endif - -#ifdef CONFIG_IU_V8MULDIV -#ifdef CONFIG_IU_MUL_LATENCY_4 -#define CFG_IU_V8 1 -#elif defined CONFIG_IU_MUL_LATENCY_5 -#define CFG_IU_V8 2 -#elif defined CONFIG_IU_MUL_LATENCY_2 -#define CFG_IU_V8 16#32# -#endif -#else -#define CFG_IU_V8 0 -#endif - -#ifdef CONFIG_IU_MUL_MODGEN -#define CFG_IU_MUL_STRUCT 1 -#elif defined CONFIG_IU_MUL_TECHSPEC -#define CFG_IU_MUL_STRUCT 2 -#elif defined CONFIG_IU_MUL_DW -#define CFG_IU_MUL_STRUCT 3 -#else -#define CFG_IU_MUL_STRUCT 0 -#endif - -#ifndef CONFIG_PWD -#define CONFIG_PWD 0 -#endif - -#ifndef CONFIG_IU_MUL_MAC -#define CONFIG_IU_MUL_MAC 0 -#endif - -#ifndef CONFIG_IU_BP -#define CONFIG_IU_BP 0 -#endif - -#ifndef CONFIG_NOTAG -#define CONFIG_NOTAG 0 -#endif - -#ifndef CONFIG_IU_SVT -#define CONFIG_IU_SVT 0 -#endif - -#if defined CONFIG_FPU_GRFPC1 -#define CONFIG_FPU_GRFPC 1 -#elif defined CONFIG_FPU_GRFPC2 -#define CONFIG_FPU_GRFPC 2 -#else -#define CONFIG_FPU_GRFPC 0 -#endif - -#if defined CONFIG_FPU_GRFPU_INFMUL -#define CONFIG_FPU_GRFPU_MUL 0 -#elif defined CONFIG_FPU_GRFPU_DWMUL -#define CONFIG_FPU_GRFPU_MUL 1 -#elif defined CONFIG_FPU_GRFPU_MODGEN -#define CONFIG_FPU_GRFPU_MUL 2 -#elif defined CONFIG_FPU_GRFPU_TECHSPEC -#define CONFIG_FPU_GRFPU_MUL 3 -#else -#define CONFIG_FPU_GRFPU_MUL 0 -#endif - -#if defined CONFIG_FPU_GRFPU_SH -#define CONFIG_FPU_GRFPU_SHARED 1 -#else -#define CONFIG_FPU_GRFPU_SHARED 0 -#endif - -#if defined CONFIG_FPU_GRFPU -#define CONFIG_FPU (1+CONFIG_FPU_GRFPU_MUL) -#elif defined CONFIG_FPU_MEIKO -#define CONFIG_FPU 15 -#elif defined CONFIG_FPU_GRFPULITE -#define CONFIG_FPU (8+CONFIG_FPU_GRFPC) -#else -#define CONFIG_FPU 0 -#endif - -#ifndef CONFIG_FPU_NETLIST -#define CONFIG_FPU_NETLIST 0 -#endif - -#ifndef CONFIG_ICACHE_ENABLE -#define CONFIG_ICACHE_ENABLE 0 -#endif - -#if defined CONFIG_ICACHE_ASSO1 -#define CFG_IU_ISETS 1 -#elif defined CONFIG_ICACHE_ASSO2 -#define CFG_IU_ISETS 2 -#elif defined CONFIG_ICACHE_ASSO3 -#define CFG_IU_ISETS 3 -#elif defined CONFIG_ICACHE_ASSO4 -#define CFG_IU_ISETS 4 -#else -#define CFG_IU_ISETS 1 -#endif - -#if defined CONFIG_ICACHE_SZ1 -#define CFG_ICACHE_SZ 1 -#elif defined CONFIG_ICACHE_SZ2 -#define CFG_ICACHE_SZ 2 -#elif defined CONFIG_ICACHE_SZ4 -#define CFG_ICACHE_SZ 4 -#elif defined CONFIG_ICACHE_SZ8 -#define CFG_ICACHE_SZ 8 -#elif defined CONFIG_ICACHE_SZ16 -#define CFG_ICACHE_SZ 16 -#elif defined CONFIG_ICACHE_SZ32 -#define CFG_ICACHE_SZ 32 -#elif defined CONFIG_ICACHE_SZ64 -#define CFG_ICACHE_SZ 64 -#elif defined CONFIG_ICACHE_SZ128 -#define CFG_ICACHE_SZ 128 -#elif defined CONFIG_ICACHE_SZ256 -#define CFG_ICACHE_SZ 256 -#else -#define CFG_ICACHE_SZ 1 -#endif - -#ifdef CONFIG_ICACHE_LZ16 -#define CFG_ILINE_SZ 4 -#else -#define CFG_ILINE_SZ 8 -#endif - -#if defined CONFIG_ICACHE_ALGODIR -#define CFG_ICACHE_ALGORND 3 -#elif defined CONFIG_ICACHE_ALGORND -#define CFG_ICACHE_ALGORND 2 -#elif defined CONFIG_ICACHE_ALGOLRR -#define CFG_ICACHE_ALGORND 1 -#else -#define CFG_ICACHE_ALGORND 0 -#endif - -#ifndef CONFIG_ICACHE_LOCK -#define CONFIG_ICACHE_LOCK 0 -#endif - -#ifndef CONFIG_ICACHE_LRAM -#define CONFIG_ICACHE_LRAM 0 -#endif - -#ifndef CONFIG_ICACHE_LRSTART -#define CONFIG_ICACHE_LRSTART 8E -#endif - -#if defined CONFIG_ICACHE_LRAM_SZ2 -#define CFG_ILRAM_SIZE 2 -#elif defined CONFIG_ICACHE_LRAM_SZ4 -#define CFG_ILRAM_SIZE 4 -#elif defined CONFIG_ICACHE_LRAM_SZ8 -#define CFG_ILRAM_SIZE 8 -#elif defined CONFIG_ICACHE_LRAM_SZ16 -#define CFG_ILRAM_SIZE 16 -#elif defined CONFIG_ICACHE_LRAM_SZ32 -#define CFG_ILRAM_SIZE 32 -#elif defined CONFIG_ICACHE_LRAM_SZ64 -#define CFG_ILRAM_SIZE 64 -#elif defined CONFIG_ICACHE_LRAM_SZ128 -#define CFG_ILRAM_SIZE 128 -#elif defined CONFIG_ICACHE_LRAM_SZ256 -#define CFG_ILRAM_SIZE 256 -#else -#define CFG_ILRAM_SIZE 1 -#endif - - -#ifndef CONFIG_DCACHE_ENABLE -#define CONFIG_DCACHE_ENABLE 0 -#endif - -#if defined CONFIG_DCACHE_ASSO1 -#define CFG_IU_DSETS 1 -#elif defined CONFIG_DCACHE_ASSO2 -#define CFG_IU_DSETS 2 -#elif defined CONFIG_DCACHE_ASSO3 -#define CFG_IU_DSETS 3 -#elif defined CONFIG_DCACHE_ASSO4 -#define CFG_IU_DSETS 4 -#else -#define CFG_IU_DSETS 1 -#endif - -#if defined CONFIG_DCACHE_SZ1 -#define CFG_DCACHE_SZ 1 -#elif defined CONFIG_DCACHE_SZ2 -#define CFG_DCACHE_SZ 2 -#elif defined CONFIG_DCACHE_SZ4 -#define CFG_DCACHE_SZ 4 -#elif defined CONFIG_DCACHE_SZ8 -#define CFG_DCACHE_SZ 8 -#elif defined CONFIG_DCACHE_SZ16 -#define CFG_DCACHE_SZ 16 -#elif defined CONFIG_DCACHE_SZ32 -#define CFG_DCACHE_SZ 32 -#elif defined CONFIG_DCACHE_SZ64 -#define CFG_DCACHE_SZ 64 -#elif defined CONFIG_DCACHE_SZ128 -#define CFG_DCACHE_SZ 128 -#elif defined CONFIG_DCACHE_SZ256 -#define CFG_DCACHE_SZ 256 -#else -#define CFG_DCACHE_SZ 1 -#endif - -#ifdef CONFIG_DCACHE_LZ16 -#define CFG_DLINE_SZ 4 -#else -#define CFG_DLINE_SZ 8 -#endif - -#if defined CONFIG_DCACHE_ALGODIR -#define CFG_DCACHE_ALGORND 3 -#elif defined CONFIG_DCACHE_ALGORND -#define CFG_DCACHE_ALGORND 2 -#elif defined CONFIG_DCACHE_ALGOLRR -#define CFG_DCACHE_ALGORND 1 -#else -#define CFG_DCACHE_ALGORND 0 -#endif - -#ifndef CONFIG_DCACHE_LOCK -#define CONFIG_DCACHE_LOCK 0 -#endif - -#ifndef CONFIG_DCACHE_SNOOP -#define CONFIG_DCACHE_SNOOP 0 -#endif - -#ifndef CONFIG_DCACHE_SNOOP_FAST -#define CONFIG_DCACHE_SNOOP_FAST 0 -#endif - -#ifndef CONFIG_DCACHE_SNOOP_SEPTAG -#define CONFIG_DCACHE_SNOOP_SEPTAG 0 -#endif - -#ifndef CONFIG_CACHE_FIXED -#define CONFIG_CACHE_FIXED 0 -#endif - -#ifndef CONFIG_DCACHE_LRAM -#define CONFIG_DCACHE_LRAM 0 -#endif - -#ifndef CONFIG_DCACHE_LRSTART -#define CONFIG_DCACHE_LRSTART 8F -#endif - -#if defined CONFIG_DCACHE_LRAM_SZ2 -#define CFG_DLRAM_SIZE 2 -#elif defined CONFIG_DCACHE_LRAM_SZ4 -#define CFG_DLRAM_SIZE 4 -#elif defined CONFIG_DCACHE_LRAM_SZ8 -#define CFG_DLRAM_SIZE 8 -#elif defined CONFIG_DCACHE_LRAM_SZ16 -#define CFG_DLRAM_SIZE 16 -#elif defined CONFIG_DCACHE_LRAM_SZ32 -#define CFG_DLRAM_SIZE 32 -#elif defined CONFIG_DCACHE_LRAM_SZ64 -#define CFG_DLRAM_SIZE 64 -#elif defined CONFIG_DCACHE_LRAM_SZ128 -#define CFG_DLRAM_SIZE 128 -#elif defined CONFIG_DCACHE_LRAM_SZ256 -#define CFG_DLRAM_SIZE 256 -#else -#define CFG_DLRAM_SIZE 1 -#endif - -#if defined CONFIG_MMU_PAGE_4K -#define CONFIG_MMU_PAGE 0 -#elif defined CONFIG_MMU_PAGE_8K -#define CONFIG_MMU_PAGE 1 -#elif defined CONFIG_MMU_PAGE_16K -#define CONFIG_MMU_PAGE 2 -#elif defined CONFIG_MMU_PAGE_32K -#define CONFIG_MMU_PAGE 3 -#elif defined CONFIG_MMU_PAGE_PROG -#define CONFIG_MMU_PAGE 4 -#else -#define CONFIG_MMU_PAGE 0 -#endif - -#ifdef CONFIG_MMU_ENABLE -#define CONFIG_MMUEN 1 - -#ifdef CONFIG_MMU_SPLIT -#define CONFIG_TLB_TYPE 0 -#endif -#ifdef CONFIG_MMU_COMBINED -#define CONFIG_TLB_TYPE 1 -#endif - -#ifdef CONFIG_MMU_REPARRAY -#define CONFIG_TLB_REP 0 -#endif -#ifdef CONFIG_MMU_REPINCREMENT -#define CONFIG_TLB_REP 1 -#endif - -#ifdef CONFIG_MMU_I2 -#define CONFIG_ITLBNUM 2 -#endif -#ifdef CONFIG_MMU_I4 -#define CONFIG_ITLBNUM 4 -#endif -#ifdef CONFIG_MMU_I8 -#define CONFIG_ITLBNUM 8 -#endif -#ifdef CONFIG_MMU_I16 -#define CONFIG_ITLBNUM 16 -#endif -#ifdef CONFIG_MMU_I32 -#define CONFIG_ITLBNUM 32 -#endif - -#define CONFIG_DTLBNUM 2 -#ifdef CONFIG_MMU_D2 -#undef CONFIG_DTLBNUM -#define CONFIG_DTLBNUM 2 -#endif -#ifdef CONFIG_MMU_D4 -#undef CONFIG_DTLBNUM -#define CONFIG_DTLBNUM 4 -#endif -#ifdef CONFIG_MMU_D8 -#undef CONFIG_DTLBNUM -#define CONFIG_DTLBNUM 8 -#endif -#ifdef CONFIG_MMU_D16 -#undef CONFIG_DTLBNUM -#define CONFIG_DTLBNUM 16 -#endif -#ifdef CONFIG_MMU_D32 -#undef CONFIG_DTLBNUM -#define CONFIG_DTLBNUM 32 -#endif -#ifdef CONFIG_MMU_FASTWB -#define CFG_MMU_FASTWB 1 -#else -#define CFG_MMU_FASTWB 0 -#endif - -#else -#define CONFIG_MMUEN 0 -#define CONFIG_ITLBNUM 2 -#define CONFIG_DTLBNUM 2 -#define CONFIG_TLB_TYPE 1 -#define CONFIG_TLB_REP 1 -#define CFG_MMU_FASTWB 0 -#endif - -#ifndef CONFIG_DSU_ENABLE -#define CONFIG_DSU_ENABLE 0 -#endif - -#if defined CONFIG_DSU_ITRACESZ1 -#define CFG_DSU_ITB 1 -#elif CONFIG_DSU_ITRACESZ2 -#define CFG_DSU_ITB 2 -#elif CONFIG_DSU_ITRACESZ4 -#define CFG_DSU_ITB 4 -#elif CONFIG_DSU_ITRACESZ8 -#define CFG_DSU_ITB 8 -#elif CONFIG_DSU_ITRACESZ16 -#define CFG_DSU_ITB 16 -#else -#define CFG_DSU_ITB 0 -#endif - -#if defined CONFIG_DSU_ATRACESZ1 -#define CFG_DSU_ATB 1 -#elif CONFIG_DSU_ATRACESZ2 -#define CFG_DSU_ATB 2 -#elif CONFIG_DSU_ATRACESZ4 -#define CFG_DSU_ATB 4 -#elif CONFIG_DSU_ATRACESZ8 -#define CFG_DSU_ATB 8 -#elif CONFIG_DSU_ATRACESZ16 -#define CFG_DSU_ATB 16 -#else -#define CFG_DSU_ATB 0 -#endif - -#ifndef CONFIG_LEON3FT_EN -#define CONFIG_LEON3FT_EN 0 -#endif - -#if defined CONFIG_IUFT_PAR -#define CONFIG_IUFT_EN 1 -#elif defined CONFIG_IUFT_DMR -#define CONFIG_IUFT_EN 2 -#elif defined CONFIG_IUFT_BCH -#define CONFIG_IUFT_EN 3 -#elif defined CONFIG_IUFT_TMR -#define CONFIG_IUFT_EN 4 -#else -#define CONFIG_IUFT_EN 0 -#endif -#ifndef CONFIG_RF_ERRINJ -#define CONFIG_RF_ERRINJ 0 -#endif - -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU -#define CONFIG_FPUFT 2 -#else -#define CONFIG_FPUFT 1 -#endif -#endif - -#ifndef CONFIG_CACHE_FT_EN -#define CONFIG_CACHE_FT_EN 0 -#endif -#ifndef CONFIG_CACHE_ERRINJ -#define CONFIG_CACHE_ERRINJ 0 -#endif - -#ifndef CONFIG_LEON3_NETLIST -#define CONFIG_LEON3_NETLIST 0 -#endif - -#ifdef CONFIG_DEBUG_PC32 -#define CFG_DEBUG_PC32 0 -#else -#define CFG_DEBUG_PC32 2 -#endif -#ifndef CONFIG_IU_DISAS -#define CONFIG_IU_DISAS 0 -#endif -#ifndef CONFIG_IU_DISAS_NET -#define CONFIG_IU_DISAS_NET 0 -#endif - - -#ifndef CONFIG_AHB_SPLIT -#define CONFIG_AHB_SPLIT 0 -#endif - -#ifndef CONFIG_AHB_RROBIN -#define CONFIG_AHB_RROBIN 0 -#endif - -#ifndef CONFIG_AHB_FPNPEN -#define CONFIG_AHB_FPNPEN 0 -#endif - -#ifndef CONFIG_AHB_IOADDR -#define CONFIG_AHB_IOADDR FFF -#endif - -#ifndef CONFIG_APB_HADDR -#define CONFIG_APB_HADDR 800 -#endif - -#ifndef CONFIG_AHB_MON -#define CONFIG_AHB_MON 0 -#endif - -#ifndef CONFIG_AHB_MONERR -#define CONFIG_AHB_MONERR 0 -#endif - -#ifndef CONFIG_AHB_MONWAR -#define CONFIG_AHB_MONWAR 0 -#endif - -#ifndef CONFIG_AHB_DTRACE -#define CONFIG_AHB_DTRACE 0 -#endif - -#ifndef CONFIG_DSU_UART -#define CONFIG_DSU_UART 0 -#endif - - -#ifndef CONFIG_DSU_ETH -#define CONFIG_DSU_ETH 0 -#endif - -#ifndef CONFIG_DSU_IPMSB -#define CONFIG_DSU_IPMSB C0A8 -#endif - -#ifndef CONFIG_DSU_IPLSB -#define CONFIG_DSU_IPLSB 0033 -#endif - -#ifndef CONFIG_DSU_ETHMSB -#define CONFIG_DSU_ETHMSB 020000 -#endif - -#ifndef CONFIG_DSU_ETHLSB -#define CONFIG_DSU_ETHLSB 000009 -#endif - -#if defined CONFIG_DSU_ETHSZ1 -#define CFG_DSU_ETHB 1 -#elif CONFIG_DSU_ETHSZ2 -#define CFG_DSU_ETHB 2 -#elif CONFIG_DSU_ETHSZ4 -#define CFG_DSU_ETHB 4 -#elif CONFIG_DSU_ETHSZ8 -#define CFG_DSU_ETHB 8 -#elif CONFIG_DSU_ETHSZ16 -#define CFG_DSU_ETHB 16 -#elif CONFIG_DSU_ETHSZ32 -#define CFG_DSU_ETHB 32 -#else -#define CFG_DSU_ETHB 1 -#endif - -#ifndef CONFIG_DSU_ETH_PROG -#define CONFIG_DSU_ETH_PROG 0 -#endif - -#ifndef CONFIG_DSU_ETH_DIS -#define CONFIG_DSU_ETH_DIS 0 -#endif - - -#ifndef CONFIG_SRCTRL -#define CONFIG_SRCTRL 0 -#endif - -#ifndef CONFIG_SRCTRL_PROMWS -#define CONFIG_SRCTRL_PROMWS 0 -#endif - -#ifndef CONFIG_SRCTRL_RAMWS -#define CONFIG_SRCTRL_RAMWS 0 -#endif - -#ifndef CONFIG_SRCTRL_IOWS -#define CONFIG_SRCTRL_IOWS 0 -#endif - -#ifndef CONFIG_SRCTRL_RMW -#define CONFIG_SRCTRL_RMW 0 -#endif - -#ifndef CONFIG_SRCTRL_8BIT -#define CONFIG_SRCTRL_8BIT 0 -#endif - - -#ifndef CONFIG_SRCTRL_ROMASEL -#define CONFIG_SRCTRL_ROMASEL 0 -#endif - -#if defined CONFIG_SRCTRL_SRBANKS1 -#define CFG_SR_CTRL_SRBANKS 1 -#elif defined CONFIG_SRCTRL_SRBANKS2 -#define CFG_SR_CTRL_SRBANKS 2 -#elif defined CONFIG_SRCTRL_SRBANKS3 -#define CFG_SR_CTRL_SRBANKS 3 -#elif defined CONFIG_SRCTRL_SRBANKS4 -#define CFG_SR_CTRL_SRBANKS 4 -#elif defined CONFIG_SRCTRL_SRBANKS5 -#define CFG_SR_CTRL_SRBANKS 5 -#else -#define CFG_SR_CTRL_SRBANKS 1 -#endif - -#if defined CONFIG_SRCTRL_BANKSZ0 -#define CFG_SR_CTRL_BANKSZ 0 -#elif defined CONFIG_SRCTRL_BANKSZ1 -#define CFG_SR_CTRL_BANKSZ 1 -#elif defined CONFIG_SRCTRL_BANKSZ2 -#define CFG_SR_CTRL_BANKSZ 2 -#elif defined CONFIG_SRCTRL_BANKSZ3 -#define CFG_SR_CTRL_BANKSZ 3 -#elif defined CONFIG_SRCTRL_BANKSZ4 -#define CFG_SR_CTRL_BANKSZ 4 -#elif defined CONFIG_SRCTRL_BANKSZ5 -#define CFG_SR_CTRL_BANKSZ 5 -#elif defined CONFIG_SRCTRL_BANKSZ6 -#define CFG_SR_CTRL_BANKSZ 6 -#elif defined CONFIG_SRCTRL_BANKSZ7 -#define CFG_SR_CTRL_BANKSZ 7 -#elif defined CONFIG_SRCTRL_BANKSZ8 -#define CFG_SR_CTRL_BANKSZ 8 -#elif defined CONFIG_SRCTRL_BANKSZ9 -#define CFG_SR_CTRL_BANKSZ 9 -#elif defined CONFIG_SRCTRL_BANKSZ10 -#define CFG_SR_CTRL_BANKSZ 10 -#elif defined CONFIG_SRCTRL_BANKSZ11 -#define CFG_SR_CTRL_BANKSZ 11 -#elif defined CONFIG_SRCTRL_BANKSZ12 -#define CFG_SR_CTRL_BANKSZ 12 -#elif defined CONFIG_SRCTRL_BANKSZ13 -#define CFG_SR_CTRL_BANKSZ 13 -#else -#define CFG_SR_CTRL_BANKSZ 0 -#endif -#ifndef CONFIG_MCTRL_LEON2 -#define CONFIG_MCTRL_LEON2 0 -#endif - -#ifndef CONFIG_MCTRL_SDRAM -#define CONFIG_MCTRL_SDRAM 0 -#endif - -#ifndef CONFIG_MCTRL_SDRAM_SEPBUS -#define CONFIG_MCTRL_SDRAM_SEPBUS 0 -#endif - -#ifndef CONFIG_MCTRL_SDRAM_INVCLK -#define CONFIG_MCTRL_SDRAM_INVCLK 0 -#endif - -#ifndef CONFIG_MCTRL_SDRAM_BUS64 -#define CONFIG_MCTRL_SDRAM_BUS64 0 -#endif - -#ifndef CONFIG_MCTRL_8BIT -#define CONFIG_MCTRL_8BIT 0 -#endif - -#ifndef CONFIG_MCTRL_16BIT -#define CONFIG_MCTRL_16BIT 0 -#endif - -#ifndef CONFIG_MCTRL_5CS -#define CONFIG_MCTRL_5CS 0 -#endif - -#ifndef CONFIG_MCTRL_EDAC -#define CONFIG_MCTRL_EDAC 0 -#endif - -#ifndef CONFIG_MCTRL_PAGE -#define CONFIG_MCTRL_PAGE 0 -#endif - -#ifndef CONFIG_MCTRL_PROGPAGE -#define CONFIG_MCTRL_PROGPAGE 0 -#endif - -#ifndef CONFIG_DDRMP -#define CONFIG_DDRMP 0 -#endif - -#ifndef CONFIG_DDRMP_NCS -#define CONFIG_DDRMP_NCS 1 -#endif - -#ifndef CONFIG_DDRMP_NDEV -#define CONFIG_DDRMP_NDEV 2 -#endif - -#ifndef CONFIG_DDRMP_NBITS -#define CONFIG_DDRMP_NBITS 16 -#endif - -#ifndef CONFIG_DDRMP_MBITS -#define CONFIG_DDRMP_MBITS 64 -#endif - -#ifndef CONFIG_DDRMP_FREQ -#define CONFIG_DDRMP_FREQ 100 -#endif - -#ifndef CONFIG_DDRMP_EN2P -#define CONFIG_DDRMP_EN2P 0 -#endif -#ifndef CONFIG_AHBROM_ENABLE -#define CONFIG_AHBROM_ENABLE 0 -#endif - -#ifndef CONFIG_AHBROM_START -#define CONFIG_AHBROM_START 000 -#endif - -#ifndef CONFIG_AHBROM_PIPE -#define CONFIG_AHBROM_PIPE 0 -#endif - -#if (CONFIG_AHBROM_START == 0) && (CONFIG_AHBROM_ENABLE == 1) -#define CONFIG_ROM_START 100 -#else -#define CONFIG_ROM_START 000 -#endif - - -#ifndef CONFIG_AHBRAM_ENABLE -#define CONFIG_AHBRAM_ENABLE 0 -#endif - -#ifndef CONFIG_AHBRAM_START -#define CONFIG_AHBRAM_START A00 -#endif - -#if defined CONFIG_AHBRAM_SZ1 -#define CFG_AHBRAMSZ 1 -#elif CONFIG_AHBRAM_SZ2 -#define CFG_AHBRAMSZ 2 -#elif CONFIG_AHBRAM_SZ4 -#define CFG_AHBRAMSZ 4 -#elif CONFIG_AHBRAM_SZ8 -#define CFG_AHBRAMSZ 8 -#elif CONFIG_AHBRAM_SZ16 -#define CFG_AHBRAMSZ 16 -#elif CONFIG_AHBRAM_SZ32 -#define CFG_AHBRAMSZ 32 -#elif CONFIG_AHBRAM_SZ64 -#define CFG_AHBRAMSZ 64 -#else -#define CFG_AHBRAMSZ 1 -#endif - -#ifndef CONFIG_GRETH_ENABLE -#define CONFIG_GRETH_ENABLE 0 -#endif - -#ifndef CONFIG_GRETH_GIGA -#define CONFIG_GRETH_GIGA 0 -#endif - -#if defined CONFIG_GRETH_FIFO4 -#define CFG_GRETH_FIFO 4 -#elif defined CONFIG_GRETH_FIFO8 -#define CFG_GRETH_FIFO 8 -#elif defined CONFIG_GRETH_FIFO16 -#define CFG_GRETH_FIFO 16 -#elif defined CONFIG_GRETH_FIFO32 -#define CFG_GRETH_FIFO 32 -#elif defined CONFIG_GRETH_FIFO64 -#define CFG_GRETH_FIFO 64 -#else -#define CFG_GRETH_FIFO 8 -#endif - -#ifndef CONFIG_ATA_ENABLE -#define CONFIG_ATA_ENABLE 0 -#endif - -#ifndef CONFIG_ATAIO -#define CONFIG_ATAIO 0 -#endif - -#ifndef CONFIG_ATAIRQ -#define CONFIG_ATAIRQ 0 -#endif - -#ifndef CONFIG_ATA_MWDMA -#define CONFIG_ATA_MWDMA 0 -#endif - -#ifndef CONFIG_ATA_FIFO -#define CONFIG_ATA_FIFO 8 -#endif -#ifndef CONFIG_UART1_ENABLE -#define CONFIG_UART1_ENABLE 0 -#endif - -#if defined CONFIG_UA1_FIFO1 -#define CFG_UA1_FIFO 1 -#elif defined CONFIG_UA1_FIFO2 -#define CFG_UA1_FIFO 2 -#elif defined CONFIG_UA1_FIFO4 -#define CFG_UA1_FIFO 4 -#elif defined CONFIG_UA1_FIFO8 -#define CFG_UA1_FIFO 8 -#elif defined CONFIG_UA1_FIFO16 -#define CFG_UA1_FIFO 16 -#elif defined CONFIG_UA1_FIFO32 -#define CFG_UA1_FIFO 32 -#else -#define CFG_UA1_FIFO 1 -#endif - -#ifndef CONFIG_IRQ3_ENABLE -#define CONFIG_IRQ3_ENABLE 0 -#endif -#ifndef CONFIG_IRQ3_NSEC -#define CONFIG_IRQ3_NSEC 0 -#endif -#ifndef CONFIG_GPT_ENABLE -#define CONFIG_GPT_ENABLE 0 -#endif - -#ifndef CONFIG_GPT_NTIM -#define CONFIG_GPT_NTIM 1 -#endif - -#ifndef CONFIG_GPT_SW -#define CONFIG_GPT_SW 8 -#endif - -#ifndef CONFIG_GPT_TW -#define CONFIG_GPT_TW 8 -#endif - -#ifndef CONFIG_GPT_IRQ -#define CONFIG_GPT_IRQ 8 -#endif - -#ifndef CONFIG_GPT_SEPIRQ -#define CONFIG_GPT_SEPIRQ 0 -#endif -#ifndef CONFIG_GPT_ENABLE -#define CONFIG_GPT_ENABLE 0 -#endif - -#ifndef CONFIG_GPT_NTIM -#define CONFIG_GPT_NTIM 1 -#endif - -#ifndef CONFIG_GPT_SW -#define CONFIG_GPT_SW 8 -#endif - -#ifndef CONFIG_GPT_TW -#define CONFIG_GPT_TW 8 -#endif - -#ifndef CONFIG_GPT_IRQ -#define CONFIG_GPT_IRQ 8 -#endif - -#ifndef CONFIG_GPT_SEPIRQ -#define CONFIG_GPT_SEPIRQ 0 -#endif - -#ifndef CONFIG_GPT_WDOGEN -#define CONFIG_GPT_WDOGEN 0 -#endif - -#ifndef CONFIG_GPT_WDOG -#define CONFIG_GPT_WDOG 0 -#endif - -#ifndef CONFIG_VGA_ENABLE -#define CONFIG_VGA_ENABLE 0 -#endif -#ifndef CONFIG_SVGA_ENABLE -#define CONFIG_SVGA_ENABLE 0 -#endif -#ifndef CONFIG_KBD_ENABLE -#define CONFIG_KBD_ENABLE 0 -#endif - - -#ifndef CONFIG_DEBUG_UART -#define CONFIG_DEBUG_UART 0 -#endif diff --git a/designs/leon3-ge-hpe-mini-lattice/wave.do b/designs/leon3-ge-hpe-mini-lattice/wave.do deleted file mode 100644 index 64a6b791..00000000 --- a/designs/leon3-ge-hpe-mini-lattice/wave.do +++ /dev/null @@ -1,186 +0,0 @@ -onerror {resume} -quietly WaveActivateNextPane {} 0 -add wave -noupdate -divider DAC_AHB -add wave -noupdate -format Logic -radix hexadecimal /testbench/d3/dac_ahb_1/rst -add wave -noupdate -format Logic -radix hexadecimal /testbench/d3/dac_ahb_1/clk -add wave -noupdate -format Literal -radix hexadecimal -expand /testbench/d3/dac_ahb_1/ahbsi -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/dac_ahb_1/ahbso -add wave -noupdate -format Logic -radix hexadecimal /testbench/d3/dac_ahb_1/dac_out -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/dac_ahb_1/r -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/dac_ahb_1/c -add wave -noupdate -format Logic -radix hexadecimal /testbench/d3/dac_ahb_1/ramsel -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/dac_ahb_1/write -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/dac_ahb_1/ramaddr -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/dac_ahb_1/ramdata -add wave -noupdate -format Literal -radix hexadecimal -expand /testbench/d3/dac_ahb_1/memarr -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/dac_ahb_1/ra -add wave -noupdate -format Logic -radix hexadecimal /testbench/d3/dac_ahb_1/rstp -add wave -noupdate -divider {DAC SigDelt} -add wave -noupdate -format Logic /testbench/d3/dac_ahb_1/sigdelt_1/reset -add wave -noupdate -format Logic /testbench/d3/dac_ahb_1/sigdelt_1/clock -add wave -noupdate -format Literal /testbench/d3/dac_ahb_1/sigdelt_1/dac_in -add wave -noupdate -format Logic /testbench/d3/dac_ahb_1/sigdelt_1/dac_out -add wave -noupdate -format Literal /testbench/d3/dac_ahb_1/sigdelt_1/delta -add wave -noupdate -format Literal /testbench/d3/dac_ahb_1/sigdelt_1/state -add wave -noupdate -divider {Clock Generator} -add wave -noupdate -format Logic /testbench/d3/clkgen0/str/v/clkin -add wave -noupdate -format Logic /testbench/d3/clkgen0/str/v/pciclkin -add wave -noupdate -format Logic /testbench/d3/clkgen0/str/v/clk -add wave -noupdate -format Logic /testbench/d3/clkgen0/str/v/clkn -add wave -noupdate -format Logic /testbench/d3/clkgen0/str/v/sdclk -add wave -noupdate -format Logic /testbench/d3/clkgen0/str/v/pciclk -add wave -noupdate -format Literal /testbench/d3/clkgen0/str/v/cgi -add wave -noupdate -format Literal /testbench/d3/clkgen0/str/v/cgo -add wave -noupdate -format Logic /testbench/d3/clkgen0/str/v/clk_i -add wave -noupdate -format Logic /testbench/d3/clkgen0/str/v/clkint -add wave -noupdate -format Logic /testbench/d3/clkgen0/str/v/pciclkint -add wave -noupdate -format Logic /testbench/d3/clkgen0/str/v/pllclk -add wave -noupdate -format Logic /testbench/d3/clkgen0/str/v/pllclkn -add wave -noupdate -format Logic /testbench/d3/clkgen0/str/v/s_clk -add wave -noupdate -divider LEON3S -add wave -noupdate -format Literal -radix hexadecimal -expand /testbench/d3/cpu__0/u0/ahbi -add wave -noupdate -format Literal -radix hexadecimal -expand /testbench/d3/cpu__0/u0/ahbo -add wave -noupdate -divider {Memory Controller} -add wave -noupdate -format Literal -radix hexadecimal -expand /testbench/d3/mg2/sr1/ahbsi -add wave -noupdate -format Literal -radix hexadecimal -expand /testbench/d3/mg2/sr1/ahbso -add wave -noupdate -divider {Internal Boot Prom} -add wave -noupdate -format Logic -radix hexadecimal /testbench/d3/mg2/sr1/promgen/bprom0/clk -add wave -noupdate -format Logic -radix hexadecimal /testbench/d3/mg2/sr1/promgen/bprom0/csn -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/mg2/sr1/promgen/bprom0/addr -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/mg2/sr1/promgen/bprom0/data -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/mg2/sr1/promgen/bprom0/raddr -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/mg2/sr1/promgen/bprom0/d -add wave -noupdate -divider {selected signals} -add wave -noupdate -format Logic /testbench/clk -add wave -noupdate -format Logic /testbench/rst -add wave -noupdate -format Literal -radix hexadecimal /testbench/address -add wave -noupdate -format Literal -radix hexadecimal /testbench/data -add wave -noupdate -format Literal /testbench/ramsn -add wave -noupdate -format Literal /testbench/ramoen -add wave -noupdate -format Literal /testbench/rben -add wave -noupdate -format Literal /testbench/rwen -add wave -noupdate -format Literal /testbench/rwenx -add wave -noupdate -format Literal /testbench/romsn -add wave -noupdate -format Logic /testbench/iosn -add wave -noupdate -format Logic /testbench/oen -add wave -noupdate -format Logic /testbench/read -add wave -noupdate -format Logic /testbench/writen -add wave -noupdate -format Literal -radix hexadecimal /testbench/sa -add wave -noupdate -format Literal -radix hexadecimal /testbench/sd -add wave -noupdate -format Literal /testbench/sdcke -add wave -noupdate -format Literal /testbench/sdcsn -add wave -noupdate -format Logic /testbench/sdwen -add wave -noupdate -format Logic /testbench/sdrasn -add wave -noupdate -format Logic /testbench/sdcasn -add wave -noupdate -format Literal /testbench/sddqm -add wave -noupdate -format Logic /testbench/sd_clk(0) -add wave -noupdate -divider LEON3MINI -add wave -noupdate -format Logic /testbench/d3/resetn -add wave -noupdate -format Logic /testbench/d3/resoutn -add wave -noupdate -format Logic /testbench/d3/clk -add wave -noupdate -format Logic /testbench/d3/errorn -add wave -noupdate -format Literal /testbench/d3/address -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/data -add wave -noupdate -format Literal /testbench/d3/ramsn -add wave -noupdate -format Literal /testbench/d3/ramoen -add wave -noupdate -format Literal /testbench/d3/rwen -add wave -noupdate -format Literal /testbench/d3/rben -add wave -noupdate -format Literal /testbench/d3/romsn -add wave -noupdate -format Logic /testbench/d3/iosn -add wave -noupdate -format Logic /testbench/d3/oen -add wave -noupdate -format Logic /testbench/d3/read -add wave -noupdate -format Logic /testbench/d3/writen -add wave -noupdate -format Literal /testbench/d3/sdcke -add wave -noupdate -format Literal /testbench/d3/sdcsn -add wave -noupdate -format Logic /testbench/d3/sdwen -add wave -noupdate -format Logic /testbench/d3/sdrasn -add wave -noupdate -format Logic /testbench/d3/sdcasn -add wave -noupdate -format Literal /testbench/d3/sddqm -add wave -noupdate -format Literal /testbench/d3/sdclk -add wave -noupdate -format Literal /testbench/d3/sdba -add wave -noupdate -format Logic /testbench/d3/dsuen -add wave -noupdate -format Logic /testbench/d3/dsutx -add wave -noupdate -format Logic /testbench/d3/dsurx -add wave -noupdate -format Logic /testbench/d3/dsubren -add wave -noupdate -format Logic /testbench/d3/dsuactn -add wave -noupdate -format Logic /testbench/d3/rxd1 -add wave -noupdate -format Logic /testbench/d3/txd1 -add wave -noupdate -format Logic /testbench/d3/emdio -add wave -noupdate -format Logic /testbench/d3/etx_clk -add wave -noupdate -format Logic /testbench/d3/erx_clk -add wave -noupdate -format Literal /testbench/d3/erxd -add wave -noupdate -format Logic /testbench/d3/erx_dv -add wave -noupdate -format Logic /testbench/d3/erx_er -add wave -noupdate -format Logic /testbench/d3/erx_col -add wave -noupdate -format Logic /testbench/d3/erx_crs -add wave -noupdate -format Literal /testbench/d3/etxd -add wave -noupdate -format Logic /testbench/d3/etx_en -add wave -noupdate -format Logic /testbench/d3/etx_er -add wave -noupdate -format Logic /testbench/d3/emdc -add wave -noupdate -format Logic /testbench/d3/emddis -add wave -noupdate -format Logic /testbench/d3/epwrdwn -add wave -noupdate -format Logic /testbench/d3/ereset -add wave -noupdate -format Logic /testbench/d3/esleep -add wave -noupdate -format Logic /testbench/d3/epause -add wave -noupdate -format Literal /testbench/d3/vcc -add wave -noupdate -format Literal /testbench/d3/gnd -add wave -noupdate -format Literal /testbench/d3/memi -add wave -noupdate -format Literal /testbench/d3/memo -add wave -noupdate -format Literal /testbench/d3/wpo -add wave -noupdate -format Literal /testbench/d3/sdi -add wave -noupdate -format Literal /testbench/d3/sdo -add wave -noupdate -format Literal /testbench/d3/sdo2 -add wave -noupdate -format Literal /testbench/d3/sdo3 -add wave -noupdate -format Literal /testbench/d3/apbi -add wave -noupdate -format Literal /testbench/d3/apbo -add wave -noupdate -format Literal /testbench/d3/ahbsi -add wave -noupdate -format Literal /testbench/d3/ahbso -add wave -noupdate -format Literal /testbench/d3/ahbmi -add wave -noupdate -format Literal /testbench/d3/ahbmo -add wave -noupdate -format Logic /testbench/d3/clkm -add wave -noupdate -format Logic /testbench/d3/rstn -add wave -noupdate -format Logic /testbench/d3/sdclkl -add wave -noupdate -format Literal /testbench/d3/cgi -add wave -noupdate -format Literal /testbench/d3/cgo -add wave -noupdate -format Literal /testbench/d3/u1i -add wave -noupdate -format Literal /testbench/d3/dui -add wave -noupdate -format Literal /testbench/d3/u1o -add wave -noupdate -format Literal /testbench/d3/duo -add wave -noupdate -format Literal /testbench/d3/irqi -add wave -noupdate -format Literal /testbench/d3/irqo -add wave -noupdate -format Literal /testbench/d3/dbgi -add wave -noupdate -format Literal /testbench/d3/dbgo -add wave -noupdate -format Literal /testbench/d3/dsui -add wave -noupdate -format Literal /testbench/d3/dsuo -add wave -noupdate -format Literal /testbench/d3/ethi -add wave -noupdate -format Literal /testbench/d3/ethi1 -add wave -noupdate -format Literal /testbench/d3/ethi2 -add wave -noupdate -format Literal /testbench/d3/etho -add wave -noupdate -format Literal /testbench/d3/etho1 -add wave -noupdate -format Literal /testbench/d3/etho2 -add wave -noupdate -format Literal /testbench/d3/gpti -add wave -noupdate -format Literal /testbench/d3/sa -add wave -noupdate -format Literal /testbench/d3/sd -add wave -noupdate -format Literal /testbench/d3/edcli -add wave -noupdate -format Logic /testbench/d3/dsubre -add wave -noupdate -format Logic /testbench/d3/dsuact -add wave -noupdate -format Logic /testbench/d3/oen_ctrl -add wave -noupdate -format Logic /testbench/d3/sdram_selected -add wave -noupdate -format Literal /testbench/d3/s_ramsn -add wave -noupdate -format Literal /testbench/d3/s_sddqm -TreeUpdate [SetDefaultTree] -WaveRestoreCursors {{Cursor 1} {3465000 ps} 0} -configure wave -namecolwidth 150 -configure wave -valuecolwidth 100 -configure wave -justifyvalue left -configure wave -signalnamewidth 1 -configure wave -snapdistance 10 -configure wave -datasetprefix 0 -configure wave -rowmargin 4 -configure wave -childrowmargin 2 -configure wave -gridoffset 0 -configure wave -gridperiod 1 -configure wave -griddelta 40 -configure wave -timeline 0 -update -WaveRestoreZoom {2172976 ps} {4757024 ps} diff --git a/designs/leon3-ge-hpe-mini/Makefile b/designs/leon3-ge-hpe-mini/Makefile deleted file mode 100644 index 2491e382..00000000 --- a/designs/leon3-ge-hpe-mini/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -GRLIB=../.. -TOP=leon3mini -BOARD=ge-hpe-mini -include $(GRLIB)/boards/$(BOARD)/Makefile.inc -DEVICE=$(PART)-$(PACKAGE)$(SPEED) -UCF=$(GRLIB)/boards/$(BOARD)/$(TOP).ucf -QSF=$(GRLIB)/boards/$(BOARD)/$(TOP).qsf -EFFORT=1 -XSTOPT= -VHDLSYNFILES=config.vhd ahbrom.vhd leon3mini.vhd -VHDLSIMFILES=testbench.vhd -SIMTOP=testbench -SDCFILE=$(GRLIB)/boards/$(BOARD)/default.sdc -BITGEN=$(GRLIB)/boards/$(BOARD)/default.ut -CLEAN=soft-clean - -# Select your cable type here. -# Make sure it has been installed via the programmer GUI -# in Quartus. -# -# Examples: -# USB-Blaster -# ByteBlasterMV -CABLE=ByteBlasterMV - -TECHLIBS = altera altera_mf -LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress ihp stratixii usbhc spw -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest ddr \ - grusbhc spacewire leon4 leon4b64 l2cache slink ascs pwm haps coremp7 gr1553b iommu \ - usb - - -INCLUDEFILES=$(VPATH)/hpi_functions.c - -include $(GRLIB)/bin/Makefile -include $(GRLIB)/software/leon3/Makefile - - -################## project specific targets ########################## - -quartus-pgm: - quartus_pgm -c $(CABLE) -m JTAG -o p\;$(TOP).sof - -hpi_new.exe: hpi_new.c - $(XCC) $(CFLAGS) $(INCLUDEFILES) $< -o hpi_new.exe - -hello.exe: hello.c - $(XCC) $(CFLAGS) $< -o hello.exe - diff --git a/designs/leon3-ge-hpe-mini/README.txt b/designs/leon3-ge-hpe-mini/README.txt deleted file mode 100644 index 0f76c451..00000000 --- a/designs/leon3-ge-hpe-mini/README.txt +++ /dev/null @@ -1,57 +0,0 @@ - -This leon3 design is tailored to the HPE_mini board from -Gleichmann Electronics: - -http://www.ger-fae.com/Hpe_mini_ac2.html - -The default configuration (and pre-compiled bit files) contains -a leon3 configuration with SDRAM controller and Ethernet DSU. -The IP address for the ethernet DSU is 192.168.0.68 . The -'info sys' command in grmon returns the following report: - -grlib> inf sys -00.01:003 Gaisler Research LEON3 SPARC V8 Processor (ver 0) - ahb master 0 -01.01:007 Gaisler Research AHB Debug UART (ver 0) - ahb master 1 - apb: 80000700 - 80000800 - baud rate 115200, ahb frequency 25.00 -02.01:01d Gaisler Research GR Ethernet MAC (ver 0) - ahb master 2, irq 12 - apb: 80000f00 - 80001000 - edcl ip 192.168.0.68, buffer 2 kbyte -00.04:00f European Space Agency LEON2 Memory Controller (ver 1) - ahb: 00000000 - 20000000 - ahb: 20000000 - 40000000 - ahb: 40000000 - 80000000 - apb: 80000000 - 80000100 - 32-bit prom @ 0x00000000 - 32-bit sdram: 1 * 128 Mbyte @ 0x40000000, col 10, cas 2, ref 7.7 us -01.01:006 Gaisler Research AHB/APB Bridge (ver 0) - ahb: 80000000 - 80100000 -02.01:004 Gaisler Research LEON3 Debug Support Unit (ver 1) - ahb: 90000000 - a0000000 - AHB trace 64 lines, stack pointer 0x47fffff0 - CPU#0 win 8, itrace 64, V8 mul/div, srmmu, lddel 1 - icache 1 * 4 kbyte, 32 byte/line - dcache 1 * 4 kbyte, 32 byte/line -04.10:003 Gleichmann Electronics Sigma delta DAC (ver 0) - ahb: fff01000 - fff01100 -07.10:004 Gleichmann Electronics Unknown device (ver 1) - irq 5 - ahb: fff24000 - fff24100 - ahb: fff34000 - fff34100 -01.01:00c Gaisler Research Generic APB UART (ver 1) - irq 2 - apb: 80000100 - 80000200 - baud rate 38400, DSU mode -02.01:00d Gaisler Research Multi-processor Interrupt Ctrl (ver 3) - apb: 80000200 - 80000300 -03.01:011 Gaisler Research Modular Timer Unit (ver 0) - irq 8 - apb: 80000300 - 80000400 - 8-bit scaler, 2 * 32-bit timers, divisor 25 -05.01:061 Gaisler Research Text-based video controller (ver 0) - apb: 80000600 - 80000700 - - diff --git a/designs/leon3-ge-hpe-mini/ahbrom.vhd b/designs/leon3-ge-hpe-mini/ahbrom.vhd deleted file mode 100644 index a61a155a..00000000 --- a/designs/leon3-ge-hpe-mini/ahbrom.vhd +++ /dev/null @@ -1,172 +0,0 @@ - ----------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2004 GAISLER RESEARCH --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- See the file COPYING for the full details of the license. --- ------------------------------------------------------------------------------ --- Entity: ahbrom --- File: ahbrom.vhd --- Author: Jiri Gaisler - Gaisler Research --- Description: AHB rom. 0/1-waitstate read ------------------------------------------------------------------------------- -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; - -entity ahbrom is - generic ( - hindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#fff#; - pipe : integer := 0; - tech : integer := 0; - kbytes : integer := 1); - port ( - rst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type - ); -end; - -architecture rtl of ahbrom is -constant abits : integer := 9; -constant bytes : integer := 288; - -constant hconfig : ahb_config_type := ( - 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_AHBROM, 0, 0, 0), - 4 => ahb_membar(haddr, '1', '1', hmask), others => zero32); - -signal romdata : std_logic_vector(31 downto 0); -signal addr : std_logic_vector(abits-1 downto 2); -signal hsel, hready : std_ulogic; - -begin - - ahbso.hresp <= "00"; - ahbso.hsplit <= (others => '0'); - ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; - ahbso.hconfig <= hconfig; - ahbso.hindex <= hindex; - - reg : process (clk) - begin - if rising_edge(clk) then - addr <= ahbsi.haddr(abits-1 downto 2); - end if; - end process; - - p0 : if pipe = 0 generate - ahbso.hrdata <= ahbdrivedata(romdata); - ahbso.hready <= '1'; - end generate; - - p1 : if pipe = 1 generate - reg2 : process (clk) - begin - if rising_edge(clk) then - hsel <= ahbsi.hsel(hindex) and ahbsi.htrans(1); - hready <= ahbsi.hready; - ahbso.hready <= (not rst) or (hsel and hready) or - (ahbsi.hsel(hindex) and not ahbsi.htrans(1) and ahbsi.hready); - ahbso.hrdata <= ahbdrivedata(romdata); - end if; - end process; - end generate; - - comb : process (addr) - begin - case conv_integer(addr) is - when 16#00000# => romdata <= X"81D82000"; - when 16#00001# => romdata <= X"03000004"; - when 16#00002# => romdata <= X"821060C0"; - when 16#00003# => romdata <= X"81884000"; - when 16#00004# => romdata <= X"81900000"; - when 16#00005# => romdata <= X"81980000"; - when 16#00006# => romdata <= X"81800000"; - when 16#00007# => romdata <= X"01000000"; - when 16#00008# => romdata <= X"03000040"; - when 16#00009# => romdata <= X"8210600F"; - when 16#0000A# => romdata <= X"C2A00040"; - when 16#0000B# => romdata <= X"87444000"; - when 16#0000C# => romdata <= X"8608E01F"; - when 16#0000D# => romdata <= X"88100000"; - when 16#0000E# => romdata <= X"8A100000"; - when 16#0000F# => romdata <= X"8C100000"; - when 16#00010# => romdata <= X"8E100000"; - when 16#00011# => romdata <= X"A0100000"; - when 16#00012# => romdata <= X"A2100000"; - when 16#00013# => romdata <= X"A4100000"; - when 16#00014# => romdata <= X"A6100000"; - when 16#00015# => romdata <= X"A8100000"; - when 16#00016# => romdata <= X"AA100000"; - when 16#00017# => romdata <= X"AC100000"; - when 16#00018# => romdata <= X"AE100000"; - when 16#00019# => romdata <= X"90100000"; - when 16#0001A# => romdata <= X"92100000"; - when 16#0001B# => romdata <= X"94100000"; - when 16#0001C# => romdata <= X"96100000"; - when 16#0001D# => romdata <= X"98100000"; - when 16#0001E# => romdata <= X"9A100000"; - when 16#0001F# => romdata <= X"9C100000"; - when 16#00020# => romdata <= X"9E100000"; - when 16#00021# => romdata <= X"86A0E001"; - when 16#00022# => romdata <= X"16BFFFEF"; - when 16#00023# => romdata <= X"81E00000"; - when 16#00024# => romdata <= X"82102002"; - when 16#00025# => romdata <= X"81904000"; - when 16#00026# => romdata <= X"03000004"; - when 16#00027# => romdata <= X"821060E0"; - when 16#00028# => romdata <= X"81884000"; - when 16#00029# => romdata <= X"01000000"; - when 16#0002A# => romdata <= X"01000000"; - when 16#0002B# => romdata <= X"01000000"; - when 16#0002C# => romdata <= X"03200000"; - when 16#0002D# => romdata <= X"84102233"; - when 16#0002E# => romdata <= X"C4204000"; - when 16#0002F# => romdata <= X"0539AE13"; - when 16#00030# => romdata <= X"8410A260"; - when 16#00031# => romdata <= X"C4206004"; - when 16#00032# => romdata <= X"050003FC"; - when 16#00033# => romdata <= X"C4206008"; - when 16#00034# => romdata <= X"3D1003FF"; - when 16#00035# => romdata <= X"BC17A3E0"; - when 16#00036# => romdata <= X"9C27A060"; - when 16#00037# => romdata <= X"03100000"; - when 16#00038# => romdata <= X"81C04000"; - when 16#00039# => romdata <= X"01000000"; - when 16#0003A# => romdata <= X"01000000"; - when 16#0003B# => romdata <= X"01000000"; - when 16#0003C# => romdata <= X"01000000"; - when 16#0003D# => romdata <= X"01000000"; - when 16#0003E# => romdata <= X"01000000"; - when 16#0003F# => romdata <= X"01000000"; - when 16#00040# => romdata <= X"00000004"; - when 16#00041# => romdata <= X"00000000"; - when 16#00042# => romdata <= X"00000004"; - when 16#00043# => romdata <= X"00000000"; - when 16#00044# => romdata <= X"FFFFFFFC"; - when 16#00045# => romdata <= X"00000000"; - when 16#00046# => romdata <= X"FFFFFFFC"; - when 16#00047# => romdata <= X"00000000"; - when 16#00048# => romdata <= X"00000000"; - when others => romdata <= (others => '-'); - end case; - end process; - -- pragma translate_off - bootmsg : report_version - generic map ("ahbrom" & tost(hindex) & - ": 32-bit AHB ROM Module, " & tost(bytes/4) & " words, " & tost(abits-2) & " address bits" ); - -- pragma translate_on - end; diff --git a/designs/leon3-ge-hpe-mini/config.vhd.in b/designs/leon3-ge-hpe-mini/config.vhd.in deleted file mode 100644 index cc47535a..00000000 --- a/designs/leon3-ge-hpe-mini/config.vhd.in +++ /dev/null @@ -1,57 +0,0 @@ -#include "config.h" -#include "tkconfig.h" -#include "leon3mini.h" - ------------------------------------------------------------------------------ --- LEON3 Demonstration design test bench configuration --- Copyright (C) 2009 Aeroflex Gaisler ------------------------------------------------------------------------------- - - -library techmap; -use techmap.gencomp.all; - -package config is - - ----------------------------------------------------------------------------- - -- GLEICHMANN SPECIFIC OPTIONS - ----------------------------------------------------------------------------- - - -- boot prom source - -- 0: external - -- 1: internal - constant CFG_BOOTOPT : integer := CONFIG_BOOTOPT; - - -- HPE board version - -- 1: version 1 - -- /= 1: version 2 - constant CFG_HPEVER : integer := CONFIG_HPEVER; - - -- provide ahb signals for an external slave - -- slave number can be defined below - -- numbers 8 to 15 can be used safely, numbers below - -- might be used by other LEON cores depending on configuration - constant CFG_EXTAHB : integer := CONFIG_EXTAHB_ENABLE; - --- constant CFG_EXTAHB_ADDR : integer := 16#CONFIG_EXTAHB_BASE#; - - -- interrupt number the external slave is assigned to - -- unused at the moment - constant CFG_EXTAHB_IRQ : integer := CONFIG_EXTAHB_INT; - - -- AHB slave number the external slave is assigned to - constant CFG_EXTAHB_NR : integer := 8; - - -- index number the external slave is assigned to - constant CFG_EXTAHB_ID : integer := 8; - - -- shift sdram address to bits 12+ - constant CFG_SDSHIFT : integer := CONFIG_SDRAM_SHIFT; - - ----------------------------------------------------------------------------- - -- END GLEICHMANN SPECIFIC OPTIONS - ----------------------------------------------------------------------------- - -#include "config.vhd.h" - -end; diff --git a/designs/leon3-ge-hpe-mini/defconfig b/designs/leon3-ge-hpe-mini/defconfig deleted file mode 100755 index 79a59abf..00000000 --- a/designs/leon3-ge-hpe-mini/defconfig +++ /dev/null @@ -1,239 +0,0 @@ -# -# Automatically generated make config: don't edit -# - -# -# Synthesis -# -# CONFIG_SYN_INFERRED is not set -CONFIG_SYN_ALTERA=y -# CONFIG_SYN_AXCEL is not set -# CONFIG_SYN_PROASIC is not set -# CONFIG_SYN_PROASICPLUS is not set -# CONFIG_SYN_PROASIC3 is not set -# CONFIG_SYN_ATC18 is not set -# CONFIG_SYN_IHP25 is not set -# CONFIG_SYN_LATTICE is not set -# CONFIG_SYN_RH_LIB18T is not set -# CONFIG_SYN_RHUMC is not set -# CONFIG_SYN_SPARTAN2 is not set -# CONFIG_SYN_SPARTAN3 is not set -# CONFIG_SYN_VIRTEX is not set -# CONFIG_SYN_VIRTEXE is not set -# CONFIG_SYN_VIRTEX2 is not set -# CONFIG_SYN_VIRTEX4 is not set -# CONFIG_SYN_INFER_RAM is not set -CONFIG_SYN_INFER_PADS=y -# CONFIG_SYN_NO_ASYNC is not set - -# -# Clock generation -# -# CONFIG_CLK_INFERRED is not set -# CONFIG_CLK_HCLKBUF is not set -CONFIG_CLK_ALTDLL=y -# CONFIG_CLK_LATDLL is not set -# CONFIG_CLK_LIB18T is not set -# CONFIG_CLK_CLKDLL is not set -# CONFIG_CLK_DCM is not set -CONFIG_CLK_MUL=2 -CONFIG_CLK_DIV=2 -# CONFIG_PCI_SYSCLK is not set -CONFIG_PROC_NUM=1 - -# -# Processor -# - -# -# Integer unit -# -CONFIG_IU_NWINDOWS=8 -CONFIG_IU_V8MULDIV=y -# CONFIG_IU_MUL_LATENCY_4 is not set -CONFIG_IU_MUL_LATENCY_5=y -# CONFIG_IU_MUL_MAC is not set -# CONFIG_IU_SVT is not set -CONFIG_IU_LDELAY=1 -CONFIG_IU_WATCHPOINTS=0 -# CONFIG_PWD is not set -CONFIG_IU_RSTADDR=00000 - -# -# Floating-point unit -# -# CONFIG_FPU_ENABLE is not set - -# -# Cache system -# -CONFIG_ICACHE_ENABLE=y -CONFIG_ICACHE_ASSO1=y -# CONFIG_ICACHE_ASSO2 is not set -# CONFIG_ICACHE_ASSO3 is not set -# CONFIG_ICACHE_ASSO4 is not set -# CONFIG_ICACHE_SZ1 is not set -# CONFIG_ICACHE_SZ2 is not set -CONFIG_ICACHE_SZ4=y -# CONFIG_ICACHE_SZ8 is not set -# CONFIG_ICACHE_SZ16 is not set -# CONFIG_ICACHE_SZ32 is not set -# CONFIG_ICACHE_SZ64 is not set -# CONFIG_ICACHE_SZ128 is not set -# CONFIG_ICACHE_SZ256 is not set -# CONFIG_ICACHE_LZ16 is not set -CONFIG_ICACHE_LZ32=y -CONFIG_DCACHE_ENABLE=y -CONFIG_DCACHE_ASSO1=y -# CONFIG_DCACHE_ASSO2 is not set -# CONFIG_DCACHE_ASSO3 is not set -# CONFIG_DCACHE_ASSO4 is not set -# CONFIG_DCACHE_SZ1 is not set -# CONFIG_DCACHE_SZ2 is not set -CONFIG_DCACHE_SZ4=y -# CONFIG_DCACHE_SZ8 is not set -# CONFIG_DCACHE_SZ16 is not set -# CONFIG_DCACHE_SZ32 is not set -# CONFIG_DCACHE_SZ64 is not set -# CONFIG_DCACHE_SZ128 is not set -# CONFIG_DCACHE_SZ256 is not set -# CONFIG_DCACHE_LZ16 is not set -CONFIG_DCACHE_LZ32=y -CONFIG_DCACHE_SNOOP=y -# CONFIG_DCACHE_SNOOP_FAST is not set -CONFIG_CACHE_FIXED=0 - -# -# MMU -# -CONFIG_MMU_ENABLE=y -CONFIG_MMU_COMBINED=y -# CONFIG_MMU_SPLIT is not set -# CONFIG_MMU_REPARRAY is not set -CONFIG_MMU_REPINCREMENT=y -# CONFIG_MMU_I2 is not set -# CONFIG_MMU_I4 is not set -CONFIG_MMU_I8=y -# CONFIG_MMU_I16 is not set -# CONFIG_MMU_I32 is not set - -# -# Debug Support Unit -# -CONFIG_DSU_ENABLE=y -CONFIG_DSU_ITRACE=y -CONFIG_DSU_ITRACESZ1=y -# CONFIG_DSU_ITRACESZ2 is not set -# CONFIG_DSU_ITRACESZ4 is not set -# CONFIG_DSU_ITRACESZ8 is not set -# CONFIG_DSU_ITRACESZ16 is not set -CONFIG_DSU_ATRACE=y -CONFIG_DSU_ATRACESZ1=y -# CONFIG_DSU_ATRACESZ2 is not set -# CONFIG_DSU_ATRACESZ4 is not set -# CONFIG_DSU_ATRACESZ8 is not set -# CONFIG_DSU_ATRACESZ16 is not set - -# -# VHDL debug settings -# -# CONFIG_IU_DISAS is not set -# CONFIG_DEBUG_PC32 is not set - -# -# AMBA configuration -# -CONFIG_AHB_DEFMST=0 -CONFIG_AHB_RROBIN=y -# CONFIG_AHB_SPLIT is not set -CONFIG_AHB_IOADDR=FFF -CONFIG_APB_HADDR=800 - -# -# Debug Link -# -CONFIG_DSU_UART=y -CONFIG_DSU_ETH=y -# CONFIG_DSU_ETHSZ1 is not set -CONFIG_DSU_ETHSZ2=y -# CONFIG_DSU_ETHSZ4 is not set -# CONFIG_DSU_ETHSZ8 is not set -# CONFIG_DSU_ETHSZ16 is not set -CONFIG_DSU_IPMSB=C0A8 -CONFIG_DSU_IPLSB=0044 -CONFIG_DSU_ETHMSB=00007A -CONFIG_DSU_ETHLSB=CC0044 - -# -# Peripherals -# - -# -# Memory controllers -# - -# -# 8/32-bit PROM/SRAM controller -# -# CONFIG_SRCTRL is not set - -# -# Leon2 memory controller -# -CONFIG_MCTRL_LEON2=y -# CONFIG_MCTRL_8BIT is not set -# CONFIG_MCTRL_16BIT is not set -# CONFIG_MCTRL_5CS is not set -CONFIG_MCTRL_SDRAM=y -# CONFIG_MCTRL_SDRAM_SEPBUS is not set - -# -# On-chip RAM/ROM -# -# CONFIG_AHBROM_ENABLE is not set -# CONFIG_AHBRAM_ENABLE is not set - -# -# Ethernet -# -CONFIG_GRETH_ENABLE=y -# CONFIG_GRETH_FIFO4 is not set -# CONFIG_GRETH_FIFO8 is not set -# CONFIG_GRETH_FIFO16 is not set -# CONFIG_GRETH_FIFO32 is not set -CONFIG_GRETH_FIFO64=y - -# -# UARTs, timers and irq control -# -CONFIG_UART1_ENABLE=y -CONFIG_UA1_FIFO1=y -# CONFIG_UA1_FIFO2 is not set -# CONFIG_UA1_FIFO4 is not set -# CONFIG_UA1_FIFO8 is not set -# CONFIG_UA1_FIFO16 is not set -# CONFIG_UA1_FIFO32 is not set -CONFIG_IRQ3_ENABLE=y -CONFIG_GPT_ENABLE=y -CONFIG_GPT_NTIM=2 -CONFIG_GPT_SW=8 -CONFIG_GPT_TW=32 -CONFIG_GPT_IRQ=8 -CONFIG_GPT_SEPIRQ=y -# CONFIG_GPT_WDOGEN is not set - -# -# ATA Controller -# -# CONFIG_ATA_ENABLE is not set - -# -# Keybord and VGA interface -# -CONFIG_KBD_ENABLE=y -CONFIG_VGA_ENABLE=y - -# -# VHDL Debugging -# -CONFIG_DEBUG_UART=y diff --git a/designs/leon3-ge-hpe-mini/leon3mini.h b/designs/leon3-ge-hpe-mini/leon3mini.h deleted file mode 100644 index 60343996..00000000 --- a/designs/leon3-ge-hpe-mini/leon3mini.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef CONFIG_EXTAHB_ENABLE -#define CONFIG_EXTAHB_ENABLE 0 -#define CONFIG_EXTAHB_BASE A00 -#define CONFIG_EXTAHB_INT 6 -#endif - -#ifndef CONFIG_SDRAM_SHIFT -#define CONFIG_SDRAM_SHIFT 0 -#endif - -#ifdef CONFIG_BOOTOPT_INT -#define CONFIG_BOOTOPT 1 -#else -#define CONFIG_BOOTOPT 0 -#endif - -#ifdef CONFIG_HPEVER_1 -#define CONFIG_HPEVER 1 -#else -#define CONFIG_HPEVER 2 -#endif - diff --git a/designs/leon3-ge-hpe-mini/leon3mini.vhd b/designs/leon3-ge-hpe-mini/leon3mini.vhd deleted file mode 100644 index 89142c84..00000000 --- a/designs/leon3-ge-hpe-mini/leon3mini.vhd +++ /dev/null @@ -1,717 +0,0 @@ ------------------------------------------------------------------------------- --- LEON3 Demonstration design --- Copyright (C) 2004 Jiri Gaisler, Gaisler Research --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------- --- modified by Thomas Ameseder, Gleichmann Electronics 2004, 2005 to --- support the use of an external AHB slave and different HPE board versions ------------------------------------------------------------------------------- --- further adapted from Hpe_compact to Hpe_mini (Feb. 2005) ------------------------------------------------------------------------------- - - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; -library techmap; -use techmap.gencomp.all; -library gaisler; -use gaisler.memctrl.all; -use gaisler.leon3.all; -use gaisler.uart.all; -use gaisler.misc.all; -use gaisler.net.all; -use gaisler.ata.all; -use gaisler.jtag.all; -library esa; -use esa.memoryctrl.all; -library gleichmann; -use gleichmann.hpi.all; -use gleichmann.dac.all; - -use work.config.all; - - -entity leon3mini is - generic ( - fabtech : integer := CFG_FABTECH; - memtech : integer := CFG_MEMTECH; - padtech : integer := CFG_PADTECH; - clktech : integer := CFG_CLKTECH; - disas : integer := CFG_DISAS; -- Enable disassembly to console - dbguart : integer := CFG_DUART; -- Print UART on console - pclow : integer := CFG_PCLOW; - freq : integer := 25000 -- frequency of main clock (used for PLLs) - ); - port ( - resetn : in std_ulogic; - resoutn : out std_logic; - clk : in std_ulogic; - - errorn : out std_ulogic; - address : out std_logic_vector(15 downto 2); - data : inout std_logic_vector(31 downto 0); - --- pragma translate_off - ramsn : out std_logic_vector (4 downto 0); - ramoen : out std_logic_vector (4 downto 0); - rben : out std_logic_vector(3 downto 0); - rwen : out std_logic_vector(3 downto 0); - - romsn : out std_logic_vector (1 downto 0); - iosn : out std_ulogic; - oen : out std_ulogic; - read : out std_ulogic; - writen : out std_ulogic; --- pragma translate_on - - sdcke : out std_logic_vector (1 downto 0); -- sdram clock enable - sdcsn : out std_logic_vector (1 downto 0); -- sdram chip select - sdwen : out std_ulogic; -- sdram write enable - sdrasn : out std_ulogic; -- sdram ras - sdcasn : out std_ulogic; -- sdram cas - sddqm : out std_logic_vector (3 downto 0); -- sdram dqm - sdclk : out std_ulogic; - sdba : out std_logic_vector(1 downto 0); -- sdram bank address - - -- debug support unit - dsuen : in std_ulogic; - dsubre : in std_ulogic; - dsuactn : out std_ulogic; - - -- UART for serial DCL/console I/O - serrx : in std_ulogic; - sertx : out std_ulogic; - sersrcsel : in std_ulogic; - --- dsutx : out std_ulogic; -- DSU tx data --- dsurx : in std_ulogic; -- DSU rx data --- rxd1 : in std_ulogic; --- txd1 : out std_ulogic; --- gpio : inout std_logic_vector(7 downto 0); -- I/O port, unused at the moment - - -- ethernet signals - emdio : inout std_logic; -- ethernet PHY interface - etx_clk : in std_ulogic; - erx_clk : in std_ulogic; - erxd : in std_logic_vector(3 downto 0); - erx_dv : in std_ulogic; - erx_er : in std_ulogic; - erx_col : in std_ulogic; - erx_crs : in std_ulogic; - etxd : out std_logic_vector(3 downto 0); - etx_en : out std_ulogic; - etx_er : out std_ulogic; - emdc : out std_ulogic; - - ata_rst : out std_logic; - ata_data : inout std_logic_vector(15 downto 0); - ata_da : out std_logic_vector(2 downto 0); - ata_cs0 : out std_logic; - ata_cs1 : out std_logic; - ata_dior : out std_logic; - ata_diow : out std_logic; - ata_iordy : in std_logic; - ata_intrq : in std_logic; - ata_dmack : out std_logic; - - sample_clock : out std_ulogic; - -------------------------------------------------------------------------------- --- HPI PORT -------------------------------------------------------------------------------- - hpiaddr : out std_logic_vector(1 downto 0); - hpidata : inout std_logic_vector(15 downto 0); - hpicsn : out std_ulogic; - hpiwrn : out std_ulogic; - hpirdn : out std_ulogic; - hpiint : in std_ulogic; - - -- equality flag for R/W data - dbg_equal : out std_ulogic; -------------------------------------------------------------------------------- - - - dac : out std_ulogic; - vga_vsync : out std_ulogic; - vga_hsync : out std_ulogic; - vga_rd : out std_logic_vector(1 downto 0); - vga_gr : out std_logic_vector(1 downto 0); - vga_bl : out std_logic_vector(1 downto 0) - - ); -end; - -architecture rtl of leon3mini is - - constant blength : integer := 12; - constant fifodepth : integer := 8; - - signal vcc, gnd : std_logic_vector(4 downto 0); - signal memi : memory_in_type; - signal memo : memory_out_type; - signal wpo : wprot_out_type; - signal sdi : sdctrl_in_type; - signal sdo : sdram_out_type; - signal sdo2, sdo3 : sdctrl_out_type; - - signal apbi : apb_slv_in_type; - signal apbo : apb_slv_out_vector := (others => apb_none); - signal ahbsi : ahb_slv_in_type; - signal ahbso : ahb_slv_out_vector := (others => ahbs_none); - signal ahbmi : ahb_mst_in_type; - signal ahbmo : ahb_mst_out_vector := (others => ahbm_none); - - signal clkm, rstn, sdclkl : std_ulogic; - signal cgi : clkgen_in_type; - signal cgo : clkgen_out_type; - signal u1i, dui : uart_in_type; - signal u1o, duo : uart_out_type; - - signal irqi : irq_in_vector(0 to CFG_NCPU-1); - signal irqo : irq_out_vector(0 to CFG_NCPU-1); - - signal dbgi : l3_debug_in_vector(0 to CFG_NCPU-1); - signal dbgo : l3_debug_out_vector(0 to CFG_NCPU-1); - - signal dsui : dsu_in_type; - signal dsuo : dsu_out_type; - - signal ethi, ethi1, ethi2 : eth_in_type; - signal etho, etho1, etho2 : eth_out_type; - - signal atai : ata_in_type; - signal atao : ata_out_type; - - signal gpti : gptimer_in_type; - - signal sa : std_logic_vector(14 downto 0); -- ? - signal sd : std_logic_vector(63 downto 0); -- ? - - signal emddis : std_ulogic; - signal ereset : std_ulogic; - - signal epwrdwn : std_ulogic; - signal esleep : std_ulogic; - signal epause : std_ulogic; - - signal tck, tms, tdi, tdo : std_ulogic; - --- Adaptions for HPE Compact - - signal dsuact : std_logic; - signal oen_ctrl : std_logic; - signal sdram_selected : std_logic; - - signal shortcut : std_logic; - signal rx : std_logic; - signal tx : std_logic; - - signal rxd1 : std_logic; - signal txd1 : std_logic; - signal dsutx : std_ulogic; -- DSU tx data - signal dsurx : std_ulogic; -- DSU rx data - - --------------------------------------------------------------------------------------- - -- HPI SIGNALS - --------------------------------------------------------------------------------------- --- signal hpiaddr : std_logic_vector(1 downto 0); --- signal hpidata : std_logic_vector(15 downto 0); --- signal hpicsn : std_ulogic; --- signal hpiwrn : std_ulogic; --- signal hpirdn : std_ulogic; --- signal hpiint : std_ulogic; - - signal hpiwriten : std_ulogic; -- intermediate signal - signal hpirdata : std_logic_vector(15 downto 0); - signal hpiwdata : std_logic_vector(15 downto 0); - signal drive_bus : std_ulogic; - - signal dbg_rdata : std_logic_vector(15 downto 0); - signal dbg_wdata : std_logic_vector(15 downto 0); - --------------------------------------------------------------------------------------- - - signal vgao : apbvga_out_type; - signal video_clk : std_logic; - signal clk_sel : std_logic_vector(1 downto 0); - - constant BOARD_FREQ : integer := freq; -- input frequency in KHz - constant CPU_FREQ : integer := BOARD_FREQ * CFG_CLKMUL / CFG_CLKDIV; -- cpu frequency in KHz -begin - ----------------------------------------------------------------------- ---- Reset and Clock generation ------------------------------------- ----------------------------------------------------------------------- - - vcc <= (others => '1'); gnd <= (others => '0'); - cgi.pllctrl <= "00"; cgi.pllrst <= not resetn; cgi.pllref <= clk; --'0'; --pllref; - - clkgen0 : clkgen -- clock generator using toplevel generic 'freq' - generic map (tech => CFG_CLKTECH, clk_mul => CFG_CLKMUL, - clk_div => CFG_CLKDIV, sdramen => CFG_MCTRL_SDEN, - noclkfb => CFG_CLK_NOFB, freq => freq) - port map (clkin => clk, pciclkin => gnd(0), clk => clkm, clkn => open, - clk2x => open, sdclk => sdclkl, pciclk => open, - cgi => cgi, cgo => cgo); - - rst0 : rstgen -- reset generator - port map (resetn, clkm, cgo.clklock, rstn); - ----------------------------------------------------------------------- ---- AHB CONTROLLER -------------------------------------------------- ----------------------------------------------------------------------- - - ahb0 : ahbctrl -- AHB arbiter/multiplexer - generic map (defmast => CFG_DEFMST, split => CFG_SPLIT, - rrobin => CFG_RROBIN, ioaddr => CFG_AHBIO, - nahbm => 8, nahbs => 8) - port map (rstn, clkm, ahbmi, ahbmo, ahbsi, ahbso); - ----------------------------------------------------------------------- ---- LEON3 processor and DSU ----------------------------------------- ----------------------------------------------------------------------- - - l3 : if CFG_LEON3 = 1 generate - cpu : for i in 0 to CFG_NCPU-1 generate - u0 : leon3s -- LEON3 processor - generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, - 0, CFG_MAC, pclow, 0, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, - CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, - CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, - CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, - CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, - CFG_NCPU-1) - port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, - irqi(i), irqo(i), dbgi(i), dbgo(i)); - end generate; - errorn_pad : odpad generic map (tech => padtech) port map (errorn, dbgo(0).error); - - dsugen : if CFG_DSU = 1 generate - dsu0 : dsu3 -- LEON3 Debug Support Unit - generic map (hindex => 2, haddr => 16#900#, hmask => 16#F00#, - ncpu => CFG_NCPU, tbits => 30, tech => memtech, irq => 0, kbytes => CFG_ATBSZ) - port map (rstn, clkm, ahbmi, ahbsi, ahbso(2), dbgo, dbgi, dsui, dsuo); - dsuen_pad : inpad generic map (tech => padtech) port map (dsuen, dsui.enable); - -- **** tame: do not use inversion - dsubre_pad : inpad generic map (tech => padtech) port map (dsubre, dsui.break); - dsuact_pad : outpad generic map (tech => padtech) port map (dsuact, dsuo.active); - end generate; - end generate; - nodsu : if CFG_DSU = 0 generate - ahbso(2) <= ahbs_none; dsuo.tstop <= '0'; dsuo.active <= '0'; - end generate; - - dcomgen : if CFG_AHB_UART = 1 generate - dcom0 : ahbuart -- Debug UART - generic map (hindex => CFG_NCPU, pindex => 4, paddr => 7) - port map (rstn, clkm, dui, duo, apbi, apbo(4), ahbmi, ahbmo(CFG_NCPU)); - dsurx_pad : inpad generic map (tech => padtech) port map (dsurx, dui.rxd); - dsutx_pad : outpad generic map (tech => padtech) port map (dsutx, duo.txd); - end generate; - nouah : if CFG_AHB_UART = 0 generate apbo(4) <= apb_none; end generate; - - ahbjtaggen0 : if CFG_AHB_JTAG = 1 generate - ahbjtag0 : ahbjtag generic map(tech => fabtech, hindex => CFG_NCPU+CFG_AHB_UART) - port map(rstn, clkm, tck, tms, tdi, tdo, ahbmi, ahbmo(CFG_NCPU+CFG_AHB_UART), - open, open, open, open, open, open, open, gnd(0)); - end generate; - ----------------------------------------------------------------------- ---- Memory controllers ---------------------------------------------- ----------------------------------------------------------------------- - - mg2 : if CFG_MCTRL_LEON2 = 1 generate -- LEON2 memory controller - sr1 : mctrl generic map (hindex => 0, pindex => 0, - paddr => 0, fast => 0, srbanks => 1, sden => CFG_MCTRL_SDEN) - port map (rstn, clkm, memi, memo, ahbsi, ahbso(0), apbi, apbo(0), wpo, sdo); - sdpads : if CFG_MCTRL_SDEN = 1 generate -- SDRAM pads - sdwen_pad : outpad generic map (tech => padtech) - port map (sdwen, sdo.sdwen); - sdras_pad : outpad generic map (tech => padtech) - port map (sdrasn, sdo.rasn); - sdcas_pad : outpad generic map (tech => padtech) - port map (sdcasn, sdo.casn); - sddqm_pad : outpadv generic map (width => 4, tech => padtech) - port map (sddqm, sdo.dqm(3 downto 0)); - sdclk_pad : outpad generic map (tech => padtech, slew => 1) port map (sdclk, sdclkl); - sdcke_pad : outpadv generic map (width => 2, tech => padtech) - port map (sdcke, sdo.sdcke); - sdcsn_pad : outpadv generic map (width => 2, tech => padtech) - port map (sdcsn, sdo.sdcsn); - end generate; - addr_pad : outpadv generic map (width => 14, tech => padtech) - port map (address, memo.address(15 downto 2)); - bdr : for i in 0 to 3 generate - data_pad : iopadv generic map (tech => padtech, width => 8) - port map (data(31-i*8 downto 24-i*8), memo.data(31-i*8 downto 24-i*8), - memo.bdrive(i), memi.data(31-i*8 downto 24-i*8)); - end generate; - end generate; - - nosd0 : if (CFG_MCTRL_SDEN = 0) generate -- no SDRAM controller - sdclk_pad : outpad generic map (tech => padtech, slew => 1) port map (sdclk, sdclkl); - sdcke_pad : outpadv generic map (width => 2, tech => padtech) - port map (sdcke, sdo3.sdcke); - sdcsn_pad : outpadv generic map (width => 2, tech => padtech) - port map (sdcsn, sdo3.sdcsn); - end generate; - - memi.brdyn <= '1'; memi.bexcn <= '1'; - memi.writen <= '1'; memi.wrn <= "1111"; memi.bwidth <= "10"; - - --- pragma translate_off - mgpads : if CFG_MCTRL_LEON2 = 1 generate - rams_pad : outpadv generic map (width => 5, tech => padtech) - port map (ramsn, memo.ramsn(4 downto 0)); - roms_pad : outpadv generic map (width => 2, tech => padtech) - port map (romsn, memo.romsn(1 downto 0)); - oen_pad : outpad generic map (tech => padtech) - port map (oen, memo.oen); - rwen_pad : outpadv generic map (width => 4, tech => padtech) - port map (rwen, memo.wrn); - roen_pad : outpadv generic map (width => 5, tech => padtech) - port map (ramoen, memo.ramoen(4 downto 0)); - wri_pad : outpad generic map (tech => padtech) - port map (writen, memo.writen); - read_pad : outpad generic map (tech => padtech) - port map (read, memo.read); - iosn_pad : outpad generic map (tech => padtech) - port map (iosn, memo.iosn); - end generate; --- pragma translate_on - ----------------------------------------------------------------------- ---- APB Bridge and various periherals ------------------------------- ----------------------------------------------------------------------- - - apb0 : apbctrl -- AHB/APB bridge - generic map (hindex => 1, haddr => CFG_APBADDR) - port map (rstn, clkm, ahbsi, ahbso(1), apbi, apbo); - - ua1 : if CFG_UART1_ENABLE /= 0 generate - uart1 : apbuart -- UART 1 - generic map (pindex => 1, paddr => 1, pirq => 2, console => dbguart, - fifosize => CFG_UART1_FIFO) - port map (rstn, clkm, apbi, apbo(1), u1i, u1o); - u1i.rxd <= rxd1; u1i.ctsn <= '0'; u1i.extclk <= '0'; txd1 <= u1o.txd; - end generate; - noua0 : if CFG_UART1_ENABLE = 0 generate apbo(1) <= apb_none; end generate; - - irqctrl : if CFG_IRQ3_ENABLE /= 0 generate - irqctrl0 : irqmp -- interrupt controller - generic map (pindex => 2, paddr => 2, ncpu => CFG_NCPU) - port map (rstn, clkm, apbi, apbo(2), irqo, irqi); - end generate; - irq3 : if CFG_IRQ3_ENABLE = 0 generate - x : for i in 0 to CFG_NCPU-1 generate - irqi(i).irl <= "0000"; - end generate; - apbo(2) <= apb_none; - end generate; - - gpt : if CFG_GPT_ENABLE /= 0 generate - timer0 : gptimer -- timer unit - generic map (pindex => 3, paddr => 3, pirq => CFG_GPT_IRQ, - sepirq => CFG_GPT_SEPIRQ, sbits => CFG_GPT_SW, ntimers => CFG_GPT_NTIM, - nbits => CFG_GPT_TW) - port map (rstn, clkm, apbi, apbo(3), gpti, open); - gpti.dhalt <= dsuo.tstop; gpti.extclk <= '0'; - end generate; - notim : if CFG_GPT_ENABLE = 0 generate apbo(3) <= apb_none; end generate; - - vga : if CFG_VGA_ENABLE /= 0 generate - vga0 : apbvga generic map(memtech => memtech, pindex => 5, paddr => 6) - port map(rstn, clkm, clk, apbi, apbo(5), vgao); - end generate; - vert_sync_pad : outpad generic map (tech => padtech) - port map (vga_vsync, vgao.vsync); - horiz_sync_pad : outpad generic map (tech => padtech) - port map (vga_hsync, vgao.hsync); - video_out_r_pad : outpadv generic map (width => 2, tech => padtech) - port map (vga_rd, vgao.video_out_r(7 downto 6)); - video_out_g_pad : outpadv generic map (width => 2, tech => padtech) - port map (vga_gr, vgao.video_out_g(7 downto 6)); - video_out_b_pad : outpadv generic map (width => 2, tech => padtech) - port map (vga_bl, vgao.video_out_b(7 downto 6)); - - svga : if CFG_SVGA_ENABLE /= 0 generate - svga0 : svgactrl generic map(memtech => memtech, pindex => 6, paddr => 6, - hindex => CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG, - clk0 => 40000, clk1 => 1000000000/((BOARD_FREQ * CFG_CLKMUL)/CFG_CLKDIV), - clk2 => 20000, clk3 => 15385, burstlen => 6) - port map(rstn, clkm, video_clk, apbi, apbo(6), vgao, ahbmi, - ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG), clk_sel); - video_clk <= clk when clk_sel = "00" else clkm; - end generate; - - novga : if CFG_VGA_ENABLE+CFG_SVGA_ENABLE = 0 generate - apbo(6) <= apb_none; vgao <= vgao_none; - end generate; - ------------------------------------------------------------------------ ---- ETHERNET --------------------------------------------------------- ------------------------------------------------------------------------ - - eth0 : if CFG_GRETH = 1 generate -- Gaisler ethernet MAC - e1 : greth generic map(hindex => CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_SVGA_ENABLE, - pindex => 15, paddr => 15, pirq => 12, memtech => memtech, - mdcscaler => CPU_FREQ/1000, enable_mdio => 1, fifosize => CFG_ETH_FIFO, - nsync => 1, edcl => CFG_DSU_ETH, edclbufsz => CFG_ETH_BUF, - macaddrh => CFG_ETH_ENM, macaddrl => CFG_ETH_ENL, - ipaddrh => CFG_ETH_IPM, ipaddrl => CFG_ETH_IPL) - port map(rst => rstn, clk => clkm, ahbmi => ahbmi, - ahbmo => ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_SVGA_ENABLE), apbi => apbi, - apbo => apbo(15), ethi => ethi, etho => etho); - - emdio_pad : iopad generic map (tech => padtech) - port map (emdio, etho.mdio_o, etho.mdio_oe, ethi.mdio_i); - etxc_pad : inpad generic map (tech => padtech) - port map (etx_clk, ethi.tx_clk); - erxc_pad : inpad generic map (tech => padtech) - port map (erx_clk, ethi.rx_clk); - erxd_pad : inpadv generic map (tech => padtech, width => 4) - port map (erxd, ethi.rxd(3 downto 0)); - erxdv_pad : inpad generic map (tech => padtech) - port map (erx_dv, ethi.rx_dv); - erxer_pad : inpad generic map (tech => padtech) - port map (erx_er, ethi.rx_er); - erxco_pad : inpad generic map (tech => padtech) - port map (erx_col, ethi.rx_col); - erxcr_pad : inpad generic map (tech => padtech) - port map (erx_crs, ethi.rx_crs); - - etxd_pad : outpadv generic map (tech => padtech, width => 4) - port map (etxd, etho.txd(3 downto 0)); - etxen_pad : outpad generic map (tech => padtech) - port map (etx_en, etho.tx_en); - etxer_pad : outpad generic map (tech => padtech) - port map (etx_er, etho.tx_er); - emdc_pad : outpad generic map (tech => padtech) - port map (emdc, etho.mdc); - - emdis_pad : outpad generic map (tech => padtech) - port map (emddis, vcc(0)); - eepwrdwn_pad : outpad generic map (tech => padtech) - port map (epwrdwn, gnd(0)); - esleep_pad : outpad generic map (tech => padtech) - port map (esleep, gnd(0)); - epause_pad : outpad generic map (tech => padtech) - port map (epause, gnd(0)); - ereset_pad : outpad generic map (tech => padtech) - port map (ereset, gnd(0)); - - end generate; - ------------------------------------------------------------------------ ---- ATA Controller --------------------------------------------------- ------------------------------------------------------------------------ - atac : if CFG_ATA = 1 generate - atac0 : atactrl - generic map( - shindex => 5, - haddr => CFG_ATAIO, - hmask => 16#fff#, - pirq => CFG_ATAIRQ, - - TWIDTH => 8, -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 => 6, -- 70ns - PIO_mode0_T2 => 28, -- 290ns - PIO_mode0_T4 => 2, -- 30ns - PIO_mode0_Teoc => 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ) - port map( - rst => rstn, - arst => '1', - clk => clkm, - ahbsi => ahbsi, - ahbso => ahbso(5), - ahbmo => open, - ahbmi => ahbmi, - - -- ATA signals - atai => atai, - atao => atao - ); - - ata_rst_pad : outpad generic map (tech => padtech) - port map (ata_rst, atao.rstn); - ata_data_pad : iopadv generic map (tech => padtech, width => 16, oepol => 1) - port map (ata_data, atao.ddo, atao.oen, atai.ddi); - ata_da_pad : outpadv generic map (tech => padtech, width => 3) - port map (ata_da, atao.da); - ata_cs0_pad : outpad generic map (tech => padtech) - port map (ata_cs0, atao.cs0); - ata_cs1_pad : outpad generic map (tech => padtech) - port map (ata_cs1, atao.cs1); - ata_dior_pad : outpad generic map (tech => padtech) - port map (ata_dior, atao.dior); - ata_diow_pad : outpad generic map (tech => padtech) - port map (ata_diow, atao.diow); - iordy_pad : inpad generic map (tech => padtech) - port map (ata_iordy, atai.iordy); - intrq_pad : inpad generic map (tech => padtech) - port map (ata_intrq, atai.intrq); - dmack_pad : outpad generic map (tech => padtech) - port map (ata_dmack, atao.dmack); - end generate; - ------------------------------------------------------------------------ ---- AHB ROM ---------------------------------------------------------- ------------------------------------------------------------------------ - - bpromgen : if CFG_AHBROMEN /= 0 generate - brom : entity work.ahbrom - generic map (hindex => 6, haddr => CFG_AHBRODDR, pipe => CFG_AHBROPIP) - port map (rstn, clkm, ahbsi, ahbso(6)); - end generate; - nobpromgen : if CFG_AHBROMEN = 0 generate - ahbso(6) <= ahbs_none; - end generate; - ------------------------------------------------------------------------ ---- AHB RAM ---------------------------------------------------------- ------------------------------------------------------------------------ - - ahbramgen : if CFG_AHBRAMEN = 1 generate - ahbram0 : ahbram generic map (hindex => 3, haddr => CFG_AHBRADDR, - tech => CFG_MEMTECH, kbytes => CFG_AHBRSZ) - port map (rstn, clkm, ahbsi, ahbso(3)); - end generate; - nram : if CFG_AHBRAMEN = 0 generate ahbso(3) <= ahbs_none; end generate; - ------------------------------------------------------------------------ ---- AHB DAC IF ------------------------------------------------------- ------------------------------------------------------------------------ - - dac_ahb_inst : if CFG_DAC_AHB /= 0 generate - dac_ahb_1 : dac_ahb - generic map(length => 16, hindex => 4, haddr => 16#010#, hmask => 16#FFF#, tech => fabtech, kbytes => 1) - port map(rst => rstn, clk => clkm, ahbsi => ahbsi, ahbso => ahbso(4), dac_out => dac); - end generate; - ndac_ahb_inst : if CFG_DAC_AHB = 0 generate - ahbso(4) <= ahbs_none; - end generate; - - ----------------------------------------------------------------------------- - -- HPI SECTION - ----------------------------------------------------------------------------- - - ahb2hpi_inst : if CFG_AHB2HPI /= 0 generate - ahb2hpi2_1 : ahb2hpi2 - generic map ( - counter_width => 4, - data_width => 16, - address_width => 2, - hindex => 7, - haddr => 16#240#, - hmask => 16#fff#) - port map ( - HCLK => clkm, - HRESETn => rstn, - ahbso => ahbso(7), - ahbsi => ahbsi, - ADDR => hpiaddr, - WDATA => hpiwdata, - RDATA => hpirdata, - nCS => hpicsn, - nWR => hpiwriten, - nRD => hpirdn, - INT => hpiint, - drive_bus => drive_bus, - dbg_equal => dbg_equal - ); - - hpidata <= hpiwdata when drive_bus = '1' else - (others => 'Z'); - - hpirdata <= hpidata; - - hpiwrn <= hpiwriten; - - end generate; - nahb2hpi_inst : if CFG_AHB2HPI = 0 generate - ahbso(7) <= ahbs_none; - end generate; - - ------------------------------------------------------------------------ ---- Drive unused bus elements --------------------------------------- ------------------------------------------------------------------------ - - nam1 : for i in (CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_SVGA_ENABLE+CFG_GRETH) to NAHBMST-1 generate - ahbmo(i) <= ahbm_none; - end generate; - nap0 : for i in 7 to NAPBSLV-1-CFG_GRETH generate apbo(i) <= apb_none; end generate; - nah0 : for i in 8 to NAHBSLV-1 generate ahbso(i) <= ahbs_none; end generate; - - ------------------------------------------------------------------------ ---- Adaptions for HPE Mini -- ---------------------------------------- ------------------------------------------------------------------------ - - dsuactn <= not dsuact; - - sdba <= memo.address(16 downto 15); -- the bank address - - resoutn <= rstn; - dual_uart : if CFG_AHB_UART /= 0 and CFG_UART1_ENABLE /= 0 generate - with sersrcsel select - sertx <= txd1 when '1', dsutx when others; - - rxd1 <= serrx when sersrcsel = '1' else '-'; - dsurx <= serrx when sersrcsel = '0' else '-'; - end generate dual_uart; - - console_uart : if CFG_AHB_UART = 0 and CFG_UART1_ENABLE /= 0 generate - sertx <= txd1; - rxd1 <= serrx; - end generate console_uart; - - dcl_uart : if CFG_AHB_UART /= 0 and CFG_UART1_ENABLE = 0 generate - sertx <= dsutx; - dsurx <= serrx; - end generate dcl_uart; - - no_uart : if CFG_AHB_UART = 0 and CFG_UART1_ENABLE = 0 generate - sertx <= '-'; - dsurx <= '-'; - rxd1 <= '-'; - end generate no_uart; - ------------------------------------------------------------------------ ---- Boot message ---------------------------------------------------- ------------------------------------------------------------------------ - --- pragma translate_off - x : report_version - generic map ( - msg1 => "LEON3 Demonstration design for HPE_mini board", - msg2 => "GRLIB Version " & tost(LIBVHDL_VERSION/1000) & "." & tost((LIBVHDL_VERSION mod 1000)/100) - & "." & tost(LIBVHDL_VERSION mod 100) & ", build " & tost(LIBVHDL_BUILD), - msg3 => "Target technology: " & tech_table(fabtech) & ", memory library: " & tech_table(memtech), - mdel => 1 - ); --- pragma translate_on - - - -end rtl; diff --git a/designs/leon3-ge-hpe-mini/linkprom b/designs/leon3-ge-hpe-mini/linkprom deleted file mode 100755 index 1805994a..00000000 --- a/designs/leon3-ge-hpe-mini/linkprom +++ /dev/null @@ -1,155 +0,0 @@ -/* linkcmds - * - * $Id: linkcmds,v 1.8.2.1 2000/05/24 17:06:38 joel Exp $ - */ - -OUTPUT_ARCH(sparc) -__DYNAMIC = 0; - -/* - * The memory map looks like this: - * +--------------------+ <- low memory - * | .text | - * | etext | - * | ctor list | the ctor and dtor lists are for - * | dtor list | C++ support - * | _endtext | - * +--------------------+ - * | .data | initialized data goes here - * | _sdata | - * | _edata | - * +--------------------+ - * | .bss | - * | __bss_start | start of bss, cleared by crt0 - * | _end | start of heap, used by sbrk() - * +--------------------+ - * | heap space | - * | _ENDHEAP | - * | stack space | - * | __stack | top of stack - * +--------------------+ <- high memory - */ - - -/* Default values, can be overridden */ - -_PROM_SIZE = 2M; -_RAM_SIZE = 4M; - -_RAM_START = 0x02000000; -_RAM_END = _RAM_START + _RAM_SIZE; - -_PROM_START = 0x00000000; -_PROM_END = _PROM_START + _PROM_SIZE; - -/* - * Alternate names without leading _. - */ - -PROM_START = _PROM_START; -PROM_SIZE = _PROM_SIZE; -PROM_END = _PROM_END; - -RAM_START = _RAM_START; -RAM_SIZE = _RAM_SIZE; -RAM_END = _RAM_END; - -_LEON_REG = 0x80000000; -LEON_REG = 0x80000000; - -/* these are the maximum values */ - -MEMORY -{ - rom : ORIGIN = 0x00000000, LENGTH = 16M - ram : ORIGIN = 0x40000000, LENGTH = 1024M -} - -SECTIONS -{ - .text : - { - CREATE_OBJECT_SYMBOLS - text_start = .; - _text_start = .; - *(.text) - . = ALIGN (16); - - *(.eh_frame) - . = ALIGN (16); - - *(.gnu.linkonce.t*) - - /* - * C++ constructors - */ - __CTOR_LIST__ = .; - LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) - *(.ctors) - LONG(0) - __CTOR_END__ = .; - __DTOR_LIST__ = .; - LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) - *(.dtors) - LONG(0) - __DTOR_END__ = .; - - _rodata_start = . ; - *(.rodata*) - *(.gnu.linkonce.r*) - _erodata = ALIGN( 0x10 ) ; - - etext = ALIGN(0x10); - _etext = .; - *(.init) - *(.fini) - *(.lit) - *(.shdata) - . = ALIGN (16); - _endtext = .; - } > rom - .dynamic : { *(.dynamic) } >ram - .got : { *(.got) } >ram - .plt : { *(.plt) } >ram - .hash : { *(.hash) } >ram - .dynrel : { *(.dynrel) } >ram - .dynsym : { *(.dynsym) } >ram - .dynstr : { *(.dynstr) } >ram - .hash : { *(.hash) } >ram - .data : - { - data_start = .; - _data_start = .; - _sdata = . ; - *(.data) - *(.gnu.linkonce.d*) - *(.gcc_except_table) - . = ALIGN(0x10); - edata = .; - _edata = .; - } > ram - .shbss : - { - *(.shbss) - } > ram - .bss : - { - __bss_start = ALIGN(0x8); - _bss_start = .; - bss_start = .; - *(.bss) - *(COMMON) - end = .; - _end = ALIGN(0x8); - __end = ALIGN(0x8); - } > ram - .jcr . (NOLOAD) : { *(.jcr) } - .stab . (NOLOAD) : - { - [ .stab ] - } - .stabstr . (NOLOAD) : - { - [ .stabstr ] - } -} diff --git a/designs/leon3-ge-hpe-mini/sram.srec b/designs/leon3-ge-hpe-mini/sram.srec deleted file mode 100755 index b60046fb..00000000 --- a/designs/leon3-ge-hpe-mini/sram.srec +++ /dev/null @@ -1,19492 +0,0 @@ -S00C00007372616D2E7372656365 -S31540000000881000000910006C81C1206C01000000BE -S31540000010A1480000A75000001080203BAC102001F2 -S3154000002091D0200001000000010000000100000006 -S3154000003091D02000010000000100000001000000F6 -S31540000040A14800002910006B81C523A401000000CF -S31540000050A14800002910006981C522C8010000009E -S31540000060A14800002910006981C523340100000021 -S3154000007091D02000010000000100000001000000B6 -S3154000008091D02000010000000100000001000000A6 -S31540000090A1480000A75000001080201BAC1020098A -S315400000A091D0200001000000010000000100000086 -S315400000B091D0200001000000010000000100000076 -S315400000C091D0200001000000010000000100000066 -S315400000D091D0200001000000010000000100000056 -S315400000E091D0200001000000010000000100000046 -S315400000F091D0200001000000010000000100000036 -S3154000010091D0200001000000010000000100000025 -S31540000110AE102001A148000010806A33A7500000AD -S31540000120AE102002A148000010806A2FA7500000A0 -S31540000130AE102003A148000010806A2BA750000093 -S31540000140AE102004A148000010806A27A750000086 -S31540000150AE102005A148000010806A23A750000079 -S31540000160AE102006A148000010806A1FA75000006C -S31540000170AE102007A148000010806A1BA75000005F -S31540000180AE102008A148000010806A17A750000052 -S31540000190AE102009A148000010806A13A750000045 -S315400001A0AE10200AA148000010806A0FA750000038 -S315400001B0AE10200BA148000010806A0BA75000002B -S315400001C0AE10200CA148000010806A07A75000001E -S315400001D0AE10200DA148000010806A03A750000011 -S315400001E0AE10200EA1480000108069FFA750000005 -S315400001F0AE10200FA1480000108069FBA7500000F8 -S3154000020091D0200001000000010000000100000024 -S3154000021091D0200001000000010000000100000014 -S3154000022091D0200001000000010000000100000004 -S3154000023091D02000010000000100000001000000F4 -S3154000024091D02000010000000100000001000000E4 -S3154000025091D02000010000000100000001000000D4 -S3154000026091D02000010000000100000001000000C4 -S3154000027091D02000010000000100000001000000B4 -S3154000028091D02000010000000100000001000000A4 -S3154000029091D0200001000000010000000100000094 -S315400002A091D0200001000000010000000100000084 -S315400002B091D0200001000000010000000100000074 -S315400002C091D0200001000000010000000100000064 -S315400002D091D0200001000000010000000100000054 -S315400002E091D0200001000000010000000100000044 -S315400002F091D0200001000000010000000100000034 -S3154000030091D0200001000000010000000100000023 -S3154000031091D0200001000000010000000100000013 -S3154000032091D0200001000000010000000100000003 -S3154000033091D02000010000000100000001000000F3 -S3154000034091D02000010000000100000001000000E3 -S3154000035091D02000010000000100000001000000D3 -S3154000036091D02000010000000100000001000000C3 -S3154000037091D02000010000000100000001000000B3 -S3154000038091D02000010000000100000001000000A3 -S3154000039091D0200001000000010000000100000093 -S315400003A091D0200001000000010000000100000083 -S315400003B091D0200001000000010000000100000073 -S315400003C091D0200001000000010000000100000063 -S315400003D091D0200001000000010000000100000053 -S315400003E091D0200001000000010000000100000043 -S315400003F091D0200001000000010000000100000033 -S3154000040091D0200001000000010000000100000022 -S3154000041091D0200001000000010000000100000012 -S3154000042091D0200001000000010000000100000002 -S3154000043091D02000010000000100000001000000F2 -S3154000044091D02000010000000100000001000000E2 -S3154000045091D02000010000000100000001000000D2 -S3154000046091D02000010000000100000001000000C2 -S3154000047091D02000010000000100000001000000B2 -S3154000048091D02000010000000100000001000000A2 -S3154000049091D0200001000000010000000100000092 -S315400004A091D0200001000000010000000100000082 -S315400004B091D0200001000000010000000100000072 -S315400004C091D0200001000000010000000100000062 -S315400004D091D0200001000000010000000100000052 -S315400004E091D0200001000000010000000100000042 -S315400004F091D0200001000000010000000100000032 -S3154000050091D0200001000000010000000100000021 -S3154000051091D0200001000000010000000100000011 -S3154000052091D0200001000000010000000100000001 -S3154000053091D02000010000000100000001000000F1 -S3154000054091D02000010000000100000001000000E1 -S3154000055091D02000010000000100000001000000D1 -S3154000056091D02000010000000100000001000000C1 -S3154000057091D02000010000000100000001000000B1 -S3154000058091D02000010000000100000001000000A1 -S3154000059091D0200001000000010000000100000091 -S315400005A091D0200001000000010000000100000081 -S315400005B091D0200001000000010000000100000071 -S315400005C091D0200001000000010000000100000061 -S315400005D091D0200001000000010000000100000051 -S315400005E091D0200001000000010000000100000041 -S315400005F091D0200001000000010000000100000031 -S3154000060091D0200001000000010000000100000020 -S3154000061091D0200001000000010000000100000010 -S3154000062091D0200001000000010000000100000000 -S3154000063091D02000010000000100000001000000F0 -S3154000064091D02000010000000100000001000000E0 -S3154000065091D02000010000000100000001000000D0 -S3154000066091D02000010000000100000001000000C0 -S3154000067091D02000010000000100000001000000B0 -S3154000068091D02000010000000100000001000000A0 -S3154000069091D0200001000000010000000100000090 -S315400006A091D0200001000000010000000100000080 -S315400006B091D0200001000000010000000100000070 -S315400006C091D0200001000000010000000100000060 -S315400006D091D0200001000000010000000100000050 -S315400006E091D0200001000000010000000100000040 -S315400006F091D0200001000000010000000100000030 -S3154000070091D020000100000001000000010000001F -S3154000071091D020000100000001000000010000000F -S3154000072091D02000010000000100000001000000FF -S3154000073091D02000010000000100000001000000EF -S3154000074091D02000010000000100000001000000DF -S3154000075091D02000010000000100000001000000CF -S3154000076091D02000010000000100000001000000BF -S3154000077091D02000010000000100000001000000AF -S3154000078091D020000100000001000000010000009F -S3154000079091D020000100000001000000010000008F -S315400007A091D020000100000001000000010000007F -S315400007B091D020000100000001000000010000006F -S315400007C091D020000100000001000000010000005F -S315400007D091D020000100000001000000010000004F -S315400007E091D020000100000001000000010000003F -S315400007F091D020000100000001000000010000002F -S3154000080091D020000100000001000000010000001E -S3154000081091D020000100000001000000010000000E -S31540000820A14800002910006A81C521080100000086 -S31540000830A1480000108067D9A750000001000000C1 -S3154000084091D02000010000000100000001000000DE -S31540000850A14800002910006A81C520EC0100000073 -S3154000086091D02000010000000100000001000000BE -S3154000087091D02000010000000100000001000000AE -S3154000088091D020000100000001000000010000009E -S3154000089091D020000100000001000000010000008E -S315400008A091D020000100000001000000010000007E -S315400008B091D020000100000001000000010000006E -S315400008C091D020000100000001000000010000005E -S315400008D091D020000100000001000000010000004E -S315400008E091D020000100000001000000010000003E -S315400008F091D020000100000001000000010000002E -S3154000090091D020000100000001000000010000001D -S3154000091091D020000100000001000000010000000D -S3154000092091D02000010000000100000001000000FD -S3154000093091D02000010000000100000001000000ED -S3154000094091D02000010000000100000001000000DD -S3154000095091D02000010000000100000001000000CD -S3154000096091D02000010000000100000001000000BD -S3154000097091D02000010000000100000001000000AD -S3154000098091D020000100000001000000010000009D -S3154000099091D020000100000001000000010000008D -S315400009A091D020000100000001000000010000007D -S315400009B091D020000100000001000000010000006D -S315400009C091D020000100000001000000010000005D -S315400009D091D020000100000001000000010000004D -S315400009E091D020000100000001000000010000003D -S315400009F091D020000100000001000000010000002D -S31540000A0091D020000100000001000000010000001C -S31540000A1091D020000100000001000000010000000C -S31540000A2091D02000010000000100000001000000FC -S31540000A3091D02000010000000100000001000000EC -S31540000A4091D02000010000000100000001000000DC -S31540000A5091D02000010000000100000001000000CC -S31540000A6091D02000010000000100000001000000BC -S31540000A7091D02000010000000100000001000000AC -S31540000A8091D020000100000001000000010000009C -S31540000A9091D020000100000001000000010000008C -S31540000AA091D020000100000001000000010000007C -S31540000AB091D020000100000001000000010000006C -S31540000AC091D020000100000001000000010000005C -S31540000AD091D020000100000001000000010000004C -S31540000AE091D020000100000001000000010000003C -S31540000AF091D020000100000001000000010000002C -S31540000B0091D020000100000001000000010000001B -S31540000B1091D020000100000001000000010000000B -S31540000B2091D02000010000000100000001000000FB -S31540000B3091D02000010000000100000001000000EB -S31540000B4091D02000010000000100000001000000DB -S31540000B5091D02000010000000100000001000000CB -S31540000B6091D02000010000000100000001000000BB -S31540000B7091D02000010000000100000001000000AB -S31540000B8091D020000100000001000000010000009B -S31540000B9091D020000100000001000000010000008B -S31540000BA091D020000100000001000000010000007B -S31540000BB091D020000100000001000000010000006B -S31540000BC091D020000100000001000000010000005B -S31540000BD091D020000100000001000000010000004B -S31540000BE091D020000100000001000000010000003B -S31540000BF091D020000100000001000000010000002B -S31540000C0091D020000100000001000000010000001A -S31540000C1091D020000100000001000000010000000A -S31540000C2091D02000010000000100000001000000FA -S31540000C3091D02000010000000100000001000000EA -S31540000C4091D02000010000000100000001000000DA -S31540000C5091D02000010000000100000001000000CA -S31540000C6091D02000010000000100000001000000BA -S31540000C7091D02000010000000100000001000000AA -S31540000C8091D020000100000001000000010000009A -S31540000C9091D020000100000001000000010000008A -S31540000CA091D020000100000001000000010000007A -S31540000CB091D020000100000001000000010000006A -S31540000CC091D020000100000001000000010000005A -S31540000CD091D020000100000001000000010000004A -S31540000CE091D020000100000001000000010000003A -S31540000CF091D020000100000001000000010000002A -S31540000D0091D0200001000000010000000100000019 -S31540000D1091D0200001000000010000000100000009 -S31540000D2091D02000010000000100000001000000F9 -S31540000D3091D02000010000000100000001000000E9 -S31540000D4091D02000010000000100000001000000D9 -S31540000D5091D02000010000000100000001000000C9 -S31540000D6091D02000010000000100000001000000B9 -S31540000D7091D02000010000000100000001000000A9 -S31540000D8091D0200001000000010000000100000099 -S31540000D9091D0200001000000010000000100000089 -S31540000DA091D0200001000000010000000100000079 -S31540000DB091D0200001000000010000000100000069 -S31540000DC091D0200001000000010000000100000059 -S31540000DD091D0200001000000010000000100000049 -S31540000DE091D0200001000000010000000100000039 -S31540000DF091D0200001000000010000000100000029 -S31540000E0091D0200001000000010000000100000018 -S31540000E1091D0200001000000010000000100000008 -S31540000E2091D02000010000000100000001000000F8 -S31540000E3091D02000010000000100000001000000E8 -S31540000E4091D02000010000000100000001000000D8 -S31540000E5091D02000010000000100000001000000C8 -S31540000E6091D02000010000000100000001000000B8 -S31540000E7091D02000010000000100000001000000A8 -S31540000E8091D0200001000000010000000100000098 -S31540000E9091D0200001000000010000000100000088 -S31540000EA091D0200001000000010000000100000078 -S31540000EB091D0200001000000010000000100000068 -S31540000EC091D0200001000000010000000100000058 -S31540000ED091D0200001000000010000000100000048 -S31540000EE091D0200001000000010000000100000038 -S31540000EF091D0200001000000010000000100000028 -S31540000F0091D0200001000000010000000100000017 -S31540000F1091D0200001000000010000000100000007 -S31540000F2091D02000010000000100000001000000F7 -S31540000F3091D02000010000000100000001000000E7 -S31540000F4091D02000010000000100000001000000D7 -S31540000F5091D02000010000000100000001000000C7 -S31540000F6091D02000010000000100000001000000B7 -S31540000F7091D02000010000000100000001000000A7 -S31540000F8091D0200001000000010000000100000097 -S31540000F9091D0200001000000010000000100000087 -S31540000FA091D0200001000000010000000100000077 -S31540000FB091D0200001000000010000000100000067 -S31540000FC091D0200001000000010000000100000057 -S31540000FD091D0200001000000010000000100000047 -S31540000FE091D0200001000000010000000100000037 -S31540000FF091D0200001000000010000000100000027 -S315400010009DE3BFC0051001438410A0600710014452 -S315400010108610E188821000008620C00286A0E00883 -S3154000102036BFFFFFC038800311100144901221885B -S31540001030C02200004000666601000000400066666F -S315400010400100000040006818010000001110006D0A -S31540001050901221A040006166010000004000694AEC -S3154000106001000000400000430100000040006743CB -S315400010700100000081C7E00881E800009DE3BF98B9 -S3154000108023100143C20C606080A0600012800015EE -S315400010902110008010800005C204200C9FC3400030 -S315400010A0C224200CC204200CDA00400080A3600059 -S315400010B012BFFFFB82006004030000008210600044 -S315400010C080A0600002800006821020011110006D91 -S315400010D06FFFFBCC9012213082102001C22C606041 -S315400010E081C7E00881E800009DE3BF9881C7E0081A -S315400010F081E800009DE3BF98030000008210600075 -S315400011001110006D1310014380A060009012213031 -S3154000111002800004921260646FFFFBBA0100000077 -S315400011201B100144C203618880A060000280000950 -S31540001130B0136188030000008210600080A0600048 -S3154000114002800004010000006FFFFBAE81E8000052 -S315400011500100000081C7E00881E800009DE3BF98D8 -S3154000116081C7E00881E8000081C3E0080100000073 -S315400011709DE3BF9840000007010000004000014683 -S31540001180010000004000000E81E800000100000060 -S315400011909DE3BF98400000290100000080A2200086 -S315400011A01280000503100080D80060109A102001BC -S315400011B0DA23201081C7E00891E820000310008060 -S315400011C0D80060109A102001DA23201481C3E00869 -S315400011D09010200003100080DA006010D0234000F9 -S315400011E081C3E0089010200003100080DA006010F0 -S315400011F0D023600881C3E0089010200003100080CF -S31540001200DA006010D023600481C3E008901020000B -S3154000121013100080921260149010200081C3E008E1 -S31540001220D0EA4020901020001310008092126014E3 -S3154000123081C3E008D0224000914440009132201CF6 -S3154000124081C3E008900A200F81C3E008D0820020C5 -S315400012509010200C81C3E008D08200408210000824 -S3154000126080A20009148000039022000990224001C8 -S3154000127081C3E00801000000932A60028210200129 -S31540001280C22200099810200080A3000A1680000A96 -S3154000129096102001832B2002DA02000180A0000D67 -S315400012A0826020009803200180A3000A06BFFFFA4F -S315400012B0960AC00180A2E00002BFFFF49810200009 -S315400012C081C3E008010000009DE3BF98C2062010DC -S315400012D08330601CA0100018A400600180A4A00107 -S315400012E00280006CB0103FFF7FFFFFD4010000007A -S315400012F0AA100008912A20047FFFFFBC9002200715 -S315400013007FFFFFD40100000003020000808A000135 -S315400013100280005C010000009A05600182102001F5 -S315400013208328400D11100080C2242010901220A066 -S31540001330921000157FFFFFD1941000120310008019 -S3154000134082106018A12D6002C0204010DA004010C3 -S31540001350A610000180A36009291001431480002BC8 -S31540001360AC1000017FFFFFAB0100000080A220000F -S3154000137012BFFFFD01000000B010200080A6001241 -S31540001380168000140100000010800005A21000160F -S3154000139080A600121680000F01000000832E200256 -S315400013A0D0044010D20440017FFFFFADB0062001BB -S315400013B080A2200104BFFFF7901020027FFFFF901C -S315400013C00100000080A6001206BFFFF6832E200211 -S315400013D0C205207C82006001C225207C7FFFFF92EF -S315400013E001000000C204C01082006001C224C01087 -S315400013F0DA04C01080A3600904BFFFDB111000802F -S31540001400108000049012205C111000809012205C25 -S31540001410921000157FFFFF9994100012832CA002B2 -S3154000142082004012A0004001DA05207C80A4000D15 -S3154000143002800004231001437FFFFF7190102003B8 -S31540001440C204607C80A060000480000601000000A9 -S31540001450C204607C80A400011680000580A560005F -S315400014607FFFFF679010200380A56000228000095F -S31540001470B010200091D0200010800006B01020004F -S315400014807FFFFF5F9010200110BFFFA59A05600106 -S3154000149081C7E00881E800009DE3BF98C20620109E -S315400014A0A01000188330601C80A0600002800009F4 -S315400014B0B0103FFF7FFFFF610100000080A22000C7 -S315400014C0128000040300003F821063FFC2242010F4 -S315400014D081C7E00881E800009DE3BF98C20620105E -S315400014E08330601CA400600180A4A00102800068D3 -S315400014F0B0103FFF7FFFFF5101000000AA10000817 -S31540001500912A20047FFFFF39900220077FFFFF5179 -S315400015100100000003020000808A0001028000589A -S315400015200100000011100080901220A092100015BA -S315400015307FFFFF5294100012031000808210601843 -S31540001540A12D6002C0204010DA004010A610000114 -S3154000155080A36009291001431480002BAC100001C0 -S315400015607FFFFF2C0100000080A2200012BFFFFD7C -S3154000157001000000B010200080A600121680001462 -S315400015800100000010800005A210001680A600127F -S315400015901680000F01000000832E2002D004401068 -S315400015A0D20440017FFFFF2EB006200180A2200119 -S315400015B004BFFFF7901020027FFFFF1101000000DB -S315400015C080A6001206BFFFF6832E2002C205207CAD -S315400015D082006001C225207C7FFFFF1301000000CE -S315400015E0C204C01082006001C224C010DA04C010D8 -S315400015F080A3600904BFFFDB111000801080000447 -S315400016009012205C111000809012205C9210001500 -S315400016107FFFFF1A94100012832CA0028200401212 -S31540001620A0004001DA05207C80A4000D0280000461 -S31540001630231001437FFFFEF290102003C204607C1A -S3154000164080A060000480000601000000C204607CA7 -S3154000165080A400011680000580A560007FFFFEE89B -S315400016609010200380A5600022800009B010200061 -S3154000167091D0200010800006B01020007FFFFEE0D1 -S315400016809010200110BFFFA91110008081C7E0080B -S3154000169081E800009DE3BF983120000092162200A9 -S315400016A09410200040003E599010200140003B62BB -S315400016B0901622009016230040003EBE921020084D -S315400016C0B016210040003A4F81E8000001000000BA -S315400016D09DE3BF9821200000921422009410200020 -S315400016E040003E4A9010200140003B539014220097 -S315400016F09210001840003EAF90142300B014210011 -S3154000170040003A4081E8000001000000000000006F -S315400017100000000000000000000000000000000083 -S315400017200000000000000000000000000000000073 -S315400017300000000000000000000000000000000063 -S315400017400000000000000000000000000000000053 -S315400017500000000000000000000000000000000043 -S315400017600000000000000000000000000000000033 -S315400017700000000000000000000000000000000023 -S315400017800000000000000000000000000000000013 -S315400017900000000000000000000000000000000003 -S315400017A000000000000000000000000000000000F3 -S315400017B000000000000000000000000000000000E3 -S315400017C000000000000000000000000000000000D3 -S315400017D000000000000000000000000000000000C3 -S315400017E000000000000000000000000000000000B3 -S315400017F000000000000000000000000000000000A3 -S315400018000000000000000000000000000000000092 -S315400018100000000000000000000000000000000082 -S315400018200000000000000000000000000000000072 -S315400018300000000000000000000000000000000062 -S315400018400000000000000000000000000000000052 -S315400018500000000000000000000000000000000042 -S315400018600000000000000000000000000000000032 -S315400018700000000000000000000000000000000022 -S315400018800000000000000000000000000000000012 -S315400018900000000000000000000000000000000002 -S315400018A000000000000000000000000000000000F2 -S315400018B000000000000000000000000000000000E2 -S315400018C000000000000000000000000000000000D2 -S315400018D000000000000000000000000000000000C2 -S315400018E000000000000000000000000000000000B2 -S315400018F000000000000000000000000000000000A2 -S315400019000000000000000000000000000000000091 -S315400019100000000000000000000000000000000081 -S315400019200000000000000000000000000000000071 -S315400019300000000000000000000000000000000061 -S315400019400000000000000000000000000000000051 -S315400019500000000000000000000000000000000041 -S315400019600000000000000000000000000000000031 -S315400019700000000000000000000000000000000021 -S315400019800000000000000000000000000000000011 -S315400019900000000000000000000000000000000001 -S315400019A000000000000000000000000000000000F1 -S315400019B000000000000000000000000000000000E1 -S315400019C000000000000000000000000000000000D1 -S315400019D000000000000000000000000000000000C1 -S315400019E000000000000000000000000000000000B1 -S315400019F000000000000000000000000000000000A1 -S31540001A000000000000000000000000000000000090 -S31540001A100000000000000000000000000000000080 -S31540001A200000000000000000000000000000000070 -S31540001A300000000000000000000000000000000060 -S31540001A400000000000000000000000000000000050 -S31540001A500000000000000000000000000000000040 -S31540001A600000000000000000000000000000000030 -S31540001A700000000000000000000000000000000020 -S31540001A800000000000000000000000000000000010 -S31540001A900000000000000000000000000000000000 -S31540001AA000000000000000000000000000000000F0 -S31540001AB000000000000000000000000000000000E0 -S31540001AC000000000000000000000000000000000D0 -S31540001AD000000000000000000000000000000000C0 -S31540001AE000000000000000000000000000000000B0 -S31540001AF000000000000000000000000000000000A0 -S31540001B00000000000000000000000000000000008F -S31540001B10000000000000000000000000000000007F -S31540001B20000000000000000000000000000000006F -S31540001B30000000000000000000000000000000005F -S31540001B40000000000000000000000000000000004F -S31540001B50000000000000000000000000000000003F -S31540001B60000000000000000000000000000000002F -S31540001B70000000000000000000000000000000001F -S31540001B80000000000000000000000000000000000F -S31540001B9000000000000000000000000000000000FF -S31540001BA000000000000000000000000000000000EF -S31540001BB000000000000000000000000000000000DF -S31540001BC000000000000000000000000000000000CF -S31540001BD000000000000000000000000000000000BF -S31540001BE000000000000000000000000000000000AF -S31540001BF0000000000000000000000000000000009F -S31540001C00000000000000000000000000000000008E -S31540001C10000000000000000000000000000000007E -S31540001C20000000000000000000000000000000006E -S31540001C30000000000000000000000000000000005E -S31540001C40000000000000000000000000000000004E -S31540001C50000000000000000000000000000000003E -S31540001C60000000000000000000000000000000002E -S31540001C70000000000000000000000000000000001E -S31540001C80000000000000000000000000000000000E -S31540001C9000000000000000000000000000000000FE -S31540001CA000000000000000000000000000000000EE -S31540001CB000000000000000000000000000000000DE -S31540001CC000000000000000000000000000000000CE -S31540001CD000000000000000000000000000000000BE -S31540001CE000000000000000000000000000000000AE -S31540001CF0000000000000000000000000000000009E -S31540001D00000000000000000000000000000000008D -S31540001D10000000000000000000000000000000007D -S31540001D20000000000000000000000000000000006D -S31540001D30000000000000000000000000000000005D -S31540001D40000000000000000000000000000000004D -S31540001D50000000000000000000000000000000003D -S31540001D60000000000000000000000000000000002D -S31540001D70000000000000000000000000000000001D -S31540001D80000000000000000000000000000000000D -S31540001D9000000000000000000000000000000000FD -S31540001DA000000000000000000000000000000000ED -S31540001DB000000000000000000000000000000000DD -S31540001DC000000000000000000000000000000000CD -S31540001DD000000000000000000000000000000000BD -S31540001DE000000000000000000000000000000000AD -S31540001DF0000000000000000000000000000000009D -S31540001E00000000000000000000000000000000008C -S31540001E10000000000000000000000000000000007C -S31540001E20000000000000000000000000000000006C -S31540001E30000000000000000000000000000000005C -S31540001E40000000000000000000000000000000004C -S31540001E50000000000000000000000000000000003C -S31540001E60000000000000000000000000000000002C -S31540001E70000000000000000000000000000000001C -S31540001E80000000000000000000000000000000000C -S31540001E9000000000000000000000000000000000FC -S31540001EA000000000000000000000000000000000EC -S31540001EB000000000000000000000000000000000DC -S31540001EC000000000000000000000000000000000CC -S31540001ED000000000000000000000000000000000BC -S31540001EE000000000000000000000000000000000AC -S31540001EF0000000000000000000000000000000009C -S31540001F00000000000000000000000000000000008B -S31540001F10000000000000000000000000000000007B -S31540001F20000000000000000000000000000000006B -S31540001F30000000000000000000000000000000005B -S31540001F40000000000000000000000000000000004B -S31540001F50000000000000000000000000000000003B -S31540001F60000000000000000000000000000000002B -S31540001F70000000000000000000000000000000001B -S31540001F80000000000000000000000000000000000B -S31540001F9000000000000000000000000000000000FB -S31540001FA000000000000000000000000000000000EB -S31540001FB000000000000000000000000000000000DB -S31540001FC000000000000000000000000000000000CB -S31540001FD000000000000000000000000000000000BB -S31540001FE000000000000000000000000000000000AB -S31540001FF0000000000000000000000000000000009B -S31540002000000000000000000000000000000000008A -S31540002010000000000000000000000000000000007A -S31540002020000000000000000000000000000000006A -S31540002030000000000000000000000000000000005A -S31540002040000000000000000000000000000000004A -S31540002050000000000000000000000000000000003A -S31540002060000000000000000000000000000000002A -S31540002070000000000000000000000000000000001A -S31540002080000000000000000000000000000000000A -S3154000209000000000000000000000000000000000FA -S315400020A000000000000000000000000000000000EA -S315400020B000000000000000000000000000000000DA -S315400020C000000000000000000000000000000000CA -S315400020D000000000000000000000000000000000BA -S315400020E000000000000000000000000000000000AA -S315400020F0000000000000000000000000000000009A -S315400021000000000000000000000000000000000089 -S315400021100000000000000000000000000000000079 -S315400021200000000000000000000000000000000069 -S315400021300000000000000000000000000000000059 -S315400021400000000000000000000000000000000049 -S315400021500000000000000000000000000000000039 -S315400021600000000000000000000000000000000029 -S315400021700000000000000000000000000000000019 -S315400021800000000000000000000000000000000009 -S3154000219000000000000000000000000000000000F9 -S315400021A000000000000000000000000000000000E9 -S315400021B000000000000000000000000000000000D9 -S315400021C000000000000000000000000000000000C9 -S315400021D000000000000000000000000000000000B9 -S315400021E000000000000000000000000000000000A9 -S315400021F00000000000000000000000000000000099 -S315400022000000000000000000000000000000000088 -S315400022100000000000000000000000000000000078 -S315400022200000000000000000000000000000000068 -S315400022300000000000000000000000000000000058 -S315400022400000000000000000000000000000000048 -S315400022500000000000000000000000000000000038 -S315400022600000000000000000000000000000000028 -S315400022700000000000000000000000000000000018 -S315400022800000000000000000000000000000000008 -S3154000229000000000000000000000000000000000F8 -S315400022A000000000000000000000000000000000E8 -S315400022B000000000000000000000000000000000D8 -S315400022C000000000000000000000000000000000C8 -S315400022D000000000000000000000000000000000B8 -S315400022E000000000000000000000000000000000A8 -S315400022F00000000000000000000000000000000098 -S315400023000000000000000000000000000000000087 -S315400023100000000000000000000000000000000077 -S315400023200000000000000000000000000000000067 -S315400023300000000000000000000000000000000057 -S315400023400000000000000000000000000000000047 -S315400023500000000000000000000000000000000037 -S315400023600000000000000000000000000000000027 -S315400023700000000000000000000000000000000017 -S315400023800000000000000000000000000000000007 -S3154000239000000000000000000000000000000000F7 -S315400023A000000000000000000000000000000000E7 -S315400023B000000000000000000000000000000000D7 -S315400023C000000000000000000000000000000000C7 -S315400023D000000000000000000000000000000000B7 -S315400023E000000000000000000000000000000000A7 -S315400023F00000000000000000000000000000000097 -S315400024000000000000000000000000000000000086 -S315400024100000000000000000000000000000000076 -S315400024200000000000000000000000000000000066 -S315400024300000000000000000000000000000000056 -S315400024400000000000000000000000000000000046 -S315400024500000000000000000000000000000000036 -S315400024600000000000000000000000000000000026 -S315400024700000000000000000000000000000000016 -S315400024800000000000000000000000000000000006 -S3154000249000000000000000000000000000000000F6 -S315400024A000000000000000000000000000000000E6 -S315400024B000000000000000000000000000000000D6 -S315400024C000000000000000000000000000000000C6 -S315400024D000000000000000000000000000000000B6 -S315400024E000000000000000000000000000000000A6 -S315400024F00000000000000000000000000000000096 -S315400025000000000000000000000000000000000085 -S315400025100000000000000000000000000000000075 -S315400025200000000000000000000000000000000065 -S315400025300000000000000000000000000000000055 -S315400025400000000000000000000000000000000045 -S315400025500000000000000000000000000000000035 -S315400025600000000000000000000000000000000025 -S315400025700000000000000000000000000000000015 -S315400025800000000000000000000000000000000005 -S3154000259000000000000000000000000000000000F5 -S315400025A000000000000000000000000000000000E5 -S315400025B000000000000000000000000000000000D5 -S315400025C000000000000000000000000000000000C5 -S315400025D000000000000000000000000000000000B5 -S315400025E000000000000000000000000000000000A5 -S315400025F00000000000000000000000000000000095 -S315400026000000000000000000000000000000000084 -S315400026100000000000000000000000000000000074 -S315400026200000000000000000000000000000000064 -S315400026300000000000000000000000000000000054 -S315400026400000000000000000000000000000000044 -S315400026500000000000000000000000000000000034 -S315400026600000000000000000000000000000000024 -S315400026700000000000000000000000000000000014 -S315400026800000000000000000000000000000000004 -S3154000269000000000000000000000000000000000F4 -S315400026A000000000000000000000000000000000E4 -S315400026B000000000000000000000000000000000D4 -S315400026C000000000000000000000000000000000C4 -S315400026D000000000000000000000000000000000B4 -S315400026E000000000000000000000000000000000A4 -S315400026F00000000000000000000000000000000094 -S315400027000000000000000000000000000000000083 -S315400027100000000000000000000000000000000073 -S315400027200000000000000000000000000000000063 -S315400027300000000000000000000000000000000053 -S315400027400000000000000000000000000000000043 -S315400027500000000000000000000000000000000033 -S315400027600000000000000000000000000000000023 -S315400027700000000000000000000000000000000013 -S315400027800000000000000000000000000000000003 -S3154000279000000000000000000000000000000000F3 -S315400027A000000000000000000000000000000000E3 -S315400027B000000000000000000000000000000000D3 -S315400027C000000000000000000000000000000000C3 -S315400027D000000000000000000000000000000000B3 -S315400027E000000000000000000000000000000000A3 -S315400027F00000000000000000000000000000000093 -S315400028000000000000000000000000000000000082 -S315400028100000000000000000000000000000000072 -S315400028200000000000000000000000000000000062 -S315400028300000000000000000000000000000000052 -S315400028400000000000000000000000000000000042 -S315400028500000000000000000000000000000000032 -S315400028600000000000000000000000000000000022 -S315400028700000000000000000000000000000000012 -S315400028800000000000000000000000000000000002 -S3154000289000000000000000000000000000000000F2 -S315400028A000000000000000000000000000000000E2 -S315400028B000000000000000000000000000000000D2 -S315400028C000000000000000000000000000000000C2 -S315400028D000000000000000000000000000000000B2 -S315400028E000000000000000000000000000000000A2 -S315400028F00000000000000000000000000000000092 -S315400029000000000000000000000000000000000081 -S315400029100000000000000000000000000000000071 -S315400029200000000000000000000000000000000061 -S315400029300000000000000000000000000000000051 -S315400029400000000000000000000000000000000041 -S315400029500000000000000000000000000000000031 -S315400029600000000000000000000000000000000021 -S315400029700000000000000000000000000000000011 -S315400029800000000000000000000000000000000001 -S3154000299000000000000000000000000000000000F1 -S315400029A000000000000000000000000000000000E1 -S315400029B000000000000000000000000000000000D1 -S315400029C000000000000000000000000000000000C1 -S315400029D000000000000000000000000000000000B1 -S315400029E000000000000000000000000000000000A1 -S315400029F00000000000000000000000000000000091 -S31540002A000000000000000000000000000000000080 -S31540002A100000000000000000000000000000000070 -S31540002A200000000000000000000000000000000060 -S31540002A300000000000000000000000000000000050 -S31540002A400000000000000000000000000000000040 -S31540002A500000000000000000000000000000000030 -S31540002A600000000000000000000000000000000020 -S31540002A700000000000000000000000000000000010 -S31540002A800000000000000000000000000000000000 -S31540002A9000000000000000000000000000000000F0 -S31540002AA000000000000000000000000000000000E0 -S31540002AB000000000000000000000000000000000D0 -S31540002AC000000000000000000000000000000000C0 -S31540002AD000000000000000000000000000000000B0 -S31540002AE000000000000000000000000000000000A0 -S31540002AF00000000000000000000000000000000090 -S31540002B00000000000000000000000000000000007F -S31540002B10000000000000000000000000000000006F -S31540002B20000000000000000000000000000000005F -S31540002B30000000000000000000000000000000004F -S31540002B40000000000000000000000000000000003F -S31540002B50000000000000000000000000000000002F -S31540002B60000000000000000000000000000000001F -S31540002B70000000000000000000000000000000000F -S31540002B8000000000000000000000000000000000FF -S31540002B9000000000000000000000000000000000EF -S31540002BA000000000000000000000000000000000DF -S31540002BB000000000000000000000000000000000CF -S31540002BC000000000000000000000000000000000BF -S31540002BD000000000000000000000000000000000AF -S31540002BE0000000000000000000000000000000009F -S31540002BF0000000000000000000000000000000008F -S31540002C00000000000000000000000000000000007E -S31540002C10000000000000000000000000000000006E -S31540002C20000000000000000000000000000000005E -S31540002C30000000000000000000000000000000004E -S31540002C40000000000000000000000000000000003E -S31540002C50000000000000000000000000000000002E -S31540002C60000000000000000000000000000000001E -S31540002C70000000000000000000000000000000000E -S31540002C8000000000000000000000000000000000FE -S31540002C9000000000000000000000000000000000EE -S31540002CA000000000000000000000000000000000DE -S31540002CB000000000000000000000000000000000CE -S31540002CC000000000000000000000000000000000BE -S31540002CD000000000000000000000000000000000AE -S31540002CE0000000000000000000000000000000009E -S31540002CF0000000000000000000000000000000008E -S31540002D00000000000000000000000000000000007D -S31540002D10000000000000000000000000000000006D -S31540002D20000000000000000000000000000000005D -S31540002D30000000000000000000000000000000004D -S31540002D40000000000000000000000000000000003D -S31540002D50000000000000000000000000000000002D -S31540002D60000000000000000000000000000000001D -S31540002D70000000000000000000000000000000000D -S31540002D8000000000000000000000000000000000FD -S31540002D9000000000000000000000000000000000ED -S31540002DA000000000000000000000000000000000DD -S31540002DB000000000000000000000000000000000CD -S31540002DC000000000000000000000000000000000BD -S31540002DD000000000000000000000000000000000AD -S31540002DE0000000000000000000000000000000009D -S31540002DF0000000000000000000000000000000008D -S31540002E00000000000000000000000000000000007C -S31540002E10000000000000000000000000000000006C -S31540002E20000000000000000000000000000000005C -S31540002E30000000000000000000000000000000004C -S31540002E40000000000000000000000000000000003C -S31540002E50000000000000000000000000000000002C -S31540002E60000000000000000000000000000000001C -S31540002E70000000000000000000000000000000000C -S31540002E8000000000000000000000000000000000FC -S31540002E9000000000000000000000000000000000EC -S31540002EA000000000000000000000000000000000DC -S31540002EB000000000000000000000000000000000CC -S31540002EC000000000000000000000000000000000BC -S31540002ED000000000000000000000000000000000AC -S31540002EE0000000000000000000000000000000009C -S31540002EF0000000000000000000000000000000008C -S31540002F00000000000000000000000000000000007B -S31540002F10000000000000000000000000000000006B -S31540002F20000000000000000000000000000000005B -S31540002F30000000000000000000000000000000004B -S31540002F40000000000000000000000000000000003B -S31540002F50000000000000000000000000000000002B -S31540002F60000000000000000000000000000000001B -S31540002F70000000000000000000000000000000000B -S31540002F8000000000000000000000000000000000FB -S31540002F9000000000000000000000000000000000EB -S31540002FA000000000000000000000000000000000DB -S31540002FB000000000000000000000000000000000CB -S31540002FC000000000000000000000000000000000BB -S31540002FD000000000000000000000000000000000AB -S31540002FE0000000000000000000000000000000009B -S31540002FF0000000000000000000000000000000008B -S31540003000000000000000000000000000000000007A -S31540003010000000000000000000000000000000006A -S31540003020000000000000000000000000000000005A -S31540003030000000000000000000000000000000004A -S31540003040000000000000000000000000000000003A -S31540003050000000000000000000000000000000002A -S31540003060000000000000000000000000000000001A -S31540003070000000000000000000000000000000000A -S3154000308000000000000000000000000000000000FA -S3154000309000000000000000000000000000000000EA -S315400030A000000000000000000000000000000000DA -S315400030B000000000000000000000000000000000CA -S315400030C000000000000000000000000000000000BA -S315400030D000000000000000000000000000000000AA -S315400030E0000000000000000000000000000000009A -S315400030F0000000000000000000000000000000008A -S315400031000000000000000000000000000000000079 -S315400031100000000000000000000000000000000069 -S315400031200000000000000000000000000000000059 -S315400031300000000000000000000000000000000049 -S315400031400000000000000000000000000000000039 -S315400031500000000000000000000000000000000029 -S315400031600000000000000000000000000000000019 -S315400031700000000000000000000000000000000009 -S3154000318000000000000000000000000000000000F9 -S3154000319000000000000000000000000000000000E9 -S315400031A000000000000000000000000000000000D9 -S315400031B000000000000000000000000000000000C9 -S315400031C000000000000000000000000000000000B9 -S315400031D000000000000000000000000000000000A9 -S315400031E00000000000000000000000000000000099 -S315400031F00000000000000000000000000000000089 -S315400032000000000000000000000000000000000078 -S315400032100000000000000000000000000000000068 -S315400032200000000000000000000000000000000058 -S315400032300000000000000000000000000000000048 -S315400032400000000000000000000000000000000038 -S315400032500000000000000000000000000000000028 -S315400032600000000000000000000000000000000018 -S315400032700000000000000000000000000000000008 -S3154000328000000000000000000000000000000000F8 -S3154000329000000000000000000000000000000000E8 -S315400032A000000000000000000000000000000000D8 -S315400032B000000000000000000000000000000000C8 -S315400032C000000000000000000000000000000000B8 -S315400032D000000000000000000000000000000000A8 -S315400032E00000000000000000000000000000000098 -S315400032F00000000000000000000000000000000088 -S315400033000000000000000000000000000000000077 -S315400033100000000000000000000000000000000067 -S315400033200000000000000000000000000000000057 -S315400033300000000000000000000000000000000047 -S315400033400000000000000000000000000000000037 -S315400033500000000000000000000000000000000027 -S315400033600000000000000000000000000000000017 -S315400033700000000000000000000000000000000007 -S3154000338000000000000000000000000000000000F7 -S3154000339000000000000000000000000000000000E7 -S315400033A000000000000000000000000000000000D7 -S315400033B000000000000000000000000000000000C7 -S315400033C000000000000000000000000000000000B7 -S315400033D000000000000000000000000000000000A7 -S315400033E00000000000000000000000000000000097 -S315400033F00000000000000000000000000000000087 -S315400034000000000000000000000000000000000076 -S315400034100000000000000000000000000000000066 -S315400034200000000000000000000000000000000056 -S315400034300000000000000000000000000000000046 -S315400034400000000000000000000000000000000036 -S315400034500000000000000000000000000000000026 -S315400034600000000000000000000000000000000016 -S315400034700000000000000000000000000000000006 -S3154000348000000000000000000000000000000000F6 -S3154000349000000000000000000000000000000000E6 -S315400034A000000000000000000000000000000000D6 -S315400034B000000000000000000000000000000000C6 -S315400034C000000000000000000000000000000000B6 -S315400034D000000000000000000000000000000000A6 -S315400034E00000000000000000000000000000000096 -S315400034F00000000000000000000000000000000086 -S315400035000000000000000000000000000000000075 -S315400035100000000000000000000000000000000065 -S315400035200000000000000000000000000000000055 -S315400035300000000000000000000000000000000045 -S315400035400000000000000000000000000000000035 -S315400035500000000000000000000000000000000025 -S315400035600000000000000000000000000000000015 -S315400035700000000000000000000000000000000005 -S3154000358000000000000000000000000000000000F5 -S3154000359000000000000000000000000000000000E5 -S315400035A000000000000000000000000000000000D5 -S315400035B000000000000000000000000000000000C5 -S315400035C000000000000000000000000000000000B5 -S315400035D000000000000000000000000000000000A5 -S315400035E00000000000000000000000000000000095 -S315400035F00000000000000000000000000000000085 -S315400036000000000000000000000000000000000074 -S315400036100000000000000000000000000000000064 -S315400036200000000000000000000000000000000054 -S315400036300000000000000000000000000000000044 -S315400036400000000000000000000000000000000034 -S315400036500000000000000000000000000000000024 -S315400036600000000000000000000000000000000014 -S315400036700000000000000000000000000000000004 -S3154000368000000000000000000000000000000000F4 -S3154000369000000000000000000000000000000000E4 -S315400036A000000000000000000000000000000000D4 -S315400036B000000000000000000000000000000000C4 -S315400036C000000000000000000000000000000000B4 -S315400036D000000000000000000000000000000000A4 -S315400036E00000000000000000000000000000000094 -S315400036F00000000000000000000000000000000084 -S315400037000000000000000000000000000000000073 -S315400037100000000000000000000000000000000063 -S315400037200000000000000000000000000000000053 -S315400037300000000000000000000000000000000043 -S315400037400000000000000000000000000000000033 -S315400037500000000000000000000000000000000023 -S315400037600000000000000000000000000000000013 -S315400037700000000000000000000000000000000003 -S3154000378000000000000000000000000000000000F3 -S3154000379000000000000000000000000000000000E3 -S315400037A000000000000000000000000000000000D3 -S315400037B000000000000000000000000000000000C3 -S315400037C000000000000000000000000000000000B3 -S315400037D000000000000000000000000000000000A3 -S315400037E00000000000000000000000000000000093 -S315400037F00000000000000000000000000000000083 -S315400038000000000000000000000000000000000072 -S315400038100000000000000000000000000000000062 -S315400038200000000000000000000000000000000052 -S315400038300000000000000000000000000000000042 -S315400038400000000000000000000000000000000032 -S315400038500000000000000000000000000000000022 -S315400038600000000000000000000000000000000012 -S315400038700000000000000000000000000000000002 -S3154000388000000000000000000000000000000000F2 -S3154000389000000000000000000000000000000000E2 -S315400038A000000000000000000000000000000000D2 -S315400038B000000000000000000000000000000000C2 -S315400038C000000000000000000000000000000000B2 -S315400038D000000000000000000000000000000000A2 -S315400038E00000000000000000000000000000000092 -S315400038F00000000000000000000000000000000082 -S315400039000000000000000000000000000000000071 -S315400039100000000000000000000000000000000061 -S315400039200000000000000000000000000000000051 -S315400039300000000000000000000000000000000041 -S315400039400000000000000000000000000000000031 -S315400039500000000000000000000000000000000021 -S315400039600000000000000000000000000000000011 -S315400039700000000000000000000000000000000001 -S3154000398000000000000000000000000000000000F1 -S3154000399000000000000000000000000000000000E1 -S315400039A000000000000000000000000000000000D1 -S315400039B000000000000000000000000000000000C1 -S315400039C000000000000000000000000000000000B1 -S315400039D000000000000000000000000000000000A1 -S315400039E00000000000000000000000000000000091 -S315400039F00000000000000000000000000000000081 -S31540003A000000000000000000000000000000000070 -S31540003A100000000000000000000000000000000060 -S31540003A200000000000000000000000000000000050 -S31540003A300000000000000000000000000000000040 -S31540003A400000000000000000000000000000000030 -S31540003A500000000000000000000000000000000020 -S31540003A600000000000000000000000000000000010 -S31540003A700000000000000000000000000000000000 -S31540003A8000000000000000000000000000000000F0 -S31540003A9000000000000000000000000000000000E0 -S31540003AA000000000000000000000000000000000D0 -S31540003AB000000000000000000000000000000000C0 -S31540003AC000000000000000000000000000000000B0 -S31540003AD000000000000000000000000000000000A0 -S31540003AE00000000000000000000000000000000090 -S31540003AF00000000000000000000000000000000080 -S31540003B00000000000000000000000000000000006F -S31540003B10000000000000000000000000000000005F -S31540003B20000000000000000000000000000000004F -S31540003B30000000000000000000000000000000003F -S31540003B40000000000000000000000000000000002F -S31540003B50000000000000000000000000000000001F -S31540003B60000000000000000000000000000000000F -S31540003B7000000000000000000000000000000000FF -S31540003B8000000000000000000000000000000000EF -S31540003B9000000000000000000000000000000000DF -S31540003BA000000000000000000000000000000000CF -S31540003BB000000000000000000000000000000000BF -S31540003BC000000000000000000000000000000000AF -S31540003BD0000000000000000000000000000000009F -S31540003BE0000000000000000000000000000000008F -S31540003BF0000000000000000000000000000000007F -S31540003C00000000000000000000000000000000006E -S31540003C10000000000000000000000000000000005E -S31540003C20000000000000000000000000000000004E -S31540003C30000000000000000000000000000000003E -S31540003C40000000000000000000000000000000002E -S31540003C50000000000000000000000000000000001E -S31540003C60000000000000000000000000000000000E -S31540003C7000000000000000000000000000000000FE -S31540003C8000000000000000000000000000000000EE -S31540003C9000000000000000000000000000000000DE -S31540003CA000000000000000000000000000000000CE -S31540003CB000000000000000000000000000000000BE -S31540003CC000000000000000000000000000000000AE -S31540003CD0000000000000000000000000000000009E -S31540003CE0000000000000000000000000000000008E -S31540003CF0000000000000000000000000000000007E -S31540003D00000000000000000000000000000000006D -S31540003D10000000000000000000000000000000005D -S31540003D20000000000000000000000000000000004D -S31540003D30000000000000000000000000000000003D -S31540003D40000000000000000000000000000000002D -S31540003D50000000000000000000000000000000001D -S31540003D60000000000000000000000000000000000D -S31540003D7000000000000000000000000000000000FD -S31540003D8000000000000000000000000000000000ED -S31540003D9000000000000000000000000000000000DD -S31540003DA000000000000000000000000000000000CD -S31540003DB000000000000000000000000000000000BD -S31540003DC000000000000000000000000000000000AD -S31540003DD0000000000000000000000000000000009D -S31540003DE0000000000000000000000000000000008D -S31540003DF0000000000000000000000000000000007D -S31540003E00000000000000000000000000000000006C -S31540003E10000000000000000000000000000000005C -S31540003E20000000000000000000000000000000004C -S31540003E30000000000000000000000000000000003C -S31540003E40000000000000000000000000000000002C -S31540003E50000000000000000000000000000000001C -S31540003E60000000000000000000000000000000000C -S31540003E7000000000000000000000000000000000FC -S31540003E8000000000000000000000000000000000EC -S31540003E9000000000000000000000000000000000DC -S31540003EA000000000000000000000000000000000CC -S31540003EB000000000000000000000000000000000BC -S31540003EC000000000000000000000000000000000AC -S31540003ED0000000000000000000000000000000009C -S31540003EE0000000000000000000000000000000008C -S31540003EF0000000000000000000000000000000007C -S31540003F00000000000000000000000000000000006B -S31540003F10000000000000000000000000000000005B -S31540003F20000000000000000000000000000000004B -S31540003F30000000000000000000000000000000003B -S31540003F40000000000000000000000000000000002B -S31540003F50000000000000000000000000000000001B -S31540003F60000000000000000000000000000000000B -S31540003F7000000000000000000000000000000000FB -S31540003F8000000000000000000000000000000000EB -S31540003F9000000000000000000000000000000000DB -S31540003FA000000000000000000000000000000000CB -S31540003FB000000000000000000000000000000000BB -S31540003FC000000000000000000000000000000000AB -S31540003FD0000000000000000000000000000000009B -S31540003FE0000000000000000000000000000000008B -S31540003FF0000000000000000000000000000000007B -S31540004000000000000000000000000000000000006A -S31540004010000000000000000000000000000000005A -S31540004020000000000000000000000000000000004A -S31540004030000000000000000000000000000000003A -S31540004040000000000000000000000000000000002A -S31540004050000000000000000000000000000000001A -S31540004060000000000000000000000000000000000A -S3154000407000000000000000000000000000000000FA -S3154000408000000000000000000000000000000000EA -S3154000409000000000000000000000000000000000DA -S315400040A000000000000000000000000000000000CA -S315400040B000000000000000000000000000000000BA -S315400040C000000000000000000000000000000000AA -S315400040D0000000000000000000000000000000009A -S315400040E0000000000000000000000000000000008A -S315400040F0000000000000000000000000000000007A -S315400041000000000000000000000000000000000069 -S315400041100000000000000000000000000000000059 -S315400041200000000000000000000000000000000049 -S315400041300000000000000000000000000000000039 -S315400041400000000000000000000000000000000029 -S315400041500000000000000000000000000000000019 -S315400041600000000000000000000000000000000009 -S3154000417000000000000000000000000000000000F9 -S3154000418000000000000000000000000000000000E9 -S3154000419000000000000000000000000000000000D9 -S315400041A000000000000000000000000000000000C9 -S315400041B000000000000000000000000000000000B9 -S315400041C000000000000000000000000000000000A9 -S315400041D00000000000000000000000000000000099 -S315400041E00000000000000000000000000000000089 -S315400041F00000000000000000000000000000000079 -S315400042000000000000000000000000000000000068 -S315400042100000000000000000000000000000000058 -S315400042200000000000000000000000000000000048 -S315400042300000000000000000000000000000000038 -S315400042400000000000000000000000000000000028 -S315400042500000000000000000000000000000000018 -S315400042600000000000000000000000000000000008 -S3154000427000000000000000000000000000000000F8 -S3154000428000000000000000000000000000000000E8 -S3154000429000000000000000000000000000000000D8 -S315400042A000000000000000000000000000000000C8 -S315400042B000000000000000000000000000000000B8 -S315400042C000000000000000000000000000000000A8 -S315400042D00000000000000000000000000000000098 -S315400042E00000000000000000000000000000000088 -S315400042F00000000000000000000000000000000078 -S315400043000000000000000000000000000000000067 -S315400043100000000000000000000000000000000057 -S315400043200000000000000000000000000000000047 -S315400043300000000000000000000000000000000037 -S315400043400000000000000000000000000000000027 -S315400043500000000000000000000000000000000017 -S315400043600000000000000000000000000000000007 -S3154000437000000000000000000000000000000000F7 -S3154000438000000000000000000000000000000000E7 -S3154000439000000000000000000000000000000000D7 -S315400043A000000000000000000000000000000000C7 -S315400043B000000000000000000000000000000000B7 -S315400043C000000000000000000000000000000000A7 -S315400043D00000000000000000000000000000000097 -S315400043E00000000000000000000000000000000087 -S315400043F00000000000000000000000000000000077 -S315400044000000000000000000000000000000000066 -S315400044100000000000000000000000000000000056 -S315400044200000000000000000000000000000000046 -S315400044300000000000000000000000000000000036 -S315400044400000000000000000000000000000000026 -S315400044500000000000000000000000000000000016 -S315400044600000000000000000000000000000000006 -S3154000447000000000000000000000000000000000F6 -S3154000448000000000000000000000000000000000E6 -S3154000449000000000000000000000000000000000D6 -S315400044A000000000000000000000000000000000C6 -S315400044B000000000000000000000000000000000B6 -S315400044C000000000000000000000000000000000A6 -S315400044D00000000000000000000000000000000096 -S315400044E00000000000000000000000000000000086 -S315400044F00000000000000000000000000000000076 -S315400045000000000000000000000000000000000065 -S315400045100000000000000000000000000000000055 -S315400045200000000000000000000000000000000045 -S315400045300000000000000000000000000000000035 -S315400045400000000000000000000000000000000025 -S315400045500000000000000000000000000000000015 -S315400045600000000000000000000000000000000005 -S3154000457000000000000000000000000000000000F5 -S3154000458000000000000000000000000000000000E5 -S3154000459000000000000000000000000000000000D5 -S315400045A000000000000000000000000000000000C5 -S315400045B000000000000000000000000000000000B5 -S315400045C000000000000000000000000000000000A5 -S315400045D00000000000000000000000000000000095 -S315400045E00000000000000000000000000000000085 -S315400045F00000000000000000000000000000000075 -S315400046000000000000000000000000000000000064 -S315400046100000000000000000000000000000000054 -S315400046200000000000000000000000000000000044 -S315400046300000000000000000000000000000000034 -S315400046400000000000000000000000000000000024 -S315400046500000000000000000000000000000000014 -S315400046600000000000000000000000000000000004 -S3154000467000000000000000000000000000000000F4 -S3154000468000000000000000000000000000000000E4 -S3154000469000000000000000000000000000000000D4 -S315400046A000000000000000000000000000000000C4 -S315400046B000000000000000000000000000000000B4 -S315400046C000000000000000000000000000000000A4 -S315400046D00000000000000000000000000000000094 -S315400046E00000000000000000000000000000000084 -S315400046F00000000000000000000000000000000074 -S315400047000000000000000000000000000000000063 -S315400047100000000000000000000000000000000053 -S315400047200000000000000000000000000000000043 -S315400047300000000000000000000000000000000033 -S315400047400000000000000000000000000000000023 -S315400047500000000000000000000000000000000013 -S315400047600000000000000000000000000000000003 -S3154000477000000000000000000000000000000000F3 -S3154000478000000000000000000000000000000000E3 -S3154000479000000000000000000000000000000000D3 -S315400047A000000000000000000000000000000000C3 -S315400047B000000000000000000000000000000000B3 -S315400047C000000000000000000000000000000000A3 -S315400047D00000000000000000000000000000000093 -S315400047E00000000000000000000000000000000083 -S315400047F00000000000000000000000000000000073 -S315400048000000000000000000000000000000000062 -S315400048100000000000000000000000000000000052 -S315400048200000000000000000000000000000000042 -S315400048300000000000000000000000000000000032 -S315400048400000000000000000000000000000000022 -S315400048500000000000000000000000000000000012 -S315400048600000000000000000000000000000000002 -S3154000487000000000000000000000000000000000F2 -S3154000488000000000000000000000000000000000E2 -S3154000489000000000000000000000000000000000D2 -S315400048A000000000000000000000000000000000C2 -S315400048B000000000000000000000000000000000B2 -S315400048C000000000000000000000000000000000A2 -S315400048D00000000000000000000000000000000092 -S315400048E00000000000000000000000000000000082 -S315400048F00000000000000000000000000000000072 -S315400049000000000000000000000000000000000061 -S315400049100000000000000000000000000000000051 -S315400049200000000000000000000000000000000041 -S315400049300000000000000000000000000000000031 -S315400049400000000000000000000000000000000021 -S315400049500000000000000000000000000000000011 -S315400049600000000000000000000000000000000001 -S3154000497000000000000000000000000000000000F1 -S3154000498000000000000000000000000000000000E1 -S3154000499000000000000000000000000000000000D1 -S315400049A000000000000000000000000000000000C1 -S315400049B000000000000000000000000000000000B1 -S315400049C000000000000000000000000000000000A1 -S315400049D00000000000000000000000000000000091 -S315400049E00000000000000000000000000000000081 -S315400049F00000000000000000000000000000000071 -S31540004A000000000000000000000000000000000060 -S31540004A100000000000000000000000000000000050 -S31540004A200000000000000000000000000000000040 -S31540004A300000000000000000000000000000000030 -S31540004A400000000000000000000000000000000020 -S31540004A500000000000000000000000000000000010 -S31540004A600000000000000000000000000000000000 -S31540004A7000000000000000000000000000000000F0 -S31540004A8000000000000000000000000000000000E0 -S31540004A9000000000000000000000000000000000D0 -S31540004AA000000000000000000000000000000000C0 -S31540004AB000000000000000000000000000000000B0 -S31540004AC000000000000000000000000000000000A0 -S31540004AD00000000000000000000000000000000090 -S31540004AE00000000000000000000000000000000080 -S31540004AF00000000000000000000000000000000070 -S31540004B00000000000000000000000000000000005F -S31540004B10000000000000000000000000000000004F -S31540004B20000000000000000000000000000000003F -S31540004B30000000000000000000000000000000002F -S31540004B40000000000000000000000000000000001F -S31540004B50000000000000000000000000000000000F -S31540004B6000000000000000000000000000000000FF -S31540004B7000000000000000000000000000000000EF -S31540004B8000000000000000000000000000000000DF -S31540004B9000000000000000000000000000000000CF -S31540004BA000000000000000000000000000000000BF -S31540004BB000000000000000000000000000000000AF -S31540004BC0000000000000000000000000000000009F -S31540004BD0000000000000000000000000000000008F -S31540004BE0000000000000000000000000000000007F -S31540004BF0000000000000000000000000000000006F -S31540004C00000000000000000000000000000000005E -S31540004C10000000000000000000000000000000004E -S31540004C20000000000000000000000000000000003E -S31540004C30000000000000000000000000000000002E -S31540004C40000000000000000000000000000000001E -S31540004C50000000000000000000000000000000000E -S31540004C6000000000000000000000000000000000FE -S31540004C7000000000000000000000000000000000EE -S31540004C8000000000000000000000000000000000DE -S31540004C9000000000000000000000000000000000CE -S31540004CA000000000000000000000000000000000BE -S31540004CB000000000000000000000000000000000AE -S31540004CC0000000000000000000000000000000009E -S31540004CD0000000000000000000000000000000008E -S31540004CE0000000000000000000000000000000007E -S31540004CF0000000000000000000000000000000006E -S31540004D00000000000000000000000000000000005D -S31540004D10000000000000000000000000000000004D -S31540004D20000000000000000000000000000000003D -S31540004D30000000000000000000000000000000002D -S31540004D40000000000000000000000000000000001D -S31540004D50000000000000000000000000000000000D -S31540004D6000000000000000000000000000000000FD -S31540004D7000000000000000000000000000000000ED -S31540004D8000000000000000000000000000000000DD -S31540004D9000000000000000000000000000000000CD -S31540004DA000000000000000000000000000000000BD -S31540004DB000000000000000000000000000000000AD -S31540004DC0000000000000000000000000000000009D -S31540004DD0000000000000000000000000000000008D -S31540004DE0000000000000000000000000000000007D -S31540004DF0000000000000000000000000000000006D -S31540004E00000000000000000000000000000000005C -S31540004E10000000000000000000000000000000004C -S31540004E20000000000000000000000000000000003C -S31540004E30000000000000000000000000000000002C -S31540004E40000000000000000000000000000000001C -S31540004E50000000000000000000000000000000000C -S31540004E6000000000000000000000000000000000FC -S31540004E7000000000000000000000000000000000EC -S31540004E8000000000000000000000000000000000DC -S31540004E9000000000000000000000000000000000CC -S31540004EA000000000000000000000000000000000BC -S31540004EB000000000000000000000000000000000AC -S31540004EC0000000000000000000000000000000009C -S31540004ED0000000000000000000000000000000008C -S31540004EE0000000000000000000000000000000007C -S31540004EF0000000000000000000000000000000006C -S31540004F00000000000000000000000000000000005B -S31540004F10000000000000000000000000000000004B -S31540004F20000000000000000000000000000000003B -S31540004F30000000000000000000000000000000002B -S31540004F40000000000000000000000000000000001B -S31540004F50000000000000000000000000000000000B -S31540004F6000000000000000000000000000000000FB -S31540004F7000000000000000000000000000000000EB -S31540004F8000000000000000000000000000000000DB -S31540004F9000000000000000000000000000000000CB -S31540004FA000000000000000000000000000000000BB -S31540004FB000000000000000000000000000000000AB -S31540004FC0000000000000000000000000000000009B -S31540004FD0000000000000000000000000000000008B -S31540004FE0000000000000000000000000000000007B -S31540004FF0000000000000000000000000000000006B -S31540005000000000000000000000000000000000005A -S31540005010000000000000000000000000000000004A -S31540005020000000000000000000000000000000003A -S31540005030000000000000000000000000000000002A -S31540005040000000000000000000000000000000001A -S31540005050000000000000000000000000000000000A -S3154000506000000000000000000000000000000000FA -S3154000507000000000000000000000000000000000EA -S3154000508000000000000000000000000000000000DA -S3154000509000000000000000000000000000000000CA -S315400050A000000000000000000000000000000000BA -S315400050B000000000000000000000000000000000AA -S315400050C0000000000000000000000000000000009A -S315400050D0000000000000000000000000000000008A -S315400050E0000000000000000000000000000000007A -S315400050F0000000000000000000000000000000006A -S315400051000000000000000000000000000000000059 -S315400051100000000000000000000000000000000049 -S315400051200000000000000000000000000000000039 -S315400051300000000000000000000000000000000029 -S315400051400000000000000000000000000000000019 -S315400051500000000000000000000000000000000009 -S3154000516000000000000000000000000000000000F9 -S3154000517000000000000000000000000000000000E9 -S3154000518000000000000000000000000000000000D9 -S3154000519000000000000000000000000000000000C9 -S315400051A000000000000000000000000000000000B9 -S315400051B000000000000000000000000000000000A9 -S315400051C00000000000000000000000000000000099 -S315400051D00000000000000000000000000000000089 -S315400051E00000000000000000000000000000000079 -S315400051F00000000000000000000000000000000069 -S315400052000000000000000000000000000000000058 -S315400052100000000000000000000000000000000048 -S315400052200000000000000000000000000000000038 -S315400052300000000000000000000000000000000028 -S315400052400000000000000000000000000000000018 -S315400052500000000000000000000000000000000008 -S3154000526000000000000000000000000000000000F8 -S3154000527000000000000000000000000000000000E8 -S3154000528000000000000000000000000000000000D8 -S3154000529000000000000000000000000000000000C8 -S315400052A000000000000000000000000000000000B8 -S315400052B000000000000000000000000000000000A8 -S315400052C00000000000000000000000000000000098 -S315400052D00000000000000000000000000000000088 -S315400052E00000000000000000000000000000000078 -S315400052F00000000000000000000000000000000068 -S315400053000000000000000000000000000000000057 -S315400053100000000000000000000000000000000047 -S315400053200000000000000000000000000000000037 -S315400053300000000000000000000000000000000027 -S315400053400000000000000000000000000000000017 -S315400053500000000000000000000000000000000007 -S3154000536000000000000000000000000000000000F7 -S3154000537000000000000000000000000000000000E7 -S3154000538000000000000000000000000000000000D7 -S3154000539000000000000000000000000000000000C7 -S315400053A000000000000000000000000000000000B7 -S315400053B000000000000000000000000000000000A7 -S315400053C00000000000000000000000000000000097 -S315400053D00000000000000000000000000000000087 -S315400053E00000000000000000000000000000000077 -S315400053F00000000000000000000000000000000067 -S315400054000000000000000000000000000000000056 -S315400054100000000000000000000000000000000046 -S315400054200000000000000000000000000000000036 -S315400054300000000000000000000000000000000026 -S315400054400000000000000000000000000000000016 -S315400054500000000000000000000000000000000006 -S3154000546000000000000000000000000000000000F6 -S3154000547000000000000000000000000000000000E6 -S3154000548000000000000000000000000000000000D6 -S3154000549000000000000000000000000000000000C6 -S315400054A000000000000000000000000000000000B6 -S315400054B000000000000000000000000000000000A6 -S315400054C00000000000000000000000000000000096 -S315400054D00000000000000000000000000000000086 -S315400054E00000000000000000000000000000000076 -S315400054F00000000000000000000000000000000066 -S315400055000000000000000000000000000000000055 -S315400055100000000000000000000000000000000045 -S315400055200000000000000000000000000000000035 -S315400055300000000000000000000000000000000025 -S315400055400000000000000000000000000000000015 -S315400055500000000000000000000000000000000005 -S3154000556000000000000000000000000000000000F5 -S3154000557000000000000000000000000000000000E5 -S3154000558000000000000000000000000000000000D5 -S3154000559000000000000000000000000000000000C5 -S315400055A000000000000000000000000000000000B5 -S315400055B000000000000000000000000000000000A5 -S315400055C00000000000000000000000000000000095 -S315400055D00000000000000000000000000000000085 -S315400055E00000000000000000000000000000000075 -S315400055F00000000000000000000000000000000065 -S315400056000000000000000000000000000000000054 -S315400056100000000000000000000000000000000044 -S315400056200000000000000000000000000000000034 -S315400056300000000000000000000000000000000024 -S315400056400000000000000000000000000000000014 -S315400056500000000000000000000000000000000004 -S3154000566000000000000000000000000000000000F4 -S3154000567000000000000000000000000000000000E4 -S3154000568000000000000000000000000000000000D4 -S3154000569000000000000000000000000000000000C4 -S315400056A000000000000000000000000000000000B4 -S315400056B000000000000000000000000000000000A4 -S315400056C00000000000000000000000000000000094 -S315400056D00000000000000000000000000000000084 -S315400056E00000000000000000000000000000000074 -S315400056F00000000000000000000000000000000064 -S315400057000000000000000000000000000000000053 -S315400057100000000000000000000000000000000043 -S315400057200000000000000000000000000000000033 -S315400057300000000000000000000000000000000023 -S315400057400000000000000000000000000000000013 -S315400057500000000000000000000000000000000003 -S3154000576000000000000000000000000000000000F3 -S3154000577000000000000000000000000000000000E3 -S3154000578000000000000000000000000000000000D3 -S3154000579000000000000000000000000000000000C3 -S315400057A000000000000000000000000000000000B3 -S315400057B000000000000000000000000000000000A3 -S315400057C00000000000000000000000000000000093 -S315400057D00000000000000000000000000000000083 -S315400057E00000000000000000000000000000000073 -S315400057F00000000000000000000000000000000063 -S315400058000000000000000000000000000000000052 -S315400058100000000000000000000000000000000042 -S315400058200000000000000000000000000000000032 -S315400058300000000000000000000000000000000022 -S315400058400000000000000000000000000000000012 -S315400058500000000000000000000000000000000002 -S3154000586000000000000000000000000000000000F2 -S3154000587000000000000000000000000000000000E2 -S3154000588000000000000000000000000000000000D2 -S3154000589000000000000000000000000000000000C2 -S315400058A000000000000000000000000000000000B2 -S315400058B000000000000000000000000000000000A2 -S315400058C00000000000000000000000000000000092 -S315400058D00000000000000000000000000000000082 -S315400058E00000000000000000000000000000000072 -S315400058F00000000000000000000000000000000062 -S315400059000000000000000000000000000000000051 -S315400059100000000000000000000000000000000041 -S315400059200000000000000000000000000000000031 -S315400059300000000000000000000000000000000021 -S315400059400000000000000000000000000000000011 -S315400059500000000000000000000000000000000001 -S3154000596000000000000000000000000000000000F1 -S3154000597000000000000000000000000000000000E1 -S3154000598000000000000000000000000000000000D1 -S3154000599000000000000000000000000000000000C1 -S315400059A000000000000000000000000000000000B1 -S315400059B000000000000000000000000000000000A1 -S315400059C00000000000000000000000000000000091 -S315400059D00000000000000000000000000000000081 -S315400059E00000000000000000000000000000000071 -S315400059F00000000000000000000000000000000061 -S31540005A000000000000000000000000000000000050 -S31540005A100000000000000000000000000000000040 -S31540005A200000000000000000000000000000000030 -S31540005A300000000000000000000000000000000020 -S31540005A400000000000000000000000000000000010 -S31540005A500000000000000000000000000000000000 -S31540005A6000000000000000000000000000000000F0 -S31540005A7000000000000000000000000000000000E0 -S31540005A8000000000000000000000000000000000D0 -S31540005A9000000000000000000000000000000000C0 -S31540005AA000000000000000000000000000000000B0 -S31540005AB000000000000000000000000000000000A0 -S31540005AC00000000000000000000000000000000090 -S31540005AD00000000000000000000000000000000080 -S31540005AE00000000000000000000000000000000070 -S31540005AF00000000000000000000000000000000060 -S31540005B00000000000000000000000000000000004F -S31540005B10000000000000000000000000000000003F -S31540005B20000000000000000000000000000000002F -S31540005B30000000000000000000000000000000001F -S31540005B40000000000000000000000000000000000F -S31540005B5000000000000000000000000000000000FF -S31540005B6000000000000000000000000000000000EF -S31540005B7000000000000000000000000000000000DF -S31540005B8000000000000000000000000000000000CF -S31540005B9000000000000000000000000000000000BF -S31540005BA000000000000000000000000000000000AF -S31540005BB0000000000000000000000000000000009F -S31540005BC0000000000000000000000000000000008F -S31540005BD0000000000000000000000000000000007F -S31540005BE0000000000000000000000000000000006F -S31540005BF0000000000000000000000000000000005F -S31540005C00000000000000000000000000000000004E -S31540005C10000000000000000000000000000000003E -S31540005C20000000000000000000000000000000002E -S31540005C30000000000000000000000000000000001E -S31540005C40000000000000000000000000000000000E -S31540005C5000000000000000000000000000000000FE -S31540005C6000000000000000000000000000000000EE -S31540005C7000000000000000000000000000000000DE -S31540005C8000000000000000000000000000000000CE -S31540005C9000000000000000000000000000000000BE -S31540005CA000000000000000000000000000000000AE -S31540005CB0000000000000000000000000000000009E -S31540005CC0000000000000000000000000000000008E -S31540005CD0000000000000000000000000000000007E -S31540005CE0000000000000000000000000000000006E -S31540005CF0000000000000000000000000000000005E -S31540005D00000000000000000000000000000000004D -S31540005D10000000000000000000000000000000003D -S31540005D20000000000000000000000000000000002D -S31540005D30000000000000000000000000000000001D -S31540005D40000000000000000000000000000000000D -S31540005D5000000000000000000000000000000000FD -S31540005D6000000000000000000000000000000000ED -S31540005D7000000000000000000000000000000000DD -S31540005D8000000000000000000000000000000000CD -S31540005D9000000000000000000000000000000000BD -S31540005DA000000000000000000000000000000000AD -S31540005DB0000000000000000000000000000000009D -S31540005DC0000000000000000000000000000000008D -S31540005DD0000000000000000000000000000000007D -S31540005DE0000000000000000000000000000000006D -S31540005DF0000000000000000000000000000000005D -S31540005E00000000000000000000000000000000004C -S31540005E10000000000000000000000000000000003C -S31540005E20000000000000000000000000000000002C -S31540005E30000000000000000000000000000000001C -S31540005E40000000000000000000000000000000000C -S31540005E5000000000000000000000000000000000FC -S31540005E6000000000000000000000000000000000EC -S31540005E7000000000000000000000000000000000DC -S31540005E8000000000000000000000000000000000CC -S31540005E9000000000000000000000000000000000BC -S31540005EA000000000000000000000000000000000AC -S31540005EB0000000000000000000000000000000009C -S31540005EC0000000000000000000000000000000008C -S31540005ED0000000000000000000000000000000007C -S31540005EE0000000000000000000000000000000006C -S31540005EF0000000000000000000000000000000005C -S31540005F00000000000000000000000000000000004B -S31540005F10000000000000000000000000000000003B -S31540005F20000000000000000000000000000000002B -S31540005F30000000000000000000000000000000001B -S31540005F40000000000000000000000000000000000B -S31540005F5000000000000000000000000000000000FB -S31540005F6000000000000000000000000000000000EB -S31540005F7000000000000000000000000000000000DB -S31540005F8000000000000000000000000000000000CB -S31540005F9000000000000000000000000000000000BB -S31540005FA000000000000000000000000000000000AB -S31540005FB0000000000000000000000000000000009B -S31540005FC0000000000000000000000000000000008B -S31540005FD0000000000000000000000000000000007B -S31540005FE0000000000000000000000000000000006B -S31540005FF0000000000000000000000000000000005B -S31540006000000000000000000000000000000000004A -S31540006010000000000000000000000000000000003A -S31540006020000000000000000000000000000000002A -S31540006030000000000000000000000000000000001A -S31540006040000000000000000000000000000000000A -S3154000605000000000000000000000000000000000FA -S3154000606000000000000000000000000000000000EA -S3154000607000000000000000000000000000000000DA -S3154000608000000000000000000000000000000000CA -S3154000609000000000000000000000000000000000BA -S315400060A000000000000000000000000000000000AA -S315400060B0000000000000000000000000000000009A -S315400060C0000000000000000000000000000000008A -S315400060D0000000000000000000000000000000007A -S315400060E0000000000000000000000000000000006A -S315400060F0000000000000000000000000000000005A -S315400061000000000000000000000000000000000049 -S315400061100000000000000000000000000000000039 -S315400061200000000000000000000000000000000029 -S315400061300000000000000000000000000000000019 -S315400061400000000000000000000000000000000009 -S3154000615000000000000000000000000000000000F9 -S3154000616000000000000000000000000000000000E9 -S3154000617000000000000000000000000000000000D9 -S3154000618000000000000000000000000000000000C9 -S3154000619000000000000000000000000000000000B9 -S315400061A000000000000000000000000000000000A9 -S315400061B00000000000000000000000000000000099 -S315400061C00000000000000000000000000000000089 -S315400061D00000000000000000000000000000000079 -S315400061E00000000000000000000000000000000069 -S315400061F00000000000000000000000000000000059 -S315400062000000000000000000000000000000000048 -S315400062100000000000000000000000000000000038 -S315400062200000000000000000000000000000000028 -S315400062300000000000000000000000000000000018 -S315400062400000000000000000000000000000000008 -S3154000625000000000000000000000000000000000F8 -S3154000626000000000000000000000000000000000E8 -S3154000627000000000000000000000000000000000D8 -S3154000628000000000000000000000000000000000C8 -S3154000629000000000000000000000000000000000B8 -S315400062A000000000000000000000000000000000A8 -S315400062B00000000000000000000000000000000098 -S315400062C00000000000000000000000000000000088 -S315400062D00000000000000000000000000000000078 -S315400062E00000000000000000000000000000000068 -S315400062F00000000000000000000000000000000058 -S315400063000000000000000000000000000000000047 -S315400063100000000000000000000000000000000037 -S315400063200000000000000000000000000000000027 -S315400063300000000000000000000000000000000017 -S315400063400000000000000000000000000000000007 -S3154000635000000000000000000000000000000000F7 -S3154000636000000000000000000000000000000000E7 -S3154000637000000000000000000000000000000000D7 -S3154000638000000000000000000000000000000000C7 -S3154000639000000000000000000000000000000000B7 -S315400063A000000000000000000000000000000000A7 -S315400063B00000000000000000000000000000000097 -S315400063C00000000000000000000000000000000087 -S315400063D00000000000000000000000000000000077 -S315400063E00000000000000000000000000000000067 -S315400063F00000000000000000000000000000000057 -S315400064000000000000000000000000000000000046 -S315400064100000000000000000000000000000000036 -S315400064200000000000000000000000000000000026 -S315400064300000000000000000000000000000000016 -S315400064400000000000000000000000000000000006 -S3154000645000000000000000000000000000000000F6 -S3154000646000000000000000000000000000000000E6 -S3154000647000000000000000000000000000000000D6 -S3154000648000000000000000000000000000000000C6 -S3154000649000000000000000000000000000000000B6 -S315400064A000000000000000000000000000000000A6 -S315400064B00000000000000000000000000000000096 -S315400064C00000000000000000000000000000000086 -S315400064D00000000000000000000000000000000076 -S315400064E00000000000000000000000000000000066 -S315400064F00000000000000000000000000000000056 -S315400065000000000000000000000000000000000045 -S315400065100000000000000000000000000000000035 -S315400065200000000000000000000000000000000025 -S315400065300000000000000000000000000000000015 -S315400065400000000000000000000000000000000005 -S3154000655000000000000000000000000000000000F5 -S3154000656000000000000000000000000000000000E5 -S3154000657000000000000000000000000000000000D5 -S3154000658000000000000000000000000000000000C5 -S3154000659000000000000000000000000000000000B5 -S315400065A000000000000000000000000000000000A5 -S315400065B00000000000000000000000000000000095 -S315400065C00000000000000000000000000000000085 -S315400065D00000000000000000000000000000000075 -S315400065E00000000000000000000000000000000065 -S315400065F00000000000000000000000000000000055 -S315400066000000000000000000000000000000000044 -S315400066100000000000000000000000000000000034 -S315400066200000000000000000000000000000000024 -S315400066300000000000000000000000000000000014 -S315400066400000000000000000000000000000000004 -S3154000665000000000000000000000000000000000F4 -S3154000666000000000000000000000000000000000E4 -S3154000667000000000000000000000000000000000D4 -S3154000668000000000000000000000000000000000C4 -S3154000669000000000000000000000000000000000B4 -S315400066A000000000000000000000000000000000A4 -S315400066B00000000000000000000000000000000094 -S315400066C00000000000000000000000000000000084 -S315400066D00000000000000000000000000000000074 -S315400066E00000000000000000000000000000000064 -S315400066F00000000000000000000000000000000054 -S315400067000000000000000000000000000000000043 -S315400067100000000000000000000000000000000033 -S315400067200000000000000000000000000000000023 -S315400067300000000000000000000000000000000013 -S315400067400000000000000000000000000000000003 -S3154000675000000000000000000000000000000000F3 -S3154000676000000000000000000000000000000000E3 -S3154000677000000000000000000000000000000000D3 -S3154000678000000000000000000000000000000000C3 -S3154000679000000000000000000000000000000000B3 -S315400067A000000000000000000000000000000000A3 -S315400067B00000000000000000000000000000000093 -S315400067C00000000000000000000000000000000083 -S315400067D00000000000000000000000000000000073 -S315400067E00000000000000000000000000000000063 -S315400067F00000000000000000000000000000000053 -S315400068000000000000000000000000000000000042 -S315400068100000000000000000000000000000000032 -S315400068200000000000000000000000000000000022 -S315400068300000000000000000000000000000000012 -S315400068400000000000000000000000000000000002 -S3154000685000000000000000000000000000000000F2 -S3154000686000000000000000000000000000000000E2 -S3154000687000000000000000000000000000000000D2 -S3154000688000000000000000000000000000000000C2 -S3154000689000000000000000000000000000000000B2 -S315400068A000000000000000000000000000000000A2 -S315400068B00000000000000000000000000000000092 -S315400068C00000000000000000000000000000000082 -S315400068D00000000000000000000000000000000072 -S315400068E00000000000000000000000000000000062 -S315400068F00000000000000000000000000000000052 -S315400069000000000000000000000000000000000041 -S315400069100000000000000000000000000000000031 -S315400069200000000000000000000000000000000021 -S315400069300000000000000000000000000000000011 -S315400069400000000000000000000000000000000001 -S3154000695000000000000000000000000000000000F1 -S3154000696000000000000000000000000000000000E1 -S3154000697000000000000000000000000000000000D1 -S3154000698000000000000000000000000000000000C1 -S3154000699000000000000000000000000000000000B1 -S315400069A000000000000000000000000000000000A1 -S315400069B00000000000000000000000000000000091 -S315400069C00000000000000000000000000000000081 -S315400069D00000000000000000000000000000000071 -S315400069E00000000000000000000000000000000061 -S315400069F00000000000000000000000000000000051 -S31540006A000000000000000000000000000000000040 -S31540006A100000000000000000000000000000000030 -S31540006A200000000000000000000000000000000020 -S31540006A300000000000000000000000000000000010 -S31540006A400000000000000000000000000000000000 -S31540006A5000000000000000000000000000000000F0 -S31540006A6000000000000000000000000000000000E0 -S31540006A7000000000000000000000000000000000D0 -S31540006A8000000000000000000000000000000000C0 -S31540006A9000000000000000000000000000000000B0 -S31540006AA000000000000000000000000000000000A0 -S31540006AB00000000000000000000000000000000090 -S31540006AC00000000000000000000000000000000080 -S31540006AD00000000000000000000000000000000070 -S31540006AE00000000000000000000000000000000060 -S31540006AF00000000000000000000000000000000050 -S31540006B00000000000000000000000000000000003F -S31540006B10000000000000000000000000000000002F -S31540006B20000000000000000000000000000000001F -S31540006B30000000000000000000000000000000000F -S31540006B4000000000000000000000000000000000FF -S31540006B5000000000000000000000000000000000EF -S31540006B6000000000000000000000000000000000DF -S31540006B7000000000000000000000000000000000CF -S31540006B8000000000000000000000000000000000BF -S31540006B9000000000000000000000000000000000AF -S31540006BA0000000000000000000000000000000009F -S31540006BB0000000000000000000000000000000008F -S31540006BC0000000000000000000000000000000007F -S31540006BD0000000000000000000000000000000006F -S31540006BE0000000000000000000000000000000005F -S31540006BF0000000000000000000000000000000004F -S31540006C00000000000000000000000000000000003E -S31540006C10000000000000000000000000000000002E -S31540006C20000000000000000000000000000000001E -S31540006C30000000000000000000000000000000000E -S31540006C4000000000000000000000000000000000FE -S31540006C5000000000000000000000000000000000EE -S31540006C6000000000000000000000000000000000DE -S31540006C7000000000000000000000000000000000CE -S31540006C8000000000000000000000000000000000BE -S31540006C9000000000000000000000000000000000AE -S31540006CA0000000000000000000000000000000009E -S31540006CB0000000000000000000000000000000008E -S31540006CC0000000000000000000000000000000007E -S31540006CD0000000000000000000000000000000006E -S31540006CE0000000000000000000000000000000005E -S31540006CF0000000000000000000000000000000004E -S31540006D00000000000000000000000000000000003D -S31540006D10000000000000000000000000000000002D -S31540006D20000000000000000000000000000000001D -S31540006D30000000000000000000000000000000000D -S31540006D4000000000000000000000000000000000FD -S31540006D5000000000000000000000000000000000ED -S31540006D6000000000000000000000000000000000DD -S31540006D7000000000000000000000000000000000CD -S31540006D8000000000000000000000000000000000BD -S31540006D9000000000000000000000000000000000AD -S31540006DA0000000000000000000000000000000009D -S31540006DB0000000000000000000000000000000008D -S31540006DC0000000000000000000000000000000007D -S31540006DD0000000000000000000000000000000006D -S31540006DE0000000000000000000000000000000005D -S31540006DF0000000000000000000000000000000004D -S31540006E00000000000000000000000000000000003C -S31540006E10000000000000000000000000000000002C -S31540006E20000000000000000000000000000000001C -S31540006E30000000000000000000000000000000000C -S31540006E4000000000000000000000000000000000FC -S31540006E5000000000000000000000000000000000EC -S31540006E6000000000000000000000000000000000DC -S31540006E7000000000000000000000000000000000CC -S31540006E8000000000000000000000000000000000BC -S31540006E9000000000000000000000000000000000AC -S31540006EA0000000000000000000000000000000009C -S31540006EB0000000000000000000000000000000008C -S31540006EC0000000000000000000000000000000007C -S31540006ED0000000000000000000000000000000006C -S31540006EE0000000000000000000000000000000005C -S31540006EF0000000000000000000000000000000004C -S31540006F00000000000000000000000000000000003B -S31540006F10000000000000000000000000000000002B -S31540006F20000000000000000000000000000000001B -S31540006F30000000000000000000000000000000000B -S31540006F4000000000000000000000000000000000FB -S31540006F5000000000000000000000000000000000EB -S31540006F6000000000000000000000000000000000DB -S31540006F7000000000000000000000000000000000CB -S31540006F8000000000000000000000000000000000BB -S31540006F9000000000000000000000000000000000AB -S31540006FA0000000000000000000000000000000009B -S31540006FB0000000000000000000000000000000008B -S31540006FC0000000000000000000000000000000007B -S31540006FD0000000000000000000000000000000006B -S31540006FE0000000000000000000000000000000005B -S31540006FF0000000000000000000000000000000004B -S31540007000000000000000000000000000000000003A -S31540007010000000000000000000000000000000002A -S31540007020000000000000000000000000000000001A -S31540007030000000000000000000000000000000000A -S3154000704000000000000000000000000000000000FA -S3154000705000000000000000000000000000000000EA -S3154000706000000000000000000000000000000000DA -S3154000707000000000000000000000000000000000CA -S3154000708000000000000000000000000000000000BA -S3154000709000000000000000000000000000000000AA -S315400070A0000000000000000000000000000000009A -S315400070B0000000000000000000000000000000008A -S315400070C0000000000000000000000000000000007A -S315400070D0000000000000000000000000000000006A -S315400070E0000000000000000000000000000000005A -S315400070F0000000000000000000000000000000004A -S315400071000000000000000000000000000000000039 -S315400071100000000000000000000000000000000029 -S315400071200000000000000000000000000000000019 -S315400071300000000000000000000000000000000009 -S3154000714000000000000000000000000000000000F9 -S3154000715000000000000000000000000000000000E9 -S3154000716000000000000000000000000000000000D9 -S3154000717000000000000000000000000000000000C9 -S3154000718000000000000000000000000000000000B9 -S3154000719000000000000000000000000000000000A9 -S315400071A00000000000000000000000000000000099 -S315400071B00000000000000000000000000000000089 -S315400071C00000000000000000000000000000000079 -S315400071D00000000000000000000000000000000069 -S315400071E00000000000000000000000000000000059 -S315400071F00000000000000000000000000000000049 -S315400072000000000000000000000000000000000038 -S315400072100000000000000000000000000000000028 -S315400072200000000000000000000000000000000018 -S315400072300000000000000000000000000000000008 -S3154000724000000000000000000000000000000000F8 -S3154000725000000000000000000000000000000000E8 -S3154000726000000000000000000000000000000000D8 -S3154000727000000000000000000000000000000000C8 -S3154000728000000000000000000000000000000000B8 -S3154000729000000000000000000000000000000000A8 -S315400072A00000000000000000000000000000000098 -S315400072B00000000000000000000000000000000088 -S315400072C00000000000000000000000000000000078 -S315400072D00000000000000000000000000000000068 -S315400072E00000000000000000000000000000000058 -S315400072F00000000000000000000000000000000048 -S315400073000000000000000000000000000000000037 -S315400073100000000000000000000000000000000027 -S315400073200000000000000000000000000000000017 -S315400073300000000000000000000000000000000007 -S3154000734000000000000000000000000000000000F7 -S3154000735000000000000000000000000000000000E7 -S3154000736000000000000000000000000000000000D7 -S3154000737000000000000000000000000000000000C7 -S3154000738000000000000000000000000000000000B7 -S3154000739000000000000000000000000000000000A7 -S315400073A00000000000000000000000000000000097 -S315400073B00000000000000000000000000000000087 -S315400073C00000000000000000000000000000000077 -S315400073D00000000000000000000000000000000067 -S315400073E00000000000000000000000000000000057 -S315400073F00000000000000000000000000000000047 -S315400074000000000000000000000000000000000036 -S315400074100000000000000000000000000000000026 -S315400074200000000000000000000000000000000016 -S315400074300000000000000000000000000000000006 -S3154000744000000000000000000000000000000000F6 -S3154000745000000000000000000000000000000000E6 -S3154000746000000000000000000000000000000000D6 -S3154000747000000000000000000000000000000000C6 -S3154000748000000000000000000000000000000000B6 -S3154000749000000000000000000000000000000000A6 -S315400074A00000000000000000000000000000000096 -S315400074B00000000000000000000000000000000086 -S315400074C00000000000000000000000000000000076 -S315400074D00000000000000000000000000000000066 -S315400074E00000000000000000000000000000000056 -S315400074F00000000000000000000000000000000046 -S315400075000000000000000000000000000000000035 -S315400075100000000000000000000000000000000025 -S315400075200000000000000000000000000000000015 -S315400075300000000000000000000000000000000005 -S3154000754000000000000000000000000000000000F5 -S3154000755000000000000000000000000000000000E5 -S3154000756000000000000000000000000000000000D5 -S3154000757000000000000000000000000000000000C5 -S3154000758000000000000000000000000000000000B5 -S3154000759000000000000000000000000000000000A5 -S315400075A00000000000000000000000000000000095 -S315400075B00000000000000000000000000000000085 -S315400075C00000000000000000000000000000000075 -S315400075D00000000000000000000000000000000065 -S315400075E00000000000000000000000000000000055 -S315400075F00000000000000000000000000000000045 -S315400076000000000000000000000000000000000034 -S315400076100000000000000000000000000000000024 -S315400076200000000000000000000000000000000014 -S315400076300000000000000000000000000000000004 -S3154000764000000000000000000000000000000000F4 -S3154000765000000000000000000000000000000000E4 -S3154000766000000000000000000000000000000000D4 -S3154000767000000000000000000000000000000000C4 -S3154000768000000000000000000000000000000000B4 -S3154000769000000000000000000000000000000000A4 -S315400076A00000000000000000000000000000000094 -S315400076B00000000000000000000000000000000084 -S315400076C00000000000000000000000000000000074 -S315400076D00000000000000000000000000000000064 -S315400076E00000000000000000000000000000000054 -S315400076F00000000000000000000000000000000044 -S315400077000000000000000000000000000000000033 -S315400077100000000000000000000000000000000023 -S315400077200000000000000000000000000000000013 -S315400077300000000000000000000000000000000003 -S3154000774000000000000000000000000000000000F3 -S3154000775000000000000000000000000000000000E3 -S3154000776000000000000000000000000000000000D3 -S3154000777000000000000000000000000000000000C3 -S3154000778000000000000000000000000000000000B3 -S3154000779000000000000000000000000000000000A3 -S315400077A00000000000000000000000000000000093 -S315400077B00000000000000000000000000000000083 -S315400077C00000000000000000000000000000000073 -S315400077D00000000000000000000000000000000063 -S315400077E00000000000000000000000000000000053 -S315400077F00000000000000000000000000000000043 -S315400078000000000000000000000000000000000032 -S315400078100000000000000000000000000000000022 -S315400078200000000000000000000000000000000012 -S315400078300000000000000000000000000000000002 -S3154000784000000000000000000000000000000000F2 -S3154000785000000000000000000000000000000000E2 -S3154000786000000000000000000000000000000000D2 -S3154000787000000000000000000000000000000000C2 -S3154000788000000000000000000000000000000000B2 -S3154000789000000000000000000000000000000000A2 -S315400078A00000000000000000000000000000000092 -S315400078B00000000000000000000000000000000082 -S315400078C00000000000000000000000000000000072 -S315400078D00000000000000000000000000000000062 -S315400078E00000000000000000000000000000000052 -S315400078F00000000000000000000000000000000042 -S315400079000000000000000000000000000000000031 -S315400079100000000000000000000000000000000021 -S315400079200000000000000000000000000000000011 -S315400079300000000000000000000000000000000001 -S3154000794000000000000000000000000000000000F1 -S3154000795000000000000000000000000000000000E1 -S3154000796000000000000000000000000000000000D1 -S3154000797000000000000000000000000000000000C1 -S3154000798000000000000000000000000000000000B1 -S3154000799000000000000000000000000000000000A1 -S315400079A00000000000000000000000000000000091 -S315400079B00000000000000000000000000000000081 -S315400079C00000000000000000000000000000000071 -S315400079D00000000000000000000000000000000061 -S315400079E00000000000000000000000000000000051 -S315400079F00000000000000000000000000000000041 -S31540007A000000000000000000000000000000000030 -S31540007A100000000000000000000000000000000020 -S31540007A200000000000000000000000000000000010 -S31540007A300000000000000000000000000000000000 -S31540007A4000000000000000000000000000000000F0 -S31540007A5000000000000000000000000000000000E0 -S31540007A6000000000000000000000000000000000D0 -S31540007A7000000000000000000000000000000000C0 -S31540007A8000000000000000000000000000000000B0 -S31540007A9000000000000000000000000000000000A0 -S31540007AA00000000000000000000000000000000090 -S31540007AB00000000000000000000000000000000080 -S31540007AC00000000000000000000000000000000070 -S31540007AD00000000000000000000000000000000060 -S31540007AE00000000000000000000000000000000050 -S31540007AF00000000000000000000000000000000040 -S31540007B00000000000000000000000000000000002F -S31540007B10000000000000000000000000000000001F -S31540007B20000000000000000000000000000000000F -S31540007B3000000000000000000000000000000000FF -S31540007B4000000000000000000000000000000000EF -S31540007B5000000000000000000000000000000000DF -S31540007B6000000000000000000000000000000000CF -S31540007B7000000000000000000000000000000000BF -S31540007B8000000000000000000000000000000000AF -S31540007B90000000000000000000000000000000009F -S31540007BA0000000000000000000000000000000008F -S31540007BB0000000000000000000000000000000007F -S31540007BC0000000000000000000000000000000006F -S31540007BD0000000000000000000000000000000005F -S31540007BE0000000000000000000000000000000004F -S31540007BF0000000000000000000000000000000003F -S31540007C00000000000000000000000000000000002E -S31540007C10000000000000000000000000000000001E -S31540007C20000000000000000000000000000000000E -S31540007C3000000000000000000000000000000000FE -S31540007C4000000000000000000000000000000000EE -S31540007C5000000000000000000000000000000000DE -S31540007C6000000000000000000000000000000000CE -S31540007C7000000000000000000000000000000000BE -S31540007C8000000000000000000000000000000000AE -S31540007C90000000000000000000000000000000009E -S31540007CA0000000000000000000000000000000008E -S31540007CB0000000000000000000000000000000007E -S31540007CC0000000000000000000000000000000006E -S31540007CD0000000000000000000000000000000005E -S31540007CE0000000000000000000000000000000004E -S31540007CF0000000000000000000000000000000003E -S31540007D00000000000000000000000000000000002D -S31540007D10000000000000000000000000000000001D -S31540007D20000000000000000000000000000000000D -S31540007D3000000000000000000000000000000000FD -S31540007D4000000000000000000000000000000000ED -S31540007D5000000000000000000000000000000000DD -S31540007D6000000000000000000000000000000000CD -S31540007D7000000000000000000000000000000000BD -S31540007D8000000000000000000000000000000000AD -S31540007D90000000000000000000000000000000009D -S31540007DA0000000000000000000000000000000008D -S31540007DB0000000000000000000000000000000007D -S31540007DC0000000000000000000000000000000006D -S31540007DD0000000000000000000000000000000005D -S31540007DE0000000000000000000000000000000004D -S31540007DF0000000000000000000000000000000003D -S31540007E00000000000000000000000000000000002C -S31540007E10000000000000000000000000000000001C -S31540007E20000000000000000000000000000000000C -S31540007E3000000000000000000000000000000000FC -S31540007E4000000000000000000000000000000000EC -S31540007E5000000000000000000000000000000000DC -S31540007E6000000000000000000000000000000000CC -S31540007E7000000000000000000000000000000000BC -S31540007E8000000000000000000000000000000000AC -S31540007E90000000000000000000000000000000009C -S31540007EA0000000000000000000000000000000008C -S31540007EB0000000000000000000000000000000007C -S31540007EC0000000000000000000000000000000006C -S31540007ED0000000000000000000000000000000005C -S31540007EE0000000000000000000000000000000004C -S31540007EF0000000000000000000000000000000003C -S31540007F00000000000000000000000000000000002B -S31540007F10000000000000000000000000000000001B -S31540007F20000000000000000000000000000000000B -S31540007F3000000000000000000000000000000000FB -S31540007F4000000000000000000000000000000000EB -S31540007F5000000000000000000000000000000000DB -S31540007F6000000000000000000000000000000000CB -S31540007F7000000000000000000000000000000000BB -S31540007F8000000000000000000000000000000000AB -S31540007F90000000000000000000000000000000009B -S31540007FA0000000000000000000000000000000008B -S31540007FB0000000000000000000000000000000007B -S31540007FC0000000000000000000000000000000006B -S31540007FD0000000000000000000000000000000005B -S31540007FE0000000000000000000000000000000004B -S31540007FF0000000000000000000000000000000003B -S315400080009DE3BF9081C7E00881E8000003000010AF -S31540008010C48000408088800112BFFFFE010000003E -S315400080209DE3BF909DE3BF909DE3BF909DE3BF90CE -S315400080309DE3BF909DE3BF9021044444A0142111C9 -S3154000804023088888A2146222250CCCCCA414A3331E -S3154000805027111111A614E04429155555A815215587 -S315400080602B199999AA1562662D1DDDDDAC15A377EE -S315400080702F222222AE15E08801100000E03FBFE02B -S31540008080E43FBFE8E83FBFF0EC3FBFF88210001E78 -S315400080908220601CC0A041E082206008C0A041E070 -S315400080A082206008C0A041E082206008C0A041E074 -S315400080B0C0A002209DE3BF909DE3BF9081E80000F1 -S315400080C081E800000100000001000000E01FBFE061 -S315400080D0E41FBFE8E81FBFF0EC1FBFF80100000037 -S315400080E00100000081E8000081E8000081E800000E -S315400080F081E8000081E8000081C7E00881E80000CF -S31540008100A7500000AA102400A8102300EC854320A5 -S31540008110EA8503202F100020AE15E150EE05C00081 -S31540008120E805C000EA05E004EC05E008AC15A0004F -S31540008130C0A58300EA250000AE05E00C2B10002008 -S31540008140AA156150EE25400081C4400081CC8000D4 -S3154000815000000000010000000000000000000000D8 -S3154000816000000000000000000000000000000000C9 -S3154000817000000000000000000000000000000000B9 -S3154000818000000000000000000000000000000000A9 -S315400081900000000001000000010000000100000096 -S315400081A00100000001000000010000000100000085 -S315400081B00100000001000000010000000100000075 -S315400081C00100000001000000010000000100000065 -S315400081D00100000001000000010000000100000055 -S315400081E00100000001000000010000000100000045 -S315400081F00100000001000000010000000100000035 -S315400082000100000001000000010000000100000024 -S315400082100100000001000000010000000100000014 -S315400082200100000001000000010000000100000004 -S3154000823001000000010000000100000001000000F4 -S3154000824001000000010000000100000001000000E4 -S3154000825001000000010000000100000001000000D4 -S3154000826001000000010000000100000001000000C4 -S3154000827001000000010000000100000001000000B4 -S3154000828001000000010000000100000001000000A4 -S315400082900100000001000000010000000100000094 -S315400082A00100000001000000010000000100000084 -S315400082B00100000001000000010000000100000074 -S315400082C00100000001000000010000000100000064 -S315400082D00100000001000000010000000100000054 -S315400082E00100000001000000010000000100000044 -S315400082F00100000001000000010000000100000034 -S315400083000100000001000000010000000100000023 -S315400083100100000001000000010000000100000013 -S315400083200100000001000000010000000100000003 -S3154000833001000000010000000100000001000000F3 -S3154000834001000000010000000100000001000000E3 -S3154000835001000000010000000100000001000000D3 -S3154000836001000000010000000100000001000000C3 -S3154000837001000000010000000100000001000000B3 -S3154000838001000000010000000100000001000000A3 -S315400083900100000001000000010000000100000093 -S315400083A00100000001000000010000000100000083 -S315400083B00100000001000000010000000100000073 -S315400083C00100000001000000010000000100000063 -S315400083D00100000001000000010000000100000053 -S315400083E00100000001000000010000000100000043 -S315400083F00100000001000000010000000100000033 -S315400084000100000001000000010000000100000022 -S315400084100100000001000000010000000100000012 -S315400084200100000001000000010000000100000002 -S3154000843001000000010000000100000001000000F2 -S3154000844001000000010000000100000001000000E2 -S3154000845001000000010000000100000001000000D2 -S3154000846001000000010000000100000001000000C2 -S3154000847001000000010000000100000001000000B2 -S3154000848001000000010000000100000001000000A2 -S315400084900100000001000000010000000100000092 -S315400084A00100000001000000010000000100000082 -S315400084B00100000001000000010000000100000072 -S315400084C00100000001000000010000000100000062 -S315400084D00100000001000000010000000100000052 -S315400084E00100000001000000010000000100000042 -S315400084F00100000001000000010000000100000032 -S315400085000100000001000000010000000100000021 -S315400085100100000001000000010000000100000011 -S315400085200100000001000000010000000100000001 -S3154000853001000000010000000100000001000000F1 -S3154000854001000000010000000100000001000000E1 -S3154000855001000000010000000100000001000000D1 -S3154000856001000000010000000100000001000000C1 -S3154000857001000000010000000100000001000000B1 -S3154000858001000000010000000100000001000000A1 -S315400085900100000001000000010000000100000091 -S315400085A00100000001000000010000000100000081 -S315400085B00100000001000000010000000100000071 -S315400085C00100000001000000010000000100000061 -S315400085D00100000001000000010000000100000051 -S315400085E00100000001000000010000000100000041 -S315400085F00100000001000000010000000100000031 -S315400086000100000001000000010000000100000020 -S315400086100100000001000000010000000100000010 -S315400086200100000001000000010000000100000000 -S3154000863001000000010000000100000001000000F0 -S3154000864001000000010000000100000001000000E0 -S3154000865001000000010000000100000001000000D0 -S3154000866001000000010000000100000001000000C0 -S3154000867001000000010000000100000001000000B0 -S3154000868001000000010000000100000001000000A0 -S315400086900100000001000000010000000100000090 -S315400086A00100000001000000010000000100000080 -S315400086B00100000001000000010000000100000070 -S315400086C00100000001000000010000000100000060 -S315400086D00100000001000000010000000100000050 -S315400086E00100000001000000010000000100000040 -S315400086F00100000001000000010000000100000030 -S31540008700010000000100000001000000010000001F -S31540008710010000000100000001000000010000000F -S3154000872001000000010000000100000001000000FF -S3154000873001000000010000000100000001000000EF -S3154000874001000000010000000100000001000000DF -S3154000875001000000010000000100000001000000CF -S3154000876001000000010000000100000001000000BF -S3154000877001000000010000000100000001000000AF -S31540008780010000000100000001000000010000009F -S31540008790010000000100000001000000010000008F -S315400087A0010000000100000001000000010000007F -S315400087B0010000000100000001000000010000006F -S315400087C0010000000100000001000000010000005F -S315400087D0010000000100000001000000010000004F -S315400087E0010000000100000001000000010000003F -S315400087F0010000000100000001000000010000002F -S31540008800010000000100000001000000010000001E -S31540008810010000000100000001000000010000000E -S3154000882001000000010000000100000001000000FE -S3154000883001000000010000000100000001000000EE -S3154000884001000000010000000100000001000000DE -S3154000885001000000010000000100000001000000CE -S3154000886001000000010000000100000001000000BE -S3154000887001000000010000000100000001000000AE -S31540008880010000000100000001000000010000009E -S31540008890010000000100000001000000010000008E -S315400088A0010000000100000001000000010000007E -S315400088B0010000000100000001000000010000006E -S315400088C0010000000100000001000000010000005E -S315400088D0010000000100000001000000010000004E -S315400088E0010000000100000001000000010000003E -S315400088F0010000000100000001000000010000002E -S31540008900010000000100000001000000010000001D -S31540008910010000000100000001000000010000000D -S3154000892001000000010000000100000001000000FD -S3154000893001000000010000000100000001000000ED -S3154000894001000000010000000100000001000000DD -S3154000895001000000010000000100000001000000CD -S3154000896001000000010000000100000001000000BD -S3154000897001000000010000000100000001000000AD -S31540008980010000000100000001000000010000009D -S31540008990010000000100000001000000010000008D -S315400089A0010000000100000001000000010000007D -S315400089B0010000000100000001000000010000006D -S315400089C0010000000100000001000000010000005D -S315400089D0010000000100000001000000010000004D -S315400089E0010000000100000001000000010000003D -S315400089F0010000000100000001000000010000002D -S31540008A00010000000100000001000000010000001C -S31540008A10010000000100000001000000010000000C -S31540008A2001000000010000000100000001000000FC -S31540008A3001000000010000000100000001000000EC -S31540008A4001000000010000000100000001000000DC -S31540008A5001000000010000000100000001000000CC -S31540008A6001000000010000000100000001000000BC -S31540008A7001000000010000000100000001000000AC -S31540008A80010000000100000001000000010000009C -S31540008A90010000000100000001000000010000008C -S31540008AA0010000000100000001000000010000007C -S31540008AB0010000000100000001000000010000006C -S31540008AC0010000000100000001000000010000005C -S31540008AD0010000000100000001000000010000004C -S31540008AE0010000000100000001000000010000003C -S31540008AF0010000000100000001000000010000002C -S31540008B00010000000100000001000000010000001B -S31540008B10010000000100000001000000010000000B -S31540008B2001000000010000000100000001000000FB -S31540008B3001000000010000000100000001000000EB -S31540008B4001000000010000000100000001000000DB -S31540008B5001000000010000000100000001000000CB -S31540008B6001000000010000000100000001000000BB -S31540008B7001000000010000000100000001000000AB -S31540008B80010000000100000001000000010000009B -S31540008B90010000000100000001000000010000008B -S31540008BA0010000000100000001000000010000007B -S31540008BB0010000000100000001000000010000006B -S31540008BC0010000000100000001000000010000005B -S31540008BD0010000000100000001000000010000004B -S31540008BE0010000000100000001000000010000003B -S31540008BF0010000000100000001000000010000002B -S31540008C00010000000100000001000000010000001A -S31540008C10010000000100000001000000010000000A -S31540008C2001000000010000000100000001000000FA -S31540008C3001000000010000000100000001000000EA -S31540008C4001000000010000000100000001000000DA -S31540008C5001000000010000000100000001000000CA -S31540008C6001000000010000000100000001000000BA -S31540008C7001000000010000000100000001000000AA -S31540008C80010000000100000001000000010000009A -S31540008C90010000000100000001000000010000008A -S31540008CA0010000000100000001000000010000007A -S31540008CB0010000000100000001000000010000006A -S31540008CC0010000000100000001000000010000005A -S31540008CD0010000000100000001000000010000004A -S31540008CE0010000000100000001000000010000003A -S31540008CF0010000000100000001000000010000002A -S31540008D000100000001000000010000000100000019 -S31540008D100100000001000000010000000100000009 -S31540008D2001000000010000000100000001000000F9 -S31540008D3001000000010000000100000001000000E9 -S31540008D4001000000010000000100000001000000D9 -S31540008D5001000000010000000100000001000000C9 -S31540008D6001000000010000000100000001000000B9 -S31540008D7001000000010000000100000001000000A9 -S31540008D800100000001000000010000000100000099 -S31540008D900100000001000000010000000100000089 -S31540008DA00100000001000000010000000100000079 -S31540008DB00100000001000000010000000100000069 -S31540008DC00100000001000000010000000100000059 -S31540008DD00100000001000000010000000100000049 -S31540008DE00100000001000000010000000100000039 -S31540008DF00100000001000000010000000100000029 -S31540008E000100000001000000010000000100000018 -S31540008E100100000001000000010000000100000008 -S31540008E2001000000010000000100000001000000F8 -S31540008E3001000000010000000100000001000000E8 -S31540008E4001000000010000000100000001000000D8 -S31540008E5001000000010000000100000001000000C8 -S31540008E6001000000010000000100000001000000B8 -S31540008E7001000000010000000100000001000000A8 -S31540008E800100000001000000010000000100000098 -S31540008E900100000001000000010000000100000088 -S31540008EA00100000001000000010000000100000078 -S31540008EB00100000001000000010000000100000068 -S31540008EC00100000001000000010000000100000058 -S31540008ED00100000001000000010000000100000048 -S31540008EE00100000001000000010000000100000038 -S31540008EF00100000001000000010000000100000028 -S31540008F000100000001000000010000000100000017 -S31540008F100100000001000000010000000100000007 -S31540008F2001000000010000000100000001000000F7 -S31540008F3001000000010000000100000001000000E7 -S31540008F4001000000010000000100000001000000D7 -S31540008F5001000000010000000100000001000000C7 -S31540008F6001000000010000000100000001000000B7 -S31540008F7001000000010000000100000001000000A7 -S31540008F800100000001000000010000000100000097 -S31540008F900100000001000000010000000100000087 -S31540008FA00100000001000000010000000100000077 -S31540008FB00100000001000000010000000100000067 -S31540008FC00100000001000000010000000100000057 -S31540008FD00100000001000000010000000100000047 -S31540008FE00100000001000000010000000100000037 -S31540008FF00100000001000000010000000100000027 -S315400090000100000001000000010000000100000016 -S315400090100100000001000000010000000100000006 -S3154000902001000000010000000100000001000000F6 -S3154000903001000000010000000100000001000000E6 -S3154000904001000000010000000100000001000000D6 -S3154000905001000000010000000100000001000000C6 -S3154000906001000000010000000100000001000000B6 -S3154000907001000000010000000100000001000000A6 -S315400090800100000001000000010000000100000096 -S315400090900100000001000000010000000100000086 -S315400090A00100000001000000010000000100000076 -S315400090B00100000001000000010000000100000066 -S315400090C00100000001000000010000000100000056 -S315400090D00100000001000000010000000100000046 -S315400090E00100000001000000010000000100000036 -S315400090F00100000001000000010000000100000026 -S315400091000100000001000000010000000100000015 -S315400091100100000001000000010000000100000005 -S3154000912001000000010000000100000001000000F5 -S3154000913001000000010000000100000001000000E5 -S3154000914001000000010000000100000001000000D5 -S3154000915001000000010000000100000001000000C5 -S3154000916001000000010000000100000001000000B5 -S3154000917001000000010000000100000001000000A5 -S315400091800100000001000000010000000100000095 -S315400091900100000001000000010000000100000085 -S315400091A00100000001000000010000000100000075 -S315400091B00100000001000000010000000100000065 -S315400091C00100000001000000010000000100000055 -S315400091D00100000001000000010000000100000045 -S315400091E00100000001000000010000000100000035 -S315400091F00100000001000000010000000100000025 -S315400092000100000001000000010000000100000014 -S315400092100100000001000000010000000100000004 -S3154000922001000000010000000100000001000000F4 -S3154000923001000000010000000100000001000000E4 -S3154000924001000000010000000100000001000000D4 -S3154000925001000000010000000100000001000000C4 -S3154000926001000000010000000100000001000000B4 -S3154000927001000000010000000100000001000000A4 -S315400092800100000001000000010000000100000094 -S315400092900100000001000000010000000100000084 -S315400092A00100000001000000010000000100000074 -S315400092B00100000001000000010000000100000064 -S315400092C00100000001000000010000000100000054 -S315400092D00100000001000000010000000100000044 -S315400092E00100000001000000010000000100000034 -S315400092F00100000001000000010000000100000024 -S315400093000100000001000000010000000100000013 -S315400093100100000001000000010000000100000003 -S3154000932001000000010000000100000001000000F3 -S3154000933001000000010000000100000001000000E3 -S3154000934001000000010000000100000001000000D3 -S3154000935001000000010000000100000001000000C3 -S3154000936001000000010000000100000001000000B3 -S3154000937001000000010000000100000001000000A3 -S315400093800100000001000000010000000100000093 -S315400093900100000001000000010000000100000083 -S315400093A00100000001000000010000000100000073 -S315400093B00100000001000000010000000100000063 -S315400093C00100000001000000010000000100000053 -S315400093D00100000001000000010000000100000043 -S315400093E00100000001000000010000000100000033 -S315400093F00100000001000000010000000100000023 -S315400094000100000001000000010000000100000012 -S315400094100100000001000000010000000100000002 -S3154000942001000000010000000100000001000000F2 -S3154000943001000000010000000100000001000000E2 -S3154000944001000000010000000100000001000000D2 -S3154000945001000000010000000100000001000000C2 -S3154000946001000000010000000100000001000000B2 -S3154000947001000000010000000100000001000000A2 -S315400094800100000001000000010000000100000092 -S315400094900100000001000000010000000100000082 -S315400094A00100000001000000010000000100000072 -S315400094B00100000001000000010000000100000062 -S315400094C00100000001000000010000000100000052 -S315400094D00100000001000000010000000100000042 -S315400094E00100000001000000010000000100000032 -S315400094F00100000001000000010000000100000022 -S315400095000100000001000000010000000100000011 -S315400095100100000001000000010000000100000001 -S3154000952001000000010000000100000001000000F1 -S3154000953001000000010000000100000001000000E1 -S3154000954001000000010000000100000001000000D1 -S3154000955001000000010000000100000001000000C1 -S3154000956001000000010000000100000001000000B1 -S3154000957001000000010000000100000001000000A1 -S315400095800100000001000000010000000100000091 -S315400095900100000001000000010000000100000081 -S315400095A00100000001000000010000000100000071 -S315400095B00100000001000000010000000100000061 -S315400095C00100000001000000010000000100000051 -S315400095D00100000001000000010000000100000041 -S315400095E00100000001000000010000000100000031 -S315400095F00100000001000000010000000100000021 -S315400096000100000001000000010000000100000010 -S315400096100100000001000000010000000100000000 -S3154000962001000000010000000100000001000000F0 -S3154000963001000000010000000100000001000000E0 -S3154000964001000000010000000100000001000000D0 -S3154000965001000000010000000100000001000000C0 -S3154000966001000000010000000100000001000000B0 -S3154000967001000000010000000100000001000000A0 -S315400096800100000001000000010000000100000090 -S315400096900100000001000000010000000100000080 -S315400096A00100000001000000010000000100000070 -S315400096B00100000001000000010000000100000060 -S315400096C00100000001000000010000000100000050 -S315400096D00100000001000000010000000100000040 -S315400096E00100000001000000010000000100000030 -S315400096F00100000001000000010000000100000020 -S31540009700010000000100000001000000010000000F -S3154000971001000000010000000100000001000000FF -S3154000972001000000010000000100000001000000EF -S3154000973001000000010000000100000001000000DF -S3154000974001000000010000000100000001000000CF -S3154000975001000000010000000100000001000000BF -S3154000976001000000010000000100000001000000AF -S31540009770010000000100000001000000010000009F -S31540009780010000000100000001000000010000008F -S31540009790010000000100000001000000010000007F -S315400097A0010000000100000001000000010000006F -S315400097B0010000000100000001000000010000005F -S315400097C0010000000100000001000000010000004F -S315400097D0010000000100000001000000010000003F -S315400097E0010000000100000001000000010000002F -S315400097F0010000000100000001000000010000001F -S31540009800010000000100000001000000010000000E -S3154000981001000000010000000100000001000000FE -S3154000982001000000010000000100000001000000EE -S3154000983001000000010000000100000001000000DE -S3154000984001000000010000000100000001000000CE -S3154000985001000000010000000100000001000000BE -S3154000986001000000010000000100000001000000AE -S31540009870010000000100000001000000010000009E -S31540009880010000000100000001000000010000008E -S31540009890010000000100000001000000010000007E -S315400098A0010000000100000001000000010000006E -S315400098B0010000000100000001000000010000005E -S315400098C0010000000100000001000000010000004E -S315400098D0010000000100000001000000010000003E -S315400098E0010000000100000001000000010000002E -S315400098F0010000000100000001000000010000001E -S31540009900010000000100000001000000010000000D -S3154000991001000000010000000100000001000000FD -S3154000992001000000010000000100000001000000ED -S3154000993001000000010000000100000001000000DD -S3154000994001000000010000000100000001000000CD -S3154000995001000000010000000100000001000000BD -S3154000996001000000010000000100000001000000AD -S31540009970010000000100000001000000010000009D -S31540009980010000000100000001000000010000008D -S31540009990010000000100000001000000010000007D -S315400099A0010000000100000001000000010000006D -S315400099B0010000000100000001000000010000005D -S315400099C0010000000100000001000000010000004D -S315400099D0010000000100000001000000010000003D -S315400099E0010000000100000001000000010000002D -S315400099F0010000000100000001000000010000001D -S31540009A00010000000100000001000000010000000C -S31540009A1001000000010000000100000001000000FC -S31540009A2001000000010000000100000001000000EC -S31540009A3001000000010000000100000001000000DC -S31540009A4001000000010000000100000001000000CC -S31540009A5001000000010000000100000001000000BC -S31540009A6001000000010000000100000001000000AC -S31540009A70010000000100000001000000010000009C -S31540009A80010000000100000001000000010000008C -S31540009A90010000000100000001000000010000007C -S31540009AA0010000000100000001000000010000006C -S31540009AB0010000000100000001000000010000005C -S31540009AC0010000000100000001000000010000004C -S31540009AD0010000000100000001000000010000003C -S31540009AE0010000000100000001000000010000002C -S31540009AF0010000000100000001000000010000001C -S31540009B00010000000100000001000000010000000B -S31540009B1001000000010000000100000001000000FB -S31540009B2001000000010000000100000001000000EB -S31540009B3001000000010000000100000001000000DB -S31540009B4001000000010000000100000001000000CB -S31540009B5001000000010000000100000001000000BB -S31540009B6001000000010000000100000001000000AB -S31540009B70010000000100000001000000010000009B -S31540009B80010000000100000001000000010000008B -S31540009B90010000000100000001000000010000007B -S31540009BA0010000000100000001000000010000006B -S31540009BB0010000000100000001000000010000005B -S31540009BC0010000000100000001000000010000004B -S31540009BD0010000000100000001000000010000003B -S31540009BE0010000000100000001000000010000002B -S31540009BF0010000000100000001000000010000001B -S31540009C00010000000100000001000000010000000A -S31540009C1001000000010000000100000001000000FA -S31540009C2001000000010000000100000001000000EA -S31540009C3001000000010000000100000001000000DA -S31540009C4001000000010000000100000001000000CA -S31540009C5001000000010000000100000001000000BA -S31540009C6001000000010000000100000001000000AA -S31540009C70010000000100000001000000010000009A -S31540009C80010000000100000001000000010000008A -S31540009C90010000000100000001000000010000007A -S31540009CA0010000000100000001000000010000006A -S31540009CB0010000000100000001000000010000005A -S31540009CC0010000000100000001000000010000004A -S31540009CD0010000000100000001000000010000003A -S31540009CE0010000000100000001000000010000002A -S31540009CF0010000000100000001000000010000001A -S31540009D000100000001000000010000000100000009 -S31540009D1001000000010000000100000001000000F9 -S31540009D2001000000010000000100000001000000E9 -S31540009D3001000000010000000100000001000000D9 -S31540009D4001000000010000000100000001000000C9 -S31540009D5001000000010000000100000001000000B9 -S31540009D6001000000010000000100000001000000A9 -S31540009D700100000001000000010000000100000099 -S31540009D800100000001000000010000000100000089 -S31540009D900100000001000000010000000100000079 -S31540009DA00100000001000000010000000100000069 -S31540009DB00100000001000000010000000100000059 -S31540009DC00100000001000000010000000100000049 -S31540009DD00100000001000000010000000100000039 -S31540009DE00100000001000000010000000100000029 -S31540009DF00100000001000000010000000100000019 -S31540009E000100000001000000010000000100000008 -S31540009E1001000000010000000100000001000000F8 -S31540009E2001000000010000000100000001000000E8 -S31540009E3001000000010000000100000001000000D8 -S31540009E4001000000010000000100000001000000C8 -S31540009E5001000000010000000100000001000000B8 -S31540009E6001000000010000000100000001000000A8 -S31540009E700100000001000000010000000100000098 -S31540009E800100000001000000010000000100000088 -S31540009E900100000001000000010000000100000078 -S31540009EA00100000001000000010000000100000068 -S31540009EB00100000001000000010000000100000058 -S31540009EC00100000001000000010000000100000048 -S31540009ED00100000001000000010000000100000038 -S31540009EE00100000001000000010000000100000028 -S31540009EF00100000001000000010000000100000018 -S31540009F000100000001000000010000000100000007 -S31540009F1001000000010000000100000001000000F7 -S31540009F2001000000010000000100000001000000E7 -S31540009F3001000000010000000100000001000000D7 -S31540009F4001000000010000000100000001000000C7 -S31540009F5001000000010000000100000001000000B7 -S31540009F6001000000010000000100000001000000A7 -S31540009F700100000001000000010000000100000097 -S31540009F800100000001000000010000000100000087 -S31540009F900100000001000000010000000100000077 -S31540009FA00100000001000000010000000100000067 -S31540009FB00100000001000000010000000100000057 -S31540009FC00100000001000000010000000100000047 -S31540009FD00100000001000000010000000100000037 -S31540009FE00100000001000000010000000100000027 -S31540009FF00100000001000000010000000100000017 -S3154000A0000100000001000000010000000100000006 -S3154000A01001000000010000000100000001000000F6 -S3154000A02001000000010000000100000001000000E6 -S3154000A03001000000010000000100000001000000D6 -S3154000A04001000000010000000100000001000000C6 -S3154000A05001000000010000000100000001000000B6 -S3154000A06001000000010000000100000001000000A6 -S3154000A0700100000001000000010000000100000096 -S3154000A0800100000001000000010000000100000086 -S3154000A0900100000001000000010000000100000076 -S3154000A0A00100000001000000010000000100000066 -S3154000A0B00100000001000000010000000100000056 -S3154000A0C00100000001000000010000000100000046 -S3154000A0D00100000001000000010000000100000036 -S3154000A0E00100000001000000010000000100000026 -S3154000A0F00100000001000000010000000100000016 -S3154000A1000100000001000000010000000100000005 -S3154000A11001000000010000000100000001000000F5 -S3154000A12001000000010000000100000001000000E5 -S3154000A13001000000010000000100000001000000D5 -S3154000A14001000000010000000100000001000000C5 -S3154000A15001000000010000000100000001000000B5 -S3154000A16001000000010000000100000001000000A5 -S3154000A1700100000001000000010000000100000095 -S3154000A1800100000001000000010000000100000085 -S3154000A1900100000001000000010000000100000075 -S3154000A1A00100000001000000010000000100000065 -S3154000A1B00100000001000000010000000100000055 -S3154000A1C00100000001000000010000000100000045 -S3154000A1D00100000001000000010000000100000035 -S3154000A1E00100000001000000010000000100000025 -S3154000A1F00100000001000000010000000100000015 -S3154000A2000100000001000000010000000100000004 -S3154000A21001000000010000000100000001000000F4 -S3154000A22001000000010000000100000001000000E4 -S3154000A23001000000010000000100000001000000D4 -S3154000A24001000000010000000100000001000000C4 -S3154000A25001000000010000000100000001000000B4 -S3154000A26001000000010000000100000001000000A4 -S3154000A2700100000001000000010000000100000094 -S3154000A2800100000001000000010000000100000084 -S3154000A2900100000001000000010000000100000074 -S3154000A2A00100000001000000010000000100000064 -S3154000A2B00100000001000000010000000100000054 -S3154000A2C00100000001000000010000000100000044 -S3154000A2D00100000001000000010000000100000034 -S3154000A2E00100000001000000010000000100000024 -S3154000A2F00100000001000000010000000100000014 -S3154000A3000100000001000000010000000100000003 -S3154000A31001000000010000000100000001000000F3 -S3154000A32001000000010000000100000001000000E3 -S3154000A33001000000010000000100000001000000D3 -S3154000A34001000000010000000100000001000000C3 -S3154000A35001000000010000000100000001000000B3 -S3154000A36001000000010000000100000001000000A3 -S3154000A3700100000001000000010000000100000093 -S3154000A3800100000001000000010000000100000083 -S3154000A3900100000001000000010000000100000073 -S3154000A3A00100000001000000010000000100000063 -S3154000A3B00100000001000000010000000100000053 -S3154000A3C00100000001000000010000000100000043 -S3154000A3D00100000001000000010000000100000033 -S3154000A3E00100000001000000010000000100000023 -S3154000A3F00100000001000000010000000100000013 -S3154000A4000100000001000000010000000100000002 -S3154000A41001000000010000000100000001000000F2 -S3154000A42001000000010000000100000001000000E2 -S3154000A43001000000010000000100000001000000D2 -S3154000A44001000000010000000100000001000000C2 -S3154000A45001000000010000000100000001000000B2 -S3154000A46001000000010000000100000001000000A2 -S3154000A4700100000001000000010000000100000092 -S3154000A4800100000001000000010000000100000082 -S3154000A4900100000001000000010000000100000072 -S3154000A4A00100000001000000010000000100000062 -S3154000A4B00100000001000000010000000100000052 -S3154000A4C00100000001000000010000000100000042 -S3154000A4D00100000001000000010000000100000032 -S3154000A4E00100000001000000010000000100000022 -S3154000A4F00100000001000000010000000100000012 -S3154000A5000100000001000000010000000100000001 -S3154000A51001000000010000000100000001000000F1 -S3154000A52001000000010000000100000001000000E1 -S3154000A53001000000010000000100000001000000D1 -S3154000A54001000000010000000100000001000000C1 -S3154000A55001000000010000000100000001000000B1 -S3154000A56001000000010000000100000001000000A1 -S3154000A5700100000001000000010000000100000091 -S3154000A5800100000001000000010000000100000081 -S3154000A5900100000001000000010000000100000071 -S3154000A5A00100000001000000010000000100000061 -S3154000A5B00100000001000000010000000100000051 -S3154000A5C00100000001000000010000000100000041 -S3154000A5D00100000001000000010000000100000031 -S3154000A5E00100000001000000010000000100000021 -S3154000A5F00100000001000000010000000100000011 -S3154000A6000100000001000000010000000100000000 -S3154000A61001000000010000000100000001000000F0 -S3154000A62001000000010000000100000001000000E0 -S3154000A63001000000010000000100000001000000D0 -S3154000A64001000000010000000100000001000000C0 -S3154000A65001000000010000000100000001000000B0 -S3154000A66001000000010000000100000001000000A0 -S3154000A6700100000001000000010000000100000090 -S3154000A6800100000001000000010000000100000080 -S3154000A6900100000001000000010000000100000070 -S3154000A6A00100000001000000010000000100000060 -S3154000A6B00100000001000000010000000100000050 -S3154000A6C00100000001000000010000000100000040 -S3154000A6D00100000001000000010000000100000030 -S3154000A6E00100000001000000010000000100000020 -S3154000A6F00100000001000000010000000100000010 -S3154000A70001000000010000000100000001000000FF -S3154000A71001000000010000000100000001000000EF -S3154000A72001000000010000000100000001000000DF -S3154000A73001000000010000000100000001000000CF -S3154000A74001000000010000000100000001000000BF -S3154000A75001000000010000000100000001000000AF -S3154000A760010000000100000001000000010000009F -S3154000A770010000000100000001000000010000008F -S3154000A780010000000100000001000000010000007F -S3154000A790010000000100000001000000010000006F -S3154000A7A0010000000100000001000000010000005F -S3154000A7B0010000000100000001000000010000004F -S3154000A7C0010000000100000001000000010000003F -S3154000A7D0010000000100000001000000010000002F -S3154000A7E0010000000100000001000000010000001F -S3154000A7F0010000000100000001000000010000000F -S3154000A80001000000010000000100000001000000FE -S3154000A81001000000010000000100000001000000EE -S3154000A82001000000010000000100000001000000DE -S3154000A83001000000010000000100000001000000CE -S3154000A84001000000010000000100000001000000BE -S3154000A85001000000010000000100000001000000AE -S3154000A860010000000100000001000000010000009E -S3154000A870010000000100000001000000010000008E -S3154000A880010000000100000001000000010000007E -S3154000A890010000000100000001000000010000006E -S3154000A8A0010000000100000001000000010000005E -S3154000A8B0010000000100000001000000010000004E -S3154000A8C0010000000100000001000000010000003E -S3154000A8D0010000000100000001000000010000002E -S3154000A8E0010000000100000001000000010000001E -S3154000A8F0010000000100000001000000010000000E -S3154000A90001000000010000000100000001000000FD -S3154000A91001000000010000000100000001000000ED -S3154000A92001000000010000000100000001000000DD -S3154000A93001000000010000000100000001000000CD -S3154000A94001000000010000000100000001000000BD -S3154000A95001000000010000000100000001000000AD -S3154000A960010000000100000001000000010000009D -S3154000A970010000000100000001000000010000008D -S3154000A980010000000100000001000000010000007D -S3154000A990010000000100000001000000010000006D -S3154000A9A0010000000100000001000000010000005D -S3154000A9B0010000000100000001000000010000004D -S3154000A9C0010000000100000001000000010000003D -S3154000A9D0010000000100000001000000010000002D -S3154000A9E0010000000100000001000000010000001D -S3154000A9F0010000000100000001000000010000000D -S3154000AA0001000000010000000100000001000000FC -S3154000AA1001000000010000000100000001000000EC -S3154000AA2001000000010000000100000001000000DC -S3154000AA3001000000010000000100000001000000CC -S3154000AA4001000000010000000100000001000000BC -S3154000AA5001000000010000000100000001000000AC -S3154000AA60010000000100000001000000010000009C -S3154000AA70010000000100000001000000010000008C -S3154000AA80010000000100000001000000010000007C -S3154000AA90010000000100000001000000010000006C -S3154000AAA0010000000100000001000000010000005C -S3154000AAB0010000000100000001000000010000004C -S3154000AAC0010000000100000001000000010000003C -S3154000AAD0010000000100000001000000010000002C -S3154000AAE0010000000100000001000000010000001C -S3154000AAF0010000000100000001000000010000000C -S3154000AB0001000000010000000100000001000000FB -S3154000AB1001000000010000000100000001000000EB -S3154000AB2001000000010000000100000001000000DB -S3154000AB3001000000010000000100000001000000CB -S3154000AB4001000000010000000100000001000000BB -S3154000AB5001000000010000000100000001000000AB -S3154000AB60010000000100000001000000010000009B -S3154000AB70010000000100000001000000010000008B -S3154000AB80010000000100000001000000010000007B -S3154000AB90010000000100000001000000010000006B -S3154000ABA0010000000100000001000000010000005B -S3154000ABB0010000000100000001000000010000004B -S3154000ABC0010000000100000001000000010000003B -S3154000ABD0010000000100000001000000010000002B -S3154000ABE0010000000100000001000000010000001B -S3154000ABF0010000000100000001000000010000000B -S3154000AC0001000000010000000100000001000000FA -S3154000AC1001000000010000000100000001000000EA -S3154000AC2001000000010000000100000001000000DA -S3154000AC3001000000010000000100000001000000CA -S3154000AC4001000000010000000100000001000000BA -S3154000AC5001000000010000000100000001000000AA -S3154000AC60010000000100000001000000010000009A -S3154000AC70010000000100000001000000010000008A -S3154000AC80010000000100000001000000010000007A -S3154000AC90010000000100000001000000010000006A -S3154000ACA0010000000100000001000000010000005A -S3154000ACB0010000000100000001000000010000004A -S3154000ACC0010000000100000001000000010000003A -S3154000ACD0010000000100000001000000010000002A -S3154000ACE0010000000100000001000000010000001A -S3154000ACF0010000000100000001000000010000000A -S3154000AD0001000000010000000100000001000000F9 -S3154000AD1001000000010000000100000001000000E9 -S3154000AD2001000000010000000100000001000000D9 -S3154000AD3001000000010000000100000001000000C9 -S3154000AD4001000000010000000100000001000000B9 -S3154000AD5001000000010000000100000001000000A9 -S3154000AD600100000001000000010000000100000099 -S3154000AD700100000001000000010000000100000089 -S3154000AD800100000001000000010000000100000079 -S3154000AD900100000001000000010000000100000069 -S3154000ADA00100000001000000010000000100000059 -S3154000ADB00100000001000000010000000100000049 -S3154000ADC00100000001000000010000000100000039 -S3154000ADD00100000001000000010000000100000029 -S3154000ADE00100000001000000010000000100000019 -S3154000ADF00100000001000000010000000100000009 -S3154000AE0001000000010000000100000001000000F8 -S3154000AE1001000000010000000100000001000000E8 -S3154000AE2001000000010000000100000001000000D8 -S3154000AE3001000000010000000100000001000000C8 -S3154000AE4001000000010000000100000001000000B8 -S3154000AE5001000000010000000100000001000000A8 -S3154000AE600100000001000000010000000100000098 -S3154000AE700100000001000000010000000100000088 -S3154000AE800100000001000000010000000100000078 -S3154000AE900100000001000000010000000100000068 -S3154000AEA00100000001000000010000000100000058 -S3154000AEB00100000001000000010000000100000048 -S3154000AEC00100000001000000010000000100000038 -S3154000AED00100000001000000010000000100000028 -S3154000AEE00100000001000000010000000100000018 -S3154000AEF00100000001000000010000000100000008 -S3154000AF0001000000010000000100000001000000F7 -S3154000AF1001000000010000000100000001000000E7 -S3154000AF2001000000010000000100000001000000D7 -S3154000AF3001000000010000000100000001000000C7 -S3154000AF4001000000010000000100000001000000B7 -S3154000AF5001000000010000000100000001000000A7 -S3154000AF600100000001000000010000000100000097 -S3154000AF700100000001000000010000000100000087 -S3154000AF800100000001000000010000000100000077 -S3154000AF900100000001000000010000000100000067 -S3154000AFA00100000001000000010000000100000057 -S3154000AFB00100000001000000010000000100000047 -S3154000AFC00100000001000000010000000100000037 -S3154000AFD00100000001000000010000000100000027 -S3154000AFE00100000001000000010000000100000017 -S3154000AFF00100000001000000010000000100000007 -S3154000B00001000000010000000100000001000000F6 -S3154000B01001000000010000000100000001000000E6 -S3154000B02001000000010000000100000001000000D6 -S3154000B03001000000010000000100000001000000C6 -S3154000B04001000000010000000100000001000000B6 -S3154000B05001000000010000000100000001000000A6 -S3154000B0600100000001000000010000000100000096 -S3154000B0700100000001000000010000000100000086 -S3154000B0800100000001000000010000000100000076 -S3154000B0900100000001000000010000000100000066 -S3154000B0A00100000001000000010000000100000056 -S3154000B0B00100000001000000010000000100000046 -S3154000B0C00100000001000000010000000100000036 -S3154000B0D00100000001000000010000000100000026 -S3154000B0E00100000001000000010000000100000016 -S3154000B0F00100000001000000010000000100000006 -S3154000B10001000000010000000100000001000000F5 -S3154000B11001000000010000000100000001000000E5 -S3154000B12001000000010000000100000001000000D5 -S3154000B13001000000010000000100000001000000C5 -S3154000B14001000000010000000100000001000000B5 -S3154000B15001000000010000000100000001000000A5 -S3154000B1600100000001000000010000000100000095 -S3154000B1700100000001000000010000000100000085 -S3154000B1800100000001000000010000000100000075 -S3154000B1900100000001000000010000000100000065 -S3154000B1A00100000001000000010000000100000055 -S3154000B1B00100000001000000010000000100000045 -S3154000B1C00100000001000000010000000100000035 -S3154000B1D00100000001000000010000000100000025 -S3154000B1E00100000001000000010000000100000015 -S3154000B1F00100000001000000010000000100000005 -S3154000B20001000000010000000100000001000000F4 -S3154000B21001000000010000000100000001000000E4 -S3154000B22001000000010000000100000001000000D4 -S3154000B23001000000010000000100000001000000C4 -S3154000B24001000000010000000100000001000000B4 -S3154000B25001000000010000000100000001000000A4 -S3154000B2600100000001000000010000000100000094 -S3154000B2700100000001000000010000000100000084 -S3154000B2800100000001000000010000000100000074 -S3154000B2900100000001000000010000000100000064 -S3154000B2A00100000001000000010000000100000054 -S3154000B2B00100000001000000010000000100000044 -S3154000B2C00100000001000000010000000100000034 -S3154000B2D00100000001000000010000000100000024 -S3154000B2E00100000001000000010000000100000014 -S3154000B2F00100000001000000010000000100000004 -S3154000B30001000000010000000100000001000000F3 -S3154000B31001000000010000000100000001000000E3 -S3154000B32001000000010000000100000001000000D3 -S3154000B33001000000010000000100000001000000C3 -S3154000B34001000000010000000100000001000000B3 -S3154000B35001000000010000000100000001000000A3 -S3154000B3600100000001000000010000000100000093 -S3154000B3700100000001000000010000000100000083 -S3154000B3800100000001000000010000000100000073 -S3154000B3900100000001000000010000000100000063 -S3154000B3A00100000001000000010000000100000053 -S3154000B3B00100000001000000010000000100000043 -S3154000B3C00100000001000000010000000100000033 -S3154000B3D00100000001000000010000000100000023 -S3154000B3E00100000001000000010000000100000013 -S3154000B3F00100000001000000010000000100000003 -S3154000B40001000000010000000100000001000000F2 -S3154000B41001000000010000000100000001000000E2 -S3154000B42001000000010000000100000001000000D2 -S3154000B43001000000010000000100000001000000C2 -S3154000B44001000000010000000100000001000000B2 -S3154000B45001000000010000000100000001000000A2 -S3154000B4600100000001000000010000000100000092 -S3154000B4700100000001000000010000000100000082 -S3154000B4800100000001000000010000000100000072 -S3154000B4900100000001000000010000000100000062 -S3154000B4A00100000001000000010000000100000052 -S3154000B4B00100000001000000010000000100000042 -S3154000B4C00100000001000000010000000100000032 -S3154000B4D00100000001000000010000000100000022 -S3154000B4E00100000001000000010000000100000012 -S3154000B4F00100000001000000010000000100000002 -S3154000B50001000000010000000100000001000000F1 -S3154000B51001000000010000000100000001000000E1 -S3154000B52001000000010000000100000001000000D1 -S3154000B53001000000010000000100000001000000C1 -S3154000B54001000000010000000100000001000000B1 -S3154000B55001000000010000000100000001000000A1 -S3154000B5600100000001000000010000000100000091 -S3154000B5700100000001000000010000000100000081 -S3154000B5800100000001000000010000000100000071 -S3154000B5900100000001000000010000000100000061 -S3154000B5A00100000001000000010000000100000051 -S3154000B5B00100000001000000010000000100000041 -S3154000B5C00100000001000000010000000100000031 -S3154000B5D00100000001000000010000000100000021 -S3154000B5E00100000001000000010000000100000011 -S3154000B5F00100000001000000010000000100000001 -S3154000B60001000000010000000100000001000000F0 -S3154000B61001000000010000000100000001000000E0 -S3154000B62001000000010000000100000001000000D0 -S3154000B63001000000010000000100000001000000C0 -S3154000B64001000000010000000100000001000000B0 -S3154000B65001000000010000000100000001000000A0 -S3154000B6600100000001000000010000000100000090 -S3154000B6700100000001000000010000000100000080 -S3154000B6800100000001000000010000000100000070 -S3154000B6900100000001000000010000000100000060 -S3154000B6A00100000001000000010000000100000050 -S3154000B6B00100000001000000010000000100000040 -S3154000B6C00100000001000000010000000100000030 -S3154000B6D00100000001000000010000000100000020 -S3154000B6E00100000001000000010000000100000010 -S3154000B6F00100000001000000010000000100000000 -S3154000B70001000000010000000100000001000000EF -S3154000B71001000000010000000100000001000000DF -S3154000B72001000000010000000100000001000000CF -S3154000B73001000000010000000100000001000000BF -S3154000B74001000000010000000100000001000000AF -S3154000B750010000000100000001000000010000009F -S3154000B760010000000100000001000000010000008F -S3154000B770010000000100000001000000010000007F -S3154000B780010000000100000001000000010000006F -S3154000B790010000000100000001000000010000005F -S3154000B7A0010000000100000001000000010000004F -S3154000B7B0010000000100000001000000010000003F -S3154000B7C0010000000100000001000000010000002F -S3154000B7D0010000000100000001000000010000001F -S3154000B7E0010000000100000001000000010000000F -S3154000B7F001000000010000000100000001000000FF -S3154000B80001000000010000000100000001000000EE -S3154000B81001000000010000000100000001000000DE -S3154000B82001000000010000000100000001000000CE -S3154000B83001000000010000000100000001000000BE -S3154000B84001000000010000000100000001000000AE -S3154000B850010000000100000001000000010000009E -S3154000B860010000000100000001000000010000008E -S3154000B870010000000100000001000000010000007E -S3154000B880010000000100000001000000010000006E -S3154000B890010000000100000001000000010000005E -S3154000B8A0010000000100000001000000010000004E -S3154000B8B0010000000100000001000000010000003E -S3154000B8C0010000000100000001000000010000002E -S3154000B8D0010000000100000001000000010000001E -S3154000B8E0010000000100000001000000010000000E -S3154000B8F001000000010000000100000001000000FE -S3154000B90001000000010000000100000001000000ED -S3154000B91001000000010000000100000001000000DD -S3154000B92001000000010000000100000001000000CD -S3154000B93001000000010000000100000001000000BD -S3154000B94001000000010000000100000001000000AD -S3154000B950010000000100000001000000010000009D -S3154000B960010000000100000001000000010000008D -S3154000B970010000000100000001000000010000007D -S3154000B980010000000100000001000000010000006D -S3154000B990010000000100000001000000010000005D -S3154000B9A0010000000100000001000000010000004D -S3154000B9B0010000000100000001000000010000003D -S3154000B9C0010000000100000001000000010000002D -S3154000B9D0010000000100000001000000010000001D -S3154000B9E0010000000100000001000000010000000D -S3154000B9F001000000010000000100000001000000FD -S3154000BA0001000000010000000100000001000000EC -S3154000BA1001000000010000000100000001000000DC -S3154000BA2001000000010000000100000001000000CC -S3154000BA3001000000010000000100000001000000BC -S3154000BA4001000000010000000100000001000000AC -S3154000BA50010000000100000001000000010000009C -S3154000BA60010000000100000001000000010000008C -S3154000BA70010000000100000001000000010000007C -S3154000BA80010000000100000001000000010000006C -S3154000BA90010000000100000001000000010000005C -S3154000BAA0010000000100000001000000010000004C -S3154000BAB0010000000100000001000000010000003C -S3154000BAC0010000000100000001000000010000002C -S3154000BAD0010000000100000001000000010000001C -S3154000BAE0010000000100000001000000010000000C -S3154000BAF001000000010000000100000001000000FC -S3154000BB0001000000010000000100000001000000EB -S3154000BB1001000000010000000100000001000000DB -S3154000BB2001000000010000000100000001000000CB -S3154000BB3001000000010000000100000001000000BB -S3154000BB4001000000010000000100000001000000AB -S3154000BB50010000000100000001000000010000009B -S3154000BB60010000000100000001000000010000008B -S3154000BB70010000000100000001000000010000007B -S3154000BB80010000000100000001000000010000006B -S3154000BB90010000000100000001000000010000005B -S3154000BBA0010000000100000001000000010000004B -S3154000BBB0010000000100000001000000010000003B -S3154000BBC0010000000100000001000000010000002B -S3154000BBD0010000000100000001000000010000001B -S3154000BBE0010000000100000001000000010000000B -S3154000BBF001000000010000000100000001000000FB -S3154000BC0001000000010000000100000001000000EA -S3154000BC1001000000010000000100000001000000DA -S3154000BC2001000000010000000100000001000000CA -S3154000BC3001000000010000000100000001000000BA -S3154000BC4001000000010000000100000001000000AA -S3154000BC50010000000100000001000000010000009A -S3154000BC60010000000100000001000000010000008A -S3154000BC70010000000100000001000000010000007A -S3154000BC80010000000100000001000000010000006A -S3154000BC90010000000100000001000000010000005A -S3154000BCA0010000000100000001000000010000004A -S3154000BCB0010000000100000001000000010000003A -S3154000BCC0010000000100000001000000010000002A -S3154000BCD0010000000100000001000000010000001A -S3154000BCE0010000000100000001000000010000000A -S3154000BCF001000000010000000100000001000000FA -S3154000BD0001000000010000000100000001000000E9 -S3154000BD1001000000010000000100000001000000D9 -S3154000BD2001000000010000000100000001000000C9 -S3154000BD3001000000010000000100000001000000B9 -S3154000BD4001000000010000000100000001000000A9 -S3154000BD500100000001000000010000000100000099 -S3154000BD600100000001000000010000000100000089 -S3154000BD700100000001000000010000000100000079 -S3154000BD800100000001000000010000000100000069 -S3154000BD900100000001000000010000000100000059 -S3154000BDA00100000001000000010000000100000049 -S3154000BDB00100000001000000010000000100000039 -S3154000BDC00100000001000000010000000100000029 -S3154000BDD00100000001000000010000000100000019 -S3154000BDE00100000001000000010000000100000009 -S3154000BDF001000000010000000100000001000000F9 -S3154000BE0001000000010000000100000001000000E8 -S3154000BE1001000000010000000100000001000000D8 -S3154000BE2001000000010000000100000001000000C8 -S3154000BE3001000000010000000100000001000000B8 -S3154000BE4001000000010000000100000001000000A8 -S3154000BE500100000001000000010000000100000098 -S3154000BE600100000001000000010000000100000088 -S3154000BE700100000001000000010000000100000078 -S3154000BE800100000001000000010000000100000068 -S3154000BE900100000001000000010000000100000058 -S3154000BEA00100000001000000010000000100000048 -S3154000BEB00100000001000000010000000100000038 -S3154000BEC00100000001000000010000000100000028 -S3154000BED00100000001000000010000000100000018 -S3154000BEE00100000001000000010000000100000008 -S3154000BEF001000000010000000100000001000000F8 -S3154000BF0001000000010000000100000001000000E7 -S3154000BF1001000000010000000100000001000000D7 -S3154000BF2001000000010000000100000001000000C7 -S3154000BF3001000000010000000100000001000000B7 -S3154000BF4001000000010000000100000001000000A7 -S3154000BF500100000001000000010000000100000097 -S3154000BF600100000001000000010000000100000087 -S3154000BF700100000001000000010000000100000077 -S3154000BF800100000001000000010000000100000067 -S3154000BF900100000001000000010000000100000057 -S3154000BFA00100000001000000010000000100000047 -S3154000BFB00100000001000000010000000100000037 -S3154000BFC00100000001000000010000000100000027 -S3154000BFD00100000001000000010000000100000017 -S3154000BFE00100000001000000010000000100000007 -S3154000BFF001000000010000000100000001000000F7 -S3154000C00001000000010000000100000001000000E6 -S3154000C01001000000010000000100000001000000D6 -S3154000C02001000000010000000100000001000000C6 -S3154000C03001000000010000000100000001000000B6 -S3154000C04001000000010000000100000001000000A6 -S3154000C0500100000001000000010000000100000096 -S3154000C0600100000001000000010000000100000086 -S3154000C0700100000001000000010000000100000076 -S3154000C0800100000001000000010000000100000066 -S3154000C0900100000001000000010000000100000056 -S3154000C0A00100000001000000010000000100000046 -S3154000C0B00100000001000000010000000100000036 -S3154000C0C00100000001000000010000000100000026 -S3154000C0D00100000001000000010000000100000016 -S3154000C0E00100000001000000010000000100000006 -S3154000C0F001000000010000000100000001000000F6 -S3154000C10001000000010000000100000001000000E5 -S3154000C11001000000010000000100000001000000D5 -S3154000C12001000000010000000100000001000000C5 -S3154000C13001000000010000000100000001000000B5 -S3154000C14001000000010000000100000001000000A5 -S3154000C1500100000001000000010000000100000095 -S3154000C1600100000001000000010000000100000085 -S3154000C1700100000001000000010000000100000075 -S3154000C1800100000001000000010000000100000065 -S3154000C1900100000001000000010000000100000055 -S3154000C1A00100000001000000010000000100000045 -S3154000C1B00100000001000000010000000100000035 -S3154000C1C00100000001000000010000000100000025 -S3154000C1D00100000001000000010000000100000015 -S3154000C1E00100000001000000010000000100000005 -S3154000C1F001000000010000000100000001000000F5 -S3154000C20001000000010000000100000001000000E4 -S3154000C21001000000010000000100000001000000D4 -S3154000C22001000000010000000100000001000000C4 -S3154000C23001000000010000000100000001000000B4 -S3154000C24001000000010000000100000001000000A4 -S3154000C2500100000001000000010000000100000094 -S3154000C2600100000001000000010000000100000084 -S3154000C2700100000001000000010000000100000074 -S3154000C2800100000001000000010000000100000064 -S3154000C2900100000001000000010000000100000054 -S3154000C2A00100000001000000010000000100000044 -S3154000C2B00100000001000000010000000100000034 -S3154000C2C00100000001000000010000000100000024 -S3154000C2D00100000001000000010000000100000014 -S3154000C2E00100000001000000010000000100000004 -S3154000C2F001000000010000000100000001000000F4 -S3154000C30001000000010000000100000001000000E3 -S3154000C31001000000010000000100000001000000D3 -S3154000C32001000000010000000100000001000000C3 -S3154000C33001000000010000000100000001000000B3 -S3154000C34001000000010000000100000001000000A3 -S3154000C3500100000001000000010000000100000093 -S3154000C3600100000001000000010000000100000083 -S3154000C3700100000001000000010000000100000073 -S3154000C3800100000001000000010000000100000063 -S3154000C3900100000001000000010000000100000053 -S3154000C3A00100000001000000010000000100000043 -S3154000C3B00100000001000000010000000100000033 -S3154000C3C00100000001000000010000000100000023 -S3154000C3D00100000001000000010000000100000013 -S3154000C3E00100000001000000010000000100000003 -S3154000C3F001000000010000000100000001000000F3 -S3154000C40001000000010000000100000001000000E2 -S3154000C41001000000010000000100000001000000D2 -S3154000C42001000000010000000100000001000000C2 -S3154000C43001000000010000000100000001000000B2 -S3154000C44001000000010000000100000001000000A2 -S3154000C4500100000001000000010000000100000092 -S3154000C4600100000001000000010000000100000082 -S3154000C4700100000001000000010000000100000072 -S3154000C4800100000001000000010000000100000062 -S3154000C4900100000001000000010000000100000052 -S3154000C4A00100000001000000010000000100000042 -S3154000C4B00100000001000000010000000100000032 -S3154000C4C00100000001000000010000000100000022 -S3154000C4D00100000001000000010000000100000012 -S3154000C4E00100000001000000010000000100000002 -S3154000C4F001000000010000000100000001000000F2 -S3154000C50001000000010000000100000001000000E1 -S3154000C51001000000010000000100000001000000D1 -S3154000C52001000000010000000100000001000000C1 -S3154000C53001000000010000000100000001000000B1 -S3154000C54001000000010000000100000001000000A1 -S3154000C5500100000001000000010000000100000091 -S3154000C5600100000001000000010000000100000081 -S3154000C5700100000001000000010000000100000071 -S3154000C5800100000001000000010000000100000061 -S3154000C5900100000001000000010000000100000051 -S3154000C5A00100000001000000010000000100000041 -S3154000C5B00100000001000000010000000100000031 -S3154000C5C00100000001000000010000000100000021 -S3154000C5D00100000001000000010000000100000011 -S3154000C5E00100000001000000010000000100000001 -S3154000C5F001000000010000000100000001000000F1 -S3154000C60001000000010000000100000001000000E0 -S3154000C61001000000010000000100000001000000D0 -S3154000C62001000000010000000100000001000000C0 -S3154000C63001000000010000000100000001000000B0 -S3154000C64001000000010000000100000001000000A0 -S3154000C6500100000001000000010000000100000090 -S3154000C6600100000001000000010000000100000080 -S3154000C6700100000001000000010000000100000070 -S3154000C6800100000001000000010000000100000060 -S3154000C6900100000001000000010000000100000050 -S3154000C6A00100000001000000010000000100000040 -S3154000C6B00100000001000000010000000100000030 -S3154000C6C00100000001000000010000000100000020 -S3154000C6D00100000001000000010000000100000010 -S3154000C6E00100000001000000010000000100000000 -S3154000C6F001000000010000000100000001000000F0 -S3154000C70001000000010000000100000001000000DF -S3154000C71001000000010000000100000001000000CF -S3154000C72001000000010000000100000001000000BF -S3154000C73001000000010000000100000001000000AF -S3154000C740010000000100000001000000010000009F -S3154000C750010000000100000001000000010000008F -S3154000C760010000000100000001000000010000007F -S3154000C770010000000100000001000000010000006F -S3154000C780010000000100000001000000010000005F -S3154000C790010000000100000001000000010000004F -S3154000C7A0010000000100000001000000010000003F -S3154000C7B0010000000100000001000000010000002F -S3154000C7C0010000000100000001000000010000001F -S3154000C7D0010000000100000001000000010000000F -S3154000C7E001000000010000000100000001000000FF -S3154000C7F001000000010000000100000001000000EF -S3154000C80001000000010000000100000001000000DE -S3154000C81001000000010000000100000001000000CE -S3154000C82001000000010000000100000001000000BE -S3154000C83001000000010000000100000001000000AE -S3154000C840010000000100000001000000010000009E -S3154000C850010000000100000001000000010000008E -S3154000C860010000000100000001000000010000007E -S3154000C870010000000100000001000000010000006E -S3154000C880010000000100000001000000010000005E -S3154000C890010000000100000001000000010000004E -S3154000C8A0010000000100000001000000010000003E -S3154000C8B0010000000100000001000000010000002E -S3154000C8C0010000000100000001000000010000001E -S3154000C8D0010000000100000001000000010000000E -S3154000C8E001000000010000000100000001000000FE -S3154000C8F001000000010000000100000001000000EE -S3154000C90001000000010000000100000001000000DD -S3154000C91001000000010000000100000001000000CD -S3154000C92001000000010000000100000001000000BD -S3154000C93001000000010000000100000001000000AD -S3154000C940010000000100000001000000010000009D -S3154000C950010000000100000001000000010000008D -S3154000C960010000000100000001000000010000007D -S3154000C970010000000100000001000000010000006D -S3154000C980010000000100000001000000010000005D -S3154000C990010000000100000001000000010000004D -S3154000C9A0010000000100000001000000010000003D -S3154000C9B0010000000100000001000000010000002D -S3154000C9C0010000000100000001000000010000001D -S3154000C9D0010000000100000001000000010000000D -S3154000C9E001000000010000000100000001000000FD -S3154000C9F001000000010000000100000001000000ED -S3154000CA0001000000010000000100000001000000DC -S3154000CA1001000000010000000100000001000000CC -S3154000CA2001000000010000000100000001000000BC -S3154000CA3001000000010000000100000001000000AC -S3154000CA40010000000100000001000000010000009C -S3154000CA50010000000100000001000000010000008C -S3154000CA60010000000100000001000000010000007C -S3154000CA70010000000100000001000000010000006C -S3154000CA80010000000100000001000000010000005C -S3154000CA90010000000100000001000000010000004C -S3154000CAA0010000000100000001000000010000003C -S3154000CAB0010000000100000001000000010000002C -S3154000CAC0010000000100000001000000010000001C -S3154000CAD0010000000100000001000000010000000C -S3154000CAE001000000010000000100000001000000FC -S3154000CAF001000000010000000100000001000000EC -S3154000CB0001000000010000000100000001000000DB -S3154000CB1001000000010000000100000001000000CB -S3154000CB2001000000010000000100000001000000BB -S3154000CB3001000000010000000100000001000000AB -S3154000CB40010000000100000001000000010000009B -S3154000CB50010000000100000001000000010000008B -S3154000CB60010000000100000001000000010000007B -S3154000CB70010000000100000001000000010000006B -S3154000CB80010000000100000001000000010000005B -S3154000CB90010000000100000001000000010000004B -S3154000CBA0010000000100000001000000010000003B -S3154000CBB0010000000100000001000000010000002B -S3154000CBC0010000000100000001000000010000001B -S3154000CBD0010000000100000001000000010000000B -S3154000CBE001000000010000000100000001000000FB -S3154000CBF001000000010000000100000001000000EB -S3154000CC0001000000010000000100000001000000DA -S3154000CC1001000000010000000100000001000000CA -S3154000CC2001000000010000000100000001000000BA -S3154000CC3001000000010000000100000001000000AA -S3154000CC40010000000100000001000000010000009A -S3154000CC50010000000100000001000000010000008A -S3154000CC60010000000100000001000000010000007A -S3154000CC70010000000100000001000000010000006A -S3154000CC80010000000100000001000000010000005A -S3154000CC90010000000100000001000000010000004A -S3154000CCA0010000000100000001000000010000003A -S3154000CCB0010000000100000001000000010000002A -S3154000CCC0010000000100000001000000010000001A -S3154000CCD0010000000100000001000000010000000A -S3154000CCE001000000010000000100000001000000FA -S3154000CCF001000000010000000100000001000000EA -S3154000CD0001000000010000000100000001000000D9 -S3154000CD1001000000010000000100000001000000C9 -S3154000CD2001000000010000000100000001000000B9 -S3154000CD3001000000010000000100000001000000A9 -S3154000CD400100000001000000010000000100000099 -S3154000CD500100000001000000010000000100000089 -S3154000CD600100000001000000010000000100000079 -S3154000CD700100000001000000010000000100000069 -S3154000CD800100000001000000010000000100000059 -S3154000CD900100000001000000010000000100000049 -S3154000CDA00100000001000000010000000100000039 -S3154000CDB00100000001000000010000000100000029 -S3154000CDC00100000001000000010000000100000019 -S3154000CDD00100000001000000010000000100000009 -S3154000CDE001000000010000000100000001000000F9 -S3154000CDF001000000010000000100000001000000E9 -S3154000CE0001000000010000000100000001000000D8 -S3154000CE1001000000010000000100000001000000C8 -S3154000CE2001000000010000000100000001000000B8 -S3154000CE3001000000010000000100000001000000A8 -S3154000CE400100000001000000010000000100000098 -S3154000CE500100000001000000010000000100000088 -S3154000CE600100000001000000010000000100000078 -S3154000CE700100000001000000010000000100000068 -S3154000CE800100000001000000010000000100000058 -S3154000CE900100000001000000010000000100000048 -S3154000CEA00100000001000000010000000100000038 -S3154000CEB00100000001000000010000000100000028 -S3154000CEC00100000001000000010000000100000018 -S3154000CED00100000001000000010000000100000008 -S3154000CEE001000000010000000100000001000000F8 -S3154000CEF001000000010000000100000001000000E8 -S3154000CF0001000000010000000100000001000000D7 -S3154000CF1001000000010000000100000001000000C7 -S3154000CF2001000000010000000100000001000000B7 -S3154000CF3001000000010000000100000001000000A7 -S3154000CF400100000001000000010000000100000097 -S3154000CF500100000001000000010000000100000087 -S3154000CF600100000001000000010000000100000077 -S3154000CF700100000001000000010000000100000067 -S3154000CF800100000001000000010000000100000057 -S3154000CF900100000001000000010000000100000047 -S3154000CFA00100000001000000010000000100000037 -S3154000CFB00100000001000000010000000100000027 -S3154000CFC00100000001000000010000000100000017 -S3154000CFD00100000001000000010000000100000007 -S3154000CFE001000000010000000100000001000000F7 -S3154000CFF001000000010000000100000001000000E7 -S3154000D00001000000010000000100000001000000D6 -S3154000D01001000000010000000100000001000000C6 -S3154000D02001000000010000000100000001000000B6 -S3154000D03001000000010000000100000001000000A6 -S3154000D0400100000001000000010000000100000096 -S3154000D0500100000001000000010000000100000086 -S3154000D0600100000001000000010000000100000076 -S3154000D0700100000001000000010000000100000066 -S3154000D0800100000001000000010000000100000056 -S3154000D0900100000001000000010000000100000046 -S3154000D0A00100000001000000010000000100000036 -S3154000D0B00100000001000000010000000100000026 -S3154000D0C00100000001000000010000000100000016 -S3154000D0D00100000001000000010000000100000006 -S3154000D0E001000000010000000100000001000000F6 -S3154000D0F001000000010000000100000001000000E6 -S3154000D10001000000010000000100000001000000D5 -S3154000D11001000000010000000100000001000000C5 -S3154000D12001000000010000000100000001000000B5 -S3154000D13001000000010000000100000001000000A5 -S3154000D1400100000001000000010000000100000095 -S3154000D1500100000001000000010000000100000085 -S3154000D1600100000001000000010000000100000075 -S3154000D1700100000001000000010000000100000065 -S3154000D1800100000001000000010000000100000055 -S3154000D1900100000001000000010000000100000045 -S3154000D1A00100000001000000010000000100000035 -S3154000D1B00100000001000000010000000100000025 -S3154000D1C00100000001000000010000000100000015 -S3154000D1D00100000001000000010000000100000005 -S3154000D1E001000000010000000100000001000000F5 -S3154000D1F001000000010000000100000001000000E5 -S3154000D20001000000010000000100000001000000D4 -S3154000D21001000000010000000100000001000000C4 -S3154000D22001000000010000000100000001000000B4 -S3154000D23001000000010000000100000001000000A4 -S3154000D2400100000001000000010000000100000094 -S3154000D2500100000001000000010000000100000084 -S3154000D2600100000001000000010000000100000074 -S3154000D2700100000001000000010000000100000064 -S3154000D2800100000001000000010000000100000054 -S3154000D2900100000001000000010000000100000044 -S3154000D2A00100000001000000010000000100000034 -S3154000D2B00100000001000000010000000100000024 -S3154000D2C00100000001000000010000000100000014 -S3154000D2D00100000001000000010000000100000004 -S3154000D2E001000000010000000100000001000000F4 -S3154000D2F001000000010000000100000001000000E4 -S3154000D30001000000010000000100000001000000D3 -S3154000D31001000000010000000100000001000000C3 -S3154000D32001000000010000000100000001000000B3 -S3154000D33001000000010000000100000001000000A3 -S3154000D3400100000001000000010000000100000093 -S3154000D3500100000001000000010000000100000083 -S3154000D3600100000001000000010000000100000073 -S3154000D3700100000001000000010000000100000063 -S3154000D3800100000001000000010000000100000053 -S3154000D3900100000001000000010000000100000043 -S3154000D3A00100000001000000010000000100000033 -S3154000D3B00100000001000000010000000100000023 -S3154000D3C00100000001000000010000000100000013 -S3154000D3D00100000001000000010000000100000003 -S3154000D3E001000000010000000100000001000000F3 -S3154000D3F001000000010000000100000001000000E3 -S3154000D40001000000010000000100000001000000D2 -S3154000D41001000000010000000100000001000000C2 -S3154000D42001000000010000000100000001000000B2 -S3154000D43001000000010000000100000001000000A2 -S3154000D4400100000001000000010000000100000092 -S3154000D4500100000001000000010000000100000082 -S3154000D4600100000001000000010000000100000072 -S3154000D4700100000001000000010000000100000062 -S3154000D4800100000001000000010000000100000052 -S3154000D4900100000001000000010000000100000042 -S3154000D4A00100000001000000010000000100000032 -S3154000D4B00100000001000000010000000100000022 -S3154000D4C00100000001000000010000000100000012 -S3154000D4D00100000001000000010000000100000002 -S3154000D4E001000000010000000100000001000000F2 -S3154000D4F001000000010000000100000001000000E2 -S3154000D50001000000010000000100000001000000D1 -S3154000D51001000000010000000100000001000000C1 -S3154000D52001000000010000000100000001000000B1 -S3154000D53001000000010000000100000001000000A1 -S3154000D5400100000001000000010000000100000091 -S3154000D5500100000001000000010000000100000081 -S3154000D5600100000001000000010000000100000071 -S3154000D5700100000001000000010000000100000061 -S3154000D5800100000001000000010000000100000051 -S3154000D5900100000001000000010000000100000041 -S3154000D5A00100000001000000010000000100000031 -S3154000D5B00100000001000000010000000100000021 -S3154000D5C00100000001000000010000000100000011 -S3154000D5D00100000001000000010000000100000001 -S3154000D5E001000000010000000100000001000000F1 -S3154000D5F001000000010000000100000001000000E1 -S3154000D60001000000010000000100000001000000D0 -S3154000D61001000000010000000100000001000000C0 -S3154000D62001000000010000000100000001000000B0 -S3154000D63001000000010000000100000001000000A0 -S3154000D6400100000001000000010000000100000090 -S3154000D6500100000001000000010000000100000080 -S3154000D6600100000001000000010000000100000070 -S3154000D6700100000001000000010000000100000060 -S3154000D6800100000001000000010000000100000050 -S3154000D6900100000001000000010000000100000040 -S3154000D6A00100000001000000010000000100000030 -S3154000D6B00100000001000000010000000100000020 -S3154000D6C00100000001000000010000000100000010 -S3154000D6D00100000001000000010000000100000000 -S3154000D6E001000000010000000100000001000000F0 -S3154000D6F001000000010000000100000001000000E0 -S3154000D70001000000010000000100000001000000CF -S3154000D71001000000010000000100000001000000BF -S3154000D72001000000010000000100000001000000AF -S3154000D730010000000100000001000000010000009F -S3154000D740010000000100000001000000010000008F -S3154000D750010000000100000001000000010000007F -S3154000D760010000000100000001000000010000006F -S3154000D770010000000100000001000000010000005F -S3154000D780010000000100000001000000010000004F -S3154000D790010000000100000001000000010000003F -S3154000D7A0010000000100000001000000010000002F -S3154000D7B0010000000100000001000000010000001F -S3154000D7C0010000000100000001000000010000000F -S3154000D7D001000000010000000100000001000000FF -S3154000D7E001000000010000000100000001000000EF -S3154000D7F001000000010000000100000001000000DF -S3154000D80001000000010000000100000001000000CE -S3154000D81001000000010000000100000001000000BE -S3154000D82001000000010000000100000001000000AE -S3154000D830010000000100000001000000010000009E -S3154000D840010000000100000001000000010000008E -S3154000D850010000000100000001000000010000007E -S3154000D860010000000100000001000000010000006E -S3154000D870010000000100000001000000010000005E -S3154000D880010000000100000001000000010000004E -S3154000D890010000000100000001000000010000003E -S3154000D8A0010000000100000001000000010000002E -S3154000D8B0010000000100000001000000010000001E -S3154000D8C0010000000100000001000000010000000E -S3154000D8D001000000010000000100000001000000FE -S3154000D8E001000000010000000100000001000000EE -S3154000D8F001000000010000000100000001000000DE -S3154000D90001000000010000000100000001000000CD -S3154000D91001000000010000000100000001000000BD -S3154000D92001000000010000000100000001000000AD -S3154000D930010000000100000001000000010000009D -S3154000D940010000000100000001000000010000008D -S3154000D950010000000100000001000000010000007D -S3154000D960010000000100000001000000010000006D -S3154000D970010000000100000001000000010000005D -S3154000D980010000000100000001000000010000004D -S3154000D990010000000100000001000000010000003D -S3154000D9A0010000000100000001000000010000002D -S3154000D9B0010000000100000001000000010000001D -S3154000D9C0010000000100000001000000010000000D -S3154000D9D001000000010000000100000001000000FD -S3154000D9E001000000010000000100000001000000ED -S3154000D9F001000000010000000100000001000000DD -S3154000DA0001000000010000000100000001000000CC -S3154000DA1001000000010000000100000001000000BC -S3154000DA2001000000010000000100000001000000AC -S3154000DA30010000000100000001000000010000009C -S3154000DA40010000000100000001000000010000008C -S3154000DA50010000000100000001000000010000007C -S3154000DA60010000000100000001000000010000006C -S3154000DA70010000000100000001000000010000005C -S3154000DA80010000000100000001000000010000004C -S3154000DA90010000000100000001000000010000003C -S3154000DAA0010000000100000001000000010000002C -S3154000DAB0010000000100000001000000010000001C -S3154000DAC0010000000100000001000000010000000C -S3154000DAD001000000010000000100000001000000FC -S3154000DAE001000000010000000100000001000000EC -S3154000DAF001000000010000000100000001000000DC -S3154000DB0001000000010000000100000001000000CB -S3154000DB1001000000010000000100000001000000BB -S3154000DB2001000000010000000100000001000000AB -S3154000DB30010000000100000001000000010000009B -S3154000DB40010000000100000001000000010000008B -S3154000DB50010000000100000001000000010000007B -S3154000DB60010000000100000001000000010000006B -S3154000DB70010000000100000001000000010000005B -S3154000DB80010000000100000001000000010000004B -S3154000DB90010000000100000001000000010000003B -S3154000DBA0010000000100000001000000010000002B -S3154000DBB0010000000100000001000000010000001B -S3154000DBC0010000000100000001000000010000000B -S3154000DBD001000000010000000100000001000000FB -S3154000DBE001000000010000000100000001000000EB -S3154000DBF001000000010000000100000001000000DB -S3154000DC0001000000010000000100000001000000CA -S3154000DC1001000000010000000100000001000000BA -S3154000DC2001000000010000000100000001000000AA -S3154000DC30010000000100000001000000010000009A -S3154000DC40010000000100000001000000010000008A -S3154000DC50010000000100000001000000010000007A -S3154000DC60010000000100000001000000010000006A -S3154000DC70010000000100000001000000010000005A -S3154000DC80010000000100000001000000010000004A -S3154000DC90010000000100000001000000010000003A -S3154000DCA0010000000100000001000000010000002A -S3154000DCB0010000000100000001000000010000001A -S3154000DCC0010000000100000001000000010000000A -S3154000DCD001000000010000000100000001000000FA -S3154000DCE001000000010000000100000001000000EA -S3154000DCF001000000010000000100000001000000DA -S3154000DD0001000000010000000100000001000000C9 -S3154000DD1001000000010000000100000001000000B9 -S3154000DD2001000000010000000100000001000000A9 -S3154000DD300100000001000000010000000100000099 -S3154000DD400100000001000000010000000100000089 -S3154000DD500100000001000000010000000100000079 -S3154000DD600100000001000000010000000100000069 -S3154000DD700100000001000000010000000100000059 -S3154000DD800100000001000000010000000100000049 -S3154000DD900100000001000000010000000100000039 -S3154000DDA00100000001000000010000000100000029 -S3154000DDB00100000001000000010000000100000019 -S3154000DDC00100000001000000010000000100000009 -S3154000DDD001000000010000000100000001000000F9 -S3154000DDE001000000010000000100000001000000E9 -S3154000DDF001000000010000000100000001000000D9 -S3154000DE0001000000010000000100000001000000C8 -S3154000DE1001000000010000000100000001000000B8 -S3154000DE2001000000010000000100000001000000A8 -S3154000DE300100000001000000010000000100000098 -S3154000DE400100000001000000010000000100000088 -S3154000DE500100000001000000010000000100000078 -S3154000DE600100000001000000010000000100000068 -S3154000DE700100000001000000010000000100000058 -S3154000DE800100000001000000010000000100000048 -S3154000DE900100000001000000010000000100000038 -S3154000DEA00100000001000000010000000100000028 -S3154000DEB00100000001000000010000000100000018 -S3154000DEC00100000001000000010000000100000008 -S3154000DED001000000010000000100000001000000F8 -S3154000DEE001000000010000000100000001000000E8 -S3154000DEF001000000010000000100000001000000D8 -S3154000DF0001000000010000000100000001000000C7 -S3154000DF1001000000010000000100000001000000B7 -S3154000DF2001000000010000000100000001000000A7 -S3154000DF300100000001000000010000000100000097 -S3154000DF400100000001000000010000000100000087 -S3154000DF500100000001000000010000000100000077 -S3154000DF600100000001000000010000000100000067 -S3154000DF700100000001000000010000000100000057 -S3154000DF800100000001000000010000000100000047 -S3154000DF900100000001000000010000000100000037 -S3154000DFA00100000001000000010000000100000027 -S3154000DFB00100000001000000010000000100000017 -S3154000DFC00100000001000000010000000100000007 -S3154000DFD001000000010000000100000001000000F7 -S3154000DFE001000000010000000100000001000000E7 -S3154000DFF001000000010000000100000001000000D7 -S3154000E00001000000010000000100000001000000C6 -S3154000E01001000000010000000100000001000000B6 -S3154000E02001000000010000000100000001000000A6 -S3154000E0300100000001000000010000000100000096 -S3154000E0400100000001000000010000000100000086 -S3154000E0500100000001000000010000000100000076 -S3154000E0600100000001000000010000000100000066 -S3154000E0700100000001000000010000000100000056 -S3154000E0800100000001000000010000000100000046 -S3154000E0900100000001000000010000000100000036 -S3154000E0A00100000001000000010000000100000026 -S3154000E0B00100000001000000010000000100000016 -S3154000E0C00100000001000000010000000100000006 -S3154000E0D001000000010000000100000001000000F6 -S3154000E0E001000000010000000100000001000000E6 -S3154000E0F001000000010000000100000001000000D6 -S3154000E10001000000010000000100000001000000C5 -S3154000E11001000000010000000100000001000000B5 -S3154000E12001000000010000000100000001000000A5 -S3154000E1300100000001000000010000000100000095 -S3154000E1400100000001000000010000000100000085 -S3154000E1500100000001000000010000000100000075 -S3154000E1600100000001000000010000000100000065 -S3154000E1700100000001000000010000000100000055 -S3154000E1800100000001000000010000000100000045 -S3154000E1900100000001000000010000000100000035 -S3154000E1A00100000001000000010000000100000025 -S3154000E1B00100000001000000010000000100000015 -S3154000E1C00100000001000000010000000100000005 -S3154000E1D001000000010000000100000001000000F5 -S3154000E1E001000000010000000100000001000000E5 -S3154000E1F001000000010000000100000001000000D5 -S3154000E20001000000010000000100000001000000C4 -S3154000E21001000000010000000100000001000000B4 -S3154000E22001000000010000000100000001000000A4 -S3154000E2300100000001000000010000000100000094 -S3154000E2400100000001000000010000000100000084 -S3154000E2500100000001000000010000000100000074 -S3154000E2600100000001000000010000000100000064 -S3154000E2700100000001000000010000000100000054 -S3154000E2800100000001000000010000000100000044 -S3154000E2900100000001000000010000000100000034 -S3154000E2A00100000001000000010000000100000024 -S3154000E2B00100000001000000010000000100000014 -S3154000E2C00100000001000000010000000100000004 -S3154000E2D001000000010000000100000001000000F4 -S3154000E2E001000000010000000100000001000000E4 -S3154000E2F001000000010000000100000001000000D4 -S3154000E30001000000010000000100000001000000C3 -S3154000E31001000000010000000100000001000000B3 -S3154000E32001000000010000000100000001000000A3 -S3154000E3300100000001000000010000000100000093 -S3154000E3400100000001000000010000000100000083 -S3154000E3500100000001000000010000000100000073 -S3154000E3600100000001000000010000000100000063 -S3154000E3700100000001000000010000000100000053 -S3154000E3800100000001000000010000000100000043 -S3154000E3900100000001000000010000000100000033 -S3154000E3A00100000001000000010000000100000023 -S3154000E3B00100000001000000010000000100000013 -S3154000E3C00100000001000000010000000100000003 -S3154000E3D001000000010000000100000001000000F3 -S3154000E3E001000000010000000100000001000000E3 -S3154000E3F001000000010000000100000001000000D3 -S3154000E40001000000010000000100000001000000C2 -S3154000E41001000000010000000100000001000000B2 -S3154000E42001000000010000000100000001000000A2 -S3154000E4300100000001000000010000000100000092 -S3154000E4400100000001000000010000000100000082 -S3154000E4500100000001000000010000000100000072 -S3154000E4600100000001000000010000000100000062 -S3154000E4700100000001000000010000000100000052 -S3154000E4800100000001000000010000000100000042 -S3154000E4900100000001000000010000000100000032 -S3154000E4A00100000001000000010000000100000022 -S3154000E4B00100000001000000010000000100000012 -S3154000E4C00100000001000000010000000100000002 -S3154000E4D001000000010000000100000001000000F2 -S3154000E4E001000000010000000100000001000000E2 -S3154000E4F001000000010000000100000001000000D2 -S3154000E50001000000010000000100000001000000C1 -S3154000E51001000000010000000100000001000000B1 -S3154000E52001000000010000000100000001000000A1 -S3154000E5300100000001000000010000000100000091 -S3154000E5400100000001000000010000000100000081 -S3154000E5500100000001000000010000000100000071 -S3154000E5600100000001000000010000000100000061 -S3154000E5700100000001000000010000000100000051 -S3154000E5800100000001000000010000000100000041 -S3154000E5900100000001000000010000000100000031 -S3154000E5A00100000001000000010000000100000021 -S3154000E5B00100000001000000010000000100000011 -S3154000E5C00100000001000000010000000100000001 -S3154000E5D001000000010000000100000001000000F1 -S3154000E5E001000000010000000100000001000000E1 -S3154000E5F001000000010000000100000001000000D1 -S3154000E60001000000010000000100000001000000C0 -S3154000E61001000000010000000100000001000000B0 -S3154000E62001000000010000000100000001000000A0 -S3154000E6300100000001000000010000000100000090 -S3154000E6400100000001000000010000000100000080 -S3154000E6500100000001000000010000000100000070 -S3154000E6600100000001000000010000000100000060 -S3154000E6700100000001000000010000000100000050 -S3154000E6800100000001000000010000000100000040 -S3154000E6900100000001000000010000000100000030 -S3154000E6A00100000001000000010000000100000020 -S3154000E6B00100000001000000010000000100000010 -S3154000E6C00100000001000000010000000100000000 -S3154000E6D001000000010000000100000001000000F0 -S3154000E6E001000000010000000100000001000000E0 -S3154000E6F001000000010000000100000001000000D0 -S3154000E70001000000010000000100000001000000BF -S3154000E71001000000010000000100000001000000AF -S3154000E720010000000100000001000000010000009F -S3154000E730010000000100000001000000010000008F -S3154000E740010000000100000001000000010000007F -S3154000E750010000000100000001000000010000006F -S3154000E760010000000100000001000000010000005F -S3154000E770010000000100000001000000010000004F -S3154000E780010000000100000001000000010000003F -S3154000E790010000000100000001000000010000002F -S3154000E7A0010000000100000001000000010000001F -S3154000E7B0010000000100000001000000010000000F -S3154000E7C001000000010000000100000001000000FF -S3154000E7D001000000010000000100000001000000EF -S3154000E7E001000000010000000100000001000000DF -S3154000E7F001000000010000000100000001000000CF -S3154000E80001000000010000000100000001000000BE -S3154000E81001000000010000000100000001000000AE -S3154000E820010000000100000001000000010000009E -S3154000E830010000000100000001000000010000008E -S3154000E840010000000100000001000000010000007E -S3154000E850010000000100000001000000010000006E -S3154000E860010000000100000001000000010000005E -S3154000E870010000000100000001000000010000004E -S3154000E880010000000100000001000000010000003E -S3154000E890010000000100000001000000010000002E -S3154000E8A0010000000100000001000000010000001E -S3154000E8B0010000000100000001000000010000000E -S3154000E8C001000000010000000100000001000000FE -S3154000E8D001000000010000000100000001000000EE -S3154000E8E001000000010000000100000001000000DE -S3154000E8F001000000010000000100000001000000CE -S3154000E90001000000010000000100000001000000BD -S3154000E91001000000010000000100000001000000AD -S3154000E920010000000100000001000000010000009D -S3154000E930010000000100000001000000010000008D -S3154000E940010000000100000001000000010000007D -S3154000E950010000000100000001000000010000006D -S3154000E960010000000100000001000000010000005D -S3154000E970010000000100000001000000010000004D -S3154000E980010000000100000001000000010000003D -S3154000E990010000000100000001000000010000002D -S3154000E9A0010000000100000001000000010000001D -S3154000E9B0010000000100000001000000010000000D -S3154000E9C001000000010000000100000001000000FD -S3154000E9D001000000010000000100000001000000ED -S3154000E9E001000000010000000100000001000000DD -S3154000E9F001000000010000000100000001000000CD -S3154000EA0001000000010000000100000001000000BC -S3154000EA1001000000010000000100000001000000AC -S3154000EA20010000000100000001000000010000009C -S3154000EA30010000000100000001000000010000008C -S3154000EA40010000000100000001000000010000007C -S3154000EA50010000000100000001000000010000006C -S3154000EA60010000000100000001000000010000005C -S3154000EA70010000000100000001000000010000004C -S3154000EA80010000000100000001000000010000003C -S3154000EA90010000000100000001000000010000002C -S3154000EAA0010000000100000001000000010000001C -S3154000EAB0010000000100000001000000010000000C -S3154000EAC001000000010000000100000001000000FC -S3154000EAD001000000010000000100000001000000EC -S3154000EAE001000000010000000100000001000000DC -S3154000EAF001000000010000000100000001000000CC -S3154000EB0001000000010000000100000001000000BB -S3154000EB1001000000010000000100000001000000AB -S3154000EB20010000000100000001000000010000009B -S3154000EB30010000000100000001000000010000008B -S3154000EB40010000000100000001000000010000007B -S3154000EB50010000000100000001000000010000006B -S3154000EB60010000000100000001000000010000005B -S3154000EB70010000000100000001000000010000004B -S3154000EB80010000000100000001000000010000003B -S3154000EB90010000000100000001000000010000002B -S3154000EBA0010000000100000001000000010000001B -S3154000EBB0010000000100000001000000010000000B -S3154000EBC001000000010000000100000001000000FB -S3154000EBD001000000010000000100000001000000EB -S3154000EBE001000000010000000100000001000000DB -S3154000EBF001000000010000000100000001000000CB -S3154000EC0001000000010000000100000001000000BA -S3154000EC1001000000010000000100000001000000AA -S3154000EC20010000000100000001000000010000009A -S3154000EC30010000000100000001000000010000008A -S3154000EC40010000000100000001000000010000007A -S3154000EC50010000000100000001000000010000006A -S3154000EC60010000000100000001000000010000005A -S3154000EC70010000000100000001000000010000004A -S3154000EC80010000000100000001000000010000003A -S3154000EC90010000000100000001000000010000002A -S3154000ECA0010000000100000001000000010000001A -S3154000ECB0010000000100000001000000010000000A -S3154000ECC001000000010000000100000001000000FA -S3154000ECD001000000010000000100000001000000EA -S3154000ECE001000000010000000100000001000000DA -S3154000ECF001000000010000000100000001000000CA -S3154000ED0001000000010000000100000001000000B9 -S3154000ED1001000000010000000100000001000000A9 -S3154000ED200100000001000000010000000100000099 -S3154000ED300100000001000000010000000100000089 -S3154000ED400100000001000000010000000100000079 -S3154000ED500100000001000000010000000100000069 -S3154000ED600100000001000000010000000100000059 -S3154000ED700100000001000000010000000100000049 -S3154000ED800100000001000000010000000100000039 -S3154000ED900100000001000000010000000100000029 -S3154000EDA00100000001000000010000000100000019 -S3154000EDB00100000001000000010000000100000009 -S3154000EDC001000000010000000100000001000000F9 -S3154000EDD001000000010000000100000001000000E9 -S3154000EDE001000000010000000100000001000000D9 -S3154000EDF001000000010000000100000001000000C9 -S3154000EE0001000000010000000100000001000000B8 -S3154000EE1001000000010000000100000001000000A8 -S3154000EE200100000001000000010000000100000098 -S3154000EE300100000001000000010000000100000088 -S3154000EE400100000001000000010000000100000078 -S3154000EE500100000001000000010000000100000068 -S3154000EE600100000001000000010000000100000058 -S3154000EE700100000001000000010000000100000048 -S3154000EE800100000001000000010000000100000038 -S3154000EE900100000001000000010000000100000028 -S3154000EEA00100000001000000010000000100000018 -S3154000EEB00100000001000000010000000100000008 -S3154000EEC001000000010000000100000001000000F8 -S3154000EED001000000010000000100000001000000E8 -S3154000EEE001000000010000000100000001000000D8 -S3154000EEF001000000010000000100000001000000C8 -S3154000EF0001000000010000000100000001000000B7 -S3154000EF1001000000010000000100000001000000A7 -S3154000EF200100000001000000010000000100000097 -S3154000EF300100000001000000010000000100000087 -S3154000EF400100000001000000010000000100000077 -S3154000EF500100000001000000010000000100000067 -S3154000EF600100000001000000010000000100000057 -S3154000EF700100000001000000010000000100000047 -S3154000EF800100000001000000010000000100000037 -S3154000EF900100000001000000010000000100000027 -S3154000EFA00100000001000000010000000100000017 -S3154000EFB00100000001000000010000000100000007 -S3154000EFC001000000010000000100000001000000F7 -S3154000EFD001000000010000000100000001000000E7 -S3154000EFE001000000010000000100000001000000D7 -S3154000EFF001000000010000000100000001000000C7 -S3154000F00001000000010000000100000001000000B6 -S3154000F01001000000010000000100000001000000A6 -S3154000F0200100000001000000010000000100000096 -S3154000F0300100000001000000010000000100000086 -S3154000F0400100000001000000010000000100000076 -S3154000F0500100000001000000010000000100000066 -S3154000F0600100000001000000010000000100000056 -S3154000F0700100000001000000010000000100000046 -S3154000F0800100000001000000010000000100000036 -S3154000F0900100000001000000010000000100000026 -S3154000F0A00100000001000000010000000100000016 -S3154000F0B00100000001000000010000000100000006 -S3154000F0C001000000010000000100000001000000F6 -S3154000F0D001000000010000000100000001000000E6 -S3154000F0E001000000010000000100000001000000D6 -S3154000F0F001000000010000000100000001000000C6 -S3154000F10001000000010000000100000001000000B5 -S3154000F11001000000010000000100000001000000A5 -S3154000F1200100000001000000010000000100000095 -S3154000F1300100000001000000010000000100000085 -S3154000F1400100000001000000010000000100000075 -S3154000F1500100000001000000010000000100000065 -S3154000F1600100000001000000010000000100000055 -S3154000F1700100000001000000010000000100000045 -S3154000F1800100000001000000010000000100000035 -S3154000F1900100000001000000010000000100000025 -S3154000F1A00100000001000000010000000100000015 -S3154000F1B00100000001000000010000000100000005 -S3154000F1C001000000010000000100000001000000F5 -S3154000F1D001000000010000000100000001000000E5 -S3154000F1E001000000010000000100000001000000D5 -S3154000F1F001000000010000000100000001000000C5 -S3154000F20001000000010000000100000001000000B4 -S3154000F21001000000010000000100000001000000A4 -S3154000F2200100000001000000010000000100000094 -S3154000F2300100000001000000010000000100000084 -S3154000F2400100000001000000010000000100000074 -S3154000F2500100000001000000010000000100000064 -S3154000F2600100000001000000010000000100000054 -S3154000F2700100000001000000010000000100000044 -S3154000F2800100000001000000010000000100000034 -S3154000F2900100000001000000010000000100000024 -S3154000F2A00100000001000000010000000100000014 -S3154000F2B00100000001000000010000000100000004 -S3154000F2C001000000010000000100000001000000F4 -S3154000F2D001000000010000000100000001000000E4 -S3154000F2E001000000010000000100000001000000D4 -S3154000F2F001000000010000000100000001000000C4 -S3154000F30001000000010000000100000001000000B3 -S3154000F31001000000010000000100000001000000A3 -S3154000F3200100000001000000010000000100000093 -S3154000F3300100000001000000010000000100000083 -S3154000F3400100000001000000010000000100000073 -S3154000F3500100000001000000010000000100000063 -S3154000F3600100000001000000010000000100000053 -S3154000F3700100000001000000010000000100000043 -S3154000F3800100000001000000010000000100000033 -S3154000F3900100000001000000010000000100000023 -S3154000F3A00100000001000000010000000100000013 -S3154000F3B00100000001000000010000000100000003 -S3154000F3C001000000010000000100000001000000F3 -S3154000F3D001000000010000000100000001000000E3 -S3154000F3E001000000010000000100000001000000D3 -S3154000F3F001000000010000000100000001000000C3 -S3154000F40001000000010000000100000001000000B2 -S3154000F41001000000010000000100000001000000A2 -S3154000F4200100000001000000010000000100000092 -S3154000F4300100000001000000010000000100000082 -S3154000F4400100000001000000010000000100000072 -S3154000F4500100000001000000010000000100000062 -S3154000F4600100000001000000010000000100000052 -S3154000F4700100000001000000010000000100000042 -S3154000F4800100000001000000010000000100000032 -S3154000F4900100000001000000010000000100000022 -S3154000F4A00100000001000000010000000100000012 -S3154000F4B00100000001000000010000000100000002 -S3154000F4C001000000010000000100000001000000F2 -S3154000F4D001000000010000000100000001000000E2 -S3154000F4E001000000010000000100000001000000D2 -S3154000F4F001000000010000000100000001000000C2 -S3154000F50001000000010000000100000001000000B1 -S3154000F51001000000010000000100000001000000A1 -S3154000F5200100000001000000010000000100000091 -S3154000F5300100000001000000010000000100000081 -S3154000F5400100000001000000010000000100000071 -S3154000F5500100000001000000010000000100000061 -S3154000F5600100000001000000010000000100000051 -S3154000F5700100000001000000010000000100000041 -S3154000F5800100000001000000010000000100000031 -S3154000F5900100000001000000010000000100000021 -S3154000F5A00100000001000000010000000100000011 -S3154000F5B00100000001000000010000000100000001 -S3154000F5C001000000010000000100000001000000F1 -S3154000F5D001000000010000000100000001000000E1 -S3154000F5E001000000010000000100000001000000D1 -S3154000F5F001000000010000000100000001000000C1 -S3154000F60001000000010000000100000001000000B0 -S3154000F61001000000010000000100000001000000A0 -S3154000F6200100000001000000010000000100000090 -S3154000F6300100000001000000010000000100000080 -S3154000F6400100000001000000010000000100000070 -S3154000F6500100000001000000010000000100000060 -S3154000F6600100000001000000010000000100000050 -S3154000F6700100000001000000010000000100000040 -S3154000F6800100000001000000010000000100000030 -S3154000F6900100000001000000010000000100000020 -S3154000F6A00100000001000000010000000100000010 -S3154000F6B00100000001000000010000000100000000 -S3154000F6C001000000010000000100000001000000F0 -S3154000F6D001000000010000000100000001000000E0 -S3154000F6E001000000010000000100000001000000D0 -S3154000F6F001000000010000000100000001000000C0 -S3154000F70001000000010000000100000001000000AF -S3154000F710010000000100000001000000010000009F -S3154000F720010000000100000001000000010000008F -S3154000F730010000000100000001000000010000007F -S3154000F740010000000100000001000000010000006F -S3154000F750010000000100000001000000010000005F -S3154000F760010000000100000001000000010000004F -S3154000F770010000000100000001000000010000003F -S3154000F780010000000100000001000000010000002F -S3154000F790010000000100000001000000010000001F -S3154000F7A0010000000100000001000000010000000F -S3154000F7B001000000010000000100000001000000FF -S3154000F7C001000000010000000100000001000000EF -S3154000F7D001000000010000000100000001000000DF -S3154000F7E001000000010000000100000001000000CF -S3154000F7F001000000010000000100000001000000BF -S3154000F80001000000010000000100000001000000AE -S3154000F810010000000100000001000000010000009E -S3154000F820010000000100000001000000010000008E -S3154000F830010000000100000001000000010000007E -S3154000F840010000000100000001000000010000006E -S3154000F850010000000100000001000000010000005E -S3154000F860010000000100000001000000010000004E -S3154000F870010000000100000001000000010000003E -S3154000F880010000000100000001000000010000002E -S3154000F890010000000100000001000000010000001E -S3154000F8A0010000000100000001000000010000000E -S3154000F8B001000000010000000100000001000000FE -S3154000F8C001000000010000000100000001000000EE -S3154000F8D001000000010000000100000001000000DE -S3154000F8E001000000010000000100000001000000CE -S3154000F8F001000000010000000100000001000000BE -S3154000F90001000000010000000100000001000000AD -S3154000F910010000000100000001000000010000009D -S3154000F920010000000100000001000000010000008D -S3154000F930010000000100000001000000010000007D -S3154000F940010000000100000001000000010000006D -S3154000F950010000000100000001000000010000005D -S3154000F960010000000100000001000000010000004D -S3154000F970010000000100000001000000010000003D -S3154000F980010000000100000001000000010000002D -S3154000F990010000000100000001000000010000001D -S3154000F9A0010000000100000001000000010000000D -S3154000F9B001000000010000000100000001000000FD -S3154000F9C001000000010000000100000001000000ED -S3154000F9D001000000010000000100000001000000DD -S3154000F9E001000000010000000100000001000000CD -S3154000F9F001000000010000000100000001000000BD -S3154000FA0001000000010000000100000001000000AC -S3154000FA10010000000100000001000000010000009C -S3154000FA20010000000100000001000000010000008C -S3154000FA30010000000100000001000000010000007C -S3154000FA40010000000100000001000000010000006C -S3154000FA50010000000100000001000000010000005C -S3154000FA60010000000100000001000000010000004C -S3154000FA70010000000100000001000000010000003C -S3154000FA80010000000100000001000000010000002C -S3154000FA90010000000100000001000000010000001C -S3154000FAA0010000000100000001000000010000000C -S3154000FAB001000000010000000100000001000000FC -S3154000FAC001000000010000000100000001000000EC -S3154000FAD001000000010000000100000001000000DC -S3154000FAE001000000010000000100000001000000CC -S3154000FAF001000000010000000100000001000000BC -S3154000FB0001000000010000000100000001000000AB -S3154000FB10010000000100000001000000010000009B -S3154000FB20010000000100000001000000010000008B -S3154000FB30010000000100000001000000010000007B -S3154000FB40010000000100000001000000010000006B -S3154000FB50010000000100000001000000010000005B -S3154000FB60010000000100000001000000010000004B -S3154000FB70010000000100000001000000010000003B -S3154000FB80010000000100000001000000010000002B -S3154000FB90010000000100000001000000010000001B -S3154000FBA0010000000100000001000000010000000B -S3154000FBB001000000010000000100000001000000FB -S3154000FBC001000000010000000100000001000000EB -S3154000FBD001000000010000000100000001000000DB -S3154000FBE001000000010000000100000001000000CB -S3154000FBF001000000010000000100000001000000BB -S3154000FC0001000000010000000100000001000000AA -S3154000FC10010000000100000001000000010000009A -S3154000FC20010000000100000001000000010000008A -S3154000FC30010000000100000001000000010000007A -S3154000FC40010000000100000001000000010000006A -S3154000FC50010000000100000001000000010000005A -S3154000FC60010000000100000001000000010000004A -S3154000FC70010000000100000001000000010000003A -S3154000FC80010000000100000001000000010000002A -S3154000FC90010000000100000001000000010000001A -S3154000FCA0010000000100000001000000010000000A -S3154000FCB001000000010000000100000001000000FA -S3154000FCC001000000010000000100000001000000EA -S3154000FCD001000000010000000100000001000000DA -S3154000FCE001000000010000000100000001000000CA -S3154000FCF001000000010000000100000001000000BA -S3154000FD0001000000010000000100000001000000A9 -S3154000FD100100000001000000010000000100000099 -S3154000FD200100000001000000010000000100000089 -S3154000FD300100000001000000010000000100000079 -S3154000FD400100000001000000010000000100000069 -S3154000FD500100000001000000010000000100000059 -S3154000FD600100000001000000010000000100000049 -S3154000FD700100000001000000010000000100000039 -S3154000FD800100000001000000010000000100000029 -S3154000FD900100000001000000010000000100000019 -S3154000FDA00100000001000000010000000100000009 -S3154000FDB001000000010000000100000001000000F9 -S3154000FDC001000000010000000100000001000000E9 -S3154000FDD001000000010000000100000001000000D9 -S3154000FDE001000000010000000100000001000000C9 -S3154000FDF001000000010000000100000001000000B9 -S3154000FE0001000000010000000100000001000000A8 -S3154000FE100100000001000000010000000100000098 -S3154000FE200100000001000000010000000100000088 -S3154000FE300100000001000000010000000100000078 -S3154000FE400100000001000000010000000100000068 -S3154000FE500100000001000000010000000100000058 -S3154000FE600100000001000000010000000100000048 -S3154000FE700100000001000000010000000100000038 -S3154000FE800100000001000000010000000100000028 -S3154000FE900100000001000000010000000100000018 -S3154000FEA00100000001000000010000000100000008 -S3154000FEB001000000010000000100000001000000F8 -S3154000FEC001000000010000000100000001000000E8 -S3154000FED001000000010000000100000001000000D8 -S3154000FEE001000000010000000100000001000000C8 -S3154000FEF001000000010000000100000001000000B8 -S3154000FF0001000000010000000100000001000000A7 -S3154000FF100100000001000000010000000100000097 -S3154000FF200100000001000000010000000100000087 -S3154000FF300100000001000000010000000100000077 -S3154000FF400100000001000000010000000100000067 -S3154000FF500100000001000000010000000100000057 -S3154000FF600100000001000000010000000100000047 -S3154000FF700100000001000000010000000100000037 -S3154000FF800100000001000000010000000100000027 -S3154000FF900100000001000000010000000100000017 -S3154000FFA00100000001000000010000000100000007 -S3154000FFB001000000010000000100000001000000F7 -S3154000FFC001000000010000000100000001000000E7 -S3154000FFD001000000010000000100000001000000D7 -S3154000FFE001000000010000000100000001000000C7 -S3154000FFF001000000010000000100000001000000B7 -S315400100009DE3BF987FFFC4741100403080A2200059 -S31540010010128000F382102001C226200CC026200443 -S31540010020C0260000C026200882102002C2262008D1 -S31540010030C0260000C026000082102003C2262008E8 -S315400100409A102083DA262008A2102063C0260000D9 -S31540010050A2847FFF1CBFFFFE01000000A2102063A7 -S31540010060C2060000A2847FFF1CBFFFFE8210200251 -S31540010070C2262008A4062004C28480208088600409 -S3154001008002BFFFFE01000000C0262008C026000076 -S31540010090A6102001C2848020833860148208603F04 -S315400100A080A0600122800093A604E0018210200313 -S315400100B0C2262008C2848020808860010280000711 -S315400100C080886004C2860020C284802080886001C6 -S315400100D012BFFFFD8088600402BFFFFB808860027B -S315400100E002BFFFF901000000C0262008C0262004F7 -S315400100F080A4E0010480000821100080C284802091 -S315400101008208608080A06001028000AE010000008C -S3154001011021100080DA4C20F0DA260000C2848020CB -S315400101208208600480A060010280009A01000000FC -S31540010130C284802080A4E001048000208210200136 -S31540010140A210200180A440131680000D2B100080C0 -S31540010150A81420F0E00560E8901000114000247AD0 -S3154001016092100010C24D0008A2046001C226000090 -S3154001017080A4401306BFFFFA90100011C28480206C -S315400101808208608080A06001028000920100000028 -S31540010190C2848020833860148208603F80A0401367 -S315400101A002800004010000007FFFC4159010200664 -S315400101B0C284802082102001C226200CDA8480204D -S315400101C0808B60011280006801000000821020834C -S315400101D0C226200880A4E0010280005201000000EE -S315400101E0C28480208088640002BFFFFE01000000B7 -S315400101F0C284802080886001028000530100000093 -S3154001020080A4E00124800012A2102000C284802034 -S315400102108330601A80A04013028000040100000070 -S315400102207FFFC3F790102009C28480208088610037 -S315400102300280005501000000C2848020808864004D -S315400102400280004D01000000A210200080A440134E -S315400102501680001203100080A81060F02B10008059 -S31540010260E08600209010001140002437D20560E856 -S31540010270C24D0008A204600180A040100280000423 -S315400102809010200C7FFFC3DE0100000080A44013C4 -S3154001029006BFFFF40100000080A4E0010480000FC6 -S315400102A001000000C28480208088610012800042E3 -S315400102B001000000C28480208330601A80A0600063 -S315400102C01280003A01000000C284802080886400C8 -S315400102D01280003301000000C284802080886001C2 -S315400102E01280001D01000000C02620083080003C1D -S315400102F0C0260000C2848020833860148208603F93 -S3154001030080A0401322BFFFFBA604E00180A4E001C8 -S3154001031034BFFF67A604FFFF10BFFF6682102003AC -S31540010320C28480208088600112BFFFB201000000B4 -S31540010330C28480208088600102BFFFFA010000006C -S3154001034030BFFFAC7FFFC3AE9010200810BFFFAE99 -S3154001035080A4E0017FFFC3AA9010200CC02620088C -S315400103603080001F7FFFC3A69010200710BFFF9962 -S31540010370821020837FFFC3A29010200B10BFFFB4D1 -S31540010380A21020007FFFC39E9010200A30BFFFAB12 -S315400103907FFFC39B9010200130BFFF667FFFC3984C -S315400103A09010200B30BFFFCD7FFFC3959010200EDC -S315400103B030BFFFC67FFFC3929010200D30BFFFBEF6 -S315400103C07FFFC38F9010200410BFFF532110008080 -S315400103D07FFFC38B9010200530BFFF6E81C7E008B9 -S315400103E091E8200017100143DA02E08090022010C4 -S315400103F09B2B60029812E080D023000DC202E08060 -S3154001040082006001C222E08081C3E0080100000051 -S31540010410C0220000C022204082103FFFC222200C91 -S315400104209A10200103100143DA20608081C3E0085D -S31540010430010000009DE3BF7803100144F02060CC29 -S315400104407FFFC365110040347FFFFFF29010001813 -S31540010450A010200123100040921000104000298F67 -S31540010460901463E4A004200180A4200F04BFFFFC84 -S3154001047092100010C20620208330601CAE0060013D -S31540010480AC10200080A58017168000ED0300003FC8 -S31540010490B81063FE2B1001430300002AB61062AA6E -S315400104A0BA102001B410001CB2156080832DA00C37 -S315400104B080A5E00114800119A600401880A5A0007E -S315400104C01280010A01000000F824E008C204E00895 -S315400104D080A0401C02800004010000007FFFC34849 -S315400104E090102001F824E040C204E04080A0401C66 -S315400104F002800004010000007FFFC34190102002EA -S31540010500C204E00880A0600012BFFFFE01000000A7 -S31540010510C205608080A0601002800005251001435D -S315400105207FFFC3379010200325100143A0102001FF -S31540010530A414A080A2102020832C20029A244010CB -S31540010540D8048001A004200180A3000D028000048C -S31540010550901020047FFFC32A0100000080A4200FD1 -S3154001056004BFFFF7832C2002FA256080F624C000E1 -S31540010570F424E040C204C00080A0401B0280000475 -S31540010580A010001A7FFFC31E90102005C204E04050 -S3154001059080A0401002800004010000007FFFC318C4 -S315400105A090102005F424E008C204E00880A0600011 -S315400105B012BFFFFE01000000C205608080A06010EE -S315400105C002800005251001437FFFC30D90102006D0 -S315400105D025100143A0102001A414A080A210201FC1 -S315400105E09B2C2002C204800D80A04011A004200152 -S315400105F0A2047FFE02800004901020077FFFC30003 -S315400106000100000080A4200704BFFFF79B2C2002B5 -S31540010610A4066028A210201CA0102005C204800058 -S3154001062080A04011A404A004A2047FFE028000041D -S31540010630901020087FFFC2F201000000A0843FFF16 -S315400106401CBFFFF701000000FA27BFE8C207BFE859 -S3154001065082006001C227BFECDA07BFEC9A03600152 -S31540010660DA27BFF0C207BFF082006001C227BFF49C -S315400106709A102006DA27BFD8C024C000C024E04023 -S31540010680FA256080A0102002E024E040E024E00842 -S31540010690834440008088610002800005010000001B -S315400106A0805000018050000180500001C207BFD830 -S315400106B0C227BFDCDA07BFD880A3600602800004E8 -S315400106C0010000007FFFC2CE9010200AE024E0081E -S315400106D001000000C207BFD8C227BFDCDA07BFD876 -S315400106E080A3600602800004010000007FFFC2C4AF -S315400106F09010200AE024E00801000000C027BFDC7A -S31540010700C207BFDC80A06000128000960100000095 -S31540010710C204E00880A0600012BFFFFE0100000095 -S31540010720C205608080A06004028000050300003F8E -S315400107307FFFC2B39010200D0300003FC024E0406C -S31540010740821063FEC224E008031001439A1020017F -S31540010750DA206080400003E801000000400003E821 -S3154001076090122F0082103FFFC224E040C204E040B5 -S3154001077080A0600002BFFFFE01000000C20560804C -S3154001078080A0600202800004A01560807FFFC29CA9 -S315400107909010200EC204200480A0601F0280000435 -S315400107A0010000007FFFC2969010200F400003D247 -S315400107B0A8100010400003D290023F00A010200272 -S315400107C0A4102020400003CC01000000400003CCCF -S315400107D090023F00C2056080A204200180A0401122 -S315400107E002800004901020107FFFC28501000000A6 -S315400107F0832C20029A248010D8050001A0100011F4 -S3154001080080A3000D02800004901020117FFFC27C5E -S315400108100100000080A4200F04BFFFEB010000008F -S31540010820C024E040AC05A00182103FFFC224E00C89 -S3154001083080A5801706BFFF1F832DA00C80A5E00170 -S315400108400480004B01000000C0262024C20620245B -S3154001085080A060001280003F0100000021040000DA -S31540010860E0262024C206202480A0401002800005F4 -S31540010870821020017FFFC262901020148210200155 -S31540010880C2262020C0262024C206202480A0401053 -S3154001089002800004010000007FFFC259901020151C -S315400108A0C0262020C0262024C206202480A0600025 -S315400108B0128000240100000082102002C22620205E -S315400108C0DA062020808B60020280001B01000000B6 -S315400108D0C0262020C2062020808860020280002493 -S315400108E001000000308000117FFFFECA9010001306 -S315400108F09B2DA01CDA24E024C204E0248330601C32 -S3154001090080A0401602BFFEF1010000007FFFC23CFD -S315400109109010201230BFFEED7FFFC23490100016BA -S3154001092010BFFEE880A5A0007FFFC23590102018B9 -S315400109303080000F7FFFC2329010201730BFFFE595 -S315400109407FFFC22F9010201610BFFFDD82102002BC -S315400109507FFFC22B9010201310BFFFC2210400005D -S315400109607FFFC2279010200B30BFFF6A81C7E00886 -S3154001097091E8200003100143DA0060C8C0236008F3 -S3154001098081C3E008901020009DE3BF902F100144E1 -S31540010990E205E0CCA004610027100143C204200413 -S315400109A0F024E0C87FFFC21190102010030180009F -S315400109B0DA04200482106020808B40011280010DF0 -S315400109C001000000DA046100DA27BFF0C2046100C9 -S315400109D080A3400102800005821020017FFFC208EA -S315400109E09010200282102001C2242004DA04610002 -S315400109F0DA27BFF0C204610080A3400102800120D2 -S31540010A0001000000C0242004DA046100DA27BFF0A7 -S31540010A10C204610080A340010280000580A7200036 -S31540010A207FFFC1F79010200480A72000128000B7F5 -S31540010A3080A72001B010200180A6001A1680001759 -S31540010A40A8102001108000052510004280A6001A3A -S31540010A5016800013DA04E0C8A206C0189014A174E7 -S31540010A609210001180A4601F14BFFFF9B006200147 -S31540010A704000280A01000000D805E0CCC20320400E -S31540010A809B2D00118210400DC223204080A6001AE2 -S31540010A9006BFFFF3A206C018DA04E0C89606A00313 -S31540010AA0C0236004833AE01FC023601098103FFFC3 -S31540010AB08330601EAA02C001D8236014D823600C7B -S31540010AC0A2102000AD3D600280A720000280008A6E -S31540010AD0A810200180A4401C168000ECC204E0C886 -S31540010AE080A7200104800015B010200080A5A00039 -S31540010AF00480001380A0001C9B2C6010832C60187E -S31540010B008210400D992C60088210400C82104011D1 -S31540010B10993D6002DA04E0C8C2236020B006200194 -S31540010B2080A72001048000059A03600480A3001871 -S31540010B3014BFFFFA0100000080A0001CB0603FFF17 -S31540010B4080A6001A16800016C204E0C8250180005E -S31540010B5080A72000028000058206C01880A72001D8 -S31540010B60028000848206C011C2242004D804E0C851 -S31540010B70832D00189B3E4018C2232008808B6001BC -S31540010B80128000859A10000CB006200180A6001A3A -S31540010B9006BFFFF180A72000C204E0C8C02060085C -S31540010BA0808E600112800009B0102000B00620013D -S31540010BB080A6201F14800005833E4018808860016E -S31540010BC022BFFFFCB006200180A72000028000065C -S31540010BD08206C01880A72001028000048216E02008 -S31540010BE08206C01182106020C2242004DA04E0C8C3 -S31540010BF0832D0018C2236008C203600880A06000EC -S31540010C0012BFFFFE01000000C2042004808860205C -S31540010C100280009801000000DA042004030100006C -S31540010C20808B40010280009001000000DA0420041C -S31540010C3003008000808B4001028000880100000093 -S31540010C40C2042008C227BFF0DA04200CDA27BFF419 -S31540010C50C204E0C8992D0018D82060089A100001F6 -S31540010C60C203600880A0600012BFFFFE01000000C1 -S31540010C70C2042004808860200280007501000000C3 -S31540010C80DA04200403010000808B40010280006DDC -S31540010C9001000000DA04200403008000808B40013B -S31540010CA00280006501000000DA042008C207BFF097 -S31540010CB080A0400D02800004010000007FFFC1506A -S31540010CC09010200EDA04200CC207BFF480A0400D1C -S31540010CD002800005030180007FFFC1499010200F6B -S31540010CE003018000C224200480A7200012BFFF7A9E -S31540010CF0A204600180A4600004BFFF7B80A720019D -S31540010D0010800062C204E0C80280003D111000421A -S31540010D10B010200080A6001C16BFFF60A81020015D -S31540010D20108000052510004280A6001C16BFFF5CFE -S31540010D30DA04E0C8A206C0189014A17492100011FA -S31540010D4080A4601F14BFFFF9B0062001400027535D -S31540010D5001000000D805E0CCC20320409B2D0011C4 -S31540010D608210400DC223204010BFFFF180A6001C17 -S31540010D70F6242004D804E0C8832D00189B3E401871 -S31540010D80C2232008808B600122BFFF81B00620016B -S31540010D909A10000CC203600880A0600012BFFFFEDB -S31540010DA001000000DA04200403010000808B4001A9 -S31540010DB00280001E01000000DA04200403008000C6 -S31540010DC0808B40010280001601000000E4242004CB -S31540010DD0C20420048088401222BFFF6DB006200164 -S31540010DE07FFFC1079010200710BFFF69B0062001A1 -S31540010DF07FFFC1039010200130BFFEF39012217492 -S31540010E00400027269210001BDA05E0CC832F001BF9 -S31540010E10C223604010BFFF22DA04E0C87FFFC0F85A -S31540010E209010200630BFFFEA7FFFC0F590102005E5 -S31540010E3030BFFFE27FFFC0F29010200D30BFFF9B15 -S31540010E407FFFC0EF9010200C30BFFF937FFFC0ECB7 -S31540010E509010200B30BFFF8B7FFFC0E99010200A16 -S31540010E6030BFFF787FFFC0E69010200930BFFF708A -S31540010E707FFFC0E39010200830BFFF687FFFC0E0CE -S31540010E809010200330BFFEE0C020600CDA05E0CCB4 -S31540010E90C023604082103FFFC223600C81C7E00837 -S31540010EA091E820009DE3BF983B100144E60760CCE2 -S31540010EB07FFFC0CE90102011C024E01CC204E01C6C -S31540010EC080A060000280004801000000C204E01CCE -S31540010ED08330601B80A0401A0A80003F0100000059 -S31540010EE0A410200080A4801A1A8000422D100143CC -S31540010EF0AA102001AE15A080A32CA002E006401145 -S31540010F007FFFFD4490100013A804A0019B2D4012C1 -S31540010F10832D20108210400DC224E01C9A103FFF01 -S31540010F20DA24E040D80600119A10201FDA23200463 -S31540010F30A0043FFFDA230000A12C20048204000C08 -S31540010F409A102005DA206010C0206014EA2060184B -S31540010F509A100001C203601080A0600012BFFFFE1C -S31540010F6001000000A004000CC204201080A0600013 -S31540010F7002BFFFFE01000000C0242018C205A08068 -S31540010F8080A06002028000069A04A011900480129B -S31540010F907FFFC09B900220039A04A011C205E00482 -S31540010FA080A0400D22800006A410001490048012F7 -S31540010FB07FFFC09390022004A4100014C024E01CBB -S31540010FC080A5001A0ABFFFCEA32CA0021080000AFA -S31540010FD0DA0760CC7FFFC08A9010200210BFFFC2A3 -S31540010FE0A41020007FFFC0869010200130BFFFB8BB -S31540010FF0DA0760CCC023604082103FFFC223600CF9 -S3154001100081C7E00891E820009DE3BF987FFFC08B30 -S315400110100100000080A220000280002680A6200058 -S3154001102012800029010000007FFFC08401000000FA -S31540011030912A20047FFFC06D900220034000186D65 -S315400110400100000080A220001280002B0100000058 -S315400110504000182B01000000400017E40100000089 -S31540011060400002270100000080A6A0001280002D4A -S31540011070031001447FFFC071B41060D0912A200251 -S31540011080C206800880A060001280003080A6200041 -S3154001109012800039010000004000048E010000006A -S315400110A040001E0201000000400015C181E8000019 -S315400110B07FFFC0491100400C80A6200002BFFFDB24 -S315400110C0010000007FFFC0F5901000197FFFC05B53 -S315400110D001000000912A20047FFFC04490022003B2 -S315400110E0400018440100000080A2200002BFFFD941 -S315400110F0010000007FFFC04290102001400018000F -S3154001110001000000400017B901000000400001FC49 -S315400111100100000080A6A00002BFFFD703100144D2 -S3154001112040001DED01000000031001447FFFC04354 -S31540011130B41060D0912A2002C206800880A06000C7 -S3154001114002BFFFD480A620007FFFC03C0100000003 -S315400111507FFFC03AA0100008912A2002C2068008EB -S315400111609FC040009010001080A6200002BFFFCB18 -S31540011170010000007FFFC0D99010001940000455BE -S315400111800100000040001DC9010000004000158813 -S3154001119081E800000100000003100143DA0060CC41 -S315400111A09A036001DA2060CC81C3E00801000000A7 -S315400111B09DE3BF987FFFC00811004044D806200830 -S315400111C082103FFFC2262004DA060000C206000054 -S315400111D080A340010280006FA60B20078210201FCA -S315400111E0C2262004C226000080A4E000028000330B -S315400111F082100018A2100013C0206018A2847FFF3D -S3154001120012BFFFFE82006010A210200080A440138E -S315400112101680002B80A4E001A810200FA010001812 -S315400112207FFFBFF290100011C0242010E824201443 -S3154001123082102006C2242018DA04201080A3600FF1 -S3154001124002800004010000007FFFBFED90102003E3 -S31540011250E82420189A10200EC204201080A0400DC8 -S3154001126012BFFFFE010000009A837FFF1CBFFFFBF8 -S31540011270A4100010C204201080A0600F12BFFFFE10 -S3154001128001000000C20420188088601002800035E9 -S3154001129082102010C224A018DA042018808B601016 -S315400112A01280003801000000A204600180A44013AE -S315400112B006BFFFDCA004201080A4E00114800010CA -S315400112C080A4E0000280000782100018A2100013DB -S315400112D0C0206018A2847FFF12BFFFFE820060100B -S315400112E021100144C20420CC80A060000280002D60 -S315400112F0111000441080000D921000197FFFBFBBF2 -S31540011300901020088210200FC22620189A10202FF4 -S31540011310DA262028C206202080A0600D12BFFFFEDB -S3154001132080A4E00030BFFFE8400025DC9012219800 -S315400113307FFFFC38D00420CC82102001832840193D -S31540011340DA0420CCC22360409810200FD8262014FE -S315400113508210200DC2262018A7800000308000117F -S315400113607FFFBFA79010200482102010C224A0182E -S31540011370DA042018808B601022BFFFCDA2046001E1 -S315400113807FFFBF9F9010200510BFFFC9A2046001D7 -S315400113907FFFBF9B9010200110BFFF928210201F3C -S315400113A081C7E00881E8000000000000000000005D -S315400113B000000000000000000000000000000000E6 -S315400113C001000000010000000100000001000000D2 -S315400113D0010000000100000081C3E0080100000097 -S315400113E001000000010000000100000001000000B2 -S315400113F0010000000100000081C3E0080100000077 -S315400114000100000001000000010000000100000091 -S31540011410010000000100000081C3E0080100000056 -S315400114200100000001000000010000000100000071 -S31540011430010000000100000081C3E0080100000036 -S31540011440D482018090A2000916BFFFFE9612800B3E -S3154001145081C3E0089010000BD48201C090A200091C -S3154001146016BFFFFE9612800B81C3E0089010000B59 -S3154001147090A22004C0A201A090A22004C0A201A073 -S3154001148090A22004C0A201A090A22004C0A201A063 -S31540011490C0A2018090A2200414BFFFF70100000002 -S315400114A081C3E0080100000090A22004C0A201E02F -S315400114B090A22004C0A201E090A22004C0A201E0B3 -S315400114C090A22004C0A201E0C0A201C090A22004C3 -S315400114D014BFFFF70100000081C3E00801000000CE -S315400114E0981000089610000A98A3200814BFFFFF21 -S315400114F0D43B00099810000898A3200814BFFFFFA9 -S31540011500C01B00099810000898A32004D6030009BF -S3154001151080A2C00A1280000698A3200434BFFFFDB2 -S31540011520D603000981C3E0089010200090102001E5 -S31540011530981000089610000A98A3200814BFFFFFD0 -S31540011540D43B00099810000898A32004D60300094B -S3154001155080A2C00A1280000698A3200434BFFFFD72 -S31540011560D603000981C3E0089010200090102001A5 -S315400115709810000898A32004D2A301A0DA8301A001 -S3154001158080A340091280000698A3200414BFFFFCE3 -S31540011590D2A301A081C3E008901020009010200141 -S315400115A09A1000089AA3400AD6A34180D883418065 -S315400115B0981B000B988B0009128000069AA3400ADB -S315400115C014BFFFFBD6A3418081C3E00890102000E1 -S315400115D0901020019A1000089AA3400BD8A241CD41 -S315400115E0C48241CD8418800C8488800A128000060A -S315400115F09AA3400B14BFFFFBD8A241CD81C3E0089B -S315400116009010200090102001010000000100000010 -S31540011610010000001310008092126138D40240008C -S3154001162080A2A0011280000780A0A002D40240003F -S31540011630D4024000952AA002108000050100000056 -S315400116403280000381E80000D402400081E00000BE -S3154001165093480000818A602023100045A2146278D5 -S31540011660A40460040100000081C4400081CC8000D4 -S3154001167091D0200191D020012680000590002001C3 -S3154001168090222001912A2001912A200281C3E0085B -S315400116900100000081C3E008D082004081C3E00818 -S315400116A0D2A2004081C3E008D082018081C3E00814 -S315400116B0D2A2018081C3E008D08201A081C3E008A3 -S315400116C0D2A201A081C3E008D08201C081C3E00853 -S315400116D0D2A201C081C3E008D08201E081C3E00803 -S315400116E0D2A201E081C3E008D2A2000081C3E00892 -S315400116F0D082000081C3E00891480000818A000041 -S3154001170001000000010000000100000081C3E00863 -S315400117100100000081C3E008C0A000A081C3E00829 -S31540011720C0A000C081C3E008D01A0000010000003B -S31540011730010000000100000001000000010000005E -S315400117409DE3BF701310006DCD1A6160CD3FBFE0C0 -S31540011750111000801B100080C91B61E0C51A21D8F9 -S31540011760C11FBFE095A088C4D53FBFF0D91FBFF0C8 -S3154001177003100080D11861E881AB0A4801000000DE -S315400117800380002BC13FBFD8F91FBFD8B5A0055C68 -S31540011790F53FBFF0ED1FBFF0F11FBFF0A5A589587A -S315400117A0E91FBFE0A1A488D41510006DA1A00130A6 -S315400117B0DD1AA16881AC0ACE010000000D80002D22 -S315400117C0F53FBFD0C51FBFD083A018C291A0492104 -S315400117D099A01928D51FBFE091A308CA1710006D1B -S315400117E091A00128FD1AE17081AA0ADE01000000DC -S315400117F00D80002F01000000400001AE01000000F5 -S315400118004000020C0100000080A22000128000313D -S3154001181001000000400002610100000080A220009A -S315400118200280003501000000308000317FFFBE7428 -S3154001183090102001F91FBFD8B5A0055CF53FBFF058 -S31540011840ED1FBFF0F11FBFF0A5A58958E91FBFE005 -S31540011850A1A488D41510006DA1A00130DD1AA1689C -S3154001186081AC0ACE010000001BBFFFD7F53FBFD0B8 -S315400118707FFFBE6390102002C51FBFD083A018C250 -S3154001188091A0492199A01928D51FBFE091A308CA63 -S315400118901710006D91A00128FD1AE17081AA0ADE98 -S315400118A0010000001BBFFFD5010000007FFFBE54B1 -S315400118B0901020034000017F01000000400001DD3F -S315400118C00100000080A2200002BFFFD301000000FA -S315400118D07FFFBE4B010000004000023001000000C6 -S315400118E080A2200002800004010000007FFFBE4468 -S315400118F09010200581C7E00881E800009DE3BF986C -S315400119007FFFFF7D210000047FFFFF7D90120010C5 -S315400119107FFFFF79B0102000808A00100280000B03 -S315400119209010200040000267010000007FFFBE4387 -S3154001193001000000912A20047FFFBE2C900220085E -S315400119407FFFFF800100000081C7E00881E80000B9 -S31540011950191000809813217811100200921020006E -S31540011960150FF76C9412A3D7D03B0000D42320085F -S31540011970C11B0000C503200887A089220100000081 -S3154001198089A005408DA0892281A8CA2601000000B0 -S3154001199033800003901020009010200181C3E0089D -S315400119A001000000C11A0000C51A400089A0084282 -S315400119B081C3E008C93A8000C11A0000C51A400037 -S315400119C089A0094281C3E008C93A80001910008004 -S315400119D098132178D0230000D2232008C1030000A8 -S315400119E0C303200885A00D2181C3E008C53A8000C4 -S315400119F0C11A0000C51A400089A009C2C93A80002F -S31540011A0081C3E00801000000C11A000085A005401D -S31540011A10C53A400081C3E008010000000100000012 -S31540011A20010000000100000001000000010000006B -S31540011A30010000000100000001000000010000005B -S31540011A40010000000100000001000000010000004B -S31540011A50010000000100000001000000010000003B -S31540011A60010000000100000001000000010000002B -S31540011A70010000000100000001000000010000001B -S31540011A80010000000100000001000000010000000B -S31540011A9001000000010000000100000081A00020BB -S31540011AA081C3E00801000000C11A000081C3E008BB -S31540011AB001000000C51A000089A009C2C93A4000C8 -S31540011AC081C3E00801000000131000809212617882 -S31540011AD0D0224000C102400085A01900C53A40000D -S31540011AE081C3E008D01A4000131000809212617839 -S31540011AF0D0224000C102400085A01880C522400086 -S31540011B0081C3E008D0024000151000809412A178EC -S31540011B10D03A8000C11A800085A01A40C5228000B3 -S31540011B2081C3E008D0028000151000809412A1788C -S31540011B30D0228000C102800085A01A20C5228000E3 -S31540011B4081C3E008D0028000151000809412A1786C -S31540011B50D0228000C102800081A01920C13A8000B4 -S31540011B6081C3E008D01A8000151000809412A17834 -S31540011B70D03A8000C11A800081A018C0C1228000DD -S31540011B8081C3E008D0028000151000809412A1782C -S31540011B90D0228000CB0280008DA00025CD2280007E -S31540011BA081C3E008D0028000151000809412A1780C -S31540011BB0D0228000CB0280008DA000A5CD228000DE -S31540011BC081C3E008D0028000151000809412A178EC -S31540011BD0D0228000CB0280008DA00125CD2280003D -S31540011BE081C3E008D0028000191000809813217843 -S31540011BF0D03B0000D43B2008C11B0000C51B200878 -S31540011C0081A80A420100000033800009901020009B -S31540011C1029800007901020012D8000059010200298 -S31540011C202F8000039010200391D0200081C3E0084B -S31540011C30010000001910008098132178D03B000064 -S31540011C40D43B2008C11B0000C51B200881A80AC23D -S31540011C500100000033BFFFF69010200029BFFFF4BA -S31540011C60901020012DBFFFF2901020022FBFFFF0F0 -S31540011C709010200391D020001910008098132178EC -S31540011C80D0230000D2232008C1030000C30320084B -S31540011C9081A80A210100000033BFFFE59010200012 -S31540011CA029BFFFE3901020012DBFFFE190102002D4 -S31540011CB02FBFFFDF9010200391D020001910008024 -S31540011CC098132178D0230000D2232008C1030000B5 -S31540011CD0C303200881A80AA10100000033BFFFD435 -S31540011CE09010200029BFFFD2901020012DBFFFD0B8 -S31540011CF0901020022FBFFFCE9010200391D02000DC -S31540011D001910008098132178D03B0000D43B20085D -S31540011D10C11B0000C51B200889A008C2C93B0000A1 -S31540011D2081C3E008D01B0000191000809813217868 -S31540011D30D0230000D2232008C1030000C30320089A -S31540011D4085A00821C523000081C3E008D003000017 -S31540011D501910008098132178D0230000D22320083F -S31540011D60C1030000C303200885A008A1C5230000C4 -S31540011D7081C3E008D0030000191000809813217830 -S31540011D80D0230000D2232008C1030000C30320084A -S31540011D9085A00921C523000081C3E008D0030000C6 -S31540011DA01910008098132178D0230000D2232008EF -S31540011DB0C1030000C303200885A009A1C523000073 -S31540011DC081C3E008D00300001910008098132178E0 -S31540011DD0D0230000C103000083A00520C3230000D7 -S31540011DE081C3E008D0030000131000809212619075 -S31540011DF0C51A6008C11A400089A0084091A108C2CD -S31540011E0095A209C495A2894281C3E008D53A00004A -S31540011E1013100080921261B0C1024000C3026004F7 -S31540011E2085A0082087A088A189A0C9A289A10921E6 -S31540011E3081C3E008C92200009610200213100080D9 -S31540011E4092126190151000809412A190D502400023 -S31540011E50D7028000D5220000D8020000131000806E -S31540011E60921261B096A2E00112BFFFF90100000093 -S31540011E7081C3E008010000001310008092126190B6 -S31540011E80151000809412A1B0C1028000C51A6010DD -S31540011E9083A0082089A088C08BA109A18DA10942F0 -S31540011EA08FA1492691A0054681C3E008D13A000099 -S31540011EB01110008090122188C11A0000C51A000035 -S31540011EC0C91A0000CD1A0000D11A0000D51A000027 -S31540011ED0D91A0000DD1A0000E11A0000E51A0000D7 -S31540011EE0E91A0000ED1A0000F11A0000F51A000087 -S31540011EF0F91A0000FD1A000081C3E0080100000044 -S31540011F0029100080A815215827100080A614E1C089 -S31540011F10C12CC000E604C000A134E00EA00C20078D -S31540011F20A0A42002AE1020002D100080AC15A1C047 -S31540011F30AE05E001AC05A008C1358000C12D000009 -S31540011F40EA050000AB35600DAA8D600112BFFFF9AD -S31540011F5001000000808000100280002F2B3C1FFFF3 -S31540011F60AA1563FFA60CC015E6250000C10D0000A9 -S31540011F702B100080AA1561CC2D100047AC15A3E0AB -S31540011F80AE25E001E0054000E025800081D8200033 -S31540011F9001000000010000000100000001000000F6 -S31540011FA001000000010000000100000001000000E6 -S31540011FB001000000010000000100000001000000D6 -S31540011FC001000000010000000100000001000000C6 -S31540011FD001000000010000000100000001000000B6 -S31540011FE00000000080A5C00012BFFFE6AA056008F8 -S31540011FF0C12D0000E60500002B03C000A614C01544 -S31540012000E6250000C10D000081C4400081CC80005E -S315400120100100000081C4800081CCA00401000000C1 -S315400120200100000081C3E008915800000100000052 -S315400120301110008090122158C10A0000C0220000F0 -S31540012040C10A0000C12A0000D40200001300038027 -S31540012050942A800980A0000A3280004D9010200306 -S315400120601303E000D223BFA0C023BFA4C10BBFA06E -S31540012070C023BFA0151000809412A170C102800038 -S315400120800100000001000000C10BBFA0C10BBFA4AD -S3154001209083A00520C12BBFA0D003BFA0808A220008 -S315400120A02280003B901020049010200015100080E3 -S315400120B09412A140C5028000C902A008D102A00C19 -S315400120C01310008092126170C70240008DA08944AE -S315400120D081A98AC8010000000380000501000000B3 -S315400120E0901020011080002A01000000C5028000E6 -S315400120F0C902A008D102A00C13100080921261708F -S31540012100CB0240008DA0894481A98AC80100000004 -S315400121100380000501000000901020011080001C82 -S315400121200100000025100080A414A168C11C800094 -S31540012130C51C800080A000003280000685A008C032 -S3154001214081A80AC2010000001380000301000000BB -S31540012150901020050100000025100080A414A168FC -S31540012160C11C8000C51C800080A000000100000049 -S315400121703280000685A008C081A80AC2010000007D -S3154001218013800003010000009010200701000000A9 -S3154001219081C3E00801000000901020019544000031 -S315400121A09532A01E940AA00380A2800002800040BE -S315400121B09010200080A2A0030280003D13100080F1 -S315400121C0921261F0C11A4000C51A6008FD026018FA -S315400121D095A0003E99A0003E9DA0003E170000C07C -S315400121E09612E078A182C0000100000001000000C3 -S315400121F00100000001000000010000000100000094 -S3154001220081A0002083A0002195A0002A99A0002C3E -S315400122109DA0002E170000C09612E07CA182C0004E -S315400122200100000001000000010000000100000063 -S31540012230010000000100000085A0002287A00023C4 -S31540012240A180000001000000010000000100000023 -S3154001225001000000010000000100000089A00842C1 -S31540012260A9A2883ED93A4000DD224000CD1A60102D -S31540012270D102600881A90A46010000000380000CD2 -S3154001228081AD0A2801000000038000099344000043 -S315400122909332601B920A60079010200080A2A00131 -S315400122A002800003902260079022600481C3E00807 -S315400122B001000000C12BBFA081C3E008D003BFA02D -S315400122C0D023BFA081C3E008C10BBFA0010000001D -S315400122D09DE3BF6040001B17B0102000913A200AD1 -S315400122E0900A200380A220011280111101000000F2 -S315400122F07FFFBBBE9010200D190C40291B23CD1B1F -S315400123009410200096102000981320069A13609B83 -S31540012310D43FBFE0D43FBFC0D43FBFE87FFFFF42B9 -S31540012320D83FBFF0900A3000032804009012208065 -S315400123308210600FC22200001B1000479002200449 -S315400123409A1363009A234008191000009B3B6002D0 -S31540012350032784009A13400C82106010C222200485 -S315400123607FFFFED4DA2200007FFFFFD61103E00093 -S315400123702D100080C025A1C07FFFFDD49010200004 -S31540012380809200091280000601000000C205A1C02A -S3154001239080A0600002800004010000007FFFBB981E -S315400123A09010200B7FFFFDC990103FFA03300600C5 -S315400123B080A200011280000480A2600002800EDB30 -S315400123C0010000007FFFBB8E9010200B7FFFFDBFF9 -S315400123D09010201403100D0080A200011280000409 -S315400123E080A2600002800ECC010000007FFFBB840A -S315400123F09010200B7FFFFDB5901020620310162030 -S3154001240080A200011280000480A2600002800EBDFD -S31540012410010000007FFFBB7A9010200B7FFFFDB3C8 -S31540012420901020050310280080A2000112800006AA -S3154001243001000000C205A1C080A060000280000426 -S31540012440010000007FFFBB6E9010200B7FFFFF9DB8 -S315400124501103C000111C00007FFFFDAC921020004B -S31540012460031FFFFF821063FF80A200011280000A52 -S315400124701B000070C205A1C09A13601F190000100D -S315400124808208400D9813201080A0400C0280000560 -S31540012490113C00007FFFBB5A9010200C113C0000FC -S315400124A07FFFFD9A921020000320000080A20001C8 -S315400124B01280000A1B000070C205A1C09A13601F5A -S315400124C0190000108208400D9813201080A0400C7E -S315400124D002800004010000007FFFBB499010200CE0 -S315400124E0C025A1C0901020007FFFFD8892102000DA -S315400124F080A220001280000601000000C205A1C092 -S3154001250080A0600002800005110144007FFFBB3CB2 -S315400125109010200C11014400132840009012230210 -S315400125207FFFFD7A9212600180A220001280000690 -S3154001253001000000C205A1C080A060002280000504 -S315400125401111FFFF7FFFBB2E9010200C1111FFFFD1 -S315400125507FFFFD76901223FF0300007F821063FF09 -S3154001256080A200011280000601000000C205A1C040 -S3154001257080A06000028000052F1000857FFFBB20F0 -S315400125809010200C2F1000857FFFFD60D01DE0C804 -S31540012590031FFFFF821063FF80A200011280000A21 -S315400125A01B000070C205A1C09A13601F19000010DC -S315400125B08208400D9813201080A0400C028000052F -S315400125C0031000857FFFBB0E9010200C0310008581 -S315400125D0D01860D8C025A1C07FFFFD4C0100000086 -S315400125E00320000080A200011280000A1B00007037 -S315400125F0C205A1C09A13601F190000108208400D40 -S315400126009813201080A0400C028000051910008507 -S315400126107FFFBAFB9010200C19100085C025A1C080 -S315400126207FFFFD3AD01B20B8031FFFFF821063FFD7 -S3154001263080A200011280000A1B000070C205A1C0E1 -S315400126409A13601F190000108208400D981320103C -S3154001265080A0400C02800005331000857FFFBAE858 -S315400126609010200C33100085C025A1C07FFFFD27A7 -S31540012670D01E60F0C205A1C08330600E820860039F -S3154001268080A0600202800004211000807FFFBADC36 -S315400126909010200C7FFFFF0B1103C000111158044D -S315400126A0C02421C07FFFFD299012223403102B0044 -S315400126B08210624680A200011280000503200000BC -S315400126C080A2400102800FC5010000007FFFBACC05 -S315400126D09010200D113C02AF7FFFFD1C901220D1BE -S315400126E0033180558210639A80A200011280000551 -S315400126F00308000080A2400102800FDB01000000B8 -S315400127007FFFBABF9010200D1111FC007FFFFD170E -S3154001271092102000031FE00080A200011280000AEF -S315400127201B000070C205A1C09A13601F190000105A -S315400127308208400D9813200880A0400C02800005B5 -S3154001274011207C017FFFBAAE9010200D11207C0133 -S31540012750C025A1C0901220307FFFFD041300010067 -S315400127600320000080A200011280000A1B000070B5 -S31540012770C205A1C09A13601F190000108208400DBE -S315400127809813200480A0400C028000040100000040 -S315400127907FFFBA9B9010200DC025A1C0901020004C -S315400127A07FFFFCF29210200080A2200012800006DA -S315400127B001000000C205A1C080A0600002800004A3 -S315400127C0010000007FFFBA8E9010200D7FFFFCE7CD -S315400127D0D01DE0C803100085DA0060C080A2000D5C -S315400127E01280000601000000C205A1C080A0600061 -S315400127F0028000051B1000857FFFBA819010200DD5 -S315400128001B1000857FFFFCD9D01B60D0031FE00061 -S3154001281080A200011280000601000000C205A1C08D -S3154001282080A0600002800005031000857FFFBA7416 -S315400128309010200D031000857FFFFCCCD01860B8A6 -S3154001284003100085DA0060A880A2000D1280000AFC -S315400128501B000070C205A1C09A13601F1900001029 -S315400128608208400D9813201080A0400C028000047D -S31540012870010000007FFFBA629010200DC025A1C063 -S315400128807FFFFCBAD01E60F0C205A1C08330600E46 -S315400128908208600380A06002028000042310008049 -S315400128A07FFFBA579010200D7FFFFE861103E0008F -S315400128B02108C6AF901420DEC02461C07FFFFCB35F -S315400128C0A01420DE80A20010128000060100000044 -S315400128D0C20461C080A06000028000052108C6AF25 -S315400128E07FFFBA479010200E2108C6AF7FFFFCB785 -S315400128F0901420DEA01420DE80A200101280000673 -S3154001290001000000C205A1C080A060002280000530 -S315400129101128C6AF7FFFBA3A9010200E1128C6AFD4 -S315400129207FFFFCAA901220DE0308C6AF821060DE4C -S3154001293080A200011280000601000000C205A1C06C -S3154001294080A06000228000051108C6AF7FFFBA2C27 -S315400129509010200E1108C6AF7FFFFC94901220DE26 -S315400129600328C6AF821060DE80A2000112800006F5 -S3154001297001000000C205A1C080A0600022800005C0 -S315400129801128C6AF7FFFBA1E9010200E1128C6AF80 -S315400129907FFFFC86901220DE0308C6AF821060DE00 -S315400129A080A200011280000601000000C205A1C0FC -S315400129B080A0600002800004010000007FFFBA1081 -S315400129C09010200E7FFFFE3F1103E00011151BC042 -S315400129D01310C82115351BC01710C82190122103A9 -S315400129E0921261419412A1037FFFFC809612E1414C -S315400129F080A220021280000601000000C205A1C08B -S31540012A0080A060000280000511351BC07FFFB9FC24 -S31540012A109010200F11351BC01310C82115151BC06E -S31540012A201710C82190122103921261419412A103F9 -S31540012A307FFFFC6E9612E14180A2200112800006C2 -S31540012A4001000000C205A1C080A06000028000050F -S31540012A50901020007FFFB9EA9010200F90102000BF -S31540012A6092102000152000007FFFFC609610200088 -S31540012A7080A220001280000601000000C205A1C00C -S31540012A8080A0600002800005191000857FFFB9DC37 -S31540012A909010200F191000851B100085D01B20D0E7 -S31540012AA07FFFFC52D41B60D880A220021280000610 -S31540012AB001000000C205A1C080A06000028000059F -S31540012AC011151BC07FFFB9CE9010200F11151BC0E9 -S31540012AD01310C82115151BE81710C82190122103A0 -S31540012AE0921261419412A1037FFFFC409612E1418B -S31540012AF080A220011280000601000000C205A1C08B -S31540012B0080A060000280000511151BE87FFFB9BC5B -S31540012B109010200F11151BE81310C82115151BC065 -S31540012B201710C82190122103921261419412A103F8 -S31540012B307FFFFC2E9612E14180A220021280000600 -S31540012B4001000000C205A1C080A06000028000050E -S31540012B5011151BE87FFFB9AA9010200F11151BE82C -S31540012B601310C82190122103921261417FFFFC1F6D -S31540012B70D41DE0C880A22003128000060100000097 -S31540012B80C205A1C080A06000028000050310008537 -S31540012B907FFFB99B9010200F0310008511151BE88C -S31540012BA01310C82190122103921261417FFFFC0F3D -S31540012BB0D41860B880A220031280000A1B0000705E -S31540012BC0C205A1C09A13601F190000108208400D6A -S31540012BD09813201080A0400C0280000511151BE8B7 -S31540012BE07FFFB9879010200F11151BE81310C821DC -S31540012BF0C025A1C090122103921261417FFFFBFBC8 -S31540012C00D41E60F080A2200212800006010000005E -S31540012C10C205A1C080A060000280000515151BE811 -S31540012C207FFFB9779010200F15151BE81710C821A3 -S31540012C30D01E60F09412A1037FFFFBEC9612E14196 -S31540012C4080A220011280000601000000C205A1C039 -S31540012C5080A060000280000515151BE87FFFB9685A -S31540012C609010200F15151BE81710C821D01DE0C87C -S31540012C709412A1037FFFFBDD9612E14180A220035E -S31540012C801280000601000000C205A1C080A06000BC -S31540012C9002800005191000857FFFB9599010200F59 -S31540012CA01910008515151BE81710C821D01B20B82F -S31540012CB09412A1037FFFFBCD9612E14180A220032E -S31540012CC01280000A1B000070C205A1C09A13601F42 -S31540012CD0190000108208400D9813201080A0400C66 -S31540012CE00280000511151BC07FFFB9459010200FCA -S31540012CF011151BC01310C82115351BC01710C8214B -S31540012D00C025A1C090122103921261419412A103E0 -S31540012D107FFFFBC99612E14180A220021280000684 -S31540012D2001000000C205A1C080A06000028000052C -S31540012D3011351BC07FFFB9329010200F11351BC0D2 -S31540012D401310C82115151BC01710C8219012210355 -S31540012D50921261419412A1037FFFFBB79612E141A2 -S31540012D6080A220011280000601000000C205A1C018 -S31540012D7080A0600002800005901020007FFFB920EE -S31540012D809010200F90102000921020001520000076 -S31540012D907FFFFBA99610200080A22000128000062A -S31540012DA001000000C205A1C080A0600002800005AC -S31540012DB01B1000857FFFB9129010200F1B10008554 -S31540012DC003100085D01B60D07FFFFB9BD41860D8D1 -S31540012DD080A220021280000601000000C205A1C0A7 -S31540012DE080A060000280000511151BC07FFFB90459 -S31540012DF09010200F11151BC01310C82115151BE883 -S31540012E001710C82190122103921261419412A10315 -S31540012E107FFFFB899612E14180A2200112800006C4 -S31540012E2001000000C205A1C080A06000028000052B -S31540012E3011151BE87FFFB8F29010200F11151BE802 -S31540012E401310C82115151BC01710C8219012210354 -S31540012E50921261419412A1037FFFFB779612E141E1 -S31540012E6080A220021280000601000000C205A1C016 -S31540012E7080A060000280000511151BE87FFFB8E0C5 -S31540012E809010200F11151BE81310C8219012210331 -S31540012E90921261417FFFFB68D41DE0C880A22003E6 -S31540012EA01280000A1B000070C205A1C09A13601F60 -S31540012EB0190000108208400D9813201080A0400C84 -S31540012EC002800005191000857FFFB8CD9010200FB4 -S31540012ED01910008511151BE81310C8219012210302 -S31540012EE0921261417FFFFB54D41B20B880A220037C -S31540012EF01280000A1B000070C205A1C09A13601F10 -S31540012F00190000108208400D9813201080A0400C33 -S31540012F100280000511151BE87FFFB8B99010200FFC -S31540012F2011151BE81310C821C025A1C09012210319 -S31540012F30921261417FFFFB40D41E60F080A22002C5 -S31540012F401280000601000000C205A1C080A06000F9 -S31540012F500280000515151BE87FFFB8A99010200FC8 -S31540012F6015151BE81710C821D01E60F09412A10355 -S31540012F707FFFFB319612E14180A2200112800006BB -S31540012F8001000000C205A1C080A0600002800005CA -S31540012F9015151BE87FFFB89A9010200F15151BE8F1 -S31540012FA01710C821D01DE0C89412A1037FFFFB2250 -S31540012FB09612E14180A220031280000A1B00007094 -S31540012FC0C205A1C09A13601F190000108208400D66 -S31540012FD09813201080A0400C028000051B1000852C -S31540012FE07FFFB8879010200F1B10008515151BE831 -S31540012FF01710C821D01B60B89412A1037FFFFB0EA6 -S315400130009612E14180A220031280000A1B00007043 -S31540013010C205A1C09A13601F190000108208400D15 -S315400130209813201080A0400C02800005110048EA48 -S315400130307FFFB8739010200F110048EA13048D15D5 -S31540013040C025A1C0901223CD7FFFFB0C921262785E -S3154001305080A220011280000601000000C205A1C025 -S3154001306080A0600002800005110048EA7FFFB86435 -S315400130709010200F110048EA13048D15901223CDAC -S315400130807FFFFB0F9212627880A220011280000618 -S3154001309001000000C205A1C080A0600002800004BA -S315400130A0010000007FFFB8569010200FC025A1C037 -S315400130B07FFFFC841103C000291001449007BFF033 -S315400130C09207BFE87FFFFA3894152120C207BFF067 -S315400130D0DA05212080A0400D1280000782152120AB -S315400130E0DA006004C207BFF480A0400D02800D598A -S315400130F0010000007FFFB842901020103710008574 -S315400131009007BFF09216E0E07FFFFA279415212041 -S31540013110C206E0E0DA05212080A340018215212084 -S31540013120128000079816E0E0DA006004C20320042A -S3154001313080A3400102800D42010000007FFFB830AC -S31540013140901020109007BFF09215E0C87FFFFA1645 -S3154001315094152120C205E0C8DA05212080A340014B -S3154001316082152120128000079815E0C8DA00600414 -S31540013170C203200480A3400102800D2C01000000FF -S315400131807FFFB81F9010201003100085921060B881 -S315400131909007BFF07FFFFA04941521201B000070B1 -S315400131A0C205A1C09A13601F190000108208400D84 -S315400131B09813201080A0400C028000042110014485 -S315400131C07FFFB80F9010201003100080C02061C00F -S315400131D07FFFFC3C901020001310008594142120A1 -S315400131E0921260B87FFFF9F09007BFF03910008561 -S315400131F0C20720B0DA04212080A340019414212083 -S3154001320012800007821720B0DA02A004C2006004CF -S3154001321080A3400102800004010000007FFFB7F84F -S31540013220901020107FFFFC271103C0009007BFF0CC -S31540013230921660F07FFFF9DC94152120C205A1C0EA -S315400132408330600E8208600380A060022110014431 -S3154001325002800004231000807FFFB7E99010201000 -S3154001326094142120C02461C09007BFE87FFFF9CEA6 -S315400132709207BFF0DA042120C207BFF080A34001C4 -S315400132801280000794142120DA02A004C207BFF479 -S3154001329080A3400102800D21010000007FFFB7D8C5 -S315400132A0901020109007BFE89216E0E07FFFF9BE2C -S315400132B094152120C206E0E0DA05212080A34001D1 -S315400132C082152120128000079816E0E0DA0060049A -S315400132D0C203200480A3400102800D0B01000000BF -S315400132E07FFFB7C7901020109007BFE89215E0C83E -S315400132F07FFFF9AD94152120C205E0C8DA052120EA -S3154001330080A3400182152120128000079815E0C84C -S31540013310DA006004C203200480A3400102800CF558 -S31540013320010000007FFFB7B69010201019100085EC -S31540013330921320B89007BFE87FFFF99B941521208F -S315400133401B000070C205A1C09A13601F190000102E -S315400133508208400D9813201080A0400C0280000482 -S31540013360211001447FFFB7A6901020107FFFFBD5A7 -S31540013370901020001310008594142120921260B8F9 -S315400133807FFFF9899007BFE8C20720B0DA04212000 -S3154001339080A340019414212012800007821720B097 -S315400133A0DA02A004C200600480A340010280000446 -S315400133B0010000007FFFB792901020107FFFFBC1F4 -S315400133C01103C0009007BFE8921660F07FFFF976BF -S315400133D094152120C205A1C08330600E8208600386 -S315400133E080A0600221100144028000042310008065 -S315400133F07FFFB7839010201094142120C02461C010 -S315400134009016E0E07FFFF9689207BFF0C206E0E060 -S31540013410DA04212080A34001941421201280000760 -S315400134208216E0E0DA02A004C200600480A34001F3 -S3154001343002800CAB010000007FFFB7719010201095 -S315400134409016E0E09207BFE87FFFF95794152120D7 -S31540013450C206E0E0DA05212080A340018215212041 -S31540013460128000079816E0E0DA006004C2032004E7 -S3154001347080A3400102800C95010000007FFFB760E8 -S31540013480901020101B100085901360D092100008F8 -S315400134907FFFF9459415212019100085C20320D0DC -S315400134A0DA05212080A340018215212012800007E0 -S315400134B0981320D0DA006004C203200480A340019F -S315400134C002800C7D010000007FFFB74D9010201057 -S315400134D01B100085901360D8921000087FFFF932C7 -S315400134E09415212019100085C20320D8DA05212020 -S315400134F080A340018215212012800007981320D80D -S31540013500DA006004C203200480A3400102800C65F6 -S31540013510010000007FFFB73A901020101B10008574 -S3154001352003100085901360D8921060D07FFFF91E7A -S31540013530941521201B000070C205A1C09A13601F7B -S31540013540190000108208400D9813201080A0400CED -S3154001355002800004211001447FFFB72990102010FA -S315400135607FFFFB5890102000111000851310008535 -S3154001357094142120901220D87FFFF90B921260D02B -S31540013580C20720B0DA04212080A3400194142120EF -S3154001359012800007821720B0DA02A004C20060043C -S315400135A080A3400102800004010000007FFFB714A0 -S315400135B0901020107FFFFB431103C00019100085B6 -S315400135C01B100085901320D0921360D8C025A1C04E -S315400135D07FFFF8F594152120C20720B0DA05212096 -S315400135E080A340018215212012800007981720B040 -S315400135F0DA006004C203200480A3400102800C1F4C -S315400136001B0000707FFFB6FE901020109016E0E080 -S31540013610921660F07FFFF8E494152120C205A1C0FF -S315400136208330600E8208600380A06002211001444D -S3154001363002800004231000807FFFB6F19010201015 -S3154001364094142120C02461C09015E0C87FFFF8D6AC -S315400136509207BFF0C205E0C8DA04212080A34001E9 -S3154001366094142120128000078215E0C8DA02A004D2 -S31540013670C200600480A3400102800B9C010000004F -S315400136807FFFB6DF901020109015E0C89207BFE883 -S315400136907FFFF8C594152120C205E0C8DA0521202F -S315400136A080A3400182152120128000079815E0C8A9 -S315400136B0DA006004C203200480A3400102800B8625 -S315400136C0010000007FFFB6CE901020109015E0C893 -S315400136D09216E0E07FFFF8B494152120C205E0C8B8 -S315400136E0DA05212080A3400182152120128000079E -S315400136F09815E0C8DA006004C203200480A34001A3 -S3154001370002800B70010000007FFFB6BD90102010B3 -S315400137109015E0C8921000087FFFF8A39415212068 -S31540013720C205E0C8DA05212080A340018215212087 -S31540013730128000079815E0C8DA006004C20320042D -S3154001374080A3400102800B5A010000007FFFB6AC06 -S315400137509010201003100085921060B89015E0C8B3 -S315400137607FFFF8919415212003000070A610601F79 -S31540013770DA05A1C0030000109A0B4013AA1060108D -S3154001378080A34015231000852510014402800004C2 -S31540013790211000807FFFB69A90102010C02421C0CE -S315400137A0901460B89207BFF07FFFF87F9414A12070 -S315400137B0C20421C08208401380A040150280000443 -S315400137C0010000007FFFB68E90102010C02421C05A -S315400137D0901460B89207BFE87FFFF8739414A12054 -S315400137E0C20421C08208401380A040150280000413 -S315400137F0010000007FFFB68290102010C02421C036 -S31540013800901460B89216E0E07FFFF8679414A12007 -S31540013810C20421C08208401380A0401502800005E1 -S31540013820131000857FFFB676901020101310008587 -S31540013830C02421C0921260C8901460B87FFFF85A24 -S315400138409414A120C20421C08208401380A04015CF -S3154001385002800005901460B87FFFB6699010201071 -S31540013860901460B8C02421C0921000087FFFF84E22 -S315400138709414A120C20421C08208401380A040159F -S3154001388002800004010000007FFFB65D9010201009 -S31540013890C02421C0901460B8921660F07FFFF842B0 -S315400138A09414A120C20421C08330600E82086003B3 -S315400138B080A06002228000051103C0007FFFB65040 -S315400138C0901020101103C0007FFFFA7E3B10008448 -S315400138D0A2176210C02421C0AA14A120A40460101A -S315400138E0A0102000A6046008B010200C920400131A -S315400138F0900400117FFFF82C94152120DA048010E2 -S3154001390098040012C2052120A004201880A340017A -S315400139101280000790102010DA032004C2056004CB -S3154001392080A3400122800005B0863FFF7FFFB63469 -S3154001393001000000B0863FFF1CBFFFEE920400135A -S31540013940C205A1C080A06000128009890100000063 -S315400139501110008490122348920220087FFFF8122A -S315400139609415212098176210C2052120DA032148B7 -S3154001397080A340011280000782152120DA03214CE1 -S31540013980C200600480A3400122800AAB031000807C -S315400139907FFFB61B901020101110008490122360F7 -S315400139A0920220087FFFF800941521209817621093 -S315400139B0C2052120DA03216080A34001128000075D -S315400139C082152120DA032164C200600480A34001EC -S315400139D002800AA41B0000707FFFB60990102010D8 -S315400139E01110008490122378920220087FFFF7EE8F -S315400139F09415212098176210C2052120DA032178F7 -S31540013A0080A340011280000782152120DA03217C20 -S31540013A10C200600480A3400102800A9C1B00007022 -S31540013A207FFFB5F790102010C025A1C011100000EE -S31540013A3092102000150FFC007FFFF8B2961020006F -S31540013A40030FFC0080A200011280000880A26000E2 -S31540013A501280000601000000C205A1C080A06000DE -S31540013A6002800005111000007FFFB5E5901020107F -S31540013A701110000092102000152FFC007FFFF8A1C5 -S31540013A80961020000310020080A200011280000857 -S31540013A9080A260001280000601000000C205A1C09C -S31540013AA080A0600002800005113000007FFFB5D480 -S31540013AB0901020101130000092102000150FFC00CC -S31540013AC07FFFF890961020000330020080A200018B -S31540013AD01280000880A260001280000601000000EA -S31540013AE0C205A1C080A0600002800005113000001F -S31540013AF07FFFB5C3901020101130000092102000B6 -S31540013B00152FFC007FFFF87F96102000032FFC0045 -S31540013B1080A200011280000880A260001280000687 -S31540013B2001000000C205A1C080A06000028000051E -S31540013B30111000007FFFB5B2901020101110000047 -S31540013B407FFFF87A130FE0000310100080A20001F6 -S31540013B501280000601000000C205A1C080A06000DD -S31540013B6002800005111000007FFFB5A590102010BE -S31540013B70111000007FFFF877130FE000030FE000FC -S31540013B8080A200011280000601000000C205A1C00A -S31540013B9080A0600022800005191000857FFFB5983E -S31540013BA09010201019100085921320E8C025A1C05D -S31540013BB09007BFF07FFFF78F9415212019100085DC -S31540013BC0C20320D8DA05212080A340018215212095 -S31540013BD012800007981320D8DA006004C20320043B -S31540013BE080A3400102800A461B0000707FFFB58416 -S31540013BF0901020111B100085921360D0C025A1C0E2 -S31540013C009007BFF07FFFF77B94152120C207BFE0E5 -S31540013C10DA05212080A34001128000078215212068 -S31540013C20DA006004C207BFE480A3400102800A3E75 -S31540013C30010000007FFFB572901020119007BFF080 -S31540013C409215E0C87FFFF76B94152120C205E0C8A5 -S31540013C50DA05212080A34001821521201280000728 -S31540013C609815E0C8DA006004C203200480A340012D -S31540013C7002800A32010000007FFFB56190102011D9 -S31540013C8003100085921060B89007BFF07FFFF75987 -S31540013C9094152120C20720B0DA05212080A34001D6 -S31540013CA08215212012800007981720B0DA0060049F -S31540013CB0C203200480A3400102800A251B00007034 -S31540013CC07FFFB54F901020119007BFF0921660F01C -S31540013CD07FFFF74894152120C205A1C01B00007043 -S31540013CE08208400D1900002080A0400C211001449B -S31540013CF002800004231000807FFFB54190102011FF -S31540013D0094142120C02461C09007BFE87FFFF73992 -S31540013D109207BFF0DA042120C207BFE880A3400121 -S31540013D201280000794142120DA02A004C207BFECD6 -S31540013D3080A3400102800A10010000007FFFB530D8 -S31540013D409010201119100085901320E89207BFE0CA -S31540013D507FFFF72894152120C20720B0DA052120DC -S31540013D6080A340018215212012800007981720B0B8 -S31540013D70DA006004C203200480A3400102800A03E2 -S31540013D801B0000707FFFB51E901020111B1000858F -S31540013D9003100085901360E8921060D0C025A1C041 -S31540013DA07FFFF7149415212019100085C20320E8DE -S31540013DB0DA05212080A340018215212012800007C7 -S31540013DC0981320E8DA006004C203200480A340016E -S31540013DD0028009F8010000007FFFB509901020110B -S31540013DE09007BFE89215E0C87FFFF702941521209E -S31540013DF0C205E0C8DA05212080A3400182152120B1 -S31540013E00128000079815E0C8DA006004C203200456 -S31540013E1080A34001028009EC010000007FFFB4F855 -S31540013E20901020071B100085921360B89007BFE8D9 -S31540013E307FFFF6F09415212025000070D805A1C01A -S31540013E409A14A01F03000010980B000D82106010F9 -S31540013E5080A3000121100144028000042310008048 -S31540013E607FFFB4E790102011C02461C09007BFE8DE -S31540013E70921660F07FFFF6DF94142120C20461C0E0 -S31540013E80820840121B00002080A0400D22800005C0 -S31540013E90031000857FFFB4DA9010201103100085CE -S31540013EA0901060D894142120C02461C07FFFF6D1C0 -S31540013EB09207BFF019100085C20320D8DA042120E9 -S31540013EC080A340019414212012800007821320D838 -S31540013ED0DA02A004C200600480A34001028008B84F -S31540013EE0010000007FFFB4C6901020111B10008511 -S31540013EF003100085901360D8921060E87FFFF6BDED -S31540013F009415212019100085C20320D0DA052120FD -S31540013F1080A340018215212012800007981320D0EA -S31540013F20DA006004C203200480A34001028008A98C -S31540013F30010000007FFFB4B2901020119016E0E01E -S31540013F40921000087FFFF6AB94152120C20720B0DE -S31540013F50DA05212080A34001821521201280000725 -S31540013F60981720B0DA006004C203200480A3400100 -S31540013F700280089D1B0000707FFFB4A190102011A4 -S31540013F80C025A1C09016E0E09215E0C87FFFF699E2 -S31540013F9094152120C205E0C8DA05212080A34001FD -S31540013FA082152120128000079815E0C8DA006004C6 -S31540013FB0C203200480A3400102800894010000004E -S31540013FC07FFFB48F901020111B100085921360B8AB -S31540013FD09016E0E07FFFF68794152120C20720B0B6 -S31540013FE0DA05212080A34001821521201280000795 -S31540013FF0981720B0DA006004C203200480A3400170 -S31540014000028008871B0000707FFFB47D901020114D -S31540014010C025A1C09016E0E0921660F07FFFF675CC -S3154001402094152120C205A1C01B0000708208400DD5 -S315400140301900002080A0400C23100080028000045B -S31540014040211001447FFFB46E901020119414212059 -S31540014050C02461C09015E0C87FFFF6669207BFF0A5 -S31540014060C205E0C8DA04212080A34001941421202E -S31540014070128000078215E0C8DA02A004C20060047B -S3154001408080A340010280086F010000007FFFB45CFD -S31540014090901020119015E0C89207BFE87FFFF655B2 -S315400140A094152120C205E0C8DA05212080A34001EC -S315400140B082152120128000079815E0C8DA006004B5 -S315400140C0C203200480A3400102800863010000006E -S315400140D07FFFB44B901020119015E0C89216E0E096 -S315400140E07FFFF64494152120C205E0C8DA05212058 -S315400140F080A3400182152120128000079815E0C84F -S31540014100DA006004C203200480A3400102800857FC -S31540014110010000007FFFB43A901020119015E0C8CD -S31540014120921000087FFFF63394152120C205E0C89E -S31540014130DA05212080A34001821521201280000743 -S315400141409815E0C8DA006004C203200480A3400148 -S31540014150028007F3010000007FFFB429901020116F -S3154001416003100085921060B89015E0C87FFFF621D4 -S3154001417094152120C20720B0DA05212080A34001F1 -S315400141808215212012800007981720B0DA006004BA -S31540014190C203200480A34001028007E61B00007091 -S315400141A07FFFB417901020119015E0C8921660F069 -S315400141B07FFFF61094152120C205A1C03100007081 -S315400141C0820840183B00002080A0401D2310014476 -S315400141D002800004211000807FFFB4099010201155 -S315400141E019100085901320B89207BFF07FFFF601A2 -S315400141F094146120C20421C0AA16201F3500001064 -S3154001420082084015A616A01080A040130280000423 -S31540014210251000857FFFB3FA90102011C02421C0DC -S315400142209014A0B89207BFE87FFFF5F2941461207D -S31540014230C20421C08208401580A0401302800004B8 -S31540014240010000007FFFB3EE90102011C02421C071 -S315400142509014A0B89216E0E07FFFF5E69414612031 -S31540014260C20421C08208401580A040130280000587 -S31540014270131000857FFFB3E29010201113100085C3 -S31540014280C02421C0921260C89014A0B87FFFF5D90E -S3154001429094146120C20421C08208401580A04013B5 -S315400142A0028000059014A0B87FFFB3D5901020116D -S315400142B09014A0B8C02421C0921000087FFFF5CD0C -S315400142C094146120C20421C08208401580A0401385 -S315400142D002800005131000857FFFB3C9901020119D -S315400142E013100085C02421C09014A0B8921260F02A -S315400142F07FFFF5C094146120C20421C08208401892 -S3154001430080A0401D2280000515203E837FFFB3BC5F -S315400143109010201115203E83170021C89412A3FF47 -S315400143209612E3A1191FC0001B00C0009A1360B08A -S3154001433098132102D43FBFD0D83FBFD8C02421C053 -S315400143409007BFD89207BFD07FFFF5AA9407BFC891 -S31540014350DA07BFC8033FFC0080A340010280070B78 -S31540014360A207BFC87FFFB3A6901020111510868300 -S31540014370170021C89412A3FF9612E3A11900400029 -S315400143801B00C0009A1360B098132102D43FBFD0DE -S31540014390D83FBFD8C025A1C09007BFD89207BFD08C -S315400143A07FFFF5949407BFC8DA046004C207BFC80B -S315400143B08090400D1280000A1B000070C205A1C00A -S315400143C09A13601F190000108208400D98132004AB -S315400143D080A0400C22800005150FFC007FFFB388AA -S315400143E090102011150FFC00170281D89412A0409D -S315400143F09612E10C9A102010190006AFD43FBFD097 -S31540014400D83FBFD8C025A1C09007BFD89207BFD01B -S315400144107FFFF5789407BFC8030006AEDA07BFC829 -S315400144208210639580A340011280000703003A9AE7 -S31540014430DA0460048210630F80A3400102800733CF -S31540014440010000007FFFB36E90102011150FFFFF92 -S31540014450170281D89412A3409612E10C9A102010AB -S31540014460190006AFD43FBFD0D83FBFD8C025A1C0A1 -S315400144709007BFD89207BFD07FFFF55E9407BFC8AC -S31540014480DA046004C207BFC88090400D1280000A5A -S315400144901B000070C205A1C09A13601F19000010CD -S315400144A08208400D9813200480A0400C028000042D -S315400144B0010000007FFFB35290102011C025A1C01A -S315400144C0111088007FFFF63713100100031066C9EB -S315400144D0821062CA80A2000112800006010000001B -S315400144E0C205A1C080A06000028000051111BBFE7B -S315400144F07FFFB343901020111111BBFE901223FF91 -S315400145007FFFF628130C7040031527CA8210611EDF -S3154001451080A200011280000601000000C205A1C070 -S3154001452080A06000028000051310C7FF7FFFB334EF -S31540014530901020111310C7FF921263FC7FFFF619EA -S31540014540111E607E031D73FC8210633880A2000138 -S315400145501280000601000000C205A1C080A06000D3 -S3154001456002800005130FE0007FFFB3259010201154 -S31540014570130FE000921260017FFFF60A110020003E -S3154001458080A220001280000A1B000070C205A1C053 -S315400145909A13601F190000108208400D98132004D9 -S315400145A080A0400C02800005110FE0007FFFB3148C -S315400145B090102011110FE000C025A1C07FFFF5F931 -S315400145C092100008030FE00080A20001128000064D -S315400145D001000000C205A1C080A060000280000564 -S315400145E0130FE0007FFFB30690102011130FE00078 -S315400145F0921260017FFFF5EB1100200080A220009E -S315400146001280000A1B000070C205A1C09A13601FE8 -S31540014610190000108208400D9813200480A0400C18 -S31540014620028000051B1000857FFFB2F59010201116 -S315400146301B100085921360E8C025A1C09007BFF00A -S315400146407FFFF4DE9415212019100085C20320E86E -S31540014650DA05212080A3400182152120128000071E -S31540014660981320E8DA006004C203200480A34001C5 -S31540014670028006BA010000007FFFB2E190102012CD -S315400146801B100085921360D09007BFF07FFFF4CBDB -S315400146909415212019100085C20320D0DA05212066 -S315400146A080A340018215212012800007981320D053 -S315400146B0DA006004C203200480A34001028006ACF4 -S315400146C0010000007FFFB2CE901020129007BFF08C -S315400146D09215E0C87FFFF4B994152120C205E0C8C0 -S315400146E0DA05212080A3400182152120128000078E -S315400146F09815E0C8DA006004C203200480A3400193 -S31540014700028006A0010000007FFFB2BD901020127A -S315400147101B100085921360B89007BFF07FFFF4A786 -S3154001472094152120C20720B0DA05212080A340013B -S315400147308215212012800007981720B0DA00600404 -S31540014740C203200480A34001028006931B0000702F -S315400147507FFFB2AB901020129007BFF0921660F027 -S315400147607FFFF49694152120C205A1C01B0000705D -S315400147708208400D1900002080A0400C2110014400 -S3154001478002800004231000807FFFB29D901020120A -S3154001479094142120C02461C09007BFE87FFFF487AD -S315400147A09207BFF0DA042120C207BFE880A3400187 -S315400147B01280000794142120DA02A004C207BFEC3C -S315400147C080A34001028006DE010000007FFFB28C1B -S315400147D0901020120310008519100085901060E892 -S315400147E0921320D87FFFF47594152120C20720B07B -S315400147F0DA05212080A3400182152120128000077D -S31540014800981720B0DA006004C203200480A3400157 -S31540014810028006D01B0000707FFFB27990102012F3 -S31540014820C025A1C09007BFE89215E0C87FFFF46399 -S3154001483094152120C205E0C8DA05212080A3400154 -S3154001484082152120128000079815E0C8DA0060041D -S31540014850C203200480A34001028006C70100000074 -S315400148607FFFB267901024991B100085921360B8A0 -S315400148709007BFE87FFFF45194152120C20720B06D -S31540014880DA05212080A340018215212012800007EC -S31540014890981720B0DA006004C203200480A34001C7 -S315400148A0028006BA1B0000707FFFB255901020129D -S315400148B09007BFE8921660F07FFFF44094152120DF -S315400148C0C205A1C01B0000708208400D19000020DE -S315400148D080A0400C21100144028000042310008076 -S315400148E07FFFB2479010201294142120C02461C04A -S315400148F09016E0E07FFFF4319207BFF0C206E0E098 -S31540014900DA04212080A3400194142120128000075B -S315400149108216E0E0DA02A004C200600480A34001EE -S31540014920028006A4010000007FFFB23590102012DC -S315400149309016E0E09207BFE87FFFF420941521200E -S31540014940C20720B0DA05212080A34001821521202B -S3154001495012800007981720B0DA006004C2032004D1 -S3154001496080A34001028006981B0000707FFFB2249D -S3154001497090102012C025A1C09016E0E09215E0C823 -S315400149807FFFF40E94152120C205E0C8DA052120E7 -S3154001499080A3400182152120128000079815E0C8A6 -S315400149A0DA006004C203200480A340010280068F1E -S315400149B0010000007FFFB212901020120310008503 -S315400149C0921060B89016E0E07FFFF3FC9415212029 -S315400149D0C20720B0DA05212080A34001821521209B -S315400149E012800007981720B0DA006004C203200441 -S315400149F080A34001028006821B0000707FFFB20047 -S31540014A00901020129016E0E0921660F07FFFF3EBD3 -S31540014A1094152120C205A1C01B0000708208400DDB -S31540014A201900002080A0400C21100144028000049E -S31540014A30231000807FFFB1F29010201294142120A0 -S31540014A40C02461C09015E0C87FFFF3DC9207BFF038 -S31540014A50C205E0C8DA04212080A340019414212034 -S31540014A60128000078215E0C8DA02A004C200600481 -S31540014A7080A340010280061E010000007FFFB1E0D5 -S31540014A80901020129015E0C89207BFE87FFFF3CB44 -S31540014A9094152120C205E0C8DA05212080A34001F2 -S31540014AA082152120128000079815E0C8DA006004BB -S31540014AB0C203200480A340010280061201000000C7 -S31540014AC07FFFB1CF901020129015E0C89216E0E01A -S31540014AD07FFFF3BA94152120C205E0C8DA052120EB -S31540014AE080A3400182152120128000079815E0C855 -S31540014AF0DA006004C203200480A340010280060656 -S31540014B00010000007FFFB1BE901020129015E0C851 -S31540014B10921000087FFFF3A994152120C205E0C831 -S31540014B20DA05212080A34001821521201280000749 -S31540014B309815E0C8DA006004C203200480A340014E -S31540014B40028005FA010000007FFFB1AD90102012EE -S31540014B50191000859015E0C8921320B87FFFF3978E -S31540014B609415212003000070A610601FDA05A1C02C -S31540014B70030000109A0B4013AA10601080A3401541 -S31540014B802510008523100144028000042110008075 -S31540014B907FFFB19B90102012C02421C09014A0B871 -S31540014BA09207BFF07FFFF38594146120C20421C0B0 -S31540014BB08208401380A040150280000401000000D5 -S31540014BC07FFFB18F90102012C02421C09014A0B84D -S31540014BD09207BFE87FFFF37994146120C20421C094 -S31540014BE08208401380A040150280000401000000A5 -S31540014BF07FFFB18390102012C02421C09014A0B829 -S31540014C009216E0E07FFFF36D94146120C20421C047 -S31540014C108208401380A040150280000513100085CC -S31540014C207FFFB1779010201213100085C02421C058 -S31540014C30921260C89014A0B87FFFF360941461206B -S31540014C40C20421C08208401380A04015028000059D -S31540014C509014A0B87FFFB16A901020129014A0B8AA -S31540014C60C02421C0921000087FFFF35494146120A0 -S31540014C70C20421C08208401380A04015028000046E -S31540014C80010000007FFFB15E90102012C02421C0B8 -S31540014C909014A0B8921660F07FFFF34894146120F7 -S31540014CA0C20421C08330600E8208600380A0600286 -S31540014CB0228000051103C0007FFFB15190102012E0 -S31540014CC01103C0007FFFF57F3B100084A41763905A -S31540014CD0AA146120C02421C0A604A008A210200065 -S31540014CE0B0102005A00440129204401394152120CF -S31540014CF07FFFF33290100010DA042010C205212004 -S31540014D00A204601880A3400112800007901020126F -S31540014D10DA042014C205600480A3400102800474B1 -S31540014D20010000007FFFB13601000000B0863FFF61 -S31540014D303CBFFFEEA00440121110008590122020C6 -S31540014D40920220087FFFF31D941521209817639046 -S31540014D50C2052120DA0320A080A34001128000076A -S31540014D6082152120DA0320A4C200600480A34001F9 -S31540014D70028004DC1B0000707FFFB12190102012DD -S31540014D801110008590122038C025A1C0920220083A -S31540014D907FFFF30A9415212098176390C2052120BD -S31540014DA0DA0320B880A34001128000078215212032 -S31540014DB0DA0320BCC200600480A340010280047F64 -S31540014DC01B0000707FFFB10E90102012111000855C -S31540014DD090122050C025A1C0920220087FFFF2F711 -S31540014DE09415212098176390C2052120DA0320D01B -S31540014DF080A340011280000782152120DA0320D4C6 -S31540014E00C200600480A34001028004761B0000704A -S31540014E107FFFB0FB90102012111000859012206880 -S31540014E20C025A1C0920220087FFFF2E494152120FB -S31540014E3098176390C2052120DA0320E880A3400138 -S31540014E401280000782152120DA0320ECC20060049B -S31540014E5080A340010280046D1B0000707FFFB0E813 -S31540014E60901020121110008590122080C025A1C0FB -S31540014E70920220087FFFF2D1941521209817639062 -S31540014E80C2052120DA03210080A3400112800007D8 -S31540014E9082152120DA032104C200600480A3400167 -S31540014EA0028004641B0000707FFFB0D59010201271 -S31540014EB0C025A1C0111010007FFFF3B013100000F0 -S31540014EC00310300080A2000112800006010000009C -S31540014ED0C205A1C080A0600002800005111FE0004C -S31540014EE07FFFB0C790102012111FE0001310000081 -S31540014EF07FFFF2B794152120031FFC00DA0521201C -S31540014F0080A340011280000A82152120C20060045C -S31540014F1080A060001280000601000000C205A1C009 -S31540014F2080A0600002800005111FE0007FFFB0B441 -S31540014F309010201B111FE000133000007FFFF2A4E8 -S31540014F4094152120033FFC00DA05212080A340016E -S31540014F501280000A82152120C200600480A06000F0 -S31540014F601280000601000000C205A1C080A06000B9 -S31540014F7002800005111000007FFFB0A19010201C97 -S31540014F8011100000921020107FFFF29194152120FC -S31540014F90C205A1C01B0000708208400D1900002007 -S31540014FA080A0400C2110014402800004231000809F -S31540014FB07FFFB0939010201D94142120C02461C01E -S31540014FC0110020007FFFF282130FC000DA04212076 -S31540014FD0030E000080A340011280000A9414212090 -S31540014FE0C202A00480A060001280000601000000F9 -S31540014FF0C20461C080A0600002800005111FDFFF6E -S315400150007FFFB07F9010201E111FDFFF901223FFFC -S31540015010131000007FFFF26E941521200311FFFF4C -S31540015020821063FFDA05212080A340011280000728 -S3154001503082152120DA0060040338000080A3400174 -S3154001504002800405010000007FFFB06D9010201F13 -S31540015050111FD000130FF0007FFFF25D9415212040 -S315400150600311FC80DA05212080A340011280000A49 -S3154001507082152120C200600480A0600012800006D3 -S3154001508001000000C205A1C080A0600002800005A9 -S31540015090111FDFFF7FFFB05A90102021111FDFFF44 -S315400150A0901223FF921000087FFFF24994152120A8 -S315400150B00313FBFF821063FFDA05212080A3400121 -S315400150C01280000882152120DA00600403300000B6 -S315400150D08210602080A34001028003E401000000A9 -S315400150E07FFFB047901020207FFFF4761103C00068 -S315400150F0C025A1C09007BFE07FFFF2449215212051 -S31540015100C207BFE0DA05212080A3400112800007D3 -S3154001511082152120DA006004C207BFE480A3400162 -S31540015120028003D7010000007FFFB03590102013A5 -S315400151301B100085901360E87FFFF2349215212001 -S3154001514003100085DA0060E8C205212080A0400DE9 -S31540015150191000858215212012800007901320E83E -S31540015160DA006004C202200480A34001028003C920 -S31540015170010000007FFFB022901020131B10008514 -S31540015180901360D07FFFF2219215212019100085DE -S31540015190C20320D0DA05212080A3400182152120B7 -S315400151A012800007981320D0DA006004C20320045D -S315400151B080A34001028003BC010000007FFFB010C4 -S315400151C0901020131B100085901360D87FFFF20FBB -S315400151D092152120C20720B0DA05212080A3400183 -S315400151E08215212012800007981720B0DA0060044A -S315400151F0C203200480A34001028003B01B0000705B -S315400152007FFFAFFF9010201303100085901060B808 -S31540015210C025A1C07FFFF1FD92152120C20720B014 -S31540015220DA05212080A34001821521201280000742 -S31540015230981720B0DA006004C203200480A340011D -S315400152400280040F1B0000707FFFAFED901020130A -S31540015250C025A1C09015E0C87FFFF1EC9215212031 -S31540015260C2052120DA05E0C880A0400D8215212023 -S31540015270128000079015E0C8DA006004C2022004DB -S3154001528080A3400102800407010000007FFFAFDCDC -S3154001529090102013170C00089A10200019100C00CA -S315400152A015300F789612E001D83FBFF0D43FBFC00A -S315400152B09007BFF07FFFF1D592152120031004001E -S315400152C0DA05212080A340011280000A821521209F -S315400152D0C200600480A06000128000060100000048 -S315400152E0C205A1C080A06000028000059007BFC032 -S315400152F07FFFAFC3901020139007BFC07FFFF1C35C -S3154001530092152120C2052120DA0720B080A0400D48 -S315400153108215212012800007981720B0DA00600418 -S31540015320C203200480A34001028003E31B000070F6 -S315400153307FFFAFB390102013901660F07FFFF1B35B -S3154001534092152120C205A1C08330600E82086003F8 -S3154001535080A0600202800004211000807FFFAFA878 -S3154001536090102013C02421C07FFFF2981111F20042 -S315400153700310E80080A2000112800006010000002F -S31540015380C20421C080A06000028000040100000028 -S315400153907FFFAF9B901020137FFFF3CA11100000CF -S315400153A01101F5897FFFF289901221E20308E96430 -S315400153B080A200011280000601000000C205A1C0C2 -S315400153C080A0600002800004010000007FFFAF8CD6 -S315400153D0901020237FFFF27D1112A2080311410094 -S315400153E080A200011280000601000000C205A1C092 -S315400153F080A0600002800004010000007FFFAF80B2 -S31540015400901020237FFFF3AF110010009007BFF0EB -S31540015410921660F07FFFF1649415212003100C0071 -S31540015420DA05212080A340011280000A821521203D -S31540015430C200600480A060001280000601000000E6 -S31540015440C205A1C080A0600002800005901660F0F0 -S315400154507FFFAF6B90102014901660F09207BFC08B -S315400154607FFFF1569415212003200000DA05212003 -S3154001547080A340011280000A82152120C2006004E7 -S3154001548080A060001280000601000000C205A1C094 -S3154001549080A0600002800004010000007FFFAF5839 -S315400154A0901020147FFFF19190102001030FE0002E -S315400154B080A200011280000601000000C205A1C0C1 -S315400154C080A0600002800004010000007FFFAF4C15 -S315400154D0901020147FFFF17D90102001030FFC00F6 -S315400154E080A200011280000880A26000128000069E -S315400154F001000000C205A1C080A060000280000436 -S31540015500010000007FFFAF3E901020147FFFF36D36 -S315400155101110100019100085D41B20D07FFFF1F91E -S31540015520D01E60F003100085D03D2120DA0060D8FE -S31540015530C205212080A0400D191000858215212029 -S3154001554012800007901320D8DA006004C2022004BA -S3154001555080A3400102800361010000007FFFAF2864 -S31540015560901020227FFFF35711100000170400808E -S31540015570150F28009612E0F09A102000190FFC0032 -S31540015580D43FBFC0D83FBFF09007BFF09207BFC01E -S315400155907FFFF10594152120030FFC00DA05212038 -S315400155A080A340011280000682152120C2006004BA -S315400155B080A0600002800004010000007FFFAF1060 -S315400155C0901020157FFFF33F112000001700004087 -S315400155D0150014009612E0019A102000190FFC00E4 -S315400155E0D43FBFC0D83FBFF09007BFF09207BFC0BE -S315400155F07FFFF0ED94152120030FFC00DA052120F1 -S3154001560080A340011280000682152120C200600459 -S3154001561080A0600102800004010000007FFFAEF817 -S31540015620901020157FFFF32711300000170000402E -S31540015630152014009612E0019A102000192FFC0043 -S31540015640D43FBFC0D83FBFF09007BFF09207BFC05D -S315400156507FFFF0D594152120032FFC00DA05212088 -S3154001566080A340011280000682152120C2006004F9 -S3154001567080A0600102800004010000007FFFAEE0CF -S31540015680901020157FFFF30F11100000190FFC0039 -S315400156909A102000D83FBFF09007BFF09216E0E085 -S315400156A07FFFF0C194152120C206E0E0DA052120F2 -S315400156B080A3400182152120128000079816E0E060 -S315400156C0DA006004C203200480A340010280000482 -S315400156D0010000007FFFAECA901020157FFFF2F94E -S315400156E01120000017000040150014009612E00139 -S315400156F0190FFC009A102000D43FBFC0D83FBFF01D -S315400157009007BFF09216E0E07FFFF0A794152120A5 -S31540015710C206E0E0DA05212080A34001821521205E -S31540015720128000079816E0E0DA006004C203200404 -S3154001573080A3400102800004010000007FFFAEB05B -S31540015740901020157FFFF2DF113000001700004056 -S31540015750152014009612E0019A102000192FFC0022 -S31540015760D43FBFC0D83FBFF09007BFF09216E0E0EC -S315400157707FFFF08D94152120C2052120DA06E0E055 -S3154001578080A0400D82152120128000079016E0E08E -S31540015790DA006004C202200480A3400102800004B2 -S315400157A0010000007FFFAE96901020157FFFF2C5E5 -S315400157B01110000015100000961020019A102001CA -S315400157C0190FFC00D43FBFC0D83FBFF09007BFF0D0 -S315400157D09207BFC07FFFF079941521200310000086 -S315400157E0DA05212080A3400112800006821521207E -S315400157F0C200600480A06002028000040100000033 -S315400158007FFFAE7F901020157FFFF2AE1120000082 -S315400158109007BFF09207BFC07FFFF0689415212023 -S3154001582003100000DA05212080A340011280000602 -S3154001583082152120C200600480A06003028000041A -S31540015840010000007FFFAE6E901020157FFFF29D94 -S31540015850113000009A102001192FFC00D83FBFF0EB -S315400158609007BFF09207BFC07FFFF05494152120E7 -S3154001587003300000DA05212080A340011280000692 -S3154001588082152120C200600480A0600302800004CA -S31540015890010000007FFFAE5A901020157FFFF2896C -S315400158A011100000150FFC04172F26159412A01293 -S315400158B09612E231190FFEAE1B1CD2E89A13601103 -S315400158C098132154D43FBFC0D83FBFF09007BFF0D3 -S315400158D09207BFC07FFFF04794152120030FFEA713 -S315400158E082106296DA05212080A3400112800008C9 -S315400158F082152120DA006004032C1B348210602FAC -S3154001590080A3400102800004010000007FFFAE3CFD -S31540015910901020157FFFF26B112000009007BFF019 -S315400159209207BFC07FFFF03394152120030FFEA7D6 -S3154001593082106296DA05212080A340011280000878 -S3154001594082152120DA006004032C1B34821060305A -S3154001595080A3400102800004010000007FFFAE28C1 -S31540015960901020157FFFF25711300000192FFC04CB -S315400159701B2F26159A13623198132012D83FBFC0A8 -S315400159809007BFF09207BFC07FFFF01A9415212000 -S31540015990032FFEA782106296DA05212080A34001DB -S315400159A01280000882152120DA006004032C1B3482 -S315400159B08210603080A34001028000040100000093 -S315400159C07FFFAE0F901020157FFFF23E11100000B1 -S315400159D015101000961020009A102000191038005A -S315400159E0D43FBFC0D83FBFF09007BFF09207BFC0BA -S315400159F07FFFF0009415212003102400DA052120B1 -S31540015A0080A340011280000682152120C200600455 -S31540015A1080A0600002800004010000007FFFADF815 -S31540015A20901020157FFFF227112000009007BFF04C -S31540015A309207BFC07FFFEFEF94152120031024008A -S31540015A40DA05212080A3400112800006821521201B -S31540015A50C200600480A060000280000401000000D2 -S31540015A607FFFADE7901020157FFFF2161130000041 -S31540015A709007BFF09207BFC07FFFEFDE941521204C -S31540015A8003102400DA05212080A34001128000067C -S31540015A9082152120C200600480A0600002800004BB -S31540015AA0010000007FFFADD6901020157FFFF20563 -S31540015AB011100000210FE000110020007FFFF0B916 -S31540015AC09214200180A220001280012301000000CF -S31540015AD07FFFF1FC11200000110020007FFFF0B193 -S31540015AE09214200180A220001280011801000000BA -S31540015AF07FFFF1F411300000921420017FFFF0A9DD -S31540015B001100200080A220001280010D010000003A -S31540015B107FFFF1EC111000009A102000190FFC00D4 -S31540015B20D83FBFF09007BFF07FFFEFB89215212015 -S31540015B30C207BFF0DA05212080A340011280000789 -S31540015B4082152120DA006004C207BFF480A3400118 -S31540015B50028002A7010000007FFFADA99010201529 -S31540015B607FFFF1D8112000009007BFF07FFFEFA71C -S31540015B7092152120C207BFF0DA05212080A34001FA -S31540015B801280000782152120DA006004C207BFF4A3 -S31540015B9080A340010280029B010000007FFFAD9877 -S31540015BA0901020157FFFF1C7113000009007BFF01C -S31540015BB07FFFEF9692152120C207BFF0DA0521201B -S31540015BC080A340011280000782152120DA0060047B -S31540015BD0C207BFF480A340010280028F010000008A -S31540015BE07FFFAD87901020157FFFF1B611100000A1 -S31540015BF0030FDFFF901063FF7FFFF074A0100008D2 -S31540015C0080A2001002800004010000007FFFAD7CED -S31540015C10901020157FFFF1AB112000007FFFF06B44 -S31540015C2090100010030FE00080A2000102800004E2 -S31540015C30010000007FFFAD72901020157FFFF1A19A -S31540015C40113000007FFFF0619010001080A200101B -S31540015C5002800004010000007FFFAD69901020150D -S31540015C607FFFF198901020007FFFF0609015212072 -S31540015C70032FFE00DA05212080A340011280000691 -S31540015C8082152120C200600480A0600002800005C8 -S31540015C90211001447FFFAD5A901020162110014476 -S31540015CA07FFFF05C90142128DA042128032FF000AD -S31540015CB080A3400102800004A21421287FFFAD5039 -S31540015CC0901020167FFFF05D90100011DA04212814 -S31540015CD0030FE00080A340010280000401000000A0 -S31540015CE07FFFAD47901020167FFFF064901521206D -S31540015CF0030FFBF7821063F0DA05212080A34001F0 -S31540015D001280000882152120DA0060040303FF1285 -S31540015D108210604A80A3400102800005921660F01D -S31540015D207FFFAD3790102016921660F09007BFF0B6 -S31540015D307FFFEF3094152120C205A1C08330600E4C -S31540015D408208600780A060020280000519100046A3 -S31540015D507FFFAD2B901020171910004617100080B9 -S31540015D60DA02E1C8821321F880A0400DE00321F850 -S31540015D7002800004A212E1C87FFFAD2190102018D5 -S31540015D80C204600480A040100280000401000000AB -S31540015D907FFFAD1B90102018C204600880A06000F0 -S31540015DA01280007701000000C204600C80A06000F0 -S31540015DB01280006C010000007FFFEEE6010000004A -S31540015DC080A220010280019801000000190C40299F -S31540015DD01B23CD1B9A13609B981320069410200019 -S31540015DE096102000D83FBFF0D43FBFC07FFFEF2FB2 -S31540015DF09007BFF003100083A21062101B100081B0 -S31540015E0003100144A0136210A4106120B0102000B9 -S31540015E10832E2002DA044001DA27BFC09007BFC0B3 -S31540015E207FFFEF25921521209B2E2003D804000DDC -S31540015E30C2052120B00620019603401080A300012F -S31540015E401280000790102019DA02E004C204A0046F -S31540015E5080A340010280000580A620FF7FFFACE8B9 -S31540015E600100000080A620FF04BFFFEB832E200225 -S31540015E7003100083A41062101B100080031001441C -S31540015E80A2136210A6106120B0102000A12E20029C -S31540015E90C2048010C227BFC0921521207FFFEEDBCE -S31540015EA09007BFC0DA044010C2052120B006200287 -S31540015EB09804001180A34001128000079010201A17 -S31540015EC0DA032004C204E00480A3400102800005F5 -S31540015ED080A620FF7FFFACCA0100000080A620FFFC -S31540015EE024BFFFECA12E200230800211C205A1C0C1 -S31540015EF080A0600022BFFB8FB0863FFF30BFFB8A88 -S31540015F00C205A1C080A0600002BFF14501000000AA -S31540015F1030BFF141C205A1C080A0600002BFF13689 -S31540015F200100000030BFF132C205A1C080A060006F -S31540015F3002BFF1270100000030BFF1237FFFACB063 -S31540015F409010201530BFFEF37FFFACAD90102015A9 -S31540015F5030BFFEE87FFFACAA9010201530BFFEDDB2 -S31540015F607FFFACA79010201830BFFF947FFFACA4F1 -S31540015F709010201010BFF678111000847FFFACA05E -S31540015F809010201830BFFF89C207BFCC80A06000A7 -S31540015F9012BFF8F501000000C20421C08208401575 -S31540015FA09A16A00880A0400D12BFF8EF010000002C -S31540015FB010BFF8F015108683C205A1C09A13601F61 -S31540015FC0190000108208400D9813200880A0400C4B -S31540015FD012BFFB7D1110008510BFFB7F9012205030 -S31540015FE0C205A1C09A13601F190000108208400D16 -S31540015FF09813200880A0400C12BFFB861110008523 -S3154001600010BFFB8890122068C205A1C09A13601F79 -S31540016010190000108208400D9813200480A0400CFE -S3154001602012BFFB8F1110008510BFFB91901220808B -S31540016030C205A1C09A13601F190000108208400DC5 -S315400160409813200880A0400C12BFFB980100000065 -S3154001605030BFFB98C205A1C080A0600002BFFBFE15 -S31540016060111FD00030BFFBF9C205A1C080A060005E -S3154001607002BFFC1E0100000030BFFC1AC205A1C0D0 -S3154001608080A0600002BFFC2C1B10008530BFFC279E -S31540016090C205A1C080A0600002BFFC3A1B1000856A -S315400160A030BFFC35C205A1C080A0600002BFFC47DD -S315400160B01B10008530BFFC42C205A1C09A13601F68 -S315400160C0190000108208400D9813201080A0400C42 -S315400160D012BFFC4C0310008510BFFC4E901060B8F7 -S315400160E0C205A1C09A13601F190000108208400D15 -S315400160F09813200480A0400C12BFFB20111000858C -S3154001610010BFFB2290122038C205A1C080A06000BA -S3154001611022BFF8D0150FFFFF30BFF8CBC205A1C093 -S3154001612080A0600002BFF8100310008530BFF80B55 -S31540016130C205A1C09A13601F190000108208400DC4 -S315400161409813201080A0400C12BFF8169015E0C895 -S3154001615010BFF818921660F0C205A1C080A0600079 -S3154001616002BFF9491B10008530BFF944C205A1C0E1 -S3154001617080A0600002BFF9579007BFF030BFF952C7 -S31540016180C205A1C080A0600002BFF9631B10008553 -S3154001619030BFF95EC205A1C09A13601F19000010F5 -S315400161A08208400D9813201080A0400C12BFF96957 -S315400161B09007BFF010BFF96B921660F0C20461C040 -S315400161C080A0600002BFF74B1B10008530BFF74629 -S315400161D0C205A1C080A0600002BFF75A9016E0E058 -S315400161E030BFF755C205A1C09A13601F19000010B0 -S315400161F08208400D9813201080A0400C12BFF75F13 -S315400162000100000030BFF75FC205A1C080A0600059 -S3154001621002BFF76F1B10008530BFF76AC205A1C0E8 -S315400162209A13601F190000108208400D9813201020 -S3154001623080A0400C12BFF7750100000030BFF77512 -S31540016240C20461C080A0600002BFF7949015E0C807 -S3154001625030BFF78FC205A1C080A0600002BFF7A082 -S315400162609015E0C830BFF79BC205A1C080A0600071 -S3154001627002BFF7AC9015E0C830BFF7A7C205A1C071 -S315400162809A13601F190000108208400D98132010C0 -S3154001629080A0400C12BFFBED0100000030BFFBEDBA -S315400162A0C205A1C080A0600002BFFBFC170C00081C -S315400162B030BFFBF7C205A1C09A13601F1900001039 -S315400162C08208400D9813201080A0400C12BFFC1983 -S315400162D0901660F030BFFC1AC205A1C080A06000D4 -S315400162E002BFFCA10100000030BFFC9DC20461C099 -S315400162F080A0600002BFF9E59015E0C830BFF9E023 -S31540016300C205A1C080A0600002BFF9F19015E0C8A6 -S3154001631030BFF9ECC205A1C080A0600002BFF9FD03 -S315400163209015E0C830BFF9F8C205A1C080A0600051 -S3154001633002BFFA091910008530BFFA04C20461C0D0 -S3154001634080A0600002BFF9250310008530BFF92007 -S31540016350C205A1C09A13601F190000108208400DA2 -S315400163609813201080A0400C12BFF92C01000000A8 -S3154001637030BFF92CC205A1C080A0600002BFF93C24 -S315400163801B10008530BFF937C205A1C09A13601FA3 -S31540016390190000108208400D9813201080A0400C6F -S315400163A012BFF9429007BFE810BFF944921660F058 -S315400163B0C20461C080A0600002BFF95F9016E0E0B0 -S315400163C030BFF95AC205A1C09A13601F19000010C7 -S315400163D08208400D9813201080A0400C12BFF9642A -S315400163E00100000030BFF964C205A1C080A0600071 -S315400163F002BFF9740310008530BFF96FC205A1C011 -S315400164009A13601F190000108208400D981320103E -S3154001641080A0400C12BFF97A9016E0E010BFF97CDB -S31540016420921660F07FFFAB769010201910BFFE697F -S31540016430190C4029D80061C01B0000709A13601FD7 -S3154001644003000010980B000D8210600880A3000124 -S3154001645012BFF5501110008410BFF55290122360FF -S31540016460C205A1C09A13601F190000108208400D91 -S315400164709813200480A0400C12BFF55811100084D7 -S3154001648010BFF55A90122378C205A1C09A13601F16 -S31540016490190000108208400D9813200480A0400C7A -S315400164A012BFF5600100000030BFF560C205A1C012 -S315400164B080A0600002BFF4A90310008530BFF4A498 -S315400164C0C205A1C080A0600002BFF4939015E0C848 -S315400164D030BFF48EC205A1C080A0600002BFF47D2A -S315400164E09015E0C830BFF478C20461C080A0600056 -S315400164F002BFF4679015E0C830BFF462C205A1C07F -S315400165009A13601F190000108208400D981320024B -S3154001651080A0400C12BFF5B61B10008510BFF5B820 -S31540016520921360D0C205A1C080A0600002BFF5C52C -S315400165309007BFF030BFF5C0C205A1C080A0600082 -S3154001654002BFF5D10310008530BFF5CCC205A1C00D -S315400165509A13601F190000108208400D98132010ED -S3154001656080A0400C12BFF5D79007BFF010BFF5D9F8 -S31540016570921660F0C20461C080A0600022BFF5F3AC -S315400165801910008530BFF5EEC205A1C09A13601FF0 -S31540016590190000108208400D9813201080A0400C6D -S315400165A012BFF5F91B10008510BFF5FB03100085DE -S315400165B0C205A1C080A0600002BFF60B9007BFE8EC -S315400165C030BFF606C205A1C080A0600002BFF61723 -S315400165D01B10008530BFF612C20421C080A06000A6 -S315400165E022BFF03E113C02AF30BFF039C205A1C017 -S315400165F080A0600002BFFD5B0100000030BFFD5777 -S31540016600C205A1C080A0600002BFFD670100000075 -S3154001661030BFFD63C205A1C080A0600002BFFD730B -S315400166200100000030BFFD6FC205A1C080A060001F -S3154001663002BFF2D70310008530BFF2D2C205A1C016 -S3154001664080A0600002BFF2C19007BFF030BFF2BC2C -S31540016650C205A1C080A0600002BFF2AA3710008522 -S3154001666030BFF2A5C205A1C080A0600002BFF028DC -S315400166701111FC0030BFF023C205A1C09A13601F5F -S31540016680190000108208400D9813201080A0400C7C -S3154001669012BFF3DD9016E0E010BFF3DF921660F013 -S315400166A0C205A1C080A0600002BFF39E1B100085F9 -S315400166B030BFF399C205A1C080A0600002BFF38636 -S315400166C01B10008530BFF381C205A1C080A06000C8 -S315400166D002BFF36E1B10008530BFF369C20461C06F -S315400166E080A0600002BFF3589016E0E030BFF3533C -S315400166F0C205A1C080A0600002BFF30E191000853B -S3154001670030BFF309C205A1C080A0600002BFF2F804 -S315400167109007BFE830BFF2F3C20461C080A06000B9 -S3154001672002BFF2E29007BFE830BFF2DD81C7E00861 -S3154001673081E80000D27A000081C3E0080100000030 -S3154001674081C3E008900A20209332600492126001CE -S315400167508213C0007FFFFFF89E1040000100000039 -S3154001676081D8200081C3E008010000009DE3BF9865 -S315400167707FFFFFFC0100000082102400C0A04300FF -S3154001678081C7E00881E80000833220189A1000088A -S315400167908088600F028000049010200083336010CF -S315400167A09008600381C3E008010000009DE3BF98A3 -S315400167B0031000C01B1000C1B0106000A21360009E -S315400167C0031000C21B1000C2A4106000A613610092 -S315400167D0031000201B100020A8106158AA13600066 -S315400167E07FFFEBAD9010200C808A2008028001FDCE -S315400167F0010000007FFFAA7D9010200ED08003206B -S315400168007FFFFFE2010000000310014380A2200246 -S31540016810028000C6D02060D080A22002148000E40D -S3154001682080A2200380A22001028000D1821020197B -S31540016830331000A02F1000A0391000A0371000A07F -S31540016840351000A07FFFFFC7210100007FFFFFC871 -S31540016850BA04A00C921000117FFFFFBC90100018E3 -S31540016860921000117FFFFFB990062004901000118D -S315400168707FFFFFB19210200ADA066014110800006A -S31540016880913A000DC205E010900A0001912A2002BA -S3154001689013008000900200117FFFFFA79212600A49 -S315400168A0DA06601411100000913A000DC205E0109D -S315400168B0900A0001912A2002900200117FFFFF9E5B -S315400168C09214208EDA066014111C0000913A000DD4 -S315400168D0C205E010900A0001912A20021301C0006E -S315400168E0900200117FFFFF949212608E9334A004B0 -S315400168F09004600C7FFFFF90921260019214201E5B -S315400169007FFFFF8D9004A0089010001D7FFFFF8A36 -S31540016910921020009334E004921260017FFFFF86BB -S315400169209004A004111000C2901221087FFFFF823B -S3154001693092102000031000E0A01060009334200460 -S31540016940111000C2901221047FFFFF7B9212601A40 -S3154001695003048D1582106278C2242004111000E0D0 -S3154001696015100120C0222000A2102003AC12A00065 -S31540016970A004E00C90047FFD40000A7392102003AE -S315400169801B100143C20360D08200600C932A0001B0 -S315400169909202401693326004901000107FFFFF660A -S315400169A09212601EA204600180A4600A04BFFFF235 -S315400169B0A0042004C206E008D807200C8208600122 -S315400169C08328400CD605E010111000E0D406A00043 -S315400169D0DA06601498122000960AE003972AC00D41 -S315400169E0920AA002111000A0DA022004940AA00122 -S315400169F0952A800D932A400D1B1000209612C00146 -S31540016A00E8236150030100001B0076418210601E9D -S31540016A109A1361C09212C00999332004C2252004F9 -S31540016A20DA2520089612C00A9E13200E913560047D -S31540016A301B1000C2031000C2821061049012201E76 -S31540016A40953620049813201E9A136108D625202CCA -S31540016A50D8252010D025201CD2252020DE2520280F -S31540016A60D6252014940ABFF0FA250000DA2520180D -S31540016A70C2252024C225200CA2102100D4A44320E3 -S31540016A80C2800320D88443209A102001A0102200FE -S31540016A90DAA40320D884032082102000C2A4032054 -S31540016AA0DAA0032081D820007FFFC55901000000EC -S31540016AB0C2800320E2844320E0840320DA05E0100B -S31540016AC0D6066014C206E0089A0B60039B2B400B66 -S31540016AD082086001D407200CD806A000111000A03E -S31540016AE08328400A980B2001D60220049A134001BC -S31540016AF0992B000B9A13400CC203400080A0600002 -S31540016B0012800008821360041B048D15D8004000D2 -S31540016B109A13627880A3000D02800038C205E01006 -S31540016B2010800000010000008210201A331000A0DE -S31540016B30C22660149810203F2F1000A0391000A0E3 -S31540016B40351000A09A1020148210200E151000A0B6 -S31540016B50371000A0DA27200CC222A004D826A000B4 -S31540016B60D825E01010BFFF38D826E0089A10207FBC -S31540016B70331000A02F1000A0C2266014DA25E010C1 -S31540016B809810203F391000A0351000A08210201324 -S31540016B909A10200D111000A0371000A0C227200C1A -S31540016BA0DA22200410BFFFF0D826A00012BFFF2230 -S31540016BB0331000A08210201CC22660149A102015A2 -S31540016BC08210207F391000A0371000A0DA27200C50 -S31540016BD0C226E0089810200F2F1000A0351000A003 -S31540016BE01B1000A08210203FD8236004C226A000BB -S31540016BF010BFFF15D825E010DA06E008D806601464 -S31540016C00820860039A0B6002D607200C8328400C49 -S31540016C109B2B400B8210400DD80040001B100000FA -S31540016C20C203400080A3000102800004D406E008AC -S31540016C301080000001000000C205E010980AA00182 -S31540016C40D207200CD6066014820860038328400BC5 -S31540016C50992B0009940AA0039810400CDA06A0006B -S31540016C60111000A0952A80099A0B6001D6022004D2 -S31540016C708210400AC20040009B2B400B9813000D26 -S31540016C800321D9509813200482106321C2230000A6 -S31540016C90DA03000080A3400102800004C206E00836 -S31540016CA01080000001000000D407200CDA05E01036 -S31540016CB082086001D60660148328400A9A0B600355 -S31540016CC0D806A0009B2B400B151000A0D602A004AD -S31540016CD0980B20019A134001992B000B9813400CF5 -S31540016CE08210000C05048D158410A278072AF37BC7 -S31540016CF08610E301C4384000C438400003048D15B2 -S31540016D00DA0300008210627880A340010280000409 -S31540016D108213200410800000010000001B2AF37B2F -S31540016D20D80040009A13630180A3000D12BFFFFAF9 -S31540016D30C205E010D6066014D806E0088208600352 -S31540016D40D407200C8328400B980B2001DA06A000BB -S31540016D50111000A0992B000A9A0B6003D602200459 -S31540016D608210400C9B2B400B15100143A010400D87 -S31540016D70F002A0D0A2102003E0240000C0A002200F -S31540016D80921020034000097090047FFD8206200C7A -S31540016D9098102001912A0001992B00011B10012016 -S31540016DA09610000182136000DA02000180A34010B0 -S31540016DB0A204600112800087A004000C80A4600A2E -S31540016DC024BFFFEFE0240000C0A0022003100120F1 -S31540016DD0A810000BAA106000A0102000A2102003EA -S31540016DE090047FFD4000095892102003832C6002D5 -S31540016DF0912A0014DA04C00190020015820B6060EA -S31540016E009132200480A000019012201EA040001063 -S31540016E109A0B7F9F900A3F9F80A340081280006F84 -S31540016E20A204600180A4600A24BFFFEF90047FFDA5 -S31540016E3080A4200012800004C205E01010800000EA -S31540016E4001000000D6066014D806E00882086003F7 -S31540016E50D407200CDA06A000111000A08328400BAD -S31540016E60980B2001992B000AD60220049A0B600246 -S31540016E708210400C9B2B400BAA10400D9FC5400031 -S31540016E800100000082102400C0A04300C0A00220DF -S31540016E90A0102000A21020039B2C6002C204C00D4A -S31540016EA08208606080A00001A0400010A204600139 -S31540016EB080A4600A24BFFFFA9B2C600280A42008AC -S31540016EC022800004D004E00410800000010000008C -S31540016ED0808A204002800007010000007FFFFE19E2 -S31540016EE00100000080A22000128000040100000081 -S31540016EF010800000010000007FFFFE12D004A008B0 -S31540016F0080A22000128000040100000010800000D1 -S31540016F10010000007FFFFE0BD004E00880A22000A4 -S31540016F2012800004010000001080000001000000F2 -S31540016F3083480000842860808188A0000100000009 -S31540016F400100000001000000D806E008D407200C2B -S31540016F50DA05E010980B2001D6066014992B000A39 -S31540016F609A0B6003C206A0009B2B400B151000A094 -S31540016F70D602A004820860018328400B9A13400C74 -S31540016F809A1340019A136004C203400092102004F0 -S31540016F9091D02002010000007FFFC41D01000000C6 -S31540016FA0981020009A102200D8A343208210200175 -S31540016FB0C2A34320D8A3432003100000DA804380B4 -S31540016FC0DAA04380D8A0032081D820003080000574 -S31540016FD01080000001000000108000000100000048 -S31540016FE081C7E00891E820009DE3BF98400007D1A2 -S31540016FF001000000808A21000280003F010000005C -S315400170007FFFA88E01000000912A20047FFFA87708 -S31540017010900220050310014082106048DA006004A6 -S3154001702080A360002280001503100140B0100001CA -S31540017030C20600009B38601F81836000DA06200487 -S3154001704001000000010000008278400DDA062008A8 -S31540017050B006200C80A0400D028000049010200153 -S315400170607FFFA86701000000C206200480A06000DF -S3154001707012BFFFF00310014082106000DA00600485 -S3154001708080A360000280001501000000B0100001DD -S31540017090C206000081800000DA06200401000000DB -S315400170A0010000009A70400D8210000DDA0620089A -S315400170B0B006200C80A0400D0280000490102002F2 -S315400170C07FFFA84F01000000C206200480A0600097 -S315400170D012BFFFF00100000040000824010000003B -S315400170E080A2200012800004010000007FFFA84416 -S315400170F09010200381C7E00891E820009DE3BF98E6 -S315400171007FFFA84E01000000912A20047FFFA83787 -S3154001711090022004400007890100000080A221233B -S3154001712002800004010000007FFFA8359010200175 -S315400171304000078001000000808A21000280002B68 -S315400171400310014082106184DA00600880A360095F -S315400171500280001101000000B0100001C2060000CB -S31540017160DA062004D80620088258400DB006200CC5 -S3154001717080A0400C02800004901020027FFFA820CE -S3154001718001000000C206200880A0600912BFFFF47A -S3154001719001000000400007760100000080A22000A7 -S315400171A00280000F0100000040000762010000005C -S315400171B0808A22000280000D010000004000079EE7 -S315400171C00100000080A2200012800008010000009A -S315400171D07FFFA80B90102004308000047FFFA80891 -S315400171E09010200330BFFFF181C7E00891E82000ED -S315400171F09DE3BFA0941020001110005C9012222440 -S315400172001310005C921262281710005C9612E2304D -S315400172101910005C9813223493C2000081C24000C9 -S315400172201080019181C2C00081C300001080018E8F -S315400172309402A0019402A00180A2A0031280018AB7 -S3154001724001000000874400008D30E00E8C89A007C4 -S3154001725080A1A000028000C701000000AF30E00B12 -S31540017260AE0DE00780A5E000128000C201000000DB -S3154001727080A1A00212800035010000002510000007 -S31540017280E41C80002510000029100000A8152104E7 -S31540017290A6100012AA100012AC100014A1802046BC -S315400172A0A4100000AA10000001000000A180204E99 -S315400172B0A810210001000000A1800000010000008B -S315400172C001000000E83CA03082A4801312800166D0 -S315400172D082A5001612800164010000000100000031 -S315400172E001000000874400008D30E00B8C89A00727 -S315400172F08CA1A0051280015CA18000000100000064 -S315400173000100000001000000E81CA03082A5001623 -S315400173101280015582A54012A4100000128001522C -S315400173200100000001000000874400008D30E00BA1 -S315400173308C89A0078CA1A0031280014B010000009B -S315400173401080008C0100000080A1A0011280002362 -S3154001735025100000E41C80002510000029100000C3 -S31540017360A8152104A6100012AA100012AC10001490 -S31540017370A1802046A4100000AA10000001000000D0 -S31540017380A180204EA810210001000000A18000002C -S31540017390010000000100000001000000E83C8000FF -S315400173A082A480131280013082A500161280012E1C -S315400173B00100000001000000874400008D30E00B11 -S315400173C08C89A0078CA1A002128001270100000030 -S315400173D0108000680100000080A1A00312800065B2 -S315400173E0A6100000A210200EA1844000A6100000A5 -S315400173F0A1800000A814E000AB4400000100000099 -S31540017400AC14E00001000000AF44000080A520005C -S3154001741012800115AA8D6E0080A5400012800112CE -S3154001742080A5A00012800110AF35E00BAE0DE0073C -S3154001743080A5E0011280010C01000000A0100000AF -S31540017440A1844000A6100000A1800000E8180000B9 -S31540017450AC100000AE100000EC04C000EE04E004E5 -S3154001746080A500161280010080A54017128000FEFB -S3154001747001000000A5440000A534A00BA40CA00700 -S3154001748080A4A001128000F801000000A0100000B5 -S31540017490A1844000A6100000A1800000A210200A8D -S315400174A0A1844000A4100000A1800000E81800005B -S315400174B0AC100000AE100000EC04C012EE04E00473 -S315400174C080A50016128000E880A54017128000E6CC -S315400174D001000000A5440000A534A00BA40CA007A0 -S315400174E080A4A002068000E00100000021100140B6 -S315400174F0A0142200EC1C0000A0042008E81C000097 -S31540017500A1844000A6100000A1800000A210200E18 -S31540017510A1844000A4100010AC100000AE10000081 -S31540017520A18000000100000001000000EC3C801336 -S31540017530AC100000AE100000E81CC01280A5001679 -S31540017540128000C980A54017128000C701000000C3 -S31540017550A5440000A534A00BA40CA00780A4A00458 -S31540017560128000C1010000001080000201000000ED -S315400175708B4440008A09601F80A160010280000A95 -S315400175808C1000059DE3BFA08AA1600116BFFFFED6 -S315400175900100000081E800008CA1A00116BFFFFE9A -S315400175A0010000000100000001000000A023A080AE -S315400175B0A02C20078E100010A3480000E2240000F2 -S315400175C0C2242004C43C2008C83C2010CC3C2018CE -S315400175D0F03C2020F43C2028F83C2030FC3C20386C -S315400175E0D03C2040D43C2048D83C2050DC3C20585C -S315400175F0A5500000E424206080102008821020015C -S315400176008410200286102003881020048A10200549 -S315400176108C10200681900000A42C601F818C800074 -S31540017620010000000100000001000000030040408D -S3154001763082106101841000008610000089444000D8 -S315400176408809201F86100004A01000028400400211 -S31540017650A210000284004002A410000284004002ED -S31540017660A610000284004002A810000284004002D5 -S31540017670AA10000284004002AC10000284004002BD -S31540017680AE100002840040029010000284004002C5 -S3154001769092100002840040029410000284004002CD -S315400176A096100002840040029810000284004002B5 -S315400176B09A100002840040029C100002840040029D -S315400176C09E1000028400400281E0000086A0E00195 -S315400176D016BFFFDE01000000030040408210610139 -S315400176E0841000008610000480A400021280003F2E -S315400176F08400400280A440021280003C8400400283 -S3154001770080A48002128000398400400280A4C00215 -S31540017710128000368400400280A5000212800033A8 -S315400177208400400280A5400212800030840040025D -S3154001773080A580021280002D8400400280A5C002EF -S315400177401280002A8400400280A200021280002793 -S315400177508400400280A2400212800024840040023C -S3154001776080A28002128000218400400280A2C002D1 -S315400177701280001E8400400280A300021280001B7A -S315400177808400400280A34002128000188400400217 -S3154001779080A38002128000158400400280A3C002AB -S315400177A0128000128400400281E0000086A0E001C0 -S315400177B016BFFFCE0100000080A020001280000B02 -S315400177C080A0FFFF1280000980A16005128000079A -S315400177D080A1A0061280000501000000A01000074C -S315400177E010800006C0242020A01000079010200120 -S315400177F010800002D024202082100007C4004000DF -S3154001780081888000010000000100000001000000A5 -S31540017810C4186008C8186010CC186018F0186020A9 -S31540017820F4186028F8186030FC186038D0186040A9 -S31540017830D4186048D8186050DC186058E40060607D -S31540017840C200600481948000010000000100000034 -S3154001785001000000A0100007F004202081C7E008C5 -S3154001786081E8000010BFFFFCB010000001000000DD -S3154001787081D8200081C3E008010000001B100144AB -S31540017880D8036150821020018328400C1B1001440B -S3154001789082007FFFD803615482084008932A400C36 -S315400178A0900040098213C0007FFFE77F9E10400091 -S315400178B0010000001B100144D803615082102001D1 -S315400178C08328400C1B10014482007FFFD80361547A -S315400178D0932A400C82084008900040099210000A01 -S315400178E08213C0007FFFE7729E1040000100000036 -S315400178F01B100144D8036150821020018328400C9B -S315400179001B10014482007FFFD8036154932A400C27 -S3154001791082084008900040099210000A8213C00074 -S315400179207FFFE7679E104000010000001B100144E5 -S31540017930D8036150821020018328400C1B1001445A -S3154001794082007FFFD803615482084008932A400C85 -S31540017950900040098213C0007FFFE7579E10400008 -S31540017960010000001B100144D803615C8210200114 -S315400179708328400C1B10014482007FFFD803616CB1 -S31540017980932A400C82084008900040099210000A50 -S315400179908213C0007FFFE74E9E10400001000000A9 -S315400179A01B100144D803615C821020018328400CDE -S315400179B01B10014482007FFFD803616C932A400C5F -S315400179C082084008900040099210000A8213C000C4 -S315400179D07FFFE7439E104000010000009DE3BF5832 -S315400179E02D100144A2102000C205A16080A44001CF -S315400179F01680001BA01020002B10014429100144C1 -S31540017A0027100144A4102001D005615C912C800807 -S31540017A10C205216C90023FFF832C0001900A001899 -S31540017A207FFFE72990020001C204E14C901E000845 -S31540017A30900A000180A00008A2647FFFA0042001F3 -S31540017A40C205A16080A4000126BFFFF1D005615C9B -S31540017A5080A4600012800003B0102000B010200105 -S31540017A6081C7E00881E800001B100144D803615C2E -S31540017A70821020018328400C1B10014482007FFFA5 -S31540017A80D803616C82084008932A400C9000400953 -S31540017A908213C0007FFFE70C9E10400001000000EA -S31540017AA01B100144D803615C821020018328400CDD -S31540017AB01B10014482007FFFD803616C8208400895 -S31540017AC0932A400C900040098213C0007FFFE702D1 -S31540017AD09E10400001000000952AA00D03280000D9 -S31540017AE094028009D02040009422B000D420600442 -S31540017AF081C3E00801000000033FFFBF821062F826 -S31540017B009DE38001193FFFBF94132368B407BFF873 -S31540017B10031000459606800A82106020C222E00CBE -S31540017B2003100044821063E0C222E0041B100044AB -S31540017B309A1363C0033FFFBFDA26800A901323805E -S31540017B40331000458210635C94068008981323C065 -S31540017B50921660008200401ED222E008D4204000E6 -S31540017B60B006800C7FFFA5A1901020067FFFE6CAD4 -S31540017B7090102000920A3FF07FFFE6C99010200046 -S31540017B80210000307FFFE6C490102000808A00105B -S31540017B9012BFFFFD010000007FFFFF3621000030CC -S31540017BA07FFFE6BD90102000808A001012BFFFFDC6 -S31540017BB0010000007FFFE6B890102000030020403E -S31540017BC08210600F921200017FFFE6B590102000EF -S31540017BD07FFFE6B19010200821100144D0242148AE -S31540017BE07FFFE6AD9010200CA73A2010993A201459 -S31540017BF0A60CE007980B200FDA042148A8230013AE -S31540017C00A80520089F3B6014933B60109B3B60187E -S31540017C1094050013A2102001AC03200A9E0BE00F2D -S31540017C2096102400AE0B60039402A00221200000AE -S31540017C30992AC00C1B1001448203E00A952C400A84 -S31540017C409424000A832C4001D8236168A0240001B2 -S31540017C501B10014403100144EC23615C972AC00FB9 -S31540017C60AA03E00A1B100144D620614403100144D3 -S31540017C70EA236154EA2061501B1001440310014478 -S31540017C80D423614C920A6007A53A2018D020615846 -S31540017C90153FFFBF932C4009A40CA00303100144D8 -S31540017CA09412A358932C4009A404A001391001440D -S31540017CB037100144EC20616C9B2C40149402801EC9 -S31540017CC0E0272164E426E160AA027FFFDA228000F0 -S31540017CD0AC85E0010280000CBB2C4013033FFFBF83 -S31540017CE082106368A0068001A4100016D00400002B -S31540017CF09FC20000A0042004A484BFFF32BFFFFD41 -S31540017D00D00400007FFFE66490102000920A3FFCF9 -S31540017D107FFFE66390102000A410200080A4801607 -S31540017D2016800022A2102000033FFFBFAE106368F9 -S31540017D30A610001AA010200080A400163680001854 -S31540017D40A404A00110800005A810001780A4001605 -S31540017D5036800013A404A001921000107FFFFEC8D4 -S31540017D60D004C014820A001580A0401512BFFFF846 -S31540017D70A0042001C204C01482184008DA07216415 -S31540017D808208400D80A00001A2647FFF80A40016F6 -S31540017D9006BFFFF392100010A404A00180A4801630 -S31540017DA006BFFFE5A604E0047FFFE63B90102000F6 -S31540017DB0A6100008901020007FFFE6399214E003D8 -S31540017DC080A46000028001B101000000833CE00C08 -S31540017DD080886003128000A5030048D1833CE013EC -S31540017DE080886003128001AD010000007FFFFEA183 -S31540017DF0210000307FFFE62890102000808A001085 -S31540017E0012BFFFFDA6100008A4102000C206E160C3 -S31540017E1080A480011680000D832CA00292100012CE -S31540017E20901000187FFFFED094102000A404A001FA -S31540017E30C206E16080A4800106BFFFFA92100012DB -S31540017E40A4102000832CA002A404A001C026000196 -S31540017E5080A4A01E04BFFFFD832CA0028210200532 -S31540017E60C22600009A102001DA2620048210200240 -S31540017E70C22620089A102003DA26200C7FFFFED85E -S31540017E809010001880A22000028001D3010000005A -S31540017E90C206000080A060050280000401000000C7 -S31540017EA07FFFA4D7901020067FFFFECD90100018CB -S31540017EB080A22000128001C401000000A41020000D -S31540017EC0C206E16080A480011680000F9210001264 -S31540017ED0A0062004941020007FFFFEB290100018E7 -S31540017EE092100012901000107FFFFEAE94102000F9 -S31540017EF0A404A001C206E16080A4800106BFFFF68A -S31540017F00921000127FFFE5FA901000187FFFE5F806 -S31540017F10900620207FFFE5F6900620407FFFE5F49E -S31540017F2090062060A4102000C206E16080A4800172 -S31540017F3006800196A21020007FFFA4B19010200870 -S31540017F40173FFFBF8212E3C0940680018212E35CB1 -S31540017F508200401ED81A8000C2004000D838400036 -S31540017F609612E380C206800B80A06005128000064F -S31540017F708206800BDA00600480A36001028000055E -S31540017F80A41020007FFFA49E90102009A410200079 -S31540017F90C206E16080A4800116800011A210200073 -S31540017FA0A0062004921000127FFFFEBE9010001022 -S31540017FB0901A200180A00008A2647FFFA404A001BA -S31540017FC0C206E16080A4800106BFFFF8921000124C -S31540017FD080A4600102800005833CE0137FFFA488F2 -S31540017FE09010200A833CE013808860031280018050 -S31540017FF082102005C22600009A102001DA262004AC -S3154001800082102002C22620089A102003DA26200C6C -S315400180101B3FFFBF9A1363589A03401ED00340008B -S315400180204000048D9210001D032EEEEEA12A20027F -S31540018030A21063BBE22600107FFFFE699010001874 -S3154001804080A220001280016701000000C2060010D4 -S3154001805080A0401102800005030048D17FFFA4683B -S3154001806090102012030048D1821061671B226AF3E7 -S31540018070C22620209A1361EFDA262024C20E202040 -S3154001808080A0600102800004010000007FFFA45C23 -S315400180909010201AC20E202180A060230280000485 -S315400180A0010000007FFFA4569010201BC20E202223 -S315400180B080A0604502800004010000007FFFA450BB -S315400180C09010201CC20E202380A06067028000040D -S315400180D0010000007FFFA44A9010201DC20E2024FB -S315400180E080A0608902800004010000007FFFA44453 -S315400180F09010201EC20E202580A060AB0280000495 -S31540018100010000007FFFA43E9010201FC20E2026D2 -S3154001811080A060CD02800004010000007FFFA438EA -S3154001812090102020C20E202780A060EF028000041C -S31540018130010000007FFFA43290102021C2162020AA -S31540018140832860108330601080A061230280000480 -S31540018150010000007FFFA42A90102022DA16202277 -S315400181609B2B6010030000119B33601082106167E6 -S3154001817080A3400102800004010000007FFFA4208B -S3154001818090102023DA1620249B2B60100300002236 -S315400181909B336010821061AB80A3400102800004D2 -S315400181A0010000007FFFA41690102024DA16202635 -S315400181B09B2B6010030000339B336010821061EFEC -S315400181C080A3400102800005821020307FFFA40C6D -S315400181D09010202582102030C22E2020030C08D179 -S315400181E0DA0620208210616780A3400102800005E3 -S315400181F0821020317FFFA402901020278210203167 -S31540018200C22E2021030C0C51DA0620208210616710 -S3154001821080A3400102800005821020327FFFA3F82F -S315400182209010202882102032C22E2022210C0C4C84 -S31540018230DA0620208214226780A3400102800005CD -S31540018240821020337FFFA3EE901020298210203325 -S31540018250C22E20239A142233C206202080A0400D2C -S3154001826002800005821020347FFFA3E59010202A6A -S3154001827082102034C22E2024030D2AF3DA0620244C -S31540018280821061EF80A340010280000582102035F3 -S315400182907FFFA3DB9010202B82102035C22E202594 -S315400182A0030D0D73DA062024821061EF80A340018D -S315400182B002800005821020367FFFA3D19010202C2A -S315400182C082102036C22E2026210D0D4DDA0620249D -S315400182D0821422EF80A340010280000582102037DC -S315400182E07FFFA3C79010202D82102037C22E202752 -S315400182F09A142237C206202480A0400D0280000530 -S31540018300210000107FFFA3BE9010202E21000010F7 -S3154001831082142041C23620200310104CDA06202058 -S315400183208210623380A340010280000582142243F9 -S315400183307FFFA3B39010202F82142243C2362022FE -S3154001834003101050DA0620208210624380A34001B8 -S3154001835002800005210000117FFFA3A99010203063 -S315400183602100001182142045C23620240311114DEB -S31540018370DA0620248210623780A34001028000057C -S31540018380821422477FFFA39E9010203182142247F8 -S31540018390C236202603111151DA0620248210624783 -S315400183A080A3400102800004010000007FFFA394E6 -S315400183B0901020327FFFFD2FA4102000C206E160FD -S315400183C080A48001168000151B100144D403616C02 -S315400183D096100001A010200080A4001D3680000CDC -S315400183E0A404A001832C800A9B286002992CA0102A -S315400183F082130010C226000DA004200180A4001D96 -S3154001840006BFFFFC9A036004A404A00180A4800B6C -S3154001841026BFFFF2A01020007FFFE49F90102000AE -S3154001842003000010808A000112BFFFFC010000001A -S31540018430A4102000C206E16080A4800116800114C8 -S31540018440921000127FFFFD8990100018151001440B -S31540018450C202A14C900A0001820E000180A20001D5 -S31540018460A404A00112BFFFF4901020337FFFA36440 -S3154001847001000000C206E16080A4800106BFFFF250 -S3154001848092100012308001027FFFA35D90102001FF -S3154001849010BFFE50833CE00C7FFFE47F901020002C -S315400184A0133FFFF09212603F920A0009A61000089E -S315400184B07FFFE47B901020007FFFE3D2A4102000D1 -S315400184C01303C0009214C0097FFFE4759010200089 -S315400184D080A4801616800009921000129016600042 -S315400184E07FFFFD0494102000A404A00180A48016FF -S315400184F006BFFFFB921000127FFFE3C2010000009E -S315400185007FFFE46590102000913A200A900A2003EB -S3154001851080A2200102800004010000007FFFA338F1 -S315400185209010200201000000921020009016600079 -S315400185307FFFFCE194102000010000007FFFE4561C -S31540018540901020001303C000922A00097FFFE454D3 -S3154001855090102000010000007FFFE3AA0100000007 -S315400185607FFFE44D90102000913A200C900A2003A1 -S3154001857080A2200102BFFE1E010000007FFFA32052 -S315400185809010200330BFFE1A921000127FFFFD4566 -S3154001859090100018901A200580A00008A2647FFF61 -S315400185A0A404A001C206E16080A4800106BFFFF8D1 -S315400185B09210001280A4600012BFFE63173FFFBFF6 -S315400185C030BFFE5E7FFFA30E9010200710BFFE3D19 -S315400185D0A41020007FFFA30A9010200530BFFE2D76 -S315400185E07FFFA3079010201130BFFE997FFFE42A39 -S315400185F090102000033FFFF08210603F920A000175 -S315400186007FFFE42790102000033FFFBFA010638047 -S3154001861092102000941020007FFFFCE2900680100B -S315400186207FFFE41D901020000303C0009212000159 -S315400186307FFFE41B9010200010800006A41020004C -S31540018640900680107FFFFCD794102005A404A0015A -S31540018650C206E16080A4800106BFFFFA92100012B3 -S31540018660033FFFBFA01063809A102001DA2E8010CD -S3154001867003004000D80680108210600580A30001E7 -S3154001868002800004010000007FFFA2DD9010200B54 -S315400186907FFFE40190102000913A2006900A2003C2 -S315400186A080A2200102800004010000007FFFA2D4C5 -S315400186B09010200C7FFFE3F8901020001303C000B8 -S315400186C0922A00097FFFE3F69010200092102000C5 -S315400186D0900680107FFFFCB3941020007FFFE3EEED -S315400186E0901020002103C000921200107FFFE3EC9E -S315400186F0901020007FFFE3E890102000808A001050 -S3154001870002BFFFFDA6100008A4102000C206E160CA -S3154001871080A480011680000E033FFFBF9A102001FE -S31540018720A2106380A12B401D921000129006801169 -S315400187307FFFFC8D94043FFFA404A001C206E160C3 -S3154001874080A4800106BFFFFA921000121303C000F5 -S31540018750922CC0097FFFE3D2901020002103C00074 -S315400187607FFFE3CD90102000808A001012BFFFFDED -S315400187701B004000213FFFBF82142380D8068001A1 -S315400187809A13600580A3000D0280000401000000D9 -S315400187907FFFA29B9010200D7FFFE3BF901020002A -S315400187A0913A2008900A200380A2200122800005E8 -S315400187B0A01423787FFFA2929010200FA014237853 -S315400187C094068010981020119A102055D83A8000AE -S315400187D07FFFE3B1901020000303C0009212000115 -S315400187E0920A7F3F7FFFE3AE90102000A0068010E3 -S315400187F07FFFE3CD9010001010800006A4102000EA -S31540018800900420047FFFFC6794102055A404A00126 -S31540018810C206E16080A4800106BFFFFA92100012F1 -S31540018820113FFFBF901223787FFFE3BF9006800878 -S3154001883080A220111280000480A2605502800004AB -S31540018840010000007FFFA26E901020107FFFE3928F -S3154001885090102000833A20068208600380A06001C0 -S3154001886002800004A61000087FFFA2659010201028 -S31540018870133C3FF09212603F920CC0097FFFE388A0 -S315400188809010200010BFFDDC821020057FFFE3829F -S31540018890901020009212200F7FFFE381901020005C -S315400188A081C7E00891E820009DE3BF987FFFFC93D4 -S315400188B001000000B0100008130020409212600F22 -S315400188C07FFFE377901020000100000081C7E00898 -S315400188D081E80000033FFFBF821063589DE380019A -S315400188E07FFFFBE401000000400002380100000068 -S315400188F07FFFE36990102008A21000087FFFE3661E -S315400189009010200C7FFFA24DA0100008912A200450 -S315400189107FFFA2369002200C973C6014833C60187E -S31540018920953C2014993C201882086003960AE00F72 -S31540018930820060019602E00AA33C6010A13C20102F -S31540018940980B2003940AA00FA728400B98032001F7 -S31540018950A20C6007A00C20079402A00A9A102001DD -S31540018960A2046002A0042002B12B000A03200000E9 -S31540018970AB2B4011A52B40109620401898057FFF40 -S31540018980822040139A04BFFFAE130001A213400B8D -S31540018990210000307FFFE34090102000808A0010C4 -S315400189A012BFFFFD033FFFBF9A07BFF8821063C0A6 -S315400189B0A00340012D155555901000189210001036 -S315400189C07FFFE2C89415A15580A220001280004B7A -S315400189D0292AAAAA92100010901000187FFFE2D50A -S315400189E0941522AA80A220001280004E01000000A8 -S315400189F07FFFA21201000000912A20047FFFA1FB04 -S31540018A009002200A400001EE01000000921522006A -S31540018A10920C400990100018941000119610001203 -S31540018A207FFFE2ED981522AA80A220001280005114 -S31540018A30010000009215A10090100018920C400907 -S31540018A4094100011961000127FFFE2E39815A1558C -S31540018A5080A2200012800044010000007FFFA1F7A0 -S31540018A6001000000912A20047FFFA1E09002200B23 -S31540018A70901000137FFFE2BF9215A15580A22000FE -S31540018A801280003501000000901000137FFFE2B90B -S31540018A90921522AA80A220001280002C010000001B -S31540018AA07FFFA1E601000000912A20047FFFA1CFAC -S31540018AB0900220099010001392100017941000158F -S31540018AC07FFFE2B8961522AA80A220001280001BE1 -S31540018AD00100000090100013921000179410001529 -S31540018AE07FFFE2B09615A15580A2200002800025A5 -S31540018AF0010000003080000E7FFFA1C190102001CF -S31540018B00292AAAAA92100010901000187FFFE28924 -S31540018B10941522AA80A2200002BFFFB601000000E0 -S31540018B207FFFA1B79010200230BFFFB27FFFA1B4F3 -S31540018B3090102008308000137FFFA1B190102007CC -S31540018B4010BFFFE6901000137FFFA1AD90102006E5 -S31540018B5030BFFFD47FFFA1AA9010200510BFFFCCE4 -S31540018B60901000137FFFA1A69010200430BFFFBCD8 -S31540018B707FFFA1A39010200310BFFFB09215A10063 -S31540018B807FFFFB3CB0102000400001900100000037 -S31540018B900100000081C7E00881E800009DE3BF981D -S31540018BA07FFFA18D1100412CDA062004D80620044E -S31540018BB09A0B6003993B200282102007C2262008A7 -S31540018BC0BA036001B20B27FF010000009010200A92 -S31540018BD0C02600007FFFA1850100000017000200AA -S31540018BE082103FFFC226000B032AAAAA1B15555520 -S31540018BF0D806000BAC102000821062AA9A13615568 -S31540018C00AA0B000180A5801D16800038A80B000D17 -S31540018C109612E020A72E600880A4E0000480000C94 -S31540018C20A2102000832DA0028200401819000200E4 -S31540018C309A10000BE820400CEA20400DA204601077 -S31540018C4080A4C01114BFFFFC82006040AC05A001A6 -S31540018C5080A5801D06BFFFF280A4E000AC10200075 -S31540018C6080A5801D1680002103000200B8106020F7 -S31540018C70A72E6008AE10001880A4E00004800017FB -S31540018C80A210200003000200A4060001A005C01C9A -S31540018C90C2048000A2046010A404A04080A0401435 -S31540018CA002800004901020017FFFA15501000000C1 -S31540018CB0C2040000A004204080A0401502800004A8 -S31540018CC0901020017FFFA14E0100000080A4C01139 -S31540018CD014BFFFF001000000AC05A00180A5801D76 -S31540018CE006BFFFE6AE05E0047FFFA1409010200CD1 -S31540018CF0AC10200080A5801D1680008803155555AF -S31540018D009E1061551B000800032AAAAA9A13600403 -S31540018D10901062AAA72E600880A4E0000480000E8D -S31540018D20A2102000832DA0138200401813000800D2 -S31540018D309410000F9610000D98100008D420400999 -S31540018D40D820400BA204600280A4C01114BFFFFCCE -S31540018D5082006008AC05A00180A5801D06BFFFF01A -S31540018D6080A4E000AC10200080A5801D1680006B19 -S31540018D7003155555B81061551B000800032AAAAAC8 -S31540018D80B6136004B41062AAA72E600880A4E0005E -S31540018D9004800019A2102000832DA013A0004018C2 -S31540018DA02F000800AA10001CA810001BA410001ACE -S31540018DB0C2040017A204600280A04015028000048C -S31540018DC0901020037FFFA10E01000000C204001491 -S31540018DD0A004200880A040120280000490102003C5 -S31540018DE07FFFA1070100000080A4C01114BFFFF15D -S31540018DF001000000AC05A00180A5801D06BFFFE56E -S31540018E0080A4E000AC10200080A5801D16800043A0 -S31540018E10030008009E1060041B155555032AAAAA93 -S31540018E209A136155901062AAA72E600880A4E000AB -S31540018E300480000EA2102000832DA013820040184A -S31540018E40130008009410000F9610000D98100008AA -S31540018E50D620400AD8204009A204600280A4C0114D -S31540018E6014BFFFFC82006008AC05A00180A5801DEF -S31540018E7006BFFFF080A4E000AC10200080A5801D55 -S31540018E801680002603155555B81061551B2AAAAA06 -S31540018E9003000800A72E6008B61362AAB410600446 -S31540018EA080A4E00004800019A2102000832DA013A5 -S31540018EB0A00040182F000800AA10001CA810001B93 -S31540018EC0A410001AC2040012A204600280A0401538 -S31540018ED002800004901020047FFFA0C90100000019 -S31540018EE0C2040017A004200880A040140280000498 -S31540018EF0901020047FFFA0C20100000080A4C01191 -S31540018F0014BFFFF101000000AC05A00180A5801D42 -S31540018F1006BFFFE580A4E00082102005C226200896 -S31540018F201B200000DA26000081C7E00881E8000026 -S31540018F3081C3E00891444000808000001510014043 -S31540018F409412A18090102000921022468180000048 -S31540018F50010000000100000001000000D002800075 -S31540018F609122400881C3E008010000008180000091 -S31540018F70901020018090200180D020011280002C89 -S31540018F800100000080D23FFF168000290100000049 -S31540018F9080DA3FFF9340000080A27FFF12800024C9 -S31540018FA00100000080D23FFF9348000093326014D5 -S31540018FB0920A600F80A260081280001D0100000025 -S31540018FC08180000090102001945220049452A00404 -S31540018FD09452A00496A2A040128000150100000000 -S31540018FE0818000009010200280A000003280001095 -S31540018FF09052000880A220021280000D010000005C -S31540019000818000009010200280A000000100000035 -S31540019010328000079052000880A22002128000048C -S315400190200100000081C3E0089010200181C3E008DF -S31540019030901000001315555592126155A5824000B6 -S31540019040010000000100000001000000954480007D -S3154001905080A2400A1280004301000000923A40007B -S31540019060A58240000100000001000000010000004F -S315400190709544800080A2400A1280003A0100000017 -S315400190801100003F901223FFA5800000818000005F -S3154001909001000000010000000100000093F23FFFC3 -S315400190A09A10000993F23FFF93F23FFF93F23FFF7D -S315400190B093F23FFF93F23FFF93F23FFF93F23FFF5D -S315400190C09940000097448000153FFC009412A00887 -S315400190D080A2400A1280002380A2400B1280002108 -S315400190E080A320071280001F113FFF8090122001AC -S315400190F080A340081280001B1100003F901223FFFD -S31540019100A5800000818000000100000001000000F0 -S315400191100100000093FA3FFF93FA3FFF93FA3FFFA6 -S3154001912093FA3FFF93FA3FFF93FA3FFF93FA3FFFCC -S3154001913093FA3FFF994000009744800080A260085F -S315400191401280000880A260081280000680A32000D9 -S31540019150128000040100000081C3E0089010200144 -S3154001916081C3E00890100000818000009010200229 -S3154001917080A00000328000109072000880A2200278 -S315400191801280000D01000000818000009010200235 -S3154001919080A00000010000003280000790720008A4 -S315400191A080A22002128000040100000081C3E00871 -S315400191B09010200181C3E00890100000C0A000403B -S315400191C081C3E00801000000110020409012200FE9 -S315400191D0D0A0004081C3E008010000009DE3BF9894 -S315400191E07FFFE12D90102008A21000087FFFE12AA1 -S315400191F09010200C833C60149B3A2014A13A20180D -S31540019200A33C6018A20C6003A00C20038208600FE7 -S315400192109A0B600F8200600A9A03600AA2046001F9 -S31540019220A0042001A32C40017FFFFFE5A12C000DE6 -S315400192307FFFE090901000117FFFE09C901000109E -S315400192407FFFF98C010000007FFFFFE081E800000D -S315400192500100000098120009818200009AAB2FFF9D -S315400192600280002598880000992300099923000966 -S315400192709923000999230009992300099923000993 -S315400192809923000999230009992300099923000983 -S315400192909923000999230009992300099923000973 -S315400192A09923000999230009992300099923000963 -S315400192B09923000999230009992300099923000953 -S315400192C09923000999230009992300099923000943 -S315400192D09923000999230009992300099923000933 -S315400192E099230009992300099923000081C3E008C5 -S315400192F09140000099230009992300099923000907 -S315400193009923000999230009992300099923000902 -S3154001931099230009992300099923000999230009F2 -S3154001932099230009992300009B400000992B200CAA -S315400193309B33601481C3E0089013400C1080000BEE -S31540019340861020008092400816800008861000088A -S31540019350809240001680000480920000168000032F -S3154001936092200009902000089A9240001280000540 -S315400193709610000891D0200281C3E00890100000A9 -S3154001938080A2C00D0A8000959410000003020000DF -S3154001939080A2C0010A8000289810000080A34001E5 -S315400193A01A80000D841020019B2B600410BFFFFC26 -S315400193B0980320019A83400D1A8000078400A0017A -S315400193C0832860049B3360019A03400110800007A3 -S315400193D08420A00180A3400B0ABFFFF701000000D3 -S315400193E0028000020100000084A0A00106800076F0 -S315400193F0010000009622C00D941020011080000A41 -S3154001940001000000952AA001068000059B336001FA -S315400194109622C00D108000049402A0019602C00D50 -S315400194209422A00184A0A00116BFFFF78092C0003C -S31540019430308000659B2B600480A3400B08BFFFFE74 -S315400194409883200102800065982320018092C00004 -S31540019450952AA0040680002F9B33600196A2C00D79 -S31540019460068000179B33600196A2C00D0680000B53 -S315400194709B33600196A2C00D068000059B336001B7 -S3154001948096A2C00D108000509402A00F9682C00D86 -S315400194901080004D9402A00D9682C00D06800005F5 -S315400194A09B33600196A2C00D108000479402A00B29 -S315400194B09682C00D108000449402A0099682C00D88 -S315400194C00680000B9B33600196A2C00D0680000505 -S315400194D09B33600196A2C00D1080003B9402A00709 -S315400194E09682C00D108000389402A0059682C00D68 -S315400194F0068000059B33600196A2C00D10800032A4 -S315400195009402A0039682C00D1080002F9402A00100 -S315400195109682C00D068000179B33600196A2C00D4E -S315400195200680000B9B33600196A2C00D06800005A4 -S315400195309B33600196A2C00D108000239402BFFFA9 -S315400195409682C00D108000209402BFFD9682C00D08 -S31540019550068000059B33600196A2C00D1080001A5B -S315400195609402BFFB9682C00D108000179402BFF98A -S315400195709682C00D0680000B9B33600196A2C00DFA -S31540019580068000059B33600196A2C00D1080000E37 -S315400195909402BFF79682C00D1080000B9402BFF56E -S315400195A09682C00D068000059B33600196A2C00DD0 -S315400195B0108000059402BFF39682C00D1080000210 -S315400195C09402BFF198A3200116BFFFA28092C0006A -S315400195D0268000029602C0098090C00026800002C3 -S315400195E09620000B81C3E0089010000B92100008F2 -S315400195F09010200094102000961020008213C00085 -S31540019600400000039E104000010000009DE3BF980A -S3154001961023100143400005F6901460F40310006DD9 -S31540019620E0006178D004214880A220002280002DEC -S315400196309004214CD602200480A2E01F1480001D14 -S315400196400100000080A620001280000B94022088B1 -S31540019650832AE0029A02E00182004008DA222004CD -S31540019660F2206008400005FA901460F41080002250 -S31540019670B0102000821020019328400B992AE00265 -S31540019680DA02A1009A1340098203000AF62060809B -S31540019690F422800C80A6200212BFFFEEDA22A1003E -S315400196A0C202A1048210400910BFFFEAC222A104EE -S315400196B0400000139010219080A220000280000BF0 -S315400196C096102000C2042148C2220000D02421481D -S315400196D0C0222004C022218810BFFFDBC022218C7A -S315400196E010BFFFD5D0242148400005D9901460F41D -S315400196F0B0103FFF81C7E00881E8000092100008E2 -S3154001970003100141D00063708213C0004000000A7B -S315400197109E10400001000000921000080310014114 -S31540019720D00063708213C000400002199E104000B1 -S31540019730010000009DE3BF988206600B80A0601681 -S31540019740A610001818800003A0087FF8A01020106A -S3154001975080A400199A4020008334201F8090400D38 -S31540019760128001B0B0102000400001B090100013EB -S3154001977080A421F718800017993420093910014136 -S315400197808217238098040001F003200C80A6000C68 -S315400197900280004E9F342003C206200494087FFCB9 -S315400197A09A06000AC203600482106001D006200CAA -S315400197B0D2062008D2222008C2236004D022600C9F -S315400197C0400001A09010001310800196B0062008B9 -S315400197D080A32000128000289F34200339100141C4 -S315400197E09B2BE003821723809A0340011080000AD5 -S315400197F0F003600C94087FFC9622801080A2E00F53 -S315400198001480010980A2E00036BFFFE79A06000AEC -S31540019810F006200C80A6000D32BFFFF7C2062004D9 -S315400198209E03E001251001419814A388F003200806 -S3154001983080A6000C0280005D833BE01FC206200427 -S3154001984094087FFC9622801080A2E00F1480009F2E -S3154001985080A2E000D823200C06800023D8232008CC -S315400198609A06000AC20360048210600110BFFFD548 -S31540019870C22360048334200680A3200408BFFFD896 -S315400198809E00603880A3201408BFFFD59E03205B4D -S315400198908334200C80A3205408BFFFD19E00606E04 -S315400198A08334200F80A3215408BFFFCD9E006077EB -S315400198B08334201280A3255408BFFFC99E00607CD3 -S315400198C010BFFFC79E10207E98062008F003200C8B -S315400198D080A6000C32BFFFB2C206200410BFFFD2E1 -S315400198E09E03E00280A2A1FF088000BE9B32A00336 -S315400198F09732A00980A2E0002280001796172380A4 -S315400199008332A00680A2E004088000129A006038E3 -S3154001991080A2E0140880000F9A02E05B8332A00C1B -S3154001992080A2E0540880000B9A00606E8332A00F3B -S3154001993080A2E154088000079A0060778332A01222 -S3154001994080A2E554088000039A00607C9A10207E2C -S3154001995096172380832B60039000400BD202200888 -S3154001996080A240082280010F99336002C20260043E -S3154001997082087FFC80A0400A28800007D002600C44 -S31540019980D202600880A2400832BFFFFAC2026004D8 -S31540019990D002600CD026200CD2262008F022600C82 -S315400199A0F0222008833BE01F8330601E8203C00102 -S315400199B03910014183386002981723809A1020019B -S315400199C0932B4001D803200480A2400C1880004B01 -S315400199D0AE172380808B00091280000D03100141D0 -S315400199E0820BFFFC92024009808B0009128000071E -S315400199F09E0060048210000C920240098088400952 -S31540019A0002BFFFFE9E03E00403100141A2106380E2 -S31540019A10A8100011832BE003980040119010000F0D -S31540019A209A10000C1080000AF003600C94087FFC29 -S31540019A309622801080A2E00F1480007D80A2E00073 -S31540019A403680008B9A06000AF006200C80A6000D8F -S31540019A5032BFFFF7C20620049E03E001808BE0037C -S31540019A6012BFFFF19A036008808A200398033FF8EA -S31540019A70028000D490023FFFC203200880A0400C20 -S31540019A8002BFFFFB808A200392024009C2052004DF -S31540019A9080A24001188000183910014180A260005F -S31540019AA0128000068088400910800014AE1723807A -S31540019AB09E03E0048088400922BFFFFE92024009CE -S31540019AC010BFFFD6832BE0038214200194060010B9 -S31540019AD0C2262004D423200CD42320088212E0017C -S31540019AE0D622800BD822A008C222A00410BFFF357F -S31540019AF0D822A00CAE172380F005E008C206200448 -S31540019B00AA087FFC80A540109A4020009625401067 -S31540019B1080A2E00F14800042821020018093400110 -S31540019B200280002703100143DA0061982D1001419C -S31540019B309A04000DC205A378A810001580A07FFFE6 -S31540019B40A203601002800004A406001582046FFF80 -S31540019B50A208700090100013400000C0921000113E -S31540019B6080A23FFF02800008B210000880A20012C6 -S31540019B701A8000463B10014380A60017228000440C -S31540019B80C207616882172380D8006008DA0320047F -S31540019B909A0B7FFC80A340109840200096234010EA -S31540019BA080A2E00F04800003821020018210200071 -S31540019BB080930001128000980100000098172380CD -S31540019BC0F003200882142001C22620049A060010C0 -S31540019BD08212E001C223600410BFFEFADA23200894 -S31540019BE098033FF8832B60039000400C9B3360023F -S31540019BF0821020018328400DD2022008DA03200476 -S31540019C009A134001D026200CD2262008F022600C5F -S31540019C10DA23200410BFFF64F022200810BFFFC0E2 -S31540019C208210200010BFFEFF9E03FFFFD006200CCE -S31540019C30D20620089A142001940600108214A388A3 -S31540019C40D2222008D022600CDA262004D420600CCF -S31540019C50D42060089A12E001D622800BC222A008C5 -S31540019C60DA22A00410BFFED7C222A00CC2036004B0 -S31540019C7082106001D006200CD2062008C22360045F -S31540019C8010BFFECFD2222008C20761688200401170 -S31540019C9080A640120280004FC2276168C205A378A0 -S31540019CA080A07FFF02800045C20761689A26401264 -S31540019CB08200400DC22761689A8E600702800005C6 -S31540019CC0A410200082102008A420400DB2064012A4 -S31540019CD09A0640119A0B6FFF030000048220400D43 -S31540019CE0A4048001901000134000005C9210001201 -S31540019CF080A23FFF2280003FA4102000822200194B -S31540019D009000401282172380DA0761689A03401255 -S31540019D1080A60001F2206008DA27616802800037D8 -S31540019D208212200180A5600F38800005C22660049A -S31540019D308210200110BFFF94C2266004C20620048F -S31540019D409A057FF4A80B7FF88208600182104014BF -S31540019D50C22620049A06001482102005C2236008F8 -S31540019D6080A5200F18800027C223600419100143E3 -S31540019D70DA076168C203219480A34001388000025A -S31540019D80DA23219419100143C203219080A3400193 -S31540019D9038BFFF7DDA23219010BFFF7C82172380D5 -S31540019DA09A102001C202E0049B2B400C8210400D08 -S31540019DB010BFFEF9C222E00410BFFFC0F225A3780E -S31540019DC0C20460048228400910BFFF30C2246004E7 -S31540019DD0808E6FFF12BFFFB3C205A3789004401473 -S31540019DE0DA05E0088212200110BFFFE1C2236004B8 -S31540019DF010BFFFC39010001910BFFFDDC2266004DB -S31540019E0092062008400000629010001310BFFFD94F -S31540019E10191001434000000B90100013B0102000B0 -S31540019E2081C7E00881E800001110014290122388A1 -S31540019E308213C000400003EE9E1040000100000066 -S31540019E4011100142901223888213C0004000040081 -S31540019E509E104000010000009DE3BF98211001447F -S31540019E60C02421704000020D9010001980A23FFFCE -S31540019E7012800006C204217080A0600002800003A7 -S31540019E8001000000C226000081C7E00891E80008F1 -S31540019E909DE3BF987FFFFFE5901000180310014135 -S31540019EA0A2106380DA046008C2036004A0087FFC44 -S31540019EB0B2240019B2066FEFB20E7000B2067000FE -S31540019EC09210200080A66FFF0480000A90100018AF -S31540019ED07FFFFFE201000000C204600882004010DB -S31540019EE080A04008922000190280000590100018B9 -S31540019EF07FFFFFD4B0102000308000237FFFFFD7C3 -S31540019F00901000188224001980A23FFF8210600140 -S31540019F1092102000191001430280000B9010001886 -S31540019F20DA046008C2236004C20321688220401912 -S31540019F30901000187FFFFFC3C223216810800012D2 -S31540019F40B01020017FFFFFC50100000098100008F6 -S31540019F50D6046008A023000B9010001880A4200F9F -S31540019F6004BFFFE4B214200103100141DA00637813 -S31540019F709A23000D03100143DA20616810BFFFDD0B -S31540019F80F222E00481C7E00881E800009DE3BF9822 -S31540019F9080A660000280009DA41000187FFFFFA3E9 -S31540019FA090100018A0067FF8D6042004900AFFFE00 -S31540019FB01910014194040008A2132380DA02A00477 -S31540019FC0C204600880A0400A028000449E0B7FFCC8 -S31540019FD0808AE001DE22A0041280000CB01020002D -S31540019FE0F2067FF8A024001982046008DA042008EA -S31540019FF080A340010280007D90020019D204200C0A -S3154001A000DA226008D223600C8202800FDA006004F3 -S3154001A010808B60011280000A8212200180A62000F6 -S3154001A020028000229002000FDA02A008D202A00CA0 -S3154001A030DA226008D223600C82122001C224200455 -S3154001A04080A6200002800005D0240008B01000122E -S3154001A0507FFFFF7C81E8000080A221FF1880003647 -S3154001A060973220099B32200398132380832B600368 -S3154001A0709200400C9B336002821020018328400DE0 -S3154001A080D6026008DA0320049A134001D224200C38 -S3154001A090D6242008E022E00CDA232004E0226008DE -S3154001A0A010BFFFECB010001203100141DA02A00804 -S3154001A0B08210638880A3400132BFFFDED202A00C2A -S3154001A0C0E023600CE0236008DA242008DA24200C1F -S3154001A0D010BFFFDAB0102001808AE001128000092A -S3154001A0E09002000FF2067FF8A0240019D204200C3A -S3154001A0F0D6042008D622600890020019D222E00C2C -S3154001A10003100141DA00637C98122001E0246008C3 -S3154001A11080A2000D0ABFFFCFD824200403100143BB -S3154001A120D20061987FFFFF5B901000127FFFFF45D1 -S3154001A13081E8000080A2E000028000169B322003E5 -S3154001A1408332200680A2E004088000129A0060381B -S3154001A15080A2E0140880000F9A02E05B8332200C53 -S3154001A16080A2E0540880000B9A00606E8332200F73 -S3154001A17080A2E154088000079A006077833220125A -S3154001A18080A2E554088000039A00607C9A10207EE4 -S3154001A19094132380832B60039200400AD602600801 -S3154001A1A080A2C0090280001399336002C202E00412 -S3154001A1B082087FFC80A0400828800007D202E00C7C -S3154001A1C0D602E00880A2C00932BFFFFAC202E0040B -S3154001A1D0D202E00CD224200CD6242008E022E00C46 -S3154001A1E010BFFFB0E022600810BFFF88B010200109 -S3154001A1F09A102001C202A0049B2B400C8210400DF4 -S3154001A20010BFFFF5C222A00481C7E00881E8000023 -S3154001A2109DE3BF98D206400080A2600012800004F0 -S3154001A220901000187FFFFF5A81E800007FFFFFF979 -S3154001A230010000007FFFFF5681E800000100000099 -S3154001A2409DE3BF9803100141DA00637080A6000DBB -S3154001A2500280004101000000D206204C80A260002D -S3154001A2601280001CA0102000D206214880A2600066 -S3154001A2702280000FD2062054A006214C80A2401015 -S3154001A2802280000BD206205410800005B21000092E -S3154001A290F20640007FFFFF3E9010001880A400198F -S3154001A2A012BFFFFC92100019D206205480A2600012 -S3154001A2B01280002501000000C206203880A06000FF -S3154001A2C0028000250100000010800017C206203CD4 -S3154001A2D0832C2002F202400180A660002280000BFE -S3154001A2E0A004200192100019F20640007FFFFF28CA -S3154001A2F09010001880A6600012BFFFFC9210001952 -S3154001A300D206204CA004200180A4200E04BFFFF2F7 -S3154001A310832C20027FFFFF1E9010001810BFFFD430 -S3154001A320D20621489FC0400090100018F20622E054 -S3154001A33080A6600002800008010000007FFFFFB593 -S3154001A34081E800007FFFFF129010001810BFFFDC6C -S3154001A350C206203881C7E00881E800009DE3BF9826 -S3154001A36080A620000280001D03100141E406214819 -S3154001A37080A4A00022800013C206203CE204A0046F -S3154001A380A2847FFF0C80000A832C60028200401267 -S3154001A390A0006008C20400009FC04000A0043FFC2A -S3154001A3A0A2847FFF3CBFFFFDC2040000E40480009D -S3154001A3B080A4A00032BFFFF3E204A004C206203C01 -S3154001A3C080A0600002800007010000009FC040009D -S3154001A3D0901000183080000310BFFFE5F000637055 -S3154001A3E081C7E00881E800001080000B861020003C -S3154001A3F08092400816800008861A400880924000E4 -S3154001A4001680000480920000168000039220000905 -S3154001A410902000089A92400012800005961000088C -S3154001A42091D0200281C3E0089010000080A2C00DA7 -S3154001A4300A800095941000000302000080A2C0012A -S3154001A4400A8000289810000080A340011A80000D60 -S3154001A450841020019B2B600410BFFFFC9803200150 -S3154001A4609A83400D1A8000078400A0018328600466 -S3154001A4709B3360019A034001108000078420A001AC -S3154001A48080A3400B0ABFFFF70100000002800002D3 -S3154001A4900100000084A0A0010680007601000000B2 -S3154001A4A09622C00D941020011080000A0100000080 -S3154001A4B0952AA001068000059B3360019622C00DB6 -S3154001A4C0108000049402A0019602C00D9422A001BE -S3154001A4D084A0A00116BFFFF78092C00030800065BE -S3154001A4E09B2B600480A3400B08BFFFFE988320018D -S3154001A4F002800065982320018092C000952AA0041D -S3154001A5000680002F9B33600196A2C00D068000177E -S3154001A5109B33600196A2C00D0680000B9B33600100 -S3154001A52096A2C00D068000059B33600196A2C00D20 -S3154001A530108000509402A00F9682C00D1080004DED -S3154001A5409402A00D9682C00D068000059B336001E2 -S3154001A55096A2C00D108000479402A00B9682C00DB2 -S3154001A560108000449402A0099682C00D0680000B1B -S3154001A5709B33600196A2C00D068000059B336001A6 -S3154001A58096A2C00D1080003B9402A0079682C00D92 -S3154001A590108000389402A0059682C00D0680000501 -S3154001A5A09B33600196A2C00D108000329402A00335 -S3154001A5B09682C00D1080002F9402A0019682C00D94 -S3154001A5C0068000179B33600196A2C00D0680000BE2 -S3154001A5D09B33600196A2C00D068000059B33600146 -S3154001A5E096A2C00D108000239402BFFF9682C00D33 -S3154001A5F0108000209402BFFD9682C00D06800005A2 -S3154001A6009B33600196A2C00D1080001A9402BFFBD5 -S3154001A6109682C00D108000179402BFF99682C00D34 -S3154001A6200680000B9B33600196A2C00D0680000593 -S3154001A6309B33600196A2C00D1080000E9402BFF7B5 -S3154001A6409682C00D1080000B9402BFF59682C00D14 -S3154001A650068000059B33600196A2C00D108000055F -S3154001A6609402BFF39682C00D108000029402BFF19E -S3154001A67098A3200116BFFFA28092C0002680000247 -S3154001A6809422A0018090C000268000029420000AF6 -S3154001A69081C3E0089010000A19100144DA032174BD -S3154001A6A080A3600012800006820340080310014423 -S3154001A6B09A106188DA23217482034008C2232174E7 -S3154001A6C081C3E0089010000DA7500000AE100001B4 -S3154001A6D08334E00129100143E8052038A92CC01430 -S3154001A6E08215000181E000008190400001000000D8 -S3154001A6F00100000001000000E03BA000E43BA0088F -S3154001A700E83BA010EC3BA018F03BA020F43BA0286E -S3154001A710F83BA030FC3BA03881E8000082100017CE -S3154001A72081C4400081CC800001000000010000008E -S3154001A73001000000A7500000A92CE0012B100143A5 -S3154001A740EA056038AB34C015AA154014819540001E -S3154001A75001000000010000000100000081E8000046 -S3154001A76081E80000E01BA000E41BA008E81BA01044 -S3154001A770EC1BA018F01BA020F41BA028F81BA0304E -S3154001A780FC1BA03881E0000081E0000081C440004C -S3154001A79081CC8000A75000002910006CADC5210472 -S3154001A7A00100000027100143A614E018E024C00070 -S3154001A7B0818C202001000000010000000100000002 -S3154001A7C09DE3BFA09DE3BFA09DE3BFA09DE3BFA0C6 -S3154001A7D09DE3BFA09DE3BFA09DE3BFA081E800002C -S3154001A7E081E8000081E8000081E8000081E800007E -S3154001A7F081E8000081E8000027100143A614E01813 -S3154001A800C024C000E203A068A4046004E223A0645B -S3154001A810E423A06810800262AC10000029100142B6 -S3154001A820A81523FCC2252000C8252004E0252010B8 -S3154001A830E2252014E4252018E825201C81E80000A3 -S3154001A8408348000082106F0081886020010000006B -S3154001A850010000000100000009100143C801203831 -S3154001A86081E000008821200180A920FF02800003A9 -S3154001A870010000000100000080A1000012BFFFF9A5 -S3154001A8800100000009100143C801203881E8000099 -S3154001A89080A920FF028000030100000001000000A2 -S3154001A8A08821200180A1000012BFFFF901000000AC -S3154001A8B081E0000029100142A81523FCC8052004A7 -S3154001A8C0C2052000E0052010E2052014E405201809 -S3154001A8D0C025201C818C20000100000001000000E1 -S3154001A8E00100000081C4800081CCA004A0142F0087 -S3154001A8F0818C000001000000010000000100000001 -S3154001A90081C4800081CCA00480A66002128000052B -S3154001A910A8142F00818D0000B01420203080001F24 -S3154001A92080A6600312800006A80E2F00AA2C2F00D5 -S3154001A930A8154014818D00003080001880A660045F -S3154001A94012800008A9480000A8152040818D00000A -S3154001A9500100000001000000010000003080000FEE -S3154001A96080A6600512800008A9480000A82D204055 -S3154001A970818D00000100000001000000010000007F -S3154001A9803080000680A660061280000301000000A8 -S3154001A99030BFFFA391D0200081C4800081CCA004A8 -S3154001A9A09210200381C3E00891D020029210200228 -S3154001A9B081C3E00891D020029210200681C3E008AD -S3154001A9C091D0200281C3E0080100000081C3E00864 -S3154001A9D00100000081C3E00801000000AE25A0107F -S3154001A9E0A75000002D10006AAC15A1F02910006C8B -S3154001A9F081C522AC010000001110014390122024B0 -S3154001AA00D202000092026001D2220000932DE0089A -S3154001AA10902C2F0092120009111001439012201C14 -S3154001AA20D002000080A000082280000292126F002E -S3154001AA30818A602001000000010000000100000041 -S3154001AA4090100017400000319203A06092142F002D -S3154001AA50818A602001000000010000000100000021 -S3154001AA601110014390122024D2020000922260016B -S3154001AA70D22200001080022DAC1000001B100144B0 -S3154001AA809A13602C912A2002C2034008C222600C0C -S3154001AA9081C3E008D22340089DE3BF9803100144D7 -S3154001AAA08210602C992E60021B100143972E600480 -S3154001AAB0D800400C9A13622C901000199202C00DD6 -S3154001AAC080A6601F1480000F8210200010800006AF -S3154001AAD080A320002280000AC2024000D803200C35 -S3154001AAE080A3200012BFFFFC80A300097FFFFFE483 -S3154001AAF0F02240001080000382102000F022400026 -S3154001AB0081C7E00891E800019DE3BF981B1001430E -S3154001AB1082136028D800600480A300180280004494 -S3154001AB20C203602880A6200022800002B010000CDB -S3154001AB3003100144A32E20028210602CE000401134 -S3154001AB4080A420000280003D0310014310800012C2 -S3154001AB50A41061A8D2042008941000199FC30000D4 -S3154001AB609010001803100143C20061A080A060004C -S3154001AB701280002B01000000C204801182007FFF79 -S3154001AB80C2248011E004200C80A420000280002B06 -S3154001AB9001000000D804000080A3200022BFFFFB73 -S3154001ABA0E004200C03100143DA00622880A3600010 -S3154001ABB0128000089610001203100143821061A80A -S3154001ABC0DA00401180A3600032BFFFF0E004200CA0 -S3154001ABD0DA02C011031001439A036001C20061A465 -S3154001ABE080A0600002BFFFDCDA22C0119FC0400096 -S3154001ABF001000000D8040000D20420089410001976 -S3154001AC009FC300009010001803100143C20061A0C9 -S3154001AC1080A0600022BFFFDAC20480119FC04000BD -S3154001AC200100000010BFFFD6C2048011DA0060C0E7 -S3154001AC3010BFFFBDB00B601F81C7E00881E800006F -S3154001AC408C10000FA74800008B34E0188A09600F6A -S3154001AC5080A160030280000C0B1001438A11603011 -S3154001AC600920000088112070C82140000B100143C3 -S3154001AC708A1160500920000088112040C8214000F7 -S3154001AC80108000399010200192102006400001DD0D -S3154001AC900100000080A0000802800033010000008E -S3154001ACA0C2022010113FFC0082084008110003FC3B -S3154001ACB08410400890100002921020019410200C3C -S3154001ACC0400001E60100000080A000080280002645 -S3154001ACD001000000400001F6921000010B100143F3 -S3154001ACE08A116030D221400090100002921020015A -S3154001ACF094102011400001D90100000080A00008F5 -S3154001AD000280001901000000400001E99210000193 -S3154001AD10920260100B1001438A116050D22140000B -S3154001AD2090100002921020019410200D400001CB9A -S3154001AD300100000080A000080280000B0100000015 -S3154001AD40400001DB921000010B1001438A1160287B -S3154001AD50D2214000D40260109532A010940AA00F6F -S3154001AD60D42160049E10000681C3E0080100000062 -S3154001AD7003100143821060488210200191D02000C7 -S3154001AD8081C3E008010000009DE3BF980310014420 -S3154001AD90C20060C8901000189210001980A060008F -S3154001ADA002800005B01020009FC040000100000055 -S3154001ADB0B010000881C7E00881E800009DE3BF9814 -S3154001ADC003100144C20060C49010001880A06000C6 -S3154001ADD002800005B01020009FC040000100000025 -S3154001ADE0B010000881C7E00881E800009DE3BF98E4 -S3154001ADF003100144C20060BC9010001880A060009E -S3154001AE0002800005B01020009FC0400001000000F4 -S3154001AE10B010000881C7E00881E800009DE3BF98B3 -S3154001AE2003100144C20060C09010001880A0600069 -S3154001AE3002800005B01020009FC0400001000000C4 -S3154001AE40B010000881C7E00881E800009DE3BF9883 -S3154001AE5003100144C20060B89010001880A0600041 -S3154001AE6002800005B01020009FC040000100000094 -S3154001AE70B010000881C7E00881E800009DE3BF9853 -S3154001AE8003100144C20060B49010001880A0600015 -S3154001AE9002800005B01020009FC040000100000064 -S3154001AEA0B010000881C7E00881E800009DE3BF9823 -S3154001AEB003100144C20060B09010001880A06000E9 -S3154001AEC002800005B01020009FC040000100000034 -S3154001AED0B010000881C7E00881E800009DE3BF98F3 -S3154001AEE003100144C20060AC901000189210001982 -S3154001AEF080A0600002800005B01020009FC0400085 -S3154001AF0001000000B010000881C7E00881E8000098 -S3154001AF10010000000310006B821063E09FC04000F7 -S3154001AF20010000000310000082106000819840007B -S3154001AF300310006C821060649FC040000100000055 -S3154001AF400310006B821063D09FC0400001000000D7 -S3154001AF508B4800008B3160188A09600380A1600329 -S3154001AF6012800007010000008B4440008B31601CB9 -S3154001AF7080A1400012800006010000007FFFFF31E2 -S3154001AF80010000007FFF9879010000009C23A0404A -S3154001AF907FFF981C010000008210200191D0200003 -S3154001AFA00100000029000004A68C00143280000331 -S3154001AFB0A02C001491D02000818C000001000000DB -S3154001AFC0010000000100000081C4800081CCA00482 -S3154001AFD081C3E0080100000081C1E00801000000D2 -S3154001AFE0A74800008B34E0188A09600380A16003FA -S3154001AFF0128000080100000021100143A0142040E6 -S3154001B000A2102003E22400008B4440001080000877 -S3154001B01021100143A0142040A2102002E224000086 -S3154001B02021200000E60420248B34E0148A09601FA5 -S3154001B03027100143A614E038CA24C0008A016001E2 -S3154001B04027100143A614E034CA24C0002710014347 -S3154001B050A614E03C8A216002CA24C00081C3E008EC -S3154001B0600100000081C3E0080100000083480000A0 -S3154001B070833060188208600380A060031280000656 -S3154001B0800100000083444000050000088228400278 -S3154001B090A3804000881000000910006B81C1231471 -S3154001B0A0010000009DE3BF980310006D1B10006D69 -S3154001B0B0A01061609A13616080A4000D1A8000108F -S3154001B0C0A210000D10800006C204000080A40011E9 -S3154001B0D01A80000B01000000C204000080A060003D -S3154001B0E002BFFFFBA00420049FC0400001000000F6 -S3154001B0F080A400112ABFFFFAC204000081C7E008FC -S3154001B10081E80000AA27A0B0E0256060E2256064DE -S3154001B110E4256068C2256074C43D6078C83D60809E -S3154001B120CC3D608885400000C425606CF03D609050 -S3154001B130F43D6098F83D60A0FC3D60A8A810200150 -S3154001B140A92D0010808D001302800013010000001C -S3154001B1508534E00107100143C600E038A72CC0033F -S3154001B1608414C0028408A0FF81E000008190A00001 -S3154001B170E03BA000E43BA008E83BA010EC3BA01854 -S3154001B180F03BA020F43BA028F83BA030FC3BA03884 -S3154001B19081E8000081C5A0089C10001505100143F7 -S3154001B1A08410A19CC400800080A08000028000041D -S3154001B1B0010000009FC080009203A060818C2000A6 -S3154001B1C0821020028328401005100143C400A03498 -S3154001B1D085304002821040028550000080888001FF -S3154001B1E0028000208328A00107100143C600E038F1 -S3154001B1F08530800382104002820860FF81906000A2 -S3154001B200C203A06C81806000F01BA090F41BA09843 -S3154001B210F81BA0A0FC1BA0A8C203A074C41BA07865 -S3154001B220C81BA080CC1BA088E003A060E203A064F9 -S3154001B230E403A06881E80000E01BA000E41BA0082D -S3154001B240E81BA010EC1BA018F01BA020F41BA028A3 -S3154001B250F81BA030FC1BA0381080000F81E00000D5 -S3154001B260C203A06C81806000F01BA090F41BA098E3 -S3154001B270F81BA0A0FC1BA0A8C203A074C41BA07805 -S3154001B280C81BA080CC1BA088E003A060E203A06499 -S3154001B290E403A068818C2000010000000100000049 -S3154001B2A00100000081C4400081CC8000AA27A0B0E3 -S3154001B2B0C2256074C43D6078C83D6080CC3D6088DD -S3154001B2C085400000C425606CA8102001A92D0010FE -S3154001B2D0808D001302800013010000008534E001D7 -S3154001B2E007100143C600E038A72CC0038414C002EE -S3154001B2F08408A0FF81E000008190A000E03BA0000F -S3154001B300E43BA008E83BA010EC3BA018F03BA02092 -S3154001B310F43BA028F83BA030FC3BA03881E8000074 -S3154001B32081C5A0089C100015051001438410A19CFD -S3154001B330C400800080A0800002800004010000005B -S3154001B3409FC080009203A060818C20008210200261 -S3154001B3508328401005100143C400A03485304002C3 -S3154001B36082104002855000008088800102800019C9 -S3154001B3708328A00107100143C600E03885308003C9 -S3154001B38082104002820860FF81906000C203A06C77 -S3154001B39081806000C203A074C41BA078C81BA08032 -S3154001B3A0CC1BA08881E80000E01BA000E41BA0089C -S3154001B3B0E81BA010EC1BA018F01BA020F41BA02832 -S3154001B3C0F81BA030FC1BA0381080000881E000006B -S3154001B3D0C203A06C81806000C203A074C41BA07824 -S3154001B3E0C81BA080CC1BA088818C200001000000D6 -S3154001B3F0010000000100000081C4400081CC8000B2 -S3154001B400821000089A10380096102000912AE00513 -S3154001B41098034008D40340089132A01880A2000145 -S3154001B420328000089602E0019132A00C900A2FFF6B -S3154001B43080A20009028000079410000C9602E001E8 -S3154001B44080A2E00728BFFFF3912AE005941020006F -S3154001B45081C3E0089010000A82100008981020006D -S3154001B460912B20039A004008D60040089132E018FB -S3154001B47080A2000932800008980320019132E00C35 -S3154001B480900A2FFF80A2000A028000079610000D45 -S3154001B4909803200180A3200F28BFFFF3912B20039F -S3154001B4A09610200081C3E0089010000BD4022004BE -S3154001B4B0173FFC00920A400B900A800B9132200CF8 -S3154001B4C0921240081100003F901223F0940A80081E -S3154001B4D0952AA0049412800B920A400A81C3E0087F -S3154001B4E0901000099DE3BF980310006D82106148DA -S3154001B4F0DA007FFC80A37FFF02800009A0007FFC69 -S3154001B5008210000D9FC04000A0043FFCC204000011 -S3154001B51080A07FFF12BFFFFC0100000081C7E00849 -S3154001B52081E800009DE3BF9881C7E00881E80000FB -S3154001B53000000000000000000000000000000000C4 -S3154001B54000000002FFFFFFFF0000000000000000B6 -S3154001B55000000002FFFFFFFF0000000000000000A6 -S3154001B56040080000000000003CD203AF9EE756169B -S3154001B5703E7AD7F29ABCAF4840050220000000004F -S3154001B580430000009DE3BFA07FFF96DB0100000062 -S3154001B5907FFFFFD50100000081C7E00881E8000078 -S3154001B5A09DE3BFA07FFF96B60100000081C7E0087A -S3154001B5B081E80000000000000000000000000000DB -S315400200000000000100000000000000004001B55859 -S315400200102000000000000000000000000000000078 -S315400200200000000000000000000000000000000088 -S315400200300000000000000000000000000000000078 -S315400200400000000000000000000000000000000068 -S315400200500000000000000000000000010000000057 -S315400200600000000000000000000000000000000048 -S315400200700000000000000000000000000000000038 -S315400200800000000000000000000000000000000028 -S315400200900000000000000000000000000000000117 -S315400200A00000000000000000000000000000000008 -S315400200B000000000000000000000000000000000F8 -S315400200C000000000000000000000000000000000E8 -S315400200D000000000000000000000000000000000D8 -S315400200E00000000100000000000000410000000086 -S315400200F0343074693934612B3079676979753035B2 -S315400201007968617035796934682B612B69697978C8 -S315400201106869346B35396A30713930356A6B6F7953 -S3154002012070686F70746A72686961346979302B34A9 -S315400201300000000000000000000000010000000076 -S3154002014040000000000000004008000000000000DF -S31540020150401800000000000080000000000000007F -S315400201600000000000000000BFF000000000000098 -S31540020170BF800000000000000000000000000000F8 -S315400201800000000000000000000000000000000027 -S315400201903FF00000000000004008000000000000A0 -S315400201A03FF0000040000000000000000000000098 -S315400201B03F800000404000000000000000000000B8 -S315400201C000000000000000000000000000000000E7 -S315400201D0000000000000000048000001000000008E -S315400201E0480000000000000046C000000000000079 -S315400201F03FF0000000000000400000000000000048 -S3154002020040080000000000003F800000000000009F -S31540020210529000000000000052900FF807F60DEBD6 -S3154002022052901FE03F61BAD052902FB8D4E30F48A4 -S3154002023052903F81F636B80C52904F3BD03C0A64FE -S3154002024052905EE68EFAD48B52906E825DA8FC2B5B -S3154002025052907E0F66AFED0752908D8DD3B1D9AADB -S3154002026052909CFDCD8ED0095290AC5F7C69A3C85A -S315400202705290BBB307ACAFDB5290CAF8960E710DE3 -S315400202805290DA304D95FB065290E95A539F492CCB -S315400202905290F876CCDF6CD952910785DD689A295F -S315400202A052911687A8AE14A35291257C5187FD0917 -S315400202B052913463FA37014E5291433EC467EFFB83 -S315400202C05291520CD1372FEB529160CE41341D746C -S315400202D052916F8334644DF952917E2BCA46BAB914 -S315400202E052918CC821D6D3E352919B58598F7C9F09 -S315400202F05291A9DC8F6DF1045291B854E0F496A064 -S315400203005291C6C16B2DB8705291D5224AAE2EE19A -S315400203105291E3779B97F4A85291F1C1799CA8FF39 -S31540020320529200000000000052920E33499A21A9CF -S3154002033052921C5B70D9F82452922A788FC76DE587 -S315400203405292388AC0059C28529246921AD4EA4959 -S315400203505292548EB9151E8552926280B347609668 -S315400203605292706821902E9A52927E451BB944C38E -S3154002037052928C17B9337834529299E01118857596 -S315400203805292A79E3A2CD2E65292B5524AE1278E13 -S315400203905292C2FC595456A75292D09C7B54E03E8C -S315400203A05292DE32C66287415292EBBF4FAFDD4B6D -S315400203B05292F9422C23C47E529306BB705AE7C32B -S315400203C05293142B30A929AB52932191811B0A4196 -S315400203D052932EEE7577041652933C42213EE0C963 -S315400203E05293498C97B10540529356CDEBC9B5E22B -S315400203F0529364063044530652937135779C8DCBA3 -S3154002040052937E5BD40F95A152938B79579D3EAB07 -S315400204105293988E1409212E5293A59A1ADBB257FB -S315400204205293B29D7D6356625293BF984CB56C7798 -S315400204305293CC8A99AF54535293D97474F76DF24E -S315400204405293E655EEFE13675293F32F17FE8D0431 -S31540020450529400000000000052940CC8B6D657C20F -S31540020460529419894C2329F052942641CF569572BB -S31540020470529432F24FB01C7A52943F9ADC3F79CE74 -S3154002048052944C3B83E57153529458D455549C1A1A -S31540020490529465655F122FF6529471EEAF76C2C6DC -S315400204A052947E7054AF098952948AEA5CBC935F37 -S315400204B05294975CD57680885294A3C7CC8A358A63 -S315400204C05294B02B4F7C0A885294BC876BA7F6ECA9 -S315400204D05294C8DC2E4239805294D529A457FCFC4A -S315400204E05294E16FDACFF9375294EDAEDE6B10FEDD -S315400204F05294F9E6BBC4ECB3529506177F5491BBAE -S3154002050052951241356CF6E052951E63EA3D95B01E -S3154002051052952A7FA9D2F8EA529536948017481006 -S31540020520529542A278D2D03652954EA99FAC8A0FA6 -S3154002053052955AAA002A9D5A529566A3A5B2E1B18E -S31540020540529572969B8B5CD852957E82ECDABE8D22 -S3154002055052958A68A4A8D9F352959647CDDF1CA531 -S315400205605295A220734903775295ADF29F948CFB24 -S315400205705295B9BE5D52A9DA5295C583B6F7AB0319 -S315400205805295D142B6DBADC55295DCFB673B05DFE2 -S315400205905295E8ADD236A58F5295F45A01D483B41A -S315400205A0529600000000000052960B9FD68A455490 -S315400205B0529617398F2AAA48529622CD337F0FE890 -S315400205C052962E5ACD0C3EBE529639E2653E421B9B -S315400205D0529645640568C1C3529650DFB6C759F470 -S315400205E052965C55827DF1D2529667C57199104BEF -S315400205F05296732F8D0E2F7752967E93DDBC0E73D5 -S31540020600529689F26C6B01D05296954B41CD4293EC -S315400206100BC0A4068F346C9B0BC093731C185447B3 -S315400206200BC083008E183C230BC072AE83A9704A5E -S315400206300BC0627C9CC166FF0BC0526A7ACE64A430 -S315400206400BC04277C0B04ADA0BC032A412B191A0B5 -S315400206500BC022EF168069500BC0135873280473DF -S315400206600BC003DFD10A08480BBFE909B3B04632D3 -S315400206700BBFCA8E711B8E880BBFAC4D32D4143061 -S315400206800BBF8E4553D34B1B0BBF7076318237EF70 -S315400206900BBF52DF2BADF99C0BBF357FA47C936C0D -S315400206A00BBF18570061F5EB0BBEFB64A61545154B -S315400206B00BBEDEA7FE865A2B0BBEC22074D37FBC6E -S315400206C00BBEA5CD763F66690BBE89AE722750F04A -S315400206D00BBE6DC2D9F976230BBE520A212B976CFB -S315400206E00BBE3683BD31CAA20BBE1B2F257575CAFA -S315400206F00BBE000BD34C7BAF0BBDE51941F097FE09 -S315400207000BBDCA56EE76E9D00BBDAFC457C7AB7325 -S315400207100BBD9560FE9616690BBD7B2C65587275AE -S315400207200BBD612610404EC00BBD474D8532E409D4 -S315400207300BBD2DA24BC19EDF0BBD1423ED22D10171 -S315400207400BBCFAD1F42A88E40BBCE1ABED438E80B4 -S315400207500BBCC8B1666884820BBCAFE1EF1D2D01AC -S315400207600BBC973D1867D0EF0BBC7EC274CAC962F8 -S315400207700BBC6671983E29FE0BBC4E4A18298BA9C2 -S315400207800BBC364B8B5DF6DB0BBC1E758A0FECBF82 -S315400207900BBC06C7ADD18E7E0BBBEF41918CE1F609 -S315400207A00BBBD7E2D17E33360BBBC0AB0B2E921BB3 -S315400207B00BBBA999DD6E6B650BBB92AEE8503CA7AD -S315400207C00BBB7BE9CD2362720BBB654A2E6F002CB5 -S315400207D00BBB4ECFAFED00FE0BBB3879F685313FF2 -S315400207E00BBB2248A8486FDE0BBB0C3B6C6BF73B3E -S315400207F00BBAF651EB44BCEE0BBAE08BCE42E7F1B4 -S315400208000BBACAE8BFED5CC00BBAB5686BDD5EDDFC -S315400208100BBAA00A7EBA475E0BBA8ACEA6354FEB12 -S315400208200BBA75B4910571DB0BBA60BBEEE358EFB8 -S315400208300BBA4BE4708569410BBA372DC79BD7FE7D -S315400208400BBA2297A6CCD68C0BBA0E21C1B0CFA03A -S315400208500BB9F9CBCCCEB6050BB9E5957D98648B31 -S315400208600BB9D17E8A670EE70BB9BD86AA77C3104C -S315400208700BB9A9AD95E7FAC40BB995F305B23CE5B8 -S315400208800BB98256B3AACE570BB96ED85A7C7206AA -S315400208900BB95B77B5A537C80BB94834817359CCC8 -S315400208A00BB9350E7B02284D0BB922056037032E54 -S315400208B00BB90F18EFBE614A0BB8FC48E908E522AE -S315400208C00BB8E9950C487EA90BB8D6FD1A6D99E886 -S315400208D00BB8C480D5245A340BB8B21FFED1E1BC42 -S315400208E00BB89FDA5A91A5260BB88DAFAC32CB0A1C -S315400208F00BB87B9FB83596F60BB869AA43C8DFE1B9 -S315400209000BB857CF14C791B50BB8460DF1B639C6D9 -S315400209100BB83466A1C09DF90BB822D8ECB75E6E0F -S315400209200BB811649B0DA16B0BB8000975D6C9595A -S315400209300BB7EEC746C434A50BB7DD9DD823075285 -S315400209400BB7CC8CF4D9FE010BB7BB9468674A50FF -S315400209500BB7AAB3FEDE78540BB799EB84E65D0C6F -S315400209600BB7893AC7B70D960BB778A19517DF0132 -S315400209700BB7681FBB5D6E910BB757B50967B24C93 -S315400209800BB747614EA011A20BB737245AF786140C -S315400209900BB726FDFEE4C3A00BB716EE0B6268E862 -S315400209A00BB706F451ED36CE0BB6F710A4824F8044 -S315400209B00BB6E742D59D7CB40BB6D78AB8377D0EC7 -S315400209C00BB6C7E81FC458720BB6B85AE031BB32F1 -S315400209D00BB6A8E2CDE557F90BB6997FBDBB50459C -S315400209E00BB68A318504A35C0BB67AF7F985A39BCD -S315400209F00BB66BD2F17471FF0BB65CC243777FCEF6 -S31540020A000BB64DC5C6A416420BB63EDD527CE4116A -S31540020A100BB63008BEF090CF0BB62147E45855EBE3 -S31540020A200BB6129A9B769D520BB60400BD75A584F1 -S31540020A300BB5F57A23E62B070BB5E706A8BE172CAE -S31540020A400BB5D8A6265733FF0BB5CA58776DE54B7B -S31540020A500BB5BC1D771FE6AB0BB5ADF500EB0E78BB -S31540020A600BB59FDEF0AC15940BB591DB229D63F27C -S31540020A700BB583E97355E1C10BB57609BFC7CD32D4 -S31540020A800BB5683BE53F94B80BB55A7FC162B5B624 -S31540020A900BB54CD5322E9F7F0BB53F3C15F79AA12D -S31540020AA00BB531B44B67B45A0BB5243DB17DAE306C -S31540020AB00BB516D8278BF18F0BB509838D37876710 -S31540020AC00BB4FC3FC27713AE0BB4EF0CA791D4BB69 -S31540020AD00BB4E1EA1D1EA6680BB4D4D8040308E59C -S31540020AE00BB4C7D63D722B370BB4BAE4AAEBF9481E -S31540020AF00BB4AE032E3C2D7E0BB4A131A97965C948 -S31540020B000BB4946FFF043C1C0BB487BE118662364D -S31540020B100BB47B1BC3F1C0BF0BB46E88F97F999BA4 -S31540020B200BB4620595AFAD730BB455917C476454D3 -S31540020B300BB4492C9150F96C0BB43CD6B91AA9C8DE -S31540020B400BB4308FD835E60B0BB42457D3768716C1 -S31540020B500BB4182E8FF205900BB40C13F2FEB43B75 -S31540020B600BB40007E232FD1F0BB3F40A4364A167DC -S31540020B700BB3E81AFCA7FBF00BB3DC39F44F468AF9 -S31540020B800BB3D06710E9E1C30BB3C4A239439F4FFD -S31540020B900BB3B8EB54640EF10BB3AD42498DCDDFC6 -S31540020BA00BB3A1A7003DD89B0BB39619602ADF2B46 -S31540020BB00BB38A9951449BB80BB37F26BBB32B79AF -S31540020BC00BB373C187D669EA0BB368699E454E4437 -S31540020BD00BB35D1EE7CD4B2D0BB351E14D71B09872 -S31540020BE00BB346B0B86B0FC30BB33B8D1226A15A5B -S31540020BF00BB330764445ADAC0BB3256C389CF6EB63 -S31540020C000BB31A6ED934256E0BB30F7E104535F5EC -S31540020C100BB30499C83BE9D60BB2F9C1EBB53923FC -S31540020C200BB2EEF6657EC6AA0BB2E437209655D5D0 -S31540020C300BB2D984082942630BB2CEDD0793F9E79A -S31540020C400BB2C4420A6177190BB2B9B2FC4ABEDA98 -S31540020C500BB2AF2FC9365EFF0BB2A4B85D37EEC1F9 -S31540020C600BB29A4CA48F90E30BB28FEC8BA9777997 -S31540020C700BB28597FF1D694D0BB27B4EEBAE48DD3D -S31540020C800BB271113E499CEE0BB266DEE4071AA81E -S31540020C900BB25CB7CA2831380BB2529BDE1796F7B5 -S31540020CA00BB2488B0D68D8030BB23E8545D7E65A40 -S31540020CB00BB2348A7548AB540BB22A9A89C69A97B4 -S31540020CC00BB220B5718446610BB216DB1ADAF53FD8 -S31540020CD00BB20D0B744A39100BB203466C77876C14 -S31540020CE00BB1F98BF22DD3490BB1EFDBF45D27FF44 -S31540020CF00BB1E636621A457E0BB1DC9B2A9E3DD588 -S31540020D000BB1D30A3D4613EE0BB1C98389925B817F -S31540020D100BB1C006FF26DA3F0BB1B6948DCA2A281C -S31540020D200BB1AD2C25655D0F0BB1A3CDB603A13D2D -S31540020D300BB19A792FD1E7410BB1912E831E88D2FE -S31540020D400BB187EDA058F0D60BB17EB6781144733D -S31540020D500BB17588FAF80D3A0BB16C6519DDE45D95 -S31540020D600BB1634AC5B31EEF0BB15A39EF877B28E5 -S31540020D700BB151328889CEAE0BB148348207B5DB0E -S31540020D800BB13F3FCD6D43FF0BB136545C44B49A31 -S31540020D900BB12D7220361D870BB124990B07221BEE -S31540020DA00BB11BC90E9AA72D0BB113021CF0880F6B -S31540020DB00BB10A4428254C650BB1018F2271DEE541 -S31540020DC00BB0F8E2FE2B44F40BB0F03FADC2572312 -S31540020DD00BB0E7A523C37A850BB0DF1352D65AD997 -S31540020DE00BB0D68A2DBDA58C0BB0CE09A756C589A8 -S31540020DF00BB0C591B2999FDB0BB0BD2242985115FB -S31540020E000BB0B4BB4A7EEB870BB0AC5CBD933636B7 -S31540020E1065300000653010006530200065303000D6 -S31540020E2065304000653050006530600065307000C6 -S31540020E3065308000653090006530A0006530B000B6 -S31540020E406530C0006530D0006530E0006530F000A6 -S31540020E506531000065311000653120006531300092 -S31540020E606531400065315000653160006531700082 -S31540020E7065318000653190006531A0006531B00072 -S31540020E806531C0006531D0006531E0006531F00062 -S31540020E90653200006532100065322000653230004E -S31540020EA0653240006532500065326000653270003E -S31540020EB065328000653290006532A0006532B0002E -S31540020EC06532C0006532D0006532E0006532F0001E -S31540020ED0653300006533100065332000653330000A -S31540020EE065334000653350006533600065337000FA -S31540020EF065338000653390006533A0006533B000EA -S31540020F006533C0006533D0006533E0006533F000D9 -S31540020F1065340000653410006534200065343000C5 -S31540020F2065344000653450006534600065347000B5 -S31540020F3065348000653490006534A0006534B000A5 -S31540020F406534C0006534D0006534E0006534F00095 -S31540020F506535000065351000653520006535300081 -S31540020F606535400065355000653560006535700071 -S31540020F7065358000653590006535A0006535B00061 -S31540020F806535C0006535D0006535E0006535F00051 -S31540020F90653600006536100065362000653630003D -S31540020FA0653640006536500065366000653670002D -S31540020FB065368000653690006536A0006536B0001D -S31540020FC06536C0006536D0006536E0006536F0000D -S31540020FD065370000653710006537200065373000F9 -S31540020FE065374000653750006537600065377000E9 -S31540020FF065378000653790006537A0006537B000D9 -S315400210006537C0006537D0006537E0006537F000C8 -S3154002101065380000653810006538200065383000B4 -S3154002102065384000653850006538600065387000A4 -S3154002103065388000653890006538A0006538B00094 -S315400210406538C0006538D0006538E0006538F00084 -S315400210506539000065391000653920006539300070 -S315400210606539400065395000653960006539700060 -S3154002107065398000653990006539A0006539B00050 -S315400210806539C0006539D0006539E0006539F00040 -S31540021090653A0000653A1000653A2000653A30002C -S315400210A0653A4000653A5000653A6000653A70001C -S315400210B0653A8000653A9000653AA000653AB0000C -S315400210C0653AC000653AD000653AE000653AF000FC -S315400210D0653B0000653B1000653B2000653B3000E8 -S315400210E0653B4000653B5000653B6000653B7000D8 -S315400210F0653B8000653B9000653BA000653BB000C8 -S31540021100653BC000653BD000653BE000653BF000B7 -S31540021110653C0000653C1000653C2000653C3000A3 -S31540021120653C4000653C5000653C6000653C700093 -S31540021130653C8000653C9000653CA000653CB00083 -S31540021140653CC000653CD000653CE000653CF00073 -S31540021150653D0000653D1000653D2000653D30005F -S31540021160653D4000653D5000653D6000653D70004F -S31540021170653D8000653D9000653DA000653DB0003F -S31540021180653DC000653DD000653DE000653DF0002F -S31540021190653E0000653E1000653E2000653E30001B -S315400211A0653E4000653E5000653E6000653E70000B -S315400211B0653E8000653E9000653EA000653EB000FB -S315400211C0653EC000653ED000653EE000653EF000EB -S315400211D0653F0000653F1000653F2000653F3000D7 -S315400211E0653F4000653F5000653F6000653F7000C7 -S315400211F0653F8000653F9000653FA000653FB000B7 -S31540021200653FC000653FD000653FE000653FF000A6 -S315400212104200000000000000400FFFFFFFFFFFFFFB -S315400212204200000000200000420FFFFFFFFFFFFFC9 -S3154002123040000000000000004210000000080000CC -S3154002124042000000000000013EB000000000000124 -S315400212504200000000000002420F484C0137D2080B -S31540021260C20E780F256007AB41BA079B7AF94BA0AD -S315400212704201484C0137D208420E780F256007AB2F -S315400212804217E02D934BECDA420F484C0137D20815 -S31540021290C21E780F256007ABC20DA7D249883D4EC4 -S315400212A0421F484C0137D208C20E780F256007AB61 -S315400212B042100C446E87CE32C03340AB371208918F -S315400212C00000000000000000C03340AB3712089116 -S315400212D00000000000000000C29E7A0F236007A6AD -S315400212E0C29E7A0F236007A66F3F484C0137D20849 -S315400212F06E2E780F256007AB6F3F485B3D3F64B863 -S315400213006F3F484C0137D208EE2E780F256007AB67 -S315400213106F3F483CC5303F587FE2F780AB123809F1 -S315400213207FD00000000000007FEAF780AB12380948 -S31540021330002000000000000080280000000000009D -S3154002134080100000000000007FEFF780AB123809E2 -S315400213507FEFF2010203A1117FF0000000000000BE -S315400213600010000000001000801FFFFFF203A111D1 -S315400213708000000000000000001ABCD000023809BC -S31540021380801ABCD0000001110000000000000000DD -S315400213907E71000000000000416010000000000065 -S315400213A07FE11100000000000178100000000000FB -S315400213B03E880000FFF0000000120C00C073F800E7 -S315400213C0C1EFFFFFC00020003FB3C75D224F280F89 -S315400213D0C1B3C75CFAC08192A12FFF8000001FFFF4 -S315400213E03EE0000000FF0000A01FFF8001FE18073C -S315400213F041CFFFFE0000002040303FFFFFFFFFFDD0 -S3154002140042103FFEFC00000D3FD000003FEFFFFFC1 -S31540021410BFD0000010000000BFB000004FF0003FF8 -S3154002142001701000000000003E8000011A0000001A -S3154002143000000000000000007E7C0000000000006A -S31540021440416A1000010000107FF000000000000019 -S3154002145075012034056AC000FA1009091000104FC0 -S31540021460FFF00000000000000100203040030200AF -S31540021470003020340000A00B0000000000000000F5 -S315400214807FE0001010200001400000000010200AFA -S315400214907FF00000000000003FEFDFF00FFC484AFB -S315400214A0BFF80000000000007FFF000000000000BF -S315400214B07FFFE000000000007FF400000000000013 -S315400214C07FC00000000000007FF80000000000001E -S315400214D07FF0000000000000FFF000000000000066 -S315400214E0FFF0000000000000800000000000000045 -S315400214F000000000000100000000000000000000A3 -S315400215000000000000000000000000000000000093 -S315400215100000000000000000000000000000000083 -S315400215200000000000000000000000000000000073 -S315400215300000000000000000000000000000000063 -S315400215400000000000000000000000000000000053 -S315400215500000000000000000000000000000000043 -S315400215600000000000000000000000000000000033 -S315400215700000000000000000000000000000000023 -S315400215800000000000000000000000000000000013 -S315400215900000000000000000000000000000000003 -S315400215A000000000000000000000000000000000F3 -S315400215B000000000000000000000000000000000E3 -S315400215C000000000000000000000000000000000D3 -S315400215D000000000000000000000000000000000C3 -S315400215E000000000000000000000000000000000B3 -S315400215F000000000000000000000000000000000A3 -S315400216000000000000000000000000000000000092 -S315400216100000000000000000000000000000000082 -S315400216200000000000000000000000000000000072 -S315400216300000000000000000000000000000000062 -S315400216400000000000000000000000000000000052 -S315400216500000000000000000000000000000000042 -S315400216600000000000000000000000000000000032 -S315400216700000000000000000000000000000000022 -S315400216800000000000000000000000000000000012 -S315400216900000000000000000000000000000000002 -S315400216A000000000000000000000000000000000F2 -S315400216B000000000000000000000000000000000E2 -S315400216C000000000000000000000000000000000D2 -S315400216D000000000000000000000000000000000C2 -S315400216E000000000000000000000000000000000B2 -S315400216F000000000000000000000000000000000A2 -S315400217000000000000000000000000000000000091 -S315400217100000000000000000000000000000000081 -S315400217200000000000000000000000000000000071 -S315400217300000000000000000000000000000000061 -S315400217400000000000000000000000000000000051 -S315400217500000000000000000000000000000000041 -S315400217600000000000000000000000000000000031 -S315400217700000000000000000000000000000000021 -S315400217800000000000000000000000000000000011 -S315400217900000000000000000000000000000000001 -S315400217A000000000000000000000000000000000F1 -S315400217B000000000000000000000000000000000E1 -S315400217C000000000000000000000000000000000D1 -S315400217D000000000000000000000000000000000C1 -S315400217E000000000000000000000000000000000B1 -S315400217F000000000000000000000000000000000A1 -S315400218000000000000000000000000000000000090 -S315400218100000000000000000000000000000000080 -S315400218200000000000000000000000000000000070 -S315400218300000000000000000000000000000000060 -S315400218400000000000000000000000000000000050 -S315400218500000000000000000000000000000000040 -S315400218600000000000000000000000000000000030 -S315400218700000000000000000000000000000000020 -S315400218800000000000000000000000000000000010 -S315400218900000000000000000000000000000000000 -S315400218A000000000000000000000000000000000F0 -S315400218B000000000000000000000000000000000E0 -S315400218C000000000000000000000000000000000D0 -S315400218D000000000000000000000000000000000C0 -S315400218E000000000000000000000000000000000B0 -S315400218F000000000000000000000000000000000A0 -S31540021900000000000000000000000000000000008F -S31540021910000000000000000000000000000000007F -S31540021920000000000000000000000000000000006F -S31540021930000000000000000000000000000000005F -S31540021940000000000000000000000000000000004F -S31540021950000000000000000000000000000000003F -S31540021960000000000000000000000000000000002F -S31540021970000000000000000000000000000000001F -S31540021980000000000000000000000000000000000F -S3154002199000000000000000000000000000000000FF -S315400219A000000000000000000000000000000000EF -S315400219B000000000000000000000000000000000DF -S315400219C000000000000000000000000000000000CF -S315400219D000000000000000000000000000000000BF -S315400219E000000000000000000000000000000000AF -S315400219F0000000000000000000000000000000009F -S31540021A00000000000000000000000000000000008E -S31540021A10000000000000000000000000000000007E -S31540021A20000000000000000000000000000000006E -S31540021A30000000000000000000000000000000005E -S31540021A40000000000000000000000000000000004E -S31540021A50000000000000000000000000000000003E -S31540021A60000000000000000000000000000000002E -S31540021A70000000000000000000000000000000001E -S31540021A80000000000000000000000000000000000E -S31540021A9000000000000000000000000000000000FE -S31540021AA000000000000000000000000000000000EE -S31540021AB000000000000000000000000000000000DE -S31540021AC000000000000000000000000000000000CE -S31540021AD000000000000000000000000000000000BE -S31540021AE000000000000000000000000000000000AE -S31540021AF0000000000000000000000000000000009E -S31540021B00000000000000000000000000000000008D -S31540021B10000000000000000000000000000000007D -S31540021B20000000000000000000000000000000006D -S31540021B30000000000000000000000000000000005D -S31540021B40000000000000000000000000000000004D -S31540021B50000000000000000000000000000000003D -S31540021B60000000000000000000000000000000002D -S31540021B70000000000000000000000000000000001D -S31540021B80000000000000000000000000000000000D -S31540021B9000000000000000000000000000000000FD -S31540021BA000000000000000000000000000000000ED -S31540021BB000000000000000000000000000000000DD -S31540021BC000000000000000000000000000000000CD -S31540021BD000000000000000000000000000000000BD -S31540021BE000000000000000000000000000000000AD -S31540021BF0000000000000000000000000000000009D -S31540021C00000000000000000000000000000000008C -S31540021C10000000000000000000000000000000007C -S31540021C20000000000000000000000000000000006C -S31540021C30000000000000000000000000000000005C -S31540021C40000000000000000000000000000000004C -S31540021C50000000000000000000000000000000003C -S31540021C60000000000000000000000000000000002C -S31540021C70000000000000000000000000000000001C -S31540021C80000000000000000000000000000000000C -S31540021C9000000000000000000000000000000000FC -S31540021CA000000000000000000000000000000000EC -S31540021CB000000000000000000000000000000000DC -S31540021CC000000000000000000000000000000000CC -S31540021CD000000000000000000000000000000000BC -S31540021CE000000000000000000000000000000000AC -S31540021CF0000000000000000000000000000000009C -S31540021D00000000000000000000000000000000008B -S31540021D10000000000000000000000000000000007B -S31540021D20000000000000000000000000000000006B -S31540021D30000000000000000000000000000000005B -S31540021D40000000000000000000000000000000004B -S31540021D50000000000000000000000000000000003B -S31540021D60000000000000000000000000000000002B -S31540021D70000000000000000000000000000000001B -S31540021D80000000000000000000000000000000000B -S31540021D9000000000000000000000000000000000FB -S31540021DA000000000000000000000000000000000EB -S31540021DB000000000000000000000000000000000DB -S31540021DC000000000000000000000000000000000CB -S31540021DD000000000000000000000000000000000BB -S31540021DE000000000000000000000000000000000AB -S31540021DF0000000000000000000000000000000009B -S31540021E00000000000000000000000000000000008A -S31540021E10000000000000000000000000000000007A -S31540021E20000000000000000000000000000000006A -S31540021E30000000000000000000000000000000005A -S31540021E40000000000000000000000000000000004A -S31540021E50000000000000000000000000000000003A -S31540021E60000000000000000000000000000000002A -S31540021E70000000000000000000000000000000001A -S31540021E80000000000000000000000000000000000A -S31540021E9000000000000000000000000000000000FA -S31540021EA000000000000000000000000000000000EA -S31540021EB000000000000000000000000000000000DA -S31540021EC000000000000000000000000000000000CA -S31540021ED000000000000000000000000000000000BA -S31540021EE000000000000000000000000000000000AA -S31540021EF0000000000000000000000000000000009A -S31540021F000000000000000000000000000000000089 -S31540021F100000000000000000000000000000000079 -S31540021F200000000000000000000000000000000069 -S31540021F300000000000000000000000000000000059 -S31540021F400000000000000000000000000000000049 -S31540021F500000000000000000000000000000000039 -S31540021F600000000000000000000000000000000029 -S31540021F700000000000000000000000000000000019 -S31540021F800000000000000000000000000000000009 -S31540021F9000000000000000000000000000000000F9 -S31540021FA000000000000000000000000000000000E9 -S31540021FB000000000000000000000000000000000D9 -S31540021FC000000000000000000000000000000000C9 -S31540021FD000000000000000000000000000000000B9 -S31540021FE000000000000000000000000000000000A9 -S31540021FF00000000000000000000000000000000099 -S315400220000000000000000000000000000000000088 -S315400220100000000000000000000000000000000078 -S315400220200000000000000000000000000000000068 -S315400220300000000000000000000000000000000058 -S315400220400000000000000000000000000000000048 -S315400220500000000000000000000000000000000038 -S315400220600000000000000000000000000000000028 -S315400220700000000000000000000000000000000018 -S315400220800000000000000000000000000000000008 -S3154002209000000000000000000000000000000000F8 -S315400220A000000000000000000000000000000000E8 -S315400220B000000000000000000000000000000000D8 -S315400220C000000000000000000000000000000000C8 -S315400220D000000000000000000000000000000000B8 -S315400220E000000000000000000000000000000000A8 -S315400220F00000000000000000000000000000000098 -S315400221000000000000000000000000000000000087 -S315400221100000000000000000000000000000000077 -S315400221200000000000000000000000000000000067 -S315400221300000000000000000000000000000000057 -S315400221400000000000000000000000000000000047 -S315400221500000000000000000000000000000000037 -S315400221600000000000000000000000000000000027 -S315400221700000000000000000000000000000000017 -S315400221800000000000000000000000000000000007 -S3154002219000000000000000000000000000000000F7 -S315400221A000000000000000000000000000000000E7 -S315400221B000000000000000000000000000000000D7 -S315400221C000000000000000000000000000000000C7 -S315400221D000000000000000000000000000000000B7 -S315400221E000000000000000000000000000000000A7 -S315400221F00000000000000000000000000000000097 -S315400222000000000000000000000000000000000086 -S315400222100000000000000000000000000000000076 -S315400222200000000000000000000000000000000066 -S315400222300000000000000000000000000000000056 -S315400222400000000000000000000000000000000046 -S315400222500000000000000000000000000000000036 -S315400222600000000000000000000000000000000026 -S315400222700000000000000000000000000000000016 -S315400222800000000000000000000000000000000006 -S3154002229000000000000000000000000000000000F6 -S315400222A000000000000000000000000000000000E6 -S315400222B000000000000000000000000000000000D6 -S315400222C000000000000000000000000000000000C6 -S315400222D000000000000000000000000000000000B6 -S315400222E000000000000000000000000000000000A6 -S315400222F00000000000000000000000000000000096 -S315400223000000000000000000000000000000000085 -S315400223100000000000000000000000000000000075 -S315400223200000000000000000000000000000000065 -S315400223300000000000000000000000000000000055 -S315400223400000000000000000000000000000000045 -S315400223500000000000000000000000000000000035 -S315400223600000000000000000000000000000000025 -S315400223700000000000000000000000000000000015 -S315400223800000000000000000000000000000000005 -S3154002239000000000000000000000000000000000F5 -S315400223A000000000000000000000000000000000E5 -S315400223B000000000000000000000000000000000D5 -S315400223C000000000000000000000000000000000C5 -S315400223D000000000000000000000000000000000B5 -S315400223E000000000000000000000000000000000A5 -S315400223F00000000000000000000000000000000095 -S315400224000000000000000000000000000000000084 -S315400224100000000000000000000000000000000074 -S315400224200000000000000000000000000000000064 -S315400224300000000000000000000000000000000054 -S315400224400000000000000000000000000000000044 -S315400224500000000000000000000000000000000034 -S315400224600000000000000000000000000000000024 -S315400224700000000000000000000000000000000014 -S315400224800000000000000000000000000000000004 -S3154002249000000000000000000000000000000000F4 -S315400224A000000000000000000000000000000000E4 -S315400224B000000000000000000000000000000000D4 -S315400224C000000000000000000000000000000000C4 -S315400224D000000000000000000000000000000000B4 -S315400224E000000000000000000000000000000000A4 -S315400224F00000000000000000000000000000000094 -S315400225000000000000000000000000000000000083 -S315400225100000000000000000000000000000000073 -S315400225200000000000000000000000000000000063 -S315400225300000000000000000000000000000000053 -S315400225400000000000000000000000000000000043 -S315400225500000000000000000000000000000000033 -S315400225600000000000000000000000000000000023 -S315400225700000000000000000000000000000000013 -S315400225800000000000000000000000000000000003 -S3154002259000000000000000000000000000000000F3 -S315400225A000000000000000000000000000000000E3 -S315400225B000000000000000000000000000000000D3 -S315400225C000000000000000000000000000000000C3 -S315400225D000000000000000000000000000000000B3 -S315400225E000000000000000000000000000000000A3 -S315400225F00000000000000000000000000000000093 -S315400226000000000000000000000000000000000082 -S315400226100000000000000000000000000000000072 -S315400226200000000000000000000000000000000062 -S315400226300000000000000000000000000000000052 -S315400226400000000000000000000000000000000042 -S315400226500000000000000000000000000000000032 -S315400226600000000000000000000000000000000022 -S315400226700000000000000000000000000000000012 -S315400226800000000000000000000000000000000002 -S3154002269000000000000000000000000000000000F2 -S315400226A000000000000000000000000000000000E2 -S315400226B000000000000000000000000000000000D2 -S315400226C000000000000000000000000000000000C2 -S315400226D000000000000000000000000000000000B2 -S315400226E000000000000000000000000000000000A2 -S315400226F00000000000000000000000000000000092 -S315400227000000000000000000000000000000000081 -S315400227100000000000000000000000000000000071 -S315400227200000000000000000000000000000000061 -S315400227300000000000000000000000000000000051 -S315400227400000000000000000000000000000000041 -S315400227500000000000000000000000000000000031 -S315400227600000000000000000000000000000000021 -S315400227700000000000000000000000000000000011 -S315400227800000000000000000000000000000000001 -S3154002279000000000000000000000000000000000F1 -S315400227A000000000000000000000000000000000E1 -S315400227B000000000000000000000000000000000D1 -S315400227C000000000000000000000000000000000C1 -S315400227D000000000000000000000000000000000B1 -S315400227E000000000000000000000000000000000A1 -S315400227F00000000000000000000000000000000091 -S315400228000000000000000000000000000000000080 -S315400228100000000000000000000000000000000070 -S315400228200000000000000000000000000000000060 -S315400228300000000000000000000000000000000050 -S315400228400000000000000000000000000000000040 -S315400228500000000000000000000000000000000030 -S315400228600000000000000000000000000000000020 -S315400228700000000000000000000000000000000010 -S315400228800000000000000000000000000000000000 -S3154002289000000000000000000000000000000000F0 -S315400228A000000000000000000000000000000000E0 -S315400228B000000000000000000000000000000000D0 -S315400228C000000000000000000000000000000000C0 -S315400228D000000000000000000000000000000000B0 -S315400228E000000000000000000000000000000000A0 -S315400228F00000000000000000000000000000000090 -S31540022900000000000000000000000000000000007F -S31540022910000000000000000000000000000000006F -S31540022920000000000000000000000000000000005F -S31540022930000000000000000000000000000000004F -S31540022940000000000000000000000000000000003F -S31540022950000000000000000000000000000000002F -S31540022960000000000000000000000000000000001F -S31540022970000000000000000000000000000000000F -S3154002298000000000000000000000000000000000FF -S3154002299000000000000000000000000000000000EF -S315400229A000000000000000000000000000000000DF -S315400229B000000000000000000000000000000000CF -S315400229C000000000000000000000000000000000BF -S315400229D000000000000000000000000000000000AF -S315400229E0000000000000000000000000000000009F -S315400229F0000000000000000000000000000000008F -S31540022A00000000000000000000000000000000007E -S31540022A10000000000000000000000000000000006E -S31540022A20000000000000000000000000000000005E -S31540022A30000000000000000000000000000000004E -S31540022A40000000000000000000000000000000003E -S31540022A50000000000000000000000000000000002E -S31540022A60000000000000000000000000000000001E -S31540022A70000000000000000000000000000000000E -S31540022A8000000000000000000000000000000000FE -S31540022A9000000000000000000000000000000000EE -S31540022AA000000000000000000000000000000000DE -S31540022AB000000000000000000000000000000000CE -S31540022AC000000000000000000000000000000000BE -S31540022AD000000000000000000000000000000000AE -S31540022AE0000000000000000000000000000000009E -S31540022AF0000000000000000000000000000000008E -S31540022B00000000000000000000000000000000007D -S31540022B10000000000000000000000000000000006D -S31540022B20000000000000000000000000000000005D -S31540022B30000000000000000000000000000000004D -S31540022B40000000000000000000000000000000003D -S31540022B50000000000000000000000000000000002D -S31540022B60000000000000000000000000000000001D -S31540022B70000000000000000000000000000000000D -S31540022B8000000000000000000000000000000000FD -S31540022B9000000000000000000000000000000000ED -S31540022BA000000000000000000000000000000000DD -S31540022BB000000000000000000000000000000000CD -S31540022BC000000000000000000000000000000000BD -S31540022BD000000000000000000000000000000000AD -S31540022BE0000000000000000000000000000000009D -S31540022BF0000000000000000000000000000000008D -S31540022C00000000000000000000000000000000007C -S31540022C10000000000000000000000000000000006C -S31540022C20000000000000000000000000000000005C -S31540022C30000000000000000000000000000000004C -S31540022C40000000000000000000000000000000003C -S31540022C50000000000000000000000000000000002C -S31540022C60000000000000000000000000000000001C -S31540022C70000000000000000000000000000000000C -S31540022C8000000000000000000000000000000000FC -S31540022C9000000000000000000000000000000000EC -S31540022CA000000000000000000000000000000000DC -S31540022CB000000000000000000000000000000000CC -S31540022CC000000000000000000000000000000000BC -S31540022CD000000000000000000000000000000000AC -S31540022CE0000000000000000000000000000000009C -S31540022CF0000000000000000000000000000000008C -S31540022D00000000000000000000000000000000007B -S31540022D10000000000000000000000000000000006B -S31540022D20000000000000000000000000000000005B -S31540022D30000000000000000000000000000000004B -S31540022D40000000000000000000000000000000003B -S31540022D50000000000000000000000000000000002B -S31540022D60000000000000000000000000000000001B -S31540022D70000000000000000000000000000000000B -S31540022D8000000000000000000000000000000000FB -S31540022D9000000000000000000000000000000000EB -S31540022DA000000000000000000000000000000000DB -S31540022DB000000000000000000000000000000000CB -S31540022DC000000000000000000000000000000000BB -S31540022DD000000000000000000000000000000000AB -S31540022DE0000000000000000000000000000000009B -S31540022DF0000000000000000000000000000000008B -S31540022E00000000000000000000000000000000007A -S31540022E10000000000000000000000000000000006A -S31540022E20000000000000000000000000000000005A -S31540022E30000000000000000000000000000000004A -S31540022E40000000000000000000000000000000003A -S31540022E50000000000000000000000000000000002A -S31540022E60000000000000000000000000000000001A -S31540022E70000000000000000000000000000000000A -S31540022E8000000000000000000000000000000000FA -S31540022E9000000000000000000000000000000000EA -S31540022EA000000000000000000000000000000000DA -S31540022EB000000000000000000000000000000000CA -S31540022EC000000000000000000000000000000000BA -S31540022ED000000000000000000000000000000000AA -S31540022EE0000000000000000000000000000000009A -S31540022EF0000000000000000000000000000000008A -S31540022F000000000000000000000000000000000079 -S31540022F100000000000000000000000000000000069 -S31540022F200000000000000000000000000000000059 -S31540022F300000000000000000000000000000000049 -S31540022F400000000000000000000000000000000039 -S31540022F500000000000000000000000000000000029 -S31540022F600000000000000000000000000000000019 -S31540022F700000000000000000000000000000000009 -S31540022F8000000000000000000000000000000000F9 -S31540022F9000000000000000000000000000000000E9 -S31540022FA000000000000000000000000000000000D9 -S31540022FB000000000000000000000000000000000C9 -S31540022FC000000000000000000000000000000000B9 -S31540022FD000000000000000000000000000000000A9 -S31540022FE00000000000000000000000000000000099 -S31540022FF00000000000000000000000000000000089 -S315400230000000000000000000000000000000000078 -S315400230100000000000000000000000000000000068 -S315400230200000000000000000000000000000000058 -S315400230300000000000000000000000000000000048 -S315400230400000000000000000000000000000000038 -S315400230500000000000000000000000000000000028 -S315400230600000000000000000000000000000000018 -S315400230700000000000000000000000000000000008 -S3154002308000000000000000000000000000000000F8 -S3154002309000000000000000000000000000000000E8 -S315400230A000000000000000000000000000000000D8 -S315400230B000000000000000000000000000000000C8 -S315400230C000000000000000000000000000000000B8 -S315400230D000000000000000000000000000000000A8 -S315400230E00000000000000000000000000000000098 -S315400230F00000000000000000000000000000000088 -S315400231000000000000000000000000000000000077 -S315400231100000000000000000000000000000000067 -S315400231200000000000000000000000000000000057 -S315400231300000000000000000000000000000000047 -S315400231400000000000000000000000000000000037 -S315400231500000000000000000000000000000000027 -S315400231600000000000000000000000000000000017 -S315400231700000000000000000000000000000000007 -S3154002318000000000000000000000000000000000F7 -S3154002319000000000000000000000000000000000E7 -S315400231A000000000000000000000000000000000D7 -S315400231B000000000000000000000000000000000C7 -S315400231C000000000000000000000000000000000B7 -S315400231D000000000000000000000000000000000A7 -S315400231E00000000000000000000000000000000097 -S315400231F00000000000000000000000000000000087 -S315400232000000000000000000000000000000000076 -S315400232100000000000000000000000000000000066 -S315400232200000000000000000000000000000000056 -S315400232300000000000000000000000000000000046 -S315400232400000000000000000000000000000000036 -S315400232500000000000000000000000000000000026 -S315400232600000000000000000000000000000000016 -S315400232700000000000000000000000000000000006 -S3154002328000000000000000000000000000000000F6 -S3154002329000000000000000000000000000000000E6 -S315400232A000000000000000000000000000000000D6 -S315400232B000000000000000000000000000000000C6 -S315400232C000000000000000000000000000000000B6 -S315400232D000000000000000000000000000000000A6 -S315400232E00000000000000000000000000000000096 -S315400232F00000000000000000000000000000000086 -S315400233000000000000000000000000000000000075 -S315400233100000000000000000000000000000000065 -S315400233200000000000000000000000000000000055 -S315400233300000000000000000000000000000000045 -S315400233400000000000000000000000000000000035 -S315400233500000000000000000000000000000000025 -S315400233600000000000000000000000000000000015 -S315400233700000000000000000000000000000000005 -S3154002338000000000000000000000000000000000F5 -S3154002339000000000000000000000000000000000E5 -S315400233A000000000000000000000000000000000D5 -S315400233B000000000000000000000000000000000C5 -S315400233C000000000000000000000000000000000B5 -S315400233D000000000000000000000000000000000A5 -S315400233E00000000000000000000000000000000095 -S315400233F00000000000000000000000000000000085 -S315400234000000000000000000000000000000000074 -S315400234100000000000000000000000000000000064 -S315400234200000000000000000000000000000000054 -S315400234300000000000000000000000000000000044 -S315400234400000000000000000000000000000000034 -S315400234500000000000000000000000000000000024 -S315400234600000000000000000000000000000000014 -S315400234700000000000000000000000000000000004 -S3154002348000000000000000000000000000000000F4 -S3154002349000000000000000000000000000000000E4 -S315400234A000000000000000000000000000000000D4 -S315400234B000000000000000000000000000000000C4 -S315400234C000000000000000000000000000000000B4 -S315400234D000000000000000000000000000000000A4 -S315400234E00000000000000000000000000000000094 -S315400234F00000000000000000000000000000000084 -S315400235000000000000000000000000000000000073 -S315400235100000000000000000000000000000000063 -S315400235200000000000000000000000000000000053 -S315400235300000000000000000000000000000000043 -S315400235400000000000000000000000000000000033 -S315400235500000000000000000000000000000000023 -S315400235600000000000000000000000000000000013 -S315400235700000000000000000000000000000000003 -S3154002358000000000000000000000000000000000F3 -S3154002359000000000000000000000000000000000E3 -S315400235A000000000000000000000000000000000D3 -S315400235B000000000000000000000000000000000C3 -S315400235C000000000000000000000000000000000B3 -S315400235D000000000000000000000000000000000A3 -S315400235E00000000000000000000000000000000093 -S315400235F00000000000000000000000000000000083 -S315400236000000000000000000000000000000000072 -S315400236100000000000000000000000000000000062 -S315400236200000000000000000000000000000000052 -S315400236300000000000000000000000000000000042 -S315400236400000000000000000000000000000000032 -S315400236500000000000000000000000000000000022 -S315400236600000000000000000000000000000000012 -S315400236700000000000000000000000000000000002 -S3154002368000000000000000000000000000000000F2 -S3154002369000000000000000000000000000000000E2 -S315400236A000000000000000000000000000000000D2 -S315400236B000000000000000000000000000000000C2 -S315400236C000000000000000000000000000000000B2 -S315400236D000000000000000000000000000000000A2 -S315400236E00000000000000000000000000000000092 -S315400236F00000000000000000000000000000000082 -S315400237000000000000000000000000000000000071 -S315400237100000000000000000000000000000000061 -S315400237200000000000000000000000000000000051 -S315400237300000000000000000000000000000000041 -S315400237400000000000000000000000000000000031 -S315400237500000000000000000000000000000000021 -S315400237600000000000000000000000000000000011 -S315400237700000000000000000000000000000000001 -S3154002378000000000000000000000000000000000F1 -S3154002379000000000000000000000000000000000E1 -S315400237A000000000000000000000000000000000D1 -S315400237B000000000000000000000000000000000C1 -S315400237C000000000000000000000000000000000B1 -S315400237D000000000000000000000000000000000A1 -S315400237E00000000000000000000000000000000091 -S315400237F00000000000000000000000000000000081 -S315400238000000000000000000000000000000000070 -S315400238100000000000000000000000000000000060 -S315400238200000000000000000000000000000000050 -S315400238300000000000000000000000000000000040 -S315400238400000000000000000000000000000000030 -S315400238500000000000000000000000000000000020 -S315400238600000000000000000000000000000000010 -S315400238700000000000000000000000000000000000 -S3154002388000000000000000000000000000000000F0 -S3154002389000000000000000000000000000000000E0 -S315400238A000000000000000000000000000000000D0 -S315400238B000000000000000000000000000000000C0 -S315400238C000000000000000000000000000000000B0 -S315400238D000000000000000000000000000000000A0 -S315400238E00000000000000000000000000000000090 -S315400238F00000000000000000000000000000000080 -S31540023900000000000000000000000000000000006F -S31540023910000000000000000000000000000000005F -S31540023920000000000000000000000000000000004F -S31540023930000000000000000000000000000000003F -S31540023940000000000000000000000000000000002F -S31540023950000000000000000000000000000000001F -S31540023960000000000000000000000000000000000F -S3154002397000000000000000000000000000000000FF -S3154002398000000000000000000000000000000000EF -S3154002399000000000000000000000000000000000DF -S315400239A000000000000000000000000000000000CF -S315400239B000000000000000000000000000000000BF -S315400239C000000000000000000000000000000000AF -S315400239D0000000000000000000000000000000009F -S315400239E0000000000000000000000000000000008F -S315400239F0000000000000000000000000000000007F -S31540023A00000000000000000000000000000000006E -S31540023A10000000000000000000000000000000005E -S31540023A20000000000000000000000000000000004E -S31540023A30000000000000000000000000000000003E -S31540023A40000000000000000000000000000000002E -S31540023A50000000000000000000000000000000001E -S31540023A60000000000000000000000000000000000E -S31540023A7000000000000000000000000000000000FE -S31540023A8000000000000000000000000000000000EE -S31540023A9000000000000000000000000000000000DE -S31540023AA000000000000000000000000000000000CE -S31540023AB000000000000000000000000000000000BE -S31540023AC000000000000000000000000000000000AE -S31540023AD0000000000000000000000000000000009E -S31540023AE0000000000000000000000000000000008E -S31540023AF0000000000000000000000000000000007E -S31540023B00000000000000000000000000000000006D -S31540023B10000000000000000000000000000000005D -S31540023B20000000000000000000000000000000004D -S31540023B30000000000000000000000000000000003D -S31540023B40000000000000000000000000000000002D -S31540023B50000000000000000000000000000000001D -S31540023B60000000000000000000000000000000000D -S31540023B7000000000000000000000000000000000FD -S31540023B8000000000000000000000000000000000ED -S31540023B9000000000000000000000000000000000DD -S31540023BA000000000000000000000000000000000CD -S31540023BB000000000000000000000000000000000BD -S31540023BC000000000000000000000000000000000AD -S31540023BD0000000000000000000000000000000009D -S31540023BE0000000000000000000000000000000008D -S31540023BF0000000000000000000000000000000007D -S31540023C00000000000000000000000000000000006C -S31540023C10000000000000000000000000000000005C -S31540023C20000000000000000000000000000000004C -S31540023C30000000000000000000000000000000003C -S31540023C40000000000000000000000000000000002C -S31540023C50000000000000000000000000000000001C -S31540023C60000000000000000000000000000000000C -S31540023C7000000000000000000000000000000000FC -S31540023C8000000000000000000000000000000000EC -S31540023C9000000000000000000000000000000000DC -S31540023CA000000000000000000000000000000000CC -S31540023CB000000000000000000000000000000000BC -S31540023CC000000000000000000000000000000000AC -S31540023CD0000000000000000000000000000000009C -S31540023CE0000000000000000000000000000000008C -S31540023CF0000000000000000000000000000000007C -S31540023D00000000000000000000000000000000006B -S31540023D10000000000000000000000000000000005B -S31540023D20000000000000000000000000000000004B -S31540023D30000000000000000000000000000000003B -S31540023D40000000000000000000000000000000002B -S31540023D50000000000000000000000000000000001B -S31540023D60000000000000000000000000000000000B -S31540023D7000000000000000000000000000000000FB -S31540023D8000000000000000000000000000000000EB -S31540023D9000000000000000000000000000000000DB -S31540023DA000000000000000000000000000000000CB -S31540023DB000000000000000000000000000000000BB -S31540023DC000000000000000000000000000000000AB -S31540023DD0000000000000000000000000000000009B -S31540023DE0000000000000000000000000000000008B -S31540023DF0000000000000000000000000000000007B -S31540023E00000000000000000000000000000000006A -S31540023E10000000000000000000000000000000005A -S31540023E20000000000000000000000000000000004A -S31540023E30000000000000000000000000000000003A -S31540023E40000000000000000000000000000000002A -S31540023E50000000000000000000000000000000001A -S31540023E60000000000000000000000000000000000A -S31540023E7000000000000000000000000000000000FA -S31540023E8000000000000000000000000000000000EA -S31540023E9000000000000000000000000000000000DA -S31540023EA000000000000000000000000000000000CA -S31540023EB000000000000000000000000000000000BA -S31540023EC000000000000000000000000000000000AA -S31540023ED0000000000000000000000000000000009A -S31540023EE0000000000000000000000000000000008A -S31540023EF0000000000000000000000000000000007A -S31540023F000000000000000000000000000000000069 -S31540023F100000000000000000000000000000000059 -S31540023F200000000000000000000000000000000049 -S31540023F300000000000000000000000000000000039 -S31540023F400000000000000000000000000000000029 -S31540023F500000000000000000000000000000000019 -S31540023F600000000000000000000000000000000009 -S31540023F7000000000000000000000000000000000F9 -S31540023F8000000000000000000000000000000000E9 -S31540023F9000000000000000000000000000000000D9 -S31540023FA000000000000000000000000000000000C9 -S31540023FB000000000000000000000000000000000B9 -S31540023FC000000000000000000000000000000000A9 -S31540023FD00000000000000000000000000000000099 -S31540023FE00000000000000000000000000000000089 -S31540023FF00000000000000000000000000000000079 -S315400240000000000000000000000000000000000068 -S315400240100000000000000000000000000000000058 -S315400240200000000000000000000000000000000048 -S315400240300000000000000000000000000000000038 -S315400240400000000000000000000000000000000028 -S315400240500000000000000000000000000000000018 -S315400240600000000000000000000000000000000008 -S3154002407000000000000000000000000000000000F8 -S3154002408000000000000000000000000000000000E8 -S3154002409000000000000000000000000000000000D8 -S315400240A000000000000000000000000000000000C8 -S315400240B000000000000000000000000000000000B8 -S315400240C000000000000000000000000000000000A8 -S315400240D00000000000000000000000000000000098 -S315400240E00000000000000000000000000000000088 -S315400240F00000000000000000000000000000000078 -S315400241000000000000000000000000000000000067 -S315400241100000000000000000000000000000000057 -S315400241200000000000000000000000000000000047 -S315400241300000000000000000000000000000000037 -S315400241400000000000000000000000000000000027 -S315400241500000000000000000000000000000000017 -S315400241600000000000000000000000000000000007 -S3154002417000000000000000000000000000000000F7 -S3154002418000000000000000000000000000000000E7 -S3154002419000000000000000000000000000000000D7 -S315400241A000000000000000000000000000000000C7 -S315400241B000000000000000000000000000000000B7 -S315400241C000000000000000000000000000000000A7 -S315400241D00000000000000000000000000000000097 -S315400241E00000000000000000000000000000000087 -S315400241F00000000000000000000000000000000077 -S315400242000000000000000000000000000000000066 -S315400242100000000000000000000000000000000056 -S315400242200000000000000000000000000000000046 -S315400242300000000000000000000000000000000036 -S315400242400000000000000000000000000000000026 -S315400242500000000000000000000000000000000016 -S315400242600000000000000000000000000000000006 -S3154002427000000000000000000000000000000000F6 -S3154002428000000000000000000000000000000000E6 -S3154002429000000000000000000000000000000000D6 -S315400242A000000000000000000000000000000000C6 -S315400242B000000000000000000000000000000000B6 -S315400242C000000000000000000000000000000000A6 -S315400242D00000000000000000000000000000000096 -S315400242E00000000000000000000000000000000086 -S315400242F00000000000000000000000000000000076 -S315400243000000000000000000000000000000000065 -S315400243100000000000000000000000000000000055 -S315400243200000000000000000000000000000000045 -S315400243300000000000000000000000000000000035 -S315400243400000000000000000000000000000000025 -S315400243500000000000000000000000000000000015 -S315400243600000000000000000000000000000000005 -S3154002437000000000000000000000000000000000F5 -S3154002438000000000000000000000000000000000E5 -S3154002439000000000000000000000000000000000D5 -S315400243A000000000000000000000000000000000C5 -S315400243B000000000000000000000000000000000B5 -S315400243C000000000000000000000000000000000A5 -S315400243D00000000000000000000000000000000095 -S315400243E00000000000000000000000000000000085 -S315400243F00000000000000000000000000000000075 -S315400244000000000000000000000000000000000064 -S315400244100000000000000000000000000000000054 -S315400244200000000000000000000000000000000044 -S315400244300000000000000000000000000000000034 -S315400244400000000000000000000000000000000024 -S315400244500000000000000000000000000000000014 -S315400244600000000000000000000000000000000004 -S3154002447000000000000000000000000000000000F4 -S3154002448000000000000000000000000000000000E4 -S3154002449000000000000000000000000000000000D4 -S315400244A000000000000000000000000000000000C4 -S315400244B000000000000000000000000000000000B4 -S315400244C000000000000000000000000000000000A4 -S315400244D00000000000000000000000000000000094 -S315400244E00000000000000000000000000000000084 -S315400244F00000000000000000000000000000000074 -S315400245000000000000000000000000000000000063 -S315400245100000000000000000000000000000000053 -S315400245200000000000000000000000000000000043 -S315400245300000000000000000000000000000000033 -S315400245400000000000000000000000000000000023 -S315400245500000000000000000000000000000000013 -S315400245600000000000000000000000000000000003 -S3154002457000000000000000000000000000000000F3 -S3154002458000000000000000000000000000000000E3 -S3154002459000000000000000000000000000000000D3 -S315400245A000000000000000000000000000000000C3 -S315400245B000000000000000000000000000000000B3 -S315400245C000000000000000000000000000000000A3 -S315400245D00000000000000000000000000000000093 -S315400245E00000000000000000000000000000000083 -S315400245F00000000000000000000000000000000073 -S315400246000000000000000000000000000000000062 -S315400246100000000000000000000000000000000052 -S315400246200000000000000000000000000000000042 -S315400246300000000000000000000000000000000032 -S315400246400000000000000000000000000000000022 -S315400246500000000000000000000000000000000012 -S315400246600000000000000000000000000000000002 -S3154002467000000000000000000000000000000000F2 -S3154002468000000000000000000000000000000000E2 -S3154002469000000000000000000000000000000000D2 -S315400246A000000000000000000000000000000000C2 -S315400246B000000000000000000000000000000000B2 -S315400246C000000000000000000000000000000000A2 -S315400246D00000000000000000000000000000000092 -S315400246E00000000000000000000000000000000082 -S315400246F00000000000000000000000000000000072 -S315400247000000000000000000000000000000000061 -S315400247100000000000000000000000000000000051 -S315400247200000000000000000000000000000000041 -S315400247300000000000000000000000000000000031 -S315400247400000000000000000000000000000000021 -S315400247500000000000000000000000000000000011 -S315400247600000000000000000000000000000000001 -S3154002477000000000000000000000000000000000F1 -S3154002478000000000000000000000000000000000E1 -S3154002479000000000000000000000000000000000D1 -S315400247A000000000000000000000000000000000C1 -S315400247B000000000000000000000000000000000B1 -S315400247C000000000000000000000000000000000A1 -S315400247D00000000000000000000000000000000091 -S315400247E00000000000000000000000000000000081 -S315400247F00000000000000000000000000000000071 -S315400248000000000000000000000000000000000060 -S315400248100000000000000000000000000000000050 -S315400248200000000000000000000000000000000040 -S315400248300000000000000000000000000000000030 -S315400248400000000000000000000000000000000020 -S315400248500000000000000000000000000000000010 -S315400248600000000000000000000000000000000000 -S3154002487000000000000000000000000000000000F0 -S3154002488000000000000000000000000000000000E0 -S3154002489000000000000000000000000000000000D0 -S315400248A000000000000000000000000000000000C0 -S315400248B000000000000000000000000000000000B0 -S315400248C000000000000000000000000000000000A0 -S315400248D00000000000000000000000000000000090 -S315400248E00000000000000000000000000000000080 -S315400248F00000000000000000000000000000000070 -S31540024900000000000000000000000000000000005F -S31540024910000000000000000000000000000000004F -S31540024920000000000000000000000000000000003F -S31540024930000000000000000000000000000000002F -S31540024940000000000000000000000000000000001F -S31540024950000000000000000000000000000000000F -S3154002496000000000000000000000000000000000FF -S3154002497000000000000000000000000000000000EF -S3154002498000000000000000000000000000000000DF -S3154002499000000000000000000000000000000000CF -S315400249A000000000000000000000000000000000BF -S315400249B000000000000000000000000000000000AF -S315400249C0000000000000000000000000000000009F -S315400249D0000000000000000000000000000000008F -S315400249E0000000000000000000000000000000007F -S315400249F0000000000000000000000000000000006F -S31540024A00000000000000000000000000000000005E -S31540024A10000000000000000000000000000000004E -S31540024A20000000000000000000000000000000003E -S31540024A30000000000000000000000000000000002E -S31540024A40000000000000000000000000000000001E -S31540024A50000000000000000000000000000000000E -S31540024A6000000000000000000000000000000000FE -S31540024A7000000000000000000000000000000000EE -S31540024A8000000000000000000000000000000000DE -S31540024A9000000000000000000000000000000000CE -S31540024AA000000000000000000000000000000000BE -S31540024AB000000000000000000000000000000000AE -S31540024AC0000000000000000000000000000000009E -S31540024AD0000000000000000000000000000000008E -S31540024AE0000000000000000000000000000000007E -S31540024AF0000000000000000000000000000000006E -S31540024B00000000000000000000000000000000005D -S31540024B10000000000000000000000000000000004D -S31540024B20000000000000000000000000000000003D -S31540024B30000000000000000000000000000000002D -S31540024B40000000000000000000000000000000001D -S31540024B50000000000000000000000000000000000D -S31540024B6000000000000000000000000000000000FD -S31540024B7000000000000000000000000000000000ED -S31540024B8000000000000000000000000000000000DD -S31540024B9000000000000000000000000000000000CD -S31540024BA000000000000000000000000000000000BD -S31540024BB000000000000000000000000000000000AD -S31540024BC0000000000000000000000000000000009D -S31540024BD0000000000000000000000000000000008D -S31540024BE0000000000000000000000000000000007D -S31540024BF0000000000000000000000000000000006D -S31540024C00000000000000000000000000000000005C -S31540024C10000000000000000000000000000000004C -S31540024C20000000000000000000000000000000003C -S31540024C30000000000000000000000000000000002C -S31540024C40000000000000000000000000000000001C -S31540024C50000000000000000000000000000000000C -S31540024C6000000000000000000000000000000000FC -S31540024C7000000000000000000000000000000000EC -S31540024C8000000000000000000000000000000000DC -S31540024C9000000000000000000000000000000000CC -S31540024CA000000000000000000000000000000000BC -S31540024CB000000000000000000000000000000000AC -S31540024CC0000000000000000000000000000000009C -S31540024CD0000000000000000000000000000000008C -S31540024CE0000000000000000000000000000000007C -S31540024CF0000000000000000000000000000000006C -S31540024D00000000000000000000000000000000005B -S31540024D10000000000000000000000000000000004B -S31540024D20000000000000000000000000000000003B -S31540024D30000000000000000000000000000000002B -S31540024D40000000000000000000000000000000001B -S31540024D50000000000000000000000000000000000B -S31540024D6000000000000000000000000000000000FB -S31540024D7000000000000000000000000000000000EB -S31540024D8000000000000000000000000000000000DB -S31540024D9000000000000000000000000000000000CB -S31540024DA000000000000000000000000000000000BB -S31540024DB000000000000000000000000000000000AB -S31540024DC0000000000000000000000000000000009B -S31540024DD0000000000000000000000000000000008B -S31540024DE0000000000000000000000000000000007B -S31540024DF0000000000000000000000000000000006B -S31540024E00000000000000000000000000000000005A -S31540024E10000000000000000000000000000000004A -S31540024E20000000000000000000000000000000003A -S31540024E30000000000000000000000000000000002A -S31540024E40000000000000000000000000000000001A -S31540024E50000000000000000000000000000000000A -S31540024E6000000000000000000000000000000000FA -S31540024E7000000000000000000000000000000000EA -S31540024E8000000000000000000000000000000000DA -S31540024E9000000000000000000000000000000000CA -S31540024EA000000000000000000000000000000000BA -S31540024EB000000000000000000000000000000000AA -S31540024EC0000000000000000000000000000000009A -S31540024ED0000000000000000000000000000000008A -S31540024EE0000000000000000000000000000000007A -S31540024EF0000000000000000000000000000000006A -S31540024F000000000000000000000000000000000059 -S31540024F100000000000000000000000000000000049 -S31540024F200000000000000000000000000000000039 -S31540024F300000000000000000000000000000000029 -S31540024F400000000000000000000000000000000019 -S31540024F500000000000000000000000000000000009 -S31540024F6000000000000000000000000000000000F9 -S31540024F7000000000000000000000000000000000E9 -S31540024F8000000000000000000000000000000000D9 -S31540024F9000000000000000000000000000000000C9 -S31540024FA000000000000000000000000000000000B9 -S31540024FB000000000000000000000000000000000A9 -S31540024FC00000000000000000000000000000000099 -S31540024FD00000000000000000000000000000000089 -S31540024FE00000000000000000000000000000000079 -S31540024FF00000000000000000000000000000000069 -S315400250000000000000000000000000000000000058 -S315400250100000000000000000000000000000000048 -S315400250200000000000000000000000000000000038 -S315400250300000000000000000000000000000000028 -S315400250400000000000000000000000000000000018 -S315400250500000000000000000000000000000000008 -S3154002506000000000000000000000000000000000F8 -S3154002507000000000000000000000000000000000E8 -S3154002508000000000000000000000000000000000D8 -S3154002509000000000000000000000000000000000C8 -S315400250A000000000000000000000000000000000B8 -S315400250B000000000000000000000000000000000A8 -S315400250C00000000000000000000000000000000098 -S315400250D00000000000000000000000000000000088 -S315400250E00000000000000000000000000000000078 -S315400250F00000000000000000000000000000000068 -S315400251000000000000000000000000000000000057 -S315400251100000000000000000000000000000000047 -S315400251200000000000000000000000000000000037 -S315400251300000000000000000000000000000000027 -S315400251400000000000000000000000000000000017 -S315400251500000000000000000000000000000000007 -S3154002516000000000000000000000000000000000F7 -S3154002517000000000000000000000000000000000E7 -S3154002518000000000000000000000000000000000D7 -S3154002519000000000000000000000000000000000C7 -S315400251A000000000000000000000000000000000B7 -S315400251B000000000000000000000000000000000A7 -S315400251C00000000000000000000000000000000097 -S315400251D00000000000000000000000000000000087 -S315400251E00000000000000000000000000000000077 -S315400251F00000000000000000000000000000000067 -S315400252000000000000000000000000000000000056 -S315400252100000000000000000000000000000000046 -S315400252200000000000000000000000000000000036 -S315400252300000000000000000000000000000000026 -S315400252400000000000000000000000000000000016 -S315400252500000000000000000000000000000000006 -S3154002526000000000000000000000000000000000F6 -S3154002527000000000000000000000000000000000E6 -S3154002528000000000000000000000000000000000D6 -S3154002529000000000000000000000000000000000C6 -S315400252A000000000000000000000000000000000B6 -S315400252B000000000000000000000000000000000A6 -S315400252C00000000000000000000000000000000096 -S315400252D00000000000000000000000000000000086 -S315400252E00000000000000000000000000000000076 -S315400252F00000000000000000000000000000000066 -S315400253000000000000000000000000000000000055 -S315400253100000000000000000000000000000000045 -S315400253200000000000000000000000000000000035 -S315400253300000000000000000000000000000000025 -S315400253400000000000000000000000000000000015 -S315400253500000000000000000000000000000000005 -S3154002536000000000000000000000000000000000F5 -S3154002537000000000000000000000000000000000E5 -S3154002538000000000000000000000000000000000D5 -S3154002539000000000000000000000000000000000C5 -S315400253A000000000000000000000000000000000B5 -S315400253B000000000000000000000000000000000A5 -S315400253C00000000000000000000000000000000095 -S315400253D00000000000000000000000000000000085 -S315400253E00000000000000000000000000000000075 -S315400253F00000000000000000000000000000000065 -S315400254000000000000000000000000000000000054 -S315400254100000000000000000000000000000000044 -S315400254200000000000000000000000000000000034 -S315400254300000000000000000000000000000000024 -S315400254400000000000000000000000000000000014 -S315400254500000000000000000000000000000000004 -S3154002546000000000000000000000000000000000F4 -S3154002547000000000000000000000000000000000E4 -S3154002548000000000000000000000000000000000D4 -S3154002549000000000000000000000000000000000C4 -S315400254A000000000000000000000000000000000B4 -S315400254B000000000000000000000000000000000A4 -S315400254C00000000000000000000000000000000094 -S315400254D00000000000000000000000000000000084 -S315400254E00000000000000000000000000000000074 -S315400254F00000000000000000000000000000000064 -S315400255000000000000000000000000000000000053 -S315400255100000000000000000000000000000000043 -S315400255200000000000000000000000000000000033 -S315400255300000000000000000000000000000000023 -S315400255400000000000000000000000000000000013 -S315400255500000000000000000000000000000000003 -S3154002556000000000000000000000000000000000F3 -S3154002557000000000000000000000000000000000E3 -S3154002558000000000000000000000000000000000D3 -S3154002559000000000000000000000000000000000C3 -S315400255A000000000000000000000000000000000B3 -S315400255B000000000000000000000000000000000A3 -S315400255C00000000000000000000000000000000093 -S315400255D00000000000000000000000000000000083 -S315400255E00000000000000000000000000000000073 -S315400255F00000000000000000000000000000000063 -S315400256000000000000000000000000000000000052 -S315400256100000000000000000000000000000000042 -S315400256200000000000000000000000000000000032 -S315400256300000000000000000000000000000000022 -S315400256400000000000000000000000000000000012 -S315400256500000000000000000000000000000000002 -S3154002566000000000000000000000000000000000F2 -S3154002567000000000000000000000000000000000E2 -S3154002568000000000000000000000000000000000D2 -S3154002569000000000000000000000000000000000C2 -S315400256A000000000000000000000000000000000B2 -S315400256B000000000000000000000000000000000A2 -S315400256C00000000000000000000000000000000092 -S315400256D00000000000000000000000000000000082 -S315400256E00000000000000000000000000000000072 -S315400256F00000000000000000000000000000000062 -S315400257000000000000000000000000000000000051 -S315400257100000000000000000000000000000000041 -S315400257200000000000000000000000000000000031 -S315400257300000000000000000000000000000000021 -S315400257400000000000000000000000000000000011 -S315400257500000000000000000000000000000000001 -S3154002576000000000000000000000000000000000F1 -S3154002577000000000000000000000000000000000E1 -S3154002578000000000000000000000000000000000D1 -S3154002579000000000000000000000000000000000C1 -S315400257A000000000000000000000000000000000B1 -S315400257B000000000000000000000000000000000A1 -S315400257C00000000000000000000000000000000091 -S315400257D00000000000000000000000000000000081 -S315400257E00000000000000000000000000000000071 -S315400257F00000000000000000000000000000000061 -S315400258000000000000000000000000000000000050 -S315400258100000000000000000000000000000000040 -S315400258200000000000000000000000000000000030 -S315400258300000000000000000000000000000000020 -S315400258400000000000000000000000000000000010 -S315400258500000000000000000000000000000000000 -S3154002586000000000000000000000000000000000F0 -S3154002587000000000000000000000000000000000E0 -S3154002588000000000000000000000000000000000D0 -S3154002589000000000000000000000000000000000C0 -S315400258A000000000000000000000000000000000B0 -S315400258B000000000000000000000000000000000A0 -S315400258C00000000000000000000000000000000090 -S315400258D00000000000000000000000000000000080 -S315400258E00000000000000000000000000000000070 -S315400258F00000000000000000000000000000000060 -S31540025900000000000000000000000000000000004F -S31540025910000000000000000000000000000000003F -S31540025920000000000000000000000000000000002F -S31540025930000000000000000000000000000000001F -S31540025940000000000000000000000000000000000F -S3154002595000000000000000000000000000000000FF -S3154002596000000000000000000000000000000000EF -S3154002597000000000000000000000000000000000DF -S3154002598000000000000000000000000000000000CF -S3154002599000000000000000000000000000000000BF -S315400259A000000000000000000000000000000000AF -S315400259B0000000000000000000000000000000009F -S315400259C0000000000000000000000000000000008F -S315400259D0000000000000000000000000000000007F -S315400259E0000000000000000000000000000000006F -S315400259F0000000000000000000000000000000005F -S31540025A00000000000000000000000000000000004E -S31540025A10000000000000000000000000000000003E -S31540025A20000000000000000000000000000000002E -S31540025A30000000000000000000000000000000001E -S31540025A40000000000000000000000000000000000E -S31540025A5000000000000000000000000000000000FE -S31540025A6000000000000000000000000000000000EE -S31540025A7000000000000000000000000000000000DE -S31540025A8000000000000000000000000000000000CE -S31540025A9000000000000000000000000000000000BE -S31540025AA000000000000000000000000000000000AE -S31540025AB0000000000000000000000000000000009E -S31540025AC0000000000000000000000000000000008E -S31540025AD0000000000000000000000000000000007E -S31540025AE0000000000000000000000000000000006E -S31540025AF0000000000000000000000000000000005E -S31540025B00000000000000000000000000000000004D -S31540025B10000000000000000000000000000000003D -S31540025B20000000000000000000000000000000002D -S31540025B30000000000000000000000000000000001D -S31540025B40000000000000000000000000000000000D -S31540025B5000000000000000000000000000000000FD -S31540025B6000000000000000000000000000000000ED -S31540025B7000000000000000000000000000000000DD -S31540025B8000000000000000000000000000000000CD -S31540025B9000000000000000000000000000000000BD -S31540025BA000000000000000000000000000000000AD -S31540025BB0000000000000000000000000000000009D -S31540025BC0000000000000000000000000000000008D -S31540025BD0000000000000000000000000000000007D -S31540025BE0000000000000000000000000000000006D -S31540025BF0000000000000000000000000000000005D -S31540025C00000000000000000000000000000000004C -S31540025C10000000000000000000000000000000003C -S31540025C20000000000000000000000000000000002C -S31540025C30000000000000000000000000000000001C -S31540025C40000000000000000000000000000000000C -S31540025C5000000000000000000000000000000000FC -S31540025C6000000000000000000000000000000000EC -S31540025C7000000000000000000000000000000000DC -S31540025C8000000000000000000000000000000000CC -S31540025C9000000000000000000000000000000000BC -S31540025CA000000000000000000000000000000000AC -S31540025CB0000000000000000000000000000000009C -S31540025CC0000000000000000000000000000000008C -S31540025CD0000000000000000000000000000000007C -S31540025CE0000000000000000000000000000000006C -S31540025CF0000000000000000000000000000000005C -S31540025D00000000000000000000000000000000004B -S31540025D10000000000000000000000000000000003B -S31540025D20000000000000000000000000000000002B -S31540025D30000000000000000000000000000000001B -S31540025D40000000000000000000000000000000000B -S31540025D5000000000000000000000000000000000FB -S31540025D6000000000000000000000000000000000EB -S31540025D7000000000000000000000000000000000DB -S31540025D8000000000000000000000000000000000CB -S31540025D9000000000000000000000000000000000BB -S31540025DA000000000000000000000000000000000AB -S31540025DB0000000000000000000000000000000009B -S31540025DC0000000000000000000000000000000008B -S31540025DD0000000000000000000000000000000007B -S31540025DE0000000000000000000000000000000006B -S31540025DF0000000000000000000000000000000005B -S31540025E00000000000000000000000000000000004A -S31540025E10000000000000000000000000000000003A -S31540025E20000000000000000000000000000000002A -S31540025E30000000000000000000000000000000001A -S31540025E40000000000000000000000000000000000A -S31540025E5000000000000000000000000000000000FA -S31540025E6000000000000000000000000000000000EA -S31540025E7000000000000000000000000000000000DA -S31540025E8000000000000000000000000000000000CA -S31540025E9000000000000000000000000000000000BA -S31540025EA000000000000000000000000000000000AA -S31540025EB0000000000000000000000000000000009A -S31540025EC0000000000000000000000000000000008A -S31540025ED0000000000000000000000000000000007A -S31540025EE0000000000000000000000000000000006A -S31540025EF0000000000000000000000000000000005A -S31540025F000000000000000000000000000000000049 -S31540025F100000000000000000000000000000000039 -S31540025F200000000000000000000000000000000029 -S31540025F300000000000000000000000000000000019 -S31540025F400000000000000000000000000000000009 -S31540025F5000000000000000000000000000000000F9 -S31540025F6000000000000000000000000000000000E9 -S31540025F7000000000000000000000000000000000D9 -S31540025F8000000000000000000000000000000000C9 -S31540025F9000000000000000000000000000000000B9 -S31540025FA000000000000000000000000000000000A9 -S31540025FB00000000000000000000000000000000099 -S31540025FC00000000000000000000000000000000089 -S31540025FD00000000000000000000000000000000079 -S31540025FE00000000000000000000000000000000069 -S31540025FF00000000000000000000000000000000059 -S315400260000000000000000000000000000000000048 -S315400260100000000000000000000000000000000038 -S315400260200000000000000000000000000000000028 -S315400260300000000000000000000000000000000018 -S315400260400000000000000000000000000000000008 -S3154002605000000000000000000000000000000000F8 -S3154002606000000000000000000000000000000000E8 -S3154002607000000000000000000000000000000000D8 -S3154002608000000000000000000000000000000000C8 -S3154002609000000000000000000000000000000000B8 -S315400260A000000000000000000000000000000000A8 -S315400260B00000000000000000000000000000000098 -S315400260C00000000000000000000000000000000088 -S315400260D00000000000000000000000000000000078 -S315400260E00000000000000000000000000000000068 -S315400260F00000000000000000000000000000000058 -S315400261000000000000000000000000000000000047 -S315400261100000000000000000000000000000000037 -S315400261200000000000000000000000000000000027 -S315400261300000000000000000000000000000000017 -S315400261400000000000000000000000000000000007 -S3154002615000000000000000000000000000000000F7 -S3154002616000000000000000000000000000000000E7 -S3154002617000000000000000000000000000000000D7 -S3154002618000000000000000000000000000000000C7 -S3154002619000000000000000000000000000000000B7 -S315400261A000000000000000000000000000000000A7 -S315400261B00000000000000000000000000000000097 -S315400261C00000000000000000000000000000000087 -S315400261D00000000000000000000000000000000077 -S315400261E00000000000000000000000000000000067 -S315400261F00000000000000000000000000000000057 -S315400262000000000000000000000000000000000046 -S315400262100000000000000000000000000000000036 -S315400262200000000000000000000000000000000026 -S315400262300000000000000000000000000000000016 -S315400262400000000000000000000000000000000006 -S3154002625000000000000000000000000000000000F6 -S3154002626000000000000000000000000000000000E6 -S3154002627000000000000000000000000000000000D6 -S3154002628000000000000000000000000000000000C6 -S3154002629000000000000000000000000000000000B6 -S315400262A000000000000000000000000000000000A6 -S315400262B00000000000000000000000000000000096 -S315400262C00000000000000000000000000000000086 -S315400262D00000000000000000000000000000000076 -S315400262E00000000000000000000000000000000066 -S315400262F00000000000000000000000000000000056 -S315400263000000000000000000000000000000000045 -S315400263100000000000000000000000000000000035 -S315400263200000000000000000000000000000000025 -S315400263300000000000000000000000000000000015 -S315400263400000000000000000000000000000000005 -S3154002635000000000000000000000000000000000F5 -S3154002636000000000000000000000000000000000E5 -S3154002637000000000000000000000000000000000D5 -S3154002638000000000000000000000000000000000C5 -S3154002639000000000000000000000000000000000B5 -S315400263A000000000000000000000000000000000A5 -S315400263B00000000000000000000000000000000095 -S315400263C00000000000000000000000000000000085 -S315400263D00000000000000000000000000000000075 -S315400263E00000000000000000000000000000000065 -S315400263F00000000000000000000000000000000055 -S315400264000000000000000000000000000000000044 -S315400264100000000000000000000000000000000034 -S315400264200000000000000000000000000000000024 -S315400264300000000000000000000000000000000014 -S315400264400000000000000000000000000000000004 -S3154002645000000000000000000000000000000000F4 -S3154002646000000000000000000000000000000000E4 -S3154002647000000000000000000000000000000000D4 -S3154002648000000000000000000000000000000000C4 -S3154002649000000000000000000000000000000000B4 -S315400264A000000000000000000000000000000000A4 -S315400264B00000000000000000000000000000000094 -S315400264C00000000000000000000000000000000084 -S315400264D00000000000000000000000000000000074 -S315400264E00000000000000000000000000000000064 -S315400264F00000000000000000000000000000000054 -S315400265000000000000000000000000000000000043 -S315400265100000000000000000000000000000000033 -S315400265200000000000000000000000000000000023 -S315400265300000000000000000000000000000000013 -S315400265400000000000000000000000000000000003 -S3154002655000000000000000000000000000000000F3 -S3154002656000000000000000000000000000000000E3 -S3154002657000000000000000000000000000000000D3 -S3154002658000000000000000000000000000000000C3 -S3154002659000000000000000000000000000000000B3 -S315400265A000000000000000000000000000000000A3 -S315400265B00000000000000000000000000000000093 -S315400265C00000000000000000000000000000000083 -S315400265D00000000000000000000000000000000073 -S315400265E00000000000000000000000000000000063 -S315400265F00000000000000000000000000000000053 -S315400266000000000000000000000000000000000042 -S315400266100000000000000000000000000000000032 -S315400266200000000000000000000000000000000022 -S315400266300000000000000000000000000000000012 -S315400266400000000000000000000000000000000002 -S3154002665000000000000000000000000000000000F2 -S3154002666000000000000000000000000000000000E2 -S3154002667000000000000000000000000000000000D2 -S3154002668000000000000000000000000000000000C2 -S3154002669000000000000000000000000000000000B2 -S315400266A000000000000000000000000000000000A2 -S315400266B00000000000000000000000000000000092 -S315400266C00000000000000000000000000000000082 -S315400266D00000000000000000000000000000000072 -S315400266E00000000000000000000000000000000062 -S315400266F00000000000000000000000000000000052 -S315400267000000000000000000000000000000000041 -S315400267100000000000000000000000000000000031 -S315400267200000000000000000000000000000000021 -S315400267300000000000000000000000000000000011 -S315400267400000000000000000000000000000000001 -S3154002675000000000000000000000000000000000F1 -S3154002676000000000000000000000000000000000E1 -S3154002677000000000000000000000000000000000D1 -S3154002678000000000000000000000000000000000C1 -S3154002679000000000000000000000000000000000B1 -S315400267A000000000000000000000000000000000A1 -S315400267B00000000000000000000000000000000091 -S315400267C00000000000000000000000000000000081 -S315400267D00000000000000000000000000000000071 -S315400267E00000000000000000000000000000000061 -S315400267F00000000000000000000000000000000051 -S315400268000000000000000000000000000000000040 -S315400268100000000000000000000000000000000030 -S315400268200000000000000000000000000000000020 -S315400268300000000000000000000000000000000010 -S315400268400000000000000000000000000000000000 -S3154002685000000000000000000000000000000000F0 -S3154002686000000000000000000000000000000000E0 -S3154002687000000000000000000000000000000000D0 -S3154002688000000000000000000000000000000000C0 -S3154002689000000000000000000000000000000000B0 -S315400268A000000000000000000000000000000000A0 -S315400268B00000000000000000000000000000000090 -S315400268C00000000000000000000000000000000080 -S315400268D00000000000000000000000000000000070 -S315400268E00000000000000000000000000000000060 -S315400268F00000000000000000000000000000000050 -S31540026900000000000000000000000000000000003F -S31540026910000000000000000000000000000000002F -S31540026920000000000000000000000000000000001F -S31540026930000000000000000000000000000000000F -S3154002694000000000000000000000000000000000FF -S3154002695000000000000000000000000000000000EF -S3154002696000000000000000000000000000000000DF -S3154002697000000000000000000000000000000000CF -S3154002698000000000000000000000000000000000BF -S3154002699000000000000000000000000000000000AF -S315400269A0000000000000000000000000000000009F -S315400269B0000000000000000000000000000000008F -S315400269C0000000000000000000000000000000007F -S315400269D0000000000000000000000000000000006F -S315400269E0000000000000000000000000000000005F -S315400269F0000000000000000000000000000000004F -S31540026A00000000000000000000000000000000003E -S31540026A10000000000000000000000000000000002E -S31540026A20000000000000000000000000000000001E -S31540026A30000000000000000000000000000000000E -S31540026A4000000000000000000000000000000000FE -S31540026A5000000000000000000000000000000000EE -S31540026A6000000000000000000000000000000000DE -S31540026A7000000000000000000000000000000000CE -S31540026A8000000000000000000000000000000000BE -S31540026A9000000000000000000000000000000000AE -S31540026AA0000000000000000000000000000000009E -S31540026AB0000000000000000000000000000000008E -S31540026AC0000000000000000000000000000000007E -S31540026AD0000000000000000000000000000000006E -S31540026AE0000000000000000000000000000000005E -S31540026AF0000000000000000000000000000000004E -S31540026B00000000000000000000000000000000003D -S31540026B10000000000000000000000000000000002D -S31540026B20000000000000000000000000000000001D -S31540026B30000000000000000000000000000000000D -S31540026B4000000000000000000000000000000000FD -S31540026B5000000000000000000000000000000000ED -S31540026B6000000000000000000000000000000000DD -S31540026B7000000000000000000000000000000000CD -S31540026B8000000000000000000000000000000000BD -S31540026B9000000000000000000000000000000000AD -S31540026BA0000000000000000000000000000000009D -S31540026BB0000000000000000000000000000000008D -S31540026BC0000000000000000000000000000000007D -S31540026BD0000000000000000000000000000000006D -S31540026BE0000000000000000000000000000000005D -S31540026BF0000000000000000000000000000000004D -S31540026C00000000000000000000000000000000003C -S31540026C10000000000000000000000000000000002C -S31540026C20000000000000000000000000000000001C -S31540026C30000000000000000000000000000000000C -S31540026C4000000000000000000000000000000000FC -S31540026C5000000000000000000000000000000000EC -S31540026C6000000000000000000000000000000000DC -S31540026C7000000000000000000000000000000000CC -S31540026C8000000000000000000000000000000000BC -S31540026C9000000000000000000000000000000000AC -S31540026CA0000000000000000000000000000000009C -S31540026CB0000000000000000000000000000000008C -S31540026CC0000000000000000000000000000000007C -S31540026CD0000000000000000000000000000000006C -S31540026CE0000000000000000000000000000000005C -S31540026CF0000000000000000000000000000000004C -S31540026D00000000000000000000000000000000003B -S31540026D10000000000000000000000000000000002B -S31540026D20000000000000000000000000000000001B -S31540026D30000000000000000000000000000000000B -S31540026D4000000000000000000000000000000000FB -S31540026D5000000000000000000000000000000000EB -S31540026D6000000000000000000000000000000000DB -S31540026D7000000000000000000000000000000000CB -S31540026D8000000000000000000000000000000000BB -S31540026D9000000000000000000000000000000000AB -S31540026DA0000000000000000000000000000000009B -S31540026DB0000000000000000000000000000000008B -S31540026DC0000000000000000000000000000000007B -S31540026DD0000000000000000000000000000000006B -S31540026DE0000000000000000000000000000000005B -S31540026DF0000000000000000000000000000000004B -S31540026E00000000000000000000000000000000003A -S31540026E10000000000000000000000000000000002A -S31540026E20000000000000000000000000000000001A -S31540026E30000000000000000000000000000000000A -S31540026E4000000000000000000000000000000000FA -S31540026E5000000000000000000000000000000000EA -S31540026E6000000000000000000000000000000000DA -S31540026E7000000000000000000000000000000000CA -S31540026E8000000000000000000000000000000000BA -S31540026E9000000000000000000000000000000000AA -S31540026EA0000000000000000000000000000000009A -S31540026EB0000000000000000000000000000000008A -S31540026EC0000000000000000000000000000000007A -S31540026ED0000000000000000000000000000000006A -S31540026EE0000000000000000000000000000000005A -S31540026EF0000000000000000000000000000000004A -S31540026F000000000000000000000000000000000039 -S31540026F100000000000000000000000000000000029 -S31540026F200000000000000000000000000000000019 -S31540026F300000000000000000000000000000000009 -S31540026F4000000000000000000000000000000000F9 -S31540026F5000000000000000000000000000000000E9 -S31540026F6000000000000000000000000000000000D9 -S31540026F7000000000000000000000000000000000C9 -S31540026F8000000000000000000000000000000000B9 -S31540026F9000000000000000000000000000000000A9 -S31540026FA00000000000000000000000000000000099 -S31540026FB00000000000000000000000000000000089 -S31540026FC00000000000000000000000000000000079 -S31540026FD00000000000000000000000000000000069 -S31540026FE00000000000000000000000000000000059 -S31540026FF00000000000000000000000000000000049 -S315400270000000000000000000000000000000000038 -S315400270100000000000000000000000000000000028 -S315400270200000000000000000000000000000000018 -S315400270300000000000000000000000000000000008 -S3154002704000000000000000000000000000000000F8 -S3154002705000000000000000000000000000000000E8 -S3154002706000000000000000000000000000000000D8 -S3154002707000000000000000000000000000000000C8 -S3154002708000000000000000000000000000000000B8 -S3154002709000000000000000000000000000000000A8 -S315400270A00000000000000000000000000000000098 -S315400270B00000000000000000000000000000000088 -S315400270C00000000000000000000000000000000078 -S315400270D00000000000000000000000000000000068 -S315400270E00000000000000000000000000000000058 -S315400270F00000000000000000000000000000000048 -S315400271000000000000000000000000000000000037 -S315400271100000000000000000000000000000000027 -S315400271200000000000000000000000000000000017 -S315400271300000000000000000000000000000000007 -S3154002714000000000000000000000000000000000F7 -S3154002715000000000000000000000000000000000E7 -S3154002716000000000000000000000000000000000D7 -S3154002717000000000000000000000000000000000C7 -S3154002718000000000000000000000000000000000B7 -S3154002719000000000000000000000000000000000A7 -S315400271A00000000000000000000000000000000097 -S315400271B00000000000000000000000000000000087 -S315400271C00000000000000000000000000000000077 -S315400271D00000000000000000000000000000000067 -S315400271E00000000000000000000000000000000057 -S315400271F00000000000000000000000000000000047 -S315400272000000000000000000000000000000000036 -S315400272100000000000000000000000000000000026 -S315400272200000000000000000000000000000000016 -S315400272300000000000000000000000000000000006 -S3154002724000000000000000000000000000000000F6 -S3154002725000000000000000000000000000000000E6 -S3154002726000000000000000000000000000000000D6 -S3154002727000000000000000000000000000000000C6 -S3154002728000000000000000000000000000000000B6 -S3154002729000000000000000000000000000000000A6 -S315400272A00000000000000000000000000000000096 -S315400272B00000000000000000000000000000000086 -S315400272C00000000000000000000000000000000076 -S315400272D00000000000000000000000000000000066 -S315400272E00000000000000000000000000000000056 -S315400272F00000000000000000000000000000000046 -S315400273000000000000000000000000000000000035 -S315400273100000000000000000000000000000000025 -S315400273200000000000000000000000000000000015 -S315400273300000000000000000000000000000000005 -S3154002734000000000000000000000000000000000F5 -S3154002735000000000000000000000000000000000E5 -S3154002736000000000000000000000000000000000D5 -S3154002737000000000000000000000000000000000C5 -S3154002738000000000000000000000000000000000B5 -S3154002739000000000000000000000000000000000A5 -S315400273A00000000000000000000000000000000095 -S315400273B00000000000000000000000000000000085 -S315400273C00000000000000000000000000000000075 -S315400273D00000000000000000000000000000000065 -S315400273E00000000000000000000000000000000055 -S315400273F00000000000000000000000000000000045 -S315400274000000000000000000000000000000000034 -S315400274100000000000000000000000000000000024 -S315400274200000000000000000000000000000000014 -S315400274300000000000000000000000000000000004 -S3154002744000000000000000000000000000000000F4 -S3154002745000000000000000000000000000000000E4 -S3154002746000000000000000000000000000000000D4 -S3154002747000000000000000000000000000000000C4 -S3154002748000000000000000000000000000000000B4 -S3154002749000000000000000000000000000000000A4 -S315400274A00000000000000000000000000000000094 -S315400274B00000000000000000000000000000000084 -S315400274C00000000000000000000000000000000074 -S315400274D00000000000000000000000000000000064 -S315400274E00000000000000000000000000000000054 -S315400274F00000000000000000000000000000000044 -S315400275000000000000000000000000000000000033 -S315400275100000000000000000000000000000000023 -S315400275200000000000000000000000000000000013 -S315400275300000000000000000000000000000000003 -S3154002754000000000000000000000000000000000F3 -S3154002755000000000000000000000000000000000E3 -S3154002756000000000000000000000000000000000D3 -S3154002757000000000000000000000000000000000C3 -S3154002758000000000000000000000000000000000B3 -S3154002759000000000000000000000000000000000A3 -S315400275A00000000000000000000000000000000093 -S315400275B00000000000000000000000000000000083 -S315400275C00000000000000000000000000000000073 -S315400275D00000000000000000000000000000000063 -S315400275E00000000000000000000000000000000053 -S315400275F00000000000000000000000000000000043 -S315400276000000000000000000000000000000000032 -S315400276100000000000000000000000000000000022 -S315400276200000000000000000000000000000000012 -S315400276300000000000000000000000000000000002 -S3154002764000000000000000000000000000000000F2 -S3154002765000000000000000000000000000000000E2 -S3154002766000000000000000000000000000000000D2 -S3154002767000000000000000000000000000000000C2 -S3154002768000000000000000000000000000000000B2 -S3154002769000000000000000000000000000000000A2 -S315400276A00000000000000000000000000000000092 -S315400276B00000000000000000000000000000000082 -S315400276C00000000000000000000000000000000072 -S315400276D00000000000000000000000000000000062 -S315400276E00000000000000000000000000000000052 -S315400276F00000000000000000000000000000000042 -S315400277000000000000000000000000000000000031 -S315400277100000000000000000000000000000000021 -S315400277200000000000000000000000000000000011 -S315400277300000000000000000000000000000000001 -S3154002774000000000000000000000000000000000F1 -S3154002775000000000000000000000000000000000E1 -S3154002776000000000000000000000000000000000D1 -S3154002777000000000000000000000000000000000C1 -S3154002778000000000000000000000000000000000B1 -S3154002779000000000000000000000000000000000A1 -S315400277A00000000000000000000000000000000091 -S315400277B00000000000000000000000000000000081 -S315400277C00000000000000000000000000000000071 -S315400277D00000000000000000000000000000000061 -S315400277E00000000000000000000000000000000051 -S315400277F00000000000000000000000000000000041 -S315400278000000000000000000000000000000000030 -S315400278100000000000000000000000000000000020 -S315400278200000000000000000000000000000000010 -S315400278300000000000000000000000000000000000 -S3154002784000000000000000000000000000000000F0 -S3154002785000000000000000000000000000000000E0 -S3154002786000000000000000000000000000000000D0 -S3154002787000000000000000000000000000000000C0 -S3154002788000000000000000000000000000000000B0 -S3154002789000000000000000000000000000000000A0 -S315400278A00000000000000000000000000000000090 -S315400278B00000000000000000000000000000000080 -S315400278C00000000000000000000000000000000070 -S315400278D00000000000000000000000000000000060 -S315400278E00000000000000000000000000000000050 -S315400278F00000000000000000000000000000000040 -S31540027900000000000000000000000000000000002F -S31540027910000000000000000000000000000000001F -S31540027920000000000000000000000000000000000F -S3154002793000000000000000000000000000000000FF -S3154002794000000000000000000000000000000000EF -S3154002795000000000000000000000000000000000DF -S3154002796000000000000000000000000000000000CF -S3154002797000000000000000000000000000000000BF -S3154002798000000000000000000000000000000000AF -S31540027990000000000000000000000000000000009F -S315400279A0000000000000000000000000000000008F -S315400279B0000000000000000000000000000000007F -S315400279C0000000000000000000000000000000006F -S315400279D0000000000000000000000000000000005F -S315400279E0000000000000000000000000000000004F -S315400279F0000000000000000000000000000000003F -S31540027A00000000000000000000000000000000002E -S31540027A10000000000000000000000000000000001E -S31540027A20000000000000000000000000000000000E -S31540027A3000000000000000000000000000000000FE -S31540027A4000000000000000000000000000000000EE -S31540027A5000000000000000000000000000000000DE -S31540027A6000000000000000000000000000000000CE -S31540027A7000000000000000000000000000000000BE -S31540027A8000000000000000000000000000000000AE -S31540027A90000000000000000000000000000000009E -S31540027AA0000000000000000000000000000000008E -S31540027AB0000000000000000000000000000000007E -S31540027AC0000000000000000000000000000000006E -S31540027AD0000000000000000000000000000000005E -S31540027AE0000000000000000000000000000000004E -S31540027AF0000000000000000000000000000000003E -S31540027B00000000000000000000000000000000002D -S31540027B10000000000000000000000000000000001D -S31540027B20000000000000000000000000000000000D -S31540027B3000000000000000000000000000000000FD -S31540027B4000000000000000000000000000000000ED -S31540027B5000000000000000000000000000000000DD -S31540027B6000000000000000000000000000000000CD -S31540027B7000000000000000000000000000000000BD -S31540027B8000000000000000000000000000000000AD -S31540027B90000000000000000000000000000000009D -S31540027BA0000000000000000000000000000000008D -S31540027BB0000000000000000000000000000000007D -S31540027BC0000000000000000000000000000000006D -S31540027BD0000000000000000000000000000000005D -S31540027BE0000000000000000000000000000000004D -S31540027BF0000000000000000000000000000000003D -S31540027C00000000000000000000000000000000002C -S31540027C10000000000000000000000000000000001C -S31540027C20000000000000000000000000000000000C -S31540027C3000000000000000000000000000000000FC -S31540027C4000000000000000000000000000000000EC -S31540027C5000000000000000000000000000000000DC -S31540027C6000000000000000000000000000000000CC -S31540027C7000000000000000000000000000000000BC -S31540027C8000000000000000000000000000000000AC -S31540027C90000000000000000000000000000000009C -S31540027CA0000000000000000000000000000000008C -S31540027CB0000000000000000000000000000000007C -S31540027CC0000000000000000000000000000000006C -S31540027CD0000000000000000000000000000000005C -S31540027CE0000000000000000000000000000000004C -S31540027CF0000000000000000000000000000000003C -S31540027D00000000000000000000000000000000002B -S31540027D10000000000000000000000000000000001B -S31540027D20000000000000000000000000000000000B -S31540027D3000000000000000000000000000000000FB -S31540027D4000000000000000000000000000000000EB -S31540027D5000000000000000000000000000000000DB -S31540027D6000000000000000000000000000000000CB -S31540027D7000000000000000000000000000000000BB -S31540027D8000000000000000000000000000000000AB -S31540027D90000000000000000000000000000000009B -S31540027DA0000000000000000000000000000000008B -S31540027DB0000000000000000000000000000000007B -S31540027DC0000000000000000000000000000000006B -S31540027DD0000000000000000000000000000000005B -S31540027DE0000000000000000000000000000000004B -S31540027DF0000000000000000000000000000000003B -S31540027E00000000000000000000000000000000002A -S31540027E10000000000000000000000000000000001A -S31540027E20000000000000000000000000000000000A -S31540027E3000000000000000000000000000000000FA -S31540027E4000000000000000000000000000000000EA -S31540027E5000000000000000000000000000000000DA -S31540027E6000000000000000000000000000000000CA -S31540027E7000000000000000000000000000000000BA -S31540027E8000000000000000000000000000000000AA -S31540027E90000000000000000000000000000000009A -S31540027EA0000000000000000000000000000000008A -S31540027EB0000000000000000000000000000000007A -S31540027EC0000000000000000000000000000000006A -S31540027ED0000000000000000000000000000000005A -S31540027EE0000000000000000000000000000000004A -S31540027EF0000000000000000000000000000000003A -S31540027F000000000000000000000000000000000029 -S31540027F100000000000000000000000000000000019 -S31540027F200000000000000000000000000000000009 -S31540027F3000000000000000000000000000000000F9 -S31540027F4000000000000000000000000000000000E9 -S31540027F5000000000000000000000000000000000D9 -S31540027F6000000000000000000000000000000000C9 -S31540027F7000000000000000000000000000000000B9 -S31540027F8000000000000000000000000000000000A9 -S31540027F900000000000000000000000000000000099 -S31540027FA00000000000000000000000000000000089 -S31540027FB00000000000000000000000000000000079 -S31540027FC00000000000000000000000000000000069 -S31540027FD00000000000000000000000000000000059 -S31540027FE00000000000000000000000000000000049 -S31540027FF00000000000000000000000000000000039 -S315400280000000003F0000000C0000003F000000128C -S31540028010000000FF00000018000000000000000001 -S315400280200000000000000000000000000000000008 -S3154002803000000000000000000000000000000000F8 -S3154002804000000000000000000000000000000000E8 -S3154002805000000000000000000000000000000000D8 -S3154002806000000000000000000000000000000000C8 -S3154002807000000000000000000000000000000000B8 -S3154002808000000000000000000000000000000000A8 -S315400280900000000000000000000000000000000098 -S315400280A00000000000000000000000000000000088 -S315400280B00000000000000000000000000000000078 -S315400280C00000000000000000000000000000000068 -S315400280D00000000000000000000000000000000058 -S315400280E00000000000000000000000000000000048 -S315400280F00000000000000000000000000000000038 -S315400281000000000000000000000000000000000027 -S315400281100000000000000000000000000000000017 -S315400281200000000000000000000000000000000007 -S3154002813000000000000000000000000000000000F7 -S3154002814000000000000000000000000000000000E7 -S3154002815000000000000000000000000000000000D7 -S3154002816000000000000000000000000000000000C7 -S3154002817000000000000000000000000000000000B7 -S3154002818000000000000000000000000000000000A7 -S315400281900000000000000000000000000000000097 -S315400281A00000000000000000000000000000000087 -S315400281B00000000000000000000000000000000077 -S315400281C00000000000000000000000000000000067 -S315400281D00000000000000000000000000000000057 -S315400281E00000000000000000000000000000000047 -S315400281F00000000000000000000000000000000037 -S315400282000000000000000000000000000000000026 -S315400282100000000000000000000000000000000016 -S315400282200000000000000000000000000000000006 -S3154002823000000000000000000000000000000000F6 -S3154002824000000000000000000000000000000000E6 -S3154002825000000000000000000000000000000000D6 -S3154002826000000000000000000000000000000000C6 -S3154002827000000000000000000000000000000000B6 -S3154002828000000000000000000000000000000000A6 -S315400282900000000000000000000000000000000096 -S315400282A00000000000000000000000000000000086 -S315400282B00000000000000000000000000000000076 -S315400282C00000000000000000000000000000000066 -S315400282D00000000000000000000000000000000056 -S315400282E00000000000000000000000000000000046 -S315400282F00000000000000000000000000000000036 -S315400283000000000000000000000000000000000025 -S315400283100000000000000000000000000000000015 -S315400283200000000000000000000000000000000005 -S3154002833000000000000000000000000000000000F5 -S3154002834000000000000000000000000000000000E5 -S3154002835000000000000000000000000000000000D5 -S3154002836000000000000000000000000000000000C5 -S3154002837000000000000000000000000000000000B5 -S3154002838000000000000000000000000000000000A5 -S315400283900000000000000000000000000000000095 -S315400283A00000000000000000000000000000000085 -S315400283B00000000000000000000000000000000075 -S315400283C00000000000000000000000000000000065 -S315400283D00000000000000000000000000000000055 -S315400283E00000000000000000000000000000000045 -S315400283F00000000000000000000000000000000035 -S315400284000000000000000000000000000000000024 -S315400284100000000000000000000000000000000014 -S315400284200000000000000000000000000000000004 -S3154002843000000000000000000000000000000000F4 -S3154002844000000000000000000000000000000000E4 -S3154002845000000000000000000000000000000000D4 -S3154002846000000000000000000000000000000000C4 -S3154002847000000000000000000000000000000000B4 -S3154002848000000000000000000000000000000000A4 -S315400284900000000000000000000000000000000094 -S315400284A00000000000000000000000000000000084 -S315400284B00000000000000000000000000000000074 -S315400284C00000000000000000000000000000000064 -S315400284D00000000000000000000000000000000054 -S315400284E00000000000000000000000000000000044 -S315400284F00000000000000000000000000000000034 -S315400285000000000000000000000000000000000023 -S315400285100000000000000000000000000000000013 -S315400285200000000000000000000000000000000003 -S3154002853000000000000000000000000000000000F3 -S3154002854000000000000000000000000000000000E3 -S3154002855000000000000000000000000000000000D3 -S3154002856000000000000000000000000000000000C3 -S3154002857000000000000000000000000000000000B3 -S3154002858000000000000000000000000000000000A3 -S315400285900000000000000000000000000000000093 -S315400285A00000000000000000000000000000000083 -S315400285B00000000000000000000000000000000073 -S315400285C00000000000000000000000000000000063 -S315400285D00000000000000000000000000000000053 -S315400285E00000000000000000000000000000000043 -S315400285F00000000000000000000000000000000033 -S315400286000000000000000000000000000000000022 -S315400286100000000000000000000000000000000012 -S315400286200000000000000000000000000000000002 -S3154002863000000000000000000000000000000000F2 -S3154002864000000000000000000000000000000000E2 -S3154002865000000000000000000000000000000000D2 -S3154002866000000000000000000000000000000000C2 -S3154002867000000000000000000000000000000000B2 -S3154002868000000000000000000000000000000000A2 -S315400286900000000000000000000000000000000092 -S315400286A00000000000000000000000000000000082 -S315400286B00000000000000000000000000000000072 -S315400286C00000000000000000000000000000000062 -S315400286D00000000000000000000000000000000052 -S315400286E00000000000000000000000000000000042 -S315400286F00000000000000000000000000000000032 -S315400287000000000000000000000000000000000021 -S315400287100000000000000000000000000000000011 -S315400287200000000000000000000000000000000001 -S3154002873000000000000000000000000000000000F1 -S3154002874000000000000000000000000000000000E1 -S3154002875000000000000000000000000000000000D1 -S3154002876000000000000000000000000000000000C1 -S3154002877000000000000000000000000000000000B1 -S3154002878000000000000000000000000000000000A1 -S315400287900000000000000000000000000000000091 -S315400287A00000000000000000000000000000000081 -S315400287B00000000000000000000000000000000071 -S315400287C00000000000000000000000000000000061 -S315400287D00000000000000000000000000000000051 -S315400287E00000000000000000000000000000000041 -S315400287F00000000000000000000000000000000031 -S315400288000000000000000000000000000000000020 -S315400288100000000000000000000000000000000010 -S315400288200000000000000000000000000000000000 -S3154002883000000000000000000000000000000000F0 -S3154002884000000000000000000000000000000000E0 -S3154002885000000000000000000000000000000000D0 -S3154002886000000000000000000000000000000000C0 -S3154002887000000000000000000000000000000000B0 -S3154002888000000000000000000000000000000000A0 -S315400288900000000000000000000000000000000090 -S315400288A00000000000000000000000000000000080 -S315400288B00000000000000000000000000000000070 -S315400288C00000000000000000000000000000000060 -S315400288D00000000000000000000000000000000050 -S315400288E00000000000000000000000000000000040 -S315400288F00000000000000000000000000000000030 -S31540028900000000000000000000000000000000001F -S31540028910000000000000000000000000000000000F -S3154002892000000000000000000000000000000000FF -S3154002893000000000000000000000000000000000EF -S3154002894000000000000000000000000000000000DF -S3154002895000000000000000000000000000000000CF -S3154002896000000000000000000000000000000000BF -S3154002897000000000000000000000000000000000AF -S31540028980000000000000000000000000000000009F -S31540028990000000000000000000000000000000008F -S315400289A0000000000000000000000000000000007F -S315400289B0000000000000000000000000000000006F -S315400289C0000000000000000000000000000000005F -S315400289D0000000000000000000000000000000004F -S315400289E0000000000000000000000000000000003F -S315400289F0000000000000000000000000000000002F -S31540028A00000000000000000000000000000000001E -S31540028A10000000000000000000000000000000000E -S31540028A2000000000000000000000000000000000FE -S31540028A3000000000000000000000000000000000EE -S31540028A4000000000000000000000000000000000DE -S31540028A5000000000000000000000000000000000CE -S31540028A6000000000000000000000000000000000BE -S31540028A7000000000000000000000000000000000AE -S31540028A80000000000000000000000000000000009E -S31540028A90000000000000000000000000000000008E -S31540028AA0000000000000000000000000000000007E -S31540028AB0000000000000000000000000000000006E -S31540028AC0000000000000000000000000000000005E -S31540028AD0000000000000000000000000000000004E -S31540028AE0000000000000000000000000000000003E -S31540028AF0000000000000000000000000000000002E -S31540028B00000000000000000000000000000000001D -S31540028B10000000000000000000000000000000000D -S31540028B2000000000000000000000000000000000FD -S31540028B3000000000000000000000000000000000ED -S31540028B4000000000000000000000000000000000DD -S31540028B5000000000000000000000000000000000CD -S31540028B6000000000000000000000000000000000BD -S31540028B7000000000000000000000000000000000AD -S31540028B80000000000000000000000000000000009D -S31540028B90000000000000000000000000000000008D -S31540028BA0000000000000000000000000000000007D -S31540028BB0000000000000000000000000000000006D -S31540028BC0000000000000000000000000000000005D -S31540028BD0000000000000000000000000000000004D -S31540028BE0000000000000000000000000000000003D -S31540028BF0000000000000000000000000000000002D -S31540028C00000000000000000000000000000000001C -S31540028C10000000000000000000000000000000000C -S31540028C2000000000000000000000000000000000FC -S31540028C3000000000000000000000000000000000EC -S31540028C4000000000000000000000000000000000DC -S31540028C5000000000000000000000000000000000CC -S31540028C6000000000000000000000000000000000BC -S31540028C7000000000000000000000000000000000AC -S31540028C80000000000000000000000000000000009C -S31540028C90000000000000000000000000000000008C -S31540028CA0000000000000000000000000000000007C -S31540028CB0000000000000000000000000000000006C -S31540028CC0000000000000000000000000000000005C -S31540028CD0000000000000000000000000000000004C -S31540028CE0000000000000000000000000000000003C -S31540028CF0000000000000000000000000000000002C -S31540028D00000000000000000000000000000000001B -S31540028D10000000000000000000000000000000000B -S31540028D2000000000000000000000000000000000FB -S31540028D3000000000000000000000000000000000EB -S31540028D4000000000000000000000000000000000DB -S31540028D5000000000000000000000000000000000CB -S31540028D6000000000000000000000000000000000BB -S31540028D7000000000000000000000000000000000AB -S31540028D80000000000000000000000000000000009B -S31540028D90000000000000000000000000000000008B -S31540028DA0000000000000000000000000000000007B -S31540028DB0000000000000000000000000000000006B -S31540028DC0000000000000000000000000000000005B -S31540028DD0000000000000000000000000000000004B -S31540028DE0000000000000000000000000000000003B -S31540028DF0000000000000000000000000000000002B -S31540028E00000000000000000000000000000000001A -S31540028E10000000000000000000000000000000000A -S31540028E2000000000000000000000000000000000FA -S31540028E3000000000000000000000000000000000EA -S31540028E4000000000000000000000000000000000DA -S31540028E5000000000000000000000000000000000CA -S31540028E6000000000000000000000000000000000BA -S31540028E7000000000000000000000000000000000AA -S31540028E80000000000000000000000000000000009A -S31540028E90000000000000000000000000000000008A -S31540028EA0000000000000000000000000000000007A -S31540028EB0000000000000000000000000000000006A -S31540028EC0000000000000000000000000000000005A -S31540028ED0000000000000000000000000000000004A -S31540028EE0000000000000000000000000000000003A -S31540028EF0000000000000000000000000000000002A -S31540028F000000000000000000000000000000000019 -S31540028F100000000000000000000000000000000009 -S31540028F2000000000000000000000000000000000F9 -S31540028F3000000000000000000000000000000000E9 -S31540028F4000000000000000000000000000000000D9 -S31540028F5000000000000000000000000000000000C9 -S31540028F6000000000000000000000000000000000B9 -S31540028F7000000000000000000000000000000000A9 -S31540028F800000000000000000000000000000000099 -S31540028F900000000000000000000000000000000089 -S31540028FA00000000000000000000000000000000079 -S31540028FB00000000000000000000000000000000069 -S31540028FC00000000000000000000000000000000059 -S31540028FD00000000000000000000000000000000049 -S31540028FE00000000000000000000000000000000039 -S31540028FF00000000000000000000000000000000029 -S315400290000000000000000000000000000000000018 -S315400290100000000000000000000000000000000008 -S3154002902000000000000000000000000000000000F8 -S3154002903000000000000000000000000000000000E8 -S3154002904000000000000000000000000000000000D8 -S3154002905000000000000000000000000000000000C8 -S3154002906000000000000000000000000000000000B8 -S3154002907000000000000000000000000000000000A8 -S315400290800000000000000000000000000000000098 -S315400290900000000000000000000000000000000088 -S315400290A00000000000000000000000000000000078 -S315400290B00000000000000000000000000000000068 -S315400290C00000000000000000000000000000000058 -S315400290D00000000000000000000000000000000048 -S315400290E00000000000000000000000000000000038 -S315400290F00000000000000000000000000000000028 -S315400291000000000000000000000000000000000017 -S315400291100000000000000000000000000000000007 -S3154002912000000000000000000000000000000000F7 -S3154002913000000000000000000000000000000000E7 -S3154002914000000000000000000000000000000000D7 -S3154002915000000000000000000000000000000000C7 -S3154002916000000000000000000000000000000000B7 -S3154002917000000000000000000000000000000000A7 -S315400291800000000000000000000000000000000097 -S315400291900000000000000000000000000000000087 -S315400291A00000000000000000000000000000000077 -S315400291B00000000000000000000000000000000067 -S315400291C00000000000000000000000000000000057 -S315400291D00000000000000000000000000000000047 -S315400291E00000000000000000000000000000000037 -S315400291F00000000000000000000000000000000027 -S315400292000000000000000000000000000000000016 -S315400292100000000000000000000000000000000006 -S3154002922000000000000000000000000000000000F6 -S3154002923000000000000000000000000000000000E6 -S3154002924000000000000000000000000000000000D6 -S3154002925000000000000000000000000000000000C6 -S3154002926000000000000000000000000000000000B6 -S3154002927000000000000000000000000000000000A6 -S315400292800000000000000000000000000000000096 -S315400292900000000000000000000000000000000086 -S315400292A00000000000000000000000000000000076 -S315400292B00000000000000000000000000000000066 -S315400292C00000000000000000000000000000000056 -S315400292D00000000000000000000000000000000046 -S315400292E00000000000000000000000000000000036 -S315400292F00000000000000000000000000000000026 -S315400293000000000000000000000000000000000015 -S315400293100000000000000000000000000000000005 -S3154002932000000000000000000000000000000000F5 -S3154002933000000000000000000000000000000000E5 -S3154002934000000000000000000000000000000000D5 -S3154002935000000000000000000000000000000000C5 -S3154002936000000000000000000000000000000000B5 -S3154002937000000000000000000000000000000000A5 -S315400293800000000000000000000000000000000095 -S315400293900000000000000000000000000000000085 -S315400293A00000000000000000000000000000000075 -S315400293B00000000000000000000000000000000065 -S315400293C00000000000000000000000000000000055 -S315400293D00000000000000000000000000000000045 -S315400293E00000000000000000000000000000000035 -S315400293F00000000000000000000000000000000025 -S315400294000000000000000000000000000000000014 -S315400294100000000000000000000000000000000004 -S3154002942000000000000000000000000000000000F4 -S3154002943000000000000000000000000000000000E4 -S3154002944000000000000000000000000000000000D4 -S3154002945000000000000000000000000000000000C4 -S3154002946000000000000000000000000000000000B4 -S3154002947000000000000000000000000000000000A4 -S315400294800000000000000000000000000000000094 -S315400294900000000000000000000000000000000084 -S315400294A00000000000000000000000000000000074 -S315400294B00000000000000000000000000000000064 -S315400294C00000000000000000000000000000000054 -S315400294D00000000000000000000000000000000044 -S315400294E00000000000000000000000000000000034 -S315400294F00000000000000000000000000000000024 -S315400295000000000000000000000000000000000013 -S315400295100000000000000000000000000000000003 -S3154002952000000000000000000000000000000000F3 -S3154002953000000000000000000000000000000000E3 -S3154002954000000000000000000000000000000000D3 -S3154002955000000000000000000000000000000000C3 -S3154002956000000000000000000000000000000000B3 -S3154002957000000000000000000000000000000000A3 -S315400295800000000000000000000000000000000093 -S315400295900000000000000000000000000000000083 -S315400295A00000000000000000000000000000000073 -S315400295B00000000000000000000000000000000063 -S315400295C00000000000000000000000000000000053 -S315400295D00000000000000000000000000000000043 -S315400295E00000000000000000000000000000000033 -S315400295F00000000000000000000000000000000023 -S315400296000000000000000000000000000000000012 -S315400296100000000000000000000000000000000002 -S3154002962000000000000000000000000000000000F2 -S3154002963000000000000000000000000000000000E2 -S3154002964000000000000000000000000000000000D2 -S3154002965000000000000000000000000000000000C2 -S3154002966000000000000000000000000000000000B2 -S3154002967000000000000000000000000000000000A2 -S315400296800000000000000000000000000000000092 -S315400296900000000000000000000000000000000082 -S315400296A00000000000000000000000000000000072 -S315400296B00000000000000000000000000000000062 -S315400296C00000000000000000000000000000000052 -S315400296D00000000000000000000000000000000042 -S315400296E00000000000000000000000000000000032 -S315400296F00000000000000000000000000000000022 -S315400297000000000000000000000000000000000011 -S315400297100000000000000000000000000000000001 -S3154002972000000000000000000000000000000000F1 -S3154002973000000000000000000000000000000000E1 -S3154002974000000000000000000000000000000000D1 -S3154002975000000000000000000000000000000000C1 -S3154002976000000000000000000000000000000000B1 -S3154002977000000000000000000000000000000000A1 -S315400297800000000000000000000000000000000091 -S315400297900000000000000000000000000000000081 -S315400297A00000000000000000000000000000000071 -S315400297B00000000000000000000000000000000061 -S315400297C00000000000000000000000000000000051 -S315400297D00000000000000000000000000000000041 -S315400297E00000000000000000000000000000000031 -S315400297F00000000000000000000000000000000021 -S315400298000000000000000000000000000000000010 -S315400298100000000000000000000000000000000000 -S3154002982000000000000000000000000000000000F0 -S3154002983000000000000000000000000000000000E0 -S3154002984000000000000000000000000000000000D0 -S3154002985000000000000000000000000000000000C0 -S3154002986000000000000000000000000000000000B0 -S3154002987000000000000000000000000000000000A0 -S315400298800000000000000000000000000000000090 -S315400298900000000000000000000000000000000080 -S315400298A00000000000000000000000000000000070 -S315400298B00000000000000000000000000000000060 -S315400298C00000000000000000000000000000000050 -S315400298D00000000000000000000000000000000040 -S315400298E00000000000000000000000000000000030 -S315400298F00000000000000000000000000000000020 -S31540029900000000000000000000000000000000000F -S3154002991000000000000000000000000000000000FF -S3154002992000000000000000000000000000000000EF -S3154002993000000000000000000000000000000000DF -S3154002994000000000000000000000000000000000CF -S3154002995000000000000000000000000000000000BF -S3154002996000000000000000000000000000000000AF -S31540029970000000000000000000000000000000009F -S31540029980000000000000000000000000000000008F -S31540029990000000000000000000000000000000007F -S315400299A0000000000000000000000000000000006F -S315400299B0000000000000000000000000000000005F -S315400299C0000000000000000000000000000000004F -S315400299D0000000000000000000000000000000003F -S315400299E0000000000000000000000000000000002F -S315400299F0000000000000000000000000000000001F -S31540029A00000000000000000000000000000000000E -S31540029A1000000000000000000000000000000000FE -S31540029A2000000000000000000000000000000000EE -S31540029A3000000000000000000000000000000000DE -S31540029A4000000000000000000000000000000000CE -S31540029A5000000000000000000000000000000000BE -S31540029A6000000000000000000000000000000000AE -S31540029A70000000000000000000000000000000009E -S31540029A80000000000000000000000000000000008E -S31540029A90000000000000000000000000000000007E -S31540029AA0000000000000000000000000000000006E -S31540029AB0000000000000000000000000000000005E -S31540029AC0000000000000000000000000000000004E -S31540029AD0000000000000000000000000000000003E -S31540029AE0000000000000000000000000000000002E -S31540029AF0000000000000000000000000000000001E -S31540029B00000000000000000000000000000000000D -S31540029B1000000000000000000000000000000000FD -S31540029B2000000000000000000000000000000000ED -S31540029B3000000000000000000000000000000000DD -S31540029B4000000000000000000000000000000000CD -S31540029B5000000000000000000000000000000000BD -S31540029B6000000000000000000000000000000000AD -S31540029B70000000000000000000000000000000009D -S31540029B80000000000000000000000000000000008D -S31540029B90000000000000000000000000000000007D -S31540029BA0000000000000000000000000000000006D -S31540029BB0000000000000000000000000000000005D -S31540029BC0000000000000000000000000000000004D -S31540029BD0000000000000000000000000000000003D -S31540029BE0000000000000000000000000000000002D -S31540029BF0000000000000000000000000000000001D -S31540029C00000000000000000000000000000000000C -S31540029C1000000000000000000000000000000000FC -S31540029C2000000000000000000000000000000000EC -S31540029C3000000000000000000000000000000000DC -S31540029C4000000000000000000000000000000000CC -S31540029C5000000000000000000000000000000000BC -S31540029C6000000000000000000000000000000000AC -S31540029C70000000000000000000000000000000009C -S31540029C80000000000000000000000000000000008C -S31540029C90000000000000000000000000000000007C -S31540029CA0000000000000000000000000000000006C -S31540029CB0000000000000000000000000000000005C -S31540029CC0000000000000000000000000000000004C -S31540029CD0000000000000000000000000000000003C -S31540029CE0000000000000000000000000000000002C -S31540029CF0000000000000000000000000000000001C -S31540029D00000000000000000000000000000000000B -S31540029D1000000000000000000000000000000000FB -S31540029D2000000000000000000000000000000000EB -S31540029D3000000000000000000000000000000000DB -S31540029D4000000000000000000000000000000000CB -S31540029D5000000000000000000000000000000000BB -S31540029D6000000000000000000000000000000000AB -S31540029D70000000000000000000000000000000009B -S31540029D80000000000000000000000000000000008B -S31540029D90000000000000000000000000000000007B -S31540029DA0000000000000000000000000000000006B -S31540029DB0000000000000000000000000000000005B -S31540029DC0000000000000000000000000000000004B -S31540029DD0000000000000000000000000000000003B -S31540029DE0000000000000000000000000000000002B -S31540029DF0000000000000000000000000000000001B -S31540029E00000000000000000000000000000000000A -S31540029E1000000000000000000000000000000000FA -S31540029E2000000000000000000000000000000000EA -S31540029E3000000000000000000000000000000000DA -S31540029E4000000000000000000000000000000000CA -S31540029E5000000000000000000000000000000000BA -S31540029E6000000000000000000000000000000000AA -S31540029E70000000000000000000000000000000009A -S31540029E80000000000000000000000000000000008A -S31540029E90000000000000000000000000000000007A -S31540029EA0000000000000000000000000000000006A -S31540029EB0000000000000000000000000000000005A -S31540029EC0000000000000000000000000000000004A -S31540029ED0000000000000000000000000000000003A -S31540029EE0000000000000000000000000000000002A -S31540029EF0000000000000000000000000000000001A -S31540029F000000000000000000000000000000000009 -S31540029F1000000000000000000000000000000000F9 -S31540029F2000000000000000000000000000000000E9 -S31540029F3000000000000000000000000000000000D9 -S31540029F4000000000000000000000000000000000C9 -S31540029F5000000000000000000000000000000000B9 -S31540029F6000000000000000000000000000000000A9 -S31540029F700000000000000000000000000000000099 -S31540029F800000000000000000000000000000000089 -S31540029F900000000000000000000000000000000079 -S31540029FA00000000000000000000000000000000069 -S31540029FB00000000000000000000000000000000059 -S31540029FC00000000000000000000000000000000049 -S31540029FD00000000000000000000000000000000039 -S31540029FE00000000000000000000000000000000029 -S31540029FF00000000000000000000000000000000019 -S3154002A0000000000000000000000000000000000008 -S3154002A01000000000000000000000000000000000F8 -S3154002A02000000000000000000000000000000000E8 -S3154002A03000000000000000000000000000000000D8 -S3154002A04000000000000000000000000000000000C8 -S3154002A05000000000000000000000000000000000B8 -S3154002A06000000000000000000000000000000000A8 -S3154002A0700000000000000000000000000000000098 -S3154002A0800000000000000000000000000000000088 -S3154002A0900000000000000000000000000000000078 -S3154002A0A00000000000000000000000000000000068 -S3154002A0B00000000000000000000000000000000058 -S3154002A0C00000000000000000000000000000000048 -S3154002A0D00000000000000000000000000000000038 -S3154002A0E00000000000000000000000000000000028 -S3154002A0F00000000000000000000000000000000018 -S3154002A1000000000000000000000000000000000007 -S3154002A11000000000000000000000000000000000F7 -S3154002A12000000000000000000000000000000000E7 -S3154002A13000000000000000000000000000000000D7 -S3154002A14000000000000000000000000000000000C7 -S3154002A15000000000000000000000000000000000B7 -S3154002A16000000000000000000000000000000000A7 -S3154002A1700000000000000000000000000000000097 -S3154002A1800000000000000000000000000000000087 -S3154002A1900000000000000000000000000000000077 -S3154002A1A00000000000000000000000000000000067 -S3154002A1B00000000000000000000000000000000057 -S3154002A1C00000000000000000000000000000000047 -S3154002A1D00000000000000000000000000000000037 -S3154002A1E00000000000000000000000000000000027 -S3154002A1F00000000000000000000000000000000017 -S3154002A2000000000000000000000000000000000006 -S3154002A21000000000000000000000000000000000F6 -S3154002A22000000000000000000000000000000000E6 -S3154002A23000000000000000000000000000000000D6 -S3154002A24000000000000000000000000000000000C6 -S3154002A25000000000000000000000000000000000B6 -S3154002A26000000000000000000000000000000000A6 -S3154002A2700000000000000000000000000000000096 -S3154002A2800000000000000000000000000000000086 -S3154002A2900000000000000000000000000000000076 -S3154002A2A00000000000000000000000000000000066 -S3154002A2B00000000000000000000000000000000056 -S3154002A2C00000000000000000000000000000000046 -S3154002A2D00000000000000000000000000000000036 -S3154002A2E00000000000000000000000000000000026 -S3154002A2F00000000000000000000000000000000016 -S3154002A3000000000000000000000000000000000005 -S3154002A31000000000000000000000000000000000F5 -S3154002A32000000000000000000000000000000000E5 -S3154002A33000000000000000000000000000000000D5 -S3154002A34000000000000000000000000000000000C5 -S3154002A35000000000000000000000000000000000B5 -S3154002A36000000000000000000000000000000000A5 -S3154002A3700000000000000000000000000000000095 -S3154002A3800000000000000000000000000000000085 -S3154002A3900000000000000000000000000000000075 -S3154002A3A00000000000000000000000000000000065 -S3154002A3B00000000000000000000000000000000055 -S3154002A3C00000000000000000000000000000000045 -S3154002A3D00000000000000000000000000000000035 -S3154002A3E00000000000000000000000000000000025 -S3154002A3F00000000000000000000000000000000015 -S3154002A4000000000000000000000000000000000004 -S3154002A41000000000000000000000000000000000F4 -S3154002A42000000000000000000000000000000000E4 -S3154002A43000000000000000000000000000000000D4 -S3154002A44000000000000000000000000000000000C4 -S3154002A45000000000000000000000000000000000B4 -S3154002A46000000000000000000000000000000000A4 -S3154002A4700000000000000000000000000000000094 -S3154002A4800000000000000000000000000000000084 -S3154002A4900000000000000000000000000000000074 -S3154002A4A00000000000000000000000000000000064 -S3154002A4B00000000000000000000000000000000054 -S3154002A4C00000000000000000000000000000000044 -S3154002A4D00000000000000000000000000000000034 -S3154002A4E00000000000000000000000000000000024 -S3154002A4F00000000000000000000000000000000014 -S3154002A5000000000000000000000000000000000003 -S3154002A51000000000000000000000000000000000F3 -S3154002A52000000000000000000000000000000000E3 -S3154002A53000000000000000000000000000000000D3 -S3154002A54000000000000000000000000000000000C3 -S3154002A55000000000000000000000000000000000B3 -S3154002A56000000000000000000000000000000000A3 -S3154002A5700000000000000000000000000000000093 -S3154002A5800000000000000000000000000000000083 -S3154002A5900000000000000000000000000000000073 -S3154002A5A00000000000000000000000000000000063 -S3154002A5B00000000000000000000000000000000053 -S3154002A5C00000000000000000000000000000000043 -S3154002A5D00000000000000000000000000000000033 -S3154002A5E00000000000000000000000000000000023 -S3154002A5F00000000000000000000000000000000013 -S3154002A6000000000000000000000000000000000002 -S3154002A61000000000000000000000000000000000F2 -S3154002A62000000000000000000000000000000000E2 -S3154002A63000000000000000000000000000000000D2 -S3154002A64000000000000000000000000000000000C2 -S3154002A65000000000000000000000000000000000B2 -S3154002A66000000000000000000000000000000000A2 -S3154002A6700000000000000000000000000000000092 -S3154002A6800000000000000000000000000000000082 -S3154002A6900000000000000000000000000000000072 -S3154002A6A00000000000000000000000000000000062 -S3154002A6B00000000000000000000000000000000052 -S3154002A6C00000000000000000000000000000000042 -S3154002A6D00000000000000000000000000000000032 -S3154002A6E00000000000000000000000000000000022 -S3154002A6F00000000000000000000000000000000012 -S3154002A7000000000000000000000000000000000001 -S3154002A71000000000000000000000000000000000F1 -S3154002A72000000000000000000000000000000000E1 -S3154002A73000000000000000000000000000000000D1 -S3154002A74000000000000000000000000000000000C1 -S3154002A75000000000000000000000000000000000B1 -S3154002A76000000000000000000000000000000000A1 -S3154002A7700000000000000000000000000000000091 -S3154002A7800000000000000000000000000000000081 -S3154002A7900000000000000000000000000000000071 -S3154002A7A00000000000000000000000000000000061 -S3154002A7B00000000000000000000000000000000051 -S3154002A7C00000000000000000000000000000000041 -S3154002A7D00000000000000000000000000000000031 -S3154002A7E00000000000000000000000000000000021 -S3154002A7F00000000000000000000000000000000011 -S3154002A8000000000000000000000000000000000000 -S3154002A81000000000000000000000000000000000F0 -S3154002A82000000000000000000000000000000000E0 -S3154002A83000000000000000000000000000000000D0 -S3154002A84000000000000000000000000000000000C0 -S3154002A85000000000000000000000000000000000B0 -S3154002A86000000000000000000000000000000000A0 -S3154002A8700000000000000000000000000000000090 -S3154002A8800000000000000000000000000000000080 -S3154002A8900000000000000000000000000000000070 -S3154002A8A00000000000000000000000000000000060 -S3154002A8B00000000000000000000000000000000050 -S3154002A8C00000000000000000000000000000000040 -S3154002A8D00000000000000000000000000000000030 -S3154002A8E00000000000000000000000000000000020 -S3154002A8F00000000000000000000000000000000010 -S3154002A90000000000000000000000000000000000FF -S3154002A91000000000000000000000000000000000EF -S3154002A92000000000000000000000000000000000DF -S3154002A93000000000000000000000000000000000CF -S3154002A94000000000000000000000000000000000BF -S3154002A95000000000000000000000000000000000AF -S3154002A960000000000000000000000000000000009F -S3154002A970000000000000000000000000000000008F -S3154002A980000000000000000000000000000000007F -S3154002A990000000000000000000000000000000006F -S3154002A9A0000000000000000000000000000000005F -S3154002A9B0000000000000000000000000000000004F -S3154002A9C0000000000000000000000000000000003F -S3154002A9D0000000000000000000000000000000002F -S3154002A9E0000000000000000000000000000000001F -S3154002A9F0000000000000000000000000000000000F -S3154002AA0000000000000000000000000000000000FE -S3154002AA1000000000000000000000000000000000EE -S3154002AA2000000000000000000000000000000000DE -S3154002AA3000000000000000000000000000000000CE -S3154002AA4000000000000000000000000000000000BE -S3154002AA5000000000000000000000000000000000AE -S3154002AA60000000000000000000000000000000009E -S3154002AA70000000000000000000000000000000008E -S3154002AA80000000000000000000000000000000007E -S3154002AA90000000000000000000000000000000006E -S3154002AAA0000000000000000000000000000000005E -S3154002AAB0000000000000000000000000000000004E -S3154002AAC0000000000000000000000000000000003E -S3154002AAD0000000000000000000000000000000002E -S3154002AAE0000000000000000000000000000000001E -S3154002AAF0000000000000000000000000000000000E -S3154002AB0000000000000000000000000000000000FD -S3154002AB1000000000000000000000000000000000ED -S3154002AB2000000000000000000000000000000000DD -S3154002AB3000000000000000000000000000000000CD -S3154002AB4000000000000000000000000000000000BD -S3154002AB5000000000000000000000000000000000AD -S3154002AB60000000000000000000000000000000009D -S3154002AB70000000000000000000000000000000008D -S3154002AB80000000000000000000000000000000007D -S3154002AB90000000000000000000000000000000006D -S3154002ABA0000000000000000000000000000000005D -S3154002ABB0000000000000000000000000000000004D -S3154002ABC0000000000000000000000000000000003D -S3154002ABD0000000000000000000000000000000002D -S3154002ABE0000000000000000000000000000000001D -S3154002ABF0000000000000000000000000000000000D -S3154002AC0000000000000000000000000000000000FC -S3154002AC1000000000000000000000000000000000EC -S3154002AC2000000000000000000000000000000000DC -S3154002AC3000000000000000000000000000000000CC -S3154002AC4000000000000000000000000000000000BC -S3154002AC5000000000000000000000000000000000AC -S3154002AC60000000000000000000000000000000009C -S3154002AC70000000000000000000000000000000008C -S3154002AC80000000000000000000000000000000007C -S3154002AC90000000000000000000000000000000006C -S3154002ACA0000000000000000000000000000000005C -S3154002ACB0000000000000000000000000000000004C -S3154002ACC0000000000000000000000000000000003C -S3154002ACD0000000000000000000000000000000002C -S3154002ACE0000000000000000000000000000000001C -S3154002ACF0000000000000000000000000000000000C -S3154002AD0000000000000000000000000000000000FB -S3154002AD1000000000000000000000000000000000EB -S3154002AD2000000000000000000000000000000000DB -S3154002AD3000000000000000000000000000000000CB -S3154002AD4000000000000000000000000000000000BB -S3154002AD5000000000000000000000000000000000AB -S3154002AD60000000000000000000000000000000009B -S3154002AD70000000000000000000000000000000008B -S3154002AD80000000000000000000000000000000007B -S3154002AD90000000000000000000000000000000006B -S3154002ADA0000000000000000000000000000000005B -S3154002ADB0000000000000000000000000000000004B -S3154002ADC0000000000000000000000000000000003B -S3154002ADD0000000000000000000000000000000002B -S3154002ADE0000000000000000000000000000000001B -S3154002ADF0000000000000000000000000000000000B -S3154002AE0000000000000000000000000000000000FA -S3154002AE1000000000000000000000000000000000EA -S3154002AE2000000000000000000000000000000000DA -S3154002AE3000000000000000000000000000000000CA -S3154002AE4000000000000000000000000000000000BA -S3154002AE5000000000000000000000000000000000AA -S3154002AE60000000000000000000000000000000009A -S3154002AE70000000000000000000000000000000008A -S3154002AE80000000000000000000000000000000007A -S3154002AE90000000000000000000000000000000006A -S3154002AEA0000000000000000000000000000000005A -S3154002AEB0000000000000000000000000000000004A -S3154002AEC0000000000000000000000000000000003A -S3154002AED0000000000000000000000000000000002A -S3154002AEE0000000000000000000000000000000001A -S3154002AEF0000000000000000000000000000000000A -S3154002AF0000000000000000000000000000000000F9 -S3154002AF1000000000000000000000000000000000E9 -S3154002AF2000000000000000000000000000000000D9 -S3154002AF3000000000000000000000000000000000C9 -S3154002AF4000000000000000000000000000000000B9 -S3154002AF5000000000000000000000000000000000A9 -S3154002AF600000000000000000000000000000000099 -S3154002AF700000000000000000000000000000000089 -S3154002AF800000000000000000000000000000000079 -S3154002AF900000000000000000000000000000000069 -S3154002AFA00000000000000000000000000000000059 -S3154002AFB00000000000000000000000000000000049 -S3154002AFC00000000000000000000000000000000039 -S3154002AFD00000000000000000000000000000000029 -S3154002AFE00000000000000000000000000000000019 -S3154002AFF00000000000000000000000000000000009 -S3154002B00000000000000000000000000000000000F8 -S3154002B01000000000000000000000000000000000E8 -S3154002B02000000000000000000000000000000000D8 -S3154002B03000000000000000000000000000000000C8 -S3154002B04000000000000000000000000000000000B8 -S3154002B05000000000000000000000000000000000A8 -S3154002B0600000000000000000000000000000000098 -S3154002B0700000000000000000000000000000000088 -S3154002B0800000000000000000000000000000000078 -S3154002B0900000000000000000000000000000000068 -S3154002B0A00000000000000000000000000000000058 -S3154002B0B00000000000000000000000000000000048 -S3154002B0C00000000000000000000000000000000038 -S3154002B0D00000000000000000000000000000000028 -S3154002B0E00000000000000000000000000000000018 -S3154002B0F00000000000000000000000000000000008 -S3154002B10000000000000000000000000000000000F7 -S3154002B11000000000000000000000000000000000E7 -S3154002B12000000000000000000000000000000000D7 -S3154002B13000000000000000000000000000000000C7 -S3154002B14000000000000000000000000000000000B7 -S3154002B15000000000000000000000000000000000A7 -S3154002B1600000000000000000000000000000000097 -S3154002B1700000000000000000000000000000000087 -S3154002B1800000000000000000000000000000000077 -S3154002B1900000000000000000000000000000000067 -S3154002B1A00000000000000000000000000000000057 -S3154002B1B00000000000000000000000000000000047 -S3154002B1C00000000000000000000000000000000037 -S3154002B1D00000000000000000000000000000000027 -S3154002B1E00000000000000000000000000000000017 -S3154002B1F00000000000000000000000000000000007 -S3154002B20000000000000000000000000000000000F6 -S3154002B21000000000000000000000000000000000E6 -S3154002B22000000000000000000000000000000000D6 -S3154002B23000000000000000000000000000000000C6 -S3154002B24000000000000000000000000000000000B6 -S3154002B25000000000000000000000000000000000A6 -S3154002B2600000000000000000000000000000000096 -S3154002B2700000000000000000000000000000000086 -S3154002B2800000000000000000000000000000000076 -S3154002B2900000000000000000000000000000000066 -S3154002B2A00000000000000000000000000000000056 -S3154002B2B00000000000000000000000000000000046 -S3154002B2C00000000000000000000000000000000036 -S3154002B2D00000000000000000000000000000000026 -S3154002B2E00000000000000000000000000000000016 -S3154002B2F00000000000000000000000000000000006 -S3154002B30000000000000000000000000000000000F5 -S3154002B31000000000000000000000000000000000E5 -S3154002B32000000000000000000000000000000000D5 -S3154002B33000000000000000000000000000000000C5 -S3154002B34000000000000000000000000000000000B5 -S3154002B35000000000000000000000000000000000A5 -S3154002B3600000000000000000000000000000000095 -S3154002B3700000000000000000000000000000000085 -S3154002B3800000000000000000000000000000000075 -S3154002B3900000000000000000000000000000000065 -S3154002B3A00000000000000000000000000000000055 -S3154002B3B00000000000000000000000000000000045 -S3154002B3C00000000000000000000000000000000035 -S3154002B3D00000000000000000000000000000000025 -S3154002B3E00000000000000000000000000000000015 -S3154002B3F00000000000000000000000000000000005 -S3154002B40000000000000000000000000000000000F4 -S3154002B41000000000000000000000000000000000E4 -S3154002B42000000000000000000000000000000000D4 -S3154002B43000000000000000000000000000000000C4 -S3154002B44000000000000000000000000000000000B4 -S3154002B45000000000000000000000000000000000A4 -S3154002B4600000000000000000000000000000000094 -S3154002B4700000000000000000000000000000000084 -S3154002B4800000000000000000000000000000000074 -S3154002B4900000000000000000000000000000000064 -S3154002B4A00000000000000000000000000000000054 -S3154002B4B00000000000000000000000000000000044 -S3154002B4C00000000000000000000000000000000034 -S3154002B4D00000000000000000000000000000000024 -S3154002B4E00000000000000000000000000000000014 -S3154002B4F00000000000000000000000000000000004 -S3154002B50000000000000000000000000000000000F3 -S3154002B51000000000000000000000000000000000E3 -S3154002B52000000000000000000000000000000000D3 -S3154002B53000000000000000000000000000000000C3 -S3154002B54000000000000000000000000000000000B3 -S3154002B55000000000000000000000000000000000A3 -S3154002B5600000000000000000000000000000000093 -S3154002B5700000000000000000000000000000000083 -S3154002B5800000000000000000000000000000000073 -S3154002B5900000000000000000000000000000000063 -S3154002B5A00000000000000000000000000000000053 -S3154002B5B00000000000000000000000000000000043 -S3154002B5C00000000000000000000000000000000033 -S3154002B5D00000000000000000000000000000000023 -S3154002B5E00000000000000000000000000000000013 -S3154002B5F00000000000000000000000000000000003 -S3154002B60000000000000000000000000000000000F2 -S3154002B61000000000000000000000000000000000E2 -S3154002B62000000000000000000000000000000000D2 -S3154002B63000000000000000000000000000000000C2 -S3154002B64000000000000000000000000000000000B2 -S3154002B65000000000000000000000000000000000A2 -S3154002B6600000000000000000000000000000000092 -S3154002B6700000000000000000000000000000000082 -S3154002B6800000000000000000000000000000000072 -S3154002B6900000000000000000000000000000000062 -S3154002B6A00000000000000000000000000000000052 -S3154002B6B00000000000000000000000000000000042 -S3154002B6C00000000000000000000000000000000032 -S3154002B6D00000000000000000000000000000000022 -S3154002B6E00000000000000000000000000000000012 -S3154002B6F00000000000000000000000000000000002 -S3154002B70000000000000000000000000000000000F1 -S3154002B71000000000000000000000000000000000E1 -S3154002B72000000000000000000000000000000000D1 -S3154002B73000000000000000000000000000000000C1 -S3154002B74000000000000000000000000000000000B1 -S3154002B75000000000000000000000000000000000A1 -S3154002B7600000000000000000000000000000000091 -S3154002B7700000000000000000000000000000000081 -S3154002B7800000000000000000000000000000000071 -S3154002B7900000000000000000000000000000000061 -S3154002B7A00000000000000000000000000000000051 -S3154002B7B00000000000000000000000000000000041 -S3154002B7C00000000000000000000000000000000031 -S3154002B7D00000000000000000000000000000000021 -S3154002B7E00000000000000000000000000000000011 -S3154002B7F00000000000000000000000000000000001 -S3154002B80000000000000000000000000000000000F0 -S3154002B81000000000000000000000000000000000E0 -S3154002B82000000000000000000000000000000000D0 -S3154002B83000000000000000000000000000000000C0 -S3154002B84000000000000000000000000000000000B0 -S3154002B85000000000000000000000000000000000A0 -S3154002B8600000000000000000000000000000000090 -S3154002B8700000000000000000000000000000000080 -S3154002B8800000000000000000000000000000000070 -S3154002B8900000000000000000000000000000000060 -S3154002B8A00000000000000000000000000000000050 -S3154002B8B00000000000000000000000000000000040 -S3154002B8C00000000000000000000000000000000030 -S3154002B8D00000000000000000000000000000000020 -S3154002B8E00000000000000000000000000000000010 -S3154002B8F00000000000000000000000000000000000 -S3154002B90000000000000000000000000000000000EF -S3154002B91000000000000000000000000000000000DF -S3154002B92000000000000000000000000000000000CF -S3154002B93000000000000000000000000000000000BF -S3154002B94000000000000000000000000000000000AF -S3154002B950000000000000000000000000000000009F -S3154002B960000000000000000000000000000000008F -S3154002B970000000000000000000000000000000007F -S3154002B980000000000000000000000000000000006F -S3154002B990000000000000000000000000000000005F -S3154002B9A0000000000000000000000000000000004F -S3154002B9B0000000000000000000000000000000003F -S3154002B9C0000000000000000000000000000000002F -S3154002B9D0000000000000000000000000000000001F -S3154002B9E0000000000000000000000000000000000F -S3154002B9F000000000000000000000000000000000FF -S3154002BA0000000000000000000000000000000000EE -S3154002BA1000000000000000000000000000000000DE -S3154002BA2000000000000000000000000000000000CE -S3154002BA3000000000000000000000000000000000BE -S3154002BA4000000000000000000000000000000000AE -S3154002BA50000000000000000000000000000000009E -S3154002BA60000000000000000000000000000000008E -S3154002BA70000000000000000000000000000000007E -S3154002BA80000000000000000000000000000000006E -S3154002BA90000000000000000000000000000000005E -S3154002BAA0000000000000000000000000000000004E -S3154002BAB0000000000000000000000000000000003E -S3154002BAC0000000000000000000000000000000002E -S3154002BAD0000000000000000000000000000000001E -S3154002BAE0000000000000000000000000000000000E -S3154002BAF000000000000000000000000000000000FE -S3154002BB0000000000000000000000000000000000ED -S3154002BB1000000000000000000000000000000000DD -S3154002BB2000000000000000000000000000000000CD -S3154002BB3000000000000000000000000000000000BD -S3154002BB4000000000000000000000000000000000AD -S3154002BB50000000000000000000000000000000009D -S3154002BB60000000000000000000000000000000008D -S3154002BB70000000000000000000000000000000007D -S3154002BB80000000000000000000000000000000006D -S3154002BB90000000000000000000000000000000005D -S3154002BBA0000000000000000000000000000000004D -S3154002BBB0000000000000000000000000000000003D -S3154002BBC0000000000000000000000000000000002D -S3154002BBD0000000000000000000000000000000001D -S3154002BBE0000000000000000000000000000000000D -S3154002BBF000000000000000000000000000000000FD -S3154002BC0000000000000000000000000000000000EC -S3154002BC1000000000000000000000000000000000DC -S3154002BC2000000000000000000000000000000000CC -S3154002BC3000000000000000000000000000000000BC -S3154002BC4000000000000000000000000000000000AC -S3154002BC50000000000000000000000000000000009C -S3154002BC60000000000000000000000000000000008C -S3154002BC70000000000000000000000000000000007C -S3154002BC80000000000000000000000000000000006C -S3154002BC90000000000000000000000000000000005C -S3154002BCA0000000000000000000000000000000004C -S3154002BCB0000000000000000000000000000000003C -S3154002BCC0000000000000000000000000000000002C -S3154002BCD0000000000000000000000000000000001C -S3154002BCE0000000000000000000000000000000000C -S3154002BCF000000000000000000000000000000000FC -S3154002BD0000000000000000000000000000000000EB -S3154002BD1000000000000000000000000000000000DB -S3154002BD2000000000000000000000000000000000CB -S3154002BD3000000000000000000000000000000000BB -S3154002BD4000000000000000000000000000000000AB -S3154002BD50000000000000000000000000000000009B -S3154002BD60000000000000000000000000000000008B -S3154002BD70000000000000000000000000000000007B -S3154002BD80000000000000000000000000000000006B -S3154002BD90000000000000000000000000000000005B -S3154002BDA0000000000000000000000000000000004B -S3154002BDB0000000000000000000000000000000003B -S3154002BDC0000000000000000000000000000000002B -S3154002BDD0000000000000000000000000000000001B -S3154002BDE0000000000000000000000000000000000B -S3154002BDF000000000000000000000000000000000FB -S3154002BE0000000000000000000000000000000000EA -S3154002BE1000000000000000000000000000000000DA -S3154002BE2000000000000000000000000000000000CA -S3154002BE3000000000000000000000000000000000BA -S3154002BE4000000000000000000000000000000000AA -S3154002BE50000000000000000000000000000000009A -S3154002BE60000000000000000000000000000000008A -S3154002BE70000000000000000000000000000000007A -S3154002BE80000000000000000000000000000000006A -S3154002BE90000000000000000000000000000000005A -S3154002BEA0000000000000000000000000000000004A -S3154002BEB0000000000000000000000000000000003A -S3154002BEC0000000000000000000000000000000002A -S3154002BED0000000000000000000000000000000001A -S3154002BEE0000000000000000000000000000000000A -S3154002BEF000000000000000000000000000000000FA -S3154002BF0000000000000000000000000000000000E9 -S3154002BF1000000000000000000000000000000000D9 -S3154002BF2000000000000000000000000000000000C9 -S3154002BF3000000000000000000000000000000000B9 -S3154002BF4000000000000000000000000000000000A9 -S3154002BF500000000000000000000000000000000099 -S3154002BF600000000000000000000000000000000089 -S3154002BF700000000000000000000000000000000079 -S3154002BF800000000000000000000000000000000069 -S3154002BF900000000000000000000000000000000059 -S3154002BFA00000000000000000000000000000000049 -S3154002BFB00000000000000000000000000000000039 -S3154002BFC00000000000000000000000000000000029 -S3154002BFD00000000000000000000000000000000019 -S3154002BFE00000000000000000000000000000000009 -S3154002BFF000000000000000000000000000000000F9 -S3154002C00000000000000000000000000000000000E8 -S3154002C01000000000000000000000000000000000D8 -S3154002C02000000000000000000000000000000000C8 -S3154002C03000000000000000000000000000000000B8 -S3154002C04000000000000000000000000000000000A8 -S3154002C0500000000000000000000000000000000098 -S3154002C0600000000000000000000000000000000088 -S3154002C0700000000000000000000000000000000078 -S3154002C0800000000000000000000000000000000068 -S3154002C0900000000000000000000000000000000058 -S3154002C0A00000000000000000000000000000000048 -S3154002C0B00000000000000000000000000000000038 -S3154002C0C00000000000000000000000000000000028 -S3154002C0D00000000000000000000000000000000018 -S3154002C0E00000000000000000000000000000000008 -S3154002C0F000000000000000000000000000000000F8 -S3154002C10000000000000000000000000000000000E7 -S3154002C11000000000000000000000000000000000D7 -S3154002C12000000000000000000000000000000000C7 -S3154002C13000000000000000000000000000000000B7 -S3154002C14000000000000000000000000000000000A7 -S3154002C1500000000000000000000000000000000097 -S3154002C1600000000000000000000000000000000087 -S3154002C1700000000000000000000000000000000077 -S3154002C1800000000000000000000000000000000067 -S3154002C1900000000000000000000000000000000057 -S3154002C1A00000000000000000000000000000000047 -S3154002C1B00000000000000000000000000000000037 -S3154002C1C00000000000000000000000000000000027 -S3154002C1D00000000000000000000000000000000017 -S3154002C1E00000000000000000000000000000000007 -S3154002C1F000000000000000000000000000000000F7 -S3154002C20000000000000000000000000000000000E6 -S3154002C21000000000000000000000000000000000D6 -S3154002C22000000000000000000000000000000000C6 -S3154002C23000000000000000000000000000000000B6 -S3154002C24000000000000000000000000000000000A6 -S3154002C2500000000000000000000000000000000096 -S3154002C2600000000000000000000000000000000086 -S3154002C2700000000000000000000000000000000076 -S3154002C2800000000000000000000000000000000066 -S3154002C2900000000000000000000000000000000056 -S3154002C2A00000000000000000000000000000000046 -S3154002C2B00000000000000000000000000000000036 -S3154002C2C00000000000000000000000000000000026 -S3154002C2D00000000000000000000000000000000016 -S3154002C2E00000000000000000000000000000000006 -S3154002C2F000000000000000000000000000000000F6 -S3154002C30000000000000000000000000000000000E5 -S3154002C31000000000000000000000000000000000D5 -S3154002C32000000000000000000000000000000000C5 -S3154002C33000000000000000000000000000000000B5 -S3154002C34000000000000000000000000000000000A5 -S3154002C3500000000000000000000000000000000095 -S3154002C3600000000000000000000000000000000085 -S3154002C3700000000000000000000000000000000075 -S3154002C3800000000000000000000000000000000065 -S3154002C3900000000000000000000000000000000055 -S3154002C3A00000000000000000000000000000000045 -S3154002C3B00000000000000000000000000000000035 -S3154002C3C00000000000000000000000000000000025 -S3154002C3D00000000000000000000000000000000015 -S3154002C3E00000000000000000000000000000000005 -S3154002C3F000000000000000000000000000000000F5 -S3154002C40000000000000000000000000000000000E4 -S3154002C41000000000000000000000000000000000D4 -S3154002C42000000000000000000000000000000000C4 -S3154002C43000000000000000000000000000000000B4 -S3154002C44000000000000000000000000000000000A4 -S3154002C4500000000000000000000000000000000094 -S3154002C4600000000000000000000000000000000084 -S3154002C4700000000000000000000000000000000074 -S3154002C4800000000000000000000000000000000064 -S3154002C4900000000000000000000000000000000054 -S3154002C4A00000000000000000000000000000000044 -S3154002C4B00000000000000000000000000000000034 -S3154002C4C00000000000000000000000000000000024 -S3154002C4D00000000000000000000000000000000014 -S3154002C4E00000000000000000000000000000000004 -S3154002C4F000000000000000000000000000000000F4 -S3154002C50000000000000000000000000000000000E3 -S3154002C51000000000000000000000000000000000D3 -S3154002C52000000000000000000000000000000000C3 -S3154002C53000000000000000000000000000000000B3 -S3154002C54000000000000000000000000000000000A3 -S3154002C5500000000000000000000000000000000093 -S3154002C5600000000000000000000000000000000083 -S3154002C5700000000000000000000000000000000073 -S3154002C5800000000000000000000000000000000063 -S3154002C5900000000000000000000000000000000053 -S3154002C5A00000000000000000000000000000000043 -S3154002C5B00000000000000000000000000000000033 -S3154002C5C00000000000000000000000000000000023 -S3154002C5D00000000000000000000000000000000013 -S3154002C5E00000000000000000000000000000000003 -S3154002C5F000000000000000000000000000000000F3 -S3154002C60000000000000000000000000000000000E2 -S3154002C61000000000000000000000000000000000D2 -S3154002C62000000000000000000000000000000000C2 -S3154002C63000000000000000000000000000000000B2 -S3154002C64000000000000000000000000000000000A2 -S3154002C6500000000000000000000000000000000092 -S3154002C6600000000000000000000000000000000082 -S3154002C6700000000000000000000000000000000072 -S3154002C6800000000000000000000000000000000062 -S3154002C6900000000000000000000000000000000052 -S3154002C6A00000000000000000000000000000000042 -S3154002C6B00000000000000000000000000000000032 -S3154002C6C00000000000000000000000000000000022 -S3154002C6D00000000000000000000000000000000012 -S3154002C6E00000000000000000000000000000000002 -S3154002C6F000000000000000000000000000000000F2 -S3154002C70000000000000000000000000000000000E1 -S3154002C71000000000000000000000000000000000D1 -S3154002C72000000000000000000000000000000000C1 -S3154002C73000000000000000000000000000000000B1 -S3154002C74000000000000000000000000000000000A1 -S3154002C7500000000000000000000000000000000091 -S3154002C7600000000000000000000000000000000081 -S3154002C7700000000000000000000000000000000071 -S3154002C7800000000000000000000000000000000061 -S3154002C7900000000000000000000000000000000051 -S3154002C7A00000000000000000000000000000000041 -S3154002C7B00000000000000000000000000000000031 -S3154002C7C00000000000000000000000000000000021 -S3154002C7D00000000000000000000000000000000011 -S3154002C7E00000000000000000000000000000000001 -S3154002C7F000000000000000000000000000000000F1 -S3154002C80000000000000000000000000000000000E0 -S3154002C81000000000000000000000000000000000D0 -S3154002C82000000000000000000000000000000000C0 -S3154002C83000000000000000000000000000000000B0 -S3154002C84000000000000000000000000000000000A0 -S3154002C8500000000000000000000000000000000090 -S3154002C8600000000000000000000000000000000080 -S3154002C8700000000000000000000000000000000070 -S3154002C8800000000000000000000000000000000060 -S3154002C8900000000000000000000000000000000050 -S3154002C8A00000000000000000000000000000000040 -S3154002C8B00000000000000000000000000000000030 -S3154002C8C00000000000000000000000000000000020 -S3154002C8D00000000000000000000000000000000010 -S3154002C8E00000000000000000000000000000000000 -S3154002C8F000000000000000000000000000000000F0 -S3154002C90000000000000000000000000000000000DF -S3154002C91000000000000000000000000000000000CF -S3154002C92000000000000000000000000000000000BF -S3154002C93000000000000000000000000000000000AF -S3154002C940000000000000000000000000000000009F -S3154002C950000000000000000000000000000000008F -S3154002C960000000000000000000000000000000007F -S3154002C970000000000000000000000000000000006F -S3154002C980000000000000000000000000000000005F -S3154002C990000000000000000000000000000000004F -S3154002C9A0000000000000000000000000000000003F -S3154002C9B0000000000000000000000000000000002F -S3154002C9C0000000000000000000000000000000001F -S3154002C9D0000000000000000000000000000000000F -S3154002C9E000000000000000000000000000000000FF -S3154002C9F000000000000000000000000000000000EF -S3154002CA0000000000000000000000000000000000DE -S3154002CA1000000000000000000000000000000000CE -S3154002CA2000000000000000000000000000000000BE -S3154002CA3000000000000000000000000000000000AE -S3154002CA40000000000000000000000000000000009E -S3154002CA50000000000000000000000000000000008E -S3154002CA60000000000000000000000000000000007E -S3154002CA70000000000000000000000000000000006E -S3154002CA80000000000000000000000000000000005E -S3154002CA90000000000000000000000000000000004E -S3154002CAA0000000000000000000000000000000003E -S3154002CAB0000000000000000000000000000000002E -S3154002CAC0000000000000000000000000000000001E -S3154002CAD0000000000000000000000000000000000E -S3154002CAE000000000000000000000000000000000FE -S3154002CAF000000000000000000000000000000000EE -S3154002CB0000000000000000000000000000000000DD -S3154002CB1000000000000000000000000000000000CD -S3154002CB2000000000000000000000000000000000BD -S3154002CB3000000000000000000000000000000000AD -S3154002CB40000000000000000000000000000000009D -S3154002CB50000000000000000000000000000000008D -S3154002CB60000000000000000000000000000000007D -S3154002CB70000000000000000000000000000000006D -S3154002CB80000000000000000000000000000000005D -S3154002CB90000000000000000000000000000000004D -S3154002CBA0000000000000000000000000000000003D -S3154002CBB0000000000000000000000000000000002D -S3154002CBC0000000000000000000000000000000001D -S3154002CBD0000000000000000000000000000000000D -S3154002CBE000000000000000000000000000000000FD -S3154002CBF000000000000000000000000000000000ED -S3154002CC0000000000000000000000000000000000DC -S3154002CC1000000000000000000000000000000000CC -S3154002CC2000000000000000000000000000000000BC -S3154002CC3000000000000000000000000000000000AC -S3154002CC40000000000000000000000000000000009C -S3154002CC50000000000000000000000000000000008C -S3154002CC60000000000000000000000000000000007C -S3154002CC70000000000000000000000000000000006C -S3154002CC80000000000000000000000000000000005C -S3154002CC90000000000000000000000000000000004C -S3154002CCA0000000000000000000000000000000003C -S3154002CCB0000000000000000000000000000000002C -S3154002CCC0000000000000000000000000000000001C -S3154002CCD0000000000000000000000000000000000C -S3154002CCE000000000000000000000000000000000FC -S3154002CCF000000000000000000000000000000000EC -S3154002CD0000000000000000000000000000000000DB -S3154002CD1000000000000000000000000000000000CB -S3154002CD2000000000000000000000000000000000BB -S3154002CD3000000000000000000000000000000000AB -S3154002CD40000000000000000000000000000000009B -S3154002CD50000000000000000000000000000000008B -S3154002CD60000000000000000000000000000000007B -S3154002CD70000000000000000000000000000000006B -S3154002CD80000000000000000000000000000000005B -S3154002CD90000000000000000000000000000000004B -S3154002CDA0000000000000000000000000000000003B -S3154002CDB0000000000000000000000000000000002B -S3154002CDC0000000000000000000000000000000001B -S3154002CDD0000000000000000000000000000000000B -S3154002CDE000000000000000000000000000000000FB -S3154002CDF000000000000000000000000000000000EB -S3154002CE0000000000000000000000000000000000DA -S3154002CE1000000000000000000000000000000000CA -S3154002CE2000000000000000000000000000000000BA -S3154002CE3000000000000000000000000000000000AA -S3154002CE40000000000000000000000000000000009A -S3154002CE50000000000000000000000000000000008A -S3154002CE60000000000000000000000000000000007A -S3154002CE70000000000000000000000000000000006A -S3154002CE80000000000000000000000000000000005A -S3154002CE90000000000000000000000000000000004A -S3154002CEA0000000000000000000000000000000003A -S3154002CEB0000000000000000000000000000000002A -S3154002CEC0000000000000000000000000000000001A -S3154002CED0000000000000000000000000000000000A -S3154002CEE000000000000000000000000000000000FA -S3154002CEF000000000000000000000000000000000EA -S3154002CF0000000000000000000000000000000000D9 -S3154002CF1000000000000000000000000000000000C9 -S3154002CF2000000000000000000000000000000000B9 -S3154002CF3000000000000000000000000000000000A9 -S3154002CF400000000000000000000000000000000099 -S3154002CF500000000000000000000000000000000089 -S3154002CF600000000000000000000000000000000079 -S3154002CF700000000000000000000000000000000069 -S3154002CF800000000000000000000000000000000059 -S3154002CF900000000000000000000000000000000049 -S3154002CFA00000000000000000000000000000000039 -S3154002CFB00000000000000000000000000000000029 -S3154002CFC00000000000000000000000000000000019 -S3154002CFD00000000000000000000000000000000009 -S3154002CFE000000000000000000000000000000000F9 -S3154002CFF000000000000000000000000000000000E9 -S3154002D00000000000000000000000000000000000D8 -S3154002D01000000000000000000000000000000000C8 -S3154002D02000000000000000000000000000000000B8 -S3154002D03000000000000000000000000000000000A8 -S3154002D0400000000000000000000000000000000098 -S3154002D0500000000000000000000000000000000088 -S3154002D0600000000000000000000000000000000078 -S3154002D0700000000000000000000000000000000068 -S3154002D0800000000000000000000000000000000058 -S3154002D0900000000000000000000000000000000048 -S3154002D0A00000000000000000000000000000000038 -S3154002D0B00000000000000000000000000000000028 -S3154002D0C00000000000000000000000000000000018 -S3154002D0D00000000000000000000000000000000008 -S3154002D0E000000000000000000000000000000000F8 -S3154002D0F000000000000000000000000000000000E8 -S3154002D10000000000000000000000000000000000D7 -S3154002D11000000000000000000000000000000000C7 -S3154002D12000000000000000000000000000000000B7 -S3154002D13000000000000000000000000000000000A7 -S3154002D1400000000000000000000000000000000097 -S3154002D1500000000000000000000000000000000087 -S3154002D1600000000000000000000000000000000077 -S3154002D1700000000000000000000000000000000067 -S3154002D1800000000000000000000000000000000057 -S3154002D1900000000000000000000000000000000047 -S3154002D1A00000000000000000000000000000000037 -S3154002D1B00000000000000000000000000000000027 -S3154002D1C00000000000000000000000000000000017 -S3154002D1D00000000000000000000000000000000007 -S3154002D1E000000000000000000000000000000000F7 -S3154002D1F000000000000000000000000000000000E7 -S3154002D20000000000000000000000000000000000D6 -S3154002D21000000000000000000000000000000000C6 -S3154002D22000000000000000000000000000000000B6 -S3154002D23000000000000000000000000000000000A6 -S3154002D2400000000000000000000000000000000096 -S3154002D2500000000000000000000000000000000086 -S3154002D2600000000000000000000000000000000076 -S3154002D2700000000000000000000000000000000066 -S3154002D2800000000000000000000000000000000056 -S3154002D2900000000000000000000000000000000046 -S3154002D2A00000000000000000000000000000000036 -S3154002D2B00000000000000000000000000000000026 -S3154002D2C00000000000000000000000000000000016 -S3154002D2D00000000000000000000000000000000006 -S3154002D2E000000000000000000000000000000000F6 -S3154002D2F000000000000000000000000000000000E6 -S3154002D30000000000000000000000000000000000D5 -S3154002D31000000000000000000000000000000000C5 -S3154002D32000000000000000000000000000000000B5 -S3154002D33000000000000000000000000000000000A5 -S3154002D3400000000000000000000000000000000095 -S3154002D3500000000000000000000000000000000085 -S3154002D3600000000000000000000000000000000075 -S3154002D3700000000000000000000000000000000065 -S3154002D3800000000000000000000000000000000055 -S3154002D3900000000000000000000000000000000045 -S3154002D3A00000000000000000000000000000000035 -S3154002D3B00000000000000000000000000000000025 -S3154002D3C00000000000000000000000000000000015 -S3154002D3D00000000000000000000000000000000005 -S3154002D3E000000000000000000000000000000000F5 -S3154002D3F000000000000000000000000000000000E5 -S3154002D40000000000000000000000000000000000D4 -S3154002D41000000000000000000000000000000000C4 -S3154002D42000000000000000000000000000000000B4 -S3154002D43000000000000000000000000000000000A4 -S3154002D4400000000000000000000000000000000094 -S3154002D4500000000000000000000000000000000084 -S3154002D4600000000000000000000000000000000074 -S3154002D4700000000000000000000000000000000064 -S3154002D4800000000000000000000000000000000054 -S3154002D4900000000000000000000000000000000044 -S3154002D4A00000000000000000000000000000000034 -S3154002D4B00000000000000000000000000000000024 -S3154002D4C00000000000000000000000000000000014 -S3154002D4D00000000000000000000000000000000004 -S3154002D4E000000000000000000000000000000000F4 -S3154002D4F000000000000000000000000000000000E4 -S3154002D50000000000000000000000000000000000D3 -S3154002D51000000000000000000000000000000000C3 -S3154002D52000000000000000000000000000000000B3 -S3154002D53000000000000000000000000000000000A3 -S3154002D5400000000000000000000000000000000093 -S3154002D5500000000000000000000000000000000083 -S3154002D5600000000000000000000000000000000073 -S3154002D5700000000000000000000000000000000063 -S3154002D5800000000000000000000000000000000053 -S3154002D5900000000000000000000000000000000043 -S3154002D5A00000000000000000000000000000000033 -S3154002D5B00000000000000000000000000000000023 -S3154002D5C00000000000000000000000000000000013 -S3154002D5D00000000000000000000000000000000003 -S3154002D5E000000000000000000000000000000000F3 -S3154002D5F000000000000000000000000000000000E3 -S3154002D60000000000000000000000000000000000D2 -S3154002D61000000000000000000000000000000000C2 -S3154002D62000000000000000000000000000000000B2 -S3154002D63000000000000000000000000000000000A2 -S3154002D6400000000000000000000000000000000092 -S3154002D6500000000000000000000000000000000082 -S3154002D6600000000000000000000000000000000072 -S3154002D6700000000000000000000000000000000062 -S3154002D6800000000000000000000000000000000052 -S3154002D6900000000000000000000000000000000042 -S3154002D6A00000000000000000000000000000000032 -S3154002D6B00000000000000000000000000000000022 -S3154002D6C00000000000000000000000000000000012 -S3154002D6D00000000000000000000000000000000002 -S3154002D6E000000000000000000000000000000000F2 -S3154002D6F000000000000000000000000000000000E2 -S3154002D70000000000000000000000000000000000D1 -S3154002D71000000000000000000000000000000000C1 -S3154002D72000000000000000000000000000000000B1 -S3154002D73000000000000000000000000000000000A1 -S3154002D7400000000000000000000000000000000091 -S3154002D7500000000000000000000000000000000081 -S3154002D7600000000000000000000000000000000071 -S3154002D7700000000000000000000000000000000061 -S3154002D7800000000000000000000000000000000051 -S3154002D7900000000000000000000000000000000041 -S3154002D7A00000000000000000000000000000000031 -S3154002D7B00000000000000000000000000000000021 -S3154002D7C00000000000000000000000000000000011 -S3154002D7D00000000000000000000000000000000001 -S3154002D7E000000000000000000000000000000000F1 -S3154002D7F000000000000000000000000000000000E1 -S3154002D80000000000000000000000000000000000D0 -S3154002D81000000000000000000000000000000000C0 -S3154002D82000000000000000000000000000000000B0 -S3154002D83000000000000000000000000000000000A0 -S3154002D8400000000000000000000000000000000090 -S3154002D8500000000000000000000000000000000080 -S3154002D8600000000000000000000000000000000070 -S3154002D8700000000000000000000000000000000060 -S3154002D8800000000000000000000000000000000050 -S3154002D8900000000000000000000000000000000040 -S3154002D8A00000000000000000000000000000000030 -S3154002D8B00000000000000000000000000000000020 -S3154002D8C00000000000000000000000000000000010 -S3154002D8D00000000000000000000000000000000000 -S3154002D8E000000000000000000000000000000000F0 -S3154002D8F000000000000000000000000000000000E0 -S3154002D90000000000000000000000000000000000CF -S3154002D91000000000000000000000000000000000BF -S3154002D92000000000000000000000000000000000AF -S3154002D930000000000000000000000000000000009F -S3154002D940000000000000000000000000000000008F -S3154002D950000000000000000000000000000000007F -S3154002D960000000000000000000000000000000006F -S3154002D970000000000000000000000000000000005F -S3154002D980000000000000000000000000000000004F -S3154002D990000000000000000000000000000000003F -S3154002D9A0000000000000000000000000000000002F -S3154002D9B0000000000000000000000000000000001F -S3154002D9C0000000000000000000000000000000000F -S3154002D9D000000000000000000000000000000000FF -S3154002D9E000000000000000000000000000000000EF -S3154002D9F000000000000000000000000000000000DF -S3154002DA0000000000000000000000000000000000CE -S3154002DA1000000000000000000000000000000000BE -S3154002DA2000000000000000000000000000000000AE -S3154002DA30000000000000000000000000000000009E -S3154002DA40000000000000000000000000000000008E -S3154002DA50000000000000000000000000000000007E -S3154002DA60000000000000000000000000000000006E -S3154002DA70000000000000000000000000000000005E -S3154002DA80000000000000000000000000000000004E -S3154002DA90000000000000000000000000000000003E -S3154002DAA0000000000000000000000000000000002E -S3154002DAB0000000000000000000000000000000001E -S3154002DAC0000000000000000000000000000000000E -S3154002DAD000000000000000000000000000000000FE -S3154002DAE000000000000000000000000000000000EE -S3154002DAF000000000000000000000000000000000DE -S3154002DB0000000000000000000000000000000000CD -S3154002DB1000000000000000000000000000000000BD -S3154002DB2000000000000000000000000000000000AD -S3154002DB30000000000000000000000000000000009D -S3154002DB40000000000000000000000000000000008D -S3154002DB50000000000000000000000000000000007D -S3154002DB60000000000000000000000000000000006D -S3154002DB70000000000000000000000000000000005D -S3154002DB80000000000000000000000000000000004D -S3154002DB90000000000000000000000000000000003D -S3154002DBA0000000000000000000000000000000002D -S3154002DBB0000000000000000000000000000000001D -S3154002DBC0000000000000000000000000000000000D -S3154002DBD000000000000000000000000000000000FD -S3154002DBE000000000000000000000000000000000ED -S3154002DBF000000000000000000000000000000000DD -S3154002DC0000000000000000000000000000000000CC -S3154002DC1000000000000000000000000000000000BC -S3154002DC2000000000000000000000000000000000AC -S3154002DC30000000000000000000000000000000009C -S3154002DC40000000000000000000000000000000008C -S3154002DC50000000000000000000000000000000007C -S3154002DC60000000000000000000000000000000006C -S3154002DC70000000000000000000000000000000005C -S3154002DC80000000000000000000000000000000004C -S3154002DC90000000000000000000000000000000003C -S3154002DCA0000000000000000000000000000000002C -S3154002DCB0000000000000000000000000000000001C -S3154002DCC0000000000000000000000000000000000C -S3154002DCD000000000000000000000000000000000FC -S3154002DCE000000000000000000000000000000000EC -S3154002DCF000000000000000000000000000000000DC -S3154002DD0000000000000000000000000000000000CB -S3154002DD1000000000000000000000000000000000BB -S3154002DD2000000000000000000000000000000000AB -S3154002DD30000000000000000000000000000000009B -S3154002DD40000000000000000000000000000000008B -S3154002DD50000000000000000000000000000000007B -S3154002DD60000000000000000000000000000000006B -S3154002DD70000000000000000000000000000000005B -S3154002DD80000000000000000000000000000000004B -S3154002DD90000000000000000000000000000000003B -S3154002DDA0000000000000000000000000000000002B -S3154002DDB0000000000000000000000000000000001B -S3154002DDC0000000000000000000000000000000000B -S3154002DDD000000000000000000000000000000000FB -S3154002DDE000000000000000000000000000000000EB -S3154002DDF000000000000000000000000000000000DB -S3154002DE0000000000000000000000000000000000CA -S3154002DE1000000000000000000000000000000000BA -S3154002DE2000000000000000000000000000000000AA -S3154002DE30000000000000000000000000000000009A -S3154002DE40000000000000000000000000000000008A -S3154002DE50000000000000000000000000000000007A -S3154002DE60000000000000000000000000000000006A -S3154002DE70000000000000000000000000000000005A -S3154002DE80000000000000000000000000000000004A -S3154002DE90000000000000000000000000000000003A -S3154002DEA0000000000000000000000000000000002A -S3154002DEB0000000000000000000000000000000001A -S3154002DEC0000000000000000000000000000000000A -S3154002DED000000000000000000000000000000000FA -S3154002DEE000000000000000000000000000000000EA -S3154002DEF000000000000000000000000000000000DA -S3154002DF0000000000000000000000000000000000C9 -S3154002DF1000000000000000000000000000000000B9 -S3154002DF2000000000000000000000000000000000A9 -S3154002DF300000000000000000000000000000000099 -S3154002DF400000000000000000000000000000000089 -S3154002DF500000000000000000000000000000000079 -S3154002DF600000000000000000000000000000000069 -S3154002DF700000000000000000000000000000000059 -S3154002DF800000000000000000000000000000000049 -S3154002DF900000000000000000000000000000000039 -S3154002DFA00000000000000000000000000000000029 -S3154002DFB00000000000000000000000000000000019 -S3154002DFC00000000000000000000000000000000009 -S3154002DFD000000000000000000000000000000000F9 -S3154002DFE000000000000000000000000000000000E9 -S3154002DFF000000000000000000000000000000000D9 -S3154002E00000000000000000000000000000000000C8 -S3154002E01000000000000000000000000000000000B8 -S3154002E02000000000000000000000000000000000A8 -S3154002E0300000000000000000000000000000000098 -S3154002E0400000000000000000000000000000000088 -S3154002E0500000000000000000000000000000000078 -S3154002E0600000000000000000000000000000000068 -S3154002E0700000000000000000000000000000000058 -S3154002E0800000000000000000000000000000000048 -S3154002E0900000000000000000000000000000000038 -S3154002E0A00000000000000000000000000000000028 -S3154002E0B00000000000000000000000000000000018 -S3154002E0C00000000000000000000000000000000008 -S3154002E0D000000000000000000000000000000000F8 -S3154002E0E000000000000000000000000000000000E8 -S3154002E0F000000000000000000000000000000000D8 -S3154002E10000000000000000000000000000000000C7 -S3154002E11000000000000000000000000000000000B7 -S3154002E12000000000000000000000000000000000A7 -S3154002E1300000000000000000000000000000000097 -S3154002E1400000000000000000000000000000000087 -S3154002E1500000000000000000000000000000000077 -S3154002E1600000000000000000000000000000000067 -S3154002E1700000000000000000000000000000000057 -S3154002E1800000000000000000000000000000000047 -S3154002E1900000000000000000000000000000000037 -S3154002E1A00000000000000000000000000000000027 -S3154002E1B00000000000000000000000000000000017 -S3154002E1C00000000000000000000000000000000007 -S3154002E1D000000000000000000000000000000000F7 -S3154002E1E000000000000000000000000000000000E7 -S3154002E1F000000000000000000000000000000000D7 -S3154002E20000000000000000000000000000000000C6 -S3154002E21000000000000000000000000000000000B6 -S3154002E22000000000000000000000000000000000A6 -S3154002E2300000000000000000000000000000000096 -S3154002E2400000000000000000000000000000000086 -S3154002E2500000000000000000000000000000000076 -S3154002E2600000000000000000000000000000000066 -S3154002E2700000000000000000000000000000000056 -S3154002E2800000000000000000000000000000000046 -S3154002E2900000000000000000000000000000000036 -S3154002E2A00000000000000000000000000000000026 -S3154002E2B00000000000000000000000000000000016 -S3154002E2C00000000000000000000000000000000006 -S3154002E2D000000000000000000000000000000000F6 -S3154002E2E000000000000000000000000000000000E6 -S3154002E2F000000000000000000000000000000000D6 -S3154002E30000000000000000000000000000000000C5 -S3154002E31000000000000000000000000000000000B5 -S3154002E32000000000000000000000000000000000A5 -S3154002E3300000000000000000000000000000000095 -S3154002E3400000000000000000000000000000000085 -S3154002E3500000000000000000000000000000000075 -S3154002E3600000000000000000000000000000000065 -S3154002E3700000000000000000000000000000000055 -S3154002E3800000000000000000000000000000000045 -S3154002E3900000000000000000000000000000000035 -S3154002E3A00000000000000000000000000000000025 -S3154002E3B00000000000000000000000000000000015 -S3154002E3C00000000000000000000000000000000005 -S3154002E3D000000000000000000000000000000000F5 -S3154002E3E000000000000000000000000000000000E5 -S3154002E3F000000000000000000000000000000000D5 -S3154002E40000000000000000000000000000000000C4 -S3154002E41000000000000000000000000000000000B4 -S3154002E42000000000000000000000000000000000A4 -S3154002E4300000000000000000000000000000000094 -S3154002E4400000000000000000000000000000000084 -S3154002E4500000000000000000000000000000000074 -S3154002E4600000000000000000000000000000000064 -S3154002E4700000000000000000000000000000000054 -S3154002E4800000000000000000000000000000000044 -S3154002E4900000000000000000000000000000000034 -S3154002E4A00000000000000000000000000000000024 -S3154002E4B00000000000000000000000000000000014 -S3154002E4C00000000000000000000000000000000004 -S3154002E4D000000000000000000000000000000000F4 -S3154002E4E000000000000000000000000000000000E4 -S3154002E4F000000000000000000000000000000000D4 -S3154002E50000000000000000000000000000000000C3 -S3154002E51000000000000000000000000000000000B3 -S3154002E52000000000000000000000000000000000A3 -S3154002E5300000000000000000000000000000000093 -S3154002E5400000000000000000000000000000000083 -S3154002E5500000000000000000000000000000000073 -S3154002E5600000000000000000000000000000000063 -S3154002E5700000000000000000000000000000000053 -S3154002E5800000000000000000000000000000000043 -S3154002E5900000000000000000000000000000000033 -S3154002E5A00000000000000000000000000000000023 -S3154002E5B00000000000000000000000000000000013 -S3154002E5C00000000000000000000000000000000003 -S3154002E5D000000000000000000000000000000000F3 -S3154002E5E000000000000000000000000000000000E3 -S3154002E5F000000000000000000000000000000000D3 -S3154002E60000000000000000000000000000000000C2 -S3154002E61000000000000000000000000000000000B2 -S3154002E62000000000000000000000000000000000A2 -S3154002E6300000000000000000000000000000000092 -S3154002E6400000000000000000000000000000000082 -S3154002E6500000000000000000000000000000000072 -S3154002E6600000000000000000000000000000000062 -S3154002E6700000000000000000000000000000000052 -S3154002E6800000000000000000000000000000000042 -S3154002E6900000000000000000000000000000000032 -S3154002E6A00000000000000000000000000000000022 -S3154002E6B00000000000000000000000000000000012 -S3154002E6C00000000000000000000000000000000002 -S3154002E6D000000000000000000000000000000000F2 -S3154002E6E000000000000000000000000000000000E2 -S3154002E6F000000000000000000000000000000000D2 -S3154002E70000000000000000000000000000000000C1 -S3154002E71000000000000000000000000000000000B1 -S3154002E72000000000000000000000000000000000A1 -S3154002E7300000000000000000000000000000000091 -S3154002E7400000000000000000000000000000000081 -S3154002E7500000000000000000000000000000000071 -S3154002E7600000000000000000000000000000000061 -S3154002E7700000000000000000000000000000000051 -S3154002E7800000000000000000000000000000000041 -S3154002E7900000000000000000000000000000000031 -S3154002E7A00000000000000000000000000000000021 -S3154002E7B00000000000000000000000000000000011 -S3154002E7C00000000000000000000000000000000001 -S3154002E7D000000000000000000000000000000000F1 -S3154002E7E000000000000000000000000000000000E1 -S3154002E7F000000000000000000000000000000000D1 -S3154002E80000000000000000000000000000000000C0 -S3154002E81000000000000000000000000000000000B0 -S3154002E82000000000000000000000000000000000A0 -S3154002E8300000000000000000000000000000000090 -S3154002E8400000000000000000000000000000000080 -S3154002E8500000000000000000000000000000000070 -S3154002E8600000000000000000000000000000000060 -S3154002E8700000000000000000000000000000000050 -S3154002E8800000000000000000000000000000000040 -S3154002E8900000000000000000000000000000000030 -S3154002E8A00000000000000000000000000000000020 -S3154002E8B00000000000000000000000000000000010 -S3154002E8C00000000000000000000000000000000000 -S3154002E8D000000000000000000000000000000000F0 -S3154002E8E000000000000000000000000000000000E0 -S3154002E8F000000000000000000000000000000000D0 -S3154002E90000000000000000000000000000000000BF -S3154002E91000000000000000000000000000000000AF -S3154002E920000000000000000000000000000000009F -S3154002E930000000000000000000000000000000008F -S3154002E940000000000000000000000000000000007F -S3154002E950000000000000000000000000000000006F -S3154002E960000000000000000000000000000000005F -S3154002E970000000000000000000000000000000004F -S3154002E980000000000000000000000000000000003F -S3154002E990000000000000000000000000000000002F -S3154002E9A0000000000000000000000000000000001F -S3154002E9B0000000000000000000000000000000000F -S3154002E9C000000000000000000000000000000000FF -S3154002E9D000000000000000000000000000000000EF -S3154002E9E000000000000000000000000000000000DF -S3154002E9F000000000000000000000000000000000CF -S3154002EA0000000000000000000000000000000000BE -S3154002EA1000000000000000000000000000000000AE -S3154002EA20000000000000000000000000000000009E -S3154002EA30000000000000000000000000000000008E -S3154002EA40000000000000000000000000000000007E -S3154002EA50000000000000000000000000000000006E -S3154002EA60000000000000000000000000000000005E -S3154002EA70000000000000000000000000000000004E -S3154002EA80000000000000000000000000000000003E -S3154002EA90000000000000000000000000000000002E -S3154002EAA0000000000000000000000000000000001E -S3154002EAB0000000000000000000000000000000000E -S3154002EAC000000000000000000000000000000000FE -S3154002EAD000000000000000000000000000000000EE -S3154002EAE000000000000000000000000000000000DE -S3154002EAF000000000000000000000000000000000CE -S3154002EB0000000000000000000000000000000000BD -S3154002EB1000000000000000000000000000000000AD -S3154002EB20000000000000000000000000000000009D -S3154002EB30000000000000000000000000000000008D -S3154002EB40000000000000000000000000000000007D -S3154002EB50000000000000000000000000000000006D -S3154002EB60000000000000000000000000000000005D -S3154002EB70000000000000000000000000000000004D -S3154002EB80000000000000000000000000000000003D -S3154002EB90000000000000000000000000000000002D -S3154002EBA0000000000000000000000000000000001D -S3154002EBB0000000000000000000000000000000000D -S3154002EBC000000000000000000000000000000000FD -S3154002EBD000000000000000000000000000000000ED -S3154002EBE000000000000000000000000000000000DD -S3154002EBF000000000000000000000000000000000CD -S3154002EC0000000000000000000000000000000000BC -S3154002EC1000000000000000000000000000000000AC -S3154002EC20000000000000000000000000000000009C -S3154002EC30000000000000000000000000000000008C -S3154002EC40000000000000000000000000000000007C -S3154002EC50000000000000000000000000000000006C -S3154002EC60000000000000000000000000000000005C -S3154002EC70000000000000000000000000000000004C -S3154002EC80000000000000000000000000000000003C -S3154002EC90000000000000000000000000000000002C -S3154002ECA0000000000000000000000000000000001C -S3154002ECB0000000000000000000000000000000000C -S3154002ECC000000000000000000000000000000000FC -S3154002ECD000000000000000000000000000000000EC -S3154002ECE000000000000000000000000000000000DC -S3154002ECF000000000000000000000000000000000CC -S3154002ED0000000000000000000000000000000000BB -S3154002ED1000000000000000000000000000000000AB -S3154002ED20000000000000000000000000000000009B -S3154002ED30000000000000000000000000000000008B -S3154002ED40000000000000000000000000000000007B -S3154002ED50000000000000000000000000000000006B -S3154002ED60000000000000000000000000000000005B -S3154002ED70000000000000000000000000000000004B -S3154002ED80000000000000000000000000000000003B -S3154002ED90000000000000000000000000000000002B -S3154002EDA0000000000000000000000000000000001B -S3154002EDB0000000000000000000000000000000000B -S3154002EDC000000000000000000000000000000000FB -S3154002EDD000000000000000000000000000000000EB -S3154002EDE000000000000000000000000000000000DB -S3154002EDF000000000000000000000000000000000CB -S3154002EE0000000000000000000000000000000000BA -S3154002EE1000000000000000000000000000000000AA -S3154002EE20000000000000000000000000000000009A -S3154002EE30000000000000000000000000000000008A -S3154002EE40000000000000000000000000000000007A -S3154002EE50000000000000000000000000000000006A -S3154002EE60000000000000000000000000000000005A -S3154002EE70000000000000000000000000000000004A -S3154002EE80000000000000000000000000000000003A -S3154002EE90000000000000000000000000000000002A -S3154002EEA0000000000000000000000000000000001A -S3154002EEB0000000000000000000000000000000000A -S3154002EEC000000000000000000000000000000000FA -S3154002EED000000000000000000000000000000000EA -S3154002EEE000000000000000000000000000000000DA -S3154002EEF000000000000000000000000000000000CA -S3154002EF0000000000000000000000000000000000B9 -S3154002EF1000000000000000000000000000000000A9 -S3154002EF200000000000000000000000000000000099 -S3154002EF300000000000000000000000000000000089 -S3154002EF400000000000000000000000000000000079 -S3154002EF500000000000000000000000000000000069 -S3154002EF600000000000000000000000000000000059 -S3154002EF700000000000000000000000000000000049 -S3154002EF800000000000000000000000000000000039 -S3154002EF900000000000000000000000000000000029 -S3154002EFA00000000000000000000000000000000019 -S3154002EFB00000000000000000000000000000000009 -S3154002EFC000000000000000000000000000000000F9 -S3154002EFD000000000000000000000000000000000E9 -S3154002EFE000000000000000000000000000000000D9 -S3154002EFF000000000000000000000000000000000C9 -S3154002F00000000000000000000000000000000000B8 -S3154002F01000000000000000000000000000000000A8 -S3154002F0200000000000000000000000000000000098 -S3154002F0300000000000000000000000000000000088 -S3154002F0400000000000000000000000000000000078 -S3154002F0500000000000000000000000000000000068 -S3154002F0600000000000000000000000000000000058 -S3154002F0700000000000000000000000000000000048 -S3154002F0800000000000000000000000000000000038 -S3154002F0900000000000000000000000000000000028 -S3154002F0A00000000000000000000000000000000018 -S3154002F0B00000000000000000000000000000000008 -S3154002F0C000000000000000000000000000000000F8 -S3154002F0D000000000000000000000000000000000E8 -S3154002F0E000000000000000000000000000000000D8 -S3154002F0F000000000000000000000000000000000C8 -S3154002F10000000000000000000000000000000000B7 -S3154002F11000000000000000000000000000000000A7 -S3154002F1200000000000000000000000000000000097 -S3154002F1300000000000000000000000000000000087 -S3154002F1400000000000000000000000000000000077 -S3154002F1500000000000000000000000000000000067 -S3154002F1600000000000000000000000000000000057 -S3154002F1700000000000000000000000000000000047 -S3154002F1800000000000000000000000000000000037 -S3154002F1900000000000000000000000000000000027 -S3154002F1A00000000000000000000000000000000017 -S3154002F1B00000000000000000000000000000000007 -S3154002F1C000000000000000000000000000000000F7 -S3154002F1D000000000000000000000000000000000E7 -S3154002F1E000000000000000000000000000000000D7 -S3154002F1F000000000000000000000000000000000C7 -S3154002F20000000000000000000000000000000000B6 -S3154002F21000000000000000000000000000000000A6 -S3154002F2200000000000000000000000000000000096 -S3154002F2300000000000000000000000000000000086 -S3154002F2400000000000000000000000000000000076 -S3154002F2500000000000000000000000000000000066 -S3154002F2600000000000000000000000000000000056 -S3154002F2700000000000000000000000000000000046 -S3154002F2800000000000000000000000000000000036 -S3154002F2900000000000000000000000000000000026 -S3154002F2A00000000000000000000000000000000016 -S3154002F2B00000000000000000000000000000000006 -S3154002F2C000000000000000000000000000000000F6 -S3154002F2D000000000000000000000000000000000E6 -S3154002F2E000000000000000000000000000000000D6 -S3154002F2F000000000000000000000000000000000C6 -S3154002F30000000000000000000000000000000000B5 -S3154002F31000000000000000000000000000000000A5 -S3154002F3200000000000000000000000000000000095 -S3154002F3300000000000000000000000000000000085 -S3154002F3400000000000000000000000000000000075 -S3154002F3500000000000000000000000000000000065 -S3154002F3600000000000000000000000000000000055 -S3154002F3700000000000000000000000000000000045 -S3154002F3800000000000000000000000000000000035 -S3154002F3900000000000000000000000000000000025 -S3154002F3A00000000000000000000000000000000015 -S3154002F3B00000000000000000000000000000000005 -S3154002F3C000000000000000000000000000000000F5 -S3154002F3D000000000000000000000000000000000E5 -S3154002F3E000000000000000000000000000000000D5 -S3154002F3F000000000000000000000000000000000C5 -S3154002F40000000000000000000000000000000000B4 -S3154002F41000000000000000000000000000000000A4 -S3154002F4200000000000000000000000000000000094 -S3154002F4300000000000000000000000000000000084 -S3154002F4400000000000000000000000000000000074 -S3154002F4500000000000000000000000000000000064 -S3154002F4600000000000000000000000000000000054 -S3154002F4700000000000000000000000000000000044 -S3154002F4800000000000000000000000000000000034 -S3154002F4900000000000000000000000000000000024 -S3154002F4A00000000000000000000000000000000014 -S3154002F4B00000000000000000000000000000000004 -S3154002F4C000000000000000000000000000000000F4 -S3154002F4D000000000000000000000000000000000E4 -S3154002F4E000000000000000000000000000000000D4 -S3154002F4F000000000000000000000000000000000C4 -S3154002F50000000000000000000000000000000000B3 -S3154002F51000000000000000000000000000000000A3 -S3154002F5200000000000000000000000000000000093 -S3154002F5300000000000000000000000000000000083 -S3154002F5400000000000000000000000000000000073 -S3154002F5500000000000000000000000000000000063 -S3154002F5600000000000000000000000000000000053 -S3154002F5700000000000000000000000000000000043 -S3154002F5800000000000000000000000000000000033 -S3154002F5900000000000000000000000000000000023 -S3154002F5A00000000000000000000000000000000013 -S3154002F5B00000000000000000000000000000000003 -S3154002F5C000000000000000000000000000000000F3 -S3154002F5D000000000000000000000000000000000E3 -S3154002F5E000000000000000000000000000000000D3 -S3154002F5F000000000000000000000000000000000C3 -S3154002F60000000000000000000000000000000000B2 -S3154002F61000000000000000000000000000000000A2 -S3154002F6200000000000000000000000000000000092 -S3154002F6300000000000000000000000000000000082 -S3154002F6400000000000000000000000000000000072 -S3154002F6500000000000000000000000000000000062 -S3154002F6600000000000000000000000000000000052 -S3154002F6700000000000000000000000000000000042 -S3154002F6800000000000000000000000000000000032 -S3154002F6900000000000000000000000000000000022 -S3154002F6A00000000000000000000000000000000012 -S3154002F6B00000000000000000000000000000000002 -S3154002F6C000000000000000000000000000000000F2 -S3154002F6D000000000000000000000000000000000E2 -S3154002F6E000000000000000000000000000000000D2 -S3154002F6F000000000000000000000000000000000C2 -S3154002F70000000000000000000000000000000000B1 -S3154002F71000000000000000000000000000000000A1 -S3154002F7200000000000000000000000000000000091 -S3154002F7300000000000000000000000000000000081 -S3154002F7400000000000000000000000000000000071 -S3154002F7500000000000000000000000000000000061 -S3154002F7600000000000000000000000000000000051 -S3154002F7700000000000000000000000000000000041 -S3154002F7800000000000000000000000000000000031 -S3154002F7900000000000000000000000000000000021 -S3154002F7A00000000000000000000000000000000011 -S3154002F7B00000000000000000000000000000000001 -S3154002F7C000000000000000000000000000000000F1 -S3154002F7D000000000000000000000000000000000E1 -S3154002F7E000000000000000000000000000000000D1 -S3154002F7F000000000000000000000000000000000C1 -S3154002F80000000000000000000000000000000000B0 -S3154002F81000000000000000000000000000000000A0 -S3154002F8200000000000000000000000000000000090 -S3154002F8300000000000000000000000000000000080 -S3154002F8400000000000000000000000000000000070 -S3154002F8500000000000000000000000000000000060 -S3154002F8600000000000000000000000000000000050 -S3154002F8700000000000000000000000000000000040 -S3154002F8800000000000000000000000000000000030 -S3154002F8900000000000000000000000000000000020 -S3154002F8A00000000000000000000000000000000010 -S3154002F8B00000000000000000000000000000000000 -S3154002F8C000000000000000000000000000000000F0 -S3154002F8D000000000000000000000000000000000E0 -S3154002F8E000000000000000000000000000000000D0 -S3154002F8F000000000000000000000000000000000C0 -S3154002F90000000000000000000000000000000000AF -S3154002F910000000000000000000000000000000009F -S3154002F920000000000000000000000000000000008F -S3154002F930000000000000000000000000000000007F -S3154002F940000000000000000000000000000000006F -S3154002F950000000000000000000000000000000005F -S3154002F960000000000000000000000000000000004F -S3154002F970000000000000000000000000000000003F -S3154002F980000000000000000000000000000000002F -S3154002F990000000000000000000000000000000001F -S3154002F9A0000000000000000000000000000000000F -S3154002F9B000000000000000000000000000000000FF -S3154002F9C000000000000000000000000000000000EF -S3154002F9D000000000000000000000000000000000DF -S3154002F9E000000000000000000000000000000000CF -S3154002F9F000000000000000000000000000000000BF -S3154002FA0000000000000000000000000000000000AE -S3154002FA10000000000000000000000000000000009E -S3154002FA20000000000000000000000000000000008E -S3154002FA30000000000000000000000000000000007E -S3154002FA40000000000000000000000000000000006E -S3154002FA50000000000000000000000000000000005E -S3154002FA60000000000000000000000000000000004E -S3154002FA70000000000000000000000000000000003E -S3154002FA80000000000000000000000000000000002E -S3154002FA90000000000000000000000000000000001E -S3154002FAA0000000000000000000000000000000000E -S3154002FAB000000000000000000000000000000000FE -S3154002FAC000000000000000000000000000000000EE -S3154002FAD000000000000000000000000000000000DE -S3154002FAE000000000000000000000000000000000CE -S3154002FAF000000000000000000000000000000000BE -S3154002FB0000000000000000000000000000000000AD -S3154002FB10000000000000000000000000000000009D -S3154002FB20000000000000000000000000000000008D -S3154002FB30000000000000000000000000000000007D -S3154002FB40000000000000000000000000000000006D -S3154002FB50000000000000000000000000000000005D -S3154002FB60000000000000000000000000000000004D -S3154002FB70000000000000000000000000000000003D -S3154002FB80000000000000000000000000000000002D -S3154002FB90000000000000000000000000000000001D -S3154002FBA0000000000000000000000000000000000D -S3154002FBB000000000000000000000000000000000FD -S3154002FBC000000000000000000000000000000000ED -S3154002FBD000000000000000000000000000000000DD -S3154002FBE000000000000000000000000000000000CD -S3154002FBF000000000000000000000000000000000BD -S3154002FC0000000000000000000000000000000000AC -S3154002FC10000000000000000000000000000000009C -S3154002FC20000000000000000000000000000000008C -S3154002FC30000000000000000000000000000000007C -S3154002FC40000000000000000000000000000000006C -S3154002FC50000000000000000000000000000000005C -S3154002FC60000000000000000000000000000000004C -S3154002FC70000000000000000000000000000000003C -S3154002FC80000000000000000000000000000000002C -S3154002FC90000000000000000000000000000000001C -S3154002FCA0000000000000000000000000000000000C -S3154002FCB000000000000000000000000000000000FC -S3154002FCC000000000000000000000000000000000EC -S3154002FCD000000000000000000000000000000000DC -S3154002FCE000000000000000000000000000000000CC -S3154002FCF000000000000000000000000000000000BC -S3154002FD0000000000000000000000000000000000AB -S3154002FD10000000000000000000000000000000009B -S3154002FD20000000000000000000000000000000008B -S3154002FD30000000000000000000000000000000007B -S3154002FD40000000000000000000000000000000006B -S3154002FD50000000000000000000000000000000005B -S3154002FD60000000000000000000000000000000004B -S3154002FD70000000000000000000000000000000003B -S3154002FD80000000000000000000000000000000002B -S3154002FD90000000000000000000000000000000001B -S3154002FDA0000000000000000000000000000000000B -S3154002FDB000000000000000000000000000000000FB -S3154002FDC000000000000000000000000000000000EB -S3154002FDD000000000000000000000000000000000DB -S3154002FDE000000000000000000000000000000000CB -S3154002FDF000000000000000000000000000000000BB -S3154002FE0000000000000000000000000000000000AA -S3154002FE10000000000000000000000000000000009A -S3154002FE20000000000000000000000000000000008A -S3154002FE30000000000000000000000000000000007A -S3154002FE40000000000000000000000000000000006A -S3154002FE50000000000000000000000000000000005A -S3154002FE60000000000000000000000000000000004A -S3154002FE70000000000000000000000000000000003A -S3154002FE80000000000000000000000000000000002A -S3154002FE90000000000000000000000000000000001A -S3154002FEA0000000000000000000000000000000000A -S3154002FEB000000000000000000000000000000000FA -S3154002FEC000000000000000000000000000000000EA -S3154002FED000000000000000000000000000000000DA -S3154002FEE000000000000000000000000000000000CA -S3154002FEF000000000000000000000000000000000BA -S3154002FF0000000000000000000000000000000000A9 -S3154002FF100000000000000000000000000000000099 -S3154002FF200000000000000000000000000000000089 -S3154002FF300000000000000000000000000000000079 -S3154002FF400000000000000000000000000000000069 -S3154002FF500000000000000000000000000000000059 -S3154002FF600000000000000000000000000000000049 -S3154002FF700000000000000000000000000000000039 -S3154002FF800000000000000000000000000000000029 -S3154002FF900000000000000000000000000000000019 -S3154002FFA00000000000000000000000000000000009 -S3154002FFB000000000000000000000000000000000F9 -S3154002FFC000000000000000000000000000000000E9 -S3154002FFD000000000000000000000000000000000D9 -S3154002FFE000000000000000000000000000000000C9 -S3154002FFF000000000000000000000000000000000B9 -S3154003000000000000000000000000000000000000A7 -S315400300100000000000000000000000000000000097 -S315400300200000000000000000000000000000000087 -S315400300300000000000000000000000000000000077 -S315400300400000000000000000000000000000000067 -S315400300500000000000000000000000000000000057 -S315400300600000000000000000000000000000000047 -S315400300700000000000000000000000000000000037 -S315400300800000000000000000000000000000000027 -S315400300900000000000000000000000000000000017 -S315400300A00000000000000000000000000000000007 -S315400300B000000000000000000000000000000000F7 -S315400300C000000000000000000000000000000000E7 -S315400300D000000000000000000000000000000000D7 -S315400300E000000000000000000000000000000000C7 -S315400300F000000000000000000000000000000000B7 -S3154003010000000000000000000000000000000000A6 -S315400301100000000000000000000000000000000096 -S315400301200000000000000000000000000000000086 -S315400301300000000000000000000000000000000076 -S315400301400000000000000000000000000000000066 -S315400301500000000000000000000000000000000056 -S315400301600000000000000000000000000000000046 -S315400301700000000000000000000000000000000036 -S315400301800000000000000000000000000000000026 -S315400301900000000000000000000000000000000016 -S315400301A00000000000000000000000000000000006 -S315400301B000000000000000000000000000000000F6 -S315400301C000000000000000000000000000000000E6 -S315400301D000000000000000000000000000000000D6 -S315400301E000000000000000000000000000000000C6 -S315400301F000000000000000000000000000000000B6 -S3154003020000000000000000000000000000000000A5 -S315400302100000000000000000000000000000000095 -S315400302200000000000000000000000000000000085 -S315400302300000000000000000000000000000000075 -S315400302400000000000000000000000000000000065 -S315400302500000000000000000000000000000000055 -S315400302600000000000000000000000000000000045 -S315400302700000000000000000000000000000000035 -S315400302800000000000000000000000000000000025 -S315400302900000000000000000000000000000000015 -S315400302A00000000000000000000000000000000005 -S315400302B000000000000000000000000000000000F5 -S315400302C000000000000000000000000000000000E5 -S315400302D000000000000000000000000000000000D5 -S315400302E000000000000000000000000000000000C5 -S315400302F000000000000000000000000000000000B5 -S3154003030000000000000000000000000000000000A4 -S315400303100000000000000000000000000000000094 -S315400303200000000000000000000000000000000084 -S315400303300000000000000000000000000000000074 -S315400303400000000000000000000000000000000064 -S315400303500000000000000000000000000000000054 -S315400303600000000000000000000000000000000044 -S315400303700000000000000000000000000000000034 -S315400303800000000000000000000000000000000024 -S315400303900000000000000000000000000000000014 -S315400303A00000000000000000000000000000000004 -S315400303B000000000000000000000000000000000F4 -S315400303C000000000000000000000000000000000E4 -S315400303D000000000000000000000000000000000D4 -S315400303E000000000000000000000000000000000C4 -S315400303F000000000000000000000000000000000B4 -S3154003040000000000000000000000000000000000A3 -S315400304100000000000000000000000000000000093 -S315400304200000000000000000000000000000000083 -S315400304300000000000000000000000000000000073 -S315400304400000000000000000000000000000000063 -S315400304500000000000000000000000000000000053 -S315400304600000000000000000000000000000000043 -S315400304700000000000000000000000000000000033 -S315400304800000000000000000000000000000000023 -S315400304900000000000000000000000000000000013 -S315400304A00000000000000000000000000000000003 -S315400304B000000000000000000000000000000000F3 -S315400304C000000000000000000000000000000000E3 -S315400304D000000000000000000000000000000000D3 -S315400304E000000000000000000000000000000000C3 -S315400304F000000000000000000000000000000000B3 -S3154003050000000000000000000000000000000000A2 -S315400305100000000000000000000000000000000092 -S315400305200000000000000000000000000000000082 -S315400305300000000000000000000000000000000072 -S315400305400000000000000000000000000000000062 -S315400305500000000000000000000000000000000052 -S315400305600000000000000000000000000000000042 -S315400305700000000000000000000000000000000032 -S315400305800000000000000000000000000000000022 -S315400305900000000000000000000000000000000012 -S315400305A00000000000000000000000000000000002 -S315400305B000000000000000000000000000000000F2 -S315400305C000000000000000000000000000000000E2 -S315400305D000000000000000000000000000000000D2 -S315400305E000000000000000000000000000000000C2 -S315400305F000000000000000000000000000000000B2 -S3154003060000000000000000000000000000000000A1 -S315400306100000000000000000000000000000000091 -S315400306200000000000000000000000000000000081 -S315400306300000000000000000000000000000000071 -S315400306400000000000000000000000000000000061 -S315400306500000000000000000000000000000000051 -S315400306600000000000000000000000000000000041 -S315400306700000000000000000000000000000000031 -S315400306800000000000000000000000000000000021 -S315400306900000000000000000000000000000000011 -S315400306A00000000000000000000000000000000001 -S315400306B000000000000000000000000000000000F1 -S315400306C000000000000000000000000000000000E1 -S315400306D000000000000000000000000000000000D1 -S315400306E000000000000000000000000000000000C1 -S315400306F000000000000000000000000000000000B1 -S3154003070000000000000000000000000000000000A0 -S315400307100000000000000000000000000000000090 -S315400307200000000000000000000000000000000080 -S315400307300000000000000000000000000000000070 -S315400307400000000000000000000000000000000060 -S315400307500000000000000000000000000000000050 -S315400307600000000000000000000000000000000040 -S315400307700000000000000000000000000000000030 -S315400307800000000000000000000000000000000020 -S315400307900000000000000000000000000000000010 -S315400307A00000000000000000000000000000000000 -S315400307B000000000000000000000000000000000F0 -S315400307C000000000000000000000000000000000E0 -S315400307D000000000000000000000000000000000D0 -S315400307E000000000000000000000000000000000C0 -S315400307F000000000000000000000000000000000B0 -S31540030800000000000000000000000000000000009F -S31540030810000000000000000000000000000000008F -S31540030820000000000000000000000000000000007F -S31540030830000000000000000000000000000000006F -S31540030840000000000000000000000000000000005F -S31540030850000000000000000000000000000000004F -S31540030860000000000000000000000000000000003F -S31540030870000000000000000000000000000000002F -S31540030880000000000000000000000000000000001F -S31540030890000000000000000000000000000000000F -S315400308A000000000000000000000000000000000FF -S315400308B000000000000000000000000000000000EF -S315400308C000000000000000000000000000000000DF -S315400308D000000000000000000000000000000000CF -S315400308E000000000000000000000000000000000BF -S315400308F000000000000000000000000000000000AF -S31540030900000000000000000000000000000000009E -S31540030910000000000000000000000000000000008E -S31540030920000000000000000000000000000000007E -S31540030930000000000000000000000000000000006E -S31540030940000000000000000000000000000000005E -S31540030950000000000000000000000000000000004E -S31540030960000000000000000000000000000000003E -S31540030970000000000000000000000000000000002E -S31540030980000000000000000000000000000000001E -S31540030990000000000000000000000000000000000E -S315400309A000000000000000000000000000000000FE -S315400309B000000000000000000000000000000000EE -S315400309C000000000000000000000000000000000DE -S315400309D000000000000000000000000000000000CE -S315400309E000000000000000000000000000000000BE -S315400309F000000000000000000000000000000000AE -S31540030A00000000000000000000000000000000009D -S31540030A10000000000000000000000000000000008D -S31540030A20000000000000000000000000000000007D -S31540030A30000000000000000000000000000000006D -S31540030A40000000000000000000000000000000005D -S31540030A50000000000000000000000000000000004D -S31540030A60000000000000000000000000000000003D -S31540030A70000000000000000000000000000000002D -S31540030A80000000000000000000000000000000001D -S31540030A90000000000000000000000000000000000D -S31540030AA000000000000000000000000000000000FD -S31540030AB000000000000000000000000000000000ED -S31540030AC000000000000000000000000000000000DD -S31540030AD000000000000000000000000000000000CD -S31540030AE000000000000000000000000000000000BD -S31540030AF000000000000000000000000000000000AD -S31540030B00000000000000000000000000000000009C -S31540030B10000000000000000000000000000000008C -S31540030B20000000000000000000000000000000007C -S31540030B30000000000000000000000000000000006C -S31540030B40000000000000000000000000000000005C -S31540030B50000000000000000000000000000000004C -S31540030B60000000000000000000000000000000003C -S31540030B70000000000000000000000000000000002C -S31540030B80000000000000000000000000000000001C -S31540030B90000000000000000000000000000000000C -S31540030BA000000000000000000000000000000000FC -S31540030BB000000000000000000000000000000000EC -S31540030BC000000000000000000000000000000000DC -S31540030BD000000000000000000000000000000000CC -S31540030BE000000000000000000000000000000000BC -S31540030BF000000000000000000000000000000000AC -S31540030C00000000000000000000000000000000009B -S31540030C10000000000000000000000000000000008B -S31540030C20000000000000000000000000000000007B -S31540030C30000000000000000000000000000000006B -S31540030C40000000000000000000000000000000005B -S31540030C50000000000000000000000000000000004B -S31540030C60000000000000000000000000000000003B -S31540030C70000000000000000000000000000000002B -S31540030C80000000000000000000000000000000001B -S31540030C90000000000000000000000000000000000B -S31540030CA000000000000000000000000000000000FB -S31540030CB000000000000000000000000000000000EB -S31540030CC000000000000000000000000000000000DB -S31540030CD000000000000000000000000000000000CB -S31540030CE000000000000000000000000000000000BB -S31540030CF000000000000000000000000000000000AB -S31540030D00000000000000000000000000000000009A -S31540030D10000000000000000000000000000000008A -S31540030D20000000000000000000000000000000007A -S31540030D30000000000000000000000000000000006A -S31540030D40000000000000000000000000000000005A -S31540030D50000000000000000000000000000000004A -S31540030D60000000000000000000000000000000003A -S31540030D70000000000000000000000000000000002A -S31540030D80000000000000000000000000000000001A -S31540030D90000000000000000000000000000000000A -S31540030DA000000000000000000000000000000000FA -S31540030DB000000000000000000000000000000000EA -S31540030DC000000000000000000000000000000000DA -S31540030DD000000000000000000000000000000000CA -S31540030DE000000000000000000000000000000000BA -S31540030DF000000000000000000000000000000000AA -S31540030E000000000000000000000000000000000099 -S31540030E100000000000000000000000000000000089 -S31540030E200000000000000000000000000000000079 -S31540030E300000000000000000000000000000000069 -S31540030E400000000000000000000000000000000059 -S31540030E500000000000000000000000000000000049 -S31540030E600000000000000000000000000000000039 -S31540030E700000000000000000000000000000000029 -S31540030E800000000000000000000000000000000019 -S31540030E900000000000000000000000000000000009 -S31540030EA000000000000000000000000000000000F9 -S31540030EB000000000000000000000000000000000E9 -S31540030EC000000000000000000000000000000000D9 -S31540030ED000000000000000000000000000000000C9 -S31540030EE000000000000000000000000000000000B9 -S31540030EF000000000000000000000000000000000A9 -S31540030F000000000000000000000000000000000098 -S31540030F100000000000000000000000000000000088 -S31540030F200000000000000000000000000000000078 -S31540030F300000000000000000000000000000000068 -S31540030F400000000000000000000000000000000058 -S31540030F500000000000000000000000000000000048 -S31540030F600000000000000000000000000000000038 -S31540030F700000000000000000000000000000000028 -S31540030F800000000000000000000000000000000018 -S31540030F900000000000000000000000000000000008 -S31540030FA000000000000000000000000000000000F8 -S31540030FB000000000000000000000000000000000E8 -S31540030FC000000000000000000000000000000000D8 -S31540030FD000000000000000000000000000000000C8 -S31540030FE000000000000000000000000000000000B8 -S31540030FF000000000000000000000000000000000A8 -S315400310000000000000000000000000000000000097 -S315400310100000000000000000000000000000000087 -S315400310200000000000000000000000000000000077 -S315400310300000000000000000000000000000000067 -S315400310400000000000000000000000000000000057 -S315400310500000000000000000000000000000000047 -S315400310600000000000000000000000000000000037 -S315400310700000000000000000000000000000000027 -S315400310800000000000000000000000000000000017 -S315400310900000000000000000000000000000000007 -S315400310A000000000000000000000000000000000F7 -S315400310B000000000000000000000000000000000E7 -S315400310C000000000000000000000000000000000D7 -S315400310D000000000000000000000000000000000C7 -S315400310E000000000000000000000000000000000B7 -S315400310F000000000000000000000000000000000A7 -S315400311000000000000000000000000000000000096 -S315400311100000000000000000000000000000000086 -S315400311200000000000000000000000000000000076 -S315400311300000000000000000000000000000000066 -S315400311400000000000000000000000000000000056 -S315400311500000000000000000000000000000000046 -S315400311600000000000000000000000000000000036 -S315400311700000000000000000000000000000000026 -S315400311800000000000000000000000000000000016 -S315400311900000000000000000000000000000000006 -S315400311A000000000000000000000000000000000F6 -S315400311B000000000000000000000000000000000E6 -S315400311C000000000000000000000000000000000D6 -S315400311D000000000000000000000000000000000C6 -S315400311E000000000000000000000000000000000B6 -S315400311F000000000000000000000000000000000A6 -S315400312000000000000000000000000000000000095 -S315400312100000000000000000000000000000000085 -S315400312200000000000000000000000000000000075 -S315400312300000000000000000000000000000000065 -S315400312400000000000000000000000000000000055 -S315400312500000000000000000000000000000000045 -S315400312600000000000000000000000000000000035 -S315400312700000000000000000000000000000000025 -S315400312800000000000000000000000000000000015 -S315400312900000000000000000000000000000000005 -S315400312A000000000000000000000000000000000F5 -S315400312B000000000000000000000000000000000E5 -S315400312C000000000000000000000000000000000D5 -S315400312D000000000000000000000000000000000C5 -S315400312E000000000000000000000000000000000B5 -S315400312F000000000000000000000000000000000A5 -S315400313000000000000000000000000000000000094 -S315400313100000000000000000000000000000000084 -S315400313200000000000000000000000000000000074 -S315400313300000000000000000000000000000000064 -S315400313400000000000000000000000000000000054 -S315400313500000000000000000000000000000000044 -S315400313600000000000000000000000000000000034 -S315400313700000000000000000000000000000000024 -S315400313800000000000000000000000000000000014 -S315400313900000000000000000000000000000000004 -S315400313A000000000000000000000000000000000F4 -S315400313B000000000000000000000000000000000E4 -S315400313C000000000000000000000000000000000D4 -S315400313D000000000000000000000000000000000C4 -S315400313E000000000000000000000000000000000B4 -S315400313F000000000000000000000000000000000A4 -S315400314000000000000000000000000000000000093 -S315400314100000000000000000000000000000000083 -S315400314200000000000000000000000000000000073 -S315400314300000000000000000000000000000000063 -S315400314400000000000000000000000000000000053 -S315400314500000000000000000000000000000000043 -S315400314600000000000000000000000000000000033 -S315400314700000000000000000000000000000000023 -S315400314800000000000000000000000000000000013 -S315400314900000000000000000000000000000000003 -S315400314A000000000000000000000000000000000F3 -S315400314B000000000000000000000000000000000E3 -S315400314C000000000000000000000000000000000D3 -S315400314D000000000000000000000000000000000C3 -S315400314E000000000000000000000000000000000B3 -S315400314F000000000000000000000000000000000A3 -S315400315000000000000000000000000000000000092 -S315400315100000000000000000000000000000000082 -S315400315200000000000000000000000000000000072 -S315400315300000000000000000000000000000000062 -S315400315400000000000000000000000000000000052 -S315400315500000000000000000000000000000000042 -S315400315600000000000000000000000000000000032 -S315400315700000000000000000000000000000000022 -S315400315800000000000000000000000000000000012 -S315400315900000000000000000000000000000000002 -S315400315A000000000000000000000000000000000F2 -S315400315B000000000000000000000000000000000E2 -S315400315C000000000000000000000000000000000D2 -S315400315D000000000000000000000000000000000C2 -S315400315E000000000000000000000000000000000B2 -S315400315F000000000000000000000000000000000A2 -S315400316000000000000000000000000000000000091 -S315400316100000000000000000000000000000000081 -S315400316200000000000000000000000000000000071 -S315400316300000000000000000000000000000000061 -S315400316400000000000000000000000000000000051 -S315400316500000000000000000000000000000000041 -S315400316600000000000000000000000000000000031 -S315400316700000000000000000000000000000000021 -S315400316800000000000000000000000000000000011 -S315400316900000000000000000000000000000000001 -S315400316A000000000000000000000000000000000F1 -S315400316B000000000000000000000000000000000E1 -S315400316C000000000000000000000000000000000D1 -S315400316D000000000000000000000000000000000C1 -S315400316E000000000000000000000000000000000B1 -S315400316F000000000000000000000000000000000A1 -S315400317000000000000000000000000000000000090 -S315400317100000000000000000000000000000000080 -S315400317200000000000000000000000000000000070 -S315400317300000000000000000000000000000000060 -S315400317400000000000000000000000000000000050 -S315400317500000000000000000000000000000000040 -S315400317600000000000000000000000000000000030 -S315400317700000000000000000000000000000000020 -S315400317800000000000000000000000000000000010 -S315400317900000000000000000000000000000000000 -S315400317A000000000000000000000000000000000F0 -S315400317B000000000000000000000000000000000E0 -S315400317C000000000000000000000000000000000D0 -S315400317D000000000000000000000000000000000C0 -S315400317E000000000000000000000000000000000B0 -S315400317F000000000000000000000000000000000A0 -S31540031800000000000000000000000000000000008F -S31540031810000000000000000000000000000000007F -S31540031820000000000000000000000000000000006F -S31540031830000000000000000000000000000000005F -S31540031840000000000000000000000000000000004F -S31540031850000000000000000000000000000000003F -S31540031860000000000000000000000000000000002F -S31540031870000000000000000000000000000000001F -S31540031880000000000000000000000000000000000F -S3154003189000000000000000000000000000000000FF -S315400318A000000000000000000000000000000000EF -S315400318B000000000000000000000000000000000DF -S315400318C000000000000000000000000000000000CF -S315400318D000000000000000000000000000000000BF -S315400318E000000000000000000000000000000000AF -S315400318F0000000000000000000000000000000009F -S31540031900000000000000000000000000000000008E -S31540031910000000000000000000000000000000007E -S31540031920000000000000000000000000000000006E -S31540031930000000000000000000000000000000005E -S31540031940000000000000000000000000000000004E -S31540031950000000000000000000000000000000003E -S31540031960000000000000000000000000000000002E -S31540031970000000000000000000000000000000001E -S31540031980000000000000000000000000000000000E -S3154003199000000000000000000000000000000000FE -S315400319A000000000000000000000000000000000EE -S315400319B000000000000000000000000000000000DE -S315400319C000000000000000000000000000000000CE -S315400319D000000000000000000000000000000000BE -S315400319E000000000000000000000000000000000AE -S315400319F0000000000000000000000000000000009E -S31540031A00000000000000000000000000000000008D -S31540031A10000000000000000000000000000000007D -S31540031A20000000000000000000000000000000006D -S31540031A30000000000000000000000000000000005D -S31540031A40000000000000000000000000000000004D -S31540031A50000000000000000000000000000000003D -S31540031A60000000000000000000000000000000002D -S31540031A70000000000000000000000000000000001D -S31540031A80000000000000000000000000000000000D -S31540031A9000000000000000000000000000000000FD -S31540031AA000000000000000000000000000000000ED -S31540031AB000000000000000000000000000000000DD -S31540031AC000000000000000000000000000000000CD -S31540031AD000000000000000000000000000000000BD -S31540031AE000000000000000000000000000000000AD -S31540031AF0000000000000000000000000000000009D -S31540031B00000000000000000000000000000000008C -S31540031B10000000000000000000000000000000007C -S31540031B20000000000000000000000000000000006C -S31540031B30000000000000000000000000000000005C -S31540031B40000000000000000000000000000000004C -S31540031B50000000000000000000000000000000003C -S31540031B60000000000000000000000000000000002C -S31540031B70000000000000000000000000000000001C -S31540031B80000000000000000000000000000000000C -S31540031B9000000000000000000000000000000000FC -S31540031BA000000000000000000000000000000000EC -S31540031BB000000000000000000000000000000000DC -S31540031BC000000000000000000000000000000000CC -S31540031BD000000000000000000000000000000000BC -S31540031BE000000000000000000000000000000000AC -S31540031BF0000000000000000000000000000000009C -S31540031C00000000000000000000000000000000008B -S31540031C10000000000000000000000000000000007B -S31540031C20000000000000000000000000000000006B -S31540031C30000000000000000000000000000000005B -S31540031C40000000000000000000000000000000004B -S31540031C50000000000000000000000000000000003B -S31540031C60000000000000000000000000000000002B -S31540031C70000000000000000000000000000000001B -S31540031C80000000000000000000000000000000000B -S31540031C9000000000000000000000000000000000FB -S31540031CA000000000000000000000000000000000EB -S31540031CB000000000000000000000000000000000DB -S31540031CC000000000000000000000000000000000CB -S31540031CD000000000000000000000000000000000BB -S31540031CE000000000000000000000000000000000AB -S31540031CF0000000000000000000000000000000009B -S31540031D00000000000000000000000000000000008A -S31540031D10000000000000000000000000000000007A -S31540031D20000000000000000000000000000000006A -S31540031D30000000000000000000000000000000005A -S31540031D40000000000000000000000000000000004A -S31540031D50000000000000000000000000000000003A -S31540031D60000000000000000000000000000000002A -S31540031D70000000000000000000000000000000001A -S31540031D80000000000000000000000000000000000A -S31540031D9000000000000000000000000000000000FA -S31540031DA000000000000000000000000000000000EA -S31540031DB000000000000000000000000000000000DA -S31540031DC000000000000000000000000000000000CA -S31540031DD000000000000000000000000000000000BA -S31540031DE000000000000000000000000000000000AA -S31540031DF0000000000000000000000000000000009A -S31540031E000000000000000000000000000000000089 -S31540031E100000000000000000000000000000000079 -S31540031E200000000000000000000000000000000069 -S31540031E300000000000000000000000000000000059 -S31540031E400000000000000000000000000000000049 -S31540031E500000000000000000000000000000000039 -S31540031E600000000000000000000000000000000029 -S31540031E700000000000000000000000000000000019 -S31540031E800000000000000000000000000000000009 -S31540031E9000000000000000000000000000000000F9 -S31540031EA000000000000000000000000000000000E9 -S31540031EB000000000000000000000000000000000D9 -S31540031EC000000000000000000000000000000000C9 -S31540031ED000000000000000000000000000000000B9 -S31540031EE000000000000000000000000000000000A9 -S31540031EF00000000000000000000000000000000099 -S31540031F000000000000000000000000000000000088 -S31540031F100000000000000000000000000000000078 -S31540031F200000000000000000000000000000000068 -S31540031F300000000000000000000000000000000058 -S31540031F400000000000000000000000000000000048 -S31540031F500000000000000000000000000000000038 -S31540031F600000000000000000000000000000000028 -S31540031F700000000000000000000000000000000018 -S31540031F800000000000000000000000000000000008 -S31540031F9000000000000000000000000000000000F8 -S31540031FA000000000000000000000000000000000E8 -S31540031FB000000000000000000000000000000000D8 -S31540031FC000000000000000000000000000000000C8 -S31540031FD000000000000000000000000000000000B8 -S31540031FE000000000000000000000000000000000A8 -S31540031FF00000000000000000000000000000000098 -S315400320000000000000000000000000000000000087 -S315400320100000000000000000000000000000000077 -S315400320200000000000000000000000000000000067 -S315400320300000000000000000000000000000000057 -S315400320400000000000000000000000000000000047 -S315400320500000000000000000000000000000000037 -S315400320600000000000000000000000000000000027 -S315400320700000000000000000000000000000000017 -S315400320800000000000000000000000000000000007 -S3154003209000000000000000000000000000000000F7 -S315400320A000000000000000000000000000000000E7 -S315400320B000000000000000000000000000000000D7 -S315400320C000000000000000000000000000000000C7 -S315400320D000000000000000000000000000000000B7 -S315400320E000000000000000000000000000000000A7 -S315400320F00000000000000000000000000000000097 -S315400321000000000000000000000000000000000086 -S315400321100000000000000000000000000000000076 -S315400321200000000000000000000000000000000066 -S315400321300000000000000000000000000000000056 -S315400321400000000000000000000000000000000046 -S315400321500000000000000000000000000000000036 -S315400321600000000000000000000000000000000026 -S315400321700000000000000000000000000000000016 -S315400321800000000000000000000000000000000006 -S3154003219000000000000000000000000000000000F6 -S315400321A000000000000000000000000000000000E6 -S315400321B000000000000000000000000000000000D6 -S315400321C000000000000000000000000000000000C6 -S315400321D000000000000000000000000000000000B6 -S315400321E000000000000000000000000000000000A6 -S315400321F00000000000000000000000000000000096 -S315400322000000000000000000000000000000000085 -S315400322100000000000000000000000000000000075 -S315400322200000000000000000000000000000000065 -S315400322300000000000000000000000000000000055 -S315400322400000000000000000000000000000000045 -S315400322500000000000000000000000000000000035 -S315400322600000000000000000000000000000000025 -S315400322700000000000000000000000000000000015 -S315400322800000000000000000000000000000000005 -S3154003229000000000000000000000000000000000F5 -S315400322A000000000000000000000000000000000E5 -S315400322B000000000000000000000000000000000D5 -S315400322C000000000000000000000000000000000C5 -S315400322D000000000000000000000000000000000B5 -S315400322E000000000000000000000000000000000A5 -S315400322F00000000000000000000000000000000095 -S315400323000000000000000000000000000000000084 -S315400323100000000000000000000000000000000074 -S315400323200000000000000000000000000000000064 -S315400323300000000000000000000000000000000054 -S315400323400000000000000000000000000000000044 -S315400323500000000000000000000000000000000034 -S315400323600000000000000000000000000000000024 -S315400323700000000000000000000000000000000014 -S315400323800000000000000000000000000000000004 -S3154003239000000000000000000000000000000000F4 -S315400323A000000000000000000000000000000000E4 -S315400323B000000000000000000000000000000000D4 -S315400323C000000000000000000000000000000000C4 -S315400323D000000000000000000000000000000000B4 -S315400323E000000000000000000000000000000000A4 -S315400323F00000000000000000000000000000000094 -S315400324000000000000000000000000000000000083 -S315400324100000000000000000000000000000000073 -S315400324200000000000000000000000000000000063 -S315400324300000000000000000000000000000000053 -S315400324400000000000000000000000000000000043 -S315400324500000000000000000000000000000000033 -S315400324600000000000000000000000000000000023 -S315400324700000000000000000000000000000000013 -S315400324800000000000000000000000000000000003 -S3154003249000000000000000000000000000000000F3 -S315400324A000000000000000000000000000000000E3 -S315400324B000000000000000000000000000000000D3 -S315400324C000000000000000000000000000000000C3 -S315400324D000000000000000000000000000000000B3 -S315400324E000000000000000000000000000000000A3 -S315400324F00000000000000000000000000000000093 -S315400325000000000000000000000000000000000082 -S315400325100000000000000000000000000000000072 -S315400325200000000000000000000000000000000062 -S315400325300000000000000000000000000000000052 -S315400325400000000000000000000000000000000042 -S315400325500000000000000000000000000000000032 -S315400325600000000000000000000000000000000022 -S315400325700000000000000000000000000000000012 -S315400325800000000000000000000000000000000002 -S3154003259000000000000000000000000000000000F2 -S315400325A000000000000000000000000000000000E2 -S315400325B000000000000000000000000000000000D2 -S315400325C000000000000000000000000000000000C2 -S315400325D000000000000000000000000000000000B2 -S315400325E000000000000000000000000000000000A2 -S315400325F00000000000000000000000000000000092 -S315400326000000000000000000000000000000000081 -S315400326100000000000000000000000000000000071 -S315400326200000000000000000000000000000000061 -S315400326300000000000000000000000000000000051 -S315400326400000000000000000000000000000000041 -S315400326500000000000000000000000000000000031 -S315400326600000000000000000000000000000000021 -S315400326700000000000000000000000000000000011 -S315400326800000000000000000000000000000000001 -S3154003269000000000000000000000000000000000F1 -S315400326A000000000000000000000000000000000E1 -S315400326B000000000000000000000000000000000D1 -S315400326C000000000000000000000000000000000C1 -S315400326D000000000000000000000000000000000B1 -S315400326E000000000000000000000000000000000A1 -S315400326F00000000000000000000000000000000091 -S315400327000000000000000000000000000000000080 -S315400327100000000000000000000000000000000070 -S315400327200000000000000000000000000000000060 -S315400327300000000000000000000000000000000050 -S315400327400000000000000000000000000000000040 -S315400327500000000000000000000000000000000030 -S315400327600000000000000000000000000000000020 -S315400327700000000000000000000000000000000010 -S315400327800000000000000000000000000000000000 -S3154003279000000000000000000000000000000000F0 -S315400327A000000000000000000000000000000000E0 -S315400327B000000000000000000000000000000000D0 -S315400327C000000000000000000000000000000000C0 -S315400327D000000000000000000000000000000000B0 -S315400327E000000000000000000000000000000000A0 -S315400327F00000000000000000000000000000000090 -S31540032800000000000000000000000000000000007F -S31540032810000000000000000000000000000000006F -S31540032820000000000000000000000000000000005F -S31540032830000000000000000000000000000000004F -S31540032840000000000000000000000000000000003F -S31540032850000000000000000000000000000000002F -S31540032860000000000000000000000000000000001F -S31540032870000000000000000000000000000000000F -S3154003288000000000000000000000000000000000FF -S3154003289000000000000000000000000000000000EF -S315400328A000000000000000000000000000000000DF -S315400328B000000000000000000000000000000000CF -S315400328C000000000000000000000000000000000BF -S315400328D000000000000000000000000000000000AF -S315400328E0000000000000000000000000000000009F -S315400328F0000000000000000000000000000000008F -S31540032900000000000000000000000000000000007E -S31540032910000000000000000000000000000000006E -S31540032920000000000000000000000000000000005E -S31540032930000000000000000000000000000000004E -S31540032940000000000000000000000000000000003E -S31540032950000000000000000000000000000000002E -S31540032960000000000000000000000000000000001E -S31540032970000000000000000000000000000000000E -S3154003298000000000000000000000000000000000FE -S3154003299000000000000000000000000000000000EE -S315400329A000000000000000000000000000000000DE -S315400329B000000000000000000000000000000000CE -S315400329C000000000000000000000000000000000BE -S315400329D000000000000000000000000000000000AE -S315400329E0000000000000000000000000000000009E -S315400329F0000000000000000000000000000000008E -S31540032A00000000000000000000000000000000007D -S31540032A10000000000000000000000000000000006D -S31540032A20000000000000000000000000000000005D -S31540032A30000000000000000000000000000000004D -S31540032A40000000000000000000000000000000003D -S31540032A50000000000000000000000000000000002D -S31540032A60000000000000000000000000000000001D -S31540032A70000000000000000000000000000000000D -S31540032A8000000000000000000000000000000000FD -S31540032A9000000000000000000000000000000000ED -S31540032AA000000000000000000000000000000000DD -S31540032AB000000000000000000000000000000000CD -S31540032AC000000000000000000000000000000000BD -S31540032AD000000000000000000000000000000000AD -S31540032AE0000000000000000000000000000000009D -S31540032AF0000000000000000000000000000000008D -S31540032B00000000000000000000000000000000007C -S31540032B10000000000000000000000000000000006C -S31540032B20000000000000000000000000000000005C -S31540032B30000000000000000000000000000000004C -S31540032B40000000000000000000000000000000003C -S31540032B50000000000000000000000000000000002C -S31540032B60000000000000000000000000000000001C -S31540032B70000000000000000000000000000000000C -S31540032B8000000000000000000000000000000000FC -S31540032B9000000000000000000000000000000000EC -S31540032BA000000000000000000000000000000000DC -S31540032BB000000000000000000000000000000000CC -S31540032BC000000000000000000000000000000000BC -S31540032BD000000000000000000000000000000000AC -S31540032BE0000000000000000000000000000000009C -S31540032BF0000000000000000000000000000000008C -S31540032C00000000000000000000000000000000007B -S31540032C10000000000000000000000000000000006B -S31540032C20000000000000000000000000000000005B -S31540032C30000000000000000000000000000000004B -S31540032C40000000000000000000000000000000003B -S31540032C50000000000000000000000000000000002B -S31540032C60000000000000000000000000000000001B -S31540032C70000000000000000000000000000000000B -S31540032C8000000000000000000000000000000000FB -S31540032C9000000000000000000000000000000000EB -S31540032CA000000000000000000000000000000000DB -S31540032CB000000000000000000000000000000000CB -S31540032CC000000000000000000000000000000000BB -S31540032CD000000000000000000000000000000000AB -S31540032CE0000000000000000000000000000000009B -S31540032CF0000000000000000000000000000000008B -S31540032D00000000000000000000000000000000007A -S31540032D10000000000000000000000000000000006A -S31540032D20000000000000000000000000000000005A -S31540032D30000000000000000000000000000000004A -S31540032D40000000000000000000000000000000003A -S31540032D50000000000000000000000000000000002A -S31540032D60000000000000000000000000000000001A -S31540032D70000000000000000000000000000000000A -S31540032D8000000000000000000000000000000000FA -S31540032D9000000000000000000000000000000000EA -S31540032DA000000000000000000000000000000000DA -S31540032DB000000000000000000000000000000000CA -S31540032DC000000000000000000000000000000000BA -S31540032DD000000000000000000000000000000000AA -S31540032DE0000000000000000000000000000000009A -S31540032DF0000000000000000000000000000000008A -S31540032E000000000000000000000000000000000079 -S31540032E100000000000000000000000000000000069 -S31540032E200000000000000000000000000000000059 -S31540032E300000000000000000000000000000000049 -S31540032E400000000000000000000000000000000039 -S31540032E500000000000000000000000000000000029 -S31540032E600000000000000000000000000000000019 -S31540032E700000000000000000000000000000000009 -S31540032E8000000000000000000000000000000000F9 -S31540032E9000000000000000000000000000000000E9 -S31540032EA000000000000000000000000000000000D9 -S31540032EB000000000000000000000000000000000C9 -S31540032EC000000000000000000000000000000000B9 -S31540032ED000000000000000000000000000000000A9 -S31540032EE00000000000000000000000000000000099 -S31540032EF00000000000000000000000000000000089 -S31540032F000000000000000000000000000000000078 -S31540032F100000000000000000000000000000000068 -S31540032F200000000000000000000000000000000058 -S31540032F300000000000000000000000000000000048 -S31540032F400000000000000000000000000000000038 -S31540032F500000000000000000000000000000000028 -S31540032F600000000000000000000000000000000018 -S31540032F700000000000000000000000000000000008 -S31540032F8000000000000000000000000000000000F8 -S31540032F9000000000000000000000000000000000E8 -S31540032FA000000000000000000000000000000000D8 -S31540032FB000000000000000000000000000000000C8 -S31540032FC000000000000000000000000000000000B8 -S31540032FD000000000000000000000000000000000A8 -S31540032FE00000000000000000000000000000000098 -S31540032FF00000000000000000000000000000000088 -S315400330000000000000000000000000000000000077 -S315400330100000000000000000000000000000000067 -S315400330200000000000000000000000000000000057 -S315400330300000000000000000000000000000000047 -S315400330400000000000000000000000000000000037 -S315400330500000000000000000000000000000000027 -S315400330600000000000000000000000000000000017 -S315400330700000000000000000000000000000000007 -S3154003308000000000000000000000000000000000F7 -S3154003309000000000000000000000000000000000E7 -S315400330A000000000000000000000000000000000D7 -S315400330B000000000000000000000000000000000C7 -S315400330C000000000000000000000000000000000B7 -S315400330D000000000000000000000000000000000A7 -S315400330E00000000000000000000000000000000097 -S315400330F00000000000000000000000000000000087 -S315400331000000000000000000000000000000000076 -S315400331100000000000000000000000000000000066 -S315400331200000000000000000000000000000000056 -S315400331300000000000000000000000000000000046 -S315400331400000000000000000000000000000000036 -S315400331500000000000000000000000000000000026 -S315400331600000000000000000000000000000000016 -S315400331700000000000000000000000000000000006 -S3154003318000000000000000000000000000000000F6 -S3154003319000000000000000000000000000000000E6 -S315400331A000000000000000000000000000000000D6 -S315400331B000000000000000000000000000000000C6 -S315400331C000000000000000000000000000000000B6 -S315400331D000000000000000000000000000000000A6 -S315400331E00000000000000000000000000000000096 -S315400331F00000000000000000000000000000000086 -S315400332000000000000000000000000000000000075 -S315400332100000000000000000000000000000000065 -S315400332200000000000000000000000000000000055 -S315400332300000000000000000000000000000000045 -S315400332400000000000000000000000000000000035 -S315400332500000000000000000000000000000000025 -S315400332600000000000000000000000000000000015 -S315400332700000000000000000000000000000000005 -S3154003328000000000000000000000000000000000F5 -S3154003329000000000000000000000000000000000E5 -S315400332A000000000000000000000000000000000D5 -S315400332B000000000000000000000000000000000C5 -S315400332C000000000000000000000000000000000B5 -S315400332D000000000000000000000000000000000A5 -S315400332E00000000000000000000000000000000095 -S315400332F00000000000000000000000000000000085 -S315400333000000000000000000000000000000000074 -S315400333100000000000000000000000000000000064 -S315400333200000000000000000000000000000000054 -S315400333300000000000000000000000000000000044 -S315400333400000000000000000000000000000000034 -S315400333500000000000000000000000000000000024 -S315400333600000000000000000000000000000000014 -S315400333700000000000000000000000000000000004 -S3154003338000000000000000000000000000000000F4 -S3154003339000000000000000000000000000000000E4 -S315400333A000000000000000000000000000000000D4 -S315400333B000000000000000000000000000000000C4 -S315400333C000000000000000000000000000000000B4 -S315400333D000000000000000000000000000000000A4 -S315400333E00000000000000000000000000000000094 -S315400333F00000000000000000000000000000000084 -S315400334000000000000000000000000000000000073 -S315400334100000000000000000000000000000000063 -S315400334200000000000000000000000000000000053 -S315400334300000000000000000000000000000000043 -S315400334400000000000000000000000000000000033 -S315400334500000000000000000000000000000000023 -S315400334600000000000000000000000000000000013 -S315400334700000000000000000000000000000000003 -S3154003348000000000000000000000000000000000F3 -S3154003349000000000000000000000000000000000E3 -S315400334A000000000000000000000000000000000D3 -S315400334B000000000000000000000000000000000C3 -S315400334C000000000000000000000000000000000B3 -S315400334D000000000000000000000000000000000A3 -S315400334E00000000000000000000000000000000093 -S315400334F00000000000000000000000000000000083 -S315400335000000000000000000000000000000000072 -S315400335100000000000000000000000000000000062 -S315400335200000000000000000000000000000000052 -S315400335300000000000000000000000000000000042 -S315400335400000000000000000000000000000000032 -S315400335500000000000000000000000000000000022 -S315400335600000000000000000000000000000000012 -S315400335700000000000000000000000000000000002 -S3154003358000000000000000000000000000000000F2 -S3154003359000000000000000000000000000000000E2 -S315400335A000000000000000000000000000000000D2 -S315400335B000000000000000000000000000000000C2 -S315400335C000000000000000000000000000000000B2 -S315400335D000000000000000000000000000000000A2 -S315400335E00000000000000000000000000000000092 -S315400335F00000000000000000000000000000000082 -S315400336000000000000000000000000000000000071 -S315400336100000000000000000000000000000000061 -S315400336200000000000000000000000000000000051 -S315400336300000000000000000000000000000000041 -S315400336400000000000000000000000000000000031 -S315400336500000000000000000000000000000000021 -S315400336600000000000000000000000000000000011 -S315400336700000000000000000000000000000000001 -S3154003368000000000000000000000000000000000F1 -S3154003369000000000000000000000000000000000E1 -S315400336A000000000000000000000000000000000D1 -S315400336B000000000000000000000000000000000C1 -S315400336C000000000000000000000000000000000B1 -S315400336D000000000000000000000000000000000A1 -S315400336E00000000000000000000000000000000091 -S315400336F00000000000000000000000000000000081 -S315400337000000000000000000000000000000000070 -S315400337100000000000000000000000000000000060 -S315400337200000000000000000000000000000000050 -S315400337300000000000000000000000000000000040 -S315400337400000000000000000000000000000000030 -S315400337500000000000000000000000000000000020 -S315400337600000000000000000000000000000000010 -S315400337700000000000000000000000000000000000 -S3154003378000000000000000000000000000000000F0 -S3154003379000000000000000000000000000000000E0 -S315400337A000000000000000000000000000000000D0 -S315400337B000000000000000000000000000000000C0 -S315400337C000000000000000000000000000000000B0 -S315400337D000000000000000000000000000000000A0 -S315400337E00000000000000000000000000000000090 -S315400337F00000000000000000000000000000000080 -S31540033800000000000000000000000000000000006F -S31540033810000000000000000000000000000000005F -S31540033820000000000000000000000000000000004F -S31540033830000000000000000000000000000000003F -S31540033840000000000000000000000000000000002F -S31540033850000000000000000000000000000000001F -S31540033860000000000000000000000000000000000F -S3154003387000000000000000000000000000000000FF -S3154003388000000000000000000000000000000000EF -S3154003389000000000000000000000000000000000DF -S315400338A000000000000000000000000000000000CF -S315400338B000000000000000000000000000000000BF -S315400338C000000000000000000000000000000000AF -S315400338D0000000000000000000000000000000009F -S315400338E0000000000000000000000000000000008F -S315400338F0000000000000000000000000000000007F -S31540033900000000000000000000000000000000006E -S31540033910000000000000000000000000000000005E -S31540033920000000000000000000000000000000004E -S31540033930000000000000000000000000000000003E -S31540033940000000000000000000000000000000002E -S31540033950000000000000000000000000000000001E -S31540033960000000000000000000000000000000000E -S3154003397000000000000000000000000000000000FE -S3154003398000000000000000000000000000000000EE -S3154003399000000000000000000000000000000000DE -S315400339A000000000000000000000000000000000CE -S315400339B000000000000000000000000000000000BE -S315400339C000000000000000000000000000000000AE -S315400339D0000000000000000000000000000000009E -S315400339E0000000000000000000000000000000008E -S315400339F0000000000000000000000000000000007E -S31540033A00000000000000000000000000000000006D -S31540033A10000000000000000000000000000000005D -S31540033A20000000000000000000000000000000004D -S31540033A30000000000000000000000000000000003D -S31540033A40000000000000000000000000000000002D -S31540033A50000000000000000000000000000000001D -S31540033A60000000000000000000000000000000000D -S31540033A7000000000000000000000000000000000FD -S31540033A8000000000000000000000000000000000ED -S31540033A9000000000000000000000000000000000DD -S31540033AA000000000000000000000000000000000CD -S31540033AB000000000000000000000000000000000BD -S31540033AC000000000000000000000000000000000AD -S31540033AD0000000000000000000000000000000009D -S31540033AE0000000000000000000000000000000008D -S31540033AF0000000000000000000000000000000007D -S31540033B00000000000000000000000000000000006C -S31540033B10000000000000000000000000000000005C -S31540033B20000000000000000000000000000000004C -S31540033B30000000000000000000000000000000003C -S31540033B40000000000000000000000000000000002C -S31540033B50000000000000000000000000000000001C -S31540033B60000000000000000000000000000000000C -S31540033B7000000000000000000000000000000000FC -S31540033B8000000000000000000000000000000000EC -S31540033B9000000000000000000000000000000000DC -S31540033BA000000000000000000000000000000000CC -S31540033BB000000000000000000000000000000000BC -S31540033BC000000000000000000000000000000000AC -S31540033BD0000000000000000000000000000000009C -S31540033BE0000000000000000000000000000000008C -S31540033BF0000000000000000000000000000000007C -S31540033C00000000000000000000000000000000006B -S31540033C10000000000000000000000000000000005B -S31540033C20000000000000000000000000000000004B -S31540033C30000000000000000000000000000000003B -S31540033C40000000000000000000000000000000002B -S31540033C50000000000000000000000000000000001B -S31540033C60000000000000000000000000000000000B -S31540033C7000000000000000000000000000000000FB -S31540033C8000000000000000000000000000000000EB -S31540033C9000000000000000000000000000000000DB -S31540033CA000000000000000000000000000000000CB -S31540033CB000000000000000000000000000000000BB -S31540033CC000000000000000000000000000000000AB -S31540033CD0000000000000000000000000000000009B -S31540033CE0000000000000000000000000000000008B -S31540033CF0000000000000000000000000000000007B -S31540033D00000000000000000000000000000000006A -S31540033D10000000000000000000000000000000005A -S31540033D20000000000000000000000000000000004A -S31540033D30000000000000000000000000000000003A -S31540033D40000000000000000000000000000000002A -S31540033D50000000000000000000000000000000001A -S31540033D60000000000000000000000000000000000A -S31540033D7000000000000000000000000000000000FA -S31540033D8000000000000000000000000000000000EA -S31540033D9000000000000000000000000000000000DA -S31540033DA000000000000000000000000000000000CA -S31540033DB000000000000000000000000000000000BA -S31540033DC000000000000000000000000000000000AA -S31540033DD0000000000000000000000000000000009A -S31540033DE0000000000000000000000000000000008A -S31540033DF0000000000000000000000000000000007A -S31540033E000000000000000000000000000000000069 -S31540033E100000000000000000000000000000000059 -S31540033E200000000000000000000000000000000049 -S31540033E300000000000000000000000000000000039 -S31540033E400000000000000000000000000000000029 -S31540033E500000000000000000000000000000000019 -S31540033E600000000000000000000000000000000009 -S31540033E7000000000000000000000000000000000F9 -S31540033E8000000000000000000000000000000000E9 -S31540033E9000000000000000000000000000000000D9 -S31540033EA000000000000000000000000000000000C9 -S31540033EB000000000000000000000000000000000B9 -S31540033EC000000000000000000000000000000000A9 -S31540033ED00000000000000000000000000000000099 -S31540033EE00000000000000000000000000000000089 -S31540033EF00000000000000000000000000000000079 -S31540033F000000000000000000000000000000000068 -S31540033F100000000000000000000000000000000058 -S31540033F200000000000000000000000000000000048 -S31540033F300000000000000000000000000000000038 -S31540033F400000000000000000000000000000000028 -S31540033F500000000000000000000000000000000018 -S31540033F600000000000000000000000000000000008 -S31540033F7000000000000000000000000000000000F8 -S31540033F8000000000000000000000000000000000E8 -S31540033F9000000000000000000000000000000000D8 -S31540033FA000000000000000000000000000000000C8 -S31540033FB000000000000000000000000000000000B8 -S31540033FC000000000000000000000000000000000A8 -S31540033FD00000000000000000000000000000000098 -S31540033FE00000000000000000000000000000000088 -S31540033FF00000000000000000000000000000000078 -S315400340000000000000000000000000000000000067 -S315400340100000000000000000000000000000000057 -S315400340200000000000000000000000000000000047 -S315400340300000000000000000000000000000000037 -S315400340400000000000000000000000000000000027 -S315400340500000000000000000000000000000000017 -S315400340600000000000000000000000000000000007 -S3154003407000000000000000000000000000000000F7 -S3154003408000000000000000000000000000000000E7 -S3154003409000000000000000000000000000000000D7 -S315400340A000000000000000000000000000000000C7 -S315400340B000000000000000000000000000000000B7 -S315400340C000000000000000000000000000000000A7 -S315400340D00000000000000000000000000000000097 -S315400340E00000000000000000000000000000000087 -S315400340F00000000000000000000000000000000077 -S315400341000000000000000000000000000000000066 -S315400341100000000000000000000000000000000056 -S315400341200000000000000000000000000000000046 -S315400341300000000000000000000000000000000036 -S315400341400000000000000000000000000000000026 -S315400341500000000000000000000000000000000016 -S315400341600000000000000000000000000000000006 -S3154003417000000000000000000000000000000000F6 -S3154003418000000000000000000000000000000000E6 -S3154003419000000000000000000000000000000000D6 -S315400341A000000000000000000000000000000000C6 -S315400341B000000000000000000000000000000000B6 -S315400341C000000000000000000000000000000000A6 -S315400341D00000000000000000000000000000000096 -S315400341E00000000000000000000000000000000086 -S315400341F00000000000000000000000000000000076 -S315400342000000000000000000000000000000000065 -S315400342100000000000000000000000000000000055 -S315400342200000000000000000000000000000000045 -S315400342300000000000000000000000000000000035 -S315400342400000000000000000000000000000000025 -S315400342500000000000000000000000000000000015 -S315400342600000000000000000000000000000000005 -S3154003427000000000000000000000000000000000F5 -S3154003428000000000000000000000000000000000E5 -S3154003429000000000000000000000000000000000D5 -S315400342A000000000000000000000000000000000C5 -S315400342B000000000000000000000000000000000B5 -S315400342C000000000000000000000000000000000A5 -S315400342D00000000000000000000000000000000095 -S315400342E00000000000000000000000000000000085 -S315400342F00000000000000000000000000000000075 -S315400343000000000000000000000000000000000064 -S315400343100000000000000000000000000000000054 -S315400343200000000000000000000000000000000044 -S315400343300000000000000000000000000000000034 -S315400343400000000000000000000000000000000024 -S315400343500000000000000000000000000000000014 -S315400343600000000000000000000000000000000004 -S3154003437000000000000000000000000000000000F4 -S3154003438000000000000000000000000000000000E4 -S3154003439000000000000000000000000000000000D4 -S315400343A000000000000000000000000000000000C4 -S315400343B000000000000000000000000000000000B4 -S315400343C000000000000000000000000000000000A4 -S315400343D00000000000000000000000000000000094 -S315400343E00000000000000000000000000000000084 -S315400343F00000000000000000000000000000000074 -S315400344000000000000000000000000000000000063 -S315400344100000000000000000000000000000000053 -S315400344200000000000000000000000000000000043 -S315400344300000000000000000000000000000000033 -S315400344400000000000000000000000000000000023 -S315400344500000000000000000000000000000000013 -S315400344600000000000000000000000000000000003 -S3154003447000000000000000000000000000000000F3 -S3154003448000000000000000000000000000000000E3 -S3154003449000000000000000000000000000000000D3 -S315400344A000000000000000000000000000000000C3 -S315400344B000000000000000000000000000000000B3 -S315400344C000000000000000000000000000000000A3 -S315400344D00000000000000000000000000000000093 -S315400344E00000000000000000000000000000000083 -S315400344F00000000000000000000000000000000073 -S315400345000000000000000000000000000000000062 -S315400345100000000000000000000000000000000052 -S315400345200000000000000000000000000000000042 -S315400345300000000000000000000000000000000032 -S315400345400000000000000000000000000000000022 -S315400345500000000000000000000000000000000012 -S315400345600000000000000000000000000000000002 -S3154003457000000000000000000000000000000000F2 -S3154003458000000000000000000000000000000000E2 -S3154003459000000000000000000000000000000000D2 -S315400345A000000000000000000000000000000000C2 -S315400345B000000000000000000000000000000000B2 -S315400345C000000000000000000000000000000000A2 -S315400345D00000000000000000000000000000000092 -S315400345E00000000000000000000000000000000082 -S315400345F00000000000000000000000000000000072 -S315400346000000000000000000000000000000000061 -S315400346100000000000000000000000000000000051 -S315400346200000000000000000000000000000000041 -S315400346300000000000000000000000000000000031 -S315400346400000000000000000000000000000000021 -S315400346500000000000000000000000000000000011 -S315400346600000000000000000000000000000000001 -S3154003467000000000000000000000000000000000F1 -S3154003468000000000000000000000000000000000E1 -S3154003469000000000000000000000000000000000D1 -S315400346A000000000000000000000000000000000C1 -S315400346B000000000000000000000000000000000B1 -S315400346C000000000000000000000000000000000A1 -S315400346D00000000000000000000000000000000091 -S315400346E00000000000000000000000000000000081 -S315400346F00000000000000000000000000000000071 -S315400347000000000000000000000000000000000060 -S315400347100000000000000000000000000000000050 -S315400347200000000000000000000000000000000040 -S315400347300000000000000000000000000000000030 -S315400347400000000000000000000000000000000020 -S315400347500000000000000000000000000000000010 -S315400347600000000000000000000000000000000000 -S3154003477000000000000000000000000000000000F0 -S3154003478000000000000000000000000000000000E0 -S3154003479000000000000000000000000000000000D0 -S315400347A000000000000000000000000000000000C0 -S315400347B000000000000000000000000000000000B0 -S315400347C000000000000000000000000000000000A0 -S315400347D00000000000000000000000000000000090 -S315400347E00000000000000000000000000000000080 -S315400347F00000000000000000000000000000000070 -S31540034800000000000000000000000000000000005F -S31540034810000000000000000000000000000000004F -S31540034820000000000000000000000000000000003F -S31540034830000000000000000000000000000000002F -S31540034840000000000000000000000000000000001F -S31540034850000000000000000000000000000000000F -S3154003486000000000000000000000000000000000FF -S3154003487000000000000000000000000000000000EF -S3154003488000000000000000000000000000000000DF -S3154003489000000000000000000000000000000000CF -S315400348A000000000000000000000000000000000BF -S315400348B000000000000000000000000000000000AF -S315400348C0000000000000000000000000000000009F -S315400348D0000000000000000000000000000000008F -S315400348E0000000000000000000000000000000007F -S315400348F0000000000000000000000000000000006F -S31540034900000000000000000000000000000000005E -S31540034910000000000000000000000000000000004E -S31540034920000000000000000000000000000000003E -S31540034930000000000000000000000000000000002E -S31540034940000000000000000000000000000000001E -S31540034950000000000000000000000000000000000E -S3154003496000000000000000000000000000000000FE -S3154003497000000000000000000000000000000000EE -S3154003498000000000000000000000000000000000DE -S3154003499000000000000000000000000000000000CE -S315400349A000000000000000000000000000000000BE -S315400349B000000000000000000000000000000000AE -S315400349C0000000000000000000000000000000009E -S315400349D0000000000000000000000000000000008E -S315400349E0000000000000000000000000000000007E -S315400349F0000000000000000000000000000000006E -S31540034A00000000000000000000000000000000005D -S31540034A10000000000000000000000000000000004D -S31540034A20000000000000000000000000000000003D -S31540034A30000000000000000000000000000000002D -S31540034A40000000000000000000000000000000001D -S31540034A50000000000000000000000000000000000D -S31540034A6000000000000000000000000000000000FD -S31540034A7000000000000000000000000000000000ED -S31540034A8000000000000000000000000000000000DD -S31540034A9000000000000000000000000000000000CD -S31540034AA000000000000000000000000000000000BD -S31540034AB000000000000000000000000000000000AD -S31540034AC0000000000000000000000000000000009D -S31540034AD0000000000000000000000000000000008D -S31540034AE0000000000000000000000000000000007D -S31540034AF0000000000000000000000000000000006D -S31540034B00000000000000000000000000000000005C -S31540034B10000000000000000000000000000000004C -S31540034B20000000000000000000000000000000003C -S31540034B30000000000000000000000000000000002C -S31540034B40000000000000000000000000000000001C -S31540034B50000000000000000000000000000000000C -S31540034B6000000000000000000000000000000000FC -S31540034B7000000000000000000000000000000000EC -S31540034B8000000000000000000000000000000000DC -S31540034B9000000000000000000000000000000000CC -S31540034BA000000000000000000000000000000000BC -S31540034BB000000000000000000000000000000000AC -S31540034BC0000000000000000000000000000000009C -S31540034BD0000000000000000000000000000000008C -S31540034BE0000000000000000000000000000000007C -S31540034BF0000000000000000000000000000000006C -S31540034C00000000000000000000000000000000005B -S31540034C10000000000000000000000000000000004B -S31540034C20000000000000000000000000000000003B -S31540034C30000000000000000000000000000000002B -S31540034C40000000000000000000000000000000001B -S31540034C50000000000000000000000000000000000B -S31540034C6000000000000000000000000000000000FB -S31540034C7000000000000000000000000000000000EB -S31540034C8000000000000000000000000000000000DB -S31540034C9000000000000000000000000000000000CB -S31540034CA000000000000000000000000000000000BB -S31540034CB000000000000000000000000000000000AB -S31540034CC0000000000000000000000000000000009B -S31540034CD0000000000000000000000000000000008B -S31540034CE0000000000000000000000000000000007B -S31540034CF0000000000000000000000000000000006B -S31540034D00000000000000000000000000000000005A -S31540034D10000000000000000000000000000000004A -S31540034D20000000000000000000000000000000003A -S31540034D30000000000000000000000000000000002A -S31540034D40000000000000000000000000000000001A -S31540034D50000000000000000000000000000000000A -S31540034D6000000000000000000000000000000000FA -S31540034D7000000000000000000000000000000000EA -S31540034D8000000000000000000000000000000000DA -S31540034D9000000000000000000000000000000000CA -S31540034DA000000000000000000000000000000000BA -S31540034DB000000000000000000000000000000000AA -S31540034DC0000000000000000000000000000000009A -S31540034DD0000000000000000000000000000000008A -S31540034DE0000000000000000000000000000000007A -S31540034DF0000000000000000000000000000000006A -S31540034E000000000000000000000000000000000059 -S31540034E100000000000000000000000000000000049 -S31540034E200000000000000000000000000000000039 -S31540034E300000000000000000000000000000000029 -S31540034E400000000000000000000000000000000019 -S31540034E500000000000000000000000000000000009 -S31540034E6000000000000000000000000000000000F9 -S31540034E7000000000000000000000000000000000E9 -S31540034E8000000000000000000000000000000000D9 -S31540034E9000000000000000000000000000000000C9 -S31540034EA000000000000000000000000000000000B9 -S31540034EB000000000000000000000000000000000A9 -S31540034EC00000000000000000000000000000000099 -S31540034ED00000000000000000000000000000000089 -S31540034EE00000000000000000000000000000000079 -S31540034EF00000000000000000000000000000000069 -S31540034F000000000000000000000000000000000058 -S31540034F100000000000000000000000000000000048 -S31540034F200000000000000000000000000000000038 -S31540034F300000000000000000000000000000000028 -S31540034F400000000000000000000000000000000018 -S31540034F500000000000000000000000000000000008 -S31540034F6000000000000000000000000000000000F8 -S31540034F7000000000000000000000000000000000E8 -S31540034F8000000000000000000000000000000000D8 -S31540034F9000000000000000000000000000000000C8 -S31540034FA000000000000000000000000000000000B8 -S31540034FB000000000000000000000000000000000A8 -S31540034FC00000000000000000000000000000000098 -S31540034FD00000000000000000000000000000000088 -S31540034FE00000000000000000000000000000000078 -S31540034FF00000000000000000000000000000000068 -S315400350000000000000000000000000000000000057 -S315400350100000000000000000000000000000000047 -S315400350200000000000000000000000000000000037 -S315400350300000000000000000000000000000000027 -S315400350400000000000000000000000000000000017 -S315400350500000000000000000000000000000000007 -S3154003506000000000000000000000000000000000F7 -S3154003507000000000000000000000000000000000E7 -S3154003508000000000000000000000000000000000D7 -S3154003509000000000000000000000000000000000C7 -S315400350A000000000000000000000000000000000B7 -S315400350B000000000000000000000000000000000A7 -S315400350C00000000000000000000000000000000097 -S315400350D00000000000000000000000000000000087 -S315400350E00000000000000000000000000000000077 -S315400350F00000000000000000000000000000000067 -S315400351000000000000000000000000000000000056 -S315400351100000000000000000000000000000000046 -S315400351200000000000000000000000000000000036 -S315400351300000000000000000000000000000000026 -S315400351400000000000000000000000000000000016 -S315400351500000000000000000000000000000000006 -S3154003516000000000000000000000000000000000F6 -S3154003517000000000000000000000000000000000E6 -S3154003518000000000000000000000000000000000D6 -S3154003519000000000000000000000000000000000C6 -S315400351A000000000000000000000000000000000B6 -S315400351B000000000000000000000000000000000A6 -S315400351C00000000000000000000000000000000096 -S315400351D00000000000000000000000000000000086 -S315400351E00000000000000000000000000000000076 -S315400351F00000000000000000000000000000000066 -S315400352000000000000000000000000000000000055 -S315400352100000000000000000000000000000000045 -S315400352200000000000000000000000000000000035 -S315400352300000000000000000000000000000000025 -S315400352400000000000000000000000000000000015 -S315400352500000000000000000000000000000000005 -S3154003526000000000000000000000000000000000F5 -S3154003527000000000000000000000000000000000E5 -S3154003528000000000000000000000000000000000D5 -S3154003529000000000000000000000000000000000C5 -S315400352A000000000000000000000000000000000B5 -S315400352B000000000000000000000000000000000A5 -S315400352C00000000000000000000000000000000095 -S315400352D00000000000000000000000000000000085 -S315400352E00000000000000000000000000000000075 -S315400352F00000000000000000000000000000000065 -S315400353000000000000000000000000000000000054 -S315400353100000000000000000000000000000000044 -S315400353200000000000000000000000000000000034 -S315400353300000000000000000000000000000000024 -S315400353400000000000000000000000000000000014 -S315400353500000000000000000000000000000000004 -S3154003536000000000000000000000000000000000F4 -S3154003537000000000000000000000000000000000E4 -S3154003538000000000000000000000000000000000D4 -S3154003539000000000000000000000000000000000C4 -S315400353A000000000000000000000000000000000B4 -S315400353B000000000000000000000000000000000A4 -S315400353C00000000000000000000000000000000094 -S315400353D00000000000000000000000000000000084 -S315400353E00000000000000000000000000000000074 -S315400353F00000000000000000000000000000000064 -S315400354000000000000000000000000000000000053 -S315400354100000000000000000000000000000000043 -S315400354200000000000000000000000000000000033 -S315400354300000000000000000000000000000000023 -S315400354400000000000000000000000000000000013 -S315400354500000000000000000000000000000000003 -S3154003546000000000000000000000000000000000F3 -S3154003547000000000000000000000000000000000E3 -S3154003548000000000000000000000000000000000D3 -S3154003549000000000000000000000000000000000C3 -S315400354A000000000000000000000000000000000B3 -S315400354B000000000000000000000000000000000A3 -S315400354C00000000000000000000000000000000093 -S315400354D00000000000000000000000000000000083 -S315400354E00000000000000000000000000000000073 -S315400354F00000000000000000000000000000000063 -S315400355000000000000000000000000000000000052 -S315400355100000000000000000000000000000000042 -S315400355200000000000000000000000000000000032 -S315400355300000000000000000000000000000000022 -S315400355400000000000000000000000000000000012 -S315400355500000000000000000000000000000000002 -S3154003556000000000000000000000000000000000F2 -S3154003557000000000000000000000000000000000E2 -S3154003558000000000000000000000000000000000D2 -S3154003559000000000000000000000000000000000C2 -S315400355A000000000000000000000000000000000B2 -S315400355B000000000000000000000000000000000A2 -S315400355C00000000000000000000000000000000092 -S315400355D00000000000000000000000000000000082 -S315400355E00000000000000000000000000000000072 -S315400355F00000000000000000000000000000000062 -S315400356000000000000000000000000000000000051 -S315400356100000000000000000000000000000000041 -S315400356200000000000000000000000000000000031 -S315400356300000000000000000000000000000000021 -S315400356400000000000000000000000000000000011 -S315400356500000000000000000000000000000000001 -S3154003566000000000000000000000000000000000F1 -S3154003567000000000000000000000000000000000E1 -S3154003568000000000000000000000000000000000D1 -S3154003569000000000000000000000000000000000C1 -S315400356A000000000000000000000000000000000B1 -S315400356B000000000000000000000000000000000A1 -S315400356C00000000000000000000000000000000091 -S315400356D00000000000000000000000000000000081 -S315400356E00000000000000000000000000000000071 -S315400356F00000000000000000000000000000000061 -S315400357000000000000000000000000000000000050 -S315400357100000000000000000000000000000000040 -S315400357200000000000000000000000000000000030 -S315400357300000000000000000000000000000000020 -S315400357400000000000000000000000000000000010 -S315400357500000000000000000000000000000000000 -S3154003576000000000000000000000000000000000F0 -S3154003577000000000000000000000000000000000E0 -S3154003578000000000000000000000000000000000D0 -S3154003579000000000000000000000000000000000C0 -S315400357A000000000000000000000000000000000B0 -S315400357B000000000000000000000000000000000A0 -S315400357C00000000000000000000000000000000090 -S315400357D00000000000000000000000000000000080 -S315400357E00000000000000000000000000000000070 -S315400357F00000000000000000000000000000000060 -S31540035800000000000000000000000000000000004F -S31540035810000000000000000000000000000000003F -S31540035820000000000000000000000000000000002F -S31540035830000000000000000000000000000000001F -S31540035840000000000000000000000000000000000F -S3154003585000000000000000000000000000000000FF -S3154003586000000000000000000000000000000000EF -S3154003587000000000000000000000000000000000DF -S3154003588000000000000000000000000000000000CF -S3154003589000000000000000000000000000000000BF -S315400358A000000000000000000000000000000000AF -S315400358B0000000000000000000000000000000009F -S315400358C0000000000000000000000000000000008F -S315400358D0000000000000000000000000000000007F -S315400358E0000000000000000000000000000000006F -S315400358F0000000000000000000000000000000005F -S31540035900000000000000000000000000000000004E -S31540035910000000000000000000000000000000003E -S31540035920000000000000000000000000000000002E -S31540035930000000000000000000000000000000001E -S31540035940000000000000000000000000000000000E -S3154003595000000000000000000000000000000000FE -S3154003596000000000000000000000000000000000EE -S3154003597000000000000000000000000000000000DE -S3154003598000000000000000000000000000000000CE -S3154003599000000000000000000000000000000000BE -S315400359A000000000000000000000000000000000AE -S315400359B0000000000000000000000000000000009E -S315400359C0000000000000000000000000000000008E -S315400359D0000000000000000000000000000000007E -S315400359E0000000000000000000000000000000006E -S315400359F0000000000000000000000000000000005E -S31540035A00000000000000000000000000000000004D -S31540035A10000000000000000000000000000000003D -S31540035A20000000000000000000000000000000002D -S31540035A30000000000000000000000000000000001D -S31540035A40000000000000000000000000000000000D -S31540035A5000000000000000000000000000000000FD -S31540035A6000000000000000000000000000000000ED -S31540035A7000000000000000000000000000000000DD -S31540035A8000000000000000000000000000000000CD -S31540035A9000000000000000000000000000000000BD -S31540035AA000000000000000000000000000000000AD -S31540035AB0000000000000000000000000000000009D -S31540035AC0000000000000000000000000000000008D -S31540035AD0000000000000000000000000000000007D -S31540035AE0000000000000000000000000000000006D -S31540035AF0000000000000000000000000000000005D -S31540035B00000000000000000000000000000000004C -S31540035B10000000000000000000000000000000003C -S31540035B20000000000000000000000000000000002C -S31540035B30000000000000000000000000000000001C -S31540035B40000000000000000000000000000000000C -S31540035B5000000000000000000000000000000000FC -S31540035B6000000000000000000000000000000000EC -S31540035B7000000000000000000000000000000000DC -S31540035B8000000000000000000000000000000000CC -S31540035B9000000000000000000000000000000000BC -S31540035BA000000000000000000000000000000000AC -S31540035BB0000000000000000000000000000000009C -S31540035BC0000000000000000000000000000000008C -S31540035BD0000000000000000000000000000000007C -S31540035BE0000000000000000000000000000000006C -S31540035BF0000000000000000000000000000000005C -S31540035C00000000000000000000000000000000004B -S31540035C10000000000000000000000000000000003B -S31540035C20000000000000000000000000000000002B -S31540035C30000000000000000000000000000000001B -S31540035C40000000000000000000000000000000000B -S31540035C5000000000000000000000000000000000FB -S31540035C6000000000000000000000000000000000EB -S31540035C7000000000000000000000000000000000DB -S31540035C8000000000000000000000000000000000CB -S31540035C9000000000000000000000000000000000BB -S31540035CA000000000000000000000000000000000AB -S31540035CB0000000000000000000000000000000009B -S31540035CC0000000000000000000000000000000008B -S31540035CD0000000000000000000000000000000007B -S31540035CE0000000000000000000000000000000006B -S31540035CF0000000000000000000000000000000005B -S31540035D00000000000000000000000000000000004A -S31540035D10000000000000000000000000000000003A -S31540035D20000000000000000000000000000000002A -S31540035D30000000000000000000000000000000001A -S31540035D40000000000000000000000000000000000A -S31540035D5000000000000000000000000000000000FA -S31540035D6000000000000000000000000000000000EA -S31540035D7000000000000000000000000000000000DA -S31540035D8000000000000000000000000000000000CA -S31540035D9000000000000000000000000000000000BA -S31540035DA000000000000000000000000000000000AA -S31540035DB0000000000000000000000000000000009A -S31540035DC0000000000000000000000000000000008A -S31540035DD0000000000000000000000000000000007A -S31540035DE0000000000000000000000000000000006A -S31540035DF0000000000000000000000000000000005A -S31540035E000000000000000000000000000000000049 -S31540035E100000000000000000000000000000000039 -S31540035E200000000000000000000000000000000029 -S31540035E300000000000000000000000000000000019 -S31540035E400000000000000000000000000000000009 -S31540035E5000000000000000000000000000000000F9 -S31540035E6000000000000000000000000000000000E9 -S31540035E7000000000000000000000000000000000D9 -S31540035E8000000000000000000000000000000000C9 -S31540035E9000000000000000000000000000000000B9 -S31540035EA000000000000000000000000000000000A9 -S31540035EB00000000000000000000000000000000099 -S31540035EC00000000000000000000000000000000089 -S31540035ED00000000000000000000000000000000079 -S31540035EE00000000000000000000000000000000069 -S31540035EF00000000000000000000000000000000059 -S31540035F000000000000000000000000000000000048 -S31540035F100000000000000000000000000000000038 -S31540035F200000000000000000000000000000000028 -S31540035F300000000000000000000000000000000018 -S31540035F400000000000000000000000000000000008 -S31540035F5000000000000000000000000000000000F8 -S31540035F6000000000000000000000000000000000E8 -S31540035F7000000000000000000000000000000000D8 -S31540035F8000000000000000000000000000000000C8 -S31540035F9000000000000000000000000000000000B8 -S31540035FA000000000000000000000000000000000A8 -S31540035FB00000000000000000000000000000000098 -S31540035FC00000000000000000000000000000000088 -S31540035FD00000000000000000000000000000000078 -S31540035FE00000000000000000000000000000000068 -S31540035FF00000000000000000000000000000000058 -S315400360000000000000000000000000000000000047 -S315400360100000000000000000000000000000000037 -S315400360200000000000000000000000000000000027 -S315400360300000000000000000000000000000000017 -S315400360400000000000000000000000000000000007 -S3154003605000000000000000000000000000000000F7 -S3154003606000000000000000000000000000000000E7 -S3154003607000000000000000000000000000000000D7 -S3154003608000000000000000000000000000000000C7 -S3154003609000000000000000000000000000000000B7 -S315400360A000000000000000000000000000000000A7 -S315400360B00000000000000000000000000000000097 -S315400360C00000000000000000000000000000000087 -S315400360D00000000000000000000000000000000077 -S315400360E00000000000000000000000000000000067 -S315400360F00000000000000000000000000000000057 -S315400361000000000000000000000000000000000046 -S315400361100000000000000000000000000000000036 -S315400361200000000000000000000000000000000026 -S315400361300000000000000000000000000000000016 -S315400361400000000000000000000000000000000006 -S3154003615000000000000000000000000000000000F6 -S3154003616000000000000000000000000000000000E6 -S3154003617000000000000000000000000000000000D6 -S3154003618000000000000000000000000000000000C6 -S3154003619000000000000000000000000000000000B6 -S315400361A000000000000000000000000000000000A6 -S315400361B00000000000000000000000000000000096 -S315400361C00000000000000000000000000000000086 -S315400361D00000000000000000000000000000000076 -S315400361E00000000000000000000000000000000066 -S315400361F00000000000000000000000000000000056 -S315400362000000000000000000000000000000000045 -S315400362100000000000000000000000000000000035 -S315400362200000000000000000000000000000000025 -S315400362300000000000000000000000000000000015 -S315400362400000000000000000000000000000000005 -S3154003625000000000000000000000000000000000F5 -S3154003626000000000000000000000000000000000E5 -S3154003627000000000000000000000000000000000D5 -S3154003628000000000000000000000000000000000C5 -S3154003629000000000000000000000000000000000B5 -S315400362A000000000000000000000000000000000A5 -S315400362B00000000000000000000000000000000095 -S315400362C00000000000000000000000000000000085 -S315400362D00000000000000000000000000000000075 -S315400362E00000000000000000000000000000000065 -S315400362F00000000000000000000000000000000055 -S315400363000000000000000000000000000000000044 -S315400363100000000000000000000000000000000034 -S315400363200000000000000000000000000000000024 -S315400363300000000000000000000000000000000014 -S315400363400000000000000000000000000000000004 -S3154003635000000000000000000000000000000000F4 -S3154003636000000000000000000000000000000000E4 -S3154003637000000000000000000000000000000000D4 -S3154003638000000000000000000000000000000000C4 -S3154003639000000000000000000000000000000000B4 -S315400363A000000000000000000000000000000000A4 -S315400363B00000000000000000000000000000000094 -S315400363C00000000000000000000000000000000084 -S315400363D00000000000000000000000000000000074 -S315400363E00000000000000000000000000000000064 -S315400363F00000000000000000000000000000000054 -S315400364000000000000000000000000000000000043 -S315400364100000000000000000000000000000000033 -S315400364200000000000000000000000000000000023 -S315400364300000000000000000000000000000000013 -S315400364400000000000000000000000000000000003 -S3154003645000000000000000000000000000000000F3 -S3154003646000000000000000000000000000000000E3 -S3154003647000000000000000000000000000000000D3 -S3154003648000000000000000000000000000000000C3 -S3154003649000000000000000000000000000000000B3 -S315400364A000000000000000000000000000000000A3 -S315400364B00000000000000000000000000000000093 -S315400364C00000000000000000000000000000000083 -S315400364D00000000000000000000000000000000073 -S315400364E00000000000000000000000000000000063 -S315400364F00000000000000000000000000000000053 -S315400365000000000000000000000000000000000042 -S315400365100000000000000000000000000000000032 -S315400365200000000000000000000000000000000022 -S315400365300000000000000000000000000000000012 -S315400365400000000000000000000000000000000002 -S3154003655000000000000000000000000000000000F2 -S3154003656000000000000000000000000000000000E2 -S3154003657000000000000000000000000000000000D2 -S3154003658000000000000000000000000000000000C2 -S3154003659000000000000000000000000000000000B2 -S315400365A000000000000000000000000000000000A2 -S315400365B00000000000000000000000000000000092 -S315400365C00000000000000000000000000000000082 -S315400365D00000000000000000000000000000000072 -S315400365E00000000000000000000000000000000062 -S315400365F00000000000000000000000000000000052 -S315400366000000000000000000000000000000000041 -S315400366100000000000000000000000000000000031 -S315400366200000000000000000000000000000000021 -S315400366300000000000000000000000000000000011 -S315400366400000000000000000000000000000000001 -S3154003665000000000000000000000000000000000F1 -S3154003666000000000000000000000000000000000E1 -S3154003667000000000000000000000000000000000D1 -S3154003668000000000000000000000000000000000C1 -S3154003669000000000000000000000000000000000B1 -S315400366A000000000000000000000000000000000A1 -S315400366B00000000000000000000000000000000091 -S315400366C00000000000000000000000000000000081 -S315400366D00000000000000000000000000000000071 -S315400366E00000000000000000000000000000000061 -S315400366F00000000000000000000000000000000051 -S315400367000000000000000000000000000000000040 -S315400367100000000000000000000000000000000030 -S315400367200000000000000000000000000000000020 -S315400367300000000000000000000000000000000010 -S315400367400000000000000000000000000000000000 -S3154003675000000000000000000000000000000000F0 -S3154003676000000000000000000000000000000000E0 -S3154003677000000000000000000000000000000000D0 -S3154003678000000000000000000000000000000000C0 -S3154003679000000000000000000000000000000000B0 -S315400367A000000000000000000000000000000000A0 -S315400367B00000000000000000000000000000000090 -S315400367C00000000000000000000000000000000080 -S315400367D00000000000000000000000000000000070 -S315400367E00000000000000000000000000000000060 -S315400367F00000000000000000000000000000000050 -S31540036800000000000000000000000000000000003F -S31540036810000000000000000000000000000000002F -S31540036820000000000000000000000000000000001F -S31540036830000000000000000000000000000000000F -S3154003684000000000000000000000000000000000FF -S3154003685000000000000000000000000000000000EF -S3154003686000000000000000000000000000000000DF -S3154003687000000000000000000000000000000000CF -S3154003688000000000000000000000000000000000BF -S3154003689000000000000000000000000000000000AF -S315400368A0000000000000000000000000000000009F -S315400368B0000000000000000000000000000000008F -S315400368C0000000000000000000000000000000007F -S315400368D0000000000000000000000000000000006F -S315400368E0000000000000000000000000000000005F -S315400368F0000000000000000000000000000000004F -S31540036900000000000000000000000000000000003E -S31540036910000000000000000000000000000000002E -S31540036920000000000000000000000000000000001E -S31540036930000000000000000000000000000000000E -S3154003694000000000000000000000000000000000FE -S3154003695000000000000000000000000000000000EE -S3154003696000000000000000000000000000000000DE -S3154003697000000000000000000000000000000000CE -S3154003698000000000000000000000000000000000BE -S3154003699000000000000000000000000000000000AE -S315400369A0000000000000000000000000000000009E -S315400369B0000000000000000000000000000000008E -S315400369C0000000000000000000000000000000007E -S315400369D0000000000000000000000000000000006E -S315400369E0000000000000000000000000000000005E -S315400369F0000000000000000000000000000000004E -S31540036A00000000000000000000000000000000003D -S31540036A10000000000000000000000000000000002D -S31540036A20000000000000000000000000000000001D -S31540036A30000000000000000000000000000000000D -S31540036A4000000000000000000000000000000000FD -S31540036A5000000000000000000000000000000000ED -S31540036A6000000000000000000000000000000000DD -S31540036A7000000000000000000000000000000000CD -S31540036A8000000000000000000000000000000000BD -S31540036A9000000000000000000000000000000000AD -S31540036AA0000000000000000000000000000000009D -S31540036AB0000000000000000000000000000000008D -S31540036AC0000000000000000000000000000000007D -S31540036AD0000000000000000000000000000000006D -S31540036AE0000000000000000000000000000000005D -S31540036AF0000000000000000000000000000000004D -S31540036B00000000000000000000000000000000003C -S31540036B10000000000000000000000000000000002C -S31540036B20000000000000000000000000000000001C -S31540036B30000000000000000000000000000000000C -S31540036B4000000000000000000000000000000000FC -S31540036B5000000000000000000000000000000000EC -S31540036B6000000000000000000000000000000000DC -S31540036B7000000000000000000000000000000000CC -S31540036B8000000000000000000000000000000000BC -S31540036B9000000000000000000000000000000000AC -S31540036BA0000000000000000000000000000000009C -S31540036BB0000000000000000000000000000000008C -S31540036BC0000000000000000000000000000000007C -S31540036BD0000000000000000000000000000000006C -S31540036BE0000000000000000000000000000000005C -S31540036BF0000000000000000000000000000000004C -S31540036C00000000000000000000000000000000003B -S31540036C10000000000000000000000000000000002B -S31540036C20000000000000000000000000000000001B -S31540036C30000000000000000000000000000000000B -S31540036C4000000000000000000000000000000000FB -S31540036C5000000000000000000000000000000000EB -S31540036C6000000000000000000000000000000000DB -S31540036C7000000000000000000000000000000000CB -S31540036C8000000000000000000000000000000000BB -S31540036C9000000000000000000000000000000000AB -S31540036CA0000000000000000000000000000000009B -S31540036CB0000000000000000000000000000000008B -S31540036CC0000000000000000000000000000000007B -S31540036CD0000000000000000000000000000000006B -S31540036CE0000000000000000000000000000000005B -S31540036CF0000000000000000000000000000000004B -S31540036D00000000000000000000000000000000003A -S31540036D10000000000000000000000000000000002A -S31540036D20000000000000000000000000000000001A -S31540036D30000000000000000000000000000000000A -S31540036D4000000000000000000000000000000000FA -S31540036D5000000000000000000000000000000000EA -S31540036D6000000000000000000000000000000000DA -S31540036D7000000000000000000000000000000000CA -S31540036D8000000000000000000000000000000000BA -S31540036D9000000000000000000000000000000000AA -S31540036DA0000000000000000000000000000000009A -S31540036DB0000000000000000000000000000000008A -S31540036DC0000000000000000000000000000000007A -S31540036DD0000000000000000000000000000000006A -S31540036DE0000000000000000000000000000000005A -S31540036DF0000000000000000000000000000000004A -S31540036E000000000000000000000000000000000039 -S31540036E100000000000000000000000000000000029 -S31540036E200000000000000000000000000000000019 -S31540036E300000000000000000000000000000000009 -S31540036E4000000000000000000000000000000000F9 -S31540036E5000000000000000000000000000000000E9 -S31540036E6000000000000000000000000000000000D9 -S31540036E7000000000000000000000000000000000C9 -S31540036E8000000000000000000000000000000000B9 -S31540036E9000000000000000000000000000000000A9 -S31540036EA00000000000000000000000000000000099 -S31540036EB00000000000000000000000000000000089 -S31540036EC00000000000000000000000000000000079 -S31540036ED00000000000000000000000000000000069 -S31540036EE00000000000000000000000000000000059 -S31540036EF00000000000000000000000000000000049 -S31540036F000000000000000000000000000000000038 -S31540036F100000000000000000000000000000000028 -S31540036F200000000000000000000000000000000018 -S31540036F300000000000000000000000000000000008 -S31540036F4000000000000000000000000000000000F8 -S31540036F5000000000000000000000000000000000E8 -S31540036F6000000000000000000000000000000000D8 -S31540036F7000000000000000000000000000000000C8 -S31540036F8000000000000000000000000000000000B8 -S31540036F9000000000000000000000000000000000A8 -S31540036FA00000000000000000000000000000000098 -S31540036FB00000000000000000000000000000000088 -S31540036FC00000000000000000000000000000000078 -S31540036FD00000000000000000000000000000000068 -S31540036FE00000000000000000000000000000000058 -S31540036FF00000000000000000000000000000000048 -S315400370000000000000000000000000000000000037 -S315400370100000000000000000000000000000000027 -S315400370200000000000000000000000000000000017 -S315400370300000000000000000000000000000000007 -S3154003704000000000000000000000000000000000F7 -S3154003705000000000000000000000000000000000E7 -S3154003706000000000000000000000000000000000D7 -S3154003707000000000000000000000000000000000C7 -S3154003708000000000000000000000000000000000B7 -S3154003709000000000000000000000000000000000A7 -S315400370A00000000000000000000000000000000097 -S315400370B00000000000000000000000000000000087 -S315400370C00000000000000000000000000000000077 -S315400370D00000000000000000000000000000000067 -S315400370E00000000000000000000000000000000057 -S315400370F00000000000000000000000000000000047 -S315400371000000000000000000000000000000000036 -S315400371100000000000000000000000000000000026 -S315400371200000000000000000000000000000000016 -S315400371300000000000000000000000000000000006 -S3154003714000000000000000000000000000000000F6 -S3154003715000000000000000000000000000000000E6 -S3154003716000000000000000000000000000000000D6 -S3154003717000000000000000000000000000000000C6 -S3154003718000000000000000000000000000000000B6 -S3154003719000000000000000000000000000000000A6 -S315400371A00000000000000000000000000000000096 -S315400371B00000000000000000000000000000000086 -S315400371C00000000000000000000000000000000076 -S315400371D00000000000000000000000000000000066 -S315400371E00000000000000000000000000000000056 -S315400371F00000000000000000000000000000000046 -S315400372000000000000000000000000000000000035 -S315400372100000000000000000000000000000000025 -S315400372200000000000000000000000000000000015 -S315400372300000000000000000000000000000000005 -S3154003724000000000000000000000000000000000F5 -S3154003725000000000000000000000000000000000E5 -S3154003726000000000000000000000000000000000D5 -S3154003727000000000000000000000000000000000C5 -S3154003728000000000000000000000000000000000B5 -S3154003729000000000000000000000000000000000A5 -S315400372A00000000000000000000000000000000095 -S315400372B00000000000000000000000000000000085 -S315400372C00000000000000000000000000000000075 -S315400372D00000000000000000000000000000000065 -S315400372E00000000000000000000000000000000055 -S315400372F00000000000000000000000000000000045 -S315400373000000000000000000000000000000000034 -S315400373100000000000000000000000000000000024 -S315400373200000000000000000000000000000000014 -S315400373300000000000000000000000000000000004 -S3154003734000000000000000000000000000000000F4 -S3154003735000000000000000000000000000000000E4 -S3154003736000000000000000000000000000000000D4 -S3154003737000000000000000000000000000000000C4 -S3154003738000000000000000000000000000000000B4 -S3154003739000000000000000000000000000000000A4 -S315400373A00000000000000000000000000000000094 -S315400373B00000000000000000000000000000000084 -S315400373C00000000000000000000000000000000074 -S315400373D00000000000000000000000000000000064 -S315400373E00000000000000000000000000000000054 -S315400373F00000000000000000000000000000000044 -S315400374000000000000000000000000000000000033 -S315400374100000000000000000000000000000000023 -S315400374200000000000000000000000000000000013 -S315400374300000000000000000000000000000000003 -S3154003744000000000000000000000000000000000F3 -S3154003745000000000000000000000000000000000E3 -S3154003746000000000000000000000000000000000D3 -S3154003747000000000000000000000000000000000C3 -S3154003748000000000000000000000000000000000B3 -S3154003749000000000000000000000000000000000A3 -S315400374A00000000000000000000000000000000093 -S315400374B00000000000000000000000000000000083 -S315400374C00000000000000000000000000000000073 -S315400374D00000000000000000000000000000000063 -S315400374E00000000000000000000000000000000053 -S315400374F00000000000000000000000000000000043 -S315400375000000000000000000000000000000000032 -S315400375100000000000000000000000000000000022 -S315400375200000000000000000000000000000000012 -S315400375300000000000000000000000000000000002 -S3154003754000000000000000000000000000000000F2 -S3154003755000000000000000000000000000000000E2 -S3154003756000000000000000000000000000000000D2 -S3154003757000000000000000000000000000000000C2 -S3154003758000000000000000000000000000000000B2 -S3154003759000000000000000000000000000000000A2 -S315400375A00000000000000000000000000000000092 -S315400375B00000000000000000000000000000000082 -S315400375C00000000000000000000000000000000072 -S315400375D00000000000000000000000000000000062 -S315400375E00000000000000000000000000000000052 -S315400375F00000000000000000000000000000000042 -S315400376000000000000000000000000000000000031 -S315400376100000000000000000000000000000000021 -S315400376200000000000000000000000000000000011 -S315400376300000000000000000000000000000000001 -S3154003764000000000000000000000000000000000F1 -S3154003765000000000000000000000000000000000E1 -S3154003766000000000000000000000000000000000D1 -S3154003767000000000000000000000000000000000C1 -S3154003768000000000000000000000000000000000B1 -S3154003769000000000000000000000000000000000A1 -S315400376A00000000000000000000000000000000091 -S315400376B00000000000000000000000000000000081 -S315400376C00000000000000000000000000000000071 -S315400376D00000000000000000000000000000000061 -S315400376E00000000000000000000000000000000051 -S315400376F00000000000000000000000000000000041 -S315400377000000000000000000000000000000000030 -S315400377100000000000000000000000000000000020 -S315400377200000000000000000000000000000000010 -S315400377300000000000000000000000000000000000 -S3154003774000000000000000000000000000000000F0 -S3154003775000000000000000000000000000000000E0 -S3154003776000000000000000000000000000000000D0 -S3154003777000000000000000000000000000000000C0 -S3154003778000000000000000000000000000000000B0 -S3154003779000000000000000000000000000000000A0 -S315400377A00000000000000000000000000000000090 -S315400377B00000000000000000000000000000000080 -S315400377C00000000000000000000000000000000070 -S315400377D00000000000000000000000000000000060 -S315400377E00000000000000000000000000000000050 -S315400377F00000000000000000000000000000000040 -S31540037800000000000000000000000000000000002F -S31540037810000000000000000000000000000000001F -S31540037820000000000000000000000000000000000F -S3154003783000000000000000000000000000000000FF -S3154003784000000000000000000000000000000000EF -S3154003785000000000000000000000000000000000DF -S3154003786000000000000000000000000000000000CF -S3154003787000000000000000000000000000000000BF -S3154003788000000000000000000000000000000000AF -S31540037890000000000000000000000000000000009F -S315400378A0000000000000000000000000000000008F -S315400378B0000000000000000000000000000000007F -S315400378C0000000000000000000000000000000006F -S315400378D0000000000000000000000000000000005F -S315400378E0000000000000000000000000000000004F -S315400378F0000000000000000000000000000000003F -S31540037900000000000000000000000000000000002E -S31540037910000000000000000000000000000000001E -S31540037920000000000000000000000000000000000E -S3154003793000000000000000000000000000000000FE -S3154003794000000000000000000000000000000000EE -S3154003795000000000000000000000000000000000DE -S3154003796000000000000000000000000000000000CE -S3154003797000000000000000000000000000000000BE -S3154003798000000000000000000000000000000000AE -S31540037990000000000000000000000000000000009E -S315400379A0000000000000000000000000000000008E -S315400379B0000000000000000000000000000000007E -S315400379C0000000000000000000000000000000006E -S315400379D0000000000000000000000000000000005E -S315400379E0000000000000000000000000000000004E -S315400379F0000000000000000000000000000000003E -S31540037A00000000000000000000000000000000002D -S31540037A10000000000000000000000000000000001D -S31540037A20000000000000000000000000000000000D -S31540037A3000000000000000000000000000000000FD -S31540037A4000000000000000000000000000000000ED -S31540037A5000000000000000000000000000000000DD -S31540037A6000000000000000000000000000000000CD -S31540037A7000000000000000000000000000000000BD -S31540037A8000000000000000000000000000000000AD -S31540037A90000000000000000000000000000000009D -S31540037AA0000000000000000000000000000000008D -S31540037AB0000000000000000000000000000000007D -S31540037AC0000000000000000000000000000000006D -S31540037AD0000000000000000000000000000000005D -S31540037AE0000000000000000000000000000000004D -S31540037AF0000000000000000000000000000000003D -S31540037B00000000000000000000000000000000002C -S31540037B10000000000000000000000000000000001C -S31540037B20000000000000000000000000000000000C -S31540037B3000000000000000000000000000000000FC -S31540037B4000000000000000000000000000000000EC -S31540037B5000000000000000000000000000000000DC -S31540037B6000000000000000000000000000000000CC -S31540037B7000000000000000000000000000000000BC -S31540037B8000000000000000000000000000000000AC -S31540037B90000000000000000000000000000000009C -S31540037BA0000000000000000000000000000000008C -S31540037BB0000000000000000000000000000000007C -S31540037BC0000000000000000000000000000000006C -S31540037BD0000000000000000000000000000000005C -S31540037BE0000000000000000000000000000000004C -S31540037BF0000000000000000000000000000000003C -S31540037C00000000000000000000000000000000002B -S31540037C10000000000000000000000000000000001B -S31540037C20000000000000000000000000000000000B -S31540037C3000000000000000000000000000000000FB -S31540037C4000000000000000000000000000000000EB -S31540037C5000000000000000000000000000000000DB -S31540037C6000000000000000000000000000000000CB -S31540037C7000000000000000000000000000000000BB -S31540037C8000000000000000000000000000000000AB -S31540037C90000000000000000000000000000000009B -S31540037CA0000000000000000000000000000000008B -S31540037CB0000000000000000000000000000000007B -S31540037CC0000000000000000000000000000000006B -S31540037CD0000000000000000000000000000000005B -S31540037CE0000000000000000000000000000000004B -S31540037CF0000000000000000000000000000000003B -S31540037D00000000000000000000000000000000002A -S31540037D10000000000000000000000000000000001A -S31540037D20000000000000000000000000000000000A -S31540037D3000000000000000000000000000000000FA -S31540037D4000000000000000000000000000000000EA -S31540037D5000000000000000000000000000000000DA -S31540037D6000000000000000000000000000000000CA -S31540037D7000000000000000000000000000000000BA -S31540037D8000000000000000000000000000000000AA -S31540037D90000000000000000000000000000000009A -S31540037DA0000000000000000000000000000000008A -S31540037DB0000000000000000000000000000000007A -S31540037DC0000000000000000000000000000000006A -S31540037DD0000000000000000000000000000000005A -S31540037DE0000000000000000000000000000000004A -S31540037DF0000000000000000000000000000000003A -S31540037E000000000000000000000000000000000029 -S31540037E100000000000000000000000000000000019 -S31540037E200000000000000000000000000000000009 -S31540037E3000000000000000000000000000000000F9 -S31540037E4000000000000000000000000000000000E9 -S31540037E5000000000000000000000000000000000D9 -S31540037E6000000000000000000000000000000000C9 -S31540037E7000000000000000000000000000000000B9 -S31540037E8000000000000000000000000000000000A9 -S31540037E900000000000000000000000000000000099 -S31540037EA00000000000000000000000000000000089 -S31540037EB00000000000000000000000000000000079 -S31540037EC00000000000000000000000000000000069 -S31540037ED00000000000000000000000000000000059 -S31540037EE00000000000000000000000000000000049 -S31540037EF00000000000000000000000000000000039 -S31540037F000000000000000000000000000000000028 -S31540037F100000000000000000000000000000000018 -S31540037F200000000000000000000000000000000008 -S31540037F3000000000000000000000000000000000F8 -S31540037F4000000000000000000000000000000000E8 -S31540037F5000000000000000000000000000000000D8 -S31540037F6000000000000000000000000000000000C8 -S31540037F7000000000000000000000000000000000B8 -S31540037F8000000000000000000000000000000000A8 -S31540037F900000000000000000000000000000000098 -S31540037FA00000000000000000000000000000000088 -S31540037FB00000000000000000000000000000000078 -S31540037FC00000000000000000000000000000000068 -S31540037FD00000000000000000000000000000000058 -S31540037FE00000000000000000000000000000000048 -S31540037FF00000000000000000000000000000000038 -S315400380000000000000000000000000000000000027 -S315400380100000000000000000000000000000000017 -S315400380200000000000000000000000000000000007 -S3154003803000000000000000000000000000000000F7 -S3154003804000000000000000000000000000000000E7 -S3154003805000000000000000000000000000000000D7 -S3154003806000000000000000000000000000000000C7 -S3154003807000000000000000000000000000000000B7 -S3154003808000000000000000000000000000000000A7 -S315400380900000000000000000000000000000000097 -S315400380A00000000000000000000000000000000087 -S315400380B00000000000000000000000000000000077 -S315400380C00000000000000000000000000000000067 -S315400380D00000000000000000000000000000000057 -S315400380E00000000000000000000000000000000047 -S315400380F00000000000000000000000000000000037 -S315400381000000000000000000000000000000000026 -S315400381100000000000000000000000000000000016 -S315400381200000000000000000000000000000000006 -S3154003813000000000000000000000000000000000F6 -S3154003814000000000000000000000000000000000E6 -S3154003815000000000000000000000000000000000D6 -S3154003816000000000000000000000000000000000C6 -S3154003817000000000000000000000000000000000B6 -S3154003818000000000000000000000000000000000A6 -S315400381900000000000000000000000000000000096 -S315400381A00000000000000000000000000000000086 -S315400381B00000000000000000000000000000000076 -S315400381C00000000000000000000000000000000066 -S315400381D00000000000000000000000000000000056 -S315400381E00000000000000000000000000000000046 -S315400381F00000000000000000000000000000000036 -S315400382000000000000000000000000000000000025 -S315400382100000000000000000000000000000000015 -S315400382200000000000000000000000000000000005 -S3154003823000000000000000000000000000000000F5 -S3154003824000000000000000000000000000000000E5 -S3154003825000000000000000000000000000000000D5 -S3154003826000000000000000000000000000000000C5 -S3154003827000000000000000000000000000000000B5 -S3154003828000000000000000000000000000000000A5 -S315400382900000000000000000000000000000000095 -S315400382A00000000000000000000000000000000085 -S315400382B00000000000000000000000000000000075 -S315400382C00000000000000000000000000000000065 -S315400382D00000000000000000000000000000000055 -S315400382E00000000000000000000000000000000045 -S315400382F00000000000000000000000000000000035 -S315400383000000000000000000000000000000000024 -S315400383100000000000000000000000000000000014 -S315400383200000000000000000000000000000000004 -S3154003833000000000000000000000000000000000F4 -S3154003834000000000000000000000000000000000E4 -S3154003835000000000000000000000000000000000D4 -S3154003836000000000000000000000000000000000C4 -S3154003837000000000000000000000000000000000B4 -S3154003838000000000000000000000000000000000A4 -S315400383900000000000000000000000000000000094 -S315400383A00000000000000000000000000000000084 -S315400383B00000000000000000000000000000000074 -S315400383C00000000000000000000000000000000064 -S315400383D00000000000000000000000000000000054 -S315400383E00000000000000000000000000000000044 -S315400383F00000000000000000000000000000000034 -S315400384000000000000000000000000000000000023 -S315400384100000000000000000000000000000000013 -S315400384200000000000000000000000000000000003 -S3154003843000000000000000000000000000000000F3 -S3154003844000000000000000000000000000000000E3 -S3154003845000000000000000000000000000000000D3 -S3154003846000000000000000000000000000000000C3 -S3154003847000000000000000000000000000000000B3 -S3154003848000000000000000000000000000000000A3 -S315400384900000000000000000000000000000000093 -S315400384A00000000000000000000000000000000083 -S315400384B00000000000000000000000000000000073 -S315400384C00000000000000000000000000000000063 -S315400384D00000000000000000000000000000000053 -S315400384E00000000000000000000000000000000043 -S315400384F00000000000000000000000000000000033 -S315400385000000000000000000000000000000000022 -S315400385100000000000000000000000000000000012 -S315400385200000000000000000000000000000000002 -S3154003853000000000000000000000000000000000F2 -S3154003854000000000000000000000000000000000E2 -S3154003855000000000000000000000000000000000D2 -S3154003856000000000000000000000000000000000C2 -S3154003857000000000000000000000000000000000B2 -S3154003858000000000000000000000000000000000A2 -S315400385900000000000000000000000000000000092 -S315400385A00000000000000000000000000000000082 -S315400385B00000000000000000000000000000000072 -S315400385C00000000000000000000000000000000062 -S315400385D00000000000000000000000000000000052 -S315400385E00000000000000000000000000000000042 -S315400385F00000000000000000000000000000000032 -S315400386000000000000000000000000000000000021 -S315400386100000000000000000000000000000000011 -S315400386200000000000000000000000000000000001 -S3154003863000000000000000000000000000000000F1 -S3154003864000000000000000000000000000000000E1 -S3154003865000000000000000000000000000000000D1 -S3154003866000000000000000000000000000000000C1 -S3154003867000000000000000000000000000000000B1 -S3154003868000000000000000000000000000000000A1 -S315400386900000000000000000000000000000000091 -S315400386A00000000000000000000000000000000081 -S315400386B00000000000000000000000000000000071 -S315400386C00000000000000000000000000000000061 -S315400386D00000000000000000000000000000000051 -S315400386E00000000000000000000000000000000041 -S315400386F00000000000000000000000000000000031 -S315400387000000000000000000000000000000000020 -S315400387100000000000000000000000000000000010 -S315400387200000000000000000000000000000000000 -S3154003873000000000000000000000000000000000F0 -S3154003874000000000000000000000000000000000E0 -S3154003875000000000000000000000000000000000D0 -S3154003876000000000000000000000000000000000C0 -S3154003877000000000000000000000000000000000B0 -S3154003878000000000000000000000000000000000A0 -S315400387900000000000000000000000000000000090 -S315400387A00000000000000000000000000000000080 -S315400387B00000000000000000000000000000000070 -S315400387C00000000000000000000000000000000060 -S315400387D00000000000000000000000000000000050 -S315400387E00000000000000000000000000000000040 -S315400387F00000000000000000000000000000000030 -S31540038800000000000000000000000000000000001F -S31540038810000000000000000000000000000000000F -S3154003882000000000000000000000000000000000FF -S3154003883000000000000000000000000000000000EF -S3154003884000000000000000000000000000000000DF -S3154003885000000000000000000000000000000000CF -S3154003886000000000000000000000000000000000BF -S3154003887000000000000000000000000000000000AF -S31540038880000000000000000000000000000000009F -S31540038890000000000000000000000000000000008F -S315400388A0000000000000000000000000000000007F -S315400388B0000000000000000000000000000000006F -S315400388C0000000000000000000000000000000005F -S315400388D0000000000000000000000000000000004F -S315400388E0000000000000000000000000000000003F -S315400388F0000000000000000000000000000000002F -S31540038900000000000000000000000000000000001E -S31540038910000000000000000000000000000000000E -S3154003892000000000000000000000000000000000FE -S3154003893000000000000000000000000000000000EE -S3154003894000000000000000000000000000000000DE -S3154003895000000000000000000000000000000000CE -S3154003896000000000000000000000000000000000BE -S3154003897000000000000000000000000000000000AE -S31540038980000000000000000000000000000000009E -S31540038990000000000000000000000000000000008E -S315400389A0000000000000000000000000000000007E -S315400389B0000000000000000000000000000000006E -S315400389C0000000000000000000000000000000005E -S315400389D0000000000000000000000000000000004E -S315400389E0000000000000000000000000000000003E -S315400389F0000000000000000000000000000000002E -S31540038A00000000000000000000000000000000001D -S31540038A10000000000000000000000000000000000D -S31540038A2000000000000000000000000000000000FD -S31540038A3000000000000000000000000000000000ED -S31540038A4000000000000000000000000000000000DD -S31540038A5000000000000000000000000000000000CD -S31540038A6000000000000000000000000000000000BD -S31540038A7000000000000000000000000000000000AD -S31540038A80000000000000000000000000000000009D -S31540038A90000000000000000000000000000000008D -S31540038AA0000000000000000000000000000000007D -S31540038AB0000000000000000000000000000000006D -S31540038AC0000000000000000000000000000000005D -S31540038AD0000000000000000000000000000000004D -S31540038AE0000000000000000000000000000000003D -S31540038AF0000000000000000000000000000000002D -S31540038B00000000000000000000000000000000001C -S31540038B10000000000000000000000000000000000C -S31540038B2000000000000000000000000000000000FC -S31540038B3000000000000000000000000000000000EC -S31540038B4000000000000000000000000000000000DC -S31540038B5000000000000000000000000000000000CC -S31540038B6000000000000000000000000000000000BC -S31540038B7000000000000000000000000000000000AC -S31540038B80000000000000000000000000000000009C -S31540038B90000000000000000000000000000000008C -S31540038BA0000000000000000000000000000000007C -S31540038BB0000000000000000000000000000000006C -S31540038BC0000000000000000000000000000000005C -S31540038BD0000000000000000000000000000000004C -S31540038BE0000000000000000000000000000000003C -S31540038BF0000000000000000000000000000000002C -S31540038C00000000000000000000000000000000001B -S31540038C10000000000000000000000000000000000B -S31540038C2000000000000000000000000000000000FB -S31540038C3000000000000000000000000000000000EB -S31540038C4000000000000000000000000000000000DB -S31540038C5000000000000000000000000000000000CB -S31540038C6000000000000000000000000000000000BB -S31540038C7000000000000000000000000000000000AB -S31540038C80000000000000000000000000000000009B -S31540038C90000000000000000000000000000000008B -S31540038CA0000000000000000000000000000000007B -S31540038CB0000000000000000000000000000000006B -S31540038CC0000000000000000000000000000000005B -S31540038CD0000000000000000000000000000000004B -S31540038CE0000000000000000000000000000000003B -S31540038CF0000000000000000000000000000000002B -S31540038D00000000000000000000000000000000001A -S31540038D10000000000000000000000000000000000A -S31540038D2000000000000000000000000000000000FA -S31540038D3000000000000000000000000000000000EA -S31540038D4000000000000000000000000000000000DA -S31540038D5000000000000000000000000000000000CA -S31540038D6000000000000000000000000000000000BA -S31540038D7000000000000000000000000000000000AA -S31540038D80000000000000000000000000000000009A -S31540038D90000000000000000000000000000000008A -S31540038DA0000000000000000000000000000000007A -S31540038DB0000000000000000000000000000000006A -S31540038DC0000000000000000000000000000000005A -S31540038DD0000000000000000000000000000000004A -S31540038DE0000000000000000000000000000000003A -S31540038DF0000000000000000000000000000000002A -S31540038E000000000000000000000000000000000019 -S31540038E100000000000000000000000000000000009 -S31540038E2000000000000000000000000000000000F9 -S31540038E3000000000000000000000000000000000E9 -S31540038E4000000000000000000000000000000000D9 -S31540038E5000000000000000000000000000000000C9 -S31540038E6000000000000000000000000000000000B9 -S31540038E7000000000000000000000000000000000A9 -S31540038E800000000000000000000000000000000099 -S31540038E900000000000000000000000000000000089 -S31540038EA00000000000000000000000000000000079 -S31540038EB00000000000000000000000000000000069 -S31540038EC00000000000000000000000000000000059 -S31540038ED00000000000000000000000000000000049 -S31540038EE00000000000000000000000000000000039 -S31540038EF00000000000000000000000000000000029 -S31540038F000000000000000000000000000000000018 -S31540038F100000000000000000000000000000000008 -S31540038F2000000000000000000000000000000000F8 -S31540038F3000000000000000000000000000000000E8 -S31540038F4000000000000000000000000000000000D8 -S31540038F5000000000000000000000000000000000C8 -S31540038F6000000000000000000000000000000000B8 -S31540038F7000000000000000000000000000000000A8 -S31540038F800000000000000000000000000000000098 -S31540038F900000000000000000000000000000000088 -S31540038FA00000000000000000000000000000000078 -S31540038FB00000000000000000000000000000000068 -S31540038FC00000000000000000000000000000000058 -S31540038FD00000000000000000000000000000000048 -S31540038FE00000000000000000000000000000000038 -S31540038FF00000000000000000000000000000000028 -S315400390000000000000000000000000000000000017 -S315400390100000000000000000000000000000000007 -S3154003902000000000000000000000000000000000F7 -S3154003903000000000000000000000000000000000E7 -S3154003904000000000000000000000000000000000D7 -S3154003905000000000000000000000000000000000C7 -S3154003906000000000000000000000000000000000B7 -S3154003907000000000000000000000000000000000A7 -S315400390800000000000000000000000000000000097 -S315400390900000000000000000000000000000000087 -S315400390A00000000000000000000000000000000077 -S315400390B00000000000000000000000000000000067 -S315400390C00000000000000000000000000000000057 -S315400390D00000000000000000000000000000000047 -S315400390E00000000000000000000000000000000037 -S315400390F00000000000000000000000000000000027 -S315400391000000000000000000000000000000000016 -S315400391100000000000000000000000000000000006 -S3154003912000000000000000000000000000000000F6 -S3154003913000000000000000000000000000000000E6 -S3154003914000000000000000000000000000000000D6 -S3154003915000000000000000000000000000000000C6 -S3154003916000000000000000000000000000000000B6 -S3154003917000000000000000000000000000000000A6 -S315400391800000000000000000000000000000000096 -S315400391900000000000000000000000000000000086 -S315400391A00000000000000000000000000000000076 -S315400391B00000000000000000000000000000000066 -S315400391C00000000000000000000000000000000056 -S315400391D00000000000000000000000000000000046 -S315400391E00000000000000000000000000000000036 -S315400391F00000000000000000000000000000000026 -S315400392000000000000000000000000000000000015 -S315400392100000000000000000000000000000000005 -S3154003922000000000000000000000000000000000F5 -S3154003923000000000000000000000000000000000E5 -S3154003924000000000000000000000000000000000D5 -S3154003925000000000000000000000000000000000C5 -S3154003926000000000000000000000000000000000B5 -S3154003927000000000000000000000000000000000A5 -S315400392800000000000000000000000000000000095 -S315400392900000000000000000000000000000000085 -S315400392A00000000000000000000000000000000075 -S315400392B00000000000000000000000000000000065 -S315400392C00000000000000000000000000000000055 -S315400392D00000000000000000000000000000000045 -S315400392E00000000000000000000000000000000035 -S315400392F00000000000000000000000000000000025 -S315400393000000000000000000000000000000000014 -S315400393100000000000000000000000000000000004 -S3154003932000000000000000000000000000000000F4 -S3154003933000000000000000000000000000000000E4 -S3154003934000000000000000000000000000000000D4 -S3154003935000000000000000000000000000000000C4 -S3154003936000000000000000000000000000000000B4 -S3154003937000000000000000000000000000000000A4 -S315400393800000000000000000000000000000000094 -S315400393900000000000000000000000000000000084 -S315400393A00000000000000000000000000000000074 -S315400393B00000000000000000000000000000000064 -S315400393C00000000000000000000000000000000054 -S315400393D00000000000000000000000000000000044 -S315400393E00000000000000000000000000000000034 -S315400393F00000000000000000000000000000000024 -S315400394000000000000000000000000000000000013 -S315400394100000000000000000000000000000000003 -S3154003942000000000000000000000000000000000F3 -S3154003943000000000000000000000000000000000E3 -S3154003944000000000000000000000000000000000D3 -S3154003945000000000000000000000000000000000C3 -S3154003946000000000000000000000000000000000B3 -S3154003947000000000000000000000000000000000A3 -S315400394800000000000000000000000000000000093 -S315400394900000000000000000000000000000000083 -S315400394A00000000000000000000000000000000073 -S315400394B00000000000000000000000000000000063 -S315400394C00000000000000000000000000000000053 -S315400394D00000000000000000000000000000000043 -S315400394E00000000000000000000000000000000033 -S315400394F00000000000000000000000000000000023 -S315400395000000000000000000000000000000000012 -S315400395100000000000000000000000000000000002 -S3154003952000000000000000000000000000000000F2 -S3154003953000000000000000000000000000000000E2 -S3154003954000000000000000000000000000000000D2 -S3154003955000000000000000000000000000000000C2 -S3154003956000000000000000000000000000000000B2 -S3154003957000000000000000000000000000000000A2 -S315400395800000000000000000000000000000000092 -S315400395900000000000000000000000000000000082 -S315400395A00000000000000000000000000000000072 -S315400395B00000000000000000000000000000000062 -S315400395C00000000000000000000000000000000052 -S315400395D00000000000000000000000000000000042 -S315400395E00000000000000000000000000000000032 -S315400395F00000000000000000000000000000000022 -S315400396000000000000000000000000000000000011 -S315400396100000000000000000000000000000000001 -S3154003962000000000000000000000000000000000F1 -S3154003963000000000000000000000000000000000E1 -S3154003964000000000000000000000000000000000D1 -S3154003965000000000000000000000000000000000C1 -S3154003966000000000000000000000000000000000B1 -S3154003967000000000000000000000000000000000A1 -S315400396800000000000000000000000000000000091 -S315400396900000000000000000000000000000000081 -S315400396A00000000000000000000000000000000071 -S315400396B00000000000000000000000000000000061 -S315400396C00000000000000000000000000000000051 -S315400396D00000000000000000000000000000000041 -S315400396E00000000000000000000000000000000031 -S315400396F00000000000000000000000000000000021 -S315400397000000000000000000000000000000000010 -S315400397100000000000000000000000000000000000 -S3154003972000000000000000000000000000000000F0 -S3154003973000000000000000000000000000000000E0 -S3154003974000000000000000000000000000000000D0 -S3154003975000000000000000000000000000000000C0 -S3154003976000000000000000000000000000000000B0 -S3154003977000000000000000000000000000000000A0 -S315400397800000000000000000000000000000000090 -S315400397900000000000000000000000000000000080 -S315400397A00000000000000000000000000000000070 -S315400397B00000000000000000000000000000000060 -S315400397C00000000000000000000000000000000050 -S315400397D00000000000000000000000000000000040 -S315400397E00000000000000000000000000000000030 -S315400397F00000000000000000000000000000000020 -S31540039800000000000000000000000000000000000F -S3154003981000000000000000000000000000000000FF -S3154003982000000000000000000000000000000000EF -S3154003983000000000000000000000000000000000DF -S3154003984000000000000000000000000000000000CF -S3154003985000000000000000000000000000000000BF -S3154003986000000000000000000000000000000000AF -S31540039870000000000000000000000000000000009F -S31540039880000000000000000000000000000000008F -S31540039890000000000000000000000000000000007F -S315400398A0000000000000000000000000000000006F -S315400398B0000000000000000000000000000000005F -S315400398C0000000000000000000000000000000004F -S315400398D0000000000000000000000000000000003F -S315400398E0000000000000000000000000000000002F -S315400398F0000000000000000000000000000000001F -S31540039900000000000000000000000000000000000E -S3154003991000000000000000000000000000000000FE -S3154003992000000000000000000000000000000000EE -S3154003993000000000000000000000000000000000DE -S3154003994000000000000000000000000000000000CE -S3154003995000000000000000000000000000000000BE -S3154003996000000000000000000000000000000000AE -S31540039970000000000000000000000000000000009E -S31540039980000000000000000000000000000000008E -S31540039990000000000000000000000000000000007E -S315400399A0000000000000000000000000000000006E -S315400399B0000000000000000000000000000000005E -S315400399C0000000000000000000000000000000004E -S315400399D0000000000000000000000000000000003E -S315400399E0000000000000000000000000000000002E -S315400399F0000000000000000000000000000000001E -S31540039A00000000000000000000000000000000000D -S31540039A1000000000000000000000000000000000FD -S31540039A2000000000000000000000000000000000ED -S31540039A3000000000000000000000000000000000DD -S31540039A4000000000000000000000000000000000CD -S31540039A5000000000000000000000000000000000BD -S31540039A6000000000000000000000000000000000AD -S31540039A70000000000000000000000000000000009D -S31540039A80000000000000000000000000000000008D -S31540039A90000000000000000000000000000000007D -S31540039AA0000000000000000000000000000000006D -S31540039AB0000000000000000000000000000000005D -S31540039AC0000000000000000000000000000000004D -S31540039AD0000000000000000000000000000000003D -S31540039AE0000000000000000000000000000000002D -S31540039AF0000000000000000000000000000000001D -S31540039B00000000000000000000000000000000000C -S31540039B1000000000000000000000000000000000FC -S31540039B2000000000000000000000000000000000EC -S31540039B3000000000000000000000000000000000DC -S31540039B4000000000000000000000000000000000CC -S31540039B5000000000000000000000000000000000BC -S31540039B6000000000000000000000000000000000AC -S31540039B70000000000000000000000000000000009C -S31540039B80000000000000000000000000000000008C -S31540039B90000000000000000000000000000000007C -S31540039BA0000000000000000000000000000000006C -S31540039BB0000000000000000000000000000000005C -S31540039BC0000000000000000000000000000000004C -S31540039BD0000000000000000000000000000000003C -S31540039BE0000000000000000000000000000000002C -S31540039BF0000000000000000000000000000000001C -S31540039C00000000000000000000000000000000000B -S31540039C1000000000000000000000000000000000FB -S31540039C2000000000000000000000000000000000EB -S31540039C3000000000000000000000000000000000DB -S31540039C4000000000000000000000000000000000CB -S31540039C5000000000000000000000000000000000BB -S31540039C6000000000000000000000000000000000AB -S31540039C70000000000000000000000000000000009B -S31540039C80000000000000000000000000000000008B -S31540039C90000000000000000000000000000000007B -S31540039CA0000000000000000000000000000000006B -S31540039CB0000000000000000000000000000000005B -S31540039CC0000000000000000000000000000000004B -S31540039CD0000000000000000000000000000000003B -S31540039CE0000000000000000000000000000000002B -S31540039CF0000000000000000000000000000000001B -S31540039D00000000000000000000000000000000000A -S31540039D1000000000000000000000000000000000FA -S31540039D2000000000000000000000000000000000EA -S31540039D3000000000000000000000000000000000DA -S31540039D4000000000000000000000000000000000CA -S31540039D5000000000000000000000000000000000BA -S31540039D6000000000000000000000000000000000AA -S31540039D70000000000000000000000000000000009A -S31540039D80000000000000000000000000000000008A -S31540039D90000000000000000000000000000000007A -S31540039DA0000000000000000000000000000000006A -S31540039DB0000000000000000000000000000000005A -S31540039DC0000000000000000000000000000000004A -S31540039DD0000000000000000000000000000000003A -S31540039DE0000000000000000000000000000000002A -S31540039DF0000000000000000000000000000000001A -S31540039E000000000000000000000000000000000009 -S31540039E1000000000000000000000000000000000F9 -S31540039E2000000000000000000000000000000000E9 -S31540039E3000000000000000000000000000000000D9 -S31540039E4000000000000000000000000000000000C9 -S31540039E5000000000000000000000000000000000B9 -S31540039E6000000000000000000000000000000000A9 -S31540039E700000000000000000000000000000000099 -S31540039E800000000000000000000000000000000089 -S31540039E900000000000000000000000000000000079 -S31540039EA00000000000000000000000000000000069 -S31540039EB00000000000000000000000000000000059 -S31540039EC00000000000000000000000000000000049 -S31540039ED00000000000000000000000000000000039 -S31540039EE00000000000000000000000000000000029 -S31540039EF00000000000000000000000000000000019 -S31540039F000000000000000000000000000000000008 -S31540039F1000000000000000000000000000000000F8 -S31540039F2000000000000000000000000000000000E8 -S31540039F3000000000000000000000000000000000D8 -S31540039F4000000000000000000000000000000000C8 -S31540039F5000000000000000000000000000000000B8 -S31540039F6000000000000000000000000000000000A8 -S31540039F700000000000000000000000000000000098 -S31540039F800000000000000000000000000000000088 -S31540039F900000000000000000000000000000000078 -S31540039FA00000000000000000000000000000000068 -S31540039FB00000000000000000000000000000000058 -S31540039FC00000000000000000000000000000000048 -S31540039FD00000000000000000000000000000000038 -S31540039FE00000000000000000000000000000000028 -S31540039FF00000000000000000000000000000000018 -S3154003A0000000000000000000000000000000000007 -S3154003A01000000000000000000000000000000000F7 -S3154003A02000000000000000000000000000000000E7 -S3154003A03000000000000000000000000000000000D7 -S3154003A04000000000000000000000000000000000C7 -S3154003A05000000000000000000000000000000000B7 -S3154003A06000000000000000000000000000000000A7 -S3154003A0700000000000000000000000000000000097 -S3154003A0800000000000000000000000000000000087 -S3154003A0900000000000000000000000000000000077 -S3154003A0A00000000000000000000000000000000067 -S3154003A0B00000000000000000000000000000000057 -S3154003A0C00000000000000000000000000000000047 -S3154003A0D00000000000000000000000000000000037 -S3154003A0E00000000000000000000000000000000027 -S3154003A0F00000000000000000000000000000000017 -S3154003A1000000000000000000000000000000000006 -S3154003A11000000000000000000000000000000000F6 -S3154003A12000000000000000000000000000000000E6 -S3154003A13000000000000000000000000000000000D6 -S3154003A14000000000000000000000000000000000C6 -S3154003A15000000000000000000000000000000000B6 -S3154003A16000000000000000000000000000000000A6 -S3154003A1700000000000000000000000000000000096 -S3154003A1800000000000000000000000000000000086 -S3154003A1900000000000000000000000000000000076 -S3154003A1A00000000000000000000000000000000066 -S3154003A1B00000000000000000000000000000000056 -S3154003A1C00000000000000000000000000000000046 -S3154003A1D00000000000000000000000000000000036 -S3154003A1E00000000000000000000000000000000026 -S3154003A1F00000000000000000000000000000000016 -S3154003A2000000000000000000000000000000000005 -S3154003A21000000000000000000000000000000000F5 -S3154003A22000000000000000000000000000000000E5 -S3154003A23000000000000000000000000000000000D5 -S3154003A24000000000000000000000000000000000C5 -S3154003A25000000000000000000000000000000000B5 -S3154003A26000000000000000000000000000000000A5 -S3154003A2700000000000000000000000000000000095 -S3154003A2800000000000000000000000000000000085 -S3154003A2900000000000000000000000000000000075 -S3154003A2A00000000000000000000000000000000065 -S3154003A2B00000000000000000000000000000000055 -S3154003A2C00000000000000000000000000000000045 -S3154003A2D00000000000000000000000000000000035 -S3154003A2E00000000000000000000000000000000025 -S3154003A2F00000000000000000000000000000000015 -S3154003A3000000000000000000000000000000000004 -S3154003A31000000000000000000000000000000000F4 -S3154003A32000000000000000000000000000000000E4 -S3154003A33000000000000000000000000000000000D4 -S3154003A34000000000000000000000000000000000C4 -S3154003A35000000000000000000000000000000000B4 -S3154003A36000000000000000000000000000000000A4 -S3154003A3700000000000000000000000000000000094 -S3154003A3800000000000000000000000000000000084 -S3154003A3900000000000000000000000000000000074 -S3154003A3A00000000000000000000000000000000064 -S3154003A3B00000000000000000000000000000000054 -S3154003A3C00000000000000000000000000000000044 -S3154003A3D00000000000000000000000000000000034 -S3154003A3E00000000000000000000000000000000024 -S3154003A3F00000000000000000000000000000000014 -S3154003A4000000000000000000000000000000000003 -S3154003A41000000000000000000000000000000000F3 -S3154003A42000000000000000000000000000000000E3 -S3154003A43000000000000000000000000000000000D3 -S3154003A44000000000000000000000000000000000C3 -S3154003A45000000000000000000000000000000000B3 -S3154003A46000000000000000000000000000000000A3 -S3154003A4700000000000000000000000000000000093 -S3154003A4800000000000000000000000000000000083 -S3154003A4900000000000000000000000000000000073 -S3154003A4A00000000000000000000000000000000063 -S3154003A4B00000000000000000000000000000000053 -S3154003A4C00000000000000000000000000000000043 -S3154003A4D00000000000000000000000000000000033 -S3154003A4E00000000000000000000000000000000023 -S3154003A4F00000000000000000000000000000000013 -S3154003A5000000000000000000000000000000000002 -S3154003A51000000000000000000000000000000000F2 -S3154003A52000000000000000000000000000000000E2 -S3154003A53000000000000000000000000000000000D2 -S3154003A54000000000000000000000000000000000C2 -S3154003A55000000000000000000000000000000000B2 -S3154003A56000000000000000000000000000000000A2 -S3154003A5700000000000000000000000000000000092 -S3154003A5800000000000000000000000000000000082 -S3154003A5900000000000000000000000000000000072 -S3154003A5A00000000000000000000000000000000062 -S3154003A5B00000000000000000000000000000000052 -S3154003A5C00000000000000000000000000000000042 -S3154003A5D00000000000000000000000000000000032 -S3154003A5E00000000000000000000000000000000022 -S3154003A5F00000000000000000000000000000000012 -S3154003A6000000000000000000000000000000000001 -S3154003A61000000000000000000000000000000000F1 -S3154003A62000000000000000000000000000000000E1 -S3154003A63000000000000000000000000000000000D1 -S3154003A64000000000000000000000000000000000C1 -S3154003A65000000000000000000000000000000000B1 -S3154003A66000000000000000000000000000000000A1 -S3154003A6700000000000000000000000000000000091 -S3154003A6800000000000000000000000000000000081 -S3154003A6900000000000000000000000000000000071 -S3154003A6A00000000000000000000000000000000061 -S3154003A6B00000000000000000000000000000000051 -S3154003A6C00000000000000000000000000000000041 -S3154003A6D00000000000000000000000000000000031 -S3154003A6E00000000000000000000000000000000021 -S3154003A6F00000000000000000000000000000000011 -S3154003A7000000000000000000000000000000000000 -S3154003A71000000000000000000000000000000000F0 -S3154003A72000000000000000000000000000000000E0 -S3154003A73000000000000000000000000000000000D0 -S3154003A74000000000000000000000000000000000C0 -S3154003A75000000000000000000000000000000000B0 -S3154003A76000000000000000000000000000000000A0 -S3154003A7700000000000000000000000000000000090 -S3154003A7800000000000000000000000000000000080 -S3154003A7900000000000000000000000000000000070 -S3154003A7A00000000000000000000000000000000060 -S3154003A7B00000000000000000000000000000000050 -S3154003A7C00000000000000000000000000000000040 -S3154003A7D00000000000000000000000000000000030 -S3154003A7E00000000000000000000000000000000020 -S3154003A7F00000000000000000000000000000000010 -S3154003A80000000000000000000000000000000000FF -S3154003A81000000000000000000000000000000000EF -S3154003A82000000000000000000000000000000000DF -S3154003A83000000000000000000000000000000000CF -S3154003A84000000000000000000000000000000000BF -S3154003A85000000000000000000000000000000000AF -S3154003A860000000000000000000000000000000009F -S3154003A870000000000000000000000000000000008F -S3154003A880000000000000000000000000000000007F -S3154003A890000000000000000000000000000000006F -S3154003A8A0000000000000000000000000000000005F -S3154003A8B0000000000000000000000000000000004F -S3154003A8C0000000000000000000000000000000003F -S3154003A8D0000000000000000000000000000000002F -S3154003A8E0000000000000000000000000000000001F -S3154003A8F0000000000000000000000000000000000F -S3154003A90000000000000000000000000000000000FE -S3154003A91000000000000000000000000000000000EE -S3154003A92000000000000000000000000000000000DE -S3154003A93000000000000000000000000000000000CE -S3154003A94000000000000000000000000000000000BE -S3154003A95000000000000000000000000000000000AE -S3154003A960000000000000000000000000000000009E -S3154003A970000000000000000000000000000000008E -S3154003A980000000000000000000000000000000007E -S3154003A990000000000000000000000000000000006E -S3154003A9A0000000000000000000000000000000005E -S3154003A9B0000000000000000000000000000000004E -S3154003A9C0000000000000000000000000000000003E -S3154003A9D0000000000000000000000000000000002E -S3154003A9E0000000000000000000000000000000001E -S3154003A9F0000000000000000000000000000000000E -S3154003AA0000000000000000000000000000000000FD -S3154003AA1000000000000000000000000000000000ED -S3154003AA2000000000000000000000000000000000DD -S3154003AA3000000000000000000000000000000000CD -S3154003AA4000000000000000000000000000000000BD -S3154003AA5000000000000000000000000000000000AD -S3154003AA60000000000000000000000000000000009D -S3154003AA70000000000000000000000000000000008D -S3154003AA80000000000000000000000000000000007D -S3154003AA90000000000000000000000000000000006D -S3154003AAA0000000000000000000000000000000005D -S3154003AAB0000000000000000000000000000000004D -S3154003AAC0000000000000000000000000000000003D -S3154003AAD0000000000000000000000000000000002D -S3154003AAE0000000000000000000000000000000001D -S3154003AAF0000000000000000000000000000000000D -S3154003AB0000000000000000000000000000000000FC -S3154003AB1000000000000000000000000000000000EC -S3154003AB2000000000000000000000000000000000DC -S3154003AB3000000000000000000000000000000000CC -S3154003AB4000000000000000000000000000000000BC -S3154003AB5000000000000000000000000000000000AC -S3154003AB60000000000000000000000000000000009C -S3154003AB70000000000000000000000000000000008C -S3154003AB80000000000000000000000000000000007C -S3154003AB90000000000000000000000000000000006C -S3154003ABA0000000000000000000000000000000005C -S3154003ABB0000000000000000000000000000000004C -S3154003ABC0000000000000000000000000000000003C -S3154003ABD0000000000000000000000000000000002C -S3154003ABE0000000000000000000000000000000001C -S3154003ABF0000000000000000000000000000000000C -S3154003AC0000000000000000000000000000000000FB -S3154003AC1000000000000000000000000000000000EB -S3154003AC2000000000000000000000000000000000DB -S3154003AC3000000000000000000000000000000000CB -S3154003AC4000000000000000000000000000000000BB -S3154003AC5000000000000000000000000000000000AB -S3154003AC60000000000000000000000000000000009B -S3154003AC70000000000000000000000000000000008B -S3154003AC80000000000000000000000000000000007B -S3154003AC90000000000000000000000000000000006B -S3154003ACA0000000000000000000000000000000005B -S3154003ACB0000000000000000000000000000000004B -S3154003ACC0000000000000000000000000000000003B -S3154003ACD0000000000000000000000000000000002B -S3154003ACE0000000000000000000000000000000001B -S3154003ACF0000000000000000000000000000000000B -S3154003AD0000000000000000000000000000000000FA -S3154003AD1000000000000000000000000000000000EA -S3154003AD2000000000000000000000000000000000DA -S3154003AD3000000000000000000000000000000000CA -S3154003AD4000000000000000000000000000000000BA -S3154003AD5000000000000000000000000000000000AA -S3154003AD60000000000000000000000000000000009A -S3154003AD70000000000000000000000000000000008A -S3154003AD80000000000000000000000000000000007A -S3154003AD90000000000000000000000000000000006A -S3154003ADA0000000000000000000000000000000005A -S3154003ADB0000000000000000000000000000000004A -S3154003ADC0000000000000000000000000000000003A -S3154003ADD0000000000000000000000000000000002A -S3154003ADE0000000000000000000000000000000001A -S3154003ADF0000000000000000000000000000000000A -S3154003AE0000000000000000000000000000000000F9 -S3154003AE1000000000000000000000000000000000E9 -S3154003AE2000000000000000000000000000000000D9 -S3154003AE3000000000000000000000000000000000C9 -S3154003AE4000000000000000000000000000000000B9 -S3154003AE5000000000000000000000000000000000A9 -S3154003AE600000000000000000000000000000000099 -S3154003AE700000000000000000000000000000000089 -S3154003AE800000000000000000000000000000000079 -S3154003AE900000000000000000000000000000000069 -S3154003AEA00000000000000000000000000000000059 -S3154003AEB00000000000000000000000000000000049 -S3154003AEC00000000000000000000000000000000039 -S3154003AED00000000000000000000000000000000029 -S3154003AEE00000000000000000000000000000000019 -S3154003AEF00000000000000000000000000000000009 -S3154003AF0000000000000000000000000000000000F8 -S3154003AF1000000000000000000000000000000000E8 -S3154003AF2000000000000000000000000000000000D8 -S3154003AF3000000000000000000000000000000000C8 -S3154003AF4000000000000000000000000000000000B8 -S3154003AF5000000000000000000000000000000000A8 -S3154003AF600000000000000000000000000000000098 -S3154003AF700000000000000000000000000000000088 -S3154003AF800000000000000000000000000000000078 -S3154003AF900000000000000000000000000000000068 -S3154003AFA00000000000000000000000000000000058 -S3154003AFB00000000000000000000000000000000048 -S3154003AFC00000000000000000000000000000000038 -S3154003AFD00000000000000000000000000000000028 -S3154003AFE00000000000000000000000000000000018 -S3154003AFF00000000000000000000000000000000008 -S3154003B00000000000000000000000000000000000F7 -S3154003B01000000000000000000000000000000000E7 -S3154003B02000000000000000000000000000000000D7 -S3154003B03000000000000000000000000000000000C7 -S3154003B04000000000000000000000000000000000B7 -S3154003B05000000000000000000000000000000000A7 -S3154003B0600000000000000000000000000000000097 -S3154003B0700000000000000000000000000000000087 -S3154003B0800000000000000000000000000000000077 -S3154003B0900000000000000000000000000000000067 -S3154003B0A00000000000000000000000000000000057 -S3154003B0B00000000000000000000000000000000047 -S3154003B0C00000000000000000000000000000000037 -S3154003B0D00000000000000000000000000000000027 -S3154003B0E00000000000000000000000000000000017 -S3154003B0F00000000000000000000000000000000007 -S3154003B10000000000000000000000000000000000F6 -S3154003B11000000000000000000000000000000000E6 -S3154003B12000000000000000000000000000000000D6 -S3154003B13000000000000000000000000000000000C6 -S3154003B14000000000000000000000000000000000B6 -S3154003B15000000000000000000000000000000000A6 -S3154003B1600000000000000000000000000000000096 -S3154003B1700000000000000000000000000000000086 -S3154003B1800000000000000000000000000000000076 -S3154003B1900000000000000000000000000000000066 -S3154003B1A00000000000000000000000000000000056 -S3154003B1B00000000000000000000000000000000046 -S3154003B1C00000000000000000000000000000000036 -S3154003B1D00000000000000000000000000000000026 -S3154003B1E00000000000000000000000000000000016 -S3154003B1F00000000000000000000000000000000006 -S3154003B20000000000000000000000000000000000F5 -S3154003B21000000000000000000000000000000000E5 -S3154003B22000000000000000000000000000000000D5 -S3154003B23000000000000000000000000000000000C5 -S3154003B24000000000000000000000000000000000B5 -S3154003B25000000000000000000000000000000000A5 -S3154003B2600000000000000000000000000000000095 -S3154003B2700000000000000000000000000000000085 -S3154003B2800000000000000000000000000000000075 -S3154003B2900000000000000000000000000000000065 -S3154003B2A00000000000000000000000000000000055 -S3154003B2B00000000000000000000000000000000045 -S3154003B2C00000000000000000000000000000000035 -S3154003B2D00000000000000000000000000000000025 -S3154003B2E00000000000000000000000000000000015 -S3154003B2F00000000000000000000000000000000005 -S3154003B30000000000000000000000000000000000F4 -S3154003B31000000000000000000000000000000000E4 -S3154003B32000000000000000000000000000000000D4 -S3154003B33000000000000000000000000000000000C4 -S3154003B34000000000000000000000000000000000B4 -S3154003B35000000000000000000000000000000000A4 -S3154003B3600000000000000000000000000000000094 -S3154003B3700000000000000000000000000000000084 -S3154003B3800000000000000000000000000000000074 -S3154003B3900000000000000000000000000000000064 -S3154003B3A00000000000000000000000000000000054 -S3154003B3B00000000000000000000000000000000044 -S3154003B3C00000000000000000000000000000000034 -S3154003B3D00000000000000000000000000000000024 -S3154003B3E00000000000000000000000000000000014 -S3154003B3F00000000000000000000000000000000004 -S3154003B40000000000000000000000000000000000F3 -S3154003B41000000000000000000000000000000000E3 -S3154003B42000000000000000000000000000000000D3 -S3154003B43000000000000000000000000000000000C3 -S3154003B44000000000000000000000000000000000B3 -S3154003B45000000000000000000000000000000000A3 -S3154003B4600000000000000000000000000000000093 -S3154003B4700000000000000000000000000000000083 -S3154003B4800000000000000000000000000000000073 -S3154003B4900000000000000000000000000000000063 -S3154003B4A00000000000000000000000000000000053 -S3154003B4B00000000000000000000000000000000043 -S3154003B4C00000000000000000000000000000000033 -S3154003B4D00000000000000000000000000000000023 -S3154003B4E00000000000000000000000000000000013 -S3154003B4F00000000000000000000000000000000003 -S3154003B50000000000000000000000000000000000F2 -S3154003B51000000000000000000000000000000000E2 -S3154003B52000000000000000000000000000000000D2 -S3154003B53000000000000000000000000000000000C2 -S3154003B54000000000000000000000000000000000B2 -S3154003B55000000000000000000000000000000000A2 -S3154003B5600000000000000000000000000000000092 -S3154003B5700000000000000000000000000000000082 -S3154003B5800000000000000000000000000000000072 -S3154003B5900000000000000000000000000000000062 -S3154003B5A00000000000000000000000000000000052 -S3154003B5B00000000000000000000000000000000042 -S3154003B5C00000000000000000000000000000000032 -S3154003B5D00000000000000000000000000000000022 -S3154003B5E00000000000000000000000000000000012 -S3154003B5F00000000000000000000000000000000002 -S3154003B60000000000000000000000000000000000F1 -S3154003B61000000000000000000000000000000000E1 -S3154003B62000000000000000000000000000000000D1 -S3154003B63000000000000000000000000000000000C1 -S3154003B64000000000000000000000000000000000B1 -S3154003B65000000000000000000000000000000000A1 -S3154003B6600000000000000000000000000000000091 -S3154003B6700000000000000000000000000000000081 -S3154003B6800000000000000000000000000000000071 -S3154003B6900000000000000000000000000000000061 -S3154003B6A00000000000000000000000000000000051 -S3154003B6B00000000000000000000000000000000041 -S3154003B6C00000000000000000000000000000000031 -S3154003B6D00000000000000000000000000000000021 -S3154003B6E00000000000000000000000000000000011 -S3154003B6F00000000000000000000000000000000001 -S3154003B70000000000000000000000000000000000F0 -S3154003B71000000000000000000000000000000000E0 -S3154003B72000000000000000000000000000000000D0 -S3154003B73000000000000000000000000000000000C0 -S3154003B74000000000000000000000000000000000B0 -S3154003B75000000000000000000000000000000000A0 -S3154003B7600000000000000000000000000000000090 -S3154003B7700000000000000000000000000000000080 -S3154003B7800000000000000000000000000000000070 -S3154003B7900000000000000000000000000000000060 -S3154003B7A00000000000000000000000000000000050 -S3154003B7B00000000000000000000000000000000040 -S3154003B7C00000000000000000000000000000000030 -S3154003B7D00000000000000000000000000000000020 -S3154003B7E00000000000000000000000000000000010 -S3154003B7F00000000000000000000000000000000000 -S3154003B80000000000000000000000000000000000EF -S3154003B81000000000000000000000000000000000DF -S3154003B82000000000000000000000000000000000CF -S3154003B83000000000000000000000000000000000BF -S3154003B84000000000000000000000000000000000AF -S3154003B850000000000000000000000000000000009F -S3154003B860000000000000000000000000000000008F -S3154003B870000000000000000000000000000000007F -S3154003B880000000000000000000000000000000006F -S3154003B890000000000000000000000000000000005F -S3154003B8A0000000000000000000000000000000004F -S3154003B8B0000000000000000000000000000000003F -S3154003B8C0000000000000000000000000000000002F -S3154003B8D0000000000000000000000000000000001F -S3154003B8E0000000000000000000000000000000000F -S3154003B8F000000000000000000000000000000000FF -S3154003B90000000000000000000000000000000000EE -S3154003B91000000000000000000000000000000000DE -S3154003B92000000000000000000000000000000000CE -S3154003B93000000000000000000000000000000000BE -S3154003B94000000000000000000000000000000000AE -S3154003B950000000000000000000000000000000009E -S3154003B960000000000000000000000000000000008E -S3154003B970000000000000000000000000000000007E -S3154003B980000000000000000000000000000000006E -S3154003B990000000000000000000000000000000005E -S3154003B9A0000000000000000000000000000000004E -S3154003B9B0000000000000000000000000000000003E -S3154003B9C0000000000000000000000000000000002E -S3154003B9D0000000000000000000000000000000001E -S3154003B9E0000000000000000000000000000000000E -S3154003B9F000000000000000000000000000000000FE -S3154003BA0000000000000000000000000000000000ED -S3154003BA1000000000000000000000000000000000DD -S3154003BA2000000000000000000000000000000000CD -S3154003BA3000000000000000000000000000000000BD -S3154003BA4000000000000000000000000000000000AD -S3154003BA50000000000000000000000000000000009D -S3154003BA60000000000000000000000000000000008D -S3154003BA70000000000000000000000000000000007D -S3154003BA80000000000000000000000000000000006D -S3154003BA90000000000000000000000000000000005D -S3154003BAA0000000000000000000000000000000004D -S3154003BAB0000000000000000000000000000000003D -S3154003BAC0000000000000000000000000000000002D -S3154003BAD0000000000000000000000000000000001D -S3154003BAE0000000000000000000000000000000000D -S3154003BAF000000000000000000000000000000000FD -S3154003BB0000000000000000000000000000000000EC -S3154003BB1000000000000000000000000000000000DC -S3154003BB2000000000000000000000000000000000CC -S3154003BB3000000000000000000000000000000000BC -S3154003BB4000000000000000000000000000000000AC -S3154003BB50000000000000000000000000000000009C -S3154003BB60000000000000000000000000000000008C -S3154003BB70000000000000000000000000000000007C -S3154003BB80000000000000000000000000000000006C -S3154003BB90000000000000000000000000000000005C -S3154003BBA0000000000000000000000000000000004C -S3154003BBB0000000000000000000000000000000003C -S3154003BBC0000000000000000000000000000000002C -S3154003BBD0000000000000000000000000000000001C -S3154003BBE0000000000000000000000000000000000C -S3154003BBF000000000000000000000000000000000FC -S3154003BC0000000000000000000000000000000000EB -S3154003BC1000000000000000000000000000000000DB -S3154003BC2000000000000000000000000000000000CB -S3154003BC3000000000000000000000000000000000BB -S3154003BC4000000000000000000000000000000000AB -S3154003BC50000000000000000000000000000000009B -S3154003BC60000000000000000000000000000000008B -S3154003BC70000000000000000000000000000000007B -S3154003BC80000000000000000000000000000000006B -S3154003BC90000000000000000000000000000000005B -S3154003BCA0000000000000000000000000000000004B -S3154003BCB0000000000000000000000000000000003B -S3154003BCC0000000000000000000000000000000002B -S3154003BCD0000000000000000000000000000000001B -S3154003BCE0000000000000000000000000000000000B -S3154003BCF000000000000000000000000000000000FB -S3154003BD0000000000000000000000000000000000EA -S3154003BD1000000000000000000000000000000000DA -S3154003BD2000000000000000000000000000000000CA -S3154003BD3000000000000000000000000000000000BA -S3154003BD4000000000000000000000000000000000AA -S3154003BD50000000000000000000000000000000009A -S3154003BD60000000000000000000000000000000008A -S3154003BD70000000000000000000000000000000007A -S3154003BD80000000000000000000000000000000006A -S3154003BD90000000000000000000000000000000005A -S3154003BDA0000000000000000000000000000000004A -S3154003BDB0000000000000000000000000000000003A -S3154003BDC0000000000000000000000000000000002A -S3154003BDD0000000000000000000000000000000001A -S3154003BDE0000000000000000000000000000000000A -S3154003BDF000000000000000000000000000000000FA -S3154003BE0000000000000000000000000000000000E9 -S3154003BE1000000000000000000000000000000000D9 -S3154003BE2000000000000000000000000000000000C9 -S3154003BE3000000000000000000000000000000000B9 -S3154003BE4000000000000000000000000000000000A9 -S3154003BE500000000000000000000000000000000099 -S3154003BE600000000000000000000000000000000089 -S3154003BE700000000000000000000000000000000079 -S3154003BE800000000000000000000000000000000069 -S3154003BE900000000000000000000000000000000059 -S3154003BEA00000000000000000000000000000000049 -S3154003BEB00000000000000000000000000000000039 -S3154003BEC00000000000000000000000000000000029 -S3154003BED00000000000000000000000000000000019 -S3154003BEE00000000000000000000000000000000009 -S3154003BEF000000000000000000000000000000000F9 -S3154003BF0000000000000000000000000000000000E8 -S3154003BF1000000000000000000000000000000000D8 -S3154003BF2000000000000000000000000000000000C8 -S3154003BF3000000000000000000000000000000000B8 -S3154003BF4000000000000000000000000000000000A8 -S3154003BF500000000000000000000000000000000098 -S3154003BF600000000000000000000000000000000088 -S3154003BF700000000000000000000000000000000078 -S3154003BF800000000000000000000000000000000068 -S3154003BF900000000000000000000000000000000058 -S3154003BFA00000000000000000000000000000000048 -S3154003BFB00000000000000000000000000000000038 -S3154003BFC00000000000000000000000000000000028 -S3154003BFD00000000000000000000000000000000018 -S3154003BFE00000000000000000000000000000000008 -S3154003BFF000000000000000000000000000000000F8 -S3154003C00000000000000000000000000000000000E7 -S3154003C01000000000000000000000000000000000D7 -S3154003C02000000000000000000000000000000000C7 -S3154003C03000000000000000000000000000000000B7 -S3154003C04000000000000000000000000000000000A7 -S3154003C0500000000000000000000000000000000097 -S3154003C0600000000000000000000000000000000087 -S3154003C0700000000000000000000000000000000077 -S3154003C0800000000000000000000000000000000067 -S3154003C0900000000000000000000000000000000057 -S3154003C0A00000000000000000000000000000000047 -S3154003C0B00000000000000000000000000000000037 -S3154003C0C00000000000000000000000000000000027 -S3154003C0D00000000000000000000000000000000017 -S3154003C0E00000000000000000000000000000000007 -S3154003C0F000000000000000000000000000000000F7 -S3154003C10000000000000000000000000000000000E6 -S3154003C11000000000000000000000000000000000D6 -S3154003C12000000000000000000000000000000000C6 -S3154003C13000000000000000000000000000000000B6 -S3154003C14000000000000000000000000000000000A6 -S3154003C1500000000000000000000000000000000096 -S3154003C1600000000000000000000000000000000086 -S3154003C1700000000000000000000000000000000076 -S3154003C1800000000000000000000000000000000066 -S3154003C1900000000000000000000000000000000056 -S3154003C1A00000000000000000000000000000000046 -S3154003C1B00000000000000000000000000000000036 -S3154003C1C00000000000000000000000000000000026 -S3154003C1D00000000000000000000000000000000016 -S3154003C1E00000000000000000000000000000000006 -S3154003C1F000000000000000000000000000000000F6 -S3154003C20000000000000000000000000000000000E5 -S3154003C21000000000000000000000000000000000D5 -S3154003C22000000000000000000000000000000000C5 -S3154003C23000000000000000000000000000000000B5 -S3154003C24000000000000000000000000000000000A5 -S3154003C2500000000000000000000000000000000095 -S3154003C2600000000000000000000000000000000085 -S3154003C2700000000000000000000000000000000075 -S3154003C2800000000000000000000000000000000065 -S3154003C2900000000000000000000000000000000055 -S3154003C2A00000000000000000000000000000000045 -S3154003C2B00000000000000000000000000000000035 -S3154003C2C00000000000000000000000000000000025 -S3154003C2D00000000000000000000000000000000015 -S3154003C2E00000000000000000000000000000000005 -S3154003C2F000000000000000000000000000000000F5 -S3154003C30000000000000000000000000000000000E4 -S3154003C31000000000000000000000000000000000D4 -S3154003C32000000000000000000000000000000000C4 -S3154003C33000000000000000000000000000000000B4 -S3154003C34000000000000000000000000000000000A4 -S3154003C3500000000000000000000000000000000094 -S3154003C3600000000000000000000000000000000084 -S3154003C3700000000000000000000000000000000074 -S3154003C3800000000000000000000000000000000064 -S3154003C3900000000000000000000000000000000054 -S3154003C3A00000000000000000000000000000000044 -S3154003C3B00000000000000000000000000000000034 -S3154003C3C00000000000000000000000000000000024 -S3154003C3D00000000000000000000000000000000014 -S3154003C3E00000000000000000000000000000000004 -S3154003C3F000000000000000000000000000000000F4 -S3154003C40000000000000000000000000000000000E3 -S3154003C41000000000000000000000000000000000D3 -S3154003C42000000000000000000000000000000000C3 -S3154003C43000000000000000000000000000000000B3 -S3154003C44000000000000000000000000000000000A3 -S3154003C4500000000000000000000000000000000093 -S3154003C4600000000000000000000000000000000083 -S3154003C4700000000000000000000000000000000073 -S3154003C4800000000000000000000000000000000063 -S3154003C4900000000000000000000000000000000053 -S3154003C4A00000000000000000000000000000000043 -S3154003C4B00000000000000000000000000000000033 -S3154003C4C00000000000000000000000000000000023 -S3154003C4D00000000000000000000000000000000013 -S3154003C4E00000000000000000000000000000000003 -S3154003C4F000000000000000000000000000000000F3 -S3154003C50000000000000000000000000000000000E2 -S3154003C51000000000000000000000000000000000D2 -S3154003C52000000000000000000000000000000000C2 -S3154003C53000000000000000000000000000000000B2 -S3154003C54000000000000000000000000000000000A2 -S3154003C5500000000000000000000000000000000092 -S3154003C5600000000000000000000000000000000082 -S3154003C5700000000000000000000000000000000072 -S3154003C5800000000000000000000000000000000062 -S3154003C5900000000000000000000000000000000052 -S3154003C5A00000000000000000000000000000000042 -S3154003C5B00000000000000000000000000000000032 -S3154003C5C00000000000000000000000000000000022 -S3154003C5D00000000000000000000000000000000012 -S3154003C5E00000000000000000000000000000000002 -S3154003C5F000000000000000000000000000000000F2 -S3154003C60000000000000000000000000000000000E1 -S3154003C61000000000000000000000000000000000D1 -S3154003C62000000000000000000000000000000000C1 -S3154003C63000000000000000000000000000000000B1 -S3154003C64000000000000000000000000000000000A1 -S3154003C6500000000000000000000000000000000091 -S3154003C6600000000000000000000000000000000081 -S3154003C6700000000000000000000000000000000071 -S3154003C6800000000000000000000000000000000061 -S3154003C6900000000000000000000000000000000051 -S3154003C6A00000000000000000000000000000000041 -S3154003C6B00000000000000000000000000000000031 -S3154003C6C00000000000000000000000000000000021 -S3154003C6D00000000000000000000000000000000011 -S3154003C6E00000000000000000000000000000000001 -S3154003C6F000000000000000000000000000000000F1 -S3154003C70000000000000000000000000000000000E0 -S3154003C71000000000000000000000000000000000D0 -S3154003C72000000000000000000000000000000000C0 -S3154003C73000000000000000000000000000000000B0 -S3154003C74000000000000000000000000000000000A0 -S3154003C7500000000000000000000000000000000090 -S3154003C7600000000000000000000000000000000080 -S3154003C7700000000000000000000000000000000070 -S3154003C7800000000000000000000000000000000060 -S3154003C7900000000000000000000000000000000050 -S3154003C7A00000000000000000000000000000000040 -S3154003C7B00000000000000000000000000000000030 -S3154003C7C00000000000000000000000000000000020 -S3154003C7D00000000000000000000000000000000010 -S3154003C7E00000000000000000000000000000000000 -S3154003C7F000000000000000000000000000000000F0 -S3154003C80000000000000000000000000000000000DF -S3154003C81000000000000000000000000000000000CF -S3154003C82000000000000000000000000000000000BF -S3154003C83000000000000000000000000000000000AF -S3154003C840000000000000000000000000000000009F -S3154003C850000000000000000000000000000000008F -S3154003C860000000000000000000000000000000007F -S3154003C870000000000000000000000000000000006F -S3154003C880000000000000000000000000000000005F -S3154003C890000000000000000000000000000000004F -S3154003C8A0000000000000000000000000000000003F -S3154003C8B0000000000000000000000000000000002F -S3154003C8C0000000000000000000000000000000001F -S3154003C8D0000000000000000000000000000000000F -S3154003C8E000000000000000000000000000000000FF -S3154003C8F000000000000000000000000000000000EF -S3154003C90000000000000000000000000000000000DE -S3154003C91000000000000000000000000000000000CE -S3154003C92000000000000000000000000000000000BE -S3154003C93000000000000000000000000000000000AE -S3154003C940000000000000000000000000000000009E -S3154003C950000000000000000000000000000000008E -S3154003C960000000000000000000000000000000007E -S3154003C970000000000000000000000000000000006E -S3154003C980000000000000000000000000000000005E -S3154003C990000000000000000000000000000000004E -S3154003C9A0000000000000000000000000000000003E -S3154003C9B0000000000000000000000000000000002E -S3154003C9C0000000000000000000000000000000001E -S3154003C9D0000000000000000000000000000000000E -S3154003C9E000000000000000000000000000000000FE -S3154003C9F000000000000000000000000000000000EE -S3154003CA0000000000000000000000000000000000DD -S3154003CA1000000000000000000000000000000000CD -S3154003CA2000000000000000000000000000000000BD -S3154003CA3000000000000000000000000000000000AD -S3154003CA40000000000000000000000000000000009D -S3154003CA50000000000000000000000000000000008D -S3154003CA60000000000000000000000000000000007D -S3154003CA70000000000000000000000000000000006D -S3154003CA80000000000000000000000000000000005D -S3154003CA90000000000000000000000000000000004D -S3154003CAA0000000000000000000000000000000003D -S3154003CAB0000000000000000000000000000000002D -S3154003CAC0000000000000000000000000000000001D -S3154003CAD0000000000000000000000000000000000D -S3154003CAE000000000000000000000000000000000FD -S3154003CAF000000000000000000000000000000000ED -S3154003CB0000000000000000000000000000000000DC -S3154003CB1000000000000000000000000000000000CC -S3154003CB2000000000000000000000000000000000BC -S3154003CB3000000000000000000000000000000000AC -S3154003CB40000000000000000000000000000000009C -S3154003CB50000000000000000000000000000000008C -S3154003CB60000000000000000000000000000000007C -S3154003CB70000000000000000000000000000000006C -S3154003CB80000000000000000000000000000000005C -S3154003CB90000000000000000000000000000000004C -S3154003CBA0000000000000000000000000000000003C -S3154003CBB0000000000000000000000000000000002C -S3154003CBC0000000000000000000000000000000001C -S3154003CBD0000000000000000000000000000000000C -S3154003CBE000000000000000000000000000000000FC -S3154003CBF000000000000000000000000000000000EC -S3154003CC0000000000000000000000000000000000DB -S3154003CC1000000000000000000000000000000000CB -S3154003CC2000000000000000000000000000000000BB -S3154003CC3000000000000000000000000000000000AB -S3154003CC40000000000000000000000000000000009B -S3154003CC50000000000000000000000000000000008B -S3154003CC60000000000000000000000000000000007B -S3154003CC70000000000000000000000000000000006B -S3154003CC80000000000000000000000000000000005B -S3154003CC90000000000000000000000000000000004B -S3154003CCA0000000000000000000000000000000003B -S3154003CCB0000000000000000000000000000000002B -S3154003CCC0000000000000000000000000000000001B -S3154003CCD0000000000000000000000000000000000B -S3154003CCE000000000000000000000000000000000FB -S3154003CCF000000000000000000000000000000000EB -S3154003CD0000000000000000000000000000000000DA -S3154003CD1000000000000000000000000000000000CA -S3154003CD2000000000000000000000000000000000BA -S3154003CD3000000000000000000000000000000000AA -S3154003CD40000000000000000000000000000000009A -S3154003CD50000000000000000000000000000000008A -S3154003CD60000000000000000000000000000000007A -S3154003CD70000000000000000000000000000000006A -S3154003CD80000000000000000000000000000000005A -S3154003CD90000000000000000000000000000000004A -S3154003CDA0000000000000000000000000000000003A -S3154003CDB0000000000000000000000000000000002A -S3154003CDC0000000000000000000000000000000001A -S3154003CDD0000000000000000000000000000000000A -S3154003CDE000000000000000000000000000000000FA -S3154003CDF000000000000000000000000000000000EA -S3154003CE0000000000000000000000000000000000D9 -S3154003CE1000000000000000000000000000000000C9 -S3154003CE2000000000000000000000000000000000B9 -S3154003CE3000000000000000000000000000000000A9 -S3154003CE400000000000000000000000000000000099 -S3154003CE500000000000000000000000000000000089 -S3154003CE600000000000000000000000000000000079 -S3154003CE700000000000000000000000000000000069 -S3154003CE800000000000000000000000000000000059 -S3154003CE900000000000000000000000000000000049 -S3154003CEA00000000000000000000000000000000039 -S3154003CEB00000000000000000000000000000000029 -S3154003CEC00000000000000000000000000000000019 -S3154003CED00000000000000000000000000000000009 -S3154003CEE000000000000000000000000000000000F9 -S3154003CEF000000000000000000000000000000000E9 -S3154003CF0000000000000000000000000000000000D8 -S3154003CF1000000000000000000000000000000000C8 -S3154003CF2000000000000000000000000000000000B8 -S3154003CF3000000000000000000000000000000000A8 -S3154003CF400000000000000000000000000000000098 -S3154003CF500000000000000000000000000000000088 -S3154003CF600000000000000000000000000000000078 -S3154003CF700000000000000000000000000000000068 -S3154003CF800000000000000000000000000000000058 -S3154003CF900000000000000000000000000000000048 -S3154003CFA00000000000000000000000000000000038 -S3154003CFB00000000000000000000000000000000028 -S3154003CFC00000000000000000000000000000000018 -S3154003CFD00000000000000000000000000000000008 -S3154003CFE000000000000000000000000000000000F8 -S3154003CFF000000000000000000000000000000000E8 -S3154003D00000000000000000000000000000000000D7 -S3154003D01000000000000000000000000000000000C7 -S3154003D02000000000000000000000000000000000B7 -S3154003D03000000000000000000000000000000000A7 -S3154003D0400000000000000000000000000000000097 -S3154003D0500000000000000000000000000000000087 -S3154003D0600000000000000000000000000000000077 -S3154003D0700000000000000000000000000000000067 -S3154003D0800000000000000000000000000000000057 -S3154003D0900000000000000000000000000000000047 -S3154003D0A00000000000000000000000000000000037 -S3154003D0B00000000000000000000000000000000027 -S3154003D0C00000000000000000000000000000000017 -S3154003D0D00000000000000000000000000000000007 -S3154003D0E000000000000000000000000000000000F7 -S3154003D0F000000000000000000000000000000000E7 -S3154003D10000000000000000000000000000000000D6 -S3154003D11000000000000000000000000000000000C6 -S3154003D12000000000000000000000000000000000B6 -S3154003D13000000000000000000000000000000000A6 -S3154003D1400000000000000000000000000000000096 -S3154003D1500000000000000000000000000000000086 -S3154003D1600000000000000000000000000000000076 -S3154003D1700000000000000000000000000000000066 -S3154003D1800000000000000000000000000000000056 -S3154003D1900000000000000000000000000000000046 -S3154003D1A00000000000000000000000000000000036 -S3154003D1B00000000000000000000000000000000026 -S3154003D1C00000000000000000000000000000000016 -S3154003D1D00000000000000000000000000000000006 -S3154003D1E000000000000000000000000000000000F6 -S3154003D1F000000000000000000000000000000000E6 -S3154003D20000000000000000000000000000000000D5 -S3154003D21000000000000000000000000000000000C5 -S3154003D22000000000000000000000000000000000B5 -S3154003D23000000000000000000000000000000000A5 -S3154003D2400000000000000000000000000000000095 -S3154003D2500000000000000000000000000000000085 -S3154003D2600000000000000000000000000000000075 -S3154003D2700000000000000000000000000000000065 -S3154003D2800000000000000000000000000000000055 -S3154003D2900000000000000000000000000000000045 -S3154003D2A00000000000000000000000000000000035 -S3154003D2B00000000000000000000000000000000025 -S3154003D2C00000000000000000000000000000000015 -S3154003D2D00000000000000000000000000000000005 -S3154003D2E000000000000000000000000000000000F5 -S3154003D2F000000000000000000000000000000000E5 -S3154003D30000000000000000000000000000000000D4 -S3154003D31000000000000000000000000000000000C4 -S3154003D32000000000000000000000000000000000B4 -S3154003D33000000000000000000000000000000000A4 -S3154003D3400000000000000000000000000000000094 -S3154003D3500000000000000000000000000000000084 -S3154003D3600000000000000000000000000000000074 -S3154003D3700000000000000000000000000000000064 -S3154003D3800000000000000000000000000000000054 -S3154003D3900000000000000000000000000000000044 -S3154003D3A00000000000000000000000000000000034 -S3154003D3B00000000000000000000000000000000024 -S3154003D3C00000000000000000000000000000000014 -S3154003D3D00000000000000000000000000000000004 -S3154003D3E000000000000000000000000000000000F4 -S3154003D3F000000000000000000000000000000000E4 -S3154003D40000000000000000000000000000000000D3 -S3154003D41000000000000000000000000000000000C3 -S3154003D42000000000000000000000000000000000B3 -S3154003D43000000000000000000000000000000000A3 -S3154003D4400000000000000000000000000000000093 -S3154003D4500000000000000000000000000000000083 -S3154003D4600000000000000000000000000000000073 -S3154003D4700000000000000000000000000000000063 -S3154003D4800000000000000000000000000000000053 -S3154003D4900000000000000000000000000000000043 -S3154003D4A00000000000000000000000000000000033 -S3154003D4B00000000000000000000000000000000023 -S3154003D4C00000000000000000000000000000000013 -S3154003D4D00000000000000000000000000000000003 -S3154003D4E000000000000000000000000000000000F3 -S3154003D4F000000000000000000000000000000000E3 -S3154003D50000000000000000000000000000000000D2 -S3154003D51000000000000000000000000000000000C2 -S3154003D52000000000000000000000000000000000B2 -S3154003D53000000000000000000000000000000000A2 -S3154003D5400000000000000000000000000000000092 -S3154003D5500000000000000000000000000000000082 -S3154003D5600000000000000000000000000000000072 -S3154003D5700000000000000000000000000000000062 -S3154003D5800000000000000000000000000000000052 -S3154003D5900000000000000000000000000000000042 -S3154003D5A00000000000000000000000000000000032 -S3154003D5B00000000000000000000000000000000022 -S3154003D5C00000000000000000000000000000000012 -S3154003D5D00000000000000000000000000000000002 -S3154003D5E000000000000000000000000000000000F2 -S3154003D5F000000000000000000000000000000000E2 -S3154003D60000000000000000000000000000000000D1 -S3154003D61000000000000000000000000000000000C1 -S3154003D62000000000000000000000000000000000B1 -S3154003D63000000000000000000000000000000000A1 -S3154003D6400000000000000000000000000000000091 -S3154003D6500000000000000000000000000000000081 -S3154003D6600000000000000000000000000000000071 -S3154003D6700000000000000000000000000000000061 -S3154003D6800000000000000000000000000000000051 -S3154003D6900000000000000000000000000000000041 -S3154003D6A00000000000000000000000000000000031 -S3154003D6B00000000000000000000000000000000021 -S3154003D6C00000000000000000000000000000000011 -S3154003D6D00000000000000000000000000000000001 -S3154003D6E000000000000000000000000000000000F1 -S3154003D6F000000000000000000000000000000000E1 -S3154003D70000000000000000000000000000000000D0 -S3154003D71000000000000000000000000000000000C0 -S3154003D72000000000000000000000000000000000B0 -S3154003D73000000000000000000000000000000000A0 -S3154003D7400000000000000000000000000000000090 -S3154003D7500000000000000000000000000000000080 -S3154003D7600000000000000000000000000000000070 -S3154003D7700000000000000000000000000000000060 -S3154003D7800000000000000000000000000000000050 -S3154003D7900000000000000000000000000000000040 -S3154003D7A00000000000000000000000000000000030 -S3154003D7B00000000000000000000000000000000020 -S3154003D7C00000000000000000000000000000000010 -S3154003D7D00000000000000000000000000000000000 -S3154003D7E000000000000000000000000000000000F0 -S3154003D7F000000000000000000000000000000000E0 -S3154003D80000000000000000000000000000000000CF -S3154003D81000000000000000000000000000000000BF -S3154003D82000000000000000000000000000000000AF -S3154003D830000000000000000000000000000000009F -S3154003D840000000000000000000000000000000008F -S3154003D850000000000000000000000000000000007F -S3154003D860000000000000000000000000000000006F -S3154003D870000000000000000000000000000000005F -S3154003D880000000000000000000000000000000004F -S3154003D890000000000000000000000000000000003F -S3154003D8A0000000000000000000000000000000002F -S3154003D8B0000000000000000000000000000000001F -S3154003D8C0000000000000000000000000000000000F -S3154003D8D000000000000000000000000000000000FF -S3154003D8E000000000000000000000000000000000EF -S3154003D8F000000000000000000000000000000000DF -S3154003D90000000000000000000000000000000000CE -S3154003D91000000000000000000000000000000000BE -S3154003D92000000000000000000000000000000000AE -S3154003D930000000000000000000000000000000009E -S3154003D940000000000000000000000000000000008E -S3154003D950000000000000000000000000000000007E -S3154003D960000000000000000000000000000000006E -S3154003D970000000000000000000000000000000005E -S3154003D980000000000000000000000000000000004E -S3154003D990000000000000000000000000000000003E -S3154003D9A0000000000000000000000000000000002E -S3154003D9B0000000000000000000000000000000001E -S3154003D9C0000000000000000000000000000000000E -S3154003D9D000000000000000000000000000000000FE -S3154003D9E000000000000000000000000000000000EE -S3154003D9F000000000000000000000000000000000DE -S3154003DA0000000000000000000000000000000000CD -S3154003DA1000000000000000000000000000000000BD -S3154003DA2000000000000000000000000000000000AD -S3154003DA30000000000000000000000000000000009D -S3154003DA40000000000000000000000000000000008D -S3154003DA50000000000000000000000000000000007D -S3154003DA60000000000000000000000000000000006D -S3154003DA70000000000000000000000000000000005D -S3154003DA80000000000000000000000000000000004D -S3154003DA90000000000000000000000000000000003D -S3154003DAA0000000000000000000000000000000002D -S3154003DAB0000000000000000000000000000000001D -S3154003DAC0000000000000000000000000000000000D -S3154003DAD000000000000000000000000000000000FD -S3154003DAE000000000000000000000000000000000ED -S3154003DAF000000000000000000000000000000000DD -S3154003DB0000000000000000000000000000000000CC -S3154003DB1000000000000000000000000000000000BC -S3154003DB2000000000000000000000000000000000AC -S3154003DB30000000000000000000000000000000009C -S3154003DB40000000000000000000000000000000008C -S3154003DB50000000000000000000000000000000007C -S3154003DB60000000000000000000000000000000006C -S3154003DB70000000000000000000000000000000005C -S3154003DB80000000000000000000000000000000004C -S3154003DB90000000000000000000000000000000003C -S3154003DBA0000000000000000000000000000000002C -S3154003DBB0000000000000000000000000000000001C -S3154003DBC0000000000000000000000000000000000C -S3154003DBD000000000000000000000000000000000FC -S3154003DBE000000000000000000000000000000000EC -S3154003DBF000000000000000000000000000000000DC -S3154003DC0000000000000000000000000000000000CB -S3154003DC1000000000000000000000000000000000BB -S3154003DC2000000000000000000000000000000000AB -S3154003DC30000000000000000000000000000000009B -S3154003DC40000000000000000000000000000000008B -S3154003DC50000000000000000000000000000000007B -S3154003DC60000000000000000000000000000000006B -S3154003DC70000000000000000000000000000000005B -S3154003DC80000000000000000000000000000000004B -S3154003DC90000000000000000000000000000000003B -S3154003DCA0000000000000000000000000000000002B -S3154003DCB0000000000000000000000000000000001B -S3154003DCC0000000000000000000000000000000000B -S3154003DCD000000000000000000000000000000000FB -S3154003DCE000000000000000000000000000000000EB -S3154003DCF000000000000000000000000000000000DB -S3154003DD0000000000000000000000000000000000CA -S3154003DD1000000000000000000000000000000000BA -S3154003DD2000000000000000000000000000000000AA -S3154003DD30000000000000000000000000000000009A -S3154003DD40000000000000000000000000000000008A -S3154003DD50000000000000000000000000000000007A -S3154003DD60000000000000000000000000000000006A -S3154003DD70000000000000000000000000000000005A -S3154003DD80000000000000000000000000000000004A -S3154003DD90000000000000000000000000000000003A -S3154003DDA0000000000000000000000000000000002A -S3154003DDB0000000000000000000000000000000001A -S3154003DDC0000000000000000000000000000000000A -S3154003DDD000000000000000000000000000000000FA -S3154003DDE000000000000000000000000000000000EA -S3154003DDF000000000000000000000000000000000DA -S3154003DE0000000000000000000000000000000000C9 -S3154003DE1000000000000000000000000000000000B9 -S3154003DE2000000000000000000000000000000000A9 -S3154003DE300000000000000000000000000000000099 -S3154003DE400000000000000000000000000000000089 -S3154003DE500000000000000000000000000000000079 -S3154003DE600000000000000000000000000000000069 -S3154003DE700000000000000000000000000000000059 -S3154003DE800000000000000000000000000000000049 -S3154003DE900000000000000000000000000000000039 -S3154003DEA00000000000000000000000000000000029 -S3154003DEB00000000000000000000000000000000019 -S3154003DEC00000000000000000000000000000000009 -S3154003DED000000000000000000000000000000000F9 -S3154003DEE000000000000000000000000000000000E9 -S3154003DEF000000000000000000000000000000000D9 -S3154003DF0000000000000000000000000000000000C8 -S3154003DF1000000000000000000000000000000000B8 -S3154003DF2000000000000000000000000000000000A8 -S3154003DF300000000000000000000000000000000098 -S3154003DF400000000000000000000000000000000088 -S3154003DF500000000000000000000000000000000078 -S3154003DF600000000000000000000000000000000068 -S3154003DF700000000000000000000000000000000058 -S3154003DF800000000000000000000000000000000048 -S3154003DF900000000000000000000000000000000038 -S3154003DFA00000000000000000000000000000000028 -S3154003DFB00000000000000000000000000000000018 -S3154003DFC00000000000000000000000000000000008 -S3154003DFD000000000000000000000000000000000F8 -S3154003DFE000000000000000000000000000000000E8 -S3154003DFF000000000000000000000000000000000D8 -S3154003E00000000000000000000000000000000000C7 -S3154003E01000000000000000000000000000000000B7 -S3154003E02000000000000000000000000000000000A7 -S3154003E0300000000000000000000000000000000097 -S3154003E0400000000000000000000000000000000087 -S3154003E0500000000000000000000000000000000077 -S3154003E0600000000000000000000000000000000067 -S3154003E0700000000000000000000000000000000057 -S3154003E0800000000000000000000000000000000047 -S3154003E0900000000000000000000000000000000037 -S3154003E0A00000000000000000000000000000000027 -S3154003E0B00000000000000000000000000000000017 -S3154003E0C00000000000000000000000000000000007 -S3154003E0D000000000000000000000000000000000F7 -S3154003E0E000000000000000000000000000000000E7 -S3154003E0F000000000000000000000000000000000D7 -S3154003E10000000000000000000000000000000000C6 -S3154003E11000000000000000000000000000000000B6 -S3154003E12000000000000000000000000000000000A6 -S3154003E1300000000000000000000000000000000096 -S3154003E1400000000000000000000000000000000086 -S3154003E1500000000000000000000000000000000076 -S3154003E1600000000000000000000000000000000066 -S3154003E1700000000000000000000000000000000056 -S3154003E1800000000000000000000000000000000046 -S3154003E1900000000000000000000000000000000036 -S3154003E1A00000000000000000000000000000000026 -S3154003E1B00000000000000000000000000000000016 -S3154003E1C00000000000000000000000000000000006 -S3154003E1D000000000000000000000000000000000F6 -S3154003E1E000000000000000000000000000000000E6 -S3154003E1F000000000000000000000000000000000D6 -S3154003E20000000000000000000000000000000000C5 -S3154003E21000000000000000000000000000000000B5 -S3154003E22000000000000000000000000000000000A5 -S3154003E2300000000000000000000000000000000095 -S3154003E2400000000000000000000000000000000085 -S3154003E2500000000000000000000000000000000075 -S3154003E2600000000000000000000000000000000065 -S3154003E2700000000000000000000000000000000055 -S3154003E2800000000000000000000000000000000045 -S3154003E2900000000000000000000000000000000035 -S3154003E2A00000000000000000000000000000000025 -S3154003E2B00000000000000000000000000000000015 -S3154003E2C00000000000000000000000000000000005 -S3154003E2D000000000000000000000000000000000F5 -S3154003E2E000000000000000000000000000000000E5 -S3154003E2F000000000000000000000000000000000D5 -S3154003E30000000000000000000000000000000000C4 -S3154003E31000000000000000000000000000000000B4 -S3154003E32000000000000000000000000000000000A4 -S3154003E3300000000000000000000000000000000094 -S3154003E3400000000000000000000000000000000084 -S3154003E3500000000000000000000000000000000074 -S3154003E3600000000000000000000000000000000064 -S3154003E3700000000000000000000000000000000054 -S3154003E3800000000000000000000000000000000044 -S3154003E3900000000000000000000000000000000034 -S3154003E3A00000000000000000000000000000000024 -S3154003E3B00000000000000000000000000000000014 -S3154003E3C00000000000000000000000000000000004 -S3154003E3D000000000000000000000000000000000F4 -S3154003E3E000000000000000000000000000000000E4 -S3154003E3F000000000000000000000000000000000D4 -S3154003E40000000000000000000000000000000000C3 -S3154003E41000000000000000000000000000000000B3 -S3154003E42000000000000000000000000000000000A3 -S3154003E4300000000000000000000000000000000093 -S3154003E4400000000000000000000000000000000083 -S3154003E4500000000000000000000000000000000073 -S3154003E4600000000000000000000000000000000063 -S3154003E4700000000000000000000000000000000053 -S3154003E4800000000000000000000000000000000043 -S3154003E4900000000000000000000000000000000033 -S3154003E4A00000000000000000000000000000000023 -S3154003E4B00000000000000000000000000000000013 -S3154003E4C00000000000000000000000000000000003 -S3154003E4D000000000000000000000000000000000F3 -S3154003E4E000000000000000000000000000000000E3 -S3154003E4F000000000000000000000000000000000D3 -S3154003E50000000000000000000000000000000000C2 -S3154003E51000000000000000000000000000000000B2 -S3154003E52000000000000000000000000000000000A2 -S3154003E5300000000000000000000000000000000092 -S3154003E5400000000000000000000000000000000082 -S3154003E5500000000000000000000000000000000072 -S3154003E5600000000000000000000000000000000062 -S3154003E5700000000000000000000000000000000052 -S3154003E5800000000000000000000000000000000042 -S3154003E5900000000000000000000000000000000032 -S3154003E5A00000000000000000000000000000000022 -S3154003E5B00000000000000000000000000000000012 -S3154003E5C00000000000000000000000000000000002 -S3154003E5D000000000000000000000000000000000F2 -S3154003E5E000000000000000000000000000000000E2 -S3154003E5F000000000000000000000000000000000D2 -S3154003E60000000000000000000000000000000000C1 -S3154003E61000000000000000000000000000000000B1 -S3154003E62000000000000000000000000000000000A1 -S3154003E6300000000000000000000000000000000091 -S3154003E6400000000000000000000000000000000081 -S3154003E6500000000000000000000000000000000071 -S3154003E6600000000000000000000000000000000061 -S3154003E6700000000000000000000000000000000051 -S3154003E6800000000000000000000000000000000041 -S3154003E6900000000000000000000000000000000031 -S3154003E6A00000000000000000000000000000000021 -S3154003E6B00000000000000000000000000000000011 -S3154003E6C00000000000000000000000000000000001 -S3154003E6D000000000000000000000000000000000F1 -S3154003E6E000000000000000000000000000000000E1 -S3154003E6F000000000000000000000000000000000D1 -S3154003E70000000000000000000000000000000000C0 -S3154003E71000000000000000000000000000000000B0 -S3154003E72000000000000000000000000000000000A0 -S3154003E7300000000000000000000000000000000090 -S3154003E7400000000000000000000000000000000080 -S3154003E7500000000000000000000000000000000070 -S3154003E7600000000000000000000000000000000060 -S3154003E7700000000000000000000000000000000050 -S3154003E7800000000000000000000000000000000040 -S3154003E7900000000000000000000000000000000030 -S3154003E7A00000000000000000000000000000000020 -S3154003E7B00000000000000000000000000000000010 -S3154003E7C00000000000000000000000000000000000 -S3154003E7D000000000000000000000000000000000F0 -S3154003E7E000000000000000000000000000000000E0 -S3154003E7F000000000000000000000000000000000D0 -S3154003E80000000000000000000000000000000000BF -S3154003E81000000000000000000000000000000000AF -S3154003E820000000000000000000000000000000009F -S3154003E830000000000000000000000000000000008F -S3154003E840000000000000000000000000000000007F -S3154003E850000000000000000000000000000000006F -S3154003E860000000000000000000000000000000005F -S3154003E870000000000000000000000000000000004F -S3154003E880000000000000000000000000000000003F -S3154003E890000000000000000000000000000000002F -S3154003E8A0000000000000000000000000000000001F -S3154003E8B0000000000000000000000000000000000F -S3154003E8C000000000000000000000000000000000FF -S3154003E8D000000000000000000000000000000000EF -S3154003E8E000000000000000000000000000000000DF -S3154003E8F000000000000000000000000000000000CF -S3154003E90000000000000000000000000000000000BE -S3154003E91000000000000000000000000000000000AE -S3154003E920000000000000000000000000000000009E -S3154003E930000000000000000000000000000000008E -S3154003E940000000000000000000000000000000007E -S3154003E950000000000000000000000000000000006E -S3154003E960000000000000000000000000000000005E -S3154003E970000000000000000000000000000000004E -S3154003E980000000000000000000000000000000003E -S3154003E990000000000000000000000000000000002E -S3154003E9A0000000000000000000000000000000001E -S3154003E9B0000000000000000000000000000000000E -S3154003E9C000000000000000000000000000000000FE -S3154003E9D000000000000000000000000000000000EE -S3154003E9E000000000000000000000000000000000DE -S3154003E9F000000000000000000000000000000000CE -S3154003EA0000000000000000000000000000000000BD -S3154003EA1000000000000000000000000000000000AD -S3154003EA20000000000000000000000000000000009D -S3154003EA30000000000000000000000000000000008D -S3154003EA40000000000000000000000000000000007D -S3154003EA50000000000000000000000000000000006D -S3154003EA60000000000000000000000000000000005D -S3154003EA70000000000000000000000000000000004D -S3154003EA80000000000000000000000000000000003D -S3154003EA90000000000000000000000000000000002D -S3154003EAA0000000000000000000000000000000001D -S3154003EAB0000000000000000000000000000000000D -S3154003EAC000000000000000000000000000000000FD -S3154003EAD000000000000000000000000000000000ED -S3154003EAE000000000000000000000000000000000DD -S3154003EAF000000000000000000000000000000000CD -S3154003EB0000000000000000000000000000000000BC -S3154003EB1000000000000000000000000000000000AC -S3154003EB20000000000000000000000000000000009C -S3154003EB30000000000000000000000000000000008C -S3154003EB40000000000000000000000000000000007C -S3154003EB50000000000000000000000000000000006C -S3154003EB60000000000000000000000000000000005C -S3154003EB70000000000000000000000000000000004C -S3154003EB80000000000000000000000000000000003C -S3154003EB90000000000000000000000000000000002C -S3154003EBA0000000000000000000000000000000001C -S3154003EBB0000000000000000000000000000000000C -S3154003EBC000000000000000000000000000000000FC -S3154003EBD000000000000000000000000000000000EC -S3154003EBE000000000000000000000000000000000DC -S3154003EBF000000000000000000000000000000000CC -S3154003EC0000000000000000000000000000000000BB -S3154003EC1000000000000000000000000000000000AB -S3154003EC20000000000000000000000000000000009B -S3154003EC30000000000000000000000000000000008B -S3154003EC40000000000000000000000000000000007B -S3154003EC50000000000000000000000000000000006B -S3154003EC60000000000000000000000000000000005B -S3154003EC70000000000000000000000000000000004B -S3154003EC80000000000000000000000000000000003B -S3154003EC90000000000000000000000000000000002B -S3154003ECA0000000000000000000000000000000001B -S3154003ECB0000000000000000000000000000000000B -S3154003ECC000000000000000000000000000000000FB -S3154003ECD000000000000000000000000000000000EB -S3154003ECE000000000000000000000000000000000DB -S3154003ECF000000000000000000000000000000000CB -S3154003ED0000000000000000000000000000000000BA -S3154003ED1000000000000000000000000000000000AA -S3154003ED20000000000000000000000000000000009A -S3154003ED30000000000000000000000000000000008A -S3154003ED40000000000000000000000000000000007A -S3154003ED50000000000000000000000000000000006A -S3154003ED60000000000000000000000000000000005A -S3154003ED70000000000000000000000000000000004A -S3154003ED80000000000000000000000000000000003A -S3154003ED90000000000000000000000000000000002A -S3154003EDA0000000000000000000000000000000001A -S3154003EDB0000000000000000000000000000000000A -S3154003EDC000000000000000000000000000000000FA -S3154003EDD000000000000000000000000000000000EA -S3154003EDE000000000000000000000000000000000DA -S3154003EDF000000000000000000000000000000000CA -S3154003EE0000000000000000000000000000000000B9 -S3154003EE1000000000000000000000000000000000A9 -S3154003EE200000000000000000000000000000000099 -S3154003EE300000000000000000000000000000000089 -S3154003EE400000000000000000000000000000000079 -S3154003EE500000000000000000000000000000000069 -S3154003EE600000000000000000000000000000000059 -S3154003EE700000000000000000000000000000000049 -S3154003EE800000000000000000000000000000000039 -S3154003EE900000000000000000000000000000000029 -S3154003EEA00000000000000000000000000000000019 -S3154003EEB00000000000000000000000000000000009 -S3154003EEC000000000000000000000000000000000F9 -S3154003EED000000000000000000000000000000000E9 -S3154003EEE000000000000000000000000000000000D9 -S3154003EEF000000000000000000000000000000000C9 -S3154003EF0000000000000000000000000000000000B8 -S3154003EF1000000000000000000000000000000000A8 -S3154003EF200000000000000000000000000000000098 -S3154003EF300000000000000000000000000000000088 -S3154003EF400000000000000000000000000000000078 -S3154003EF500000000000000000000000000000000068 -S3154003EF600000000000000000000000000000000058 -S3154003EF700000000000000000000000000000000048 -S3154003EF800000000000000000000000000000000038 -S3154003EF900000000000000000000000000000000028 -S3154003EFA00000000000000000000000000000000018 -S3154003EFB00000000000000000000000000000000008 -S3154003EFC000000000000000000000000000000000F8 -S3154003EFD000000000000000000000000000000000E8 -S3154003EFE000000000000000000000000000000000D8 -S3154003EFF000000000000000000000000000000000C8 -S3154003F00000000000000000000000000000000000B7 -S3154003F01000000000000000000000000000000000A7 -S3154003F0200000000000000000000000000000000097 -S3154003F0300000000000000000000000000000000087 -S3154003F0400000000000000000000000000000000077 -S3154003F0500000000000000000000000000000000067 -S3154003F0600000000000000000000000000000000057 -S3154003F0700000000000000000000000000000000047 -S3154003F0800000000000000000000000000000000037 -S3154003F0900000000000000000000000000000000027 -S3154003F0A00000000000000000000000000000000017 -S3154003F0B00000000000000000000000000000000007 -S3154003F0C000000000000000000000000000000000F7 -S3154003F0D000000000000000000000000000000000E7 -S3154003F0E000000000000000000000000000000000D7 -S3154003F0F000000000000000000000000000000000C7 -S3154003F10000000000000000000000000000000000B6 -S3154003F11000000000000000000000000000000000A6 -S3154003F1200000000000000000000000000000000096 -S3154003F1300000000000000000000000000000000086 -S3154003F1400000000000000000000000000000000076 -S3154003F1500000000000000000000000000000000066 -S3154003F1600000000000000000000000000000000056 -S3154003F1700000000000000000000000000000000046 -S3154003F1800000000000000000000000000000000036 -S3154003F1900000000000000000000000000000000026 -S3154003F1A00000000000000000000000000000000016 -S3154003F1B00000000000000000000000000000000006 -S3154003F1C000000000000000000000000000000000F6 -S3154003F1D000000000000000000000000000000000E6 -S3154003F1E000000000000000000000000000000000D6 -S3154003F1F000000000000000000000000000000000C6 -S3154003F20000000000000000000000000000000000B5 -S3154003F21000000000000000000000000000000000A5 -S3154003F2200000000000000000000000000000000095 -S3154003F2300000000000000000000000000000000085 -S3154003F2400000000000000000000000000000000075 -S3154003F2500000000000000000000000000000000065 -S3154003F2600000000000000000000000000000000055 -S3154003F2700000000000000000000000000000000045 -S3154003F2800000000000000000000000000000000035 -S3154003F2900000000000000000000000000000000025 -S3154003F2A00000000000000000000000000000000015 -S3154003F2B00000000000000000000000000000000005 -S3154003F2C000000000000000000000000000000000F5 -S3154003F2D000000000000000000000000000000000E5 -S3154003F2E000000000000000000000000000000000D5 -S3154003F2F000000000000000000000000000000000C5 -S3154003F30000000000000000000000000000000000B4 -S3154003F31000000000000000000000000000000000A4 -S3154003F3200000000000000000000000000000000094 -S3154003F3300000000000000000000000000000000084 -S3154003F3400000000000000000000000000000000074 -S3154003F3500000000000000000000000000000000064 -S3154003F3600000000000000000000000000000000054 -S3154003F3700000000000000000000000000000000044 -S3154003F3800000000000000000000000000000000034 -S3154003F3900000000000000000000000000000000024 -S3154003F3A00000000000000000000000000000000014 -S3154003F3B00000000000000000000000000000000004 -S3154003F3C000000000000000000000000000000000F4 -S3154003F3D000000000000000000000000000000000E4 -S3154003F3E000000000000000000000000000000000D4 -S3154003F3F000000000000000000000000000000000C4 -S3154003F40000000000000000000000000000000000B3 -S3154003F41000000000000000000000000000000000A3 -S3154003F4200000000000000000000000000000000093 -S3154003F4300000000000000000000000000000000083 -S3154003F4400000000000000000000000000000000073 -S3154003F4500000000000000000000000000000000063 -S3154003F4600000000000000000000000000000000053 -S3154003F4700000000000000000000000000000000043 -S3154003F4800000000000000000000000000000000033 -S3154003F4900000000000000000000000000000000023 -S3154003F4A00000000000000000000000000000000013 -S3154003F4B00000000000000000000000000000000003 -S3154003F4C000000000000000000000000000000000F3 -S3154003F4D000000000000000000000000000000000E3 -S3154003F4E000000000000000000000000000000000D3 -S3154003F4F000000000000000000000000000000000C3 -S3154003F50000000000000000000000000000000000B2 -S3154003F51000000000000000000000000000000000A2 -S3154003F5200000000000000000000000000000000092 -S3154003F5300000000000000000000000000000000082 -S3154003F5400000000000000000000000000000000072 -S3154003F5500000000000000000000000000000000062 -S3154003F5600000000000000000000000000000000052 -S3154003F5700000000000000000000000000000000042 -S3154003F5800000000000000000000000000000000032 -S3154003F5900000000000000000000000000000000022 -S3154003F5A00000000000000000000000000000000012 -S3154003F5B00000000000000000000000000000000002 -S3154003F5C000000000000000000000000000000000F2 -S3154003F5D000000000000000000000000000000000E2 -S3154003F5E000000000000000000000000000000000D2 -S3154003F5F000000000000000000000000000000000C2 -S3154003F60000000000000000000000000000000000B1 -S3154003F61000000000000000000000000000000000A1 -S3154003F6200000000000000000000000000000000091 -S3154003F6300000000000000000000000000000000081 -S3154003F6400000000000000000000000000000000071 -S3154003F6500000000000000000000000000000000061 -S3154003F6600000000000000000000000000000000051 -S3154003F6700000000000000000000000000000000041 -S3154003F6800000000000000000000000000000000031 -S3154003F6900000000000000000000000000000000021 -S3154003F6A00000000000000000000000000000000011 -S3154003F6B00000000000000000000000000000000001 -S3154003F6C000000000000000000000000000000000F1 -S3154003F6D000000000000000000000000000000000E1 -S3154003F6E000000000000000000000000000000000D1 -S3154003F6F000000000000000000000000000000000C1 -S3154003F70000000000000000000000000000000000B0 -S3154003F71000000000000000000000000000000000A0 -S3154003F7200000000000000000000000000000000090 -S3154003F7300000000000000000000000000000000080 -S3154003F7400000000000000000000000000000000070 -S3154003F7500000000000000000000000000000000060 -S3154003F7600000000000000000000000000000000050 -S3154003F7700000000000000000000000000000000040 -S3154003F7800000000000000000000000000000000030 -S3154003F7900000000000000000000000000000000020 -S3154003F7A00000000000000000000000000000000010 -S3154003F7B00000000000000000000000000000000000 -S3154003F7C000000000000000000000000000000000F0 -S3154003F7D000000000000000000000000000000000E0 -S3154003F7E000000000000000000000000000000000D0 -S3154003F7F000000000000000000000000000000000C0 -S3154003F80000000000000000000000000000000000AF -S3154003F810000000000000000000000000000000009F -S3154003F820000000000000000000000000000000008F -S3154003F830000000000000000000000000000000007F -S3154003F840000000000000000000000000000000006F -S3154003F850000000000000000000000000000000005F -S3154003F860000000000000000000000000000000004F -S3154003F870000000000000000000000000000000003F -S3154003F880000000000000000000000000000000002F -S3154003F890000000000000000000000000000000001F -S3154003F8A0000000000000000000000000000000000F -S3154003F8B000000000000000000000000000000000FF -S3154003F8C000000000000000000000000000000000EF -S3154003F8D000000000000000000000000000000000DF -S3154003F8E000000000000000000000000000000000CF -S3154003F8F000000000000000000000000000000000BF -S3154003F90000000000000000000000000000000000AE -S3154003F910000000000000000000000000000000009E -S3154003F920000000000000000000000000000000008E -S3154003F930000000000000000000000000000000007E -S3154003F940000000000000000000000000000000006E -S3154003F950000000000000000000000000000000005E -S3154003F960000000000000000000000000000000004E -S3154003F970000000000000000000000000000000003E -S3154003F980000000000000000000000000000000002E -S3154003F990000000000000000000000000000000001E -S3154003F9A0000000000000000000000000000000000E -S3154003F9B000000000000000000000000000000000FE -S3154003F9C000000000000000000000000000000000EE -S3154003F9D000000000000000000000000000000000DE -S3154003F9E000000000000000000000000000000000CE -S3154003F9F000000000000000000000000000000000BE -S3154003FA0000000000000000000000000000000000AD -S3154003FA10000000000000000000000000000000009D -S3154003FA20000000000000000000000000000000008D -S3154003FA30000000000000000000000000000000007D -S3154003FA40000000000000000000000000000000006D -S3154003FA50000000000000000000000000000000005D -S3154003FA60000000000000000000000000000000004D -S3154003FA70000000000000000000000000000000003D -S3154003FA80000000000000000000000000000000002D -S3154003FA90000000000000000000000000000000001D -S3154003FAA0000000000000000000000000000000000D -S3154003FAB000000000000000000000000000000000FD -S3154003FAC000000000000000000000000000000000ED -S3154003FAD000000000000000000000000000000000DD -S3154003FAE000000000000000000000000000000000CD -S3154003FAF000000000000000000000000000000000BD -S3154003FB0000000000000000000000000000000000AC -S3154003FB10000000000000000000000000000000009C -S3154003FB20000000000000000000000000000000008C -S3154003FB30000000000000000000000000000000007C -S3154003FB40000000000000000000000000000000006C -S3154003FB50000000000000000000000000000000005C -S3154003FB60000000000000000000000000000000004C -S3154003FB70000000000000000000000000000000003C -S3154003FB80000000000000000000000000000000002C -S3154003FB90000000000000000000000000000000001C -S3154003FBA0000000000000000000000000000000000C -S3154003FBB000000000000000000000000000000000FC -S3154003FBC000000000000000000000000000000000EC -S3154003FBD000000000000000000000000000000000DC -S3154003FBE000000000000000000000000000000000CC -S3154003FBF000000000000000000000000000000000BC -S3154003FC0000000000000000000000000000000000AB -S3154003FC10000000000000000000000000000000009B -S3154003FC20000000000000000000000000000000008B -S3154003FC30000000000000000000000000000000007B -S3154003FC40000000000000000000000000000000006B -S3154003FC50000000000000000000000000000000005B -S3154003FC60000000000000000000000000000000004B -S3154003FC70000000000000000000000000000000003B -S3154003FC80000000000000000000000000000000002B -S3154003FC90000000000000000000000000000000001B -S3154003FCA0000000000000000000000000000000000B -S3154003FCB000000000000000000000000000000000FB -S3154003FCC000000000000000000000000000000000EB -S3154003FCD000000000000000000000000000000000DB -S3154003FCE000000000000000000000000000000000CB -S3154003FCF000000000000000000000000000000000BB -S3154003FD0000000000000000000000000000000000AA -S3154003FD10000000000000000000000000000000009A -S3154003FD20000000000000000000000000000000008A -S3154003FD30000000000000000000000000000000007A -S3154003FD40000000000000000000000000000000006A -S3154003FD50000000000000000000000000000000005A -S3154003FD60000000000000000000000000000000004A -S3154003FD70000000000000000000000000000000003A -S3154003FD80000000000000000000000000000000002A -S3154003FD90000000000000000000000000000000001A -S3154003FDA0000000000000000000000000000000000A -S3154003FDB000000000000000000000000000000000FA -S3154003FDC000000000000000000000000000000000EA -S3154003FDD000000000000000000000000000000000DA -S3154003FDE000000000000000000000000000000000CA -S3154003FDF000000000000000000000000000000000BA -S3154003FE0000000000000000000000000000000000A9 -S3154003FE100000000000000000000000000000000099 -S3154003FE200000000000000000000000000000000089 -S3154003FE300000000000000000000000000000000079 -S3154003FE400000000000000000000000000000000069 -S3154003FE500000000000000000000000000000000059 -S3154003FE600000000000000000000000000000000049 -S3154003FE700000000000000000000000000000000039 -S3154003FE800000000000000000000000000000000029 -S3154003FE900000000000000000000000000000000019 -S3154003FEA00000000000000000000000000000000009 -S3154003FEB000000000000000000000000000000000F9 -S3154003FEC000000000000000000000000000000000E9 -S3154003FED000000000000000000000000000000000D9 -S3154003FEE000000000000000000000000000000000C9 -S3154003FEF000000000000000000000000000000000B9 -S3154003FF0000000000000000000000000000000000A8 -S3154003FF100000000000000000000000000000000098 -S3154003FF200000000000000000000000000000000088 -S3154003FF300000000000000000000000000000000078 -S3154003FF400000000000000000000000000000000068 -S3154003FF500000000000000000000000000000000058 -S3154003FF600000000000000000000000000000000048 -S3154003FF700000000000000000000000000000000038 -S3154003FF800000000000000000000000000000000028 -S3154003FF900000000000000000000000000000000018 -S3154003FFA00000000000000000000000000000000008 -S3154003FFB000000000000000000000000000000000F8 -S3154003FFC000000000000000000000000000000000E8 -S3154003FFD000000000000000000000000000000000D8 -S3154003FFE000000000000000000000000000000000C8 -S3154003FFF000000000000000000000000000000000B8 -S3154004000000000000000000000000000000000000A6 -S315400400100000000000000000000000000000000096 -S315400400200000000000000000000000000000000086 -S315400400300000000000000000000000000000000076 -S315400400400000000000000000000000000000000066 -S315400400500000000000000000000000000000000056 -S315400400600000000000000000000000000000000046 -S315400400700000000000000000000000000000000036 -S315400400800000000000000000000000000000000026 -S315400400900000000000000000000000000000000016 -S315400400A00000000000000000000000000000000006 -S315400400B000000000000000000000000000000000F6 -S315400400C000000000000000000000000000000000E6 -S315400400D000000000000000000000000000000000D6 -S315400400E000000000000000000000000000000000C6 -S315400400F000000000000000000000000000000000B6 -S3154004010000000000000000000000000000000000A5 -S315400401100000000000000000000000000000000095 -S315400401200000000000000000000000000000000085 -S315400401300000000000000000000000000000000075 -S315400401400000000000000000000000000000000065 -S315400401500000000000000000000000000000000055 -S315400401600000000000000000000000000000000045 -S315400401700000000000000000000000000000000035 -S315400401800000000000000000000000000000000025 -S315400401900000000000000000000000000000000015 -S315400401A00000000000000000000000000000000005 -S315400401B000000000000000000000000000000000F5 -S315400401C000000000000000000000000000000000E5 -S315400401D000000000000000000000000000000000D5 -S315400401E000000000000000000000000000000000C5 -S315400401F000000000000000000000000000000000B5 -S3154004020000000000000000000000000000000000A4 -S315400402100000000000000000000000000000000094 -S315400402200000000000000000000000000000000084 -S315400402300000000000000000000000000000000074 -S315400402400000000000000000000000000000000064 -S315400402500000000000000000000000000000000054 -S315400402600000000000000000000000000000000044 -S315400402700000000000000000000000000000000034 -S315400402800000000000000000000000000000000024 -S315400402900000000000000000000000000000000014 -S315400402A00000000000000000000000000000000004 -S315400402B000000000000000000000000000000000F4 -S315400402C000000000000000000000000000000000E4 -S315400402D000000000000000000000000000000000D4 -S315400402E000000000000000000000000000000000C4 -S315400402F000000000000000000000000000000000B4 -S3154004030000000000000000000000000000000000A3 -S315400403100000000000000000000000000000000093 -S315400403200000000000000000000000000000000083 -S315400403300000000000000000000000000000000073 -S315400403400000000000000000000000000000000063 -S315400403500000000000000000000000000000000053 -S315400403600000000000000000000000000000000043 -S315400403700000000000000000000000000000000033 -S315400403800000000000000000000000000000000023 -S315400403900000000000000000000000000000000013 -S315400403A00000000000000000000000000000000003 -S315400403B000000000000000000000000000000000F3 -S315400403C000000000000000000000000000000000E3 -S315400403D000000000000000000000000000000000D3 -S315400403E000000000000000000000000000000000C3 -S315400403F000000000000000000000000000000000B3 -S3154004040000000000000000000000000000000000A2 -S315400404100000000000000000000000000000000092 -S315400404200000000000000000000000000000000082 -S315400404300000000000000000000000000000000072 -S315400404400000000000000000000000000000000062 -S315400404500000000000000000000000000000000052 -S315400404600000000000000000000000000000000042 -S315400404700000000000000000000000000000000032 -S315400404800000000000000000000000000000000022 -S315400404900000000000000000000000000000000012 -S315400404A00000000000000000000000000000000002 -S315400404B000000000000000000000000000000000F2 -S315400404C000000000000000000000000000000000E2 -S315400404D000000000000000000000000000000000D2 -S315400404E000000000000000000000000000000000C2 -S315400404F000000000000000000000000000000000B2 -S3154004050000000000000000000000000000000000A1 -S315400405100000000000000000000000000000000091 -S315400405200000000000000000000000000000000081 -S315400405300000000000000000000000000000000071 -S315400405400000000000000000000000000000000061 -S315400405500000000000000000000000000000000051 -S315400405600000000000000000000000000000000041 -S315400405700000000000000000000000000000000031 -S315400405800000000000000000000000000000000021 -S315400405900000000000000000000000000000000011 -S315400405A00000000000000000000000000000000001 -S315400405B000000000000000000000000000000000F1 -S315400405C000000000000000000000000000000000E1 -S315400405D000000000000000000000000000000000D1 -S315400405E000000000000000000000000000000000C1 -S315400405F000000000000000000000000000000000B1 -S3154004060000000000000000000000000000000000A0 -S315400406100000000000000000000000000000000090 -S315400406200000000000000000000000000000000080 -S315400406300000000000000000000000000000000070 -S315400406400000000000000000000000000000000060 -S315400406500000000000000000000000000000000050 -S315400406600000000000000000000000000000000040 -S315400406700000000000000000000000000000000030 -S315400406800000000000000000000000000000000020 -S315400406900000000000000000000000000000000010 -S315400406A00000000000000000000000000000000000 -S315400406B000000000000000000000000000000000F0 -S315400406C000000000000000000000000000000000E0 -S315400406D000000000000000000000000000000000D0 -S315400406E000000000000000000000000000000000C0 -S315400406F000000000000000000000000000000000B0 -S31540040700000000000000000000000000000000009F -S31540040710000000000000000000000000000000008F -S31540040720000000000000000000000000000000007F -S31540040730000000000000000000000000000000006F -S31540040740000000000000000000000000000000005F -S31540040750000000000000000000000000000000004F -S31540040760000000000000000000000000000000003F -S31540040770000000000000000000000000000000002F -S31540040780000000000000000000000000000000001F -S31540040790000000000000000000000000000000000F -S315400407A000000000000000000000000000000000FF -S315400407B000000000000000000000000000000000EF -S315400407C000000000000000000000000000000000DF -S315400407D000000000000000000000000000000000CF -S315400407E000000000000000000000000000000000BF -S315400407F000000000000000000000000000000000AF -S31540040800000000000000000000000000000000009E -S31540040810000000000000000000000000000000008E -S31540040820000000000000000000000000000000007E -S31540040830000000000000000000000000000000006E -S31540040840000000000000000000000000000000005E -S31540040850000000000000000000000000000000004E -S31540040860000000000000000000000000000000003E -S31540040870000000000000000000000000000000002E -S31540040880000000000000000000000000000000001E -S31540040890000000000000000000000000000000000E -S315400408A000000000000000000000000000000000FE -S315400408B000000000000000000000000000000000EE -S315400408C000000000000000000000000000000000DE -S315400408D000000000000000000000000000000000CE -S315400408E000000000000000000000000000000000BE -S315400408F000000000000000000000000000000000AE -S31540040900000000000000000000000000000000009D -S31540040910000000000000000000000000000000008D -S31540040920000000000000000000000000000000007D -S31540040930000000000000000000000000000000006D -S31540040940000000000000000000000000000000005D -S31540040950000000000000000000000000000000004D -S31540040960000000000000000000000000000000003D -S31540040970000000000000000000000000000000002D -S31540040980000000000000000000000000000000001D -S31540040990000000000000000000000000000000000D -S315400409A000000000000000000000000000000000FD -S315400409B000000000000000000000000000000000ED -S315400409C000000000000000000000000000000000DD -S315400409D000000000000000000000000000000000CD -S315400409E000000000000000000000000000000000BD -S315400409F000000000000000000000000000000000AD -S31540040A00000000000000000000000000000000009C -S31540040A10000000000000000000000000000000008C -S31540040A20000000000000000000000000000000007C -S31540040A30000000000000000000000000000000006C -S31540040A40000000000000000000000000000000005C -S31540040A50000000000000000000000000000000004C -S31540040A60000000000000000000000000000000003C -S31540040A70000000000000000000000000000000002C -S31540040A80000000000000000000000000000000001C -S31540040A90000000000000000000000000000000000C -S31540040AA000000000000000000000000000000000FC -S31540040AB000000000000000000000000000000000EC -S31540040AC000000000000000000000000000000000DC -S31540040AD000000000000000000000000000000000CC -S31540040AE000000000000000000000000000000000BC -S31540040AF000000000000000000000000000000000AC -S31540040B00000000000000000000000000000000009B -S31540040B10000000000000000000000000000000008B -S31540040B20000000000000000000000000000000007B -S31540040B30000000000000000000000000000000006B -S31540040B40000000000000000000000000000000005B -S31540040B50000000000000000000000000000000004B -S31540040B60000000000000000000000000000000003B -S31540040B70000000000000000000000000000000002B -S31540040B80000000000000000000000000000000001B -S31540040B90000000000000000000000000000000000B -S31540040BA000000000000000000000000000000000FB -S31540040BB000000000000000000000000000000000EB -S31540040BC000000000000000000000000000000000DB -S31540040BD000000000000000000000000000000000CB -S31540040BE000000000000000000000000000000000BB -S31540040BF000000000000000000000000000000000AB -S31540040C00000000000000000000000000000000009A -S31540040C10000000000000000000000000000000008A -S31540040C20000000000000000000000000000000007A -S31540040C30000000000000000000000000000000006A -S31540040C40000000000000000000000000000000005A -S31540040C50000000000000000000000000000000004A -S31540040C60000000000000000000000000000000003A -S31540040C70000000000000000000000000000000002A -S31540040C80000000000000000000000000000000001A -S31540040C90000000000000000000000000000000000A -S31540040CA000000000000000000000000000000000FA -S31540040CB000000000000000000000000000000000EA -S31540040CC000000000000000000000000000000000DA -S31540040CD000000000000000000000000000000000CA -S31540040CE000000000000000000000000000000000BA -S31540040CF000000000000000000000000000000000AA -S31540040D000000000000000000000000000000000099 -S31540040D100000000000000000000000000000000089 -S31540040D200000000000000000000000000000000079 -S31540040D300000000000000000000000000000000069 -S31540040D400000000000000000000000000000000059 -S31540040D500000000000000000000000000000000049 -S31540040D600000000000000000000000000000000039 -S31540040D700000000000000000000000000000000029 -S31540040D800000000000000000000000000000000019 -S31540040D900000000000000000000000000000000009 -S31540040DA000000000000000000000000000000000F9 -S31540040DB000000000000000000000000000000000E9 -S31540040DC000000000000000000000000000000000D9 -S31540040DD000000000000000000000000000000000C9 -S31540040DE000000000000000000000000000000000B9 -S31540040DF000000000000000000000000000000000A9 -S31540040E000000000000000000000000000000000098 -S31540040E100000000000000000000000000000000088 -S31540040E200000000000000000000000000000000078 -S31540040E300000000000000000000000000000000068 -S31540040E400000000000000000000000000000000058 -S31540040E500000000000000000000000000000000048 -S31540040E600000000000000000000000000000000038 -S31540040E700000000000000000000000000000000028 -S31540040E800000000000000000000000000000000018 -S31540040E900000000000000000000000000000000008 -S31540040EA000000000000000000000000000000000F8 -S31540040EB000000000000000000000000000000000E8 -S31540040EC000000000000000000000000000000000D8 -S31540040ED000000000000000000000000000000000C8 -S31540040EE000000000000000000000000000000000B8 -S31540040EF000000000000000000000000000000000A8 -S31540040F000000000000000000000000000000000097 -S31540040F100000000000000000000000000000000087 -S31540040F200000000000000000000000000000000077 -S31540040F300000000000000000000000000000000067 -S31540040F400000000000000000000000000000000057 -S31540040F500000000000000000000000000000000047 -S31540040F600000000000000000000000000000000037 -S31540040F700000000000000000000000000000000027 -S31540040F800000000000000000000000000000000017 -S31540040F900000000000000000000000000000000007 -S31540040FA000000000000000000000000000000000F7 -S31540040FB000000000000000000000000000000000E7 -S31540040FC000000000000000000000000000000000D7 -S31540040FD000000000000000000000000000000000C7 -S31540040FE000000000000000000000000000000000B7 -S31540040FF000000000000000000000000000000000A7 -S315400410000000000000000000000000000000000096 -S315400410100000000000000000000000000000000086 -S315400410200000000000000000000000000000000076 -S315400410300000000000000000000000000000000066 -S315400410400000000000000000000000000000000056 -S315400410500000000000000000000000000000000046 -S315400410600000000000000000000000000000000036 -S315400410700000000000000000000000000000000026 -S315400410800000000000000000000000000000000016 -S315400410900000000000000000000000000000000006 -S315400410A000000000000000000000000000000000F6 -S315400410B000000000000000000000000000000000E6 -S315400410C000000000000000000000000000000000D6 -S315400410D000000000000000000000000000000000C6 -S315400410E000000000000000000000000000000000B6 -S315400410F000000000000000000000000000000000A6 -S315400411000000000000000000000000000000000095 -S315400411100000000000000000000000000000000085 -S315400411200000000000000000000000000000000075 -S315400411300000000000000000000000000000000065 -S315400411400000000000000000000000000000000055 -S315400411500000000000000000000000000000000045 -S315400411600000000000000000000000000000000035 -S315400411700000000000000000000000000000000025 -S315400411800000000000000000000000000000000015 -S315400411900000000000000000000000000000000005 -S315400411A000000000000000000000000000000000F5 -S315400411B000000000000000000000000000000000E5 -S315400411C000000000000000000000000000000000D5 -S315400411D000000000000000000000000000000000C5 -S315400411E000000000000000000000000000000000B5 -S315400411F000000000000000000000000000000000A5 -S315400412000000000000000000000000000000000094 -S315400412100000000000000000000000000000000084 -S315400412200000000000000000000000000000000074 -S315400412300000000000000000000000000000000064 -S315400412400000000000000000000000000000000054 -S315400412500000000000000000000000000000000044 -S315400412600000000000000000000000000000000034 -S315400412700000000000000000000000000000000024 -S315400412800000000000000000000000000000000014 -S315400412900000000000000000000000000000000004 -S315400412A000000000000000000000000000000000F4 -S315400412B000000000000000000000000000000000E4 -S315400412C000000000000000000000000000000000D4 -S315400412D000000000000000000000000000000000C4 -S315400412E000000000000000000000000000000000B4 -S315400412F000000000000000000000000000000000A4 -S315400413000000000000000000000000000000000093 -S315400413100000000000000000000000000000000083 -S315400413200000000000000000000000000000000073 -S315400413300000000000000000000000000000000063 -S315400413400000000000000000000000000000000053 -S315400413500000000000000000000000000000000043 -S315400413600000000000000000000000000000000033 -S315400413700000000000000000000000000000000023 -S315400413800000000000000000000000000000000013 -S315400413900000000000000000000000000000000003 -S315400413A000000000000000000000000000000000F3 -S315400413B000000000000000000000000000000000E3 -S315400413C000000000000000000000000000000000D3 -S315400413D000000000000000000000000000000000C3 -S315400413E000000000000000000000000000000000B3 -S315400413F000000000000000000000000000000000A3 -S315400414000000000000000000000000000000000092 -S315400414100000000000000000000000000000000082 -S315400414200000000000000000000000000000000072 -S315400414300000000000000000000000000000000062 -S315400414400000000000000000000000000000000052 -S315400414500000000000000000000000000000000042 -S315400414600000000000000000000000000000000032 -S315400414700000000000000000000000000000000022 -S315400414800000000000000000000000000000000012 -S315400414900000000000000000000000000000000002 -S315400414A000000000000000000000000000000000F2 -S315400414B000000000000000000000000000000000E2 -S315400414C000000000000000000000000000000000D2 -S315400414D000000000000000000000000000000000C2 -S315400414E000000000000000000000000000000000B2 -S315400414F000000000000000000000000000000000A2 -S315400415000000000000000000000000000000000091 -S315400415100000000000000000000000000000000081 -S315400415200000000000000000000000000000000071 -S315400415300000000000000000000000000000000061 -S315400415400000000000000000000000000000000051 -S315400415500000000000000000000000000000000041 -S315400415600000000000000000000000000000000031 -S315400415700000000000000000000000000000000021 -S315400415800000000000000000000000000000000011 -S315400415900000000000000000000000000000000001 -S315400415A000000000000000000000000000000000F1 -S315400415B000000000000000000000000000000000E1 -S315400415C000000000000000000000000000000000D1 -S315400415D000000000000000000000000000000000C1 -S315400415E000000000000000000000000000000000B1 -S315400415F000000000000000000000000000000000A1 -S315400416000000000000000000000000000000000090 -S315400416100000000000000000000000000000000080 -S315400416200000000000000000000000000000000070 -S315400416300000000000000000000000000000000060 -S315400416400000000000000000000000000000000050 -S315400416500000000000000000000000000000000040 -S315400416600000000000000000000000000000000030 -S315400416700000000000000000000000000000000020 -S315400416800000000000000000000000000000000010 -S315400416900000000000000000000000000000000000 -S315400416A000000000000000000000000000000000F0 -S315400416B000000000000000000000000000000000E0 -S315400416C000000000000000000000000000000000D0 -S315400416D000000000000000000000000000000000C0 -S315400416E000000000000000000000000000000000B0 -S315400416F000000000000000000000000000000000A0 -S31540041700000000000000000000000000000000008F -S31540041710000000000000000000000000000000007F -S31540041720000000000000000000000000000000006F -S31540041730000000000000000000000000000000005F -S31540041740000000000000000000000000000000004F -S31540041750000000000000000000000000000000003F -S31540041760000000000000000000000000000000002F -S31540041770000000000000000000000000000000001F -S31540041780000000000000000000000000000000000F -S3154004179000000000000000000000000000000000FF -S315400417A000000000000000000000000000000000EF -S315400417B000000000000000000000000000000000DF -S315400417C000000000000000000000000000000000CF -S315400417D000000000000000000000000000000000BF -S315400417E000000000000000000000000000000000AF -S315400417F0000000000000000000000000000000009F -S31540041800000000000000000000000000000000008E -S31540041810000000000000000000000000000000007E -S31540041820000000000000000000000000000000006E -S31540041830000000000000000000000000000000005E -S31540041840000000000000000000000000000000004E -S31540041850000000000000000000000000000000003E -S31540041860000000000000000000000000000000002E -S31540041870000000000000000000000000000000001E -S31540041880000000000000000000000000000000000E -S3154004189000000000000000000000000000000000FE -S315400418A000000000000000000000000000000000EE -S315400418B000000000000000000000000000000000DE -S315400418C000000000000000000000000000000000CE -S315400418D000000000000000000000000000000000BE -S315400418E000000000000000000000000000000000AE -S315400418F0000000000000000000000000000000009E -S31540041900000000000000000000000000000000008D -S31540041910000000000000000000000000000000007D -S31540041920000000000000000000000000000000006D -S31540041930000000000000000000000000000000005D -S31540041940000000000000000000000000000000004D -S31540041950000000000000000000000000000000003D -S31540041960000000000000000000000000000000002D -S31540041970000000000000000000000000000000001D -S31540041980000000000000000000000000000000000D -S3154004199000000000000000000000000000000000FD -S315400419A000000000000000000000000000000000ED -S315400419B000000000000000000000000000000000DD -S315400419C000000000000000000000000000000000CD -S315400419D000000000000000000000000000000000BD -S315400419E000000000000000000000000000000000AD -S315400419F0000000000000000000000000000000009D -S31540041A00000000000000000000000000000000008C -S31540041A10000000000000000000000000000000007C -S31540041A20000000000000000000000000000000006C -S31540041A30000000000000000000000000000000005C -S31540041A40000000000000000000000000000000004C -S31540041A50000000000000000000000000000000003C -S31540041A60000000000000000000000000000000002C -S31540041A70000000000000000000000000000000001C -S31540041A80000000000000000000000000000000000C -S31540041A9000000000000000000000000000000000FC -S31540041AA000000000000000000000000000000000EC -S31540041AB000000000000000000000000000000000DC -S31540041AC000000000000000000000000000000000CC -S31540041AD000000000000000000000000000000000BC -S31540041AE000000000000000000000000000000000AC -S31540041AF0000000000000000000000000000000009C -S31540041B00000000000000000000000000000000008B -S31540041B10000000000000000000000000000000007B -S31540041B20000000000000000000000000000000006B -S31540041B30000000000000000000000000000000005B -S31540041B40000000000000000000000000000000004B -S31540041B50000000000000000000000000000000003B -S31540041B60000000000000000000000000000000002B -S31540041B70000000000000000000000000000000001B -S31540041B80000000000000000000000000000000000B -S31540041B9000000000000000000000000000000000FB -S31540041BA000000000000000000000000000000000EB -S31540041BB000000000000000000000000000000000DB -S31540041BC000000000000000000000000000000000CB -S31540041BD000000000000000000000000000000000BB -S31540041BE000000000000000000000000000000000AB -S31540041BF0000000000000000000000000000000009B -S31540041C00000000000000000000000000000000008A -S31540041C10000000000000000000000000000000007A -S31540041C20000000000000000000000000000000006A -S31540041C30000000000000000000000000000000005A -S31540041C40000000000000000000000000000000004A -S31540041C50000000000000000000000000000000003A -S31540041C60000000000000000000000000000000002A -S31540041C70000000000000000000000000000000001A -S31540041C80000000000000000000000000000000000A -S31540041C9000000000000000000000000000000000FA -S31540041CA000000000000000000000000000000000EA -S31540041CB000000000000000000000000000000000DA -S31540041CC000000000000000000000000000000000CA -S31540041CD000000000000000000000000000000000BA -S31540041CE000000000000000000000000000000000AA -S31540041CF0000000000000000000000000000000009A -S31540041D000000000000000000000000000000000089 -S31540041D100000000000000000000000000000000079 -S31540041D200000000000000000000000000000000069 -S31540041D300000000000000000000000000000000059 -S31540041D400000000000000000000000000000000049 -S31540041D500000000000000000000000000000000039 -S31540041D600000000000000000000000000000000029 -S31540041D700000000000000000000000000000000019 -S31540041D800000000000000000000000000000000009 -S31540041D9000000000000000000000000000000000F9 -S31540041DA000000000000000000000000000000000E9 -S31540041DB000000000000000000000000000000000D9 -S31540041DC000000000000000000000000000000000C9 -S31540041DD000000000000000000000000000000000B9 -S31540041DE000000000000000000000000000000000A9 -S31540041DF00000000000000000000000000000000099 -S31540041E000000000000000000000000000000000088 -S31540041E100000000000000000000000000000000078 -S31540041E200000000000000000000000000000000068 -S31540041E300000000000000000000000000000000058 -S31540041E400000000000000000000000000000000048 -S31540041E500000000000000000000000000000000038 -S31540041E600000000000000000000000000000000028 -S31540041E700000000000000000000000000000000018 -S31540041E800000000000000000000000000000000008 -S31540041E9000000000000000000000000000000000F8 -S31540041EA000000000000000000000000000000000E8 -S31540041EB000000000000000000000000000000000D8 -S31540041EC000000000000000000000000000000000C8 -S31540041ED000000000000000000000000000000000B8 -S31540041EE000000000000000000000000000000000A8 -S31540041EF00000000000000000000000000000000098 -S31540041F000000000000000000000000000000000087 -S31540041F100000000000000000000000000000000077 -S31540041F200000000000000000000000000000000067 -S31540041F300000000000000000000000000000000057 -S31540041F400000000000000000000000000000000047 -S31540041F500000000000000000000000000000000037 -S31540041F600000000000000000000000000000000027 -S31540041F700000000000000000000000000000000017 -S31540041F800000000000000000000000000000000007 -S31540041F9000000000000000000000000000000000F7 -S31540041FA000000000000000000000000000000000E7 -S31540041FB000000000000000000000000000000000D7 -S31540041FC000000000000000000000000000000000C7 -S31540041FD000000000000000000000000000000000B7 -S31540041FE000000000000000000000000000000000A7 -S31540041FF00000000000000000000000000000000097 -S315400420000000000000000000000000000000000086 -S315400420100000000000000000000000000000000076 -S315400420200000000000000000000000000000000066 -S315400420300000000000000000000000000000000056 -S315400420400000000000000000000000000000000046 -S315400420500000000000000000000000000000000036 -S315400420600000000000000000000000000000000026 -S315400420700000000000000000000000000000000016 -S315400420800000000000000000000000000000000006 -S3154004209000000000000000000000000000000000F6 -S315400420A000000000000000000000000000000000E6 -S315400420B000000000000000000000000000000000D6 -S315400420C000000000000000000000000000000000C6 -S315400420D000000000000000000000000000000000B6 -S315400420E000000000000000000000000000000000A6 -S315400420F00000000000000000000000000000000096 -S315400421000000000000000000000000000000000085 -S315400421100000000000000000000000000000000075 -S315400421200000000000000000000000000000000065 -S315400421300000000000000000000000000000000055 -S315400421400000000000000000000000000000000045 -S315400421500000000000000000000000000000000035 -S315400421600000000000000000000000000000000025 -S315400421700000000000000000000000000000000015 -S315400421800000000000000000000000000000000005 -S3154004219000000000000000000000000000000000F5 -S315400421A000000000000000000000000000000000E5 -S315400421B000000000000000000000000000000000D5 -S315400421C000000000000000000000000000000000C5 -S315400421D000000000000000000000000000000000B5 -S315400421E000000000000000000000000000000000A5 -S315400421F00000000000000000000000000000000095 -S315400422000000000000000000000000000000000084 -S315400422100000000000000000000000000000000074 -S315400422200000000000000000000000000000000064 -S315400422300000000000000000000000000000000054 -S315400422400000000000000000000000000000000044 -S315400422500000000000000000000000000000000034 -S315400422600000000000000000000000000000000024 -S315400422700000000000000000000000000000000014 -S315400422800000000000000000000000000000000004 -S3154004229000000000000000000000000000000000F4 -S315400422A000000000000000000000000000000000E4 -S315400422B000000000000000000000000000000000D4 -S315400422C000000000000000000000000000000000C4 -S315400422D000000000000000000000000000000000B4 -S315400422E000000000000000000000000000000000A4 -S315400422F00000000000000000000000000000000094 -S315400423000000000000000000000000000000000083 -S315400423100000000000000000000000000000000073 -S315400423200000000000000000000000000000000063 -S315400423300000000000000000000000000000000053 -S315400423400000000000000000000000000000000043 -S315400423500000000000000000000000000000000033 -S315400423600000000000000000000000000000000023 -S315400423700000000000000000000000000000000013 -S315400423800000000000000000000000000000000003 -S3154004239000000000000000000000000000000000F3 -S315400423A000000000000000000000000000000000E3 -S315400423B000000000000000000000000000000000D3 -S315400423C000000000000000000000000000000000C3 -S315400423D000000000000000000000000000000000B3 -S315400423E000000000000000000000000000000000A3 -S315400423F00000000000000000000000000000000093 -S315400424000000000000000000000000000000000082 -S315400424100000000000000000000000000000000072 -S315400424200000000000000000000000000000000062 -S315400424300000000000000000000000000000000052 -S315400424400000000000000000000000000000000042 -S315400424500000000000000000000000000000000032 -S315400424600000000000000000000000000000000022 -S315400424700000000000000000000000000000000012 -S315400424800000000000000000000000000000000002 -S3154004249000000000000000000000000000000000F2 -S315400424A000000000000000000000000000000000E2 -S315400424B000000000000000000000000000000000D2 -S315400424C000000000000000000000000000000000C2 -S315400424D000000000000000000000000000000000B2 -S315400424E000000000000000000000000000000000A2 -S315400424F00000000000000000000000000000000092 -S315400425000000000000000000000000000000000081 -S315400425100000000000000000000000000000000071 -S315400425200000000000000000000000000000000061 -S315400425300000000000000000000000000000000051 -S315400425400000000000000000000000000000000041 -S315400425500000000000000000000000000000000031 -S315400425600000000000000000000000000000000021 -S315400425700000000000000000000000000000000011 -S315400425800000000000000000000000000000000001 -S3154004259000000000000000000000000000000000F1 -S315400425A000000000000000000000000000000000E1 -S315400425B000000000000000000000000000000000D1 -S315400425C000000000000000000000000000000000C1 -S315400425D000000000000000000000000000000000B1 -S315400425E000000000000000000000000000000000A1 -S315400425F00000000000000000000000000000000091 -S315400426000000000000000000000000000000000080 -S315400426100000000000000000000000000000000070 -S315400426200000000000000000000000000000000060 -S315400426300000000000000000000000000000000050 -S315400426400000000000000000000000000000000040 -S315400426500000000000000000000000000000000030 -S315400426600000000000000000000000000000000020 -S315400426700000000000000000000000000000000010 -S315400426800000000000000000000000000000000000 -S3154004269000000000000000000000000000000000F0 -S315400426A000000000000000000000000000000000E0 -S315400426B000000000000000000000000000000000D0 -S315400426C000000000000000000000000000000000C0 -S315400426D000000000000000000000000000000000B0 -S315400426E000000000000000000000000000000000A0 -S315400426F00000000000000000000000000000000090 -S31540042700000000000000000000000000000000007F -S31540042710000000000000000000000000000000006F -S31540042720000000000000000000000000000000005F -S31540042730000000000000000000000000000000004F -S31540042740000000000000000000000000000000003F -S31540042750000000000000000000000000000000002F -S31540042760000000000000000000000000000000001F -S31540042770000000000000000000000000000000000F -S3154004278000000000000000000000000000000000FF -S3154004279000000000000000000000000000000000EF -S315400427A000000000000000000000000000000000DF -S315400427B000000000000000000000000000000000CF -S315400427C000000000000000000000000000000000BF -S315400427D000000000000000000000000000000000AF -S315400427E0000000000000000000000000000000009F -S315400427F0000000000000000000000000000000008F -S31540042800000000000000000000000000000000007E -S31540042810000000000000000000000000000000006E -S31540042820000000000000000000000000000000005E -S31540042830000000000000000000000000000000004E -S31540042840000000000000000000000000000000003E -S31540042850000000000000000000000000000000002E -S31540042860000000000000000000000000000000001E -S31540042870000000000000000000000000000000000E -S3154004288000000000000000000000000000000000FE -S3154004289000000000000000000000000000000000EE -S315400428A000000000000000000000000000000000DE -S315400428B000000000000000000000000000000000CE -S315400428C000000000000000000000000000000000BE -S315400428D000000000000000000000000000000000AE -S315400428E0000000000000000000000000000000009E -S315400428F0000000000000000000000000000000008E -S31540042900000000000000000000000000000000007D -S31540042910000000000000000000000000000000006D -S31540042920000000000000000000000000000000005D -S31540042930000000000000000000000000000000004D -S31540042940000000000000000000000000000000003D -S31540042950000000000000000000000000000000002D -S31540042960000000000000000000000000000000001D -S31540042970000000000000000000000000000000000D -S3154004298000000000000000000000000000000000FD -S3154004299000000000000000000000000000000000ED -S315400429A000000000000000000000000000000000DD -S315400429B000000000000000000000000000000000CD -S315400429C000000000000000000000000000000000BD -S315400429D000000000000000000000000000000000AD -S315400429E0000000000000000000000000000000009D -S315400429F0000000000000000000000000000000008D -S31540042A00000000000000000000000000000000007C -S31540042A10000000000000000000000000000000006C -S31540042A20000000000000000000000000000000005C -S31540042A30000000000000000000000000000000004C -S31540042A40000000000000000000000000000000003C -S31540042A50000000000000000000000000000000002C -S31540042A60000000000000000000000000000000001C -S31540042A70000000000000000000000000000000000C -S31540042A8000000000000000000000000000000000FC -S31540042A9000000000000000000000000000000000EC -S31540042AA000000000000000000000000000000000DC -S31540042AB000000000000000000000000000000000CC -S31540042AC000000000000000000000000000000000BC -S31540042AD000000000000000000000000000000000AC -S31540042AE0000000000000000000000000000000009C -S31540042AF0000000000000000000000000000000008C -S31540042B00000000000000000000000000000000007B -S31540042B10000000000000000000000000000000006B -S31540042B20000000000000000000000000000000005B -S31540042B30000000000000000000000000000000004B -S31540042B40000000000000000000000000000000003B -S31540042B50000000000000000000000000000000002B -S31540042B60000000000000000000000000000000001B -S31540042B70000000000000000000000000000000000B -S31540042B8000000000000000000000000000000000FB -S31540042B9000000000000000000000000000000000EB -S31540042BA000000000000000000000000000000000DB -S31540042BB000000000000000000000000000000000CB -S31540042BC000000000000000000000000000000000BB -S31540042BD000000000000000000000000000000000AB -S31540042BE0000000000000000000000000000000009B -S31540042BF0000000000000000000000000000000008B -S31540042C00000000000000000000000000000000007A -S31540042C10000000000000000000000000000000006A -S31540042C20000000000000000000000000000000005A -S31540042C30000000000000000000000000000000004A -S31540042C40000000000000000000000000000000003A -S31540042C50000000000000000000000000000000002A -S31540042C60000000000000000000000000000000001A -S31540042C70000000000000000000000000000000000A -S31540042C8000000000000000000000000000000000FA -S31540042C9000000000000000000000000000000000EA -S31540042CA000000000000000000000000000000000DA -S31540042CB000000000000000000000000000000000CA -S31540042CC000000000000000000000000000000000BA -S31540042CD000000000000000000000000000000000AA -S31540042CE0000000000000000000000000000000009A -S31540042CF0000000000000000000000000000000008A -S31540042D000000000000000000000000000000000079 -S31540042D100000000000000000000000000000000069 -S31540042D200000000000000000000000000000000059 -S31540042D300000000000000000000000000000000049 -S31540042D400000000000000000000000000000000039 -S31540042D500000000000000000000000000000000029 -S31540042D600000000000000000000000000000000019 -S31540042D700000000000000000000000000000000009 -S31540042D8000000000000000000000000000000000F9 -S31540042D9000000000000000000000000000000000E9 -S31540042DA000000000000000000000000000000000D9 -S31540042DB000000000000000000000000000000000C9 -S31540042DC000000000000000000000000000000000B9 -S31540042DD000000000000000000000000000000000A9 -S31540042DE00000000000000000000000000000000099 -S31540042DF00000000000000000000000000000000089 -S31540042E000000000000000000000000000000000078 -S31540042E100000000000000000000000000000000068 -S31540042E200000000000000000000000000000000058 -S31540042E300000000000000000000000000000000048 -S31540042E400000000000000000000000000000000038 -S31540042E500000000000000000000000000000000028 -S31540042E600000000000000000000000000000000018 -S31540042E700000000000000000000000000000000008 -S31540042E8000000000000000000000000000000000F8 -S31540042E9000000000000000000000000000000000E8 -S31540042EA000000000000000000000000000000000D8 -S31540042EB000000000000000000000000000000000C8 -S31540042EC000000000000000000000000000000000B8 -S31540042ED000000000000000000000000000000000A8 -S31540042EE00000000000000000000000000000000098 -S31540042EF00000000000000000000000000000000088 -S31540042F000000000000000000000000000000000077 -S31540042F100000000000000000000000000000000067 -S31540042F200000000000000000000000000000000057 -S31540042F300000000000000000000000000000000047 -S31540042F400000000000000000000000000000000037 -S31540042F500000000000000000000000000000000027 -S31540042F600000000000000000000000000000000017 -S31540042F700000000000000000000000000000000007 -S31540042F8000000000000000000000000000000000F7 -S31540042F9000000000000000000000000000000000E7 -S31540042FA000000000000000000000000000000000D7 -S31540042FB000000000000000000000000000000000C7 -S31540042FC000000000000000000000000000000000B7 -S31540042FD000000000000000000000000000000000A7 -S31540042FE00000000000000000000000000000000097 -S31540042FF00000000000000000000000000000000087 -S315400430000000000000000000000000000000000076 -S315400430100000000000000000000000000000000066 -S315400430200000000000000000000000000000000056 -S315400430300000000000000000000000000000000046 -S315400430400000000000000000000000000000000036 -S315400430500000000000000000000000000000000026 -S315400430600000000000000000000000000000000016 -S315400430700000000000000000000000000000000006 -S3154004308000000000000000000000000000000000F6 -S3154004309000000000000000000000000000000000E6 -S315400430A000000000000000000000000000000000D6 -S315400430B000000000000000000000000000000000C6 -S315400430C000000000000000000000000000000000B6 -S315400430D000000000000000000000000000000000A6 -S315400430E00000000000000000000000000000000096 -S315400430F00000000000000000000000000000000086 -S315400431000000000000000000000000000000000075 -S315400431100000000000000000000000000000000065 -S315400431200000000000000000000000000000000055 -S315400431300000000000000000000000000000000045 -S315400431400000000000000000000000000000000035 -S315400431500000000000000000000000000000000025 -S315400431600000000000000000000000000000000015 -S315400431700000000000000000000000000000000005 -S3154004318000000000000000000000000000000000F5 -S3154004319000000000000000000000000000000000E5 -S315400431A000000000000000000000000000000000D5 -S315400431B000000000000000000000000000000000C5 -S315400431C000000000000000000000000000000000B5 -S315400431D000000000000000000000000000000000A5 -S315400431E00000000000000000000000000000000095 -S315400431F00000000000000000000000000000000085 -S315400432000000000000000000000000000000000074 -S315400432100000000000000000000000000000000064 -S315400432200000000000000000000000000000000054 -S315400432300000000000000000000000000000000044 -S315400432400000000000000000000000000000000034 -S315400432500000000000000000000000000000000024 -S315400432600000000000000000000000000000000014 -S315400432700000000000000000000000000000000004 -S3154004328000000000000000000000000000000000F4 -S3154004329000000000000000000000000000000000E4 -S315400432A000000000000000000000000000000000D4 -S315400432B000000000000000000000000000000000C4 -S315400432C000000000000000000000000000000000B4 -S315400432D000000000000000000000000000000000A4 -S315400432E00000000000000000000000000000000094 -S315400432F00000000000000000000000000000000084 -S315400433000000000000000000000000000000000073 -S315400433100000000000000000000000000000000063 -S315400433200000000000000000000000000000000053 -S315400433300000000000000000000000000000000043 -S315400433400000000000000000000000000000000033 -S315400433500000000000000000000000000000000023 -S315400433600000000000000000000000000000000013 -S315400433700000000000000000000000000000000003 -S3154004338000000000000000000000000000000000F3 -S3154004339000000000000000000000000000000000E3 -S315400433A000000000000000000000000000000000D3 -S315400433B000000000000000000000000000000000C3 -S315400433C000000000000000000000000000000000B3 -S315400433D000000000000000000000000000000000A3 -S315400433E00000000000000000000000000000000093 -S315400433F00000000000000000000000000000000083 -S315400434000000000000000000000000000000000072 -S315400434100000000000000000000000000000000062 -S315400434200000000000000000000000000000000052 -S315400434300000000000000000000000000000000042 -S315400434400000000000000000000000000000000032 -S315400434500000000000000000000000000000000022 -S315400434600000000000000000000000000000000012 -S315400434700000000000000000000000000000000002 -S3154004348000000000000000000000000000000000F2 -S3154004349000000000000000000000000000000000E2 -S315400434A000000000000000000000000000000000D2 -S315400434B000000000000000000000000000000000C2 -S315400434C000000000000000000000000000000000B2 -S315400434D000000000000000000000000000000000A2 -S315400434E00000000000000000000000000000000092 -S315400434F00000000000000000000000000000000082 -S315400435000000000000000000000000000000000071 -S315400435100000000000000000000000000000000061 -S315400435200000000000000000000000000000000051 -S315400435300000000000000000000000000000000041 -S315400435400000000000000000000000000000000031 -S315400435500000000000000000000000000000000021 -S315400435600000000000000000000000000000000011 -S315400435700000000000000000000000000000000001 -S3154004358000000000000000000000000000000000F1 -S3154004359000000000000000000000000000000000E1 -S315400435A000000000000000000000000000000000D1 -S315400435B000000000000000000000000000000000C1 -S315400435C000000000000000000000000000000000B1 -S315400435D000000000000000000000000000000000A1 -S315400435E00000000000000000000000000000000091 -S315400435F00000000000000000000000000000000081 -S315400436000000000000000000000000000000000070 -S315400436100000000000000000000000000000000060 -S315400436200000000000000000000000000000000050 -S315400436300000000000000000000000000000000040 -S315400436400000000000000000000000000000000030 -S315400436500000000000000000000000000000000020 -S315400436600000000000000000000000000000000010 -S315400436700000000000000000000000000000000000 -S3154004368000000000000000000000000000000000F0 -S3154004369000000000000000000000000000000000E0 -S315400436A000000000000000000000000000000000D0 -S315400436B000000000000000000000000000000000C0 -S315400436C000000000000000000000000000000000B0 -S315400436D000000000000000000000000000000000A0 -S315400436E00000000000000000000000000000000090 -S315400436F00000000000000000000000000000000080 -S31540043700000000000000000000000000000000006F -S31540043710000000000000000000000000000000005F -S31540043720000000000000000000000000000000004F -S31540043730000000000000000000000000000000003F -S31540043740000000000000000000000000000000002F -S31540043750000000000000000000000000000000001F -S31540043760000000000000000000000000000000000F -S3154004377000000000000000000000000000000000FF -S3154004378000000000000000000000000000000000EF -S3154004379000000000000000000000000000000000DF -S315400437A000000000000000000000000000000000CF -S315400437B000000000000000000000000000000000BF -S315400437C000000000000000000000000000000000AF -S315400437D0000000000000000000000000000000009F -S315400437E0000000000000000000000000000000008F -S315400437F0000000000000000000000000000000007F -S31540043800000000000000000000000000000000006E -S31540043810000000000000000000000000000000005E -S31540043820000000000000000000000000000000004E -S31540043830000000000000000000000000000000003E -S31540043840000000000000000000000000000000002E -S31540043850000000000000000000000000000000001E -S31540043860000000000000000000000000000000000E -S3154004387000000000000000000000000000000000FE -S3154004388000000000000000000000000000000000EE -S3154004389000000000000000000000000000000000DE -S315400438A000000000000000000000000000000000CE -S315400438B000000000000000000000000000000000BE -S315400438C000000000000000000000000000000000AE -S315400438D0000000000000000000000000000000009E -S315400438E0000000000000000000000000000000008E -S315400438F0000000000000000000000000000000007E -S31540043900000000000000000000000000000000006D -S31540043910000000000000000000000000000000005D -S31540043920000000000000000000000000000000004D -S31540043930000000000000000000000000000000003D -S31540043940000000000000000000000000000000002D -S31540043950000000000000000000000000000000001D -S31540043960000000000000000000000000000000000D -S3154004397000000000000000000000000000000000FD -S3154004398000000000000000000000000000000000ED -S3154004399000000000000000000000000000000000DD -S315400439A000000000000000000000000000000000CD -S315400439B000000000000000000000000000000000BD -S315400439C000000000000000000000000000000000AD -S315400439D0000000000000000000000000000000009D -S315400439E0000000000000000000000000000000008D -S315400439F0000000000000000000000000000000007D -S31540043A00000000000000000000000000000000006C -S31540043A10000000000000000000000000000000005C -S31540043A20000000000000000000000000000000004C -S31540043A30000000000000000000000000000000003C -S31540043A40000000000000000000000000000000002C -S31540043A50000000000000000000000000000000001C -S31540043A60000000000000000000000000000000000C -S31540043A7000000000000000000000000000000000FC -S31540043A8000000000000000000000000000000000EC -S31540043A9000000000000000000000000000000000DC -S31540043AA000000000000000000000000000000000CC -S31540043AB000000000000000000000000000000000BC -S31540043AC000000000000000000000000000000000AC -S31540043AD0000000000000000000000000000000009C -S31540043AE0000000000000000000000000000000008C -S31540043AF0000000000000000000000000000000007C -S31540043B00000000000000000000000000000000006B -S31540043B10000000000000000000000000000000005B -S31540043B20000000000000000000000000000000004B -S31540043B30000000000000000000000000000000003B -S31540043B40000000000000000000000000000000002B -S31540043B50000000000000000000000000000000001B -S31540043B60000000000000000000000000000000000B -S31540043B7000000000000000000000000000000000FB -S31540043B8000000000000000000000000000000000EB -S31540043B9000000000000000000000000000000000DB -S31540043BA000000000000000000000000000000000CB -S31540043BB000000000000000000000000000000000BB -S31540043BC000000000000000000000000000000000AB -S31540043BD0000000000000000000000000000000009B -S31540043BE0000000000000000000000000000000008B -S31540043BF0000000000000000000000000000000007B -S31540043C00000000000000000000000000000000006A -S31540043C10000000000000000000000000000000005A -S31540043C20000000000000000000000000000000004A -S31540043C30000000000000000000000000000000003A -S31540043C40000000000000000000000000000000002A -S31540043C50000000000000000000000000000000001A -S31540043C60000000000000000000000000000000000A -S31540043C7000000000000000000000000000000000FA -S31540043C8000000000000000000000000000000000EA -S31540043C9000000000000000000000000000000000DA -S31540043CA000000000000000000000000000000000CA -S31540043CB000000000000000000000000000000000BA -S31540043CC000000000000000000000000000000000AA -S31540043CD0000000000000000000000000000000009A -S31540043CE0000000000000000000000000000000008A -S31540043CF0000000000000000000000000000000007A -S31540043D000000000000000000000000000000000069 -S31540043D100000000000000000000000000000000059 -S31540043D200000000000000000000000000000000049 -S31540043D300000000000000000000000000000000039 -S31540043D400000000000000000000000000000000029 -S31540043D500000000000000000000000000000000019 -S31540043D600000000000000000000000000000000009 -S31540043D7000000000000000000000000000000000F9 -S31540043D8000000000000000000000000000000000E9 -S31540043D9000000000000000000000000000000000D9 -S31540043DA000000000000000000000000000000000C9 -S31540043DB000000000000000000000000000000000B9 -S31540043DC000000000000000000000000000000000A9 -S31540043DD00000000000000000000000000000000099 -S31540043DE00000000000000000000000000000000089 -S31540043DF00000000000000000000000000000000079 -S31540043E000000000000000000000000000000000068 -S31540043E100000000000000000000000000000000058 -S31540043E200000000000000000000000000000000048 -S31540043E300000000000000000000000000000000038 -S31540043E400000000000000000000000000000000028 -S31540043E500000000000000000000000000000000018 -S31540043E600000000000000000000000000000000008 -S31540043E7000000000000000000000000000000000F8 -S31540043E8000000000000000000000000000000000E8 -S31540043E9000000000000000000000000000000000D8 -S31540043EA000000000000000000000000000000000C8 -S31540043EB000000000000000000000000000000000B8 -S31540043EC000000000000000000000000000000000A8 -S31540043ED00000000000000000000000000000000098 -S31540043EE00000000000000000000000000000000088 -S31540043EF00000000000000000000000000000000078 -S31540043F000000000000000000000000000000000067 -S31540043F100000000000000000000000000000000057 -S31540043F200000000000000000000000000000000047 -S31540043F300000000000000000000000000000000037 -S31540043F400000000000000000000000000000000027 -S31540043F500000000000000000000000000000000017 -S31540043F600000000000000000000000000000000007 -S31540043F7000000000000000000000000000000000F7 -S31540043F8000000000000000000000000000000000E7 -S31540043F9000000000000000000000000000000000D7 -S31540043FA000000000000000000000000000000000C7 -S31540043FB000000000000000000000000000000000B7 -S31540043FC000000000000000000000000000000000A7 -S31540043FD00000000000000000000000000000000097 -S31540043FE00000000000000000000000000000000087 -S31540043FF00000000000000000000000000000000077 -S315400440000000000000000000000000000000000066 -S315400440100000000000000000000000000000000056 -S315400440200000000000000000000000000000000046 -S315400440300000000000000000000000000000000036 -S315400440400000000000000000000000000000000026 -S315400440500000000000000000000000000000000016 -S315400440600000000000000000000000000000000006 -S3154004407000000000000000000000000000000000F6 -S3154004408000000000000000000000000000000000E6 -S3154004409000000000000000000000000000000000D6 -S315400440A000000000000000000000000000000000C6 -S315400440B000000000000000000000000000000000B6 -S315400440C000000000000000000000000000000000A6 -S315400440D00000000000000000000000000000000096 -S315400440E00000000000000000000000000000000086 -S315400440F00000000000000000000000000000000076 -S315400441000000000000000000000000000000000065 -S315400441100000000000000000000000000000000055 -S315400441200000000000000000000000000000000045 -S315400441300000000000000000000000000000000035 -S315400441400000000000000000000000000000000025 -S315400441500000000000000000000000000000000015 -S315400441600000000000000000000000000000000005 -S3154004417000000000000000000000000000000000F5 -S3154004418000000000000000000000000000000000E5 -S3154004419000000000000000000000000000000000D5 -S315400441A000000000000000000000000000000000C5 -S315400441B000000000000000000000000000000000B5 -S315400441C000000000000000000000000000000000A5 -S315400441D00000000000000000000000000000000095 -S315400441E00000000000000000000000000000000085 -S315400441F00000000000000000000000000000000075 -S315400442000000000000000000000000000000000064 -S315400442100000000000000000000000000000000054 -S315400442200000000000000000000000000000000044 -S315400442300000000000000000000000000000000034 -S315400442400000000000000000000000000000000024 -S315400442500000000000000000000000000000000014 -S315400442600000000000000000000000000000000004 -S3154004427000000000000000000000000000000000F4 -S3154004428000000000000000000000000000000000E4 -S3154004429000000000000000000000000000000000D4 -S315400442A000000000000000000000000000000000C4 -S315400442B000000000000000000000000000000000B4 -S315400442C000000000000000000000000000000000A4 -S315400442D00000000000000000000000000000000094 -S315400442E00000000000000000000000000000000084 -S315400442F00000000000000000000000000000000074 -S315400443000000000000000000000000000000000063 -S315400443100000000000000000000000000000000053 -S315400443200000000000000000000000000000000043 -S315400443300000000000000000000000000000000033 -S315400443400000000000000000000000000000000023 -S315400443500000000000000000000000000000000013 -S315400443600000000000000000000000000000000003 -S3154004437000000000000000000000000000000000F3 -S3154004438000000000000000000000000000000000E3 -S3154004439000000000000000000000000000000000D3 -S315400443A000000000000000000000000000000000C3 -S315400443B000000000000000000000000000000000B3 -S315400443C000000000000000000000000000000000A3 -S315400443D00000000000000000000000000000000093 -S315400443E00000000000000000000000000000000083 -S315400443F00000000000000000000000000000000073 -S315400444000000000000000000000000000000000062 -S315400444100000000000000000000000000000000052 -S315400444200000000000000000000000000000000042 -S315400444300000000000000000000000000000000032 -S315400444400000000000000000000000000000000022 -S315400444500000000000000000000000000000000012 -S315400444600000000000000000000000000000000002 -S3154004447000000000000000000000000000000000F2 -S3154004448000000000000000000000000000000000E2 -S3154004449000000000000000000000000000000000D2 -S315400444A000000000000000000000000000000000C2 -S315400444B000000000000000000000000000000000B2 -S315400444C000000000000000000000000000000000A2 -S315400444D00000000000000000000000000000000092 -S315400444E00000000000000000000000000000000082 -S315400444F00000000000000000000000000000000072 -S315400445000000000000000000000000000000000061 -S315400445100000000000000000000000000000000051 -S315400445200000000000000000000000000000000041 -S315400445300000000000000000000000000000000031 -S315400445400000000000000000000000000000000021 -S315400445500000000000000000000000000000000011 -S315400445600000000000000000000000000000000001 -S3154004457000000000000000000000000000000000F1 -S3154004458000000000000000000000000000000000E1 -S3154004459000000000000000000000000000000000D1 -S315400445A000000000000000000000000000000000C1 -S315400445B000000000000000000000000000000000B1 -S315400445C000000000000000000000000000000000A1 -S315400445D00000000000000000000000000000000091 -S315400445E00000000000000000000000000000000081 -S315400445F00000000000000000000000000000000071 -S315400446000000000000000000000000000000000060 -S315400446100000000000000000000000000000000050 -S315400446200000000000000000000000000000000040 -S315400446300000000000000000000000000000000030 -S315400446400000000000000000000000000000000020 -S315400446500000000000000000000000000000000010 -S315400446600000000000000000000000000000000000 -S3154004467000000000000000000000000000000000F0 -S3154004468000000000000000000000000000000000E0 -S3154004469000000000000000000000000000000000D0 -S315400446A000000000000000000000000000000000C0 -S315400446B000000000000000000000000000000000B0 -S315400446C000000000000000000000000000000000A0 -S315400446D00000000000000000000000000000000090 -S315400446E00000000000000000000000000000000080 -S315400446F00000000000000000000000000000000070 -S31540044700000000000000000000000000000000005F -S31540044710000000000000000000000000000000004F -S31540044720000000000000000000000000000000003F -S31540044730000000000000000000000000000000002F -S31540044740000000000000000000000000000000001F -S31540044750000000000000000000000000000000000F -S3154004476000000000000000000000000000000000FF -S3154004477000000000000000000000000000000000EF -S3154004478000000000000000000000000000000000DF -S3154004479000000000000000000000000000000000CF -S315400447A000000000000000000000000000000000BF -S315400447B000000000000000000000000000000000AF -S315400447C0000000000000000000000000000000009F -S315400447D0000000000000000000000000000000008F -S315400447E0000000000000000000000000000000007F -S315400447F0000000000000000000000000000000006F -S31540044800000000000000000000000000000000005E -S31540044810000000000000000000000000000000004E -S31540044820000000000000000000000000000000003E -S31540044830000000000000000000000000000000002E -S31540044840000000000000000000000000000000001E -S31540044850000000000000000000000000000000000E -S3154004486000000000000000000000000000000000FE -S3154004487000000000000000000000000000000000EE -S3154004488000000000000000000000000000000000DE -S3154004489000000000000000000000000000000000CE -S315400448A000000000000000000000000000000000BE -S315400448B000000000000000000000000000000000AE -S315400448C0000000000000000000000000000000009E -S315400448D0000000000000000000000000000000008E -S315400448E0000000000000000000000000000000007E -S315400448F0000000000000000000000000000000006E -S31540044900000000000000000000000000000000005D -S31540044910000000000000000000000000000000004D -S31540044920000000000000000000000000000000003D -S31540044930000000000000000000000000000000002D -S31540044940000000000000000000000000000000001D -S31540044950000000000000000000000000000000000D -S3154004496000000000000000000000000000000000FD -S3154004497000000000000000000000000000000000ED -S3154004498000000000000000000000000000000000DD -S3154004499000000000000000000000000000000000CD -S315400449A000000000000000000000000000000000BD -S315400449B000000000000000000000000000000000AD -S315400449C0000000000000000000000000000000009D -S315400449D0000000000000000000000000000000008D -S315400449E0000000000000000000000000000000007D -S315400449F0000000000000000000000000000000006D -S31540044A00000000000000000000000000000000005C -S31540044A10000000000000000000000000000000004C -S31540044A20000000000000000000000000000000003C -S31540044A30000000000000000000000000000000002C -S31540044A40000000000000000000000000000000001C -S31540044A50000000000000000000000000000000000C -S31540044A6000000000000000000000000000000000FC -S31540044A7000000000000000000000000000000000EC -S31540044A8000000000000000000000000000000000DC -S31540044A9000000000000000000000000000000000CC -S31540044AA000000000000000000000000000000000BC -S31540044AB000000000000000000000000000000000AC -S31540044AC0000000000000000000000000000000009C -S31540044AD0000000000000000000000000000000008C -S31540044AE0000000000000000000000000000000007C -S31540044AF0000000000000000000000000000000006C -S31540044B00000000000000000000000000000000005B -S31540044B10000000000000000000000000000000004B -S31540044B20000000000000000000000000000000003B -S31540044B30000000000000000000000000000000002B -S31540044B40000000000000000000000000000000001B -S31540044B50000000000000000000000000000000000B -S31540044B6000000000000000000000000000000000FB -S31540044B7000000000000000000000000000000000EB -S31540044B8000000000000000000000000000000000DB -S31540044B9000000000000000000000000000000000CB -S31540044BA000000000000000000000000000000000BB -S31540044BB000000000000000000000000000000000AB -S31540044BC0000000000000000000000000000000009B -S31540044BD0000000000000000000000000000000008B -S31540044BE0000000000000000000000000000000007B -S31540044BF0000000000000000000000000000000006B -S31540044C00000000000000000000000000000000005A -S31540044C10000000000000000000000000000000004A -S31540044C20000000000000000000000000000000003A -S31540044C30000000000000000000000000000000002A -S31540044C40000000000000000000000000000000001A -S31540044C50000000000000000000000000000000000A -S31540044C6000000000000000000000000000000000FA -S31540044C7000000000000000000000000000000000EA -S31540044C8000000000000000000000000000000000DA -S31540044C9000000000000000000000000000000000CA -S31540044CA000000000000000000000000000000000BA -S31540044CB000000000000000000000000000000000AA -S31540044CC0000000000000000000000000000000009A -S31540044CD0000000000000000000000000000000008A -S31540044CE0000000000000000000000000000000007A -S31540044CF0000000000000000000000000000000006A -S31540044D000000000000000000000000000000000059 -S31540044D100000000000000000000000000000000049 -S31540044D200000000000000000000000000000000039 -S31540044D300000000000000000000000000000000029 -S31540044D400000000000000000000000000000000019 -S31540044D500000000000000000000000000000000009 -S31540044D6000000000000000000000000000000000F9 -S31540044D7000000000000000000000000000000000E9 -S31540044D8000000000000000000000000000000000D9 -S31540044D9000000000000000000000000000000000C9 -S31540044DA000000000000000000000000000000000B9 -S31540044DB000000000000000000000000000000000A9 -S31540044DC00000000000000000000000000000000099 -S31540044DD00000000000000000000000000000000089 -S31540044DE00000000000000000000000000000000079 -S31540044DF00000000000000000000000000000000069 -S31540044E000000000000000000000000000000000058 -S31540044E100000000000000000000000000000000048 -S31540044E200000000000000000000000000000000038 -S31540044E300000000000000000000000000000000028 -S31540044E400000000000000000000000000000000018 -S31540044E500000000000000000000000000000000008 -S31540044E6000000000000000000000000000000000F8 -S31540044E7000000000000000000000000000000000E8 -S31540044E8000000000000000000000000000000000D8 -S31540044E9000000000000000000000000000000000C8 -S31540044EA000000000000000000000000000000000B8 -S31540044EB000000000000000000000000000000000A8 -S31540044EC00000000000000000000000000000000098 -S31540044ED00000000000000000000000000000000088 -S31540044EE00000000000000000000000000000000078 -S31540044EF00000000000000000000000000000000068 -S31540044F000000000000000000000000000000000057 -S31540044F100000000000000000000000000000000047 -S31540044F200000000000000000000000000000000037 -S31540044F300000000000000000000000000000000027 -S31540044F400000000000000000000000000000000017 -S31540044F500000000000000000000000000000000007 -S31540044F6000000000000000000000000000000000F7 -S31540044F7000000000000000000000000000000000E7 -S31540044F8000000000000000000000000000000000D7 -S31540044F9000000000000000000000000000000000C7 -S31540044FA000000000000000000000000000000000B7 -S31540044FB000000000000000000000000000000000A7 -S31540044FC00000000000000000000000000000000097 -S31540044FD00000000000000000000000000000000087 -S31540044FE00000000000000000000000000000000077 -S31540044FF00000000000000000000000000000000067 -S315400450000000000000000000000000000000000056 -S315400450100000000000000000000000000000000046 -S315400450200000000000000000000000000000000036 -S315400450300000000000000000000000000000000026 -S315400450400000000000000000000000000000000016 -S315400450500000000000000000000000000000000006 -S3154004506000000000000000000000000000000000F6 -S3154004507000000000000000000000000000000000E6 -S3154004508000000000000000000000000000000000D6 -S3154004509000000000000000000000000000000000C6 -S315400450A000000000000000000000000000000000B6 -S315400450B000000000000000000000000000000000A6 -S315400450C00000000000000000000000000000000096 -S315400450D00000000000000000000000000000000086 -S315400450E00000000000000000000000000000000076 -S315400450F00000000000000000000000000000000066 -S315400451000000000000000000000000000000000055 -S315400451100000000000000000000000000000000045 -S315400451200000000000000000000000000000000035 -S315400451300000000000000000000000000000000025 -S315400451400000000000000000000000000000000015 -S315400451500000000000000000000000000000000005 -S3154004516000000000000000000000000000000000F5 -S3154004517000000000000000000000000000000000E5 -S3154004518000000000000000000000000000000000D5 -S3154004519000000000000000000000000000000000C5 -S315400451A000000000000000000000000000000000B5 -S315400451B000000000000000000000000000000000A5 -S315400451C00000000000000000000000000000000095 -S315400451D00000000000000000000000000000000085 -S315400451E00000000000000000000000000000000075 -S315400451F00000000000000000000000000000000065 -S315400452000000000000000000000000000000000054 -S315400452100000000000000000000000000000000044 -S315400452200000000000000000000000000000000034 -S315400452300000000000000000000000000000000024 -S315400452400000000000000000000000000000000014 -S315400452500000000000000000000000000000000004 -S3154004526000000000000000000000000000000000F4 -S3154004527000000000000000000000000000000000E4 -S3154004528000000000000000000000000000000000D4 -S3154004529000000000000000000000000000000000C4 -S315400452A000000000000000000000000000000000B4 -S315400452B000000000000000000000000000000000A4 -S315400452C00000000000000000000000000000000094 -S315400452D00000000000000000000000000000000084 -S315400452E00000000000000000000000000000000074 -S315400452F00000000000000000000000000000000064 -S315400453000000000000000000000000000000000053 -S315400453100000000000000000000000000000000043 -S315400453200000000000000000000000000000000033 -S315400453300000000000000000000000000000000023 -S315400453400000000000000000000000000000000013 -S315400453500000000000000000000000000000000003 -S3154004536000000000000000000000000000000000F3 -S3154004537000000000000000000000000000000000E3 -S3154004538000000000000000000000000000000000D3 -S3154004539000000000000000000000000000000000C3 -S315400453A000000000000000000000000000000000B3 -S315400453B000000000000000000000000000000000A3 -S315400453C00000000000000000000000000000000093 -S315400453D00000000000000000000000000000000083 -S315400453E00000000000000000000000000000000073 -S315400453F00000000000000000000000000000000063 -S315400454000000000000000000000000000000000052 -S315400454100000000000000000000000000000000042 -S315400454200000000000000000000000000000000032 -S315400454300000000000000000000000000000000022 -S315400454400000000000000000000000000000000012 -S315400454500000000000000000000000000000000002 -S3154004546000000000000000000000000000000000F2 -S3154004547000000000000000000000000000000000E2 -S3154004548000000000000000000000000000000000D2 -S3154004549000000000000000000000000000000000C2 -S315400454A000000000000000000000000000000000B2 -S315400454B000000000000000000000000000000000A2 -S315400454C00000000000000000000000000000000092 -S315400454D00000000000000000000000000000000082 -S315400454E00000000000000000000000000000000072 -S315400454F00000000000000000000000000000000062 -S315400455000000000000000000000000000000000051 -S315400455100000000000000000000000000000000041 -S315400455200000000000000000000000000000000031 -S315400455300000000000000000000000000000000021 -S315400455400000000000000000000000000000000011 -S315400455500000000000000000000000000000000001 -S3154004556000000000000000000000000000000000F1 -S3154004557000000000000000000000000000000000E1 -S3154004558000000000000000000000000000000000D1 -S3154004559000000000000000000000000000000000C1 -S315400455A000000000000000000000000000000000B1 -S315400455B000000000000000000000000000000000A1 -S315400455C00000000000000000000000000000000091 -S315400455D00000000000000000000000000000000081 -S315400455E00000000000000000000000000000000071 -S315400455F00000000000000000000000000000000061 -S315400456000000000000000000000000000000000050 -S315400456100000000000000000000000000000000040 -S315400456200000000000000000000000000000000030 -S315400456300000000000000000000000000000000020 -S315400456400000000000000000000000000000000010 -S315400456500000000000000000000000000000000000 -S3154004566000000000000000000000000000000000F0 -S3154004567000000000000000000000000000000000E0 -S3154004568000000000000000000000000000000000D0 -S3154004569000000000000000000000000000000000C0 -S315400456A000000000000000000000000000000000B0 -S315400456B000000000000000000000000000000000A0 -S315400456C00000000000000000000000000000000090 -S315400456D00000000000000000000000000000000080 -S315400456E00000000000000000000000000000000070 -S315400456F00000000000000000000000000000000060 -S31540045700000000000000000000000000000000004F -S31540045710000000000000000000000000000000003F -S31540045720000000000000000000000000000000002F -S31540045730000000000000000000000000000000001F -S31540045740000000000000000000000000000000000F -S3154004575000000000000000000000000000000000FF -S3154004576000000000000000000000000000000000EF -S3154004577000000000000000000000000000000000DF -S3154004578000000000000000000000000000000000CF -S3154004579000000000000000000000000000000000BF -S315400457A000000000000000000000000000000000AF -S315400457B0000000000000000000000000000000009F -S315400457C0000000000000000000000000000000008F -S315400457D0000000000000000000000000000000007F -S315400457E0000000000000000000000000000000006F -S315400457F0000000000000000000000000000000005F -S31540045800000000000000000000000000000000004E -S31540045810000000000000000000000000000000003E -S31540045820000000000000000000000000000000002E -S31540045830000000000000000000000000000000001E -S31540045840000000000000000000000000000000000E -S3154004585000000000000000000000000000000000FE -S3154004586000000000000000000000000000000000EE -S3154004587000000000000000000000000000000000DE -S3154004588000000000000000000000000000000000CE -S3154004589000000000000000000000000000000000BE -S315400458A000000000000000000000000000000000AE -S315400458B0000000000000000000000000000000009E -S315400458C0000000000000000000000000000000008E -S315400458D0000000000000000000000000000000007E -S315400458E0000000000000000000000000000000006E -S315400458F0000000000000000000000000000000005E -S31540045900000000000000000000000000000000004D -S31540045910000000000000000000000000000000003D -S31540045920000000000000000000000000000000002D -S31540045930000000000000000000000000000000001D -S31540045940000000000000000000000000000000000D -S3154004595000000000000000000000000000000000FD -S3154004596000000000000000000000000000000000ED -S3154004597000000000000000000000000000000000DD -S3154004598000000000000000000000000000000000CD -S3154004599000000000000000000000000000000000BD -S315400459A000000000000000000000000000000000AD -S315400459B0000000000000000000000000000000009D -S315400459C0000000000000000000000000000000008D -S315400459D0000000000000000000000000000000007D -S315400459E0000000000000000000000000000000006D -S315400459F0000000000000000000000000000000005D -S31540045A00000000000000000000000000000000004C -S31540045A10000000000000000000000000000000003C -S31540045A20000000000000000000000000000000002C -S31540045A30000000000000000000000000000000001C -S31540045A40000000000000000000000000000000000C -S31540045A5000000000000000000000000000000000FC -S31540045A6000000000000000000000000000000000EC -S31540045A7000000000000000000000000000000000DC -S31540045A8000000000000000000000000000000000CC -S31540045A9000000000000000000000000000000000BC -S31540045AA000000000000000000000000000000000AC -S31540045AB0000000000000000000000000000000009C -S31540045AC0000000000000000000000000000000008C -S31540045AD0000000000000000000000000000000007C -S31540045AE0000000000000000000000000000000006C -S31540045AF0000000000000000000000000000000005C -S31540045B00000000000000000000000000000000004B -S31540045B10000000000000000000000000000000003B -S31540045B20000000000000000000000000000000002B -S31540045B30000000000000000000000000000000001B -S31540045B40000000000000000000000000000000000B -S31540045B5000000000000000000000000000000000FB -S31540045B6000000000000000000000000000000000EB -S31540045B7000000000000000000000000000000000DB -S31540045B8000000000000000000000000000000000CB -S31540045B9000000000000000000000000000000000BB -S31540045BA000000000000000000000000000000000AB -S31540045BB0000000000000000000000000000000009B -S31540045BC0000000000000000000000000000000008B -S31540045BD0000000000000000000000000000000007B -S31540045BE0000000000000000000000000000000006B -S31540045BF0000000000000000000000000000000005B -S31540045C00000000000000000000000000000000004A -S31540045C10000000000000000000000000000000003A -S31540045C20000000000000000000000000000000002A -S31540045C30000000000000000000000000000000001A -S31540045C40000000000000000000000000000000000A -S31540045C5000000000000000000000000000000000FA -S31540045C6000000000000000000000000000000000EA -S31540045C7000000000000000000000000000000000DA -S31540045C8000000000000000000000000000000000CA -S31540045C9000000000000000000000000000000000BA -S31540045CA000000000000000000000000000000000AA -S31540045CB0000000000000000000000000000000009A -S31540045CC0000000000000000000000000000000008A -S31540045CD0000000000000000000000000000000007A -S31540045CE0000000000000000000000000000000006A -S31540045CF0000000000000000000000000000000005A -S31540045D000000000000000000000000000000000049 -S31540045D100000000000000000000000000000000039 -S31540045D200000000000000000000000000000000029 -S31540045D300000000000000000000000000000000019 -S31540045D400000000000000000000000000000000009 -S31540045D5000000000000000000000000000000000F9 -S31540045D6000000000000000000000000000000000E9 -S31540045D7000000000000000000000000000000000D9 -S31540045D8000000000000000000000000000000000C9 -S31540045D9000000000000000000000000000000000B9 -S31540045DA000000000000000000000000000000000A9 -S31540045DB00000000000000000000000000000000099 -S31540045DC00000000000000000000000000000000089 -S31540045DD00000000000000000000000000000000079 -S31540045DE00000000000000000000000000000000069 -S31540045DF00000000000000000000000000000000059 -S31540045E000000000000000000000000000000000048 -S31540045E100000000000000000000000000000000038 -S31540045E200000000000000000000000000000000028 -S31540045E300000000000000000000000000000000018 -S31540045E400000000000000000000000000000000008 -S31540045E5000000000000000000000000000000000F8 -S31540045E6000000000000000000000000000000000E8 -S31540045E7000000000000000000000000000000000D8 -S31540045E8000000000000000000000000000000000C8 -S31540045E9000000000000000000000000000000000B8 -S31540045EA000000000000000000000000000000000A8 -S31540045EB00000000000000000000000000000000098 -S31540045EC00000000000000000000000000000000088 -S31540045ED00000000000000000000000000000000078 -S31540045EE00000000000000000000000000000000068 -S31540045EF00000000000000000000000000000000058 -S31540045F000000000000000000000000000000000047 -S31540045F100000000000000000000000000000000037 -S31540045F200000000000000000000000000000000027 -S31540045F300000000000000000000000000000000017 -S31540045F400000000000000000000000000000000007 -S31540045F5000000000000000000000000000000000F7 -S31540045F6000000000000000000000000000000000E7 -S31540045F7000000000000000000000000000000000D7 -S31540045F8000000000000000000000000000000000C7 -S31540045F9000000000000000000000000000000000B7 -S31540045FA000000000000000000000000000000000A7 -S31540045FB00000000000000000000000000000000097 -S31540045FC00000000000000000000000000000000087 -S31540045FD00000000000000000000000000000000077 -S31540045FE00000000000000000000000000000000067 -S31540045FF00000000000000000000000000000000057 -S315400460000000000000000000000000000000000046 -S315400460100000000000000000000000000000000036 -S315400460200000000000000000000000000000000026 -S315400460300000000000000000000000000000000016 -S315400460400000000000000000000000000000000006 -S3154004605000000000000000000000000000000000F6 -S3154004606000000000000000000000000000000000E6 -S3154004607000000000000000000000000000000000D6 -S3154004608000000000000000000000000000000000C6 -S3154004609000000000000000000000000000000000B6 -S315400460A000000000000000000000000000000000A6 -S315400460B00000000000000000000000000000000096 -S315400460C00000000000000000000000000000000086 -S315400460D00000000000000000000000000000000076 -S315400460E00000000000000000000000000000000066 -S315400460F00000000000000000000000000000000056 -S315400461000000000000000000000000000000000045 -S315400461100000000000000000000000000000000035 -S315400461200000000000000000000000000000000025 -S315400461300000000000000000000000000000000015 -S315400461400000000000000000000000000000000005 -S3154004615000000000000000000000000000000000F5 -S3154004616000000000000000000000000000000000E5 -S3154004617000000000000000000000000000000000D5 -S3154004618000000000000000000000000000000000C5 -S3154004619000000000000000000000000000000000B5 -S315400461A000000000000000000000000000000000A5 -S315400461B00000000000000000000000000000000095 -S315400461C00000000000000000000000000000000085 -S315400461D00000000000000000000000000000000075 -S315400461E00000000000000000000000000000000065 -S315400461F00000000000000000000000000000000055 -S315400462000000000000000000000000000000000044 -S315400462100000000000000000000000000000000034 -S315400462200000000000000000000000000000000024 -S315400462300000000000000000000000000000000014 -S315400462400000000000000000000000000000000004 -S3154004625000000000000000000000000000000000F4 -S3154004626000000000000000000000000000000000E4 -S3154004627000000000000000000000000000000000D4 -S3154004628000000000000000000000000000000000C4 -S3154004629000000000000000000000000000000000B4 -S315400462A000000000000000000000000000000000A4 -S315400462B00000000000000000000000000000000094 -S315400462C00000000000000000000000000000000084 -S315400462D00000000000000000000000000000000074 -S315400462E00000000000000000000000000000000064 -S315400462F00000000000000000000000000000000054 -S315400463000000000000000000000000000000000043 -S315400463100000000000000000000000000000000033 -S315400463200000000000000000000000000000000023 -S315400463300000000000000000000000000000000013 -S315400463400000000000000000000000000000000003 -S3154004635000000000000000000000000000000000F3 -S3154004636000000000000000000000000000000000E3 -S3154004637000000000000000000000000000000000D3 -S3154004638000000000000000000000000000000000C3 -S3154004639000000000000000000000000000000000B3 -S315400463A000000000000000000000000000000000A3 -S315400463B00000000000000000000000000000000093 -S315400463C00000000000000000000000000000000083 -S315400463D00000000000000000000000000000000073 -S315400463E00000000000000000000000000000000063 -S315400463F00000000000000000000000000000000053 -S315400464000000000000000000000000000000000042 -S315400464100000000000000000000000000000000032 -S315400464200000000000000000000000000000000022 -S315400464300000000000000000000000000000000012 -S315400464400000000000000000000000000000000002 -S3154004645000000000000000000000000000000000F2 -S3154004646000000000000000000000000000000000E2 -S3154004647000000000000000000000000000000000D2 -S3154004648000000000000000000000000000000000C2 -S3154004649000000000000000000000000000000000B2 -S315400464A000000000000000000000000000000000A2 -S315400464B00000000000000000000000000000000092 -S315400464C00000000000000000000000000000000082 -S315400464D00000000000000000000000000000000072 -S315400464E00000000000000000000000000000000062 -S315400464F00000000000000000000000000000000052 -S315400465000000000000000000000000000000000041 -S315400465100000000000000000000000000000000031 -S315400465200000000000000000000000000000000021 -S315400465300000000000000000000000000000000011 -S315400465400000000000000000000000000000000001 -S3154004655000000000000000000000000000000000F1 -S3154004656000000000000000000000000000000000E1 -S3154004657000000000000000000000000000000000D1 -S3154004658000000000000000000000000000000000C1 -S3154004659000000000000000000000000000000000B1 -S315400465A000000000000000000000000000000000A1 -S315400465B00000000000000000000000000000000091 -S315400465C00000000000000000000000000000000081 -S315400465D00000000000000000000000000000000071 -S315400465E00000000000000000000000000000000061 -S315400465F00000000000000000000000000000000051 -S315400466000000000000000000000000000000000040 -S315400466100000000000000000000000000000000030 -S315400466200000000000000000000000000000000020 -S315400466300000000000000000000000000000000010 -S315400466400000000000000000000000000000000000 -S3154004665000000000000000000000000000000000F0 -S3154004666000000000000000000000000000000000E0 -S3154004667000000000000000000000000000000000D0 -S3154004668000000000000000000000000000000000C0 -S3154004669000000000000000000000000000000000B0 -S315400466A000000000000000000000000000000000A0 -S315400466B00000000000000000000000000000000090 -S315400466C00000000000000000000000000000000080 -S315400466D00000000000000000000000000000000070 -S315400466E00000000000000000000000000000000060 -S315400466F00000000000000000000000000000000050 -S31540046700000000000000000000000000000000003F -S31540046710000000000000000000000000000000002F -S31540046720000000000000000000000000000000001F -S31540046730000000000000000000000000000000000F -S3154004674000000000000000000000000000000000FF -S3154004675000000000000000000000000000000000EF -S3154004676000000000000000000000000000000000DF -S3154004677000000000000000000000000000000000CF -S3154004678000000000000000000000000000000000BF -S3154004679000000000000000000000000000000000AF -S315400467A0000000000000000000000000000000009F -S315400467B0000000000000000000000000000000008F -S315400467C0000000000000000000000000000000007F -S315400467D0000000000000000000000000000000006F -S315400467E0000000000000000000000000000000005F -S315400467F0000000000000000000000000000000004F -S31540046800000000000000000000000000000000003E -S31540046810000000000000000000000000000000002E -S31540046820000000000000000000000000000000001E -S31540046830000000000000000000000000000000000E -S3154004684000000000000000000000000000000000FE -S3154004685000000000000000000000000000000000EE -S3154004686000000000000000000000000000000000DE -S3154004687000000000000000000000000000000000CE -S3154004688000000000000000000000000000000000BE -S3154004689000000000000000000000000000000000AE -S315400468A0000000000000000000000000000000009E -S315400468B0000000000000000000000000000000008E -S315400468C0000000000000000000000000000000007E -S315400468D0000000000000000000000000000000006E -S315400468E0000000000000000000000000000000005E -S315400468F0000000000000000000000000000000004E -S31540046900000000000000000000000000000000003D -S31540046910000000000000000000000000000000002D -S31540046920000000000000000000000000000000001D -S31540046930000000000000000000000000000000000D -S3154004694000000000000000000000000000000000FD -S3154004695000000000000000000000000000000000ED -S3154004696000000000000000000000000000000000DD -S3154004697000000000000000000000000000000000CD -S3154004698000000000000000000000000000000000BD -S3154004699000000000000000000000000000000000AD -S315400469A0000000000000000000000000000000009D -S315400469B0000000000000000000000000000000008D -S315400469C0000000000000000000000000000000007D -S315400469D0000000000000000000000000000000006D -S315400469E0000000000000000000000000000000005D -S315400469F0000000000000000000000000000000004D -S31540046A00000000000000000000000000000000003C -S31540046A10000000000000000000000000000000002C -S31540046A20000000000000000000000000000000001C -S31540046A30000000000000000000000000000000000C -S31540046A4000000000000000000000000000000000FC -S31540046A5000000000000000000000000000000000EC -S31540046A6000000000000000000000000000000000DC -S31540046A7000000000000000000000000000000000CC -S31540046A8000000000000000000000000000000000BC -S31540046A9000000000000000000000000000000000AC -S31540046AA0000000000000000000000000000000009C -S31540046AB0000000000000000000000000000000008C -S31540046AC0000000000000000000000000000000007C -S31540046AD0000000000000000000000000000000006C -S31540046AE0000000000000000000000000000000005C -S31540046AF0000000000000000000000000000000004C -S31540046B00000000000000000000000000000000003B -S31540046B10000000000000000000000000000000002B -S31540046B20000000000000000000000000000000001B -S31540046B30000000000000000000000000000000000B -S31540046B4000000000000000000000000000000000FB -S31540046B5000000000000000000000000000000000EB -S31540046B6000000000000000000000000000000000DB -S31540046B7000000000000000000000000000000000CB -S31540046B8000000000000000000000000000000000BB -S31540046B9000000000000000000000000000000000AB -S31540046BA0000000000000000000000000000000009B -S31540046BB0000000000000000000000000000000008B -S31540046BC0000000000000000000000000000000007B -S31540046BD0000000000000000000000000000000006B -S31540046BE0000000000000000000000000000000005B -S31540046BF0000000000000000000000000000000004B -S31540046C00000000000000000000000000000000003A -S31540046C10000000000000000000000000000000002A -S31540046C20000000000000000000000000000000001A -S31540046C30000000000000000000000000000000000A -S31540046C4000000000000000000000000000000000FA -S31540046C5000000000000000000000000000000000EA -S31540046C6000000000000000000000000000000000DA -S31540046C7000000000000000000000000000000000CA -S31540046C8000000000000000000000000000000000BA -S31540046C9000000000000000000000000000000000AA -S31540046CA0000000000000000000000000000000009A -S31540046CB0000000000000000000000000000000008A -S31540046CC0000000000000000000000000000000007A -S31540046CD0000000000000000000000000000000006A -S31540046CE0000000000000000000000000000000005A -S31540046CF0000000000000000000000000000000004A -S31540046D000000000000000000000000000000000039 -S31540046D100000000000000000000000000000000029 -S31540046D200000000000000000000000000000000019 -S31540046D300000000000000000000000000000000009 -S31540046D4000000000000000000000000000000000F9 -S31540046D5000000000000000000000000000000000E9 -S31540046D6000000000000000000000000000000000D9 -S31540046D7000000000000000000000000000000000C9 -S31540046D8000000000000000000000000000000000B9 -S31540046D9000000000000000000000000000000000A9 -S31540046DA00000000000000000000000000000000099 -S31540046DB00000000000000000000000000000000089 -S31540046DC00000000000000000000000000000000079 -S31540046DD00000000000000000000000000000000069 -S31540046DE00000000000000000000000000000000059 -S31540046DF00000000000000000000000000000000049 -S31540046E000000000000000000000000000000000038 -S31540046E100000000000000000000000000000000028 -S31540046E200000000000000000000000000000000018 -S31540046E300000000000000000000000000000000008 -S31540046E4000000000000000000000000000000000F8 -S31540046E5000000000000000000000000000000000E8 -S31540046E6000000000000000000000000000000000D8 -S31540046E7000000000000000000000000000000000C8 -S31540046E8000000000000000000000000000000000B8 -S31540046E9000000000000000000000000000000000A8 -S31540046EA00000000000000000000000000000000098 -S31540046EB00000000000000000000000000000000088 -S31540046EC00000000000000000000000000000000078 -S31540046ED00000000000000000000000000000000068 -S31540046EE00000000000000000000000000000000058 -S31540046EF00000000000000000000000000000000048 -S31540046F000000000000000000000000000000000037 -S31540046F100000000000000000000000000000000027 -S31540046F200000000000000000000000000000000017 -S31540046F300000000000000000000000000000000007 -S31540046F4000000000000000000000000000000000F7 -S31540046F5000000000000000000000000000000000E7 -S31540046F6000000000000000000000000000000000D7 -S31540046F7000000000000000000000000000000000C7 -S31540046F8000000000000000000000000000000000B7 -S31540046F9000000000000000000000000000000000A7 -S31540046FA00000000000000000000000000000000097 -S31540046FB00000000000000000000000000000000087 -S31540046FC00000000000000000000000000000000077 -S31540046FD00000000000000000000000000000000067 -S31540046FE00000000000000000000000000000000057 -S31540046FF00000000000000000000000000000000047 -S315400470000000000000000000000000000000000036 -S315400470100000000000000000000000000000000026 -S315400470200000000000000000000000000000000016 -S315400470300000000000000000000000000000000006 -S3154004704000000000000000000000000000000000F6 -S3154004705000000000000000000000000000000000E6 -S3154004706000000000000000000000000000000000D6 -S3154004707000000000000000000000000000000000C6 -S3154004708000000000000000000000000000000000B6 -S3154004709000000000000000000000000000000000A6 -S315400470A00000000000000000000000000000000096 -S315400470B00000000000000000000000000000000086 -S315400470C00000000000000000000000000000000076 -S315400470D00000000000000000000000000000000066 -S315400470E00000000000000000000000000000000056 -S315400470F00000000000000000000000000000000046 -S315400471000000000000000000000000000000000035 -S315400471100000000000000000000000000000000025 -S315400471200000000000000000000000000000000015 -S315400471300000000000000000000000000000000005 -S3154004714000000000000000000000000000000000F5 -S3154004715000000000000000000000000000000000E5 -S3154004716000000000000000000000000000000000D5 -S3154004717000000000000000000000000000000000C5 -S3154004718000000000000000000000000000000000B5 -S3154004719000000000000000000000000000000000A5 -S315400471A00000000000000000000000000000000095 -S315400471B00000000000000000000000000000000085 -S315400471C00000000000000000000000000000000075 -S315400471D00000000000000000000000000000000065 -S315400471E00000000000000000000000000000000055 -S315400471F00000000000000000000000000000000045 -S315400472000000000000000000000000000000000034 -S315400472100000000000000000000000000000000024 -S315400472200000000000000000000000000000000014 -S315400472300000000000000000000000000000000004 -S3154004724000000000000000000000000000000000F4 -S3154004725000000000000000000000000000000000E4 -S3154004726000000000000000000000000000000000D4 -S3154004727000000000000000000000000000000000C4 -S3154004728000000000000000000000000000000000B4 -S3154004729000000000000000000000000000000000A4 -S315400472A00000000000000000000000000000000094 -S315400472B00000000000000000000000000000000084 -S315400472C00000000000000000000000000000000074 -S315400472D00000000000000000000000000000000064 -S315400472E00000000000000000000000000000000054 -S315400472F00000000000000000000000000000000044 -S315400473000000000000000000000000000000000033 -S315400473100000000000000000000000000000000023 -S315400473200000000000000000000000000000000013 -S315400473300000000000000000000000000000000003 -S3154004734000000000000000000000000000000000F3 -S3154004735000000000000000000000000000000000E3 -S3154004736000000000000000000000000000000000D3 -S3154004737000000000000000000000000000000000C3 -S3154004738000000000000000000000000000000000B3 -S3154004739000000000000000000000000000000000A3 -S315400473A00000000000000000000000000000000093 -S315400473B00000000000000000000000000000000083 -S315400473C00000000000000000000000000000000073 -S315400473D00000000000000000000000000000000063 -S315400473E00000000000000000000000000000000053 -S315400473F00000000000000000000000000000000043 -S315400474000000000000000000000000000000000032 -S315400474100000000000000000000000000000000022 -S315400474200000000000000000000000000000000012 -S315400474300000000000000000000000000000000002 -S3154004744000000000000000000000000000000000F2 -S3154004745000000000000000000000000000000000E2 -S3154004746000000000000000000000000000000000D2 -S3154004747000000000000000000000000000000000C2 -S3154004748000000000000000000000000000000000B2 -S3154004749000000000000000000000000000000000A2 -S315400474A00000000000000000000000000000000092 -S315400474B00000000000000000000000000000000082 -S315400474C00000000000000000000000000000000072 -S315400474D00000000000000000000000000000000062 -S315400474E00000000000000000000000000000000052 -S315400474F00000000000000000000000000000000042 -S315400475000000000000000000000000000000000031 -S315400475100000000000000000000000000000000021 -S315400475200000000000000000000000000000000011 -S315400475300000000000000000000000000000000001 -S3154004754000000000000000000000000000000000F1 -S3154004755000000000000000000000000000000000E1 -S3154004756000000000000000000000000000000000D1 -S3154004757000000000000000000000000000000000C1 -S3154004758000000000000000000000000000000000B1 -S3154004759000000000000000000000000000000000A1 -S315400475A00000000000000000000000000000000091 -S315400475B00000000000000000000000000000000081 -S315400475C00000000000000000000000000000000071 -S315400475D00000000000000000000000000000000061 -S315400475E00000000000000000000000000000000051 -S315400475F00000000000000000000000000000000041 -S315400476000000000000000000000000000000000030 -S315400476100000000000000000000000000000000020 -S315400476200000000000000000000000000000000010 -S315400476300000000000000000000000000000000000 -S3154004764000000000000000000000000000000000F0 -S3154004765000000000000000000000000000000000E0 -S3154004766000000000000000000000000000000000D0 -S3154004767000000000000000000000000000000000C0 -S3154004768000000000000000000000000000000000B0 -S3154004769000000000000000000000000000000000A0 -S315400476A00000000000000000000000000000000090 -S315400476B00000000000000000000000000000000080 -S315400476C00000000000000000000000000000000070 -S315400476D00000000000000000000000000000000060 -S315400476E00000000000000000000000000000000050 -S315400476F00000000000000000000000000000000040 -S31540047700000000000000000000000000000000002F -S31540047710000000000000000000000000000000001F -S31540047720000000000000000000000000000000000F -S3154004773000000000000000000000000000000000FF -S3154004774000000000000000000000000000000000EF -S3154004775000000000000000000000000000000000DF -S3154004776000000000000000000000000000000000CF -S3154004777000000000000000000000000000000000BF -S3154004778000000000000000000000000000000000AF -S31540047790000000000000000000000000000000009F -S315400477A0000000000000000000000000000000008F -S315400477B0000000000000000000000000000000007F -S315400477C0000000000000000000000000000000006F -S315400477D0000000000000000000000000000000005F -S315400477E0000000000000000000000000000000004F -S315400477F0000000000000000000000000000000003F -S31540047800000000000000000000000000000000002E -S31540047810000000000000000000000000000000001E -S31540047820000000000000000000000000000000000E -S3154004783000000000000000000000000000000000FE -S3154004784000000000000000000000000000000000EE -S3154004785000000000000000000000000000000000DE -S3154004786000000000000000000000000000000000CE -S3154004787000000000000000000000000000000000BE -S3154004788000000000000000000000000000000000AE -S31540047890000000000000000000000000000000009E -S315400478A0000000000000000000000000000000008E -S315400478B0000000000000000000000000000000007E -S315400478C0000000000000000000000000000000006E -S315400478D0000000000000000000000000000000005E -S315400478E0000000000000000000000000000000004E -S315400478F0000000000000000000000000000000003E -S31540047900000000000000000000000000000000002D -S31540047910000000000000000000000000000000001D -S31540047920000000000000000000000000000000000D -S3154004793000000000000000000000000000000000FD -S3154004794000000000000000000000000000000000ED -S3154004795000000000000000000000000000000000DD -S3154004796000000000000000000000000000000000CD -S3154004797000000000000000000000000000000000BD -S3154004798000000000000000000000000000000000AD -S31540047990000000000000000000000000000000009D -S315400479A0000000000000000000000000000000008D -S315400479B0000000000000000000000000000000007D -S315400479C0000000000000000000000000000000006D -S315400479D0000000000000000000000000000000005D -S315400479E0000000000000000000000000000000004D -S315400479F0000000000000000000000000000000003D -S31540047A00000000000000000000000000000000002C -S31540047A10000000000000000000000000000000001C -S31540047A20000000000000000000000000000000000C -S31540047A3000000000000000000000000000000000FC -S31540047A4000000000000000000000000000000000EC -S31540047A5000000000000000000000000000000000DC -S31540047A6000000000000000000000000000000000CC -S31540047A7000000000000000000000000000000000BC -S31540047A8000000000000000000000000000000000AC -S31540047A90000000000000000000000000000000009C -S31540047AA0000000000000000000000000000000008C -S31540047AB0000000000000000000000000000000007C -S31540047AC0000000000000000000000000000000006C -S31540047AD0000000000000000000000000000000005C -S31540047AE0000000000000000000000000000000004C -S31540047AF0000000000000000000000000000000003C -S31540047B00000000000000000000000000000000002B -S31540047B10000000000000000000000000000000001B -S31540047B20000000000000000000000000000000000B -S31540047B3000000000000000000000000000000000FB -S31540047B4000000000000000000000000000000000EB -S31540047B5000000000000000000000000000000000DB -S31540047B6000000000000000000000000000000000CB -S31540047B7000000000000000000000000000000000BB -S31540047B8000000000000000000000000000000000AB -S31540047B90000000000000000000000000000000009B -S31540047BA0000000000000000000000000000000008B -S31540047BB0000000000000000000000000000000007B -S31540047BC0000000000000000000000000000000006B -S31540047BD0000000000000000000000000000000005B -S31540047BE0000000000000000000000000000000004B -S31540047BF0000000000000000000000000000000003B -S31540047C00000000000000000000000000000000002A -S31540047C10000000000000000000000000000000001A -S31540047C20000000000000000000000000000000000A -S31540047C3000000000000000000000000000000000FA -S31540047C4000000000000000000000000000000000EA -S31540047C5000000000000000000000000000000000DA -S31540047C6000000000000000000000000000000000CA -S31540047C7000000000000000000000000000000000BA -S31540047C8000000000000000000000000000000000AA -S31540047C90000000000000000000000000000000009A -S31540047CA0000000000000000000000000000000008A -S31540047CB0000000000000000000000000000000007A -S31540047CC0000000000000000000000000000000006A -S31540047CD0000000000000000000000000000000005A -S31540047CE0000000000000000000000000000000004A -S31540047CF0000000000000000000000000000000003A -S31540047D000000000000000000000000000000000029 -S31540047D100000000000000000000000000000000019 -S31540047D200000000000000000000000000000000009 -S31540047D3000000000000000000000000000000000F9 -S31540047D4000000000000000000000000000000000E9 -S31540047D5000000000000000000000000000000000D9 -S31540047D6000000000000000000000000000000000C9 -S31540047D7000000000000000000000000000000000B9 -S31540047D8000000000000000000000000000000000A9 -S31540047D900000000000000000000000000000000099 -S31540047DA00000000000000000000000000000000089 -S31540047DB00000000000000000000000000000000079 -S31540047DC00000000000000000000000000000000069 -S31540047DD00000000000000000000000000000000059 -S31540047DE00000000000000000000000000000000049 -S31540047DF00000000000000000000000000000000039 -S31540047E000000000000000000000000000000000028 -S31540047E100000000000000000000000000000000018 -S31540047E200000000000000000000000000000000008 -S31540047E3000000000000000000000000000000000F8 -S31540047E4000000000000000000000000000000000E8 -S31540047E5000000000000000000000000000000000D8 -S31540047E6000000000000000000000000000000000C8 -S31540047E7000000000000000000000000000000000B8 -S31540047E8000000000000000000000000000000000A8 -S31540047E900000000000000000000000000000000098 -S31540047EA00000000000000000000000000000000088 -S31540047EB00000000000000000000000000000000078 -S31540047EC00000000000000000000000000000000068 -S31540047ED00000000000000000000000000000000058 -S31540047EE00000000000000000000000000000000048 -S31540047EF00000000000000000000000000000000038 -S31540047F000000000000000000000000000000000027 -S31540047F100000000000000000000000000000000017 -S31540047F200000000000000000000000000000000007 -S31540047F3000000000000000000000000000000000F7 -S31540047F4000000000000000000000000000000000E7 -S31540047F5000000000000000000000000000000000D7 -S31540047F6000000000000000000000000000000000C7 -S31540047F7000000000000000000000000000000000B7 -S31540047F8000000000000000000000000000000000A7 -S31540047F900000000000000000000000000000000097 -S31540047FA00000000000000000000000000000000087 -S31540047FB00000000000000000000000000000000077 -S31540047FC00000000000000000000000000000000067 -S31540047FD00000000000000000000000000000000057 -S31540047FE00000000000000000000000000000000047 -S31540047FF00000000000000000000000000000000037 -S315400480000000000000000000000000000000000026 -S315400480100000000000000000000000000000000016 -S315400480200000000000000000000000000000000006 -S3154004803000000000000000000000000000000000F6 -S3154004804000000000000000000000000000000000E6 -S3154004805000000000000000000000000000000000D6 -S3154004806000000000000000000000000000000000C6 -S3154004807000000000000000000000000000000000B6 -S3154004808000000000000000000000000000000000A6 -S315400480900000000000000000000000000000000096 -S315400480A00000000000000000000000000000000086 -S315400480B00000000000000000000000000000000076 -S315400480C00000000000000000000000000000000066 -S315400480D00000000000000000000000000000000056 -S315400480E00000000000000000000000000000000046 -S315400480F00000000000000000000000000000000036 -S315400481000000000000000000000000000000000025 -S315400481100000000000000000000000000000000015 -S315400481200000000000000000000000000000000005 -S3154004813000000000000000000000000000000000F5 -S3154004814000000000000000000000000000000000E5 -S3154004815000000000000000000000000000000000D5 -S3154004816000000000000000000000000000000000C5 -S3154004817000000000000000000000000000000000B5 -S3154004818000000000000000000000000000000000A5 -S315400481900000000000000000000000000000000095 -S315400481A00000000000000000000000000000000085 -S315400481B00000000000000000000000000000000075 -S315400481C00000000000000000000000000000000065 -S315400481D00000000000000000000000000000000055 -S315400481E00000000000000000000000000000000045 -S315400481F00000000000000000000000000000000035 -S315400482000000000000000000000000000000000024 -S315400482100000000000000000000000000000000014 -S315400482200000000000000000000000000000000004 -S3154004823000000000000000000000000000000000F4 -S3154004824000000000000000000000000000000000E4 -S3154004825000000000000000000000000000000000D4 -S3154004826000000000000000000000000000000000C4 -S3154004827000000000000000000000000000000000B4 -S3154004828000000000000000000000000000000000A4 -S315400482900000000000000000000000000000000094 -S315400482A00000000000000000000000000000000084 -S315400482B00000000000000000000000000000000074 -S315400482C00000000000000000000000000000000064 -S315400482D00000000000000000000000000000000054 -S315400482E00000000000000000000000000000000044 -S315400482F00000000000000000000000000000000034 -S315400483000000000000000000000000000000000023 -S315400483100000000000000000000000000000000013 -S315400483200000000000000000000000000000000003 -S3154004833000000000000000000000000000000000F3 -S3154004834000000000000000000000000000000000E3 -S3154004835000000000000000000000000000000000D3 -S3154004836000000000000000000000000000000000C3 -S3154004837000000000000000000000000000000000B3 -S3154004838000000000000000000000000000000000A3 -S315400483900000000000000000000000000000000093 -S315400483A00000000000000000000000000000000083 -S315400483B00000000000000000000000000000000073 -S315400483C00000000000000000000000000000000063 -S315400483D00000000000000000000000000000000053 -S315400483E00000000000000000000000000000000043 -S315400483F00000000000000000000000000000000033 -S315400484000000000000000000000000000000000022 -S315400484100000000000000000000000000000000012 -S315400484200000000000000000000000000000000002 -S3154004843000000000000000000000000000000000F2 -S3154004844000000000000000000000000000000000E2 -S3154004845000000000000000000000000000000000D2 -S3154004846000000000000000000000000000000000C2 -S3154004847000000000000000000000000000000000B2 -S3154004848000000000000000000000000000000000A2 -S315400484900000000000000000000000000000000092 -S315400484A00000000000000000000000000000000082 -S315400484B00000000000000000000000000000000072 -S315400484C00000000000000000000000000000000062 -S315400484D00000000000000000000000000000000052 -S315400484E00000000000000000000000000000000042 -S315400484F00000000000000000000000000000000032 -S315400485000000000000000000000000000000000021 -S315400485100000000000000000000000000000000011 -S315400485200000000000000000000000000000000001 -S3154004853000000000000000000000000000000000F1 -S3154004854000000000000000000000000000000000E1 -S3154004855000000000000000000000000000000000D1 -S3154004856000000000000000000000000000000000C1 -S3154004857000000000000000000000000000000000B1 -S3154004858000000000000000000000000000000000A1 -S315400485900000000000000000000000000000000091 -S315400485A00000000000000000000000000000000081 -S315400485B00000000000000000000000000000000071 -S315400485C00000000000000000000000000000000061 -S315400485D00000000000000000000000000000000051 -S315400485E00000000000000000000000000000000041 -S315400485F00000000000000000000000000000000031 -S315400486000000000000000000000000000000000020 -S315400486100000000000000000000000000000000010 -S315400486200000000000000000000000000000000000 -S3154004863000000000000000000000000000000000F0 -S3154004864000000000000000000000000000000000E0 -S3154004865000000000000000000000000000000000D0 -S3154004866000000000000000000000000000000000C0 -S3154004867000000000000000000000000000000000B0 -S3154004868000000000000000000000000000000000A0 -S315400486900000000000000000000000000000000090 -S315400486A00000000000000000000000000000000080 -S315400486B00000000000000000000000000000000070 -S315400486C00000000000000000000000000000000060 -S315400486D00000000000000000000000000000000050 -S315400486E00000000000000000000000000000000040 -S315400486F00000000000000000000000000000000030 -S31540048700000000000000000000000000000000001F -S31540048710000000000000000000000000000000000F -S3154004872000000000000000000000000000000000FF -S3154004873000000000000000000000000000000000EF -S3154004874000000000000000000000000000000000DF -S3154004875000000000000000000000000000000000CF -S3154004876000000000000000000000000000000000BF -S3154004877000000000000000000000000000000000AF -S31540048780000000000000000000000000000000009F -S31540048790000000000000000000000000000000008F -S315400487A0000000000000000000000000000000007F -S315400487B0000000000000000000000000000000006F -S315400487C0000000000000000000000000000000005F -S315400487D0000000000000000000000000000000004F -S315400487E0000000000000000000000000000000003F -S315400487F0000000000000000000000000000000002F -S31540048800000000000000000000000000000000001E -S31540048810000000000000000000000000000000000E -S3154004882000000000000000000000000000000000FE -S3154004883000000000000000000000000000000000EE -S3154004884000000000000000000000000000000000DE -S3154004885000000000000000000000000000000000CE -S3154004886000000000000000000000000000000000BE -S3154004887000000000000000000000000000000000AE -S31540048880000000000000000000000000000000009E -S31540048890000000000000000000000000000000008E -S315400488A0000000000000000000000000000000007E -S315400488B0000000000000000000000000000000006E -S315400488C0000000000000000000000000000000005E -S315400488D0000000000000000000000000000000004E -S315400488E0000000000000000000000000000000003E -S315400488F0000000000000000000000000000000002E -S31540048900000000000000000000000000000000001D -S31540048910000000000000000000000000000000000D -S3154004892000000000000000000000000000000000FD -S3154004893000000000000000000000000000000000ED -S3154004894000000000000000000000000000000000DD -S3154004895000000000000000000000000000000000CD -S3154004896000000000000000000000000000000000BD -S3154004897000000000000000000000000000000000AD -S31540048980000000000000000000000000000000009D -S31540048990000000000000000000000000000000008D -S315400489A0000000000000000000000000000000007D -S315400489B0000000000000000000000000000000006D -S315400489C0000000000000000000000000000000005D -S315400489D0000000000000000000000000000000004D -S315400489E0000000000000000000000000000000003D -S315400489F0000000000000000000000000000000002D -S31540048A00000000000000000000000000000000001C -S31540048A10000000000000000000000000000000000C -S31540048A2000000000000000000000000000000000FC -S31540048A3000000000000000000000000000000000EC -S31540048A4000000000000000000000000000000000DC -S31540048A5000000000000000000000000000000000CC -S31540048A6000000000000000000000000000000000BC -S31540048A7000000000000000000000000000000000AC -S31540048A80000000000000000000000000000000009C -S31540048A90000000000000000000000000000000008C -S31540048AA0000000000000000000000000000000007C -S31540048AB0000000000000000000000000000000006C -S31540048AC0000000000000000000000000000000005C -S31540048AD0000000000000000000000000000000004C -S31540048AE0000000000000000000000000000000003C -S31540048AF0000000000000000000000000000000002C -S31540048B00000000000000000000000000000000001B -S31540048B10000000000000000000000000000000000B -S31540048B2000000000000000000000000000000000FB -S31540048B3000000000000000000000000000000000EB -S31540048B4000000000000000000000000000000000DB -S31540048B5000000000000000000000000000000000CB -S31540048B6000000000000000000000000000000000BB -S31540048B7000000000000000000000000000000000AB -S31540048B80000000000000000000000000000000009B -S31540048B90000000000000000000000000000000008B -S31540048BA0000000000000000000000000000000007B -S31540048BB0000000000000000000000000000000006B -S31540048BC0000000000000000000000000000000005B -S31540048BD0000000000000000000000000000000004B -S31540048BE0000000000000000000000000000000003B -S31540048BF0000000000000000000000000000000002B -S31540048C00000000000000000000000000000000001A -S31540048C10000000000000000000000000000000000A -S31540048C2000000000000000000000000000000000FA -S31540048C3000000000000000000000000000000000EA -S31540048C4000000000000000000000000000000000DA -S31540048C5000000000000000000000000000000000CA -S31540048C6000000000000000000000000000000000BA -S31540048C7000000000000000000000000000000000AA -S31540048C80000000000000000000000000000000009A -S31540048C90000000000000000000000000000000008A -S31540048CA0000000000000000000000000000000007A -S31540048CB0000000000000000000000000000000006A -S31540048CC0000000000000000000000000000000005A -S31540048CD0000000000000000000000000000000004A -S31540048CE0000000000000000000000000000000003A -S31540048CF0000000000000000000000000000000002A -S31540048D000000000000000000000000000000000019 -S31540048D100000000000000000000000000000000009 -S31540048D2000000000000000000000000000000000F9 -S31540048D3000000000000000000000000000000000E9 -S31540048D4000000000000000000000000000000000D9 -S31540048D5000000000000000000000000000000000C9 -S31540048D6000000000000000000000000000000000B9 -S31540048D7000000000000000000000000000000000A9 -S31540048D800000000000000000000000000000000099 -S31540048D900000000000000000000000000000000089 -S31540048DA00000000000000000000000000000000079 -S31540048DB00000000000000000000000000000000069 -S31540048DC00000000000000000000000000000000059 -S31540048DD00000000000000000000000000000000049 -S31540048DE00000000000000000000000000000000039 -S31540048DF00000000000000000000000000000000029 -S31540048E000000000000000000000000000000000018 -S31540048E100000000000000000000000000000000008 -S31540048E2000000000000000000000000000000000F8 -S31540048E3000000000000000000000000000000000E8 -S31540048E4000000000000000000000000000000000D8 -S31540048E5000000000000000000000000000000000C8 -S31540048E6000000000000000000000000000000000B8 -S31540048E7000000000000000000000000000000000A8 -S31540048E800000000000000000000000000000000098 -S31540048E900000000000000000000000000000000088 -S31540048EA00000000000000000000000000000000078 -S31540048EB00000000000000000000000000000000068 -S31540048EC00000000000000000000000000000000058 -S31540048ED00000000000000000000000000000000048 -S31540048EE00000000000000000000000000000000038 -S31540048EF00000000000000000000000000000000028 -S31540048F000000000000000000000000000000000017 -S31540048F100000000000000000000000000000000007 -S31540048F2000000000000000000000000000000000F7 -S31540048F3000000000000000000000000000000000E7 -S31540048F4000000000000000000000000000000000D7 -S31540048F5000000000000000000000000000000000C7 -S31540048F6000000000000000000000000000000000B7 -S31540048F7000000000000000000000000000000000A7 -S31540048F800000000000000000000000000000000097 -S31540048F900000000000000000000000000000000087 -S31540048FA00000000000000000000000000000000077 -S31540048FB00000000000000000000000000000000067 -S31540048FC00000000000000000000000000000000057 -S31540048FD00000000000000000000000000000000047 -S31540048FE00000000000000000000000000000000037 -S31540048FF00000000000000000000000000000000027 -S315400490000000000000000000000000000000000016 -S315400490100000000000000000000000000000000006 -S3154004902000000000000000000000000000000000F6 -S3154004903000000000000000000000000000000000E6 -S3154004904000000000000000000000000000000000D6 -S3154004905000000000000000000000000000000000C6 -S3154004906000000000000000000000000000000000B6 -S3154004907000000000000000000000000000000000A6 -S315400490800000000000000000000000000000000096 -S315400490900000000000000000000000000000000086 -S315400490A00000000000000000000000000000000076 -S315400490B00000000000000000000000000000000066 -S315400490C00000000000000000000000000000000056 -S315400490D00000000000000000000000000000000046 -S315400490E00000000000000000000000000000000036 -S315400490F00000000000000000000000000000000026 -S315400491000000000000000000000000000000000015 -S315400491100000000000000000000000000000000005 -S3154004912000000000000000000000000000000000F5 -S3154004913000000000000000000000000000000000E5 -S3154004914000000000000000000000000000000000D5 -S3154004915000000000000000000000000000000000C5 -S3154004916000000000000000000000000000000000B5 -S3154004917000000000000000000000000000000000A5 -S315400491800000000000000000000000000000000095 -S315400491900000000000000000000000000000000085 -S315400491A00000000000000000000000000000000075 -S315400491B00000000000000000000000000000000065 -S315400491C00000000000000000000000000000000055 -S315400491D00000000000000000000000000000000045 -S315400491E00000000000000000000000000000000035 -S315400491F00000000000000000000000000000000025 -S315400492000000000000000000000000000000000014 -S315400492100000000000000000000000000000000004 -S3154004922000000000000000000000000000000000F4 -S3154004923000000000000000000000000000000000E4 -S3154004924000000000000000000000000000000000D4 -S3154004925000000000000000000000000000000000C4 -S3154004926000000000000000000000000000000000B4 -S3154004927000000000000000000000000000000000A4 -S315400492800000000000000000000000000000000094 -S315400492900000000000000000000000000000000084 -S315400492A00000000000000000000000000000000074 -S315400492B00000000000000000000000000000000064 -S315400492C00000000000000000000000000000000054 -S315400492D00000000000000000000000000000000044 -S315400492E00000000000000000000000000000000034 -S315400492F00000000000000000000000000000000024 -S315400493000000000000000000000000000000000013 -S315400493100000000000000000000000000000000003 -S3154004932000000000000000000000000000000000F3 -S3154004933000000000000000000000000000000000E3 -S3154004934000000000000000000000000000000000D3 -S3154004935000000000000000000000000000000000C3 -S3154004936000000000000000000000000000000000B3 -S3154004937000000000000000000000000000000000A3 -S315400493800000000000000000000000000000000093 -S315400493900000000000000000000000000000000083 -S315400493A00000000000000000000000000000000073 -S315400493B00000000000000000000000000000000063 -S315400493C00000000000000000000000000000000053 -S315400493D00000000000000000000000000000000043 -S315400493E00000000000000000000000000000000033 -S315400493F00000000000000000000000000000000023 -S315400494000000000000000000000000000000000012 -S315400494100000000000000000000000000000000002 -S3154004942000000000000000000000000000000000F2 -S3154004943000000000000000000000000000000000E2 -S3154004944000000000000000000000000000000000D2 -S3154004945000000000000000000000000000000000C2 -S3154004946000000000000000000000000000000000B2 -S3154004947000000000000000000000000000000000A2 -S315400494800000000000000000000000000000000092 -S315400494900000000000000000000000000000000082 -S315400494A00000000000000000000000000000000072 -S315400494B00000000000000000000000000000000062 -S315400494C00000000000000000000000000000000052 -S315400494D00000000000000000000000000000000042 -S315400494E00000000000000000000000000000000032 -S315400494F00000000000000000000000000000000022 -S315400495000000000000000000000000000000000011 -S315400495100000000000000000000000000000000001 -S3154004952000000000000000000000000000000000F1 -S3154004953000000000000000000000000000000000E1 -S3154004954000000000000000000000000000000000D1 -S3154004955000000000000000000000000000000000C1 -S3154004956000000000000000000000000000000000B1 -S3154004957000000000000000000000000000000000A1 -S315400495800000000000000000000000000000000091 -S315400495900000000000000000000000000000000081 -S315400495A00000000000000000000000000000000071 -S315400495B00000000000000000000000000000000061 -S315400495C00000000000000000000000000000000051 -S315400495D00000000000000000000000000000000041 -S315400495E00000000000000000000000000000000031 -S315400495F00000000000000000000000000000000021 -S315400496000000000000000000000000000000000010 -S315400496100000000000000000000000000000000000 -S3154004962000000000000000000000000000000000F0 -S3154004963000000000000000000000000000000000E0 -S3154004964000000000000000000000000000000000D0 -S3154004965000000000000000000000000000000000C0 -S3154004966000000000000000000000000000000000B0 -S3154004967000000000000000000000000000000000A0 -S315400496800000000000000000000000000000000090 -S315400496900000000000000000000000000000000080 -S315400496A00000000000000000000000000000000070 -S315400496B00000000000000000000000000000000060 -S315400496C00000000000000000000000000000000050 -S315400496D00000000000000000000000000000000040 -S315400496E00000000000000000000000000000000030 -S315400496F00000000000000000000000000000000020 -S31540049700000000000000000000000000000000000F -S3154004971000000000000000000000000000000000FF -S3154004972000000000000000000000000000000000EF -S3154004973000000000000000000000000000000000DF -S3154004974000000000000000000000000000000000CF -S3154004975000000000000000000000000000000000BF -S3154004976000000000000000000000000000000000AF -S31540049770000000000000000000000000000000009F -S31540049780000000000000000000000000000000008F -S31540049790000000000000000000000000000000007F -S315400497A0000000000000000000000000000000006F -S315400497B0000000000000000000000000000000005F -S315400497C0000000000000000000000000000000004F -S315400497D0000000000000000000000000000000003F -S315400497E0000000000000000000000000000000002F -S315400497F0000000000000000000000000000000001F -S31540049800000000000000000000000000000000000E -S3154004981000000000000000000000000000000000FE -S3154004982000000000000000000000000000000000EE -S3154004983000000000000000000000000000000000DE -S3154004984000000000000000000000000000000000CE -S3154004985000000000000000000000000000000000BE -S3154004986000000000000000000000000000000000AE -S31540049870000000000000000000000000000000009E -S31540049880000000000000000000000000000000008E -S31540049890000000000000000000000000000000007E -S315400498A0000000000000000000000000000000006E -S315400498B0000000000000000000000000000000005E -S315400498C0000000000000000000000000000000004E -S315400498D0000000000000000000000000000000003E -S315400498E0000000000000000000000000000000002E -S315400498F0000000000000000000000000000000001E -S31540049900000000000000000000000000000000000D -S3154004991000000000000000000000000000000000FD -S3154004992000000000000000000000000000000000ED -S3154004993000000000000000000000000000000000DD -S3154004994000000000000000000000000000000000CD -S3154004995000000000000000000000000000000000BD -S3154004996000000000000000000000000000000000AD -S31540049970000000000000000000000000000000009D -S31540049980000000000000000000000000000000008D -S31540049990000000000000000000000000000000007D -S315400499A0000000000000000000000000000000006D -S315400499B0000000000000000000000000000000005D -S315400499C0000000000000000000000000000000004D -S315400499D0000000000000000000000000000000003D -S315400499E0000000000000000000000000000000002D -S315400499F0000000000000000000000000000000001D -S31540049A00000000000000000000000000000000000C -S31540049A1000000000000000000000000000000000FC -S31540049A2000000000000000000000000000000000EC -S31540049A3000000000000000000000000000000000DC -S31540049A4000000000000000000000000000000000CC -S31540049A5000000000000000000000000000000000BC -S31540049A6000000000000000000000000000000000AC -S31540049A70000000000000000000000000000000009C -S31540049A80000000000000000000000000000000008C -S31540049A90000000000000000000000000000000007C -S31540049AA0000000000000000000000000000000006C -S31540049AB0000000000000000000000000000000005C -S31540049AC0000000000000000000000000000000004C -S31540049AD0000000000000000000000000000000003C -S31540049AE0000000000000000000000000000000002C -S31540049AF0000000000000000000000000000000001C -S31540049B00000000000000000000000000000000000B -S31540049B1000000000000000000000000000000000FB -S31540049B2000000000000000000000000000000000EB -S31540049B3000000000000000000000000000000000DB -S31540049B4000000000000000000000000000000000CB -S31540049B5000000000000000000000000000000000BB -S31540049B6000000000000000000000000000000000AB -S31540049B70000000000000000000000000000000009B -S31540049B80000000000000000000000000000000008B -S31540049B90000000000000000000000000000000007B -S31540049BA0000000000000000000000000000000006B -S31540049BB0000000000000000000000000000000005B -S31540049BC0000000000000000000000000000000004B -S31540049BD0000000000000000000000000000000003B -S31540049BE0000000000000000000000000000000002B -S31540049BF0000000000000000000000000000000001B -S31540049C00000000000000000000000000000000000A -S31540049C1000000000000000000000000000000000FA -S31540049C2000000000000000000000000000000000EA -S31540049C3000000000000000000000000000000000DA -S31540049C4000000000000000000000000000000000CA -S31540049C5000000000000000000000000000000000BA -S31540049C6000000000000000000000000000000000AA -S31540049C70000000000000000000000000000000009A -S31540049C80000000000000000000000000000000008A -S31540049C90000000000000000000000000000000007A -S31540049CA0000000000000000000000000000000006A -S31540049CB0000000000000000000000000000000005A -S31540049CC0000000000000000000000000000000004A -S31540049CD0000000000000000000000000000000003A -S31540049CE0000000000000000000000000000000002A -S31540049CF0000000000000000000000000000000001A -S31540049D000000000000000000000000000000000009 -S31540049D1000000000000000000000000000000000F9 -S31540049D2000000000000000000000000000000000E9 -S31540049D3000000000000000000000000000000000D9 -S31540049D4000000000000000000000000000000000C9 -S31540049D5000000000000000000000000000000000B9 -S31540049D6000000000000000000000000000000000A9 -S31540049D700000000000000000000000000000000099 -S31540049D800000000000000000000000000000000089 -S31540049D900000000000000000000000000000000079 -S31540049DA00000000000000000000000000000000069 -S31540049DB00000000000000000000000000000000059 -S31540049DC00000000000000000000000000000000049 -S31540049DD00000000000000000000000000000000039 -S31540049DE00000000000000000000000000000000029 -S31540049DF00000000000000000000000000000000019 -S31540049E000000000000000000000000000000000008 -S31540049E1000000000000000000000000000000000F8 -S31540049E2000000000000000000000000000000000E8 -S31540049E3000000000000000000000000000000000D8 -S31540049E4000000000000000000000000000000000C8 -S31540049E5000000000000000000000000000000000B8 -S31540049E6000000000000000000000000000000000A8 -S31540049E700000000000000000000000000000000098 -S31540049E800000000000000000000000000000000088 -S31540049E900000000000000000000000000000000078 -S31540049EA00000000000000000000000000000000068 -S31540049EB00000000000000000000000000000000058 -S31540049EC00000000000000000000000000000000048 -S31540049ED00000000000000000000000000000000038 -S31540049EE00000000000000000000000000000000028 -S31540049EF00000000000000000000000000000000018 -S31540049F000000000000000000000000000000000007 -S31540049F1000000000000000000000000000000000F7 -S31540049F2000000000000000000000000000000000E7 -S31540049F3000000000000000000000000000000000D7 -S31540049F4000000000000000000000000000000000C7 -S31540049F5000000000000000000000000000000000B7 -S31540049F6000000000000000000000000000000000A7 -S31540049F700000000000000000000000000000000097 -S31540049F800000000000000000000000000000000087 -S31540049F900000000000000000000000000000000077 -S31540049FA00000000000000000000000000000000067 -S31540049FB00000000000000000000000000000000057 -S31540049FC00000000000000000000000000000000047 -S31540049FD00000000000000000000000000000000037 -S31540049FE00000000000000000000000000000000027 -S31540049FF00000000000000000000000000000000017 -S3154004A0000000000000000000000000000000000006 -S3154004A01000000000000000000000000000000000F6 -S3154004A02000000000000000000000000000000000E6 -S3154004A03000000000000000000000000000000000D6 -S3154004A04000000000000000000000000000000000C6 -S3154004A05000000000000000000000000000000000B6 -S3154004A06000000000000000000000000000000000A6 -S3154004A0700000000000000000000000000000000096 -S3154004A0800000000000000000000000000000000086 -S3154004A0900000000000000000000000000000000076 -S3154004A0A00000000000000000000000000000000066 -S3154004A0B00000000000000000000000000000000056 -S3154004A0C00000000000000000000000000000000046 -S3154004A0D00000000000000000000000000000000036 -S3154004A0E00000000000000000000000000000000026 -S3154004A0F00000000000000000000000000000000016 -S3154004A1000000000000000000000000000000000005 -S3154004A11000000000000000000000000000000000F5 -S3154004A12000000000000000000000000000000000E5 -S3154004A13000000000000000000000000000000000D5 -S3154004A14000000000000000000000000000000000C5 -S3154004A15000000000000000000000000000000000B5 -S3154004A16000000000000000000000000000000000A5 -S3154004A1700000000000000000000000000000000095 -S3154004A1800000000000000000000000000000000085 -S3154004A1900000000000000000000000000000000075 -S3154004A1A00000000000000000000000000000000065 -S3154004A1B00000000000000000000000000000000055 -S3154004A1C00000000000000000000000000000000045 -S3154004A1D00000000000000000000000000000000035 -S3154004A1E00000000000000000000000000000000025 -S3154004A1F00000000000000000000000000000000015 -S3154004A2000000000000000000000000000000000004 -S3154004A21000000000000000000000000000000000F4 -S3154004A22000000000000000000000000000000000E4 -S3154004A23000000000000000000000000000000000D4 -S3154004A24000000000000000000000000000000000C4 -S3154004A25000000000000000000000000000000000B4 -S3154004A26000000000000000000000000000000000A4 -S3154004A2700000000000000000000000000000000094 -S3154004A2800000000000000000000000000000000084 -S3154004A2900000000000000000000000000000000074 -S3154004A2A00000000000000000000000000000000064 -S3154004A2B00000000000000000000000000000000054 -S3154004A2C00000000000000000000000000000000044 -S3154004A2D00000000000000000000000000000000034 -S3154004A2E00000000000000000000000000000000024 -S3154004A2F00000000000000000000000000000000014 -S3154004A3000000000000000000000000000000000003 -S3154004A31000000000000000000000000000000000F3 -S3154004A32000000000000000000000000000000000E3 -S3154004A33000000000000000000000000000000000D3 -S3154004A34000000000000000000000000000000000C3 -S3154004A35000000000000000000000000000000000B3 -S3154004A36000000000000000000000000000000000A3 -S3154004A3700000000000000000000000000000000093 -S3154004A3800000000000000000000000000000000083 -S3154004A3900000000000000000000000000000000073 -S3154004A3A00000000000000000000000000000000063 -S3154004A3B00000000000000000000000000000000053 -S3154004A3C00000000000000000000000000000000043 -S3154004A3D00000000000000000000000000000000033 -S3154004A3E00000000000000000000000000000000023 -S3154004A3F00000000000000000000000000000000013 -S3154004A4000000000000000000000000000000000002 -S3154004A41000000000000000000000000000000000F2 -S3154004A42000000000000000000000000000000000E2 -S3154004A43000000000000000000000000000000000D2 -S3154004A44000000000000000000000000000000000C2 -S3154004A45000000000000000000000000000000000B2 -S3154004A46000000000000000000000000000000000A2 -S3154004A4700000000000000000000000000000000092 -S3154004A4800000000000000000000000000000000082 -S3154004A4900000000000000000000000000000000072 -S3154004A4A00000000000000000000000000000000062 -S3154004A4B00000000000000000000000000000000052 -S3154004A4C00000000000000000000000000000000042 -S3154004A4D00000000000000000000000000000000032 -S3154004A4E00000000000000000000000000000000022 -S3154004A4F00000000000000000000000000000000012 -S3154004A5000000000000000000000000000000000001 -S3154004A51000000000000000000000000000000000F1 -S3154004A52000000000000000000000000000000000E1 -S3154004A53000000000000000000000000000000000D1 -S3154004A54000000000000000000000000000000000C1 -S3154004A55000000000000000000000000000000000B1 -S3154004A56000000000000000000000000000000000A1 -S3154004A5700000000000000000000000000000000091 -S3154004A5800000000000000000000000000000000081 -S3154004A5900000000000000000000000000000000071 -S3154004A5A00000000000000000000000000000000061 -S3154004A5B00000000000000000000000000000000051 -S3154004A5C00000000000000000000000000000000041 -S3154004A5D00000000000000000000000000000000031 -S3154004A5E00000000000000000000000000000000021 -S3154004A5F00000000000000000000000000000000011 -S3154004A6000000000000000000000000000000000000 -S3154004A61000000000000000000000000000000000F0 -S3154004A62000000000000000000000000000000000E0 -S3154004A63000000000000000000000000000000000D0 -S3154004A64000000000000000000000000000000000C0 -S3154004A65000000000000000000000000000000000B0 -S3154004A66000000000000000000000000000000000A0 -S3154004A6700000000000000000000000000000000090 -S3154004A6800000000000000000000000000000000080 -S3154004A6900000000000000000000000000000000070 -S3154004A6A00000000000000000000000000000000060 -S3154004A6B00000000000000000000000000000000050 -S3154004A6C00000000000000000000000000000000040 -S3154004A6D00000000000000000000000000000000030 -S3154004A6E00000000000000000000000000000000020 -S3154004A6F00000000000000000000000000000000010 -S3154004A70000000000000000000000000000000000FF -S3154004A71000000000000000000000000000000000EF -S3154004A72000000000000000000000000000000000DF -S3154004A73000000000000000000000000000000000CF -S3154004A74000000000000000000000000000000000BF -S3154004A75000000000000000000000000000000000AF -S3154004A760000000000000000000000000000000009F -S3154004A770000000000000000000000000000000008F -S3154004A780000000000000000000000000000000007F -S3154004A790000000000000000000000000000000006F -S3154004A7A0000000000000000000000000000000005F -S3154004A7B0000000000000000000000000000000004F -S3154004A7C0000000000000000000000000000000003F -S3154004A7D0000000000000000000000000000000002F -S3154004A7E0000000000000000000000000000000001F -S3154004A7F0000000000000000000000000000000000F -S3154004A80000000000000000000000000000000000FE -S3154004A81000000000000000000000000000000000EE -S3154004A82000000000000000000000000000000000DE -S3154004A83000000000000000000000000000000000CE -S3154004A84000000000000000000000000000000000BE -S3154004A85000000000000000000000000000000000AE -S3154004A860000000000000000000000000000000009E -S3154004A870000000000000000000000000000000008E -S3154004A880000000000000000000000000000000007E -S3154004A890000000000000000000000000000000006E -S3154004A8A0000000000000000000000000000000005E -S3154004A8B0000000000000000000000000000000004E -S3154004A8C0000000000000000000000000000000003E -S3154004A8D0000000000000000000000000000000002E -S3154004A8E0000000000000000000000000000000001E -S3154004A8F0000000000000000000000000000000000E -S3154004A90000000000000000000000000000000000FD -S3154004A91000000000000000000000000000000000ED -S3154004A92000000000000000000000000000000000DD -S3154004A93000000000000000000000000000000000CD -S3154004A94000000000000000000000000000000000BD -S3154004A95000000000000000000000000000000000AD -S3154004A960000000000000000000000000000000009D -S3154004A970000000000000000000000000000000008D -S3154004A980000000000000000000000000000000007D -S3154004A990000000000000000000000000000000006D -S3154004A9A0000000000000000000000000000000005D -S3154004A9B0000000000000000000000000000000004D -S3154004A9C0000000000000000000000000000000003D -S3154004A9D0000000000000000000000000000000002D -S3154004A9E0000000000000000000000000000000001D -S3154004A9F0000000000000000000000000000000000D -S3154004AA0000000000000000000000000000000000FC -S3154004AA1000000000000000000000000000000000EC -S3154004AA2000000000000000000000000000000000DC -S3154004AA3000000000000000000000000000000000CC -S3154004AA4000000000000000000000000000000000BC -S3154004AA5000000000000000000000000000000000AC -S3154004AA60000000000000000000000000000000009C -S3154004AA70000000000000000000000000000000008C -S3154004AA80000000000000000000000000000000007C -S3154004AA90000000000000000000000000000000006C -S3154004AAA0000000000000000000000000000000005C -S3154004AAB0000000000000000000000000000000004C -S3154004AAC0000000000000000000000000000000003C -S3154004AAD0000000000000000000000000000000002C -S3154004AAE0000000000000000000000000000000001C -S3154004AAF0000000000000000000000000000000000C -S3154004AB0000000000000000000000000000000000FB -S3154004AB1000000000000000000000000000000000EB -S3154004AB2000000000000000000000000000000000DB -S3154004AB3000000000000000000000000000000000CB -S3154004AB4000000000000000000000000000000000BB -S3154004AB5000000000000000000000000000000000AB -S3154004AB60000000000000000000000000000000009B -S3154004AB70000000000000000000000000000000008B -S3154004AB80000000000000000000000000000000007B -S3154004AB90000000000000000000000000000000006B -S3154004ABA0000000000000000000000000000000005B -S3154004ABB0000000000000000000000000000000004B -S3154004ABC0000000000000000000000000000000003B -S3154004ABD0000000000000000000000000000000002B -S3154004ABE0000000000000000000000000000000001B -S3154004ABF0000000000000000000000000000000000B -S3154004AC0000000000000000000000000000000000FA -S3154004AC1000000000000000000000000000000000EA -S3154004AC2000000000000000000000000000000000DA -S3154004AC3000000000000000000000000000000000CA -S3154004AC4000000000000000000000000000000000BA -S3154004AC5000000000000000000000000000000000AA -S3154004AC60000000000000000000000000000000009A -S3154004AC70000000000000000000000000000000008A -S3154004AC80000000000000000000000000000000007A -S3154004AC90000000000000000000000000000000006A -S3154004ACA0000000000000000000000000000000005A -S3154004ACB0000000000000000000000000000000004A -S3154004ACC0000000000000000000000000000000003A -S3154004ACD0000000000000000000000000000000002A -S3154004ACE0000000000000000000000000000000001A -S3154004ACF0000000000000000000000000000000000A -S3154004AD0000000000000000000000000000000000F9 -S3154004AD1000000000000000000000000000000000E9 -S3154004AD2000000000000000000000000000000000D9 -S3154004AD3000000000000000000000000000000000C9 -S3154004AD4000000000000000000000000000000000B9 -S3154004AD5000000000000000000000000000000000A9 -S3154004AD600000000000000000000000000000000099 -S3154004AD700000000000000000000000000000000089 -S3154004AD800000000000000000000000000000000079 -S3154004AD900000000000000000000000000000000069 -S3154004ADA00000000000000000000000000000000059 -S3154004ADB00000000000000000000000000000000049 -S3154004ADC00000000000000000000000000000000039 -S3154004ADD00000000000000000000000000000000029 -S3154004ADE00000000000000000000000000000000019 -S3154004ADF00000000000000000000000000000000009 -S3154004AE0000000000000000000000000000000000F8 -S3154004AE1000000000000000000000000000000000E8 -S3154004AE2000000000000000000000000000000000D8 -S3154004AE3000000000000000000000000000000000C8 -S3154004AE4000000000000000000000000000000000B8 -S3154004AE5000000000000000000000000000000000A8 -S3154004AE600000000000000000000000000000000098 -S3154004AE700000000000000000000000000000000088 -S3154004AE800000000000000000000000000000000078 -S3154004AE900000000000000000000000000000000068 -S3154004AEA00000000000000000000000000000000058 -S3154004AEB00000000000000000000000000000000048 -S3154004AEC00000000000000000000000000000000038 -S3154004AED00000000000000000000000000000000028 -S3154004AEE00000000000000000000000000000000018 -S3154004AEF00000000000000000000000000000000008 -S3154004AF0000000000000000000000000000000000F7 -S3154004AF1000000000000000000000000000000000E7 -S3154004AF2000000000000000000000000000000000D7 -S3154004AF3000000000000000000000000000000000C7 -S3154004AF4000000000000000000000000000000000B7 -S3154004AF5000000000000000000000000000000000A7 -S3154004AF600000000000000000000000000000000097 -S3154004AF700000000000000000000000000000000087 -S3154004AF800000000000000000000000000000000077 -S3154004AF900000000000000000000000000000000067 -S3154004AFA00000000000000000000000000000000057 -S3154004AFB00000000000000000000000000000000047 -S3154004AFC00000000000000000000000000000000037 -S3154004AFD00000000000000000000000000000000027 -S3154004AFE00000000000000000000000000000000017 -S3154004AFF00000000000000000000000000000000007 -S3154004B00000000000000000000000000000000000F6 -S3154004B01000000000000000000000000000000000E6 -S3154004B02000000000000000000000000000000000D6 -S3154004B03000000000000000000000000000000000C6 -S3154004B04000000000000000000000000000000000B6 -S3154004B05000000000000000000000000000000000A6 -S3154004B0600000000000000000000000000000000096 -S3154004B0700000000000000000000000000000000086 -S3154004B0800000000000000000000000000000000076 -S3154004B0900000000000000000000000000000000066 -S3154004B0A00000000000000000000000000000000056 -S3154004B0B00000000000000000000000000000000046 -S3154004B0C00000000000000000000000000000000036 -S3154004B0D00000000000000000000000000000000026 -S3154004B0E00000000000000000000000000000000016 -S3154004B0F00000000000000000000000000000000006 -S3154004B10000000000000000000000000000000000F5 -S3154004B11000000000000000000000000000000000E5 -S3154004B12000000000000000000000000000000000D5 -S3154004B13000000000000000000000000000000000C5 -S3154004B14000000000000000000000000000000000B5 -S3154004B15000000000000000000000000000000000A5 -S3154004B1600000000000000000000000000000000095 -S3154004B1700000000000000000000000000000000085 -S3154004B1800000000000000000000000000000000075 -S3154004B1900000000000000000000000000000000065 -S3154004B1A00000000000000000000000000000000055 -S3154004B1B00000000000000000000000000000000045 -S3154004B1C00000000000000000000000000000000035 -S3154004B1D00000000000000000000000000000000025 -S3154004B1E00000000000000000000000000000000015 -S3154004B1F00000000000000000000000000000000005 -S3154004B20000000000000000000000000000000000F4 -S3154004B21000000000000000000000000000000000E4 -S3154004B22000000000000000000000000000000000D4 -S3154004B23000000000000000000000000000000000C4 -S3154004B24000000000000000000000000000000000B4 -S3154004B25000000000000000000000000000000000A4 -S3154004B2600000000000000000000000000000000094 -S3154004B2700000000000000000000000000000000084 -S3154004B2800000000000000000000000000000000074 -S3154004B2900000000000000000000000000000000064 -S3154004B2A00000000000000000000000000000000054 -S3154004B2B00000000000000000000000000000000044 -S3154004B2C00000000000000000000000000000000034 -S3154004B2D00000000000000000000000000000000024 -S3154004B2E00000000000000000000000000000000014 -S3154004B2F00000000000000000000000000000000004 -S3154004B30000000000000000000000000000000000F3 -S3154004B31000000000000000000000000000000000E3 -S3154004B32000000000000000000000000000000000D3 -S3154004B33000000000000000000000000000000000C3 -S3154004B34000000000000000000000000000000000B3 -S3154004B35000000000000000000000000000000000A3 -S3154004B3600000000000000000000000000000000093 -S3154004B3700000000000000000000000000000000083 -S3154004B3800000000000000000000000000000000073 -S3154004B3900000000000000000000000000000000063 -S3154004B3A00000000000000000000000000000000053 -S3154004B3B00000000000000000000000000000000043 -S3154004B3C00000000000000000000000000000000033 -S3154004B3D00000000000000000000000000000000023 -S3154004B3E00000000000000000000000000000000013 -S3154004B3F00000000000000000000000000000000003 -S3154004B40000000000000000000000000000000000F2 -S3154004B41000000000000000000000000000000000E2 -S3154004B42000000000000000000000000000000000D2 -S3154004B43000000000000000000000000000000000C2 -S3154004B44000000000000000000000000000000000B2 -S3154004B45000000000000000000000000000000000A2 -S3154004B4600000000000000000000000000000000092 -S3154004B4700000000000000000000000000000000082 -S3154004B4800000000000000000000000000000000072 -S3154004B4900000000000000000000000000000000062 -S3154004B4A00000000000000000000000000000000052 -S3154004B4B00000000000000000000000000000000042 -S3154004B4C00000000000000000000000000000000032 -S3154004B4D00000000000000000000000000000000022 -S3154004B4E00000000000000000000000000000000012 -S3154004B4F00000000000000000000000000000000002 -S3154004B50000000000000000000000000000000000F1 -S3154004B51000000000000000000000000000000000E1 -S3154004B52000000000000000000000000000000000D1 -S3154004B53000000000000000000000000000000000C1 -S3154004B54000000000000000000000000000000000B1 -S3154004B55000000000000000000000000000000000A1 -S3154004B5600000000000000000000000000000000091 -S3154004B5700000000000000000000000000000000081 -S3154004B5800000000000000000000000000000000071 -S3154004B5900000000000000000000000000000000061 -S3154004B5A00000000000000000000000000000000051 -S3154004B5B00000000000000000000000000000000041 -S3154004B5C00000000000000000000000000000000031 -S3154004B5D00000000000000000000000000000000021 -S3154004B5E00000000000000000000000000000000011 -S3154004B5F00000000000000000000000000000000001 -S3154004B60000000000000000000000000000000000F0 -S3154004B61000000000000000000000000000000000E0 -S3154004B62000000000000000000000000000000000D0 -S3154004B63000000000000000000000000000000000C0 -S3154004B64000000000000000000000000000000000B0 -S3154004B65000000000000000000000000000000000A0 -S3154004B6600000000000000000000000000000000090 -S3154004B6700000000000000000000000000000000080 -S3154004B6800000000000000000000000000000000070 -S3154004B6900000000000000000000000000000000060 -S3154004B6A00000000000000000000000000000000050 -S3154004B6B00000000000000000000000000000000040 -S3154004B6C00000000000000000000000000000000030 -S3154004B6D00000000000000000000000000000000020 -S3154004B6E00000000000000000000000000000000010 -S3154004B6F00000000000000000000000000000000000 -S3154004B70000000000000000000000000000000000EF -S3154004B71000000000000000000000000000000000DF -S3154004B72000000000000000000000000000000000CF -S3154004B73000000000000000000000000000000000BF -S3154004B74000000000000000000000000000000000AF -S3154004B750000000000000000000000000000000009F -S3154004B760000000000000000000000000000000008F -S3154004B770000000000000000000000000000000007F -S3154004B780000000000000000000000000000000006F -S3154004B790000000000000000000000000000000005F -S3154004B7A0000000000000000000000000000000004F -S3154004B7B0000000000000000000000000000000003F -S3154004B7C0000000000000000000000000000000002F -S3154004B7D0000000000000000000000000000000001F -S3154004B7E0000000000000000000000000000000000F -S3154004B7F000000000000000000000000000000000FF -S3154004B80000000000000000000000000000000000EE -S3154004B81000000000000000000000000000000000DE -S3154004B82000000000000000000000000000000000CE -S3154004B83000000000000000000000000000000000BE -S3154004B84000000000000000000000000000000000AE -S3154004B850000000000000000000000000000000009E -S3154004B860000000000000000000000000000000008E -S3154004B870000000000000000000000000000000007E -S3154004B880000000000000000000000000000000006E -S3154004B890000000000000000000000000000000005E -S3154004B8A0000000000000000000000000000000004E -S3154004B8B0000000000000000000000000000000003E -S3154004B8C0000000000000000000000000000000002E -S3154004B8D0000000000000000000000000000000001E -S3154004B8E0000000000000000000000000000000000E -S3154004B8F000000000000000000000000000000000FE -S3154004B90000000000000000000000000000000000ED -S3154004B91000000000000000000000000000000000DD -S3154004B92000000000000000000000000000000000CD -S3154004B93000000000000000000000000000000000BD -S3154004B94000000000000000000000000000000000AD -S3154004B950000000000000000000000000000000009D -S3154004B960000000000000000000000000000000008D -S3154004B970000000000000000000000000000000007D -S3154004B980000000000000000000000000000000006D -S3154004B990000000000000000000000000000000005D -S3154004B9A0000000000000000000000000000000004D -S3154004B9B0000000000000000000000000000000003D -S3154004B9C0000000000000000000000000000000002D -S3154004B9D0000000000000000000000000000000001D -S3154004B9E0000000000000000000000000000000000D -S3154004B9F000000000000000000000000000000000FD -S3154004BA0000000000000000000000000000000000EC -S3154004BA1000000000000000000000000000000000DC -S3154004BA2000000000000000000000000000000000CC -S3154004BA3000000000000000000000000000000000BC -S3154004BA4000000000000000000000000000000000AC -S3154004BA50000000000000000000000000000000009C -S3154004BA60000000000000000000000000000000008C -S3154004BA70000000000000000000000000000000007C -S3154004BA80000000000000000000000000000000006C -S3154004BA90000000000000000000000000000000005C -S3154004BAA0000000000000000000000000000000004C -S3154004BAB0000000000000000000000000000000003C -S3154004BAC0000000000000000000000000000000002C -S3154004BAD0000000000000000000000000000000001C -S3154004BAE0000000000000000000000000000000000C -S3154004BAF000000000000000000000000000000000FC -S3154004BB0000000000000000000000000000000000EB -S3154004BB1000000000000000000000000000000000DB -S3154004BB2000000000000000000000000000000000CB -S3154004BB3000000000000000000000000000000000BB -S3154004BB4000000000000000000000000000000000AB -S3154004BB50000000000000000000000000000000009B -S3154004BB60000000000000000000000000000000008B -S3154004BB70000000000000000000000000000000007B -S3154004BB80000000000000000000000000000000006B -S3154004BB90000000000000000000000000000000005B -S3154004BBA0000000000000000000000000000000004B -S3154004BBB0000000000000000000000000000000003B -S3154004BBC0000000000000000000000000000000002B -S3154004BBD0000000000000000000000000000000001B -S3154004BBE0000000000000000000000000000000000B -S3154004BBF000000000000000000000000000000000FB -S3154004BC0000000000000000000000000000000000EA -S3154004BC1000000000000000000000000000000000DA -S3154004BC2000000000000000000000000000000000CA -S3154004BC3000000000000000000000000000000000BA -S3154004BC4000000000000000000000000000000000AA -S3154004BC50000000000000000000000000000000009A -S3154004BC60000000000000000000000000000000008A -S3154004BC70000000000000000000000000000000007A -S3154004BC80000000000000000000000000000000006A -S3154004BC90000000000000000000000000000000005A -S3154004BCA0000000000000000000000000000000004A -S3154004BCB0000000000000000000000000000000003A -S3154004BCC0000000000000000000000000000000002A -S3154004BCD0000000000000000000000000000000001A -S3154004BCE0000000000000000000000000000000000A -S3154004BCF000000000000000000000000000000000FA -S3154004BD0000000000000000000000000000000000E9 -S3154004BD1000000000000000000000000000000000D9 -S3154004BD2000000000000000000000000000000000C9 -S3154004BD3000000000000000000000000000000000B9 -S3154004BD4000000000000000000000000000000000A9 -S3154004BD500000000000000000000000000000000099 -S3154004BD600000000000000000000000000000000089 -S3154004BD700000000000000000000000000000000079 -S3154004BD800000000000000000000000000000000069 -S3154004BD900000000000000000000000000000000059 -S3154004BDA00000000000000000000000000000000049 -S3154004BDB00000000000000000000000000000000039 -S3154004BDC00000000000000000000000000000000029 -S3154004BDD00000000000000000000000000000000019 -S3154004BDE00000000000000000000000000000000009 -S3154004BDF000000000000000000000000000000000F9 -S3154004BE0000000000000000000000000000000000E8 -S3154004BE1000000000000000000000000000000000D8 -S3154004BE2000000000000000000000000000000000C8 -S3154004BE3000000000000000000000000000000000B8 -S3154004BE4000000000000000000000000000000000A8 -S3154004BE500000000000000000000000000000000098 -S3154004BE600000000000000000000000000000000088 -S3154004BE700000000000000000000000000000000078 -S3154004BE800000000000000000000000000000000068 -S3154004BE900000000000000000000000000000000058 -S3154004BEA00000000000000000000000000000000048 -S3154004BEB00000000000000000000000000000000038 -S3154004BEC00000000000000000000000000000000028 -S3154004BED00000000000000000000000000000000018 -S3154004BEE00000000000000000000000000000000008 -S3154004BEF000000000000000000000000000000000F8 -S3154004BF0000000000000000000000000000000000E7 -S3154004BF1000000000000000000000000000000000D7 -S3154004BF2000000000000000000000000000000000C7 -S3154004BF3000000000000000000000000000000000B7 -S3154004BF4000000000000000000000000000000000A7 -S3154004BF500000000000000000000000000000000097 -S3154004BF600000000000000000000000000000000087 -S3154004BF700000000000000000000000000000000077 -S3154004BF800000000000000000000000000000000067 -S3154004BF900000000000000000000000000000000057 -S3154004BFA00000000000000000000000000000000047 -S3154004BFB00000000000000000000000000000000037 -S3154004BFC00000000000000000000000000000000027 -S3154004BFD00000000000000000000000000000000017 -S3154004BFE00000000000000000000000000000000007 -S3154004BFF000000000000000000000000000000000F7 -S3154004C00000000000000000000000000000000000E6 -S3154004C01000000000000000000000000000000000D6 -S3154004C02000000000000000000000000000000000C6 -S3154004C03000000000000000000000000000000000B6 -S3154004C04000000000000000000000000000000000A6 -S3154004C0500000000000000000000000000000000096 -S3154004C0600000000000000000000000000000000086 -S3154004C0700000000000000000000000000000000076 -S3154004C0800000000000000000000000000000000066 -S3154004C0900000000000000000000000000000000056 -S3154004C0A00000000000000000000000000000000046 -S3154004C0B00000000000000000000000000000000036 -S3154004C0C00000000000000000000000000000000026 -S3154004C0D00000000000000000000000000000000016 -S3154004C0E00000000000000000000000000000000006 -S3154004C0F000000000000000000000000000000000F6 -S3154004C10000000000000000000000000000000000E5 -S3154004C11000000000000000000000000000000000D5 -S3154004C12000000000000000000000000000000000C5 -S3154004C13000000000000000000000000000000000B5 -S3154004C14000000000000000000000000000000000A5 -S3154004C1500000000000000000000000000000000095 -S3154004C1600000000000000000000000000000000085 -S3154004C1700000000000000000000000000000000075 -S3154004C1800000000000000000000000000000000065 -S3154004C1900000000000000000000000000000000055 -S3154004C1A00000000000000000000000000000000045 -S3154004C1B00000000000000000000000000000000035 -S3154004C1C00000000000000000000000000000000025 -S3154004C1D00000000000000000000000000000000015 -S3154004C1E00000000000000000000000000000000005 -S3154004C1F000000000000000000000000000000000F5 -S3154004C20000000000000000000000000000000000E4 -S3154004C21000000000000000000000000000000000D4 -S3154004C22000000000000000000000000000000000C4 -S3154004C23000000000000000000000000000000000B4 -S3154004C24000000000000000000000000000000000A4 -S3154004C2500000000000000000000000000000000094 -S3154004C2600000000000000000000000000000000084 -S3154004C2700000000000000000000000000000000074 -S3154004C2800000000000000000000000000000000064 -S3154004C2900000000000000000000000000000000054 -S3154004C2A00000000000000000000000000000000044 -S3154004C2B00000000000000000000000000000000034 -S3154004C2C00000000000000000000000000000000024 -S3154004C2D00000000000000000000000000000000014 -S3154004C2E00000000000000000000000000000000004 -S3154004C2F000000000000000000000000000000000F4 -S3154004C30000000000000000000000000000000000E3 -S3154004C31000000000000000000000000000000000D3 -S3154004C32000000000000000000000000000000000C3 -S3154004C33000000000000000000000000000000000B3 -S3154004C34000000000000000000000000000000000A3 -S3154004C3500000000000000000000000000000000093 -S3154004C3600000000000000000000000000000000083 -S3154004C3700000000000000000000000000000000073 -S3154004C3800000000000000000000000000000000063 -S3154004C3900000000000000000000000000000000053 -S3154004C3A00000000000000000000000000000000043 -S3154004C3B00000000000000000000000000000000033 -S3154004C3C00000000000000000000000000000000023 -S3154004C3D00000000000000000000000000000000013 -S3154004C3E00000000000000000000000000000000003 -S3154004C3F000000000000000000000000000000000F3 -S3154004C40000000000000000000000000000000000E2 -S3154004C41000000000000000000000000000000000D2 -S3154004C42000000000000000000000000000000000C2 -S3154004C43000000000000000000000000000000000B2 -S3154004C44000000000000000000000000000000000A2 -S3154004C4500000000000000000000000000000000092 -S3154004C4600000000000000000000000000000000082 -S3154004C4700000000000000000000000000000000072 -S3154004C4800000000000000000000000000000000062 -S3154004C4900000000000000000000000000000000052 -S3154004C4A00000000000000000000000000000000042 -S3154004C4B00000000000000000000000000000000032 -S3154004C4C00000000000000000000000000000000022 -S3154004C4D00000000000000000000000000000000012 -S3154004C4E00000000000000000000000000000000002 -S3154004C4F000000000000000000000000000000000F2 -S3154004C50000000000000000000000000000000000E1 -S3154004C51000000000000000000000000000000000D1 -S3154004C52000000000000000000000000000000000C1 -S3154004C53000000000000000000000000000000000B1 -S3154004C54000000000000000000000000000000000A1 -S3154004C5500000000000000000000000000000000091 -S3154004C5600000000000000000000000000000000081 -S3154004C5700000000000000000000000000000000071 -S3154004C5800000000000000000000000000000000061 -S3154004C5900000000000000000000000000000000051 -S3154004C5A00000000000000000000000000000000041 -S3154004C5B00000000000000000000000000000000031 -S3154004C5C00000000000000000000000000000000021 -S3154004C5D00000000000000000000000000000000011 -S3154004C5E00000000000000000000000000000000001 -S3154004C5F000000000000000000000000000000000F1 -S3154004C60000000000000000000000000000000000E0 -S3154004C61000000000000000000000000000000000D0 -S3154004C62000000000000000000000000000000000C0 -S3154004C63000000000000000000000000000000000B0 -S3154004C64000000000000000000000000000000000A0 -S3154004C6500000000000000000000000000000000090 -S3154004C6600000000000000000000000000000000080 -S3154004C6700000000000000000000000000000000070 -S3154004C6800000000000000000000000000000000060 -S3154004C6900000000000000000000000000000000050 -S3154004C6A00000000000000000000000000000000040 -S3154004C6B00000000000000000000000000000000030 -S3154004C6C00000000000000000000000000000000020 -S3154004C6D00000000000000000000000000000000010 -S3154004C6E00000000000000000000000000000000000 -S3154004C6F000000000000000000000000000000000F0 -S3154004C70000000000000000000000000000000000DF -S3154004C71000000000000000000000000000000000CF -S3154004C72000000000000000000000000000000000BF -S3154004C73000000000000000000000000000000000AF -S3154004C740000000000000000000000000000000009F -S3154004C750000000000000000000000000000000008F -S3154004C760000000000000000000000000000000007F -S3154004C770000000000000000000000000000000006F -S3154004C780000000000000000000000000000000005F -S3154004C790000000000000000000000000000000004F -S3154004C7A0000000000000000000000000000000003F -S3154004C7B0000000000000000000000000000000002F -S3154004C7C0000000000000000000000000000000001F -S3154004C7D0000000000000000000000000000000000F -S3154004C7E000000000000000000000000000000000FF -S3154004C7F000000000000000000000000000000000EF -S3154004C80000000000000000000000000000000000DE -S3154004C81000000000000000000000000000000000CE -S3154004C82000000000000000000000000000000000BE -S3154004C83000000000000000000000000000000000AE -S3154004C840000000000000000000000000000000009E -S3154004C850000000000000000000000000000000008E -S3154004C860000000000000000000000000000000007E -S3154004C870000000000000000000000000000000006E -S3154004C880000000000000000000000000000000005E -S3154004C890000000000000000000000000000000004E -S3154004C8A0000000000000000000000000000000003E -S3154004C8B0000000000000000000000000000000002E -S3154004C8C0000000000000000000000000000000001E -S3154004C8D0000000000000000000000000000000000E -S3154004C8E000000000000000000000000000000000FE -S3154004C8F000000000000000000000000000000000EE -S3154004C90000000000000000000000000000000000DD -S3154004C91000000000000000000000000000000000CD -S3154004C92000000000000000000000000000000000BD -S3154004C93000000000000000000000000000000000AD -S3154004C940000000000000000000000000000000009D -S3154004C950000000000000000000000000000000008D -S3154004C960000000000000000000000000000000007D -S3154004C970000000000000000000000000000000006D -S3154004C980000000000000000000000000000000005D -S3154004C990000000000000000000000000000000004D -S3154004C9A0000000000000000000000000000000003D -S3154004C9B0000000000000000000000000000000002D -S3154004C9C0000000000000000000000000000000001D -S3154004C9D0000000000000000000000000000000000D -S3154004C9E000000000000000000000000000000000FD -S3154004C9F000000000000000000000000000000000ED -S3154004CA0000000000000000000000000000000000DC -S3154004CA1000000000000000000000000000000000CC -S3154004CA2000000000000000000000000000000000BC -S3154004CA3000000000000000000000000000000000AC -S3154004CA40000000000000000000000000000000009C -S3154004CA50000000000000000000000000000000008C -S3154004CA60000000000000000000000000000000007C -S3154004CA70000000000000000000000000000000006C -S3154004CA80000000000000000000000000000000005C -S3154004CA90000000000000000000000000000000004C -S3154004CAA0000000000000000000000000000000003C -S3154004CAB0000000000000000000000000000000002C -S3154004CAC0000000000000000000000000000000001C -S3154004CAD0000000000000000000000000000000000C -S3154004CAE000000000000000000000000000000000FC -S3154004CAF000000000000000000000000000000000EC -S3154004CB0000000000000000000000000000000000DB -S3154004CB1000000000000000000000000000000000CB -S3154004CB2000000000000000000000000000000000BB -S3154004CB3000000000000000000000000000000000AB -S3154004CB40000000000000000000000000000000009B -S3154004CB50000000000000000000000000000000008B -S3154004CB60000000000000000000000000000000007B -S3154004CB70000000000000000000000000000000006B -S3154004CB80000000000000000000000000000000005B -S3154004CB90000000000000000000000000000000004B -S3154004CBA0000000000000000000000000000000003B -S3154004CBB0000000000000000000000000000000002B -S3154004CBC0000000000000000000000000000000001B -S3154004CBD0000000000000000000000000000000000B -S3154004CBE000000000000000000000000000000000FB -S3154004CBF000000000000000000000000000000000EB -S3154004CC0000000000000000000000000000000000DA -S3154004CC1000000000000000000000000000000000CA -S3154004CC2000000000000000000000000000000000BA -S3154004CC3000000000000000000000000000000000AA -S3154004CC40000000000000000000000000000000009A -S3154004CC50000000000000000000000000000000008A -S3154004CC60000000000000000000000000000000007A -S3154004CC70000000000000000000000000000000006A -S3154004CC80000000000000000000000000000000005A -S3154004CC90000000000000000000000000000000004A -S3154004CCA0000000000000000000000000000000003A -S3154004CCB0000000000000000000000000000000002A -S3154004CCC0000000000000000000000000000000001A -S3154004CCD0000000000000000000000000000000000A -S3154004CCE000000000000000000000000000000000FA -S3154004CCF000000000000000000000000000000000EA -S3154004CD0000000000000000000000000000000000D9 -S3154004CD1000000000000000000000000000000000C9 -S3154004CD2000000000000000000000000000000000B9 -S3154004CD3000000000000000000000000000000000A9 -S3154004CD400000000000000000000000000000000099 -S3154004CD500000000000000000000000000000000089 -S3154004CD600000000000000000000000000000000079 -S3154004CD700000000000000000000000000000000069 -S3154004CD800000000000000000000000000000000059 -S3154004CD900000000000000000000000000000000049 -S3154004CDA00000000000000000000000000000000039 -S3154004CDB00000000000000000000000000000000029 -S3154004CDC00000000000000000000000000000000019 -S3154004CDD00000000000000000000000000000000009 -S3154004CDE000000000000000000000000000000000F9 -S3154004CDF000000000000000000000000000000000E9 -S3154004CE0000000000000000000000000000000000D8 -S3154004CE1000000000000000000000000000000000C8 -S3154004CE2000000000000000000000000000000000B8 -S3154004CE3000000000000000000000000000000000A8 -S3154004CE400000000000000000000000000000000098 -S3154004CE500000000000000000000000000000000088 -S3154004CE600000000000000000000000000000000078 -S3154004CE700000000000000000000000000000000068 -S3154004CE800000000000000000000000000000000058 -S3154004CE900000000000000000000000000000000048 -S3154004CEA00000000000000000000000000000000038 -S3154004CEB00000000000000000000000000000000028 -S3154004CEC00000000000000000000000000000000018 -S3154004CED00000000000000000000000000000000008 -S3154004CEE000000000000000000000000000000000F8 -S3154004CEF000000000000000000000000000000000E8 -S3154004CF0000000000000000000000000000000000D7 -S3154004CF1000000000000000000000000000000000C7 -S3154004CF2000000000000000000000000000000000B7 -S3154004CF3000000000000000000000000000000000A7 -S3154004CF400000000000000000000000000000000097 -S3154004CF500000000000000000000000000000000087 -S3154004CF600000000000000000000000000000000077 -S3154004CF700000000000000000000000000000000067 -S3154004CF800000000000000000000000000000000057 -S3154004CF900000000000000000000000000000000047 -S3154004CFA00000000000000000000000000000000037 -S3154004CFB00000000000000000000000000000000027 -S3154004CFC00000000000000000000000000000000017 -S3154004CFD00000000000000000000000000000000007 -S3154004CFE000000000000000000000000000000000F7 -S3154004CFF000000000000000000000000000000000E7 -S3154004D00000000000000000000000000000000000D6 -S3154004D01000000000000000000000000000000000C6 -S3154004D02000000000000000000000000000000000B6 -S3154004D03000000000000000000000000000000000A6 -S3154004D0400000000000000000000000000000000096 -S3154004D0500000000000000000000000000000000086 -S3154004D0600000000000000000000000000000000076 -S3154004D0700000000000000000000000000000000066 -S3154004D0800000000000000000000000000000000056 -S3154004D0900000000000000000000000000000000046 -S3154004D0A00000000000000000000000000000000036 -S3154004D0B00000000000000000000000000000000026 -S3154004D0C00000000000000000000000000000000016 -S3154004D0D00000000000000000000000000000000006 -S3154004D0E000000000000000000000000000000000F6 -S3154004D0F000000000000000000000000000000000E6 -S3154004D10000000000000000000000000000000000D5 -S3154004D11000000000000000000000000000000000C5 -S3154004D12000000000000000000000000000000000B5 -S3154004D13000000000000000000000000000000000A5 -S3154004D1400000000000000000000000000000000095 -S3154004D1500000000000000000000000000000000085 -S3154004D1600000000000000000000000000000000075 -S3154004D1700000000000000000000000000000000065 -S3154004D1800000000000000000000000000000000055 -S3154004D1900000000000000000000000000000000045 -S3154004D1A00000000000000000000000000000000035 -S3154004D1B00000000000000000000000000000000025 -S3154004D1C00000000000000000000000000000000015 -S3154004D1D00000000000000000000000000000000005 -S3154004D1E000000000000000000000000000000000F5 -S3154004D1F000000000000000000000000000000000E5 -S3154004D20000000000000000000000000000000000D4 -S3154004D21000000000000000000000000000000000C4 -S3154004D22000000000000000000000000000000000B4 -S3154004D23000000000000000000000000000000000A4 -S3154004D2400000000000000000000000000000000094 -S3154004D2500000000000000000000000000000000084 -S3154004D2600000000000000000000000000000000074 -S3154004D2700000000000000000000000000000000064 -S3154004D2800000000000000000000000000000000054 -S3154004D2900000000000000000000000000000000044 -S3154004D2A00000000000000000000000000000000034 -S3154004D2B00000000000000000000000000000000024 -S3154004D2C00000000000000000000000000000000014 -S3154004D2D00000000000000000000000000000000004 -S3154004D2E000000000000000000000000000000000F4 -S3154004D2F000000000000000000000000000000000E4 -S3154004D30000000000000000000000000000000000D3 -S3154004D31000000000000000000000000000000000C3 -S3154004D32000000000000000000000000000000000B3 -S3154004D33000000000000000000000000000000000A3 -S3154004D3400000000000000000000000000000000093 -S3154004D3500000000000000000000000000000000083 -S3154004D3600000000000000000000000000000000073 -S3154004D3700000000000000000000000000000000063 -S3154004D3800000000000000000000000000000000053 -S3154004D3900000000000000000000000000000000043 -S3154004D3A00000000000000000000000000000000033 -S3154004D3B00000000000000000000000000000000023 -S3154004D3C00000000000000000000000000000000013 -S3154004D3D00000000000000000000000000000000003 -S3154004D3E000000000000000000000000000000000F3 -S3154004D3F000000000000000000000000000000000E3 -S3154004D40000000000000000000000000000000000D2 -S3154004D41000000000000000000000000000000000C2 -S3154004D42000000000000000000000000000000000B2 -S3154004D43000000000000000000000000000000000A2 -S3154004D4400000000000000000000000000000000092 -S3154004D4500000000000000000000000000000000082 -S3154004D4600000000000000000000000000000000072 -S3154004D4700000000000000000000000000000000062 -S3154004D4800000000000000000000000000000000052 -S3154004D4900000000000000000000000000000000042 -S3154004D4A00000000000000000000000000000000032 -S3154004D4B00000000000000000000000000000000022 -S3154004D4C00000000000000000000000000000000012 -S3154004D4D00000000000000000000000000000000002 -S3154004D4E000000000000000000000000000000000F2 -S3154004D4F000000000000000000000000000000000E2 -S3154004D50000000000000000000000000000000000D1 -S3154004D51000000000000000000000000000000000C1 -S3154004D52000000000000000000000000000000000B1 -S3154004D53000000000000000000000000000000000A1 -S3154004D5400000000000000000000000000000000091 -S3154004D5500000000000000000000000000000000081 -S3154004D5600000000000000000000000000000000071 -S3154004D5700000000000000000000000000000000061 -S3154004D5800000000000000000000000000000000051 -S3154004D5900000000000000000000000000000000041 -S3154004D5A00000000000000000000000000000000031 -S3154004D5B00000000000000000000000000000000021 -S3154004D5C00000000000000000000000000000000011 -S3154004D5D00000000000000000000000000000000001 -S3154004D5E000000000000000000000000000000000F1 -S3154004D5F000000000000000000000000000000000E1 -S3154004D60000000000000000000000000000000000D0 -S3154004D61000000000000000000000000000000000C0 -S3154004D62000000000000000000000000000000000B0 -S3154004D63000000000000000000000000000000000A0 -S3154004D6400000000000000000000000000000000090 -S3154004D6500000000000000000000000000000000080 -S3154004D6600000000000000000000000000000000070 -S3154004D6700000000000000000000000000000000060 -S3154004D6800000000000000000000000000000000050 -S3154004D6900000000000000000000000000000000040 -S3154004D6A00000000000000000000000000000000030 -S3154004D6B00000000000000000000000000000000020 -S3154004D6C00000000000000000000000000000000010 -S3154004D6D00000000000000000000000000000000000 -S3154004D6E000000000000000000000000000000000F0 -S3154004D6F000000000000000000000000000000000E0 -S3154004D70000000000000000000000000000000000CF -S3154004D71000000000000000000000000000000000BF -S3154004D72000000000000000000000000000000000AF -S3154004D730000000000000000000000000000000009F -S3154004D740000000000000000000000000000000008F -S3154004D750000000000000000000000000000000007F -S3154004D760000000000000000000000000000000006F -S3154004D770000000000000000000000000000000005F -S3154004D780000000000000000000000000000000004F -S3154004D790000000000000000000000000000000003F -S3154004D7A0000000000000000000000000000000002F -S3154004D7B0000000000000000000000000000000001F -S3154004D7C0000000000000000000000000000000000F -S3154004D7D000000000000000000000000000000000FF -S3154004D7E000000000000000000000000000000000EF -S3154004D7F000000000000000000000000000000000DF -S3154004D80000000000000000000000000000000000CE -S3154004D81000000000000000000000000000000000BE -S3154004D82000000000000000000000000000000000AE -S3154004D830000000000000000000000000000000009E -S3154004D840000000000000000000000000000000008E -S3154004D850000000000000000000000000000000007E -S3154004D860000000000000000000000000000000006E -S3154004D870000000000000000000000000000000005E -S3154004D880000000000000000000000000000000004E -S3154004D890000000000000000000000000000000003E -S3154004D8A0000000000000000000000000000000002E -S3154004D8B0000000000000000000000000000000001E -S3154004D8C0000000000000000000000000000000000E -S3154004D8D000000000000000000000000000000000FE -S3154004D8E000000000000000000000000000000000EE -S3154004D8F000000000000000000000000000000000DE -S3154004D90000000000000000000000000000000000CD -S3154004D91000000000000000000000000000000000BD -S3154004D92000000000000000000000000000000000AD -S3154004D930000000000000000000000000000000009D -S3154004D940000000000000000000000000000000008D -S3154004D950000000000000000000000000000000007D -S3154004D960000000000000000000000000000000006D -S3154004D970000000000000000000000000000000005D -S3154004D980000000000000000000000000000000004D -S3154004D990000000000000000000000000000000003D -S3154004D9A0000000000000000000000000000000002D -S3154004D9B0000000000000000000000000000000001D -S3154004D9C0000000000000000000000000000000000D -S3154004D9D000000000000000000000000000000000FD -S3154004D9E000000000000000000000000000000000ED -S3154004D9F000000000000000000000000000000000DD -S3154004DA0000000000000000000000000000000000CC -S3154004DA1000000000000000000000000000000000BC -S3154004DA2000000000000000000000000000000000AC -S3154004DA30000000000000000000000000000000009C -S3154004DA40000000000000000000000000000000008C -S3154004DA50000000000000000000000000000000007C -S3154004DA60000000000000000000000000000000006C -S3154004DA70000000000000000000000000000000005C -S3154004DA80000000000000000000000000000000004C -S3154004DA90000000000000000000000000000000003C -S3154004DAA0000000000000000000000000000000002C -S3154004DAB0000000000000000000000000000000001C -S3154004DAC0000000000000000000000000000000000C -S3154004DAD000000000000000000000000000000000FC -S3154004DAE000000000000000000000000000000000EC -S3154004DAF000000000000000000000000000000000DC -S3154004DB0000000000000000000000000000000000CB -S3154004DB1000000000000000000000000000000000BB -S3154004DB2000000000000000000000000000000000AB -S3154004DB30000000000000000000000000000000009B -S3154004DB40000000000000000000000000000000008B -S3154004DB50000000000000000000000000000000007B -S3154004DB60000000000000000000000000000000006B -S3154004DB70000000000000000000000000000000005B -S3154004DB80000000000000000000000000000000004B -S3154004DB90000000000000000000000000000000003B -S3154004DBA0000000000000000000000000000000002B -S3154004DBB0000000000000000000000000000000001B -S3154004DBC0000000000000000000000000000000000B -S3154004DBD000000000000000000000000000000000FB -S3154004DBE000000000000000000000000000000000EB -S3154004DBF000000000000000000000000000000000DB -S3154004DC0000000000000000000000000000000000CA -S3154004DC1000000000000000000000000000000000BA -S3154004DC2000000000000000000000000000000000AA -S3154004DC30000000000000000000000000000000009A -S3154004DC40000000000000000000000000000000008A -S3154004DC50000000000000000000000000000000007A -S3154004DC60000000000000000000000000000000006A -S3154004DC70000000000000000000000000000000005A -S3154004DC80000000000000000000000000000000004A -S3154004DC90000000000000000000000000000000003A -S3154004DCA0000000000000000000000000000000002A -S3154004DCB0000000000000000000000000000000001A -S3154004DCC0000000000000000000000000000000000A -S3154004DCD000000000000000000000000000000000FA -S3154004DCE000000000000000000000000000000000EA -S3154004DCF000000000000000000000000000000000DA -S3154004DD0000000000000000000000000000000000C9 -S3154004DD1000000000000000000000000000000000B9 -S3154004DD2000000000000000000000000000000000A9 -S3154004DD300000000000000000000000000000000099 -S3154004DD400000000000000000000000000000000089 -S3154004DD500000000000000000000000000000000079 -S3154004DD600000000000000000000000000000000069 -S3154004DD700000000000000000000000000000000059 -S3154004DD800000000000000000000000000000000049 -S3154004DD900000000000000000000000000000000039 -S3154004DDA00000000000000000000000000000000029 -S3154004DDB00000000000000000000000000000000019 -S3154004DDC00000000000000000000000000000000009 -S3154004DDD000000000000000000000000000000000F9 -S3154004DDE000000000000000000000000000000000E9 -S3154004DDF000000000000000000000000000000000D9 -S3154004DE0000000000000000000000000000000000C8 -S3154004DE1000000000000000000000000000000000B8 -S3154004DE2000000000000000000000000000000000A8 -S3154004DE300000000000000000000000000000000098 -S3154004DE400000000000000000000000000000000088 -S3154004DE500000000000000000000000000000000078 -S3154004DE600000000000000000000000000000000068 -S3154004DE700000000000000000000000000000000058 -S3154004DE800000000000000000000000000000000048 -S3154004DE900000000000000000000000000000000038 -S3154004DEA00000000000000000000000000000000028 -S3154004DEB00000000000000000000000000000000018 -S3154004DEC00000000000000000000000000000000008 -S3154004DED000000000000000000000000000000000F8 -S3154004DEE000000000000000000000000000000000E8 -S3154004DEF000000000000000000000000000000000D8 -S3154004DF0000000000000000000000000000000000C7 -S3154004DF1000000000000000000000000000000000B7 -S3154004DF2000000000000000000000000000000000A7 -S3154004DF300000000000000000000000000000000097 -S3154004DF400000000000000000000000000000000087 -S3154004DF500000000000000000000000000000000077 -S3154004DF600000000000000000000000000000000067 -S3154004DF700000000000000000000000000000000057 -S3154004DF800000000000000000000000000000000047 -S3154004DF900000000000000000000000000000000037 -S3154004DFA00000000000000000000000000000000027 -S3154004DFB00000000000000000000000000000000017 -S3154004DFC00000000000000000000000000000000007 -S3154004DFD000000000000000000000000000000000F7 -S3154004DFE000000000000000000000000000000000E7 -S3154004DFF000000000000000000000000000000000D7 -S3154004E00000000000000000000000000000000000C6 -S3154004E01000000000000000000000000000000000B6 -S3154004E02000000000000000000000000000000000A6 -S3154004E0300000000000000000000000000000000096 -S3154004E0400000000000000000000000000000000086 -S3154004E0500000000000000000000000000000000076 -S3154004E0600000000000000000000000000000000066 -S3154004E0700000000000000000000000000000000056 -S3154004E0800000000000000000000000000000000046 -S3154004E0900000000000000000000000000000000036 -S3154004E0A00000000000000000000000000000000026 -S3154004E0B00000000000000000000000000000000016 -S3154004E0C00000000000000000000000000000000006 -S3154004E0D000000000000000000000000000000000F6 -S3154004E0E000000000000000000000000000000000E6 -S3154004E0F000000000000000000000000000000000D6 -S3154004E10000000000000000000000000000000000C5 -S3154004E11000000000000000000000000000000000B5 -S3154004E12000000000000000000000000000000000A5 -S3154004E1300000000000000000000000000000000095 -S3154004E1400000000000000000000000000000000085 -S3154004E1500000000000000000000000000000000075 -S3154004E1600000000000000000000000000000000065 -S3154004E1700000000000000000000000000000000055 -S3154004E1800000000000000000000000000000000045 -S3154004E1900000000000000000000000000000000035 -S3154004E1A00000000000000000000000000000000025 -S3154004E1B00000000000000000000000000000000015 -S3154004E1C00000000000000000000000000000000005 -S3154004E1D000000000000000000000000000000000F5 -S3154004E1E000000000000000000000000000000000E5 -S3154004E1F000000000000000000000000000000000D5 -S3154004E20000000000000000000000000000000000C4 -S3154004E21000000000000000000000000000000000B4 -S3154004E22000000000000000000000000000000000A4 -S3154004E2300000000000000000000000000000000094 -S3154004E2400000000000000000000000000000000084 -S3154004E2500000000000000000000000000000000074 -S3154004E2600000000000000000000000000000000064 -S3154004E2700000000000000000000000000000000054 -S3154004E2800000000000000000000000000000000044 -S3154004E2900000000000000000000000000000000034 -S3154004E2A00000000000000000000000000000000024 -S3154004E2B00000000000000000000000000000000014 -S3154004E2C00000000000000000000000000000000004 -S3154004E2D000000000000000000000000000000000F4 -S3154004E2E000000000000000000000000000000000E4 -S3154004E2F000000000000000000000000000000000D4 -S3154004E30000000000000000000000000000000000C3 -S3154004E31000000000000000000000000000000000B3 -S3154004E32000000000000000000000000000000000A3 -S3154004E3300000000000000000000000000000000093 -S3154004E3400000000000000000000000000000000083 -S3154004E3500000000000000000000000000000000073 -S3154004E3600000000000000000000000000000000063 -S3154004E3700000000000000000000000000000000053 -S3154004E3800000000000000000000000000000000043 -S3154004E3900000000000000000000000000000000033 -S3154004E3A00000000000000000000000000000000023 -S3154004E3B00000000000000000000000000000000013 -S3154004E3C00000000000000000000000000000000003 -S3154004E3D000000000000000000000000000000000F3 -S3154004E3E000000000000000000000000000000000E3 -S3154004E3F000000000000000000000000000000000D3 -S3154004E40000000000000000000000000000000000C2 -S3154004E41000000000000000000000000000000000B2 -S3154004E42000000000000000000000000000000000A2 -S3154004E4300000000000000000000000000000000092 -S3154004E4400000000000000000000000000000000082 -S3154004E4500000000000000000000000000000000072 -S3154004E4600000000000000000000000000000000062 -S3154004E4700000000000000000000000000000000052 -S3154004E4800000000000000000000000000000000042 -S3154004E4900000000000000000000000000000000032 -S3154004E4A00000000000000000000000000000000022 -S3154004E4B00000000000000000000000000000000012 -S3154004E4C00000000000000000000000000000000002 -S3154004E4D000000000000000000000000000000000F2 -S3154004E4E000000000000000000000000000000000E2 -S3154004E4F000000000000000000000000000000000D2 -S3154004E50000000000000000000000000000000000C1 -S3154004E51000000000000000000000000000000000B1 -S3154004E52000000000000000000000000000000000A1 -S3154004E5300000000000000000000000000000000091 -S3154004E5400000000000000000000000000000000081 -S3154004E5500000000000000000000000000000000071 -S3154004E5600000000000000000000000000000000061 -S3154004E5700000000000000000000000000000000051 -S3154004E5800000000000000000000000000000000041 -S3154004E5900000000000000000000000000000000031 -S3154004E5A00000000000000000000000000000000021 -S3154004E5B00000000000000000000000000000000011 -S3154004E5C00000000000000000000000000000000001 -S3154004E5D000000000000000000000000000000000F1 -S3154004E5E000000000000000000000000000000000E1 -S3154004E5F000000000000000000000000000000000D1 -S3154004E60000000000000000000000000000000000C0 -S3154004E61000000000000000000000000000000000B0 -S3154004E62000000000000000000000000000000000A0 -S3154004E6300000000000000000000000000000000090 -S3154004E6400000000000000000000000000000000080 -S3154004E6500000000000000000000000000000000070 -S3154004E6600000000000000000000000000000000060 -S3154004E6700000000000000000000000000000000050 -S3154004E6800000000000000000000000000000000040 -S3154004E6900000000000000000000000000000000030 -S3154004E6A00000000000000000000000000000000020 -S3154004E6B00000000000000000000000000000000010 -S3154004E6C00000000000000000000000000000000000 -S3154004E6D000000000000000000000000000000000F0 -S3154004E6E000000000000000000000000000000000E0 -S3154004E6F000000000000000000000000000000000D0 -S3154004E70000000000000000000000000000000000BF -S3154004E71000000000000000000000000000000000AF -S3154004E720000000000000000000000000000000009F -S3154004E730000000000000000000000000000000008F -S3154004E740000000000000000000000000000000007F -S3154004E750000000000000000000000000000000006F -S3154004E760000000000000000000000000000000005F -S3154004E770000000000000000000000000000000004F -S3154004E780000000000000000000000000000000003F -S3154004E790000000000000000000000000000000002F -S3154004E7A0000000000000000000000000000000001F -S3154004E7B0000000000000000000000000000000000F -S3154004E7C000000000000000000000000000000000FF -S3154004E7D000000000000000000000000000000000EF -S3154004E7E000000000000000000000000000000000DF -S3154004E7F000000000000000000000000000000000CF -S3154004E80000000000000000000000000000000000BE -S3154004E81000000000000000000000000000000000AE -S3154004E820000000000000000000000000000000009E -S3154004E830000000000000000000000000000000008E -S3154004E840000000000000000000000000000000007E -S3154004E850000000000000000000000000000000006E -S3154004E860000000000000000000000000000000005E -S3154004E870000000000000000000000000000000004E -S3154004E880000000000000000000000000000000003E -S3154004E890000000000000000000000000000000002E -S3154004E8A0000000000000000000000000000000001E -S3154004E8B0000000000000000000000000000000000E -S3154004E8C000000000000000000000000000000000FE -S3154004E8D000000000000000000000000000000000EE -S3154004E8E000000000000000000000000000000000DE -S3154004E8F000000000000000000000000000000000CE -S3154004E90000000000000000000000000000000000BD -S3154004E91000000000000000000000000000000000AD -S3154004E920000000000000000000000000000000009D -S3154004E930000000000000000000000000000000008D -S3154004E940000000000000000000000000000000007D -S3154004E950000000000000000000000000000000006D -S3154004E960000000000000000000000000000000005D -S3154004E970000000000000000000000000000000004D -S3154004E980000000000000000000000000000000003D -S3154004E990000000000000000000000000000000002D -S3154004E9A0000000000000000000000000000000001D -S3154004E9B0000000000000000000000000000000000D -S3154004E9C000000000000000000000000000000000FD -S3154004E9D000000000000000000000000000000000ED -S3154004E9E000000000000000000000000000000000DD -S3154004E9F000000000000000000000000000000000CD -S3154004EA0000000000000000000000000000000000BC -S3154004EA1000000000000000000000000000000000AC -S3154004EA20000000000000000000000000000000009C -S3154004EA30000000000000000000000000000000008C -S3154004EA40000000000000000000000000000000007C -S3154004EA50000000000000000000000000000000006C -S3154004EA60000000000000000000000000000000005C -S3154004EA70000000000000000000000000000000004C -S3154004EA80000000000000000000000000000000003C -S3154004EA90000000000000000000000000000000002C -S3154004EAA0000000000000000000000000000000001C -S3154004EAB0000000000000000000000000000000000C -S3154004EAC000000000000000000000000000000000FC -S3154004EAD000000000000000000000000000000000EC -S3154004EAE000000000000000000000000000000000DC -S3154004EAF000000000000000000000000000000000CC -S3154004EB0000000000000000000000000000000000BB -S3154004EB1000000000000000000000000000000000AB -S3154004EB20000000000000000000000000000000009B -S3154004EB30000000000000000000000000000000008B -S3154004EB40000000000000000000000000000000007B -S3154004EB50000000000000000000000000000000006B -S3154004EB60000000000000000000000000000000005B -S3154004EB70000000000000000000000000000000004B -S3154004EB80000000000000000000000000000000003B -S3154004EB90000000000000000000000000000000002B -S3154004EBA0000000000000000000000000000000001B -S3154004EBB0000000000000000000000000000000000B -S3154004EBC000000000000000000000000000000000FB -S3154004EBD000000000000000000000000000000000EB -S3154004EBE000000000000000000000000000000000DB -S3154004EBF000000000000000000000000000000000CB -S3154004EC0000000000000000000000000000000000BA -S3154004EC1000000000000000000000000000000000AA -S3154004EC20000000000000000000000000000000009A -S3154004EC30000000000000000000000000000000008A -S3154004EC40000000000000000000000000000000007A -S3154004EC50000000000000000000000000000000006A -S3154004EC60000000000000000000000000000000005A -S3154004EC70000000000000000000000000000000004A -S3154004EC80000000000000000000000000000000003A -S3154004EC90000000000000000000000000000000002A -S3154004ECA0000000000000000000000000000000001A -S3154004ECB0000000000000000000000000000000000A -S3154004ECC000000000000000000000000000000000FA -S3154004ECD000000000000000000000000000000000EA -S3154004ECE000000000000000000000000000000000DA -S3154004ECF000000000000000000000000000000000CA -S3154004ED0000000000000000000000000000000000B9 -S3154004ED1000000000000000000000000000000000A9 -S3154004ED200000000000000000000000000000000099 -S3154004ED300000000000000000000000000000000089 -S3154004ED400000000000000000000000000000000079 -S3154004ED500000000000000000000000000000000069 -S3154004ED600000000000000000000000000000000059 -S3154004ED700000000000000000000000000000000049 -S3154004ED800000000000000000000000000000000039 -S3154004ED900000000000000000000000000000000029 -S3154004EDA00000000000000000000000000000000019 -S3154004EDB00000000000000000000000000000000009 -S3154004EDC000000000000000000000000000000000F9 -S3154004EDD000000000000000000000000000000000E9 -S3154004EDE000000000000000000000000000000000D9 -S3154004EDF000000000000000000000000000000000C9 -S3154004EE0000000000000000000000000000000000B8 -S3154004EE1000000000000000000000000000000000A8 -S3154004EE200000000000000000000000000000000098 -S3154004EE300000000000000000000000000000000088 -S3154004EE400000000000000000000000000000000078 -S3154004EE500000000000000000000000000000000068 -S3154004EE600000000000000000000000000000000058 -S3154004EE700000000000000000000000000000000048 -S3154004EE800000000000000000000000000000000038 -S3154004EE900000000000000000000000000000000028 -S3154004EEA00000000000000000000000000000000018 -S3154004EEB00000000000000000000000000000000008 -S3154004EEC000000000000000000000000000000000F8 -S3154004EED000000000000000000000000000000000E8 -S3154004EEE000000000000000000000000000000000D8 -S3154004EEF000000000000000000000000000000000C8 -S3154004EF0000000000000000000000000000000000B7 -S3154004EF1000000000000000000000000000000000A7 -S3154004EF200000000000000000000000000000000097 -S3154004EF300000000000000000000000000000000087 -S3154004EF400000000000000000000000000000000077 -S3154004EF500000000000000000000000000000000067 -S3154004EF600000000000000000000000000000000057 -S3154004EF700000000000000000000000000000000047 -S3154004EF800000000000000000000000000000000037 -S3154004EF900000000000000000000000000000000027 -S3154004EFA00000000000000000000000000000000017 -S3154004EFB00000000000000000000000000000000007 -S3154004EFC000000000000000000000000000000000F7 -S3154004EFD000000000000000000000000000000000E7 -S3154004EFE000000000000000000000000000000000D7 -S3154004EFF000000000000000000000000000000000C7 -S3154004F00000000000000000000000000000000000B6 -S3154004F01000000000000000000000000000000000A6 -S3154004F0200000000000000000000000000000000096 -S3154004F0300000000000000000000000000000000086 -S3154004F0400000000000000000000000000000000076 -S3154004F0500000000000000000000000000000000066 -S3154004F0600000000000000000000000000000000056 -S3154004F0700000000000000000000000000000000046 -S3154004F0800000000000000000000000000000000036 -S3154004F0900000000000000000000000000000000026 -S3154004F0A00000000000000000000000000000000016 -S3154004F0B00000000000000000000000000000000006 -S3154004F0C000000000000000000000000000000000F6 -S3154004F0D000000000000000000000000000000000E6 -S3154004F0E000000000000000000000000000000000D6 -S3154004F0F000000000000000000000000000000000C6 -S3154004F10000000000000000000000000000000000B5 -S3154004F11000000000000000000000000000000000A5 -S3154004F1200000000000000000000000000000000095 -S3154004F1300000000000000000000000000000000085 -S3154004F1400000000000000000000000000000000075 -S3154004F1500000000000000000000000000000000065 -S3154004F1600000000000000000000000000000000055 -S3154004F1700000000000000000000000000000000045 -S3154004F1800000000000000000000000000000000035 -S3154004F1900000000000000000000000000000000025 -S3154004F1A00000000000000000000000000000000015 -S3154004F1B00000000000000000000000000000000005 -S3154004F1C000000000000000000000000000000000F5 -S3154004F1D000000000000000000000000000000000E5 -S3154004F1E000000000000000000000000000000000D5 -S3154004F1F000000000000000000000000000000000C5 -S3154004F20000000000000000000000000000000000B4 -S3154004F21000000000000000000000000000000000A4 -S3154004F2200000000000000000000000000000000094 -S3154004F2300000000000000000000000000000000084 -S3154004F2400000000000000000000000000000000074 -S3154004F2500000000000000000000000000000000064 -S3154004F2600000000000000000000000000000000054 -S3154004F2700000000000000000000000000000000044 -S3154004F2800000000000000000000000000000000034 -S3154004F2900000000000000000000000000000000024 -S3154004F2A00000000000000000000000000000000014 -S3154004F2B00000000000000000000000000000000004 -S3154004F2C000000000000000000000000000000000F4 -S3154004F2D000000000000000000000000000000000E4 -S3154004F2E000000000000000000000000000000000D4 -S3154004F2F000000000000000000000000000000000C4 -S3154004F30000000000000000000000000000000000B3 -S3154004F31000000000000000000000000000000000A3 -S3154004F3200000000000000000000000000000000093 -S3154004F3300000000000000000000000000000000083 -S3154004F3400000000000000000000000000000000073 -S3154004F3500000000000000000000000000000000063 -S3154004F3600000000000000000000000000000000053 -S3154004F3700000000000000000000000000000000043 -S3154004F3800000000000000000000000000000000033 -S3154004F3900000000000000000000000000000000023 -S3154004F3A00000000000000000000000000000000013 -S3154004F3B00000000000000000000000000000000003 -S3154004F3C000000000000000000000000000000000F3 -S3154004F3D000000000000000000000000000000000E3 -S3154004F3E000000000000000000000000000000000D3 -S3154004F3F000000000000000000000000000000000C3 -S3154004F40000000000000000000000000000000000B2 -S3154004F41000000000000000000000000000000000A2 -S3154004F4200000000000000000000000000000000092 -S3154004F4300000000000000000000000000000000082 -S3154004F4400000000000000000000000000000000072 -S3154004F4500000000000000000000000000000000062 -S3154004F4600000000000000000000000000000000052 -S3154004F4700000000000000000000000000000000042 -S3154004F4800000000000000000000000000000000032 -S3154004F4900000000000000000000000000000000022 -S3154004F4A00000000000000000000000000000000012 -S3154004F4B00000000000000000000000000000000002 -S3154004F4C000000000000000000000000000000000F2 -S3154004F4D000000000000000000000000000000000E2 -S3154004F4E000000000000000000000000000000000D2 -S3154004F4F000000000000000000000000000000000C2 -S3154004F50000000000000000000000000000000000B1 -S3154004F51000000000000000000000000000000000A1 -S3154004F5200000000000000000000000000000000091 -S3154004F5300000000000000000000000000000000081 -S3154004F5400000000000000000000000000000000071 -S3154004F5500000000000000000000000000000000061 -S3154004F5600000000000000000000000000000000051 -S3154004F5700000000000000000000000000000000041 -S3154004F5800000000000000000000000000000000031 -S3154004F5900000000000000000000000000000000021 -S3154004F5A00000000000000000000000000000000011 -S3154004F5B00000000000000000000000000000000001 -S3154004F5C000000000000000000000000000000000F1 -S3154004F5D000000000000000000000000000000000E1 -S3154004F5E000000000000000000000000000000000D1 -S3154004F5F000000000000000000000000000000000C1 -S3154004F60000000000000000000000000000000000B0 -S3154004F61000000000000000000000000000000000A0 -S3154004F6200000000000000000000000000000000090 -S3154004F6300000000000000000000000000000000080 -S3154004F6400000000000000000000000000000000070 -S3154004F6500000000000000000000000000000000060 -S3154004F6600000000000000000000000000000000050 -S3154004F6700000000000000000000000000000000040 -S3154004F6800000000000000000000000000000000030 -S3154004F6900000000000000000000000000000000020 -S3154004F6A00000000000000000000000000000000010 -S3154004F6B00000000000000000000000000000000000 -S3154004F6C000000000000000000000000000000000F0 -S3154004F6D000000000000000000000000000000000E0 -S3154004F6E000000000000000000000000000000000D0 -S3154004F6F000000000000000000000000000000000C0 -S3154004F70000000000000000000000000000000000AF -S3154004F710000000000000000000000000000000009F -S3154004F720000000000000000000000000000000008F -S3154004F730000000000000000000000000000000007F -S3154004F740000000000000000000000000000000006F -S3154004F750000000000000000000000000000000005F -S3154004F760000000000000000000000000000000004F -S3154004F770000000000000000000000000000000003F -S3154004F780000000000000000000000000000000002F -S3154004F790000000000000000000000000000000001F -S3154004F7A0000000000000000000000000000000000F -S3154004F7B000000000000000000000000000000000FF -S3154004F7C000000000000000000000000000000000EF -S3154004F7D000000000000000000000000000000000DF -S3154004F7E000000000000000000000000000000000CF -S3154004F7F000000000000000000000000000000000BF -S3154004F80000000000000000000000000000000000AE -S3154004F810000000000000000000000000000000009E -S3154004F820000000000000000000000000000000008E -S3154004F830000000000000000000000000000000007E -S3154004F840000000000000000000000000000000006E -S3154004F850000000000000000000000000000000005E -S3154004F860000000000000000000000000000000004E -S3154004F870000000000000000000000000000000003E -S3154004F880000000000000000000000000000000002E -S3154004F890000000000000000000000000000000001E -S3154004F8A0000000000000000000000000000000000E -S3154004F8B000000000000000000000000000000000FE -S3154004F8C000000000000000000000000000000000EE -S3154004F8D000000000000000000000000000000000DE -S3154004F8E000000000000000000000000000000000CE -S3154004F8F000000000000000000000000000000000BE -S3154004F90000000000000000000000000000000000AD -S3154004F910000000000000000000000000000000009D -S3154004F920000000000000000000000000000000008D -S3154004F930000000000000000000000000000000007D -S3154004F940000000000000000000000000000000006D -S3154004F950000000000000000000000000000000005D -S3154004F960000000000000000000000000000000004D -S3154004F970000000000000000000000000000000003D -S3154004F980000000000000000000000000000000002D -S3154004F990000000000000000000000000000000001D -S3154004F9A0000000000000000000000000000000000D -S3154004F9B000000000000000000000000000000000FD -S3154004F9C000000000000000000000000000000000ED -S3154004F9D000000000000000000000000000000000DD -S3154004F9E000000000000000000000000000000000CD -S3154004F9F000000000000000000000000000000000BD -S3154004FA0000000000000000000000000000000000AC -S3154004FA10000000000000000000000000000000009C -S3154004FA20000000000000000000000000000000008C -S3154004FA30000000000000000000000000000000007C -S3154004FA40000000000000000000000000000000006C -S3154004FA50000000000000000000000000000000005C -S3154004FA60000000000000000000000000000000004C -S3154004FA70000000000000000000000000000000003C -S3154004FA80000000000000000000000000000000002C -S3154004FA90000000000000000000000000000000001C -S3154004FAA0000000000000000000000000000000000C -S3154004FAB000000000000000000000000000000000FC -S3154004FAC000000000000000000000000000000000EC -S3154004FAD000000000000000000000000000000000DC -S3154004FAE000000000000000000000000000000000CC -S3154004FAF000000000000000000000000000000000BC -S3154004FB0000000000000000000000000000000000AB -S3154004FB10000000000000000000000000000000009B -S3154004FB20000000000000000000000000000000008B -S3154004FB30000000000000000000000000000000007B -S3154004FB40000000000000000000000000000000006B -S3154004FB50000000000000000000000000000000005B -S3154004FB60000000000000000000000000000000004B -S3154004FB70000000000000000000000000000000003B -S3154004FB80000000000000000000000000000000002B -S3154004FB90000000000000000000000000000000001B -S3154004FBA0000000000000000000000000000000000B -S3154004FBB000000000000000000000000000000000FB -S3154004FBC000000000000000000000000000000000EB -S3154004FBD000000000000000000000000000000000DB -S3154004FBE000000000000000000000000000000000CB -S3154004FBF000000000000000000000000000000000BB -S3154004FC0000000000000000000000000000000000AA -S3154004FC10000000000000000000000000000000009A -S3154004FC20000000000000000000000000000000008A -S3154004FC30000000000000000000000000000000007A -S3154004FC40000000000000000000000000000000006A -S3154004FC50000000000000000000000000000000005A -S3154004FC60000000000000000000000000000000004A -S3154004FC70000000000000000000000000000000003A -S3154004FC80000000000000000000000000000000002A -S3154004FC90000000000000000000000000000000001A -S3154004FCA0000000000000000000000000000000000A -S3154004FCB000000000000000000000000000000000FA -S3154004FCC000000000000000000000000000000000EA -S3154004FCD000000000000000000000000000000000DA -S3154004FCE000000000000000000000000000000000CA -S3154004FCF000000000000000000000000000000000BA -S3154004FD0000000000000000000000000000000000A9 -S3154004FD100000000000000000000000000000000099 -S3154004FD200000000000000000000000000000000089 -S3154004FD300000000000000000000000000000000079 -S3154004FD400000000000000000000000000000000069 -S3154004FD500000000000000000000000000000000059 -S3154004FD600000000000000000000000000000000049 -S3154004FD700000000000000000000000000000000039 -S3154004FD800000000000000000000000000000000029 -S3154004FD900000000000000000000000000000000019 -S3154004FDA00000000000000000000000000000000009 -S3154004FDB000000000000000000000000000000000F9 -S3154004FDC000000000000000000000000000000000E9 -S3154004FDD000000000000000000000000000000000D9 -S3154004FDE000000000000000000000000000000000C9 -S3154004FDF000000000000000000000000000000000B9 -S3154004FE0000000000000000000000000000000000A8 -S3154004FE100000000000000000000000000000000098 -S3154004FE200000000000000000000000000000000088 -S3154004FE300000000000000000000000000000000078 -S3154004FE400000000000000000000000000000000068 -S3154004FE500000000000000000000000000000000058 -S3154004FE600000000000000000000000000000000048 -S3154004FE700000000000000000000000000000000038 -S3154004FE800000000000000000000000000000000028 -S3154004FE900000000000000000000000000000000018 -S3154004FEA00000000000000000000000000000000008 -S3154004FEB000000000000000000000000000000000F8 -S3154004FEC000000000000000000000000000000000E8 -S3154004FED000000000000000000000000000000000D8 -S3154004FEE000000000000000000000000000000000C8 -S3154004FEF000000000000000000000000000000000B8 -S3154004FF0000000000000000000000000000000000A7 -S3154004FF100000000000000000000000000000000097 -S3154004FF200000000000000000000000000000000087 -S3154004FF300000000000000000000000000000000077 -S3154004FF400000000000000000000000000000000067 -S3154004FF500000000000000000000000000000000057 -S3154004FF600000000000000000000000000000000047 -S3154004FF700000000000000000000000000000000037 -S3154004FF800000000000000000000000000000000027 -S3154004FF900000000000000000000000000000000017 -S3154004FFA00000000000000000000000000000000007 -S3154004FFB000000000000000000000000000000000F7 -S3154004FFC000000000000000000000000000000000E7 -S3154004FFD000000000000000000000000000000000D7 -S3154004FFE000000000000000000000000000000000C7 -S3154004FFF000000000000000000000000000000000B7 -S3154005000000000002000000030000000000000000A0 -S315400500100000000100000000FFFFFFFE0000000396 -S3154005002055555554FFFFFFFE0000000355555554E1 -S31540050030700FFFFE00000007100249240000000073 -S315400500400000000000000000000000020000000360 -S315400500500000000000000003FFFFFFFEFFFFFFFF5B -S3154005006000000002FFFFFFFD000000000000000049 -S31540050070000000010000000000000000FFFFFFFF38 -S315400500800000000000000001FFFFFFFFFFFFFFFF2C -S31540050090FFFFFFFF00000001FFFFFFFFFFFFFFFE21 -S315400500A00000000300000000FFFFFFFEFFFFFFFD0D -S315400500B000000000000000090000000700000001E4 -S315400500C0FFFFFFF700000002FFFFFFFCFFFFFFF801 -S315400500D000000002FFFFFFFCFFFFFFF8FFFFFFFCEC -S315400500E00000000200000008FFFFFFFCFFFFFFFEC7 -S315400500F0FFFFFFF8FFFFFFF800000001FFFFFFF8D5 -S31540050100FFFFFFF7000000000000000B00000002A3 -S31540050110000000050000002F000000020000001747 -S3154005012000003039000002A700000012FFFF076CEF -S315400501300000004DFFFFFCC600003039FFFFFD59AA -S31540050140FFFFFFEEFFFF076CFFFFFFB30000033A1B -S3154005015000000091FFFFE84100000000FFFFFD841D -S31540050160FFFED02F000000000000F6FA006E498120 -S315400501700000000000000000000000000000000034 -S31540050180FFFFF0000000000200000003000000062B -S3154005019000000002FFFFFFFDFFFFFFFA0000000021 -S315400501A0000000010000000000000000FFFFFFFF07 -S315400501B00000000000000001FFFFFFFFFFFFFFFFFB -S315400501C0FFFFFFFF00000001FFFFFFFFFFFFFFFEF0 -S315400501D000000003FFFFFFFAFFFFFFFEFFFFFFFDE5 -S315400501E000000006000000000000000000000009B5 -S315400501F000000000000000000000000000000000B4 -S31540050200000000000000000100000002000000039D -S315400502100000000000000000000000000000000093 -S31540050220000000004005050C400505D8400506A41C -S315400502300000000000000000000000000000000073 -S315400502400000000000000000000000000000000063 -S31540050250000000004001B5800000000000000000DD -S315400502600000000000000000000000000000000043 -S315400502700000000000000000000000000000000033 -S315400502800000000000000000000000000000000023 -S315400502900000000000000000000000000000000013 -S315400502A00000000000000000000000000000000003 -S315400502B000000000000000000000000000000000F3 -S315400502C000000000000000000000000000000001E2 -S315400502D0330EABCD1234E66DDEEC0005000B0000A7 -S315400502E000000000000000000000000000000000C3 -S315400502F000000000000000000000000000000000B3 -S3154005030000000000000000000000000000000000A2 -S315400503100000000000000000000000000000000092 -S315400503200000000000000000000000000000000082 -S315400503300000000000000000000000000000000072 -S315400503400000000000000000000000000000000062 -S315400503500000000000000000000000000000000052 -S315400503600000000000000000000000000000000042 -S315400503700000000000000000000000000000000032 -S315400503800000000000000000000000000000000022 -S315400503900000000000000000000000000000000012 -S315400503A00000000000000000000000000000000002 -S315400503B000000000000000000000000000000000F2 -S315400503C000000000000000000000000000000000E2 -S315400503D000000000000000000000000000000000D2 -S315400503E000000000000000000000000000000000C2 -S315400503F000000000000000000000000000000000B2 -S3154005040000000000000000000000000000000000A1 -S315400504100000000000000000000000000000000091 -S315400504200000000000000000000000000000000081 -S315400504300000000000000000000000000000000071 -S315400504400000000000000000000000000000000061 -S315400504500000000000000000000000000000000051 -S315400504600000000000000000000000000000000041 -S315400504700000000000000000000000000000000031 -S315400504800000000000000000000000000000000021 -S315400504900000000000000000000000000000000011 -S315400504A00000000000000000000000000000000001 -S315400504B000000000000000000000000000000000F1 -S315400504C000000000000000000000000000000000E1 -S315400504D000000000000000000000000000000000D1 -S315400504E000000000000000000000000000000000C1 -S315400504F000000000000000000000000000000000B1 -S3154005050000000000000000000000000000000000A0 -S315400505100000000000000000000000000000000090 -S315400505200000000000000000000000000000000080 -S315400505300000000000000000000000000000000070 -S315400505400000000000000000000000000000000060 -S315400505500000000000000000000000000000000050 -S315400505600000000000000000000000000000000040 -S315400505700000000000000000000000000000000030 -S315400505800000000000000000000000000000000020 -S315400505900000000000000000000000000000000010 -S315400505A00000000000000000000000000000000000 -S315400505B000000000000000000000000000000000F0 -S315400505C000000000000000000000000000000000E0 -S315400505D000000000000000000000000000000000D0 -S315400505E000000000000000000000000000000000C0 -S315400505F000000000000000000000000000000000B0 -S31540050600000000000000000000000000000000009F -S31540050610000000000000000000000000000000008F -S31540050620000000000000000000000000000000007F -S31540050630000000000000000000000000000000006F -S31540050640000000000000000000000000000000005F -S31540050650000000000000000000000000000000004F -S31540050660000000000000000000000000000000003F -S31540050670000000000000000000000000000000002F -S31540050680000000000000000000000000000000001F -S31540050690000000000000000000000000000000000F -S315400506A000000000000000000000000000000000FF -S315400506B000000000000000000000000000000000EF -S315400506C000000000000000000000000000000000DF -S315400506D000000000000000000000000000000000CF -S315400506E000000000000000000000000000000000BF -S315400506F000000000000000000000000000000000AF -S31540050700000000000000000000000000000000009E -S31540050710000000000000000000000000000000008E -S31540050720000000000000000000000000000000007E -S31540050730000000000000000000000000000000006E -S31540050740000000000000000000000000000000005E -S31540050750000000000000000000000000000000004E -S31540050760000000000000000000000000000000003E -S315400507704005022000000000FFFFFFFF00020000C9 -S315400507800000000000000000400507804005078086 -S3154005079040050788400507884005079040050790AE -S315400507A04005079840050798400507A0400507A05E -S315400507B0400507A8400507A8400507B0400507B00E -S315400507C0400507B8400507B8400507C0400507C0BE -S315400507D0400507C8400507C8400507D0400507D06E -S315400507E0400507D8400507D8400507E0400507E01E -S315400507F0400507E8400507E8400507F0400507F0CE -S31540050800400507F8400507F840050800400508007B -S315400508104005080840050808400508104005081029 -S3154005082040050818400508184005082040050820D9 -S315400508304005082840050828400508304005083089 -S315400508404005083840050838400508404005084039 -S3154005085040050848400508484005085040050850E9 -S315400508604005085840050858400508604005086099 -S315400508704005086840050868400508704005087049 -S3154005088040050878400508784005088040050880F9 -S3154005089040050888400508884005089040050890A9 -S315400508A04005089840050898400508A0400508A059 -S315400508B0400508A8400508A8400508B0400508B009 -S315400508C0400508B8400508B8400508C0400508C0B9 -S315400508D0400508C8400508C8400508D0400508D069 -S315400508E0400508D8400508D8400508E0400508E019 -S315400508F0400508E8400508E8400508F0400508F0C9 -S31540050900400508F8400508F8400509004005090076 -S315400509104005090840050908400509104005091024 -S3154005092040050918400509184005092040050920D4 -S315400509304005092840050928400509304005093084 -S315400509404005093840050938400509404005094034 -S3154005095040050948400509484005095040050950E4 -S315400509604005095840050958400509604005096094 -S315400509704005096840050968400509704005097044 -S3154005098040050978400509784005098040050980F4 -S3154005099040050988400509884005099040050990A4 -S315400509A04005099840050998400509A0400509A054 -S315400509B0400509A8400509A8400509B0400509B004 -S315400509C0400509B8400509B8400509C0400509C0B4 -S315400509D0400509C8400509C8400509D0400509D064 -S315400509E0400509D8400509D8400509E0400509E014 -S315400509F0400509E8400509E8400509F0400509F0C4 -S31540050A00400509F8400509F840050A0040050A0071 -S31540050A1040050A0840050A0840050A1040050A101F -S31540050A2040050A1840050A1840050A2040050A20CF -S31540050A3040050A2840050A2840050A3040050A307F -S31540050A4040050A3840050A3840050A4040050A402F -S31540050A5040050A4840050A4840050A5040050A50DF -S31540050A6040050A5840050A5840050A6040050A608F -S31540050A7040050A6840050A6840050A7040050A703F -S31540050A8040050A7840050A7840050A8040050A80EF -S31540050A9040050A8840050A8840050A9040050A909F -S31540050AA040050A9840050A9840050AA040050AA04F -S31540050AB040050AA840050AA840050AB040050AB0FF -S31540050AC040050AB840050AB840050AC040050AC0AF -S31540050AD040050AC840050AC840050AD040050AD05F -S31540050AE040050AD840050AD840050AE040050AE00F -S31540050AF040050AE840050AE840050AF040050AF0BF -S31540050B0040050AF840050AF840050B0040050B006C -S31540050B1040050B0840050B0840050B1040050B101A -S31540050B2040050B1840050B1840050B2040050B20CA -S31540050B3040050B2840050B2840050B3040050B307A -S31540050B4040050B3840050B3840050B4040050B402A -S31540050B5040050B4840050B4840050B5040050B50DA -S31540050B6040050B5840050B5840050B6040050B608A -S31540050B7040050B6840050B6840050B7040050B703A -S31540050B8040050B7840050B780000000040050B88B2 -S31540050B900000000000000000000000000000000208 -S31540050BA000000000000000000000000000000000FA -S31540050BB000000000000000000000000000000000EA -S31540050BC000000000000000000000000000000000DA -S31540050BD000000000000000000000000000000000CA -S31540050BE000000000000000000000000000000000BA -S31540050BF000000000000000000000000000000000AA -S31540050C000000000000000000000000000000000099 -S31540050C100000000000000000000000000000000089 -S31540050C200000000000000000000000000000000079 -S31540050C3080000100000000080000000700000006D3 -S31540050C40000000030000000000000000FFFF8AD0FE -S30940050C5080000310C2 -S70540000000BA diff --git a/designs/leon3-ge-hpe-mini/systest.c b/designs/leon3-ge-hpe-mini/systest.c deleted file mode 100644 index 100c2697..00000000 --- a/designs/leon3-ge-hpe-mini/systest.c +++ /dev/null @@ -1,10 +0,0 @@ - -main() - -{ - report_start(); - - base_test(); - - report_end(); -} diff --git a/designs/leon3-ge-hpe-mini/testbench.vhd b/designs/leon3-ge-hpe-mini/testbench.vhd deleted file mode 100644 index 24d811b3..00000000 --- a/designs/leon3-ge-hpe-mini/testbench.vhd +++ /dev/null @@ -1,472 +0,0 @@ ------------------------------------------------------------------------------ --- LEON3 Demonstration design test bench --- Copyright (C) 2004 Jiri Gaisler, Gaisler Research --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. ------------------------------------------------------------------------------- --- modified by Thomas Ameseder, Gleichmann Electronics 2004, 2005 to --- support the use of an external AHB slave and different HPE board versions ------------------------------------------------------------------------------- --- further adapted from Hpe_compact to Hpe_mini (Feb. 2005) ------------------------------------------------------------------------------- - - -library ieee; -use ieee.std_logic_1164.all; -library gaisler; -use gaisler.libdcom.all; -use gaisler.sim.all; -library techmap; -use techmap.gencomp.all; -library micron; -use micron.components.all; -library gleichmann; -use gleichmann.hpi.all; - -use work.config.all; -- configuration -use work.debug.all; - -entity testbench is - generic ( - fabtech : integer := CFG_FABTECH; - memtech : integer := CFG_MEMTECH; - padtech : integer := CFG_PADTECH; - clktech : integer := CFG_CLKTECH; - disas : integer := CFG_DISAS; -- Enable disassembly to console - dbguart : integer := CFG_DUART; -- Print UART on console - pclow : integer := CFG_PCLOW; - - clkperiod : integer := 40; -- system clock period - romwidth : integer := 32; -- rom data width (8/32) - romdepth : integer := 16; -- rom address depth - sramwidth : integer := 32; -- ram data width (8/16/32) - sramdepth : integer := 18; -- ram address depth - srambanks : integer := 2 -- number of ram banks - ); - port ( - pci_rst : in std_ulogic; -- PCI bus - pci_clk : in std_ulogic; - pci_gnt : in std_ulogic; - pci_idsel : in std_ulogic; - pci_lock : inout std_ulogic; - pci_ad : inout std_logic_vector(31 downto 0); - pci_cbe : inout std_logic_vector(3 downto 0); - pci_frame : inout std_ulogic; - pci_irdy : inout std_ulogic; - pci_trdy : inout std_ulogic; - pci_devsel : inout std_ulogic; - pci_stop : inout std_ulogic; - pci_perr : inout std_ulogic; - pci_par : inout std_ulogic; - pci_req : inout std_ulogic; - pci_serr : inout std_ulogic; - pci_host : in std_ulogic; - pci_66 : in std_ulogic - ); -end; - -architecture behav of testbench is - - constant promfile : string := "prom.srec"; -- rom contents - constant sramfile : string := "sram.srec"; -- ram contents - constant sdramfile : string := "sdram.srec"; -- sdram contents - - - signal clk : std_logic := '0'; - signal Rst : std_logic := '0'; -- Reset - constant ct : integer := clkperiod/2; - - signal address : std_logic_vector(27 downto 0); - signal data : std_logic_vector(31 downto 0); - - signal ramsn : std_logic_vector(4 downto 0); - signal ramoen : std_logic_vector(4 downto 0); - signal romsn : std_logic_vector(1 downto 0); - signal iosn : std_ulogic; - signal oen : std_ulogic; - signal read : std_ulogic; - signal writen : std_ulogic; - signal rben : std_logic_vector(3 downto 0); - signal rwen : std_logic_vector(3 downto 0); - - - signal brdyn : std_ulogic; - signal bexcn : std_ulogic; - signal wdog : std_ulogic; - signal dsuen, dsutx, dsurx, dsubre, dsuact : std_ulogic; - signal dsurst : std_ulogic; - signal test : std_ulogic; - - signal error : std_logic; - - signal pio : std_logic_vector(15 downto 0); - signal GND : std_ulogic := '0'; - signal VCC : std_ulogic := '1'; - signal NC : std_ulogic := 'Z'; - signal clk2 : std_ulogic := '1'; - - signal sdcke : std_logic_vector (1 downto 0); -- clk en - signal sdcsn : std_logic_vector (1 downto 0); -- chip sel - signal sdwen : std_ulogic; -- write en - signal sdrasn : std_ulogic; -- row addr stb - signal sdcasn : std_ulogic; -- col addr stb - signal sddqm : std_logic_vector (3 downto 0); -- data i/o mask - signal sd_clk : std_logic_vector(1 downto 0); - - signal sdclk : std_ulogic; --- alias sdclk : std_logic is sd_clk(0); - signal plllock : std_ulogic; - --- pulled up high, therefore std_logic - signal txd1, rxd1 : std_logic; - - signal etx_clk, erx_clk, erx_dv, erx_er, erx_col, erx_crs, etx_en, etx_er : std_logic := '0'; - signal erxd, etxd : std_logic_vector(7 downto 0) := (others => '0'); - signal emdc, emdio : std_logic; --dummy signal for the mdc,mdio in the phy which is not used - - signal emddis : std_logic; - signal epwrdwn : std_logic; - signal ereset : std_logic; - signal esleep : std_logic; - signal epause : std_logic; - signal tp_out : std_logic_vector(7 downto 0); - signal led_cfg : std_logic_vector(2 downto 0); - - constant lresp : boolean := false; - - signal sa : std_logic_vector(14 downto 0); - signal sd : std_logic_vector(63 downto 0); - - -- ATA signals - signal ata_rst : std_logic; - signal ata_data : std_logic_vector(15 downto 0); - signal ata_da : std_logic_vector(2 downto 0); - signal ata_cs0 : std_logic; - signal ata_cs1 : std_logic; - signal ata_dior : std_logic; - signal ata_diow : std_logic; - signal ata_iordy : std_logic; - signal ata_intrq : std_logic; - signal ata_dmack : std_logic; - --- Added for Hpe - - signal resoutn : std_logic; - signal disrams : std_logic; - signal sdclk0 : std_ulogic; - signal sdclk1 : std_ulogic; - signal sdba0 : std_logic; -- bank address zero - signal sdba1 : std_logic; -- bank address one - signal dsubren : std_ulogic; - signal dsuactn : std_ulogic; - signal bufdir : std_logic; - signal bufoen : std_logic; - signal s_sddqm : std_logic_vector (3 downto 0); - - signal HRESETn : std_ulogic; - signal HSEL : std_ulogic; - signal HREADY_ba : std_ulogic; -- hready input signal - signal HADDR : std_logic_vector(31 downto 0); - signal HWRITE : std_ulogic; - signal HTRANS : std_logic_vector(1 downto 0); - signal HSIZE : std_logic_vector(2 downto 0); - signal HBURST : std_logic_vector(2 downto 0); - signal HWDATA : std_logic_vector(31 downto 0); - signal HMASTER : std_logic_vector(3 downto 0); - signal HMASTLOCK : std_ulogic; - signal HREADY : std_ulogic; - signal HRESP : std_logic_vector(1 downto 0); - signal HRDATA : std_logic_vector(31 downto 0); - signal HSPLIT : std_logic_vector(15 downto 0); - - signal clk_ctrl : std_logic_vector(1 downto 0); -- cpld - signal CAN_RXD : std_logic; - signal CAN_TXD : std_logic; - signal CAN_STB : std_logic; - signal CAN_TXD_delayed : std_logic := '1'; - signal gpio : std_logic_vector(7 downto 0); - - signal dac : std_ulogic; -- ouput of sigma delta DAC - - subtype sd_address_range is natural range 14 downto 2; - subtype sd_ba_range is natural range 16 downto 15; - - signal vga_vsync : std_ulogic; - signal vga_hsync : std_ulogic; - signal vga_rd : std_logic_vector(1 downto 0); - signal vga_gr : std_logic_vector(1 downto 0); - signal vga_bl : std_logic_vector(1 downto 0); - - --------------------------------------------------------------------------------------- - -- HPI SIGNALS - --------------------------------------------------------------------------------------- - signal hpiaddr : std_logic_vector(1 downto 0); - signal hpidata, hpirdata : std_logic_vector(15 downto 0); - signal hpicsn : std_ulogic; - signal hpiwrn : std_ulogic; - signal hpirdn : std_ulogic; - signal hpiint : std_ulogic; - signal dbg_equal : std_ulogic; - signal drive_bus : std_ulogic; - --------------------------------------------------------------------------------------- - -signal eth_macclk : std_ulogic := '0'; - -begin - - dsubren <= not dsubre; - disrams <= '0'; - address(27 downto 16) <= (others => '0'); - address(1 downto 0) <= (others => '0'); --- clock and reset - - clk <= not clk after ct * 1 ns; - rst <= '1' after 10 ns; - dsuen <= '0'; dsubre <= '0'; rxd1 <= 'H'; - led_cfg <= "000"; --put the phy in base10h mode - - d3 : entity work.leon3mini - generic map ( - fabtech => fabtech, memtech => memtech, padtech => padtech, - clktech => clktech, disas => disas, dbguart => dbguart, - pclow => pclow) - port map ( - resetn => rst, - resoutn => resoutn, - clk => clk, - errorn => error, - address => address(15 downto 2), - data => data, - sdclk => sdclk, - sdcke => sdcke, - sdcsn => sdcsn, - sdwen => sdwen, - sdrasn => sdrasn, - sdcasn => sdcasn, - sddqm => sddqm(3 downto 0), -- topmost bits are undriven - sdba => sa(14 downto 13), - - sertx => dsutx, - serrx => dsurx, - sersrcsel => gnd, -- select serial DCL - - dsuen => dsuen, - dsubre => dsubre, - dsuactn => dsuactn, - --- txd1 => txd1, --- rxd1 => rxd1, - --- gpio => gpio, - - ramsn => ramsn, - ramoen => ramoen, - oen => oen, - rben => rben, - rwen => rwen, - writen => writen, - read => read, - iosn => iosn, - romsn => romsn, - - emdio => emdio, - etx_clk => etx_clk, - erx_clk => erx_clk, - erxd => erxd(3 downto 0), - erx_dv => erx_dv, - erx_er => erx_er, - erx_col => erx_col, - erx_crs => erx_crs, - etxd => etxd(3 downto 0), - etx_en => etx_en, - etx_er => etx_er, - emdc => emdc, - - ata_rst => ata_rst, - ata_data => ata_data, - ata_da => ata_da, - ata_cs0 => ata_cs0, - ata_cs1 => ata_cs1, - ata_dior => ata_dior, - ata_diow => ata_diow, - ata_iordy => ata_iordy, - ata_intrq => ata_intrq, - ata_dmack => ata_dmack, - - hpiaddr => hpiaddr, - hpidata => hpidata, - hpicsn => hpicsn, - hpiwrn => hpiwrn, - hpirdn => hpirdn, - hpiint => hpiint, - dbg_equal => dbg_equal, --- drive_bus => drive_bus, - - - dac => dac, - vga_vsync => vga_vsync, - vga_hsync => vga_hsync, - vga_rd => vga_rd, - vga_gr => vga_gr, - vga_bl => vga_bl - ); - - hpidata <= hpirdata when hpirdn = '0' else (others => 'Z'); - - hpiint <= '0'; - - hpi_ram_1 : hpi_ram - generic map ( - abits => 10, - dbits => 16) - port map ( - clk => clk, - address => hpiaddr, - datain => hpidata, - dataout => hpirdata, - writen => hpiwrn, - readn => hpirdn, - csn => hpicsn - ); - --- optional sdram - - sd0 : if (CFG_MCTRL_SDEN = 1) generate - u0 : mt48lc16m16a2 generic map (index => 0, fname => sdramfile) - port map( - Dq => data(31 downto 16), Addr => address(sd_address_range), - Ba => address(sd_ba_range), Clk => sdclk, Cke => sdcke(0), - Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(3 downto 2)); - u1 : mt48lc16m16a2 generic map (index => 16, fname => sdramfile) - port map( - Dq => data(15 downto 0), Addr => address(sd_address_range), - Ba => address(sd_ba_range), Clk => sdclk, Cke => sdcke(0), - Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(1 downto 0)); - u2 : mt48lc16m16a2 generic map (index => 0, fname => sdramfile) - port map( - Dq => data(31 downto 16), Addr => address(sd_address_range), - Ba => address(sd_ba_range), Clk => sdclk, Cke => sdcke(0), - Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(3 downto 2)); - u3 : mt48lc16m16a2 generic map (index => 16, fname => sdramfile) - port map( - Dq => data(15 downto 0), Addr => address(sd_address_range), - Ba => address(sd_ba_range), Clk => sdclk, Cke => sdcke(0), - Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen, - Dqm => sddqm(1 downto 0)); - end generate; - - extbprom : if CFG_BOOTOPT = 0 generate - prom0 : for i in 0 to (romwidth/8)-1 generate - sr0 : sram generic map (index => i, abits => romdepth, fname => promfile) - port map (address(romdepth+1 downto 2), data(31-i*8 downto 24-i*8), romsn(0), - rwen(i), oen); - end generate; - end generate extbprom; - - - sram0 : for i in 0 to (sramwidth/8)-1 generate - sr0 : sram generic map (index => i, abits => sramdepth, fname => sramfile) - port map (address(sramdepth+1 downto 2), data(31-i*8 downto 24-i*8), ramsn(0), - rben(0), ramoen(0)); -- **** tame: changed rwen to rben - end generate; - - phy0 : if (CFG_GRETH /= 0) generate - emdio <= 'H'; - p0: phy - generic map(base1000_t_fd => 0, base1000_t_hd => 0) - port map(rst, emdio, etx_clk, erx_clk, erxd, erx_dv, - erx_er, erx_col, erx_crs, etxd, etx_en, etx_er, emdc, eth_macclk); - end generate; - - error <= 'H'; -- ERROR pull-up - - iuerr : process(error) - begin - assert (error /= '0') - report "*** IU in error mode, simulation halted ***" - severity failure; - end process; - - data <= buskeep(data), (others => 'H') after 250 ns; - sd <= buskeep(sd), (others => 'H') after 250 ns; - - test0 : grtestmod - port map (rst, clk, error, address(21 downto 2), data, - iosn, oen, writen, brdyn); - - dcomstart : if CFG_BOOTOPT = 0 generate - - dsucom : process - procedure dsucfg(signal dsurx : in std_ulogic; signal dsutx : out std_ulogic) is - variable w32 : std_logic_vector(31 downto 0); - variable c8 : std_logic_vector(7 downto 0); - constant txp : time := 160 * 1 ns; - begin - dsutx <= '1'; - dsurst <= '1'; - wait; - wait for 5000 ns; - txc(dsutx, 16#55#, txp); -- sync uart - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#ef#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); - txa(dsutx, 16#00#, 16#00#, 16#ff#, 16#ff#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#40#, 16#00#, 16#48#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#12#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#40#, 16#00#, 16#60#, txp); - txa(dsutx, 16#00#, 16#00#, 16#12#, 16#10#, txp); - - txc(dsutx, 16#80#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); - rxi(dsurx, w32, txp, lresp); - - txc(dsutx, 16#a0#, txp); - txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); - rxi(dsurx, w32, txp, lresp); - - end; - - begin - - dsucfg(dsutx, dsurx); - - wait; - end process; - - end generate dcomstart; - - - altstimuli : if CFG_BOOTOPT = 1 generate - stimuli : process - begin - dsurx <= '1'; - -- rxd1 <= 'H'; --already defined above - txd1 <= 'H'; - - - wait; - end process STIMULI; - end generate altstimuli; - -end; - - diff --git a/designs/leon3-ge-hpe-mini/wave.do b/designs/leon3-ge-hpe-mini/wave.do deleted file mode 100644 index c4e98bb6..00000000 --- a/designs/leon3-ge-hpe-mini/wave.do +++ /dev/null @@ -1,128 +0,0 @@ -onerror {resume} -quietly WaveActivateNextPane {} 0 -add wave -noupdate -divider LEON3MINI -add wave -noupdate -format Logic /testbench/d3/resetn -add wave -noupdate -format Logic /testbench/d3/resoutn -add wave -noupdate -format Logic /testbench/d3/clk -add wave -noupdate -format Logic /testbench/d3/errorn -add wave -noupdate -format Literal /testbench/d3/address -add wave -noupdate -format Literal -radix hexadecimal /testbench/d3/data -add wave -noupdate -format Literal /testbench/d3/ramsn -add wave -noupdate -format Literal /testbench/d3/ramoen -add wave -noupdate -format Literal /testbench/d3/rwen -add wave -noupdate -format Literal /testbench/d3/rben -add wave -noupdate -format Literal /testbench/d3/romsn -add wave -noupdate -format Logic /testbench/d3/iosn -add wave -noupdate -format Logic /testbench/d3/oen -add wave -noupdate -format Logic /testbench/d3/read -add wave -noupdate -format Logic /testbench/d3/writen -add wave -noupdate -format Literal /testbench/d3/sdcke -add wave -noupdate -format Literal /testbench/d3/sdcsn -add wave -noupdate -format Logic /testbench/d3/sdwen -add wave -noupdate -format Logic /testbench/d3/sdrasn -add wave -noupdate -format Logic /testbench/d3/sdcasn -add wave -noupdate -format Literal /testbench/d3/sddqm -add wave -noupdate -format Literal /testbench/d3/sdclk -add wave -noupdate -format Literal /testbench/d3/sdba -add wave -noupdate -format Logic /testbench/d3/dsuen -add wave -noupdate -format Logic /testbench/d3/dsutx -add wave -noupdate -format Logic /testbench/d3/dsurx -add wave -noupdate -format Logic /testbench/d3/dsuactn -add wave -noupdate -format Logic /testbench/d3/rxd1 -add wave -noupdate -format Logic /testbench/d3/txd1 -add wave -noupdate -format Logic /testbench/d3/emdio -add wave -noupdate -format Logic /testbench/d3/etx_clk -add wave -noupdate -format Logic /testbench/d3/erx_clk -add wave -noupdate -format Literal /testbench/d3/erxd -add wave -noupdate -format Logic /testbench/d3/erx_dv -add wave -noupdate -format Logic /testbench/d3/erx_er -add wave -noupdate -format Logic /testbench/d3/erx_col -add wave -noupdate -format Logic /testbench/d3/erx_crs -add wave -noupdate -format Literal /testbench/d3/etxd -add wave -noupdate -format Logic /testbench/d3/etx_en -add wave -noupdate -format Logic /testbench/d3/etx_er -add wave -noupdate -format Logic /testbench/d3/emdc -add wave -noupdate -format Logic /testbench/d3/emddis -add wave -noupdate -format Logic /testbench/d3/epwrdwn -add wave -noupdate -format Logic /testbench/d3/ereset -add wave -noupdate -format Logic /testbench/d3/esleep -add wave -noupdate -format Logic /testbench/d3/epause -add wave -noupdate -format Literal /testbench/d3/vcc -add wave -noupdate -format Literal /testbench/d3/gnd -add wave -noupdate -format Literal /testbench/d3/memi -add wave -noupdate -format Literal /testbench/d3/memo -add wave -noupdate -format Literal /testbench/d3/wpo -add wave -noupdate -format Literal /testbench/d3/sdi -add wave -noupdate -format Literal /testbench/d3/sdo -add wave -noupdate -format Literal /testbench/d3/sdo2 -add wave -noupdate -format Literal /testbench/d3/sdo3 -add wave -noupdate -format Literal /testbench/d3/apbi -add wave -noupdate -format Literal /testbench/d3/apbo -add wave -noupdate -format Literal /testbench/d3/ahbsi -add wave -noupdate -format Literal /testbench/d3/ahbso -add wave -noupdate -format Literal /testbench/d3/ahbmi -add wave -noupdate -format Literal /testbench/d3/ahbmo -add wave -noupdate -format Logic /testbench/d3/clkm -add wave -noupdate -format Logic /testbench/d3/rstn -add wave -noupdate -format Logic /testbench/d3/sdclkl -add wave -noupdate -format Literal /testbench/d3/cgi -add wave -noupdate -format Literal /testbench/d3/cgo -add wave -noupdate -format Literal /testbench/d3/u1i -add wave -noupdate -format Literal /testbench/d3/dui -add wave -noupdate -format Literal /testbench/d3/u1o -add wave -noupdate -format Literal /testbench/d3/duo -add wave -noupdate -format Literal /testbench/d3/irqi -add wave -noupdate -format Literal /testbench/d3/irqo -add wave -noupdate -format Literal /testbench/d3/dbgi -add wave -noupdate -format Literal /testbench/d3/dbgo -add wave -noupdate -format Literal /testbench/d3/dsui -add wave -noupdate -format Literal /testbench/d3/dsuo -add wave -noupdate -format Literal /testbench/d3/ethi -add wave -noupdate -format Literal /testbench/d3/ethi1 -add wave -noupdate -format Literal /testbench/d3/ethi2 -add wave -noupdate -format Literal /testbench/d3/etho -add wave -noupdate -format Literal /testbench/d3/etho1 -add wave -noupdate -format Literal /testbench/d3/etho2 -add wave -noupdate -format Literal /testbench/d3/gpti -add wave -noupdate -format Literal /testbench/d3/sa -add wave -noupdate -format Literal /testbench/d3/sd -add wave -noupdate -format Logic /testbench/d3/dsubre -add wave -noupdate -format Logic /testbench/d3/dsuact -add wave -noupdate -format Logic /testbench/d3/oen_ctrl -add wave -noupdate -format Logic /testbench/d3/sdram_selected -add wave -noupdate -divider HPIRAM -add wave -noupdate -format Logic -radix hexadecimal /testbench/hpi_ram_1/clk -add wave -noupdate -format Literal -radix hexadecimal /testbench/hpi_ram_1/address -add wave -noupdate -format Literal -radix hexadecimal /testbench/hpi_ram_1/datain -add wave -noupdate -format Literal -radix hexadecimal /testbench/hpi_ram_1/dataout -add wave -noupdate -format Logic -radix hexadecimal /testbench/hpi_ram_1/writen -add wave -noupdate -format Logic -radix hexadecimal /testbench/hpi_ram_1/readn -add wave -noupdate -format Logic -radix hexadecimal /testbench/hpi_ram_1/csn -add wave -noupdate -format Literal -radix hexadecimal /testbench/hpi_ram_1/memarr -add wave -noupdate -format Literal -radix hexadecimal /testbench/hpi_ram_1/data_reg -add wave -noupdate -format Literal -radix hexadecimal /testbench/hpi_ram_1/mailbox_reg -add wave -noupdate -format Literal -radix hexadecimal /testbench/hpi_ram_1/address_reg -add wave -noupdate -format Literal -radix hexadecimal /testbench/hpi_ram_1/status_reg -add wave -noupdate -divider AHB2HPI -add wave -noupdate -divider DAC_AHB -add wave -noupdate -divider {DAC SigDelt} -add wave -noupdate -divider LEON3S -add wave -noupdate -divider {Memory Controller} -add wave -noupdate -format Literal -radix hexadecimal -expand /testbench/d3/mg2/sr1/ahbsi -add wave -noupdate -format Literal -radix hexadecimal -expand /testbench/d3/mg2/sr1/ahbso -TreeUpdate [SetDefaultTree] -WaveRestoreCursors {{Cursor 1} {3465000 ps} 0} -configure wave -namecolwidth 150 -configure wave -valuecolwidth 100 -configure wave -justifyvalue left -configure wave -signalnamewidth 1 -configure wave -snapdistance 10 -configure wave -datasetprefix 0 -configure wave -rowmargin 4 -configure wave -childrowmargin 2 -configure wave -gridoffset 0 -configure wave -gridperiod 1 -configure wave -griddelta 40 -configure wave -timeline 0 -update -WaveRestoreZoom {50050 ns} {71050 ns} diff --git a/designs/leon3-gr-cpci-xc2v6000/Makefile b/designs/leon3-gr-cpci-xc2v6000/Makefile index 2939974c..b69b98c3 100644 --- a/designs/leon3-gr-cpci-xc2v6000/Makefile +++ b/designs/leon3-gr-cpci-xc2v6000/Makefile @@ -19,9 +19,9 @@ CLEAN=soft-clean TECHLIBS = unisim secureip LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress ihp gleichmann usbhc -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr usb ata grusbhc \ - haps ascs slink coremp7 + tmtc openchip hynix cypress ihp usbhc +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr usb grusbhc \ + ascs slink FILESKIP = grcan.vhd diff --git a/designs/leon3-gr-cpci-xc2v6000/ahbrom.vhd b/designs/leon3-gr-cpci-xc2v6000/ahbrom.vhd index ceb73789..e9f14ae5 100644 --- a/designs/leon3-gr-cpci-xc2v6000/ahbrom.vhd +++ b/designs/leon3-gr-cpci-xc2v6000/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-gr-cpci-xc2v6000/config.help b/designs/leon3-gr-cpci-xc2v6000/config.help index 6f0f97ea..415fc21e 100644 --- a/designs/leon3-gr-cpci-xc2v6000/config.help +++ b/designs/leon3-gr-cpci-xc2v6000/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-gr-cpci-xc2v6000/lconfig.tk b/designs/leon3-gr-cpci-xc2v6000/lconfig.tk index c4ae6b04..75c2c45e 100755 --- a/designs/leon3-gr-cpci-xc2v6000/lconfig.tk +++ b/designs/leon3-gr-cpci-xc2v6000/lconfig.tk @@ -756,7 +756,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -766,7 +767,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -909,8 +912,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -929,6 +934,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1018,9 +1027,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1074,10 +1084,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1123,14 +1134,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1203,13 +1216,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1249,22 +1270,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1321,21 +1610,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1382,36 +1671,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1419,48 +1709,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1516,28 +1807,28 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH - global tmpvar_7 - minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x4.x.menu 3 bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1578,20 +1869,21 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1600,38 +1892,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} - global tmpvar_7 + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1688,92 +1981,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1781,18 +2074,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1833,52 +2126,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1886,162 +2180,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2097,45 +2392,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2175,18 +2472,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2194,55 +2492,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2299,24 +2602,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2356,17 +2659,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2374,37 +2678,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2460,16 +2765,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2517,9 +2829,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2541,21 +2851,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2864,14 +3179,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2945,17 +3260,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3130,32 +3445,32 @@ proc menu14 {w title} { int $w.config.f 14 3 "RAM waitstates" CONFIG_SRCTRL_RAMWS int $w.config.f 14 4 "IO waitstates" CONFIG_SRCTRL_IOWS bool $w.config.f 14 5 "Use read-modify-write for sub-word writes " CONFIG_SRCTRL_RMW - global tmpvar_27 - minimenu $w.config.f 14 6 "SRAM banks" tmpvar_27 CONFIG_SRCTRL_SRBANKS1 + global tmpvar_29 + minimenu $w.config.f 14 6 "SRAM banks" tmpvar_29 CONFIG_SRCTRL_SRBANKS1 menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"SRAM banks\"" - $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_27 -value "3" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_27 -value "5" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_29 -value "3" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_29 -value "5" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 - global tmpvar_28 - minimenu $w.config.f 14 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_28 CONFIG_SRCTRL_BANKSZ0 + global tmpvar_30 + minimenu $w.config.f 14 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_30 CONFIG_SRCTRL_BANKSZ0 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"SRAM bank size (kb) (0 for programmable)\"" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_28 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_28 -value "256" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_28 -value "512" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_28 -value "1024" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_28 -value "2048" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_28 -value "4096" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_28 -value "8192" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_28 -value "16384" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_28 -value "32768" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_28 -value "65536" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_30 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_30 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_30 -value "512" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_30 -value "1024" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_30 -value "2048" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_30 -value "4096" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_30 -value "8192" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_30 -value "16384" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_30 -value "32768" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_30 -value "65536" -command "update_active" menusplit $w $w.config.f.x7.x.menu 14 int $w.config.f 14 8 "PROM bank select address bit (0 - 28)" CONFIG_SRCTRL_ROMASEL @@ -3231,46 +3546,46 @@ proc update_define_menu14 {} { global CONFIG_SRCTRL_RMW if {($CONFIG_SRCTRL == 1)} then { set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW&15]} else {set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_SRCTRL_SRBANKS1 - if {$tmpvar_27 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} global CONFIG_SRCTRL_SRBANKS2 - if {$tmpvar_27 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} global CONFIG_SRCTRL_SRBANKS3 - if {$tmpvar_27 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} + if {$tmpvar_29 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} global CONFIG_SRCTRL_SRBANKS4 - if {$tmpvar_27 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} global CONFIG_SRCTRL_SRBANKS5 - if {$tmpvar_27 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} - global tmpvar_28 + if {$tmpvar_29 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} + global tmpvar_30 global CONFIG_SRCTRL_BANKSZ0 - if {$tmpvar_28 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} + if {$tmpvar_30 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} global CONFIG_SRCTRL_BANKSZ1 - if {$tmpvar_28 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} + if {$tmpvar_30 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} global CONFIG_SRCTRL_BANKSZ2 - if {$tmpvar_28 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} + if {$tmpvar_30 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} global CONFIG_SRCTRL_BANKSZ3 - if {$tmpvar_28 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} + if {$tmpvar_30 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} global CONFIG_SRCTRL_BANKSZ4 - if {$tmpvar_28 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} + if {$tmpvar_30 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} global CONFIG_SRCTRL_BANKSZ5 - if {$tmpvar_28 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} + if {$tmpvar_30 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} global CONFIG_SRCTRL_BANKSZ6 - if {$tmpvar_28 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} + if {$tmpvar_30 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} global CONFIG_SRCTRL_BANKSZ7 - if {$tmpvar_28 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} + if {$tmpvar_30 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} global CONFIG_SRCTRL_BANKSZ8 - if {$tmpvar_28 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} + if {$tmpvar_30 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} global CONFIG_SRCTRL_BANKSZ9 - if {$tmpvar_28 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} + if {$tmpvar_30 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} global CONFIG_SRCTRL_BANKSZ10 - if {$tmpvar_28 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} + if {$tmpvar_30 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} global CONFIG_SRCTRL_BANKSZ11 - if {$tmpvar_28 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} + if {$tmpvar_30 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} global CONFIG_SRCTRL_BANKSZ12 - if {$tmpvar_28 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} + if {$tmpvar_30 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} global CONFIG_SRCTRL_BANKSZ13 - if {$tmpvar_28 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} + if {$tmpvar_30 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} global CONFIG_SRCTRL_ROMASEL if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_ROMASEL "$CONFIG_SRCTRL_ROMASEL" 19} } @@ -3724,16 +4039,16 @@ proc menu18 {w title} { hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 18 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 18 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_29 - minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 + global tmpvar_31 + minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_31 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3795,21 +4110,21 @@ proc update_define_menu18 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_29 + global tmpvar_31 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_31 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3869,14 +4184,14 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 19 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_30 - minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 + global tmpvar_32 + minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_32 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_32 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3930,17 +4245,17 @@ proc update_define_menu19 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_30 + global tmpvar_32 global CONFIG_GRETH_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_32 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_32 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_32 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_32 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_32 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -4128,57 +4443,57 @@ proc menu21 {w title} { bool $w.config.f 21 0 "Enable Spacewire links " CONFIG_SPW_ENABLE int $w.config.f 21 1 "Number of links (1 - 3)" CONFIG_SPW_NUM - global tmpvar_31 - minimenu $w.config.f 21 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_31 CONFIG_SPW_AHBFIFO4 + global tmpvar_33 + minimenu $w.config.f 21 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_33 CONFIG_SPW_AHBFIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB RX/TX FIFO size (32-bit words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_33 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_32 - minimenu $w.config.f 21 3 "Receiver FIFO size (bytes) " tmpvar_32 CONFIG_SPW_RXFIFO16 + global tmpvar_34 + minimenu $w.config.f 21 3 "Receiver FIFO size (bytes) " tmpvar_34 CONFIG_SPW_RXFIFO16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Receiver FIFO size (bytes) \"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_32 -value "64" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_34 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_34 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_34 -value "64" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 21 4 "Enable RMAP protocol " CONFIG_SPW_RMAP - global tmpvar_33 - minimenu $w.config.f 21 5 "RMAP buffer size (bytes) " tmpvar_33 CONFIG_SPW_RMAPBUF2 + global tmpvar_35 + minimenu $w.config.f 21 5 "RMAP buffer size (bytes) " tmpvar_35 CONFIG_SPW_RMAPBUF2 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"RMAP buffer size (bytes) \"" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_33 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_33 -value "128" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_33 -value "192" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_33 -value "256" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_35 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_35 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_35 -value "192" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_35 -value "256" -command "update_active" menusplit $w $w.config.f.x5.x.menu 4 bool $w.config.f 21 6 "Enable RMAP CRC check " CONFIG_SPW_RMAPCRC bool $w.config.f 21 7 "Enable Rx unaligned transfers " CONFIG_SPW_RXUNAL bool $w.config.f 21 8 "Spacewire FIFO protection " CONFIG_SPW_FT bool $w.config.f 21 9 "Use GRSPWC netlist " CONFIG_SPW_NETLIST int $w.config.f 21 10 "Number of ports (1 - 2)" CONFIG_SPW_PORTS - global tmpvar_34 - minimenu $w.config.f 21 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_34 CONFIG_SPW_GRSPW1 + global tmpvar_36 + minimenu $w.config.f 21 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_36 CONFIG_SPW_GRSPW1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Select GRSPW core (GRSPW1/GRSPW2) \"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_34 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_34 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_36 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_36 -value "2" -command "update_active" menusplit $w $w.config.f.x11.x.menu 2 int $w.config.f 21 12 "Number of DMA channels (1 - 4)" CONFIG_SPW_DMACHAN bool $w.config.f 21 13 "Receiver and transmitter uses same clock " CONFIG_SPW_RTSAME - global tmpvar_35 - minimenu $w.config.f 21 14 "Select receiver clock type " tmpvar_35 CONFIG_SPW_RX_SDR + global tmpvar_37 + minimenu $w.config.f 21 14 "Select receiver clock type " tmpvar_37 CONFIG_SPW_RX_SDR menu $w.config.f.x14.x.menu -tearoffcommand "menutitle \"Select receiver clock type \"" - $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_35 -value "SDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_35 -value "DDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_35 -value "Xor" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_35 -value "Aeroflex" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_37 -value "SDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_37 -value "DDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_37 -value "Xor" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_37 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x14.x.menu 4 - global tmpvar_36 - minimenu $w.config.f 21 15 "Select transmitter clock type " tmpvar_36 CONFIG_SPW_TX_SDR + global tmpvar_38 + minimenu $w.config.f 21 15 "Select transmitter clock type " tmpvar_38 CONFIG_SPW_TX_SDR menu $w.config.f.x15.x.menu -tearoffcommand "menutitle \"Select transmitter clock type \"" - $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_36 -value "SDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_36 -value "DDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_36 -value "Aeroflex" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_38 -value "SDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_38 -value "DDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_38 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x15.x.menu 3 @@ -4258,34 +4573,34 @@ proc update_define_menu21 {} { global CONFIG_SPW_ENABLE global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_NUM "$CONFIG_SPW_NUM" 1} - global tmpvar_31 + global tmpvar_33 global CONFIG_SPW_AHBFIFO4 - if {$tmpvar_31 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} + if {$tmpvar_33 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} global CONFIG_SPW_AHBFIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} + if {$tmpvar_33 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} global CONFIG_SPW_AHBFIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} + if {$tmpvar_33 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} global CONFIG_SPW_AHBFIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} - global tmpvar_32 + if {$tmpvar_33 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} + global tmpvar_34 global CONFIG_SPW_RXFIFO16 - if {$tmpvar_32 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} + if {$tmpvar_34 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} global CONFIG_SPW_RXFIFO32 - if {$tmpvar_32 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} + if {$tmpvar_34 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} global CONFIG_SPW_RXFIFO64 - if {$tmpvar_32 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} + if {$tmpvar_34 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP&15]} else {set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP|16]} - global tmpvar_33 + global tmpvar_35 global CONFIG_SPW_RMAPBUF2 - if {$tmpvar_33 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} + if {$tmpvar_35 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} global CONFIG_SPW_RMAPBUF4 - if {$tmpvar_33 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} + if {$tmpvar_35 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} global CONFIG_SPW_RMAPBUF6 - if {$tmpvar_33 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} + if {$tmpvar_35 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} global CONFIG_SPW_RMAPBUF8 - if {$tmpvar_33 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} + if {$tmpvar_35 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC&15]} else {set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC|16]} @@ -4300,32 +4615,32 @@ proc update_define_menu21 {} { set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST&15]} else {set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST|16]} global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_PORTS "$CONFIG_SPW_PORTS" 1} - global tmpvar_34 + global tmpvar_36 global CONFIG_SPW_GRSPW1 - if {$tmpvar_34 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} + if {$tmpvar_36 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} global CONFIG_SPW_GRSPW2 - if {$tmpvar_34 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} + if {$tmpvar_36 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} global CONFIG_SPW_DMACHAN if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {validate_int CONFIG_SPW_DMACHAN "$CONFIG_SPW_DMACHAN" 1} global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME&15]} else {set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME|16]} - global tmpvar_35 + global tmpvar_37 global CONFIG_SPW_RX_SDR - if {$tmpvar_35 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} + if {$tmpvar_37 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} global CONFIG_SPW_RX_DDR - if {$tmpvar_35 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} + if {$tmpvar_37 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} global CONFIG_SPW_RX_XOR - if {$tmpvar_35 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} + if {$tmpvar_37 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} global CONFIG_SPW_RX_AFLEX - if {$tmpvar_35 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} - global tmpvar_36 + if {$tmpvar_37 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} + global tmpvar_38 global CONFIG_SPW_TX_SDR - if {$tmpvar_36 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} + if {$tmpvar_38 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} global CONFIG_SPW_TX_DDR - if {$tmpvar_36 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} + if {$tmpvar_38 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} global CONFIG_SPW_TX_AFLEX - if {$tmpvar_36 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} + if {$tmpvar_38 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} } @@ -4385,29 +4700,29 @@ proc menu22 {w title} { bool $w.config.f 22 2 "PCI DMA controller " CONFIG_PCI_MASTER_TARGET_DMA hex $w.config.f 22 3 "PCI vendor ID" CONFIG_PCI_VENDORID hex $w.config.f 22 4 "PCI device ID" CONFIG_PCI_DEVICEID - global tmpvar_37 - minimenu $w.config.f 22 5 "PCI FIFO depth" tmpvar_37 CONFIG_PCI_FIFO0 + global tmpvar_39 + minimenu $w.config.f 22 5 "PCI FIFO depth" tmpvar_39 CONFIG_PCI_FIFO0 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"PCI FIFO depth\"" - $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_37 -value "None" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_37 -value "8" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_37 -value "16" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_37 -value "32" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_37 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_37 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_39 -value "None" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_39 -value "8" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_39 -value "16" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_39 -value "32" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_39 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_39 -value "128" -command "update_active" menusplit $w $w.config.f.x5.x.menu 6 hex $w.config.f 22 6 "PCI initiator address (haddr\[31:20\]) " CONFIG_PCI_HADDR bool $w.config.f 22 7 "PCI arbiter " CONFIG_PCI_ARBITER bool $w.config.f 22 8 "PCI arbiter APB interface " CONFIG_PCI_ARBITER_APB int $w.config.f 22 9 "Number of PCI REQ/GNT pairs" CONFIG_PCI_ARBITER_NREQ bool $w.config.f 22 10 "Enable PCI trace buffer " CONFIG_PCI_TRACE - global tmpvar_38 - minimenu $w.config.f 22 11 "PCI trace buffer depth" tmpvar_38 CONFIG_PCI_TRACE256 + global tmpvar_40 + minimenu $w.config.f 22 11 "PCI trace buffer depth" tmpvar_40 CONFIG_PCI_TRACE256 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"PCI trace buffer depth\"" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_38 -value "256" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_38 -value "512" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_38 -value "1024" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_38 -value "2048" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_38 -value "4096" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_40 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_40 -value "512" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_40 -value "1024" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_40 -value "2048" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_40 -value "4096" -command "update_active" menusplit $w $w.config.f.x11.x.menu 5 @@ -4491,19 +4806,19 @@ proc update_define_menu22 {} { if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_VENDORID "$CONFIG_PCI_VENDORID" 1AC8} global CONFIG_PCI_DEVICEID if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_DEVICEID "$CONFIG_PCI_DEVICEID" 0054} - global tmpvar_37 + global tmpvar_39 global CONFIG_PCI_FIFO0 - if {$tmpvar_37 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} + if {$tmpvar_39 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} global CONFIG_PCI_FIFO8 - if {$tmpvar_37 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} + if {$tmpvar_39 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} global CONFIG_PCI_FIFO16 - if {$tmpvar_37 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} + if {$tmpvar_39 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} global CONFIG_PCI_FIFO32 - if {$tmpvar_37 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} + if {$tmpvar_39 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} global CONFIG_PCI_FIFO64 - if {$tmpvar_37 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} + if {$tmpvar_39 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} global CONFIG_PCI_FIFO128 - if {$tmpvar_37 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} + if {$tmpvar_39 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} global CONFIG_PCI_HADDR 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} global CONFIG_PCI_ARBITER @@ -4512,17 +4827,17 @@ proc update_define_menu22 {} { set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB&15]} else {set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB|16]} global CONFIG_PCI_ARBITER_NREQ if {($CONFIG_PCI_ARBITER == 1)} then {validate_int CONFIG_PCI_ARBITER_NREQ "$CONFIG_PCI_ARBITER_NREQ" 4} - global tmpvar_38 + global tmpvar_40 global CONFIG_PCI_TRACE256 - if {$tmpvar_38 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} + if {$tmpvar_40 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} global CONFIG_PCI_TRACE512 - if {$tmpvar_38 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} + if {$tmpvar_40 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} global CONFIG_PCI_TRACE1024 - if {$tmpvar_38 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} + if {$tmpvar_40 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} global CONFIG_PCI_TRACE2048 - if {$tmpvar_38 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} + if {$tmpvar_40 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} global CONFIG_PCI_TRACE4096 - if {$tmpvar_38 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} + if {$tmpvar_40 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} } @@ -4578,26 +4893,26 @@ proc menu23 {w title} { bool $w.config.f 23 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_39 - minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_39 CONFIG_UA1_FIFO1 + global tmpvar_41 + minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_41 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_39 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_39 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_39 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_39 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_39 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_39 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_41 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_41 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_41 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_41 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_41 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_41 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 23 2 "Enable secondary UART " CONFIG_UART2_ENABLE - global tmpvar_40 - minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_40 CONFIG_UA2_FIFO1 + global tmpvar_42 + minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_42 CONFIG_UA2_FIFO1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"UART2 FIFO depth\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_40 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_40 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_40 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_40 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_40 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_40 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_42 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_42 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_42 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_42 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_42 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_42 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 6 bool $w.config.f 23 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 23 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4688,32 +5003,32 @@ proc update_menu23 {} { proc update_define_menu23 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_39 + global tmpvar_41 global CONFIG_UA1_FIFO1 - if {$tmpvar_39 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_41 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_39 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_41 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_39 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_41 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_39 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_41 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_39 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_41 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_39 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} - global tmpvar_40 + if {$tmpvar_41 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + global tmpvar_42 global CONFIG_UA2_FIFO1 - if {$tmpvar_40 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} + if {$tmpvar_42 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} global CONFIG_UA2_FIFO2 - if {$tmpvar_40 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} + if {$tmpvar_42 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} global CONFIG_UA2_FIFO4 - if {$tmpvar_40 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} + if {$tmpvar_42 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} global CONFIG_UA2_FIFO8 - if {$tmpvar_40 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} + if {$tmpvar_42 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} global CONFIG_UA2_FIFO16 - if {$tmpvar_40 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} + if {$tmpvar_42 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} global CONFIG_UA2_FIFO32 - if {$tmpvar_40 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} + if {$tmpvar_42 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4883,7 +5198,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4893,6 +5209,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4917,6 +5235,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4929,14 +5248,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4949,28 +5273,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 set CONFIG_FPU_GRFPU_SH 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4980,17 +5304,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -5002,12 +5326,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -5017,10 +5341,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -5031,7 +5355,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -5043,26 +5367,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -5070,27 +5396,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -5111,7 +5441,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -5129,13 +5459,13 @@ set CONFIG_SRCTRL_PROMWS 3 set CONFIG_SRCTRL_RAMWS 0 set CONFIG_SRCTRL_IOWS 0 set CONFIG_SRCTRL_RMW 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_SRCTRL_SRBANKS1 0 set CONFIG_SRCTRL_SRBANKS2 0 set CONFIG_SRCTRL_SRBANKS3 0 set CONFIG_SRCTRL_SRBANKS4 0 set CONFIG_SRCTRL_SRBANKS5 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_SRCTRL_BANKSZ0 0 set CONFIG_SRCTRL_BANKSZ1 0 set CONFIG_SRCTRL_BANKSZ2 0 @@ -5170,7 +5500,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -5181,7 +5511,7 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 @@ -5195,17 +5525,17 @@ set CONFIG_CAN_SYNCRST 0 set CONFIG_CAN_FT 0 set CONFIG_SPW_ENABLE 0 set CONFIG_SPW_NUM 1 -set tmpvar_31 "(not set)" +set tmpvar_33 "(not set)" set CONFIG_SPW_AHBFIFO4 0 set CONFIG_SPW_AHBFIFO8 0 set CONFIG_SPW_AHBFIFO16 0 set CONFIG_SPW_AHBFIFO32 0 -set tmpvar_32 "(not set)" +set tmpvar_34 "(not set)" set CONFIG_SPW_RXFIFO16 0 set CONFIG_SPW_RXFIFO32 0 set CONFIG_SPW_RXFIFO64 0 set CONFIG_SPW_RMAP 0 -set tmpvar_33 "(not set)" +set tmpvar_35 "(not set)" set CONFIG_SPW_RMAPBUF2 0 set CONFIG_SPW_RMAPBUF4 0 set CONFIG_SPW_RMAPBUF6 0 @@ -5215,17 +5545,17 @@ set CONFIG_SPW_RXUNAL 0 set CONFIG_SPW_FT 0 set CONFIG_SPW_NETLIST 0 set CONFIG_SPW_PORTS 1 -set tmpvar_34 "(not set)" +set tmpvar_36 "(not set)" set CONFIG_SPW_GRSPW1 0 set CONFIG_SPW_GRSPW2 0 set CONFIG_SPW_DMACHAN 1 set CONFIG_SPW_RTSAME 0 -set tmpvar_35 "(not set)" +set tmpvar_37 "(not set)" set CONFIG_SPW_RX_SDR 0 set CONFIG_SPW_RX_DDR 0 set CONFIG_SPW_RX_XOR 0 set CONFIG_SPW_RX_AFLEX 0 -set tmpvar_36 "(not set)" +set tmpvar_38 "(not set)" set CONFIG_SPW_TX_SDR 0 set CONFIG_SPW_TX_DDR 0 set CONFIG_SPW_TX_AFLEX 0 @@ -5234,7 +5564,7 @@ set CONFIG_PCI_MASTER_TARGET 0 set CONFIG_PCI_MASTER_TARGET_DMA 0 set CONFIG_PCI_VENDORID 1AC8 set CONFIG_PCI_DEVICEID 0054 -set tmpvar_37 "(not set)" +set tmpvar_39 "(not set)" set CONFIG_PCI_FIFO0 0 set CONFIG_PCI_FIFO8 0 set CONFIG_PCI_FIFO16 0 @@ -5246,14 +5576,14 @@ set CONFIG_PCI_ARBITER 0 set CONFIG_PCI_ARBITER_APB 0 set CONFIG_PCI_ARBITER_NREQ 4 set CONFIG_PCI_TRACE 0 -set tmpvar_38 "(not set)" +set tmpvar_40 "(not set)" set CONFIG_PCI_TRACE256 0 set CONFIG_PCI_TRACE512 0 set CONFIG_PCI_TRACE1024 0 set CONFIG_PCI_TRACE2048 0 set CONFIG_PCI_TRACE4096 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_39 "(not set)" +set tmpvar_41 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5261,7 +5591,7 @@ set CONFIG_UA1_FIFO8 0 set CONFIG_UA1_FIFO16 0 set CONFIG_UA1_FIFO32 0 set CONFIG_UART2_ENABLE 0 -set tmpvar_40 "(not set)" +set tmpvar_42 "(not set)" set CONFIG_UA2_FIFO1 0 set CONFIG_UA2_FIFO2 0 set CONFIG_UA2_FIFO4 0 @@ -5341,7 +5671,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5351,6 +5682,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5389,6 +5722,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -5401,9 +5735,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5417,241 +5752,390 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5696,13 +6180,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5730,29 +6214,29 @@ proc writeconfig {file1 file2} { if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_IOWS $CONFIG_SRCTRL_IOWS $notmod } global CONFIG_SRCTRL_RMW if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_RMW $CONFIG_SRCTRL_RMW [list $notmod] 2 } - global tmpvar_27 + global tmpvar_29 if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} - global tmpvar_28 + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} + global tmpvar_30 if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_SRCTRL_ROMASEL if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_ROMASEL $CONFIG_SRCTRL_ROMASEL $notmod } write_comment $cfg $autocfg "Leon2 memory controller " @@ -5797,27 +6281,27 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_30 + global tmpvar_32 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} write_comment $cfg $autocfg "CAN " global CONFIG_CAN_ENABLE write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2 @@ -5836,25 +6320,25 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_SPW_ENABLE $CONFIG_SPW_ENABLE [list $notmod] 2 global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_NUM $CONFIG_SPW_NUM $notmod } - global tmpvar_31 + global tmpvar_33 if {($CONFIG_SPW_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 }} - global tmpvar_32 + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 }} + global tmpvar_34 if {($CONFIG_SPW_ENABLE == 1)} then { - 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 } - 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 } - 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 }} + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 }} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAP $CONFIG_SPW_RMAP [list $notmod] 2 } - global tmpvar_33 + global tmpvar_35 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then { - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 }} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAPCRC $CONFIG_SPW_RMAPCRC [list $notmod] 2 } global CONFIG_SPW_RXUNAL @@ -5865,26 +6349,26 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_NETLIST $CONFIG_SPW_NETLIST [list $notmod] 2 } global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_PORTS $CONFIG_SPW_PORTS $notmod } - global tmpvar_34 + global tmpvar_36 if {($CONFIG_SPW_ENABLE == 1)} then { - 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 } - 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 }} + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 }} global CONFIG_SPW_DMACHAN global CONFIG_SPW_GRSPW2 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_int $cfg $autocfg CONFIG_SPW_DMACHAN $CONFIG_SPW_DMACHAN $notmod } global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RTSAME $CONFIG_SPW_RTSAME [list $notmod] 2 } - global tmpvar_35 + global tmpvar_37 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_35 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } - if { $tmpvar_35 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } - if { $tmpvar_35 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } - if { $tmpvar_35 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} - global tmpvar_36 + if { $tmpvar_37 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } + if { $tmpvar_37 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } + if { $tmpvar_37 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } + if { $tmpvar_37 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} + global tmpvar_38 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_36 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } - if { $tmpvar_36 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } - if { $tmpvar_36 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} + if { $tmpvar_38 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } + if { $tmpvar_38 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } + if { $tmpvar_38 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} write_comment $cfg $autocfg "PCI " global CONFIG_PCI_SIMPLE_TARGET global CONFIG_PCI_ACTEL @@ -5897,14 +6381,14 @@ proc writeconfig {file1 file2} { 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 } global CONFIG_PCI_DEVICEID 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 } - global tmpvar_37 + global tmpvar_39 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 { - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 }} + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 }} global CONFIG_PCI_HADDR 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 } global CONFIG_PCI_ARBITER @@ -5915,34 +6399,34 @@ proc writeconfig {file1 file2} { if {($CONFIG_PCI_ARBITER == 1)} then {write_int $cfg $autocfg CONFIG_PCI_ARBITER_NREQ $CONFIG_PCI_ARBITER_NREQ $notmod } global CONFIG_PCI_TRACE write_tristate $cfg $autocfg CONFIG_PCI_TRACE $CONFIG_PCI_TRACE [list $notmod] 2 - global tmpvar_38 + global tmpvar_40 if {($CONFIG_PCI_TRACE == 1)} then { - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 }} + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_39 + global tmpvar_41 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 }} + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 }} global CONFIG_UART2_ENABLE write_tristate $cfg $autocfg CONFIG_UART2_ENABLE $CONFIG_UART2_ENABLE [list $notmod] 2 - global tmpvar_40 + global tmpvar_42 if {($CONFIG_UART2_ENABLE == 1)} then { - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 }} + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -6015,7 +6499,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -6025,6 +6510,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -6043,8 +6530,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -6127,11 +6619,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -6152,6 +6646,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -6307,8 +6805,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -6327,6 +6827,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -6367,458 +6871,484 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "1" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "1" global CONFIG_SRCTRL_SRBANKS1 - if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_29 "1" } global CONFIG_SRCTRL_SRBANKS2 - if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_29 "2" } global CONFIG_SRCTRL_SRBANKS3 - if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_27 "3" } + if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_29 "3" } global CONFIG_SRCTRL_SRBANKS4 - if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_29 "4" } global CONFIG_SRCTRL_SRBANKS5 - if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_27 "5" } - global tmpvar_28 - set tmpvar_28 "0" + if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_29 "5" } + global tmpvar_30 + set tmpvar_30 "0" global CONFIG_SRCTRL_BANKSZ0 - if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_30 "8" } global CONFIG_SRCTRL_BANKSZ1 - if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_30 "16" } global CONFIG_SRCTRL_BANKSZ2 - if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_30 "32" } global CONFIG_SRCTRL_BANKSZ3 - if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_28 "64" } + if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_30 "64" } global CONFIG_SRCTRL_BANKSZ4 - if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_28 "128" } + if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_30 "128" } global CONFIG_SRCTRL_BANKSZ5 - if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_28 "256" } + if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_30 "256" } global CONFIG_SRCTRL_BANKSZ6 - if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_28 "512" } + if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_30 "512" } global CONFIG_SRCTRL_BANKSZ7 - if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_28 "1024" } + if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_30 "1024" } global CONFIG_SRCTRL_BANKSZ8 - if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_28 "2048" } + if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_30 "2048" } global CONFIG_SRCTRL_BANKSZ9 - if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_28 "4096" } + if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_30 "4096" } global CONFIG_SRCTRL_BANKSZ10 - if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_28 "8192" } + if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_30 "8192" } global CONFIG_SRCTRL_BANKSZ11 - if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_28 "16384" } + if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_30 "16384" } global CONFIG_SRCTRL_BANKSZ12 - if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_28 "32768" } + if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_30 "32768" } global CONFIG_SRCTRL_BANKSZ13 - if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_28 "65536" } - global tmpvar_29 - set tmpvar_29 "4" + if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_30 "65536" } + global tmpvar_31 + set tmpvar_31 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_31 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_31 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_31 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_31 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_31 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_31 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } - global tmpvar_30 - set tmpvar_30 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_31 "64" } + global tmpvar_32 + set tmpvar_32 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_32 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_32 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_32 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_32 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } - global tmpvar_31 - set tmpvar_31 "16" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_32 "64" } + global tmpvar_33 + set tmpvar_33 "16" global CONFIG_SPW_AHBFIFO4 - if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_31 "4" } + if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_33 "4" } global CONFIG_SPW_AHBFIFO8 - if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_31 "8" } + if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_33 "8" } global CONFIG_SPW_AHBFIFO16 - if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_31 "16" } + if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_33 "16" } global CONFIG_SPW_AHBFIFO32 - if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_31 "32" } - global tmpvar_32 - set tmpvar_32 "16" + if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_33 "32" } + global tmpvar_34 + set tmpvar_34 "16" global CONFIG_SPW_RXFIFO16 - if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_32 "16" } + if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_34 "16" } global CONFIG_SPW_RXFIFO32 - if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_32 "32" } + if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_34 "32" } global CONFIG_SPW_RXFIFO64 - if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_32 "64" } - global tmpvar_33 - set tmpvar_33 "64" + if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_34 "64" } + global tmpvar_35 + set tmpvar_35 "64" global CONFIG_SPW_RMAPBUF2 - if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_33 "64" } + if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_35 "64" } global CONFIG_SPW_RMAPBUF4 - if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_33 "128" } + if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_35 "128" } global CONFIG_SPW_RMAPBUF6 - if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_33 "192" } + if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_35 "192" } global CONFIG_SPW_RMAPBUF8 - if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_33 "256" } - global tmpvar_34 - set tmpvar_34 "2" + if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_35 "256" } + global tmpvar_36 + set tmpvar_36 "2" global CONFIG_SPW_GRSPW1 - if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_34 "1" } + if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_36 "1" } global CONFIG_SPW_GRSPW2 - if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_34 "2" } - global tmpvar_35 - set tmpvar_35 "DDR" + if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_36 "2" } + global tmpvar_37 + set tmpvar_37 "DDR" global CONFIG_SPW_RX_SDR - if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_35 "SDR" } + if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_37 "SDR" } global CONFIG_SPW_RX_DDR - if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_35 "DDR" } + if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_37 "DDR" } global CONFIG_SPW_RX_XOR - if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_35 "Xor" } + if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_37 "Xor" } global CONFIG_SPW_RX_AFLEX - if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_35 "Aeroflex" } - global tmpvar_36 - set tmpvar_36 "SDR" + if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_37 "Aeroflex" } + global tmpvar_38 + set tmpvar_38 "SDR" global CONFIG_SPW_TX_SDR - if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_36 "SDR" } + if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_38 "SDR" } global CONFIG_SPW_TX_DDR - if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_36 "DDR" } + if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_38 "DDR" } global CONFIG_SPW_TX_AFLEX - if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_36 "Aeroflex" } - global tmpvar_37 - set tmpvar_37 "8" + if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_38 "Aeroflex" } + global tmpvar_39 + set tmpvar_39 "8" global CONFIG_PCI_FIFO0 - if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_37 "None" } + if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_39 "None" } global CONFIG_PCI_FIFO8 - if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_37 "8" } + if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_39 "8" } global CONFIG_PCI_FIFO16 - if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_37 "16" } + if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_39 "16" } global CONFIG_PCI_FIFO32 - if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_37 "32" } + if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_39 "32" } global CONFIG_PCI_FIFO64 - if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_37 "64" } + if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_39 "64" } global CONFIG_PCI_FIFO128 - if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_37 "128" } - global tmpvar_38 - set tmpvar_38 "256" + if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_39 "128" } + global tmpvar_40 + set tmpvar_40 "256" global CONFIG_PCI_TRACE256 - if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_38 "256" } + if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_40 "256" } global CONFIG_PCI_TRACE512 - if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_38 "512" } + if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_40 "512" } global CONFIG_PCI_TRACE1024 - if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_38 "1024" } + if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_40 "1024" } global CONFIG_PCI_TRACE2048 - if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_38 "2048" } + if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_40 "2048" } global CONFIG_PCI_TRACE4096 - if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_38 "4096" } - global tmpvar_39 - set tmpvar_39 "1" + if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_40 "4096" } + global tmpvar_41 + set tmpvar_41 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_39 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_41 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_39 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_41 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_39 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_41 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_39 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_41 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_39 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_41 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_39 "32" } - global tmpvar_40 - set tmpvar_40 "1" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_41 "32" } + global tmpvar_42 + set tmpvar_42 "1" global CONFIG_UA2_FIFO1 - if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_40 "1" } + if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_42 "1" } global CONFIG_UA2_FIFO2 - if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_40 "2" } + if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_42 "2" } global CONFIG_UA2_FIFO4 - if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_40 "4" } + if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_42 "4" } global CONFIG_UA2_FIFO8 - if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_40 "8" } + if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_42 "8" } global CONFIG_UA2_FIFO16 - if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_40 "16" } + if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_42 "16" } global CONFIG_UA2_FIFO32 - if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_40 "32" } + if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_42 "32" } } diff --git a/designs/leon3-gr-cpci-xc2v6000/leon3mp.vhd b/designs/leon3-gr-cpci-xc2v6000/leon3mp.vhd index bda5039e..9248ddc5 100644 --- a/designs/leon3-gr-cpci-xc2v6000/leon3mp.vhd +++ b/designs/leon3-gr-cpci-xc2v6000/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-gr-cpci-xc2v6000/testbench.vhd b/designs/leon3-gr-cpci-xc2v6000/testbench.vhd index d89512df..d27dd5ce 100644 --- a/designs/leon3-gr-cpci-xc2v6000/testbench.vhd +++ b/designs/leon3-gr-cpci-xc2v6000/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-gr-cpci-xc2v6000/tkconfig.h b/designs/leon3-gr-cpci-xc2v6000/tkconfig.h index 379f6782..70f52e3f 100644 --- a/designs/leon3-gr-cpci-xc2v6000/tkconfig.h +++ b/designs/leon3-gr-cpci-xc2v6000/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-gr-cpci-xc4v/Makefile b/designs/leon3-gr-cpci-xc4v/Makefile index dd7fc61f..565e8a4e 100644 --- a/designs/leon3-gr-cpci-xc4v/Makefile +++ b/designs/leon3-gr-cpci-xc4v/Makefile @@ -20,9 +20,9 @@ SYNPOPT="set_option -pipe 0; set_option -retiming 0; set_option -write_apr_const TECHLIBS = unisim secureip LIBSKIP = core1553bbc core1553brm core1553brt gr1553 \ - tmtc openchip hynix cypress ihp gleichmann usbhc fmf spansion gsi -DIRSKIP = b1553 leon2 leon2ft leon3ft crypto satcan ddr usb ata grusbhc haps \ - leon4 leon4b64 l2cache iommu pcif slink ascs coremp7 ac97 + tmtc openchip hynix cypress ihp usbhc fmf spansion gsi +DIRSKIP = b1553 leon2 leon2ft leon3ft crypto satcan ddr usb grusbhc \ + leon4 leon4v0 l2cache iommu pcif slink ascs include $(GRLIB)/bin/Makefile include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-gr-cpci-xc4v/config.help b/designs/leon3-gr-cpci-xc4v/config.help index f67d85cd..ba36cd93 100644 --- a/designs/leon3-gr-cpci-xc4v/config.help +++ b/designs/leon3-gr-cpci-xc4v/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. diff --git a/designs/leon3-gr-cpci-xc4v/lconfig.tk b/designs/leon3-gr-cpci-xc4v/lconfig.tk index b9c434ce..3c804764 100755 --- a/designs/leon3-gr-cpci-xc4v/lconfig.tk +++ b/designs/leon3-gr-cpci-xc4v/lconfig.tk @@ -756,7 +756,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -766,7 +767,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -918,8 +921,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -938,6 +943,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1034,9 +1043,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_3 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_3 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_3 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_3 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_3 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_3 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1090,10 +1100,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1139,14 +1150,16 @@ proc update_define_menu2 {} { if {$tmpvar_3 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_3 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_3 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_3 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_3 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1219,13 +1232,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_4 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_4 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_4 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_4 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_4 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_4 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1265,22 +1286,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_4 + global CONFIG_LEON3_MIN + if {$tmpvar_4 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_4 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_4 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_4 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1337,21 +1626,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_4 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_5 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_5 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_5 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_5 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_5 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_5 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED + global tmpvar_6 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_6 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_6 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_6 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1398,36 +1687,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1435,48 +1725,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_5 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_5 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_5 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_6 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_6 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_6 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_6 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1532,28 +1823,28 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_6 - minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU + global tmpvar_7 + minimenu $w.config.f 5 1 "FPU core" tmpvar_7 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_7 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_7 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_7 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_7 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_8 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_8 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_8 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_8 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_8 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_8 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH - global tmpvar_8 - minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 + global tmpvar_9 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_9 CONFIG_FPU_GRFPC0 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_9 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_9 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_9 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x4.x.menu 3 bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1594,20 +1885,21 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1616,38 +1908,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_6 + global tmpvar_7 global CONFIG_FPU_GRFPU - if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_7 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_7 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_7 + if {$tmpvar_7 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_8 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_8 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_8 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_8 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + if {$tmpvar_8 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_FPU_GRFPC0 - if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_9 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_9 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_9 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1704,92 +1997,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_9 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 + global tmpvar_10 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_10 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_10 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_10 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 + global tmpvar_11 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_11 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_11 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_11 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_11 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_11 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_11 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_11 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_11 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_11 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 + global tmpvar_12 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_12 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_12 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND + global tmpvar_13 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_13 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_13 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_13 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_13 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_13 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_13 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_14 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_14 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_14 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 + global tmpvar_15 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_15 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_15 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_15 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 + global tmpvar_16 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_16 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_16 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_16 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_16 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_16 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_16 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_16 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_16 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_16 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 + global tmpvar_17 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_17 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_17 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND + global tmpvar_18 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_18 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_18 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_18 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_18 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_18 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1797,18 +2090,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_18 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_19 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_19 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_19 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_19 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_19 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_19 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_19 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_19 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_19 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_19 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_19 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1849,52 +2142,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1902,162 +2196,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_9 + global tmpvar_10 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_10 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_10 + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_11 global CONFIG_ICACHE_SZ1 - if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_11 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_11 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_11 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_11 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_11 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_11 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_11 + if {$tmpvar_11 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_12 global CONFIG_ICACHE_LZ16 - if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_12 + if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_13 global CONFIG_ICACHE_ALGORND - if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_13 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_13 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_13 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_13 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_14 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_14 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_14 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_14 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_14 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_14 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_14 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_14 + global tmpvar_15 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_15 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_15 + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_16 global CONFIG_DCACHE_SZ1 - if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_16 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_16 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_16 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_16 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_16 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_16 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_16 + if {$tmpvar_16 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_17 global CONFIG_DCACHE_LZ16 - if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_17 + if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_18 global CONFIG_DCACHE_ALGORND - if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_18 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_18 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_18 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_18 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_19 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_19 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_19 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_19 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_19 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_19 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_19 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_19 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_19 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2113,45 +2408,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_19 - minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED + global tmpvar_20 + minimenu $w.config.f 7 1 "MMU type " tmpvar_20 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_20 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_20 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY + global tmpvar_21 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_21 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_21 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_21 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_21 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_22 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_22 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_23 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_23 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_23 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_23 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_23 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K + global tmpvar_24 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_24 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_24 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_24 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_24 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_24 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_24 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2191,18 +2488,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2210,55 +2508,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_19 + global tmpvar_20 global CONFIG_MMU_COMBINED - if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_20 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_20 + if {$tmpvar_20 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_21 global CONFIG_MMU_REPARRAY - if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_21 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_21 + if {$tmpvar_21 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_22 global CONFIG_MMU_I2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_22 + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_23 global CONFIG_MMU_D2 - if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_23 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_23 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_23 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_23 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_23 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_23 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_MMU_PAGE_4K - if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_24 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_24 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_24 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_24 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_24 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2315,24 +2618,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_24 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_25 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 + global tmpvar_26 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2372,17 +2675,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2390,37 +2694,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2476,22 +2781,22 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_26 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE + global tmpvar_27 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_27 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_27 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - global tmpvar_27 - minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + global tmpvar_28 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_28 CONFIG_FPUFT_NONE menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" - $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_28 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_28 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_28 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_28 -value "TMR" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN @@ -2562,26 +2867,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_26 + global tmpvar_27 global CONFIG_IUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_27 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global tmpvar_27 + if {$tmpvar_27 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_28 global CONFIG_FPUFT_NONE - if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + if {$tmpvar_28 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} global CONFIG_FPUFT_PAR - if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + if {$tmpvar_28 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} global CONFIG_FPUFT_DMR - if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + if {$tmpvar_28 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} global CONFIG_FPUFT_TMR - if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} + if {$tmpvar_28 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2890,14 +3195,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_28 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 + global tmpvar_29 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_29 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2971,17 +3276,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_28 + global tmpvar_29 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3422,16 +3727,16 @@ proc menu16 {w title} { bool $w.config.f 16 0 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_29 - minimenu $w.config.f 16 1 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 + global tmpvar_30 + minimenu $w.config.f 16 1 "AHB RAM size (Kbyte)" tmpvar_30 CONFIG_AHBRAM_SZ1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x1.x.menu 7 hex $w.config.f 16 2 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3481,21 +3786,21 @@ proc update_menu16 {} { proc update_define_menu16 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_30 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_30 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_30 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3555,14 +3860,14 @@ proc menu17 {w title} { bool $w.config.f 17 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 17 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_30 - minimenu $w.config.f 17 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 + global tmpvar_31 + minimenu $w.config.f 17 2 "AHB FIFO size (words) " tmpvar_31 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3616,17 +3921,17 @@ proc update_define_menu17 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_30 + global tmpvar_31 global CONFIG_GRETH_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_31 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3819,57 +4124,57 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable Spacewire links " CONFIG_SPW_ENABLE int $w.config.f 19 1 "Number of links (1 - 3)" CONFIG_SPW_NUM - global tmpvar_31 - minimenu $w.config.f 19 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_31 CONFIG_SPW_AHBFIFO4 + global tmpvar_32 + minimenu $w.config.f 19 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_32 CONFIG_SPW_AHBFIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB RX/TX FIFO size (32-bit words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_32 - minimenu $w.config.f 19 3 "Receiver FIFO size (bytes) " tmpvar_32 CONFIG_SPW_RXFIFO16 + global tmpvar_33 + minimenu $w.config.f 19 3 "Receiver FIFO size (bytes) " tmpvar_33 CONFIG_SPW_RXFIFO16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Receiver FIFO size (bytes) \"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_32 -value "64" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_33 -value "64" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 19 4 "Enable RMAP protocol " CONFIG_SPW_RMAP - global tmpvar_33 - minimenu $w.config.f 19 5 "RMAP buffer size (bytes) " tmpvar_33 CONFIG_SPW_RMAPBUF2 + global tmpvar_34 + minimenu $w.config.f 19 5 "RMAP buffer size (bytes) " tmpvar_34 CONFIG_SPW_RMAPBUF2 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"RMAP buffer size (bytes) \"" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_33 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_33 -value "128" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_33 -value "192" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_33 -value "256" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_34 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_34 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_34 -value "192" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_34 -value "256" -command "update_active" menusplit $w $w.config.f.x5.x.menu 4 bool $w.config.f 19 6 "Enable RMAP CRC check " CONFIG_SPW_RMAPCRC bool $w.config.f 19 7 "Enable Rx unaligned transfers " CONFIG_SPW_RXUNAL bool $w.config.f 19 8 "Spacewire FIFO protection " CONFIG_SPW_FT bool $w.config.f 19 9 "Use GRSPWC netlist " CONFIG_SPW_NETLIST int $w.config.f 19 10 "Number of ports (1 - 2)" CONFIG_SPW_PORTS - global tmpvar_34 - minimenu $w.config.f 19 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_34 CONFIG_SPW_GRSPW1 + global tmpvar_35 + minimenu $w.config.f 19 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_35 CONFIG_SPW_GRSPW1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Select GRSPW core (GRSPW1/GRSPW2) \"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_34 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_34 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_35 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_35 -value "2" -command "update_active" menusplit $w $w.config.f.x11.x.menu 2 int $w.config.f 19 12 "Number of DMA channels (1 - 4)" CONFIG_SPW_DMACHAN bool $w.config.f 19 13 "Receiver and transmitter uses same clock " CONFIG_SPW_RTSAME - global tmpvar_35 - minimenu $w.config.f 19 14 "Select receiver clock type " tmpvar_35 CONFIG_SPW_RX_SDR + global tmpvar_36 + minimenu $w.config.f 19 14 "Select receiver clock type " tmpvar_36 CONFIG_SPW_RX_SDR menu $w.config.f.x14.x.menu -tearoffcommand "menutitle \"Select receiver clock type \"" - $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_35 -value "SDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_35 -value "DDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_35 -value "Xor" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_35 -value "Aeroflex" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_36 -value "SDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_36 -value "DDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_36 -value "Xor" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_36 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x14.x.menu 4 - global tmpvar_36 - minimenu $w.config.f 19 15 "Select transmitter clock type " tmpvar_36 CONFIG_SPW_TX_SDR + global tmpvar_37 + minimenu $w.config.f 19 15 "Select transmitter clock type " tmpvar_37 CONFIG_SPW_TX_SDR menu $w.config.f.x15.x.menu -tearoffcommand "menutitle \"Select transmitter clock type \"" - $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_36 -value "SDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_36 -value "DDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_36 -value "Aeroflex" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_37 -value "SDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_37 -value "DDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_37 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x15.x.menu 3 @@ -3949,34 +4254,34 @@ proc update_define_menu19 {} { global CONFIG_SPW_ENABLE global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_NUM "$CONFIG_SPW_NUM" 1} - global tmpvar_31 + global tmpvar_32 global CONFIG_SPW_AHBFIFO4 - if {$tmpvar_31 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} + if {$tmpvar_32 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} global CONFIG_SPW_AHBFIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} + if {$tmpvar_32 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} global CONFIG_SPW_AHBFIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} + if {$tmpvar_32 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} global CONFIG_SPW_AHBFIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} - global tmpvar_32 + if {$tmpvar_32 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} + global tmpvar_33 global CONFIG_SPW_RXFIFO16 - if {$tmpvar_32 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} + if {$tmpvar_33 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} global CONFIG_SPW_RXFIFO32 - if {$tmpvar_32 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} + if {$tmpvar_33 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} global CONFIG_SPW_RXFIFO64 - if {$tmpvar_32 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} + if {$tmpvar_33 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP&15]} else {set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP|16]} - global tmpvar_33 + global tmpvar_34 global CONFIG_SPW_RMAPBUF2 - if {$tmpvar_33 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} + if {$tmpvar_34 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} global CONFIG_SPW_RMAPBUF4 - if {$tmpvar_33 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} + if {$tmpvar_34 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} global CONFIG_SPW_RMAPBUF6 - if {$tmpvar_33 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} + if {$tmpvar_34 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} global CONFIG_SPW_RMAPBUF8 - if {$tmpvar_33 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} + if {$tmpvar_34 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC&15]} else {set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC|16]} @@ -3991,32 +4296,32 @@ proc update_define_menu19 {} { set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST&15]} else {set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST|16]} global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_PORTS "$CONFIG_SPW_PORTS" 1} - global tmpvar_34 + global tmpvar_35 global CONFIG_SPW_GRSPW1 - if {$tmpvar_34 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} + if {$tmpvar_35 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} global CONFIG_SPW_GRSPW2 - if {$tmpvar_34 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} + if {$tmpvar_35 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} global CONFIG_SPW_DMACHAN if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {validate_int CONFIG_SPW_DMACHAN "$CONFIG_SPW_DMACHAN" 1} global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME&15]} else {set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME|16]} - global tmpvar_35 + global tmpvar_36 global CONFIG_SPW_RX_SDR - if {$tmpvar_35 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} + if {$tmpvar_36 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} global CONFIG_SPW_RX_DDR - if {$tmpvar_35 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} + if {$tmpvar_36 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} global CONFIG_SPW_RX_XOR - if {$tmpvar_35 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} + if {$tmpvar_36 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} global CONFIG_SPW_RX_AFLEX - if {$tmpvar_35 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} - global tmpvar_36 + if {$tmpvar_36 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} + global tmpvar_37 global CONFIG_SPW_TX_SDR - if {$tmpvar_36 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} + if {$tmpvar_37 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} global CONFIG_SPW_TX_DDR - if {$tmpvar_36 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} + if {$tmpvar_37 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} global CONFIG_SPW_TX_AFLEX - if {$tmpvar_36 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} + if {$tmpvar_37 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} } @@ -4077,14 +4382,14 @@ proc menu20 {w title} { bool $w.config.f 20 3 "PCI arbiter APB interface " CONFIG_PCI_ARBITER_APB int $w.config.f 20 4 "Number of PCI REQ/GNT pairs" CONFIG_PCI_ARBITER_NREQ bool $w.config.f 20 5 "Enable PCI trace buffer " CONFIG_PCI_TRACE - global tmpvar_41 - minimenu $w.config.f 20 6 "PCI trace buffer depth" tmpvar_41 CONFIG_PCI_TRACE256 + global tmpvar_42 + minimenu $w.config.f 20 6 "PCI trace buffer depth" tmpvar_42 CONFIG_PCI_TRACE256 menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"PCI trace buffer depth\"" - $w.config.f.x6.x.menu add radiobutton -label "256" -variable tmpvar_41 -value "256" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "512" -variable tmpvar_41 -value "512" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "1024" -variable tmpvar_41 -value "1024" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "2048" -variable tmpvar_41 -value "2048" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "4096" -variable tmpvar_41 -value "4096" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "256" -variable tmpvar_42 -value "256" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "512" -variable tmpvar_42 -value "512" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "1024" -variable tmpvar_42 -value "1024" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "2048" -variable tmpvar_42 -value "2048" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4096" -variable tmpvar_42 -value "4096" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -4143,17 +4448,17 @@ proc update_define_menu20 {} { set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB&15]} else {set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB|16]} global CONFIG_PCI_ARBITER_NREQ if {($CONFIG_PCI_ARBITER == 1)} then {validate_int CONFIG_PCI_ARBITER_NREQ "$CONFIG_PCI_ARBITER_NREQ" 4} - global tmpvar_41 + global tmpvar_42 global CONFIG_PCI_TRACE256 - if {$tmpvar_41 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} + if {$tmpvar_42 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} global CONFIG_PCI_TRACE512 - if {$tmpvar_41 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} + if {$tmpvar_42 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} global CONFIG_PCI_TRACE1024 - if {$tmpvar_41 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} + if {$tmpvar_42 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} global CONFIG_PCI_TRACE2048 - if {$tmpvar_41 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} + if {$tmpvar_42 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} global CONFIG_PCI_TRACE4096 - if {$tmpvar_41 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} + if {$tmpvar_42 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} } @@ -4213,15 +4518,15 @@ proc menu21 {w title} { bool $w.config.f 21 2 "PCI DMA controller " CONFIG_PCI_MASTER_TARGET_DMA hex $w.config.f 21 3 "PCI vendor ID" CONFIG_PCI_VENDORID hex $w.config.f 21 4 "PCI device ID" CONFIG_PCI_DEVICEID - global tmpvar_37 - minimenu $w.config.f 21 5 "PCI FIFO depth" tmpvar_37 CONFIG_PCI_FIFO0 + global tmpvar_38 + minimenu $w.config.f 21 5 "PCI FIFO depth" tmpvar_38 CONFIG_PCI_FIFO0 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"PCI FIFO depth\"" - $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_37 -value "None" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_37 -value "8" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_37 -value "16" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_37 -value "32" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_37 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_37 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_38 -value "None" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_38 -value "8" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_38 -value "16" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_38 -value "32" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_38 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_38 -value "128" -command "update_active" menusplit $w $w.config.f.x5.x.menu 6 hex $w.config.f 21 6 "PCI initiator address (haddr\[31:20\]) " CONFIG_PCI_HADDR @@ -4298,19 +4603,19 @@ proc update_define_menu21 {} { if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_VENDORID "$CONFIG_PCI_VENDORID" 1AC8} global CONFIG_PCI_DEVICEID if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_DEVICEID "$CONFIG_PCI_DEVICEID" 0054} - global tmpvar_37 + global tmpvar_38 global CONFIG_PCI_FIFO0 - if {$tmpvar_37 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} + if {$tmpvar_38 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} global CONFIG_PCI_FIFO8 - if {$tmpvar_37 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} + if {$tmpvar_38 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} global CONFIG_PCI_FIFO16 - if {$tmpvar_37 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} + if {$tmpvar_38 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} global CONFIG_PCI_FIFO32 - if {$tmpvar_37 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} + if {$tmpvar_38 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} global CONFIG_PCI_FIFO64 - if {$tmpvar_37 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} + if {$tmpvar_38 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} global CONFIG_PCI_FIFO128 - if {$tmpvar_37 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} + if {$tmpvar_38 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} global CONFIG_PCI_HADDR 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} } @@ -4382,37 +4687,37 @@ proc menu22 {w title} { int $w.config.f 22 12 "BAR3" CONFIG_GRPCI2_BAR3 int $w.config.f 22 13 "BAR4" CONFIG_GRPCI2_BAR4 int $w.config.f 22 14 "BAR5" CONFIG_GRPCI2_BAR5 - global tmpvar_38 - minimenu $w.config.f 22 15 "GRPCI2 FIFO depth" tmpvar_38 CONFIG_GRPCI2_FIFO8 + global tmpvar_39 + minimenu $w.config.f 22 15 "GRPCI2 FIFO depth" tmpvar_39 CONFIG_GRPCI2_FIFO8 menu $w.config.f.x15.x.menu -tearoffcommand "menutitle \"GRPCI2 FIFO depth\"" - $w.config.f.x15.x.menu add radiobutton -label "8" -variable tmpvar_38 -value "8" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "16" -variable tmpvar_38 -value "16" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "32" -variable tmpvar_38 -value "32" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "64" -variable tmpvar_38 -value "64" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "128" -variable tmpvar_38 -value "128" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "8" -variable tmpvar_39 -value "8" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "16" -variable tmpvar_39 -value "16" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "32" -variable tmpvar_39 -value "32" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "64" -variable tmpvar_39 -value "64" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "128" -variable tmpvar_39 -value "128" -command "update_active" menusplit $w $w.config.f.x15.x.menu 5 - global tmpvar_39 - minimenu $w.config.f 22 16 "GRPCI2 FIFO Count" tmpvar_39 CONFIG_GRPCI2_FIFOCNT1 + global tmpvar_40 + minimenu $w.config.f 22 16 "GRPCI2 FIFO Count" tmpvar_40 CONFIG_GRPCI2_FIFOCNT1 menu $w.config.f.x16.x.menu -tearoffcommand "menutitle \"GRPCI2 FIFO Count\"" - $w.config.f.x16.x.menu add radiobutton -label "1" -variable tmpvar_39 -value "1" -command "update_active" - $w.config.f.x16.x.menu add radiobutton -label "2" -variable tmpvar_39 -value "2" -command "update_active" - $w.config.f.x16.x.menu add radiobutton -label "3" -variable tmpvar_39 -value "3" -command "update_active" - $w.config.f.x16.x.menu add radiobutton -label "4" -variable tmpvar_39 -value "4" -command "update_active" + $w.config.f.x16.x.menu add radiobutton -label "1" -variable tmpvar_40 -value "1" -command "update_active" + $w.config.f.x16.x.menu add radiobutton -label "2" -variable tmpvar_40 -value "2" -command "update_active" + $w.config.f.x16.x.menu add radiobutton -label "3" -variable tmpvar_40 -value "3" -command "update_active" + $w.config.f.x16.x.menu add radiobutton -label "4" -variable tmpvar_40 -value "4" -command "update_active" menusplit $w $w.config.f.x16.x.menu 4 bool $w.config.f 22 17 "GRPCI2 PCI little-endian" CONFIG_GRPCI2_ENDIAN bool $w.config.f 22 18 "GRPCI2 Device Int" CONFIG_GRPCI2_DINT hex $w.config.f 22 19 "GRPCI2 Device Int mask" CONFIG_GRPCI2_DINTMASK bool $w.config.f 22 20 "GRPCI2 Host Int" CONFIG_GRPCI2_HINT hex $w.config.f 22 21 "GRPCI2 Hevice Int mask" CONFIG_GRPCI2_HINTMASK - global tmpvar_40 - minimenu $w.config.f 22 22 "GRPCI2 PCI trace buffer" tmpvar_40 CONFIG_GRPCI2_TRACE0 + global tmpvar_41 + minimenu $w.config.f 22 22 "GRPCI2 PCI trace buffer" tmpvar_41 CONFIG_GRPCI2_TRACE0 menu $w.config.f.x22.x.menu -tearoffcommand "menutitle \"GRPCI2 PCI trace buffer\"" - $w.config.f.x22.x.menu add radiobutton -label "none" -variable tmpvar_40 -value "none" -command "update_active" - $w.config.f.x22.x.menu add radiobutton -label "256" -variable tmpvar_40 -value "256" -command "update_active" - $w.config.f.x22.x.menu add radiobutton -label "512" -variable tmpvar_40 -value "512" -command "update_active" - $w.config.f.x22.x.menu add radiobutton -label "1024" -variable tmpvar_40 -value "1024" -command "update_active" - $w.config.f.x22.x.menu add radiobutton -label "2048" -variable tmpvar_40 -value "2048" -command "update_active" - $w.config.f.x22.x.menu add radiobutton -label "4096" -variable tmpvar_40 -value "4096" -command "update_active" + $w.config.f.x22.x.menu add radiobutton -label "none" -variable tmpvar_41 -value "none" -command "update_active" + $w.config.f.x22.x.menu add radiobutton -label "256" -variable tmpvar_41 -value "256" -command "update_active" + $w.config.f.x22.x.menu add radiobutton -label "512" -variable tmpvar_41 -value "512" -command "update_active" + $w.config.f.x22.x.menu add radiobutton -label "1024" -variable tmpvar_41 -value "1024" -command "update_active" + $w.config.f.x22.x.menu add radiobutton -label "2048" -variable tmpvar_41 -value "2048" -command "update_active" + $w.config.f.x22.x.menu add radiobutton -label "4096" -variable tmpvar_41 -value "4096" -command "update_active" menusplit $w $w.config.f.x22.x.menu 6 bool $w.config.f 22 23 "Separate PCI trace buffer APB interface" CONFIG_GRPCI2_TRACEAPB bool $w.config.f 22 24 "GRPCI2 Input pad bypass" CONFIG_GRPCI2_BYPASS @@ -4530,45 +4835,45 @@ proc update_define_menu22 {} { if {($CONFIG_GRPCI2_TARGET == 1)} then {validate_int CONFIG_GRPCI2_BAR4 "$CONFIG_GRPCI2_BAR4" 0} global CONFIG_GRPCI2_BAR5 if {($CONFIG_GRPCI2_TARGET == 1)} then {validate_int CONFIG_GRPCI2_BAR5 "$CONFIG_GRPCI2_BAR5" 0} - global tmpvar_38 + global tmpvar_39 global CONFIG_GRPCI2_FIFO8 - if {$tmpvar_38 == "8"} then {set CONFIG_GRPCI2_FIFO8 1} else {set CONFIG_GRPCI2_FIFO8 0} + if {$tmpvar_39 == "8"} then {set CONFIG_GRPCI2_FIFO8 1} else {set CONFIG_GRPCI2_FIFO8 0} global CONFIG_GRPCI2_FIFO16 - if {$tmpvar_38 == "16"} then {set CONFIG_GRPCI2_FIFO16 1} else {set CONFIG_GRPCI2_FIFO16 0} + if {$tmpvar_39 == "16"} then {set CONFIG_GRPCI2_FIFO16 1} else {set CONFIG_GRPCI2_FIFO16 0} global CONFIG_GRPCI2_FIFO32 - if {$tmpvar_38 == "32"} then {set CONFIG_GRPCI2_FIFO32 1} else {set CONFIG_GRPCI2_FIFO32 0} + if {$tmpvar_39 == "32"} then {set CONFIG_GRPCI2_FIFO32 1} else {set CONFIG_GRPCI2_FIFO32 0} global CONFIG_GRPCI2_FIFO64 - if {$tmpvar_38 == "64"} then {set CONFIG_GRPCI2_FIFO64 1} else {set CONFIG_GRPCI2_FIFO64 0} + if {$tmpvar_39 == "64"} then {set CONFIG_GRPCI2_FIFO64 1} else {set CONFIG_GRPCI2_FIFO64 0} global CONFIG_GRPCI2_FIFO128 - if {$tmpvar_38 == "128"} then {set CONFIG_GRPCI2_FIFO128 1} else {set CONFIG_GRPCI2_FIFO128 0} - global tmpvar_39 + if {$tmpvar_39 == "128"} then {set CONFIG_GRPCI2_FIFO128 1} else {set CONFIG_GRPCI2_FIFO128 0} + global tmpvar_40 global CONFIG_GRPCI2_FIFOCNT1 - if {$tmpvar_39 == "1"} then {set CONFIG_GRPCI2_FIFOCNT1 1} else {set CONFIG_GRPCI2_FIFOCNT1 0} + if {$tmpvar_40 == "1"} then {set CONFIG_GRPCI2_FIFOCNT1 1} else {set CONFIG_GRPCI2_FIFOCNT1 0} global CONFIG_GRPCI2_FIFOCNT2 - if {$tmpvar_39 == "2"} then {set CONFIG_GRPCI2_FIFOCNT2 1} else {set CONFIG_GRPCI2_FIFOCNT2 0} + if {$tmpvar_40 == "2"} then {set CONFIG_GRPCI2_FIFOCNT2 1} else {set CONFIG_GRPCI2_FIFOCNT2 0} global CONFIG_GRPCI2_FIFOCNT3 - if {$tmpvar_39 == "3"} then {set CONFIG_GRPCI2_FIFOCNT3 1} else {set CONFIG_GRPCI2_FIFOCNT3 0} + if {$tmpvar_40 == "3"} then {set CONFIG_GRPCI2_FIFOCNT3 1} else {set CONFIG_GRPCI2_FIFOCNT3 0} global CONFIG_GRPCI2_FIFOCNT4 - if {$tmpvar_39 == "4"} then {set CONFIG_GRPCI2_FIFOCNT4 1} else {set CONFIG_GRPCI2_FIFOCNT4 0} + if {$tmpvar_40 == "4"} then {set CONFIG_GRPCI2_FIFOCNT4 1} else {set CONFIG_GRPCI2_FIFOCNT4 0} global CONFIG_GRPCI2_DINT global CONFIG_GRPCI2_DINTMASK if {($CONFIG_GRPCI2_DINT == 1)} then {validate_hex CONFIG_GRPCI2_DINTMASK "$CONFIG_GRPCI2_DINTMASK" 0} global CONFIG_GRPCI2_HINT global CONFIG_GRPCI2_HINTMASK if {($CONFIG_GRPCI2_HINT == 1)} then {validate_hex CONFIG_GRPCI2_HINTMASK "$CONFIG_GRPCI2_HINTMASK" 0} - global tmpvar_40 + global tmpvar_41 global CONFIG_GRPCI2_TRACE0 - if {$tmpvar_40 == "none"} then {set CONFIG_GRPCI2_TRACE0 1} else {set CONFIG_GRPCI2_TRACE0 0} + if {$tmpvar_41 == "none"} then {set CONFIG_GRPCI2_TRACE0 1} else {set CONFIG_GRPCI2_TRACE0 0} global CONFIG_GRPCI2_TRACE256 - if {$tmpvar_40 == "256"} then {set CONFIG_GRPCI2_TRACE256 1} else {set CONFIG_GRPCI2_TRACE256 0} + if {$tmpvar_41 == "256"} then {set CONFIG_GRPCI2_TRACE256 1} else {set CONFIG_GRPCI2_TRACE256 0} global CONFIG_GRPCI2_TRACE512 - if {$tmpvar_40 == "512"} then {set CONFIG_GRPCI2_TRACE512 1} else {set CONFIG_GRPCI2_TRACE512 0} + if {$tmpvar_41 == "512"} then {set CONFIG_GRPCI2_TRACE512 1} else {set CONFIG_GRPCI2_TRACE512 0} global CONFIG_GRPCI2_TRACE1024 - if {$tmpvar_40 == "1024"} then {set CONFIG_GRPCI2_TRACE1024 1} else {set CONFIG_GRPCI2_TRACE1024 0} + if {$tmpvar_41 == "1024"} then {set CONFIG_GRPCI2_TRACE1024 1} else {set CONFIG_GRPCI2_TRACE1024 0} global CONFIG_GRPCI2_TRACE2048 - if {$tmpvar_40 == "2048"} then {set CONFIG_GRPCI2_TRACE2048 1} else {set CONFIG_GRPCI2_TRACE2048 0} + if {$tmpvar_41 == "2048"} then {set CONFIG_GRPCI2_TRACE2048 1} else {set CONFIG_GRPCI2_TRACE2048 0} global CONFIG_GRPCI2_TRACE4096 - if {$tmpvar_40 == "4096"} then {set CONFIG_GRPCI2_TRACE4096 1} else {set CONFIG_GRPCI2_TRACE4096 0} + if {$tmpvar_41 == "4096"} then {set CONFIG_GRPCI2_TRACE4096 1} else {set CONFIG_GRPCI2_TRACE4096 0} global CONFIG_GRPCI2_TRACEAPB if {($CONFIG_GRPCI2_TRACE0 == 0)} then { set CONFIG_GRPCI2_TRACEAPB [expr $CONFIG_GRPCI2_TRACEAPB&15]} else {set CONFIG_GRPCI2_TRACEAPB [expr $CONFIG_GRPCI2_TRACEAPB|16]} @@ -4627,26 +4932,26 @@ proc menu23 {w title} { bool $w.config.f 23 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_42 - minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_42 CONFIG_UA1_FIFO1 + global tmpvar_43 + minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_43 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_42 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_42 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_42 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_42 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_42 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_42 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_43 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_43 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_43 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_43 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_43 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_43 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 23 2 "Enable secondary UART " CONFIG_UART2_ENABLE - global tmpvar_43 - minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_43 CONFIG_UA2_FIFO1 + global tmpvar_44 + minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_44 CONFIG_UA2_FIFO1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"UART2 FIFO depth\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_43 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_43 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_43 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_43 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_43 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_43 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_44 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_44 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_44 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_44 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_44 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_44 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 6 bool $w.config.f 23 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 23 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4737,32 +5042,32 @@ proc update_menu23 {} { proc update_define_menu23 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_42 + global tmpvar_43 global CONFIG_UA1_FIFO1 - if {$tmpvar_42 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_43 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_42 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_43 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_42 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_43 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_42 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_43 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_42 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_43 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_42 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} - global tmpvar_43 + if {$tmpvar_43 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + global tmpvar_44 global CONFIG_UA2_FIFO1 - if {$tmpvar_43 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} + if {$tmpvar_44 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} global CONFIG_UA2_FIFO2 - if {$tmpvar_43 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} + if {$tmpvar_44 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} global CONFIG_UA2_FIFO4 - if {$tmpvar_43 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} + if {$tmpvar_44 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} global CONFIG_UA2_FIFO8 - if {$tmpvar_43 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} + if {$tmpvar_44 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} global CONFIG_UA2_FIFO16 - if {$tmpvar_43 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} + if {$tmpvar_44 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} global CONFIG_UA2_FIFO32 - if {$tmpvar_43 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} + if {$tmpvar_44 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4932,7 +5237,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4942,6 +5248,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4970,6 +5278,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4982,14 +5291,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_4 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -5002,28 +5316,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 set CONFIG_FPU_GRFPU_SH 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -5033,17 +5347,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -5055,12 +5369,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -5070,10 +5384,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -5084,7 +5398,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -5096,26 +5410,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_21 "(not set)" +set tmpvar_22 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_22 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_23 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -5123,27 +5439,27 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set tmpvar_27 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_FPUFT_NONE 0 set CONFIG_FPUFT_PAR 0 set CONFIG_FPUFT_DMR 0 @@ -5168,7 +5484,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_28 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -5193,7 +5509,7 @@ set CONFIG_MCTRL_PROGPAGE 0 set CONFIG_AHBSTAT_ENABLE 0 set CONFIG_AHBSTAT_NFTSLV 1 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -5204,7 +5520,7 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_30 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 @@ -5219,17 +5535,17 @@ set CONFIG_CAN_SYNCRST 0 set CONFIG_CAN_FT 0 set CONFIG_SPW_ENABLE 0 set CONFIG_SPW_NUM 1 -set tmpvar_31 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_SPW_AHBFIFO4 0 set CONFIG_SPW_AHBFIFO8 0 set CONFIG_SPW_AHBFIFO16 0 set CONFIG_SPW_AHBFIFO32 0 -set tmpvar_32 "(not set)" +set tmpvar_33 "(not set)" set CONFIG_SPW_RXFIFO16 0 set CONFIG_SPW_RXFIFO32 0 set CONFIG_SPW_RXFIFO64 0 set CONFIG_SPW_RMAP 0 -set tmpvar_33 "(not set)" +set tmpvar_34 "(not set)" set CONFIG_SPW_RMAPBUF2 0 set CONFIG_SPW_RMAPBUF4 0 set CONFIG_SPW_RMAPBUF6 0 @@ -5239,17 +5555,17 @@ set CONFIG_SPW_RXUNAL 0 set CONFIG_SPW_FT 0 set CONFIG_SPW_NETLIST 0 set CONFIG_SPW_PORTS 1 -set tmpvar_34 "(not set)" +set tmpvar_35 "(not set)" set CONFIG_SPW_GRSPW1 0 set CONFIG_SPW_GRSPW2 0 set CONFIG_SPW_DMACHAN 1 set CONFIG_SPW_RTSAME 0 -set tmpvar_35 "(not set)" +set tmpvar_36 "(not set)" set CONFIG_SPW_RX_SDR 0 set CONFIG_SPW_RX_DDR 0 set CONFIG_SPW_RX_XOR 0 set CONFIG_SPW_RX_AFLEX 0 -set tmpvar_36 "(not set)" +set tmpvar_37 "(not set)" set CONFIG_SPW_TX_SDR 0 set CONFIG_SPW_TX_DDR 0 set CONFIG_SPW_TX_AFLEX 0 @@ -5258,7 +5574,7 @@ set CONFIG_PCI_MASTER_TARGET 0 set CONFIG_PCI_MASTER_TARGET_DMA 0 set CONFIG_PCI_VENDORID 1AC8 set CONFIG_PCI_DEVICEID 0054 -set tmpvar_37 "(not set)" +set tmpvar_38 "(not set)" set CONFIG_PCI_FIFO0 0 set CONFIG_PCI_FIFO8 0 set CONFIG_PCI_FIFO16 0 @@ -5281,13 +5597,13 @@ set CONFIG_GRPCI2_BAR2 0 set CONFIG_GRPCI2_BAR3 0 set CONFIG_GRPCI2_BAR4 0 set CONFIG_GRPCI2_BAR5 0 -set tmpvar_38 "(not set)" +set tmpvar_39 "(not set)" set CONFIG_GRPCI2_FIFO8 0 set CONFIG_GRPCI2_FIFO16 0 set CONFIG_GRPCI2_FIFO32 0 set CONFIG_GRPCI2_FIFO64 0 set CONFIG_GRPCI2_FIFO128 0 -set tmpvar_39 "(not set)" +set tmpvar_40 "(not set)" set CONFIG_GRPCI2_FIFOCNT1 0 set CONFIG_GRPCI2_FIFOCNT2 0 set CONFIG_GRPCI2_FIFOCNT3 0 @@ -5297,7 +5613,7 @@ set CONFIG_GRPCI2_DINT 0 set CONFIG_GRPCI2_DINTMASK 0 set CONFIG_GRPCI2_HINT 0 set CONFIG_GRPCI2_HINTMASK 0 -set tmpvar_40 "(not set)" +set tmpvar_41 "(not set)" set CONFIG_GRPCI2_TRACE0 0 set CONFIG_GRPCI2_TRACE256 0 set CONFIG_GRPCI2_TRACE512 0 @@ -5311,14 +5627,14 @@ set CONFIG_PCI_ARBITER 0 set CONFIG_PCI_ARBITER_APB 0 set CONFIG_PCI_ARBITER_NREQ 4 set CONFIG_PCI_TRACE 0 -set tmpvar_41 "(not set)" +set tmpvar_42 "(not set)" set CONFIG_PCI_TRACE256 0 set CONFIG_PCI_TRACE512 0 set CONFIG_PCI_TRACE1024 0 set CONFIG_PCI_TRACE2048 0 set CONFIG_PCI_TRACE4096 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_42 "(not set)" +set tmpvar_43 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5326,7 +5642,7 @@ set CONFIG_UA1_FIFO8 0 set CONFIG_UA1_FIFO16 0 set CONFIG_UA1_FIFO32 0 set CONFIG_UART2_ENABLE 0 -set tmpvar_43 "(not set)" +set tmpvar_44 "(not set)" set CONFIG_UA2_FIFO1 0 set CONFIG_UA2_FIFO2 0 set CONFIG_UA2_FIFO4 0 @@ -5406,7 +5722,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5416,6 +5733,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5460,6 +5779,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_3 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } + if { $tmpvar_3 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } global CONFIG_CLK_MUL @@ -5472,9 +5792,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5488,245 +5809,390 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_4 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_4 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_4 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_4 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_4 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - if { $tmpvar_4 == "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 } - if { $tmpvar_4 == "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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_5 == "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 } + if { $tmpvar_5 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_6 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_6 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_6 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_6 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_7 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 }} global tmpvar_8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_8 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_9 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 }} global tmpvar_22 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_24 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_24 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_24 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_24 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_24 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_26 - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_28 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} + if { $tmpvar_28 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_28 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_28 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_28 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5771,13 +6237,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_28 + global tmpvar_29 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5821,27 +6287,27 @@ proc writeconfig {file1 file2} { write_comment $cfg $autocfg "On-chip RAM/ROM " global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_30 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_30 + global tmpvar_31 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} write_comment $cfg $autocfg "CAN " global CONFIG_CAN_ENABLE write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2 @@ -5862,25 +6328,25 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_SPW_ENABLE $CONFIG_SPW_ENABLE [list $notmod] 2 global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_NUM $CONFIG_SPW_NUM $notmod } - global tmpvar_31 - if {($CONFIG_SPW_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 }} global tmpvar_32 if {($CONFIG_SPW_ENABLE == 1)} then { - 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 } - 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 } - 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 }} + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} + global tmpvar_33 + if {($CONFIG_SPW_ENABLE == 1)} then { + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 }} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAP $CONFIG_SPW_RMAP [list $notmod] 2 } - global tmpvar_33 + global tmpvar_34 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then { - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 }} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAPCRC $CONFIG_SPW_RMAPCRC [list $notmod] 2 } global CONFIG_SPW_RXUNAL @@ -5891,26 +6357,26 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_NETLIST $CONFIG_SPW_NETLIST [list $notmod] 2 } global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_PORTS $CONFIG_SPW_PORTS $notmod } - global tmpvar_34 + global tmpvar_35 if {($CONFIG_SPW_ENABLE == 1)} then { - 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 } - 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 }} + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 }} global CONFIG_SPW_DMACHAN global CONFIG_SPW_GRSPW2 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_int $cfg $autocfg CONFIG_SPW_DMACHAN $CONFIG_SPW_DMACHAN $notmod } global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RTSAME $CONFIG_SPW_RTSAME [list $notmod] 2 } - global tmpvar_35 - if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_35 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } - if { $tmpvar_35 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } - if { $tmpvar_35 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } - if { $tmpvar_35 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} global tmpvar_36 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_36 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } - if { $tmpvar_36 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } - if { $tmpvar_36 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} + if { $tmpvar_36 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } + if { $tmpvar_36 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } + if { $tmpvar_36 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } + if { $tmpvar_36 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} + global tmpvar_37 + if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { + if { $tmpvar_37 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } + if { $tmpvar_37 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } + if { $tmpvar_37 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} write_comment $cfg $autocfg "PCI " write_comment $cfg $autocfg "GRPCI1 " global CONFIG_PCI_SIMPLE_TARGET @@ -5924,14 +6390,14 @@ proc writeconfig {file1 file2} { 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 } global CONFIG_PCI_DEVICEID 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 } - global tmpvar_37 + global tmpvar_38 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 { - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 }} + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 }} global CONFIG_PCI_HADDR 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 } write_comment $cfg $autocfg "GRPCI2 " @@ -5965,19 +6431,19 @@ proc writeconfig {file1 file2} { if {($CONFIG_GRPCI2_TARGET == 1)} then {write_int $cfg $autocfg CONFIG_GRPCI2_BAR4 $CONFIG_GRPCI2_BAR4 $notmod } global CONFIG_GRPCI2_BAR5 if {($CONFIG_GRPCI2_TARGET == 1)} then {write_int $cfg $autocfg CONFIG_GRPCI2_BAR5 $CONFIG_GRPCI2_BAR5 $notmod } - global tmpvar_38 - if {($CONFIG_GRPCI2_MASTER == 1 || $CONFIG_GRPCI2_TARGET == 1)} then { - if { $tmpvar_38 == "8" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_38 == "16" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_38 == "32" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO32 0 [list $notmod] 2 } - if { $tmpvar_38 == "64" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO64 0 [list $notmod] 2 } - if { $tmpvar_38 == "128" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO128 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO128 0 [list $notmod] 2 }} global tmpvar_39 if {($CONFIG_GRPCI2_MASTER == 1 || $CONFIG_GRPCI2_TARGET == 1)} then { - if { $tmpvar_39 == "1" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT1 0 [list $notmod] 2 } - if { $tmpvar_39 == "2" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT2 0 [list $notmod] 2 } - if { $tmpvar_39 == "3" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT3 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT3 0 [list $notmod] 2 } - if { $tmpvar_39 == "4" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT4 0 [list $notmod] 2 }} + if { $tmpvar_39 == "8" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO8 0 [list $notmod] 2 } + if { $tmpvar_39 == "16" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO16 0 [list $notmod] 2 } + if { $tmpvar_39 == "32" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO32 0 [list $notmod] 2 } + if { $tmpvar_39 == "64" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO64 0 [list $notmod] 2 } + if { $tmpvar_39 == "128" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO128 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFO128 0 [list $notmod] 2 }} + global tmpvar_40 + if {($CONFIG_GRPCI2_MASTER == 1 || $CONFIG_GRPCI2_TARGET == 1)} then { + if { $tmpvar_40 == "1" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT1 0 [list $notmod] 2 } + if { $tmpvar_40 == "2" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT2 0 [list $notmod] 2 } + if { $tmpvar_40 == "3" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT3 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT3 0 [list $notmod] 2 } + if { $tmpvar_40 == "4" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_FIFOCNT4 0 [list $notmod] 2 }} global CONFIG_GRPCI2_ENDIAN write_tristate $cfg $autocfg CONFIG_GRPCI2_ENDIAN $CONFIG_GRPCI2_ENDIAN [list $notmod] 2 global CONFIG_GRPCI2_DINT @@ -5988,14 +6454,14 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_GRPCI2_HINT $CONFIG_GRPCI2_HINT [list $notmod] 2 global CONFIG_GRPCI2_HINTMASK if {($CONFIG_GRPCI2_HINT == 1)} then {write_hex $cfg $autocfg CONFIG_GRPCI2_HINTMASK $CONFIG_GRPCI2_HINTMASK $notmod } - global tmpvar_40 + global tmpvar_41 - if { $tmpvar_40 == "none" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE0 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE0 0 [list $notmod] 2 } - if { $tmpvar_40 == "256" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE256 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE256 0 [list $notmod] 2 } - if { $tmpvar_40 == "512" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE512 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE512 0 [list $notmod] 2 } - if { $tmpvar_40 == "1024" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE1024 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE1024 0 [list $notmod] 2 } - if { $tmpvar_40 == "2048" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE2048 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE2048 0 [list $notmod] 2 } - if { $tmpvar_40 == "4096" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE4096 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE4096 0 [list $notmod] 2 } + if { $tmpvar_41 == "none" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE0 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE0 0 [list $notmod] 2 } + if { $tmpvar_41 == "256" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE256 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE256 0 [list $notmod] 2 } + if { $tmpvar_41 == "512" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE512 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE512 0 [list $notmod] 2 } + if { $tmpvar_41 == "1024" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE1024 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE1024 0 [list $notmod] 2 } + if { $tmpvar_41 == "2048" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE2048 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE2048 0 [list $notmod] 2 } + if { $tmpvar_41 == "4096" } then { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE4096 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACE4096 0 [list $notmod] 2 } global CONFIG_GRPCI2_TRACEAPB global CONFIG_GRPCI2_TRACE0 if {($CONFIG_GRPCI2_TRACE0 == 0)} then {write_tristate $cfg $autocfg CONFIG_GRPCI2_TRACEAPB $CONFIG_GRPCI2_TRACEAPB [list $notmod] 2 } @@ -6011,34 +6477,34 @@ proc writeconfig {file1 file2} { if {($CONFIG_PCI_ARBITER == 1)} then {write_int $cfg $autocfg CONFIG_PCI_ARBITER_NREQ $CONFIG_PCI_ARBITER_NREQ $notmod } global CONFIG_PCI_TRACE write_tristate $cfg $autocfg CONFIG_PCI_TRACE $CONFIG_PCI_TRACE [list $notmod] 2 - global tmpvar_41 + global tmpvar_42 if {($CONFIG_PCI_TRACE == 1)} then { - if { $tmpvar_41 == "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 } - if { $tmpvar_41 == "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 } - if { $tmpvar_41 == "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 } - if { $tmpvar_41 == "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 } - if { $tmpvar_41 == "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 }} + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 }} write_comment $cfg $autocfg "UARTs, timers and I/O port " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_42 + global tmpvar_43 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_42 == "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 } - if { $tmpvar_42 == "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 } - if { $tmpvar_42 == "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 } - if { $tmpvar_42 == "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 } - if { $tmpvar_42 == "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 } - if { $tmpvar_42 == "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 }} + if { $tmpvar_43 == "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 } + if { $tmpvar_43 == "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 } + if { $tmpvar_43 == "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 } + if { $tmpvar_43 == "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 } + if { $tmpvar_43 == "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 } + if { $tmpvar_43 == "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 }} global CONFIG_UART2_ENABLE write_tristate $cfg $autocfg CONFIG_UART2_ENABLE $CONFIG_UART2_ENABLE [list $notmod] 2 - global tmpvar_43 + global tmpvar_44 if {($CONFIG_UART2_ENABLE == 1)} then { - if { $tmpvar_43 == "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 } - if { $tmpvar_43 == "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 } - if { $tmpvar_43 == "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 } - if { $tmpvar_43 == "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 } - if { $tmpvar_43 == "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 } - if { $tmpvar_43 == "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 }} + if { $tmpvar_44 == "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 } + if { $tmpvar_44 == "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 } + if { $tmpvar_44 == "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 } + if { $tmpvar_44 == "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 } + if { $tmpvar_44 == "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 } + if { $tmpvar_44 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -6111,7 +6577,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -6121,6 +6588,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -6142,8 +6611,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -6226,11 +6700,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -6406,8 +6882,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -6426,6 +6904,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -6474,462 +6956,478 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_3 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_3 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_3 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_3 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_3 "Xilinx-DCM" } global tmpvar_4 - set tmpvar_4 "5-cycles" + set tmpvar_4 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_4 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_4 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_4 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_4 "Custom-configuration" } + global tmpvar_5 + set tmpvar_5 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_5 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_5 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } - global tmpvar_5 - set tmpvar_5 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_5 "5-cycles" } + global tmpvar_6 + set tmpvar_6 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_6 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_6 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } - global tmpvar_6 - set tmpvar_6 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_6 "Designware" } + global tmpvar_7 + set tmpvar_7 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_7 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_7 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } - global tmpvar_7 - set tmpvar_7 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_7 "Meiko" } + global tmpvar_8 + set tmpvar_8 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_8 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_8 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_8 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } - global tmpvar_8 - set tmpvar_8 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_8 "TechSpec" } + global tmpvar_9 + set tmpvar_9 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_9 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_9 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } - global tmpvar_9 - set tmpvar_9 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_9 "Non-blocking" } + global tmpvar_10 + set tmpvar_10 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_10 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } - global tmpvar_10 - set tmpvar_10 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_10 "4" } + global tmpvar_11 + set tmpvar_11 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_11 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_11 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_11 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_11 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_11 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_11 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_11 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } - global tmpvar_11 - set tmpvar_11 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_11 "256" } + global tmpvar_12 + set tmpvar_12 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_12 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } - global tmpvar_12 - set tmpvar_12 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_12 "32" } + global tmpvar_13 + set tmpvar_13 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_13 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_13 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_13 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } - global tmpvar_13 - set tmpvar_13 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_13 "LRU" } + global tmpvar_14 + set tmpvar_14 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_14 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_14 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_14 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_14 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_14 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_14 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_14 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_14 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } - global tmpvar_14 - set tmpvar_14 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_14 "256" } + global tmpvar_15 + set tmpvar_15 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_15 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } - global tmpvar_15 - set tmpvar_15 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_15 "4" } + global tmpvar_16 + set tmpvar_16 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_16 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_16 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_16 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_16 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_16 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_16 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_16 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } - global tmpvar_16 - set tmpvar_16 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_16 "256" } + global tmpvar_17 + set tmpvar_17 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_17 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } - global tmpvar_17 - set tmpvar_17 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_17 "32" } + global tmpvar_18 + set tmpvar_18 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_18 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_18 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_18 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } - global tmpvar_18 - set tmpvar_18 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_18 "LRU" } + global tmpvar_19 + set tmpvar_19 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_19 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_19 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_19 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_19 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_19 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_19 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_19 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_19 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } - global tmpvar_19 - set tmpvar_19 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_19 "256" } + global tmpvar_20 + set tmpvar_20 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_20 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } - global tmpvar_20 - set tmpvar_20 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_20 "split" } + global tmpvar_21 + set tmpvar_21 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_21 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_21 "Increment" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_23 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_23 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_23 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_23 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } - global tmpvar_23 - set tmpvar_23 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_23 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_23 "64" } + global tmpvar_24 + set tmpvar_24 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_24 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_24 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_24 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_24 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_24 "Programmable" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_26 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_26 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_26 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_26 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_26 "16" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_27 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "None" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "None" global CONFIG_FPUFT_NONE - if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_28 "None" } global CONFIG_FPUFT_PAR - if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_28 "Parity" } global CONFIG_FPUFT_DMR - if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_28 "PDMR" } global CONFIG_FPUFT_TMR - if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } - global tmpvar_28 - set tmpvar_28 "2" + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_28 "TMR" } + global tmpvar_29 + set tmpvar_29 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } - global tmpvar_29 - set tmpvar_29 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_29 "16" } + global tmpvar_30 + set tmpvar_30 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_30 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_30 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_30 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_30 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_30 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_30 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } - global tmpvar_30 - set tmpvar_30 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_31 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } - global tmpvar_31 - set tmpvar_31 "16" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_31 "64" } + global tmpvar_32 + set tmpvar_32 "16" global CONFIG_SPW_AHBFIFO4 - if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_31 "4" } + if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_32 "4" } global CONFIG_SPW_AHBFIFO8 - if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_31 "8" } + if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_32 "8" } global CONFIG_SPW_AHBFIFO16 - if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_31 "16" } + if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_32 "16" } global CONFIG_SPW_AHBFIFO32 - if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_31 "32" } - global tmpvar_32 - set tmpvar_32 "16" + if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_32 "32" } + global tmpvar_33 + set tmpvar_33 "16" global CONFIG_SPW_RXFIFO16 - if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_32 "16" } + if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_33 "16" } global CONFIG_SPW_RXFIFO32 - if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_32 "32" } + if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_33 "32" } global CONFIG_SPW_RXFIFO64 - if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_32 "64" } - global tmpvar_33 - set tmpvar_33 "64" + if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_33 "64" } + global tmpvar_34 + set tmpvar_34 "64" global CONFIG_SPW_RMAPBUF2 - if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_33 "64" } + if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_34 "64" } global CONFIG_SPW_RMAPBUF4 - if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_33 "128" } + if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_34 "128" } global CONFIG_SPW_RMAPBUF6 - if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_33 "192" } + if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_34 "192" } global CONFIG_SPW_RMAPBUF8 - if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_33 "256" } - global tmpvar_34 - set tmpvar_34 "2" + if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_34 "256" } + global tmpvar_35 + set tmpvar_35 "2" global CONFIG_SPW_GRSPW1 - if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_34 "1" } + if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_35 "1" } global CONFIG_SPW_GRSPW2 - if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_34 "2" } - global tmpvar_35 - set tmpvar_35 "DDR" + if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_35 "2" } + global tmpvar_36 + set tmpvar_36 "DDR" global CONFIG_SPW_RX_SDR - if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_35 "SDR" } + if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_36 "SDR" } global CONFIG_SPW_RX_DDR - if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_35 "DDR" } + if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_36 "DDR" } global CONFIG_SPW_RX_XOR - if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_35 "Xor" } + if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_36 "Xor" } global CONFIG_SPW_RX_AFLEX - if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_35 "Aeroflex" } - global tmpvar_36 - set tmpvar_36 "SDR" + if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_36 "Aeroflex" } + global tmpvar_37 + set tmpvar_37 "SDR" global CONFIG_SPW_TX_SDR - if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_36 "SDR" } + if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_37 "SDR" } global CONFIG_SPW_TX_DDR - if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_36 "DDR" } + if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_37 "DDR" } global CONFIG_SPW_TX_AFLEX - if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_36 "Aeroflex" } - global tmpvar_37 - set tmpvar_37 "8" + if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_37 "Aeroflex" } + global tmpvar_38 + set tmpvar_38 "8" global CONFIG_PCI_FIFO0 - if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_37 "None" } + if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_38 "None" } global CONFIG_PCI_FIFO8 - if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_37 "8" } + if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_38 "8" } global CONFIG_PCI_FIFO16 - if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_37 "16" } + if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_38 "16" } global CONFIG_PCI_FIFO32 - if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_37 "32" } + if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_38 "32" } global CONFIG_PCI_FIFO64 - if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_37 "64" } + if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_38 "64" } global CONFIG_PCI_FIFO128 - if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_37 "128" } - global tmpvar_38 - set tmpvar_38 "8" + if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_38 "128" } + global tmpvar_39 + set tmpvar_39 "8" global CONFIG_GRPCI2_FIFO8 - if { $CONFIG_GRPCI2_FIFO8 == 1 } then { set tmpvar_38 "8" } + if { $CONFIG_GRPCI2_FIFO8 == 1 } then { set tmpvar_39 "8" } global CONFIG_GRPCI2_FIFO16 - if { $CONFIG_GRPCI2_FIFO16 == 1 } then { set tmpvar_38 "16" } + if { $CONFIG_GRPCI2_FIFO16 == 1 } then { set tmpvar_39 "16" } global CONFIG_GRPCI2_FIFO32 - if { $CONFIG_GRPCI2_FIFO32 == 1 } then { set tmpvar_38 "32" } + if { $CONFIG_GRPCI2_FIFO32 == 1 } then { set tmpvar_39 "32" } global CONFIG_GRPCI2_FIFO64 - if { $CONFIG_GRPCI2_FIFO64 == 1 } then { set tmpvar_38 "64" } + if { $CONFIG_GRPCI2_FIFO64 == 1 } then { set tmpvar_39 "64" } global CONFIG_GRPCI2_FIFO128 - if { $CONFIG_GRPCI2_FIFO128 == 1 } then { set tmpvar_38 "128" } - global tmpvar_39 - set tmpvar_39 "2" + if { $CONFIG_GRPCI2_FIFO128 == 1 } then { set tmpvar_39 "128" } + global tmpvar_40 + set tmpvar_40 "2" global CONFIG_GRPCI2_FIFOCNT1 - if { $CONFIG_GRPCI2_FIFOCNT1 == 1 } then { set tmpvar_39 "1" } + if { $CONFIG_GRPCI2_FIFOCNT1 == 1 } then { set tmpvar_40 "1" } global CONFIG_GRPCI2_FIFOCNT2 - if { $CONFIG_GRPCI2_FIFOCNT2 == 1 } then { set tmpvar_39 "2" } + if { $CONFIG_GRPCI2_FIFOCNT2 == 1 } then { set tmpvar_40 "2" } global CONFIG_GRPCI2_FIFOCNT3 - if { $CONFIG_GRPCI2_FIFOCNT3 == 1 } then { set tmpvar_39 "3" } + if { $CONFIG_GRPCI2_FIFOCNT3 == 1 } then { set tmpvar_40 "3" } global CONFIG_GRPCI2_FIFOCNT4 - if { $CONFIG_GRPCI2_FIFOCNT4 == 1 } then { set tmpvar_39 "4" } - global tmpvar_40 - set tmpvar_40 "none" + if { $CONFIG_GRPCI2_FIFOCNT4 == 1 } then { set tmpvar_40 "4" } + global tmpvar_41 + set tmpvar_41 "none" global CONFIG_GRPCI2_TRACE0 - if { $CONFIG_GRPCI2_TRACE0 == 1 } then { set tmpvar_40 "none" } + if { $CONFIG_GRPCI2_TRACE0 == 1 } then { set tmpvar_41 "none" } global CONFIG_GRPCI2_TRACE256 - if { $CONFIG_GRPCI2_TRACE256 == 1 } then { set tmpvar_40 "256" } + if { $CONFIG_GRPCI2_TRACE256 == 1 } then { set tmpvar_41 "256" } global CONFIG_GRPCI2_TRACE512 - if { $CONFIG_GRPCI2_TRACE512 == 1 } then { set tmpvar_40 "512" } + if { $CONFIG_GRPCI2_TRACE512 == 1 } then { set tmpvar_41 "512" } global CONFIG_GRPCI2_TRACE1024 - if { $CONFIG_GRPCI2_TRACE1024 == 1 } then { set tmpvar_40 "1024" } + if { $CONFIG_GRPCI2_TRACE1024 == 1 } then { set tmpvar_41 "1024" } global CONFIG_GRPCI2_TRACE2048 - if { $CONFIG_GRPCI2_TRACE2048 == 1 } then { set tmpvar_40 "2048" } + if { $CONFIG_GRPCI2_TRACE2048 == 1 } then { set tmpvar_41 "2048" } global CONFIG_GRPCI2_TRACE4096 - if { $CONFIG_GRPCI2_TRACE4096 == 1 } then { set tmpvar_40 "4096" } - global tmpvar_41 - set tmpvar_41 "256" + if { $CONFIG_GRPCI2_TRACE4096 == 1 } then { set tmpvar_41 "4096" } + global tmpvar_42 + set tmpvar_42 "256" global CONFIG_PCI_TRACE256 - if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_41 "256" } + if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_42 "256" } global CONFIG_PCI_TRACE512 - if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_41 "512" } + if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_42 "512" } global CONFIG_PCI_TRACE1024 - if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_41 "1024" } + if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_42 "1024" } global CONFIG_PCI_TRACE2048 - if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_41 "2048" } + if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_42 "2048" } global CONFIG_PCI_TRACE4096 - if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_41 "4096" } - global tmpvar_42 - set tmpvar_42 "1" + if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_42 "4096" } + global tmpvar_43 + set tmpvar_43 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_42 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_43 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_42 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_43 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_42 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_43 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_42 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_43 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_42 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_43 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_42 "32" } - global tmpvar_43 - set tmpvar_43 "1" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_43 "32" } + global tmpvar_44 + set tmpvar_44 "1" global CONFIG_UA2_FIFO1 - if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_43 "1" } + if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_44 "1" } global CONFIG_UA2_FIFO2 - if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_43 "2" } + if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_44 "2" } global CONFIG_UA2_FIFO4 - if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_43 "4" } + if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_44 "4" } global CONFIG_UA2_FIFO8 - if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_43 "8" } + if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_44 "8" } global CONFIG_UA2_FIFO16 - if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_43 "16" } + if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_44 "16" } global CONFIG_UA2_FIFO32 - if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_43 "32" } + if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_44 "32" } } diff --git a/designs/leon3-gr-cpci-xc4v/leon3mp.vhd b/designs/leon3-gr-cpci-xc4v/leon3mp.vhd index e3118b96..49bbfa18 100644 --- a/designs/leon3-gr-cpci-xc4v/leon3mp.vhd +++ b/designs/leon3-gr-cpci-xc4v/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-gr-cpci-xc4v/testbench.vhd b/designs/leon3-gr-cpci-xc4v/testbench.vhd index fcdeeca5..06574e5b 100644 --- a/designs/leon3-gr-cpci-xc4v/testbench.vhd +++ b/designs/leon3-gr-cpci-xc4v/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-gr-cpci-xc4v/tkconfig.h b/designs/leon3-gr-cpci-xc4v/tkconfig.h index 85f10a08..9581bca2 100644 --- a/designs/leon3-gr-cpci-xc4v/tkconfig.h +++ b/designs/leon3-gr-cpci-xc4v/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else diff --git a/designs/leon3-gr-pci-xc2v3000/Makefile b/designs/leon3-gr-pci-xc2v3000/Makefile index 49bcfb95..c327a51f 100644 --- a/designs/leon3-gr-pci-xc2v3000/Makefile +++ b/designs/leon3-gr-pci-xc2v3000/Makefile @@ -18,9 +18,9 @@ CLEAN=soft-clean TECHLIBS = unisim secureip LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF gsi \ - tmtc openchip hynix cypress ihp gleichmann fmf spansion usbhc -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr usb ata grusbhc haps \ - slink ascs coremp7 ac97 + tmtc openchip hynix cypress ihp fmf spansion usbhc +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr usb grusbhc \ + slink ascs include $(GRLIB)/bin/Makefile include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-gr-pci-xc2v3000/ahbrom.vhd b/designs/leon3-gr-pci-xc2v3000/ahbrom.vhd index f94b8866..753697a1 100644 --- a/designs/leon3-gr-pci-xc2v3000/ahbrom.vhd +++ b/designs/leon3-gr-pci-xc2v3000/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-gr-pci-xc2v3000/config.help b/designs/leon3-gr-pci-xc2v3000/config.help index 3880ef18..94b1fd7f 100644 --- a/designs/leon3-gr-pci-xc2v3000/config.help +++ b/designs/leon3-gr-pci-xc2v3000/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-gr-pci-xc2v3000/lconfig.tk b/designs/leon3-gr-pci-xc2v3000/lconfig.tk index 6e4c542e..fa375c24 100755 --- a/designs/leon3-gr-pci-xc2v3000/lconfig.tk +++ b/designs/leon3-gr-pci-xc2v3000/lconfig.tk @@ -753,7 +753,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -763,7 +764,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -906,8 +909,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -926,6 +931,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1015,9 +1024,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1071,10 +1081,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1120,14 +1131,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1200,13 +1213,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1246,22 +1267,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1318,21 +1607,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1379,36 +1668,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1416,48 +1706,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1513,27 +1804,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1574,16 +1865,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1592,34 +1884,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1676,92 +1969,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1769,18 +2062,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1821,52 +2114,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1874,162 +2168,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2085,45 +2380,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2163,18 +2460,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2182,55 +2480,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2287,24 +2590,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2344,17 +2647,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2362,37 +2666,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2448,16 +2753,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2505,9 +2817,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2529,21 +2839,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2852,14 +3167,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2933,17 +3248,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3378,16 +3693,16 @@ proc menu16 {w title} { hex $w.config.f 16 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 16 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 16 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 16 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 16 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 16 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3449,21 +3764,21 @@ proc update_define_menu16 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3523,14 +3838,14 @@ proc menu17 {w title} { bool $w.config.f 17 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 17 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 17 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 17 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3584,17 +3899,17 @@ proc update_define_menu17 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3654,29 +3969,29 @@ proc menu18 {w title} { bool $w.config.f 18 2 "PCI DMA controller " CONFIG_PCI_MASTER_TARGET_DMA hex $w.config.f 18 3 "PCI vendor ID" CONFIG_PCI_VENDORID hex $w.config.f 18 4 "PCI device ID" CONFIG_PCI_DEVICEID - global tmpvar_29 - minimenu $w.config.f 18 5 "PCI FIFO depth" tmpvar_29 CONFIG_PCI_FIFO0 + global tmpvar_31 + minimenu $w.config.f 18 5 "PCI FIFO depth" tmpvar_31 CONFIG_PCI_FIFO0 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"PCI FIFO depth\"" - $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_29 -value "None" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_29 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_31 -value "None" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_31 -value "128" -command "update_active" menusplit $w $w.config.f.x5.x.menu 6 hex $w.config.f 18 6 "PCI initiator address (haddr\[31:20\]) " CONFIG_PCI_HADDR bool $w.config.f 18 7 "PCI arbiter " CONFIG_PCI_ARBITER bool $w.config.f 18 8 "PCI arbiter APB interface " CONFIG_PCI_ARBITER_APB int $w.config.f 18 9 "Number of PCI REQ/GNT pairs" CONFIG_PCI_ARBITER_NREQ bool $w.config.f 18 10 "Enable PCI trace buffer " CONFIG_PCI_TRACE - global tmpvar_30 - minimenu $w.config.f 18 11 "PCI trace buffer depth" tmpvar_30 CONFIG_PCI_TRACE256 + global tmpvar_32 + minimenu $w.config.f 18 11 "PCI trace buffer depth" tmpvar_32 CONFIG_PCI_TRACE256 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"PCI trace buffer depth\"" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_30 -value "256" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_30 -value "512" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_30 -value "1024" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_30 -value "2048" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_30 -value "4096" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_32 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_32 -value "512" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_32 -value "1024" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_32 -value "2048" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_32 -value "4096" -command "update_active" menusplit $w $w.config.f.x11.x.menu 5 @@ -3760,19 +4075,19 @@ proc update_define_menu18 {} { if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_VENDORID "$CONFIG_PCI_VENDORID" 1AC8} global CONFIG_PCI_DEVICEID if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_DEVICEID "$CONFIG_PCI_DEVICEID" 0054} - global tmpvar_29 + global tmpvar_31 global CONFIG_PCI_FIFO0 - if {$tmpvar_29 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} + if {$tmpvar_31 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} global CONFIG_PCI_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} global CONFIG_PCI_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} global CONFIG_PCI_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} global CONFIG_PCI_FIFO64 - if {$tmpvar_29 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} + if {$tmpvar_31 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} global CONFIG_PCI_FIFO128 - if {$tmpvar_29 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} + if {$tmpvar_31 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} global CONFIG_PCI_HADDR 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} global CONFIG_PCI_ARBITER @@ -3781,17 +4096,17 @@ proc update_define_menu18 {} { set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB&15]} else {set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB|16]} global CONFIG_PCI_ARBITER_NREQ if {($CONFIG_PCI_ARBITER == 1)} then {validate_int CONFIG_PCI_ARBITER_NREQ "$CONFIG_PCI_ARBITER_NREQ" 4} - global tmpvar_30 + global tmpvar_32 global CONFIG_PCI_TRACE256 - if {$tmpvar_30 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} + if {$tmpvar_32 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} global CONFIG_PCI_TRACE512 - if {$tmpvar_30 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} + if {$tmpvar_32 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} global CONFIG_PCI_TRACE1024 - if {$tmpvar_30 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} + if {$tmpvar_32 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} global CONFIG_PCI_TRACE2048 - if {$tmpvar_30 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} + if {$tmpvar_32 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} global CONFIG_PCI_TRACE4096 - if {$tmpvar_30 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} + if {$tmpvar_32 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} } @@ -3848,57 +4163,57 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable Spacewire links " CONFIG_SPW_ENABLE int $w.config.f 19 1 "Number of links (1 - 3)" CONFIG_SPW_NUM - global tmpvar_31 - minimenu $w.config.f 19 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_31 CONFIG_SPW_AHBFIFO4 + global tmpvar_33 + minimenu $w.config.f 19 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_33 CONFIG_SPW_AHBFIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB RX/TX FIFO size (32-bit words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_33 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_32 - minimenu $w.config.f 19 3 "Receiver FIFO size (bytes) " tmpvar_32 CONFIG_SPW_RXFIFO16 + global tmpvar_34 + minimenu $w.config.f 19 3 "Receiver FIFO size (bytes) " tmpvar_34 CONFIG_SPW_RXFIFO16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Receiver FIFO size (bytes) \"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_32 -value "64" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_34 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_34 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_34 -value "64" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 19 4 "Enable RMAP protocol " CONFIG_SPW_RMAP - global tmpvar_33 - minimenu $w.config.f 19 5 "RMAP buffer size (bytes) " tmpvar_33 CONFIG_SPW_RMAPBUF2 + global tmpvar_35 + minimenu $w.config.f 19 5 "RMAP buffer size (bytes) " tmpvar_35 CONFIG_SPW_RMAPBUF2 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"RMAP buffer size (bytes) \"" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_33 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_33 -value "128" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_33 -value "192" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_33 -value "256" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_35 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_35 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_35 -value "192" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_35 -value "256" -command "update_active" menusplit $w $w.config.f.x5.x.menu 4 bool $w.config.f 19 6 "Enable RMAP CRC check " CONFIG_SPW_RMAPCRC bool $w.config.f 19 7 "Enable Rx unaligned transfers " CONFIG_SPW_RXUNAL bool $w.config.f 19 8 "Spacewire FIFO protection " CONFIG_SPW_FT bool $w.config.f 19 9 "Use GRSPWC netlist " CONFIG_SPW_NETLIST int $w.config.f 19 10 "Number of ports (1 - 2)" CONFIG_SPW_PORTS - global tmpvar_34 - minimenu $w.config.f 19 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_34 CONFIG_SPW_GRSPW1 + global tmpvar_36 + minimenu $w.config.f 19 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_36 CONFIG_SPW_GRSPW1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Select GRSPW core (GRSPW1/GRSPW2) \"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_34 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_34 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_36 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_36 -value "2" -command "update_active" menusplit $w $w.config.f.x11.x.menu 2 int $w.config.f 19 12 "Number of DMA channels (1 - 4)" CONFIG_SPW_DMACHAN bool $w.config.f 19 13 "Receiver and transmitter uses same clock " CONFIG_SPW_RTSAME - global tmpvar_35 - minimenu $w.config.f 19 14 "Select receiver clock type " tmpvar_35 CONFIG_SPW_RX_SDR + global tmpvar_37 + minimenu $w.config.f 19 14 "Select receiver clock type " tmpvar_37 CONFIG_SPW_RX_SDR menu $w.config.f.x14.x.menu -tearoffcommand "menutitle \"Select receiver clock type \"" - $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_35 -value "SDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_35 -value "DDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_35 -value "Xor" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_35 -value "Aeroflex" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_37 -value "SDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_37 -value "DDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_37 -value "Xor" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_37 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x14.x.menu 4 - global tmpvar_36 - minimenu $w.config.f 19 15 "Select transmitter clock type " tmpvar_36 CONFIG_SPW_TX_SDR + global tmpvar_38 + minimenu $w.config.f 19 15 "Select transmitter clock type " tmpvar_38 CONFIG_SPW_TX_SDR menu $w.config.f.x15.x.menu -tearoffcommand "menutitle \"Select transmitter clock type \"" - $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_36 -value "SDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_36 -value "DDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_36 -value "Aeroflex" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_38 -value "SDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_38 -value "DDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_38 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x15.x.menu 3 @@ -3978,34 +4293,34 @@ proc update_define_menu19 {} { global CONFIG_SPW_ENABLE global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_NUM "$CONFIG_SPW_NUM" 1} - global tmpvar_31 + global tmpvar_33 global CONFIG_SPW_AHBFIFO4 - if {$tmpvar_31 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} + if {$tmpvar_33 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} global CONFIG_SPW_AHBFIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} + if {$tmpvar_33 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} global CONFIG_SPW_AHBFIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} + if {$tmpvar_33 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} global CONFIG_SPW_AHBFIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} - global tmpvar_32 + if {$tmpvar_33 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} + global tmpvar_34 global CONFIG_SPW_RXFIFO16 - if {$tmpvar_32 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} + if {$tmpvar_34 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} global CONFIG_SPW_RXFIFO32 - if {$tmpvar_32 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} + if {$tmpvar_34 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} global CONFIG_SPW_RXFIFO64 - if {$tmpvar_32 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} + if {$tmpvar_34 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP&15]} else {set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP|16]} - global tmpvar_33 + global tmpvar_35 global CONFIG_SPW_RMAPBUF2 - if {$tmpvar_33 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} + if {$tmpvar_35 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} global CONFIG_SPW_RMAPBUF4 - if {$tmpvar_33 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} + if {$tmpvar_35 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} global CONFIG_SPW_RMAPBUF6 - if {$tmpvar_33 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} + if {$tmpvar_35 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} global CONFIG_SPW_RMAPBUF8 - if {$tmpvar_33 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} + if {$tmpvar_35 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC&15]} else {set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC|16]} @@ -4020,32 +4335,32 @@ proc update_define_menu19 {} { set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST&15]} else {set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST|16]} global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_PORTS "$CONFIG_SPW_PORTS" 1} - global tmpvar_34 + global tmpvar_36 global CONFIG_SPW_GRSPW1 - if {$tmpvar_34 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} + if {$tmpvar_36 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} global CONFIG_SPW_GRSPW2 - if {$tmpvar_34 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} + if {$tmpvar_36 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} global CONFIG_SPW_DMACHAN if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {validate_int CONFIG_SPW_DMACHAN "$CONFIG_SPW_DMACHAN" 1} global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME&15]} else {set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME|16]} - global tmpvar_35 + global tmpvar_37 global CONFIG_SPW_RX_SDR - if {$tmpvar_35 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} + if {$tmpvar_37 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} global CONFIG_SPW_RX_DDR - if {$tmpvar_35 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} + if {$tmpvar_37 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} global CONFIG_SPW_RX_XOR - if {$tmpvar_35 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} + if {$tmpvar_37 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} global CONFIG_SPW_RX_AFLEX - if {$tmpvar_35 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} - global tmpvar_36 + if {$tmpvar_37 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} + global tmpvar_38 global CONFIG_SPW_TX_SDR - if {$tmpvar_36 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} + if {$tmpvar_38 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} global CONFIG_SPW_TX_DDR - if {$tmpvar_36 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} + if {$tmpvar_38 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} global CONFIG_SPW_TX_AFLEX - if {$tmpvar_36 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} + if {$tmpvar_38 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} } @@ -4101,26 +4416,26 @@ proc menu20 {w title} { bool $w.config.f 20 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_37 - minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_37 CONFIG_UA1_FIFO1 + global tmpvar_39 + minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_39 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_37 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_37 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_37 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_37 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_37 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_37 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_39 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_39 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_39 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_39 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_39 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_39 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 20 2 "Enable secondary UART " CONFIG_UART2_ENABLE - global tmpvar_38 - minimenu $w.config.f 20 3 "UART2 FIFO depth" tmpvar_38 CONFIG_UA2_FIFO1 + global tmpvar_40 + minimenu $w.config.f 20 3 "UART2 FIFO depth" tmpvar_40 CONFIG_UA2_FIFO1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"UART2 FIFO depth\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_38 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_38 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_38 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_38 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_38 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_38 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_40 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_40 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_40 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_40 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_40 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_40 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 6 bool $w.config.f 20 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 20 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4211,32 +4526,32 @@ proc update_menu20 {} { proc update_define_menu20 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_37 + global tmpvar_39 global CONFIG_UA1_FIFO1 - if {$tmpvar_37 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_39 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_37 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_39 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_37 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_39 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_37 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_39 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_37 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_39 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_37 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} - global tmpvar_38 + if {$tmpvar_39 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + global tmpvar_40 global CONFIG_UA2_FIFO1 - if {$tmpvar_38 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} + if {$tmpvar_40 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} global CONFIG_UA2_FIFO2 - if {$tmpvar_38 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} + if {$tmpvar_40 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} global CONFIG_UA2_FIFO4 - if {$tmpvar_38 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} + if {$tmpvar_40 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} global CONFIG_UA2_FIFO8 - if {$tmpvar_38 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} + if {$tmpvar_40 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} global CONFIG_UA2_FIFO16 - if {$tmpvar_38 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} + if {$tmpvar_40 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} global CONFIG_UA2_FIFO32 - if {$tmpvar_38 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} + if {$tmpvar_40 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4406,7 +4721,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4416,6 +4732,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4440,6 +4758,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4452,14 +4771,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4472,27 +4796,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4502,17 +4826,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4524,12 +4848,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4539,10 +4863,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4553,7 +4877,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4565,26 +4889,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4592,27 +4918,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4633,7 +4963,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4659,7 +4989,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4670,7 +5000,7 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 @@ -4681,7 +5011,7 @@ set CONFIG_PCI_MASTER_TARGET 0 set CONFIG_PCI_MASTER_TARGET_DMA 0 set CONFIG_PCI_VENDORID 1AC8 set CONFIG_PCI_DEVICEID 0054 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_PCI_FIFO0 0 set CONFIG_PCI_FIFO8 0 set CONFIG_PCI_FIFO16 0 @@ -4693,7 +5023,7 @@ set CONFIG_PCI_ARBITER 0 set CONFIG_PCI_ARBITER_APB 0 set CONFIG_PCI_ARBITER_NREQ 4 set CONFIG_PCI_TRACE 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_PCI_TRACE256 0 set CONFIG_PCI_TRACE512 0 set CONFIG_PCI_TRACE1024 0 @@ -4701,17 +5031,17 @@ set CONFIG_PCI_TRACE2048 0 set CONFIG_PCI_TRACE4096 0 set CONFIG_SPW_ENABLE 0 set CONFIG_SPW_NUM 1 -set tmpvar_31 "(not set)" +set tmpvar_33 "(not set)" set CONFIG_SPW_AHBFIFO4 0 set CONFIG_SPW_AHBFIFO8 0 set CONFIG_SPW_AHBFIFO16 0 set CONFIG_SPW_AHBFIFO32 0 -set tmpvar_32 "(not set)" +set tmpvar_34 "(not set)" set CONFIG_SPW_RXFIFO16 0 set CONFIG_SPW_RXFIFO32 0 set CONFIG_SPW_RXFIFO64 0 set CONFIG_SPW_RMAP 0 -set tmpvar_33 "(not set)" +set tmpvar_35 "(not set)" set CONFIG_SPW_RMAPBUF2 0 set CONFIG_SPW_RMAPBUF4 0 set CONFIG_SPW_RMAPBUF6 0 @@ -4721,22 +5051,22 @@ set CONFIG_SPW_RXUNAL 0 set CONFIG_SPW_FT 0 set CONFIG_SPW_NETLIST 0 set CONFIG_SPW_PORTS 1 -set tmpvar_34 "(not set)" +set tmpvar_36 "(not set)" set CONFIG_SPW_GRSPW1 0 set CONFIG_SPW_GRSPW2 0 set CONFIG_SPW_DMACHAN 1 set CONFIG_SPW_RTSAME 0 -set tmpvar_35 "(not set)" +set tmpvar_37 "(not set)" set CONFIG_SPW_RX_SDR 0 set CONFIG_SPW_RX_DDR 0 set CONFIG_SPW_RX_XOR 0 set CONFIG_SPW_RX_AFLEX 0 -set tmpvar_36 "(not set)" +set tmpvar_38 "(not set)" set CONFIG_SPW_TX_SDR 0 set CONFIG_SPW_TX_DDR 0 set CONFIG_SPW_TX_AFLEX 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_37 "(not set)" +set tmpvar_39 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4744,7 +5074,7 @@ set CONFIG_UA1_FIFO8 0 set CONFIG_UA1_FIFO16 0 set CONFIG_UA1_FIFO32 0 set CONFIG_UART2_ENABLE 0 -set tmpvar_38 "(not set)" +set tmpvar_40 "(not set)" set CONFIG_UA2_FIFO1 0 set CONFIG_UA2_FIFO2 0 set CONFIG_UA2_FIFO4 0 @@ -4822,7 +5152,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4832,6 +5163,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4870,6 +5203,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4882,9 +5216,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4898,239 +5233,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5175,13 +5660,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5227,27 +5712,27 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "PCI " global CONFIG_PCI_SIMPLE_TARGET global CONFIG_PCI_ACTEL @@ -5260,14 +5745,14 @@ proc writeconfig {file1 file2} { 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 } global CONFIG_PCI_DEVICEID 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 } - global tmpvar_29 + global tmpvar_31 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 { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_PCI_HADDR 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 } global CONFIG_PCI_ARBITER @@ -5278,37 +5763,37 @@ proc writeconfig {file1 file2} { if {($CONFIG_PCI_ARBITER == 1)} then {write_int $cfg $autocfg CONFIG_PCI_ARBITER_NREQ $CONFIG_PCI_ARBITER_NREQ $notmod } global CONFIG_PCI_TRACE write_tristate $cfg $autocfg CONFIG_PCI_TRACE $CONFIG_PCI_TRACE [list $notmod] 2 - global tmpvar_30 + global tmpvar_32 if {($CONFIG_PCI_TRACE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} write_comment $cfg $autocfg "Spacewire " global CONFIG_SPW_ENABLE write_tristate $cfg $autocfg CONFIG_SPW_ENABLE $CONFIG_SPW_ENABLE [list $notmod] 2 global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_NUM $CONFIG_SPW_NUM $notmod } - global tmpvar_31 + global tmpvar_33 if {($CONFIG_SPW_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 }} - global tmpvar_32 + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 }} + global tmpvar_34 if {($CONFIG_SPW_ENABLE == 1)} then { - 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 } - 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 } - 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 }} + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 }} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAP $CONFIG_SPW_RMAP [list $notmod] 2 } - global tmpvar_33 + global tmpvar_35 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then { - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 }} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAPCRC $CONFIG_SPW_RMAPCRC [list $notmod] 2 } global CONFIG_SPW_RXUNAL @@ -5319,47 +5804,47 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_NETLIST $CONFIG_SPW_NETLIST [list $notmod] 2 } global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_PORTS $CONFIG_SPW_PORTS $notmod } - global tmpvar_34 + global tmpvar_36 if {($CONFIG_SPW_ENABLE == 1)} then { - 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 } - 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 }} + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 }} global CONFIG_SPW_DMACHAN global CONFIG_SPW_GRSPW2 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_int $cfg $autocfg CONFIG_SPW_DMACHAN $CONFIG_SPW_DMACHAN $notmod } global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RTSAME $CONFIG_SPW_RTSAME [list $notmod] 2 } - global tmpvar_35 + global tmpvar_37 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_35 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } - if { $tmpvar_35 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } - if { $tmpvar_35 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } - if { $tmpvar_35 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} - global tmpvar_36 + if { $tmpvar_37 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } + if { $tmpvar_37 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } + if { $tmpvar_37 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } + if { $tmpvar_37 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} + global tmpvar_38 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_36 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } - if { $tmpvar_36 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } - if { $tmpvar_36 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} + if { $tmpvar_38 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } + if { $tmpvar_38 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } + if { $tmpvar_38 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_37 + global tmpvar_39 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 }} + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 }} global CONFIG_UART2_ENABLE write_tristate $cfg $autocfg CONFIG_UART2_ENABLE $CONFIG_UART2_ENABLE [list $notmod] 2 - global tmpvar_38 + global tmpvar_40 if {($CONFIG_UART2_ENABLE == 1)} then { - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 }} + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5432,7 +5917,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5442,6 +5928,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5460,8 +5948,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5544,11 +6037,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5569,6 +6064,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5705,8 +6204,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5725,6 +6226,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5765,416 +6270,442 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "8" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "8" global CONFIG_PCI_FIFO0 - if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_29 "None" } + if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_31 "None" } global CONFIG_PCI_FIFO8 - if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_PCI_FIFO16 - if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_PCI_FIFO32 - if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_31 "32" } global CONFIG_PCI_FIFO64 - if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_29 "64" } + if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_31 "64" } global CONFIG_PCI_FIFO128 - if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_29 "128" } - global tmpvar_30 - set tmpvar_30 "256" + if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_31 "128" } + global tmpvar_32 + set tmpvar_32 "256" global CONFIG_PCI_TRACE256 - if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_30 "256" } + if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_32 "256" } global CONFIG_PCI_TRACE512 - if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_30 "512" } + if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_32 "512" } global CONFIG_PCI_TRACE1024 - if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_30 "1024" } + if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_32 "1024" } global CONFIG_PCI_TRACE2048 - if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_30 "2048" } + if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_32 "2048" } global CONFIG_PCI_TRACE4096 - if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_30 "4096" } - global tmpvar_31 - set tmpvar_31 "16" + if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_32 "4096" } + global tmpvar_33 + set tmpvar_33 "16" global CONFIG_SPW_AHBFIFO4 - if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_31 "4" } + if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_33 "4" } global CONFIG_SPW_AHBFIFO8 - if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_31 "8" } + if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_33 "8" } global CONFIG_SPW_AHBFIFO16 - if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_31 "16" } + if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_33 "16" } global CONFIG_SPW_AHBFIFO32 - if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_31 "32" } - global tmpvar_32 - set tmpvar_32 "16" + if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_33 "32" } + global tmpvar_34 + set tmpvar_34 "16" global CONFIG_SPW_RXFIFO16 - if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_32 "16" } + if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_34 "16" } global CONFIG_SPW_RXFIFO32 - if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_32 "32" } + if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_34 "32" } global CONFIG_SPW_RXFIFO64 - if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_32 "64" } - global tmpvar_33 - set tmpvar_33 "64" + if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_34 "64" } + global tmpvar_35 + set tmpvar_35 "64" global CONFIG_SPW_RMAPBUF2 - if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_33 "64" } + if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_35 "64" } global CONFIG_SPW_RMAPBUF4 - if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_33 "128" } + if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_35 "128" } global CONFIG_SPW_RMAPBUF6 - if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_33 "192" } + if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_35 "192" } global CONFIG_SPW_RMAPBUF8 - if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_33 "256" } - global tmpvar_34 - set tmpvar_34 "2" + if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_35 "256" } + global tmpvar_36 + set tmpvar_36 "2" global CONFIG_SPW_GRSPW1 - if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_34 "1" } + if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_36 "1" } global CONFIG_SPW_GRSPW2 - if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_34 "2" } - global tmpvar_35 - set tmpvar_35 "DDR" + if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_36 "2" } + global tmpvar_37 + set tmpvar_37 "DDR" global CONFIG_SPW_RX_SDR - if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_35 "SDR" } + if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_37 "SDR" } global CONFIG_SPW_RX_DDR - if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_35 "DDR" } + if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_37 "DDR" } global CONFIG_SPW_RX_XOR - if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_35 "Xor" } + if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_37 "Xor" } global CONFIG_SPW_RX_AFLEX - if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_35 "Aeroflex" } - global tmpvar_36 - set tmpvar_36 "SDR" + if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_37 "Aeroflex" } + global tmpvar_38 + set tmpvar_38 "SDR" global CONFIG_SPW_TX_SDR - if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_36 "SDR" } + if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_38 "SDR" } global CONFIG_SPW_TX_DDR - if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_36 "DDR" } + if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_38 "DDR" } global CONFIG_SPW_TX_AFLEX - if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_36 "Aeroflex" } - global tmpvar_37 - set tmpvar_37 "1" + if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_38 "Aeroflex" } + global tmpvar_39 + set tmpvar_39 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_37 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_39 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_37 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_39 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_37 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_39 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_37 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_39 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_37 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_39 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_37 "32" } - global tmpvar_38 - set tmpvar_38 "1" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_39 "32" } + global tmpvar_40 + set tmpvar_40 "1" global CONFIG_UA2_FIFO1 - if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_38 "1" } + if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_40 "1" } global CONFIG_UA2_FIFO2 - if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_38 "2" } + if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_40 "2" } global CONFIG_UA2_FIFO4 - if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_38 "4" } + if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_40 "4" } global CONFIG_UA2_FIFO8 - if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_38 "8" } + if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_40 "8" } global CONFIG_UA2_FIFO16 - if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_38 "16" } + if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_40 "16" } global CONFIG_UA2_FIFO32 - if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_38 "32" } + if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_40 "32" } } diff --git a/designs/leon3-gr-pci-xc2v3000/leon3mp.vhd b/designs/leon3-gr-pci-xc2v3000/leon3mp.vhd index 6f98b3fe..c122455e 100644 --- a/designs/leon3-gr-pci-xc2v3000/leon3mp.vhd +++ b/designs/leon3-gr-pci-xc2v3000/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-gr-pci-xc2v3000/testbench.vhd b/designs/leon3-gr-pci-xc2v3000/testbench.vhd index c42448bd..9013d651 100644 --- a/designs/leon3-gr-pci-xc2v3000/testbench.vhd +++ b/designs/leon3-gr-pci-xc2v3000/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-gr-pci-xc2v3000/tkconfig.h b/designs/leon3-gr-pci-xc2v3000/tkconfig.h index 62664e68..df0849ae 100644 --- a/designs/leon3-gr-pci-xc2v3000/tkconfig.h +++ b/designs/leon3-gr-pci-xc2v3000/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-gr-pci-xc5v/Makefile b/designs/leon3-gr-pci-xc5v/Makefile index 0a721775..8a86c228 100644 --- a/designs/leon3-gr-pci-xc5v/Makefile +++ b/designs/leon3-gr-pci-xc5v/Makefile @@ -22,11 +22,11 @@ SYNPOPT="set_option -pipe 1; set_option -retiming 1; set_option -write_apr_const TECHLIBS = unisim secureip LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress ihp gleichmann fmf spansion gsi -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr ata haps \ - slink ascs coremp7 ac97 leon4 leon4b64 l2cache iommu + tmtc openchip hynix cypress ihp fmf spansion gsi +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr \ + slink ascs leon4 leon4v0 l2cache iommu -FILESKIP = grcan.vhd simple_spi_top.v ata_device.v i2c_slave_model.v +FILESKIP = grcan.vhd i2c_slave_model.v include $(GRLIB)/bin/Makefile include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-gr-pci-xc5v/config.help b/designs/leon3-gr-pci-xc5v/config.help index ec7272fe..647669a9 100644 --- a/designs/leon3-gr-pci-xc5v/config.help +++ b/designs/leon3-gr-pci-xc5v/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. diff --git a/designs/leon3-gr-pci-xc5v/lconfig.tk b/designs/leon3-gr-pci-xc5v/lconfig.tk index a017eec3..a570b57d 100755 --- a/designs/leon3-gr-pci-xc5v/lconfig.tk +++ b/designs/leon3-gr-pci-xc5v/lconfig.tk @@ -756,7 +756,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -766,7 +767,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -916,8 +919,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -936,6 +941,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1032,9 +1041,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_3 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_3 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_3 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_3 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_3 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_3 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1088,10 +1098,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1137,14 +1148,16 @@ proc update_define_menu2 {} { if {$tmpvar_3 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_3 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_3 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_3 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_3 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1217,13 +1230,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_4 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_4 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_4 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_4 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_4 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_4 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1263,22 +1284,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_4 + global CONFIG_LEON3_MIN + if {$tmpvar_4 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_4 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_4 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_4 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1335,21 +1624,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_4 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_5 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_5 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_5 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_5 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_5 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_5 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED + global tmpvar_6 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_6 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_6 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_6 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1396,36 +1685,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1433,48 +1723,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_5 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_5 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_5 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_6 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_6 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_6 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_6 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1530,28 +1821,28 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_6 - minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU + global tmpvar_7 + minimenu $w.config.f 5 1 "FPU core" tmpvar_7 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_7 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_7 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_7 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_7 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_8 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_8 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_8 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_8 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_8 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_8 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH - global tmpvar_8 - minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 + global tmpvar_9 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_9 CONFIG_FPU_GRFPC0 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_9 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_9 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_9 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x4.x.menu 3 bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1592,20 +1883,21 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1614,38 +1906,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_6 + global tmpvar_7 global CONFIG_FPU_GRFPU - if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_7 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_7 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_7 + if {$tmpvar_7 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_8 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_8 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_8 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_8 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + if {$tmpvar_8 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_FPU_GRFPC0 - if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_9 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_9 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_9 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1702,92 +1995,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_9 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 + global tmpvar_10 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_10 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_10 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_10 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 + global tmpvar_11 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_11 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_11 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_11 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_11 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_11 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_11 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_11 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_11 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_11 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 + global tmpvar_12 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_12 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_12 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND + global tmpvar_13 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_13 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_13 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_13 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_13 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_13 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_13 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_14 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_14 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_14 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 + global tmpvar_15 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_15 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_15 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_15 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 + global tmpvar_16 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_16 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_16 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_16 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_16 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_16 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_16 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_16 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_16 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_16 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 + global tmpvar_17 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_17 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_17 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND + global tmpvar_18 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_18 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_18 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_18 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_18 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_18 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1795,18 +2088,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_18 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_19 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_19 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_19 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_19 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_19 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_19 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_19 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_19 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_19 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_19 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_19 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1847,52 +2140,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1900,162 +2194,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_9 + global tmpvar_10 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_10 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_10 + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_11 global CONFIG_ICACHE_SZ1 - if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_11 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_11 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_11 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_11 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_11 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_11 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_11 + if {$tmpvar_11 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_12 global CONFIG_ICACHE_LZ16 - if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_12 + if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_13 global CONFIG_ICACHE_ALGORND - if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_13 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_13 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_13 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_13 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_14 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_14 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_14 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_14 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_14 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_14 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_14 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_14 + global tmpvar_15 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_15 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_15 + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_16 global CONFIG_DCACHE_SZ1 - if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_16 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_16 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_16 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_16 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_16 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_16 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_16 + if {$tmpvar_16 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_17 global CONFIG_DCACHE_LZ16 - if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_17 + if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_18 global CONFIG_DCACHE_ALGORND - if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_18 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_18 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_18 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_18 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_19 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_19 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_19 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_19 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_19 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_19 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_19 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_19 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_19 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2111,45 +2406,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_19 - minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED + global tmpvar_20 + minimenu $w.config.f 7 1 "MMU type " tmpvar_20 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_20 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_20 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY + global tmpvar_21 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_21 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_21 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_21 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_21 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_22 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_22 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_23 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_23 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_23 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_23 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_23 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K + global tmpvar_24 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_24 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_24 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_24 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_24 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_24 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_24 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2189,18 +2486,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2208,55 +2506,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_19 + global tmpvar_20 global CONFIG_MMU_COMBINED - if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_20 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_20 + if {$tmpvar_20 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_21 global CONFIG_MMU_REPARRAY - if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_21 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_21 + if {$tmpvar_21 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_22 global CONFIG_MMU_I2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_22 + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_23 global CONFIG_MMU_D2 - if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_23 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_23 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_23 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_23 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_23 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_23 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_MMU_PAGE_4K - if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_24 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_24 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_24 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_24 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_24 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2313,24 +2616,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_24 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_25 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 + global tmpvar_26 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2370,17 +2673,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2388,37 +2692,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2474,22 +2779,22 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_26 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE + global tmpvar_27 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_27 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_27 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - global tmpvar_27 - minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + global tmpvar_28 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_28 CONFIG_FPUFT_NONE menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" - $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_28 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_28 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_28 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_28 -value "TMR" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN @@ -2560,26 +2865,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_26 + global tmpvar_27 global CONFIG_IUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_27 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global tmpvar_27 + if {$tmpvar_27 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_28 global CONFIG_FPUFT_NONE - if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + if {$tmpvar_28 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} global CONFIG_FPUFT_PAR - if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + if {$tmpvar_28 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} global CONFIG_FPUFT_DMR - if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + if {$tmpvar_28 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} global CONFIG_FPUFT_TMR - if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} + if {$tmpvar_28 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2888,22 +3193,22 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "USB Debug Communication Link" CONFIG_GRUSB_DCL - global tmpvar_28 - minimenu $w.config.f 12 3 "USB Transceiver Interface" tmpvar_28 CONFIG_GRUSB_DCL_ULPI + global tmpvar_29 + minimenu $w.config.f 12 3 "USB Transceiver Interface" tmpvar_29 CONFIG_GRUSB_DCL_ULPI menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"USB Transceiver Interface\"" - $w.config.f.x3.x.menu add radiobutton -label "ULPI" -variable tmpvar_28 -value "ULPI" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "UTMI/UTMI+8-bit" -variable tmpvar_28 -value "UTMI/UTMI+8-bit" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "UTMI/UTMI+16-bit" -variable tmpvar_28 -value "UTMI/UTMI+16-bit" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "ULPI" -variable tmpvar_29 -value "ULPI" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "UTMI/UTMI+8-bit" -variable tmpvar_29 -value "UTMI/UTMI+8-bit" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "UTMI/UTMI+16-bit" -variable tmpvar_29 -value "UTMI/UTMI+16-bit" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 12 4 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_29 - minimenu $w.config.f 12 5 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_29 CONFIG_DSU_ETHSZ1 + global tmpvar_30 + minimenu $w.config.f 12 5 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_30 CONFIG_DSU_ETHSZ1 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x5.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" menusplit $w $w.config.f.x5.x.menu 5 hex $w.config.f 12 6 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 7 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2975,28 +3280,28 @@ proc update_menu12 {} { proc update_define_menu12 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_28 + global tmpvar_29 global CONFIG_GRUSB_DCL_ULPI - if {$tmpvar_28 == "ULPI"} then {set CONFIG_GRUSB_DCL_ULPI 1} else {set CONFIG_GRUSB_DCL_ULPI 0} + if {$tmpvar_29 == "ULPI"} then {set CONFIG_GRUSB_DCL_ULPI 1} else {set CONFIG_GRUSB_DCL_ULPI 0} global CONFIG_GRUSB_DCL_UTMI8 - if {$tmpvar_28 == "UTMI/UTMI+8-bit"} then {set CONFIG_GRUSB_DCL_UTMI8 1} else {set CONFIG_GRUSB_DCL_UTMI8 0} + if {$tmpvar_29 == "UTMI/UTMI+8-bit"} then {set CONFIG_GRUSB_DCL_UTMI8 1} else {set CONFIG_GRUSB_DCL_UTMI8 0} global CONFIG_GRUSB_DCL_UTMI16 - if {$tmpvar_28 == "UTMI/UTMI+16-bit"} then {set CONFIG_GRUSB_DCL_UTMI16 1} else {set CONFIG_GRUSB_DCL_UTMI16 0} + if {$tmpvar_29 == "UTMI/UTMI+16-bit"} then {set CONFIG_GRUSB_DCL_UTMI16 1} else {set CONFIG_GRUSB_DCL_UTMI16 0} global CONFIG_GRETH_ENABLE global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_29 + global tmpvar_30 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_29 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_30 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_29 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_30 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_29 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_29 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_29 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3439,16 +3744,16 @@ proc menu16 {w title} { bool $w.config.f 16 0 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_30 - minimenu $w.config.f 16 1 "AHB RAM size (Kbyte)" tmpvar_30 CONFIG_AHBRAM_SZ1 + global tmpvar_31 + minimenu $w.config.f 16 1 "AHB RAM size (Kbyte)" tmpvar_31 CONFIG_AHBRAM_SZ1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" menusplit $w $w.config.f.x1.x.menu 7 hex $w.config.f 16 2 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3498,21 +3803,21 @@ proc update_menu16 {} { proc update_define_menu16 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_30 + global tmpvar_31 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_30 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_30 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_30 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_30 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_30 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_30 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_30 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_31 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3572,14 +3877,14 @@ proc menu17 {w title} { bool $w.config.f 17 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 17 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_31 - minimenu $w.config.f 17 2 "AHB FIFO size (words) " tmpvar_31 CONFIG_GRETH_FIFO4 + global tmpvar_32 + minimenu $w.config.f 17 2 "AHB FIFO size (words) " tmpvar_32 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_32 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3633,17 +3938,17 @@ proc update_define_menu17 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_31 + global tmpvar_32 global CONFIG_GRETH_FIFO4 - if {$tmpvar_31 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_32 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_32 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_32 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_32 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_31 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_32 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3836,57 +4141,57 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable Spacewire links " CONFIG_SPW_ENABLE int $w.config.f 19 1 "Number of links (1 - 3)" CONFIG_SPW_NUM - global tmpvar_32 - minimenu $w.config.f 19 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_32 CONFIG_SPW_AHBFIFO4 + global tmpvar_33 + minimenu $w.config.f 19 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_33 CONFIG_SPW_AHBFIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB RX/TX FIFO size (32-bit words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_33 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_33 - minimenu $w.config.f 19 3 "Receiver FIFO size (bytes) " tmpvar_33 CONFIG_SPW_RXFIFO16 + global tmpvar_34 + minimenu $w.config.f 19 3 "Receiver FIFO size (bytes) " tmpvar_34 CONFIG_SPW_RXFIFO16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Receiver FIFO size (bytes) \"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_33 -value "64" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_34 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_34 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_34 -value "64" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 19 4 "Enable RMAP protocol " CONFIG_SPW_RMAP - global tmpvar_34 - minimenu $w.config.f 19 5 "RMAP buffer size (bytes) " tmpvar_34 CONFIG_SPW_RMAPBUF2 + global tmpvar_35 + minimenu $w.config.f 19 5 "RMAP buffer size (bytes) " tmpvar_35 CONFIG_SPW_RMAPBUF2 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"RMAP buffer size (bytes) \"" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_34 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_34 -value "128" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_34 -value "192" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_34 -value "256" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_35 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_35 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_35 -value "192" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_35 -value "256" -command "update_active" menusplit $w $w.config.f.x5.x.menu 4 bool $w.config.f 19 6 "Enable RMAP CRC check " CONFIG_SPW_RMAPCRC bool $w.config.f 19 7 "Enable Rx unaligned transfers " CONFIG_SPW_RXUNAL bool $w.config.f 19 8 "Spacewire FIFO protection " CONFIG_SPW_FT bool $w.config.f 19 9 "Use GRSPWC netlist " CONFIG_SPW_NETLIST int $w.config.f 19 10 "Number of ports (1 - 2)" CONFIG_SPW_PORTS - global tmpvar_35 - minimenu $w.config.f 19 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_35 CONFIG_SPW_GRSPW1 + global tmpvar_36 + minimenu $w.config.f 19 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_36 CONFIG_SPW_GRSPW1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Select GRSPW core (GRSPW1/GRSPW2) \"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_35 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_35 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_36 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_36 -value "2" -command "update_active" menusplit $w $w.config.f.x11.x.menu 2 int $w.config.f 19 12 "Number of DMA channels (1 - 4)" CONFIG_SPW_DMACHAN bool $w.config.f 19 13 "Receiver and transmitter uses same clock " CONFIG_SPW_RTSAME - global tmpvar_36 - minimenu $w.config.f 19 14 "Select receiver clock type " tmpvar_36 CONFIG_SPW_RX_SDR + global tmpvar_37 + minimenu $w.config.f 19 14 "Select receiver clock type " tmpvar_37 CONFIG_SPW_RX_SDR menu $w.config.f.x14.x.menu -tearoffcommand "menutitle \"Select receiver clock type \"" - $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_36 -value "SDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_36 -value "DDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_36 -value "Xor" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_36 -value "Aeroflex" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_37 -value "SDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_37 -value "DDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_37 -value "Xor" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_37 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x14.x.menu 4 - global tmpvar_37 - minimenu $w.config.f 19 15 "Select transmitter clock type " tmpvar_37 CONFIG_SPW_TX_SDR + global tmpvar_38 + minimenu $w.config.f 19 15 "Select transmitter clock type " tmpvar_38 CONFIG_SPW_TX_SDR menu $w.config.f.x15.x.menu -tearoffcommand "menutitle \"Select transmitter clock type \"" - $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_37 -value "SDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_37 -value "DDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_37 -value "Aeroflex" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_38 -value "SDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_38 -value "DDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_38 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x15.x.menu 3 @@ -3966,34 +4271,34 @@ proc update_define_menu19 {} { global CONFIG_SPW_ENABLE global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_NUM "$CONFIG_SPW_NUM" 1} - global tmpvar_32 + global tmpvar_33 global CONFIG_SPW_AHBFIFO4 - if {$tmpvar_32 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} + if {$tmpvar_33 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} global CONFIG_SPW_AHBFIFO8 - if {$tmpvar_32 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} + if {$tmpvar_33 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} global CONFIG_SPW_AHBFIFO16 - if {$tmpvar_32 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} + if {$tmpvar_33 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} global CONFIG_SPW_AHBFIFO32 - if {$tmpvar_32 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} - global tmpvar_33 + if {$tmpvar_33 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} + global tmpvar_34 global CONFIG_SPW_RXFIFO16 - if {$tmpvar_33 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} + if {$tmpvar_34 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} global CONFIG_SPW_RXFIFO32 - if {$tmpvar_33 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} + if {$tmpvar_34 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} global CONFIG_SPW_RXFIFO64 - if {$tmpvar_33 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} + if {$tmpvar_34 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP&15]} else {set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP|16]} - global tmpvar_34 + global tmpvar_35 global CONFIG_SPW_RMAPBUF2 - if {$tmpvar_34 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} + if {$tmpvar_35 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} global CONFIG_SPW_RMAPBUF4 - if {$tmpvar_34 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} + if {$tmpvar_35 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} global CONFIG_SPW_RMAPBUF6 - if {$tmpvar_34 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} + if {$tmpvar_35 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} global CONFIG_SPW_RMAPBUF8 - if {$tmpvar_34 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} + if {$tmpvar_35 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC&15]} else {set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC|16]} @@ -4008,32 +4313,32 @@ proc update_define_menu19 {} { set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST&15]} else {set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST|16]} global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_PORTS "$CONFIG_SPW_PORTS" 1} - global tmpvar_35 + global tmpvar_36 global CONFIG_SPW_GRSPW1 - if {$tmpvar_35 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} + if {$tmpvar_36 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} global CONFIG_SPW_GRSPW2 - if {$tmpvar_35 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} + if {$tmpvar_36 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} global CONFIG_SPW_DMACHAN if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {validate_int CONFIG_SPW_DMACHAN "$CONFIG_SPW_DMACHAN" 1} global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME&15]} else {set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME|16]} - global tmpvar_36 + global tmpvar_37 global CONFIG_SPW_RX_SDR - if {$tmpvar_36 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} + if {$tmpvar_37 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} global CONFIG_SPW_RX_DDR - if {$tmpvar_36 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} + if {$tmpvar_37 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} global CONFIG_SPW_RX_XOR - if {$tmpvar_36 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} + if {$tmpvar_37 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} global CONFIG_SPW_RX_AFLEX - if {$tmpvar_36 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} - global tmpvar_37 + if {$tmpvar_37 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} + global tmpvar_38 global CONFIG_SPW_TX_SDR - if {$tmpvar_37 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} + if {$tmpvar_38 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} global CONFIG_SPW_TX_DDR - if {$tmpvar_37 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} + if {$tmpvar_38 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} global CONFIG_SPW_TX_AFLEX - if {$tmpvar_37 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} + if {$tmpvar_38 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} } @@ -4093,29 +4398,29 @@ proc menu20 {w title} { bool $w.config.f 20 2 "PCI DMA controller " CONFIG_PCI_MASTER_TARGET_DMA hex $w.config.f 20 3 "PCI vendor ID" CONFIG_PCI_VENDORID hex $w.config.f 20 4 "PCI device ID" CONFIG_PCI_DEVICEID - global tmpvar_38 - minimenu $w.config.f 20 5 "PCI FIFO depth" tmpvar_38 CONFIG_PCI_FIFO0 + global tmpvar_39 + minimenu $w.config.f 20 5 "PCI FIFO depth" tmpvar_39 CONFIG_PCI_FIFO0 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"PCI FIFO depth\"" - $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_38 -value "None" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_38 -value "8" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_38 -value "16" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_38 -value "32" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_38 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_38 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_39 -value "None" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_39 -value "8" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_39 -value "16" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_39 -value "32" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_39 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_39 -value "128" -command "update_active" menusplit $w $w.config.f.x5.x.menu 6 hex $w.config.f 20 6 "PCI initiator address (haddr\[31:20\]) " CONFIG_PCI_HADDR bool $w.config.f 20 7 "PCI arbiter " CONFIG_PCI_ARBITER bool $w.config.f 20 8 "PCI arbiter APB interface " CONFIG_PCI_ARBITER_APB int $w.config.f 20 9 "Number of PCI REQ/GNT pairs" CONFIG_PCI_ARBITER_NREQ bool $w.config.f 20 10 "Enable PCI trace buffer " CONFIG_PCI_TRACE - global tmpvar_39 - minimenu $w.config.f 20 11 "PCI trace buffer depth" tmpvar_39 CONFIG_PCI_TRACE256 + global tmpvar_40 + minimenu $w.config.f 20 11 "PCI trace buffer depth" tmpvar_40 CONFIG_PCI_TRACE256 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"PCI trace buffer depth\"" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_39 -value "256" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_39 -value "512" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_39 -value "1024" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_39 -value "2048" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_39 -value "4096" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_40 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_40 -value "512" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_40 -value "1024" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_40 -value "2048" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_40 -value "4096" -command "update_active" menusplit $w $w.config.f.x11.x.menu 5 @@ -4199,19 +4504,19 @@ proc update_define_menu20 {} { if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_VENDORID "$CONFIG_PCI_VENDORID" 1AC8} global CONFIG_PCI_DEVICEID if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_DEVICEID "$CONFIG_PCI_DEVICEID" 0054} - global tmpvar_38 + global tmpvar_39 global CONFIG_PCI_FIFO0 - if {$tmpvar_38 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} + if {$tmpvar_39 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} global CONFIG_PCI_FIFO8 - if {$tmpvar_38 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} + if {$tmpvar_39 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} global CONFIG_PCI_FIFO16 - if {$tmpvar_38 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} + if {$tmpvar_39 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} global CONFIG_PCI_FIFO32 - if {$tmpvar_38 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} + if {$tmpvar_39 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} global CONFIG_PCI_FIFO64 - if {$tmpvar_38 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} + if {$tmpvar_39 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} global CONFIG_PCI_FIFO128 - if {$tmpvar_38 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} + if {$tmpvar_39 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} global CONFIG_PCI_HADDR 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} global CONFIG_PCI_ARBITER @@ -4220,17 +4525,17 @@ proc update_define_menu20 {} { set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB&15]} else {set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB|16]} global CONFIG_PCI_ARBITER_NREQ if {($CONFIG_PCI_ARBITER == 1)} then {validate_int CONFIG_PCI_ARBITER_NREQ "$CONFIG_PCI_ARBITER_NREQ" 4} - global tmpvar_39 + global tmpvar_40 global CONFIG_PCI_TRACE256 - if {$tmpvar_39 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} + if {$tmpvar_40 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} global CONFIG_PCI_TRACE512 - if {$tmpvar_39 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} + if {$tmpvar_40 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} global CONFIG_PCI_TRACE1024 - if {$tmpvar_39 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} + if {$tmpvar_40 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} global CONFIG_PCI_TRACE2048 - if {$tmpvar_39 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} + if {$tmpvar_40 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} global CONFIG_PCI_TRACE4096 - if {$tmpvar_39 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} + if {$tmpvar_40 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} } @@ -4290,37 +4595,37 @@ proc menu21 {w title} { bool $w.config.f 21 2 "Enable Universal Host Controller " CONFIG_GRUSBHC_UHC int $w.config.f 21 3 "Number of Universal Host Controllers (1-15)" CONFIG_GRUSBHC_NCC int $w.config.f 21 4 "Total number of ports (1-15)" CONFIG_GRUSBHC_NPORTS - global tmpvar_40 - minimenu $w.config.f 21 5 "Transceiver interface" tmpvar_40 CONFIG_GRUSBHC_ULPI + global tmpvar_41 + minimenu $w.config.f 21 5 "Transceiver interface" tmpvar_41 CONFIG_GRUSBHC_ULPI menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"Transceiver interface\"" - $w.config.f.x5.x.menu add radiobutton -label "ULPI" -variable tmpvar_40 -value "ULPI" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "UTMI+16-bit" -variable tmpvar_40 -value "UTMI+16-bit" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "UTMI+8-bit" -variable tmpvar_40 -value "UTMI+8-bit" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "ULPI" -variable tmpvar_41 -value "ULPI" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "UTMI+16-bit" -variable tmpvar_41 -value "UTMI+16-bit" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "UTMI+8-bit" -variable tmpvar_41 -value "UTMI+8-bit" -command "update_active" menusplit $w $w.config.f.x5.x.menu 3 - global tmpvar_41 - minimenu $w.config.f 21 6 "Bus power generation" tmpvar_41 CONFIG_GRUSBHC_VBUSEXT + global tmpvar_42 + minimenu $w.config.f 21 6 "Bus power generation" tmpvar_42 CONFIG_GRUSBHC_VBUSEXT menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"Bus power generation\"" - $w.config.f.x6.x.menu add radiobutton -label "External" -variable tmpvar_41 -value "External" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Internal" -variable tmpvar_41 -value "Internal" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "External" -variable tmpvar_42 -value "External" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Internal" -variable tmpvar_42 -value "Internal" -command "update_active" menusplit $w $w.config.f.x6.x.menu 2 - global tmpvar_42 - minimenu $w.config.f 21 7 "External bus fault indicator" tmpvar_42 CONFIG_GRUSBHC_FAULTL + global tmpvar_43 + minimenu $w.config.f 21 7 "External bus fault indicator" tmpvar_43 CONFIG_GRUSBHC_FAULTL menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"External bus fault indicator\"" - $w.config.f.x7.x.menu add radiobutton -label "ActiveLow" -variable tmpvar_42 -value "ActiveLow" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "ActiveHigh" -variable tmpvar_42 -value "ActiveHigh" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "None" -variable tmpvar_42 -value "None" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "ActiveLow" -variable tmpvar_43 -value "ActiveLow" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "ActiveHigh" -variable tmpvar_43 -value "ActiveHigh" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "None" -variable tmpvar_43 -value "None" -command "update_active" menusplit $w $w.config.f.x7.x.menu 3 - global tmpvar_43 - minimenu $w.config.f 21 8 "Bus power enable signal" tmpvar_43 CONFIG_GRUSBHC_ENABLEH + global tmpvar_44 + minimenu $w.config.f 21 8 "Bus power enable signal" tmpvar_44 CONFIG_GRUSBHC_ENABLEH menu $w.config.f.x8.x.menu -tearoffcommand "menutitle \"Bus power enable signal\"" - $w.config.f.x8.x.menu add radiobutton -label "ActiveHigh" -variable tmpvar_43 -value "ActiveHigh" -command "update_active" - $w.config.f.x8.x.menu add radiobutton -label "ActiveLow" -variable tmpvar_43 -value "ActiveLow" -command "update_active" + $w.config.f.x8.x.menu add radiobutton -label "ActiveHigh" -variable tmpvar_44 -value "ActiveHigh" -command "update_active" + $w.config.f.x8.x.menu add radiobutton -label "ActiveLow" -variable tmpvar_44 -value "ActiveLow" -command "update_active" menusplit $w $w.config.f.x8.x.menu 2 - global tmpvar_44 - minimenu $w.config.f 21 9 "Bus power fault indicator" tmpvar_44 CONFIG_GRUSBHC_FAULT2H + global tmpvar_45 + minimenu $w.config.f 21 9 "Bus power fault indicator" tmpvar_45 CONFIG_GRUSBHC_FAULT2H menu $w.config.f.x9.x.menu -tearoffcommand "menutitle \"Bus power fault indicator\"" - $w.config.f.x9.x.menu add radiobutton -label "ActiveHigh" -variable tmpvar_44 -value "ActiveHigh" -command "update_active" - $w.config.f.x9.x.menu add radiobutton -label "ActiveLow" -variable tmpvar_44 -value "ActiveLow" -command "update_active" + $w.config.f.x9.x.menu add radiobutton -label "ActiveHigh" -variable tmpvar_45 -value "ActiveHigh" -command "update_active" + $w.config.f.x9.x.menu add radiobutton -label "ActiveLow" -variable tmpvar_45 -value "ActiveLow" -command "update_active" menusplit $w $w.config.f.x9.x.menu 2 comment $w.config.f 21 10 "Memory interface" bool $w.config.f 21 11 "Enable big endian register interface" CONFIG_GRUSBHC_BEREGS @@ -4461,35 +4766,35 @@ proc update_define_menu21 {} { if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_UHC == 1)} then {validate_int CONFIG_GRUSBHC_NCC "$CONFIG_GRUSBHC_NCC" 1} global CONFIG_GRUSBHC_NPORTS if {($CONFIG_GRUSBHC_ENABLE == 1)} then {validate_int CONFIG_GRUSBHC_NPORTS "$CONFIG_GRUSBHC_NPORTS" 1} - global tmpvar_40 + global tmpvar_41 global CONFIG_GRUSBHC_ULPI - if {$tmpvar_40 == "ULPI"} then {set CONFIG_GRUSBHC_ULPI 1} else {set CONFIG_GRUSBHC_ULPI 0} + if {$tmpvar_41 == "ULPI"} then {set CONFIG_GRUSBHC_ULPI 1} else {set CONFIG_GRUSBHC_ULPI 0} global CONFIG_GRUSBHC_UTMI16 - if {$tmpvar_40 == "UTMI+16-bit"} then {set CONFIG_GRUSBHC_UTMI16 1} else {set CONFIG_GRUSBHC_UTMI16 0} + if {$tmpvar_41 == "UTMI+16-bit"} then {set CONFIG_GRUSBHC_UTMI16 1} else {set CONFIG_GRUSBHC_UTMI16 0} global CONFIG_GRUSBHC_UTMI8 - if {$tmpvar_40 == "UTMI+8-bit"} then {set CONFIG_GRUSBHC_UTMI8 1} else {set CONFIG_GRUSBHC_UTMI8 0} - global tmpvar_41 + if {$tmpvar_41 == "UTMI+8-bit"} then {set CONFIG_GRUSBHC_UTMI8 1} else {set CONFIG_GRUSBHC_UTMI8 0} + global tmpvar_42 global CONFIG_GRUSBHC_VBUSEXT - if {$tmpvar_41 == "External"} then {set CONFIG_GRUSBHC_VBUSEXT 1} else {set CONFIG_GRUSBHC_VBUSEXT 0} + if {$tmpvar_42 == "External"} then {set CONFIG_GRUSBHC_VBUSEXT 1} else {set CONFIG_GRUSBHC_VBUSEXT 0} global CONFIG_GRUSBHC_VBUSINT - if {$tmpvar_41 == "Internal"} then {set CONFIG_GRUSBHC_VBUSINT 1} else {set CONFIG_GRUSBHC_VBUSINT 0} - global tmpvar_42 + if {$tmpvar_42 == "Internal"} then {set CONFIG_GRUSBHC_VBUSINT 1} else {set CONFIG_GRUSBHC_VBUSINT 0} + global tmpvar_43 global CONFIG_GRUSBHC_FAULTL - if {$tmpvar_42 == "ActiveLow"} then {set CONFIG_GRUSBHC_FAULTL 1} else {set CONFIG_GRUSBHC_FAULTL 0} + if {$tmpvar_43 == "ActiveLow"} then {set CONFIG_GRUSBHC_FAULTL 1} else {set CONFIG_GRUSBHC_FAULTL 0} global CONFIG_GRUSBHC_FAULTH - if {$tmpvar_42 == "ActiveHigh"} then {set CONFIG_GRUSBHC_FAULTH 1} else {set CONFIG_GRUSBHC_FAULTH 0} + if {$tmpvar_43 == "ActiveHigh"} then {set CONFIG_GRUSBHC_FAULTH 1} else {set CONFIG_GRUSBHC_FAULTH 0} global CONFIG_GRUSBHC_FAULTN - if {$tmpvar_42 == "None"} then {set CONFIG_GRUSBHC_FAULTN 1} else {set CONFIG_GRUSBHC_FAULTN 0} - global tmpvar_43 + if {$tmpvar_43 == "None"} then {set CONFIG_GRUSBHC_FAULTN 1} else {set CONFIG_GRUSBHC_FAULTN 0} + global tmpvar_44 global CONFIG_GRUSBHC_ENABLEH - if {$tmpvar_43 == "ActiveHigh"} then {set CONFIG_GRUSBHC_ENABLEH 1} else {set CONFIG_GRUSBHC_ENABLEH 0} + if {$tmpvar_44 == "ActiveHigh"} then {set CONFIG_GRUSBHC_ENABLEH 1} else {set CONFIG_GRUSBHC_ENABLEH 0} global CONFIG_GRUSBHC_ENABLEL - if {$tmpvar_43 == "ActiveLow"} then {set CONFIG_GRUSBHC_ENABLEL 1} else {set CONFIG_GRUSBHC_ENABLEL 0} - global tmpvar_44 + if {$tmpvar_44 == "ActiveLow"} then {set CONFIG_GRUSBHC_ENABLEL 1} else {set CONFIG_GRUSBHC_ENABLEL 0} + global tmpvar_45 global CONFIG_GRUSBHC_FAULT2H - if {$tmpvar_44 == "ActiveHigh"} then {set CONFIG_GRUSBHC_FAULT2H 1} else {set CONFIG_GRUSBHC_FAULT2H 0} + if {$tmpvar_45 == "ActiveHigh"} then {set CONFIG_GRUSBHC_FAULT2H 1} else {set CONFIG_GRUSBHC_FAULT2H 0} global CONFIG_GRUSBHC_FAULT2L - if {$tmpvar_44 == "ActiveLow"} then {set CONFIG_GRUSBHC_FAULT2L 1} else {set CONFIG_GRUSBHC_FAULT2L 0} + if {$tmpvar_45 == "ActiveLow"} then {set CONFIG_GRUSBHC_FAULT2L 1} else {set CONFIG_GRUSBHC_FAULT2L 0} global CONFIG_GRUSBHC_BEREGS if {($CONFIG_GRUSBHC_ENABLE == 1)} then { set CONFIG_GRUSBHC_BEREGS [expr $CONFIG_GRUSBHC_BEREGS&15]} else {set CONFIG_GRUSBHC_BEREGS [expr $CONFIG_GRUSBHC_BEREGS|16]} @@ -4589,12 +4894,12 @@ proc menu22 {w title} { bool $w.config.f 22 0 "Gaisler Research USB 2.0 Device Controller " CONFIG_GRUSBDC_ENABLE bool $w.config.f 22 1 "AHB Master Interface" CONFIG_GRUSBDC_AIFACE - global tmpvar_45 - minimenu $w.config.f 22 2 "USB Transceiver Interface" tmpvar_45 CONFIG_GRUSBDC_ULPI + global tmpvar_46 + minimenu $w.config.f 22 2 "USB Transceiver Interface" tmpvar_46 CONFIG_GRUSBDC_ULPI menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"USB Transceiver Interface\"" - $w.config.f.x2.x.menu add radiobutton -label "ULPI" -variable tmpvar_45 -value "ULPI" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "UTMI/UTMI+8-bit" -variable tmpvar_45 -value "UTMI/UTMI+8-bit" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "UTMI/UTMI+16-bit" -variable tmpvar_45 -value "UTMI/UTMI+16-bit" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ULPI" -variable tmpvar_46 -value "ULPI" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "UTMI/UTMI+8-bit" -variable tmpvar_46 -value "UTMI/UTMI+8-bit" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "UTMI/UTMI+16-bit" -variable tmpvar_46 -value "UTMI/UTMI+16-bit" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 int $w.config.f 22 3 "Number of IN endpoints " CONFIG_GRUSBDC_NEPI int $w.config.f 22 4 "Number of OUT endpoints" CONFIG_GRUSBDC_NEPO @@ -4750,13 +5055,13 @@ proc update_define_menu22 {} { global CONFIG_GRUSBDC_AIFACE if {($CONFIG_GRUSBDC_ENABLE == 1)} then { set CONFIG_GRUSBDC_AIFACE [expr $CONFIG_GRUSBDC_AIFACE&15]} else {set CONFIG_GRUSBDC_AIFACE [expr $CONFIG_GRUSBDC_AIFACE|16]} - global tmpvar_45 + global tmpvar_46 global CONFIG_GRUSBDC_ULPI - if {$tmpvar_45 == "ULPI"} then {set CONFIG_GRUSBDC_ULPI 1} else {set CONFIG_GRUSBDC_ULPI 0} + if {$tmpvar_46 == "ULPI"} then {set CONFIG_GRUSBDC_ULPI 1} else {set CONFIG_GRUSBDC_ULPI 0} global CONFIG_GRUSBDC_UTMI8 - if {$tmpvar_45 == "UTMI/UTMI+8-bit"} then {set CONFIG_GRUSBDC_UTMI8 1} else {set CONFIG_GRUSBDC_UTMI8 0} + if {$tmpvar_46 == "UTMI/UTMI+8-bit"} then {set CONFIG_GRUSBDC_UTMI8 1} else {set CONFIG_GRUSBDC_UTMI8 0} global CONFIG_GRUSBDC_UTMI16 - if {$tmpvar_45 == "UTMI/UTMI+16-bit"} then {set CONFIG_GRUSBDC_UTMI16 1} else {set CONFIG_GRUSBDC_UTMI16 0} + if {$tmpvar_46 == "UTMI/UTMI+16-bit"} then {set CONFIG_GRUSBDC_UTMI16 1} else {set CONFIG_GRUSBDC_UTMI16 0} global CONFIG_GRUSBDC_NEPI if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_NEPI "$CONFIG_GRUSBDC_NEPI" 1} global CONFIG_GRUSBDC_NEPO @@ -4880,26 +5185,26 @@ proc menu23 {w title} { bool $w.config.f 23 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_46 - minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_46 CONFIG_UA1_FIFO1 + global tmpvar_47 + minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_47 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_46 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_46 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_46 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_46 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_46 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_46 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_47 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_47 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_47 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_47 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_47 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_47 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 23 2 "Enable secondary UART " CONFIG_UART2_ENABLE - global tmpvar_47 - minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_47 CONFIG_UA2_FIFO1 + global tmpvar_48 + minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_48 CONFIG_UA2_FIFO1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"UART2 FIFO depth\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_47 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_47 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_47 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_47 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_47 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_47 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_48 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_48 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_48 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_48 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_48 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_48 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 6 bool $w.config.f 23 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 23 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4990,32 +5295,32 @@ proc update_menu23 {} { proc update_define_menu23 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_46 + global tmpvar_47 global CONFIG_UA1_FIFO1 - if {$tmpvar_46 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_47 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_46 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_47 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_46 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_47 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_46 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_47 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_46 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_47 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_46 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} - global tmpvar_47 + if {$tmpvar_47 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + global tmpvar_48 global CONFIG_UA2_FIFO1 - if {$tmpvar_47 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} + if {$tmpvar_48 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} global CONFIG_UA2_FIFO2 - if {$tmpvar_47 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} + if {$tmpvar_48 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} global CONFIG_UA2_FIFO4 - if {$tmpvar_47 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} + if {$tmpvar_48 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} global CONFIG_UA2_FIFO8 - if {$tmpvar_47 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} + if {$tmpvar_48 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} global CONFIG_UA2_FIFO16 - if {$tmpvar_47 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} + if {$tmpvar_48 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} global CONFIG_UA2_FIFO32 - if {$tmpvar_47 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} + if {$tmpvar_48 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -5185,7 +5490,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -5195,6 +5501,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -5223,6 +5531,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -5235,14 +5544,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_4 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -5255,28 +5569,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 set CONFIG_FPU_GRFPU_SH 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -5286,17 +5600,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -5308,12 +5622,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -5323,10 +5637,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -5337,7 +5651,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -5349,26 +5663,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_21 "(not set)" +set tmpvar_22 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_22 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_23 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -5376,27 +5692,27 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set tmpvar_27 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_FPUFT_NONE 0 set CONFIG_FPUFT_PAR 0 set CONFIG_FPUFT_DMR 0 @@ -5421,12 +5737,12 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_GRUSB_DCL 0 -set tmpvar_28 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_GRUSB_DCL_ULPI 0 set CONFIG_GRUSB_DCL_UTMI8 0 set CONFIG_GRUSB_DCL_UTMI16 0 set CONFIG_DSU_ETH 0 -set tmpvar_29 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -5451,7 +5767,7 @@ set CONFIG_MCTRL_PROGPAGE 0 set CONFIG_AHBSTAT_ENABLE 0 set CONFIG_AHBSTAT_NFTSLV 1 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_30 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -5462,7 +5778,7 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_31 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 @@ -5477,17 +5793,17 @@ set CONFIG_CAN_SYNCRST 0 set CONFIG_CAN_FT 0 set CONFIG_SPW_ENABLE 0 set CONFIG_SPW_NUM 1 -set tmpvar_32 "(not set)" +set tmpvar_33 "(not set)" set CONFIG_SPW_AHBFIFO4 0 set CONFIG_SPW_AHBFIFO8 0 set CONFIG_SPW_AHBFIFO16 0 set CONFIG_SPW_AHBFIFO32 0 -set tmpvar_33 "(not set)" +set tmpvar_34 "(not set)" set CONFIG_SPW_RXFIFO16 0 set CONFIG_SPW_RXFIFO32 0 set CONFIG_SPW_RXFIFO64 0 set CONFIG_SPW_RMAP 0 -set tmpvar_34 "(not set)" +set tmpvar_35 "(not set)" set CONFIG_SPW_RMAPBUF2 0 set CONFIG_SPW_RMAPBUF4 0 set CONFIG_SPW_RMAPBUF6 0 @@ -5497,17 +5813,17 @@ set CONFIG_SPW_RXUNAL 0 set CONFIG_SPW_FT 0 set CONFIG_SPW_NETLIST 0 set CONFIG_SPW_PORTS 1 -set tmpvar_35 "(not set)" +set tmpvar_36 "(not set)" set CONFIG_SPW_GRSPW1 0 set CONFIG_SPW_GRSPW2 0 set CONFIG_SPW_DMACHAN 1 set CONFIG_SPW_RTSAME 0 -set tmpvar_36 "(not set)" +set tmpvar_37 "(not set)" set CONFIG_SPW_RX_SDR 0 set CONFIG_SPW_RX_DDR 0 set CONFIG_SPW_RX_XOR 0 set CONFIG_SPW_RX_AFLEX 0 -set tmpvar_37 "(not set)" +set tmpvar_38 "(not set)" set CONFIG_SPW_TX_SDR 0 set CONFIG_SPW_TX_DDR 0 set CONFIG_SPW_TX_AFLEX 0 @@ -5516,7 +5832,7 @@ set CONFIG_PCI_MASTER_TARGET 0 set CONFIG_PCI_MASTER_TARGET_DMA 0 set CONFIG_PCI_VENDORID 1AC8 set CONFIG_PCI_DEVICEID 0054 -set tmpvar_38 "(not set)" +set tmpvar_39 "(not set)" set CONFIG_PCI_FIFO0 0 set CONFIG_PCI_FIFO8 0 set CONFIG_PCI_FIFO16 0 @@ -5528,7 +5844,7 @@ set CONFIG_PCI_ARBITER 0 set CONFIG_PCI_ARBITER_APB 0 set CONFIG_PCI_ARBITER_NREQ 4 set CONFIG_PCI_TRACE 0 -set tmpvar_39 "(not set)" +set tmpvar_40 "(not set)" set CONFIG_PCI_TRACE256 0 set CONFIG_PCI_TRACE512 0 set CONFIG_PCI_TRACE1024 0 @@ -5539,21 +5855,21 @@ set CONFIG_GRUSBHC_EHC 0 set CONFIG_GRUSBHC_UHC 0 set CONFIG_GRUSBHC_NCC 1 set CONFIG_GRUSBHC_NPORTS 1 -set tmpvar_40 "(not set)" +set tmpvar_41 "(not set)" set CONFIG_GRUSBHC_ULPI 0 set CONFIG_GRUSBHC_UTMI16 0 set CONFIG_GRUSBHC_UTMI8 0 -set tmpvar_41 "(not set)" +set tmpvar_42 "(not set)" set CONFIG_GRUSBHC_VBUSEXT 0 set CONFIG_GRUSBHC_VBUSINT 0 -set tmpvar_42 "(not set)" +set tmpvar_43 "(not set)" set CONFIG_GRUSBHC_FAULTL 0 set CONFIG_GRUSBHC_FAULTH 0 set CONFIG_GRUSBHC_FAULTN 0 -set tmpvar_43 "(not set)" +set tmpvar_44 "(not set)" set CONFIG_GRUSBHC_ENABLEH 0 set CONFIG_GRUSBHC_ENABLEL 0 -set tmpvar_44 "(not set)" +set tmpvar_45 "(not set)" set CONFIG_GRUSBHC_FAULT2H 0 set CONFIG_GRUSBHC_FAULT2L 0 set CONFIG_GRUSBHC_BEREGS 0 @@ -5578,7 +5894,7 @@ set CONFIG_GRUSBHC_PR14 0 set CONFIG_GRUSBHC_PR15 0 set CONFIG_GRUSBDC_ENABLE 0 set CONFIG_GRUSBDC_AIFACE 0 -set tmpvar_45 "(not set)" +set tmpvar_46 "(not set)" set CONFIG_GRUSBDC_ULPI 0 set CONFIG_GRUSBDC_UTMI8 0 set CONFIG_GRUSBDC_UTMI16 0 @@ -5617,7 +5933,7 @@ set CONFIG_GRUSBDC_O13 1024 set CONFIG_GRUSBDC_O14 1024 set CONFIG_GRUSBDC_O15 1024 set CONFIG_UART1_ENABLE 0 -set tmpvar_46 "(not set)" +set tmpvar_47 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5625,7 +5941,7 @@ set CONFIG_UA1_FIFO8 0 set CONFIG_UA1_FIFO16 0 set CONFIG_UA1_FIFO32 0 set CONFIG_UART2_ENABLE 0 -set tmpvar_47 "(not set)" +set tmpvar_48 "(not set)" set CONFIG_UA2_FIFO1 0 set CONFIG_UA2_FIFO2 0 set CONFIG_UA2_FIFO4 0 @@ -5705,7 +6021,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5715,6 +6032,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5758,6 +6077,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_3 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } + if { $tmpvar_3 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } global CONFIG_CLK_MUL @@ -5770,9 +6090,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5786,245 +6107,390 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_4 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_4 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_4 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_4 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_4 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - if { $tmpvar_4 == "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 } - if { $tmpvar_4 == "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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_5 == "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 } + if { $tmpvar_5 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_6 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_6 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_6 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_6 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_7 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 }} global tmpvar_8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_8 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_9 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 }} global tmpvar_22 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_24 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_24 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_24 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_24 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_24 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_26 - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_28 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} + if { $tmpvar_28 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_28 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_28 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_28 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -6068,21 +6534,21 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_DSU_JTAG $CONFIG_DSU_JTAG [list $notmod] 2 global CONFIG_GRUSB_DCL write_tristate $cfg $autocfg CONFIG_GRUSB_DCL $CONFIG_GRUSB_DCL [list $notmod] 2 - global tmpvar_28 + global tmpvar_29 if {($CONFIG_GRUSB_DCL == 1)} then { - if { $tmpvar_28 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_ULPI 0 [list $notmod] 2 } - if { $tmpvar_28 == "UTMI/UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI8 0 [list $notmod] 2 } - if { $tmpvar_28 == "UTMI/UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI16 0 [list $notmod] 2 }} + if { $tmpvar_29 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_ULPI 0 [list $notmod] 2 } + if { $tmpvar_29 == "UTMI/UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI8 0 [list $notmod] 2 } + if { $tmpvar_29 == "UTMI/UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI16 0 [list $notmod] 2 }} global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_29 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -6126,27 +6592,27 @@ proc writeconfig {file1 file2} { write_comment $cfg $autocfg "On-chip RAM/ROM " global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_30 + global tmpvar_31 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_31 + global tmpvar_32 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 }} + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} write_comment $cfg $autocfg "CAN " global CONFIG_CAN_ENABLE write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2 @@ -6167,25 +6633,25 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_SPW_ENABLE $CONFIG_SPW_ENABLE [list $notmod] 2 global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_NUM $CONFIG_SPW_NUM $notmod } - global tmpvar_32 - if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 }} global tmpvar_33 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 }} + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 }} + global tmpvar_34 + if {($CONFIG_SPW_ENABLE == 1)} then { + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 }} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAP $CONFIG_SPW_RMAP [list $notmod] 2 } - global tmpvar_34 + global tmpvar_35 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then { - if { $tmpvar_34 == "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 } - if { $tmpvar_34 == "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 } - if { $tmpvar_34 == "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 } - if { $tmpvar_34 == "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 }} + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 }} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAPCRC $CONFIG_SPW_RMAPCRC [list $notmod] 2 } global CONFIG_SPW_RXUNAL @@ -6196,26 +6662,26 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_NETLIST $CONFIG_SPW_NETLIST [list $notmod] 2 } global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_PORTS $CONFIG_SPW_PORTS $notmod } - global tmpvar_35 + global tmpvar_36 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_35 == "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 } - if { $tmpvar_35 == "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 }} + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 }} global CONFIG_SPW_DMACHAN global CONFIG_SPW_GRSPW2 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_int $cfg $autocfg CONFIG_SPW_DMACHAN $CONFIG_SPW_DMACHAN $notmod } global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RTSAME $CONFIG_SPW_RTSAME [list $notmod] 2 } - global tmpvar_36 - if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_36 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } - if { $tmpvar_36 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } - if { $tmpvar_36 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } - if { $tmpvar_36 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} global tmpvar_37 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_37 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } - if { $tmpvar_37 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } - if { $tmpvar_37 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} + if { $tmpvar_37 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } + if { $tmpvar_37 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } + if { $tmpvar_37 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } + if { $tmpvar_37 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} + global tmpvar_38 + if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { + if { $tmpvar_38 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } + if { $tmpvar_38 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } + if { $tmpvar_38 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} write_comment $cfg $autocfg "PCI " global CONFIG_PCI_SIMPLE_TARGET global CONFIG_PCI_ACTEL @@ -6228,14 +6694,14 @@ proc writeconfig {file1 file2} { 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 } global CONFIG_PCI_DEVICEID 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 } - global tmpvar_38 + global tmpvar_39 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 { - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 }} + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 }} global CONFIG_PCI_HADDR 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 } global CONFIG_PCI_ARBITER @@ -6246,13 +6712,13 @@ proc writeconfig {file1 file2} { if {($CONFIG_PCI_ARBITER == 1)} then {write_int $cfg $autocfg CONFIG_PCI_ARBITER_NREQ $CONFIG_PCI_ARBITER_NREQ $notmod } global CONFIG_PCI_TRACE write_tristate $cfg $autocfg CONFIG_PCI_TRACE $CONFIG_PCI_TRACE [list $notmod] 2 - global tmpvar_39 + global tmpvar_40 if {($CONFIG_PCI_TRACE == 1)} then { - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 }} + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 }} write_comment $cfg $autocfg "USB 2.0 Host Controller " global CONFIG_GRUSBHC_ENABLE write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLE $CONFIG_GRUSBHC_ENABLE [list $notmod] 2 @@ -6264,30 +6730,30 @@ proc writeconfig {file1 file2} { if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_UHC == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBHC_NCC $CONFIG_GRUSBHC_NCC $notmod } global CONFIG_GRUSBHC_NPORTS if {($CONFIG_GRUSBHC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBHC_NPORTS $CONFIG_GRUSBHC_NPORTS $notmod } - global tmpvar_40 - if {($CONFIG_GRUSBHC_ENABLE == 1)} then { - if { $tmpvar_40 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ULPI 0 [list $notmod] 2 } - if { $tmpvar_40 == "UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI16 0 [list $notmod] 2 } - if { $tmpvar_40 == "UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI8 0 [list $notmod] 2 }} global tmpvar_41 + if {($CONFIG_GRUSBHC_ENABLE == 1)} then { + if { $tmpvar_41 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ULPI 0 [list $notmod] 2 } + if { $tmpvar_41 == "UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI16 0 [list $notmod] 2 } + if { $tmpvar_41 == "UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI8 0 [list $notmod] 2 }} + global tmpvar_42 global CONFIG_GRUSBHC_ULPI if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI == 1)} then { - if { $tmpvar_41 == "External" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSEXT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSEXT 0 [list $notmod] 2 } - if { $tmpvar_41 == "Internal" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSINT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSINT 0 [list $notmod] 2 }} - global tmpvar_42 + if { $tmpvar_42 == "External" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSEXT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSEXT 0 [list $notmod] 2 } + if { $tmpvar_42 == "Internal" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSINT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSINT 0 [list $notmod] 2 }} + global tmpvar_43 global CONFIG_GRUSBHC_VBUSEXT if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI == 1) && ($CONFIG_GRUSBHC_VBUSEXT == 1)} then { - if { $tmpvar_42 == "ActiveLow" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTL 0 [list $notmod] 2 } - if { $tmpvar_42 == "ActiveHigh" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTH 0 [list $notmod] 2 } - if { $tmpvar_42 == "None" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTN 0 [list $notmod] 2 }} - global tmpvar_43 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI != 1)} then { - if { $tmpvar_43 == "ActiveHigh" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEH 0 [list $notmod] 2 } - if { $tmpvar_43 == "ActiveLow" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEL 0 [list $notmod] 2 }} + if { $tmpvar_43 == "ActiveLow" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTL 0 [list $notmod] 2 } + if { $tmpvar_43 == "ActiveHigh" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTH 0 [list $notmod] 2 } + if { $tmpvar_43 == "None" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTN 0 [list $notmod] 2 }} global tmpvar_44 if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI != 1)} then { - if { $tmpvar_44 == "ActiveHigh" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2H 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2H 0 [list $notmod] 2 } - if { $tmpvar_44 == "ActiveLow" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2L 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2L 0 [list $notmod] 2 }} + if { $tmpvar_44 == "ActiveHigh" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEH 0 [list $notmod] 2 } + if { $tmpvar_44 == "ActiveLow" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEL 0 [list $notmod] 2 }} + global tmpvar_45 + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI != 1)} then { + if { $tmpvar_45 == "ActiveHigh" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2H 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2H 0 [list $notmod] 2 } + if { $tmpvar_45 == "ActiveLow" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2L 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2L 0 [list $notmod] 2 }} if {($CONFIG_GRUSBHC_ENABLE == 1)} then {write_comment $cfg $autocfg "Memory interface"} global CONFIG_GRUSBHC_BEREGS if {($CONFIG_GRUSBHC_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRUSBHC_BEREGS $CONFIG_GRUSBHC_BEREGS [list $notmod] 2 } @@ -6335,11 +6801,11 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_GRUSBDC_ENABLE $CONFIG_GRUSBDC_ENABLE [list $notmod] 2 global CONFIG_GRUSBDC_AIFACE if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRUSBDC_AIFACE $CONFIG_GRUSBDC_AIFACE [list $notmod] 2 } - global tmpvar_45 + global tmpvar_46 if {($CONFIG_GRUSBDC_ENABLE == 1)} then { - if { $tmpvar_45 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_ULPI 0 [list $notmod] 2 } - if { $tmpvar_45 == "UTMI/UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI8 0 [list $notmod] 2 } - if { $tmpvar_45 == "UTMI/UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI16 0 [list $notmod] 2 }} + if { $tmpvar_46 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_ULPI 0 [list $notmod] 2 } + if { $tmpvar_46 == "UTMI/UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI8 0 [list $notmod] 2 } + if { $tmpvar_46 == "UTMI/UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI16 0 [list $notmod] 2 }} global CONFIG_GRUSBDC_NEPI if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_NEPI $CONFIG_GRUSBDC_NEPI $notmod } global CONFIG_GRUSBDC_NEPO @@ -6411,24 +6877,24 @@ proc writeconfig {file1 file2} { write_comment $cfg $autocfg "UARTs, timers and I/O port " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_46 + global tmpvar_47 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_46 == "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 } - if { $tmpvar_46 == "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 } - if { $tmpvar_46 == "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 } - if { $tmpvar_46 == "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 } - if { $tmpvar_46 == "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 } - if { $tmpvar_46 == "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 }} + if { $tmpvar_47 == "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 } + if { $tmpvar_47 == "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 } + if { $tmpvar_47 == "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 } + if { $tmpvar_47 == "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 } + if { $tmpvar_47 == "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 } + if { $tmpvar_47 == "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 }} global CONFIG_UART2_ENABLE write_tristate $cfg $autocfg CONFIG_UART2_ENABLE $CONFIG_UART2_ENABLE [list $notmod] 2 - global tmpvar_47 + global tmpvar_48 if {($CONFIG_UART2_ENABLE == 1)} then { - if { $tmpvar_47 == "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 } - if { $tmpvar_47 == "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 } - if { $tmpvar_47 == "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 } - if { $tmpvar_47 == "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 } - if { $tmpvar_47 == "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 } - if { $tmpvar_47 == "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 }} + if { $tmpvar_48 == "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 } + if { $tmpvar_48 == "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 } + if { $tmpvar_48 == "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 } + if { $tmpvar_48 == "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 } + if { $tmpvar_48 == "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 } + if { $tmpvar_48 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -6501,7 +6967,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -6511,6 +6978,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -6532,8 +7001,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -6616,11 +7090,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -6799,8 +7275,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -6819,6 +7297,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -6867,476 +7349,492 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_3 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_3 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_3 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_3 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_3 "Xilinx-DCM" } global tmpvar_4 - set tmpvar_4 "5-cycles" + set tmpvar_4 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_4 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_4 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_4 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_4 "Custom-configuration" } + global tmpvar_5 + set tmpvar_5 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_5 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_5 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } - global tmpvar_5 - set tmpvar_5 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_5 "5-cycles" } + global tmpvar_6 + set tmpvar_6 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_6 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_6 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } - global tmpvar_6 - set tmpvar_6 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_6 "Designware" } + global tmpvar_7 + set tmpvar_7 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_7 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_7 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } - global tmpvar_7 - set tmpvar_7 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_7 "Meiko" } + global tmpvar_8 + set tmpvar_8 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_8 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_8 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_8 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } - global tmpvar_8 - set tmpvar_8 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_8 "TechSpec" } + global tmpvar_9 + set tmpvar_9 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_9 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_9 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } - global tmpvar_9 - set tmpvar_9 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_9 "Non-blocking" } + global tmpvar_10 + set tmpvar_10 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_10 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } - global tmpvar_10 - set tmpvar_10 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_10 "4" } + global tmpvar_11 + set tmpvar_11 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_11 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_11 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_11 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_11 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_11 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_11 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_11 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } - global tmpvar_11 - set tmpvar_11 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_11 "256" } + global tmpvar_12 + set tmpvar_12 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_12 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } - global tmpvar_12 - set tmpvar_12 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_12 "32" } + global tmpvar_13 + set tmpvar_13 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_13 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_13 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_13 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } - global tmpvar_13 - set tmpvar_13 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_13 "LRU" } + global tmpvar_14 + set tmpvar_14 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_14 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_14 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_14 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_14 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_14 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_14 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_14 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_14 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } - global tmpvar_14 - set tmpvar_14 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_14 "256" } + global tmpvar_15 + set tmpvar_15 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_15 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } - global tmpvar_15 - set tmpvar_15 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_15 "4" } + global tmpvar_16 + set tmpvar_16 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_16 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_16 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_16 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_16 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_16 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_16 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_16 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } - global tmpvar_16 - set tmpvar_16 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_16 "256" } + global tmpvar_17 + set tmpvar_17 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_17 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } - global tmpvar_17 - set tmpvar_17 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_17 "32" } + global tmpvar_18 + set tmpvar_18 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_18 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_18 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_18 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } - global tmpvar_18 - set tmpvar_18 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_18 "LRU" } + global tmpvar_19 + set tmpvar_19 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_19 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_19 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_19 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_19 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_19 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_19 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_19 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_19 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } - global tmpvar_19 - set tmpvar_19 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_19 "256" } + global tmpvar_20 + set tmpvar_20 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_20 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } - global tmpvar_20 - set tmpvar_20 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_20 "split" } + global tmpvar_21 + set tmpvar_21 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_21 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_21 "Increment" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_23 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_23 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_23 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_23 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } - global tmpvar_23 - set tmpvar_23 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_23 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_23 "64" } + global tmpvar_24 + set tmpvar_24 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_24 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_24 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_24 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_24 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_24 "Programmable" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_26 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_26 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_26 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_26 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_26 "16" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_27 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "None" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "None" global CONFIG_FPUFT_NONE - if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_28 "None" } global CONFIG_FPUFT_PAR - if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_28 "Parity" } global CONFIG_FPUFT_DMR - if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_28 "PDMR" } global CONFIG_FPUFT_TMR - if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } - global tmpvar_28 - set tmpvar_28 "ULPI" + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_28 "TMR" } + global tmpvar_29 + set tmpvar_29 "ULPI" global CONFIG_GRUSB_DCL_ULPI - if { $CONFIG_GRUSB_DCL_ULPI == 1 } then { set tmpvar_28 "ULPI" } + if { $CONFIG_GRUSB_DCL_ULPI == 1 } then { set tmpvar_29 "ULPI" } global CONFIG_GRUSB_DCL_UTMI8 - if { $CONFIG_GRUSB_DCL_UTMI8 == 1 } then { set tmpvar_28 "UTMI/UTMI+8-bit" } + if { $CONFIG_GRUSB_DCL_UTMI8 == 1 } then { set tmpvar_29 "UTMI/UTMI+8-bit" } global CONFIG_GRUSB_DCL_UTMI16 - if { $CONFIG_GRUSB_DCL_UTMI16 == 1 } then { set tmpvar_28 "UTMI/UTMI+16-bit" } - global tmpvar_29 - set tmpvar_29 "2" + if { $CONFIG_GRUSB_DCL_UTMI16 == 1 } then { set tmpvar_29 "UTMI/UTMI+16-bit" } + global tmpvar_30 + set tmpvar_30 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_30 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_30 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_30 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_30 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_29 "16" } - global tmpvar_30 - set tmpvar_30 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_30 "16" } + global tmpvar_31 + set tmpvar_31 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_30 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_31 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_30 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_31 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_31 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_31 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_31 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_31 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_30 "64" } - global tmpvar_31 - set tmpvar_31 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_31 "64" } + global tmpvar_32 + set tmpvar_32 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_31 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_32 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_31 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_32 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_31 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_32 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_31 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_32 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_31 "64" } - global tmpvar_32 - set tmpvar_32 "16" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_32 "64" } + global tmpvar_33 + set tmpvar_33 "16" global CONFIG_SPW_AHBFIFO4 - if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_32 "4" } + if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_33 "4" } global CONFIG_SPW_AHBFIFO8 - if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_32 "8" } + if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_33 "8" } global CONFIG_SPW_AHBFIFO16 - if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_32 "16" } + if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_33 "16" } global CONFIG_SPW_AHBFIFO32 - if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_32 "32" } - global tmpvar_33 - set tmpvar_33 "16" + if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_33 "32" } + global tmpvar_34 + set tmpvar_34 "16" global CONFIG_SPW_RXFIFO16 - if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_33 "16" } + if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_34 "16" } global CONFIG_SPW_RXFIFO32 - if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_33 "32" } + if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_34 "32" } global CONFIG_SPW_RXFIFO64 - if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_33 "64" } - global tmpvar_34 - set tmpvar_34 "64" + if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_34 "64" } + global tmpvar_35 + set tmpvar_35 "64" global CONFIG_SPW_RMAPBUF2 - if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_34 "64" } + if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_35 "64" } global CONFIG_SPW_RMAPBUF4 - if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_34 "128" } + if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_35 "128" } global CONFIG_SPW_RMAPBUF6 - if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_34 "192" } + if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_35 "192" } global CONFIG_SPW_RMAPBUF8 - if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_34 "256" } - global tmpvar_35 - set tmpvar_35 "2" + if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_35 "256" } + global tmpvar_36 + set tmpvar_36 "2" global CONFIG_SPW_GRSPW1 - if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_35 "1" } + if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_36 "1" } global CONFIG_SPW_GRSPW2 - if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_35 "2" } - global tmpvar_36 - set tmpvar_36 "DDR" + if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_36 "2" } + global tmpvar_37 + set tmpvar_37 "DDR" global CONFIG_SPW_RX_SDR - if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_36 "SDR" } + if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_37 "SDR" } global CONFIG_SPW_RX_DDR - if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_36 "DDR" } + if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_37 "DDR" } global CONFIG_SPW_RX_XOR - if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_36 "Xor" } + if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_37 "Xor" } global CONFIG_SPW_RX_AFLEX - if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_36 "Aeroflex" } - global tmpvar_37 - set tmpvar_37 "SDR" + if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_37 "Aeroflex" } + global tmpvar_38 + set tmpvar_38 "SDR" global CONFIG_SPW_TX_SDR - if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_37 "SDR" } + if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_38 "SDR" } global CONFIG_SPW_TX_DDR - if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_37 "DDR" } + if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_38 "DDR" } global CONFIG_SPW_TX_AFLEX - if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_37 "Aeroflex" } - global tmpvar_38 - set tmpvar_38 "8" + if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_38 "Aeroflex" } + global tmpvar_39 + set tmpvar_39 "8" global CONFIG_PCI_FIFO0 - if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_38 "None" } + if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_39 "None" } global CONFIG_PCI_FIFO8 - if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_38 "8" } + if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_39 "8" } global CONFIG_PCI_FIFO16 - if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_38 "16" } + if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_39 "16" } global CONFIG_PCI_FIFO32 - if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_38 "32" } + if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_39 "32" } global CONFIG_PCI_FIFO64 - if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_38 "64" } + if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_39 "64" } global CONFIG_PCI_FIFO128 - if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_38 "128" } - global tmpvar_39 - set tmpvar_39 "256" + if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_39 "128" } + global tmpvar_40 + set tmpvar_40 "256" global CONFIG_PCI_TRACE256 - if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_39 "256" } + if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_40 "256" } global CONFIG_PCI_TRACE512 - if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_39 "512" } + if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_40 "512" } global CONFIG_PCI_TRACE1024 - if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_39 "1024" } + if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_40 "1024" } global CONFIG_PCI_TRACE2048 - if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_39 "2048" } + if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_40 "2048" } global CONFIG_PCI_TRACE4096 - if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_39 "4096" } - global tmpvar_40 - set tmpvar_40 "ULPI" + if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_40 "4096" } + global tmpvar_41 + set tmpvar_41 "ULPI" global CONFIG_GRUSBHC_ULPI - if { $CONFIG_GRUSBHC_ULPI == 1 } then { set tmpvar_40 "ULPI" } + if { $CONFIG_GRUSBHC_ULPI == 1 } then { set tmpvar_41 "ULPI" } global CONFIG_GRUSBHC_UTMI16 - if { $CONFIG_GRUSBHC_UTMI16 == 1 } then { set tmpvar_40 "UTMI+16-bit" } + if { $CONFIG_GRUSBHC_UTMI16 == 1 } then { set tmpvar_41 "UTMI+16-bit" } global CONFIG_GRUSBHC_UTMI8 - if { $CONFIG_GRUSBHC_UTMI8 == 1 } then { set tmpvar_40 "UTMI+8-bit" } - global tmpvar_41 - set tmpvar_41 "External" + if { $CONFIG_GRUSBHC_UTMI8 == 1 } then { set tmpvar_41 "UTMI+8-bit" } + global tmpvar_42 + set tmpvar_42 "External" global CONFIG_GRUSBHC_VBUSEXT - if { $CONFIG_GRUSBHC_VBUSEXT == 1 } then { set tmpvar_41 "External" } + if { $CONFIG_GRUSBHC_VBUSEXT == 1 } then { set tmpvar_42 "External" } global CONFIG_GRUSBHC_VBUSINT - if { $CONFIG_GRUSBHC_VBUSINT == 1 } then { set tmpvar_41 "Internal" } - global tmpvar_42 - set tmpvar_42 "ActiveLow" + if { $CONFIG_GRUSBHC_VBUSINT == 1 } then { set tmpvar_42 "Internal" } + global tmpvar_43 + set tmpvar_43 "ActiveLow" global CONFIG_GRUSBHC_FAULTL - if { $CONFIG_GRUSBHC_FAULTL == 1 } then { set tmpvar_42 "ActiveLow" } + if { $CONFIG_GRUSBHC_FAULTL == 1 } then { set tmpvar_43 "ActiveLow" } global CONFIG_GRUSBHC_FAULTH - if { $CONFIG_GRUSBHC_FAULTH == 1 } then { set tmpvar_42 "ActiveHigh" } + if { $CONFIG_GRUSBHC_FAULTH == 1 } then { set tmpvar_43 "ActiveHigh" } global CONFIG_GRUSBHC_FAULTN - if { $CONFIG_GRUSBHC_FAULTN == 1 } then { set tmpvar_42 "None" } - global tmpvar_43 - set tmpvar_43 "ActiveHigh" - global CONFIG_GRUSBHC_ENABLEH - if { $CONFIG_GRUSBHC_ENABLEH == 1 } then { set tmpvar_43 "ActiveHigh" } - global CONFIG_GRUSBHC_ENABLEL - if { $CONFIG_GRUSBHC_ENABLEL == 1 } then { set tmpvar_43 "ActiveLow" } + if { $CONFIG_GRUSBHC_FAULTN == 1 } then { set tmpvar_43 "None" } global tmpvar_44 set tmpvar_44 "ActiveHigh" + global CONFIG_GRUSBHC_ENABLEH + if { $CONFIG_GRUSBHC_ENABLEH == 1 } then { set tmpvar_44 "ActiveHigh" } + global CONFIG_GRUSBHC_ENABLEL + if { $CONFIG_GRUSBHC_ENABLEL == 1 } then { set tmpvar_44 "ActiveLow" } + global tmpvar_45 + set tmpvar_45 "ActiveHigh" global CONFIG_GRUSBHC_FAULT2H - if { $CONFIG_GRUSBHC_FAULT2H == 1 } then { set tmpvar_44 "ActiveHigh" } + if { $CONFIG_GRUSBHC_FAULT2H == 1 } then { set tmpvar_45 "ActiveHigh" } global CONFIG_GRUSBHC_FAULT2L - if { $CONFIG_GRUSBHC_FAULT2L == 1 } then { set tmpvar_44 "ActiveLow" } - global tmpvar_45 - set tmpvar_45 "ULPI" + if { $CONFIG_GRUSBHC_FAULT2L == 1 } then { set tmpvar_45 "ActiveLow" } + global tmpvar_46 + set tmpvar_46 "ULPI" global CONFIG_GRUSBDC_ULPI - if { $CONFIG_GRUSBDC_ULPI == 1 } then { set tmpvar_45 "ULPI" } + if { $CONFIG_GRUSBDC_ULPI == 1 } then { set tmpvar_46 "ULPI" } global CONFIG_GRUSBDC_UTMI8 - if { $CONFIG_GRUSBDC_UTMI8 == 1 } then { set tmpvar_45 "UTMI/UTMI+8-bit" } + if { $CONFIG_GRUSBDC_UTMI8 == 1 } then { set tmpvar_46 "UTMI/UTMI+8-bit" } global CONFIG_GRUSBDC_UTMI16 - if { $CONFIG_GRUSBDC_UTMI16 == 1 } then { set tmpvar_45 "UTMI/UTMI+16-bit" } - global tmpvar_46 - set tmpvar_46 "1" + if { $CONFIG_GRUSBDC_UTMI16 == 1 } then { set tmpvar_46 "UTMI/UTMI+16-bit" } + global tmpvar_47 + set tmpvar_47 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_46 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_47 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_46 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_47 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_46 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_47 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_46 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_47 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_46 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_47 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_46 "32" } - global tmpvar_47 - set tmpvar_47 "1" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_47 "32" } + global tmpvar_48 + set tmpvar_48 "1" global CONFIG_UA2_FIFO1 - if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_47 "1" } + if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_48 "1" } global CONFIG_UA2_FIFO2 - if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_47 "2" } + if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_48 "2" } global CONFIG_UA2_FIFO4 - if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_47 "4" } + if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_48 "4" } global CONFIG_UA2_FIFO8 - if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_47 "8" } + if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_48 "8" } global CONFIG_UA2_FIFO16 - if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_47 "16" } + if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_48 "16" } global CONFIG_UA2_FIFO32 - if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_47 "32" } + if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_48 "32" } } diff --git a/designs/leon3-gr-pci-xc5v/leon3mp.vhd b/designs/leon3-gr-pci-xc5v/leon3mp.vhd index 7c7a9689..17b12c05 100644 --- a/designs/leon3-gr-pci-xc5v/leon3mp.vhd +++ b/designs/leon3-gr-pci-xc5v/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-gr-pci-xc5v/testbench.vhd b/designs/leon3-gr-pci-xc5v/testbench.vhd index cb576280..11934c04 100644 --- a/designs/leon3-gr-pci-xc5v/testbench.vhd +++ b/designs/leon3-gr-pci-xc5v/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-gr-pci-xc5v/tkconfig.h b/designs/leon3-gr-pci-xc5v/tkconfig.h index 45d8b83c..8f5e52cc 100644 --- a/designs/leon3-gr-pci-xc5v/tkconfig.h +++ b/designs/leon3-gr-pci-xc5v/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else diff --git a/designs/leon3-gr-xc3s-1500/.config b/designs/leon3-gr-xc3s-1500/.config index 899c8049..463206cb 100644 --- a/designs/leon3-gr-xc3s-1500/.config +++ b/designs/leon3-gr-xc3s-1500/.config @@ -168,11 +168,13 @@ CONFIG_MMU_REPARRAY=y CONFIG_MMU_I8=y # CONFIG_MMU_I16 is not set # CONFIG_MMU_I32 is not set +# CONFIG_MMU_I64 is not set # CONFIG_MMU_D2 is not set # CONFIG_MMU_D4 is not set CONFIG_MMU_D8=y # CONFIG_MMU_D16 is not set # CONFIG_MMU_D32 is not set +# CONFIG_MMU_D64 is not set CONFIG_MMU_FASTWB=y # CONFIG_MMU_PAGE_4K is not set # CONFIG_MMU_PAGE_8K is not set @@ -277,15 +279,6 @@ CONFIG_GRETH_FIFO16=y # CONFIG_GRETH_FIFO32 is not set # CONFIG_GRETH_FIFO64 is not set -# -# IDE Disk controller -# -CONFIG_ATA_ENABLE=y -CONFIG_ATAIO=A00 -CONFIG_ATAIRQ=10 -CONFIG_ATA_MWDMA=y -CONFIG_ATA_FIFO=8 - # # CAN # diff --git a/designs/leon3-gr-xc3s-1500/Makefile b/designs/leon3-gr-xc3s-1500/Makefile index a8dc6aee..b911d238 100644 --- a/designs/leon3-gr-xc3s-1500/Makefile +++ b/designs/leon3-gr-xc3s-1500/Makefile @@ -23,9 +23,9 @@ VCOMOPT=-explicit TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress ihp gleichmann gsi fmf spansion + tmtc openchip hynix cypress ihp gsi fmf spansion DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest ddr \ - leon4 leon4b64 l2cache gr1553b iommu haps ascs slink coremp7 pwm + leon4 leon4v0 l2cache gr1553b iommu ascs slink pwm FILESKIP = grcan.vhd include $(GRLIB)/bin/Makefile diff --git a/designs/leon3-gr-xc3s-1500/ahbrom.vhd b/designs/leon3-gr-xc3s-1500/ahbrom.vhd index f7c441dc..ac26c7b2 100644 --- a/designs/leon3-gr-xc3s-1500/ahbrom.vhd +++ b/designs/leon3-gr-xc3s-1500/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-gr-xc3s-1500/config.help b/designs/leon3-gr-xc3s-1500/config.help index 66d9218c..516838c3 100644 --- a/designs/leon3-gr-xc3s-1500/config.help +++ b/designs/leon3-gr-xc3s-1500/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ @@ -857,32 +890,6 @@ CONFIG_GRETH_FIFO4 size of the FIFO depth. -ATA interface enable -CONFIG_ATA_ENABLE - Say Y here to enable the ATA interace from OpenCores. The core has one - AHB slave interface for accessing all control registers. - -ATA register address -CONFIG_ATAIO - The control registers of the ATA core occupy 256 byte, and are - mapped in the AHB bus I/O area (0xFFF00000 - 0xFFFFF000). This setting - defines at which address in the I/O area the registers appear (HADDR[19:8]). - -ATA interrupt -CONFIG_ATAIRQ - Defines which interrupt number the ATA core will generate. - -ATA DMA support -CONFIG_ATA_MWDMA - Say yes here to enable IDE multi-word DMA support (MWDMA). - This will increase transfer rate compared to the PIO mode, - but increase area with approxiamtely 5,000 gates. Note that - DMA is not supported by legacy CF cards, so it makes no sense - to enable it on CF card sockets. - -ATA DMA FIFO depth -CONFIG_ATA_FIFO - Defines the DMA FIFO depth. Choose 8 or 16. CAN interface enable CONFIG_CAN_ENABLE Say Y here to enable one or more CAN cores. The cores has one diff --git a/designs/leon3-gr-xc3s-1500/config.in b/designs/leon3-gr-xc3s-1500/config.in index 134f9248..cf71a522 100644 --- a/designs/leon3-gr-xc3s-1500/config.in +++ b/designs/leon3-gr-xc3s-1500/config.in @@ -56,11 +56,6 @@ comment 'Peripherals ' source lib/gaisler/greth/greth.in endmenu - mainmenu_option next_comment - comment 'IDE Disk controller ' - source lib/gaisler/ata/ata.in - endmenu - mainmenu_option next_comment comment 'CAN ' source lib/gaisler/can/can_mc.in diff --git a/designs/leon3-gr-xc3s-1500/config.vhd b/designs/leon3-gr-xc3s-1500/config.vhd index 10f54bc0..d8f811dd 100644 --- a/designs/leon3-gr-xc3s-1500/config.vhd +++ b/designs/leon3-gr-xc3s-1500/config.vhd @@ -135,13 +135,6 @@ package config is constant CFG_GRETH1G : integer := 0; constant CFG_ETH_FIFO : integer := 16; --- ATA interface - constant CFG_ATA : integer := 1; - constant CFG_ATAIO : integer := 16#A00#; - constant CFG_ATAIRQ : integer := (10); - constant CFG_ATADMA : integer := 1; - constant CFG_ATAFIFO : integer := (8); - -- CAN 2.0 interface constant CFG_CAN : integer := 0; constant CFG_CAN_NUM : integer := 1; diff --git a/designs/leon3-gr-xc3s-1500/config.vhd.h b/designs/leon3-gr-xc3s-1500/config.vhd.h index f5f0f0f8..5494b79c 100644 --- a/designs/leon3-gr-xc3s-1500/config.vhd.h +++ b/designs/leon3-gr-xc3s-1500/config.vhd.h @@ -133,13 +133,6 @@ constant CFG_GRETH1G : integer := CONFIG_GRETH_GIGA; constant CFG_ETH_FIFO : integer := CFG_GRETH_FIFO; --- ATA interface - constant CFG_ATA : integer := CONFIG_ATA_ENABLE; - constant CFG_ATAIO : integer := 16#CONFIG_ATAIO#; - constant CFG_ATAIRQ : integer := CONFIG_ATAIRQ; - constant CFG_ATADMA : integer := CONFIG_ATA_MWDMA; - constant CFG_ATAFIFO : integer := CONFIG_ATA_FIFO; - -- CAN 2.0 interface constant CFG_CAN : integer := CONFIG_CAN_ENABLE; constant CFG_CAN_NUM : integer := CONFIG_CAN_NUM; diff --git a/designs/leon3-gr-xc3s-1500/doc/Makefile b/designs/leon3-gr-xc3s-1500/doc/Makefile deleted file mode 100644 index 2b8abafd..00000000 --- a/designs/leon3-gr-xc3s-1500/doc/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -clean: - -rm *backup* *.ps *.log diff --git a/designs/leon3-gr-xc3s-1500/doc/leon3-gr-xc3s-1500.pdf b/designs/leon3-gr-xc3s-1500/doc/leon3-gr-xc3s-1500.pdf deleted file mode 100644 index 29a253d3..00000000 Binary files a/designs/leon3-gr-xc3s-1500/doc/leon3-gr-xc3s-1500.pdf and /dev/null differ diff --git a/designs/leon3-gr-xc3s-1500/lconfig.tk b/designs/leon3-gr-xc3s-1500/lconfig.tk index f6efe8c5..7e20e275 100755 --- a/designs/leon3-gr-xc3s-1500/lconfig.tk +++ b/designs/leon3-gr-xc3s-1500/lconfig.tk @@ -644,7 +644,7 @@ set active_menus [list] set processed_top_level 0 set ARCH sparc set menus_per_column 4 -set total_menus 24 +set total_menus 23 proc toplevel_menu {num} { if {$num == 4} then {return 3} @@ -663,7 +663,6 @@ proc toplevel_menu {num} { if {$num == 20} then {return 13} if {$num == 21} then {return 13} if {$num == 22} then {return 13} - if {$num == 23} then {return 13} return $num } @@ -757,7 +756,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -767,7 +767,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -916,8 +918,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -936,6 +940,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1030,9 +1038,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_3 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_3 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_3 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_3 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_3 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_3 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1086,10 +1095,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1135,14 +1145,16 @@ proc update_define_menu2 {} { if {$tmpvar_3 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_3 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_3 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_3 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_3 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1215,13 +1227,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_4 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_4 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_4 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_4 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_4 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_4 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1261,22 +1281,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_4 + global CONFIG_LEON3_MIN + if {$tmpvar_4 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_4 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_4 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_4 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1333,21 +1621,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_4 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_5 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_5 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_5 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_5 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_5 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_5 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED + global tmpvar_6 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_6 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_6 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_6 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1394,36 +1682,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1431,48 +1720,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_5 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_5 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_5 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_6 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_6 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_6 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_6 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1528,27 +1818,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_6 - minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU + global tmpvar_7 + minimenu $w.config.f 5 1 "FPU core" tmpvar_7 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_7 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_7 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_7 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_7 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_8 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_8 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_8 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_8 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_8 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_8 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_8 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 + global tmpvar_9 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_9 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_9 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_9 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_9 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1589,16 +1879,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1607,34 +1898,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_6 + global tmpvar_7 global CONFIG_FPU_GRFPU - if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_7 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_7 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_7 + if {$tmpvar_7 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_8 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_8 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_8 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_8 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_8 + if {$tmpvar_8 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_9 global CONFIG_FPU_GRFPC0 - if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_9 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_9 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_9 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1691,92 +1983,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_9 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 + global tmpvar_10 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_10 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_10 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_10 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 + global tmpvar_11 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_11 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_11 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_11 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_11 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_11 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_11 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_11 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_11 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_11 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 + global tmpvar_12 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_12 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_12 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND + global tmpvar_13 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_13 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_13 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_13 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_13 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_13 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_13 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_14 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_14 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_14 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 + global tmpvar_15 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_15 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_15 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_15 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 + global tmpvar_16 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_16 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_16 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_16 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_16 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_16 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_16 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_16 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_16 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_16 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 + global tmpvar_17 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_17 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_17 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND + global tmpvar_18 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_18 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_18 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_18 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_18 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_18 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1784,18 +2076,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_18 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_19 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_19 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_19 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_19 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_19 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_19 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_19 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_19 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_19 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_19 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_19 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1836,52 +2128,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1889,162 +2182,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_9 + global tmpvar_10 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_10 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_10 + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_11 global CONFIG_ICACHE_SZ1 - if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_11 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_11 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_11 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_11 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_11 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_11 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_11 + if {$tmpvar_11 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_12 global CONFIG_ICACHE_LZ16 - if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_12 + if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_13 global CONFIG_ICACHE_ALGORND - if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_13 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_13 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_13 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_13 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_14 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_14 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_14 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_14 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_14 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_14 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_14 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_14 + global tmpvar_15 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_15 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_15 + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_16 global CONFIG_DCACHE_SZ1 - if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_16 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_16 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_16 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_16 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_16 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_16 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_16 + if {$tmpvar_16 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_17 global CONFIG_DCACHE_LZ16 - if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_17 + if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_18 global CONFIG_DCACHE_ALGORND - if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_18 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_18 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_18 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_18 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_19 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_19 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_19 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_19 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_19 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_19 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_19 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_19 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_19 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2100,45 +2394,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_19 - minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED + global tmpvar_20 + minimenu $w.config.f 7 1 "MMU type " tmpvar_20 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_20 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_20 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY + global tmpvar_21 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_21 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_21 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_21 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_21 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_22 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_22 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_23 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_23 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_23 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_23 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_23 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K + global tmpvar_24 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_24 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_24 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_24 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_24 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_24 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_24 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2178,18 +2474,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2197,55 +2494,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_19 + global tmpvar_20 global CONFIG_MMU_COMBINED - if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_20 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_20 + if {$tmpvar_20 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_21 global CONFIG_MMU_REPARRAY - if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_21 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_21 + if {$tmpvar_21 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_22 global CONFIG_MMU_I2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_22 + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_23 global CONFIG_MMU_D2 - if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_23 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_23 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_23 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_23 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_23 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_23 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_MMU_PAGE_4K - if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_24 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_24 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_24 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_24 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_24 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2302,24 +2604,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_24 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_25 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 + global tmpvar_26 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2359,17 +2661,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2377,37 +2680,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2463,16 +2767,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_26 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE + global tmpvar_27 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_27 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_27 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_28 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_28 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_28 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_28 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_28 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_28 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2520,9 +2831,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2544,21 +2853,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_26 + global tmpvar_27 global CONFIG_IUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_27 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_27 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_28 + global CONFIG_FPUFT_NONE + if {$tmpvar_28 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_28 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_28 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_28 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2867,22 +3181,22 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "USB Debug Communication Link" CONFIG_GRUSB_DCL - global tmpvar_27 - minimenu $w.config.f 12 3 "USB Transceiver Interface" tmpvar_27 CONFIG_GRUSB_DCL_ULPI + global tmpvar_29 + minimenu $w.config.f 12 3 "USB Transceiver Interface" tmpvar_29 CONFIG_GRUSB_DCL_ULPI menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"USB Transceiver Interface\"" - $w.config.f.x3.x.menu add radiobutton -label "ULPI" -variable tmpvar_27 -value "ULPI" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "UTMI/UTMI+8-bit" -variable tmpvar_27 -value "UTMI/UTMI+8-bit" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "UTMI/UTMI+16-bit" -variable tmpvar_27 -value "UTMI/UTMI+16-bit" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "ULPI" -variable tmpvar_29 -value "ULPI" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "UTMI/UTMI+8-bit" -variable tmpvar_29 -value "UTMI/UTMI+8-bit" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "UTMI/UTMI+16-bit" -variable tmpvar_29 -value "UTMI/UTMI+16-bit" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 12 4 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_28 - minimenu $w.config.f 12 5 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 + global tmpvar_30 + minimenu $w.config.f 12 5 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_30 CONFIG_DSU_ETHSZ1 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x5.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" menusplit $w $w.config.f.x5.x.menu 5 hex $w.config.f 12 6 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 7 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2954,28 +3268,28 @@ proc update_menu12 {} { proc update_define_menu12 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_27 + global tmpvar_29 global CONFIG_GRUSB_DCL_ULPI - if {$tmpvar_27 == "ULPI"} then {set CONFIG_GRUSB_DCL_ULPI 1} else {set CONFIG_GRUSB_DCL_ULPI 0} + if {$tmpvar_29 == "ULPI"} then {set CONFIG_GRUSB_DCL_ULPI 1} else {set CONFIG_GRUSB_DCL_ULPI 0} global CONFIG_GRUSB_DCL_UTMI8 - if {$tmpvar_27 == "UTMI/UTMI+8-bit"} then {set CONFIG_GRUSB_DCL_UTMI8 1} else {set CONFIG_GRUSB_DCL_UTMI8 0} + if {$tmpvar_29 == "UTMI/UTMI+8-bit"} then {set CONFIG_GRUSB_DCL_UTMI8 1} else {set CONFIG_GRUSB_DCL_UTMI8 0} global CONFIG_GRUSB_DCL_UTMI16 - if {$tmpvar_27 == "UTMI/UTMI+16-bit"} then {set CONFIG_GRUSB_DCL_UTMI16 1} else {set CONFIG_GRUSB_DCL_UTMI16 0} + if {$tmpvar_29 == "UTMI/UTMI+16-bit"} then {set CONFIG_GRUSB_DCL_UTMI16 1} else {set CONFIG_GRUSB_DCL_UTMI16 0} global CONFIG_GRETH_ENABLE global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_30 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_30 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3048,12 +3362,11 @@ proc menu13 {w title} { submenu $w.config.f 13 0 "Memory controller " 14 submenu $w.config.f 13 1 "On-chip RAM/ROM " 16 submenu $w.config.f 13 2 "Ethernet " 17 - submenu $w.config.f 13 3 "IDE Disk controller " 18 - submenu $w.config.f 13 4 "CAN " 19 - submenu $w.config.f 13 5 "USB 2.0 Device Controller " 20 - submenu $w.config.f 13 6 "UART, timer, I/O port and interrupt controller" 21 - submenu $w.config.f 13 7 "Spacewire " 22 - submenu $w.config.f 13 8 "Keybord and VGA interface" 23 + submenu $w.config.f 13 3 "CAN " 18 + submenu $w.config.f 13 4 "USB 2.0 Device Controller " 19 + submenu $w.config.f 13 5 "UART, timer, I/O port and interrupt controller" 20 + submenu $w.config.f 13 6 "Spacewire " 21 + submenu $w.config.f 13 7 "Keybord and VGA interface" 22 @@ -3423,16 +3736,16 @@ proc menu16 {w title} { hex $w.config.f 16 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 16 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 16 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_29 - minimenu $w.config.f 16 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 + global tmpvar_31 + minimenu $w.config.f 16 4 "AHB RAM size (Kbyte)" tmpvar_31 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 16 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3494,21 +3807,21 @@ proc update_define_menu16 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_29 + global tmpvar_31 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_31 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3568,14 +3881,14 @@ proc menu17 {w title} { bool $w.config.f 17 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 17 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_30 - minimenu $w.config.f 17 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 + global tmpvar_32 + minimenu $w.config.f 17 2 "AHB FIFO size (words) " tmpvar_32 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_32 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3629,17 +3942,17 @@ proc update_define_menu17 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_30 + global tmpvar_32 global CONFIG_GRETH_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_32 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_32 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_32 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_32 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_32 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3652,9 +3965,9 @@ proc menu18 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 18]] message $w.m -width 400 -aspect 300 -text \ - "IDE Disk controller " -relief raised + "CAN " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "IDE Disk controller " + wm title $w "CAN " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 18; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu19 .menu19 \"$title\"" @@ -3694,11 +4007,13 @@ proc menu18 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 18 0 "Enable ATA interface " CONFIG_ATA_ENABLE - hex $w.config.f 18 1 "ATA I/O area start address (haddr\[19:8\]) " CONFIG_ATAIO - int $w.config.f 18 2 "Interrupt number " CONFIG_ATAIRQ - bool $w.config.f 18 3 "Enable MWDMA support " CONFIG_ATA_MWDMA - int $w.config.f 18 4 "FIFO depth " CONFIG_ATA_FIFO + bool $w.config.f 18 0 "Enable multi-core CAN interface " CONFIG_CAN_ENABLE + int $w.config.f 18 1 "Number of CAN cores " CONFIG_CAN_NUM + hex $w.config.f 18 2 "CAN I/O area start address (haddr\[19:8\]) " CONFIG_CANIO + int $w.config.f 18 3 "Interrupt number " CONFIG_CANIRQ + bool $w.config.f 18 4 "Enable separate interrupts " CONFIG_CANSEPIRQ + bool $w.config.f 18 5 "Enable synchronous reset " CONFIG_CAN_SYNCRST + bool $w.config.f 18 6 "Enable FT FIFO memory " CONFIG_CAN_FT @@ -3736,32 +4051,44 @@ proc menu18 {w title} { } proc update_menu18 {} { - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_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} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {.menu18.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x2.l configure -state normal; } else {.menu18.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x2.l configure -state disabled} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - configure_entry .menu18.config.f.x3 normal {n l y}} else {configure_entry .menu18.config.f.x3 disabled {y n l}} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {.menu18.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x4.l configure -state normal; } else {.menu18.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x4.l configure -state disabled} + global CONFIG_CAN_ENABLE + global CONFIG_CAN_NUM + if {($CONFIG_CAN_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} + global CONFIG_CANIO + if {($CONFIG_CAN_ENABLE == 1)} then {.menu18.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x2.l configure -state normal; } else {.menu18.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x2.l configure -state disabled} + global CONFIG_CANIRQ + if {($CONFIG_CAN_ENABLE == 1)} then {.menu18.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x3.l configure -state normal; } else {.menu18.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x3.l configure -state disabled} + global CONFIG_CANSEPIRQ + if {($CONFIG_CAN_ENABLE == 1)} then { + configure_entry .menu18.config.f.x4 normal {n l y}} else {configure_entry .menu18.config.f.x4 disabled {y n l}} + global CONFIG_CAN_SYNCRST + if {($CONFIG_CAN_ENABLE == 1)} then { + configure_entry .menu18.config.f.x5 normal {n l y}} else {configure_entry .menu18.config.f.x5 disabled {y n l}} + global CONFIG_CAN_FT + if {($CONFIG_CAN_ENABLE == 1)} then { + configure_entry .menu18.config.f.x6 normal {n l y}} else {configure_entry .menu18.config.f.x6 disabled {y n l}} } proc update_define_menu18 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {validate_hex CONFIG_ATAIO "$CONFIG_ATAIO" A00} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {validate_int CONFIG_ATAIRQ "$CONFIG_ATAIRQ" 10} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA&15]} else {set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA|16]} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {validate_int CONFIG_ATA_FIFO "$CONFIG_ATA_FIFO" 8} + global CONFIG_CAN_ENABLE + global CONFIG_CAN_NUM + if {($CONFIG_CAN_ENABLE == 1)} then {validate_int CONFIG_CAN_NUM "$CONFIG_CAN_NUM" 1} + global CONFIG_CANIO + if {($CONFIG_CAN_ENABLE == 1)} then {validate_hex CONFIG_CANIO "$CONFIG_CANIO" C00} + global CONFIG_CANIRQ + if {($CONFIG_CAN_ENABLE == 1)} then {validate_int CONFIG_CANIRQ "$CONFIG_CANIRQ" 13} + global CONFIG_CANSEPIRQ + if {($CONFIG_CAN_ENABLE == 1)} then { + set CONFIG_CANSEPIRQ [expr $CONFIG_CANSEPIRQ&15]} else {set CONFIG_CANSEPIRQ [expr $CONFIG_CANSEPIRQ|16]} + global CONFIG_CAN_SYNCRST + if {($CONFIG_CAN_ENABLE == 1)} then { + set CONFIG_CAN_SYNCRST [expr $CONFIG_CAN_SYNCRST&15]} else {set CONFIG_CAN_SYNCRST [expr $CONFIG_CAN_SYNCRST|16]} + global CONFIG_CAN_FT + if {($CONFIG_CAN_ENABLE == 1)} then { + set CONFIG_CAN_FT [expr $CONFIG_CAN_FT&15]} else {set CONFIG_CAN_FT [expr $CONFIG_CAN_FT|16]} } @@ -3774,9 +4101,9 @@ proc menu19 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 19]] message $w.m -width 400 -aspect 300 -text \ - "CAN " -relief raised + "USB 2.0 Device Controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "CAN " + wm title $w "USB 2.0 Device Controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu20 .menu20 \"$title\"" @@ -3816,13 +4143,49 @@ proc menu19 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 19 0 "Enable multi-core CAN interface " CONFIG_CAN_ENABLE - int $w.config.f 19 1 "Number of CAN cores " CONFIG_CAN_NUM - hex $w.config.f 19 2 "CAN I/O area start address (haddr\[19:8\]) " CONFIG_CANIO - int $w.config.f 19 3 "Interrupt number " CONFIG_CANIRQ - bool $w.config.f 19 4 "Enable separate interrupts " CONFIG_CANSEPIRQ - bool $w.config.f 19 5 "Enable synchronous reset " CONFIG_CAN_SYNCRST - bool $w.config.f 19 6 "Enable FT FIFO memory " CONFIG_CAN_FT + bool $w.config.f 19 0 "Gaisler Research USB 2.0 Device Controller " CONFIG_GRUSBDC_ENABLE + bool $w.config.f 19 1 "AHB Master Interface" CONFIG_GRUSBDC_AIFACE + global tmpvar_33 + minimenu $w.config.f 19 2 "USB Transceiver Interface" tmpvar_33 CONFIG_GRUSBDC_ULPI + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"USB Transceiver Interface\"" + $w.config.f.x2.x.menu add radiobutton -label "ULPI" -variable tmpvar_33 -value "ULPI" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "UTMI/UTMI+8-bit" -variable tmpvar_33 -value "UTMI/UTMI+8-bit" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "UTMI/UTMI+16-bit" -variable tmpvar_33 -value "UTMI/UTMI+16-bit" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 3 + int $w.config.f 19 3 "Number of IN endpoints " CONFIG_GRUSBDC_NEPI + int $w.config.f 19 4 "Number of OUT endpoints" CONFIG_GRUSBDC_NEPO + int $w.config.f 19 5 "Buffer size for IN endpoint 0 " CONFIG_GRUSBDC_I0 + int $w.config.f 19 6 "Buffer size for IN endpoint 1 " CONFIG_GRUSBDC_I1 + int $w.config.f 19 7 "Buffer size for IN endpoint 2 " CONFIG_GRUSBDC_I2 + int $w.config.f 19 8 "Buffer size for IN endpoint 3 " CONFIG_GRUSBDC_I3 + int $w.config.f 19 9 "Buffer size for IN endpoint 4 " CONFIG_GRUSBDC_I4 + int $w.config.f 19 10 "Buffer size for IN endpoint 5 " CONFIG_GRUSBDC_I5 + int $w.config.f 19 11 "Buffer size for IN endpoint 6 " CONFIG_GRUSBDC_I6 + int $w.config.f 19 12 "Buffer size for IN endpoint 7 " CONFIG_GRUSBDC_I7 + int $w.config.f 19 13 "Buffer size for IN endpoint 8 " CONFIG_GRUSBDC_I8 + int $w.config.f 19 14 "Buffer size for IN endpoint 9 " CONFIG_GRUSBDC_I9 + int $w.config.f 19 15 "Buffer size for IN endpoint 10 " CONFIG_GRUSBDC_I10 + int $w.config.f 19 16 "Buffer size for IN endpoint 11 " CONFIG_GRUSBDC_I11 + int $w.config.f 19 17 "Buffer size for IN endpoint 12 " CONFIG_GRUSBDC_I12 + int $w.config.f 19 18 "Buffer size for IN endpoint 13 " CONFIG_GRUSBDC_I13 + int $w.config.f 19 19 "Buffer size for IN endpoint 14 " CONFIG_GRUSBDC_I14 + int $w.config.f 19 20 "Buffer size for IN endpoint 15 " CONFIG_GRUSBDC_I15 + int $w.config.f 19 21 "Buffer size for OUT endpoint 0" CONFIG_GRUSBDC_O0 + int $w.config.f 19 22 "Buffer size for OUT endpoint 1" CONFIG_GRUSBDC_O1 + int $w.config.f 19 23 "Buffer size for OUT endpoint 2" CONFIG_GRUSBDC_O2 + int $w.config.f 19 24 "Buffer size for OUT endpoint 3" CONFIG_GRUSBDC_O3 + int $w.config.f 19 25 "Buffer size for OUT endpoint 4" CONFIG_GRUSBDC_O4 + int $w.config.f 19 26 "Buffer size for OUT endpoint 5" CONFIG_GRUSBDC_O5 + int $w.config.f 19 27 "Buffer size for OUT endpoint 6" CONFIG_GRUSBDC_O6 + int $w.config.f 19 28 "Buffer size for OUT endpoint 7" CONFIG_GRUSBDC_O7 + int $w.config.f 19 29 "Buffer size for OUT endpoint 8" CONFIG_GRUSBDC_O8 + int $w.config.f 19 30 "Buffer size for OUT endpoint 9" CONFIG_GRUSBDC_O9 + int $w.config.f 19 31 "Buffer size for OUT endpoint 10" CONFIG_GRUSBDC_O10 + int $w.config.f 19 32 "Buffer size for OUT endpoint 11" CONFIG_GRUSBDC_O11 + int $w.config.f 19 33 "Buffer size for OUT endpoint 12" CONFIG_GRUSBDC_O12 + int $w.config.f 19 34 "Buffer size for OUT endpoint 13" CONFIG_GRUSBDC_O13 + int $w.config.f 19 35 "Buffer size for OUT endpoint 14" CONFIG_GRUSBDC_O14 + int $w.config.f 19 36 "Buffer size for OUT endpoint 15" CONFIG_GRUSBDC_O15 @@ -3860,268 +4223,96 @@ proc menu19 {w title} { } proc update_menu19 {} { - global CONFIG_CAN_ENABLE - global CONFIG_CAN_NUM - if {($CONFIG_CAN_ENABLE == 1)} then {.menu19.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x1.l configure -state normal; } else {.menu19.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x1.l configure -state disabled} - global CONFIG_CANIO - if {($CONFIG_CAN_ENABLE == 1)} then {.menu19.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x2.l configure -state normal; } else {.menu19.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x2.l configure -state disabled} - global CONFIG_CANIRQ - if {($CONFIG_CAN_ENABLE == 1)} then {.menu19.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x3.l configure -state normal; } else {.menu19.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x3.l configure -state disabled} - global CONFIG_CANSEPIRQ - if {($CONFIG_CAN_ENABLE == 1)} then { - configure_entry .menu19.config.f.x4 normal {n l y}} else {configure_entry .menu19.config.f.x4 disabled {y n l}} - global CONFIG_CAN_SYNCRST - if {($CONFIG_CAN_ENABLE == 1)} then { - configure_entry .menu19.config.f.x5 normal {n l y}} else {configure_entry .menu19.config.f.x5 disabled {y n l}} - global CONFIG_CAN_FT - if {($CONFIG_CAN_ENABLE == 1)} then { - configure_entry .menu19.config.f.x6 normal {n l y}} else {configure_entry .menu19.config.f.x6 disabled {y n l}} -} - - -proc update_define_menu19 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_CAN_ENABLE - global CONFIG_CAN_NUM - if {($CONFIG_CAN_ENABLE == 1)} then {validate_int CONFIG_CAN_NUM "$CONFIG_CAN_NUM" 1} - global CONFIG_CANIO - if {($CONFIG_CAN_ENABLE == 1)} then {validate_hex CONFIG_CANIO "$CONFIG_CANIO" C00} - global CONFIG_CANIRQ - if {($CONFIG_CAN_ENABLE == 1)} then {validate_int CONFIG_CANIRQ "$CONFIG_CANIRQ" 13} - global CONFIG_CANSEPIRQ - if {($CONFIG_CAN_ENABLE == 1)} then { - set CONFIG_CANSEPIRQ [expr $CONFIG_CANSEPIRQ&15]} else {set CONFIG_CANSEPIRQ [expr $CONFIG_CANSEPIRQ|16]} - global CONFIG_CAN_SYNCRST - if {($CONFIG_CAN_ENABLE == 1)} then { - set CONFIG_CAN_SYNCRST [expr $CONFIG_CAN_SYNCRST&15]} else {set CONFIG_CAN_SYNCRST [expr $CONFIG_CAN_SYNCRST|16]} - global CONFIG_CAN_FT - if {($CONFIG_CAN_ENABLE == 1)} then { - set CONFIG_CAN_FT [expr $CONFIG_CAN_FT&15]} else {set CONFIG_CAN_FT [expr $CONFIG_CAN_FT|16]} -} - - -proc menu20 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 20} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 20]] - message $w.m -width 400 -aspect 300 -text \ - "USB 2.0 Device Controller " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "USB 2.0 Device Controller " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu21 .menu21 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 20 0 "Gaisler Research USB 2.0 Device Controller " CONFIG_GRUSBDC_ENABLE - bool $w.config.f 20 1 "AHB Master Interface" CONFIG_GRUSBDC_AIFACE - global tmpvar_31 - minimenu $w.config.f 20 2 "USB Transceiver Interface" tmpvar_31 CONFIG_GRUSBDC_ULPI - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"USB Transceiver Interface\"" - $w.config.f.x2.x.menu add radiobutton -label "ULPI" -variable tmpvar_31 -value "ULPI" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "UTMI/UTMI+8-bit" -variable tmpvar_31 -value "UTMI/UTMI+8-bit" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "UTMI/UTMI+16-bit" -variable tmpvar_31 -value "UTMI/UTMI+16-bit" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 3 - int $w.config.f 20 3 "Number of IN endpoints " CONFIG_GRUSBDC_NEPI - int $w.config.f 20 4 "Number of OUT endpoints" CONFIG_GRUSBDC_NEPO - int $w.config.f 20 5 "Buffer size for IN endpoint 0 " CONFIG_GRUSBDC_I0 - int $w.config.f 20 6 "Buffer size for IN endpoint 1 " CONFIG_GRUSBDC_I1 - int $w.config.f 20 7 "Buffer size for IN endpoint 2 " CONFIG_GRUSBDC_I2 - int $w.config.f 20 8 "Buffer size for IN endpoint 3 " CONFIG_GRUSBDC_I3 - int $w.config.f 20 9 "Buffer size for IN endpoint 4 " CONFIG_GRUSBDC_I4 - int $w.config.f 20 10 "Buffer size for IN endpoint 5 " CONFIG_GRUSBDC_I5 - int $w.config.f 20 11 "Buffer size for IN endpoint 6 " CONFIG_GRUSBDC_I6 - int $w.config.f 20 12 "Buffer size for IN endpoint 7 " CONFIG_GRUSBDC_I7 - int $w.config.f 20 13 "Buffer size for IN endpoint 8 " CONFIG_GRUSBDC_I8 - int $w.config.f 20 14 "Buffer size for IN endpoint 9 " CONFIG_GRUSBDC_I9 - int $w.config.f 20 15 "Buffer size for IN endpoint 10 " CONFIG_GRUSBDC_I10 - int $w.config.f 20 16 "Buffer size for IN endpoint 11 " CONFIG_GRUSBDC_I11 - int $w.config.f 20 17 "Buffer size for IN endpoint 12 " CONFIG_GRUSBDC_I12 - int $w.config.f 20 18 "Buffer size for IN endpoint 13 " CONFIG_GRUSBDC_I13 - int $w.config.f 20 19 "Buffer size for IN endpoint 14 " CONFIG_GRUSBDC_I14 - int $w.config.f 20 20 "Buffer size for IN endpoint 15 " CONFIG_GRUSBDC_I15 - int $w.config.f 20 21 "Buffer size for OUT endpoint 0" CONFIG_GRUSBDC_O0 - int $w.config.f 20 22 "Buffer size for OUT endpoint 1" CONFIG_GRUSBDC_O1 - int $w.config.f 20 23 "Buffer size for OUT endpoint 2" CONFIG_GRUSBDC_O2 - int $w.config.f 20 24 "Buffer size for OUT endpoint 3" CONFIG_GRUSBDC_O3 - int $w.config.f 20 25 "Buffer size for OUT endpoint 4" CONFIG_GRUSBDC_O4 - int $w.config.f 20 26 "Buffer size for OUT endpoint 5" CONFIG_GRUSBDC_O5 - int $w.config.f 20 27 "Buffer size for OUT endpoint 6" CONFIG_GRUSBDC_O6 - int $w.config.f 20 28 "Buffer size for OUT endpoint 7" CONFIG_GRUSBDC_O7 - int $w.config.f 20 29 "Buffer size for OUT endpoint 8" CONFIG_GRUSBDC_O8 - int $w.config.f 20 30 "Buffer size for OUT endpoint 9" CONFIG_GRUSBDC_O9 - int $w.config.f 20 31 "Buffer size for OUT endpoint 10" CONFIG_GRUSBDC_O10 - int $w.config.f 20 32 "Buffer size for OUT endpoint 11" CONFIG_GRUSBDC_O11 - int $w.config.f 20 33 "Buffer size for OUT endpoint 12" CONFIG_GRUSBDC_O12 - int $w.config.f 20 34 "Buffer size for OUT endpoint 13" CONFIG_GRUSBDC_O13 - int $w.config.f 20 35 "Buffer size for OUT endpoint 14" CONFIG_GRUSBDC_O14 - int $w.config.f 20 36 "Buffer size for OUT endpoint 15" CONFIG_GRUSBDC_O15 - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu20 {} { global CONFIG_GRUSBDC_ENABLE global CONFIG_GRUSBDC_AIFACE if {($CONFIG_GRUSBDC_ENABLE == 1)} then { - configure_entry .menu20.config.f.x1 normal {n l y}} else {configure_entry .menu20.config.f.x1 disabled {y n l}} - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {configure_entry .menu20.config.f.x2 normal {x l}} else {configure_entry .menu20.config.f.x2 disabled {x l}} + configure_entry .menu19.config.f.x1 normal {n l y}} else {configure_entry .menu19.config.f.x1 disabled {y n l}} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {configure_entry .menu19.config.f.x2 normal {x l}} else {configure_entry .menu19.config.f.x2 disabled {x l}} global CONFIG_GRUSBDC_NEPI - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x3.l configure -state normal; } else {.menu20.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x3.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x3.l configure -state normal; } else {.menu19.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x3.l configure -state disabled} global CONFIG_GRUSBDC_NEPO - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x4.l configure -state normal; } else {.menu20.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x4.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x4.l configure -state normal; } else {.menu19.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x4.l configure -state disabled} global CONFIG_GRUSBDC_I0 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x5.l configure -state normal; } else {.menu20.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x5.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x5.l configure -state normal; } else {.menu19.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x5.l configure -state disabled} global CONFIG_GRUSBDC_I1 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x6.l configure -state normal; } else {.menu20.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x6.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x6.l configure -state normal; } else {.menu19.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x6.l configure -state disabled} global CONFIG_GRUSBDC_I2 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x7.l configure -state normal; } else {.menu20.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x7.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x7.l configure -state normal; } else {.menu19.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x7.l configure -state disabled} global CONFIG_GRUSBDC_I3 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x8.l configure -state normal; } else {.menu20.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x8.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x8.l configure -state normal; } else {.menu19.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x8.l configure -state disabled} global CONFIG_GRUSBDC_I4 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x9.l configure -state normal; } else {.menu20.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x9.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x9.l configure -state normal; } else {.menu19.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x9.l configure -state disabled} global CONFIG_GRUSBDC_I5 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x10.l configure -state normal; } else {.menu20.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x10.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x10.l configure -state normal; } else {.menu19.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x10.l configure -state disabled} global CONFIG_GRUSBDC_I6 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x11.l configure -state normal; } else {.menu20.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x11.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x11.l configure -state normal; } else {.menu19.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x11.l configure -state disabled} global CONFIG_GRUSBDC_I7 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x12.l configure -state normal; } else {.menu20.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x12.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x12.l configure -state normal; } else {.menu19.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x12.l configure -state disabled} global CONFIG_GRUSBDC_I8 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x13.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x13.l configure -state normal; } else {.menu20.config.f.x13.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x13.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x13.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x13.l configure -state normal; } else {.menu19.config.f.x13.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x13.l configure -state disabled} global CONFIG_GRUSBDC_I9 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x14.l configure -state normal; } else {.menu20.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x14.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x14.l configure -state normal; } else {.menu19.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x14.l configure -state disabled} global CONFIG_GRUSBDC_I10 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x15.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x15.l configure -state normal; } else {.menu20.config.f.x15.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x15.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x15.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x15.l configure -state normal; } else {.menu19.config.f.x15.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x15.l configure -state disabled} global CONFIG_GRUSBDC_I11 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x16.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x16.l configure -state normal; } else {.menu20.config.f.x16.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x16.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x16.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x16.l configure -state normal; } else {.menu19.config.f.x16.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x16.l configure -state disabled} global CONFIG_GRUSBDC_I12 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x17.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x17.l configure -state normal; } else {.menu20.config.f.x17.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x17.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x17.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x17.l configure -state normal; } else {.menu19.config.f.x17.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x17.l configure -state disabled} global CONFIG_GRUSBDC_I13 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x18.l configure -state normal; } else {.menu20.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x18.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x18.l configure -state normal; } else {.menu19.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x18.l configure -state disabled} global CONFIG_GRUSBDC_I14 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x19.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x19.l configure -state normal; } else {.menu20.config.f.x19.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x19.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x19.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x19.l configure -state normal; } else {.menu19.config.f.x19.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x19.l configure -state disabled} global CONFIG_GRUSBDC_I15 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x20.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x20.l configure -state normal; } else {.menu20.config.f.x20.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x20.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x20.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x20.l configure -state normal; } else {.menu19.config.f.x20.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x20.l configure -state disabled} global CONFIG_GRUSBDC_O0 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x21.l configure -state normal; } else {.menu20.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x21.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x21.l configure -state normal; } else {.menu19.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x21.l configure -state disabled} global CONFIG_GRUSBDC_O1 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x22.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x22.l configure -state normal; } else {.menu20.config.f.x22.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x22.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x22.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x22.l configure -state normal; } else {.menu19.config.f.x22.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x22.l configure -state disabled} global CONFIG_GRUSBDC_O2 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x23.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x23.l configure -state normal; } else {.menu20.config.f.x23.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x23.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x23.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x23.l configure -state normal; } else {.menu19.config.f.x23.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x23.l configure -state disabled} global CONFIG_GRUSBDC_O3 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x24.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x24.l configure -state normal; } else {.menu20.config.f.x24.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x24.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x24.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x24.l configure -state normal; } else {.menu19.config.f.x24.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x24.l configure -state disabled} global CONFIG_GRUSBDC_O4 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x25.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x25.l configure -state normal; } else {.menu20.config.f.x25.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x25.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x25.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x25.l configure -state normal; } else {.menu19.config.f.x25.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x25.l configure -state disabled} global CONFIG_GRUSBDC_O5 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x26.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x26.l configure -state normal; } else {.menu20.config.f.x26.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x26.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x26.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x26.l configure -state normal; } else {.menu19.config.f.x26.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x26.l configure -state disabled} global CONFIG_GRUSBDC_O6 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x27.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x27.l configure -state normal; } else {.menu20.config.f.x27.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x27.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x27.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x27.l configure -state normal; } else {.menu19.config.f.x27.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x27.l configure -state disabled} global CONFIG_GRUSBDC_O7 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x28.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x28.l configure -state normal; } else {.menu20.config.f.x28.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x28.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x28.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x28.l configure -state normal; } else {.menu19.config.f.x28.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x28.l configure -state disabled} global CONFIG_GRUSBDC_O8 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x29.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x29.l configure -state normal; } else {.menu20.config.f.x29.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x29.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x29.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x29.l configure -state normal; } else {.menu19.config.f.x29.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x29.l configure -state disabled} global CONFIG_GRUSBDC_O9 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x30.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x30.l configure -state normal; } else {.menu20.config.f.x30.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x30.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x30.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x30.l configure -state normal; } else {.menu19.config.f.x30.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x30.l configure -state disabled} global CONFIG_GRUSBDC_O10 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x31.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x31.l configure -state normal; } else {.menu20.config.f.x31.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x31.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x31.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x31.l configure -state normal; } else {.menu19.config.f.x31.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x31.l configure -state disabled} global CONFIG_GRUSBDC_O11 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x32.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x32.l configure -state normal; } else {.menu20.config.f.x32.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x32.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x32.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x32.l configure -state normal; } else {.menu19.config.f.x32.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x32.l configure -state disabled} global CONFIG_GRUSBDC_O12 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x33.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x33.l configure -state normal; } else {.menu20.config.f.x33.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x33.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x33.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x33.l configure -state normal; } else {.menu19.config.f.x33.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x33.l configure -state disabled} global CONFIG_GRUSBDC_O13 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x34.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x34.l configure -state normal; } else {.menu20.config.f.x34.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x34.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x34.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x34.l configure -state normal; } else {.menu19.config.f.x34.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x34.l configure -state disabled} global CONFIG_GRUSBDC_O14 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x35.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x35.l configure -state normal; } else {.menu20.config.f.x35.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x35.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x35.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x35.l configure -state normal; } else {.menu19.config.f.x35.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x35.l configure -state disabled} global CONFIG_GRUSBDC_O15 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu20.config.f.x36.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x36.l configure -state normal; } else {.menu20.config.f.x36.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x36.l configure -state disabled} + if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu19.config.f.x36.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x36.l configure -state normal; } else {.menu19.config.f.x36.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x36.l configure -state disabled} } -proc update_define_menu20 {} { +proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_GRUSBDC_ENABLE global CONFIG_GRUSBDC_AIFACE if {($CONFIG_GRUSBDC_ENABLE == 1)} then { set CONFIG_GRUSBDC_AIFACE [expr $CONFIG_GRUSBDC_AIFACE&15]} else {set CONFIG_GRUSBDC_AIFACE [expr $CONFIG_GRUSBDC_AIFACE|16]} - global tmpvar_31 + global tmpvar_33 global CONFIG_GRUSBDC_ULPI - if {$tmpvar_31 == "ULPI"} then {set CONFIG_GRUSBDC_ULPI 1} else {set CONFIG_GRUSBDC_ULPI 0} + if {$tmpvar_33 == "ULPI"} then {set CONFIG_GRUSBDC_ULPI 1} else {set CONFIG_GRUSBDC_ULPI 0} global CONFIG_GRUSBDC_UTMI8 - if {$tmpvar_31 == "UTMI/UTMI+8-bit"} then {set CONFIG_GRUSBDC_UTMI8 1} else {set CONFIG_GRUSBDC_UTMI8 0} + if {$tmpvar_33 == "UTMI/UTMI+8-bit"} then {set CONFIG_GRUSBDC_UTMI8 1} else {set CONFIG_GRUSBDC_UTMI8 0} global CONFIG_GRUSBDC_UTMI16 - if {$tmpvar_31 == "UTMI/UTMI+16-bit"} then {set CONFIG_GRUSBDC_UTMI16 1} else {set CONFIG_GRUSBDC_UTMI16 0} + if {$tmpvar_33 == "UTMI/UTMI+16-bit"} then {set CONFIG_GRUSBDC_UTMI16 1} else {set CONFIG_GRUSBDC_UTMI16 0} global CONFIG_GRUSBDC_NEPI if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_NEPI "$CONFIG_GRUSBDC_NEPI" 1} global CONFIG_GRUSBDC_NEPO @@ -4193,30 +4384,30 @@ proc update_define_menu20 {} { } -proc menu21 {w title} { +proc menu20 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 21} + catch {destroy $w; unregister_active 20} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 21]] + set active_menus [lsort -integer [linsert $active_menus end 20]] message $w.m -width 400 -aspect 300 -text \ "UART, timer, I/O port and interrupt controller" -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "UART, timer, I/O port and interrupt controller" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu22 .menu22 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu21 .menu21 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4244,42 +4435,42 @@ proc menu21 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 21 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_32 - minimenu $w.config.f 21 1 "UART1 FIFO depth" tmpvar_32 CONFIG_UA1_FIFO1 + bool $w.config.f 20 0 "Enable console UART " CONFIG_UART1_ENABLE + global tmpvar_34 + minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_34 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_32 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_32 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_34 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_34 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_34 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_34 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_34 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_34 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 - bool $w.config.f 21 2 "Enable secondary UART " CONFIG_UART2_ENABLE - global tmpvar_33 - minimenu $w.config.f 21 3 "UART2 FIFO depth" tmpvar_33 CONFIG_UA2_FIFO1 + bool $w.config.f 20 2 "Enable secondary UART " CONFIG_UART2_ENABLE + global tmpvar_35 + minimenu $w.config.f 20 3 "UART2 FIFO depth" tmpvar_35 CONFIG_UA2_FIFO1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"UART2 FIFO depth\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_33 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_33 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_33 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_35 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_35 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_35 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_35 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_35 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_35 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 6 - bool $w.config.f 21 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE - bool $w.config.f 21 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC - int $w.config.f 21 6 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC - bool $w.config.f 21 7 "Enable Timer Unit " CONFIG_GPT_ENABLE - int $w.config.f 21 8 "Number of timers (1 - 7) " CONFIG_GPT_NTIM - int $w.config.f 21 9 "Scaler width (2 - 16) " CONFIG_GPT_SW - int $w.config.f 21 10 "Timer width (2 - 32) " CONFIG_GPT_TW - int $w.config.f 21 11 "Timer unit interrupt " CONFIG_GPT_IRQ - bool $w.config.f 21 12 "Separate interrupts " CONFIG_GPT_SEPIRQ - bool $w.config.f 21 13 "Watchdog enable " CONFIG_GPT_WDOGEN - hex $w.config.f 21 14 "Initial watchdog time-out value " CONFIG_GPT_WDOG - bool $w.config.f 21 15 "Enable generic GPIO port " CONFIG_GRGPIO_ENABLE - int $w.config.f 21 16 "GPIO width " CONFIG_GRGPIO_WIDTH - hex $w.config.f 21 17 "GPIO interrupt mask " CONFIG_GRGPIO_IMASK + bool $w.config.f 20 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE + bool $w.config.f 20 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC + int $w.config.f 20 6 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC + bool $w.config.f 20 7 "Enable Timer Unit " CONFIG_GPT_ENABLE + int $w.config.f 20 8 "Number of timers (1 - 7) " CONFIG_GPT_NTIM + int $w.config.f 20 9 "Scaler width (2 - 16) " CONFIG_GPT_SW + int $w.config.f 20 10 "Timer width (2 - 32) " CONFIG_GPT_TW + int $w.config.f 20 11 "Timer unit interrupt " CONFIG_GPT_IRQ + bool $w.config.f 20 12 "Separate interrupts " CONFIG_GPT_SEPIRQ + bool $w.config.f 20 13 "Watchdog enable " CONFIG_GPT_WDOGEN + hex $w.config.f 20 14 "Initial watchdog time-out value " CONFIG_GPT_WDOG + bool $w.config.f 20 15 "Enable generic GPIO port " CONFIG_GRGPIO_ENABLE + int $w.config.f 20 16 "GPIO width " CONFIG_GRGPIO_WIDTH + hex $w.config.f 20 17 "GPIO interrupt mask " CONFIG_GRGPIO_IMASK @@ -4316,78 +4507,78 @@ proc menu21 {w title} { } } -proc update_menu21 {} { +proc update_menu20 {} { global CONFIG_UART1_ENABLE - if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu21.config.f.x1 normal {x l}} else {configure_entry .menu21.config.f.x1 disabled {x l}} + if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu20.config.f.x1 normal {x l}} else {configure_entry .menu20.config.f.x1 disabled {x l}} global CONFIG_DSU_UART global CONFIG_UART2_ENABLE if {($CONFIG_DSU_UART != 1)} then { - configure_entry .menu21.config.f.x2 normal {n l y}} else {configure_entry .menu21.config.f.x2 disabled {y n l}} - if {($CONFIG_DSU_UART != 1) && ($CONFIG_UART2_ENABLE == 1)} then {configure_entry .menu21.config.f.x3 normal {x l}} else {configure_entry .menu21.config.f.x3 disabled {x l}} + configure_entry .menu20.config.f.x2 normal {n l y}} else {configure_entry .menu20.config.f.x2 disabled {y n l}} + if {($CONFIG_DSU_UART != 1) && ($CONFIG_UART2_ENABLE == 1)} then {configure_entry .menu20.config.f.x3 normal {x l}} else {configure_entry .menu20.config.f.x3 disabled {x l}} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { - configure_entry .menu21.config.f.x5 normal {n l y}} else {configure_entry .menu21.config.f.x5 disabled {y n l}} + configure_entry .menu20.config.f.x5 normal {n l y}} else {configure_entry .menu20.config.f.x5 disabled {y n l}} global CONFIG_IRQ3_NSEC - if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 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} + if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {.menu20.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x6.l configure -state normal; } else {.menu20.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x6.l configure -state disabled} global CONFIG_GPT_ENABLE global CONFIG_GPT_NTIM - if {($CONFIG_GPT_ENABLE == 1)} then {.menu21.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x8.l configure -state normal; } else {.menu21.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x8.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x8.l configure -state normal; } else {.menu20.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x8.l configure -state disabled} global CONFIG_GPT_SW - if {($CONFIG_GPT_ENABLE == 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} + if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x9.l configure -state normal; } else {.menu20.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x9.l configure -state disabled} global CONFIG_GPT_TW - if {($CONFIG_GPT_ENABLE == 1)} then {.menu21.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x10.l configure -state normal; } else {.menu21.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x10.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x10.l configure -state normal; } else {.menu20.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x10.l configure -state disabled} global CONFIG_GPT_IRQ - if {($CONFIG_GPT_ENABLE == 1)} then {.menu21.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x11.l configure -state normal; } else {.menu21.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x11.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x11.l configure -state normal; } else {.menu20.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x11.l configure -state disabled} global CONFIG_GPT_SEPIRQ if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu21.config.f.x12 normal {n l y}} else {configure_entry .menu21.config.f.x12 disabled {y n l}} + configure_entry .menu20.config.f.x12 normal {n l y}} else {configure_entry .menu20.config.f.x12 disabled {y n l}} global CONFIG_GPT_WDOGEN if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu21.config.f.x13 normal {n l y}} else {configure_entry .menu21.config.f.x13 disabled {y n l}} + configure_entry .menu20.config.f.x13 normal {n l y}} else {configure_entry .menu20.config.f.x13 disabled {y n l}} global CONFIG_GPT_WDOG - if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu21.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x14.l configure -state normal; } else {.menu21.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x14.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu20.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x14.l configure -state normal; } else {.menu20.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x14.l configure -state disabled} global CONFIG_GRGPIO_ENABLE global CONFIG_GRGPIO_WIDTH - if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu21.config.f.x16.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x16.l configure -state normal; } else {.menu21.config.f.x16.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x16.l configure -state disabled} + if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu20.config.f.x16.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x16.l configure -state normal; } else {.menu20.config.f.x16.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x16.l configure -state disabled} global CONFIG_GRGPIO_IMASK - if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu21.config.f.x17.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x17.l configure -state normal; } else {.menu21.config.f.x17.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x17.l configure -state disabled} + if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu20.config.f.x17.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x17.l configure -state normal; } else {.menu20.config.f.x17.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x17.l configure -state disabled} } -proc update_define_menu21 {} { +proc update_define_menu20 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_32 + global tmpvar_34 global CONFIG_UA1_FIFO1 - if {$tmpvar_32 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_34 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_32 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_34 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_32 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_34 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_32 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_34 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_32 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_34 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_32 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_34 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_DSU_UART global CONFIG_UART2_ENABLE if {($CONFIG_DSU_UART != 1)} then { set CONFIG_UART2_ENABLE [expr $CONFIG_UART2_ENABLE&15]} else {set CONFIG_UART2_ENABLE [expr $CONFIG_UART2_ENABLE|16]} - global tmpvar_33 + global tmpvar_35 global CONFIG_UA2_FIFO1 - if {$tmpvar_33 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} + if {$tmpvar_35 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} global CONFIG_UA2_FIFO2 - if {$tmpvar_33 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} + if {$tmpvar_35 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} global CONFIG_UA2_FIFO4 - if {$tmpvar_33 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} + if {$tmpvar_35 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} global CONFIG_UA2_FIFO8 - if {$tmpvar_33 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} + if {$tmpvar_35 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} global CONFIG_UA2_FIFO16 - if {$tmpvar_33 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} + if {$tmpvar_35 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} global CONFIG_UA2_FIFO32 - if {$tmpvar_33 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} + if {$tmpvar_35 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4419,30 +4610,30 @@ proc update_define_menu21 {} { } -proc menu22 {w title} { +proc menu21 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 22} + catch {destroy $w; unregister_active 21} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 22]] + set active_menus [lsort -integer [linsert $active_menus end 21]] message $w.m -width 400 -aspect 300 -text \ "Spacewire " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "Spacewire " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu23 .menu23 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu22 .menu22 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4470,59 +4661,59 @@ proc menu22 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 22 0 "Enable Spacewire links " CONFIG_SPW_ENABLE - int $w.config.f 22 1 "Number of links (1 - 3)" CONFIG_SPW_NUM - global tmpvar_34 - minimenu $w.config.f 22 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_34 CONFIG_SPW_AHBFIFO4 + bool $w.config.f 21 0 "Enable Spacewire links " CONFIG_SPW_ENABLE + int $w.config.f 21 1 "Number of links (1 - 3)" CONFIG_SPW_NUM + global tmpvar_36 + minimenu $w.config.f 21 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_36 CONFIG_SPW_AHBFIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB RX/TX FIFO size (32-bit words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_34 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_34 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_34 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_34 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_36 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_36 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_36 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_36 -value "32" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_35 - minimenu $w.config.f 22 3 "Receiver FIFO size (bytes) " tmpvar_35 CONFIG_SPW_RXFIFO16 + global tmpvar_37 + minimenu $w.config.f 21 3 "Receiver FIFO size (bytes) " tmpvar_37 CONFIG_SPW_RXFIFO16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Receiver FIFO size (bytes) \"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_35 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_35 -value "32" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_35 -value "64" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_37 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_37 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_37 -value "64" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 - bool $w.config.f 22 4 "Enable RMAP protocol " CONFIG_SPW_RMAP - global tmpvar_36 - minimenu $w.config.f 22 5 "RMAP buffer size (bytes) " tmpvar_36 CONFIG_SPW_RMAPBUF2 + bool $w.config.f 21 4 "Enable RMAP protocol " CONFIG_SPW_RMAP + global tmpvar_38 + minimenu $w.config.f 21 5 "RMAP buffer size (bytes) " tmpvar_38 CONFIG_SPW_RMAPBUF2 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"RMAP buffer size (bytes) \"" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_36 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_36 -value "128" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_36 -value "192" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_36 -value "256" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_38 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_38 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_38 -value "192" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_38 -value "256" -command "update_active" menusplit $w $w.config.f.x5.x.menu 4 - bool $w.config.f 22 6 "Enable RMAP CRC check " CONFIG_SPW_RMAPCRC - bool $w.config.f 22 7 "Enable Rx unaligned transfers " CONFIG_SPW_RXUNAL - bool $w.config.f 22 8 "Spacewire FIFO protection " CONFIG_SPW_FT - bool $w.config.f 22 9 "Use GRSPWC netlist " CONFIG_SPW_NETLIST - int $w.config.f 22 10 "Number of ports (1 - 2)" CONFIG_SPW_PORTS - global tmpvar_37 - minimenu $w.config.f 22 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_37 CONFIG_SPW_GRSPW1 + bool $w.config.f 21 6 "Enable RMAP CRC check " CONFIG_SPW_RMAPCRC + bool $w.config.f 21 7 "Enable Rx unaligned transfers " CONFIG_SPW_RXUNAL + bool $w.config.f 21 8 "Spacewire FIFO protection " CONFIG_SPW_FT + bool $w.config.f 21 9 "Use GRSPWC netlist " CONFIG_SPW_NETLIST + int $w.config.f 21 10 "Number of ports (1 - 2)" CONFIG_SPW_PORTS + global tmpvar_39 + minimenu $w.config.f 21 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_39 CONFIG_SPW_GRSPW1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Select GRSPW core (GRSPW1/GRSPW2) \"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_37 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_37 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_39 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_39 -value "2" -command "update_active" menusplit $w $w.config.f.x11.x.menu 2 - int $w.config.f 22 12 "Number of DMA channels (1 - 4)" CONFIG_SPW_DMACHAN - bool $w.config.f 22 13 "Receiver and transmitter uses same clock " CONFIG_SPW_RTSAME - global tmpvar_38 - minimenu $w.config.f 22 14 "Select receiver clock type " tmpvar_38 CONFIG_SPW_RX_SDR + int $w.config.f 21 12 "Number of DMA channels (1 - 4)" CONFIG_SPW_DMACHAN + bool $w.config.f 21 13 "Receiver and transmitter uses same clock " CONFIG_SPW_RTSAME + global tmpvar_40 + minimenu $w.config.f 21 14 "Select receiver clock type " tmpvar_40 CONFIG_SPW_RX_SDR menu $w.config.f.x14.x.menu -tearoffcommand "menutitle \"Select receiver clock type \"" - $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_38 -value "SDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_38 -value "DDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_38 -value "Xor" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_38 -value "Aeroflex" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_40 -value "SDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_40 -value "DDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_40 -value "Xor" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_40 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x14.x.menu 4 - global tmpvar_39 - minimenu $w.config.f 22 15 "Select transmitter clock type " tmpvar_39 CONFIG_SPW_TX_SDR + global tmpvar_41 + minimenu $w.config.f 21 15 "Select transmitter clock type " tmpvar_41 CONFIG_SPW_TX_SDR menu $w.config.f.x15.x.menu -tearoffcommand "menutitle \"Select transmitter clock type \"" - $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_39 -value "SDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_39 -value "DDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_39 -value "Aeroflex" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_41 -value "SDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_41 -value "DDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_41 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x15.x.menu 3 @@ -4560,76 +4751,76 @@ proc menu22 {w title} { } } -proc update_menu22 {} { +proc update_menu21 {} { global CONFIG_SPW_ENABLE global CONFIG_SPW_NUM - 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} - 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}} - 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}} + if {($CONFIG_SPW_ENABLE == 1)} then {.menu21.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x1.l configure -state normal; } else {.menu21.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x1.l configure -state disabled} + if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu21.config.f.x2 normal {x l}} else {configure_entry .menu21.config.f.x2 disabled {x l}} + if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu21.config.f.x3 normal {x l}} else {configure_entry .menu21.config.f.x3 disabled {x l}} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then { - configure_entry .menu22.config.f.x4 normal {n l y}} else {configure_entry .menu22.config.f.x4 disabled {y n l}} - 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}} + configure_entry .menu21.config.f.x4 normal {n l y}} else {configure_entry .menu21.config.f.x4 disabled {y n l}} + if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then {configure_entry .menu21.config.f.x5 normal {x l}} else {configure_entry .menu21.config.f.x5 disabled {x l}} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then { - configure_entry .menu22.config.f.x6 normal {n l y}} else {configure_entry .menu22.config.f.x6 disabled {y n l}} + configure_entry .menu21.config.f.x6 normal {n l y}} else {configure_entry .menu21.config.f.x6 disabled {y n l}} global CONFIG_SPW_RXUNAL if {($CONFIG_SPW_ENABLE == 1)} then { - configure_entry .menu22.config.f.x7 normal {n l y}} else {configure_entry .menu22.config.f.x7 disabled {y n l}} + configure_entry .menu21.config.f.x7 normal {n l y}} else {configure_entry .menu21.config.f.x7 disabled {y n l}} global CONFIG_SPW_FT if {($CONFIG_SPW_ENABLE == 1)} then { - configure_entry .menu22.config.f.x8 normal {n l y}} else {configure_entry .menu22.config.f.x8 disabled {y n l}} + configure_entry .menu21.config.f.x8 normal {n l y}} else {configure_entry .menu21.config.f.x8 disabled {y n l}} global CONFIG_SPW_NETLIST if {($CONFIG_SPW_ENABLE == 1)} then { - configure_entry .menu22.config.f.x9 normal {n l y}} else {configure_entry .menu22.config.f.x9 disabled {y n l}} + configure_entry .menu21.config.f.x9 normal {n l y}} else {configure_entry .menu21.config.f.x9 disabled {y n l}} global CONFIG_SPW_PORTS - if {($CONFIG_SPW_ENABLE == 1)} then {.menu22.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x10.l configure -state normal; } else {.menu22.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x10.l configure -state disabled} - if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu22.config.f.x11 normal {x l}} else {configure_entry .menu22.config.f.x11 disabled {x l}} + if {($CONFIG_SPW_ENABLE == 1)} then {.menu21.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x10.l configure -state normal; } else {.menu21.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x10.l configure -state disabled} + if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu21.config.f.x11 normal {x l}} else {configure_entry .menu21.config.f.x11 disabled {x l}} global CONFIG_SPW_GRSPW2 global CONFIG_SPW_DMACHAN - if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {.menu22.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x12.l configure -state normal; } else {.menu22.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x12.l configure -state disabled} + if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {.menu21.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x12.l configure -state normal; } else {.menu21.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x12.l configure -state disabled} global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - configure_entry .menu22.config.f.x13 normal {n l y}} else {configure_entry .menu22.config.f.x13 disabled {y n l}} - if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {configure_entry .menu22.config.f.x14 normal {x l}} else {configure_entry .menu22.config.f.x14 disabled {x l}} - if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {configure_entry .menu22.config.f.x15 normal {x l}} else {configure_entry .menu22.config.f.x15 disabled {x l}} + configure_entry .menu21.config.f.x13 normal {n l y}} else {configure_entry .menu21.config.f.x13 disabled {y n l}} + if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {configure_entry .menu21.config.f.x14 normal {x l}} else {configure_entry .menu21.config.f.x14 disabled {x l}} + if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {configure_entry .menu21.config.f.x15 normal {x l}} else {configure_entry .menu21.config.f.x15 disabled {x l}} } -proc update_define_menu22 {} { +proc update_define_menu21 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_SPW_ENABLE global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_NUM "$CONFIG_SPW_NUM" 1} - global tmpvar_34 + global tmpvar_36 global CONFIG_SPW_AHBFIFO4 - if {$tmpvar_34 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} + if {$tmpvar_36 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} global CONFIG_SPW_AHBFIFO8 - if {$tmpvar_34 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} + if {$tmpvar_36 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} global CONFIG_SPW_AHBFIFO16 - if {$tmpvar_34 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} + if {$tmpvar_36 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} global CONFIG_SPW_AHBFIFO32 - if {$tmpvar_34 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} - global tmpvar_35 + if {$tmpvar_36 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} + global tmpvar_37 global CONFIG_SPW_RXFIFO16 - if {$tmpvar_35 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} + if {$tmpvar_37 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} global CONFIG_SPW_RXFIFO32 - if {$tmpvar_35 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} + if {$tmpvar_37 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} global CONFIG_SPW_RXFIFO64 - if {$tmpvar_35 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} + if {$tmpvar_37 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP&15]} else {set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP|16]} - global tmpvar_36 + global tmpvar_38 global CONFIG_SPW_RMAPBUF2 - if {$tmpvar_36 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} + if {$tmpvar_38 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} global CONFIG_SPW_RMAPBUF4 - if {$tmpvar_36 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} + if {$tmpvar_38 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} global CONFIG_SPW_RMAPBUF6 - if {$tmpvar_36 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} + if {$tmpvar_38 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} global CONFIG_SPW_RMAPBUF8 - if {$tmpvar_36 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} + if {$tmpvar_38 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC&15]} else {set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC|16]} @@ -4644,59 +4835,59 @@ proc update_define_menu22 {} { set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST&15]} else {set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST|16]} global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_PORTS "$CONFIG_SPW_PORTS" 1} - global tmpvar_37 + global tmpvar_39 global CONFIG_SPW_GRSPW1 - if {$tmpvar_37 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} + if {$tmpvar_39 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} global CONFIG_SPW_GRSPW2 - if {$tmpvar_37 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} + if {$tmpvar_39 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} global CONFIG_SPW_DMACHAN if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {validate_int CONFIG_SPW_DMACHAN "$CONFIG_SPW_DMACHAN" 1} global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME&15]} else {set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME|16]} - global tmpvar_38 + global tmpvar_40 global CONFIG_SPW_RX_SDR - if {$tmpvar_38 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} + if {$tmpvar_40 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} global CONFIG_SPW_RX_DDR - if {$tmpvar_38 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} + if {$tmpvar_40 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} global CONFIG_SPW_RX_XOR - if {$tmpvar_38 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} + if {$tmpvar_40 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} global CONFIG_SPW_RX_AFLEX - if {$tmpvar_38 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} - global tmpvar_39 + if {$tmpvar_40 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} + global tmpvar_41 global CONFIG_SPW_TX_SDR - if {$tmpvar_39 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} + if {$tmpvar_41 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} global CONFIG_SPW_TX_DDR - if {$tmpvar_39 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} + if {$tmpvar_41 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} global CONFIG_SPW_TX_AFLEX - if {$tmpvar_39 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} + if {$tmpvar_41 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} } -proc menu23 {w title} { +proc menu22 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 23} + catch {destroy $w; unregister_active 22} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 23]] + set active_menus [lsort -integer [linsert $active_menus end 22]] message $w.m -width 400 -aspect 300 -text \ "Keybord and VGA interface" -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "Keybord and VGA interface" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 23; catch {destroy .menu13}; unregister_active 13; menu24 .menu24 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 22; catch {destroy .menu13}; unregister_active 13; menu23 .menu23 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4724,9 +4915,9 @@ proc menu23 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 23 0 "Keyboard/mouse (PS2) interface " CONFIG_KBD_ENABLE - bool $w.config.f 23 1 "Text-based VGA interface " CONFIG_VGA_ENABLE - bool $w.config.f 23 2 "SVGA graphical frame buffer " CONFIG_SVGA_ENABLE + bool $w.config.f 22 0 "Keyboard/mouse (PS2) interface " CONFIG_KBD_ENABLE + bool $w.config.f 22 1 "Text-based VGA interface " CONFIG_VGA_ENABLE + bool $w.config.f 22 2 "SVGA graphical frame buffer " CONFIG_SVGA_ENABLE @@ -4763,15 +4954,15 @@ proc menu23 {w title} { } } -proc update_menu23 {} { +proc update_menu22 {} { global CONFIG_VGA_ENABLE global CONFIG_SVGA_ENABLE if {($CONFIG_VGA_ENABLE == 0)} then { - configure_entry .menu23.config.f.x2 normal {n l y}} else {configure_entry .menu23.config.f.x2 disabled {y n l}} + configure_entry .menu22.config.f.x2 normal {n l y}} else {configure_entry .menu22.config.f.x2 disabled {y n l}} } -proc update_define_menu23 {} { +proc update_define_menu22 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_VGA_ENABLE @@ -4781,31 +4972,31 @@ proc update_define_menu23 {} { } -menu_option menu24 24 "VHDL Debugging " -proc menu24 {w title} { +menu_option menu23 23 "VHDL Debugging " +proc menu23 {w title} { set oldFocus [focus] - catch {destroy $w; unregister_active 24} + catch {destroy $w; unregister_active 23} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 24]] + set active_menus [lsort -integer [linsert $active_menus end 23]] message $w.m -width 400 -aspect 300 -text \ "VHDL Debugging " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "VHDL Debugging " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; break" - set nextscript "catch {focus $oldFocus}; menu25 .menu25 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; break" + set nextscript "catch {focus $oldFocus}; menu24 .menu24 \"$title\"" frame $w.f button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript $w.f.next configure -state disabled bind all "puts \"no more menus\" " button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4833,7 +5024,7 @@ proc menu24 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 24 0 "Accelerated UART tracing " CONFIG_DEBUG_UART + bool $w.config.f 23 0 "Accelerated UART tracing " CONFIG_DEBUG_UART @@ -4869,11 +5060,11 @@ proc menu24 {w title} { } } -proc update_menu24 {} { +proc update_menu23 {} { } -proc update_define_menu24 {} { +proc update_define_menu23 {} { update_define_mainmenu global CONFIG_MODULES } @@ -4919,7 +5110,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4929,6 +5121,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4956,6 +5150,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4968,14 +5163,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_4 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4988,27 +5188,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -5018,17 +5218,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -5040,12 +5240,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -5055,10 +5255,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -5069,7 +5269,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -5081,26 +5281,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_21 "(not set)" +set tmpvar_22 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_22 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_23 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -5108,27 +5310,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_28 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -5149,12 +5355,12 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_GRUSB_DCL 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_GRUSB_DCL_ULPI 0 set CONFIG_GRUSB_DCL_UTMI8 0 set CONFIG_GRUSB_DCL_UTMI16 0 set CONFIG_DSU_ETH 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -5182,7 +5388,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -5193,17 +5399,12 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 -set CONFIG_ATA_ENABLE 0 -set CONFIG_ATAIO A00 -set CONFIG_ATAIRQ 10 -set CONFIG_ATA_MWDMA 0 -set CONFIG_ATA_FIFO 8 set CONFIG_CAN_ENABLE 0 set CONFIG_CAN_NUM 1 set CONFIG_CANIO C00 @@ -5213,7 +5414,7 @@ set CONFIG_CAN_SYNCRST 0 set CONFIG_CAN_FT 0 set CONFIG_GRUSBDC_ENABLE 0 set CONFIG_GRUSBDC_AIFACE 0 -set tmpvar_31 "(not set)" +set tmpvar_33 "(not set)" set CONFIG_GRUSBDC_ULPI 0 set CONFIG_GRUSBDC_UTMI8 0 set CONFIG_GRUSBDC_UTMI16 0 @@ -5252,7 +5453,7 @@ set CONFIG_GRUSBDC_O13 1024 set CONFIG_GRUSBDC_O14 1024 set CONFIG_GRUSBDC_O15 1024 set CONFIG_UART1_ENABLE 0 -set tmpvar_32 "(not set)" +set tmpvar_34 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5260,7 +5461,7 @@ set CONFIG_UA1_FIFO8 0 set CONFIG_UA1_FIFO16 0 set CONFIG_UA1_FIFO32 0 set CONFIG_UART2_ENABLE 0 -set tmpvar_33 "(not set)" +set tmpvar_35 "(not set)" set CONFIG_UA2_FIFO1 0 set CONFIG_UA2_FIFO2 0 set CONFIG_UA2_FIFO4 0 @@ -5283,17 +5484,17 @@ set CONFIG_GRGPIO_WIDTH 8 set CONFIG_GRGPIO_IMASK 0000 set CONFIG_SPW_ENABLE 0 set CONFIG_SPW_NUM 1 -set tmpvar_34 "(not set)" +set tmpvar_36 "(not set)" set CONFIG_SPW_AHBFIFO4 0 set CONFIG_SPW_AHBFIFO8 0 set CONFIG_SPW_AHBFIFO16 0 set CONFIG_SPW_AHBFIFO32 0 -set tmpvar_35 "(not set)" +set tmpvar_37 "(not set)" set CONFIG_SPW_RXFIFO16 0 set CONFIG_SPW_RXFIFO32 0 set CONFIG_SPW_RXFIFO64 0 set CONFIG_SPW_RMAP 0 -set tmpvar_36 "(not set)" +set tmpvar_38 "(not set)" set CONFIG_SPW_RMAPBUF2 0 set CONFIG_SPW_RMAPBUF4 0 set CONFIG_SPW_RMAPBUF6 0 @@ -5303,17 +5504,17 @@ set CONFIG_SPW_RXUNAL 0 set CONFIG_SPW_FT 0 set CONFIG_SPW_NETLIST 0 set CONFIG_SPW_PORTS 1 -set tmpvar_37 "(not set)" +set tmpvar_39 "(not set)" set CONFIG_SPW_GRSPW1 0 set CONFIG_SPW_GRSPW2 0 set CONFIG_SPW_DMACHAN 1 set CONFIG_SPW_RTSAME 0 -set tmpvar_38 "(not set)" +set tmpvar_40 "(not set)" set CONFIG_SPW_RX_SDR 0 set CONFIG_SPW_RX_DDR 0 set CONFIG_SPW_RX_XOR 0 set CONFIG_SPW_RX_AFLEX 0 -set tmpvar_39 "(not set)" +set tmpvar_41 "(not set)" set CONFIG_SPW_TX_SDR 0 set CONFIG_SPW_TX_DDR 0 set CONFIG_SPW_TX_AFLEX 0 @@ -5376,7 +5577,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5386,6 +5588,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5428,6 +5632,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_3 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } + if { $tmpvar_3 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } global CONFIG_CLK_MUL @@ -5440,9 +5645,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5456,239 +5662,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_4 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_4 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_4 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_4 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_4 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - if { $tmpvar_4 == "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 } - if { $tmpvar_4 == "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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_5 == "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 } + if { $tmpvar_5 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_6 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_6 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_6 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_6 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_7 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 }} global tmpvar_8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_8 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_9 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 }} global tmpvar_22 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_24 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_24 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_24 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_24 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_24 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_26 + global tmpvar_27 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_28 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_28 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_28 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_28 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_28 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5732,21 +6088,21 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_DSU_JTAG $CONFIG_DSU_JTAG [list $notmod] 2 global CONFIG_GRUSB_DCL write_tristate $cfg $autocfg CONFIG_GRUSB_DCL $CONFIG_GRUSB_DCL [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_GRUSB_DCL == 1)} then { - if { $tmpvar_27 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_ULPI 0 [list $notmod] 2 } - if { $tmpvar_27 == "UTMI/UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI8 0 [list $notmod] 2 } - if { $tmpvar_27 == "UTMI/UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI16 0 [list $notmod] 2 }} + if { $tmpvar_29 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_ULPI 0 [list $notmod] 2 } + if { $tmpvar_29 == "UTMI/UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI8 0 [list $notmod] 2 } + if { $tmpvar_29 == "UTMI/UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI16 0 [list $notmod] 2 }} global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5796,38 +6152,27 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_30 + global tmpvar_32 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} - write_comment $cfg $autocfg "IDE Disk controller " - global CONFIG_ATA_ENABLE - write_tristate $cfg $autocfg CONFIG_ATA_ENABLE $CONFIG_ATA_ENABLE [list $notmod] 2 - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_ATAIO $CONFIG_ATAIO $notmod } - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_ATAIRQ $CONFIG_ATAIRQ $notmod } - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_ATA_MWDMA $CONFIG_ATA_MWDMA [list $notmod] 2 } - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {write_int $cfg $autocfg CONFIG_ATA_FIFO $CONFIG_ATA_FIFO $notmod } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} write_comment $cfg $autocfg "CAN " global CONFIG_CAN_ENABLE write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2 @@ -5848,11 +6193,11 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_GRUSBDC_ENABLE $CONFIG_GRUSBDC_ENABLE [list $notmod] 2 global CONFIG_GRUSBDC_AIFACE if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRUSBDC_AIFACE $CONFIG_GRUSBDC_AIFACE [list $notmod] 2 } - global tmpvar_31 + global tmpvar_33 if {($CONFIG_GRUSBDC_ENABLE == 1)} then { - if { $tmpvar_31 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_ULPI 0 [list $notmod] 2 } - if { $tmpvar_31 == "UTMI/UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI8 0 [list $notmod] 2 } - if { $tmpvar_31 == "UTMI/UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI16 0 [list $notmod] 2 }} + if { $tmpvar_33 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_ULPI 0 [list $notmod] 2 } + if { $tmpvar_33 == "UTMI/UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI8 0 [list $notmod] 2 } + if { $tmpvar_33 == "UTMI/UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI16 0 [list $notmod] 2 }} global CONFIG_GRUSBDC_NEPI if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_NEPI $CONFIG_GRUSBDC_NEPI $notmod } global CONFIG_GRUSBDC_NEPO @@ -5924,24 +6269,24 @@ proc writeconfig {file1 file2} { write_comment $cfg $autocfg "UART, timer, I/O port and interrupt controller" global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_32 + global tmpvar_34 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 }} + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 }} global CONFIG_UART2_ENABLE if {($CONFIG_DSU_UART != 1)} then {write_tristate $cfg $autocfg CONFIG_UART2_ENABLE $CONFIG_UART2_ENABLE [list $notmod] 2 } - global tmpvar_33 + global tmpvar_35 if {($CONFIG_DSU_UART != 1) && ($CONFIG_UART2_ENABLE == 1)} then { - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 }} + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5975,25 +6320,25 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_SPW_ENABLE $CONFIG_SPW_ENABLE [list $notmod] 2 global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_NUM $CONFIG_SPW_NUM $notmod } - global tmpvar_34 + global tmpvar_36 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_34 == "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 } - if { $tmpvar_34 == "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 } - if { $tmpvar_34 == "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 } - if { $tmpvar_34 == "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 }} - global tmpvar_35 + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 }} + global tmpvar_37 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_35 == "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 } - if { $tmpvar_35 == "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 } - if { $tmpvar_35 == "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 }} + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 }} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAP $CONFIG_SPW_RMAP [list $notmod] 2 } - global tmpvar_36 + global tmpvar_38 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then { - if { $tmpvar_36 == "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 } - if { $tmpvar_36 == "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 } - if { $tmpvar_36 == "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 } - if { $tmpvar_36 == "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 }} + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 }} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAPCRC $CONFIG_SPW_RMAPCRC [list $notmod] 2 } global CONFIG_SPW_RXUNAL @@ -6004,26 +6349,26 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_NETLIST $CONFIG_SPW_NETLIST [list $notmod] 2 } global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_PORTS $CONFIG_SPW_PORTS $notmod } - global tmpvar_37 + global tmpvar_39 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 }} + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 }} global CONFIG_SPW_DMACHAN global CONFIG_SPW_GRSPW2 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_int $cfg $autocfg CONFIG_SPW_DMACHAN $CONFIG_SPW_DMACHAN $notmod } global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RTSAME $CONFIG_SPW_RTSAME [list $notmod] 2 } - global tmpvar_38 + global tmpvar_40 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_38 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } - if { $tmpvar_38 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } - if { $tmpvar_38 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } - if { $tmpvar_38 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} - global tmpvar_39 + if { $tmpvar_40 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } + if { $tmpvar_40 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } + if { $tmpvar_40 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } + if { $tmpvar_40 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} + global tmpvar_41 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_39 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } - if { $tmpvar_39 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } - if { $tmpvar_39 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} + if { $tmpvar_41 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } + if { $tmpvar_41 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } + if { $tmpvar_41 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} write_comment $cfg $autocfg "Keybord and VGA interface" global CONFIG_KBD_ENABLE write_tristate $cfg $autocfg CONFIG_KBD_ENABLE $CONFIG_KBD_ENABLE [list $notmod] 2 @@ -6075,7 +6420,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -6085,6 +6431,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -6105,8 +6453,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -6189,11 +6542,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -6214,6 +6569,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_GRUSB_DCL_ULPI; set CONFIG_GRUSB_DCL_ULPI 0 global CONFIG_GRUSB_DCL_UTMI8; set CONFIG_GRUSB_DCL_UTMI8 0 global CONFIG_GRUSB_DCL_UTMI16; set CONFIG_GRUSB_DCL_UTMI16 0 @@ -6345,8 +6704,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -6365,6 +6726,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -6411,406 +6776,432 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_3 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_3 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_3 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_3 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_3 "Xilinx-DCM" } global tmpvar_4 - set tmpvar_4 "5-cycles" + set tmpvar_4 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_4 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_4 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_4 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_4 "Custom-configuration" } + global tmpvar_5 + set tmpvar_5 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_5 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_5 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } - global tmpvar_5 - set tmpvar_5 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_5 "5-cycles" } + global tmpvar_6 + set tmpvar_6 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_6 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_6 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } - global tmpvar_6 - set tmpvar_6 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_6 "Designware" } + global tmpvar_7 + set tmpvar_7 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_7 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_7 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } - global tmpvar_7 - set tmpvar_7 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_7 "Meiko" } + global tmpvar_8 + set tmpvar_8 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_8 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_8 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_8 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } - global tmpvar_8 - set tmpvar_8 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_8 "TechSpec" } + global tmpvar_9 + set tmpvar_9 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_9 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_9 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } - global tmpvar_9 - set tmpvar_9 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_9 "Non-blocking" } + global tmpvar_10 + set tmpvar_10 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_10 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } - global tmpvar_10 - set tmpvar_10 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_10 "4" } + global tmpvar_11 + set tmpvar_11 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_11 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_11 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_11 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_11 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_11 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_11 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_11 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } - global tmpvar_11 - set tmpvar_11 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_11 "256" } + global tmpvar_12 + set tmpvar_12 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_12 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } - global tmpvar_12 - set tmpvar_12 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_12 "32" } + global tmpvar_13 + set tmpvar_13 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_13 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_13 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_13 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } - global tmpvar_13 - set tmpvar_13 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_13 "LRU" } + global tmpvar_14 + set tmpvar_14 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_14 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_14 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_14 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_14 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_14 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_14 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_14 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_14 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } - global tmpvar_14 - set tmpvar_14 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_14 "256" } + global tmpvar_15 + set tmpvar_15 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_15 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } - global tmpvar_15 - set tmpvar_15 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_15 "4" } + global tmpvar_16 + set tmpvar_16 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_16 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_16 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_16 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_16 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_16 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_16 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_16 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } - global tmpvar_16 - set tmpvar_16 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_16 "256" } + global tmpvar_17 + set tmpvar_17 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_17 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } - global tmpvar_17 - set tmpvar_17 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_17 "32" } + global tmpvar_18 + set tmpvar_18 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_18 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_18 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_18 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } - global tmpvar_18 - set tmpvar_18 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_18 "LRU" } + global tmpvar_19 + set tmpvar_19 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_19 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_19 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_19 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_19 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_19 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_19 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_19 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_19 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } - global tmpvar_19 - set tmpvar_19 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_19 "256" } + global tmpvar_20 + set tmpvar_20 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_20 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } - global tmpvar_20 - set tmpvar_20 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_20 "split" } + global tmpvar_21 + set tmpvar_21 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_21 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_21 "Increment" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_23 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_23 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_23 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_23 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } - global tmpvar_23 - set tmpvar_23 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_23 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_23 "64" } + global tmpvar_24 + set tmpvar_24 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_24 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_24 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_24 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_24 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_24 "Programmable" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_26 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_26 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_26 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_26 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_26 "16" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_27 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "ULPI" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_28 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_28 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_28 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_28 "TMR" } + global tmpvar_29 + set tmpvar_29 "ULPI" global CONFIG_GRUSB_DCL_ULPI - if { $CONFIG_GRUSB_DCL_ULPI == 1 } then { set tmpvar_27 "ULPI" } + if { $CONFIG_GRUSB_DCL_ULPI == 1 } then { set tmpvar_29 "ULPI" } global CONFIG_GRUSB_DCL_UTMI8 - if { $CONFIG_GRUSB_DCL_UTMI8 == 1 } then { set tmpvar_27 "UTMI/UTMI+8-bit" } + if { $CONFIG_GRUSB_DCL_UTMI8 == 1 } then { set tmpvar_29 "UTMI/UTMI+8-bit" } global CONFIG_GRUSB_DCL_UTMI16 - if { $CONFIG_GRUSB_DCL_UTMI16 == 1 } then { set tmpvar_27 "UTMI/UTMI+16-bit" } - global tmpvar_28 - set tmpvar_28 "2" + if { $CONFIG_GRUSB_DCL_UTMI16 == 1 } then { set tmpvar_29 "UTMI/UTMI+16-bit" } + global tmpvar_30 + set tmpvar_30 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_30 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_30 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_30 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_30 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } - global tmpvar_29 - set tmpvar_29 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_30 "16" } + global tmpvar_31 + set tmpvar_31 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_31 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_31 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_31 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_31 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_31 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_31 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } - global tmpvar_30 - set tmpvar_30 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_31 "64" } + global tmpvar_32 + set tmpvar_32 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_32 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_32 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_32 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_32 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } - global tmpvar_31 - set tmpvar_31 "ULPI" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_32 "64" } + global tmpvar_33 + set tmpvar_33 "ULPI" global CONFIG_GRUSBDC_ULPI - if { $CONFIG_GRUSBDC_ULPI == 1 } then { set tmpvar_31 "ULPI" } + if { $CONFIG_GRUSBDC_ULPI == 1 } then { set tmpvar_33 "ULPI" } global CONFIG_GRUSBDC_UTMI8 - if { $CONFIG_GRUSBDC_UTMI8 == 1 } then { set tmpvar_31 "UTMI/UTMI+8-bit" } + if { $CONFIG_GRUSBDC_UTMI8 == 1 } then { set tmpvar_33 "UTMI/UTMI+8-bit" } global CONFIG_GRUSBDC_UTMI16 - if { $CONFIG_GRUSBDC_UTMI16 == 1 } then { set tmpvar_31 "UTMI/UTMI+16-bit" } - global tmpvar_32 - set tmpvar_32 "1" + if { $CONFIG_GRUSBDC_UTMI16 == 1 } then { set tmpvar_33 "UTMI/UTMI+16-bit" } + global tmpvar_34 + set tmpvar_34 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_32 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_34 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_32 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_34 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_32 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_34 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_32 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_34 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_32 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_34 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_32 "32" } - global tmpvar_33 - set tmpvar_33 "1" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_34 "32" } + global tmpvar_35 + set tmpvar_35 "1" global CONFIG_UA2_FIFO1 - if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_33 "1" } + if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_35 "1" } global CONFIG_UA2_FIFO2 - if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_33 "2" } + if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_35 "2" } global CONFIG_UA2_FIFO4 - if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_33 "4" } + if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_35 "4" } global CONFIG_UA2_FIFO8 - if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_33 "8" } + if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_35 "8" } global CONFIG_UA2_FIFO16 - if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_33 "16" } + if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_35 "16" } global CONFIG_UA2_FIFO32 - if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_33 "32" } - global tmpvar_34 - set tmpvar_34 "16" + if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_35 "32" } + global tmpvar_36 + set tmpvar_36 "16" global CONFIG_SPW_AHBFIFO4 - if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_34 "4" } + if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_36 "4" } global CONFIG_SPW_AHBFIFO8 - if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_34 "8" } + if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_36 "8" } global CONFIG_SPW_AHBFIFO16 - if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_34 "16" } + if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_36 "16" } global CONFIG_SPW_AHBFIFO32 - if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_34 "32" } - global tmpvar_35 - set tmpvar_35 "16" + if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_36 "32" } + global tmpvar_37 + set tmpvar_37 "16" global CONFIG_SPW_RXFIFO16 - if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_35 "16" } + if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_37 "16" } global CONFIG_SPW_RXFIFO32 - if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_35 "32" } + if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_37 "32" } global CONFIG_SPW_RXFIFO64 - if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_35 "64" } - global tmpvar_36 - set tmpvar_36 "64" + if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_37 "64" } + global tmpvar_38 + set tmpvar_38 "64" global CONFIG_SPW_RMAPBUF2 - if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_36 "64" } + if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_38 "64" } global CONFIG_SPW_RMAPBUF4 - if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_36 "128" } + if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_38 "128" } global CONFIG_SPW_RMAPBUF6 - if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_36 "192" } + if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_38 "192" } global CONFIG_SPW_RMAPBUF8 - if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_36 "256" } - global tmpvar_37 - set tmpvar_37 "2" + if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_38 "256" } + global tmpvar_39 + set tmpvar_39 "2" global CONFIG_SPW_GRSPW1 - if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_37 "1" } + if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_39 "1" } global CONFIG_SPW_GRSPW2 - if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_37 "2" } - global tmpvar_38 - set tmpvar_38 "DDR" + if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_39 "2" } + global tmpvar_40 + set tmpvar_40 "DDR" global CONFIG_SPW_RX_SDR - if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_38 "SDR" } + if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_40 "SDR" } global CONFIG_SPW_RX_DDR - if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_38 "DDR" } + if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_40 "DDR" } global CONFIG_SPW_RX_XOR - if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_38 "Xor" } + if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_40 "Xor" } global CONFIG_SPW_RX_AFLEX - if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_38 "Aeroflex" } - global tmpvar_39 - set tmpvar_39 "SDR" + if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_40 "Aeroflex" } + global tmpvar_41 + set tmpvar_41 "SDR" global CONFIG_SPW_TX_SDR - if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_39 "SDR" } + if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_41 "SDR" } global CONFIG_SPW_TX_DDR - if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_39 "DDR" } + if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_41 "DDR" } global CONFIG_SPW_TX_AFLEX - if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_39 "Aeroflex" } + if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_41 "Aeroflex" } } diff --git a/designs/leon3-gr-xc3s-1500/leon3mp.vhd b/designs/leon3-gr-xc3s-1500/leon3mp.vhd index 8af2e5c3..c635d454 100644 --- a/designs/leon3-gr-xc3s-1500/leon3mp.vhd +++ b/designs/leon3-gr-xc3s-1500/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -38,7 +38,6 @@ use gaisler.net.all; use gaisler.jtag.all; use gaisler.spacewire.all; use gaisler.grusb.all; -use gaisler.ata.all; library esa; use esa.memoryctrl.all; @@ -146,21 +145,7 @@ entity leon3mp is usb_txvalid : out std_ulogic; usb_validh : inout std_ulogic; usb_xcvrsel : out std_ulogic; - usb_vbus : in std_ulogic; - - ata_rstn : out std_logic; - ata_data : inout std_logic_vector(15 downto 0); - ata_da : out std_logic_vector(2 downto 0); - ata_cs0 : out std_logic; - ata_cs1 : out std_logic; - ata_dior : out std_logic; - ata_diow : out std_logic; - ata_iordy : in std_logic; - ata_intrq : in std_logic; - ata_dmarq : in std_logic; - ata_dmack : out std_logic; - --ata_dasp : in std_logic - ata_csel : out std_logic + usb_vbus : in std_ulogic ); end; @@ -174,7 +159,7 @@ constant blength : integer := 12; constant fifodepth : integer := 8; constant maxahbm : integer := CFG_NCPU+CFG_AHB_UART+CFG_GRETH+ CFG_AHB_JTAG+CFG_SPW_NUM*CFG_SPW_EN+CFG_GRUSB_DCL+CFG_SVGA_ENABLE+ - CFG_ATA+CFG_GRUSBDC; + CFG_GRUSBDC; signal vcc, gnd : std_logic_vector(4 downto 0); signal memi : memory_in_type; @@ -230,7 +215,7 @@ signal vgao : apbvga_out_type; constant BOARD_FREQ : integer := 50000; -- input frequency in KHz constant CPU_FREQ : integer := BOARD_FREQ * CFG_CLKMUL / CFG_CLKDIV; -- cpu frequency in KHz -constant IOAEN : integer := CFG_CAN + CFG_ATA + CFG_GRUSBDC; +constant IOAEN : integer := CFG_CAN + CFG_GRUSBDC; signal spwi : grspw_in_type_vector(0 to 2); signal spwo : grspw_out_type_vector(0 to 2); @@ -245,9 +230,6 @@ signal uclk : std_ulogic; signal usbi : grusb_in_type; signal usbo : grusb_out_type; -signal idei : ata_in_type; -signal ideo : ata_out_type; - constant SPW_LOOP_BACK : integer := 0; signal dac_clk, video_clk, clk50 : std_logic; -- signals to vga_clkgen. @@ -836,57 +818,6 @@ begin ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_GRETH+CFG_AHB_JTAG+CFG_SVGA_ENABLE+ CFG_SPW_NUM*CFG_SPW_EN)); end generate usb_dcl0; - ------------------------------------------------------------------------ ---- AHB ATA ---------------------------------------------------------- ------------------------------------------------------------------------ - - ata0 : if CFG_ATA = 1 generate - atac0 : atactrl - generic map( - tech => 0, fdepth => CFG_ATAFIFO, - mhindex => CFG_NCPU+CFG_AHB_UART+CFG_GRETH+CFG_AHB_JTAG+ - CFG_SVGA_ENABLE+CFG_SPW_NUM*CFG_SPW_EN+CFG_GRUSB_DCL+ - CFG_GRUSBDC, - shindex => 3, haddr => 16#A00#, hmask => 16#fff#, pirq => CFG_ATAIRQ, - mwdma => CFG_ATADMA, TWIDTH => 8, - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 => 6, -- 70ns - PIO_mode0_T2 => 28, -- 290ns - PIO_mode0_T4 => 2, -- 30ns - PIO_mode0_Teoc => 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ) - port map( - rst => rstn, arst => vcc(0), clk => clkm, ahbmi => ahbmi, - ahbmo => ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_GRETH+CFG_AHB_JTAG+ - CFG_SVGA_ENABLE+CFG_SPW_NUM*CFG_SPW_EN+ - CFG_GRUSB_DCL+CFG_GRUSBDC), - ahbsi => ahbsi, ahbso => ahbso(3), atai => idei, atao => ideo); - - ata_rstn_pad : outpad generic map (tech => padtech) - port map (ata_rstn, ideo.rstn); - ata_data_pad : iopadv generic map (tech => padtech, width => 16, oepol => 1) - port map (ata_data, ideo.ddo, ideo.oen, idei.ddi); - ata_da_pad : outpadv generic map (tech => padtech, width => 3) - port map (ata_da, ideo.da); - ata_cs0_pad : outpad generic map (tech => padtech) - port map (ata_cs0, ideo.cs0); - ata_cs1_pad : outpad generic map (tech => padtech) - port map (ata_cs1, ideo.cs1); - ata_dior_pad : outpad generic map (tech => padtech) - port map (ata_dior, ideo.dior); - ata_diow_pad : outpad generic map (tech => padtech) - port map (ata_diow, ideo.diow); - iordy_pad : inpad generic map (tech => padtech) - port map (ata_iordy, idei.iordy); - intrq_pad : inpad generic map (tech => padtech) - port map (ata_intrq, idei.intrq); - dmarq_pad : inpad generic map (tech => padtech) - port map (ata_dmarq, idei.dmarq); - dmack_pad : outpad generic map (tech => padtech) - port map (ata_dmack, ideo.dmack); - ata_csel <= '0'; - end generate; ----------------------------------------------------------------------- --- Drive unused bus elements --------------------------------------- diff --git a/designs/leon3-gr-xc3s-1500/sdram.srec b/designs/leon3-gr-xc3s-1500/sdram.srec index a1458782..bf2f4b5a 100755 --- a/designs/leon3-gr-xc3s-1500/sdram.srec +++ b/designs/leon3-gr-xc3s-1500/sdram.srec @@ -1,14 +1,14 @@ S00D0000736472616D2E7372656300 -S31540000000881000000910007181C1216C01000000B8 -S31540000010A1480000A75000001080203BAC102001F2 +S31540000000881000000910007181C1203401000000F1 +S31540000010A1480000A75000001080203EAC102001EF S3154000002091D0200001000000010000000100000006 S3154000003091D02000010000000100000001000000F6 -S31540000040A14800002910007181C520A401000000CC -S31540000050A14800002910006E81C523C80100000098 -S31540000060A14800002910006F81C52034010000001E +S31540000040A14800002910007081C5236C0100000002 +S31540000050A14800002910006E81C522A801000000B9 +S31540000060A14800002910006E81C52314010000003C S3154000007091D02000010000000100000001000000B6 S3154000008091D02000010000000100000001000000A6 -S31540000090A1480000A75000001080201BAC1020098A +S31540000090A1480000A75000001080201EAC10200987 S315400000A091D0200001000000010000000100000086 S315400000B091D0200001000000010000000100000076 S315400000C091D0200001000000010000000100000066 @@ -16,21 +16,21 @@ S315400000D091D0200001000000010000000100000056 S315400000E091D0200001000000010000000100000046 S315400000F091D0200001000000010000000100000036 S3154000010091D0200001000000010000000100000025 -S31540000110AE102001A148000010806F73A750000068 -S31540000120AE102002A148000010806F6FA75000005B -S31540000130AE102003A148000010806F6BA75000004E -S31540000140AE102004A148000010806F67A750000041 -S31540000150AE102005A148000010806F63A750000034 -S31540000160AE102006A148000010806F5FA750000027 -S31540000170AE102007A148000010806F5BA75000001A -S31540000180AE102008A148000010806F57A75000000D -S31540000190AE102009A148000010806F53A750000000 -S315400001A0AE10200AA148000010806F4FA7500000F3 -S315400001B0AE10200BA148000010806F4BA7500000E6 -S315400001C0AE10200CA148000010806F47A7500000D9 -S315400001D0AE10200DA148000010806F43A7500000CC -S315400001E0AE10200EA148000010806F3FA7500000BF -S315400001F0AE10200FA148000010806F3BA7500000B2 +S31540000110AE102001A148000010806F2BA7500000B0 +S31540000120AE102002A148000010806F27A7500000A3 +S31540000130AE102003A148000010806F23A750000096 +S31540000140AE102004A148000010806F1FA750000089 +S31540000150AE102005A148000010806F1BA75000007C +S31540000160AE102006A148000010806F17A75000006F +S31540000170AE102007A148000010806F13A750000062 +S31540000180AE102008A148000010806F0FA750000055 +S31540000190AE102009A148000010806F0BA750000048 +S315400001A0AE10200AA148000010806F07A75000003B +S315400001B0AE10200BA148000010806F03A75000002E +S315400001C0AE10200CA148000010806EFFA750000022 +S315400001D0AE10200DA148000010806EFBA750000015 +S315400001E0AE10200EA148000010806EF7A750000008 +S315400001F0AE10200FA148000010806EF3A7500000FB S3154000020091D0200001000000010000000100000024 S3154000021091D0200001000000010000000100000014 S3154000022091D0200001000000010000000100000004 @@ -129,10 +129,10 @@ S315400007E091D020000100000001000000010000003F S315400007F091D020000100000001000000010000002F S3154000080091D020000100000001000000010000001E S3154000081091D020000100000001000000010000000E -S31540000820A14800002910006F81C522080100000080 -S31540000830A148000010806D19A7500000010000007B +S31540000820A14800002910006F81C520E801000000A2 +S31540000830A148000010806CD1A750000001000000C4 S3154000084091D02000010000000100000001000000DE -S31540000850A14800002910006F81C521EC010000006D +S31540000850A14800002910006F81C520CC010000008E S3154000086091D02000010000000100000001000000BE S3154000087091D02000010000000100000001000000AE S3154000088091D020000100000001000000010000009E @@ -255,131 +255,131 @@ S31540000FC091D0200001000000010000000100000057 S31540000FD091D0200001000000010000000100000047 S31540000FE091D0200001000000010000000100000037 S31540000FF091D0200001000000010000000100000027 -S315400010009DE3BFC0051001438410A0600710014452 +S315400010009DE3BFC0051001238410A0600710012492 S315400010108610E1B8821000008620C00286A0E00853 -S3154000102036BFFFFFC038800311100144901221B82B -S31540001030C022000040006BA60100000040006BA6E5 -S315400010400100000040006D580100000011100072C0 -S31540001050901222A0400066A60100000040006E8A61 -S3154000106001000000400000430100000040006C8386 -S315400010700100000081C7E00881E800009DE3BF98B9 -S3154000108023100143C20C606080A0600012800015EE -S315400010902110008010800005C204200C9FC3400030 -S315400010A0C224200CC204200CDA00400080A3600059 -S315400010B012BFFFFB82006004030000008210600044 -S315400010C080A060000280000682102001111000728C -S315400010D06FFFFBCC9012223082102001C22C606040 -S315400010E081C7E00881E800009DE3BF9881C7E0081A -S315400010F081E800009DE3BF98030000008210600075 -S31540001100111000721310014380A06000901222302B -S3154000111002800004921260646FFFFBBA0100000077 -S315400011201B100144C20361B880A060000280000920 -S31540001130B01361B8030000008210600080A0600018 -S3154000114002800004010000006FFFFBAE81E8000052 -S315400011500100000081C7E00881E800009DE3BF98D8 -S3154000116081C7E00881E8000081C3E0080100000073 -S315400011709DE3BF984000000A01000000400001497D -S31540001180010000001120000340003C2C9012210079 -S315400011904000000E81E80000010000009DE3BF987A -S315400011A0400000290100000080A2200012800005B6 -S315400011B003100080D80060109A102001DA23201016 -S315400011C081C7E00891E8200003100080D800601035 -S315400011D09A102001DA23201481C3E00890102000E1 -S315400011E003100080DA006010D023400081C3E0087D -S315400011F09010200003100080DA006010D0236008B1 -S3154000120081C3E0089010200003100080DA006010CF -S31540001210D023600481C3E0089010200013100080A2 -S31540001220921260149010200081C3E008D0EA40205A -S3154000123090102000131000809212601481C3E008C1 -S31540001240D0224000914440009132201C81C3E008E6 -S31540001250900A200F81C3E008D08200209010200C15 -S3154000126081C3E008D08200408210000880A20009B5 -S3154000127014800003902200099022400181C3E008B7 -S3154000128001000000932A600282102001C222000958 -S315400012909810200080A3000A1680000A96102001AC -S315400012A0832B2002DA02000180A0000D826020001C -S315400012B09803200180A3000A06BFFFFA960AC001E0 -S315400012C080A2E00002BFFFF49810200081C3E0082E -S315400012D0010000009DE3BF98C20620108330601CC9 -S315400012E0A0100018A400600180A4A0010280006C38 -S315400012F0B0103FFF7FFFFFD401000000AA10000896 -S31540001300912A20047FFFFFBC900220077FFFFFD475 -S315400013100100000003020000808A00010280005C98 -S31540001320010000009A056001821020018328400DCB -S3154000133011100080C2242010901220A09210001597 -S315400013407FFFFFD1941000120310008082106018B6 -S31540001350A12D6002C0204010DA004010A610000106 -S3154000136080A36009291001431480002BAC100001B2 -S315400013707FFFFFAB0100000080A2200012BFFFFDEF -S3154000138001000000B010200080A600121680001454 -S315400013900100000010800005A210001680A6001271 -S315400013A01680000F01000000832E2002D00440105A -S315400013B0D20440017FFFFFADB006200180A220018C -S315400013C004BFFFF7901020027FFFFF90010000004E -S315400013D080A6001206BFFFF6832E2002C205207C9F -S315400013E082006001C225207C7FFFFF920100000041 -S315400013F0C204C01082006001C224C010DA04C010CA -S3154000140080A3600904BFFFDB111000801080000438 -S315400014109012205C111000809012205C92100015F2 -S315400014207FFFFF9994100012832CA0028200401285 -S31540001430A0004001DA05207C80A4000D0280000453 -S31540001440231001437FFFFF7190102003C204607C8C -S3154000145080A060000480000601000000C204607C99 -S3154000146080A400011680000580A560007FFFFF670D -S315400014709010200380A5600022800009B010200053 -S3154000148091D0200010800006B01020007FFFFF5F43 -S315400014909010200110BFFFA59A05600181C7E008A2 -S315400014A081E800009DE3BF98C2062010A0100018F6 -S315400014B08330601C80A0600002800009B0103FFFAE -S315400014C07FFFFF610100000080A22000128000041F -S315400014D00300003F821063FFC224201081C7E0084A -S315400014E081E800009DE3BF98C20620108330601C4F -S315400014F0A400600180A4A00102800068B0103FFFF4 -S315400015007FFFFF5101000000AA100008912A200425 -S315400015107FFFFF39900220077FFFFF510100000047 -S3154000152003020000808A000102800058010000008A -S3154000153011100080901220A0921000157FFFFF52DC -S31540001540941000120310008082106018A12D6002D2 -S31540001550C0204010DA004010A610000180A36009A8 -S31540001560291001431480002BAC1000017FFFFF2C93 -S315400015700100000080A2200012BFFFFD0100000014 -S31540001580B010200080A60012168000140100000052 -S3154000159010800005A210001680A600121680000FCB -S315400015A001000000832E2002D0044010D2044001E6 -S315400015B07FFFFF2EB006200180A2200104BFFFF767 -S315400015C0901020027FFFFF110100000080A600124C -S315400015D006BFFFF6832E2002C205207C82006001F2 -S315400015E0C225207C7FFFFF1301000000C204C0100B -S315400015F082006001C224C010DA04C01080A36009D2 -S3154000160004BFFFDB11100080108000049012205CA4 -S31540001610111000809012205C921000157FFFFF1A77 -S3154000162094100012832CA00282004012A0004001B8 -S31540001630DA05207C80A4000D0280000423100143BB -S315400016407FFFFEF290102003C204607C80A0600001 -S315400016500480000601000000C204607C80A40001F2 -S315400016601680000580A560007FFFFEE890102003ED -S3154000167080A5600022800009B010200091D0200093 -S3154000168010800006B01020007FFFFEE09010200181 -S3154000169010BFFFA91110008081C7E00881E8000053 -S315400016A09DE3BF983120000092162200941020003E -S315400016B04000439790102001400040A09016220021 -S315400016C090162300400043FC92102008B0162100DB -S315400016D040003F8D81E80000010000009DE3BF9877 -S315400016E021200000921422009410200040004388DC -S315400016F09010200140004091901422009210001852 -S31540001700400043ED90142300B014210040003F7E7A -S3154000171081E8000001000000000000000000000019 -S315400017200000000000000000000000000000000073 -S315400017300000000000000000000000000000000063 -S315400017400000000000000000000000000000000053 -S315400017500000000000000000000000000000000043 -S315400017600000000000000000000000000000000033 -S315400017700000000000000000000000000000000023 -S315400017800000000000000000000000000000000013 -S315400017900000000000000000000000000000000003 -S315400017A000000000000000000000000000000000F3 -S315400017B000000000000000000000000000000000E3 -S315400017C000000000000000000000000000000000D3 +S3154000102036BFFFFFC038800311100124901221B84B +S31540001030C022000040006B5E0100000040006B5E75 +S315400010400100000040006D0A01000000111000740C +S31540001050901221DC400067030100000040007059F7 +S31540001060010000004000004F0100000040006C3BC2 +S315400010700100000081C7E00881E800009DE3BFA0B1 +S3154000108021100123C20C206080A060001280002243 +S3154000109023100123C20460642710007425100074D5 +S315400010A0A614E144A414A148A4248013A53CA0029C +S315400010B0A404BFFF80A040123A80000E0300000047 +S315400010C0A21460648200600185286002C224400048 +S315400010D0C204C0029FC0400001000000C20440009C +S315400010E080A040120ABFFFF98200600103000000A1 +S315400010F08210600080A060000280000682102001FD +S31540001100111000726FFFFBBF901220E08210200189 +S31540001110C22C206081C7E00881E800009DE3BFA0A3 +S3154000112081C7E00881E800009DE3BFA003000000FE +S315400011308210600080A06000228000081110012407 +S315400011401110007213100123901220E06FFFFBADC7 +S315400011509212606811100124C20221B880A060007A +S3154000116002800009901221B803000000821060003E +S3154000117080A0600002800004010000009FC0400083 +S315400011800100000081C7E00881E800009DE3BFA0A0 +S3154000119081C7E00881E8000081C3E0080100000043 +S315400011A09DE3BFA0400000260100000040000177FB +S315400011B0010000001120000340003C249012210051 +S315400011C04000000381E80000010000000310008099 +S315400011D0C20060108410200190102000C4206014CA +S315400011E081C3E0080100000003100080C2006010C7 +S315400011F08410000890102000C420400081C3E008FD +S315400012000100000003100080C20060108410000836 +S3154000121090102000C420600881C3E008010000004F +S3154000122003100080C2006010841000089010200057 +S31540001230C420600481C3E008010000009DE3BFA014 +S31540001240400000140100000080A22000128000052A +S3154000125003100080C200601084102001C42060107A +S3154000126081C7E00891E820001310008092126014B4 +S315400012709010200081C3E008D0EA40209010200062 +S31540001280131000809212601481C3E008D0224000FF +S31540001290914440009132201C81C3E008900A200FFF +S315400012A081C3E008D08200209010200C81C3E00862 +S315400012B0D08200409DE3BFA0C2062010A0100018B7 +S315400012C08330601C80A0600002800009B0103FFFA0 +S315400012D07FFFFFF00100000080A220001280000482 +S315400012E00300003F821063FFC224201081C7E0083C +S315400012F081E800009DE3BFA0E4062010A534A01CB1 +S31540001300A404A00180A4A0010280003CB0103FFFCD +S315400013107FFFFFE001000000AA100008912A200488 +S315400013207FFFFFB9900220077FFFFFE0010000002A +S3154000133003020000808A0001028000740100000060 +S31540001340A72D600209100080881120188210200104 +S3154000135084102001C22100138210200080A4800145 +S31540001360148000098728600280A0A0001280002512 +S31540001370821020008410200180A4800104BFFFFB5E +S3154000138087286002C601000380A000038200600136 +S315400013908660200010BFFFF284088003C205A0804B +S315400013A0852CA003A12CA001A004000280A400016A +S315400013B002800004010000007FFFFF9A9010200386 +S315400013C0C205A08080A060000480000603100123AF +S315400013D0C200608080A400011680000580A56000E0 +S315400013E07FFFFF909010200380A5600002800003DD +S315400013F0B010200091D0200081C7E00881E80000AD +S3154000140023100080A21460A02D100123C024401395 +S31540001410C204401380A06009148000270910008090 +S31540001420A815A0807FFFFF910100000080A2200048 +S3154000143012BFFFFD80A4A00004800013010000003D +S31540001440A0102000C4044013832C2002C204400193 +S3154000145080A08001A0042001048000038620400271 +S315400014608620800180A0E0010480000580A48010D1 +S315400014707FFFFF6C9010200280A4801014BFFFF203 +S3154000148001000000C205000082006001C225000084 +S315400014907FFFFF7B01000000C20440138200600111 +S315400014A0C2244013C204401380A0600904BFFFDE7B +S315400014B0091000808811205C8210200184102001D0 +S315400014C0C22100138210200080A4800114800009EC +S315400014D08728600280A0A00012BFFFB182102000C2 +S315400014E08410200180A4800104BFFFFB872860028E +S315400014F0C601000380A000038200600186602000D0 +S3154000150010BFFFF2840880037FFFFF469010200142 +S3154000151010BFFF8DA72D60029DE3BFA0E4062010FB +S31540001520A0100018A534A01CA404A00180A4A0010A +S315400015300280003FB0103FFF7FFFFF5601000000D2 +S31540001540AA100008912A20047FFFFF2F900220074F +S315400015507FFFFF560100000003020000808A000161 +S315400015600280007701000000A72D6002091000806C +S3154000157088112018821020018405600185284002C8 +S31540001580C4242010C22100138410200182102000A0 +S3154000159080A48001148000098728600280A0A000F2 +S315400015A012800025821020008410200180A4800132 +S315400015B004BFFFFB87286002C601000380A000032A +S315400015C0820060018660200010BFFFF2840880031D +S315400015D0C205A080852CA003A12CA001A004000276 +S315400015E080A4000102800004010000007FFFFF0D7F +S315400015F090102003C205A08080A0600004800006F1 +S3154000160003100123C200608080A4000116800005FB +S3154000161080A560007FFFFF039010200380A5600037 +S3154000162002800003B010200091D0200081C7E0085E +S3154000163081E8000023100080A21460A02D10012331 +S31540001640C0244013C204401380A0600914800027C0 +S3154000165009100080A815A0807FFFFF04010000004C +S3154000166080A2200012BFFFFD80A4A00004800013CA +S3154000167001000000A0102000C4044013832C200267 +S31540001680C204400180A08001A00420010480000320 +S31540001690862040028620800180A0E001048000056B +S315400016A080A480107FFFFEDF9010200280A480106F +S315400016B014BFFFF201000000C20500008200600175 +S315400016C0C22500007FFFFEEE01000000C204401369 +S315400016D082006001C2244013C204401380A0600906 +S315400016E004BFFFDE091000808811205C82102001B3 +S315400016F084102001C22100138210200080A48001A2 +S31540001700148000098728600280A0A00012BFFFB1A4 +S31540001710821020008410200180A4800104BFFFFBBA +S3154000172087286002C601000380A000038200600192 +S315400017308660200010BFFFF2840880037FFFFEB959 +S315400017409010200110BFFF8AA72D60029DE3BFA025 +S31540001750212000009410200092142200400043688B +S315400017609010200140004220901422009210001850 +S31540001770400043AC90142300B014210040003F5C6D +S3154000178081E80000010000009DE3BFA03120000079 +S3154000179094102000921622004000435990102001D8 +S315400017A04000421190162200901623004000439DAF +S315400017B092102008B016210040003F4D81E80000FD +S315400017C001000000000000000000000000000000D2 S315400017D000000000000000000000000000000000C3 S315400017E000000000000000000000000000000000B3 S315400017F000000000000000000000000000000000A3 @@ -2049,39 +2049,39 @@ S31540007FE0000000000000000000000000000000004B S31540007FF0000000000000000000000000000000003B S315400080009DE3BF9081C7E00881E8000003000010AF S31540008010C48000408088800112BFFFFE010000003E -S315400080209DE3BF909DE3BF909DE3BF909DE3BF90CE -S315400080309DE3BF909DE3BF9021044444A0142111C9 -S3154000804023088888A2146222250CCCCCA414A3331E -S3154000805027111111A614E04429155555A815215587 -S315400080602B199999AA1562662D1DDDDDAC15A377EE -S315400080702F222222AE15E08801100000E03FBFE02B -S31540008080E43FBFE8E83FBFF0EC3FBFF88210001E78 -S315400080908220601CC0A041E082206008C0A041E070 -S315400080A082206008C0A041E082206008C0A041E074 -S315400080B0C0A002209DE3BF909DE3BF9081E80000F1 -S315400080C081E800000100000001000000E01FBFE061 -S315400080D0E41FBFE8E81FBFF0EC1FBFF80100000037 -S315400080E00100000081E8000081E8000081E800000E -S315400080F081E8000081E8000081C7E00881E80000CF -S31540008100A7500000AA102400A8102300EC854320A5 -S31540008110EA8503202F100020AE15E150EE05C00081 -S31540008120E805C000EA05E004EC05E008AC15A0004F -S31540008130C0A58300EA250000AE05E00C2B10002008 -S31540008140AA156150EE25400081C4400081CC8000D4 -S3154000815000000000010000000000000000000000D8 -S3154000816000000000000000000000000000000000C9 +S31540008020C46FBFF89DE3BF909DE3BF909DE3BF90B3 +S315400080309DE3BF909DE3BF909DE3BF9021044444E0 +S31540008040A014211123088888A2146222250CCCCCC6 +S31540008050A414A33327111111A614E044291555552C +S31540008060A81521552B199999AA1562662D1DDDDD96 +S31540008070AC15A3772F222222AE15E088011000000E +S31540008080E03FBFE0E43FBFE8E83FBFF0EC3FBFF86A +S315400080908210001E8220601CC0A041E08220600841 +S315400080A0C0A041E082206008C0A041E08220600874 +S315400080B0C0A041E0C0A002209DE3BF909DE3BF90D9 +S315400080C081E8000081E80000010000000100000096 +S315400080D0E01FBFE0E41FBFE8E81FBFF0EC1FBFF89A +S315400080E0EC6FBFF8EC7FBFF8010000000100000014 +S315400080F081E8000081E8000081E8000081E8000096 +S3154000810081E8000081C7E00881E80000A750000030 +S31540008110AA102400A8102300EC854320EA850320FA +S315400081202F100020AE15E160EE05C000E805C00046 +S31540008130EA05E004EC05E008AC15A000C0A5830004 +S31540008140EA250000AE05E00C2B100020AA15616060 +S31540008150EE25400081C4400081CC80000100000033 +S3154000816000000000010000000000000000000000C8 S3154000817000000000000000000000000000000000B9 S3154000818000000000000000000000000000000000A9 -S315400081900000000001000000010000000100000096 -S315400081A00100000001000000010000000100000085 +S315400081900000000000000000000000000000000099 +S315400081A00000000001000000010000000100000086 S315400081B00100000001000000010000000100000075 -S315400081C00100000001000000010000000100000065 +S315400081C081C3E008D0A003200100000001000000A8 S315400081D00100000001000000010000000100000055 -S315400081E00100000001000000010000000100000045 -S315400081F00100000001000000010000000100000035 -S315400082000100000001000000010000000100000024 -S315400082100100000001000000010000000100000014 -S315400082200100000001000000010000000100000004 +S315400081E09DE3BF90FC2780009007A0019410001EDD +S315400081F0D1E7816AD1E7816A9402A0019002200109 +S31540008200D1E7816AD1E7816AD60780009622C01EEF +S31540008210B0A2E00202800004900020017FFFE4014A +S315400082200100000081C7E00881E80000010000006D S3154000823001000000010000000100000001000000F4 S3154000824001000000010000000100000001000000E4 S3154000825001000000010000000100000001000000D4 @@ -4095,3251 +4095,3366 @@ S3154000FFC001000000010000000100000001000000E7 S3154000FFD001000000010000000100000001000000D7 S3154000FFE001000000010000000100000001000000C7 S3154000FFF001000000010000000100000001000000B7 -S315400100009DE3BF90C207A068A40060261B00003F85 -S315400100109A1363FF030000239E0C800DAC106111FF -S31540010020AB376010820D400DAC03C0169E0F400DDC -S3154001003099372010AC058001820B000DAC05800F6D -S315400100409E0F000DAC058001AC05800F8335A010D5 -S315400100508208400D9E0D800DAC03C001C207A06809 -S3154001006094006034C207A05C93286011C207A0685F -S315400100709E0863FFD607A060C207A074D420400043 -S31540010080D827BFF4EE07A070833620109935A0100B -S31540010090980B000DA136E010A336E008C22DC00032 -S315400100A0F62DE00B9A0D800D82102008B6102045E2 -S315400100B0972AE012AC03400C9612C009C22DE00CFF -S315400100C0F62DE00E9B36200899366010953660086D -S315400100D09336A0109136A008A73CA0088210204074 -S315400100E0B6102011A9376018DA2DE001F02DE00293 -S315400100F0D82DE003D42DE004F22DE005D22DE00603 -S31540010100D02DE007F42DE008E02DE009E22DE00ACC -S31540010110C22DE016F62DE017E42DE011E62DE01094 -S31540010120E82DE01AC02DE00DC02DE00FC02DE012E4 -S31540010130C02DE013C02DE014C02DE015D807A068EE -S315400101409F2BE007C207A0649612C00F92032012AC -S31540010150AC380016E407A06C9B3AE0189130601861 -S31540010160A1306010A3306008B7376008B537201852 -S31540010170B3372008B135A0089F3A6008993AE01094 -S31540010180953AE008EA2DE01BF62DE01CF42DE01E21 -S31540010190F22DE020F02DE018EC2DE019DE2DE026C1 -S315400101A0D22DE027DA2DE02CD82DE02DD42DE02ECE -S315400101B0D62DE02FD02DE030E02DE031E22DE0329A -S315400101C0C22DE033DA07A05CFA2DE01DC207BFF469 -S315400101D080A36000C22DE01FF82DE021C02DE02252 -S315400101E0C02DE023C02DE024C02DE025C02DE02800 -S315400101F0C02DE029C02DE02A0280000EC02DE02B43 -S31540010200B8102000D807A06880A7000C1A80000902 -S31540010210BA05C01CC20C801CC22F6034B80720012D -S31540010220DA07A06880A7000D0ABFFFFBBA05C01C0C -S3154001023081C7E00881E800009DE3BD1040002A34F3 -S3154001024090102000B610000840002A31901020047A -S31540010250BA100008391001447FFFC3E2110040740F -S31540010260A01720D0A6103FDEA8103FADAA103FBE72 -S31540010270AC103FEFAE102020F02720D0E62C200412 -S31540010280E82C2005EA2C2006EC2C2007C02C20085F -S31540010290EE2C2009400002B590100010D004201029 -S315400102A092102000400001CBD40720D0A492200018 -S315400102B0068000650100000015000010D0042010E2 -S315400102C09414800A9210200040000218D60720D0CC -S315400102D0EA2FBF0082103FF2EA2FBEFAE62FBEFE9A -S315400102E0E82FBEFFEC2FBF01EE2FBF03C22FBF0584 -S315400102F0E62FBEF8E82FBEF9EC2FBEFBC02FBEFCA1 -S31540010300EE2FBEFDC02FBF02C02FBF04A010200E8E -S31540010310AA07BFF882054010E0287F00A00420010B -S3154001032080A420FF04BFFFFD82054010AC07BDF845 -S3154001033090100016400003D6921720D080A22000CC -S3154001034002BFFFFD90100016B207BEF890102100C3 -S315400103509210001940000382941720D080A22000F9 -S3154001036002BFFFFC901021009010001D9210001B4F -S315400103704000040F941720D080A2200002BFFFFC4A -S315400103809010001DC207400080A061002280001825 -S31540010390A01020007FFFC39D901020011080001403 -S315400103A0A01020000480002380A060020280001F6C -S315400103B080A0600322800002A21000128205401034 -S315400103C0DA087F00B00C60FF80A340182280000548 -S315400103D0A00420017FFFC38D90102002A0042001BC -S315400103E080A420FF1480001C821720D0808C20031B -S315400103F012800005833C201F82058010E480402046 -S31540010400833C201F8330601E8204000182087FFCEA -S315400104108224000180A0600112BFFFE301000000B9 -S3154001042010BFFFE7A334A01010BFFFE5A334A00817 -S3154001043080A0600022BFFFE2A334A01810BFFFE1F5 -S31540010440820540107FFFC3719010200010BFFF9CB2 -S3154001045015000010DA00601480A3600002800135A7 -S31540010460C20720D08200601CF4804020400029A8A9 -S31540010470901021008210202AC2274000AE100008A9 -S3154001048082102004170037AB1B377BBF9A1363CC0E -S315400104909612E1BEC22DE01315003BC098103FFFF6 -S315400104A09412A020921020DE9132E0089E1020EF97 -S315400104B0A0102008A2102006A4102001A733601026 -S315400104C0A9336008821020DDD82DE005C22DE01C3D -S315400104D0DA2DE01FD82DC000D82DE001D82DE0023D -S315400104E0D82DE003D82DE004E02DE010E22DE012F6 -S315400104F0E42DE015D22DE016D02DE017D62DE018CB -S31540010500DE2DE019D42DE01BE62DE01DE82DE01E81 -S31540010510D22DE006D02DE007D62DE008DE2DE009EC -S31540010520C02DE00AD42DE00BE02DE00CE22DE00DCC -S31540010530C02DE00EE42DE00FC02DE011C02DE014DA -S31540010540C02DE01AC02DE0208336A0189B36A0109E -S315400105509936A008C22DE026DA2DE027D82DE028CD -S31540010560C02DE021C02DE022C02DE023C02DE02486 -S31540010570C02DE025F42DE0299010001640000344DB -S31540010580921720D080A2200002BFFFFD90100016D6 -S31540010590D007400092100017400002F1941720D076 -S315400105A080A2200022BFFFFCD00740009010001D12 -S315400105B09210001B4000037E941720D080A2200099 -S315400105C002BFFFFC9010001D9807BE0ED88B00207D -S315400105D0980B20FF992B20108207BE0FC28840201E -S315400105E0820860FF83286008981300019A07BE10AD -S315400105F0DA8B40209A0B60FFA213000D9607BE11BD -S31540010600D68AC020960AE0FF972AE0108207BE12DA -S31540010610C2884020820860FF832860089612C00184 -S315400106209A07BE13DA8B40209A0B60FFA612C00DC3 -S31540010630A807BD90150037AB17003BC0C023A05C8F -S31540010640C023A060E823A064C023A068C023A06C97 -S31540010650EE23A070FA23A0749412A1BE9612E02054 -S3154001066090100011921000139810001A7FFFFE653A -S315400106709A10001A9010001640000305921720D0D8 -S3154001068080A2200002BFFFFD90100016D007400057 -S3154001069092100017400002B2941720D080A2200089 -S315400106A022BFFFFCD00740009010001D9210001B96 -S315400106B04000033F941720D080A2200002BFFFFCD8 -S315400106C09010001D9807BE24D88B0020992B201826 -S315400106D08207BE25DA8840209A0B60FF9B2B60106B -S315400106E09813000D8207BE26C2884020820860FF0B -S315400106F083286008981300019A07BE27DA8B4020A9 -S315400107009A0B60FFA413000D03000080808C8001CA -S3154001071012800003A134A012A00420019A1020489F -S3154001072082102001DA23A068150037AB17003BC0C1 -S31540010730C223A05CF223A06CE023A060E823A0645E -S31540010740EE23A070FA23A0749412A1BE9612E02063 -S3154001075090100011921000139810001A7FFFFE2985 -S315400107609A10001A90100016400002C9921720D024 -S3154001077080A2200002BFFFFD90100016D007400066 -S315400107809210001740000276941720D080A22000D4 -S3154001079022BFFFFCD00740009010001D9210001BA5 -S315400107A040000303941720D080A2200002BFFFFC23 -S315400107B09010001D9A07BE25C28B4020808860029A -S315400107C022800005A00420017FFFC29090102003E3 -S315400107D0A004200182102048150037AB17003BC00A -S315400107E09810001AE023A060E823A064C223A06801 -S315400107F0C023A05CC023A06CEE23A070FA23A07492 -S3154001080090100011921000139412A1BE9612E0208E -S315400108107FFFFDFC9A10001A901000164000029CC2 -S31540010820921720D080A2200002BFFFFD9010001633 -S31540010830D00740009210001740000249941720D07B -S3154001084080A2200022BFFFFCD00740009010001D6F -S315400108509210001B400002D6941720D080A220009F -S3154001086002BFFFFC9010001DC207400080A0607CC3 -S3154001087022800005A605A0347FFFC26490102004A3 -S31540010880A605A03410800013A01020000480002289 -S3154001089080A060020280001D80A0600322800002C9 -S315400108A0B00CA0FF82054010DA087F0080A34018F3 -S315400108B022800005A00420017FFFC254901020052C -S315400108C0A004200180A4204714800018A604E0015A -S315400108D0808C200312800004833C201FE484C020C6 -S315400108E0833C201F8330601E8204000182087FFC06 -S315400108F08224000180A0600112BFFFE5A334A0104D -S3154001090010BFFFE9B00C60FFA334A00810BFFFE69B -S31540010910B00C60FF80A0600022BFFFE3B134A01895 -S3154001092010BFFFE28205401040002880901000175A -S3154001093081C7E00891E820009DE3BF88F027A044E5 -S31540010940C207A04482004001901000014000287077 -S315400109500100000082100008C227BFF4DA07BFF485 -S31540010960C207A0449A034001C207A04482007FFF08 -S3154001097082380001820B4001C227BFF4C207BFF48F -S31540010980C227BFF0C027BFECC207BFEC80A0607F83 -S315400109901480000C01000000C207BFEC9B286003D5 -S315400109A0C207BFF082034001C0204000C207BFEC2E -S315400109B082006001C227BFEC10BFFFF401000000B6 -S315400109C0C207BFF4B010000181C7E00881E800000A -S315400109D09DE3BF90F027A044F227A048F427A04CFE -S315400109E0C207A04C820060109010000140000046F2 -S315400109F001000000D027BFF4C207BFF48208600897 -S31540010A0080A06000028000040100000010BFFFF5D5 -S31540010A1001000000C207A0449B28600BC207A04802 -S31540010A208208601F8328600682134001821060029B -S31540010A30C227BFF4C207A04C82006010901000018B -S31540010A40D207BFF44000002701000000C207A04CB6 -S31540010A5082006010901000014000002B0100000050 -S31540010A60D027BFF4C207BFF48208600880A06000A7 -S31540010A70028000040100000010BFFFF501000000E4 -S31540010A80C207BFF48208601080A060001280001087 -S31540010A9001000000C207A04C8200601090100001C6 -S31540010AA04000001901000000D027BFF4C207BFF47F -S31540010AB0833060101B00003F9A1363FF8208400D8C -S31540010AC0C227BFF0108000040100000082103FFFE2 -S31540010AD0C227BFF0F007BFF081C7E00881E80000F8 -S31540010AE09DE3BF98F027A044F227A048C207A0443F -S31540010AF0FA07A048FA204000B010000181C7E0087B -S31540010B0081E800009DE3BF90F027A044C207A044BE -S31540010B10C2804020C227BFF4C207BFF4B010000113 -S31540010B2081C7E00881E800009DE3BF90F027A0441B -S31540010B30F227A048F427A04CF627A050C207A050A0 -S31540010B4082006010901000017FFFFFEF010000005E -S31540010B50D027BFF4C207BFF48208600880A06000B6 -S31540010B60028000040100000010BFFFF501000000F3 -S31540010B70DA07A04C0300003F821063FF820B40015D -S31540010B809B286010C207A0448328600B9A1340013A -S31540010B90C207A0488208601F83286006821340016D -S31540010BA082106001C227BFF4C207A05082006010C4 -S31540010BB090100001D207BFF47FFFFFCA0100000079 -S31540010BC0C207A05082006010901000017FFFFFCE47 -S31540010BD001000000D027BFF4C207BFF482086008B5 -S31540010BE080A06000028000040100000010BFFFF5F4 -S31540010BF00100000081C7E00881E800009DE3BF983D -S31540010C00F027A044F227A048DA07A044C207A0482B -S31540010C10C2084000C22B6004D807A0449A102001A4 -S31540010C20C207A04882034001C2084000C22B2005EA -S31540010C30D807A0449A102002C207A0488203400167 -S31540010C40C2084000C22B2006D807A0449A102003B0 -S31540010C50C207A04882034001C2084000C22B2007B8 -S31540010C60D807A0449A102004C207A0488203400135 -S31540010C70C2084000C22B2008D807A0449A1020057C -S31540010C80C207A04882034001C2084000C22B200986 -S31540010C90C207A044C200400096006008C207A048AF -S31540010CA0C2084000820860FF992860089A10200116 -S31540010CB0C207A04882034001C2084000820860FF83 -S31540010CC0821300019010000B921000017FFFFF85F7 -S31540010CD001000000C207A044C20040009600600C1B -S31540010CE09A102002C207A04882034001C208400070 -S31540010CF0820860FF992860189A102003C207A0480D -S31540010D0082034001C2084000820860FF83286010C8 -S31540010D10981300019A102004C207A048820340019B -S31540010D20C2084000820860FF8328600898130001CA -S31540010D309A102005C207A04882034001C20840001C -S31540010D40820860FF821300019010000B921000018F -S31540010D507FFFFF640100000082102001B0100001F6 -S31540010D6081C7E00881E800009DE3BF80F027A044E9 -S31540010D70C207A044D00040007FFFFF63010000008E -S31540010D80D027BFF4DA07A044C207BFF48330601B03 -S31540010D9082086001C223600CDA07A044C207BFF48F -S31540010DA08330601F82086001C2236014C207A044D9 -S31540010DB0C200601480A06000128000130100000090 -S31540010DC0C207A044D0004000921020407FFFFF455B -S31540010DD001000000C207A044D00040007FFFFF4A47 -S31540010DE001000000D027BFF4C207BFF4820860406B -S31540010DF080A06000028000040100000010BFFFF6E1 -S31540010E0001000000C207A044C200400082006010F9 -S31540010E10901000017FFFFF3C01000000D027BFF486 -S31540010E20DA07A044C207BFF48330600B8208601F13 -S31540010E30C2236010E007A044901024007FFFFEBF4C -S31540010E4001000000D0242018E007A044901024009F -S31540010E507FFFFEBA01000000D024201CC207A04437 -S31540010E60C200400082006014DA07A04490100001DD -S31540010E70D20360187FFFFF1B01000000C207A04498 -S31540010E80C200400082006018DA07A04490100001B9 -S31540010E90D203601C7FFFFF1301000000C207A0447C -S31540010EA0C0206020C207A044C0206024C207A044DD -S31540010EB0C0206028C207A044C020602CC207A044BD -S31540010EC0C200601480A0600012800083010000000F -S31540010ED0C207A044DA07A044D00060109210200057 -S31540010EE015000020D60340007FFFFF1001000000DF -S31540010EF0C207A044DA07A044D00060109210200037 -S31540010F00D40340007FFFFEB301000000D027BFF4A9 -S31540010F10DA07BFF403000020820B400180A0600085 -S31540010F20028000040100000010BFFFF20100000032 -S31540010F30C027BFF0C207BFF41B0000048208400D62 -S31540010F4080A060000280001701000000C207A04493 -S31540010F50DA07A044D000601092102001D40340006B -S31540010F607FFFFE9C0100000082100008820860207D -S31540010F7080A060001280000B01000000C207BFF094 -S31540010F8082006001C227BFF0DA07BFF003000030DC -S31540010F908210635080A3400104BFFFED01000000B1 -S31540010FA0C207A044DA07A044D00060109210200086 -S31540010FB0D40340007FFFFE8701000000D027BFF425 -S31540010FC0C207A044C200600C80A0600002800012EB -S31540010FD001000000C207BFF41B0000088208400D53 -S31540010FE080A060001280000C01000000C207BFF41F -S31540010FF08208604080A06000028000070100000076 -S3154001100082102001C227BFE4C027BFE81080001F1D -S3154001101001000000C207BFF41B0000088208400D12 -S3154001102080A060000280000C01000000C207BFF4EE -S315400110308208604080A06000128000070100000025 -S31540011040C027BFE482102001C227BFE81080000FED -S3154001105001000000C207BFF41B0000088208400DD2 -S3154001106080A060001280000901000000C207BFF4A1 -S315400110708208604080A060001280000401000000E8 -S31540011080C027BFE4C027BFE8C207BFF4833060086A -S3154001109082086001C227BFECD807A044C207BFEC53 -S315400110A09B286004C207BFE8832860079A13400162 -S315400110B0C207BFE48328600882134001D0030000C1 -S315400110C0921000017FFFFE87010000001080001B87 -S315400110D001000000C027BFF0C207BFF080A0600238 -S315400110E01480001601000000C207A044C20040005F -S315400110F082006010901000017FFFFE830100000016 -S31540011100D027BFF4C207BFF48208600880A0600000 -S315400111100280000501000000C027BFF010BFFFEFAD -S3154001112001000000C207BFF082006001C227BFF084 -S3154001113010BFFFEA01000000C207A044820060041C -S31540011140D007A044921000017FFFFEAD01000000D0 -S31540011150B010000181C7E00881E800009DE3BF901F -S31540011160F027A044F227A048F427A04CD807A04C6A -S31540011170C207A04CC20060209B286003C20320180E -S3154001118082034001901000017FFFFE5F01000000D5 -S31540011190821000088208680080A060000280000575 -S315400111A001000000C027BFF4108000360100000096 -S315400111B0D807A04CC207A04CC20060209B28600300 -S315400111C0C20320189A034001C207A048C223600403 -S315400111D0C207A04CC200602080A0607F1280001030 -S315400111E001000000D807A04CC207A04CC2006020F5 -S315400111F09B286003C203201898034001DA07A044E4 -S315400112000300000682134001C2230000C207A04C1E -S31540011210C02060201080001001000000D807A04CBB -S31540011220C207A04CC20060209B286003C20320185D -S315400112309A034001C207A04482106800C2234000BD -S31540011240DA07A04CC207A04CC200602082006001B0 -S31540011250C2236020C207A04CE0004000C207A04C58 -S31540011260D00040007FFFFE280100000082100008E8 -S3154001127082106001C224000082102001C227BFF4FF -S31540011280F007BFF481C7E00881E800009DE3BF9005 -S31540011290F027A044F227A048D807A048C207A04893 -S315400112A0C20060249B286003C203201C82034001C4 -S315400112B0901000017FFFFE1401000000821000081B -S315400112C08208680080A060000280000501000000DD -S315400112D0C027BFF41080003301000000D807A048A2 -S315400112E0C207A048C20060249B286003C203201C99 -S315400112F09A034001C207A044C2236004C207A04822 -S31540011300C200602480A0607F1280000E01000000B0 -S31540011310D807A048C207A048C20060249B286003A2 -S31540011320C203201C9A03400103000006C223400069 -S31540011330C207A048C02060241080000F01000000B1 -S31540011340D807A048C207A048C20060249B28600372 -S31540011350C203201C9A03400182102800C223400088 -S31540011360DA07A048C207A048C20060248200600193 -S31540011370C2236024C207A048E0004000C207A0483B -S31540011380D00040007FFFFDE0010000008210000810 -S3154001139082106002C224000082102001C227BFF4DD -S315400113A0F007BFF481C7E00881E800009DE3BF90E4 -S315400113B0F027A044F227A048F427A04CD807A04C18 -S315400113C0C207A04CC200602C9B286003C203201CAC -S315400113D082034001901000017FFFFDCB0100000018 -S315400113E082100008C227BFF4C207BFF48208680012 -S315400113F080A060001280001801000000DA07A044B6 -S31540011400C207BFF4820867FFC2234000C207A04C4F -S31540011410C200602C80A0607F12800006010000009F -S31540011420C207A04CC020602C1080000701000000BC -S31540011430DA07A04CC207A04CC200602C82006001B2 -S31540011440C223602C82102001C227BFF01080000306 -S3154001145001000000C027BFF0F007BFF081C7E008D8 -S3154001146081E800009DE3BF90F027A044D807A0443F -S31540011470C207A044C20060289B286003C20320180B -S3154001148082034001901000017FFFFD9F0100000093 -S3154001149082100008C227BFF4C207BFF48208680061 -S315400114A080A060001280001401000000C207A04421 -S315400114B0C200602880A0607F128000060100000003 -S315400114C0C207A044C0206028108000070100000028 -S315400114D0DA07A044C207A044C20060288200600126 -S315400114E0C223602882102001C227BFF0108000036A -S315400114F001000000C027BFF0F007BFF081C7E00838 -S3154001150081E800009DE3BF987FFFBF361100403060 -S3154001151080A22000128000F382102001C226200CF6 -S31540011520C0262004C0260000C026200882102002C2 -S31540011530C2262008C0260000C026000082102003D3 -S31540011540C22620089A102083DA262008A21020639A -S31540011550C0260000A2847FFF1CBFFFFE01000000E1 -S31540011560A2102063C2060000A2847FFF1CBFFFFEBB -S3154001157082102002C2262008A4062004C2848020AC -S315400115808088600402BFFFFE01000000C0262008DB -S31540011590C0260000A6102001C28480208338601432 -S315400115A08208603F80A0600122800093A604E0018A -S315400115B082102003C2262008C284802080886001D0 -S315400115C00280000780886004C2860020C284802091 -S315400115D08088600112BFFFFD8088600402BFFFFB67 -S315400115E08088600202BFFFF901000000C026200882 -S315400115F0C026200480A4E001048000082110008058 -S31540011600C28480208208608080A06001028000AE92 -S315400116100100000021100080DA4C20F0DA2600009B -S31540011620C28480208208600480A060010280009A02 -S3154001163001000000C284802080A4E00104800020D3 -S3154001164082102001A210200180A440131680000DB3 -S315400116502B100080A81420F0E00560E890100011DE -S315400116604000247992100010C24D0008A204600186 -S31540011670C226000080A4401306BFFFFA9010001155 -S31540011680C28480208208608080A06001028000922E -S3154001169001000000C2848020833860148208603FC4 -S315400116A080A0401302800004010000007FFFBED7E6 -S315400116B090102006C284802082102001C226200C70 -S315400116C0DA848020808B600112800068010000006E -S315400116D082102083C226200880A4E00102800052A5 -S315400116E001000000C28480208088640002BFFFFEA2 -S315400116F001000000C284802080886001028000537E -S315400117000100000080A4E00124800012A210200004 -S31540011710C28480208330601A80A040130280000476 -S31540011720010000007FFFBEB990102009C2848020CD -S31540011730808861000280005501000000C28480203B -S31540011740808864000280004D01000000A210200044 -S3154001175080A440131680001203100080A81060F088 -S315400117602B100080E08600209010001140002436A6 -S31540011770D20560E8C24D0008A204600180A0401075 -S31540011780028000049010200C7FFFBEA001000000E3 -S3154001179080A4401306BFFFF40100000080A4E001CD -S315400117A00480000F01000000C2848020808861000F -S315400117B01280004201000000C28480208330601AFA -S315400117C080A060001280003A01000000C28480209F -S315400117D0808864001280003301000000C2848020AA -S315400117E0808860011280001D01000000C02620088B -S315400117F03080003CC0260000C284802083386014BB -S315400118008208603F80A0401322BFFFFBA604E0018F -S3154001181080A4E00134BFFF67A604FFFF10BFFF6647 -S3154001182082102003C28480208088600112BFFFB2EB -S3154001183001000000C28480208088600102BFFFFA57 -S315400118400100000030BFFFAC7FFFBE709010200842 -S3154001185010BFFFAE80A4E0017FFFBE6C9010200C4C -S31540011860C02620083080001F7FFFBE6890102007E9 -S3154001187010BFFF99821020837FFFBE649010200B1A -S3154001188010BFFFB4A21020007FFFBE609010200A57 -S3154001189030BFFFAB7FFFBE5D9010200130BFFF66BA -S315400118A07FFFBE5A9010200B30BFFFCD7FFFBE5742 -S315400118B09010200E30BFFFC67FFFBE549010200D02 -S315400118C030BFFFBE7FFFBE519010200410BFFF53B3 -S315400118D0211000807FFFBE4D9010200530BFFF6E66 -S315400118E081C7E00891E8200017100143DA02E0843D -S315400118F0900220109B2B60029812E084D023000DA9 -S31540011900C202E08482006001C222E08481C3E00811 -S3154001191001000000C0220000C022204082103FFF8B -S31540011920C222200C9A10200103100143DA20608460 -S3154001193081C3E008010000009DE3BF780310014424 -S31540011940F02061007FFFBE27110040347FFFFFF288 -S3154001195090100018A010200123100046921000108C -S315400119604000298E901460E8A004200180A4200F35 -S3154001197004BFFFFC92100010C20620208330601C79 -S31540011980AE006001AC10200080A58017168000EDE6 -S315400119900300003FB81063FE2B1001430300002AE9 -S315400119A0B61062AABA102001B410001CB2156084A8 -S315400119B0832DA00C80A5E00114800119A6004018D2 -S315400119C080A5A0001280010A01000000F824E00869 -S315400119D0C204E00880A0401C02800004010000000F -S315400119E07FFFBE0A90102001F824E040C204E04087 -S315400119F080A0401C02800004010000007FFFBE035E -S31540011A0090102002C204E00880A0600012BFFFFED1 -S31540011A1001000000C205608480A0601002800005BC -S31540011A20251001437FFFBDF9901020032510014386 -S31540011A30A0102001A414A084A2102020832C2002EF -S31540011A409A244010D8048001A004200180A3000DEF -S31540011A5002800004901020047FFFBDEC01000000CD -S31540011A6080A4200F04BFFFF7832C2002FA2560844F -S31540011A70F624C000F424E040C204C00080A0401B0C -S31540011A8002800004A010001A7FFFBDE090102005DF -S31540011A90C204E04080A04010028000040100000022 -S31540011AA07FFFBDDA90102005F424E008C204E00867 -S31540011AB080A0600012BFFFFE01000000C2056084E5 -S31540011AC080A0601002800005251001437FFFBDCF35 -S31540011AD09010200625100143A0102001A414A084D3 -S31540011AE0A210201F9B2C2002C204800D80A0401111 -S31540011AF0A0042001A2047FFE02800004901020076A -S31540011B007FFFBDC20100000080A4200704BFFFF78C -S31540011B109B2C2002A4066028A210201CA0102005A0 -S31540011B20C204800080A04011A404A004A2047FFE48 -S31540011B3002800004901020087FFFBDB40100000020 -S31540011B40A0843FFF1CBFFFF701000000FA27BFE852 -S31540011B50C207BFE882006001C227BFECDA07BFECCB -S31540011B609A036001DA27BFF0C207BFF08200600125 -S31540011B70C227BFF49A102006DA27BFD8C024C00076 -S31540011B80C024E040FA256084A0102002E024E04011 -S31540011B90E024E0088344400080886100028000051B -S31540011BA0010000008050000180500001805000017A -S31540011BB0C207BFD8C227BFDCDA07BFD880A36006F9 -S31540011BC002800004010000007FFFBD909010200AB2 -S31540011BD0E024E00801000000C207BFD8C227BFDCED -S31540011BE0DA07BFD880A36006028000040100000026 -S31540011BF07FFFBD869010200AE024E0080100000026 -S31540011C00C027BFDCC207BFDC80A0600012800096FF -S31540011C1001000000C204E00880A0600012BFFFFE80 -S31540011C2001000000C205608480A0600402800005B6 -S31540011C300300003F7FFFBD759010200D0300003F5C -S31540011C40C024E040821063FEC224E0080310014331 -S31540011C509A102001DA206084400003E70100000069 -S31540011C60400003E790122F0082103FFFC224E0405C -S31540011C70C204E04080A0600002BFFFFE01000000F8 -S31540011C80C205608480A0600202800004A0156084C1 -S31540011C907FFFBD5E9010200EC204200480A0601F0D -S31540011CA002800004010000007FFFBD589010200F04 -S31540011CB0400003D1A8100010400003D190023F001C -S31540011CC0A0102002A4102020400003CB01000000F8 -S31540011CD0400003CB90023F00C2056084A20420016C -S31540011CE080A0401102800004901020107FFFBD4764 -S31540011CF001000000832C20029A248010D80500019F -S31540011D00A010001180A3000D028000049010201144 -S31540011D107FFFBD3E0100000080A4200F04BFFFEB02 -S31540011D2001000000C024E040AC05A00182103FFF45 -S31540011D30C224E00C80A5801706BFFF1F832DA00C8F -S31540011D4080A5E0010480004B01000000C02620244C -S31540011D50C206202480A060001280003F01000000DE -S31540011D6021040000E0262024C206202480A0401041 -S31540011D7002800005821020017FFFBD2490102014AF -S31540011D8082102001C2262020C0262024C2062024FB -S31540011D9080A0401002800004010000007FFFBD1BAF -S31540011DA090102015C0262020C0262024C2062024BB -S31540011DB080A06000128000240100000082102002F1 -S31540011DC0C2262020DA062020808B60020280001B7A -S31540011DD001000000C0262020C20620208088600223 -S31540011DE00280002401000000308000117FFFFECAFE -S31540011DF0901000139B2DA01CDA24E024C204E02499 -S31540011E008330601C80A0401602BFFEF10100000035 -S31540011E107FFFBCFE9010201230BFFEED7FFFBCF667 -S31540011E209010001610BFFEE880A5A0007FFFBCF70A -S31540011E30901020183080000F7FFFBCF490102017BF -S31540011E4030BFFFE57FFFBCF19010201610BFFFDDCC -S31540011E50821020027FFFBCED9010201310BFFFC2FD -S31540011E60210400007FFFBCE99010200B30BFFF6AC0 -S31540011E7081C7E00891E8200003100143DA0060CCF5 -S31540011E80C023600881C3E008901020009DE3BF9005 -S31540011E902F100144E205E100A0046100271001432F -S31540011EA0C2042004F024E0CC7FFFBCD39010201064 -S31540011EB003018000DA04200482106020808B4001F7 -S31540011EC01280010D01000000DA046100DA27BFF03B -S31540011ED0C204610080A340010280000582102001F6 -S31540011EE07FFFBCCA9010200282102001C224200428 -S31540011EF0DA046100DA27BFF0C204610080A3400121 -S31540011F000280012001000000C0242004DA0461009F -S31540011F10DA27BFF0C204610080A3400102800005B8 -S31540011F2080A720007FFFBCB99010200480A7200025 -S31540011F30128000B780A72001B010200180A6001AA8 -S31540011F4016800017A81020011080000525100047B3 -S31540011F5080A6001A16800013DA04E0CCA206C01847 -S31540011F609014A2789210001180A4601F14BFFFF94B -S31540011F70B00620014000280901000000D805E10013 -S31540011F80C20320409B2D00118210400DC2232040E8 -S31540011F9080A6001A06BFFFF3A206C018DA04E0CCF9 -S31540011FA09606A003C0236004833AE01FC023601055 -S31540011FB098103FFF8330601EAA02C001D8236014E7 -S31540011FC0D823600CA2102000AD3D600280A72000FE -S31540011FD00280008AA810200180A4401C168000ECD3 -S31540011FE0C204E0CC80A7200104800015B010200077 -S31540011FF080A5A0000480001380A0001C9B2C6010CB -S31540012000832C60188210400D992C60088210400C78 -S3154001201082104011993D6002DA04E0CCC22360206F -S31540012020B006200180A72001048000059A036004C0 -S3154001203080A3001814BFFFFA0100000080A0001C15 -S31540012040B0603FFF80A6001A16800016C204E0CC9D -S315400120502501800080A72000028000058206C01865 -S3154001206080A72001028000848206C011C224200478 -S31540012070D804E0CC832D00189B3E4018C22320088B -S31540012080808B6001128000859A10000CB0062001F9 -S3154001209080A6001A06BFFFF180A72000C204E0CC4B -S315400120A0C0206008808E600112800009B0102000B7 -S315400120B0B006200180A6201F14800005833E4018EB -S315400120C08088600122BFFFFCB006200180A7200066 -S315400120D0028000068206C01880A720010280000403 -S315400120E08216E0208206C01182106020C22420049C -S315400120F0DA04E0CC832D0018C2236008C2036008CD -S3154001210080A0600012BFFFFE01000000C20420044F -S31540012110808860200280009801000000DA042004D3 -S3154001212003010000808B4001028000900100000005 -S31540012130DA04200403008000808B4001028000887D -S3154001214001000000C2042008C227BFF0DA04200CB7 -S31540012150DA27BFF4C204E0CC992D0018D8206008D4 -S315400121609A100001C203600880A0600012BFFFFE02 -S3154001217001000000C20420048088602002800075AE -S3154001218001000000DA04200403010000808B4001B5 -S315400121900280006D01000000DA0420040300800083 -S315400121A0808B40010280006501000000DA042008AE -S315400121B0C207BFF080A0400D02800004010000006C -S315400121C07FFFBC129010200EDA04200CC207BFF428 -S315400121D080A0400D02800005030180007FFFBC0BFB -S315400121E09010200F03018000C224200480A7200004 -S315400121F012BFFF7AA204600180A4600004BFFF7B86 -S3154001220080A7200110800062C204E0CC0280003D1C -S3154001221011100047B010200080A6001C16BFFF60B9 -S31540012220A8102001108000052510004780A6001C3B -S3154001223016BFFF5CDA04E0CCA206C0189014A2785F -S315400122409210001180A4601F14BFFFF9B00620014F -S315400122504000275201000000D805E100C20320409A -S315400122609B2D00118210400DC223204010BFFFF16B -S3154001227080A6001CF6242004D804E0CC832D001847 -S315400122809B3E4018C2232008808B600122BFFF81FC -S31540012290B00620019A10000CC203600880A06000BD -S315400122A012BFFFFE01000000DA0420040301000012 -S315400122B0808B40010280001E01000000DA042004E8 -S315400122C003008000808B400102800016010000005F -S315400122D0E4242004C20420048088401222BFFF6DFA -S315400122E0B00620017FFFBBC99010200710BFFF69D0 -S315400122F0B00620017FFFBBC59010200130BFFEF321 -S3154001230090122278400027259210001BDA05E10041 -S31540012310832F001BC223604010BFFF22DA04E0CCAA -S315400123207FFFBBBA9010200630BFFFEA7FFFBBB7E5 -S315400123309010200530BFFFE27FFFBBB49010200D07 -S3154001234030BFFF9B7FFFBBB19010200C30BFFF9386 -S315400123507FFFBBAE9010200B30BFFF8B7FFFBBAB27 -S315400123609010200A30BFFF787FFFBBA8901020094C -S3154001237030BFFF707FFFBBA59010200830BFFF68BC -S315400123807FFFBBA29010200330BFFEE0C020600C4F -S31540012390DA05E100C023604082103FFFC223600C92 -S315400123A081C7E00891E820009DE3BF983B100144B6 -S315400123B0E60761007FFFBB9090102011C024E01C0E -S315400123C0C204E01C80A060000280004801000000B9 -S315400123D0C204E01C8330601B80A0401A0A80003F83 -S315400123E001000000A410200080A4801A1A80004237 -S315400123F02D100143AA102001AE15A084A32CA002E2 -S31540012400E00640117FFFFD4490100013A804A0018F -S315400124109B2D4012832D20108210400DC224E01CBA -S315400124209A103FFFDA24E040D80600119A10201F87 -S31540012430DA232004A0043FFFDA230000A12C200464 -S315400124408204000C9A102005DA206010C020601426 -S31540012450EA2060189A100001C203601080A0600053 -S3154001246012BFFFFE01000000A004000CC2042010B0 -S3154001247080A0600002BFFFFE01000000C0242018BA -S31540012480C205A08480A06002028000069A04A011C1 -S31540012490900480127FFFBB5D900220039A04A01135 -S315400124A0C205E00480A0400D22800006A41000145D -S315400124B0900480127FFFBB5590022004A4100014A3 -S315400124C0C024E01C80A5001A0ABFFFCEA32CA0029F -S315400124D01080000ADA0761007FFFBB4C9010200292 -S315400124E010BFFFC2A41020007FFFBB4890102001FF -S315400124F030BFFFB8DA076100C023604082103FFF5A -S31540012500C223600C81C7E00891E820009DE3BF9893 -S315400125107FFFBB4D0100000080A220000280002603 -S3154001252080A6200012800029010000007FFFBB46E3 -S3154001253001000000912A20047FFFBB2F9002200357 -S315400125404000186C0100000080A220001280002B80 -S31540012550010000004000182A01000000400017E376 -S3154001256001000000400002260100000080A6A000F4 -S315400125701280002D031001447FFFBB33B410610468 -S31540012580912A2002C206800880A060001280003095 -S3154001259080A6200012800039010000004000048D11 -S315400125A00100000040001E0101000000400015C06E -S315400125B081E800007FFFBB0B1100400C80A6200084 -S315400125C002BFFFDB010000007FFFBBB7901000197F -S315400125D07FFFBB1D01000000912A20047FFFBB063F -S315400125E090022003400018430100000080A2200011 -S315400125F002BFFFD9010000007FFFBB0490102001FC -S31540012600400017FF01000000400017B8010000001C -S31540012610400001FB0100000080A6A00002BFFFD7D9 -S315400126200310014440001DEC010000000310014469 -S315400126307FFFBB05B4106104912A2002C2068008BF -S3154001264080A0600002BFFFD480A620007FFFBAFEB3 -S31540012650010000007FFFBAFCA0100008912A200269 -S31540012660C20680089FC040009010001080A620003E -S3154001267002BFFFCB010000007FFFBB9B90100019FA -S31540012680400004540100000040001DC80100000044 -S315400126904000158781E80000010000000310014356 -S315400126A0DA0060D09A036001DA2060D081C3E00885 -S315400126B0010000009DE3BF987FFFBACA1100404464 -S315400126C0D806200882103FFFC2262004DA06000001 -S315400126D0C206000080A340010280006FA60B2007BE -S315400126E08210201FC2262004C226000080A4E000DA -S315400126F00280003382100018A2100013C020601817 -S31540012700A2847FFF12BFFFFE82006010A21020004C -S3154001271080A440131680002B80A4E001A810200F4E -S31540012720A01000187FFFBAB490100011C0242010E9 -S31540012730E824201482102006C2242018DA0420102E -S3154001274080A3600F02800004010000007FFFBAAF42 -S3154001275090102003E82420189A10200EC20420105D -S3154001276080A0400D12BFFFFE010000009A837FFF4B -S315400127701CBFFFFBA4100010C204201080A0600FF4 -S3154001278012BFFFFE01000000C204201880886010BD -S315400127900280003582102010C224A018DA042018C5 -S315400127A0808B60101280003801000000A204600195 -S315400127B080A4401306BFFFDCA004201080A4E001E2 -S315400127C01480001080A4E0000280000782100018E7 -S315400127D0A2100013C0206018A2847FFF12BFFFFE23 -S315400127E08200601021100144C204210080A06000D3 -S315400127F00280002D111000491080000D9210001921 -S315400128007FFFBA7D901020088210200FC226201823 -S315400128109A10202FDA262028C206202080A0600D9B -S3154001282012BFFFFE80A4E00030BFFFE8400025DB79 -S315400128309012229C7FFFFC38D00421008210200197 -S3154001284083284019DA042100C22360409810200FE2 -S31540012850D82620148210200DC2262018A7800000F9 -S31540012860308000117FFFBA69901020048210201039 -S31540012870C224A018DA042018808B601022BFFFCD35 -S31540012880A20460017FFFBA619010200510BFFFC905 -S31540012890A20460017FFFBA5D9010200110BFFF9234 -S315400128A08210201F81C7E00881E800000000000077 -S315400128B000000000000000000000000000000000D1 -S315400128C001000000010000000100000001000000BD -S315400128D0010000000100000081C3E0080100000082 -S315400128E0010000000100000001000000010000009D -S315400128F0010000000100000081C3E0080100000062 -S31540012900010000000100000001000000010000007C -S31540012910010000000100000081C3E0080100000041 -S31540012920010000000100000001000000010000005C -S31540012930010000000100000081C3E0080100000021 -S31540012940D482018090A2000916BFFFFE9612800B29 -S3154001295081C3E0089010000BD48201C090A2000907 -S3154001296016BFFFFE9612800B81C3E0089010000B44 -S3154001297090A22004C0A201A090A22004C0A201A05E -S3154001298090A22004C0A201A090A22004C0A201A04E -S31540012990C0A2018090A2200414BFFFF701000000ED -S315400129A081C3E0080100000090A22004C0A201E01A -S315400129B090A22004C0A201E090A22004C0A201E09E -S315400129C090A22004C0A201E0C0A201C090A22004AE -S315400129D014BFFFF70100000081C3E00801000000B9 -S315400129E0981000089610000A98A3200814BFFFFF0C -S315400129F0D43B00099810000898A3200814BFFFFF94 -S31540012A00C01B00099810000898A32004D6030009AA -S31540012A1080A2C00A1280000698A3200434BFFFFD9D -S31540012A20D603000981C3E0089010200090102001D0 -S31540012A30981000089610000A98A3200814BFFFFFBB -S31540012A40D43B00099810000898A32004D603000936 -S31540012A5080A2C00A1280000698A3200434BFFFFD5D -S31540012A60D603000981C3E008901020009010200190 -S31540012A709810000898A32004D2A301A0DA8301A0EC -S31540012A8080A340091280000698A3200414BFFFFCCE -S31540012A90D2A301A081C3E00890102000901020012C -S31540012AA09A1000089AA3400AD6A34180D883418050 -S31540012AB0981B000B988B0009128000069AA3400AC6 -S31540012AC014BFFFFBD6A3418081C3E00890102000CC -S31540012AD0901020019A1000089AA3400BD8A241CD2C -S31540012AE0C48241CD8418800C8488800A12800006F5 -S31540012AF09AA3400B14BFFFFBD8A241CD81C3E00886 -S31540012B0090102000901020010100000001000000FB -S31540012B10010000001310008092126138D402400077 -S31540012B2080A2A0011280000780A0A002D40240002A -S31540012B30D4024000952AA002108000050100000041 -S31540012B403280000381E80000D402400081E00000A9 -S31540012B5093480000818A60202310004AA2146378BA -S31540012B60A40460040100000081C4400081CC8000BF -S31540012B7091D0200191D020012680000590002001AE -S31540012B8090222001912A2001912A200281C3E00846 -S31540012B900100000081C3E008D082004081C3E00803 -S31540012BA0D2A2004081C3E008D082018081C3E008FF -S31540012BB0D2A2018081C3E008D08201A081C3E0088E -S31540012BC0D2A201A081C3E008D08201C081C3E0083E -S31540012BD0D2A201C081C3E008D08201E081C3E008EE -S31540012BE0D2A201E081C3E008D2A2000081C3E0087D -S31540012BF0D082000081C3E00891480000818A00002C -S31540012C0001000000010000000100000081C3E0084E -S31540012C100100000081C3E008C0A000A081C3E00814 -S31540012C20C0A000C081C3E008D01A00000100000026 -S31540012C300100000001000000010000000100000049 -S31540012C409DE3BF7013100072CD1A6260CD3FBFE0A5 -S31540012C50111000801B100080C91B61E0C51A21D8E4 -S31540012C60C11FBFE095A088C4D53FBFF0D91FBFF0B3 -S31540012C7003100080D11861E881AB0A4801000000C9 -S31540012C800380002BC13FBFD8F91FBFD8B5A0055C53 -S31540012C90F53FBFF0ED1FBFF0F11FBFF0A5A5895865 -S31540012CA0E91FBFE0A1A488D415100072A1A001308C -S31540012CB0DD1AA26881AC0ACE010000000D80002D0C -S31540012CC0F53FBFD0C51FBFD083A018C291A04921EF -S31540012CD099A01928D51FBFE091A308CA1710007201 -S31540012CE091A00128FD1AE27081AA0ADE01000000C6 -S31540012CF00D80002F01000000400001AE01000000E0 -S31540012D004000020C0100000080A220001280003128 -S31540012D1001000000400002610100000080A2200085 -S31540012D200280003501000000308000317FFFB93755 -S31540012D3090102001F91FBFD8B5A0055CF53FBFF043 -S31540012D40ED1FBFF0F11FBFF0A5A58958E91FBFE0F0 -S31540012D50A1A488D415100072A1A00130DD1AA26881 -S31540012D6081AC0ACE010000001BBFFFD7F53FBFD0A3 -S31540012D707FFFB92690102002C51FBFD083A018C27D -S31540012D8091A0492199A01928D51FBFE091A308CA4E -S31540012D901710007291A00128FD1AE27081AA0ADE7D -S31540012DA0010000001BBFFFD5010000007FFFB917DE -S31540012DB0901020034000017F01000000400001DD2A -S31540012DC00100000080A2200002BFFFD301000000E5 -S31540012DD07FFFB90E010000004000023001000000F3 -S31540012DE080A2200002800004010000007FFFB90795 -S31540012DF09010200581C7E00881E800009DE3BF9857 -S31540012E007FFFFF7D210000047FFFFF7D90120010B0 -S31540012E107FFFFF79B0102000808A00100280000BEE -S31540012E209010200040000267010000007FFFB906B4 -S31540012E3001000000912A20047FFFB8EF900220088C -S31540012E407FFFFF800100000081C7E00881E80000A4 -S31540012E501910008098132178111002009210200059 -S31540012E60150FF76C9412A3D7D03B0000D42320084A -S31540012E70C11B0000C503200887A08922010000006C -S31540012E8089A005408DA0892281A8CA26010000009B -S31540012E9033800003901020009010200181C3E00888 -S31540012EA001000000C11A0000C51A400089A008426D -S31540012EB081C3E008C93A8000C11A0000C51A400022 -S31540012EC089A0094281C3E008C93A800019100080EF -S31540012ED098132178D0230000D2232008C103000093 -S31540012EE0C303200885A00D2181C3E008C53A8000AF -S31540012EF0C11A0000C51A400089A009C2C93A80001A -S31540012F0081C3E00801000000C11A000085A0054008 -S31540012F10C53A400081C3E0080100000001000000FD -S31540012F200100000001000000010000000100000056 -S31540012F300100000001000000010000000100000046 -S31540012F400100000001000000010000000100000036 -S31540012F500100000001000000010000000100000026 -S31540012F600100000001000000010000000100000016 -S31540012F700100000001000000010000000100000006 -S31540012F8001000000010000000100000001000000F6 -S31540012F9001000000010000000100000081A00020A6 -S31540012FA081C3E00801000000C11A000081C3E008A6 -S31540012FB001000000C51A000089A009C2C93A4000B3 -S31540012FC081C3E0080100000013100080921261786D -S31540012FD0D0224000C102400085A01900C53A4000F8 -S31540012FE081C3E008D01A4000131000809212617824 -S31540012FF0D0224000C102400085A01880C522400071 -S3154001300081C3E008D0024000151000809412A178D7 -S31540013010D03A8000C11A800085A01A40C52280009E -S3154001302081C3E008D0028000151000809412A17877 -S31540013030D0228000C102800085A01A20C5228000CE -S3154001304081C3E008D0028000151000809412A17857 -S31540013050D0228000C102800081A01920C13A80009F -S3154001306081C3E008D01A8000151000809412A1781F -S31540013070D03A8000C11A800081A018C0C1228000C8 -S3154001308081C3E008D0028000151000809412A17817 -S31540013090D0228000CB0280008DA00025CD22800069 -S315400130A081C3E008D0028000151000809412A178F7 -S315400130B0D0228000CB0280008DA000A5CD228000C9 -S315400130C081C3E008D0028000151000809412A178D7 -S315400130D0D0228000CB0280008DA00125CD22800028 -S315400130E081C3E008D002800019100080981321782E -S315400130F0D03B0000D43B2008C11B0000C51B200863 -S3154001310081A80A4201000000338000099010200086 -S3154001311029800007901020012D8000059010200283 -S315400131202F8000039010200391D0200081C3E00836 -S31540013130010000001910008098132178D03B00004F -S31540013140D43B2008C11B0000C51B200881A80AC228 -S315400131500100000033BFFFF69010200029BFFFF4A5 -S31540013160901020012DBFFFF2901020022FBFFFF0DB -S315400131709010200391D020001910008098132178D7 +S315400100009DE3BF8099362010D827BFE0AF36200840 +S31540010010EE27BFE4AF366008C607A05CEE27BFEC0B +S31540010020AF36E018C407A060EE27BFF499366010DA +S31540010030AF30E008D827BFE8EE27BFFC8800A026EE +S31540010040EE07A06C993920089736A010D827BFF043 +S315400100501300003F9936E008921263FFA00E800913 +S31540010060A002C010D827BFF89B36E01098090009B6 +S31540010070900EC0091F0000239E13E1119E04000F3C +S315400100809E03C00D9003C0089802000CA1332010B6 +S31540010090980B00099804000C920B00099933201023 +S315400100A0BB2F601292030009992F2011BA17400CF9 +S315400100B0C207A0689008A3FF912A20079817400815 +S315400100C0BA00A034FA25C000EE07BFE09400A012A2 +S315400100D092380009AD36A018EE284000AB36A0088C +S315400100E0A73AA008EE07BFE4F0286002A9326008EB +S315400100F09F30E018EE286001A5332018A33B20105D +S31540010100EE07BFE8A13B20089130E01080A7200010 +S31540010110EE286003EE07BFECF2286005EE28600486 +S31540010120EE07BFF0EE286010EE07BFF4EE28601A26 +S31540010130EE07BFF8C8286011C028600A88103FDE64 +S31540010140EE28601CC028600DC028600FC0286012D0 +S31540010150C828600688103FADC828600788103FBE92 +S31540010160C828600888103FEFC828600988102020F9 +S31540010170C828600B88102008C828600C88102045C4 +S31540010180C828600E88102040C0286013C828601611 +S31540010190C0286014C0286015DA28601B8810201119 +S315400101A0C8286017EE07A064F628601DEC28601E7B +S315400101B0EA286020E8286018D2286019E6286026D7 +S315400101C0D4286027E428602CE228602DE028602EA0 +S315400101D0D828602FDE286030D0286031C807BFFCA0 +S315400101E0C6286033D628601FF4286021C8286032AB +S315400101F0C0286022C0286023C0286024C02860250A +S31540010200C0286028C0286029C028602A0280000DC5 +S31540010210C028602B80A0A0000280000A8810200020 +S31540010220861020009A004004C80DC0048600E001F3 +S3154001023080A0C002C82B603412BFFFFB88100003A8 +S3154001024081C7E00881E800009DE3BD2040002A9473 +S315400102509010200025100124A2100008A814A0D057 +S3154001026040002A8F90102004A01000087FFFC3DFB2 +S315400102701100407482103FDEC22D200482103FAD32 +S31540010280C22D200582103FBEC22D200682103FEFAF +S31540010290C02D2008C22D200782102020C22D200902 +S315400102A0F024A0D04000028A90100014D0052010FE +S315400102B0D404A0D0400001C292102000AC9220008C +S315400102C00680017E01000000D0052010D604A0D092 +S315400102D01500001092102000400001F89415800A84 +S315400102E082103FDEC22FBE9EC22FBE9882103FAD06 +S315400102F0C22FBE9FC22FBE9982103FBEC22FBEA043 +S31540010300C22FBE9A82103FEFC22FBEA1C22FBE9B03 +S3154001031082102020C02FBE9CC22FBEA3C22FBE9DDD +S31540010320C02FBEA282103FF2C02FBEA4C22FBEA5CF +S31540010330A607BE988210200EC22CC0018200600121 +S3154001034080A0610032BFFFFEC22CC001AA07BD9842 +S31540010350AE14A0D090100015400003C692100017AD +S3154001036080A2200002BFFFFD9010001590102100D1 +S3154001037092100013400003729410001780A22000CF +S3154001038002BFFFFC90102100901000109210001146 +S31540010390400004019410001780A2200002BFFFFC18 +S315400103A090100010C204000080A061000280000588 +S315400103B0AE1020007FFFC39B90102001AE1020009D +S315400103C0848DE0031280000580A0A002AC05401791 +S315400103D0EC85802080A0A002028000098335A00818 +S315400103E080A0A003028000068210001680A0A00112 +S315400103F0028000038335A0108335A018C40CC017B2 +S31540010400820860FF80A0800122800005AE05E001E0 +S315400104107FFFC38490102002AE05E00180A5E10074 +S3154001042012BFFFE9848DE003C205201480A060005D +S3154001043002800120B010200003100124EE0060D09C +S31540010440AE05E01CEE85C02040002A159010210023 +S3154001045082103FFFC22A201EC22A0000C22A200162 +S31540010460C22A2002C22A2003C22A2004C22A200507 +S3154001047082103FDEC22A2016C22A200682103FADD4 +S31540010480C22A2017C22A200782103FBEC22A20183C +S31540010490C22A200882103FEFC22A2019C22A200907 +S315400104A082102020C22A201BC22A200B821020083B +S315400104B0C22A2010C22A200C82102006C22A2012EB +S315400104C0C22A200D82102001C02A200AC22A2015E4 +S315400104D0C22A200FC02A200EC02A2011C02A201469 +S315400104E0C02A201A8210202AC22400008210200429 +S315400104F08935E018C22A20138735E01082103FDD86 +S315400105008535E008C22A201C82103FEEC22A201DF2 +S3154001051082103FCCC22A201FC02A2020C82A20266A +S31540010520C62A2027C42A2028C02A2021C02A2022C0 +S31540010530C02A2023C02A2024C02A2025EE2A202989 +S31540010540AC100008A814A0D0901000154000034933 +S315400105509210001480A2200002BFFFFD90100015EA +S31540010560D004000092100016400002F594100014C9 +S3154001057080A2200022BFFFFCD00400009010001092 +S3154001058092100011400003849410001480A22000B0 +S3154001059002BFFFFC90100010B807BDAEF88F0020D7 +S315400105A08607BDAFC688C0208407BDB0C4888020F9 +S315400105B00300003F8408A0FF821063FFB80F20FFAD +S315400105C08728E018B92F20108738E010BA07BDB147 +S315400105D08608C001B8170003B8170002FA8F4020F9 +S315400105E08607BDB2C688C0208407BDB3C4888020B3 +S315400105F08728E0188738E0108208C001BA0F60FFEB +S31540010600BB2F6010BA1740018208A0FFB607BF98FA +S31540010610BA174001C023A060C023A064EC23A068A0 +S31540010620E023A06CF623A05C9010001C9210001DE4 +S315400106309410001796100017981020007FFFFE7146 +S315400106409A102000901000154000030A92100014E1 +S3154001065080A2200002BFFFFD90100015D0040000CB +S3154001066092100016400002B69410001480A2200099 +S3154001067022BFFFFCD0040000901000109210001120 +S31540010680400003459410001480A2200002BFFFFCE5 +S31540010690901000108607BDC4C688C020B207BDC5EC +S315400106A0C28E40208407BDC6C4888020A807BDC726 +S315400106B0E88D0020820860FF83286010A80D20FF86 +S315400106C08728E0188528A018A81500038538A010AA +S315400106D0A81500010300003F821063FF82088001D4 +S315400106E0A815000103000080808D0001833520128A +S315400106F002800003B4006001B4100001821020485A +S31540010700F623A05CE623A064EC23A068E023A06C5A +S31540010710C223A0609010001C9210001D9410001777 +S3154001072096100017981020019A10001A7FFFFE3587 +S31540010730B014A0D090100015400002CE92100018BF +S3154001074080A2200002BFFFFD90100015D0040000DA +S31540010750921000164000027A9410001880A22000E0 +S3154001076022BFFFFCD004000090100010921000112F +S31540010770400003099410001880A2200002BFFFFC2C +S3154001078090100010F28E4020808E60021280004F41 +S315400107900100000082102048F623A05C9410001747 +S315400107A0C023A064EC23A068E023A06C9010001C39 +S315400107B09210001D9A06A001A414A0D0C223A060E5 +S315400107C0961000177FFFFE0F98102000901000151D +S315400107D0400002A89210001280A2200002BFFFFD35 +S315400107E090100015D00400009210001640000254EB +S315400107F09410001280A2200022BFFFFCD00400000A +S315400108009010001092100011400002E39410001263 +S3154001081080A2200002BFFFFC90100010C20400001D +S3154001082080A0607C02800005A207BDCC7FFFC27D0F +S3154001083090102004A207BDCCA0102000848C200378 +S315400108401280000480A0A002E884402080A0A0027B +S31540010850A2046001028000098335200880A0A0031C +S31540010860028000068210001480A0A00102800003CD +S315400108708335201083352018C40CC010820860FFD0 +S3154001088080A0800122800005A00420017FFFC2656F +S3154001089090102005A004200180A4204812BFFFE942 +S315400108A0848C200390100016400028F6B0102000DA +S315400108B081C7E00881E800007FFFC25A90102000FE +S315400108C010BFFE83D00520107FFFC2569010200333 +S315400108D010BFFFB2821020489DE3BF98F027A04485 +S315400108E0C207A044C2804020C227BFFCC207BFFC4A +S315400108F0B010000181E8000081C3E008010000005A +S315400109009DE3BFA0F027A044F227A048C207A04418 +S31540010910C407A048C420400081E8000081C3E00824 +S31540010920010000009DE3BF90F027A044C207A04408 +S315400109308328600190100001400028D90100000081 +S3154001094082100008C227BFF4C407BFF4C207A044FF +S3154001095084008001C207A0448220000182088001F0 +S31540010960C227BFF4C207BFF4C227BFF8C027BFFCE6 +S315400109701080000A01000000C207BFFC8328600303 +S31540010980C407BFF882008001C0204000C207BFFCF7 +S3154001099082006001C227BFFCC207BFFC80A0607F06 +S315400109A004BFFFF601000000C207BFF4B01000010A +S315400109B081E8000081C3E008010000009DE3BF9883 +S315400109C0F027A044F227A048F427A04CC207A04C28 +S315400109D082006010901000017FFFFFC001000000FF +S315400109E082100008C227BFFCC207BFFC820860080C +S315400109F080A0600012BFFFF601000000C207A044BC +S31540010A008528600BC207A0488208601F83286006BC +S31540010A108210800182106002C227BFFCC207A04C2F +S31540010A208200601090100001D207BFFC7FFFFFB526 +S31540010A3001000000C207A04C820060109010000126 +S31540010A407FFFFFA60100000082100008C227BFFCFD +S31540010A50C207BFFC8208600880A0600012BFFFF693 +S31540010A6001000000C207BFFC8208601080A0600040 +S31540010A701280000D01000000C207A04C82006010E8 +S31540010A80901000017FFFFF950100000082100008D1 +S31540010A90C227BFFCC207BFFC833060101080000331 +S31540010AA00100000082103FFFB010000181E8000004 +S31540010AB081C3E008010000009DE3BF98F027A044F0 +S31540010AC0F227A048F427A04CF627A050C207A05011 +S31540010AD082006010901000017FFFFF80010000003E +S31540010AE082100008C227BFFCC207BFFC820860080B +S31540010AF080A0600012BFFFF601000000C207A04CB3 +S31540010B0085286010C207A0448328600B84108001A9 +S31540010B10C207A0488208601F8328600682108001B0 +S31540010B2082106001C227BFFCC207A050820060103C +S31540010B3090100001D207BFFC7FFFFF720100000049 +S31540010B40C207A05082006010901000017FFFFF6332 +S31540010B500100000082100008C227BFFCC207BFFC8B +S31540010B608208600880A0600012BFFFF60100000005 +S31540010B7081E8000081C3E008010000009DE3BFA0B9 +S31540010B80F027A044F227A048C207A048C408400065 +S31540010B90C207A044C4286004C207A048820060017D +S31540010BA0C4084000C207A044C4286005C207A04843 +S31540010BB082006002C4084000C207A044C4286006FF +S31540010BC0C207A04882006003C4084000C207A0448F +S31540010BD0C4286007C207A04882006004C4084000D8 +S31540010BE0C207A044C4286008C207A0488200600525 +S31540010BF0C4084000C207A044C4286009C207A044F3 +S31540010C00C20040008200600884100001C207A0486B +S31540010C10C2084000820860FF87286008C207A048D2 +S31540010C2082006001C2084000820860FF8210C00154 +S31540010C3090100002921000017FFFFF320100000078 +S31540010C40C207A044C20040008200600C841000012B +S31540010C50C207A04882006002C2084000820860FFC5 +S31540010C6087286018C207A04882006003C208400076 +S31540010C70820860FF832860108610C001C207A04821 +S31540010C8082006004C2084000820860FF8328600831 +S31540010C908610C001C207A04882006005C208400014 +S31540010CA0820860FF8210C00190100002921000017C +S31540010CB07FFFFF140100000082102001B0100001E7 +S31540010CC081E8000081C3E008010000009DE3BF8880 +S31540010CD0F027A044C207A044C20040009010000182 +S31540010CE07FFFFEFE0100000082100008C227BFEC14 +S31540010CF0C207BFEC8330601B84086001C207A04471 +S31540010D00C420600CC207BFEC8530601FC207A044F7 +S31540010D10C4206014C207A044C200601480A06000D1 +S31540010D201280001401000000C207A044C200400026 +S31540010D3090100001921020407FFFFEF2010000005A +S31540010D40C207A044C2004000901000017FFFFEE3AD +S31540010D500100000082100008C227BFECC207BFECA9 +S31540010D608208604080A0600012BFFFF601000000CB +S31540010D70C207A044C20040008200601090100001EA +S31540010D807FFFFED60100000082100008C227BFEC9B +S31540010D90C207BFEC8330600B8408601FC207A044C2 +S31540010DA0C4206010901024007FFFFEDF0100000088 +S31540010DB08210000884100001C207A044C4206018B4 +S31540010DC0901024007FFFFED8010000008210000829 +S31540010DD084100001C207A044C420601CC207A0447D +S31540010DE0C20040008200601484100001C207A04482 +S31540010DF0C200601890100002921000017FFFFEC1F0 +S31540010E0001000000C207A044C200400082006018F1 +S31540010E1084100001C207A044C200601C9010000269 +S31540010E20921000017FFFFEB701000000C207A044F7 +S31540010E30C0206020C207A044C0206024C207A0444D +S31540010E40C0206028C207A044C020602CC207A0442D +S31540010E50C200601480A0600012800096010000006C +S31540010E60C207A044C200601084100001C207A0441A +S31540010E70C200400090100002921020001500002090 +S31540010E80961000017FFFFF0D01000000C207A0443C +S31540010E90C200601084100001C207A044C200400095 +S31540010EA09010000292102000941000017FFFFEC4B2 +S31540010EB00100000082100008C227BFECC407BFEC46 +S31540010EC0030000208208800180A0600012BFFFF06D +S31540010ED001000000C027BFF0C407BFEC03000004B7 +S31540010EE08208800180A060000280001F010000008E +S31540010EF01080000B01000000C207BFF082006001B4 +S31540010F00C227BFF0C407BFF0030000308210635010 +S31540010F1080A080011480001301000000C207A04494 +S31540010F20C200601084100001C207A044C200400004 +S31540010F309010000292102001941000017FFFFEA044 +S31540010F4001000000821000088208602080A0600035 +S31540010F5002BFFFEA0100000010800003010000000B +S31540010F6001000000C207A044C200601084100001C5 +S31540010F70C207A044C2004000901000029210200017 +S31540010F80941000017FFFFE8E0100000082100008D0 +S31540010F90C227BFECC207A044C200600C80A060001B +S31540010FA00280001201000000C407BFEC03000008E4 +S31540010FB08208800180A060001280000C01000000C0 +S31540010FC0C207BFEC8208604080A060000280000733 +S31540010FD00100000082102001C227BFFCC027BFF8D4 +S31540010FE01080001F01000000C407BFEC0300000889 +S31540010FF08208800180A060000280000C0100000090 +S31540011000C207BFEC8208604080A0600012800007E2 +S3154001101001000000C027BFFC82102001C227BFF893 +S315400110201080000F01000000C407BFEC0300000858 +S315400110308208800180A06000128000090100000042 +S31540011040C207BFEC8208604080A0600012800004A5 +S3154001105001000000C027BFFCC027BFF8C207BFEC94 +S315400110608330600882086001C227BFF4C207A044EA +S31540011070C200400084100001C207BFF48728600403 +S31540011080C207BFF8832860078610C001C207BFFCAC +S31540011090832860088210C00190100002921000015E +S315400110A07FFFFE18010000001080001C01000000B7 +S315400110B0C027BFF01080001501000000C207A04400 +S315400110C0C200400082006010901000017FFFFE03C5 +S315400110D00100000082100008C227BFECC207BFEC26 +S315400110E08208600880A060000280000501000000BF +S315400110F0C027BFF01080000501000000C207BFF005 +S3154001110082006001C227BFF0C207BFF080A0600223 +S3154001111004BFFFEB01000000C207A0448200600447 +S31540011120D007A044921000017FFFFE950100000008 +S3154001113081E8000081C3E008010000009DE3BFA0F3 +S31540011140F027A044F227A048F427A04CC207A04CA0 +S31540011150C4006018C207A04CC20060208328600307 +S3154001116082008001901000017FFFFDDC010000003C +S31540011170821000088208680080A060000280000595 +S31540011180010000008210200010800036010000009E +S31540011190C207A04CC4006018C207A04CC200602020 +S315400111A08328600382008001C407A048C4206004EC +S315400111B0C207A04CC200602080A0607F1280001050 +S315400111C001000000C207A04CC4006018C207A04C31 +S315400111D0C20060208328600382008001C607A044C4 +S315400111E0050000068410C002C4204000C207A04C7E +S315400111F0C02060201080001001000000C207A04CF2 +S31540011200C4006018C207A04CC20060208328600356 +S3154001121082008001C407A0448410A800C420400075 +S31540011220C207A04CC200602084006001C207A04CE6 +S31540011230C4206020C207A04CE0004000C207A04C79 +S31540011240C2004000901000017FFFFDA40100000094 +S315400112508210000882106001C22400008210200121 +S31540011260B010000181E8000081C3E00801000000E0 +S315400112709DE3BFA0F027A044F227A048C207A0489B +S31540011280C400601CC207A048C200602483286003D2 +S3154001129082008001901000017FFFFD900100000057 +S315400112A0821000088208680080A060000280000564 +S315400112B00100000082102000108000330100000070 +S315400112C0C207A048C400601CC207A048C2006024EF +S315400112D08328600382008001C407A044C4206004BF +S315400112E0C207A048C200602480A0607F1280000E21 +S315400112F001000000C207A048C400601CC207A04804 +S31540011300C200602483286003820080010500000634 +S31540011310C4204000C207A048C02060241080000FAE +S3154001132001000000C207A048C400601CC207A048D3 +S31540011330C200602483286003820080018410280053 +S31540011340C4204000C207A048C20060248400600156 +S31540011350C207A048C4206024C207A048E00040005C +S31540011360C207A048C2004000901000017FFFFD5B0C +S31540011370010000008210000882106002C2240000B1 +S3154001138082102001B010000181E8000081C3E0080D +S31540011390010000009DE3BF98F027A044F227A04832 +S315400113A0F427A04CC207A04CC400601CC207A04C45 +S315400113B0C200602C832860038200800190100001E6 +S315400113C07FFFFD460100000082100008C227BFFCD6 +S315400113D0C207BFFC8208680080A060001280001727 +S315400113E001000000C207BFFC840867FFC207A04492 +S315400113F0C4204000C207A04CC200602C80A0607F80 +S315400114001280000601000000C207A04CC020602CDB +S315400114101080000701000000C207A04CC200602CEA +S3154001142084006001C207A04CC420602C82102001B8 +S31540011430108000030100000082102000B01000015E +S3154001144081E8000081C3E008010000009DE3BF98E8 +S31540011450F027A044C207A044C4006018C207A044B4 +S31540011460C200602883286003820080019010000139 +S315400114707FFFFD1A0100000082100008C227BFFC51 +S31540011480C207BFFC8208680080A06000128000137A +S3154001149001000000C207A044C200602880A0607F0E +S315400114A01280000601000000C207A044C020602847 +S315400114B01080000701000000C207A044C200602856 +S315400114C084006001C207A044C42060288210200124 +S315400114D0108000030100000082102000B0100001BE +S315400114E081E8000081C3E008010000009DE3BFA040 +S315400114F07FFFBF3E1100403080A22000128000AF26 +S3154001150082102001C226200CC0262004C0260000DD +S31540011510C026200882102002C2262008C0260000CC +S31540011520C026000082102003C22620088210208394 +S31540011530C226200882102000C026000082006001D9 +S3154001154080A0606412BFFFFD0100000082102000F0 +S31540011550C40600008200600180A0606412BFFFFDE6 +S315400115600100000082102002C2262008A0062004A5 +S31540011570C28400208088600402BFFFFE0100000093 +S31540011580C0262008C0260000C28400208410200105 +S31540011590833860148208603F80A0600102800004A5 +S315400115A0A21020011080000E82102003C0260000E8 +S315400115B0A200A001C2840020833860148208603FE3 +S315400115C080A0401122BFFFFA8410000180A460016F +S315400115D034800002A210000282102003C226200895 +S315400115E0C28400208208600780A06006028000084D +S315400115F001000000C2860020C284002082086007E4 +S3154001160080A0600612BFFFFC01000000C026200832 +S31540011610C026200480A46001048000048210203486 +S31540011620C284002082102034C2260000C2840020D9 +S31540011630C284002080A46001048000198210200128 +S3154001164029100074A4102001A815215090100012F1 +S31540011650400024DA92102041C24D0008C226000003 +S31540011660A404A00180A4801112BFFFFA90100012B9 +S31540011670C2840020C2840020833860148208603FFF +S3154001168080A0401102800004010000007FFFBEE5FA +S3154001169090102006C284002082102001C226200C10 +S315400116A0C28400208088600112800053821020830A +S315400116B0C226200880A46001028000420100000089 +S315400116C0C28400208088640002BFFFFE0100000042 +S315400116D0C2840020808860010280004F80A460019E +S315400116E00480005280A46000C28400208330601AC6 +S315400116F080A0401102800004010000007FFFBEC9A6 +S3154001170090102009C2840020808861000280004A2E +S3154001171001000000C2840020808864000280004CE1 +S315400117200100000029100074A4102000A8152150C2 +S31540011730E686002092102041400024A0901000121D +S31540011740C24D000880A0401322800005A404A001D8 +S315400117507FFFBEB49010200CA404A00180A44012C7 +S3154001176014BFFFF480A460010480000F0100000053 +S31540011770C2840020808861001280003F0100000081 +S31540011780C28400208330601A80A060001280003736 +S3154001179001000000C284002080886400128000306D +S315400117A001000000E0840020808C20011280000EA0 +S315400117B001000000C026200881C7E00891E820000A +S315400117C0C28400208088600112BFFFC20100000070 +S315400117D0C28400208088600102BFFFFA0100000038 +S315400117E030BFFFBC7FFFBE8F9010200CC026200863 +S315400117F030BFFFF27FFFBE8B9010200782102083FF +S31540011800C226200880A4600112BFFFAE010000007D +S3154001181030BFFFEC7FFFBE839010200880A460019B +S3154001182014BFFFB280A4600034BFFFC0291000740A +S3154001183030BFFFDD7FFFBE7B9010200AC2840020AF +S315400118408088640032BFFFB9291000747FFFBE75DE +S315400118509010200B10BFFFB5291000747FFFBE7199 +S315400118609010200B30BFFFD07FFFBE6E9010200E30 +S3154001187030BFFFC97FFFBE6B9010200D30BFFFC147 +S3154001188003100123C40060848528A0028610608469 +S3154001189090022010D020C002C40060848400A001C0 +S315400118A0C420608481C3E00801000000C02200001A +S315400118B0C022204082103FFFC222200C0310012388 +S315400118C084102001C420608481C3E0080100000027 +S315400118D003100123C20060CC90102000C020600894 +S315400118E081C3E008010000009DE3BFA0231001244D +S315400118F0E00461007FFFBE4490102011C024201CEB +S31540011900C204201C80A060000280004C010000003F +S31540011910C204201C8330601B80A0401A0A80004EFE +S3154001192080A6A0000280003FC20461002B10012363 +S31540011930A6102004AA156084BA102000A410200025 +S31540011940AE103FFFA8102001AC10201FB810200593 +S31540011950BB2F6002C606401DC0240000C0242040A3 +S31540011960EE24200CE8254000832D0012A404A0019A +S31540011970852CA01082108001C224201CEE24204018 +S315400119808928E0049A00FFFFC206001D9800400422 +S315400119909B2B60048400400DEC206004EC20400049 +S315400119A0F8204004C0232004E820A018C4004004C5 +S315400119B080A0A00012BFFFFE010000008728E004BE +S315400119C0C400400380A0A00002BFFFFE010000004A +S315400119D08200400DC0206018C205400080A0600210 +S315400119E002800004010000007FFFBE0E9004FFFF4D +S315400119F0C40560048204A01080A080010280000416 +S31540011A00BA1000127FFFBE0790100013C024201C9D +S31540011A1080A6801218BFFFCFA604E002C20461006F +S31540011A2084103FFFB0102000C0206040C420600CED +S31540011A3081C7E00881E800007FFFBDFA90102001D0 +S31540011A40C204201C8330601B80A0401A1ABFFFB617 +S31540011A5080A6A0007FFFBDF39010200210BFFFB506 +S31540011A602B1001239DE3BF80231001232110012464 +S31540011A70E6042100A404E100C204A004F02460CCE1 +S31540011A807FFFBDE190102010C204A0040501800033 +S31540011A908410A02080884002128001450100000088 +S31540011AA0C404E100C204E10080A080010280000577 +S31540011AB0821020017FFFBDDB9010200282102001A1 +S31540011AC0C224A004C404E100C204E10080A0800154 +S31540011AD00280014201000000C024A004C404E100C8 +S31540011AE0C204E10080A080010280000580A7200099 +S31540011AF07FFFBDCC9010200480A7200012800111E9 +S31540011B0080A7200180A6A0010480001A2F1000465C +S31540011B10A606E001AE15E0D0A8102001AC142100C4 +S31540011B2010800005AA10200180A6801404800011AF +S31540011B30A604E00180A4E01F34BFFFFCA8052001F4 +S31540011B4092100013400028C690100017C20580006D +S31540011B50C4006040872D40138410C002C4206040F9 +S31540011B60A805200180A6801414BFFFF3A604E00156 +S31540011B7080A0001C84603FFFC427BFF0C60460CC30 +S31540011B8082103FFFF627BFF8C027BFFCC020E00404 +S31540011B90C020E010C220E014C220E00C8206A0035F +S31540011BA08538601F8530A01E82008001AF386002F3 +S31540011BB0C207BFF08200401B8416E020C227BFEC5B +S31540011BC0C427BFE829100123AC102001A81520CC59 +S31540011BD0310100003B0080002B01800080A72000DE +S31540011BE002800003821020018210001CC407BFFC42 +S31540011BF080A08001168000CB80A7200104800016BA +S31540011C0080A5E00004800014C207BFFCC407BFFCE6 +S31540011C108928601883286010881100018328A0084C +S31540011C20881100028400E0248811000182102001FD +S31540011C30C820E0201080000680A04017C820800000 +S31540011C40820060018400A00480A0401712BFFFFCFF +S31540011C5001000000C207BFF0E827BFF480A680015B +S31540011C60A2100001048000338400E0081080000EB9 +S31540011C70E607BFECE624A004832D8011C220E008CC +S31540011C80833E401180886001128000138400E00881 +S31540011C90A204600180A6801104800026A604E0010A +S31540011CA0C605000080A7200002BFFFF380A72001E0 +S31540011CB002800079C407BFF8C424A004832D801193 +S31540011CC0C220E008833E40118088600102BFFFF1D7 +S31540011CD08400E008C200800080A0600012BFFFFEC1 +S31540011CE001000000C204A0048088401802800067F9 +S31540011CF001000000C204A0048088401D02800060EB +S31540011D0001000000EA24A004C204A0048088401512 +S31540011D101280005601000000C40500008400A0089E +S31540011D20A204600180A6801114BFFFDEA604E00173 +S31540011D30C020800010800005A210200080A46020F1 +S31540011D400280000780A72000833E40118088600101 +S31540011D5022BFFFFBA204600180A720001280005130 +S31540011D6080A720018204401B82106020C224A00467 +S31540011D70A32D8011E2208000C200800080A0600077 +S31540011D8012BFFFFE01000000C204A004808860204B +S31540011D900280005D01000000C204A0048088401852 +S31540011DA00280005601000000C204A0048088401D44 +S31540011DB00280004E01000000C207BFF4C40040008B +S31540011DC0C204A008E604A00C8600A008E220A008F0 +S31540011DD0C400C00080A0A00012BFFFFE01000000A9 +S31540011DE0C404A0048088A0202280003CC227BFE40E +S31540011DF0C404A0048088801822800034C227BFE42E +S31540011E00C404A0048088801D2280002CC227BFE420 +S31540011E10C404A00880A04002028000040100000022 +S31540011E207FFFBD009010200EC204A00C80A4C0010B +S31540011E3002800005C407BFF47FFFBCFA9010200F53 +S31540011E40C407BFF4C207BFFCC6008000C407BFF881 +S31540011E50820060018400A001EA24A004C227BFFCDD +S31540011E6010BFFF5FC427BFF87FFFBCEE901020076D +S31540011E70C405000010BFFFAB8400A0087FFFBCE98A +S31540011E809010200630BFFFA07FFFBCE690102005D2 +S31540011E9030BFFF99F624A00410BFFF79832D80112E +S31540011EA00280001CC607BFF88210E020C224A004AD +S31540011EB010BFFFB1A32D80117FFFBCDA9010200D1A +S31540011EC010BFFFD4C207BFE47FFFBCD69010200CE1 +S31540011ED010BFFFCCC207BFE47FFFBCD29010200BDE +S31540011EE010BFFFC4C207BFE47FFFBCCE9010200ADB +S31540011EF010BFFFB3C207BFF47FFFBCCA90102009D1 +S31540011F0030BFFFAA7FFFBCC79010200830BFFFA398 +S31540011F10C607BFE8C624A00410BFFF97A32D8011B2 +S31540011F20C2042100C020E00C84103FFFB010200005 +S31540011F30C0206040C420600C81C7E00881E80000F1 +S31540011F400280001E1110004680A72000A610001B2B +S31540011F5004BFFF08A81020002F100046AC14210032 +S31540011F60AE15E0D010800005AA10200180A700140C +S31540011F7004BFFF00A604E00180A4E01F34BFFFFCBC +S31540011F80A805200192100013400027B590100017B4 +S31540011F90C2058000C4006040872D40138410C002F2 +S31540011FA0C420604010BFFFF2A80520017FFFBC9D01 +S31540011FB09010200130BFFEBB9210001B400027A8A5 +S31540011FC0901220D0C2042100852F001BC4206040FE +S31540011FD010BFFEE980A0001C7FFFBC929010200339 +S31540011FE030BFFEBE9DE3BF80031001241100403483 +S31540011FF0231000467FFFBC7DF0206100C026000013 +S31540012000C026204082103FFFC226200C0310012328 +S3154001201084102001A0102001C4206084A214608095 +S31540012020921000104000278E90100011A00420014C +S3154001203080A4201012BFFFFC92100010F806202049 +S31540012040B937201C231001232D00003F3700002AF9 +S31540012050B8072001A2146084AC15A3FEB616E2AA05 +S31540012060A6100018AE102000B4103FFFBA10200190 +S31540012070A8102020AA10202180A720010280000557 +S3154001208080A5E0007FFFBC609010001780A5E000AE +S315400120900280000F01000000C024C000C024E040BF +S315400120A0F424E00CFA244000832DE01CC224E024F1 +S315400120B0C204E0248330601C80A0401702800004E3 +S315400120C0010000007FFFBC5790102012EC24E0086D +S315400120D0C204E00880A0401602800004010000000E +S315400120E07FFFBC5090102001EC24E040C204E04048 +S315400120F080A0401602800004010000007FFFBC4919 +S3154001210090102002C204E00880A0600012BFFFFECA +S3154001211001000000C204400080A06010028000055A +S31540012120A01020017FFFBC3F90102003A01020018A +S31540012130832C2002C20440018425001080A0800126 +S3154001214022800005A00420017FFFBC3690102004A8 +S31540012150A004200180A4201012BFFFF7832C200287 +S31540012160FA244000F624C000EC24E040C204C0003A +S3154001217080A0401B02800004010000007FFFBC29B3 +S3154001218090102005C204E04080A040160280000461 +S31540012190010000007FFFBC2390102005EC24E008DD +S315400121A0C204E00880A0600012BFFFFE01000000EB +S315400121B0C204400080A0601002800005A410201FC8 +S315400121C07FFFBC1890102006A410201FA0102001EC +S315400121D0832C2002C204400180A0401222800005C7 +S315400121E0A00420017FFFBC0F90102007A00420010E +S315400121F080A4200812BFFFF7A404BFFEA410201C30 +S31540012200A010200A832C2002C204400180A0401263 +S3154001221022800005A00420017FFFBC029010200807 +S31540012220A004200180A4201012BFFFF7A404BFFE22 +S31540012230FA27BFF082102002C407BFF08400A00134 +S31540012240C427BFF4C407BFF48400A001C427BFF864 +S31540012250C407BFF88400A001C427BFFC8410200630 +S31540012260C427BFE0C024C000C024E040FA24400097 +S31540012270C224E040C224E0088344400080886100D3 +S3154001228002800005010000008050000180500001DD +S3154001229080500001C207BFE0C227BFE4C207BFE0CA +S315400122A080A0600602800005821020027FFFBBDD10 +S315400122B09010200A82102002C224E008010000008A +S315400122C0C207BFE0C227BFE4C207BFE080A06006E5 +S315400122D002800005821020027FFFBBD29010200AA7 +S315400122E082102002C224E00801000000C027BFE49A +S315400122F0C207BFE480A060001280007301000000A5 +S31540012300C204E00880A0600012BFFFFE0100000089 +S31540012310C204400080A06004028000040100000065 +S315400123207FFFBBC09010200DC024E040EC24E008A4 +S31540012330FA24400040000210010000004000021053 +S3154001234090122F00EC24E040C204E04080A06000DF +S3154001235002BFFFFE01000000C204400080A06002EF +S3154001236002800004010000007FFFBBAE9010200EEA +S31540012370C204600480A0601F0280000401000000C6 +S315400123807FFFBBA89010200F400001FBA410200244 +S31540012390400001FB90023F00400001F701000000B0 +S315400123A0400001F790023F00C2044000A004A00192 +S315400123B080A0401022800005A52CA0027FFFBB997A +S315400123C090102010A52CA002C40440128225401072 +S315400123D080A0800102800004A41000107FFFBB9101 +S315400123E09010201180A4201012BFFFEC01000000C4 +S315400123F0C024E040F424E00CAE05E00180A70017BC +S3154001240014BFFF1EA624F00080A720010480002CE3 +S3154001241001000000C0262024C206202480A06000BE +S315400124201280002C0100000003040000C226202473 +S31540012430C406202480A0800102800005821020016C +S315400124407FFFBB789010201482102001C2262020E5 +S31540012450C026202403040000C406202480A0800155 +S3154001246002800004010000007FFFBB6E9010201522 +S31540012470C0262020C0262024C206202480A0600039 +S315400124801280001B0100000082102002C22620207B +S31540012490C2062020808860020280001201000000EE +S315400124A0C0262020C20620208088600202800004C7 +S315400124B0010000007FFFBB5B9010201881C7E00838 +S315400124C091E820007FFFBB579010200B30BFFF8D56 +S315400124D07FFFBB549010201310BFFFD503040000AB +S315400124E07FFFBB509010201730BFFFEE7FFFBB4DE3 +S315400124F09010201610BFFFE6821020029DE3BFA078 +S315400125007FFFBB640100000080A220000280003BE7 +S315400125100100000080A62000128000350100000065 +S315400125207FFFBB5C01000000912A20047FFFBB3680 +S3154001253090022003400018850100000080A220007F +S31540012540128000280100000040001824010000000C +S31540012550400017D201000000400001E801000000E0 +S3154001256080A6A0001280001C010000007FFFBB492D +S3154001257021100124912A2002A0142104C20400083A +S3154001258080A060000280000A80A620007FFFBB4138 +S3154001259001000000912A20027FFFBB3EE0040008B3 +S315400125A09FC400000100000080A6200002800004B4 +S315400125B0010000007FFFBB50901000194000044508 +S315400125C00100000040001E5401000000400015D7E4 +S315400125D081E8000040001F260100000030BFFFE4F3 +S315400125E07FFFBB109010200130BFFFD87FFFBB3269 +S315400125F09010001930BFFFCB7FFFBAFC1100400C91 +S3154001260010BFFFC680A6200003100123C40060D07E +S315400126108400A001C42060D081C3E008010000000D +S315400126209DE3BFA07FFFBAF11100404482103FFFF6 +S31540012630E4062008C2262004A40CA007C406000014 +S31540012640C206000080A080010280007401000000E3 +S315400126508210201FC2262004C226000080A4A000AA +S315400126600280004E82102000852860048406000204 +S315400126708200600180A04012C020A01812BFFFFC5A +S3154001268085286004A0102000A610200FAA1020065D +S31540012690A81020107FFFBADC90100010A204200180 +S315400126A0832C600486060001A12C2004C02600016B +S315400126B084060010E620E004EA20A018C2060001C4 +S315400126C080A0600F02800005820600107FFFBAD508 +S315400126D090102003820600108410200E872C60047F +S315400126E0E6206018C206000380A0400212BFFFFE2A +S315400126F0010000008400BFFF80A0BFFF12BFFFFAA8 +S3154001270001000000852C6004C206000280A0600F13 +S3154001271012BFFFFE82060010C2006018808860105A +S3154001272002800033A0060010E8242018C2042018B5 +S3154001273080886010128000350100000080A480115D +S3154001274014BFFFD5A010001180A4A0010480000C85 +S31540012750821020007FFFBAAC901020088210200F13 +S31540012760C22620188210202FC2262028C2062020E9 +S3154001277080A0600D12BFFFFE8210200085286004F4 +S31540012780840600028200600180A04012C020A01889 +S3154001279012BFFFFC8528600421100124C2042100D8 +S315400127A080A06000028000109210001911100049AB +S315400127B0400025AB901222087FFFFC3DD00421004A +S315400127C0C204210084102001B3288019F220604000 +S315400127D08210200FC22620148210200DC2262018F6 +S315400127E0A780000081C7E00881E800007FFFBA8D1D +S315400127F090102004E8242018C20420188088601014 +S3154001280022BFFFD080A480117FFFBA869010200599 +S3154001281010BFFFCC80A480117FFFBA8290102001A7 +S3154001282010BFFF8D8210201F000000000000000035 +S315400128300000000000000000000000000000000051 +S31540012840010000000100000001000000010000003D +S31540012850010000000100000081C3E0080100000002 +S31540012860010000000100000001000000010000001D +S31540012870010000000100000081C3E00801000000E2 +S3154001288001000000010000000100000001000000FD +S31540012890010000000100000081C3E00801000000C2 +S315400128A001000000010000000100000001000000DD +S315400128B0010000000100000081C3E00801000000A2 +S315400128C0D482018090A2000916BFFFFE9612800BAA +S315400128D081C3E0089010000BD48201C090A2000988 +S315400128E016BFFFFE9612800B81C3E0089010000BC5 +S315400128F090A22004C0A201A090A22004C0A201A0DF +S3154001290090A22004C0A201A090A22004C0A201A0CE +S31540012910C0A2018090A2200414BFFFF7010000006D +S3154001292081C3E0080100000090A22004C0A201E09A +S3154001293090A22004C0A201E090A22004C0A201E01E +S3154001294090A22004C0A201E0C0A201C090A220042E +S3154001295014BFFFF70100000081C3E0080100000039 +S31540012960981000089610000A98A3200814BFFFFF8C +S31540012970D43B00099810000898A3200814BFFFFF14 +S31540012980C01B00099810000898A32004D60300092B +S3154001299080A2C00A1280000698A3200434BFFFFD1E +S315400129A0D603000981C3E008901020009010200151 +S315400129B0981000089610000A98A3200814BFFFFF3C +S315400129C0D43B00099810000898A32004D6030009B7 +S315400129D080A2C00A1280000698A3200434BFFFFDDE +S315400129E0D603000981C3E008901020009010200111 +S315400129F09810000898A32004D2A301A0DA8301A06D +S31540012A0080A340091280000698A3200414BFFFFC4E +S31540012A10D2A301A081C3E0089010200090102001AC +S31540012A209A1000089AA3400AD6A34180D8834180D0 +S31540012A30981B000B988B0009128000069AA3400A46 +S31540012A4014BFFFFBD6A3418081C3E008901020004C +S31540012A50901020019A1000089AA3400BD8A241CDAC +S31540012A60C48241CD8418800C8488800A1280000675 +S31540012A709AA3400B14BFFFFBD8A241CD81C3E00806 +S31540012A80901020009010200101000000010000007C +S31540012A900100000013100080921260E4D40240004D +S31540012AA080A2A0011280000780A0A002D4024000AB +S31540012AB0D4024000952AA0021080000501000000C2 +S31540012AC03280000381E80000D402400081E000002A +S31540012AD093480000818A60202310004AA21462F8BC +S31540012AE0A40460040100000081C4400081CC800040 +S31540012AF091D0200191D0200126800005900020012F +S31540012B0090222001912A2001912A200281C3E008C6 +S31540012B100100000081C3E008D082004081C3E00883 +S31540012B20D2A2004081C3E008D082018081C3E0087F +S31540012B30D2A2018081C3E008D08201A081C3E0080E +S31540012B40D2A201A081C3E008D08201C081C3E008BE +S31540012B50D2A201C081C3E008D08201E081C3E0086E +S31540012B60D2A201E081C3E008D2A2000081C3E008FD +S31540012B70D082000081C3E00891480000818A0000AC +S31540012B8001000000010000000100000081C3E008CF +S31540012B900100000081C3E008C0A000A081C3E00895 +S31540012BA0C0A000C081C3E008D01A000001000000A7 +S31540012BB001000000010000000100000001000000CA +S31540012BC09DE3BF8803100074D1186198D13FBFF0CF +S31540012BD003100080D11FBFF0D91861800310008017 +S31540012BE0D518618895A308CAD53FBFF80310008060 +S31540012BF0D91FBFF8D518619081AB0A4A0100000080 +S31540012C0023800038D127BFEC91A0054803100074FA +S31540012C10D13FBFF8D51FBFF8D91FBFF899A3094ABD +S31540012C20D51FBFF099A308CA99A0012CD51861A058 +S31540012C3081AB0ACA010000002D800024D127BFECD8 +S31540012C4091A018C891A20928D51FBFF091A01928B3 +S31540012C5091A208CA91A0012803100074D51861A851 +S31540012C6081AA0ACA010000000D800015010000007A +S31540012C704000019001000000400001EE010000000B +S31540012C8080A220001280000B010000004000024398 +S31540012C900100000080A22000128000040100000013 +S31540012CA081C7E00881E800007FFFB95E91E8200511 +S31540012CB07FFFB95C0100000030BFFFF57FFFB959C6 +S31540012CC09010200330BFFFEBD327BFE87FFFB955F4 +S31540012CD090102002D307BFE810BFFFDAD107BFEC3F +S31540012CE0D327BFE87FFFB94F90102001D307BFE834 +S31540012CF010BFFFC6D107BFEC9DE3BFA07FFFFF9E7C +S31540012D00210000047FFFFF9E901200107FFFFF9A73 +S31540012D1001000000808A001012800004B0102000DB +S31540012D2081C7E00881E8000040000266901020005B +S31540012D307FFFB95801000000912A20047FFFB93274 +S31540012D40900220087FFFFF9F81E8000001000000FC +S31540012D5019100080981321201110020092102000B2 +S31540012D60150FF76C9412A3D7D03B0000D42320084B +S31540012D70C11B0000C503200887A08922010000006D +S31540012D8089A005408DA0892281A8CA26010000009C +S31540012D9033800003901020009010200181C3E00889 +S31540012DA001000000C11A0000C51A400089A008426E +S31540012DB081C3E008C93A8000C11A0000C51A400023 +S31540012DC089A0094281C3E008C93A800019100080F0 +S31540012DD098132120D0230000D2232008C1030000EC +S31540012DE0C303200885A00D2181C3E008C53A8000B0 +S31540012DF0C11A0000C51A400089A009C2C93A80001B +S31540012E0081C3E00801000000C11A000085A0054009 +S31540012E10C53A400081C3E0080100000001000000FE +S31540012E200100000001000000010000000100000057 +S31540012E300100000001000000010000000100000047 +S31540012E400100000001000000010000000100000037 +S31540012E500100000001000000010000000100000027 +S31540012E600100000001000000010000000100000017 +S31540012E700100000001000000010000000100000007 +S31540012E8001000000010000000100000001000000F7 +S31540012E9001000000010000000100000081A00020A7 +S31540012EA081C3E00801000000C11A000081C3E008A7 +S31540012EB001000000C51A000089A009C2C93A4000B4 +S31540012EC081C3E008010000001310008092126120C6 +S31540012ED0D0224000C102400085A01900C53A4000F9 +S31540012EE081C3E008D01A400013100080921261207D +S31540012EF0D0224000C102400085A01880C522400072 +S31540012F0081C3E008D0024000151000809412A12030 +S31540012F10D03A8000C11A800085A01A40C52280009F +S31540012F2081C3E008D0028000151000809412A120D0 +S31540012F30D0228000C102800085A01A20C5228000CF +S31540012F4081C3E008D0028000151000809412A120B0 +S31540012F50D0228000C102800081A01920C13A8000A0 +S31540012F6081C3E008D01A8000151000809412A12078 +S31540012F70D03A8000C11A800081A018C0C1228000C9 +S31540012F8081C3E008D0028000151000809412A12070 +S31540012F90D0228000CB0280008DA00025CD2280006A +S31540012FA081C3E008D0028000151000809412A12050 +S31540012FB0D0228000CB0280008DA000A5CD228000CA +S31540012FC081C3E008D0028000151000809412A12030 +S31540012FD0D0228000CB0280008DA00125CD22800029 +S31540012FE081C3E008D0028000191000809813212087 +S31540012FF0D03B0000D43B2008C11B0000C51B200864 +S3154001300081A80A4201000000338000099010200087 +S3154001301029800007901020012D8000059010200284 +S315400130202F8000039010200391D0200081C3E00837 +S31540013030010000001910008098132120D03B0000A8 +S31540013040D43B2008C11B0000C51B200881A80AC229 +S315400130500100000033BFFFF69010200029BFFFF4A6 +S31540013060901020012DBFFFF2901020022FBFFFF0DC +S315400130709010200391D02000191000809813212030 +S31540013080D0230000D2232008C1030000C303200837 +S3154001309081A80A210100000033BFFFE590102000FE +S315400130A029BFFFE3901020012DBFFFE190102002C0 +S315400130B02FBFFFDF9010200391D020001910008010 +S315400130C098132120D0230000D2232008C1030000F9 +S315400130D0C303200881A80AA10100000033BFFFD421 +S315400130E09010200029BFFFD2901020012DBFFFD0A4 +S315400130F0901020022FBFFFCE9010200391D02000C8 +S315400131001910008098132120D03B0000D43B2008A1 +S31540013110C11B0000C51B200889A008C2C93B00008D +S3154001312081C3E008D01B00001910008098132120AC +S31540013130D0230000D2232008C1030000C303200886 +S3154001314085A00821C523000081C3E008D003000003 +S315400131501910008098132120D0230000D223200883 +S31540013160C1030000C303200885A008A1C5230000B0 +S3154001317081C3E008D0030000191000809813212074 S31540013180D0230000D2232008C1030000C303200836 -S3154001319081A80A210100000033BFFFE590102000FD -S315400131A029BFFFE3901020012DBFFFE190102002BF -S315400131B02FBFFFDF9010200391D02000191000800F -S315400131C098132178D0230000D2232008C1030000A0 -S315400131D0C303200881A80AA10100000033BFFFD420 -S315400131E09010200029BFFFD2901020012DBFFFD0A3 -S315400131F0901020022FBFFFCE9010200391D02000C7 -S315400132001910008098132178D03B0000D43B200848 -S31540013210C11B0000C51B200889A008C2C93B00008C -S3154001322081C3E008D01B0000191000809813217853 -S31540013230D0230000D2232008C1030000C303200885 -S3154001324085A00821C523000081C3E008D003000002 -S315400132501910008098132178D0230000D22320082A -S31540013260C1030000C303200885A008A1C5230000AF -S3154001327081C3E008D003000019100080981321781B -S31540013280D0230000D2232008C1030000C303200835 -S3154001329085A00921C523000081C3E008D0030000B1 -S315400132A01910008098132178D0230000D2232008DA -S315400132B0C1030000C303200885A009A1C52300005E -S315400132C081C3E008D00300001910008098132178CB -S315400132D0D0230000C103000083A00520C3230000C2 -S315400132E081C3E008D0030000131000809212619060 -S315400132F0C51A6008C11A400089A0084091A108C2B8 -S3154001330095A209C495A2894281C3E008D53A000035 -S3154001331013100080921261B0C1024000C3026004E2 -S3154001332085A0082087A088A189A0C9A289A10921D1 -S3154001333081C3E008C92200009610200213100080C4 -S3154001334092126190151000809412A190D50240000E -S31540013350D7028000D5220000D80200001310008059 -S31540013360921261B096A2E00112BFFFF9010000007E -S3154001337081C3E008010000001310008092126190A1 -S31540013380151000809412A1B0C1028000C51A6010C8 -S3154001339083A0082089A088C08BA109A18DA10942DB -S315400133A08FA1492691A0054681C3E008D13A000084 -S315400133B01110008090122188C11A0000C51A000020 -S315400133C0C91A0000CD1A0000D11A0000D51A000012 -S315400133D0D91A0000DD1A0000E11A0000E51A0000C2 -S315400133E0E91A0000ED1A0000F11A0000F51A000072 -S315400133F0F91A0000FD1A000081C3E008010000002F -S3154001340029100080A815215827100080A614E1C074 -S31540013410C12CC000E604C000A134E00EA00C200778 -S31540013420A0A42002AE1020002D100080AC15A1C032 -S31540013430AE05E001AC05A008C1358000C12D0000F4 -S31540013440EA050000AB35600DAA8D600112BFFFF998 -S3154001345001000000808000100280002F2B3C1FFFDE -S31540013460AA1563FFA60CC015E6250000C10D000094 -S315400134702B100080AA1561CC2D10004DAC15A0E093 -S31540013480AE25E001E0054000E025800081D820001E -S3154001349001000000010000000100000001000000E1 -S315400134A001000000010000000100000001000000D1 -S315400134B001000000010000000100000001000000C1 -S315400134C001000000010000000100000001000000B1 -S315400134D001000000010000000100000001000000A1 -S315400134E00000000080A5C00012BFFFE6AA056008E3 -S315400134F0C12D0000E60500002B03C000A614C0152F -S31540013500E6250000C10D000081C4400081CC800049 -S315400135100100000081C4800081CCA00401000000AC -S315400135200100000081C3E00891580000010000003D -S315400135301110008090122158C10A0000C0220000DB -S31540013540C10A0000C12A0000D40200001300038012 -S31540013550942A800980A0000A3280004D90102003F1 -S315400135601303E000D223BFA0C023BFA4C10BBFA059 -S31540013570C023BFA0151000809412A170C102800023 -S315400135800100000001000000C10BBFA0C10BBFA498 -S3154001359083A00520C12BBFA0D003BFA0808A2200F3 -S315400135A02280003B901020049010200015100080CE -S315400135B09412A140C5028000C902A008D102A00C04 -S315400135C01310008092126170C70240008DA0894499 -S315400135D081A98AC80100000003800005010000009E -S315400135E0901020011080002A01000000C5028000D1 -S315400135F0C902A008D102A00C13100080921261707A -S31540013600CB0240008DA0894481A98AC801000000EF -S315400136100380000501000000901020011080001C6D -S315400136200100000025100080A414A168C11C80007F -S31540013630C51C800080A000003280000685A008C01D -S3154001364081A80AC2010000001380000301000000A6 -S31540013650901020050100000025100080A414A168E7 -S31540013660C11C8000C51C800080A000000100000034 -S315400136703280000685A008C081A80AC20100000068 -S315400136801380000301000000901020070100000094 -S3154001369081C3E0080100000090102001954400001C -S315400136A09532A01E940AA00380A2800002800040A9 -S315400136B09010200080A2A0030280003D13100080DC -S315400136C0921261F0C11A4000C51A6008FD026018E5 -S315400136D095A0003E99A0003E9DA0003E170000C067 -S315400136E09612E078A182C0000100000001000000AE -S315400136F0010000000100000001000000010000007F -S3154001370081A0002083A0002195A0002A99A0002C29 -S315400137109DA0002E170000C09612E07CA182C00039 -S31540013720010000000100000001000000010000004E -S31540013730010000000100000085A0002287A00023AF -S31540013740A18000000100000001000000010000000E -S3154001375001000000010000000100000089A00842AC -S31540013760A9A2883ED93A4000DD224000CD1A601018 -S31540013770D102600881A90A46010000000380000CBD -S3154001378081AD0A280100000003800009934400002E -S315400137909332601B920A60079010200080A2A0011C -S315400137A002800003902260079022600481C3E008F2 -S315400137B001000000C12BBFA081C3E008D003BFA018 -S315400137C0D023BFA081C3E008C10BBFA00100000008 -S315400137D09DE3BF6040001B17B0102000913A200ABC -S315400137E0900A200380A220011280111101000000DD -S315400137F07FFFB6819010200D190C40291B23CD1B4C -S315400138009410200096102000981320069A13609B6E -S31540013810D43FBFE0D43FBFC0D43FBFE87FFFFF42A4 -S31540013820D83FBFF0900A3000032804009012208050 -S315400138308210600FC22200001B10004D900220042E -S315400138409A1360009A234008191000009B3B6002BE -S31540013850032784009A13400C82106010C222200470 -S315400138607FFFFED4DA2200007FFFFFD61103E0007E -S315400138702D100080C025A1C07FFFFDD490102000EF -S31540013880809200091280000601000000C205A1C015 -S3154001389080A0600002800004010000007FFFB65B4B -S315400138A09010200B7FFFFDC990103FFA03300600B0 -S315400138B080A200011280000480A2600002800EDB1B -S315400138C0010000007FFFB6519010200B7FFFFDBF26 -S315400138D09010201403100D0080A2000112800004F4 -S315400138E080A2600002800ECC010000007FFFB64737 -S315400138F09010200B7FFFFDB590102062031016201B -S3154001390080A200011280000480A2600002800EBDE8 -S31540013910010000007FFFB63D9010200B7FFFFDB3F5 -S31540013920901020050310280080A200011280000695 -S3154001393001000000C205A1C080A060000280000411 -S31540013940010000007FFFB6319010200B7FFFFF9DE5 -S315400139501103C000111C00007FFFFDAC9210200036 -S31540013960031FFFFF821063FF80A200011280000A3D -S315400139701B000070C205A1C09A13601F19000010F8 -S315400139808208400D9813201080A0400C028000054B -S31540013990113C00007FFFB61D9010200C113C000029 -S315400139A07FFFFD9A921020000320000080A20001B3 -S315400139B01280000A1B000070C205A1C09A13601F45 -S315400139C0190000108208400D9813201080A0400C69 -S315400139D002800004010000007FFFB60C9010200C0D -S315400139E0C025A1C0901020007FFFFD8892102000C5 -S315400139F080A220001280000601000000C205A1C07D -S31540013A0080A0600002800005110144007FFFB5FFE0 -S31540013A109010200C110144001328400090122302FB -S31540013A207FFFFD7A9212600180A22000128000067B -S31540013A3001000000C205A1C080A0600022800005EF -S31540013A401111FFFF7FFFB5F19010200C1111FFFFFF -S31540013A507FFFFD76901223FF0300007F821063FFF4 -S31540013A6080A200011280000601000000C205A1C02B -S31540013A7080A06000028000052F1000857FFFB5E31E -S31540013A809010200C2F1000857FFFFD60D01DE0C8EF -S31540013A90031FFFFF821063FF80A200011280000A0C -S31540013AA01B000070C205A1C09A13601F19000010C7 -S31540013AB08208400D9813201080A0400C028000051A -S31540013AC0031000857FFFB5D19010200C03100085AF -S31540013AD0D01860D8C025A1C07FFFFD4C0100000071 -S31540013AE00320000080A200011280000A1B00007022 -S31540013AF0C205A1C09A13601F190000108208400D2B -S31540013B009813201080A0400C0280000519100085F2 -S31540013B107FFFB5BE9010200C19100085C025A1C0AD -S31540013B207FFFFD3AD01B20B8031FFFFF821063FFC2 -S31540013B3080A200011280000A1B000070C205A1C0CC -S31540013B409A13601F190000108208400D9813201027 -S31540013B5080A0400C02800005331000857FFFB5AB85 -S31540013B609010200C33100085C025A1C07FFFFD2792 -S31540013B70D01E60F0C205A1C08330600E820860038A -S31540013B8080A0600202800004211000807FFFB59F63 -S31540013B909010200C7FFFFF0B1103C0001111580438 -S31540013BA0C02421C07FFFFD299012223403102B002F -S31540013BB08210624680A200011280000503200000A7 -S31540013BC080A2400102800FC5010000007FFFB58F32 -S31540013BD09010200D113C02AF7FFFFD1C901220D1A9 -S31540013BE0033180558210639A80A20001128000053C -S31540013BF00308000080A2400102800FDB01000000A3 -S31540013C007FFFB5829010200D1111FC007FFFFD173B -S31540013C1092102000031FE00080A200011280000ADA -S31540013C201B000070C205A1C09A13601F1900001045 -S31540013C308208400D9813200880A0400C02800005A0 -S31540013C4011207C017FFFB5719010200D11207C0160 -S31540013C50C025A1C0901220307FFFFD041300010052 -S31540013C600320000080A200011280000A1B000070A0 -S31540013C70C205A1C09A13601F190000108208400DA9 -S31540013C809813200480A0400C02800004010000002B -S31540013C907FFFB55E9010200DC025A1C09010200079 -S31540013CA07FFFFCF29210200080A2200012800006C5 -S31540013CB001000000C205A1C080A06000028000048E -S31540013CC0010000007FFFB5519010200D7FFFFCE7FA -S31540013CD0D01DE0C803100085DA0060C080A2000D47 -S31540013CE01280000601000000C205A1C080A060004C -S31540013CF0028000051B1000857FFFB5449010200D02 -S31540013D001B1000857FFFFCD9D01B60D0031FE0004C -S31540013D1080A200011280000601000000C205A1C078 -S31540013D2080A0600002800005031000857FFFB53743 -S31540013D309010200D031000857FFFFCCCD01860B891 -S31540013D4003100085DA0060A880A2000D1280000AE7 -S31540013D501B000070C205A1C09A13601F1900001014 -S31540013D608208400D9813201080A0400C0280000468 -S31540013D70010000007FFFB5259010200DC025A1C090 -S31540013D807FFFFCBAD01E60F0C205A1C08330600E31 -S31540013D908208600380A06002028000042310008034 -S31540013DA07FFFB51A9010200D7FFFFE861103E000BC -S31540013DB02108C6AF901420DEC02461C07FFFFCB34A -S31540013DC0A01420DE80A2001012800006010000002F -S31540013DD0C20461C080A06000028000052108C6AF10 -S31540013DE07FFFB50A9010200E2108C6AF7FFFFCB7B2 -S31540013DF0901420DEA01420DE80A20010128000065E -S31540013E0001000000C205A1C080A06000228000051B -S31540013E101128C6AF7FFFB4FD9010200E1128C6AF02 -S31540013E207FFFFCAA901220DE0308C6AF821060DE37 -S31540013E3080A200011280000601000000C205A1C057 -S31540013E4080A06000228000051108C6AF7FFFB4EF55 -S31540013E509010200E1108C6AF7FFFFC94901220DE11 -S31540013E600328C6AF821060DE80A2000112800006E0 -S31540013E7001000000C205A1C080A0600022800005AB -S31540013E801128C6AF7FFFB4E19010200E1128C6AFAE -S31540013E907FFFFC86901220DE0308C6AF821060DEEB -S31540013EA080A200011280000601000000C205A1C0E7 -S31540013EB080A0600002800004010000007FFFB4D3AF -S31540013EC09010200E7FFFFE3F1103E00011151BC02D -S31540013ED01310C82115351BC01710C8219012210394 -S31540013EE0921261419412A1037FFFFC809612E14137 -S31540013EF080A220021280000601000000C205A1C076 -S31540013F0080A060000280000511351BC07FFFB4BF51 -S31540013F109010200F11351BC01310C82115151BC059 -S31540013F201710C82190122103921261419412A103E4 -S31540013F307FFFFC6E9612E14180A2200112800006AD -S31540013F4001000000C205A1C080A0600002800005FA -S31540013F50901020007FFFB4AD9010200F90102000EC -S31540013F6092102000152000007FFFFC609610200073 -S31540013F7080A220001280000601000000C205A1C0F7 -S31540013F8080A0600002800005191000857FFFB49F64 -S31540013F909010200F191000851B100085D01B20D0D2 -S31540013FA07FFFFC52D41B60D880A2200212800006FB -S31540013FB001000000C205A1C080A06000028000058A -S31540013FC011151BC07FFFB4919010200F11151BC016 -S31540013FD01310C82115151BE81710C821901221038B -S31540013FE0921261419412A1037FFFFC409612E14176 -S31540013FF080A220011280000601000000C205A1C076 -S3154001400080A060000280000511151BE87FFFB47F88 -S315400140109010200F11151BE81310C82115151BC050 -S315400140201710C82190122103921261419412A103E3 -S315400140307FFFFC2E9612E14180A2200212800006EB -S3154001404001000000C205A1C080A0600002800005F9 -S3154001405011151BE87FFFB46D9010200F11151BE859 -S315400140601310C82190122103921261417FFFFC1F58 -S31540014070D41DE0C880A22003128000060100000082 -S31540014080C205A1C080A06000028000050310008522 -S315400140907FFFB45E9010200F0310008511151BE8B9 -S315400140A01310C82190122103921261417FFFFC0F28 -S315400140B0D41860B880A220031280000A1B00007049 -S315400140C0C205A1C09A13601F190000108208400D55 -S315400140D09813201080A0400C0280000511151BE8A2 -S315400140E07FFFB44A9010200F11151BE81310C82109 -S315400140F0C025A1C090122103921261417FFFFBFBB3 -S31540014100D41E60F080A22002128000060100000049 -S31540014110C205A1C080A060000280000515151BE8FC -S315400141207FFFB43A9010200F15151BE81710C821D0 -S31540014130D01E60F09412A1037FFFFBEC9612E14181 -S3154001414080A220011280000601000000C205A1C024 -S3154001415080A060000280000515151BE87FFFB42B87 -S315400141609010200F15151BE81710C821D01DE0C867 -S315400141709412A1037FFFFBDD9612E14180A2200349 -S315400141801280000601000000C205A1C080A06000A7 -S3154001419002800005191000857FFFB41C9010200F86 -S315400141A01910008515151BE81710C821D01B20B81A -S315400141B09412A1037FFFFBCD9612E14180A2200319 -S315400141C01280000A1B000070C205A1C09A13601F2D -S315400141D0190000108208400D9813201080A0400C51 -S315400141E00280000511151BC07FFFB4089010200FF7 -S315400141F011151BC01310C82115351BC01710C82136 -S31540014200C025A1C090122103921261419412A103CB -S315400142107FFFFBC99612E14180A22002128000066F -S3154001422001000000C205A1C080A060000280000517 -S3154001423011351BC07FFFB3F59010200F11351BC000 -S315400142401310C82115151BC01710C8219012210340 -S31540014250921261419412A1037FFFFBB79612E1418D -S3154001426080A220011280000601000000C205A1C003 -S3154001427080A0600002800005901020007FFFB3E31C -S315400142809010200F90102000921020001520000061 -S315400142907FFFFBA99610200080A220001280000615 -S315400142A001000000C205A1C080A060000280000597 -S315400142B01B1000857FFFB3D59010200F1B10008582 -S315400142C003100085D01B60D07FFFFB9BD41860D8BC -S315400142D080A220021280000601000000C205A1C092 -S315400142E080A060000280000511151BC07FFFB3C787 -S315400142F09010200F11151BC01310C82115151BE86E -S315400143001710C82190122103921261419412A10300 -S315400143107FFFFB899612E14180A2200112800006AF -S3154001432001000000C205A1C080A060000280000516 -S3154001433011151BE87FFFB3B59010200F11151BE82F -S315400143401310C82115151BC01710C821901221033F -S31540014350921261419412A1037FFFFB779612E141CC -S3154001436080A220021280000601000000C205A1C001 -S3154001437080A060000280000511151BE87FFFB3A3F2 -S315400143809010200F11151BE81310C821901221031C -S31540014390921261417FFFFB68D41DE0C880A22003D1 -S315400143A01280000A1B000070C205A1C09A13601F4B -S315400143B0190000108208400D9813201080A0400C6F -S315400143C002800005191000857FFFB3909010200FE1 -S315400143D01910008511151BE81310C82190122103ED -S315400143E0921261417FFFFB54D41B20B880A2200367 -S315400143F01280000A1B000070C205A1C09A13601FFB -S31540014400190000108208400D9813201080A0400C1E -S315400144100280000511151BE87FFFB37C9010200F29 -S3154001442011151BE81310C821C025A1C09012210304 -S31540014430921261417FFFFB40D41E60F080A22002B0 -S315400144401280000601000000C205A1C080A06000E4 -S315400144500280000515151BE87FFFB36C9010200FF5 -S3154001446015151BE81710C821D01E60F09412A10340 -S315400144707FFFFB319612E14180A2200112800006A6 -S3154001448001000000C205A1C080A0600002800005B5 -S3154001449015151BE87FFFB35D9010200F15151BE81E -S315400144A01710C821D01DE0C89412A1037FFFFB223B -S315400144B09612E14180A220031280000A1B0000707F -S315400144C0C205A1C09A13601F190000108208400D51 -S315400144D09813201080A0400C028000051B10008517 -S315400144E07FFFB34A9010200F1B10008515151BE85E -S315400144F01710C821D01B60B89412A1037FFFFB0E91 -S315400145009612E14180A220031280000A1B0000702E -S31540014510C205A1C09A13601F190000108208400D00 -S315400145209813201080A0400C02800005110048EA33 -S315400145307FFFB3369010200F110048EA13048D1502 -S31540014540C025A1C0901223CD7FFFFB0C9212627849 -S3154001455080A220011280000601000000C205A1C010 -S3154001456080A0600002800005110048EA7FFFB32762 -S315400145709010200F110048EA13048D15901223CD97 -S315400145807FFFFB0F9212627880A220011280000603 -S3154001459001000000C205A1C080A0600002800004A5 -S315400145A0010000007FFFB3199010200FC025A1C064 -S315400145B07FFFFC841103C000291001449007BFF01E -S315400145C09207BFE87FFFFA3894152150C207BFF022 -S315400145D0DA05215080A0400D128000078215215036 -S315400145E0DA006004C207BFF480A0400D02800D5975 -S315400145F0010000007FFFB3059010201037100085A1 -S315400146009007BFF09216E0E07FFFFA2794152150FC -S31540014610C206E0E0DA05215080A34001821521500F -S31540014620128000079816E0E0DA006004C203200415 -S3154001463080A3400102800D42010000007FFFB2F3DA -S31540014640901020109007BFF09215E0C87FFFFA1630 -S3154001465094152150C205E0C8DA05215080A34001D6 -S3154001466082152150128000079815E0C8DA006004CF -S31540014670C203200480A3400102800D2C01000000EA -S315400146807FFFB2E29010201003100085921060B8AF -S315400146909007BFF07FFFFA04941521501B0000706C -S315400146A0C205A1C09A13601F190000108208400D6F -S315400146B09813201080A0400C028000042110014470 -S315400146C07FFFB2D29010201003100080C02061C03D -S315400146D07FFFFC3C9010200013100085941421505C -S315400146E0921260B87FFFF9F09007BFF0391000854C -S315400146F0C20720B0DA04215080A34001941421500E -S3154001470012800007821720B0DA02A004C2006004BA -S3154001471080A3400102800004010000007FFFB2BB7C -S31540014720901020107FFFFC271103C0009007BFF0B7 -S31540014730921660F07FFFF9DC94152150C205A1C0A5 -S315400147408330600E8208600380A06002211001441C -S3154001475002800004231000807FFFB2AC901020102D -S3154001476094142150C02461C09007BFE87FFFF9CE61 -S315400147709207BFF0DA042150C207BFF080A340017F -S315400147801280000794142150DA02A004C207BFF434 -S3154001479080A3400102800D21010000007FFFB29BF2 -S315400147A0901020109007BFE89216E0E07FFFF9BE17 -S315400147B094152150C206E0E0DA05215080A340015C -S315400147C082152150128000079816E0E0DA00600455 -S315400147D0C203200480A3400102800D0B01000000AA -S315400147E07FFFB28A901020109007BFE89215E0C86B -S315400147F07FFFF9AD94152150C205E0C8DA05215075 -S3154001480080A3400182152150128000079815E0C807 -S31540014810DA006004C203200480A3400102800CF543 -S31540014820010000007FFFB279901020101910008519 -S31540014830921320B89007BFE87FFFF99B941521504A -S315400148401B000070C205A1C09A13601F1900001019 -S315400148508208400D9813201080A0400C028000046D -S31540014860211001447FFFB269901020107FFFFBD5D4 -S31540014870901020001310008594142150921260B8B4 -S315400148807FFFF9899007BFE8C20720B0DA042150BB -S3154001489080A340019414215012800007821720B052 -S315400148A0DA02A004C200600480A340010280000431 -S315400148B0010000007FFFB255901020107FFFFBC121 -S315400148C01103C0009007BFE8921660F07FFFF976AA -S315400148D094152150C205A1C08330600E8208600341 -S315400148E080A0600221100144028000042310008050 -S315400148F07FFFB2469010201094142150C02461C00D -S315400149009016E0E07FFFF9689207BFF0C206E0E04B -S31540014910DA04215080A340019414215012800007EB -S315400149208216E0E0DA02A004C200600480A34001DE -S3154001493002800CAB010000007FFFB23490102010C2 -S315400149409016E0E09207BFE87FFFF9579415215092 -S31540014950C206E0E0DA05215080A3400182152150CC -S31540014960128000079816E0E0DA006004C2032004D2 -S3154001497080A3400102800C95010000007FFFB22315 -S31540014980901020101B100085901360D092100008E3 -S315400149907FFFF9459415215019100085C20320D097 -S315400149A0DA05215080A3400182152150128000076B -S315400149B0981320D0DA006004C203200480A340018A -S315400149C002800C7D010000007FFFB2109010201084 -S315400149D01B100085901360D8921000087FFFF932B2 -S315400149E09415215019100085C20320D8DA052150AB -S315400149F080A340018215215012800007981320D8C8 -S31540014A00DA006004C203200480A3400102800C65E1 -S31540014A10010000007FFFB1FD901020101B100085A2 -S31540014A2003100085901360D8921060D07FFFF91E65 -S31540014A30941521501B000070C205A1C09A13601F36 -S31540014A40190000108208400D9813201080A0400CD8 -S31540014A5002800004211001447FFFB1EC9010201028 -S31540014A607FFFFB5890102000111000851310008520 -S31540014A7094142150901220D87FFFF90B921260D0E6 -S31540014A80C20720B0DA04215080A34001941421507A -S31540014A9012800007821720B0DA02A004C200600427 -S31540014AA080A3400102800004010000007FFFB1D7CE -S31540014AB0901020107FFFFB431103C00019100085A1 -S31540014AC01B100085901320D0921360D8C025A1C039 -S31540014AD07FFFF8F594152150C20720B0DA05215021 -S31540014AE080A340018215215012800007981720B0FB -S31540014AF0DA006004C203200480A3400102800C1F37 -S31540014B001B0000707FFFB1C1901020109016E0E0AD -S31540014B10921660F07FFFF8E494152150C205A1C0BA -S31540014B208330600E8208600380A060022110014438 -S31540014B3002800004231000807FFFB1B49010201042 -S31540014B4094142150C02461C09015E0C87FFFF8D667 -S31540014B509207BFF0C205E0C8DA04215080A34001A4 -S31540014B6094142150128000078215E0C8DA02A0048D -S31540014B70C200600480A3400102800B9C010000003A -S31540014B807FFFB1A2901020109015E0C89207BFE8B0 -S31540014B907FFFF8C594152150C205E0C8DA052150BA -S31540014BA080A3400182152150128000079815E0C864 -S31540014BB0DA006004C203200480A3400102800B8610 -S31540014BC0010000007FFFB191901020109015E0C8C0 -S31540014BD09216E0E07FFFF8B494152150C205E0C873 -S31540014BE0DA05215080A34001821521501280000729 -S31540014BF09815E0C8DA006004C203200480A340018E -S31540014C0002800B70010000007FFFB18090102010E0 -S31540014C109015E0C8921000087FFFF8A39415215023 -S31540014C20C205E0C8DA05215080A340018215215012 -S31540014C30128000079815E0C8DA006004C203200418 -S31540014C4080A3400102800B5A010000007FFFB16F33 -S31540014C509010201003100085921060B89015E0C89E -S31540014C607FFFF8919415215003000070A610601F34 -S31540014C70DA05A1C0030000109A0B4013AA10601078 -S31540014C8080A34015231000852510014402800004AD -S31540014C90211000807FFFB15D90102010C02421C0FB -S31540014CA0901460B89207BFF07FFFF87F9414A1502B -S31540014CB0C20421C08208401380A04015028000042E -S31540014CC0010000007FFFB15190102010C02421C087 -S31540014CD0901460B89207BFE87FFFF8739414A1500F -S31540014CE0C20421C08208401380A0401502800004FE -S31540014CF0010000007FFFB14590102010C02421C063 -S31540014D00901460B89216E0E07FFFF8679414A150C2 -S31540014D10C20421C08208401380A0401502800005CC -S31540014D20131000857FFFB1399010201013100085B4 -S31540014D30C02421C0921260C8901460B87FFFF85A0F -S31540014D409414A150C20421C08208401380A040158A -S31540014D5002800005901460B87FFFB12C901020109E -S31540014D60901460B8C02421C0921000087FFFF84E0D -S31540014D709414A150C20421C08208401380A040155A -S31540014D8002800004010000007FFFB1209010201036 -S31540014D90C02421C0901460B8921660F07FFFF8429B -S31540014DA09414A150C20421C08330600E820860036E -S31540014DB080A06002228000051103C0007FFFB1136D -S31540014DC0901020101103C0007FFFFA7E3B10008433 -S31540014DD0A2176210C02421C0AA14A150A4046010D5 -S31540014DE0A0102000A6046008B010200C9204001305 -S31540014DF0900400117FFFF82C94152150DA0480109D -S31540014E0098040012C2052150A004201880A3400135 -S31540014E101280000790102010DA032004C2056004B6 -S31540014E2080A3400122800005B0863FFF7FFFB0F797 -S31540014E3001000000B0863FFF1CBFFFEE9204001345 -S31540014E40C205A1C080A0600012800989010000004E -S31540014E501110008490122348920220087FFFF81215 -S31540014E609415215098176210C2052150DA03214842 -S31540014E7080A340011280000782152150DA03214C9C -S31540014E80C200600480A3400122800AAB0310008067 -S31540014E907FFFB0DE90102010111000849012236025 -S31540014EA0920220087FFFF80094152150981762104E -S31540014EB0C2052150DA03216080A340011280000718 -S31540014EC082152150DA032164C200600480A34001A7 -S31540014ED002800AA41B0000707FFFB0CC9010201006 -S31540014EE01110008490122378920220087FFFF7EE7A -S31540014EF09415215098176210C2052150DA03217882 -S31540014F0080A340011280000782152150DA03217CDB -S31540014F10C200600480A3400102800A9C1B0000700D -S31540014F207FFFB0BA90102010C025A1C0111000001B -S31540014F3092102000150FFC007FFFF8B2961020005A -S31540014F40030FFC0080A200011280000880A26000CD -S31540014F501280000601000000C205A1C080A06000C9 -S31540014F6002800005111000007FFFB0A890102010AC -S31540014F701110000092102000152FFC007FFFF8A1B0 -S31540014F80961020000310020080A200011280000842 -S31540014F9080A260001280000601000000C205A1C087 -S31540014FA080A0600002800005113000007FFFB097AD -S31540014FB0901020101130000092102000150FFC00B7 -S31540014FC07FFFF890961020000330020080A2000176 -S31540014FD01280000880A260001280000601000000D5 -S31540014FE0C205A1C080A0600002800005113000000A -S31540014FF07FFFB086901020101130000092102000E3 -S31540015000152FFC007FFFF87F96102000032FFC0030 -S3154001501080A200011280000880A260001280000672 -S3154001502001000000C205A1C080A060000280000509 -S31540015030111000007FFFB075901020101110000074 -S315400150407FFFF87A130FE0000310100080A20001E1 -S315400150501280000601000000C205A1C080A06000C8 -S3154001506002800005111000007FFFB06890102010EB -S31540015070111000007FFFF877130FE000030FE000E7 -S3154001508080A200011280000601000000C205A1C0F5 -S3154001509080A0600022800005191000857FFFB05B6B -S315400150A09010201019100085921320E8C025A1C048 -S315400150B09007BFF07FFFF78F941521501910008597 -S315400150C0C20320D8DA05215080A340018215215020 -S315400150D012800007981320D8DA006004C203200426 -S315400150E080A3400102800A461B0000707FFFB04743 -S315400150F0901020111B100085921360D0C025A1C0CD -S315400151009007BFF07FFFF77B94152150C207BFE0A0 -S31540015110DA05215080A340011280000782152150F3 -S31540015120DA006004C207BFE480A3400102800A3E60 -S31540015130010000007FFFB035901020119007BFF0AD -S315400151409215E0C87FFFF76B94152150C205E0C860 -S31540015150DA05215080A340018215215012800007B3 -S315400151609815E0C8DA006004C203200480A3400118 -S3154001517002800A32010000007FFFB0249010201106 -S3154001518003100085921060B89007BFF07FFFF75972 -S3154001519094152150C20720B0DA05215080A3400161 -S315400151A08215215012800007981720B0DA0060045A -S315400151B0C203200480A3400102800A251B0000701F -S315400151C07FFFB012901020119007BFF0921660F049 -S315400151D07FFFF74894152150C205A1C01B000070FE -S315400151E08208400D1900002080A0400C2110014486 -S315400151F002800004231000807FFFB004901020112C -S3154001520094142150C02461C09007BFE87FFFF7394D -S315400152109207BFF0DA042150C207BFE880A34001DC -S315400152201280000794142150DA02A004C207BFEC91 -S3154001523080A3400102800A10010000007FFFAFF306 -S315400152409010201119100085901320E89207BFE0B5 -S315400152507FFFF72894152150C20720B0DA05215067 -S3154001526080A340018215215012800007981720B073 -S31540015270DA006004C203200480A3400102800A03CD -S315400152801B0000707FFFAFE1901020111B100085BD -S3154001529003100085901360E8921060D0C025A1C02C -S315400152A07FFFF7149415215019100085C20320E899 -S315400152B0DA05215080A34001821521501280000752 -S315400152C0981320E8DA006004C203200480A3400159 -S315400152D0028009F8010000007FFFAFCC9010201139 -S315400152E09007BFE89215E0C87FFFF7029415215059 -S315400152F0C205E0C8DA05215080A34001821521503C -S31540015300128000079815E0C8DA006004C203200441 -S3154001531080A34001028009EC010000007FFFAFBB82 -S31540015320901020071B100085921360B89007BFE8C4 -S315400153307FFFF6F09415215025000070D805A1C0D5 -S315400153409A14A01F03000010980B000D82106010E4 -S3154001535080A3000121100144028000042310008033 -S315400153607FFFAFAA90102011C02461C09007BFE80B -S31540015370921660F07FFFF6DF94142150C20461C09B -S31540015380820840121B00002080A0400D22800005AB -S31540015390031000857FFFAF9D9010201103100085FB -S315400153A0901060D894142150C02461C07FFFF6D17B -S315400153B09207BFF019100085C20320D8DA042150A4 -S315400153C080A340019414215012800007821320D8F3 -S315400153D0DA02A004C200600480A34001028008B83A -S315400153E0010000007FFFAF89901020111B1000853E -S315400153F003100085901360D8921060E87FFFF6BDD8 -S315400154009415215019100085C20320D0DA05215088 -S3154001541080A340018215215012800007981320D0A5 -S31540015420DA006004C203200480A34001028008A977 -S31540015430010000007FFFAF75901020119016E0E04B -S31540015440921000087FFFF6AB94152150C20720B099 -S31540015450DA05215080A340018215215012800007B0 -S31540015460981720B0DA006004C203200480A34001EB -S315400154700280089D1B0000707FFFAF6490102011D1 -S31540015480C025A1C09016E0E09215E0C87FFFF699CD -S3154001549094152150C205E0C8DA05215080A3400188 -S315400154A082152150128000079815E0C8DA00600481 -S315400154B0C203200480A34001028008940100000039 -S315400154C07FFFAF52901020111B100085921360B8D8 -S315400154D09016E0E07FFFF68794152150C20720B071 -S315400154E0DA05215080A34001821521501280000720 -S315400154F0981720B0DA006004C203200480A340015B -S31540015500028008871B0000707FFFAF40901020117A -S31540015510C025A1C09016E0E0921660F07FFFF675B7 -S3154001552094152150C205A1C01B0000708208400D90 -S315400155301900002080A0400C231000800280000446 -S31540015540211001447FFFAF31901020119414215056 -S31540015550C02461C09015E0C87FFFF6669207BFF090 -S31540015560C205E0C8DA04215080A3400194142150B9 -S31540015570128000078215E0C8DA02A004C200600466 -S3154001558080A340010280086F010000007FFFAF1F2A -S31540015590901020119015E0C89207BFE87FFFF6559D -S315400155A094152150C205E0C8DA05215080A3400177 -S315400155B082152150128000079815E0C8DA00600470 -S315400155C0C203200480A34001028008630100000059 -S315400155D07FFFAF0E901020119015E0C89216E0E0C3 -S315400155E07FFFF64494152150C205E0C8DA052150E3 -S315400155F080A3400182152150128000079815E0C80A -S31540015600DA006004C203200480A3400102800857E7 -S31540015610010000007FFFAEFD901020119015E0C8FB -S31540015620921000087FFFF63394152150C205E0C859 -S31540015630DA05215080A340018215215012800007CE -S315400156409815E0C8DA006004C203200480A3400133 -S31540015650028007F3010000007FFFAEEC901020119D -S3154001566003100085921060B89015E0C87FFFF621BF -S3154001567094152150C20720B0DA05215080A340017C -S315400156808215215012800007981720B0DA00600475 -S31540015690C203200480A34001028007E61B0000707C -S315400156A07FFFAEDA901020119015E0C8921660F097 -S315400156B07FFFF61094152150C205A1C0310000703C -S315400156C0820840183B00002080A0401D2310014461 -S315400156D002800004211000807FFFAECC9010201183 -S315400156E019100085901320B89207BFF07FFFF6018D -S315400156F094146150C20421C0AA16201F350000101F -S3154001570082084015A616A01080A04013028000040E -S31540015710251000857FFFAEBD90102011C02421C009 -S315400157209014A0B89207BFE87FFFF5F29414615038 -S31540015730C20421C08208401580A0401302800004A3 -S31540015740010000007FFFAEB190102011C02421C09E -S315400157509014A0B89216E0E07FFFF5E694146150EC -S31540015760C20421C08208401580A040130280000572 -S31540015770131000857FFFAEA59010201113100085F0 -S31540015780C02421C0921260C89014A0B87FFFF5D9F9 -S3154001579094146150C20421C08208401580A0401370 -S315400157A0028000059014A0B87FFFAE98901020119A -S315400157B09014A0B8C02421C0921000087FFFF5CDF7 -S315400157C094146150C20421C08208401580A0401340 -S315400157D002800005131000857FFFAE8C90102011CA -S315400157E013100085C02421C09014A0B8921260F015 -S315400157F07FFFF5C094146150C20421C0820840184D -S3154001580080A0401D2280000515203E837FFFAE7F8C -S315400158109010201115203E83170021C89412A3FF32 -S315400158209612E3A1191FC0001B00C0009A1360B075 -S3154001583098132102D43FBFD0D83FBFD8C02421C03E -S315400158409007BFD89207BFD07FFFF5AA9407BFC87C -S31540015850DA07BFC8033FFC0080A340010280070B63 -S31540015860A207BFC87FFFAE6990102011151086832D -S31540015870170021C89412A3FF9612E3A11900400014 -S315400158801B00C0009A1360B098132102D43FBFD0C9 -S31540015890D83FBFD8C025A1C09007BFD89207BFD077 -S315400158A07FFFF5949407BFC8DA046004C207BFC8F6 -S315400158B08090400D1280000A1B000070C205A1C0F5 -S315400158C09A13601F190000108208400D9813200496 -S315400158D080A0400C22800005150FFC007FFFAE4BD7 -S315400158E090102011150FFC00170281D89412A04088 -S315400158F09612E10C9A102010190006AFD43FBFD082 -S31540015900D83FBFD8C025A1C09007BFD89207BFD006 -S315400159107FFFF5789407BFC8030006AEDA07BFC814 -S315400159208210639580A340011280000703003A9AD2 -S31540015930DA0460048210630F80A3400102800733BA -S31540015940010000007FFFAE3190102011150FFFFFBF -S31540015950170281D89412A3409612E10C9A10201096 -S31540015960190006AFD43FBFD0D83FBFD8C025A1C08C -S315400159709007BFD89207BFD07FFFF55E9407BFC897 -S31540015980DA046004C207BFC88090400D1280000A45 -S315400159901B000070C205A1C09A13601F19000010B8 -S315400159A08208400D9813200480A0400C0280000418 -S315400159B0010000007FFFAE1590102011C025A1C047 -S315400159C0111088007FFFF63713100100031066C9D6 -S315400159D0821062CA80A20001128000060100000006 -S315400159E0C205A1C080A06000028000051111BBFE66 -S315400159F07FFFAE06901020111111BBFE901223FFBE -S31540015A007FFFF628130C7040031527CA8210611ECA -S31540015A1080A200011280000601000000C205A1C05B -S31540015A2080A06000028000051310C7FF7FFFADF71D -S31540015A30901020111310C7FF921263FC7FFFF619D5 -S31540015A40111E607E031D73FC8210633880A2000123 -S31540015A501280000601000000C205A1C080A06000BE -S31540015A6002800005130FE0007FFFADE89010201182 -S31540015A70130FE000921260017FFFF60A1100200029 -S31540015A8080A220001280000A1B000070C205A1C03E -S31540015A909A13601F190000108208400D98132004C4 -S31540015AA080A0400C02800005110FE0007FFFADD7BA -S31540015AB090102011110FE000C025A1C07FFFF5F91C -S31540015AC092100008030FE00080A200011280000638 -S31540015AD001000000C205A1C080A06000028000054F -S31540015AE0130FE0007FFFADC990102011130FE000A6 -S31540015AF0921260017FFFF5EB1100200080A2200089 -S31540015B001280000A1B000070C205A1C09A13601FD3 -S31540015B10190000108208400D9813200480A0400C03 -S31540015B20028000051B1000857FFFADB89010201143 -S31540015B301B100085921360E8C025A1C09007BFF0F5 -S31540015B407FFFF4DE9415215019100085C20320E829 -S31540015B50DA05215080A340018215215012800007A9 -S31540015B60981320E8DA006004C203200480A34001B0 -S31540015B70028006BA010000007FFFADA490102012FA -S31540015B801B100085921360D09007BFF07FFFF4CBC6 -S31540015B909415215019100085C20320D0DA052150F1 -S31540015BA080A340018215215012800007981320D00E -S31540015BB0DA006004C203200480A34001028006ACDF -S31540015BC0010000007FFFAD91901020129007BFF0B9 -S31540015BD09215E0C87FFFF4B994152150C205E0C87B -S31540015BE0DA05215080A34001821521501280000719 -S31540015BF09815E0C8DA006004C203200480A340017E -S31540015C00028006A0010000007FFFAD8090102012A7 -S31540015C101B100085921360B89007BFF07FFFF4A771 -S31540015C2094152150C20720B0DA05215080A34001C6 -S31540015C308215215012800007981720B0DA006004BF -S31540015C40C203200480A34001028006931B0000701A -S31540015C507FFFAD6E901020129007BFF0921660F054 -S31540015C607FFFF49694152150C205A1C01B00007018 -S31540015C708208400D1900002080A0400C21100144EB -S31540015C8002800004231000807FFFAD609010201237 -S31540015C9094142150C02461C09007BFE87FFFF48768 -S31540015CA09207BFF0DA042150C207BFE880A3400142 -S31540015CB01280000794142150DA02A004C207BFECF7 -S31540015CC080A34001028006DE010000007FFFAD4F48 -S31540015CD0901020120310008519100085901060E87D -S31540015CE0921320D87FFFF47594152150C20720B036 -S31540015CF0DA05215080A34001821521501280000708 -S31540015D00981720B0DA006004C203200480A3400142 -S31540015D10028006D01B0000707FFFAD3C9010201220 -S31540015D20C025A1C09007BFE89215E0C87FFFF46384 -S31540015D3094152150C205E0C8DA05215080A34001DF -S31540015D4082152150128000079815E0C8DA006004D8 -S31540015D50C203200480A34001028006C7010000005F -S31540015D607FFFAD2A901024991B100085921360B8CD -S31540015D709007BFE87FFFF45194152150C20720B028 -S31540015D80DA05215080A34001821521501280000777 -S31540015D90981720B0DA006004C203200480A34001B2 -S31540015DA0028006BA1B0000707FFFAD1890102012CA -S31540015DB09007BFE8921660F07FFFF440941521509A -S31540015DC0C205A1C01B0000708208400D19000020C9 -S31540015DD080A0400C21100144028000042310008061 -S31540015DE07FFFAD0A9010201294142150C02461C047 -S31540015DF09016E0E07FFFF4319207BFF0C206E0E083 -S31540015E00DA04215080A340019414215012800007E6 -S31540015E108216E0E0DA02A004C200600480A34001D9 -S31540015E20028006A4010000007FFFACF8901020120A -S31540015E309016E0E09207BFE87FFFF42094152150C9 -S31540015E40C20720B0DA05215080A3400182152150B6 -S31540015E5012800007981720B0DA006004C2032004BC -S31540015E6080A34001028006981B0000707FFFACE7CB -S31540015E7090102012C025A1C09016E0E09215E0C80E -S31540015E807FFFF40E94152150C205E0C8DA05215072 -S31540015E9080A3400182152150128000079815E0C861 -S31540015EA0DA006004C203200480A340010280068F09 -S31540015EB0010000007FFFACD5901020120310008531 -S31540015EC0921060B89016E0E07FFFF3FC94152150E4 -S31540015ED0C20720B0DA05215080A340018215215026 -S31540015EE012800007981720B0DA006004C20320042C -S31540015EF080A34001028006821B0000707FFFACC375 -S31540015F00901020129016E0E0921660F07FFFF3EBBE -S31540015F1094152150C205A1C01B0000708208400D96 -S31540015F201900002080A0400C211001440280000489 -S31540015F30231000807FFFACB590102012941421509D -S31540015F40C02461C09015E0C87FFFF3DC9207BFF023 -S31540015F50C205E0C8DA04215080A3400194142150BF -S31540015F60128000078215E0C8DA02A004C20060046C -S31540015F7080A340010280061E010000007FFFACA302 -S31540015F80901020129015E0C89207BFE87FFFF3CB2F -S31540015F9094152150C205E0C8DA05215080A340017D -S31540015FA082152150128000079815E0C8DA00600476 -S31540015FB0C203200480A340010280061201000000B2 -S31540015FC07FFFAC92901020129015E0C89216E0E047 -S31540015FD07FFFF3BA94152150C205E0C8DA05215076 -S31540015FE080A3400182152150128000079815E0C810 -S31540015FF0DA006004C203200480A340010280060641 -S31540016000010000007FFFAC81901020129015E0C87E -S31540016010921000087FFFF3A994152150C205E0C8EC -S31540016020DA05215080A340018215215012800007D4 -S315400160309815E0C8DA006004C203200480A3400139 -S31540016040028005FA010000007FFFAC70901020121B -S31540016050191000859015E0C8921320B87FFFF39779 -S315400160609415215003000070A610601FDA05A1C0E7 -S31540016070030000109A0B4013AA10601080A340152C -S315400160802510008523100144028000042110008060 -S315400160907FFFAC5E90102012C02421C09014A0B89E -S315400160A09207BFF07FFFF38594146150C20421C06B -S315400160B08208401380A040150280000401000000C0 -S315400160C07FFFAC5290102012C02421C09014A0B87A -S315400160D09207BFE87FFFF37994146150C20421C04F -S315400160E08208401380A04015028000040100000090 -S315400160F07FFFAC4690102012C02421C09014A0B856 -S315400161009216E0E07FFFF36D94146150C20421C002 -S315400161108208401380A040150280000513100085B7 -S315400161207FFFAC3A9010201213100085C02421C085 -S31540016130921260C89014A0B87FFFF3609414615026 -S31540016140C20421C08208401380A040150280000588 -S315400161509014A0B87FFFAC2D901020129014A0B8D7 -S31540016160C02421C0921000087FFFF354941461505B -S31540016170C20421C08208401380A040150280000459 -S31540016180010000007FFFAC2190102012C02421C0E5 -S315400161909014A0B8921660F07FFFF34894146150B2 -S315400161A0C20421C08330600E8208600380A0600271 -S315400161B0228000051103C0007FFFAC14901020120D -S315400161C01103C0007FFFF57F3B100084A417639045 -S315400161D0AA146150C02421C0A604A008A210200020 -S315400161E0B0102005A004401292044013941521508A -S315400161F07FFFF33290100010DA042010C2052150BF -S31540016200A204601880A3400112800007901020125A -S31540016210DA042014C205600480A34001028004749C -S31540016220010000007FFFABF901000000B0863FFF8F -S315400162303CBFFFEEA00440121110008590122020B1 -S31540016240920220087FFFF31D941521509817639001 -S31540016250C2052150DA0320A080A340011280000725 -S3154001626082152150DA0320A4C200600480A34001B4 -S31540016270028004DC1B0000707FFFABE4901020120B -S315400162801110008590122038C025A1C09202200825 -S315400162907FFFF30A9415215098176390C205215048 -S315400162A0DA0320B880A340011280000782152150ED -S315400162B0DA0320BCC200600480A340010280047F4F -S315400162C01B0000707FFFABD190102012111000858A -S315400162D090122050C025A1C0920220087FFFF2F7FC -S315400162E09415215098176390C2052150DA0320D0A6 -S315400162F080A340011280000782152150DA0320D481 -S31540016300C200600480A34001028004761B00007035 -S315400163107FFFABBE901020121110008590122068AD -S31540016320C025A1C0920220087FFFF2E494152150B6 -S3154001633098176390C2052150DA0320E880A34001F3 -S315400163401280000782152150DA0320ECC200600456 -S3154001635080A340010280046D1B0000707FFFABAB40 -S31540016360901020121110008590122080C025A1C0E6 -S31540016370920220087FFFF2D194152150981763901D -S31540016380C2052150DA03210080A340011280000793 -S3154001639082152150DA032104C200600480A3400122 -S315400163A0028004641B0000707FFFAB98901020129E -S315400163B0C025A1C0111010007FFFF3B013100000DB -S315400163C00310300080A20001128000060100000087 -S315400163D0C205A1C080A0600002800005111FE00037 -S315400163E07FFFAB8A90102012111FE00013100000AE -S315400163F07FFFF2B794152150031FFC00DA052150A7 -S3154001640080A340011280000A82152150C200600417 -S3154001641080A060001280000601000000C205A1C0F4 -S3154001642080A0600002800005111FE0007FFFAB776E -S315400164309010201B111FE000133000007FFFF2A4D3 -S3154001644094152150033FFC00DA05215080A34001F9 -S315400164501280000A82152150C200600480A06000AB -S315400164601280000601000000C205A1C080A06000A4 -S3154001647002800005111000007FFFAB649010201CC4 -S3154001648011100000921020107FFFF29194152150B7 -S31540016490C205A1C01B0000708208400D19000020F2 -S315400164A080A0400C2110014402800004231000808A -S315400164B07FFFAB569010201D94142150C02461C01B -S315400164C0110020007FFFF282130FC000DA04215031 -S315400164D0030E000080A340011280000A941421504B -S315400164E0C202A00480A060001280000601000000E4 -S315400164F0C20461C080A0600002800005111FDFFF59 -S315400165007FFFAB429010201E111FDFFF901223FF29 -S31540016510131000007FFFF26E941521500311FFFF07 -S31540016520821063FFDA05215080A3400112800007E3 -S3154001653082152150DA0060040338000080A340012F -S3154001654002800405010000007FFFAB309010201F40 -S31540016550111FD000130FF0007FFFF25D94152150FB -S315400165600311FC80DA05215080A340011280000A04 -S3154001657082152150C200600480A06000128000068E -S3154001658001000000C205A1C080A060000280000594 -S31540016590111FDFFF7FFFAB1D90102021111FDFFF71 -S315400165A0901223FF921000087FFFF2499415215063 -S315400165B00313FBFF821063FFDA05215080A34001DC -S315400165C01280000882152150DA0060040330000071 -S315400165D08210602080A34001028003E40100000094 -S315400165E07FFFAB0A901020207FFFF4761103C00095 -S315400165F0C025A1C09007BFE07FFFF244921521500C -S31540016600C207BFE0DA05215080A34001128000078E -S3154001661082152150DA006004C207BFE480A340011D -S31540016620028003D7010000007FFFAAF890102013D3 -S315400166301B100085901360E87FFFF23492152150BC -S3154001664003100085DA0060E8C205215080A0400DA4 -S31540016650191000858215215012800007901320E8F9 -S31540016660DA006004C202200480A34001028003C90B -S31540016670010000007FFFAAE5901020131B10008542 -S31540016680901360D07FFFF221921521501910008599 -S31540016690C20320D0DA05215080A340018215215042 -S315400166A012800007981320D0DA006004C203200448 -S315400166B080A34001028003BC010000007FFFAAD3F2 -S315400166C0901020131B100085901360D87FFFF20FA6 -S315400166D092152150C20720B0DA05215080A340010E -S315400166E08215215012800007981720B0DA00600405 -S315400166F0C203200480A34001028003B01B00007046 -S315400167007FFFAAC29010201303100085901060B835 -S31540016710C025A1C07FFFF1FD92152150C20720B0CF -S31540016720DA05215080A340018215215012800007CD -S31540016730981720B0DA006004C203200480A3400108 -S315400167400280040F1B0000707FFFAAB09010201337 -S31540016750C025A1C09015E0C87FFFF1EC92152150EC -S31540016760C2052150DA05E0C880A0400D82152150AE -S31540016770128000079015E0C8DA006004C2022004C6 -S3154001678080A3400102800407010000007FFFAA9F09 -S3154001679090102013170C00089A10200019100C00B5 -S315400167A015300F789612E001D83FBFF0D43FBFC0F5 -S315400167B09007BFF07FFFF1D59215215003100400D9 -S315400167C0DA05215080A340011280000A821521502A -S315400167D0C200600480A06000128000060100000033 -S315400167E0C205A1C080A06000028000059007BFC01D -S315400167F07FFFAA86901020139007BFC07FFFF1C389 -S3154001680092152150C2052150DA0720B080A0400DD3 -S315400168108215215012800007981720B0DA006004D3 -S31540016820C203200480A34001028003E31B000070E1 -S315400168307FFFAA7690102013901660F07FFFF1B388 -S3154001684092152150C205A1C08330600E82086003B3 -S3154001685080A0600202800004211000807FFFAA6BA5 -S3154001686090102013C02421C07FFFF2981111F2002D -S315400168700310E80080A2000112800006010000001A -S31540016880C20421C080A06000028000040100000013 -S315400168907FFFAA5E901020137FFFF3CA11100000FC -S315400168A01101F5897FFFF289901221E20308E9641B -S315400168B080A200011280000601000000C205A1C0AD -S315400168C080A0600002800004010000007FFFAA4F03 -S315400168D0901020237FFFF27D1112A208031141007F -S315400168E080A200011280000601000000C205A1C07D -S315400168F080A0600002800004010000007FFFAA43DF -S31540016900901020237FFFF3AF110010009007BFF0D6 -S31540016910921660F07FFFF1649415215003100C002C -S31540016920DA05215080A340011280000A82152150C8 -S31540016930C200600480A060001280000601000000D1 -S31540016940C205A1C080A0600002800005901660F0DB -S315400169507FFFAA2E90102014901660F09207BFC0B8 -S315400169607FFFF1569415215003200000DA0521508E -S3154001697080A340011280000A82152150C2006004A2 -S3154001698080A060001280000601000000C205A1C07F -S3154001699080A0600002800004010000007FFFAA1B66 -S315400169A0901020147FFFF19190102001030FE00019 -S315400169B080A200011280000601000000C205A1C0AC -S315400169C080A0600002800004010000007FFFAA0F42 -S315400169D0901020147FFFF17D90102001030FFC00E1 -S315400169E080A200011280000880A260001280000689 -S315400169F001000000C205A1C080A060000280000421 -S31540016A00010000007FFFAA01901020147FFFF36D63 -S31540016A101110100019100085D41B20D07FFFF1F909 -S31540016A20D01E60F003100085D03D2150DA0060D8B9 -S31540016A30C205215080A0400D1910008582152150B4 -S31540016A4012800007901320D8DA006004C2022004A5 -S31540016A5080A3400102800361010000007FFFA9EB92 -S31540016A60901020227FFFF357111000001704008079 -S31540016A70150F28009612E0F09A102000190FFC001D -S31540016A80D43FBFC0D83FBFF09007BFF09207BFC009 -S31540016A907FFFF10594152150030FFC00DA052150C3 -S31540016AA080A340011280000682152150C200600475 -S31540016AB080A0600002800004010000007FFFA9D38E -S31540016AC0901020157FFFF33F112000001700004072 -S31540016AD0150014009612E0019A102000190FFC00CF -S31540016AE0D43FBFC0D83FBFF09007BFF09207BFC0A9 -S31540016AF07FFFF0ED94152150030FFC00DA0521507C -S31540016B0080A340011280000682152150C200600414 -S31540016B1080A0600102800004010000007FFFA9BB44 -S31540016B20901020157FFFF327113000001700004019 -S31540016B30152014009612E0019A102000192FFC002E -S31540016B40D43FBFC0D83FBFF09007BFF09207BFC048 -S31540016B507FFFF0D594152150032FFC00DA05215013 -S31540016B6080A340011280000682152150C2006004B4 -S31540016B7080A0600102800004010000007FFFA9A3FC -S31540016B80901020157FFFF30F11100000190FFC0024 -S31540016B909A102000D83FBFF09007BFF09216E0E070 -S31540016BA07FFFF0C194152150C206E0E0DA0521507D -S31540016BB080A3400182152150128000079816E0E01B -S31540016BC0DA006004C203200480A34001028000046D -S31540016BD0010000007FFFA98D901020157FFFF2F97B -S31540016BE01120000017000040150014009612E00124 -S31540016BF0190FFC009A102000D43FBFC0D83FBFF008 -S31540016C009007BFF09216E0E07FFFF0A79415215060 -S31540016C10C206E0E0DA05215080A3400182152150E9 -S31540016C20128000079816E0E0DA006004C2032004EF -S31540016C3080A3400102800004010000007FFFA97388 -S31540016C40901020157FFFF2DF113000001700004041 -S31540016C50152014009612E0019A102000192FFC000D -S31540016C60D43FBFC0D83FBFF09007BFF09216E0E0D7 -S31540016C707FFFF08D94152150C2052150DA06E0E0E0 -S31540016C8080A0400D82152150128000079016E0E049 -S31540016C90DA006004C202200480A34001028000049D -S31540016CA0010000007FFFA959901020157FFFF2C512 -S31540016CB01110000015100000961020019A102001B5 -S31540016CC0190FFC00D43FBFC0D83FBFF09007BFF0BB -S31540016CD09207BFC07FFFF079941521500310000041 -S31540016CE0DA05215080A34001128000068215215009 -S31540016CF0C200600480A0600202800004010000001E -S31540016D007FFFA942901020157FFFF2AE11200000AF -S31540016D109007BFF09207BFC07FFFF06894152150DE -S31540016D2003100000DA05215080A3400112800006BD -S31540016D3082152150C200600480A0600302800004D5 -S31540016D40010000007FFFA931901020157FFFF29DC1 -S31540016D50113000009A102001192FFC00D83FBFF0D6 -S31540016D609007BFF09207BFC07FFFF05494152150A2 -S31540016D7003300000DA05215080A34001128000064D -S31540016D8082152150C200600480A060030280000485 -S31540016D90010000007FFFA91D901020157FFFF28999 -S31540016DA011100000150FFC04172F26159412A0127E -S31540016DB09612E231190FFEAE1B1CD2E89A136011EE -S31540016DC098132154D43FBFC0D83FBFF09007BFF0BE -S31540016DD09207BFC07FFFF04794152150030FFEA7CE -S31540016DE082106296DA05215080A340011280000884 -S31540016DF082152150DA006004032C1B348210602F67 -S31540016E0080A3400102800004010000007FFFA8FF2B -S31540016E10901020157FFFF26B112000009007BFF004 -S31540016E209207BFC07FFFF03394152150030FFEA791 -S31540016E3082106296DA05215080A340011280000833 -S31540016E4082152150DA006004032C1B348210603015 -S31540016E5080A3400102800004010000007FFFA8EBEF -S31540016E60901020157FFFF25711300000192FFC04B6 -S31540016E701B2F26159A13623198132012D83FBFC093 -S31540016E809007BFF09207BFC07FFFF01A94152150BB -S31540016E90032FFEA782106296DA05215080A3400196 -S31540016EA01280000882152150DA006004032C1B343D -S31540016EB08210603080A3400102800004010000007E -S31540016EC07FFFA8D2901020157FFFF23E11100000DF -S31540016ED015101000961020009A1020001910380045 -S31540016EE0D43FBFC0D83FBFF09007BFF09207BFC0A5 -S31540016EF07FFFF0009415215003102400DA0521503C -S31540016F0080A340011280000682152150C200600410 -S31540016F1080A0600002800004010000007FFFA8BB42 -S31540016F20901020157FFFF227112000009007BFF037 -S31540016F309207BFC07FFFEFEF941521500310240045 -S31540016F40DA05215080A340011280000682152150A6 -S31540016F50C200600480A060000280000401000000BD -S31540016F607FFFA8AA901020157FFFF216113000006E -S31540016F709007BFF09207BFC07FFFEFDE9415215007 -S31540016F8003102400DA05215080A340011280000637 -S31540016F9082152150C200600480A060000280000476 -S31540016FA0010000007FFFA899901020157FFFF20590 -S31540016FB011100000210FE000110020007FFFF0B901 -S31540016FC09214200180A220001280012301000000BA -S31540016FD07FFFF1FC11200000110020007FFFF0B17E -S31540016FE09214200180A220001280011801000000A5 -S31540016FF07FFFF1F411300000921420017FFFF0A9C8 -S315400170001100200080A220001280010D0100000025 -S315400170107FFFF1EC111000009A102000190FFC00BF -S31540017020D83FBFF09007BFF07FFFEFB892152150D0 -S31540017030C207BFF0DA05215080A340011280000744 -S3154001704082152150DA006004C207BFF480A34001D3 -S31540017050028002A7010000007FFFA86C9010201556 -S315400170607FFFF1D8112000009007BFF07FFFEFA707 -S3154001707092152150C207BFF0DA05215080A3400185 -S315400170801280000782152150DA006004C207BFF45E -S3154001709080A340010280029B010000007FFFA85BA4 -S315400170A0901020157FFFF1C7113000009007BFF007 -S315400170B07FFFEF9692152150C207BFF0DA052150A6 -S315400170C080A340011280000782152150DA00600436 -S315400170D0C207BFF480A340010280028F0100000075 -S315400170E07FFFA84A901020157FFFF1B611100000CE -S315400170F0030FDFFF901063FF7FFFF074A0100008BD -S3154001710080A2001002800004010000007FFFA83F1A -S31540017110901020157FFFF1AB112000007FFFF06B2F -S3154001712090100010030FE00080A2000102800004CD -S31540017130010000007FFFA835901020157FFFF1A1C7 -S31540017140113000007FFFF0619010001080A2001006 -S3154001715002800004010000007FFFA82C901020153A -S315400171607FFFF198901020007FFFF060901521502D -S31540017170032FFE00DA05215080A34001128000064C -S3154001718082152150C200600480A060000280000583 -S31540017190211001447FFFA81D9010201621100144A3 -S315400171A07FFFF05C90142158DA042158032FF00038 -S315400171B080A3400102800004A21421587FFFA81336 -S315400171C0901020167FFFF05D90100011DA042158CF -S315400171D0030FE00080A3400102800004010000008B -S315400171E07FFFA80A901020167FFFF064901521506A -S315400171F0030FFBF7821063F0DA05215080A34001AB -S315400172001280000882152150DA0060040303FF1240 -S315400172108210604A80A3400102800005921660F008 -S315400172207FFFA7FA90102016921660F09007BFF0E4 -S315400172307FFFEF3094152150C205A1C08330600E07 -S315400172408208600780A06002028000051910004B89 -S315400172507FFFA7EE901020171910004B17100080E2 -S31540017260DA02E1C8821322F880A0400DE00322F839 -S3154001727002800004A212E1C87FFFA7E49010201803 -S31540017280C204600480A04010028000040100000096 -S315400172907FFFA7DE90102018C204600880A060001E -S315400172A01280007701000000C204600C80A06000DB -S315400172B01280006C010000007FFFEEE60100000035 -S315400172C080A220010280019801000000190C40298A -S315400172D01B23CD1B9A13609B981320069410200004 -S315400172E096102000D83FBFF0D43FBFC07FFFEF2F9D -S315400172F09007BFF003100083A21062101B1000819B -S3154001730003100144A0136210A4106150B010200074 -S31540017310832E2002DA044001DA27BFC09007BFC09E -S315400173207FFFEF25921521509B2E2003D804000D97 -S31540017330C2052150B00620019603401080A30001EA -S315400173401280000790102019DA02E004C204A0045A -S3154001735080A340010280000580A620FF7FFFA7ABE6 -S315400173600100000080A620FF04BFFFEB832E200210 -S3154001737003100083A41062101B1000800310014407 -S31540017380A2136210A6106150B0102000A12E200257 -S31540017390C2048010C227BFC0921521507FFFEEDB89 -S315400173A09007BFC0DA044010C2052150B006200242 -S315400173B09804001180A34001128000079010201A02 -S315400173C0DA032004C204E00480A3400102800005E0 -S315400173D080A620FF7FFFA78D0100000080A620FF29 -S315400173E024BFFFECA12E200230800211C205A1C0AC -S315400173F080A0600022BFFB8FB0863FFF30BFFB8A73 -S31540017400C205A1C080A0600002BFF1450100000095 -S3154001741030BFF141C205A1C080A0600002BFF13674 -S315400174200100000030BFF132C205A1C080A060005A -S3154001743002BFF1270100000030BFF1237FFFA77390 -S315400174409010201530BFFEF37FFFA77090102015D6 -S3154001745030BFFEE87FFFA76D9010201530BFFEDDDF -S315400174607FFFA76A9010201830BFFF947FFFA76760 -S315400174709010201010BFF678111000847FFFA7638B -S315400174809010201830BFFF89C207BFCC80A0600092 -S3154001749012BFF8F501000000C20421C08208401560 -S315400174A09A16A00880A0400D12BFF8EF0100000017 -S315400174B010BFF8F015108683C205A1C09A13601F4C -S315400174C0190000108208400D9813200880A0400C36 -S315400174D012BFFB7D1110008510BFFB7F901220501B -S315400174E0C205A1C09A13601F190000108208400D01 -S315400174F09813200880A0400C12BFFB86111000850E -S3154001750010BFFB8890122068C205A1C09A13601F64 -S31540017510190000108208400D9813200480A0400CE9 -S3154001752012BFFB8F1110008510BFFB919012208076 -S31540017530C205A1C09A13601F190000108208400DB0 -S315400175409813200880A0400C12BFFB980100000050 -S3154001755030BFFB98C205A1C080A0600002BFFBFE00 -S31540017560111FD00030BFFBF9C205A1C080A0600049 -S3154001757002BFFC1E0100000030BFFC1AC205A1C0BB -S3154001758080A0600002BFFC2C1B10008530BFFC2789 -S31540017590C205A1C080A0600002BFFC3A1B10008555 -S315400175A030BFFC35C205A1C080A0600002BFFC47C8 -S315400175B01B10008530BFFC42C205A1C09A13601F53 -S315400175C0190000108208400D9813201080A0400C2D -S315400175D012BFFC4C0310008510BFFC4E901060B8E2 -S315400175E0C205A1C09A13601F190000108208400D00 -S315400175F09813200480A0400C12BFFB201110008577 -S3154001760010BFFB2290122038C205A1C080A06000A5 -S3154001761022BFF8D0150FFFFF30BFF8CBC205A1C07E -S3154001762080A0600002BFF8100310008530BFF80B40 -S31540017630C205A1C09A13601F190000108208400DAF -S315400176409813201080A0400C12BFF8169015E0C880 -S3154001765010BFF818921660F0C205A1C080A0600064 -S3154001766002BFF9491B10008530BFF944C205A1C0CC -S3154001767080A0600002BFF9579007BFF030BFF952B2 -S31540017680C205A1C080A0600002BFF9631B1000853E -S3154001769030BFF95EC205A1C09A13601F19000010E0 -S315400176A08208400D9813201080A0400C12BFF96942 -S315400176B09007BFF010BFF96B921660F0C20461C02B -S315400176C080A0600002BFF74B1B10008530BFF74614 -S315400176D0C205A1C080A0600002BFF75A9016E0E043 -S315400176E030BFF755C205A1C09A13601F190000109B -S315400176F08208400D9813201080A0400C12BFF75FFE -S315400177000100000030BFF75FC205A1C080A0600044 -S3154001771002BFF76F1B10008530BFF76AC205A1C0D3 -S315400177209A13601F190000108208400D981320100B -S3154001773080A0400C12BFF7750100000030BFF775FD -S31540017740C20461C080A0600002BFF7949015E0C8F2 -S3154001775030BFF78FC205A1C080A0600002BFF7A06D -S315400177609015E0C830BFF79BC205A1C080A060005C -S3154001777002BFF7AC9015E0C830BFF7A7C205A1C05C -S315400177809A13601F190000108208400D98132010AB -S3154001779080A0400C12BFFBED0100000030BFFBEDA5 -S315400177A0C205A1C080A0600002BFFBFC170C000807 -S315400177B030BFFBF7C205A1C09A13601F1900001024 -S315400177C08208400D9813201080A0400C12BFFC196E -S315400177D0901660F030BFFC1AC205A1C080A06000BF -S315400177E002BFFCA10100000030BFFC9DC20461C084 -S315400177F080A0600002BFF9E59015E0C830BFF9E00E -S31540017800C205A1C080A0600002BFF9F19015E0C891 -S3154001781030BFF9ECC205A1C080A0600002BFF9FDEE -S315400178209015E0C830BFF9F8C205A1C080A060003C -S3154001783002BFFA091910008530BFFA04C20461C0BB -S3154001784080A0600002BFF9250310008530BFF920F2 -S31540017850C205A1C09A13601F190000108208400D8D -S315400178609813201080A0400C12BFF92C0100000093 -S3154001787030BFF92CC205A1C080A0600002BFF93C0F -S315400178801B10008530BFF937C205A1C09A13601F8E -S31540017890190000108208400D9813201080A0400C5A -S315400178A012BFF9429007BFE810BFF944921660F043 -S315400178B0C20461C080A0600002BFF95F9016E0E09B -S315400178C030BFF95AC205A1C09A13601F19000010B2 -S315400178D08208400D9813201080A0400C12BFF96415 -S315400178E00100000030BFF964C205A1C080A060005C -S315400178F002BFF9740310008530BFF96FC205A1C0FC -S315400179009A13601F190000108208400D9813201029 -S3154001791080A0400C12BFF97A9016E0E010BFF97CC6 -S31540017920921660F07FFFA6399010201910BFFE69AC -S31540017930190C4029D80061C01B0000709A13601FC2 -S3154001794003000010980B000D8210600880A300010F -S3154001795012BFF5501110008410BFF55290122360EA -S31540017960C205A1C09A13601F190000108208400D7C -S315400179709813200480A0400C12BFF55811100084C2 -S3154001798010BFF55A90122378C205A1C09A13601F01 -S31540017990190000108208400D9813200480A0400C65 -S315400179A012BFF5600100000030BFF560C205A1C0FD -S315400179B080A0600002BFF4A90310008530BFF4A483 -S315400179C0C205A1C080A0600002BFF4939015E0C833 -S315400179D030BFF48EC205A1C080A0600002BFF47D15 -S315400179E09015E0C830BFF478C20461C080A0600041 -S315400179F002BFF4679015E0C830BFF462C205A1C06A -S31540017A009A13601F190000108208400D9813200236 -S31540017A1080A0400C12BFF5B61B10008510BFF5B80B -S31540017A20921360D0C205A1C080A0600002BFF5C517 -S31540017A309007BFF030BFF5C0C205A1C080A060006D -S31540017A4002BFF5D10310008530BFF5CCC205A1C0F8 -S31540017A509A13601F190000108208400D98132010D8 -S31540017A6080A0400C12BFF5D79007BFF010BFF5D9E3 -S31540017A70921660F0C20461C080A0600022BFF5F397 -S31540017A801910008530BFF5EEC205A1C09A13601FDB -S31540017A90190000108208400D9813201080A0400C58 -S31540017AA012BFF5F91B10008510BFF5FB03100085C9 -S31540017AB0C205A1C080A0600002BFF60B9007BFE8D7 -S31540017AC030BFF606C205A1C080A0600002BFF6170E -S31540017AD01B10008530BFF612C20421C080A0600091 -S31540017AE022BFF03E113C02AF30BFF039C205A1C002 -S31540017AF080A0600002BFFD5B0100000030BFFD5762 -S31540017B00C205A1C080A0600002BFFD670100000060 -S31540017B1030BFFD63C205A1C080A0600002BFFD73F6 -S31540017B200100000030BFFD6FC205A1C080A060000A -S31540017B3002BFF2D70310008530BFF2D2C205A1C001 -S31540017B4080A0600002BFF2C19007BFF030BFF2BC17 -S31540017B50C205A1C080A0600002BFF2AA371000850D -S31540017B6030BFF2A5C205A1C080A0600002BFF028C7 -S31540017B701111FC0030BFF023C205A1C09A13601F4A -S31540017B80190000108208400D9813201080A0400C67 -S31540017B9012BFF3DD9016E0E010BFF3DF921660F0FE -S31540017BA0C205A1C080A0600002BFF39E1B100085E4 -S31540017BB030BFF399C205A1C080A0600002BFF38621 -S31540017BC01B10008530BFF381C205A1C080A06000B3 -S31540017BD002BFF36E1B10008530BFF369C20461C05A -S31540017BE080A0600002BFF3589016E0E030BFF35327 -S31540017BF0C205A1C080A0600002BFF30E1910008526 -S31540017C0030BFF309C205A1C080A0600002BFF2F8EF -S31540017C109007BFE830BFF2F3C20461C080A06000A4 -S31540017C2002BFF2E29007BFE830BFF2DD81C7E0084C -S31540017C3081E80000D27A000081C3E008010000001B -S31540017C4081C3E008900A20209332600492126001B9 -S31540017C508213C0007FFFFFF89E1040000100000024 -S31540017C6081D8200081C3E008010000009DE3BF9850 -S31540017C707FFFFFFC0100000082102400C0A04300EA -S31540017C8081C7E00881E80000833220189A10000875 -S31540017C908088600F028000049010200083336010BA -S31540017CA09008600381C3E008010000009DE3BF988E -S31540017CB0031000C01B1000C1B0106000A213600089 -S31540017CC0031000C21B1000C2A4106000A61361007D -S31540017CD0031000201B100020A8106158AA13600051 -S31540017CE07FFFEBAD9010200C808A2008028001FDB9 -S31540017CF0010000007FFFA5409010200ED080032098 -S31540017D007FFFFFE2010000000310014380A2200231 -S31540017D10028000C6D02060D480A22002148000E4F4 -S31540017D2080A2200380A22001028000D18210201966 -S31540017D30331000A02F1000A0391000A0371000A06A -S31540017D40351000A07FFFFFC7210100007FFFFFC85C -S31540017D50BA04A00C921000117FFFFFBC90100018CE -S31540017D60921000117FFFFFB9900620049010001178 -S31540017D707FFFFFB19210200ADA0660141108000055 -S31540017D80913A000DC205E010900A0001912A2002A5 -S31540017D9013008000900200117FFFFFA79212600A34 -S31540017DA0DA06601411100000913A000DC205E01088 -S31540017DB0900A0001912A2002900200117FFFFF9E46 -S31540017DC09214208EDA066014111C0000913A000DBF -S31540017DD0C205E010900A0001912A20021301C00059 -S31540017DE0900200117FFFFF949212608E9334A0049B -S31540017DF09004600C7FFFFF90921260019214201E46 -S31540017E007FFFFF8D9004A0089010001D7FFFFF8A21 -S31540017E10921020009334E004921260017FFFFF86A6 -S31540017E209004A004111000C2901221087FFFFF8226 -S31540017E3092102000031000E0A0106000933420044B -S31540017E40111000C2901221047FFFFF7B9212601A2B -S31540017E5003048D1582106278C2242004111000E0BB -S31540017E6015100120C0222000A2102003AC12A00050 -S31540017E70A004E00C90047FFD40000A739210200399 -S31540017E801B100143C20360D48200600C932A000197 -S31540017E909202401693326004901000107FFFFF66F5 -S31540017EA09212601EA204600180A4600A04BFFFF220 -S31540017EB0A0042004C206E008D807200C820860010D -S31540017EC08328400CD605E010111000E0D406A0002E -S31540017ED0DA06601498122000960AE003972AC00D2C -S31540017EE0920AA002111000A0DA022004940AA0010D -S31540017EF0952A800D932A400D1B1000209612C00131 -S31540017F00E8236150030100001B0076418210601E88 -S31540017F109A1361C09212C00999332004C2252004E4 -S31540017F20DA2520089612C00A9E13200E9135600468 -S31540017F301B1000C2031000C2821061049012201E61 -S31540017F40953620049813201E9A136108D625202CB5 -S31540017F50D8252010D025201CD2252020DE252028FA -S31540017F60D6252014940ABFF0FA250000DA252018F8 -S31540017F70C2252024C225200CA2102100D4A44320CE -S31540017F80C2800320D88443209A102001A0102200E9 -S31540017F90DAA40320D884032082102000C2A403203F -S31540017FA0DAA0032081D820007FFFC019010000001C -S31540017FB0C2800320E2844320E0840320DA05E010F6 -S31540017FC0D6066014C206E0089A0B60039B2B400B51 -S31540017FD082086001D407200CD806A000111000A029 -S31540017FE08328400A980B2001D60220049A134001A7 -S31540017FF0992B000B9A13400CC203400080A06000ED -S3154001800012800008821360041B048D15D8004000BD -S315400180109A13627880A3000D02800038C205E010F1 -S3154001802010800000010000008210201A331000A0C9 -S31540018030C22660149810203F2F1000A0391000A0CE -S31540018040351000A09A1020148210200E151000A0A1 -S31540018050371000A0DA27200CC222A004D826A0009F -S31540018060D825E01010BFFF38D826E0089A10207FA7 -S31540018070331000A02F1000A0C2266014DA25E010AC -S315400180809810203F391000A0351000A0821020130F -S315400180909A10200D111000A0371000A0C227200C05 -S315400180A0DA22200410BFFFF0D826A00012BFFF221B -S315400180B0331000A08210201CC22660149A1020158D -S315400180C08210207F391000A0371000A0DA27200C3B -S315400180D0C226E0089810200F2F1000A0351000A0EE -S315400180E01B1000A08210203FD8236004C226A000A6 -S315400180F010BFFF15D825E010DA06E008D80660144F -S31540018100820860039A0B6002D607200C8328400C34 -S315400181109B2B400B8210400DD80040001B100000E5 -S31540018120C203400080A3000102800004D406E00897 -S315400181301080000001000000C205E010980AA0016D -S31540018140D207200CD6066014820860038328400BB0 -S31540018150992B0009940AA0039810400CDA06A00056 -S31540018160111000A0952A80099A0B6001D6022004BD -S315400181708210400AC20040009B2B400B9813000D11 -S315400181800321D9509813200482106321C223000091 -S31540018190DA03000080A3400102800004C206E00821 -S315400181A01080000001000000D407200CDA05E01021 -S315400181B082086001D60660148328400A9A0B600340 -S315400181C0D806A0009B2B400B151000A0D602A00498 -S315400181D0980B20019A134001992B000B9813400CE0 -S315400181E08210000C05048D158410A278072AF37BB2 -S315400181F08610E301C4384000C438400003048D159D -S31540018200DA0300008210627880A3400102800004F4 -S315400182108213200410800000010000001B2AF37B1A -S31540018220D80040009A13630180A3000D12BFFFFAE4 -S31540018230C205E010D6066014D806E008820860033D -S31540018240D407200C8328400B980B2001DA06A000A6 -S31540018250111000A0992B000A9A0B6003D602200444 -S315400182608210400C9B2B400B15100143A010400D72 -S31540018270F002A0D4A2102003E0240000C0A00220F6 -S31540018280921020034000097090047FFD8206200C65 -S3154001829098102001912A0001992B00011B10012001 -S315400182A09610000182136000DA02000180A340109B -S315400182B0A204600112800087A004000C80A4600A19 -S315400182C024BFFFEFE0240000C0A0022003100120DC -S315400182D0A810000BAA106000A0102000A2102003D5 -S315400182E090047FFD4000095892102003832C6002C0 -S315400182F0912A0014DA04C00190020015820B6060D5 -S315400183009132200480A000019012201EA04000104E -S315400183109A0B7F9F900A3F9F80A340081280006F6F -S31540018320A204600180A4600A24BFFFEF90047FFD90 -S3154001833080A4200012800004C205E01010800000D5 -S3154001834001000000D6066014D806E00882086003E2 -S31540018350D407200CDA06A000111000A08328400B98 -S31540018360980B2001992B000AD60220049A0B600231 -S315400183708210400C9B2B400BAA10400D9FC540001C -S315400183800100000082102400C0A04300C0A00220CA -S31540018390A0102000A21020039B2C6002C204C00D35 -S315400183A08208606080A00001A0400010A204600124 -S315400183B080A4600A24BFFFFA9B2C600280A4200897 -S315400183C022800004D004E004108000000100000077 -S315400183D0808A204002800007010000007FFFFE19CD -S315400183E00100000080A2200012800004010000006C -S315400183F010800000010000007FFFFE12D004A0089B -S3154001840080A22000128000040100000010800000BC -S31540018410010000007FFFFE0BD004E00880A220008F -S3154001842012800004010000001080000001000000DD -S3154001843083480000842860808188A00001000000F4 -S315400184400100000001000000D806E008D407200C16 -S31540018450DA05E010980B2001D6066014992B000A24 -S315400184609A0B6003C206A0009B2B400B151000A07F -S31540018470D602A004820860018328400B9A13400C5F -S315400184809A1340019A136004C203400092102004DB -S3154001849091D02002010000007FFFBEDD01000000F7 -S315400184A0981020009A102200D8A343208210200160 -S315400184B0C2A34320D8A3432003100000DA8043809F -S315400184C0DAA04380D8A0032081D82000308000055F -S315400184D01080000001000000108000000100000033 -S315400184E081C7E00891E820009DE3BF98400007D18D -S315400184F001000000808A21000280003F0100000047 -S315400185007FFFA35101000000912A20047FFFA33A77 -S31540018510900220050310014082106048DA00600491 -S3154001852080A360002280001503100140B0100001B5 -S31540018530C20600009B38601F81836000DA06200472 -S3154001854001000000010000008278400DDA06200893 -S31540018550B006200C80A0400D02800004901020013E -S315400185607FFFA32A01000000C206200480A060000C -S3154001857012BFFFF00310014082106000DA00600470 -S3154001858080A360000280001501000000B0100001C8 -S31540018590C206000081800000DA06200401000000C6 -S315400185A0010000009A70400D8210000DDA06200885 -S315400185B0B006200C80A0400D0280000490102002DD -S315400185C07FFFA31201000000C206200480A06000C4 -S315400185D012BFFFF001000000400008240100000026 -S315400185E080A2200012800004010000007FFFA30743 -S315400185F09010200381C7E00891E820009DE3BF98D1 -S315400186007FFFA31101000000912A20047FFFA2FAF7 -S3154001861090022004400007890100000080A2212326 -S3154001862002800004010000007FFFA2F890102001A3 -S315400186304000078001000000808A21000280002B53 -S315400186400310014082106184DA00600880A360094A -S315400186500280001101000000B0100001C2060000B6 -S31540018660DA062004D80620088258400DB006200CB0 -S3154001867080A0400C02800004901020027FFFA2E3FC -S3154001868001000000C206200880A0600912BFFFF465 -S3154001869001000000400007760100000080A2200092 -S315400186A00280000F01000000400007620100000047 -S315400186B0808A22000280000D010000004000079ED2 -S315400186C00100000080A22000128000080100000085 -S315400186D07FFFA2CE90102004308000047FFFA2CB02 -S315400186E09010200330BFFFF181C7E00891E82000D8 -S315400186F09DE3BFA094102000111000619012232425 -S315400187001310006192126328171000619612E3302C -S31540018710191000619813233493C2000081C24000AE -S315400187201080019181C2C00081C300001080018E7A -S315400187309402A0019402A00180A2A0031280018AA2 -S3154001874001000000874400008D30E00E8C89A007AF -S3154001875080A1A000028000C701000000AF30E00BFD -S31540018760AE0DE00780A5E000128000C201000000C6 -S3154001877080A1A002128000350100000025100000F2 -S31540018780E41C80002510000029100000A8152104D2 -S31540018790A6100012AA100012AC100014A1802046A7 -S315400187A0A4100000AA10000001000000A180204E84 -S315400187B0A810210001000000A18000000100000076 -S315400187C001000000E83CA03082A4801312800166BB -S315400187D082A500161280016401000000010000001C -S315400187E001000000874400008D30E00B8C89A00712 -S315400187F08CA1A0051280015CA1800000010000004F -S315400188000100000001000000E81CA03082A500160E -S315400188101280015582A54012A41000001280015217 -S315400188200100000001000000874400008D30E00B8C -S315400188308C89A0078CA1A0031280014B0100000086 -S315400188401080008C0100000080A1A001128000234D -S3154001885025100000E41C80002510000029100000AE -S31540018860A8152104A6100012AA100012AC1000147B -S31540018870A1802046A4100000AA10000001000000BB -S31540018880A180204EA810210001000000A180000017 -S31540018890010000000100000001000000E83C8000EA -S315400188A082A480131280013082A500161280012E07 -S315400188B00100000001000000874400008D30E00BFC -S315400188C08C89A0078CA1A00212800127010000001B -S315400188D0108000680100000080A1A003128000659D -S315400188E0A6100000A210200EA1844000A610000090 -S315400188F0A1800000A814E000AB4400000100000084 -S31540018900AC14E00001000000AF44000080A5200047 -S3154001891012800115AA8D6E0080A5400012800112B9 -S3154001892080A5A00012800110AF35E00BAE0DE00727 -S3154001893080A5E0011280010C01000000A01000009A -S31540018940A1844000A6100000A1800000E8180000A4 -S31540018950AC100000AE100000EC04C000EE04E004D0 -S3154001896080A500161280010080A54017128000FEE6 -S3154001897001000000A5440000A534A00BA40CA007EB -S3154001898080A4A001128000F801000000A0100000A0 -S31540018990A1844000A6100000A1800000A210200A78 -S315400189A0A1844000A4100000A1800000E818000046 -S315400189B0AC100000AE100000EC04C012EE04E0045E -S315400189C080A50016128000E880A54017128000E6B7 -S315400189D001000000A5440000A534A00BA40CA0078B -S315400189E080A4A002068000E00100000021100140A1 -S315400189F0A0142200EC1C0000A0042008E81C000082 -S31540018A00A1844000A6100000A1800000A210200E03 -S31540018A10A1844000A4100010AC100000AE1000006C -S31540018A20A18000000100000001000000EC3C801321 -S31540018A30AC100000AE100000E81CC01280A5001664 -S31540018A40128000C980A54017128000C701000000AE -S31540018A50A5440000A534A00BA40CA00780A4A00443 -S31540018A60128000C1010000001080000201000000D8 -S31540018A708B4440008A09601F80A160010280000A80 -S31540018A808C1000059DE3BFA08AA1600116BFFFFEC1 -S31540018A900100000081E800008CA1A00116BFFFFE85 -S31540018AA0010000000100000001000000A023A08099 -S31540018AB0A02C20078E100010A3480000E2240000DD -S31540018AC0C2242004C43C2008C83C2010CC3C2018B9 -S31540018AD0F03C2020F43C2028F83C2030FC3C203857 -S31540018AE0D03C2040D43C2048D83C2050DC3C205847 -S31540018AF0A5500000E4242060801020088210200147 -S31540018B008410200286102003881020048A10200534 -S31540018B108C10200681900000A42C601F818C80005F -S31540018B200100000001000000010000000300404078 -S31540018B3082106101841000008610000089444000C3 -S31540018B408809201F86100004A010000284004002FC -S31540018B50A210000284004002A410000284004002D8 -S31540018B60A610000284004002A810000284004002C0 -S31540018B70AA10000284004002AC10000284004002A8 -S31540018B80AE100002840040029010000284004002B0 -S31540018B9092100002840040029410000284004002B8 -S31540018BA096100002840040029810000284004002A0 -S31540018BB09A100002840040029C1000028400400288 -S31540018BC09E1000028400400281E0000086A0E00180 -S31540018BD016BFFFDE01000000030040408210610124 -S31540018BE0841000008610000480A400021280003F19 -S31540018BF08400400280A440021280003C840040026E -S31540018C0080A48002128000398400400280A4C00200 -S31540018C10128000368400400280A500021280003393 -S31540018C208400400280A54002128000308400400248 -S31540018C3080A580021280002D8400400280A5C002DA -S31540018C401280002A8400400280A20002128000277E -S31540018C508400400280A24002128000248400400227 -S31540018C6080A28002128000218400400280A2C002BC -S31540018C701280001E8400400280A300021280001B65 -S31540018C808400400280A34002128000188400400202 -S31540018C9080A38002128000158400400280A3C00296 -S31540018CA0128000128400400281E0000086A0E001AB -S31540018CB016BFFFCE0100000080A020001280000BED -S31540018CC080A0FFFF1280000980A160051280000785 -S31540018CD080A1A0061280000501000000A010000737 -S31540018CE010800006C0242020A0100007901020010B -S31540018CF010800002D024202082100007C4004000CA -S31540018D008188800001000000010000000100000090 -S31540018D10C4186008C8186010CC186018F018602094 -S31540018D20F4186028F8186030FC186038D018604094 -S31540018D30D4186048D8186050DC186058E400606068 -S31540018D40C20060048194800001000000010000001F -S31540018D5001000000A0100007F004202081C7E008B0 -S31540018D6081E8000010BFFFFCB010000001000000C8 -S31540018D7081D8200081C3E008010000001B10014496 -S31540018D80D8036180821020018328400C1B100144C6 -S31540018D9082007FFFD803618482084008932A400CF1 -S31540018DA0900040098213C0007FFFE77F9E1040007C -S31540018DB0010000001B100144D8036180821020018C -S31540018DC08328400C1B10014482007FFFD803618435 -S31540018DD0932A400C82084008900040099210000AEC -S31540018DE08213C0007FFFE7729E1040000100000021 -S31540018DF01B100144D8036180821020018328400C56 -S31540018E001B10014482007FFFD8036184932A400CE2 -S31540018E1082084008900040099210000A8213C0005F -S31540018E207FFFE7679E104000010000001B100144D0 -S31540018E30D8036180821020018328400C1B10014415 -S31540018E4082007FFFD803618482084008932A400C40 -S31540018E50900040098213C0007FFFE7579E104000F3 -S31540018E60010000001B100144D803618C82102001CF -S31540018E708328400C1B10014482007FFFD803619C6C -S31540018E80932A400C82084008900040099210000A3B -S31540018E908213C0007FFFE74E9E1040000100000094 -S31540018EA01B100144D803618C821020018328400C99 -S31540018EB01B10014482007FFFD803619C932A400C1A -S31540018EC082084008900040099210000A8213C000AF -S31540018ED07FFFE7439E104000010000009DE3BF581D -S31540018EE02D100144A2102000C205A19080A440018A -S31540018EF01680001BA01020002B10014429100144AC -S31540018F0027100144A4102001D005618C912C8008C2 -S31540018F10C205219C90023FFF832C0001900A001854 -S31540018F207FFFE72990020001C204E17C901E000800 -S31540018F30900A000180A00008A2647FFFA0042001DE -S31540018F40C205A19080A4000126BFFFF1D005618C26 -S31540018F5080A4600012800003B0102000B0102001F0 -S31540018F6081C7E00881E800001B100144D803618CE9 -S31540018F70821020018328400C1B10014482007FFF90 -S31540018F80D803619C82084008932A400C900040090E -S31540018F908213C0007FFFE70C9E10400001000000D5 -S31540018FA01B100144D803618C821020018328400C98 -S31540018FB01B10014482007FFFD803619C8208400850 -S31540018FC0932A400C900040098213C0007FFFE702BC -S31540018FD09E10400001000000952AA00D03280000C4 -S31540018FE094028009D02040009422B000D42060042D -S31540018FF081C3E00801000000033FFFBF821062F811 -S315400190009DE38001193FFFBF94132368B407BFF85E -S315400190100310004A9606800A82106120C222E00CA3 -S315400190200310004A821060E0C222E0041B10004A8D -S315400190309A1360C0033FFFBFDA26800A901323804C -S315400190403310004A8210635C94068008981323C04B -S31540019050921661008200401ED222E008D4204000D0 -S31540019060B006800C7FFFA064901020067FFFE6CA01 -S3154001907090102000920A3FF07FFFE6C99010200031 -S31540019080210000307FFFE6C490102000808A001046 -S3154001909012BFFFFD010000007FFFFF3621000030B7 -S315400190A07FFFE6BD90102000808A001012BFFFFDB1 -S315400190B0010000007FFFE6B8901020000300204029 -S315400190C08210600F921200017FFFE6B590102000DA -S315400190D07FFFE6B19010200821100144D024217869 -S315400190E07FFFE6AD9010200CA73A2010993A201444 -S315400190F0A60CE007980B200FDA042178A823001369 -S31540019100A80520089F3B6014933B60109B3B601869 -S3154001911094050013A2102001AC03200A9E0BE00F18 -S3154001912096102400AE0B60039402A0022120000099 -S31540019130992AC00C1B1001448203E00A952C400A6F -S315400191409424000A832C4001D8236198A02400016D -S315400191501B10014403100144EC23618C972AC00F74 -S31540019160AA03E00A1B100144D6206174031001448E -S31540019170EA236184EA2061801B1001440310014403 -S31540019180D423617C920A6007A53A2018D0206188D1 -S31540019190153FFFBF932C4009A40CA00303100144C3 -S315400191A09412A358932C4009A404A00139100144F8 -S315400191B037100144EC20619C9B2C40149402801E84 -S315400191C0E0272194E426E190AA027FFFDA2280007B -S315400191D0AC85E0010280000CBB2C4013033FFFBF6E -S315400191E082106368A0068001A4100016D004000016 -S315400191F09FC20000A0042004A484BFFF32BFFFFD2C -S31540019200D00400007FFFE66490102000920A3FFCE4 -S315400192107FFFE66390102000A410200080A48016F2 -S3154001922016800022A2102000033FFFBFAE106368E4 -S31540019230A610001AA010200080A40016368000183F -S31540019240A404A00110800005A810001780A40016F0 -S3154001925036800013A404A001921000107FFFFEC8BF -S31540019260D004C014820A001580A0401512BFFFF831 -S31540019270A0042001C204C01482184008DA072194D0 -S315400192808208400D80A00001A2647FFF80A40016E1 -S3154001929006BFFFF392100010A404A00180A480161B -S315400192A006BFFFE5A604E0047FFFE63B90102000E1 -S315400192B0A6100008901020007FFFE6399214E003C3 -S315400192C080A46000028001B101000000833CE00CF3 -S315400192D080886003128000A5030048D1833CE013D7 -S315400192E080886003128001AD010000007FFFFEA16E -S315400192F0210000307FFFE62890102000808A001070 -S3154001930012BFFFFDA6100008A4102000C206E1907E -S3154001931080A480011680000D832CA00292100012B9 -S31540019320901000187FFFFED094102000A404A001E5 -S31540019330C206E19080A4800106BFFFFA9210001296 -S31540019340A4102000832CA002A404A001C026000181 -S3154001935080A4A01E04BFFFFD832CA002821020051D -S31540019360C22600009A102001DA262004821020022B -S31540019370C22620089A102003DA26200C7FFFFED849 -S315400193809010001880A22000028001D30100000045 -S31540019390C206000080A060050280000401000000B2 -S315400193A07FFF9F9A901020067FFFFECD90100018F8 -S315400193B080A22000128001C401000000A4102000F8 -S315400193C0C206E19080A480011680000F921000121F -S315400193D0A0062004941020007FFFFEB290100018D2 -S315400193E092100012901000107FFFFEAE94102000E4 -S315400193F0A404A001C206E19080A4800106BFFFF645 -S31540019400921000127FFFE5FA901000187FFFE5F8F1 -S31540019410900620207FFFE5F6900620407FFFE5F489 -S3154001942090062060A4102000C206E19080A480012D -S3154001943006800196A21020007FFF9F74901020089D -S31540019440173FFFBF8212E3C0940680018212E35C9C -S315400194508200401ED81A8000C2004000D838400021 -S315400194609612E380C206800B80A06005128000063A -S315400194708206800BDA00600480A360010280000549 -S31540019480A41020007FFF9F6190102009A4102000A6 -S31540019490C206E19080A4800116800011A21020002E -S315400194A0A0062004921000127FFFFEBE901000100D -S315400194B0901A200180A00008A2647FFFA404A001A5 -S315400194C0C206E19080A4800106BFFFF89210001207 -S315400194D080A4600102800005833CE0137FFF9F4B1F -S315400194E09010200A833CE01380886003128001803B -S315400194F082102005C22600009A102001DA26200497 -S3154001950082102002C22620089A102003DA26200C57 -S315400195101B3FFFBF9A1363589A03401ED003400076 -S315400195204000048D9210001D032EEEEEA12A20026A -S31540019530A21063BBE22600107FFFFE69901000185F -S3154001954080A220001280016701000000C2060010BF -S3154001955080A0401102800005030048D17FFF9F2B68 -S3154001956090102012030048D1821061671B226AF3D2 -S31540019570C22620209A1361EFDA262024C20E20202B -S3154001958080A0600102800004010000007FFF9F1F50 -S315400195909010201AC20E202180A060230280000470 -S315400195A0010000007FFF9F199010201BC20E202250 -S315400195B080A0604502800004010000007FFF9F13E8 -S315400195C09010201CC20E202380A0606702800004F8 -S315400195D0010000007FFF9F0D9010201DC20E202428 -S315400195E080A0608902800004010000007FFF9F0780 -S315400195F09010201EC20E202580A060AB0280000480 -S31540019600010000007FFF9F019010201FC20E2026FF -S3154001961080A060CD02800004010000007FFF9EFB18 -S3154001962090102020C20E202780A060EF0280000407 -S31540019630010000007FFF9EF590102021C2162020D8 -S31540019640832860108330601080A06123028000046B -S31540019650010000007FFF9EED90102022DA162022A5 -S315400196609B2B6010030000119B33601082106167D1 -S3154001967080A3400102800004010000007FFF9EE3B9 -S3154001968090102023DA1620249B2B60100300002221 -S315400196909B336010821061AB80A3400102800004BD -S315400196A0010000007FFF9ED990102024DA16202663 -S315400196B09B2B6010030000339B336010821061EFD7 -S315400196C080A3400102800005821020307FFF9ECF9B -S315400196D09010202582102030C22E2020030C08D164 -S315400196E0DA0620208210616780A3400102800005CE -S315400196F0821020317FFF9EC5901020278210203195 -S31540019700C22E2021030C0C51DA06202082106167FB -S3154001971080A3400102800005821020327FFF9EBB5C -S315400197209010202882102032C22E2022210C0C4C6F -S31540019730DA0620208214226780A3400102800005B8 -S31540019740821020337FFF9EB1901020298210203352 -S31540019750C22E20239A142233C206202080A0400D17 -S3154001976002800005821020347FFF9EA89010202A97 -S3154001977082102034C22E2024030D2AF3DA06202437 -S31540019780821061EF80A340010280000582102035DE -S315400197907FFF9E9E9010202B82102035C22E2025C1 -S315400197A0030D0D73DA062024821061EF80A3400178 -S315400197B002800005821020367FFF9E949010202C57 -S315400197C082102036C22E2026210D0D4DDA06202488 -S315400197D0821422EF80A340010280000582102037C7 -S315400197E07FFF9E8A9010202D82102037C22E20277F -S315400197F09A142237C206202480A0400D028000051B -S31540019800210000107FFF9E819010202E2100001024 -S3154001981082142041C23620200310104CDA06202043 -S315400198208210623380A340010280000582142243E4 -S315400198307FFF9E769010202F82142243C23620222B -S3154001984003101050DA0620208210624380A34001A3 -S3154001985002800005210000117FFF9E6C9010203090 -S315400198602100001182142045C23620240311114DD6 -S31540019870DA0620248210623780A340010280000567 -S31540019880821422477FFF9E61901020318214224725 -S31540019890C236202603111151DA062024821062476E -S315400198A080A3400102800004010000007FFF9E5713 -S315400198B0901020327FFFFD2FA4102000C206E190B8 -S315400198C080A48001168000151B100144D403619CBD -S315400198D096100001A010200080A4001D3680000CC7 -S315400198E0A404A001832C800A9B286002992CA01015 -S315400198F082130010C226000DA004200180A4001D81 -S3154001990006BFFFFC9A036004A404A00180A4800B57 -S3154001991026BFFFF2A01020007FFFE49F9010200099 -S3154001992003000010808A000112BFFFFC0100000005 -S31540019930A4102000C206E19080A480011680011483 -S31540019940921000127FFFFD899010001815100144F6 -S31540019950C202A17C900A0001820E000180A2000190 -S31540019960A404A00112BFFFF4901020337FFF9E276D -S3154001997001000000C206E19080A4800106BFFFF20B -S3154001998092100012308001027FFF9E20901020012C -S3154001999010BFFE50833CE00C7FFFE47F9010200017 -S315400199A0133FFFF09212603F920A0009A610000889 -S315400199B07FFFE47B901020007FFFE3D2A4102000BC -S315400199C01303C0009214C0097FFFE4759010200074 -S315400199D080A480161680000992100012901661002C -S315400199E07FFFFD0494102000A404A00180A48016EA -S315400199F006BFFFFB921000127FFFE3C20100000089 -S31540019A007FFFE46590102000913A200A900A2003D6 -S31540019A1080A2200102800004010000007FFF9DFB1F -S31540019A209010200201000000921020009016610063 -S31540019A307FFFFCE194102000010000007FFFE45607 -S31540019A40901020001303C000922A00097FFFE454BE -S31540019A5090102000010000007FFFE3AA01000000F2 -S31540019A607FFFE44D90102000913A200C900A20038C -S31540019A7080A2200102BFFE1E010000007FFF9DE380 -S31540019A809010200330BFFE1A921000127FFFFD4551 -S31540019A9090100018901A200580A00008A2647FFF4C -S31540019AA0A404A001C206E19080A4800106BFFFF88C -S31540019AB09210001280A4600012BFFE63173FFFBFE1 -S31540019AC030BFFE5E7FFF9DD19010200710BFFE3D47 -S31540019AD0A41020007FFF9DCD9010200530BFFE2DA4 -S31540019AE07FFF9DCA9010201130BFFE997FFFE42A67 -S31540019AF090102000033FFFF08210603F920A000160 -S31540019B007FFFE42790102000033FFFBFA010638032 -S31540019B1092102000941020007FFFFCE290068010F6 -S31540019B207FFFE41D901020000303C0009212000144 -S31540019B307FFFE41B9010200010800006A410200037 -S31540019B40900680107FFFFCD794102005A404A00145 -S31540019B50C206E19080A4800106BFFFFA921000126E -S31540019B60033FFFBFA01063809A102001DA2E8010B8 -S31540019B7003004000D80680108210600580A30001D2 -S31540019B8002800004010000007FFF9DA09010200B81 -S31540019B907FFFE40190102000913A2006900A2003AD -S31540019BA080A2200102800004010000007FFF9D97F2 -S31540019BB09010200C7FFFE3F8901020001303C000A3 -S31540019BC0922A00097FFFE3F69010200092102000B0 -S31540019BD0900680107FFFFCB3941020007FFFE3EED8 -S31540019BE0901020002103C000921200107FFFE3EC89 -S31540019BF0901020007FFFE3E890102000808A00103B -S31540019C0002BFFFFDA6100008A4102000C206E19085 -S31540019C1080A480011680000E033FFFBF9A102001E9 -S31540019C20A2106380A12B401D921000129006801154 -S31540019C307FFFFC8D94043FFFA404A001C206E1907E -S31540019C4080A4800106BFFFFA921000121303C000E0 -S31540019C50922CC0097FFFE3D2901020002103C0005F -S31540019C607FFFE3CD90102000808A001012BFFFFDD8 -S31540019C701B004000213FFFBF82142380D80680018C -S31540019C809A13600580A3000D0280000401000000C4 -S31540019C907FFF9D5E9010200D7FFFE3BF9010200057 -S31540019CA0913A2008900A200380A2200122800005D3 -S31540019CB0A01423787FFF9D559010200FA014237880 -S31540019CC094068010981020119A102055D83A800099 -S31540019CD07FFFE3B1901020000303C0009212000100 -S31540019CE0920A7F3F7FFFE3AE90102000A0068010CE -S31540019CF07FFFE3CD9010001010800006A4102000D5 -S31540019D00900420047FFFFC6794102055A404A00111 -S31540019D10C206E19080A4800106BFFFFA92100012AC -S31540019D20113FFFBF901223787FFFE3BF9006800863 -S31540019D3080A220111280000480A260550280000496 -S31540019D40010000007FFF9D31901020107FFFE392BC -S31540019D5090102000833A20068208600380A06001AB -S31540019D6002800004A61000087FFF9D289010201055 -S31540019D70133C3FF09212603F920CC0097FFFE3888B -S31540019D809010200010BFFDDC821020057FFFE3828A -S31540019D90901020009212200F7FFFE3819010200047 -S31540019DA081C7E00891E820009DE3BF987FFFFC93BF -S31540019DB001000000B0100008130020409212600F0D -S31540019DC07FFFE377901020000100000081C7E00883 -S31540019DD081E80000033FFFBF821063589DE3800185 -S31540019DE07FFFFBE401000000400002380100000053 -S31540019DF07FFFE36990102008A21000087FFFE36609 -S31540019E009010200C7FFF9D10A0100008912A20047D -S31540019E107FFF9CF99002200C973C6014833C6018AC -S31540019E20953C2014993C201882086003960AE00F5D -S31540019E30820060019602E00AA33C6010A13C20101A -S31540019E40980B2003940AA00FA728400B98032001E2 -S31540019E50A20C6007A00C20079402A00A9A102001C8 -S31540019E60A2046002A0042002B12B000A03200000D4 -S31540019E70AB2B4011A52B40109620401898057FFF2B -S31540019E80822040139A04BFFFAE130001A213400B78 -S31540019E90210000307FFFE34090102000808A0010AF -S31540019EA012BFFFFD033FFFBF9A07BFF8821063C091 -S31540019EB0A00340012D155555901000189210001021 -S31540019EC07FFFE2C89415A15580A220001280004B65 -S31540019ED0292AAAAA92100010901000187FFFE2D5F5 -S31540019EE0941522AA80A220001280004E0100000093 -S31540019EF07FFF9CD501000000912A20047FFF9CBE74 -S31540019F009002200A400001EE010000009215220055 -S31540019F10920C4009901000189410001196100012EE -S31540019F207FFFE2ED981522AA80A2200012800051FF -S31540019F30010000009215A10090100018920C4009F2 -S31540019F4094100011961000127FFFE2E39815A15577 -S31540019F5080A2200012800044010000007FFF9CBACD -S31540019F6001000000912A20047FFF9CA39002200B50 -S31540019F70901000137FFFE2BF9215A15580A22000E9 -S31540019F801280003501000000901000137FFFE2B9F6 -S31540019F90921522AA80A220001280002C0100000006 -S31540019FA07FFF9CA901000000912A20047FFF9C921B -S31540019FB0900220099010001392100017941000157A -S31540019FC07FFFE2B8961522AA80A220001280001BCC -S31540019FD00100000090100013921000179410001514 -S31540019FE07FFFE2B09615A15580A220000280002590 -S31540019FF0010000003080000E7FFF9C8490102001FC -S3154001A000292AAAAA92100010901000187FFFE2890F -S3154001A010941522AA80A2200002BFFFB601000000CB -S3154001A0207FFF9C7A9010200230BFFFB27FFF9C7762 -S3154001A03090102008308000137FFF9C7490102007F9 -S3154001A04010BFFFE6901000137FFF9C709010200612 -S3154001A05030BFFFD47FFF9C6D9010200510BFFFCC11 -S3154001A060901000137FFF9C699010200430BFFFBC05 -S3154001A0707FFF9C669010200310BFFFB09215A10090 -S3154001A0807FFFFB3CB0102000400001900100000022 -S3154001A0900100000081C7E00881E800009DE3BF9808 -S3154001A0A07FFF9C501100412CDA062004D80620047B -S3154001A0B09A0B6003993B200282102007C226200892 -S3154001A0C0BA036001B20B27FF010000009010200A7D -S3154001A0D0C02600007FFF9C480100000017000200D7 -S3154001A0E082103FFFC226000B032AAAAA1B1555550B -S3154001A0F0D806000BAC102000821062AA9A13615553 -S3154001A100AA0B000180A5801D16800038A80B000D02 -S3154001A1109612E020A72E600880A4E0000480000C7F -S3154001A120A2102000832DA0028200401819000200CF -S3154001A1309A10000BE820400CEA20400DA204601062 -S3154001A14080A4C01114BFFFFC82006040AC05A00191 -S3154001A15080A5801D06BFFFF280A4E000AC10200060 -S3154001A16080A5801D1680002103000200B8106020E2 -S3154001A170A72E6008AE10001880A4E00004800017E6 -S3154001A180A210200003000200A4060001A005C01C85 -S3154001A190C2048000A2046010A404A04080A0401420 -S3154001A1A002800004901020017FFF9C1801000000EE -S3154001A1B0C2040000A004204080A040150280000493 -S3154001A1C0901020017FFF9C110100000080A4C01166 -S3154001A1D014BFFFF001000000AC05A00180A5801D61 -S3154001A1E006BFFFE6AE05E0047FFF9C039010200CFE -S3154001A1F0AC10200080A5801D16800088031555559A -S3154001A2009E1061551B000800032AAAAA9A136004EE -S3154001A210901062AAA72E600880A4E0000480000E78 -S3154001A220A2102000832DA0138200401813000800BD -S3154001A2309410000F9610000D98100008D420400984 -S3154001A240D820400BA204600280A4C01114BFFFFCB9 -S3154001A25082006008AC05A00180A5801D06BFFFF005 -S3154001A26080A4E000AC10200080A5801D1680006B04 -S3154001A27003155555B81061551B000800032AAAAAB3 -S3154001A280B6136004B41062AAA72E600880A4E00049 -S3154001A29004800019A2102000832DA013A0004018AD -S3154001A2A02F000800AA10001CA810001BA410001AB9 -S3154001A2B0C2040017A204600280A040150280000477 -S3154001A2C0901020037FFF9BD101000000C2040014BF -S3154001A2D0A004200880A040120280000490102003B0 -S3154001A2E07FFF9BCA0100000080A4C01114BFFFF18B -S3154001A2F001000000AC05A00180A5801D06BFFFE559 -S3154001A30080A4E000AC10200080A5801D168000438B -S3154001A310030008009E1060041B155555032AAAAA7E -S3154001A3209A136155901062AAA72E600880A4E00096 -S3154001A3300480000EA2102000832DA0138200401835 -S3154001A340130008009410000F9610000D9810000895 -S3154001A350D620400AD8204009A204600280A4C01138 -S3154001A36014BFFFFC82006008AC05A00180A5801DDA -S3154001A37006BFFFF080A4E000AC10200080A5801D40 -S3154001A3801680002603155555B81061551B2AAAAAF1 -S3154001A39003000800A72E6008B61362AAB410600431 -S3154001A3A080A4E00004800019A2102000832DA01390 -S3154001A3B0A00040182F000800AA10001CA810001B7E -S3154001A3C0A410001AC2040012A204600280A0401523 -S3154001A3D002800004901020047FFF9B8C0100000046 -S3154001A3E0C2040017A004200880A040140280000483 -S3154001A3F0901020047FFF9B850100000080A4C011BE -S3154001A40014BFFFF101000000AC05A00180A5801D2D -S3154001A41006BFFFE580A4E00082102005C226200881 -S3154001A4201B200000DA26000081C7E00881E8000011 -S3154001A43081C3E0089144400080800000151001402E -S3154001A4409412A18090102000921022468180000033 -S3154001A450010000000100000001000000D002800060 -S3154001A4609122400881C3E00801000000818000007C -S3154001A470901020018090200180D020011280002C74 -S3154001A4800100000080D23FFF168000290100000034 -S3154001A49080DA3FFF9340000080A27FFF12800024B4 -S3154001A4A00100000080D23FFF9348000093326014C0 -S3154001A4B0920A600F80A260081280001D0100000010 -S3154001A4C08180000090102001945220049452A004EF -S3154001A4D09452A00496A2A0401280001501000000EB -S3154001A4E0818000009010200280A000003280001080 -S3154001A4F09052000880A220021280000D0100000047 -S3154001A500818000009010200280A000000100000020 -S3154001A510328000079052000880A220021280000477 -S3154001A5200100000081C3E0089010200181C3E008CA -S3154001A530901000001315555592126155A5824000A1 -S3154001A5400100000001000000010000009544800068 -S3154001A55080A2400A1280004301000000923A400066 -S3154001A560A58240000100000001000000010000003A -S3154001A5709544800080A2400A1280003A0100000002 -S3154001A5801100003F901223FFA5800000818000004A -S3154001A59001000000010000000100000093F23FFFAE -S3154001A5A09A10000993F23FFF93F23FFF93F23FFF68 -S3154001A5B093F23FFF93F23FFF93F23FFF93F23FFF48 -S3154001A5C09940000097448000153FFC009412A00872 -S3154001A5D080A2400A1280002380A2400B12800021F3 -S3154001A5E080A320071280001F113FFF809012200197 -S3154001A5F080A340081280001B1100003F901223FFE8 -S3154001A600A5800000818000000100000001000000DB -S3154001A6100100000093FA3FFF93FA3FFF93FA3FFF91 -S3154001A62093FA3FFF93FA3FFF93FA3FFF93FA3FFFB7 -S3154001A63093FA3FFF994000009744800080A260084A -S3154001A6401280000880A260081280000680A32000C4 -S3154001A650128000040100000081C3E008901020012F -S3154001A66081C3E00890100000818000009010200214 -S3154001A67080A00000328000109072000880A2200263 -S3154001A6801280000D01000000818000009010200220 -S3154001A69080A000000100000032800007907200088F -S3154001A6A080A22002128000040100000081C3E0085C -S3154001A6B09010200181C3E00890100000C0A0004026 -S3154001A6C081C3E00801000000110020409012200FD4 -S3154001A6D0D0A0004081C3E008010000009DE3BF987F -S3154001A6E07FFFE12D90102008A21000087FFFE12A8C -S3154001A6F09010200C833C60149B3A2014A13A2018F8 -S3154001A700A33C6018A20C6003A00C20038208600FD2 -S3154001A7109A0B600F8200600A9A03600AA2046001E4 -S3154001A720A0042001A32C40017FFFFFE5A12C000DD1 -S3154001A7307FFFE090901000117FFFE09C9010001089 -S3154001A7407FFFF98C010000007FFFFFE081E80000F8 -S3154001A7500100000098120009818200009AAB2FFF88 -S3154001A7600280002598880000992300099923000951 -S3154001A770992300099923000999230009992300097E -S3154001A780992300099923000999230009992300096E -S3154001A790992300099923000999230009992300095E -S3154001A7A0992300099923000999230009992300094E -S3154001A7B0992300099923000999230009992300093E -S3154001A7C0992300099923000999230009992300092E -S3154001A7D0992300099923000999230009992300091E -S3154001A7E099230009992300099923000081C3E008B0 -S3154001A7F091400000992300099923000999230009F2 -S3154001A80099230009992300099923000999230009ED -S3154001A81099230009992300099923000999230009DD -S3154001A82099230009992300009B400000992B200C95 -S3154001A8309B33601481C3E0089013400C1080000BD9 -S3154001A8408610200080924008168000088610000875 -S3154001A850809240001680000480920000168000031A -S3154001A86092200009902000089A924000128000052B -S3154001A8709610000891D0200281C3E0089010000094 -S3154001A88080A2C00D0A8000959410000003020000CA -S3154001A89080A2C0010A8000289810000080A34001D0 -S3154001A8A01A80000D841020019B2B600410BFFFFC11 -S3154001A8B0980320019A83400D1A8000078400A00165 -S3154001A8C0832860049B3360019A034001108000078E -S3154001A8D08420A00180A3400B0ABFFFF701000000BE -S3154001A8E0028000020100000084A0A00106800076DB -S3154001A8F0010000009622C00D941020011080000A2C -S3154001A90001000000952AA001068000059B336001E5 -S3154001A9109622C00D108000049402A0019602C00D3B -S3154001A9209422A00184A0A00116BFFFF78092C00027 -S3154001A930308000659B2B600480A3400B08BFFFFE5F -S3154001A9409883200102800065982320018092C000EF -S3154001A950952AA0040680002F9B33600196A2C00D64 -S3154001A960068000179B33600196A2C00D0680000B3E -S3154001A9709B33600196A2C00D068000059B336001A2 -S3154001A98096A2C00D108000509402A00F9682C00D71 -S3154001A9901080004D9402A00D9682C00D06800005E0 -S3154001A9A09B33600196A2C00D108000479402A00B14 -S3154001A9B09682C00D108000449402A0099682C00D73 -S3154001A9C00680000B9B33600196A2C00D06800005F0 -S3154001A9D09B33600196A2C00D1080003B9402A007F4 -S3154001A9E09682C00D108000389402A0059682C00D53 -S3154001A9F0068000059B33600196A2C00D108000328F -S3154001AA009402A0039682C00D1080002F9402A001EB -S3154001AA109682C00D068000179B33600196A2C00D39 -S3154001AA200680000B9B33600196A2C00D068000058F -S3154001AA309B33600196A2C00D108000239402BFFF94 -S3154001AA409682C00D108000209402BFFD9682C00DF3 -S3154001AA50068000059B33600196A2C00D1080001A46 -S3154001AA609402BFFB9682C00D108000179402BFF975 -S3154001AA709682C00D0680000B9B33600196A2C00DE5 -S3154001AA80068000059B33600196A2C00D1080000E22 -S3154001AA909402BFF79682C00D1080000B9402BFF559 -S3154001AAA09682C00D068000059B33600196A2C00DBB -S3154001AAB0108000059402BFF39682C00D10800002FB -S3154001AAC09402BFF198A3200116BFFFA28092C00055 -S3154001AAD0268000029602C0098090C00026800002AE -S3154001AAE09620000B81C3E0089010000B92100008DD -S3154001AAF09010200094102000961020008213C00070 -S3154001AB00400001E89E10400001000000921000083C -S3154001AB1003100142D00063F88213C0004000000ACE -S3154001AB209E104000010000009210000803100142EF -S3154001AB30D00063F88213C000400002559E104000C9 -S3154001AB40010000009DE3BF988206600B80A060165D -S3154001AB50A610001818800003A0087FF8A010201046 -S3154001AB6080A400199A4020008334201F8090400D14 -S3154001AB70128001B0B0102000400001B090100013C7 -S3154001AB8080A421F718800017993420093910014013 -S3154001AB908217222898040001F003200C80A6000C9D -S3154001ABA00280004E9F342003C206200494087FFC95 -S3154001ABB09A06000AC203600482106001D006200C86 -S3154001ABC0D2062008D2222008C2236004D022600C7B -S3154001ABD0400001A09010001310800196B006200895 -S3154001ABE080A32000128000289F34200339100140A1 -S3154001ABF09B2BE003821722289A0340011080000A0A -S3154001AC00F003600C94087FFC9622801080A2E00F2E -S3154001AC101480010980A2E00036BFFFE79A06000AC8 -S3154001AC20F006200C80A6000D32BFFFF7C2062004B5 -S3154001AC309E03E001251001409814A230F00320083C -S3154001AC4080A6000C0280005D833BE01FC206200403 -S3154001AC5094087FFC9622801080A2E00F1480009F0A -S3154001AC6080A2E000D823200C06800023D8232008A8 -S3154001AC709A06000AC20360048210600110BFFFD524 -S3154001AC80C22360048334200680A3200408BFFFD872 -S3154001AC909E00603880A3201408BFFFD59E03205B29 -S3154001ACA08334200C80A3205408BFFFD19E00606EE0 -S3154001ACB08334200F80A3215408BFFFCD9E006077C7 -S3154001ACC08334201280A3255408BFFFC99E00607CAF -S3154001ACD010BFFFC79E10207E98062008F003200C67 -S3154001ACE080A6000C32BFFFB2C206200410BFFFD2BD -S3154001ACF09E03E00280A2A1FF088000BE9B32A00312 -S3154001AD009732A00980A2E0002280001796172228D8 -S3154001AD108332A00680A2E004088000129A006038BF -S3154001AD2080A2E0140880000F9A02E05B8332A00CF7 -S3154001AD3080A2E0540880000B9A00606E8332A00F17 -S3154001AD4080A2E154088000079A0060778332A012FE -S3154001AD5080A2E554088000039A00607C9A10207E08 -S3154001AD6096172228832B60039000400BD2022008BD -S3154001AD7080A240082280010F99336002C20260041A -S3154001AD8082087FFC80A0400A28800007D002600C20 -S3154001AD90D202600880A2400832BFFFFAC2026004B4 -S3154001ADA0D002600CD026200CD2262008F022600C5E -S3154001ADB0F0222008833BE01F8330601E8203C001DE -S3154001ADC03910014083386002981722289A102001D1 -S3154001ADD0932B4001D803200480A2400C1880004BDD -S3154001ADE0AE172228808B00091280000D0310014006 -S3154001ADF0820BFFFC92024009808B000912800007FA -S3154001AE009E0060048210000C92024009808840092D -S3154001AE1002BFFFFE9E03E00403100140A210622818 -S3154001AE20A8100011832BE003980040119010000FE9 -S3154001AE309A10000C1080000AF003600C94087FFC05 -S3154001AE409622801080A2E00F1480007D80A2E0004F -S3154001AE503680008B9A06000AF006200C80A6000D6B -S3154001AE6032BFFFF7C20620049E03E001808BE00358 -S3154001AE7012BFFFF19A036008808A200398033FF8C6 -S3154001AE80028000D490023FFFC203200880A0400CFC -S3154001AE9002BFFFFB808A200392024009C2052004BB -S3154001AEA080A24001188000183910014080A260003C -S3154001AEB0128000068088400910800014AE172228AF -S3154001AEC09E03E0048088400922BFFFFE92024009AA -S3154001AED010BFFFD6832BE003821420019406001095 -S3154001AEE0C2262004D423200CD42320088212E00158 -S3154001AEF0D622800BD822A008C222A00410BFFF355B -S3154001AF00D822A00CAE172228F005E008C20620047C -S3154001AF10AA087FFC80A540109A4020009625401043 -S3154001AF2080A2E00F148000428210200180934001EC -S3154001AF300280002703100143DA0061282D100140E9 -S3154001AF409A04000DC205A220A810001580A07FFF1B -S3154001AF50A203601002800004A406001582046FFF5C -S3154001AF60A208700090100013400000C0921000111A -S3154001AF7080A23FFF02800008B210000880A20012A2 -S3154001AF801A8000463B10014380A6001722800044E8 -S3154001AF90C20760F882172228D8006008DA03200425 -S3154001AFA09A0B7FFC80A340109840200096234010C6 -S3154001AFB080A2E00F0480000382102001821020004D -S3154001AFC08093000112800098010000009817222802 -S3154001AFD0F003200882142001C22620049A0600109C -S3154001AFE08212E001C223600410BFFEFADA23200870 -S3154001AFF098033FF8832B60039000400C9B3360021B -S3154001B000821020018328400DD2022008DA03200451 -S3154001B0109A134001D026200CD2262008F022600C3B -S3154001B020DA23200410BFFF64F022200810BFFFC0BE -S3154001B0308210200010BFFEFF9E03FFFFD006200CAA -S3154001B040D20620089A142001940600108214A230D8 -S3154001B050D2222008D022600CDA262004D420600CAB -S3154001B060D42060089A12E001D622800BC222A008A1 -S3154001B070DA22A00410BFFED7C222A00CC20360048C -S3154001B08082106001D006200CD2062008C22360043B -S3154001B09010BFFECFD2222008C20760F882004011BD -S3154001B0A080A640120280004FC22760F8C205A22046 -S3154001B0B080A07FFF02800045C20760F89A264012B1 -S3154001B0C08200400DC22760F89A8E60070280000513 -S3154001B0D0A410200082102008A420400DB206401280 -S3154001B0E09A0640119A0B6FFF030000048220400D1F -S3154001B0F0A4048001901000134000005C92100012DD -S3154001B10080A23FFF2280003FA41020008222001926 -S3154001B1109000401282172228DA0760F89A034012FB -S3154001B12080A60001F2206008DA2760F80280003725 -S3154001B1308212200180A5600F38800005C226600476 -S3154001B1408210200110BFFF94C2266004C20620046B -S3154001B1509A057FF4A80B7FF882086001821040149B -S3154001B160C22620049A06001482102005C2236008D4 -S3154001B17080A5200F18800027C223600419100143BF -S3154001B180DA0760F8C203212480A340013880000217 -S3154001B190DA23212419100143C203212080A340014F -S3154001B1A038BFFF7DDA23212010BFFF7C821722287A -S3154001B1B09A102001C202E0049B2B400C8210400DE4 -S3154001B1C010BFFEF9C222E00410BFFFC0F225A22043 -S3154001B1D0C20460048228400910BFFF30C2246004C3 -S3154001B1E0808E6FFF12BFFFB3C205A22090044014A8 -S3154001B1F0DA05E0088212200110BFFFE1C223600494 -S3154001B20010BFFFC39010001910BFFFDDC2266004B6 -S3154001B210920620084000009E9010001310BFFFD9EF -S3154001B220191001434000000B90100013B01020008C -S3154001B23081C7E00881E800001110014190122230D7 -S3154001B2408213C0004000042A9E1040000100000005 -S3154001B25011100141901222308213C0004000043C7B -S3154001B2609E104000010000009DE3BF98211001445B -S3154001B270C02421A0400002499010001980A23FFF3E -S3154001B28012800006C20421A080A060000280000353 -S3154001B29001000000C226000081C7E00891E80008CD -S3154001B2A09DE3BF9823100143400004119014612C83 -S3154001B2B003100072E0006278D004214880A2200089 -S3154001B2C02280002D9004214CD602200480A2E01F4A -S3154001B2D01480001D0100000080A620001280000B92 -S3154001B2E094022088832AE0029A02E0018200400803 -S3154001B2F0DA222004F2206008400004159014612CE3 -S3154001B30010800022B0102000821020019328400BAB -S3154001B310992AE002DA02A1009A1340098203000A3F -S3154001B320F6206080F422800C80A6200212BFFFEE38 -S3154001B330DA22A100C202A1048210400910BFFFEA2D -S3154001B340C222A1047FFFFDF29010219080A220002D -S3154001B3500280000B96102000C2042148C222000040 -S3154001B360D0242148C0222004C022218810BFFFDBFF -S3154001B370C022218C10BFFFD5D0242148400003F4C0 -S3154001B3809014612CB0103FFF81C7E00881E80000AE -S3154001B3909DE3BF987FFFFFA990100018031001405D -S3154001B3A0A2106228DA046008C2036004A0087FFC88 -S3154001B3B0B2240019B2066FEFB20E7000B2067000E9 -S3154001B3C09210200080A66FFF0480000A901000189A -S3154001B3D07FFFFFA601000000C20460088200401002 -S3154001B3E080A04008922000190280000590100018A4 -S3154001B3F07FFFFF98B0102000308000237FFFFF9B26 -S3154001B400901000188224001980A23FFF821060012B -S3154001B41092102000191001430280000B9010001871 -S3154001B420DA046008C2236004C20320F8822040196E -S3154001B430901000187FFFFF87C22320F8108000126A -S3154001B440B01020017FFFFF8901000000981000081D -S3154001B450D6046008A023000B9010001880A4200F8A -S3154001B46004BFFFE4B214200103100140DA00622058 -S3154001B4709A23000D03100143DA2060F810BFFFDD67 -S3154001B480F222E00481C7E00881E800009DE3BF980D -S3154001B49080A660000280009DA41000187FFFFF6710 -S3154001B4A090100018A0067FF8D6042004900AFFFEEB -S3154001B4B01910014094040008A2132228DA02A004BC -S3154001B4C0C204600880A0400A028000449E0B7FFCB3 -S3154001B4D0808AE001DE22A0041280000CB010200018 -S3154001B4E0F2067FF8A024001982046008DA042008D5 -S3154001B4F080A340010280007D90020019D204200CF5 -S3154001B500DA226008D223600C8202800FDA006004DE -S3154001B510808B60011280000A8212200180A62000E1 -S3154001B520028000229002000FDA02A008D202A00C8B -S3154001B530DA226008D223600C82122001C224200440 -S3154001B54080A6200002800005D0240008B010001219 -S3154001B5507FFFFF4081E8000080A221FF188000366E -S3154001B560973220099B32200398132228832B6003AC -S3154001B5709200400C9B336002821020018328400DCB -S3154001B580D6026008DA0320049A134001D224200C23 -S3154001B590D6242008E022E00CDA232004E0226008C9 -S3154001B5A010BFFFECB010001203100140DA02A008F0 -S3154001B5B08210623080A3400132BFFFDED202A00C6E -S3154001B5C0E023600CE0236008DA242008DA24200C0A -S3154001B5D010BFFFDAB0102001808AE0011280000915 -S3154001B5E09002000FF2067FF8A0240019D204200C25 -S3154001B5F0D6042008D622600890020019D222E00C17 -S3154001B60003100140DA00622498122001E024600808 -S3154001B61080A2000D0ABFFFCFD824200403100143A6 -S3154001B620D20061287FFFFF5B901000127FFFFF0968 -S3154001B63081E8000080A2E000028000169B322003D0 -S3154001B6408332200680A2E004088000129A00603806 -S3154001B65080A2E0140880000F9A02E05B8332200C3E -S3154001B66080A2E0540880000B9A00606E8332200F5E -S3154001B67080A2E154088000079A0060778332201245 -S3154001B68080A2E554088000039A00607C9A10207ECF -S3154001B69094132228832B60039200400AD602600845 -S3154001B6A080A2C0090280001399336002C202E004FD -S3154001B6B082087FFC80A0400828800007D202E00C67 -S3154001B6C0D602E00880A2C00932BFFFFAC202E004F6 -S3154001B6D0D202E00CD224200CD6242008E022E00C31 -S3154001B6E010BFFFB0E022600810BFFF88B0102001F4 -S3154001B6F09A102001C202A0049B2B400C8210400DDF -S3154001B70010BFFFF5C222A00481C7E00881E800000E -S3154001B7109DE3BF98D206400080A2600012800004DB -S3154001B720901000187FFFFF5A81E800007FFFFFF964 -S3154001B730010000007FFFFF5681E800000100000084 -S3154001B7409DE3BF9803100142DA0063F880A6000D1D -S3154001B7500280004101000000D206204C80A2600018 -S3154001B7601280001CA0102000D206214880A2600051 -S3154001B7702280000FD2062054A006214C80A2401000 -S3154001B7802280000BD206205410800005B210000919 -S3154001B790F20640007FFFFF3E9010001880A400197A -S3154001B7A012BFFFFC92100019D206205480A26000FD -S3154001B7B01280002501000000C206203880A06000EA -S3154001B7C0028000250100000010800017C206203CBF -S3154001B7D0832C2002F202400180A660002280000BE9 -S3154001B7E0A004200192100019F20640007FFFFF28B5 -S3154001B7F09010001880A6600012BFFFFC921000193D -S3154001B800D206204CA004200180A4200E04BFFFF2E2 -S3154001B810832C20027FFFFF1E9010001810BFFFD41B -S3154001B820D20621489FC0400090100018F20622E03F -S3154001B83080A6600002800008010000007FFFFFB57E -S3154001B84081E800007FFFFF129010001810BFFFDC57 -S3154001B850C206203881C7E00881E800009DE3BF9811 -S3154001B86080A620000280001D03100142E406214803 -S3154001B87080A4A00022800013C206203CE204A0045A -S3154001B880A2847FFF0C80000A832C60028200401252 -S3154001B890A0006008C20400009FC04000A0043FFC15 -S3154001B8A0A2847FFF3CBFFFFDC2040000E404800088 -S3154001B8B080A4A00032BFFFF3E204A004C206203CEC -S3154001B8C080A0600002800007010000009FC0400088 -S3154001B8D0901000183080000310BFFFE5F00063F8B8 -S3154001B8E081C7E00881E800001080000B8610200027 -S3154001B8F08092400816800008861A400880924000CF -S3154001B90016800004809200001680000392200009F0 -S3154001B910902000089A924000128000059610000877 -S3154001B92091D0200281C3E0089010000080A2C00D92 -S3154001B9300A800095941000000302000080A2C00115 -S3154001B9400A8000289810000080A340011A80000D4B -S3154001B950841020019B2B600410BFFFFC980320013B -S3154001B9609A83400D1A8000078400A0018328600451 -S3154001B9709B3360019A034001108000078420A00197 -S3154001B98080A3400B0ABFFFF70100000002800002BE -S3154001B9900100000084A0A00106800076010000009D -S3154001B9A09622C00D941020011080000A010000006B -S3154001B9B0952AA001068000059B3360019622C00DA1 -S3154001B9C0108000049402A0019602C00D9422A001A9 -S3154001B9D084A0A00116BFFFF78092C00030800065A9 -S3154001B9E09B2B600480A3400B08BFFFFE9883200178 -S3154001B9F002800065982320018092C000952AA00408 -S3154001BA000680002F9B33600196A2C00D0680001769 -S3154001BA109B33600196A2C00D0680000B9B336001EB -S3154001BA2096A2C00D068000059B33600196A2C00D0B -S3154001BA30108000509402A00F9682C00D1080004DD8 -S3154001BA409402A00D9682C00D068000059B336001CD -S3154001BA5096A2C00D108000479402A00B9682C00D9D -S3154001BA60108000449402A0099682C00D0680000B06 -S3154001BA709B33600196A2C00D068000059B33600191 -S3154001BA8096A2C00D1080003B9402A0079682C00D7D -S3154001BA90108000389402A0059682C00D06800005EC -S3154001BAA09B33600196A2C00D108000329402A00320 -S3154001BAB09682C00D1080002F9402A0019682C00D7F -S3154001BAC0068000179B33600196A2C00D0680000BCD -S3154001BAD09B33600196A2C00D068000059B33600131 -S3154001BAE096A2C00D108000239402BFFF9682C00D1E -S3154001BAF0108000209402BFFD9682C00D068000058D -S3154001BB009B33600196A2C00D1080001A9402BFFBC0 -S3154001BB109682C00D108000179402BFF99682C00D1F -S3154001BB200680000B9B33600196A2C00D068000057E -S3154001BB309B33600196A2C00D1080000E9402BFF7A0 -S3154001BB409682C00D1080000B9402BFF59682C00DFF -S3154001BB50068000059B33600196A2C00D108000054A -S3154001BB609402BFF39682C00D108000029402BFF189 -S3154001BB7098A3200116BFFFA28092C0002680000232 -S3154001BB809422A0018090C000268000029420000AE1 -S3154001BB9081C3E0089010000A19100144DA0321A478 -S3154001BBA080A360001280000682034008031001440E -S3154001BBB09A1061B8DA2321A482034008C22321A442 -S3154001BBC081C3E0089010000DA7500000AE1000019F -S3154001BBD08334E00129100143E805203CA92CC01417 -S3154001BBE08215000181E000008190400001000000C3 -S3154001BBF00100000001000000E03BA000E43BA0087A -S3154001BC00E83BA010EC3BA018F03BA020F43BA02859 -S3154001BC10F83BA030FC3BA03881E8000082100017B9 -S3154001BC2081C4400081CC8000010000000100000079 -S3154001BC3001000000A7500000A92CE0012B10014390 -S3154001BC40EA05603CAB34C015AA1540148195400005 -S3154001BC5001000000010000000100000081E8000031 -S3154001BC6081E80000E01BA000E41BA008E81BA0102F -S3154001BC70EC1BA018F01BA020F41BA028F81BA03039 -S3154001BC80FC1BA03881E0000081E0000081C4400037 -S3154001BC9081CC8000A750000029100071ADC5220457 -S3154001BCA00100000027100143A614E01CE024C00057 -S3154001BCB0818C2020010000000100000001000000ED -S3154001BCC09DE3BFA09DE3BFA09DE3BFA09DE3BFA0B1 -S3154001BCD09DE3BFA09DE3BFA09DE3BFA081E8000017 -S3154001BCE081E8000081E8000081E8000081E8000069 -S3154001BCF081E8000081E8000027100143A614E01CFA -S3154001BD00C024C000E203A068A4046004E223A06446 -S3154001BD10E423A06810800262AC10000029100143A0 -S3154001BD20A8152000C2252000C8252004E0252010A2 -S3154001BD30E2252014E4252018E825201C81E800008E -S3154001BD408348000082106F00818860200100000056 -S3154001BD50010000000100000009100143C801203C18 -S3154001BD6081E000008821200180A920FF0280000394 -S3154001BD70010000000100000080A1000012BFFFF990 -S3154001BD800100000009100143C801203C81E8000080 -S3154001BD9080A920FF0280000301000000010000008D -S3154001BDA08821200180A1000012BFFFF90100000097 -S3154001BDB081E0000029100143A8152000C805200490 -S3154001BDC0C2052000E0052010E2052014E4052018F4 -S3154001BDD0C025201C818C20000100000001000000CC -S3154001BDE00100000081C4800081CCA004A0142F0072 -S3154001BDF0818C0000010000000100000001000000EC -S3154001BE0081C4800081CCA00480A660021280000516 -S3154001BE10A8142F00818D0000B01420203080001F0F -S3154001BE2080A6600312800006A80E2F00AA2C2F00C0 -S3154001BE30A8154014818D00003080001880A660044A -S3154001BE4012800008A9480000A8152040818D0000F5 -S3154001BE500100000001000000010000003080000FD9 -S3154001BE6080A6600512800008A9480000A82D204040 -S3154001BE70818D00000100000001000000010000006A -S3154001BE803080000680A66006128000030100000093 -S3154001BE9030BFFFA391D0200081C4800081CCA00493 -S3154001BEA09210200381C3E00891D020029210200213 -S3154001BEB081C3E00891D020029210200681C3E00898 -S3154001BEC091D0200281C3E0080100000081C3E0084F -S3154001BED00100000081C3E00801000000AE25A0106A -S3154001BEE0A75000002D10006FAC15A2F0291000716B -S3154001BEF081C523AC01000000111001439012202896 -S3154001BF00D202000092026001D2220000932DE00885 -S3154001BF10902C2F00921200091110014390122020FB -S3154001BF20D002000080A000082280000292126F0019 -S3154001BF30818A60200100000001000000010000002C -S3154001BF4090100017400000319203A06092142F0018 -S3154001BF50818A60200100000001000000010000000C -S3154001BF601110014390122028D20200009222600152 -S3154001BF70D22200001080022DAC1000001B1001449B -S3154001BF809A136030912A2002C2034008C222600CF3 -S3154001BF9081C3E008D22340089DE3BF9803100144C2 -S3154001BFA082106030992E60021B100143972E600467 -S3154001BFB0D800400C9A136230901000199202C00DBD -S3154001BFC080A6601F1480000F82102000108000069A -S3154001BFD080A320002280000AC2024000D803200C20 -S3154001BFE080A3200012BFFFFC80A300097FFFFFE46E -S3154001BFF0F02240001080000382102000F022400011 -S3154001C00081C7E00891E800019DE3BF981B100143F9 -S3154001C0108213602CD800600480A30018028000447B -S3154001C020C203602C80A6200022800002B010000CC2 -S3154001C03003100144A32E200282106030E00040111B -S3154001C04080A420000280003D0310014310800012AD -S3154001C050A41061ACD2042008941000199FC30000BB -S3154001C0609010001803100143C20061A480A0600033 -S3154001C0701280002B01000000C204801182007FFF64 -S3154001C080C2248011E004200C80A420000280002BF1 -S3154001C09001000000D804000080A3200022BFFFFB5E -S3154001C0A0E004200C03100143DA00622C80A36000F7 -S3154001C0B0128000089610001203100143821061ACF1 -S3154001C0C0DA00401180A3600032BFFFF0E004200C8B -S3154001C0D0DA02C011031001439A036001C20061A84C -S3154001C0E080A0600002BFFFDCDA22C0119FC0400081 -S3154001C0F001000000D8040000D20420089410001961 -S3154001C1009FC300009010001803100143C20061A4B0 -S3154001C11080A0600022BFFFDAC20480119FC04000A8 -S3154001C1200100000010BFFFD6C2048011DA0060C0D2 -S3154001C13010BFFFBDB00B601F81C7E00881E800005A -S3154001C1408C10000FA74800008B34E0188A09600F55 -S3154001C15080A160030280000C0B1001438A116034F8 -S3154001C1600920000088112070C82140000B100143AE -S3154001C1708A1160500920000088112040C8214000E2 -S3154001C180108000399010200192102006400001DDF8 -S3154001C1900100000080A00008028000330100000079 -S3154001C1A0C2022010113FFC0082084008110003FC26 -S3154001C1B08410400890100002921020019410200C27 -S3154001C1C0400001E60100000080A000080280002630 -S3154001C1D001000000400001F6921000010B100143DE -S3154001C1E08A116034D2214000901000029210200141 -S3154001C1F094102011400001D90100000080A00008E0 -S3154001C2000280001901000000400001E9921000017E -S3154001C210920260100B1001438A116050D2214000F6 -S3154001C22090100002921020019410200D400001CB85 -S3154001C2300100000080A000080280000B0100000000 -S3154001C240400001DB921000010B1001438A11602C62 -S3154001C250D2214000D40260109532A010940AA00F5A -S3154001C260D42160049E10000681C3E008010000004D -S3154001C27003100143821060488210200191D02000B2 -S3154001C28081C3E008010000009DE3BF98031001440B -S3154001C290C20060CC901000189210001980A0600076 -S3154001C2A002800005B01020009FC040000100000040 -S3154001C2B0B010000881C7E00881E800009DE3BF98FF -S3154001C2C003100144C20060C89010001880A06000AD -S3154001C2D002800005B01020009FC040000100000010 -S3154001C2E0B010000881C7E00881E800009DE3BF98CF -S3154001C2F003100144C20060C09010001880A0600085 -S3154001C30002800005B01020009FC0400001000000DF -S3154001C310B010000881C7E00881E800009DE3BF989E -S3154001C32003100144C20060C49010001880A0600050 -S3154001C33002800005B01020009FC0400001000000AF -S3154001C340B010000881C7E00881E800009DE3BF986E -S3154001C35003100144C20060BC9010001880A0600028 -S3154001C36002800005B01020009FC04000010000007F -S3154001C370B010000881C7E00881E800009DE3BF983E -S3154001C38003100144C20060B89010001880A06000FC -S3154001C39002800005B01020009FC04000010000004F -S3154001C3A0B010000881C7E00881E800009DE3BF980E -S3154001C3B003100144C20060B49010001880A06000D0 -S3154001C3C002800005B01020009FC04000010000001F -S3154001C3D0B010000881C7E00881E800009DE3BF98DE -S3154001C3E003100144C20060B0901000189210001969 -S3154001C3F080A0600002800005B01020009FC0400070 -S3154001C40001000000B010000881C7E00881E8000083 -S3154001C4100100000003100071821060E09FC04000DF -S3154001C4200100000003100000821060008198400066 -S3154001C43003100071821061649FC04000010000003A -S3154001C44003100071821060D09FC0400001000000BF -S3154001C4508B4800008B3160188A09600380A1600314 -S3154001C46012800007010000008B4440008B31601CA4 -S3154001C47080A1400012800006010000007FFFFF31CD -S3154001C480010000007FFF9339010000009C23A0407A -S3154001C4907FFF92DC010000008210200191D0200034 -S3154001C4A00100000029000004A68C0014328000031C -S3154001C4B0A02C001491D02000818C000001000000C6 -S3154001C4C0010000000100000081C4800081CCA0046D -S3154001C4D081C3E0080100000081C1E00801000000BD -S3154001C4E0A74800008B34E0188A09600380A16003E5 -S3154001C4F0128000080100000021100143A0142044CD -S3154001C500A2102003E22400008B4440001080000862 -S3154001C51021100143A0142044A2102002E22400006D -S3154001C52021200000E60420248B34E0148A09601F90 -S3154001C53027100143A614E03CCA24C0008A016001C9 -S3154001C54027100143A614E038CA24C000271001432E -S3154001C550A614E0408A216002CA24C00081C3E008D3 -S3154001C5600100000081C3E00801000000834800008B -S3154001C570833060188208600380A060031280000641 -S3154001C5800100000083444000050000088228400263 -S3154001C590A3804000881000000910007181C1201459 -S3154001C5A0010000009DE3BF98031000721B1000724A -S3154001C5B0A01062609A13626080A4000D1A80001078 -S3154001C5C0A210000D10800006C204000080A40011D4 -S3154001C5D01A80000B01000000C204000080A0600028 -S3154001C5E002BFFFFBA00420049FC0400001000000E1 -S3154001C5F080A400112ABFFFFAC204000081C7E008E7 -S3154001C60081E80000AA27A0B0E0256060E2256064C9 -S3154001C610E4256068C2256074C43D6078C83D608089 -S3154001C620CC3D608885400000C425606CF03D60903B -S3154001C630F43D6098F83D60A0FC3D60A8A81020013B -S3154001C640A92D0010808D0013028000130100000007 -S3154001C6508534E00107100143C600E03CA72CC00326 -S3154001C6608414C0028408A0FF81E000008190A000EC -S3154001C670E03BA000E43BA008E83BA010EC3BA0183F -S3154001C680F03BA020F43BA028F83BA030FC3BA0386F -S3154001C69081E8000081C5A0089C10001505100143E2 -S3154001C6A08410A1A0C400800080A080000280000404 -S3154001C6B0010000009FC080009203A060818C200091 -S3154001C6C0821020028328401005100143C400A0387F -S3154001C6D085304002821040028550000080888001EA -S3154001C6E0028000208328A00107100143C600E03CD8 -S3154001C6F08530800382104002820860FF819060008D -S3154001C700C203A06C81806000F01BA090F41BA0982E -S3154001C710F81BA0A0FC1BA0A8C203A074C41BA07850 -S3154001C720C81BA080CC1BA088E003A060E203A064E4 -S3154001C730E403A06881E80000E01BA000E41BA00818 -S3154001C740E81BA010EC1BA018F01BA020F41BA0288E -S3154001C750F81BA030FC1BA0381080000F81E00000C0 -S3154001C760C203A06C81806000F01BA090F41BA098CE -S3154001C770F81BA0A0FC1BA0A8C203A074C41BA078F0 -S3154001C780C81BA080CC1BA088E003A060E203A06484 -S3154001C790E403A068818C2000010000000100000034 -S3154001C7A00100000081C4400081CC8000AA27A0B0CE -S3154001C7B0C2256074C43D6078C83D6080CC3D6088C8 -S3154001C7C085400000C425606CA8102001A92D0010E9 -S3154001C7D0808D001302800013010000008534E001C2 -S3154001C7E007100143C600E03CA72CC0038414C002D5 -S3154001C7F08408A0FF81E000008190A000E03BA000FA -S3154001C800E43BA008E83BA010EC3BA018F03BA0207D -S3154001C810F43BA028F83BA030FC3BA03881E800005F -S3154001C82081C5A0089C100015051001438410A1A0E4 -S3154001C830C400800080A08000028000040100000046 -S3154001C8409FC080009203A060818C2000821020024C -S3154001C8508328401005100143C400A03885304002AA -S3154001C86082104002855000008088800102800019B4 -S3154001C8708328A00107100143C600E03C85308003B0 -S3154001C88082104002820860FF81906000C203A06C62 -S3154001C89081806000C203A074C41BA078C81BA0801D -S3154001C8A0CC1BA08881E80000E01BA000E41BA00887 -S3154001C8B0E81BA010EC1BA018F01BA020F41BA0281D -S3154001C8C0F81BA030FC1BA0381080000881E0000056 -S3154001C8D0C203A06C81806000C203A074C41BA0780F -S3154001C8E0C81BA080CC1BA088818C200001000000C1 -S3154001C8F0010000000100000081C4400081CC80009D -S3154001C900821000089A10380096102000912AE005FE -S3154001C91098034008D40340089132A01880A2000130 -S3154001C920328000089602E0019132A00C900A2FFF56 -S3154001C93080A20009028000079410000C9602E001D3 -S3154001C94080A2E00728BFFFF3912AE005941020005A -S3154001C95081C3E0089010000A821000089810200058 -S3154001C960912B20039A004008D60040089132E018E6 -S3154001C97080A2000932800008980320019132E00C20 -S3154001C980900A2FFF80A2000A028000079610000D30 -S3154001C9909803200180A3200F28BFFFF3912B20038A -S3154001C9A09610200081C3E0089010000BD4022004A9 -S3154001C9B0173FFC00920A400B900A800B9132200CE3 -S3154001C9C0921240081100003F901223F0940A800809 -S3154001C9D0952AA0049412800B920A400A81C3E0086A -S3154001C9E0901000099DE3BF980310007282106248BF -S3154001C9F0DA007FFC80A37FFF02800009A0007FFC54 -S3154001CA008210000D9FC04000A0043FFCC2040000FC -S3154001CA1080A07FFF12BFFFFC0100000081C7E00834 -S3154001CA2081E800009DE3BF9881C7E00881E80000E6 -S3154001CA3000000000000000000000000000000000AF -S3154001CA4000000002FFFFFFFF0000000000000000A1 -S3154001CA5000000002FFFFFFFF000000000000000091 -S3154001CA6040080000000000003CD203AF9EE7561686 -S3154001CA703E7AD7F29ABCAF48400506A800000000AE -S3154001CA80430000009DE3BFA07FFF919B0100000092 -S3154001CA907FFFFFD50100000081C7E00881E8000063 -S3154001CAA09DE3BFA07FFF91760100000081C7E008AA -S3154001CAB081E80000000000000000000000000000C6 -S315400200000000000100000000000000004001CA5844 +S3154001319085A00921C523000081C3E008D0030000B2 +S315400131A01910008098132120D0230000D223200833 +S315400131B0C1030000C303200885A009A1C52300005F +S315400131C081C3E008D0030000191000809813212024 +S315400131D0D0230000C103000083A00520C3230000C3 +S315400131E081C3E008D00300001310008092126138B9 +S315400131F0C51A6008C11A400089A0084091A108C2B9 +S3154001320095A209C495A2894281C3E008D53A000036 +S315400132101310008092126158C1024000C30260043B +S3154001322085A0082087A088A189A0C9A289A10921D2 +S3154001323081C3E008C92200009610200213100080C5 +S3154001324092126138151000809412A138D5024000BF +S31540013250D7028000D5220000D8020000131000805A +S315400132609212615896A2E00112BFFFF901000000D7 +S3154001327081C3E008010000001310008092126138FA +S31540013280151000809412A158C1028000C51A601021 +S3154001329083A0082089A088C08BA109A18DA10942DC +S315400132A08FA1492691A0054681C3E008D13A000085 +S315400132B01110008090122130C11A0000C51A000079 +S315400132C0C91A0000CD1A0000D11A0000D51A000013 +S315400132D0D91A0000DD1A0000E11A0000E51A0000C3 +S315400132E0E91A0000ED1A0000F11A0000F51A000073 +S315400132F0F91A0000FD1A000081C3E0080100000030 +S3154001330029100080A81520F827100080A614E1682E +S31540013310C12CC000E604C000A134E00EA00C200779 +S31540013320A0A42002AE1020002D100080AC15A1688B +S31540013330AE05E001AC05A008C1358000C12D0000F5 +S31540013340EA050000AB35600DAA8D600112BFFFF999 +S3154001335001000000808000100280002F2B3C1FFFDF +S31540013360AA1563FFA60CC015E6250000C10D000095 +S315400133702B100080AA1561742D10004CAC15A3E0EA +S31540013380AE25E001E0054000E025800081D820001F +S3154001339001000000010000000100000001000000E2 +S315400133A001000000010000000100000001000000D2 +S315400133B001000000010000000100000001000000C2 +S315400133C001000000010000000100000001000000B2 +S315400133D001000000010000000100000001000000A2 +S315400133E00000000080A5C00012BFFFE6AA056008E4 +S315400133F0C12D0000E60500002B03C000A614C01530 +S31540013400E6250000C10D000081C4400081CC80004A +S315400134100100000081C4800081CCA00401000000AD +S315400134200100000081C3E00891580000010000003E +S3154001343011100080901220F8C10A0000C02200003D +S31540013440C10A0000C12A0000D40200001300038013 +S31540013450942A800980A0000A3280004D90102003F2 +S315400134601303E000D223BFA0C023BFA4C10BBFA05A +S31540013470C023BFA0151000809412A0E8C1028000AD +S315400134800100000001000000C10BBFA0C10BBFA499 +S3154001349083A00520C12BBFA0D003BFA0808A2200F4 +S315400134A02280003B901020049010200015100080CF +S315400134B09412A108C5028000C902A008D102A00C3D +S315400134C013100080921260E8C70240008DA0894423 +S315400134D081A98AC80100000003800005010000009F +S315400134E0901020011080002A01000000C5028000D2 +S315400134F0C902A008D102A00C13100080921260E804 +S31540013500CB0240008DA0894481A98AC801000000F0 +S315400135100380000501000000901020011080001C6E +S315400135200100000025100080A414A0F0C11C8000F9 +S31540013530C51C800080A000003280000685A008C01E +S3154001354081A80AC2010000001380000301000000A7 +S31540013550901020050100000025100080A414A0F061 +S31540013560C11C8000C51C800080A000000100000035 +S315400135703280000685A008C081A80AC20100000069 +S315400135801380000301000000901020070100000095 +S3154001359081C3E0080100000090102001954400001D +S315400135A09532A01E940AA00380A2800002800040AA +S315400135B09010200080A2A0021680003D13100080CA +S315400135C092126198C11A4000C51A6008FD0260183E +S315400135D095A0003E99A0003E9DA0003E170000C068 +S315400135E09612E078A182C0000100000001000000AF +S315400135F00100000001000000010000000100000080 +S3154001360081A0002083A0002195A0002A99A0002C2A +S315400136109DA0002E170000C09612E07CA182C0003A +S31540013620010000000100000001000000010000004F +S31540013630010000000100000085A0002287A00023B0 +S31540013640A18000000100000001000000010000000F +S3154001365001000000010000000100000089A00842AD +S31540013660A9A2883ED93A4000DD224000CD1A601019 +S31540013670D102600881A90A46010000000380000CBE +S3154001368081AD0A280100000003800009934400002F +S315400136909332601B920A60079010200080A2A0011D +S315400136A002800003902260079022600481C3E008F3 +S315400136B001000000C12BBFA081C3E008D003BFA019 +S315400136C0D023BFA081C3E008C10BBFA00100000009 +S315400136D09DE3BF6040001B94B0102000833A200A4E +S315400136E08208600380A0600102800004010000009E +S315400136F081C7E00881E800007FFFB6C39010200D26 +S31540013700050C40290723CD1B8410A0068610E09B9B +S31540013710C027BFF0C027BFF4C43FBFF8C027BFD002 +S31540013720C027BFD4C027BFC87FFFFF3FC027BFCC3C +S31540013730820A3000821060808400600407280400F9 +S315400137408610E00F0910004CC62040008811230066 +S3154001375007100000882100028939200286110003E2 +S31540013760C620600425100080032784008210601063 +S315400137707FFFFED0C220A0047FFFFFD21103E000ED +S3154001378090102000C024A1687FFFFDD001000000F9 +S31540013790809200091280000601000000C204A1685F +S315400137A080A0600002800004010000007FFFB69DFA +S315400137B09010200B7FFFFDC590103FFA03300600A5 +S315400137C080A2000102800CF880A260007FFFB695BE +S315400137D09010200B7FFFFDBD9010201403100D00AB +S315400137E080A200010280113680A260007FFFB68D63 +S315400137F09010200B7FFFFDB590102062031016201C +S3154001380080A200010280112780A260007FFFB68559 +S315400138109010200B7FFFFDB5901020050310280066 +S3154001382080A2000112800CB501000000C204A1680B +S3154001383080A0600012800CB1010000007FFFFFA153 +S315400138401103C000111C00007FFFFDB09210200043 +S31540013850031FFFFF821063FF80A200011280000B4D +S3154001386001000000C404A168030000708210601FBB +S3154001387084088001030000108210601080A080013E +S3154001388002800005113C00007FFFB6669010200CB7 +S31540013890113C00007FFFFD9D921020000320000097 +S315400138A080A200011280000B01000000C404A1683F +S315400138B0030000708210601F84088001030000101D +S315400138C08210601080A08001028000040100000087 +S315400138D07FFFB6549010200CC024A16890102000A0 +S315400138E07FFFFD8A9210200080A2200012800006F0 +S315400138F003100080C200616880A06000028000055C +S31540013900110144007FFFB6479010200C110144007D +S3154001391013284000901223027FFFFD7C9212600122 +S3154001392080A220001280000601000000C204A168A6 +S3154001393080A06000228000051111FFFF7FFFB6398C +S315400139409010200C1111FFFF7FFFFD78901223FF8D +S315400139500300007F821063FF80A2000112800C6386 +S3154001396001000000C204A16880A0600012800C5FC3 +S3154001397001000000271000807FFFFD64D01CE1E0BC +S31540013980031FFFFF821063FF80A200011280000B1C +S3154001399001000000C404A168030000708210601F8A +S315400139A084088001030000108210601080A080010D +S315400139B002800005351000807FFFB61A9010200C5A +S315400139C035100080D01EA1D0C024A1687FFFFD4FD5 +S315400139D0010000000320000080A200011280000BBC +S315400139E003100080C4006168030000708210601FEC +S315400139F084088001030000108210601080A08001BD +S31540013A00028000052B1000807FFFB6069010200C27 +S31540013A102B100080D01D61F0C024A1687FFFFD3BC3 +S31540013A2001000000031FFFFF821063FF80A2000117 +S31540013A301280000B03100080C4006168030000700F +S31540013A408210601F840880010300001082106010FC +S31540013A5080A08001028000052F1000807FFFB5F114 +S31540013A609010200C2F100080D01DE1B8C024A16811 +S31540013A707FFFFD2601000000C204A1688330600E6D +S31540013A808208600380A060020280000401000000F9 +S31540013A907FFFB5E49010200C7FFFFF0A1103C000A1 +S31540013AA011115804C024A1687FFFFD2890122234C9 +S31540013AB003102B008210624680A200010280107121 +S31540013AC0032000007FFFB5D79010200D113C02AFB7 +S31540013AD07FFFFD1E901220D1033180558210639ADB +S31540013AE080A200010280105F030800007FFFB5CD70 +S31540013AF09010200D1111FC007FFFFD1C921020003B +S31540013B00031FE00080A200011280000B01000000AB +S31540013B10C404A168030000708210601F84088001FC +S31540013B20030000108210600880A08001028000041A +S31540013B30010000007FFFB5BB9010200DC024A16895 +S31540013B4011207C01130001007FFFFD0890122030F7 +S31540013B500320000080A200011280000B03100080A8 +S31540013B60C4006168030000708210601F84088001F0 +S31540013B70030000108210600480A0800102800004CE +S31540013B80010000007FFFB5A79010200DC024A16859 +S31540013B90901020007FFFFCF59210200080A22000AB +S31540013BA01280000603100080C200616880A0600098 +S31540013BB002800004010000007FFFB59A9010200D9D +S31540013BC07FFFFCEAD01CE1E003100080C20061E8FF +S31540013BD080A2000112800BC101000000C204A1684D +S31540013BE080A0600012800BBD0100000037100080EC +S31540013BF07FFFFCDED01EE1D8031FE00080A200015A +S31540013C0012800BB301000000C204A16880A06000CD +S31540013C1012800BAF010000007FFFFCD4D01D61F084 +S31540013C2003100080C200620080A200011280000BD6 +S31540013C3001000000C404A168030000708210601FE7 +S31540013C4084088001030000108210601080A080016A +S31540013C5002800005D01DE1B87FFFB5729010200D9E +S31540013C60D01DE1B8C024A1687FFFFCC0010000005F +S31540013C70C204A1688330600E8208600380A060029E +S31540013C8002800004010000007FFFB5669010200D00 +S31540013C907FFFFE8C1103E0002108C6AFC024A16856 +S31540013CA0901420DE7FFFFCB9A01420DE80A2001014 +S31540013CB012800B8303100080C200616880A06000FF +S31540013CC012800B7F010000002108C6AF901420DE50 +S31540013CD07FFFFCBEA01420DE80A2001012800B7470 +S31540013CE001000000C204A16880A0600012800B7030 +S31540013CF0010000001128C6AF7FFFFCB4901220DE00 +S31540013D000308C6AF821060DE80A2000112800B64F8 +S31540013D1001000000C204A16880A0600012800B600F +S31540013D20010000001108C6AF7FFFFCA0901220DE03 +S31540013D300328C6AF821060DE80A2000112800B54B8 +S31540013D4001000000C204A16880A0600012800B50EF +S31540013D50010000001128C6AF7FFFFC94901220DEBF +S31540013D600308C6AF821060DE80A2000112800B45B7 +S31540013D7001000000C204A16880A0600012800B41CE +S31540013D80010000007FFFFE4F1103E00011151BC02B +S31540013D901310C821901221039212614115351BC09F +S31540013DA01710C8219412A1037FFFFC909612E1419E +S31540013DB080A2200212800B2B01000000C204A168E0 +S31540013DC080A0600012800B270100000011351BC046 +S31540013DD01310C821901221039212614115151BC07F +S31540013DE01710C8219412A1037FFFFC809612E1416E +S31540013DF080A2200112800B1F01000000C204A168AD +S31540013E0080A0600012800B1B010000009010200072 +S31540013E1092102000152000007FFFFC7496102000B0 +S31540013E2080A220001280000601000000C204A168A1 +S31540013E3080A0600002800005D01EE1D87FFFB4F962 +S31540013E409010200FD01EE1D87FFFFC68D41EA1D070 +S31540013E5080A2200212800AFF01000000C204A1686C +S31540013E6080A0600012800AFB0100000011151BC0F2 +S31540013E701310C821901221039212614115151BE8B6 +S31540013E801710C8219412A1037FFFFC589612E141F5 +S31540013E9080A2200112800AEB01000000C204A16841 +S31540013EA080A0600012800AE70100000011151BE89E +S31540013EB01310C821901221039212614115151BC09E +S31540013EC01710C8219412A1037FFFFC489612E141C5 +S31540013ED080A2200212800AD701000000C204A16814 +S31540013EE080A0600012800AD301000000D41CE1E0EA +S31540013EF011151BE81310C821901221037FFFFC3BCB +S31540013F009212614180A2200312800AC6010000007C +S31540013F10C204A16880A0600012800AC201000000AC +S31540013F20D41D61F011151BE81310C821901221030D +S31540013F307FFFFC2E9212614180A220031280000B6A +S31540013F4001000000C404A168030000708210601FD4 +S31540013F5084088001030000108210601080A0800157 +S31540013F6002800005D41DE1B87FFFB4AE9010200F4A +S31540013F70D41DE1B8C024A16811151BE81310C8214E +S31540013F80901221037FFFFC199212614180A2200207 +S31540013F9012800AA003100080C200616880A0600000 +S31540013FA012800A9C01000000D01DE1B815151BE8DE +S31540013FB01710C8219412A1037FFFFC0C9612E14110 +S31540013FC080A2200112800A8B01000000C204A16870 +S31540013FD080A0600012800A8701000000D01CE1E049 +S31540013FE015151BE81710C8219412A1037FFFFBFF8B +S31540013FF09612E14180A2200312800A82010000004C +S31540014000C204A16880A0600012800A7E01000000FF +S31540014010D01D61F015151BE81710C8219412A10394 +S315400140207FFFFBF29612E14180A220031280000B32 +S3154001403001000000C404A168030000708210601FE3 +S3154001404084088001030000108210601080A0800166 +S3154001405002800004010000007FFFB4729010200F1F +S31540014060C024A16811151BC01310C8219012210349 +S315400140709212614115351BC01710C8219412A10334 +S315400140807FFFFBED9612E14180A2200212800A5584 +S3154001409003100080C200616880A0600012800A514E +S315400140A00100000011351BC01310C82190122103D5 +S315400140B09212614115151BC01710C8219412A10314 +S315400140C07FFFFBDD9612E14180A2200112800A4169 +S315400140D001000000C204A16880A0600012800A3D70 +S315400140E001000000901020009210200015200000D1 +S315400140F07FFFFBD19610200080A22000128000068F +S3154001410001000000C204A16880A060000280000591 +S31540014110D01EE1D87FFFB4439010200FD01EE1D8C6 +S315400141207FFFFBC5D41EA1D080A2200212800A25A2 +S3154001413001000000C204A16880A0600012800A212B +S315400141400100000011151BC01310C8219012210354 +S315400141509212614115151BE81710C8219412A1034B +S315400141607FFFFBB59612E14180A2200112800A1120 +S3154001417001000000C204A16880A0600012800A0DFF +S315400141800100000011151BE81310C82190122103EC +S315400141909212614115151BC01710C8219412A10333 +S315400141A07FFFFBA59612E14180A22002128009FD04 +S315400141B001000000C204A16880A06000128009F9D4 +S315400141C001000000D41CE1E011151BE81310C821C1 +S315400141D0901221037FFFFB989212614180A2200336 +S315400141E01280000B01000000C404A16803000070A6 +S315400141F08210601F84088001030000108210601045 +S3154001420080A0800102800005D41D61F07FFFB405C6 +S315400142109010200FD41D61F011151BE81310C82111 +S31540014220901221037FFFFB849212614180A22003F9 +S315400142301280000B01000000C404A1680300007055 +S315400142408210601F840880010300001082106010F4 +S3154001425080A0800102800005D41DE1B87FFFB3F143 +S315400142609010200FD41DE1B8C024A16811151BE898 +S315400142701310C821901221037FFFFB6F92126141F7 +S3154001428080A22002128009BF03100080C20061682B +S3154001429080A06000128009BB01000000D01DE1B87A +S315400142A015151BE81710C8219412A1037FFFFB6265 +S315400142B09612E14180A22001128009B60100000058 +S315400142C0C204A16880A06000128009B2010000000A +S315400142D0D01CE1E015151BE81710C8219412A10363 +S315400142E07FFFFB559612E14180A220031280000B0D +S315400142F001000000C404A168030000708210601F21 +S3154001430084088001030000108210601080A08001A3 +S3154001431002800005D01D61F07FFFB3C29010200FCF +S31540014320D01D61F015151BE81710C8219412A10381 +S315400143307FFFFB419612E14180A220031280000BD0 +S3154001434001000000C404A168030000708210601FD0 +S3154001435084088001030000108210601080A0800153 +S3154001436002800004010000007FFFB3AE9010200FD1 +S31540014370C024A168110048EA13048D15901223CD7B +S315400143807FFFFB3E9212627880A22001128009795A +S3154001439003100080C200616880A060001280097528 +S315400143A001000000110048EA13048D15901223CD37 +S315400143B07FFFFB439212627880A220011280096A34 +S315400143C001000000C204A16880A060001280096655 +S315400143D001000000C024A1687FFFFCBA1103C000A0 +S315400143E023100124A807BFF8BA07BFD090100014C4 +S315400143F09210001D7FFFFA6C94146150C204615003 +S31540014400C407BFF880A0800102800E0CA014615041 +S315400144107FFFB384901020102D100080901000145F +S315400144209215A1C87FFFFA6094146150C40461508B +S31540014430C205A1C880A0800122800DF6C4042004D3 +S315400144407FFFB37890102010901000149214E1E091 +S315400144507FFFFA5594146150C4046150C204E1E0EF +S3154001446080A0800102800DE1B214E1E07FFFB36DCF +S315400144709010201090100014921561F07FFFFA4AB7 +S3154001448094146150C404A168030000708210601F37 +S3154001449084088001030000108210601080A0800112 +S315400144A002800004010000007FFFB35E90102010DF +S315400144B0C024A1687FFFFC83901020009010001457 +S315400144C0921561F07FFFFA389414615039100080DB +S315400144D0C4046150C20721F880A0800122800DBD2D +S315400144E0C40420047FFFB34F901020107FFFFC755A +S315400144F01103C000901000149215E1B87FFFFA2A0B +S3154001450094146150C204A1688330600E820860032E +S3154001451080A0600202800004010000007FFFB341D9 +S3154001452090102010C024A1689010001D9210001414 +S315400145307FFFFA1D94146150C4046150C207BFF84D +S3154001454080A0800122800D9AC40420047FFFB335E8 +S31540014550901020109010001D9215A1C87FFFFA12ED +S3154001456094146150C4046150C205A1C880A0800161 +S3154001457022800D84C40420047FFFB32A90102010AA +S315400145809010001D9214E1E07FFFFA0794146150E8 +S31540014590C4046150C204E1E080A0800122800D7014 +S315400145A0C40420047FFFB31F901020109010001DFB +S315400145B0921561F07FFFF9FC94146150C404A1681F +S315400145C0030000708210601F840880010300001000 +S315400145D08210601080A0800102800004010000006A +S315400145E07FFFB310901020107FFFFC369010200003 +S315400145F09010001D921561F07FFFF9EB9414615004 +S31540014600C4046150C20721F880A0800122800D4D6B +S31540014610C40420047FFFB303901020107FFFFC29C0 +S315400146201103C0009010001D9215E1B87FFFF9DE1D +S3154001463094146150C204A1688330600E82086003FD +S3154001464080A0600202800004010000007FFFB2F5F5 +S3154001465090102010C024A1689015A1C89210001492 +S315400146607FFFF9D194146150C4046150C205A1C8B9 +S3154001467080A0800122800D28C40420047FFFB2E976 +S31540014680901020109015A1C89210001D7FFFF9C609 +S3154001469094146150C4046150C205A1C880A0800130 +S315400146A022800D12C40420047FFFB2DE9010201038 +S315400146B09016E1D8941461507FFFF9BB921000081F +S315400146C0C4046150C206E1D880A0800122800CFC5E +S315400146D0C40420047FFFB2D3901020109016A1D0BD +S315400146E0941461507FFFF9B092100008C4046150E0 +S315400146F0C206A1D080A0800122800CE6C404200419 +S315400147007FFFB2C8901020109016A1D09216E1D822 +S315400147107FFFF9A594146150C404A1680300007099 +S315400147208210601F8408800103000010821060100F +S3154001473080A0800102800004010000007FFFB2B921 +S31540014740901020107FFFFBDF901020009016A1D023 +S315400147509216E1D87FFFF99494146150C4046150D4 +S31540014760C20721F880A0800122800CC3C404200422 +S315400147707FFFB2AC901020107FFFFBD21103C00027 +S315400147809016E1D8C024A1689216A1D07FFFF98680 +S3154001479094146150C4046150C20721F880A080017D +S315400147A022800CA4C40420047FFFB29E90102010E6 +S315400147B09015A1C89215E1B87FFFF97B9414615019 +S315400147C0C204A1688330600E8208600380A0600243 +S315400147D002800004010000007FFFB2929010201079 +S315400147E0C024A1689014E1E0921000147FFFF96E95 +S315400147F094146150C4046150C204E1E080A0800178 +S3154001480022800C83C40420047FFFB28690102010BE +S315400148109014E1E09210001D7FFFF96394146150FA +S31540014820C4046150C204E1E080A0800122800C6F83 +S31540014830C40420047FFFB27B901020109014E1E065 +S315400148409215A1C87FFFF95894146150C404615070 +S31540014850C204E1E080A0800122800C5BC4042004F4 +S315400148607FFFB270901020109014E1E094146150D3 +S315400148707FFFF94D92100008C4046150C204E1E083 +S3154001488080A0800122800C47C40420047FFFB265CA +S31540014890901020109014E1E0921561F07FFFF942EB +S315400148A094146150C404A168030000708210601F13 +S315400148B084088001030000108210601080A08001EE +S315400148C002800004010000007FFFB25690102010C4 +S315400148D0C024A168901561F0921000147FFFF9324F +S315400148E094146150C404A168030000708210601FD3 +S315400148F084088001030000108210601080A08001AE +S3154001490002800004010000007FFFB2469010201093 +S31540014910C024A168901561F09210001D7FFFF92215 +S3154001492094146150C404A168030000708210601F92 +S3154001493084088001030000108210601080A080016D +S3154001494002800004010000007FFFB2369010201063 +S31540014950C024A168901561F09215A1C87FFFF91294 +S3154001496094146150C404A168030000708210601F52 +S3154001497084088001030000108210601080A080012D +S3154001498002800004010000007FFFB2269010201033 +S31540014990C024A168901561F09214E1E07FFFF9020D +S315400149A094146150C404A168030000708210601F12 +S315400149B084088001030000108210601080A08001ED +S315400149C002800005901561F07FFFB216901020100D +S315400149D0901561F0C024A168941461507FFFF8F2EC +S315400149E092100008C404A168030000708210601F81 +S315400149F084088001030000108210601080A08001AD +S31540014A0002800004010000007FFFB20690102010D2 +S31540014A10C024A168901561F09215E1B87FFFF8E2D4 +S31540014A2094146150C204A1688330600E8208600309 +S31540014A3080A0600202800004010000007FFFB1F9FE +S31540014A40901020107FFFFB1F1103C0000310008050 +S31540014A50C024A1688210633010800009B010200084 +S31540014A607FFFB1F090102010C207BFC4B0062001ED +S31540014A7080A6200D0280002282006018852E200328 +S31540014A80912E200590220002051000808410A3205B +S31540014A90C227BFC490008008932E2001151001241F +S31540014AA0920240189412A15092026001932A600327 +S31540014AB07FFFF8BD92008009C207BFC4C60040000F +S31540014AC0C404000080A0C00232BFFFE6C227BFC4B3 +S31540014AD0C60060040910012488112150C401200434 +S31540014AE080A0C00232BFFFDFC227BFC4B00620018B +S31540014AF080A6200D12BFFFE282006018C204A168A1 +S31540014B0080A0600012800BA30100000011100081FB +S31540014B1094146150901220587FFFF8A39202200806 +S31540014B200310008082106320C4006148C2046150B2 +S31540014B3080A0800102800B86071000807FFFB1B9FB +S31540014B409010201011100081941461509012207021 +S31540014B507FFFF8959202200809100080C204615037 +S31540014B6088112320C401216080A0800122800B6925 +S31540014B70C40121647FFFB1AB901020101110008158 +S31540014B8094146150901220887FFFF8879202200882 +S31540014B900310008082106320C4006178C204615012 +S31540014BA080A0800102800B4B071000807FFFB19DE2 +S31540014BB090102010C024A16811100000921020000E +S31540014BC0150FFC007FFFF94F96102000030FFC00E4 +S31540014BD080A2000102800B3880A260007FFFB19164 +S31540014BE0901020101110000092102000152FFC008B +S31540014BF07FFFF944961020000310020080A20001B5 +S31540014C0002800B2680A260007FFFB18690102010A3 +S31540014C101130000092102000150FFC007FFFF9397A +S31540014C20961020000330020080A2000102800B147E +S31540014C3080A260007FFFB17B9010201011300000F0 +S31540014C4092102000152FFC007FFFF92E96102000B0 +S31540014C50032FFC0080A2000102800B0280A26000AB +S31540014C607FFFB17090102010111000007FFFF92FC7 +S31540014C70130FE0000310100080A20001128007B656 +S31540014C8001000000C204A16880A06000128007B242 +S31540014C9001000000111000007FFFF92E130FE00004 +S31540014CA0030FE00080A20001128007A70100000067 +S31540014CB0C204A16880A06000128007A30100000021 +S31540014CC009100080C024A16890100014941461500A +S31540014CD07FFFF848921121C0C4046150C206A1D099 +S31540014CE080A0800122800ACFC40420047FFFB14DF9 +S31540014CF090102011C024A168901000149216E1D89A +S31540014D007FFFF83C94146150C4046150C207BFC888 +S31540014D1080A0800122800ABAC40420047FFFB141E9 +S31540014D2090102011901000149214E1E07FFFF831A9 +S31540014D3094146150C4046150C204E1E080A0800132 +S31540014D4022800AA6C40420047FFFB13690102011A8 +S31540014D5090100014921561F07FFFF826941461506B +S31540014D60C4046150C20721F880A0800122800A8ACA +S31540014D70C40420047FFFB12B901020119010001421 +S31540014D809215E1B87FFFF81B94146150030000703F +S31540014D90C404A168840880010300002080A080012A +S31540014DA002800004010000007FFFB11E9010201117 +S31540014DB0C024A1689010001D921000147FFFF80DC9 +S31540014DC094146150C4046150C207BFD080A08001D1 +S31540014DD022800A68C40420047FFFB112901020117A +S31540014DE0031000809207BFC8901061C07FFFF80191 +S31540014DF094146150C4046150C20721F880A0800117 +S31540014E0022800A4CC40420047FFFB1069010201171 +S31540014E1009100080C024A168901121C09216E1D8E2 +S31540014E207FFFF7F494146150C40461500710008069 +S31540014E30C200E1C080A0800122800A34C40420045B +S31540014E407FFFB0F8901020119010001D9214E1E000 +S31540014E507FFFF7E894146150C4046150C204E1E055 +S31540014E6080A0800122800A20C40420047FFFB0ED87 +S31540014E70901020079010001D921561F07FFFF7DD1D +S31540014E8094146150C404A168030000708210601F2D +S31540014E9084088001030000108210601080A0800108 +S31540014EA002800004010000007FFFB0DE9010201157 +S31540014EB0C024A1689010001D9215E1B87FFFF7CD7F +S31540014EC09414615003000070C404A16884088001F1 +S31540014ED00300002080A08001028000040100000040 +S31540014EE07FFFB0D090102011C024A1689016A1D0A8 +S31540014EF0921000147FFFF7BF94146150C4046150AF +S31540014F00C206A1D080A08001228009ECC4042004FD +S31540014F107FFFB0C490102011091000809016A1D0D7 +S31540014F20921121C07FFFF7B394146150C4046150BC +S31540014F30C206E1D880A08001228009D5C40420049C +S31540014F407FFFB0B8901020119015A1C894146150FC +S31540014F507FFFF7A892100008C4046150C20721F8E8 +S31540014F6080A08001228009BAC40420047FFFB0AD2D +S31540014F7090102011C024A1689015A1C89214E1E0B7 +S31540014F807FFFF79C94146150C4046150C204E1E070 +S31540014F9080A08001228009A5C40420047FFFB0A11E +S31540014FA0901020119015A1C8921561F07FFFF791DD +S31540014FB094146150C4046150C20721F880A0800155 +S31540014FC02280098AC40420047FFFB09690102011E4 +S31540014FD0C024A1689015A1C89215E1B87FFFF78555 +S31540014FE09414615003000070C404A16884088001D0 +S31540014FF00300002080A0800102800004010000001F +S315400150007FFFB08890102011C024A1689014E1E080 +S31540015010921000147FFFF77794146150C4046150D5 +S31540015020C204E1E080A0800122800967C404200413 +S315400150307FFFB07C901020119014E1E09210001D8A +S315400150407FFFF76C94146150C4046150C204E1E0DF +S3154001505080A0800122800953C40420047FFFB071DF +S31540015060901020119014E1E09215A1C87FFFF761DD +S3154001507094146150C4046150C204E1E080A08001EF +S315400150802280093FC40420047FFFB066901020119E +S315400150909014E1E0941461507FFFF7569210000896 +S315400150A0C4046150C204E1E080A080012280092B42 +S315400150B0C40420047FFFB05B901020119014E1E0FE +S315400150C0921561F07FFFF74B94146150C40461500F +S315400150D0C20721F880A080012280090FC404200460 +S315400150E07FFFB050901020119014E1E09215E1B885 +S315400150F07FFFF7409414615003000070C404A16817 +S31540015100840880010300002080A080010280000500 +S31540015110901561F07FFFB04390102011901561F01A +S31540015120921000147FFFF73394146150C404A168B0 +S31540015130030000708210601F840880010300001084 +S315400151408210601080A080010280000401000000EE +S315400151507FFFB03490102011C024A168901561F0F2 +S315400151609210001D7FFFF72394146150C404A16877 +S31540015170030000708210601F840880010300001044 +S315400151808210601080A080010280000401000000AE +S315400151907FFFB02490102011C024A168901561F0C2 +S315400151A09215A1C87FFFF71394146150C404A168F6 +S315400151B0030000708210601F840880010300001004 +S315400151C08210601080A0800102800004010000006E +S315400151D07FFFB01490102011C024A168901561F092 +S315400151E09214E1E07FFFF70394146150C404A1686F +S315400151F0030000708210601F8408800103000010C4 +S315400152008210601080A0800102800005901561F037 +S315400152107FFFB00490102011901561F0C024A16861 +S31540015220941461507FFFF6F392100008C404A168FC +S31540015230030000708210601F840880010300001083 +S315400152408210601080A080010280000401000000ED +S315400152507FFFAFF490102011C024A168901561F032 +S315400152609215E1B87FFFF6E3941461500300007094 +S31540015270C404A168840880010300002080A0800145 +S3154001528002800005051FC0007FFFAFE69010201188 +S31540015290051FC0000700C0008410A1028610E0B0BF +S315400152A0C024A168B007BFE0C43FBFE805203E83E4 +S315400152B0070021C88410A3FF8610E3A19007BFE829 +S315400152C092100018C43FBFE07FFFF6CA9407BFD8CB +S315400152D0C407BFD8033FFC0080A08001028008803C +S315400152E0C207BFDC7FFFAFCF901020110500400001 +S315400152F00700C0008410A1028610E0B0C024A16856 +S315400153009007BFE8C43FBFE805108683070021C860 +S315400153108410A3FF8610E3A1921000189407BFD80A +S315400153207FFFF6B4C43FBFE0C207BFDCC407BFD8A6 +S31540015330809080011280000B03100080C4006168D8 +S31540015340030000708210601F840880010300001072 +S315400153508210600480A0800102800005050006AF2E +S315400153607FFFAFB090102011050006AF86102010C8 +S31540015370C024A1689007BFE8C43FBFE8050FFC0001 +S31540015380070281D88410A0408610E10C92100018C3 +S315400153909407BFD87FFFF697C43FBFE0C407BFD885 +S315400153A0030006AE8210639580A080010280084208 +S315400153B0C407BFDC7FFFAF9B90102011050006AFED +S315400153C086102010C024A1689007BFE8C43FBFE8FB +S315400153D0050FFFFF070281D88410A3408610E10C18 +S315400153E0921000189407BFD87FFFF682C43FBFE0F2 +S315400153F0C207BFDCC407BFD8809080011280000B72 +S3154001540003100080C4006168030000708210601FB1 +S3154001541084088001030000108210600480A080018E +S3154001542002800004010000007FFFAF7E9010201132 +S31540015430C024A168111088007FFFF75A131001009C +S31540015440031066C9821062CA80A20001128005BAA1 +S3154001545003100080C200616880A06000128005B61A +S31540015460010000001111BBFE130C70407FFFF74D88 +S31540015470901223FF031527CA8210611E80A20001E4 +S31540015480128005A901000000C204A16880A0600045 +S31540015490128005A501000000111E607E1310C7FF92 +S315400154A07FFFF740921263FC031D73FC8210633841 +S315400154B080A200011280059801000000C204A16883 +S315400154C080A06000128005940100000011002000B8 +S315400154D0130FE0007FFFF7339212600180A2200094 +S315400154E01280000B01000000C404A1680300007093 +S315400154F08210601F8408800103000010821060043E +S3154001550080A0800102800005110FE0007FFFAF45BA +S3154001551090102011110FE000C024A1687FFFF721F0 +S3154001552092100008030FE00080A200011280057668 +S3154001553003100080C200616880A06000128005727D +S315400155400100000011002000130FE0007FFFF71556 +S315400155509212600180A220001280000B010000001F +S31540015560C404A168030000708210601F8408800192 +S31540015570030000108210600480A0800102800005B3 +S31540015580031000807FFFAF27901020110310008089 +S31540015590C024A168921061C0901000147FFFF607E5 +S315400155A094146150C404615007100080C200E1C0E8 +S315400155B080A08001228007B6C40420047FFFAF1972 +S315400155C090102012901000149216E1D87FFFF5FB3F +S315400155D094146150C4046150C206E1D880A0800190 +S315400155E0228007A0C40420047FFFAF0E9010201232 +S315400155F0901000149214E1E07FFFF5F0941461508D +S31540015600C4046150C204E1E080A080012280078C7D +S31540015610C40420047FFFAF039010201290100014A1 +S31540015620921561F07FFFF5E594146150C404615011 +S31540015630C20721F880A0800122800770C40420049B +S315400156407FFFAEF890102012901000149215E1B829 +S315400156507FFFF5DA9414615003000070C404A16819 +S31540015660840880010300002080A08001028000049C +S31540015670010000007FFFAEEB90102012C024A1680C +S315400156809010001D921000147FFFF5CC94146150C8 +S31540015690C4046150C207BFD080A080012280074E5A +S315400156A0C40420047FFFAEDF901020120310008057 +S315400156B09216A1D0901061C07FFFF5C0941461503D +S315400156C0C4046150C20721F880A0800122800732BC +S315400156D0C40420047FFFAED390102012C024A168D9 +S315400156E09010001D9214E1E07FFFF5B494146150CF +S315400156F0C4046150C204E1E080A080012280071DFC +S31540015700C40420047FFFAEC7901024999010001D59 +S31540015710921561F07FFFF5A994146150C40461505C +S31540015720C20721F880A0800122800701C404200419 +S315400157307FFFAEBC901020129010001D9215E1B86B +S315400157407FFFF59E9414615003000070C404A16864 +S31540015750840880010300002080A0800102800004AB +S31540015760010000007FFFAEAF90102012C024A16857 +S315400157709015A1C8921000147FFFF59094146150C2 +S31540015780C4046150C205A1C880A08001228006DD03 +S31540015790C40420047FFFAEA3901020129015A1C827 +S315400157A09210001D7FFFF58594146150C404615029 +S315400157B0C20721F880A08001228006C2C4042004C9 +S315400157C07FFFAE9890102012C024A1689015A1C801 +S315400157D09214E1E07FFFF57994146150C40461505D +S315400157E0C204E1E080A08001228006ADC404200409 +S315400157F07FFFAE8C901020129015A1C8921561F0D2 +S315400158007FFFF56E94146150C4046150C20721F8BC +S3154001581080A0800122800691C40420047FFFAE81CE +S31540015820901020129015A1C89215E1B87FFFF5633B +S315400158309414615003000070C404A1688408800177 +S315400158400300002080A080010280000401000000C6 +S315400158507FFFAE7490102012C024A1689014E1E03D +S31540015860921000147FFFF55594146150C4046150A1 +S31540015870C204E1E080A080012280066FC4042004B6 +S315400158807FFFAE68901020129014E1E09210001D47 +S315400158907FFFF54A94146150C4046150C204E1E0AB +S315400158A080A080012280065BC40420047FFFAE5D98 +S315400158B0901020129014E1E09215A1C87FFFF53FA8 +S315400158C094146150C4046150C204E1E080A0800197 +S315400158D022800647C40420047FFFAE529010201256 +S315400158E09014E1E0941461507FFFF5349210000862 +S315400158F0C4046150C204E1E080A0800122800633E5 +S31540015900C40420047FFFAE47901020129014E1E0BA +S31540015910921561F07FFFF52994146150C404A16882 +S31540015920030000708210601F84088001030000108C +S315400159308210601080A080010280000401000000F6 +S315400159407FFFAE3890102012C024A168901561F0F7 +S31540015950921000147FFFF51994146150C404A16894 +S31540015960030000708210601F84088001030000104C +S315400159708210601080A080010280000401000000B6 +S315400159807FFFAE2890102012C024A1689210001DFE +S31540015990901561F07FFFF50994146150C404A16824 +S315400159A0030000708210601F84088001030000100C +S315400159B08210601080A08001028000040100000076 +S315400159C07FFFAE1890102012C024A168901561F097 +S315400159D09215A1C87FFFF4F994146150C404A168DB +S315400159E0030000708210601F8408800103000010CC +S315400159F08210601080A08001028000040100000036 +S31540015A007FFFAE0890102012C024A168901561F066 +S31540015A109214E1E07FFFF4E994146150C404A16853 +S31540015A20030000708210601F84088001030000108B +S31540015A308210601080A0800102800005901561F0FF +S31540015A407FFFADF890102012901561F0C024A16837 +S31540015A50941461507FFFF4D992100008C404A168E0 +S31540015A60030000708210601F84088001030000104B +S31540015A708210601080A080010280000401000000B5 +S31540015A807FFFADE890102012C024A168901561F007 +S31540015A909215E1B87FFFF4C994146150C204A1681C +S31540015AA08330600E8208600380A060020280000598 +S31540015AB01103C0007FFFADDB901020121103C0001F +S31540015AC07FFFF70031100080B0162228C024A1685C +S31540015AD010800008BA1020007FFFADD2901020122E +S31540015AE0BA07600180A7600602800024B00620182C +S31540015AF0832F60030910008088112218912F6005B9 +S31540015B00932F6001902200019202401D90010008EE +S31540015B109202600115100124932A60039412A15048 +S31540015B207FFFF4A692010009C4060000C2040000EA +S31540015B3080A0800112BFFFE907100124C40620049A +S31540015B408610E150C200E00480A0800112BFFFE34D +S31540015B500910008088112168C201000080A0600000 +S31540015B6012BFFFDE01000000BA07600180A7600690 +S31540015B7012BFFFE0B0062018111000809414615046 +S31540015B80901222A87FFFF48D920220080310008014 +S31540015B9082106218C40060A0C204615080A08001D6 +S31540015BA00280057A071000807FFFAD9E901020127B +S31540015BB0C024A1681110008094146150901222C033 +S31540015BC07FFFF47E9202200809100080C2046150D2 +S31540015BD088112218C40120B880A080012280055D69 +S31540015BE0C40120BC7FFFAD8F90102012C024A16854 +S31540015BF01110008094146150901222D87FFFF46FE7 +S31540015C00920220080310008082106218C40060D0FE +S31540015C10C204615080A080010280053E07100080C9 +S31540015C207FFFAD8090102012C024A1681110008022 +S31540015C3094146150901222F07FFFF4609202200882 +S31540015C4009100080C204615088112218C40120E85D +S31540015C5080A0800122800521C40120EC7FFFAD7127 +S31540015C6090102012C024A168111000809414615034 +S31540015C70901223087FFFF4519202200803100080FE +S31540015C8082106218C4006100C204615080A0800184 +S31540015C9002800502071000807FFFAD62901020123E +S31540015CA0C024A168111010007FFFF53413100000C5 +S31540015CB00310300080A20001128003B70310008058 +S31540015CC0C200616880A06000128003B30100000039 +S31540015CD0111FE000131000007FFFF43D9414615042 +S31540015CE0C4046150031FFC0080A08001228004E3AC +S31540015CF0C20420047FFFAD4B9010201B111FE00012 +S31540015D00133000007FFFF43294146150C404615093 +S31540015D10033FFC0080A08001228004D0C2042004FD +S31540015D207FFFAD409010201C1110000092102010F2 +S31540015D307FFFF4279414615003000070C404A168E6 +S31540015D40840880010300002080A0800102800004B5 +S31540015D50010000007FFFAD339010201DC024A168D3 +S31540015D6011002000130FC0007FFFF41994146150F5 +S31540015D70C4046150030E000080A08001228004AF5C +S31540015D80C20420047FFFAD279010201E111FDFFFA4 +S31540015D9013100000901223FF7FFFF40D94146150FD +S31540015DA0C40461500311FFFF821063FF80A080018C +S31540015DB022800499C40420047FFFAD1A9010201F4D +S31540015DC0111FD000130FF0007FFFF40194146150AE +S31540015DD0C40461500311FC8080A0800122800486A6 +S31540015DE0C20420047FFFAD0F90102021111FDFFF59 +S31540015DF094146150901223FF7FFFF3F5921000082F +S31540015E00C40461500313FBFF821063FF80A080012D +S31540015E102280046FC40420047FFFAD02901020202D +S31540015E207FFFF6281103C0009007BFC8C024A168B0 +S31540015E307FFFF3F692146150C4046150C207BFC894 +S31540015E4080A0800122800459C40420047FFFACF560 +S31540015E509010201309100080921461507FFFF3EBDC +S31540015E60901121C005100080C200A1C0C404615038 +S31540015E7080A0800102800442071000807FFFACE9C8 +S31540015E80901020139016E1D87FFFF3E092146150F1 +S31540015E90C4046150C206E1D880A080010280042D6D +S31540015EA0091000807FFFACDF901020139016A1D01F +S31540015EB07FFFF3D692146150C4046150C20721F8A2 +S31540015EC080A0800122800413C40420047FFFACD546 +S31540015ED090102013C024A168901561F07FFFF3CB89 +S31540015EE092146150C4046150C20721F880A0800118 +S31540015EF0228003F8C40420047FFFACCA901020130B +S31540015F00C024A1689014E1E07FFFF3C09214615070 +S31540015F10C204E1E0C404615080A08001228003E410 +S31540015F20C20660047FFFACBF9010201305100C0021 +S31540015F30861020009010001492146150C43FBFF89F +S31540015F4005300F78070C00088610E0017FFFF3AF9C +S31540015F50C43FBFF0C40461500310040080A0800117 +S31540015F60228003CBC20420047FFFACAE90102013E5 +S31540015F70A607BFF0921461507FFFF3A4901000135F +S31540015F80C20721F8C404615080A08001028003B099 +S31540015F90051000807FFFACA3901020139015E1B847 +S31540015FA07FFFF39A92146150C204A1688330600E58 +S31540015FB08208600380A060020280000401000000A4 +S31540015FC07FFFAC9890102013C024A1687FFFF47F17 +S31540015FD01111F2000310E80080A20001128002EBC9 +S31540015FE003100080C200616880A06000128002E751 +S31540015FF0010000007FFFF5B3111000001101F58982 +S315400160007FFFF472901221E20308E96480A2000145 +S31540016010128002DB01000000C204A16880A060007A +S31540016020128002D7010000007FFFF4681112A20816 +S315400160300311410080A20001128002CE010000003E +S31540016040C204A16880A06000128002CA010000005B +S315400160507FFFF59C11001000901000149215E1B8D5 +S315400160607FFFF35194146150C404615003100C0036 +S3154001607080A080012280036EC20420047FFFAC69A8 +S31540016080901020149015E1B8921000137FFFF34B46 +S3154001609094146150C40461500320000080A0800123 +S315400160A02280035BC20420047FFFAC5E9010201463 +S315400160B07FFFF38E90102001030FE00080A20001C4 +S315400160C0128002A901000000C204A16880A06000FC +S315400160D0128002A5010000007FFFF37C9010200191 +S315400160E0030FFC0080A200010280034280A26000EF +S315400160F07FFFAC4C901020147FFFF57211101000F9 +S31540016100D41EE1D87FFFF3FFD01DE1B8C206A1D06E +S31540016110D024615080A040080280032BD224200461 +S315400161207FFFAC40901020227FFFF56611100000E2 +S31540016130050FFC00861020009010001492100013E9 +S31540016140C43FBFF8050F2800070400808610E0F021 +S31540016150941461507FFFF314C43FBFF0C4046150EF +S31540016160030FFC0080A0800122800313C204200497 +S315400161707FFFAC2C901020157FFFF55211200000B7 +S31540016180050FFC0086102000901000149210001399 +S31540016190C43FBFF805001400070000408610E00127 +S315400161A0941461507FFFF300C43FBFF0C4046150B3 +S315400161B0030FFC0080A08001228002FBC204200460 +S315400161C07FFFAC18901020157FFFF53E113000007F +S315400161D0052FFC0086102000901000149210001329 +S315400161E0C43FBFF805201400070000408610E001B7 +S315400161F0941461507FFFF2ECC43FBFF0C404615078 +S31540016200032FFC0080A08001228002E3C204200407 +S315400162107FFFAC04901020157FFFF52A1110000076 +S31540016220050FFC0086102000901000149215A1C89D +S31540016230C43FBFF87FFFF2DC94146150C40461503F +S31540016240C205A1C880A08001228002CCC4042004DA +S315400162507FFFABF4901020157FFFF51A1120000047 +S31540016260050FFC0086102000901000149215A1C85D +S31540016270C43FBFF805001400070000408610E00146 +S31540016280941461507FFFF2C8C43FBFF0C40461500B +S31540016290C205A1C880A08001228002B1C4042004A5 +S315400162A07FFFABE0901020157FFFF506113000000F +S315400162B0052FFC0086102000901000149215A1C8ED +S315400162C0C43FBFF805201400070000408610E001D6 +S315400162D0941461507FFFF2B4C43FBFF0C205A1C818 +S315400162E0C404615080A0800102800296091000809A +S315400162F07FFFABCC901020157FFFF4F21110000008 +S31540016300050FFC0086102001901000149210001316 +S31540016310C43FBFF805100000861020019414615057 +S315400163207FFFF2A6C43FBFF0C404615003100000D2 +S3154001633080A080012280027FC20420047FFFABB986 +S31540016340901020157FFFF4DF1120000090100014FB +S31540016350921000137FFFF29994146150C404615066 +S315400163600310000080A080012280026EC204200436 +S315400163707FFFABAC901020157FFFF4D211300000A7 +S31540016380052FFC0086102001901000149210001376 +S31540016390C43FBFF87FFFF28994146150C404615031 +S315400163A00330000080A080012280025AC2042004EA +S315400163B07FFFAB9C901020157FFFF4C211100000A7 +S315400163C0050FFEAE071CD2E88410A1548610E011D9 +S315400163D09010001492100013C43FBFF8050FFC043F +S315400163E0072F26158410A0128610E23194146150AD +S315400163F07FFFF280C43FBFF0C4046150030FFEA784 +S315400164008210629680A080012280023CC40420044E +S315400164107FFFAB84901020157FFFF4AA1120000066 +S3154001642090100014921000137FFFF2729414615081 +S31540016430C4046150030FFEA78210629680A08001BA +S3154001644022800228C40420047FFFAB7690102015D9 +S315400164507FFFF49C11300000052FFC04072F261501 +S315400164608410A0128610E23190100014921000138D +S31540016470C43FBFF07FFFF25F94146150C404615082 +S31540016480032FFEA78210629680A080012280020F10 +S31540016490C40420047FFFAB63901020157FFFF4896D +S315400164A011100000051038008610200090100014CD +S315400164B092100013C43FBFF805101000861020004B +S315400164C0941461507FFFF24BC43FBFF0C404615046 +S315400164D00310240080A08001228001F8C204200418 +S315400164E07FFFAB50901020157FFFF47611200000FE +S315400164F090100014921000137FFFF23E94146150E5 +S31540016500C40461500310240080A08001228001E769 +S31540016510C20420047FFFAB43901020157FFFF4692E +S315400165201130000090100014921000137FFFF231D9 +S3154001653094146150C40461500310240080A080016A +S31540016540228001D6C20420047FFFAB36901020156D +S315400165507FFFF45C1110000011002000130FE000D2 +S315400165607FFFF3109212600180A22000128001C8C1 +S31540016570010000007FFFF4531120000011002000AC +S31540016580130FE0007FFFF3079212600180A2200003 +S31540016590128001BC010000007FFFF44A1130000067 +S315400165A011002000130FE0007FFFF2FE92126001FE +S315400165B080A22000128001B0010000007FFFF4415B +S315400165C011100000050FFC008610200090100014E9 +S315400165D0921461507FFFF20DC43FBFF8C40461506D +S315400165E0C207BFF880A080012280019AC40420041A +S315400165F07FFFAB0C901020157FFFF4321120000075 +S31540016600901000147FFFF20192146150C40461504E +S31540016610C207BFF880A0800122800185C4042004FE +S315400166207FFFAB00901020157FFFF426113000004C +S31540016630901000147FFFF1F592146150C40461502B +S31540016640C207BFF880A0800122800170C4042004E3 +S315400166507FFFAAF4901020157FFFF41A1110000055 +S315400166602B0FDFFF901563FF7FFFF2D8AA1563FF5B +S3154001667080A2001502800004010000007FFFAAE904 +S31540016680901020157FFFF40F11200000110FDFFF3E +S315400166907FFFF2CE901223FF030FE00080A200019C +S315400166A002800004010000007FFFAADE9010201541 +S315400166B07FFFF404113000002B0FDFFF901563FFBD +S315400166C07FFFF2C2AA1563FF80A200150280000473 +S315400166D0010000007FFFAAD3901020157FFFF3F938 +S315400166E0901020007FFFF2C190146150C4046150A4 +S315400166F0032FFE0080A0800122800140C2042004B5 +S315400167007FFFAAC8901020162B1001247FFFF2C1EB +S3154001671090156158C4056158032FF00080A080018F +S3154001672002800004010000007FFFAABE90102016DF +S315400167307FFFF2C290156158C4056158030FE0000E +S3154001674080A0800102800004010000007FFFAAB5FD +S31540016750901020167FFFF2C990146150C404615015 +S31540016760030FFBF7821063F080A080012280011C99 +S31540016770C40420047FFFAAAB901020169215E1B8FD +S31540016780901000147FFFF19B94146150C204A168DC +S315400167908330600E8208600780A060020280000597 +S315400167A0031000807FFFAA9F9010201703100080DE +S315400167B0C40061700310004BE40061F8821061F877 +S315400167C080A0400202800005031000807FFFAA9549 +S315400167D09010201803100080C200617480A04012FE +S315400167E002800005031000807FFFAA8E90102018BA +S315400167F003100080C200617880A06000128000F41E +S315400168000100000003100080C200617C80A060008E +S31540016810128000EC010000007FFFF14E01000000F4 +S3154001682080A220010280052D01000000050C4029AF +S315400168300723CD1B8410A0068610E09B9010001400 +S31540016840C027BFF0C027BFF4C43FBFF8291000815D +S315400168507FFFF1962B100082AA1560A0A41020009C +S31540016860A81520A0AC146150BA100015108000087C +S31540016870AE1000107FFFAA6B90102019A404A0044B +S3154001688080A4A400228000172B100084C2050012A8 +S31540016890C224C000901000137FFFF18792100016AA +S315400168A0832CA001C4040000C605400180A0C0029B +S315400168B012BFFFF182074001C4006004C205E00433 +S315400168C080A0800112BFFFEC01000000A404A004D7 +S315400168D080A4A40032BFFFEFC20500122B10008432 +S315400168E0A2146150AA1560A0A4102000AE10001594 +S315400168F010800008AC1000107FFFAA4A9010201AA1 +S31540016900A404A00880A4A400028000150100000090 +S31540016910C2050012C224C000921000117FFFF13B54 +S3154001692090100013C4054012C204000080A08001EB +S3154001693012BFFFF28205C012C4006004C205A00462 +S3154001694080A0800112BFFFED01000000A404A00851 +S3154001695080A4A40032BFFFF0C205001281C7E0083F +S3154001696081E800007FFFAA2F9010200F30BFF69AD2 +S315400169707FFFAA2C9010200F10BFF68C110048EA19 +S315400169807FFFAA289010200F10BFF646D01DE1B810 +S315400169907FFFAA249010200F10BFF64FD01CE1E0D4 +S315400169A07FFFAA209010200F10BFF608D41CE1E00B +S315400169B07FFFAA1C9010200F10BFF5F411151BE89C +S315400169C07FFFAA189010200F10BFF5E011151BC0CC +S315400169D07FFFAA149010200F10BFF5C4901020001D +S315400169E07FFFAA109010200F10BFF5B011351BC0C4 +S315400169F07FFFAA0C9010200F10BFF57AD01CE1E062 +S31540016A007FFFAA089010200F10BFF583D01D61F0BB +S31540016A107FFFAA049010200F10BFF565D01DE1B885 +S31540016A207FFFAA009010200F10BFF53FD41D61F0E3 +S31540016A307FFFA9FC9010200F10BFF52ED41CE1E07A +S31540016A407FFFA9F89010200F10BFF51A11151BE80A +S31540016A507FFFA9F49010200F10BFF50611151BC03A +S31540016A607FFFA9F09010200F10BFF4DA11351BC03B +S31540016A707FFFA9EC9010200F10BFF4E69010200084 +S31540016A807FFFA9E89010200E30BFF4BF7FFFA9E534 +S31540016A909010200E10BFF4B11128C6AF7FFFA9E1B7 +S31540016AA09010200E10BFF4A11108C6AF7FFFA9DDDB +S31540016AB09010200E10BFF4911128C6AF7FFFA9D9BF +S31540016AC09010200E10BFF4822108C6AF7FFFA9D5D2 +S31540016AD09010200D30BFF4517FFFA9D29010200DA8 +S31540016AE010BFF444371000807FFFA9CE9010200CD0 +S31540016AF010BFF3A2271000807FFFA9CA9010200B78 +S31540016B0030BFF34F7FFFA9C79010201110BFFA8FF6 +S31540016B10110020007FFFA9C39010201110BFFA6D0C +S31540016B20110020007FFFA9BF9010201110BFFA5C11 +S31540016B30111E607E7FFFA9BB9010201110BFFA4B3A +S31540016B401111BBFE7FFFA9B79010201010BFF85E50 +S31540016B50091000807FFFA9B39010201010BFF84F95 +S31540016B60111000007FFFA9AF9010201430BFFD5BCC +S31540016B707FFFA9AC9010202330BFFD367FFFA9A926 +S31540016B809010202330BFFD297FFFA9A69010201326 +S31540016B9030BFFD197FFFA9A39010201210BFFC4EF4 +S31540016BA0111FE00012BFF30A01000000C204A168F0 +S31540016BB080A0600002BFF3080100000030BFF3046B +S31540016BC07FFFA9989010201830BFFF147FFFA99529 +S31540016BD09010201810BFFF0D031000800303FF1211 +S31540016BE08210604A80A0800112BFFEE39215E1B88F +S31540016BF010BFFEE59010001480A0600002BFFEC4E5 +S31540016C002B10012430BFFEBFC207BFFC80A080010C +S31540016C1012BFFE9001000000C204A16880A060007E +S31540016C2002BFFE8E0100000030BFFE8AC207BFFCD4 +S31540016C3080A0800112BFFE7B01000000C204A16852 +S31540016C4080A0600002BFFE790100000030BFFE75E2 +S31540016C50C207BFFC80A0800112BFFE660100000092 +S31540016C60C204A16880A0600002BFFE64010000006A +S31540016C7030BFFE607FFFA96B9010201530BFFE50DC +S31540016C807FFFA9689010201530BFFE447FFFA9659C +S31540016C909010201530BFFE3880A0600002BFFE2D47 +S31540016CA00100000030BFFE2980A0600002BFFE1C2B +S31540016CB00100000030BFFE1880A0600002BFFE0B3D +S31540016CC00100000030BFFE07032C1B3482106030E8 +S31540016CD080A0800112BFFDF00100000030BFFDF031 +S31540016CE0032C1B348210603080A0800112BFFDD777 +S31540016CF00100000030BFFDD7032C1B348210602FEA +S31540016D0080A0800112BFFDC30100000030BFFDC35A +S31540016D1080A0600312BFFDA70100000030BFFDA7A0 +S31540016D2080A0600312BFFD930100000030BFFD93B8 +S31540016D3080A0600212BFFD820100000030BFFD82CB +S31540016D40C4042004881121C8C201200480A0800106 +S31540016D5012BFFD680100000030BFFD6807100080CA +S31540016D608610E1C8C200E00480A0800112BFFD4D3B +S31540016D700100000030BFFD4D09100080881121C877 +S31540016D80C201200480A0800112BFFD320100000033 +S31540016D9030BFFD3280A0600112BFFD1E0100000020 +S31540016DA030BFFD1E80A0600112BFFD06010000003C +S31540016DB030BFFD0680A0600002BFFCF0010000006C +S31540016DC030BFFCEC071000808610E1D0C200E00421 +S31540016DD080A0400912BFFCD301000000C204A16893 +S31540016DE080A0600002BFFCD10100000030BFFCCD95 +S31540016DF012BFFCC001000000C204A16880A060006F +S31540016E0002BFFCBE0100000030BFFCBA80A060009A +S31540016E1012BFFCA601000000C204A16880A0600068 +S31540016E2002BFFCA40100000030BFFCA080A06000AE +S31540016E3012BFFC9301000000C204A16880A060005B +S31540016E4002BFFC929015E1B830BFFC8D8410A1F8C9 +S31540016E50C200A004C404200480A0800112BFFC4EDD +S31540016E6001000000C404A168030000708210601F85 +S31540016E7084088001030000108210601080A0800108 +S31540016E8012BFFC459015E1B830BFFC4680A06000BA +S31540016E9012BFFC3601000000C204A16880A0600058 +S31540016EA002BFFC35A607BFF030BFFC30C404200446 +S31540016EB080A0800112BFFC1C03100080C2006168E3 +S31540016EC080A0600002BFFC1B05100C0030BFFC1601 +S31540016ED009100080881121F8C201200480A0800198 +S31540016EE012BFFC0603100080C400616803000070F5 +S31540016EF08210601F84088001030000108210601018 +S31540016F0080A0800112BFFBFD0100000030BFFBFDE8 +S31540016F10071000808610E1F8C200E00480A08001DD +S31540016F2012BFFBEB01000000C404A168030000701E +S31540016F308210601F840880010300001082106010D7 +S31540016F4080A0800112BFFBE20100000030BFFBE2DE +S31540016F50C4042004881121D8C201200480A08001E4 +S31540016F6012BFFBD101000000C204A16880A06000ED +S31540016F7002BFFBD09016A1D030BFFBCBC404200486 +S31540016F808610E1C0C200E00480A0800112BFFBBCB4 +S31540016F9001000000C204A16880A0600002BFFBBBE3 +S31540016FA09016E1D830BFFBB6C207BFCC80A08001A6 +S31540016FB012BFFBA703100080C200616880A0600079 +S31540016FC002BFFBA60910008030BFFBA103300000C1 +S31540016FD08210602080A0800112BFFB90010000005A +S31540016FE0C204A16880A0600002BFFB8E01000000C0 +S31540016FF030BFFB8A80A0600012BFFB7B010000000E +S31540017000C204A16880A0600002BFFB7A111FDFFFA6 +S3154001701030BFFB750338000080A0800112BFFB67BB +S3154001702001000000C204A16880A0600002BFFB66A7 +S31540017030111FD00030BFFB6180A0600012BFFB5220 +S3154001704003100080C200616880A0600002BFFB514E +S31540017050111FDFFF30BFFB4C80A0600012BFFB3128 +S3154001706001000000C204A16880A0600002BFFB309D +S315400170701110000030BFFB2B80A0600012BFFB1E29 +S3154001708001000000C204A16880A0600002BFFB1D90 +S31540017090111FE00030BFFB18C20420048610E2181D +S315400170A0C400E10480A0800112BFFAFC03100080F5 +S315400170B0C4006168030000708210601F840880016B +S315400170C0030000108210600880A0800112BFFAF30D +S315400170D00100000030BFFAF3C204200480A0800101 +S315400170E012BFFADF03100080C4006168030000701C +S315400170F08210601F84088001030000108210600422 +S3154001710080A0800112BFFAD60100000030BFFAD636 +S31540017110C20420048610E218C400E0D480A0800195 +S3154001712012BFFAC003100080C400616803000070FA +S315400171308210601F840880010300001082106008DD +S3154001714080A0800112BFFAB70100000030BFFAB734 +S31540017150C204200480A0800112BFFAA3031000805C +S31540017160C4006168030000708210601F84088001BA +S31540017170030000108210600880A0800112BFFA9AB5 +S315400171800100000030BFFA9AC20420048610E218BA +S31540017190C400E0A480A0800112BFFA84010000006F +S315400171A0C404A168030000708210601F8408800136 +S315400171B0030000108210600480A0800112BFFA7B98 +S315400171C00100000030BFFA7BC206600480A0800146 +S315400171D012BFF9CD01000000C204A16880A0600081 +S315400171E002BFF9CC9014E1E030BFF9C7C206600492 +S315400171F080A0800112BFF9B901000000C204A16854 +S3154001720080A0600002BFF9B89014E1E030BFF9B345 +S31540017210C206600480A0800112BFF9A501000000EA +S31540017220C204A16880A0600002BFF9A49014E1E005 +S3154001723030BFF99FC206600480A0800112BFF99158 +S3154001724003100080C200616880A0600002BFF9900F +S315400172509014E1E030BFF98B071000808610E1F809 +S31540017260C200E00480A0800112BFF96D0100000058 +S31540017270C404A168030000708210601F8408800165 +S31540017280030000108210601080A0800112BFF964D3 +S315400172909015A1C810BFF9669215E1B8C2066004FF +S315400172A080A0800112BFF95303100080C2006168BB +S315400172B080A0600002BFF9529015A1C830BFF94DB8 +S315400172C009100080881121F8C201200480A08001A4 +S315400172D012BFF93C01000000C404A168030000701C +S315400172E08210601F84088001030000108210601024 +S315400172F080A0800112BFF9330100000030BFF9338D +S31540017300071000808610E1C8C200E00480A0800119 +S3154001731012BFF92103100080C200616880A060009D +S3154001732002BFF9209015A1C830BFF91B0910008092 +S31540017330881121F8C201200480A0800112BFF8FD06 +S3154001734001000000C404A168030000708210601FA0 +S3154001735084088001030000108210601080A0800123 +S3154001736012BFF8F49010001D10BFF8F69215E1B85F +S31540017370C206600480A0800112BFF8E303100080BA +S31540017380C200616880A0600002BFF8E29010001D53 +S3154001739030BFF8DD071000808610E1F8C200E00436 +S315400173A080A0800112BFF8CC01000000C404A1688E +S315400173B0030000708210601F8408800103000010E2 +S315400173C08210601080A0800112BFF8C30100000046 +S315400173D030BFF8C3C207BFD480A0800112BFF8B244 +S315400173E003100080C200616880A0600002BFF8B14E +S315400173F00310008030BFF8AC09100080881121F8D5 +S31540017400C201200480A0800112BFF88E0100000055 +S31540017410C404A168030000708210601F84088001C3 +S31540017420030000108210601080A0800112BFF88511 +S315400174309010001410BFF8879215E1B8C206600497 +S3154001744080A0800112BFF87401000000C204A16847 +S3154001745080A0600002BFF8739010001430BFF86E30 +S31540017460071000808610E1D8C200E00480A08001A8 +S3154001747012BFF85E01000000C204A16880A060004E +S3154001748002BFF85D9010001430BFF8588810E1C073 +S31540017490C201200480A0800112BFF8490310008078 +S315400174A0C200616880A0600002BFF84890100014D5 +S315400174B030BFF84303003A9A8210630F80A08001DF +S315400174C012BFF7BD03100080C200616880A0600052 +S315400174D002BFF7BC050006AF30BFF7B780A060001A +S315400174E012BFF78103100080C40061680300007079 +S315400174F08210601F8408800103000010821060081A +S3154001750080A0800112BFF7780500400010BFF77ACE +S315400175100700C00009100080881121F8C20120042B +S3154001752080A0800112BFF6EF01000000C404A168EB +S31540017530030000708210601F840880010300001060 +S315400175408210601080A0800112BFF6E69014E1E03F +S3154001755010BFF6E89215E1B8C206600480A080012A +S3154001756012BFF6D501000000C204A16880A06000E8 +S3154001757002BFF6D49014E1E030BFF6CFC2066004F4 +S3154001758080A0800112BFF6C101000000C204A168BB +S3154001759080A0600002BFF6C09014E1E030BFF6BBA8 +S315400175A0C206600480A0800112BFF6AD0100000052 +S315400175B0C204A16880A0600002BFF6AC9014E1E06D +S315400175C030BFF6A7C206600480A0800112BFF699BB +S315400175D003100080C200616880A0600002BFF69877 +S315400175E09014E1E030BFF693071000808610E1F871 +S315400175F0C200E00480A0800112BFF67401000000C1 +S31540017600C404A168030000708210601F84088001D1 +S31540017610030000108210601080A0800112BFF66B3B +S315400176200100000030BFF66BC206600480A08001F5 +S3154001763012BFF65B03100080C200616880A0600043 +S3154001764002BFF65A9015A1C830BFF6550910008001 +S31540017650881121F8C201200480A0800112BFF6449E +S3154001766001000000C404A168030000708210601F7D +S3154001767084088001030000108210601080A0800100 +S3154001768012BFF63B0100000030BFF63B07100080F9 +S315400176908610E1D8C200E00480A0800112BFF6291D +S315400176A001000000C204A16880A0600002BFF62864 +S315400176B09015A1C830BFF623071000808610E1D08F +S315400176C0C200E00480A0800112BFF61203100080C0 +S315400176D0C200616880A0600002BFF61109100080F7 +S315400176E030BFF60CC206600480A0800112BFF5E0EF +S315400176F001000000C204A16880A0600002BFF5DF5E +S315400177009010001D30BFF5DA8810E1C0C201200497 +S3154001771080A0800112BFF5CB03100080C2006168D2 +S3154001772080A0600002BFF5CA9010001D30BFF5C5AC +S31540017730071000808610E1F8C200E00480A08001B5 +S3154001774012BFF5B201000000C404A1680300007035 +S315400177508210601F840880010300001082106010AF +S3154001776080A0800112BFF5A90910008030BFF5AA9B +S31540017770C207BFD480A0800112BFF59803100080D4 +S31540017780C200616880A0600002BFF59703100080C7 +S3154001779030BFF59209100080881121F8C2012004FA +S315400177A080A0800112BFF57401000000C404A168E5 +S315400177B0030000708210601F8408800103000010DE +S315400177C08210601080A0800112BFF56B90100014EA +S315400177D010BFF56D9215E1B8C206600480A0800124 +S315400177E012BFF55A01000000C204A16880A06000E2 +S315400177F002BFF5599010001430BFF554C207BFCCF3 +S3154001780080A0800112BFF54603100080C200616866 +S3154001781080A0600002BFF5459010001430BFF540CE +S31540017820071000808610E1D0C200E00480A08001EC +S3154001783012BFF52F03100080C40061680300007079 +S315400178408210601F840880010300001082106002CC +S3154001785080A0800112BFF5260100000030BFF52649 +S3154001786012BFF50001000000C204A16880A06000BB +S3154001787002BFF4FF1110000030BFF4FA12BFF4EE5C +S3154001788001000000C204A16880A0600002BFF4EDBF +S315400178901130000030BFF4E812BFF4DC01000000F3 +S315400178A0C204A16880A0600002BFF4DB1130000071 +S315400178B030BFF4D612BFF4CA03100080C20061681B +S315400178C080A0600002BFF4C91110000030BFF4C4AB +S315400178D0C20420048610E320C400E17C80A080011C +S315400178E012BFF4B301000000C404A1680300007094 +S315400178F08210601F8408800103000010821060041A +S3154001790080A0800112BFF4AA0100000030BFF4AA92 +S31540017910C204200480A0800112BFF4970100000038 +S31540017920C404A168030000708210601F84088001AE +S31540017930030000108210600480A0800112BFF48E03 +S315400179401110008110BFF49094146150C2042004B8 +S315400179508610E320C400E14C80A0800112BFF47878 +S3154001796001000000C404A168030000708210601F7A +S3154001797084088001030000108210600880A0800105 +S3154001798012BFF46F1110008110BFF471941461504D +S315400179907FFFA6249010201010BFF45E11100081C5 +S315400179A0C206600480A0800112BFF3B90100000045 +S315400179B0C204A16880A0600002BFF3B89014E1E060 +S315400179C030BFF3B3C206600480A0800112BFF3A5A5 +S315400179D001000000C204A16880A0600002BFF3A4B8 +S315400179E09014E1E030BFF39FC206600480A080019D +S315400179F012BFF39101000000C204A16880A060009B +S31540017A0002BFF3909014E1E030BFF38BC2066004ED +S31540017A1080A0800112BFF37D03100080C20061681F +S31540017A2080A0600002BFF37C9014E1E030BFF377A1 +S31540017A3009100080881121F8C201200480A080012C +S31540017A4012BFF35A03100080C4006168030000703E +S31540017A508210601F840880010300001082106010AC +S31540017A6080A0800112BFF3519015A1C810BFF353F6 +S31540017A709215E1B8071000808610E1F8C200E004D3 +S31540017A8080A0800112BFF33B0100000030BFF33BF1 +S31540017A9009100080881121D0C201200480A08001F4 +S31540017AA012BFF31801000000C204A16880A0600063 +S31540017AB002BFF3179016A1D030BFF3120710008012 +S31540017AC08610E1D8C200E00480A0800112BFF30213 +S31540017AD001000000C204A16880A0600002BFF3015A +S31540017AE09016A1D030BFF2FC09100080881121C840 +S31540017AF0C201200480A0800112BFF2EC0100000007 +S31540017B00C204A16880A0600002BFF2EB9016E1D8E2 +S31540017B1030BFF2E6071000808610E1C8C200E004DB +S31540017B2080A0800112BFF2D603100080C2006168B6 +S31540017B3080A0600002BFF2D59015A1C830BFF2D037 +S31540017B4009100080881121F8C201200480A080011B +S31540017B5012BFF2B10100000030BFF2B1C2066004AB +S31540017B6080A0800112BFF29001000000C204A1680A +S31540017B7080A0600002BFF28F9010001D30BFF28AD4 +S31540017B80071000808610E1C8C200E00480A0800191 +S31540017B9012BFF27A01000000C204A16880A0600011 +S31540017BA002BFF2799010001D30BFF274C207BFFCCC +S31540017BB080A0800112BFF26603100080C200616896 +S31540017BC080A0600002BFF2659010001D30BFF260D8 +S31540017BD0881721F8C201200480A0800112BFF24219 +S31540017BE00100000030BFF242C4042004C206600412 +S31540017BF080A0800112BFF21E01000000C204A168EC +S31540017C0080A0600002BFF21D9010001430BFF21830 +S31540017C108615A1C8C200E00480A0800112BFF20906 +S31540017C2001000000C204A16880A0600002BFF20802 +S31540017C309010001430BFF203C2042004C407BFFCF5 +S31540017C4080A0800112BFF1F303100080C200616879 +S31540017C5080A0600002BFF1F22D10008030BFF1ED2F +S31540017C6080A2400112BFEFA201000000C204A16838 +S31540017C7080A0600002BFEFA11111FC0030BFEF9C54 +S31540017C8080A2400112BFEF9003100080C2006168DC +S31540017C9080A0600022BFEF8F113C02AF30BFEF8A58 +S31540017CA012BFEEDB01000000C204A16880A06000A3 +S31540017CB002BFEED90100000030BFEED512BFEECCB7 +S31540017CC001000000C204A16880A0600002BFEECAA4 +S31540017CD00100000030BFEEC67FFFA552901020196B +S31540017CE010BFFAD4050C402981D8200081C3E00891 +S31540017CF00100000081D8200082102400C0A043006A +S31540017D0081C3E0080100000085322010913220181D +S31540017D10900A200F8408A00380A0000882602000FA +S31540017D2081C3E008900880019DE3BF887FFFEB7A1D +S31540017D309010200C808A2008128000040100000067 +S31540017D4081C7E00891E820007FFFA52F9010200E03 +S31540017D50C2800320853060188088A00F028000DD34 +S31540017D602F100123833060108208600380A06002D7 +S31540017D70028000E0C225E0D480A06003028000FFBB +S31540017D8080A06001028000EC2910010C2310010C37 +S31540017D902110010C2B10010C2710010C2510010C90 +S31540017DA081D8200081D8200082102400C0A0430041 +S31540017DB0031000A1051000A0821060008410A000ED +S31540017DC0873060048610E00188100003C87880007F +S31540017DD08800A004C67900008610200AC6784000B3 +S31540017DE0C8046000C60420041B0080001908000076 +S31540017DF09A13600A993B0004980B0003992B2002C1 +S31540017E0098030001DA7B00001B01000017100000F7 +S31540017E109813608E973AC004960AC003972AE002E7 +S31540017E209602C001D87AC000171C00001901C00093 +S31540017E30893AC0049813208E860900038728E002F8 +S31540017E408600C001D878C0003B1000A28200600CB9 +S31540017E50BA176000873760048610E001C678400093 +S31540017E608213601E86076008C278C0008210200017 +S31540017E708807600C86100001C67900002D1000A20B +S31540017E809A076004AC15A1008735A004B810001606 +S31540017E908610E001C67B4000B405A008C27E800082 +S31540017EA01B1000C0B605A004861360008330E004B1 +S31540017EB09810601AD87EC000C02360001B048D153F +S31540017EC09A136278DA20E004DA05E0D4331001002F +S31540017ED09A03600CB21660008605A00CB010200013 +S31540017EE0C627BFF8DA27BFFC90100018921020036E +S31540017EF0C227BFF0C427BFEC40000AB0C827BFF471 +S31540017F00DA07BFFC992A000DC607BFF89803001986 +S31540017F10993320049813201ED878C000B00620015A +S31540017F208600E00480A62008C207BFF0C407BFEC64 +S31540017F3012BFFFECC807BFF417100020DE05200C66 +S31540017F408612E168C822E16809100020D005600860 +S31540017F50D804A014DA04E010D2042004D40460004A +S31540017F60960BE001972AC008C6212160880A600362 +S31540017F708929000A8812C004960B2002972AC00D4F +S31540017F809611000B8530A004D620E0209610600E95 +S31540017F90D620E0289608BFF0840B20018528800D65 +S31540017FA0841100028210601EC420E02CC420E0141B +S31540017FB0050100008410A01EC220E010C420E00488 +S31540017FC0F620E00CF420E018F620E0240500764186 +S31540017FD0031000208410A1C082106000C420E00874 +S31540017FE0833060048210601EC220E01C8210210092 +S31540017FF0D6A04320C4800320C280432084102001A0 +S3154001800082102200C4A04320C6804320861020004F +S31540018010C6A04320C4A0032081D820007FFFEABE2A +S3154001802090102000913A200C808A2003028000653E +S3154001803001000000C280032082102100C28043203B +S3154001804082102200C2804320C804200488092003EC +S31540018050C2046000C605200CC4056008D404A014FF +S31540018060D604E010832900019808E0019A0AA0018C +S31540018070992B00029B2B400B981300019A13000D7C +S31540018080C803400080A120000280000388136004D9 +S3154001809030800000D201000011048D159012227823 +S315400180A080A2400812BFFFFB111000009E08E002AB +S315400180B0D00200009F2BC0029E13C001DE03C00008 +S315400180C080A3C008228000428608E0033080000079 +S315400180D02310010C2110010CC025E0D42B10010CFA +S315400180E02910010C2710010C10BFFF2E2510010C81 +S315400180F02110010C2910010C2510010C2310010C33 +S315400181008210203F2B10010C2710010CC2242004A1 +S31540018110C224A014C225200C8210201AC224600059 +S3154001812082102014C22560088210200E10BFFF1D48 +S31540018130C224E0102510010C2310010C8210203FAF +S315400181402110010C2B10010C2710010CC225200C0B +S31540018150C224A01482102019C22460008210207FFC +S31540018160C224200482102013C22560088210200DEB +S3154001817010BFFF0CC224E0102110010C2710010C86 +S315400181802310010C8210200F2B10010C2910010C19 +S315400181902510010CC224E010C22420048210201CA8 +S315400181A0C224600082102015C22560088210207FFB +S315400181B0C225200C8210203F10BFFEFAC224A01413 +S315400181C07FFFBF930100000030BFFF9B8528C0029F +S315400181D082108001C20040000321D95082106321E0 +S315400181E0C2210000C401000080A08001028000037A +S315400181F001000000308000008210000D05048D153D +S315400182008410A278072AF37B8610E301C438400024 +S31540018210C4384000C203400080A0400902800003E8 +S315400182200100000030800000C4010000032AF37BF6 +S315400182308210630180A0800112BFFFFBC205E0D41A +S31540018240940AA0038200600C972A800B84102001B7 +S31540018250AE13000B85288001B0102000EE25C0002A +S31540018260C0A0022092102003C227BFF0C427BFEC52 +S31540018270400009D290100018C207BFF0912A0001B0 +S31540018280C606400880A0C01712800008C407BFEC8C +S31540018290B006200180A6200802800005AE05C00276 +S315400182A010BFFFF0EE25C00030800000C0A00220C4 +S315400182B0AE102003B0102000852DE002C4058002D7 +S315400182C08608A06080A00003C227BFF0B040001816 +S315400182D0C427BFEC9005FFFD400009B8921020036A +S315400182E0C207BFF0C407BFEC872A000186064003D8 +S315400182F08730E0048610E01E8418C0028088BF9F44 +S3154001830012800009AE05E00180A5E00B32BFFFEC0B +S31540018310852DE00280A6200012800004D805200C9D +S315400183203080000030800000C8056008DA0420046F +S31540018330C4046000C604A014C204E010980B2001D6 +S315400183409A0B6003892B0004852B40028608E002C4 +S31540018350841100028328C001821080019FC0400021 +S315400183600100000082102400C0A04300C0A00220EA +S315400183708210200084072020C607200C8608E06072 +S3154001838080A00003B80720048240000180A70002B4 +S3154001839032BFFFFBC607200C80A060082280000385 +S315400183A0C206C00030800000808860400280000420 +S315400183B08088602032800003C20760083080000058 +S315400183C08088602032800003C20680003080000031 +S315400183D08088602012800003010000003080000088 +S315400183E083480000842860808188A0000100000045 +S315400183F00100000001000000D8042004C804600008 +S31540018400DA05200CC4056008C604A014C204E010B5 +S31540018410980B20039A0B6001892B0004852B40029F +S315400184208608E001841100028328C0018410A0045B +S3154001843082108001C20040009210200491D0200297 +S31540018440010000007FFFE9B490102000913A200C12 +S31540018450808A200312800005841020007FFFBEEC35 +S31540018460010000008410200082102200C4A0432095 +S3154001847086102001C6A04320C4A04320031000005B +S31540018480C4804380C4A043807FFFBF4E901020002C +S3154001849081D8200030BFFE2B9DE3BFA040000822BB +S315400184A001000000808A21001280000401000000C2 +S315400184B081C7E00891E820007FFFA37623100120C1 +S315400184C0912A20047FFFA35090022005A214600048 +S315400184D0C204600480A060000280001A821020005D +S315400184E0A010200084044001C8044001C600A00435 +S315400184F0C200A0089B39201F818360000100000053 +S3154001850001000000010000008479000380A0800181 +S3154001851002800004A00420017FFFA34290102001A5 +S3154001852082040010820040108328600284044001C6 +S31540018530C400A00480A0A00012BFFFEC8404400147 +S3154001854023100120A2146138C204600480A0600097 +S315400185500280001982102000A010200084044001EE +S31540018560C8044001C600A004C200A00881802000C2 +S3154001857001000000010000000100000084710003B9 +S3154001858080A0800102800004A00420017FFFA32572 +S31540018590901020028204001082004010832860025D +S315400185A084044001C400A00480A0A00012BFFFEDD6 +S315400185B084044001400008890100000080A2200097 +S315400185C012BFFFBC901020037FFFA316B0102000FE +S315400185D081C7E00881E800009DE3BFA07FFFA32D8E +S315400185E001000000912A20047FFFA3079002200486 +S315400185F0400007CF0100000080A221230280000431 +S31540018600010000007FFFA30790102001400007C62C +S3154001861001000000808A21000280002923100120E8 +S31540018620A2146180C204600880A06009028000151E +S3154001863082102000A010200084044001C60440019D +S31540018640C800A004C200A0088459000380A080018C +S3154001865002800004A00420017FFFA2F290102002B4 +S315400186608204001082004010832860028404400185 +S31540018670C400A00880A0A00912BFFFF184044001F4 +S31540018680400007B80100000080A2200002800023BC +S3154001869001000000400007B30100000080A2200055 +S315400186A002800016010000004000079F0100000003 +S315400186B0808A2200128000040100000081C7E00880 +S315400186C091E82000400007F80100000080A2200048 +S315400186D00280001A01000000400007F3010000007B +S315400186E080A2200012BFFFF6010000007FFFA2CD4D +S315400186F09010200430BFFFF27FFFA2CA90102003E2 +S315400187004000078901000000808A220002BFFFEC79 +S315400187100100000030BFFFEC7FFFA2C29010200392 +S31540018720400007900100000080A2200012BFFFDF39 +S315400187300100000030BFFFF17FFFA2BA9010200474 +S3154001874030BFFFE6000000009DE3BFA0941020006B +S31540018750111000619012237C131000619212638004 +S31540018760171000619612E388191000619813238C43 +S3154001877093C2000081C240001080019181C2C000B5 +S3154001878081C300001080018E9402A0019402A001D1 +S3154001879080A2A0031280018A0100000087440000E4 +S315400187A08D30E00E8C89A00780A1A000028000C711 +S315400187B001000000AF30E00BAE0DE00780A5E00000 +S315400187C0128000C20100000080A1A0021280003583 +S315400187D00100000025100000E41C80002510000067 +S315400187E029100000A8152104A6100012AA10001293 +S315400187F0AC100014A1802046A4100000AA1000006D +S3154001880001000000A180204EA810210001000000B7 +S31540018810A18000000100000001000000E83CA030FA +S3154001882082A480131280016682A50016128001641B +S315400188300100000001000000010000008744000023 +S315400188408D30E00B8C89A0078CA1A0051280015CBC +S31540018850A1800000010000000100000001000000AD +S31540018860E81CA03082A500161280015582A540124F +S31540018870A410000012800152010000000100000016 +S31540018880874400008D30E00B8C89A0078CA1A003A2 +S315400188901280014B010000001080008C0100000095 +S315400188A080A1A0011280002325100000E41C800055 +S315400188B02510000029100000A8152104A610001259 +S315400188C0AA100012AC100014A1802046A41000008A +S315400188D0AA10000001000000A180204EA81021002E +S315400188E001000000A180000001000000010000001D +S315400188F001000000E83C800082A480131280013010 +S3154001890082A500161280012E010000000100000020 +S31540018910874400008D30E00B8C89A0078CA1A00212 +S31540018920128001270100000010800068010000004C +S3154001893080A1A00312800065A6100000A210200E9F +S31540018940A1844000A6100000A1800000A814E00008 +S31540018950AB44000001000000AC14E000010000003F +S31540018960AF44000080A5200012800115AA8D6E003B +S3154001897080A540001280011280A5A000128001103E +S31540018980AF35E00BAE0DE00780A5E0011280010C8A +S3154001899001000000A0100000A1844000A6100000C4 +S315400189A0A1800000E8180000AC100000AE100000E5 +S315400189B0EC04C000EE04E00480A50016128001001C +S315400189C080A54017128000FE01000000A54400006A +S315400189D0A534A00BA40CA00780A4A001128000F826 +S315400189E001000000A0100000A1844000A610000074 +S315400189F0A1800000A210200AA1844000A41000001A +S31540018A00A1800000E8180000AC100000AE10000084 +S31540018A10EC04C012EE04E00480A50016128000E8C2 +S31540018A2080A54017128000E601000000A544000021 +S31540018A30A534A00BA40CA00780A4A002068000E0E8 +S31540018A400100000021100120A0142200EC1C0000AE +S31540018A50A0042008E81C0000A1844000A6100000E4 +S31540018A60A1800000A210200EA1844000A410001095 +S31540018A70AC100000AE100000A18000000100000013 +S31540018A8001000000EC3C8013AC100000AE10000069 +S31540018A90E81CC01280A50016128000C980A54017A7 +S31540018AA0128000C701000000A5440000A534A00BB8 +S31540018AB0A40CA00780A4A004128000C101000000FC +S31540018AC010800002010000008B4440008A09601FAB +S31540018AD080A160010280000A8C1000059DE3BFA0C1 +S31540018AE08AA1600116BFFFFE0100000081E8000077 +S31540018AF08CA1A00116BFFFFE01000000010000008D +S31540018B0001000000A023A080A02C20078E10001099 +S31540018B10A3480000E2240000C2242004C43C2008EB +S31540018B20C83C2010CC3C2018F03C2020F43C2028A6 +S31540018B30F83C2030FC3C2038D03C2040D43C2048F6 +S31540018B40D83C2050DC3C2058A5500000E42420604D +S31540018B5080102008821020018410200286102003F4 +S31540018B60881020048A1020058C1020068190000070 +S31540018B70A42C601F818C80000100000001000000D0 +S31540018B800100000003004040821061018410000092 +S31540018B9086100000894440008809201F8610000481 +S31540018BA0A010000284004002A2100002840040028C +S31540018BB0A410000284004002A61000028400400274 +S31540018BC0A810000284004002AA100002840040025C +S31540018BD0AC10000284004002AE1000028400400244 +S31540018BE0901000028400400292100002840040026C +S31540018BF09410000284004002961000028400400254 +S31540018C0098100002840040029A100002840040023B +S31540018C109C100002840040029E1000028400400223 +S31540018C2081E0000086A0E00116BFFFDE01000000E2 +S31540018C300300404082106101841000008610000448 +S31540018C4080A400021280003F8400400280A44002BA +S31540018C501280003C8400400280A4800212800039C8 +S31540018C608400400280A4C002128000368400400283 +S31540018C7080A50002128000338400400280A5400294 +S31540018C80128000308400400280A580021280002DAF +S31540018C908400400280A5C0021280002A840040025E +S31540018CA080A20002128000278400400280A2400276 +S31540018CB0128000248400400280A28002128000219A +S31540018CC08400400280A2C0021280001E840040023D +S31540018CD080A300021280001B8400400280A3400250 +S31540018CE0128000188400400280A380021280001581 +S31540018CF08400400280A3C002128000128400400218 +S31540018D0081E0000086A0E00116BFFFCE0100000011 +S31540018D1080A020001280000B80A0FFFF1280000976 +S31540018D2080A160051280000780A1A006128000057F +S31540018D3001000000A010000710800006C02420207A +S31540018D40A01000079010200110800002D02420209E +S31540018D5082100007C40040008188800001000000A5 +S31540018D600100000001000000C4186008C818601026 +S31540018D70CC186018F0186020F4186028F818603094 +S31540018D80FC186038D0186040D4186048D818605034 +S31540018D90DC186058E4006060C20060048194800081 +S31540018DA0010000000100000001000000A0100007C2 +S31540018DB0F004202081C7E00881E8000010BFFFFCD5 +S31540018DC0B01000000100000081D8200081C3E008F6 +S31540018DD0010000000328000084106004952AA00DBC +S31540018DE0D0204000922270009202400AD220800098 +S31540018DF081C3E0080100000003100124C400619C06 +S31540018E0003100124C200618C852A4002861020018C +S31540018E108328C00182007FFF900A000190008008EC +S31540018E208213C0007FFFE74C9E1040000100000006 +S31540018E3003100124C400619C03100124C200618C0B +S31540018E40852A4002861020018328C00182007FFFC7 +S31540018E50900A0001900080088213C0007FFFE73A24 +S31540018E609E104000010000009DE3BFA02D1001248B +S31540018E70C205A190A410001880A0600004800020C3 +S31540018E80B01020012F1001242B100124D005E19CA4 +S31540018E9029100124AC15A190AE15E19CAA15618C4F +S31540018EA0A815217CA0102000A2102000A6102001A8 +S31540018EB0C2054000832CC00182007FFF820C8001E5 +S31540018EC0912C00087FFFE72090020001C2050000B7 +S31540018ED0901A0012820A000180A00001C20580009A +S31540018EE0A2647FFFA004200180A0401034BFFFF19F +S31540018EF0D005C00080A00011B0603FFF81C7E008E7 +S31540018F0081E800009DE3BFA003100124C400619CD9 +S31540018F1003100124C200618CB32E4002841020014B +S31540018F208328800182007FFF820E00019210001A81 +S31540018F307FFFE70B9006400181C7E00881E800000A +S31540018F409DE3BFA003100124C400619C03100124CA +S31540018F50C200618CB32E4002841020018328800117 +S31540018F6082007FFF820E00019210001A7FFFE6F811 +S31540018F709006400181C7E00881E800000310012402 +S31540018F80C400618403100124C2006180852A400225 +S31540018F90861020018328C00182007FFF900A0001CC +S31540018FA0900080088213C0007FFFE6E39E104000D8 +S31540018FB0010000009DE3BFA003100124C4006184A9 +S31540018FC003100124C2006180B32E400284102001A7 +S31540018FD08328800182007FFF820E00019210001AD1 +S31540018FE07FFFE6D79006400181C7E00881E800008F +S31540018FF09DE3BFA003100124C40061840310012432 +S31540019000C2006180B32E4002841020018328800172 +S3154001901082007FFF820E00019210001A7FFFE6C494 +S315400190209006400181C7E00881E800000310012451 +S31540019030C400618403100124C2006180852A400274 +S31540019040861020018328C00182007FFF900A00011B +S31540019050900080088213C0007FFFE6B39E10400057 +S3154001906001000000033FFFBF821063089DE38001BA +S315400190700310004A82106060C227BFEC0310004A09 +S31540019080821060A02F10004AC227BFF4AE15E040FF +S315400190903510004AEE27BFE8B416A080901020068E +S315400190A07FFFA059F427BFF07FFFE69B9010200079 +S315400190B0213FFFBF920A3FF0A01423689010200081 +S315400190C07FFFE697A0078010230000307FFFE692DE +S315400190D090102000808A001112BFFFFD01000000A0 +S315400190E081D82000230000307FFFE68B90102000BE +S315400190F0808A001112BFFFFD0100000023100124E8 +S315400191007FFFE6859010200013002040A410000840 +S315400191109212600F921200097FFFE68190102000A3 +S315400191207FFFE67D90102008D02461787FFFE67AA4 +S315400191309010200C09100124C40461789938A014B8 +S3154001914013100124980B200F8603200AC621218083 +S31540019150091001240310012496102400C6212184FC +S31540019160893A20148809200F9401200AD422618C5F +S31540019170131001242D100124D0206188D422619C32 +S3154001918015100124932AC004833A2018D222A198AB +S315400191901510012482086003820060011B20000033 +S315400191A08801200837100124C225A190920120028E +S315400191B0821020019328400992234009D222A17CA2 +S315400191C01510012487284003913A20109A23400321 +S315400191D0992AC00CDA26E194D822A174A20A200762 +S315400191E08738A018A93CA00CBA210011A408E003B5 +S315400191F08538A010A88D2003AA08A007A404A001C1 +S31540019200AB284015A3284011AB28401590100017F4 +S31540019210AA057FFFA610200002800123B807BFE8F8 +S31540019220A6042020030048D182106167C224C000F1 +S3154001923003226AF3821061EFC2242024C20C20204B +S3154001924080A0600102800004010000007FFF9FF5BD +S315400192509010201AC20C202180A0602302800004B5 +S31540019260010000007FFF9FEF9010201BC20C2022BF +S3154001927080A0604502800004010000007FFF9FE955 +S315400192809010201CC20C202380A06067028000043D +S31540019290010000007FFF9FE39010201DC20C202497 +S315400192A080A0608902800004010000007FFF9FDDED +S315400192B09010201EC20C202580A060AB02800004C5 +S315400192C0010000007FFF9FD79010201FC20C20266F +S315400192D080A060CD02800004010000007FFF9FD185 +S315400192E090102020C20C202780A060EF028000044D +S315400192F0010000007FFF9FCB90102021C214202047 +S31540019300832860108330601080A0612302800004AE +S31540019310010000007FFF9FC390102022C414202229 +S315400193208528A010030000118530A01082106167C6 +S3154001933080A0800102800004010000007FFF9FB9E8 +S3154001934090102023C41420248528A0100300002255 +S315400193508530A010821061AB80A08001028000049C +S31540019360010000007FFF9FAF90102024C4142026E7 +S315400193708528A010030000338530A010821061EFCC +S3154001938080A0800102800005821020307FFF9FA5CA +S315400193909010202582102030C22C2020030C08D1A9 +S315400193A082106167C404C00080A08001028000056C +S315400193B0821020317FFF9F9B901020278210203101 +S315400193C0C22C2021030C0C5182106167C404C000D9 +S315400193D080A0800102800005821020327FFF9F918C +S315400193E09010202882102032C22C2022030C0C4CD3 +S315400193F082106267C404C00080A08001028000051B +S31540019400821020337FFF9F879010202982102033BE +S31540019410C22C2023030C0C4C82106233C404C000BE +S3154001942080A0800102800005821020347FFF9F7D4D +S315400194309010202A82102034C22C2024030D2AF3B6 +S31540019440821061EFC404202480A0800102800005BF +S31540019450821020357FFF9F739010202B821020357C +S31540019460C22C2025030D0D73821061EFC404202404 +S3154001947080A0800102800005821020367FFF9F690F +S315400194809010202C82102036C22C2026030D0D4D23 +S31540019490821062EFC404202480A08001028000056E +S315400194A0821020377FFF9F5F9010202D821020373A +S315400194B0C22C2027030D0D4D82106237C40420248F +S315400194C080A0800102800005030000107FFF9F55A8 +S315400194D09010202E0300001082106041C2342020DB +S315400194E00310104C82106233C404C00080A0800176 +S315400194F002800005030000107FFF9F4A9010202F35 +S315400195000300001082106243C2342022031010501F +S3154001951082106243C404C00080A08001028000051D +S31540019520030000117FFF9F3F901020300300001180 +S3154001953082106045C23420240311114D82106237D6 +S31540019540C404202480A0800102800005030000118C +S315400195507FFF9F3490102031030000118210624733 +S31540019560C23420260311115182106247C4042024BB +S3154001957080A0800102800004010000007FFF9F2936 +S315400195809010203281D82000C205A19080A06000B1 +S315400195900480001B80A520002510012419100124F8 +S315400195A0A414A1909813219C8810200080A46000E7 +S315400195B09B2920100480000C82102000C403000067 +S315400195C085290002840040028528A0028610400DAC +S315400195D082006001C624000280A0401132BFFFF91B +S315400195E0C4030000C20480008801200180A0400419 +S315400195F014BFFFF080A4600080A5200012800028DF +S31540019600230000107FFFE54490102000808A00115E +S3154001961012BFFFFDC205A19080A060000480001B1F +S31540019620010000002510012427100124A414A19053 +S31540019630A614E17C10800006A2102000A20460015D +S3154001964080A0401104800011010000009210001119 +S315400196507FFFFDF890100010C204C000901C000866 +S31540019660808A000132BFFFF6C20480007FFF9EED73 +S3154001967090102033C2048000A204600180A04011F2 +S3154001968014BFFFF4921000117FFFE52390102000D4 +S315400196909212200F7FFFE5229010200081C7E0083B +S315400196A091E820009FC20000A604E00180A4801337 +S315400196B004800008832CE002D00700019FC200000D +S315400196C0A604E00180A4801314BFFFFC832CE002B2 +S315400196D07FFFE51190102000B616E194920A3FFCF7 +S315400196E0A8102000901020007FFFE50DB810200043 +S315400196F0B207BFE810800005A610200080A48013A1 +S3154001970024800012A8052001921000137FFFFE4815 +S3154001971090100017820A001580A0401512BFFFF86D +S31540019720A604E001C206C000901DC008900A0001CF +S3154001973080A00008B8673FFF80A4801314BFFFF4E0 +S3154001974092100013A805200180A48014048000040F +S31540019750832D200210BFFFE8EE0640017FFFE4EEB5 +S3154001976090102000A6100008901020007FFFE4EC26 +S315400197709214E00380A720000280018301000000CB +S31540019780A73CE013808CE0031280018501000000B4 +S3154001979081D82000250000307FFFE4DF90102000B3 +S315400197A0808A001212BFFFFDAA100008C205A190CF +S315400197B080A060000480000F053FFFBF25100124F3 +S315400197C0A6102000A414A19092100013901000102E +S315400197D07FFFFDDC94102000C2048000A604E00156 +S315400197E080A0401314BFFFFA92100013053FFFBF3C +S315400197F0821020008410A36884078002C0204002A2 +S315400198008200600480A0607C12BFFFFD0100000061 +S3154001981082102005C224000082102001C2242004A7 +S3154001982082102002C224200882102003C224200C68 +S31540019830901000107FFFFD8DA804200480A2200017 +S315400198400280014A01000000C204000080A06005B8 +S3154001985002800004010000007FFF9E7290102006E6 +S315400198607FFFFD829010001080A220001280019996 +S31540019870C205A19080A06000048000120100000092 +S3154001988025100124A6102000A414A19092100013C3 +S31540019890941020007FFFFD9C901000109210001341 +S315400198A0901000147FFFFD9894102000C2048000A0 +S315400198B0A604E00180A0401314BFFFF692100013E6 +S315400198C07FFFE4AB90100010A60420207FFFE4A8A0 +S315400198D0901000137FFFE4A6900420407FFFE4A48C +S315400198E090042060C205A19080A0600004800180A0 +S315400198F0B810200025100124A414A190AE10200018 +S31540019900921000177FFFFD3D90100010C2048000A9 +S31540019910901A200580A00008AE05E001B8673FFF18 +S3154001992080A0401714BFFFF89210001780A72000AF +S315400199300280016F01000000033FFFBF8210636890 +S31540019940C41F8001C43FBFA8C207BFA880A060054D +S315400199501280000601000000C207BFAC80A0600172 +S3154001996002800005C205A1907FFF9E2E901020091E +S31540019970C205A19080A06000048000382510012412 +S31540019980B8102000A414A190AE1020009210001728 +S315400199907FFFFD1A90100014C2048000901A200126 +S315400199A080A00008AE05E001B8673FFF80A04017E0 +S315400199B014BFFFF89210001780A7200112800027DC +S315400199C0833D6013808860031280002A01000000F5 +S315400199D0C2042004C224000082102005C2240000D3 +S315400199E090102001D024200482102002C224200895 +S315400199F082102003C224200C92100011400003B3B0 +S31540019A00912A001DA52A2002032EEEEE821063BB89 +S31540019A10C22400127FFFFD159010001080A2200085 +S31540019A201280013701000000C4040012032EEEEE3D +S31540019A30A93D600C821063BB80A0800102BFFDFA84 +S31540019A40A80D2003901020127FFF9DF6A93D600CC2 +S31540019A5010BFFDF5A80D20037FFF9DF29010200A4F +S31540019A60833D60138088600302BFFFDA0100000076 +S31540019A707FFFE42990102000033FFFF08210603FF2 +S31540019A80920A00017FFFE4269010200092102000E8 +S31540019A9094102000AA07BFA87FFFFD1B9010001558 +S31540019AA07FFFE41D901020000303C00092120001C5 +S31540019AB07FFFE41B90102000C205A19080A06000AA +S31540019AC00480000F8210200125100124A8102000D7 +S31540019AD0A414A19092100014901000157FFFFD0A66 +S31540019AE094102005C2048000A805200180A04014DE +S31540019AF014BFFFFA9210001482102001C22FBFA892 +S31540019B000300400082106005C407BFA880A0800101 +S31540019B1002800004010000007FFF9DC29010200BCF +S31540019B207FFFE3FD90102000833A20068208600300 +S31540019B3080A0600102800004010000007FFF9DB902 +S31540019B409010200C7FFFE3F4901020000303C00027 +S31540019B5025000030922A00017FFFE3F1901020009A +S31540019B607FFFE3ED90102000808A001212BFFFFDB7 +S31540019B7092102000941020007FFFFCE39010001506 +S31540019B807FFFE3E5901020002503C00092120012EA +S31540019B907FFFE3E3901020007FFFE3DF901020007A +S31540019BA0808A001202BFFFFDAE100008C205A190D7 +S31540019BB080A060000480001025100124B810200107 +S31540019BC0B92F0011A414A190B8073FFFA810200097 +S31540019BD092100014901000157FFFFCDA9410001CBF +S31540019BE0C2048000A805200180A0401414BFFFFADA +S31540019BF0921000141303C00090102000922DC0094A +S31540019C007FFFE3C72503C0007FFFE3C39010200019 +S31540019C10808A001212BFFFFD01000000C407BFA8E1 +S31540019C20030040008210600580A08001028000048C +S31540019C30010000007FFF9D7B9010200D7FFFE3B662 +S31540019C4090102000833A20088208600380A06001BA +S31540019C5002800005841020117FFF9D729010200F15 +S31540019C6084102011861020559010200025000030C8 +S31540019C70C43FBFF87FFFE3A801000000033C3FFF5C +S31540019C800503C0008210633F820A00019010200044 +S31540019C907FFFE3A3921040027FFFE39F90102000D5 +S31540019CA0808A001212BFFFFDAE07BFF87FFFE3BEF9 +S31540019CB090100017C205A19080A060000480000F9B +S31540019CC00100000025100124AA07BFFCA414A1909D +S31540019CD0A810200092100014901000157FFFFC8AF6 +S31540019CE094102055C2048000A805200180A040148C +S31540019CF014BFFFFA921000147FFFE3AB90100017D8 +S31540019D0080A220110280008180A260557FFF9D457F +S31540019D10901020107FFFE38090102000833A2006A8 +S31540019D208208600380A0600102800004A41000083C +S31540019D307FFF9D3C90102010133C3FF09010200077 +S31540019D409212603F920C80097FFFE3752500003037 +S31540019D507FFFE37190102000808A001212BFFFFD41 +S31540019D60AA10000830BFFF1B7FFF9D2E90102005D3 +S31540019D70C204000080A0600512BFFEB801000000C9 +S31540019D8030BFFEB87FFF9D2790102001A73CE0130E +S31540019D90808CE00302BFFE7F010000007FFFE35E8F +S31540019DA090102000133FFFF0AA1000089212603F66 +S31540019DB0920A00097FFFE35A901020007FFFE2B12B +S31540019DC0A810001A0303C000133C3FFF9010200067 +S31540019DD0921263FC920D4009A61020007FFFE350CA +S31540019DE09212400192100013901000147FFFFC72F2 +S31540019DF094102000A604E00180A4801334BFFFFB29 +S31540019E0092100013901020001303C0007FFFE3441B +S31540019E10921540097FFFE29B010000007FFFE33E70 +S31540019E2090102000833A200A8208600380A06001D6 +S31540019E3002800005250000307FFF9CFA9010200229 +S31540019E40250000307FFFE33490102000808A001205 +S31540019E5012BFFFFD0100000001000000920A3FFC15 +S31540019E607FFFE32F901020009010001492102000E5 +S31540019E707FFFFC6094102000010000007FFFE32675 +S31540019E8090102000033C3FFF821063FC820A0001D0 +S31540019E90901020007FFFE322921060030100000032 +S31540019EA07FFFE278010000007FFFE31B9010200056 +S31540019EB0833A200C8208600380A0600102BFFE3510 +S31540019EC0010000007FFF9CD79010200330BFFE3178 +S31540019ED07FFF9CD490102007C205A19080A060000E +S31540019EE034BFFE692510012430BFFE767FFF9CCD2D +S31540019EF09010200810BFFE92033FFFBF7FFF9CC911 +S31540019F009010201130BFFEC912BFFF810100000031 +S31540019F1030BFFF819DE3BFA07FFFFC5301000000DE +S31540019F2013002040B01000089212600F7FFFE2FC40 +S31540019F309010200081C7E00881E800009DE3BFA0A2 +S31540019F407FFF9CAA1100412C82102007EC062004B9 +S31540019F50E0062004C2262008AC0DA003AC05A001F2 +S31540019F6001000000C02600007FFF9CA79010200A38 +S31540019F700300020084103FFFB8060001C426000119 +S31540019F80A13C2002292AAAAAA00C27FFA81522AA89 +S31540019F902B155555A12C2008AA1561558810001C72 +S31540019FA0C2060001A8084014AA0840159A102000CC +S31540019FB080A420002280000D9A03600186012020A2 +S31540019FC08410000482102000EA208000E820C000AE +S31540019FD0820060108400A04080A0401006BFFFFBB5 +S31540019FE08600E0409A03600180A5800D14BFFFF111 +S31540019FF0880120043B000200AE102000BA17602001 +S3154001A000BA06001D80A4200022800017AE05E0019B +S3154001A010A610001CA410001DA2102000C204C000FE +S3154001A02080A0401502800004010000007FFF9C7D56 +S3154001A03090102001C204800080A0401422800005B7 +S3154001A040A20460107FFF9C7790102001A20460104B +S3154001A050A604E04080A4401006BFFFF1A404A0403E +S3154001A060AE05E00180A5801714BFFFE7BA0760047B +S3154001A0707FFF9C659010200C2F0008001B1555553D +S3154001A080AE060017092AAAAA9A136155881122AA6F +S3154001A09098100017961020001500020080A4200099 +S3154001A0A02280000D9602E001860320048410000CF4 +S3154001A0B082102000DA208000C820C00082006002A1 +S3154001A0C08400A00880A0401006BFFFFB8600E00880 +S3154001A0D09602E00180A5800B14BFFFF19803000AA8 +S3154001A0E02B155555292AAAAAAA156155A81522AA9A +S3154001A0F0BA1020003900020080A4200022800017F7 +S3154001A100BA076001A605E004A4100017A2102000BA +S3154001A110C204800080A040150280000401000000B6 +S3154001A1207FFF9C4090102003C204C00080A04014D1 +S3154001A13022800005A20460027FFF9C3A9010200312 +S3154001A140A2046002A404A00880A4401006BFFFF147 +S3154001A150A604E008BA07600180A5801D14BFFFE789 +S3154001A160AE05C01C2F0008001B155555AE15E00461 +S3154001A170092AAAAAAE0600179A136155881122AA7E +S3154001A18098100017961020001500020080A42000A8 +S3154001A1902280000D9602E00186033FFC8410000CEC +S3154001A1A082102000DA208000C820C00082006002B0 +S3154001A1B08400A00880A0401006BFFFFB8600E0088F +S3154001A1C09602E00180A5800B14BFFFF19803000AB7 +S3154001A1D02B155555292AAAAAAA156155A81522AAA9 +S3154001A1E0BA1020003900020080A420002280001706 +S3154001A1F0BA076001A605FFFCA4100017A2102000B3 +S3154001A200C204800080A040150280000401000000C5 +S3154001A2107FFF9C0490102004C204C00080A040141B +S3154001A22022800005A20460027FFF9BFE901020045D +S3154001A230A2046002A404A00880A4401006BFFFF156 +S3154001A240A604E008BA07600180A5801D14BFFFE798 +S3154001A250AE05C01C82102005C2262008032000003E +S3154001A260C226000081C7E00881E80000033FFFBF26 +S3154001A270821063609DE380017FFFFAD425200000B0 +S3154001A2804000016E2D0000307FFFE2239010200830 +S3154001A290AA1000087FFFE2209010200C7FFF9BFD53 +S3154001A2A0AE100008912A20047FFF9BD79002200C14 +S3154001A2B082102001873D60148608E00F8600E00A7F +S3154001A2C0A73D6010A13D6018853DE014A60CE0074E +S3154001A2D08408A00FA604E0028400A00AA728401320 +S3154001A2E0A00C2003A93DE010A0042001A80D2007E1 +S3154001A2F0A12C0003A8052002AA2480108604FFFF92 +S3154001A300A9284014A33DE01882053FFFA20C600333 +S3154001A310A2046001AA154003A32C4002A424801183 +S3154001A320A41480017FFFE1FC90102000808A001672 +S3154001A33012BFFFFD133FFFBF90100011921263C081 +S3154001A34015155555920780097FFFE1869412A1554F +S3154001A35080A220001280007001000000133FFFBF61 +S3154001A36090100011921263C0152AAAAA9207800979 +S3154001A3707FFFE1909412A2AA80A22000128000637E +S3154001A380010000007FFF9BC301000000912A2004C9 +S3154001A3907FFF9B9D9002200A40000125010000009D +S3154001A3A0032AAAAA981062AA82106200901000118C +S3154001A3B0920C8001941000127FFFE1A796100014C1 +S3154001A3C080A220001280004D010000000315555562 +S3154001A3D0981061558210610090100011941000127E +S3154001A3E0961000147FFFE19C920C800180A2200010 +S3154001A3F01280003F010000007FFF9BA60100000084 +S3154001A400912A20047FFF9B809002200B9010001020 +S3154001A410131555557FFFE1779212615580A22000B1 +S3154001A4201280002F0100000090100010132AAAAAE2 +S3154001A4307FFFE170921262AA80A22000128000255D +S3154001A440010000007FFF9B9301000000912A200438 +S3154001A4507FFF9B6D9002200990100010921000150D +S3154001A46094100013172AAAAA7FFFE16E9612E2AA58 +S3154001A47080A22000128000130100000090100010FD +S3154001A4809210001594100013171555557FFFE1657D +S3154001A4909612E15580A220000280000401000000CE +S3154001A4A07FFF9B60901020087FFFFA48B010200084 +S3154001A4B0400000E20100000081C7E00881E8000099 +S3154001A4C07FFF9B589010200710BFFFEE90100010A1 +S3154001A4D07FFF9B549010200630BFFFDB7FFF9B51CF +S3154001A4E09010200510BFFFD2901000107FFF9B4DAA +S3154001A4F09010200430BFFFC17FFF9B4A901020037C +S3154001A50010BFFFB4031555557FFF9B46901020029F +S3154001A51030BFFF9D7FFF9B439010200110BFFF91ED +S3154001A520133FFFBF81C3E008914440008080000093 +S3154001A530151001209412A1EC901020009210224691 +S3154001A54081800000010000000100000001000000C0 +S3154001A550D00280009122400881C3E008010000003A +S3154001A56081800000901020018090200180F0200120 +S3154001A5701280004B010000000100000001000000B4 +S3154001A580010000008090200180F8200112800044E3 +S3154001A5900100000001000000010000000100000070 +S3154001A5A08090200180FA3FFF010000001680003CA8 +S3154001A5B00100000001000000010000000100000050 +S3154001A5C08180000090102001809020010100000050 +S3154001A5D080D02001128000320100000001000000FD +S3154001A5E0010000000100000080D220010280002C01 +S3154001A5F00100000080D23FFF1680002901000000C3 +S3154001A60080DA3FFF9340000080A27FFF1280002442 +S3154001A6100100000080D23FFF93480000933260144E +S3154001A620920A600F80A260081280001D010000009E +S3154001A6308180000090102001945220049452A0047D +S3154001A6409452A00496A2A040128000150100000079 +S3154001A650818000009010200280A00000328000100E +S3154001A6609052000880A220021280000D01000000D5 +S3154001A670818000009010200280A0000001000000AF +S3154001A680328000079052000880A220021280000406 +S3154001A6900100000081C3E0089010200181C3E00859 +S3154001A6A0901000001315555592126155A582400030 +S3154001A6B001000000010000000100000095448000F7 +S3154001A6C080A2400A1280004301000000923A4000F5 +S3154001A6D0A5824000010000000100000001000000C9 +S3154001A6E09544800080A2400A1280003A0100000091 +S3154001A6F01100003F901223FFA580000081800000D9 +S3154001A70001000000010000000100000093F23FFF3C +S3154001A7109A10000993F23FFF93F23FFF93F23FFFF6 +S3154001A72093F23FFF93F23FFF93F23FFF93F23FFFD6 +S3154001A7309940000097448000153FFC009412A00800 +S3154001A74080A2400A1280002380A2400B1280002181 +S3154001A75080A320071280001F113FFF809012200125 +S3154001A76080A340081280001B1100003F901223FF76 +S3154001A770A58000008180000001000000010000006A +S3154001A7800100000093FA3FFF93FA3FFF93FA3FFF20 +S3154001A79093FA3FFF93FA3FFF93FA3FFF93FA3FFF46 +S3154001A7A093FA3FFF994000009744800080A26008D9 +S3154001A7B01280000880A260081280000680A3200053 +S3154001A7C0128000040100000081C3E00890102001BE +S3154001A7D081C3E008901000008180000090102002A3 +S3154001A7E080A00000328000109072000880A22002F2 +S3154001A7F01280000D010000008180000090102002AF +S3154001A80080A000000100000032800007907200081D +S3154001A81080A22002128000040100000081C3E008EA +S3154001A8209010200181C3E00890100000C0A00040B4 +S3154001A83081C3E00801000000110020409012200F62 +S3154001A840D0A0004081C3E008010000009DE3BFA005 +S3154001A8507FFFE0B190102008A21000087FFFE0AE14 +S3154001A8609010200CA0100008C0A00040833C60144A +S3154001A8708208600F8200600A913C6018900A2003AA +S3154001A880900220017FFFE01B912A0001833C2014A6 +S3154001A8908208600F8200600A913C2018900A2003CA +S3154001A8A0900220017FFFE021912A00017FFFF947B5 +S3154001A8B001000000110020409012200FD0A000405E +S3154001A8C081C7E00881E800009812000981820000F2 +S3154001A8D09AAB2FFF02800025988800009923000932 +S3154001A8E0992300099923000999230009992300090D +S3154001A8F099230009992300099923000999230009FD +S3154001A90099230009992300099923000999230009EC +S3154001A91099230009992300099923000999230009DC +S3154001A92099230009992300099923000999230009CC +S3154001A93099230009992300099923000999230009BC +S3154001A94099230009992300099923000999230009AC +S3154001A95099230009992300099923000999230000A5 +S3154001A96081C3E00891400000992300099923000919 +S3154001A970992300099923000999230009992300097C +S3154001A980992300099923000999230009992300096C +S3154001A9909923000999230009992300009B4000004F +S3154001A9A0992B200C9B33601481C3E0089013400C13 +S3154001A9B01080000B86102000809240081680000807 +S3154001A9C086100008809240001680000480920000A4 +S3154001A9D01680000392200009902000089A924000B8 +S3154001A9E0128000059610000891D0200281C3E0082C +S3154001A9F09010000080A2C00D0A80009594100000BE +S3154001AA000302000080A2C0010A80002898100000BD +S3154001AA1080A340011A80000D841020019B2B600405 +S3154001AA2010BFFFFC980320019A83400D1A8000074E +S3154001AA308400A001832860049B3360019A0340018E +S3154001AA40108000078420A00180A3400B0ABFFFF7B6 +S3154001AA5001000000028000020100000084A0A00164 +S3154001AA6006800076010000009622C00D9410200158 +S3154001AA701080000A01000000952AA0010680000509 +S3154001AA809B3360019622C00D108000049402A00100 +S3154001AA909602C00D9422A00184A0A00116BFFFF723 +S3154001AAA08092C000308000659B2B600480A3400BE0 +S3154001AAB008BFFFFE9883200102800065982320018C +S3154001AAC08092C000952AA0040680002F9B33600126 +S3154001AAD096A2C00D068000179B33600196A2C00D59 +S3154001AAE00680000B9B33600196A2C00D06800005CF +S3154001AAF09B33600196A2C00D108000509402A00FB6 +S3154001AB009682C00D1080004D9402A00D9682C00D14 +S3154001AB10068000059B33600196A2C00D1080004758 +S3154001AB209402A00B9682C00D108000449402A009A5 +S3154001AB309682C00D0680000B9B33600196A2C00D24 +S3154001AB40068000059B33600196A2C00D1080003B34 +S3154001AB509402A0079682C00D108000389402A00589 +S3154001AB609682C00D068000059B33600196A2C00DFA +S3154001AB70108000329402A0039682C00D1080002FEF +S3154001AB809402A0019682C00D068000179B33600196 +S3154001AB9096A2C00D0680000B9B33600196A2C00DA4 +S3154001ABA0068000059B33600196A2C00D10800023EC +S3154001ABB09402BFFF9682C00D108000209402BFFD13 +S3154001ABC09682C00D068000059B33600196A2C00D9A +S3154001ABD01080001A9402BFFB9682C00D10800017A8 +S3154001ABE09402BFF99682C00D0680000B9B3360012B +S3154001ABF096A2C00D068000059B33600196A2C00D4A +S3154001AC001080000E9402BFF79682C00D1080000B93 +S3154001AC109402BFF59682C00D068000059B33600104 +S3154001AC2096A2C00D108000059402BFF39682C00D16 +S3154001AC30108000029402BFF198A3200116BFFFA223 +S3154001AC408092C000268000029602C0098090C00012 +S3154001AC50268000029620000B81C3E0089010000B6D +S3154001AC6092100008941020009010200096102000A9 +S3154001AC708213C000400001E39E1040000100000025 +S3154001AC809210000803100121D00062A88213C0006F +S3154001AC90400002629E104000010000009210000830 +S3154001ACA003100121D00062A88213C00040000003B6 +S3154001ACB09E104000010000009DE3BFA084102000CB +S3154001ACC08206600B80A0601608800004A010201048 +S3154001ACD0A0087FF88534201F80A400190A80004609 +S3154001ACE08088A0FF1280004401000000400001AFAF +S3154001ACF09010001880A421F7188000418334200960 +S3154001AD0023100120A214622082044010E400600C4A +S3154001AD1080A480010280010F99342003C604A00457 +S3154001AD20C404A00CC204A0088608FFFC8604800364 +S3154001AD30C800E00488112001C220A008C820E00410 +S3154001AD40C420600C9010001840000192B004A00885 +S3154001AD5081C7E00881E80000E6046008E804E004F1 +S3154001AD60A80D3FFC8225001080A0600F148000D200 +S3154001AD7080A40014031001232F100121EA0060F87A +S3154001AD80C205E22CAA05601080A07FFF0280000464 +S3154001AD90AA054010AA056FFFAA0D70009010001871 +S3154001ADA0400001889210001580A23FFF02800009F1 +S3154001ADB0A41000088404C01480A08008088000EC18 +S3154001ADC02D10012380A44013028000EAC205A1048C +S3154001ADD0C2046008C40060048408BFFC822080105D +S3154001ADE080A0600F1480012280A400024000016906 +S3154001ADF09010001881C7E00891E82000993420039B +S3154001AE0080A060000280000F872B200380A0600491 +S3154001AE1008800092993420069800605B80A06014F7 +S3154001AE2008800008872B200380A0605418800113F6 +S3154001AE3080A061549934200C9803206E872B2003FF +S3154001AE4023100120A214622086044003E400E00C92 +S3154001AE5080A0C0123280000BC404A00410800010F0 +S3154001AE609803200136800068C604A00CE404A00CB7 +S3154001AE7080A0C0122280000A98032001C404A004C5 +S3154001AE808408BFFC8220801080A0600F04BFFFF6BB +S3154001AE9080A0600098033FFF98032001071001201E +S3154001AEA08610E228E400E00880A0C0122280002A31 +S3154001AEB0C2046004C404A0048408BFFC822080103C +S3154001AEC080A0600F1480008A80A06000C620E00C3C +S3154001AED016800059C620E00880A0A1FF28800062A4 +S3154001AEE08530A0038330A00980A06004188000E962 +S3154001AEF08800605B8930A006880120389B292003A1 +S3154001AF009A04400DC203600880A0400D32800008BB +S3154001AF10C8006004108000E9DA04600480A340019F +S3154001AF2022800008C400600CC800600488093FFC08 +S3154001AF3080A080042ABFFFFAC2006008C400600CEA +S3154001AF40C424A00CC224A008E420600CE420A0087C +S3154001AF50C2046004853B2002881020018929000231 +S3154001AF6080A040042ABFFF7EE60460088088400432 +S3154001AF702280004B980B3FFC952B20039610000C2A +S3154001AF809404400A9A10000AE403600C80A340121C +S3154001AF903280000BC404A004108000589602E001E0 +S3154001AFA036800019C604A00CE404A00C80A340120C +S3154001AFB0228000529602E001C404A0048408BFFC2A +S3154001AFC08220801080A0600F04BFFFF680A0600041 +S3154001AFD0DA04A00CC804A00884048010A01420013F +S3154001AFE0C8236008DA21200CC420E00CC420E00804 +S3154001AFF0E024A004C2208001C620A00810800010D1 +S3154001B000C620A00CC204A00884048002C800A00483 +S3154001B01088112001C220E008C820A004C620600C87 +S3154001B02090100018400000DBB004A00881C7E0087A +S3154001B03081E8000084048002C200A00482106001FD +S3154001B040C220A00490100018400000D2B004A0080D +S3154001B05081C7E00881E800009803203810BFFF79D6 +S3154001B060872B20038928A00388044004DA0120089D +S3154001B070D6046004C824A00CDA24A0088538A002AE +S3154001B08082102001E423600C83284002E421200839 +S3154001B0908210400B10BFFFB0C224600489292001F1 +S3154001B0A08088400402BFFFFE9803200410BFFFB40E +S3154001B0B0952B200338BFFF3103100123E4046008B8 +S3154001B0C084048010A014200182106001E024A004B1 +S3154001B0D0C220A00490100018C4246008400000ADAE +S3154001B0E0B004A00881C7E00881E80000840480100C +S3154001B0F010BFFFBEA0142001808AE00312BFFFA348 +S3154001B1009A04A008808B20030280009C8202BFF82B +S3154001B110D400600880A2800122BFFFFB98033FFF55 +S3154001B120C20460048929200180A1000118BFFF0BD8 +S3154001B13080A1200022BFFF0AE60460088089000141 +S3154001B140228000928929200110BFFF8C9810000BA4 +S3154001B1508204A008E400600C80A0401202BFFF50A8 +S3154001B1609803200210BFFEEFC604A004C205A10445 +S3154001B1708205400180A0801202800067C225A10499 +S3154001B180C605E22C80A0FFFF2280006B031001213F +S3154001B1908204800184204002C425A104848CA00736 +S3154001B1A0028000060300000482102008822040022B +S3154001B1B0A404800182207000AA0480159010001812 +S3154001B1C0AA0D6FFFAA2040154000007E921000157F +S3154001B1D080A23FFF02800060841020018422001279 +S3154001B1E0840080158410A001C205A1048205400196 +S3154001B1F0C225A104C424A00480A4401302800010E7 +S3154001B200E424600880A5200F0880003A84053FF4B5 +S3154001B2108408BFF88604C002C804E00488092001F6 +S3154001B22088108004C824E00488102005C820E0085E +S3154001B23080A0A00F18800042C820E0040510012319 +S3154001B240C600A0FC80A0400338800002C220A0FCBA +S3154001B25005100123C600A10080A0400338BFFEDDD2 +S3154001B260C220A10010BFFEDCC204600828BFFF95C2 +S3154001B270E404600830BFFEDE1880001780A06554E4 +S3154001B2809934200F9803207710BFFEEE872B2003B9 +S3154001B29080A0601408BFFF1B9B29200380A0605437 +S3154001B2A01880001780A061548930A00C8801206E57 +S3154001B2B010BFFF149B2920038939200284102001E5 +S3154001B2C08528800484134002C424600410BFFF1DF6 +S3154001B2D084100001861023F018BFFEDA9810207EF4 +S3154001B2E0993420129803207C10BFFED6872B200369 +S3154001B2F08210200110BFFEB7C224A0041880001896 +S3154001B30080A065548930A00F8801207710BFFEFDCB +S3154001B3109B2920038088AFFF12BFFF9BC605E22C05 +S3154001B320C4046008860540148610E00110BFFFC4BE +S3154001B330C620A00410BFFF9AE420622C9204E008C4 +S3154001B340400000B6901000180310012310BFFFBC47 +S3154001B350C200610410BFFFA5AA1020009A1023F075 +S3154001B36018BFFEE88810207E8930A0128801207C13 +S3154001B37010BFFEE49B292003C204600482284004D6 +S3154001B38010BFFF68C224600410BFFF6D9602E0043F +S3154001B39011100121901222308213C000400003A1F6 +S3154001B3A09E10400001000000111001219012223030 +S3154001B3B08213C000400003859E104000010000003A +S3154001B3C09DE3BFA02110012490100019400001A85F +S3154001B3D0C02421A080A23FFF02800004C20421A014 +S3154001B3E081C7E00891E8000880A0600002BFFFFD28 +S3154001B3F001000000C226000081C7E00891E800086C +S3154001B4009DE3BFA021100123400003709014212C1D +S3154001B41003100074E20061B0D004614880A22000AC +S3154001B4202280003D9004614CC202200480A0601F2E +S3154001B4301480001E0100000080A620000280001238 +S3154001B44084006002C4022004820060228600A04279 +S3154001B450892860028728E002C2022188F42200047A +S3154001B460F6220003861020018728C002821040037D +S3154001B470C222218880A62002028000198210000281 +S3154001B480840060028528A00282006001C222200455 +S3154001B490F2220002B0102000400003629014212CD9 +S3154001B4A081C7E00881E800007FFFFDFD90102190F3 +S3154001B4B080A220002280001A9014212CC2046148E7 +S3154001B4C0C2220000D0246148C0222004C022218823 +S3154001B4D0C022218C10BFFFD982102000C202218CCC +S3154001B4E08610400382100002840060028528A00273 +S3154001B4F0C622218C82006001F2220002C22220046F +S3154001B500B0102000400003479014212C81C7E00869 +S3154001B51081E8000010BFFFC5D024614840000341C7 +S3154001B520B0103FFF81C7E00881E800009DE3BFA05E +S3154001B5307FFFFF9E9010001821100120A0142220A9 +S3154001B540C2042008E2006004A20C7FFC82046FEF73 +S3154001B550B2204019B20E7000B206700080A66FFF8D +S3154001B56004800009901000187FFFFF96921020007A +S3154001B570C20420088200401180A200010280000717 +S3154001B58090100018901000187FFFFF82B010200025 +S3154001B59081C7E00881E800007FFFFF8A92200019F9 +S3154001B5A080A23FFF0280000EA2244019C404200855 +S3154001B5B0A214600103100123E220A0049010001898 +S3154001B5C0B0102001C4006104B22080197FFFFF71D1 +S3154001B5D0F220610481C7E00881E80000901000185C +S3154001B5E07FFFFF7892102000C204200884220001C8 +S3154001B5F080A0A00F04BFFFE407100121C600E22C82 +S3154001B60090220003071001238410A001D020E104F9 +S3154001B61010BFFFDDC42060049DE3BFA080A660008B +S3154001B62002800050010000007FFFFF60901000186B +S3154001B63084067FF8D800A004820B3FFE0910012042 +S3154001B6408600800188112220DA00E004D601200814 +S3154001B65080A2C003028000639A0B7FFCDA20E004DB +S3154001B660808B20011280000E98102000D8067FF8AA +S3154001B6708420800C8200400CD600A0089801200846 +S3154001B68080A2C00C0280000698102001D400A00CB4 +S3154001B690D422E00C98102000D622A0089600C00DB6 +S3154001B6A0D602E004808AE0013280000A86106001F9 +S3154001B6B080A320000280002D8200400DDA00E008C0 +S3154001B6C0C600E00CC623600CDA20E0088610600153 +S3154001B6D0C220800180A3200012800020C620A00441 +S3154001B6E080A061FF28800030833060038730600985 +S3154001B6F080A0E004188000529800E05B9930600613 +S3154001B700980320389B2B20039A01000DC60360083D +S3154001B71080A0C00D32800008C800E00410800052AD +S3154001B720DA01200480A3400322800008C200E00C15 +S3154001B730C800E00488093FFC80A040042ABFFFFA04 +S3154001B740C600E008C200E00CC220A00CC620A0083A +S3154001B750C420E00CC42060087FFFFF0E81E8000092 +S3154001B76081C7E00881E80000DA00E00817100120EF +S3154001B7709612E22880A3400B32BFFFD3C600E00CED +S3154001B780C423600CC4236008C2208001DA20A008CB +S3154001B79082106001DA20A00CC220A0047FFFFEFDCA +S3154001B7A081E800008728600386010003DA00E0088B +S3154001B7B0C620A00CDA20A008D8012004C423600CBE +S3154001B7C0C420E00883386002841020018328800168 +S3154001B7D082130001C22120047FFFFEEE81E80000B2 +S3154001B7E0808B20011280000982034001D8067FF830 +S3154001B7F08420800CDA00A00CC600A0088200400C10 +S3154001B800C6236008DA20E00CC421200886106001B6 +S3154001B810C620A00405100121C400A22880A0400230 +S3154001B8200ABFFFCE03100123D20060F87FFFFF401D +S3154001B830901000187FFFFED781E8000080A0E01439 +S3154001B84008BFFFB29B2B200380A0E0541880000D57 +S3154001B85080A0E1549930600C9803206E10BFFFAB75 +S3154001B8609B2B2003993B2002821020018328400C08 +S3154001B87082134001C221200410BFFFB4821000038D +S3154001B8801880000680A0E5549930600F9803207710 +S3154001B89010BFFF9E9B2B20039A1023F018BFFF9BDE +S3154001B8A09810207E993060129803207C10BFFF9734 +S3154001B8B09B2B20039DE3BFA080A620000280001F92 +S3154001B8C003100121E406214880A4A000228000142F +S3154001B8D0C206203CC204A004A0807FFF2C80000C3D +S3154001B8E0E4048000A2006001A32C6002A20480113E +S3154001B8F0C20440009FC04000A2047FFCA0843FFFD9 +S3154001B9003CBFFFFDC2044000E404800080A4A000C7 +S3154001B91032BFFFF2C204A004C206203C80A06000F0 +S3154001B92002800004010000009FC0400090100018F2 +S3154001B93081C7E00881E8000010BFFFE3F00062A87C +S3154001B9409DE3BFA0D206400080A2600002800004B1 +S3154001B950010000007FFFFFFB901000187FFFFF2FC3 +S3154001B96081E80000010000009DE3BFA00310012112 +S3154001B970C20062A880A600010280003201000000D8 +S3154001B980D206204C80A2600022800016E0062148A3 +S3154001B990A2102000E002401180A420002280000B6A +S3154001B9A0A204600492100010901000187FFFFF1B44 +S3154001B9B0E004000080A4200012BFFFFC921000109A +S3154001B9C0D206204CA204600480A4603C32BFFFF33F +S3154001B9D0E00240117FFFFF1190100018E006214858 +S3154001B9E080A420002280000ED2062054A206214CBB +S3154001B9F080A400112280000AD20620549210001021 +S3154001BA00901000187FFFFF05E004000080A440105D +S3154001BA1012BFFFFC92100010D206205480A2600093 +S3154001BA2022800005C20620387FFFFEFC90100018D8 +S3154001BA30C206203880A0600032800004C206203C45 +S3154001BA4081C7E00881E800009FC0400090100018BF +S3154001BA50F20622E080A6600002BFFFFA0100000064 +S3154001BA607FFFFFB881E800000100000005100124B6 +S3154001BA70C200A1A480A06000228000060310012418 +S3154001BA8090004008D020A1A481C3E0089010000195 +S3154001BA90821061B890004008C220A1A4D020A1A480 +S3154001BAA081C3E00890100001A7500000AE100001CC +S3154001BAB08334E00129100123E805203CA92CC01458 +S3154001BAC08215000181E000008190400001000000E4 +S3154001BAD00100000001000000E03BA000E43BA0089B +S3154001BAE0E83BA010EC3BA018F03BA020F43BA0287B +S3154001BAF0F83BA030FC3BA03881E8000082100017DB +S3154001BB0081C4400081CC800001000000010000009A +S3154001BB1001000000A7500000A92CE0012B100123D1 +S3154001BB20EA05603CAB34C015AA1540148195400026 +S3154001BB3001000000010000000100000081E8000052 +S3154001BB4081E80000E01BA000E41BA008E81BA01050 +S3154001BB50EC1BA018F01BA020F41BA028F81BA0305A +S3154001BB60FC1BA03881E0000081E0000081C4400058 +S3154001BB7081CC8000A750000029100071ADC520B8C6 +S3154001BB800100000027100123A614E01CE024C00098 +S3154001BB90818C20200100000001000000010000000E +S3154001BBA09DE3BFA09DE3BFA09DE3BFA09DE3BFA0D2 +S3154001BBB09DE3BFA09DE3BFA09DE3BFA081E8000038 +S3154001BBC081E8000081E8000081E8000081E800008A +S3154001BBD081E8000081E8000027100123A614E01C3B +S3154001BBE0C024C000E203A068A4046004E223A06468 +S3154001BBF0E423A06810800257AC10000029100123ED +S3154001BC00A8152000C2252000C8252004E0252010C3 +S3154001BC10E2252014E4252018E825201C81E80000AF +S3154001BC208348000082106F00818860200100000077 +S3154001BC30010000000100000009100123C801203C59 +S3154001BC4081E000008821200180A920FF02800003B5 +S3154001BC50010000000100000080A1000012BFFFF9B1 +S3154001BC600100000009100123C801203C81E80000C1 +S3154001BC7080A920FF028000030100000001000000AE +S3154001BC808821200180A1000012BFFFF901000000B8 +S3154001BC9081E0000029100123A8152000C8052004D1 +S3154001BCA0C2052000E0052010E2052014E405201815 +S3154001BCB0C025201C818C20000100000001000000ED +S3154001BCC00100000081C4800081CCA004A0142F0093 +S3154001BCD0818C00000100000001000000010000000D +S3154001BCE081C4800081CCA00480A660021280000538 +S3154001BCF0A8142F00818D0000B01420203080001F31 +S3154001BD0080A6600312800006A80E2F00AA2C2F00E1 +S3154001BD10A8154014818D00003080001880A660046B +S3154001BD2012800008A9480000A8152040818D000016 +S3154001BD300100000001000000010000003080000FFA +S3154001BD4080A6600512800008A9480000A82D204061 +S3154001BD50818D00000100000001000000010000008B +S3154001BD603080000680A660061280000301000000B4 +S3154001BD7030BFFFA391D0200081C4800081CCA004B4 +S3154001BD809210200381C3E00891D020029210200234 +S3154001BD9081C3E00891D020029210200681C3E008B9 +S3154001BDA091D0200281C3E0080100000081C3E00870 +S3154001BDB00100000081C3E00801000000AE25A0108B +S3154001BDC0A75000002D10006FAC15A1D029100071AD +S3154001BDD081C5226001000000111001239012202824 +S3154001BDE0D202000092026001D2220000932DE008A7 +S3154001BDF0902C2F009212000911100123901220203D +S3154001BE00D002000080A000082280000292126F003A +S3154001BE10818A60200100000001000000010000004D +S3154001BE2090100017400000379203A06092142F0033 +S3154001BE30818A60200100000001000000010000002D +S3154001BE401110012390122028D20200009222600193 +S3154001BE50D222000010800222AC1000009DE3BFA058 +S3154001BE601B100123892E60029A1361A080A6601FD0 +S3154001BE708210200014800017C6034004B32E6004CC +S3154001BE801910012380A0E000981322200280000DA2 +S3154001BE908406400C80A0C002128000068210000376 +S3154001BEA01080000EC206400C2280000CC206400CD7 +S3154001BEB0C200600C80A0600012BFFFFC80A0800120 +S3154001BEC0C4234004F026400CC620A00C821020005A +S3154001BED081C7E00891E80001F026400C81C7E008DF +S3154001BEE091E80001912A200203100123821061A0EA +S3154001BEF0C4004008C422600C81C3E008D220400837 +S3154001BF009DE3BFA0051001238210A02CC20060044E +S3154001BF1080A0401822800040C400A02C80A62000AA +S3154001BF2022800002B0100001A32E2002031001233B +S3154001BF30821061A0E000401180A4200002800034FC +S3154001BF40291001242D1001242B100124271001242E +S3154001BF50A8152020AC15A0A4AA1560A81080001D24 +S3154001BF60A614E024A41000138400A001C424801167 +S3154001BF70C405800080A0A00022800006D2042008CB +S3154001BF809FC0800001000000C2040000D2042008C6 +S3154001BF90901000189FC0400094100019C20540003F +S3154001BFA080A0600022800005C20480119FC040002D +S3154001BFB001000000C204801182007FFFC22480116B +S3154001BFC0E004200C80A42000028000110100000042 +S3154001BFD0C204000080A0600022BFFFFBE004200CE9 +S3154001BFE0C405000080A0A00012BFFFDFC404C01139 +S3154001BFF080A0A00002BFFFDDA4100013E004200CC6 +S3154001C00080A4200032BFFFF4C204000081C7E008CB +S3154001C01081E80000F000A0C010BFFFC1B00E201F94 +S3154001C0208C10000FA74800008B34E0188A09600F76 +S3154001C03080A160030280000C0B1001238A11603439 +S3154001C0400920000088112070C82140000B100123EF +S3154001C0508A1160500920000088112040C821400003 +S3154001C060108000399010200192102006400001D224 +S3154001C0700100000080A0000802800033010000009A +S3154001C080C2022010113FFC0082084008110003FC47 +S3154001C0908410400890100002921020019410200C48 +S3154001C0A0400001DB0100000080A00008028000265C +S3154001C0B001000000400001EB921000010B1001232A +S3154001C0C08A116034D2214000901000029210200162 +S3154001C0D094102011400001CE0100000080A000080C +S3154001C0E00280001901000000400001DE92100001AB +S3154001C0F0920260100B1001238A116050D221400038 +S3154001C10090100002921020019410200D400001C0B1 +S3154001C1100100000080A000080280000B0100000021 +S3154001C120400001D0921000010B1001238A11602CAE +S3154001C130D2214000D40260109532A010940AA00F7B +S3154001C140D42160049E10000681C3E008010000006E +S3154001C15003100123821060488210200191D02000F3 +S3154001C16081C3E008010000009DE3BFA00310012444 +S3154001C170C20060B08410001880A0600002800006F2 +S3154001C180B0102000901000029FC04000921000198C +S3154001C190B010000881C7E00881E800009DE3BFA018 +S3154001C1A003100124C20060B480A060000280000533 +S3154001C1B0841020009FC04000901000188410000891 +S3154001C1C081C7E00891E800029DE3BFA00310012466 +S3154001C1D0C20060BC80A0600002800005841020007F +S3154001C1E09FC04000901000188410000881C7E008E5 +S3154001C1F091E800029DE3BFA003100124C20060B88C +S3154001C20080A0600002800005841020009FC040008D +S3154001C210901000188410000881C7E00891E80002D8 +S3154001C2209DE3BFA003100124C20060C080A060004E +S3154001C23002800005841020009FC040009010001825 +S3154001C2408410000881C7E00891E800029DE3BFA081 +S3154001C25003100124C20060C480A060000280000572 +S3154001C260841020009FC040009010001884100008E0 +S3154001C27081C7E00891E800029DE3BFA003100124B5 +S3154001C280C20060C880A060000280000584102000C2 +S3154001C2909FC04000901000188410000881C7E00834 +S3154001C2A091E800029DE3BFA003100124C20060CCC7 +S3154001C2B08410001880A0600002800006B0102000A3 +S3154001C2C0901000029FC0400092100019B010000863 +S3154001C2D081C7E00881E800000100000003100070FA +S3154001C2E0821063A89FC040000100000003100000B7 +S3154001C2F08210600081984000031000718210602C0A +S3154001C3009FC0400001000000031000708210639836 +S3154001C3109FC04000010000008B4800008B3160182F +S3154001C3208A09600380A160031280000701000000B2 +S3154001C3308B4440008B31601C80A140001280000676 +S3154001C340010000007FFFFF37010000007FFF93934C +S3154001C350010000009C23A0407FFF932A01000000BA +S3154001C3608210200191D02000010000002900000424 +S3154001C370A68C001432800003A02C001491D020001A +S3154001C380818C000001000000010000000100000056 +S3154001C39081C4800081CCA00481C3E0080100000073 +S3154001C3A081C1E00801000000A74800008B34E01875 +S3154001C3B08A09600380A16003128000080100000021 +S3154001C3C021100123A0142044A2102003E2240000DE +S3154001C3D08B4440001080000821100123A014204402 +S3154001C3E0A2102002E224000021200000E6042024BD +S3154001C3F08B34E0148A09601F27100123A614E03C00 +S3154001C400CA24C0008A01600127100123A614E0381E +S3154001C410CA24C00027100123A614E0408A216002E5 +S3154001C420CA24C00081C3E0080100000081C3E008BE +S3154001C43001000000834800008330601882086003D1 +S3154001C44080A0600312800006010000008344400082 +S3154001C4500500000882284002A380400088100000A1 +S3154001C4600910007081C122DC010000009DE3BFA0DC +S3154001C4702110007423100074A0142150A21461509D +S3154001C48080A400111A80000B01000000D0040000B6 +S3154001C49080A2200002800004A00420049FC2000064 +S3154001C4A00100000080A400112ABFFFFAD004000059 +S3154001C4B081C7E00881E80000AA27A0B0E0256060B6 +S3154001C4C0E2256064E4256068C2256074C43D6078F5 +S3154001C4D0C83D6080CC3D608885400000C425606CC5 +S3154001C4E0F03D6090F43D6098F83D60A0FC3D60A849 +S3154001C4F0A8102001A92D0010808D00130280001381 +S3154001C500010000008534E00107100123C600E03C2C +S3154001C510A72CC0038414C0028408A0FF81E0000058 +S3154001C5208190A000E03BA000E43BA008E83BA010BE +S3154001C530EC3BA018F03BA020F43BA028F83BA030F0 +S3154001C540FC3BA03881E8000081C5A0089C1000157D +S3154001C550051001248410A0ACC400800080A0800096 +S3154001C56002800004010000009FC080009203A06089 +S3154001C570818C20008210200283284010051001235F +S3154001C580C400A03885304002821040028550000028 +S3154001C59080888001028000208328A00107100123A2 +S3154001C5A0C600E03C8530800382104002820860FF6D +S3154001C5B081906000C203A06C81806000F01BA09056 +S3154001C5C0F41BA098F81BA0A0FC1BA0A8C203A07452 +S3154001C5D0C41BA078C81BA080CC1BA088E003A06028 +S3154001C5E0E203A064E403A06881E80000E01BA00028 +S3154001C5F0E41BA008E81BA010EC1BA018F01BA02010 +S3154001C600F41BA028F81BA030FC1BA0381080000F9B +S3154001C61081E00000C203A06C81806000F01BA09005 +S3154001C620F41BA098F81BA0A0FC1BA0A8C203A074F1 +S3154001C630C41BA078C81BA080CC1BA088E003A060C7 +S3154001C640E203A064E403A068818C2000010000009D +S3154001C650010000000100000081C4400081CC80003F +S3154001C660AA27A0B0C2256074C43D6078C83D6080E9 +S3154001C670CC3D608885400000C425606CA81020012F +S3154001C680A92D0010808D00130280001301000000C7 +S3154001C6908534E00107100123C600E03CA72CC00306 +S3154001C6A08414C0028408A0FF81E000008190A000AC +S3154001C6B0E03BA000E43BA008E83BA010EC3BA018FF +S3154001C6C0F03BA020F43BA028F83BA030FC3BA0382F +S3154001C6D081E8000081C5A0089C10001505100124C1 +S3154001C6E08410A0ACC400800080A0800002800004B9 +S3154001C6F0010000009FC080009203A060818C200051 +S3154001C700821020028328401005100123C400A0385E +S3154001C71085304002821040028550000080888001A9 +S3154001C720028000198328A00107100123C600E03CBE +S3154001C7308530800382104002820860FF819060004C +S3154001C740C203A06C81806000C203A074C41BA078A0 +S3154001C750C81BA080CC1BA08881E80000E01BA0007C +S3154001C760E41BA008E81BA010EC1BA018F01BA0209E +S3154001C770F41BA028F81BA030FC1BA0381080000831 +S3154001C78081E00000C203A06C81806000C203A074F6 +S3154001C790C41BA078C81BA080CC1BA088818C20001C +S3154001C7A001000000010000000100000081C44000BA +S3154001C7B081CC8000821000089A1038009610200023 +S3154001C7C0912AE00598034008D40340089132A01805 +S3154001C7D080A20001328000089602E0019132A00C4D +S3154001C7E0900A2FFF80A20009028000079410000CD6 +S3154001C7F09602E00180A2E00728BFFFF3912AE005F7 +S3154001C8009410200081C3E0089010000A82100008AD +S3154001C81098102000912B20039A004008D60040082A +S3154001C8209132E01880A20009328000089803200165 +S3154001C8309132E00C900A2FFF80A2000A0280000785 +S3154001C8409610000D9803200180A3200F28BFFFF307 +S3154001C850912B20039610200081C3E0089010000B15 +S3154001C860D4022004173FFC00920A400B900A800B29 +S3154001C8709132200C921240081100003F901223F091 +S3154001C880940A8008952AA0049412800B920A400AC1 +S3154001C89081C3E008901000099DE3BFA021100074F8 +S3154001C8A0A0142138C2043FFC80A07FFF028000080B +S3154001C8B0A0043FFC9FC04000A0043FFCC20400000E +S3154001C8C080A07FFF12BFFFFC0100000081C7E00886 +S3154001C8D081E800009DE3BFA081C7E00881E8000030 +S3154001C8E00000001000000000017A5200047C0F0194 +S3154001C8F01B0C0E000000001000000018FFFE489CB3 +S3154001C9000000000800000000000000140000002C98 +S3154001C910FFFE48900000002C00410D1E2D090F1FFF +S3154001C9200000001000000044FFFE48A40000001C67 +S3154001C930000000000000001000000058FFFE48AC57 +S3154001C9400000001C00000000000000100000006C08 +S3154001C950FFFE48B40000001C00000000000000106B +S3154001C96000000080FFFE48BC0000001C00000000E3 +S3154001C9700000001400000094FFFE48C40000002C93 +S3154001C98000410D1E2D090F1F00000018000000ACCC +S3154001C990FFFE49240000004000410D1E2D46090FAF +S3154001C9A01F00000000000018000000C8FFFE4948B3 +S3154001C9B00000022400410D1E2D46090F1F000000F4 +S3154001C9C000000018000000E4FFFE4B500000023456 +S3154001C9D000410D1E2D47090F1F00000000000018E1 +S3154001C9E000000100FFFE4D680000003C00410D1EA5 +S3154001C9F02D43090F1F000000000000180000011C14 +S3154001CA00FFFE4D880000003C00410D1E2D43090FDD +S3154001CA101F0000000000001800000138FFFF35E448 +S3154001CA200000024800410D1E2D5D090F1F00000048 +S3154001CA300000001400000154FFFF3810000006906A +S3154001CA4000410D1E2D090F1F000000180000016C4A +S3154001CA50FFFF3E880000002800410D1E2D49090FA9 +S3154001CA601F0000000000001800000188FFFF3E94EF +S3154001CA700000002400410D1E2D48090F1F00000033 +S3154001CA8000000018000001A4FFFF3E9C0000009832 +S3154001CA9000410D1E2D44090F1F0000000000001823 +S3154001CAA0000001C0FFFF3F18000000FC00410D1EC1 +S3154001CAB02D46090F1F00000000000018000001DC90 +S3154001CAC0FFFF3FF8000000C400410D1E2D47090F2E +S3154001CAD01F00000000000018000001F8FFFF40A001 +S3154001CAE00000015000410D1E2D6E090F1F00000070 +S3154001CAF00000001800000214FFFF41D4000004703A +S3154001CB0000410D1E2D44090F1F00000000000018B2 +S3154001CB1000000230FFFF46280000013400410D1E8F +S3154001CB202D4A090F1F000000000000180000024CAA +S3154001CB30FFFF47400000012400410D1E2D49090F0A +S3154001CB401F0000000000001800000268FFFF48486F +S3154001CB50000000B800410D1E2D4A090F1F000000BC +S3154001CB600000001800000284FFFF48E4000000A016 +S3154001CB7000410D1E2D48090F1F0000000000001442 +S3154001CB80000002A0FFFF49680000039400410D1E0A +S3154001CB902D090F1F00000010000002B8FFFF4CE4F2 +S3154001CBA00000002C0000000000000010000002CC34 +S3154001CBB0FFFF4CFC000000240000000000000010B4 +S3154001CBC0000002E0FFFF4D0C0000001800000000CD +S3154001CBD000000018000002F4FFFF4D100000017C28 +S3154001CBE000410D1E2D42090F1F00000000000018D4 +S3154001CBF000000310FFFF4E700000058000410D1E2E +S3154001CC002D46090F1F000000000000180000032CEC +S3154001CC10FFFF53D40000051800410D1E2D43090F97 +S3154001CC201F0000000000001400000348FFFF58D019 +S3154001CC300000010C00410D1E2D090F1F00000010C0 +S3154001CC4000000360FFFF59C4000000180000000007 +S3154001CC500000001400000374FFFF59C800000208D9 +S3154001CC6000410D1E2D090F1F000000140000038C0A +S3154001CC70FFFF6A600000461800410D1E2D090F1F77 +S3154001CC8000000010000003A4FFFFB0600000000C8C +S3154001CC900000000000000010000003B8FFFFB0587C +S3154001CCA0000000140000000000000010000003CC4A +S3154001CCB0FFFFB058000000200000000000000014F3 +S3154001CCC0000003E0FFFFB0640000077000410D1E45 +S3154001CCD02D090F1F00000010000003F8FFFFC0ECF4 +S3154001CCE00000000C00000000000000100000040CD1 +S3154001CCF0FFFFC0E400000024000000000000001017 +S3154001CD0000000420FFFFC0F40000003800000000CE +S3154001CD100000001000000434FFFFC1180000003875 +S3154001CD20000000000000001800000448FFFFC13C5D +S3154001CD300000009C00410D1E2D56090F1F000000EA +S3154001CD400000001800000464FFFFC1BC0000003C65 +S3154001CD5000410D1E2D4A090F1F000000000000185A +S3154001CD6000000480FFFFC1DC0000003C00410D1EB5 +S3154001CD702D4A090F1F000000000000100000049C0E +S3154001CD80FFFFC1FC00000038000000000000001851 +S3154001CD90000004B0FFFFC2200000003C00410D1E10 +S3154001CDA02D4A090F1F00000000000018000004CCA6 +S3154001CDB0FFFFC2400000003C00410D1E2D4A090FF5 +S3154001CDC01F00000000000010000004E8FFFFC260E1 +S3154001CDD0000000380000000000000018000004FCBC +S3154001CDE0FFFFC28400000EB000430D1E2D4C090FFB +S3154001CDF01F0000000000001400000518FFFFD118B5 +S3154001CE000000002800410D1E2D090F1F00000014CF +S3154001CE1000000530FFFFD1280000033000410D1E00 +S3154001CE202D090F1F0000001400000548FFFFD440E4 +S3154001CE30000002B800430D1E2D090F1F000000100F +S3154001CE4000000560FFFFD9E80000000C000000006B +S3154001CE500000001000000574FFFFD9E00000001437 +S3154001CE60000000000000001400000588FFFFD9E023 +S3154001CE700000007C00410D1E2D090F1F000000100F +S3154001CE80000005A0FFFFDDDC0000002000000000DF +S3154001CE9000000010000005B4FFFFDDE80000001CA3 +S3154001CEA00000000000000010000005C8FFFFDDF093 +S3154001CEB00000001C0000000000000018000005DC16 +S3154001CEC0FFFFDDF8000006D800410D1E2D4C090F6D +S3154001CED01F00000000000010000005F8FFFFE4B449 +S3154001CEE00000001800000000000000100000060CC1 +S3154001CEF0FFFFE4B800000018000000000000001821 +S3154001CF0000000620FFFFE4BC0000004000410D1E6A +S3154001CF102D42090F1F000000000000180000063CCA +S3154001CF20FFFFE4E00000012C00410D1E2D41090FD9 +S3154001CF301F0000000000001400000658FFFFE5F046 +S3154001CF40000000EC00410D1E2D090F1F00000018C6 +S3154001CF5000000670FFFFE6C40000029C00410D1E62 +S3154001CF602D43090F1F000000000000180000068C29 +S3154001CF70FFFFE9440000008C00410D1E2D4F090FB3 +S3154001CF801F00000000000018000006A8FFFFE9B4DA +S3154001CF900000002800410D1E2D44090F1F0000000E +S3154001CFA000000018000006C4FFFFE9C000000104AC +S3154001CFB000410D1E2D45090F1F0000000000001005 +S3154001CFC0000006E0FFFFEAA80000003C0000000068 +S3154001CFD000000018000006F4FFFFEE840000008800 +S3154001CFE000410D1E2D52090F1F00000000000010C8 +S3154001CFF000000710FFFFEEF00000001C00000000DB +S3154001D0000000001800000724FFFFEEF80000012091 +S3154001D01000410D1E2D58090F1F0000000000001091 +S3154001D02000000740FFFFF13400000010000000003F +S3154001D0300000001800000754FFFFF13000000034E3 +S3154001D04000410D1E2D47090F1F000000000000186A +S3154001D05000000770FFFFF1480000002C00410D1E43 +S3154001D0602D45090F1F000000000000180000078C25 +S3154001D070FFFFF1580000002C00410D1E2D45090F00 +S3154001D0801F00000000000018000007A8FFFFF1681C +S3154001D0900000002C00410D1E2D45090F1F00000008 +S3154001D0A000000018000007C4FFFFF1780000002CC3 +S3154001D0B000410D1E2D45090F1F00000000000018FC +S3154001D0C0000007E0FFFFF1880000002C00410D1E23 +S3154001D0D02D45090F1F00000000000018000007FC45 +S3154001D0E0FFFFF1980000002C00410D1E2D45090F50 +S3154001D0F01F0000000000001800000818FFFFF1A8FB +S3154001D1000000003400410D1E2D47090F1F0000008D +S3154001D1100000001800000834FFFFF3540000004CE3 +S3154001D12000410D1E2D47090F1F00000000000000A1 +S3154001D13000000002FFFFFFFF0000000000000000AA +S3154001D14000000002FFFFFFFF00000000000000009A +S3154001D150343074693934612B307967697975303582 +S3154001D1607968617035796934682B612B6969797899 +S3154001D1706869346B35396A30713930356A6B6F7924 +S3154001D18070686F70746A72686961346979302B347A +S3154001D1900000000000000000400800000000000000 +S3154001D1A03CD203AF9EE756163E7AD7F29ABCAF48B9 +S3154001D1B0400486B00000000043000000000000006B +S3154001D1C09DE3BFA07FFF8FD9010000007FFFFDB324 +S3154001D1D00100000081C7E00881E800009DE3BFA08F +S3154001D1E07FFF8FA70100000081C7E00881E80000AA +S3154002000000000001000000000000000000000000A7 S315400200102000000000000000000000000000000078 S315400200200000000000000000000000000000000088 S315400200300000000000000000000000000000000078 @@ -7353,328 +7468,328 @@ S315400200A00000000000000000000000000000000008 S315400200B000000000000000000000000000000000F8 S315400200C000000000000000000000000000000000E8 S315400200D000000000000000000000000000000000D8 -S315400200E00000000100000000000000410000000086 -S315400200F0343074693934612B3079676979753035B2 -S315400201007968617035796934682B612B69697978C8 -S315400201106869346B35396A30713930356A6B6F7953 -S3154002012070686F70746A72686961346979302B34A9 -S315400201300000000000000000000000010000000076 -S3154002014040000000000000004008000000000000DF -S31540020150401800000000000080000000000000007F -S315400201600000000000000000BFF000000000000098 -S31540020170BF800000000000000000000000000000F8 -S315400201800000000000000000000000000000000027 -S315400201903FF00000000000004008000000000000A0 -S315400201A03FF0000040000000000000000000000098 -S315400201B03F800000404000000000000000000000B8 -S315400201C000000000000000000000000000000000E7 -S315400201D0000000000000000048000001000000008E -S315400201E0480000000000000046C000000000000079 -S315400201F03FF0000000000000400000000000000048 -S3154002020040080000000000003F800000000000009F -S31540020210529000000000000052900FF807F60DEBD6 -S3154002022052901FE03F61BAD052902FB8D4E30F48A4 -S3154002023052903F81F636B80C52904F3BD03C0A64FE -S3154002024052905EE68EFAD48B52906E825DA8FC2B5B -S3154002025052907E0F66AFED0752908D8DD3B1D9AADB -S3154002026052909CFDCD8ED0095290AC5F7C69A3C85A -S315400202705290BBB307ACAFDB5290CAF8960E710DE3 -S315400202805290DA304D95FB065290E95A539F492CCB -S315400202905290F876CCDF6CD952910785DD689A295F -S315400202A052911687A8AE14A35291257C5187FD0917 -S315400202B052913463FA37014E5291433EC467EFFB83 -S315400202C05291520CD1372FEB529160CE41341D746C -S315400202D052916F8334644DF952917E2BCA46BAB914 -S315400202E052918CC821D6D3E352919B58598F7C9F09 -S315400202F05291A9DC8F6DF1045291B854E0F496A064 -S315400203005291C6C16B2DB8705291D5224AAE2EE19A -S315400203105291E3779B97F4A85291F1C1799CA8FF39 -S31540020320529200000000000052920E33499A21A9CF -S3154002033052921C5B70D9F82452922A788FC76DE587 -S315400203405292388AC0059C28529246921AD4EA4959 -S315400203505292548EB9151E8552926280B347609668 -S315400203605292706821902E9A52927E451BB944C38E -S3154002037052928C17B9337834529299E01118857596 -S315400203805292A79E3A2CD2E65292B5524AE1278E13 -S315400203905292C2FC595456A75292D09C7B54E03E8C -S315400203A05292DE32C66287415292EBBF4FAFDD4B6D -S315400203B05292F9422C23C47E529306BB705AE7C32B -S315400203C05293142B30A929AB52932191811B0A4196 -S315400203D052932EEE7577041652933C42213EE0C963 -S315400203E05293498C97B10540529356CDEBC9B5E22B -S315400203F0529364063044530652937135779C8DCBA3 -S3154002040052937E5BD40F95A152938B79579D3EAB07 -S315400204105293988E1409212E5293A59A1ADBB257FB -S315400204205293B29D7D6356625293BF984CB56C7798 -S315400204305293CC8A99AF54535293D97474F76DF24E -S315400204405293E655EEFE13675293F32F17FE8D0431 -S31540020450529400000000000052940CC8B6D657C20F -S31540020460529419894C2329F052942641CF569572BB -S31540020470529432F24FB01C7A52943F9ADC3F79CE74 -S3154002048052944C3B83E57153529458D455549C1A1A -S31540020490529465655F122FF6529471EEAF76C2C6DC -S315400204A052947E7054AF098952948AEA5CBC935F37 -S315400204B05294975CD57680885294A3C7CC8A358A63 -S315400204C05294B02B4F7C0A885294BC876BA7F6ECA9 -S315400204D05294C8DC2E4239805294D529A457FCFC4A -S315400204E05294E16FDACFF9375294EDAEDE6B10FEDD -S315400204F05294F9E6BBC4ECB3529506177F5491BBAE -S3154002050052951241356CF6E052951E63EA3D95B01E -S3154002051052952A7FA9D2F8EA529536948017481006 -S31540020520529542A278D2D03652954EA99FAC8A0FA6 -S3154002053052955AAA002A9D5A529566A3A5B2E1B18E -S31540020540529572969B8B5CD852957E82ECDABE8D22 -S3154002055052958A68A4A8D9F352959647CDDF1CA531 -S315400205605295A220734903775295ADF29F948CFB24 -S315400205705295B9BE5D52A9DA5295C583B6F7AB0319 -S315400205805295D142B6DBADC55295DCFB673B05DFE2 -S315400205905295E8ADD236A58F5295F45A01D483B41A -S315400205A0529600000000000052960B9FD68A455490 -S315400205B0529617398F2AAA48529622CD337F0FE890 -S315400205C052962E5ACD0C3EBE529639E2653E421B9B -S315400205D0529645640568C1C3529650DFB6C759F470 -S315400205E052965C55827DF1D2529667C57199104BEF -S315400205F05296732F8D0E2F7752967E93DDBC0E73D5 -S31540020600529689F26C6B01D05296954B41CD4293EC -S315400206100BC0A4068F346C9B0BC093731C185447B3 -S315400206200BC083008E183C230BC072AE83A9704A5E -S315400206300BC0627C9CC166FF0BC0526A7ACE64A430 -S315400206400BC04277C0B04ADA0BC032A412B191A0B5 -S315400206500BC022EF168069500BC0135873280473DF -S315400206600BC003DFD10A08480BBFE909B3B04632D3 -S315400206700BBFCA8E711B8E880BBFAC4D32D4143061 -S315400206800BBF8E4553D34B1B0BBF7076318237EF70 -S315400206900BBF52DF2BADF99C0BBF357FA47C936C0D -S315400206A00BBF18570061F5EB0BBEFB64A61545154B -S315400206B00BBEDEA7FE865A2B0BBEC22074D37FBC6E -S315400206C00BBEA5CD763F66690BBE89AE722750F04A -S315400206D00BBE6DC2D9F976230BBE520A212B976CFB -S315400206E00BBE3683BD31CAA20BBE1B2F257575CAFA -S315400206F00BBE000BD34C7BAF0BBDE51941F097FE09 -S315400207000BBDCA56EE76E9D00BBDAFC457C7AB7325 -S315400207100BBD9560FE9616690BBD7B2C65587275AE -S315400207200BBD612610404EC00BBD474D8532E409D4 -S315400207300BBD2DA24BC19EDF0BBD1423ED22D10171 -S315400207400BBCFAD1F42A88E40BBCE1ABED438E80B4 -S315400207500BBCC8B1666884820BBCAFE1EF1D2D01AC -S315400207600BBC973D1867D0EF0BBC7EC274CAC962F8 -S315400207700BBC6671983E29FE0BBC4E4A18298BA9C2 -S315400207800BBC364B8B5DF6DB0BBC1E758A0FECBF82 -S315400207900BBC06C7ADD18E7E0BBBEF41918CE1F609 -S315400207A00BBBD7E2D17E33360BBBC0AB0B2E921BB3 -S315400207B00BBBA999DD6E6B650BBB92AEE8503CA7AD -S315400207C00BBB7BE9CD2362720BBB654A2E6F002CB5 -S315400207D00BBB4ECFAFED00FE0BBB3879F685313FF2 -S315400207E00BBB2248A8486FDE0BBB0C3B6C6BF73B3E -S315400207F00BBAF651EB44BCEE0BBAE08BCE42E7F1B4 -S315400208000BBACAE8BFED5CC00BBAB5686BDD5EDDFC -S315400208100BBAA00A7EBA475E0BBA8ACEA6354FEB12 -S315400208200BBA75B4910571DB0BBA60BBEEE358EFB8 -S315400208300BBA4BE4708569410BBA372DC79BD7FE7D -S315400208400BBA2297A6CCD68C0BBA0E21C1B0CFA03A -S315400208500BB9F9CBCCCEB6050BB9E5957D98648B31 -S315400208600BB9D17E8A670EE70BB9BD86AA77C3104C -S315400208700BB9A9AD95E7FAC40BB995F305B23CE5B8 -S315400208800BB98256B3AACE570BB96ED85A7C7206AA -S315400208900BB95B77B5A537C80BB94834817359CCC8 -S315400208A00BB9350E7B02284D0BB922056037032E54 -S315400208B00BB90F18EFBE614A0BB8FC48E908E522AE -S315400208C00BB8E9950C487EA90BB8D6FD1A6D99E886 -S315400208D00BB8C480D5245A340BB8B21FFED1E1BC42 -S315400208E00BB89FDA5A91A5260BB88DAFAC32CB0A1C -S315400208F00BB87B9FB83596F60BB869AA43C8DFE1B9 -S315400209000BB857CF14C791B50BB8460DF1B639C6D9 -S315400209100BB83466A1C09DF90BB822D8ECB75E6E0F -S315400209200BB811649B0DA16B0BB8000975D6C9595A -S315400209300BB7EEC746C434A50BB7DD9DD823075285 -S315400209400BB7CC8CF4D9FE010BB7BB9468674A50FF -S315400209500BB7AAB3FEDE78540BB799EB84E65D0C6F -S315400209600BB7893AC7B70D960BB778A19517DF0132 -S315400209700BB7681FBB5D6E910BB757B50967B24C93 -S315400209800BB747614EA011A20BB737245AF786140C -S315400209900BB726FDFEE4C3A00BB716EE0B6268E862 -S315400209A00BB706F451ED36CE0BB6F710A4824F8044 -S315400209B00BB6E742D59D7CB40BB6D78AB8377D0EC7 -S315400209C00BB6C7E81FC458720BB6B85AE031BB32F1 -S315400209D00BB6A8E2CDE557F90BB6997FBDBB50459C -S315400209E00BB68A318504A35C0BB67AF7F985A39BCD -S315400209F00BB66BD2F17471FF0BB65CC243777FCEF6 -S31540020A000BB64DC5C6A416420BB63EDD527CE4116A -S31540020A100BB63008BEF090CF0BB62147E45855EBE3 -S31540020A200BB6129A9B769D520BB60400BD75A584F1 -S31540020A300BB5F57A23E62B070BB5E706A8BE172CAE -S31540020A400BB5D8A6265733FF0BB5CA58776DE54B7B -S31540020A500BB5BC1D771FE6AB0BB5ADF500EB0E78BB -S31540020A600BB59FDEF0AC15940BB591DB229D63F27C -S31540020A700BB583E97355E1C10BB57609BFC7CD32D4 -S31540020A800BB5683BE53F94B80BB55A7FC162B5B624 -S31540020A900BB54CD5322E9F7F0BB53F3C15F79AA12D -S31540020AA00BB531B44B67B45A0BB5243DB17DAE306C -S31540020AB00BB516D8278BF18F0BB509838D37876710 -S31540020AC00BB4FC3FC27713AE0BB4EF0CA791D4BB69 -S31540020AD00BB4E1EA1D1EA6680BB4D4D8040308E59C -S31540020AE00BB4C7D63D722B370BB4BAE4AAEBF9481E -S31540020AF00BB4AE032E3C2D7E0BB4A131A97965C948 -S31540020B000BB4946FFF043C1C0BB487BE118662364D -S31540020B100BB47B1BC3F1C0BF0BB46E88F97F999BA4 -S31540020B200BB4620595AFAD730BB455917C476454D3 -S31540020B300BB4492C9150F96C0BB43CD6B91AA9C8DE -S31540020B400BB4308FD835E60B0BB42457D3768716C1 -S31540020B500BB4182E8FF205900BB40C13F2FEB43B75 -S31540020B600BB40007E232FD1F0BB3F40A4364A167DC -S31540020B700BB3E81AFCA7FBF00BB3DC39F44F468AF9 -S31540020B800BB3D06710E9E1C30BB3C4A239439F4FFD -S31540020B900BB3B8EB54640EF10BB3AD42498DCDDFC6 -S31540020BA00BB3A1A7003DD89B0BB39619602ADF2B46 -S31540020BB00BB38A9951449BB80BB37F26BBB32B79AF -S31540020BC00BB373C187D669EA0BB368699E454E4437 -S31540020BD00BB35D1EE7CD4B2D0BB351E14D71B09872 -S31540020BE00BB346B0B86B0FC30BB33B8D1226A15A5B -S31540020BF00BB330764445ADAC0BB3256C389CF6EB63 -S31540020C000BB31A6ED934256E0BB30F7E104535F5EC -S31540020C100BB30499C83BE9D60BB2F9C1EBB53923FC -S31540020C200BB2EEF6657EC6AA0BB2E437209655D5D0 -S31540020C300BB2D984082942630BB2CEDD0793F9E79A -S31540020C400BB2C4420A6177190BB2B9B2FC4ABEDA98 -S31540020C500BB2AF2FC9365EFF0BB2A4B85D37EEC1F9 -S31540020C600BB29A4CA48F90E30BB28FEC8BA9777997 -S31540020C700BB28597FF1D694D0BB27B4EEBAE48DD3D -S31540020C800BB271113E499CEE0BB266DEE4071AA81E -S31540020C900BB25CB7CA2831380BB2529BDE1796F7B5 -S31540020CA00BB2488B0D68D8030BB23E8545D7E65A40 -S31540020CB00BB2348A7548AB540BB22A9A89C69A97B4 -S31540020CC00BB220B5718446610BB216DB1ADAF53FD8 -S31540020CD00BB20D0B744A39100BB203466C77876C14 -S31540020CE00BB1F98BF22DD3490BB1EFDBF45D27FF44 -S31540020CF00BB1E636621A457E0BB1DC9B2A9E3DD588 -S31540020D000BB1D30A3D4613EE0BB1C98389925B817F -S31540020D100BB1C006FF26DA3F0BB1B6948DCA2A281C -S31540020D200BB1AD2C25655D0F0BB1A3CDB603A13D2D -S31540020D300BB19A792FD1E7410BB1912E831E88D2FE -S31540020D400BB187EDA058F0D60BB17EB6781144733D -S31540020D500BB17588FAF80D3A0BB16C6519DDE45D95 -S31540020D600BB1634AC5B31EEF0BB15A39EF877B28E5 -S31540020D700BB151328889CEAE0BB148348207B5DB0E -S31540020D800BB13F3FCD6D43FF0BB136545C44B49A31 -S31540020D900BB12D7220361D870BB124990B07221BEE -S31540020DA00BB11BC90E9AA72D0BB113021CF0880F6B -S31540020DB00BB10A4428254C650BB1018F2271DEE541 -S31540020DC00BB0F8E2FE2B44F40BB0F03FADC2572312 -S31540020DD00BB0E7A523C37A850BB0DF1352D65AD997 -S31540020DE00BB0D68A2DBDA58C0BB0CE09A756C589A8 -S31540020DF00BB0C591B2999FDB0BB0BD2242985115FB -S31540020E000BB0B4BB4A7EEB870BB0AC5CBD933636B7 -S31540020E1065300000653010006530200065303000D6 -S31540020E2065304000653050006530600065307000C6 -S31540020E3065308000653090006530A0006530B000B6 -S31540020E406530C0006530D0006530E0006530F000A6 -S31540020E506531000065311000653120006531300092 -S31540020E606531400065315000653160006531700082 -S31540020E7065318000653190006531A0006531B00072 -S31540020E806531C0006531D0006531E0006531F00062 -S31540020E90653200006532100065322000653230004E -S31540020EA0653240006532500065326000653270003E -S31540020EB065328000653290006532A0006532B0002E -S31540020EC06532C0006532D0006532E0006532F0001E -S31540020ED0653300006533100065332000653330000A -S31540020EE065334000653350006533600065337000FA -S31540020EF065338000653390006533A0006533B000EA -S31540020F006533C0006533D0006533E0006533F000D9 -S31540020F1065340000653410006534200065343000C5 -S31540020F2065344000653450006534600065347000B5 -S31540020F3065348000653490006534A0006534B000A5 -S31540020F406534C0006534D0006534E0006534F00095 -S31540020F506535000065351000653520006535300081 -S31540020F606535400065355000653560006535700071 -S31540020F7065358000653590006535A0006535B00061 -S31540020F806535C0006535D0006535E0006535F00051 -S31540020F90653600006536100065362000653630003D -S31540020FA0653640006536500065366000653670002D -S31540020FB065368000653690006536A0006536B0001D -S31540020FC06536C0006536D0006536E0006536F0000D -S31540020FD065370000653710006537200065373000F9 -S31540020FE065374000653750006537600065377000E9 -S31540020FF065378000653790006537A0006537B000D9 -S315400210006537C0006537D0006537E0006537F000C8 -S3154002101065380000653810006538200065383000B4 -S3154002102065384000653850006538600065387000A4 -S3154002103065388000653890006538A0006538B00094 -S315400210406538C0006538D0006538E0006538F00084 -S315400210506539000065391000653920006539300070 -S315400210606539400065395000653960006539700060 -S3154002107065398000653990006539A0006539B00050 -S315400210806539C0006539D0006539E0006539F00040 -S31540021090653A0000653A1000653A2000653A30002C -S315400210A0653A4000653A5000653A6000653A70001C -S315400210B0653A8000653A9000653AA000653AB0000C -S315400210C0653AC000653AD000653AE000653AF000FC -S315400210D0653B0000653B1000653B2000653B3000E8 -S315400210E0653B4000653B5000653B6000653B7000D8 -S315400210F0653B8000653B9000653BA000653BB000C8 -S31540021100653BC000653BD000653BE000653BF000B7 -S31540021110653C0000653C1000653C2000653C3000A3 -S31540021120653C4000653C5000653C6000653C700093 -S31540021130653C8000653C9000653CA000653CB00083 -S31540021140653CC000653CD000653CE000653CF00073 -S31540021150653D0000653D1000653D2000653D30005F -S31540021160653D4000653D5000653D6000653D70004F -S31540021170653D8000653D9000653DA000653DB0003F -S31540021180653DC000653DD000653DE000653DF0002F -S31540021190653E0000653E1000653E2000653E30001B -S315400211A0653E4000653E5000653E6000653E70000B -S315400211B0653E8000653E9000653EA000653EB000FB -S315400211C0653EC000653ED000653EE000653EF000EB -S315400211D0653F0000653F1000653F2000653F3000D7 -S315400211E0653F4000653F5000653F6000653F7000C7 -S315400211F0653F8000653F9000653FA000653FB000B7 -S31540021200653FC000653FD000653FE000653FF000A6 -S315400212104200000000000000400FFFFFFFFFFFFFFB -S315400212204200000000200000420FFFFFFFFFFFFFC9 -S3154002123040000000000000004210000000080000CC -S3154002124042000000000000013EB000000000000124 -S315400212504200000000000002420F484C0137D2080B -S31540021260C20E780F256007AB41BA079B7AF94BA0AD -S315400212704201484C0137D208420E780F256007AB2F -S315400212804217E02D934BECDA420F484C0137D20815 -S31540021290C21E780F256007ABC20DA7D249883D4EC4 -S315400212A0421F484C0137D208C20E780F256007AB61 -S315400212B042100C446E87CE32C03340AB371208918F -S315400212C00000000000000000C03340AB3712089116 -S315400212D00000000000000000C29E7A0F236007A6AD -S315400212E0C29E7A0F236007A66F3F484C0137D20849 -S315400212F06E2E780F256007AB6F3F485B3D3F64B863 -S315400213006F3F484C0137D208EE2E780F256007AB67 -S315400213106F3F483CC5303F587FE2F780AB123809F1 -S315400213207FD00000000000007FEAF780AB12380948 -S31540021330002000000000000080280000000000009D -S3154002134080100000000000007FEFF780AB123809E2 -S315400213507FEFF2010203A1117FF0000000000000BE -S315400213600010000000001000801FFFFFF203A111D1 -S315400213708000000000000000001ABCD000023809BC -S31540021380801ABCD0000001110000000000000000DD -S315400213907E71000000000000416010000000000065 -S315400213A07FE11100000000000178100000000000FB -S315400213B03E880000FFF0000000120C00C073F800E7 -S315400213C0C1EFFFFFC00020003FB3C75D224F280F89 -S315400213D0C1B3C75CFAC08192A12FFF8000001FFFF4 -S315400213E03EE0000000FF0000A01FFF8001FE18073C -S315400213F041CFFFFE0000002040303FFFFFFFFFFDD0 -S3154002140042103FFEFC00000D3FD000003FEFFFFFC1 -S31540021410BFD0000010000000BFB000004FF0003FF8 -S3154002142001701000000000003E8000011A0000001A -S3154002143000000000000000007E7C0000000000006A -S31540021440416A1000010000107FF000000000000019 -S3154002145075012034056AC000FA1009091000104FC0 -S31540021460FFF00000000000000100203040030200AF -S31540021470003020340000A00B0000000000000000F5 -S315400214807FE0001010200001400000000010200AFA -S315400214907FF00000000000003FEFDFF00FFC484AFB -S315400214A0BFF80000000000007FFF000000000000BF -S315400214B07FFFE000000000007FF400000000000013 -S315400214C07FC00000000000007FF80000000000001E -S315400214D07FF0000000000000FFF000000000000066 -S315400214E0FFF0000000000000800000000000000045 -S315400214F000000000000100000000000000000000A3 +S315400200E00000000100000001BF8000000000000087 +S315400200F0BFF0000000000000800000000000000089 +S315400201000000000000000000400000000000000067 +S3154002011040080000000000004018000000000000F7 +S315400201200000000000000000000000000000000087 +S3154002013000000000000000003FF000000000000048 +S3154002014040080000000000003FF0000040000000B0 +S3154002015000000000000000003F8000004040000018 +S315400201600000000000000000000000000000000047 +S315400201700000000000000000000000000000000037 +S315400201804800000100000000480000000000000096 +S3154002019046C00000000000003FF0000000000000E2 +S315400201A0400000000000000040080000000000007F +S315400201B03F80000000000000000000000001000037 +S315400201C08000000000000000FFF000000000000078 +S315400201D0FFF00000000000007FF000000000000079 +S315400201E07FF80000000000007FC000000000000011 +S315400201F07FF40000000000007FFFE00000000000E6 +S315400202007FFF000000000000BFF800000000000071 +S315400202103FEFDFF00FFC484A7E710000000000000D +S3154002022041601000000000007FE111000000000064 +S3154002023001781000000000003E880000FFF0000038 +S3154002024000120C00C073F800C1EFFFFFC00020008F +S315400202503FB3C75D224F280FC1B3C75CFAC0819234 +S31540020260A12FFF8000001FFF3EE0000000FF0000BC +S31540020270A01FFF8001FE180741CFFFFE00000020AD +S3154002028040303FFFFFFFFFFD42103FFEFC00000DE6 +S315400202903FD000003FEFFFFFBFD00000100000003C +S315400202A0BFB000004FF0003F017010000000000098 +S315400202B03E8000011A00000000000000000000001D +S315400202C07E7C000000000000416A10000100001020 +S315400202D07FF000000000000075012034056AC0006E +S315400202E0FA1009091000104FFFF00000000000004C +S315400202F00100203040030200003020340000A00BF1 +S3154002030000000000000000007FE000101020000105 +S31540020310400000000010200A7FF0000000000000AC +S315400203204200000000000000400FFFFFFFFFFFFFFA +S315400203304200000000200000420FFFFFFFFFFFFFC8 +S3154002034040000000000000004210000000080000CB +S3154002035042000000000000013EB000000000000123 +S315400203604200000000000002420F484C0137D2080A +S31540020370C20E780F256007AB41BA079B7AF94BA0AC +S315400203804201484C0137D208420E780F256007AB2E +S315400203904217E02D934BECDA420F484C0137D20814 +S315400203A0C21E780F256007ABC20DA7D249883D4EC3 +S315400203B0421F484C0137D208C20E780F256007AB60 +S315400203C042100C446E87CE32C03340AB371208918E +S315400203D00000000000000000C03340AB3712089115 +S315400203E00000000000000000C29E7A0F236007A6AC +S315400203F0C29E7A0F236007A66F3F484C0137D20848 +S315400204006E2E780F256007AB6F3F485B3D3F64B861 +S315400204106F3F484C0137D208EE2E780F256007AB66 +S315400204206F3F483CC5303F587FE2F780AB123809F0 +S315400204307FD00000000000007FEAF780AB12380947 +S31540020440002000000000000080280000000000009C +S3154002045080100000000000007FEFF780AB123809E1 +S315400204607FEFF2010203A1117FF0000000000000BD +S315400204700010000000001000801FFFFFF203A111D0 +S315400204808000000000000000001ABCD000023809BB +S31540020490801ABCD0000001110000000000000000DC +S315400204A06530000065301000653020006530300050 +S315400204B06530400065305000653060006530700040 +S315400204C065308000653090006530A0006530B00030 +S315400204D06530C0006530D0006530E0006530F00020 +S315400204E0653100006531100065312000653130000C +S315400204F065314000653150006531600065317000FC +S3154002050065318000653190006531A0006531B000EB +S315400205106531C0006531D0006531E0006531F000DB +S3154002052065320000653210006532200065323000C7 +S3154002053065324000653250006532600065327000B7 +S3154002054065328000653290006532A0006532B000A7 +S315400205506532C0006532D0006532E0006532F00097 +S315400205606533000065331000653320006533300083 +S315400205706533400065335000653360006533700073 +S3154002058065338000653390006533A0006533B00063 +S315400205906533C0006533D0006533E0006533F00053 +S315400205A0653400006534100065342000653430003F +S315400205B0653440006534500065346000653470002F +S315400205C065348000653490006534A0006534B0001F +S315400205D06534C0006534D0006534E0006534F0000F +S315400205E065350000653510006535200065353000FB +S315400205F065354000653550006535600065357000EB +S3154002060065358000653590006535A0006535B000DA +S315400206106535C0006535D0006535E0006535F000CA +S3154002062065360000653610006536200065363000B6 +S3154002063065364000653650006536600065367000A6 +S3154002064065368000653690006536A0006536B00096 +S315400206506536C0006536D0006536E0006536F00086 +S315400206606537000065371000653720006537300072 +S315400206706537400065375000653760006537700062 +S3154002068065378000653790006537A0006537B00052 +S315400206906537C0006537D0006537E0006537F00042 +S315400206A0653800006538100065382000653830002E +S315400206B0653840006538500065386000653870001E +S315400206C065388000653890006538A0006538B0000E +S315400206D06538C0006538D0006538E0006538F000FE +S315400206E065390000653910006539200065393000EA +S315400206F065394000653950006539600065397000DA +S3154002070065398000653990006539A0006539B000C9 +S315400207106539C0006539D0006539E0006539F000B9 +S31540020720653A0000653A1000653A2000653A3000A5 +S31540020730653A4000653A5000653A6000653A700095 +S31540020740653A8000653A9000653AA000653AB00085 +S31540020750653AC000653AD000653AE000653AF00075 +S31540020760653B0000653B1000653B2000653B300061 +S31540020770653B4000653B5000653B6000653B700051 +S31540020780653B8000653B9000653BA000653BB00041 +S31540020790653BC000653BD000653BE000653BF00031 +S315400207A0653C0000653C1000653C2000653C30001D +S315400207B0653C4000653C5000653C6000653C70000D +S315400207C0653C8000653C9000653CA000653CB000FD +S315400207D0653CC000653CD000653CE000653CF000ED +S315400207E0653D0000653D1000653D2000653D3000D9 +S315400207F0653D4000653D5000653D6000653D7000C9 +S31540020800653D8000653D9000653DA000653DB000B8 +S31540020810653DC000653DD000653DE000653DF000A8 +S31540020820653E0000653E1000653E2000653E300094 +S31540020830653E4000653E5000653E6000653E700084 +S31540020840653E8000653E9000653EA000653EB00074 +S31540020850653EC000653ED000653EE000653EF00064 +S31540020860653F0000653F1000653F2000653F300050 +S31540020870653F4000653F5000653F6000653F700040 +S31540020880653F8000653F9000653FA000653FB00030 +S31540020890653FC000653FD000653FE000653FF00020 +S315400208A00BC0A4068F346C9B0BC093731C18544721 +S315400208B00BC083008E183C230BC072AE83A9704ACC +S315400208C00BC0627C9CC166FF0BC0526A7ACE64A49E +S315400208D00BC04277C0B04ADA0BC032A412B191A023 +S315400208E00BC022EF168069500BC01358732804734D +S315400208F00BC003DFD10A08480BBFE909B3B0463241 +S315400209000BBFCA8E711B8E880BBFAC4D32D41430CE +S315400209100BBF8E4553D34B1B0BBF7076318237EFDD +S315400209200BBF52DF2BADF99C0BBF357FA47C936C7A +S315400209300BBF18570061F5EB0BBEFB64A6154515B8 +S315400209400BBEDEA7FE865A2B0BBEC22074D37FBCDB +S315400209500BBEA5CD763F66690BBE89AE722750F0B7 +S315400209600BBE6DC2D9F976230BBE520A212B976C68 +S315400209700BBE3683BD31CAA20BBE1B2F257575CA67 +S315400209800BBE000BD34C7BAF0BBDE51941F097FE76 +S315400209900BBDCA56EE76E9D00BBDAFC457C7AB7393 +S315400209A00BBD9560FE9616690BBD7B2C655872751C +S315400209B00BBD612610404EC00BBD474D8532E40942 +S315400209C00BBD2DA24BC19EDF0BBD1423ED22D101DF +S315400209D00BBCFAD1F42A88E40BBCE1ABED438E8022 +S315400209E00BBCC8B1666884820BBCAFE1EF1D2D011A +S315400209F00BBC973D1867D0EF0BBC7EC274CAC96266 +S31540020A000BBC6671983E29FE0BBC4E4A18298BA92F +S31540020A100BBC364B8B5DF6DB0BBC1E758A0FECBFEF +S31540020A200BBC06C7ADD18E7E0BBBEF41918CE1F676 +S31540020A300BBBD7E2D17E33360BBBC0AB0B2E921B20 +S31540020A400BBBA999DD6E6B650BBB92AEE8503CA71A +S31540020A500BBB7BE9CD2362720BBB654A2E6F002C22 +S31540020A600BBB4ECFAFED00FE0BBB3879F685313F5F +S31540020A700BBB2248A8486FDE0BBB0C3B6C6BF73BAB +S31540020A800BBAF651EB44BCEE0BBAE08BCE42E7F121 +S31540020A900BBACAE8BFED5CC00BBAB5686BDD5EDD6A +S31540020AA00BBAA00A7EBA475E0BBA8ACEA6354FEB80 +S31540020AB00BBA75B4910571DB0BBA60BBEEE358EF26 +S31540020AC00BBA4BE4708569410BBA372DC79BD7FEEB +S31540020AD00BBA2297A6CCD68C0BBA0E21C1B0CFA0A8 +S31540020AE00BB9F9CBCCCEB6050BB9E5957D98648B9F +S31540020AF00BB9D17E8A670EE70BB9BD86AA77C310BA +S31540020B000BB9A9AD95E7FAC40BB995F305B23CE525 +S31540020B100BB98256B3AACE570BB96ED85A7C720617 +S31540020B200BB95B77B5A537C80BB94834817359CC35 +S31540020B300BB9350E7B02284D0BB922056037032EC1 +S31540020B400BB90F18EFBE614A0BB8FC48E908E5221B +S31540020B500BB8E9950C487EA90BB8D6FD1A6D99E8F3 +S31540020B600BB8C480D5245A340BB8B21FFED1E1BCAF +S31540020B700BB89FDA5A91A5260BB88DAFAC32CB0A89 +S31540020B800BB87B9FB83596F60BB869AA43C8DFE126 +S31540020B900BB857CF14C791B50BB8460DF1B639C647 +S31540020BA00BB83466A1C09DF90BB822D8ECB75E6E7D +S31540020BB00BB811649B0DA16B0BB8000975D6C959C8 +S31540020BC00BB7EEC746C434A50BB7DD9DD8230752F3 +S31540020BD00BB7CC8CF4D9FE010BB7BB9468674A506D +S31540020BE00BB7AAB3FEDE78540BB799EB84E65D0CDD +S31540020BF00BB7893AC7B70D960BB778A19517DF01A0 +S31540020C000BB7681FBB5D6E910BB757B50967B24C00 +S31540020C100BB747614EA011A20BB737245AF7861479 +S31540020C200BB726FDFEE4C3A00BB716EE0B6268E8CF +S31540020C300BB706F451ED36CE0BB6F710A4824F80B1 +S31540020C400BB6E742D59D7CB40BB6D78AB8377D0E34 +S31540020C500BB6C7E81FC458720BB6B85AE031BB325E +S31540020C600BB6A8E2CDE557F90BB6997FBDBB504509 +S31540020C700BB68A318504A35C0BB67AF7F985A39B3A +S31540020C800BB66BD2F17471FF0BB65CC243777FCE63 +S31540020C900BB64DC5C6A416420BB63EDD527CE411D8 +S31540020CA00BB63008BEF090CF0BB62147E45855EB51 +S31540020CB00BB6129A9B769D520BB60400BD75A5845F +S31540020CC00BB5F57A23E62B070BB5E706A8BE172C1C +S31540020CD00BB5D8A6265733FF0BB5CA58776DE54BE9 +S31540020CE00BB5BC1D771FE6AB0BB5ADF500EB0E7829 +S31540020CF00BB59FDEF0AC15940BB591DB229D63F2EA +S31540020D000BB583E97355E1C10BB57609BFC7CD3241 +S31540020D100BB5683BE53F94B80BB55A7FC162B5B691 +S31540020D200BB54CD5322E9F7F0BB53F3C15F79AA19A +S31540020D300BB531B44B67B45A0BB5243DB17DAE30D9 +S31540020D400BB516D8278BF18F0BB509838D3787677D +S31540020D500BB4FC3FC27713AE0BB4EF0CA791D4BBD6 +S31540020D600BB4E1EA1D1EA6680BB4D4D8040308E509 +S31540020D700BB4C7D63D722B370BB4BAE4AAEBF9488B +S31540020D800BB4AE032E3C2D7E0BB4A131A97965C9B5 +S31540020D900BB4946FFF043C1C0BB487BE11866236BB +S31540020DA00BB47B1BC3F1C0BF0BB46E88F97F999B12 +S31540020DB00BB4620595AFAD730BB455917C47645441 +S31540020DC00BB4492C9150F96C0BB43CD6B91AA9C84C +S31540020DD00BB4308FD835E60B0BB42457D37687162F +S31540020DE00BB4182E8FF205900BB40C13F2FEB43BE3 +S31540020DF00BB40007E232FD1F0BB3F40A4364A1674A +S31540020E000BB3E81AFCA7FBF00BB3DC39F44F468A66 +S31540020E100BB3D06710E9E1C30BB3C4A239439F4F6A +S31540020E200BB3B8EB54640EF10BB3AD42498DCDDF33 +S31540020E300BB3A1A7003DD89B0BB39619602ADF2BB3 +S31540020E400BB38A9951449BB80BB37F26BBB32B791C +S31540020E500BB373C187D669EA0BB368699E454E44A4 +S31540020E600BB35D1EE7CD4B2D0BB351E14D71B098DF +S31540020E700BB346B0B86B0FC30BB33B8D1226A15AC8 +S31540020E800BB330764445ADAC0BB3256C389CF6EBD0 +S31540020E900BB31A6ED934256E0BB30F7E104535F55A +S31540020EA00BB30499C83BE9D60BB2F9C1EBB539236A +S31540020EB00BB2EEF6657EC6AA0BB2E437209655D53E +S31540020EC00BB2D984082942630BB2CEDD0793F9E708 +S31540020ED00BB2C4420A6177190BB2B9B2FC4ABEDA06 +S31540020EE00BB2AF2FC9365EFF0BB2A4B85D37EEC167 +S31540020EF00BB29A4CA48F90E30BB28FEC8BA9777905 +S31540020F000BB28597FF1D694D0BB27B4EEBAE48DDAA +S31540020F100BB271113E499CEE0BB266DEE4071AA88B +S31540020F200BB25CB7CA2831380BB2529BDE1796F722 +S31540020F300BB2488B0D68D8030BB23E8545D7E65AAD +S31540020F400BB2348A7548AB540BB22A9A89C69A9721 +S31540020F500BB220B5718446610BB216DB1ADAF53F45 +S31540020F600BB20D0B744A39100BB203466C77876C81 +S31540020F700BB1F98BF22DD3490BB1EFDBF45D27FFB1 +S31540020F800BB1E636621A457E0BB1DC9B2A9E3DD5F5 +S31540020F900BB1D30A3D4613EE0BB1C98389925B81ED +S31540020FA00BB1C006FF26DA3F0BB1B6948DCA2A288A +S31540020FB00BB1AD2C25655D0F0BB1A3CDB603A13D9B +S31540020FC00BB19A792FD1E7410BB1912E831E88D26C +S31540020FD00BB187EDA058F0D60BB17EB678114473AB +S31540020FE00BB17588FAF80D3A0BB16C6519DDE45D03 +S31540020FF00BB1634AC5B31EEF0BB15A39EF877B2853 +S315400210000BB151328889CEAE0BB148348207B5DB7B +S315400210100BB13F3FCD6D43FF0BB136545C44B49A9E +S315400210200BB12D7220361D870BB124990B07221B5B +S315400210300BB11BC90E9AA72D0BB113021CF0880FD8 +S315400210400BB10A4428254C650BB1018F2271DEE5AE +S315400210500BB0F8E2FE2B44F40BB0F03FADC257237F +S315400210600BB0E7A523C37A850BB0DF1352D65AD904 +S315400210700BB0D68A2DBDA58C0BB0CE09A756C58915 +S315400210800BB0C591B2999FDB0BB0BD224298511568 +S315400210900BB0B4BB4A7EEB870BB0AC5CBD93363625 +S315400210A0529000000000000052900FF807F60DEB38 +S315400210B052901FE03F61BAD052902FB8D4E30F4806 +S315400210C052903F81F636B80C52904F3BD03C0A6460 +S315400210D052905EE68EFAD48B52906E825DA8FC2BBD +S315400210E052907E0F66AFED0752908D8DD3B1D9AA3D +S315400210F052909CFDCD8ED0095290AC5F7C69A3C8BC +S315400211005290BBB307ACAFDB5290CAF8960E710D44 +S315400211105290DA304D95FB065290E95A539F492C2C +S315400211205290F876CCDF6CD952910785DD689A29C0 +S3154002113052911687A8AE14A35291257C5187FD0978 +S3154002114052913463FA37014E5291433EC467EFFBE4 +S315400211505291520CD1372FEB529160CE41341D74CD +S3154002116052916F8334644DF952917E2BCA46BAB975 +S3154002117052918CC821D6D3E352919B58598F7C9F6A +S315400211805291A9DC8F6DF1045291B854E0F496A0C5 +S315400211905291C6C16B2DB8705291D5224AAE2EE1FC +S315400211A05291E3779B97F4A85291F1C1799CA8FF9B +S315400211B0529200000000000052920E33499A21A931 +S315400211C052921C5B70D9F82452922A788FC76DE5E9 +S315400211D05292388AC0059C28529246921AD4EA49BB +S315400211E05292548EB9151E8552926280B3476096CA +S315400211F05292706821902E9A52927E451BB944C3F0 +S3154002120052928C17B9337834529299E011188575F7 +S315400212105292A79E3A2CD2E65292B5524AE1278E74 +S315400212205292C2FC595456A75292D09C7B54E03EED +S315400212305292DE32C66287415292EBBF4FAFDD4BCE +S315400212405292F9422C23C47E529306BB705AE7C38C +S315400212505293142B30A929AB52932191811B0A41F7 +S3154002126052932EEE7577041652933C42213EE0C9C4 +S315400212705293498C97B10540529356CDEBC9B5E28C +S31540021280529364063044530652937135779C8DCB04 +S3154002129052937E5BD40F95A152938B79579D3EAB69 +S315400212A05293988E1409212E5293A59A1ADBB2575D +S315400212B05293B29D7D6356625293BF984CB56C77FA +S315400212C05293CC8A99AF54535293D97474F76DF2B0 +S315400212D05293E655EEFE13675293F32F17FE8D0493 +S315400212E0529400000000000052940CC8B6D657C271 +S315400212F0529419894C2329F052942641CF5695721D +S31540021300529432F24FB01C7A52943F9ADC3F79CED5 +S3154002131052944C3B83E57153529458D455549C1A7B +S31540021320529465655F122FF6529471EEAF76C2C63D +S3154002133052947E7054AF098952948AEA5CBC935F98 +S315400213405294975CD57680885294A3C7CC8A358AC4 +S315400213505294B02B4F7C0A885294BC876BA7F6EC0A +S315400213605294C8DC2E4239805294D529A457FCFCAB +S315400213705294E16FDACFF9375294EDAEDE6B10FE3E +S315400213805294F9E6BBC4ECB3529506177F5491BB0F +S3154002139052951241356CF6E052951E63EA3D95B080 +S315400213A052952A7FA9D2F8EA529536948017481068 +S315400213B0529542A278D2D03652954EA99FAC8A0F08 +S315400213C052955AAA002A9D5A529566A3A5B2E1B1F0 +S315400213D0529572969B8B5CD852957E82ECDABE8D84 +S315400213E052958A68A4A8D9F352959647CDDF1CA593 +S315400213F05295A220734903775295ADF29F948CFB86 +S315400214005295B9BE5D52A9DA5295C583B6F7AB037A +S315400214105295D142B6DBADC55295DCFB673B05DF43 +S315400214205295E8ADD236A58F5295F45A01D483B47B +S31540021430529600000000000052960B9FD68A4554F1 +S31540021440529617398F2AAA48529622CD337F0FE8F1 +S3154002145052962E5ACD0C3EBE529639E2653E421BFC +S31540021460529645640568C1C3529650DFB6C759F4D1 +S3154002147052965C55827DF1D2529667C57199104B50 +S315400214805296732F8D0E2F7752967E93DDBC0E7336 +S31540021490529689F26C6B01D05296954B41CD42934E +S315400214A000000000000000000000000000000000F4 +S315400214B000000000000000000000000000000000E4 +S315400214C000000000000000000000000000000000D4 +S315400214D000000000000000000000000000000000C4 +S315400214E000000000000000000000000000000000B4 +S315400214F000000000000000000000000000000000A4 S315400215000000000000000000000000000000000093 S315400215100000000000000000000000000000000083 S315400215200000000000000000000000000000000073 @@ -9387,8 +9502,8 @@ S31540027FC00000000000000000000000000000000069 S31540027FD00000000000000000000000000000000059 S31540027FE00000000000000000000000000000000049 S31540027FF00000000000000000000000000000000039 -S315400280000000003F0000000C0000003F000000128C -S31540028010000000FF00000018000000000000000001 +S315400280000000000000000000000000000000000028 +S315400280100000000000000000000000000000000018 S315400280200000000000000000000000000000000008 S3154002803000000000000000000000000000000000F8 S3154002804000000000000000000000000000000000E8 @@ -16299,8 +16414,8 @@ S31540042FC000000000000000000000000000000000B7 S31540042FD000000000000000000000000000000000A7 S31540042FE00000000000000000000000000000000097 S31540042FF00000000000000000000000000000000087 -S315400430000000000000000000000000000000000076 -S315400430100000000000000000000000000000000066 +S3154004300000000018000000FF000000120000003F0E +S315400430100000000C0000003F00000000000000001B S315400430200000000000000000000000000000000056 S315400430300000000000000000000000000000000046 S315400430400000000000000000000000000000000036 @@ -17579,125 +17694,125 @@ S31540047FC00000000000000000000000000000000067 S31540047FD00000000000000000000000000000000057 S31540047FE00000000000000000000000000000000047 S31540047FF00000000000000000000000000000000037 -S315400480000000000000000000000000000000000026 -S315400480100000000000000000000000000000000016 -S315400480200000000000000000000000000000000006 -S3154004803000000000000000000000000000000000F6 -S3154004804000000000000000000000000000000000E6 -S3154004805000000000000000000000000000000000D6 -S3154004806000000000000000000000000000000000C6 -S3154004807000000000000000000000000000000000B6 -S3154004808000000000000000000000000000000000A6 -S315400480900000000000000000000000000000000096 -S315400480A00000000000000000000000000000000086 -S315400480B00000000000000000000000000000000076 -S315400480C00000000000000000000000000000000066 -S315400480D00000000000000000000000000000000056 -S315400480E00000000000000000000000000000000046 -S315400480F00000000000000000000000000000000036 -S315400481000000000000000000000000000000000025 -S315400481100000000000000000000000000000000015 -S315400481200000000000000000000000000000000005 -S3154004813000000000000000000000000000000000F5 -S3154004814000000000000000000000000000000000E5 -S3154004815000000000000000000000000000000000D5 -S3154004816000000000000000000000000000000000C5 -S3154004817000000000000000000000000000000000B5 -S3154004818000000000000000000000000000000000A5 -S315400481900000000000000000000000000000000095 -S315400481A00000000000000000000000000000000085 -S315400481B00000000000000000000000000000000075 -S315400481C00000000000000000000000000000000065 -S315400481D00000000000000000000000000000000055 -S315400481E00000000000000000000000000000000045 +S31540048000000000020000000300000000000000031E +S31540048010FFFFFFFEFFFFFFFF00000002FFFFFFFD23 +S315400480200000000000000000000000010000000005 +S3154004803000000000FFFFFFFF0000000000000001F9 +S31540048040FFFFFFFFFFFFFFFFFFFFFFFF00000001F1 +S31540048050FFFFFFFFFFFFFFFE0000000300000000DC +S31540048060FFFFFFFEFFFFFFFD0000000000000009C8 +S315400480700000000700000001FFFFFFF700000002B8 +S31540048080FFFFFFFCFFFFFFF800000002FFFFFFFCBD +S31540048090FFFFFFF8FFFFFFFC00000002000000089E +S315400480A0FFFFFFFCFFFFFFFEFFFFFFF8FFFFFFF8A8 +S315400480B000000001FFFFFFF8FFFFFFF7000000008C +S315400480C00000000B00000002000000050000002F25 +S315400480D0000000020000001700003039000002A72B +S315400480E000000012FFFF076C0000004DFFFFFCC6B6 +S315400480F000003039FFFFFD59FFFFFFEEFFFF076C1D +S31540048100FFFFFFB30000033A00000091FFFFE84180 +S3154004811000000000FFFFFD84FFFED02F000000009A +S315400481200000F6FA006E49810000000000000000DD +S3154004813000000000000000000000000200000003F0 +S3154004814000000000000000000000000100000000E4 +S31540048150FFFFFFFE0000000355555554FFFFFFFE89 +S315400481600000000355555554700FFFFE00000007EC +S315400481701002492400000000000000000000000036 +S315400481800000000200000003000000060000000298 +S31540048190FFFFFFFDFFFFFFFA0000000000000001A3 +S315400481A00000000000000000FFFFFFFF0000000089 +S315400481B000000001FFFFFFFFFFFFFFFFFFFFFFFF80 +S315400481C000000001FFFFFFFFFFFFFFFE000000036A +S315400481D0FFFFFFFAFFFFFFFEFFFFFFFD0000000663 +S315400481E0000000000000000000000009FFFFF0004E S315400481F00000000000000000000000000000000035 -S315400482000000000000000000000000000000000024 +S31540048200000000000000000100000002000000031E S315400482100000000000000000000000000000000014 -S315400482200000000000000000000000000000000004 -S3154004823000000000000000000000000000000000F4 -S3154004824000000000000000000000000000000000E4 -S3154004825000000000000000000000000000000000D4 -S3154004826000000000000000000000000000000000C4 -S3154004827000000000000000000000000000000000B4 -S3154004828000000000000000000000000000000000A4 -S315400482900000000000000000000000000000000094 -S315400482A00000000000000000000000000000000084 -S315400482B00000000000000000000000000000000074 -S315400482C00000000000000000000000000000000064 -S315400482D00000000000000000000000000000000054 -S315400482E00000000000000000000000000000000044 -S315400482F00000000000000000000000000000000034 -S315400483000000000000000000000000000000000023 -S315400483100000000000000000000000000000000013 -S315400483200000000000000000000000000000000003 -S3154004833000000000000000000000000000000000F3 -S3154004834000000000000000000000000000000000E3 -S3154004835000000000000000000000000000000000D3 -S3154004836000000000000000000000000000000000C3 -S3154004837000000000000000000000000000000000B3 -S3154004838000000000000000000000000000000000A3 -S315400483900000000000000000000000000000000093 -S315400483A00000000000000000000000000000000083 -S315400483B00000000000000000000000000000000073 -S315400483C00000000000000000000000000000000063 -S315400483D00000000000000000000000000000000053 -S315400483E00000000000000000000000000000000043 -S315400483F00000000000000000000000000000000033 -S315400484000000000000000000000000000000000022 -S315400484100000000000000000000000000000000012 -S315400484200000000000000000000000000000000002 -S3154004843000000000000000000000000000000000F2 -S3154004844000000000000000000000000000000000E2 -S3154004845000000000000000000000000000000000D2 -S3154004846000000000000000000000000000000000C2 -S3154004847000000000000000000000000000000000B2 -S3154004848000000000000000000000000000000000A2 -S315400484900000000000000000000000000000000092 -S315400484A00000000000000000000000000000000082 -S315400484B00000000000000000000000000000000072 -S315400484C00000000000000000000000000000000062 -S315400484D00000000000000000000000000000000052 -S315400484E00000000000000000000000000000000042 -S315400484F00000000000000000000000000000000032 -S315400485000000000000000000000000000000000021 -S315400485100000000000000000000000000000000011 -S315400485200000000000000000000000000000000001 -S3154004853000000000000000000000000000000000F1 -S3154004854000000000000000000000000000000000E1 -S3154004855000000000000000000000000000000000D1 -S3154004856000000000000000000000000000000000C1 -S3154004857000000000000000000000000000000000B1 -S3154004858000000000000000000000000000000000A1 -S315400485900000000000000000000000000000000091 -S315400485A00000000000000000000000000000000081 -S315400485B00000000000000000000000000000000071 -S315400485C00000000000000000000000000000000061 -S315400485D00000000000000000000000000000000051 -S315400485E00000000000000000000000000000000041 -S315400485F00000000000000000000000000000000031 -S315400486000000000000000000000000000000000020 -S315400486100000000000000000000000000000000010 -S315400486200000000000000000000000000000000000 -S3154004863000000000000000000000000000000000F0 -S3154004864000000000000000000000000000000000E0 +S315400482200000000000000000400482204004822038 +S31540048230400482284004822840048230400482302C +S3154004824040048238400482384004824040048240DC +S31540048250400482484004824840048250400482508C +S31540048260400482584004825840048260400482603C +S3154004827040048268400482684004827040048270EC +S31540048280400482784004827840048280400482809C +S31540048290400482884004828840048290400482904C +S315400482A04004829840048298400482A0400482A0FC +S315400482B0400482A8400482A8400482B0400482B0AC +S315400482C0400482B8400482B8400482C0400482C05C +S315400482D0400482C8400482C8400482D0400482D00C +S315400482E0400482D8400482D8400482E0400482E0BC +S315400482F0400482E8400482E8400482F0400482F06C +S31540048300400482F8400482F8400483004004830019 +S3154004831040048308400483084004831040048310C7 +S315400483204004831840048318400483204004832077 +S315400483304004832840048328400483304004833027 +S3154004834040048338400483384004834040048340D7 +S315400483504004834840048348400483504004835087 +S315400483604004835840048358400483604004836037 +S3154004837040048368400483684004837040048370E7 +S315400483804004837840048378400483804004838097 +S315400483904004838840048388400483904004839047 +S315400483A04004839840048398400483A0400483A0F7 +S315400483B0400483A8400483A8400483B0400483B0A7 +S315400483C0400483B8400483B8400483C0400483C057 +S315400483D0400483C8400483C8400483D0400483D007 +S315400483E0400483D8400483D8400483E0400483E0B7 +S315400483F0400483E8400483E8400483F0400483F067 +S31540048400400483F8400483F8400484004004840014 +S3154004841040048408400484084004841040048410C2 +S315400484204004841840048418400484204004842072 +S315400484304004842840048428400484304004843022 +S3154004844040048438400484384004844040048440D2 +S315400484504004844840048448400484504004845082 +S315400484604004845840048458400484604004846032 +S3154004847040048468400484684004847040048470E2 +S315400484804004847840048478400484804004848092 +S315400484904004848840048488400484904004849042 +S315400484A04004849840048498400484A0400484A0F2 +S315400484B0400484A8400484A8400484B0400484B0A2 +S315400484C0400484B8400484B8400484C0400484C052 +S315400484D0400484C8400484C8400484D0400484D002 +S315400484E0400484D8400484D8400484E0400484E0B2 +S315400484F0400484E8400484E8400484F0400484F062 +S31540048500400484F8400484F840048500400485000F +S3154004851040048508400485084004851040048510BD +S31540048520400485184004851840048520400485206D +S31540048530400485284004852840048530400485301D +S3154004854040048538400485384004854040048540CD +S31540048550400485484004854840048550400485507D +S31540048560400485584004855840048560400485602D +S3154004857040048568400485684004857040048570DD +S31540048580400485784004857840048580400485808D +S31540048590400485884004858840048590400485903D +S315400485A04004859840048598400485A0400485A0ED +S315400485B0400485A8400485A8400485B0400485B09D +S315400485C0400485B8400485B8400485C0400485C04D +S315400485D0400485C8400485C8400485D0400485D0FD +S315400485E0400485D8400485D8400485E0400485E0AD +S315400485F0400485E8400485E8400485F0400485F05D +S31540048600400485F8400485F840048600400486000A +S3154004861040048608400486084004861040048610B8 +S31540048620400486184004861800020000FFFFFFFF3E +S3154004863000000000400486300000000000000000F6 +S3154004864000000000000000020000000000000000DE S3154004865000000000000000000000000000000000D0 S3154004866000000000000000000000000000000000C0 S3154004867000000000000000000000000000000000B0 S3154004868000000000000000000000000000000000A0 S315400486900000000000000000000000000000000090 -S315400486A00000000000000000000000000000000080 -S315400486B00000000000000000000000000000000070 +S315400486A00000000000000000400486B00000000006 +S315400486B0000000004004899C40048A6840048B34CE S315400486C00000000000000000000000000000000060 S315400486D00000000000000000000000000000000050 -S315400486E00000000000000000000000000000000040 +S315400486E0000000004001D1B8000000000000000076 S315400486F00000000000000000000000000000000030 S31540048700000000000000000000000000000000001F S31540048710000000000000000000000000000000000F S3154004872000000000000000000000000000000000FF S3154004873000000000000000000000000000000000EF S3154004874000000000000000000000000000000000DF -S3154004875000000000000000000000000000000000CF -S3154004876000000000000000000000000000000000BF +S3154004875000000000000000000000000000000001CE +S31540048760330EABCD1234E66DDEEC0005000B000093 S3154004877000000000000000000000000000000000AF S31540048780000000000000000000000000000000009F S31540048790000000000000000000000000000000008F @@ -17774,2055 +17889,7 @@ S31540048BF0000000000000000000000000000000002B S31540048C00000000000000000000000000000000001A S31540048C10000000000000000000000000000000000A S31540048C2000000000000000000000000000000000FA -S31540048C3000000000000000000000000000000000EA -S31540048C4000000000000000000000000000000000DA -S31540048C5000000000000000000000000000000000CA -S31540048C6000000000000000000000000000000000BA -S31540048C7000000000000000000000000000000000AA -S31540048C80000000000000000000000000000000009A -S31540048C90000000000000000000000000000000008A -S31540048CA0000000000000000000000000000000007A -S31540048CB0000000000000000000000000000000006A -S31540048CC0000000000000000000000000000000005A -S31540048CD0000000000000000000000000000000004A -S31540048CE0000000000000000000000000000000003A -S31540048CF0000000000000000000000000000000002A -S31540048D000000000000000000000000000000000019 -S31540048D100000000000000000000000000000000009 -S31540048D2000000000000000000000000000000000F9 -S31540048D3000000000000000000000000000000000E9 -S31540048D4000000000000000000000000000000000D9 -S31540048D5000000000000000000000000000000000C9 -S31540048D6000000000000000000000000000000000B9 -S31540048D7000000000000000000000000000000000A9 -S31540048D800000000000000000000000000000000099 -S31540048D900000000000000000000000000000000089 -S31540048DA00000000000000000000000000000000079 -S31540048DB00000000000000000000000000000000069 -S31540048DC00000000000000000000000000000000059 -S31540048DD00000000000000000000000000000000049 -S31540048DE00000000000000000000000000000000039 -S31540048DF00000000000000000000000000000000029 -S31540048E000000000000000000000000000000000018 -S31540048E100000000000000000000000000000000008 -S31540048E2000000000000000000000000000000000F8 -S31540048E3000000000000000000000000000000000E8 -S31540048E4000000000000000000000000000000000D8 -S31540048E5000000000000000000000000000000000C8 -S31540048E6000000000000000000000000000000000B8 -S31540048E7000000000000000000000000000000000A8 -S31540048E800000000000000000000000000000000098 -S31540048E900000000000000000000000000000000088 -S31540048EA00000000000000000000000000000000078 -S31540048EB00000000000000000000000000000000068 -S31540048EC00000000000000000000000000000000058 -S31540048ED00000000000000000000000000000000048 -S31540048EE00000000000000000000000000000000038 -S31540048EF00000000000000000000000000000000028 -S31540048F000000000000000000000000000000000017 -S31540048F100000000000000000000000000000000007 -S31540048F2000000000000000000000000000000000F7 -S31540048F3000000000000000000000000000000000E7 -S31540048F4000000000000000000000000000000000D7 -S31540048F5000000000000000000000000000000000C7 -S31540048F6000000000000000000000000000000000B7 -S31540048F7000000000000000000000000000000000A7 -S31540048F800000000000000000000000000000000097 -S31540048F900000000000000000000000000000000087 -S31540048FA00000000000000000000000000000000077 -S31540048FB00000000000000000000000000000000067 -S31540048FC00000000000000000000000000000000057 -S31540048FD00000000000000000000000000000000047 -S31540048FE00000000000000000000000000000000037 -S31540048FF00000000000000000000000000000000027 -S315400490000000000000000000000000000000000016 -S315400490100000000000000000000000000000000006 -S3154004902000000000000000000000000000000000F6 -S3154004903000000000000000000000000000000000E6 -S3154004904000000000000000000000000000000000D6 -S3154004905000000000000000000000000000000000C6 -S3154004906000000000000000000000000000000000B6 -S3154004907000000000000000000000000000000000A6 -S315400490800000000000000000000000000000000096 -S315400490900000000000000000000000000000000086 -S315400490A00000000000000000000000000000000076 -S315400490B00000000000000000000000000000000066 -S315400490C00000000000000000000000000000000056 -S315400490D00000000000000000000000000000000046 -S315400490E00000000000000000000000000000000036 -S315400490F00000000000000000000000000000000026 -S315400491000000000000000000000000000000000015 -S315400491100000000000000000000000000000000005 -S3154004912000000000000000000000000000000000F5 -S3154004913000000000000000000000000000000000E5 -S3154004914000000000000000000000000000000000D5 -S3154004915000000000000000000000000000000000C5 -S3154004916000000000000000000000000000000000B5 -S3154004917000000000000000000000000000000000A5 -S315400491800000000000000000000000000000000095 -S315400491900000000000000000000000000000000085 -S315400491A00000000000000000000000000000000075 -S315400491B00000000000000000000000000000000065 -S315400491C00000000000000000000000000000000055 -S315400491D00000000000000000000000000000000045 -S315400491E00000000000000000000000000000000035 -S315400491F00000000000000000000000000000000025 -S315400492000000000000000000000000000000000014 -S315400492100000000000000000000000000000000004 -S3154004922000000000000000000000000000000000F4 -S3154004923000000000000000000000000000000000E4 -S3154004924000000000000000000000000000000000D4 -S3154004925000000000000000000000000000000000C4 -S3154004926000000000000000000000000000000000B4 -S3154004927000000000000000000000000000000000A4 -S315400492800000000000000000000000000000000094 -S315400492900000000000000000000000000000000084 -S315400492A00000000000000000000000000000000074 -S315400492B00000000000000000000000000000000064 -S315400492C00000000000000000000000000000000054 -S315400492D00000000000000000000000000000000044 -S315400492E00000000000000000000000000000000034 -S315400492F00000000000000000000000000000000024 -S315400493000000000000000000000000000000000013 -S315400493100000000000000000000000000000000003 -S3154004932000000000000000000000000000000000F3 -S3154004933000000000000000000000000000000000E3 -S3154004934000000000000000000000000000000000D3 -S3154004935000000000000000000000000000000000C3 -S3154004936000000000000000000000000000000000B3 -S3154004937000000000000000000000000000000000A3 -S315400493800000000000000000000000000000000093 -S315400493900000000000000000000000000000000083 -S315400493A00000000000000000000000000000000073 -S315400493B00000000000000000000000000000000063 -S315400493C00000000000000000000000000000000053 -S315400493D00000000000000000000000000000000043 -S315400493E00000000000000000000000000000000033 -S315400493F00000000000000000000000000000000023 -S315400494000000000000000000000000000000000012 -S315400494100000000000000000000000000000000002 -S3154004942000000000000000000000000000000000F2 -S3154004943000000000000000000000000000000000E2 -S3154004944000000000000000000000000000000000D2 -S3154004945000000000000000000000000000000000C2 -S3154004946000000000000000000000000000000000B2 -S3154004947000000000000000000000000000000000A2 -S315400494800000000000000000000000000000000092 -S315400494900000000000000000000000000000000082 -S315400494A00000000000000000000000000000000072 -S315400494B00000000000000000000000000000000062 -S315400494C00000000000000000000000000000000052 -S315400494D00000000000000000000000000000000042 -S315400494E00000000000000000000000000000000032 -S315400494F00000000000000000000000000000000022 -S315400495000000000000000000000000000000000011 -S315400495100000000000000000000000000000000001 -S3154004952000000000000000000000000000000000F1 -S3154004953000000000000000000000000000000000E1 -S3154004954000000000000000000000000000000000D1 -S3154004955000000000000000000000000000000000C1 -S3154004956000000000000000000000000000000000B1 -S3154004957000000000000000000000000000000000A1 -S315400495800000000000000000000000000000000091 -S315400495900000000000000000000000000000000081 -S315400495A00000000000000000000000000000000071 -S315400495B00000000000000000000000000000000061 -S315400495C00000000000000000000000000000000051 -S315400495D00000000000000000000000000000000041 -S315400495E00000000000000000000000000000000031 -S315400495F00000000000000000000000000000000021 -S315400496000000000000000000000000000000000010 -S315400496100000000000000000000000000000000000 -S3154004962000000000000000000000000000000000F0 -S3154004963000000000000000000000000000000000E0 -S3154004964000000000000000000000000000000000D0 -S3154004965000000000000000000000000000000000C0 -S3154004966000000000000000000000000000000000B0 -S3154004967000000000000000000000000000000000A0 -S315400496800000000000000000000000000000000090 -S315400496900000000000000000000000000000000080 -S315400496A00000000000000000000000000000000070 -S315400496B00000000000000000000000000000000060 -S315400496C00000000000000000000000000000000050 -S315400496D00000000000000000000000000000000040 -S315400496E00000000000000000000000000000000030 -S315400496F00000000000000000000000000000000020 -S31540049700000000000000000000000000000000000F -S3154004971000000000000000000000000000000000FF -S3154004972000000000000000000000000000000000EF -S3154004973000000000000000000000000000000000DF -S3154004974000000000000000000000000000000000CF -S3154004975000000000000000000000000000000000BF -S3154004976000000000000000000000000000000000AF -S31540049770000000000000000000000000000000009F -S31540049780000000000000000000000000000000008F -S31540049790000000000000000000000000000000007F -S315400497A0000000000000000000000000000000006F -S315400497B0000000000000000000000000000000005F -S315400497C0000000000000000000000000000000004F -S315400497D0000000000000000000000000000000003F -S315400497E0000000000000000000000000000000002F -S315400497F0000000000000000000000000000000001F -S31540049800000000000000000000000000000000000E -S3154004981000000000000000000000000000000000FE -S3154004982000000000000000000000000000000000EE -S3154004983000000000000000000000000000000000DE -S3154004984000000000000000000000000000000000CE -S3154004985000000000000000000000000000000000BE -S3154004986000000000000000000000000000000000AE -S31540049870000000000000000000000000000000009E -S31540049880000000000000000000000000000000008E -S31540049890000000000000000000000000000000007E -S315400498A0000000000000000000000000000000006E -S315400498B0000000000000000000000000000000005E -S315400498C0000000000000000000000000000000004E -S315400498D0000000000000000000000000000000003E -S315400498E0000000000000000000000000000000002E -S315400498F0000000000000000000000000000000001E -S31540049900000000000000000000000000000000000D -S3154004991000000000000000000000000000000000FD -S3154004992000000000000000000000000000000000ED -S3154004993000000000000000000000000000000000DD -S3154004994000000000000000000000000000000000CD -S3154004995000000000000000000000000000000000BD -S3154004996000000000000000000000000000000000AD -S31540049970000000000000000000000000000000009D -S31540049980000000000000000000000000000000008D -S31540049990000000000000000000000000000000007D -S315400499A0000000000000000000000000000000006D -S315400499B0000000000000000000000000000000005D -S315400499C0000000000000000000000000000000004D -S315400499D0000000000000000000000000000000003D -S315400499E0000000000000000000000000000000002D -S315400499F0000000000000000000000000000000001D -S31540049A00000000000000000000000000000000000C -S31540049A1000000000000000000000000000000000FC -S31540049A2000000000000000000000000000000000EC -S31540049A3000000000000000000000000000000000DC -S31540049A4000000000000000000000000000000000CC -S31540049A5000000000000000000000000000000000BC -S31540049A6000000000000000000000000000000000AC -S31540049A70000000000000000000000000000000009C -S31540049A80000000000000000000000000000000008C -S31540049A90000000000000000000000000000000007C -S31540049AA0000000000000000000000000000000006C -S31540049AB0000000000000000000000000000000005C -S31540049AC0000000000000000000000000000000004C -S31540049AD0000000000000000000000000000000003C -S31540049AE0000000000000000000000000000000002C -S31540049AF0000000000000000000000000000000001C -S31540049B00000000000000000000000000000000000B -S31540049B1000000000000000000000000000000000FB -S31540049B2000000000000000000000000000000000EB -S31540049B3000000000000000000000000000000000DB -S31540049B4000000000000000000000000000000000CB -S31540049B5000000000000000000000000000000000BB -S31540049B6000000000000000000000000000000000AB -S31540049B70000000000000000000000000000000009B -S31540049B80000000000000000000000000000000008B -S31540049B90000000000000000000000000000000007B -S31540049BA0000000000000000000000000000000006B -S31540049BB0000000000000000000000000000000005B -S31540049BC0000000000000000000000000000000004B -S31540049BD0000000000000000000000000000000003B -S31540049BE0000000000000000000000000000000002B -S31540049BF0000000000000000000000000000000001B -S31540049C00000000000000000000000000000000000A -S31540049C1000000000000000000000000000000000FA -S31540049C2000000000000000000000000000000000EA -S31540049C3000000000000000000000000000000000DA -S31540049C4000000000000000000000000000000000CA -S31540049C5000000000000000000000000000000000BA -S31540049C6000000000000000000000000000000000AA -S31540049C70000000000000000000000000000000009A -S31540049C80000000000000000000000000000000008A -S31540049C90000000000000000000000000000000007A -S31540049CA0000000000000000000000000000000006A -S31540049CB0000000000000000000000000000000005A -S31540049CC0000000000000000000000000000000004A -S31540049CD0000000000000000000000000000000003A -S31540049CE0000000000000000000000000000000002A -S31540049CF0000000000000000000000000000000001A -S31540049D000000000000000000000000000000000009 -S31540049D1000000000000000000000000000000000F9 -S31540049D2000000000000000000000000000000000E9 -S31540049D3000000000000000000000000000000000D9 -S31540049D4000000000000000000000000000000000C9 -S31540049D5000000000000000000000000000000000B9 -S31540049D6000000000000000000000000000000000A9 -S31540049D700000000000000000000000000000000099 -S31540049D800000000000000000000000000000000089 -S31540049D900000000000000000000000000000000079 -S31540049DA00000000000000000000000000000000069 -S31540049DB00000000000000000000000000000000059 -S31540049DC00000000000000000000000000000000049 -S31540049DD00000000000000000000000000000000039 -S31540049DE00000000000000000000000000000000029 -S31540049DF00000000000000000000000000000000019 -S31540049E000000000000000000000000000000000008 -S31540049E1000000000000000000000000000000000F8 -S31540049E2000000000000000000000000000000000E8 -S31540049E3000000000000000000000000000000000D8 -S31540049E4000000000000000000000000000000000C8 -S31540049E5000000000000000000000000000000000B8 -S31540049E6000000000000000000000000000000000A8 -S31540049E700000000000000000000000000000000098 -S31540049E800000000000000000000000000000000088 -S31540049E900000000000000000000000000000000078 -S31540049EA00000000000000000000000000000000068 -S31540049EB00000000000000000000000000000000058 -S31540049EC00000000000000000000000000000000048 -S31540049ED00000000000000000000000000000000038 -S31540049EE00000000000000000000000000000000028 -S31540049EF00000000000000000000000000000000018 -S31540049F000000000000000000000000000000000007 -S31540049F1000000000000000000000000000000000F7 -S31540049F2000000000000000000000000000000000E7 -S31540049F3000000000000000000000000000000000D7 -S31540049F4000000000000000000000000000000000C7 -S31540049F5000000000000000000000000000000000B7 -S31540049F6000000000000000000000000000000000A7 -S31540049F700000000000000000000000000000000097 -S31540049F800000000000000000000000000000000087 -S31540049F900000000000000000000000000000000077 -S31540049FA00000000000000000000000000000000067 -S31540049FB00000000000000000000000000000000057 -S31540049FC00000000000000000000000000000000047 -S31540049FD00000000000000000000000000000000037 -S31540049FE00000000000000000000000000000000027 -S31540049FF00000000000000000000000000000000017 -S3154004A0000000000000000000000000000000000006 -S3154004A01000000000000000000000000000000000F6 -S3154004A02000000000000000000000000000000000E6 -S3154004A03000000000000000000000000000000000D6 -S3154004A04000000000000000000000000000000000C6 -S3154004A05000000000000000000000000000000000B6 -S3154004A06000000000000000000000000000000000A6 -S3154004A0700000000000000000000000000000000096 -S3154004A0800000000000000000000000000000000086 -S3154004A0900000000000000000000000000000000076 -S3154004A0A00000000000000000000000000000000066 -S3154004A0B00000000000000000000000000000000056 -S3154004A0C00000000000000000000000000000000046 -S3154004A0D00000000000000000000000000000000036 -S3154004A0E00000000000000000000000000000000026 -S3154004A0F00000000000000000000000000000000016 -S3154004A1000000000000000000000000000000000005 -S3154004A11000000000000000000000000000000000F5 -S3154004A12000000000000000000000000000000000E5 -S3154004A13000000000000000000000000000000000D5 -S3154004A14000000000000000000000000000000000C5 -S3154004A15000000000000000000000000000000000B5 -S3154004A16000000000000000000000000000000000A5 -S3154004A1700000000000000000000000000000000095 -S3154004A1800000000000000000000000000000000085 -S3154004A1900000000000000000000000000000000075 -S3154004A1A00000000000000000000000000000000065 -S3154004A1B00000000000000000000000000000000055 -S3154004A1C00000000000000000000000000000000045 -S3154004A1D00000000000000000000000000000000035 -S3154004A1E00000000000000000000000000000000025 -S3154004A1F00000000000000000000000000000000015 -S3154004A2000000000000000000000000000000000004 -S3154004A21000000000000000000000000000000000F4 -S3154004A22000000000000000000000000000000000E4 -S3154004A23000000000000000000000000000000000D4 -S3154004A24000000000000000000000000000000000C4 -S3154004A25000000000000000000000000000000000B4 -S3154004A26000000000000000000000000000000000A4 -S3154004A2700000000000000000000000000000000094 -S3154004A2800000000000000000000000000000000084 -S3154004A2900000000000000000000000000000000074 -S3154004A2A00000000000000000000000000000000064 -S3154004A2B00000000000000000000000000000000054 -S3154004A2C00000000000000000000000000000000044 -S3154004A2D00000000000000000000000000000000034 -S3154004A2E00000000000000000000000000000000024 -S3154004A2F00000000000000000000000000000000014 -S3154004A3000000000000000000000000000000000003 -S3154004A31000000000000000000000000000000000F3 -S3154004A32000000000000000000000000000000000E3 -S3154004A33000000000000000000000000000000000D3 -S3154004A34000000000000000000000000000000000C3 -S3154004A35000000000000000000000000000000000B3 -S3154004A36000000000000000000000000000000000A3 -S3154004A3700000000000000000000000000000000093 -S3154004A3800000000000000000000000000000000083 -S3154004A3900000000000000000000000000000000073 -S3154004A3A00000000000000000000000000000000063 -S3154004A3B00000000000000000000000000000000053 -S3154004A3C00000000000000000000000000000000043 -S3154004A3D00000000000000000000000000000000033 -S3154004A3E00000000000000000000000000000000023 -S3154004A3F00000000000000000000000000000000013 -S3154004A4000000000000000000000000000000000002 -S3154004A41000000000000000000000000000000000F2 -S3154004A42000000000000000000000000000000000E2 -S3154004A43000000000000000000000000000000000D2 -S3154004A44000000000000000000000000000000000C2 -S3154004A45000000000000000000000000000000000B2 -S3154004A46000000000000000000000000000000000A2 -S3154004A4700000000000000000000000000000000092 -S3154004A4800000000000000000000000000000000082 -S3154004A4900000000000000000000000000000000072 -S3154004A4A00000000000000000000000000000000062 -S3154004A4B00000000000000000000000000000000052 -S3154004A4C00000000000000000000000000000000042 -S3154004A4D00000000000000000000000000000000032 -S3154004A4E00000000000000000000000000000000022 -S3154004A4F00000000000000000000000000000000012 -S3154004A5000000000000000000000000000000000001 -S3154004A51000000000000000000000000000000000F1 -S3154004A52000000000000000000000000000000000E1 -S3154004A53000000000000000000000000000000000D1 -S3154004A54000000000000000000000000000000000C1 -S3154004A55000000000000000000000000000000000B1 -S3154004A56000000000000000000000000000000000A1 -S3154004A5700000000000000000000000000000000091 -S3154004A5800000000000000000000000000000000081 -S3154004A5900000000000000000000000000000000071 -S3154004A5A00000000000000000000000000000000061 -S3154004A5B00000000000000000000000000000000051 -S3154004A5C00000000000000000000000000000000041 -S3154004A5D00000000000000000000000000000000031 -S3154004A5E00000000000000000000000000000000021 -S3154004A5F00000000000000000000000000000000011 -S3154004A6000000000000000000000000000000000000 -S3154004A61000000000000000000000000000000000F0 -S3154004A62000000000000000000000000000000000E0 -S3154004A63000000000000000000000000000000000D0 -S3154004A64000000000000000000000000000000000C0 -S3154004A65000000000000000000000000000000000B0 -S3154004A66000000000000000000000000000000000A0 -S3154004A6700000000000000000000000000000000090 -S3154004A6800000000000000000000000000000000080 -S3154004A6900000000000000000000000000000000070 -S3154004A6A00000000000000000000000000000000060 -S3154004A6B00000000000000000000000000000000050 -S3154004A6C00000000000000000000000000000000040 -S3154004A6D00000000000000000000000000000000030 -S3154004A6E00000000000000000000000000000000020 -S3154004A6F00000000000000000000000000000000010 -S3154004A70000000000000000000000000000000000FF -S3154004A71000000000000000000000000000000000EF -S3154004A72000000000000000000000000000000000DF -S3154004A73000000000000000000000000000000000CF -S3154004A74000000000000000000000000000000000BF -S3154004A75000000000000000000000000000000000AF -S3154004A760000000000000000000000000000000009F -S3154004A770000000000000000000000000000000008F -S3154004A780000000000000000000000000000000007F -S3154004A790000000000000000000000000000000006F -S3154004A7A0000000000000000000000000000000005F -S3154004A7B0000000000000000000000000000000004F -S3154004A7C0000000000000000000000000000000003F -S3154004A7D0000000000000000000000000000000002F -S3154004A7E0000000000000000000000000000000001F -S3154004A7F0000000000000000000000000000000000F -S3154004A80000000000000000000000000000000000FE -S3154004A81000000000000000000000000000000000EE -S3154004A82000000000000000000000000000000000DE -S3154004A83000000000000000000000000000000000CE -S3154004A84000000000000000000000000000000000BE -S3154004A85000000000000000000000000000000000AE -S3154004A860000000000000000000000000000000009E -S3154004A870000000000000000000000000000000008E -S3154004A880000000000000000000000000000000007E -S3154004A890000000000000000000000000000000006E -S3154004A8A0000000000000000000000000000000005E -S3154004A8B0000000000000000000000000000000004E -S3154004A8C0000000000000000000000000000000003E -S3154004A8D0000000000000000000000000000000002E -S3154004A8E0000000000000000000000000000000001E -S3154004A8F0000000000000000000000000000000000E -S3154004A90000000000000000000000000000000000FD -S3154004A91000000000000000000000000000000000ED -S3154004A92000000000000000000000000000000000DD -S3154004A93000000000000000000000000000000000CD -S3154004A94000000000000000000000000000000000BD -S3154004A95000000000000000000000000000000000AD -S3154004A960000000000000000000000000000000009D -S3154004A970000000000000000000000000000000008D -S3154004A980000000000000000000000000000000007D -S3154004A990000000000000000000000000000000006D -S3154004A9A0000000000000000000000000000000005D -S3154004A9B0000000000000000000000000000000004D -S3154004A9C0000000000000000000000000000000003D -S3154004A9D0000000000000000000000000000000002D -S3154004A9E0000000000000000000000000000000001D -S3154004A9F0000000000000000000000000000000000D -S3154004AA0000000000000000000000000000000000FC -S3154004AA1000000000000000000000000000000000EC -S3154004AA2000000000000000000000000000000000DC -S3154004AA3000000000000000000000000000000000CC -S3154004AA4000000000000000000000000000000000BC -S3154004AA5000000000000000000000000000000000AC -S3154004AA60000000000000000000000000000000009C -S3154004AA70000000000000000000000000000000008C -S3154004AA80000000000000000000000000000000007C -S3154004AA90000000000000000000000000000000006C -S3154004AAA0000000000000000000000000000000005C -S3154004AAB0000000000000000000000000000000004C -S3154004AAC0000000000000000000000000000000003C -S3154004AAD0000000000000000000000000000000002C -S3154004AAE0000000000000000000000000000000001C -S3154004AAF0000000000000000000000000000000000C -S3154004AB0000000000000000000000000000000000FB -S3154004AB1000000000000000000000000000000000EB -S3154004AB2000000000000000000000000000000000DB -S3154004AB3000000000000000000000000000000000CB -S3154004AB4000000000000000000000000000000000BB -S3154004AB5000000000000000000000000000000000AB -S3154004AB60000000000000000000000000000000009B -S3154004AB70000000000000000000000000000000008B -S3154004AB80000000000000000000000000000000007B -S3154004AB90000000000000000000000000000000006B -S3154004ABA0000000000000000000000000000000005B -S3154004ABB0000000000000000000000000000000004B -S3154004ABC0000000000000000000000000000000003B -S3154004ABD0000000000000000000000000000000002B -S3154004ABE0000000000000000000000000000000001B -S3154004ABF0000000000000000000000000000000000B -S3154004AC0000000000000000000000000000000000FA -S3154004AC1000000000000000000000000000000000EA -S3154004AC2000000000000000000000000000000000DA -S3154004AC3000000000000000000000000000000000CA -S3154004AC4000000000000000000000000000000000BA -S3154004AC5000000000000000000000000000000000AA -S3154004AC60000000000000000000000000000000009A -S3154004AC70000000000000000000000000000000008A -S3154004AC80000000000000000000000000000000007A -S3154004AC90000000000000000000000000000000006A -S3154004ACA0000000000000000000000000000000005A -S3154004ACB0000000000000000000000000000000004A -S3154004ACC0000000000000000000000000000000003A -S3154004ACD0000000000000000000000000000000002A -S3154004ACE0000000000000000000000000000000001A -S3154004ACF0000000000000000000000000000000000A -S3154004AD0000000000000000000000000000000000F9 -S3154004AD1000000000000000000000000000000000E9 -S3154004AD2000000000000000000000000000000000D9 -S3154004AD3000000000000000000000000000000000C9 -S3154004AD4000000000000000000000000000000000B9 -S3154004AD5000000000000000000000000000000000A9 -S3154004AD600000000000000000000000000000000099 -S3154004AD700000000000000000000000000000000089 -S3154004AD800000000000000000000000000000000079 -S3154004AD900000000000000000000000000000000069 -S3154004ADA00000000000000000000000000000000059 -S3154004ADB00000000000000000000000000000000049 -S3154004ADC00000000000000000000000000000000039 -S3154004ADD00000000000000000000000000000000029 -S3154004ADE00000000000000000000000000000000019 -S3154004ADF00000000000000000000000000000000009 -S3154004AE0000000000000000000000000000000000F8 -S3154004AE1000000000000000000000000000000000E8 -S3154004AE2000000000000000000000000000000000D8 -S3154004AE3000000000000000000000000000000000C8 -S3154004AE4000000000000000000000000000000000B8 -S3154004AE5000000000000000000000000000000000A8 -S3154004AE600000000000000000000000000000000098 -S3154004AE700000000000000000000000000000000088 -S3154004AE800000000000000000000000000000000078 -S3154004AE900000000000000000000000000000000068 -S3154004AEA00000000000000000000000000000000058 -S3154004AEB00000000000000000000000000000000048 -S3154004AEC00000000000000000000000000000000038 -S3154004AED00000000000000000000000000000000028 -S3154004AEE00000000000000000000000000000000018 -S3154004AEF00000000000000000000000000000000008 -S3154004AF0000000000000000000000000000000000F7 -S3154004AF1000000000000000000000000000000000E7 -S3154004AF2000000000000000000000000000000000D7 -S3154004AF3000000000000000000000000000000000C7 -S3154004AF4000000000000000000000000000000000B7 -S3154004AF5000000000000000000000000000000000A7 -S3154004AF600000000000000000000000000000000097 -S3154004AF700000000000000000000000000000000087 -S3154004AF800000000000000000000000000000000077 -S3154004AF900000000000000000000000000000000067 -S3154004AFA00000000000000000000000000000000057 -S3154004AFB00000000000000000000000000000000047 -S3154004AFC00000000000000000000000000000000037 -S3154004AFD00000000000000000000000000000000027 -S3154004AFE00000000000000000000000000000000017 -S3154004AFF00000000000000000000000000000000007 -S3154004B00000000000000000000000000000000000F6 -S3154004B01000000000000000000000000000000000E6 -S3154004B02000000000000000000000000000000000D6 -S3154004B03000000000000000000000000000000000C6 -S3154004B04000000000000000000000000000000000B6 -S3154004B05000000000000000000000000000000000A6 -S3154004B0600000000000000000000000000000000096 -S3154004B0700000000000000000000000000000000086 -S3154004B0800000000000000000000000000000000076 -S3154004B0900000000000000000000000000000000066 -S3154004B0A00000000000000000000000000000000056 -S3154004B0B00000000000000000000000000000000046 -S3154004B0C00000000000000000000000000000000036 -S3154004B0D00000000000000000000000000000000026 -S3154004B0E00000000000000000000000000000000016 -S3154004B0F00000000000000000000000000000000006 -S3154004B10000000000000000000000000000000000F5 -S3154004B11000000000000000000000000000000000E5 -S3154004B12000000000000000000000000000000000D5 -S3154004B13000000000000000000000000000000000C5 -S3154004B14000000000000000000000000000000000B5 -S3154004B15000000000000000000000000000000000A5 -S3154004B1600000000000000000000000000000000095 -S3154004B1700000000000000000000000000000000085 -S3154004B1800000000000000000000000000000000075 -S3154004B1900000000000000000000000000000000065 -S3154004B1A00000000000000000000000000000000055 -S3154004B1B00000000000000000000000000000000045 -S3154004B1C00000000000000000000000000000000035 -S3154004B1D00000000000000000000000000000000025 -S3154004B1E00000000000000000000000000000000015 -S3154004B1F00000000000000000000000000000000005 -S3154004B20000000000000000000000000000000000F4 -S3154004B21000000000000000000000000000000000E4 -S3154004B22000000000000000000000000000000000D4 -S3154004B23000000000000000000000000000000000C4 -S3154004B24000000000000000000000000000000000B4 -S3154004B25000000000000000000000000000000000A4 -S3154004B2600000000000000000000000000000000094 -S3154004B2700000000000000000000000000000000084 -S3154004B2800000000000000000000000000000000074 -S3154004B2900000000000000000000000000000000064 -S3154004B2A00000000000000000000000000000000054 -S3154004B2B00000000000000000000000000000000044 -S3154004B2C00000000000000000000000000000000034 -S3154004B2D00000000000000000000000000000000024 -S3154004B2E00000000000000000000000000000000014 -S3154004B2F00000000000000000000000000000000004 -S3154004B30000000000000000000000000000000000F3 -S3154004B31000000000000000000000000000000000E3 -S3154004B32000000000000000000000000000000000D3 -S3154004B33000000000000000000000000000000000C3 -S3154004B34000000000000000000000000000000000B3 -S3154004B35000000000000000000000000000000000A3 -S3154004B3600000000000000000000000000000000093 -S3154004B3700000000000000000000000000000000083 -S3154004B3800000000000000000000000000000000073 -S3154004B3900000000000000000000000000000000063 -S3154004B3A00000000000000000000000000000000053 -S3154004B3B00000000000000000000000000000000043 -S3154004B3C00000000000000000000000000000000033 -S3154004B3D00000000000000000000000000000000023 -S3154004B3E00000000000000000000000000000000013 -S3154004B3F00000000000000000000000000000000003 -S3154004B40000000000000000000000000000000000F2 -S3154004B41000000000000000000000000000000000E2 -S3154004B42000000000000000000000000000000000D2 -S3154004B43000000000000000000000000000000000C2 -S3154004B44000000000000000000000000000000000B2 -S3154004B45000000000000000000000000000000000A2 -S3154004B4600000000000000000000000000000000092 -S3154004B4700000000000000000000000000000000082 -S3154004B4800000000000000000000000000000000072 -S3154004B4900000000000000000000000000000000062 -S3154004B4A00000000000000000000000000000000052 -S3154004B4B00000000000000000000000000000000042 -S3154004B4C00000000000000000000000000000000032 -S3154004B4D00000000000000000000000000000000022 -S3154004B4E00000000000000000000000000000000012 -S3154004B4F00000000000000000000000000000000002 -S3154004B50000000000000000000000000000000000F1 -S3154004B51000000000000000000000000000000000E1 -S3154004B52000000000000000000000000000000000D1 -S3154004B53000000000000000000000000000000000C1 -S3154004B54000000000000000000000000000000000B1 -S3154004B55000000000000000000000000000000000A1 -S3154004B5600000000000000000000000000000000091 -S3154004B5700000000000000000000000000000000081 -S3154004B5800000000000000000000000000000000071 -S3154004B5900000000000000000000000000000000061 -S3154004B5A00000000000000000000000000000000051 -S3154004B5B00000000000000000000000000000000041 -S3154004B5C00000000000000000000000000000000031 -S3154004B5D00000000000000000000000000000000021 -S3154004B5E00000000000000000000000000000000011 -S3154004B5F00000000000000000000000000000000001 -S3154004B60000000000000000000000000000000000F0 -S3154004B61000000000000000000000000000000000E0 -S3154004B62000000000000000000000000000000000D0 -S3154004B63000000000000000000000000000000000C0 -S3154004B64000000000000000000000000000000000B0 -S3154004B65000000000000000000000000000000000A0 -S3154004B6600000000000000000000000000000000090 -S3154004B6700000000000000000000000000000000080 -S3154004B6800000000000000000000000000000000070 -S3154004B6900000000000000000000000000000000060 -S3154004B6A00000000000000000000000000000000050 -S3154004B6B00000000000000000000000000000000040 -S3154004B6C00000000000000000000000000000000030 -S3154004B6D00000000000000000000000000000000020 -S3154004B6E00000000000000000000000000000000010 -S3154004B6F00000000000000000000000000000000000 -S3154004B70000000000000000000000000000000000EF -S3154004B71000000000000000000000000000000000DF -S3154004B72000000000000000000000000000000000CF -S3154004B73000000000000000000000000000000000BF -S3154004B74000000000000000000000000000000000AF -S3154004B750000000000000000000000000000000009F -S3154004B760000000000000000000000000000000008F -S3154004B770000000000000000000000000000000007F -S3154004B780000000000000000000000000000000006F -S3154004B790000000000000000000000000000000005F -S3154004B7A0000000000000000000000000000000004F -S3154004B7B0000000000000000000000000000000003F -S3154004B7C0000000000000000000000000000000002F -S3154004B7D0000000000000000000000000000000001F -S3154004B7E0000000000000000000000000000000000F -S3154004B7F000000000000000000000000000000000FF -S3154004B80000000000000000000000000000000000EE -S3154004B81000000000000000000000000000000000DE -S3154004B82000000000000000000000000000000000CE -S3154004B83000000000000000000000000000000000BE -S3154004B84000000000000000000000000000000000AE -S3154004B850000000000000000000000000000000009E -S3154004B860000000000000000000000000000000008E -S3154004B870000000000000000000000000000000007E -S3154004B880000000000000000000000000000000006E -S3154004B890000000000000000000000000000000005E -S3154004B8A0000000000000000000000000000000004E -S3154004B8B0000000000000000000000000000000003E -S3154004B8C0000000000000000000000000000000002E -S3154004B8D0000000000000000000000000000000001E -S3154004B8E0000000000000000000000000000000000E -S3154004B8F000000000000000000000000000000000FE -S3154004B90000000000000000000000000000000000ED -S3154004B91000000000000000000000000000000000DD -S3154004B92000000000000000000000000000000000CD -S3154004B93000000000000000000000000000000000BD -S3154004B94000000000000000000000000000000000AD -S3154004B950000000000000000000000000000000009D -S3154004B960000000000000000000000000000000008D -S3154004B970000000000000000000000000000000007D -S3154004B980000000000000000000000000000000006D -S3154004B990000000000000000000000000000000005D -S3154004B9A0000000000000000000000000000000004D -S3154004B9B0000000000000000000000000000000003D -S3154004B9C0000000000000000000000000000000002D -S3154004B9D0000000000000000000000000000000001D -S3154004B9E0000000000000000000000000000000000D -S3154004B9F000000000000000000000000000000000FD -S3154004BA0000000000000000000000000000000000EC -S3154004BA1000000000000000000000000000000000DC -S3154004BA2000000000000000000000000000000000CC -S3154004BA3000000000000000000000000000000000BC -S3154004BA4000000000000000000000000000000000AC -S3154004BA50000000000000000000000000000000009C -S3154004BA60000000000000000000000000000000008C -S3154004BA70000000000000000000000000000000007C -S3154004BA80000000000000000000000000000000006C -S3154004BA90000000000000000000000000000000005C -S3154004BAA0000000000000000000000000000000004C -S3154004BAB0000000000000000000000000000000003C -S3154004BAC0000000000000000000000000000000002C -S3154004BAD0000000000000000000000000000000001C -S3154004BAE0000000000000000000000000000000000C -S3154004BAF000000000000000000000000000000000FC -S3154004BB0000000000000000000000000000000000EB -S3154004BB1000000000000000000000000000000000DB -S3154004BB2000000000000000000000000000000000CB -S3154004BB3000000000000000000000000000000000BB -S3154004BB4000000000000000000000000000000000AB -S3154004BB50000000000000000000000000000000009B -S3154004BB60000000000000000000000000000000008B -S3154004BB70000000000000000000000000000000007B -S3154004BB80000000000000000000000000000000006B -S3154004BB90000000000000000000000000000000005B -S3154004BBA0000000000000000000000000000000004B -S3154004BBB0000000000000000000000000000000003B -S3154004BBC0000000000000000000000000000000002B -S3154004BBD0000000000000000000000000000000001B -S3154004BBE0000000000000000000000000000000000B -S3154004BBF000000000000000000000000000000000FB -S3154004BC0000000000000000000000000000000000EA -S3154004BC1000000000000000000000000000000000DA -S3154004BC2000000000000000000000000000000000CA -S3154004BC3000000000000000000000000000000000BA -S3154004BC4000000000000000000000000000000000AA -S3154004BC50000000000000000000000000000000009A -S3154004BC60000000000000000000000000000000008A -S3154004BC70000000000000000000000000000000007A -S3154004BC80000000000000000000000000000000006A -S3154004BC90000000000000000000000000000000005A -S3154004BCA0000000000000000000000000000000004A -S3154004BCB0000000000000000000000000000000003A -S3154004BCC0000000000000000000000000000000002A -S3154004BCD0000000000000000000000000000000001A -S3154004BCE0000000000000000000000000000000000A -S3154004BCF000000000000000000000000000000000FA -S3154004BD0000000000000000000000000000000000E9 -S3154004BD1000000000000000000000000000000000D9 -S3154004BD2000000000000000000000000000000000C9 -S3154004BD3000000000000000000000000000000000B9 -S3154004BD4000000000000000000000000000000000A9 -S3154004BD500000000000000000000000000000000099 -S3154004BD600000000000000000000000000000000089 -S3154004BD700000000000000000000000000000000079 -S3154004BD800000000000000000000000000000000069 -S3154004BD900000000000000000000000000000000059 -S3154004BDA00000000000000000000000000000000049 -S3154004BDB00000000000000000000000000000000039 -S3154004BDC00000000000000000000000000000000029 -S3154004BDD00000000000000000000000000000000019 -S3154004BDE00000000000000000000000000000000009 -S3154004BDF000000000000000000000000000000000F9 -S3154004BE0000000000000000000000000000000000E8 -S3154004BE1000000000000000000000000000000000D8 -S3154004BE2000000000000000000000000000000000C8 -S3154004BE3000000000000000000000000000000000B8 -S3154004BE4000000000000000000000000000000000A8 -S3154004BE500000000000000000000000000000000098 -S3154004BE600000000000000000000000000000000088 -S3154004BE700000000000000000000000000000000078 -S3154004BE800000000000000000000000000000000068 -S3154004BE900000000000000000000000000000000058 -S3154004BEA00000000000000000000000000000000048 -S3154004BEB00000000000000000000000000000000038 -S3154004BEC00000000000000000000000000000000028 -S3154004BED00000000000000000000000000000000018 -S3154004BEE00000000000000000000000000000000008 -S3154004BEF000000000000000000000000000000000F8 -S3154004BF0000000000000000000000000000000000E7 -S3154004BF1000000000000000000000000000000000D7 -S3154004BF2000000000000000000000000000000000C7 -S3154004BF3000000000000000000000000000000000B7 -S3154004BF4000000000000000000000000000000000A7 -S3154004BF500000000000000000000000000000000097 -S3154004BF600000000000000000000000000000000087 -S3154004BF700000000000000000000000000000000077 -S3154004BF800000000000000000000000000000000067 -S3154004BF900000000000000000000000000000000057 -S3154004BFA00000000000000000000000000000000047 -S3154004BFB00000000000000000000000000000000037 -S3154004BFC00000000000000000000000000000000027 -S3154004BFD00000000000000000000000000000000017 -S3154004BFE00000000000000000000000000000000007 -S3154004BFF000000000000000000000000000000000F7 -S3154004C00000000000000000000000000000000000E6 -S3154004C01000000000000000000000000000000000D6 -S3154004C02000000000000000000000000000000000C6 -S3154004C03000000000000000000000000000000000B6 -S3154004C04000000000000000000000000000000000A6 -S3154004C0500000000000000000000000000000000096 -S3154004C0600000000000000000000000000000000086 -S3154004C0700000000000000000000000000000000076 -S3154004C0800000000000000000000000000000000066 -S3154004C0900000000000000000000000000000000056 -S3154004C0A00000000000000000000000000000000046 -S3154004C0B00000000000000000000000000000000036 -S3154004C0C00000000000000000000000000000000026 -S3154004C0D00000000000000000000000000000000016 -S3154004C0E00000000000000000000000000000000006 -S3154004C0F000000000000000000000000000000000F6 -S3154004C10000000000000000000000000000000000E5 -S3154004C11000000000000000000000000000000000D5 -S3154004C12000000000000000000000000000000000C5 -S3154004C13000000000000000000000000000000000B5 -S3154004C14000000000000000000000000000000000A5 -S3154004C1500000000000000000000000000000000095 -S3154004C1600000000000000000000000000000000085 -S3154004C1700000000000000000000000000000000075 -S3154004C1800000000000000000000000000000000065 -S3154004C1900000000000000000000000000000000055 -S3154004C1A00000000000000000000000000000000045 -S3154004C1B00000000000000000000000000000000035 -S3154004C1C00000000000000000000000000000000025 -S3154004C1D00000000000000000000000000000000015 -S3154004C1E00000000000000000000000000000000005 -S3154004C1F000000000000000000000000000000000F5 -S3154004C20000000000000000000000000000000000E4 -S3154004C21000000000000000000000000000000000D4 -S3154004C22000000000000000000000000000000000C4 -S3154004C23000000000000000000000000000000000B4 -S3154004C24000000000000000000000000000000000A4 -S3154004C2500000000000000000000000000000000094 -S3154004C2600000000000000000000000000000000084 -S3154004C2700000000000000000000000000000000074 -S3154004C2800000000000000000000000000000000064 -S3154004C2900000000000000000000000000000000054 -S3154004C2A00000000000000000000000000000000044 -S3154004C2B00000000000000000000000000000000034 -S3154004C2C00000000000000000000000000000000024 -S3154004C2D00000000000000000000000000000000014 -S3154004C2E00000000000000000000000000000000004 -S3154004C2F000000000000000000000000000000000F4 -S3154004C30000000000000000000000000000000000E3 -S3154004C31000000000000000000000000000000000D3 -S3154004C32000000000000000000000000000000000C3 -S3154004C33000000000000000000000000000000000B3 -S3154004C34000000000000000000000000000000000A3 -S3154004C3500000000000000000000000000000000093 -S3154004C3600000000000000000000000000000000083 -S3154004C3700000000000000000000000000000000073 -S3154004C3800000000000000000000000000000000063 -S3154004C3900000000000000000000000000000000053 -S3154004C3A00000000000000000000000000000000043 -S3154004C3B00000000000000000000000000000000033 -S3154004C3C00000000000000000000000000000000023 -S3154004C3D00000000000000000000000000000000013 -S3154004C3E00000000000000000000000000000000003 -S3154004C3F000000000000000000000000000000000F3 -S3154004C40000000000000000000000000000000000E2 -S3154004C41000000000000000000000000000000000D2 -S3154004C42000000000000000000000000000000000C2 -S3154004C43000000000000000000000000000000000B2 -S3154004C44000000000000000000000000000000000A2 -S3154004C4500000000000000000000000000000000092 -S3154004C4600000000000000000000000000000000082 -S3154004C4700000000000000000000000000000000072 -S3154004C4800000000000000000000000000000000062 -S3154004C4900000000000000000000000000000000052 -S3154004C4A00000000000000000000000000000000042 -S3154004C4B00000000000000000000000000000000032 -S3154004C4C00000000000000000000000000000000022 -S3154004C4D00000000000000000000000000000000012 -S3154004C4E00000000000000000000000000000000002 -S3154004C4F000000000000000000000000000000000F2 -S3154004C50000000000000000000000000000000000E1 -S3154004C51000000000000000000000000000000000D1 -S3154004C52000000000000000000000000000000000C1 -S3154004C53000000000000000000000000000000000B1 -S3154004C54000000000000000000000000000000000A1 -S3154004C5500000000000000000000000000000000091 -S3154004C5600000000000000000000000000000000081 -S3154004C5700000000000000000000000000000000071 -S3154004C5800000000000000000000000000000000061 -S3154004C5900000000000000000000000000000000051 -S3154004C5A00000000000000000000000000000000041 -S3154004C5B00000000000000000000000000000000031 -S3154004C5C00000000000000000000000000000000021 -S3154004C5D00000000000000000000000000000000011 -S3154004C5E00000000000000000000000000000000001 -S3154004C5F000000000000000000000000000000000F1 -S3154004C60000000000000000000000000000000000E0 -S3154004C61000000000000000000000000000000000D0 -S3154004C62000000000000000000000000000000000C0 -S3154004C63000000000000000000000000000000000B0 -S3154004C64000000000000000000000000000000000A0 -S3154004C6500000000000000000000000000000000090 -S3154004C6600000000000000000000000000000000080 -S3154004C6700000000000000000000000000000000070 -S3154004C6800000000000000000000000000000000060 -S3154004C6900000000000000000000000000000000050 -S3154004C6A00000000000000000000000000000000040 -S3154004C6B00000000000000000000000000000000030 -S3154004C6C00000000000000000000000000000000020 -S3154004C6D00000000000000000000000000000000010 -S3154004C6E00000000000000000000000000000000000 -S3154004C6F000000000000000000000000000000000F0 -S3154004C70000000000000000000000000000000000DF -S3154004C71000000000000000000000000000000000CF -S3154004C72000000000000000000000000000000000BF -S3154004C73000000000000000000000000000000000AF -S3154004C740000000000000000000000000000000009F -S3154004C750000000000000000000000000000000008F -S3154004C760000000000000000000000000000000007F -S3154004C770000000000000000000000000000000006F -S3154004C780000000000000000000000000000000005F -S3154004C790000000000000000000000000000000004F -S3154004C7A0000000000000000000000000000000003F -S3154004C7B0000000000000000000000000000000002F -S3154004C7C0000000000000000000000000000000001F -S3154004C7D0000000000000000000000000000000000F -S3154004C7E000000000000000000000000000000000FF -S3154004C7F000000000000000000000000000000000EF -S3154004C80000000000000000000000000000000000DE -S3154004C81000000000000000000000000000000000CE -S3154004C82000000000000000000000000000000000BE -S3154004C83000000000000000000000000000000000AE -S3154004C840000000000000000000000000000000009E -S3154004C850000000000000000000000000000000008E -S3154004C860000000000000000000000000000000007E -S3154004C870000000000000000000000000000000006E -S3154004C880000000000000000000000000000000005E -S3154004C890000000000000000000000000000000004E -S3154004C8A0000000000000000000000000000000003E -S3154004C8B0000000000000000000000000000000002E -S3154004C8C0000000000000000000000000000000001E -S3154004C8D0000000000000000000000000000000000E -S3154004C8E000000000000000000000000000000000FE -S3154004C8F000000000000000000000000000000000EE -S3154004C90000000000000000000000000000000000DD -S3154004C91000000000000000000000000000000000CD -S3154004C92000000000000000000000000000000000BD -S3154004C93000000000000000000000000000000000AD -S3154004C940000000000000000000000000000000009D -S3154004C950000000000000000000000000000000008D -S3154004C960000000000000000000000000000000007D -S3154004C970000000000000000000000000000000006D -S3154004C980000000000000000000000000000000005D -S3154004C990000000000000000000000000000000004D -S3154004C9A0000000000000000000000000000000003D -S3154004C9B0000000000000000000000000000000002D -S3154004C9C0000000000000000000000000000000001D -S3154004C9D0000000000000000000000000000000000D -S3154004C9E000000000000000000000000000000000FD -S3154004C9F000000000000000000000000000000000ED -S3154004CA0000000000000000000000000000000000DC -S3154004CA1000000000000000000000000000000000CC -S3154004CA2000000000000000000000000000000000BC -S3154004CA3000000000000000000000000000000000AC -S3154004CA40000000000000000000000000000000009C -S3154004CA50000000000000000000000000000000008C -S3154004CA60000000000000000000000000000000007C -S3154004CA70000000000000000000000000000000006C -S3154004CA80000000000000000000000000000000005C -S3154004CA90000000000000000000000000000000004C -S3154004CAA0000000000000000000000000000000003C -S3154004CAB0000000000000000000000000000000002C -S3154004CAC0000000000000000000000000000000001C -S3154004CAD0000000000000000000000000000000000C -S3154004CAE000000000000000000000000000000000FC -S3154004CAF000000000000000000000000000000000EC -S3154004CB0000000000000000000000000000000000DB -S3154004CB1000000000000000000000000000000000CB -S3154004CB2000000000000000000000000000000000BB -S3154004CB3000000000000000000000000000000000AB -S3154004CB40000000000000000000000000000000009B -S3154004CB50000000000000000000000000000000008B -S3154004CB60000000000000000000000000000000007B -S3154004CB70000000000000000000000000000000006B -S3154004CB80000000000000000000000000000000005B -S3154004CB90000000000000000000000000000000004B -S3154004CBA0000000000000000000000000000000003B -S3154004CBB0000000000000000000000000000000002B -S3154004CBC0000000000000000000000000000000001B -S3154004CBD0000000000000000000000000000000000B -S3154004CBE000000000000000000000000000000000FB -S3154004CBF000000000000000000000000000000000EB -S3154004CC0000000000000000000000000000000000DA -S3154004CC1000000000000000000000000000000000CA -S3154004CC2000000000000000000000000000000000BA -S3154004CC3000000000000000000000000000000000AA -S3154004CC40000000000000000000000000000000009A -S3154004CC50000000000000000000000000000000008A -S3154004CC60000000000000000000000000000000007A -S3154004CC70000000000000000000000000000000006A -S3154004CC80000000000000000000000000000000005A -S3154004CC90000000000000000000000000000000004A -S3154004CCA0000000000000000000000000000000003A -S3154004CCB0000000000000000000000000000000002A -S3154004CCC0000000000000000000000000000000001A -S3154004CCD0000000000000000000000000000000000A -S3154004CCE000000000000000000000000000000000FA -S3154004CCF000000000000000000000000000000000EA -S3154004CD0000000000000000000000000000000000D9 -S3154004CD1000000000000000000000000000000000C9 -S3154004CD2000000000000000000000000000000000B9 -S3154004CD3000000000000000000000000000000000A9 -S3154004CD400000000000000000000000000000000099 -S3154004CD500000000000000000000000000000000089 -S3154004CD600000000000000000000000000000000079 -S3154004CD700000000000000000000000000000000069 -S3154004CD800000000000000000000000000000000059 -S3154004CD900000000000000000000000000000000049 -S3154004CDA00000000000000000000000000000000039 -S3154004CDB00000000000000000000000000000000029 -S3154004CDC00000000000000000000000000000000019 -S3154004CDD00000000000000000000000000000000009 -S3154004CDE000000000000000000000000000000000F9 -S3154004CDF000000000000000000000000000000000E9 -S3154004CE0000000000000000000000000000000000D8 -S3154004CE1000000000000000000000000000000000C8 -S3154004CE2000000000000000000000000000000000B8 -S3154004CE3000000000000000000000000000000000A8 -S3154004CE400000000000000000000000000000000098 -S3154004CE500000000000000000000000000000000088 -S3154004CE600000000000000000000000000000000078 -S3154004CE700000000000000000000000000000000068 -S3154004CE800000000000000000000000000000000058 -S3154004CE900000000000000000000000000000000048 -S3154004CEA00000000000000000000000000000000038 -S3154004CEB00000000000000000000000000000000028 -S3154004CEC00000000000000000000000000000000018 -S3154004CED00000000000000000000000000000000008 -S3154004CEE000000000000000000000000000000000F8 -S3154004CEF000000000000000000000000000000000E8 -S3154004CF0000000000000000000000000000000000D7 -S3154004CF1000000000000000000000000000000000C7 -S3154004CF2000000000000000000000000000000000B7 -S3154004CF3000000000000000000000000000000000A7 -S3154004CF400000000000000000000000000000000097 -S3154004CF500000000000000000000000000000000087 -S3154004CF600000000000000000000000000000000077 -S3154004CF700000000000000000000000000000000067 -S3154004CF800000000000000000000000000000000057 -S3154004CF900000000000000000000000000000000047 -S3154004CFA00000000000000000000000000000000037 -S3154004CFB00000000000000000000000000000000027 -S3154004CFC00000000000000000000000000000000017 -S3154004CFD00000000000000000000000000000000007 -S3154004CFE000000000000000000000000000000000F7 -S3154004CFF000000000000000000000000000000000E7 -S3154004D00000000000000000000000000000000000D6 -S3154004D01000000000000000000000000000000000C6 -S3154004D02000000000000000000000000000000000B6 -S3154004D03000000000000000000000000000000000A6 -S3154004D0400000000000000000000000000000000096 -S3154004D0500000000000000000000000000000000086 -S3154004D0600000000000000000000000000000000076 -S3154004D0700000000000000000000000000000000066 -S3154004D0800000000000000000000000000000000056 -S3154004D0900000000000000000000000000000000046 -S3154004D0A00000000000000000000000000000000036 -S3154004D0B00000000000000000000000000000000026 -S3154004D0C00000000000000000000000000000000016 -S3154004D0D00000000000000000000000000000000006 -S3154004D0E000000000000000000000000000000000F6 -S3154004D0F000000000000000000000000000000000E6 -S3154004D10000000000000000000000000000000000D5 -S3154004D11000000000000000000000000000000000C5 -S3154004D12000000000000000000000000000000000B5 -S3154004D13000000000000000000000000000000000A5 -S3154004D1400000000000000000000000000000000095 -S3154004D1500000000000000000000000000000000085 -S3154004D1600000000000000000000000000000000075 -S3154004D1700000000000000000000000000000000065 -S3154004D1800000000000000000000000000000000055 -S3154004D1900000000000000000000000000000000045 -S3154004D1A00000000000000000000000000000000035 -S3154004D1B00000000000000000000000000000000025 -S3154004D1C00000000000000000000000000000000015 -S3154004D1D00000000000000000000000000000000005 -S3154004D1E000000000000000000000000000000000F5 -S3154004D1F000000000000000000000000000000000E5 -S3154004D20000000000000000000000000000000000D4 -S3154004D21000000000000000000000000000000000C4 -S3154004D22000000000000000000000000000000000B4 -S3154004D23000000000000000000000000000000000A4 -S3154004D2400000000000000000000000000000000094 -S3154004D2500000000000000000000000000000000084 -S3154004D2600000000000000000000000000000000074 -S3154004D2700000000000000000000000000000000064 -S3154004D2800000000000000000000000000000000054 -S3154004D2900000000000000000000000000000000044 -S3154004D2A00000000000000000000000000000000034 -S3154004D2B00000000000000000000000000000000024 -S3154004D2C00000000000000000000000000000000014 -S3154004D2D00000000000000000000000000000000004 -S3154004D2E000000000000000000000000000000000F4 -S3154004D2F000000000000000000000000000000000E4 -S3154004D30000000000000000000000000000000000D3 -S3154004D31000000000000000000000000000000000C3 -S3154004D32000000000000000000000000000000000B3 -S3154004D33000000000000000000000000000000000A3 -S3154004D3400000000000000000000000000000000093 -S3154004D3500000000000000000000000000000000083 -S3154004D3600000000000000000000000000000000073 -S3154004D3700000000000000000000000000000000063 -S3154004D3800000000000000000000000000000000053 -S3154004D3900000000000000000000000000000000043 -S3154004D3A00000000000000000000000000000000033 -S3154004D3B00000000000000000000000000000000023 -S3154004D3C00000000000000000000000000000000013 -S3154004D3D00000000000000000000000000000000003 -S3154004D3E000000000000000000000000000000000F3 -S3154004D3F000000000000000000000000000000000E3 -S3154004D40000000000000000000000000000000000D2 -S3154004D41000000000000000000000000000000000C2 -S3154004D42000000000000000000000000000000000B2 -S3154004D43000000000000000000000000000000000A2 -S3154004D4400000000000000000000000000000000092 -S3154004D4500000000000000000000000000000000082 -S3154004D4600000000000000000000000000000000072 -S3154004D4700000000000000000000000000000000062 -S3154004D4800000000000000000000000000000000052 -S3154004D4900000000000000000000000000000000042 -S3154004D4A00000000000000000000000000000000032 -S3154004D4B00000000000000000000000000000000022 -S3154004D4C00000000000000000000000000000000012 -S3154004D4D00000000000000000000000000000000002 -S3154004D4E000000000000000000000000000000000F2 -S3154004D4F000000000000000000000000000000000E2 -S3154004D50000000000000000000000000000000000D1 -S3154004D51000000000000000000000000000000000C1 -S3154004D52000000000000000000000000000000000B1 -S3154004D53000000000000000000000000000000000A1 -S3154004D5400000000000000000000000000000000091 -S3154004D5500000000000000000000000000000000081 -S3154004D5600000000000000000000000000000000071 -S3154004D5700000000000000000000000000000000061 -S3154004D5800000000000000000000000000000000051 -S3154004D5900000000000000000000000000000000041 -S3154004D5A00000000000000000000000000000000031 -S3154004D5B00000000000000000000000000000000021 -S3154004D5C00000000000000000000000000000000011 -S3154004D5D00000000000000000000000000000000001 -S3154004D5E000000000000000000000000000000000F1 -S3154004D5F000000000000000000000000000000000E1 -S3154004D60000000000000000000000000000000000D0 -S3154004D61000000000000000000000000000000000C0 -S3154004D62000000000000000000000000000000000B0 -S3154004D63000000000000000000000000000000000A0 -S3154004D6400000000000000000000000000000000090 -S3154004D6500000000000000000000000000000000080 -S3154004D6600000000000000000000000000000000070 -S3154004D6700000000000000000000000000000000060 -S3154004D6800000000000000000000000000000000050 -S3154004D6900000000000000000000000000000000040 -S3154004D6A00000000000000000000000000000000030 -S3154004D6B00000000000000000000000000000000020 -S3154004D6C00000000000000000000000000000000010 -S3154004D6D00000000000000000000000000000000000 -S3154004D6E000000000000000000000000000000000F0 -S3154004D6F000000000000000000000000000000000E0 -S3154004D70000000000000000000000000000000000CF -S3154004D71000000000000000000000000000000000BF -S3154004D72000000000000000000000000000000000AF -S3154004D730000000000000000000000000000000009F -S3154004D740000000000000000000000000000000008F -S3154004D750000000000000000000000000000000007F -S3154004D760000000000000000000000000000000006F -S3154004D770000000000000000000000000000000005F -S3154004D780000000000000000000000000000000004F -S3154004D790000000000000000000000000000000003F -S3154004D7A0000000000000000000000000000000002F -S3154004D7B0000000000000000000000000000000001F -S3154004D7C0000000000000000000000000000000000F -S3154004D7D000000000000000000000000000000000FF -S3154004D7E000000000000000000000000000000000EF -S3154004D7F000000000000000000000000000000000DF -S3154004D80000000000000000000000000000000000CE -S3154004D81000000000000000000000000000000000BE -S3154004D82000000000000000000000000000000000AE -S3154004D830000000000000000000000000000000009E -S3154004D840000000000000000000000000000000008E -S3154004D850000000000000000000000000000000007E -S3154004D860000000000000000000000000000000006E -S3154004D870000000000000000000000000000000005E -S3154004D880000000000000000000000000000000004E -S3154004D890000000000000000000000000000000003E -S3154004D8A0000000000000000000000000000000002E -S3154004D8B0000000000000000000000000000000001E -S3154004D8C0000000000000000000000000000000000E -S3154004D8D000000000000000000000000000000000FE -S3154004D8E000000000000000000000000000000000EE -S3154004D8F000000000000000000000000000000000DE -S3154004D90000000000000000000000000000000000CD -S3154004D91000000000000000000000000000000000BD -S3154004D92000000000000000000000000000000000AD -S3154004D930000000000000000000000000000000009D -S3154004D940000000000000000000000000000000008D -S3154004D950000000000000000000000000000000007D -S3154004D960000000000000000000000000000000006D -S3154004D970000000000000000000000000000000005D -S3154004D980000000000000000000000000000000004D -S3154004D990000000000000000000000000000000003D -S3154004D9A0000000000000000000000000000000002D -S3154004D9B0000000000000000000000000000000001D -S3154004D9C0000000000000000000000000000000000D -S3154004D9D000000000000000000000000000000000FD -S3154004D9E000000000000000000000000000000000ED -S3154004D9F000000000000000000000000000000000DD -S3154004DA0000000000000000000000000000000000CC -S3154004DA1000000000000000000000000000000000BC -S3154004DA2000000000000000000000000000000000AC -S3154004DA30000000000000000000000000000000009C -S3154004DA40000000000000000000000000000000008C -S3154004DA50000000000000000000000000000000007C -S3154004DA60000000000000000000000000000000006C -S3154004DA70000000000000000000000000000000005C -S3154004DA80000000000000000000000000000000004C -S3154004DA90000000000000000000000000000000003C -S3154004DAA0000000000000000000000000000000002C -S3154004DAB0000000000000000000000000000000001C -S3154004DAC0000000000000000000000000000000000C -S3154004DAD000000000000000000000000000000000FC -S3154004DAE000000000000000000000000000000000EC -S3154004DAF000000000000000000000000000000000DC -S3154004DB0000000000000000000000000000000000CB -S3154004DB1000000000000000000000000000000000BB -S3154004DB2000000000000000000000000000000000AB -S3154004DB30000000000000000000000000000000009B -S3154004DB40000000000000000000000000000000008B -S3154004DB50000000000000000000000000000000007B -S3154004DB60000000000000000000000000000000006B -S3154004DB70000000000000000000000000000000005B -S3154004DB80000000000000000000000000000000004B -S3154004DB90000000000000000000000000000000003B -S3154004DBA0000000000000000000000000000000002B -S3154004DBB0000000000000000000000000000000001B -S3154004DBC0000000000000000000000000000000000B -S3154004DBD000000000000000000000000000000000FB -S3154004DBE000000000000000000000000000000000EB -S3154004DBF000000000000000000000000000000000DB -S3154004DC0000000000000000000000000000000000CA -S3154004DC1000000000000000000000000000000000BA -S3154004DC2000000000000000000000000000000000AA -S3154004DC30000000000000000000000000000000009A -S3154004DC40000000000000000000000000000000008A -S3154004DC50000000000000000000000000000000007A -S3154004DC60000000000000000000000000000000006A -S3154004DC70000000000000000000000000000000005A -S3154004DC80000000000000000000000000000000004A -S3154004DC90000000000000000000000000000000003A -S3154004DCA0000000000000000000000000000000002A -S3154004DCB0000000000000000000000000000000001A -S3154004DCC0000000000000000000000000000000000A -S3154004DCD000000000000000000000000000000000FA -S3154004DCE000000000000000000000000000000000EA -S3154004DCF000000000000000000000000000000000DA -S3154004DD0000000000000000000000000000000000C9 -S3154004DD1000000000000000000000000000000000B9 -S3154004DD2000000000000000000000000000000000A9 -S3154004DD300000000000000000000000000000000099 -S3154004DD400000000000000000000000000000000089 -S3154004DD500000000000000000000000000000000079 -S3154004DD600000000000000000000000000000000069 -S3154004DD700000000000000000000000000000000059 -S3154004DD800000000000000000000000000000000049 -S3154004DD900000000000000000000000000000000039 -S3154004DDA00000000000000000000000000000000029 -S3154004DDB00000000000000000000000000000000019 -S3154004DDC00000000000000000000000000000000009 -S3154004DDD000000000000000000000000000000000F9 -S3154004DDE000000000000000000000000000000000E9 -S3154004DDF000000000000000000000000000000000D9 -S3154004DE0000000000000000000000000000000000C8 -S3154004DE1000000000000000000000000000000000B8 -S3154004DE2000000000000000000000000000000000A8 -S3154004DE300000000000000000000000000000000098 -S3154004DE400000000000000000000000000000000088 -S3154004DE500000000000000000000000000000000078 -S3154004DE600000000000000000000000000000000068 -S3154004DE700000000000000000000000000000000058 -S3154004DE800000000000000000000000000000000048 -S3154004DE900000000000000000000000000000000038 -S3154004DEA00000000000000000000000000000000028 -S3154004DEB00000000000000000000000000000000018 -S3154004DEC00000000000000000000000000000000008 -S3154004DED000000000000000000000000000000000F8 -S3154004DEE000000000000000000000000000000000E8 -S3154004DEF000000000000000000000000000000000D8 -S3154004DF0000000000000000000000000000000000C7 -S3154004DF1000000000000000000000000000000000B7 -S3154004DF2000000000000000000000000000000000A7 -S3154004DF300000000000000000000000000000000097 -S3154004DF400000000000000000000000000000000087 -S3154004DF500000000000000000000000000000000077 -S3154004DF600000000000000000000000000000000067 -S3154004DF700000000000000000000000000000000057 -S3154004DF800000000000000000000000000000000047 -S3154004DF900000000000000000000000000000000037 -S3154004DFA00000000000000000000000000000000027 -S3154004DFB00000000000000000000000000000000017 -S3154004DFC00000000000000000000000000000000007 -S3154004DFD000000000000000000000000000000000F7 -S3154004DFE000000000000000000000000000000000E7 -S3154004DFF000000000000000000000000000000000D7 -S3154004E00000000000000000000000000000000000C6 -S3154004E01000000000000000000000000000000000B6 -S3154004E02000000000000000000000000000000000A6 -S3154004E0300000000000000000000000000000000096 -S3154004E0400000000000000000000000000000000086 -S3154004E0500000000000000000000000000000000076 -S3154004E0600000000000000000000000000000000066 -S3154004E0700000000000000000000000000000000056 -S3154004E0800000000000000000000000000000000046 -S3154004E0900000000000000000000000000000000036 -S3154004E0A00000000000000000000000000000000026 -S3154004E0B00000000000000000000000000000000016 -S3154004E0C00000000000000000000000000000000006 -S3154004E0D000000000000000000000000000000000F6 -S3154004E0E000000000000000000000000000000000E6 -S3154004E0F000000000000000000000000000000000D6 -S3154004E10000000000000000000000000000000000C5 -S3154004E11000000000000000000000000000000000B5 -S3154004E12000000000000000000000000000000000A5 -S3154004E1300000000000000000000000000000000095 -S3154004E1400000000000000000000000000000000085 -S3154004E1500000000000000000000000000000000075 -S3154004E1600000000000000000000000000000000065 -S3154004E1700000000000000000000000000000000055 -S3154004E1800000000000000000000000000000000045 -S3154004E1900000000000000000000000000000000035 -S3154004E1A00000000000000000000000000000000025 -S3154004E1B00000000000000000000000000000000015 -S3154004E1C00000000000000000000000000000000005 -S3154004E1D000000000000000000000000000000000F5 -S3154004E1E000000000000000000000000000000000E5 -S3154004E1F000000000000000000000000000000000D5 -S3154004E20000000000000000000000000000000000C4 -S3154004E21000000000000000000000000000000000B4 -S3154004E22000000000000000000000000000000000A4 -S3154004E2300000000000000000000000000000000094 -S3154004E2400000000000000000000000000000000084 -S3154004E2500000000000000000000000000000000074 -S3154004E2600000000000000000000000000000000064 -S3154004E2700000000000000000000000000000000054 -S3154004E2800000000000000000000000000000000044 -S3154004E2900000000000000000000000000000000034 -S3154004E2A00000000000000000000000000000000024 -S3154004E2B00000000000000000000000000000000014 -S3154004E2C00000000000000000000000000000000004 -S3154004E2D000000000000000000000000000000000F4 -S3154004E2E000000000000000000000000000000000E4 -S3154004E2F000000000000000000000000000000000D4 -S3154004E30000000000000000000000000000000000C3 -S3154004E31000000000000000000000000000000000B3 -S3154004E32000000000000000000000000000000000A3 -S3154004E3300000000000000000000000000000000093 -S3154004E3400000000000000000000000000000000083 -S3154004E3500000000000000000000000000000000073 -S3154004E3600000000000000000000000000000000063 -S3154004E3700000000000000000000000000000000053 -S3154004E3800000000000000000000000000000000043 -S3154004E3900000000000000000000000000000000033 -S3154004E3A00000000000000000000000000000000023 -S3154004E3B00000000000000000000000000000000013 -S3154004E3C00000000000000000000000000000000003 -S3154004E3D000000000000000000000000000000000F3 -S3154004E3E000000000000000000000000000000000E3 -S3154004E3F000000000000000000000000000000000D3 -S3154004E40000000000000000000000000000000000C2 -S3154004E41000000000000000000000000000000000B2 -S3154004E42000000000000000000000000000000000A2 -S3154004E4300000000000000000000000000000000092 -S3154004E4400000000000000000000000000000000082 -S3154004E4500000000000000000000000000000000072 -S3154004E4600000000000000000000000000000000062 -S3154004E4700000000000000000000000000000000052 -S3154004E4800000000000000000000000000000000042 -S3154004E4900000000000000000000000000000000032 -S3154004E4A00000000000000000000000000000000022 -S3154004E4B00000000000000000000000000000000012 -S3154004E4C00000000000000000000000000000000002 -S3154004E4D000000000000000000000000000000000F2 -S3154004E4E000000000000000000000000000000000E2 -S3154004E4F000000000000000000000000000000000D2 -S3154004E50000000000000000000000000000000000C1 -S3154004E51000000000000000000000000000000000B1 -S3154004E52000000000000000000000000000000000A1 -S3154004E5300000000000000000000000000000000091 -S3154004E5400000000000000000000000000000000081 -S3154004E5500000000000000000000000000000000071 -S3154004E5600000000000000000000000000000000061 -S3154004E5700000000000000000000000000000000051 -S3154004E5800000000000000000000000000000000041 -S3154004E5900000000000000000000000000000000031 -S3154004E5A00000000000000000000000000000000021 -S3154004E5B00000000000000000000000000000000011 -S3154004E5C00000000000000000000000000000000001 -S3154004E5D000000000000000000000000000000000F1 -S3154004E5E000000000000000000000000000000000E1 -S3154004E5F000000000000000000000000000000000D1 -S3154004E60000000000000000000000000000000000C0 -S3154004E61000000000000000000000000000000000B0 -S3154004E62000000000000000000000000000000000A0 -S3154004E6300000000000000000000000000000000090 -S3154004E6400000000000000000000000000000000080 -S3154004E6500000000000000000000000000000000070 -S3154004E6600000000000000000000000000000000060 -S3154004E6700000000000000000000000000000000050 -S3154004E6800000000000000000000000000000000040 -S3154004E6900000000000000000000000000000000030 -S3154004E6A00000000000000000000000000000000020 -S3154004E6B00000000000000000000000000000000010 -S3154004E6C00000000000000000000000000000000000 -S3154004E6D000000000000000000000000000000000F0 -S3154004E6E000000000000000000000000000000000E0 -S3154004E6F000000000000000000000000000000000D0 -S3154004E70000000000000000000000000000000000BF -S3154004E71000000000000000000000000000000000AF -S3154004E720000000000000000000000000000000009F -S3154004E730000000000000000000000000000000008F -S3154004E740000000000000000000000000000000007F -S3154004E750000000000000000000000000000000006F -S3154004E760000000000000000000000000000000005F -S3154004E770000000000000000000000000000000004F -S3154004E780000000000000000000000000000000003F -S3154004E790000000000000000000000000000000002F -S3154004E7A0000000000000000000000000000000001F -S3154004E7B0000000000000000000000000000000000F -S3154004E7C000000000000000000000000000000000FF -S3154004E7D000000000000000000000000000000000EF -S3154004E7E000000000000000000000000000000000DF -S3154004E7F000000000000000000000000000000000CF -S3154004E80000000000000000000000000000000000BE -S3154004E81000000000000000000000000000000000AE -S3154004E820000000000000000000000000000000009E -S3154004E830000000000000000000000000000000008E -S3154004E840000000000000000000000000000000007E -S3154004E850000000000000000000000000000000006E -S3154004E860000000000000000000000000000000005E -S3154004E870000000000000000000000000000000004E -S3154004E880000000000000000000000000000000003E -S3154004E890000000000000000000000000000000002E -S3154004E8A0000000000000000000000000000000001E -S3154004E8B0000000000000000000000000000000000E -S3154004E8C000000000000000000000000000000000FE -S3154004E8D000000000000000000000000000000000EE -S3154004E8E000000000000000000000000000000000DE -S3154004E8F000000000000000000000000000000000CE -S3154004E90000000000000000000000000000000000BD -S3154004E91000000000000000000000000000000000AD -S3154004E920000000000000000000000000000000009D -S3154004E930000000000000000000000000000000008D -S3154004E940000000000000000000000000000000007D -S3154004E950000000000000000000000000000000006D -S3154004E960000000000000000000000000000000005D -S3154004E970000000000000000000000000000000004D -S3154004E980000000000000000000000000000000003D -S3154004E990000000000000000000000000000000002D -S3154004E9A0000000000000000000000000000000001D -S3154004E9B0000000000000000000000000000000000D -S3154004E9C000000000000000000000000000000000FD -S3154004E9D000000000000000000000000000000000ED -S3154004E9E000000000000000000000000000000000DD -S3154004E9F000000000000000000000000000000000CD -S3154004EA0000000000000000000000000000000000BC -S3154004EA1000000000000000000000000000000000AC -S3154004EA20000000000000000000000000000000009C -S3154004EA30000000000000000000000000000000008C -S3154004EA40000000000000000000000000000000007C -S3154004EA50000000000000000000000000000000006C -S3154004EA60000000000000000000000000000000005C -S3154004EA70000000000000000000000000000000004C -S3154004EA80000000000000000000000000000000003C -S3154004EA90000000000000000000000000000000002C -S3154004EAA0000000000000000000000000000000001C -S3154004EAB0000000000000000000000000000000000C -S3154004EAC000000000000000000000000000000000FC -S3154004EAD000000000000000000000000000000000EC -S3154004EAE000000000000000000000000000000000DC -S3154004EAF000000000000000000000000000000000CC -S3154004EB0000000000000000000000000000000000BB -S3154004EB1000000000000000000000000000000000AB -S3154004EB20000000000000000000000000000000009B -S3154004EB30000000000000000000000000000000008B -S3154004EB40000000000000000000000000000000007B -S3154004EB50000000000000000000000000000000006B -S3154004EB60000000000000000000000000000000005B -S3154004EB70000000000000000000000000000000004B -S3154004EB80000000000000000000000000000000003B -S3154004EB90000000000000000000000000000000002B -S3154004EBA0000000000000000000000000000000001B -S3154004EBB0000000000000000000000000000000000B -S3154004EBC000000000000000000000000000000000FB -S3154004EBD000000000000000000000000000000000EB -S3154004EBE000000000000000000000000000000000DB -S3154004EBF000000000000000000000000000000000CB -S3154004EC0000000000000000000000000000000000BA -S3154004EC1000000000000000000000000000000000AA -S3154004EC20000000000000000000000000000000009A -S3154004EC30000000000000000000000000000000008A -S3154004EC40000000000000000000000000000000007A -S3154004EC50000000000000000000000000000000006A -S3154004EC60000000000000000000000000000000005A -S3154004EC70000000000000000000000000000000004A -S3154004EC80000000000000000000000000000000003A -S3154004EC90000000000000000000000000000000002A -S3154004ECA0000000000000000000000000000000001A -S3154004ECB0000000000000000000000000000000000A -S3154004ECC000000000000000000000000000000000FA -S3154004ECD000000000000000000000000000000000EA -S3154004ECE000000000000000000000000000000000DA -S3154004ECF000000000000000000000000000000000CA -S3154004ED0000000000000000000000000000000000B9 -S3154004ED1000000000000000000000000000000000A9 -S3154004ED200000000000000000000000000000000099 -S3154004ED300000000000000000000000000000000089 -S3154004ED400000000000000000000000000000000079 -S3154004ED500000000000000000000000000000000069 -S3154004ED600000000000000000000000000000000059 -S3154004ED700000000000000000000000000000000049 -S3154004ED800000000000000000000000000000000039 -S3154004ED900000000000000000000000000000000029 -S3154004EDA00000000000000000000000000000000019 -S3154004EDB00000000000000000000000000000000009 -S3154004EDC000000000000000000000000000000000F9 -S3154004EDD000000000000000000000000000000000E9 -S3154004EDE000000000000000000000000000000000D9 -S3154004EDF000000000000000000000000000000000C9 -S3154004EE0000000000000000000000000000000000B8 -S3154004EE1000000000000000000000000000000000A8 -S3154004EE200000000000000000000000000000000098 -S3154004EE300000000000000000000000000000000088 -S3154004EE400000000000000000000000000000000078 -S3154004EE500000000000000000000000000000000068 -S3154004EE600000000000000000000000000000000058 -S3154004EE700000000000000000000000000000000048 -S3154004EE800000000000000000000000000000000038 -S3154004EE900000000000000000000000000000000028 -S3154004EEA00000000000000000000000000000000018 -S3154004EEB00000000000000000000000000000000008 -S3154004EEC000000000000000000000000000000000F8 -S3154004EED000000000000000000000000000000000E8 -S3154004EEE000000000000000000000000000000000D8 -S3154004EEF000000000000000000000000000000000C8 -S3154004EF0000000000000000000000000000000000B7 -S3154004EF1000000000000000000000000000000000A7 -S3154004EF200000000000000000000000000000000097 -S3154004EF300000000000000000000000000000000087 -S3154004EF400000000000000000000000000000000077 -S3154004EF500000000000000000000000000000000067 -S3154004EF600000000000000000000000000000000057 -S3154004EF700000000000000000000000000000000047 -S3154004EF800000000000000000000000000000000037 -S3154004EF900000000000000000000000000000000027 -S3154004EFA00000000000000000000000000000000017 -S3154004EFB00000000000000000000000000000000007 -S3154004EFC000000000000000000000000000000000F7 -S3154004EFD000000000000000000000000000000000E7 -S3154004EFE000000000000000000000000000000000D7 -S3154004EFF000000000000000000000000000000000C7 -S3154004F00000000000000000000000000000000000B6 -S3154004F01000000000000000000000000000000000A6 -S3154004F0200000000000000000000000000000000096 -S3154004F0300000000000000000000000000000000086 -S3154004F0400000000000000000000000000000000076 -S3154004F0500000000000000000000000000000000066 -S3154004F0600000000000000000000000000000000056 -S3154004F0700000000000000000000000000000000046 -S3154004F0800000000000000000000000000000000036 -S3154004F0900000000000000000000000000000000026 -S3154004F0A00000000000000000000000000000000016 -S3154004F0B00000000000000000000000000000000006 -S3154004F0C000000000000000000000000000000000F6 -S3154004F0D000000000000000000000000000000000E6 -S3154004F0E000000000000000000000000000000000D6 -S3154004F0F000000000000000000000000000000000C6 -S3154004F10000000000000000000000000000000000B5 -S3154004F11000000000000000000000000000000000A5 -S3154004F1200000000000000000000000000000000095 -S3154004F1300000000000000000000000000000000085 -S3154004F1400000000000000000000000000000000075 -S3154004F1500000000000000000000000000000000065 -S3154004F1600000000000000000000000000000000055 -S3154004F1700000000000000000000000000000000045 -S3154004F1800000000000000000000000000000000035 -S3154004F1900000000000000000000000000000000025 -S3154004F1A00000000000000000000000000000000015 -S3154004F1B00000000000000000000000000000000005 -S3154004F1C000000000000000000000000000000000F5 -S3154004F1D000000000000000000000000000000000E5 -S3154004F1E000000000000000000000000000000000D5 -S3154004F1F000000000000000000000000000000000C5 -S3154004F20000000000000000000000000000000000B4 -S3154004F21000000000000000000000000000000000A4 -S3154004F2200000000000000000000000000000000094 -S3154004F2300000000000000000000000000000000084 -S3154004F2400000000000000000000000000000000074 -S3154004F2500000000000000000000000000000000064 -S3154004F2600000000000000000000000000000000054 -S3154004F2700000000000000000000000000000000044 -S3154004F2800000000000000000000000000000000034 -S3154004F2900000000000000000000000000000000024 -S3154004F2A00000000000000000000000000000000014 -S3154004F2B00000000000000000000000000000000004 -S3154004F2C000000000000000000000000000000000F4 -S3154004F2D000000000000000000000000000000000E4 -S3154004F2E000000000000000000000000000000000D4 -S3154004F2F000000000000000000000000000000000C4 -S3154004F30000000000000000000000000000000000B3 -S3154004F31000000000000000000000000000000000A3 -S3154004F3200000000000000000000000000000000093 -S3154004F3300000000000000000000000000000000083 -S3154004F3400000000000000000000000000000000073 -S3154004F3500000000000000000000000000000000063 -S3154004F3600000000000000000000000000000000053 -S3154004F3700000000000000000000000000000000043 -S3154004F3800000000000000000000000000000000033 -S3154004F3900000000000000000000000000000000023 -S3154004F3A00000000000000000000000000000000013 -S3154004F3B00000000000000000000000000000000003 -S3154004F3C000000000000000000000000000000000F3 -S3154004F3D000000000000000000000000000000000E3 -S3154004F3E000000000000000000000000000000000D3 -S3154004F3F000000000000000000000000000000000C3 -S3154004F40000000000000000000000000000000000B2 -S3154004F41000000000000000000000000000000000A2 -S3154004F4200000000000000000000000000000000092 -S3154004F4300000000000000000000000000000000082 -S3154004F4400000000000000000000000000000000072 -S3154004F4500000000000000000000000000000000062 -S3154004F4600000000000000000000000000000000052 -S3154004F4700000000000000000000000000000000042 -S3154004F4800000000000000000000000000000000032 -S3154004F4900000000000000000000000000000000022 -S3154004F4A00000000000000000000000000000000012 -S3154004F4B00000000000000000000000000000000002 -S3154004F4C000000000000000000000000000000000F2 -S3154004F4D000000000000000000000000000000000E2 -S3154004F4E000000000000000000000000000000000D2 -S3154004F4F000000000000000000000000000000000C2 -S3154004F50000000000000000000000000000000000B1 -S3154004F51000000000000000000000000000000000A1 -S3154004F5200000000000000000000000000000000091 -S3154004F5300000000000000000000000000000000081 -S3154004F5400000000000000000000000000000000071 -S3154004F5500000000000000000000000000000000061 -S3154004F5600000000000000000000000000000000051 -S3154004F5700000000000000000000000000000000041 -S3154004F5800000000000000000000000000000000031 -S3154004F5900000000000000000000000000000000021 -S3154004F5A00000000000000000000000000000000011 -S3154004F5B00000000000000000000000000000000001 -S3154004F5C000000000000000000000000000000000F1 -S3154004F5D000000000000000000000000000000000E1 -S3154004F5E000000000000000000000000000000000D1 -S3154004F5F000000000000000000000000000000000C1 -S3154004F60000000000000000000000000000000000B0 -S3154004F61000000000000000000000000000000000A0 -S3154004F6200000000000000000000000000000000090 -S3154004F6300000000000000000000000000000000080 -S3154004F6400000000000000000000000000000000070 -S3154004F6500000000000000000000000000000000060 -S3154004F6600000000000000000000000000000000050 -S3154004F6700000000000000000000000000000000040 -S3154004F6800000000000000000000000000000000030 -S3154004F6900000000000000000000000000000000020 -S3154004F6A00000000000000000000000000000000010 -S3154004F6B00000000000000000000000000000000000 -S3154004F6C000000000000000000000000000000000F0 -S3154004F6D000000000000000000000000000000000E0 -S3154004F6E000000000000000000000000000000000D0 -S3154004F6F000000000000000000000000000000000C0 -S3154004F70000000000000000000000000000000000AF -S3154004F710000000000000000000000000000000009F -S3154004F720000000000000000000000000000000008F -S3154004F730000000000000000000000000000000007F -S3154004F740000000000000000000000000000000006F -S3154004F750000000000000000000000000000000005F -S3154004F760000000000000000000000000000000004F -S3154004F770000000000000000000000000000000003F -S3154004F780000000000000000000000000000000002F -S3154004F790000000000000000000000000000000001F -S3154004F7A0000000000000000000000000000000000F -S3154004F7B000000000000000000000000000000000FF -S3154004F7C000000000000000000000000000000000EF -S3154004F7D000000000000000000000000000000000DF -S3154004F7E000000000000000000000000000000000CF -S3154004F7F000000000000000000000000000000000BF -S3154004F80000000000000000000000000000000000AE -S3154004F810000000000000000000000000000000009E -S3154004F820000000000000000000000000000000008E -S3154004F830000000000000000000000000000000007E -S3154004F840000000000000000000000000000000006E -S3154004F850000000000000000000000000000000005E -S3154004F860000000000000000000000000000000004E -S3154004F870000000000000000000000000000000003E -S3154004F880000000000000000000000000000000002E -S3154004F890000000000000000000000000000000001E -S3154004F8A0000000000000000000000000000000000E -S3154004F8B000000000000000000000000000000000FE -S3154004F8C000000000000000000000000000000000EE -S3154004F8D000000000000000000000000000000000DE -S3154004F8E000000000000000000000000000000000CE -S3154004F8F000000000000000000000000000000000BE -S3154004F90000000000000000000000000000000000AD -S3154004F910000000000000000000000000000000009D -S3154004F920000000000000000000000000000000008D -S3154004F930000000000000000000000000000000007D -S3154004F940000000000000000000000000000000006D -S3154004F950000000000000000000000000000000005D -S3154004F960000000000000000000000000000000004D -S3154004F970000000000000000000000000000000003D -S3154004F980000000000000000000000000000000002D -S3154004F990000000000000000000000000000000001D -S3154004F9A0000000000000000000000000000000000D -S3154004F9B000000000000000000000000000000000FD -S3154004F9C000000000000000000000000000000000ED -S3154004F9D000000000000000000000000000000000DD -S3154004F9E000000000000000000000000000000000CD -S3154004F9F000000000000000000000000000000000BD -S3154004FA0000000000000000000000000000000000AC -S3154004FA10000000000000000000000000000000009C -S3154004FA20000000000000000000000000000000008C -S3154004FA30000000000000000000000000000000007C -S3154004FA40000000000000000000000000000000006C -S3154004FA50000000000000000000000000000000005C -S3154004FA60000000000000000000000000000000004C -S3154004FA70000000000000000000000000000000003C -S3154004FA80000000000000000000000000000000002C -S3154004FA90000000000000000000000000000000001C -S3154004FAA0000000000000000000000000000000000C -S3154004FAB000000000000000000000000000000000FC -S3154004FAC000000000000000000000000000000000EC -S3154004FAD000000000000000000000000000000000DC -S3154004FAE000000000000000000000000000000000CC -S3154004FAF000000000000000000000000000000000BC -S3154004FB0000000000000000000000000000000000AB -S3154004FB10000000000000000000000000000000009B -S3154004FB20000000000000000000000000000000008B -S3154004FB30000000000000000000000000000000007B -S3154004FB40000000000000000000000000000000006B -S3154004FB50000000000000000000000000000000005B -S3154004FB60000000000000000000000000000000004B -S3154004FB70000000000000000000000000000000003B -S3154004FB80000000000000000000000000000000002B -S3154004FB90000000000000000000000000000000001B -S3154004FBA0000000000000000000000000000000000B -S3154004FBB000000000000000000000000000000000FB -S3154004FBC000000000000000000000000000000000EB -S3154004FBD000000000000000000000000000000000DB -S3154004FBE000000000000000000000000000000000CB -S3154004FBF000000000000000000000000000000000BB -S3154004FC0000000000000000000000000000000000AA -S3154004FC10000000000000000000000000000000009A -S3154004FC20000000000000000000000000000000008A -S3154004FC30000000000000000000000000000000007A -S3154004FC40000000000000000000000000000000006A -S3154004FC50000000000000000000000000000000005A -S3154004FC60000000000000000000000000000000004A -S3154004FC70000000000000000000000000000000003A -S3154004FC80000000000000000000000000000000002A -S3154004FC90000000000000000000000000000000001A -S3154004FCA0000000000000000000000000000000000A -S3154004FCB000000000000000000000000000000000FA -S3154004FCC000000000000000000000000000000000EA -S3154004FCD000000000000000000000000000000000DA -S3154004FCE000000000000000000000000000000000CA -S3154004FCF000000000000000000000000000000000BA -S3154004FD0000000000000000000000000000000000A9 -S3154004FD100000000000000000000000000000000099 -S3154004FD200000000000000000000000000000000089 -S3154004FD300000000000000000000000000000000079 -S3154004FD400000000000000000000000000000000069 -S3154004FD500000000000000000000000000000000059 -S3154004FD600000000000000000000000000000000049 -S3154004FD700000000000000000000000000000000039 -S3154004FD800000000000000000000000000000000029 -S3154004FD900000000000000000000000000000000019 -S3154004FDA00000000000000000000000000000000009 -S3154004FDB000000000000000000000000000000000F9 -S3154004FDC000000000000000000000000000000000E9 -S3154004FDD000000000000000000000000000000000D9 -S3154004FDE000000000000000000000000000000000C9 -S3154004FDF000000000000000000000000000000000B9 -S3154004FE0000000000000000000000000000000000A8 -S3154004FE100000000000000000000000000000000098 -S3154004FE200000000000000000000000000000000088 -S3154004FE300000000000000000000000000000000078 -S3154004FE400000000000000000000000000000000068 -S3154004FE500000000000000000000000000000000058 -S3154004FE600000000000000000000000000000000048 -S3154004FE700000000000000000000000000000000038 -S3154004FE800000000000000000000000000000000028 -S3154004FE900000000000000000000000000000000018 -S3154004FEA00000000000000000000000000000000008 -S3154004FEB000000000000000000000000000000000F8 -S3154004FEC000000000000000000000000000000000E8 -S3154004FED000000000000000000000000000000000D8 -S3154004FEE000000000000000000000000000000000C8 -S3154004FEF000000000000000000000000000000000B8 -S3154004FF0000000000000000000000000000000000A7 -S3154004FF100000000000000000000000000000000097 -S3154004FF200000000000000000000000000000000087 -S3154004FF300000000000000000000000000000000077 -S3154004FF400000000000000000000000000000000067 -S3154004FF500000000000000000000000000000000057 -S3154004FF600000000000000000000000000000000047 -S3154004FF700000000000000000000000000000000037 -S3154004FF800000000000000000000000000000000027 -S3154004FF900000000000000000000000000000000017 -S3154004FFA00000000000000000000000000000000007 -S3154004FFB000000000000000000000000000000000F7 -S3154004FFC000000000000000000000000000000000E7 -S3154004FFD000000000000000000000000000000000D7 -S3154004FFE000000000000000000000000000000000C7 -S3154004FFF000000000000000000000000000000000B7 -S3154005000000000002000000030000000000000000A0 -S315400500100000000100000000FFFFFFFE0000000396 -S3154005002055555554FFFFFFFE0000000355555554E1 -S31540050030700FFFFE00000007100249240000000073 -S315400500400000000000000000000000020000000360 -S315400500500000000000000003FFFFFFFEFFFFFFFF5B -S3154005006000000002FFFFFFFD000000000000000049 -S31540050070000000010000000000000000FFFFFFFF38 -S315400500800000000000000001FFFFFFFFFFFFFFFF2C -S31540050090FFFFFFFF00000001FFFFFFFFFFFFFFFE21 -S315400500A00000000300000000FFFFFFFEFFFFFFFD0D -S315400500B000000000000000090000000700000001E4 -S315400500C0FFFFFFF700000002FFFFFFFCFFFFFFF801 -S315400500D000000002FFFFFFFCFFFFFFF8FFFFFFFCEC -S315400500E00000000200000008FFFFFFFCFFFFFFFEC7 -S315400500F0FFFFFFF8FFFFFFF800000001FFFFFFF8D5 -S31540050100FFFFFFF7000000000000000B00000002A3 -S31540050110000000050000002F000000020000001747 -S3154005012000003039000002A700000012FFFF076CEF -S315400501300000004DFFFFFCC600003039FFFFFD59AA -S31540050140FFFFFFEEFFFF076CFFFFFFB30000033A1B -S3154005015000000091FFFFE84100000000FFFFFD841D -S31540050160FFFED02F000000000000F6FA006E498120 -S315400501700000000000000000000000000000000034 -S31540050180FFFFF0000000000200000003000000062B -S3154005019000000002FFFFFFFDFFFFFFFA0000000021 -S315400501A0000000010000000000000000FFFFFFFF07 -S315400501B00000000000000001FFFFFFFFFFFFFFFFFB -S315400501C0FFFFFFFF00000001FFFFFFFFFFFFFFFEF0 -S315400501D000000003FFFFFFFAFFFFFFFEFFFFFFFDE5 -S315400501E000000006000000000000000000000009B5 -S315400501F000000000000000000000000000000000B4 -S31540050200000000000000000100000002000000039D -S315400502100000000000000000000000000000000093 -S31540050220FFFFFFFF00020000000000000000000085 -S3154005023040050228400502284005023040050230A7 -S315400502404005023840050238400502404005024057 -S315400502504005024840050248400502504005025007 -S3154005026040050258400502584005026040050260B7 -S315400502704005026840050268400502704005027067 -S315400502804005027840050278400502804005028017 -S3154005029040050288400502884005029040050290C7 -S315400502A04005029840050298400502A0400502A077 -S315400502B0400502A8400502A8400502B0400502B027 -S315400502C0400502B8400502B8400502C0400502C0D7 -S315400502D0400502C8400502C8400502D0400502D087 -S315400502E0400502D8400502D8400502E0400502E037 -S315400502F0400502E8400502E8400502F0400502F0E7 -S31540050300400502F8400502F8400503004005030094 -S315400503104005030840050308400503104005031042 -S3154005032040050318400503184005032040050320F2 -S3154005033040050328400503284005033040050330A2 -S315400503404005033840050338400503404005034052 -S315400503504005034840050348400503504005035002 -S3154005036040050358400503584005036040050360B2 -S315400503704005036840050368400503704005037062 -S315400503804005037840050378400503804005038012 -S3154005039040050388400503884005039040050390C2 -S315400503A04005039840050398400503A0400503A072 -S315400503B0400503A8400503A8400503B0400503B022 -S315400503C0400503B8400503B8400503C0400503C0D2 -S315400503D0400503C8400503C8400503D0400503D082 -S315400503E0400503D8400503D8400503E0400503E032 -S315400503F0400503E8400503E8400503F0400503F0E2 -S31540050400400503F8400503F840050400400504008F -S31540050410400504084005040840050410400504103D -S3154005042040050418400504184005042040050420ED -S31540050430400504284005042840050430400504309D -S31540050440400504384005043840050440400504404D -S3154005045040050448400504484005045040050450FD -S3154005046040050458400504584005046040050460AD -S31540050470400504684005046840050470400504705D -S31540050480400504784005047840050480400504800D -S3154005049040050488400504884005049040050490BD -S315400504A04005049840050498400504A0400504A06D -S315400504B0400504A8400504A8400504B0400504B01D -S315400504C0400504B8400504B8400504C0400504C0CD -S315400504D0400504C8400504C8400504D0400504D07D -S315400504E0400504D8400504D8400504E0400504E02D -S315400504F0400504E8400504E8400504F0400504F0DD -S31540050500400504F8400504F840050500400505008A -S315400505104005050840050508400505104005051038 -S3154005052040050518400505184005052040050520E8 -S315400505304005052840050528400505304005053098 -S315400505404005053840050538400505404005054048 -S3154005055040050548400505484005055040050550F8 -S3154005056040050558400505584005056040050560A8 -S315400505704005056840050568400505704005057058 -S315400505804005057840050578400505804005058008 -S3154005059040050588400505884005059040050590B8 -S315400505A04005059840050598400505A0400505A068 -S315400505B0400505A8400505A8400505B0400505B018 -S315400505C0400505B8400505B8400505C0400505C0C8 -S315400505D0400505C8400505C8400505D0400505D078 -S315400505E0400505D8400505D8400505E0400505E028 -S315400505F0400505E8400505E8400505F0400505F0D8 -S31540050600400505F8400505F8400506004005060085 -S315400506104005060840050608400506104005061033 -S3154005062040050618400506184005062040050620E3 -S3154005063000000000400506300000000000000000F4 -S31540050640000000000000000200000000000000005D -S31540050650000000000000000000000000000000004F -S31540050660000000000000000000000000000000003F -S31540050670000000000000000000000000000000002F -S31540050680000000000000000000000000000000001F -S31540050690000000000000000000000000000000000F -S315400506A0000000000000000000000000400509941D -S315400506B040050A6040050B2C0000000000000000C4 -S315400506C000000000000000000000000000000000DF -S315400506D00000000000000000000000004001CA8044 -S315400506E000000000000000000000000000000000BF -S315400506F000000000000000000000000000000000AF -S31540050700000000000000000000000000000000009E -S31540050710000000000000000000000000000000008E -S31540050720000000000000000000000000000000007E -S31540050730000000000000000000000000000000006E -S31540050740000000000000000000000000000000005E -S315400507500000000000000001330EABCD1234E66DFB -S31540050760DEEC0005000B0000000000000000000064 -S31540050770000000000000000000000000000000002E -S31540050780000000000000000000000000000000001E -S31540050790000000000000000000000000000000000E -S315400507A000000000000000000000000000000000FE -S315400507B000000000000000000000000000000000EE -S315400507C000000000000000000000000000000000DE -S315400507D000000000000000000000000000000000CE -S315400507E000000000000000000000000000000000BE -S315400507F000000000000000000000000000000000AE -S31540050800000000000000000000000000000000009D -S31540050810000000000000000000000000000000008D -S31540050820000000000000000000000000000000007D -S31540050830000000000000000000000000000000006D -S31540050840000000000000000000000000000000005D -S31540050850000000000000000000000000000000004D -S31540050860000000000000000000000000000000003D -S31540050870000000000000000000000000000000002D -S31540050880000000000000000000000000000000001D -S31540050890000000000000000000000000000000000D -S315400508A000000000000000000000000000000000FD -S315400508B000000000000000000000000000000000ED -S315400508C000000000000000000000000000000000DD -S315400508D000000000000000000000000000000000CD -S315400508E000000000000000000000000000000000BD -S315400508F000000000000000000000000000000000AD -S31540050900000000000000000000000000000000009C -S31540050910000000000000000000000000000000008C -S31540050920000000000000000000000000000000007C -S31540050930000000000000000000000000000000006C -S31540050940000000000000000000000000000000005C -S31540050950000000000000000000000000000000004C -S31540050960000000000000000000000000000000003C -S31540050970000000000000000000000000000000002C -S31540050980000000000000000000000000000000001C -S31540050990000000000000000000000000000000000C -S315400509A000000000000000000000000000000000FC -S315400509B000000000000000000000000000000000EC -S315400509C000000000000000000000000000000000DC -S315400509D000000000000000000000000000000000CC -S315400509E000000000000000000000000000000000BC -S315400509F000000000000000000000000000000000AC -S31540050A00000000000000000000000000000000009B -S31540050A10000000000000000000000000000000008B -S31540050A20000000000000000000000000000000007B -S31540050A30000000000000000000000000000000006B -S31540050A40000000000000000000000000000000005B -S31540050A50000000000000000000000000000000004B -S31540050A60000000000000000000000000000000003B -S31540050A70000000000000000000000000000000002B -S31540050A80000000000000000000000000000000001B -S31540050A90000000000000000000000000000000000B -S31540050AA000000000000000000000000000000000FB -S31540050AB000000000000000000000000000000000EB -S31540050AC000000000000000000000000000000000DB -S31540050AD000000000000000000000000000000000CB -S31540050AE000000000000000000000000000000000BB -S31540050AF000000000000000000000000000000000AB -S31540050B00000000000000000000000000000000009A -S31540050B10000000000000000000000000000000008A -S31540050B20000000000000000000000000000000007A -S31540050B30000000000000000000000000000000006A -S31540050B40000000000000000000000000000000005A -S31540050B50000000000000000000000000000000004A -S31540050B60000000000000000000000000000000003A -S31540050B70000000000000000000000000000000002A -S31540050B80000000000000000000000000000000001A -S31540050B90000000000000000000000000000000000A -S31540050BA000000000000000000000000000000000FA -S31540050BB000000000000000000000000000000000EA -S31540050BC000000000000000000000000000000000DA -S31540050BD000000000000000000000000000000000CA -S31540050BE000000000000000000000000000000000BA -S31540050BF00000000000000000400506A800000000B7 -S31540050C000000000000000000000000000000000099 -S31540050C100000000000000000000000000000000089 -S31540050C200000000000000000000000000000000079 -S31540050C3000000000800001000000000800000007D9 -S31540050C40000000060000000300000000FFFF8AD0F8 -S30940050C5080000310C2 +S31540048C30000000008000010000000008000000075A +S31540048C40000000060000000300000000FFFF8AD079 +S30D40048C5080000310000000003F S70540000000BA diff --git a/designs/leon3-gr-xc3s-1500/sram.srec b/designs/leon3-gr-xc3s-1500/sram.srec index 811496d2..eada5924 100755 --- a/designs/leon3-gr-xc3s-1500/sram.srec +++ b/designs/leon3-gr-xc3s-1500/sram.srec @@ -1,14 +1,14 @@ S00C00007372616D2E7372656365 -S31540000000881000000910007181C1216C01000000B8 -S31540000010A1480000A75000001080203BAC102001F2 +S31540000000881000000910007181C1203401000000F1 +S31540000010A1480000A75000001080203EAC102001EF S3154000002091D0200001000000010000000100000006 S3154000003091D02000010000000100000001000000F6 -S31540000040A14800002910007181C520A401000000CC -S31540000050A14800002910006E81C523C80100000098 -S31540000060A14800002910006F81C52034010000001E +S31540000040A14800002910007081C5236C0100000002 +S31540000050A14800002910006E81C522A801000000B9 +S31540000060A14800002910006E81C52314010000003C S3154000007091D02000010000000100000001000000B6 S3154000008091D02000010000000100000001000000A6 -S31540000090A1480000A75000001080201BAC1020098A +S31540000090A1480000A75000001080201EAC10200987 S315400000A091D0200001000000010000000100000086 S315400000B091D0200001000000010000000100000076 S315400000C091D0200001000000010000000100000066 @@ -16,21 +16,21 @@ S315400000D091D0200001000000010000000100000056 S315400000E091D0200001000000010000000100000046 S315400000F091D0200001000000010000000100000036 S3154000010091D0200001000000010000000100000025 -S31540000110AE102001A148000010806F73A750000068 -S31540000120AE102002A148000010806F6FA75000005B -S31540000130AE102003A148000010806F6BA75000004E -S31540000140AE102004A148000010806F67A750000041 -S31540000150AE102005A148000010806F63A750000034 -S31540000160AE102006A148000010806F5FA750000027 -S31540000170AE102007A148000010806F5BA75000001A -S31540000180AE102008A148000010806F57A75000000D -S31540000190AE102009A148000010806F53A750000000 -S315400001A0AE10200AA148000010806F4FA7500000F3 -S315400001B0AE10200BA148000010806F4BA7500000E6 -S315400001C0AE10200CA148000010806F47A7500000D9 -S315400001D0AE10200DA148000010806F43A7500000CC -S315400001E0AE10200EA148000010806F3FA7500000BF -S315400001F0AE10200FA148000010806F3BA7500000B2 +S31540000110AE102001A148000010806F2BA7500000B0 +S31540000120AE102002A148000010806F27A7500000A3 +S31540000130AE102003A148000010806F23A750000096 +S31540000140AE102004A148000010806F1FA750000089 +S31540000150AE102005A148000010806F1BA75000007C +S31540000160AE102006A148000010806F17A75000006F +S31540000170AE102007A148000010806F13A750000062 +S31540000180AE102008A148000010806F0FA750000055 +S31540000190AE102009A148000010806F0BA750000048 +S315400001A0AE10200AA148000010806F07A75000003B +S315400001B0AE10200BA148000010806F03A75000002E +S315400001C0AE10200CA148000010806EFFA750000022 +S315400001D0AE10200DA148000010806EFBA750000015 +S315400001E0AE10200EA148000010806EF7A750000008 +S315400001F0AE10200FA148000010806EF3A7500000FB S3154000020091D0200001000000010000000100000024 S3154000021091D0200001000000010000000100000014 S3154000022091D0200001000000010000000100000004 @@ -129,10 +129,10 @@ S315400007E091D020000100000001000000010000003F S315400007F091D020000100000001000000010000002F S3154000080091D020000100000001000000010000001E S3154000081091D020000100000001000000010000000E -S31540000820A14800002910006F81C522080100000080 -S31540000830A148000010806D19A7500000010000007B +S31540000820A14800002910006F81C520E801000000A2 +S31540000830A148000010806CD1A750000001000000C4 S3154000084091D02000010000000100000001000000DE -S31540000850A14800002910006F81C521EC010000006D +S31540000850A14800002910006F81C520CC010000008E S3154000086091D02000010000000100000001000000BE S3154000087091D02000010000000100000001000000AE S3154000088091D020000100000001000000010000009E @@ -255,131 +255,131 @@ S31540000FC091D0200001000000010000000100000057 S31540000FD091D0200001000000010000000100000047 S31540000FE091D0200001000000010000000100000037 S31540000FF091D0200001000000010000000100000027 -S315400010009DE3BFC0051001438410A0600710014452 +S315400010009DE3BFC0051001238410A0600710012492 S315400010108610E1B8821000008620C00286A0E00853 -S3154000102036BFFFFFC038800311100144901221B82B -S31540001030C022000040006BA60100000040006BA6E5 -S315400010400100000040006D580100000011100072C0 -S31540001050901222A0400066A60100000040006E8A61 -S3154000106001000000400000430100000040006C8386 -S315400010700100000081C7E00881E800009DE3BF98B9 -S3154000108023100143C20C606080A0600012800015EE -S315400010902110008010800005C204200C9FC3400030 -S315400010A0C224200CC204200CDA00400080A3600059 -S315400010B012BFFFFB82006004030000008210600044 -S315400010C080A060000280000682102001111000728C -S315400010D06FFFFBCC9012223082102001C22C606040 -S315400010E081C7E00881E800009DE3BF9881C7E0081A -S315400010F081E800009DE3BF98030000008210600075 -S31540001100111000721310014380A06000901222302B -S3154000111002800004921260646FFFFBBA0100000077 -S315400011201B100144C20361B880A060000280000920 -S31540001130B01361B8030000008210600080A0600018 -S3154000114002800004010000006FFFFBAE81E8000052 -S315400011500100000081C7E00881E800009DE3BF98D8 -S3154000116081C7E00881E8000081C3E0080100000073 -S315400011709DE3BF984000000A01000000400001497D -S31540001180010000001120000340003C2C9012210079 -S315400011904000000E81E80000010000009DE3BF987A -S315400011A0400000290100000080A2200012800005B6 -S315400011B003100080D80060109A102001DA23201016 -S315400011C081C7E00891E8200003100080D800601035 -S315400011D09A102001DA23201481C3E00890102000E1 -S315400011E003100080DA006010D023400081C3E0087D -S315400011F09010200003100080DA006010D0236008B1 -S3154000120081C3E0089010200003100080DA006010CF -S31540001210D023600481C3E0089010200013100080A2 -S31540001220921260149010200081C3E008D0EA40205A -S3154000123090102000131000809212601481C3E008C1 -S31540001240D0224000914440009132201C81C3E008E6 -S31540001250900A200F81C3E008D08200209010200C15 -S3154000126081C3E008D08200408210000880A20009B5 -S3154000127014800003902200099022400181C3E008B7 -S3154000128001000000932A600282102001C222000958 -S315400012909810200080A3000A1680000A96102001AC -S315400012A0832B2002DA02000180A0000D826020001C -S315400012B09803200180A3000A06BFFFFA960AC001E0 -S315400012C080A2E00002BFFFF49810200081C3E0082E -S315400012D0010000009DE3BF98C20620108330601CC9 -S315400012E0A0100018A400600180A4A0010280006C38 -S315400012F0B0103FFF7FFFFFD401000000AA10000896 -S31540001300912A20047FFFFFBC900220077FFFFFD475 -S315400013100100000003020000808A00010280005C98 -S31540001320010000009A056001821020018328400DCB -S3154000133011100080C2242010901220A09210001597 -S315400013407FFFFFD1941000120310008082106018B6 -S31540001350A12D6002C0204010DA004010A610000106 -S3154000136080A36009291001431480002BAC100001B2 -S315400013707FFFFFAB0100000080A2200012BFFFFDEF -S3154000138001000000B010200080A600121680001454 -S315400013900100000010800005A210001680A6001271 -S315400013A01680000F01000000832E2002D00440105A -S315400013B0D20440017FFFFFADB006200180A220018C -S315400013C004BFFFF7901020027FFFFF90010000004E -S315400013D080A6001206BFFFF6832E2002C205207C9F -S315400013E082006001C225207C7FFFFF920100000041 -S315400013F0C204C01082006001C224C010DA04C010CA -S3154000140080A3600904BFFFDB111000801080000438 -S315400014109012205C111000809012205C92100015F2 -S315400014207FFFFF9994100012832CA0028200401285 -S31540001430A0004001DA05207C80A4000D0280000453 -S31540001440231001437FFFFF7190102003C204607C8C -S3154000145080A060000480000601000000C204607C99 -S3154000146080A400011680000580A560007FFFFF670D -S315400014709010200380A5600022800009B010200053 -S3154000148091D0200010800006B01020007FFFFF5F43 -S315400014909010200110BFFFA59A05600181C7E008A2 -S315400014A081E800009DE3BF98C2062010A0100018F6 -S315400014B08330601C80A0600002800009B0103FFFAE -S315400014C07FFFFF610100000080A22000128000041F -S315400014D00300003F821063FFC224201081C7E0084A -S315400014E081E800009DE3BF98C20620108330601C4F -S315400014F0A400600180A4A00102800068B0103FFFF4 -S315400015007FFFFF5101000000AA100008912A200425 -S315400015107FFFFF39900220077FFFFF510100000047 -S3154000152003020000808A000102800058010000008A -S3154000153011100080901220A0921000157FFFFF52DC -S31540001540941000120310008082106018A12D6002D2 -S31540001550C0204010DA004010A610000180A36009A8 -S31540001560291001431480002BAC1000017FFFFF2C93 -S315400015700100000080A2200012BFFFFD0100000014 -S31540001580B010200080A60012168000140100000052 -S3154000159010800005A210001680A600121680000FCB -S315400015A001000000832E2002D0044010D2044001E6 -S315400015B07FFFFF2EB006200180A2200104BFFFF767 -S315400015C0901020027FFFFF110100000080A600124C -S315400015D006BFFFF6832E2002C205207C82006001F2 -S315400015E0C225207C7FFFFF1301000000C204C0100B -S315400015F082006001C224C010DA04C01080A36009D2 -S3154000160004BFFFDB11100080108000049012205CA4 -S31540001610111000809012205C921000157FFFFF1A77 -S3154000162094100012832CA00282004012A0004001B8 -S31540001630DA05207C80A4000D0280000423100143BB -S315400016407FFFFEF290102003C204607C80A0600001 -S315400016500480000601000000C204607C80A40001F2 -S315400016601680000580A560007FFFFEE890102003ED -S3154000167080A5600022800009B010200091D0200093 -S3154000168010800006B01020007FFFFEE09010200181 -S3154000169010BFFFA91110008081C7E00881E8000053 -S315400016A09DE3BF983120000092162200941020003E -S315400016B04000439790102001400040A09016220021 -S315400016C090162300400043FC92102008B0162100DB -S315400016D040003F8D81E80000010000009DE3BF9877 -S315400016E021200000921422009410200040004388DC -S315400016F09010200140004091901422009210001852 -S31540001700400043ED90142300B014210040003F7E7A -S3154000171081E8000001000000000000000000000019 -S315400017200000000000000000000000000000000073 -S315400017300000000000000000000000000000000063 -S315400017400000000000000000000000000000000053 -S315400017500000000000000000000000000000000043 -S315400017600000000000000000000000000000000033 -S315400017700000000000000000000000000000000023 -S315400017800000000000000000000000000000000013 -S315400017900000000000000000000000000000000003 -S315400017A000000000000000000000000000000000F3 -S315400017B000000000000000000000000000000000E3 -S315400017C000000000000000000000000000000000D3 +S3154000102036BFFFFFC038800311100124901221B84B +S31540001030C022000040006B5E0100000040006B5E75 +S315400010400100000040006D0A01000000111000740C +S31540001050901221DC400067030100000040007059F7 +S31540001060010000004000004F0100000040006C3BC2 +S315400010700100000081C7E00881E800009DE3BFA0B1 +S3154000108021100123C20C206080A060001280002243 +S3154000109023100123C20460642710007425100074D5 +S315400010A0A614E144A414A148A4248013A53CA0029C +S315400010B0A404BFFF80A040123A80000E0300000047 +S315400010C0A21460648200600185286002C224400048 +S315400010D0C204C0029FC0400001000000C20440009C +S315400010E080A040120ABFFFF98200600103000000A1 +S315400010F08210600080A060000280000682102001FD +S31540001100111000726FFFFBBF901220E08210200189 +S31540001110C22C206081C7E00881E800009DE3BFA0A3 +S3154000112081C7E00881E800009DE3BFA003000000FE +S315400011308210600080A06000228000081110012407 +S315400011401110007213100123901220E06FFFFBADC7 +S315400011509212606811100124C20221B880A060007A +S3154000116002800009901221B803000000821060003E +S3154000117080A0600002800004010000009FC0400083 +S315400011800100000081C7E00881E800009DE3BFA0A0 +S3154000119081C7E00881E8000081C3E0080100000043 +S315400011A09DE3BFA0400000260100000040000177FB +S315400011B0010000001120000340003C249012210051 +S315400011C04000000381E80000010000000310008099 +S315400011D0C20060108410200190102000C4206014CA +S315400011E081C3E0080100000003100080C2006010C7 +S315400011F08410000890102000C420400081C3E008FD +S315400012000100000003100080C20060108410000836 +S3154000121090102000C420600881C3E008010000004F +S3154000122003100080C2006010841000089010200057 +S31540001230C420600481C3E008010000009DE3BFA014 +S31540001240400000140100000080A22000128000052A +S3154000125003100080C200601084102001C42060107A +S3154000126081C7E00891E820001310008092126014B4 +S315400012709010200081C3E008D0EA40209010200062 +S31540001280131000809212601481C3E008D0224000FF +S31540001290914440009132201C81C3E008900A200FFF +S315400012A081C3E008D08200209010200C81C3E00862 +S315400012B0D08200409DE3BFA0C2062010A0100018B7 +S315400012C08330601C80A0600002800009B0103FFFA0 +S315400012D07FFFFFF00100000080A220001280000482 +S315400012E00300003F821063FFC224201081C7E0083C +S315400012F081E800009DE3BFA0E4062010A534A01CB1 +S31540001300A404A00180A4A0010280003CB0103FFFCD +S315400013107FFFFFE001000000AA100008912A200488 +S315400013207FFFFFB9900220077FFFFFE0010000002A +S3154000133003020000808A0001028000740100000060 +S31540001340A72D600209100080881120188210200104 +S3154000135084102001C22100138210200080A4800145 +S31540001360148000098728600280A0A0001280002512 +S31540001370821020008410200180A4800104BFFFFB5E +S3154000138087286002C601000380A000038200600136 +S315400013908660200010BFFFF284088003C205A0804B +S315400013A0852CA003A12CA001A004000280A400016A +S315400013B002800004010000007FFFFF9A9010200386 +S315400013C0C205A08080A060000480000603100123AF +S315400013D0C200608080A400011680000580A56000E0 +S315400013E07FFFFF909010200380A5600002800003DD +S315400013F0B010200091D0200081C7E00881E80000AD +S3154000140023100080A21460A02D100123C024401395 +S31540001410C204401380A06009148000270910008090 +S31540001420A815A0807FFFFF910100000080A2200048 +S3154000143012BFFFFD80A4A00004800013010000003D +S31540001440A0102000C4044013832C2002C204400193 +S3154000145080A08001A0042001048000038620400271 +S315400014608620800180A0E0010480000580A48010D1 +S315400014707FFFFF6C9010200280A4801014BFFFF203 +S3154000148001000000C205000082006001C225000084 +S315400014907FFFFF7B01000000C20440138200600111 +S315400014A0C2244013C204401380A0600904BFFFDE7B +S315400014B0091000808811205C8210200184102001D0 +S315400014C0C22100138210200080A4800114800009EC +S315400014D08728600280A0A00012BFFFB182102000C2 +S315400014E08410200180A4800104BFFFFB872860028E +S315400014F0C601000380A000038200600186602000D0 +S3154000150010BFFFF2840880037FFFFF469010200142 +S3154000151010BFFF8DA72D60029DE3BFA0E4062010FB +S31540001520A0100018A534A01CA404A00180A4A0010A +S315400015300280003FB0103FFF7FFFFF5601000000D2 +S31540001540AA100008912A20047FFFFF2F900220074F +S315400015507FFFFF560100000003020000808A000161 +S315400015600280007701000000A72D6002091000806C +S3154000157088112018821020018405600185284002C8 +S31540001580C4242010C22100138410200182102000A0 +S3154000159080A48001148000098728600280A0A000F2 +S315400015A012800025821020008410200180A4800132 +S315400015B004BFFFFB87286002C601000380A000032A +S315400015C0820060018660200010BFFFF2840880031D +S315400015D0C205A080852CA003A12CA001A004000276 +S315400015E080A4000102800004010000007FFFFF0D7F +S315400015F090102003C205A08080A0600004800006F1 +S3154000160003100123C200608080A4000116800005FB +S3154000161080A560007FFFFF039010200380A5600037 +S3154000162002800003B010200091D0200081C7E0085E +S3154000163081E8000023100080A21460A02D10012331 +S31540001640C0244013C204401380A0600914800027C0 +S3154000165009100080A815A0807FFFFF04010000004C +S3154000166080A2200012BFFFFD80A4A00004800013CA +S3154000167001000000A0102000C4044013832C200267 +S31540001680C204400180A08001A00420010480000320 +S31540001690862040028620800180A0E001048000056B +S315400016A080A480107FFFFEDF9010200280A480106F +S315400016B014BFFFF201000000C20500008200600175 +S315400016C0C22500007FFFFEEE01000000C204401369 +S315400016D082006001C2244013C204401380A0600906 +S315400016E004BFFFDE091000808811205C82102001B3 +S315400016F084102001C22100138210200080A48001A2 +S31540001700148000098728600280A0A00012BFFFB1A4 +S31540001710821020008410200180A4800104BFFFFBBA +S3154000172087286002C601000380A000038200600192 +S315400017308660200010BFFFF2840880037FFFFEB959 +S315400017409010200110BFFF8AA72D60029DE3BFA025 +S31540001750212000009410200092142200400043688B +S315400017609010200140004220901422009210001850 +S31540001770400043AC90142300B014210040003F5C6D +S3154000178081E80000010000009DE3BFA03120000079 +S3154000179094102000921622004000435990102001D8 +S315400017A04000421190162200901623004000439DAF +S315400017B092102008B016210040003F4D81E80000FD +S315400017C001000000000000000000000000000000D2 S315400017D000000000000000000000000000000000C3 S315400017E000000000000000000000000000000000B3 S315400017F000000000000000000000000000000000A3 @@ -2049,39 +2049,39 @@ S31540007FE0000000000000000000000000000000004B S31540007FF0000000000000000000000000000000003B S315400080009DE3BF9081C7E00881E8000003000010AF S31540008010C48000408088800112BFFFFE010000003E -S315400080209DE3BF909DE3BF909DE3BF909DE3BF90CE -S315400080309DE3BF909DE3BF9021044444A0142111C9 -S3154000804023088888A2146222250CCCCCA414A3331E -S3154000805027111111A614E04429155555A815215587 -S315400080602B199999AA1562662D1DDDDDAC15A377EE -S315400080702F222222AE15E08801100000E03FBFE02B -S31540008080E43FBFE8E83FBFF0EC3FBFF88210001E78 -S315400080908220601CC0A041E082206008C0A041E070 -S315400080A082206008C0A041E082206008C0A041E074 -S315400080B0C0A002209DE3BF909DE3BF9081E80000F1 -S315400080C081E800000100000001000000E01FBFE061 -S315400080D0E41FBFE8E81FBFF0EC1FBFF80100000037 -S315400080E00100000081E8000081E8000081E800000E -S315400080F081E8000081E8000081C7E00881E80000CF -S31540008100A7500000AA102400A8102300EC854320A5 -S31540008110EA8503202F100020AE15E150EE05C00081 -S31540008120E805C000EA05E004EC05E008AC15A0004F -S31540008130C0A58300EA250000AE05E00C2B10002008 -S31540008140AA156150EE25400081C4400081CC8000D4 -S3154000815000000000010000000000000000000000D8 -S3154000816000000000000000000000000000000000C9 +S31540008020C46FBFF89DE3BF909DE3BF909DE3BF90B3 +S315400080309DE3BF909DE3BF909DE3BF9021044444E0 +S31540008040A014211123088888A2146222250CCCCCC6 +S31540008050A414A33327111111A614E044291555552C +S31540008060A81521552B199999AA1562662D1DDDDD96 +S31540008070AC15A3772F222222AE15E088011000000E +S31540008080E03FBFE0E43FBFE8E83FBFF0EC3FBFF86A +S315400080908210001E8220601CC0A041E08220600841 +S315400080A0C0A041E082206008C0A041E08220600874 +S315400080B0C0A041E0C0A002209DE3BF909DE3BF90D9 +S315400080C081E8000081E80000010000000100000096 +S315400080D0E01FBFE0E41FBFE8E81FBFF0EC1FBFF89A +S315400080E0EC6FBFF8EC7FBFF8010000000100000014 +S315400080F081E8000081E8000081E8000081E8000096 +S3154000810081E8000081C7E00881E80000A750000030 +S31540008110AA102400A8102300EC854320EA850320FA +S315400081202F100020AE15E160EE05C000E805C00046 +S31540008130EA05E004EC05E008AC15A000C0A5830004 +S31540008140EA250000AE05E00C2B100020AA15616060 +S31540008150EE25400081C4400081CC80000100000033 +S3154000816000000000010000000000000000000000C8 S3154000817000000000000000000000000000000000B9 S3154000818000000000000000000000000000000000A9 -S315400081900000000001000000010000000100000096 -S315400081A00100000001000000010000000100000085 +S315400081900000000000000000000000000000000099 +S315400081A00000000001000000010000000100000086 S315400081B00100000001000000010000000100000075 -S315400081C00100000001000000010000000100000065 +S315400081C081C3E008D0A003200100000001000000A8 S315400081D00100000001000000010000000100000055 -S315400081E00100000001000000010000000100000045 -S315400081F00100000001000000010000000100000035 -S315400082000100000001000000010000000100000024 -S315400082100100000001000000010000000100000014 -S315400082200100000001000000010000000100000004 +S315400081E09DE3BF90FC2780009007A0019410001EDD +S315400081F0D1E7816AD1E7816A9402A0019002200109 +S31540008200D1E7816AD1E7816AD60780009622C01EEF +S31540008210B0A2E00202800004900020017FFFE4014A +S315400082200100000081C7E00881E80000010000006D S3154000823001000000010000000100000001000000F4 S3154000824001000000010000000100000001000000E4 S3154000825001000000010000000100000001000000D4 @@ -4095,3251 +4095,3366 @@ S3154000FFC001000000010000000100000001000000E7 S3154000FFD001000000010000000100000001000000D7 S3154000FFE001000000010000000100000001000000C7 S3154000FFF001000000010000000100000001000000B7 -S315400100009DE3BF90C207A068A40060261B00003F85 -S315400100109A1363FF030000239E0C800DAC106111FF -S31540010020AB376010820D400DAC03C0169E0F400DDC -S3154001003099372010AC058001820B000DAC05800F6D -S315400100409E0F000DAC058001AC05800F8335A010D5 -S315400100508208400D9E0D800DAC03C001C207A06809 -S3154001006094006034C207A05C93286011C207A0685F -S315400100709E0863FFD607A060C207A074D420400043 -S31540010080D827BFF4EE07A070833620109935A0100B -S31540010090980B000DA136E010A336E008C22DC00032 -S315400100A0F62DE00B9A0D800D82102008B6102045E2 -S315400100B0972AE012AC03400C9612C009C22DE00CFF -S315400100C0F62DE00E9B36200899366010953660086D -S315400100D09336A0109136A008A73CA0088210204074 -S315400100E0B6102011A9376018DA2DE001F02DE00293 -S315400100F0D82DE003D42DE004F22DE005D22DE00603 -S31540010100D02DE007F42DE008E02DE009E22DE00ACC -S31540010110C22DE016F62DE017E42DE011E62DE01094 -S31540010120E82DE01AC02DE00DC02DE00FC02DE012E4 -S31540010130C02DE013C02DE014C02DE015D807A068EE -S315400101409F2BE007C207A0649612C00F92032012AC -S31540010150AC380016E407A06C9B3AE0189130601861 -S31540010160A1306010A3306008B7376008B537201852 -S31540010170B3372008B135A0089F3A6008993AE01094 -S31540010180953AE008EA2DE01BF62DE01CF42DE01E21 -S31540010190F22DE020F02DE018EC2DE019DE2DE026C1 -S315400101A0D22DE027DA2DE02CD82DE02DD42DE02ECE -S315400101B0D62DE02FD02DE030E02DE031E22DE0329A -S315400101C0C22DE033DA07A05CFA2DE01DC207BFF469 -S315400101D080A36000C22DE01FF82DE021C02DE02252 -S315400101E0C02DE023C02DE024C02DE025C02DE02800 -S315400101F0C02DE029C02DE02A0280000EC02DE02B43 -S31540010200B8102000D807A06880A7000C1A80000902 -S31540010210BA05C01CC20C801CC22F6034B80720012D -S31540010220DA07A06880A7000D0ABFFFFBBA05C01C0C -S3154001023081C7E00881E800009DE3BD1040002A34F3 -S3154001024090102000B610000840002A31901020047A -S31540010250BA100008391001447FFFC3E2110040740F -S31540010260A01720D0A6103FDEA8103FADAA103FBE72 -S31540010270AC103FEFAE102020F02720D0E62C200412 -S31540010280E82C2005EA2C2006EC2C2007C02C20085F -S31540010290EE2C2009400002B590100010D004201029 -S315400102A092102000400001CBD40720D0A492200018 -S315400102B0068000650100000015000010D0042010E2 -S315400102C09414800A9210200040000218D60720D0CC -S315400102D0EA2FBF0082103FF2EA2FBEFAE62FBEFE9A -S315400102E0E82FBEFFEC2FBF01EE2FBF03C22FBF0584 -S315400102F0E62FBEF8E82FBEF9EC2FBEFBC02FBEFCA1 -S31540010300EE2FBEFDC02FBF02C02FBF04A010200E8E -S31540010310AA07BFF882054010E0287F00A00420010B -S3154001032080A420FF04BFFFFD82054010AC07BDF845 -S3154001033090100016400003D6921720D080A22000CC -S3154001034002BFFFFD90100016B207BEF890102100C3 -S315400103509210001940000382941720D080A22000F9 -S3154001036002BFFFFC901021009010001D9210001B4F -S315400103704000040F941720D080A2200002BFFFFC4A -S315400103809010001DC207400080A061002280001825 -S31540010390A01020007FFFC39D901020011080001403 -S315400103A0A01020000480002380A060020280001F6C -S315400103B080A0600322800002A21000128205401034 -S315400103C0DA087F00B00C60FF80A340182280000548 -S315400103D0A00420017FFFC38D90102002A0042001BC -S315400103E080A420FF1480001C821720D0808C20031B -S315400103F012800005833C201F82058010E480402046 -S31540010400833C201F8330601E8204000182087FFCEA -S315400104108224000180A0600112BFFFE301000000B9 -S3154001042010BFFFE7A334A01010BFFFE5A334A00817 -S3154001043080A0600022BFFFE2A334A01810BFFFE1F5 -S31540010440820540107FFFC3719010200010BFFF9CB2 -S3154001045015000010DA00601480A3600002800135A7 -S31540010460C20720D08200601CF4804020400029A8A9 -S31540010470901021008210202AC2274000AE100008A9 -S3154001048082102004170037AB1B377BBF9A1363CC0E -S315400104909612E1BEC22DE01315003BC098103FFFF6 -S315400104A09412A020921020DE9132E0089E1020EF97 -S315400104B0A0102008A2102006A4102001A733601026 -S315400104C0A9336008821020DDD82DE005C22DE01C3D -S315400104D0DA2DE01FD82DC000D82DE001D82DE0023D -S315400104E0D82DE003D82DE004E02DE010E22DE012F6 -S315400104F0E42DE015D22DE016D02DE017D62DE018CB -S31540010500DE2DE019D42DE01BE62DE01DE82DE01E81 -S31540010510D22DE006D02DE007D62DE008DE2DE009EC -S31540010520C02DE00AD42DE00BE02DE00CE22DE00DCC -S31540010530C02DE00EE42DE00FC02DE011C02DE014DA -S31540010540C02DE01AC02DE0208336A0189B36A0109E -S315400105509936A008C22DE026DA2DE027D82DE028CD -S31540010560C02DE021C02DE022C02DE023C02DE02486 -S31540010570C02DE025F42DE0299010001640000344DB -S31540010580921720D080A2200002BFFFFD90100016D6 -S31540010590D007400092100017400002F1941720D076 -S315400105A080A2200022BFFFFCD00740009010001D12 -S315400105B09210001B4000037E941720D080A2200099 -S315400105C002BFFFFC9010001D9807BE0ED88B00207D -S315400105D0980B20FF992B20108207BE0FC28840201E -S315400105E0820860FF83286008981300019A07BE10AD -S315400105F0DA8B40209A0B60FFA213000D9607BE11BD -S31540010600D68AC020960AE0FF972AE0108207BE12DA -S31540010610C2884020820860FF832860089612C00184 -S315400106209A07BE13DA8B40209A0B60FFA612C00DC3 -S31540010630A807BD90150037AB17003BC0C023A05C8F -S31540010640C023A060E823A064C023A068C023A06C97 -S31540010650EE23A070FA23A0749412A1BE9612E02054 -S3154001066090100011921000139810001A7FFFFE653A -S315400106709A10001A9010001640000305921720D0D8 -S3154001068080A2200002BFFFFD90100016D007400057 -S3154001069092100017400002B2941720D080A2200089 -S315400106A022BFFFFCD00740009010001D9210001B96 -S315400106B04000033F941720D080A2200002BFFFFCD8 -S315400106C09010001D9807BE24D88B0020992B201826 -S315400106D08207BE25DA8840209A0B60FF9B2B60106B -S315400106E09813000D8207BE26C2884020820860FF0B -S315400106F083286008981300019A07BE27DA8B4020A9 -S315400107009A0B60FFA413000D03000080808C8001CA -S3154001071012800003A134A012A00420019A1020489F -S3154001072082102001DA23A068150037AB17003BC0C1 -S31540010730C223A05CF223A06CE023A060E823A0645E -S31540010740EE23A070FA23A0749412A1BE9612E02063 -S3154001075090100011921000139810001A7FFFFE2985 -S315400107609A10001A90100016400002C9921720D024 -S3154001077080A2200002BFFFFD90100016D007400066 -S315400107809210001740000276941720D080A22000D4 -S3154001079022BFFFFCD00740009010001D9210001BA5 -S315400107A040000303941720D080A2200002BFFFFC23 -S315400107B09010001D9A07BE25C28B4020808860029A -S315400107C022800005A00420017FFFC29090102003E3 -S315400107D0A004200182102048150037AB17003BC00A -S315400107E09810001AE023A060E823A064C223A06801 -S315400107F0C023A05CC023A06CEE23A070FA23A07492 -S3154001080090100011921000139412A1BE9612E0208E -S315400108107FFFFDFC9A10001A901000164000029CC2 -S31540010820921720D080A2200002BFFFFD9010001633 -S31540010830D00740009210001740000249941720D07B -S3154001084080A2200022BFFFFCD00740009010001D6F -S315400108509210001B400002D6941720D080A220009F -S3154001086002BFFFFC9010001DC207400080A0607CC3 -S3154001087022800005A605A0347FFFC26490102004A3 -S31540010880A605A03410800013A01020000480002289 -S3154001089080A060020280001D80A0600322800002C9 -S315400108A0B00CA0FF82054010DA087F0080A34018F3 -S315400108B022800005A00420017FFFC254901020052C -S315400108C0A004200180A4204714800018A604E0015A -S315400108D0808C200312800004833C201FE484C020C6 -S315400108E0833C201F8330601E8204000182087FFC06 -S315400108F08224000180A0600112BFFFE5A334A0104D -S3154001090010BFFFE9B00C60FFA334A00810BFFFE69B -S31540010910B00C60FF80A0600022BFFFE3B134A01895 -S3154001092010BFFFE28205401040002880901000175A -S3154001093081C7E00891E820009DE3BF88F027A044E5 -S31540010940C207A04482004001901000014000287077 -S315400109500100000082100008C227BFF4DA07BFF485 -S31540010960C207A0449A034001C207A04482007FFF08 -S3154001097082380001820B4001C227BFF4C207BFF48F -S31540010980C227BFF0C027BFECC207BFEC80A0607F83 -S315400109901480000C01000000C207BFEC9B286003D5 -S315400109A0C207BFF082034001C0204000C207BFEC2E -S315400109B082006001C227BFEC10BFFFF401000000B6 -S315400109C0C207BFF4B010000181C7E00881E800000A -S315400109D09DE3BF90F027A044F227A048F427A04CFE -S315400109E0C207A04C820060109010000140000046F2 -S315400109F001000000D027BFF4C207BFF48208600897 -S31540010A0080A06000028000040100000010BFFFF5D5 -S31540010A1001000000C207A0449B28600BC207A04802 -S31540010A208208601F8328600682134001821060029B -S31540010A30C227BFF4C207A04C82006010901000018B -S31540010A40D207BFF44000002701000000C207A04CB6 -S31540010A5082006010901000014000002B0100000050 -S31540010A60D027BFF4C207BFF48208600880A06000A7 -S31540010A70028000040100000010BFFFF501000000E4 -S31540010A80C207BFF48208601080A060001280001087 -S31540010A9001000000C207A04C8200601090100001C6 -S31540010AA04000001901000000D027BFF4C207BFF47F -S31540010AB0833060101B00003F9A1363FF8208400D8C -S31540010AC0C227BFF0108000040100000082103FFFE2 -S31540010AD0C227BFF0F007BFF081C7E00881E80000F8 -S31540010AE09DE3BF98F027A044F227A048C207A0443F -S31540010AF0FA07A048FA204000B010000181C7E0087B -S31540010B0081E800009DE3BF90F027A044C207A044BE -S31540010B10C2804020C227BFF4C207BFF4B010000113 -S31540010B2081C7E00881E800009DE3BF90F027A0441B -S31540010B30F227A048F427A04CF627A050C207A050A0 -S31540010B4082006010901000017FFFFFEF010000005E -S31540010B50D027BFF4C207BFF48208600880A06000B6 -S31540010B60028000040100000010BFFFF501000000F3 -S31540010B70DA07A04C0300003F821063FF820B40015D -S31540010B809B286010C207A0448328600B9A1340013A -S31540010B90C207A0488208601F83286006821340016D -S31540010BA082106001C227BFF4C207A05082006010C4 -S31540010BB090100001D207BFF47FFFFFCA0100000079 -S31540010BC0C207A05082006010901000017FFFFFCE47 -S31540010BD001000000D027BFF4C207BFF482086008B5 -S31540010BE080A06000028000040100000010BFFFF5F4 -S31540010BF00100000081C7E00881E800009DE3BF983D -S31540010C00F027A044F227A048DA07A044C207A0482B -S31540010C10C2084000C22B6004D807A0449A102001A4 -S31540010C20C207A04882034001C2084000C22B2005EA -S31540010C30D807A0449A102002C207A0488203400167 -S31540010C40C2084000C22B2006D807A0449A102003B0 -S31540010C50C207A04882034001C2084000C22B2007B8 -S31540010C60D807A0449A102004C207A0488203400135 -S31540010C70C2084000C22B2008D807A0449A1020057C -S31540010C80C207A04882034001C2084000C22B200986 -S31540010C90C207A044C200400096006008C207A048AF -S31540010CA0C2084000820860FF992860089A10200116 -S31540010CB0C207A04882034001C2084000820860FF83 -S31540010CC0821300019010000B921000017FFFFF85F7 -S31540010CD001000000C207A044C20040009600600C1B -S31540010CE09A102002C207A04882034001C208400070 -S31540010CF0820860FF992860189A102003C207A0480D -S31540010D0082034001C2084000820860FF83286010C8 -S31540010D10981300019A102004C207A048820340019B -S31540010D20C2084000820860FF8328600898130001CA -S31540010D309A102005C207A04882034001C20840001C -S31540010D40820860FF821300019010000B921000018F -S31540010D507FFFFF640100000082102001B0100001F6 -S31540010D6081C7E00881E800009DE3BF80F027A044E9 -S31540010D70C207A044D00040007FFFFF63010000008E -S31540010D80D027BFF4DA07A044C207BFF48330601B03 -S31540010D9082086001C223600CDA07A044C207BFF48F -S31540010DA08330601F82086001C2236014C207A044D9 -S31540010DB0C200601480A06000128000130100000090 -S31540010DC0C207A044D0004000921020407FFFFF455B -S31540010DD001000000C207A044D00040007FFFFF4A47 -S31540010DE001000000D027BFF4C207BFF4820860406B -S31540010DF080A06000028000040100000010BFFFF6E1 -S31540010E0001000000C207A044C200400082006010F9 -S31540010E10901000017FFFFF3C01000000D027BFF486 -S31540010E20DA07A044C207BFF48330600B8208601F13 -S31540010E30C2236010E007A044901024007FFFFEBF4C -S31540010E4001000000D0242018E007A044901024009F -S31540010E507FFFFEBA01000000D024201CC207A04437 -S31540010E60C200400082006014DA07A04490100001DD -S31540010E70D20360187FFFFF1B01000000C207A04498 -S31540010E80C200400082006018DA07A04490100001B9 -S31540010E90D203601C7FFFFF1301000000C207A0447C -S31540010EA0C0206020C207A044C0206024C207A044DD -S31540010EB0C0206028C207A044C020602CC207A044BD -S31540010EC0C200601480A0600012800083010000000F -S31540010ED0C207A044DA07A044D00060109210200057 -S31540010EE015000020D60340007FFFFF1001000000DF -S31540010EF0C207A044DA07A044D00060109210200037 -S31540010F00D40340007FFFFEB301000000D027BFF4A9 -S31540010F10DA07BFF403000020820B400180A0600085 -S31540010F20028000040100000010BFFFF20100000032 -S31540010F30C027BFF0C207BFF41B0000048208400D62 -S31540010F4080A060000280001701000000C207A04493 -S31540010F50DA07A044D000601092102001D40340006B -S31540010F607FFFFE9C0100000082100008820860207D -S31540010F7080A060001280000B01000000C207BFF094 -S31540010F8082006001C227BFF0DA07BFF003000030DC -S31540010F908210635080A3400104BFFFED01000000B1 -S31540010FA0C207A044DA07A044D00060109210200086 -S31540010FB0D40340007FFFFE8701000000D027BFF425 -S31540010FC0C207A044C200600C80A0600002800012EB -S31540010FD001000000C207BFF41B0000088208400D53 -S31540010FE080A060001280000C01000000C207BFF41F -S31540010FF08208604080A06000028000070100000076 -S3154001100082102001C227BFE4C027BFE81080001F1D -S3154001101001000000C207BFF41B0000088208400D12 -S3154001102080A060000280000C01000000C207BFF4EE -S315400110308208604080A06000128000070100000025 -S31540011040C027BFE482102001C227BFE81080000FED -S3154001105001000000C207BFF41B0000088208400DD2 -S3154001106080A060001280000901000000C207BFF4A1 -S315400110708208604080A060001280000401000000E8 -S31540011080C027BFE4C027BFE8C207BFF4833060086A -S3154001109082086001C227BFECD807A044C207BFEC53 -S315400110A09B286004C207BFE8832860079A13400162 -S315400110B0C207BFE48328600882134001D0030000C1 -S315400110C0921000017FFFFE87010000001080001B87 -S315400110D001000000C027BFF0C207BFF080A0600238 -S315400110E01480001601000000C207A044C20040005F -S315400110F082006010901000017FFFFE830100000016 -S31540011100D027BFF4C207BFF48208600880A0600000 -S315400111100280000501000000C027BFF010BFFFEFAD -S3154001112001000000C207BFF082006001C227BFF084 -S3154001113010BFFFEA01000000C207A044820060041C -S31540011140D007A044921000017FFFFEAD01000000D0 -S31540011150B010000181C7E00881E800009DE3BF901F -S31540011160F027A044F227A048F427A04CD807A04C6A -S31540011170C207A04CC20060209B286003C20320180E -S3154001118082034001901000017FFFFE5F01000000D5 -S31540011190821000088208680080A060000280000575 -S315400111A001000000C027BFF4108000360100000096 -S315400111B0D807A04CC207A04CC20060209B28600300 -S315400111C0C20320189A034001C207A048C223600403 -S315400111D0C207A04CC200602080A0607F1280001030 -S315400111E001000000D807A04CC207A04CC2006020F5 -S315400111F09B286003C203201898034001DA07A044E4 -S315400112000300000682134001C2230000C207A04C1E -S31540011210C02060201080001001000000D807A04CBB -S31540011220C207A04CC20060209B286003C20320185D -S315400112309A034001C207A04482106800C2234000BD -S31540011240DA07A04CC207A04CC200602082006001B0 -S31540011250C2236020C207A04CE0004000C207A04C58 -S31540011260D00040007FFFFE280100000082100008E8 -S3154001127082106001C224000082102001C227BFF4FF -S31540011280F007BFF481C7E00881E800009DE3BF9005 -S31540011290F027A044F227A048D807A048C207A04893 -S315400112A0C20060249B286003C203201C82034001C4 -S315400112B0901000017FFFFE1401000000821000081B -S315400112C08208680080A060000280000501000000DD -S315400112D0C027BFF41080003301000000D807A048A2 -S315400112E0C207A048C20060249B286003C203201C99 -S315400112F09A034001C207A044C2236004C207A04822 -S31540011300C200602480A0607F1280000E01000000B0 -S31540011310D807A048C207A048C20060249B286003A2 -S31540011320C203201C9A03400103000006C223400069 -S31540011330C207A048C02060241080000F01000000B1 -S31540011340D807A048C207A048C20060249B28600372 -S31540011350C203201C9A03400182102800C223400088 -S31540011360DA07A048C207A048C20060248200600193 -S31540011370C2236024C207A048E0004000C207A0483B -S31540011380D00040007FFFFDE0010000008210000810 -S3154001139082106002C224000082102001C227BFF4DD -S315400113A0F007BFF481C7E00881E800009DE3BF90E4 -S315400113B0F027A044F227A048F427A04CD807A04C18 -S315400113C0C207A04CC200602C9B286003C203201CAC -S315400113D082034001901000017FFFFDCB0100000018 -S315400113E082100008C227BFF4C207BFF48208680012 -S315400113F080A060001280001801000000DA07A044B6 -S31540011400C207BFF4820867FFC2234000C207A04C4F -S31540011410C200602C80A0607F12800006010000009F -S31540011420C207A04CC020602C1080000701000000BC -S31540011430DA07A04CC207A04CC200602C82006001B2 -S31540011440C223602C82102001C227BFF01080000306 -S3154001145001000000C027BFF0F007BFF081C7E008D8 -S3154001146081E800009DE3BF90F027A044D807A0443F -S31540011470C207A044C20060289B286003C20320180B -S3154001148082034001901000017FFFFD9F0100000093 -S3154001149082100008C227BFF4C207BFF48208680061 -S315400114A080A060001280001401000000C207A04421 -S315400114B0C200602880A0607F128000060100000003 -S315400114C0C207A044C0206028108000070100000028 -S315400114D0DA07A044C207A044C20060288200600126 -S315400114E0C223602882102001C227BFF0108000036A -S315400114F001000000C027BFF0F007BFF081C7E00838 -S3154001150081E800009DE3BF987FFFBF361100403060 -S3154001151080A22000128000F382102001C226200CF6 -S31540011520C0262004C0260000C026200882102002C2 -S31540011530C2262008C0260000C026000082102003D3 -S31540011540C22620089A102083DA262008A21020639A -S31540011550C0260000A2847FFF1CBFFFFE01000000E1 -S31540011560A2102063C2060000A2847FFF1CBFFFFEBB -S3154001157082102002C2262008A4062004C2848020AC -S315400115808088600402BFFFFE01000000C0262008DB -S31540011590C0260000A6102001C28480208338601432 -S315400115A08208603F80A0600122800093A604E0018A -S315400115B082102003C2262008C284802080886001D0 -S315400115C00280000780886004C2860020C284802091 -S315400115D08088600112BFFFFD8088600402BFFFFB67 -S315400115E08088600202BFFFF901000000C026200882 -S315400115F0C026200480A4E001048000082110008058 -S31540011600C28480208208608080A06001028000AE92 -S315400116100100000021100080DA4C20F0DA2600009B -S31540011620C28480208208600480A060010280009A02 -S3154001163001000000C284802080A4E00104800020D3 -S3154001164082102001A210200180A440131680000DB3 -S315400116502B100080A81420F0E00560E890100011DE -S315400116604000247992100010C24D0008A204600186 -S31540011670C226000080A4401306BFFFFA9010001155 -S31540011680C28480208208608080A06001028000922E -S3154001169001000000C2848020833860148208603FC4 -S315400116A080A0401302800004010000007FFFBED7E6 -S315400116B090102006C284802082102001C226200C70 -S315400116C0DA848020808B600112800068010000006E -S315400116D082102083C226200880A4E00102800052A5 -S315400116E001000000C28480208088640002BFFFFEA2 -S315400116F001000000C284802080886001028000537E -S315400117000100000080A4E00124800012A210200004 -S31540011710C28480208330601A80A040130280000476 -S31540011720010000007FFFBEB990102009C2848020CD -S31540011730808861000280005501000000C28480203B -S31540011740808864000280004D01000000A210200044 -S3154001175080A440131680001203100080A81060F088 -S315400117602B100080E08600209010001140002436A6 -S31540011770D20560E8C24D0008A204600180A0401075 -S31540011780028000049010200C7FFFBEA001000000E3 -S3154001179080A4401306BFFFF40100000080A4E001CD -S315400117A00480000F01000000C2848020808861000F -S315400117B01280004201000000C28480208330601AFA -S315400117C080A060001280003A01000000C28480209F -S315400117D0808864001280003301000000C2848020AA -S315400117E0808860011280001D01000000C02620088B -S315400117F03080003CC0260000C284802083386014BB -S315400118008208603F80A0401322BFFFFBA604E0018F -S3154001181080A4E00134BFFF67A604FFFF10BFFF6647 -S3154001182082102003C28480208088600112BFFFB2EB -S3154001183001000000C28480208088600102BFFFFA57 -S315400118400100000030BFFFAC7FFFBE709010200842 -S3154001185010BFFFAE80A4E0017FFFBE6C9010200C4C -S31540011860C02620083080001F7FFFBE6890102007E9 -S3154001187010BFFF99821020837FFFBE649010200B1A -S3154001188010BFFFB4A21020007FFFBE609010200A57 -S3154001189030BFFFAB7FFFBE5D9010200130BFFF66BA -S315400118A07FFFBE5A9010200B30BFFFCD7FFFBE5742 -S315400118B09010200E30BFFFC67FFFBE549010200D02 -S315400118C030BFFFBE7FFFBE519010200410BFFF53B3 -S315400118D0211000807FFFBE4D9010200530BFFF6E66 -S315400118E081C7E00891E8200017100143DA02E0843D -S315400118F0900220109B2B60029812E084D023000DA9 -S31540011900C202E08482006001C222E08481C3E00811 -S3154001191001000000C0220000C022204082103FFF8B -S31540011920C222200C9A10200103100143DA20608460 -S3154001193081C3E008010000009DE3BF780310014424 -S31540011940F02061007FFFBE27110040347FFFFFF288 -S3154001195090100018A010200123100046921000108C -S315400119604000298E901460E8A004200180A4200F35 -S3154001197004BFFFFC92100010C20620208330601C79 -S31540011980AE006001AC10200080A58017168000EDE6 -S315400119900300003FB81063FE2B1001430300002AE9 -S315400119A0B61062AABA102001B410001CB2156084A8 -S315400119B0832DA00C80A5E00114800119A6004018D2 -S315400119C080A5A0001280010A01000000F824E00869 -S315400119D0C204E00880A0401C02800004010000000F -S315400119E07FFFBE0A90102001F824E040C204E04087 -S315400119F080A0401C02800004010000007FFFBE035E -S31540011A0090102002C204E00880A0600012BFFFFED1 -S31540011A1001000000C205608480A0601002800005BC -S31540011A20251001437FFFBDF9901020032510014386 -S31540011A30A0102001A414A084A2102020832C2002EF -S31540011A409A244010D8048001A004200180A3000DEF -S31540011A5002800004901020047FFFBDEC01000000CD -S31540011A6080A4200F04BFFFF7832C2002FA2560844F -S31540011A70F624C000F424E040C204C00080A0401B0C -S31540011A8002800004A010001A7FFFBDE090102005DF -S31540011A90C204E04080A04010028000040100000022 -S31540011AA07FFFBDDA90102005F424E008C204E00867 -S31540011AB080A0600012BFFFFE01000000C2056084E5 -S31540011AC080A0601002800005251001437FFFBDCF35 -S31540011AD09010200625100143A0102001A414A084D3 -S31540011AE0A210201F9B2C2002C204800D80A0401111 -S31540011AF0A0042001A2047FFE02800004901020076A -S31540011B007FFFBDC20100000080A4200704BFFFF78C -S31540011B109B2C2002A4066028A210201CA0102005A0 -S31540011B20C204800080A04011A404A004A2047FFE48 -S31540011B3002800004901020087FFFBDB40100000020 -S31540011B40A0843FFF1CBFFFF701000000FA27BFE852 -S31540011B50C207BFE882006001C227BFECDA07BFECCB -S31540011B609A036001DA27BFF0C207BFF08200600125 -S31540011B70C227BFF49A102006DA27BFD8C024C00076 -S31540011B80C024E040FA256084A0102002E024E04011 -S31540011B90E024E0088344400080886100028000051B -S31540011BA0010000008050000180500001805000017A -S31540011BB0C207BFD8C227BFDCDA07BFD880A36006F9 -S31540011BC002800004010000007FFFBD909010200AB2 -S31540011BD0E024E00801000000C207BFD8C227BFDCED -S31540011BE0DA07BFD880A36006028000040100000026 -S31540011BF07FFFBD869010200AE024E0080100000026 -S31540011C00C027BFDCC207BFDC80A0600012800096FF -S31540011C1001000000C204E00880A0600012BFFFFE80 -S31540011C2001000000C205608480A0600402800005B6 -S31540011C300300003F7FFFBD759010200D0300003F5C -S31540011C40C024E040821063FEC224E0080310014331 -S31540011C509A102001DA206084400003E70100000069 -S31540011C60400003E790122F0082103FFFC224E0405C -S31540011C70C204E04080A0600002BFFFFE01000000F8 -S31540011C80C205608480A0600202800004A0156084C1 -S31540011C907FFFBD5E9010200EC204200480A0601F0D -S31540011CA002800004010000007FFFBD589010200F04 -S31540011CB0400003D1A8100010400003D190023F001C -S31540011CC0A0102002A4102020400003CB01000000F8 -S31540011CD0400003CB90023F00C2056084A20420016C -S31540011CE080A0401102800004901020107FFFBD4764 -S31540011CF001000000832C20029A248010D80500019F -S31540011D00A010001180A3000D028000049010201144 -S31540011D107FFFBD3E0100000080A4200F04BFFFEB02 -S31540011D2001000000C024E040AC05A00182103FFF45 -S31540011D30C224E00C80A5801706BFFF1F832DA00C8F -S31540011D4080A5E0010480004B01000000C02620244C -S31540011D50C206202480A060001280003F01000000DE -S31540011D6021040000E0262024C206202480A0401041 -S31540011D7002800005821020017FFFBD2490102014AF -S31540011D8082102001C2262020C0262024C2062024FB -S31540011D9080A0401002800004010000007FFFBD1BAF -S31540011DA090102015C0262020C0262024C2062024BB -S31540011DB080A06000128000240100000082102002F1 -S31540011DC0C2262020DA062020808B60020280001B7A -S31540011DD001000000C0262020C20620208088600223 -S31540011DE00280002401000000308000117FFFFECAFE -S31540011DF0901000139B2DA01CDA24E024C204E02499 -S31540011E008330601C80A0401602BFFEF10100000035 -S31540011E107FFFBCFE9010201230BFFEED7FFFBCF667 -S31540011E209010001610BFFEE880A5A0007FFFBCF70A -S31540011E30901020183080000F7FFFBCF490102017BF -S31540011E4030BFFFE57FFFBCF19010201610BFFFDDCC -S31540011E50821020027FFFBCED9010201310BFFFC2FD -S31540011E60210400007FFFBCE99010200B30BFFF6AC0 -S31540011E7081C7E00891E8200003100143DA0060CCF5 -S31540011E80C023600881C3E008901020009DE3BF9005 -S31540011E902F100144E205E100A0046100271001432F -S31540011EA0C2042004F024E0CC7FFFBCD39010201064 -S31540011EB003018000DA04200482106020808B4001F7 -S31540011EC01280010D01000000DA046100DA27BFF03B -S31540011ED0C204610080A340010280000582102001F6 -S31540011EE07FFFBCCA9010200282102001C224200428 -S31540011EF0DA046100DA27BFF0C204610080A3400121 -S31540011F000280012001000000C0242004DA0461009F -S31540011F10DA27BFF0C204610080A3400102800005B8 -S31540011F2080A720007FFFBCB99010200480A7200025 -S31540011F30128000B780A72001B010200180A6001AA8 -S31540011F4016800017A81020011080000525100047B3 -S31540011F5080A6001A16800013DA04E0CCA206C01847 -S31540011F609014A2789210001180A4601F14BFFFF94B -S31540011F70B00620014000280901000000D805E10013 -S31540011F80C20320409B2D00118210400DC2232040E8 -S31540011F9080A6001A06BFFFF3A206C018DA04E0CCF9 -S31540011FA09606A003C0236004833AE01FC023601055 -S31540011FB098103FFF8330601EAA02C001D8236014E7 -S31540011FC0D823600CA2102000AD3D600280A72000FE -S31540011FD00280008AA810200180A4401C168000ECD3 -S31540011FE0C204E0CC80A7200104800015B010200077 -S31540011FF080A5A0000480001380A0001C9B2C6010CB -S31540012000832C60188210400D992C60088210400C78 -S3154001201082104011993D6002DA04E0CCC22360206F -S31540012020B006200180A72001048000059A036004C0 -S3154001203080A3001814BFFFFA0100000080A0001C15 -S31540012040B0603FFF80A6001A16800016C204E0CC9D -S315400120502501800080A72000028000058206C01865 -S3154001206080A72001028000848206C011C224200478 -S31540012070D804E0CC832D00189B3E4018C22320088B -S31540012080808B6001128000859A10000CB0062001F9 -S3154001209080A6001A06BFFFF180A72000C204E0CC4B -S315400120A0C0206008808E600112800009B0102000B7 -S315400120B0B006200180A6201F14800005833E4018EB -S315400120C08088600122BFFFFCB006200180A7200066 -S315400120D0028000068206C01880A720010280000403 -S315400120E08216E0208206C01182106020C22420049C -S315400120F0DA04E0CC832D0018C2236008C2036008CD -S3154001210080A0600012BFFFFE01000000C20420044F -S31540012110808860200280009801000000DA042004D3 -S3154001212003010000808B4001028000900100000005 -S31540012130DA04200403008000808B4001028000887D -S3154001214001000000C2042008C227BFF0DA04200CB7 -S31540012150DA27BFF4C204E0CC992D0018D8206008D4 -S315400121609A100001C203600880A0600012BFFFFE02 -S3154001217001000000C20420048088602002800075AE -S3154001218001000000DA04200403010000808B4001B5 -S315400121900280006D01000000DA0420040300800083 -S315400121A0808B40010280006501000000DA042008AE -S315400121B0C207BFF080A0400D02800004010000006C -S315400121C07FFFBC129010200EDA04200CC207BFF428 -S315400121D080A0400D02800005030180007FFFBC0BFB -S315400121E09010200F03018000C224200480A7200004 -S315400121F012BFFF7AA204600180A4600004BFFF7B86 -S3154001220080A7200110800062C204E0CC0280003D1C -S3154001221011100047B010200080A6001C16BFFF60B9 -S31540012220A8102001108000052510004780A6001C3B -S3154001223016BFFF5CDA04E0CCA206C0189014A2785F -S315400122409210001180A4601F14BFFFF9B00620014F -S315400122504000275201000000D805E100C20320409A -S315400122609B2D00118210400DC223204010BFFFF16B -S3154001227080A6001CF6242004D804E0CC832D001847 -S315400122809B3E4018C2232008808B600122BFFF81FC -S31540012290B00620019A10000CC203600880A06000BD -S315400122A012BFFFFE01000000DA0420040301000012 -S315400122B0808B40010280001E01000000DA042004E8 -S315400122C003008000808B400102800016010000005F -S315400122D0E4242004C20420048088401222BFFF6DFA -S315400122E0B00620017FFFBBC99010200710BFFF69D0 -S315400122F0B00620017FFFBBC59010200130BFFEF321 -S3154001230090122278400027259210001BDA05E10041 -S31540012310832F001BC223604010BFFF22DA04E0CCAA -S315400123207FFFBBBA9010200630BFFFEA7FFFBBB7E5 -S315400123309010200530BFFFE27FFFBBB49010200D07 -S3154001234030BFFF9B7FFFBBB19010200C30BFFF9386 -S315400123507FFFBBAE9010200B30BFFF8B7FFFBBAB27 -S315400123609010200A30BFFF787FFFBBA8901020094C -S3154001237030BFFF707FFFBBA59010200830BFFF68BC -S315400123807FFFBBA29010200330BFFEE0C020600C4F -S31540012390DA05E100C023604082103FFFC223600C92 -S315400123A081C7E00891E820009DE3BF983B100144B6 -S315400123B0E60761007FFFBB9090102011C024E01C0E -S315400123C0C204E01C80A060000280004801000000B9 -S315400123D0C204E01C8330601B80A0401A0A80003F83 -S315400123E001000000A410200080A4801A1A80004237 -S315400123F02D100143AA102001AE15A084A32CA002E2 -S31540012400E00640117FFFFD4490100013A804A0018F -S315400124109B2D4012832D20108210400DC224E01CBA -S315400124209A103FFFDA24E040D80600119A10201F87 -S31540012430DA232004A0043FFFDA230000A12C200464 -S315400124408204000C9A102005DA206010C020601426 -S31540012450EA2060189A100001C203601080A0600053 -S3154001246012BFFFFE01000000A004000CC2042010B0 -S3154001247080A0600002BFFFFE01000000C0242018BA -S31540012480C205A08480A06002028000069A04A011C1 -S31540012490900480127FFFBB5D900220039A04A01135 -S315400124A0C205E00480A0400D22800006A41000145D -S315400124B0900480127FFFBB5590022004A4100014A3 -S315400124C0C024E01C80A5001A0ABFFFCEA32CA0029F -S315400124D01080000ADA0761007FFFBB4C9010200292 -S315400124E010BFFFC2A41020007FFFBB4890102001FF -S315400124F030BFFFB8DA076100C023604082103FFF5A -S31540012500C223600C81C7E00891E820009DE3BF9893 -S315400125107FFFBB4D0100000080A220000280002603 -S3154001252080A6200012800029010000007FFFBB46E3 -S3154001253001000000912A20047FFFBB2F9002200357 -S315400125404000186C0100000080A220001280002B80 -S31540012550010000004000182A01000000400017E376 -S3154001256001000000400002260100000080A6A000F4 -S315400125701280002D031001447FFFBB33B410610468 -S31540012580912A2002C206800880A060001280003095 -S3154001259080A6200012800039010000004000048D11 -S315400125A00100000040001E0101000000400015C06E -S315400125B081E800007FFFBB0B1100400C80A6200084 -S315400125C002BFFFDB010000007FFFBBB7901000197F -S315400125D07FFFBB1D01000000912A20047FFFBB063F -S315400125E090022003400018430100000080A2200011 -S315400125F002BFFFD9010000007FFFBB0490102001FC -S31540012600400017FF01000000400017B8010000001C -S31540012610400001FB0100000080A6A00002BFFFD7D9 -S315400126200310014440001DEC010000000310014469 -S315400126307FFFBB05B4106104912A2002C2068008BF -S3154001264080A0600002BFFFD480A620007FFFBAFEB3 -S31540012650010000007FFFBAFCA0100008912A200269 -S31540012660C20680089FC040009010001080A620003E -S3154001267002BFFFCB010000007FFFBB9B90100019FA -S31540012680400004540100000040001DC80100000044 -S315400126904000158781E80000010000000310014356 -S315400126A0DA0060D09A036001DA2060D081C3E00885 -S315400126B0010000009DE3BF987FFFBACA1100404464 -S315400126C0D806200882103FFFC2262004DA06000001 -S315400126D0C206000080A340010280006FA60B2007BE -S315400126E08210201FC2262004C226000080A4E000DA -S315400126F00280003382100018A2100013C020601817 -S31540012700A2847FFF12BFFFFE82006010A21020004C -S3154001271080A440131680002B80A4E001A810200F4E -S31540012720A01000187FFFBAB490100011C0242010E9 -S31540012730E824201482102006C2242018DA0420102E -S3154001274080A3600F02800004010000007FFFBAAF42 -S3154001275090102003E82420189A10200EC20420105D -S3154001276080A0400D12BFFFFE010000009A837FFF4B -S315400127701CBFFFFBA4100010C204201080A0600FF4 -S3154001278012BFFFFE01000000C204201880886010BD -S315400127900280003582102010C224A018DA042018C5 -S315400127A0808B60101280003801000000A204600195 -S315400127B080A4401306BFFFDCA004201080A4E001E2 -S315400127C01480001080A4E0000280000782100018E7 -S315400127D0A2100013C0206018A2847FFF12BFFFFE23 -S315400127E08200601021100144C204210080A06000D3 -S315400127F00280002D111000491080000D9210001921 -S315400128007FFFBA7D901020088210200FC226201823 -S315400128109A10202FDA262028C206202080A0600D9B -S3154001282012BFFFFE80A4E00030BFFFE8400025DB79 -S315400128309012229C7FFFFC38D00421008210200197 -S3154001284083284019DA042100C22360409810200FE2 -S31540012850D82620148210200DC2262018A7800000F9 -S31540012860308000117FFFBA69901020048210201039 -S31540012870C224A018DA042018808B601022BFFFCD35 -S31540012880A20460017FFFBA619010200510BFFFC905 -S31540012890A20460017FFFBA5D9010200110BFFF9234 -S315400128A08210201F81C7E00881E800000000000077 -S315400128B000000000000000000000000000000000D1 -S315400128C001000000010000000100000001000000BD -S315400128D0010000000100000081C3E0080100000082 -S315400128E0010000000100000001000000010000009D -S315400128F0010000000100000081C3E0080100000062 -S31540012900010000000100000001000000010000007C -S31540012910010000000100000081C3E0080100000041 -S31540012920010000000100000001000000010000005C -S31540012930010000000100000081C3E0080100000021 -S31540012940D482018090A2000916BFFFFE9612800B29 -S3154001295081C3E0089010000BD48201C090A2000907 -S3154001296016BFFFFE9612800B81C3E0089010000B44 -S3154001297090A22004C0A201A090A22004C0A201A05E -S3154001298090A22004C0A201A090A22004C0A201A04E -S31540012990C0A2018090A2200414BFFFF701000000ED -S315400129A081C3E0080100000090A22004C0A201E01A -S315400129B090A22004C0A201E090A22004C0A201E09E -S315400129C090A22004C0A201E0C0A201C090A22004AE -S315400129D014BFFFF70100000081C3E00801000000B9 -S315400129E0981000089610000A98A3200814BFFFFF0C -S315400129F0D43B00099810000898A3200814BFFFFF94 -S31540012A00C01B00099810000898A32004D6030009AA -S31540012A1080A2C00A1280000698A3200434BFFFFD9D -S31540012A20D603000981C3E0089010200090102001D0 -S31540012A30981000089610000A98A3200814BFFFFFBB -S31540012A40D43B00099810000898A32004D603000936 -S31540012A5080A2C00A1280000698A3200434BFFFFD5D -S31540012A60D603000981C3E008901020009010200190 -S31540012A709810000898A32004D2A301A0DA8301A0EC -S31540012A8080A340091280000698A3200414BFFFFCCE -S31540012A90D2A301A081C3E00890102000901020012C -S31540012AA09A1000089AA3400AD6A34180D883418050 -S31540012AB0981B000B988B0009128000069AA3400AC6 -S31540012AC014BFFFFBD6A3418081C3E00890102000CC -S31540012AD0901020019A1000089AA3400BD8A241CD2C -S31540012AE0C48241CD8418800C8488800A12800006F5 -S31540012AF09AA3400B14BFFFFBD8A241CD81C3E00886 -S31540012B0090102000901020010100000001000000FB -S31540012B10010000001310008092126138D402400077 -S31540012B2080A2A0011280000780A0A002D40240002A -S31540012B30D4024000952AA002108000050100000041 -S31540012B403280000381E80000D402400081E00000A9 -S31540012B5093480000818A60202310004AA2146378BA -S31540012B60A40460040100000081C4400081CC8000BF -S31540012B7091D0200191D020012680000590002001AE -S31540012B8090222001912A2001912A200281C3E00846 -S31540012B900100000081C3E008D082004081C3E00803 -S31540012BA0D2A2004081C3E008D082018081C3E008FF -S31540012BB0D2A2018081C3E008D08201A081C3E0088E -S31540012BC0D2A201A081C3E008D08201C081C3E0083E -S31540012BD0D2A201C081C3E008D08201E081C3E008EE -S31540012BE0D2A201E081C3E008D2A2000081C3E0087D -S31540012BF0D082000081C3E00891480000818A00002C -S31540012C0001000000010000000100000081C3E0084E -S31540012C100100000081C3E008C0A000A081C3E00814 -S31540012C20C0A000C081C3E008D01A00000100000026 -S31540012C300100000001000000010000000100000049 -S31540012C409DE3BF7013100072CD1A6260CD3FBFE0A5 -S31540012C50111000801B100080C91B61E0C51A21D8E4 -S31540012C60C11FBFE095A088C4D53FBFF0D91FBFF0B3 -S31540012C7003100080D11861E881AB0A4801000000C9 -S31540012C800380002BC13FBFD8F91FBFD8B5A0055C53 -S31540012C90F53FBFF0ED1FBFF0F11FBFF0A5A5895865 -S31540012CA0E91FBFE0A1A488D415100072A1A001308C -S31540012CB0DD1AA26881AC0ACE010000000D80002D0C -S31540012CC0F53FBFD0C51FBFD083A018C291A04921EF -S31540012CD099A01928D51FBFE091A308CA1710007201 -S31540012CE091A00128FD1AE27081AA0ADE01000000C6 -S31540012CF00D80002F01000000400001AE01000000E0 -S31540012D004000020C0100000080A220001280003128 -S31540012D1001000000400002610100000080A2200085 -S31540012D200280003501000000308000317FFFB93755 -S31540012D3090102001F91FBFD8B5A0055CF53FBFF043 -S31540012D40ED1FBFF0F11FBFF0A5A58958E91FBFE0F0 -S31540012D50A1A488D415100072A1A00130DD1AA26881 -S31540012D6081AC0ACE010000001BBFFFD7F53FBFD0A3 -S31540012D707FFFB92690102002C51FBFD083A018C27D -S31540012D8091A0492199A01928D51FBFE091A308CA4E -S31540012D901710007291A00128FD1AE27081AA0ADE7D -S31540012DA0010000001BBFFFD5010000007FFFB917DE -S31540012DB0901020034000017F01000000400001DD2A -S31540012DC00100000080A2200002BFFFD301000000E5 -S31540012DD07FFFB90E010000004000023001000000F3 -S31540012DE080A2200002800004010000007FFFB90795 -S31540012DF09010200581C7E00881E800009DE3BF9857 -S31540012E007FFFFF7D210000047FFFFF7D90120010B0 -S31540012E107FFFFF79B0102000808A00100280000BEE -S31540012E209010200040000267010000007FFFB906B4 -S31540012E3001000000912A20047FFFB8EF900220088C -S31540012E407FFFFF800100000081C7E00881E80000A4 -S31540012E501910008098132178111002009210200059 -S31540012E60150FF76C9412A3D7D03B0000D42320084A -S31540012E70C11B0000C503200887A08922010000006C -S31540012E8089A005408DA0892281A8CA26010000009B -S31540012E9033800003901020009010200181C3E00888 -S31540012EA001000000C11A0000C51A400089A008426D -S31540012EB081C3E008C93A8000C11A0000C51A400022 -S31540012EC089A0094281C3E008C93A800019100080EF -S31540012ED098132178D0230000D2232008C103000093 -S31540012EE0C303200885A00D2181C3E008C53A8000AF -S31540012EF0C11A0000C51A400089A009C2C93A80001A -S31540012F0081C3E00801000000C11A000085A0054008 -S31540012F10C53A400081C3E0080100000001000000FD -S31540012F200100000001000000010000000100000056 -S31540012F300100000001000000010000000100000046 -S31540012F400100000001000000010000000100000036 -S31540012F500100000001000000010000000100000026 -S31540012F600100000001000000010000000100000016 -S31540012F700100000001000000010000000100000006 -S31540012F8001000000010000000100000001000000F6 -S31540012F9001000000010000000100000081A00020A6 -S31540012FA081C3E00801000000C11A000081C3E008A6 -S31540012FB001000000C51A000089A009C2C93A4000B3 -S31540012FC081C3E0080100000013100080921261786D -S31540012FD0D0224000C102400085A01900C53A4000F8 -S31540012FE081C3E008D01A4000131000809212617824 -S31540012FF0D0224000C102400085A01880C522400071 -S3154001300081C3E008D0024000151000809412A178D7 -S31540013010D03A8000C11A800085A01A40C52280009E -S3154001302081C3E008D0028000151000809412A17877 -S31540013030D0228000C102800085A01A20C5228000CE -S3154001304081C3E008D0028000151000809412A17857 -S31540013050D0228000C102800081A01920C13A80009F -S3154001306081C3E008D01A8000151000809412A1781F -S31540013070D03A8000C11A800081A018C0C1228000C8 -S3154001308081C3E008D0028000151000809412A17817 -S31540013090D0228000CB0280008DA00025CD22800069 -S315400130A081C3E008D0028000151000809412A178F7 -S315400130B0D0228000CB0280008DA000A5CD228000C9 -S315400130C081C3E008D0028000151000809412A178D7 -S315400130D0D0228000CB0280008DA00125CD22800028 -S315400130E081C3E008D002800019100080981321782E -S315400130F0D03B0000D43B2008C11B0000C51B200863 -S3154001310081A80A4201000000338000099010200086 -S3154001311029800007901020012D8000059010200283 -S315400131202F8000039010200391D0200081C3E00836 -S31540013130010000001910008098132178D03B00004F -S31540013140D43B2008C11B0000C51B200881A80AC228 -S315400131500100000033BFFFF69010200029BFFFF4A5 -S31540013160901020012DBFFFF2901020022FBFFFF0DB -S315400131709010200391D020001910008098132178D7 +S315400100009DE3BF8099362010D827BFE0AF36200840 +S31540010010EE27BFE4AF366008C607A05CEE27BFEC0B +S31540010020AF36E018C407A060EE27BFF499366010DA +S31540010030AF30E008D827BFE8EE27BFFC8800A026EE +S31540010040EE07A06C993920089736A010D827BFF043 +S315400100501300003F9936E008921263FFA00E800913 +S31540010060A002C010D827BFF89B36E01098090009B6 +S31540010070900EC0091F0000239E13E1119E04000F3C +S315400100809E03C00D9003C0089802000CA1332010B6 +S31540010090980B00099804000C920B00099933201023 +S315400100A0BB2F601292030009992F2011BA17400CF9 +S315400100B0C207A0689008A3FF912A20079817400815 +S315400100C0BA00A034FA25C000EE07BFE09400A012A2 +S315400100D092380009AD36A018EE284000AB36A0088C +S315400100E0A73AA008EE07BFE4F0286002A9326008EB +S315400100F09F30E018EE286001A5332018A33B20105D +S31540010100EE07BFE8A13B20089130E01080A7200010 +S31540010110EE286003EE07BFECF2286005EE28600486 +S31540010120EE07BFF0EE286010EE07BFF4EE28601A26 +S31540010130EE07BFF8C8286011C028600A88103FDE64 +S31540010140EE28601CC028600DC028600FC0286012D0 +S31540010150C828600688103FADC828600788103FBE92 +S31540010160C828600888103FEFC828600988102020F9 +S31540010170C828600B88102008C828600C88102045C4 +S31540010180C828600E88102040C0286013C828601611 +S31540010190C0286014C0286015DA28601B8810201119 +S315400101A0C8286017EE07A064F628601DEC28601E7B +S315400101B0EA286020E8286018D2286019E6286026D7 +S315400101C0D4286027E428602CE228602DE028602EA0 +S315400101D0D828602FDE286030D0286031C807BFFCA0 +S315400101E0C6286033D628601FF4286021C8286032AB +S315400101F0C0286022C0286023C0286024C02860250A +S31540010200C0286028C0286029C028602A0280000DC5 +S31540010210C028602B80A0A0000280000A8810200020 +S31540010220861020009A004004C80DC0048600E001F3 +S3154001023080A0C002C82B603412BFFFFB88100003A8 +S3154001024081C7E00881E800009DE3BD2040002A9473 +S315400102509010200025100124A2100008A814A0D057 +S3154001026040002A8F90102004A01000087FFFC3DFB2 +S315400102701100407482103FDEC22D200482103FAD32 +S31540010280C22D200582103FBEC22D200682103FEFAF +S31540010290C02D2008C22D200782102020C22D200902 +S315400102A0F024A0D04000028A90100014D0052010FE +S315400102B0D404A0D0400001C292102000AC9220008C +S315400102C00680017E01000000D0052010D604A0D092 +S315400102D01500001092102000400001F89415800A84 +S315400102E082103FDEC22FBE9EC22FBE9882103FAD06 +S315400102F0C22FBE9FC22FBE9982103FBEC22FBEA043 +S31540010300C22FBE9A82103FEFC22FBEA1C22FBE9B03 +S3154001031082102020C02FBE9CC22FBEA3C22FBE9DDD +S31540010320C02FBEA282103FF2C02FBEA4C22FBEA5CF +S31540010330A607BE988210200EC22CC0018200600121 +S3154001034080A0610032BFFFFEC22CC001AA07BD9842 +S31540010350AE14A0D090100015400003C692100017AD +S3154001036080A2200002BFFFFD9010001590102100D1 +S3154001037092100013400003729410001780A22000CF +S3154001038002BFFFFC90102100901000109210001146 +S31540010390400004019410001780A2200002BFFFFC18 +S315400103A090100010C204000080A061000280000588 +S315400103B0AE1020007FFFC39B90102001AE1020009D +S315400103C0848DE0031280000580A0A002AC05401791 +S315400103D0EC85802080A0A002028000098335A00818 +S315400103E080A0A003028000068210001680A0A00112 +S315400103F0028000038335A0108335A018C40CC017B2 +S31540010400820860FF80A0800122800005AE05E001E0 +S315400104107FFFC38490102002AE05E00180A5E10074 +S3154001042012BFFFE9848DE003C205201480A060005D +S3154001043002800120B010200003100124EE0060D09C +S31540010440AE05E01CEE85C02040002A159010210023 +S3154001045082103FFFC22A201EC22A0000C22A200162 +S31540010460C22A2002C22A2003C22A2004C22A200507 +S3154001047082103FDEC22A2016C22A200682103FADD4 +S31540010480C22A2017C22A200782103FBEC22A20183C +S31540010490C22A200882103FEFC22A2019C22A200907 +S315400104A082102020C22A201BC22A200B821020083B +S315400104B0C22A2010C22A200C82102006C22A2012EB +S315400104C0C22A200D82102001C02A200AC22A2015E4 +S315400104D0C22A200FC02A200EC02A2011C02A201469 +S315400104E0C02A201A8210202AC22400008210200429 +S315400104F08935E018C22A20138735E01082103FDD86 +S315400105008535E008C22A201C82103FEEC22A201DF2 +S3154001051082103FCCC22A201FC02A2020C82A20266A +S31540010520C62A2027C42A2028C02A2021C02A2022C0 +S31540010530C02A2023C02A2024C02A2025EE2A202989 +S31540010540AC100008A814A0D0901000154000034933 +S315400105509210001480A2200002BFFFFD90100015EA +S31540010560D004000092100016400002F594100014C9 +S3154001057080A2200022BFFFFCD00400009010001092 +S3154001058092100011400003849410001480A22000B0 +S3154001059002BFFFFC90100010B807BDAEF88F0020D7 +S315400105A08607BDAFC688C0208407BDB0C4888020F9 +S315400105B00300003F8408A0FF821063FFB80F20FFAD +S315400105C08728E018B92F20108738E010BA07BDB147 +S315400105D08608C001B8170003B8170002FA8F4020F9 +S315400105E08607BDB2C688C0208407BDB3C4888020B3 +S315400105F08728E0188738E0108208C001BA0F60FFEB +S31540010600BB2F6010BA1740018208A0FFB607BF98FA +S31540010610BA174001C023A060C023A064EC23A068A0 +S31540010620E023A06CF623A05C9010001C9210001DE4 +S315400106309410001796100017981020007FFFFE7146 +S315400106409A102000901000154000030A92100014E1 +S3154001065080A2200002BFFFFD90100015D0040000CB +S3154001066092100016400002B69410001480A2200099 +S3154001067022BFFFFCD0040000901000109210001120 +S31540010680400003459410001480A2200002BFFFFCE5 +S31540010690901000108607BDC4C688C020B207BDC5EC +S315400106A0C28E40208407BDC6C4888020A807BDC726 +S315400106B0E88D0020820860FF83286010A80D20FF86 +S315400106C08728E0188528A018A81500038538A010AA +S315400106D0A81500010300003F821063FF82088001D4 +S315400106E0A815000103000080808D0001833520128A +S315400106F002800003B4006001B4100001821020485A +S31540010700F623A05CE623A064EC23A068E023A06C5A +S31540010710C223A0609010001C9210001D9410001777 +S3154001072096100017981020019A10001A7FFFFE3587 +S31540010730B014A0D090100015400002CE92100018BF +S3154001074080A2200002BFFFFD90100015D0040000DA +S31540010750921000164000027A9410001880A22000E0 +S3154001076022BFFFFCD004000090100010921000112F +S31540010770400003099410001880A2200002BFFFFC2C +S3154001078090100010F28E4020808E60021280004F41 +S315400107900100000082102048F623A05C9410001747 +S315400107A0C023A064EC23A068E023A06C9010001C39 +S315400107B09210001D9A06A001A414A0D0C223A060E5 +S315400107C0961000177FFFFE0F98102000901000151D +S315400107D0400002A89210001280A2200002BFFFFD35 +S315400107E090100015D00400009210001640000254EB +S315400107F09410001280A2200022BFFFFCD00400000A +S315400108009010001092100011400002E39410001263 +S3154001081080A2200002BFFFFC90100010C20400001D +S3154001082080A0607C02800005A207BDCC7FFFC27D0F +S3154001083090102004A207BDCCA0102000848C200378 +S315400108401280000480A0A002E884402080A0A0027B +S31540010850A2046001028000098335200880A0A0031C +S31540010860028000068210001480A0A00102800003CD +S315400108708335201083352018C40CC010820860FFD0 +S3154001088080A0800122800005A00420017FFFC2656F +S3154001089090102005A004200180A4204812BFFFE942 +S315400108A0848C200390100016400028F6B0102000DA +S315400108B081C7E00881E800007FFFC25A90102000FE +S315400108C010BFFE83D00520107FFFC2569010200333 +S315400108D010BFFFB2821020489DE3BF98F027A04485 +S315400108E0C207A044C2804020C227BFFCC207BFFC4A +S315400108F0B010000181E8000081C3E008010000005A +S315400109009DE3BFA0F027A044F227A048C207A04418 +S31540010910C407A048C420400081E8000081C3E00824 +S31540010920010000009DE3BF90F027A044C207A04408 +S315400109308328600190100001400028D90100000081 +S3154001094082100008C227BFF4C407BFF4C207A044FF +S3154001095084008001C207A0448220000182088001F0 +S31540010960C227BFF4C207BFF4C227BFF8C027BFFCE6 +S315400109701080000A01000000C207BFFC8328600303 +S31540010980C407BFF882008001C0204000C207BFFCF7 +S3154001099082006001C227BFFCC207BFFC80A0607F06 +S315400109A004BFFFF601000000C207BFF4B01000010A +S315400109B081E8000081C3E008010000009DE3BF9883 +S315400109C0F027A044F227A048F427A04CC207A04C28 +S315400109D082006010901000017FFFFFC001000000FF +S315400109E082100008C227BFFCC207BFFC820860080C +S315400109F080A0600012BFFFF601000000C207A044BC +S31540010A008528600BC207A0488208601F83286006BC +S31540010A108210800182106002C227BFFCC207A04C2F +S31540010A208200601090100001D207BFFC7FFFFFB526 +S31540010A3001000000C207A04C820060109010000126 +S31540010A407FFFFFA60100000082100008C227BFFCFD +S31540010A50C207BFFC8208600880A0600012BFFFF693 +S31540010A6001000000C207BFFC8208601080A0600040 +S31540010A701280000D01000000C207A04C82006010E8 +S31540010A80901000017FFFFF950100000082100008D1 +S31540010A90C227BFFCC207BFFC833060101080000331 +S31540010AA00100000082103FFFB010000181E8000004 +S31540010AB081C3E008010000009DE3BF98F027A044F0 +S31540010AC0F227A048F427A04CF627A050C207A05011 +S31540010AD082006010901000017FFFFF80010000003E +S31540010AE082100008C227BFFCC207BFFC820860080B +S31540010AF080A0600012BFFFF601000000C207A04CB3 +S31540010B0085286010C207A0448328600B84108001A9 +S31540010B10C207A0488208601F8328600682108001B0 +S31540010B2082106001C227BFFCC207A050820060103C +S31540010B3090100001D207BFFC7FFFFF720100000049 +S31540010B40C207A05082006010901000017FFFFF6332 +S31540010B500100000082100008C227BFFCC207BFFC8B +S31540010B608208600880A0600012BFFFF60100000005 +S31540010B7081E8000081C3E008010000009DE3BFA0B9 +S31540010B80F027A044F227A048C207A048C408400065 +S31540010B90C207A044C4286004C207A048820060017D +S31540010BA0C4084000C207A044C4286005C207A04843 +S31540010BB082006002C4084000C207A044C4286006FF +S31540010BC0C207A04882006003C4084000C207A0448F +S31540010BD0C4286007C207A04882006004C4084000D8 +S31540010BE0C207A044C4286008C207A0488200600525 +S31540010BF0C4084000C207A044C4286009C207A044F3 +S31540010C00C20040008200600884100001C207A0486B +S31540010C10C2084000820860FF87286008C207A048D2 +S31540010C2082006001C2084000820860FF8210C00154 +S31540010C3090100002921000017FFFFF320100000078 +S31540010C40C207A044C20040008200600C841000012B +S31540010C50C207A04882006002C2084000820860FFC5 +S31540010C6087286018C207A04882006003C208400076 +S31540010C70820860FF832860108610C001C207A04821 +S31540010C8082006004C2084000820860FF8328600831 +S31540010C908610C001C207A04882006005C208400014 +S31540010CA0820860FF8210C00190100002921000017C +S31540010CB07FFFFF140100000082102001B0100001E7 +S31540010CC081E8000081C3E008010000009DE3BF8880 +S31540010CD0F027A044C207A044C20040009010000182 +S31540010CE07FFFFEFE0100000082100008C227BFEC14 +S31540010CF0C207BFEC8330601B84086001C207A04471 +S31540010D00C420600CC207BFEC8530601FC207A044F7 +S31540010D10C4206014C207A044C200601480A06000D1 +S31540010D201280001401000000C207A044C200400026 +S31540010D3090100001921020407FFFFEF2010000005A +S31540010D40C207A044C2004000901000017FFFFEE3AD +S31540010D500100000082100008C227BFECC207BFECA9 +S31540010D608208604080A0600012BFFFF601000000CB +S31540010D70C207A044C20040008200601090100001EA +S31540010D807FFFFED60100000082100008C227BFEC9B +S31540010D90C207BFEC8330600B8408601FC207A044C2 +S31540010DA0C4206010901024007FFFFEDF0100000088 +S31540010DB08210000884100001C207A044C4206018B4 +S31540010DC0901024007FFFFED8010000008210000829 +S31540010DD084100001C207A044C420601CC207A0447D +S31540010DE0C20040008200601484100001C207A04482 +S31540010DF0C200601890100002921000017FFFFEC1F0 +S31540010E0001000000C207A044C200400082006018F1 +S31540010E1084100001C207A044C200601C9010000269 +S31540010E20921000017FFFFEB701000000C207A044F7 +S31540010E30C0206020C207A044C0206024C207A0444D +S31540010E40C0206028C207A044C020602CC207A0442D +S31540010E50C200601480A0600012800096010000006C +S31540010E60C207A044C200601084100001C207A0441A +S31540010E70C200400090100002921020001500002090 +S31540010E80961000017FFFFF0D01000000C207A0443C +S31540010E90C200601084100001C207A044C200400095 +S31540010EA09010000292102000941000017FFFFEC4B2 +S31540010EB00100000082100008C227BFECC407BFEC46 +S31540010EC0030000208208800180A0600012BFFFF06D +S31540010ED001000000C027BFF0C407BFEC03000004B7 +S31540010EE08208800180A060000280001F010000008E +S31540010EF01080000B01000000C207BFF082006001B4 +S31540010F00C227BFF0C407BFF0030000308210635010 +S31540010F1080A080011480001301000000C207A04494 +S31540010F20C200601084100001C207A044C200400004 +S31540010F309010000292102001941000017FFFFEA044 +S31540010F4001000000821000088208602080A0600035 +S31540010F5002BFFFEA0100000010800003010000000B +S31540010F6001000000C207A044C200601084100001C5 +S31540010F70C207A044C2004000901000029210200017 +S31540010F80941000017FFFFE8E0100000082100008D0 +S31540010F90C227BFECC207A044C200600C80A060001B +S31540010FA00280001201000000C407BFEC03000008E4 +S31540010FB08208800180A060001280000C01000000C0 +S31540010FC0C207BFEC8208604080A060000280000733 +S31540010FD00100000082102001C227BFFCC027BFF8D4 +S31540010FE01080001F01000000C407BFEC0300000889 +S31540010FF08208800180A060000280000C0100000090 +S31540011000C207BFEC8208604080A0600012800007E2 +S3154001101001000000C027BFFC82102001C227BFF893 +S315400110201080000F01000000C407BFEC0300000858 +S315400110308208800180A06000128000090100000042 +S31540011040C207BFEC8208604080A0600012800004A5 +S3154001105001000000C027BFFCC027BFF8C207BFEC94 +S315400110608330600882086001C227BFF4C207A044EA +S31540011070C200400084100001C207BFF48728600403 +S31540011080C207BFF8832860078610C001C207BFFCAC +S31540011090832860088210C00190100002921000015E +S315400110A07FFFFE18010000001080001C01000000B7 +S315400110B0C027BFF01080001501000000C207A04400 +S315400110C0C200400082006010901000017FFFFE03C5 +S315400110D00100000082100008C227BFECC207BFEC26 +S315400110E08208600880A060000280000501000000BF +S315400110F0C027BFF01080000501000000C207BFF005 +S3154001110082006001C227BFF0C207BFF080A0600223 +S3154001111004BFFFEB01000000C207A0448200600447 +S31540011120D007A044921000017FFFFE950100000008 +S3154001113081E8000081C3E008010000009DE3BFA0F3 +S31540011140F027A044F227A048F427A04CC207A04CA0 +S31540011150C4006018C207A04CC20060208328600307 +S3154001116082008001901000017FFFFDDC010000003C +S31540011170821000088208680080A060000280000595 +S31540011180010000008210200010800036010000009E +S31540011190C207A04CC4006018C207A04CC200602020 +S315400111A08328600382008001C407A048C4206004EC +S315400111B0C207A04CC200602080A0607F1280001050 +S315400111C001000000C207A04CC4006018C207A04C31 +S315400111D0C20060208328600382008001C607A044C4 +S315400111E0050000068410C002C4204000C207A04C7E +S315400111F0C02060201080001001000000C207A04CF2 +S31540011200C4006018C207A04CC20060208328600356 +S3154001121082008001C407A0448410A800C420400075 +S31540011220C207A04CC200602084006001C207A04CE6 +S31540011230C4206020C207A04CE0004000C207A04C79 +S31540011240C2004000901000017FFFFDA40100000094 +S315400112508210000882106001C22400008210200121 +S31540011260B010000181E8000081C3E00801000000E0 +S315400112709DE3BFA0F027A044F227A048C207A0489B +S31540011280C400601CC207A048C200602483286003D2 +S3154001129082008001901000017FFFFD900100000057 +S315400112A0821000088208680080A060000280000564 +S315400112B00100000082102000108000330100000070 +S315400112C0C207A048C400601CC207A048C2006024EF +S315400112D08328600382008001C407A044C4206004BF +S315400112E0C207A048C200602480A0607F1280000E21 +S315400112F001000000C207A048C400601CC207A04804 +S31540011300C200602483286003820080010500000634 +S31540011310C4204000C207A048C02060241080000FAE +S3154001132001000000C207A048C400601CC207A048D3 +S31540011330C200602483286003820080018410280053 +S31540011340C4204000C207A048C20060248400600156 +S31540011350C207A048C4206024C207A048E00040005C +S31540011360C207A048C2004000901000017FFFFD5B0C +S31540011370010000008210000882106002C2240000B1 +S3154001138082102001B010000181E8000081C3E0080D +S31540011390010000009DE3BF98F027A044F227A04832 +S315400113A0F427A04CC207A04CC400601CC207A04C45 +S315400113B0C200602C832860038200800190100001E6 +S315400113C07FFFFD460100000082100008C227BFFCD6 +S315400113D0C207BFFC8208680080A060001280001727 +S315400113E001000000C207BFFC840867FFC207A04492 +S315400113F0C4204000C207A04CC200602C80A0607F80 +S315400114001280000601000000C207A04CC020602CDB +S315400114101080000701000000C207A04CC200602CEA +S3154001142084006001C207A04CC420602C82102001B8 +S31540011430108000030100000082102000B01000015E +S3154001144081E8000081C3E008010000009DE3BF98E8 +S31540011450F027A044C207A044C4006018C207A044B4 +S31540011460C200602883286003820080019010000139 +S315400114707FFFFD1A0100000082100008C227BFFC51 +S31540011480C207BFFC8208680080A06000128000137A +S3154001149001000000C207A044C200602880A0607F0E +S315400114A01280000601000000C207A044C020602847 +S315400114B01080000701000000C207A044C200602856 +S315400114C084006001C207A044C42060288210200124 +S315400114D0108000030100000082102000B0100001BE +S315400114E081E8000081C3E008010000009DE3BFA040 +S315400114F07FFFBF3E1100403080A22000128000AF26 +S3154001150082102001C226200CC0262004C0260000DD +S31540011510C026200882102002C2262008C0260000CC +S31540011520C026000082102003C22620088210208394 +S31540011530C226200882102000C026000082006001D9 +S3154001154080A0606412BFFFFD0100000082102000F0 +S31540011550C40600008200600180A0606412BFFFFDE6 +S315400115600100000082102002C2262008A0062004A5 +S31540011570C28400208088600402BFFFFE0100000093 +S31540011580C0262008C0260000C28400208410200105 +S31540011590833860148208603F80A0600102800004A5 +S315400115A0A21020011080000E82102003C0260000E8 +S315400115B0A200A001C2840020833860148208603FE3 +S315400115C080A0401122BFFFFA8410000180A460016F +S315400115D034800002A210000282102003C226200895 +S315400115E0C28400208208600780A06006028000084D +S315400115F001000000C2860020C284002082086007E4 +S3154001160080A0600612BFFFFC01000000C026200832 +S31540011610C026200480A46001048000048210203486 +S31540011620C284002082102034C2260000C2840020D9 +S31540011630C284002080A46001048000198210200128 +S3154001164029100074A4102001A815215090100012F1 +S31540011650400024DA92102041C24D0008C226000003 +S31540011660A404A00180A4801112BFFFFA90100012B9 +S31540011670C2840020C2840020833860148208603FFF +S3154001168080A0401102800004010000007FFFBEE5FA +S3154001169090102006C284002082102001C226200C10 +S315400116A0C28400208088600112800053821020830A +S315400116B0C226200880A46001028000420100000089 +S315400116C0C28400208088640002BFFFFE0100000042 +S315400116D0C2840020808860010280004F80A460019E +S315400116E00480005280A46000C28400208330601AC6 +S315400116F080A0401102800004010000007FFFBEC9A6 +S3154001170090102009C2840020808861000280004A2E +S3154001171001000000C2840020808864000280004CE1 +S315400117200100000029100074A4102000A8152150C2 +S31540011730E686002092102041400024A0901000121D +S31540011740C24D000880A0401322800005A404A001D8 +S315400117507FFFBEB49010200CA404A00180A44012C7 +S3154001176014BFFFF480A460010480000F0100000053 +S31540011770C2840020808861001280003F0100000081 +S31540011780C28400208330601A80A060001280003736 +S3154001179001000000C284002080886400128000306D +S315400117A001000000E0840020808C20011280000EA0 +S315400117B001000000C026200881C7E00891E820000A +S315400117C0C28400208088600112BFFFC20100000070 +S315400117D0C28400208088600102BFFFFA0100000038 +S315400117E030BFFFBC7FFFBE8F9010200CC026200863 +S315400117F030BFFFF27FFFBE8B9010200782102083FF +S31540011800C226200880A4600112BFFFAE010000007D +S3154001181030BFFFEC7FFFBE839010200880A460019B +S3154001182014BFFFB280A4600034BFFFC0291000740A +S3154001183030BFFFDD7FFFBE7B9010200AC2840020AF +S315400118408088640032BFFFB9291000747FFFBE75DE +S315400118509010200B10BFFFB5291000747FFFBE7199 +S315400118609010200B30BFFFD07FFFBE6E9010200E30 +S3154001187030BFFFC97FFFBE6B9010200D30BFFFC147 +S3154001188003100123C40060848528A0028610608469 +S3154001189090022010D020C002C40060848400A001C0 +S315400118A0C420608481C3E00801000000C02200001A +S315400118B0C022204082103FFFC222200C0310012388 +S315400118C084102001C420608481C3E0080100000027 +S315400118D003100123C20060CC90102000C020600894 +S315400118E081C3E008010000009DE3BFA0231001244D +S315400118F0E00461007FFFBE4490102011C024201CEB +S31540011900C204201C80A060000280004C010000003F +S31540011910C204201C8330601B80A0401A0A80004EFE +S3154001192080A6A0000280003FC20461002B10012363 +S31540011930A6102004AA156084BA102000A410200025 +S31540011940AE103FFFA8102001AC10201FB810200593 +S31540011950BB2F6002C606401DC0240000C0242040A3 +S31540011960EE24200CE8254000832D0012A404A0019A +S31540011970852CA01082108001C224201CEE24204018 +S315400119808928E0049A00FFFFC206001D9800400422 +S315400119909B2B60048400400DEC206004EC20400049 +S315400119A0F8204004C0232004E820A018C4004004C5 +S315400119B080A0A00012BFFFFE010000008728E004BE +S315400119C0C400400380A0A00002BFFFFE010000004A +S315400119D08200400DC0206018C205400080A0600210 +S315400119E002800004010000007FFFBE0E9004FFFF4D +S315400119F0C40560048204A01080A080010280000416 +S31540011A00BA1000127FFFBE0790100013C024201C9D +S31540011A1080A6801218BFFFCFA604E002C20461006F +S31540011A2084103FFFB0102000C0206040C420600CED +S31540011A3081C7E00881E800007FFFBDFA90102001D0 +S31540011A40C204201C8330601B80A0401A1ABFFFB617 +S31540011A5080A6A0007FFFBDF39010200210BFFFB506 +S31540011A602B1001239DE3BF80231001232110012464 +S31540011A70E6042100A404E100C204A004F02460CCE1 +S31540011A807FFFBDE190102010C204A0040501800033 +S31540011A908410A02080884002128001450100000088 +S31540011AA0C404E100C204E10080A080010280000577 +S31540011AB0821020017FFFBDDB9010200282102001A1 +S31540011AC0C224A004C404E100C204E10080A0800154 +S31540011AD00280014201000000C024A004C404E100C8 +S31540011AE0C204E10080A080010280000580A7200099 +S31540011AF07FFFBDCC9010200480A7200012800111E9 +S31540011B0080A7200180A6A0010480001A2F1000465C +S31540011B10A606E001AE15E0D0A8102001AC142100C4 +S31540011B2010800005AA10200180A6801404800011AF +S31540011B30A604E00180A4E01F34BFFFFCA8052001F4 +S31540011B4092100013400028C690100017C20580006D +S31540011B50C4006040872D40138410C002C4206040F9 +S31540011B60A805200180A6801414BFFFF3A604E00156 +S31540011B7080A0001C84603FFFC427BFF0C60460CC30 +S31540011B8082103FFFF627BFF8C027BFFCC020E00404 +S31540011B90C020E010C220E014C220E00C8206A0035F +S31540011BA08538601F8530A01E82008001AF386002F3 +S31540011BB0C207BFF08200401B8416E020C227BFEC5B +S31540011BC0C427BFE829100123AC102001A81520CC59 +S31540011BD0310100003B0080002B01800080A72000DE +S31540011BE002800003821020018210001CC407BFFC42 +S31540011BF080A08001168000CB80A7200104800016BA +S31540011C0080A5E00004800014C207BFFCC407BFFCE6 +S31540011C108928601883286010881100018328A0084C +S31540011C20881100028400E0248811000182102001FD +S31540011C30C820E0201080000680A04017C820800000 +S31540011C40820060018400A00480A0401712BFFFFCFF +S31540011C5001000000C207BFF0E827BFF480A680015B +S31540011C60A2100001048000338400E0081080000EB9 +S31540011C70E607BFECE624A004832D8011C220E008CC +S31540011C80833E401180886001128000138400E00881 +S31540011C90A204600180A6801104800026A604E0010A +S31540011CA0C605000080A7200002BFFFF380A72001E0 +S31540011CB002800079C407BFF8C424A004832D801193 +S31540011CC0C220E008833E40118088600102BFFFF1D7 +S31540011CD08400E008C200800080A0600012BFFFFEC1 +S31540011CE001000000C204A0048088401802800067F9 +S31540011CF001000000C204A0048088401D02800060EB +S31540011D0001000000EA24A004C204A0048088401512 +S31540011D101280005601000000C40500008400A0089E +S31540011D20A204600180A6801114BFFFDEA604E00173 +S31540011D30C020800010800005A210200080A46020F1 +S31540011D400280000780A72000833E40118088600101 +S31540011D5022BFFFFBA204600180A720001280005130 +S31540011D6080A720018204401B82106020C224A00467 +S31540011D70A32D8011E2208000C200800080A0600077 +S31540011D8012BFFFFE01000000C204A004808860204B +S31540011D900280005D01000000C204A0048088401852 +S31540011DA00280005601000000C204A0048088401D44 +S31540011DB00280004E01000000C207BFF4C40040008B +S31540011DC0C204A008E604A00C8600A008E220A008F0 +S31540011DD0C400C00080A0A00012BFFFFE01000000A9 +S31540011DE0C404A0048088A0202280003CC227BFE40E +S31540011DF0C404A0048088801822800034C227BFE42E +S31540011E00C404A0048088801D2280002CC227BFE420 +S31540011E10C404A00880A04002028000040100000022 +S31540011E207FFFBD009010200EC204A00C80A4C0010B +S31540011E3002800005C407BFF47FFFBCFA9010200F53 +S31540011E40C407BFF4C207BFFCC6008000C407BFF881 +S31540011E50820060018400A001EA24A004C227BFFCDD +S31540011E6010BFFF5FC427BFF87FFFBCEE901020076D +S31540011E70C405000010BFFFAB8400A0087FFFBCE98A +S31540011E809010200630BFFFA07FFFBCE690102005D2 +S31540011E9030BFFF99F624A00410BFFF79832D80112E +S31540011EA00280001CC607BFF88210E020C224A004AD +S31540011EB010BFFFB1A32D80117FFFBCDA9010200D1A +S31540011EC010BFFFD4C207BFE47FFFBCD69010200CE1 +S31540011ED010BFFFCCC207BFE47FFFBCD29010200BDE +S31540011EE010BFFFC4C207BFE47FFFBCCE9010200ADB +S31540011EF010BFFFB3C207BFF47FFFBCCA90102009D1 +S31540011F0030BFFFAA7FFFBCC79010200830BFFFA398 +S31540011F10C607BFE8C624A00410BFFF97A32D8011B2 +S31540011F20C2042100C020E00C84103FFFB010200005 +S31540011F30C0206040C420600C81C7E00881E80000F1 +S31540011F400280001E1110004680A72000A610001B2B +S31540011F5004BFFF08A81020002F100046AC14210032 +S31540011F60AE15E0D010800005AA10200180A700140C +S31540011F7004BFFF00A604E00180A4E01F34BFFFFCBC +S31540011F80A805200192100013400027B590100017B4 +S31540011F90C2058000C4006040872D40138410C002F2 +S31540011FA0C420604010BFFFF2A80520017FFFBC9D01 +S31540011FB09010200130BFFEBB9210001B400027A8A5 +S31540011FC0901220D0C2042100852F001BC4206040FE +S31540011FD010BFFEE980A0001C7FFFBC929010200339 +S31540011FE030BFFEBE9DE3BF80031001241100403483 +S31540011FF0231000467FFFBC7DF0206100C026000013 +S31540012000C026204082103FFFC226200C0310012328 +S3154001201084102001A0102001C4206084A214608095 +S31540012020921000104000278E90100011A00420014C +S3154001203080A4201012BFFFFC92100010F806202049 +S31540012040B937201C231001232D00003F3700002AF9 +S31540012050B8072001A2146084AC15A3FEB616E2AA05 +S31540012060A6100018AE102000B4103FFFBA10200190 +S31540012070A8102020AA10202180A720010280000557 +S3154001208080A5E0007FFFBC609010001780A5E000AE +S315400120900280000F01000000C024C000C024E040BF +S315400120A0F424E00CFA244000832DE01CC224E024F1 +S315400120B0C204E0248330601C80A0401702800004E3 +S315400120C0010000007FFFBC5790102012EC24E0086D +S315400120D0C204E00880A0401602800004010000000E +S315400120E07FFFBC5090102001EC24E040C204E04048 +S315400120F080A0401602800004010000007FFFBC4919 +S3154001210090102002C204E00880A0600012BFFFFECA +S3154001211001000000C204400080A06010028000055A +S31540012120A01020017FFFBC3F90102003A01020018A +S31540012130832C2002C20440018425001080A0800126 +S3154001214022800005A00420017FFFBC3690102004A8 +S31540012150A004200180A4201012BFFFF7832C200287 +S31540012160FA244000F624C000EC24E040C204C0003A +S3154001217080A0401B02800004010000007FFFBC29B3 +S3154001218090102005C204E04080A040160280000461 +S31540012190010000007FFFBC2390102005EC24E008DD +S315400121A0C204E00880A0600012BFFFFE01000000EB +S315400121B0C204400080A0601002800005A410201FC8 +S315400121C07FFFBC1890102006A410201FA0102001EC +S315400121D0832C2002C204400180A0401222800005C7 +S315400121E0A00420017FFFBC0F90102007A00420010E +S315400121F080A4200812BFFFF7A404BFFEA410201C30 +S31540012200A010200A832C2002C204400180A0401263 +S3154001221022800005A00420017FFFBC029010200807 +S31540012220A004200180A4201012BFFFF7A404BFFE22 +S31540012230FA27BFF082102002C407BFF08400A00134 +S31540012240C427BFF4C407BFF48400A001C427BFF864 +S31540012250C407BFF88400A001C427BFFC8410200630 +S31540012260C427BFE0C024C000C024E040FA24400097 +S31540012270C224E040C224E0088344400080886100D3 +S3154001228002800005010000008050000180500001DD +S3154001229080500001C207BFE0C227BFE4C207BFE0CA +S315400122A080A0600602800005821020027FFFBBDD10 +S315400122B09010200A82102002C224E008010000008A +S315400122C0C207BFE0C227BFE4C207BFE080A06006E5 +S315400122D002800005821020027FFFBBD29010200AA7 +S315400122E082102002C224E00801000000C027BFE49A +S315400122F0C207BFE480A060001280007301000000A5 +S31540012300C204E00880A0600012BFFFFE0100000089 +S31540012310C204400080A06004028000040100000065 +S315400123207FFFBBC09010200DC024E040EC24E008A4 +S31540012330FA24400040000210010000004000021053 +S3154001234090122F00EC24E040C204E04080A06000DF +S3154001235002BFFFFE01000000C204400080A06002EF +S3154001236002800004010000007FFFBBAE9010200EEA +S31540012370C204600480A0601F0280000401000000C6 +S315400123807FFFBBA89010200F400001FBA410200244 +S31540012390400001FB90023F00400001F701000000B0 +S315400123A0400001F790023F00C2044000A004A00192 +S315400123B080A0401022800005A52CA0027FFFBB997A +S315400123C090102010A52CA002C40440128225401072 +S315400123D080A0800102800004A41000107FFFBB9101 +S315400123E09010201180A4201012BFFFEC01000000C4 +S315400123F0C024E040F424E00CAE05E00180A70017BC +S3154001240014BFFF1EA624F00080A720010480002CE3 +S3154001241001000000C0262024C206202480A06000BE +S315400124201280002C0100000003040000C226202473 +S31540012430C406202480A0800102800005821020016C +S315400124407FFFBB789010201482102001C2262020E5 +S31540012450C026202403040000C406202480A0800155 +S3154001246002800004010000007FFFBB6E9010201522 +S31540012470C0262020C0262024C206202480A0600039 +S315400124801280001B0100000082102002C22620207B +S31540012490C2062020808860020280001201000000EE +S315400124A0C0262020C20620208088600202800004C7 +S315400124B0010000007FFFBB5B9010201881C7E00838 +S315400124C091E820007FFFBB579010200B30BFFF8D56 +S315400124D07FFFBB549010201310BFFFD503040000AB +S315400124E07FFFBB509010201730BFFFEE7FFFBB4DE3 +S315400124F09010201610BFFFE6821020029DE3BFA078 +S315400125007FFFBB640100000080A220000280003BE7 +S315400125100100000080A62000128000350100000065 +S315400125207FFFBB5C01000000912A20047FFFBB3680 +S3154001253090022003400018850100000080A220007F +S31540012540128000280100000040001824010000000C +S31540012550400017D201000000400001E801000000E0 +S3154001256080A6A0001280001C010000007FFFBB492D +S3154001257021100124912A2002A0142104C20400083A +S3154001258080A060000280000A80A620007FFFBB4138 +S3154001259001000000912A20027FFFBB3EE0040008B3 +S315400125A09FC400000100000080A6200002800004B4 +S315400125B0010000007FFFBB50901000194000044508 +S315400125C00100000040001E5401000000400015D7E4 +S315400125D081E8000040001F260100000030BFFFE4F3 +S315400125E07FFFBB109010200130BFFFD87FFFBB3269 +S315400125F09010001930BFFFCB7FFFBAFC1100400C91 +S3154001260010BFFFC680A6200003100123C40060D07E +S315400126108400A001C42060D081C3E008010000000D +S315400126209DE3BFA07FFFBAF11100404482103FFFF6 +S31540012630E4062008C2262004A40CA007C406000014 +S31540012640C206000080A080010280007401000000E3 +S315400126508210201FC2262004C226000080A4A000AA +S315400126600280004E82102000852860048406000204 +S315400126708200600180A04012C020A01812BFFFFC5A +S3154001268085286004A0102000A610200FAA1020065D +S31540012690A81020107FFFBADC90100010A204200180 +S315400126A0832C600486060001A12C2004C02600016B +S315400126B084060010E620E004EA20A018C2060001C4 +S315400126C080A0600F02800005820600107FFFBAD508 +S315400126D090102003820600108410200E872C60047F +S315400126E0E6206018C206000380A0400212BFFFFE2A +S315400126F0010000008400BFFF80A0BFFF12BFFFFAA8 +S3154001270001000000852C6004C206000280A0600F13 +S3154001271012BFFFFE82060010C2006018808860105A +S3154001272002800033A0060010E8242018C2042018B5 +S3154001273080886010128000350100000080A480115D +S3154001274014BFFFD5A010001180A4A0010480000C85 +S31540012750821020007FFFBAAC901020088210200F13 +S31540012760C22620188210202FC2262028C2062020E9 +S3154001277080A0600D12BFFFFE8210200085286004F4 +S31540012780840600028200600180A04012C020A01889 +S3154001279012BFFFFC8528600421100124C2042100D8 +S315400127A080A06000028000109210001911100049AB +S315400127B0400025AB901222087FFFFC3DD00421004A +S315400127C0C204210084102001B3288019F220604000 +S315400127D08210200FC22620148210200DC2262018F6 +S315400127E0A780000081C7E00881E800007FFFBA8D1D +S315400127F090102004E8242018C20420188088601014 +S3154001280022BFFFD080A480117FFFBA869010200599 +S3154001281010BFFFCC80A480117FFFBA8290102001A7 +S3154001282010BFFF8D8210201F000000000000000035 +S315400128300000000000000000000000000000000051 +S31540012840010000000100000001000000010000003D +S31540012850010000000100000081C3E0080100000002 +S31540012860010000000100000001000000010000001D +S31540012870010000000100000081C3E00801000000E2 +S3154001288001000000010000000100000001000000FD +S31540012890010000000100000081C3E00801000000C2 +S315400128A001000000010000000100000001000000DD +S315400128B0010000000100000081C3E00801000000A2 +S315400128C0D482018090A2000916BFFFFE9612800BAA +S315400128D081C3E0089010000BD48201C090A2000988 +S315400128E016BFFFFE9612800B81C3E0089010000BC5 +S315400128F090A22004C0A201A090A22004C0A201A0DF +S3154001290090A22004C0A201A090A22004C0A201A0CE +S31540012910C0A2018090A2200414BFFFF7010000006D +S3154001292081C3E0080100000090A22004C0A201E09A +S3154001293090A22004C0A201E090A22004C0A201E01E +S3154001294090A22004C0A201E0C0A201C090A220042E +S3154001295014BFFFF70100000081C3E0080100000039 +S31540012960981000089610000A98A3200814BFFFFF8C +S31540012970D43B00099810000898A3200814BFFFFF14 +S31540012980C01B00099810000898A32004D60300092B +S3154001299080A2C00A1280000698A3200434BFFFFD1E +S315400129A0D603000981C3E008901020009010200151 +S315400129B0981000089610000A98A3200814BFFFFF3C +S315400129C0D43B00099810000898A32004D6030009B7 +S315400129D080A2C00A1280000698A3200434BFFFFDDE +S315400129E0D603000981C3E008901020009010200111 +S315400129F09810000898A32004D2A301A0DA8301A06D +S31540012A0080A340091280000698A3200414BFFFFC4E +S31540012A10D2A301A081C3E0089010200090102001AC +S31540012A209A1000089AA3400AD6A34180D8834180D0 +S31540012A30981B000B988B0009128000069AA3400A46 +S31540012A4014BFFFFBD6A3418081C3E008901020004C +S31540012A50901020019A1000089AA3400BD8A241CDAC +S31540012A60C48241CD8418800C8488800A1280000675 +S31540012A709AA3400B14BFFFFBD8A241CD81C3E00806 +S31540012A80901020009010200101000000010000007C +S31540012A900100000013100080921260E4D40240004D +S31540012AA080A2A0011280000780A0A002D4024000AB +S31540012AB0D4024000952AA0021080000501000000C2 +S31540012AC03280000381E80000D402400081E000002A +S31540012AD093480000818A60202310004AA21462F8BC +S31540012AE0A40460040100000081C4400081CC800040 +S31540012AF091D0200191D0200126800005900020012F +S31540012B0090222001912A2001912A200281C3E008C6 +S31540012B100100000081C3E008D082004081C3E00883 +S31540012B20D2A2004081C3E008D082018081C3E0087F +S31540012B30D2A2018081C3E008D08201A081C3E0080E +S31540012B40D2A201A081C3E008D08201C081C3E008BE +S31540012B50D2A201C081C3E008D08201E081C3E0086E +S31540012B60D2A201E081C3E008D2A2000081C3E008FD +S31540012B70D082000081C3E00891480000818A0000AC +S31540012B8001000000010000000100000081C3E008CF +S31540012B900100000081C3E008C0A000A081C3E00895 +S31540012BA0C0A000C081C3E008D01A000001000000A7 +S31540012BB001000000010000000100000001000000CA +S31540012BC09DE3BF8803100074D1186198D13FBFF0CF +S31540012BD003100080D11FBFF0D91861800310008017 +S31540012BE0D518618895A308CAD53FBFF80310008060 +S31540012BF0D91FBFF8D518619081AB0A4A0100000080 +S31540012C0023800038D127BFEC91A0054803100074FA +S31540012C10D13FBFF8D51FBFF8D91FBFF899A3094ABD +S31540012C20D51FBFF099A308CA99A0012CD51861A058 +S31540012C3081AB0ACA010000002D800024D127BFECD8 +S31540012C4091A018C891A20928D51FBFF091A01928B3 +S31540012C5091A208CA91A0012803100074D51861A851 +S31540012C6081AA0ACA010000000D800015010000007A +S31540012C704000019001000000400001EE010000000B +S31540012C8080A220001280000B010000004000024398 +S31540012C900100000080A22000128000040100000013 +S31540012CA081C7E00881E800007FFFB95E91E8200511 +S31540012CB07FFFB95C0100000030BFFFF57FFFB959C6 +S31540012CC09010200330BFFFEBD327BFE87FFFB955F4 +S31540012CD090102002D307BFE810BFFFDAD107BFEC3F +S31540012CE0D327BFE87FFFB94F90102001D307BFE834 +S31540012CF010BFFFC6D107BFEC9DE3BFA07FFFFF9E7C +S31540012D00210000047FFFFF9E901200107FFFFF9A73 +S31540012D1001000000808A001012800004B0102000DB +S31540012D2081C7E00881E8000040000266901020005B +S31540012D307FFFB95801000000912A20047FFFB93274 +S31540012D40900220087FFFFF9F81E8000001000000FC +S31540012D5019100080981321201110020092102000B2 +S31540012D60150FF76C9412A3D7D03B0000D42320084B +S31540012D70C11B0000C503200887A08922010000006D +S31540012D8089A005408DA0892281A8CA26010000009C +S31540012D9033800003901020009010200181C3E00889 +S31540012DA001000000C11A0000C51A400089A008426E +S31540012DB081C3E008C93A8000C11A0000C51A400023 +S31540012DC089A0094281C3E008C93A800019100080F0 +S31540012DD098132120D0230000D2232008C1030000EC +S31540012DE0C303200885A00D2181C3E008C53A8000B0 +S31540012DF0C11A0000C51A400089A009C2C93A80001B +S31540012E0081C3E00801000000C11A000085A0054009 +S31540012E10C53A400081C3E0080100000001000000FE +S31540012E200100000001000000010000000100000057 +S31540012E300100000001000000010000000100000047 +S31540012E400100000001000000010000000100000037 +S31540012E500100000001000000010000000100000027 +S31540012E600100000001000000010000000100000017 +S31540012E700100000001000000010000000100000007 +S31540012E8001000000010000000100000001000000F7 +S31540012E9001000000010000000100000081A00020A7 +S31540012EA081C3E00801000000C11A000081C3E008A7 +S31540012EB001000000C51A000089A009C2C93A4000B4 +S31540012EC081C3E008010000001310008092126120C6 +S31540012ED0D0224000C102400085A01900C53A4000F9 +S31540012EE081C3E008D01A400013100080921261207D +S31540012EF0D0224000C102400085A01880C522400072 +S31540012F0081C3E008D0024000151000809412A12030 +S31540012F10D03A8000C11A800085A01A40C52280009F +S31540012F2081C3E008D0028000151000809412A120D0 +S31540012F30D0228000C102800085A01A20C5228000CF +S31540012F4081C3E008D0028000151000809412A120B0 +S31540012F50D0228000C102800081A01920C13A8000A0 +S31540012F6081C3E008D01A8000151000809412A12078 +S31540012F70D03A8000C11A800081A018C0C1228000C9 +S31540012F8081C3E008D0028000151000809412A12070 +S31540012F90D0228000CB0280008DA00025CD2280006A +S31540012FA081C3E008D0028000151000809412A12050 +S31540012FB0D0228000CB0280008DA000A5CD228000CA +S31540012FC081C3E008D0028000151000809412A12030 +S31540012FD0D0228000CB0280008DA00125CD22800029 +S31540012FE081C3E008D0028000191000809813212087 +S31540012FF0D03B0000D43B2008C11B0000C51B200864 +S3154001300081A80A4201000000338000099010200087 +S3154001301029800007901020012D8000059010200284 +S315400130202F8000039010200391D0200081C3E00837 +S31540013030010000001910008098132120D03B0000A8 +S31540013040D43B2008C11B0000C51B200881A80AC229 +S315400130500100000033BFFFF69010200029BFFFF4A6 +S31540013060901020012DBFFFF2901020022FBFFFF0DC +S315400130709010200391D02000191000809813212030 +S31540013080D0230000D2232008C1030000C303200837 +S3154001309081A80A210100000033BFFFE590102000FE +S315400130A029BFFFE3901020012DBFFFE190102002C0 +S315400130B02FBFFFDF9010200391D020001910008010 +S315400130C098132120D0230000D2232008C1030000F9 +S315400130D0C303200881A80AA10100000033BFFFD421 +S315400130E09010200029BFFFD2901020012DBFFFD0A4 +S315400130F0901020022FBFFFCE9010200391D02000C8 +S315400131001910008098132120D03B0000D43B2008A1 +S31540013110C11B0000C51B200889A008C2C93B00008D +S3154001312081C3E008D01B00001910008098132120AC +S31540013130D0230000D2232008C1030000C303200886 +S3154001314085A00821C523000081C3E008D003000003 +S315400131501910008098132120D0230000D223200883 +S31540013160C1030000C303200885A008A1C5230000B0 +S3154001317081C3E008D0030000191000809813212074 S31540013180D0230000D2232008C1030000C303200836 -S3154001319081A80A210100000033BFFFE590102000FD -S315400131A029BFFFE3901020012DBFFFE190102002BF -S315400131B02FBFFFDF9010200391D02000191000800F -S315400131C098132178D0230000D2232008C1030000A0 -S315400131D0C303200881A80AA10100000033BFFFD420 -S315400131E09010200029BFFFD2901020012DBFFFD0A3 -S315400131F0901020022FBFFFCE9010200391D02000C7 -S315400132001910008098132178D03B0000D43B200848 -S31540013210C11B0000C51B200889A008C2C93B00008C -S3154001322081C3E008D01B0000191000809813217853 -S31540013230D0230000D2232008C1030000C303200885 -S3154001324085A00821C523000081C3E008D003000002 -S315400132501910008098132178D0230000D22320082A -S31540013260C1030000C303200885A008A1C5230000AF -S3154001327081C3E008D003000019100080981321781B -S31540013280D0230000D2232008C1030000C303200835 -S3154001329085A00921C523000081C3E008D0030000B1 -S315400132A01910008098132178D0230000D2232008DA -S315400132B0C1030000C303200885A009A1C52300005E -S315400132C081C3E008D00300001910008098132178CB -S315400132D0D0230000C103000083A00520C3230000C2 -S315400132E081C3E008D0030000131000809212619060 -S315400132F0C51A6008C11A400089A0084091A108C2B8 -S3154001330095A209C495A2894281C3E008D53A000035 -S3154001331013100080921261B0C1024000C3026004E2 -S3154001332085A0082087A088A189A0C9A289A10921D1 -S3154001333081C3E008C92200009610200213100080C4 -S3154001334092126190151000809412A190D50240000E -S31540013350D7028000D5220000D80200001310008059 -S31540013360921261B096A2E00112BFFFF9010000007E -S3154001337081C3E008010000001310008092126190A1 -S31540013380151000809412A1B0C1028000C51A6010C8 -S3154001339083A0082089A088C08BA109A18DA10942DB -S315400133A08FA1492691A0054681C3E008D13A000084 -S315400133B01110008090122188C11A0000C51A000020 -S315400133C0C91A0000CD1A0000D11A0000D51A000012 -S315400133D0D91A0000DD1A0000E11A0000E51A0000C2 -S315400133E0E91A0000ED1A0000F11A0000F51A000072 -S315400133F0F91A0000FD1A000081C3E008010000002F -S3154001340029100080A815215827100080A614E1C074 -S31540013410C12CC000E604C000A134E00EA00C200778 -S31540013420A0A42002AE1020002D100080AC15A1C032 -S31540013430AE05E001AC05A008C1358000C12D0000F4 -S31540013440EA050000AB35600DAA8D600112BFFFF998 -S3154001345001000000808000100280002F2B3C1FFFDE -S31540013460AA1563FFA60CC015E6250000C10D000094 -S315400134702B100080AA1561CC2D10004DAC15A0E093 -S31540013480AE25E001E0054000E025800081D820001E -S3154001349001000000010000000100000001000000E1 -S315400134A001000000010000000100000001000000D1 -S315400134B001000000010000000100000001000000C1 -S315400134C001000000010000000100000001000000B1 -S315400134D001000000010000000100000001000000A1 -S315400134E00000000080A5C00012BFFFE6AA056008E3 -S315400134F0C12D0000E60500002B03C000A614C0152F -S31540013500E6250000C10D000081C4400081CC800049 -S315400135100100000081C4800081CCA00401000000AC -S315400135200100000081C3E00891580000010000003D -S315400135301110008090122158C10A0000C0220000DB -S31540013540C10A0000C12A0000D40200001300038012 -S31540013550942A800980A0000A3280004D90102003F1 -S315400135601303E000D223BFA0C023BFA4C10BBFA059 -S31540013570C023BFA0151000809412A170C102800023 -S315400135800100000001000000C10BBFA0C10BBFA498 -S3154001359083A00520C12BBFA0D003BFA0808A2200F3 -S315400135A02280003B901020049010200015100080CE -S315400135B09412A140C5028000C902A008D102A00C04 -S315400135C01310008092126170C70240008DA0894499 -S315400135D081A98AC80100000003800005010000009E -S315400135E0901020011080002A01000000C5028000D1 -S315400135F0C902A008D102A00C13100080921261707A -S31540013600CB0240008DA0894481A98AC801000000EF -S315400136100380000501000000901020011080001C6D -S315400136200100000025100080A414A168C11C80007F -S31540013630C51C800080A000003280000685A008C01D -S3154001364081A80AC2010000001380000301000000A6 -S31540013650901020050100000025100080A414A168E7 -S31540013660C11C8000C51C800080A000000100000034 -S315400136703280000685A008C081A80AC20100000068 -S315400136801380000301000000901020070100000094 -S3154001369081C3E0080100000090102001954400001C -S315400136A09532A01E940AA00380A2800002800040A9 -S315400136B09010200080A2A0030280003D13100080DC -S315400136C0921261F0C11A4000C51A6008FD026018E5 -S315400136D095A0003E99A0003E9DA0003E170000C067 -S315400136E09612E078A182C0000100000001000000AE -S315400136F0010000000100000001000000010000007F -S3154001370081A0002083A0002195A0002A99A0002C29 -S315400137109DA0002E170000C09612E07CA182C00039 -S31540013720010000000100000001000000010000004E -S31540013730010000000100000085A0002287A00023AF -S31540013740A18000000100000001000000010000000E -S3154001375001000000010000000100000089A00842AC -S31540013760A9A2883ED93A4000DD224000CD1A601018 -S31540013770D102600881A90A46010000000380000CBD -S3154001378081AD0A280100000003800009934400002E -S315400137909332601B920A60079010200080A2A0011C -S315400137A002800003902260079022600481C3E008F2 -S315400137B001000000C12BBFA081C3E008D003BFA018 -S315400137C0D023BFA081C3E008C10BBFA00100000008 -S315400137D09DE3BF6040001B17B0102000913A200ABC -S315400137E0900A200380A220011280111101000000DD -S315400137F07FFFB6819010200D190C40291B23CD1B4C -S315400138009410200096102000981320069A13609B6E -S31540013810D43FBFE0D43FBFC0D43FBFE87FFFFF42A4 -S31540013820D83FBFF0900A3000032804009012208050 -S315400138308210600FC22200001B10004D900220042E -S315400138409A1360009A234008191000009B3B6002BE -S31540013850032784009A13400C82106010C222200470 -S315400138607FFFFED4DA2200007FFFFFD61103E0007E -S315400138702D100080C025A1C07FFFFDD490102000EF -S31540013880809200091280000601000000C205A1C015 -S3154001389080A0600002800004010000007FFFB65B4B -S315400138A09010200B7FFFFDC990103FFA03300600B0 -S315400138B080A200011280000480A2600002800EDB1B -S315400138C0010000007FFFB6519010200B7FFFFDBF26 -S315400138D09010201403100D0080A2000112800004F4 -S315400138E080A2600002800ECC010000007FFFB64737 -S315400138F09010200B7FFFFDB590102062031016201B -S3154001390080A200011280000480A2600002800EBDE8 -S31540013910010000007FFFB63D9010200B7FFFFDB3F5 -S31540013920901020050310280080A200011280000695 -S3154001393001000000C205A1C080A060000280000411 -S31540013940010000007FFFB6319010200B7FFFFF9DE5 -S315400139501103C000111C00007FFFFDAC9210200036 -S31540013960031FFFFF821063FF80A200011280000A3D -S315400139701B000070C205A1C09A13601F19000010F8 -S315400139808208400D9813201080A0400C028000054B -S31540013990113C00007FFFB61D9010200C113C000029 -S315400139A07FFFFD9A921020000320000080A20001B3 -S315400139B01280000A1B000070C205A1C09A13601F45 -S315400139C0190000108208400D9813201080A0400C69 -S315400139D002800004010000007FFFB60C9010200C0D -S315400139E0C025A1C0901020007FFFFD8892102000C5 -S315400139F080A220001280000601000000C205A1C07D -S31540013A0080A0600002800005110144007FFFB5FFE0 -S31540013A109010200C110144001328400090122302FB -S31540013A207FFFFD7A9212600180A22000128000067B -S31540013A3001000000C205A1C080A0600022800005EF -S31540013A401111FFFF7FFFB5F19010200C1111FFFFFF -S31540013A507FFFFD76901223FF0300007F821063FFF4 -S31540013A6080A200011280000601000000C205A1C02B -S31540013A7080A06000028000052F1000857FFFB5E31E -S31540013A809010200C2F1000857FFFFD60D01DE0C8EF -S31540013A90031FFFFF821063FF80A200011280000A0C -S31540013AA01B000070C205A1C09A13601F19000010C7 -S31540013AB08208400D9813201080A0400C028000051A -S31540013AC0031000857FFFB5D19010200C03100085AF -S31540013AD0D01860D8C025A1C07FFFFD4C0100000071 -S31540013AE00320000080A200011280000A1B00007022 -S31540013AF0C205A1C09A13601F190000108208400D2B -S31540013B009813201080A0400C0280000519100085F2 -S31540013B107FFFB5BE9010200C19100085C025A1C0AD -S31540013B207FFFFD3AD01B20B8031FFFFF821063FFC2 -S31540013B3080A200011280000A1B000070C205A1C0CC -S31540013B409A13601F190000108208400D9813201027 -S31540013B5080A0400C02800005331000857FFFB5AB85 -S31540013B609010200C33100085C025A1C07FFFFD2792 -S31540013B70D01E60F0C205A1C08330600E820860038A -S31540013B8080A0600202800004211000807FFFB59F63 -S31540013B909010200C7FFFFF0B1103C0001111580438 -S31540013BA0C02421C07FFFFD299012223403102B002F -S31540013BB08210624680A200011280000503200000A7 -S31540013BC080A2400102800FC5010000007FFFB58F32 -S31540013BD09010200D113C02AF7FFFFD1C901220D1A9 -S31540013BE0033180558210639A80A20001128000053C -S31540013BF00308000080A2400102800FDB01000000A3 -S31540013C007FFFB5829010200D1111FC007FFFFD173B -S31540013C1092102000031FE00080A200011280000ADA -S31540013C201B000070C205A1C09A13601F1900001045 -S31540013C308208400D9813200880A0400C02800005A0 -S31540013C4011207C017FFFB5719010200D11207C0160 -S31540013C50C025A1C0901220307FFFFD041300010052 -S31540013C600320000080A200011280000A1B000070A0 -S31540013C70C205A1C09A13601F190000108208400DA9 -S31540013C809813200480A0400C02800004010000002B -S31540013C907FFFB55E9010200DC025A1C09010200079 -S31540013CA07FFFFCF29210200080A2200012800006C5 -S31540013CB001000000C205A1C080A06000028000048E -S31540013CC0010000007FFFB5519010200D7FFFFCE7FA -S31540013CD0D01DE0C803100085DA0060C080A2000D47 -S31540013CE01280000601000000C205A1C080A060004C -S31540013CF0028000051B1000857FFFB5449010200D02 -S31540013D001B1000857FFFFCD9D01B60D0031FE0004C -S31540013D1080A200011280000601000000C205A1C078 -S31540013D2080A0600002800005031000857FFFB53743 -S31540013D309010200D031000857FFFFCCCD01860B891 -S31540013D4003100085DA0060A880A2000D1280000AE7 -S31540013D501B000070C205A1C09A13601F1900001014 -S31540013D608208400D9813201080A0400C0280000468 -S31540013D70010000007FFFB5259010200DC025A1C090 -S31540013D807FFFFCBAD01E60F0C205A1C08330600E31 -S31540013D908208600380A06002028000042310008034 -S31540013DA07FFFB51A9010200D7FFFFE861103E000BC -S31540013DB02108C6AF901420DEC02461C07FFFFCB34A -S31540013DC0A01420DE80A2001012800006010000002F -S31540013DD0C20461C080A06000028000052108C6AF10 -S31540013DE07FFFB50A9010200E2108C6AF7FFFFCB7B2 -S31540013DF0901420DEA01420DE80A20010128000065E -S31540013E0001000000C205A1C080A06000228000051B -S31540013E101128C6AF7FFFB4FD9010200E1128C6AF02 -S31540013E207FFFFCAA901220DE0308C6AF821060DE37 -S31540013E3080A200011280000601000000C205A1C057 -S31540013E4080A06000228000051108C6AF7FFFB4EF55 -S31540013E509010200E1108C6AF7FFFFC94901220DE11 -S31540013E600328C6AF821060DE80A2000112800006E0 -S31540013E7001000000C205A1C080A0600022800005AB -S31540013E801128C6AF7FFFB4E19010200E1128C6AFAE -S31540013E907FFFFC86901220DE0308C6AF821060DEEB -S31540013EA080A200011280000601000000C205A1C0E7 -S31540013EB080A0600002800004010000007FFFB4D3AF -S31540013EC09010200E7FFFFE3F1103E00011151BC02D -S31540013ED01310C82115351BC01710C8219012210394 -S31540013EE0921261419412A1037FFFFC809612E14137 -S31540013EF080A220021280000601000000C205A1C076 -S31540013F0080A060000280000511351BC07FFFB4BF51 -S31540013F109010200F11351BC01310C82115151BC059 -S31540013F201710C82190122103921261419412A103E4 -S31540013F307FFFFC6E9612E14180A2200112800006AD -S31540013F4001000000C205A1C080A0600002800005FA -S31540013F50901020007FFFB4AD9010200F90102000EC -S31540013F6092102000152000007FFFFC609610200073 -S31540013F7080A220001280000601000000C205A1C0F7 -S31540013F8080A0600002800005191000857FFFB49F64 -S31540013F909010200F191000851B100085D01B20D0D2 -S31540013FA07FFFFC52D41B60D880A2200212800006FB -S31540013FB001000000C205A1C080A06000028000058A -S31540013FC011151BC07FFFB4919010200F11151BC016 -S31540013FD01310C82115151BE81710C821901221038B -S31540013FE0921261419412A1037FFFFC409612E14176 -S31540013FF080A220011280000601000000C205A1C076 -S3154001400080A060000280000511151BE87FFFB47F88 -S315400140109010200F11151BE81310C82115151BC050 -S315400140201710C82190122103921261419412A103E3 -S315400140307FFFFC2E9612E14180A2200212800006EB -S3154001404001000000C205A1C080A0600002800005F9 -S3154001405011151BE87FFFB46D9010200F11151BE859 -S315400140601310C82190122103921261417FFFFC1F58 -S31540014070D41DE0C880A22003128000060100000082 -S31540014080C205A1C080A06000028000050310008522 -S315400140907FFFB45E9010200F0310008511151BE8B9 -S315400140A01310C82190122103921261417FFFFC0F28 -S315400140B0D41860B880A220031280000A1B00007049 -S315400140C0C205A1C09A13601F190000108208400D55 -S315400140D09813201080A0400C0280000511151BE8A2 -S315400140E07FFFB44A9010200F11151BE81310C82109 -S315400140F0C025A1C090122103921261417FFFFBFBB3 -S31540014100D41E60F080A22002128000060100000049 -S31540014110C205A1C080A060000280000515151BE8FC -S315400141207FFFB43A9010200F15151BE81710C821D0 -S31540014130D01E60F09412A1037FFFFBEC9612E14181 -S3154001414080A220011280000601000000C205A1C024 -S3154001415080A060000280000515151BE87FFFB42B87 -S315400141609010200F15151BE81710C821D01DE0C867 -S315400141709412A1037FFFFBDD9612E14180A2200349 -S315400141801280000601000000C205A1C080A06000A7 -S3154001419002800005191000857FFFB41C9010200F86 -S315400141A01910008515151BE81710C821D01B20B81A -S315400141B09412A1037FFFFBCD9612E14180A2200319 -S315400141C01280000A1B000070C205A1C09A13601F2D -S315400141D0190000108208400D9813201080A0400C51 -S315400141E00280000511151BC07FFFB4089010200FF7 -S315400141F011151BC01310C82115351BC01710C82136 -S31540014200C025A1C090122103921261419412A103CB -S315400142107FFFFBC99612E14180A22002128000066F -S3154001422001000000C205A1C080A060000280000517 -S3154001423011351BC07FFFB3F59010200F11351BC000 -S315400142401310C82115151BC01710C8219012210340 -S31540014250921261419412A1037FFFFBB79612E1418D -S3154001426080A220011280000601000000C205A1C003 -S3154001427080A0600002800005901020007FFFB3E31C -S315400142809010200F90102000921020001520000061 -S315400142907FFFFBA99610200080A220001280000615 -S315400142A001000000C205A1C080A060000280000597 -S315400142B01B1000857FFFB3D59010200F1B10008582 -S315400142C003100085D01B60D07FFFFB9BD41860D8BC -S315400142D080A220021280000601000000C205A1C092 -S315400142E080A060000280000511151BC07FFFB3C787 -S315400142F09010200F11151BC01310C82115151BE86E -S315400143001710C82190122103921261419412A10300 -S315400143107FFFFB899612E14180A2200112800006AF -S3154001432001000000C205A1C080A060000280000516 -S3154001433011151BE87FFFB3B59010200F11151BE82F -S315400143401310C82115151BC01710C821901221033F -S31540014350921261419412A1037FFFFB779612E141CC -S3154001436080A220021280000601000000C205A1C001 -S3154001437080A060000280000511151BE87FFFB3A3F2 -S315400143809010200F11151BE81310C821901221031C -S31540014390921261417FFFFB68D41DE0C880A22003D1 -S315400143A01280000A1B000070C205A1C09A13601F4B -S315400143B0190000108208400D9813201080A0400C6F -S315400143C002800005191000857FFFB3909010200FE1 -S315400143D01910008511151BE81310C82190122103ED -S315400143E0921261417FFFFB54D41B20B880A2200367 -S315400143F01280000A1B000070C205A1C09A13601FFB -S31540014400190000108208400D9813201080A0400C1E -S315400144100280000511151BE87FFFB37C9010200F29 -S3154001442011151BE81310C821C025A1C09012210304 -S31540014430921261417FFFFB40D41E60F080A22002B0 -S315400144401280000601000000C205A1C080A06000E4 -S315400144500280000515151BE87FFFB36C9010200FF5 -S3154001446015151BE81710C821D01E60F09412A10340 -S315400144707FFFFB319612E14180A2200112800006A6 -S3154001448001000000C205A1C080A0600002800005B5 -S3154001449015151BE87FFFB35D9010200F15151BE81E -S315400144A01710C821D01DE0C89412A1037FFFFB223B -S315400144B09612E14180A220031280000A1B0000707F -S315400144C0C205A1C09A13601F190000108208400D51 -S315400144D09813201080A0400C028000051B10008517 -S315400144E07FFFB34A9010200F1B10008515151BE85E -S315400144F01710C821D01B60B89412A1037FFFFB0E91 -S315400145009612E14180A220031280000A1B0000702E -S31540014510C205A1C09A13601F190000108208400D00 -S315400145209813201080A0400C02800005110048EA33 -S315400145307FFFB3369010200F110048EA13048D1502 -S31540014540C025A1C0901223CD7FFFFB0C9212627849 -S3154001455080A220011280000601000000C205A1C010 -S3154001456080A0600002800005110048EA7FFFB32762 -S315400145709010200F110048EA13048D15901223CD97 -S315400145807FFFFB0F9212627880A220011280000603 -S3154001459001000000C205A1C080A0600002800004A5 -S315400145A0010000007FFFB3199010200FC025A1C064 -S315400145B07FFFFC841103C000291001449007BFF01E -S315400145C09207BFE87FFFFA3894152150C207BFF022 -S315400145D0DA05215080A0400D128000078215215036 -S315400145E0DA006004C207BFF480A0400D02800D5975 -S315400145F0010000007FFFB3059010201037100085A1 -S315400146009007BFF09216E0E07FFFFA2794152150FC -S31540014610C206E0E0DA05215080A34001821521500F -S31540014620128000079816E0E0DA006004C203200415 -S3154001463080A3400102800D42010000007FFFB2F3DA -S31540014640901020109007BFF09215E0C87FFFFA1630 -S3154001465094152150C205E0C8DA05215080A34001D6 -S3154001466082152150128000079815E0C8DA006004CF -S31540014670C203200480A3400102800D2C01000000EA -S315400146807FFFB2E29010201003100085921060B8AF -S315400146909007BFF07FFFFA04941521501B0000706C -S315400146A0C205A1C09A13601F190000108208400D6F -S315400146B09813201080A0400C028000042110014470 -S315400146C07FFFB2D29010201003100080C02061C03D -S315400146D07FFFFC3C9010200013100085941421505C -S315400146E0921260B87FFFF9F09007BFF0391000854C -S315400146F0C20720B0DA04215080A34001941421500E -S3154001470012800007821720B0DA02A004C2006004BA -S3154001471080A3400102800004010000007FFFB2BB7C -S31540014720901020107FFFFC271103C0009007BFF0B7 -S31540014730921660F07FFFF9DC94152150C205A1C0A5 -S315400147408330600E8208600380A06002211001441C -S3154001475002800004231000807FFFB2AC901020102D -S3154001476094142150C02461C09007BFE87FFFF9CE61 -S315400147709207BFF0DA042150C207BFF080A340017F -S315400147801280000794142150DA02A004C207BFF434 -S3154001479080A3400102800D21010000007FFFB29BF2 -S315400147A0901020109007BFE89216E0E07FFFF9BE17 -S315400147B094152150C206E0E0DA05215080A340015C -S315400147C082152150128000079816E0E0DA00600455 -S315400147D0C203200480A3400102800D0B01000000AA -S315400147E07FFFB28A901020109007BFE89215E0C86B -S315400147F07FFFF9AD94152150C205E0C8DA05215075 -S3154001480080A3400182152150128000079815E0C807 -S31540014810DA006004C203200480A3400102800CF543 -S31540014820010000007FFFB279901020101910008519 -S31540014830921320B89007BFE87FFFF99B941521504A -S315400148401B000070C205A1C09A13601F1900001019 -S315400148508208400D9813201080A0400C028000046D -S31540014860211001447FFFB269901020107FFFFBD5D4 -S31540014870901020001310008594142150921260B8B4 -S315400148807FFFF9899007BFE8C20720B0DA042150BB -S3154001489080A340019414215012800007821720B052 -S315400148A0DA02A004C200600480A340010280000431 -S315400148B0010000007FFFB255901020107FFFFBC121 -S315400148C01103C0009007BFE8921660F07FFFF976AA -S315400148D094152150C205A1C08330600E8208600341 -S315400148E080A0600221100144028000042310008050 -S315400148F07FFFB2469010201094142150C02461C00D -S315400149009016E0E07FFFF9689207BFF0C206E0E04B -S31540014910DA04215080A340019414215012800007EB -S315400149208216E0E0DA02A004C200600480A34001DE -S3154001493002800CAB010000007FFFB23490102010C2 -S315400149409016E0E09207BFE87FFFF9579415215092 -S31540014950C206E0E0DA05215080A3400182152150CC -S31540014960128000079816E0E0DA006004C2032004D2 -S3154001497080A3400102800C95010000007FFFB22315 -S31540014980901020101B100085901360D092100008E3 -S315400149907FFFF9459415215019100085C20320D097 -S315400149A0DA05215080A3400182152150128000076B -S315400149B0981320D0DA006004C203200480A340018A -S315400149C002800C7D010000007FFFB2109010201084 -S315400149D01B100085901360D8921000087FFFF932B2 -S315400149E09415215019100085C20320D8DA052150AB -S315400149F080A340018215215012800007981320D8C8 -S31540014A00DA006004C203200480A3400102800C65E1 -S31540014A10010000007FFFB1FD901020101B100085A2 -S31540014A2003100085901360D8921060D07FFFF91E65 -S31540014A30941521501B000070C205A1C09A13601F36 -S31540014A40190000108208400D9813201080A0400CD8 -S31540014A5002800004211001447FFFB1EC9010201028 -S31540014A607FFFFB5890102000111000851310008520 -S31540014A7094142150901220D87FFFF90B921260D0E6 -S31540014A80C20720B0DA04215080A34001941421507A -S31540014A9012800007821720B0DA02A004C200600427 -S31540014AA080A3400102800004010000007FFFB1D7CE -S31540014AB0901020107FFFFB431103C00019100085A1 -S31540014AC01B100085901320D0921360D8C025A1C039 -S31540014AD07FFFF8F594152150C20720B0DA05215021 -S31540014AE080A340018215215012800007981720B0FB -S31540014AF0DA006004C203200480A3400102800C1F37 -S31540014B001B0000707FFFB1C1901020109016E0E0AD -S31540014B10921660F07FFFF8E494152150C205A1C0BA -S31540014B208330600E8208600380A060022110014438 -S31540014B3002800004231000807FFFB1B49010201042 -S31540014B4094142150C02461C09015E0C87FFFF8D667 -S31540014B509207BFF0C205E0C8DA04215080A34001A4 -S31540014B6094142150128000078215E0C8DA02A0048D -S31540014B70C200600480A3400102800B9C010000003A -S31540014B807FFFB1A2901020109015E0C89207BFE8B0 -S31540014B907FFFF8C594152150C205E0C8DA052150BA -S31540014BA080A3400182152150128000079815E0C864 -S31540014BB0DA006004C203200480A3400102800B8610 -S31540014BC0010000007FFFB191901020109015E0C8C0 -S31540014BD09216E0E07FFFF8B494152150C205E0C873 -S31540014BE0DA05215080A34001821521501280000729 -S31540014BF09815E0C8DA006004C203200480A340018E -S31540014C0002800B70010000007FFFB18090102010E0 -S31540014C109015E0C8921000087FFFF8A39415215023 -S31540014C20C205E0C8DA05215080A340018215215012 -S31540014C30128000079815E0C8DA006004C203200418 -S31540014C4080A3400102800B5A010000007FFFB16F33 -S31540014C509010201003100085921060B89015E0C89E -S31540014C607FFFF8919415215003000070A610601F34 -S31540014C70DA05A1C0030000109A0B4013AA10601078 -S31540014C8080A34015231000852510014402800004AD -S31540014C90211000807FFFB15D90102010C02421C0FB -S31540014CA0901460B89207BFF07FFFF87F9414A1502B -S31540014CB0C20421C08208401380A04015028000042E -S31540014CC0010000007FFFB15190102010C02421C087 -S31540014CD0901460B89207BFE87FFFF8739414A1500F -S31540014CE0C20421C08208401380A0401502800004FE -S31540014CF0010000007FFFB14590102010C02421C063 -S31540014D00901460B89216E0E07FFFF8679414A150C2 -S31540014D10C20421C08208401380A0401502800005CC -S31540014D20131000857FFFB1399010201013100085B4 -S31540014D30C02421C0921260C8901460B87FFFF85A0F -S31540014D409414A150C20421C08208401380A040158A -S31540014D5002800005901460B87FFFB12C901020109E -S31540014D60901460B8C02421C0921000087FFFF84E0D -S31540014D709414A150C20421C08208401380A040155A -S31540014D8002800004010000007FFFB1209010201036 -S31540014D90C02421C0901460B8921660F07FFFF8429B -S31540014DA09414A150C20421C08330600E820860036E -S31540014DB080A06002228000051103C0007FFFB1136D -S31540014DC0901020101103C0007FFFFA7E3B10008433 -S31540014DD0A2176210C02421C0AA14A150A4046010D5 -S31540014DE0A0102000A6046008B010200C9204001305 -S31540014DF0900400117FFFF82C94152150DA0480109D -S31540014E0098040012C2052150A004201880A3400135 -S31540014E101280000790102010DA032004C2056004B6 -S31540014E2080A3400122800005B0863FFF7FFFB0F797 -S31540014E3001000000B0863FFF1CBFFFEE9204001345 -S31540014E40C205A1C080A0600012800989010000004E -S31540014E501110008490122348920220087FFFF81215 -S31540014E609415215098176210C2052150DA03214842 -S31540014E7080A340011280000782152150DA03214C9C -S31540014E80C200600480A3400122800AAB0310008067 -S31540014E907FFFB0DE90102010111000849012236025 -S31540014EA0920220087FFFF80094152150981762104E -S31540014EB0C2052150DA03216080A340011280000718 -S31540014EC082152150DA032164C200600480A34001A7 -S31540014ED002800AA41B0000707FFFB0CC9010201006 -S31540014EE01110008490122378920220087FFFF7EE7A -S31540014EF09415215098176210C2052150DA03217882 -S31540014F0080A340011280000782152150DA03217CDB -S31540014F10C200600480A3400102800A9C1B0000700D -S31540014F207FFFB0BA90102010C025A1C0111000001B -S31540014F3092102000150FFC007FFFF8B2961020005A -S31540014F40030FFC0080A200011280000880A26000CD -S31540014F501280000601000000C205A1C080A06000C9 -S31540014F6002800005111000007FFFB0A890102010AC -S31540014F701110000092102000152FFC007FFFF8A1B0 -S31540014F80961020000310020080A200011280000842 -S31540014F9080A260001280000601000000C205A1C087 -S31540014FA080A0600002800005113000007FFFB097AD -S31540014FB0901020101130000092102000150FFC00B7 -S31540014FC07FFFF890961020000330020080A2000176 -S31540014FD01280000880A260001280000601000000D5 -S31540014FE0C205A1C080A0600002800005113000000A -S31540014FF07FFFB086901020101130000092102000E3 -S31540015000152FFC007FFFF87F96102000032FFC0030 -S3154001501080A200011280000880A260001280000672 -S3154001502001000000C205A1C080A060000280000509 -S31540015030111000007FFFB075901020101110000074 -S315400150407FFFF87A130FE0000310100080A20001E1 -S315400150501280000601000000C205A1C080A06000C8 -S3154001506002800005111000007FFFB06890102010EB -S31540015070111000007FFFF877130FE000030FE000E7 -S3154001508080A200011280000601000000C205A1C0F5 -S3154001509080A0600022800005191000857FFFB05B6B -S315400150A09010201019100085921320E8C025A1C048 -S315400150B09007BFF07FFFF78F941521501910008597 -S315400150C0C20320D8DA05215080A340018215215020 -S315400150D012800007981320D8DA006004C203200426 -S315400150E080A3400102800A461B0000707FFFB04743 -S315400150F0901020111B100085921360D0C025A1C0CD -S315400151009007BFF07FFFF77B94152150C207BFE0A0 -S31540015110DA05215080A340011280000782152150F3 -S31540015120DA006004C207BFE480A3400102800A3E60 -S31540015130010000007FFFB035901020119007BFF0AD -S315400151409215E0C87FFFF76B94152150C205E0C860 -S31540015150DA05215080A340018215215012800007B3 -S315400151609815E0C8DA006004C203200480A3400118 -S3154001517002800A32010000007FFFB0249010201106 -S3154001518003100085921060B89007BFF07FFFF75972 -S3154001519094152150C20720B0DA05215080A3400161 -S315400151A08215215012800007981720B0DA0060045A -S315400151B0C203200480A3400102800A251B0000701F -S315400151C07FFFB012901020119007BFF0921660F049 -S315400151D07FFFF74894152150C205A1C01B000070FE -S315400151E08208400D1900002080A0400C2110014486 -S315400151F002800004231000807FFFB004901020112C -S3154001520094142150C02461C09007BFE87FFFF7394D -S315400152109207BFF0DA042150C207BFE880A34001DC -S315400152201280000794142150DA02A004C207BFEC91 -S3154001523080A3400102800A10010000007FFFAFF306 -S315400152409010201119100085901320E89207BFE0B5 -S315400152507FFFF72894152150C20720B0DA05215067 -S3154001526080A340018215215012800007981720B073 -S31540015270DA006004C203200480A3400102800A03CD -S315400152801B0000707FFFAFE1901020111B100085BD -S3154001529003100085901360E8921060D0C025A1C02C -S315400152A07FFFF7149415215019100085C20320E899 -S315400152B0DA05215080A34001821521501280000752 -S315400152C0981320E8DA006004C203200480A3400159 -S315400152D0028009F8010000007FFFAFCC9010201139 -S315400152E09007BFE89215E0C87FFFF7029415215059 -S315400152F0C205E0C8DA05215080A34001821521503C -S31540015300128000079815E0C8DA006004C203200441 -S3154001531080A34001028009EC010000007FFFAFBB82 -S31540015320901020071B100085921360B89007BFE8C4 -S315400153307FFFF6F09415215025000070D805A1C0D5 -S315400153409A14A01F03000010980B000D82106010E4 -S3154001535080A3000121100144028000042310008033 -S315400153607FFFAFAA90102011C02461C09007BFE80B -S31540015370921660F07FFFF6DF94142150C20461C09B -S31540015380820840121B00002080A0400D22800005AB -S31540015390031000857FFFAF9D9010201103100085FB -S315400153A0901060D894142150C02461C07FFFF6D17B -S315400153B09207BFF019100085C20320D8DA042150A4 -S315400153C080A340019414215012800007821320D8F3 -S315400153D0DA02A004C200600480A34001028008B83A -S315400153E0010000007FFFAF89901020111B1000853E -S315400153F003100085901360D8921060E87FFFF6BDD8 -S315400154009415215019100085C20320D0DA05215088 -S3154001541080A340018215215012800007981320D0A5 -S31540015420DA006004C203200480A34001028008A977 -S31540015430010000007FFFAF75901020119016E0E04B -S31540015440921000087FFFF6AB94152150C20720B099 -S31540015450DA05215080A340018215215012800007B0 -S31540015460981720B0DA006004C203200480A34001EB -S315400154700280089D1B0000707FFFAF6490102011D1 -S31540015480C025A1C09016E0E09215E0C87FFFF699CD -S3154001549094152150C205E0C8DA05215080A3400188 -S315400154A082152150128000079815E0C8DA00600481 -S315400154B0C203200480A34001028008940100000039 -S315400154C07FFFAF52901020111B100085921360B8D8 -S315400154D09016E0E07FFFF68794152150C20720B071 -S315400154E0DA05215080A34001821521501280000720 -S315400154F0981720B0DA006004C203200480A340015B -S31540015500028008871B0000707FFFAF40901020117A -S31540015510C025A1C09016E0E0921660F07FFFF675B7 -S3154001552094152150C205A1C01B0000708208400D90 -S315400155301900002080A0400C231000800280000446 -S31540015540211001447FFFAF31901020119414215056 -S31540015550C02461C09015E0C87FFFF6669207BFF090 -S31540015560C205E0C8DA04215080A3400194142150B9 -S31540015570128000078215E0C8DA02A004C200600466 -S3154001558080A340010280086F010000007FFFAF1F2A -S31540015590901020119015E0C89207BFE87FFFF6559D -S315400155A094152150C205E0C8DA05215080A3400177 -S315400155B082152150128000079815E0C8DA00600470 -S315400155C0C203200480A34001028008630100000059 -S315400155D07FFFAF0E901020119015E0C89216E0E0C3 -S315400155E07FFFF64494152150C205E0C8DA052150E3 -S315400155F080A3400182152150128000079815E0C80A -S31540015600DA006004C203200480A3400102800857E7 -S31540015610010000007FFFAEFD901020119015E0C8FB -S31540015620921000087FFFF63394152150C205E0C859 -S31540015630DA05215080A340018215215012800007CE -S315400156409815E0C8DA006004C203200480A3400133 -S31540015650028007F3010000007FFFAEEC901020119D -S3154001566003100085921060B89015E0C87FFFF621BF -S3154001567094152150C20720B0DA05215080A340017C -S315400156808215215012800007981720B0DA00600475 -S31540015690C203200480A34001028007E61B0000707C -S315400156A07FFFAEDA901020119015E0C8921660F097 -S315400156B07FFFF61094152150C205A1C0310000703C -S315400156C0820840183B00002080A0401D2310014461 -S315400156D002800004211000807FFFAECC9010201183 -S315400156E019100085901320B89207BFF07FFFF6018D -S315400156F094146150C20421C0AA16201F350000101F -S3154001570082084015A616A01080A04013028000040E -S31540015710251000857FFFAEBD90102011C02421C009 -S315400157209014A0B89207BFE87FFFF5F29414615038 -S31540015730C20421C08208401580A0401302800004A3 -S31540015740010000007FFFAEB190102011C02421C09E -S315400157509014A0B89216E0E07FFFF5E694146150EC -S31540015760C20421C08208401580A040130280000572 -S31540015770131000857FFFAEA59010201113100085F0 -S31540015780C02421C0921260C89014A0B87FFFF5D9F9 -S3154001579094146150C20421C08208401580A0401370 -S315400157A0028000059014A0B87FFFAE98901020119A -S315400157B09014A0B8C02421C0921000087FFFF5CDF7 -S315400157C094146150C20421C08208401580A0401340 -S315400157D002800005131000857FFFAE8C90102011CA -S315400157E013100085C02421C09014A0B8921260F015 -S315400157F07FFFF5C094146150C20421C0820840184D -S3154001580080A0401D2280000515203E837FFFAE7F8C -S315400158109010201115203E83170021C89412A3FF32 -S315400158209612E3A1191FC0001B00C0009A1360B075 -S3154001583098132102D43FBFD0D83FBFD8C02421C03E -S315400158409007BFD89207BFD07FFFF5AA9407BFC87C -S31540015850DA07BFC8033FFC0080A340010280070B63 -S31540015860A207BFC87FFFAE6990102011151086832D -S31540015870170021C89412A3FF9612E3A11900400014 -S315400158801B00C0009A1360B098132102D43FBFD0C9 -S31540015890D83FBFD8C025A1C09007BFD89207BFD077 -S315400158A07FFFF5949407BFC8DA046004C207BFC8F6 -S315400158B08090400D1280000A1B000070C205A1C0F5 -S315400158C09A13601F190000108208400D9813200496 -S315400158D080A0400C22800005150FFC007FFFAE4BD7 -S315400158E090102011150FFC00170281D89412A04088 -S315400158F09612E10C9A102010190006AFD43FBFD082 -S31540015900D83FBFD8C025A1C09007BFD89207BFD006 -S315400159107FFFF5789407BFC8030006AEDA07BFC814 -S315400159208210639580A340011280000703003A9AD2 -S31540015930DA0460048210630F80A3400102800733BA -S31540015940010000007FFFAE3190102011150FFFFFBF -S31540015950170281D89412A3409612E10C9A10201096 -S31540015960190006AFD43FBFD0D83FBFD8C025A1C08C -S315400159709007BFD89207BFD07FFFF55E9407BFC897 -S31540015980DA046004C207BFC88090400D1280000A45 -S315400159901B000070C205A1C09A13601F19000010B8 -S315400159A08208400D9813200480A0400C0280000418 -S315400159B0010000007FFFAE1590102011C025A1C047 -S315400159C0111088007FFFF63713100100031066C9D6 -S315400159D0821062CA80A20001128000060100000006 -S315400159E0C205A1C080A06000028000051111BBFE66 -S315400159F07FFFAE06901020111111BBFE901223FFBE -S31540015A007FFFF628130C7040031527CA8210611ECA -S31540015A1080A200011280000601000000C205A1C05B -S31540015A2080A06000028000051310C7FF7FFFADF71D -S31540015A30901020111310C7FF921263FC7FFFF619D5 -S31540015A40111E607E031D73FC8210633880A2000123 -S31540015A501280000601000000C205A1C080A06000BE -S31540015A6002800005130FE0007FFFADE89010201182 -S31540015A70130FE000921260017FFFF60A1100200029 -S31540015A8080A220001280000A1B000070C205A1C03E -S31540015A909A13601F190000108208400D98132004C4 -S31540015AA080A0400C02800005110FE0007FFFADD7BA -S31540015AB090102011110FE000C025A1C07FFFF5F91C -S31540015AC092100008030FE00080A200011280000638 -S31540015AD001000000C205A1C080A06000028000054F -S31540015AE0130FE0007FFFADC990102011130FE000A6 -S31540015AF0921260017FFFF5EB1100200080A2200089 -S31540015B001280000A1B000070C205A1C09A13601FD3 -S31540015B10190000108208400D9813200480A0400C03 -S31540015B20028000051B1000857FFFADB89010201143 -S31540015B301B100085921360E8C025A1C09007BFF0F5 -S31540015B407FFFF4DE9415215019100085C20320E829 -S31540015B50DA05215080A340018215215012800007A9 -S31540015B60981320E8DA006004C203200480A34001B0 -S31540015B70028006BA010000007FFFADA490102012FA -S31540015B801B100085921360D09007BFF07FFFF4CBC6 -S31540015B909415215019100085C20320D0DA052150F1 -S31540015BA080A340018215215012800007981320D00E -S31540015BB0DA006004C203200480A34001028006ACDF -S31540015BC0010000007FFFAD91901020129007BFF0B9 -S31540015BD09215E0C87FFFF4B994152150C205E0C87B -S31540015BE0DA05215080A34001821521501280000719 -S31540015BF09815E0C8DA006004C203200480A340017E -S31540015C00028006A0010000007FFFAD8090102012A7 -S31540015C101B100085921360B89007BFF07FFFF4A771 -S31540015C2094152150C20720B0DA05215080A34001C6 -S31540015C308215215012800007981720B0DA006004BF -S31540015C40C203200480A34001028006931B0000701A -S31540015C507FFFAD6E901020129007BFF0921660F054 -S31540015C607FFFF49694152150C205A1C01B00007018 -S31540015C708208400D1900002080A0400C21100144EB -S31540015C8002800004231000807FFFAD609010201237 -S31540015C9094142150C02461C09007BFE87FFFF48768 -S31540015CA09207BFF0DA042150C207BFE880A3400142 -S31540015CB01280000794142150DA02A004C207BFECF7 -S31540015CC080A34001028006DE010000007FFFAD4F48 -S31540015CD0901020120310008519100085901060E87D -S31540015CE0921320D87FFFF47594152150C20720B036 -S31540015CF0DA05215080A34001821521501280000708 -S31540015D00981720B0DA006004C203200480A3400142 -S31540015D10028006D01B0000707FFFAD3C9010201220 -S31540015D20C025A1C09007BFE89215E0C87FFFF46384 -S31540015D3094152150C205E0C8DA05215080A34001DF -S31540015D4082152150128000079815E0C8DA006004D8 -S31540015D50C203200480A34001028006C7010000005F -S31540015D607FFFAD2A901024991B100085921360B8CD -S31540015D709007BFE87FFFF45194152150C20720B028 -S31540015D80DA05215080A34001821521501280000777 -S31540015D90981720B0DA006004C203200480A34001B2 -S31540015DA0028006BA1B0000707FFFAD1890102012CA -S31540015DB09007BFE8921660F07FFFF440941521509A -S31540015DC0C205A1C01B0000708208400D19000020C9 -S31540015DD080A0400C21100144028000042310008061 -S31540015DE07FFFAD0A9010201294142150C02461C047 -S31540015DF09016E0E07FFFF4319207BFF0C206E0E083 -S31540015E00DA04215080A340019414215012800007E6 -S31540015E108216E0E0DA02A004C200600480A34001D9 -S31540015E20028006A4010000007FFFACF8901020120A -S31540015E309016E0E09207BFE87FFFF42094152150C9 -S31540015E40C20720B0DA05215080A3400182152150B6 -S31540015E5012800007981720B0DA006004C2032004BC -S31540015E6080A34001028006981B0000707FFFACE7CB -S31540015E7090102012C025A1C09016E0E09215E0C80E -S31540015E807FFFF40E94152150C205E0C8DA05215072 -S31540015E9080A3400182152150128000079815E0C861 -S31540015EA0DA006004C203200480A340010280068F09 -S31540015EB0010000007FFFACD5901020120310008531 -S31540015EC0921060B89016E0E07FFFF3FC94152150E4 -S31540015ED0C20720B0DA05215080A340018215215026 -S31540015EE012800007981720B0DA006004C20320042C -S31540015EF080A34001028006821B0000707FFFACC375 -S31540015F00901020129016E0E0921660F07FFFF3EBBE -S31540015F1094152150C205A1C01B0000708208400D96 -S31540015F201900002080A0400C211001440280000489 -S31540015F30231000807FFFACB590102012941421509D -S31540015F40C02461C09015E0C87FFFF3DC9207BFF023 -S31540015F50C205E0C8DA04215080A3400194142150BF -S31540015F60128000078215E0C8DA02A004C20060046C -S31540015F7080A340010280061E010000007FFFACA302 -S31540015F80901020129015E0C89207BFE87FFFF3CB2F -S31540015F9094152150C205E0C8DA05215080A340017D -S31540015FA082152150128000079815E0C8DA00600476 -S31540015FB0C203200480A340010280061201000000B2 -S31540015FC07FFFAC92901020129015E0C89216E0E047 -S31540015FD07FFFF3BA94152150C205E0C8DA05215076 -S31540015FE080A3400182152150128000079815E0C810 -S31540015FF0DA006004C203200480A340010280060641 -S31540016000010000007FFFAC81901020129015E0C87E -S31540016010921000087FFFF3A994152150C205E0C8EC -S31540016020DA05215080A340018215215012800007D4 -S315400160309815E0C8DA006004C203200480A3400139 -S31540016040028005FA010000007FFFAC70901020121B -S31540016050191000859015E0C8921320B87FFFF39779 -S315400160609415215003000070A610601FDA05A1C0E7 -S31540016070030000109A0B4013AA10601080A340152C -S315400160802510008523100144028000042110008060 -S315400160907FFFAC5E90102012C02421C09014A0B89E -S315400160A09207BFF07FFFF38594146150C20421C06B -S315400160B08208401380A040150280000401000000C0 -S315400160C07FFFAC5290102012C02421C09014A0B87A -S315400160D09207BFE87FFFF37994146150C20421C04F -S315400160E08208401380A04015028000040100000090 -S315400160F07FFFAC4690102012C02421C09014A0B856 -S315400161009216E0E07FFFF36D94146150C20421C002 -S315400161108208401380A040150280000513100085B7 -S315400161207FFFAC3A9010201213100085C02421C085 -S31540016130921260C89014A0B87FFFF3609414615026 -S31540016140C20421C08208401380A040150280000588 -S315400161509014A0B87FFFAC2D901020129014A0B8D7 -S31540016160C02421C0921000087FFFF354941461505B -S31540016170C20421C08208401380A040150280000459 -S31540016180010000007FFFAC2190102012C02421C0E5 -S315400161909014A0B8921660F07FFFF34894146150B2 -S315400161A0C20421C08330600E8208600380A0600271 -S315400161B0228000051103C0007FFFAC14901020120D -S315400161C01103C0007FFFF57F3B100084A417639045 -S315400161D0AA146150C02421C0A604A008A210200020 -S315400161E0B0102005A004401292044013941521508A -S315400161F07FFFF33290100010DA042010C2052150BF -S31540016200A204601880A3400112800007901020125A -S31540016210DA042014C205600480A34001028004749C -S31540016220010000007FFFABF901000000B0863FFF8F -S315400162303CBFFFEEA00440121110008590122020B1 -S31540016240920220087FFFF31D941521509817639001 -S31540016250C2052150DA0320A080A340011280000725 -S3154001626082152150DA0320A4C200600480A34001B4 -S31540016270028004DC1B0000707FFFABE4901020120B -S315400162801110008590122038C025A1C09202200825 -S315400162907FFFF30A9415215098176390C205215048 -S315400162A0DA0320B880A340011280000782152150ED -S315400162B0DA0320BCC200600480A340010280047F4F -S315400162C01B0000707FFFABD190102012111000858A -S315400162D090122050C025A1C0920220087FFFF2F7FC -S315400162E09415215098176390C2052150DA0320D0A6 -S315400162F080A340011280000782152150DA0320D481 -S31540016300C200600480A34001028004761B00007035 -S315400163107FFFABBE901020121110008590122068AD -S31540016320C025A1C0920220087FFFF2E494152150B6 -S3154001633098176390C2052150DA0320E880A34001F3 -S315400163401280000782152150DA0320ECC200600456 -S3154001635080A340010280046D1B0000707FFFABAB40 -S31540016360901020121110008590122080C025A1C0E6 -S31540016370920220087FFFF2D194152150981763901D -S31540016380C2052150DA03210080A340011280000793 -S3154001639082152150DA032104C200600480A3400122 -S315400163A0028004641B0000707FFFAB98901020129E -S315400163B0C025A1C0111010007FFFF3B013100000DB -S315400163C00310300080A20001128000060100000087 -S315400163D0C205A1C080A0600002800005111FE00037 -S315400163E07FFFAB8A90102012111FE00013100000AE -S315400163F07FFFF2B794152150031FFC00DA052150A7 -S3154001640080A340011280000A82152150C200600417 -S3154001641080A060001280000601000000C205A1C0F4 -S3154001642080A0600002800005111FE0007FFFAB776E -S315400164309010201B111FE000133000007FFFF2A4D3 -S3154001644094152150033FFC00DA05215080A34001F9 -S315400164501280000A82152150C200600480A06000AB -S315400164601280000601000000C205A1C080A06000A4 -S3154001647002800005111000007FFFAB649010201CC4 -S3154001648011100000921020107FFFF29194152150B7 -S31540016490C205A1C01B0000708208400D19000020F2 -S315400164A080A0400C2110014402800004231000808A -S315400164B07FFFAB569010201D94142150C02461C01B -S315400164C0110020007FFFF282130FC000DA04215031 -S315400164D0030E000080A340011280000A941421504B -S315400164E0C202A00480A060001280000601000000E4 -S315400164F0C20461C080A0600002800005111FDFFF59 -S315400165007FFFAB429010201E111FDFFF901223FF29 -S31540016510131000007FFFF26E941521500311FFFF07 -S31540016520821063FFDA05215080A3400112800007E3 -S3154001653082152150DA0060040338000080A340012F -S3154001654002800405010000007FFFAB309010201F40 -S31540016550111FD000130FF0007FFFF25D94152150FB -S315400165600311FC80DA05215080A340011280000A04 -S3154001657082152150C200600480A06000128000068E -S3154001658001000000C205A1C080A060000280000594 -S31540016590111FDFFF7FFFAB1D90102021111FDFFF71 -S315400165A0901223FF921000087FFFF2499415215063 -S315400165B00313FBFF821063FFDA05215080A34001DC -S315400165C01280000882152150DA0060040330000071 -S315400165D08210602080A34001028003E40100000094 -S315400165E07FFFAB0A901020207FFFF4761103C00095 -S315400165F0C025A1C09007BFE07FFFF244921521500C -S31540016600C207BFE0DA05215080A34001128000078E -S3154001661082152150DA006004C207BFE480A340011D -S31540016620028003D7010000007FFFAAF890102013D3 -S315400166301B100085901360E87FFFF23492152150BC -S3154001664003100085DA0060E8C205215080A0400DA4 -S31540016650191000858215215012800007901320E8F9 -S31540016660DA006004C202200480A34001028003C90B -S31540016670010000007FFFAAE5901020131B10008542 -S31540016680901360D07FFFF221921521501910008599 -S31540016690C20320D0DA05215080A340018215215042 -S315400166A012800007981320D0DA006004C203200448 -S315400166B080A34001028003BC010000007FFFAAD3F2 -S315400166C0901020131B100085901360D87FFFF20FA6 -S315400166D092152150C20720B0DA05215080A340010E -S315400166E08215215012800007981720B0DA00600405 -S315400166F0C203200480A34001028003B01B00007046 -S315400167007FFFAAC29010201303100085901060B835 -S31540016710C025A1C07FFFF1FD92152150C20720B0CF -S31540016720DA05215080A340018215215012800007CD -S31540016730981720B0DA006004C203200480A3400108 -S315400167400280040F1B0000707FFFAAB09010201337 -S31540016750C025A1C09015E0C87FFFF1EC92152150EC -S31540016760C2052150DA05E0C880A0400D82152150AE -S31540016770128000079015E0C8DA006004C2022004C6 -S3154001678080A3400102800407010000007FFFAA9F09 -S3154001679090102013170C00089A10200019100C00B5 -S315400167A015300F789612E001D83FBFF0D43FBFC0F5 -S315400167B09007BFF07FFFF1D59215215003100400D9 -S315400167C0DA05215080A340011280000A821521502A -S315400167D0C200600480A06000128000060100000033 -S315400167E0C205A1C080A06000028000059007BFC01D -S315400167F07FFFAA86901020139007BFC07FFFF1C389 -S3154001680092152150C2052150DA0720B080A0400DD3 -S315400168108215215012800007981720B0DA006004D3 -S31540016820C203200480A34001028003E31B000070E1 -S315400168307FFFAA7690102013901660F07FFFF1B388 -S3154001684092152150C205A1C08330600E82086003B3 -S3154001685080A0600202800004211000807FFFAA6BA5 -S3154001686090102013C02421C07FFFF2981111F2002D -S315400168700310E80080A2000112800006010000001A -S31540016880C20421C080A06000028000040100000013 -S315400168907FFFAA5E901020137FFFF3CA11100000FC -S315400168A01101F5897FFFF289901221E20308E9641B -S315400168B080A200011280000601000000C205A1C0AD -S315400168C080A0600002800004010000007FFFAA4F03 -S315400168D0901020237FFFF27D1112A208031141007F -S315400168E080A200011280000601000000C205A1C07D -S315400168F080A0600002800004010000007FFFAA43DF -S31540016900901020237FFFF3AF110010009007BFF0D6 -S31540016910921660F07FFFF1649415215003100C002C -S31540016920DA05215080A340011280000A82152150C8 -S31540016930C200600480A060001280000601000000D1 -S31540016940C205A1C080A0600002800005901660F0DB -S315400169507FFFAA2E90102014901660F09207BFC0B8 -S315400169607FFFF1569415215003200000DA0521508E -S3154001697080A340011280000A82152150C2006004A2 -S3154001698080A060001280000601000000C205A1C07F -S3154001699080A0600002800004010000007FFFAA1B66 -S315400169A0901020147FFFF19190102001030FE00019 -S315400169B080A200011280000601000000C205A1C0AC -S315400169C080A0600002800004010000007FFFAA0F42 -S315400169D0901020147FFFF17D90102001030FFC00E1 -S315400169E080A200011280000880A260001280000689 -S315400169F001000000C205A1C080A060000280000421 -S31540016A00010000007FFFAA01901020147FFFF36D63 -S31540016A101110100019100085D41B20D07FFFF1F909 -S31540016A20D01E60F003100085D03D2150DA0060D8B9 -S31540016A30C205215080A0400D1910008582152150B4 -S31540016A4012800007901320D8DA006004C2022004A5 -S31540016A5080A3400102800361010000007FFFA9EB92 -S31540016A60901020227FFFF357111000001704008079 -S31540016A70150F28009612E0F09A102000190FFC001D -S31540016A80D43FBFC0D83FBFF09007BFF09207BFC009 -S31540016A907FFFF10594152150030FFC00DA052150C3 -S31540016AA080A340011280000682152150C200600475 -S31540016AB080A0600002800004010000007FFFA9D38E -S31540016AC0901020157FFFF33F112000001700004072 -S31540016AD0150014009612E0019A102000190FFC00CF -S31540016AE0D43FBFC0D83FBFF09007BFF09207BFC0A9 -S31540016AF07FFFF0ED94152150030FFC00DA0521507C -S31540016B0080A340011280000682152150C200600414 -S31540016B1080A0600102800004010000007FFFA9BB44 -S31540016B20901020157FFFF327113000001700004019 -S31540016B30152014009612E0019A102000192FFC002E -S31540016B40D43FBFC0D83FBFF09007BFF09207BFC048 -S31540016B507FFFF0D594152150032FFC00DA05215013 -S31540016B6080A340011280000682152150C2006004B4 -S31540016B7080A0600102800004010000007FFFA9A3FC -S31540016B80901020157FFFF30F11100000190FFC0024 -S31540016B909A102000D83FBFF09007BFF09216E0E070 -S31540016BA07FFFF0C194152150C206E0E0DA0521507D -S31540016BB080A3400182152150128000079816E0E01B -S31540016BC0DA006004C203200480A34001028000046D -S31540016BD0010000007FFFA98D901020157FFFF2F97B -S31540016BE01120000017000040150014009612E00124 -S31540016BF0190FFC009A102000D43FBFC0D83FBFF008 -S31540016C009007BFF09216E0E07FFFF0A79415215060 -S31540016C10C206E0E0DA05215080A3400182152150E9 -S31540016C20128000079816E0E0DA006004C2032004EF -S31540016C3080A3400102800004010000007FFFA97388 -S31540016C40901020157FFFF2DF113000001700004041 -S31540016C50152014009612E0019A102000192FFC000D -S31540016C60D43FBFC0D83FBFF09007BFF09216E0E0D7 -S31540016C707FFFF08D94152150C2052150DA06E0E0E0 -S31540016C8080A0400D82152150128000079016E0E049 -S31540016C90DA006004C202200480A34001028000049D -S31540016CA0010000007FFFA959901020157FFFF2C512 -S31540016CB01110000015100000961020019A102001B5 -S31540016CC0190FFC00D43FBFC0D83FBFF09007BFF0BB -S31540016CD09207BFC07FFFF079941521500310000041 -S31540016CE0DA05215080A34001128000068215215009 -S31540016CF0C200600480A0600202800004010000001E -S31540016D007FFFA942901020157FFFF2AE11200000AF -S31540016D109007BFF09207BFC07FFFF06894152150DE -S31540016D2003100000DA05215080A3400112800006BD -S31540016D3082152150C200600480A0600302800004D5 -S31540016D40010000007FFFA931901020157FFFF29DC1 -S31540016D50113000009A102001192FFC00D83FBFF0D6 -S31540016D609007BFF09207BFC07FFFF05494152150A2 -S31540016D7003300000DA05215080A34001128000064D -S31540016D8082152150C200600480A060030280000485 -S31540016D90010000007FFFA91D901020157FFFF28999 -S31540016DA011100000150FFC04172F26159412A0127E -S31540016DB09612E231190FFEAE1B1CD2E89A136011EE -S31540016DC098132154D43FBFC0D83FBFF09007BFF0BE -S31540016DD09207BFC07FFFF04794152150030FFEA7CE -S31540016DE082106296DA05215080A340011280000884 -S31540016DF082152150DA006004032C1B348210602F67 -S31540016E0080A3400102800004010000007FFFA8FF2B -S31540016E10901020157FFFF26B112000009007BFF004 -S31540016E209207BFC07FFFF03394152150030FFEA791 -S31540016E3082106296DA05215080A340011280000833 -S31540016E4082152150DA006004032C1B348210603015 -S31540016E5080A3400102800004010000007FFFA8EBEF -S31540016E60901020157FFFF25711300000192FFC04B6 -S31540016E701B2F26159A13623198132012D83FBFC093 -S31540016E809007BFF09207BFC07FFFF01A94152150BB -S31540016E90032FFEA782106296DA05215080A3400196 -S31540016EA01280000882152150DA006004032C1B343D -S31540016EB08210603080A3400102800004010000007E -S31540016EC07FFFA8D2901020157FFFF23E11100000DF -S31540016ED015101000961020009A1020001910380045 -S31540016EE0D43FBFC0D83FBFF09007BFF09207BFC0A5 -S31540016EF07FFFF0009415215003102400DA0521503C -S31540016F0080A340011280000682152150C200600410 -S31540016F1080A0600002800004010000007FFFA8BB42 -S31540016F20901020157FFFF227112000009007BFF037 -S31540016F309207BFC07FFFEFEF941521500310240045 -S31540016F40DA05215080A340011280000682152150A6 -S31540016F50C200600480A060000280000401000000BD -S31540016F607FFFA8AA901020157FFFF216113000006E -S31540016F709007BFF09207BFC07FFFEFDE9415215007 -S31540016F8003102400DA05215080A340011280000637 -S31540016F9082152150C200600480A060000280000476 -S31540016FA0010000007FFFA899901020157FFFF20590 -S31540016FB011100000210FE000110020007FFFF0B901 -S31540016FC09214200180A220001280012301000000BA -S31540016FD07FFFF1FC11200000110020007FFFF0B17E -S31540016FE09214200180A220001280011801000000A5 -S31540016FF07FFFF1F411300000921420017FFFF0A9C8 -S315400170001100200080A220001280010D0100000025 -S315400170107FFFF1EC111000009A102000190FFC00BF -S31540017020D83FBFF09007BFF07FFFEFB892152150D0 -S31540017030C207BFF0DA05215080A340011280000744 -S3154001704082152150DA006004C207BFF480A34001D3 -S31540017050028002A7010000007FFFA86C9010201556 -S315400170607FFFF1D8112000009007BFF07FFFEFA707 -S3154001707092152150C207BFF0DA05215080A3400185 -S315400170801280000782152150DA006004C207BFF45E -S3154001709080A340010280029B010000007FFFA85BA4 -S315400170A0901020157FFFF1C7113000009007BFF007 -S315400170B07FFFEF9692152150C207BFF0DA052150A6 -S315400170C080A340011280000782152150DA00600436 -S315400170D0C207BFF480A340010280028F0100000075 -S315400170E07FFFA84A901020157FFFF1B611100000CE -S315400170F0030FDFFF901063FF7FFFF074A0100008BD -S3154001710080A2001002800004010000007FFFA83F1A -S31540017110901020157FFFF1AB112000007FFFF06B2F -S3154001712090100010030FE00080A2000102800004CD -S31540017130010000007FFFA835901020157FFFF1A1C7 -S31540017140113000007FFFF0619010001080A2001006 -S3154001715002800004010000007FFFA82C901020153A -S315400171607FFFF198901020007FFFF060901521502D -S31540017170032FFE00DA05215080A34001128000064C -S3154001718082152150C200600480A060000280000583 -S31540017190211001447FFFA81D9010201621100144A3 -S315400171A07FFFF05C90142158DA042158032FF00038 -S315400171B080A3400102800004A21421587FFFA81336 -S315400171C0901020167FFFF05D90100011DA042158CF -S315400171D0030FE00080A3400102800004010000008B -S315400171E07FFFA80A901020167FFFF064901521506A -S315400171F0030FFBF7821063F0DA05215080A34001AB -S315400172001280000882152150DA0060040303FF1240 -S315400172108210604A80A3400102800005921660F008 -S315400172207FFFA7FA90102016921660F09007BFF0E4 -S315400172307FFFEF3094152150C205A1C08330600E07 -S315400172408208600780A06002028000051910004B89 -S315400172507FFFA7EE901020171910004B17100080E2 -S31540017260DA02E1C8821322F880A0400DE00322F839 -S3154001727002800004A212E1C87FFFA7E49010201803 -S31540017280C204600480A04010028000040100000096 -S315400172907FFFA7DE90102018C204600880A060001E -S315400172A01280007701000000C204600C80A06000DB -S315400172B01280006C010000007FFFEEE60100000035 -S315400172C080A220010280019801000000190C40298A -S315400172D01B23CD1B9A13609B981320069410200004 -S315400172E096102000D83FBFF0D43FBFC07FFFEF2F9D -S315400172F09007BFF003100083A21062101B1000819B -S3154001730003100144A0136210A4106150B010200074 -S31540017310832E2002DA044001DA27BFC09007BFC09E -S315400173207FFFEF25921521509B2E2003D804000D97 -S31540017330C2052150B00620019603401080A30001EA -S315400173401280000790102019DA02E004C204A0045A -S3154001735080A340010280000580A620FF7FFFA7ABE6 -S315400173600100000080A620FF04BFFFEB832E200210 -S3154001737003100083A41062101B1000800310014407 -S31540017380A2136210A6106150B0102000A12E200257 -S31540017390C2048010C227BFC0921521507FFFEEDB89 -S315400173A09007BFC0DA044010C2052150B006200242 -S315400173B09804001180A34001128000079010201A02 -S315400173C0DA032004C204E00480A3400102800005E0 -S315400173D080A620FF7FFFA78D0100000080A620FF29 -S315400173E024BFFFECA12E200230800211C205A1C0AC -S315400173F080A0600022BFFB8FB0863FFF30BFFB8A73 -S31540017400C205A1C080A0600002BFF1450100000095 -S3154001741030BFF141C205A1C080A0600002BFF13674 -S315400174200100000030BFF132C205A1C080A060005A -S3154001743002BFF1270100000030BFF1237FFFA77390 -S315400174409010201530BFFEF37FFFA77090102015D6 -S3154001745030BFFEE87FFFA76D9010201530BFFEDDDF -S315400174607FFFA76A9010201830BFFF947FFFA76760 -S315400174709010201010BFF678111000847FFFA7638B -S315400174809010201830BFFF89C207BFCC80A0600092 -S3154001749012BFF8F501000000C20421C08208401560 -S315400174A09A16A00880A0400D12BFF8EF0100000017 -S315400174B010BFF8F015108683C205A1C09A13601F4C -S315400174C0190000108208400D9813200880A0400C36 -S315400174D012BFFB7D1110008510BFFB7F901220501B -S315400174E0C205A1C09A13601F190000108208400D01 -S315400174F09813200880A0400C12BFFB86111000850E -S3154001750010BFFB8890122068C205A1C09A13601F64 -S31540017510190000108208400D9813200480A0400CE9 -S3154001752012BFFB8F1110008510BFFB919012208076 -S31540017530C205A1C09A13601F190000108208400DB0 -S315400175409813200880A0400C12BFFB980100000050 -S3154001755030BFFB98C205A1C080A0600002BFFBFE00 -S31540017560111FD00030BFFBF9C205A1C080A0600049 -S3154001757002BFFC1E0100000030BFFC1AC205A1C0BB -S3154001758080A0600002BFFC2C1B10008530BFFC2789 -S31540017590C205A1C080A0600002BFFC3A1B10008555 -S315400175A030BFFC35C205A1C080A0600002BFFC47C8 -S315400175B01B10008530BFFC42C205A1C09A13601F53 -S315400175C0190000108208400D9813201080A0400C2D -S315400175D012BFFC4C0310008510BFFC4E901060B8E2 -S315400175E0C205A1C09A13601F190000108208400D00 -S315400175F09813200480A0400C12BFFB201110008577 -S3154001760010BFFB2290122038C205A1C080A06000A5 -S3154001761022BFF8D0150FFFFF30BFF8CBC205A1C07E -S3154001762080A0600002BFF8100310008530BFF80B40 -S31540017630C205A1C09A13601F190000108208400DAF -S315400176409813201080A0400C12BFF8169015E0C880 -S3154001765010BFF818921660F0C205A1C080A0600064 -S3154001766002BFF9491B10008530BFF944C205A1C0CC -S3154001767080A0600002BFF9579007BFF030BFF952B2 -S31540017680C205A1C080A0600002BFF9631B1000853E -S3154001769030BFF95EC205A1C09A13601F19000010E0 -S315400176A08208400D9813201080A0400C12BFF96942 -S315400176B09007BFF010BFF96B921660F0C20461C02B -S315400176C080A0600002BFF74B1B10008530BFF74614 -S315400176D0C205A1C080A0600002BFF75A9016E0E043 -S315400176E030BFF755C205A1C09A13601F190000109B -S315400176F08208400D9813201080A0400C12BFF75FFE -S315400177000100000030BFF75FC205A1C080A0600044 -S3154001771002BFF76F1B10008530BFF76AC205A1C0D3 -S315400177209A13601F190000108208400D981320100B -S3154001773080A0400C12BFF7750100000030BFF775FD -S31540017740C20461C080A0600002BFF7949015E0C8F2 -S3154001775030BFF78FC205A1C080A0600002BFF7A06D -S315400177609015E0C830BFF79BC205A1C080A060005C -S3154001777002BFF7AC9015E0C830BFF7A7C205A1C05C -S315400177809A13601F190000108208400D98132010AB -S3154001779080A0400C12BFFBED0100000030BFFBEDA5 -S315400177A0C205A1C080A0600002BFFBFC170C000807 -S315400177B030BFFBF7C205A1C09A13601F1900001024 -S315400177C08208400D9813201080A0400C12BFFC196E -S315400177D0901660F030BFFC1AC205A1C080A06000BF -S315400177E002BFFCA10100000030BFFC9DC20461C084 -S315400177F080A0600002BFF9E59015E0C830BFF9E00E -S31540017800C205A1C080A0600002BFF9F19015E0C891 -S3154001781030BFF9ECC205A1C080A0600002BFF9FDEE -S315400178209015E0C830BFF9F8C205A1C080A060003C -S3154001783002BFFA091910008530BFFA04C20461C0BB -S3154001784080A0600002BFF9250310008530BFF920F2 -S31540017850C205A1C09A13601F190000108208400D8D -S315400178609813201080A0400C12BFF92C0100000093 -S3154001787030BFF92CC205A1C080A0600002BFF93C0F -S315400178801B10008530BFF937C205A1C09A13601F8E -S31540017890190000108208400D9813201080A0400C5A -S315400178A012BFF9429007BFE810BFF944921660F043 -S315400178B0C20461C080A0600002BFF95F9016E0E09B -S315400178C030BFF95AC205A1C09A13601F19000010B2 -S315400178D08208400D9813201080A0400C12BFF96415 -S315400178E00100000030BFF964C205A1C080A060005C -S315400178F002BFF9740310008530BFF96FC205A1C0FC -S315400179009A13601F190000108208400D9813201029 -S3154001791080A0400C12BFF97A9016E0E010BFF97CC6 -S31540017920921660F07FFFA6399010201910BFFE69AC -S31540017930190C4029D80061C01B0000709A13601FC2 -S3154001794003000010980B000D8210600880A300010F -S3154001795012BFF5501110008410BFF55290122360EA -S31540017960C205A1C09A13601F190000108208400D7C -S315400179709813200480A0400C12BFF55811100084C2 -S3154001798010BFF55A90122378C205A1C09A13601F01 -S31540017990190000108208400D9813200480A0400C65 -S315400179A012BFF5600100000030BFF560C205A1C0FD -S315400179B080A0600002BFF4A90310008530BFF4A483 -S315400179C0C205A1C080A0600002BFF4939015E0C833 -S315400179D030BFF48EC205A1C080A0600002BFF47D15 -S315400179E09015E0C830BFF478C20461C080A0600041 -S315400179F002BFF4679015E0C830BFF462C205A1C06A -S31540017A009A13601F190000108208400D9813200236 -S31540017A1080A0400C12BFF5B61B10008510BFF5B80B -S31540017A20921360D0C205A1C080A0600002BFF5C517 -S31540017A309007BFF030BFF5C0C205A1C080A060006D -S31540017A4002BFF5D10310008530BFF5CCC205A1C0F8 -S31540017A509A13601F190000108208400D98132010D8 -S31540017A6080A0400C12BFF5D79007BFF010BFF5D9E3 -S31540017A70921660F0C20461C080A0600022BFF5F397 -S31540017A801910008530BFF5EEC205A1C09A13601FDB -S31540017A90190000108208400D9813201080A0400C58 -S31540017AA012BFF5F91B10008510BFF5FB03100085C9 -S31540017AB0C205A1C080A0600002BFF60B9007BFE8D7 -S31540017AC030BFF606C205A1C080A0600002BFF6170E -S31540017AD01B10008530BFF612C20421C080A0600091 -S31540017AE022BFF03E113C02AF30BFF039C205A1C002 -S31540017AF080A0600002BFFD5B0100000030BFFD5762 -S31540017B00C205A1C080A0600002BFFD670100000060 -S31540017B1030BFFD63C205A1C080A0600002BFFD73F6 -S31540017B200100000030BFFD6FC205A1C080A060000A -S31540017B3002BFF2D70310008530BFF2D2C205A1C001 -S31540017B4080A0600002BFF2C19007BFF030BFF2BC17 -S31540017B50C205A1C080A0600002BFF2AA371000850D -S31540017B6030BFF2A5C205A1C080A0600002BFF028C7 -S31540017B701111FC0030BFF023C205A1C09A13601F4A -S31540017B80190000108208400D9813201080A0400C67 -S31540017B9012BFF3DD9016E0E010BFF3DF921660F0FE -S31540017BA0C205A1C080A0600002BFF39E1B100085E4 -S31540017BB030BFF399C205A1C080A0600002BFF38621 -S31540017BC01B10008530BFF381C205A1C080A06000B3 -S31540017BD002BFF36E1B10008530BFF369C20461C05A -S31540017BE080A0600002BFF3589016E0E030BFF35327 -S31540017BF0C205A1C080A0600002BFF30E1910008526 -S31540017C0030BFF309C205A1C080A0600002BFF2F8EF -S31540017C109007BFE830BFF2F3C20461C080A06000A4 -S31540017C2002BFF2E29007BFE830BFF2DD81C7E0084C -S31540017C3081E80000D27A000081C3E008010000001B -S31540017C4081C3E008900A20209332600492126001B9 -S31540017C508213C0007FFFFFF89E1040000100000024 -S31540017C6081D8200081C3E008010000009DE3BF9850 -S31540017C707FFFFFFC0100000082102400C0A04300EA -S31540017C8081C7E00881E80000833220189A10000875 -S31540017C908088600F028000049010200083336010BA -S31540017CA09008600381C3E008010000009DE3BF988E -S31540017CB0031000C01B1000C1B0106000A213600089 -S31540017CC0031000C21B1000C2A4106000A61361007D -S31540017CD0031000201B100020A8106158AA13600051 -S31540017CE07FFFEBAD9010200C808A2008028001FDB9 -S31540017CF0010000007FFFA5409010200ED080032098 -S31540017D007FFFFFE2010000000310014380A2200231 -S31540017D10028000C6D02060D480A22002148000E4F4 -S31540017D2080A2200380A22001028000D18210201966 -S31540017D30331000A02F1000A0391000A0371000A06A -S31540017D40351000A07FFFFFC7210100007FFFFFC85C -S31540017D50BA04A00C921000117FFFFFBC90100018CE -S31540017D60921000117FFFFFB9900620049010001178 -S31540017D707FFFFFB19210200ADA0660141108000055 -S31540017D80913A000DC205E010900A0001912A2002A5 -S31540017D9013008000900200117FFFFFA79212600A34 -S31540017DA0DA06601411100000913A000DC205E01088 -S31540017DB0900A0001912A2002900200117FFFFF9E46 -S31540017DC09214208EDA066014111C0000913A000DBF -S31540017DD0C205E010900A0001912A20021301C00059 -S31540017DE0900200117FFFFF949212608E9334A0049B -S31540017DF09004600C7FFFFF90921260019214201E46 -S31540017E007FFFFF8D9004A0089010001D7FFFFF8A21 -S31540017E10921020009334E004921260017FFFFF86A6 -S31540017E209004A004111000C2901221087FFFFF8226 -S31540017E3092102000031000E0A0106000933420044B -S31540017E40111000C2901221047FFFFF7B9212601A2B -S31540017E5003048D1582106278C2242004111000E0BB -S31540017E6015100120C0222000A2102003AC12A00050 -S31540017E70A004E00C90047FFD40000A739210200399 -S31540017E801B100143C20360D48200600C932A000197 -S31540017E909202401693326004901000107FFFFF66F5 -S31540017EA09212601EA204600180A4600A04BFFFF220 -S31540017EB0A0042004C206E008D807200C820860010D -S31540017EC08328400CD605E010111000E0D406A0002E -S31540017ED0DA06601498122000960AE003972AC00D2C -S31540017EE0920AA002111000A0DA022004940AA0010D -S31540017EF0952A800D932A400D1B1000209612C00131 -S31540017F00E8236150030100001B0076418210601E88 -S31540017F109A1361C09212C00999332004C2252004E4 -S31540017F20DA2520089612C00A9E13200E9135600468 -S31540017F301B1000C2031000C2821061049012201E61 -S31540017F40953620049813201E9A136108D625202CB5 -S31540017F50D8252010D025201CD2252020DE252028FA -S31540017F60D6252014940ABFF0FA250000DA252018F8 -S31540017F70C2252024C225200CA2102100D4A44320CE -S31540017F80C2800320D88443209A102001A0102200E9 -S31540017F90DAA40320D884032082102000C2A403203F -S31540017FA0DAA0032081D820007FFFC019010000001C -S31540017FB0C2800320E2844320E0840320DA05E010F6 -S31540017FC0D6066014C206E0089A0B60039B2B400B51 -S31540017FD082086001D407200CD806A000111000A029 -S31540017FE08328400A980B2001D60220049A134001A7 -S31540017FF0992B000B9A13400CC203400080A06000ED -S3154001800012800008821360041B048D15D8004000BD -S315400180109A13627880A3000D02800038C205E010F1 -S3154001802010800000010000008210201A331000A0C9 -S31540018030C22660149810203F2F1000A0391000A0CE -S31540018040351000A09A1020148210200E151000A0A1 -S31540018050371000A0DA27200CC222A004D826A0009F -S31540018060D825E01010BFFF38D826E0089A10207FA7 -S31540018070331000A02F1000A0C2266014DA25E010AC -S315400180809810203F391000A0351000A0821020130F -S315400180909A10200D111000A0371000A0C227200C05 -S315400180A0DA22200410BFFFF0D826A00012BFFF221B -S315400180B0331000A08210201CC22660149A1020158D -S315400180C08210207F391000A0371000A0DA27200C3B -S315400180D0C226E0089810200F2F1000A0351000A0EE -S315400180E01B1000A08210203FD8236004C226A000A6 -S315400180F010BFFF15D825E010DA06E008D80660144F -S31540018100820860039A0B6002D607200C8328400C34 -S315400181109B2B400B8210400DD80040001B100000E5 -S31540018120C203400080A3000102800004D406E00897 -S315400181301080000001000000C205E010980AA0016D -S31540018140D207200CD6066014820860038328400BB0 -S31540018150992B0009940AA0039810400CDA06A00056 -S31540018160111000A0952A80099A0B6001D6022004BD -S315400181708210400AC20040009B2B400B9813000D11 -S315400181800321D9509813200482106321C223000091 -S31540018190DA03000080A3400102800004C206E00821 -S315400181A01080000001000000D407200CDA05E01021 -S315400181B082086001D60660148328400A9A0B600340 -S315400181C0D806A0009B2B400B151000A0D602A00498 -S315400181D0980B20019A134001992B000B9813400CE0 -S315400181E08210000C05048D158410A278072AF37BB2 -S315400181F08610E301C4384000C438400003048D159D -S31540018200DA0300008210627880A3400102800004F4 -S315400182108213200410800000010000001B2AF37B1A -S31540018220D80040009A13630180A3000D12BFFFFAE4 -S31540018230C205E010D6066014D806E008820860033D -S31540018240D407200C8328400B980B2001DA06A000A6 -S31540018250111000A0992B000A9A0B6003D602200444 -S315400182608210400C9B2B400B15100143A010400D72 -S31540018270F002A0D4A2102003E0240000C0A00220F6 -S31540018280921020034000097090047FFD8206200C65 -S3154001829098102001912A0001992B00011B10012001 -S315400182A09610000182136000DA02000180A340109B -S315400182B0A204600112800087A004000C80A4600A19 -S315400182C024BFFFEFE0240000C0A0022003100120DC -S315400182D0A810000BAA106000A0102000A2102003D5 -S315400182E090047FFD4000095892102003832C6002C0 -S315400182F0912A0014DA04C00190020015820B6060D5 -S315400183009132200480A000019012201EA04000104E -S315400183109A0B7F9F900A3F9F80A340081280006F6F -S31540018320A204600180A4600A24BFFFEF90047FFD90 -S3154001833080A4200012800004C205E01010800000D5 -S3154001834001000000D6066014D806E00882086003E2 -S31540018350D407200CDA06A000111000A08328400B98 -S31540018360980B2001992B000AD60220049A0B600231 -S315400183708210400C9B2B400BAA10400D9FC540001C -S315400183800100000082102400C0A04300C0A00220CA -S31540018390A0102000A21020039B2C6002C204C00D35 -S315400183A08208606080A00001A0400010A204600124 -S315400183B080A4600A24BFFFFA9B2C600280A4200897 -S315400183C022800004D004E004108000000100000077 -S315400183D0808A204002800007010000007FFFFE19CD -S315400183E00100000080A2200012800004010000006C -S315400183F010800000010000007FFFFE12D004A0089B -S3154001840080A22000128000040100000010800000BC -S31540018410010000007FFFFE0BD004E00880A220008F -S3154001842012800004010000001080000001000000DD -S3154001843083480000842860808188A00001000000F4 -S315400184400100000001000000D806E008D407200C16 -S31540018450DA05E010980B2001D6066014992B000A24 -S315400184609A0B6003C206A0009B2B400B151000A07F -S31540018470D602A004820860018328400B9A13400C5F -S315400184809A1340019A136004C203400092102004DB -S3154001849091D02002010000007FFFBEDD01000000F7 -S315400184A0981020009A102200D8A343208210200160 -S315400184B0C2A34320D8A3432003100000DA8043809F -S315400184C0DAA04380D8A0032081D82000308000055F -S315400184D01080000001000000108000000100000033 -S315400184E081C7E00891E820009DE3BF98400007D18D -S315400184F001000000808A21000280003F0100000047 -S315400185007FFFA35101000000912A20047FFFA33A77 -S31540018510900220050310014082106048DA00600491 -S3154001852080A360002280001503100140B0100001B5 -S31540018530C20600009B38601F81836000DA06200472 -S3154001854001000000010000008278400DDA06200893 -S31540018550B006200C80A0400D02800004901020013E -S315400185607FFFA32A01000000C206200480A060000C -S3154001857012BFFFF00310014082106000DA00600470 -S3154001858080A360000280001501000000B0100001C8 -S31540018590C206000081800000DA06200401000000C6 -S315400185A0010000009A70400D8210000DDA06200885 -S315400185B0B006200C80A0400D0280000490102002DD -S315400185C07FFFA31201000000C206200480A06000C4 -S315400185D012BFFFF001000000400008240100000026 -S315400185E080A2200012800004010000007FFFA30743 -S315400185F09010200381C7E00891E820009DE3BF98D1 -S315400186007FFFA31101000000912A20047FFFA2FAF7 -S3154001861090022004400007890100000080A2212326 -S3154001862002800004010000007FFFA2F890102001A3 -S315400186304000078001000000808A21000280002B53 -S315400186400310014082106184DA00600880A360094A -S315400186500280001101000000B0100001C2060000B6 -S31540018660DA062004D80620088258400DB006200CB0 -S3154001867080A0400C02800004901020027FFFA2E3FC -S3154001868001000000C206200880A0600912BFFFF465 -S3154001869001000000400007760100000080A2200092 -S315400186A00280000F01000000400007620100000047 -S315400186B0808A22000280000D010000004000079ED2 -S315400186C00100000080A22000128000080100000085 -S315400186D07FFFA2CE90102004308000047FFFA2CB02 -S315400186E09010200330BFFFF181C7E00891E82000D8 -S315400186F09DE3BFA094102000111000619012232425 -S315400187001310006192126328171000619612E3302C -S31540018710191000619813233493C2000081C24000AE -S315400187201080019181C2C00081C300001080018E7A -S315400187309402A0019402A00180A2A0031280018AA2 -S3154001874001000000874400008D30E00E8C89A007AF -S3154001875080A1A000028000C701000000AF30E00BFD -S31540018760AE0DE00780A5E000128000C201000000C6 -S3154001877080A1A002128000350100000025100000F2 -S31540018780E41C80002510000029100000A8152104D2 -S31540018790A6100012AA100012AC100014A1802046A7 -S315400187A0A4100000AA10000001000000A180204E84 -S315400187B0A810210001000000A18000000100000076 -S315400187C001000000E83CA03082A4801312800166BB -S315400187D082A500161280016401000000010000001C -S315400187E001000000874400008D30E00B8C89A00712 -S315400187F08CA1A0051280015CA1800000010000004F -S315400188000100000001000000E81CA03082A500160E -S315400188101280015582A54012A41000001280015217 -S315400188200100000001000000874400008D30E00B8C -S315400188308C89A0078CA1A0031280014B0100000086 -S315400188401080008C0100000080A1A001128000234D -S3154001885025100000E41C80002510000029100000AE -S31540018860A8152104A6100012AA100012AC1000147B -S31540018870A1802046A4100000AA10000001000000BB -S31540018880A180204EA810210001000000A180000017 -S31540018890010000000100000001000000E83C8000EA -S315400188A082A480131280013082A500161280012E07 -S315400188B00100000001000000874400008D30E00BFC -S315400188C08C89A0078CA1A00212800127010000001B -S315400188D0108000680100000080A1A003128000659D -S315400188E0A6100000A210200EA1844000A610000090 -S315400188F0A1800000A814E000AB4400000100000084 -S31540018900AC14E00001000000AF44000080A5200047 -S3154001891012800115AA8D6E0080A5400012800112B9 -S3154001892080A5A00012800110AF35E00BAE0DE00727 -S3154001893080A5E0011280010C01000000A01000009A -S31540018940A1844000A6100000A1800000E8180000A4 -S31540018950AC100000AE100000EC04C000EE04E004D0 -S3154001896080A500161280010080A54017128000FEE6 -S3154001897001000000A5440000A534A00BA40CA007EB -S3154001898080A4A001128000F801000000A0100000A0 -S31540018990A1844000A6100000A1800000A210200A78 -S315400189A0A1844000A4100000A1800000E818000046 -S315400189B0AC100000AE100000EC04C012EE04E0045E -S315400189C080A50016128000E880A54017128000E6B7 -S315400189D001000000A5440000A534A00BA40CA0078B -S315400189E080A4A002068000E00100000021100140A1 -S315400189F0A0142200EC1C0000A0042008E81C000082 -S31540018A00A1844000A6100000A1800000A210200E03 -S31540018A10A1844000A4100010AC100000AE1000006C -S31540018A20A18000000100000001000000EC3C801321 -S31540018A30AC100000AE100000E81CC01280A5001664 -S31540018A40128000C980A54017128000C701000000AE -S31540018A50A5440000A534A00BA40CA00780A4A00443 -S31540018A60128000C1010000001080000201000000D8 -S31540018A708B4440008A09601F80A160010280000A80 -S31540018A808C1000059DE3BFA08AA1600116BFFFFEC1 -S31540018A900100000081E800008CA1A00116BFFFFE85 -S31540018AA0010000000100000001000000A023A08099 -S31540018AB0A02C20078E100010A3480000E2240000DD -S31540018AC0C2242004C43C2008C83C2010CC3C2018B9 -S31540018AD0F03C2020F43C2028F83C2030FC3C203857 -S31540018AE0D03C2040D43C2048D83C2050DC3C205847 -S31540018AF0A5500000E4242060801020088210200147 -S31540018B008410200286102003881020048A10200534 -S31540018B108C10200681900000A42C601F818C80005F -S31540018B200100000001000000010000000300404078 -S31540018B3082106101841000008610000089444000C3 -S31540018B408809201F86100004A010000284004002FC -S31540018B50A210000284004002A410000284004002D8 -S31540018B60A610000284004002A810000284004002C0 -S31540018B70AA10000284004002AC10000284004002A8 -S31540018B80AE100002840040029010000284004002B0 -S31540018B9092100002840040029410000284004002B8 -S31540018BA096100002840040029810000284004002A0 -S31540018BB09A100002840040029C1000028400400288 -S31540018BC09E1000028400400281E0000086A0E00180 -S31540018BD016BFFFDE01000000030040408210610124 -S31540018BE0841000008610000480A400021280003F19 -S31540018BF08400400280A440021280003C840040026E -S31540018C0080A48002128000398400400280A4C00200 -S31540018C10128000368400400280A500021280003393 -S31540018C208400400280A54002128000308400400248 -S31540018C3080A580021280002D8400400280A5C002DA -S31540018C401280002A8400400280A20002128000277E -S31540018C508400400280A24002128000248400400227 -S31540018C6080A28002128000218400400280A2C002BC -S31540018C701280001E8400400280A300021280001B65 -S31540018C808400400280A34002128000188400400202 -S31540018C9080A38002128000158400400280A3C00296 -S31540018CA0128000128400400281E0000086A0E001AB -S31540018CB016BFFFCE0100000080A020001280000BED -S31540018CC080A0FFFF1280000980A160051280000785 -S31540018CD080A1A0061280000501000000A010000737 -S31540018CE010800006C0242020A0100007901020010B -S31540018CF010800002D024202082100007C4004000CA -S31540018D008188800001000000010000000100000090 -S31540018D10C4186008C8186010CC186018F018602094 -S31540018D20F4186028F8186030FC186038D018604094 -S31540018D30D4186048D8186050DC186058E400606068 -S31540018D40C20060048194800001000000010000001F -S31540018D5001000000A0100007F004202081C7E008B0 -S31540018D6081E8000010BFFFFCB010000001000000C8 -S31540018D7081D8200081C3E008010000001B10014496 -S31540018D80D8036180821020018328400C1B100144C6 -S31540018D9082007FFFD803618482084008932A400CF1 -S31540018DA0900040098213C0007FFFE77F9E1040007C -S31540018DB0010000001B100144D8036180821020018C -S31540018DC08328400C1B10014482007FFFD803618435 -S31540018DD0932A400C82084008900040099210000AEC -S31540018DE08213C0007FFFE7729E1040000100000021 -S31540018DF01B100144D8036180821020018328400C56 -S31540018E001B10014482007FFFD8036184932A400CE2 -S31540018E1082084008900040099210000A8213C0005F -S31540018E207FFFE7679E104000010000001B100144D0 -S31540018E30D8036180821020018328400C1B10014415 -S31540018E4082007FFFD803618482084008932A400C40 -S31540018E50900040098213C0007FFFE7579E104000F3 -S31540018E60010000001B100144D803618C82102001CF -S31540018E708328400C1B10014482007FFFD803619C6C -S31540018E80932A400C82084008900040099210000A3B -S31540018E908213C0007FFFE74E9E1040000100000094 -S31540018EA01B100144D803618C821020018328400C99 -S31540018EB01B10014482007FFFD803619C932A400C1A -S31540018EC082084008900040099210000A8213C000AF -S31540018ED07FFFE7439E104000010000009DE3BF581D -S31540018EE02D100144A2102000C205A19080A440018A -S31540018EF01680001BA01020002B10014429100144AC -S31540018F0027100144A4102001D005618C912C8008C2 -S31540018F10C205219C90023FFF832C0001900A001854 -S31540018F207FFFE72990020001C204E17C901E000800 -S31540018F30900A000180A00008A2647FFFA0042001DE -S31540018F40C205A19080A4000126BFFFF1D005618C26 -S31540018F5080A4600012800003B0102000B0102001F0 -S31540018F6081C7E00881E800001B100144D803618CE9 -S31540018F70821020018328400C1B10014482007FFF90 -S31540018F80D803619C82084008932A400C900040090E -S31540018F908213C0007FFFE70C9E10400001000000D5 -S31540018FA01B100144D803618C821020018328400C98 -S31540018FB01B10014482007FFFD803619C8208400850 -S31540018FC0932A400C900040098213C0007FFFE702BC -S31540018FD09E10400001000000952AA00D03280000C4 -S31540018FE094028009D02040009422B000D42060042D -S31540018FF081C3E00801000000033FFFBF821062F811 -S315400190009DE38001193FFFBF94132368B407BFF85E -S315400190100310004A9606800A82106120C222E00CA3 -S315400190200310004A821060E0C222E0041B10004A8D -S315400190309A1360C0033FFFBFDA26800A901323804C -S315400190403310004A8210635C94068008981323C04B -S31540019050921661008200401ED222E008D4204000D0 -S31540019060B006800C7FFFA064901020067FFFE6CA01 -S3154001907090102000920A3FF07FFFE6C99010200031 -S31540019080210000307FFFE6C490102000808A001046 -S3154001909012BFFFFD010000007FFFFF3621000030B7 -S315400190A07FFFE6BD90102000808A001012BFFFFDB1 -S315400190B0010000007FFFE6B8901020000300204029 -S315400190C08210600F921200017FFFE6B590102000DA -S315400190D07FFFE6B19010200821100144D024217869 -S315400190E07FFFE6AD9010200CA73A2010993A201444 -S315400190F0A60CE007980B200FDA042178A823001369 -S31540019100A80520089F3B6014933B60109B3B601869 -S3154001911094050013A2102001AC03200A9E0BE00F18 -S3154001912096102400AE0B60039402A0022120000099 -S31540019130992AC00C1B1001448203E00A952C400A6F -S315400191409424000A832C4001D8236198A02400016D -S315400191501B10014403100144EC23618C972AC00F74 -S31540019160AA03E00A1B100144D6206174031001448E -S31540019170EA236184EA2061801B1001440310014403 -S31540019180D423617C920A6007A53A2018D0206188D1 -S31540019190153FFFBF932C4009A40CA00303100144C3 -S315400191A09412A358932C4009A404A00139100144F8 -S315400191B037100144EC20619C9B2C40149402801E84 -S315400191C0E0272194E426E190AA027FFFDA2280007B -S315400191D0AC85E0010280000CBB2C4013033FFFBF6E -S315400191E082106368A0068001A4100016D004000016 -S315400191F09FC20000A0042004A484BFFF32BFFFFD2C -S31540019200D00400007FFFE66490102000920A3FFCE4 -S315400192107FFFE66390102000A410200080A48016F2 -S3154001922016800022A2102000033FFFBFAE106368E4 -S31540019230A610001AA010200080A40016368000183F -S31540019240A404A00110800005A810001780A40016F0 -S3154001925036800013A404A001921000107FFFFEC8BF -S31540019260D004C014820A001580A0401512BFFFF831 -S31540019270A0042001C204C01482184008DA072194D0 -S315400192808208400D80A00001A2647FFF80A40016E1 -S3154001929006BFFFF392100010A404A00180A480161B -S315400192A006BFFFE5A604E0047FFFE63B90102000E1 -S315400192B0A6100008901020007FFFE6399214E003C3 -S315400192C080A46000028001B101000000833CE00CF3 -S315400192D080886003128000A5030048D1833CE013D7 -S315400192E080886003128001AD010000007FFFFEA16E -S315400192F0210000307FFFE62890102000808A001070 -S3154001930012BFFFFDA6100008A4102000C206E1907E -S3154001931080A480011680000D832CA00292100012B9 -S31540019320901000187FFFFED094102000A404A001E5 -S31540019330C206E19080A4800106BFFFFA9210001296 -S31540019340A4102000832CA002A404A001C026000181 -S3154001935080A4A01E04BFFFFD832CA002821020051D -S31540019360C22600009A102001DA262004821020022B -S31540019370C22620089A102003DA26200C7FFFFED849 -S315400193809010001880A22000028001D30100000045 -S31540019390C206000080A060050280000401000000B2 -S315400193A07FFF9F9A901020067FFFFECD90100018F8 -S315400193B080A22000128001C401000000A4102000F8 -S315400193C0C206E19080A480011680000F921000121F -S315400193D0A0062004941020007FFFFEB290100018D2 -S315400193E092100012901000107FFFFEAE94102000E4 -S315400193F0A404A001C206E19080A4800106BFFFF645 -S31540019400921000127FFFE5FA901000187FFFE5F8F1 -S31540019410900620207FFFE5F6900620407FFFE5F489 -S3154001942090062060A4102000C206E19080A480012D -S3154001943006800196A21020007FFF9F74901020089D -S31540019440173FFFBF8212E3C0940680018212E35C9C -S315400194508200401ED81A8000C2004000D838400021 -S315400194609612E380C206800B80A06005128000063A -S315400194708206800BDA00600480A360010280000549 -S31540019480A41020007FFF9F6190102009A4102000A6 -S31540019490C206E19080A4800116800011A21020002E -S315400194A0A0062004921000127FFFFEBE901000100D -S315400194B0901A200180A00008A2647FFFA404A001A5 -S315400194C0C206E19080A4800106BFFFF89210001207 -S315400194D080A4600102800005833CE0137FFF9F4B1F -S315400194E09010200A833CE01380886003128001803B -S315400194F082102005C22600009A102001DA26200497 -S3154001950082102002C22620089A102003DA26200C57 -S315400195101B3FFFBF9A1363589A03401ED003400076 -S315400195204000048D9210001D032EEEEEA12A20026A -S31540019530A21063BBE22600107FFFFE69901000185F -S3154001954080A220001280016701000000C2060010BF -S3154001955080A0401102800005030048D17FFF9F2B68 -S3154001956090102012030048D1821061671B226AF3D2 -S31540019570C22620209A1361EFDA262024C20E20202B -S3154001958080A0600102800004010000007FFF9F1F50 -S315400195909010201AC20E202180A060230280000470 -S315400195A0010000007FFF9F199010201BC20E202250 -S315400195B080A0604502800004010000007FFF9F13E8 -S315400195C09010201CC20E202380A0606702800004F8 -S315400195D0010000007FFF9F0D9010201DC20E202428 -S315400195E080A0608902800004010000007FFF9F0780 -S315400195F09010201EC20E202580A060AB0280000480 -S31540019600010000007FFF9F019010201FC20E2026FF -S3154001961080A060CD02800004010000007FFF9EFB18 -S3154001962090102020C20E202780A060EF0280000407 -S31540019630010000007FFF9EF590102021C2162020D8 -S31540019640832860108330601080A06123028000046B -S31540019650010000007FFF9EED90102022DA162022A5 -S315400196609B2B6010030000119B33601082106167D1 -S3154001967080A3400102800004010000007FFF9EE3B9 -S3154001968090102023DA1620249B2B60100300002221 -S315400196909B336010821061AB80A3400102800004BD -S315400196A0010000007FFF9ED990102024DA16202663 -S315400196B09B2B6010030000339B336010821061EFD7 -S315400196C080A3400102800005821020307FFF9ECF9B -S315400196D09010202582102030C22E2020030C08D164 -S315400196E0DA0620208210616780A3400102800005CE -S315400196F0821020317FFF9EC5901020278210203195 -S31540019700C22E2021030C0C51DA06202082106167FB -S3154001971080A3400102800005821020327FFF9EBB5C -S315400197209010202882102032C22E2022210C0C4C6F -S31540019730DA0620208214226780A3400102800005B8 -S31540019740821020337FFF9EB1901020298210203352 -S31540019750C22E20239A142233C206202080A0400D17 -S3154001976002800005821020347FFF9EA89010202A97 -S3154001977082102034C22E2024030D2AF3DA06202437 -S31540019780821061EF80A340010280000582102035DE -S315400197907FFF9E9E9010202B82102035C22E2025C1 -S315400197A0030D0D73DA062024821061EF80A3400178 -S315400197B002800005821020367FFF9E949010202C57 -S315400197C082102036C22E2026210D0D4DDA06202488 -S315400197D0821422EF80A340010280000582102037C7 -S315400197E07FFF9E8A9010202D82102037C22E20277F -S315400197F09A142237C206202480A0400D028000051B -S31540019800210000107FFF9E819010202E2100001024 -S3154001981082142041C23620200310104CDA06202043 -S315400198208210623380A340010280000582142243E4 -S315400198307FFF9E769010202F82142243C23620222B -S3154001984003101050DA0620208210624380A34001A3 -S3154001985002800005210000117FFF9E6C9010203090 -S315400198602100001182142045C23620240311114DD6 -S31540019870DA0620248210623780A340010280000567 -S31540019880821422477FFF9E61901020318214224725 -S31540019890C236202603111151DA062024821062476E -S315400198A080A3400102800004010000007FFF9E5713 -S315400198B0901020327FFFFD2FA4102000C206E190B8 -S315400198C080A48001168000151B100144D403619CBD -S315400198D096100001A010200080A4001D3680000CC7 -S315400198E0A404A001832C800A9B286002992CA01015 -S315400198F082130010C226000DA004200180A4001D81 -S3154001990006BFFFFC9A036004A404A00180A4800B57 -S3154001991026BFFFF2A01020007FFFE49F9010200099 -S3154001992003000010808A000112BFFFFC0100000005 -S31540019930A4102000C206E19080A480011680011483 -S31540019940921000127FFFFD899010001815100144F6 -S31540019950C202A17C900A0001820E000180A2000190 -S31540019960A404A00112BFFFF4901020337FFF9E276D -S3154001997001000000C206E19080A4800106BFFFF20B -S3154001998092100012308001027FFF9E20901020012C -S3154001999010BFFE50833CE00C7FFFE47F9010200017 -S315400199A0133FFFF09212603F920A0009A610000889 -S315400199B07FFFE47B901020007FFFE3D2A4102000BC -S315400199C01303C0009214C0097FFFE4759010200074 -S315400199D080A480161680000992100012901661002C -S315400199E07FFFFD0494102000A404A00180A48016EA -S315400199F006BFFFFB921000127FFFE3C20100000089 -S31540019A007FFFE46590102000913A200A900A2003D6 -S31540019A1080A2200102800004010000007FFF9DFB1F -S31540019A209010200201000000921020009016610063 -S31540019A307FFFFCE194102000010000007FFFE45607 -S31540019A40901020001303C000922A00097FFFE454BE -S31540019A5090102000010000007FFFE3AA01000000F2 -S31540019A607FFFE44D90102000913A200C900A20038C -S31540019A7080A2200102BFFE1E010000007FFF9DE380 -S31540019A809010200330BFFE1A921000127FFFFD4551 -S31540019A9090100018901A200580A00008A2647FFF4C -S31540019AA0A404A001C206E19080A4800106BFFFF88C -S31540019AB09210001280A4600012BFFE63173FFFBFE1 -S31540019AC030BFFE5E7FFF9DD19010200710BFFE3D47 -S31540019AD0A41020007FFF9DCD9010200530BFFE2DA4 -S31540019AE07FFF9DCA9010201130BFFE997FFFE42A67 -S31540019AF090102000033FFFF08210603F920A000160 -S31540019B007FFFE42790102000033FFFBFA010638032 -S31540019B1092102000941020007FFFFCE290068010F6 -S31540019B207FFFE41D901020000303C0009212000144 -S31540019B307FFFE41B9010200010800006A410200037 -S31540019B40900680107FFFFCD794102005A404A00145 -S31540019B50C206E19080A4800106BFFFFA921000126E -S31540019B60033FFFBFA01063809A102001DA2E8010B8 -S31540019B7003004000D80680108210600580A30001D2 -S31540019B8002800004010000007FFF9DA09010200B81 -S31540019B907FFFE40190102000913A2006900A2003AD -S31540019BA080A2200102800004010000007FFF9D97F2 -S31540019BB09010200C7FFFE3F8901020001303C000A3 -S31540019BC0922A00097FFFE3F69010200092102000B0 -S31540019BD0900680107FFFFCB3941020007FFFE3EED8 -S31540019BE0901020002103C000921200107FFFE3EC89 -S31540019BF0901020007FFFE3E890102000808A00103B -S31540019C0002BFFFFDA6100008A4102000C206E19085 -S31540019C1080A480011680000E033FFFBF9A102001E9 -S31540019C20A2106380A12B401D921000129006801154 -S31540019C307FFFFC8D94043FFFA404A001C206E1907E -S31540019C4080A4800106BFFFFA921000121303C000E0 -S31540019C50922CC0097FFFE3D2901020002103C0005F -S31540019C607FFFE3CD90102000808A001012BFFFFDD8 -S31540019C701B004000213FFFBF82142380D80680018C -S31540019C809A13600580A3000D0280000401000000C4 -S31540019C907FFF9D5E9010200D7FFFE3BF9010200057 -S31540019CA0913A2008900A200380A2200122800005D3 -S31540019CB0A01423787FFF9D559010200FA014237880 -S31540019CC094068010981020119A102055D83A800099 -S31540019CD07FFFE3B1901020000303C0009212000100 -S31540019CE0920A7F3F7FFFE3AE90102000A0068010CE -S31540019CF07FFFE3CD9010001010800006A4102000D5 -S31540019D00900420047FFFFC6794102055A404A00111 -S31540019D10C206E19080A4800106BFFFFA92100012AC -S31540019D20113FFFBF901223787FFFE3BF9006800863 -S31540019D3080A220111280000480A260550280000496 -S31540019D40010000007FFF9D31901020107FFFE392BC -S31540019D5090102000833A20068208600380A06001AB -S31540019D6002800004A61000087FFF9D289010201055 -S31540019D70133C3FF09212603F920CC0097FFFE3888B -S31540019D809010200010BFFDDC821020057FFFE3828A -S31540019D90901020009212200F7FFFE3819010200047 -S31540019DA081C7E00891E820009DE3BF987FFFFC93BF -S31540019DB001000000B0100008130020409212600F0D -S31540019DC07FFFE377901020000100000081C7E00883 -S31540019DD081E80000033FFFBF821063589DE3800185 -S31540019DE07FFFFBE401000000400002380100000053 -S31540019DF07FFFE36990102008A21000087FFFE36609 -S31540019E009010200C7FFF9D10A0100008912A20047D -S31540019E107FFF9CF99002200C973C6014833C6018AC -S31540019E20953C2014993C201882086003960AE00F5D -S31540019E30820060019602E00AA33C6010A13C20101A -S31540019E40980B2003940AA00FA728400B98032001E2 -S31540019E50A20C6007A00C20079402A00A9A102001C8 -S31540019E60A2046002A0042002B12B000A03200000D4 -S31540019E70AB2B4011A52B40109620401898057FFF2B -S31540019E80822040139A04BFFFAE130001A213400B78 -S31540019E90210000307FFFE34090102000808A0010AF -S31540019EA012BFFFFD033FFFBF9A07BFF8821063C091 -S31540019EB0A00340012D155555901000189210001021 -S31540019EC07FFFE2C89415A15580A220001280004B65 -S31540019ED0292AAAAA92100010901000187FFFE2D5F5 -S31540019EE0941522AA80A220001280004E0100000093 -S31540019EF07FFF9CD501000000912A20047FFF9CBE74 -S31540019F009002200A400001EE010000009215220055 -S31540019F10920C4009901000189410001196100012EE -S31540019F207FFFE2ED981522AA80A2200012800051FF -S31540019F30010000009215A10090100018920C4009F2 -S31540019F4094100011961000127FFFE2E39815A15577 -S31540019F5080A2200012800044010000007FFF9CBACD -S31540019F6001000000912A20047FFF9CA39002200B50 -S31540019F70901000137FFFE2BF9215A15580A22000E9 -S31540019F801280003501000000901000137FFFE2B9F6 -S31540019F90921522AA80A220001280002C0100000006 -S31540019FA07FFF9CA901000000912A20047FFF9C921B -S31540019FB0900220099010001392100017941000157A -S31540019FC07FFFE2B8961522AA80A220001280001BCC -S31540019FD00100000090100013921000179410001514 -S31540019FE07FFFE2B09615A15580A220000280002590 -S31540019FF0010000003080000E7FFF9C8490102001FC -S3154001A000292AAAAA92100010901000187FFFE2890F -S3154001A010941522AA80A2200002BFFFB601000000CB -S3154001A0207FFF9C7A9010200230BFFFB27FFF9C7762 -S3154001A03090102008308000137FFF9C7490102007F9 -S3154001A04010BFFFE6901000137FFF9C709010200612 -S3154001A05030BFFFD47FFF9C6D9010200510BFFFCC11 -S3154001A060901000137FFF9C699010200430BFFFBC05 -S3154001A0707FFF9C669010200310BFFFB09215A10090 -S3154001A0807FFFFB3CB0102000400001900100000022 -S3154001A0900100000081C7E00881E800009DE3BF9808 -S3154001A0A07FFF9C501100412CDA062004D80620047B -S3154001A0B09A0B6003993B200282102007C226200892 -S3154001A0C0BA036001B20B27FF010000009010200A7D -S3154001A0D0C02600007FFF9C480100000017000200D7 -S3154001A0E082103FFFC226000B032AAAAA1B1555550B -S3154001A0F0D806000BAC102000821062AA9A13615553 -S3154001A100AA0B000180A5801D16800038A80B000D02 -S3154001A1109612E020A72E600880A4E0000480000C7F -S3154001A120A2102000832DA0028200401819000200CF -S3154001A1309A10000BE820400CEA20400DA204601062 -S3154001A14080A4C01114BFFFFC82006040AC05A00191 -S3154001A15080A5801D06BFFFF280A4E000AC10200060 -S3154001A16080A5801D1680002103000200B8106020E2 -S3154001A170A72E6008AE10001880A4E00004800017E6 -S3154001A180A210200003000200A4060001A005C01C85 -S3154001A190C2048000A2046010A404A04080A0401420 -S3154001A1A002800004901020017FFF9C1801000000EE -S3154001A1B0C2040000A004204080A040150280000493 -S3154001A1C0901020017FFF9C110100000080A4C01166 -S3154001A1D014BFFFF001000000AC05A00180A5801D61 -S3154001A1E006BFFFE6AE05E0047FFF9C039010200CFE -S3154001A1F0AC10200080A5801D16800088031555559A -S3154001A2009E1061551B000800032AAAAA9A136004EE -S3154001A210901062AAA72E600880A4E0000480000E78 -S3154001A220A2102000832DA0138200401813000800BD -S3154001A2309410000F9610000D98100008D420400984 -S3154001A240D820400BA204600280A4C01114BFFFFCB9 -S3154001A25082006008AC05A00180A5801D06BFFFF005 -S3154001A26080A4E000AC10200080A5801D1680006B04 -S3154001A27003155555B81061551B000800032AAAAAB3 -S3154001A280B6136004B41062AAA72E600880A4E00049 -S3154001A29004800019A2102000832DA013A0004018AD -S3154001A2A02F000800AA10001CA810001BA410001AB9 -S3154001A2B0C2040017A204600280A040150280000477 -S3154001A2C0901020037FFF9BD101000000C2040014BF -S3154001A2D0A004200880A040120280000490102003B0 -S3154001A2E07FFF9BCA0100000080A4C01114BFFFF18B -S3154001A2F001000000AC05A00180A5801D06BFFFE559 -S3154001A30080A4E000AC10200080A5801D168000438B -S3154001A310030008009E1060041B155555032AAAAA7E -S3154001A3209A136155901062AAA72E600880A4E00096 -S3154001A3300480000EA2102000832DA0138200401835 -S3154001A340130008009410000F9610000D9810000895 -S3154001A350D620400AD8204009A204600280A4C01138 -S3154001A36014BFFFFC82006008AC05A00180A5801DDA -S3154001A37006BFFFF080A4E000AC10200080A5801D40 -S3154001A3801680002603155555B81061551B2AAAAAF1 -S3154001A39003000800A72E6008B61362AAB410600431 -S3154001A3A080A4E00004800019A2102000832DA01390 -S3154001A3B0A00040182F000800AA10001CA810001B7E -S3154001A3C0A410001AC2040012A204600280A0401523 -S3154001A3D002800004901020047FFF9B8C0100000046 -S3154001A3E0C2040017A004200880A040140280000483 -S3154001A3F0901020047FFF9B850100000080A4C011BE -S3154001A40014BFFFF101000000AC05A00180A5801D2D -S3154001A41006BFFFE580A4E00082102005C226200881 -S3154001A4201B200000DA26000081C7E00881E8000011 -S3154001A43081C3E0089144400080800000151001402E -S3154001A4409412A18090102000921022468180000033 -S3154001A450010000000100000001000000D002800060 -S3154001A4609122400881C3E00801000000818000007C -S3154001A470901020018090200180D020011280002C74 -S3154001A4800100000080D23FFF168000290100000034 -S3154001A49080DA3FFF9340000080A27FFF12800024B4 -S3154001A4A00100000080D23FFF9348000093326014C0 -S3154001A4B0920A600F80A260081280001D0100000010 -S3154001A4C08180000090102001945220049452A004EF -S3154001A4D09452A00496A2A0401280001501000000EB -S3154001A4E0818000009010200280A000003280001080 -S3154001A4F09052000880A220021280000D0100000047 -S3154001A500818000009010200280A000000100000020 -S3154001A510328000079052000880A220021280000477 -S3154001A5200100000081C3E0089010200181C3E008CA -S3154001A530901000001315555592126155A5824000A1 -S3154001A5400100000001000000010000009544800068 -S3154001A55080A2400A1280004301000000923A400066 -S3154001A560A58240000100000001000000010000003A -S3154001A5709544800080A2400A1280003A0100000002 -S3154001A5801100003F901223FFA5800000818000004A -S3154001A59001000000010000000100000093F23FFFAE -S3154001A5A09A10000993F23FFF93F23FFF93F23FFF68 -S3154001A5B093F23FFF93F23FFF93F23FFF93F23FFF48 -S3154001A5C09940000097448000153FFC009412A00872 -S3154001A5D080A2400A1280002380A2400B12800021F3 -S3154001A5E080A320071280001F113FFF809012200197 -S3154001A5F080A340081280001B1100003F901223FFE8 -S3154001A600A5800000818000000100000001000000DB -S3154001A6100100000093FA3FFF93FA3FFF93FA3FFF91 -S3154001A62093FA3FFF93FA3FFF93FA3FFF93FA3FFFB7 -S3154001A63093FA3FFF994000009744800080A260084A -S3154001A6401280000880A260081280000680A32000C4 -S3154001A650128000040100000081C3E008901020012F -S3154001A66081C3E00890100000818000009010200214 -S3154001A67080A00000328000109072000880A2200263 -S3154001A6801280000D01000000818000009010200220 -S3154001A69080A000000100000032800007907200088F -S3154001A6A080A22002128000040100000081C3E0085C -S3154001A6B09010200181C3E00890100000C0A0004026 -S3154001A6C081C3E00801000000110020409012200FD4 -S3154001A6D0D0A0004081C3E008010000009DE3BF987F -S3154001A6E07FFFE12D90102008A21000087FFFE12A8C -S3154001A6F09010200C833C60149B3A2014A13A2018F8 -S3154001A700A33C6018A20C6003A00C20038208600FD2 -S3154001A7109A0B600F8200600A9A03600AA2046001E4 -S3154001A720A0042001A32C40017FFFFFE5A12C000DD1 -S3154001A7307FFFE090901000117FFFE09C9010001089 -S3154001A7407FFFF98C010000007FFFFFE081E80000F8 -S3154001A7500100000098120009818200009AAB2FFF88 -S3154001A7600280002598880000992300099923000951 -S3154001A770992300099923000999230009992300097E -S3154001A780992300099923000999230009992300096E -S3154001A790992300099923000999230009992300095E -S3154001A7A0992300099923000999230009992300094E -S3154001A7B0992300099923000999230009992300093E -S3154001A7C0992300099923000999230009992300092E -S3154001A7D0992300099923000999230009992300091E -S3154001A7E099230009992300099923000081C3E008B0 -S3154001A7F091400000992300099923000999230009F2 -S3154001A80099230009992300099923000999230009ED -S3154001A81099230009992300099923000999230009DD -S3154001A82099230009992300009B400000992B200C95 -S3154001A8309B33601481C3E0089013400C1080000BD9 -S3154001A8408610200080924008168000088610000875 -S3154001A850809240001680000480920000168000031A -S3154001A86092200009902000089A924000128000052B -S3154001A8709610000891D0200281C3E0089010000094 -S3154001A88080A2C00D0A8000959410000003020000CA -S3154001A89080A2C0010A8000289810000080A34001D0 -S3154001A8A01A80000D841020019B2B600410BFFFFC11 -S3154001A8B0980320019A83400D1A8000078400A00165 -S3154001A8C0832860049B3360019A034001108000078E -S3154001A8D08420A00180A3400B0ABFFFF701000000BE -S3154001A8E0028000020100000084A0A00106800076DB -S3154001A8F0010000009622C00D941020011080000A2C -S3154001A90001000000952AA001068000059B336001E5 -S3154001A9109622C00D108000049402A0019602C00D3B -S3154001A9209422A00184A0A00116BFFFF78092C00027 -S3154001A930308000659B2B600480A3400B08BFFFFE5F -S3154001A9409883200102800065982320018092C000EF -S3154001A950952AA0040680002F9B33600196A2C00D64 -S3154001A960068000179B33600196A2C00D0680000B3E -S3154001A9709B33600196A2C00D068000059B336001A2 -S3154001A98096A2C00D108000509402A00F9682C00D71 -S3154001A9901080004D9402A00D9682C00D06800005E0 -S3154001A9A09B33600196A2C00D108000479402A00B14 -S3154001A9B09682C00D108000449402A0099682C00D73 -S3154001A9C00680000B9B33600196A2C00D06800005F0 -S3154001A9D09B33600196A2C00D1080003B9402A007F4 -S3154001A9E09682C00D108000389402A0059682C00D53 -S3154001A9F0068000059B33600196A2C00D108000328F -S3154001AA009402A0039682C00D1080002F9402A001EB -S3154001AA109682C00D068000179B33600196A2C00D39 -S3154001AA200680000B9B33600196A2C00D068000058F -S3154001AA309B33600196A2C00D108000239402BFFF94 -S3154001AA409682C00D108000209402BFFD9682C00DF3 -S3154001AA50068000059B33600196A2C00D1080001A46 -S3154001AA609402BFFB9682C00D108000179402BFF975 -S3154001AA709682C00D0680000B9B33600196A2C00DE5 -S3154001AA80068000059B33600196A2C00D1080000E22 -S3154001AA909402BFF79682C00D1080000B9402BFF559 -S3154001AAA09682C00D068000059B33600196A2C00DBB -S3154001AAB0108000059402BFF39682C00D10800002FB -S3154001AAC09402BFF198A3200116BFFFA28092C00055 -S3154001AAD0268000029602C0098090C00026800002AE -S3154001AAE09620000B81C3E0089010000B92100008DD -S3154001AAF09010200094102000961020008213C00070 -S3154001AB00400001E89E10400001000000921000083C -S3154001AB1003100142D00063F88213C0004000000ACE -S3154001AB209E104000010000009210000803100142EF -S3154001AB30D00063F88213C000400002559E104000C9 -S3154001AB40010000009DE3BF988206600B80A060165D -S3154001AB50A610001818800003A0087FF8A010201046 -S3154001AB6080A400199A4020008334201F8090400D14 -S3154001AB70128001B0B0102000400001B090100013C7 -S3154001AB8080A421F718800017993420093910014013 -S3154001AB908217222898040001F003200C80A6000C9D -S3154001ABA00280004E9F342003C206200494087FFC95 -S3154001ABB09A06000AC203600482106001D006200C86 -S3154001ABC0D2062008D2222008C2236004D022600C7B -S3154001ABD0400001A09010001310800196B006200895 -S3154001ABE080A32000128000289F34200339100140A1 -S3154001ABF09B2BE003821722289A0340011080000A0A -S3154001AC00F003600C94087FFC9622801080A2E00F2E -S3154001AC101480010980A2E00036BFFFE79A06000AC8 -S3154001AC20F006200C80A6000D32BFFFF7C2062004B5 -S3154001AC309E03E001251001409814A230F00320083C -S3154001AC4080A6000C0280005D833BE01FC206200403 -S3154001AC5094087FFC9622801080A2E00F1480009F0A -S3154001AC6080A2E000D823200C06800023D8232008A8 -S3154001AC709A06000AC20360048210600110BFFFD524 -S3154001AC80C22360048334200680A3200408BFFFD872 -S3154001AC909E00603880A3201408BFFFD59E03205B29 -S3154001ACA08334200C80A3205408BFFFD19E00606EE0 -S3154001ACB08334200F80A3215408BFFFCD9E006077C7 -S3154001ACC08334201280A3255408BFFFC99E00607CAF -S3154001ACD010BFFFC79E10207E98062008F003200C67 -S3154001ACE080A6000C32BFFFB2C206200410BFFFD2BD -S3154001ACF09E03E00280A2A1FF088000BE9B32A00312 -S3154001AD009732A00980A2E0002280001796172228D8 -S3154001AD108332A00680A2E004088000129A006038BF -S3154001AD2080A2E0140880000F9A02E05B8332A00CF7 -S3154001AD3080A2E0540880000B9A00606E8332A00F17 -S3154001AD4080A2E154088000079A0060778332A012FE -S3154001AD5080A2E554088000039A00607C9A10207E08 -S3154001AD6096172228832B60039000400BD2022008BD -S3154001AD7080A240082280010F99336002C20260041A -S3154001AD8082087FFC80A0400A28800007D002600C20 -S3154001AD90D202600880A2400832BFFFFAC2026004B4 -S3154001ADA0D002600CD026200CD2262008F022600C5E -S3154001ADB0F0222008833BE01F8330601E8203C001DE -S3154001ADC03910014083386002981722289A102001D1 -S3154001ADD0932B4001D803200480A2400C1880004BDD -S3154001ADE0AE172228808B00091280000D0310014006 -S3154001ADF0820BFFFC92024009808B000912800007FA -S3154001AE009E0060048210000C92024009808840092D -S3154001AE1002BFFFFE9E03E00403100140A210622818 -S3154001AE20A8100011832BE003980040119010000FE9 -S3154001AE309A10000C1080000AF003600C94087FFC05 -S3154001AE409622801080A2E00F1480007D80A2E0004F -S3154001AE503680008B9A06000AF006200C80A6000D6B -S3154001AE6032BFFFF7C20620049E03E001808BE00358 -S3154001AE7012BFFFF19A036008808A200398033FF8C6 -S3154001AE80028000D490023FFFC203200880A0400CFC -S3154001AE9002BFFFFB808A200392024009C2052004BB -S3154001AEA080A24001188000183910014080A260003C -S3154001AEB0128000068088400910800014AE172228AF -S3154001AEC09E03E0048088400922BFFFFE92024009AA -S3154001AED010BFFFD6832BE003821420019406001095 -S3154001AEE0C2262004D423200CD42320088212E00158 -S3154001AEF0D622800BD822A008C222A00410BFFF355B -S3154001AF00D822A00CAE172228F005E008C20620047C -S3154001AF10AA087FFC80A540109A4020009625401043 -S3154001AF2080A2E00F148000428210200180934001EC -S3154001AF300280002703100143DA0061282D100140E9 -S3154001AF409A04000DC205A220A810001580A07FFF1B -S3154001AF50A203601002800004A406001582046FFF5C -S3154001AF60A208700090100013400000C0921000111A -S3154001AF7080A23FFF02800008B210000880A20012A2 -S3154001AF801A8000463B10014380A6001722800044E8 -S3154001AF90C20760F882172228D8006008DA03200425 -S3154001AFA09A0B7FFC80A340109840200096234010C6 -S3154001AFB080A2E00F0480000382102001821020004D -S3154001AFC08093000112800098010000009817222802 -S3154001AFD0F003200882142001C22620049A0600109C -S3154001AFE08212E001C223600410BFFEFADA23200870 -S3154001AFF098033FF8832B60039000400C9B3360021B -S3154001B000821020018328400DD2022008DA03200451 -S3154001B0109A134001D026200CD2262008F022600C3B -S3154001B020DA23200410BFFF64F022200810BFFFC0BE -S3154001B0308210200010BFFEFF9E03FFFFD006200CAA -S3154001B040D20620089A142001940600108214A230D8 -S3154001B050D2222008D022600CDA262004D420600CAB -S3154001B060D42060089A12E001D622800BC222A008A1 -S3154001B070DA22A00410BFFED7C222A00CC20360048C -S3154001B08082106001D006200CD2062008C22360043B -S3154001B09010BFFECFD2222008C20760F882004011BD -S3154001B0A080A640120280004FC22760F8C205A22046 -S3154001B0B080A07FFF02800045C20760F89A264012B1 -S3154001B0C08200400DC22760F89A8E60070280000513 -S3154001B0D0A410200082102008A420400DB206401280 -S3154001B0E09A0640119A0B6FFF030000048220400D1F -S3154001B0F0A4048001901000134000005C92100012DD -S3154001B10080A23FFF2280003FA41020008222001926 -S3154001B1109000401282172228DA0760F89A034012FB -S3154001B12080A60001F2206008DA2760F80280003725 -S3154001B1308212200180A5600F38800005C226600476 -S3154001B1408210200110BFFF94C2266004C20620046B -S3154001B1509A057FF4A80B7FF882086001821040149B -S3154001B160C22620049A06001482102005C2236008D4 -S3154001B17080A5200F18800027C223600419100143BF -S3154001B180DA0760F8C203212480A340013880000217 -S3154001B190DA23212419100143C203212080A340014F -S3154001B1A038BFFF7DDA23212010BFFF7C821722287A -S3154001B1B09A102001C202E0049B2B400C8210400DE4 -S3154001B1C010BFFEF9C222E00410BFFFC0F225A22043 -S3154001B1D0C20460048228400910BFFF30C2246004C3 -S3154001B1E0808E6FFF12BFFFB3C205A22090044014A8 -S3154001B1F0DA05E0088212200110BFFFE1C223600494 -S3154001B20010BFFFC39010001910BFFFDDC2266004B6 -S3154001B210920620084000009E9010001310BFFFD9EF -S3154001B220191001434000000B90100013B01020008C -S3154001B23081C7E00881E800001110014190122230D7 -S3154001B2408213C0004000042A9E1040000100000005 -S3154001B25011100141901222308213C0004000043C7B -S3154001B2609E104000010000009DE3BF98211001445B -S3154001B270C02421A0400002499010001980A23FFF3E -S3154001B28012800006C20421A080A060000280000353 -S3154001B29001000000C226000081C7E00891E80008CD -S3154001B2A09DE3BF9823100143400004119014612C83 -S3154001B2B003100072E0006278D004214880A2200089 -S3154001B2C02280002D9004214CD602200480A2E01F4A -S3154001B2D01480001D0100000080A620001280000B92 -S3154001B2E094022088832AE0029A02E0018200400803 -S3154001B2F0DA222004F2206008400004159014612CE3 -S3154001B30010800022B0102000821020019328400BAB -S3154001B310992AE002DA02A1009A1340098203000A3F -S3154001B320F6206080F422800C80A6200212BFFFEE38 -S3154001B330DA22A100C202A1048210400910BFFFEA2D -S3154001B340C222A1047FFFFDF29010219080A220002D -S3154001B3500280000B96102000C2042148C222000040 -S3154001B360D0242148C0222004C022218810BFFFDBFF -S3154001B370C022218C10BFFFD5D0242148400003F4C0 -S3154001B3809014612CB0103FFF81C7E00881E80000AE -S3154001B3909DE3BF987FFFFFA990100018031001405D -S3154001B3A0A2106228DA046008C2036004A0087FFC88 -S3154001B3B0B2240019B2066FEFB20E7000B2067000E9 -S3154001B3C09210200080A66FFF0480000A901000189A -S3154001B3D07FFFFFA601000000C20460088200401002 -S3154001B3E080A04008922000190280000590100018A4 -S3154001B3F07FFFFF98B0102000308000237FFFFF9B26 -S3154001B400901000188224001980A23FFF821060012B -S3154001B41092102000191001430280000B9010001871 -S3154001B420DA046008C2236004C20320F8822040196E -S3154001B430901000187FFFFF87C22320F8108000126A -S3154001B440B01020017FFFFF8901000000981000081D -S3154001B450D6046008A023000B9010001880A4200F8A -S3154001B46004BFFFE4B214200103100140DA00622058 -S3154001B4709A23000D03100143DA2060F810BFFFDD67 -S3154001B480F222E00481C7E00881E800009DE3BF980D -S3154001B49080A660000280009DA41000187FFFFF6710 -S3154001B4A090100018A0067FF8D6042004900AFFFEEB -S3154001B4B01910014094040008A2132228DA02A004BC -S3154001B4C0C204600880A0400A028000449E0B7FFCB3 -S3154001B4D0808AE001DE22A0041280000CB010200018 -S3154001B4E0F2067FF8A024001982046008DA042008D5 -S3154001B4F080A340010280007D90020019D204200CF5 -S3154001B500DA226008D223600C8202800FDA006004DE -S3154001B510808B60011280000A8212200180A62000E1 -S3154001B520028000229002000FDA02A008D202A00C8B -S3154001B530DA226008D223600C82122001C224200440 -S3154001B54080A6200002800005D0240008B010001219 -S3154001B5507FFFFF4081E8000080A221FF188000366E -S3154001B560973220099B32200398132228832B6003AC -S3154001B5709200400C9B336002821020018328400DCB -S3154001B580D6026008DA0320049A134001D224200C23 -S3154001B590D6242008E022E00CDA232004E0226008C9 -S3154001B5A010BFFFECB010001203100140DA02A008F0 -S3154001B5B08210623080A3400132BFFFDED202A00C6E -S3154001B5C0E023600CE0236008DA242008DA24200C0A -S3154001B5D010BFFFDAB0102001808AE0011280000915 -S3154001B5E09002000FF2067FF8A0240019D204200C25 -S3154001B5F0D6042008D622600890020019D222E00C17 -S3154001B60003100140DA00622498122001E024600808 -S3154001B61080A2000D0ABFFFCFD824200403100143A6 -S3154001B620D20061287FFFFF5B901000127FFFFF0968 -S3154001B63081E8000080A2E000028000169B322003D0 -S3154001B6408332200680A2E004088000129A00603806 -S3154001B65080A2E0140880000F9A02E05B8332200C3E -S3154001B66080A2E0540880000B9A00606E8332200F5E -S3154001B67080A2E154088000079A0060778332201245 -S3154001B68080A2E554088000039A00607C9A10207ECF -S3154001B69094132228832B60039200400AD602600845 -S3154001B6A080A2C0090280001399336002C202E004FD -S3154001B6B082087FFC80A0400828800007D202E00C67 -S3154001B6C0D602E00880A2C00932BFFFFAC202E004F6 -S3154001B6D0D202E00CD224200CD6242008E022E00C31 -S3154001B6E010BFFFB0E022600810BFFF88B0102001F4 -S3154001B6F09A102001C202A0049B2B400C8210400DDF -S3154001B70010BFFFF5C222A00481C7E00881E800000E -S3154001B7109DE3BF98D206400080A2600012800004DB -S3154001B720901000187FFFFF5A81E800007FFFFFF964 -S3154001B730010000007FFFFF5681E800000100000084 -S3154001B7409DE3BF9803100142DA0063F880A6000D1D -S3154001B7500280004101000000D206204C80A2600018 -S3154001B7601280001CA0102000D206214880A2600051 -S3154001B7702280000FD2062054A006214C80A2401000 -S3154001B7802280000BD206205410800005B210000919 -S3154001B790F20640007FFFFF3E9010001880A400197A -S3154001B7A012BFFFFC92100019D206205480A26000FD -S3154001B7B01280002501000000C206203880A06000EA -S3154001B7C0028000250100000010800017C206203CBF -S3154001B7D0832C2002F202400180A660002280000BE9 -S3154001B7E0A004200192100019F20640007FFFFF28B5 -S3154001B7F09010001880A6600012BFFFFC921000193D -S3154001B800D206204CA004200180A4200E04BFFFF2E2 -S3154001B810832C20027FFFFF1E9010001810BFFFD41B -S3154001B820D20621489FC0400090100018F20622E03F -S3154001B83080A6600002800008010000007FFFFFB57E -S3154001B84081E800007FFFFF129010001810BFFFDC57 -S3154001B850C206203881C7E00881E800009DE3BF9811 -S3154001B86080A620000280001D03100142E406214803 -S3154001B87080A4A00022800013C206203CE204A0045A -S3154001B880A2847FFF0C80000A832C60028200401252 -S3154001B890A0006008C20400009FC04000A0043FFC15 -S3154001B8A0A2847FFF3CBFFFFDC2040000E404800088 -S3154001B8B080A4A00032BFFFF3E204A004C206203CEC -S3154001B8C080A0600002800007010000009FC0400088 -S3154001B8D0901000183080000310BFFFE5F00063F8B8 -S3154001B8E081C7E00881E800001080000B8610200027 -S3154001B8F08092400816800008861A400880924000CF -S3154001B90016800004809200001680000392200009F0 -S3154001B910902000089A924000128000059610000877 -S3154001B92091D0200281C3E0089010000080A2C00D92 -S3154001B9300A800095941000000302000080A2C00115 -S3154001B9400A8000289810000080A340011A80000D4B -S3154001B950841020019B2B600410BFFFFC980320013B -S3154001B9609A83400D1A8000078400A0018328600451 -S3154001B9709B3360019A034001108000078420A00197 -S3154001B98080A3400B0ABFFFF70100000002800002BE -S3154001B9900100000084A0A00106800076010000009D -S3154001B9A09622C00D941020011080000A010000006B -S3154001B9B0952AA001068000059B3360019622C00DA1 -S3154001B9C0108000049402A0019602C00D9422A001A9 -S3154001B9D084A0A00116BFFFF78092C00030800065A9 -S3154001B9E09B2B600480A3400B08BFFFFE9883200178 -S3154001B9F002800065982320018092C000952AA00408 -S3154001BA000680002F9B33600196A2C00D0680001769 -S3154001BA109B33600196A2C00D0680000B9B336001EB -S3154001BA2096A2C00D068000059B33600196A2C00D0B -S3154001BA30108000509402A00F9682C00D1080004DD8 -S3154001BA409402A00D9682C00D068000059B336001CD -S3154001BA5096A2C00D108000479402A00B9682C00D9D -S3154001BA60108000449402A0099682C00D0680000B06 -S3154001BA709B33600196A2C00D068000059B33600191 -S3154001BA8096A2C00D1080003B9402A0079682C00D7D -S3154001BA90108000389402A0059682C00D06800005EC -S3154001BAA09B33600196A2C00D108000329402A00320 -S3154001BAB09682C00D1080002F9402A0019682C00D7F -S3154001BAC0068000179B33600196A2C00D0680000BCD -S3154001BAD09B33600196A2C00D068000059B33600131 -S3154001BAE096A2C00D108000239402BFFF9682C00D1E -S3154001BAF0108000209402BFFD9682C00D068000058D -S3154001BB009B33600196A2C00D1080001A9402BFFBC0 -S3154001BB109682C00D108000179402BFF99682C00D1F -S3154001BB200680000B9B33600196A2C00D068000057E -S3154001BB309B33600196A2C00D1080000E9402BFF7A0 -S3154001BB409682C00D1080000B9402BFF59682C00DFF -S3154001BB50068000059B33600196A2C00D108000054A -S3154001BB609402BFF39682C00D108000029402BFF189 -S3154001BB7098A3200116BFFFA28092C0002680000232 -S3154001BB809422A0018090C000268000029420000AE1 -S3154001BB9081C3E0089010000A19100144DA0321A478 -S3154001BBA080A360001280000682034008031001440E -S3154001BBB09A1061B8DA2321A482034008C22321A442 -S3154001BBC081C3E0089010000DA7500000AE1000019F -S3154001BBD08334E00129100143E805203CA92CC01417 -S3154001BBE08215000181E000008190400001000000C3 -S3154001BBF00100000001000000E03BA000E43BA0087A -S3154001BC00E83BA010EC3BA018F03BA020F43BA02859 -S3154001BC10F83BA030FC3BA03881E8000082100017B9 -S3154001BC2081C4400081CC8000010000000100000079 -S3154001BC3001000000A7500000A92CE0012B10014390 -S3154001BC40EA05603CAB34C015AA1540148195400005 -S3154001BC5001000000010000000100000081E8000031 -S3154001BC6081E80000E01BA000E41BA008E81BA0102F -S3154001BC70EC1BA018F01BA020F41BA028F81BA03039 -S3154001BC80FC1BA03881E0000081E0000081C4400037 -S3154001BC9081CC8000A750000029100071ADC5220457 -S3154001BCA00100000027100143A614E01CE024C00057 -S3154001BCB0818C2020010000000100000001000000ED -S3154001BCC09DE3BFA09DE3BFA09DE3BFA09DE3BFA0B1 -S3154001BCD09DE3BFA09DE3BFA09DE3BFA081E8000017 -S3154001BCE081E8000081E8000081E8000081E8000069 -S3154001BCF081E8000081E8000027100143A614E01CFA -S3154001BD00C024C000E203A068A4046004E223A06446 -S3154001BD10E423A06810800262AC10000029100143A0 -S3154001BD20A8152000C2252000C8252004E0252010A2 -S3154001BD30E2252014E4252018E825201C81E800008E -S3154001BD408348000082106F00818860200100000056 -S3154001BD50010000000100000009100143C801203C18 -S3154001BD6081E000008821200180A920FF0280000394 -S3154001BD70010000000100000080A1000012BFFFF990 -S3154001BD800100000009100143C801203C81E8000080 -S3154001BD9080A920FF0280000301000000010000008D -S3154001BDA08821200180A1000012BFFFF90100000097 -S3154001BDB081E0000029100143A8152000C805200490 -S3154001BDC0C2052000E0052010E2052014E4052018F4 -S3154001BDD0C025201C818C20000100000001000000CC -S3154001BDE00100000081C4800081CCA004A0142F0072 -S3154001BDF0818C0000010000000100000001000000EC -S3154001BE0081C4800081CCA00480A660021280000516 -S3154001BE10A8142F00818D0000B01420203080001F0F -S3154001BE2080A6600312800006A80E2F00AA2C2F00C0 -S3154001BE30A8154014818D00003080001880A660044A -S3154001BE4012800008A9480000A8152040818D0000F5 -S3154001BE500100000001000000010000003080000FD9 -S3154001BE6080A6600512800008A9480000A82D204040 -S3154001BE70818D00000100000001000000010000006A -S3154001BE803080000680A66006128000030100000093 -S3154001BE9030BFFFA391D0200081C4800081CCA00493 -S3154001BEA09210200381C3E00891D020029210200213 -S3154001BEB081C3E00891D020029210200681C3E00898 -S3154001BEC091D0200281C3E0080100000081C3E0084F -S3154001BED00100000081C3E00801000000AE25A0106A -S3154001BEE0A75000002D10006FAC15A2F0291000716B -S3154001BEF081C523AC01000000111001439012202896 -S3154001BF00D202000092026001D2220000932DE00885 -S3154001BF10902C2F00921200091110014390122020FB -S3154001BF20D002000080A000082280000292126F0019 -S3154001BF30818A60200100000001000000010000002C -S3154001BF4090100017400000319203A06092142F0018 -S3154001BF50818A60200100000001000000010000000C -S3154001BF601110014390122028D20200009222600152 -S3154001BF70D22200001080022DAC1000001B1001449B -S3154001BF809A136030912A2002C2034008C222600CF3 -S3154001BF9081C3E008D22340089DE3BF9803100144C2 -S3154001BFA082106030992E60021B100143972E600467 -S3154001BFB0D800400C9A136230901000199202C00DBD -S3154001BFC080A6601F1480000F82102000108000069A -S3154001BFD080A320002280000AC2024000D803200C20 -S3154001BFE080A3200012BFFFFC80A300097FFFFFE46E -S3154001BFF0F02240001080000382102000F022400011 -S3154001C00081C7E00891E800019DE3BF981B100143F9 -S3154001C0108213602CD800600480A30018028000447B -S3154001C020C203602C80A6200022800002B010000CC2 -S3154001C03003100144A32E200282106030E00040111B -S3154001C04080A420000280003D0310014310800012AD -S3154001C050A41061ACD2042008941000199FC30000BB -S3154001C0609010001803100143C20061A480A0600033 -S3154001C0701280002B01000000C204801182007FFF64 -S3154001C080C2248011E004200C80A420000280002BF1 -S3154001C09001000000D804000080A3200022BFFFFB5E -S3154001C0A0E004200C03100143DA00622C80A36000F7 -S3154001C0B0128000089610001203100143821061ACF1 -S3154001C0C0DA00401180A3600032BFFFF0E004200C8B -S3154001C0D0DA02C011031001439A036001C20061A84C -S3154001C0E080A0600002BFFFDCDA22C0119FC0400081 -S3154001C0F001000000D8040000D20420089410001961 -S3154001C1009FC300009010001803100143C20061A4B0 -S3154001C11080A0600022BFFFDAC20480119FC04000A8 -S3154001C1200100000010BFFFD6C2048011DA0060C0D2 -S3154001C13010BFFFBDB00B601F81C7E00881E800005A -S3154001C1408C10000FA74800008B34E0188A09600F55 -S3154001C15080A160030280000C0B1001438A116034F8 -S3154001C1600920000088112070C82140000B100143AE -S3154001C1708A1160500920000088112040C8214000E2 -S3154001C180108000399010200192102006400001DDF8 -S3154001C1900100000080A00008028000330100000079 -S3154001C1A0C2022010113FFC0082084008110003FC26 -S3154001C1B08410400890100002921020019410200C27 -S3154001C1C0400001E60100000080A000080280002630 -S3154001C1D001000000400001F6921000010B100143DE -S3154001C1E08A116034D2214000901000029210200141 -S3154001C1F094102011400001D90100000080A00008E0 -S3154001C2000280001901000000400001E9921000017E -S3154001C210920260100B1001438A116050D2214000F6 -S3154001C22090100002921020019410200D400001CB85 -S3154001C2300100000080A000080280000B0100000000 -S3154001C240400001DB921000010B1001438A11602C62 -S3154001C250D2214000D40260109532A010940AA00F5A -S3154001C260D42160049E10000681C3E008010000004D -S3154001C27003100143821060488210200191D02000B2 -S3154001C28081C3E008010000009DE3BF98031001440B -S3154001C290C20060CC901000189210001980A0600076 -S3154001C2A002800005B01020009FC040000100000040 -S3154001C2B0B010000881C7E00881E800009DE3BF98FF -S3154001C2C003100144C20060C89010001880A06000AD -S3154001C2D002800005B01020009FC040000100000010 -S3154001C2E0B010000881C7E00881E800009DE3BF98CF -S3154001C2F003100144C20060C09010001880A0600085 -S3154001C30002800005B01020009FC0400001000000DF -S3154001C310B010000881C7E00881E800009DE3BF989E -S3154001C32003100144C20060C49010001880A0600050 -S3154001C33002800005B01020009FC0400001000000AF -S3154001C340B010000881C7E00881E800009DE3BF986E -S3154001C35003100144C20060BC9010001880A0600028 -S3154001C36002800005B01020009FC04000010000007F -S3154001C370B010000881C7E00881E800009DE3BF983E -S3154001C38003100144C20060B89010001880A06000FC -S3154001C39002800005B01020009FC04000010000004F -S3154001C3A0B010000881C7E00881E800009DE3BF980E -S3154001C3B003100144C20060B49010001880A06000D0 -S3154001C3C002800005B01020009FC04000010000001F -S3154001C3D0B010000881C7E00881E800009DE3BF98DE -S3154001C3E003100144C20060B0901000189210001969 -S3154001C3F080A0600002800005B01020009FC0400070 -S3154001C40001000000B010000881C7E00881E8000083 -S3154001C4100100000003100071821060E09FC04000DF -S3154001C4200100000003100000821060008198400066 -S3154001C43003100071821061649FC04000010000003A -S3154001C44003100071821060D09FC0400001000000BF -S3154001C4508B4800008B3160188A09600380A1600314 -S3154001C46012800007010000008B4440008B31601CA4 -S3154001C47080A1400012800006010000007FFFFF31CD -S3154001C480010000007FFF9339010000009C23A0407A -S3154001C4907FFF92DC010000008210200191D0200034 -S3154001C4A00100000029000004A68C0014328000031C -S3154001C4B0A02C001491D02000818C000001000000C6 -S3154001C4C0010000000100000081C4800081CCA0046D -S3154001C4D081C3E0080100000081C1E00801000000BD -S3154001C4E0A74800008B34E0188A09600380A16003E5 -S3154001C4F0128000080100000021100143A0142044CD -S3154001C500A2102003E22400008B4440001080000862 -S3154001C51021100143A0142044A2102002E22400006D -S3154001C52021200000E60420248B34E0148A09601F90 -S3154001C53027100143A614E03CCA24C0008A016001C9 -S3154001C54027100143A614E038CA24C000271001432E -S3154001C550A614E0408A216002CA24C00081C3E008D3 -S3154001C5600100000081C3E00801000000834800008B -S3154001C570833060188208600380A060031280000641 -S3154001C5800100000083444000050000088228400263 -S3154001C590A3804000881000000910007181C1201459 -S3154001C5A0010000009DE3BF98031000721B1000724A -S3154001C5B0A01062609A13626080A4000D1A80001078 -S3154001C5C0A210000D10800006C204000080A40011D4 -S3154001C5D01A80000B01000000C204000080A0600028 -S3154001C5E002BFFFFBA00420049FC0400001000000E1 -S3154001C5F080A400112ABFFFFAC204000081C7E008E7 -S3154001C60081E80000AA27A0B0E0256060E2256064C9 -S3154001C610E4256068C2256074C43D6078C83D608089 -S3154001C620CC3D608885400000C425606CF03D60903B -S3154001C630F43D6098F83D60A0FC3D60A8A81020013B -S3154001C640A92D0010808D0013028000130100000007 -S3154001C6508534E00107100143C600E03CA72CC00326 -S3154001C6608414C0028408A0FF81E000008190A000EC -S3154001C670E03BA000E43BA008E83BA010EC3BA0183F -S3154001C680F03BA020F43BA028F83BA030FC3BA0386F -S3154001C69081E8000081C5A0089C10001505100143E2 -S3154001C6A08410A1A0C400800080A080000280000404 -S3154001C6B0010000009FC080009203A060818C200091 -S3154001C6C0821020028328401005100143C400A0387F -S3154001C6D085304002821040028550000080888001EA -S3154001C6E0028000208328A00107100143C600E03CD8 -S3154001C6F08530800382104002820860FF819060008D -S3154001C700C203A06C81806000F01BA090F41BA0982E -S3154001C710F81BA0A0FC1BA0A8C203A074C41BA07850 -S3154001C720C81BA080CC1BA088E003A060E203A064E4 -S3154001C730E403A06881E80000E01BA000E41BA00818 -S3154001C740E81BA010EC1BA018F01BA020F41BA0288E -S3154001C750F81BA030FC1BA0381080000F81E00000C0 -S3154001C760C203A06C81806000F01BA090F41BA098CE -S3154001C770F81BA0A0FC1BA0A8C203A074C41BA078F0 -S3154001C780C81BA080CC1BA088E003A060E203A06484 -S3154001C790E403A068818C2000010000000100000034 -S3154001C7A00100000081C4400081CC8000AA27A0B0CE -S3154001C7B0C2256074C43D6078C83D6080CC3D6088C8 -S3154001C7C085400000C425606CA8102001A92D0010E9 -S3154001C7D0808D001302800013010000008534E001C2 -S3154001C7E007100143C600E03CA72CC0038414C002D5 -S3154001C7F08408A0FF81E000008190A000E03BA000FA -S3154001C800E43BA008E83BA010EC3BA018F03BA0207D -S3154001C810F43BA028F83BA030FC3BA03881E800005F -S3154001C82081C5A0089C100015051001438410A1A0E4 -S3154001C830C400800080A08000028000040100000046 -S3154001C8409FC080009203A060818C2000821020024C -S3154001C8508328401005100143C400A03885304002AA -S3154001C86082104002855000008088800102800019B4 -S3154001C8708328A00107100143C600E03C85308003B0 -S3154001C88082104002820860FF81906000C203A06C62 -S3154001C89081806000C203A074C41BA078C81BA0801D -S3154001C8A0CC1BA08881E80000E01BA000E41BA00887 -S3154001C8B0E81BA010EC1BA018F01BA020F41BA0281D -S3154001C8C0F81BA030FC1BA0381080000881E0000056 -S3154001C8D0C203A06C81806000C203A074C41BA0780F -S3154001C8E0C81BA080CC1BA088818C200001000000C1 -S3154001C8F0010000000100000081C4400081CC80009D -S3154001C900821000089A10380096102000912AE005FE -S3154001C91098034008D40340089132A01880A2000130 -S3154001C920328000089602E0019132A00C900A2FFF56 -S3154001C93080A20009028000079410000C9602E001D3 -S3154001C94080A2E00728BFFFF3912AE005941020005A -S3154001C95081C3E0089010000A821000089810200058 -S3154001C960912B20039A004008D60040089132E018E6 -S3154001C97080A2000932800008980320019132E00C20 -S3154001C980900A2FFF80A2000A028000079610000D30 -S3154001C9909803200180A3200F28BFFFF3912B20038A -S3154001C9A09610200081C3E0089010000BD4022004A9 -S3154001C9B0173FFC00920A400B900A800B9132200CE3 -S3154001C9C0921240081100003F901223F0940A800809 -S3154001C9D0952AA0049412800B920A400A81C3E0086A -S3154001C9E0901000099DE3BF980310007282106248BF -S3154001C9F0DA007FFC80A37FFF02800009A0007FFC54 -S3154001CA008210000D9FC04000A0043FFCC2040000FC -S3154001CA1080A07FFF12BFFFFC0100000081C7E00834 -S3154001CA2081E800009DE3BF9881C7E00881E80000E6 -S3154001CA3000000000000000000000000000000000AF -S3154001CA4000000002FFFFFFFF0000000000000000A1 -S3154001CA5000000002FFFFFFFF000000000000000091 -S3154001CA6040080000000000003CD203AF9EE7561686 -S3154001CA703E7AD7F29ABCAF48400506A800000000AE -S3154001CA80430000009DE3BFA07FFF919B0100000092 -S3154001CA907FFFFFD50100000081C7E00881E8000063 -S3154001CAA09DE3BFA07FFF91760100000081C7E008AA -S3154001CAB081E80000000000000000000000000000C6 -S315400200000000000100000000000000004001CA5844 +S3154001319085A00921C523000081C3E008D0030000B2 +S315400131A01910008098132120D0230000D223200833 +S315400131B0C1030000C303200885A009A1C52300005F +S315400131C081C3E008D0030000191000809813212024 +S315400131D0D0230000C103000083A00520C3230000C3 +S315400131E081C3E008D00300001310008092126138B9 +S315400131F0C51A6008C11A400089A0084091A108C2B9 +S3154001320095A209C495A2894281C3E008D53A000036 +S315400132101310008092126158C1024000C30260043B +S3154001322085A0082087A088A189A0C9A289A10921D2 +S3154001323081C3E008C92200009610200213100080C5 +S3154001324092126138151000809412A138D5024000BF +S31540013250D7028000D5220000D8020000131000805A +S315400132609212615896A2E00112BFFFF901000000D7 +S3154001327081C3E008010000001310008092126138FA +S31540013280151000809412A158C1028000C51A601021 +S3154001329083A0082089A088C08BA109A18DA10942DC +S315400132A08FA1492691A0054681C3E008D13A000085 +S315400132B01110008090122130C11A0000C51A000079 +S315400132C0C91A0000CD1A0000D11A0000D51A000013 +S315400132D0D91A0000DD1A0000E11A0000E51A0000C3 +S315400132E0E91A0000ED1A0000F11A0000F51A000073 +S315400132F0F91A0000FD1A000081C3E0080100000030 +S3154001330029100080A81520F827100080A614E1682E +S31540013310C12CC000E604C000A134E00EA00C200779 +S31540013320A0A42002AE1020002D100080AC15A1688B +S31540013330AE05E001AC05A008C1358000C12D0000F5 +S31540013340EA050000AB35600DAA8D600112BFFFF999 +S3154001335001000000808000100280002F2B3C1FFFDF +S31540013360AA1563FFA60CC015E6250000C10D000095 +S315400133702B100080AA1561742D10004CAC15A3E0EA +S31540013380AE25E001E0054000E025800081D820001F +S3154001339001000000010000000100000001000000E2 +S315400133A001000000010000000100000001000000D2 +S315400133B001000000010000000100000001000000C2 +S315400133C001000000010000000100000001000000B2 +S315400133D001000000010000000100000001000000A2 +S315400133E00000000080A5C00012BFFFE6AA056008E4 +S315400133F0C12D0000E60500002B03C000A614C01530 +S31540013400E6250000C10D000081C4400081CC80004A +S315400134100100000081C4800081CCA00401000000AD +S315400134200100000081C3E00891580000010000003E +S3154001343011100080901220F8C10A0000C02200003D +S31540013440C10A0000C12A0000D40200001300038013 +S31540013450942A800980A0000A3280004D90102003F2 +S315400134601303E000D223BFA0C023BFA4C10BBFA05A +S31540013470C023BFA0151000809412A0E8C1028000AD +S315400134800100000001000000C10BBFA0C10BBFA499 +S3154001349083A00520C12BBFA0D003BFA0808A2200F4 +S315400134A02280003B901020049010200015100080CF +S315400134B09412A108C5028000C902A008D102A00C3D +S315400134C013100080921260E8C70240008DA0894423 +S315400134D081A98AC80100000003800005010000009F +S315400134E0901020011080002A01000000C5028000D2 +S315400134F0C902A008D102A00C13100080921260E804 +S31540013500CB0240008DA0894481A98AC801000000F0 +S315400135100380000501000000901020011080001C6E +S315400135200100000025100080A414A0F0C11C8000F9 +S31540013530C51C800080A000003280000685A008C01E +S3154001354081A80AC2010000001380000301000000A7 +S31540013550901020050100000025100080A414A0F061 +S31540013560C11C8000C51C800080A000000100000035 +S315400135703280000685A008C081A80AC20100000069 +S315400135801380000301000000901020070100000095 +S3154001359081C3E0080100000090102001954400001D +S315400135A09532A01E940AA00380A2800002800040AA +S315400135B09010200080A2A0021680003D13100080CA +S315400135C092126198C11A4000C51A6008FD0260183E +S315400135D095A0003E99A0003E9DA0003E170000C068 +S315400135E09612E078A182C0000100000001000000AF +S315400135F00100000001000000010000000100000080 +S3154001360081A0002083A0002195A0002A99A0002C2A +S315400136109DA0002E170000C09612E07CA182C0003A +S31540013620010000000100000001000000010000004F +S31540013630010000000100000085A0002287A00023B0 +S31540013640A18000000100000001000000010000000F +S3154001365001000000010000000100000089A00842AD +S31540013660A9A2883ED93A4000DD224000CD1A601019 +S31540013670D102600881A90A46010000000380000CBE +S3154001368081AD0A280100000003800009934400002F +S315400136909332601B920A60079010200080A2A0011D +S315400136A002800003902260079022600481C3E008F3 +S315400136B001000000C12BBFA081C3E008D003BFA019 +S315400136C0D023BFA081C3E008C10BBFA00100000009 +S315400136D09DE3BF6040001B94B0102000833A200A4E +S315400136E08208600380A0600102800004010000009E +S315400136F081C7E00881E800007FFFB6C39010200D26 +S31540013700050C40290723CD1B8410A0068610E09B9B +S31540013710C027BFF0C027BFF4C43FBFF8C027BFD002 +S31540013720C027BFD4C027BFC87FFFFF3FC027BFCC3C +S31540013730820A3000821060808400600407280400F9 +S315400137408610E00F0910004CC62040008811230066 +S3154001375007100000882100028939200286110003E2 +S31540013760C620600425100080032784008210601063 +S315400137707FFFFED0C220A0047FFFFFD21103E000ED +S3154001378090102000C024A1687FFFFDD001000000F9 +S31540013790809200091280000601000000C204A1685F +S315400137A080A0600002800004010000007FFFB69DFA +S315400137B09010200B7FFFFDC590103FFA03300600A5 +S315400137C080A2000102800CF880A260007FFFB695BE +S315400137D09010200B7FFFFDBD9010201403100D00AB +S315400137E080A200010280113680A260007FFFB68D63 +S315400137F09010200B7FFFFDB590102062031016201C +S3154001380080A200010280112780A260007FFFB68559 +S315400138109010200B7FFFFDB5901020050310280066 +S3154001382080A2000112800CB501000000C204A1680B +S3154001383080A0600012800CB1010000007FFFFFA153 +S315400138401103C000111C00007FFFFDB09210200043 +S31540013850031FFFFF821063FF80A200011280000B4D +S3154001386001000000C404A168030000708210601FBB +S3154001387084088001030000108210601080A080013E +S3154001388002800005113C00007FFFB6669010200CB7 +S31540013890113C00007FFFFD9D921020000320000097 +S315400138A080A200011280000B01000000C404A1683F +S315400138B0030000708210601F84088001030000101D +S315400138C08210601080A08001028000040100000087 +S315400138D07FFFB6549010200CC024A16890102000A0 +S315400138E07FFFFD8A9210200080A2200012800006F0 +S315400138F003100080C200616880A06000028000055C +S31540013900110144007FFFB6479010200C110144007D +S3154001391013284000901223027FFFFD7C9212600122 +S3154001392080A220001280000601000000C204A168A6 +S3154001393080A06000228000051111FFFF7FFFB6398C +S315400139409010200C1111FFFF7FFFFD78901223FF8D +S315400139500300007F821063FF80A2000112800C6386 +S3154001396001000000C204A16880A0600012800C5FC3 +S3154001397001000000271000807FFFFD64D01CE1E0BC +S31540013980031FFFFF821063FF80A200011280000B1C +S3154001399001000000C404A168030000708210601F8A +S315400139A084088001030000108210601080A080010D +S315400139B002800005351000807FFFB61A9010200C5A +S315400139C035100080D01EA1D0C024A1687FFFFD4FD5 +S315400139D0010000000320000080A200011280000BBC +S315400139E003100080C4006168030000708210601FEC +S315400139F084088001030000108210601080A08001BD +S31540013A00028000052B1000807FFFB6069010200C27 +S31540013A102B100080D01D61F0C024A1687FFFFD3BC3 +S31540013A2001000000031FFFFF821063FF80A2000117 +S31540013A301280000B03100080C4006168030000700F +S31540013A408210601F840880010300001082106010FC +S31540013A5080A08001028000052F1000807FFFB5F114 +S31540013A609010200C2F100080D01DE1B8C024A16811 +S31540013A707FFFFD2601000000C204A1688330600E6D +S31540013A808208600380A060020280000401000000F9 +S31540013A907FFFB5E49010200C7FFFFF0A1103C000A1 +S31540013AA011115804C024A1687FFFFD2890122234C9 +S31540013AB003102B008210624680A200010280107121 +S31540013AC0032000007FFFB5D79010200D113C02AFB7 +S31540013AD07FFFFD1E901220D1033180558210639ADB +S31540013AE080A200010280105F030800007FFFB5CD70 +S31540013AF09010200D1111FC007FFFFD1C921020003B +S31540013B00031FE00080A200011280000B01000000AB +S31540013B10C404A168030000708210601F84088001FC +S31540013B20030000108210600880A08001028000041A +S31540013B30010000007FFFB5BB9010200DC024A16895 +S31540013B4011207C01130001007FFFFD0890122030F7 +S31540013B500320000080A200011280000B03100080A8 +S31540013B60C4006168030000708210601F84088001F0 +S31540013B70030000108210600480A0800102800004CE +S31540013B80010000007FFFB5A79010200DC024A16859 +S31540013B90901020007FFFFCF59210200080A22000AB +S31540013BA01280000603100080C200616880A0600098 +S31540013BB002800004010000007FFFB59A9010200D9D +S31540013BC07FFFFCEAD01CE1E003100080C20061E8FF +S31540013BD080A2000112800BC101000000C204A1684D +S31540013BE080A0600012800BBD0100000037100080EC +S31540013BF07FFFFCDED01EE1D8031FE00080A200015A +S31540013C0012800BB301000000C204A16880A06000CD +S31540013C1012800BAF010000007FFFFCD4D01D61F084 +S31540013C2003100080C200620080A200011280000BD6 +S31540013C3001000000C404A168030000708210601FE7 +S31540013C4084088001030000108210601080A080016A +S31540013C5002800005D01DE1B87FFFB5729010200D9E +S31540013C60D01DE1B8C024A1687FFFFCC0010000005F +S31540013C70C204A1688330600E8208600380A060029E +S31540013C8002800004010000007FFFB5669010200D00 +S31540013C907FFFFE8C1103E0002108C6AFC024A16856 +S31540013CA0901420DE7FFFFCB9A01420DE80A2001014 +S31540013CB012800B8303100080C200616880A06000FF +S31540013CC012800B7F010000002108C6AF901420DE50 +S31540013CD07FFFFCBEA01420DE80A2001012800B7470 +S31540013CE001000000C204A16880A0600012800B7030 +S31540013CF0010000001128C6AF7FFFFCB4901220DE00 +S31540013D000308C6AF821060DE80A2000112800B64F8 +S31540013D1001000000C204A16880A0600012800B600F +S31540013D20010000001108C6AF7FFFFCA0901220DE03 +S31540013D300328C6AF821060DE80A2000112800B54B8 +S31540013D4001000000C204A16880A0600012800B50EF +S31540013D50010000001128C6AF7FFFFC94901220DEBF +S31540013D600308C6AF821060DE80A2000112800B45B7 +S31540013D7001000000C204A16880A0600012800B41CE +S31540013D80010000007FFFFE4F1103E00011151BC02B +S31540013D901310C821901221039212614115351BC09F +S31540013DA01710C8219412A1037FFFFC909612E1419E +S31540013DB080A2200212800B2B01000000C204A168E0 +S31540013DC080A0600012800B270100000011351BC046 +S31540013DD01310C821901221039212614115151BC07F +S31540013DE01710C8219412A1037FFFFC809612E1416E +S31540013DF080A2200112800B1F01000000C204A168AD +S31540013E0080A0600012800B1B010000009010200072 +S31540013E1092102000152000007FFFFC7496102000B0 +S31540013E2080A220001280000601000000C204A168A1 +S31540013E3080A0600002800005D01EE1D87FFFB4F962 +S31540013E409010200FD01EE1D87FFFFC68D41EA1D070 +S31540013E5080A2200212800AFF01000000C204A1686C +S31540013E6080A0600012800AFB0100000011151BC0F2 +S31540013E701310C821901221039212614115151BE8B6 +S31540013E801710C8219412A1037FFFFC589612E141F5 +S31540013E9080A2200112800AEB01000000C204A16841 +S31540013EA080A0600012800AE70100000011151BE89E +S31540013EB01310C821901221039212614115151BC09E +S31540013EC01710C8219412A1037FFFFC489612E141C5 +S31540013ED080A2200212800AD701000000C204A16814 +S31540013EE080A0600012800AD301000000D41CE1E0EA +S31540013EF011151BE81310C821901221037FFFFC3BCB +S31540013F009212614180A2200312800AC6010000007C +S31540013F10C204A16880A0600012800AC201000000AC +S31540013F20D41D61F011151BE81310C821901221030D +S31540013F307FFFFC2E9212614180A220031280000B6A +S31540013F4001000000C404A168030000708210601FD4 +S31540013F5084088001030000108210601080A0800157 +S31540013F6002800005D41DE1B87FFFB4AE9010200F4A +S31540013F70D41DE1B8C024A16811151BE81310C8214E +S31540013F80901221037FFFFC199212614180A2200207 +S31540013F9012800AA003100080C200616880A0600000 +S31540013FA012800A9C01000000D01DE1B815151BE8DE +S31540013FB01710C8219412A1037FFFFC0C9612E14110 +S31540013FC080A2200112800A8B01000000C204A16870 +S31540013FD080A0600012800A8701000000D01CE1E049 +S31540013FE015151BE81710C8219412A1037FFFFBFF8B +S31540013FF09612E14180A2200312800A82010000004C +S31540014000C204A16880A0600012800A7E01000000FF +S31540014010D01D61F015151BE81710C8219412A10394 +S315400140207FFFFBF29612E14180A220031280000B32 +S3154001403001000000C404A168030000708210601FE3 +S3154001404084088001030000108210601080A0800166 +S3154001405002800004010000007FFFB4729010200F1F +S31540014060C024A16811151BC01310C8219012210349 +S315400140709212614115351BC01710C8219412A10334 +S315400140807FFFFBED9612E14180A2200212800A5584 +S3154001409003100080C200616880A0600012800A514E +S315400140A00100000011351BC01310C82190122103D5 +S315400140B09212614115151BC01710C8219412A10314 +S315400140C07FFFFBDD9612E14180A2200112800A4169 +S315400140D001000000C204A16880A0600012800A3D70 +S315400140E001000000901020009210200015200000D1 +S315400140F07FFFFBD19610200080A22000128000068F +S3154001410001000000C204A16880A060000280000591 +S31540014110D01EE1D87FFFB4439010200FD01EE1D8C6 +S315400141207FFFFBC5D41EA1D080A2200212800A25A2 +S3154001413001000000C204A16880A0600012800A212B +S315400141400100000011151BC01310C8219012210354 +S315400141509212614115151BE81710C8219412A1034B +S315400141607FFFFBB59612E14180A2200112800A1120 +S3154001417001000000C204A16880A0600012800A0DFF +S315400141800100000011151BE81310C82190122103EC +S315400141909212614115151BC01710C8219412A10333 +S315400141A07FFFFBA59612E14180A22002128009FD04 +S315400141B001000000C204A16880A06000128009F9D4 +S315400141C001000000D41CE1E011151BE81310C821C1 +S315400141D0901221037FFFFB989212614180A2200336 +S315400141E01280000B01000000C404A16803000070A6 +S315400141F08210601F84088001030000108210601045 +S3154001420080A0800102800005D41D61F07FFFB405C6 +S315400142109010200FD41D61F011151BE81310C82111 +S31540014220901221037FFFFB849212614180A22003F9 +S315400142301280000B01000000C404A1680300007055 +S315400142408210601F840880010300001082106010F4 +S3154001425080A0800102800005D41DE1B87FFFB3F143 +S315400142609010200FD41DE1B8C024A16811151BE898 +S315400142701310C821901221037FFFFB6F92126141F7 +S3154001428080A22002128009BF03100080C20061682B +S3154001429080A06000128009BB01000000D01DE1B87A +S315400142A015151BE81710C8219412A1037FFFFB6265 +S315400142B09612E14180A22001128009B60100000058 +S315400142C0C204A16880A06000128009B2010000000A +S315400142D0D01CE1E015151BE81710C8219412A10363 +S315400142E07FFFFB559612E14180A220031280000B0D +S315400142F001000000C404A168030000708210601F21 +S3154001430084088001030000108210601080A08001A3 +S3154001431002800005D01D61F07FFFB3C29010200FCF +S31540014320D01D61F015151BE81710C8219412A10381 +S315400143307FFFFB419612E14180A220031280000BD0 +S3154001434001000000C404A168030000708210601FD0 +S3154001435084088001030000108210601080A0800153 +S3154001436002800004010000007FFFB3AE9010200FD1 +S31540014370C024A168110048EA13048D15901223CD7B +S315400143807FFFFB3E9212627880A22001128009795A +S3154001439003100080C200616880A060001280097528 +S315400143A001000000110048EA13048D15901223CD37 +S315400143B07FFFFB439212627880A220011280096A34 +S315400143C001000000C204A16880A060001280096655 +S315400143D001000000C024A1687FFFFCBA1103C000A0 +S315400143E023100124A807BFF8BA07BFD090100014C4 +S315400143F09210001D7FFFFA6C94146150C204615003 +S31540014400C407BFF880A0800102800E0CA014615041 +S315400144107FFFB384901020102D100080901000145F +S315400144209215A1C87FFFFA6094146150C40461508B +S31540014430C205A1C880A0800122800DF6C4042004D3 +S315400144407FFFB37890102010901000149214E1E091 +S315400144507FFFFA5594146150C4046150C204E1E0EF +S3154001446080A0800102800DE1B214E1E07FFFB36DCF +S315400144709010201090100014921561F07FFFFA4AB7 +S3154001448094146150C404A168030000708210601F37 +S3154001449084088001030000108210601080A0800112 +S315400144A002800004010000007FFFB35E90102010DF +S315400144B0C024A1687FFFFC83901020009010001457 +S315400144C0921561F07FFFFA389414615039100080DB +S315400144D0C4046150C20721F880A0800122800DBD2D +S315400144E0C40420047FFFB34F901020107FFFFC755A +S315400144F01103C000901000149215E1B87FFFFA2A0B +S3154001450094146150C204A1688330600E820860032E +S3154001451080A0600202800004010000007FFFB341D9 +S3154001452090102010C024A1689010001D9210001414 +S315400145307FFFFA1D94146150C4046150C207BFF84D +S3154001454080A0800122800D9AC40420047FFFB335E8 +S31540014550901020109010001D9215A1C87FFFFA12ED +S3154001456094146150C4046150C205A1C880A0800161 +S3154001457022800D84C40420047FFFB32A90102010AA +S315400145809010001D9214E1E07FFFFA0794146150E8 +S31540014590C4046150C204E1E080A0800122800D7014 +S315400145A0C40420047FFFB31F901020109010001DFB +S315400145B0921561F07FFFF9FC94146150C404A1681F +S315400145C0030000708210601F840880010300001000 +S315400145D08210601080A0800102800004010000006A +S315400145E07FFFB310901020107FFFFC369010200003 +S315400145F09010001D921561F07FFFF9EB9414615004 +S31540014600C4046150C20721F880A0800122800D4D6B +S31540014610C40420047FFFB303901020107FFFFC29C0 +S315400146201103C0009010001D9215E1B87FFFF9DE1D +S3154001463094146150C204A1688330600E82086003FD +S3154001464080A0600202800004010000007FFFB2F5F5 +S3154001465090102010C024A1689015A1C89210001492 +S315400146607FFFF9D194146150C4046150C205A1C8B9 +S3154001467080A0800122800D28C40420047FFFB2E976 +S31540014680901020109015A1C89210001D7FFFF9C609 +S3154001469094146150C4046150C205A1C880A0800130 +S315400146A022800D12C40420047FFFB2DE9010201038 +S315400146B09016E1D8941461507FFFF9BB921000081F +S315400146C0C4046150C206E1D880A0800122800CFC5E +S315400146D0C40420047FFFB2D3901020109016A1D0BD +S315400146E0941461507FFFF9B092100008C4046150E0 +S315400146F0C206A1D080A0800122800CE6C404200419 +S315400147007FFFB2C8901020109016A1D09216E1D822 +S315400147107FFFF9A594146150C404A1680300007099 +S315400147208210601F8408800103000010821060100F +S3154001473080A0800102800004010000007FFFB2B921 +S31540014740901020107FFFFBDF901020009016A1D023 +S315400147509216E1D87FFFF99494146150C4046150D4 +S31540014760C20721F880A0800122800CC3C404200422 +S315400147707FFFB2AC901020107FFFFBD21103C00027 +S315400147809016E1D8C024A1689216A1D07FFFF98680 +S3154001479094146150C4046150C20721F880A080017D +S315400147A022800CA4C40420047FFFB29E90102010E6 +S315400147B09015A1C89215E1B87FFFF97B9414615019 +S315400147C0C204A1688330600E8208600380A0600243 +S315400147D002800004010000007FFFB2929010201079 +S315400147E0C024A1689014E1E0921000147FFFF96E95 +S315400147F094146150C4046150C204E1E080A0800178 +S3154001480022800C83C40420047FFFB28690102010BE +S315400148109014E1E09210001D7FFFF96394146150FA +S31540014820C4046150C204E1E080A0800122800C6F83 +S31540014830C40420047FFFB27B901020109014E1E065 +S315400148409215A1C87FFFF95894146150C404615070 +S31540014850C204E1E080A0800122800C5BC4042004F4 +S315400148607FFFB270901020109014E1E094146150D3 +S315400148707FFFF94D92100008C4046150C204E1E083 +S3154001488080A0800122800C47C40420047FFFB265CA +S31540014890901020109014E1E0921561F07FFFF942EB +S315400148A094146150C404A168030000708210601F13 +S315400148B084088001030000108210601080A08001EE +S315400148C002800004010000007FFFB25690102010C4 +S315400148D0C024A168901561F0921000147FFFF9324F +S315400148E094146150C404A168030000708210601FD3 +S315400148F084088001030000108210601080A08001AE +S3154001490002800004010000007FFFB2469010201093 +S31540014910C024A168901561F09210001D7FFFF92215 +S3154001492094146150C404A168030000708210601F92 +S3154001493084088001030000108210601080A080016D +S3154001494002800004010000007FFFB2369010201063 +S31540014950C024A168901561F09215A1C87FFFF91294 +S3154001496094146150C404A168030000708210601F52 +S3154001497084088001030000108210601080A080012D +S3154001498002800004010000007FFFB2269010201033 +S31540014990C024A168901561F09214E1E07FFFF9020D +S315400149A094146150C404A168030000708210601F12 +S315400149B084088001030000108210601080A08001ED +S315400149C002800005901561F07FFFB216901020100D +S315400149D0901561F0C024A168941461507FFFF8F2EC +S315400149E092100008C404A168030000708210601F81 +S315400149F084088001030000108210601080A08001AD +S31540014A0002800004010000007FFFB20690102010D2 +S31540014A10C024A168901561F09215E1B87FFFF8E2D4 +S31540014A2094146150C204A1688330600E8208600309 +S31540014A3080A0600202800004010000007FFFB1F9FE +S31540014A40901020107FFFFB1F1103C0000310008050 +S31540014A50C024A1688210633010800009B010200084 +S31540014A607FFFB1F090102010C207BFC4B0062001ED +S31540014A7080A6200D0280002282006018852E200328 +S31540014A80912E200590220002051000808410A3205B +S31540014A90C227BFC490008008932E2001151001241F +S31540014AA0920240189412A15092026001932A600327 +S31540014AB07FFFF8BD92008009C207BFC4C60040000F +S31540014AC0C404000080A0C00232BFFFE6C227BFC4B3 +S31540014AD0C60060040910012488112150C401200434 +S31540014AE080A0C00232BFFFDFC227BFC4B00620018B +S31540014AF080A6200D12BFFFE282006018C204A168A1 +S31540014B0080A0600012800BA30100000011100081FB +S31540014B1094146150901220587FFFF8A39202200806 +S31540014B200310008082106320C4006148C2046150B2 +S31540014B3080A0800102800B86071000807FFFB1B9FB +S31540014B409010201011100081941461509012207021 +S31540014B507FFFF8959202200809100080C204615037 +S31540014B6088112320C401216080A0800122800B6925 +S31540014B70C40121647FFFB1AB901020101110008158 +S31540014B8094146150901220887FFFF8879202200882 +S31540014B900310008082106320C4006178C204615012 +S31540014BA080A0800102800B4B071000807FFFB19DE2 +S31540014BB090102010C024A16811100000921020000E +S31540014BC0150FFC007FFFF94F96102000030FFC00E4 +S31540014BD080A2000102800B3880A260007FFFB19164 +S31540014BE0901020101110000092102000152FFC008B +S31540014BF07FFFF944961020000310020080A20001B5 +S31540014C0002800B2680A260007FFFB18690102010A3 +S31540014C101130000092102000150FFC007FFFF9397A +S31540014C20961020000330020080A2000102800B147E +S31540014C3080A260007FFFB17B9010201011300000F0 +S31540014C4092102000152FFC007FFFF92E96102000B0 +S31540014C50032FFC0080A2000102800B0280A26000AB +S31540014C607FFFB17090102010111000007FFFF92FC7 +S31540014C70130FE0000310100080A20001128007B656 +S31540014C8001000000C204A16880A06000128007B242 +S31540014C9001000000111000007FFFF92E130FE00004 +S31540014CA0030FE00080A20001128007A70100000067 +S31540014CB0C204A16880A06000128007A30100000021 +S31540014CC009100080C024A16890100014941461500A +S31540014CD07FFFF848921121C0C4046150C206A1D099 +S31540014CE080A0800122800ACFC40420047FFFB14DF9 +S31540014CF090102011C024A168901000149216E1D89A +S31540014D007FFFF83C94146150C4046150C207BFC888 +S31540014D1080A0800122800ABAC40420047FFFB141E9 +S31540014D2090102011901000149214E1E07FFFF831A9 +S31540014D3094146150C4046150C204E1E080A0800132 +S31540014D4022800AA6C40420047FFFB13690102011A8 +S31540014D5090100014921561F07FFFF826941461506B +S31540014D60C4046150C20721F880A0800122800A8ACA +S31540014D70C40420047FFFB12B901020119010001421 +S31540014D809215E1B87FFFF81B94146150030000703F +S31540014D90C404A168840880010300002080A080012A +S31540014DA002800004010000007FFFB11E9010201117 +S31540014DB0C024A1689010001D921000147FFFF80DC9 +S31540014DC094146150C4046150C207BFD080A08001D1 +S31540014DD022800A68C40420047FFFB112901020117A +S31540014DE0031000809207BFC8901061C07FFFF80191 +S31540014DF094146150C4046150C20721F880A0800117 +S31540014E0022800A4CC40420047FFFB1069010201171 +S31540014E1009100080C024A168901121C09216E1D8E2 +S31540014E207FFFF7F494146150C40461500710008069 +S31540014E30C200E1C080A0800122800A34C40420045B +S31540014E407FFFB0F8901020119010001D9214E1E000 +S31540014E507FFFF7E894146150C4046150C204E1E055 +S31540014E6080A0800122800A20C40420047FFFB0ED87 +S31540014E70901020079010001D921561F07FFFF7DD1D +S31540014E8094146150C404A168030000708210601F2D +S31540014E9084088001030000108210601080A0800108 +S31540014EA002800004010000007FFFB0DE9010201157 +S31540014EB0C024A1689010001D9215E1B87FFFF7CD7F +S31540014EC09414615003000070C404A16884088001F1 +S31540014ED00300002080A08001028000040100000040 +S31540014EE07FFFB0D090102011C024A1689016A1D0A8 +S31540014EF0921000147FFFF7BF94146150C4046150AF +S31540014F00C206A1D080A08001228009ECC4042004FD +S31540014F107FFFB0C490102011091000809016A1D0D7 +S31540014F20921121C07FFFF7B394146150C4046150BC +S31540014F30C206E1D880A08001228009D5C40420049C +S31540014F407FFFB0B8901020119015A1C894146150FC +S31540014F507FFFF7A892100008C4046150C20721F8E8 +S31540014F6080A08001228009BAC40420047FFFB0AD2D +S31540014F7090102011C024A1689015A1C89214E1E0B7 +S31540014F807FFFF79C94146150C4046150C204E1E070 +S31540014F9080A08001228009A5C40420047FFFB0A11E +S31540014FA0901020119015A1C8921561F07FFFF791DD +S31540014FB094146150C4046150C20721F880A0800155 +S31540014FC02280098AC40420047FFFB09690102011E4 +S31540014FD0C024A1689015A1C89215E1B87FFFF78555 +S31540014FE09414615003000070C404A16884088001D0 +S31540014FF00300002080A0800102800004010000001F +S315400150007FFFB08890102011C024A1689014E1E080 +S31540015010921000147FFFF77794146150C4046150D5 +S31540015020C204E1E080A0800122800967C404200413 +S315400150307FFFB07C901020119014E1E09210001D8A +S315400150407FFFF76C94146150C4046150C204E1E0DF +S3154001505080A0800122800953C40420047FFFB071DF +S31540015060901020119014E1E09215A1C87FFFF761DD +S3154001507094146150C4046150C204E1E080A08001EF +S315400150802280093FC40420047FFFB066901020119E +S315400150909014E1E0941461507FFFF7569210000896 +S315400150A0C4046150C204E1E080A080012280092B42 +S315400150B0C40420047FFFB05B901020119014E1E0FE +S315400150C0921561F07FFFF74B94146150C40461500F +S315400150D0C20721F880A080012280090FC404200460 +S315400150E07FFFB050901020119014E1E09215E1B885 +S315400150F07FFFF7409414615003000070C404A16817 +S31540015100840880010300002080A080010280000500 +S31540015110901561F07FFFB04390102011901561F01A +S31540015120921000147FFFF73394146150C404A168B0 +S31540015130030000708210601F840880010300001084 +S315400151408210601080A080010280000401000000EE +S315400151507FFFB03490102011C024A168901561F0F2 +S315400151609210001D7FFFF72394146150C404A16877 +S31540015170030000708210601F840880010300001044 +S315400151808210601080A080010280000401000000AE +S315400151907FFFB02490102011C024A168901561F0C2 +S315400151A09215A1C87FFFF71394146150C404A168F6 +S315400151B0030000708210601F840880010300001004 +S315400151C08210601080A0800102800004010000006E +S315400151D07FFFB01490102011C024A168901561F092 +S315400151E09214E1E07FFFF70394146150C404A1686F +S315400151F0030000708210601F8408800103000010C4 +S315400152008210601080A0800102800005901561F037 +S315400152107FFFB00490102011901561F0C024A16861 +S31540015220941461507FFFF6F392100008C404A168FC +S31540015230030000708210601F840880010300001083 +S315400152408210601080A080010280000401000000ED +S315400152507FFFAFF490102011C024A168901561F032 +S315400152609215E1B87FFFF6E3941461500300007094 +S31540015270C404A168840880010300002080A0800145 +S3154001528002800005051FC0007FFFAFE69010201188 +S31540015290051FC0000700C0008410A1028610E0B0BF +S315400152A0C024A168B007BFE0C43FBFE805203E83E4 +S315400152B0070021C88410A3FF8610E3A19007BFE829 +S315400152C092100018C43FBFE07FFFF6CA9407BFD8CB +S315400152D0C407BFD8033FFC0080A08001028008803C +S315400152E0C207BFDC7FFFAFCF901020110500400001 +S315400152F00700C0008410A1028610E0B0C024A16856 +S315400153009007BFE8C43FBFE805108683070021C860 +S315400153108410A3FF8610E3A1921000189407BFD80A +S315400153207FFFF6B4C43FBFE0C207BFDCC407BFD8A6 +S31540015330809080011280000B03100080C4006168D8 +S31540015340030000708210601F840880010300001072 +S315400153508210600480A0800102800005050006AF2E +S315400153607FFFAFB090102011050006AF86102010C8 +S31540015370C024A1689007BFE8C43FBFE8050FFC0001 +S31540015380070281D88410A0408610E10C92100018C3 +S315400153909407BFD87FFFF697C43FBFE0C407BFD885 +S315400153A0030006AE8210639580A080010280084208 +S315400153B0C407BFDC7FFFAF9B90102011050006AFED +S315400153C086102010C024A1689007BFE8C43FBFE8FB +S315400153D0050FFFFF070281D88410A3408610E10C18 +S315400153E0921000189407BFD87FFFF682C43FBFE0F2 +S315400153F0C207BFDCC407BFD8809080011280000B72 +S3154001540003100080C4006168030000708210601FB1 +S3154001541084088001030000108210600480A080018E +S3154001542002800004010000007FFFAF7E9010201132 +S31540015430C024A168111088007FFFF75A131001009C +S31540015440031066C9821062CA80A20001128005BAA1 +S3154001545003100080C200616880A06000128005B61A +S31540015460010000001111BBFE130C70407FFFF74D88 +S31540015470901223FF031527CA8210611E80A20001E4 +S31540015480128005A901000000C204A16880A0600045 +S31540015490128005A501000000111E607E1310C7FF92 +S315400154A07FFFF740921263FC031D73FC8210633841 +S315400154B080A200011280059801000000C204A16883 +S315400154C080A06000128005940100000011002000B8 +S315400154D0130FE0007FFFF7339212600180A2200094 +S315400154E01280000B01000000C404A1680300007093 +S315400154F08210601F8408800103000010821060043E +S3154001550080A0800102800005110FE0007FFFAF45BA +S3154001551090102011110FE000C024A1687FFFF721F0 +S3154001552092100008030FE00080A200011280057668 +S3154001553003100080C200616880A06000128005727D +S315400155400100000011002000130FE0007FFFF71556 +S315400155509212600180A220001280000B010000001F +S31540015560C404A168030000708210601F8408800192 +S31540015570030000108210600480A0800102800005B3 +S31540015580031000807FFFAF27901020110310008089 +S31540015590C024A168921061C0901000147FFFF607E5 +S315400155A094146150C404615007100080C200E1C0E8 +S315400155B080A08001228007B6C40420047FFFAF1972 +S315400155C090102012901000149216E1D87FFFF5FB3F +S315400155D094146150C4046150C206E1D880A0800190 +S315400155E0228007A0C40420047FFFAF0E9010201232 +S315400155F0901000149214E1E07FFFF5F0941461508D +S31540015600C4046150C204E1E080A080012280078C7D +S31540015610C40420047FFFAF039010201290100014A1 +S31540015620921561F07FFFF5E594146150C404615011 +S31540015630C20721F880A0800122800770C40420049B +S315400156407FFFAEF890102012901000149215E1B829 +S315400156507FFFF5DA9414615003000070C404A16819 +S31540015660840880010300002080A08001028000049C +S31540015670010000007FFFAEEB90102012C024A1680C +S315400156809010001D921000147FFFF5CC94146150C8 +S31540015690C4046150C207BFD080A080012280074E5A +S315400156A0C40420047FFFAEDF901020120310008057 +S315400156B09216A1D0901061C07FFFF5C0941461503D +S315400156C0C4046150C20721F880A0800122800732BC +S315400156D0C40420047FFFAED390102012C024A168D9 +S315400156E09010001D9214E1E07FFFF5B494146150CF +S315400156F0C4046150C204E1E080A080012280071DFC +S31540015700C40420047FFFAEC7901024999010001D59 +S31540015710921561F07FFFF5A994146150C40461505C +S31540015720C20721F880A0800122800701C404200419 +S315400157307FFFAEBC901020129010001D9215E1B86B +S315400157407FFFF59E9414615003000070C404A16864 +S31540015750840880010300002080A0800102800004AB +S31540015760010000007FFFAEAF90102012C024A16857 +S315400157709015A1C8921000147FFFF59094146150C2 +S31540015780C4046150C205A1C880A08001228006DD03 +S31540015790C40420047FFFAEA3901020129015A1C827 +S315400157A09210001D7FFFF58594146150C404615029 +S315400157B0C20721F880A08001228006C2C4042004C9 +S315400157C07FFFAE9890102012C024A1689015A1C801 +S315400157D09214E1E07FFFF57994146150C40461505D +S315400157E0C204E1E080A08001228006ADC404200409 +S315400157F07FFFAE8C901020129015A1C8921561F0D2 +S315400158007FFFF56E94146150C4046150C20721F8BC +S3154001581080A0800122800691C40420047FFFAE81CE +S31540015820901020129015A1C89215E1B87FFFF5633B +S315400158309414615003000070C404A1688408800177 +S315400158400300002080A080010280000401000000C6 +S315400158507FFFAE7490102012C024A1689014E1E03D +S31540015860921000147FFFF55594146150C4046150A1 +S31540015870C204E1E080A080012280066FC4042004B6 +S315400158807FFFAE68901020129014E1E09210001D47 +S315400158907FFFF54A94146150C4046150C204E1E0AB +S315400158A080A080012280065BC40420047FFFAE5D98 +S315400158B0901020129014E1E09215A1C87FFFF53FA8 +S315400158C094146150C4046150C204E1E080A0800197 +S315400158D022800647C40420047FFFAE529010201256 +S315400158E09014E1E0941461507FFFF5349210000862 +S315400158F0C4046150C204E1E080A0800122800633E5 +S31540015900C40420047FFFAE47901020129014E1E0BA +S31540015910921561F07FFFF52994146150C404A16882 +S31540015920030000708210601F84088001030000108C +S315400159308210601080A080010280000401000000F6 +S315400159407FFFAE3890102012C024A168901561F0F7 +S31540015950921000147FFFF51994146150C404A16894 +S31540015960030000708210601F84088001030000104C +S315400159708210601080A080010280000401000000B6 +S315400159807FFFAE2890102012C024A1689210001DFE +S31540015990901561F07FFFF50994146150C404A16824 +S315400159A0030000708210601F84088001030000100C +S315400159B08210601080A08001028000040100000076 +S315400159C07FFFAE1890102012C024A168901561F097 +S315400159D09215A1C87FFFF4F994146150C404A168DB +S315400159E0030000708210601F8408800103000010CC +S315400159F08210601080A08001028000040100000036 +S31540015A007FFFAE0890102012C024A168901561F066 +S31540015A109214E1E07FFFF4E994146150C404A16853 +S31540015A20030000708210601F84088001030000108B +S31540015A308210601080A0800102800005901561F0FF +S31540015A407FFFADF890102012901561F0C024A16837 +S31540015A50941461507FFFF4D992100008C404A168E0 +S31540015A60030000708210601F84088001030000104B +S31540015A708210601080A080010280000401000000B5 +S31540015A807FFFADE890102012C024A168901561F007 +S31540015A909215E1B87FFFF4C994146150C204A1681C +S31540015AA08330600E8208600380A060020280000598 +S31540015AB01103C0007FFFADDB901020121103C0001F +S31540015AC07FFFF70031100080B0162228C024A1685C +S31540015AD010800008BA1020007FFFADD2901020122E +S31540015AE0BA07600180A7600602800024B00620182C +S31540015AF0832F60030910008088112218912F6005B9 +S31540015B00932F6001902200019202401D90010008EE +S31540015B109202600115100124932A60039412A15048 +S31540015B207FFFF4A692010009C4060000C2040000EA +S31540015B3080A0800112BFFFE907100124C40620049A +S31540015B408610E150C200E00480A0800112BFFFE34D +S31540015B500910008088112168C201000080A0600000 +S31540015B6012BFFFDE01000000BA07600180A7600690 +S31540015B7012BFFFE0B0062018111000809414615046 +S31540015B80901222A87FFFF48D920220080310008014 +S31540015B9082106218C40060A0C204615080A08001D6 +S31540015BA00280057A071000807FFFAD9E901020127B +S31540015BB0C024A1681110008094146150901222C033 +S31540015BC07FFFF47E9202200809100080C2046150D2 +S31540015BD088112218C40120B880A080012280055D69 +S31540015BE0C40120BC7FFFAD8F90102012C024A16854 +S31540015BF01110008094146150901222D87FFFF46FE7 +S31540015C00920220080310008082106218C40060D0FE +S31540015C10C204615080A080010280053E07100080C9 +S31540015C207FFFAD8090102012C024A1681110008022 +S31540015C3094146150901222F07FFFF4609202200882 +S31540015C4009100080C204615088112218C40120E85D +S31540015C5080A0800122800521C40120EC7FFFAD7127 +S31540015C6090102012C024A168111000809414615034 +S31540015C70901223087FFFF4519202200803100080FE +S31540015C8082106218C4006100C204615080A0800184 +S31540015C9002800502071000807FFFAD62901020123E +S31540015CA0C024A168111010007FFFF53413100000C5 +S31540015CB00310300080A20001128003B70310008058 +S31540015CC0C200616880A06000128003B30100000039 +S31540015CD0111FE000131000007FFFF43D9414615042 +S31540015CE0C4046150031FFC0080A08001228004E3AC +S31540015CF0C20420047FFFAD4B9010201B111FE00012 +S31540015D00133000007FFFF43294146150C404615093 +S31540015D10033FFC0080A08001228004D0C2042004FD +S31540015D207FFFAD409010201C1110000092102010F2 +S31540015D307FFFF4279414615003000070C404A168E6 +S31540015D40840880010300002080A0800102800004B5 +S31540015D50010000007FFFAD339010201DC024A168D3 +S31540015D6011002000130FC0007FFFF41994146150F5 +S31540015D70C4046150030E000080A08001228004AF5C +S31540015D80C20420047FFFAD279010201E111FDFFFA4 +S31540015D9013100000901223FF7FFFF40D94146150FD +S31540015DA0C40461500311FFFF821063FF80A080018C +S31540015DB022800499C40420047FFFAD1A9010201F4D +S31540015DC0111FD000130FF0007FFFF40194146150AE +S31540015DD0C40461500311FC8080A0800122800486A6 +S31540015DE0C20420047FFFAD0F90102021111FDFFF59 +S31540015DF094146150901223FF7FFFF3F5921000082F +S31540015E00C40461500313FBFF821063FF80A080012D +S31540015E102280046FC40420047FFFAD02901020202D +S31540015E207FFFF6281103C0009007BFC8C024A168B0 +S31540015E307FFFF3F692146150C4046150C207BFC894 +S31540015E4080A0800122800459C40420047FFFACF560 +S31540015E509010201309100080921461507FFFF3EBDC +S31540015E60901121C005100080C200A1C0C404615038 +S31540015E7080A0800102800442071000807FFFACE9C8 +S31540015E80901020139016E1D87FFFF3E092146150F1 +S31540015E90C4046150C206E1D880A080010280042D6D +S31540015EA0091000807FFFACDF901020139016A1D01F +S31540015EB07FFFF3D692146150C4046150C20721F8A2 +S31540015EC080A0800122800413C40420047FFFACD546 +S31540015ED090102013C024A168901561F07FFFF3CB89 +S31540015EE092146150C4046150C20721F880A0800118 +S31540015EF0228003F8C40420047FFFACCA901020130B +S31540015F00C024A1689014E1E07FFFF3C09214615070 +S31540015F10C204E1E0C404615080A08001228003E410 +S31540015F20C20660047FFFACBF9010201305100C0021 +S31540015F30861020009010001492146150C43FBFF89F +S31540015F4005300F78070C00088610E0017FFFF3AF9C +S31540015F50C43FBFF0C40461500310040080A0800117 +S31540015F60228003CBC20420047FFFACAE90102013E5 +S31540015F70A607BFF0921461507FFFF3A4901000135F +S31540015F80C20721F8C404615080A08001028003B099 +S31540015F90051000807FFFACA3901020139015E1B847 +S31540015FA07FFFF39A92146150C204A1688330600E58 +S31540015FB08208600380A060020280000401000000A4 +S31540015FC07FFFAC9890102013C024A1687FFFF47F17 +S31540015FD01111F2000310E80080A20001128002EBC9 +S31540015FE003100080C200616880A06000128002E751 +S31540015FF0010000007FFFF5B3111000001101F58982 +S315400160007FFFF472901221E20308E96480A2000145 +S31540016010128002DB01000000C204A16880A060007A +S31540016020128002D7010000007FFFF4681112A20816 +S315400160300311410080A20001128002CE010000003E +S31540016040C204A16880A06000128002CA010000005B +S315400160507FFFF59C11001000901000149215E1B8D5 +S315400160607FFFF35194146150C404615003100C0036 +S3154001607080A080012280036EC20420047FFFAC69A8 +S31540016080901020149015E1B8921000137FFFF34B46 +S3154001609094146150C40461500320000080A0800123 +S315400160A02280035BC20420047FFFAC5E9010201463 +S315400160B07FFFF38E90102001030FE00080A20001C4 +S315400160C0128002A901000000C204A16880A06000FC +S315400160D0128002A5010000007FFFF37C9010200191 +S315400160E0030FFC0080A200010280034280A26000EF +S315400160F07FFFAC4C901020147FFFF57211101000F9 +S31540016100D41EE1D87FFFF3FFD01DE1B8C206A1D06E +S31540016110D024615080A040080280032BD224200461 +S315400161207FFFAC40901020227FFFF56611100000E2 +S31540016130050FFC00861020009010001492100013E9 +S31540016140C43FBFF8050F2800070400808610E0F021 +S31540016150941461507FFFF314C43FBFF0C4046150EF +S31540016160030FFC0080A0800122800313C204200497 +S315400161707FFFAC2C901020157FFFF55211200000B7 +S31540016180050FFC0086102000901000149210001399 +S31540016190C43FBFF805001400070000408610E00127 +S315400161A0941461507FFFF300C43FBFF0C4046150B3 +S315400161B0030FFC0080A08001228002FBC204200460 +S315400161C07FFFAC18901020157FFFF53E113000007F +S315400161D0052FFC0086102000901000149210001329 +S315400161E0C43FBFF805201400070000408610E001B7 +S315400161F0941461507FFFF2ECC43FBFF0C404615078 +S31540016200032FFC0080A08001228002E3C204200407 +S315400162107FFFAC04901020157FFFF52A1110000076 +S31540016220050FFC0086102000901000149215A1C89D +S31540016230C43FBFF87FFFF2DC94146150C40461503F +S31540016240C205A1C880A08001228002CCC4042004DA +S315400162507FFFABF4901020157FFFF51A1120000047 +S31540016260050FFC0086102000901000149215A1C85D +S31540016270C43FBFF805001400070000408610E00146 +S31540016280941461507FFFF2C8C43FBFF0C40461500B +S31540016290C205A1C880A08001228002B1C4042004A5 +S315400162A07FFFABE0901020157FFFF506113000000F +S315400162B0052FFC0086102000901000149215A1C8ED +S315400162C0C43FBFF805201400070000408610E001D6 +S315400162D0941461507FFFF2B4C43FBFF0C205A1C818 +S315400162E0C404615080A0800102800296091000809A +S315400162F07FFFABCC901020157FFFF4F21110000008 +S31540016300050FFC0086102001901000149210001316 +S31540016310C43FBFF805100000861020019414615057 +S315400163207FFFF2A6C43FBFF0C404615003100000D2 +S3154001633080A080012280027FC20420047FFFABB986 +S31540016340901020157FFFF4DF1120000090100014FB +S31540016350921000137FFFF29994146150C404615066 +S315400163600310000080A080012280026EC204200436 +S315400163707FFFABAC901020157FFFF4D211300000A7 +S31540016380052FFC0086102001901000149210001376 +S31540016390C43FBFF87FFFF28994146150C404615031 +S315400163A00330000080A080012280025AC2042004EA +S315400163B07FFFAB9C901020157FFFF4C211100000A7 +S315400163C0050FFEAE071CD2E88410A1548610E011D9 +S315400163D09010001492100013C43FBFF8050FFC043F +S315400163E0072F26158410A0128610E23194146150AD +S315400163F07FFFF280C43FBFF0C4046150030FFEA784 +S315400164008210629680A080012280023CC40420044E +S315400164107FFFAB84901020157FFFF4AA1120000066 +S3154001642090100014921000137FFFF2729414615081 +S31540016430C4046150030FFEA78210629680A08001BA +S3154001644022800228C40420047FFFAB7690102015D9 +S315400164507FFFF49C11300000052FFC04072F261501 +S315400164608410A0128610E23190100014921000138D +S31540016470C43FBFF07FFFF25F94146150C404615082 +S31540016480032FFEA78210629680A080012280020F10 +S31540016490C40420047FFFAB63901020157FFFF4896D +S315400164A011100000051038008610200090100014CD +S315400164B092100013C43FBFF805101000861020004B +S315400164C0941461507FFFF24BC43FBFF0C404615046 +S315400164D00310240080A08001228001F8C204200418 +S315400164E07FFFAB50901020157FFFF47611200000FE +S315400164F090100014921000137FFFF23E94146150E5 +S31540016500C40461500310240080A08001228001E769 +S31540016510C20420047FFFAB43901020157FFFF4692E +S315400165201130000090100014921000137FFFF231D9 +S3154001653094146150C40461500310240080A080016A +S31540016540228001D6C20420047FFFAB36901020156D +S315400165507FFFF45C1110000011002000130FE000D2 +S315400165607FFFF3109212600180A22000128001C8C1 +S31540016570010000007FFFF4531120000011002000AC +S31540016580130FE0007FFFF3079212600180A2200003 +S31540016590128001BC010000007FFFF44A1130000067 +S315400165A011002000130FE0007FFFF2FE92126001FE +S315400165B080A22000128001B0010000007FFFF4415B +S315400165C011100000050FFC008610200090100014E9 +S315400165D0921461507FFFF20DC43FBFF8C40461506D +S315400165E0C207BFF880A080012280019AC40420041A +S315400165F07FFFAB0C901020157FFFF4321120000075 +S31540016600901000147FFFF20192146150C40461504E +S31540016610C207BFF880A0800122800185C4042004FE +S315400166207FFFAB00901020157FFFF426113000004C +S31540016630901000147FFFF1F592146150C40461502B +S31540016640C207BFF880A0800122800170C4042004E3 +S315400166507FFFAAF4901020157FFFF41A1110000055 +S315400166602B0FDFFF901563FF7FFFF2D8AA1563FF5B +S3154001667080A2001502800004010000007FFFAAE904 +S31540016680901020157FFFF40F11200000110FDFFF3E +S315400166907FFFF2CE901223FF030FE00080A200019C +S315400166A002800004010000007FFFAADE9010201541 +S315400166B07FFFF404113000002B0FDFFF901563FFBD +S315400166C07FFFF2C2AA1563FF80A200150280000473 +S315400166D0010000007FFFAAD3901020157FFFF3F938 +S315400166E0901020007FFFF2C190146150C4046150A4 +S315400166F0032FFE0080A0800122800140C2042004B5 +S315400167007FFFAAC8901020162B1001247FFFF2C1EB +S3154001671090156158C4056158032FF00080A080018F +S3154001672002800004010000007FFFAABE90102016DF +S315400167307FFFF2C290156158C4056158030FE0000E +S3154001674080A0800102800004010000007FFFAAB5FD +S31540016750901020167FFFF2C990146150C404615015 +S31540016760030FFBF7821063F080A080012280011C99 +S31540016770C40420047FFFAAAB901020169215E1B8FD +S31540016780901000147FFFF19B94146150C204A168DC +S315400167908330600E8208600780A060020280000597 +S315400167A0031000807FFFAA9F9010201703100080DE +S315400167B0C40061700310004BE40061F8821061F877 +S315400167C080A0400202800005031000807FFFAA9549 +S315400167D09010201803100080C200617480A04012FE +S315400167E002800005031000807FFFAA8E90102018BA +S315400167F003100080C200617880A06000128000F41E +S315400168000100000003100080C200617C80A060008E +S31540016810128000EC010000007FFFF14E01000000F4 +S3154001682080A220010280052D01000000050C4029AF +S315400168300723CD1B8410A0068610E09B9010001400 +S31540016840C027BFF0C027BFF4C43FBFF8291000815D +S315400168507FFFF1962B100082AA1560A0A41020009C +S31540016860A81520A0AC146150BA100015108000087C +S31540016870AE1000107FFFAA6B90102019A404A0044B +S3154001688080A4A400228000172B100084C2050012A8 +S31540016890C224C000901000137FFFF18792100016AA +S315400168A0832CA001C4040000C605400180A0C0029B +S315400168B012BFFFF182074001C4006004C205E00433 +S315400168C080A0800112BFFFEC01000000A404A004D7 +S315400168D080A4A40032BFFFEFC20500122B10008432 +S315400168E0A2146150AA1560A0A4102000AE10001594 +S315400168F010800008AC1000107FFFAA4A9010201AA1 +S31540016900A404A00880A4A400028000150100000090 +S31540016910C2050012C224C000921000117FFFF13B54 +S3154001692090100013C4054012C204000080A08001EB +S3154001693012BFFFF28205C012C4006004C205A00462 +S3154001694080A0800112BFFFED01000000A404A00851 +S3154001695080A4A40032BFFFF0C205001281C7E0083F +S3154001696081E800007FFFAA2F9010200F30BFF69AD2 +S315400169707FFFAA2C9010200F10BFF68C110048EA19 +S315400169807FFFAA289010200F10BFF646D01DE1B810 +S315400169907FFFAA249010200F10BFF64FD01CE1E0D4 +S315400169A07FFFAA209010200F10BFF608D41CE1E00B +S315400169B07FFFAA1C9010200F10BFF5F411151BE89C +S315400169C07FFFAA189010200F10BFF5E011151BC0CC +S315400169D07FFFAA149010200F10BFF5C4901020001D +S315400169E07FFFAA109010200F10BFF5B011351BC0C4 +S315400169F07FFFAA0C9010200F10BFF57AD01CE1E062 +S31540016A007FFFAA089010200F10BFF583D01D61F0BB +S31540016A107FFFAA049010200F10BFF565D01DE1B885 +S31540016A207FFFAA009010200F10BFF53FD41D61F0E3 +S31540016A307FFFA9FC9010200F10BFF52ED41CE1E07A +S31540016A407FFFA9F89010200F10BFF51A11151BE80A +S31540016A507FFFA9F49010200F10BFF50611151BC03A +S31540016A607FFFA9F09010200F10BFF4DA11351BC03B +S31540016A707FFFA9EC9010200F10BFF4E69010200084 +S31540016A807FFFA9E89010200E30BFF4BF7FFFA9E534 +S31540016A909010200E10BFF4B11128C6AF7FFFA9E1B7 +S31540016AA09010200E10BFF4A11108C6AF7FFFA9DDDB +S31540016AB09010200E10BFF4911128C6AF7FFFA9D9BF +S31540016AC09010200E10BFF4822108C6AF7FFFA9D5D2 +S31540016AD09010200D30BFF4517FFFA9D29010200DA8 +S31540016AE010BFF444371000807FFFA9CE9010200CD0 +S31540016AF010BFF3A2271000807FFFA9CA9010200B78 +S31540016B0030BFF34F7FFFA9C79010201110BFFA8FF6 +S31540016B10110020007FFFA9C39010201110BFFA6D0C +S31540016B20110020007FFFA9BF9010201110BFFA5C11 +S31540016B30111E607E7FFFA9BB9010201110BFFA4B3A +S31540016B401111BBFE7FFFA9B79010201010BFF85E50 +S31540016B50091000807FFFA9B39010201010BFF84F95 +S31540016B60111000007FFFA9AF9010201430BFFD5BCC +S31540016B707FFFA9AC9010202330BFFD367FFFA9A926 +S31540016B809010202330BFFD297FFFA9A69010201326 +S31540016B9030BFFD197FFFA9A39010201210BFFC4EF4 +S31540016BA0111FE00012BFF30A01000000C204A168F0 +S31540016BB080A0600002BFF3080100000030BFF3046B +S31540016BC07FFFA9989010201830BFFF147FFFA99529 +S31540016BD09010201810BFFF0D031000800303FF1211 +S31540016BE08210604A80A0800112BFFEE39215E1B88F +S31540016BF010BFFEE59010001480A0600002BFFEC4E5 +S31540016C002B10012430BFFEBFC207BFFC80A080010C +S31540016C1012BFFE9001000000C204A16880A060007E +S31540016C2002BFFE8E0100000030BFFE8AC207BFFCD4 +S31540016C3080A0800112BFFE7B01000000C204A16852 +S31540016C4080A0600002BFFE790100000030BFFE75E2 +S31540016C50C207BFFC80A0800112BFFE660100000092 +S31540016C60C204A16880A0600002BFFE64010000006A +S31540016C7030BFFE607FFFA96B9010201530BFFE50DC +S31540016C807FFFA9689010201530BFFE447FFFA9659C +S31540016C909010201530BFFE3880A0600002BFFE2D47 +S31540016CA00100000030BFFE2980A0600002BFFE1C2B +S31540016CB00100000030BFFE1880A0600002BFFE0B3D +S31540016CC00100000030BFFE07032C1B3482106030E8 +S31540016CD080A0800112BFFDF00100000030BFFDF031 +S31540016CE0032C1B348210603080A0800112BFFDD777 +S31540016CF00100000030BFFDD7032C1B348210602FEA +S31540016D0080A0800112BFFDC30100000030BFFDC35A +S31540016D1080A0600312BFFDA70100000030BFFDA7A0 +S31540016D2080A0600312BFFD930100000030BFFD93B8 +S31540016D3080A0600212BFFD820100000030BFFD82CB +S31540016D40C4042004881121C8C201200480A0800106 +S31540016D5012BFFD680100000030BFFD6807100080CA +S31540016D608610E1C8C200E00480A0800112BFFD4D3B +S31540016D700100000030BFFD4D09100080881121C877 +S31540016D80C201200480A0800112BFFD320100000033 +S31540016D9030BFFD3280A0600112BFFD1E0100000020 +S31540016DA030BFFD1E80A0600112BFFD06010000003C +S31540016DB030BFFD0680A0600002BFFCF0010000006C +S31540016DC030BFFCEC071000808610E1D0C200E00421 +S31540016DD080A0400912BFFCD301000000C204A16893 +S31540016DE080A0600002BFFCD10100000030BFFCCD95 +S31540016DF012BFFCC001000000C204A16880A060006F +S31540016E0002BFFCBE0100000030BFFCBA80A060009A +S31540016E1012BFFCA601000000C204A16880A0600068 +S31540016E2002BFFCA40100000030BFFCA080A06000AE +S31540016E3012BFFC9301000000C204A16880A060005B +S31540016E4002BFFC929015E1B830BFFC8D8410A1F8C9 +S31540016E50C200A004C404200480A0800112BFFC4EDD +S31540016E6001000000C404A168030000708210601F85 +S31540016E7084088001030000108210601080A0800108 +S31540016E8012BFFC459015E1B830BFFC4680A06000BA +S31540016E9012BFFC3601000000C204A16880A0600058 +S31540016EA002BFFC35A607BFF030BFFC30C404200446 +S31540016EB080A0800112BFFC1C03100080C2006168E3 +S31540016EC080A0600002BFFC1B05100C0030BFFC1601 +S31540016ED009100080881121F8C201200480A0800198 +S31540016EE012BFFC0603100080C400616803000070F5 +S31540016EF08210601F84088001030000108210601018 +S31540016F0080A0800112BFFBFD0100000030BFFBFDE8 +S31540016F10071000808610E1F8C200E00480A08001DD +S31540016F2012BFFBEB01000000C404A168030000701E +S31540016F308210601F840880010300001082106010D7 +S31540016F4080A0800112BFFBE20100000030BFFBE2DE +S31540016F50C4042004881121D8C201200480A08001E4 +S31540016F6012BFFBD101000000C204A16880A06000ED +S31540016F7002BFFBD09016A1D030BFFBCBC404200486 +S31540016F808610E1C0C200E00480A0800112BFFBBCB4 +S31540016F9001000000C204A16880A0600002BFFBBBE3 +S31540016FA09016E1D830BFFBB6C207BFCC80A08001A6 +S31540016FB012BFFBA703100080C200616880A0600079 +S31540016FC002BFFBA60910008030BFFBA103300000C1 +S31540016FD08210602080A0800112BFFB90010000005A +S31540016FE0C204A16880A0600002BFFB8E01000000C0 +S31540016FF030BFFB8A80A0600012BFFB7B010000000E +S31540017000C204A16880A0600002BFFB7A111FDFFFA6 +S3154001701030BFFB750338000080A0800112BFFB67BB +S3154001702001000000C204A16880A0600002BFFB66A7 +S31540017030111FD00030BFFB6180A0600012BFFB5220 +S3154001704003100080C200616880A0600002BFFB514E +S31540017050111FDFFF30BFFB4C80A0600012BFFB3128 +S3154001706001000000C204A16880A0600002BFFB309D +S315400170701110000030BFFB2B80A0600012BFFB1E29 +S3154001708001000000C204A16880A0600002BFFB1D90 +S31540017090111FE00030BFFB18C20420048610E2181D +S315400170A0C400E10480A0800112BFFAFC03100080F5 +S315400170B0C4006168030000708210601F840880016B +S315400170C0030000108210600880A0800112BFFAF30D +S315400170D00100000030BFFAF3C204200480A0800101 +S315400170E012BFFADF03100080C4006168030000701C +S315400170F08210601F84088001030000108210600422 +S3154001710080A0800112BFFAD60100000030BFFAD636 +S31540017110C20420048610E218C400E0D480A0800195 +S3154001712012BFFAC003100080C400616803000070FA +S315400171308210601F840880010300001082106008DD +S3154001714080A0800112BFFAB70100000030BFFAB734 +S31540017150C204200480A0800112BFFAA3031000805C +S31540017160C4006168030000708210601F84088001BA +S31540017170030000108210600880A0800112BFFA9AB5 +S315400171800100000030BFFA9AC20420048610E218BA +S31540017190C400E0A480A0800112BFFA84010000006F +S315400171A0C404A168030000708210601F8408800136 +S315400171B0030000108210600480A0800112BFFA7B98 +S315400171C00100000030BFFA7BC206600480A0800146 +S315400171D012BFF9CD01000000C204A16880A0600081 +S315400171E002BFF9CC9014E1E030BFF9C7C206600492 +S315400171F080A0800112BFF9B901000000C204A16854 +S3154001720080A0600002BFF9B89014E1E030BFF9B345 +S31540017210C206600480A0800112BFF9A501000000EA +S31540017220C204A16880A0600002BFF9A49014E1E005 +S3154001723030BFF99FC206600480A0800112BFF99158 +S3154001724003100080C200616880A0600002BFF9900F +S315400172509014E1E030BFF98B071000808610E1F809 +S31540017260C200E00480A0800112BFF96D0100000058 +S31540017270C404A168030000708210601F8408800165 +S31540017280030000108210601080A0800112BFF964D3 +S315400172909015A1C810BFF9669215E1B8C2066004FF +S315400172A080A0800112BFF95303100080C2006168BB +S315400172B080A0600002BFF9529015A1C830BFF94DB8 +S315400172C009100080881121F8C201200480A08001A4 +S315400172D012BFF93C01000000C404A168030000701C +S315400172E08210601F84088001030000108210601024 +S315400172F080A0800112BFF9330100000030BFF9338D +S31540017300071000808610E1C8C200E00480A0800119 +S3154001731012BFF92103100080C200616880A060009D +S3154001732002BFF9209015A1C830BFF91B0910008092 +S31540017330881121F8C201200480A0800112BFF8FD06 +S3154001734001000000C404A168030000708210601FA0 +S3154001735084088001030000108210601080A0800123 +S3154001736012BFF8F49010001D10BFF8F69215E1B85F +S31540017370C206600480A0800112BFF8E303100080BA +S31540017380C200616880A0600002BFF8E29010001D53 +S3154001739030BFF8DD071000808610E1F8C200E00436 +S315400173A080A0800112BFF8CC01000000C404A1688E +S315400173B0030000708210601F8408800103000010E2 +S315400173C08210601080A0800112BFF8C30100000046 +S315400173D030BFF8C3C207BFD480A0800112BFF8B244 +S315400173E003100080C200616880A0600002BFF8B14E +S315400173F00310008030BFF8AC09100080881121F8D5 +S31540017400C201200480A0800112BFF88E0100000055 +S31540017410C404A168030000708210601F84088001C3 +S31540017420030000108210601080A0800112BFF88511 +S315400174309010001410BFF8879215E1B8C206600497 +S3154001744080A0800112BFF87401000000C204A16847 +S3154001745080A0600002BFF8739010001430BFF86E30 +S31540017460071000808610E1D8C200E00480A08001A8 +S3154001747012BFF85E01000000C204A16880A060004E +S3154001748002BFF85D9010001430BFF8588810E1C073 +S31540017490C201200480A0800112BFF8490310008078 +S315400174A0C200616880A0600002BFF84890100014D5 +S315400174B030BFF84303003A9A8210630F80A08001DF +S315400174C012BFF7BD03100080C200616880A0600052 +S315400174D002BFF7BC050006AF30BFF7B780A060001A +S315400174E012BFF78103100080C40061680300007079 +S315400174F08210601F8408800103000010821060081A +S3154001750080A0800112BFF7780500400010BFF77ACE +S315400175100700C00009100080881121F8C20120042B +S3154001752080A0800112BFF6EF01000000C404A168EB +S31540017530030000708210601F840880010300001060 +S315400175408210601080A0800112BFF6E69014E1E03F +S3154001755010BFF6E89215E1B8C206600480A080012A +S3154001756012BFF6D501000000C204A16880A06000E8 +S3154001757002BFF6D49014E1E030BFF6CFC2066004F4 +S3154001758080A0800112BFF6C101000000C204A168BB +S3154001759080A0600002BFF6C09014E1E030BFF6BBA8 +S315400175A0C206600480A0800112BFF6AD0100000052 +S315400175B0C204A16880A0600002BFF6AC9014E1E06D +S315400175C030BFF6A7C206600480A0800112BFF699BB +S315400175D003100080C200616880A0600002BFF69877 +S315400175E09014E1E030BFF693071000808610E1F871 +S315400175F0C200E00480A0800112BFF67401000000C1 +S31540017600C404A168030000708210601F84088001D1 +S31540017610030000108210601080A0800112BFF66B3B +S315400176200100000030BFF66BC206600480A08001F5 +S3154001763012BFF65B03100080C200616880A0600043 +S3154001764002BFF65A9015A1C830BFF6550910008001 +S31540017650881121F8C201200480A0800112BFF6449E +S3154001766001000000C404A168030000708210601F7D +S3154001767084088001030000108210601080A0800100 +S3154001768012BFF63B0100000030BFF63B07100080F9 +S315400176908610E1D8C200E00480A0800112BFF6291D +S315400176A001000000C204A16880A0600002BFF62864 +S315400176B09015A1C830BFF623071000808610E1D08F +S315400176C0C200E00480A0800112BFF61203100080C0 +S315400176D0C200616880A0600002BFF61109100080F7 +S315400176E030BFF60CC206600480A0800112BFF5E0EF +S315400176F001000000C204A16880A0600002BFF5DF5E +S315400177009010001D30BFF5DA8810E1C0C201200497 +S3154001771080A0800112BFF5CB03100080C2006168D2 +S3154001772080A0600002BFF5CA9010001D30BFF5C5AC +S31540017730071000808610E1F8C200E00480A08001B5 +S3154001774012BFF5B201000000C404A1680300007035 +S315400177508210601F840880010300001082106010AF +S3154001776080A0800112BFF5A90910008030BFF5AA9B +S31540017770C207BFD480A0800112BFF59803100080D4 +S31540017780C200616880A0600002BFF59703100080C7 +S3154001779030BFF59209100080881121F8C2012004FA +S315400177A080A0800112BFF57401000000C404A168E5 +S315400177B0030000708210601F8408800103000010DE +S315400177C08210601080A0800112BFF56B90100014EA +S315400177D010BFF56D9215E1B8C206600480A0800124 +S315400177E012BFF55A01000000C204A16880A06000E2 +S315400177F002BFF5599010001430BFF554C207BFCCF3 +S3154001780080A0800112BFF54603100080C200616866 +S3154001781080A0600002BFF5459010001430BFF540CE +S31540017820071000808610E1D0C200E00480A08001EC +S3154001783012BFF52F03100080C40061680300007079 +S315400178408210601F840880010300001082106002CC +S3154001785080A0800112BFF5260100000030BFF52649 +S3154001786012BFF50001000000C204A16880A06000BB +S3154001787002BFF4FF1110000030BFF4FA12BFF4EE5C +S3154001788001000000C204A16880A0600002BFF4EDBF +S315400178901130000030BFF4E812BFF4DC01000000F3 +S315400178A0C204A16880A0600002BFF4DB1130000071 +S315400178B030BFF4D612BFF4CA03100080C20061681B +S315400178C080A0600002BFF4C91110000030BFF4C4AB +S315400178D0C20420048610E320C400E17C80A080011C +S315400178E012BFF4B301000000C404A1680300007094 +S315400178F08210601F8408800103000010821060041A +S3154001790080A0800112BFF4AA0100000030BFF4AA92 +S31540017910C204200480A0800112BFF4970100000038 +S31540017920C404A168030000708210601F84088001AE +S31540017930030000108210600480A0800112BFF48E03 +S315400179401110008110BFF49094146150C2042004B8 +S315400179508610E320C400E14C80A0800112BFF47878 +S3154001796001000000C404A168030000708210601F7A +S3154001797084088001030000108210600880A0800105 +S3154001798012BFF46F1110008110BFF471941461504D +S315400179907FFFA6249010201010BFF45E11100081C5 +S315400179A0C206600480A0800112BFF3B90100000045 +S315400179B0C204A16880A0600002BFF3B89014E1E060 +S315400179C030BFF3B3C206600480A0800112BFF3A5A5 +S315400179D001000000C204A16880A0600002BFF3A4B8 +S315400179E09014E1E030BFF39FC206600480A080019D +S315400179F012BFF39101000000C204A16880A060009B +S31540017A0002BFF3909014E1E030BFF38BC2066004ED +S31540017A1080A0800112BFF37D03100080C20061681F +S31540017A2080A0600002BFF37C9014E1E030BFF377A1 +S31540017A3009100080881121F8C201200480A080012C +S31540017A4012BFF35A03100080C4006168030000703E +S31540017A508210601F840880010300001082106010AC +S31540017A6080A0800112BFF3519015A1C810BFF353F6 +S31540017A709215E1B8071000808610E1F8C200E004D3 +S31540017A8080A0800112BFF33B0100000030BFF33BF1 +S31540017A9009100080881121D0C201200480A08001F4 +S31540017AA012BFF31801000000C204A16880A0600063 +S31540017AB002BFF3179016A1D030BFF3120710008012 +S31540017AC08610E1D8C200E00480A0800112BFF30213 +S31540017AD001000000C204A16880A0600002BFF3015A +S31540017AE09016A1D030BFF2FC09100080881121C840 +S31540017AF0C201200480A0800112BFF2EC0100000007 +S31540017B00C204A16880A0600002BFF2EB9016E1D8E2 +S31540017B1030BFF2E6071000808610E1C8C200E004DB +S31540017B2080A0800112BFF2D603100080C2006168B6 +S31540017B3080A0600002BFF2D59015A1C830BFF2D037 +S31540017B4009100080881121F8C201200480A080011B +S31540017B5012BFF2B10100000030BFF2B1C2066004AB +S31540017B6080A0800112BFF29001000000C204A1680A +S31540017B7080A0600002BFF28F9010001D30BFF28AD4 +S31540017B80071000808610E1C8C200E00480A0800191 +S31540017B9012BFF27A01000000C204A16880A0600011 +S31540017BA002BFF2799010001D30BFF274C207BFFCCC +S31540017BB080A0800112BFF26603100080C200616896 +S31540017BC080A0600002BFF2659010001D30BFF260D8 +S31540017BD0881721F8C201200480A0800112BFF24219 +S31540017BE00100000030BFF242C4042004C206600412 +S31540017BF080A0800112BFF21E01000000C204A168EC +S31540017C0080A0600002BFF21D9010001430BFF21830 +S31540017C108615A1C8C200E00480A0800112BFF20906 +S31540017C2001000000C204A16880A0600002BFF20802 +S31540017C309010001430BFF203C2042004C407BFFCF5 +S31540017C4080A0800112BFF1F303100080C200616879 +S31540017C5080A0600002BFF1F22D10008030BFF1ED2F +S31540017C6080A2400112BFEFA201000000C204A16838 +S31540017C7080A0600002BFEFA11111FC0030BFEF9C54 +S31540017C8080A2400112BFEF9003100080C2006168DC +S31540017C9080A0600022BFEF8F113C02AF30BFEF8A58 +S31540017CA012BFEEDB01000000C204A16880A06000A3 +S31540017CB002BFEED90100000030BFEED512BFEECCB7 +S31540017CC001000000C204A16880A0600002BFEECAA4 +S31540017CD00100000030BFEEC67FFFA552901020196B +S31540017CE010BFFAD4050C402981D8200081C3E00891 +S31540017CF00100000081D8200082102400C0A043006A +S31540017D0081C3E0080100000085322010913220181D +S31540017D10900A200F8408A00380A0000882602000FA +S31540017D2081C3E008900880019DE3BF887FFFEB7A1D +S31540017D309010200C808A2008128000040100000067 +S31540017D4081C7E00891E820007FFFA52F9010200E03 +S31540017D50C2800320853060188088A00F028000DD34 +S31540017D602F100123833060108208600380A06002D7 +S31540017D70028000E0C225E0D480A06003028000FFBB +S31540017D8080A06001028000EC2910010C2310010C37 +S31540017D902110010C2B10010C2710010C2510010C90 +S31540017DA081D8200081D8200082102400C0A0430041 +S31540017DB0031000A1051000A0821060008410A000ED +S31540017DC0873060048610E00188100003C87880007F +S31540017DD08800A004C67900008610200AC6784000B3 +S31540017DE0C8046000C60420041B0080001908000076 +S31540017DF09A13600A993B0004980B0003992B2002C1 +S31540017E0098030001DA7B00001B01000017100000F7 +S31540017E109813608E973AC004960AC003972AE002E7 +S31540017E209602C001D87AC000171C00001901C00093 +S31540017E30893AC0049813208E860900038728E002F8 +S31540017E408600C001D878C0003B1000A28200600CB9 +S31540017E50BA176000873760048610E001C678400093 +S31540017E608213601E86076008C278C0008210200017 +S31540017E708807600C86100001C67900002D1000A20B +S31540017E809A076004AC15A1008735A004B810001606 +S31540017E908610E001C67B4000B405A008C27E800082 +S31540017EA01B1000C0B605A004861360008330E004B1 +S31540017EB09810601AD87EC000C02360001B048D153F +S31540017EC09A136278DA20E004DA05E0D4331001002F +S31540017ED09A03600CB21660008605A00CB010200013 +S31540017EE0C627BFF8DA27BFFC90100018921020036E +S31540017EF0C227BFF0C427BFEC40000AB0C827BFF471 +S31540017F00DA07BFFC992A000DC607BFF89803001986 +S31540017F10993320049813201ED878C000B00620015A +S31540017F208600E00480A62008C207BFF0C407BFEC64 +S31540017F3012BFFFECC807BFF417100020DE05200C66 +S31540017F408612E168C822E16809100020D005600860 +S31540017F50D804A014DA04E010D2042004D40460004A +S31540017F60960BE001972AC008C6212160880A600362 +S31540017F708929000A8812C004960B2002972AC00D4F +S31540017F809611000B8530A004D620E0209610600E95 +S31540017F90D620E0289608BFF0840B20018528800D65 +S31540017FA0841100028210601EC420E02CC420E0141B +S31540017FB0050100008410A01EC220E010C420E00488 +S31540017FC0F620E00CF420E018F620E0240500764186 +S31540017FD0031000208410A1C082106000C420E00874 +S31540017FE0833060048210601EC220E01C8210210092 +S31540017FF0D6A04320C4800320C280432084102001A0 +S3154001800082102200C4A04320C6804320861020004F +S31540018010C6A04320C4A0032081D820007FFFEABE2A +S3154001802090102000913A200C808A2003028000653E +S3154001803001000000C280032082102100C28043203B +S3154001804082102200C2804320C804200488092003EC +S31540018050C2046000C605200CC4056008D404A014FF +S31540018060D604E010832900019808E0019A0AA0018C +S31540018070992B00029B2B400B981300019A13000D7C +S31540018080C803400080A120000280000388136004D9 +S3154001809030800000D201000011048D159012227823 +S315400180A080A2400812BFFFFB111000009E08E002AB +S315400180B0D00200009F2BC0029E13C001DE03C00008 +S315400180C080A3C008228000428608E0033080000079 +S315400180D02310010C2110010CC025E0D42B10010CFA +S315400180E02910010C2710010C10BFFF2E2510010C81 +S315400180F02110010C2910010C2510010C2310010C33 +S315400181008210203F2B10010C2710010CC2242004A1 +S31540018110C224A014C225200C8210201AC224600059 +S3154001812082102014C22560088210200E10BFFF1D48 +S31540018130C224E0102510010C2310010C8210203FAF +S315400181402110010C2B10010C2710010CC225200C0B +S31540018150C224A01482102019C22460008210207FFC +S31540018160C224200482102013C22560088210200DEB +S3154001817010BFFF0CC224E0102110010C2710010C86 +S315400181802310010C8210200F2B10010C2910010C19 +S315400181902510010CC224E010C22420048210201CA8 +S315400181A0C224600082102015C22560088210207FFB +S315400181B0C225200C8210203F10BFFEFAC224A01413 +S315400181C07FFFBF930100000030BFFF9B8528C0029F +S315400181D082108001C20040000321D95082106321E0 +S315400181E0C2210000C401000080A08001028000037A +S315400181F001000000308000008210000D05048D153D +S315400182008410A278072AF37B8610E301C438400024 +S31540018210C4384000C203400080A0400902800003E8 +S315400182200100000030800000C4010000032AF37BF6 +S315400182308210630180A0800112BFFFFBC205E0D41A +S31540018240940AA0038200600C972A800B84102001B7 +S31540018250AE13000B85288001B0102000EE25C0002A +S31540018260C0A0022092102003C227BFF0C427BFEC52 +S31540018270400009D290100018C207BFF0912A0001B0 +S31540018280C606400880A0C01712800008C407BFEC8C +S31540018290B006200180A6200802800005AE05C00276 +S315400182A010BFFFF0EE25C00030800000C0A00220C4 +S315400182B0AE102003B0102000852DE002C4058002D7 +S315400182C08608A06080A00003C227BFF0B040001816 +S315400182D0C427BFEC9005FFFD400009B8921020036A +S315400182E0C207BFF0C407BFEC872A000186064003D8 +S315400182F08730E0048610E01E8418C0028088BF9F44 +S3154001830012800009AE05E00180A5E00B32BFFFEC0B +S31540018310852DE00280A6200012800004D805200C9D +S315400183203080000030800000C8056008DA0420046F +S31540018330C4046000C604A014C204E010980B2001D6 +S315400183409A0B6003892B0004852B40028608E002C4 +S31540018350841100028328C001821080019FC0400021 +S315400183600100000082102400C0A04300C0A00220EA +S315400183708210200084072020C607200C8608E06072 +S3154001838080A00003B80720048240000180A70002B4 +S3154001839032BFFFFBC607200C80A060082280000385 +S315400183A0C206C00030800000808860400280000420 +S315400183B08088602032800003C20760083080000058 +S315400183C08088602032800003C20680003080000031 +S315400183D08088602012800003010000003080000088 +S315400183E083480000842860808188A0000100000045 +S315400183F00100000001000000D8042004C804600008 +S31540018400DA05200CC4056008C604A014C204E010B5 +S31540018410980B20039A0B6001892B0004852B40029F +S315400184208608E001841100028328C0018410A0045B +S3154001843082108001C20040009210200491D0200297 +S31540018440010000007FFFE9B490102000913A200C12 +S31540018450808A200312800005841020007FFFBEEC35 +S31540018460010000008410200082102200C4A0432095 +S3154001847086102001C6A04320C4A04320031000005B +S31540018480C4804380C4A043807FFFBF4E901020002C +S3154001849081D8200030BFFE2B9DE3BFA040000822BB +S315400184A001000000808A21001280000401000000C2 +S315400184B081C7E00891E820007FFFA37623100120C1 +S315400184C0912A20047FFFA35090022005A214600048 +S315400184D0C204600480A060000280001A821020005D +S315400184E0A010200084044001C8044001C600A00435 +S315400184F0C200A0089B39201F818360000100000053 +S3154001850001000000010000008479000380A0800181 +S3154001851002800004A00420017FFFA34290102001A5 +S3154001852082040010820040108328600284044001C6 +S31540018530C400A00480A0A00012BFFFEC8404400147 +S3154001854023100120A2146138C204600480A0600097 +S315400185500280001982102000A010200084044001EE +S31540018560C8044001C600A004C200A00881802000C2 +S3154001857001000000010000000100000084710003B9 +S3154001858080A0800102800004A00420017FFFA32572 +S31540018590901020028204001082004010832860025D +S315400185A084044001C400A00480A0A00012BFFFEDD6 +S315400185B084044001400008890100000080A2200097 +S315400185C012BFFFBC901020037FFFA316B0102000FE +S315400185D081C7E00881E800009DE3BFA07FFFA32D8E +S315400185E001000000912A20047FFFA3079002200486 +S315400185F0400007CF0100000080A221230280000431 +S31540018600010000007FFFA30790102001400007C62C +S3154001861001000000808A21000280002923100120E8 +S31540018620A2146180C204600880A06009028000151E +S3154001863082102000A010200084044001C60440019D +S31540018640C800A004C200A0088459000380A080018C +S3154001865002800004A00420017FFFA2F290102002B4 +S315400186608204001082004010832860028404400185 +S31540018670C400A00880A0A00912BFFFF184044001F4 +S31540018680400007B80100000080A2200002800023BC +S3154001869001000000400007B30100000080A2200055 +S315400186A002800016010000004000079F0100000003 +S315400186B0808A2200128000040100000081C7E00880 +S315400186C091E82000400007F80100000080A2200048 +S315400186D00280001A01000000400007F3010000007B +S315400186E080A2200012BFFFF6010000007FFFA2CD4D +S315400186F09010200430BFFFF27FFFA2CA90102003E2 +S315400187004000078901000000808A220002BFFFEC79 +S315400187100100000030BFFFEC7FFFA2C29010200392 +S31540018720400007900100000080A2200012BFFFDF39 +S315400187300100000030BFFFF17FFFA2BA9010200474 +S3154001874030BFFFE6000000009DE3BFA0941020006B +S31540018750111000619012237C131000619212638004 +S31540018760171000619612E388191000619813238C43 +S3154001877093C2000081C240001080019181C2C000B5 +S3154001878081C300001080018E9402A0019402A001D1 +S3154001879080A2A0031280018A0100000087440000E4 +S315400187A08D30E00E8C89A00780A1A000028000C711 +S315400187B001000000AF30E00BAE0DE00780A5E00000 +S315400187C0128000C20100000080A1A0021280003583 +S315400187D00100000025100000E41C80002510000067 +S315400187E029100000A8152104A6100012AA10001293 +S315400187F0AC100014A1802046A4100000AA1000006D +S3154001880001000000A180204EA810210001000000B7 +S31540018810A18000000100000001000000E83CA030FA +S3154001882082A480131280016682A50016128001641B +S315400188300100000001000000010000008744000023 +S315400188408D30E00B8C89A0078CA1A0051280015CBC +S31540018850A1800000010000000100000001000000AD +S31540018860E81CA03082A500161280015582A540124F +S31540018870A410000012800152010000000100000016 +S31540018880874400008D30E00B8C89A0078CA1A003A2 +S315400188901280014B010000001080008C0100000095 +S315400188A080A1A0011280002325100000E41C800055 +S315400188B02510000029100000A8152104A610001259 +S315400188C0AA100012AC100014A1802046A41000008A +S315400188D0AA10000001000000A180204EA81021002E +S315400188E001000000A180000001000000010000001D +S315400188F001000000E83C800082A480131280013010 +S3154001890082A500161280012E010000000100000020 +S31540018910874400008D30E00B8C89A0078CA1A00212 +S31540018920128001270100000010800068010000004C +S3154001893080A1A00312800065A6100000A210200E9F +S31540018940A1844000A6100000A1800000A814E00008 +S31540018950AB44000001000000AC14E000010000003F +S31540018960AF44000080A5200012800115AA8D6E003B +S3154001897080A540001280011280A5A000128001103E +S31540018980AF35E00BAE0DE00780A5E0011280010C8A +S3154001899001000000A0100000A1844000A6100000C4 +S315400189A0A1800000E8180000AC100000AE100000E5 +S315400189B0EC04C000EE04E00480A50016128001001C +S315400189C080A54017128000FE01000000A54400006A +S315400189D0A534A00BA40CA00780A4A001128000F826 +S315400189E001000000A0100000A1844000A610000074 +S315400189F0A1800000A210200AA1844000A41000001A +S31540018A00A1800000E8180000AC100000AE10000084 +S31540018A10EC04C012EE04E00480A50016128000E8C2 +S31540018A2080A54017128000E601000000A544000021 +S31540018A30A534A00BA40CA00780A4A002068000E0E8 +S31540018A400100000021100120A0142200EC1C0000AE +S31540018A50A0042008E81C0000A1844000A6100000E4 +S31540018A60A1800000A210200EA1844000A410001095 +S31540018A70AC100000AE100000A18000000100000013 +S31540018A8001000000EC3C8013AC100000AE10000069 +S31540018A90E81CC01280A50016128000C980A54017A7 +S31540018AA0128000C701000000A5440000A534A00BB8 +S31540018AB0A40CA00780A4A004128000C101000000FC +S31540018AC010800002010000008B4440008A09601FAB +S31540018AD080A160010280000A8C1000059DE3BFA0C1 +S31540018AE08AA1600116BFFFFE0100000081E8000077 +S31540018AF08CA1A00116BFFFFE01000000010000008D +S31540018B0001000000A023A080A02C20078E10001099 +S31540018B10A3480000E2240000C2242004C43C2008EB +S31540018B20C83C2010CC3C2018F03C2020F43C2028A6 +S31540018B30F83C2030FC3C2038D03C2040D43C2048F6 +S31540018B40D83C2050DC3C2058A5500000E42420604D +S31540018B5080102008821020018410200286102003F4 +S31540018B60881020048A1020058C1020068190000070 +S31540018B70A42C601F818C80000100000001000000D0 +S31540018B800100000003004040821061018410000092 +S31540018B9086100000894440008809201F8610000481 +S31540018BA0A010000284004002A2100002840040028C +S31540018BB0A410000284004002A61000028400400274 +S31540018BC0A810000284004002AA100002840040025C +S31540018BD0AC10000284004002AE1000028400400244 +S31540018BE0901000028400400292100002840040026C +S31540018BF09410000284004002961000028400400254 +S31540018C0098100002840040029A100002840040023B +S31540018C109C100002840040029E1000028400400223 +S31540018C2081E0000086A0E00116BFFFDE01000000E2 +S31540018C300300404082106101841000008610000448 +S31540018C4080A400021280003F8400400280A44002BA +S31540018C501280003C8400400280A4800212800039C8 +S31540018C608400400280A4C002128000368400400283 +S31540018C7080A50002128000338400400280A5400294 +S31540018C80128000308400400280A580021280002DAF +S31540018C908400400280A5C0021280002A840040025E +S31540018CA080A20002128000278400400280A2400276 +S31540018CB0128000248400400280A28002128000219A +S31540018CC08400400280A2C0021280001E840040023D +S31540018CD080A300021280001B8400400280A3400250 +S31540018CE0128000188400400280A380021280001581 +S31540018CF08400400280A3C002128000128400400218 +S31540018D0081E0000086A0E00116BFFFCE0100000011 +S31540018D1080A020001280000B80A0FFFF1280000976 +S31540018D2080A160051280000780A1A006128000057F +S31540018D3001000000A010000710800006C02420207A +S31540018D40A01000079010200110800002D02420209E +S31540018D5082100007C40040008188800001000000A5 +S31540018D600100000001000000C4186008C818601026 +S31540018D70CC186018F0186020F4186028F818603094 +S31540018D80FC186038D0186040D4186048D818605034 +S31540018D90DC186058E4006060C20060048194800081 +S31540018DA0010000000100000001000000A0100007C2 +S31540018DB0F004202081C7E00881E8000010BFFFFCD5 +S31540018DC0B01000000100000081D8200081C3E008F6 +S31540018DD0010000000328000084106004952AA00DBC +S31540018DE0D0204000922270009202400AD220800098 +S31540018DF081C3E0080100000003100124C400619C06 +S31540018E0003100124C200618C852A4002861020018C +S31540018E108328C00182007FFF900A000190008008EC +S31540018E208213C0007FFFE74C9E1040000100000006 +S31540018E3003100124C400619C03100124C200618C0B +S31540018E40852A4002861020018328C00182007FFFC7 +S31540018E50900A0001900080088213C0007FFFE73A24 +S31540018E609E104000010000009DE3BFA02D1001248B +S31540018E70C205A190A410001880A0600004800020C3 +S31540018E80B01020012F1001242B100124D005E19CA4 +S31540018E9029100124AC15A190AE15E19CAA15618C4F +S31540018EA0A815217CA0102000A2102000A6102001A8 +S31540018EB0C2054000832CC00182007FFF820C8001E5 +S31540018EC0912C00087FFFE72090020001C2050000B7 +S31540018ED0901A0012820A000180A00001C20580009A +S31540018EE0A2647FFFA004200180A0401034BFFFF19F +S31540018EF0D005C00080A00011B0603FFF81C7E008E7 +S31540018F0081E800009DE3BFA003100124C400619CD9 +S31540018F1003100124C200618CB32E4002841020014B +S31540018F208328800182007FFF820E00019210001A81 +S31540018F307FFFE70B9006400181C7E00881E800000A +S31540018F409DE3BFA003100124C400619C03100124CA +S31540018F50C200618CB32E4002841020018328800117 +S31540018F6082007FFF820E00019210001A7FFFE6F811 +S31540018F709006400181C7E00881E800000310012402 +S31540018F80C400618403100124C2006180852A400225 +S31540018F90861020018328C00182007FFF900A0001CC +S31540018FA0900080088213C0007FFFE6E39E104000D8 +S31540018FB0010000009DE3BFA003100124C4006184A9 +S31540018FC003100124C2006180B32E400284102001A7 +S31540018FD08328800182007FFF820E00019210001AD1 +S31540018FE07FFFE6D79006400181C7E00881E800008F +S31540018FF09DE3BFA003100124C40061840310012432 +S31540019000C2006180B32E4002841020018328800172 +S3154001901082007FFF820E00019210001A7FFFE6C494 +S315400190209006400181C7E00881E800000310012451 +S31540019030C400618403100124C2006180852A400274 +S31540019040861020018328C00182007FFF900A00011B +S31540019050900080088213C0007FFFE6B39E10400057 +S3154001906001000000033FFFBF821063089DE38001BA +S315400190700310004A82106060C227BFEC0310004A09 +S31540019080821060A02F10004AC227BFF4AE15E040FF +S315400190903510004AEE27BFE8B416A080901020068E +S315400190A07FFFA059F427BFF07FFFE69B9010200079 +S315400190B0213FFFBF920A3FF0A01423689010200081 +S315400190C07FFFE697A0078010230000307FFFE692DE +S315400190D090102000808A001112BFFFFD01000000A0 +S315400190E081D82000230000307FFFE68B90102000BE +S315400190F0808A001112BFFFFD0100000023100124E8 +S315400191007FFFE6859010200013002040A410000840 +S315400191109212600F921200097FFFE68190102000A3 +S315400191207FFFE67D90102008D02461787FFFE67AA4 +S315400191309010200C09100124C40461789938A014B8 +S3154001914013100124980B200F8603200AC621218083 +S31540019150091001240310012496102400C6212184FC +S31540019160893A20148809200F9401200AD422618C5F +S31540019170131001242D100124D0206188D422619C32 +S3154001918015100124932AC004833A2018D222A198AB +S315400191901510012482086003820060011B20000033 +S315400191A08801200837100124C225A190920120028E +S315400191B0821020019328400992234009D222A17CA2 +S315400191C01510012487284003913A20109A23400321 +S315400191D0992AC00CDA26E194D822A174A20A200762 +S315400191E08738A018A93CA00CBA210011A408E003B5 +S315400191F08538A010A88D2003AA08A007A404A001C1 +S31540019200AB284015A3284011AB28401590100017F4 +S31540019210AA057FFFA610200002800123B807BFE8F8 +S31540019220A6042020030048D182106167C224C000F1 +S3154001923003226AF3821061EFC2242024C20C20204B +S3154001924080A0600102800004010000007FFF9FF5BD +S315400192509010201AC20C202180A0602302800004B5 +S31540019260010000007FFF9FEF9010201BC20C2022BF +S3154001927080A0604502800004010000007FFF9FE955 +S315400192809010201CC20C202380A06067028000043D +S31540019290010000007FFF9FE39010201DC20C202497 +S315400192A080A0608902800004010000007FFF9FDDED +S315400192B09010201EC20C202580A060AB02800004C5 +S315400192C0010000007FFF9FD79010201FC20C20266F +S315400192D080A060CD02800004010000007FFF9FD185 +S315400192E090102020C20C202780A060EF028000044D +S315400192F0010000007FFF9FCB90102021C214202047 +S31540019300832860108330601080A0612302800004AE +S31540019310010000007FFF9FC390102022C414202229 +S315400193208528A010030000118530A01082106167C6 +S3154001933080A0800102800004010000007FFF9FB9E8 +S3154001934090102023C41420248528A0100300002255 +S315400193508530A010821061AB80A08001028000049C +S31540019360010000007FFF9FAF90102024C4142026E7 +S315400193708528A010030000338530A010821061EFCC +S3154001938080A0800102800005821020307FFF9FA5CA +S315400193909010202582102030C22C2020030C08D1A9 +S315400193A082106167C404C00080A08001028000056C +S315400193B0821020317FFF9F9B901020278210203101 +S315400193C0C22C2021030C0C5182106167C404C000D9 +S315400193D080A0800102800005821020327FFF9F918C +S315400193E09010202882102032C22C2022030C0C4CD3 +S315400193F082106267C404C00080A08001028000051B +S31540019400821020337FFF9F879010202982102033BE +S31540019410C22C2023030C0C4C82106233C404C000BE +S3154001942080A0800102800005821020347FFF9F7D4D +S315400194309010202A82102034C22C2024030D2AF3B6 +S31540019440821061EFC404202480A0800102800005BF +S31540019450821020357FFF9F739010202B821020357C +S31540019460C22C2025030D0D73821061EFC404202404 +S3154001947080A0800102800005821020367FFF9F690F +S315400194809010202C82102036C22C2026030D0D4D23 +S31540019490821062EFC404202480A08001028000056E +S315400194A0821020377FFF9F5F9010202D821020373A +S315400194B0C22C2027030D0D4D82106237C40420248F +S315400194C080A0800102800005030000107FFF9F55A8 +S315400194D09010202E0300001082106041C2342020DB +S315400194E00310104C82106233C404C00080A0800176 +S315400194F002800005030000107FFF9F4A9010202F35 +S315400195000300001082106243C2342022031010501F +S3154001951082106243C404C00080A08001028000051D +S31540019520030000117FFF9F3F901020300300001180 +S3154001953082106045C23420240311114D82106237D6 +S31540019540C404202480A0800102800005030000118C +S315400195507FFF9F3490102031030000118210624733 +S31540019560C23420260311115182106247C4042024BB +S3154001957080A0800102800004010000007FFF9F2936 +S315400195809010203281D82000C205A19080A06000B1 +S315400195900480001B80A520002510012419100124F8 +S315400195A0A414A1909813219C8810200080A46000E7 +S315400195B09B2920100480000C82102000C403000067 +S315400195C085290002840040028528A0028610400DAC +S315400195D082006001C624000280A0401132BFFFF91B +S315400195E0C4030000C20480008801200180A0400419 +S315400195F014BFFFF080A4600080A5200012800028DF +S31540019600230000107FFFE54490102000808A00115E +S3154001961012BFFFFDC205A19080A060000480001B1F +S31540019620010000002510012427100124A414A19053 +S31540019630A614E17C10800006A2102000A20460015D +S3154001964080A0401104800011010000009210001119 +S315400196507FFFFDF890100010C204C000901C000866 +S31540019660808A000132BFFFF6C20480007FFF9EED73 +S3154001967090102033C2048000A204600180A04011F2 +S3154001968014BFFFF4921000117FFFE52390102000D4 +S315400196909212200F7FFFE5229010200081C7E0083B +S315400196A091E820009FC20000A604E00180A4801337 +S315400196B004800008832CE002D00700019FC200000D +S315400196C0A604E00180A4801314BFFFFC832CE002B2 +S315400196D07FFFE51190102000B616E194920A3FFCF7 +S315400196E0A8102000901020007FFFE50DB810200043 +S315400196F0B207BFE810800005A610200080A48013A1 +S3154001970024800012A8052001921000137FFFFE4815 +S3154001971090100017820A001580A0401512BFFFF86D +S31540019720A604E001C206C000901DC008900A0001CF +S3154001973080A00008B8673FFF80A4801314BFFFF4E0 +S3154001974092100013A805200180A48014048000040F +S31540019750832D200210BFFFE8EE0640017FFFE4EEB5 +S3154001976090102000A6100008901020007FFFE4EC26 +S315400197709214E00380A720000280018301000000CB +S31540019780A73CE013808CE0031280018501000000B4 +S3154001979081D82000250000307FFFE4DF90102000B3 +S315400197A0808A001212BFFFFDAA100008C205A190CF +S315400197B080A060000480000F053FFFBF25100124F3 +S315400197C0A6102000A414A19092100013901000102E +S315400197D07FFFFDDC94102000C2048000A604E00156 +S315400197E080A0401314BFFFFA92100013053FFFBF3C +S315400197F0821020008410A36884078002C0204002A2 +S315400198008200600480A0607C12BFFFFD0100000061 +S3154001981082102005C224000082102001C2242004A7 +S3154001982082102002C224200882102003C224200C68 +S31540019830901000107FFFFD8DA804200480A2200017 +S315400198400280014A01000000C204000080A06005B8 +S3154001985002800004010000007FFF9E7290102006E6 +S315400198607FFFFD829010001080A220001280019996 +S31540019870C205A19080A06000048000120100000092 +S3154001988025100124A6102000A414A19092100013C3 +S31540019890941020007FFFFD9C901000109210001341 +S315400198A0901000147FFFFD9894102000C2048000A0 +S315400198B0A604E00180A0401314BFFFF692100013E6 +S315400198C07FFFE4AB90100010A60420207FFFE4A8A0 +S315400198D0901000137FFFE4A6900420407FFFE4A48C +S315400198E090042060C205A19080A0600004800180A0 +S315400198F0B810200025100124A414A190AE10200018 +S31540019900921000177FFFFD3D90100010C2048000A9 +S31540019910901A200580A00008AE05E001B8673FFF18 +S3154001992080A0401714BFFFF89210001780A72000AF +S315400199300280016F01000000033FFFBF8210636890 +S31540019940C41F8001C43FBFA8C207BFA880A060054D +S315400199501280000601000000C207BFAC80A0600172 +S3154001996002800005C205A1907FFF9E2E901020091E +S31540019970C205A19080A06000048000382510012412 +S31540019980B8102000A414A190AE1020009210001728 +S315400199907FFFFD1A90100014C2048000901A200126 +S315400199A080A00008AE05E001B8673FFF80A04017E0 +S315400199B014BFFFF89210001780A7200112800027DC +S315400199C0833D6013808860031280002A01000000F5 +S315400199D0C2042004C224000082102005C2240000D3 +S315400199E090102001D024200482102002C224200895 +S315400199F082102003C224200C92100011400003B3B0 +S31540019A00912A001DA52A2002032EEEEE821063BB89 +S31540019A10C22400127FFFFD159010001080A2200085 +S31540019A201280013701000000C4040012032EEEEE3D +S31540019A30A93D600C821063BB80A0800102BFFDFA84 +S31540019A40A80D2003901020127FFF9DF6A93D600CC2 +S31540019A5010BFFDF5A80D20037FFF9DF29010200A4F +S31540019A60833D60138088600302BFFFDA0100000076 +S31540019A707FFFE42990102000033FFFF08210603FF2 +S31540019A80920A00017FFFE4269010200092102000E8 +S31540019A9094102000AA07BFA87FFFFD1B9010001558 +S31540019AA07FFFE41D901020000303C00092120001C5 +S31540019AB07FFFE41B90102000C205A19080A06000AA +S31540019AC00480000F8210200125100124A8102000D7 +S31540019AD0A414A19092100014901000157FFFFD0A66 +S31540019AE094102005C2048000A805200180A04014DE +S31540019AF014BFFFFA9210001482102001C22FBFA892 +S31540019B000300400082106005C407BFA880A0800101 +S31540019B1002800004010000007FFF9DC29010200BCF +S31540019B207FFFE3FD90102000833A20068208600300 +S31540019B3080A0600102800004010000007FFF9DB902 +S31540019B409010200C7FFFE3F4901020000303C00027 +S31540019B5025000030922A00017FFFE3F1901020009A +S31540019B607FFFE3ED90102000808A001212BFFFFDB7 +S31540019B7092102000941020007FFFFCE39010001506 +S31540019B807FFFE3E5901020002503C00092120012EA +S31540019B907FFFE3E3901020007FFFE3DF901020007A +S31540019BA0808A001202BFFFFDAE100008C205A190D7 +S31540019BB080A060000480001025100124B810200107 +S31540019BC0B92F0011A414A190B8073FFFA810200097 +S31540019BD092100014901000157FFFFCDA9410001CBF +S31540019BE0C2048000A805200180A0401414BFFFFADA +S31540019BF0921000141303C00090102000922DC0094A +S31540019C007FFFE3C72503C0007FFFE3C39010200019 +S31540019C10808A001212BFFFFD01000000C407BFA8E1 +S31540019C20030040008210600580A08001028000048C +S31540019C30010000007FFF9D7B9010200D7FFFE3B662 +S31540019C4090102000833A20088208600380A06001BA +S31540019C5002800005841020117FFF9D729010200F15 +S31540019C6084102011861020559010200025000030C8 +S31540019C70C43FBFF87FFFE3A801000000033C3FFF5C +S31540019C800503C0008210633F820A00019010200044 +S31540019C907FFFE3A3921040027FFFE39F90102000D5 +S31540019CA0808A001212BFFFFDAE07BFF87FFFE3BEF9 +S31540019CB090100017C205A19080A060000480000F9B +S31540019CC00100000025100124AA07BFFCA414A1909D +S31540019CD0A810200092100014901000157FFFFC8AF6 +S31540019CE094102055C2048000A805200180A040148C +S31540019CF014BFFFFA921000147FFFE3AB90100017D8 +S31540019D0080A220110280008180A260557FFF9D457F +S31540019D10901020107FFFE38090102000833A2006A8 +S31540019D208208600380A0600102800004A41000083C +S31540019D307FFF9D3C90102010133C3FF09010200077 +S31540019D409212603F920C80097FFFE3752500003037 +S31540019D507FFFE37190102000808A001212BFFFFD41 +S31540019D60AA10000830BFFF1B7FFF9D2E90102005D3 +S31540019D70C204000080A0600512BFFEB801000000C9 +S31540019D8030BFFEB87FFF9D2790102001A73CE0130E +S31540019D90808CE00302BFFE7F010000007FFFE35E8F +S31540019DA090102000133FFFF0AA1000089212603F66 +S31540019DB0920A00097FFFE35A901020007FFFE2B12B +S31540019DC0A810001A0303C000133C3FFF9010200067 +S31540019DD0921263FC920D4009A61020007FFFE350CA +S31540019DE09212400192100013901000147FFFFC72F2 +S31540019DF094102000A604E00180A4801334BFFFFB29 +S31540019E0092100013901020001303C0007FFFE3441B +S31540019E10921540097FFFE29B010000007FFFE33E70 +S31540019E2090102000833A200A8208600380A06001D6 +S31540019E3002800005250000307FFF9CFA9010200229 +S31540019E40250000307FFFE33490102000808A001205 +S31540019E5012BFFFFD0100000001000000920A3FFC15 +S31540019E607FFFE32F901020009010001492102000E5 +S31540019E707FFFFC6094102000010000007FFFE32675 +S31540019E8090102000033C3FFF821063FC820A0001D0 +S31540019E90901020007FFFE322921060030100000032 +S31540019EA07FFFE278010000007FFFE31B9010200056 +S31540019EB0833A200C8208600380A0600102BFFE3510 +S31540019EC0010000007FFF9CD79010200330BFFE3178 +S31540019ED07FFF9CD490102007C205A19080A060000E +S31540019EE034BFFE692510012430BFFE767FFF9CCD2D +S31540019EF09010200810BFFE92033FFFBF7FFF9CC911 +S31540019F009010201130BFFEC912BFFF810100000031 +S31540019F1030BFFF819DE3BFA07FFFFC5301000000DE +S31540019F2013002040B01000089212600F7FFFE2FC40 +S31540019F309010200081C7E00881E800009DE3BFA0A2 +S31540019F407FFF9CAA1100412C82102007EC062004B9 +S31540019F50E0062004C2262008AC0DA003AC05A001F2 +S31540019F6001000000C02600007FFF9CA79010200A38 +S31540019F700300020084103FFFB8060001C426000119 +S31540019F80A13C2002292AAAAAA00C27FFA81522AA89 +S31540019F902B155555A12C2008AA1561558810001C72 +S31540019FA0C2060001A8084014AA0840159A102000CC +S31540019FB080A420002280000D9A03600186012020A2 +S31540019FC08410000482102000EA208000E820C000AE +S31540019FD0820060108400A04080A0401006BFFFFBB5 +S31540019FE08600E0409A03600180A5800D14BFFFF111 +S31540019FF0880120043B000200AE102000BA17602001 +S3154001A000BA06001D80A4200022800017AE05E0019B +S3154001A010A610001CA410001DA2102000C204C000FE +S3154001A02080A0401502800004010000007FFF9C7D56 +S3154001A03090102001C204800080A0401422800005B7 +S3154001A040A20460107FFF9C7790102001A20460104B +S3154001A050A604E04080A4401006BFFFF1A404A0403E +S3154001A060AE05E00180A5801714BFFFE7BA0760047B +S3154001A0707FFF9C659010200C2F0008001B1555553D +S3154001A080AE060017092AAAAA9A136155881122AA6F +S3154001A09098100017961020001500020080A4200099 +S3154001A0A02280000D9602E001860320048410000CF4 +S3154001A0B082102000DA208000C820C00082006002A1 +S3154001A0C08400A00880A0401006BFFFFB8600E00880 +S3154001A0D09602E00180A5800B14BFFFF19803000AA8 +S3154001A0E02B155555292AAAAAAA156155A81522AA9A +S3154001A0F0BA1020003900020080A4200022800017F7 +S3154001A100BA076001A605E004A4100017A2102000BA +S3154001A110C204800080A040150280000401000000B6 +S3154001A1207FFF9C4090102003C204C00080A04014D1 +S3154001A13022800005A20460027FFF9C3A9010200312 +S3154001A140A2046002A404A00880A4401006BFFFF147 +S3154001A150A604E008BA07600180A5801D14BFFFE789 +S3154001A160AE05C01C2F0008001B155555AE15E00461 +S3154001A170092AAAAAAE0600179A136155881122AA7E +S3154001A18098100017961020001500020080A42000A8 +S3154001A1902280000D9602E00186033FFC8410000CEC +S3154001A1A082102000DA208000C820C00082006002B0 +S3154001A1B08400A00880A0401006BFFFFB8600E0088F +S3154001A1C09602E00180A5800B14BFFFF19803000AB7 +S3154001A1D02B155555292AAAAAAA156155A81522AAA9 +S3154001A1E0BA1020003900020080A420002280001706 +S3154001A1F0BA076001A605FFFCA4100017A2102000B3 +S3154001A200C204800080A040150280000401000000C5 +S3154001A2107FFF9C0490102004C204C00080A040141B +S3154001A22022800005A20460027FFF9BFE901020045D +S3154001A230A2046002A404A00880A4401006BFFFF156 +S3154001A240A604E008BA07600180A5801D14BFFFE798 +S3154001A250AE05C01C82102005C2262008032000003E +S3154001A260C226000081C7E00881E80000033FFFBF26 +S3154001A270821063609DE380017FFFFAD425200000B0 +S3154001A2804000016E2D0000307FFFE2239010200830 +S3154001A290AA1000087FFFE2209010200C7FFF9BFD53 +S3154001A2A0AE100008912A20047FFF9BD79002200C14 +S3154001A2B082102001873D60148608E00F8600E00A7F +S3154001A2C0A73D6010A13D6018853DE014A60CE0074E +S3154001A2D08408A00FA604E0028400A00AA728401320 +S3154001A2E0A00C2003A93DE010A0042001A80D2007E1 +S3154001A2F0A12C0003A8052002AA2480108604FFFF92 +S3154001A300A9284014A33DE01882053FFFA20C600333 +S3154001A310A2046001AA154003A32C4002A424801183 +S3154001A320A41480017FFFE1FC90102000808A001672 +S3154001A33012BFFFFD133FFFBF90100011921263C081 +S3154001A34015155555920780097FFFE1869412A1554F +S3154001A35080A220001280007001000000133FFFBF61 +S3154001A36090100011921263C0152AAAAA9207800979 +S3154001A3707FFFE1909412A2AA80A22000128000637E +S3154001A380010000007FFF9BC301000000912A2004C9 +S3154001A3907FFF9B9D9002200A40000125010000009D +S3154001A3A0032AAAAA981062AA82106200901000118C +S3154001A3B0920C8001941000127FFFE1A796100014C1 +S3154001A3C080A220001280004D010000000315555562 +S3154001A3D0981061558210610090100011941000127E +S3154001A3E0961000147FFFE19C920C800180A2200010 +S3154001A3F01280003F010000007FFF9BA60100000084 +S3154001A400912A20047FFF9B809002200B9010001020 +S3154001A410131555557FFFE1779212615580A22000B1 +S3154001A4201280002F0100000090100010132AAAAAE2 +S3154001A4307FFFE170921262AA80A22000128000255D +S3154001A440010000007FFF9B9301000000912A200438 +S3154001A4507FFF9B6D9002200990100010921000150D +S3154001A46094100013172AAAAA7FFFE16E9612E2AA58 +S3154001A47080A22000128000130100000090100010FD +S3154001A4809210001594100013171555557FFFE1657D +S3154001A4909612E15580A220000280000401000000CE +S3154001A4A07FFF9B60901020087FFFFA48B010200084 +S3154001A4B0400000E20100000081C7E00881E8000099 +S3154001A4C07FFF9B589010200710BFFFEE90100010A1 +S3154001A4D07FFF9B549010200630BFFFDB7FFF9B51CF +S3154001A4E09010200510BFFFD2901000107FFF9B4DAA +S3154001A4F09010200430BFFFC17FFF9B4A901020037C +S3154001A50010BFFFB4031555557FFF9B46901020029F +S3154001A51030BFFF9D7FFF9B439010200110BFFF91ED +S3154001A520133FFFBF81C3E008914440008080000093 +S3154001A530151001209412A1EC901020009210224691 +S3154001A54081800000010000000100000001000000C0 +S3154001A550D00280009122400881C3E008010000003A +S3154001A56081800000901020018090200180F0200120 +S3154001A5701280004B010000000100000001000000B4 +S3154001A580010000008090200180F8200112800044E3 +S3154001A5900100000001000000010000000100000070 +S3154001A5A08090200180FA3FFF010000001680003CA8 +S3154001A5B00100000001000000010000000100000050 +S3154001A5C08180000090102001809020010100000050 +S3154001A5D080D02001128000320100000001000000FD +S3154001A5E0010000000100000080D220010280002C01 +S3154001A5F00100000080D23FFF1680002901000000C3 +S3154001A60080DA3FFF9340000080A27FFF1280002442 +S3154001A6100100000080D23FFF93480000933260144E +S3154001A620920A600F80A260081280001D010000009E +S3154001A6308180000090102001945220049452A0047D +S3154001A6409452A00496A2A040128000150100000079 +S3154001A650818000009010200280A00000328000100E +S3154001A6609052000880A220021280000D01000000D5 +S3154001A670818000009010200280A0000001000000AF +S3154001A680328000079052000880A220021280000406 +S3154001A6900100000081C3E0089010200181C3E00859 +S3154001A6A0901000001315555592126155A582400030 +S3154001A6B001000000010000000100000095448000F7 +S3154001A6C080A2400A1280004301000000923A4000F5 +S3154001A6D0A5824000010000000100000001000000C9 +S3154001A6E09544800080A2400A1280003A0100000091 +S3154001A6F01100003F901223FFA580000081800000D9 +S3154001A70001000000010000000100000093F23FFF3C +S3154001A7109A10000993F23FFF93F23FFF93F23FFFF6 +S3154001A72093F23FFF93F23FFF93F23FFF93F23FFFD6 +S3154001A7309940000097448000153FFC009412A00800 +S3154001A74080A2400A1280002380A2400B1280002181 +S3154001A75080A320071280001F113FFF809012200125 +S3154001A76080A340081280001B1100003F901223FF76 +S3154001A770A58000008180000001000000010000006A +S3154001A7800100000093FA3FFF93FA3FFF93FA3FFF20 +S3154001A79093FA3FFF93FA3FFF93FA3FFF93FA3FFF46 +S3154001A7A093FA3FFF994000009744800080A26008D9 +S3154001A7B01280000880A260081280000680A3200053 +S3154001A7C0128000040100000081C3E00890102001BE +S3154001A7D081C3E008901000008180000090102002A3 +S3154001A7E080A00000328000109072000880A22002F2 +S3154001A7F01280000D010000008180000090102002AF +S3154001A80080A000000100000032800007907200081D +S3154001A81080A22002128000040100000081C3E008EA +S3154001A8209010200181C3E00890100000C0A00040B4 +S3154001A83081C3E00801000000110020409012200F62 +S3154001A840D0A0004081C3E008010000009DE3BFA005 +S3154001A8507FFFE0B190102008A21000087FFFE0AE14 +S3154001A8609010200CA0100008C0A00040833C60144A +S3154001A8708208600F8200600A913C6018900A2003AA +S3154001A880900220017FFFE01B912A0001833C2014A6 +S3154001A8908208600F8200600A913C2018900A2003CA +S3154001A8A0900220017FFFE021912A00017FFFF947B5 +S3154001A8B001000000110020409012200FD0A000405E +S3154001A8C081C7E00881E800009812000981820000F2 +S3154001A8D09AAB2FFF02800025988800009923000932 +S3154001A8E0992300099923000999230009992300090D +S3154001A8F099230009992300099923000999230009FD +S3154001A90099230009992300099923000999230009EC +S3154001A91099230009992300099923000999230009DC +S3154001A92099230009992300099923000999230009CC +S3154001A93099230009992300099923000999230009BC +S3154001A94099230009992300099923000999230009AC +S3154001A95099230009992300099923000999230000A5 +S3154001A96081C3E00891400000992300099923000919 +S3154001A970992300099923000999230009992300097C +S3154001A980992300099923000999230009992300096C +S3154001A9909923000999230009992300009B4000004F +S3154001A9A0992B200C9B33601481C3E0089013400C13 +S3154001A9B01080000B86102000809240081680000807 +S3154001A9C086100008809240001680000480920000A4 +S3154001A9D01680000392200009902000089A924000B8 +S3154001A9E0128000059610000891D0200281C3E0082C +S3154001A9F09010000080A2C00D0A80009594100000BE +S3154001AA000302000080A2C0010A80002898100000BD +S3154001AA1080A340011A80000D841020019B2B600405 +S3154001AA2010BFFFFC980320019A83400D1A8000074E +S3154001AA308400A001832860049B3360019A0340018E +S3154001AA40108000078420A00180A3400B0ABFFFF7B6 +S3154001AA5001000000028000020100000084A0A00164 +S3154001AA6006800076010000009622C00D9410200158 +S3154001AA701080000A01000000952AA0010680000509 +S3154001AA809B3360019622C00D108000049402A00100 +S3154001AA909602C00D9422A00184A0A00116BFFFF723 +S3154001AAA08092C000308000659B2B600480A3400BE0 +S3154001AAB008BFFFFE9883200102800065982320018C +S3154001AAC08092C000952AA0040680002F9B33600126 +S3154001AAD096A2C00D068000179B33600196A2C00D59 +S3154001AAE00680000B9B33600196A2C00D06800005CF +S3154001AAF09B33600196A2C00D108000509402A00FB6 +S3154001AB009682C00D1080004D9402A00D9682C00D14 +S3154001AB10068000059B33600196A2C00D1080004758 +S3154001AB209402A00B9682C00D108000449402A009A5 +S3154001AB309682C00D0680000B9B33600196A2C00D24 +S3154001AB40068000059B33600196A2C00D1080003B34 +S3154001AB509402A0079682C00D108000389402A00589 +S3154001AB609682C00D068000059B33600196A2C00DFA +S3154001AB70108000329402A0039682C00D1080002FEF +S3154001AB809402A0019682C00D068000179B33600196 +S3154001AB9096A2C00D0680000B9B33600196A2C00DA4 +S3154001ABA0068000059B33600196A2C00D10800023EC +S3154001ABB09402BFFF9682C00D108000209402BFFD13 +S3154001ABC09682C00D068000059B33600196A2C00D9A +S3154001ABD01080001A9402BFFB9682C00D10800017A8 +S3154001ABE09402BFF99682C00D0680000B9B3360012B +S3154001ABF096A2C00D068000059B33600196A2C00D4A +S3154001AC001080000E9402BFF79682C00D1080000B93 +S3154001AC109402BFF59682C00D068000059B33600104 +S3154001AC2096A2C00D108000059402BFF39682C00D16 +S3154001AC30108000029402BFF198A3200116BFFFA223 +S3154001AC408092C000268000029602C0098090C00012 +S3154001AC50268000029620000B81C3E0089010000B6D +S3154001AC6092100008941020009010200096102000A9 +S3154001AC708213C000400001E39E1040000100000025 +S3154001AC809210000803100121D00062A88213C0006F +S3154001AC90400002629E104000010000009210000830 +S3154001ACA003100121D00062A88213C00040000003B6 +S3154001ACB09E104000010000009DE3BFA084102000CB +S3154001ACC08206600B80A0601608800004A010201048 +S3154001ACD0A0087FF88534201F80A400190A80004609 +S3154001ACE08088A0FF1280004401000000400001AFAF +S3154001ACF09010001880A421F7188000418334200960 +S3154001AD0023100120A214622082044010E400600C4A +S3154001AD1080A480010280010F99342003C604A00457 +S3154001AD20C404A00CC204A0088608FFFC8604800364 +S3154001AD30C800E00488112001C220A008C820E00410 +S3154001AD40C420600C9010001840000192B004A00885 +S3154001AD5081C7E00881E80000E6046008E804E004F1 +S3154001AD60A80D3FFC8225001080A0600F148000D200 +S3154001AD7080A40014031001232F100121EA0060F87A +S3154001AD80C205E22CAA05601080A07FFF0280000464 +S3154001AD90AA054010AA056FFFAA0D70009010001871 +S3154001ADA0400001889210001580A23FFF02800009F1 +S3154001ADB0A41000088404C01480A08008088000EC18 +S3154001ADC02D10012380A44013028000EAC205A1048C +S3154001ADD0C2046008C40060048408BFFC822080105D +S3154001ADE080A0600F1480012280A400024000016906 +S3154001ADF09010001881C7E00891E82000993420039B +S3154001AE0080A060000280000F872B200380A0600491 +S3154001AE1008800092993420069800605B80A06014F7 +S3154001AE2008800008872B200380A0605418800113F6 +S3154001AE3080A061549934200C9803206E872B2003FF +S3154001AE4023100120A214622086044003E400E00C92 +S3154001AE5080A0C0123280000BC404A00410800010F0 +S3154001AE609803200136800068C604A00CE404A00CB7 +S3154001AE7080A0C0122280000A98032001C404A004C5 +S3154001AE808408BFFC8220801080A0600F04BFFFF6BB +S3154001AE9080A0600098033FFF98032001071001201E +S3154001AEA08610E228E400E00880A0C0122280002A31 +S3154001AEB0C2046004C404A0048408BFFC822080103C +S3154001AEC080A0600F1480008A80A06000C620E00C3C +S3154001AED016800059C620E00880A0A1FF28800062A4 +S3154001AEE08530A0038330A00980A06004188000E962 +S3154001AEF08800605B8930A006880120389B292003A1 +S3154001AF009A04400DC203600880A0400D32800008BB +S3154001AF10C8006004108000E9DA04600480A340019F +S3154001AF2022800008C400600CC800600488093FFC08 +S3154001AF3080A080042ABFFFFAC2006008C400600CEA +S3154001AF40C424A00CC224A008E420600CE420A0087C +S3154001AF50C2046004853B2002881020018929000231 +S3154001AF6080A040042ABFFF7EE60460088088400432 +S3154001AF702280004B980B3FFC952B20039610000C2A +S3154001AF809404400A9A10000AE403600C80A340121C +S3154001AF903280000BC404A004108000589602E001E0 +S3154001AFA036800019C604A00CE404A00C80A340120C +S3154001AFB0228000529602E001C404A0048408BFFC2A +S3154001AFC08220801080A0600F04BFFFF680A0600041 +S3154001AFD0DA04A00CC804A00884048010A01420013F +S3154001AFE0C8236008DA21200CC420E00CC420E00804 +S3154001AFF0E024A004C2208001C620A00810800010D1 +S3154001B000C620A00CC204A00884048002C800A00483 +S3154001B01088112001C220E008C820A004C620600C87 +S3154001B02090100018400000DBB004A00881C7E0087A +S3154001B03081E8000084048002C200A00482106001FD +S3154001B040C220A00490100018400000D2B004A0080D +S3154001B05081C7E00881E800009803203810BFFF79D6 +S3154001B060872B20038928A00388044004DA0120089D +S3154001B070D6046004C824A00CDA24A0088538A002AE +S3154001B08082102001E423600C83284002E421200839 +S3154001B0908210400B10BFFFB0C224600489292001F1 +S3154001B0A08088400402BFFFFE9803200410BFFFB40E +S3154001B0B0952B200338BFFF3103100123E4046008B8 +S3154001B0C084048010A014200182106001E024A004B1 +S3154001B0D0C220A00490100018C4246008400000ADAE +S3154001B0E0B004A00881C7E00881E80000840480100C +S3154001B0F010BFFFBEA0142001808AE00312BFFFA348 +S3154001B1009A04A008808B20030280009C8202BFF82B +S3154001B110D400600880A2800122BFFFFB98033FFF55 +S3154001B120C20460048929200180A1000118BFFF0BD8 +S3154001B13080A1200022BFFF0AE60460088089000141 +S3154001B140228000928929200110BFFF8C9810000BA4 +S3154001B1508204A008E400600C80A0401202BFFF50A8 +S3154001B1609803200210BFFEEFC604A004C205A10445 +S3154001B1708205400180A0801202800067C225A10499 +S3154001B180C605E22C80A0FFFF2280006B031001213F +S3154001B1908204800184204002C425A104848CA00736 +S3154001B1A0028000060300000482102008822040022B +S3154001B1B0A404800182207000AA0480159010001812 +S3154001B1C0AA0D6FFFAA2040154000007E921000157F +S3154001B1D080A23FFF02800060841020018422001279 +S3154001B1E0840080158410A001C205A1048205400196 +S3154001B1F0C225A104C424A00480A4401302800010E7 +S3154001B200E424600880A5200F0880003A84053FF4B5 +S3154001B2108408BFF88604C002C804E00488092001F6 +S3154001B22088108004C824E00488102005C820E0085E +S3154001B23080A0A00F18800042C820E0040510012319 +S3154001B240C600A0FC80A0400338800002C220A0FCBA +S3154001B25005100123C600A10080A0400338BFFEDDD2 +S3154001B260C220A10010BFFEDCC204600828BFFF95C2 +S3154001B270E404600830BFFEDE1880001780A06554E4 +S3154001B2809934200F9803207710BFFEEE872B2003B9 +S3154001B29080A0601408BFFF1B9B29200380A0605437 +S3154001B2A01880001780A061548930A00C8801206E57 +S3154001B2B010BFFF149B2920038939200284102001E5 +S3154001B2C08528800484134002C424600410BFFF1DF6 +S3154001B2D084100001861023F018BFFEDA9810207EF4 +S3154001B2E0993420129803207C10BFFED6872B200369 +S3154001B2F08210200110BFFEB7C224A0041880001896 +S3154001B30080A065548930A00F8801207710BFFEFDCB +S3154001B3109B2920038088AFFF12BFFF9BC605E22C05 +S3154001B320C4046008860540148610E00110BFFFC4BE +S3154001B330C620A00410BFFF9AE420622C9204E008C4 +S3154001B340400000B6901000180310012310BFFFBC47 +S3154001B350C200610410BFFFA5AA1020009A1023F075 +S3154001B36018BFFEE88810207E8930A0128801207C13 +S3154001B37010BFFEE49B292003C204600482284004D6 +S3154001B38010BFFF68C224600410BFFF6D9602E0043F +S3154001B39011100121901222308213C000400003A1F6 +S3154001B3A09E10400001000000111001219012223030 +S3154001B3B08213C000400003859E104000010000003A +S3154001B3C09DE3BFA02110012490100019400001A85F +S3154001B3D0C02421A080A23FFF02800004C20421A014 +S3154001B3E081C7E00891E8000880A0600002BFFFFD28 +S3154001B3F001000000C226000081C7E00891E800086C +S3154001B4009DE3BFA021100123400003709014212C1D +S3154001B41003100074E20061B0D004614880A22000AC +S3154001B4202280003D9004614CC202200480A0601F2E +S3154001B4301480001E0100000080A620000280001238 +S3154001B44084006002C4022004820060228600A04279 +S3154001B450892860028728E002C2022188F42200047A +S3154001B460F6220003861020018728C002821040037D +S3154001B470C222218880A62002028000198210000281 +S3154001B480840060028528A00282006001C222200455 +S3154001B490F2220002B0102000400003629014212CD9 +S3154001B4A081C7E00881E800007FFFFDFD90102190F3 +S3154001B4B080A220002280001A9014212CC2046148E7 +S3154001B4C0C2220000D0246148C0222004C022218823 +S3154001B4D0C022218C10BFFFD982102000C202218CCC +S3154001B4E08610400382100002840060028528A00273 +S3154001B4F0C622218C82006001F2220002C22220046F +S3154001B500B0102000400003479014212C81C7E00869 +S3154001B51081E8000010BFFFC5D024614840000341C7 +S3154001B520B0103FFF81C7E00881E800009DE3BFA05E +S3154001B5307FFFFF9E9010001821100120A0142220A9 +S3154001B540C2042008E2006004A20C7FFC82046FEF73 +S3154001B550B2204019B20E7000B206700080A66FFF8D +S3154001B56004800009901000187FFFFF96921020007A +S3154001B570C20420088200401180A200010280000717 +S3154001B58090100018901000187FFFFF82B010200025 +S3154001B59081C7E00881E800007FFFFF8A92200019F9 +S3154001B5A080A23FFF0280000EA2244019C404200855 +S3154001B5B0A214600103100123E220A0049010001898 +S3154001B5C0B0102001C4006104B22080197FFFFF71D1 +S3154001B5D0F220610481C7E00881E80000901000185C +S3154001B5E07FFFFF7892102000C204200884220001C8 +S3154001B5F080A0A00F04BFFFE407100121C600E22C82 +S3154001B60090220003071001238410A001D020E104F9 +S3154001B61010BFFFDDC42060049DE3BFA080A660008B +S3154001B62002800050010000007FFFFF60901000186B +S3154001B63084067FF8D800A004820B3FFE0910012042 +S3154001B6408600800188112220DA00E004D601200814 +S3154001B65080A2C003028000639A0B7FFCDA20E004DB +S3154001B660808B20011280000E98102000D8067FF8AA +S3154001B6708420800C8200400CD600A0089801200846 +S3154001B68080A2C00C0280000698102001D400A00CB4 +S3154001B690D422E00C98102000D622A0089600C00DB6 +S3154001B6A0D602E004808AE0013280000A86106001F9 +S3154001B6B080A320000280002D8200400DDA00E008C0 +S3154001B6C0C600E00CC623600CDA20E0088610600153 +S3154001B6D0C220800180A3200012800020C620A00441 +S3154001B6E080A061FF28800030833060038730600985 +S3154001B6F080A0E004188000529800E05B9930600613 +S3154001B700980320389B2B20039A01000DC60360083D +S3154001B71080A0C00D32800008C800E00410800052AD +S3154001B720DA01200480A3400322800008C200E00C15 +S3154001B730C800E00488093FFC80A040042ABFFFFA04 +S3154001B740C600E008C200E00CC220A00CC620A0083A +S3154001B750C420E00CC42060087FFFFF0E81E8000092 +S3154001B76081C7E00881E80000DA00E00817100120EF +S3154001B7709612E22880A3400B32BFFFD3C600E00CED +S3154001B780C423600CC4236008C2208001DA20A008CB +S3154001B79082106001DA20A00CC220A0047FFFFEFDCA +S3154001B7A081E800008728600386010003DA00E0088B +S3154001B7B0C620A00CDA20A008D8012004C423600CBE +S3154001B7C0C420E00883386002841020018328800168 +S3154001B7D082130001C22120047FFFFEEE81E80000B2 +S3154001B7E0808B20011280000982034001D8067FF830 +S3154001B7F08420800CDA00A00CC600A0088200400C10 +S3154001B800C6236008DA20E00CC421200886106001B6 +S3154001B810C620A00405100121C400A22880A0400230 +S3154001B8200ABFFFCE03100123D20060F87FFFFF401D +S3154001B830901000187FFFFED781E8000080A0E01439 +S3154001B84008BFFFB29B2B200380A0E0541880000D57 +S3154001B85080A0E1549930600C9803206E10BFFFAB75 +S3154001B8609B2B2003993B2002821020018328400C08 +S3154001B87082134001C221200410BFFFB4821000038D +S3154001B8801880000680A0E5549930600F9803207710 +S3154001B89010BFFF9E9B2B20039A1023F018BFFF9BDE +S3154001B8A09810207E993060129803207C10BFFF9734 +S3154001B8B09B2B20039DE3BFA080A620000280001F92 +S3154001B8C003100121E406214880A4A000228000142F +S3154001B8D0C206203CC204A004A0807FFF2C80000C3D +S3154001B8E0E4048000A2006001A32C6002A20480113E +S3154001B8F0C20440009FC04000A2047FFCA0843FFFD9 +S3154001B9003CBFFFFDC2044000E404800080A4A000C7 +S3154001B91032BFFFF2C204A004C206203C80A06000F0 +S3154001B92002800004010000009FC0400090100018F2 +S3154001B93081C7E00881E8000010BFFFE3F00062A87C +S3154001B9409DE3BFA0D206400080A2600002800004B1 +S3154001B950010000007FFFFFFB901000187FFFFF2FC3 +S3154001B96081E80000010000009DE3BFA00310012112 +S3154001B970C20062A880A600010280003201000000D8 +S3154001B980D206204C80A2600022800016E0062148A3 +S3154001B990A2102000E002401180A420002280000B6A +S3154001B9A0A204600492100010901000187FFFFF1B44 +S3154001B9B0E004000080A4200012BFFFFC921000109A +S3154001B9C0D206204CA204600480A4603C32BFFFF33F +S3154001B9D0E00240117FFFFF1190100018E006214858 +S3154001B9E080A420002280000ED2062054A206214CBB +S3154001B9F080A400112280000AD20620549210001021 +S3154001BA00901000187FFFFF05E004000080A440105D +S3154001BA1012BFFFFC92100010D206205480A2600093 +S3154001BA2022800005C20620387FFFFEFC90100018D8 +S3154001BA30C206203880A0600032800004C206203C45 +S3154001BA4081C7E00881E800009FC0400090100018BF +S3154001BA50F20622E080A6600002BFFFFA0100000064 +S3154001BA607FFFFFB881E800000100000005100124B6 +S3154001BA70C200A1A480A06000228000060310012418 +S3154001BA8090004008D020A1A481C3E0089010000195 +S3154001BA90821061B890004008C220A1A4D020A1A480 +S3154001BAA081C3E00890100001A7500000AE100001CC +S3154001BAB08334E00129100123E805203CA92CC01458 +S3154001BAC08215000181E000008190400001000000E4 +S3154001BAD00100000001000000E03BA000E43BA0089B +S3154001BAE0E83BA010EC3BA018F03BA020F43BA0287B +S3154001BAF0F83BA030FC3BA03881E8000082100017DB +S3154001BB0081C4400081CC800001000000010000009A +S3154001BB1001000000A7500000A92CE0012B100123D1 +S3154001BB20EA05603CAB34C015AA1540148195400026 +S3154001BB3001000000010000000100000081E8000052 +S3154001BB4081E80000E01BA000E41BA008E81BA01050 +S3154001BB50EC1BA018F01BA020F41BA028F81BA0305A +S3154001BB60FC1BA03881E0000081E0000081C4400058 +S3154001BB7081CC8000A750000029100071ADC520B8C6 +S3154001BB800100000027100123A614E01CE024C00098 +S3154001BB90818C20200100000001000000010000000E +S3154001BBA09DE3BFA09DE3BFA09DE3BFA09DE3BFA0D2 +S3154001BBB09DE3BFA09DE3BFA09DE3BFA081E8000038 +S3154001BBC081E8000081E8000081E8000081E800008A +S3154001BBD081E8000081E8000027100123A614E01C3B +S3154001BBE0C024C000E203A068A4046004E223A06468 +S3154001BBF0E423A06810800257AC10000029100123ED +S3154001BC00A8152000C2252000C8252004E0252010C3 +S3154001BC10E2252014E4252018E825201C81E80000AF +S3154001BC208348000082106F00818860200100000077 +S3154001BC30010000000100000009100123C801203C59 +S3154001BC4081E000008821200180A920FF02800003B5 +S3154001BC50010000000100000080A1000012BFFFF9B1 +S3154001BC600100000009100123C801203C81E80000C1 +S3154001BC7080A920FF028000030100000001000000AE +S3154001BC808821200180A1000012BFFFF901000000B8 +S3154001BC9081E0000029100123A8152000C8052004D1 +S3154001BCA0C2052000E0052010E2052014E405201815 +S3154001BCB0C025201C818C20000100000001000000ED +S3154001BCC00100000081C4800081CCA004A0142F0093 +S3154001BCD0818C00000100000001000000010000000D +S3154001BCE081C4800081CCA00480A660021280000538 +S3154001BCF0A8142F00818D0000B01420203080001F31 +S3154001BD0080A6600312800006A80E2F00AA2C2F00E1 +S3154001BD10A8154014818D00003080001880A660046B +S3154001BD2012800008A9480000A8152040818D000016 +S3154001BD300100000001000000010000003080000FFA +S3154001BD4080A6600512800008A9480000A82D204061 +S3154001BD50818D00000100000001000000010000008B +S3154001BD603080000680A660061280000301000000B4 +S3154001BD7030BFFFA391D0200081C4800081CCA004B4 +S3154001BD809210200381C3E00891D020029210200234 +S3154001BD9081C3E00891D020029210200681C3E008B9 +S3154001BDA091D0200281C3E0080100000081C3E00870 +S3154001BDB00100000081C3E00801000000AE25A0108B +S3154001BDC0A75000002D10006FAC15A1D029100071AD +S3154001BDD081C5226001000000111001239012202824 +S3154001BDE0D202000092026001D2220000932DE008A7 +S3154001BDF0902C2F009212000911100123901220203D +S3154001BE00D002000080A000082280000292126F003A +S3154001BE10818A60200100000001000000010000004D +S3154001BE2090100017400000379203A06092142F0033 +S3154001BE30818A60200100000001000000010000002D +S3154001BE401110012390122028D20200009222600193 +S3154001BE50D222000010800222AC1000009DE3BFA058 +S3154001BE601B100123892E60029A1361A080A6601FD0 +S3154001BE708210200014800017C6034004B32E6004CC +S3154001BE801910012380A0E000981322200280000DA2 +S3154001BE908406400C80A0C002128000068210000376 +S3154001BEA01080000EC206400C2280000CC206400CD7 +S3154001BEB0C200600C80A0600012BFFFFC80A0800120 +S3154001BEC0C4234004F026400CC620A00C821020005A +S3154001BED081C7E00891E80001F026400C81C7E008DF +S3154001BEE091E80001912A200203100123821061A0EA +S3154001BEF0C4004008C422600C81C3E008D220400837 +S3154001BF009DE3BFA0051001238210A02CC20060044E +S3154001BF1080A0401822800040C400A02C80A62000AA +S3154001BF2022800002B0100001A32E2002031001233B +S3154001BF30821061A0E000401180A4200002800034FC +S3154001BF40291001242D1001242B100124271001242E +S3154001BF50A8152020AC15A0A4AA1560A81080001D24 +S3154001BF60A614E024A41000138400A001C424801167 +S3154001BF70C405800080A0A00022800006D2042008CB +S3154001BF809FC0800001000000C2040000D2042008C6 +S3154001BF90901000189FC0400094100019C20540003F +S3154001BFA080A0600022800005C20480119FC040002D +S3154001BFB001000000C204801182007FFFC22480116B +S3154001BFC0E004200C80A42000028000110100000042 +S3154001BFD0C204000080A0600022BFFFFBE004200CE9 +S3154001BFE0C405000080A0A00012BFFFDFC404C01139 +S3154001BFF080A0A00002BFFFDDA4100013E004200CC6 +S3154001C00080A4200032BFFFF4C204000081C7E008CB +S3154001C01081E80000F000A0C010BFFFC1B00E201F94 +S3154001C0208C10000FA74800008B34E0188A09600F76 +S3154001C03080A160030280000C0B1001238A11603439 +S3154001C0400920000088112070C82140000B100123EF +S3154001C0508A1160500920000088112040C821400003 +S3154001C060108000399010200192102006400001D224 +S3154001C0700100000080A0000802800033010000009A +S3154001C080C2022010113FFC0082084008110003FC47 +S3154001C0908410400890100002921020019410200C48 +S3154001C0A0400001DB0100000080A00008028000265C +S3154001C0B001000000400001EB921000010B1001232A +S3154001C0C08A116034D2214000901000029210200162 +S3154001C0D094102011400001CE0100000080A000080C +S3154001C0E00280001901000000400001DE92100001AB +S3154001C0F0920260100B1001238A116050D221400038 +S3154001C10090100002921020019410200D400001C0B1 +S3154001C1100100000080A000080280000B0100000021 +S3154001C120400001D0921000010B1001238A11602CAE +S3154001C130D2214000D40260109532A010940AA00F7B +S3154001C140D42160049E10000681C3E008010000006E +S3154001C15003100123821060488210200191D02000F3 +S3154001C16081C3E008010000009DE3BFA00310012444 +S3154001C170C20060B08410001880A0600002800006F2 +S3154001C180B0102000901000029FC04000921000198C +S3154001C190B010000881C7E00881E800009DE3BFA018 +S3154001C1A003100124C20060B480A060000280000533 +S3154001C1B0841020009FC04000901000188410000891 +S3154001C1C081C7E00891E800029DE3BFA00310012466 +S3154001C1D0C20060BC80A0600002800005841020007F +S3154001C1E09FC04000901000188410000881C7E008E5 +S3154001C1F091E800029DE3BFA003100124C20060B88C +S3154001C20080A0600002800005841020009FC040008D +S3154001C210901000188410000881C7E00891E80002D8 +S3154001C2209DE3BFA003100124C20060C080A060004E +S3154001C23002800005841020009FC040009010001825 +S3154001C2408410000881C7E00891E800029DE3BFA081 +S3154001C25003100124C20060C480A060000280000572 +S3154001C260841020009FC040009010001884100008E0 +S3154001C27081C7E00891E800029DE3BFA003100124B5 +S3154001C280C20060C880A060000280000584102000C2 +S3154001C2909FC04000901000188410000881C7E00834 +S3154001C2A091E800029DE3BFA003100124C20060CCC7 +S3154001C2B08410001880A0600002800006B0102000A3 +S3154001C2C0901000029FC0400092100019B010000863 +S3154001C2D081C7E00881E800000100000003100070FA +S3154001C2E0821063A89FC040000100000003100000B7 +S3154001C2F08210600081984000031000718210602C0A +S3154001C3009FC0400001000000031000708210639836 +S3154001C3109FC04000010000008B4800008B3160182F +S3154001C3208A09600380A160031280000701000000B2 +S3154001C3308B4440008B31601C80A140001280000676 +S3154001C340010000007FFFFF37010000007FFF93934C +S3154001C350010000009C23A0407FFF932A01000000BA +S3154001C3608210200191D02000010000002900000424 +S3154001C370A68C001432800003A02C001491D020001A +S3154001C380818C000001000000010000000100000056 +S3154001C39081C4800081CCA00481C3E0080100000073 +S3154001C3A081C1E00801000000A74800008B34E01875 +S3154001C3B08A09600380A16003128000080100000021 +S3154001C3C021100123A0142044A2102003E2240000DE +S3154001C3D08B4440001080000821100123A014204402 +S3154001C3E0A2102002E224000021200000E6042024BD +S3154001C3F08B34E0148A09601F27100123A614E03C00 +S3154001C400CA24C0008A01600127100123A614E0381E +S3154001C410CA24C00027100123A614E0408A216002E5 +S3154001C420CA24C00081C3E0080100000081C3E008BE +S3154001C43001000000834800008330601882086003D1 +S3154001C44080A0600312800006010000008344400082 +S3154001C4500500000882284002A380400088100000A1 +S3154001C4600910007081C122DC010000009DE3BFA0DC +S3154001C4702110007423100074A0142150A21461509D +S3154001C48080A400111A80000B01000000D0040000B6 +S3154001C49080A2200002800004A00420049FC2000064 +S3154001C4A00100000080A400112ABFFFFAD004000059 +S3154001C4B081C7E00881E80000AA27A0B0E0256060B6 +S3154001C4C0E2256064E4256068C2256074C43D6078F5 +S3154001C4D0C83D6080CC3D608885400000C425606CC5 +S3154001C4E0F03D6090F43D6098F83D60A0FC3D60A849 +S3154001C4F0A8102001A92D0010808D00130280001381 +S3154001C500010000008534E00107100123C600E03C2C +S3154001C510A72CC0038414C0028408A0FF81E0000058 +S3154001C5208190A000E03BA000E43BA008E83BA010BE +S3154001C530EC3BA018F03BA020F43BA028F83BA030F0 +S3154001C540FC3BA03881E8000081C5A0089C1000157D +S3154001C550051001248410A0ACC400800080A0800096 +S3154001C56002800004010000009FC080009203A06089 +S3154001C570818C20008210200283284010051001235F +S3154001C580C400A03885304002821040028550000028 +S3154001C59080888001028000208328A00107100123A2 +S3154001C5A0C600E03C8530800382104002820860FF6D +S3154001C5B081906000C203A06C81806000F01BA09056 +S3154001C5C0F41BA098F81BA0A0FC1BA0A8C203A07452 +S3154001C5D0C41BA078C81BA080CC1BA088E003A06028 +S3154001C5E0E203A064E403A06881E80000E01BA00028 +S3154001C5F0E41BA008E81BA010EC1BA018F01BA02010 +S3154001C600F41BA028F81BA030FC1BA0381080000F9B +S3154001C61081E00000C203A06C81806000F01BA09005 +S3154001C620F41BA098F81BA0A0FC1BA0A8C203A074F1 +S3154001C630C41BA078C81BA080CC1BA088E003A060C7 +S3154001C640E203A064E403A068818C2000010000009D +S3154001C650010000000100000081C4400081CC80003F +S3154001C660AA27A0B0C2256074C43D6078C83D6080E9 +S3154001C670CC3D608885400000C425606CA81020012F +S3154001C680A92D0010808D00130280001301000000C7 +S3154001C6908534E00107100123C600E03CA72CC00306 +S3154001C6A08414C0028408A0FF81E000008190A000AC +S3154001C6B0E03BA000E43BA008E83BA010EC3BA018FF +S3154001C6C0F03BA020F43BA028F83BA030FC3BA0382F +S3154001C6D081E8000081C5A0089C10001505100124C1 +S3154001C6E08410A0ACC400800080A0800002800004B9 +S3154001C6F0010000009FC080009203A060818C200051 +S3154001C700821020028328401005100123C400A0385E +S3154001C71085304002821040028550000080888001A9 +S3154001C720028000198328A00107100123C600E03CBE +S3154001C7308530800382104002820860FF819060004C +S3154001C740C203A06C81806000C203A074C41BA078A0 +S3154001C750C81BA080CC1BA08881E80000E01BA0007C +S3154001C760E41BA008E81BA010EC1BA018F01BA0209E +S3154001C770F41BA028F81BA030FC1BA0381080000831 +S3154001C78081E00000C203A06C81806000C203A074F6 +S3154001C790C41BA078C81BA080CC1BA088818C20001C +S3154001C7A001000000010000000100000081C44000BA +S3154001C7B081CC8000821000089A1038009610200023 +S3154001C7C0912AE00598034008D40340089132A01805 +S3154001C7D080A20001328000089602E0019132A00C4D +S3154001C7E0900A2FFF80A20009028000079410000CD6 +S3154001C7F09602E00180A2E00728BFFFF3912AE005F7 +S3154001C8009410200081C3E0089010000A82100008AD +S3154001C81098102000912B20039A004008D60040082A +S3154001C8209132E01880A20009328000089803200165 +S3154001C8309132E00C900A2FFF80A2000A0280000785 +S3154001C8409610000D9803200180A3200F28BFFFF307 +S3154001C850912B20039610200081C3E0089010000B15 +S3154001C860D4022004173FFC00920A400B900A800B29 +S3154001C8709132200C921240081100003F901223F091 +S3154001C880940A8008952AA0049412800B920A400AC1 +S3154001C89081C3E008901000099DE3BFA021100074F8 +S3154001C8A0A0142138C2043FFC80A07FFF028000080B +S3154001C8B0A0043FFC9FC04000A0043FFCC20400000E +S3154001C8C080A07FFF12BFFFFC0100000081C7E00886 +S3154001C8D081E800009DE3BFA081C7E00881E8000030 +S3154001C8E00000001000000000017A5200047C0F0194 +S3154001C8F01B0C0E000000001000000018FFFE489CB3 +S3154001C9000000000800000000000000140000002C98 +S3154001C910FFFE48900000002C00410D1E2D090F1FFF +S3154001C9200000001000000044FFFE48A40000001C67 +S3154001C930000000000000001000000058FFFE48AC57 +S3154001C9400000001C00000000000000100000006C08 +S3154001C950FFFE48B40000001C00000000000000106B +S3154001C96000000080FFFE48BC0000001C00000000E3 +S3154001C9700000001400000094FFFE48C40000002C93 +S3154001C98000410D1E2D090F1F00000018000000ACCC +S3154001C990FFFE49240000004000410D1E2D46090FAF +S3154001C9A01F00000000000018000000C8FFFE4948B3 +S3154001C9B00000022400410D1E2D46090F1F000000F4 +S3154001C9C000000018000000E4FFFE4B500000023456 +S3154001C9D000410D1E2D47090F1F00000000000018E1 +S3154001C9E000000100FFFE4D680000003C00410D1EA5 +S3154001C9F02D43090F1F000000000000180000011C14 +S3154001CA00FFFE4D880000003C00410D1E2D43090FDD +S3154001CA101F0000000000001800000138FFFF35E448 +S3154001CA200000024800410D1E2D5D090F1F00000048 +S3154001CA300000001400000154FFFF3810000006906A +S3154001CA4000410D1E2D090F1F000000180000016C4A +S3154001CA50FFFF3E880000002800410D1E2D49090FA9 +S3154001CA601F0000000000001800000188FFFF3E94EF +S3154001CA700000002400410D1E2D48090F1F00000033 +S3154001CA8000000018000001A4FFFF3E9C0000009832 +S3154001CA9000410D1E2D44090F1F0000000000001823 +S3154001CAA0000001C0FFFF3F18000000FC00410D1EC1 +S3154001CAB02D46090F1F00000000000018000001DC90 +S3154001CAC0FFFF3FF8000000C400410D1E2D47090F2E +S3154001CAD01F00000000000018000001F8FFFF40A001 +S3154001CAE00000015000410D1E2D6E090F1F00000070 +S3154001CAF00000001800000214FFFF41D4000004703A +S3154001CB0000410D1E2D44090F1F00000000000018B2 +S3154001CB1000000230FFFF46280000013400410D1E8F +S3154001CB202D4A090F1F000000000000180000024CAA +S3154001CB30FFFF47400000012400410D1E2D49090F0A +S3154001CB401F0000000000001800000268FFFF48486F +S3154001CB50000000B800410D1E2D4A090F1F000000BC +S3154001CB600000001800000284FFFF48E4000000A016 +S3154001CB7000410D1E2D48090F1F0000000000001442 +S3154001CB80000002A0FFFF49680000039400410D1E0A +S3154001CB902D090F1F00000010000002B8FFFF4CE4F2 +S3154001CBA00000002C0000000000000010000002CC34 +S3154001CBB0FFFF4CFC000000240000000000000010B4 +S3154001CBC0000002E0FFFF4D0C0000001800000000CD +S3154001CBD000000018000002F4FFFF4D100000017C28 +S3154001CBE000410D1E2D42090F1F00000000000018D4 +S3154001CBF000000310FFFF4E700000058000410D1E2E +S3154001CC002D46090F1F000000000000180000032CEC +S3154001CC10FFFF53D40000051800410D1E2D43090F97 +S3154001CC201F0000000000001400000348FFFF58D019 +S3154001CC300000010C00410D1E2D090F1F00000010C0 +S3154001CC4000000360FFFF59C4000000180000000007 +S3154001CC500000001400000374FFFF59C800000208D9 +S3154001CC6000410D1E2D090F1F000000140000038C0A +S3154001CC70FFFF6A600000461800410D1E2D090F1F77 +S3154001CC8000000010000003A4FFFFB0600000000C8C +S3154001CC900000000000000010000003B8FFFFB0587C +S3154001CCA0000000140000000000000010000003CC4A +S3154001CCB0FFFFB058000000200000000000000014F3 +S3154001CCC0000003E0FFFFB0640000077000410D1E45 +S3154001CCD02D090F1F00000010000003F8FFFFC0ECF4 +S3154001CCE00000000C00000000000000100000040CD1 +S3154001CCF0FFFFC0E400000024000000000000001017 +S3154001CD0000000420FFFFC0F40000003800000000CE +S3154001CD100000001000000434FFFFC1180000003875 +S3154001CD20000000000000001800000448FFFFC13C5D +S3154001CD300000009C00410D1E2D56090F1F000000EA +S3154001CD400000001800000464FFFFC1BC0000003C65 +S3154001CD5000410D1E2D4A090F1F000000000000185A +S3154001CD6000000480FFFFC1DC0000003C00410D1EB5 +S3154001CD702D4A090F1F000000000000100000049C0E +S3154001CD80FFFFC1FC00000038000000000000001851 +S3154001CD90000004B0FFFFC2200000003C00410D1E10 +S3154001CDA02D4A090F1F00000000000018000004CCA6 +S3154001CDB0FFFFC2400000003C00410D1E2D4A090FF5 +S3154001CDC01F00000000000010000004E8FFFFC260E1 +S3154001CDD0000000380000000000000018000004FCBC +S3154001CDE0FFFFC28400000EB000430D1E2D4C090FFB +S3154001CDF01F0000000000001400000518FFFFD118B5 +S3154001CE000000002800410D1E2D090F1F00000014CF +S3154001CE1000000530FFFFD1280000033000410D1E00 +S3154001CE202D090F1F0000001400000548FFFFD440E4 +S3154001CE30000002B800430D1E2D090F1F000000100F +S3154001CE4000000560FFFFD9E80000000C000000006B +S3154001CE500000001000000574FFFFD9E00000001437 +S3154001CE60000000000000001400000588FFFFD9E023 +S3154001CE700000007C00410D1E2D090F1F000000100F +S3154001CE80000005A0FFFFDDDC0000002000000000DF +S3154001CE9000000010000005B4FFFFDDE80000001CA3 +S3154001CEA00000000000000010000005C8FFFFDDF093 +S3154001CEB00000001C0000000000000018000005DC16 +S3154001CEC0FFFFDDF8000006D800410D1E2D4C090F6D +S3154001CED01F00000000000010000005F8FFFFE4B449 +S3154001CEE00000001800000000000000100000060CC1 +S3154001CEF0FFFFE4B800000018000000000000001821 +S3154001CF0000000620FFFFE4BC0000004000410D1E6A +S3154001CF102D42090F1F000000000000180000063CCA +S3154001CF20FFFFE4E00000012C00410D1E2D41090FD9 +S3154001CF301F0000000000001400000658FFFFE5F046 +S3154001CF40000000EC00410D1E2D090F1F00000018C6 +S3154001CF5000000670FFFFE6C40000029C00410D1E62 +S3154001CF602D43090F1F000000000000180000068C29 +S3154001CF70FFFFE9440000008C00410D1E2D4F090FB3 +S3154001CF801F00000000000018000006A8FFFFE9B4DA +S3154001CF900000002800410D1E2D44090F1F0000000E +S3154001CFA000000018000006C4FFFFE9C000000104AC +S3154001CFB000410D1E2D45090F1F0000000000001005 +S3154001CFC0000006E0FFFFEAA80000003C0000000068 +S3154001CFD000000018000006F4FFFFEE840000008800 +S3154001CFE000410D1E2D52090F1F00000000000010C8 +S3154001CFF000000710FFFFEEF00000001C00000000DB +S3154001D0000000001800000724FFFFEEF80000012091 +S3154001D01000410D1E2D58090F1F0000000000001091 +S3154001D02000000740FFFFF13400000010000000003F +S3154001D0300000001800000754FFFFF13000000034E3 +S3154001D04000410D1E2D47090F1F000000000000186A +S3154001D05000000770FFFFF1480000002C00410D1E43 +S3154001D0602D45090F1F000000000000180000078C25 +S3154001D070FFFFF1580000002C00410D1E2D45090F00 +S3154001D0801F00000000000018000007A8FFFFF1681C +S3154001D0900000002C00410D1E2D45090F1F00000008 +S3154001D0A000000018000007C4FFFFF1780000002CC3 +S3154001D0B000410D1E2D45090F1F00000000000018FC +S3154001D0C0000007E0FFFFF1880000002C00410D1E23 +S3154001D0D02D45090F1F00000000000018000007FC45 +S3154001D0E0FFFFF1980000002C00410D1E2D45090F50 +S3154001D0F01F0000000000001800000818FFFFF1A8FB +S3154001D1000000003400410D1E2D47090F1F0000008D +S3154001D1100000001800000834FFFFF3540000004CE3 +S3154001D12000410D1E2D47090F1F00000000000000A1 +S3154001D13000000002FFFFFFFF0000000000000000AA +S3154001D14000000002FFFFFFFF00000000000000009A +S3154001D150343074693934612B307967697975303582 +S3154001D1607968617035796934682B612B6969797899 +S3154001D1706869346B35396A30713930356A6B6F7924 +S3154001D18070686F70746A72686961346979302B347A +S3154001D1900000000000000000400800000000000000 +S3154001D1A03CD203AF9EE756163E7AD7F29ABCAF48B9 +S3154001D1B0400486B00000000043000000000000006B +S3154001D1C09DE3BFA07FFF8FD9010000007FFFFDB324 +S3154001D1D00100000081C7E00881E800009DE3BFA08F +S3154001D1E07FFF8FA70100000081C7E00881E80000AA +S3154002000000000001000000000000000000000000A7 S315400200102000000000000000000000000000000078 S315400200200000000000000000000000000000000088 S315400200300000000000000000000000000000000078 @@ -7353,328 +7468,328 @@ S315400200A00000000000000000000000000000000008 S315400200B000000000000000000000000000000000F8 S315400200C000000000000000000000000000000000E8 S315400200D000000000000000000000000000000000D8 -S315400200E00000000100000000000000410000000086 -S315400200F0343074693934612B3079676979753035B2 -S315400201007968617035796934682B612B69697978C8 -S315400201106869346B35396A30713930356A6B6F7953 -S3154002012070686F70746A72686961346979302B34A9 -S315400201300000000000000000000000010000000076 -S3154002014040000000000000004008000000000000DF -S31540020150401800000000000080000000000000007F -S315400201600000000000000000BFF000000000000098 -S31540020170BF800000000000000000000000000000F8 -S315400201800000000000000000000000000000000027 -S315400201903FF00000000000004008000000000000A0 -S315400201A03FF0000040000000000000000000000098 -S315400201B03F800000404000000000000000000000B8 -S315400201C000000000000000000000000000000000E7 -S315400201D0000000000000000048000001000000008E -S315400201E0480000000000000046C000000000000079 -S315400201F03FF0000000000000400000000000000048 -S3154002020040080000000000003F800000000000009F -S31540020210529000000000000052900FF807F60DEBD6 -S3154002022052901FE03F61BAD052902FB8D4E30F48A4 -S3154002023052903F81F636B80C52904F3BD03C0A64FE -S3154002024052905EE68EFAD48B52906E825DA8FC2B5B -S3154002025052907E0F66AFED0752908D8DD3B1D9AADB -S3154002026052909CFDCD8ED0095290AC5F7C69A3C85A -S315400202705290BBB307ACAFDB5290CAF8960E710DE3 -S315400202805290DA304D95FB065290E95A539F492CCB -S315400202905290F876CCDF6CD952910785DD689A295F -S315400202A052911687A8AE14A35291257C5187FD0917 -S315400202B052913463FA37014E5291433EC467EFFB83 -S315400202C05291520CD1372FEB529160CE41341D746C -S315400202D052916F8334644DF952917E2BCA46BAB914 -S315400202E052918CC821D6D3E352919B58598F7C9F09 -S315400202F05291A9DC8F6DF1045291B854E0F496A064 -S315400203005291C6C16B2DB8705291D5224AAE2EE19A -S315400203105291E3779B97F4A85291F1C1799CA8FF39 -S31540020320529200000000000052920E33499A21A9CF -S3154002033052921C5B70D9F82452922A788FC76DE587 -S315400203405292388AC0059C28529246921AD4EA4959 -S315400203505292548EB9151E8552926280B347609668 -S315400203605292706821902E9A52927E451BB944C38E -S3154002037052928C17B9337834529299E01118857596 -S315400203805292A79E3A2CD2E65292B5524AE1278E13 -S315400203905292C2FC595456A75292D09C7B54E03E8C -S315400203A05292DE32C66287415292EBBF4FAFDD4B6D -S315400203B05292F9422C23C47E529306BB705AE7C32B -S315400203C05293142B30A929AB52932191811B0A4196 -S315400203D052932EEE7577041652933C42213EE0C963 -S315400203E05293498C97B10540529356CDEBC9B5E22B -S315400203F0529364063044530652937135779C8DCBA3 -S3154002040052937E5BD40F95A152938B79579D3EAB07 -S315400204105293988E1409212E5293A59A1ADBB257FB -S315400204205293B29D7D6356625293BF984CB56C7798 -S315400204305293CC8A99AF54535293D97474F76DF24E -S315400204405293E655EEFE13675293F32F17FE8D0431 -S31540020450529400000000000052940CC8B6D657C20F -S31540020460529419894C2329F052942641CF569572BB -S31540020470529432F24FB01C7A52943F9ADC3F79CE74 -S3154002048052944C3B83E57153529458D455549C1A1A -S31540020490529465655F122FF6529471EEAF76C2C6DC -S315400204A052947E7054AF098952948AEA5CBC935F37 -S315400204B05294975CD57680885294A3C7CC8A358A63 -S315400204C05294B02B4F7C0A885294BC876BA7F6ECA9 -S315400204D05294C8DC2E4239805294D529A457FCFC4A -S315400204E05294E16FDACFF9375294EDAEDE6B10FEDD -S315400204F05294F9E6BBC4ECB3529506177F5491BBAE -S3154002050052951241356CF6E052951E63EA3D95B01E -S3154002051052952A7FA9D2F8EA529536948017481006 -S31540020520529542A278D2D03652954EA99FAC8A0FA6 -S3154002053052955AAA002A9D5A529566A3A5B2E1B18E -S31540020540529572969B8B5CD852957E82ECDABE8D22 -S3154002055052958A68A4A8D9F352959647CDDF1CA531 -S315400205605295A220734903775295ADF29F948CFB24 -S315400205705295B9BE5D52A9DA5295C583B6F7AB0319 -S315400205805295D142B6DBADC55295DCFB673B05DFE2 -S315400205905295E8ADD236A58F5295F45A01D483B41A -S315400205A0529600000000000052960B9FD68A455490 -S315400205B0529617398F2AAA48529622CD337F0FE890 -S315400205C052962E5ACD0C3EBE529639E2653E421B9B -S315400205D0529645640568C1C3529650DFB6C759F470 -S315400205E052965C55827DF1D2529667C57199104BEF -S315400205F05296732F8D0E2F7752967E93DDBC0E73D5 -S31540020600529689F26C6B01D05296954B41CD4293EC -S315400206100BC0A4068F346C9B0BC093731C185447B3 -S315400206200BC083008E183C230BC072AE83A9704A5E -S315400206300BC0627C9CC166FF0BC0526A7ACE64A430 -S315400206400BC04277C0B04ADA0BC032A412B191A0B5 -S315400206500BC022EF168069500BC0135873280473DF -S315400206600BC003DFD10A08480BBFE909B3B04632D3 -S315400206700BBFCA8E711B8E880BBFAC4D32D4143061 -S315400206800BBF8E4553D34B1B0BBF7076318237EF70 -S315400206900BBF52DF2BADF99C0BBF357FA47C936C0D -S315400206A00BBF18570061F5EB0BBEFB64A61545154B -S315400206B00BBEDEA7FE865A2B0BBEC22074D37FBC6E -S315400206C00BBEA5CD763F66690BBE89AE722750F04A -S315400206D00BBE6DC2D9F976230BBE520A212B976CFB -S315400206E00BBE3683BD31CAA20BBE1B2F257575CAFA -S315400206F00BBE000BD34C7BAF0BBDE51941F097FE09 -S315400207000BBDCA56EE76E9D00BBDAFC457C7AB7325 -S315400207100BBD9560FE9616690BBD7B2C65587275AE -S315400207200BBD612610404EC00BBD474D8532E409D4 -S315400207300BBD2DA24BC19EDF0BBD1423ED22D10171 -S315400207400BBCFAD1F42A88E40BBCE1ABED438E80B4 -S315400207500BBCC8B1666884820BBCAFE1EF1D2D01AC -S315400207600BBC973D1867D0EF0BBC7EC274CAC962F8 -S315400207700BBC6671983E29FE0BBC4E4A18298BA9C2 -S315400207800BBC364B8B5DF6DB0BBC1E758A0FECBF82 -S315400207900BBC06C7ADD18E7E0BBBEF41918CE1F609 -S315400207A00BBBD7E2D17E33360BBBC0AB0B2E921BB3 -S315400207B00BBBA999DD6E6B650BBB92AEE8503CA7AD -S315400207C00BBB7BE9CD2362720BBB654A2E6F002CB5 -S315400207D00BBB4ECFAFED00FE0BBB3879F685313FF2 -S315400207E00BBB2248A8486FDE0BBB0C3B6C6BF73B3E -S315400207F00BBAF651EB44BCEE0BBAE08BCE42E7F1B4 -S315400208000BBACAE8BFED5CC00BBAB5686BDD5EDDFC -S315400208100BBAA00A7EBA475E0BBA8ACEA6354FEB12 -S315400208200BBA75B4910571DB0BBA60BBEEE358EFB8 -S315400208300BBA4BE4708569410BBA372DC79BD7FE7D -S315400208400BBA2297A6CCD68C0BBA0E21C1B0CFA03A -S315400208500BB9F9CBCCCEB6050BB9E5957D98648B31 -S315400208600BB9D17E8A670EE70BB9BD86AA77C3104C -S315400208700BB9A9AD95E7FAC40BB995F305B23CE5B8 -S315400208800BB98256B3AACE570BB96ED85A7C7206AA -S315400208900BB95B77B5A537C80BB94834817359CCC8 -S315400208A00BB9350E7B02284D0BB922056037032E54 -S315400208B00BB90F18EFBE614A0BB8FC48E908E522AE -S315400208C00BB8E9950C487EA90BB8D6FD1A6D99E886 -S315400208D00BB8C480D5245A340BB8B21FFED1E1BC42 -S315400208E00BB89FDA5A91A5260BB88DAFAC32CB0A1C -S315400208F00BB87B9FB83596F60BB869AA43C8DFE1B9 -S315400209000BB857CF14C791B50BB8460DF1B639C6D9 -S315400209100BB83466A1C09DF90BB822D8ECB75E6E0F -S315400209200BB811649B0DA16B0BB8000975D6C9595A -S315400209300BB7EEC746C434A50BB7DD9DD823075285 -S315400209400BB7CC8CF4D9FE010BB7BB9468674A50FF -S315400209500BB7AAB3FEDE78540BB799EB84E65D0C6F -S315400209600BB7893AC7B70D960BB778A19517DF0132 -S315400209700BB7681FBB5D6E910BB757B50967B24C93 -S315400209800BB747614EA011A20BB737245AF786140C -S315400209900BB726FDFEE4C3A00BB716EE0B6268E862 -S315400209A00BB706F451ED36CE0BB6F710A4824F8044 -S315400209B00BB6E742D59D7CB40BB6D78AB8377D0EC7 -S315400209C00BB6C7E81FC458720BB6B85AE031BB32F1 -S315400209D00BB6A8E2CDE557F90BB6997FBDBB50459C -S315400209E00BB68A318504A35C0BB67AF7F985A39BCD -S315400209F00BB66BD2F17471FF0BB65CC243777FCEF6 -S31540020A000BB64DC5C6A416420BB63EDD527CE4116A -S31540020A100BB63008BEF090CF0BB62147E45855EBE3 -S31540020A200BB6129A9B769D520BB60400BD75A584F1 -S31540020A300BB5F57A23E62B070BB5E706A8BE172CAE -S31540020A400BB5D8A6265733FF0BB5CA58776DE54B7B -S31540020A500BB5BC1D771FE6AB0BB5ADF500EB0E78BB -S31540020A600BB59FDEF0AC15940BB591DB229D63F27C -S31540020A700BB583E97355E1C10BB57609BFC7CD32D4 -S31540020A800BB5683BE53F94B80BB55A7FC162B5B624 -S31540020A900BB54CD5322E9F7F0BB53F3C15F79AA12D -S31540020AA00BB531B44B67B45A0BB5243DB17DAE306C -S31540020AB00BB516D8278BF18F0BB509838D37876710 -S31540020AC00BB4FC3FC27713AE0BB4EF0CA791D4BB69 -S31540020AD00BB4E1EA1D1EA6680BB4D4D8040308E59C -S31540020AE00BB4C7D63D722B370BB4BAE4AAEBF9481E -S31540020AF00BB4AE032E3C2D7E0BB4A131A97965C948 -S31540020B000BB4946FFF043C1C0BB487BE118662364D -S31540020B100BB47B1BC3F1C0BF0BB46E88F97F999BA4 -S31540020B200BB4620595AFAD730BB455917C476454D3 -S31540020B300BB4492C9150F96C0BB43CD6B91AA9C8DE -S31540020B400BB4308FD835E60B0BB42457D3768716C1 -S31540020B500BB4182E8FF205900BB40C13F2FEB43B75 -S31540020B600BB40007E232FD1F0BB3F40A4364A167DC -S31540020B700BB3E81AFCA7FBF00BB3DC39F44F468AF9 -S31540020B800BB3D06710E9E1C30BB3C4A239439F4FFD -S31540020B900BB3B8EB54640EF10BB3AD42498DCDDFC6 -S31540020BA00BB3A1A7003DD89B0BB39619602ADF2B46 -S31540020BB00BB38A9951449BB80BB37F26BBB32B79AF -S31540020BC00BB373C187D669EA0BB368699E454E4437 -S31540020BD00BB35D1EE7CD4B2D0BB351E14D71B09872 -S31540020BE00BB346B0B86B0FC30BB33B8D1226A15A5B -S31540020BF00BB330764445ADAC0BB3256C389CF6EB63 -S31540020C000BB31A6ED934256E0BB30F7E104535F5EC -S31540020C100BB30499C83BE9D60BB2F9C1EBB53923FC -S31540020C200BB2EEF6657EC6AA0BB2E437209655D5D0 -S31540020C300BB2D984082942630BB2CEDD0793F9E79A -S31540020C400BB2C4420A6177190BB2B9B2FC4ABEDA98 -S31540020C500BB2AF2FC9365EFF0BB2A4B85D37EEC1F9 -S31540020C600BB29A4CA48F90E30BB28FEC8BA9777997 -S31540020C700BB28597FF1D694D0BB27B4EEBAE48DD3D -S31540020C800BB271113E499CEE0BB266DEE4071AA81E -S31540020C900BB25CB7CA2831380BB2529BDE1796F7B5 -S31540020CA00BB2488B0D68D8030BB23E8545D7E65A40 -S31540020CB00BB2348A7548AB540BB22A9A89C69A97B4 -S31540020CC00BB220B5718446610BB216DB1ADAF53FD8 -S31540020CD00BB20D0B744A39100BB203466C77876C14 -S31540020CE00BB1F98BF22DD3490BB1EFDBF45D27FF44 -S31540020CF00BB1E636621A457E0BB1DC9B2A9E3DD588 -S31540020D000BB1D30A3D4613EE0BB1C98389925B817F -S31540020D100BB1C006FF26DA3F0BB1B6948DCA2A281C -S31540020D200BB1AD2C25655D0F0BB1A3CDB603A13D2D -S31540020D300BB19A792FD1E7410BB1912E831E88D2FE -S31540020D400BB187EDA058F0D60BB17EB6781144733D -S31540020D500BB17588FAF80D3A0BB16C6519DDE45D95 -S31540020D600BB1634AC5B31EEF0BB15A39EF877B28E5 -S31540020D700BB151328889CEAE0BB148348207B5DB0E -S31540020D800BB13F3FCD6D43FF0BB136545C44B49A31 -S31540020D900BB12D7220361D870BB124990B07221BEE -S31540020DA00BB11BC90E9AA72D0BB113021CF0880F6B -S31540020DB00BB10A4428254C650BB1018F2271DEE541 -S31540020DC00BB0F8E2FE2B44F40BB0F03FADC2572312 -S31540020DD00BB0E7A523C37A850BB0DF1352D65AD997 -S31540020DE00BB0D68A2DBDA58C0BB0CE09A756C589A8 -S31540020DF00BB0C591B2999FDB0BB0BD2242985115FB -S31540020E000BB0B4BB4A7EEB870BB0AC5CBD933636B7 -S31540020E1065300000653010006530200065303000D6 -S31540020E2065304000653050006530600065307000C6 -S31540020E3065308000653090006530A0006530B000B6 -S31540020E406530C0006530D0006530E0006530F000A6 -S31540020E506531000065311000653120006531300092 -S31540020E606531400065315000653160006531700082 -S31540020E7065318000653190006531A0006531B00072 -S31540020E806531C0006531D0006531E0006531F00062 -S31540020E90653200006532100065322000653230004E -S31540020EA0653240006532500065326000653270003E -S31540020EB065328000653290006532A0006532B0002E -S31540020EC06532C0006532D0006532E0006532F0001E -S31540020ED0653300006533100065332000653330000A -S31540020EE065334000653350006533600065337000FA -S31540020EF065338000653390006533A0006533B000EA -S31540020F006533C0006533D0006533E0006533F000D9 -S31540020F1065340000653410006534200065343000C5 -S31540020F2065344000653450006534600065347000B5 -S31540020F3065348000653490006534A0006534B000A5 -S31540020F406534C0006534D0006534E0006534F00095 -S31540020F506535000065351000653520006535300081 -S31540020F606535400065355000653560006535700071 -S31540020F7065358000653590006535A0006535B00061 -S31540020F806535C0006535D0006535E0006535F00051 -S31540020F90653600006536100065362000653630003D -S31540020FA0653640006536500065366000653670002D -S31540020FB065368000653690006536A0006536B0001D -S31540020FC06536C0006536D0006536E0006536F0000D -S31540020FD065370000653710006537200065373000F9 -S31540020FE065374000653750006537600065377000E9 -S31540020FF065378000653790006537A0006537B000D9 -S315400210006537C0006537D0006537E0006537F000C8 -S3154002101065380000653810006538200065383000B4 -S3154002102065384000653850006538600065387000A4 -S3154002103065388000653890006538A0006538B00094 -S315400210406538C0006538D0006538E0006538F00084 -S315400210506539000065391000653920006539300070 -S315400210606539400065395000653960006539700060 -S3154002107065398000653990006539A0006539B00050 -S315400210806539C0006539D0006539E0006539F00040 -S31540021090653A0000653A1000653A2000653A30002C -S315400210A0653A4000653A5000653A6000653A70001C -S315400210B0653A8000653A9000653AA000653AB0000C -S315400210C0653AC000653AD000653AE000653AF000FC -S315400210D0653B0000653B1000653B2000653B3000E8 -S315400210E0653B4000653B5000653B6000653B7000D8 -S315400210F0653B8000653B9000653BA000653BB000C8 -S31540021100653BC000653BD000653BE000653BF000B7 -S31540021110653C0000653C1000653C2000653C3000A3 -S31540021120653C4000653C5000653C6000653C700093 -S31540021130653C8000653C9000653CA000653CB00083 -S31540021140653CC000653CD000653CE000653CF00073 -S31540021150653D0000653D1000653D2000653D30005F -S31540021160653D4000653D5000653D6000653D70004F -S31540021170653D8000653D9000653DA000653DB0003F -S31540021180653DC000653DD000653DE000653DF0002F -S31540021190653E0000653E1000653E2000653E30001B -S315400211A0653E4000653E5000653E6000653E70000B -S315400211B0653E8000653E9000653EA000653EB000FB -S315400211C0653EC000653ED000653EE000653EF000EB -S315400211D0653F0000653F1000653F2000653F3000D7 -S315400211E0653F4000653F5000653F6000653F7000C7 -S315400211F0653F8000653F9000653FA000653FB000B7 -S31540021200653FC000653FD000653FE000653FF000A6 -S315400212104200000000000000400FFFFFFFFFFFFFFB -S315400212204200000000200000420FFFFFFFFFFFFFC9 -S3154002123040000000000000004210000000080000CC -S3154002124042000000000000013EB000000000000124 -S315400212504200000000000002420F484C0137D2080B -S31540021260C20E780F256007AB41BA079B7AF94BA0AD -S315400212704201484C0137D208420E780F256007AB2F -S315400212804217E02D934BECDA420F484C0137D20815 -S31540021290C21E780F256007ABC20DA7D249883D4EC4 -S315400212A0421F484C0137D208C20E780F256007AB61 -S315400212B042100C446E87CE32C03340AB371208918F -S315400212C00000000000000000C03340AB3712089116 -S315400212D00000000000000000C29E7A0F236007A6AD -S315400212E0C29E7A0F236007A66F3F484C0137D20849 -S315400212F06E2E780F256007AB6F3F485B3D3F64B863 -S315400213006F3F484C0137D208EE2E780F256007AB67 -S315400213106F3F483CC5303F587FE2F780AB123809F1 -S315400213207FD00000000000007FEAF780AB12380948 -S31540021330002000000000000080280000000000009D -S3154002134080100000000000007FEFF780AB123809E2 -S315400213507FEFF2010203A1117FF0000000000000BE -S315400213600010000000001000801FFFFFF203A111D1 -S315400213708000000000000000001ABCD000023809BC -S31540021380801ABCD0000001110000000000000000DD -S315400213907E71000000000000416010000000000065 -S315400213A07FE11100000000000178100000000000FB -S315400213B03E880000FFF0000000120C00C073F800E7 -S315400213C0C1EFFFFFC00020003FB3C75D224F280F89 -S315400213D0C1B3C75CFAC08192A12FFF8000001FFFF4 -S315400213E03EE0000000FF0000A01FFF8001FE18073C -S315400213F041CFFFFE0000002040303FFFFFFFFFFDD0 -S3154002140042103FFEFC00000D3FD000003FEFFFFFC1 -S31540021410BFD0000010000000BFB000004FF0003FF8 -S3154002142001701000000000003E8000011A0000001A -S3154002143000000000000000007E7C0000000000006A -S31540021440416A1000010000107FF000000000000019 -S3154002145075012034056AC000FA1009091000104FC0 -S31540021460FFF00000000000000100203040030200AF -S31540021470003020340000A00B0000000000000000F5 -S315400214807FE0001010200001400000000010200AFA -S315400214907FF00000000000003FEFDFF00FFC484AFB -S315400214A0BFF80000000000007FFF000000000000BF -S315400214B07FFFE000000000007FF400000000000013 -S315400214C07FC00000000000007FF80000000000001E -S315400214D07FF0000000000000FFF000000000000066 -S315400214E0FFF0000000000000800000000000000045 -S315400214F000000000000100000000000000000000A3 +S315400200E00000000100000001BF8000000000000087 +S315400200F0BFF0000000000000800000000000000089 +S315400201000000000000000000400000000000000067 +S3154002011040080000000000004018000000000000F7 +S315400201200000000000000000000000000000000087 +S3154002013000000000000000003FF000000000000048 +S3154002014040080000000000003FF0000040000000B0 +S3154002015000000000000000003F8000004040000018 +S315400201600000000000000000000000000000000047 +S315400201700000000000000000000000000000000037 +S315400201804800000100000000480000000000000096 +S3154002019046C00000000000003FF0000000000000E2 +S315400201A0400000000000000040080000000000007F +S315400201B03F80000000000000000000000001000037 +S315400201C08000000000000000FFF000000000000078 +S315400201D0FFF00000000000007FF000000000000079 +S315400201E07FF80000000000007FC000000000000011 +S315400201F07FF40000000000007FFFE00000000000E6 +S315400202007FFF000000000000BFF800000000000071 +S315400202103FEFDFF00FFC484A7E710000000000000D +S3154002022041601000000000007FE111000000000064 +S3154002023001781000000000003E880000FFF0000038 +S3154002024000120C00C073F800C1EFFFFFC00020008F +S315400202503FB3C75D224F280FC1B3C75CFAC0819234 +S31540020260A12FFF8000001FFF3EE0000000FF0000BC +S31540020270A01FFF8001FE180741CFFFFE00000020AD +S3154002028040303FFFFFFFFFFD42103FFEFC00000DE6 +S315400202903FD000003FEFFFFFBFD00000100000003C +S315400202A0BFB000004FF0003F017010000000000098 +S315400202B03E8000011A00000000000000000000001D +S315400202C07E7C000000000000416A10000100001020 +S315400202D07FF000000000000075012034056AC0006E +S315400202E0FA1009091000104FFFF00000000000004C +S315400202F00100203040030200003020340000A00BF1 +S3154002030000000000000000007FE000101020000105 +S31540020310400000000010200A7FF0000000000000AC +S315400203204200000000000000400FFFFFFFFFFFFFFA +S315400203304200000000200000420FFFFFFFFFFFFFC8 +S3154002034040000000000000004210000000080000CB +S3154002035042000000000000013EB000000000000123 +S315400203604200000000000002420F484C0137D2080A +S31540020370C20E780F256007AB41BA079B7AF94BA0AC +S315400203804201484C0137D208420E780F256007AB2E +S315400203904217E02D934BECDA420F484C0137D20814 +S315400203A0C21E780F256007ABC20DA7D249883D4EC3 +S315400203B0421F484C0137D208C20E780F256007AB60 +S315400203C042100C446E87CE32C03340AB371208918E +S315400203D00000000000000000C03340AB3712089115 +S315400203E00000000000000000C29E7A0F236007A6AC +S315400203F0C29E7A0F236007A66F3F484C0137D20848 +S315400204006E2E780F256007AB6F3F485B3D3F64B861 +S315400204106F3F484C0137D208EE2E780F256007AB66 +S315400204206F3F483CC5303F587FE2F780AB123809F0 +S315400204307FD00000000000007FEAF780AB12380947 +S31540020440002000000000000080280000000000009C +S3154002045080100000000000007FEFF780AB123809E1 +S315400204607FEFF2010203A1117FF0000000000000BD +S315400204700010000000001000801FFFFFF203A111D0 +S315400204808000000000000000001ABCD000023809BB +S31540020490801ABCD0000001110000000000000000DC +S315400204A06530000065301000653020006530300050 +S315400204B06530400065305000653060006530700040 +S315400204C065308000653090006530A0006530B00030 +S315400204D06530C0006530D0006530E0006530F00020 +S315400204E0653100006531100065312000653130000C +S315400204F065314000653150006531600065317000FC +S3154002050065318000653190006531A0006531B000EB +S315400205106531C0006531D0006531E0006531F000DB +S3154002052065320000653210006532200065323000C7 +S3154002053065324000653250006532600065327000B7 +S3154002054065328000653290006532A0006532B000A7 +S315400205506532C0006532D0006532E0006532F00097 +S315400205606533000065331000653320006533300083 +S315400205706533400065335000653360006533700073 +S3154002058065338000653390006533A0006533B00063 +S315400205906533C0006533D0006533E0006533F00053 +S315400205A0653400006534100065342000653430003F +S315400205B0653440006534500065346000653470002F +S315400205C065348000653490006534A0006534B0001F +S315400205D06534C0006534D0006534E0006534F0000F +S315400205E065350000653510006535200065353000FB +S315400205F065354000653550006535600065357000EB +S3154002060065358000653590006535A0006535B000DA +S315400206106535C0006535D0006535E0006535F000CA +S3154002062065360000653610006536200065363000B6 +S3154002063065364000653650006536600065367000A6 +S3154002064065368000653690006536A0006536B00096 +S315400206506536C0006536D0006536E0006536F00086 +S315400206606537000065371000653720006537300072 +S315400206706537400065375000653760006537700062 +S3154002068065378000653790006537A0006537B00052 +S315400206906537C0006537D0006537E0006537F00042 +S315400206A0653800006538100065382000653830002E +S315400206B0653840006538500065386000653870001E +S315400206C065388000653890006538A0006538B0000E +S315400206D06538C0006538D0006538E0006538F000FE +S315400206E065390000653910006539200065393000EA +S315400206F065394000653950006539600065397000DA +S3154002070065398000653990006539A0006539B000C9 +S315400207106539C0006539D0006539E0006539F000B9 +S31540020720653A0000653A1000653A2000653A3000A5 +S31540020730653A4000653A5000653A6000653A700095 +S31540020740653A8000653A9000653AA000653AB00085 +S31540020750653AC000653AD000653AE000653AF00075 +S31540020760653B0000653B1000653B2000653B300061 +S31540020770653B4000653B5000653B6000653B700051 +S31540020780653B8000653B9000653BA000653BB00041 +S31540020790653BC000653BD000653BE000653BF00031 +S315400207A0653C0000653C1000653C2000653C30001D +S315400207B0653C4000653C5000653C6000653C70000D +S315400207C0653C8000653C9000653CA000653CB000FD +S315400207D0653CC000653CD000653CE000653CF000ED +S315400207E0653D0000653D1000653D2000653D3000D9 +S315400207F0653D4000653D5000653D6000653D7000C9 +S31540020800653D8000653D9000653DA000653DB000B8 +S31540020810653DC000653DD000653DE000653DF000A8 +S31540020820653E0000653E1000653E2000653E300094 +S31540020830653E4000653E5000653E6000653E700084 +S31540020840653E8000653E9000653EA000653EB00074 +S31540020850653EC000653ED000653EE000653EF00064 +S31540020860653F0000653F1000653F2000653F300050 +S31540020870653F4000653F5000653F6000653F700040 +S31540020880653F8000653F9000653FA000653FB00030 +S31540020890653FC000653FD000653FE000653FF00020 +S315400208A00BC0A4068F346C9B0BC093731C18544721 +S315400208B00BC083008E183C230BC072AE83A9704ACC +S315400208C00BC0627C9CC166FF0BC0526A7ACE64A49E +S315400208D00BC04277C0B04ADA0BC032A412B191A023 +S315400208E00BC022EF168069500BC01358732804734D +S315400208F00BC003DFD10A08480BBFE909B3B0463241 +S315400209000BBFCA8E711B8E880BBFAC4D32D41430CE +S315400209100BBF8E4553D34B1B0BBF7076318237EFDD +S315400209200BBF52DF2BADF99C0BBF357FA47C936C7A +S315400209300BBF18570061F5EB0BBEFB64A6154515B8 +S315400209400BBEDEA7FE865A2B0BBEC22074D37FBCDB +S315400209500BBEA5CD763F66690BBE89AE722750F0B7 +S315400209600BBE6DC2D9F976230BBE520A212B976C68 +S315400209700BBE3683BD31CAA20BBE1B2F257575CA67 +S315400209800BBE000BD34C7BAF0BBDE51941F097FE76 +S315400209900BBDCA56EE76E9D00BBDAFC457C7AB7393 +S315400209A00BBD9560FE9616690BBD7B2C655872751C +S315400209B00BBD612610404EC00BBD474D8532E40942 +S315400209C00BBD2DA24BC19EDF0BBD1423ED22D101DF +S315400209D00BBCFAD1F42A88E40BBCE1ABED438E8022 +S315400209E00BBCC8B1666884820BBCAFE1EF1D2D011A +S315400209F00BBC973D1867D0EF0BBC7EC274CAC96266 +S31540020A000BBC6671983E29FE0BBC4E4A18298BA92F +S31540020A100BBC364B8B5DF6DB0BBC1E758A0FECBFEF +S31540020A200BBC06C7ADD18E7E0BBBEF41918CE1F676 +S31540020A300BBBD7E2D17E33360BBBC0AB0B2E921B20 +S31540020A400BBBA999DD6E6B650BBB92AEE8503CA71A +S31540020A500BBB7BE9CD2362720BBB654A2E6F002C22 +S31540020A600BBB4ECFAFED00FE0BBB3879F685313F5F +S31540020A700BBB2248A8486FDE0BBB0C3B6C6BF73BAB +S31540020A800BBAF651EB44BCEE0BBAE08BCE42E7F121 +S31540020A900BBACAE8BFED5CC00BBAB5686BDD5EDD6A +S31540020AA00BBAA00A7EBA475E0BBA8ACEA6354FEB80 +S31540020AB00BBA75B4910571DB0BBA60BBEEE358EF26 +S31540020AC00BBA4BE4708569410BBA372DC79BD7FEEB +S31540020AD00BBA2297A6CCD68C0BBA0E21C1B0CFA0A8 +S31540020AE00BB9F9CBCCCEB6050BB9E5957D98648B9F +S31540020AF00BB9D17E8A670EE70BB9BD86AA77C310BA +S31540020B000BB9A9AD95E7FAC40BB995F305B23CE525 +S31540020B100BB98256B3AACE570BB96ED85A7C720617 +S31540020B200BB95B77B5A537C80BB94834817359CC35 +S31540020B300BB9350E7B02284D0BB922056037032EC1 +S31540020B400BB90F18EFBE614A0BB8FC48E908E5221B +S31540020B500BB8E9950C487EA90BB8D6FD1A6D99E8F3 +S31540020B600BB8C480D5245A340BB8B21FFED1E1BCAF +S31540020B700BB89FDA5A91A5260BB88DAFAC32CB0A89 +S31540020B800BB87B9FB83596F60BB869AA43C8DFE126 +S31540020B900BB857CF14C791B50BB8460DF1B639C647 +S31540020BA00BB83466A1C09DF90BB822D8ECB75E6E7D +S31540020BB00BB811649B0DA16B0BB8000975D6C959C8 +S31540020BC00BB7EEC746C434A50BB7DD9DD8230752F3 +S31540020BD00BB7CC8CF4D9FE010BB7BB9468674A506D +S31540020BE00BB7AAB3FEDE78540BB799EB84E65D0CDD +S31540020BF00BB7893AC7B70D960BB778A19517DF01A0 +S31540020C000BB7681FBB5D6E910BB757B50967B24C00 +S31540020C100BB747614EA011A20BB737245AF7861479 +S31540020C200BB726FDFEE4C3A00BB716EE0B6268E8CF +S31540020C300BB706F451ED36CE0BB6F710A4824F80B1 +S31540020C400BB6E742D59D7CB40BB6D78AB8377D0E34 +S31540020C500BB6C7E81FC458720BB6B85AE031BB325E +S31540020C600BB6A8E2CDE557F90BB6997FBDBB504509 +S31540020C700BB68A318504A35C0BB67AF7F985A39B3A +S31540020C800BB66BD2F17471FF0BB65CC243777FCE63 +S31540020C900BB64DC5C6A416420BB63EDD527CE411D8 +S31540020CA00BB63008BEF090CF0BB62147E45855EB51 +S31540020CB00BB6129A9B769D520BB60400BD75A5845F +S31540020CC00BB5F57A23E62B070BB5E706A8BE172C1C +S31540020CD00BB5D8A6265733FF0BB5CA58776DE54BE9 +S31540020CE00BB5BC1D771FE6AB0BB5ADF500EB0E7829 +S31540020CF00BB59FDEF0AC15940BB591DB229D63F2EA +S31540020D000BB583E97355E1C10BB57609BFC7CD3241 +S31540020D100BB5683BE53F94B80BB55A7FC162B5B691 +S31540020D200BB54CD5322E9F7F0BB53F3C15F79AA19A +S31540020D300BB531B44B67B45A0BB5243DB17DAE30D9 +S31540020D400BB516D8278BF18F0BB509838D3787677D +S31540020D500BB4FC3FC27713AE0BB4EF0CA791D4BBD6 +S31540020D600BB4E1EA1D1EA6680BB4D4D8040308E509 +S31540020D700BB4C7D63D722B370BB4BAE4AAEBF9488B +S31540020D800BB4AE032E3C2D7E0BB4A131A97965C9B5 +S31540020D900BB4946FFF043C1C0BB487BE11866236BB +S31540020DA00BB47B1BC3F1C0BF0BB46E88F97F999B12 +S31540020DB00BB4620595AFAD730BB455917C47645441 +S31540020DC00BB4492C9150F96C0BB43CD6B91AA9C84C +S31540020DD00BB4308FD835E60B0BB42457D37687162F +S31540020DE00BB4182E8FF205900BB40C13F2FEB43BE3 +S31540020DF00BB40007E232FD1F0BB3F40A4364A1674A +S31540020E000BB3E81AFCA7FBF00BB3DC39F44F468A66 +S31540020E100BB3D06710E9E1C30BB3C4A239439F4F6A +S31540020E200BB3B8EB54640EF10BB3AD42498DCDDF33 +S31540020E300BB3A1A7003DD89B0BB39619602ADF2BB3 +S31540020E400BB38A9951449BB80BB37F26BBB32B791C +S31540020E500BB373C187D669EA0BB368699E454E44A4 +S31540020E600BB35D1EE7CD4B2D0BB351E14D71B098DF +S31540020E700BB346B0B86B0FC30BB33B8D1226A15AC8 +S31540020E800BB330764445ADAC0BB3256C389CF6EBD0 +S31540020E900BB31A6ED934256E0BB30F7E104535F55A +S31540020EA00BB30499C83BE9D60BB2F9C1EBB539236A +S31540020EB00BB2EEF6657EC6AA0BB2E437209655D53E +S31540020EC00BB2D984082942630BB2CEDD0793F9E708 +S31540020ED00BB2C4420A6177190BB2B9B2FC4ABEDA06 +S31540020EE00BB2AF2FC9365EFF0BB2A4B85D37EEC167 +S31540020EF00BB29A4CA48F90E30BB28FEC8BA9777905 +S31540020F000BB28597FF1D694D0BB27B4EEBAE48DDAA +S31540020F100BB271113E499CEE0BB266DEE4071AA88B +S31540020F200BB25CB7CA2831380BB2529BDE1796F722 +S31540020F300BB2488B0D68D8030BB23E8545D7E65AAD +S31540020F400BB2348A7548AB540BB22A9A89C69A9721 +S31540020F500BB220B5718446610BB216DB1ADAF53F45 +S31540020F600BB20D0B744A39100BB203466C77876C81 +S31540020F700BB1F98BF22DD3490BB1EFDBF45D27FFB1 +S31540020F800BB1E636621A457E0BB1DC9B2A9E3DD5F5 +S31540020F900BB1D30A3D4613EE0BB1C98389925B81ED +S31540020FA00BB1C006FF26DA3F0BB1B6948DCA2A288A +S31540020FB00BB1AD2C25655D0F0BB1A3CDB603A13D9B +S31540020FC00BB19A792FD1E7410BB1912E831E88D26C +S31540020FD00BB187EDA058F0D60BB17EB678114473AB +S31540020FE00BB17588FAF80D3A0BB16C6519DDE45D03 +S31540020FF00BB1634AC5B31EEF0BB15A39EF877B2853 +S315400210000BB151328889CEAE0BB148348207B5DB7B +S315400210100BB13F3FCD6D43FF0BB136545C44B49A9E +S315400210200BB12D7220361D870BB124990B07221B5B +S315400210300BB11BC90E9AA72D0BB113021CF0880FD8 +S315400210400BB10A4428254C650BB1018F2271DEE5AE +S315400210500BB0F8E2FE2B44F40BB0F03FADC257237F +S315400210600BB0E7A523C37A850BB0DF1352D65AD904 +S315400210700BB0D68A2DBDA58C0BB0CE09A756C58915 +S315400210800BB0C591B2999FDB0BB0BD224298511568 +S315400210900BB0B4BB4A7EEB870BB0AC5CBD93363625 +S315400210A0529000000000000052900FF807F60DEB38 +S315400210B052901FE03F61BAD052902FB8D4E30F4806 +S315400210C052903F81F636B80C52904F3BD03C0A6460 +S315400210D052905EE68EFAD48B52906E825DA8FC2BBD +S315400210E052907E0F66AFED0752908D8DD3B1D9AA3D +S315400210F052909CFDCD8ED0095290AC5F7C69A3C8BC +S315400211005290BBB307ACAFDB5290CAF8960E710D44 +S315400211105290DA304D95FB065290E95A539F492C2C +S315400211205290F876CCDF6CD952910785DD689A29C0 +S3154002113052911687A8AE14A35291257C5187FD0978 +S3154002114052913463FA37014E5291433EC467EFFBE4 +S315400211505291520CD1372FEB529160CE41341D74CD +S3154002116052916F8334644DF952917E2BCA46BAB975 +S3154002117052918CC821D6D3E352919B58598F7C9F6A +S315400211805291A9DC8F6DF1045291B854E0F496A0C5 +S315400211905291C6C16B2DB8705291D5224AAE2EE1FC +S315400211A05291E3779B97F4A85291F1C1799CA8FF9B +S315400211B0529200000000000052920E33499A21A931 +S315400211C052921C5B70D9F82452922A788FC76DE5E9 +S315400211D05292388AC0059C28529246921AD4EA49BB +S315400211E05292548EB9151E8552926280B3476096CA +S315400211F05292706821902E9A52927E451BB944C3F0 +S3154002120052928C17B9337834529299E011188575F7 +S315400212105292A79E3A2CD2E65292B5524AE1278E74 +S315400212205292C2FC595456A75292D09C7B54E03EED +S315400212305292DE32C66287415292EBBF4FAFDD4BCE +S315400212405292F9422C23C47E529306BB705AE7C38C +S315400212505293142B30A929AB52932191811B0A41F7 +S3154002126052932EEE7577041652933C42213EE0C9C4 +S315400212705293498C97B10540529356CDEBC9B5E28C +S31540021280529364063044530652937135779C8DCB04 +S3154002129052937E5BD40F95A152938B79579D3EAB69 +S315400212A05293988E1409212E5293A59A1ADBB2575D +S315400212B05293B29D7D6356625293BF984CB56C77FA +S315400212C05293CC8A99AF54535293D97474F76DF2B0 +S315400212D05293E655EEFE13675293F32F17FE8D0493 +S315400212E0529400000000000052940CC8B6D657C271 +S315400212F0529419894C2329F052942641CF5695721D +S31540021300529432F24FB01C7A52943F9ADC3F79CED5 +S3154002131052944C3B83E57153529458D455549C1A7B +S31540021320529465655F122FF6529471EEAF76C2C63D +S3154002133052947E7054AF098952948AEA5CBC935F98 +S315400213405294975CD57680885294A3C7CC8A358AC4 +S315400213505294B02B4F7C0A885294BC876BA7F6EC0A +S315400213605294C8DC2E4239805294D529A457FCFCAB +S315400213705294E16FDACFF9375294EDAEDE6B10FE3E +S315400213805294F9E6BBC4ECB3529506177F5491BB0F +S3154002139052951241356CF6E052951E63EA3D95B080 +S315400213A052952A7FA9D2F8EA529536948017481068 +S315400213B0529542A278D2D03652954EA99FAC8A0F08 +S315400213C052955AAA002A9D5A529566A3A5B2E1B1F0 +S315400213D0529572969B8B5CD852957E82ECDABE8D84 +S315400213E052958A68A4A8D9F352959647CDDF1CA593 +S315400213F05295A220734903775295ADF29F948CFB86 +S315400214005295B9BE5D52A9DA5295C583B6F7AB037A +S315400214105295D142B6DBADC55295DCFB673B05DF43 +S315400214205295E8ADD236A58F5295F45A01D483B47B +S31540021430529600000000000052960B9FD68A4554F1 +S31540021440529617398F2AAA48529622CD337F0FE8F1 +S3154002145052962E5ACD0C3EBE529639E2653E421BFC +S31540021460529645640568C1C3529650DFB6C759F4D1 +S3154002147052965C55827DF1D2529667C57199104B50 +S315400214805296732F8D0E2F7752967E93DDBC0E7336 +S31540021490529689F26C6B01D05296954B41CD42934E +S315400214A000000000000000000000000000000000F4 +S315400214B000000000000000000000000000000000E4 +S315400214C000000000000000000000000000000000D4 +S315400214D000000000000000000000000000000000C4 +S315400214E000000000000000000000000000000000B4 +S315400214F000000000000000000000000000000000A4 S315400215000000000000000000000000000000000093 S315400215100000000000000000000000000000000083 S315400215200000000000000000000000000000000073 @@ -9387,8 +9502,8 @@ S31540027FC00000000000000000000000000000000069 S31540027FD00000000000000000000000000000000059 S31540027FE00000000000000000000000000000000049 S31540027FF00000000000000000000000000000000039 -S315400280000000003F0000000C0000003F000000128C -S31540028010000000FF00000018000000000000000001 +S315400280000000000000000000000000000000000028 +S315400280100000000000000000000000000000000018 S315400280200000000000000000000000000000000008 S3154002803000000000000000000000000000000000F8 S3154002804000000000000000000000000000000000E8 @@ -16299,8 +16414,8 @@ S31540042FC000000000000000000000000000000000B7 S31540042FD000000000000000000000000000000000A7 S31540042FE00000000000000000000000000000000097 S31540042FF00000000000000000000000000000000087 -S315400430000000000000000000000000000000000076 -S315400430100000000000000000000000000000000066 +S3154004300000000018000000FF000000120000003F0E +S315400430100000000C0000003F00000000000000001B S315400430200000000000000000000000000000000056 S315400430300000000000000000000000000000000046 S315400430400000000000000000000000000000000036 @@ -17579,125 +17694,125 @@ S31540047FC00000000000000000000000000000000067 S31540047FD00000000000000000000000000000000057 S31540047FE00000000000000000000000000000000047 S31540047FF00000000000000000000000000000000037 -S315400480000000000000000000000000000000000026 -S315400480100000000000000000000000000000000016 -S315400480200000000000000000000000000000000006 -S3154004803000000000000000000000000000000000F6 -S3154004804000000000000000000000000000000000E6 -S3154004805000000000000000000000000000000000D6 -S3154004806000000000000000000000000000000000C6 -S3154004807000000000000000000000000000000000B6 -S3154004808000000000000000000000000000000000A6 -S315400480900000000000000000000000000000000096 -S315400480A00000000000000000000000000000000086 -S315400480B00000000000000000000000000000000076 -S315400480C00000000000000000000000000000000066 -S315400480D00000000000000000000000000000000056 -S315400480E00000000000000000000000000000000046 -S315400480F00000000000000000000000000000000036 -S315400481000000000000000000000000000000000025 -S315400481100000000000000000000000000000000015 -S315400481200000000000000000000000000000000005 -S3154004813000000000000000000000000000000000F5 -S3154004814000000000000000000000000000000000E5 -S3154004815000000000000000000000000000000000D5 -S3154004816000000000000000000000000000000000C5 -S3154004817000000000000000000000000000000000B5 -S3154004818000000000000000000000000000000000A5 -S315400481900000000000000000000000000000000095 -S315400481A00000000000000000000000000000000085 -S315400481B00000000000000000000000000000000075 -S315400481C00000000000000000000000000000000065 -S315400481D00000000000000000000000000000000055 -S315400481E00000000000000000000000000000000045 +S31540048000000000020000000300000000000000031E +S31540048010FFFFFFFEFFFFFFFF00000002FFFFFFFD23 +S315400480200000000000000000000000010000000005 +S3154004803000000000FFFFFFFF0000000000000001F9 +S31540048040FFFFFFFFFFFFFFFFFFFFFFFF00000001F1 +S31540048050FFFFFFFFFFFFFFFE0000000300000000DC +S31540048060FFFFFFFEFFFFFFFD0000000000000009C8 +S315400480700000000700000001FFFFFFF700000002B8 +S31540048080FFFFFFFCFFFFFFF800000002FFFFFFFCBD +S31540048090FFFFFFF8FFFFFFFC00000002000000089E +S315400480A0FFFFFFFCFFFFFFFEFFFFFFF8FFFFFFF8A8 +S315400480B000000001FFFFFFF8FFFFFFF7000000008C +S315400480C00000000B00000002000000050000002F25 +S315400480D0000000020000001700003039000002A72B +S315400480E000000012FFFF076C0000004DFFFFFCC6B6 +S315400480F000003039FFFFFD59FFFFFFEEFFFF076C1D +S31540048100FFFFFFB30000033A00000091FFFFE84180 +S3154004811000000000FFFFFD84FFFED02F000000009A +S315400481200000F6FA006E49810000000000000000DD +S3154004813000000000000000000000000200000003F0 +S3154004814000000000000000000000000100000000E4 +S31540048150FFFFFFFE0000000355555554FFFFFFFE89 +S315400481600000000355555554700FFFFE00000007EC +S315400481701002492400000000000000000000000036 +S315400481800000000200000003000000060000000298 +S31540048190FFFFFFFDFFFFFFFA0000000000000001A3 +S315400481A00000000000000000FFFFFFFF0000000089 +S315400481B000000001FFFFFFFFFFFFFFFFFFFFFFFF80 +S315400481C000000001FFFFFFFFFFFFFFFE000000036A +S315400481D0FFFFFFFAFFFFFFFEFFFFFFFD0000000663 +S315400481E0000000000000000000000009FFFFF0004E S315400481F00000000000000000000000000000000035 -S315400482000000000000000000000000000000000024 +S31540048200000000000000000100000002000000031E S315400482100000000000000000000000000000000014 -S315400482200000000000000000000000000000000004 -S3154004823000000000000000000000000000000000F4 -S3154004824000000000000000000000000000000000E4 -S3154004825000000000000000000000000000000000D4 -S3154004826000000000000000000000000000000000C4 -S3154004827000000000000000000000000000000000B4 -S3154004828000000000000000000000000000000000A4 -S315400482900000000000000000000000000000000094 -S315400482A00000000000000000000000000000000084 -S315400482B00000000000000000000000000000000074 -S315400482C00000000000000000000000000000000064 -S315400482D00000000000000000000000000000000054 -S315400482E00000000000000000000000000000000044 -S315400482F00000000000000000000000000000000034 -S315400483000000000000000000000000000000000023 -S315400483100000000000000000000000000000000013 -S315400483200000000000000000000000000000000003 -S3154004833000000000000000000000000000000000F3 -S3154004834000000000000000000000000000000000E3 -S3154004835000000000000000000000000000000000D3 -S3154004836000000000000000000000000000000000C3 -S3154004837000000000000000000000000000000000B3 -S3154004838000000000000000000000000000000000A3 -S315400483900000000000000000000000000000000093 -S315400483A00000000000000000000000000000000083 -S315400483B00000000000000000000000000000000073 -S315400483C00000000000000000000000000000000063 -S315400483D00000000000000000000000000000000053 -S315400483E00000000000000000000000000000000043 -S315400483F00000000000000000000000000000000033 -S315400484000000000000000000000000000000000022 -S315400484100000000000000000000000000000000012 -S315400484200000000000000000000000000000000002 -S3154004843000000000000000000000000000000000F2 -S3154004844000000000000000000000000000000000E2 -S3154004845000000000000000000000000000000000D2 -S3154004846000000000000000000000000000000000C2 -S3154004847000000000000000000000000000000000B2 -S3154004848000000000000000000000000000000000A2 -S315400484900000000000000000000000000000000092 -S315400484A00000000000000000000000000000000082 -S315400484B00000000000000000000000000000000072 -S315400484C00000000000000000000000000000000062 -S315400484D00000000000000000000000000000000052 -S315400484E00000000000000000000000000000000042 -S315400484F00000000000000000000000000000000032 -S315400485000000000000000000000000000000000021 -S315400485100000000000000000000000000000000011 -S315400485200000000000000000000000000000000001 -S3154004853000000000000000000000000000000000F1 -S3154004854000000000000000000000000000000000E1 -S3154004855000000000000000000000000000000000D1 -S3154004856000000000000000000000000000000000C1 -S3154004857000000000000000000000000000000000B1 -S3154004858000000000000000000000000000000000A1 -S315400485900000000000000000000000000000000091 -S315400485A00000000000000000000000000000000081 -S315400485B00000000000000000000000000000000071 -S315400485C00000000000000000000000000000000061 -S315400485D00000000000000000000000000000000051 -S315400485E00000000000000000000000000000000041 -S315400485F00000000000000000000000000000000031 -S315400486000000000000000000000000000000000020 -S315400486100000000000000000000000000000000010 -S315400486200000000000000000000000000000000000 -S3154004863000000000000000000000000000000000F0 -S3154004864000000000000000000000000000000000E0 +S315400482200000000000000000400482204004822038 +S31540048230400482284004822840048230400482302C +S3154004824040048238400482384004824040048240DC +S31540048250400482484004824840048250400482508C +S31540048260400482584004825840048260400482603C +S3154004827040048268400482684004827040048270EC +S31540048280400482784004827840048280400482809C +S31540048290400482884004828840048290400482904C +S315400482A04004829840048298400482A0400482A0FC +S315400482B0400482A8400482A8400482B0400482B0AC +S315400482C0400482B8400482B8400482C0400482C05C +S315400482D0400482C8400482C8400482D0400482D00C +S315400482E0400482D8400482D8400482E0400482E0BC +S315400482F0400482E8400482E8400482F0400482F06C +S31540048300400482F8400482F8400483004004830019 +S3154004831040048308400483084004831040048310C7 +S315400483204004831840048318400483204004832077 +S315400483304004832840048328400483304004833027 +S3154004834040048338400483384004834040048340D7 +S315400483504004834840048348400483504004835087 +S315400483604004835840048358400483604004836037 +S3154004837040048368400483684004837040048370E7 +S315400483804004837840048378400483804004838097 +S315400483904004838840048388400483904004839047 +S315400483A04004839840048398400483A0400483A0F7 +S315400483B0400483A8400483A8400483B0400483B0A7 +S315400483C0400483B8400483B8400483C0400483C057 +S315400483D0400483C8400483C8400483D0400483D007 +S315400483E0400483D8400483D8400483E0400483E0B7 +S315400483F0400483E8400483E8400483F0400483F067 +S31540048400400483F8400483F8400484004004840014 +S3154004841040048408400484084004841040048410C2 +S315400484204004841840048418400484204004842072 +S315400484304004842840048428400484304004843022 +S3154004844040048438400484384004844040048440D2 +S315400484504004844840048448400484504004845082 +S315400484604004845840048458400484604004846032 +S3154004847040048468400484684004847040048470E2 +S315400484804004847840048478400484804004848092 +S315400484904004848840048488400484904004849042 +S315400484A04004849840048498400484A0400484A0F2 +S315400484B0400484A8400484A8400484B0400484B0A2 +S315400484C0400484B8400484B8400484C0400484C052 +S315400484D0400484C8400484C8400484D0400484D002 +S315400484E0400484D8400484D8400484E0400484E0B2 +S315400484F0400484E8400484E8400484F0400484F062 +S31540048500400484F8400484F840048500400485000F +S3154004851040048508400485084004851040048510BD +S31540048520400485184004851840048520400485206D +S31540048530400485284004852840048530400485301D +S3154004854040048538400485384004854040048540CD +S31540048550400485484004854840048550400485507D +S31540048560400485584004855840048560400485602D +S3154004857040048568400485684004857040048570DD +S31540048580400485784004857840048580400485808D +S31540048590400485884004858840048590400485903D +S315400485A04004859840048598400485A0400485A0ED +S315400485B0400485A8400485A8400485B0400485B09D +S315400485C0400485B8400485B8400485C0400485C04D +S315400485D0400485C8400485C8400485D0400485D0FD +S315400485E0400485D8400485D8400485E0400485E0AD +S315400485F0400485E8400485E8400485F0400485F05D +S31540048600400485F8400485F840048600400486000A +S3154004861040048608400486084004861040048610B8 +S31540048620400486184004861800020000FFFFFFFF3E +S3154004863000000000400486300000000000000000F6 +S3154004864000000000000000020000000000000000DE S3154004865000000000000000000000000000000000D0 S3154004866000000000000000000000000000000000C0 S3154004867000000000000000000000000000000000B0 S3154004868000000000000000000000000000000000A0 S315400486900000000000000000000000000000000090 -S315400486A00000000000000000000000000000000080 -S315400486B00000000000000000000000000000000070 +S315400486A00000000000000000400486B00000000006 +S315400486B0000000004004899C40048A6840048B34CE S315400486C00000000000000000000000000000000060 S315400486D00000000000000000000000000000000050 -S315400486E00000000000000000000000000000000040 +S315400486E0000000004001D1B8000000000000000076 S315400486F00000000000000000000000000000000030 S31540048700000000000000000000000000000000001F S31540048710000000000000000000000000000000000F S3154004872000000000000000000000000000000000FF S3154004873000000000000000000000000000000000EF S3154004874000000000000000000000000000000000DF -S3154004875000000000000000000000000000000000CF -S3154004876000000000000000000000000000000000BF +S3154004875000000000000000000000000000000001CE +S31540048760330EABCD1234E66DDEEC0005000B000093 S3154004877000000000000000000000000000000000AF S31540048780000000000000000000000000000000009F S31540048790000000000000000000000000000000008F @@ -17774,2055 +17889,7 @@ S31540048BF0000000000000000000000000000000002B S31540048C00000000000000000000000000000000001A S31540048C10000000000000000000000000000000000A S31540048C2000000000000000000000000000000000FA -S31540048C3000000000000000000000000000000000EA -S31540048C4000000000000000000000000000000000DA -S31540048C5000000000000000000000000000000000CA -S31540048C6000000000000000000000000000000000BA -S31540048C7000000000000000000000000000000000AA -S31540048C80000000000000000000000000000000009A -S31540048C90000000000000000000000000000000008A -S31540048CA0000000000000000000000000000000007A -S31540048CB0000000000000000000000000000000006A -S31540048CC0000000000000000000000000000000005A -S31540048CD0000000000000000000000000000000004A -S31540048CE0000000000000000000000000000000003A -S31540048CF0000000000000000000000000000000002A -S31540048D000000000000000000000000000000000019 -S31540048D100000000000000000000000000000000009 -S31540048D2000000000000000000000000000000000F9 -S31540048D3000000000000000000000000000000000E9 -S31540048D4000000000000000000000000000000000D9 -S31540048D5000000000000000000000000000000000C9 -S31540048D6000000000000000000000000000000000B9 -S31540048D7000000000000000000000000000000000A9 -S31540048D800000000000000000000000000000000099 -S31540048D900000000000000000000000000000000089 -S31540048DA00000000000000000000000000000000079 -S31540048DB00000000000000000000000000000000069 -S31540048DC00000000000000000000000000000000059 -S31540048DD00000000000000000000000000000000049 -S31540048DE00000000000000000000000000000000039 -S31540048DF00000000000000000000000000000000029 -S31540048E000000000000000000000000000000000018 -S31540048E100000000000000000000000000000000008 -S31540048E2000000000000000000000000000000000F8 -S31540048E3000000000000000000000000000000000E8 -S31540048E4000000000000000000000000000000000D8 -S31540048E5000000000000000000000000000000000C8 -S31540048E6000000000000000000000000000000000B8 -S31540048E7000000000000000000000000000000000A8 -S31540048E800000000000000000000000000000000098 -S31540048E900000000000000000000000000000000088 -S31540048EA00000000000000000000000000000000078 -S31540048EB00000000000000000000000000000000068 -S31540048EC00000000000000000000000000000000058 -S31540048ED00000000000000000000000000000000048 -S31540048EE00000000000000000000000000000000038 -S31540048EF00000000000000000000000000000000028 -S31540048F000000000000000000000000000000000017 -S31540048F100000000000000000000000000000000007 -S31540048F2000000000000000000000000000000000F7 -S31540048F3000000000000000000000000000000000E7 -S31540048F4000000000000000000000000000000000D7 -S31540048F5000000000000000000000000000000000C7 -S31540048F6000000000000000000000000000000000B7 -S31540048F7000000000000000000000000000000000A7 -S31540048F800000000000000000000000000000000097 -S31540048F900000000000000000000000000000000087 -S31540048FA00000000000000000000000000000000077 -S31540048FB00000000000000000000000000000000067 -S31540048FC00000000000000000000000000000000057 -S31540048FD00000000000000000000000000000000047 -S31540048FE00000000000000000000000000000000037 -S31540048FF00000000000000000000000000000000027 -S315400490000000000000000000000000000000000016 -S315400490100000000000000000000000000000000006 -S3154004902000000000000000000000000000000000F6 -S3154004903000000000000000000000000000000000E6 -S3154004904000000000000000000000000000000000D6 -S3154004905000000000000000000000000000000000C6 -S3154004906000000000000000000000000000000000B6 -S3154004907000000000000000000000000000000000A6 -S315400490800000000000000000000000000000000096 -S315400490900000000000000000000000000000000086 -S315400490A00000000000000000000000000000000076 -S315400490B00000000000000000000000000000000066 -S315400490C00000000000000000000000000000000056 -S315400490D00000000000000000000000000000000046 -S315400490E00000000000000000000000000000000036 -S315400490F00000000000000000000000000000000026 -S315400491000000000000000000000000000000000015 -S315400491100000000000000000000000000000000005 -S3154004912000000000000000000000000000000000F5 -S3154004913000000000000000000000000000000000E5 -S3154004914000000000000000000000000000000000D5 -S3154004915000000000000000000000000000000000C5 -S3154004916000000000000000000000000000000000B5 -S3154004917000000000000000000000000000000000A5 -S315400491800000000000000000000000000000000095 -S315400491900000000000000000000000000000000085 -S315400491A00000000000000000000000000000000075 -S315400491B00000000000000000000000000000000065 -S315400491C00000000000000000000000000000000055 -S315400491D00000000000000000000000000000000045 -S315400491E00000000000000000000000000000000035 -S315400491F00000000000000000000000000000000025 -S315400492000000000000000000000000000000000014 -S315400492100000000000000000000000000000000004 -S3154004922000000000000000000000000000000000F4 -S3154004923000000000000000000000000000000000E4 -S3154004924000000000000000000000000000000000D4 -S3154004925000000000000000000000000000000000C4 -S3154004926000000000000000000000000000000000B4 -S3154004927000000000000000000000000000000000A4 -S315400492800000000000000000000000000000000094 -S315400492900000000000000000000000000000000084 -S315400492A00000000000000000000000000000000074 -S315400492B00000000000000000000000000000000064 -S315400492C00000000000000000000000000000000054 -S315400492D00000000000000000000000000000000044 -S315400492E00000000000000000000000000000000034 -S315400492F00000000000000000000000000000000024 -S315400493000000000000000000000000000000000013 -S315400493100000000000000000000000000000000003 -S3154004932000000000000000000000000000000000F3 -S3154004933000000000000000000000000000000000E3 -S3154004934000000000000000000000000000000000D3 -S3154004935000000000000000000000000000000000C3 -S3154004936000000000000000000000000000000000B3 -S3154004937000000000000000000000000000000000A3 -S315400493800000000000000000000000000000000093 -S315400493900000000000000000000000000000000083 -S315400493A00000000000000000000000000000000073 -S315400493B00000000000000000000000000000000063 -S315400493C00000000000000000000000000000000053 -S315400493D00000000000000000000000000000000043 -S315400493E00000000000000000000000000000000033 -S315400493F00000000000000000000000000000000023 -S315400494000000000000000000000000000000000012 -S315400494100000000000000000000000000000000002 -S3154004942000000000000000000000000000000000F2 -S3154004943000000000000000000000000000000000E2 -S3154004944000000000000000000000000000000000D2 -S3154004945000000000000000000000000000000000C2 -S3154004946000000000000000000000000000000000B2 -S3154004947000000000000000000000000000000000A2 -S315400494800000000000000000000000000000000092 -S315400494900000000000000000000000000000000082 -S315400494A00000000000000000000000000000000072 -S315400494B00000000000000000000000000000000062 -S315400494C00000000000000000000000000000000052 -S315400494D00000000000000000000000000000000042 -S315400494E00000000000000000000000000000000032 -S315400494F00000000000000000000000000000000022 -S315400495000000000000000000000000000000000011 -S315400495100000000000000000000000000000000001 -S3154004952000000000000000000000000000000000F1 -S3154004953000000000000000000000000000000000E1 -S3154004954000000000000000000000000000000000D1 -S3154004955000000000000000000000000000000000C1 -S3154004956000000000000000000000000000000000B1 -S3154004957000000000000000000000000000000000A1 -S315400495800000000000000000000000000000000091 -S315400495900000000000000000000000000000000081 -S315400495A00000000000000000000000000000000071 -S315400495B00000000000000000000000000000000061 -S315400495C00000000000000000000000000000000051 -S315400495D00000000000000000000000000000000041 -S315400495E00000000000000000000000000000000031 -S315400495F00000000000000000000000000000000021 -S315400496000000000000000000000000000000000010 -S315400496100000000000000000000000000000000000 -S3154004962000000000000000000000000000000000F0 -S3154004963000000000000000000000000000000000E0 -S3154004964000000000000000000000000000000000D0 -S3154004965000000000000000000000000000000000C0 -S3154004966000000000000000000000000000000000B0 -S3154004967000000000000000000000000000000000A0 -S315400496800000000000000000000000000000000090 -S315400496900000000000000000000000000000000080 -S315400496A00000000000000000000000000000000070 -S315400496B00000000000000000000000000000000060 -S315400496C00000000000000000000000000000000050 -S315400496D00000000000000000000000000000000040 -S315400496E00000000000000000000000000000000030 -S315400496F00000000000000000000000000000000020 -S31540049700000000000000000000000000000000000F -S3154004971000000000000000000000000000000000FF -S3154004972000000000000000000000000000000000EF -S3154004973000000000000000000000000000000000DF -S3154004974000000000000000000000000000000000CF -S3154004975000000000000000000000000000000000BF -S3154004976000000000000000000000000000000000AF -S31540049770000000000000000000000000000000009F -S31540049780000000000000000000000000000000008F -S31540049790000000000000000000000000000000007F -S315400497A0000000000000000000000000000000006F -S315400497B0000000000000000000000000000000005F -S315400497C0000000000000000000000000000000004F -S315400497D0000000000000000000000000000000003F -S315400497E0000000000000000000000000000000002F -S315400497F0000000000000000000000000000000001F -S31540049800000000000000000000000000000000000E -S3154004981000000000000000000000000000000000FE -S3154004982000000000000000000000000000000000EE -S3154004983000000000000000000000000000000000DE -S3154004984000000000000000000000000000000000CE -S3154004985000000000000000000000000000000000BE -S3154004986000000000000000000000000000000000AE -S31540049870000000000000000000000000000000009E -S31540049880000000000000000000000000000000008E -S31540049890000000000000000000000000000000007E -S315400498A0000000000000000000000000000000006E -S315400498B0000000000000000000000000000000005E -S315400498C0000000000000000000000000000000004E -S315400498D0000000000000000000000000000000003E -S315400498E0000000000000000000000000000000002E -S315400498F0000000000000000000000000000000001E -S31540049900000000000000000000000000000000000D -S3154004991000000000000000000000000000000000FD -S3154004992000000000000000000000000000000000ED -S3154004993000000000000000000000000000000000DD -S3154004994000000000000000000000000000000000CD -S3154004995000000000000000000000000000000000BD -S3154004996000000000000000000000000000000000AD -S31540049970000000000000000000000000000000009D -S31540049980000000000000000000000000000000008D -S31540049990000000000000000000000000000000007D -S315400499A0000000000000000000000000000000006D -S315400499B0000000000000000000000000000000005D -S315400499C0000000000000000000000000000000004D -S315400499D0000000000000000000000000000000003D -S315400499E0000000000000000000000000000000002D -S315400499F0000000000000000000000000000000001D -S31540049A00000000000000000000000000000000000C -S31540049A1000000000000000000000000000000000FC -S31540049A2000000000000000000000000000000000EC -S31540049A3000000000000000000000000000000000DC -S31540049A4000000000000000000000000000000000CC -S31540049A5000000000000000000000000000000000BC -S31540049A6000000000000000000000000000000000AC -S31540049A70000000000000000000000000000000009C -S31540049A80000000000000000000000000000000008C -S31540049A90000000000000000000000000000000007C -S31540049AA0000000000000000000000000000000006C -S31540049AB0000000000000000000000000000000005C -S31540049AC0000000000000000000000000000000004C -S31540049AD0000000000000000000000000000000003C -S31540049AE0000000000000000000000000000000002C -S31540049AF0000000000000000000000000000000001C -S31540049B00000000000000000000000000000000000B -S31540049B1000000000000000000000000000000000FB -S31540049B2000000000000000000000000000000000EB -S31540049B3000000000000000000000000000000000DB -S31540049B4000000000000000000000000000000000CB -S31540049B5000000000000000000000000000000000BB -S31540049B6000000000000000000000000000000000AB -S31540049B70000000000000000000000000000000009B -S31540049B80000000000000000000000000000000008B -S31540049B90000000000000000000000000000000007B -S31540049BA0000000000000000000000000000000006B -S31540049BB0000000000000000000000000000000005B -S31540049BC0000000000000000000000000000000004B -S31540049BD0000000000000000000000000000000003B -S31540049BE0000000000000000000000000000000002B -S31540049BF0000000000000000000000000000000001B -S31540049C00000000000000000000000000000000000A -S31540049C1000000000000000000000000000000000FA -S31540049C2000000000000000000000000000000000EA -S31540049C3000000000000000000000000000000000DA -S31540049C4000000000000000000000000000000000CA -S31540049C5000000000000000000000000000000000BA -S31540049C6000000000000000000000000000000000AA -S31540049C70000000000000000000000000000000009A -S31540049C80000000000000000000000000000000008A -S31540049C90000000000000000000000000000000007A -S31540049CA0000000000000000000000000000000006A -S31540049CB0000000000000000000000000000000005A -S31540049CC0000000000000000000000000000000004A -S31540049CD0000000000000000000000000000000003A -S31540049CE0000000000000000000000000000000002A -S31540049CF0000000000000000000000000000000001A -S31540049D000000000000000000000000000000000009 -S31540049D1000000000000000000000000000000000F9 -S31540049D2000000000000000000000000000000000E9 -S31540049D3000000000000000000000000000000000D9 -S31540049D4000000000000000000000000000000000C9 -S31540049D5000000000000000000000000000000000B9 -S31540049D6000000000000000000000000000000000A9 -S31540049D700000000000000000000000000000000099 -S31540049D800000000000000000000000000000000089 -S31540049D900000000000000000000000000000000079 -S31540049DA00000000000000000000000000000000069 -S31540049DB00000000000000000000000000000000059 -S31540049DC00000000000000000000000000000000049 -S31540049DD00000000000000000000000000000000039 -S31540049DE00000000000000000000000000000000029 -S31540049DF00000000000000000000000000000000019 -S31540049E000000000000000000000000000000000008 -S31540049E1000000000000000000000000000000000F8 -S31540049E2000000000000000000000000000000000E8 -S31540049E3000000000000000000000000000000000D8 -S31540049E4000000000000000000000000000000000C8 -S31540049E5000000000000000000000000000000000B8 -S31540049E6000000000000000000000000000000000A8 -S31540049E700000000000000000000000000000000098 -S31540049E800000000000000000000000000000000088 -S31540049E900000000000000000000000000000000078 -S31540049EA00000000000000000000000000000000068 -S31540049EB00000000000000000000000000000000058 -S31540049EC00000000000000000000000000000000048 -S31540049ED00000000000000000000000000000000038 -S31540049EE00000000000000000000000000000000028 -S31540049EF00000000000000000000000000000000018 -S31540049F000000000000000000000000000000000007 -S31540049F1000000000000000000000000000000000F7 -S31540049F2000000000000000000000000000000000E7 -S31540049F3000000000000000000000000000000000D7 -S31540049F4000000000000000000000000000000000C7 -S31540049F5000000000000000000000000000000000B7 -S31540049F6000000000000000000000000000000000A7 -S31540049F700000000000000000000000000000000097 -S31540049F800000000000000000000000000000000087 -S31540049F900000000000000000000000000000000077 -S31540049FA00000000000000000000000000000000067 -S31540049FB00000000000000000000000000000000057 -S31540049FC00000000000000000000000000000000047 -S31540049FD00000000000000000000000000000000037 -S31540049FE00000000000000000000000000000000027 -S31540049FF00000000000000000000000000000000017 -S3154004A0000000000000000000000000000000000006 -S3154004A01000000000000000000000000000000000F6 -S3154004A02000000000000000000000000000000000E6 -S3154004A03000000000000000000000000000000000D6 -S3154004A04000000000000000000000000000000000C6 -S3154004A05000000000000000000000000000000000B6 -S3154004A06000000000000000000000000000000000A6 -S3154004A0700000000000000000000000000000000096 -S3154004A0800000000000000000000000000000000086 -S3154004A0900000000000000000000000000000000076 -S3154004A0A00000000000000000000000000000000066 -S3154004A0B00000000000000000000000000000000056 -S3154004A0C00000000000000000000000000000000046 -S3154004A0D00000000000000000000000000000000036 -S3154004A0E00000000000000000000000000000000026 -S3154004A0F00000000000000000000000000000000016 -S3154004A1000000000000000000000000000000000005 -S3154004A11000000000000000000000000000000000F5 -S3154004A12000000000000000000000000000000000E5 -S3154004A13000000000000000000000000000000000D5 -S3154004A14000000000000000000000000000000000C5 -S3154004A15000000000000000000000000000000000B5 -S3154004A16000000000000000000000000000000000A5 -S3154004A1700000000000000000000000000000000095 -S3154004A1800000000000000000000000000000000085 -S3154004A1900000000000000000000000000000000075 -S3154004A1A00000000000000000000000000000000065 -S3154004A1B00000000000000000000000000000000055 -S3154004A1C00000000000000000000000000000000045 -S3154004A1D00000000000000000000000000000000035 -S3154004A1E00000000000000000000000000000000025 -S3154004A1F00000000000000000000000000000000015 -S3154004A2000000000000000000000000000000000004 -S3154004A21000000000000000000000000000000000F4 -S3154004A22000000000000000000000000000000000E4 -S3154004A23000000000000000000000000000000000D4 -S3154004A24000000000000000000000000000000000C4 -S3154004A25000000000000000000000000000000000B4 -S3154004A26000000000000000000000000000000000A4 -S3154004A2700000000000000000000000000000000094 -S3154004A2800000000000000000000000000000000084 -S3154004A2900000000000000000000000000000000074 -S3154004A2A00000000000000000000000000000000064 -S3154004A2B00000000000000000000000000000000054 -S3154004A2C00000000000000000000000000000000044 -S3154004A2D00000000000000000000000000000000034 -S3154004A2E00000000000000000000000000000000024 -S3154004A2F00000000000000000000000000000000014 -S3154004A3000000000000000000000000000000000003 -S3154004A31000000000000000000000000000000000F3 -S3154004A32000000000000000000000000000000000E3 -S3154004A33000000000000000000000000000000000D3 -S3154004A34000000000000000000000000000000000C3 -S3154004A35000000000000000000000000000000000B3 -S3154004A36000000000000000000000000000000000A3 -S3154004A3700000000000000000000000000000000093 -S3154004A3800000000000000000000000000000000083 -S3154004A3900000000000000000000000000000000073 -S3154004A3A00000000000000000000000000000000063 -S3154004A3B00000000000000000000000000000000053 -S3154004A3C00000000000000000000000000000000043 -S3154004A3D00000000000000000000000000000000033 -S3154004A3E00000000000000000000000000000000023 -S3154004A3F00000000000000000000000000000000013 -S3154004A4000000000000000000000000000000000002 -S3154004A41000000000000000000000000000000000F2 -S3154004A42000000000000000000000000000000000E2 -S3154004A43000000000000000000000000000000000D2 -S3154004A44000000000000000000000000000000000C2 -S3154004A45000000000000000000000000000000000B2 -S3154004A46000000000000000000000000000000000A2 -S3154004A4700000000000000000000000000000000092 -S3154004A4800000000000000000000000000000000082 -S3154004A4900000000000000000000000000000000072 -S3154004A4A00000000000000000000000000000000062 -S3154004A4B00000000000000000000000000000000052 -S3154004A4C00000000000000000000000000000000042 -S3154004A4D00000000000000000000000000000000032 -S3154004A4E00000000000000000000000000000000022 -S3154004A4F00000000000000000000000000000000012 -S3154004A5000000000000000000000000000000000001 -S3154004A51000000000000000000000000000000000F1 -S3154004A52000000000000000000000000000000000E1 -S3154004A53000000000000000000000000000000000D1 -S3154004A54000000000000000000000000000000000C1 -S3154004A55000000000000000000000000000000000B1 -S3154004A56000000000000000000000000000000000A1 -S3154004A5700000000000000000000000000000000091 -S3154004A5800000000000000000000000000000000081 -S3154004A5900000000000000000000000000000000071 -S3154004A5A00000000000000000000000000000000061 -S3154004A5B00000000000000000000000000000000051 -S3154004A5C00000000000000000000000000000000041 -S3154004A5D00000000000000000000000000000000031 -S3154004A5E00000000000000000000000000000000021 -S3154004A5F00000000000000000000000000000000011 -S3154004A6000000000000000000000000000000000000 -S3154004A61000000000000000000000000000000000F0 -S3154004A62000000000000000000000000000000000E0 -S3154004A63000000000000000000000000000000000D0 -S3154004A64000000000000000000000000000000000C0 -S3154004A65000000000000000000000000000000000B0 -S3154004A66000000000000000000000000000000000A0 -S3154004A6700000000000000000000000000000000090 -S3154004A6800000000000000000000000000000000080 -S3154004A6900000000000000000000000000000000070 -S3154004A6A00000000000000000000000000000000060 -S3154004A6B00000000000000000000000000000000050 -S3154004A6C00000000000000000000000000000000040 -S3154004A6D00000000000000000000000000000000030 -S3154004A6E00000000000000000000000000000000020 -S3154004A6F00000000000000000000000000000000010 -S3154004A70000000000000000000000000000000000FF -S3154004A71000000000000000000000000000000000EF -S3154004A72000000000000000000000000000000000DF -S3154004A73000000000000000000000000000000000CF -S3154004A74000000000000000000000000000000000BF -S3154004A75000000000000000000000000000000000AF -S3154004A760000000000000000000000000000000009F -S3154004A770000000000000000000000000000000008F -S3154004A780000000000000000000000000000000007F -S3154004A790000000000000000000000000000000006F -S3154004A7A0000000000000000000000000000000005F -S3154004A7B0000000000000000000000000000000004F -S3154004A7C0000000000000000000000000000000003F -S3154004A7D0000000000000000000000000000000002F -S3154004A7E0000000000000000000000000000000001F -S3154004A7F0000000000000000000000000000000000F -S3154004A80000000000000000000000000000000000FE -S3154004A81000000000000000000000000000000000EE -S3154004A82000000000000000000000000000000000DE -S3154004A83000000000000000000000000000000000CE -S3154004A84000000000000000000000000000000000BE -S3154004A85000000000000000000000000000000000AE -S3154004A860000000000000000000000000000000009E -S3154004A870000000000000000000000000000000008E -S3154004A880000000000000000000000000000000007E -S3154004A890000000000000000000000000000000006E -S3154004A8A0000000000000000000000000000000005E -S3154004A8B0000000000000000000000000000000004E -S3154004A8C0000000000000000000000000000000003E -S3154004A8D0000000000000000000000000000000002E -S3154004A8E0000000000000000000000000000000001E -S3154004A8F0000000000000000000000000000000000E -S3154004A90000000000000000000000000000000000FD -S3154004A91000000000000000000000000000000000ED -S3154004A92000000000000000000000000000000000DD -S3154004A93000000000000000000000000000000000CD -S3154004A94000000000000000000000000000000000BD -S3154004A95000000000000000000000000000000000AD -S3154004A960000000000000000000000000000000009D -S3154004A970000000000000000000000000000000008D -S3154004A980000000000000000000000000000000007D -S3154004A990000000000000000000000000000000006D -S3154004A9A0000000000000000000000000000000005D -S3154004A9B0000000000000000000000000000000004D -S3154004A9C0000000000000000000000000000000003D -S3154004A9D0000000000000000000000000000000002D -S3154004A9E0000000000000000000000000000000001D -S3154004A9F0000000000000000000000000000000000D -S3154004AA0000000000000000000000000000000000FC -S3154004AA1000000000000000000000000000000000EC -S3154004AA2000000000000000000000000000000000DC -S3154004AA3000000000000000000000000000000000CC -S3154004AA4000000000000000000000000000000000BC -S3154004AA5000000000000000000000000000000000AC -S3154004AA60000000000000000000000000000000009C -S3154004AA70000000000000000000000000000000008C -S3154004AA80000000000000000000000000000000007C -S3154004AA90000000000000000000000000000000006C -S3154004AAA0000000000000000000000000000000005C -S3154004AAB0000000000000000000000000000000004C -S3154004AAC0000000000000000000000000000000003C -S3154004AAD0000000000000000000000000000000002C -S3154004AAE0000000000000000000000000000000001C -S3154004AAF0000000000000000000000000000000000C -S3154004AB0000000000000000000000000000000000FB -S3154004AB1000000000000000000000000000000000EB -S3154004AB2000000000000000000000000000000000DB -S3154004AB3000000000000000000000000000000000CB -S3154004AB4000000000000000000000000000000000BB -S3154004AB5000000000000000000000000000000000AB -S3154004AB60000000000000000000000000000000009B -S3154004AB70000000000000000000000000000000008B -S3154004AB80000000000000000000000000000000007B -S3154004AB90000000000000000000000000000000006B -S3154004ABA0000000000000000000000000000000005B -S3154004ABB0000000000000000000000000000000004B -S3154004ABC0000000000000000000000000000000003B -S3154004ABD0000000000000000000000000000000002B -S3154004ABE0000000000000000000000000000000001B -S3154004ABF0000000000000000000000000000000000B -S3154004AC0000000000000000000000000000000000FA -S3154004AC1000000000000000000000000000000000EA -S3154004AC2000000000000000000000000000000000DA -S3154004AC3000000000000000000000000000000000CA -S3154004AC4000000000000000000000000000000000BA -S3154004AC5000000000000000000000000000000000AA -S3154004AC60000000000000000000000000000000009A -S3154004AC70000000000000000000000000000000008A -S3154004AC80000000000000000000000000000000007A -S3154004AC90000000000000000000000000000000006A -S3154004ACA0000000000000000000000000000000005A -S3154004ACB0000000000000000000000000000000004A -S3154004ACC0000000000000000000000000000000003A -S3154004ACD0000000000000000000000000000000002A -S3154004ACE0000000000000000000000000000000001A -S3154004ACF0000000000000000000000000000000000A -S3154004AD0000000000000000000000000000000000F9 -S3154004AD1000000000000000000000000000000000E9 -S3154004AD2000000000000000000000000000000000D9 -S3154004AD3000000000000000000000000000000000C9 -S3154004AD4000000000000000000000000000000000B9 -S3154004AD5000000000000000000000000000000000A9 -S3154004AD600000000000000000000000000000000099 -S3154004AD700000000000000000000000000000000089 -S3154004AD800000000000000000000000000000000079 -S3154004AD900000000000000000000000000000000069 -S3154004ADA00000000000000000000000000000000059 -S3154004ADB00000000000000000000000000000000049 -S3154004ADC00000000000000000000000000000000039 -S3154004ADD00000000000000000000000000000000029 -S3154004ADE00000000000000000000000000000000019 -S3154004ADF00000000000000000000000000000000009 -S3154004AE0000000000000000000000000000000000F8 -S3154004AE1000000000000000000000000000000000E8 -S3154004AE2000000000000000000000000000000000D8 -S3154004AE3000000000000000000000000000000000C8 -S3154004AE4000000000000000000000000000000000B8 -S3154004AE5000000000000000000000000000000000A8 -S3154004AE600000000000000000000000000000000098 -S3154004AE700000000000000000000000000000000088 -S3154004AE800000000000000000000000000000000078 -S3154004AE900000000000000000000000000000000068 -S3154004AEA00000000000000000000000000000000058 -S3154004AEB00000000000000000000000000000000048 -S3154004AEC00000000000000000000000000000000038 -S3154004AED00000000000000000000000000000000028 -S3154004AEE00000000000000000000000000000000018 -S3154004AEF00000000000000000000000000000000008 -S3154004AF0000000000000000000000000000000000F7 -S3154004AF1000000000000000000000000000000000E7 -S3154004AF2000000000000000000000000000000000D7 -S3154004AF3000000000000000000000000000000000C7 -S3154004AF4000000000000000000000000000000000B7 -S3154004AF5000000000000000000000000000000000A7 -S3154004AF600000000000000000000000000000000097 -S3154004AF700000000000000000000000000000000087 -S3154004AF800000000000000000000000000000000077 -S3154004AF900000000000000000000000000000000067 -S3154004AFA00000000000000000000000000000000057 -S3154004AFB00000000000000000000000000000000047 -S3154004AFC00000000000000000000000000000000037 -S3154004AFD00000000000000000000000000000000027 -S3154004AFE00000000000000000000000000000000017 -S3154004AFF00000000000000000000000000000000007 -S3154004B00000000000000000000000000000000000F6 -S3154004B01000000000000000000000000000000000E6 -S3154004B02000000000000000000000000000000000D6 -S3154004B03000000000000000000000000000000000C6 -S3154004B04000000000000000000000000000000000B6 -S3154004B05000000000000000000000000000000000A6 -S3154004B0600000000000000000000000000000000096 -S3154004B0700000000000000000000000000000000086 -S3154004B0800000000000000000000000000000000076 -S3154004B0900000000000000000000000000000000066 -S3154004B0A00000000000000000000000000000000056 -S3154004B0B00000000000000000000000000000000046 -S3154004B0C00000000000000000000000000000000036 -S3154004B0D00000000000000000000000000000000026 -S3154004B0E00000000000000000000000000000000016 -S3154004B0F00000000000000000000000000000000006 -S3154004B10000000000000000000000000000000000F5 -S3154004B11000000000000000000000000000000000E5 -S3154004B12000000000000000000000000000000000D5 -S3154004B13000000000000000000000000000000000C5 -S3154004B14000000000000000000000000000000000B5 -S3154004B15000000000000000000000000000000000A5 -S3154004B1600000000000000000000000000000000095 -S3154004B1700000000000000000000000000000000085 -S3154004B1800000000000000000000000000000000075 -S3154004B1900000000000000000000000000000000065 -S3154004B1A00000000000000000000000000000000055 -S3154004B1B00000000000000000000000000000000045 -S3154004B1C00000000000000000000000000000000035 -S3154004B1D00000000000000000000000000000000025 -S3154004B1E00000000000000000000000000000000015 -S3154004B1F00000000000000000000000000000000005 -S3154004B20000000000000000000000000000000000F4 -S3154004B21000000000000000000000000000000000E4 -S3154004B22000000000000000000000000000000000D4 -S3154004B23000000000000000000000000000000000C4 -S3154004B24000000000000000000000000000000000B4 -S3154004B25000000000000000000000000000000000A4 -S3154004B2600000000000000000000000000000000094 -S3154004B2700000000000000000000000000000000084 -S3154004B2800000000000000000000000000000000074 -S3154004B2900000000000000000000000000000000064 -S3154004B2A00000000000000000000000000000000054 -S3154004B2B00000000000000000000000000000000044 -S3154004B2C00000000000000000000000000000000034 -S3154004B2D00000000000000000000000000000000024 -S3154004B2E00000000000000000000000000000000014 -S3154004B2F00000000000000000000000000000000004 -S3154004B30000000000000000000000000000000000F3 -S3154004B31000000000000000000000000000000000E3 -S3154004B32000000000000000000000000000000000D3 -S3154004B33000000000000000000000000000000000C3 -S3154004B34000000000000000000000000000000000B3 -S3154004B35000000000000000000000000000000000A3 -S3154004B3600000000000000000000000000000000093 -S3154004B3700000000000000000000000000000000083 -S3154004B3800000000000000000000000000000000073 -S3154004B3900000000000000000000000000000000063 -S3154004B3A00000000000000000000000000000000053 -S3154004B3B00000000000000000000000000000000043 -S3154004B3C00000000000000000000000000000000033 -S3154004B3D00000000000000000000000000000000023 -S3154004B3E00000000000000000000000000000000013 -S3154004B3F00000000000000000000000000000000003 -S3154004B40000000000000000000000000000000000F2 -S3154004B41000000000000000000000000000000000E2 -S3154004B42000000000000000000000000000000000D2 -S3154004B43000000000000000000000000000000000C2 -S3154004B44000000000000000000000000000000000B2 -S3154004B45000000000000000000000000000000000A2 -S3154004B4600000000000000000000000000000000092 -S3154004B4700000000000000000000000000000000082 -S3154004B4800000000000000000000000000000000072 -S3154004B4900000000000000000000000000000000062 -S3154004B4A00000000000000000000000000000000052 -S3154004B4B00000000000000000000000000000000042 -S3154004B4C00000000000000000000000000000000032 -S3154004B4D00000000000000000000000000000000022 -S3154004B4E00000000000000000000000000000000012 -S3154004B4F00000000000000000000000000000000002 -S3154004B50000000000000000000000000000000000F1 -S3154004B51000000000000000000000000000000000E1 -S3154004B52000000000000000000000000000000000D1 -S3154004B53000000000000000000000000000000000C1 -S3154004B54000000000000000000000000000000000B1 -S3154004B55000000000000000000000000000000000A1 -S3154004B5600000000000000000000000000000000091 -S3154004B5700000000000000000000000000000000081 -S3154004B5800000000000000000000000000000000071 -S3154004B5900000000000000000000000000000000061 -S3154004B5A00000000000000000000000000000000051 -S3154004B5B00000000000000000000000000000000041 -S3154004B5C00000000000000000000000000000000031 -S3154004B5D00000000000000000000000000000000021 -S3154004B5E00000000000000000000000000000000011 -S3154004B5F00000000000000000000000000000000001 -S3154004B60000000000000000000000000000000000F0 -S3154004B61000000000000000000000000000000000E0 -S3154004B62000000000000000000000000000000000D0 -S3154004B63000000000000000000000000000000000C0 -S3154004B64000000000000000000000000000000000B0 -S3154004B65000000000000000000000000000000000A0 -S3154004B6600000000000000000000000000000000090 -S3154004B6700000000000000000000000000000000080 -S3154004B6800000000000000000000000000000000070 -S3154004B6900000000000000000000000000000000060 -S3154004B6A00000000000000000000000000000000050 -S3154004B6B00000000000000000000000000000000040 -S3154004B6C00000000000000000000000000000000030 -S3154004B6D00000000000000000000000000000000020 -S3154004B6E00000000000000000000000000000000010 -S3154004B6F00000000000000000000000000000000000 -S3154004B70000000000000000000000000000000000EF -S3154004B71000000000000000000000000000000000DF -S3154004B72000000000000000000000000000000000CF -S3154004B73000000000000000000000000000000000BF -S3154004B74000000000000000000000000000000000AF -S3154004B750000000000000000000000000000000009F -S3154004B760000000000000000000000000000000008F -S3154004B770000000000000000000000000000000007F -S3154004B780000000000000000000000000000000006F -S3154004B790000000000000000000000000000000005F -S3154004B7A0000000000000000000000000000000004F -S3154004B7B0000000000000000000000000000000003F -S3154004B7C0000000000000000000000000000000002F -S3154004B7D0000000000000000000000000000000001F -S3154004B7E0000000000000000000000000000000000F -S3154004B7F000000000000000000000000000000000FF -S3154004B80000000000000000000000000000000000EE -S3154004B81000000000000000000000000000000000DE -S3154004B82000000000000000000000000000000000CE -S3154004B83000000000000000000000000000000000BE -S3154004B84000000000000000000000000000000000AE -S3154004B850000000000000000000000000000000009E -S3154004B860000000000000000000000000000000008E -S3154004B870000000000000000000000000000000007E -S3154004B880000000000000000000000000000000006E -S3154004B890000000000000000000000000000000005E -S3154004B8A0000000000000000000000000000000004E -S3154004B8B0000000000000000000000000000000003E -S3154004B8C0000000000000000000000000000000002E -S3154004B8D0000000000000000000000000000000001E -S3154004B8E0000000000000000000000000000000000E -S3154004B8F000000000000000000000000000000000FE -S3154004B90000000000000000000000000000000000ED -S3154004B91000000000000000000000000000000000DD -S3154004B92000000000000000000000000000000000CD -S3154004B93000000000000000000000000000000000BD -S3154004B94000000000000000000000000000000000AD -S3154004B950000000000000000000000000000000009D -S3154004B960000000000000000000000000000000008D -S3154004B970000000000000000000000000000000007D -S3154004B980000000000000000000000000000000006D -S3154004B990000000000000000000000000000000005D -S3154004B9A0000000000000000000000000000000004D -S3154004B9B0000000000000000000000000000000003D -S3154004B9C0000000000000000000000000000000002D -S3154004B9D0000000000000000000000000000000001D -S3154004B9E0000000000000000000000000000000000D -S3154004B9F000000000000000000000000000000000FD -S3154004BA0000000000000000000000000000000000EC -S3154004BA1000000000000000000000000000000000DC -S3154004BA2000000000000000000000000000000000CC -S3154004BA3000000000000000000000000000000000BC -S3154004BA4000000000000000000000000000000000AC -S3154004BA50000000000000000000000000000000009C -S3154004BA60000000000000000000000000000000008C -S3154004BA70000000000000000000000000000000007C -S3154004BA80000000000000000000000000000000006C -S3154004BA90000000000000000000000000000000005C -S3154004BAA0000000000000000000000000000000004C -S3154004BAB0000000000000000000000000000000003C -S3154004BAC0000000000000000000000000000000002C -S3154004BAD0000000000000000000000000000000001C -S3154004BAE0000000000000000000000000000000000C -S3154004BAF000000000000000000000000000000000FC -S3154004BB0000000000000000000000000000000000EB -S3154004BB1000000000000000000000000000000000DB -S3154004BB2000000000000000000000000000000000CB -S3154004BB3000000000000000000000000000000000BB -S3154004BB4000000000000000000000000000000000AB -S3154004BB50000000000000000000000000000000009B -S3154004BB60000000000000000000000000000000008B -S3154004BB70000000000000000000000000000000007B -S3154004BB80000000000000000000000000000000006B -S3154004BB90000000000000000000000000000000005B -S3154004BBA0000000000000000000000000000000004B -S3154004BBB0000000000000000000000000000000003B -S3154004BBC0000000000000000000000000000000002B -S3154004BBD0000000000000000000000000000000001B -S3154004BBE0000000000000000000000000000000000B -S3154004BBF000000000000000000000000000000000FB -S3154004BC0000000000000000000000000000000000EA -S3154004BC1000000000000000000000000000000000DA -S3154004BC2000000000000000000000000000000000CA -S3154004BC3000000000000000000000000000000000BA -S3154004BC4000000000000000000000000000000000AA -S3154004BC50000000000000000000000000000000009A -S3154004BC60000000000000000000000000000000008A -S3154004BC70000000000000000000000000000000007A -S3154004BC80000000000000000000000000000000006A -S3154004BC90000000000000000000000000000000005A -S3154004BCA0000000000000000000000000000000004A -S3154004BCB0000000000000000000000000000000003A -S3154004BCC0000000000000000000000000000000002A -S3154004BCD0000000000000000000000000000000001A -S3154004BCE0000000000000000000000000000000000A -S3154004BCF000000000000000000000000000000000FA -S3154004BD0000000000000000000000000000000000E9 -S3154004BD1000000000000000000000000000000000D9 -S3154004BD2000000000000000000000000000000000C9 -S3154004BD3000000000000000000000000000000000B9 -S3154004BD4000000000000000000000000000000000A9 -S3154004BD500000000000000000000000000000000099 -S3154004BD600000000000000000000000000000000089 -S3154004BD700000000000000000000000000000000079 -S3154004BD800000000000000000000000000000000069 -S3154004BD900000000000000000000000000000000059 -S3154004BDA00000000000000000000000000000000049 -S3154004BDB00000000000000000000000000000000039 -S3154004BDC00000000000000000000000000000000029 -S3154004BDD00000000000000000000000000000000019 -S3154004BDE00000000000000000000000000000000009 -S3154004BDF000000000000000000000000000000000F9 -S3154004BE0000000000000000000000000000000000E8 -S3154004BE1000000000000000000000000000000000D8 -S3154004BE2000000000000000000000000000000000C8 -S3154004BE3000000000000000000000000000000000B8 -S3154004BE4000000000000000000000000000000000A8 -S3154004BE500000000000000000000000000000000098 -S3154004BE600000000000000000000000000000000088 -S3154004BE700000000000000000000000000000000078 -S3154004BE800000000000000000000000000000000068 -S3154004BE900000000000000000000000000000000058 -S3154004BEA00000000000000000000000000000000048 -S3154004BEB00000000000000000000000000000000038 -S3154004BEC00000000000000000000000000000000028 -S3154004BED00000000000000000000000000000000018 -S3154004BEE00000000000000000000000000000000008 -S3154004BEF000000000000000000000000000000000F8 -S3154004BF0000000000000000000000000000000000E7 -S3154004BF1000000000000000000000000000000000D7 -S3154004BF2000000000000000000000000000000000C7 -S3154004BF3000000000000000000000000000000000B7 -S3154004BF4000000000000000000000000000000000A7 -S3154004BF500000000000000000000000000000000097 -S3154004BF600000000000000000000000000000000087 -S3154004BF700000000000000000000000000000000077 -S3154004BF800000000000000000000000000000000067 -S3154004BF900000000000000000000000000000000057 -S3154004BFA00000000000000000000000000000000047 -S3154004BFB00000000000000000000000000000000037 -S3154004BFC00000000000000000000000000000000027 -S3154004BFD00000000000000000000000000000000017 -S3154004BFE00000000000000000000000000000000007 -S3154004BFF000000000000000000000000000000000F7 -S3154004C00000000000000000000000000000000000E6 -S3154004C01000000000000000000000000000000000D6 -S3154004C02000000000000000000000000000000000C6 -S3154004C03000000000000000000000000000000000B6 -S3154004C04000000000000000000000000000000000A6 -S3154004C0500000000000000000000000000000000096 -S3154004C0600000000000000000000000000000000086 -S3154004C0700000000000000000000000000000000076 -S3154004C0800000000000000000000000000000000066 -S3154004C0900000000000000000000000000000000056 -S3154004C0A00000000000000000000000000000000046 -S3154004C0B00000000000000000000000000000000036 -S3154004C0C00000000000000000000000000000000026 -S3154004C0D00000000000000000000000000000000016 -S3154004C0E00000000000000000000000000000000006 -S3154004C0F000000000000000000000000000000000F6 -S3154004C10000000000000000000000000000000000E5 -S3154004C11000000000000000000000000000000000D5 -S3154004C12000000000000000000000000000000000C5 -S3154004C13000000000000000000000000000000000B5 -S3154004C14000000000000000000000000000000000A5 -S3154004C1500000000000000000000000000000000095 -S3154004C1600000000000000000000000000000000085 -S3154004C1700000000000000000000000000000000075 -S3154004C1800000000000000000000000000000000065 -S3154004C1900000000000000000000000000000000055 -S3154004C1A00000000000000000000000000000000045 -S3154004C1B00000000000000000000000000000000035 -S3154004C1C00000000000000000000000000000000025 -S3154004C1D00000000000000000000000000000000015 -S3154004C1E00000000000000000000000000000000005 -S3154004C1F000000000000000000000000000000000F5 -S3154004C20000000000000000000000000000000000E4 -S3154004C21000000000000000000000000000000000D4 -S3154004C22000000000000000000000000000000000C4 -S3154004C23000000000000000000000000000000000B4 -S3154004C24000000000000000000000000000000000A4 -S3154004C2500000000000000000000000000000000094 -S3154004C2600000000000000000000000000000000084 -S3154004C2700000000000000000000000000000000074 -S3154004C2800000000000000000000000000000000064 -S3154004C2900000000000000000000000000000000054 -S3154004C2A00000000000000000000000000000000044 -S3154004C2B00000000000000000000000000000000034 -S3154004C2C00000000000000000000000000000000024 -S3154004C2D00000000000000000000000000000000014 -S3154004C2E00000000000000000000000000000000004 -S3154004C2F000000000000000000000000000000000F4 -S3154004C30000000000000000000000000000000000E3 -S3154004C31000000000000000000000000000000000D3 -S3154004C32000000000000000000000000000000000C3 -S3154004C33000000000000000000000000000000000B3 -S3154004C34000000000000000000000000000000000A3 -S3154004C3500000000000000000000000000000000093 -S3154004C3600000000000000000000000000000000083 -S3154004C3700000000000000000000000000000000073 -S3154004C3800000000000000000000000000000000063 -S3154004C3900000000000000000000000000000000053 -S3154004C3A00000000000000000000000000000000043 -S3154004C3B00000000000000000000000000000000033 -S3154004C3C00000000000000000000000000000000023 -S3154004C3D00000000000000000000000000000000013 -S3154004C3E00000000000000000000000000000000003 -S3154004C3F000000000000000000000000000000000F3 -S3154004C40000000000000000000000000000000000E2 -S3154004C41000000000000000000000000000000000D2 -S3154004C42000000000000000000000000000000000C2 -S3154004C43000000000000000000000000000000000B2 -S3154004C44000000000000000000000000000000000A2 -S3154004C4500000000000000000000000000000000092 -S3154004C4600000000000000000000000000000000082 -S3154004C4700000000000000000000000000000000072 -S3154004C4800000000000000000000000000000000062 -S3154004C4900000000000000000000000000000000052 -S3154004C4A00000000000000000000000000000000042 -S3154004C4B00000000000000000000000000000000032 -S3154004C4C00000000000000000000000000000000022 -S3154004C4D00000000000000000000000000000000012 -S3154004C4E00000000000000000000000000000000002 -S3154004C4F000000000000000000000000000000000F2 -S3154004C50000000000000000000000000000000000E1 -S3154004C51000000000000000000000000000000000D1 -S3154004C52000000000000000000000000000000000C1 -S3154004C53000000000000000000000000000000000B1 -S3154004C54000000000000000000000000000000000A1 -S3154004C5500000000000000000000000000000000091 -S3154004C5600000000000000000000000000000000081 -S3154004C5700000000000000000000000000000000071 -S3154004C5800000000000000000000000000000000061 -S3154004C5900000000000000000000000000000000051 -S3154004C5A00000000000000000000000000000000041 -S3154004C5B00000000000000000000000000000000031 -S3154004C5C00000000000000000000000000000000021 -S3154004C5D00000000000000000000000000000000011 -S3154004C5E00000000000000000000000000000000001 -S3154004C5F000000000000000000000000000000000F1 -S3154004C60000000000000000000000000000000000E0 -S3154004C61000000000000000000000000000000000D0 -S3154004C62000000000000000000000000000000000C0 -S3154004C63000000000000000000000000000000000B0 -S3154004C64000000000000000000000000000000000A0 -S3154004C6500000000000000000000000000000000090 -S3154004C6600000000000000000000000000000000080 -S3154004C6700000000000000000000000000000000070 -S3154004C6800000000000000000000000000000000060 -S3154004C6900000000000000000000000000000000050 -S3154004C6A00000000000000000000000000000000040 -S3154004C6B00000000000000000000000000000000030 -S3154004C6C00000000000000000000000000000000020 -S3154004C6D00000000000000000000000000000000010 -S3154004C6E00000000000000000000000000000000000 -S3154004C6F000000000000000000000000000000000F0 -S3154004C70000000000000000000000000000000000DF -S3154004C71000000000000000000000000000000000CF -S3154004C72000000000000000000000000000000000BF -S3154004C73000000000000000000000000000000000AF -S3154004C740000000000000000000000000000000009F -S3154004C750000000000000000000000000000000008F -S3154004C760000000000000000000000000000000007F -S3154004C770000000000000000000000000000000006F -S3154004C780000000000000000000000000000000005F -S3154004C790000000000000000000000000000000004F -S3154004C7A0000000000000000000000000000000003F -S3154004C7B0000000000000000000000000000000002F -S3154004C7C0000000000000000000000000000000001F -S3154004C7D0000000000000000000000000000000000F -S3154004C7E000000000000000000000000000000000FF -S3154004C7F000000000000000000000000000000000EF -S3154004C80000000000000000000000000000000000DE -S3154004C81000000000000000000000000000000000CE -S3154004C82000000000000000000000000000000000BE -S3154004C83000000000000000000000000000000000AE -S3154004C840000000000000000000000000000000009E -S3154004C850000000000000000000000000000000008E -S3154004C860000000000000000000000000000000007E -S3154004C870000000000000000000000000000000006E -S3154004C880000000000000000000000000000000005E -S3154004C890000000000000000000000000000000004E -S3154004C8A0000000000000000000000000000000003E -S3154004C8B0000000000000000000000000000000002E -S3154004C8C0000000000000000000000000000000001E -S3154004C8D0000000000000000000000000000000000E -S3154004C8E000000000000000000000000000000000FE -S3154004C8F000000000000000000000000000000000EE -S3154004C90000000000000000000000000000000000DD -S3154004C91000000000000000000000000000000000CD -S3154004C92000000000000000000000000000000000BD -S3154004C93000000000000000000000000000000000AD -S3154004C940000000000000000000000000000000009D -S3154004C950000000000000000000000000000000008D -S3154004C960000000000000000000000000000000007D -S3154004C970000000000000000000000000000000006D -S3154004C980000000000000000000000000000000005D -S3154004C990000000000000000000000000000000004D -S3154004C9A0000000000000000000000000000000003D -S3154004C9B0000000000000000000000000000000002D -S3154004C9C0000000000000000000000000000000001D -S3154004C9D0000000000000000000000000000000000D -S3154004C9E000000000000000000000000000000000FD -S3154004C9F000000000000000000000000000000000ED -S3154004CA0000000000000000000000000000000000DC -S3154004CA1000000000000000000000000000000000CC -S3154004CA2000000000000000000000000000000000BC -S3154004CA3000000000000000000000000000000000AC -S3154004CA40000000000000000000000000000000009C -S3154004CA50000000000000000000000000000000008C -S3154004CA60000000000000000000000000000000007C -S3154004CA70000000000000000000000000000000006C -S3154004CA80000000000000000000000000000000005C -S3154004CA90000000000000000000000000000000004C -S3154004CAA0000000000000000000000000000000003C -S3154004CAB0000000000000000000000000000000002C -S3154004CAC0000000000000000000000000000000001C -S3154004CAD0000000000000000000000000000000000C -S3154004CAE000000000000000000000000000000000FC -S3154004CAF000000000000000000000000000000000EC -S3154004CB0000000000000000000000000000000000DB -S3154004CB1000000000000000000000000000000000CB -S3154004CB2000000000000000000000000000000000BB -S3154004CB3000000000000000000000000000000000AB -S3154004CB40000000000000000000000000000000009B -S3154004CB50000000000000000000000000000000008B -S3154004CB60000000000000000000000000000000007B -S3154004CB70000000000000000000000000000000006B -S3154004CB80000000000000000000000000000000005B -S3154004CB90000000000000000000000000000000004B -S3154004CBA0000000000000000000000000000000003B -S3154004CBB0000000000000000000000000000000002B -S3154004CBC0000000000000000000000000000000001B -S3154004CBD0000000000000000000000000000000000B -S3154004CBE000000000000000000000000000000000FB -S3154004CBF000000000000000000000000000000000EB -S3154004CC0000000000000000000000000000000000DA -S3154004CC1000000000000000000000000000000000CA -S3154004CC2000000000000000000000000000000000BA -S3154004CC3000000000000000000000000000000000AA -S3154004CC40000000000000000000000000000000009A -S3154004CC50000000000000000000000000000000008A -S3154004CC60000000000000000000000000000000007A -S3154004CC70000000000000000000000000000000006A -S3154004CC80000000000000000000000000000000005A -S3154004CC90000000000000000000000000000000004A -S3154004CCA0000000000000000000000000000000003A -S3154004CCB0000000000000000000000000000000002A -S3154004CCC0000000000000000000000000000000001A -S3154004CCD0000000000000000000000000000000000A -S3154004CCE000000000000000000000000000000000FA -S3154004CCF000000000000000000000000000000000EA -S3154004CD0000000000000000000000000000000000D9 -S3154004CD1000000000000000000000000000000000C9 -S3154004CD2000000000000000000000000000000000B9 -S3154004CD3000000000000000000000000000000000A9 -S3154004CD400000000000000000000000000000000099 -S3154004CD500000000000000000000000000000000089 -S3154004CD600000000000000000000000000000000079 -S3154004CD700000000000000000000000000000000069 -S3154004CD800000000000000000000000000000000059 -S3154004CD900000000000000000000000000000000049 -S3154004CDA00000000000000000000000000000000039 -S3154004CDB00000000000000000000000000000000029 -S3154004CDC00000000000000000000000000000000019 -S3154004CDD00000000000000000000000000000000009 -S3154004CDE000000000000000000000000000000000F9 -S3154004CDF000000000000000000000000000000000E9 -S3154004CE0000000000000000000000000000000000D8 -S3154004CE1000000000000000000000000000000000C8 -S3154004CE2000000000000000000000000000000000B8 -S3154004CE3000000000000000000000000000000000A8 -S3154004CE400000000000000000000000000000000098 -S3154004CE500000000000000000000000000000000088 -S3154004CE600000000000000000000000000000000078 -S3154004CE700000000000000000000000000000000068 -S3154004CE800000000000000000000000000000000058 -S3154004CE900000000000000000000000000000000048 -S3154004CEA00000000000000000000000000000000038 -S3154004CEB00000000000000000000000000000000028 -S3154004CEC00000000000000000000000000000000018 -S3154004CED00000000000000000000000000000000008 -S3154004CEE000000000000000000000000000000000F8 -S3154004CEF000000000000000000000000000000000E8 -S3154004CF0000000000000000000000000000000000D7 -S3154004CF1000000000000000000000000000000000C7 -S3154004CF2000000000000000000000000000000000B7 -S3154004CF3000000000000000000000000000000000A7 -S3154004CF400000000000000000000000000000000097 -S3154004CF500000000000000000000000000000000087 -S3154004CF600000000000000000000000000000000077 -S3154004CF700000000000000000000000000000000067 -S3154004CF800000000000000000000000000000000057 -S3154004CF900000000000000000000000000000000047 -S3154004CFA00000000000000000000000000000000037 -S3154004CFB00000000000000000000000000000000027 -S3154004CFC00000000000000000000000000000000017 -S3154004CFD00000000000000000000000000000000007 -S3154004CFE000000000000000000000000000000000F7 -S3154004CFF000000000000000000000000000000000E7 -S3154004D00000000000000000000000000000000000D6 -S3154004D01000000000000000000000000000000000C6 -S3154004D02000000000000000000000000000000000B6 -S3154004D03000000000000000000000000000000000A6 -S3154004D0400000000000000000000000000000000096 -S3154004D0500000000000000000000000000000000086 -S3154004D0600000000000000000000000000000000076 -S3154004D0700000000000000000000000000000000066 -S3154004D0800000000000000000000000000000000056 -S3154004D0900000000000000000000000000000000046 -S3154004D0A00000000000000000000000000000000036 -S3154004D0B00000000000000000000000000000000026 -S3154004D0C00000000000000000000000000000000016 -S3154004D0D00000000000000000000000000000000006 -S3154004D0E000000000000000000000000000000000F6 -S3154004D0F000000000000000000000000000000000E6 -S3154004D10000000000000000000000000000000000D5 -S3154004D11000000000000000000000000000000000C5 -S3154004D12000000000000000000000000000000000B5 -S3154004D13000000000000000000000000000000000A5 -S3154004D1400000000000000000000000000000000095 -S3154004D1500000000000000000000000000000000085 -S3154004D1600000000000000000000000000000000075 -S3154004D1700000000000000000000000000000000065 -S3154004D1800000000000000000000000000000000055 -S3154004D1900000000000000000000000000000000045 -S3154004D1A00000000000000000000000000000000035 -S3154004D1B00000000000000000000000000000000025 -S3154004D1C00000000000000000000000000000000015 -S3154004D1D00000000000000000000000000000000005 -S3154004D1E000000000000000000000000000000000F5 -S3154004D1F000000000000000000000000000000000E5 -S3154004D20000000000000000000000000000000000D4 -S3154004D21000000000000000000000000000000000C4 -S3154004D22000000000000000000000000000000000B4 -S3154004D23000000000000000000000000000000000A4 -S3154004D2400000000000000000000000000000000094 -S3154004D2500000000000000000000000000000000084 -S3154004D2600000000000000000000000000000000074 -S3154004D2700000000000000000000000000000000064 -S3154004D2800000000000000000000000000000000054 -S3154004D2900000000000000000000000000000000044 -S3154004D2A00000000000000000000000000000000034 -S3154004D2B00000000000000000000000000000000024 -S3154004D2C00000000000000000000000000000000014 -S3154004D2D00000000000000000000000000000000004 -S3154004D2E000000000000000000000000000000000F4 -S3154004D2F000000000000000000000000000000000E4 -S3154004D30000000000000000000000000000000000D3 -S3154004D31000000000000000000000000000000000C3 -S3154004D32000000000000000000000000000000000B3 -S3154004D33000000000000000000000000000000000A3 -S3154004D3400000000000000000000000000000000093 -S3154004D3500000000000000000000000000000000083 -S3154004D3600000000000000000000000000000000073 -S3154004D3700000000000000000000000000000000063 -S3154004D3800000000000000000000000000000000053 -S3154004D3900000000000000000000000000000000043 -S3154004D3A00000000000000000000000000000000033 -S3154004D3B00000000000000000000000000000000023 -S3154004D3C00000000000000000000000000000000013 -S3154004D3D00000000000000000000000000000000003 -S3154004D3E000000000000000000000000000000000F3 -S3154004D3F000000000000000000000000000000000E3 -S3154004D40000000000000000000000000000000000D2 -S3154004D41000000000000000000000000000000000C2 -S3154004D42000000000000000000000000000000000B2 -S3154004D43000000000000000000000000000000000A2 -S3154004D4400000000000000000000000000000000092 -S3154004D4500000000000000000000000000000000082 -S3154004D4600000000000000000000000000000000072 -S3154004D4700000000000000000000000000000000062 -S3154004D4800000000000000000000000000000000052 -S3154004D4900000000000000000000000000000000042 -S3154004D4A00000000000000000000000000000000032 -S3154004D4B00000000000000000000000000000000022 -S3154004D4C00000000000000000000000000000000012 -S3154004D4D00000000000000000000000000000000002 -S3154004D4E000000000000000000000000000000000F2 -S3154004D4F000000000000000000000000000000000E2 -S3154004D50000000000000000000000000000000000D1 -S3154004D51000000000000000000000000000000000C1 -S3154004D52000000000000000000000000000000000B1 -S3154004D53000000000000000000000000000000000A1 -S3154004D5400000000000000000000000000000000091 -S3154004D5500000000000000000000000000000000081 -S3154004D5600000000000000000000000000000000071 -S3154004D5700000000000000000000000000000000061 -S3154004D5800000000000000000000000000000000051 -S3154004D5900000000000000000000000000000000041 -S3154004D5A00000000000000000000000000000000031 -S3154004D5B00000000000000000000000000000000021 -S3154004D5C00000000000000000000000000000000011 -S3154004D5D00000000000000000000000000000000001 -S3154004D5E000000000000000000000000000000000F1 -S3154004D5F000000000000000000000000000000000E1 -S3154004D60000000000000000000000000000000000D0 -S3154004D61000000000000000000000000000000000C0 -S3154004D62000000000000000000000000000000000B0 -S3154004D63000000000000000000000000000000000A0 -S3154004D6400000000000000000000000000000000090 -S3154004D6500000000000000000000000000000000080 -S3154004D6600000000000000000000000000000000070 -S3154004D6700000000000000000000000000000000060 -S3154004D6800000000000000000000000000000000050 -S3154004D6900000000000000000000000000000000040 -S3154004D6A00000000000000000000000000000000030 -S3154004D6B00000000000000000000000000000000020 -S3154004D6C00000000000000000000000000000000010 -S3154004D6D00000000000000000000000000000000000 -S3154004D6E000000000000000000000000000000000F0 -S3154004D6F000000000000000000000000000000000E0 -S3154004D70000000000000000000000000000000000CF -S3154004D71000000000000000000000000000000000BF -S3154004D72000000000000000000000000000000000AF -S3154004D730000000000000000000000000000000009F -S3154004D740000000000000000000000000000000008F -S3154004D750000000000000000000000000000000007F -S3154004D760000000000000000000000000000000006F -S3154004D770000000000000000000000000000000005F -S3154004D780000000000000000000000000000000004F -S3154004D790000000000000000000000000000000003F -S3154004D7A0000000000000000000000000000000002F -S3154004D7B0000000000000000000000000000000001F -S3154004D7C0000000000000000000000000000000000F -S3154004D7D000000000000000000000000000000000FF -S3154004D7E000000000000000000000000000000000EF -S3154004D7F000000000000000000000000000000000DF -S3154004D80000000000000000000000000000000000CE -S3154004D81000000000000000000000000000000000BE -S3154004D82000000000000000000000000000000000AE -S3154004D830000000000000000000000000000000009E -S3154004D840000000000000000000000000000000008E -S3154004D850000000000000000000000000000000007E -S3154004D860000000000000000000000000000000006E -S3154004D870000000000000000000000000000000005E -S3154004D880000000000000000000000000000000004E -S3154004D890000000000000000000000000000000003E -S3154004D8A0000000000000000000000000000000002E -S3154004D8B0000000000000000000000000000000001E -S3154004D8C0000000000000000000000000000000000E -S3154004D8D000000000000000000000000000000000FE -S3154004D8E000000000000000000000000000000000EE -S3154004D8F000000000000000000000000000000000DE -S3154004D90000000000000000000000000000000000CD -S3154004D91000000000000000000000000000000000BD -S3154004D92000000000000000000000000000000000AD -S3154004D930000000000000000000000000000000009D -S3154004D940000000000000000000000000000000008D -S3154004D950000000000000000000000000000000007D -S3154004D960000000000000000000000000000000006D -S3154004D970000000000000000000000000000000005D -S3154004D980000000000000000000000000000000004D -S3154004D990000000000000000000000000000000003D -S3154004D9A0000000000000000000000000000000002D -S3154004D9B0000000000000000000000000000000001D -S3154004D9C0000000000000000000000000000000000D -S3154004D9D000000000000000000000000000000000FD -S3154004D9E000000000000000000000000000000000ED -S3154004D9F000000000000000000000000000000000DD -S3154004DA0000000000000000000000000000000000CC -S3154004DA1000000000000000000000000000000000BC -S3154004DA2000000000000000000000000000000000AC -S3154004DA30000000000000000000000000000000009C -S3154004DA40000000000000000000000000000000008C -S3154004DA50000000000000000000000000000000007C -S3154004DA60000000000000000000000000000000006C -S3154004DA70000000000000000000000000000000005C -S3154004DA80000000000000000000000000000000004C -S3154004DA90000000000000000000000000000000003C -S3154004DAA0000000000000000000000000000000002C -S3154004DAB0000000000000000000000000000000001C -S3154004DAC0000000000000000000000000000000000C -S3154004DAD000000000000000000000000000000000FC -S3154004DAE000000000000000000000000000000000EC -S3154004DAF000000000000000000000000000000000DC -S3154004DB0000000000000000000000000000000000CB -S3154004DB1000000000000000000000000000000000BB -S3154004DB2000000000000000000000000000000000AB -S3154004DB30000000000000000000000000000000009B -S3154004DB40000000000000000000000000000000008B -S3154004DB50000000000000000000000000000000007B -S3154004DB60000000000000000000000000000000006B -S3154004DB70000000000000000000000000000000005B -S3154004DB80000000000000000000000000000000004B -S3154004DB90000000000000000000000000000000003B -S3154004DBA0000000000000000000000000000000002B -S3154004DBB0000000000000000000000000000000001B -S3154004DBC0000000000000000000000000000000000B -S3154004DBD000000000000000000000000000000000FB -S3154004DBE000000000000000000000000000000000EB -S3154004DBF000000000000000000000000000000000DB -S3154004DC0000000000000000000000000000000000CA -S3154004DC1000000000000000000000000000000000BA -S3154004DC2000000000000000000000000000000000AA -S3154004DC30000000000000000000000000000000009A -S3154004DC40000000000000000000000000000000008A -S3154004DC50000000000000000000000000000000007A -S3154004DC60000000000000000000000000000000006A -S3154004DC70000000000000000000000000000000005A -S3154004DC80000000000000000000000000000000004A -S3154004DC90000000000000000000000000000000003A -S3154004DCA0000000000000000000000000000000002A -S3154004DCB0000000000000000000000000000000001A -S3154004DCC0000000000000000000000000000000000A -S3154004DCD000000000000000000000000000000000FA -S3154004DCE000000000000000000000000000000000EA -S3154004DCF000000000000000000000000000000000DA -S3154004DD0000000000000000000000000000000000C9 -S3154004DD1000000000000000000000000000000000B9 -S3154004DD2000000000000000000000000000000000A9 -S3154004DD300000000000000000000000000000000099 -S3154004DD400000000000000000000000000000000089 -S3154004DD500000000000000000000000000000000079 -S3154004DD600000000000000000000000000000000069 -S3154004DD700000000000000000000000000000000059 -S3154004DD800000000000000000000000000000000049 -S3154004DD900000000000000000000000000000000039 -S3154004DDA00000000000000000000000000000000029 -S3154004DDB00000000000000000000000000000000019 -S3154004DDC00000000000000000000000000000000009 -S3154004DDD000000000000000000000000000000000F9 -S3154004DDE000000000000000000000000000000000E9 -S3154004DDF000000000000000000000000000000000D9 -S3154004DE0000000000000000000000000000000000C8 -S3154004DE1000000000000000000000000000000000B8 -S3154004DE2000000000000000000000000000000000A8 -S3154004DE300000000000000000000000000000000098 -S3154004DE400000000000000000000000000000000088 -S3154004DE500000000000000000000000000000000078 -S3154004DE600000000000000000000000000000000068 -S3154004DE700000000000000000000000000000000058 -S3154004DE800000000000000000000000000000000048 -S3154004DE900000000000000000000000000000000038 -S3154004DEA00000000000000000000000000000000028 -S3154004DEB00000000000000000000000000000000018 -S3154004DEC00000000000000000000000000000000008 -S3154004DED000000000000000000000000000000000F8 -S3154004DEE000000000000000000000000000000000E8 -S3154004DEF000000000000000000000000000000000D8 -S3154004DF0000000000000000000000000000000000C7 -S3154004DF1000000000000000000000000000000000B7 -S3154004DF2000000000000000000000000000000000A7 -S3154004DF300000000000000000000000000000000097 -S3154004DF400000000000000000000000000000000087 -S3154004DF500000000000000000000000000000000077 -S3154004DF600000000000000000000000000000000067 -S3154004DF700000000000000000000000000000000057 -S3154004DF800000000000000000000000000000000047 -S3154004DF900000000000000000000000000000000037 -S3154004DFA00000000000000000000000000000000027 -S3154004DFB00000000000000000000000000000000017 -S3154004DFC00000000000000000000000000000000007 -S3154004DFD000000000000000000000000000000000F7 -S3154004DFE000000000000000000000000000000000E7 -S3154004DFF000000000000000000000000000000000D7 -S3154004E00000000000000000000000000000000000C6 -S3154004E01000000000000000000000000000000000B6 -S3154004E02000000000000000000000000000000000A6 -S3154004E0300000000000000000000000000000000096 -S3154004E0400000000000000000000000000000000086 -S3154004E0500000000000000000000000000000000076 -S3154004E0600000000000000000000000000000000066 -S3154004E0700000000000000000000000000000000056 -S3154004E0800000000000000000000000000000000046 -S3154004E0900000000000000000000000000000000036 -S3154004E0A00000000000000000000000000000000026 -S3154004E0B00000000000000000000000000000000016 -S3154004E0C00000000000000000000000000000000006 -S3154004E0D000000000000000000000000000000000F6 -S3154004E0E000000000000000000000000000000000E6 -S3154004E0F000000000000000000000000000000000D6 -S3154004E10000000000000000000000000000000000C5 -S3154004E11000000000000000000000000000000000B5 -S3154004E12000000000000000000000000000000000A5 -S3154004E1300000000000000000000000000000000095 -S3154004E1400000000000000000000000000000000085 -S3154004E1500000000000000000000000000000000075 -S3154004E1600000000000000000000000000000000065 -S3154004E1700000000000000000000000000000000055 -S3154004E1800000000000000000000000000000000045 -S3154004E1900000000000000000000000000000000035 -S3154004E1A00000000000000000000000000000000025 -S3154004E1B00000000000000000000000000000000015 -S3154004E1C00000000000000000000000000000000005 -S3154004E1D000000000000000000000000000000000F5 -S3154004E1E000000000000000000000000000000000E5 -S3154004E1F000000000000000000000000000000000D5 -S3154004E20000000000000000000000000000000000C4 -S3154004E21000000000000000000000000000000000B4 -S3154004E22000000000000000000000000000000000A4 -S3154004E2300000000000000000000000000000000094 -S3154004E2400000000000000000000000000000000084 -S3154004E2500000000000000000000000000000000074 -S3154004E2600000000000000000000000000000000064 -S3154004E2700000000000000000000000000000000054 -S3154004E2800000000000000000000000000000000044 -S3154004E2900000000000000000000000000000000034 -S3154004E2A00000000000000000000000000000000024 -S3154004E2B00000000000000000000000000000000014 -S3154004E2C00000000000000000000000000000000004 -S3154004E2D000000000000000000000000000000000F4 -S3154004E2E000000000000000000000000000000000E4 -S3154004E2F000000000000000000000000000000000D4 -S3154004E30000000000000000000000000000000000C3 -S3154004E31000000000000000000000000000000000B3 -S3154004E32000000000000000000000000000000000A3 -S3154004E3300000000000000000000000000000000093 -S3154004E3400000000000000000000000000000000083 -S3154004E3500000000000000000000000000000000073 -S3154004E3600000000000000000000000000000000063 -S3154004E3700000000000000000000000000000000053 -S3154004E3800000000000000000000000000000000043 -S3154004E3900000000000000000000000000000000033 -S3154004E3A00000000000000000000000000000000023 -S3154004E3B00000000000000000000000000000000013 -S3154004E3C00000000000000000000000000000000003 -S3154004E3D000000000000000000000000000000000F3 -S3154004E3E000000000000000000000000000000000E3 -S3154004E3F000000000000000000000000000000000D3 -S3154004E40000000000000000000000000000000000C2 -S3154004E41000000000000000000000000000000000B2 -S3154004E42000000000000000000000000000000000A2 -S3154004E4300000000000000000000000000000000092 -S3154004E4400000000000000000000000000000000082 -S3154004E4500000000000000000000000000000000072 -S3154004E4600000000000000000000000000000000062 -S3154004E4700000000000000000000000000000000052 -S3154004E4800000000000000000000000000000000042 -S3154004E4900000000000000000000000000000000032 -S3154004E4A00000000000000000000000000000000022 -S3154004E4B00000000000000000000000000000000012 -S3154004E4C00000000000000000000000000000000002 -S3154004E4D000000000000000000000000000000000F2 -S3154004E4E000000000000000000000000000000000E2 -S3154004E4F000000000000000000000000000000000D2 -S3154004E50000000000000000000000000000000000C1 -S3154004E51000000000000000000000000000000000B1 -S3154004E52000000000000000000000000000000000A1 -S3154004E5300000000000000000000000000000000091 -S3154004E5400000000000000000000000000000000081 -S3154004E5500000000000000000000000000000000071 -S3154004E5600000000000000000000000000000000061 -S3154004E5700000000000000000000000000000000051 -S3154004E5800000000000000000000000000000000041 -S3154004E5900000000000000000000000000000000031 -S3154004E5A00000000000000000000000000000000021 -S3154004E5B00000000000000000000000000000000011 -S3154004E5C00000000000000000000000000000000001 -S3154004E5D000000000000000000000000000000000F1 -S3154004E5E000000000000000000000000000000000E1 -S3154004E5F000000000000000000000000000000000D1 -S3154004E60000000000000000000000000000000000C0 -S3154004E61000000000000000000000000000000000B0 -S3154004E62000000000000000000000000000000000A0 -S3154004E6300000000000000000000000000000000090 -S3154004E6400000000000000000000000000000000080 -S3154004E6500000000000000000000000000000000070 -S3154004E6600000000000000000000000000000000060 -S3154004E6700000000000000000000000000000000050 -S3154004E6800000000000000000000000000000000040 -S3154004E6900000000000000000000000000000000030 -S3154004E6A00000000000000000000000000000000020 -S3154004E6B00000000000000000000000000000000010 -S3154004E6C00000000000000000000000000000000000 -S3154004E6D000000000000000000000000000000000F0 -S3154004E6E000000000000000000000000000000000E0 -S3154004E6F000000000000000000000000000000000D0 -S3154004E70000000000000000000000000000000000BF -S3154004E71000000000000000000000000000000000AF -S3154004E720000000000000000000000000000000009F -S3154004E730000000000000000000000000000000008F -S3154004E740000000000000000000000000000000007F -S3154004E750000000000000000000000000000000006F -S3154004E760000000000000000000000000000000005F -S3154004E770000000000000000000000000000000004F -S3154004E780000000000000000000000000000000003F -S3154004E790000000000000000000000000000000002F -S3154004E7A0000000000000000000000000000000001F -S3154004E7B0000000000000000000000000000000000F -S3154004E7C000000000000000000000000000000000FF -S3154004E7D000000000000000000000000000000000EF -S3154004E7E000000000000000000000000000000000DF -S3154004E7F000000000000000000000000000000000CF -S3154004E80000000000000000000000000000000000BE -S3154004E81000000000000000000000000000000000AE -S3154004E820000000000000000000000000000000009E -S3154004E830000000000000000000000000000000008E -S3154004E840000000000000000000000000000000007E -S3154004E850000000000000000000000000000000006E -S3154004E860000000000000000000000000000000005E -S3154004E870000000000000000000000000000000004E -S3154004E880000000000000000000000000000000003E -S3154004E890000000000000000000000000000000002E -S3154004E8A0000000000000000000000000000000001E -S3154004E8B0000000000000000000000000000000000E -S3154004E8C000000000000000000000000000000000FE -S3154004E8D000000000000000000000000000000000EE -S3154004E8E000000000000000000000000000000000DE -S3154004E8F000000000000000000000000000000000CE -S3154004E90000000000000000000000000000000000BD -S3154004E91000000000000000000000000000000000AD -S3154004E920000000000000000000000000000000009D -S3154004E930000000000000000000000000000000008D -S3154004E940000000000000000000000000000000007D -S3154004E950000000000000000000000000000000006D -S3154004E960000000000000000000000000000000005D -S3154004E970000000000000000000000000000000004D -S3154004E980000000000000000000000000000000003D -S3154004E990000000000000000000000000000000002D -S3154004E9A0000000000000000000000000000000001D -S3154004E9B0000000000000000000000000000000000D -S3154004E9C000000000000000000000000000000000FD -S3154004E9D000000000000000000000000000000000ED -S3154004E9E000000000000000000000000000000000DD -S3154004E9F000000000000000000000000000000000CD -S3154004EA0000000000000000000000000000000000BC -S3154004EA1000000000000000000000000000000000AC -S3154004EA20000000000000000000000000000000009C -S3154004EA30000000000000000000000000000000008C -S3154004EA40000000000000000000000000000000007C -S3154004EA50000000000000000000000000000000006C -S3154004EA60000000000000000000000000000000005C -S3154004EA70000000000000000000000000000000004C -S3154004EA80000000000000000000000000000000003C -S3154004EA90000000000000000000000000000000002C -S3154004EAA0000000000000000000000000000000001C -S3154004EAB0000000000000000000000000000000000C -S3154004EAC000000000000000000000000000000000FC -S3154004EAD000000000000000000000000000000000EC -S3154004EAE000000000000000000000000000000000DC -S3154004EAF000000000000000000000000000000000CC -S3154004EB0000000000000000000000000000000000BB -S3154004EB1000000000000000000000000000000000AB -S3154004EB20000000000000000000000000000000009B -S3154004EB30000000000000000000000000000000008B -S3154004EB40000000000000000000000000000000007B -S3154004EB50000000000000000000000000000000006B -S3154004EB60000000000000000000000000000000005B -S3154004EB70000000000000000000000000000000004B -S3154004EB80000000000000000000000000000000003B -S3154004EB90000000000000000000000000000000002B -S3154004EBA0000000000000000000000000000000001B -S3154004EBB0000000000000000000000000000000000B -S3154004EBC000000000000000000000000000000000FB -S3154004EBD000000000000000000000000000000000EB -S3154004EBE000000000000000000000000000000000DB -S3154004EBF000000000000000000000000000000000CB -S3154004EC0000000000000000000000000000000000BA -S3154004EC1000000000000000000000000000000000AA -S3154004EC20000000000000000000000000000000009A -S3154004EC30000000000000000000000000000000008A -S3154004EC40000000000000000000000000000000007A -S3154004EC50000000000000000000000000000000006A -S3154004EC60000000000000000000000000000000005A -S3154004EC70000000000000000000000000000000004A -S3154004EC80000000000000000000000000000000003A -S3154004EC90000000000000000000000000000000002A -S3154004ECA0000000000000000000000000000000001A -S3154004ECB0000000000000000000000000000000000A -S3154004ECC000000000000000000000000000000000FA -S3154004ECD000000000000000000000000000000000EA -S3154004ECE000000000000000000000000000000000DA -S3154004ECF000000000000000000000000000000000CA -S3154004ED0000000000000000000000000000000000B9 -S3154004ED1000000000000000000000000000000000A9 -S3154004ED200000000000000000000000000000000099 -S3154004ED300000000000000000000000000000000089 -S3154004ED400000000000000000000000000000000079 -S3154004ED500000000000000000000000000000000069 -S3154004ED600000000000000000000000000000000059 -S3154004ED700000000000000000000000000000000049 -S3154004ED800000000000000000000000000000000039 -S3154004ED900000000000000000000000000000000029 -S3154004EDA00000000000000000000000000000000019 -S3154004EDB00000000000000000000000000000000009 -S3154004EDC000000000000000000000000000000000F9 -S3154004EDD000000000000000000000000000000000E9 -S3154004EDE000000000000000000000000000000000D9 -S3154004EDF000000000000000000000000000000000C9 -S3154004EE0000000000000000000000000000000000B8 -S3154004EE1000000000000000000000000000000000A8 -S3154004EE200000000000000000000000000000000098 -S3154004EE300000000000000000000000000000000088 -S3154004EE400000000000000000000000000000000078 -S3154004EE500000000000000000000000000000000068 -S3154004EE600000000000000000000000000000000058 -S3154004EE700000000000000000000000000000000048 -S3154004EE800000000000000000000000000000000038 -S3154004EE900000000000000000000000000000000028 -S3154004EEA00000000000000000000000000000000018 -S3154004EEB00000000000000000000000000000000008 -S3154004EEC000000000000000000000000000000000F8 -S3154004EED000000000000000000000000000000000E8 -S3154004EEE000000000000000000000000000000000D8 -S3154004EEF000000000000000000000000000000000C8 -S3154004EF0000000000000000000000000000000000B7 -S3154004EF1000000000000000000000000000000000A7 -S3154004EF200000000000000000000000000000000097 -S3154004EF300000000000000000000000000000000087 -S3154004EF400000000000000000000000000000000077 -S3154004EF500000000000000000000000000000000067 -S3154004EF600000000000000000000000000000000057 -S3154004EF700000000000000000000000000000000047 -S3154004EF800000000000000000000000000000000037 -S3154004EF900000000000000000000000000000000027 -S3154004EFA00000000000000000000000000000000017 -S3154004EFB00000000000000000000000000000000007 -S3154004EFC000000000000000000000000000000000F7 -S3154004EFD000000000000000000000000000000000E7 -S3154004EFE000000000000000000000000000000000D7 -S3154004EFF000000000000000000000000000000000C7 -S3154004F00000000000000000000000000000000000B6 -S3154004F01000000000000000000000000000000000A6 -S3154004F0200000000000000000000000000000000096 -S3154004F0300000000000000000000000000000000086 -S3154004F0400000000000000000000000000000000076 -S3154004F0500000000000000000000000000000000066 -S3154004F0600000000000000000000000000000000056 -S3154004F0700000000000000000000000000000000046 -S3154004F0800000000000000000000000000000000036 -S3154004F0900000000000000000000000000000000026 -S3154004F0A00000000000000000000000000000000016 -S3154004F0B00000000000000000000000000000000006 -S3154004F0C000000000000000000000000000000000F6 -S3154004F0D000000000000000000000000000000000E6 -S3154004F0E000000000000000000000000000000000D6 -S3154004F0F000000000000000000000000000000000C6 -S3154004F10000000000000000000000000000000000B5 -S3154004F11000000000000000000000000000000000A5 -S3154004F1200000000000000000000000000000000095 -S3154004F1300000000000000000000000000000000085 -S3154004F1400000000000000000000000000000000075 -S3154004F1500000000000000000000000000000000065 -S3154004F1600000000000000000000000000000000055 -S3154004F1700000000000000000000000000000000045 -S3154004F1800000000000000000000000000000000035 -S3154004F1900000000000000000000000000000000025 -S3154004F1A00000000000000000000000000000000015 -S3154004F1B00000000000000000000000000000000005 -S3154004F1C000000000000000000000000000000000F5 -S3154004F1D000000000000000000000000000000000E5 -S3154004F1E000000000000000000000000000000000D5 -S3154004F1F000000000000000000000000000000000C5 -S3154004F20000000000000000000000000000000000B4 -S3154004F21000000000000000000000000000000000A4 -S3154004F2200000000000000000000000000000000094 -S3154004F2300000000000000000000000000000000084 -S3154004F2400000000000000000000000000000000074 -S3154004F2500000000000000000000000000000000064 -S3154004F2600000000000000000000000000000000054 -S3154004F2700000000000000000000000000000000044 -S3154004F2800000000000000000000000000000000034 -S3154004F2900000000000000000000000000000000024 -S3154004F2A00000000000000000000000000000000014 -S3154004F2B00000000000000000000000000000000004 -S3154004F2C000000000000000000000000000000000F4 -S3154004F2D000000000000000000000000000000000E4 -S3154004F2E000000000000000000000000000000000D4 -S3154004F2F000000000000000000000000000000000C4 -S3154004F30000000000000000000000000000000000B3 -S3154004F31000000000000000000000000000000000A3 -S3154004F3200000000000000000000000000000000093 -S3154004F3300000000000000000000000000000000083 -S3154004F3400000000000000000000000000000000073 -S3154004F3500000000000000000000000000000000063 -S3154004F3600000000000000000000000000000000053 -S3154004F3700000000000000000000000000000000043 -S3154004F3800000000000000000000000000000000033 -S3154004F3900000000000000000000000000000000023 -S3154004F3A00000000000000000000000000000000013 -S3154004F3B00000000000000000000000000000000003 -S3154004F3C000000000000000000000000000000000F3 -S3154004F3D000000000000000000000000000000000E3 -S3154004F3E000000000000000000000000000000000D3 -S3154004F3F000000000000000000000000000000000C3 -S3154004F40000000000000000000000000000000000B2 -S3154004F41000000000000000000000000000000000A2 -S3154004F4200000000000000000000000000000000092 -S3154004F4300000000000000000000000000000000082 -S3154004F4400000000000000000000000000000000072 -S3154004F4500000000000000000000000000000000062 -S3154004F4600000000000000000000000000000000052 -S3154004F4700000000000000000000000000000000042 -S3154004F4800000000000000000000000000000000032 -S3154004F4900000000000000000000000000000000022 -S3154004F4A00000000000000000000000000000000012 -S3154004F4B00000000000000000000000000000000002 -S3154004F4C000000000000000000000000000000000F2 -S3154004F4D000000000000000000000000000000000E2 -S3154004F4E000000000000000000000000000000000D2 -S3154004F4F000000000000000000000000000000000C2 -S3154004F50000000000000000000000000000000000B1 -S3154004F51000000000000000000000000000000000A1 -S3154004F5200000000000000000000000000000000091 -S3154004F5300000000000000000000000000000000081 -S3154004F5400000000000000000000000000000000071 -S3154004F5500000000000000000000000000000000061 -S3154004F5600000000000000000000000000000000051 -S3154004F5700000000000000000000000000000000041 -S3154004F5800000000000000000000000000000000031 -S3154004F5900000000000000000000000000000000021 -S3154004F5A00000000000000000000000000000000011 -S3154004F5B00000000000000000000000000000000001 -S3154004F5C000000000000000000000000000000000F1 -S3154004F5D000000000000000000000000000000000E1 -S3154004F5E000000000000000000000000000000000D1 -S3154004F5F000000000000000000000000000000000C1 -S3154004F60000000000000000000000000000000000B0 -S3154004F61000000000000000000000000000000000A0 -S3154004F6200000000000000000000000000000000090 -S3154004F6300000000000000000000000000000000080 -S3154004F6400000000000000000000000000000000070 -S3154004F6500000000000000000000000000000000060 -S3154004F6600000000000000000000000000000000050 -S3154004F6700000000000000000000000000000000040 -S3154004F6800000000000000000000000000000000030 -S3154004F6900000000000000000000000000000000020 -S3154004F6A00000000000000000000000000000000010 -S3154004F6B00000000000000000000000000000000000 -S3154004F6C000000000000000000000000000000000F0 -S3154004F6D000000000000000000000000000000000E0 -S3154004F6E000000000000000000000000000000000D0 -S3154004F6F000000000000000000000000000000000C0 -S3154004F70000000000000000000000000000000000AF -S3154004F710000000000000000000000000000000009F -S3154004F720000000000000000000000000000000008F -S3154004F730000000000000000000000000000000007F -S3154004F740000000000000000000000000000000006F -S3154004F750000000000000000000000000000000005F -S3154004F760000000000000000000000000000000004F -S3154004F770000000000000000000000000000000003F -S3154004F780000000000000000000000000000000002F -S3154004F790000000000000000000000000000000001F -S3154004F7A0000000000000000000000000000000000F -S3154004F7B000000000000000000000000000000000FF -S3154004F7C000000000000000000000000000000000EF -S3154004F7D000000000000000000000000000000000DF -S3154004F7E000000000000000000000000000000000CF -S3154004F7F000000000000000000000000000000000BF -S3154004F80000000000000000000000000000000000AE -S3154004F810000000000000000000000000000000009E -S3154004F820000000000000000000000000000000008E -S3154004F830000000000000000000000000000000007E -S3154004F840000000000000000000000000000000006E -S3154004F850000000000000000000000000000000005E -S3154004F860000000000000000000000000000000004E -S3154004F870000000000000000000000000000000003E -S3154004F880000000000000000000000000000000002E -S3154004F890000000000000000000000000000000001E -S3154004F8A0000000000000000000000000000000000E -S3154004F8B000000000000000000000000000000000FE -S3154004F8C000000000000000000000000000000000EE -S3154004F8D000000000000000000000000000000000DE -S3154004F8E000000000000000000000000000000000CE -S3154004F8F000000000000000000000000000000000BE -S3154004F90000000000000000000000000000000000AD -S3154004F910000000000000000000000000000000009D -S3154004F920000000000000000000000000000000008D -S3154004F930000000000000000000000000000000007D -S3154004F940000000000000000000000000000000006D -S3154004F950000000000000000000000000000000005D -S3154004F960000000000000000000000000000000004D -S3154004F970000000000000000000000000000000003D -S3154004F980000000000000000000000000000000002D -S3154004F990000000000000000000000000000000001D -S3154004F9A0000000000000000000000000000000000D -S3154004F9B000000000000000000000000000000000FD -S3154004F9C000000000000000000000000000000000ED -S3154004F9D000000000000000000000000000000000DD -S3154004F9E000000000000000000000000000000000CD -S3154004F9F000000000000000000000000000000000BD -S3154004FA0000000000000000000000000000000000AC -S3154004FA10000000000000000000000000000000009C -S3154004FA20000000000000000000000000000000008C -S3154004FA30000000000000000000000000000000007C -S3154004FA40000000000000000000000000000000006C -S3154004FA50000000000000000000000000000000005C -S3154004FA60000000000000000000000000000000004C -S3154004FA70000000000000000000000000000000003C -S3154004FA80000000000000000000000000000000002C -S3154004FA90000000000000000000000000000000001C -S3154004FAA0000000000000000000000000000000000C -S3154004FAB000000000000000000000000000000000FC -S3154004FAC000000000000000000000000000000000EC -S3154004FAD000000000000000000000000000000000DC -S3154004FAE000000000000000000000000000000000CC -S3154004FAF000000000000000000000000000000000BC -S3154004FB0000000000000000000000000000000000AB -S3154004FB10000000000000000000000000000000009B -S3154004FB20000000000000000000000000000000008B -S3154004FB30000000000000000000000000000000007B -S3154004FB40000000000000000000000000000000006B -S3154004FB50000000000000000000000000000000005B -S3154004FB60000000000000000000000000000000004B -S3154004FB70000000000000000000000000000000003B -S3154004FB80000000000000000000000000000000002B -S3154004FB90000000000000000000000000000000001B -S3154004FBA0000000000000000000000000000000000B -S3154004FBB000000000000000000000000000000000FB -S3154004FBC000000000000000000000000000000000EB -S3154004FBD000000000000000000000000000000000DB -S3154004FBE000000000000000000000000000000000CB -S3154004FBF000000000000000000000000000000000BB -S3154004FC0000000000000000000000000000000000AA -S3154004FC10000000000000000000000000000000009A -S3154004FC20000000000000000000000000000000008A -S3154004FC30000000000000000000000000000000007A -S3154004FC40000000000000000000000000000000006A -S3154004FC50000000000000000000000000000000005A -S3154004FC60000000000000000000000000000000004A -S3154004FC70000000000000000000000000000000003A -S3154004FC80000000000000000000000000000000002A -S3154004FC90000000000000000000000000000000001A -S3154004FCA0000000000000000000000000000000000A -S3154004FCB000000000000000000000000000000000FA -S3154004FCC000000000000000000000000000000000EA -S3154004FCD000000000000000000000000000000000DA -S3154004FCE000000000000000000000000000000000CA -S3154004FCF000000000000000000000000000000000BA -S3154004FD0000000000000000000000000000000000A9 -S3154004FD100000000000000000000000000000000099 -S3154004FD200000000000000000000000000000000089 -S3154004FD300000000000000000000000000000000079 -S3154004FD400000000000000000000000000000000069 -S3154004FD500000000000000000000000000000000059 -S3154004FD600000000000000000000000000000000049 -S3154004FD700000000000000000000000000000000039 -S3154004FD800000000000000000000000000000000029 -S3154004FD900000000000000000000000000000000019 -S3154004FDA00000000000000000000000000000000009 -S3154004FDB000000000000000000000000000000000F9 -S3154004FDC000000000000000000000000000000000E9 -S3154004FDD000000000000000000000000000000000D9 -S3154004FDE000000000000000000000000000000000C9 -S3154004FDF000000000000000000000000000000000B9 -S3154004FE0000000000000000000000000000000000A8 -S3154004FE100000000000000000000000000000000098 -S3154004FE200000000000000000000000000000000088 -S3154004FE300000000000000000000000000000000078 -S3154004FE400000000000000000000000000000000068 -S3154004FE500000000000000000000000000000000058 -S3154004FE600000000000000000000000000000000048 -S3154004FE700000000000000000000000000000000038 -S3154004FE800000000000000000000000000000000028 -S3154004FE900000000000000000000000000000000018 -S3154004FEA00000000000000000000000000000000008 -S3154004FEB000000000000000000000000000000000F8 -S3154004FEC000000000000000000000000000000000E8 -S3154004FED000000000000000000000000000000000D8 -S3154004FEE000000000000000000000000000000000C8 -S3154004FEF000000000000000000000000000000000B8 -S3154004FF0000000000000000000000000000000000A7 -S3154004FF100000000000000000000000000000000097 -S3154004FF200000000000000000000000000000000087 -S3154004FF300000000000000000000000000000000077 -S3154004FF400000000000000000000000000000000067 -S3154004FF500000000000000000000000000000000057 -S3154004FF600000000000000000000000000000000047 -S3154004FF700000000000000000000000000000000037 -S3154004FF800000000000000000000000000000000027 -S3154004FF900000000000000000000000000000000017 -S3154004FFA00000000000000000000000000000000007 -S3154004FFB000000000000000000000000000000000F7 -S3154004FFC000000000000000000000000000000000E7 -S3154004FFD000000000000000000000000000000000D7 -S3154004FFE000000000000000000000000000000000C7 -S3154004FFF000000000000000000000000000000000B7 -S3154005000000000002000000030000000000000000A0 -S315400500100000000100000000FFFFFFFE0000000396 -S3154005002055555554FFFFFFFE0000000355555554E1 -S31540050030700FFFFE00000007100249240000000073 -S315400500400000000000000000000000020000000360 -S315400500500000000000000003FFFFFFFEFFFFFFFF5B -S3154005006000000002FFFFFFFD000000000000000049 -S31540050070000000010000000000000000FFFFFFFF38 -S315400500800000000000000001FFFFFFFFFFFFFFFF2C -S31540050090FFFFFFFF00000001FFFFFFFFFFFFFFFE21 -S315400500A00000000300000000FFFFFFFEFFFFFFFD0D -S315400500B000000000000000090000000700000001E4 -S315400500C0FFFFFFF700000002FFFFFFFCFFFFFFF801 -S315400500D000000002FFFFFFFCFFFFFFF8FFFFFFFCEC -S315400500E00000000200000008FFFFFFFCFFFFFFFEC7 -S315400500F0FFFFFFF8FFFFFFF800000001FFFFFFF8D5 -S31540050100FFFFFFF7000000000000000B00000002A3 -S31540050110000000050000002F000000020000001747 -S3154005012000003039000002A700000012FFFF076CEF -S315400501300000004DFFFFFCC600003039FFFFFD59AA -S31540050140FFFFFFEEFFFF076CFFFFFFB30000033A1B -S3154005015000000091FFFFE84100000000FFFFFD841D -S31540050160FFFED02F000000000000F6FA006E498120 -S315400501700000000000000000000000000000000034 -S31540050180FFFFF0000000000200000003000000062B -S3154005019000000002FFFFFFFDFFFFFFFA0000000021 -S315400501A0000000010000000000000000FFFFFFFF07 -S315400501B00000000000000001FFFFFFFFFFFFFFFFFB -S315400501C0FFFFFFFF00000001FFFFFFFFFFFFFFFEF0 -S315400501D000000003FFFFFFFAFFFFFFFEFFFFFFFDE5 -S315400501E000000006000000000000000000000009B5 -S315400501F000000000000000000000000000000000B4 -S31540050200000000000000000100000002000000039D -S315400502100000000000000000000000000000000093 -S31540050220FFFFFFFF00020000000000000000000085 -S3154005023040050228400502284005023040050230A7 -S315400502404005023840050238400502404005024057 -S315400502504005024840050248400502504005025007 -S3154005026040050258400502584005026040050260B7 -S315400502704005026840050268400502704005027067 -S315400502804005027840050278400502804005028017 -S3154005029040050288400502884005029040050290C7 -S315400502A04005029840050298400502A0400502A077 -S315400502B0400502A8400502A8400502B0400502B027 -S315400502C0400502B8400502B8400502C0400502C0D7 -S315400502D0400502C8400502C8400502D0400502D087 -S315400502E0400502D8400502D8400502E0400502E037 -S315400502F0400502E8400502E8400502F0400502F0E7 -S31540050300400502F8400502F8400503004005030094 -S315400503104005030840050308400503104005031042 -S3154005032040050318400503184005032040050320F2 -S3154005033040050328400503284005033040050330A2 -S315400503404005033840050338400503404005034052 -S315400503504005034840050348400503504005035002 -S3154005036040050358400503584005036040050360B2 -S315400503704005036840050368400503704005037062 -S315400503804005037840050378400503804005038012 -S3154005039040050388400503884005039040050390C2 -S315400503A04005039840050398400503A0400503A072 -S315400503B0400503A8400503A8400503B0400503B022 -S315400503C0400503B8400503B8400503C0400503C0D2 -S315400503D0400503C8400503C8400503D0400503D082 -S315400503E0400503D8400503D8400503E0400503E032 -S315400503F0400503E8400503E8400503F0400503F0E2 -S31540050400400503F8400503F840050400400504008F -S31540050410400504084005040840050410400504103D -S3154005042040050418400504184005042040050420ED -S31540050430400504284005042840050430400504309D -S31540050440400504384005043840050440400504404D -S3154005045040050448400504484005045040050450FD -S3154005046040050458400504584005046040050460AD -S31540050470400504684005046840050470400504705D -S31540050480400504784005047840050480400504800D -S3154005049040050488400504884005049040050490BD -S315400504A04005049840050498400504A0400504A06D -S315400504B0400504A8400504A8400504B0400504B01D -S315400504C0400504B8400504B8400504C0400504C0CD -S315400504D0400504C8400504C8400504D0400504D07D -S315400504E0400504D8400504D8400504E0400504E02D -S315400504F0400504E8400504E8400504F0400504F0DD -S31540050500400504F8400504F840050500400505008A -S315400505104005050840050508400505104005051038 -S3154005052040050518400505184005052040050520E8 -S315400505304005052840050528400505304005053098 -S315400505404005053840050538400505404005054048 -S3154005055040050548400505484005055040050550F8 -S3154005056040050558400505584005056040050560A8 -S315400505704005056840050568400505704005057058 -S315400505804005057840050578400505804005058008 -S3154005059040050588400505884005059040050590B8 -S315400505A04005059840050598400505A0400505A068 -S315400505B0400505A8400505A8400505B0400505B018 -S315400505C0400505B8400505B8400505C0400505C0C8 -S315400505D0400505C8400505C8400505D0400505D078 -S315400505E0400505D8400505D8400505E0400505E028 -S315400505F0400505E8400505E8400505F0400505F0D8 -S31540050600400505F8400505F8400506004005060085 -S315400506104005060840050608400506104005061033 -S3154005062040050618400506184005062040050620E3 -S3154005063000000000400506300000000000000000F4 -S31540050640000000000000000200000000000000005D -S31540050650000000000000000000000000000000004F -S31540050660000000000000000000000000000000003F -S31540050670000000000000000000000000000000002F -S31540050680000000000000000000000000000000001F -S31540050690000000000000000000000000000000000F -S315400506A0000000000000000000000000400509941D -S315400506B040050A6040050B2C0000000000000000C4 -S315400506C000000000000000000000000000000000DF -S315400506D00000000000000000000000004001CA8044 -S315400506E000000000000000000000000000000000BF -S315400506F000000000000000000000000000000000AF -S31540050700000000000000000000000000000000009E -S31540050710000000000000000000000000000000008E -S31540050720000000000000000000000000000000007E -S31540050730000000000000000000000000000000006E -S31540050740000000000000000000000000000000005E -S315400507500000000000000001330EABCD1234E66DFB -S31540050760DEEC0005000B0000000000000000000064 -S31540050770000000000000000000000000000000002E -S31540050780000000000000000000000000000000001E -S31540050790000000000000000000000000000000000E -S315400507A000000000000000000000000000000000FE -S315400507B000000000000000000000000000000000EE -S315400507C000000000000000000000000000000000DE -S315400507D000000000000000000000000000000000CE -S315400507E000000000000000000000000000000000BE -S315400507F000000000000000000000000000000000AE -S31540050800000000000000000000000000000000009D -S31540050810000000000000000000000000000000008D -S31540050820000000000000000000000000000000007D -S31540050830000000000000000000000000000000006D -S31540050840000000000000000000000000000000005D -S31540050850000000000000000000000000000000004D -S31540050860000000000000000000000000000000003D -S31540050870000000000000000000000000000000002D -S31540050880000000000000000000000000000000001D -S31540050890000000000000000000000000000000000D -S315400508A000000000000000000000000000000000FD -S315400508B000000000000000000000000000000000ED -S315400508C000000000000000000000000000000000DD -S315400508D000000000000000000000000000000000CD -S315400508E000000000000000000000000000000000BD -S315400508F000000000000000000000000000000000AD -S31540050900000000000000000000000000000000009C -S31540050910000000000000000000000000000000008C -S31540050920000000000000000000000000000000007C -S31540050930000000000000000000000000000000006C -S31540050940000000000000000000000000000000005C -S31540050950000000000000000000000000000000004C -S31540050960000000000000000000000000000000003C -S31540050970000000000000000000000000000000002C -S31540050980000000000000000000000000000000001C -S31540050990000000000000000000000000000000000C -S315400509A000000000000000000000000000000000FC -S315400509B000000000000000000000000000000000EC -S315400509C000000000000000000000000000000000DC -S315400509D000000000000000000000000000000000CC -S315400509E000000000000000000000000000000000BC -S315400509F000000000000000000000000000000000AC -S31540050A00000000000000000000000000000000009B -S31540050A10000000000000000000000000000000008B -S31540050A20000000000000000000000000000000007B -S31540050A30000000000000000000000000000000006B -S31540050A40000000000000000000000000000000005B -S31540050A50000000000000000000000000000000004B -S31540050A60000000000000000000000000000000003B -S31540050A70000000000000000000000000000000002B -S31540050A80000000000000000000000000000000001B -S31540050A90000000000000000000000000000000000B -S31540050AA000000000000000000000000000000000FB -S31540050AB000000000000000000000000000000000EB -S31540050AC000000000000000000000000000000000DB -S31540050AD000000000000000000000000000000000CB -S31540050AE000000000000000000000000000000000BB -S31540050AF000000000000000000000000000000000AB -S31540050B00000000000000000000000000000000009A -S31540050B10000000000000000000000000000000008A -S31540050B20000000000000000000000000000000007A -S31540050B30000000000000000000000000000000006A -S31540050B40000000000000000000000000000000005A -S31540050B50000000000000000000000000000000004A -S31540050B60000000000000000000000000000000003A -S31540050B70000000000000000000000000000000002A -S31540050B80000000000000000000000000000000001A -S31540050B90000000000000000000000000000000000A -S31540050BA000000000000000000000000000000000FA -S31540050BB000000000000000000000000000000000EA -S31540050BC000000000000000000000000000000000DA -S31540050BD000000000000000000000000000000000CA -S31540050BE000000000000000000000000000000000BA -S31540050BF00000000000000000400506A800000000B7 -S31540050C000000000000000000000000000000000099 -S31540050C100000000000000000000000000000000089 -S31540050C200000000000000000000000000000000079 -S31540050C3000000000800001000000000800000007D9 -S31540050C40000000060000000300000000FFFF8AD0F8 -S30940050C5080000310C2 +S31540048C30000000008000010000000008000000075A +S31540048C40000000060000000300000000FFFF8AD079 +S30D40048C5080000310000000003F S70540000000BA diff --git a/designs/leon3-gr-xc3s-1500/testbench.vhd b/designs/leon3-gr-xc3s-1500/testbench.vhd index fefe0e1b..4a8f4cd9 100644 --- a/designs/leon3-gr-xc3s-1500/testbench.vhd +++ b/designs/leon3-gr-xc3s-1500/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -161,22 +161,7 @@ component leon3mp usb_txvalid : out std_ulogic; usb_validh : inout std_ulogic; usb_xcvrsel : out std_ulogic; - usb_vbus : in std_ulogic; - - ata_rstn : out std_logic; - ata_data : inout std_logic_vector(15 downto 0); - ata_da : out std_logic_vector(2 downto 0); - ata_cs0 : out std_logic; - ata_cs1 : out std_logic; - ata_dior : out std_logic; - ata_diow : out std_logic; - ata_iordy : in std_logic; - ata_intrq : in std_logic; - ata_dmarq : in std_logic; - ata_dmack : out std_logic; - --ata_dasp : in std_logic; - ata_csel : out std_logic - + usb_vbus : in std_ulogic ); end component; @@ -267,22 +252,6 @@ signal usb_xcvrsel : std_ulogic; signal usb_vbus : std_ulogic; signal rhvalid : std_ulogic; -signal ata_data : std_logic_vector(15 downto 0); -signal ata_da : std_logic_vector(2 downto 0); -signal ata_cs0 : std_logic; -signal ata_cs1 : std_logic; -signal ata_dior : std_logic; -signal ata_diow : std_logic; -signal ata_iordy : std_logic; -signal ata_intrq : std_logic; -signal ata_dmarq : std_logic; -signal ata_dmack : std_logic; -signal ata_rstn : std_logic; -signal ata_csel : std_logic; - -signal from_ata : ata_out_type := ATAO_RESET_VECTOR; -signal to_ata : ata_in_type := ATAI_RESET_VECTOR; - constant lresp : boolean := false; begin @@ -303,9 +272,6 @@ begin spw_rxdp <= spw_txdp; spw_rxdn <= spw_txdn; spw_rxsp <= spw_txsp; spw_rxsn <= spw_txsn; - ata_iordy <= 'H'; ata_intrq <= 'H'; ata_dmarq <= 'H'; - ata_data <= (others => 'H'); - cpu : leon3mp generic map ( fabtech, memtech, padtech, clktech, disas, dbguart, pclow ) @@ -320,8 +286,7 @@ begin spw_rxsp, spw_rxsn, spw_txdp, spw_txdn, spw_txsp, spw_txsn, usb_clkout, usb_d, usb_linestate, usb_opmode, usb_reset, usb_rxactive, usb_rxerror, usb_rxvalid, usb_suspend, usb_termsel, usb_txready, usb_txvalid, usb_validh, - usb_xcvrsel, usb_vbus, ata_rstn, ata_data, ata_da, ata_cs0, ata_cs1, - ata_dior, ata_diow, ata_iordy, ata_intrq, ata_dmarq, ata_dmack, ata_csel + usb_xcvrsel, usb_vbus ); u0: mt48lc16m16a2 generic map (index => 0, fname => sdramfile) @@ -341,17 +306,6 @@ begin port map (address(romdepth-1 downto 0), data(31 downto 24), romsn(0), writen, oen); - disk: ata_device - generic map( sector_length => 512, log2_size => 14) - port map( clk => clk, rst => rst, d => ata_data, atai => to_ata, - atao => from_ata - ); - to_ata.cs(0)<=ata_cs0; to_ata.cs(1)<=ata_cs1; - to_ata.da<=ata_da; to_ata.dmack<=ata_dmack; - to_ata.dior<=ata_dior; to_ata.diow<=ata_diow; to_ata.reset<=ata_rstn; - ata_dmarq<=from_ata.dmarq; ata_intrq<=from_ata.intrq; ata_iordy<=from_ata.iordy; - - phy0 : if (CFG_GRETH = 1) generate emdio <= 'H'; erxd <= erxdt(3 downto 0); diff --git a/designs/leon3-gr-xc3s-1500/tkconfig.h b/designs/leon3-gr-xc3s-1500/tkconfig.h index 7f8fdc91..a6a39e9a 100644 --- a/designs/leon3-gr-xc3s-1500/tkconfig.h +++ b/designs/leon3-gr-xc3s-1500/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -871,25 +893,6 @@ #define CFG_GRETH_FIFO 8 #endif -#ifndef CONFIG_ATA_ENABLE -#define CONFIG_ATA_ENABLE 0 -#endif - -#ifndef CONFIG_ATAIO -#define CONFIG_ATAIO 0 -#endif - -#ifndef CONFIG_ATAIRQ -#define CONFIG_ATAIRQ 0 -#endif - -#ifndef CONFIG_ATA_MWDMA -#define CONFIG_ATA_MWDMA 0 -#endif - -#ifndef CONFIG_ATA_FIFO -#define CONFIG_ATA_FIFO 8 -#endif #ifndef CONFIG_CAN_ENABLE #define CONFIG_CAN_ENABLE 0 #endif diff --git a/designs/leon3-gr-xc3s-1500/vga_clkgen.vhd b/designs/leon3-gr-xc3s-1500/vga_clkgen.vhd index 7277ec42..b1ee2d14 100644 --- a/designs/leon3-gr-xc3s-1500/vga_clkgen.vhd +++ b/designs/leon3-gr-xc3s-1500/vga_clkgen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-gr-xc6s/.config b/designs/leon3-gr-xc6s/.config index 18c464c0..8a289386 100644 --- a/designs/leon3-gr-xc6s/.config +++ b/designs/leon3-gr-xc6s/.config @@ -42,6 +42,7 @@ CONFIG_HAS_SHARED_GRFPU=y # CONFIG_SYN_TM65GPLUS is not set # CONFIG_SYN_TSMC90 is not set # CONFIG_SYN_UMC is not set +# CONFIG_SYN_KINTEX7 is not set # CONFIG_SYN_SPARTAN2 is not set # CONFIG_SYN_SPARTAN3 is not set # CONFIG_SYN_SPARTAN3E is not set @@ -52,6 +53,7 @@ CONFIG_SYN_SPARTAN6=y # CONFIG_SYN_VIRTEX4 is not set # CONFIG_SYN_VIRTEX5 is not set # CONFIG_SYN_VIRTEX6 is not set +# CONFIG_SYN_VIRTEX7 is not set # CONFIG_SYN_INFER_RAM is not set # CONFIG_SYN_INFER_PADS is not set # CONFIG_SYN_NO_ASYNC is not set @@ -71,6 +73,7 @@ CONFIG_SYN_SPARTAN6=y # CONFIG_CLK_FUSPLL is not set # CONFIG_CLK_LIB18T is not set # CONFIG_CLK_RHUMC is not set +# CONFIG_CLK_CLKPLLE2 is not set # CONFIG_CLK_CLKDLL is not set CONFIG_CLK_DCM=y CONFIG_CLK_MUL=2 @@ -78,12 +81,16 @@ CONFIG_CLK_DIV=2 # CONFIG_PCI_CLKDLL is not set # CONFIG_CLK_NOFB is not set # CONFIG_PCI_SYSCLK is not set -CONFIG_LEON3=y -CONFIG_PROC_NUM=1 # # Processor # +CONFIG_LEON3=y +CONFIG_PROC_NUM=1 +# CONFIG_LEON3_MIN is not set +# CONFIG_LEON3_GP is not set +# CONFIG_LEON3_HP is not set +CONFIG_LEON3_CUSTOM=y # # Integer unit @@ -173,11 +180,13 @@ CONFIG_MMU_REPARRAY=y CONFIG_MMU_I8=y # CONFIG_MMU_I16 is not set # CONFIG_MMU_I32 is not set +# CONFIG_MMU_I64 is not set # CONFIG_MMU_D2 is not set # CONFIG_MMU_D4 is not set CONFIG_MMU_D8=y # CONFIG_MMU_D16 is not set # CONFIG_MMU_D32 is not set +# CONFIG_MMU_D64 is not set CONFIG_MMU_FASTWB=y CONFIG_MMU_PAGE_4K=y # CONFIG_MMU_PAGE_8K is not set @@ -230,7 +239,6 @@ CONFIG_APB_HADDR=800 # CONFIG_DSU_UART=y CONFIG_DSU_JTAG=y -# CONFIG_GRUSB_DCL is not set CONFIG_DSU_ETH=y # CONFIG_DSU_ETHSZ1 is not set # CONFIG_DSU_ETHSZ2 is not set @@ -294,21 +302,11 @@ CONFIG_GRETH_ENABLE=y CONFIG_GRETH_FIFO32=y # CONFIG_GRETH_FIFO64 is not set -# -# IDE Disk controller -# -# CONFIG_ATA_ENABLE is not set - # # CAN # # CONFIG_CAN_ENABLE is not set -# -# USB 2.0 Device Controller -# -# CONFIG_GRUSBDC_ENABLE is not set - # # USB 2.0 Host Controller # @@ -361,6 +359,7 @@ CONFIG_SPIMCTRL=y CONFIG_SPIMCTRL_READCMD=0B # CONFIG_SPIMCTRL_DUMMYBYTE is not set # CONFIG_SPIMCTRL_DUALOUTPUT is not set +CONFIG_SPIMCTRL_OFFSET=0 CONFIG_SPIMCTRL_SCALER=1 CONFIG_SPIMCTRL_ASCALER=8 CONFIG_SPIMCTRL_PWRUPCNT=0 diff --git a/designs/leon3-gr-xc6s/Makefile b/designs/leon3-gr-xc6s/Makefile index 41a4c1c5..7e7c0e9f 100644 --- a/designs/leon3-gr-xc6s/Makefile +++ b/designs/leon3-gr-xc6s/Makefile @@ -3,6 +3,7 @@ include .config GRLIB=../.. TOP=leon3mp BOARD=gr-xc6s +DESIGN=leon3-gr-xc6s include $(GRLIB)/boards/$(BOARD)/Makefile.inc DEVICE=$(PART)-$(PACKAGE)$(SPEED) #UCF=$(GRLIB)/boards/$(BOARD)/$(TOP).ucf @@ -19,6 +20,7 @@ endif ifeq ("$(CONFIG_GRUSB_DCL)","y") UCF+=usb.ucf endif +UCF_PLANAHEAD=$(UCF) QSF=$(GRLIB)/boards/$(BOARD)/$(TOP).qsf EFFORT=high ISEMAPOPT=-timing @@ -31,10 +33,17 @@ VHDLOPTSYNFILES= mig37/mig_37/user_design/rtl/iodrp_controller.vhd \ mig37/mig_37/user_design/rtl/mcb_soft_calibration_top.vhd \ mig37/mig_37/user_design/rtl/memc3_infrastructure.vhd \ mig37/mig_37/user_design/rtl/memc3_wrapper.vhd \ - mig37/mig_37/user_design/rtl/mig_37.vhd -VHDLSYNFILES= \ - config.vhd rgmii.vhd svga2ch7301c.vhd ahbrom.vhd \ - ahb2mig_grxc6s_2p.vhd vga_clkgen.vhd leon3mp.vhd + mig37/mig_37/user_design/rtl/mig_37.vhd \ + mig39/mig_39/user_design/rtl/iodrp_controller.vhd \ + mig39/mig_39/user_design/rtl/iodrp_mcb_controller.vhd \ + mig39/mig_39/user_design/rtl/mcb_raw_wrapper.vhd \ + mig39/mig_39/user_design/rtl/mcb_soft_calibration.vhd \ + mig39/mig_39/user_design/rtl/mcb_soft_calibration_top.vhd \ + mig39/mig_39/user_design/rtl/memc3_infrastructure.vhd \ + mig39/mig_39/user_design/rtl/memc3_wrapper.vhd \ + mig39/mig_39/user_design/rtl/mig_39.vhd \ + config.vhd svga2ch7301c.vhd ahbrom.vhd \ + ahb2mig_grxc6s_2p.vhd vga_clkgen.vhd usb_spartan6_pll.vhd leon3mp.vhd VHDLSIMFILES=testbench.vhd SIMTOP=testbench #SDCFILE=$(GRLIB)/boards/$(BOARD)/default.sdc @@ -42,20 +51,19 @@ SDCFILE=default.sdc BITGEN=$(GRLIB)/boards/$(BOARD)/default.ut CLEAN=soft-clean VCOMOPT=-explicit -TECHLIBS = secureip unisim - +TECHLIBS = unisim secureip +VSIMOPT= -gdisas=1 -i -t ps -novopt +notimingchecks $(SIMTOP) LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip cypress ihp gleichmann gsi fmf spansion micron + tmtc openchip cypress ihp gsi fmf spansion micron DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci ambatest ddr \ - leon4 leon4b64 l2cache gr1553b iommu haps ascs slink coremp7 pwm \ - ac97 hcan + leon4 leon4v0 l2cache gr1553b iommu ascs slink pwm \ + hcan FILEADD = MCB.vhd FILESKIP = grcan.vhd include $(GRLIB)/bin/Makefile include $(GRLIB)/software/leon3/Makefile - ################## project specific targets ########################## mig: @@ -65,3 +73,13 @@ mig: migclean: -rm -rf mig37/mig_37* mig37/tmp +mig39: + coregen -b mig39/mig.xco -p mig39 + patch -p0 < mig_patch.txt + patch -p0 < memc3_infrastructure_patch.txt + patch -p0 < mcb_soft_calibration_patch.txt + +mig39clean: + -rm -rf mig39/mig_39* mig39/tmp + +.PHONY : mig39 mig39clean \ No newline at end of file diff --git a/designs/leon3-gr-xc6s/README.txt b/designs/leon3-gr-xc6s/README.txt index ea498cbe..a2c7a880 100644 --- a/designs/leon3-gr-xc6s/README.txt +++ b/designs/leon3-gr-xc6s/README.txt @@ -10,16 +10,27 @@ interface. The MIG source code cannot be distributed due to the prohibitive Xilinx license, so the MIG must be re-generated with coregen before simulation and synthesis can be done. -To generate the MIG and install tne Xilinx unisim simulation +To generate the MIG using ISE13 and install the Xilinx unisim simulation library, do as follows: make mig make install-secureip -This will ONLY work with ISE-13 installed, and the XILINX variable -properly set in the shell. To synthesize the design, do +To generate the MIG using ISE14 and install the Xilinx unisim simulation +library, do as follows: + + make mig39 + make install-secureip + +This will ONLY work with correct version of ISE installed, and the XILINX variable +properly set in the shell. For ISE13 it is recommened to use the 'ise' make target +and for ISE14 to use the 'planAhead' target. To synthesize the design, do + + make ise (ISE13) + +or - make ise + make planAhead (ISE14) and then @@ -27,6 +38,12 @@ and then to program the FPGA. +To simulate and run systest.c on the Leon design using the memory +controller from Xilinx use the make targets: + + make soft + make vsim-launch + Design specifics ---------------- @@ -64,7 +81,7 @@ Design specifics i2c dvi init_l4itx_vga * The JTAG DSU interface is enabled and accesible via the USB/JTAG port. - Start grmon with -xilusb to connect. + Start grmon with -xilusb or "-eth -ip 192.168.0.59" to connect. * The four LEDS (D1 - D4) are mapped as follows: @@ -72,188 +89,145 @@ Design specifics D2: Cpu halted due to error D4:D3 Ethernet speed. 00=10M, 01=100M, 10=1G -* Output from GRMON is: - -$ grmon -xilusb -u -nb - - GRMON LEON debug monitor v1.1.49 professional version - - Copyright (C) 2004-2011 Aeroflex Gaisler - all rights reserved. - For latest updates, go to http://www.gaisler.com/ - Comments or bug-reports to support@gaisler.com - - This debug version will expire on 13/3/2012 - Xilinx cable: Cable type/rev : 0x3 - JTAG chain: xc6slx75 - - GRLIB build version: 4108 - - initialising ....................... - detected frequency: 50 MHz - - Component Vendor - LEON3 SPARC V8 Processor Gaisler Research - AHB Debug UART Gaisler Research - AHB Debug JTAG TAP Gaisler Research - GR Ethernet MAC Gaisler Research - GRSPW2 Spacewire Link Gaisler Research - GRSPW2 Spacewire Link Gaisler Research - GRSPW2 Spacewire Link Gaisler Research - LEON2 Memory Controller European Space Agency - AHB/APB Bridge Gaisler Research - LEON3 Debug Support Unit Gaisler Research - Xilinx MIG DDR2 controller Gaisler Research - AHB/APB Bridge Gaisler Research - Generic APB UART Gaisler Research - Multi-processor Interrupt Ctrl Gaisler Research - Modular Timer Unit Gaisler Research - PS/2 interface Gaisler Research - PS/2 interface Gaisler Research - SVGA Controller Gaisler Research - AMBA Wrapper for OC I2C-master Gaisler Research - General purpose I/O port Gaisler Research - General purpose I/O port Gaisler Research - General purpose I/O port Gaisler Research - AHB status register Gaisler Research - - Use command 'info sys' to print a detailed report of attached cores - -grlib> inf sys -00.01:003 Gaisler Research LEON3 SPARC V8 Processor (ver 0x0) - ahb master 0 -01.01:007 Gaisler Research AHB Debug UART (ver 0x0) - ahb master 1 - apb: 80000700 - 80000800 - baud rate 115200, ahb frequency 50.00 -02.01:01c Gaisler Research AHB Debug JTAG TAP (ver 0x1) - ahb master 2 -03.01:01d Gaisler Research GR Ethernet MAC (ver 0x0) - ahb master 3, irq 12 - apb: 80000e00 - 80000f00 - Device index: dev0 - edcl ip 192.168.0.51, buffer 2 kbyte -04.01:029 Gaisler Research GRSPW2 Spacewire Link (ver 0x0) - ahb master 4, irq 10 - apb: 80100a00 - 80100b00 - Number of ports: 1 -05.01:029 Gaisler Research GRSPW2 Spacewire Link (ver 0x0) - ahb master 5, irq 11 - apb: 80100b00 - 80100c00 - Number of ports: 1 -06.01:029 Gaisler Research GRSPW2 Spacewire Link (ver 0x0) - ahb master 6, irq 12 - apb: 80100c00 - 80100d00 - Number of ports: 1 -00.04:00f European Space Agency LEON2 Memory Controller (ver 0x1) - ahb: 00000000 - 20000000 - apb: 80000000 - 80000100 - 8-bit prom @ 0x00000000 -01.01:006 Gaisler Research AHB/APB Bridge (ver 0x0) - ahb: 80000000 - 80100000 -02.01:004 Gaisler Research LEON3 Debug Support Unit (ver 0x1) - ahb: 90000000 - a0000000 - AHB trace 256 lines, 32-bit bus, stack pointer 0x47fffff0 - CPU#0 win 8, hwbp 2, itrace 256, V8 mul/div, srmmu, lddel 1, GRFPU - icache 2 * 8 kbyte, 32 byte/line lru - dcache 2 * 4 kbyte, 16 byte/line lru -04.01:06b Gaisler Research Xilinx MIG DDR2 controller (ver 0x0) - ahb: 40000000 - 48000000 - apb: 80100000 - 80100100 - DDR2: 128 Mbyte -0d.01:006 Gaisler Research AHB/APB Bridge (ver 0x0) - ahb: 80100000 - 80200000 -01.01:00c Gaisler Research Generic APB UART (ver 0x1) - irq 2 - apb: 80000100 - 80000200 - baud rate 38343, DSU mode (FIFO debug) -02.01:00d Gaisler Research Multi-processor Interrupt Ctrl (ver 0x3) - apb: 80000200 - 80000300 -03.01:011 Gaisler Research Modular Timer Unit (ver 0x0) - irq 8 - apb: 80000300 - 80000400 - 8-bit scaler, 2 * 32-bit timers, divisor 50 -04.01:060 Gaisler Research PS/2 interface (ver 0x2) - irq 4 - apb: 80000400 - 80000500 -05.01:060 Gaisler Research PS/2 interface (ver 0x2) - irq 5 - apb: 80000500 - 80000600 -06.01:063 Gaisler Research SVGA Controller (ver 0x0) - apb: 80000600 - 80000700 - clk0: 50.00 MHz -09.01:028 Gaisler Research AMBA Wrapper for OC I2C-master (ver 0x2) - irq 14 - apb: 80000900 - 80000a00 -0a.01:01a Gaisler Research General purpose I/O port (ver 0x1) - apb: 80000a00 - 80000b00 -0b.01:01a Gaisler Research General purpose I/O port (ver 0x1) - apb: 80000b00 - 80000c00 -0c.01:01a Gaisler Research General purpose I/O port (ver 0x1) - apb: 80000c00 - 80000d00 -0f.01:052 Gaisler Research AHB status register (ver 0x0) - irq 7 - apb: 80000f00 - 80001000 -grlib> fla - - Intel-style 8-bit flash on D[31:24] - - Manuf. Intel - Device MT28F640J3 - - Device ID 7c86ffff9e01734a - User ID ffffffffffffffff - - - 1 x 8 Mbyte = 8 Mbyte total @ 0x00000000 - - - CFI info - flash family : 1 - flash size : 64 Mbit - erase regions : 1 - erase blocks : 64 - write buffer : 32 bytes - region 0 : 64 blocks of 128 Kbytes - -grlib> lo ~/examples/dhry412 -section: .text at 0x40000000, size 53296 bytes -section: .data at 0x4000d030, size 2764 bytes -total size: 56060 bytes (888.2 kbit/s) -read 262 symbols -entry point: 0x40000000 -grlib> run +* If the GRUSBHC USB host controller is included then close attention must + be paid to the timing reports. The ULPI interface timing requirements + may be very difficult to meet with this FPGA device. + +* This template design previously contained the USB device controller. + Due to the timing of the FPGA, the USB transceiver having an IO + voltage of 1.8V and the design of the USB device core it is + unlikely that the required timing for the USB device interface can + be reached. + The kit is not suitable for use with the USBDC or USBDCL IP cores. + +* Example output from GRMON is: + +$ grmon -eth -ip 192.168.0.59 -nb -u + + GRMON2 LEON debug monitor v2.0.32 internal version + + Copyright (C) 2012 Aeroflex Gaisler - All rights reserved. + For latest updates, go to http://www.gaisler.com/ + Comments or bug-reports to support@gaisler.com + + +Parsing -eth +Parsing -ip 192.168.0.59 +Parsing -nb +Parsing -u + +Commands missing help: + debug + + Ethernet startup... + GRLIB build version: 4121 + Detected frequency: 50 MHz + + Component Vendor + LEON3 SPARC V8 Processor Aeroflex Gaisler + AHB Debug UART Aeroflex Gaisler + JTAG Debug Link Aeroflex Gaisler + GR Ethernet MAC Aeroflex Gaisler + LEON2 Memory Controller European Space Agency + AHB/APB Bridge Aeroflex Gaisler + LEON3 Debug Support Unit Aeroflex Gaisler + Xilinx MIG DDR2 Controller Aeroflex Gaisler + AHB/APB Bridge Aeroflex Gaisler + Generic UART Aeroflex Gaisler + Multi-processor Interrupt Ctrl. Aeroflex Gaisler + Modular Timer Unit Aeroflex Gaisler + PS2 interface Aeroflex Gaisler + PS2 interface Aeroflex Gaisler + SVGA frame buffer Aeroflex Gaisler + AMBA Wrapper for OC I2C-master Aeroflex Gaisler + General Purpose I/O port Aeroflex Gaisler + General Purpose I/O port Aeroflex Gaisler + General Purpose I/O port Aeroflex Gaisler + AHB Status Register Aeroflex Gaisler + + Use command 'info sys' to print a detailed report of attached cores + +grmon2> info sys + cpu0 Aeroflex Gaisler LEON3 SPARC V8 Processor + AHB Master 0 + ahbuart0 Aeroflex Gaisler AHB Debug UART + AHB Master 1 + APB: 80000700 - 80000800 + Baudrate 115200, AHB frequency 50.00 MHz + ahbjtag0 Aeroflex Gaisler JTAG Debug Link + AHB Master 2 + greth0 Aeroflex Gaisler GR Ethernet MAC + AHB Master 3 + APB: 80000E00 - 80000F00 + IRQ: 12 + edcl ip 192.168.0.59, buffer 16 kbyte + mctrl0 European Space Agency LEON2 Memory Controller + AHB: 00000000 - 20000000 + APB: 80000000 - 80000100 + 8-bit prom @ 0x00000000 + apbmst0 Aeroflex Gaisler AHB/APB Bridge + AHB: 80000000 - 80100000 + dsu0 Aeroflex Gaisler LEON3 Debug Support Unit + AHB: 90000000 - A0000000 + AHB trace: 256 lines, 32-bit bus + CPU0: win 8, hwbp 2, itrace 256, V8 mul/div, srmmu, lddel 1 + stack pointer 0x47fffff0 + icache 2 * 8 kB, 32 B/line rnd + dcache 2 * 4 kB, 16 B/line rnd + mig0 Aeroflex Gaisler Xilinx MIG DDR2 Controller + AHB: 40000000 - 48000000 + APB: 80100000 - 80100100 + SDRAM: 128 Mbyte + apbmst1 Aeroflex Gaisler AHB/APB Bridge + AHB: 80100000 - 80200000 + uart0 Aeroflex Gaisler Generic UART + APB: 80000100 - 80000200 + IRQ: 2 + Baudrate 38343 + irqmp0 Aeroflex Gaisler Multi-processor Interrupt Ctrl. + APB: 80000200 - 80000300 + gptimer0 Aeroflex Gaisler Modular Timer Unit + APB: 80000300 - 80000400 + IRQ: 8 + 8-bit scalar, 2 * 32-bit timers, divisor 50 + ps2ifc0 Aeroflex Gaisler PS2 interface + APB: 80000400 - 80000500 + IRQ: 4 + ps2ifc1 Aeroflex Gaisler PS2 interface + APB: 80000500 - 80000600 + IRQ: 5 + svga0 Aeroflex Gaisler SVGA frame buffer + APB: 80000600 - 80000700 + clk0: 50.00 MHz clk1: inf MHz clk2: inf MHz clk3: inf MHz + i2cmst0 Aeroflex Gaisler AMBA Wrapper for OC I2C-master + APB: 80000900 - 80000A00 + IRQ: 14 + gpio0 Aeroflex Gaisler General Purpose I/O port + APB: 80000A00 - 80000B00 + gpio1 Aeroflex Gaisler General Purpose I/O port + APB: 80000B00 - 80000C00 + gpio2 Aeroflex Gaisler General Purpose I/O port + APB: 80000C00 - 80000D00 + ahbstat0 Aeroflex Gaisler AHB Status Register + APB: 80000F00 - 80001000 + IRQ: 7 + +grmon2> lo /usr/local32/apps/bench/leon3/dhry.leon3 + 40000000 .text 54.7kB / 54.7kB [===============>] 100% + 4000DAF0 .data 2.7kB / 2.7kB [===============>] 100% + Total size: 57.44kB (18.10Mbit/s) + Entry point 0x40000000 + Image /usr/local32/apps/bench/leon3/dhry.leon3 loaded + +grmon2> run Execution starts, 1000000 runs through Dhrystone -Total execution time: 7.3 s -Microseconds for one run through Dhrystone: 7.3 -Dhrystones per Second: 137739.6 - -Dhrystones MIPS : 78.4 - - -Program exited normally. -grlib> lo ~/ibm/src/bench/leonbench/coremark.exe -section: .text at 0x40000000, size 102544 bytes -section: .data at 0x40019090, size 2788 bytes -total size: 105332 bytes (894.7 kbit/s) -read 272 symbols -entry point: 0x40000000 -grlib> run -2K performance run parameters for coremark. -CoreMark Size : 666 -Total ticks : 19975906 -Total time (secs): 19.975906 -Iterations/Sec : 100.120615 -Iterations : 2000 -Compiler version : GCC4.4.2 -Compiler flags : -O3 -mv8 -funroll-loops -fgcse-sm -combine -DPERFORMANCE_RUN=1 -mcpu=v8 -msoft-float -Memory location : STACK -seedcrc : 0xe9f5 -[0]crclist : 0xe714 -[0]crcmatrix : 0x1fd7 -[0]crcstate : 0x8e3a -[0]crcfinal : 0x4983 -Correct operation validated. See readme.txt for run and reporting rules. -CoreMark 1.0 : 100.120615 / GCC4.4.2 -O3 -mv8 -funroll-loops -fgcse-sm -combine -DPERFORMANCE_RUN=1 -mcpu=v8 -msoft-float / Stack - -Program exited normally. -grlib> +Total execution time: 6.2 s +Microseconds for one run through Dhrystone: 6.2 +Dhrystones per Second: 161800.7 + +Dhrystones MIPS : 92.1 + + + Program exited normally. + +grmon2> diff --git a/designs/leon3-gr-xc6s/ahb2mig_grxc6s_2p.vhd b/designs/leon3-gr-xc6s/ahb2mig_grxc6s_2p.vhd index ad099557..8b6ef55f 100644 --- a/designs/leon3-gr-xc6s/ahb2mig_grxc6s_2p.vhd +++ b/designs/leon3-gr-xc6s/ahb2mig_grxc6s_2p.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -56,10 +56,12 @@ entity ahb2mig_grxc6s_2p is mcb3_dram_cke : out std_logic; mcb3_dram_dm : out std_logic; mcb3_dram_udqs : inout std_logic; + mcb3_dram_udqs_n : inout std_logic; mcb3_rzq : inout std_logic; mcb3_zio : inout std_logic; mcb3_dram_udm : out std_logic; mcb3_dram_dqs : inout std_logic; + mcb3_dram_dqs_n : inout std_logic; mcb3_dram_ck : out std_logic; mcb3_dram_ck_n : out std_logic; @@ -72,13 +74,13 @@ entity ahb2mig_grxc6s_2p is calib_done : out std_logic; test_error : out std_logic; - rst_n_syn : in std_logic; + rst_n_syn : out std_logic; rst_n_async : in std_logic; - clk_amba : in std_logic; + clk_amba : out std_logic; clk_mem_n : in std_logic; clk_mem_p : in std_logic; clk_125 : out std_logic; - clkout5 : out std_logic + clk_100 : out std_logic ); end ; @@ -124,7 +126,7 @@ generic c3_clk0 : out std_logic; c3_rst0 : out std_logic; clk_125 : out std_logic; -- 125 MHz for RGMII - clkout5 : out std_logic; -- Extra clock + clk_100 : out std_logic; -- Extra clock mcb3_dram_dqs : inout std_logic; mcb3_dram_dqs_n : inout std_logic; mcb3_dram_ck : out std_logic; @@ -252,10 +254,19 @@ signal r, rin : reg_type; signal r2, r2in : reg2_type; signal i : mcb_type; signal p2 : p2_if_type; +signal clk_amba_i : std_logic; +signal rst_n_syn_i : std_logic; +signal rst_syn : std_logic; +signal calib_done_i : std_logic; begin - comb: process( rst_n_syn, r, ahbsi, i ) + clk_amba <= clk_amba_i; + rst_n_syn <= rst_n_syn_i and calib_done_i; + rst_n_syn_i <= not rst_syn; + calib_done <= calib_done_i; + + comb: process( rst_n_syn_i, r, ahbsi, i ) variable v : reg_type; variable wmask : std_logic_vector(3 downto 0); variable wr_en : std_logic; @@ -377,7 +388,7 @@ begin rd_en := '1'; v.rd_cnt := r.rd_cnt - 1; end if; - if rst_n_syn = '0' then + if rst_n_syn_i = '0' then v.rd_cnt := "000000"; v.bstate := idle; v.hready := '1'; end if; @@ -402,22 +413,21 @@ begin ahbso.hirq <= (others => '0'); ahbso.hindex <= hindex; ahbso.hsplit <= (others => '0'); - ahbso.hcache <= '1'; apbo.pindex <= pindex; apbo.pconfig <= pconfig; apbo.pirq <= (others => '0'); - regs : process(clk_amba) + regs : process(clk_amba_i) begin - if rising_edge(clk_amba) then + if rising_edge(clk_amba_i) then r <= rin; end if; end process; port2 : if vgamst /= 0 generate - comb2: process( rst_n_syn, r2, ahbmo, p2 ) + comb2: process( rst_n_syn_i, r2, ahbmo, p2 ) variable v2 : reg2_type; variable cmd_en : std_logic; variable rd_en : std_logic; @@ -465,7 +475,7 @@ begin end if; v2.haddr(1 downto 0) := "00"; - if rst_n_syn = '0' then + if rst_n_syn_i = '0' then v2.rd_cnt := "000000"; v2.bstate := idle; v2.hready := '1'; end if; @@ -482,16 +492,16 @@ begin ahbmi.hresp <= "00"; ahbmi.hgrant <= (others => '1'); ahbmi.hready <= r2.hready; - ahbmi.hcache <= '1'; ahbmi.testen <= '0'; ahbmi.testrst <= '0'; ahbmi.scanen <= '0'; ahbmi.testoen <= '0'; ahbmi.hirq <= (others => '0'); - - regs : process(clk_amba) + ahbmi.testin <= (others => '0'); + + regs : process(clk_amba_i) begin - if rising_edge(clk_amba) then + if rising_edge(clk_amba_i) then r2 <= r2in; end if; end process; @@ -535,6 +545,7 @@ begin mcb3_dram_cke => mcb3_dram_cke, mcb3_dram_dm => mcb3_dram_dm, mcb3_dram_udqs => mcb3_dram_udqs, + mcb3_dram_udqs_n => mcb3_dram_udqs_n, mcb3_rzq => mcb3_rzq, mcb3_zio => mcb3_zio, mcb3_dram_udm => mcb3_dram_udm, @@ -542,22 +553,23 @@ begin -- c3_sys_clk_n => clk_mem_n, c3_sys_clk => clk_mem_p, c3_sys_rst_n => rst_n_async, - c3_calib_done => calib_done, - c3_clk0 => open, - c3_rst0 => open, + c3_calib_done => calib_done_i, + c3_clk0 => clk_amba_i, + c3_rst0 => rst_syn, clk_125 => clk_125, - clkout5 => clkout5, + clk_100 => clk_100, mcb3_dram_dqs => mcb3_dram_dqs, + mcb3_dram_dqs_n => mcb3_dram_dqs_n, mcb3_dram_ck => mcb3_dram_ck, mcb3_dram_ck_n => mcb3_dram_ck_n, - c3_p0_cmd_clk => clk_amba, + c3_p0_cmd_clk => clk_amba_i, c3_p0_cmd_en => i.cmd_en, c3_p0_cmd_instr => i.cmd_instr, c3_p0_cmd_bl => i.cmd_bl, c3_p0_cmd_byte_addr => i.cmd_byte_addr, c3_p0_cmd_empty => i.cmd_empty, c3_p0_cmd_full => i.cmd_full, - c3_p0_wr_clk => clk_amba, + c3_p0_wr_clk => clk_amba_i, c3_p0_wr_en => i.wr_en, c3_p0_wr_mask => i.wr_mask, c3_p0_wr_data => i.wr_data, @@ -566,7 +578,7 @@ begin c3_p0_wr_count => i.wr_count, c3_p0_wr_underrun => i.wr_underrun, c3_p0_wr_error => i.wr_error, - c3_p0_rd_clk => clk_amba, + c3_p0_rd_clk => clk_amba_i, c3_p0_rd_en => i.rd_en, c3_p0_rd_data => i.rd_data, c3_p0_rd_full => i.rd_full, @@ -574,14 +586,14 @@ begin c3_p0_rd_count => i.rd_count, c3_p0_rd_overflow => i.rd_overflow, c3_p0_rd_error => i.rd_error, - c3_p2_cmd_clk => clk_amba, + c3_p2_cmd_clk => clk_amba_i, c3_p2_cmd_en => p2.cmd_en, c3_p2_cmd_instr => p2.cmd_instr, c3_p2_cmd_bl => p2.cmd_bl, c3_p2_cmd_byte_addr => r2.haddr(29 downto 0), c3_p2_cmd_empty => p2.cmd_empty, c3_p2_cmd_full => p2.cmd_full, - c3_p2_rd_clk => clk_amba, + c3_p2_rd_clk => clk_amba_i, c3_p2_rd_en => p2.rd_en, c3_p2_rd_data => p2.rd_data, c3_p2_rd_full => p2.rd_full, diff --git a/designs/leon3-gr-xc6s/ahbrom.vhd b/designs/leon3-gr-xc6s/ahbrom.vhd index f7c441dc..ac26c7b2 100644 --- a/designs/leon3-gr-xc6s/ahbrom.vhd +++ b/designs/leon3-gr-xc6s/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-gr-xc6s/config.help b/designs/leon3-gr-xc6s/config.help index eaeb0866..ddfdb388 100644 --- a/designs/leon3-gr-xc6s/config.help +++ b/designs/leon3-gr-xc6s/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -664,13 +698,6 @@ CONFIG_DSU_JTAG Amontech JTAG key, various FTDI chip based USB/JTAG devices, and Actel Flash Pro 3/4 cable. -USB DSU enable -CONFIG_GRUSB_DCL - Say Y to enable the USB Debug Communication Link - -CONFIG_GRUSB_DCL_ULPI - Select the interface of the USB transceiver that the USBDCL will be - connected to. Ethernet DSU enable CONFIG_DSU_ETH Say Y to enable the Ethernet Debug Communication Link (EDCL). The link @@ -924,32 +951,6 @@ CONFIG_GRETH_FIFO4 size of the FIFO depth. -ATA interface enable -CONFIG_ATA_ENABLE - Say Y here to enable the ATA interace from OpenCores. The core has one - AHB slave interface for accessing all control registers. - -ATA register address -CONFIG_ATAIO - The control registers of the ATA core occupy 256 byte, and are - mapped in the AHB bus I/O area (0xFFF00000 - 0xFFFFF000). This setting - defines at which address in the I/O area the registers appear (HADDR[19:8]). - -ATA interrupt -CONFIG_ATAIRQ - Defines which interrupt number the ATA core will generate. - -ATA DMA support -CONFIG_ATA_MWDMA - Say yes here to enable IDE multi-word DMA support (MWDMA). - This will increase transfer rate compared to the PIO mode, - but increase area with approxiamtely 5,000 gates. Note that - DMA is not supported by legacy CF cards, so it makes no sense - to enable it on CF card sockets. - -ATA DMA FIFO depth -CONFIG_ATA_FIFO - Defines the DMA FIFO depth. Choose 8 or 16. CAN interface enable CONFIG_CAN_ENABLE Say Y here to enable one or more CAN cores. The cores has one @@ -992,161 +993,6 @@ CONFIG_CAN_SYNCRST when the target library does not implement registers with async reset. Unless you know what you are doing, say N. -Gaisler Research USB 2.0 Device Controller enable -CONFIG_GRUSBDC_ENABLE - Say Y here to enable the Gaisler Research USB 2.0 Device Controller. - The core can be configured with 1-16 IN endpoints and 1-16 OUT - endpoints (including endpoint zero). The core use an AHB slave - interface for configuration. For data transfers the the user have the - option of adding an AHB master interface for DMA, or to use the slave - interface. The core supports 8-bit and 16-bit UTMI/UTMI+ and - ULPI interfaces towards the USB transceiver. - -CONFIG_GRUSBDC_AHBMST - Say Y here to enable the AHB master interface and DMA. When master - interface is disabled all data transfers are handled with the AHB - slave interface. - -CONFIG_GRUSBDC_ULPI - Select the interface of the USB transceiver that the core will be - connected to. - -CONFIG_GRUSBDC_NEPI - Select number of IN endpoints (including endpoint zero). - Valid range is 1 - 16. - -CONFIG_GRUSBDC_NEPO - Select number of OUT endpoints (including endpoint zero). - Valid range is 1 - 16. - -CONFIG_GRUSBDC_I0 - Select buffer size (in bytes) for IN endpoint 0. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O0 - Select buffer size (in bytes) for OUT endpoint 0. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I1 - Select buffer size (in bytes) for IN endpoint 1. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O1 - Select buffer size (in bytes) for OUT endpoint 1. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I2 - Select buffer size (in bytes) for IN endpoint 2. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O2 - Select buffer size (in bytes) for OUT endpoint 2. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I3 - Select buffer size (in bytes) for IN endpoint 3. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O3 - Select buffer size (in bytes) for OUT endpoint 3. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I4 - Select buffer size (in bytes) for IN endpoint 4. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O4 - Select buffer size (in bytes) for OUT endpoint 4. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I5 - Select buffer size (in bytes) for IN endpoint 5. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O5 - Select buffer size (in bytes) for OUT endpoint 5. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I6 - Select buffer size (in bytes) for IN endpoint 6. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O6 - Select buffer size (in bytes) for OUT endpoint 6. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I7 - Select buffer size (in bytes) for IN endpoint 7. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O7 - Select buffer size (in bytes) for OUT endpoint 7. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I8 - Select buffer size (in bytes) for IN endpoint 8. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O8 - Select buffer size (in bytes) for OUT endpoint 8. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I9 - Select buffer size (in bytes) for IN endpoint 9. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O9 - Select buffer size (in bytes) for OUT endpoint 9. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I10 - Select buffer size (in bytes) for IN endpoint 10. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O10 - Select buffer size (in bytes) for OUT endpoint 10. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I11 - Select buffer size (in bytes) for IN endpoint 11. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O11 - Select buffer size (in bytes) for OUT endpoint 11. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I12 - Select buffer size (in bytes) for IN endpoint 12. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O12 - Select buffer size (in bytes) for OUT endpoint 12. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I13 - Select buffer size (in bytes) for IN endpoint 13. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O13 - Select buffer size (in bytes) for OUT endpoint 13. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I14 - Select buffer size (in bytes) for IN endpoint 14. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O14 - Select buffer size (in bytes) for OUT endpoint 14. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_I15 - Select buffer size (in bytes) for IN endpoint 15. - Valid range is 8 - 3072. - -CONFIG_GRUSBDC_O15 - Select buffer size (in bytes) for OUT endpoint 15. - Valid range is 8 - 3072. - Gaisler USB 2.0 Host Controller enable CONFIG_GRUSBHC_ENABLE Say Y here to enable the Gaisler Research USB 2.0 Host Controller. @@ -1533,7 +1379,7 @@ CONFIG_SPIMCTRL_SDCARD Read command CONFIG_SPIMCTRL_READCMD - Read instruction for SPI memory device + Read instruction for SPI memory device (hex). Dummy byte CONFIG_SPIMCTRL_DUMMYBYTE @@ -1543,6 +1389,10 @@ Dual output CONFIG_SPIMCTRL_DUALOUTPUT Memory device supports dual output when reading data. +Address offset +CONFIG_SPIMCTRL_OFFSET + Offset that will be added by core on SPI memory address (hex). + Clock scaler CONFIG_SPIMCTRL_SCALER Selects the divisor used when dividing the system clock to produce diff --git a/designs/leon3-gr-xc6s/config.in b/designs/leon3-gr-xc6s/config.in index 6912e744..7f03c805 100644 --- a/designs/leon3-gr-xc6s/config.in +++ b/designs/leon3-gr-xc6s/config.in @@ -34,7 +34,6 @@ mainmenu_option next_comment comment 'Debug Link ' source lib/gaisler/uart/dcom.in source lib/gaisler/jtag/jtag.in - source lib/gaisler/usb/grusb_dcl.in source lib/gaisler/net/edcl.in endmenu @@ -60,20 +59,11 @@ comment 'Peripherals ' source lib/gaisler/greth/greth.in endmenu - mainmenu_option next_comment - comment 'IDE Disk controller ' - source lib/gaisler/ata/ata.in - endmenu - mainmenu_option next_comment comment 'CAN ' source lib/gaisler/can/can_mc.in endmenu - mainmenu_option next_comment - comment 'USB 2.0 Device Controller ' - source lib/gaisler/usb/grusbdc.in - endmenu mainmenu_option next_comment comment 'USB 2.0 Host Controller ' source lib/gaisler/usb/grusbhc.in diff --git a/designs/leon3-gr-xc6s/config.vhd b/designs/leon3-gr-xc6s/config.vhd index edc2ae38..fa08d9b8 100644 --- a/designs/leon3-gr-xc6s/config.vhd +++ b/designs/leon3-gr-xc6s/config.vhd @@ -1,6 +1,8 @@ + + ----------------------------------------------------------------------------- -- LEON3 Demonstration design test bench configuration -- Copyright (C) 2009 Aeroflex Gaisler @@ -95,10 +97,6 @@ package config is constant CFG_AHB_UART : integer := 1; -- JTAG based DSU interface constant CFG_AHB_JTAG : integer := 1; --- USB DSU - constant CFG_GRUSB_DCL : integer := 0; - constant CFG_GRUSB_DCL_UIFACE : integer := 1; - constant CFG_GRUSB_DCL_DW : integer := 8; -- Ethernet DSU constant CFG_DSU_ETH : integer := 1 + 0 + 0; constant CFG_ETH_BUF : integer := 16; @@ -151,7 +149,6 @@ package config is constant CFG_AHBRODDR : integer := 16#000#; constant CFG_ROMADDR : integer := 16#000#; constant CFG_ROMMASK : integer := 16#E00# + 16#000#; - -- AHB RAM constant CFG_AHBRAMEN : integer := 0; constant CFG_AHBRSZ : integer := 1; @@ -162,13 +159,6 @@ package config is constant CFG_GRETH1G : integer := 0; constant CFG_ETH_FIFO : integer := 32; --- ATA interface - constant CFG_ATA : integer := 0; - constant CFG_ATAIO : integer := 16#0#; - constant CFG_ATAIRQ : integer := 0; - constant CFG_ATADMA : integer := 0; - constant CFG_ATAFIFO : integer := 8; - -- CAN 2.0 interface constant CFG_CAN : integer := 0; constant CFG_CAN_NUM : integer := 1; @@ -178,45 +168,6 @@ package config is constant CFG_CAN_SYNCRST : integer := 0; constant CFG_CANFT : integer := 0; --- GR USB 2.0 Device Controller - constant CFG_GRUSBDC : integer := 0; - constant CFG_GRUSBDC_AIFACE : integer := 0; - constant CFG_GRUSBDC_UIFACE : integer := 1; - constant CFG_GRUSBDC_DW : integer := 8; - constant CFG_GRUSBDC_NEPI : integer := 1; - constant CFG_GRUSBDC_NEPO : integer := 1; - constant CFG_GRUSBDC_I0 : integer := 1024; - constant CFG_GRUSBDC_I1 : integer := 1024; - constant CFG_GRUSBDC_I2 : integer := 1024; - constant CFG_GRUSBDC_I3 : integer := 1024; - constant CFG_GRUSBDC_I4 : integer := 1024; - constant CFG_GRUSBDC_I5 : integer := 1024; - constant CFG_GRUSBDC_I6 : integer := 1024; - constant CFG_GRUSBDC_I7 : integer := 1024; - constant CFG_GRUSBDC_I8 : integer := 1024; - constant CFG_GRUSBDC_I9 : integer := 1024; - constant CFG_GRUSBDC_I10 : integer := 1024; - constant CFG_GRUSBDC_I11 : integer := 1024; - constant CFG_GRUSBDC_I12 : integer := 1024; - constant CFG_GRUSBDC_I13 : integer := 1024; - constant CFG_GRUSBDC_I14 : integer := 1024; - constant CFG_GRUSBDC_I15 : integer := 1024; - constant CFG_GRUSBDC_O0 : integer := 1024; - constant CFG_GRUSBDC_O1 : integer := 1024; - constant CFG_GRUSBDC_O2 : integer := 1024; - constant CFG_GRUSBDC_O3 : integer := 1024; - constant CFG_GRUSBDC_O4 : integer := 1024; - constant CFG_GRUSBDC_O5 : integer := 1024; - constant CFG_GRUSBDC_O6 : integer := 1024; - constant CFG_GRUSBDC_O7 : integer := 1024; - constant CFG_GRUSBDC_O8 : integer := 1024; - constant CFG_GRUSBDC_O9 : integer := 1024; - constant CFG_GRUSBDC_O10 : integer := 1024; - constant CFG_GRUSBDC_O11 : integer := 1024; - constant CFG_GRUSBDC_O12 : integer := 1024; - constant CFG_GRUSBDC_O13 : integer := 1024; - constant CFG_GRUSBDC_O14 : integer := 1024; - constant CFG_GRUSBDC_O15 : integer := 1024; -- USB Host Controller constant CFG_GRUSBHC : integer := 0; constant CFG_GRUSBHC_NPORTS : integer := 1; @@ -293,6 +244,7 @@ package config is constant CFG_SPIMCTRL_SCALER : integer := (1); constant CFG_SPIMCTRL_ASCALER : integer := (8); constant CFG_SPIMCTRL_PWRUPCNT : integer := (0); + constant CFG_SPIMCTRL_OFFSET : integer := 16#0#; -- SPI controller constant CFG_SPICTRL_ENABLE : integer := 1; diff --git a/designs/leon3-gr-xc6s/config.vhd.h b/designs/leon3-gr-xc6s/config.vhd.h index 76dc040e..e88f5b88 100644 --- a/designs/leon3-gr-xc6s/config.vhd.h +++ b/designs/leon3-gr-xc6s/config.vhd.h @@ -88,11 +88,6 @@ -- JTAG based DSU interface constant CFG_AHB_JTAG : integer := CONFIG_DSU_JTAG; --- USB DSU - constant CFG_GRUSB_DCL : integer := CONFIG_GRUSB_DCL; - constant CFG_GRUSB_DCL_UIFACE : integer := CONFIG_GRUSB_DCL_UIFACE; - constant CFG_GRUSB_DCL_DW : integer := CONFIG_GRUSB_DCL_DW; - -- Ethernet DSU constant CFG_DSU_ETH : integer := CONFIG_DSU_ETH + CONFIG_DSU_ETH_PROG + CONFIG_DSU_ETH_DIS; constant CFG_ETH_BUF : integer := CFG_DSU_ETHB; @@ -162,13 +157,6 @@ constant CFG_GRETH1G : integer := CONFIG_GRETH_GIGA; constant CFG_ETH_FIFO : integer := CFG_GRETH_FIFO; --- ATA interface - constant CFG_ATA : integer := CONFIG_ATA_ENABLE; - constant CFG_ATAIO : integer := 16#CONFIG_ATAIO#; - constant CFG_ATAIRQ : integer := CONFIG_ATAIRQ; - constant CFG_ATADMA : integer := CONFIG_ATA_MWDMA; - constant CFG_ATAFIFO : integer := CONFIG_ATA_FIFO; - -- CAN 2.0 interface constant CFG_CAN : integer := CONFIG_CAN_ENABLE; constant CFG_CAN_NUM : integer := CONFIG_CAN_NUM; @@ -178,45 +166,6 @@ constant CFG_CAN_SYNCRST : integer := CONFIG_CAN_SYNCRST; constant CFG_CANFT : integer := CONFIG_CAN_FT; --- GR USB 2.0 Device Controller - constant CFG_GRUSBDC : integer := CONFIG_GRUSBDC_ENABLE; - constant CFG_GRUSBDC_AIFACE : integer := CONFIG_GRUSBDC_AIFACE; - constant CFG_GRUSBDC_UIFACE : integer := CONFIG_GRUSBDC_UIFACE; - constant CFG_GRUSBDC_DW : integer := CONFIG_GRUSBDC_DW; - constant CFG_GRUSBDC_NEPI : integer := CONFIG_GRUSBDC_NEPI; - constant CFG_GRUSBDC_NEPO : integer := CONFIG_GRUSBDC_NEPO; - constant CFG_GRUSBDC_I0 : integer := CONFIG_GRUSBDC_I0; - constant CFG_GRUSBDC_I1 : integer := CONFIG_GRUSBDC_I1; - constant CFG_GRUSBDC_I2 : integer := CONFIG_GRUSBDC_I2; - constant CFG_GRUSBDC_I3 : integer := CONFIG_GRUSBDC_I3; - constant CFG_GRUSBDC_I4 : integer := CONFIG_GRUSBDC_I4; - constant CFG_GRUSBDC_I5 : integer := CONFIG_GRUSBDC_I5; - constant CFG_GRUSBDC_I6 : integer := CONFIG_GRUSBDC_I6; - constant CFG_GRUSBDC_I7 : integer := CONFIG_GRUSBDC_I7; - constant CFG_GRUSBDC_I8 : integer := CONFIG_GRUSBDC_I8; - constant CFG_GRUSBDC_I9 : integer := CONFIG_GRUSBDC_I9; - constant CFG_GRUSBDC_I10 : integer := CONFIG_GRUSBDC_I10; - constant CFG_GRUSBDC_I11 : integer := CONFIG_GRUSBDC_I11; - constant CFG_GRUSBDC_I12 : integer := CONFIG_GRUSBDC_I12; - constant CFG_GRUSBDC_I13 : integer := CONFIG_GRUSBDC_I13; - constant CFG_GRUSBDC_I14 : integer := CONFIG_GRUSBDC_I14; - constant CFG_GRUSBDC_I15 : integer := CONFIG_GRUSBDC_I15; - constant CFG_GRUSBDC_O0 : integer := CONFIG_GRUSBDC_O0; - constant CFG_GRUSBDC_O1 : integer := CONFIG_GRUSBDC_O1; - constant CFG_GRUSBDC_O2 : integer := CONFIG_GRUSBDC_O2; - constant CFG_GRUSBDC_O3 : integer := CONFIG_GRUSBDC_O3; - constant CFG_GRUSBDC_O4 : integer := CONFIG_GRUSBDC_O4; - constant CFG_GRUSBDC_O5 : integer := CONFIG_GRUSBDC_O5; - constant CFG_GRUSBDC_O6 : integer := CONFIG_GRUSBDC_O6; - constant CFG_GRUSBDC_O7 : integer := CONFIG_GRUSBDC_O7; - constant CFG_GRUSBDC_O8 : integer := CONFIG_GRUSBDC_O8; - constant CFG_GRUSBDC_O9 : integer := CONFIG_GRUSBDC_O9; - constant CFG_GRUSBDC_O10 : integer := CONFIG_GRUSBDC_O10; - constant CFG_GRUSBDC_O11 : integer := CONFIG_GRUSBDC_O11; - constant CFG_GRUSBDC_O12 : integer := CONFIG_GRUSBDC_O12; - constant CFG_GRUSBDC_O13 : integer := CONFIG_GRUSBDC_O13; - constant CFG_GRUSBDC_O14 : integer := CONFIG_GRUSBDC_O14; - constant CFG_GRUSBDC_O15 : integer := CONFIG_GRUSBDC_O15; -- USB Host Controller constant CFG_GRUSBHC : integer := CONFIG_GRUSBHC_ENABLE; constant CFG_GRUSBHC_NPORTS : integer := CONFIG_GRUSBHC_NPORTS; @@ -293,6 +242,7 @@ constant CFG_SPIMCTRL_SCALER : integer := CONFIG_SPIMCTRL_SCALER; constant CFG_SPIMCTRL_ASCALER : integer := CONFIG_SPIMCTRL_ASCALER; constant CFG_SPIMCTRL_PWRUPCNT : integer := CONFIG_SPIMCTRL_PWRUPCNT; + constant CFG_SPIMCTRL_OFFSET : integer := 16#CONFIG_SPIMCTRL_OFFSET#; -- SPI controller constant CFG_SPICTRL_ENABLE : integer := CONFIG_SPICTRL_ENABLE; diff --git a/designs/leon3-gr-xc6s/lconfig.tk b/designs/leon3-gr-xc6s/lconfig.tk index a6588928..0e8fb1b4 100755 --- a/designs/leon3-gr-xc6s/lconfig.tk +++ b/designs/leon3-gr-xc6s/lconfig.tk @@ -644,7 +644,7 @@ set active_menus [list] set processed_top_level 0 set ARCH sparc set menus_per_column 4 -set total_menus 30 +set total_menus 28 proc toplevel_menu {num} { if {$num == 4} then {return 3} @@ -666,10 +666,8 @@ proc toplevel_menu {num} { if {$num == 23} then {return 13} if {$num == 24} then {return 13} if {$num == 25} then {return 13} - if {$num == 26} then {return 13} - if {$num == 27} then {return 13} - if {$num == 28} then {return 27} - if {$num == 29} then {return 27} + if {$num == 26} then {return 25} + if {$num == 27} then {return 25} return $num } @@ -763,7 +761,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -773,7 +772,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -916,8 +917,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -936,6 +939,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1025,9 +1032,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1081,10 +1089,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1130,14 +1139,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1210,13 +1221,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1256,22 +1275,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1328,21 +1615,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1389,36 +1676,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1426,48 +1714,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1523,28 +1812,28 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH - global tmpvar_7 - minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x4.x.menu 3 bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1585,20 +1874,21 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1607,38 +1897,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} - global tmpvar_7 + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1695,92 +1986,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1788,18 +2079,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1840,52 +2131,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1893,162 +2185,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2104,45 +2397,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2182,18 +2477,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2201,55 +2497,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2306,24 +2607,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2363,17 +2664,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2381,37 +2683,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2467,22 +2770,22 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - global tmpvar_26 - minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_26 CONFIG_FPUFT_NONE + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" - $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN @@ -2553,26 +2856,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global tmpvar_26 + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 global CONFIG_FPUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} global CONFIG_FPUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} global CONFIG_FPUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} global CONFIG_FPUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2880,30 +3183,22 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG - bool $w.config.f 12 2 "USB Debug Communication Link" CONFIG_GRUSB_DCL - global tmpvar_27 - minimenu $w.config.f 12 3 "USB Transceiver Interface" tmpvar_27 CONFIG_GRUSB_DCL_ULPI - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"USB Transceiver Interface\"" - $w.config.f.x3.x.menu add radiobutton -label "ULPI" -variable tmpvar_27 -value "ULPI" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "UTMI/UTMI+8-bit" -variable tmpvar_27 -value "UTMI/UTMI+8-bit" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "UTMI/UTMI+16-bit" -variable tmpvar_27 -value "UTMI/UTMI+16-bit" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 3 - bool $w.config.f 12 4 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH + bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH global tmpvar_28 - minimenu $w.config.f 12 5 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 - menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x5.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - menusplit $w $w.config.f.x5.x.menu 5 - hex $w.config.f 12 6 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB - hex $w.config.f 12 7 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB - hex $w.config.f 12 8 "MSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHMSB - hex $w.config.f 12 9 "LSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHLSB - bool $w.config.f 12 10 "Programmable 4-bit LSB of MAC/IP address" CONFIG_DSU_ETH_PROG - bool $w.config.f 12 11 "EDCL disable pin " CONFIG_DSU_ETH_DIS + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 5 + hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB + hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB + hex $w.config.f 12 6 "MSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHMSB + hex $w.config.f 12 7 "LSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHLSB + bool $w.config.f 12 8 "Programmable 4-bit LSB of MAC/IP address" CONFIG_DSU_ETH_PROG + bool $w.config.f 12 9 "EDCL disable pin " CONFIG_DSU_ETH_DIS @@ -2940,41 +3235,32 @@ proc menu12 {w title} { } proc update_menu12 {} { - global CONFIG_GRUSB_DCL - if {($CONFIG_GRUSB_DCL == 1)} then {configure_entry .menu12.config.f.x3 normal {x l}} else {configure_entry .menu12.config.f.x3 disabled {x l}} global CONFIG_GRETH_ENABLE global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { - configure_entry .menu12.config.f.x4 normal {n l y}} else {configure_entry .menu12.config.f.x4 disabled {y n l}} - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {configure_entry .menu12.config.f.x5 normal {x l}} else {configure_entry .menu12.config.f.x5 disabled {x l}} + configure_entry .menu12.config.f.x2 normal {n l y}} else {configure_entry .menu12.config.f.x2 disabled {y n l}} + 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}} global CONFIG_DSU_IPMSB - 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} + 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} global CONFIG_DSU_IPLSB - 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} + 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} global CONFIG_DSU_ETHMSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {.menu12.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu12.config.f.x8.l configure -state normal; } else {.menu12.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu12.config.f.x8.l configure -state disabled} + 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} global CONFIG_DSU_ETHLSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {.menu12.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu12.config.f.x9.l configure -state normal; } else {.menu12.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu12.config.f.x9.l configure -state disabled} + 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} global CONFIG_GRETH_GIGA global CONFIG_DSU_ETH_PROG if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - configure_entry .menu12.config.f.x10 normal {n l y}} else {configure_entry .menu12.config.f.x10 disabled {y n l}} + configure_entry .menu12.config.f.x8 normal {n l y}} else {configure_entry .menu12.config.f.x8 disabled {y n l}} global CONFIG_DSU_ETH_DIS if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - configure_entry .menu12.config.f.x11 normal {n l y}} else {configure_entry .menu12.config.f.x11 disabled {y n l}} + configure_entry .menu12.config.f.x9 normal {n l y}} else {configure_entry .menu12.config.f.x9 disabled {y n l}} } proc update_define_menu12 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_27 - global CONFIG_GRUSB_DCL_ULPI - if {$tmpvar_27 == "ULPI"} then {set CONFIG_GRUSB_DCL_ULPI 1} else {set CONFIG_GRUSB_DCL_ULPI 0} - global CONFIG_GRUSB_DCL_UTMI8 - if {$tmpvar_27 == "UTMI/UTMI+8-bit"} then {set CONFIG_GRUSB_DCL_UTMI8 1} else {set CONFIG_GRUSB_DCL_UTMI8 0} - global CONFIG_GRUSB_DCL_UTMI16 - if {$tmpvar_27 == "UTMI/UTMI+16-bit"} then {set CONFIG_GRUSB_DCL_UTMI16 1} else {set CONFIG_GRUSB_DCL_UTMI16 0} global CONFIG_GRETH_ENABLE global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { @@ -3062,14 +3348,12 @@ proc menu13 {w title} { submenu $w.config.f 13 0 "Memory controller " 14 submenu $w.config.f 13 1 "On-chip RAM/ROM " 18 submenu $w.config.f 13 2 "Ethernet " 19 - submenu $w.config.f 13 3 "IDE Disk controller " 20 - submenu $w.config.f 13 4 "CAN " 21 - submenu $w.config.f 13 5 "USB 2.0 Device Controller " 22 - submenu $w.config.f 13 6 "USB 2.0 Host Controller " 23 - submenu $w.config.f 13 7 "UART, timer, I/O port and interrupt controller" 24 - submenu $w.config.f 13 8 "Spacewire " 25 - submenu $w.config.f 13 9 "Keybord and VGA interface" 26 - submenu $w.config.f 13 10 "SPI" 27 + submenu $w.config.f 13 3 "CAN " 20 + submenu $w.config.f 13 4 "USB 2.0 Host Controller " 21 + submenu $w.config.f 13 5 "UART, timer, I/O port and interrupt controller" 22 + submenu $w.config.f 13 6 "Spacewire " 23 + submenu $w.config.f 13 7 "Keybord and VGA interface" 24 + submenu $w.config.f 13 8 "SPI" 25 @@ -4012,9 +4296,9 @@ proc menu20 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 20]] message $w.m -width 400 -aspect 300 -text \ - "IDE Disk controller " -relief raised + "CAN " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "IDE Disk controller " + wm title $w "CAN " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu21 .menu21 \"$title\"" @@ -4054,11 +4338,13 @@ proc menu20 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 20 0 "Enable ATA interface " CONFIG_ATA_ENABLE - hex $w.config.f 20 1 "ATA I/O area start address (haddr\[19:8\]) " CONFIG_ATAIO - int $w.config.f 20 2 "Interrupt number " CONFIG_ATAIRQ - bool $w.config.f 20 3 "Enable MWDMA support " CONFIG_ATA_MWDMA - int $w.config.f 20 4 "FIFO depth " CONFIG_ATA_FIFO + bool $w.config.f 20 0 "Enable multi-core CAN interface " CONFIG_CAN_ENABLE + int $w.config.f 20 1 "Number of CAN cores " CONFIG_CAN_NUM + hex $w.config.f 20 2 "CAN I/O area start address (haddr\[19:8\]) " CONFIG_CANIO + int $w.config.f 20 3 "Interrupt number " CONFIG_CANIRQ + bool $w.config.f 20 4 "Enable separate interrupts " CONFIG_CANSEPIRQ + bool $w.config.f 20 5 "Enable synchronous reset " CONFIG_CAN_SYNCRST + bool $w.config.f 20 6 "Enable FT FIFO memory " CONFIG_CAN_FT @@ -4096,32 +4382,44 @@ proc menu20 {w title} { } proc update_menu20 {} { - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {.menu20.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x1.l configure -state normal; } else {.menu20.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x1.l configure -state disabled} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {.menu20.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x2.l configure -state normal; } else {.menu20.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x2.l configure -state disabled} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - configure_entry .menu20.config.f.x3 normal {n l y}} else {configure_entry .menu20.config.f.x3 disabled {y n l}} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {.menu20.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x4.l configure -state normal; } else {.menu20.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x4.l configure -state disabled} + global CONFIG_CAN_ENABLE + global CONFIG_CAN_NUM + 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} + global CONFIG_CANIO + 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} + global CONFIG_CANIRQ + if {($CONFIG_CAN_ENABLE == 1)} then {.menu20.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x3.l configure -state normal; } else {.menu20.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x3.l configure -state disabled} + global CONFIG_CANSEPIRQ + if {($CONFIG_CAN_ENABLE == 1)} then { + configure_entry .menu20.config.f.x4 normal {n l y}} else {configure_entry .menu20.config.f.x4 disabled {y n l}} + global CONFIG_CAN_SYNCRST + if {($CONFIG_CAN_ENABLE == 1)} then { + configure_entry .menu20.config.f.x5 normal {n l y}} else {configure_entry .menu20.config.f.x5 disabled {y n l}} + global CONFIG_CAN_FT + if {($CONFIG_CAN_ENABLE == 1)} then { + configure_entry .menu20.config.f.x6 normal {n l y}} else {configure_entry .menu20.config.f.x6 disabled {y n l}} } proc update_define_menu20 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {validate_hex CONFIG_ATAIO "$CONFIG_ATAIO" A00} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {validate_int CONFIG_ATAIRQ "$CONFIG_ATAIRQ" 10} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA&15]} else {set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA|16]} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {validate_int CONFIG_ATA_FIFO "$CONFIG_ATA_FIFO" 8} + global CONFIG_CAN_ENABLE + global CONFIG_CAN_NUM + if {($CONFIG_CAN_ENABLE == 1)} then {validate_int CONFIG_CAN_NUM "$CONFIG_CAN_NUM" 1} + global CONFIG_CANIO + if {($CONFIG_CAN_ENABLE == 1)} then {validate_hex CONFIG_CANIO "$CONFIG_CANIO" C00} + global CONFIG_CANIRQ + if {($CONFIG_CAN_ENABLE == 1)} then {validate_int CONFIG_CANIRQ "$CONFIG_CANIRQ" 13} + global CONFIG_CANSEPIRQ + if {($CONFIG_CAN_ENABLE == 1)} then { + set CONFIG_CANSEPIRQ [expr $CONFIG_CANSEPIRQ&15]} else {set CONFIG_CANSEPIRQ [expr $CONFIG_CANSEPIRQ|16]} + global CONFIG_CAN_SYNCRST + if {($CONFIG_CAN_ENABLE == 1)} then { + set CONFIG_CAN_SYNCRST [expr $CONFIG_CAN_SYNCRST&15]} else {set CONFIG_CAN_SYNCRST [expr $CONFIG_CAN_SYNCRST|16]} + global CONFIG_CAN_FT + if {($CONFIG_CAN_ENABLE == 1)} then { + set CONFIG_CAN_FT [expr $CONFIG_CAN_FT&15]} else {set CONFIG_CAN_FT [expr $CONFIG_CAN_FT|16]} } @@ -4134,9 +4432,9 @@ proc menu21 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 21]] message $w.m -width 400 -aspect 300 -text \ - "CAN " -relief raised + "USB 2.0 Host Controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "CAN " + wm title $w "USB 2.0 Host Controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu22 .menu22 \"$title\"" @@ -4176,13 +4474,65 @@ proc menu21 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 21 0 "Enable multi-core CAN interface " CONFIG_CAN_ENABLE - int $w.config.f 21 1 "Number of CAN cores " CONFIG_CAN_NUM - hex $w.config.f 21 2 "CAN I/O area start address (haddr\[19:8\]) " CONFIG_CANIO - int $w.config.f 21 3 "Interrupt number " CONFIG_CANIRQ - bool $w.config.f 21 4 "Enable separate interrupts " CONFIG_CANSEPIRQ - bool $w.config.f 21 5 "Enable synchronous reset " CONFIG_CAN_SYNCRST - bool $w.config.f 21 6 "Enable FT FIFO memory " CONFIG_CAN_FT + bool $w.config.f 21 0 "Gaisler Research USB 2.0 Host Controller " CONFIG_GRUSBHC_ENABLE + bool $w.config.f 21 1 "Enable Enhanced Host Controller " CONFIG_GRUSBHC_EHC + bool $w.config.f 21 2 "Enable Universal Host Controller " CONFIG_GRUSBHC_UHC + int $w.config.f 21 3 "Number of Universal Host Controllers (1-15)" CONFIG_GRUSBHC_NCC + int $w.config.f 21 4 "Total number of ports (1-15)" CONFIG_GRUSBHC_NPORTS + global tmpvar_31 + minimenu $w.config.f 21 5 "Transceiver interface" tmpvar_31 CONFIG_GRUSBHC_ULPI + menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"Transceiver interface\"" + $w.config.f.x5.x.menu add radiobutton -label "ULPI" -variable tmpvar_31 -value "ULPI" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "UTMI+16-bit" -variable tmpvar_31 -value "UTMI+16-bit" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "UTMI+8-bit" -variable tmpvar_31 -value "UTMI+8-bit" -command "update_active" + menusplit $w $w.config.f.x5.x.menu 3 + global tmpvar_32 + minimenu $w.config.f 21 6 "Bus power generation" tmpvar_32 CONFIG_GRUSBHC_VBUSEXT + menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"Bus power generation\"" + $w.config.f.x6.x.menu add radiobutton -label "External" -variable tmpvar_32 -value "External" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Internal" -variable tmpvar_32 -value "Internal" -command "update_active" + menusplit $w $w.config.f.x6.x.menu 2 + global tmpvar_33 + minimenu $w.config.f 21 7 "External bus fault indicator" tmpvar_33 CONFIG_GRUSBHC_FAULTL + menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"External bus fault indicator\"" + $w.config.f.x7.x.menu add radiobutton -label "ActiveLow" -variable tmpvar_33 -value "ActiveLow" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "ActiveHigh" -variable tmpvar_33 -value "ActiveHigh" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "None" -variable tmpvar_33 -value "None" -command "update_active" + menusplit $w $w.config.f.x7.x.menu 3 + global tmpvar_34 + minimenu $w.config.f 21 8 "Bus power enable signal" tmpvar_34 CONFIG_GRUSBHC_ENABLEH + menu $w.config.f.x8.x.menu -tearoffcommand "menutitle \"Bus power enable signal\"" + $w.config.f.x8.x.menu add radiobutton -label "ActiveHigh" -variable tmpvar_34 -value "ActiveHigh" -command "update_active" + $w.config.f.x8.x.menu add radiobutton -label "ActiveLow" -variable tmpvar_34 -value "ActiveLow" -command "update_active" + menusplit $w $w.config.f.x8.x.menu 2 + global tmpvar_35 + minimenu $w.config.f 21 9 "Bus power fault indicator" tmpvar_35 CONFIG_GRUSBHC_FAULT2H + menu $w.config.f.x9.x.menu -tearoffcommand "menutitle \"Bus power fault indicator\"" + $w.config.f.x9.x.menu add radiobutton -label "ActiveHigh" -variable tmpvar_35 -value "ActiveHigh" -command "update_active" + $w.config.f.x9.x.menu add radiobutton -label "ActiveLow" -variable tmpvar_35 -value "ActiveLow" -command "update_active" + menusplit $w $w.config.f.x9.x.menu 2 + comment $w.config.f 21 10 "Memory interface" + bool $w.config.f 21 11 "Enable big endian register interface" CONFIG_GRUSBHC_BEREGS + bool $w.config.f 21 12 "Enable big endian descriptors" CONFIG_GRUSBHC_BEDESC + int $w.config.f 21 13 "Maximum burst length in words (1-256)" CONFIG_GRUSBHC_BWRD + comment $w.config.f 21 14 "Port routing" + bool $w.config.f 21 15 "Port routing rules" CONFIG_GRUSBHC_PRR + int $w.config.f 21 16 "Number of ports per companion controller (1-15)" CONFIG_GRUSBHC_NPCC + int $w.config.f 21 17 "Route port 1 to companion controller " CONFIG_GRUSBHC_PR1 + int $w.config.f 21 18 "Route port 2 to companion controller " CONFIG_GRUSBHC_PR2 + int $w.config.f 21 19 "Route port 3 to companion controller " CONFIG_GRUSBHC_PR3 + int $w.config.f 21 20 "Route port 4 to companion controller " CONFIG_GRUSBHC_PR4 + int $w.config.f 21 21 "Route port 5 to companion controller " CONFIG_GRUSBHC_PR5 + int $w.config.f 21 22 "Route port 6 to companion controller " CONFIG_GRUSBHC_PR6 + int $w.config.f 21 23 "Route port 7 to companion controller " CONFIG_GRUSBHC_PR7 + int $w.config.f 21 24 "Route port 8 to companion controller " CONFIG_GRUSBHC_PR8 + int $w.config.f 21 25 "Route port 9 to companion controller " CONFIG_GRUSBHC_PR9 + int $w.config.f 21 26 "Route port 10 to companion controller " CONFIG_GRUSBHC_PR10 + int $w.config.f 21 27 "Route port 11 to companion controller " CONFIG_GRUSBHC_PR11 + int $w.config.f 21 28 "Route port 12 to companion controller " CONFIG_GRUSBHC_PR12 + int $w.config.f 21 29 "Route port 13 to companion controller " CONFIG_GRUSBHC_PR13 + int $w.config.f 21 30 "Route port 14 to companion controller " CONFIG_GRUSBHC_PR14 + int $w.config.f 21 31 "Route port 15 to companion controller " CONFIG_GRUSBHC_PR15 @@ -4220,553 +4570,73 @@ proc menu21 {w title} { } proc update_menu21 {} { - global CONFIG_CAN_ENABLE - global CONFIG_CAN_NUM - if {($CONFIG_CAN_ENABLE == 1)} then {.menu21.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x1.l configure -state normal; } else {.menu21.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x1.l configure -state disabled} - global CONFIG_CANIO - if {($CONFIG_CAN_ENABLE == 1)} then {.menu21.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x2.l configure -state normal; } else {.menu21.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x2.l configure -state disabled} - global CONFIG_CANIRQ - if {($CONFIG_CAN_ENABLE == 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} - global CONFIG_CANSEPIRQ - if {($CONFIG_CAN_ENABLE == 1)} then { - configure_entry .menu21.config.f.x4 normal {n l y}} else {configure_entry .menu21.config.f.x4 disabled {y n l}} - global CONFIG_CAN_SYNCRST - if {($CONFIG_CAN_ENABLE == 1)} then { - configure_entry .menu21.config.f.x5 normal {n l y}} else {configure_entry .menu21.config.f.x5 disabled {y n l}} - global CONFIG_CAN_FT - if {($CONFIG_CAN_ENABLE == 1)} then { - configure_entry .menu21.config.f.x6 normal {n l y}} else {configure_entry .menu21.config.f.x6 disabled {y n l}} -} - - -proc update_define_menu21 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_CAN_ENABLE - global CONFIG_CAN_NUM - if {($CONFIG_CAN_ENABLE == 1)} then {validate_int CONFIG_CAN_NUM "$CONFIG_CAN_NUM" 1} - global CONFIG_CANIO - if {($CONFIG_CAN_ENABLE == 1)} then {validate_hex CONFIG_CANIO "$CONFIG_CANIO" C00} - global CONFIG_CANIRQ - if {($CONFIG_CAN_ENABLE == 1)} then {validate_int CONFIG_CANIRQ "$CONFIG_CANIRQ" 13} - global CONFIG_CANSEPIRQ - if {($CONFIG_CAN_ENABLE == 1)} then { - set CONFIG_CANSEPIRQ [expr $CONFIG_CANSEPIRQ&15]} else {set CONFIG_CANSEPIRQ [expr $CONFIG_CANSEPIRQ|16]} - global CONFIG_CAN_SYNCRST - if {($CONFIG_CAN_ENABLE == 1)} then { - set CONFIG_CAN_SYNCRST [expr $CONFIG_CAN_SYNCRST&15]} else {set CONFIG_CAN_SYNCRST [expr $CONFIG_CAN_SYNCRST|16]} - global CONFIG_CAN_FT - if {($CONFIG_CAN_ENABLE == 1)} then { - set CONFIG_CAN_FT [expr $CONFIG_CAN_FT&15]} else {set CONFIG_CAN_FT [expr $CONFIG_CAN_FT|16]} -} - - -proc menu22 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 22} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 22]] - message $w.m -width 400 -aspect 300 -text \ - "USB 2.0 Device Controller " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "USB 2.0 Device Controller " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu23 .menu23 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 22 0 "Gaisler Research USB 2.0 Device Controller " CONFIG_GRUSBDC_ENABLE - bool $w.config.f 22 1 "AHB Master Interface" CONFIG_GRUSBDC_AIFACE - global tmpvar_31 - minimenu $w.config.f 22 2 "USB Transceiver Interface" tmpvar_31 CONFIG_GRUSBDC_ULPI - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"USB Transceiver Interface\"" - $w.config.f.x2.x.menu add radiobutton -label "ULPI" -variable tmpvar_31 -value "ULPI" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "UTMI/UTMI+8-bit" -variable tmpvar_31 -value "UTMI/UTMI+8-bit" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "UTMI/UTMI+16-bit" -variable tmpvar_31 -value "UTMI/UTMI+16-bit" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 3 - int $w.config.f 22 3 "Number of IN endpoints " CONFIG_GRUSBDC_NEPI - int $w.config.f 22 4 "Number of OUT endpoints" CONFIG_GRUSBDC_NEPO - int $w.config.f 22 5 "Buffer size for IN endpoint 0 " CONFIG_GRUSBDC_I0 - int $w.config.f 22 6 "Buffer size for IN endpoint 1 " CONFIG_GRUSBDC_I1 - int $w.config.f 22 7 "Buffer size for IN endpoint 2 " CONFIG_GRUSBDC_I2 - int $w.config.f 22 8 "Buffer size for IN endpoint 3 " CONFIG_GRUSBDC_I3 - int $w.config.f 22 9 "Buffer size for IN endpoint 4 " CONFIG_GRUSBDC_I4 - int $w.config.f 22 10 "Buffer size for IN endpoint 5 " CONFIG_GRUSBDC_I5 - int $w.config.f 22 11 "Buffer size for IN endpoint 6 " CONFIG_GRUSBDC_I6 - int $w.config.f 22 12 "Buffer size for IN endpoint 7 " CONFIG_GRUSBDC_I7 - int $w.config.f 22 13 "Buffer size for IN endpoint 8 " CONFIG_GRUSBDC_I8 - int $w.config.f 22 14 "Buffer size for IN endpoint 9 " CONFIG_GRUSBDC_I9 - int $w.config.f 22 15 "Buffer size for IN endpoint 10 " CONFIG_GRUSBDC_I10 - int $w.config.f 22 16 "Buffer size for IN endpoint 11 " CONFIG_GRUSBDC_I11 - int $w.config.f 22 17 "Buffer size for IN endpoint 12 " CONFIG_GRUSBDC_I12 - int $w.config.f 22 18 "Buffer size for IN endpoint 13 " CONFIG_GRUSBDC_I13 - int $w.config.f 22 19 "Buffer size for IN endpoint 14 " CONFIG_GRUSBDC_I14 - int $w.config.f 22 20 "Buffer size for IN endpoint 15 " CONFIG_GRUSBDC_I15 - int $w.config.f 22 21 "Buffer size for OUT endpoint 0" CONFIG_GRUSBDC_O0 - int $w.config.f 22 22 "Buffer size for OUT endpoint 1" CONFIG_GRUSBDC_O1 - int $w.config.f 22 23 "Buffer size for OUT endpoint 2" CONFIG_GRUSBDC_O2 - int $w.config.f 22 24 "Buffer size for OUT endpoint 3" CONFIG_GRUSBDC_O3 - int $w.config.f 22 25 "Buffer size for OUT endpoint 4" CONFIG_GRUSBDC_O4 - int $w.config.f 22 26 "Buffer size for OUT endpoint 5" CONFIG_GRUSBDC_O5 - int $w.config.f 22 27 "Buffer size for OUT endpoint 6" CONFIG_GRUSBDC_O6 - int $w.config.f 22 28 "Buffer size for OUT endpoint 7" CONFIG_GRUSBDC_O7 - int $w.config.f 22 29 "Buffer size for OUT endpoint 8" CONFIG_GRUSBDC_O8 - int $w.config.f 22 30 "Buffer size for OUT endpoint 9" CONFIG_GRUSBDC_O9 - int $w.config.f 22 31 "Buffer size for OUT endpoint 10" CONFIG_GRUSBDC_O10 - int $w.config.f 22 32 "Buffer size for OUT endpoint 11" CONFIG_GRUSBDC_O11 - int $w.config.f 22 33 "Buffer size for OUT endpoint 12" CONFIG_GRUSBDC_O12 - int $w.config.f 22 34 "Buffer size for OUT endpoint 13" CONFIG_GRUSBDC_O13 - int $w.config.f 22 35 "Buffer size for OUT endpoint 14" CONFIG_GRUSBDC_O14 - int $w.config.f 22 36 "Buffer size for OUT endpoint 15" CONFIG_GRUSBDC_O15 - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu22 {} { - global CONFIG_GRUSBDC_ENABLE - global CONFIG_GRUSBDC_AIFACE - if {($CONFIG_GRUSBDC_ENABLE == 1)} then { - configure_entry .menu22.config.f.x1 normal {n l y}} else {configure_entry .menu22.config.f.x1 disabled {y n l}} - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {configure_entry .menu22.config.f.x2 normal {x l}} else {configure_entry .menu22.config.f.x2 disabled {x l}} - global CONFIG_GRUSBDC_NEPI - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x3.l configure -state normal; } else {.menu22.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x3.l configure -state disabled} - global CONFIG_GRUSBDC_NEPO - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x4.l configure -state normal; } else {.menu22.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x4.l configure -state disabled} - global CONFIG_GRUSBDC_I0 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x5.l configure -state normal; } else {.menu22.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x5.l configure -state disabled} - global CONFIG_GRUSBDC_I1 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x6.l configure -state normal; } else {.menu22.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x6.l configure -state disabled} - global CONFIG_GRUSBDC_I2 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x7.l configure -state normal; } else {.menu22.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x7.l configure -state disabled} - global CONFIG_GRUSBDC_I3 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x8.l configure -state normal; } else {.menu22.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x8.l configure -state disabled} - global CONFIG_GRUSBDC_I4 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x9.l configure -state normal; } else {.menu22.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x9.l configure -state disabled} - global CONFIG_GRUSBDC_I5 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x10.l configure -state normal; } else {.menu22.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x10.l configure -state disabled} - global CONFIG_GRUSBDC_I6 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x11.l configure -state normal; } else {.menu22.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x11.l configure -state disabled} - global CONFIG_GRUSBDC_I7 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x12.l configure -state normal; } else {.menu22.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x12.l configure -state disabled} - global CONFIG_GRUSBDC_I8 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x13.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x13.l configure -state normal; } else {.menu22.config.f.x13.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x13.l configure -state disabled} - global CONFIG_GRUSBDC_I9 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x14.l configure -state normal; } else {.menu22.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x14.l configure -state disabled} - global CONFIG_GRUSBDC_I10 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x15.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x15.l configure -state normal; } else {.menu22.config.f.x15.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x15.l configure -state disabled} - global CONFIG_GRUSBDC_I11 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x16.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x16.l configure -state normal; } else {.menu22.config.f.x16.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x16.l configure -state disabled} - global CONFIG_GRUSBDC_I12 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x17.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x17.l configure -state normal; } else {.menu22.config.f.x17.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x17.l configure -state disabled} - global CONFIG_GRUSBDC_I13 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x18.l configure -state normal; } else {.menu22.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x18.l configure -state disabled} - global CONFIG_GRUSBDC_I14 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x19.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x19.l configure -state normal; } else {.menu22.config.f.x19.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x19.l configure -state disabled} - global CONFIG_GRUSBDC_I15 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x20.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x20.l configure -state normal; } else {.menu22.config.f.x20.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x20.l configure -state disabled} - global CONFIG_GRUSBDC_O0 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x21.l configure -state normal; } else {.menu22.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x21.l configure -state disabled} - global CONFIG_GRUSBDC_O1 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x22.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x22.l configure -state normal; } else {.menu22.config.f.x22.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x22.l configure -state disabled} - global CONFIG_GRUSBDC_O2 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x23.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x23.l configure -state normal; } else {.menu22.config.f.x23.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x23.l configure -state disabled} - global CONFIG_GRUSBDC_O3 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x24.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x24.l configure -state normal; } else {.menu22.config.f.x24.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x24.l configure -state disabled} - global CONFIG_GRUSBDC_O4 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x25.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x25.l configure -state normal; } else {.menu22.config.f.x25.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x25.l configure -state disabled} - global CONFIG_GRUSBDC_O5 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x26.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x26.l configure -state normal; } else {.menu22.config.f.x26.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x26.l configure -state disabled} - global CONFIG_GRUSBDC_O6 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x27.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x27.l configure -state normal; } else {.menu22.config.f.x27.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x27.l configure -state disabled} - global CONFIG_GRUSBDC_O7 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x28.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x28.l configure -state normal; } else {.menu22.config.f.x28.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x28.l configure -state disabled} - global CONFIG_GRUSBDC_O8 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x29.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x29.l configure -state normal; } else {.menu22.config.f.x29.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x29.l configure -state disabled} - global CONFIG_GRUSBDC_O9 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x30.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x30.l configure -state normal; } else {.menu22.config.f.x30.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x30.l configure -state disabled} - global CONFIG_GRUSBDC_O10 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x31.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x31.l configure -state normal; } else {.menu22.config.f.x31.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x31.l configure -state disabled} - global CONFIG_GRUSBDC_O11 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x32.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x32.l configure -state normal; } else {.menu22.config.f.x32.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x32.l configure -state disabled} - global CONFIG_GRUSBDC_O12 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x33.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x33.l configure -state normal; } else {.menu22.config.f.x33.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x33.l configure -state disabled} - global CONFIG_GRUSBDC_O13 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x34.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x34.l configure -state normal; } else {.menu22.config.f.x34.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x34.l configure -state disabled} - global CONFIG_GRUSBDC_O14 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x35.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x35.l configure -state normal; } else {.menu22.config.f.x35.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x35.l configure -state disabled} - global CONFIG_GRUSBDC_O15 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {.menu22.config.f.x36.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x36.l configure -state normal; } else {.menu22.config.f.x36.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x36.l configure -state disabled} -} - - -proc update_define_menu22 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_GRUSBDC_ENABLE - global CONFIG_GRUSBDC_AIFACE - if {($CONFIG_GRUSBDC_ENABLE == 1)} then { - set CONFIG_GRUSBDC_AIFACE [expr $CONFIG_GRUSBDC_AIFACE&15]} else {set CONFIG_GRUSBDC_AIFACE [expr $CONFIG_GRUSBDC_AIFACE|16]} - global tmpvar_31 - global CONFIG_GRUSBDC_ULPI - if {$tmpvar_31 == "ULPI"} then {set CONFIG_GRUSBDC_ULPI 1} else {set CONFIG_GRUSBDC_ULPI 0} - global CONFIG_GRUSBDC_UTMI8 - if {$tmpvar_31 == "UTMI/UTMI+8-bit"} then {set CONFIG_GRUSBDC_UTMI8 1} else {set CONFIG_GRUSBDC_UTMI8 0} - global CONFIG_GRUSBDC_UTMI16 - if {$tmpvar_31 == "UTMI/UTMI+16-bit"} then {set CONFIG_GRUSBDC_UTMI16 1} else {set CONFIG_GRUSBDC_UTMI16 0} - global CONFIG_GRUSBDC_NEPI - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_NEPI "$CONFIG_GRUSBDC_NEPI" 1} - global CONFIG_GRUSBDC_NEPO - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_NEPO "$CONFIG_GRUSBDC_NEPO" 1} - global CONFIG_GRUSBDC_I0 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I0 "$CONFIG_GRUSBDC_I0" 1024} - global CONFIG_GRUSBDC_I1 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I1 "$CONFIG_GRUSBDC_I1" 1024} - global CONFIG_GRUSBDC_I2 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I2 "$CONFIG_GRUSBDC_I2" 1024} - global CONFIG_GRUSBDC_I3 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I3 "$CONFIG_GRUSBDC_I3" 1024} - global CONFIG_GRUSBDC_I4 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I4 "$CONFIG_GRUSBDC_I4" 1024} - global CONFIG_GRUSBDC_I5 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I5 "$CONFIG_GRUSBDC_I5" 1024} - global CONFIG_GRUSBDC_I6 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I6 "$CONFIG_GRUSBDC_I6" 1024} - global CONFIG_GRUSBDC_I7 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I7 "$CONFIG_GRUSBDC_I7" 1024} - global CONFIG_GRUSBDC_I8 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I8 "$CONFIG_GRUSBDC_I8" 1024} - global CONFIG_GRUSBDC_I9 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I9 "$CONFIG_GRUSBDC_I9" 1024} - global CONFIG_GRUSBDC_I10 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I10 "$CONFIG_GRUSBDC_I10" 1024} - global CONFIG_GRUSBDC_I11 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I11 "$CONFIG_GRUSBDC_I11" 1024} - global CONFIG_GRUSBDC_I12 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I12 "$CONFIG_GRUSBDC_I12" 1024} - global CONFIG_GRUSBDC_I13 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I13 "$CONFIG_GRUSBDC_I13" 1024} - global CONFIG_GRUSBDC_I14 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I14 "$CONFIG_GRUSBDC_I14" 1024} - global CONFIG_GRUSBDC_I15 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_I15 "$CONFIG_GRUSBDC_I15" 1024} - global CONFIG_GRUSBDC_O0 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O0 "$CONFIG_GRUSBDC_O0" 1024} - global CONFIG_GRUSBDC_O1 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O1 "$CONFIG_GRUSBDC_O1" 1024} - global CONFIG_GRUSBDC_O2 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O2 "$CONFIG_GRUSBDC_O2" 1024} - global CONFIG_GRUSBDC_O3 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O3 "$CONFIG_GRUSBDC_O3" 1024} - global CONFIG_GRUSBDC_O4 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O4 "$CONFIG_GRUSBDC_O4" 1024} - global CONFIG_GRUSBDC_O5 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O5 "$CONFIG_GRUSBDC_O5" 1024} - global CONFIG_GRUSBDC_O6 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O6 "$CONFIG_GRUSBDC_O6" 1024} - global CONFIG_GRUSBDC_O7 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O7 "$CONFIG_GRUSBDC_O7" 1024} - global CONFIG_GRUSBDC_O8 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O8 "$CONFIG_GRUSBDC_O8" 1024} - global CONFIG_GRUSBDC_O9 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O9 "$CONFIG_GRUSBDC_O9" 1024} - global CONFIG_GRUSBDC_O10 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O10 "$CONFIG_GRUSBDC_O10" 1024} - global CONFIG_GRUSBDC_O11 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O11 "$CONFIG_GRUSBDC_O11" 1024} - global CONFIG_GRUSBDC_O12 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O12 "$CONFIG_GRUSBDC_O12" 1024} - global CONFIG_GRUSBDC_O13 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O13 "$CONFIG_GRUSBDC_O13" 1024} - global CONFIG_GRUSBDC_O14 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O14 "$CONFIG_GRUSBDC_O14" 1024} - global CONFIG_GRUSBDC_O15 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {validate_int CONFIG_GRUSBDC_O15 "$CONFIG_GRUSBDC_O15" 1024} -} - - -proc menu23 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 23} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 23]] - message $w.m -width 400 -aspect 300 -text \ - "USB 2.0 Host Controller " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "USB 2.0 Host Controller " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu24 .menu24 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 23 0 "Gaisler Research USB 2.0 Host Controller " CONFIG_GRUSBHC_ENABLE - bool $w.config.f 23 1 "Enable Enhanced Host Controller " CONFIG_GRUSBHC_EHC - bool $w.config.f 23 2 "Enable Universal Host Controller " CONFIG_GRUSBHC_UHC - int $w.config.f 23 3 "Number of Universal Host Controllers (1-15)" CONFIG_GRUSBHC_NCC - int $w.config.f 23 4 "Total number of ports (1-15)" CONFIG_GRUSBHC_NPORTS - global tmpvar_32 - minimenu $w.config.f 23 5 "Transceiver interface" tmpvar_32 CONFIG_GRUSBHC_ULPI - menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"Transceiver interface\"" - $w.config.f.x5.x.menu add radiobutton -label "ULPI" -variable tmpvar_32 -value "ULPI" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "UTMI+16-bit" -variable tmpvar_32 -value "UTMI+16-bit" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "UTMI+8-bit" -variable tmpvar_32 -value "UTMI+8-bit" -command "update_active" - menusplit $w $w.config.f.x5.x.menu 3 - global tmpvar_33 - minimenu $w.config.f 23 6 "Bus power generation" tmpvar_33 CONFIG_GRUSBHC_VBUSEXT - menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"Bus power generation\"" - $w.config.f.x6.x.menu add radiobutton -label "External" -variable tmpvar_33 -value "External" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Internal" -variable tmpvar_33 -value "Internal" -command "update_active" - menusplit $w $w.config.f.x6.x.menu 2 - global tmpvar_34 - minimenu $w.config.f 23 7 "External bus fault indicator" tmpvar_34 CONFIG_GRUSBHC_FAULTL - menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"External bus fault indicator\"" - $w.config.f.x7.x.menu add radiobutton -label "ActiveLow" -variable tmpvar_34 -value "ActiveLow" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "ActiveHigh" -variable tmpvar_34 -value "ActiveHigh" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "None" -variable tmpvar_34 -value "None" -command "update_active" - menusplit $w $w.config.f.x7.x.menu 3 - global tmpvar_35 - minimenu $w.config.f 23 8 "Bus power enable signal" tmpvar_35 CONFIG_GRUSBHC_ENABLEH - menu $w.config.f.x8.x.menu -tearoffcommand "menutitle \"Bus power enable signal\"" - $w.config.f.x8.x.menu add radiobutton -label "ActiveHigh" -variable tmpvar_35 -value "ActiveHigh" -command "update_active" - $w.config.f.x8.x.menu add radiobutton -label "ActiveLow" -variable tmpvar_35 -value "ActiveLow" -command "update_active" - menusplit $w $w.config.f.x8.x.menu 2 - global tmpvar_36 - minimenu $w.config.f 23 9 "Bus power fault indicator" tmpvar_36 CONFIG_GRUSBHC_FAULT2H - menu $w.config.f.x9.x.menu -tearoffcommand "menutitle \"Bus power fault indicator\"" - $w.config.f.x9.x.menu add radiobutton -label "ActiveHigh" -variable tmpvar_36 -value "ActiveHigh" -command "update_active" - $w.config.f.x9.x.menu add radiobutton -label "ActiveLow" -variable tmpvar_36 -value "ActiveLow" -command "update_active" - menusplit $w $w.config.f.x9.x.menu 2 - comment $w.config.f 23 10 "Memory interface" - bool $w.config.f 23 11 "Enable big endian register interface" CONFIG_GRUSBHC_BEREGS - bool $w.config.f 23 12 "Enable big endian descriptors" CONFIG_GRUSBHC_BEDESC - int $w.config.f 23 13 "Maximum burst length in words (1-256)" CONFIG_GRUSBHC_BWRD - comment $w.config.f 23 14 "Port routing" - bool $w.config.f 23 15 "Port routing rules" CONFIG_GRUSBHC_PRR - int $w.config.f 23 16 "Number of ports per companion controller (1-15)" CONFIG_GRUSBHC_NPCC - int $w.config.f 23 17 "Route port 1 to companion controller " CONFIG_GRUSBHC_PR1 - int $w.config.f 23 18 "Route port 2 to companion controller " CONFIG_GRUSBHC_PR2 - int $w.config.f 23 19 "Route port 3 to companion controller " CONFIG_GRUSBHC_PR3 - int $w.config.f 23 20 "Route port 4 to companion controller " CONFIG_GRUSBHC_PR4 - int $w.config.f 23 21 "Route port 5 to companion controller " CONFIG_GRUSBHC_PR5 - int $w.config.f 23 22 "Route port 6 to companion controller " CONFIG_GRUSBHC_PR6 - int $w.config.f 23 23 "Route port 7 to companion controller " CONFIG_GRUSBHC_PR7 - int $w.config.f 23 24 "Route port 8 to companion controller " CONFIG_GRUSBHC_PR8 - int $w.config.f 23 25 "Route port 9 to companion controller " CONFIG_GRUSBHC_PR9 - int $w.config.f 23 26 "Route port 10 to companion controller " CONFIG_GRUSBHC_PR10 - int $w.config.f 23 27 "Route port 11 to companion controller " CONFIG_GRUSBHC_PR11 - int $w.config.f 23 28 "Route port 12 to companion controller " CONFIG_GRUSBHC_PR12 - int $w.config.f 23 29 "Route port 13 to companion controller " CONFIG_GRUSBHC_PR13 - int $w.config.f 23 30 "Route port 14 to companion controller " CONFIG_GRUSBHC_PR14 - int $w.config.f 23 31 "Route port 15 to companion controller " CONFIG_GRUSBHC_PR15 - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu23 {} { global CONFIG_GRUSBHC_ENABLE global CONFIG_GRUSBHC_EHC if {($CONFIG_GRUSBHC_ENABLE == 1)} then { - configure_entry .menu23.config.f.x1 normal {n l y}} else {configure_entry .menu23.config.f.x1 disabled {y n l}} + configure_entry .menu21.config.f.x1 normal {n l y}} else {configure_entry .menu21.config.f.x1 disabled {y n l}} global CONFIG_GRUSBHC_UHC if {($CONFIG_GRUSBHC_ENABLE == 1)} then { - configure_entry .menu23.config.f.x2 normal {n l y}} else {configure_entry .menu23.config.f.x2 disabled {y n l}} + configure_entry .menu21.config.f.x2 normal {n l y}} else {configure_entry .menu21.config.f.x2 disabled {y n l}} global CONFIG_GRUSBHC_NCC - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_UHC == 1)} then {.menu23.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x3.l configure -state normal; } else {.menu23.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x3.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_UHC == 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} global CONFIG_GRUSBHC_NPORTS - if {($CONFIG_GRUSBHC_ENABLE == 1)} then {.menu23.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x4.l configure -state normal; } else {.menu23.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x4.l configure -state disabled} - if {($CONFIG_GRUSBHC_ENABLE == 1)} then {configure_entry .menu23.config.f.x5 normal {x l}} else {configure_entry .menu23.config.f.x5 disabled {x l}} + if {($CONFIG_GRUSBHC_ENABLE == 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} + if {($CONFIG_GRUSBHC_ENABLE == 1)} then {configure_entry .menu21.config.f.x5 normal {x l}} else {configure_entry .menu21.config.f.x5 disabled {x l}} global CONFIG_GRUSBHC_ULPI - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI == 1)} then {configure_entry .menu23.config.f.x6 normal {x l}} else {configure_entry .menu23.config.f.x6 disabled {x l}} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI == 1)} then {configure_entry .menu21.config.f.x6 normal {x l}} else {configure_entry .menu21.config.f.x6 disabled {x l}} global CONFIG_GRUSBHC_VBUSEXT - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI == 1) && ($CONFIG_GRUSBHC_VBUSEXT == 1)} then {configure_entry .menu23.config.f.x7 normal {x l}} else {configure_entry .menu23.config.f.x7 disabled {x l}} - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI != 1)} then {configure_entry .menu23.config.f.x8 normal {x l}} else {configure_entry .menu23.config.f.x8 disabled {x l}} - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI != 1)} then {configure_entry .menu23.config.f.x9 normal {x l}} else {configure_entry .menu23.config.f.x9 disabled {x l}} - if {($CONFIG_GRUSBHC_ENABLE == 1)} then {configure_entry .menu23.config.f.x10 normal {m}} else {configure_entry .menu23.config.f.x10 disabled {m}} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI == 1) && ($CONFIG_GRUSBHC_VBUSEXT == 1)} then {configure_entry .menu21.config.f.x7 normal {x l}} else {configure_entry .menu21.config.f.x7 disabled {x l}} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI != 1)} then {configure_entry .menu21.config.f.x8 normal {x l}} else {configure_entry .menu21.config.f.x8 disabled {x l}} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI != 1)} then {configure_entry .menu21.config.f.x9 normal {x l}} else {configure_entry .menu21.config.f.x9 disabled {x l}} + if {($CONFIG_GRUSBHC_ENABLE == 1)} then {configure_entry .menu21.config.f.x10 normal {m}} else {configure_entry .menu21.config.f.x10 disabled {m}} global CONFIG_GRUSBHC_BEREGS if {($CONFIG_GRUSBHC_ENABLE == 1)} then { - configure_entry .menu23.config.f.x11 normal {n l y}} else {configure_entry .menu23.config.f.x11 disabled {y n l}} + configure_entry .menu21.config.f.x11 normal {n l y}} else {configure_entry .menu21.config.f.x11 disabled {y n l}} global CONFIG_GRUSBHC_BEDESC if {($CONFIG_GRUSBHC_ENABLE == 1)} then { - configure_entry .menu23.config.f.x12 normal {n l y}} else {configure_entry .menu23.config.f.x12 disabled {y n l}} + configure_entry .menu21.config.f.x12 normal {n l y}} else {configure_entry .menu21.config.f.x12 disabled {y n l}} global CONFIG_GRUSBHC_BWRD - if {($CONFIG_GRUSBHC_ENABLE == 1)} then {.menu23.config.f.x13.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x13.l configure -state normal; } else {.menu23.config.f.x13.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x13.l configure -state disabled} - if {($CONFIG_GRUSBHC_ENABLE == 1)} then {configure_entry .menu23.config.f.x14 normal {m}} else {configure_entry .menu23.config.f.x14 disabled {m}} + if {($CONFIG_GRUSBHC_ENABLE == 1)} then {.menu21.config.f.x13.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x13.l configure -state normal; } else {.menu21.config.f.x13.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x13.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1)} then {configure_entry .menu21.config.f.x14 normal {m}} else {configure_entry .menu21.config.f.x14 disabled {m}} global CONFIG_GRUSBHC_PRR if {($CONFIG_GRUSBHC_ENABLE == 1)} then { - configure_entry .menu23.config.f.x15 normal {n l y}} else {configure_entry .menu23.config.f.x15 disabled {y n l}} + configure_entry .menu21.config.f.x15 normal {n l y}} else {configure_entry .menu21.config.f.x15 disabled {y n l}} global CONFIG_GRUSBHC_NPCC - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR == 0)} then {.menu23.config.f.x16.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x16.l configure -state normal; } else {.menu23.config.f.x16.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x16.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR == 0)} then {.menu21.config.f.x16.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x16.l configure -state normal; } else {.menu21.config.f.x16.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x16.l configure -state disabled} global CONFIG_GRUSBHC_PR1 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x17.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x17.l configure -state normal; } else {.menu23.config.f.x17.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x17.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x17.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x17.l configure -state normal; } else {.menu21.config.f.x17.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x17.l configure -state disabled} global CONFIG_GRUSBHC_PR2 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x18.l configure -state normal; } else {.menu23.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x18.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x18.l configure -state normal; } else {.menu21.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x18.l configure -state disabled} global CONFIG_GRUSBHC_PR3 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x19.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x19.l configure -state normal; } else {.menu23.config.f.x19.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x19.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x19.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x19.l configure -state normal; } else {.menu21.config.f.x19.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x19.l configure -state disabled} global CONFIG_GRUSBHC_PR4 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x20.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x20.l configure -state normal; } else {.menu23.config.f.x20.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x20.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x20.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x20.l configure -state normal; } else {.menu21.config.f.x20.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x20.l configure -state disabled} global CONFIG_GRUSBHC_PR5 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x21.l configure -state normal; } else {.menu23.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x21.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x21.l configure -state normal; } else {.menu21.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x21.l configure -state disabled} global CONFIG_GRUSBHC_PR6 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x22.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x22.l configure -state normal; } else {.menu23.config.f.x22.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x22.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x22.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x22.l configure -state normal; } else {.menu21.config.f.x22.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x22.l configure -state disabled} global CONFIG_GRUSBHC_PR7 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x23.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x23.l configure -state normal; } else {.menu23.config.f.x23.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x23.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x23.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x23.l configure -state normal; } else {.menu21.config.f.x23.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x23.l configure -state disabled} global CONFIG_GRUSBHC_PR8 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x24.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x24.l configure -state normal; } else {.menu23.config.f.x24.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x24.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x24.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x24.l configure -state normal; } else {.menu21.config.f.x24.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x24.l configure -state disabled} global CONFIG_GRUSBHC_PR9 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x25.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x25.l configure -state normal; } else {.menu23.config.f.x25.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x25.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x25.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x25.l configure -state normal; } else {.menu21.config.f.x25.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x25.l configure -state disabled} global CONFIG_GRUSBHC_PR10 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x26.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x26.l configure -state normal; } else {.menu23.config.f.x26.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x26.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x26.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x26.l configure -state normal; } else {.menu21.config.f.x26.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x26.l configure -state disabled} global CONFIG_GRUSBHC_PR11 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x27.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x27.l configure -state normal; } else {.menu23.config.f.x27.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x27.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x27.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x27.l configure -state normal; } else {.menu21.config.f.x27.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x27.l configure -state disabled} global CONFIG_GRUSBHC_PR12 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x28.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x28.l configure -state normal; } else {.menu23.config.f.x28.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x28.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x28.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x28.l configure -state normal; } else {.menu21.config.f.x28.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x28.l configure -state disabled} global CONFIG_GRUSBHC_PR13 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x29.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x29.l configure -state normal; } else {.menu23.config.f.x29.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x29.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x29.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x29.l configure -state normal; } else {.menu21.config.f.x29.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x29.l configure -state disabled} global CONFIG_GRUSBHC_PR14 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x30.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x30.l configure -state normal; } else {.menu23.config.f.x30.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x30.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x30.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x30.l configure -state normal; } else {.menu21.config.f.x30.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x30.l configure -state disabled} global CONFIG_GRUSBHC_PR15 - if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu23.config.f.x31.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x31.l configure -state normal; } else {.menu23.config.f.x31.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x31.l configure -state disabled} + if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_PRR != 0)} then {.menu21.config.f.x31.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x31.l configure -state normal; } else {.menu21.config.f.x31.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x31.l configure -state disabled} } -proc update_define_menu23 {} { +proc update_define_menu21 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_GRUSBHC_ENABLE @@ -4780,35 +4650,35 @@ proc update_define_menu23 {} { if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_UHC == 1)} then {validate_int CONFIG_GRUSBHC_NCC "$CONFIG_GRUSBHC_NCC" 1} global CONFIG_GRUSBHC_NPORTS if {($CONFIG_GRUSBHC_ENABLE == 1)} then {validate_int CONFIG_GRUSBHC_NPORTS "$CONFIG_GRUSBHC_NPORTS" 1} - global tmpvar_32 + global tmpvar_31 global CONFIG_GRUSBHC_ULPI - if {$tmpvar_32 == "ULPI"} then {set CONFIG_GRUSBHC_ULPI 1} else {set CONFIG_GRUSBHC_ULPI 0} + if {$tmpvar_31 == "ULPI"} then {set CONFIG_GRUSBHC_ULPI 1} else {set CONFIG_GRUSBHC_ULPI 0} global CONFIG_GRUSBHC_UTMI16 - if {$tmpvar_32 == "UTMI+16-bit"} then {set CONFIG_GRUSBHC_UTMI16 1} else {set CONFIG_GRUSBHC_UTMI16 0} + if {$tmpvar_31 == "UTMI+16-bit"} then {set CONFIG_GRUSBHC_UTMI16 1} else {set CONFIG_GRUSBHC_UTMI16 0} global CONFIG_GRUSBHC_UTMI8 - if {$tmpvar_32 == "UTMI+8-bit"} then {set CONFIG_GRUSBHC_UTMI8 1} else {set CONFIG_GRUSBHC_UTMI8 0} - global tmpvar_33 + if {$tmpvar_31 == "UTMI+8-bit"} then {set CONFIG_GRUSBHC_UTMI8 1} else {set CONFIG_GRUSBHC_UTMI8 0} + global tmpvar_32 global CONFIG_GRUSBHC_VBUSEXT - if {$tmpvar_33 == "External"} then {set CONFIG_GRUSBHC_VBUSEXT 1} else {set CONFIG_GRUSBHC_VBUSEXT 0} + if {$tmpvar_32 == "External"} then {set CONFIG_GRUSBHC_VBUSEXT 1} else {set CONFIG_GRUSBHC_VBUSEXT 0} global CONFIG_GRUSBHC_VBUSINT - if {$tmpvar_33 == "Internal"} then {set CONFIG_GRUSBHC_VBUSINT 1} else {set CONFIG_GRUSBHC_VBUSINT 0} - global tmpvar_34 + if {$tmpvar_32 == "Internal"} then {set CONFIG_GRUSBHC_VBUSINT 1} else {set CONFIG_GRUSBHC_VBUSINT 0} + global tmpvar_33 global CONFIG_GRUSBHC_FAULTL - if {$tmpvar_34 == "ActiveLow"} then {set CONFIG_GRUSBHC_FAULTL 1} else {set CONFIG_GRUSBHC_FAULTL 0} + if {$tmpvar_33 == "ActiveLow"} then {set CONFIG_GRUSBHC_FAULTL 1} else {set CONFIG_GRUSBHC_FAULTL 0} global CONFIG_GRUSBHC_FAULTH - if {$tmpvar_34 == "ActiveHigh"} then {set CONFIG_GRUSBHC_FAULTH 1} else {set CONFIG_GRUSBHC_FAULTH 0} + if {$tmpvar_33 == "ActiveHigh"} then {set CONFIG_GRUSBHC_FAULTH 1} else {set CONFIG_GRUSBHC_FAULTH 0} global CONFIG_GRUSBHC_FAULTN - if {$tmpvar_34 == "None"} then {set CONFIG_GRUSBHC_FAULTN 1} else {set CONFIG_GRUSBHC_FAULTN 0} - global tmpvar_35 + if {$tmpvar_33 == "None"} then {set CONFIG_GRUSBHC_FAULTN 1} else {set CONFIG_GRUSBHC_FAULTN 0} + global tmpvar_34 global CONFIG_GRUSBHC_ENABLEH - if {$tmpvar_35 == "ActiveHigh"} then {set CONFIG_GRUSBHC_ENABLEH 1} else {set CONFIG_GRUSBHC_ENABLEH 0} + if {$tmpvar_34 == "ActiveHigh"} then {set CONFIG_GRUSBHC_ENABLEH 1} else {set CONFIG_GRUSBHC_ENABLEH 0} global CONFIG_GRUSBHC_ENABLEL - if {$tmpvar_35 == "ActiveLow"} then {set CONFIG_GRUSBHC_ENABLEL 1} else {set CONFIG_GRUSBHC_ENABLEL 0} - global tmpvar_36 + if {$tmpvar_34 == "ActiveLow"} then {set CONFIG_GRUSBHC_ENABLEL 1} else {set CONFIG_GRUSBHC_ENABLEL 0} + global tmpvar_35 global CONFIG_GRUSBHC_FAULT2H - if {$tmpvar_36 == "ActiveHigh"} then {set CONFIG_GRUSBHC_FAULT2H 1} else {set CONFIG_GRUSBHC_FAULT2H 0} + if {$tmpvar_35 == "ActiveHigh"} then {set CONFIG_GRUSBHC_FAULT2H 1} else {set CONFIG_GRUSBHC_FAULT2H 0} global CONFIG_GRUSBHC_FAULT2L - if {$tmpvar_36 == "ActiveLow"} then {set CONFIG_GRUSBHC_FAULT2L 1} else {set CONFIG_GRUSBHC_FAULT2L 0} + if {$tmpvar_35 == "ActiveLow"} then {set CONFIG_GRUSBHC_FAULT2L 1} else {set CONFIG_GRUSBHC_FAULT2L 0} global CONFIG_GRUSBHC_BEREGS if {($CONFIG_GRUSBHC_ENABLE == 1)} then { set CONFIG_GRUSBHC_BEREGS [expr $CONFIG_GRUSBHC_BEREGS&15]} else {set CONFIG_GRUSBHC_BEREGS [expr $CONFIG_GRUSBHC_BEREGS|16]} @@ -4855,30 +4725,30 @@ proc update_define_menu23 {} { } -proc menu24 {w title} { +proc menu22 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 24} + catch {destroy $w; unregister_active 22} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 24]] + set active_menus [lsort -integer [linsert $active_menus end 22]] message $w.m -width 400 -aspect 300 -text \ "UART, timer, I/O port and interrupt controller" -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "UART, timer, I/O port and interrupt controller" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu25 .menu25 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu23 .menu23 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4906,42 +4776,42 @@ proc menu24 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 24 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_37 - minimenu $w.config.f 24 1 "UART1 FIFO depth" tmpvar_37 CONFIG_UA1_FIFO1 + bool $w.config.f 22 0 "Enable console UART " CONFIG_UART1_ENABLE + global tmpvar_36 + minimenu $w.config.f 22 1 "UART1 FIFO depth" tmpvar_36 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_37 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_37 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_37 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_37 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_37 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_37 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_36 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_36 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_36 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_36 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_36 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_36 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 - bool $w.config.f 24 2 "Enable secondary UART " CONFIG_UART2_ENABLE - global tmpvar_38 - minimenu $w.config.f 24 3 "UART2 FIFO depth" tmpvar_38 CONFIG_UA2_FIFO1 + bool $w.config.f 22 2 "Enable secondary UART " CONFIG_UART2_ENABLE + global tmpvar_37 + minimenu $w.config.f 22 3 "UART2 FIFO depth" tmpvar_37 CONFIG_UA2_FIFO1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"UART2 FIFO depth\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_38 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_38 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_38 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_38 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_38 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_38 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_37 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_37 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_37 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_37 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_37 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_37 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 6 - bool $w.config.f 24 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE - bool $w.config.f 24 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC - int $w.config.f 24 6 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC - bool $w.config.f 24 7 "Enable Timer Unit " CONFIG_GPT_ENABLE - int $w.config.f 24 8 "Number of timers (1 - 7) " CONFIG_GPT_NTIM - int $w.config.f 24 9 "Scaler width (2 - 16) " CONFIG_GPT_SW - int $w.config.f 24 10 "Timer width (2 - 32) " CONFIG_GPT_TW - int $w.config.f 24 11 "Timer unit interrupt " CONFIG_GPT_IRQ - bool $w.config.f 24 12 "Separate interrupts " CONFIG_GPT_SEPIRQ - bool $w.config.f 24 13 "Watchdog enable " CONFIG_GPT_WDOGEN - hex $w.config.f 24 14 "Initial watchdog time-out value " CONFIG_GPT_WDOG - bool $w.config.f 24 15 "Enable generic GPIO port " CONFIG_GRGPIO_ENABLE - int $w.config.f 24 16 "GPIO width " CONFIG_GRGPIO_WIDTH - hex $w.config.f 24 17 "GPIO interrupt mask " CONFIG_GRGPIO_IMASK + bool $w.config.f 22 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE + bool $w.config.f 22 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC + int $w.config.f 22 6 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC + bool $w.config.f 22 7 "Enable Timer Unit " CONFIG_GPT_ENABLE + int $w.config.f 22 8 "Number of timers (1 - 7) " CONFIG_GPT_NTIM + int $w.config.f 22 9 "Scaler width (2 - 16) " CONFIG_GPT_SW + int $w.config.f 22 10 "Timer width (2 - 32) " CONFIG_GPT_TW + int $w.config.f 22 11 "Timer unit interrupt " CONFIG_GPT_IRQ + bool $w.config.f 22 12 "Separate interrupts " CONFIG_GPT_SEPIRQ + bool $w.config.f 22 13 "Watchdog enable " CONFIG_GPT_WDOGEN + hex $w.config.f 22 14 "Initial watchdog time-out value " CONFIG_GPT_WDOG + bool $w.config.f 22 15 "Enable generic GPIO port " CONFIG_GRGPIO_ENABLE + int $w.config.f 22 16 "GPIO width " CONFIG_GRGPIO_WIDTH + hex $w.config.f 22 17 "GPIO interrupt mask " CONFIG_GRGPIO_IMASK @@ -4978,78 +4848,78 @@ proc menu24 {w title} { } } -proc update_menu24 {} { +proc update_menu22 {} { global CONFIG_UART1_ENABLE - if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu24.config.f.x1 normal {x l}} else {configure_entry .menu24.config.f.x1 disabled {x l}} + if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu22.config.f.x1 normal {x l}} else {configure_entry .menu22.config.f.x1 disabled {x l}} global CONFIG_DSU_UART global CONFIG_UART2_ENABLE if {($CONFIG_DSU_UART != 1)} then { - configure_entry .menu24.config.f.x2 normal {n l y}} else {configure_entry .menu24.config.f.x2 disabled {y n l}} - if {($CONFIG_DSU_UART != 1) && ($CONFIG_UART2_ENABLE == 1)} then {configure_entry .menu24.config.f.x3 normal {x l}} else {configure_entry .menu24.config.f.x3 disabled {x l}} + configure_entry .menu22.config.f.x2 normal {n l y}} else {configure_entry .menu22.config.f.x2 disabled {y n l}} + if {($CONFIG_DSU_UART != 1) && ($CONFIG_UART2_ENABLE == 1)} then {configure_entry .menu22.config.f.x3 normal {x l}} else {configure_entry .menu22.config.f.x3 disabled {x l}} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { - configure_entry .menu24.config.f.x5 normal {n l y}} else {configure_entry .menu24.config.f.x5 disabled {y n l}} + configure_entry .menu22.config.f.x5 normal {n l y}} else {configure_entry .menu22.config.f.x5 disabled {y n l}} global CONFIG_IRQ3_NSEC - if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {.menu24.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x6.l configure -state normal; } else {.menu24.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x6.l configure -state disabled} + if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {.menu22.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x6.l configure -state normal; } else {.menu22.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x6.l configure -state disabled} global CONFIG_GPT_ENABLE global CONFIG_GPT_NTIM - if {($CONFIG_GPT_ENABLE == 1)} then {.menu24.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x8.l configure -state normal; } else {.menu24.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x8.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1)} then {.menu22.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x8.l configure -state normal; } else {.menu22.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x8.l configure -state disabled} global CONFIG_GPT_SW - if {($CONFIG_GPT_ENABLE == 1)} then {.menu24.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x9.l configure -state normal; } else {.menu24.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x9.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1)} then {.menu22.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x9.l configure -state normal; } else {.menu22.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x9.l configure -state disabled} global CONFIG_GPT_TW - if {($CONFIG_GPT_ENABLE == 1)} then {.menu24.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x10.l configure -state normal; } else {.menu24.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x10.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1)} then {.menu22.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x10.l configure -state normal; } else {.menu22.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x10.l configure -state disabled} global CONFIG_GPT_IRQ - if {($CONFIG_GPT_ENABLE == 1)} then {.menu24.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x11.l configure -state normal; } else {.menu24.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x11.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1)} then {.menu22.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x11.l configure -state normal; } else {.menu22.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x11.l configure -state disabled} global CONFIG_GPT_SEPIRQ if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu24.config.f.x12 normal {n l y}} else {configure_entry .menu24.config.f.x12 disabled {y n l}} + configure_entry .menu22.config.f.x12 normal {n l y}} else {configure_entry .menu22.config.f.x12 disabled {y n l}} global CONFIG_GPT_WDOGEN if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu24.config.f.x13 normal {n l y}} else {configure_entry .menu24.config.f.x13 disabled {y n l}} + configure_entry .menu22.config.f.x13 normal {n l y}} else {configure_entry .menu22.config.f.x13 disabled {y n l}} global CONFIG_GPT_WDOG - if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu24.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x14.l configure -state normal; } else {.menu24.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x14.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu22.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x14.l configure -state normal; } else {.menu22.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x14.l configure -state disabled} global CONFIG_GRGPIO_ENABLE global CONFIG_GRGPIO_WIDTH - if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu24.config.f.x16.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x16.l configure -state normal; } else {.menu24.config.f.x16.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x16.l configure -state disabled} + if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu22.config.f.x16.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x16.l configure -state normal; } else {.menu22.config.f.x16.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x16.l configure -state disabled} global CONFIG_GRGPIO_IMASK - if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu24.config.f.x17.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x17.l configure -state normal; } else {.menu24.config.f.x17.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x17.l configure -state disabled} + if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu22.config.f.x17.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x17.l configure -state normal; } else {.menu22.config.f.x17.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x17.l configure -state disabled} } -proc update_define_menu24 {} { +proc update_define_menu22 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_37 + global tmpvar_36 global CONFIG_UA1_FIFO1 - if {$tmpvar_37 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_36 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_37 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_36 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_37 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_36 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_37 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_36 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_37 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_36 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_37 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_36 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_DSU_UART global CONFIG_UART2_ENABLE if {($CONFIG_DSU_UART != 1)} then { set CONFIG_UART2_ENABLE [expr $CONFIG_UART2_ENABLE&15]} else {set CONFIG_UART2_ENABLE [expr $CONFIG_UART2_ENABLE|16]} - global tmpvar_38 + global tmpvar_37 global CONFIG_UA2_FIFO1 - if {$tmpvar_38 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} + if {$tmpvar_37 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} global CONFIG_UA2_FIFO2 - if {$tmpvar_38 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} + if {$tmpvar_37 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} global CONFIG_UA2_FIFO4 - if {$tmpvar_38 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} + if {$tmpvar_37 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} global CONFIG_UA2_FIFO8 - if {$tmpvar_38 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} + if {$tmpvar_37 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} global CONFIG_UA2_FIFO16 - if {$tmpvar_38 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} + if {$tmpvar_37 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} global CONFIG_UA2_FIFO32 - if {$tmpvar_38 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} + if {$tmpvar_37 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -5081,30 +4951,30 @@ proc update_define_menu24 {} { } -proc menu25 {w title} { +proc menu23 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 25} + catch {destroy $w; unregister_active 23} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 25]] + set active_menus [lsort -integer [linsert $active_menus end 23]] message $w.m -width 400 -aspect 300 -text \ "Spacewire " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "Spacewire " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu26 .menu26 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu24 .menu24 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -5132,59 +5002,59 @@ proc menu25 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 25 0 "Enable Spacewire links " CONFIG_SPW_ENABLE - int $w.config.f 25 1 "Number of links (1 - 3)" CONFIG_SPW_NUM - global tmpvar_39 - minimenu $w.config.f 25 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_39 CONFIG_SPW_AHBFIFO4 + bool $w.config.f 23 0 "Enable Spacewire links " CONFIG_SPW_ENABLE + int $w.config.f 23 1 "Number of links (1 - 3)" CONFIG_SPW_NUM + global tmpvar_38 + minimenu $w.config.f 23 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_38 CONFIG_SPW_AHBFIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB RX/TX FIFO size (32-bit words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_39 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_39 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_39 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_39 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_38 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_38 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_38 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_38 -value "32" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_40 - minimenu $w.config.f 25 3 "Receiver FIFO size (bytes) " tmpvar_40 CONFIG_SPW_RXFIFO16 + global tmpvar_39 + minimenu $w.config.f 23 3 "Receiver FIFO size (bytes) " tmpvar_39 CONFIG_SPW_RXFIFO16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Receiver FIFO size (bytes) \"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_40 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_40 -value "32" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_40 -value "64" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_39 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_39 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_39 -value "64" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 - bool $w.config.f 25 4 "Enable RMAP protocol " CONFIG_SPW_RMAP - global tmpvar_41 - minimenu $w.config.f 25 5 "RMAP buffer size (bytes) " tmpvar_41 CONFIG_SPW_RMAPBUF2 + bool $w.config.f 23 4 "Enable RMAP protocol " CONFIG_SPW_RMAP + global tmpvar_40 + minimenu $w.config.f 23 5 "RMAP buffer size (bytes) " tmpvar_40 CONFIG_SPW_RMAPBUF2 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"RMAP buffer size (bytes) \"" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_41 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_41 -value "128" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_41 -value "192" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_41 -value "256" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_40 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_40 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_40 -value "192" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_40 -value "256" -command "update_active" menusplit $w $w.config.f.x5.x.menu 4 - bool $w.config.f 25 6 "Enable RMAP CRC check " CONFIG_SPW_RMAPCRC - bool $w.config.f 25 7 "Enable Rx unaligned transfers " CONFIG_SPW_RXUNAL - bool $w.config.f 25 8 "Spacewire FIFO protection " CONFIG_SPW_FT - bool $w.config.f 25 9 "Use GRSPWC netlist " CONFIG_SPW_NETLIST - int $w.config.f 25 10 "Number of ports (1 - 2)" CONFIG_SPW_PORTS - global tmpvar_42 - minimenu $w.config.f 25 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_42 CONFIG_SPW_GRSPW1 + bool $w.config.f 23 6 "Enable RMAP CRC check " CONFIG_SPW_RMAPCRC + bool $w.config.f 23 7 "Enable Rx unaligned transfers " CONFIG_SPW_RXUNAL + bool $w.config.f 23 8 "Spacewire FIFO protection " CONFIG_SPW_FT + bool $w.config.f 23 9 "Use GRSPWC netlist " CONFIG_SPW_NETLIST + int $w.config.f 23 10 "Number of ports (1 - 2)" CONFIG_SPW_PORTS + global tmpvar_41 + minimenu $w.config.f 23 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_41 CONFIG_SPW_GRSPW1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Select GRSPW core (GRSPW1/GRSPW2) \"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_42 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_42 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_41 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_41 -value "2" -command "update_active" menusplit $w $w.config.f.x11.x.menu 2 - int $w.config.f 25 12 "Number of DMA channels (1 - 4)" CONFIG_SPW_DMACHAN - bool $w.config.f 25 13 "Receiver and transmitter uses same clock " CONFIG_SPW_RTSAME - global tmpvar_43 - minimenu $w.config.f 25 14 "Select receiver clock type " tmpvar_43 CONFIG_SPW_RX_SDR + int $w.config.f 23 12 "Number of DMA channels (1 - 4)" CONFIG_SPW_DMACHAN + bool $w.config.f 23 13 "Receiver and transmitter uses same clock " CONFIG_SPW_RTSAME + global tmpvar_42 + minimenu $w.config.f 23 14 "Select receiver clock type " tmpvar_42 CONFIG_SPW_RX_SDR menu $w.config.f.x14.x.menu -tearoffcommand "menutitle \"Select receiver clock type \"" - $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_43 -value "SDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_43 -value "DDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_43 -value "Xor" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_43 -value "Aeroflex" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_42 -value "SDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_42 -value "DDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_42 -value "Xor" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_42 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x14.x.menu 4 - global tmpvar_44 - minimenu $w.config.f 25 15 "Select transmitter clock type " tmpvar_44 CONFIG_SPW_TX_SDR + global tmpvar_43 + minimenu $w.config.f 23 15 "Select transmitter clock type " tmpvar_43 CONFIG_SPW_TX_SDR menu $w.config.f.x15.x.menu -tearoffcommand "menutitle \"Select transmitter clock type \"" - $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_44 -value "SDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_44 -value "DDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_44 -value "Aeroflex" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_43 -value "SDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_43 -value "DDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_43 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x15.x.menu 3 @@ -5222,76 +5092,76 @@ proc menu25 {w title} { } } -proc update_menu25 {} { +proc update_menu23 {} { global CONFIG_SPW_ENABLE global CONFIG_SPW_NUM - if {($CONFIG_SPW_ENABLE == 1)} then {.menu25.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu25.config.f.x1.l configure -state normal; } else {.menu25.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu25.config.f.x1.l configure -state disabled} - if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu25.config.f.x2 normal {x l}} else {configure_entry .menu25.config.f.x2 disabled {x l}} - if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu25.config.f.x3 normal {x l}} else {configure_entry .menu25.config.f.x3 disabled {x l}} + if {($CONFIG_SPW_ENABLE == 1)} then {.menu23.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x1.l configure -state normal; } else {.menu23.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x1.l configure -state disabled} + if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu23.config.f.x2 normal {x l}} else {configure_entry .menu23.config.f.x2 disabled {x l}} + if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu23.config.f.x3 normal {x l}} else {configure_entry .menu23.config.f.x3 disabled {x l}} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then { - configure_entry .menu25.config.f.x4 normal {n l y}} else {configure_entry .menu25.config.f.x4 disabled {y n l}} - if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then {configure_entry .menu25.config.f.x5 normal {x l}} else {configure_entry .menu25.config.f.x5 disabled {x l}} + configure_entry .menu23.config.f.x4 normal {n l y}} else {configure_entry .menu23.config.f.x4 disabled {y n l}} + if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then {configure_entry .menu23.config.f.x5 normal {x l}} else {configure_entry .menu23.config.f.x5 disabled {x l}} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then { - configure_entry .menu25.config.f.x6 normal {n l y}} else {configure_entry .menu25.config.f.x6 disabled {y n l}} + configure_entry .menu23.config.f.x6 normal {n l y}} else {configure_entry .menu23.config.f.x6 disabled {y n l}} global CONFIG_SPW_RXUNAL if {($CONFIG_SPW_ENABLE == 1)} then { - configure_entry .menu25.config.f.x7 normal {n l y}} else {configure_entry .menu25.config.f.x7 disabled {y n l}} + configure_entry .menu23.config.f.x7 normal {n l y}} else {configure_entry .menu23.config.f.x7 disabled {y n l}} global CONFIG_SPW_FT if {($CONFIG_SPW_ENABLE == 1)} then { - configure_entry .menu25.config.f.x8 normal {n l y}} else {configure_entry .menu25.config.f.x8 disabled {y n l}} + configure_entry .menu23.config.f.x8 normal {n l y}} else {configure_entry .menu23.config.f.x8 disabled {y n l}} global CONFIG_SPW_NETLIST if {($CONFIG_SPW_ENABLE == 1)} then { - configure_entry .menu25.config.f.x9 normal {n l y}} else {configure_entry .menu25.config.f.x9 disabled {y n l}} + configure_entry .menu23.config.f.x9 normal {n l y}} else {configure_entry .menu23.config.f.x9 disabled {y n l}} global CONFIG_SPW_PORTS - if {($CONFIG_SPW_ENABLE == 1)} then {.menu25.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu25.config.f.x10.l configure -state normal; } else {.menu25.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu25.config.f.x10.l configure -state disabled} - if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu25.config.f.x11 normal {x l}} else {configure_entry .menu25.config.f.x11 disabled {x l}} + if {($CONFIG_SPW_ENABLE == 1)} then {.menu23.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x10.l configure -state normal; } else {.menu23.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x10.l configure -state disabled} + if {($CONFIG_SPW_ENABLE == 1)} then {configure_entry .menu23.config.f.x11 normal {x l}} else {configure_entry .menu23.config.f.x11 disabled {x l}} global CONFIG_SPW_GRSPW2 global CONFIG_SPW_DMACHAN - if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {.menu25.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu25.config.f.x12.l configure -state normal; } else {.menu25.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu25.config.f.x12.l configure -state disabled} + if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 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} global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - configure_entry .menu25.config.f.x13 normal {n l y}} else {configure_entry .menu25.config.f.x13 disabled {y n l}} - if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {configure_entry .menu25.config.f.x14 normal {x l}} else {configure_entry .menu25.config.f.x14 disabled {x l}} - if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {configure_entry .menu25.config.f.x15 normal {x l}} else {configure_entry .menu25.config.f.x15 disabled {x l}} + configure_entry .menu23.config.f.x13 normal {n l y}} else {configure_entry .menu23.config.f.x13 disabled {y n l}} + if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {configure_entry .menu23.config.f.x14 normal {x l}} else {configure_entry .menu23.config.f.x14 disabled {x l}} + if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {configure_entry .menu23.config.f.x15 normal {x l}} else {configure_entry .menu23.config.f.x15 disabled {x l}} } -proc update_define_menu25 {} { +proc update_define_menu23 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_SPW_ENABLE global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_NUM "$CONFIG_SPW_NUM" 1} - global tmpvar_39 + global tmpvar_38 global CONFIG_SPW_AHBFIFO4 - if {$tmpvar_39 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} + if {$tmpvar_38 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} global CONFIG_SPW_AHBFIFO8 - if {$tmpvar_39 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} + if {$tmpvar_38 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} global CONFIG_SPW_AHBFIFO16 - if {$tmpvar_39 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} + if {$tmpvar_38 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} global CONFIG_SPW_AHBFIFO32 - if {$tmpvar_39 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} - global tmpvar_40 + if {$tmpvar_38 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} + global tmpvar_39 global CONFIG_SPW_RXFIFO16 - if {$tmpvar_40 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} + if {$tmpvar_39 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} global CONFIG_SPW_RXFIFO32 - if {$tmpvar_40 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} + if {$tmpvar_39 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} global CONFIG_SPW_RXFIFO64 - if {$tmpvar_40 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} + if {$tmpvar_39 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP&15]} else {set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP|16]} - global tmpvar_41 + global tmpvar_40 global CONFIG_SPW_RMAPBUF2 - if {$tmpvar_41 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} + if {$tmpvar_40 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} global CONFIG_SPW_RMAPBUF4 - if {$tmpvar_41 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} + if {$tmpvar_40 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} global CONFIG_SPW_RMAPBUF6 - if {$tmpvar_41 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} + if {$tmpvar_40 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} global CONFIG_SPW_RMAPBUF8 - if {$tmpvar_41 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} + if {$tmpvar_40 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC&15]} else {set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC|16]} @@ -5306,59 +5176,59 @@ proc update_define_menu25 {} { set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST&15]} else {set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST|16]} global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_PORTS "$CONFIG_SPW_PORTS" 1} - global tmpvar_42 + global tmpvar_41 global CONFIG_SPW_GRSPW1 - if {$tmpvar_42 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} + if {$tmpvar_41 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} global CONFIG_SPW_GRSPW2 - if {$tmpvar_42 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} + if {$tmpvar_41 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} global CONFIG_SPW_DMACHAN if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {validate_int CONFIG_SPW_DMACHAN "$CONFIG_SPW_DMACHAN" 1} global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME&15]} else {set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME|16]} - global tmpvar_43 + global tmpvar_42 global CONFIG_SPW_RX_SDR - if {$tmpvar_43 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} + if {$tmpvar_42 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} global CONFIG_SPW_RX_DDR - if {$tmpvar_43 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} + if {$tmpvar_42 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} global CONFIG_SPW_RX_XOR - if {$tmpvar_43 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} + if {$tmpvar_42 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} global CONFIG_SPW_RX_AFLEX - if {$tmpvar_43 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} - global tmpvar_44 + if {$tmpvar_42 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} + global tmpvar_43 global CONFIG_SPW_TX_SDR - if {$tmpvar_44 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} + if {$tmpvar_43 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} global CONFIG_SPW_TX_DDR - if {$tmpvar_44 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} + if {$tmpvar_43 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} global CONFIG_SPW_TX_AFLEX - if {$tmpvar_44 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} + if {$tmpvar_43 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} } -proc menu26 {w title} { +proc menu24 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 26} + catch {destroy $w; unregister_active 24} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 26]] + set active_menus [lsort -integer [linsert $active_menus end 24]] message $w.m -width 400 -aspect 300 -text \ "Keybord and VGA interface" -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "Keybord and VGA interface" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 26; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 26; menu27 .menu27 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu25 .menu25 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 26" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 26; menu25 .menu25 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 26; menu25 .menu25 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -5386,9 +5256,9 @@ proc menu26 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 26 0 "Keyboard/mouse (PS2) interface " CONFIG_KBD_ENABLE - bool $w.config.f 26 1 "Text-based VGA interface " CONFIG_VGA_ENABLE - bool $w.config.f 26 2 "SVGA graphical frame buffer " CONFIG_SVGA_ENABLE + bool $w.config.f 24 0 "Keyboard/mouse (PS2) interface " CONFIG_KBD_ENABLE + bool $w.config.f 24 1 "Text-based VGA interface " CONFIG_VGA_ENABLE + bool $w.config.f 24 2 "SVGA graphical frame buffer " CONFIG_SVGA_ENABLE @@ -5425,15 +5295,15 @@ proc menu26 {w title} { } } -proc update_menu26 {} { +proc update_menu24 {} { global CONFIG_VGA_ENABLE global CONFIG_SVGA_ENABLE if {($CONFIG_VGA_ENABLE == 0)} then { - configure_entry .menu26.config.f.x2 normal {n l y}} else {configure_entry .menu26.config.f.x2 disabled {y n l}} + configure_entry .menu24.config.f.x2 normal {n l y}} else {configure_entry .menu24.config.f.x2 disabled {y n l}} } -proc update_define_menu26 {} { +proc update_define_menu24 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_VGA_ENABLE @@ -5443,30 +5313,30 @@ proc update_define_menu26 {} { } -proc menu27 {w title} { +proc menu25 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 27} + catch {destroy $w; unregister_active 25} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 27]] + set active_menus [lsort -integer [linsert $active_menus end 25]] message $w.m -width 400 -aspect 300 -text \ "SPI" -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "SPI" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 27; break" - set nextscript "catch {focus $oldFocus}; menu28 .menu28 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; break" + set nextscript "catch {focus $oldFocus}; menu26 .menu26 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 27" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 27; menu26 .menu26 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 27; menu26 .menu26 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -5494,8 +5364,8 @@ proc menu27 {w title} { pack $w.config.canvas -side right -fill y - submenu $w.config.f 27 0 "SPI memory controller " 28 - submenu $w.config.f 27 1 "SPI controller(s) " 29 + submenu $w.config.f 25 0 "SPI memory controller " 26 + submenu $w.config.f 25 1 "SPI controller(s) " 27 @@ -5532,40 +5402,40 @@ proc menu27 {w title} { } } -proc update_menu27 {} { +proc update_menu25 {} { } -proc update_define_menu27 {} { +proc update_define_menu25 {} { update_define_mainmenu global CONFIG_MODULES } -proc menu28 {w title} { +proc menu26 {w title} { set oldFocus [focus] - catch {focus .menu27} - catch {destroy $w; unregister_active 28} + catch {focus .menu25} + catch {destroy $w; unregister_active 26} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 28]] + set active_menus [lsort -integer [linsert $active_menus end 26]] message $w.m -width 400 -aspect 300 -text \ "SPI memory controller " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "SPI memory controller " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 28; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 28; menu29 .menu29 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 26; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 26; menu27 .menu27 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 28" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 26" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 28; menu27 .menu27 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 28; menu27 .menu27 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 26; menu25 .menu25 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 26; menu25 .menu25 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -5593,22 +5463,23 @@ proc menu28 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 28 0 "Enable SPI memory controller " CONFIG_SPIMCTRL - bool $w.config.f 28 1 "Enable SD card support " CONFIG_SPIMCTRL_SDCARD - hex $w.config.f 28 2 "Read instruction " CONFIG_SPIMCTRL_READCMD - bool $w.config.f 28 3 "Read instruction requires dummy byte " CONFIG_SPIMCTRL_DUMMYBYTE - bool $w.config.f 28 4 "Enable dual output for reads " CONFIG_SPIMCTRL_DUALOUTPUT - int $w.config.f 28 5 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER - int $w.config.f 28 6 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER - int $w.config.f 28 7 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT + bool $w.config.f 26 0 "Enable SPI memory controller " CONFIG_SPIMCTRL + bool $w.config.f 26 1 "Enable SD card support " CONFIG_SPIMCTRL_SDCARD + hex $w.config.f 26 2 "Read instruction " CONFIG_SPIMCTRL_READCMD + bool $w.config.f 26 3 "Read instruction requires dummy byte " CONFIG_SPIMCTRL_DUMMYBYTE + bool $w.config.f 26 4 "Enable dual output for reads " CONFIG_SPIMCTRL_DUALOUTPUT + hex $w.config.f 26 5 "Address offset " CONFIG_SPIMCTRL_OFFSET + int $w.config.f 26 6 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER + int $w.config.f 26 7 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER + int $w.config.f 26 8 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT focus $w update_active global winx; global winy - if {[winfo exists .menu27] == 0} then {menu27 .menu27 "SPI"} - set winx [expr [winfo x .menu27]+30]; set winy [expr [winfo y .menu27]+30] + if {[winfo exists .menu25] == 0} then {menu25 .menu25 "SPI"} + set winx [expr [winfo x .menu25]+30]; set winy [expr [winfo y .menu25]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f @@ -5637,29 +5508,31 @@ proc menu28 {w title} { } } -proc update_menu28 {} { +proc update_menu26 {} { global CONFIG_SPIMCTRL global CONFIG_SPIMCTRL_SDCARD if {($CONFIG_SPIMCTRL == 1)} then { - configure_entry .menu28.config.f.x1 normal {n l y}} else {configure_entry .menu28.config.f.x1 disabled {y n l}} + configure_entry .menu26.config.f.x1 normal {n l y}} else {configure_entry .menu26.config.f.x1 disabled {y n l}} global CONFIG_SPIMCTRL_READCMD - if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {.menu28.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu28.config.f.x2.l configure -state normal; } else {.menu28.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu28.config.f.x2.l configure -state disabled} + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {.menu26.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu26.config.f.x2.l configure -state normal; } else {.menu26.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu26.config.f.x2.l configure -state disabled} global CONFIG_SPIMCTRL_DUMMYBYTE if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { - configure_entry .menu28.config.f.x3 normal {n l y}} else {configure_entry .menu28.config.f.x3 disabled {y n l}} + configure_entry .menu26.config.f.x3 normal {n l y}} else {configure_entry .menu26.config.f.x3 disabled {y n l}} global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { - configure_entry .menu28.config.f.x4 normal {n l y}} else {configure_entry .menu28.config.f.x4 disabled {y n l}} + configure_entry .menu26.config.f.x4 normal {n l y}} else {configure_entry .menu26.config.f.x4 disabled {y n l}} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {.menu26.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu26.config.f.x5.l configure -state normal; } else {.menu26.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu26.config.f.x5.l configure -state disabled} global CONFIG_SPIMCTRL_SCALER - if {($CONFIG_SPIMCTRL == 1)} then {.menu28.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu28.config.f.x5.l configure -state normal; } else {.menu28.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu28.config.f.x5.l configure -state disabled} + if {($CONFIG_SPIMCTRL == 1)} then {.menu26.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu26.config.f.x6.l configure -state normal; } else {.menu26.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu26.config.f.x6.l configure -state disabled} global CONFIG_SPIMCTRL_ASCALER - if {($CONFIG_SPIMCTRL == 1)} then {.menu28.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu28.config.f.x6.l configure -state normal; } else {.menu28.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu28.config.f.x6.l configure -state disabled} + if {($CONFIG_SPIMCTRL == 1)} then {.menu26.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu26.config.f.x7.l configure -state normal; } else {.menu26.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu26.config.f.x7.l configure -state disabled} global CONFIG_SPIMCTRL_PWRUPCNT - if {($CONFIG_SPIMCTRL == 1)} then {.menu28.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu28.config.f.x7.l configure -state normal; } else {.menu28.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu28.config.f.x7.l configure -state disabled} + if {($CONFIG_SPIMCTRL == 1)} then {.menu26.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu26.config.f.x8.l configure -state normal; } else {.menu26.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu26.config.f.x8.l configure -state disabled} } -proc update_define_menu28 {} { +proc update_define_menu26 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_SPIMCTRL @@ -5674,6 +5547,8 @@ proc update_define_menu28 {} { global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT&15]} else {set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT|16]} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {validate_hex CONFIG_SPIMCTRL_OFFSET "$CONFIG_SPIMCTRL_OFFSET" 0} global CONFIG_SPIMCTRL_SCALER if {($CONFIG_SPIMCTRL == 1)} then {validate_int CONFIG_SPIMCTRL_SCALER "$CONFIG_SPIMCTRL_SCALER" 1} global CONFIG_SPIMCTRL_ASCALER @@ -5683,30 +5558,30 @@ proc update_define_menu28 {} { } -proc menu29 {w title} { +proc menu27 {w title} { set oldFocus [focus] - catch {focus .menu27} - catch {destroy $w; unregister_active 29} + catch {focus .menu25} + catch {destroy $w; unregister_active 27} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 29]] + set active_menus [lsort -integer [linsert $active_menus end 27]] message $w.m -width 400 -aspect 300 -text \ "SPI controller(s) " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "SPI controller(s) " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 29; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 29; catch {destroy .menu27}; unregister_active 27; catch {destroy .menu13}; unregister_active 13; menu30 .menu30 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 27; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 27; catch {destroy .menu25}; unregister_active 25; catch {destroy .menu13}; unregister_active 13; menu28 .menu28 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 29" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 27" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 29; menu28 .menu28 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 29; menu28 .menu28 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 27; menu26 .menu26 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 27; menu26 .menu26 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -5734,23 +5609,23 @@ proc menu29 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 29 0 "Enable SPI controller(s) " CONFIG_SPICTRL_ENABLE - int $w.config.f 29 1 "Number of SPI controllers " CONFIG_SPICTRL_NUM - int $w.config.f 29 2 "Slave select lines " CONFIG_SPICTRL_SLVS - int $w.config.f 29 3 "FIFO depth (2^N) " CONFIG_SPICTRL_FIFO - bool $w.config.f 29 4 "Enable slave select registers" CONFIG_SPICTRL_SLVREG - bool $w.config.f 29 5 "Enable automatic slave select" CONFIG_SPICTRL_ASEL - bool $w.config.f 29 6 "Support automated transfers " CONFIG_SPICTRL_AM - bool $w.config.f 29 7 "Support open drain mode " CONFIG_SPICTRL_ODMODE - bool $w.config.f 29 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN - int $w.config.f 29 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN - bool $w.config.f 29 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM - global tmpvar_45 - minimenu $w.config.f 29 11 "Fault-tolerance" tmpvar_45 CONFIG_SPICTRL_NOFT + bool $w.config.f 27 0 "Enable SPI controller(s) " CONFIG_SPICTRL_ENABLE + int $w.config.f 27 1 "Number of SPI controllers " CONFIG_SPICTRL_NUM + int $w.config.f 27 2 "Slave select lines " CONFIG_SPICTRL_SLVS + int $w.config.f 27 3 "FIFO depth (2^N) " CONFIG_SPICTRL_FIFO + bool $w.config.f 27 4 "Enable slave select registers" CONFIG_SPICTRL_SLVREG + bool $w.config.f 27 5 "Enable automatic slave select" CONFIG_SPICTRL_ASEL + bool $w.config.f 27 6 "Support automated transfers " CONFIG_SPICTRL_AM + bool $w.config.f 27 7 "Support open drain mode " CONFIG_SPICTRL_ODMODE + bool $w.config.f 27 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN + int $w.config.f 27 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN + bool $w.config.f 27 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM + global tmpvar_44 + minimenu $w.config.f 27 11 "Fault-tolerance" tmpvar_44 CONFIG_SPICTRL_NOFT menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" - $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_45 -value "None" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_45 -value "Parity-DMR" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_45 -value "TMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_44 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_44 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_44 -value "TMR" -command "update_active" menusplit $w $w.config.f.x11.x.menu 3 @@ -5758,8 +5633,8 @@ proc menu29 {w title} { focus $w update_active global winx; global winy - if {[winfo exists .menu27] == 0} then {menu27 .menu27 "SPI"} - set winx [expr [winfo x .menu27]+30]; set winy [expr [winfo y .menu27]+30] + if {[winfo exists .menu25] == 0} then {menu25 .menu25 "SPI"} + set winx [expr [winfo x .menu25]+30]; set winy [expr [winfo y .menu25]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f @@ -5788,39 +5663,39 @@ proc menu29 {w title} { } } -proc update_menu29 {} { +proc update_menu27 {} { global CONFIG_SPICTRL_ENABLE global CONFIG_SPICTRL_NUM - if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu29.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu29.config.f.x1.l configure -state normal; } else {.menu29.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu29.config.f.x1.l configure -state disabled} + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu27.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu27.config.f.x1.l configure -state normal; } else {.menu27.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu27.config.f.x1.l configure -state disabled} global CONFIG_SPICTRL_SLVS - if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu29.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu29.config.f.x2.l configure -state normal; } else {.menu29.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu29.config.f.x2.l configure -state disabled} + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu27.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu27.config.f.x2.l configure -state normal; } else {.menu27.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu27.config.f.x2.l configure -state disabled} global CONFIG_SPICTRL_FIFO - if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu29.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu29.config.f.x3.l configure -state normal; } else {.menu29.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu29.config.f.x3.l configure -state disabled} + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu27.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu27.config.f.x3.l configure -state normal; } else {.menu27.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu27.config.f.x3.l configure -state disabled} global CONFIG_SPICTRL_SLVREG if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu29.config.f.x4 normal {n l y}} else {configure_entry .menu29.config.f.x4 disabled {y n l}} + configure_entry .menu27.config.f.x4 normal {n l y}} else {configure_entry .menu27.config.f.x4 disabled {y n l}} global CONFIG_SPICTRL_ASEL if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu29.config.f.x5 normal {n l y}} else {configure_entry .menu29.config.f.x5 disabled {y n l}} + configure_entry .menu27.config.f.x5 normal {n l y}} else {configure_entry .menu27.config.f.x5 disabled {y n l}} global CONFIG_SPICTRL_AM if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu29.config.f.x6 normal {n l y}} else {configure_entry .menu29.config.f.x6 disabled {y n l}} + configure_entry .menu27.config.f.x6 normal {n l y}} else {configure_entry .menu27.config.f.x6 disabled {y n l}} global CONFIG_SPICTRL_ODMODE if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu29.config.f.x7 normal {n l y}} else {configure_entry .menu29.config.f.x7 disabled {y n l}} + configure_entry .menu27.config.f.x7 normal {n l y}} else {configure_entry .menu27.config.f.x7 disabled {y n l}} global CONFIG_SPICTRL_TWEN if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu29.config.f.x8 normal {n l y}} else {configure_entry .menu29.config.f.x8 disabled {y n l}} + configure_entry .menu27.config.f.x8 normal {n l y}} else {configure_entry .menu27.config.f.x8 disabled {y n l}} global CONFIG_SPICTRL_MAXWLEN - if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu29.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu29.config.f.x9.l configure -state normal; } else {.menu29.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu29.config.f.x9.l configure -state disabled} + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu27.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu27.config.f.x9.l configure -state normal; } else {.menu27.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu27.config.f.x9.l configure -state disabled} global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu29.config.f.x10 normal {n l y}} else {configure_entry .menu29.config.f.x10 disabled {y n l}} - if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then {configure_entry .menu29.config.f.x11 normal {x l}} else {configure_entry .menu29.config.f.x11 disabled {x l}} + configure_entry .menu27.config.f.x10 normal {n l y}} else {configure_entry .menu27.config.f.x10 disabled {y n l}} + if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then {configure_entry .menu27.config.f.x11 normal {x l}} else {configure_entry .menu27.config.f.x11 disabled {x l}} } -proc update_define_menu29 {} { +proc update_define_menu27 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_SPICTRL_ENABLE @@ -5850,41 +5725,41 @@ proc update_define_menu29 {} { global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} - global tmpvar_45 + global tmpvar_44 global CONFIG_SPICTRL_NOFT - if {$tmpvar_45 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + if {$tmpvar_44 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} global CONFIG_SPICTRL_DMRFT - if {$tmpvar_45 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + if {$tmpvar_44 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} global CONFIG_SPICTRL_TMRFT - if {$tmpvar_45 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} + if {$tmpvar_44 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } -menu_option menu30 30 "VHDL Debugging " -proc menu30 {w title} { +menu_option menu28 28 "VHDL Debugging " +proc menu28 {w title} { set oldFocus [focus] - catch {destroy $w; unregister_active 30} + catch {destroy $w; unregister_active 28} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 30]] + set active_menus [lsort -integer [linsert $active_menus end 28]] message $w.m -width 400 -aspect 300 -text \ "VHDL Debugging " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "VHDL Debugging " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 30; break" - set nextscript "catch {focus $oldFocus}; menu31 .menu31 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 28; break" + set nextscript "catch {focus $oldFocus}; menu29 .menu29 \"$title\"" frame $w.f button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 30" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 28" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript $w.f.next configure -state disabled bind all "puts \"no more menus\" " button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 30; menu29 .menu29 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 30; menu29 .menu29 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 28; menu27 .menu27 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 28; menu27 .menu27 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -5912,7 +5787,7 @@ proc menu30 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 30 0 "Accelerated UART tracing " CONFIG_DEBUG_UART + bool $w.config.f 28 0 "Accelerated UART tracing " CONFIG_DEBUG_UART @@ -5948,11 +5823,11 @@ proc menu30 {w title} { } } -proc update_menu30 {} { +proc update_menu28 {} { } -proc update_define_menu30 {} { +proc update_define_menu28 {} { update_define_mainmenu global CONFIG_MODULES } @@ -5998,7 +5873,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -6008,6 +5884,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -6032,6 +5910,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -6044,14 +5923,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -6064,28 +5948,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 set CONFIG_FPU_GRFPU_SH 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -6095,17 +5979,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -6117,12 +6001,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -6132,10 +6016,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -6146,7 +6030,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -6158,26 +6042,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -6185,27 +6071,27 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_FPUFT_NONE 0 set CONFIG_FPUFT_PAR 0 set CONFIG_FPUFT_DMR 0 @@ -6229,11 +6115,6 @@ set CONFIG_AHB_MONWAR 0 set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 -set CONFIG_GRUSB_DCL 0 -set tmpvar_27 "(not set)" -set CONFIG_GRUSB_DCL_ULPI 0 -set CONFIG_GRUSB_DCL_UTMI8 0 -set CONFIG_GRUSB_DCL_UTMI16 0 set CONFIG_DSU_ETH 0 set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 @@ -6308,11 +6189,6 @@ set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 -set CONFIG_ATA_ENABLE 0 -set CONFIG_ATAIO A00 -set CONFIG_ATAIRQ 10 -set CONFIG_ATA_MWDMA 0 -set CONFIG_ATA_FIFO 8 set CONFIG_CAN_ENABLE 0 set CONFIG_CAN_NUM 1 set CONFIG_CANIO C00 @@ -6320,66 +6196,26 @@ set CONFIG_CANIRQ 13 set CONFIG_CANSEPIRQ 0 set CONFIG_CAN_SYNCRST 0 set CONFIG_CAN_FT 0 -set CONFIG_GRUSBDC_ENABLE 0 -set CONFIG_GRUSBDC_AIFACE 0 -set tmpvar_31 "(not set)" -set CONFIG_GRUSBDC_ULPI 0 -set CONFIG_GRUSBDC_UTMI8 0 -set CONFIG_GRUSBDC_UTMI16 0 -set CONFIG_GRUSBDC_NEPI 1 -set CONFIG_GRUSBDC_NEPO 1 -set CONFIG_GRUSBDC_I0 1024 -set CONFIG_GRUSBDC_I1 1024 -set CONFIG_GRUSBDC_I2 1024 -set CONFIG_GRUSBDC_I3 1024 -set CONFIG_GRUSBDC_I4 1024 -set CONFIG_GRUSBDC_I5 1024 -set CONFIG_GRUSBDC_I6 1024 -set CONFIG_GRUSBDC_I7 1024 -set CONFIG_GRUSBDC_I8 1024 -set CONFIG_GRUSBDC_I9 1024 -set CONFIG_GRUSBDC_I10 1024 -set CONFIG_GRUSBDC_I11 1024 -set CONFIG_GRUSBDC_I12 1024 -set CONFIG_GRUSBDC_I13 1024 -set CONFIG_GRUSBDC_I14 1024 -set CONFIG_GRUSBDC_I15 1024 -set CONFIG_GRUSBDC_O0 1024 -set CONFIG_GRUSBDC_O1 1024 -set CONFIG_GRUSBDC_O2 1024 -set CONFIG_GRUSBDC_O3 1024 -set CONFIG_GRUSBDC_O4 1024 -set CONFIG_GRUSBDC_O5 1024 -set CONFIG_GRUSBDC_O6 1024 -set CONFIG_GRUSBDC_O7 1024 -set CONFIG_GRUSBDC_O8 1024 -set CONFIG_GRUSBDC_O9 1024 -set CONFIG_GRUSBDC_O10 1024 -set CONFIG_GRUSBDC_O11 1024 -set CONFIG_GRUSBDC_O12 1024 -set CONFIG_GRUSBDC_O13 1024 -set CONFIG_GRUSBDC_O14 1024 -set CONFIG_GRUSBDC_O15 1024 set CONFIG_GRUSBHC_ENABLE 0 set CONFIG_GRUSBHC_EHC 0 set CONFIG_GRUSBHC_UHC 0 set CONFIG_GRUSBHC_NCC 1 set CONFIG_GRUSBHC_NPORTS 1 -set tmpvar_32 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_GRUSBHC_ULPI 0 set CONFIG_GRUSBHC_UTMI16 0 set CONFIG_GRUSBHC_UTMI8 0 -set tmpvar_33 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_GRUSBHC_VBUSEXT 0 set CONFIG_GRUSBHC_VBUSINT 0 -set tmpvar_34 "(not set)" +set tmpvar_33 "(not set)" set CONFIG_GRUSBHC_FAULTL 0 set CONFIG_GRUSBHC_FAULTH 0 set CONFIG_GRUSBHC_FAULTN 0 -set tmpvar_35 "(not set)" +set tmpvar_34 "(not set)" set CONFIG_GRUSBHC_ENABLEH 0 set CONFIG_GRUSBHC_ENABLEL 0 -set tmpvar_36 "(not set)" +set tmpvar_35 "(not set)" set CONFIG_GRUSBHC_FAULT2H 0 set CONFIG_GRUSBHC_FAULT2L 0 set CONFIG_GRUSBHC_BEREGS 0 @@ -6403,7 +6239,7 @@ set CONFIG_GRUSBHC_PR13 0 set CONFIG_GRUSBHC_PR14 0 set CONFIG_GRUSBHC_PR15 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_37 "(not set)" +set tmpvar_36 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -6411,7 +6247,7 @@ set CONFIG_UA1_FIFO8 0 set CONFIG_UA1_FIFO16 0 set CONFIG_UA1_FIFO32 0 set CONFIG_UART2_ENABLE 0 -set tmpvar_38 "(not set)" +set tmpvar_37 "(not set)" set CONFIG_UA2_FIFO1 0 set CONFIG_UA2_FIFO2 0 set CONFIG_UA2_FIFO4 0 @@ -6434,17 +6270,17 @@ set CONFIG_GRGPIO_WIDTH 8 set CONFIG_GRGPIO_IMASK 0000 set CONFIG_SPW_ENABLE 0 set CONFIG_SPW_NUM 1 -set tmpvar_39 "(not set)" +set tmpvar_38 "(not set)" set CONFIG_SPW_AHBFIFO4 0 set CONFIG_SPW_AHBFIFO8 0 set CONFIG_SPW_AHBFIFO16 0 set CONFIG_SPW_AHBFIFO32 0 -set tmpvar_40 "(not set)" +set tmpvar_39 "(not set)" set CONFIG_SPW_RXFIFO16 0 set CONFIG_SPW_RXFIFO32 0 set CONFIG_SPW_RXFIFO64 0 set CONFIG_SPW_RMAP 0 -set tmpvar_41 "(not set)" +set tmpvar_40 "(not set)" set CONFIG_SPW_RMAPBUF2 0 set CONFIG_SPW_RMAPBUF4 0 set CONFIG_SPW_RMAPBUF6 0 @@ -6454,17 +6290,17 @@ set CONFIG_SPW_RXUNAL 0 set CONFIG_SPW_FT 0 set CONFIG_SPW_NETLIST 0 set CONFIG_SPW_PORTS 1 -set tmpvar_42 "(not set)" +set tmpvar_41 "(not set)" set CONFIG_SPW_GRSPW1 0 set CONFIG_SPW_GRSPW2 0 set CONFIG_SPW_DMACHAN 1 set CONFIG_SPW_RTSAME 0 -set tmpvar_43 "(not set)" +set tmpvar_42 "(not set)" set CONFIG_SPW_RX_SDR 0 set CONFIG_SPW_RX_DDR 0 set CONFIG_SPW_RX_XOR 0 set CONFIG_SPW_RX_AFLEX 0 -set tmpvar_44 "(not set)" +set tmpvar_43 "(not set)" set CONFIG_SPW_TX_SDR 0 set CONFIG_SPW_TX_DDR 0 set CONFIG_SPW_TX_AFLEX 0 @@ -6476,6 +6312,7 @@ set CONFIG_SPIMCTRL_SDCARD 0 set CONFIG_SPIMCTRL_READCMD 0B set CONFIG_SPIMCTRL_DUMMYBYTE 0 set CONFIG_SPIMCTRL_DUALOUTPUT 0 +set CONFIG_SPIMCTRL_OFFSET 0 set CONFIG_SPIMCTRL_SCALER 1 set CONFIG_SPIMCTRL_ASCALER 8 set CONFIG_SPIMCTRL_PWRUPCNT 0 @@ -6490,7 +6327,7 @@ set CONFIG_SPICTRL_ODMODE 0 set CONFIG_SPICTRL_TWEN 0 set CONFIG_SPICTRL_MAXWLEN 0 set CONFIG_SPICTRL_SYNCRAM 0 -set tmpvar_45 "(not set)" +set tmpvar_44 "(not set)" set CONFIG_SPICTRL_NOFT 0 set CONFIG_SPICTRL_DMRFT 0 set CONFIG_SPICTRL_TMRFT 0 @@ -6555,7 +6392,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -6565,6 +6403,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -6603,6 +6443,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -6615,9 +6456,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -6631,245 +6473,390 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -6911,13 +6898,6 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_DSU_UART $CONFIG_DSU_UART [list $notmod] 2 global CONFIG_DSU_JTAG write_tristate $cfg $autocfg CONFIG_DSU_JTAG $CONFIG_DSU_JTAG [list $notmod] 2 - global CONFIG_GRUSB_DCL - write_tristate $cfg $autocfg CONFIG_GRUSB_DCL $CONFIG_GRUSB_DCL [list $notmod] 2 - global tmpvar_27 - if {($CONFIG_GRUSB_DCL == 1)} then { - if { $tmpvar_27 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_ULPI 0 [list $notmod] 2 } - if { $tmpvar_27 == "UTMI/UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI8 0 [list $notmod] 2 } - if { $tmpvar_27 == "UTMI/UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI16 0 [list $notmod] 2 }} global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } @@ -7056,17 +7036,6 @@ proc writeconfig {file1 file2} { if { $tmpvar_30 == "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 } if { $tmpvar_30 == "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 } if { $tmpvar_30 == "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 }} - write_comment $cfg $autocfg "IDE Disk controller " - global CONFIG_ATA_ENABLE - write_tristate $cfg $autocfg CONFIG_ATA_ENABLE $CONFIG_ATA_ENABLE [list $notmod] 2 - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_ATAIO $CONFIG_ATAIO $notmod } - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_ATAIRQ $CONFIG_ATAIRQ $notmod } - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_ATA_MWDMA $CONFIG_ATA_MWDMA [list $notmod] 2 } - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {write_int $cfg $autocfg CONFIG_ATA_FIFO $CONFIG_ATA_FIFO $notmod } write_comment $cfg $autocfg "CAN " global CONFIG_CAN_ENABLE write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2 @@ -7082,84 +7051,6 @@ proc writeconfig {file1 file2} { if {($CONFIG_CAN_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_CAN_SYNCRST $CONFIG_CAN_SYNCRST [list $notmod] 2 } global CONFIG_CAN_FT if {($CONFIG_CAN_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_CAN_FT $CONFIG_CAN_FT [list $notmod] 2 } - write_comment $cfg $autocfg "USB 2.0 Device Controller " - global CONFIG_GRUSBDC_ENABLE - write_tristate $cfg $autocfg CONFIG_GRUSBDC_ENABLE $CONFIG_GRUSBDC_ENABLE [list $notmod] 2 - global CONFIG_GRUSBDC_AIFACE - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRUSBDC_AIFACE $CONFIG_GRUSBDC_AIFACE [list $notmod] 2 } - global tmpvar_31 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then { - if { $tmpvar_31 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_ULPI 0 [list $notmod] 2 } - if { $tmpvar_31 == "UTMI/UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI8 0 [list $notmod] 2 } - if { $tmpvar_31 == "UTMI/UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBDC_UTMI16 0 [list $notmod] 2 }} - global CONFIG_GRUSBDC_NEPI - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_NEPI $CONFIG_GRUSBDC_NEPI $notmod } - global CONFIG_GRUSBDC_NEPO - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_NEPO $CONFIG_GRUSBDC_NEPO $notmod } - global CONFIG_GRUSBDC_I0 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I0 $CONFIG_GRUSBDC_I0 $notmod } - global CONFIG_GRUSBDC_I1 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I1 $CONFIG_GRUSBDC_I1 $notmod } - global CONFIG_GRUSBDC_I2 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I2 $CONFIG_GRUSBDC_I2 $notmod } - global CONFIG_GRUSBDC_I3 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I3 $CONFIG_GRUSBDC_I3 $notmod } - global CONFIG_GRUSBDC_I4 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I4 $CONFIG_GRUSBDC_I4 $notmod } - global CONFIG_GRUSBDC_I5 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I5 $CONFIG_GRUSBDC_I5 $notmod } - global CONFIG_GRUSBDC_I6 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I6 $CONFIG_GRUSBDC_I6 $notmod } - global CONFIG_GRUSBDC_I7 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I7 $CONFIG_GRUSBDC_I7 $notmod } - global CONFIG_GRUSBDC_I8 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I8 $CONFIG_GRUSBDC_I8 $notmod } - global CONFIG_GRUSBDC_I9 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I9 $CONFIG_GRUSBDC_I9 $notmod } - global CONFIG_GRUSBDC_I10 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I10 $CONFIG_GRUSBDC_I10 $notmod } - global CONFIG_GRUSBDC_I11 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I11 $CONFIG_GRUSBDC_I11 $notmod } - global CONFIG_GRUSBDC_I12 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I12 $CONFIG_GRUSBDC_I12 $notmod } - global CONFIG_GRUSBDC_I13 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I13 $CONFIG_GRUSBDC_I13 $notmod } - global CONFIG_GRUSBDC_I14 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I14 $CONFIG_GRUSBDC_I14 $notmod } - global CONFIG_GRUSBDC_I15 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_I15 $CONFIG_GRUSBDC_I15 $notmod } - global CONFIG_GRUSBDC_O0 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O0 $CONFIG_GRUSBDC_O0 $notmod } - global CONFIG_GRUSBDC_O1 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O1 $CONFIG_GRUSBDC_O1 $notmod } - global CONFIG_GRUSBDC_O2 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O2 $CONFIG_GRUSBDC_O2 $notmod } - global CONFIG_GRUSBDC_O3 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O3 $CONFIG_GRUSBDC_O3 $notmod } - global CONFIG_GRUSBDC_O4 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O4 $CONFIG_GRUSBDC_O4 $notmod } - global CONFIG_GRUSBDC_O5 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O5 $CONFIG_GRUSBDC_O5 $notmod } - global CONFIG_GRUSBDC_O6 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O6 $CONFIG_GRUSBDC_O6 $notmod } - global CONFIG_GRUSBDC_O7 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O7 $CONFIG_GRUSBDC_O7 $notmod } - global CONFIG_GRUSBDC_O8 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O8 $CONFIG_GRUSBDC_O8 $notmod } - global CONFIG_GRUSBDC_O9 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O9 $CONFIG_GRUSBDC_O9 $notmod } - global CONFIG_GRUSBDC_O10 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O10 $CONFIG_GRUSBDC_O10 $notmod } - global CONFIG_GRUSBDC_O11 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O11 $CONFIG_GRUSBDC_O11 $notmod } - global CONFIG_GRUSBDC_O12 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O12 $CONFIG_GRUSBDC_O12 $notmod } - global CONFIG_GRUSBDC_O13 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O13 $CONFIG_GRUSBDC_O13 $notmod } - global CONFIG_GRUSBDC_O14 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O14 $CONFIG_GRUSBDC_O14 $notmod } - global CONFIG_GRUSBDC_O15 - if {($CONFIG_GRUSBDC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBDC_O15 $CONFIG_GRUSBDC_O15 $notmod } write_comment $cfg $autocfg "USB 2.0 Host Controller " global CONFIG_GRUSBHC_ENABLE write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLE $CONFIG_GRUSBHC_ENABLE [list $notmod] 2 @@ -7171,30 +7062,30 @@ proc writeconfig {file1 file2} { if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_UHC == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBHC_NCC $CONFIG_GRUSBHC_NCC $notmod } global CONFIG_GRUSBHC_NPORTS if {($CONFIG_GRUSBHC_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRUSBHC_NPORTS $CONFIG_GRUSBHC_NPORTS $notmod } - global tmpvar_32 + global tmpvar_31 if {($CONFIG_GRUSBHC_ENABLE == 1)} then { - if { $tmpvar_32 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ULPI 0 [list $notmod] 2 } - if { $tmpvar_32 == "UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI16 0 [list $notmod] 2 } - if { $tmpvar_32 == "UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI8 0 [list $notmod] 2 }} - global tmpvar_33 + if { $tmpvar_31 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ULPI 0 [list $notmod] 2 } + if { $tmpvar_31 == "UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI16 0 [list $notmod] 2 } + if { $tmpvar_31 == "UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_UTMI8 0 [list $notmod] 2 }} + global tmpvar_32 global CONFIG_GRUSBHC_ULPI if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI == 1)} then { - if { $tmpvar_33 == "External" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSEXT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSEXT 0 [list $notmod] 2 } - if { $tmpvar_33 == "Internal" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSINT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSINT 0 [list $notmod] 2 }} - global tmpvar_34 + if { $tmpvar_32 == "External" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSEXT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSEXT 0 [list $notmod] 2 } + if { $tmpvar_32 == "Internal" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSINT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_VBUSINT 0 [list $notmod] 2 }} + global tmpvar_33 global CONFIG_GRUSBHC_VBUSEXT if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI == 1) && ($CONFIG_GRUSBHC_VBUSEXT == 1)} then { - if { $tmpvar_34 == "ActiveLow" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTL 0 [list $notmod] 2 } - if { $tmpvar_34 == "ActiveHigh" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTH 0 [list $notmod] 2 } - if { $tmpvar_34 == "None" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTN 0 [list $notmod] 2 }} - global tmpvar_35 + if { $tmpvar_33 == "ActiveLow" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTL 0 [list $notmod] 2 } + if { $tmpvar_33 == "ActiveHigh" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTH 0 [list $notmod] 2 } + if { $tmpvar_33 == "None" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULTN 0 [list $notmod] 2 }} + global tmpvar_34 if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI != 1)} then { - if { $tmpvar_35 == "ActiveHigh" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEH 0 [list $notmod] 2 } - if { $tmpvar_35 == "ActiveLow" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEL 0 [list $notmod] 2 }} - global tmpvar_36 + if { $tmpvar_34 == "ActiveHigh" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEH 0 [list $notmod] 2 } + if { $tmpvar_34 == "ActiveLow" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_ENABLEL 0 [list $notmod] 2 }} + global tmpvar_35 if {($CONFIG_GRUSBHC_ENABLE == 1) && ($CONFIG_GRUSBHC_ULPI != 1)} then { - if { $tmpvar_36 == "ActiveHigh" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2H 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2H 0 [list $notmod] 2 } - if { $tmpvar_36 == "ActiveLow" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2L 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2L 0 [list $notmod] 2 }} + if { $tmpvar_35 == "ActiveHigh" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2H 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2H 0 [list $notmod] 2 } + if { $tmpvar_35 == "ActiveLow" } then { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2L 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSBHC_FAULT2L 0 [list $notmod] 2 }} if {($CONFIG_GRUSBHC_ENABLE == 1)} then {write_comment $cfg $autocfg "Memory interface"} global CONFIG_GRUSBHC_BEREGS if {($CONFIG_GRUSBHC_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRUSBHC_BEREGS $CONFIG_GRUSBHC_BEREGS [list $notmod] 2 } @@ -7240,24 +7131,24 @@ proc writeconfig {file1 file2} { write_comment $cfg $autocfg "UART, timer, I/O port and interrupt controller" global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_37 + global tmpvar_36 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 } - if { $tmpvar_37 == "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 }} + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 }} global CONFIG_UART2_ENABLE if {($CONFIG_DSU_UART != 1)} then {write_tristate $cfg $autocfg CONFIG_UART2_ENABLE $CONFIG_UART2_ENABLE [list $notmod] 2 } - global tmpvar_38 + global tmpvar_37 if {($CONFIG_DSU_UART != 1) && ($CONFIG_UART2_ENABLE == 1)} then { - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 } - if { $tmpvar_38 == "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 }} + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -7291,25 +7182,25 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_SPW_ENABLE $CONFIG_SPW_ENABLE [list $notmod] 2 global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_NUM $CONFIG_SPW_NUM $notmod } - global tmpvar_39 + global tmpvar_38 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 }} - global tmpvar_40 + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 }} + global tmpvar_39 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 }} + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 } + if { $tmpvar_39 == "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 }} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAP $CONFIG_SPW_RMAP [list $notmod] 2 } - global tmpvar_41 + global tmpvar_40 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then { - if { $tmpvar_41 == "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 } - if { $tmpvar_41 == "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 } - if { $tmpvar_41 == "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 } - if { $tmpvar_41 == "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 }} + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 } + if { $tmpvar_40 == "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 }} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAPCRC $CONFIG_SPW_RMAPCRC [list $notmod] 2 } global CONFIG_SPW_RXUNAL @@ -7320,26 +7211,26 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_NETLIST $CONFIG_SPW_NETLIST [list $notmod] 2 } global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_PORTS $CONFIG_SPW_PORTS $notmod } - global tmpvar_42 + global tmpvar_41 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_42 == "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 } - if { $tmpvar_42 == "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 }} + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 }} global CONFIG_SPW_DMACHAN global CONFIG_SPW_GRSPW2 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_int $cfg $autocfg CONFIG_SPW_DMACHAN $CONFIG_SPW_DMACHAN $notmod } global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RTSAME $CONFIG_SPW_RTSAME [list $notmod] 2 } - global tmpvar_43 + global tmpvar_42 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_43 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } - if { $tmpvar_43 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } - if { $tmpvar_43 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } - if { $tmpvar_43 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} - global tmpvar_44 + if { $tmpvar_42 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } + if { $tmpvar_42 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } + if { $tmpvar_42 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } + if { $tmpvar_42 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} + global tmpvar_43 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_44 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } - if { $tmpvar_44 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } - if { $tmpvar_44 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} + if { $tmpvar_43 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } + if { $tmpvar_43 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } + if { $tmpvar_43 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} write_comment $cfg $autocfg "Keybord and VGA interface" global CONFIG_KBD_ENABLE write_tristate $cfg $autocfg CONFIG_KBD_ENABLE $CONFIG_KBD_ENABLE [list $notmod] 2 @@ -7359,6 +7250,8 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUMMYBYTE $CONFIG_SPIMCTRL_DUMMYBYTE [list $notmod] 2 } global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUALOUTPUT $CONFIG_SPIMCTRL_DUALOUTPUT [list $notmod] 2 } + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_hex $cfg $autocfg CONFIG_SPIMCTRL_OFFSET $CONFIG_SPIMCTRL_OFFSET $notmod } global CONFIG_SPIMCTRL_SCALER if {($CONFIG_SPIMCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SPIMCTRL_SCALER $CONFIG_SPIMCTRL_SCALER $notmod } global CONFIG_SPIMCTRL_ASCALER @@ -7388,11 +7281,11 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } - global tmpvar_45 + global tmpvar_44 if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { - if { $tmpvar_45 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } - if { $tmpvar_45 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } - if { $tmpvar_45 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} + if { $tmpvar_44 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_44 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_44 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -7437,7 +7330,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -7447,6 +7341,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -7465,8 +7361,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -7549,11 +7450,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -7578,9 +7481,6 @@ proc clear_choices { } { global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 - global CONFIG_GRUSB_DCL_ULPI; set CONFIG_GRUSB_DCL_ULPI 0 - global CONFIG_GRUSB_DCL_UTMI8; set CONFIG_GRUSB_DCL_UTMI8 0 - global CONFIG_GRUSB_DCL_UTMI16; set CONFIG_GRUSB_DCL_UTMI16 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -7598,9 +7498,6 @@ proc clear_choices { } { global CONFIG_GRETH_FIFO16; set CONFIG_GRETH_FIFO16 0 global CONFIG_GRETH_FIFO32; set CONFIG_GRETH_FIFO32 0 global CONFIG_GRETH_FIFO64; set CONFIG_GRETH_FIFO64 0 - global CONFIG_GRUSBDC_ULPI; set CONFIG_GRUSBDC_ULPI 0 - global CONFIG_GRUSBDC_UTMI8; set CONFIG_GRUSBDC_UTMI8 0 - global CONFIG_GRUSBDC_UTMI16; set CONFIG_GRUSBDC_UTMI16 0 global CONFIG_GRUSBHC_ULPI; set CONFIG_GRUSBHC_ULPI 0 global CONFIG_GRUSBHC_UTMI16; set CONFIG_GRUSBHC_UTMI16 0 global CONFIG_GRUSBHC_UTMI8; set CONFIG_GRUSBHC_UTMI8 0 @@ -7724,8 +7621,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -7744,6 +7643,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -7784,288 +7687,296 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_FPUFT_NONE - if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_FPUFT_PAR - if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_FPUFT_DMR - if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_FPUFT_TMR - if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "ULPI" - global CONFIG_GRUSB_DCL_ULPI - if { $CONFIG_GRUSB_DCL_ULPI == 1 } then { set tmpvar_27 "ULPI" } - global CONFIG_GRUSB_DCL_UTMI8 - if { $CONFIG_GRUSB_DCL_UTMI8 == 1 } then { set tmpvar_27 "UTMI/UTMI+8-bit" } - global CONFIG_GRUSB_DCL_UTMI16 - if { $CONFIG_GRUSB_DCL_UTMI16 == 1 } then { set tmpvar_27 "UTMI/UTMI+16-bit" } + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } global tmpvar_28 set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 @@ -8108,134 +8019,126 @@ proc update_choices { } { if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } global tmpvar_31 set tmpvar_31 "ULPI" - global CONFIG_GRUSBDC_ULPI - if { $CONFIG_GRUSBDC_ULPI == 1 } then { set tmpvar_31 "ULPI" } - global CONFIG_GRUSBDC_UTMI8 - if { $CONFIG_GRUSBDC_UTMI8 == 1 } then { set tmpvar_31 "UTMI/UTMI+8-bit" } - global CONFIG_GRUSBDC_UTMI16 - if { $CONFIG_GRUSBDC_UTMI16 == 1 } then { set tmpvar_31 "UTMI/UTMI+16-bit" } - global tmpvar_32 - set tmpvar_32 "ULPI" global CONFIG_GRUSBHC_ULPI - if { $CONFIG_GRUSBHC_ULPI == 1 } then { set tmpvar_32 "ULPI" } + if { $CONFIG_GRUSBHC_ULPI == 1 } then { set tmpvar_31 "ULPI" } global CONFIG_GRUSBHC_UTMI16 - if { $CONFIG_GRUSBHC_UTMI16 == 1 } then { set tmpvar_32 "UTMI+16-bit" } + if { $CONFIG_GRUSBHC_UTMI16 == 1 } then { set tmpvar_31 "UTMI+16-bit" } global CONFIG_GRUSBHC_UTMI8 - if { $CONFIG_GRUSBHC_UTMI8 == 1 } then { set tmpvar_32 "UTMI+8-bit" } - global tmpvar_33 - set tmpvar_33 "External" + if { $CONFIG_GRUSBHC_UTMI8 == 1 } then { set tmpvar_31 "UTMI+8-bit" } + global tmpvar_32 + set tmpvar_32 "External" global CONFIG_GRUSBHC_VBUSEXT - if { $CONFIG_GRUSBHC_VBUSEXT == 1 } then { set tmpvar_33 "External" } + if { $CONFIG_GRUSBHC_VBUSEXT == 1 } then { set tmpvar_32 "External" } global CONFIG_GRUSBHC_VBUSINT - if { $CONFIG_GRUSBHC_VBUSINT == 1 } then { set tmpvar_33 "Internal" } - global tmpvar_34 - set tmpvar_34 "ActiveLow" + if { $CONFIG_GRUSBHC_VBUSINT == 1 } then { set tmpvar_32 "Internal" } + global tmpvar_33 + set tmpvar_33 "ActiveLow" global CONFIG_GRUSBHC_FAULTL - if { $CONFIG_GRUSBHC_FAULTL == 1 } then { set tmpvar_34 "ActiveLow" } + if { $CONFIG_GRUSBHC_FAULTL == 1 } then { set tmpvar_33 "ActiveLow" } global CONFIG_GRUSBHC_FAULTH - if { $CONFIG_GRUSBHC_FAULTH == 1 } then { set tmpvar_34 "ActiveHigh" } + if { $CONFIG_GRUSBHC_FAULTH == 1 } then { set tmpvar_33 "ActiveHigh" } global CONFIG_GRUSBHC_FAULTN - if { $CONFIG_GRUSBHC_FAULTN == 1 } then { set tmpvar_34 "None" } - global tmpvar_35 - set tmpvar_35 "ActiveHigh" + if { $CONFIG_GRUSBHC_FAULTN == 1 } then { set tmpvar_33 "None" } + global tmpvar_34 + set tmpvar_34 "ActiveHigh" global CONFIG_GRUSBHC_ENABLEH - if { $CONFIG_GRUSBHC_ENABLEH == 1 } then { set tmpvar_35 "ActiveHigh" } + if { $CONFIG_GRUSBHC_ENABLEH == 1 } then { set tmpvar_34 "ActiveHigh" } global CONFIG_GRUSBHC_ENABLEL - if { $CONFIG_GRUSBHC_ENABLEL == 1 } then { set tmpvar_35 "ActiveLow" } - global tmpvar_36 - set tmpvar_36 "ActiveHigh" + if { $CONFIG_GRUSBHC_ENABLEL == 1 } then { set tmpvar_34 "ActiveLow" } + global tmpvar_35 + set tmpvar_35 "ActiveHigh" global CONFIG_GRUSBHC_FAULT2H - if { $CONFIG_GRUSBHC_FAULT2H == 1 } then { set tmpvar_36 "ActiveHigh" } + if { $CONFIG_GRUSBHC_FAULT2H == 1 } then { set tmpvar_35 "ActiveHigh" } global CONFIG_GRUSBHC_FAULT2L - if { $CONFIG_GRUSBHC_FAULT2L == 1 } then { set tmpvar_36 "ActiveLow" } - global tmpvar_37 - set tmpvar_37 "1" + if { $CONFIG_GRUSBHC_FAULT2L == 1 } then { set tmpvar_35 "ActiveLow" } + global tmpvar_36 + set tmpvar_36 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_37 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_36 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_37 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_36 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_37 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_36 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_37 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_36 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_37 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_36 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_37 "32" } - global tmpvar_38 - set tmpvar_38 "1" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_36 "32" } + global tmpvar_37 + set tmpvar_37 "1" global CONFIG_UA2_FIFO1 - if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_38 "1" } + if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_37 "1" } global CONFIG_UA2_FIFO2 - if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_38 "2" } + if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_37 "2" } global CONFIG_UA2_FIFO4 - if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_38 "4" } + if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_37 "4" } global CONFIG_UA2_FIFO8 - if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_38 "8" } + if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_37 "8" } global CONFIG_UA2_FIFO16 - if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_38 "16" } + if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_37 "16" } global CONFIG_UA2_FIFO32 - if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_38 "32" } - global tmpvar_39 - set tmpvar_39 "16" + if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_37 "32" } + global tmpvar_38 + set tmpvar_38 "16" global CONFIG_SPW_AHBFIFO4 - if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_39 "4" } + if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_38 "4" } global CONFIG_SPW_AHBFIFO8 - if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_39 "8" } + if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_38 "8" } global CONFIG_SPW_AHBFIFO16 - if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_39 "16" } + if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_38 "16" } global CONFIG_SPW_AHBFIFO32 - if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_39 "32" } - global tmpvar_40 - set tmpvar_40 "16" + if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_38 "32" } + global tmpvar_39 + set tmpvar_39 "16" global CONFIG_SPW_RXFIFO16 - if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_40 "16" } + if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_39 "16" } global CONFIG_SPW_RXFIFO32 - if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_40 "32" } + if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_39 "32" } global CONFIG_SPW_RXFIFO64 - if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_40 "64" } - global tmpvar_41 - set tmpvar_41 "64" + if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_39 "64" } + global tmpvar_40 + set tmpvar_40 "64" global CONFIG_SPW_RMAPBUF2 - if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_41 "64" } + if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_40 "64" } global CONFIG_SPW_RMAPBUF4 - if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_41 "128" } + if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_40 "128" } global CONFIG_SPW_RMAPBUF6 - if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_41 "192" } + if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_40 "192" } global CONFIG_SPW_RMAPBUF8 - if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_41 "256" } - global tmpvar_42 - set tmpvar_42 "2" + if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_40 "256" } + global tmpvar_41 + set tmpvar_41 "2" global CONFIG_SPW_GRSPW1 - if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_42 "1" } + if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_41 "1" } global CONFIG_SPW_GRSPW2 - if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_42 "2" } - global tmpvar_43 - set tmpvar_43 "DDR" + if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_41 "2" } + global tmpvar_42 + set tmpvar_42 "DDR" global CONFIG_SPW_RX_SDR - if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_43 "SDR" } + if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_42 "SDR" } global CONFIG_SPW_RX_DDR - if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_43 "DDR" } + if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_42 "DDR" } global CONFIG_SPW_RX_XOR - if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_43 "Xor" } + if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_42 "Xor" } global CONFIG_SPW_RX_AFLEX - if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_43 "Aeroflex" } - global tmpvar_44 - set tmpvar_44 "SDR" + if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_42 "Aeroflex" } + global tmpvar_43 + set tmpvar_43 "SDR" global CONFIG_SPW_TX_SDR - if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_44 "SDR" } + if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_43 "SDR" } global CONFIG_SPW_TX_DDR - if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_44 "DDR" } + if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_43 "DDR" } global CONFIG_SPW_TX_AFLEX - if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_44 "Aeroflex" } - global tmpvar_45 - set tmpvar_45 "None" + if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_43 "Aeroflex" } + global tmpvar_44 + set tmpvar_44 "None" global CONFIG_SPICTRL_NOFT - if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_45 "None" } + if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_44 "None" } global CONFIG_SPICTRL_DMRFT - if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_45 "Parity-DMR" } + if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_44 "Parity-DMR" } global CONFIG_SPICTRL_TMRFT - if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_45 "TMR" } + if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_44 "TMR" } } diff --git a/designs/leon3-gr-xc6s/leon3mp.ucf b/designs/leon3-gr-xc6s/leon3mp.ucf index 931a59f5..4d733c49 100644 --- a/designs/leon3-gr-xc6s/leon3mp.ucf +++ b/designs/leon3-gr-xc6s/leon3mp.ucf @@ -7,57 +7,69 @@ # Bank 2 => 3.3V # Bank 3 => 1.8V (DDR2) -# main clocks - -NET "clkm" TNM_NET = "clkm"; -NET "ddr2clk" TNM_NET = "ddr2clk"; -TIMESPEC "TS_clkm_ddr2clk" = FROM "clkm" TO "ddr2clk" TIG; -TIMESPEC "TS_ddr2clk_clkm" = FROM "ddr2clk" TO "clkm" TIG; - -################################################################## +############################################################################ +# VCC AUX VOLTAGE +############################################################################ +CONFIG VCCAUX=3.3; + +############################################################################ +# DDR2 requires the MCB to operate in Extended performance mode with higher Vccint +# specification to achieve maximum frequency. Therefore, the following CONFIG constraint +# follows the corresponding GUI option setting. However, DDR3 can operate at higher +# frequencies with any Vcciint value by operating MCB in extended mode. Please do not +# remove/edit the below constraint to avoid false errors. +############################################################################ +CONFIG MCB_PERFORMANCE= STANDARD; + +# --- MIG37 --- +NET "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/selfrefresh_mcb_mode" TIG; +NET "mig_gen.ddrc/MCB_inst/c?_pll_lock" TIG; +NET "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/CKE_Train" TIG; ## This path exists for DDR2 only + +# --- MIG39 --- +INST "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/DONE_SOFTANDHARD_CAL*" TIG; + +############################################################################ +# Main clocks +############################################################################ + +# Input clock +NET "clk" TNM_NET = "clk"; +TIMESPEC "TS_clk" = PERIOD "clk" 20.000 ns HIGH 50.00%; + +# Input clock 2 +NET "clk2" TNM_NET = "clk2"; +TIMESPEC "TS_clk2" = PERIOD "clk2" 5.000 ns HIGH 50.00%; + +# ------------------------------- +# RGMII interface -NET video_clk period = 20.000 ; -NET "video_clk" TNM_NET = "video_clk"; -TIMESPEC "TS_clkm_videoclk" = FROM "clkm" TO "video_clk" 10 ns DATAPATHONLY; -TIMESPEC "TS_videoclk_clkm" = FROM "video_clk" TO "clkm" 10 ns DATAPATHONLY; +NET "erx_clk" TNM_NET = "erx_clk"; +TIMESPEC "TS_erx_clk" = PERIOD "erx_clk" 8.000 ns HIGH 50.00%; +#OFFSET = IN 10ns VALID 5ns BEFORE erx_clk TIMEGRP "erx_clk" RISING; +OFFSET = IN 5ns valid 8ns BEFORE erx_clk TIMEGRP "erx_clk" RISING; -################################################################## -# RGMII interface -NET erx_clk PERIOD = 8.000 ; -OFFSET = in : 10.000 : BEFORE erx_clk ; +NET "clk125" TNM_NET = "clk125"; +TIMESPEC "TS_clk125" = PERIOD "clk125" 8.000 ns HIGH 50.00%; +NET "clkm" TNM_NET = "clkm"; NET "rgmii0?tx_clk" TNM_NET = "rgmii0_tx_clk"; +TIMESPEC "TS_tx_clk_freq" = PERIOD rgmii0_tx_clk 8.00 ns; TIMESPEC "TS_clkm_rgmii0_tx_clk" = FROM "clkm" TO "rgmii0_tx_clk" 8 ns DATAPATHONLY; TIMESPEC "TS_rgmii0_tx_clk_clkm" = FROM "rgmii0_tx_clk" TO "clkm" 8 ns DATAPATHONLY; -TIMESPEC "TS_tx_clk_freq" = PERIOD rgmii0_tx_clk 8.00 ns; #NET "gmiii_gtx_clk" TNM_NET = "gmiii_gtx_clk"; #TIMESPEC "TS_clkm_rgmiii_gtx_clk" = FROM "clkm" TO "gmiii_gtx_clk" TIG; #TIMESPEC "TS_gmiii_gtx_clk_clkm" = FROM "gmiii_gtx_clk" TO "clkm" TIG; -################################################################## +# ------------------------------- -CONFIG VCCAUX = 3.3; +############################################################################ +# I/O STANDARDS AND LOCATIONS +############################################################################ -NET "clk" period = 20.000 ; -NET "clk2" period = 5.000 ; NET "clk" LOC = "J20" | IOSTANDARD =LVCMOS33; # soldered oscillator, 50 MHz NET "clk2" LOC = "K20" | IOSTANDARD =LVCMOS33; # socket - user provided frequency -# Synplify versions of DDR2 false paths -#NET "mig_gen.ddrc.MCB_inst.memc?_wrapper_inst.memc?_mcb_raw_wrapper_inst.selfrefresh_mcb_mode" TIG; -#NET "mig_gen.ddrc.MCB_inst.c?_pll_lock" TIG; -#NET "mig_gen.ddrc.MCB_inst.memc?_wrapper_inst.memc?_mcb_raw_wrapper_inst.gen_term_calib.mcb_soft_calibration_top_inst.mcb_soft_calibration_inst.CKE_Train" TIG; ## This path exists for DDR2 only -#NET "mig_gen.ddrc.i.calib_done" TIG; - -# XST versions of DDR2 false paths -NET "mig_gen.ddrc?MCB_inst?memc?_wrapper_inst?memc?_mcb_raw_wrapper_inst?selfrefresh_mcb_mode" TIG; -NET "mig_gen.ddrc?MCB_inst?c?_pll_lock" TIG; -NET "mig_gen.ddrc?MCB_inst?memc?_wrapper_inst?memc?_mcb_raw_wrapper_inst?gen_term_calib.mcb_soft_calibration_top_inst?mcb_soft_calibration_inst?CKE_Train" TIG; ## This path exists for DDR2 only -NET "mig_gen.ddrc?MCB_inst?memc?_wrapper_inst?memc?_mcb_raw_wrapper_inst?gen_term_calib.mcb_soft_calibration_top_inst?mcb_soft_calibration_inst?DONE_SOFTANDHARD_CAL" TIG; - -NET "clk" CLOCK_DEDICATED_ROUTE = FALSE; -#PIN "clkgen0?xc3s.v?bufg0.O" CLOCK_DEDICATED_ROUTE = FALSE; - # memory interface (for Parallel Flash U8) # on I/O BANK1 and I/O BANK2 => 3.3V logic @@ -66,7 +78,7 @@ NET "clk" CLOCK_DEDICATED_ROUTE = FALSE; NET "address(0)" LOC = "Y3" | IOSTANDARD =LVCMOS33; NET "address(1)" LOC = "AB10" | IOSTANDARD =LVCMOS33; NET "address(2)" LOC = "AB4" | IOSTANDARD =LVCMOS33; -NET "address(3)" LOC = "AA4" | IOSTANDARD =LVCMOS33; +NET "address(3)" LOC = "AA4" | IOSTANDARD =LVCMOS33; NET "address(4)" LOC = "AB8" | IOSTANDARD =LVCMOS33; NET "address(5)" LOC = "AB12" | IOSTANDARD =LVCMOS33; NET "address(6)" LOC = "AA10" | IOSTANDARD =LVCMOS33; @@ -101,8 +113,8 @@ NET "data(30)" LOC = "AB3" | IOSTANDARD =LVCMOS33; NET "data(31)" LOC = "AB7" | IOSTANDARD =LVCMOS33; NET "writen" LOC = "H17" | IOSTANDARD = LVCMOS33; -#NET "read" LOC = "a14" | IOSTANDARD = LVCMOS33; -#NET "iosn" LOC = "b14" | IOSTANDARD = LVCMOS33; +#NET "read" LOC = "a14" | IOSTANDARD = LVCMOS33; +#NET "iosn" LOC = "b14" | IOSTANDARD = LVCMOS33; NET "romsn" LOC = "AA22" | IOSTANDARD = LVCMOS33; # also used as pin M0 NET "oen" LOC = "H16" | IOSTANDARD = LVCMOS33; @@ -110,93 +122,76 @@ NET "oen" LOC = "H16" | IOSTANDARD = LVCMOS33; NET "resetn" LOC = "aa12" | IOSTANDARD = LVCMOS33; NET "wdogn" LOC = "a4" | IOSTANDARD = LVCMOS33; - # DDR2 memory interface, to U7 # on I/O BANK3 => 1.8V logic NET "ddr_dq(*)" IN_TERM = NONE; NET "ddr_dqs(*)" IN_TERM = NONE; -NET "ddr_dq(*)" IOSTANDARD = SSTL18_II; - -NET "ddr_ad(13)" LOC = "g6" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(12)" LOC = "d1" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(11)" LOC = "c1" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(10)" LOC = "g4" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(9)" LOC = "e1" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(8)" LOC = "e3" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(7)" LOC = "h6" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(6)" LOC = "j4" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(5)" LOC = "k3" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(4)" LOC = "f3" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(3)" LOC = "k6" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(2)" LOC = "h5" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(1)" LOC = "h1" | IOSTANDARD = SSTL18_II; -NET "ddr_ad(0)" LOC = "h2" | IOSTANDARD = SSTL18_II; - -NET "ddr_ba(2)" LOC = "f1" | IOSTANDARD = SSTL18_II; -NET "ddr_ba(1)" LOC = "g1" | IOSTANDARD = SSTL18_II; -NET "ddr_ba(0)" LOC = "g3" | IOSTANDARD = SSTL18_II; - -NET "ddr_cas" LOC = "k4" | IOSTANDARD = SSTL18_II; -NET "ddr_cke" LOC = "d2" | IOSTANDARD = SSTL18_II; - -NET "ddr_clk" LOC = "h4" | IOSTANDARD = DIFF_SSTL18_II; -NET "ddr_clkb" LOC = "h3" | IOSTANDARD = DIFF_SSTL18_II; - -#NET "ddr_clk_fb" LOC = "c3" | IOSTANDARD = SSTL18_II; -#NET "ddr_clk_fb_out" LOC = "e4" | IOSTANDARD = SSTL18_II; - -NET "ddr_dm(1)" LOC = "m3" | IOSTANDARD = SSTL18_II; -NET "ddr_dm(0)" LOC = "l4" | IOSTANDARD = SSTL18_II; - -NET "ddr_dq(0)" LOC = "N3" ; -NET "ddr_dq(10)" LOC = "R3" ; -NET "ddr_dq(11)" LOC = "R1" ; -NET "ddr_dq(12)" LOC = "U3" ; -NET "ddr_dq(13)" LOC = "U1" ; -NET "ddr_dq(14)" LOC = "V2" ; -NET "ddr_dq(15)" LOC = "V1" ; -NET "ddr_dq(1)" LOC = "N1" ; -NET "ddr_dq(2)" LOC = "M2" ; -NET "ddr_dq(3)" LOC = "M1" ; -NET "ddr_dq(4)" LOC = "J3" ; -NET "ddr_dq(5)" LOC = "J1" ; -NET "ddr_dq(6)" LOC = "K2" ; -NET "ddr_dq(7)" LOC = "K1" ; -NET "ddr_dq(8)" LOC = "P2" ; -NET "ddr_dq(9)" LOC = "P1" ; - -#NET "ddr_dqsn(1)" LOC = "t1" | IOSTANDARD = DIFF_SSTL18_II; -#NET "ddr_dqsn(0)" LOC = "l1" | IOSTANDARD = DIFF_SSTL18_II; - -#NET "ddr_dqs(1)" LOC = "t2" | IOSTANDARD = DIFF_SSTL18_II; -#NET "ddr_dqs(0)" LOC = "l3" | IOSTANDARD = DIFF_SSTL18_II; - -#NET "ddr_dqsn(1)" LOC = "t1" | IOSTANDARD = SSTL18_II; -#NET "ddr_dqsn(0)" LOC = "l1" | IOSTANDARD = SSTL18_II; - +NET "ddr_dqsn(*)" IN_TERM = NONE; + +NET "ddr_ad(13)" LOC = "g6" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(12)" LOC = "d1" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(11)" LOC = "c1" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(10)" LOC = "g4" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(9)" LOC = "e1" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(8)" LOC = "e3" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(7)" LOC = "h6" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(6)" LOC = "j4" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(5)" LOC = "k3" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(4)" LOC = "f3" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(3)" LOC = "k6" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(2)" LOC = "h5" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(1)" LOC = "h1" | IOSTANDARD = SSTL18_II; +NET "ddr_ad(0)" LOC = "h2" | IOSTANDARD = SSTL18_II; + +NET "ddr_ba(2)" LOC = "f1" | IOSTANDARD = SSTL18_II; +NET "ddr_ba(1)" LOC = "g1" | IOSTANDARD = SSTL18_II; +NET "ddr_ba(0)" LOC = "g3" | IOSTANDARD = SSTL18_II; +NET "ddr_cas" LOC = "k4" | IOSTANDARD = SSTL18_II; +NET "ddr_cke" LOC = "d2" | IOSTANDARD = SSTL18_II; +NET "ddr_csn" LOC = "c3" | IOSTANDARD = SSTL18_II; +NET "ddr_clk" LOC = "h4" | IOSTANDARD = DIFF_SSTL18_II; +NET "ddr_clkb" LOC = "h3" | IOSTANDARD = DIFF_SSTL18_II; +NET "ddr_dm(1)" LOC = "m3" | IOSTANDARD = SSTL18_II; +NET "ddr_dm(0)" LOC = "l4" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(0)" LOC = "N3" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(10)" LOC = "R3" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(11)" LOC = "R1" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(12)" LOC = "U3" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(13)" LOC = "U1" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(14)" LOC = "V2" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(15)" LOC = "V1" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(1)" LOC = "N1" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(2)" LOC = "M2" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(3)" LOC = "M1" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(4)" LOC = "J3" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(5)" LOC = "J1" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(6)" LOC = "K2" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(7)" LOC = "K1" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(8)" LOC = "P2" | IOSTANDARD = SSTL18_II; +NET "ddr_dq(9)" LOC = "P1" | IOSTANDARD = SSTL18_II; +NET "ddr_dqsn(1)" LOC = "t1" | IOSTANDARD = DIFF_SSTL18_II; +NET "ddr_dqsn(0)" LOC = "l1" | IOSTANDARD = DIFF_SSTL18_II; NET "ddr_dqs(1)" LOC = "t2" | IOSTANDARD = DIFF_SSTL18_II; NET "ddr_dqs(0)" LOC = "l3" | IOSTANDARD = DIFF_SSTL18_II; - NET "ddr_odt" LOC = "j6" | IOSTANDARD = SSTL18_II; NET "ddr_ras" LOC = "k5" | IOSTANDARD = SSTL18_II; NET "ddr_we" LOC = "f2" | IOSTANDARD = SSTL18_II; - -NET "ddr_rzq" LOC = "k7" | IOSTANDARD = SSTL18_II; -NET "ddr_zio" LOC = "d5" | IOSTANDARD = SSTL18_II; +NET "ddr_rzq" LOC = "k7" | IOSTANDARD = SSTL18_II; +NET "ddr_zio" LOC = "d5" | IOSTANDARD = SSTL18_II; # RMII Ethernet Interface, to 10/100/1000 RGMII PHY, U3 # on I/O BANK1 => 3.3V logic # dedicated 25MHz clock is generated by crystal locally to PHY # Optionally PHY can generate 125MHz output clock as input to FPGA -NET "clk125" LOC = "m20" | IOSTANDARD =LVCMOS33; +NET "clk125" LOC = "m20" | IOSTANDARD =LVCMOS33; NET "emdc" LOC = "j16" | IOSTANDARD =LVCMOS33; NET "emdint" LOC = "l15" | IOSTANDARD =LVCMOS33; NET "emdio" LOC = "h18" | IOSTANDARD =LVCMOS33; -NET "erx_dv" LOC = "k16" | IOSTANDARD =LVCMOS33 | IOBDELAY = NONE; +NET "erx_dv" LOC = "k16" | IOSTANDARD =LVCMOS33 | IOBDELAY = NONE; NET "erx_clk" LOC = "k19" | IOSTANDARD =LVCMOS33 | IOBDELAY = NONE; NET "erxd(0)" LOC = "h19" | IOSTANDARD =LVCMOS33 | IOBDELAY = NONE; diff --git a/designs/leon3-gr-xc6s/leon3mp.vhd b/designs/leon3-gr-xc6s/leon3mp.vhd index 51f0b05f..ab151a41 100644 --- a/designs/leon3-gr-xc6s/leon3mp.vhd +++ b/designs/leon3-gr-xc6s/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2011, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -21,7 +21,6 @@ -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ - library ieee; use ieee.std_logic_1164.all; library grlib, techmap; @@ -42,7 +41,6 @@ use gaisler.net.all; use gaisler.jtag.all; use gaisler.spacewire.all; use gaisler.grusb.all; ---use gaisler.ata.all; -- pragma translate_off use gaisler.sim.all; -- pragma translate_on @@ -82,9 +80,11 @@ entity leon3mp is ddr_we : out std_ulogic; -- ddr write enable ddr_ras : out std_ulogic; -- ddr ras + ddr_csn : out std_ulogic; -- ddr csn ddr_cas : out std_ulogic; -- ddr cas ddr_dm : out std_logic_vector (1 downto 0); -- ddr dm ddr_dqs : inout std_logic_vector (1 downto 0); -- ddr dqs + ddr_dqsn : inout std_logic_vector (1 downto 0); -- ddr dqs n ddr_ad : out std_logic_vector (12 downto 0); -- ddr address ddr_ba : out std_logic_vector (2 downto 0); -- ddr bank address ddr_dq : inout std_logic_vector (15 downto 0); -- ddr data @@ -158,24 +158,6 @@ entity leon3mp is usb_stp : out std_logic; usb_dir : in std_logic; usb_resetn : out std_ulogic; - - -- ATA / IDE Interface - --- This interface shares pins with GENIO port. - - -- ata_rstn : out std_logic; - -- ata_data : inout std_logic_vector(15 downto 0); - -- ata_da : out std_logic_vector(2 downto 0); - -- ata_cs0 : out std_logic; - -- ata_cs1 : out std_logic; - -- ata_dior : out std_logic; - -- ata_diow : out std_logic; - -- ata_iordy : in std_logic; - -- ata_intrq : in std_logic; - -- ata_dmarq : in std_logic; - -- ata_dmack : out std_logic; - -- --ata_dasp : in std_logic - -- ata_csel : out std_logic; -- SPI flash spi_sel_n : inout std_ulogic; @@ -202,8 +184,7 @@ attribute syn_netlist_hierarchy of rtl : architecture is false; constant blength : integer := 12; constant fifodepth : integer := 8; constant maxahbm : integer := CFG_NCPU+CFG_AHB_UART+CFG_GRETH+ - CFG_AHB_JTAG+CFG_SPW_NUM*CFG_SPW_EN+CFG_GRUSB_DCL+ - CFG_ATA+CFG_GRUSBDC; + CFG_AHB_JTAG+CFG_SPW_NUM*CFG_SPW_EN+CFG_GRUSBHC*CFG_GRUSBHC_UHC+1; signal vcc, gnd : std_logic; @@ -228,8 +209,8 @@ signal clkm, rstn, rstraw, sdclkl : std_ulogic; signal clk_200 : std_ulogic; signal clk25, clk40, clk65 : std_ulogic; -signal cgi, cgi2 : clkgen_in_type; -signal cgo, cgo2 : clkgen_out_type; +signal cgi, cgi2, cgi3 : clkgen_in_type; +signal cgo, cgo2, cgo3 : clkgen_out_type; signal u1i, u2i, dui : uart_in_type; signal u1o, u2o, duo : uart_out_type; @@ -265,7 +246,7 @@ signal can_lrx, can_ltx : std_logic_vector(0 to 7); signal lock, calib_done, clkml, lclk, rst, ndsuact, wdogl : std_ulogic; signal tck, tckn, tms, tdi, tdo : std_ulogic; -signal uclk : std_ulogic; +signal uclk, usb_clk_buf : std_ulogic; signal usbi : grusb_in_vector(0 downto 0); signal usbo : grusb_out_vector(0 downto 0); @@ -290,7 +271,7 @@ signal spmo2 : spimctrl_out_type; constant BOARD_FREQ : integer := 50000; -- input frequency in KHz constant CPU_FREQ : integer := BOARD_FREQ * CFG_CLKMUL / CFG_CLKDIV; -- cpu frequency in KHz -constant IOAEN : integer := CFG_CAN + CFG_ATA + CFG_GRUSBDC; +constant IOAEN : integer := CFG_CAN + CFG_GRUSBHC*CFG_GRUSBHC_UHC; constant DDR2_FREQ : integer := 200000; -- DDR2 input frequency in KHz @@ -300,6 +281,9 @@ signal dtmp : std_logic_vector(CFG_SPW_NUM-1 downto 0); signal stmp : std_logic_vector(CFG_SPW_NUM-1 downto 0); signal spw_clkl : std_ulogic; signal spw_clkln : std_ulogic; +signal spw_rstn : std_ulogic; +signal spw_rstn_sync : std_ulogic; + signal rxclko : std_logic_vector(CFG_SPW_NUM-1 downto 0); signal stati : ahbstat_in_type; signal lusb_clk : std_ulogic; @@ -323,7 +307,7 @@ signal clk_sel : std_logic_vector(1 downto 0); signal clkvga, clkvga_p, clkvga_n : std_ulogic; signal clk_125 : std_ulogic; signal nerror : std_ulogic; - + attribute keep : boolean; attribute syn_keep : boolean; attribute syn_preserve : boolean; @@ -340,7 +324,13 @@ attribute syn_preserve of spw100 : signal is true; attribute keep of spw100 : signal is true; attribute syn_preserve of clkm : signal is true; attribute keep of clkm : signal is true; +attribute syn_preserve of uclk : signal is true; +attribute keep of uclk : signal is true; +attribute maxdelay: string; +attribute maxdelay of usb_dir: signal is "2000 ps"; +attribute maxskew: string; +attribute maxskew of usb_dir : signal is "2000 ps"; begin ---------------------------------------------------------------------- @@ -350,23 +340,31 @@ begin vcc <= '1'; gnd <= '0'; cgi.pllctrl <= "00"; cgi.pllrst <= rstraw; --- pllref_pad : clkpad generic map (tech => padtech) port map (pllref, cgi.pllref); --- ethclk_pad : inpad generic map (tech => padtech) port map(clk2, ethclk); - ethclk <= lclk; clk_pad : clkpad generic map (tech => padtech) port map (clk, lclk); --- clkddr_pad : clkpad generic map (tech => padtech) port map (clk, ddr2clk); - ddr2clk <= lclk; + ddr2clk <= lclk; + ethclk <= lclk; + + no_clk_mig : if CFG_MIG_DDR2 = 0 generate + clkgen0 : clkgen -- clock generator generic map (clktech, CFG_CLKMUL, CFG_CLKDIV, CFG_MCTRL_SDEN, CFG_CLK_NOFB, 0, 0, 0, BOARD_FREQ) port map (lclk, lclk, clkm, open, open, sdclkl, open, cgi, cgo, open, clk50, clk100); + rst0 : rstgen -- reset generator + port map (rst, clkm, lock, rstn, rstraw); + + end generate; + + clk_mig : if CFG_MIG_DDR2 = 1 generate + clk50 <= clkm; + rstraw <= rst; + cgo.clklock <= '1'; + end generate; resetn_pad : inpad generic map (tech => padtech) port map (resetn, rst); - rst0 : rstgen -- reset generator - port map (rst, clkm, lock, rstn, rstraw); --- lock <= cgo.clklock and calib_done when CFG_MIG_DDR2 = 1 else cgo.clklock; - lock <= calib_done; + + lock <= cgo.clklock and calib_done and ulock; ---------------------------------------------------------------------- --- AHB CONTROLLER -------------------------------------------------- @@ -529,47 +527,52 @@ begin --- DDR2 memory controller ------------------------------------------ ---------------------------------------------------------------------- + ddr_csn <= '0'; + mig_gen : if (CFG_MIG_DDR2 = 1) generate - ddrc : entity work.ahb2mig_grxc6s_2p generic map( - hindex => 4, haddr => 16#400#, hmask => 16#F80#, - pindex => 0, paddr => 0, vgamst => CFG_SVGA_ENABLE, vgaburst => 64, - clkdiv => 10) + ddrc : entity work.ahb2mig_grxc6s_2p + generic map( + hindex => 4, haddr => 16#400#, hmask => 16#F80#, + pindex => 0, paddr => 0, vgamst => CFG_SVGA_ENABLE, vgaburst => 64, + clkdiv => 10) port map( - mcb3_dram_dq => ddr_dq, - mcb3_dram_a => ddr_ad, - mcb3_dram_ba => ddr_ba, - mcb3_dram_ras_n => ddr_ras, - mcb3_dram_cas_n => ddr_cas, - mcb3_dram_we_n => ddr_we, - mcb3_dram_odt => ddr_odt, - mcb3_dram_cke => ddr_cke, - mcb3_dram_dm => ddr_dm(0), - mcb3_dram_udqs => ddr_dqs(1), - mcb3_rzq => ddr_rzq, - mcb3_zio => ddr_zio, - mcb3_dram_udm => ddr_dm(1), - mcb3_dram_dqs => ddr_dqs(0), - mcb3_dram_ck => ddr_clk, - mcb3_dram_ck_n => ddr_clkb, - ahbsi => ahbsi, - ahbso => ahbso(4), - ahbmi => vahbmi, - ahbmo => vahbmo, - apbi => apbi2, - apbo => apbo2(0), - calib_done => calib_done, - rst_n_syn => rstn, - rst_n_async => rstraw, - clk_amba => clkm, - clk_mem_n => ddr2clk, - clk_mem_p => ddr2clk, - test_error => open, - clk_125 => clk_125, - clkout5 => open - ); + mcb3_dram_dq => ddr_dq, + mcb3_dram_a => ddr_ad, + mcb3_dram_ba => ddr_ba, + mcb3_dram_ras_n => ddr_ras, + mcb3_dram_cas_n => ddr_cas, + mcb3_dram_we_n => ddr_we, + mcb3_dram_odt => ddr_odt, + mcb3_dram_cke => ddr_cke, + mcb3_dram_dm => ddr_dm(0), + mcb3_dram_udqs => ddr_dqs(1), + mcb3_dram_udqs_n => ddr_dqsn(1), + mcb3_rzq => ddr_rzq, + mcb3_zio => ddr_zio, + mcb3_dram_udm => ddr_dm(1), + mcb3_dram_dqs => ddr_dqs(0), + mcb3_dram_dqs_n => ddr_dqsn(0), + mcb3_dram_ck => ddr_clk, + mcb3_dram_ck_n => ddr_clkb, + ahbsi => ahbsi, + ahbso => ahbso(4), + ahbmi => vahbmi, + ahbmo => vahbmo, + apbi => apbi2, + apbo => apbo2(0), + calib_done => calib_done, + rst_n_syn => rstn, + rst_n_async => rstraw, + clk_amba => clkm, + clk_mem_n => ddr2clk, + clk_mem_p => ddr2clk, + test_error => open, + clk_125 => clk_125, + clk_100 => clk100 + ); end generate; - noddr : if (CFG_DDR2SP+CFG_MIG_DDR2) = 0 generate lock <= '1'; end generate; + noddr : if (CFG_DDR2SP+CFG_MIG_DDR2) = 0 generate calib_done <= '1'; end generate; ---------------------------------------------------------------------- --- SPI Memory Controller-------------------------------------------- @@ -600,6 +603,15 @@ begin port map (spi_sel_n, spmo.csn); end generate; + nospimc: if ((CFG_SPICTRL_ENABLE = 0 and CFG_SPIMCTRL = 0) or + (CFG_SPICTRL_ENABLE = 1 and CFG_SPIMCTRL = 1) or + (CFG_SPICTRL_ENABLE = 1 and CFG_SPIMCTRL = 0))generate + mosi_pad : outpad generic map (tech => padtech) + port map (spi_mosi, '0'); + sck_pad : outpad generic map (tech => padtech) + port map (spi_clk, '0'); + end generate; + ---------------------------------------------------------------------- --- APB Bridge and various periherals ------------------------------- ---------------------------------------------------------------------- @@ -624,6 +636,7 @@ begin rts1_pad : outpad generic map (tech => padtech) port map (rtsn1, u1o.rtsn); end generate; noua0 : if CFG_UART1_ENABLE = 0 generate apbo(1) <= apb_none; end generate; + rts1_pad : outpad generic map (tech => padtech) port map (rtsn2, '0'); irqctrl : if CFG_IRQ3_ENABLE /= 0 generate irqctrl0 : irqmp -- interrupt controller @@ -689,7 +702,8 @@ begin vahbmo, clk_sel); end generate; - b0 : techbuf generic map (2, fabtech) port map (clk50, video_clk); + --b0 : techbuf generic map (2, fabtech) port map (clk50, video_clk); + video_clk <= clk50; vgadvi : if (CFG_VGA_ENABLE + CFG_SVGA_ENABLE) /= 0 generate dvi0 : entity work.svga2ch7301c generic map (tech => fabtech, dynamic => 1) port map (clkm, vgao, video_clk, clkvga_p, clkvga_n, @@ -751,9 +765,8 @@ begin -- make an additonal 32 bit GPIO port for genio(31..0) - -- Pins only usable if ATA interface is not enabled. - gpio1 : if CFG_ATA /=1 and CFG_GRGPIO_ENABLE /= 0 generate -- GPIO unit + gpio1 : if CFG_GRGPIO_ENABLE /= 0 generate -- GPIO unit grgpio1: grgpio generic map(pindex => 11, paddr => 11, imask => CFG_GRGPIO_IMASK, nbits => 32) port map(rst => rstn, clk => clkm, apbi => apbi, apbo => apbo(11), @@ -764,12 +777,8 @@ begin end generate; end generate; - - - -- make an additonal 28 bit GPIO port for genio(59..32) - -- Pins only usable if ATA interface is not enabled. - gpio2 : if CFG_ATA /=1 and CFG_GRGPIO_ENABLE /= 0 generate -- GPIO unit + gpio2 : if CFG_GRGPIO_ENABLE /= 0 generate -- GPIO unit grgpio2: grgpio generic map(pindex => 12, paddr => 12, imask => CFG_GRGPIO_IMASK, nbits => 28) port map(rst => rstn, clk => clkm, apbi => apbi, apbo => apbo(12), @@ -807,13 +816,11 @@ begin led(3 downto 2) <= not (gmiio.gbit & gmiio.speed); - rgmii0 : entity work.rgmii generic map (fabtech, CFG_GRETH1G, 1) --- rgmii0 : entity work.rgmii generic map (fabtech, 1, 1) - port map (rstn, lclk, gmiii, gmiio, rgmiii, rgmiio); + rgmii0 : rgmii generic map (fabtech, CFG_GRETH1G, 1) + port map (rstn, clkm, clk_125, gmiii, gmiio, rgmiii, rgmiio); ethpads : if (CFG_GRETH = 1) generate -- eth pads --- clk125_pad : inpad generic map (tech => padtech) --- port map (clk125, rgmiii.gtx_clk); - rgmiii.gtx_clk <= clk_125; + clk125_pad : inpad generic map (tech => padtech) + port map (clk125, rgmiii.gtx_clk); emdio_pad : iopad generic map (tech => padtech) port map (emdio, rgmiio.mdio_o, rgmiio.mdio_oe, rgmiii.mdio_i); etxc_pad : outpad generic map (tech => padtech) @@ -835,6 +842,7 @@ begin port map (emdc, rgmiio.mdc); end generate; + ----------------------------------------------------------------------- --- AHB RAM ---------------------------------------------------------- ----------------------------------------------------------------------- @@ -893,6 +901,7 @@ begin core0: if CFG_SPW_GRSPW = 1 generate spw_clkl <= clkm; + spw_rstn <= rstn; end generate; core1 : if CFG_SPW_GRSPW = 2 generate @@ -904,6 +913,17 @@ begin -- port map (clk100, spw100); spw100 <= clk100; spw_clkl <= spw100; spw_clkln <= not spw100; + --spw_rstn <= rstn; + spw_rstn_sync_proc : process(rstn,spw_clkl) + begin + if rstn = '0' then + spw_rstn_sync <= '0'; + spw_rstn <= '0'; + elsif rising_edge(spw_clkl) then + spw_rstn_sync <= '1'; + spw_rstn <= spw_rstn_sync; + end if; + end process spw_rstn_sync_proc; end generate; swloop : for i in 0 to CFG_SPW_NUM-1 generate @@ -914,7 +934,7 @@ begin tech => memtech, input_type => CFG_SPW_INPUT) port map( - rstn => rstn, + rstn => spw_rstn, rxclki => spw_clkl, rxclkin => spw_clkln, nrxclki => spw_clkl, @@ -957,7 +977,6 @@ begin core0 : if CFG_SPW_GRSPW = 1 generate spwi(i).d(0) <= dtmp(i); spwi(i).s(0) <= stmp(i); end generate; - spw_rxd_pad : inpad_ds generic map (padtech, lvds, x33v, 1) port map (spw_rxdp(i), spw_rxdn(i), dtmp(i)); spw_rxs_pad : inpad_ds generic map (padtech, lvds, x33v, 1) @@ -973,37 +992,6 @@ begin ------------------------------------------------------------------------------- -- USB ------------------------------------------------------------------------ ------------------------------------------------------------------------------- - -- Note that more than one USB component can not be instantiated at the same - -- time (board has only one USB transceiver), therefore they share AHB - -- master/slave indexes - ----------------------------------------------------------------------------- - -- Shared pads - ----------------------------------------------------------------------------- - usbpads: if (CFG_GRUSBHC + CFG_GRUSBDC + CFG_GRUSB_DCL) /= 0 generate - -- Incoming 60 MHz clock from transceiver, arch 3 = through BUFGDLL or - -- similiar. --- usb_clkout_pad : clkpad generic map (tech => padtech, arch => 3) port map (usb_clk, uclk, cgo.clklock, ulock); --- usb_clkout_pad : clkpad generic map (tech => padtech, arch => 0) port map (usb_clk, lusb_clk); - usb_clk_pad : clkpad generic map (tech => padtech, arch => 0) port map (usb_clk, uclk); - --- x0 : clkmul_virtex2 port map (rstn, lusb_clk, uclk, ulock); - - usb_d_pad: iopadv - generic map(tech => padtech, width => 8) - port map (usb_d, usbo(0).dataout(7 downto 0), usbo(0).oen, - usbi(0).datain(7 downto 0)); - usb_nxt_pad : inpad generic map (tech => padtech) - port map (usb_nxt, usbi(0).nxt); - usb_dir_pad : inpad generic map (tech => padtech) - port map (usb_dir, usbi(0).dir); - usb_resetn_pad : outpad generic map (tech => padtech, slew => 1) - port map (usb_resetn, usbo(0).reset); - usb_stp_pad : outpad generic map (tech => padtech, slew => 1) - port map (usb_stp, usbo(0).stp); - end generate usbpads; - nousb: if (CFG_GRUSBHC + CFG_GRUSBDC + CFG_GRUSB_DCL) = 0 generate - ulock <= '1'; - end generate nousb; ----------------------------------------------------------------------------- -- USB 2.0 Host Controller @@ -1032,115 +1020,36 @@ begin CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_GRETH+CFG_SPW_EN*CFG_SPW_NUM+1), ahbso(8 downto 8), usbo,usbi); - end generate usbhc0; - - ----------------------------------------------------------------------------- - -- USB 2.0 Device Controller - ----------------------------------------------------------------------------- - usbdc0: if CFG_GRUSBDC = 1 generate - usbdc0: grusbdc - generic map( - hsindex => 8, hirq => 9, haddr => 16#004#, hmask => 16#FFC#, - -- hmindex => CFG_NCPU+CFG_AHB_UART+log2x(CFG_PCI)+CFG_AHB_JTAG+CFG_GRETH+CFG_SPW_EN*CFG_SPW_NUM, - hmindex => CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_GRETH+CFG_SPW_EN*CFG_SPW_NUM, - aiface => CFG_GRUSBDC_AIFACE, uiface => 1, - nepi => CFG_GRUSBDC_NEPI, nepo => CFG_GRUSBDC_NEPO, - i0 => CFG_GRUSBDC_I0, i1 => CFG_GRUSBDC_I1, - i2 => CFG_GRUSBDC_I2, i3 => CFG_GRUSBDC_I3, - i4 => CFG_GRUSBDC_I4, i5 => CFG_GRUSBDC_I5, - i6 => CFG_GRUSBDC_I6, i7 => CFG_GRUSBDC_I7, - i8 => CFG_GRUSBDC_I8, i9 => CFG_GRUSBDC_I9, - i10 => CFG_GRUSBDC_I10, i11 => CFG_GRUSBDC_I11, - i12 => CFG_GRUSBDC_I12, i13 => CFG_GRUSBDC_I13, - i14 => CFG_GRUSBDC_I14, i15 => CFG_GRUSBDC_I15, - o0 => CFG_GRUSBDC_O0, o1 => CFG_GRUSBDC_O1, - o2 => CFG_GRUSBDC_O2, o3 => CFG_GRUSBDC_O3, - o4 => CFG_GRUSBDC_O4, o5 => CFG_GRUSBDC_O5, - o6 => CFG_GRUSBDC_O6, o7 => CFG_GRUSBDC_O7, - o8 => CFG_GRUSBDC_O8, o9 => CFG_GRUSBDC_O9, - o10 => CFG_GRUSBDC_O10, o11 => CFG_GRUSBDC_O11, - o12 => CFG_GRUSBDC_O12, o13 => CFG_GRUSBDC_O13, - o14 => CFG_GRUSBDC_O14, o15 => CFG_GRUSBDC_O15, - memtech => memtech, keepclk => 1) - port map( - uclk => uclk, - usbi => usbi(0), - usbo => usbo(0), - hclk => clkm, - hrst => rstn, - ahbmi => ahbmi, --- ahbmo => ahbmo(CFG_NCPU+CFG_AHB_UART+log2x(CFG_PCI)+CFG_AHB_JTAG+CFG_GRETH+CFG_SPW_EN*CFG_SPW_NUM), - ahbmo => ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_GRETH+CFG_SPW_EN*CFG_SPW_NUM), - ahbsi => ahbsi, - ahbso => ahbso(8) - ); - end generate usbdc0; - - ----------------------------------------------------------------------------- - -- USB DCL - ----------------------------------------------------------------------------- - usb_dcl0: if CFG_GRUSB_DCL = 1 generate - usb_dcl0: grusb_dcl - generic map ( --- hindex => CFG_NCPU+CFG_AHB_UART+log2x(CFG_PCI)+CFG_AHB_JTAG+CFG_GRETH+CFG_SPW_EN*CFG_SPW_NUM, - hindex => CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_GRETH+CFG_SPW_EN*CFG_SPW_NUM, - memtech => memtech, keepclk => 1, uiface => 1) - port map ( - uclk, usbi(0), usbo(0), clkm, rstn, ahbmi, - -- ahbmo(CFG_NCPU+CFG_AHB_UART+log2x(CFG_PCI)+CFG_AHB_JTAG+CFG_GRETH+CFG_SPW_EN*CFG_SPW_NUM)); - ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_GRETH+CFG_SPW_EN*CFG_SPW_NUM)); - end generate usb_dcl0; ------------------------------------------------------------------------ ---- AHB ATA ---------------------------------------------------------- ------------------------------------------------------------------------ + -- Incoming 60 MHz clock from transceiver, arch 2 = through BUFG + usb_clk_pad : clkpad generic map (tech => padtech, arch => 2) port map (usb_clk,usb_clk_buf); --- ata0 : if CFG_ATA = 1 generate --- atac0 : atactrl --- generic map( --- tech => 0, fdepth => CFG_ATAFIFO, --- mhindex => CFG_NCPU+CFG_AHB_UART+CFG_GRETH+CFG_AHB_JTAG+CFG_SVGA_ENABLE+ --- CFG_SPW_NUM*CFG_SPW_EN+CFG_GRUSB_DCL+CFG_GRUSBDC, --- shindex => 3, haddr => 16--A00--, hmask => 16--fff--, pirq => CFG_ATAIRQ, --- mwdma => CFG_ATADMA, TWIDTH => 8, --- -- PIO mode 0 settings (@100MHz clock) --- PIO_mode0_T1 => 6, -- 70ns --- PIO_mode0_T2 => 28, -- 290ns --- PIO_mode0_T4 => 2, -- 30ns --- PIO_mode0_Teoc => 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 --- ) --- port map( --- rst => rstn, arst => vcc, clk => clkm, ahbmi => ahbmi, --- ahbmo => ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_GRETH+CFG_AHB_JTAG+ --- CFG_SVGA_ENABLE+CFG_SPW_NUM*CFG_SPW_EN+ --- CFG_GRUSB_DCL+CFG_GRUSBDC), --- ahbsi => ahbsi, ahbso => ahbso(11), atai => idei, atao => ideo); --- --- ata_rstn_pad : outpad generic map (tech => padtech) --- port map (ata_rstn, ideo.rstn); --- ata_data_pad : iopadv generic map (tech => padtech, width => 16, oepol => 1) --- port map (ata_data, ideo.ddo, ideo.oen, idei.ddi); --- ata_da_pad : outpadv generic map (tech => padtech, width => 3) --- port map (ata_da, ideo.da); --- ata_cs0_pad : outpad generic map (tech => padtech) --- port map (ata_cs0, ideo.cs0); --- ata_cs1_pad : outpad generic map (tech => padtech) --- port map (ata_cs1, ideo.cs1); --- ata_dior_pad : outpad generic map (tech => padtech) --- port map (ata_dior, ideo.dior); --- ata_diow_pad : outpad generic map (tech => padtech) --- port map (ata_diow, ideo.diow); --- iordy_pad : inpad generic map (tech => padtech) --- port map (ata_iordy, idei.iordy); --- intrq_pad : inpad generic map (tech => padtech) --- port map (ata_intrq, idei.intrq); --- dmarq_pad : inpad generic map (tech => padtech) --- port map (ata_dmarq, idei.dmarq); --- dmack_pad : outpad generic map (tech => padtech) --- port map (ata_dmack, ideo.dmack); --- ata_csel <= '0'; --- end generate; - + -- Use a ADV PLL for clock network deskew. + clkgen_usb :entity work.usb_spartan6_pll + generic map(16667,8,8,1) + port map (usb_clk_buf,rstraw,uclk,open,ulock); + + usb_d_pad: iopadv + generic map(tech => padtech, width => 8) + port map (usb_d, usbo(0).dataout(7 downto 0), usbo(0).oen, + usbi(0).datain(7 downto 0)); + usb_nxt_pad : inpad generic map (tech => padtech) + port map (usb_nxt, usbi(0).nxt); + usb_dir_pad : inpad generic map (tech => padtech) + port map (usb_dir, usbi(0).dir); + usb_resetn_pad : outpad generic map (tech => padtech, slew => 1) + port map (usb_resetn, usbo(0).reset); + usb_stp_pad : outpad generic map (tech => padtech, slew => 1) + port map (usb_stp, usbo(0).stp); + end generate usbhc0; + nousb: if CFG_GRUSBHC = 0 generate + ulock <= '1'; + usb_resetn_pad : outpad generic map (tech => padtech, slew => 1) + port map (usb_resetn, '0'); + usb_stp_pad : outpad generic map (tech => padtech, slew => 1) + port map (usb_stp, '0'); + end generate nousb; + ----------------------------------------------------------------------- --- Drive unused bus elements --------------------------------------- ----------------------------------------------------------------------- diff --git a/designs/leon3-gr-xc6s/mcb_soft_calibration_patch.txt b/designs/leon3-gr-xc6s/mcb_soft_calibration_patch.txt new file mode 100644 index 00000000..ef221fad --- /dev/null +++ b/designs/leon3-gr-xc6s/mcb_soft_calibration_patch.txt @@ -0,0 +1,1049 @@ +--- ./mig39/mig_39//user_design/rtl/mcb_soft_calibration.vhd 2013-01-15 15:13:18.000000000 +0100 ++++ ./p/a/t/c/h/mig39/mig_39//user_design/rtl/mcb_soft_calibration.vhd 2013-01-15 15:19:15.608793398 +0100 +@@ -94,15 +94,7 @@ + -- 3.7: 04/26/10: Added DDR2 Initialization fix to meet 400 ns wait as outlined in step d) of JEDEC DDR2 spec . + -- 3.8: 05/05/10: Added fixes for the CR# 559092 (updated Mult_Divide function) and 555416 (added IOB attribute to DONE_SOFTANDHARD_CAL). + -- 3.9: 05/24/10: Added 200us Wait logic to control CKE_Train. The 200us Wait counter assumes UI_CLK freq not higher than 100 MHz. +--- 3.10 10/22/10: Fixed PERFORM_START_DYN_CAL_AFTER_SELFREFRESH logic. +--- 3.11 2/14/11: Apply a different skkew for the P and N inputs for the differential LDQS and UDQS signals to provide more noise immunity. +--- 4.1 03/08/12: Fixed SELFREFRESH_MCB_REQ logic. It should not need depend on the SM STATE so that +--- MCB can come out of selfresh mode. SM requires refresh cycle to update the DQS value. +--- 4.2 05/10/12: All P/N terms of input and bidir memory pins are initialized with value of ZERO. TZQINIT_MAXCNT +--- are set to 8 for LPDDR,DDR and DDR2 interface . +--- Keep the UICMDEN in assertion state when SM is in RST_DELAY state so that MCB will not start doing +--- Premable detection until the second deassertion of MCB_SYSRST. +- ++-- 3.10 10/22/10: Fixed PERFORM_START_DYN_CAL_AFTER_SELFREFRESH logic. + + -- End Revision + --********************************************************************************** +@@ -157,17 +149,17 @@ + MCB_UIADDR : out std_logic_vector(4 downto 0) := "00000"; -- to MCB's UIADDR port (gets passed to IODRP2_MCB's AUXADDR port + MCB_UICMDEN : out std_logic := '1'; -- set to 1 to take control of UI interface - removes control from internal calib block + MCB_UIDONECAL : out std_logic := '0'; -- set to 0 to "tell" controller that it's still in a calibrate state +- MCB_UIDQLOWERDEC : out std_logic ; +- MCB_UIDQLOWERINC : out std_logic ; +- MCB_UIDQUPPERDEC : out std_logic ; +- MCB_UIDQUPPERINC : out std_logic ; ++ MCB_UIDQLOWERDEC : out std_logic := '0'; ++ MCB_UIDQLOWERINC : out std_logic := '0'; ++ MCB_UIDQUPPERDEC : out std_logic := '0'; ++ MCB_UIDQUPPERINC : out std_logic := '0'; + MCB_UILDQSDEC : out std_logic := '0'; + MCB_UILDQSINC : out std_logic := '0'; + MCB_UIREAD : out std_logic; -- enables read w/o writing by turning on a SDO->SDI loopback inside the IODRP2_MCBs (doesn't exist in + -- regular IODRP2). IODRPCTRLR_R_WB becomes don't-care. + MCB_UIUDQSDEC : out std_logic := '0'; + MCB_UIUDQSINC : out std_logic := '0'; +- MCB_RECAL : out std_logic ; -- future hook to drive MCB's RECAL pin - initiates a hard re-calibration sequence when high ++ MCB_RECAL : out std_logic := '0'; -- future hook to drive MCB's RECAL pin - initiates a hard re-calibration sequence when high + MCB_UICMD : out std_logic; + MCB_UICMDIN : out std_logic; + MCB_UIDQCOUNT : out std_logic_vector(3 downto 0); +@@ -234,50 +226,31 @@ + constant WAIT5 : std_logic_vector(5 downto 0) := "001111"; + constant BROADCAST_NTERM : std_logic_vector(5 downto 0) := "010000"; + constant WAIT6 : std_logic_vector(5 downto 0) := "010001"; +- +- constant LDQS_CLK_WRITE_P_TERM : std_logic_vector(5 downto 0) := "010010"; +- constant LDQS_CLK_P_TERM_WAIT : std_logic_vector(5 downto 0) := "010011"; +- constant LDQS_CLK_WRITE_N_TERM : std_logic_vector(5 downto 0) := "010100"; +- constant LDQS_CLK_N_TERM_WAIT : std_logic_vector(5 downto 0) := "010101"; +- constant LDQS_PIN_WRITE_P_TERM : std_logic_vector(5 downto 0) := "010110"; +- constant LDQS_PIN_P_TERM_WAIT : std_logic_vector(5 downto 0) := "010111"; +- constant LDQS_PIN_WRITE_N_TERM : std_logic_vector(5 downto 0) := "011000"; +- constant LDQS_PIN_N_TERM_WAIT : std_logic_vector(5 downto 0) := "011001"; +- constant UDQS_CLK_WRITE_P_TERM : std_logic_vector(5 downto 0) := "011010"; +- constant UDQS_CLK_P_TERM_WAIT : std_logic_vector(5 downto 0) := "011011"; +- constant UDQS_CLK_WRITE_N_TERM : std_logic_vector(5 downto 0) := "011100"; +- constant UDQS_CLK_N_TERM_WAIT : std_logic_vector(5 downto 0) := "011101"; +- constant UDQS_PIN_WRITE_P_TERM : std_logic_vector(5 downto 0) := "011110"; +- constant UDQS_PIN_P_TERM_WAIT : std_logic_vector(5 downto 0) := "011111"; +- constant UDQS_PIN_WRITE_N_TERM : std_logic_vector(5 downto 0) := "100000"; +- constant UDQS_PIN_N_TERM_WAIT : std_logic_vector(5 downto 0) := "100001"; +- +- constant OFF_RZQ_PTERM : std_logic_vector(5 downto 0) := "100010"; +- constant WAIT7 : std_logic_vector(5 downto 0) := "100011"; +- constant OFF_ZIO_NTERM : std_logic_vector(5 downto 0) := "100100"; +- constant WAIT8 : std_logic_vector(5 downto 0) := "100101"; +- constant RST_DELAY : std_logic_vector(5 downto 0) := "100110"; +- constant START_DYN_CAL_PRE : std_logic_vector(5 downto 0) := "100111"; +- constant WAIT_FOR_UODONE : std_logic_vector(5 downto 0) := "101000"; +- constant LDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "101001"; +- constant LDQS_WAIT1 : std_logic_vector(5 downto 0) := "101010"; +- constant LDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "101011"; +- constant LDQS_WAIT2 : std_logic_vector(5 downto 0) := "101100"; +- constant UDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "101101"; +- constant UDQS_WAIT1 : std_logic_vector(5 downto 0) := "101110"; +- constant UDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "101111"; +- constant UDQS_WAIT2 : std_logic_vector(5 downto 0) := "110000"; +- constant START_DYN_CAL : std_logic_vector(5 downto 0) := "110001"; +- constant WRITE_CALIBRATE : std_logic_vector(5 downto 0) := "110010"; +- constant WAIT9 : std_logic_vector(5 downto 0) := "110011"; +- constant READ_MAX_VALUE : std_logic_vector(5 downto 0) := "110100"; +- constant WAIT10 : std_logic_vector(5 downto 0) := "110101"; +- constant ANALYZE_MAX_VALUE : std_logic_vector(5 downto 0) := "110110"; +- constant FIRST_DYN_CAL : std_logic_vector(5 downto 0) := "110111"; +- constant INCREMENT : std_logic_vector(5 downto 0) := "111000"; +- constant DECREMENT : std_logic_vector(5 downto 0) := "111001"; +- constant DONE : std_logic_vector(5 downto 0) := "111010"; +- --constant INCREMENT_TA : std_logic_vector(5 downto 0) := "111011"; ++ constant OFF_RZQ_PTERM : std_logic_vector(5 downto 0) := "010010"; ++ constant WAIT7 : std_logic_vector(5 downto 0) := "010011"; ++ constant OFF_ZIO_NTERM : std_logic_vector(5 downto 0) := "010100"; ++ constant WAIT8 : std_logic_vector(5 downto 0) := "010101"; ++ constant RST_DELAY : std_logic_vector(5 downto 0) := "010110"; ++ constant START_DYN_CAL_PRE : std_logic_vector(5 downto 0) := "010111"; ++ constant WAIT_FOR_UODONE : std_logic_vector(5 downto 0) := "011000"; ++ constant LDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "011001"; ++ constant LDQS_WAIT1 : std_logic_vector(5 downto 0) := "011010"; ++ constant LDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "011011"; ++ constant LDQS_WAIT2 : std_logic_vector(5 downto 0) := "011100"; ++ constant UDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "011101"; ++ constant UDQS_WAIT1 : std_logic_vector(5 downto 0) := "011110"; ++ constant UDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "011111"; ++ constant UDQS_WAIT2 : std_logic_vector(5 downto 0) := "100000"; ++ constant START_DYN_CAL : std_logic_vector(5 downto 0) := "100001"; ++ constant WRITE_CALIBRATE : std_logic_vector(5 downto 0) := "100010"; ++ constant WAIT9 : std_logic_vector(5 downto 0) := "100011"; ++ constant READ_MAX_VALUE : std_logic_vector(5 downto 0) := "100100"; ++ constant WAIT10 : std_logic_vector(5 downto 0) := "100101"; ++ constant ANALYZE_MAX_VALUE : std_logic_vector(5 downto 0) := "100110"; ++ constant FIRST_DYN_CAL : std_logic_vector(5 downto 0) := "100111"; ++ constant INCREMENT : std_logic_vector(5 downto 0) := "101000"; ++ constant DECREMENT : std_logic_vector(5 downto 0) := "101001"; ++ constant DONE : std_logic_vector(5 downto 0) := "101010"; + + constant RZQ : std_logic_vector(1 downto 0) := "00"; + constant ZIO : std_logic_vector(1 downto 0) := "01"; +@@ -315,12 +288,10 @@ + constant DIV : integer := 4; + + constant PNSKEW : std_logic := '1'; -- Default is 1'b1. Change to 1'b0 if PSKEW and NSKEW are not required +- constant PNSKEWDQS : std_logic := '1'; +- +- constant MULT_S : integer := 9; +- constant DIV_S : integer := 8; +- constant MULT_W : integer := 7; +- constant DIV_W : integer := 8; ++ constant PSKEW_MULT : integer := 9; ++ constant PSKEW_DIV : integer := 8; ++ constant NSKEW_MULT : integer := 7; ++ constant NSKEW_DIV : integer := 8; + + constant DQS_NUMERATOR : integer := 3; + constant DQS_DENOMINATOR : integer := 8; +@@ -329,23 +300,11 @@ + -- 3 for three eighths + + constant RST_CNT : std_logic_vector(9 downto 0) := "0000010000"; ++ constant TZQINIT_MAXCNT : std_logic_vector(9 downto 0) := C_MEM_TZQINIT_MAXCNT + RST_CNT; + + constant IN_TERM_PASS : std_logic := '0'; + constant DYN_CAL_PASS : std_logic := '1'; + +- function TZQINIT_MAXCNT_W return std_logic_vector is +- variable temp : std_logic_vector(9 downto 0) := (others=>'0'); +- begin +- if (C_MEM_TYPE = "DDR3") then +- temp := C_MEM_TZQINIT_MAXCNT + RST_CNT; +- else +- temp := 8 + RST_CNT; +- end if; +- return temp(9 downto 0); +- end function; +- +- constant TZQINIT_MAXCNT : std_logic_vector(9 downto 0) := TZQINIT_MAXCNT_W; +- + component iodrp_mcb_controller is + port ( + memcell_address : in std_logic_vector(7 downto 0); +@@ -387,15 +346,11 @@ + end component; + + signal P_Term : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term : std_logic_vector(6 downto 0) := "0000000"; +- signal P_Term_s : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term_s : std_logic_vector(6 downto 0) := "0000000"; +- signal P_Term_w : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term_w : std_logic_vector(6 downto 0) := "0000000"; ++ signal N_Term : std_logic_vector(6 downto 0) := "0000000"; + signal P_Term_Prev : std_logic_vector(5 downto 0) := "000000"; + signal N_Term_Prev : std_logic_vector(6 downto 0) := "0000000"; + +- signal STATE : std_logic_vector(5 downto 0); ++ signal STATE : std_logic_vector(5 downto 0) := START; + signal IODRPCTRLR_MEMCELL_ADDR : std_logic_vector(7 downto 0); + signal IODRPCTRLR_WRITE_DATA : std_logic_vector(7 downto 0); + signal Active_IODRP : std_logic_vector(1 downto 0); +@@ -411,7 +366,7 @@ + signal count : std_logic_vector(5 downto 0) := "000000"; -- counter for adding 18 extra clock cycles after setting Calibrate bit + signal counter_en : std_logic := '0'; -- counter enable for "count" + signal First_Dyn_Cal_Done : std_logic := '0'; -- flag - high after the very first dynamic calibration is done +- signal START_BROADCAST : std_logic ; -- Trigger to start Broadcast to IODRP2_MCBs to set Input Impedance - ++ signal START_BROADCAST : std_logic := '1'; -- Trigger to start Broadcast to IODRP2_MCBs to set Input Impedance - + -- state machine will wait for this to be high + signal DQS_DELAY_INITIAL : std_logic_vector(7 downto 0) := "00000000"; + signal DQS_DELAY : std_logic_vector(7 downto 0); -- contains the latest values written to LDQS and UDQS Input Delays +@@ -474,24 +429,15 @@ + signal MCB_UISDI_xilinx11 : std_logic; + signal MCB_UICS_xilinx6 : std_logic; + signal MCB_UIBROADCAST_xilinx4 : std_logic; +- signal MCB_UIADDR_int : std_logic_vector(4 downto 0); ++ signal MCB_UIADDR_xilinx3 : std_logic_vector(4 downto 0); + signal MCB_UIDONECAL_xilinx7 : std_logic; + signal MCB_UIREAD_xilinx10 : std_logic; + signal SELFREFRESH_MODE_xilinx11 : std_logic; + signal Max_Value_int : std_logic_vector(7 downto 0); + signal Rst_condition1 : std_logic; +- --signal Rst_condition2 : std_logic; ++ signal Rst_condition2 : std_logic; + signal non_violating_rst : std_logic; + signal WAIT_200us_COUNTER : std_logic_vector(15 downto 0); +- signal WaitTimer : std_logic_vector(7 downto 0); +- signal WarmEnough : std_logic; +- signal WaitCountEnable : std_logic; +- signal State_Start_DynCal_R1 : std_logic; +- signal State_Start_DynCal : std_logic; +- +- signal pre_sysrst_minpulse_width_ok : std_logic; +- signal pre_sysrst_cnt : std_logic_vector(3 downto 0); +- + -- This function multiplies by a constant MULT and then divides by the DIV constant + function Mult_Divide (Input : std_logic_vector(7 downto 0); MULT : integer ; DIV : integer ) return std_logic_vector is + variable Result : integer := 0; +@@ -505,19 +451,9 @@ + return temp(7 downto 0); + end function Mult_Divide; + +- +- + attribute syn_preserve : boolean; + attribute syn_preserve of P_Term : signal is TRUE; + attribute syn_preserve of N_Term : signal is TRUE; +- attribute syn_preserve of P_Term_s : signal is TRUE; +- attribute syn_preserve of N_Term_s : signal is TRUE; +- attribute syn_preserve of P_Term_w : signal is TRUE; +- attribute syn_preserve of N_Term_w : signal is TRUE; +- +- +- +- + attribute syn_preserve of P_Term_Prev : signal is TRUE; + attribute syn_preserve of N_Term_Prev : signal is TRUE; + attribute syn_preserve of IODRPCTRLR_MEMCELL_ADDR : signal is TRUE; +@@ -530,18 +466,6 @@ + + begin + +- +--- move the default assignment here to make FORMALITY happy. +- +- START_BROADCAST <= '1'; +- MCB_RECAL <= '0'; +- MCB_UIDQLOWERDEC <= '0'; +- MCB_UIADDR <= MCB_UIADDR_int; +- MCB_UIDQLOWERINC <= '0'; +- MCB_UIDQUPPERDEC <= '0'; +- MCB_UIDQUPPERINC <= '0'; +- +- + Max_Value <= Max_Value_int; + -- Drive referenced outputs + IODRP_ADD <= IODRP_ADD_xilinx0; +@@ -550,6 +474,7 @@ + MCB_UISDI <= MCB_UISDI_xilinx11; + MCB_UICS <= MCB_UICS_xilinx6; + MCB_UIBROADCAST <= MCB_UIBROADCAST_xilinx4; ++ MCB_UIADDR <= MCB_UIADDR_xilinx3; + MCB_UIDONECAL <= MCB_UIDONECAL_xilinx7; + MCB_UIREAD <= MCB_UIREAD_xilinx10; + SELFREFRESH_MODE <= SELFREFRESH_MODE_xilinx11; +@@ -607,7 +532,7 @@ + cmd_valid => MCB_CMD_VALID, + rdy_busy_n => MCB_RDY_BUSY_N, + use_broadcast => MCB_USE_BKST, +- drp_ioi_addr => MCB_UIADDR_int, ++ drp_ioi_addr => MCB_UIADDR_xilinx3, + sync_rst => RST_reg, + DRP_CLK => UI_CLK, + DRP_CS => MCB_UICS_xilinx6, +@@ -618,13 +543,10 @@ + MCB_UIREAD => MCB_UIREAD_xilinx10 + ); + ++ init_sequence: if (C_SIMULATION = "FALSE") generate + process (UI_CLK, RST) begin + if (RST = '1') then +- if (C_SIMULATION = "TRUE") then +- WAIT_200us_COUNTER <= X"7FF0"; +- else + WAIT_200us_COUNTER <= (others => '0'); +- end if; + elsif (UI_CLK'event and UI_CLK = '1') then + if (WAIT_200us_COUNTER(15) = '1') then + WAIT_200us_COUNTER <= WAIT_200us_COUNTER; +@@ -633,15 +555,16 @@ + end if; + end if; + end process; ++ end generate; + +- -- init_sequence_skip: if (C_SIMULATION = "TRUE") generate +- -- WAIT_200us_COUNTER <= X"FFFF"; +- -- process +- -- begin +- -- report "The 200 us wait period required before CKE goes active has been skipped in Simulation"; +- -- wait; +- -- end process; +- -- end generate; ++ init_sequence_skip: if (C_SIMULATION = "TRUE") generate ++ WAIT_200us_COUNTER <= X"FFFF"; ++ process ++ begin ++ report "The 200 us wait period required before CKE goes active has been skipped in Simulation"; ++ wait; ++ end process; ++ end generate; + + + gen_CKE_Train_a: if (C_MEM_TYPE = "DDR2") generate +@@ -653,8 +576,6 @@ + CKE_Train <= '0'; + elsif (WAIT_200us_COUNTER(15) = '1' and MCB_UODONECAL = '0') then + CKE_Train <= '1'; +- else +- CKE_Train <= '0'; + end if; + end if; + end process; +@@ -671,20 +592,19 @@ + --******************************************** + -- PLL_LOCK and RST signals + --******************************************** +- --MCB_SYSRST <= Pre_SYSRST or RST_reg; -- Pre_SYSRST is generated from the STATE state machine, and is OR'd with RST_reg input to drive MCB's ++ MCB_SYSRST <= Pre_SYSRST or RST_reg; -- Pre_SYSRST is generated from the STATE state machine, and is OR'd with RST_reg input to drive MCB's + -- SYSRST pin (MCB_SYSRST) +- + rst_tmp <= not(SELFREFRESH_MODE_xilinx11) and not(PLL_LOCK_R2); -- rst_tmp becomes 1 if you lose Lock and the device is not in SUSPEND + + process (UI_CLK, RST) begin + if (RST = '1') then +- --Block_Reset <= '0'; +- --RstCounter <= (others => '0'); +- --elsif (UI_CLK'event and UI_CLK = '1') then +- -- if (rst_tmp = '1') then -- this is to deal with not allowing the user-reset "RST" to violate TZQINIT_MAXCNT (min time between resets to DDR3) ++ Block_Reset <= '0'; ++ RstCounter <= (others => '0'); ++ elsif (UI_CLK'event and UI_CLK = '1') then ++ if (rst_tmp = '1') then -- this is to deal with not allowing the user-reset "RST" to violate TZQINIT_MAXCNT (min time between resets to DDR3) + Block_Reset <= '0'; + RstCounter <= (others => '0'); +- elsif (UI_CLK'event and UI_CLK = '1') then ++ else + Block_Reset <= '0'; -- default to allow STATE to move out of RST_DELAY state + if (Pre_SYSRST = '1') then + RstCounter <= RST_CNT; -- whenever STATE wants to reset the MCB, set RstCounter to h10 +@@ -695,14 +615,11 @@ + end if; + end if; + end if; +- --end if; ++ end if; + end process; +- +- -- Rst_contidtion1 is to make sure RESET will not happen again within TZQINIT_MAXCNT +- non_violating_rst <= RST and Rst_condition1; +- MCB_SYSRST <= Pre_SYSRST; + +- process (UI_CLK) begin ++ non_violating_rst <= RST and Rst_condition1; ++ process (UI_CLK) begin + if (UI_CLK'event and UI_CLK = '1') then + if (RstCounter >= TZQINIT_MAXCNT) then + Rst_condition1 <= '1'; +@@ -712,31 +629,18 @@ + end if; + end process; + +--- -- non_violating_rst asserts whenever (system-level reset) RST is asserted but must be after TZQINIT_MAXCNT is reached (min-time between resets for DDR3) +--- -- After power stablizes, we will hold MCB in reset state for at least 200us before beginning initialization process. +--- -- If the PLL loses lock during normal operation, no ui_clk will be present because mcb_drp_clk is from a BUFGCE which +--- is gated by pll's lock signal. When the PLL locks again, the RST_reg stays asserted for at least 200 us which +--- will cause MCB to reset and reinitialize the memory afterwards. +--- -- During SUSPEND operation, the PLL will lose lock but non_violating_rst remains low (de-asserted) and WAIT_200us_COUNTER stays at +--- its terminal count. The PLL_LOCK input does not come direct from PLL, rather it is driven by gated_pll_lock from mcb_raw_wrapper module +--- The gated_pll_lock in the mcb_raw_wrapper does not de-assert during SUSPEND operation, hence PLL_LOCK will not de-assert, and the soft calibration +--- state machine will not reset during SUSPEND. +--- -- RST_reg is the control signal that resets the mcb_soft_calibration's State Machine. The MCB_SYSRST is now equal to +--- Pre_SYSRST. When State Machine is performing "INPUT Termination Calibration", it holds the MCB in reset by assertign MCB_SYSRST. +--- It will deassert the MCB_SYSRST so that it can grab the bus to broadcast the P and N term value to all of the DQ pins. Once the calibrated INPUT +--- termination is set, the State Machine will issue another short MCB_SYSRST so that MCB will use the tuned input termination during DQS preamble calibration. + + +- --process (UI_CLK) begin +- -- if (UI_CLK'event and UI_CLK = '1') then +- -- +- -- if (RstCounter < RST_CNT) then +- -- Rst_condition2 <= '1'; +- -- else +- -- Rst_condition2 <= '0'; +- -- end if; +- -- end if; +- --end process; ++ process (UI_CLK) begin ++ if (UI_CLK'event and UI_CLK = '1') then ++ ++ if (RstCounter < RST_CNT) then ++ Rst_condition2 <= '1'; ++ else ++ Rst_condition2 <= '0'; ++ end if; ++ end if; ++ end process; + + process (UI_CLK, non_violating_rst) begin + if (non_violating_rst = '1') then +@@ -745,47 +649,18 @@ + if (WAIT_200us_COUNTER(15) = '0') then + RST_reg <= '1'; + else +- --RST_reg <= Rst_condition2 or rst_tmp; -- insures RST_reg is at least h10 pulses long +- RST_reg <= rst_tmp; -- insures RST_reg is at least h10 pulses long ++ RST_reg <= Rst_condition2 or rst_tmp; -- insures RST_reg is at least h10 pulses long + end if; + end if; + end process; + +---************************************************************* +--- Stretching the pre_sysrst to satisfy the minimum pulse width +---************************************************************* +- +-process (UI_CLK) begin +-if (UI_CLK'event and UI_CLK = '1') then +- if (STATE = START_DYN_CAL_PRE) then +- pre_sysrst_cnt <= pre_sysrst_cnt + '1'; +- else +- pre_sysrst_cnt <= (others=>'0'); +- end if; +-end if; +-end process; +- +-pre_sysrst_minpulse_width_ok <= pre_sysrst_cnt(3); +- ++ + --******************************************** + -- SUSPEND Logic + --******************************************** +- process (UI_CLK,RST) ++ process (UI_CLK) + begin +- if (RST = '1') then +- +- SELFREFRESH_MCB_MODE_R1 <= '0'; +- SELFREFRESH_MCB_MODE_R2 <= '0'; +- SELFREFRESH_MCB_MODE_R3 <= '0'; +- +- SELFREFRESH_REQ_R1 <= '0'; +- SELFREFRESH_REQ_R2 <= '0'; +- SELFREFRESH_REQ_R3 <= '0'; +- +- PLL_LOCK_R1 <= '0'; +- PLL_LOCK_R2 <= '0'; +- +- elsif (UI_CLK'event and UI_CLK = '1') then ++ if (UI_CLK'event and UI_CLK = '1') then + -- SELFREFRESH_MCB_MODE is clocked by sysclk_2x_180 + SELFREFRESH_MCB_MODE_R1 <= SELFREFRESH_MCB_MODE; + SELFREFRESH_MCB_MODE_R2 <= SELFREFRESH_MCB_MODE_R1; +@@ -810,10 +685,9 @@ + if (UI_CLK'event and UI_CLK = '1') then + if (RST = '1') then + SELFREFRESH_MCB_REQ <= '0'; +- --elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R3 = '0') and (STATE = START_DYN_CAL)) then +- elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R3 = '0')) then ++ elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R1 = '0') and (STATE = START_DYN_CAL)) then + SELFREFRESH_MCB_REQ <= '0'; +- elsif ((STATE = START_DYN_CAL) and (SELFREFRESH_REQ_R3 = '1')) then ++ elsif ((STATE = START_DYN_CAL) and (SELFREFRESH_REQ_R1 = '1')) then + SELFREFRESH_MCB_REQ <= '1'; + end if; + end if; +@@ -859,10 +733,6 @@ + + -- SELFREFRESH_MCB_MODE deasserted status is hold off + -- until Soft_Calib has at least done one loop of DQS update. +--- New logic WarmeEnough is added to make sure PLL_Lock is lockec and all IOs stable before +--- deassert the status of MCB's SELFREFRESH_MODE. This is to ensure all IOs are stable before +--- user logic sending new commands to MCB. +- + process (UI_CLK) + begin + if (UI_CLK'event and UI_CLK = '1') then +@@ -870,76 +740,12 @@ + SELFREFRESH_MODE_xilinx11 <= '0'; + elsif (SELFREFRESH_MCB_MODE_R2 = '1') then + SELFREFRESH_MODE_xilinx11 <= '1'; +- elsif (WarmEnough = '1') then +- SELFREFRESH_MODE_xilinx11 <= '0'; +- end if; +- end if; +- end process; +- +- +- +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- WaitCountEnable <= '0'; +- elsif (SELFREFRESH_REQ_R2 = '0' and SELFREFRESH_REQ_R1 = '1') then +- WaitCountEnable <= '0'; + elsif ((PERFORM_START_DYN_CAL_AFTER_SELFREFRESH = '0') and (PERFORM_START_DYN_CAL_AFTER_SELFREFRESH_R1 = '1')) then +- WaitCountEnable <= '1'; +- else +- WaitCountEnable <= WaitCountEnable; ++ SELFREFRESH_MODE_xilinx11 <= '0'; + end if; + end if; + end process; + +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- State_Start_DynCal <= '0'; +- elsif (STATE = START_DYN_CAL) then +- State_Start_DynCal <= '1'; +- else +- State_Start_DynCal <= '0'; +- end if; +- end if; +- end process; +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- State_Start_DynCal_R1 <= '0'; +- else +- State_Start_DynCal_R1 <= State_Start_DynCal; +- end if; +- end if; +- end process; +- +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- WaitTimer <= (others => '0'); +- WarmEnough <= '1'; +- elsif ((SELFREFRESH_REQ_R2 = '0') and (SELFREFRESH_REQ_R1 = '1')) then +- WaitTimer <= (others => '0'); +- WarmEnough <= '0'; +- elsif (WaitTimer = X"04") then +- WaitTimer <= WaitTimer ; +- WarmEnough <= '1'; +- elsif (WaitCountEnable = '1') then +- WaitTimer <= WaitTimer + '1'; +- else +- WaitTimer <= WaitTimer ; +- end if; +- end if; +- end process; +- + --******************************************** + --Comparitor for Dynamic Calibration circuit + --******************************************** +@@ -1014,7 +820,7 @@ + if (UI_CLK'event and UI_CLK = '1') then + if (RST_reg = '1') then -- Synchronous reset + MCB_CMD_VALID <= '0'; +- MCB_UIADDR_int <= "00000"; -- take control of UI/UO port ++ MCB_UIADDR_xilinx3 <= "00000"; -- take control of UI/UO port + MCB_UICMDEN <= '1'; -- tells MCB that it is in Soft Cal. + MCB_UIDONECAL_xilinx7 <= '0'; + MCB_USE_BKST <= '0'; +@@ -1027,11 +833,6 @@ + IODRPCTRLR_USE_BKST <= '0'; + P_Term <= "000000"; + N_Term <= "0000000"; +- P_Term_s <= "000000"; +- N_Term_w <= "0000000"; +- P_Term_w <= "000000"; +- N_Term_s <= "0000000"; +- + P_Term_Prev <= "000000"; + N_Term_Prev <= "0000000"; + Active_IODRP <= RZQ; +@@ -1079,10 +880,7 @@ + Pre_SYSRST <= '1'; -- keeps MCB in reset + LastPass_DynCal <= IN_TERM_PASS; + if (SKIP_IN_TERM_CAL = 1) then +- --STATE <= WRITE_CALIBRATE; +- STATE <= WAIT_FOR_START_BROADCAST; +- P_Term <= "000000"; +- N_Term <= "0000000"; ++ STATE <= WRITE_CALIBRATE; + elsif (IODRPCTRLR_RDY_BUSY_N = '1') then + STATE <= LOAD_RZQ_NTERM; + else +@@ -1135,8 +933,7 @@ + STATE <= LOAD_RZQ_PTERM; + + when MULTIPLY_DIVIDE => -- h06 +- -- 13/4/2011 compensate the added sync FF +- P_Term <= Mult_Divide(("00" & (P_Term - '1')),MULT,DIV)(5 downto 0); ++ P_Term <= Mult_Divide(("00" & P_Term),MULT,DIV)(5 downto 0); + STATE <= LOAD_ZIO_PTERM; + + when LOAD_ZIO_PTERM => --h07 +@@ -1188,13 +985,8 @@ + STATE <= LOAD_ZIO_NTERM; + + when SKEW => -- h0C +- +- P_Term_s <= Mult_Divide(("00" & P_Term), MULT_S, DIV_S)(5 downto 0); +- N_Term_w <= Mult_Divide(('0' & (N_Term-'1')), MULT_W, DIV_W)(6 downto 0); +- P_Term_w <= Mult_Divide(("00" & P_Term), MULT_W, DIV_W)(5 downto 0); +- N_Term_s <= Mult_Divide(('0' & (N_Term-'1')), MULT_S, DIV_S)(6 downto 0); +- P_Term <= Mult_Divide(("00" & P_Term), MULT_S, DIV_S)(5 downto 0); +- N_Term <= Mult_Divide(('0' & (N_Term-'1')), MULT_W, DIV_W)(6 downto 0); ++ P_Term <= Mult_Divide(("00" & P_Term), PSKEW_MULT, PSKEW_DIV)(5 downto 0); ++ N_Term <= Mult_Divide(('0' & N_Term), NSKEW_MULT, NSKEW_DIV)(6 downto 0); + STATE <= WAIT_FOR_START_BROADCAST; + + when WAIT_FOR_START_BROADCAST => --h0D +@@ -1202,7 +994,7 @@ + -- keeping the MCB in calibration mode + Active_IODRP <= MCB_PORT; + if ((START_BROADCAST and IODRPCTRLR_RDY_BUSY_N) = '1') then +- if ((P_Term /= P_Term_Prev) or (SKIP_IN_TERM_CAL = 1)) then ++ if (P_Term /= P_Term_Prev) then + STATE <= BROADCAST_PTERM; + P_Term_Prev <= P_Term; + elsif (N_Term /= N_Term_Prev) then +@@ -1272,184 +1064,10 @@ + STATE <= WAIT6; -- wait for a Refresh cycle + end if; + else +- -- if (PNSKEWDQS = '1') then +- STATE <= LDQS_CLK_WRITE_P_TERM; +- -- else +- -- STATE <= OFF_RZQ_PTERM; +- -- end if; +- end if; +- +--- ********************* +- when LDQS_CLK_WRITE_P_TERM => -- h12 +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_w; +- MCB_UIADDR_int <= IOI_LDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_CLK_WRITE_P_TERM; +- else +- STATE <= LDQS_CLK_P_TERM_WAIT; +- end if; +- +- +- when LDQS_CLK_P_TERM_WAIT => --7'h13 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_CLK_P_TERM_WAIT; +- else +- STATE <= LDQS_CLK_WRITE_N_TERM; +- end if; +- +- when LDQS_CLK_WRITE_N_TERM => --7'h14 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_s; +- MCB_UIADDR_int <= IOI_LDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_CLK_WRITE_N_TERM; +- else +- STATE <= LDQS_CLK_N_TERM_WAIT; +- end if; +- +- --** +- when LDQS_CLK_N_TERM_WAIT => --7'h15 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_CLK_N_TERM_WAIT; +- else +- STATE <= LDQS_PIN_WRITE_P_TERM; +- end if; +- +- +- when LDQS_PIN_WRITE_P_TERM => --7'h16 +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_s; +- MCB_UIADDR_int <= IOI_LDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_PIN_WRITE_P_TERM; +- else +- STATE <= LDQS_PIN_P_TERM_WAIT; +- end if; +- +- +- when LDQS_PIN_P_TERM_WAIT => --7'h17 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_PIN_P_TERM_WAIT; +- else +- STATE <= LDQS_PIN_WRITE_N_TERM; +- end if; +- +- +- when LDQS_PIN_WRITE_N_TERM => --7'h18 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_w; +- MCB_UIADDR_int <= IOI_LDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_PIN_WRITE_N_TERM; +- else +- STATE <= LDQS_PIN_N_TERM_WAIT; +- end if; +- +- +- when LDQS_PIN_N_TERM_WAIT => --7'h19 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_PIN_N_TERM_WAIT; +- else +- STATE <= UDQS_CLK_WRITE_P_TERM; +- end if; +- +- +- +- when UDQS_CLK_WRITE_P_TERM => --7'h1A +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_w; +- MCB_UIADDR_int <= IOI_UDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_CLK_WRITE_P_TERM; +- else +- STATE <= UDQS_CLK_P_TERM_WAIT; +- end if; +- +- +- when UDQS_CLK_P_TERM_WAIT => --7'h1B +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_CLK_P_TERM_WAIT; +- else +- STATE <= UDQS_CLK_WRITE_N_TERM; +- end if; +- +- +- when UDQS_CLK_WRITE_N_TERM => --7'h1C +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_s; +- MCB_UIADDR_int <= IOI_UDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_CLK_WRITE_N_TERM; +- else +- STATE <= UDQS_CLK_N_TERM_WAIT; +- end if; +- +- when UDQS_CLK_N_TERM_WAIT => --7'h1D +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_CLK_N_TERM_WAIT; +- else +- STATE <= UDQS_PIN_WRITE_P_TERM; +- end if; +- +- +- +- when UDQS_PIN_WRITE_P_TERM => --7'h1E +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_s; +- MCB_UIADDR_int <= IOI_UDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_PIN_WRITE_P_TERM; +- else +- STATE <= UDQS_PIN_P_TERM_WAIT; +- end if; +- +- +- when UDQS_PIN_P_TERM_WAIT => --7'h1F +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_PIN_P_TERM_WAIT; +- else +- STATE <= UDQS_PIN_WRITE_N_TERM; +- end if; +- +- when UDQS_PIN_WRITE_N_TERM => --7'h20 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_w; +- MCB_UIADDR_int <= IOI_UDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_PIN_WRITE_N_TERM; +- else +- STATE <= UDQS_PIN_N_TERM_WAIT; +- end if; +- +- +- when UDQS_PIN_N_TERM_WAIT => --7'h21 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_PIN_N_TERM_WAIT; +- else +- STATE <= OFF_RZQ_PTERM; ++ STATE <= OFF_RZQ_PTERM; + end if; +- +--- ********************* + +- +- when OFF_RZQ_PTERM => -- h22 ++ when OFF_RZQ_PTERM => -- h12 + Active_IODRP <= RZQ; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= PTerm; +@@ -1464,14 +1082,14 @@ + STATE <= WAIT7; + end if; + +- when WAIT7 => -- h23 ++ when WAIT7 => -- h13 + if ((not(IODRPCTRLR_RDY_BUSY_N)) = '1') then + STATE <= WAIT7; + else + STATE <= OFF_ZIO_NTERM; + end if; + +- when OFF_ZIO_NTERM => -- h24 ++ when OFF_ZIO_NTERM => -- h14 + Active_IODRP <= ZIO; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= NTerm; +@@ -1483,7 +1101,7 @@ + STATE <= WAIT8; + end if; + +- when WAIT8 => -- h25 ++ when WAIT8 => -- h15 + if (IODRPCTRLR_RDY_BUSY_N = '0') then + STATE <= WAIT8; + else +@@ -1494,8 +1112,8 @@ + end if; + end if; + +- when RST_DELAY => -- h26 +- --MCB_UICMDEN <= '0'; -- release control of UI/UO port ++ when RST_DELAY => -- h16 ++ MCB_UICMDEN <= '0'; -- release control of UI/UO port + if (Block_Reset = '1') then -- this ensures that more than 512 clock cycles occur since the last reset after MCB_WRITE_CALIBRATE ??? + STATE <= RST_DELAY; + else +@@ -1505,18 +1123,18 @@ + --*************************** + --DYNAMIC CALIBRATION PORTION + --*************************** +- when START_DYN_CAL_PRE => -- h27 ++ when START_DYN_CAL_PRE => -- h17 + LastPass_DynCal <= IN_TERM_PASS; + MCB_UICMDEN <= '0'; -- release UICMDEN + MCB_UIDONECAL_xilinx7 <= '1'; -- release UIDONECAL - MCB will now initialize. + Pre_SYSRST <= '1'; -- SYSRST pulse + if (CALMODE_EQ_CALIBRATION = '0') then -- if C_MC_CALIBRATION_MODE is set to NOCALIBRATION + STATE <= START_DYN_CAL; -- we'll skip setting the DQS delays manually +- elsif (pre_sysrst_minpulse_width_ok = '1') then ++ else + STATE <= WAIT_FOR_UODONE; + end if; + +- when WAIT_FOR_UODONE => -- h28 ++ when WAIT_FOR_UODONE => -- h18 + Pre_SYSRST <= '0'; -- SYSRST pulse + if ((IODRPCTRLR_RDY_BUSY_N and MCB_UODONECAL) = '1')then --IODRP Controller needs to be ready, & MCB needs to be done with hard calibration + MCB_UICMDEN <= '1'; -- grab UICMDEN +@@ -1526,11 +1144,11 @@ + STATE <= WAIT_FOR_UODONE; + end if; + +- when LDQS_WRITE_POS_INDELAY => -- h29 ++ when LDQS_WRITE_POS_INDELAY => -- h19 + IODRPCTRLR_MEMCELL_ADDR <= PosEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_LDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_LDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1') then + STATE <= LDQS_WRITE_POS_INDELAY; +@@ -1538,18 +1156,18 @@ + STATE <= LDQS_WAIT1; + end if; + +- when LDQS_WAIT1 => -- h2A ++ when LDQS_WAIT1 => -- h1A + if (MCB_RDY_BUSY_N = '0')then + STATE <= LDQS_WAIT1; + else + STATE <= LDQS_WRITE_NEG_INDELAY; + end if; + +- when LDQS_WRITE_NEG_INDELAY => -- h2B ++ when LDQS_WRITE_NEG_INDELAY => -- h1B + IODRPCTRLR_MEMCELL_ADDR <= NegEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_LDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_LDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= LDQS_WRITE_NEG_INDELAY; +@@ -1557,18 +1175,18 @@ + STATE <= LDQS_WAIT2; + end if; + +- when LDQS_WAIT2 => -- 7'h2C ++ when LDQS_WAIT2 => -- 7'h1C + if(MCB_RDY_BUSY_N = '0')then + STATE <= LDQS_WAIT2; + else + STATE <= UDQS_WRITE_POS_INDELAY; + end if; + +- when UDQS_WRITE_POS_INDELAY => -- 7'h2D ++ when UDQS_WRITE_POS_INDELAY => -- 7'h1D + IODRPCTRLR_MEMCELL_ADDR <= PosEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_UDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_UDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= UDQS_WRITE_POS_INDELAY; +@@ -1576,18 +1194,18 @@ + STATE <= UDQS_WAIT1; + end if; + +- when UDQS_WAIT1 => -- 7'h2E ++ when UDQS_WAIT1 => -- 7'h1E + if (MCB_RDY_BUSY_N = '0')then + STATE <= UDQS_WAIT1; + else + STATE <= UDQS_WRITE_NEG_INDELAY; + end if; + +- when UDQS_WRITE_NEG_INDELAY => -- 7'h2F ++ when UDQS_WRITE_NEG_INDELAY => -- 7'h1F + IODRPCTRLR_MEMCELL_ADDR <= NegEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_UDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_UDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= UDQS_WRITE_NEG_INDELAY; +@@ -1595,7 +1213,7 @@ + STATE <= UDQS_WAIT2; + end if; + +- when UDQS_WAIT2 => -- 7'h30 ++ when UDQS_WAIT2 => -- 7'h20 + if (MCB_RDY_BUSY_N = '0')then + STATE <= UDQS_WAIT2; + else +@@ -1604,7 +1222,7 @@ + STATE <= START_DYN_CAL; + end if; + +- when START_DYN_CAL => -- h31 ++ when START_DYN_CAL => -- h21 + Pre_SYSRST <= '0'; -- SYSRST not driven + counter_inc <= (others => '0'); + counter_dec <= (others => '0'); +@@ -1624,7 +1242,7 @@ + STATE <= START_DYN_CAL; + end if; + +- when WRITE_CALIBRATE => -- h32 ++ when WRITE_CALIBRATE => -- h22 + Pre_SYSRST <= '0'; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= DelayControl; +@@ -1637,7 +1255,7 @@ + STATE <= WAIT9; + end if; + +- when WAIT9 => -- h33 ++ when WAIT9 => -- h23 + counter_en <= '1'; + if (count < "100110") then -- this adds approximately 22 extra clock cycles after WRITE_CALIBRATE + STATE <= WAIT9; +@@ -1645,7 +1263,7 @@ + STATE <= READ_MAX_VALUE; + end if; + +- when READ_MAX_VALUE => -- h34 ++ when READ_MAX_VALUE => -- h24 + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= MaxValue; + IODRPCTRLR_R_WB <= READ_MODE; +@@ -1656,7 +1274,7 @@ + STATE <= WAIT10; + end if; + +- when WAIT10 => -- h35 ++ when WAIT10 => -- h25 + if (IODRPCTRLR_RDY_BUSY_N = '0') then + STATE <= WAIT10; + else +@@ -1669,7 +1287,7 @@ + end if; + end if; + +- when ANALYZE_MAX_VALUE => -- h36 only do a Inc or Dec during a REFRESH cycle. ++ when ANALYZE_MAX_VALUE => -- h26 only do a Inc or Dec during a REFRESH cycle. + if (First_Dyn_Cal_Done = '0')then + STATE <= FIRST_DYN_CAL; + elsif ((Max_Value_int < Max_Value_Previous) and (Max_Value_Delta_Dn >= INCDEC_THRESHOLD)) then +@@ -1684,11 +1302,11 @@ + STATE <= START_DYN_CAL; + end if; + +- when FIRST_DYN_CAL => -- h37 ++ when FIRST_DYN_CAL => -- h27 + First_Dyn_Cal_Done <= '1'; -- set flag that the First Dynamic Calibration has been completed + STATE <= START_DYN_CAL; + +- when INCREMENT => -- h38 ++ when INCREMENT => -- h28 + STATE <= START_DYN_CAL; -- Default case: Inc is not high or no longer in REFRSH + MCB_UILDQSINC <= '0'; -- Default case: no inc or dec + MCB_UIUDQSINC <= '0'; -- Default case: no inc or dec +@@ -1712,7 +1330,7 @@ + STATE <= START_DYN_CAL; + end case; + +- when DECREMENT => -- h39 ++ when DECREMENT => -- h29 + STATE <= START_DYN_CAL; -- Default case: Dec is not high or no longer in REFRSH + MCB_UILDQSINC <= '0'; -- Default case: no inc or dec + MCB_UIUDQSINC <= '0'; -- Default case: no inc or dec +@@ -1738,7 +1356,7 @@ + end case; + end if; + +- when DONE => -- h3A ++ when DONE => -- h2A + Pre_SYSRST <= '0'; -- SYSRST cleared + MCB_UICMDEN <= '0'; -- release UICMDEN + STATE <= DONE; diff --git a/designs/leon3-gr-xc6s/memc3_infrastructure_patch.txt b/designs/leon3-gr-xc6s/memc3_infrastructure_patch.txt new file mode 100644 index 00000000..9b5bab81 --- /dev/null +++ b/designs/leon3-gr-xc6s/memc3_infrastructure_patch.txt @@ -0,0 +1,93 @@ +--- ./mig39/mig_39//user_design/rtl/memc3_infrastructure.vhd 2013-01-15 15:30:14.000000000 +0100 ++++ ./p/a/t/c/h/mig39/mig_39//user_design/rtl/memc3_infrastructure.vhd 2013-01-15 15:27:28.724788178 +0100 +@@ -77,6 +77,7 @@ + C_CLKOUT1_DIVIDE : integer := 1; + C_CLKOUT2_DIVIDE : integer := 16; + C_CLKOUT3_DIVIDE : integer := 8; ++ C_CLKOUT5_DIVIDE : integer := 8; + C_CLKFBOUT_MULT : integer := 2; + C_DIVCLK_DIVIDE : integer := 1 + +@@ -95,7 +96,10 @@ + mcb_drp_clk : out std_logic; + pll_ce_0 : out std_logic; + pll_ce_90 : out std_logic; +- pll_lock : out std_logic ++ pll_lock : out std_logic; ++ pll_lock0 : out std_logic; ++ clk_125 : out std_logic; ++ clk_100 : out std_logic + + ); + end entity; +@@ -130,6 +134,8 @@ + signal locked : std_logic; + signal bufpll_mcb_locked : std_logic; + signal mcb_drp_clk_sig : std_logic; ++ signal clk_125_in : std_logic; ++ signal clk_100_in : std_logic; + + attribute max_fanout : string; + attribute syn_maxfan : integer; +@@ -142,6 +148,7 @@ + + sys_rst <= not(sys_rst_i) when (C_RST_ACT_LOW /= 0) else sys_rst_i; + clk0 <= clk0_bufg; ++ pll_lock0 <= locked; + pll_lock <= bufpll_mcb_locked; + mcb_drp_clk <= mcb_drp_clk_sig; + +@@ -165,7 +172,8 @@ + --*********************************************************************** + -- SINGLE_ENDED input clock input buffers + --*********************************************************************** +- u_ibufg_sys_clk : IBUFG ++-- u_ibufg_sys_clk : IBUFG ++ u_ibufg_sys_clk : BUFG + port map ( + I => sys_clk, + O => sys_clk_ibufg +@@ -184,10 +192,10 @@ + CLKIN2_PERIOD => CLK_PERIOD_NS, + CLKOUT0_DIVIDE => C_CLKOUT0_DIVIDE, + CLKOUT1_DIVIDE => C_CLKOUT1_DIVIDE, +- CLKOUT2_DIVIDE => C_CLKOUT2_DIVIDE, ++ CLKOUT2_DIVIDE => 10, + CLKOUT3_DIVIDE => C_CLKOUT3_DIVIDE, +- CLKOUT4_DIVIDE => 1, +- CLKOUT5_DIVIDE => 1, ++ CLKOUT4_DIVIDE => 4, ++ CLKOUT5_DIVIDE => 5, + CLKOUT0_PHASE => 0.000, + CLKOUT1_PHASE => 180.000, + CLKOUT2_PHASE => 0.000, +@@ -232,8 +240,8 @@ + CLKOUT1 => clk_2x_180, + CLKOUT2 => clk0_bufg_in, + CLKOUT3 => mcb_drp_clk_bufg_in, +- CLKOUT4 => open, +- CLKOUT5 => open, ++ CLKOUT4 => clk_125_in, ++ CLKOUT5 => clk_100_in, + DO => open, + DRDY => open, + LOCKED => locked +@@ -258,6 +266,18 @@ + I => mcb_drp_clk_bufg_in, + CE => locked + ); ++ ++ U_BUFG_CLK2 : BUFG ++ port map ( ++ O => clk_125, ++ I => clk_125_in ++ ); ++ ++ U_BUFG_CLK3 : BUFG ++ port map ( ++ O => clk_100, ++ I => clk_100_in ++ ); + + process (mcb_drp_clk_sig, sys_rst) + begin diff --git a/designs/leon3-gr-xc6s/mig.diff b/designs/leon3-gr-xc6s/mig.diff index 41f74818..fd9028b8 100644 --- a/designs/leon3-gr-xc6s/mig.diff +++ b/designs/leon3-gr-xc6s/mig.diff @@ -1,60 +1,5 @@ -diff -Naur mig37/mig_37/user_design/rtl/memc3_infrastructure.vhd /home/jiri/ibm/vhdl/grlib/designs/leon3-gr-xc6s/mig37/mig_37/user_design/rtl/memc3_infrastructure.vhd ---- mig37/mig_37/user_design/rtl/memc3_infrastructure.vhd 2012-04-22 22:38:23.000000000 +0200 -+++ /home/jiri/ibm/vhdl/grlib/designs/leon3-gr-xc6s/mig37/mig_37/user_design/rtl/memc3_infrastructure.vhd 2012-04-22 22:41:09.259790939 +0200 -@@ -77,6 +77,7 @@ - C_CLKOUT1_DIVIDE : integer := 1; - C_CLKOUT2_DIVIDE : integer := 16; - C_CLKOUT3_DIVIDE : integer := 8; -+ C_CLKOUT5_DIVIDE : integer := 8; - C_CLKFBOUT_MULT : integer := 2; - C_DIVCLK_DIVIDE : integer := 1 - -@@ -95,7 +96,9 @@ - mcb_drp_clk : out std_logic; - pll_ce_0 : out std_logic; - pll_ce_90 : out std_logic; -- pll_lock : out std_logic -+ pll_lock : out std_logic; -+ clk_125 : out std_logic; -+ clkout5 : out std_logic - - ); - end entity; -@@ -164,7 +167,8 @@ - --*********************************************************************** - -- SINGLE_ENDED input clock input buffers - --*********************************************************************** -- u_ibufg_sys_clk : IBUFG -+-- u_ibufg_sys_clk : IBUFG -+ u_ibufg_sys_clk : BUFG - port map ( - I => sys_clk, - O => sys_clk_ibufg -@@ -185,8 +189,8 @@ - CLKOUT1_DIVIDE => C_CLKOUT1_DIVIDE, - CLKOUT2_DIVIDE => C_CLKOUT2_DIVIDE, - CLKOUT3_DIVIDE => C_CLKOUT3_DIVIDE, -- CLKOUT4_DIVIDE => 1, -- CLKOUT5_DIVIDE => 1, -+ CLKOUT4_DIVIDE => 4, -+ CLKOUT5_DIVIDE => C_CLKOUT5_DIVIDE, - CLKOUT0_PHASE => 0.000, - CLKOUT1_PHASE => 180.000, - CLKOUT2_PHASE => 0.000, -@@ -231,8 +235,8 @@ - CLKOUT1 => clk_2x_180, - CLKOUT2 => clk0_bufg_in, - CLKOUT3 => mcb_drp_clk_bufg_in, -- CLKOUT4 => open, -- CLKOUT5 => open, -+ CLKOUT4 => clk_125, -+ CLKOUT5 => clkout5, - DO => open, - DRDY => open, - LOCKED => locked -diff -Naur mig37/mig_37/user_design/rtl/mig_37.vhd /home/jiri/ibm/vhdl/grlib/designs/leon3-gr-xc6s/mig37/mig_37/user_design/rtl/mig_37.vhd ---- mig37/mig_37/user_design/rtl/mig_37.vhd 2012-04-22 22:38:24.000000000 +0200 -+++ /home/jiri/ibm/vhdl/grlib/designs/leon3-gr-xc6s/mig37/mig_37/user_design/rtl/mig_37.vhd 2012-04-22 22:41:49.776513469 +0200 +--- ./mig37/mig_37/user_design/rtl/mig_37.vhd 2013-01-15 16:04:40.000000000 +0100 ++++ ./p/a/t/c/h/mig37/mig_37/user_design/rtl/mig_37.vhd 2013-01-15 16:09:19.236761589 +0100 @@ -95,8 +95,9 @@ -- External memory data width. C3_MEM_ADDR_WIDTH : integer := 13; @@ -71,7 +16,7 @@ diff -Naur mig37/mig_37/user_design/rtl/mig_37.vhd /home/jiri/ibm/vhdl/grlib/des c3_clk0 : out std_logic; c3_rst0 : out std_logic; + clk_125 : out std_logic; -+ clkout5 : out std_logic; ++ clk_100 : out std_logic; mcb3_dram_dqs : inout std_logic; mcb3_dram_dqs_n : inout std_logic; mcb3_dram_ck : out std_logic; @@ -94,7 +39,7 @@ diff -Naur mig37/mig_37/user_design/rtl/mig_37.vhd /home/jiri/ibm/vhdl/grlib/des - mcb_drp_clk : out std_logic - + clk_125 : out std_logic; -+ clkout5 : out std_logic ++ clk_100 : out std_logic ); end component; @@ -117,7 +62,15 @@ diff -Naur mig37/mig_37/user_design/rtl/mig_37.vhd /home/jiri/ibm/vhdl/grlib/des signal c3_sys_clk_p : std_logic; signal c3_sys_clk_n : std_logic; -@@ -468,6 +474,7 @@ +@@ -457,7 +463,6 @@ + + c3_sys_clk_p <= '0'; + c3_sys_clk_n <= '0'; +- + memc3_infrastructure_inst : memc3_infrastructure + + generic map +@@ -468,6 +473,7 @@ C_CLKOUT1_DIVIDE => C3_CLKOUT1_DIVIDE, C_CLKOUT2_DIVIDE => C3_CLKOUT2_DIVIDE, C_CLKOUT3_DIVIDE => C3_CLKOUT3_DIVIDE, @@ -125,7 +78,7 @@ diff -Naur mig37/mig_37/user_design/rtl/mig_37.vhd /home/jiri/ibm/vhdl/grlib/des C_CLKFBOUT_MULT => C3_CLKFBOUT_MULT, C_DIVCLK_DIVIDE => C3_DIVCLK_DIVIDE, C_INCLK_PERIOD => C3_INCLK_PERIOD -@@ -483,10 +490,12 @@ +@@ -483,10 +489,12 @@ async_rst => c3_async_rst, sysclk_2x => c3_sysclk_2x, sysclk_2x_180 => c3_sysclk_2x_180, @@ -135,7 +88,100 @@ diff -Naur mig37/mig_37/user_design/rtl/mig_37.vhd /home/jiri/ibm/vhdl/grlib/des pll_lock => c3_pll_lock, - mcb_drp_clk => c3_mcb_drp_clk + clk_125 => clk_125, -+ clkout5 => clkout5 ++ clk_100 => clk_100 ); +--- ./mig37/mig_37/user_design/rtl/memc3_infrastructure.vhd 2013-01-15 16:04:40.000000000 +0100 ++++ ./p/a/t/c/h/mig37/mig_37/user_design/rtl/memc3_infrastructure.vhd 2013-01-15 16:07:09.836762961 +0100 +@@ -77,6 +77,7 @@ + C_CLKOUT1_DIVIDE : integer := 1; + C_CLKOUT2_DIVIDE : integer := 16; + C_CLKOUT3_DIVIDE : integer := 8; ++ C_CLKOUT5_DIVIDE : integer := 8; + C_CLKFBOUT_MULT : integer := 2; + C_DIVCLK_DIVIDE : integer := 1 + +@@ -95,7 +96,10 @@ + mcb_drp_clk : out std_logic; + pll_ce_0 : out std_logic; + pll_ce_90 : out std_logic; +- pll_lock : out std_logic ++ pll_lock : out std_logic; ++ pll_lock0 : out std_logic; ++ clk_125 : out std_logic; ++ clk_100 : out std_logic + + ); + end entity; +@@ -129,6 +133,8 @@ + signal locked : std_logic; + signal bufpll_mcb_locked : std_logic; + signal mcb_drp_clk_sig : std_logic; ++ signal clk_125_in : std_logic; ++ signal clk_100_in : std_logic; + + attribute max_fanout : string; + attribute syn_maxfan : integer; +@@ -141,6 +147,7 @@ + + sys_rst <= not(sys_rst_n) when (C_RST_ACT_LOW /= 0) else sys_rst_n; + clk0 <= clk0_bufg; ++ pll_lock0 <= locked; + pll_lock <= bufpll_mcb_locked; + mcb_drp_clk <= mcb_drp_clk_sig; + +@@ -164,7 +171,8 @@ + --*********************************************************************** + -- SINGLE_ENDED input clock input buffers + --*********************************************************************** +- u_ibufg_sys_clk : IBUFG ++-- u_ibufg_sys_clk : IBUFG ++ u_ibufg_sys_clk : BUFG + port map ( + I => sys_clk, + O => sys_clk_ibufg +@@ -183,10 +191,10 @@ + CLKIN2_PERIOD => CLK_PERIOD_NS, + CLKOUT0_DIVIDE => C_CLKOUT0_DIVIDE, + CLKOUT1_DIVIDE => C_CLKOUT1_DIVIDE, +- CLKOUT2_DIVIDE => C_CLKOUT2_DIVIDE, ++ CLKOUT2_DIVIDE => 10, + CLKOUT3_DIVIDE => C_CLKOUT3_DIVIDE, +- CLKOUT4_DIVIDE => 1, +- CLKOUT5_DIVIDE => 1, ++ CLKOUT4_DIVIDE => 4, ++ CLKOUT5_DIVIDE => 5, + CLKOUT0_PHASE => 0.000, + CLKOUT1_PHASE => 180.000, + CLKOUT2_PHASE => 0.000, +@@ -231,8 +239,8 @@ + CLKOUT1 => clk_2x_180, + CLKOUT2 => clk0_bufg_in, + CLKOUT3 => mcb_drp_clk_bufg_in, +- CLKOUT4 => open, +- CLKOUT5 => open, ++ CLKOUT4 => clk_125_in, ++ CLKOUT5 => clk_100_in, + DO => open, + DRDY => open, + LOCKED => locked +@@ -251,6 +259,18 @@ + I => mcb_drp_clk_bufg_in + ); + ++ U_BUFG_CLK2 : BUFG ++ port map ( ++ O => clk_125, ++ I => clk_125_in ++ ); ++ ++ U_BUFG_CLK3 : BUFG ++ port map ( ++ O => clk_100, ++ I => clk_100_in ++ ); ++ + process (clk0_bufg, sys_rst) + begin + if(sys_rst = '1') then diff --git a/designs/leon3-gr-xc6s/mig39/coregen.cgc b/designs/leon3-gr-xc6s/mig39/coregen.cgc new file mode 100644 index 00000000..8e788169 --- /dev/null +++ b/designs/leon3-gr-xc6s/mig39/coregen.cgc @@ -0,0 +1,953 @@ + + + xilinx.com + CoreGen + coregen + 1.0 + + + mig_39 + MIG Virtex-6 and Spartan-6 + + + mig_39 + ./mig_39/user_design/mig.prj + + + + + coregen + ./ + ./tmp/ + ./tmp/_cg/ + + + xc6slx75 + spartan6 + fgg484 + -2 + + + BusFormatParenNotRipped + VHDL + true + Synplicity + false + false + false + Ngc + false + + + Behavioral + VHDL + false + + + 2012-10-13+03:35 + + + + + model_parameter_resolution_generator + + + ip_xco_generator + + ./mig_39.xco + xco + Wed Dec 19 14:14:01 GMT 2012 + 0x671A1DD1 + generationID_1879581046 + + + + implementation_source_generator + + ./mig_39/docs/ug388.pdf + ignore + pdf + Wed Dec 19 14:14:01 GMT 2012 + 0x90FCF0D1 + generationID_1879581046 + + + ./mig_39/docs/ug416.pdf + ignore + pdf + Wed Dec 19 14:14:01 GMT 2012 + 0x5A2D5D89 + generationID_1879581046 + + + ./mig_39/example_design/datasheet.txt + ignore + txt + Wed Dec 19 14:14:02 GMT 2012 + 0xAC7DB514 + generationID_1879581046 + + + ./mig_39/example_design/mig.prj + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x9262FF56 + generationID_1879581046 + + + ./mig_39/example_design/par/example_top.ucf + ignore + ucf + Wed Dec 19 14:14:02 GMT 2012 + 0x98717D17 + generationID_1879581046 + + + ./mig_39/example_design/par/icon_coregen.xco + ignore + xco + Wed Dec 19 14:14:02 GMT 2012 + 0xFAB6CB97 + generationID_1879581046 + + + ./mig_39/example_design/par/ila_coregen.xco + ignore + xco + Wed Dec 19 14:14:02 GMT 2012 + 0x425A86A3 + generationID_1879581046 + + + ./mig_39/example_design/par/ise_flow.sh + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x95B1A5E5 + generationID_1879581046 + + + ./mig_39/example_design/par/ise_run.txt + ignore + txt + Wed Dec 19 14:14:02 GMT 2012 + 0xEA962BB5 + generationID_1879581046 + + + ./mig_39/example_design/par/makeproj.sh + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0xCFE64DF9 + generationID_1879581046 + + + ./mig_39/example_design/par/mem_interface_top.ut + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0xCDD0105F + generationID_1879581046 + + + ./mig_39/example_design/par/readme.txt + ignore + txt + Wed Dec 19 14:14:02 GMT 2012 + 0xE0953675 + generationID_1879581046 + + + ./mig_39/example_design/par/rem_files.sh + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0xBC4318C8 + generationID_1879581046 + + + ./mig_39/example_design/par/vio_coregen.xco + ignore + xco + Wed Dec 19 14:14:02 GMT 2012 + 0xDAB085AD + generationID_1879581046 + + + ./mig_39/example_design/rtl/example_top.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xD92A26A8 + generationID_1879581046 + + + ./mig_39/example_design/rtl/iodrp_controller.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x5A2197DD + generationID_1879581046 + + + ./mig_39/example_design/rtl/iodrp_mcb_controller.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x69237401 + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_raw_wrapper.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xA3623325 + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_soft_calibration.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x9B8E0B5E + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_soft_calibration_top.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xC37A23BB + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_infrastructure.vhd + ignore + vhdl + Wed Dec 19 14:14:01 GMT 2012 + 0x702DFF2F + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_tb_top.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x3C33A218 + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_wrapper.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xF1684A57 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/afifo.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x26568D9A + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/cmd_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xC6EF0126 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/cmd_prbs_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x893B0F01 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/data_prbs_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x6E88FB8E + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/init_mem_pattern_ctr.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x26DEA717 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/mcb_flow_control.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xB9D71414 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/mcb_traffic_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x125A1D59 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/rd_data_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x50A90B14 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/read_data_path.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xDFA5DAF7 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/read_posted_fifo.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xBC61DAC4 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/sp6_data_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xA9170C59 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/tg_status.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x7B717096 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/v6_data_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x24F3E550 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/wr_data_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x91BCA941 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/write_data_path.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x391A16CE + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/ddr2_model_c3.v + ignore + verilog + Wed Dec 19 14:14:02 GMT 2012 + 0xAF612EFE + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/ddr2_model_parameters_c3.vh + ignore + verilog + Wed Dec 19 14:14:02 GMT 2012 + 0x6902BBB9 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/isim.sh + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x1EDD2EEF + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/isim.tcl + ignore + tcl + Wed Dec 19 14:14:02 GMT 2012 + 0x02F76428 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/mig_39.prj + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0xF7B8FBCD + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/readme.txt + ignore + txt + Wed Dec 19 14:14:02 GMT 2012 + 0xFA4BA7C6 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/sim.do + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x4AEFC8F2 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/sim_tb_top.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x3FC41CC5 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/timing_sim.sh + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0xD1170B9A + generationID_1879581046 + + + ./mig_39/example_design/synth/example_top.lso + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0xEEDE3797 + generationID_1879581046 + + + ./mig_39/example_design/synth/example_top.prj + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x45A82CBA + generationID_1879581046 + + + ./mig_39/example_design/synth/mem_interface_top_synp.sdc + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x44043337 + generationID_1879581046 + + + ./mig_39/example_design/synth/script_synp.tcl + ignore + tcl + Wed Dec 19 14:14:02 GMT 2012 + 0x29C8E312 + generationID_1879581046 + + + ./mig_39/user_design/datasheet.txt + ignore + txt + Wed Dec 19 14:14:02 GMT 2012 + 0x11A670FE + generationID_1879581046 + + + ./mig_39/user_design/mig.prj + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x9262FF56 + generationID_1879581046 + + + ./mig_39/user_design/par/icon_coregen.xco + ignore + xco + Wed Dec 19 14:14:02 GMT 2012 + 0xFAB6CB97 + generationID_1879581046 + + + ./mig_39/user_design/par/ila_coregen.xco + ignore + xco + Wed Dec 19 14:14:02 GMT 2012 + 0x425A86A3 + generationID_1879581046 + + + ./mig_39/user_design/par/ise_flow.sh + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x4FF5A5F3 + generationID_1879581046 + + + ./mig_39/user_design/par/ise_run.txt + ignore + txt + Wed Dec 19 14:14:02 GMT 2012 + 0xDD9A2939 + generationID_1879581046 + + + ./mig_39/user_design/par/makeproj.sh + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0xCFE64DF9 + generationID_1879581046 + + + ./mig_39/user_design/par/mem_interface_top.ut + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0xCDD0105F + generationID_1879581046 + + + ./mig_39/user_design/par/mig_39.ucf + ucf + Wed Dec 19 14:14:02 GMT 2012 + 0xC685B099 + generationID_1879581046 + + + ./mig_39/user_design/par/readme.txt + ignore + txt + Wed Dec 19 14:14:02 GMT 2012 + 0xD26FC611 + generationID_1879581046 + + + ./mig_39/user_design/par/rem_files.sh + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x107D2E3F + generationID_1879581046 + + + ./mig_39/user_design/par/vio_coregen.xco + ignore + xco + Wed Dec 19 14:14:02 GMT 2012 + 0xDAB085AD + generationID_1879581046 + + + ./mig_39/user_design/rtl/iodrp_controller.vhd + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x5A2197DD + generationID_1879581046 + + + ./mig_39/user_design/rtl/iodrp_mcb_controller.vhd + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x69237401 + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_raw_wrapper.vhd + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xA3623325 + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_soft_calibration.vhd + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x9B8E0B5E + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_soft_calibration_top.vhd + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xC37A23BB + generationID_1879581046 + + + ./mig_39/user_design/rtl/memc3_infrastructure.vhd + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x702DFF2F + generationID_1879581046 + + + ./mig_39/user_design/rtl/memc3_wrapper.vhd + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xF1684A57 + generationID_1879581046 + + + ./mig_39/user_design/rtl/mig_39.vhd + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x53E3B518 + generationID_1879581046 + + + ./mig_39/user_design/sim/afifo.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x26568D9A + generationID_1879581046 + + + ./mig_39/user_design/sim/cmd_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xC6EF0126 + generationID_1879581046 + + + ./mig_39/user_design/sim/cmd_prbs_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x893B0F01 + generationID_1879581046 + + + ./mig_39/user_design/sim/data_prbs_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x6E88FB8E + generationID_1879581046 + + + ./mig_39/user_design/sim/ddr2_model_c3.v + ignore + verilog + Wed Dec 19 14:14:02 GMT 2012 + 0xAF612EFE + generationID_1879581046 + + + ./mig_39/user_design/sim/ddr2_model_parameters_c3.vh + ignore + verilog + Wed Dec 19 14:14:02 GMT 2012 + 0x6902BBB9 + generationID_1879581046 + + + ./mig_39/user_design/sim/init_mem_pattern_ctr.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x26DEA717 + generationID_1879581046 + + + ./mig_39/user_design/sim/isim.sh + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x1EDD2EEF + generationID_1879581046 + + + ./mig_39/user_design/sim/isim.tcl + ignore + tcl + Wed Dec 19 14:14:02 GMT 2012 + 0x02F76428 + generationID_1879581046 + + + ./mig_39/user_design/sim/mcb_flow_control.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xB9D71414 + generationID_1879581046 + + + ./mig_39/user_design/sim/mcb_traffic_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x125A1D59 + generationID_1879581046 + + + ./mig_39/user_design/sim/memc3_tb_top.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x3C33A218 + generationID_1879581046 + + + ./mig_39/user_design/sim/mig_39.prj + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0xFA831D8D + generationID_1879581046 + + + ./mig_39/user_design/sim/rd_data_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x50A90B14 + generationID_1879581046 + + + ./mig_39/user_design/sim/read_data_path.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xDFA5DAF7 + generationID_1879581046 + + + ./mig_39/user_design/sim/read_posted_fifo.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xBC61DAC4 + generationID_1879581046 + + + ./mig_39/user_design/sim/readme.txt + ignore + txt + Wed Dec 19 14:14:02 GMT 2012 + 0xFA4BA7C6 + generationID_1879581046 + + + ./mig_39/user_design/sim/sim.do + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x0F0EC58D + generationID_1879581046 + + + ./mig_39/user_design/sim/sim_tb_top.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xB75A0D81 + generationID_1879581046 + + + ./mig_39/user_design/sim/sp6_data_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0xA9170C59 + generationID_1879581046 + + + ./mig_39/user_design/sim/tg_status.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x7B717096 + generationID_1879581046 + + + ./mig_39/user_design/sim/v6_data_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x24F3E550 + generationID_1879581046 + + + ./mig_39/user_design/sim/wr_data_gen.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x91BCA941 + generationID_1879581046 + + + ./mig_39/user_design/sim/write_data_path.vhd + ignore + vhdl + Wed Dec 19 14:14:02 GMT 2012 + 0x391A16CE + generationID_1879581046 + + + ./mig_39/user_design/synth/mem_interface_top_synp.sdc + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x76EDF97D + generationID_1879581046 + + + ./mig_39/user_design/synth/mig_39.lso + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0xEEDE3797 + generationID_1879581046 + + + ./mig_39/user_design/synth/mig_39.prj + ignore + unknown + Wed Dec 19 14:14:02 GMT 2012 + 0x1521D75B + generationID_1879581046 + + + ./mig_39/user_design/synth/script_synp.tcl + ignore + tcl + Wed Dec 19 14:14:02 GMT 2012 + 0x35FBFD6E + generationID_1879581046 + + + ./mig_39.vho + vho + Wed Dec 19 14:14:02 GMT 2012 + 0x2AA2ABF9 + generationID_1879581046 + + + ./mig_39_readme.txt + ignore + txt + Wed Dec 19 14:14:02 GMT 2012 + 0xF3C340EC + generationID_1879581046 + + + ./mig_39_xmdf.tcl + ignore + tcl + Wed Dec 19 14:14:02 GMT 2012 + 0x87D169C0 + generationID_1879581046 + + + + instantiation_template_generator + + + asy_generator + + + xmdf_generator + + + ise_generator + + ./mig_39.gise + ignore + gise + Wed Dec 19 14:14:10 GMT 2012 + 0x8CB3D14A + generationID_1879581046 + + + ./mig_39.xise + ignore + xise + Wed Dec 19 14:14:10 GMT 2012 + 0x08D69702 + generationID_1879581046 + + + + deliver_readme_generator + + + flist_generator + + ./mig_39_flist.txt + ignore + txtFlist + txt + Wed Dec 19 14:14:10 GMT 2012 + 0xBFA4D285 + generationID_1879581046 + + + + + + + + + + coregen + ./ + ./tmp/ + ./tmp/_cg + + + xc6slx75 + spartan6 + fgg484 + -2 + + + BusFormatParenNotRipped + VHDL + true + Synplicity + false + false + false + Ngc + false + + + Behavioral + VHDL + false + + + + + diff --git a/designs/leon3-xilinx-ml510/coregen.cgp b/designs/leon3-gr-xc6s/mig39/coregen.cgp similarity index 76% rename from designs/leon3-xilinx-ml510/coregen.cgp rename to designs/leon3-gr-xc6s/mig39/coregen.cgp index bd7e54d7..e9304336 100644 --- a/designs/leon3-xilinx-ml510/coregen.cgp +++ b/designs/leon3-gr-xc6s/mig39/coregen.cgp @@ -1,17 +1,17 @@ -# Date: Mon Jun 27 10:26:50 2011 +# Date: Mon May 30 11:48:06 2011 SET addpads = false SET asysymbol = true SET busformat = BusFormatParenNotRipped SET createndf = false SET designentry = VHDL -SET device = xc5vfx130t -SET devicefamily = virtex5 +SET device = xc6slx75 +SET devicefamily = spartan6 SET flowvendor = Synplicity SET formalverification = false SET foundationsym = false SET implementationfiletype = Ngc -SET package = ff1738 +SET package = fgg484 SET removerpms = false SET simulationfiles = Behavioral SET speedgrade = -2 @@ -19,4 +19,4 @@ SET verilogsim = false SET vhdlsim = true SET workingdirectory = ./tmp/ -# CRC: 3a72440f +# CRC: 9a1e529b diff --git a/designs/leon3-gr-xc6s/mig39/mig.prj b/designs/leon3-gr-xc6s/mig39/mig.prj new file mode 100644 index 00000000..ca923089 --- /dev/null +++ b/designs/leon3-gr-xc6s/mig39/mig.prj @@ -0,0 +1,62 @@ + + + mig_39 + xc6slx75-fgg484/-2 + 3.92 + + DDR2_SDRAM/Components/MT47H64M16XX-25 + 4000 + 0 + 1 + FALSE + + 13 + 10 + 3 + + + + 4(010) + 4 + Enable-Normal + Fullstrength + 50ohms + 0 + OCD Exit + Enable + Disable + Enable + Disable + NATIVE,NATIVE,NATIVE,NATIVE,NATIVE,NATIVE + Class II + Class II + CALIB_TERM + 25 Ohms + + + + Single-Ended + 1 + Disable + Single-Ended + Two 32-bit bi-directional and four 32-bit unidirectional ports + K7 + D5 + Port0,Port2 + Bi-directional,none,Read,none,none,none + ROW_BANK_COLUMN + Round Robin + 02 + 20 + 02 + 20 + 02 + 20 + 02 + 20 + 02 + 20 + 02 + 20 + + diff --git a/designs/leon3-xilinx-ml510/mig.xco b/designs/leon3-gr-xc6s/mig39/mig.xco similarity index 79% rename from designs/leon3-xilinx-ml510/mig.xco rename to designs/leon3-gr-xc6s/mig39/mig.xco index eff02b2b..e90f95a1 100644 --- a/designs/leon3-xilinx-ml510/mig.xco +++ b/designs/leon3-gr-xc6s/mig39/mig.xco @@ -1,7 +1,7 @@ ############################################################## # # Xilinx Core Generator version 13.1 -# Date: Mon Jun 27 10:31:46 2011 +# Date: Mon May 30 12:17:32 2011 # ############################################################## # @@ -18,13 +18,13 @@ SET asysymbol = true SET busformat = BusFormatParenNotRipped SET createndf = false SET designentry = VHDL -SET device = xc5vfx130t -SET devicefamily = virtex5 +SET device = xc6slx75 +SET devicefamily = spartan6 SET flowvendor = Synplicity SET formalverification = false SET foundationsym = false SET implementationfiletype = Ngc -SET package = ff1738 +SET package = fgg484 SET removerpms = false SET simulationfiles = Behavioral SET speedgrade = -2 @@ -32,11 +32,11 @@ SET verilogsim = false SET vhdlsim = true # END Project Options # BEGIN Select -SELECT MIG family Xilinx,_Inc. 3.61 +SELECT MIG_Virtex-6_and_Spartan-6 family Xilinx,_Inc. 3.92 # END Select # BEGIN Parameters -CSET component_name=mig_36_1 -CSET xml_input_file=mig.prj +CSET component_name=mig_39 +CSET xml_input_file=./mig.prj # END Parameters GENERATE -# CRC: acfe6864 +# CRC: f45a862b diff --git a/designs/leon3-gr-xc6s/mig_patch.txt b/designs/leon3-gr-xc6s/mig_patch.txt new file mode 100644 index 00000000..f6792c3f --- /dev/null +++ b/designs/leon3-gr-xc6s/mig_patch.txt @@ -0,0 +1,123 @@ +--- ./mig39/mig_39//user_design/rtl/mig_39.vhd 2013-01-15 15:30:15.000000000 +0100 ++++ ./p/a/t/c/h/mig39/mig_39//user_design/rtl/mig_39.vhd 2013-01-15 15:27:15.860788313 +0100 +@@ -65,7 +65,7 @@ + --***************************************************************************** + library ieee; + use ieee.std_logic_1164.all; +-entity mig_39 is ++entity mig_37 is + generic + ( + C3_P0_MASK_SIZE : integer := 4; +@@ -95,8 +95,9 @@ + -- External memory data width. + C3_MEM_ADDR_WIDTH : integer := 13; + -- External memory address width. +- C3_MEM_BANKADDR_WIDTH : integer := 3 ++ C3_MEM_BANKADDR_WIDTH : integer := 3; + -- External memory bank address width. ++ C3_CLKOUT5_DIVIDE : integer := 10 + ); + + port +@@ -117,10 +118,14 @@ + mcb3_zio : inout std_logic; + mcb3_dram_udm : out std_logic; + c3_sys_clk : in std_logic; +- c3_sys_rst_i : in std_logic; ++ c3_sys_rst_n : in std_logic; + c3_calib_done : out std_logic; + c3_clk0 : out std_logic; + c3_rst0 : out std_logic; ++ clk_125 : out std_logic; ++ clk_100 : out std_logic; ++ pll_lock : out std_logic; ++ pll_lock0 : out std_logic; + mcb3_dram_dqs : inout std_logic; + mcb3_dram_dqs_n : inout std_logic; + mcb3_dram_ck : out std_logic; +@@ -165,9 +170,9 @@ + c3_p2_rd_overflow : out std_logic; + c3_p2_rd_error : out std_logic + ); +-end mig_39; ++end mig_37; + +-architecture arc of mig_39 is ++architecture arc of mig_37 is + + + +@@ -179,6 +184,7 @@ + C_CLKOUT1_DIVIDE : integer; + C_CLKOUT2_DIVIDE : integer; + C_CLKOUT3_DIVIDE : integer; ++ C_CLKOUT5_DIVIDE : integer; + C_CLKFBOUT_MULT : integer; + C_DIVCLK_DIVIDE : integer; + C_INCLK_PERIOD : integer +@@ -194,11 +200,13 @@ + async_rst : out std_logic; + sysclk_2x : out std_logic; + sysclk_2x_180 : out std_logic; ++ mcb_drp_clk : out std_logic; + pll_ce_0 : out std_logic; + pll_ce_90 : out std_logic; + pll_lock : out std_logic; +- mcb_drp_clk : out std_logic +- ++ pll_lock0 : out std_logic; ++ clk_125 : out std_logic; ++ clk_100 : out std_logic + ); + end component; + +@@ -362,7 +370,8 @@ + constant C3_CLKOUT1_DIVIDE : integer := 1; + constant C3_CLKOUT2_DIVIDE : integer := 16; + constant C3_CLKOUT3_DIVIDE : integer := 8; +- constant C3_CLKFBOUT_MULT : integer := 2; ++-- constant C3_CLKFBOUT_MULT : integer := 2; ++ constant C3_CLKFBOUT_MULT : integer := 10; + constant C3_DIVCLK_DIVIDE : integer := 1; + constant C3_INCLK_PERIOD : integer := ((C3_MEMCLK_PERIOD * C3_CLKFBOUT_MULT) / (C3_DIVCLK_DIVIDE * C3_CLKOUT0_DIVIDE * 2)); + constant C3_ARB_NUM_TIME_SLOTS : integer := 12; +@@ -460,7 +469,7 @@ + c3_sys_clk_p <= '0'; + c3_sys_clk_n <= '0'; + c3_selfrefresh_enter <= '0'; +-c3_selfrefresh_enter <= '0'; ++pll_lock <= c3_pll_lock; + memc3_infrastructure_inst : memc3_infrastructure + + generic map +@@ -471,6 +480,7 @@ + C_CLKOUT1_DIVIDE => C3_CLKOUT1_DIVIDE, + C_CLKOUT2_DIVIDE => C3_CLKOUT2_DIVIDE, + C_CLKOUT3_DIVIDE => C3_CLKOUT3_DIVIDE, ++ C_CLKOUT5_DIVIDE => C3_CLKOUT5_DIVIDE, + C_CLKFBOUT_MULT => C3_CLKFBOUT_MULT, + C_DIVCLK_DIVIDE => C3_DIVCLK_DIVIDE, + C_INCLK_PERIOD => C3_INCLK_PERIOD +@@ -480,16 +490,19 @@ + sys_clk_p => c3_sys_clk_p, + sys_clk_n => c3_sys_clk_n, + sys_clk => c3_sys_clk, +- sys_rst_i => c3_sys_rst_i, ++ sys_rst_i => c3_sys_rst_n, + clk0 => c3_clk0, + rst0 => c3_rst0, + async_rst => c3_async_rst, + sysclk_2x => c3_sysclk_2x, + sysclk_2x_180 => c3_sysclk_2x_180, ++ mcb_drp_clk => c3_mcb_drp_clk, + pll_ce_0 => c3_pll_ce_0, + pll_ce_90 => c3_pll_ce_90, + pll_lock => c3_pll_lock, +- mcb_drp_clk => c3_mcb_drp_clk ++ pll_lock0 => pll_lock0, ++ clk_125 => clk_125, ++ clk_100 => clk_100 + ); + + diff --git a/designs/leon3-gr-xc6s/res.txt b/designs/leon3-gr-xc6s/res.txt deleted file mode 100644 index 4498c266..00000000 --- a/designs/leon3-gr-xc6s/res.txt +++ /dev/null @@ -1,13 +0,0 @@ - -SPARTAN6 50 MHz, MIG DDR2, 2x8 + 2x4 cache, GRFPU - - LEON3 LEON3FTV2 -Dhrystone 78.4 78.4 -Whetstone DP 27.7 27.7 -gzip 43.98 s 41.38 s -bzip2 248.22 s 200.10 s -176.gcc 208.62 s 180.48 s -coremark 100.12 i/s 100.12 i/s -aocs_v8 12388.7 i/s 12388.7 i/s -basicmath_large 13245.0 i/s 13245.0 i/s -linpack_unroll_dp_v8 3265 KFLOPS 3563 KFLOPS diff --git a/designs/leon3-gr-xc6s/spacewire.ucf b/designs/leon3-gr-xc6s/spacewire.ucf index 6a384cc2..09e9c82a 100644 --- a/designs/leon3-gr-xc6s/spacewire.ucf +++ b/designs/leon3-gr-xc6s/spacewire.ucf @@ -1,10 +1,13 @@ ################################################################## -# Enable these is you have enabled any Spacewire ports +# Only enable these is you have enabled any Spacewire ports and +# Space Wire Clock is not in phase with the system clock. +# Please note that this isn't the case when using the leon3-gr-xc6s +# ref design -NET spw100 period = 10.000 ; -NET "spw100" TNM_NET = "spw100"; -TIMESPEC "TS_clkm_spw100" = FROM "clkm" TO "spw100" 8 ns DATAPATHONLY; -TIMESPEC "TS_spw100_clkm" = FROM "spw100" TO "clkm" 8 ns DATAPATHONLY; +#NET spw100 period = 10.000 ; +#NET "spw100" TNM_NET = "spw100"; +#TIMESPEC "TS_clkm_spw100" = FROM "clkm" TO "spw100" 8 ns DATAPATHONLY; +#TIMESPEC "TS_spw100_clkm" = FROM "spw100" TO "clkm" 8 ns DATAPATHONLY; ################################################################## diff --git a/designs/leon3-gr-xc6s/svga2ch7301c.vhd b/designs/leon3-gr-xc6s/svga2ch7301c.vhd index 8f95178b..4f9a1eac 100644 --- a/designs/leon3-gr-xc6s/svga2ch7301c.vhd +++ b/designs/leon3-gr-xc6s/svga2ch7301c.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-gr-xc6s/systest.c b/designs/leon3-gr-xc6s/systest.c index d5cc837a..3b94b290 100644 --- a/designs/leon3-gr-xc6s/systest.c +++ b/designs/leon3-gr-xc6s/systest.c @@ -2,17 +2,26 @@ main() { - report_start(); + report_start(); -// svgactrl_test(0x80000600, 1, 0, 0x40200000, -1, 0, 0); - base_test(); + base_test(); +// svgactrl_test(0x80000600, 1, 0, 0x40200000, -1, 0, 0); +// greth_test(0x80000e00); + /* - greth_test(0x80000e00); - spw_test(0x80100A00); - spw_test(0x80100B00); - spw_test(0x80100C00); - svgactrl_test(0x80000600, 1, 0, 0x40200000, -1, 0, 0); + spw_test(0x80100A00); + spw_test(0x80100B00); + spw_test(0x80100C00); */ - report_end(); + +// grusbhc_test(0x80000d00, 0xfffa0000, 0, 0); + /* Delay end of testing if GRUSB_DCL (with real timing) is to be tested. + The core needs about 4 ms of simulation time to get into a running + state. After that the amount of simulation time needed depends on how + much data that is transfered. */ +/* for (i = 0; i < 140000; i++) */ +/* ; */ + + report_end(); } diff --git a/designs/leon3-gr-xc6s/testbench.vhd b/designs/leon3-gr-xc6s/testbench.vhd index d5e56f02..f31d3ad1 100644 --- a/designs/leon3-gr-xc6s/testbench.vhd +++ b/designs/leon3-gr-xc6s/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -31,6 +31,8 @@ use techmap.gencomp.all; use work.debug.all; library hynix; use hynix.components.all; +library grlib; +use grlib.stdlib.all; use work.config.all; -- configuration @@ -177,7 +179,9 @@ begin ps2clk <= "HH"; ps2data <= "HH"; pio(4) <= pio(5); pio(1) <= pio(2); pio <= (others => 'H'); wdogn <= 'H'; - usb_clkout <= not usb_clkout after 8.33 ns; -- ~60MHz + nousbtr: if (CFG_GRUSBHC = 0) generate + usb_clkout <= not usb_clkout after 8.33 ns; -- ~60MHz + end generate nousbtr; switch(7) <= '1'; switch(8) <= '0'; emdio <= 'H'; @@ -190,8 +194,8 @@ begin disas, dbguart, pclow ) port map (rst, clk, clk2, clk125, wdogn, address(24 downto 0), data, oen, writen, romsn, - ddr_clk, ddr_clkb, ddr_cke, ddr_odt, ddr_we, ddr_ras, ddr_cas, ddr_dm, - ddr_dqs, ddr_ad, ddr_ba, ddr_dq, ddr_rzq, ddr_zio, + ddr_clk, ddr_clkb, ddr_cke, ddr_odt, ddr_we, ddr_ras, ddr_csb ,ddr_cas, ddr_dm, + ddr_dqs, ddr_dqsn, ddr_ad, ddr_ba, ddr_dq, ddr_rzq, ddr_zio, txd1, rxd1, ctsn1, rtsn1, txd2, rxd2, ctsn2, rtsn2, pio, genio, switch, led, erx_clk, emdio, erxd(3 downto 0), erx_dv, emdint, etx_clk, etxd(3 downto 0), etx_en, emdc, @@ -214,8 +218,7 @@ begin ddr2mem0 : for i in 0 to 0 generate u1 : HY5PS121621F generic map (TimingCheckFlag => false, PUSCheckFlag => false, - index => i, bbits => 16, fname => sdramfile, - fdelay => 150) + index => i, bbits => 16, fname => sdramfile, fdelay => 340) port map (DQ => ddr_dq(i*16+15 downto i*16), LDQS => ddr_dqs(i*2), LDQSB => ddr_dqsn(i*2), UDQS => ddr_dqs(i*2+1), UDQSB => ddr_dqsn(i*2+1), @@ -241,14 +244,10 @@ begin erx_er, erx_col, erx_crs, etxd, etx_en, etx_er, emdc, etx_clk); end generate; - iuerr : process - begin - wait for 5000 ns; - if to_x01(errorn) = '1' then wait on errorn; end if; - assert (to_x01(errorn) = '1') - report "*** IU in error mode, simulation halted ***" - severity failure ; - end process; + usbtr: if (CFG_GRUSBHC = 1) generate + u0: ulpi + port map (usb_clkout, usb_d, usb_nxt, usb_stp, usb_dir, usb_resetn); + end generate usbtr; data <= buskeep(data) after 5 ns; @@ -260,6 +259,7 @@ begin begin dsutx <= '1'; dsurst <= '0'; + wait for 201 us; wait for 2500 ns; dsurst <= '1'; wait; diff --git a/designs/leon3-gr-xc6s/tkconfig.h b/designs/leon3-gr-xc6s/tkconfig.h index 0475ab74..68049f59 100644 --- a/designs/leon3-gr-xc6s/tkconfig.h +++ b/designs/leon3-gr-xc6s/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -694,20 +716,6 @@ #define CONFIG_DSU_JTAG 0 #endif -#ifndef CONFIG_GRUSB_DCL -#define CONFIG_GRUSB_DCL 0 -#endif - -#if defined CONFIG_GRUSB_DCL_UTMI16 -#define CONFIG_GRUSB_DCL_UIFACE 0 -#define CONFIG_GRUSB_DCL_DW 16 -#elif defined CONFIG_GRUSB_DCL_UTMI8 -#define CONFIG_GRUSB_DCL_UIFACE 0 -#define CONFIG_GRUSB_DCL_DW 8 -#else -#define CONFIG_GRUSB_DCL_UIFACE 1 -#define CONFIG_GRUSB_DCL_DW 8 -#endif #ifndef CONFIG_DSU_ETH #define CONFIG_DSU_ETH 0 #endif @@ -888,6 +896,10 @@ #define CONFIG_DDR2SP_FTWIDTH 0 #endif +#ifndef CONFIG_MIG_DDR3 +#define CONFIG_MIG_DDR3 0 +#endif + #ifndef CONFIG_MIG_DDR2 #define CONFIG_MIG_DDR2 0 #endif @@ -986,25 +998,6 @@ #define CFG_GRETH_FIFO 8 #endif -#ifndef CONFIG_ATA_ENABLE -#define CONFIG_ATA_ENABLE 0 -#endif - -#ifndef CONFIG_ATAIO -#define CONFIG_ATAIO 0 -#endif - -#ifndef CONFIG_ATAIRQ -#define CONFIG_ATAIRQ 0 -#endif - -#ifndef CONFIG_ATA_MWDMA -#define CONFIG_ATA_MWDMA 0 -#endif - -#ifndef CONFIG_ATA_FIFO -#define CONFIG_ATA_FIFO 8 -#endif #ifndef CONFIG_CAN_ENABLE #define CONFIG_CAN_ENABLE 0 #endif @@ -1033,129 +1026,6 @@ #define CONFIG_CAN_FT 0 #endif -#ifndef CONFIG_GRUSBDC_ENABLE -#define CONFIG_GRUSBDC_ENABLE 0 -#endif - -#ifndef CONFIG_GRUSBDC_AIFACE -#define CONFIG_GRUSBDC_AIFACE 0 -#endif - -#if defined CONFIG_GRUSBDC_UTMI16 -#define CONFIG_GRUSBDC_UIFACE 0 -#define CONFIG_GRUSBDC_DW 16 -#elif defined CONFIG_GRUSBDC_UTMI8 -#define CONFIG_GRUSBDC_UIFACE 0 -#define CONFIG_GRUSBDC_DW 8 -#else -#define CONFIG_GRUSBDC_UIFACE 1 -#define CONFIG_GRUSBDC_DW 8 -#endif - -#ifndef CONFIG_GRUSBDC_NEPI -#define CONFIG_GRUSBDC_NEPI 1 -#endif - -#ifndef CONFIG_GRUSBDC_NEPO -#define CONFIG_GRUSBDC_NEPO 1 -#endif - -#ifndef CONFIG_GRUSBDC_I0 -#define CONFIG_GRUSBDC_I0 1024 -#endif -#ifndef CONFIG_GRUSBDC_I1 -#define CONFIG_GRUSBDC_I1 1024 -#endif -#ifndef CONFIG_GRUSBDC_I2 -#define CONFIG_GRUSBDC_I2 1024 -#endif -#ifndef CONFIG_GRUSBDC_I3 -#define CONFIG_GRUSBDC_I3 1024 -#endif -#ifndef CONFIG_GRUSBDC_I4 -#define CONFIG_GRUSBDC_I4 1024 -#endif -#ifndef CONFIG_GRUSBDC_I5 -#define CONFIG_GRUSBDC_I5 1024 -#endif -#ifndef CONFIG_GRUSBDC_I6 -#define CONFIG_GRUSBDC_I6 1024 -#endif -#ifndef CONFIG_GRUSBDC_I7 -#define CONFIG_GRUSBDC_I7 1024 -#endif -#ifndef CONFIG_GRUSBDC_I8 -#define CONFIG_GRUSBDC_I8 1024 -#endif -#ifndef CONFIG_GRUSBDC_I9 -#define CONFIG_GRUSBDC_I9 1024 -#endif -#ifndef CONFIG_GRUSBDC_I10 -#define CONFIG_GRUSBDC_I10 1024 -#endif -#ifndef CONFIG_GRUSBDC_I11 -#define CONFIG_GRUSBDC_I11 1024 -#endif -#ifndef CONFIG_GRUSBDC_I12 -#define CONFIG_GRUSBDC_I12 1024 -#endif -#ifndef CONFIG_GRUSBDC_I13 -#define CONFIG_GRUSBDC_I13 1024 -#endif -#ifndef CONFIG_GRUSBDC_I14 -#define CONFIG_GRUSBDC_I14 1024 -#endif -#ifndef CONFIG_GRUSBDC_I15 -#define CONFIG_GRUSBDC_I15 1024 -#endif -#ifndef CONFIG_GRUSBDC_O0 -#define CONFIG_GRUSBDC_O0 1024 -#endif -#ifndef CONFIG_GRUSBDC_O1 -#define CONFIG_GRUSBDC_O1 1024 -#endif -#ifndef CONFIG_GRUSBDC_O2 -#define CONFIG_GRUSBDC_O2 1024 -#endif -#ifndef CONFIG_GRUSBDC_O3 -#define CONFIG_GRUSBDC_O3 1024 -#endif -#ifndef CONFIG_GRUSBDC_O4 -#define CONFIG_GRUSBDC_O4 1024 -#endif -#ifndef CONFIG_GRUSBDC_O5 -#define CONFIG_GRUSBDC_O5 1024 -#endif -#ifndef CONFIG_GRUSBDC_O6 -#define CONFIG_GRUSBDC_O6 1024 -#endif -#ifndef CONFIG_GRUSBDC_O7 -#define CONFIG_GRUSBDC_O7 1024 -#endif -#ifndef CONFIG_GRUSBDC_O8 -#define CONFIG_GRUSBDC_O8 1024 -#endif -#ifndef CONFIG_GRUSBDC_O9 -#define CONFIG_GRUSBDC_O9 1024 -#endif -#ifndef CONFIG_GRUSBDC_O10 -#define CONFIG_GRUSBDC_O10 1024 -#endif -#ifndef CONFIG_GRUSBDC_O11 -#define CONFIG_GRUSBDC_O11 1024 -#endif -#ifndef CONFIG_GRUSBDC_O12 -#define CONFIG_GRUSBDC_O12 1024 -#endif -#ifndef CONFIG_GRUSBDC_O13 -#define CONFIG_GRUSBDC_O13 1024 -#endif -#ifndef CONFIG_GRUSBDC_O14 -#define CONFIG_GRUSBDC_O14 1024 -#endif -#ifndef CONFIG_GRUSBDC_O15 -#define CONFIG_GRUSBDC_O15 1024 -#endif #ifndef CONFIG_GRUSBHC_ENABLE #define CONFIG_GRUSBHC_ENABLE 0 #endif @@ -1567,6 +1437,10 @@ #ifndef CONFIG_SPIMCTRL_PWRUPCNT #define CONFIG_SPIMCTRL_PWRUPCNT 0 #endif + +#ifndef CONFIG_SPIMCTRL_OFFSET +#define CONFIG_SPIMCTRL_OFFSET 0 +#endif #ifndef CONFIG_SPICTRL_ENABLE #define CONFIG_SPICTRL_ENABLE 0 #endif diff --git a/designs/leon3-gr-xc6s/usb.ucf b/designs/leon3-gr-xc6s/usb.ucf index 1bbc7b6c..18f8ac75 100644 --- a/designs/leon3-gr-xc6s/usb.ucf +++ b/designs/leon3-gr-xc6s/usb.ucf @@ -1,4 +1,30 @@ -NET usb_clk period = 16.667; -OFFSET = out : 10.000 : AFTER usb_clk ; -OFFSET = in : 8.000 : BEFORE usb_clk ; +# Set the ULPI_CLK constraints +#NET “usb_clk†TNM_NET = “usb_clkâ€; +#TIMESPEC “TS_usb_clk†= PERIOD “usb_clk†16.667 ns HIGH 50%; +NET "usb_clk" PERIOD = 16.667 ns HIGH 50 %; + +#offset in constraints are calculated as follows. +#clock frequency is 16.667ns +#ULPI PHY output delay for output clock mode for ISP1504A is 3.8ns +#onboard trace delay would be 1ns +#input offset = (clock period - PHY outputdelay - trance delay) +#with 1ns hold requirement for the PHY, considering 200ps clock jitter +#OFFSET IN valid period would be 800ps. +# Set the OFFSET IN delay as 12.167 ns with respect to ULPI CLK +OFFSET = IN 12.167 ns VALID 12.967 ns BEFORE usb_clk RISING; + +# ULPI PHY setup time for output clock mode is 3ns in nom case +# leaving 1ns for onboard trace delay. +# OFFSET OUT = clock period - (PHY setup time + trace delay) +# Set the OFFSET OUT delay as 12.667 ns with respect to ULPI_CLK +OFFSET = OUT 12.667 ns AFTER usb_clk RISING; + +# Set MAX DELAY constraint on ULPI DIR pin +NET "usb_dir" TNM = "usb_pin_grp"; +TIMESPEC TS_usb_dir = FROM "usb_pin_grp" TO PADS 4 ns; + +# Cross clock domain timing Constraints between ULPI Clock and AMBA clock +NET "uclk" TNM_NET = "uclk"; +TIMESPEC "TS_clkm_usb_clk" = FROM "clkm" TO "uclk" 16 ns DATAPATHONLY; +TIMESPEC "TS_usb_clk_clkm" = FROM "uclk" TO "clkm" 16 ns DATAPATHONLY; diff --git a/designs/leon3-gr-xc6s/usb_spartan6_pll.vhd b/designs/leon3-gr-xc6s/usb_spartan6_pll.vhd new file mode 100644 index 00000000..b980629d --- /dev/null +++ b/designs/leon3-gr-xc6s/usb_spartan6_pll.vhd @@ -0,0 +1,183 @@ +----------------------------------------------------------------------------- +-- LEON3 Demonstration design test bench +-- Copyright (C) 2013 Fredrik Ringhage, Gaisler Research +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; +library unisim; +use unisim.vcomponents.all; + +entity usb_spartan6_pll is +generic + ( + C_INCLK_PERIOD : integer := 16667; + C_CLKOUT0_DIVIDE : integer := 8; + C_CLKFBOUT_MULT : integer := 8; + C_DIVCLK_DIVIDE : integer := 1 + + ); +port +( + sys_clk : in std_logic; + sys_rst_n : in std_logic; + clk0 : out std_logic; + rst0 : out std_logic; + locked : out std_logic +); +end entity; +architecture syn of usb_spartan6_pll is + + constant RST_SYNC_NUM : integer := 25; + constant CLK_PERIOD_NS : real := (real(C_INCLK_PERIOD)) / 1000.0; + constant CLK_PERIOD_INT : integer := C_INCLK_PERIOD/1000; + + signal clk0_bufg : std_logic; + signal clk0_bufg_in : std_logic; + signal clkfbout_clkfb_in : std_logic; + signal clkfbout_clkfb_bufg : std_logic; + signal clkfbout_clkfb : std_logic; + signal rst0_sync_r : std_logic_vector(RST_SYNC_NUM-1 downto 0); + signal sys_rst_i : std_logic; + signal pll_locked : std_logic; + + attribute keep : boolean; + attribute syn_keep : boolean; + attribute syn_preserve : boolean; + + attribute keep of clk0_bufg : signal is true; + attribute syn_keep of clk0_bufg : signal is true; + attribute syn_preserve of clk0_bufg : signal is true; + +begin + + clk0 <= clk0_bufg; + + sys_rst_i <= not(sys_rst_n); + + u_pll_adv : PLL_ADV + generic map + ( + BANDWIDTH => "OPTIMIZED", + CLKIN1_PERIOD => CLK_PERIOD_NS, + CLKIN2_PERIOD => CLK_PERIOD_NS, + CLKOUT0_DIVIDE => C_CLKOUT0_DIVIDE, + CLKOUT1_DIVIDE => 1, + CLKOUT2_DIVIDE => 1, + CLKOUT3_DIVIDE => 1, + CLKOUT4_DIVIDE => 1, + CLKOUT5_DIVIDE => 1, + CLKOUT0_PHASE => 0.000, + CLKOUT1_PHASE => 0.000, + CLKOUT2_PHASE => 0.000, + CLKOUT3_PHASE => 0.000, + CLKOUT4_PHASE => 0.000, + CLKOUT5_PHASE => 0.000, + CLKOUT0_DUTY_CYCLE => 0.500, + CLKOUT1_DUTY_CYCLE => 0.500, + CLKOUT2_DUTY_CYCLE => 0.500, + CLKOUT3_DUTY_CYCLE => 0.500, + CLKOUT4_DUTY_CYCLE => 0.500, + CLKOUT5_DUTY_CYCLE => 0.500, + SIM_DEVICE => "SPARTAN6", + COMPENSATION => "SYSTEM_SYNCHRONOUS", + DIVCLK_DIVIDE => C_DIVCLK_DIVIDE, + CLKFBOUT_MULT => C_CLKFBOUT_MULT, + CLKFBOUT_PHASE => 0.0, + REF_JITTER => 0.005000 + ) + port map + ( + CLKFBIN => clkfbout_clkfb, + CLKINSEL => '1', + CLKIN1 => sys_clk, + CLKIN2 => '0', + DADDR => (others => '0'), + DCLK => '0', + DEN => '0', + DI => (others => '0'), + DWE => '0', + REL => '0', + RST => sys_rst_i, + CLKFBDCM => open, + CLKFBOUT => clkfbout_clkfb_in, + CLKOUTDCM0 => open, + CLKOUTDCM1 => open, + CLKOUTDCM2 => open, + CLKOUTDCM3 => open, + CLKOUTDCM4 => open, + CLKOUTDCM5 => open, + CLKOUT0 => clk0_bufg_in, + CLKOUT1 => open, + CLKOUT2 => open, + CLKOUT3 => open, + CLKOUT4 => open, + CLKOUT5 => open, + DO => open, + DRDY => open, + LOCKED => pll_locked + ); + + U_BUFG_CLK0 : BUFG + port map + ( + O => clk0_bufg, + I => clk0_bufg_in + ); + + U_BUFG_CLK1 : BUFG + port map + ( + O => clkfbout_clkfb_bufg, + I => clkfbout_clkfb_in + ); + + U_BUFG_CLK2 : BUFIO2FB + port map + ( + O => clkfbout_clkfb, + I => clkfbout_clkfb_bufg + ); + + process (clk0_bufg, sys_rst_i) + begin + if (sys_rst_i = '1') then + locked <= '0'; + elsif (rising_edge(clk0_bufg)) then + if (pll_locked = '1') then + locked <= '1'; + end if; + end if; + end process; + + process (clk0_bufg, sys_rst_n) + begin + if (sys_rst_i = '1') then + rst0_sync_r <= (others => '1'); + elsif (rising_edge(clk0_bufg)) then + rst0_sync_r <= rst0_sync_r(RST_SYNC_NUM-2 downto 0) & '0'; -- logical left shift by one (pads with 0) + end if; + end process; + + rst0 <= rst0_sync_r(RST_SYNC_NUM-1); + +end architecture syn; + diff --git a/designs/leon3-gr-xc6s/vga_clkgen.vhd b/designs/leon3-gr-xc6s/vga_clkgen.vhd index 7277ec42..b1ee2d14 100644 --- a/designs/leon3-gr-xc6s/vga_clkgen.vhd +++ b/designs/leon3-gr-xc6s/vga_clkgen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-jopdesign-ep1c12/Makefile b/designs/leon3-jopdesign-ep1c12/Makefile index ea1a78a3..77c207aa 100644 --- a/designs/leon3-jopdesign-ep1c12/Makefile +++ b/designs/leon3-jopdesign-ep1c12/Makefile @@ -17,10 +17,9 @@ CLEAN=soft-clean TECHLIBS = altera altera_mf LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc ihp hynix cypress gleichmann + tmtc ihp hynix cypress DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan leon3ft \ - ddr grusbhc usb haps spi ac97 \ - slink ascs coremp7 + ddr grusbhc usb spi slink ascs FILESKIP = grcan.vhd diff --git a/designs/leon3-jopdesign-ep1c12/ahbrom.vhd b/designs/leon3-jopdesign-ep1c12/ahbrom.vhd index f94b8866..753697a1 100644 --- a/designs/leon3-jopdesign-ep1c12/ahbrom.vhd +++ b/designs/leon3-jopdesign-ep1c12/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-jopdesign-ep1c12/config.help b/designs/leon3-jopdesign-ep1c12/config.help index ca82d286..4cd9d3aa 100644 --- a/designs/leon3-jopdesign-ep1c12/config.help +++ b/designs/leon3-jopdesign-ep1c12/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-jopdesign-ep1c12/lconfig.tk b/designs/leon3-jopdesign-ep1c12/lconfig.tk index def181b0..13455cbd 100755 --- a/designs/leon3-jopdesign-ep1c12/lconfig.tk +++ b/designs/leon3-jopdesign-ep1c12/lconfig.tk @@ -757,7 +757,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -767,7 +768,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -910,8 +913,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -930,6 +935,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1019,9 +1028,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1075,10 +1085,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1124,14 +1135,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1204,13 +1217,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1250,22 +1271,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1322,21 +1611,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1383,36 +1672,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1420,48 +1710,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1517,27 +1808,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1578,16 +1869,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1596,34 +1888,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1680,92 +1973,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1773,18 +2066,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1825,52 +2118,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1878,162 +2172,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2089,45 +2384,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2167,18 +2464,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2186,55 +2484,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2291,24 +2594,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2348,17 +2651,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2366,37 +2670,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2452,16 +2757,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2509,9 +2821,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2533,21 +2843,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2856,14 +3171,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2937,17 +3252,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3226,32 +3541,32 @@ proc menu15 {w title} { int $w.config.f 15 3 "RAM waitstates" CONFIG_SRCTRL_RAMWS int $w.config.f 15 4 "IO waitstates" CONFIG_SRCTRL_IOWS bool $w.config.f 15 5 "Use read-modify-write for sub-word writes " CONFIG_SRCTRL_RMW - global tmpvar_27 - minimenu $w.config.f 15 6 "SRAM banks" tmpvar_27 CONFIG_SRCTRL_SRBANKS1 + global tmpvar_29 + minimenu $w.config.f 15 6 "SRAM banks" tmpvar_29 CONFIG_SRCTRL_SRBANKS1 menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"SRAM banks\"" - $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_27 -value "3" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_27 -value "5" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_29 -value "3" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_29 -value "5" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 - global tmpvar_28 - minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_28 CONFIG_SRCTRL_BANKSZ0 + global tmpvar_30 + minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_30 CONFIG_SRCTRL_BANKSZ0 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"SRAM bank size (kb) (0 for programmable)\"" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_28 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_28 -value "256" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_28 -value "512" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_28 -value "1024" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_28 -value "2048" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_28 -value "4096" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_28 -value "8192" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_28 -value "16384" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_28 -value "32768" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_28 -value "65536" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_30 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_30 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_30 -value "512" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_30 -value "1024" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_30 -value "2048" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_30 -value "4096" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_30 -value "8192" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_30 -value "16384" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_30 -value "32768" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_30 -value "65536" -command "update_active" menusplit $w $w.config.f.x7.x.menu 14 int $w.config.f 15 8 "PROM bank select address bit (0 - 28)" CONFIG_SRCTRL_ROMASEL @@ -3327,46 +3642,46 @@ proc update_define_menu15 {} { global CONFIG_SRCTRL_RMW if {($CONFIG_SRCTRL == 1)} then { set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW&15]} else {set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_SRCTRL_SRBANKS1 - if {$tmpvar_27 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} global CONFIG_SRCTRL_SRBANKS2 - if {$tmpvar_27 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} global CONFIG_SRCTRL_SRBANKS3 - if {$tmpvar_27 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} + if {$tmpvar_29 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} global CONFIG_SRCTRL_SRBANKS4 - if {$tmpvar_27 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} global CONFIG_SRCTRL_SRBANKS5 - if {$tmpvar_27 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} - global tmpvar_28 + if {$tmpvar_29 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} + global tmpvar_30 global CONFIG_SRCTRL_BANKSZ0 - if {$tmpvar_28 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} + if {$tmpvar_30 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} global CONFIG_SRCTRL_BANKSZ1 - if {$tmpvar_28 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} + if {$tmpvar_30 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} global CONFIG_SRCTRL_BANKSZ2 - if {$tmpvar_28 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} + if {$tmpvar_30 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} global CONFIG_SRCTRL_BANKSZ3 - if {$tmpvar_28 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} + if {$tmpvar_30 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} global CONFIG_SRCTRL_BANKSZ4 - if {$tmpvar_28 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} + if {$tmpvar_30 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} global CONFIG_SRCTRL_BANKSZ5 - if {$tmpvar_28 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} + if {$tmpvar_30 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} global CONFIG_SRCTRL_BANKSZ6 - if {$tmpvar_28 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} + if {$tmpvar_30 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} global CONFIG_SRCTRL_BANKSZ7 - if {$tmpvar_28 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} + if {$tmpvar_30 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} global CONFIG_SRCTRL_BANKSZ8 - if {$tmpvar_28 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} + if {$tmpvar_30 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} global CONFIG_SRCTRL_BANKSZ9 - if {$tmpvar_28 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} + if {$tmpvar_30 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} global CONFIG_SRCTRL_BANKSZ10 - if {$tmpvar_28 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} + if {$tmpvar_30 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} global CONFIG_SRCTRL_BANKSZ11 - if {$tmpvar_28 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} + if {$tmpvar_30 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} global CONFIG_SRCTRL_BANKSZ12 - if {$tmpvar_28 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} + if {$tmpvar_30 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} global CONFIG_SRCTRL_BANKSZ13 - if {$tmpvar_28 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} + if {$tmpvar_30 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} global CONFIG_SRCTRL_ROMASEL if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_ROMASEL "$CONFIG_SRCTRL_ROMASEL" 19} } @@ -3718,16 +4033,16 @@ proc menu18 {w title} { hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 18 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 18 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_29 - minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 + global tmpvar_31 + minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_31 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3789,21 +4104,21 @@ proc update_define_menu18 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_29 + global tmpvar_31 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_31 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3863,14 +4178,14 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 19 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_30 - minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 + global tmpvar_32 + minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_32 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_32 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3924,17 +4239,17 @@ proc update_define_menu19 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_30 + global tmpvar_32 global CONFIG_GRETH_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_32 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_32 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_32 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_32 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_32 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -4125,29 +4440,29 @@ proc menu21 {w title} { bool $w.config.f 21 2 "PCI DMA controller " CONFIG_PCI_MASTER_TARGET_DMA hex $w.config.f 21 3 "PCI vendor ID" CONFIG_PCI_VENDORID hex $w.config.f 21 4 "PCI device ID" CONFIG_PCI_DEVICEID - global tmpvar_31 - minimenu $w.config.f 21 5 "PCI FIFO depth" tmpvar_31 CONFIG_PCI_FIFO0 + global tmpvar_33 + minimenu $w.config.f 21 5 "PCI FIFO depth" tmpvar_33 CONFIG_PCI_FIFO0 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"PCI FIFO depth\"" - $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_31 -value "None" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_31 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_33 -value "None" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_33 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_33 -value "128" -command "update_active" menusplit $w $w.config.f.x5.x.menu 6 hex $w.config.f 21 6 "PCI initiator address (haddr\[31:20\]) " CONFIG_PCI_HADDR bool $w.config.f 21 7 "PCI arbiter " CONFIG_PCI_ARBITER bool $w.config.f 21 8 "PCI arbiter APB interface " CONFIG_PCI_ARBITER_APB int $w.config.f 21 9 "Number of PCI REQ/GNT pairs" CONFIG_PCI_ARBITER_NREQ bool $w.config.f 21 10 "Enable PCI trace buffer " CONFIG_PCI_TRACE - global tmpvar_32 - minimenu $w.config.f 21 11 "PCI trace buffer depth" tmpvar_32 CONFIG_PCI_TRACE256 + global tmpvar_34 + minimenu $w.config.f 21 11 "PCI trace buffer depth" tmpvar_34 CONFIG_PCI_TRACE256 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"PCI trace buffer depth\"" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_32 -value "256" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_32 -value "512" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_32 -value "1024" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_32 -value "2048" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_32 -value "4096" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_34 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_34 -value "512" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_34 -value "1024" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_34 -value "2048" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_34 -value "4096" -command "update_active" menusplit $w $w.config.f.x11.x.menu 5 @@ -4231,19 +4546,19 @@ proc update_define_menu21 {} { if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_VENDORID "$CONFIG_PCI_VENDORID" 1AC8} global CONFIG_PCI_DEVICEID if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_DEVICEID "$CONFIG_PCI_DEVICEID" 0054} - global tmpvar_31 + global tmpvar_33 global CONFIG_PCI_FIFO0 - if {$tmpvar_31 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} + if {$tmpvar_33 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} global CONFIG_PCI_FIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} + if {$tmpvar_33 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} global CONFIG_PCI_FIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} + if {$tmpvar_33 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} global CONFIG_PCI_FIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} + if {$tmpvar_33 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} global CONFIG_PCI_FIFO64 - if {$tmpvar_31 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} + if {$tmpvar_33 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} global CONFIG_PCI_FIFO128 - if {$tmpvar_31 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} + if {$tmpvar_33 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} global CONFIG_PCI_HADDR 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} global CONFIG_PCI_ARBITER @@ -4252,17 +4567,17 @@ proc update_define_menu21 {} { set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB&15]} else {set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB|16]} global CONFIG_PCI_ARBITER_NREQ if {($CONFIG_PCI_ARBITER == 1)} then {validate_int CONFIG_PCI_ARBITER_NREQ "$CONFIG_PCI_ARBITER_NREQ" 4} - global tmpvar_32 + global tmpvar_34 global CONFIG_PCI_TRACE256 - if {$tmpvar_32 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} + if {$tmpvar_34 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} global CONFIG_PCI_TRACE512 - if {$tmpvar_32 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} + if {$tmpvar_34 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} global CONFIG_PCI_TRACE1024 - if {$tmpvar_32 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} + if {$tmpvar_34 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} global CONFIG_PCI_TRACE2048 - if {$tmpvar_32 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} + if {$tmpvar_34 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} global CONFIG_PCI_TRACE4096 - if {$tmpvar_32 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} + if {$tmpvar_34 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} } @@ -4319,57 +4634,57 @@ proc menu22 {w title} { bool $w.config.f 22 0 "Enable Spacewire links " CONFIG_SPW_ENABLE int $w.config.f 22 1 "Number of links (1 - 3)" CONFIG_SPW_NUM - global tmpvar_33 - minimenu $w.config.f 22 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_33 CONFIG_SPW_AHBFIFO4 + global tmpvar_35 + minimenu $w.config.f 22 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_35 CONFIG_SPW_AHBFIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB RX/TX FIFO size (32-bit words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_33 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_35 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_35 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_35 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_35 -value "32" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_34 - minimenu $w.config.f 22 3 "Receiver FIFO size (bytes) " tmpvar_34 CONFIG_SPW_RXFIFO16 + global tmpvar_36 + minimenu $w.config.f 22 3 "Receiver FIFO size (bytes) " tmpvar_36 CONFIG_SPW_RXFIFO16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Receiver FIFO size (bytes) \"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_34 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_34 -value "32" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_34 -value "64" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_36 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_36 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_36 -value "64" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 22 4 "Enable RMAP protocol " CONFIG_SPW_RMAP - global tmpvar_35 - minimenu $w.config.f 22 5 "RMAP buffer size (bytes) " tmpvar_35 CONFIG_SPW_RMAPBUF2 + global tmpvar_37 + minimenu $w.config.f 22 5 "RMAP buffer size (bytes) " tmpvar_37 CONFIG_SPW_RMAPBUF2 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"RMAP buffer size (bytes) \"" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_35 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_35 -value "128" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_35 -value "192" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_35 -value "256" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_37 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_37 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_37 -value "192" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_37 -value "256" -command "update_active" menusplit $w $w.config.f.x5.x.menu 4 bool $w.config.f 22 6 "Enable RMAP CRC check " CONFIG_SPW_RMAPCRC bool $w.config.f 22 7 "Enable Rx unaligned transfers " CONFIG_SPW_RXUNAL bool $w.config.f 22 8 "Spacewire FIFO protection " CONFIG_SPW_FT bool $w.config.f 22 9 "Use GRSPWC netlist " CONFIG_SPW_NETLIST int $w.config.f 22 10 "Number of ports (1 - 2)" CONFIG_SPW_PORTS - global tmpvar_36 - minimenu $w.config.f 22 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_36 CONFIG_SPW_GRSPW1 + global tmpvar_38 + minimenu $w.config.f 22 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_38 CONFIG_SPW_GRSPW1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Select GRSPW core (GRSPW1/GRSPW2) \"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_36 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_36 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_38 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_38 -value "2" -command "update_active" menusplit $w $w.config.f.x11.x.menu 2 int $w.config.f 22 12 "Number of DMA channels (1 - 4)" CONFIG_SPW_DMACHAN bool $w.config.f 22 13 "Receiver and transmitter uses same clock " CONFIG_SPW_RTSAME - global tmpvar_37 - minimenu $w.config.f 22 14 "Select receiver clock type " tmpvar_37 CONFIG_SPW_RX_SDR + global tmpvar_39 + minimenu $w.config.f 22 14 "Select receiver clock type " tmpvar_39 CONFIG_SPW_RX_SDR menu $w.config.f.x14.x.menu -tearoffcommand "menutitle \"Select receiver clock type \"" - $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_37 -value "SDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_37 -value "DDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_37 -value "Xor" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_37 -value "Aeroflex" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_39 -value "SDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_39 -value "DDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_39 -value "Xor" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_39 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x14.x.menu 4 - global tmpvar_38 - minimenu $w.config.f 22 15 "Select transmitter clock type " tmpvar_38 CONFIG_SPW_TX_SDR + global tmpvar_40 + minimenu $w.config.f 22 15 "Select transmitter clock type " tmpvar_40 CONFIG_SPW_TX_SDR menu $w.config.f.x15.x.menu -tearoffcommand "menutitle \"Select transmitter clock type \"" - $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_38 -value "SDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_38 -value "DDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_38 -value "Aeroflex" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_40 -value "SDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_40 -value "DDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_40 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x15.x.menu 3 @@ -4449,34 +4764,34 @@ proc update_define_menu22 {} { global CONFIG_SPW_ENABLE global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_NUM "$CONFIG_SPW_NUM" 1} - global tmpvar_33 + global tmpvar_35 global CONFIG_SPW_AHBFIFO4 - if {$tmpvar_33 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} + if {$tmpvar_35 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} global CONFIG_SPW_AHBFIFO8 - if {$tmpvar_33 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} + if {$tmpvar_35 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} global CONFIG_SPW_AHBFIFO16 - if {$tmpvar_33 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} + if {$tmpvar_35 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} global CONFIG_SPW_AHBFIFO32 - if {$tmpvar_33 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} - global tmpvar_34 + if {$tmpvar_35 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} + global tmpvar_36 global CONFIG_SPW_RXFIFO16 - if {$tmpvar_34 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} + if {$tmpvar_36 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} global CONFIG_SPW_RXFIFO32 - if {$tmpvar_34 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} + if {$tmpvar_36 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} global CONFIG_SPW_RXFIFO64 - if {$tmpvar_34 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} + if {$tmpvar_36 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP&15]} else {set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP|16]} - global tmpvar_35 + global tmpvar_37 global CONFIG_SPW_RMAPBUF2 - if {$tmpvar_35 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} + if {$tmpvar_37 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} global CONFIG_SPW_RMAPBUF4 - if {$tmpvar_35 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} + if {$tmpvar_37 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} global CONFIG_SPW_RMAPBUF6 - if {$tmpvar_35 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} + if {$tmpvar_37 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} global CONFIG_SPW_RMAPBUF8 - if {$tmpvar_35 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} + if {$tmpvar_37 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC&15]} else {set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC|16]} @@ -4491,32 +4806,32 @@ proc update_define_menu22 {} { set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST&15]} else {set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST|16]} global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_PORTS "$CONFIG_SPW_PORTS" 1} - global tmpvar_36 + global tmpvar_38 global CONFIG_SPW_GRSPW1 - if {$tmpvar_36 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} + if {$tmpvar_38 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} global CONFIG_SPW_GRSPW2 - if {$tmpvar_36 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} + if {$tmpvar_38 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} global CONFIG_SPW_DMACHAN if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {validate_int CONFIG_SPW_DMACHAN "$CONFIG_SPW_DMACHAN" 1} global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME&15]} else {set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME|16]} - global tmpvar_37 + global tmpvar_39 global CONFIG_SPW_RX_SDR - if {$tmpvar_37 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} + if {$tmpvar_39 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} global CONFIG_SPW_RX_DDR - if {$tmpvar_37 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} + if {$tmpvar_39 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} global CONFIG_SPW_RX_XOR - if {$tmpvar_37 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} + if {$tmpvar_39 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} global CONFIG_SPW_RX_AFLEX - if {$tmpvar_37 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} - global tmpvar_38 + if {$tmpvar_39 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} + global tmpvar_40 global CONFIG_SPW_TX_SDR - if {$tmpvar_38 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} + if {$tmpvar_40 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} global CONFIG_SPW_TX_DDR - if {$tmpvar_38 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} + if {$tmpvar_40 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} global CONFIG_SPW_TX_AFLEX - if {$tmpvar_38 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} + if {$tmpvar_40 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} } @@ -4572,26 +4887,26 @@ proc menu23 {w title} { bool $w.config.f 23 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_39 - minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_39 CONFIG_UA1_FIFO1 + global tmpvar_41 + minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_41 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_39 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_39 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_39 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_39 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_39 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_39 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_41 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_41 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_41 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_41 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_41 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_41 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 23 2 "Enable secondary UART " CONFIG_UART2_ENABLE - global tmpvar_40 - minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_40 CONFIG_UA2_FIFO1 + global tmpvar_42 + minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_42 CONFIG_UA2_FIFO1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"UART2 FIFO depth\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_40 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_40 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_40 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_40 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_40 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_40 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_42 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_42 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_42 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_42 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_42 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_42 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 6 bool $w.config.f 23 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 23 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4682,32 +4997,32 @@ proc update_menu23 {} { proc update_define_menu23 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_39 + global tmpvar_41 global CONFIG_UA1_FIFO1 - if {$tmpvar_39 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_41 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_39 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_41 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_39 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_41 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_39 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_41 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_39 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_41 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_39 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} - global tmpvar_40 + if {$tmpvar_41 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + global tmpvar_42 global CONFIG_UA2_FIFO1 - if {$tmpvar_40 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} + if {$tmpvar_42 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} global CONFIG_UA2_FIFO2 - if {$tmpvar_40 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} + if {$tmpvar_42 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} global CONFIG_UA2_FIFO4 - if {$tmpvar_40 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} + if {$tmpvar_42 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} global CONFIG_UA2_FIFO8 - if {$tmpvar_40 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} + if {$tmpvar_42 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} global CONFIG_UA2_FIFO16 - if {$tmpvar_40 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} + if {$tmpvar_42 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} global CONFIG_UA2_FIFO32 - if {$tmpvar_40 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} + if {$tmpvar_42 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4877,7 +5192,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4887,6 +5203,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4911,6 +5229,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4923,14 +5242,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4943,27 +5267,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4973,17 +5297,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4995,12 +5319,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -5010,10 +5334,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -5024,7 +5348,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -5036,26 +5360,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -5063,27 +5389,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -5104,7 +5434,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -5122,13 +5452,13 @@ set CONFIG_SRCTRL_PROMWS 3 set CONFIG_SRCTRL_RAMWS 0 set CONFIG_SRCTRL_IOWS 0 set CONFIG_SRCTRL_RMW 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_SRCTRL_SRBANKS1 0 set CONFIG_SRCTRL_SRBANKS2 0 set CONFIG_SRCTRL_SRBANKS3 0 set CONFIG_SRCTRL_SRBANKS4 0 set CONFIG_SRCTRL_SRBANKS5 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_SRCTRL_BANKSZ0 0 set CONFIG_SRCTRL_BANKSZ1 0 set CONFIG_SRCTRL_BANKSZ2 0 @@ -5163,7 +5493,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -5174,7 +5504,7 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 @@ -5191,7 +5521,7 @@ set CONFIG_PCI_MASTER_TARGET 0 set CONFIG_PCI_MASTER_TARGET_DMA 0 set CONFIG_PCI_VENDORID 1AC8 set CONFIG_PCI_DEVICEID 0054 -set tmpvar_31 "(not set)" +set tmpvar_33 "(not set)" set CONFIG_PCI_FIFO0 0 set CONFIG_PCI_FIFO8 0 set CONFIG_PCI_FIFO16 0 @@ -5203,7 +5533,7 @@ set CONFIG_PCI_ARBITER 0 set CONFIG_PCI_ARBITER_APB 0 set CONFIG_PCI_ARBITER_NREQ 4 set CONFIG_PCI_TRACE 0 -set tmpvar_32 "(not set)" +set tmpvar_34 "(not set)" set CONFIG_PCI_TRACE256 0 set CONFIG_PCI_TRACE512 0 set CONFIG_PCI_TRACE1024 0 @@ -5211,17 +5541,17 @@ set CONFIG_PCI_TRACE2048 0 set CONFIG_PCI_TRACE4096 0 set CONFIG_SPW_ENABLE 0 set CONFIG_SPW_NUM 1 -set tmpvar_33 "(not set)" +set tmpvar_35 "(not set)" set CONFIG_SPW_AHBFIFO4 0 set CONFIG_SPW_AHBFIFO8 0 set CONFIG_SPW_AHBFIFO16 0 set CONFIG_SPW_AHBFIFO32 0 -set tmpvar_34 "(not set)" +set tmpvar_36 "(not set)" set CONFIG_SPW_RXFIFO16 0 set CONFIG_SPW_RXFIFO32 0 set CONFIG_SPW_RXFIFO64 0 set CONFIG_SPW_RMAP 0 -set tmpvar_35 "(not set)" +set tmpvar_37 "(not set)" set CONFIG_SPW_RMAPBUF2 0 set CONFIG_SPW_RMAPBUF4 0 set CONFIG_SPW_RMAPBUF6 0 @@ -5231,22 +5561,22 @@ set CONFIG_SPW_RXUNAL 0 set CONFIG_SPW_FT 0 set CONFIG_SPW_NETLIST 0 set CONFIG_SPW_PORTS 1 -set tmpvar_36 "(not set)" +set tmpvar_38 "(not set)" set CONFIG_SPW_GRSPW1 0 set CONFIG_SPW_GRSPW2 0 set CONFIG_SPW_DMACHAN 1 set CONFIG_SPW_RTSAME 0 -set tmpvar_37 "(not set)" +set tmpvar_39 "(not set)" set CONFIG_SPW_RX_SDR 0 set CONFIG_SPW_RX_DDR 0 set CONFIG_SPW_RX_XOR 0 set CONFIG_SPW_RX_AFLEX 0 -set tmpvar_38 "(not set)" +set tmpvar_40 "(not set)" set CONFIG_SPW_TX_SDR 0 set CONFIG_SPW_TX_DDR 0 set CONFIG_SPW_TX_AFLEX 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_39 "(not set)" +set tmpvar_41 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5254,7 +5584,7 @@ set CONFIG_UA1_FIFO8 0 set CONFIG_UA1_FIFO16 0 set CONFIG_UA1_FIFO32 0 set CONFIG_UART2_ENABLE 0 -set tmpvar_40 "(not set)" +set tmpvar_42 "(not set)" set CONFIG_UA2_FIFO1 0 set CONFIG_UA2_FIFO2 0 set CONFIG_UA2_FIFO4 0 @@ -5332,7 +5662,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5342,6 +5673,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5380,6 +5713,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -5392,9 +5726,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5408,239 +5743,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5685,13 +6170,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5720,29 +6205,29 @@ proc writeconfig {file1 file2} { if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_IOWS $CONFIG_SRCTRL_IOWS $notmod } global CONFIG_SRCTRL_RMW if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_RMW $CONFIG_SRCTRL_RMW [list $notmod] 2 } - global tmpvar_27 + global tmpvar_29 if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} - global tmpvar_28 + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} + global tmpvar_30 if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_SRCTRL_ROMASEL if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_ROMASEL $CONFIG_SRCTRL_ROMASEL $notmod } write_comment $cfg $autocfg "Leon2 memory controller " @@ -5786,27 +6271,27 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_30 + global tmpvar_32 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} write_comment $cfg $autocfg "CAN " global CONFIG_CAN_ENABLE write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2 @@ -5832,14 +6317,14 @@ proc writeconfig {file1 file2} { 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 } global CONFIG_PCI_DEVICEID 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 } - global tmpvar_31 + global tmpvar_33 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 { - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 }} + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 }} global CONFIG_PCI_HADDR 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 } global CONFIG_PCI_ARBITER @@ -5850,37 +6335,37 @@ proc writeconfig {file1 file2} { if {($CONFIG_PCI_ARBITER == 1)} then {write_int $cfg $autocfg CONFIG_PCI_ARBITER_NREQ $CONFIG_PCI_ARBITER_NREQ $notmod } global CONFIG_PCI_TRACE write_tristate $cfg $autocfg CONFIG_PCI_TRACE $CONFIG_PCI_TRACE [list $notmod] 2 - global tmpvar_32 + global tmpvar_34 if {($CONFIG_PCI_TRACE == 1)} then { - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 }} + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 }} write_comment $cfg $autocfg "Spacewire " global CONFIG_SPW_ENABLE write_tristate $cfg $autocfg CONFIG_SPW_ENABLE $CONFIG_SPW_ENABLE [list $notmod] 2 global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_NUM $CONFIG_SPW_NUM $notmod } - global tmpvar_33 + global tmpvar_35 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 }} - global tmpvar_34 + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 }} + global tmpvar_36 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_34 == "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 } - if { $tmpvar_34 == "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 } - if { $tmpvar_34 == "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 }} + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 }} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAP $CONFIG_SPW_RMAP [list $notmod] 2 } - global tmpvar_35 + global tmpvar_37 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then { - if { $tmpvar_35 == "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 } - if { $tmpvar_35 == "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 } - if { $tmpvar_35 == "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 } - if { $tmpvar_35 == "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 }} + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 }} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAPCRC $CONFIG_SPW_RMAPCRC [list $notmod] 2 } global CONFIG_SPW_RXUNAL @@ -5891,47 +6376,47 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_NETLIST $CONFIG_SPW_NETLIST [list $notmod] 2 } global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_PORTS $CONFIG_SPW_PORTS $notmod } - global tmpvar_36 + global tmpvar_38 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_36 == "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 } - if { $tmpvar_36 == "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 }} + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 }} global CONFIG_SPW_DMACHAN global CONFIG_SPW_GRSPW2 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_int $cfg $autocfg CONFIG_SPW_DMACHAN $CONFIG_SPW_DMACHAN $notmod } global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RTSAME $CONFIG_SPW_RTSAME [list $notmod] 2 } - global tmpvar_37 + global tmpvar_39 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_37 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } - if { $tmpvar_37 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } - if { $tmpvar_37 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } - if { $tmpvar_37 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} - global tmpvar_38 + if { $tmpvar_39 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } + if { $tmpvar_39 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } + if { $tmpvar_39 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } + if { $tmpvar_39 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} + global tmpvar_40 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_38 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } - if { $tmpvar_38 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } - if { $tmpvar_38 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} + if { $tmpvar_40 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } + if { $tmpvar_40 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } + if { $tmpvar_40 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_39 + global tmpvar_41 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 }} + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 }} global CONFIG_UART2_ENABLE write_tristate $cfg $autocfg CONFIG_UART2_ENABLE $CONFIG_UART2_ENABLE [list $notmod] 2 - global tmpvar_40 + global tmpvar_42 if {($CONFIG_UART2_ENABLE == 1)} then { - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 }} + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -6004,7 +6489,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -6014,6 +6500,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -6032,8 +6520,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -6116,11 +6609,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -6141,6 +6636,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -6296,8 +6795,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -6316,6 +6817,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -6356,458 +6861,484 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "1" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "1" global CONFIG_SRCTRL_SRBANKS1 - if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_29 "1" } global CONFIG_SRCTRL_SRBANKS2 - if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_29 "2" } global CONFIG_SRCTRL_SRBANKS3 - if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_27 "3" } + if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_29 "3" } global CONFIG_SRCTRL_SRBANKS4 - if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_29 "4" } global CONFIG_SRCTRL_SRBANKS5 - if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_27 "5" } - global tmpvar_28 - set tmpvar_28 "0" + if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_29 "5" } + global tmpvar_30 + set tmpvar_30 "0" global CONFIG_SRCTRL_BANKSZ0 - if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_30 "8" } global CONFIG_SRCTRL_BANKSZ1 - if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_30 "16" } global CONFIG_SRCTRL_BANKSZ2 - if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_30 "32" } global CONFIG_SRCTRL_BANKSZ3 - if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_28 "64" } + if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_30 "64" } global CONFIG_SRCTRL_BANKSZ4 - if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_28 "128" } + if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_30 "128" } global CONFIG_SRCTRL_BANKSZ5 - if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_28 "256" } + if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_30 "256" } global CONFIG_SRCTRL_BANKSZ6 - if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_28 "512" } + if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_30 "512" } global CONFIG_SRCTRL_BANKSZ7 - if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_28 "1024" } + if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_30 "1024" } global CONFIG_SRCTRL_BANKSZ8 - if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_28 "2048" } + if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_30 "2048" } global CONFIG_SRCTRL_BANKSZ9 - if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_28 "4096" } + if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_30 "4096" } global CONFIG_SRCTRL_BANKSZ10 - if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_28 "8192" } + if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_30 "8192" } global CONFIG_SRCTRL_BANKSZ11 - if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_28 "16384" } + if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_30 "16384" } global CONFIG_SRCTRL_BANKSZ12 - if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_28 "32768" } + if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_30 "32768" } global CONFIG_SRCTRL_BANKSZ13 - if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_28 "65536" } - global tmpvar_29 - set tmpvar_29 "4" + if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_30 "65536" } + global tmpvar_31 + set tmpvar_31 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_31 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_31 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_31 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_31 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_31 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_31 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } - global tmpvar_30 - set tmpvar_30 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_31 "64" } + global tmpvar_32 + set tmpvar_32 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_32 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_32 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_32 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_32 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } - global tmpvar_31 - set tmpvar_31 "8" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_32 "64" } + global tmpvar_33 + set tmpvar_33 "8" global CONFIG_PCI_FIFO0 - if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_31 "None" } + if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_33 "None" } global CONFIG_PCI_FIFO8 - if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_31 "8" } + if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_33 "8" } global CONFIG_PCI_FIFO16 - if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_31 "16" } + if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_33 "16" } global CONFIG_PCI_FIFO32 - if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_31 "32" } + if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_33 "32" } global CONFIG_PCI_FIFO64 - if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_31 "64" } + if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_33 "64" } global CONFIG_PCI_FIFO128 - if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_31 "128" } - global tmpvar_32 - set tmpvar_32 "256" + if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_33 "128" } + global tmpvar_34 + set tmpvar_34 "256" global CONFIG_PCI_TRACE256 - if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_32 "256" } + if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_34 "256" } global CONFIG_PCI_TRACE512 - if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_32 "512" } + if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_34 "512" } global CONFIG_PCI_TRACE1024 - if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_32 "1024" } + if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_34 "1024" } global CONFIG_PCI_TRACE2048 - if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_32 "2048" } + if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_34 "2048" } global CONFIG_PCI_TRACE4096 - if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_32 "4096" } - global tmpvar_33 - set tmpvar_33 "16" + if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_34 "4096" } + global tmpvar_35 + set tmpvar_35 "16" global CONFIG_SPW_AHBFIFO4 - if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_33 "4" } + if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_35 "4" } global CONFIG_SPW_AHBFIFO8 - if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_33 "8" } + if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_35 "8" } global CONFIG_SPW_AHBFIFO16 - if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_33 "16" } + if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_35 "16" } global CONFIG_SPW_AHBFIFO32 - if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_33 "32" } - global tmpvar_34 - set tmpvar_34 "16" + if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_35 "32" } + global tmpvar_36 + set tmpvar_36 "16" global CONFIG_SPW_RXFIFO16 - if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_34 "16" } + if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_36 "16" } global CONFIG_SPW_RXFIFO32 - if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_34 "32" } + if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_36 "32" } global CONFIG_SPW_RXFIFO64 - if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_34 "64" } - global tmpvar_35 - set tmpvar_35 "64" + if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_36 "64" } + global tmpvar_37 + set tmpvar_37 "64" global CONFIG_SPW_RMAPBUF2 - if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_35 "64" } + if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_37 "64" } global CONFIG_SPW_RMAPBUF4 - if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_35 "128" } + if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_37 "128" } global CONFIG_SPW_RMAPBUF6 - if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_35 "192" } + if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_37 "192" } global CONFIG_SPW_RMAPBUF8 - if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_35 "256" } - global tmpvar_36 - set tmpvar_36 "2" + if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_37 "256" } + global tmpvar_38 + set tmpvar_38 "2" global CONFIG_SPW_GRSPW1 - if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_36 "1" } + if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_38 "1" } global CONFIG_SPW_GRSPW2 - if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_36 "2" } - global tmpvar_37 - set tmpvar_37 "DDR" + if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_38 "2" } + global tmpvar_39 + set tmpvar_39 "DDR" global CONFIG_SPW_RX_SDR - if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_37 "SDR" } + if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_39 "SDR" } global CONFIG_SPW_RX_DDR - if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_37 "DDR" } + if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_39 "DDR" } global CONFIG_SPW_RX_XOR - if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_37 "Xor" } + if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_39 "Xor" } global CONFIG_SPW_RX_AFLEX - if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_37 "Aeroflex" } - global tmpvar_38 - set tmpvar_38 "SDR" + if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_39 "Aeroflex" } + global tmpvar_40 + set tmpvar_40 "SDR" global CONFIG_SPW_TX_SDR - if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_38 "SDR" } + if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_40 "SDR" } global CONFIG_SPW_TX_DDR - if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_38 "DDR" } + if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_40 "DDR" } global CONFIG_SPW_TX_AFLEX - if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_38 "Aeroflex" } - global tmpvar_39 - set tmpvar_39 "1" + if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_40 "Aeroflex" } + global tmpvar_41 + set tmpvar_41 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_39 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_41 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_39 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_41 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_39 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_41 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_39 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_41 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_39 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_41 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_39 "32" } - global tmpvar_40 - set tmpvar_40 "1" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_41 "32" } + global tmpvar_42 + set tmpvar_42 "1" global CONFIG_UA2_FIFO1 - if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_40 "1" } + if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_42 "1" } global CONFIG_UA2_FIFO2 - if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_40 "2" } + if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_42 "2" } global CONFIG_UA2_FIFO4 - if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_40 "4" } + if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_42 "4" } global CONFIG_UA2_FIFO8 - if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_40 "8" } + if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_42 "8" } global CONFIG_UA2_FIFO16 - if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_40 "16" } + if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_42 "16" } global CONFIG_UA2_FIFO32 - if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_40 "32" } + if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_42 "32" } } diff --git a/designs/leon3-jopdesign-ep1c12/leon3mp.vhd b/designs/leon3-jopdesign-ep1c12/leon3mp.vhd index cbc8dc9f..7644bf48 100644 --- a/designs/leon3-jopdesign-ep1c12/leon3mp.vhd +++ b/designs/leon3-jopdesign-ep1c12/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-jopdesign-ep1c12/testbench.vhd b/designs/leon3-jopdesign-ep1c12/testbench.vhd index a66b1d6d..c79b491b 100644 --- a/designs/leon3-jopdesign-ep1c12/testbench.vhd +++ b/designs/leon3-jopdesign-ep1c12/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-jopdesign-ep1c12/tkconfig.h b/designs/leon3-jopdesign-ep1c12/tkconfig.h index f47757f7..b839a88a 100644 --- a/designs/leon3-jopdesign-ep1c12/tkconfig.h +++ b/designs/leon3-jopdesign-ep1c12/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-lattice-latticeECP3/.config b/designs/leon3-lattice-latticeECP3/.config deleted file mode 100755 index 6f286aaa..00000000 --- a/designs/leon3-lattice-latticeECP3/.config +++ /dev/null @@ -1,285 +0,0 @@ -# -# Automatically generated make config: don't edit -# -CONFIG_LEON3FT_PRESENT=y -CONFIG_HAS_SHARED_GRFPU=y - -# -# Synthesis -# -# CONFIG_SYN_INFERRED is not set -# CONFIG_SYN_STRATIX is not set -# CONFIG_SYN_STRATIXII is not set -# CONFIG_SYN_STRATIXIII is not set -# CONFIG_SYN_CYCLONEIII is not set -# CONFIG_SYN_ALTERA is not set -# CONFIG_SYN_ATC18 is not set -CONFIG_SYN_LATTICE=y -# CONFIG_SYN_ECLIPSE is not set -# CONFIG_SYN_UMC is not set -# CONFIG_SYN_SPARTAN2 is not set -# CONFIG_SYN_SPARTAN3 is not set -# CONFIG_SYN_SPARTAN3E is not set -# CONFIG_SYN_SPARTAN6 is not set -# CONFIG_SYN_VIRTEX is not set -# CONFIG_SYN_VIRTEXE is not set -# CONFIG_SYN_VIRTEX2 is not set -# CONFIG_SYN_VIRTEX4 is not set -# CONFIG_SYN_VIRTEX5 is not set -# CONFIG_SYN_VIRTEX6 is not set -CONFIG_SYN_INFER_RAM=y -CONFIG_SYN_INFER_PADS=y -# CONFIG_SYN_NO_ASYNC is not set -# CONFIG_SYN_SCAN is not set - -# -# Clock generation -# -CONFIG_CLK_INFERRED=y -# CONFIG_CLK_HCLKBUF is not set -# CONFIG_CLK_UT130HBD is not set -# CONFIG_CLK_ALTDLL is not set -# CONFIG_CLK_LATDLL is not set -# CONFIG_CLK_PRO3PLL is not set -# CONFIG_CLK_PRO3EPLL is not set -# CONFIG_CLK_PRO3LPLL is not set -# CONFIG_CLK_FUSPLL is not set -# CONFIG_CLK_LIB18T is not set -# CONFIG_CLK_RHUMC is not set -# CONFIG_CLK_CLKDLL is not set -# CONFIG_CLK_DCM is not set -# CONFIG_PCI_SYSCLK is not set -CONFIG_LEON3=y -CONFIG_PROC_NUM=1 - -# -# Processor -# - -# -# Integer unit -# -CONFIG_IU_NWINDOWS=8 -CONFIG_IU_V8MULDIV=y -CONFIG_IU_MUL_LATENCY_2=y -# CONFIG_IU_MUL_LATENCY_4 is not set -# CONFIG_IU_MUL_LATENCY_5 is not set -CONFIG_IU_MUL_INFERRED=y -# CONFIG_IU_MUL_MODGEN is not set -# CONFIG_IU_MUL_TECHSPEC is not set -# CONFIG_IU_MUL_DW is not set -CONFIG_IU_BP=y -CONFIG_IU_SVT=y -# CONFIG_NOTAG is not set -CONFIG_IU_LDELAY=1 -CONFIG_IU_WATCHPOINTS=2 -CONFIG_PWD=y -CONFIG_IU_RSTADDR=00000 - -# -# Floating-point unit -# -# CONFIG_FPU_ENABLE is not set - -# -# Cache system -# -CONFIG_ICACHE_ENABLE=y -# CONFIG_ICACHE_ASSO1 is not set -CONFIG_ICACHE_ASSO2=y -# CONFIG_ICACHE_ASSO3 is not set -# CONFIG_ICACHE_ASSO4 is not set -# CONFIG_ICACHE_SZ1 is not set -# CONFIG_ICACHE_SZ2 is not set -# CONFIG_ICACHE_SZ4 is not set -CONFIG_ICACHE_SZ8=y -# CONFIG_ICACHE_SZ16 is not set -# CONFIG_ICACHE_SZ32 is not set -# CONFIG_ICACHE_SZ64 is not set -# CONFIG_ICACHE_SZ128 is not set -# CONFIG_ICACHE_SZ256 is not set -# CONFIG_ICACHE_LZ16 is not set -CONFIG_ICACHE_LZ32=y -# CONFIG_ICACHE_ALGORND is not set -# CONFIG_ICACHE_ALGODIR is not set -# CONFIG_ICACHE_ALGOLRR is not set -CONFIG_ICACHE_ALGOLRU=y -# CONFIG_ICACHE_LOCK is not set -CONFIG_DCACHE_ENABLE=y -# CONFIG_DCACHE_ASSO1 is not set -CONFIG_DCACHE_ASSO2=y -# CONFIG_DCACHE_ASSO3 is not set -# CONFIG_DCACHE_ASSO4 is not set -# CONFIG_DCACHE_SZ1 is not set -# CONFIG_DCACHE_SZ2 is not set -CONFIG_DCACHE_SZ4=y -# CONFIG_DCACHE_SZ8 is not set -# CONFIG_DCACHE_SZ16 is not set -# CONFIG_DCACHE_SZ32 is not set -# CONFIG_DCACHE_SZ64 is not set -# CONFIG_DCACHE_SZ128 is not set -# CONFIG_DCACHE_SZ256 is not set -CONFIG_DCACHE_LZ16=y -# CONFIG_DCACHE_LZ32 is not set -# CONFIG_DCACHE_ALGORND is not set -# CONFIG_DCACHE_ALGODIR is not set -# CONFIG_DCACHE_ALGOLRR is not set -CONFIG_DCACHE_ALGOLRU=y -# CONFIG_DCACHE_LOCK is not set -CONFIG_DCACHE_SNOOP=y -CONFIG_DCACHE_SNOOP_FAST=y -CONFIG_DCACHE_SNOOP_SEPTAG=y -CONFIG_CACHE_FIXED=0 - -# -# MMU -# -CONFIG_MMU_ENABLE=y -# CONFIG_MMU_COMBINED is not set -CONFIG_MMU_SPLIT=y -CONFIG_MMU_REPARRAY=y -# CONFIG_MMU_REPINCREMENT is not set -# CONFIG_MMU_I2 is not set -# CONFIG_MMU_I4 is not set -CONFIG_MMU_I8=y -# CONFIG_MMU_I16 is not set -# CONFIG_MMU_I32 is not set -# CONFIG_MMU_D2 is not set -# CONFIG_MMU_D4 is not set -CONFIG_MMU_D8=y -# CONFIG_MMU_D16 is not set -# CONFIG_MMU_D32 is not set -CONFIG_MMU_FASTWB=y -CONFIG_MMU_PAGE_4K=y -# CONFIG_MMU_PAGE_8K is not set -# CONFIG_MMU_PAGE_16K is not set -# CONFIG_MMU_PAGE_32K is not set -# CONFIG_MMU_PAGE_PROG is not set - -# -# Debug Support Unit -# -CONFIG_DSU_ENABLE=y -CONFIG_DSU_ITRACE=y -# CONFIG_DSU_ITRACESZ1 is not set -# CONFIG_DSU_ITRACESZ2 is not set -CONFIG_DSU_ITRACESZ4=y -# CONFIG_DSU_ITRACESZ8 is not set -# CONFIG_DSU_ITRACESZ16 is not set -CONFIG_DSU_ATRACE=y -# CONFIG_DSU_ATRACESZ1 is not set -# CONFIG_DSU_ATRACESZ2 is not set -CONFIG_DSU_ATRACESZ4=y -# CONFIG_DSU_ATRACESZ8 is not set -# CONFIG_DSU_ATRACESZ16 is not set - -# -# Fault-tolerance -# -# CONFIG_LEON3FT_EN is not set - -# -# VHDL debug settings -# -# CONFIG_IU_DISAS is not set -# CONFIG_DEBUG_PC32 is not set - -# -# AMBA configuration -# -CONFIG_AHB_DEFMST=0 -CONFIG_AHB_RROBIN=y -CONFIG_AHB_SPLIT=y -# CONFIG_AHB_FPNPEN is not set -CONFIG_AHB_IOADDR=FFF -CONFIG_APB_HADDR=800 -# CONFIG_AHB_MON is not set -# CONFIG_AHB_DTRACE is not set - -# -# Debug Link -# -CONFIG_DSU_UART=y -# CONFIG_DSU_JTAG is not set -CONFIG_DSU_ETH=y -# CONFIG_DSU_ETHSZ1 is not set -# CONFIG_DSU_ETHSZ2 is not set -CONFIG_DSU_ETHSZ4=y -# CONFIG_DSU_ETHSZ8 is not set -# CONFIG_DSU_ETHSZ16 is not set -CONFIG_DSU_IPMSB=C0A8 -CONFIG_DSU_IPLSB=0085 -CONFIG_DSU_ETHMSB=020000 -CONFIG_DSU_ETHLSB=000033 -# CONFIG_DSU_ETH_PROG is not set -# CONFIG_DSU_ETH_DIS is not set - -# -# Peripherals -# - -# -# Memory controllers -# - -# -# Leon2 memory controller -# -CONFIG_MCTRL_LEON2=y -# CONFIG_MCTRL_8BIT is not set -CONFIG_MCTRL_16BIT=y -# CONFIG_MCTRL_5CS is not set -# CONFIG_MCTRL_SDRAM is not set - -# -# On-chip RAM/ROM -# -CONFIG_AHBROM_ENABLE=y -CONFIG_AHBROM_START=000 -CONFIG_AHBROM_PIPE=y -CONFIG_AHBRAM_ENABLE=y -# CONFIG_AHBRAM_SZ1 is not set -# CONFIG_AHBRAM_SZ2 is not set -CONFIG_AHBRAM_SZ4=y -# CONFIG_AHBRAM_SZ8 is not set -# CONFIG_AHBRAM_SZ16 is not set -# CONFIG_AHBRAM_SZ32 is not set -# CONFIG_AHBRAM_SZ64 is not set -CONFIG_AHBRAM_START=A00 - -# -# Ethernet interface -# -CONFIG_GRETH_ENABLE=y -# CONFIG_GRETH_GIGA is not set -# CONFIG_GRETH_FIFO4 is not set -# CONFIG_GRETH_FIFO8 is not set -# CONFIG_GRETH_FIFO16 is not set -CONFIG_GRETH_FIFO32=y -# CONFIG_GRETH_FIFO64 is not set - -# -# UARTs, timers and irq control -# -CONFIG_UART1_ENABLE=y -# CONFIG_UA1_FIFO1 is not set -# CONFIG_UA1_FIFO2 is not set -CONFIG_UA1_FIFO4=y -# CONFIG_UA1_FIFO8 is not set -# CONFIG_UA1_FIFO16 is not set -# CONFIG_UA1_FIFO32 is not set -CONFIG_IRQ3_ENABLE=y -# CONFIG_IRQ3_SEC is not set -CONFIG_GPT_ENABLE=y -CONFIG_GPT_NTIM=2 -CONFIG_GPT_SW=8 -CONFIG_GPT_TW=32 -CONFIG_GPT_IRQ=8 -CONFIG_GPT_SEPIRQ=y -CONFIG_GPT_WDOGEN=y -CONFIG_GPT_WDOG=FFFF - -# -# VHDL Debugging -# -CONFIG_DEBUG_UART=y diff --git a/designs/leon3-lattice-latticeECP3/Makefile b/designs/leon3-lattice-latticeECP3/Makefile deleted file mode 100644 index 00f90cb2..00000000 --- a/designs/leon3-lattice-latticeECP3/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -include .config -GRLIB=../.. -TOP=leon3mp -BOARD=lattice-ecp3-lfe3-35ea -include $(GRLIB)/boards/$(BOARD)/Makefile.inc -DEVICE=$(PART)-$(PACKAGE)$(SPEED) -LPF=$(GRLIB)/boards/$(BOARD)/$(TOP).lpf -PRF=$(GRLIB)/boards/$(BOARD)/$(TOP).prf -EFFORT=high -SYNPOPT="set_option -pipe 0; set_option -retiming 0; set_option -write_apr_constraint 0" -VHDLSYNFILES=config.vhd ahbrom.vhd leon3mp.vhd -VHDLSIMFILES=testbench.vhd -SIMTOP=testbench - -#VHDLOPTSYNFILES= \ - -SDCFILE=default.sdc -BITGEN=$(GRLIB)/boards/$(BOARD)/default.ut -CLEAN=soft-clean -TECHLIBS = secureip - -LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann usbhc spw gsi cypress hynix \ - spansion - -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - usb grusbhc spacewire ata haps coremp7 ascs slink spi hcan \ - leon4 leon4b64 l2cache pwm gr1553b iommu ac97 - -FILESKIP = grcan.vhd ddr2.v mobile_ddr.v - -#GRLIB_CONFIG = grlib_config.vhd - -include $(GRLIB)/bin/Makefile -include $(GRLIB)/software/leon3/Makefile - -################## project specific targets ########################## - diff --git a/designs/leon3-lattice-latticeECP3/README.txt b/designs/leon3-lattice-latticeECP3/README.txt deleted file mode 100644 index 6deb907a..00000000 --- a/designs/leon3-lattice-latticeECP3/README.txt +++ /dev/null @@ -1,116 +0,0 @@ - -This leon3 design is tailored to the LatticeECP3 Versa Evaluation Board ------------------------------------------------------------------------ - -Design specifics: - -* System reset is mapped to the FPGA GSRN button - -* FTDI High-Speed USB IC contains UART interface where AHB DSU UART is - connected (I/O pins G19, G20). - -* Additional UART, the console UART (APB UART 1), is available on - x3 Expansion Connector - pins 6, 7. - -* The GRETH core (connected to PHY#2 interface) is enabled and runs without - problems at 100 Mbit. Using 1 Gbit is also possible with the commercial - grlib version. Ethernet debug link (EDCL) is enabled, - default IP is 192.168.0.133. - -* Design contains memory controller instantiation for connecting to - simulation model of generic 16-bit async SRAM. This helps to simulate the design. - -* The JTAG DSU interface is not available - JTAG TAP controller is under development. - -* DDR3 support is under development. - -* PCI Express x1 support is under development. - -* The LEON3 processor can run up to 65 - 80 MHz on the board in the typical - configuration. - -* LEDs on the board are configured as follows: - led(0) <= not cgo.clklock; - led(1) <= not cgo1.clklock; - led(2) <= errorn_s; - led(4) <= not dsuo.active; - led(5) <= not gpto.wdog; - led(6) <= not dui.rxd; (possibly not uart1i.rxd or not etho.tx_en) - led(7) <= not duo.txd; (possibly not uart1o.txd or not etho.tx_er) - - -* Sample output from GRMON is: - - GRMON2 LEON debug monitor v2.0.24b internal version - - Copyright (C) 2012 Aeroflex Gaisler - All rights reserved. - For latest updates, go to http://www.gaisler.com/ - Comments or bug-reports to support@gaisler.com - - -Parsing -eth 192.168.0.133 - ethernet startup - -Commands missing help: - - GRLIB build version: 4113 - Detected frequency: 100 MHz - - Component Vendor - LEON3 SPARC V8 Processor Aeroflex Gaisler - AHB Debug UART Aeroflex Gaisler - GR Ethernet MAC Aeroflex Gaisler - LEON2 Memory Controller European Space Agency - AHB/APB Bridge Aeroflex Gaisler - LEON3 Debug Support Unit Aeroflex Gaisler - Single-port AHB SRAM module Aeroflex Gaisler - Generic AHB ROM Aeroflex Gaisler - Generic UART Aeroflex Gaisler - Multi-processor Interrupt Ctrl. Aeroflex Gaisler - Modular Timer Unit Aeroflex Gaisler - - Use command 'info sys' to print a detailed report of attached cores - - -grmon2> info sys - cpu0 Aeroflex Gaisler LEON3 SPARC V8 Processor - AHB Master 0 - ahbuart0 Aeroflex Gaisler AHB Debug UART - AHB Master 1 - APB: 80000700 - 80000800 - Baudrate 115200, AHB frequency 100000000.00 - greth0 Aeroflex Gaisler GR Ethernet MAC - AHB Master 2 - APB: 80000F00 - 80001000 - IRQ: 12 - edcl ip 192.168.0.133, buffer 4 kbyte - mctrl0 European Space Agency LEON2 Memory Controller - APB: 80000000 - 80000100 - apbmst0 Aeroflex Gaisler AHB/APB Bridge - AHB: 80000000 - 80100000 - dsu0 Aeroflex Gaisler LEON3 Debug Support Unit - AHB: 90000000 - A0000000 - AHB trace: 256 lines, 32-bit bus - CPU0: win 8, hwbp 2, itrace 256, V8 mul/div, srmmu, lddel 1 - stack pointer 0xa0000ff0 - icache 2 * 8 kB, 32 B/line lru - dcache 2 * 4 kB, 16 B/line lru - ahbram0 Aeroflex Gaisler Single-port AHB SRAM module - AHB: A0000000 - A0100000 - 32-bit static ram: 4 kB @ 0xa0000000 - adev7 Aeroflex Gaisler Generic AHB ROM - AHB: 00000000 - 00100000 - uart0 Aeroflex Gaisler Generic UART - APB: 80000100 - 80000200 - IRQ: 2 - Baudrate 38343 - irqmp0 Aeroflex Gaisler Multi-processor Interrupt Ctrl. - APB: 80000200 - 80000300 - gptimer0 Aeroflex Gaisler Modular Timer Unit - APB: 80000300 - 80000400 - IRQ: 8 - 8-bit scalar, 2 * 32-bit timers, divisor 100 - -grmon2> - - diff --git a/designs/leon3-lattice-latticeECP3/default.sdc b/designs/leon3-lattice-latticeECP3/default.sdc deleted file mode 100644 index 3ddb9a8c..00000000 --- a/designs/leon3-lattice-latticeECP3/default.sdc +++ /dev/null @@ -1,52 +0,0 @@ -# Synopsys, Inc. constraint file -# /home/martins/GRLib/from_web/grlib-gpl-1.1.0-b4113/designs/leon3-lattice-latticeECP3/default.sdc -# Written on Fri Mar 23 11:11:37 2012 -# by Synplify Pro, D-2010.03-SP1-1 Scope Editor - -# -# Collections -# - -# -# Clocks -# -define_clock -name {clk_in} -freq 100.000 -clockgroup default_clkgroup -define_clock -name {txc} -freq 50.000 -clockgroup phy_tx_clkgroup -route 10.000 -define_clock -name {rxc} -freq 50.000 -clockgroup phy_rx_clkgroup -route 2.000 -define_clock -name {leon3mp|egtx_clk} -freq 125.000 -clockgroup phy_egtx_clkgroup -route 2.000 -define_clock -name {leon3mp|clkgen0.clkin} -freq 100.000 -route 2.0 -clockgroup ahb_clkgroup - -# -# Clock to Clock -# - -# -# Inputs/Outputs -# -define_output_delay -disable -default 10.00 -improve 0.00 -route 0.00 -ref {clk:r} -define_input_delay -disable -default 10.00 -improve 0.00 -route 0.00 -ref {clk:r} - -# -# Registers -# - -# -# Delay Paths -# - -# -# Attributes -# -define_global_attribute {syn_useioff} {1} - -# -# I/O Standards -# - -# -# Compile Points -# - -# -# Other -# diff --git a/designs/leon3-lattice-latticeECP3/lconfig.tk b/designs/leon3-lattice-latticeECP3/lconfig.tk deleted file mode 100755 index 53e3fe5e..00000000 --- a/designs/leon3-lattice-latticeECP3/lconfig.tk +++ /dev/null @@ -1,5280 +0,0 @@ -# FILE: header.tk -# This file is boilerplate TCL/TK function definitions for 'make xconfig'. -# -# CHANGES -# ======= -# -# 8 January 1999, Michael Elizabeth Chastain, -# - Remove unused do_cmd function (part of the 2.0 sound support). -# - Arrange buttons in three columns for better screen fitting. -# - Add CONSTANT_Y, CONSTANT_M, CONSTANT_N for commands like: -# dep_tristate 'foo' CONFIG_FOO m -# -# 23 January 1999, Michael Elizabeth Chastain, -# - Shut vfix the hell up. -# -# 24 January 1999, Michael Elizabeth Chastain, -# - Improve the exit message (Jeff Ronne). - -# -# This is a handy replacement for ".widget cget" that requires neither tk4 -# nor additional source code uglification. -# -proc cget { w option } { - return "[lindex [$w configure $option] 4]" -} - -# -# Function to compensate for broken config.in scripts like the sound driver, -# which make dependencies on variables that are never even conditionally -# defined. -# -proc vfix { var } { - global $var - if [ catch {eval concat $$var} ] { - set $var 4 - } -} - -# -# Constant values used by certain dep_tristate commands. -# -set CONSTANT_Y 1 -set CONSTANT_M 2 -set CONSTANT_N 0 -set CONSTANT_E 4 - -# -# Create a "reference" object to steal colors from. -# -button .ref - -# -# On monochrome displays, -disabledforeground is blank by default; that's -# bad. Fill it with -foreground instead. -# -if { [cget .ref -disabledforeground] == "" } { - .ref configure -disabledforeground [cget .ref -foreground] -} - - -# -# Define some macros we will need to parse the config.in file. -# - -proc mainmenu_name { text } { - wm title . "$text" -} - -proc menu_option { w menu_num text } { - global menus_per_column - global processed_top_level - set processed_top_level [expr $processed_top_level + 1] - if { $processed_top_level <= $menus_per_column } then { - set myframe left - } elseif { $processed_top_level <= [expr 2 * $menus_per_column] } then { - set myframe middle - } else { - set myframe right - } - button .f0.x$menu_num -anchor w -text "$text" \ - -command "$w .$w \"$text\"" - pack .f0.x$menu_num -pady 0 -side top -fill x -in .f0.$myframe -} - -proc load_configfile { w title func } { - catch {destroy $w} - toplevel $w -class Dialog - global loadfile - frame $w.x - label $w.bm -bitmap questhead - pack $w.bm -pady 10 -side top -padx 10 - label $w.x.l -text "Enter filename:" -relief raised - entry $w.x.x -width 35 -relief sunken -borderwidth 2 \ - -textvariable loadfile - pack $w.x.l $w.x.x -anchor w -side left - pack $w.x -side top -pady 10 - wm title $w "$title" - - set oldFocus [focus] - frame $w.f - button $w.f.back -text "OK" -width 20 \ - -command "destroy $w; focus $oldFocus;$func .fileio" - button $w.f.canc -text "Cancel" \ - -width 20 -command "destroy $w; focus $oldFocus" - pack $w.f.back $w.f.canc -side left -pady 10 -padx 45 - pack $w.f -pady 10 -side bottom -padx 10 -anchor w - focus $w - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - wm geometry $w +$winx+$winy -} - -bind all {maybe_exit .maybe} - -proc maybe_exit { w } { - catch {destroy $w} - toplevel $w -class Dialog - label $w.bm -bitmap questhead - pack $w.bm -pady 10 -side top -padx 10 - message $w.m -width 400 -aspect 300 \ - -text "Changes will be lost. Are you sure?" -relief flat - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Are you sure?" - - set oldFocus [focus] - frame $w.f - button $w.f.back -text "OK" -width 20 \ - -command "exit 1" - button $w.f.canc -text "Cancel" \ - -width 20 -command "destroy $w; focus $oldFocus" - pack $w.f.back $w.f.canc -side left -pady 10 -padx 45 - pack $w.f -pady 10 -side bottom -padx 10 -anchor w - bind $w "exit 1" - bind $w "destroy $w; focus $oldFocus" - focus $w - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - wm geometry $w +$winx+$winy -} - -proc read_config_file { w } { - global loadfile - if { [string length $loadfile] != 0 && [file readable $loadfile] == 1 } then { - read_config $loadfile - } else { - catch {destroy $w} - toplevel $w -class Dialog - message $w.m -width 400 -aspect 300 -text \ - "Unable to read file $loadfile" \ - -relief raised - label $w.bm -bitmap error - pack $w.bm $w.m -pady 10 -side top -padx 10 - wm title $w "Xconfig Internal Error" - - set oldFocus [focus] - frame $w.f - button $w.f.back -text "Bummer" \ - -width 10 -command "destroy $w; focus $oldFocus" - pack $w.f.back -side bottom -pady 10 -anchor s - pack $w.f -pady 10 -side top -padx 10 -anchor s - focus $w - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - wm geometry $w +$winx+$winy - } -} - -proc write_config_file { w } { - global loadfile - if { [string length $loadfile] != 0 - && ([file writable $loadfile] == 1 || ([file exists $loadfile] == 0 && [file writable [file dirname $loadfile]] == 1)) } then { - writeconfig $loadfile .null - } else { - catch {destroy $w} - toplevel $w -class Dialog - message $w.m -width 400 -aspect 300 -text \ - "Unable to write file $loadfile" \ - -relief raised - label $w.bm -bitmap error - pack $w.bm $w.m -pady 10 -side top -padx 10 - wm title $w "Xconfig Internal Error" - - set oldFocus [focus] - frame $w.f - button $w.f.back -text "OK" \ - -width 10 -command "destroy $w; focus $oldFocus" - pack $w.f.back -side bottom -pady 10 -anchor s - pack $w.f -pady 10 -side top -padx 10 -anchor s - focus $w - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - wm geometry $w +$winx+$winy - } -} - -proc read_config { filename } { - set file1 [open $filename r] - clear_choices - while { [gets $file1 line] >= 0} { - if [regexp {([0-9A-Za-z_]+)=([ynm])} $line foo var value] { - if { $value == "y" } then { set cmd "global $var; set $var 1" } - if { $value == "n" } then { set cmd "global $var; set $var 0" } - if { $value == "m" } then { set cmd "global $var; set $var 2" } - eval $cmd - } - if [regexp {# ([0-9A-Za-z_]+) is not set} $line foo var] { - set cmd "global $var; set $var 0" - eval $cmd - } - if [regexp {([0-9A-Za-z_]+)=([0-9A-Fa-f]+)} $line foo var value] { - set cmd "global $var; set $var $value" - eval $cmd - } - if [regexp {([0-9A-Za-z_]+)="([^"]*)"} $line foo var value] { - set cmd "global $var; set $var \"$value\"" - eval $cmd - } - } - close $file1 - update_choices - update_mainmenu -} -proc write_comment { file1 file2 text } { - puts $file1 "" - puts $file1 "#" - puts $file1 "# $text" - puts $file1 "#" - puts $file2 "/*" - puts $file2 " * $text" - puts $file2 " */" -} - -proc effective_dep { deplist } { - global CONFIG_MODULES - set depend 1 - foreach i $deplist { - if {$i == 0} then {set depend 0} - if {$i == 2 && $depend == 1} then {set depend 2} - } - if {$depend == 2 && $CONFIG_MODULES == 0} then {set depend 0} - return $depend -} - -proc sync_tristate { var dep } { - global CONFIG_MODULES - if {$dep == 0 && ($var == 1 || $var == 2)} then { - set var 0 - } elseif {$dep == 2 && $var == 1} then { - set var 2 - } elseif {$var == 2 && $CONFIG_MODULES == 0} then { - if {$dep == 1} then {set var 1} else {set var 0} - } - return $var -} - -proc sync_bool { var dep modset } { - set var [sync_tristate $var $dep] - if {$dep == 2 && $var == 2} then { - set var $modset - } - return $var -} - -proc write_tristate { file1 file2 varname variable deplist modset } { - set variable [sync_tristate $variable [effective_dep $deplist]] - if { $variable == 2 } \ - then { set variable $modset } - if { $variable == 1 } \ - then { puts $file1 "$varname=y"; \ - puts $file2 "#define $varname 1" } \ - elseif { $variable == 2 } \ - then { puts $file1 "$varname=m"; \ - puts $file2 "#undef $varname"; \ - puts $file2 "#define ${varname}_MODULE 1" } \ - elseif { $variable == 0 } \ - then { puts $file1 "# $varname is not set"; \ - puts $file2 "#undef $varname"} \ - else { \ - puts stdout "ERROR - Attempting to write value for unconfigured variable ($varname)." \ - } -} - -proc write_int { file1 file2 varname variable dep } { - if { $dep == 0 } \ - then { puts $file1 "# $varname is not set"; \ - puts $file2 "#undef $varname"} \ - else { - puts $file1 "$varname=$variable"; \ - puts $file2 "#define $varname ($variable)"; \ - } -} - -proc write_hex { file1 file2 varname variable dep } { - if { $dep == 0 } \ - then { puts $file1 "# $varname is not set"; \ - puts $file2 "#undef $varname"} \ - else { - puts $file1 "$varname=$variable"; \ - puts -nonewline $file2 "#define $varname "; \ - puts $file2 [exec echo $variable | sed s/^0\[xX\]//]; \ - } -} - -proc write_string { file1 file2 varname variable dep } { - if { $dep == 0 } \ - then { puts $file1 "# $varname is not set"; \ - puts $file2 "#undef $varname"} \ - else { - puts $file1 "$varname=\"$variable\""; \ - puts $file2 "#define $varname \"$variable\""; \ - } -} - -proc option_name {w mnum line text helpidx} { - button $w.x$line.l -text "$text" -relief groove -anchor w - $w.x$line.l configure -activefore [cget $w.x$line.l -fg] \ - -activeback [cget $w.x$line.l -bg] - button $w.x$line.help -text "Help" -relief raised \ - -command "dohelp .dohelp $helpidx .menu$mnum" - pack $w.x$line.help -side right -fill y - pack $w.x$line.l -side right -fill both -expand on -} - -proc toggle_switch2 {w mnum line text variable} { - frame $w.x$line -relief sunken - radiobutton $w.x$line.y -text "y" -variable $variable -value 1 \ - -relief groove -width 2 -command "update_active" -# radiobutton $w.x$line.m -text "-" -variable $variable -value 2 \ -# -relief groove -width 2 -command "update_active" - radiobutton $w.x$line.n -text "n" -variable $variable -value 0 \ - -relief groove -width 2 -command "update_active" - - option_name $w $mnum $line $text $variable - - pack $w.x$line.n $w.x$line.y -side right -fill y -} - -proc toggle_switch3 {w mnum line text variable} { - frame $w.x$line -relief sunken - radiobutton $w.x$line.y -text "y" -variable $variable -value 1 \ - -relief groove -width 2 -command "update_active" - radiobutton $w.x$line.m -text "m" -variable $variable -value 2 \ - -relief groove -width 2 -command "update_active" - radiobutton $w.x$line.n -text "n" -variable $variable -value 0 \ - -relief groove -width 2 -command "update_active" - - option_name $w $mnum $line $text $variable - - global CONFIG_MODULES - if {($CONFIG_MODULES == 0)} then { - $w.x$line.m configure -state disabled - } - pack $w.x$line.n $w.x$line.m $w.x$line.y -side right -fill y -} - -proc bool {w mnum line text variable} { - toggle_switch2 $w $mnum $line $text $variable -# $w.x$line.m configure -state disabled - pack $w.x$line -anchor w -fill both -expand on -} - -proc tristate {w mnum line text variable } { - toggle_switch3 $w $mnum $line $text $variable - pack $w.x$line -anchor w -fill both -expand on -} - -proc dep_tristate {w mnum line text variable } { - tristate $w $mnum $line $text $variable -} - -proc dep_bool {w mnum line text variable } { - bool $w $mnum $line $text $variable -} - -proc int { w mnum line text variable } { - frame $w.x$line - entry $w.x$line.x -width 11 -relief sunken -borderwidth 2 \ - -textvariable $variable - option_name $w $mnum $line $text $variable - pack $w.x$line.x -anchor w -side right -fill y - pack $w.x$line -anchor w -fill both -expand on -} - -proc hex { w mnum line text variable } { - int $w $mnum $line $text $variable -} - -proc istring { w mnum line text variable } { - frame $w.x$line - entry $w.x$line.x -width 18 -relief sunken -borderwidth 2 \ - -textvariable $variable - option_name $w $mnum $line $text $variable - pack $w.x$line.x -anchor w -side right -fill y - pack $w.x$line -anchor w -fill both -expand on -} - -proc minimenu { w mnum line text variable helpidx } { - frame $w.x$line - menubutton $w.x$line.x -textvariable $variable -menu \ - $w.x$line.x.menu -relief raised \ - -anchor w - option_name $w $mnum $line $text $helpidx - pack $w.x$line.x -anchor w -side right -fill y - pack $w.x$line -anchor w -fill both -expand on -} - -proc menusplit {w m n} { - if { $n > 2 } then { - update idletasks - set menuoptsize [expr [$m yposition 2] - [$m yposition 1]] - set maxsize [winfo screenheight $w] - set splitpoint [expr $maxsize * 4 / 5 / $menuoptsize - 1] - for {set i [expr $splitpoint + 1]} {$i <= $n} {incr i $splitpoint} { - $m entryconfigure $i -columnbreak 1 - } - } -} - -proc menutitle {text menu w} { - wm title $w "$text" -} - -proc submenu { w mnum line text subnum } { - frame $w.x$line - button $w.x$line.l -text "" -width 9 -relief groove - $w.x$line.l configure -activefore [cget $w.x$line.l -fg] \ - -activeback [cget $w.x$line.l -bg] -state disabled - button $w.x$line.m -text "$text" -relief raised -anchor w \ - -command "catch {destroy .menu$subnum}; menu$subnum .menu$subnum \"$text\"" - pack $w.x$line.l -side left -fill both - pack $w.x$line.m -anchor w -side right -fill both -expand on - pack $w.x$line -anchor w -fill both -expand on -} - -proc comment {w mnum line text } { - frame $w.x$line - button $w.x$line.l -text "" -width 15 -relief groove - $w.x$line.l configure -activefore [cget $w.x$line.l -fg] \ - -activeback [cget $w.x$line.l -bg] -state disabled - button $w.x$line.m -text "$text" -relief groove -anchor w - $w.x$line.m configure -activefore [cget $w.x$line.m -fg] \ - -activeback [cget $w.x$line.m -bg] - pack $w.x$line.l -side left -fill both - pack $w.x$line.m -anchor w -side right -fill both -expand on - pack $w.x$line -anchor w -fill both -expand on -} - -proc readhelp {tag fn} { - set message "" - set b 0 - if { [file readable $fn] == 1} then { - set fhandle [open $fn r] - while {[gets $fhandle inline] >= 0} { - if { $b == 0 } { - if { [regexp $tag $inline ] } { - set b 1 - set message "$inline:\n" - } - } else { - if { [regexp {^[^ \t]} $inline]} { - break - } - set message "$message\n$inline" - } - } - close $fhandle - } - return $message -} - -proc dohelp {w var parent} { - catch {destroy $w} - toplevel $w -class Dialog - - set filefound 0 - set found 0 - set lineno 0 - - if { [file readable config.help] == 1} then { - set filefound 1 - # First escape sed regexp special characters in var: - set var [exec echo "$var" | sed s/\[\]\[\/.^$*\]/\\\\&/g] - # Now pick out right help text: - set message [readhelp $var config.help] - set found [expr [string length "$message"] > 0] - } - - frame $w.f1 - pack $w.f1 -fill both -expand on - - # Do the OK button - # - set oldFocus [focus] - frame $w.f2 - button $w.f2.ok -text "OK" \ - -width 10 -command "destroy $w; catch {focus $oldFocus}" - pack $w.f2.ok -side bottom -pady 6 -anchor n - pack $w.f2 -side bottom -padx 10 -anchor s - - scrollbar $w.f1.vscroll -command "$w.f1.canvas yview" - pack $w.f1.vscroll -side right -fill y - - canvas $w.f1.canvas -relief flat -borderwidth 0 \ - -yscrollcommand "$w.f1.vscroll set" - frame $w.f1.f - pack $w.f1.canvas -side right -fill y -expand on - - if { $found == 0 } then { - if { $filefound == 0 } then { - message $w.f1.f.m -width 750 -aspect 300 -relief flat -text \ - "No help available - unable to open file config.help." - } else { - message $w.f1.f.m -width 400 -aspect 300 -relief flat -text \ - "No help available for $var" - } - label $w.f1.bm -bitmap error - wm title $w "RTFM" - } else { - text $w.f1.f.m -width 73 -relief flat -wrap word - $w.f1.f.m insert 0.0 $message - $w.f1.f.m conf -state disabled -height [$w.f1.f.m index end] - - label $w.f1.bm -bitmap info - wm title $w "Configuration help" - } - pack $w.f1.f.m -side left - pack $w.f1.bm $w.f1.f -side left -padx 10 - - focus $w - set winx [expr [winfo x $parent]+20] - set winy [expr [winfo y $parent]+20] - wm geometry $w +$winx+$winy - set sizok [expr [winfo reqheight $w.f2.ok] + 12] - set maxy [expr [winfo screenheight .] * 3 / 4] - set canvtotal [winfo reqheight $w.f1.f.m] - if [expr $sizok + $canvtotal < $maxy] { - set sizy $canvtotal - } else { - set sizy [expr $maxy - $sizok] - } - $w.f1.canvas configure -height $sizy -width [winfo reqwidth $w.f1.f.m] \ - -scrollregion "0 0 [winfo reqwidth $w.f1.f.m] \ - [winfo reqheight $w.f1.f.m]" - $w.f1.canvas create window 0 0 -anchor nw -window $w.f1.f - update idletasks - - set maxy [winfo screenheight .] - if [expr $sizok + $canvtotal < $maxy] { - set sizy [expr $sizok + $canvtotal] - } else { - set sizy $maxy - } - wm maxsize $w [winfo width $w] $sizy -} - -bind all { catch {exec cp -f .config .config.old}; \ - writeconfig .config config.h; wrapup .wrap } - -proc wrapup {w } { - catch {destroy $w} - toplevel $w -class Dialog - - global CONFIG_MODVERSIONS; vfix CONFIG_MODVERSIONS - message $w.m -width 460 -aspect 300 -relief raised -text \ - "End of design configuration. " - label $w.bm -bitmap info - pack $w.bm $w.m -pady 10 -side top -padx 10 - wm title $w "LEON build instructions" - - set oldFocus [focus] - frame $w.f - button $w.f.back -text "OK" \ - -width 10 -command "exit 2" - pack $w.f.back -side bottom -pady 10 -anchor s - pack $w.f -pady 10 -side top -padx 10 -anchor s - focus $w - bind $w "exit 2" - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - wm geometry $w +$winx+$winy - -} - -proc unregister_active {num} { - global active_menus - set index [lsearch -exact $active_menus $num] - if {$index != -1} then {set active_menus [lreplace $active_menus $index $index]} -} - -proc update_active {} { - global active_menus total_menus - set max 0 - if {[llength $active_menus] > 0} then { - set max [lindex $active_menus end] - update_define [toplevel_menu [lindex $active_menus 0]] $max 0 - } - foreach i $active_menus { - if {[winfo exists .menu$i] == 0} then { - unregister_active $i - } else { - update_menu$i - } - } - update_define [expr $max + 1] $total_menus 1 - update_mainmenu -} - -proc configure_entry {w option items} { - foreach i $items { - $w.$i configure -state $option - } -} - -proc validate_int {name val default} { - if {([exec echo $val | sed s/^-//g | tr -d \[:digit:\] ] != "")} then { - global $name; set $name $default - } -} - -proc validate_hex {name val default} { - if {([exec echo $val | tr -d \[:xdigit:\] ] != "")} then { - global $name; set $name $default - } -} - -proc update_define {first last allow_update} { - for {set i $first} {$i <= $last} {incr i} { - update_define_menu$i - if {$allow_update == 1} then update - } -} - -# -# Next set up the particulars for the top level menu, and define a few -# buttons which we will stick down at the bottom. -# - -frame .f0 -frame .f0.left -frame .f0.middle -frame .f0.right - -set active_menus [list] -set processed_top_level 0 -set ARCH sparc -set menus_per_column 4 -set total_menus 19 - -proc toplevel_menu {num} { - if {$num == 4} then {return 3} - if {$num == 5} then {return 3} - if {$num == 6} then {return 3} - if {$num == 7} then {return 3} - if {$num == 8} then {return 3} - if {$num == 9} then {return 3} - if {$num == 10} then {return 3} - if {$num == 14} then {return 13} - if {$num == 15} then {return 14} - if {$num == 16} then {return 13} - if {$num == 17} then {return 13} - if {$num == 18} then {return 13} - return $num -} - -mainmenu_name "LEON3MP LatticeECP3 Versa Design Configuration" -menu_option menu1 1 "Synthesis " -proc menu1 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 1} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 1]] - message $w.m -width 400 -aspect 300 -text \ - "Synthesis " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Synthesis " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 1; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 1; menu2 .menu2 \"$title\"" - frame $w.f - button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 1" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 1; menu0 .menu0 \"$title\"" - $w.f.prev configure -state disabled - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - global tmpvar_0 - minimenu $w.config.f 1 0 "Target technology " tmpvar_0 CONFIG_SYN_INFERRED - menu $w.config.f.x0.x.menu -tearoffcommand "menutitle \"Target technology \"" - $w.config.f.x0.x.menu add radiobutton -label "Inferred" -variable tmpvar_0 -value "Inferred" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Altera-Stratix" -variable tmpvar_0 -value "Altera-Stratix" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Altera-StratixII" -variable tmpvar_0 -value "Altera-StratixII" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Altera-StratixIII" -variable tmpvar_0 -value "Altera-StratixIII" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Altera-CycloneIII" -variable tmpvar_0 -value "Altera-CycloneIII" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Altera-Others" -variable tmpvar_0 -value "Altera-Others" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Atmel-ATC18" -variable tmpvar_0 -value "Atmel-ATC18" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Lattice-EC/ECP/XP" -variable tmpvar_0 -value "Lattice-EC/ECP/XP" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Quicklogic-Eclipse" -variable tmpvar_0 -value "Quicklogic-Eclipse" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex" -variable tmpvar_0 -value "Xilinx-Virtex" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-VirtexE" -variable tmpvar_0 -value "Xilinx-VirtexE" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex2" -variable tmpvar_0 -value "Xilinx-Virtex2" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 20 - global tmpvar_1 - minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" - $w.config.f.x1.x.menu add radiobutton -label "Inferred" -variable tmpvar_1 -value "Inferred" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "UMC18" -variable tmpvar_1 -value "UMC18" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Virage" -variable tmpvar_1 -value "Virage" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Virage-TSMC90" -variable tmpvar_1 -value "Virage-TSMC90" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 4 - bool $w.config.f 1 2 "Infer RAM" CONFIG_SYN_INFER_RAM - bool $w.config.f 1 3 "Infer pads" CONFIG_SYN_INFER_PADS - bool $w.config.f 1 4 "Disable asynchronous reset" CONFIG_SYN_NO_ASYNC - bool $w.config.f 1 5 "Enable scan support " CONFIG_SYN_SCAN - - - - focus $w - update_active - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu1 {} { - global CONFIG_SYN_INFERRED - global CONFIG_SYN_CUSTOM1 - global CONFIG_SYN_ATC18 - global CONFIG_SYN_TSMC90 - global CONFIG_SYN_UMC - global CONFIG_SYN_RHUMC - global CONFIG_SYN_ARTISAN - 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}} - global CONFIG_SYN_INFER_RAM - if {($CONFIG_SYN_INFERRED != 1)} then { - configure_entry .menu1.config.f.x2 normal {n l y}} else {configure_entry .menu1.config.f.x2 disabled {y n l}} - global CONFIG_SYN_INFER_PADS - if {($CONFIG_SYN_INFERRED != 1)} then { - configure_entry .menu1.config.f.x3 normal {n l y}} else {configure_entry .menu1.config.f.x3 disabled {y n l}} -} - - -proc update_define_menu1 {} { - update_define_mainmenu - global CONFIG_MODULES - global tmpvar_0 - global CONFIG_SYN_INFERRED - if {$tmpvar_0 == "Inferred"} then {set CONFIG_SYN_INFERRED 1} else {set CONFIG_SYN_INFERRED 0} - global CONFIG_SYN_STRATIX - if {$tmpvar_0 == "Altera-Stratix"} then {set CONFIG_SYN_STRATIX 1} else {set CONFIG_SYN_STRATIX 0} - global CONFIG_SYN_STRATIXII - if {$tmpvar_0 == "Altera-StratixII"} then {set CONFIG_SYN_STRATIXII 1} else {set CONFIG_SYN_STRATIXII 0} - global CONFIG_SYN_STRATIXIII - if {$tmpvar_0 == "Altera-StratixIII"} then {set CONFIG_SYN_STRATIXIII 1} else {set CONFIG_SYN_STRATIXIII 0} - global CONFIG_SYN_CYCLONEIII - if {$tmpvar_0 == "Altera-CycloneIII"} then {set CONFIG_SYN_CYCLONEIII 1} else {set CONFIG_SYN_CYCLONEIII 0} - global CONFIG_SYN_ALTERA - if {$tmpvar_0 == "Altera-Others"} then {set CONFIG_SYN_ALTERA 1} else {set CONFIG_SYN_ALTERA 0} - global CONFIG_SYN_ATC18 - if {$tmpvar_0 == "Atmel-ATC18"} then {set CONFIG_SYN_ATC18 1} else {set CONFIG_SYN_ATC18 0} - global CONFIG_SYN_LATTICE - if {$tmpvar_0 == "Lattice-EC/ECP/XP"} then {set CONFIG_SYN_LATTICE 1} else {set CONFIG_SYN_LATTICE 0} - global CONFIG_SYN_ECLIPSE - if {$tmpvar_0 == "Quicklogic-Eclipse"} then {set CONFIG_SYN_ECLIPSE 1} else {set CONFIG_SYN_ECLIPSE 0} - global CONFIG_SYN_UMC - if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} - global CONFIG_SYN_SPARTAN3 - if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} - global CONFIG_SYN_SPARTAN3E - if {$tmpvar_0 == "Xilinx-Spartan3E"} then {set CONFIG_SYN_SPARTAN3E 1} else {set CONFIG_SYN_SPARTAN3E 0} - global CONFIG_SYN_SPARTAN6 - if {$tmpvar_0 == "Xilinx-Spartan6"} then {set CONFIG_SYN_SPARTAN6 1} else {set CONFIG_SYN_SPARTAN6 0} - global CONFIG_SYN_VIRTEX - if {$tmpvar_0 == "Xilinx-Virtex"} then {set CONFIG_SYN_VIRTEX 1} else {set CONFIG_SYN_VIRTEX 0} - global CONFIG_SYN_VIRTEXE - if {$tmpvar_0 == "Xilinx-VirtexE"} then {set CONFIG_SYN_VIRTEXE 1} else {set CONFIG_SYN_VIRTEXE 0} - global CONFIG_SYN_VIRTEX2 - if {$tmpvar_0 == "Xilinx-Virtex2"} then {set CONFIG_SYN_VIRTEX2 1} else {set CONFIG_SYN_VIRTEX2 0} - global CONFIG_SYN_VIRTEX4 - if {$tmpvar_0 == "Xilinx-Virtex4"} then {set CONFIG_SYN_VIRTEX4 1} else {set CONFIG_SYN_VIRTEX4 0} - global CONFIG_SYN_VIRTEX5 - if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} - global CONFIG_SYN_VIRTEX6 - if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} - global tmpvar_1 - global CONFIG_MEM_INFERRED - if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} - global CONFIG_MEM_UMC - if {$tmpvar_1 == "UMC18"} then {set CONFIG_MEM_UMC 1} else {set CONFIG_MEM_UMC 0} - global CONFIG_MEM_VIRAGE - if {$tmpvar_1 == "Virage"} then {set CONFIG_MEM_VIRAGE 1} else {set CONFIG_MEM_VIRAGE 0} - global CONFIG_MEM_VIRAGE90 - if {$tmpvar_1 == "Virage-TSMC90"} then {set CONFIG_MEM_VIRAGE90 1} else {set CONFIG_MEM_VIRAGE90 0} - global CONFIG_SYN_INFER_RAM - if {($CONFIG_SYN_INFERRED != 1)} then { - set CONFIG_SYN_INFER_RAM [expr $CONFIG_SYN_INFER_RAM&15]} else {set CONFIG_SYN_INFER_RAM [expr $CONFIG_SYN_INFER_RAM|16]} - global CONFIG_SYN_INFER_PADS - if {($CONFIG_SYN_INFERRED != 1)} then { - set CONFIG_SYN_INFER_PADS [expr $CONFIG_SYN_INFER_PADS&15]} else {set CONFIG_SYN_INFER_PADS [expr $CONFIG_SYN_INFER_PADS|16]} -} - - -menu_option menu2 2 "Clock generation" -proc menu2 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 2} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 2]] - message $w.m -width 400 -aspect 300 -text \ - "Clock generation" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Clock generation" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 2; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 2; menu3 .menu3 \"$title\"" - frame $w.f - button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 2" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 2; menu1 .menu1 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 2; menu1 .menu1 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - global tmpvar_2 - minimenu $w.config.f 2 0 "Clock generator " tmpvar_2 CONFIG_CLK_INFERRED - menu $w.config.f.x0.x.menu -tearoffcommand "menutitle \"Clock generator \"" - $w.config.f.x0.x.menu add radiobutton -label "Inferred" -variable tmpvar_2 -value "Inferred" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Actel-HCLKBUF" -variable tmpvar_2 -value "Actel-HCLKBUF" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Aeroflex-UT130HBD" -variable tmpvar_2 -value "Aeroflex-UT130HBD" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Altera-ALTPLL" -variable tmpvar_2 -value "Altera-ALTPLL" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Lattice-EXPLL" -variable tmpvar_2 -value "Lattice-EXPLL" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Proasic3-PLL" -variable tmpvar_2 -value "Proasic3-PLL" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Proasic3E-PLL" -variable tmpvar_2 -value "Proasic3E-PLL" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Proasic3L-PLL" -variable tmpvar_2 -value "Proasic3L-PLL" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 - int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL - int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV - int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV - int $w.config.f 2 4 "Outout division factor, 2nd clk (0 - 32, see help)" CONFIG_OCLKB_DIV - int $w.config.f 2 5 "Outout division factor, 3rd clk (0 - 32, see help)" CONFIG_OCLKC_DIV - bool $w.config.f 2 6 "Enable Xilinx CLKDLL for PCI clock" CONFIG_PCI_CLKDLL - bool $w.config.f 2 7 "Disable external feedback for SDRAM clock" CONFIG_CLK_NOFB - bool $w.config.f 2 8 "Use PCI clock as system clock" CONFIG_PCI_SYSCLK - - - - focus $w - update_active - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu2 {} { - global CONFIG_CLK_DCM - global CONFIG_CLK_ALTDLL - global CONFIG_CLK_LATDLL - global CONFIG_CLK_PRO3PLL - global CONFIG_CLK_PRO3EPLL - global CONFIG_CLK_PRO3LPLL - global CONFIG_CLK_CLKDLL - global CONFIG_CLK_LIB18T - global CONFIG_CLK_FUSPLL - global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} - global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} - global CONFIG_OCLK_DIV - if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} - global CONFIG_OCLKB_DIV - if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu2.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu2.config.f.x4.l configure -state normal; } else {.menu2.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu2.config.f.x4.l configure -state disabled} - global CONFIG_OCLKC_DIV - if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu2.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu2.config.f.x5.l configure -state normal; } else {.menu2.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu2.config.f.x5.l configure -state disabled} - global CONFIG_PCI_CLKDLL - if {($CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_DCM == 1)} then { - configure_entry .menu2.config.f.x6 normal {n l y}} else {configure_entry .menu2.config.f.x6 disabled {y n l}} - global CONFIG_CLK_NOFB - if {($CONFIG_CLK_DCM == 1)} then { - configure_entry .menu2.config.f.x7 normal {n l y}} else {configure_entry .menu2.config.f.x7 disabled {y n l}} - global CONFIG_PCI_ENABLE - global CONFIG_PCI_SYSCLK - if {($CONFIG_PCI_ENABLE != 1)} then { - configure_entry .menu2.config.f.x8 normal {n l y}} else {configure_entry .menu2.config.f.x8 disabled {y n l}} -} - - -proc update_define_menu2 {} { - update_define_mainmenu - global CONFIG_MODULES - global tmpvar_2 - global CONFIG_CLK_INFERRED - if {$tmpvar_2 == "Inferred"} then {set CONFIG_CLK_INFERRED 1} else {set CONFIG_CLK_INFERRED 0} - global CONFIG_CLK_HCLKBUF - if {$tmpvar_2 == "Actel-HCLKBUF"} then {set CONFIG_CLK_HCLKBUF 1} else {set CONFIG_CLK_HCLKBUF 0} - global CONFIG_CLK_UT130HBD - if {$tmpvar_2 == "Aeroflex-UT130HBD"} then {set CONFIG_CLK_UT130HBD 1} else {set CONFIG_CLK_UT130HBD 0} - global CONFIG_CLK_ALTDLL - if {$tmpvar_2 == "Altera-ALTPLL"} then {set CONFIG_CLK_ALTDLL 1} else {set CONFIG_CLK_ALTDLL 0} - global CONFIG_CLK_LATDLL - if {$tmpvar_2 == "Lattice-EXPLL"} then {set CONFIG_CLK_LATDLL 1} else {set CONFIG_CLK_LATDLL 0} - global CONFIG_CLK_PRO3PLL - if {$tmpvar_2 == "Proasic3-PLL"} then {set CONFIG_CLK_PRO3PLL 1} else {set CONFIG_CLK_PRO3PLL 0} - global CONFIG_CLK_PRO3EPLL - if {$tmpvar_2 == "Proasic3E-PLL"} then {set CONFIG_CLK_PRO3EPLL 1} else {set CONFIG_CLK_PRO3EPLL 0} - global CONFIG_CLK_PRO3LPLL - if {$tmpvar_2 == "Proasic3L-PLL"} then {set CONFIG_CLK_PRO3LPLL 1} else {set CONFIG_CLK_PRO3LPLL 0} - global CONFIG_CLK_FUSPLL - if {$tmpvar_2 == "Fusion-PLL"} then {set CONFIG_CLK_FUSPLL 1} else {set CONFIG_CLK_FUSPLL 0} - global CONFIG_CLK_LIB18T - if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} - global CONFIG_CLK_RHUMC - if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} - global CONFIG_CLK_CLKDLL - if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} - global CONFIG_CLK_DCM - if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} - global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} - global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} - global CONFIG_OCLK_DIV - if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} - global CONFIG_OCLKB_DIV - if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLKB_DIV "$CONFIG_OCLKB_DIV" 0} - global CONFIG_OCLKC_DIV - if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLKC_DIV "$CONFIG_OCLKC_DIV" 0} - global CONFIG_PCI_CLKDLL - if {($CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_DCM == 1)} then { - set CONFIG_PCI_CLKDLL [expr $CONFIG_PCI_CLKDLL&15]} else {set CONFIG_PCI_CLKDLL [expr $CONFIG_PCI_CLKDLL|16]} - global CONFIG_CLK_NOFB - if {($CONFIG_CLK_DCM == 1)} then { - set CONFIG_CLK_NOFB [expr $CONFIG_CLK_NOFB&15]} else {set CONFIG_CLK_NOFB [expr $CONFIG_CLK_NOFB|16]} - global CONFIG_PCI_ENABLE - global CONFIG_PCI_SYSCLK - if {($CONFIG_PCI_ENABLE != 1)} then { - set CONFIG_PCI_SYSCLK [expr $CONFIG_PCI_SYSCLK&15]} else {set CONFIG_PCI_SYSCLK [expr $CONFIG_PCI_SYSCLK|16]} -} - - -menu_option menu3 3 "Processor " -proc menu3 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 3} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 3]] - message $w.m -width 400 -aspect 300 -text \ - "Processor " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Processor " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 3; break" - set nextscript "catch {focus $oldFocus}; menu4 .menu4 \"$title\"" - frame $w.f - button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 3" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 3; menu2 .menu2 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 3; menu2 .menu2 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 - int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 - - - - focus $w - update_active - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu3 {} { - global CONFIG_LEON3 - global CONFIG_PROC_NUM - 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} -} - - -proc update_define_menu3 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_PROC_NUM - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} -} - - -proc menu4 {w title} { - set oldFocus [focus] - catch {focus .menu3} - catch {destroy $w; unregister_active 4} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 4]] - message $w.m -width 400 -aspect 300 -text \ - "Integer unit " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Integer unit " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 4; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 4; menu5 .menu5 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 4" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 4; menu3 .menu3 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 4; menu3 .menu3 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS - bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 3 - bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED - menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 4 - bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP - bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT - bool $w.config.f 4 7 "Disable tagged ADD/SUB and CASA" CONFIG_NOTAG - int $w.config.f 4 8 "Load delay" CONFIG_IU_LDELAY - int $w.config.f 4 9 "Hardware watchpoints" CONFIG_IU_WATCHPOINTS - bool $w.config.f 4 10 "Enable power-down mode " CONFIG_PWD - hex $w.config.f 4 11 " Reset start address (addr\[31:12\]) " CONFIG_IU_RSTADDR - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor "} - set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu4 {} { - global CONFIG_LEON3 - global CONFIG_IU_NWINDOWS - 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} - global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { - configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} - global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} - global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} - global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} - global CONFIG_IU_LDELAY - 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} - global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} - global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} - global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} -} - - -proc update_define_menu4 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} - global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 - global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} - global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} - global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} - global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { - set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 - global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} - global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} - global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} - global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} - global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} - global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} - global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} - global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} - global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} - global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} - global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} -} - - -proc menu5 {w title} { - set oldFocus [focus] - catch {focus .menu3} - catch {destroy $w; unregister_active 5} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 5]] - message $w.m -width 400 -aspect 300 -text \ - "Floating-point unit" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Floating-point unit" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 5; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 5; menu6 .menu6 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 5" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 5; menu4 .menu4 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 5; menu4 .menu4 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 4 - bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH - global tmpvar_7 - minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 - menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 3 - bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor "} - set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu5 {} { - global CONFIG_LEON3 - global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} - global CONFIG_FPU_GRFPU - 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}} - global CONFIG_HAS_SHARED_GRFPU - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { - configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} - global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} - global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} -} - - -proc update_define_menu5 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 - global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} - global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} - global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 - global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} - global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} - global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} - global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global CONFIG_HAS_SHARED_GRFPU - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { - set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} - global tmpvar_7 - global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} - global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} - global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} - global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} -} - - -proc menu6 {w title} { - set oldFocus [focus] - catch {focus .menu3} - catch {destroy $w; unregister_active 6} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 6]] - message $w.m -width 400 -aspect 300 -text \ - "Cache system" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Cache system" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 6; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 6; menu7 .menu7 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 6" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 6; menu5 .menu5 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 6; menu5 .menu5 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND - menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 4 - bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK - bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 - menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" - menusplit $w $w.config.f.x7.x.menu 9 - hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART - bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 - menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" - menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 - menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" - menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 - menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" - menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND - menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" - menusplit $w $w.config.f.x13.x.menu 4 - bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK - bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP - bool $w.config.f 6 16 "Fast snooping " CONFIG_DCACHE_SNOOP_FAST - bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG - hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED - bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 - menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" - menusplit $w $w.config.f.x20.x.menu 9 - hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor "} - set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu6 {} { - global CONFIG_LEON3 - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} - global CONFIG_ICACHE_ASSO1 - 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}} - global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} - global CONFIG_MMU_ENABLE - global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { - configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} - global CONFIG_ICACHE_LRSTART - 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} - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} - global CONFIG_DCACHE_ASSO1 - 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}} - global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} - global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { - configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} - global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { - configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} - global CONFIG_CACHE_FIXED - 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} - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { - configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} - global CONFIG_DCACHE_LRSTART - 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} -} - - -proc update_define_menu6 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 - global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} - global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} - global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} - global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 - global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} - global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} - global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} - global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} - global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} - global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} - global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} - global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} - global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 - global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} - global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 - global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} - global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} - global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} - global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} - global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} - global CONFIG_MMU_ENABLE - global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { - set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 - global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} - global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} - global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} - global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} - global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} - global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} - global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} - global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} - global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 - global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} - global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} - global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} - global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 - global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} - global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} - global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} - global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} - global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} - global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} - global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} - global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} - global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 - global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} - global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 - global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} - global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} - global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} - global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} - global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} - global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { - set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} - global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { - set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { - set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 - global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} - global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} - global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} - global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} - global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} - global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} - global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} - global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} - global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} -} - - -proc menu7 {w title} { - set oldFocus [focus] - catch {focus .menu3} - catch {destroy $w; unregister_active 7} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 7]] - message $w.m -width 400 -aspect 300 -text \ - "MMU" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "MMU" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 7; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 7; menu8 .menu8 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 7" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 7; menu6 .menu6 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 7; menu6 .menu6 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 - global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 - menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 - bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K - menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" - menusplit $w $w.config.f.x6.x.menu 5 - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor "} - set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu7 {} { - global CONFIG_LEON3 - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} - global CONFIG_MMU_SPLIT - 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}} - global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} -} - - -proc update_define_menu7 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 - global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} - global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 - global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} - global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 - global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} - global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} - global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} - global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} - global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 - global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} - global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} - global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} - global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} - global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} - global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 - global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} - global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} - global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} - global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} - global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} -} - - -proc menu8 {w title} { - set oldFocus [focus] - catch {focus .menu3} - catch {destroy $w; unregister_active 8} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 8]] - message $w.m -width 400 -aspect 300 -text \ - "Debug Support Unit " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Debug Support Unit " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 8; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 8; menu9 .menu9 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 8" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 8; menu7 .menu7 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 8; menu7 .menu7 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE - bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 5 - bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 - menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor "} - set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu8 {} { - global CONFIG_LEON3 - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { - configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { - configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} -} - - -proc update_define_menu8 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { - set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 - global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} - global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} - global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} - global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} - global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { - set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 - global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} - global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} - global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} - global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} - global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} -} - - -proc menu9 {w title} { - set oldFocus [focus] - catch {focus .menu3} - catch {destroy $w; unregister_active 9} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 9]] - message $w.m -width 400 -aspect 300 -text \ - "Fault-tolerance " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Fault-tolerance " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 9; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 9; menu10 .menu10 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 9" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 9; menu8 .menu8 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 9; menu8 .menu8 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN - bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ - bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN - int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ - bool $w.config.f 9 6 "Use LEON3FT netlist " CONFIG_LEON3_NETLIST - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor "} - set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu9 {} { - global CONFIG_LEON3 - global CONFIG_LEON3FT_EN - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} - global CONFIG_RF_ERRINJ - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} - global CONFIG_CACHE_FT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - configure_entry .menu9.config.f.x4 normal {n l y}} else {configure_entry .menu9.config.f.x4 disabled {y n l}} - global CONFIG_CACHE_ERRINJ - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {.menu9.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu9.config.f.x5.l configure -state normal; } else {.menu9.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu9.config.f.x5.l configure -state disabled} - global CONFIG_LEON3_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - configure_entry .menu9.config.f.x6 normal {n l y}} else {configure_entry .menu9.config.f.x6 disabled {y n l}} -} - - -proc update_define_menu9 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_LEON3FT_EN - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 - global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} - global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} - global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} - global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} - global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} - global CONFIG_RF_ERRINJ - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} - global CONFIG_CACHE_FT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - set CONFIG_CACHE_FT_EN [expr $CONFIG_CACHE_FT_EN&15]} else {set CONFIG_CACHE_FT_EN [expr $CONFIG_CACHE_FT_EN|16]} - global CONFIG_CACHE_ERRINJ - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {validate_int CONFIG_CACHE_ERRINJ "$CONFIG_CACHE_ERRINJ" 0} - global CONFIG_LEON3_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - set CONFIG_LEON3_NETLIST [expr $CONFIG_LEON3_NETLIST&15]} else {set CONFIG_LEON3_NETLIST [expr $CONFIG_LEON3_NETLIST|16]} -} - - -proc menu10 {w title} { - set oldFocus [focus] - catch {focus .menu3} - catch {destroy $w; unregister_active 10} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 10]] - message $w.m -width 400 -aspect 300 -text \ - "VHDL debug settings " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "VHDL debug settings " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 10; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 10; catch {destroy .menu3}; unregister_active 3; menu11 .menu11 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 10" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 10; menu9 .menu9 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 10; menu9 .menu9 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 10 0 "Processor disassembly to console " CONFIG_IU_DISAS - bool $w.config.f 10 1 "Processor disassembly in netlist " CONFIG_IU_DISAS_NET - bool $w.config.f 10 2 "32-bit program counters " CONFIG_DEBUG_PC32 - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu3] == 0} then {menu3 .menu3 "Processor "} - set winx [expr [winfo x .menu3]+30]; set winy [expr [winfo y .menu3]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu10 {} { - global CONFIG_LEON3 - global CONFIG_IU_DISAS - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu10.config.f.x0 normal {n l y}} else {configure_entry .menu10.config.f.x0 disabled {y n l}} - global CONFIG_IU_DISAS_NET - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_DISAS == 1)} then { - configure_entry .menu10.config.f.x1 normal {n l y}} else {configure_entry .menu10.config.f.x1 disabled {y n l}} - global CONFIG_DEBUG_PC32 - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu10.config.f.x2 normal {n l y}} else {configure_entry .menu10.config.f.x2 disabled {y n l}} -} - - -proc update_define_menu10 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_IU_DISAS - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_IU_DISAS [expr $CONFIG_IU_DISAS&15]} else {set CONFIG_IU_DISAS [expr $CONFIG_IU_DISAS|16]} - global CONFIG_IU_DISAS_NET - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_DISAS == 1)} then { - set CONFIG_IU_DISAS_NET [expr $CONFIG_IU_DISAS_NET&15]} else {set CONFIG_IU_DISAS_NET [expr $CONFIG_IU_DISAS_NET|16]} - global CONFIG_DEBUG_PC32 - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_DEBUG_PC32 [expr $CONFIG_DEBUG_PC32&15]} else {set CONFIG_DEBUG_PC32 [expr $CONFIG_DEBUG_PC32|16]} -} - - -menu_option menu11 11 "AMBA configuration" -proc menu11 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 11} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 11]] - message $w.m -width 400 -aspect 300 -text \ - "AMBA configuration" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "AMBA configuration" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 11; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 11; menu12 .menu12 \"$title\"" - frame $w.f - button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 11" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 11; menu10 .menu10 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 11; menu10 .menu10 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - int $w.config.f 11 0 "Default AHB master" CONFIG_AHB_DEFMST - bool $w.config.f 11 1 "Round-robin arbiter " CONFIG_AHB_RROBIN - bool $w.config.f 11 2 "AHB split-transaction support " CONFIG_AHB_SPLIT - bool $w.config.f 11 3 "Enable full plug&play decoding " CONFIG_AHB_FPNPEN - hex $w.config.f 11 4 "I/O area start address (haddr\[31:20\]) " CONFIG_AHB_IOADDR - hex $w.config.f 11 5 "AHB/APB bridge address (haddr\[31:20\]) " CONFIG_APB_HADDR - bool $w.config.f 11 6 "Enable AMBA AHB monitor " CONFIG_AHB_MON - bool $w.config.f 11 7 "Report AHB errors " CONFIG_AHB_MONERR - bool $w.config.f 11 8 "Report AHB warings " CONFIG_AHB_MONWAR - bool $w.config.f 11 9 "Write trace to simulation console " CONFIG_AHB_DTRACE - - - - focus $w - update_active - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu11 {} { - global CONFIG_AHB_MON - global CONFIG_AHB_MONERR - if {($CONFIG_AHB_MON == 1)} then { - configure_entry .menu11.config.f.x7 normal {n l y}} else {configure_entry .menu11.config.f.x7 disabled {y n l}} - global CONFIG_AHB_MONWAR - if {($CONFIG_AHB_MON == 1)} then { - configure_entry .menu11.config.f.x8 normal {n l y}} else {configure_entry .menu11.config.f.x8 disabled {y n l}} -} - - -proc update_define_menu11 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_AHB_MON - global CONFIG_AHB_MONERR - if {($CONFIG_AHB_MON == 1)} then { - set CONFIG_AHB_MONERR [expr $CONFIG_AHB_MONERR&15]} else {set CONFIG_AHB_MONERR [expr $CONFIG_AHB_MONERR|16]} - global CONFIG_AHB_MONWAR - if {($CONFIG_AHB_MON == 1)} then { - set CONFIG_AHB_MONWAR [expr $CONFIG_AHB_MONWAR&15]} else {set CONFIG_AHB_MONWAR [expr $CONFIG_AHB_MONWAR|16]} -} - - -menu_option menu12 12 "Debug Link " -proc menu12 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 12} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 12]] - message $w.m -width 400 -aspect 300 -text \ - "Debug Link " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Debug Link " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 12; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 12; menu13 .menu13 \"$title\"" - frame $w.f - button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 12" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 12; menu11 .menu11 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 12; menu11 .menu11 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART - bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG - bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 - hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB - hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB - hex $w.config.f 12 6 "MSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHMSB - hex $w.config.f 12 7 "LSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHLSB - bool $w.config.f 12 8 "Programmable 4-bit LSB of MAC/IP address" CONFIG_DSU_ETH_PROG - bool $w.config.f 12 9 "EDCL disable pin " CONFIG_DSU_ETH_DIS - - - - focus $w - update_active - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu12 {} { - global CONFIG_GRETH_ENABLE - global CONFIG_DSU_ETH - if {($CONFIG_GRETH_ENABLE == 1)} then { - configure_entry .menu12.config.f.x2 normal {n l y}} else {configure_entry .menu12.config.f.x2 disabled {y n l}} - 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}} - global CONFIG_DSU_IPMSB - 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} - global CONFIG_DSU_IPLSB - 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} - global CONFIG_DSU_ETHMSB - 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} - global CONFIG_DSU_ETHLSB - 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} - global CONFIG_GRETH_GIGA - global CONFIG_DSU_ETH_PROG - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - configure_entry .menu12.config.f.x8 normal {n l y}} else {configure_entry .menu12.config.f.x8 disabled {y n l}} - global CONFIG_DSU_ETH_DIS - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - configure_entry .menu12.config.f.x9 normal {n l y}} else {configure_entry .menu12.config.f.x9 disabled {y n l}} -} - - -proc update_define_menu12 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_GRETH_ENABLE - global CONFIG_DSU_ETH - if {($CONFIG_GRETH_ENABLE == 1)} then { - set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 - global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} - global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} - global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} - global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} - global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} - global CONFIG_DSU_IPMSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} - global CONFIG_DSU_IPLSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPLSB "$CONFIG_DSU_IPLSB" 0033} - global CONFIG_DSU_ETHMSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_ETHMSB "$CONFIG_DSU_ETHMSB" 020000} - global CONFIG_DSU_ETHLSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_ETHLSB "$CONFIG_DSU_ETHLSB" 000000} - global CONFIG_GRETH_GIGA - global CONFIG_DSU_ETH_PROG - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - set CONFIG_DSU_ETH_PROG [expr $CONFIG_DSU_ETH_PROG&15]} else {set CONFIG_DSU_ETH_PROG [expr $CONFIG_DSU_ETH_PROG|16]} - global CONFIG_DSU_ETH_DIS - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - set CONFIG_DSU_ETH_DIS [expr $CONFIG_DSU_ETH_DIS&15]} else {set CONFIG_DSU_ETH_DIS [expr $CONFIG_DSU_ETH_DIS|16]} -} - - -menu_option menu13 13 "Peripherals " -proc menu13 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 13} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 13]] - message $w.m -width 400 -aspect 300 -text \ - "Peripherals " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Peripherals " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 13; break" - set nextscript "catch {focus $oldFocus}; menu14 .menu14 \"$title\"" - frame $w.f - button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 13" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 13; menu12 .menu12 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 13; menu12 .menu12 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - submenu $w.config.f 13 0 "Memory controllers " 14 - submenu $w.config.f 13 1 "On-chip RAM/ROM " 16 - submenu $w.config.f 13 2 "Ethernet interface " 17 - submenu $w.config.f 13 3 "UARTs, timers and irq control " 18 - - - - focus $w - update_active - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu13 {} { -} - - -proc update_define_menu13 {} { - update_define_mainmenu - global CONFIG_MODULES -} - - -proc menu14 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 14} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 14]] - message $w.m -width 400 -aspect 300 -text \ - "Memory controllers " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Memory controllers " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 14; break" - set nextscript "catch {focus $oldFocus}; menu15 .menu15 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 14" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 14; menu13 .menu13 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 14; menu13 .menu13 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - submenu $w.config.f 14 0 "Leon2 memory controller " 15 - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu14 {} { -} - - -proc update_define_menu14 {} { - update_define_mainmenu - global CONFIG_MODULES -} - - -proc menu15 {w title} { - set oldFocus [focus] - catch {focus .menu14} - catch {destroy $w; unregister_active 15} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 15]] - message $w.m -width 400 -aspect 300 -text \ - "Leon2 memory controller " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Leon2 memory controller " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 15; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 15; catch {destroy .menu14}; unregister_active 14; menu16 .menu16 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 15" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 15; menu14 .menu14 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 15; menu14 .menu14 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 15 0 "Enable Leon2 memory controller " CONFIG_MCTRL_LEON2 - bool $w.config.f 15 1 "8-bit PROM/SRAM bus support " CONFIG_MCTRL_8BIT - bool $w.config.f 15 2 "16-bit PROM/SRAM bus support " CONFIG_MCTRL_16BIT - bool $w.config.f 15 3 "5th SRAM chip-select " CONFIG_MCTRL_5CS - bool $w.config.f 15 4 "SDRAM controller " CONFIG_MCTRL_SDRAM - bool $w.config.f 15 5 "Separate address and data buses" CONFIG_MCTRL_SDRAM_SEPBUS - bool $w.config.f 15 6 "64-bit SDRAM data bus" CONFIG_MCTRL_SDRAM_BUS64 - bool $w.config.f 15 7 "Unsynchronized sdclock" CONFIG_MCTRL_SDRAM_INVCLK - bool $w.config.f 15 8 "Enable page burst operation " CONFIG_MCTRL_PAGE - bool $w.config.f 15 9 "Enable programmable page burst " CONFIG_MCTRL_PROGPAGE - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers "} - set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu15 {} { - global CONFIG_MCTRL_LEON2 - global CONFIG_MCTRL_8BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu15.config.f.x1 normal {n l y}} else {configure_entry .menu15.config.f.x1 disabled {y n l}} - global CONFIG_MCTRL_16BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu15.config.f.x2 normal {n l y}} else {configure_entry .menu15.config.f.x2 disabled {y n l}} - global CONFIG_MCTRL_5CS - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu15.config.f.x3 normal {n l y}} else {configure_entry .menu15.config.f.x3 disabled {y n l}} - global CONFIG_MCTRL_SDRAM - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu15.config.f.x4 normal {n l y}} else {configure_entry .menu15.config.f.x4 disabled {y n l}} - global CONFIG_MCTRL_SDRAM_SEPBUS - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - configure_entry .menu15.config.f.x5 normal {n l y}} else {configure_entry .menu15.config.f.x5 disabled {y n l}} - global CONFIG_MCTRL_SDRAM_BUS64 - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - configure_entry .menu15.config.f.x6 normal {n l y}} else {configure_entry .menu15.config.f.x6 disabled {y n l}} - global CONFIG_MCTRL_SDRAM_INVCLK - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - configure_entry .menu15.config.f.x7 normal {n l y}} else {configure_entry .menu15.config.f.x7 disabled {y n l}} - global CONFIG_MCTRL_PAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - configure_entry .menu15.config.f.x8 normal {n l y}} else {configure_entry .menu15.config.f.x8 disabled {y n l}} - global CONFIG_MCTRL_PROGPAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then { - configure_entry .menu15.config.f.x9 normal {n l y}} else {configure_entry .menu15.config.f.x9 disabled {y n l}} -} - - -proc update_define_menu15 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_MCTRL_LEON2 - global CONFIG_MCTRL_8BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT&15]} else {set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT|16]} - global CONFIG_MCTRL_16BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT&15]} else {set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT|16]} - global CONFIG_MCTRL_5CS - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS&15]} else {set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS|16]} - global CONFIG_MCTRL_SDRAM - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM&15]} else {set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM|16]} - global CONFIG_MCTRL_SDRAM_SEPBUS - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS&15]} else {set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS|16]} - global CONFIG_MCTRL_SDRAM_BUS64 - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64&15]} else {set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64|16]} - global CONFIG_MCTRL_SDRAM_INVCLK - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK&15]} else {set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK|16]} - global CONFIG_MCTRL_PAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE&15]} else {set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE|16]} - global CONFIG_MCTRL_PROGPAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then { - set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE&15]} else {set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE|16]} -} - - -proc menu16 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 16} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 16]] - message $w.m -width 400 -aspect 300 -text \ - "On-chip RAM/ROM " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "On-chip RAM/ROM " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 16; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 16; menu17 .menu17 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 16" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 16; menu15 .menu15 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 16; menu15 .menu15 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 16 0 "On-chip AHB ROM " CONFIG_AHBROM_ENABLE - hex $w.config.f 16 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START - bool $w.config.f 16 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE - bool $w.config.f 16 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 16 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 - menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 7 - hex $w.config.f 16 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu16 {} { - global CONFIG_AHBROM_ENABLE - global CONFIG_AHBROM_START - if {($CONFIG_AHBROM_ENABLE == 1)} then {.menu16.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x1.l configure -state normal; } else {.menu16.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x1.l configure -state disabled} - global CONFIG_AHBROM_PIPE - if {($CONFIG_AHBROM_ENABLE == 1)} then { - configure_entry .menu16.config.f.x2 normal {n l y}} else {configure_entry .menu16.config.f.x2 disabled {y n l}} - global CONFIG_AHBRAM_ENABLE - if {($CONFIG_AHBRAM_ENABLE == 1)} then {configure_entry .menu16.config.f.x4 normal {x l}} else {configure_entry .menu16.config.f.x4 disabled {x l}} - global CONFIG_AHBRAM_START - if {($CONFIG_AHBRAM_ENABLE == 1)} then {.menu16.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x5.l configure -state normal; } else {.menu16.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x5.l configure -state disabled} -} - - -proc update_define_menu16 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_AHBROM_ENABLE - global CONFIG_AHBROM_START - if {($CONFIG_AHBROM_ENABLE == 1)} then {validate_hex CONFIG_AHBROM_START "$CONFIG_AHBROM_START" 000} - global CONFIG_AHBROM_PIPE - if {($CONFIG_AHBROM_ENABLE == 1)} then { - set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 - global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} - global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} - global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} - global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} - global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} - global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} - global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} - global CONFIG_AHBRAM_ENABLE - global CONFIG_AHBRAM_START - if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} -} - - -proc menu17 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 17} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 17]] - message $w.m -width 400 -aspect 300 -text \ - "Ethernet interface " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Ethernet interface " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 17; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu18 .menu18 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 17" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu16 .menu16 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu16 .menu16 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 17 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE - bool $w.config.f 17 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 17 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 5 - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu17 {} { - global CONFIG_GRETH_ENABLE - global CONFIG_GRETH_GIGA - if {($CONFIG_GRETH_ENABLE == 1)} then { - configure_entry .menu17.config.f.x1 normal {n l y}} else {configure_entry .menu17.config.f.x1 disabled {y n l}} - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then {configure_entry .menu17.config.f.x2 normal {x l}} else {configure_entry .menu17.config.f.x2 disabled {x l}} -} - - -proc update_define_menu17 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_GRETH_ENABLE - global CONFIG_GRETH_GIGA - if {($CONFIG_GRETH_ENABLE == 1)} then { - set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 - global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} - global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} - global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} - global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} - global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} -} - - -proc menu18 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 18} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 18]] - message $w.m -width 400 -aspect 300 -text \ - "UARTs, timers and irq control " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "UARTs, timers and irq control " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 18; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; catch {destroy .menu13}; unregister_active 13; menu19 .menu19 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu17 .menu17 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu17 .menu17 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 18 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 6 - bool $w.config.f 18 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE - bool $w.config.f 18 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC - int $w.config.f 18 4 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC - bool $w.config.f 18 5 "Enable Timer Unit " CONFIG_GPT_ENABLE - int $w.config.f 18 6 "Number of timers (1 - 7) " CONFIG_GPT_NTIM - int $w.config.f 18 7 "Scaler width (2 - 16) " CONFIG_GPT_SW - int $w.config.f 18 8 "Timer width (2 - 32) " CONFIG_GPT_TW - int $w.config.f 18 9 "Timer unit interrupt " CONFIG_GPT_IRQ - bool $w.config.f 18 10 "Separate interrupts " CONFIG_GPT_SEPIRQ - bool $w.config.f 18 11 "Watchdog enable " CONFIG_GPT_WDOGEN - hex $w.config.f 18 12 "Initial watchdog time-out value " CONFIG_GPT_WDOG - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu18 {} { - global CONFIG_UART1_ENABLE - if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu18.config.f.x1 normal {x l}} else {configure_entry .menu18.config.f.x1 disabled {x l}} - global CONFIG_IRQ3_ENABLE - global CONFIG_IRQ3_SEC - if {($CONFIG_IRQ3_ENABLE == 1)} then { - configure_entry .menu18.config.f.x3 normal {n l y}} else {configure_entry .menu18.config.f.x3 disabled {y n l}} - global CONFIG_IRQ3_NSEC - if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {.menu18.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x4.l configure -state normal; } else {.menu18.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x4.l configure -state disabled} - global CONFIG_GPT_ENABLE - global CONFIG_GPT_NTIM - if {($CONFIG_GPT_ENABLE == 1)} then {.menu18.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x6.l configure -state normal; } else {.menu18.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x6.l configure -state disabled} - global CONFIG_GPT_SW - if {($CONFIG_GPT_ENABLE == 1)} then {.menu18.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x7.l configure -state normal; } else {.menu18.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x7.l configure -state disabled} - global CONFIG_GPT_TW - if {($CONFIG_GPT_ENABLE == 1)} then {.menu18.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x8.l configure -state normal; } else {.menu18.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x8.l configure -state disabled} - global CONFIG_GPT_IRQ - if {($CONFIG_GPT_ENABLE == 1)} then {.menu18.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x9.l configure -state normal; } else {.menu18.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x9.l configure -state disabled} - global CONFIG_GPT_SEPIRQ - if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu18.config.f.x10 normal {n l y}} else {configure_entry .menu18.config.f.x10 disabled {y n l}} - global CONFIG_GPT_WDOGEN - if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu18.config.f.x11 normal {n l y}} else {configure_entry .menu18.config.f.x11 disabled {y n l}} - global CONFIG_GPT_WDOG - if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu18.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu18.config.f.x12.l configure -state normal; } else {.menu18.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu18.config.f.x12.l configure -state disabled} -} - - -proc update_define_menu18 {} { - update_define_mainmenu - global CONFIG_MODULES - global tmpvar_29 - global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} - global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} - global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} - global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} - global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} - global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} - global CONFIG_IRQ3_ENABLE - global CONFIG_IRQ3_SEC - if {($CONFIG_IRQ3_ENABLE == 1)} then { - set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC&15]} else {set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC|16]} - global CONFIG_IRQ3_NSEC - if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {validate_int CONFIG_IRQ3_NSEC "$CONFIG_IRQ3_NSEC" 12} - global CONFIG_GPT_ENABLE - global CONFIG_GPT_NTIM - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_NTIM "$CONFIG_GPT_NTIM" 2} - global CONFIG_GPT_SW - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_SW "$CONFIG_GPT_SW" 8} - global CONFIG_GPT_TW - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_TW "$CONFIG_GPT_TW" 32} - global CONFIG_GPT_IRQ - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_IRQ "$CONFIG_GPT_IRQ" 8} - global CONFIG_GPT_SEPIRQ - if {($CONFIG_GPT_ENABLE == 1)} then { - set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ&15]} else {set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ|16]} - global CONFIG_GPT_WDOGEN - if {($CONFIG_GPT_ENABLE == 1)} then { - set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN&15]} else {set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN|16]} - global CONFIG_GPT_WDOG - if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {validate_hex CONFIG_GPT_WDOG "$CONFIG_GPT_WDOG" FFFF} -} - - -menu_option menu19 19 "VHDL Debugging " -proc menu19 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 19} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 19]] - message $w.m -width 400 -aspect 300 -text \ - "VHDL Debugging " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "VHDL Debugging " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; break" - set nextscript "catch {focus $oldFocus}; menu20 .menu20 \"$title\"" - frame $w.f - button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - $w.f.next configure -state disabled - bind all "puts \"no more menus\" " - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 19 0 "Accelerated UART tracing " CONFIG_DEBUG_UART - - - - focus $w - update_active - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu19 {} { -} - - -proc update_define_menu19 {} { - update_define_mainmenu - global CONFIG_MODULES -} - - -proc update_mainmenu {} { -} - - -set tmpvar_0 "(not set)" -set CONFIG_SYN_INFERRED 0 -set CONFIG_SYN_STRATIX 0 -set CONFIG_SYN_STRATIXII 0 -set CONFIG_SYN_STRATIXIII 0 -set CONFIG_SYN_CYCLONEIII 0 -set CONFIG_SYN_ALTERA 0 -set CONFIG_SYN_ATC18 0 -set CONFIG_SYN_LATTICE 0 -set CONFIG_SYN_ECLIPSE 0 -set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 -set CONFIG_SYN_SPARTAN3 0 -set CONFIG_SYN_SPARTAN3E 0 -set CONFIG_SYN_SPARTAN6 0 -set CONFIG_SYN_VIRTEX 0 -set CONFIG_SYN_VIRTEXE 0 -set CONFIG_SYN_VIRTEX2 0 -set CONFIG_SYN_VIRTEX4 0 -set CONFIG_SYN_VIRTEX5 0 -set CONFIG_SYN_VIRTEX6 0 -set tmpvar_1 "(not set)" -set CONFIG_MEM_INFERRED 0 -set CONFIG_MEM_UMC 0 -set CONFIG_MEM_VIRAGE 0 -set CONFIG_MEM_VIRAGE90 0 -set CONFIG_SYN_INFER_RAM 0 -set CONFIG_SYN_INFER_PADS 0 -set CONFIG_SYN_NO_ASYNC 0 -set CONFIG_SYN_SCAN 0 -set tmpvar_2 "(not set)" -set CONFIG_CLK_INFERRED 0 -set CONFIG_CLK_HCLKBUF 0 -set CONFIG_CLK_UT130HBD 0 -set CONFIG_CLK_ALTDLL 0 -set CONFIG_CLK_LATDLL 0 -set CONFIG_CLK_PRO3PLL 0 -set CONFIG_CLK_PRO3EPLL 0 -set CONFIG_CLK_PRO3LPLL 0 -set CONFIG_CLK_FUSPLL 0 -set CONFIG_CLK_LIB18T 0 -set CONFIG_CLK_RHUMC 0 -set CONFIG_CLK_CLKDLL 0 -set CONFIG_CLK_DCM 0 -set CONFIG_CLK_MUL 2 -set CONFIG_CLK_DIV 2 -set CONFIG_OCLK_DIV 1 -set CONFIG_OCLKB_DIV 0 -set CONFIG_OCLKC_DIV 0 -set CONFIG_PCI_CLKDLL 0 -set CONFIG_CLK_NOFB 0 -set CONFIG_PCI_SYSCLK 0 -set CONFIG_LEON3 0 -set CONFIG_PROC_NUM 1 -set CONFIG_IU_NWINDOWS 8 -set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" -set CONFIG_IU_MUL_LATENCY_2 0 -set CONFIG_IU_MUL_LATENCY_4 0 -set CONFIG_IU_MUL_LATENCY_5 0 -set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" -set CONFIG_IU_MUL_INFERRED 0 -set CONFIG_IU_MUL_MODGEN 0 -set CONFIG_IU_MUL_TECHSPEC 0 -set CONFIG_IU_MUL_DW 0 -set CONFIG_IU_BP 0 -set CONFIG_IU_SVT 0 -set CONFIG_NOTAG 0 -set CONFIG_IU_LDELAY 1 -set CONFIG_IU_WATCHPOINTS 0 -set CONFIG_PWD 0 -set CONFIG_IU_RSTADDR 00000 -set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" -set CONFIG_FPU_GRFPU 0 -set CONFIG_FPU_GRFPULITE 0 -set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" -set CONFIG_FPU_GRFPU_INFMUL 0 -set CONFIG_FPU_GRFPU_DWMUL 0 -set CONFIG_FPU_GRFPU_MODGEN 0 -set CONFIG_FPU_GRFPU_TECHSPEC 0 -set CONFIG_FPU_GRFPU_SH 0 -set tmpvar_7 "(not set)" -set CONFIG_FPU_GRFPC0 0 -set CONFIG_FPU_GRFPC1 0 -set CONFIG_FPU_GRFPC2 0 -set CONFIG_FPU_NETLIST 0 -set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" -set CONFIG_ICACHE_ASSO1 0 -set CONFIG_ICACHE_ASSO2 0 -set CONFIG_ICACHE_ASSO3 0 -set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" -set CONFIG_ICACHE_SZ1 0 -set CONFIG_ICACHE_SZ2 0 -set CONFIG_ICACHE_SZ4 0 -set CONFIG_ICACHE_SZ8 0 -set CONFIG_ICACHE_SZ16 0 -set CONFIG_ICACHE_SZ32 0 -set CONFIG_ICACHE_SZ64 0 -set CONFIG_ICACHE_SZ128 0 -set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" -set CONFIG_ICACHE_LZ16 0 -set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" -set CONFIG_ICACHE_ALGORND 0 -set CONFIG_ICACHE_ALGODIR 0 -set CONFIG_ICACHE_ALGOLRR 0 -set CONFIG_ICACHE_ALGOLRU 0 -set CONFIG_ICACHE_LOCK 0 -set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" -set CONFIG_ICACHE_LRAM_SZ1 0 -set CONFIG_ICACHE_LRAM_SZ2 0 -set CONFIG_ICACHE_LRAM_SZ4 0 -set CONFIG_ICACHE_LRAM_SZ8 0 -set CONFIG_ICACHE_LRAM_SZ16 0 -set CONFIG_ICACHE_LRAM_SZ32 0 -set CONFIG_ICACHE_LRAM_SZ64 0 -set CONFIG_ICACHE_LRAM_SZ128 0 -set CONFIG_ICACHE_LRAM_SZ256 0 -set CONFIG_ICACHE_LRSTART 8e -set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" -set CONFIG_DCACHE_ASSO1 0 -set CONFIG_DCACHE_ASSO2 0 -set CONFIG_DCACHE_ASSO3 0 -set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" -set CONFIG_DCACHE_SZ1 0 -set CONFIG_DCACHE_SZ2 0 -set CONFIG_DCACHE_SZ4 0 -set CONFIG_DCACHE_SZ8 0 -set CONFIG_DCACHE_SZ16 0 -set CONFIG_DCACHE_SZ32 0 -set CONFIG_DCACHE_SZ64 0 -set CONFIG_DCACHE_SZ128 0 -set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" -set CONFIG_DCACHE_LZ16 0 -set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" -set CONFIG_DCACHE_ALGORND 0 -set CONFIG_DCACHE_ALGODIR 0 -set CONFIG_DCACHE_ALGOLRR 0 -set CONFIG_DCACHE_ALGOLRU 0 -set CONFIG_DCACHE_LOCK 0 -set CONFIG_DCACHE_SNOOP 0 -set CONFIG_DCACHE_SNOOP_FAST 0 -set CONFIG_DCACHE_SNOOP_SEPTAG 0 -set CONFIG_CACHE_FIXED 0 -set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" -set CONFIG_DCACHE_LRAM_SZ1 0 -set CONFIG_DCACHE_LRAM_SZ2 0 -set CONFIG_DCACHE_LRAM_SZ4 0 -set CONFIG_DCACHE_LRAM_SZ8 0 -set CONFIG_DCACHE_LRAM_SZ16 0 -set CONFIG_DCACHE_LRAM_SZ32 0 -set CONFIG_DCACHE_LRAM_SZ64 0 -set CONFIG_DCACHE_LRAM_SZ128 0 -set CONFIG_DCACHE_LRAM_SZ256 0 -set CONFIG_DCACHE_LRSTART 8f -set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" -set CONFIG_MMU_COMBINED 0 -set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" -set CONFIG_MMU_REPARRAY 0 -set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" -set CONFIG_MMU_I2 0 -set CONFIG_MMU_I4 0 -set CONFIG_MMU_I8 0 -set CONFIG_MMU_I16 0 -set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" -set CONFIG_MMU_D2 0 -set CONFIG_MMU_D4 0 -set CONFIG_MMU_D8 0 -set CONFIG_MMU_D16 0 -set CONFIG_MMU_D32 0 -set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" -set CONFIG_MMU_PAGE_4K 0 -set CONFIG_MMU_PAGE_8K 0 -set CONFIG_MMU_PAGE_16K 0 -set CONFIG_MMU_PAGE_32K 0 -set CONFIG_MMU_PAGE_PROG 0 -set CONFIG_DSU_ENABLE 0 -set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" -set CONFIG_DSU_ITRACESZ1 0 -set CONFIG_DSU_ITRACESZ2 0 -set CONFIG_DSU_ITRACESZ4 0 -set CONFIG_DSU_ITRACESZ8 0 -set CONFIG_DSU_ITRACESZ16 0 -set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" -set CONFIG_DSU_ATRACESZ1 0 -set CONFIG_DSU_ATRACESZ2 0 -set CONFIG_DSU_ATRACESZ4 0 -set CONFIG_DSU_ATRACESZ8 0 -set CONFIG_DSU_ATRACESZ16 0 -set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" -set CONFIG_IUFT_NONE 0 -set CONFIG_IUFT_PAR 0 -set CONFIG_IUFT_DMR 0 -set CONFIG_IUFT_BCH 0 -set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 -set CONFIG_RF_ERRINJ 0 -set CONFIG_CACHE_FT_EN 0 -set CONFIG_CACHE_ERRINJ 0 -set CONFIG_LEON3_NETLIST 0 -set CONFIG_IU_DISAS 0 -set CONFIG_IU_DISAS_NET 0 -set CONFIG_DEBUG_PC32 0 -set CONFIG_AHB_DEFMST 0 -set CONFIG_AHB_RROBIN 0 -set CONFIG_AHB_SPLIT 0 -set CONFIG_AHB_FPNPEN 0 -set CONFIG_AHB_IOADDR FFF -set CONFIG_APB_HADDR 800 -set CONFIG_AHB_MON 0 -set CONFIG_AHB_MONERR 0 -set CONFIG_AHB_MONWAR 0 -set CONFIG_AHB_DTRACE 0 -set CONFIG_DSU_UART 0 -set CONFIG_DSU_JTAG 0 -set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" -set CONFIG_DSU_ETHSZ1 0 -set CONFIG_DSU_ETHSZ2 0 -set CONFIG_DSU_ETHSZ4 0 -set CONFIG_DSU_ETHSZ8 0 -set CONFIG_DSU_ETHSZ16 0 -set CONFIG_DSU_IPMSB C0A8 -set CONFIG_DSU_IPLSB 0033 -set CONFIG_DSU_ETHMSB 020000 -set CONFIG_DSU_ETHLSB 000000 -set CONFIG_DSU_ETH_PROG 0 -set CONFIG_DSU_ETH_DIS 0 -set CONFIG_MCTRL_LEON2 0 -set CONFIG_MCTRL_8BIT 0 -set CONFIG_MCTRL_16BIT 0 -set CONFIG_MCTRL_5CS 0 -set CONFIG_MCTRL_SDRAM 0 -set CONFIG_MCTRL_SDRAM_SEPBUS 0 -set CONFIG_MCTRL_SDRAM_BUS64 0 -set CONFIG_MCTRL_SDRAM_INVCLK 0 -set CONFIG_MCTRL_PAGE 0 -set CONFIG_MCTRL_PROGPAGE 0 -set CONFIG_AHBROM_ENABLE 0 -set CONFIG_AHBROM_START 000 -set CONFIG_AHBROM_PIPE 0 -set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" -set CONFIG_AHBRAM_SZ1 0 -set CONFIG_AHBRAM_SZ2 0 -set CONFIG_AHBRAM_SZ4 0 -set CONFIG_AHBRAM_SZ8 0 -set CONFIG_AHBRAM_SZ16 0 -set CONFIG_AHBRAM_SZ32 0 -set CONFIG_AHBRAM_SZ64 0 -set CONFIG_AHBRAM_START A00 -set CONFIG_GRETH_ENABLE 0 -set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" -set CONFIG_GRETH_FIFO4 0 -set CONFIG_GRETH_FIFO8 0 -set CONFIG_GRETH_FIFO16 0 -set CONFIG_GRETH_FIFO32 0 -set CONFIG_GRETH_FIFO64 0 -set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" -set CONFIG_UA1_FIFO1 0 -set CONFIG_UA1_FIFO2 0 -set CONFIG_UA1_FIFO4 0 -set CONFIG_UA1_FIFO8 0 -set CONFIG_UA1_FIFO16 0 -set CONFIG_UA1_FIFO32 0 -set CONFIG_IRQ3_ENABLE 0 -set CONFIG_IRQ3_SEC 0 -set CONFIG_IRQ3_NSEC 12 -set CONFIG_GPT_ENABLE 0 -set CONFIG_GPT_NTIM 2 -set CONFIG_GPT_SW 8 -set CONFIG_GPT_TW 32 -set CONFIG_GPT_IRQ 8 -set CONFIG_GPT_SEPIRQ 0 -set CONFIG_GPT_WDOGEN 0 -set CONFIG_GPT_WDOG FFFF -set CONFIG_DEBUG_UART 0 -set CONFIG_LEON3FT_PRESENT 4 -set CONFIG_HAS_SHARED_GRFPU 4 -set CONFIG_SYN_CUSTOM1 4 -set CONFIG_SYN_TSMC90 4 -set CONFIG_SYN_RHUMC 4 -set CONFIG_SYN_ARTISAN 4 -set CONFIG_PCI_ENABLE 4 -set CONFIG_MODULES 4 -proc writeconfig {file1 file2} { - set cfg [open $file1 w] - set autocfg [open $file2 w] - set notmod 1 - set notset 0 - puts $cfg "#" - puts $cfg "# Automatically generated make config: don't edit" - puts $cfg "#" - puts $autocfg "/*" - puts $autocfg " * Automatically generated C config: don't edit" - puts $autocfg " */" - puts $autocfg "#define AUTOCONF_INCLUDED" - global CONFIG_LEON3FT_PRESENT - global CONSTANT_Y - write_tristate $cfg $autocfg CONFIG_LEON3FT_PRESENT $CONFIG_LEON3FT_PRESENT [list $notmod] 2 - global CONFIG_HAS_SHARED_GRFPU - write_tristate $cfg $autocfg CONFIG_HAS_SHARED_GRFPU $CONFIG_HAS_SHARED_GRFPU [list $notmod] 2 - write_comment $cfg $autocfg "Synthesis " - global tmpvar_0 - - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } - 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 } - 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 } - if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } - 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 } - 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 } - 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 } - 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 } - 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 } - if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } - global tmpvar_1 - global CONFIG_SYN_INFERRED - global CONFIG_SYN_CUSTOM1 - global CONFIG_SYN_ATC18 - global CONFIG_SYN_TSMC90 - global CONFIG_SYN_UMC - global CONFIG_SYN_RHUMC - global CONFIG_SYN_ARTISAN - 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 { - 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 } - 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 } - 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 } - 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 }} - global CONFIG_SYN_INFER_RAM - if {($CONFIG_SYN_INFERRED != 1)} then {write_tristate $cfg $autocfg CONFIG_SYN_INFER_RAM $CONFIG_SYN_INFER_RAM [list $notmod] 2 } - global CONFIG_SYN_INFER_PADS - if {($CONFIG_SYN_INFERRED != 1)} then {write_tristate $cfg $autocfg CONFIG_SYN_INFER_PADS $CONFIG_SYN_INFER_PADS [list $notmod] 2 } - global CONFIG_SYN_NO_ASYNC - write_tristate $cfg $autocfg CONFIG_SYN_NO_ASYNC $CONFIG_SYN_NO_ASYNC [list $notmod] 2 - global CONFIG_SYN_SCAN - write_tristate $cfg $autocfg CONFIG_SYN_SCAN $CONFIG_SYN_SCAN [list $notmod] 2 - write_comment $cfg $autocfg "Clock generation" - global tmpvar_2 - - 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 } - 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 } - if { $tmpvar_2 == "Aeroflex-UT130HBD" } then { write_tristate $cfg $autocfg CONFIG_CLK_UT130HBD 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_UT130HBD 0 [list $notmod] 2 } - 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 } - 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 } - if { $tmpvar_2 == "Proasic3-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_PRO3PLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_PRO3PLL 0 [list $notmod] 2 } - if { $tmpvar_2 == "Proasic3E-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_PRO3EPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_PRO3EPLL 0 [list $notmod] 2 } - if { $tmpvar_2 == "Proasic3L-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_PRO3LPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_PRO3LPLL 0 [list $notmod] 2 } - if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } - 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 } - 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 } - 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 } - 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 } - global CONFIG_CLK_MUL - global CONFIG_CLK_DCM - global CONFIG_CLK_ALTDLL - global CONFIG_CLK_LATDLL - global CONFIG_CLK_PRO3PLL - global CONFIG_CLK_PRO3EPLL - global CONFIG_CLK_PRO3LPLL - global CONFIG_CLK_CLKDLL - global CONFIG_CLK_LIB18T - global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } - global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } - global CONFIG_OCLK_DIV - if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } - global CONFIG_OCLKB_DIV - if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLKB_DIV $CONFIG_OCLKB_DIV $notmod } - global CONFIG_OCLKC_DIV - if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLKC_DIV $CONFIG_OCLKC_DIV $notmod } - global CONFIG_PCI_CLKDLL - if {($CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_DCM == 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_CLKDLL $CONFIG_PCI_CLKDLL [list $notmod] 2 } - global CONFIG_CLK_NOFB - if {($CONFIG_CLK_DCM == 1)} then {write_tristate $cfg $autocfg CONFIG_CLK_NOFB $CONFIG_CLK_NOFB [list $notmod] 2 } - global CONFIG_PCI_SYSCLK - global CONFIG_PCI_ENABLE - if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } - global CONFIG_LEON3 - write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 - global CONFIG_PROC_NUM - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} - global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } - global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} - global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } - global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } - global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } - global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } - global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } - global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } - global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} - global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } - global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} - global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } - global tmpvar_7 - global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} - global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} - global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} - global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} - global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } - global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } - global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} - global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} - global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} - global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } - global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } - global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} - global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} - global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} - global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } - global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } - global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } - global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} - global CONFIG_LEON3FT_EN - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } - global CONFIG_RF_ERRINJ - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } - global CONFIG_CACHE_FT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_CACHE_FT_EN $CONFIG_CACHE_FT_EN [list $notmod] 2 } - global CONFIG_CACHE_ERRINJ - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_int $cfg $autocfg CONFIG_CACHE_ERRINJ $CONFIG_CACHE_ERRINJ $notmod } - global CONFIG_LEON3_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3_NETLIST $CONFIG_LEON3_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "VHDL debug settings "} - global CONFIG_IU_DISAS - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_DISAS $CONFIG_IU_DISAS [list $notmod] 2 } - global CONFIG_IU_DISAS_NET - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_DISAS == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_DISAS_NET $CONFIG_IU_DISAS_NET [list $notmod] 2 } - global CONFIG_DEBUG_PC32 - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DEBUG_PC32 $CONFIG_DEBUG_PC32 [list $notmod] 2 } - write_comment $cfg $autocfg "AMBA configuration" - global CONFIG_AHB_DEFMST - write_int $cfg $autocfg CONFIG_AHB_DEFMST $CONFIG_AHB_DEFMST $notmod - global CONFIG_AHB_RROBIN - write_tristate $cfg $autocfg CONFIG_AHB_RROBIN $CONFIG_AHB_RROBIN [list $notmod] 2 - global CONFIG_AHB_SPLIT - write_tristate $cfg $autocfg CONFIG_AHB_SPLIT $CONFIG_AHB_SPLIT [list $notmod] 2 - global CONFIG_AHB_FPNPEN - write_tristate $cfg $autocfg CONFIG_AHB_FPNPEN $CONFIG_AHB_FPNPEN [list $notmod] 2 - global CONFIG_AHB_IOADDR - write_hex $cfg $autocfg CONFIG_AHB_IOADDR $CONFIG_AHB_IOADDR $notmod - global CONFIG_APB_HADDR - write_hex $cfg $autocfg CONFIG_APB_HADDR $CONFIG_APB_HADDR $notmod - global CONFIG_AHB_MON - write_tristate $cfg $autocfg CONFIG_AHB_MON $CONFIG_AHB_MON [list $notmod] 2 - global CONFIG_AHB_MONERR - if {($CONFIG_AHB_MON == 1)} then {write_tristate $cfg $autocfg CONFIG_AHB_MONERR $CONFIG_AHB_MONERR [list $notmod] 2 } - global CONFIG_AHB_MONWAR - if {($CONFIG_AHB_MON == 1)} then {write_tristate $cfg $autocfg CONFIG_AHB_MONWAR $CONFIG_AHB_MONWAR [list $notmod] 2 } - global CONFIG_AHB_DTRACE - write_tristate $cfg $autocfg CONFIG_AHB_DTRACE $CONFIG_AHB_DTRACE [list $notmod] 2 - write_comment $cfg $autocfg "Debug Link " - global CONFIG_DSU_UART - write_tristate $cfg $autocfg CONFIG_DSU_UART $CONFIG_DSU_UART [list $notmod] 2 - global CONFIG_DSU_JTAG - write_tristate $cfg $autocfg CONFIG_DSU_JTAG $CONFIG_DSU_JTAG [list $notmod] 2 - global CONFIG_DSU_ETH - global CONFIG_GRETH_ENABLE - if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} - global CONFIG_DSU_IPMSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } - global CONFIG_DSU_IPLSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPLSB $CONFIG_DSU_IPLSB $notmod } - global CONFIG_DSU_ETHMSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_ETHMSB $CONFIG_DSU_ETHMSB $notmod } - global CONFIG_DSU_ETHLSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_ETHLSB $CONFIG_DSU_ETHLSB $notmod } - global CONFIG_DSU_ETH_PROG - global CONFIG_GRETH_GIGA - 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 } - global CONFIG_DSU_ETH_DIS - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH_DIS $CONFIG_DSU_ETH_DIS [list $notmod] 2 } - write_comment $cfg $autocfg "Peripherals " - write_comment $cfg $autocfg "Memory controllers " - write_comment $cfg $autocfg "Leon2 memory controller " - global CONFIG_MCTRL_LEON2 - write_tristate $cfg $autocfg CONFIG_MCTRL_LEON2 $CONFIG_MCTRL_LEON2 [list $notmod] 2 - global CONFIG_MCTRL_8BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_8BIT $CONFIG_MCTRL_8BIT [list $notmod] 2 } - global CONFIG_MCTRL_16BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_16BIT $CONFIG_MCTRL_16BIT [list $notmod] 2 } - global CONFIG_MCTRL_5CS - if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_5CS $CONFIG_MCTRL_5CS [list $notmod] 2 } - global CONFIG_MCTRL_SDRAM - if {($CONFIG_MCTRL_LEON2 == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_SDRAM $CONFIG_MCTRL_SDRAM [list $notmod] 2 } - global CONFIG_MCTRL_SDRAM_SEPBUS - 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 } - global CONFIG_MCTRL_SDRAM_BUS64 - 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 } - global CONFIG_MCTRL_SDRAM_INVCLK - 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 } - global CONFIG_MCTRL_PAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_PAGE $CONFIG_MCTRL_PAGE [list $notmod] 2 } - global CONFIG_MCTRL_PROGPAGE - 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 } - write_comment $cfg $autocfg "On-chip RAM/ROM " - global CONFIG_AHBROM_ENABLE - write_tristate $cfg $autocfg CONFIG_AHBROM_ENABLE $CONFIG_AHBROM_ENABLE [list $notmod] 2 - global CONFIG_AHBROM_START - if {($CONFIG_AHBROM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBROM_START $CONFIG_AHBROM_START $notmod } - global CONFIG_AHBROM_PIPE - if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } - global CONFIG_AHBRAM_ENABLE - write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 - if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} - global CONFIG_AHBRAM_START - if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } - write_comment $cfg $autocfg "Ethernet interface " - write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 - if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} - write_comment $cfg $autocfg "UARTs, timers and irq control " - global CONFIG_UART1_ENABLE - write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 - if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} - global CONFIG_IRQ3_ENABLE - write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 - global CONFIG_IRQ3_SEC - if {($CONFIG_IRQ3_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_IRQ3_SEC $CONFIG_IRQ3_SEC [list $notmod] 2 } - global CONFIG_IRQ3_NSEC - if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {write_int $cfg $autocfg CONFIG_IRQ3_NSEC $CONFIG_IRQ3_NSEC $notmod } - global CONFIG_GPT_ENABLE - write_tristate $cfg $autocfg CONFIG_GPT_ENABLE $CONFIG_GPT_ENABLE [list $notmod] 2 - global CONFIG_GPT_NTIM - if {($CONFIG_GPT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GPT_NTIM $CONFIG_GPT_NTIM $notmod } - global CONFIG_GPT_SW - if {($CONFIG_GPT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GPT_SW $CONFIG_GPT_SW $notmod } - global CONFIG_GPT_TW - if {($CONFIG_GPT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GPT_TW $CONFIG_GPT_TW $notmod } - global CONFIG_GPT_IRQ - if {($CONFIG_GPT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GPT_IRQ $CONFIG_GPT_IRQ $notmod } - global CONFIG_GPT_SEPIRQ - if {($CONFIG_GPT_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GPT_SEPIRQ $CONFIG_GPT_SEPIRQ [list $notmod] 2 } - global CONFIG_GPT_WDOGEN - if {($CONFIG_GPT_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GPT_WDOGEN $CONFIG_GPT_WDOGEN [list $notmod] 2 } - global CONFIG_GPT_WDOG - if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {write_hex $cfg $autocfg CONFIG_GPT_WDOG $CONFIG_GPT_WDOG $notmod } - write_comment $cfg $autocfg "VHDL Debugging " - global CONFIG_DEBUG_UART - write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 - close $cfg - close $autocfg -} - - -proc clear_choices { } { - global CONFIG_SYN_INFERRED; set CONFIG_SYN_INFERRED 0 - global CONFIG_SYN_STRATIX; set CONFIG_SYN_STRATIX 0 - global CONFIG_SYN_STRATIXII; set CONFIG_SYN_STRATIXII 0 - global CONFIG_SYN_STRATIXIII; set CONFIG_SYN_STRATIXIII 0 - global CONFIG_SYN_CYCLONEIII; set CONFIG_SYN_CYCLONEIII 0 - global CONFIG_SYN_ALTERA; set CONFIG_SYN_ALTERA 0 - global CONFIG_SYN_ATC18; set CONFIG_SYN_ATC18 0 - global CONFIG_SYN_LATTICE; set CONFIG_SYN_LATTICE 0 - global CONFIG_SYN_ECLIPSE; set CONFIG_SYN_ECLIPSE 0 - global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 - global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 - global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 - global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 - global CONFIG_SYN_VIRTEX; set CONFIG_SYN_VIRTEX 0 - global CONFIG_SYN_VIRTEXE; set CONFIG_SYN_VIRTEXE 0 - global CONFIG_SYN_VIRTEX2; set CONFIG_SYN_VIRTEX2 0 - global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 - global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 - global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 - global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 - global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 - global CONFIG_MEM_VIRAGE; set CONFIG_MEM_VIRAGE 0 - global CONFIG_MEM_VIRAGE90; set CONFIG_MEM_VIRAGE90 0 - global CONFIG_CLK_INFERRED; set CONFIG_CLK_INFERRED 0 - global CONFIG_CLK_HCLKBUF; set CONFIG_CLK_HCLKBUF 0 - global CONFIG_CLK_UT130HBD; set CONFIG_CLK_UT130HBD 0 - global CONFIG_CLK_ALTDLL; set CONFIG_CLK_ALTDLL 0 - global CONFIG_CLK_LATDLL; set CONFIG_CLK_LATDLL 0 - global CONFIG_CLK_PRO3PLL; set CONFIG_CLK_PRO3PLL 0 - global CONFIG_CLK_PRO3EPLL; set CONFIG_CLK_PRO3EPLL 0 - global CONFIG_CLK_PRO3LPLL; set CONFIG_CLK_PRO3LPLL 0 - global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 - global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 - global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 - global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 - global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 - global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 - global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 - global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 - global CONFIG_IU_MUL_INFERRED; set CONFIG_IU_MUL_INFERRED 0 - global CONFIG_IU_MUL_MODGEN; set CONFIG_IU_MUL_MODGEN 0 - global CONFIG_IU_MUL_TECHSPEC; set CONFIG_IU_MUL_TECHSPEC 0 - global CONFIG_IU_MUL_DW; set CONFIG_IU_MUL_DW 0 - global CONFIG_FPU_GRFPU; set CONFIG_FPU_GRFPU 0 - global CONFIG_FPU_GRFPULITE; set CONFIG_FPU_GRFPULITE 0 - global CONFIG_FPU_MEIKO; set CONFIG_FPU_MEIKO 0 - global CONFIG_FPU_GRFPU_INFMUL; set CONFIG_FPU_GRFPU_INFMUL 0 - global CONFIG_FPU_GRFPU_DWMUL; set CONFIG_FPU_GRFPU_DWMUL 0 - global CONFIG_FPU_GRFPU_MODGEN; set CONFIG_FPU_GRFPU_MODGEN 0 - global CONFIG_FPU_GRFPU_TECHSPEC; set CONFIG_FPU_GRFPU_TECHSPEC 0 - global CONFIG_FPU_GRFPC0; set CONFIG_FPU_GRFPC0 0 - global CONFIG_FPU_GRFPC1; set CONFIG_FPU_GRFPC1 0 - global CONFIG_FPU_GRFPC2; set CONFIG_FPU_GRFPC2 0 - global CONFIG_ICACHE_ASSO1; set CONFIG_ICACHE_ASSO1 0 - global CONFIG_ICACHE_ASSO2; set CONFIG_ICACHE_ASSO2 0 - global CONFIG_ICACHE_ASSO3; set CONFIG_ICACHE_ASSO3 0 - global CONFIG_ICACHE_ASSO4; set CONFIG_ICACHE_ASSO4 0 - global CONFIG_ICACHE_SZ1; set CONFIG_ICACHE_SZ1 0 - global CONFIG_ICACHE_SZ2; set CONFIG_ICACHE_SZ2 0 - global CONFIG_ICACHE_SZ4; set CONFIG_ICACHE_SZ4 0 - global CONFIG_ICACHE_SZ8; set CONFIG_ICACHE_SZ8 0 - global CONFIG_ICACHE_SZ16; set CONFIG_ICACHE_SZ16 0 - global CONFIG_ICACHE_SZ32; set CONFIG_ICACHE_SZ32 0 - global CONFIG_ICACHE_SZ64; set CONFIG_ICACHE_SZ64 0 - global CONFIG_ICACHE_SZ128; set CONFIG_ICACHE_SZ128 0 - global CONFIG_ICACHE_SZ256; set CONFIG_ICACHE_SZ256 0 - global CONFIG_ICACHE_LZ16; set CONFIG_ICACHE_LZ16 0 - global CONFIG_ICACHE_LZ32; set CONFIG_ICACHE_LZ32 0 - global CONFIG_ICACHE_ALGORND; set CONFIG_ICACHE_ALGORND 0 - global CONFIG_ICACHE_ALGODIR; set CONFIG_ICACHE_ALGODIR 0 - global CONFIG_ICACHE_ALGOLRR; set CONFIG_ICACHE_ALGOLRR 0 - global CONFIG_ICACHE_ALGOLRU; set CONFIG_ICACHE_ALGOLRU 0 - global CONFIG_ICACHE_LRAM_SZ1; set CONFIG_ICACHE_LRAM_SZ1 0 - global CONFIG_ICACHE_LRAM_SZ2; set CONFIG_ICACHE_LRAM_SZ2 0 - global CONFIG_ICACHE_LRAM_SZ4; set CONFIG_ICACHE_LRAM_SZ4 0 - global CONFIG_ICACHE_LRAM_SZ8; set CONFIG_ICACHE_LRAM_SZ8 0 - global CONFIG_ICACHE_LRAM_SZ16; set CONFIG_ICACHE_LRAM_SZ16 0 - global CONFIG_ICACHE_LRAM_SZ32; set CONFIG_ICACHE_LRAM_SZ32 0 - global CONFIG_ICACHE_LRAM_SZ64; set CONFIG_ICACHE_LRAM_SZ64 0 - global CONFIG_ICACHE_LRAM_SZ128; set CONFIG_ICACHE_LRAM_SZ128 0 - global CONFIG_ICACHE_LRAM_SZ256; set CONFIG_ICACHE_LRAM_SZ256 0 - global CONFIG_DCACHE_ASSO1; set CONFIG_DCACHE_ASSO1 0 - global CONFIG_DCACHE_ASSO2; set CONFIG_DCACHE_ASSO2 0 - global CONFIG_DCACHE_ASSO3; set CONFIG_DCACHE_ASSO3 0 - global CONFIG_DCACHE_ASSO4; set CONFIG_DCACHE_ASSO4 0 - global CONFIG_DCACHE_SZ1; set CONFIG_DCACHE_SZ1 0 - global CONFIG_DCACHE_SZ2; set CONFIG_DCACHE_SZ2 0 - global CONFIG_DCACHE_SZ4; set CONFIG_DCACHE_SZ4 0 - global CONFIG_DCACHE_SZ8; set CONFIG_DCACHE_SZ8 0 - global CONFIG_DCACHE_SZ16; set CONFIG_DCACHE_SZ16 0 - global CONFIG_DCACHE_SZ32; set CONFIG_DCACHE_SZ32 0 - global CONFIG_DCACHE_SZ64; set CONFIG_DCACHE_SZ64 0 - global CONFIG_DCACHE_SZ128; set CONFIG_DCACHE_SZ128 0 - global CONFIG_DCACHE_SZ256; set CONFIG_DCACHE_SZ256 0 - global CONFIG_DCACHE_LZ16; set CONFIG_DCACHE_LZ16 0 - global CONFIG_DCACHE_LZ32; set CONFIG_DCACHE_LZ32 0 - global CONFIG_DCACHE_ALGORND; set CONFIG_DCACHE_ALGORND 0 - global CONFIG_DCACHE_ALGODIR; set CONFIG_DCACHE_ALGODIR 0 - global CONFIG_DCACHE_ALGOLRR; set CONFIG_DCACHE_ALGOLRR 0 - global CONFIG_DCACHE_ALGOLRU; set CONFIG_DCACHE_ALGOLRU 0 - global CONFIG_DCACHE_LRAM_SZ1; set CONFIG_DCACHE_LRAM_SZ1 0 - global CONFIG_DCACHE_LRAM_SZ2; set CONFIG_DCACHE_LRAM_SZ2 0 - global CONFIG_DCACHE_LRAM_SZ4; set CONFIG_DCACHE_LRAM_SZ4 0 - global CONFIG_DCACHE_LRAM_SZ8; set CONFIG_DCACHE_LRAM_SZ8 0 - global CONFIG_DCACHE_LRAM_SZ16; set CONFIG_DCACHE_LRAM_SZ16 0 - global CONFIG_DCACHE_LRAM_SZ32; set CONFIG_DCACHE_LRAM_SZ32 0 - global CONFIG_DCACHE_LRAM_SZ64; set CONFIG_DCACHE_LRAM_SZ64 0 - global CONFIG_DCACHE_LRAM_SZ128; set CONFIG_DCACHE_LRAM_SZ128 0 - global CONFIG_DCACHE_LRAM_SZ256; set CONFIG_DCACHE_LRAM_SZ256 0 - global CONFIG_MMU_COMBINED; set CONFIG_MMU_COMBINED 0 - global CONFIG_MMU_SPLIT; set CONFIG_MMU_SPLIT 0 - global CONFIG_MMU_REPARRAY; set CONFIG_MMU_REPARRAY 0 - global CONFIG_MMU_REPINCREMENT; set CONFIG_MMU_REPINCREMENT 0 - global CONFIG_MMU_I2; set CONFIG_MMU_I2 0 - global CONFIG_MMU_I4; set CONFIG_MMU_I4 0 - global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 - global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 - global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 - global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 - global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 - global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 - global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 - global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 - global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 - global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 - global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 - global CONFIG_MMU_PAGE_32K; set CONFIG_MMU_PAGE_32K 0 - global CONFIG_MMU_PAGE_PROG; set CONFIG_MMU_PAGE_PROG 0 - global CONFIG_DSU_ITRACESZ1; set CONFIG_DSU_ITRACESZ1 0 - global CONFIG_DSU_ITRACESZ2; set CONFIG_DSU_ITRACESZ2 0 - global CONFIG_DSU_ITRACESZ4; set CONFIG_DSU_ITRACESZ4 0 - global CONFIG_DSU_ITRACESZ8; set CONFIG_DSU_ITRACESZ8 0 - global CONFIG_DSU_ITRACESZ16; set CONFIG_DSU_ITRACESZ16 0 - global CONFIG_DSU_ATRACESZ1; set CONFIG_DSU_ATRACESZ1 0 - global CONFIG_DSU_ATRACESZ2; set CONFIG_DSU_ATRACESZ2 0 - global CONFIG_DSU_ATRACESZ4; set CONFIG_DSU_ATRACESZ4 0 - global CONFIG_DSU_ATRACESZ8; set CONFIG_DSU_ATRACESZ8 0 - global CONFIG_DSU_ATRACESZ16; set CONFIG_DSU_ATRACESZ16 0 - global CONFIG_IUFT_NONE; set CONFIG_IUFT_NONE 0 - global CONFIG_IUFT_PAR; set CONFIG_IUFT_PAR 0 - global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 - global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 - global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 - global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 - global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 - global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 - global CONFIG_DSU_ETHSZ8; set CONFIG_DSU_ETHSZ8 0 - global CONFIG_DSU_ETHSZ16; set CONFIG_DSU_ETHSZ16 0 - global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0 - global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0 - global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0 - global CONFIG_AHBRAM_SZ8; set CONFIG_AHBRAM_SZ8 0 - global CONFIG_AHBRAM_SZ16; set CONFIG_AHBRAM_SZ16 0 - global CONFIG_AHBRAM_SZ32; set CONFIG_AHBRAM_SZ32 0 - global CONFIG_AHBRAM_SZ64; set CONFIG_AHBRAM_SZ64 0 - global CONFIG_GRETH_FIFO4; set CONFIG_GRETH_FIFO4 0 - global CONFIG_GRETH_FIFO8; set CONFIG_GRETH_FIFO8 0 - global CONFIG_GRETH_FIFO16; set CONFIG_GRETH_FIFO16 0 - global CONFIG_GRETH_FIFO32; set CONFIG_GRETH_FIFO32 0 - global CONFIG_GRETH_FIFO64; set CONFIG_GRETH_FIFO64 0 - global CONFIG_UA1_FIFO1; set CONFIG_UA1_FIFO1 0 - global CONFIG_UA1_FIFO2; set CONFIG_UA1_FIFO2 0 - global CONFIG_UA1_FIFO4; set CONFIG_UA1_FIFO4 0 - global CONFIG_UA1_FIFO8; set CONFIG_UA1_FIFO8 0 - global CONFIG_UA1_FIFO16; set CONFIG_UA1_FIFO16 0 - global CONFIG_UA1_FIFO32; set CONFIG_UA1_FIFO32 0 -} - - -proc update_choices { } { - global tmpvar_0 - set tmpvar_0 "Inferred" - global CONFIG_SYN_INFERRED - if { $CONFIG_SYN_INFERRED == 1 } then { set tmpvar_0 "Inferred" } - global CONFIG_SYN_STRATIX - if { $CONFIG_SYN_STRATIX == 1 } then { set tmpvar_0 "Altera-Stratix" } - global CONFIG_SYN_STRATIXII - if { $CONFIG_SYN_STRATIXII == 1 } then { set tmpvar_0 "Altera-StratixII" } - global CONFIG_SYN_STRATIXIII - if { $CONFIG_SYN_STRATIXIII == 1 } then { set tmpvar_0 "Altera-StratixIII" } - global CONFIG_SYN_CYCLONEIII - if { $CONFIG_SYN_CYCLONEIII == 1 } then { set tmpvar_0 "Altera-CycloneIII" } - global CONFIG_SYN_ALTERA - if { $CONFIG_SYN_ALTERA == 1 } then { set tmpvar_0 "Altera-Others" } - global CONFIG_SYN_ATC18 - if { $CONFIG_SYN_ATC18 == 1 } then { set tmpvar_0 "Atmel-ATC18" } - global CONFIG_SYN_LATTICE - if { $CONFIG_SYN_LATTICE == 1 } then { set tmpvar_0 "Lattice-EC/ECP/XP" } - global CONFIG_SYN_ECLIPSE - if { $CONFIG_SYN_ECLIPSE == 1 } then { set tmpvar_0 "Quicklogic-Eclipse" } - global CONFIG_SYN_UMC - if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } - global CONFIG_SYN_SPARTAN3 - if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } - global CONFIG_SYN_SPARTAN3E - if { $CONFIG_SYN_SPARTAN3E == 1 } then { set tmpvar_0 "Xilinx-Spartan3E" } - global CONFIG_SYN_SPARTAN6 - if { $CONFIG_SYN_SPARTAN6 == 1 } then { set tmpvar_0 "Xilinx-Spartan6" } - global CONFIG_SYN_VIRTEX - if { $CONFIG_SYN_VIRTEX == 1 } then { set tmpvar_0 "Xilinx-Virtex" } - global CONFIG_SYN_VIRTEXE - if { $CONFIG_SYN_VIRTEXE == 1 } then { set tmpvar_0 "Xilinx-VirtexE" } - global CONFIG_SYN_VIRTEX2 - if { $CONFIG_SYN_VIRTEX2 == 1 } then { set tmpvar_0 "Xilinx-Virtex2" } - global CONFIG_SYN_VIRTEX4 - if { $CONFIG_SYN_VIRTEX4 == 1 } then { set tmpvar_0 "Xilinx-Virtex4" } - global CONFIG_SYN_VIRTEX5 - if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } - global CONFIG_SYN_VIRTEX6 - if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } - global tmpvar_1 - set tmpvar_1 "Inferred" - global CONFIG_MEM_INFERRED - if { $CONFIG_MEM_INFERRED == 1 } then { set tmpvar_1 "Inferred" } - global CONFIG_MEM_UMC - if { $CONFIG_MEM_UMC == 1 } then { set tmpvar_1 "UMC18" } - global CONFIG_MEM_VIRAGE - if { $CONFIG_MEM_VIRAGE == 1 } then { set tmpvar_1 "Virage" } - global CONFIG_MEM_VIRAGE90 - if { $CONFIG_MEM_VIRAGE90 == 1 } then { set tmpvar_1 "Virage-TSMC90" } - global tmpvar_2 - set tmpvar_2 "Inferred" - global CONFIG_CLK_INFERRED - if { $CONFIG_CLK_INFERRED == 1 } then { set tmpvar_2 "Inferred" } - global CONFIG_CLK_HCLKBUF - if { $CONFIG_CLK_HCLKBUF == 1 } then { set tmpvar_2 "Actel-HCLKBUF" } - global CONFIG_CLK_UT130HBD - if { $CONFIG_CLK_UT130HBD == 1 } then { set tmpvar_2 "Aeroflex-UT130HBD" } - global CONFIG_CLK_ALTDLL - if { $CONFIG_CLK_ALTDLL == 1 } then { set tmpvar_2 "Altera-ALTPLL" } - global CONFIG_CLK_LATDLL - if { $CONFIG_CLK_LATDLL == 1 } then { set tmpvar_2 "Lattice-EXPLL" } - global CONFIG_CLK_PRO3PLL - if { $CONFIG_CLK_PRO3PLL == 1 } then { set tmpvar_2 "Proasic3-PLL" } - global CONFIG_CLK_PRO3EPLL - if { $CONFIG_CLK_PRO3EPLL == 1 } then { set tmpvar_2 "Proasic3E-PLL" } - global CONFIG_CLK_PRO3LPLL - if { $CONFIG_CLK_PRO3LPLL == 1 } then { set tmpvar_2 "Proasic3L-PLL" } - global CONFIG_CLK_FUSPLL - if { $CONFIG_CLK_FUSPLL == 1 } then { set tmpvar_2 "Fusion-PLL" } - global CONFIG_CLK_LIB18T - if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } - global CONFIG_CLK_RHUMC - if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } - global CONFIG_CLK_CLKDLL - if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } - global CONFIG_CLK_DCM - if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } - global tmpvar_3 - set tmpvar_3 "5-cycles" - global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } - global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } - global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" - global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } - global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } - global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } - global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" - global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } - global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } - global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" - global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } - global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } - global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } - global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" - global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } - global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } - global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" - global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } - global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } - global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } - global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" - global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } - global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } - global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } - global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } - global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } - global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } - global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } - global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } - global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" - global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } - global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" - global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } - global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } - global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } - global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" - global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } - global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } - global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } - global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } - global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } - global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } - global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } - global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } - global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" - global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } - global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } - global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } - global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" - global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } - global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } - global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } - global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } - global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } - global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } - global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } - global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } - global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" - global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } - global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" - global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } - global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } - global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } - global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" - global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } - global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } - global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } - global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } - global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } - global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } - global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } - global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } - global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" - global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } - global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" - global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } - global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" - global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } - global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } - global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } - global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } - global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" - global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } - global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } - global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } - global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } - global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" - global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } - global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } - global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } - global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } - global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" - global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } - global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } - global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } - global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } - global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" - global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } - global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } - global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } - global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } - global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" - global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } - global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } - global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } - global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } - global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" - global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } - global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } - global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } - global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } - global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" - global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } - global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } - global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } - global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } - global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } - global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } - global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" - global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } - global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } - global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } - global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } - global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" - global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } - global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } - global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } - global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } - global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } - global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } -} - - -proc update_define_mainmenu {} { - global CONFIG_MODULES - global CONFIG_LEON3FT_PRESENT - global CONFIG_HAS_SHARED_GRFPU - global CONSTANT_Y - set CONFIG_LEON3FT_PRESENT $CONSTANT_Y - set CONFIG_HAS_SHARED_GRFPU $CONSTANT_Y -} - - -# FILE: tail.tk -# This file is boilerplate TCL/TK function definitions for 'make xconfig'. -# -# CHANGES -# ======= -# -# 8 January 1998, Michael Elizabeth Chastain, -# Arrange buttons in three columns for better screen fitting. -# - -# -# Read the user's settings from .config. These will override whatever is -# in config.in. Don't do this if the user specified a -D to force -# the defaults. -# - -set defaults defconfig - -if { [file readable .config] == 1} then { - if { $argc > 0 } then { - if { [lindex $argv 0] != "-D" } then { - read_config .config - } - else - { - read_config $defaults - } - } else { - read_config .config - } -} else { - read_config $defaults -} - -update_define 1 $total_menus 0 -update_mainmenu - -button .f0.right.save -anchor w -text "Save and Exit" -underline 0\ - -command { catch {exec cp -f .config .config.old}; \ - writeconfig .config config.h; wrapup .wrap } - -button .f0.right.quit -anchor w -text "Quit Without Saving" -underline 0\ - -command { maybe_exit .maybe } - -button .f0.right.load -anchor w -text "Load Configuration from File" \ - -command { load_configfile .load "Load Configuration from file" read_config_file -} - -button .f0.right.store -anchor w -text "Store Configuration to File" \ - -command { load_configfile .load "Store Configuration to file" write_config_file } - -# -# Now pack everything. -# - -pack .f0.right.store .f0.right.load .f0.right.quit .f0.right.save \ - -padx 0 -pady 0 -side bottom -fill x -pack .f0.left .f0.middle .f0.right -side left -padx 5 -pady 0 -fill y -pack .f0 -padx 5 -pady 5 - -update idletasks -set winy [expr 10 + [winfo reqheight .f0]] -set scry [lindex [wm maxsize .] 1] -set winx [expr 10 + [winfo reqwidth .f0]] -set scrx [lindex [wm maxsize .] 0] -if {$winx < $scrx} then {set maxx -1} else {set maxx $winx} -if {$winy < $scry} then {set maxy -1} else {set maxy $winy} -.f0 configure -width $winx -height $winy -wm maxsize . $maxx $maxy - -# -# If we cannot write our config files, disable the write button. -# -if { [file exists .config] == 1 } then { - if { [file writable .config] == 0 } then { - .f0.right.save configure -state disabled - } - } else { - if { [file writable .] == 0 } then { - .f0.right.save configure -state disabled - } - } - -#if { [file exists include/linux/autoconf.h] == 1 } then { -# if { [file writable include/linux/autoconf.h] == 0 } then { -# .f0.right.save configure -state disabled -# } -# } else { -# if { [file writable include/linux/] == 0 } then { -# .f0.right.save configure -state disabled -# } -# } diff --git a/designs/leon3-lattice-latticeECP3/leon3mp.pty b/designs/leon3-lattice-latticeECP3/leon3mp.pty deleted file mode 100644 index 537921ff..00000000 --- a/designs/leon3-lattice-latticeECP3/leon3mp.pty +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/designs/leon3-lattice-latticeECP3/leon3mp.vhd b/designs/leon3-lattice-latticeECP3/leon3mp.vhd deleted file mode 100644 index ad356daf..00000000 --- a/designs/leon3-lattice-latticeECP3/leon3mp.vhd +++ /dev/null @@ -1,496 +0,0 @@ ------------------------------------------------------------------------------- --- LEON3 Demonstration design --- Copyright (C) 2006 Jiri Gaisler, Gaisler Research ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; -library techmap; -use techmap.gencomp.all; -use techmap.allclkgen.all; -library gaisler; -use gaisler.memctrl.all; -use gaisler.leon3.all; -use gaisler.uart.all; -use gaisler.misc.all; -use gaisler.net.all; -use gaisler.jtag.all; -library esa; -use esa.memoryctrl.all; -use work.config.all; --- pragma translate_off -use gaisler.sim.all; --- pragma translate_on - -entity leon3mp is - generic (fabtech : integer := CFG_FABTECH; - memtech : integer := CFG_MEMTECH; - padtech : integer := CFG_PADTECH; - disas : integer := CFG_DISAS; -- Enable disassembly to console - dbguart : integer := CFG_DUART; -- Print UART on console - pclow : integer := CFG_PCLOW - ); - port (reset_n : in std_ulogic; - clk_in : in std_ulogic; -- 100 MHz main clock --- dip_switch : in std_logic_vector (7 downto 0); - errorn : out std_ulogic; - ---only for running tests!!! - address : out std_logic_vector(19 downto 2); - data : inout std_logic_vector(31 downto 0); - ramsn : out std_logic_vector(1 downto 0); - mben : out std_logic_vector(3 downto 0); - oen : out std_ulogic; - writen : out std_ulogic; - - -- Debug Support Unit - dsubre : in std_ulogic; -- Debug Unit break (connect to button) - dsuact : out std_ulogic; - - -- DSU AHB UART interface - dsurx : in std_ulogic; - dsutx : out std_ulogic; - - -- Console UART1 interface - rxd1 : in std_ulogic; -- UART1 rx data - txd1 : out std_ulogic; -- UART1 tx data - - -- Ethernet interface #1 signals - rstn : out std_ulogic; - mdio : inout std_logic; - mdc : out std_ulogic; - rxc : in std_ulogic; - rx_er : in std_ulogic; - rx_dv : in std_ulogic; - rx_d : in std_logic_vector(7 downto 0); - txc : in std_ulogic; - tx_en : out std_ulogic; - tx_er : out std_ulogic; - tx_d : out std_logic_vector(7 downto 0); - gtxclk : out std_logic; - crs : in std_ulogic; - col : in std_ulogic; - clk125 : in std_ulogic; --- emdint : in std_ulogic; - - -- Output signals to LEDs - led : out std_logic_vector(7 downto 0); - seg14_led_out : out std_logic_vector(14 downto 0) - ); -end; - - -architecture rtl of leon3mp is - - signal vcc : std_logic; - signal gnd : std_logic; - - signal memi : memory_in_type; - signal memo : memory_out_type; - signal wpo : wprot_out_type; - - signal sdi : sdctrl_in_type; - signal sdo : sdram_out_type; - - signal apbi : apb_slv_in_type; - signal apbo : apb_slv_out_vector := (others => apb_none); - signal ahbsi : ahb_slv_in_type; - signal ahbso : ahb_slv_out_vector := (others => ahbs_none); - signal ahbmi : ahb_mst_in_type; - signal ahbmo : ahb_mst_out_vector := (others => ahbm_none); - - signal dui : uart_in_type; - signal duo : uart_out_type; - - signal irqi : irq_in_vector(0 to CFG_NCPU-1); - signal irqo : irq_out_vector(0 to CFG_NCPU-1); - - signal dbgi : l3_debug_in_vector(0 to CFG_NCPU-1); - signal dbgo : l3_debug_out_vector(0 to CFG_NCPU-1); - - signal dsui : dsu_in_type; - signal dsuo : dsu_out_type; - - signal ethi : eth_in_type; - signal etho : eth_out_type; - signal egtx_clk : std_ulogic; - - signal gpti : gptimer_in_type; - signal gpto : gptimer_out_type; - - signal lclk, clk_ddr : std_ulogic; - - signal rst_pad_n : std_logic; - signal gen_rst_n : std_ulogic; - signal rstraw : std_logic; - - signal clkm : std_ulogic; - signal clkml : std_ulogic; - - signal lock : std_logic; - signal errorn_s : std_logic; - - signal cgi : clkgen_in_type; - signal cgo : clkgen_out_type; - signal cgi1 : clkgen_in_type; - signal cgo1 : clkgen_out_type; - - signal tb_rst : std_logic; - signal tb_clk : std_logic; - signal phy_init_done : std_logic; - - -- Console UART1 - signal uart1i : uart_in_type; - signal uart1o : uart_out_type; - - attribute keep : boolean; - attribute syn_keep : boolean; - attribute syn_preserve : boolean; - - attribute syn_keep of clkm : signal is true; - attribute syn_preserve of clkm : signal is true; - attribute syn_keep of egtx_clk : signal is true; - attribute syn_preserve of egtx_clk : signal is true; - - attribute keep of clkm : signal is true; - attribute keep of egtx_clk : signal is true; - - constant BOARD_FREQ : integer := 100000; -- input frequency in KHz --- constant CPU_FREQ : integer := BOARD_FREQ * CFG_CLKMUL / CFG_CLKDIV; -- CPU frequency in KHz ---TEMPORARY!!! - constant CPU_FREQ : integer := BOARD_FREQ * 8 / 10; -- CPU frequency in KHz - constant IOAEN : integer := 0; - -begin ----------------------------------------------------------------------- ---- Reset and Clock generation ------------------------------------- ----------------------------------------------------------------------- - vcc <= '1'; - gnd <= '0'; - --- pllref_pad : clkpad generic map (tech => padtech) --- port map (pllref, cgi.pllref); - - clk_pad : clkpad generic map (tech => padtech) port map (pad => clk_in, o => lclk); - -- system clock generator - clkgen0 : clkgen generic map (tech => padtech , clk_mul => CFG_CLKMUL, clk_div => CFG_CLKDIV, sdramen => CFG_MCTRL_SDEN, noclkfb => CFG_CLK_NOFB, pcien => 0, pcidll => 0, pcisysclk => 0, - freq => BOARD_FREQ, clk2xen => 0) - port map (clkin => lclk, pciclkin => lclk, clk => clkm, clkn => open, clk2x => open, sdclk => open, pciclk => open, cgi => cgi, cgo => cgo); - cgi.pllctrl <= "00"; - cgi.pllrst <= rstraw; - led(0) <= not cgo.clklock; - - -- Ethernet 1G PHY clock generator (125MHz) --- clkgen1 : clkgen generic map (tech => padtech, clk_mul => 5, clk_div => 4, sdramen => 0, noclkfb => 0, pcien => 0, pcidll => 0, pcisysclk => 0, --- freq => BOARD_FREQ, clk2xen => 0) --- port map (clkin => lclk, pciclkin => gnd, clk => egtx_clk, clkn => open, clk2x => open, sdclk => open, pciclk => open, cgi => cgi2, cgo => cgo2); ---TEMPORARY!!! - clkgen1 : clkgen generic map (tech => padtech, clk_mul => 1, clk_div => 1, sdramen => 0, noclkfb => 0, pcien => 0, pcidll => 0, pcisysclk => 0, - freq => 125000, clk2xen => 0) - port map (clkin => clk125, pciclkin => gnd, clk => egtx_clk, clkn => open, clk2x => open, sdclk => open, pciclk => open, cgi => cgi1, cgo => cgo1); - cgi1.pllctrl <= "00"; - cgi1.pllrst <= rstraw; ---cgi1.pllref <= egtx_clk_fb; - led(1) <= not cgo1.clklock; - - gtxclk_pad : outpad generic map (tech => padtech) - port map (pad => gtxclk, i => egtx_clk); - - -- Glitch free reset that can be used for the Eth Phy and flash memory - resetn_pad : inpad generic map (tech => padtech) port map (reset_n, rst_pad_n); - -- reset generator - rst0 : rstgen generic map (acthigh => 0) - port map (rstin => rst_pad_n, clk => clkm, clklock => cgo.clklock, rstout => gen_rst_n, rstoutraw => rstraw); - - ----------------------------------------------------------------------- ---- AHB CONTROLLER -------------------------------------------------- ----------------------------------------------------------------------- - ahb0 : ahbctrl generic map (defmast => CFG_DEFMST, split => CFG_SPLIT, rrobin => CFG_RROBIN, ioaddr => CFG_AHBIO, ioen => IOAEN, nahbm => CFG_NCPU + CFG_GRETH + CFG_AHB_UART, nahbs => 8) - port map (rst => gen_rst_n, clk => clkm, msti => ahbmi, msto => ahbmo, slvi => ahbsi, slvo => ahbso); - - ----------------------------------------------------------------------- ---- LEON3 processor and DSU ----------------------------------------- ----------------------------------------------------------------------- - l3 : if CFG_LEON3 = 1 generate - cpu : for i in 0 to CFG_NCPU - 1 generate - -- LEON3 processor - u0 : leon3s generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, - 0, CFG_MAC, pclow, 0, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, - CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, - CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, - CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, - CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU - 1) - port map (clkm, gen_rst_n, ahbmi, ahbmo(i), ahbsi, ahbso, irqi(i), irqo(i), dbgi(i), dbgo(i)); - end generate; - - errorn_s <= dbgo(0).error; -- active low - led(2) <= errorn_s; - error_pad : outpad generic map (tech => padtech) port map (pad => errorn, i => errorn_s); - - dsugen : if CFG_DSU = 1 generate - -- LEON3 Debug Support Unit - dsu0 : dsu3 generic map (hindex => 2, haddr => 16#900#, hmask => 16#F00#, ncpu => CFG_NCPU, tbits => 30, tech => memtech, irq => 0, kbytes => CFG_ATBSZ) - port map (gen_rst_n, clkm, ahbmi, ahbsi, ahbso(2), dbgo, dbgi, dsui, dsuo); - dsui.enable <= '1'; - led(4) <= not dsuo.active; - dsubre_pad : inpad generic map (tech => padtech) port map (dsubre, dsui.break); - dsuact_pad : outpad generic map (tech => padtech) port map (dsuact, dsuo.active); - end generate; - end generate; - nodsu : if CFG_DSU = 0 generate - dsuo.tstop <= '0'; - dsuo.active <= '0'; - end generate; - - dcomgen : if CFG_AHB_UART = 1 generate - -- Debug UART - dcom0: ahbuart generic map (hindex => CFG_NCPU, pindex => 7, paddr => 7) - port map (gen_rst_n, clkm, dui, duo, apbi, apbo(7), ahbmi, ahbmo(CFG_NCPU)); - dui.extclk <= '0'; - led(6) <= not dui.rxd; - led(7) <= not duo.txd; - dsurx_pad : inpad generic map (tech => padtech) port map (dsurx, dui.rxd); - dsutx_pad : outpad generic map (tech => padtech) port map (dsutx, duo.txd); - end generate; - nouah : if CFG_AHB_UART = 0 generate - apbo(7) <= apb_none; - end generate; - - ----------------------------------------------------------------------- ---- Memory controllers ---------------------------------------------- ----------------------------------------------------------------------- - memi.writen <= '1'; - memi.wrn <= "1111"; - memi.bwidth <= "00"; - - mctrl0 : mctrl generic map (hindex => 0, pindex => 0, rommask => 16#000#, iomask => 16#000#, paddr => 0, srbanks => 1, ram8 => CFG_MCTRL_RAM8BIT, - ram16 => CFG_MCTRL_RAM16BIT, sden => CFG_MCTRL_SDEN, invclk => CFG_CLK_NOFB, sepbus => CFG_MCTRL_SEPBUS) - port map (gen_rst_n, clkm, memi, memo, ahbsi, ahbso(0), apbi, apbo(0), wpo, sdo); - - addr_pad : outpadv generic map (width => 18, tech => padtech) - port map (address, memo.address(19 downto 2)); - ramsa_pad : outpad generic map (tech => padtech) - port map (ramsn(0), memo.ramsn(0)); - ramsb_pad : outpad generic map (tech => padtech) - port map (ramsn(1), memo.ramsn(0)); - oen_pad : outpad generic map (tech => padtech) - port map (oen, memo.oen); - wri_pad : outpad generic map (tech => padtech) - port map (writen, memo.writen); - mben_pads : outpadv generic map (tech => padtech, width => 4) - port map (mben, memo.mben); - - data_pads : iopadvv generic map (tech => padtech, width => 32) - port map (data, memo.data(31 downto 0), memo.vbdrive(31 downto 0), memi.data(31 downto 0)); - - ----------------------------------------------------------------------- ---- APB Bridge and various periherals ------------------------------- ----------------------------------------------------------------------- - -- APB Bridge - apb0 : apbctrl generic map (hindex => 1, haddr => CFG_APBADDR, nslaves => 16) - port map (gen_rst_n, clkm, ahbsi, ahbso(1), apbi, apbo); - - uart1 : if CFG_UART1_ENABLE /= 0 generate - -- Console UART1 - uart1 : apbuart generic map (pindex => 1, paddr => 1, pirq => 2, console => dbguart, fifosize => CFG_UART1_FIFO) - port map (gen_rst_n, clkm, apbi, apbo(1), uart1i, uart1o); - uart1i.extclk <= '0'; - uart1i.ctsn <= '0'; ---commented because using inpad/outpad --- uart1i.rxd <= rxd1; --- txd1 <= uart1o.txd; - uart1_rx_pad : inpad generic map (tech => padtech) port map (pad => rxd1, o => uart1i.rxd); - uart1_tx_pad : outpad generic map (tech => padtech) port map (pad => txd1, i => uart1o.txd); - --shared with GRETH signals tx_en, tx_er --- led(6) <= not uart1i.rxd; --- led(7) <= not uart1o.txd; - end generate; - noua0 : if CFG_UART1_ENABLE = 0 generate - apbo(1) <= apb_none; - end generate; - - -- Interrupt controller - irqctrl : if CFG_IRQ3_ENABLE /= 0 generate - irqctrl0 : irqmp generic map (pindex => 2, paddr => 2, ncpu => CFG_NCPU) - port map (gen_rst_n, clkm, apbi, apbo(2), irqo, irqi); - end generate; - irq3 : if CFG_IRQ3_ENABLE = 0 generate - x : for i in 0 to (CFG_NCPU - 1) generate - irqi(i).irl <= "0000"; - end generate; - apbo(2) <= apb_none; - end generate; - - -- Time Unit - gpt : if CFG_GPT_ENABLE /= 0 generate - timer0 : gptimer generic map (pindex => 3, paddr => 3, pirq => CFG_GPT_IRQ, sepirq => CFG_GPT_SEPIRQ, sbits => CFG_GPT_SW, ntimers => CFG_GPT_NTIM, nbits => CFG_GPT_TW) - port map (gen_rst_n, clkm, apbi, apbo(3), gpti, gpto); - gpti.dhalt <= dsuo.tstop; - gpti.extclk <= '0'; - led(5) <= not gpto.wdog; - end generate; - notim : if CFG_GPT_ENABLE = 0 generate - apbo(3) <= apb_none; - end generate; - - -- GPIO Unit --- gpio0 : if CFG_GRGPIO_ENABLE /= 0 generate --- grgpio0: grgpio --- generic map(pindex => 11, paddr => 11, imask => CFG_GRGPIO_IMASK, nbits => 12) --- port map(gen_rst_n, clkm, apbi, apbo(11), gpioi, gpioo); --- end generate; - - ------------------------------------------------------------------------ ---- ETHERNET --------------------------------------------------------- ------------------------------------------------------------------------ - eth1 : if (CFG_GRETH = 1) generate -- Gaisler Ethernet Interface #1 - e1 : grethm generic map (hindex => CFG_NCPU + CFG_AHB_UART, pindex => 15, paddr => 15, pirq => 12, memtech => memtech, - mdcscaler => CPU_FREQ / 1000, enable_mdio => 1, fifosize => CFG_ETH_FIFO, nsync => 1, edcl => CFG_DSU_ETH, edclbufsz => CFG_ETH_BUF, - macaddrh => CFG_ETH_ENM, macaddrl => CFG_ETH_ENL, phyrstadr => 0, ipaddrh => CFG_ETH_IPM, ipaddrl => CFG_ETH_IPL, giga => CFG_GRETH1G)--, enable_mdint => 1) - port map (rst => gen_rst_n, clk => clkm, ahbmi => ahbmi, ahbmo => ahbmo(CFG_NCPU + CFG_AHB_UART), apbi => apbi, apbo => apbo(15), ethi => ethi, etho => etho); --- led(6) <= not etho.tx_en; --- led(7) <= not etho.tx_er; - end generate; - - ethpads1 : if (CFG_GRETH = 1) generate -- GRETH #1 pads - emdio_pad : iopad generic map (tech => padtech) - port map (pad => mdio, - i => etho.mdio_o, - en => etho.mdio_oe, - o => ethi.mdio_i); - - etxc_pad : clkpad generic map (tech => padtech) - port map (pad => txc, - o => ethi.tx_clk); - erxc_pad : clkpad generic map (tech => padtech) - port map (pad => rxc, - o => ethi.rx_clk); - erxd_pad : inpadv generic map (tech => padtech, width => 8) - port map (pad => rx_d(7 downto 0), - o => ethi.rxd(7 downto 0)); - erxdv_pad : inpad generic map (tech => padtech) - port map (pad => rx_dv, - o => ethi.rx_dv); - erxer_pad : inpad generic map (tech => padtech) - port map (pad => rx_er, - o => ethi.rx_er); - erxco_pad : inpad generic map (tech => padtech) - port map (pad => col, - o => ethi.rx_col); - erxcr_pad : inpad generic map (tech => padtech) - port map (pad => crs, - o => ethi.rx_crs); - - etxd_pad : outpadv generic map (tech => padtech, width => 8) - port map (pad => tx_d(7 downto 0), - i => etho.txd(7 downto 0)); - - etxen_pad : outpad generic map (tech => padtech) - port map (pad => tx_en, - i => etho.tx_en); - tx_er <= '0'; -- not present in Marvel 88E1119R Gigabit Ethernet transceiver device --- etxer_pad : outpad generic map (tech => padtech) --- port map (pad => tx_er, --- i => etho.tx_er); - emdc_pad : outpad generic map (tech => padtech) - port map (pad => mdc, - i => etho.mdc); - erst_pad : outpad generic map (tech => padtech) - port map (pad => rstn, --- i => etho.reset); - i => gen_rst_n); - - ethi.gtx_clk <= egtx_clk; - end generate; - - ------------------------------------------------------------------------ ---- 14-SEGMENT ALPHA-NUMERIC LED DISPLAY ----------------------------- ------------------------------------------------------------------------ - seg14_led_out <= (others => '0'); - - ------------------------------------------------------------------------ ---- AHB ROM ---------------------------------------------------------- ------------------------------------------------------------------------ - bpromgen : if CFG_AHBROMEN /= 0 generate - brom : entity work.ahbrom generic map (hindex => 6, haddr => CFG_AHBRODDR, pipe => CFG_AHBROPIP) - port map (gen_rst_n, clkm, ahbsi, ahbso(6)); - end generate; - - nobpromgen : if CFG_AHBROMEN = 0 generate - ahbso(6) <= ahbs_none; - end generate; - - ------------------------------------------------------------------------ ---- AHB RAM ---------------------------------------------------------- ------------------------------------------------------------------------ - ahbramgen : if CFG_AHBRAMEN = 1 generate - ahbram0 : ahbram generic map (hindex => 3, haddr => CFG_AHBRADDR, tech => CFG_MEMTECH, kbytes => CFG_AHBRSZ) - port map (gen_rst_n, clkm, ahbsi, ahbso(3)); - end generate; - - nram : if CFG_AHBRAMEN = 0 generate - ahbso(3) <= ahbs_none; - end generate; - - ------------------------------------------------------------------------ ---- Test report module ---------------------------------------------- ------------------------------------------------------------------------ --- pragma translate_off - test0 : ahbrep generic map (hindex => 4, haddr => 16#200#) - port map (gen_rst_n, clkm, ahbsi, ahbso(4)); --- pragma translate_on - - ------------------------------------------------------------------------ ---- Drive unused bus elements --------------------------------------- ------------------------------------------------------------------------ - nam1 : for i in (CFG_NCPU + CFG_GRETH + CFG_AHB_UART + 1) to (NAHBMST - 1) generate - ahbmo(i) <= ahbm_none; - end generate; - - ------------------------------------------------------------------------ ---- Boot message ---------------------------------------------------- ------------------------------------------------------------------------ --- pragma translate_off - x : report_version generic map (msg1 => "LEON3 Demonstration design for LatticeECP3 Versa Evaluation Board", - msg2 => "GRLIB Version " & tost(LIBVHDL_VERSION/1000) & "." & tost((LIBVHDL_VERSION mod 1000)/100) & "." & tost(LIBVHDL_VERSION mod 100) & ", build " & tost(LIBVHDL_BUILD), - msg3 => "Target technology: " & tech_table(fabtech) & ", memory library: " & tech_table(memtech), - mdel => 1); --- pragma translate_on - -end rtl; - diff --git a/designs/leon3-lattice-latticeECP3/prom.S b/designs/leon3-lattice-latticeECP3/prom.S deleted file mode 100644 index 1e9a59f7..00000000 --- a/designs/leon3-lattice-latticeECP3/prom.S +++ /dev/null @@ -1,190 +0,0 @@ - -/* Template boot-code for LEON3 test benches */ - -#include "prom.h" - -#ifndef STACKSIZE -#define STACKSIZE 0x00020000 -#endif - - - .seg "text" - .proc 0 - .align 4 - .global start -start: - - flush - set 0x10e0, %g1 ! init IU - mov %g1, %psr - mov %g0, %wim - mov %g0, %tbr - mov %g0, %y - mov %g0, %asr16 - nop - set 0x81000f, %g1 - sta %g1, [%g0] 2 - mov %g0, %g2 - nop - nop - nop - nop - nop - or %g2, %g2, %g0 - nop - nop - nop - nop - nop -#ifdef DSUADDR - set DSUADDR, %g2 - st %g0, [%g2] - st %g0, [%g2+0x08] - st %g0, [%g2+0x20] - st %g0, [%g2+0x24] - st %g0, [%g2+0x40] - st %g0, [%g2+0x44] - st %g0, [%g2+0x50] - st %g0, [%g2+0x54] - st %g0, [%g2+0x58] - st %g0, [%g2+0x5C] - st %g0, [%g2+0x54] -#endif - -2: - mov %asr17, %g3 - and %g3, 0x1f, %g3 - mov %g0, %g4 - mov %g0, %g5 - mov %g0, %g6 - mov %g0, %g7 -1: - mov %g0, %l0 - mov %g0, %l1 - mov %g0, %l2 - mov %g0, %l3 - mov %g0, %l4 - mov %g0, %l5 - mov %g0, %l6 - mov %g0, %l7 - mov %g0, %o0 - mov %g0, %o1 - mov %g0, %o2 - mov %g0, %o3 - mov %g0, %o4 - mov %g0, %o5 - mov %g0, %o6 - mov %g0, %o7 - subcc %g3, 1, %g3 - bge 1b - save - - mov 2, %g1 - mov %g1, %wim - set 0x10e0, %g1 ! enable traps - mov %g1, %psr - nop; nop; nop; - - mov %psr, %g1 - srl %g1, 12, %g1 - andcc %g1, 1, %g0 - be 1f - nop - - set _fsrxx, %g3 - ld [%g3], %fsr - ldd [%g3], %f0 - ldd [%g3], %f2 - ldd [%g3], %f4 - ldd [%g3], %f6 - ldd [%g3], %f8 - ldd [%g3], %f10 - ldd [%g3], %f12 - ldd [%g3], %f14 - ldd [%g3], %f16 - ldd [%g3], %f18 - ldd [%g3], %f20 - ldd [%g3], %f22 - ldd [%g3], %f24 - ldd [%g3], %f26 - ldd [%g3], %f28 - ldd [%g3], %f30 - nop - nop - nop - nop - nop - faddd %f0, %f2, %f4 - nop - nop - nop - nop - ba 1f - nop - - -.align 8 -_fsrxx: - .word 0 - .word 0 - -1: - mov %asr17, %g3 - srl %g3, 28, %g3 - andcc %g3, 0x0f, %g3 - bne 1f - - set L2MCTRLIO, %g1 - set MCFG1, %g2 - st %g2, [%g1] - set MCFG2, %g2 - st %g2, [%g1+4] - set MCFG3, %g2 - st %g2, [%g1+8] -! set IRQCTRL, %g1 -! set 0x0ffff, %g2 -! st %g2, [%g1+0x10] - -#ifdef DDR2CTRLIO - set DDR2CTRLIO, %g1 - set DDR2CFG4, %g2 - st %g2, [%g1+12] -#endif - -#ifdef ASDCFG -#ifndef SDCTRLPNP -#define SDCTRLPNP 0xFFFFF860 -#endif - set SDCTRLPNP, %g1 - ld [%g1], %g2 - srl %g2, 12, %g2 - set 0x01009, %g1 - subcc %g1, %g2, %g0 - bne 1f - - set ASDCFG, %g1 - set DSDCFG, %g2 - st %g2, [%g1] -#endif - - ! %g3 = cpu index -1: set STACKSIZE, %g2 - mov %g0, %g1 -2: subcc %g3, 0, %g0 - be 3f - nop - add %g1, %g2, %g1 - ba 2b - sub %g3, 1, %g3 - - -3: set RAMSTART+ RAMSIZE-32, %fp - sub %fp, %g1, %fp - sub %fp, 96, %sp - - set RAMSTART, %g1 - - jmp %g1 - nop - -.align 32 diff --git a/designs/leon3-lattice-latticeECP3/systest.c b/designs/leon3-lattice-latticeECP3/systest.c deleted file mode 100644 index c04f5213..00000000 --- a/designs/leon3-lattice-latticeECP3/systest.c +++ /dev/null @@ -1,17 +0,0 @@ - -main() - -{ - report_start(); - -// base_test(); - leon3_test(1, 0x80000200, 0); -// apbuart_test(0x80000100); - irqtest(0x80000200); - gptimer_test(0x80000300, 8); - - /* Ethernet #1 core test */ - greth_test(0x80000f00); - - report_end(); -} diff --git a/designs/leon3-lattice-latticeECP3/testbench.vhd b/designs/leon3-lattice-latticeECP3/testbench.vhd deleted file mode 100644 index e0751c50..00000000 --- a/designs/leon3-lattice-latticeECP3/testbench.vhd +++ /dev/null @@ -1,305 +0,0 @@ ------------------------------------------------------------------------------ --- LEON3 Demonstration design test bench --- Copyright (C) 2004 Jiri Gaisler, Gaisler Research ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library gaisler; -use gaisler.libdcom.all; -use gaisler.sim.all; -use gaisler.jtagtst.all; -library techmap; -use techmap.gencomp.all; -use work.debug.all; - -use work.config.all; - -entity testbench is - generic ( - fabtech : integer := CFG_FABTECH; - memtech : integer := CFG_MEMTECH; - padtech : integer := CFG_PADTECH; - disas : integer := CFG_DISAS; -- Enable disassembly to console - dbguart : integer := CFG_DUART; -- Print UART on console - pclow : integer := CFG_PCLOW; - clkperiod : integer := 10 -- system clock period (10ns) - ); -end; - -architecture behav of testbench is - constant promfile : string := "prom.srec"; -- rom contents - constant sdramfile : string := "sdram.srec"; -- sdram contents - - constant lresp : boolean := false; - constant ct : integer := clkperiod / 2; - - signal clk : std_logic := '0'; - signal clk200p : std_logic := '1'; - signal clk200n : std_logic := '0'; - signal rst_n : std_logic := '0'; - signal rstn1 : std_logic; - signal rstn2 : std_logic; - signal errorn : std_logic; - - signal dip_switch : std_logic_vector(7 downto 0); - signal seg14_led_out : std_logic_vector(14 downto 0); - ---only for running tests!!! - signal address : std_logic_vector(19 downto 0); - signal data : std_logic_vector(31 downto 0); - signal mben : std_logic_vector(3 downto 0); - signal ramsn : std_logic_vector(1 downto 0); - signal oen : std_ulogic; - signal writen : std_ulogic; - - -- Debug support unit - signal dsubre : std_ulogic; - signal dsuen : std_ulogic; - - -- AHB DSU UART - signal dsurx : std_ulogic; - signal dsutx : std_ulogic; - signal dsurst : std_ulogic; - - -- APB Console UART1 - signal txd1 : std_ulogic; - signal rxd1 : std_ulogic; - -- simulation signals - signal txd2 : std_ulogic; - signal rxd2 : std_ulogic; - - -- Ethernet interface #1 signals - signal eth_rstn : std_ulogic; - signal etx_clk : std_ulogic; - signal erx_clk : std_ulogic; - signal erxdt : std_logic_vector(7 downto 0); - signal erx_dv : std_ulogic; - signal erx_er : std_ulogic; - signal erx_col : std_ulogic; - signal erx_crs : std_ulogic; - signal etxdt : std_logic_vector(7 downto 0); - signal etx_en : std_ulogic; - signal etx_er : std_ulogic; - signal emdc : std_ulogic; - signal emdio : std_logic; - signal egtx_clk : std_logic; - signal eth_clk125 : std_ulogic := '0'; - - -- Output signals for LEDs - signal led : std_logic_vector(7 downto 0); - - signal brdyn : std_ulogic; - -begin - -- clock and reset - clk <= not clk after ct * 1 ns; - - rst_n <= dsurst; - dsuen <= '1'; - dsubre <= '0'; - - clk200p <= not clk200p after 2.5 ns; - clk200n <= not clk200n after 2.5 ns; - - eth_clk125 <= not eth_clk125 after 4 ns; - - rstn1 <= rst_n; - - -- AHB DSU UART's rx pulled high - dsurx <= 'H'; - -- APB Console UART1's rx pulled high - rxd1 <= 'H'; - - DUT : entity work.leon3mp generic map (fabtech, memtech, padtech, disas, dbguart, pclow) - port map (reset_n => rst_n, - clk_in => clk, --- dip_switch => dip_switch, - errorn => errorn, ---only for running tests!!! - address => address(19 downto 2), - data => data(31 downto 0), - ramsn => ramsn, - mben => mben, - oen => oen, - writen => writen, - -- Debug Unit - dsubre => dsubre, - -- DSU AHB UART interface - dsutx => dsutx, - dsurx => dsurx, - -- Console UART1 interface - rxd1 => rxd1, - txd1 => txd1, - -- ETH #1 - rstn => eth_rstn, - mdio => emdio, - mdc => emdc, - rxc => erx_clk, - rx_er => erx_er, - rx_dv => erx_dv, - rx_d => erxdt(7 downto 0), - txc => etx_clk, - tx_en => etx_en, - tx_er => etx_er, - tx_d => etxdt(7 downto 0), - gtxclk => egtx_clk, - crs => erx_crs, - col => erx_col, - clk125 => eth_clk125, - - led => led, - seg14_led_out => seg14_led_out - ); - - address(1 downto 0) <= "00"; - sram0 : for i in 0 to 1 generate - sr0 : sram16 generic map (index => i * 2, abits => 18, fname => sdramfile) - port map (address(19 downto 2), data(31 - i * 16 downto 16 - i * 16), mben(i * 2 + 1), mben(i * 2), ramsn(i), writen, oen); - end generate; - - phy1 : if (CFG_GRETH = 1) generate - p0: phy generic map (address => 0) - port map(rstn => eth_rstn, - mdio => emdio, - tx_clk => etx_clk, - rx_clk => erx_clk, - rxd => erxdt(7 downto 0), - rx_dv => erx_dv, - rx_er => erx_er, - rx_col => erx_col, - rx_crs => erx_crs, - txd => etxdt(7 downto 0), - tx_en => etx_en, - tx_er => etx_er, - mdc => emdc, - gtx_clk => egtx_clk); - end generate; - - iuerr : process - begin - wait for 5000 ns; - if to_x01(not errorn) = '0' then - wait on errorn; - end if; - assert (to_x01(not errorn) = '0') - report "*** IU in error mode, simulation halted ***" - severity failure ; - end process; - - data <= buskeep(data), (others => 'H') after 250 ns; - - dsucom : process - procedure dsucfg(signal dsurx : in std_ulogic; signal dsutx : out std_ulogic) is - variable w32 : std_logic_vector(31 downto 0); - variable c8 : std_logic_vector(7 downto 0); - constant txp : time := 320 * 1 ns; - begin --- dsutx <= '1'; - dsurst <= '0'; - wait for 2500 ns; - dsurst <= '1'; - wait; - wait for 5000 ns; - txc(dsutx, 16#55#, txp); -- sync uart - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); - txa(dsutx, 16#00#, 16#00#, 16#20#, 16#2e#, txp); - - wait for 25000 ns; - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#01#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#40#, 16#00#, 16#24#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0D#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#70#, 16#11#, 16#78#, txp); - txa(dsutx, 16#91#, 16#00#, 16#00#, 16#0D#, txp); - - txa(dsutx, 16#90#, 16#40#, 16#00#, 16#44#, txp); - txa(dsutx, 16#00#, 16#00#, 16#20#, 16#00#, txp); - - txc(dsutx, 16#80#, txp); - txa(dsutx, 16#90#, 16#40#, 16#00#, 16#44#, txp); - - wait; - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#00#, 16#00#, 16#0a#, 16#aa#, txp); - txa(dsutx, 16#00#, 16#55#, 16#00#, 16#55#, txp); - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#00#, 16#00#, 16#0a#, 16#a0#, txp); - txa(dsutx, 16#01#, 16#02#, 16#09#, 16#33#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#2e#, txp); - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#91#, 16#00#, 16#00#, 16#00#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#2e#, txp); - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0f#, txp); - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#00#, txp); - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#80#, 16#00#, 16#02#, 16#10#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0f#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#91#, 16#40#, 16#00#, 16#24#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#24#, txp); - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#91#, 16#70#, 16#00#, 16#00#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#03#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); - txa(dsutx, 16#00#, 16#00#, 16#ff#, 16#ff#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#40#, 16#00#, 16#48#, txp); - txa(dsutx, 16#00#, 16#00#, 16#00#, 16#12#, txp); - - txc(dsutx, 16#c0#, txp); - txa(dsutx, 16#90#, 16#40#, 16#00#, 16#60#, txp); - txa(dsutx, 16#00#, 16#00#, 16#12#, 16#10#, txp); - - txc(dsutx, 16#80#, txp); - txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); - rxi(dsurx, w32, txp, lresp); - - txc(dsutx, 16#a0#, txp); - txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); - rxi(dsurx, w32, txp, lresp); - end; - - begin - dsucfg(txd2, rxd2); - wait; - end process; - -end; - diff --git a/designs/leon3-lattice-latticeECP3/wave.do b/designs/leon3-lattice-latticeECP3/wave.do deleted file mode 100644 index afa24320..00000000 --- a/designs/leon3-lattice-latticeECP3/wave.do +++ /dev/null @@ -1,68 +0,0 @@ -onerror {resume} -quietly WaveActivateNextPane {} 0 -add wave -noupdate /testbench/clk -add wave -noupdate /testbench/errorn -add wave -noupdate -radix hexadecimal /testbench/address -add wave -noupdate -radix hexadecimal /testbench/data -add wave -noupdate /testbench/ramsn -add wave -noupdate /testbench/oen -add wave -noupdate /testbench/writen -add wave -noupdate /testbench/dsuen -add wave -noupdate /testbench/dsubre -add wave -noupdate -divider eth -add wave -noupdate /testbench/eth_rstn -add wave -noupdate /testbench/etx_clk -add wave -noupdate /testbench/erx_clk -add wave -noupdate -radix hexadecimal /testbench/erxdt -add wave -noupdate /testbench/erx_dv -add wave -noupdate /testbench/erx_er -add wave -noupdate /testbench/erx_col -add wave -noupdate /testbench/erx_crs -add wave -noupdate -radix hexadecimal /testbench/etxdt -add wave -noupdate /testbench/etx_en -add wave -noupdate /testbench/etx_er -add wave -noupdate /testbench/emdc -add wave -noupdate /testbench/emdio -add wave -noupdate /testbench/egtx_clk -add wave -noupdate /testbench/eth_clk125 -add wave -noupdate /testbench/led -add wave -noupdate -childformat {{/testbench/DUT/eth1/e1/ethi.rxd -radix hexadecimal}} -subitemconfig {/testbench/DUT/eth1/e1/ethi.rxd {-height 16 -radix hexadecimal}} /testbench/DUT/eth1/e1/ethi -add wave -noupdate /testbench/DUT/eth1/e1/etho -add wave -noupdate -radix hexadecimal -childformat {{/testbench/DUT/eth1/e1/ahbmi.hgrant -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmi.hready -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmi.hresp -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmi.hrdata -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmi.hcache -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmi.hirq -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmi.testen -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmi.testrst -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmi.scanen -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmi.testoen -radix hexadecimal}} -subitemconfig {/testbench/DUT/eth1/e1/ahbmi.hgrant {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmi.hready {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmi.hresp {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmi.hrdata {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmi.hcache {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmi.hirq {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmi.testen {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmi.testrst {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmi.scanen {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmi.testoen {-height 16 -radix hexadecimal}} /testbench/DUT/eth1/e1/ahbmi -add wave -noupdate -radix hexadecimal -childformat {{/testbench/DUT/eth1/e1/ahbmo.hbusreq -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmo.hlock -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmo.htrans -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmo.haddr -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmo.hwrite -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmo.hsize -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmo.hburst -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmo.hprot -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmo.hwdata -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmo.hirq -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmo.hconfig -radix hexadecimal} {/testbench/DUT/eth1/e1/ahbmo.hindex -radix hexadecimal}} -subitemconfig {/testbench/DUT/eth1/e1/ahbmo.hbusreq {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmo.hlock {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmo.htrans {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmo.haddr {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmo.hwrite {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmo.hsize {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmo.hburst {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmo.hprot {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmo.hwdata {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmo.hirq {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmo.hconfig {-height 16 -radix hexadecimal} /testbench/DUT/eth1/e1/ahbmo.hindex {-height 16 -radix hexadecimal}} /testbench/DUT/eth1/e1/ahbmo -add wave -noupdate -divider {New Divider} -add wave -noupdate -radix hexadecimal /testbench/sram0(1)/sr0/d -add wave -noupdate -radix hexadecimal /testbench/sram0(1)/sr0/sr0/d -add wave -noupdate -radix hexadecimal /testbench/sram0(1)/sr0/sr1/d -add wave -noupdate -divider {New Divider} -add wave -noupdate -radix hexadecimal /testbench/sram0(0)/sr0/d -add wave -noupdate -radix hexadecimal /testbench/sram0(0)/sr0/sr0/d -add wave -noupdate -radix hexadecimal /testbench/sram0(0)/sr0/sr1/d -add wave -noupdate -divider {CPU 1} -add wave -noupdate -radix hexadecimal -childformat {{/testbench/DUT/apbi.psel -radix hexadecimal} {/testbench/DUT/apbi.penable -radix hexadecimal} {/testbench/DUT/apbi.paddr -radix hexadecimal} {/testbench/DUT/apbi.pwrite -radix hexadecimal} {/testbench/DUT/apbi.pwdata -radix hexadecimal} {/testbench/DUT/apbi.pirq -radix hexadecimal} {/testbench/DUT/apbi.testen -radix hexadecimal} {/testbench/DUT/apbi.testrst -radix hexadecimal} {/testbench/DUT/apbi.scanen -radix hexadecimal} {/testbench/DUT/apbi.testoen -radix hexadecimal}} -subitemconfig {/testbench/DUT/apbi.psel {-height 16 -radix hexadecimal} /testbench/DUT/apbi.penable {-height 16 -radix hexadecimal} /testbench/DUT/apbi.paddr {-height 16 -radix hexadecimal} /testbench/DUT/apbi.pwrite {-height 16 -radix hexadecimal} /testbench/DUT/apbi.pwdata {-height 16 -radix hexadecimal} /testbench/DUT/apbi.pirq {-height 16 -radix hexadecimal} /testbench/DUT/apbi.testen {-height 16 -radix hexadecimal} /testbench/DUT/apbi.testrst {-height 16 -radix hexadecimal} /testbench/DUT/apbi.scanen {-height 16 -radix hexadecimal} /testbench/DUT/apbi.testoen {-height 16 -radix hexadecimal}} /testbench/DUT/apbi -add wave -noupdate -radix hexadecimal /testbench/DUT/apbo -add wave -noupdate -radix hexadecimal -childformat {{/testbench/DUT/ahbsi.hsel -radix hexadecimal} {/testbench/DUT/ahbsi.haddr -radix hexadecimal} {/testbench/DUT/ahbsi.hwrite -radix hexadecimal} {/testbench/DUT/ahbsi.htrans -radix hexadecimal} {/testbench/DUT/ahbsi.hsize -radix hexadecimal} {/testbench/DUT/ahbsi.hburst -radix hexadecimal} {/testbench/DUT/ahbsi.hwdata -radix hexadecimal} {/testbench/DUT/ahbsi.hprot -radix hexadecimal} {/testbench/DUT/ahbsi.hready -radix hexadecimal} {/testbench/DUT/ahbsi.hmaster -radix hexadecimal} {/testbench/DUT/ahbsi.hmastlock -radix hexadecimal} {/testbench/DUT/ahbsi.hmbsel -radix hexadecimal} {/testbench/DUT/ahbsi.hcache -radix hexadecimal} {/testbench/DUT/ahbsi.hirq -radix hexadecimal} {/testbench/DUT/ahbsi.testen -radix hexadecimal} {/testbench/DUT/ahbsi.testrst -radix hexadecimal} {/testbench/DUT/ahbsi.scanen -radix hexadecimal} {/testbench/DUT/ahbsi.testoen -radix hexadecimal}} -subitemconfig {/testbench/DUT/ahbsi.hsel {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.haddr {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.hwrite {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.htrans {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.hsize {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.hburst {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.hwdata {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.hprot {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.hready {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.hmaster {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.hmastlock {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.hmbsel {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.hcache {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.hirq {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.testen {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.testrst {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.scanen {-height 16 -radix hexadecimal} /testbench/DUT/ahbsi.testoen {-height 16 -radix hexadecimal}} /testbench/DUT/ahbsi -add wave -noupdate -radix hexadecimal /testbench/DUT/ahbso -add wave -noupdate -radix hexadecimal /testbench/DUT/ahbmi -add wave -noupdate -radix hexadecimal /testbench/DUT/ahbmo -add wave -noupdate -radix hexadecimal -childformat {{/testbench/DUT/test0/r.hwrite -radix hexadecimal} {/testbench/DUT/test0/r.hsel -radix hexadecimal} {/testbench/DUT/test0/r.haddr -radix hexadecimal} {/testbench/DUT/test0/r.htrans -radix hexadecimal}} -subitemconfig {/testbench/DUT/test0/r.hwrite {-height 16 -radix hexadecimal} /testbench/DUT/test0/r.hsel {-height 16 -radix hexadecimal} /testbench/DUT/test0/r.haddr {-height 16 -radix hexadecimal} /testbench/DUT/test0/r.htrans {-height 16 -radix hexadecimal}} /testbench/DUT/test0/r -add wave -noupdate -radix hexadecimal -childformat {{/testbench/DUT/irqctrl/irqctrl0/r.imask -radix hexadecimal} {/testbench/DUT/irqctrl/irqctrl0/r.ilevel -radix hexadecimal} {/testbench/DUT/irqctrl/irqctrl0/r.ipend -radix hexadecimal} {/testbench/DUT/irqctrl/irqctrl0/r.iforce -radix hexadecimal} {/testbench/DUT/irqctrl/irqctrl0/r.ibroadcast -radix hexadecimal} {/testbench/DUT/irqctrl/irqctrl0/r.irl -radix hexadecimal} {/testbench/DUT/irqctrl/irqctrl0/r.cpurst -radix hexadecimal}} -subitemconfig {/testbench/DUT/irqctrl/irqctrl0/r.imask {-height 16 -radix hexadecimal} /testbench/DUT/irqctrl/irqctrl0/r.ilevel {-height 16 -radix hexadecimal} /testbench/DUT/irqctrl/irqctrl0/r.ipend {-height 16 -radix hexadecimal} /testbench/DUT/irqctrl/irqctrl0/r.iforce {-height 16 -radix hexadecimal} /testbench/DUT/irqctrl/irqctrl0/r.ibroadcast {-height 16 -radix hexadecimal} /testbench/DUT/irqctrl/irqctrl0/r.irl {-height 16 -radix hexadecimal} /testbench/DUT/irqctrl/irqctrl0/r.cpurst {-height 16 -radix hexadecimal}} /testbench/DUT/irqctrl/irqctrl0/r -add wave -noupdate -radix hexadecimal -childformat {{/testbench/DUT/irqctrl/irqctrl0/irqi(0) -radix hexadecimal}} -subitemconfig {/testbench/DUT/irqctrl/irqctrl0/irqi(0) {-height 16 -radix hexadecimal}} /testbench/DUT/irqctrl/irqctrl0/irqi -add wave -noupdate -radix hexadecimal -childformat {{/testbench/DUT/irqctrl/irqctrl0/irqo(0) -radix hexadecimal}} -subitemconfig {/testbench/DUT/irqctrl/irqctrl0/irqo(0) {-height 16 -radix hexadecimal}} /testbench/DUT/irqctrl/irqctrl0/irqo -TreeUpdate [SetDefaultTree] -WaveRestoreCursors {{Cursor 1} {1222798611 ps} 0} -configure wave -namecolwidth 205 -configure wave -valuecolwidth 146 -configure wave -justifyvalue left -configure wave -signalnamewidth 0 -configure wave -snapdistance 10 -configure wave -datasetprefix 0 -configure wave -rowmargin 4 -configure wave -childrowmargin 2 -configure wave -gridoffset 0 -configure wave -gridperiod 1 -configure wave -griddelta 40 -configure wave -timeline 0 -configure wave -timelineunits ns -update -WaveRestoreZoom {1222817786 ps} {1222935690 ps} diff --git a/designs/leon3-memec-v2mb1000/Makefile b/designs/leon3-memec-v2mb1000/Makefile index ffe75bf1..0664e509 100644 --- a/designs/leon3-memec-v2mb1000/Makefile +++ b/designs/leon3-memec-v2mb1000/Makefile @@ -19,9 +19,9 @@ CLEAN=soft-clean TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix ihp gleichmann usbhc + tmtc openchip hynix ihp usbhc DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - usb grusbhc haps hcan + usb grusbhc hcan FILESKIP = grcan.vhd i2cmst.vhd include $(GRLIB)/bin/Makefile diff --git a/designs/leon3-memec-v2mb1000/ahbrom.vhd b/designs/leon3-memec-v2mb1000/ahbrom.vhd index a61a155a..2091c411 100644 --- a/designs/leon3-memec-v2mb1000/ahbrom.vhd +++ b/designs/leon3-memec-v2mb1000/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-memec-v2mb1000/config.help b/designs/leon3-memec-v2mb1000/config.help index ff755148..47476586 100644 --- a/designs/leon3-memec-v2mb1000/config.help +++ b/designs/leon3-memec-v2mb1000/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-memec-v2mb1000/lconfig.tk b/designs/leon3-memec-v2mb1000/lconfig.tk index b5112ae6..7e875872 100755 --- a/designs/leon3-memec-v2mb1000/lconfig.tk +++ b/designs/leon3-memec-v2mb1000/lconfig.tk @@ -753,7 +753,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -763,7 +764,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -906,8 +909,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -926,6 +931,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1015,9 +1024,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1071,10 +1081,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1120,14 +1131,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1200,13 +1213,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1246,22 +1267,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1318,21 +1607,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1379,36 +1668,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1416,48 +1706,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1513,27 +1804,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1574,16 +1865,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1592,34 +1884,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1676,92 +1969,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1769,18 +2062,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1821,52 +2114,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1874,162 +2168,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2085,45 +2380,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2163,18 +2460,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2182,55 +2480,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2287,24 +2590,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2344,17 +2647,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2362,37 +2666,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2448,16 +2753,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2505,9 +2817,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2529,21 +2839,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2852,14 +3167,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2933,17 +3248,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3518,16 +3833,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3589,21 +3904,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3663,14 +3978,14 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 18 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3724,17 +4039,17 @@ proc update_define_menu18 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3790,15 +4105,15 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 19 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 19 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3894,19 +4209,19 @@ proc update_menu19 {} { proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4080,7 +4395,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4090,6 +4406,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4114,6 +4432,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4126,14 +4445,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4146,27 +4470,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4176,17 +4500,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4198,12 +4522,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4213,10 +4537,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4227,7 +4551,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4239,26 +4563,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4266,27 +4592,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4307,7 +4637,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4339,7 +4669,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4350,14 +4680,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4437,7 +4767,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4447,6 +4778,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4485,6 +4818,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4497,9 +4831,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4513,239 +4848,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4790,13 +5275,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -4861,38 +5346,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4971,7 +5456,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4981,6 +5467,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4999,8 +5487,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5083,11 +5576,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5108,6 +5603,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5207,8 +5706,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5227,6 +5728,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5267,324 +5772,350 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-memec-v2mb1000/leon3mp.vhd b/designs/leon3-memec-v2mb1000/leon3mp.vhd index 3ea1a629..0506e17f 100644 --- a/designs/leon3-memec-v2mb1000/leon3mp.vhd +++ b/designs/leon3-memec-v2mb1000/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-memec-v2mb1000/testbench.vhd b/designs/leon3-memec-v2mb1000/testbench.vhd index 60a0e8af..396546f9 100644 --- a/designs/leon3-memec-v2mb1000/testbench.vhd +++ b/designs/leon3-memec-v2mb1000/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-memec-v2mb1000/tkconfig.h b/designs/leon3-memec-v2mb1000/tkconfig.h index ece231a4..bbf7c9b6 100644 --- a/designs/leon3-memec-v2mb1000/tkconfig.h +++ b/designs/leon3-memec-v2mb1000/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-nuhorizons-3s1500/Makefile b/designs/leon3-nuhorizons-3s1500/Makefile index 42829b6c..ad31282e 100644 --- a/designs/leon3-nuhorizons-3s1500/Makefile +++ b/designs/leon3-nuhorizons-3s1500/Makefile @@ -1,4 +1,4 @@ -#GRLIB=../.. +GRLIB=../.. TOP=leon3mp BOARD=nuhorizons-sp3-1500 include $(GRLIB)/boards/$(BOARD)/Makefile.inc @@ -16,10 +16,10 @@ CLEAN=soft-clean TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress ihp gleichmann usbhc spw gsi fmf spansion + tmtc openchip hynix cypress ihp usbhc spw gsi fmf spansion DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest ddr \ - grusbhc ata ac97 spacewire usb coremp7 leon4 leon4b64 l2cache \ - slink ascs pwm haps gr1553b iommu + grusbhc spacewire usb leon4 leon4v0 l2cache \ + slink ascs pwm gr1553b iommu FILESKIP = grcan.vhd include $(GRLIB)/bin/Makefile diff --git a/designs/leon3-nuhorizons-3s1500/ahbrom.vhd b/designs/leon3-nuhorizons-3s1500/ahbrom.vhd index e5eb66ec..df5aba6a 100644 --- a/designs/leon3-nuhorizons-3s1500/ahbrom.vhd +++ b/designs/leon3-nuhorizons-3s1500/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-nuhorizons-3s1500/config.help b/designs/leon3-nuhorizons-3s1500/config.help index fc3448c2..447e8bd6 100644 --- a/designs/leon3-nuhorizons-3s1500/config.help +++ b/designs/leon3-nuhorizons-3s1500/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ @@ -610,7 +643,13 @@ CONFIG_AHB_SPLIT Unless you actually have an AHB slave that can generate AHB split responses, say N and save some gates. -Default AHB master +Enable full PnP decoding +CONFIG_AHB_FPNPEN + Say Y here to enable full decoding of the PnP configuration records in + in the AHB arbiter. When disabled the user-defined registers in the + PnP configuration records are not mapped in the configuration area. + +IO area start address CONFIG_AHB_IOADDR Selects the MSB adddress (HADDR[31:20]) of the AHB IO area, as defined in the plug&play extentions of the AMBA bus. Should be kept to FFF diff --git a/designs/leon3-nuhorizons-3s1500/config.vhd.h b/designs/leon3-nuhorizons-3s1500/config.vhd.h index fe8f5811..91b761e4 100644 --- a/designs/leon3-nuhorizons-3s1500/config.vhd.h +++ b/designs/leon3-nuhorizons-3s1500/config.vhd.h @@ -29,7 +29,7 @@ constant CFG_NOTAG : integer := CONFIG_NOTAG; constant CFG_NWP : integer := CONFIG_IU_WATCHPOINTS; constant CFG_PWD : integer := CONFIG_PWD*2; - constant CFG_FPU : integer := CONFIG_FPU + 16*CONFIG_FPU_NETLIST; + constant CFG_FPU : integer := CONFIG_FPU + 16*CONFIG_FPU_NETLIST + 32*CONFIG_FPU_GRFPU_SHARED; constant CFG_GRFPUSH : integer := CONFIG_FPU_GRFPU_SHARED; constant CFG_ICEN : integer := CONFIG_ICACHE_ENABLE; constant CFG_ISETS : integer := CFG_IU_ISETS; @@ -74,6 +74,7 @@ constant CFG_DEFMST : integer := CONFIG_AHB_DEFMST; constant CFG_RROBIN : integer := CONFIG_AHB_RROBIN; constant CFG_SPLIT : integer := CONFIG_AHB_SPLIT; + constant CFG_FPNPEN : integer := CONFIG_AHB_FPNPEN; constant CFG_AHBIO : integer := 16#CONFIG_AHB_IOADDR#; constant CFG_APBADDR : integer := 16#CONFIG_APB_HADDR#; constant CFG_AHB_MON : integer := CONFIG_AHB_MON; diff --git a/designs/leon3-nuhorizons-3s1500/lconfig.tk b/designs/leon3-nuhorizons-3s1500/lconfig.tk index 311ac428..731b38b2 100755 --- a/designs/leon3-nuhorizons-3s1500/lconfig.tk +++ b/designs/leon3-nuhorizons-3s1500/lconfig.tk @@ -752,7 +752,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -762,7 +763,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -905,8 +908,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -925,6 +930,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1014,9 +1023,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1070,10 +1080,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1119,14 +1130,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1199,13 +1212,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1245,22 +1266,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1317,21 +1606,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1378,36 +1667,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1415,48 +1705,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1512,27 +1803,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1573,16 +1864,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1591,34 +1883,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1675,92 +1968,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1768,18 +2061,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1820,52 +2113,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1873,162 +2167,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2084,45 +2379,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2162,18 +2459,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2181,55 +2479,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2286,24 +2589,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2343,17 +2646,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2361,37 +2665,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2446,6 +2751,28 @@ proc menu9 {w title} { pack $w.config.canvas -side right -fill y + bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE + menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x1.x.menu 5 + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ + bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN + int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ + bool $w.config.f 9 6 "Use LEON3FT netlist " CONFIG_LEON3_NETLIST @@ -2483,12 +2810,65 @@ proc menu9 {w title} { } proc update_menu9 {} { + global CONFIG_LEON3 + global CONFIG_LEON3FT_EN + if {($CONFIG_LEON3 == 1)} then { + configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} + global CONFIG_FPU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} + global CONFIG_RF_ERRINJ + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} + global CONFIG_CACHE_FT_EN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + configure_entry .menu9.config.f.x4 normal {n l y}} else {configure_entry .menu9.config.f.x4 disabled {y n l}} + global CONFIG_CACHE_ERRINJ + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {.menu9.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu9.config.f.x5.l configure -state normal; } else {.menu9.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu9.config.f.x5.l configure -state disabled} + global CONFIG_LEON3_NETLIST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + configure_entry .menu9.config.f.x6 normal {n l y}} else {configure_entry .menu9.config.f.x6 disabled {y n l}} } proc update_define_menu9 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_LEON3 + global CONFIG_LEON3FT_EN + if {($CONFIG_LEON3 == 1)} then { + set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} + global tmpvar_26 + global CONFIG_IUFT_NONE + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + global CONFIG_IUFT_PAR + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + global CONFIG_IUFT_DMR + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + global CONFIG_IUFT_BCH + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + global CONFIG_IUFT_TMR + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} + global CONFIG_RF_ERRINJ + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} + global CONFIG_CACHE_FT_EN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + set CONFIG_CACHE_FT_EN [expr $CONFIG_CACHE_FT_EN&15]} else {set CONFIG_CACHE_FT_EN [expr $CONFIG_CACHE_FT_EN|16]} + global CONFIG_CACHE_ERRINJ + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {validate_int CONFIG_CACHE_ERRINJ "$CONFIG_CACHE_ERRINJ" 0} + global CONFIG_LEON3_NETLIST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + set CONFIG_LEON3_NETLIST [expr $CONFIG_LEON3_NETLIST&15]} else {set CONFIG_LEON3_NETLIST [expr $CONFIG_LEON3_NETLIST|16]} } @@ -2666,12 +3046,13 @@ proc menu11 {w title} { int $w.config.f 11 0 "Default AHB master" CONFIG_AHB_DEFMST bool $w.config.f 11 1 "Round-robin arbiter " CONFIG_AHB_RROBIN bool $w.config.f 11 2 "AHB split-transaction support " CONFIG_AHB_SPLIT - hex $w.config.f 11 3 "I/O area start address (haddr\[31:20\]) " CONFIG_AHB_IOADDR - hex $w.config.f 11 4 "AHB/APB bridge address (haddr\[31:20\]) " CONFIG_APB_HADDR - bool $w.config.f 11 5 "Enable AMBA AHB monitor " CONFIG_AHB_MON - bool $w.config.f 11 6 "Report AHB errors " CONFIG_AHB_MONERR - bool $w.config.f 11 7 "Report AHB warings " CONFIG_AHB_MONWAR - bool $w.config.f 11 8 "Write trace to simulation console " CONFIG_AHB_DTRACE + bool $w.config.f 11 3 "Enable full plug&play decoding " CONFIG_AHB_FPNPEN + hex $w.config.f 11 4 "I/O area start address (haddr\[31:20\]) " CONFIG_AHB_IOADDR + hex $w.config.f 11 5 "AHB/APB bridge address (haddr\[31:20\]) " CONFIG_APB_HADDR + bool $w.config.f 11 6 "Enable AMBA AHB monitor " CONFIG_AHB_MON + bool $w.config.f 11 7 "Report AHB errors " CONFIG_AHB_MONERR + bool $w.config.f 11 8 "Report AHB warings " CONFIG_AHB_MONWAR + bool $w.config.f 11 9 "Write trace to simulation console " CONFIG_AHB_DTRACE @@ -2711,10 +3092,10 @@ proc update_menu11 {} { global CONFIG_AHB_MON global CONFIG_AHB_MONERR if {($CONFIG_AHB_MON == 1)} then { - configure_entry .menu11.config.f.x6 normal {n l y}} else {configure_entry .menu11.config.f.x6 disabled {y n l}} + configure_entry .menu11.config.f.x7 normal {n l y}} else {configure_entry .menu11.config.f.x7 disabled {y n l}} global CONFIG_AHB_MONWAR if {($CONFIG_AHB_MON == 1)} then { - configure_entry .menu11.config.f.x7 normal {n l y}} else {configure_entry .menu11.config.f.x7 disabled {y n l}} + configure_entry .menu11.config.f.x8 normal {n l y}} else {configure_entry .menu11.config.f.x8 disabled {y n l}} } @@ -2785,14 +3166,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2866,17 +3247,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3214,16 +3595,16 @@ proc menu15 {w title} { hex $w.config.f 15 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 15 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 15 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 15 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 15 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 15 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3285,21 +3666,21 @@ proc update_define_menu15 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3359,14 +3740,14 @@ proc menu16 {w title} { bool $w.config.f 16 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 16 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 16 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 16 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3420,17 +3801,17 @@ proc update_define_menu16 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3617,26 +3998,26 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 18 2 "Enable secondary UART " CONFIG_UART2_ENABLE - global tmpvar_30 - minimenu $w.config.f 18 3 "UART2 FIFO depth" tmpvar_30 CONFIG_UA2_FIFO1 + global tmpvar_32 + minimenu $w.config.f 18 3 "UART2 FIFO depth" tmpvar_32 CONFIG_UA2_FIFO1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"UART2 FIFO depth\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_32 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_32 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 6 bool $w.config.f 18 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 18 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3730,36 +4111,36 @@ proc update_menu18 {} { proc update_define_menu18 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_DSU_UART global CONFIG_UART2_ENABLE if {($CONFIG_DSU_UART == 0)} then { set CONFIG_UART2_ENABLE [expr $CONFIG_UART2_ENABLE&15]} else {set CONFIG_UART2_ENABLE [expr $CONFIG_UART2_ENABLE|16]} - global tmpvar_30 + global tmpvar_32 global CONFIG_UA2_FIFO1 - if {$tmpvar_30 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} + if {$tmpvar_32 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} global CONFIG_UA2_FIFO2 - if {$tmpvar_30 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} + if {$tmpvar_32 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} global CONFIG_UA2_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} + if {$tmpvar_32 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} global CONFIG_UA2_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} + if {$tmpvar_32 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} global CONFIG_UA2_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} + if {$tmpvar_32 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} global CONFIG_UA2_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} + if {$tmpvar_32 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -3929,7 +4310,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -3939,6 +4321,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -3963,6 +4347,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -3975,14 +4360,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -3995,27 +4385,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4025,17 +4415,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4047,12 +4437,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4062,10 +4452,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4076,7 +4466,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4088,26 +4478,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4115,25 +4507,42 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 +set CONFIG_LEON3FT_EN 0 +set tmpvar_26 "(not set)" +set CONFIG_IUFT_NONE 0 +set CONFIG_IUFT_PAR 0 +set CONFIG_IUFT_DMR 0 +set CONFIG_IUFT_BCH 0 +set CONFIG_IUFT_TMR 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 +set CONFIG_RF_ERRINJ 0 +set CONFIG_CACHE_FT_EN 0 +set CONFIG_CACHE_ERRINJ 0 +set CONFIG_LEON3_NETLIST 0 set CONFIG_IU_DISAS 0 set CONFIG_IU_DISAS_NET 0 set CONFIG_DEBUG_PC32 0 set CONFIG_AHB_DEFMST 0 set CONFIG_AHB_RROBIN 0 set CONFIG_AHB_SPLIT 0 +set CONFIG_AHB_FPNPEN 0 set CONFIG_AHB_IOADDR FFF set CONFIG_APB_HADDR 800 set CONFIG_AHB_MON 0 @@ -4143,7 +4552,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4169,7 +4578,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4180,7 +4589,7 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 @@ -4193,7 +4602,7 @@ set CONFIG_CANLOOP 0 set CONFIG_CAN_SYNCRST 0 set CONFIG_CAN_FT 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4201,7 +4610,7 @@ set CONFIG_UA1_FIFO8 0 set CONFIG_UA1_FIFO16 0 set CONFIG_UA1_FIFO32 0 set CONFIG_UART2_ENABLE 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_UA2_FIFO1 0 set CONFIG_UA2_FIFO2 0 set CONFIG_UA2_FIFO4 0 @@ -4228,18 +4637,6 @@ set CONFIG_SYN_ARTISAN 4 set CONFIG_PCI_ENABLE 4 set CONFIG_HAS_SHARED_GRFPU 4 set CONFIG_FPU_GRFPU_SH 4 -set CONFIG_LEON3FT_PRESENT 4 -set CONFIG_LEON3FT_EN 4 -set CONFIG_IUFT_NONE 4 -set CONFIG_IUFT_PAR 4 -set CONFIG_IUFT_DMR 4 -set CONFIG_IUFT_BCH 4 -set CONFIG_IUFT_TMR 4 -set CONFIG_FPUFT_EN 4 -set CONFIG_RF_ERRINJ 4 -set CONFIG_CACHE_FT_EN 4 -set CONFIG_CACHE_ERRINJ 4 -set CONFIG_LEON3_NETLIST 4 set CONFIG_MODULES 4 proc writeconfig {file1 file2} { set cfg [open $file1 w] @@ -4296,7 +4693,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4306,6 +4704,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4344,6 +4744,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4356,9 +4757,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4372,228 +4774,396 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} + global CONFIG_LEON3FT_EN + if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } + global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} + global CONFIG_RF_ERRINJ + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } + global CONFIG_CACHE_FT_EN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_CACHE_FT_EN $CONFIG_CACHE_FT_EN [list $notmod] 2 } + global CONFIG_CACHE_ERRINJ + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_int $cfg $autocfg CONFIG_CACHE_ERRINJ $CONFIG_CACHE_ERRINJ $notmod } + global CONFIG_LEON3_NETLIST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3_NETLIST $CONFIG_LEON3_NETLIST [list $notmod] 2 } if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "VHDL debug settings "} global CONFIG_IU_DISAS if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_DISAS $CONFIG_IU_DISAS [list $notmod] 2 } @@ -4608,6 +5178,8 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_AHB_RROBIN $CONFIG_AHB_RROBIN [list $notmod] 2 global CONFIG_AHB_SPLIT write_tristate $cfg $autocfg CONFIG_AHB_SPLIT $CONFIG_AHB_SPLIT [list $notmod] 2 + global CONFIG_AHB_FPNPEN + write_tristate $cfg $autocfg CONFIG_AHB_FPNPEN $CONFIG_AHB_FPNPEN [list $notmod] 2 global CONFIG_AHB_IOADDR write_hex $cfg $autocfg CONFIG_AHB_IOADDR $CONFIG_AHB_IOADDR $notmod global CONFIG_APB_HADDR @@ -4628,13 +5200,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -4679,27 +5251,27 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "CAN " global CONFIG_CAN_ENABLE write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2 @@ -4716,24 +5288,24 @@ proc writeconfig {file1 file2} { write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_UART2_ENABLE if {($CONFIG_DSU_UART == 0)} then {write_tristate $cfg $autocfg CONFIG_UART2_ENABLE $CONFIG_UART2_ENABLE [list $notmod] 2 } - global tmpvar_30 + global tmpvar_32 if {($CONFIG_DSU_UART == 0) && ($CONFIG_UART2_ENABLE == 1)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4806,7 +5378,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4816,6 +5389,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4834,8 +5409,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -4918,11 +5498,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -4938,6 +5520,15 @@ proc clear_choices { } { global CONFIG_DSU_ATRACESZ4; set CONFIG_DSU_ATRACESZ4 0 global CONFIG_DSU_ATRACESZ8; set CONFIG_DSU_ATRACESZ8 0 global CONFIG_DSU_ATRACESZ16; set CONFIG_DSU_ATRACESZ16 0 + global CONFIG_IUFT_NONE; set CONFIG_IUFT_NONE 0 + global CONFIG_IUFT_PAR; set CONFIG_IUFT_PAR 0 + global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 + global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 + global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5043,8 +5634,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5063,6 +5656,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5103,326 +5700,364 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } global tmpvar_26 - set tmpvar_26 "2" + set tmpvar_26 "None" + global CONFIG_IUFT_NONE + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } + global CONFIG_IUFT_PAR + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + global CONFIG_IUFT_DMR + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + global CONFIG_IUFT_BCH + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } + global CONFIG_IUFT_TMR + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } - global tmpvar_30 - set tmpvar_30 "1" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } + global tmpvar_32 + set tmpvar_32 "1" global CONFIG_UA2_FIFO1 - if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_30 "1" } + if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_32 "1" } global CONFIG_UA2_FIFO2 - if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_30 "2" } + if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_32 "2" } global CONFIG_UA2_FIFO4 - if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_32 "4" } global CONFIG_UA2_FIFO8 - if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_32 "8" } global CONFIG_UA2_FIFO16 - if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_32 "16" } global CONFIG_UA2_FIFO32 - if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_32 "32" } } diff --git a/designs/leon3-nuhorizons-3s1500/leon3mp.vhd b/designs/leon3-nuhorizons-3s1500/leon3mp.vhd index 770a7957..b041dfab 100644 --- a/designs/leon3-nuhorizons-3s1500/leon3mp.vhd +++ b/designs/leon3-nuhorizons-3s1500/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-nuhorizons-3s1500/nuhosp3.vhd b/designs/leon3-nuhorizons-3s1500/nuhosp3.vhd index 620964ef..44a202af 100644 --- a/designs/leon3-nuhorizons-3s1500/nuhosp3.vhd +++ b/designs/leon3-nuhorizons-3s1500/nuhosp3.vhd @@ -154,7 +154,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '0'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-nuhorizons-3s1500/smc_mctrl.vhd b/designs/leon3-nuhorizons-3s1500/smc_mctrl.vhd index cbeb3dfa..238e8791 100644 --- a/designs/leon3-nuhorizons-3s1500/smc_mctrl.vhd +++ b/designs/leon3-nuhorizons-3s1500/smc_mctrl.vhd @@ -897,7 +897,6 @@ begin ribdrive <= vbdrive; risbdrive <= vsbdrive; - ahbso.hcache <= not r.area(io); memo.address <= r.address; memo.sa <= r.sa; memo.ramsn <= "111" & r.ramsn; diff --git a/designs/leon3-nuhorizons-3s1500/testbench.vhd b/designs/leon3-nuhorizons-3s1500/testbench.vhd index 15b13d80..d4a6e616 100644 --- a/designs/leon3-nuhorizons-3s1500/testbench.vhd +++ b/designs/leon3-nuhorizons-3s1500/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-nuhorizons-3s1500/tkconfig.h b/designs/leon3-nuhorizons-3s1500/tkconfig.h index e20b6e75..9baca540 100644 --- a/designs/leon3-nuhorizons-3s1500/tkconfig.h +++ b/designs/leon3-nuhorizons-3s1500/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -657,6 +679,10 @@ #define CONFIG_AHB_RROBIN 0 #endif +#ifndef CONFIG_AHB_FPNPEN +#define CONFIG_AHB_FPNPEN 0 +#endif + #ifndef CONFIG_AHB_IOADDR #define CONFIG_AHB_IOADDR FFF #endif diff --git a/designs/leon3-terasic-de0-nano/Makefile b/designs/leon3-terasic-de0-nano/Makefile index 95894648..298f524b 100644 --- a/designs/leon3-terasic-de0-nano/Makefile +++ b/designs/leon3-terasic-de0-nano/Makefile @@ -20,12 +20,12 @@ SYNPOPT="set_option -pipe 1; set_option -retiming 1; set_option -write_apr_const TECHLIBS = altera altera_mf cycloneiii LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress ihp gleichmann fmf spansion gsi -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr ata haps \ - slink ascs coremp7 ac97 eon3ft leon4 leon4b64 l2cache \ + tmtc openchip hynix cypress ihp fmf spansion gsi +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr \ + slink ascs leon3ft leon4 leon4v0 l2cache \ spacewire usb pwm gr1553b iommu pci leon3ft hcan -FILESKIP = grcan.vhd simple_spi_top.v ata_device.v i2c_slave_model.v +FILESKIP = grcan.vhd ata_device.v i2c_slave_model.v include $(GRLIB)/bin/Makefile include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-terasic-de0-nano/ahbrom.vhd b/designs/leon3-terasic-de0-nano/ahbrom.vhd index 47d2dd1b..5bd3e7c3 100644 --- a/designs/leon3-terasic-de0-nano/ahbrom.vhd +++ b/designs/leon3-terasic-de0-nano/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-terasic-de0-nano/clkgen_de0.vhd b/designs/leon3-terasic-de0-nano/clkgen_de0.vhd index d7777c05..7dab9963 100644 --- a/designs/leon3-terasic-de0-nano/clkgen_de0.vhd +++ b/designs/leon3-terasic-de0-nano/clkgen_de0.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-terasic-de0-nano/config.help b/designs/leon3-terasic-de0-nano/config.help index cdad048e..f4bcacb9 100644 --- a/designs/leon3-terasic-de0-nano/config.help +++ b/designs/leon3-terasic-de0-nano/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. diff --git a/designs/leon3-terasic-de0-nano/lconfig.tk b/designs/leon3-terasic-de0-nano/lconfig.tk index d6e940b2..9fdb08e7 100755 --- a/designs/leon3-terasic-de0-nano/lconfig.tk +++ b/designs/leon3-terasic-de0-nano/lconfig.tk @@ -753,7 +753,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -763,7 +764,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -906,8 +909,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -926,6 +931,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1015,9 +1024,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1071,10 +1081,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1120,14 +1131,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1200,13 +1213,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1246,22 +1267,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1318,21 +1607,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1379,36 +1668,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1416,48 +1706,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1513,28 +1804,28 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH - global tmpvar_7 - minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x4.x.menu 3 bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1575,20 +1866,21 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1597,38 +1889,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} - global tmpvar_7 + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1685,92 +1978,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1778,18 +2071,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1830,52 +2123,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1883,162 +2177,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2094,45 +2389,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2172,18 +2469,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2191,55 +2489,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2296,24 +2599,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2353,17 +2656,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2371,37 +2675,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2457,22 +2762,22 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - global tmpvar_26 - minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_26 CONFIG_FPUFT_NONE + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" - $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN @@ -2543,26 +2848,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global tmpvar_26 + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 global CONFIG_FPUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} global CONFIG_FPUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} global CONFIG_FPUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} global CONFIG_FPUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -3449,16 +3754,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_28 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_28 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3520,21 +3825,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_28 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_28 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_28 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3593,15 +3898,15 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_28 - minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_28 CONFIG_UA1_FIFO1 + global tmpvar_29 + minimenu $w.config.f 18 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 18 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 18 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3698,19 +4003,19 @@ proc update_menu18 {} { proc update_define_menu18 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_28 + global tmpvar_29 global CONFIG_UA1_FIFO1 - if {$tmpvar_28 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_28 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -3907,12 +4212,12 @@ proc menu20 {w title} { bool $w.config.f 20 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN int $w.config.f 20 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN bool $w.config.f 20 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM - global tmpvar_29 - minimenu $w.config.f 20 11 "Fault-tolerance" tmpvar_29 CONFIG_SPICTRL_NOFT + global tmpvar_30 + minimenu $w.config.f 20 11 "Fault-tolerance" tmpvar_30 CONFIG_SPICTRL_NOFT menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" - $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_29 -value "None" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_29 -value "Parity-DMR" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_29 -value "TMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_30 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_30 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_30 -value "TMR" -command "update_active" menusplit $w $w.config.f.x11.x.menu 3 @@ -4012,13 +4317,13 @@ proc update_define_menu20 {} { global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} - global tmpvar_29 + global tmpvar_30 global CONFIG_SPICTRL_NOFT - if {$tmpvar_29 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + if {$tmpvar_30 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} global CONFIG_SPICTRL_DMRFT - if {$tmpvar_29 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + if {$tmpvar_30 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} global CONFIG_SPICTRL_TMRFT - if {$tmpvar_29 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} + if {$tmpvar_30 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } @@ -4160,7 +4465,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4170,6 +4476,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4194,6 +4502,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4206,14 +4515,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4226,28 +4540,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 set CONFIG_FPU_GRFPU_SH 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4257,17 +4571,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4279,12 +4593,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4294,10 +4608,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4308,7 +4622,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4320,26 +4634,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4347,27 +4663,27 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_FPUFT_NONE 0 set CONFIG_FPUFT_PAR 0 set CONFIG_FPUFT_DMR 0 @@ -4410,7 +4726,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4420,7 +4736,7 @@ set CONFIG_AHBRAM_SZ32 0 set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_UART1_ENABLE 0 -set tmpvar_28 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4456,7 +4772,7 @@ set CONFIG_SPICTRL_ODMODE 0 set CONFIG_SPICTRL_TWEN 0 set CONFIG_SPICTRL_MAXWLEN 0 set CONFIG_SPICTRL_SYNCRAM 0 -set tmpvar_29 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_SPICTRL_NOFT 0 set CONFIG_SPICTRL_DMRFT 0 set CONFIG_SPICTRL_TMRFT 0 @@ -4518,7 +4834,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4528,6 +4845,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4566,6 +4885,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4578,9 +4898,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4594,245 +4915,390 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4917,28 +5383,28 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_28 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "UARTs, timers and I/O port " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_28 + global tmpvar_29 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } + if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } + if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } + if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } + if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } + if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4999,11 +5465,11 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } - global tmpvar_29 + global tmpvar_30 if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { - if { $tmpvar_29 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } - if { $tmpvar_29 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } - if { $tmpvar_29 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} + if { $tmpvar_30 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_30 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_30 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -5048,7 +5514,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5058,6 +5525,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5076,8 +5545,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5160,11 +5634,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5281,8 +5757,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5301,6 +5779,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5341,318 +5823,334 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_FPUFT_NONE - if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_FPUFT_PAR - if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_FPUFT_DMR - if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_FPUFT_TMR - if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_28 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_28 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "1" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_28 "64" } + global tmpvar_29 + set tmpvar_29 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_28 "32" } - global tmpvar_29 - set tmpvar_29 "None" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + global tmpvar_30 + set tmpvar_30 "None" global CONFIG_SPICTRL_NOFT - if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_29 "None" } + if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_30 "None" } global CONFIG_SPICTRL_DMRFT - if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_29 "Parity-DMR" } + if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_30 "Parity-DMR" } global CONFIG_SPICTRL_TMRFT - if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_29 "TMR" } + if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_30 "TMR" } } diff --git a/designs/leon3-terasic-de0-nano/leon3mp.vhd b/designs/leon3-terasic-de0-nano/leon3mp.vhd index 86192d65..109e0016 100644 --- a/designs/leon3-terasic-de0-nano/leon3mp.vhd +++ b/designs/leon3-terasic-de0-nano/leon3mp.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-terasic-de0-nano/sdctrl16.vhd b/designs/leon3-terasic-de0-nano/sdctrl16.vhd index 25790d01..b39c88e3 100644 --- a/designs/leon3-terasic-de0-nano/sdctrl16.vhd +++ b/designs/leon3-terasic-de0-nano/sdctrl16.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -939,7 +939,6 @@ begin ahbso.hready <= r.hready; ahbso.hresp <= r.hresp; ahbso.hrdata <= ahbdrivedata(dout); - ahbso.hcache <= not r.hio; end process; diff --git a/designs/leon3-terasic-de0-nano/testbench.vhd b/designs/leon3-terasic-de0-nano/testbench.vhd index 873a0b8e..47503599 100644 --- a/designs/leon3-terasic-de0-nano/testbench.vhd +++ b/designs/leon3-terasic-de0-nano/testbench.vhd @@ -5,7 +5,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-terasic-de0-nano/tkconfig.h b/designs/leon3-terasic-de0-nano/tkconfig.h index 7a5af0d9..7d287f4e 100644 --- a/designs/leon3-terasic-de0-nano/tkconfig.h +++ b/designs/leon3-terasic-de0-nano/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else diff --git a/designs/leon3-terasic-de2-115/Makefile b/designs/leon3-terasic-de2-115/Makefile index 76ac3af4..d6c3fa04 100644 --- a/designs/leon3-terasic-de2-115/Makefile +++ b/designs/leon3-terasic-de2-115/Makefile @@ -22,12 +22,12 @@ SYNPOPT="set_option -pipe 1; set_option -retiming 1; set_option -write_apr_const TECHLIBS = altera altera_mf cycloneiii LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress ihp gleichmann fmf spansion gsi -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr ata haps \ - slink ascs coremp7 ac97 eon3ft leon4 leon4b64 l2cache \ + tmtc openchip hynix cypress ihp fmf spansion gsi +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr \ + slink ascs leon3ft leon4 leon4v0 l2cache \ spacewire usb pwm gr1553b iommu pci leon3ft hcan -FILESKIP = grcan.vhd simple_spi_top.v ata_device.v i2c_slave_model.v +FILESKIP = grcan.vhd ata_device.v i2c_slave_model.v include $(GRLIB)/bin/Makefile include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-terasic-de2-115/config.help b/designs/leon3-terasic-de2-115/config.help index 76c099c1..514cb2de 100644 --- a/designs/leon3-terasic-de2-115/config.help +++ b/designs/leon3-terasic-de2-115/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-terasic-de2-115/lconfig.tk b/designs/leon3-terasic-de2-115/lconfig.tk index 790995a3..ea7f84ee 100755 --- a/designs/leon3-terasic-de2-115/lconfig.tk +++ b/designs/leon3-terasic-de2-115/lconfig.tk @@ -755,7 +755,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -765,7 +766,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -908,8 +911,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -928,6 +933,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1017,9 +1026,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1073,10 +1083,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1122,14 +1133,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1202,13 +1215,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1248,22 +1269,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1320,21 +1609,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1381,36 +1670,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1418,48 +1708,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1515,28 +1806,28 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH - global tmpvar_7 - minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x4.x.menu 3 bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1577,20 +1868,21 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1599,38 +1891,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} - global tmpvar_7 + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1687,92 +1980,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1780,18 +2073,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1832,52 +2125,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1885,162 +2179,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2096,45 +2391,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2174,18 +2471,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2193,55 +2491,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2298,24 +2601,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2355,17 +2658,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2373,37 +2677,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2459,16 +2764,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2516,9 +2828,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2540,21 +2850,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2863,14 +3178,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2944,17 +3259,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3394,16 +3709,16 @@ proc menu16 {w title} { bool $w.config.f 16 0 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 16 1 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 16 1 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x1.x.menu 7 hex $w.config.f 16 2 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3453,21 +3768,21 @@ proc update_menu16 {} { proc update_define_menu16 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3527,14 +3842,14 @@ proc menu17 {w title} { bool $w.config.f 17 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 17 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 17 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 17 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3588,17 +3903,17 @@ proc update_define_menu17 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3899,12 +4214,12 @@ proc menu20 {w title} { bool $w.config.f 20 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN int $w.config.f 20 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN bool $w.config.f 20 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM - global tmpvar_29 - minimenu $w.config.f 20 11 "Fault-tolerance" tmpvar_29 CONFIG_SPICTRL_NOFT + global tmpvar_31 + minimenu $w.config.f 20 11 "Fault-tolerance" tmpvar_31 CONFIG_SPICTRL_NOFT menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" - $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_29 -value "None" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_29 -value "Parity-DMR" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_29 -value "TMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_31 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_31 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_31 -value "TMR" -command "update_active" menusplit $w $w.config.f.x11.x.menu 3 @@ -4004,13 +4319,13 @@ proc update_define_menu20 {} { global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} - global tmpvar_29 + global tmpvar_31 global CONFIG_SPICTRL_NOFT - if {$tmpvar_29 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + if {$tmpvar_31 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} global CONFIG_SPICTRL_DMRFT - if {$tmpvar_29 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + if {$tmpvar_31 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} global CONFIG_SPICTRL_TMRFT - if {$tmpvar_29 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} + if {$tmpvar_31 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } @@ -4210,15 +4525,15 @@ proc menu22 {w title} { bool $w.config.f 22 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_30 - minimenu $w.config.f 22 1 "UART1 FIFO depth" tmpvar_30 CONFIG_UA1_FIFO1 + global tmpvar_32 + minimenu $w.config.f 22 1 "UART1 FIFO depth" tmpvar_32 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_32 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_32 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 22 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 22 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4307,19 +4622,19 @@ proc update_menu22 {} { proc update_define_menu22 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_30 + global tmpvar_32 global CONFIG_UA1_FIFO1 - if {$tmpvar_30 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_32 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_30 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_32 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_32 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_32 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_32 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_32 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4489,7 +4804,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4499,6 +4815,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4523,6 +4841,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4535,14 +4854,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4555,28 +4879,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 set CONFIG_FPU_GRFPU_SH 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4586,17 +4910,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4608,12 +4932,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4623,10 +4947,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4637,7 +4961,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4649,26 +4973,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4676,27 +5002,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4717,7 +5047,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4742,7 +5072,7 @@ set CONFIG_MCTRL_PROGPAGE 0 set CONFIG_AHBSTAT_ENABLE 0 set CONFIG_AHBSTAT_NFTSLV 1 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4753,7 +5083,7 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 @@ -4777,7 +5107,7 @@ set CONFIG_SPICTRL_ODMODE 0 set CONFIG_SPICTRL_TWEN 0 set CONFIG_SPICTRL_MAXWLEN 0 set CONFIG_SPICTRL_SYNCRAM 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_SPICTRL_NOFT 0 set CONFIG_SPICTRL_DMRFT 0 set CONFIG_SPICTRL_TMRFT 0 @@ -4791,7 +5121,7 @@ set CONFIG_SPI2AHB_RESEN 0 set CONFIG_SPI2AHB_CPOL 0 set CONFIG_SPI2AHB_CPHA 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4870,7 +5200,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4880,6 +5211,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4918,6 +5251,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4930,9 +5264,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4946,241 +5281,390 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5225,13 +5709,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5275,27 +5759,27 @@ proc writeconfig {file1 file2} { write_comment $cfg $autocfg "On-chip RAM/ROM " global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "CAN " global CONFIG_CAN_ENABLE write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2 @@ -5335,11 +5819,11 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } - global tmpvar_29 + global tmpvar_31 if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { - if { $tmpvar_29 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } - if { $tmpvar_29 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } - if { $tmpvar_29 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} + if { $tmpvar_31 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_31 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_31 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "SPI to AHB bridge " global CONFIG_SPI2AHB write_tristate $cfg $autocfg CONFIG_SPI2AHB $CONFIG_SPI2AHB [list $notmod] 2 @@ -5362,14 +5846,14 @@ proc writeconfig {file1 file2} { write_comment $cfg $autocfg "UARTs, timers and I/O port " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_30 + global tmpvar_32 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5442,7 +5926,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5452,6 +5937,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5470,8 +5957,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5554,11 +6046,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5579,6 +6073,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5681,8 +6179,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5701,6 +6201,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5741,332 +6245,358 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "None" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "None" global CONFIG_SPICTRL_NOFT - if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_29 "None" } + if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_31 "None" } global CONFIG_SPICTRL_DMRFT - if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_29 "Parity-DMR" } + if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_31 "Parity-DMR" } global CONFIG_SPICTRL_TMRFT - if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_29 "TMR" } - global tmpvar_30 - set tmpvar_30 "1" + if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_31 "TMR" } + global tmpvar_32 + set tmpvar_32 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_30 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_32 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_30 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_32 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_32 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_32 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_32 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_32 "32" } } diff --git a/designs/leon3-terasic-de2-115/leon3mp.vhd b/designs/leon3-terasic-de2-115/leon3mp.vhd index 2f4dea2c..8e5c15ed 100644 --- a/designs/leon3-terasic-de2-115/leon3mp.vhd +++ b/designs/leon3-terasic-de2-115/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-terasic-de2-115/testbench.vhd b/designs/leon3-terasic-de2-115/testbench.vhd index b4c0bf10..40f290b0 100644 --- a/designs/leon3-terasic-de2-115/testbench.vhd +++ b/designs/leon3-terasic-de2-115/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-terasic-de2-115/tkconfig.h b/designs/leon3-terasic-de2-115/tkconfig.h index cbd824f3..f74a5fa7 100644 --- a/designs/leon3-terasic-de2-115/tkconfig.h +++ b/designs/leon3-terasic-de2-115/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-wildcard-xcv300e/.config b/designs/leon3-wildcard-xcv300e/.config deleted file mode 100644 index c8963522..00000000 --- a/designs/leon3-wildcard-xcv300e/.config +++ /dev/null @@ -1,63 +0,0 @@ -# -# Automatically generated make config: don't edit -# -CONFIG_LEON3=y -CONFIG_PROC_NUM=1 - -# -# Processor -# - -# -# Integer unit -# -CONFIG_IU_NWINDOWS=2 -# CONFIG_IU_V8MULDIV is not set -# CONFIG_IU_BP is not set -# CONFIG_IU_SVT is not set -# CONFIG_NOTAG is not set -CONFIG_IU_LDELAY=2 -CONFIG_IU_WATCHPOINTS=0 -# CONFIG_PWD is not set -CONFIG_IU_RSTADDR=00000 - -# -# Floating-point unit -# -# CONFIG_FPU_ENABLE is not set - -# -# Cache system -# -# CONFIG_ICACHE_ENABLE is not set -# CONFIG_ICACHE_LRAM is not set -# CONFIG_DCACHE_ENABLE is not set -# CONFIG_DCACHE_LRAM is not set - -# -# MMU -# -# CONFIG_MMU_ENABLE is not set - -# -# Debug Support Unit -# -CONFIG_DSU_ENABLE=y -# CONFIG_DSU_ITRACE is not set -# CONFIG_DSU_ATRACE is not set - -# -# Fault-tolerance -# -# CONFIG_LEON3FT_EN is not set - -# -# VHDL debug settings -# -# CONFIG_IU_DISAS is not set -# CONFIG_DEBUG_PC32 is not set - -# -# On-chip RAM -# -# CONFIG_AHBRAM_ENABLE is not set diff --git a/designs/leon3-wildcard-xcv300e/Makefile b/designs/leon3-wildcard-xcv300e/Makefile deleted file mode 100644 index 3e7e41e4..00000000 --- a/designs/leon3-wildcard-xcv300e/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -GRLIB=../../ -#WILDCARD_BASE={path to wildcard root directory} -TOP=wildfpga -BOARD=wildcard-xcv300e -include $(GRLIB)/boards/$(BOARD)/Makefile.inc -DEVICE=$(PART)-$(PACKAGE)$(SPEED) -UCF=$(GRLIB)/boards/$(BOARD)/default.ucf -EFFORT=high -XSTOPT= -ISEMAPOPT=-r -SYNPOPT="set_option -pipe 0; set_option -retiming 0; set_option -write_apr_constraint 0; set_option -resource_sharing 1" -VHDLSYNFILES=config.vhd wildfpga.vhd -VHDLSIMFILES= -SIMTOP=system_cfg -SDCFILE=$(GRLIB)/boards/$(BOARD)/default.sdc -BITGEN=$(GRLIB)/boards/$(BOARD)/default.ut -CLEAN=soft-clean - -TECHLIBS=unisim -LIBSKIP=apa proasic3 axcelerator ecaltera altera_mf stratixii ec altera \ - eclipsee cycloneiii virage atc18 umc18 dw02 spw usbhc eth gleichmann \ - fmf spansion gsi cypress hynix ihp25 sgb25vrh ut025crh rh_lib18t ihp \ - artisan virage90 tsmc90 dare nextreme micron stratixiii \ - core1553bbc core1553brt core1553brm corePCIF gr1553 openchip tmtc -DIRSKIP=spw usbhc spacewire greth grusbhc can leon3ft pcif b1553 crypto satcan \ - hcan -FILESKIP=simple_spi_top.v - -include $(GRLIB)/software/leon3/Makefile -include $(GRLIB)/bin/Makefile - -################## project specific targets ########################## - diff --git a/designs/leon3-wildcard-xcv300e/config.in b/designs/leon3-wildcard-xcv300e/config.in deleted file mode 100644 index 8cdb7909..00000000 --- a/designs/leon3-wildcard-xcv300e/config.in +++ /dev/null @@ -1,18 +0,0 @@ -# -# LEON3 configuration written in linux configuration language -# -# Gaisler Research -# -# Comments and bug reports to support@gaisler.com -# -# - -mainmenu_name "LEON3 WildCard Design Configuration" - -source lib/gaisler/leon3/leon3.in - - mainmenu_option next_comment - comment 'On-chip RAM' - source lib/gaisler/misc/ahbram.in - endmenu - diff --git a/designs/leon3-wildcard-xcv300e/config.vhd b/designs/leon3-wildcard-xcv300e/config.vhd deleted file mode 100644 index c9cca6dd..00000000 --- a/designs/leon3-wildcard-xcv300e/config.vhd +++ /dev/null @@ -1,72 +0,0 @@ - - - - ------------------------------------------------------------------------------ --- LEON3 Demonstration design test bench configuration --- Copyright (C) 2009 Aeroflex Gaisler ------------------------------------------------------------------------------- - - -library techmap; -use techmap.gencomp.all; - -package config is --- LEON3 processor core - constant CFG_LEON3 : integer := 1; - constant CFG_NCPU : integer := (1); - constant CFG_NWIN : integer := (2); - constant CFG_V8 : integer := 0 + 4*0; - constant CFG_MAC : integer := 0; - constant CFG_BP : integer := 0; - constant CFG_SVT : integer := 0; - constant CFG_RSTADDR : integer := 16#00000#; - constant CFG_LDDEL : integer := (2); - constant CFG_NOTAG : integer := 0; - constant CFG_NWP : integer := (0); - constant CFG_PWD : integer := 0*2; - constant CFG_FPU : integer := 0 + 16*0 + 32*0; - constant CFG_GRFPUSH : integer := 0; - constant CFG_ICEN : integer := 0; - constant CFG_ISETS : integer := 1; - constant CFG_ISETSZ : integer := 1; - constant CFG_ILINE : integer := 8; - constant CFG_IREPL : integer := 0; - constant CFG_ILOCK : integer := 0; - constant CFG_ILRAMEN : integer := 0; - constant CFG_ILRAMADDR: integer := 16#8E#; - constant CFG_ILRAMSZ : integer := 1; - constant CFG_DCEN : integer := 0; - constant CFG_DSETS : integer := 1; - constant CFG_DSETSZ : integer := 1; - constant CFG_DLINE : integer := 8; - constant CFG_DREPL : integer := 0; - constant CFG_DLOCK : integer := 0; - constant CFG_DSNOOP : integer := 0 + 0 + 4*0; - constant CFG_DFIXED : integer := 16#0#; - constant CFG_DLRAMEN : integer := 0; - constant CFG_DLRAMADDR: integer := 16#8F#; - constant CFG_DLRAMSZ : integer := 1; - constant CFG_MMUEN : integer := 0; - constant CFG_ITLBNUM : integer := 2; - constant CFG_DTLBNUM : integer := 2; - constant CFG_TLB_TYPE : integer := 1 + 0*2; - constant CFG_TLB_REP : integer := 1; - constant CFG_MMU_PAGE : integer := 0; - constant CFG_DSU : integer := 1; - constant CFG_ITBSZ : integer := 0; - constant CFG_ATBSZ : integer := 0; - constant CFG_LEON3FT_EN : integer := 0; - constant CFG_IUFT_EN : integer := 0; - constant CFG_FPUFT_EN : integer := 0; - constant CFG_RF_ERRINJ : integer := 0; - constant CFG_CACHE_FT_EN : integer := 0; - constant CFG_CACHE_ERRINJ : integer := 0; - constant CFG_LEON3_NETLIST: integer := 0; - constant CFG_DISAS : integer := 0 + 0; - constant CFG_PCLOW : integer := 2; --- AHB RAM - constant CFG_AHBRAMEN : integer := 0; - constant CFG_AHBRSZ : integer := 1; - constant CFG_AHBRADDR : integer := 16#A00#; -end; diff --git a/designs/leon3-wildcard-xcv300e/host_arch.vhd b/designs/leon3-wildcard-xcv300e/host_arch.vhd deleted file mode 100644 index 444b2c51..00000000 --- a/designs/leon3-wildcard-xcv300e/host_arch.vhd +++ /dev/null @@ -1,518 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---============================================================================-- --- Design unit : Host emulation (architecture declarations) --- --- File name : host_arch.vhd --- --- Purpose : Host emulator for test bench --- --- Library : System --- --- Authors : Aeroflex Gaisler AB --- --- Contact : mailto:support@gaisler.com --- http://www.gaisler.com --- --- Disclaimer : All information is provided "as is", there is no warranty that --- the information is correct or suitable for any purpose, --- neither implicit nor explicit. ---============================================================================-- - ---============================== Architecture ================================-- - -library Std; -use Std.TextIO.all; - -library IEEE; -use IEEE.Std_Logic_1164.all; -use IEEE.Std_Logic_Arith.all; -use IEEE.Std_Logic_TextIO.all; - -library PE_Lib; -use PE_Lib.PE_Package.all; - -library SYSTEM; -use SYSTEM.Host_Package.all; - -architecture Validate of Host is - ----------------------------------------------------------------------------- - -- Registers - ----------------------------------------------------------------------------- - constant cStat: DWORD := 16#00000000#; - constant cCtrl: DWORD := 16#00000004#; - constant cSize: DWORD := 16#00000008#; - constant cVer: DWORD := 16#0000000c#; - constant cRAddr: DWORD := 16#00000010#; - constant cWAddr: DWORD := 16#00000020#; - constant cRData: DWORD := 16#00000200#; - constant cWData: DWORD := 16#00000300#; - - constant cSSRAML: DWORD := 16#40000000#; - constant cSSRAMR: DWORD := 16#60000000#; - constant cAHBRam: DWORD := 16#a0000000#; - -begin - ----------------------------------------------------------------------------- - -- - ----------------------------------------------------------------------------- - Main: process - -------------------------------------------------------------------------- - -- - -------------------------------------------------------------------------- - variable device: WC_DeviceNum := 0; - variable enable: Boolean := False; - variable burstLength: Integer; - variable fClkFreq: Float := 10.0; - variable dwordOffset: DWORD; - variable dwordCount: DWORD; - variable regData: DWORD_array (0 to 255); - variable memData: DWORD_array (0 to 255); - variable Done: Boolean; - variable timeoutMilliSeconds: DWORD; - variable data: DWORD; - variable dv: DWORD_array (0 to 255); - variable cv: DWORD_array (0 to 255); - - variable ready: Integer; - - variable L: Line; - - procedure wcmd (a: in DWORD; d: in DWORD) is - begin - Write(L, Now, Right, 15); - Write(L, String'(" : Write: addr = ")); - HWrite(L, Conv_Std_Logic_Vector(a, 32)); - Write(L, String'(" : data = ")); - HWrite(L, Conv_Std_Logic_Vector(d, 32)); - WriteLine(Output, L); - - dwordOffset := cWData/4; - dwordCount := 1; - regData(0) := d; - WC_PeRegWrite(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - - dwordOffset := cSize/4; - dwordCount := 1; - regData(0) := 0; - WC_PeRegWrite(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - - dwordOffset := cWAddr/4; - dwordCount := 1; - regData(0) := a; - WC_PeRegWrite(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - - ready := 0; - while ready=0 loop - dwordOffset := cStat/4; - dwordCount := 1; - WC_PeRegRead(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - ready := regData(0) mod 2; - end loop; - end procedure; - - procedure rcmd (a: in DWORD; d: out DWORD) is - begin - dwordOffset := cSize/4; - dwordCount := 1; - regData(0) := 0; - WC_PeRegWrite(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - - dwordOffset := cRAddr/4; - dwordCount := 1; - regData(0) := a; - WC_PeRegWrite(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - - ready := 0; - while ready=0 loop - dwordOffset := cStat/4; - dwordCount := 1; - WC_PeRegRead(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - ready := regData(0) mod 2; - end loop; - - dwordOffset := cRData/4; - dwordCount := 1; - WC_PeRegRead(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - d := regData(0); - - Write(L, Now, Right, 15); - Write(L, String'(" : Read: addr = ")); - HWrite(L, Conv_Std_Logic_Vector(a, 32)); - Write(L, String'(" : data = ")); - HWrite(L, Conv_Std_Logic_Vector(regData(0), 32)); - WriteLine(Output, L); - end procedure; - - - - procedure wcmd (a: in DWORD; d: in DWORD_array) is - begin - for i in 0 to d'Length-1 loop - Write(L, Now, Right, 15); - Write(L, String'(" : Write: addr = ")); - HWrite(L, Conv_Std_Logic_Vector(a+i*4, 32)); - Write(L, String'(" : data = ")); - HWrite(L, Conv_Std_Logic_Vector(d(i), 32)); - WriteLine(Output, L); - end loop; - - dwordOffset := cWData/4; - dwordCount := d'Length; - regData(0 to d'length-1) := d; - WC_PeRegWrite(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - - dwordOffset := cSize/4; - dwordCount := 1; - regData(0) := d'Length; - WC_PeRegWrite(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - - dwordOffset := cWAddr/4; - dwordCount := 1; - regData(0) := a; - WC_PeRegWrite(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - - ready := 0; - while ready=0 loop - dwordOffset := cStat/4; - dwordCount := 1; - WC_PeRegRead(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - ready := regData(0) mod 2; - end loop; - end procedure; - - procedure rcmd (a: in DWORD; d: out DWORD_array) is - begin - - dwordOffset := cSize/4; - dwordCount := 1; - regData(0) := d'Length; - WC_PeRegWrite(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - - - dwordOffset := cRAddr/4; - dwordCount := 1; - regData(0) := a; - WC_PeRegWrite(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - - ready := 0; - - while ready=0 loop - dwordOffset := cStat/4; - dwordCount := 1; - WC_PeRegRead(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - ready := regData(0) mod 2; - end loop; - - dwordOffset := cRData/4; - dwordCount := d'Length; - WC_PeRegRead(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - d := regData(0 to d'Length-1); - for i in 0 to d'Length-1 loop - Write(L, Now, Right, 15); - Write(L, String'(" : Read: addr = ")); - HWrite(L, Conv_Std_Logic_Vector(a+i*4, 32)); - Write(L, String'(" : data = ")); - HWrite(L, Conv_Std_Logic_Vector(regData(i), 32)); - WriteLine(Output, L); - end loop; - end procedure; - - variable burst: Integer := 0; - begin - - -------------------------------------------------------------------------- - -- At first, deassert the command request signal - -------------------------------------------------------------------------- - Cmd_Req <= False; - - -------------------------------------------------------------------------- - -- We are using device 0 - -------------------------------------------------------------------------- - device := 0; - - --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -- - -- Step 1: Initialize the simulated CardBus controller. - -- - --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - - -------------------------------------------------------------------------- - -- Enable the K_Clk (CardBus/LAD-bus clock) to the device - -------------------------------------------------------------------------- - enable := True; - Debug_Enable_K_Clk(Cmd_Req, - Cmd_Ack, - device, - enable); - - -------------------------------------------------------------------------- - -- Enable LAD bus bursts to/from the device - -------------------------------------------------------------------------- - enable := True; - Debug_Enable_Burst(Cmd_Req, - Cmd_Ack, - device, - enable); - - -------------------------------------------------------------------------- - -- Set the length of read bursts from the device - -------------------------------------------------------------------------- - burstLength := 4; - Debug_Set_Read_Burst_Length(Cmd_Req, - Cmd_Ack, - device, - burstLength); - - -------------------------------------------------------------------------- - -- Set the length of write bursts from the device - -------------------------------------------------------------------------- - burstLength := 32; - Debug_Set_Write_Burst_Length(Cmd_Req, - Cmd_Ack, - device, - burstLength); - - --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -- - -- Step 2: Configure the memory clock and processing element clock. - -- - --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - - -------------------------------------------------------------------------- - -- Set the F_Clk frequency (which will set the M_Clk and P_Clk - -- frequencies to F_CLK and F_CLK/2, respectively) - -------------------------------------------------------------------------- - fClkFreq := 40.0; - WC_ClkSetFrequency(Cmd_Req, - Cmd_Ack, - device, - fClkFreq); - - --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -- - -- Step 3: Reset the PE, clear any PE interrupts, and enable PE interrupts - -- - --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - - -------------------------------------------------------------------------- - -- Set up the PE's interrupt and toggle the reset line - -------------------------------------------------------------------------- - enable := True; - WC_PeReset(Cmd_Req, - Cmd_Ack, - device, - enable); - - WC_IntReset(Cmd_Req, - Cmd_Ack, - device); - - enable := False; - WC_IntEnable(Cmd_Req, - Cmd_Ack, - device, - enable); - wait for 5 us; - - enable := False; - WC_PeReset(Cmd_Req, - Cmd_Ack, - device, - enable); - - wait for 20 us; - - report "======== PE is now reset and the clocks are running ========" - severity Note; - - --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -- - -- - -- - --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - Write(L, String'("")); - WriteLine(Output, L); - WriteLine(Output, L); - - - WriteLine(Output, L); - Write(L, Now, Right, 15); - Write(L, String'(" : Check burst capability.")); - WriteLine(Output, L); - dwordOffset := cVer/4; - dwordCount := 1; - WC_PeRegRead(Cmd_Req, - Cmd_Ack, - device, - dwordOffset, - dwordCount, - regData); - - Write(L, Now, Right, 15); - Write(L, String'(" : Read: addr = ")); - HWrite(L, Conv_Std_Logic_Vector(cVer, 32)); - Write(L, String'(" : data = ")); - HWrite(L, Conv_Std_Logic_Vector(regData(0), 32)); - WriteLine(Output, L); - burst := regData(0) / 16; - - for i in 0 to 255 loop dv(i) := i; end loop; - - if burst > 1 then - WriteLine(Output, L); - Write(L, Now, Right, 15); - Write(L, String'(" : Test left memory, burst access.")); - WriteLine(Output, L); - - wcmd(cSSRAML, dv(0 to burst-1)); - rcmd(cSSRAML, cv(0 to burst-1)); - - for i in 0 to burst-1 loop - if cv(i) /= dv(i) then - Write(L, Now, Right, 15); - Write(L, String'(" : Error: read = ")); - HWrite(L, Conv_Std_Logic_Vector(cv(i), 32)); - Write(L, String'(" : expected = ")); - HWrite(L, Conv_Std_Logic_Vector(dv(i), 32)); - WriteLine(Output, L); - end if; - end loop; - end if; - - WriteLine(Output, L); - Write(L, Now, Right, 15); - Write(L, String'(" : Test on-chip memory, single access.")); - WriteLine(Output, L); - wcmd(cAHBRam, 16#12345678#); - rcmd(cAHBRam, data); - - WriteLine(Output, L); - Write(L, Now, Right, 15); - Write(L, String'(" : Test left memory, single burst.")); - WriteLine(Output, L); - wcmd(cSSRAML, dv(255)); - rcmd(cSSRAML, cv(255)); - - WriteLine(Output, L); - Write(L, Now, Right, 15); - Write(L, String'(" : Test left memory, single access.")); - WriteLine(Output, L); - wcmd(cSSRAML, 16#abcd0001#); - rcmd(cSSRAML, data); - - WriteLine(Output, L); - Write(L, Now, Right, 15); - Write(L, String'(" : Test right memory, single access.")); - WriteLine(Output, L); - wcmd(cSSRAMR, 16#abcd0002#); - rcmd(cSSRAMR, data); - - WriteLine(Output, L); - WriteLine(Output, L); - wait for 10 us; - -------------------------------------------------------------------------- - -- End of the simulated host program - -------------------------------------------------------------------------- - report "End of test" - severity Failure; - - wait; - end process Main; -end architecture Validate; --=================================================-- diff --git a/designs/leon3-wildcard-xcv300e/lconfig.tk b/designs/leon3-wildcard-xcv300e/lconfig.tk deleted file mode 100755 index b772393d..00000000 --- a/designs/leon3-wildcard-xcv300e/lconfig.tk +++ /dev/null @@ -1,3284 +0,0 @@ -# FILE: header.tk -# This file is boilerplate TCL/TK function definitions for 'make xconfig'. -# -# CHANGES -# ======= -# -# 8 January 1999, Michael Elizabeth Chastain, -# - Remove unused do_cmd function (part of the 2.0 sound support). -# - Arrange buttons in three columns for better screen fitting. -# - Add CONSTANT_Y, CONSTANT_M, CONSTANT_N for commands like: -# dep_tristate 'foo' CONFIG_FOO m -# -# 23 January 1999, Michael Elizabeth Chastain, -# - Shut vfix the hell up. -# -# 24 January 1999, Michael Elizabeth Chastain, -# - Improve the exit message (Jeff Ronne). - -# -# This is a handy replacement for ".widget cget" that requires neither tk4 -# nor additional source code uglification. -# -proc cget { w option } { - return "[lindex [$w configure $option] 4]" -} - -# -# Function to compensate for broken config.in scripts like the sound driver, -# which make dependencies on variables that are never even conditionally -# defined. -# -proc vfix { var } { - global $var - if [ catch {eval concat $$var} ] { - set $var 4 - } -} - -# -# Constant values used by certain dep_tristate commands. -# -set CONSTANT_Y 1 -set CONSTANT_M 2 -set CONSTANT_N 0 -set CONSTANT_E 4 - -# -# Create a "reference" object to steal colors from. -# -button .ref - -# -# On monochrome displays, -disabledforeground is blank by default; that's -# bad. Fill it with -foreground instead. -# -if { [cget .ref -disabledforeground] == "" } { - .ref configure -disabledforeground [cget .ref -foreground] -} - - -# -# Define some macros we will need to parse the config.in file. -# - -proc mainmenu_name { text } { - wm title . "$text" -} - -proc menu_option { w menu_num text } { - global menus_per_column - global processed_top_level - set processed_top_level [expr $processed_top_level + 1] - if { $processed_top_level <= $menus_per_column } then { - set myframe left - } elseif { $processed_top_level <= [expr 2 * $menus_per_column] } then { - set myframe middle - } else { - set myframe right - } - button .f0.x$menu_num -anchor w -text "$text" \ - -command "$w .$w \"$text\"" - pack .f0.x$menu_num -pady 0 -side top -fill x -in .f0.$myframe -} - -proc load_configfile { w title func } { - catch {destroy $w} - toplevel $w -class Dialog - global loadfile - frame $w.x - label $w.bm -bitmap questhead - pack $w.bm -pady 10 -side top -padx 10 - label $w.x.l -text "Enter filename:" -relief raised - entry $w.x.x -width 35 -relief sunken -borderwidth 2 \ - -textvariable loadfile - pack $w.x.l $w.x.x -anchor w -side left - pack $w.x -side top -pady 10 - wm title $w "$title" - - set oldFocus [focus] - frame $w.f - button $w.f.back -text "OK" -width 20 \ - -command "destroy $w; focus $oldFocus;$func .fileio" - button $w.f.canc -text "Cancel" \ - -width 20 -command "destroy $w; focus $oldFocus" - pack $w.f.back $w.f.canc -side left -pady 10 -padx 45 - pack $w.f -pady 10 -side bottom -padx 10 -anchor w - focus $w - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - wm geometry $w +$winx+$winy -} - -bind all {maybe_exit .maybe} - -proc maybe_exit { w } { - catch {destroy $w} - toplevel $w -class Dialog - label $w.bm -bitmap questhead - pack $w.bm -pady 10 -side top -padx 10 - message $w.m -width 400 -aspect 300 \ - -text "Changes will be lost. Are you sure?" -relief flat - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Are you sure?" - - set oldFocus [focus] - frame $w.f - button $w.f.back -text "OK" -width 20 \ - -command "exit 1" - button $w.f.canc -text "Cancel" \ - -width 20 -command "destroy $w; focus $oldFocus" - pack $w.f.back $w.f.canc -side left -pady 10 -padx 45 - pack $w.f -pady 10 -side bottom -padx 10 -anchor w - bind $w "exit 1" - bind $w "destroy $w; focus $oldFocus" - focus $w - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - wm geometry $w +$winx+$winy -} - -proc read_config_file { w } { - global loadfile - if { [string length $loadfile] != 0 && [file readable $loadfile] == 1 } then { - read_config $loadfile - } else { - catch {destroy $w} - toplevel $w -class Dialog - message $w.m -width 400 -aspect 300 -text \ - "Unable to read file $loadfile" \ - -relief raised - label $w.bm -bitmap error - pack $w.bm $w.m -pady 10 -side top -padx 10 - wm title $w "Xconfig Internal Error" - - set oldFocus [focus] - frame $w.f - button $w.f.back -text "Bummer" \ - -width 10 -command "destroy $w; focus $oldFocus" - pack $w.f.back -side bottom -pady 10 -anchor s - pack $w.f -pady 10 -side top -padx 10 -anchor s - focus $w - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - wm geometry $w +$winx+$winy - } -} - -proc write_config_file { w } { - global loadfile - if { [string length $loadfile] != 0 - && ([file writable $loadfile] == 1 || ([file exists $loadfile] == 0 && [file writable [file dirname $loadfile]] == 1)) } then { - writeconfig $loadfile .null - } else { - catch {destroy $w} - toplevel $w -class Dialog - message $w.m -width 400 -aspect 300 -text \ - "Unable to write file $loadfile" \ - -relief raised - label $w.bm -bitmap error - pack $w.bm $w.m -pady 10 -side top -padx 10 - wm title $w "Xconfig Internal Error" - - set oldFocus [focus] - frame $w.f - button $w.f.back -text "OK" \ - -width 10 -command "destroy $w; focus $oldFocus" - pack $w.f.back -side bottom -pady 10 -anchor s - pack $w.f -pady 10 -side top -padx 10 -anchor s - focus $w - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - wm geometry $w +$winx+$winy - } -} - -proc read_config { filename } { - set file1 [open $filename r] - clear_choices - while { [gets $file1 line] >= 0} { - if [regexp {([0-9A-Za-z_]+)=([ynm])} $line foo var value] { - if { $value == "y" } then { set cmd "global $var; set $var 1" } - if { $value == "n" } then { set cmd "global $var; set $var 0" } - if { $value == "m" } then { set cmd "global $var; set $var 2" } - eval $cmd - } - if [regexp {# ([0-9A-Za-z_]+) is not set} $line foo var] { - set cmd "global $var; set $var 0" - eval $cmd - } - if [regexp {([0-9A-Za-z_]+)=([0-9A-Fa-f]+)} $line foo var value] { - set cmd "global $var; set $var $value" - eval $cmd - } - if [regexp {([0-9A-Za-z_]+)="([^"]*)"} $line foo var value] { - set cmd "global $var; set $var \"$value\"" - eval $cmd - } - } - close $file1 - update_choices - update_mainmenu -} -proc write_comment { file1 file2 text } { - puts $file1 "" - puts $file1 "#" - puts $file1 "# $text" - puts $file1 "#" - puts $file2 "/*" - puts $file2 " * $text" - puts $file2 " */" -} - -proc effective_dep { deplist } { - global CONFIG_MODULES - set depend 1 - foreach i $deplist { - if {$i == 0} then {set depend 0} - if {$i == 2 && $depend == 1} then {set depend 2} - } - if {$depend == 2 && $CONFIG_MODULES == 0} then {set depend 0} - return $depend -} - -proc sync_tristate { var dep } { - global CONFIG_MODULES - if {$dep == 0 && ($var == 1 || $var == 2)} then { - set var 0 - } elseif {$dep == 2 && $var == 1} then { - set var 2 - } elseif {$var == 2 && $CONFIG_MODULES == 0} then { - if {$dep == 1} then {set var 1} else {set var 0} - } - return $var -} - -proc sync_bool { var dep modset } { - set var [sync_tristate $var $dep] - if {$dep == 2 && $var == 2} then { - set var $modset - } - return $var -} - -proc write_tristate { file1 file2 varname variable deplist modset } { - set variable [sync_tristate $variable [effective_dep $deplist]] - if { $variable == 2 } \ - then { set variable $modset } - if { $variable == 1 } \ - then { puts $file1 "$varname=y"; \ - puts $file2 "#define $varname 1" } \ - elseif { $variable == 2 } \ - then { puts $file1 "$varname=m"; \ - puts $file2 "#undef $varname"; \ - puts $file2 "#define ${varname}_MODULE 1" } \ - elseif { $variable == 0 } \ - then { puts $file1 "# $varname is not set"; \ - puts $file2 "#undef $varname"} \ - else { \ - puts stdout "ERROR - Attempting to write value for unconfigured variable ($varname)." \ - } -} - -proc write_int { file1 file2 varname variable dep } { - if { $dep == 0 } \ - then { puts $file1 "# $varname is not set"; \ - puts $file2 "#undef $varname"} \ - else { - puts $file1 "$varname=$variable"; \ - puts $file2 "#define $varname ($variable)"; \ - } -} - -proc write_hex { file1 file2 varname variable dep } { - if { $dep == 0 } \ - then { puts $file1 "# $varname is not set"; \ - puts $file2 "#undef $varname"} \ - else { - puts $file1 "$varname=$variable"; \ - puts -nonewline $file2 "#define $varname "; \ - puts $file2 [exec echo $variable | sed s/^0\[xX\]//]; \ - } -} - -proc write_string { file1 file2 varname variable dep } { - if { $dep == 0 } \ - then { puts $file1 "# $varname is not set"; \ - puts $file2 "#undef $varname"} \ - else { - puts $file1 "$varname=\"$variable\""; \ - puts $file2 "#define $varname \"$variable\""; \ - } -} - -proc option_name {w mnum line text helpidx} { - button $w.x$line.l -text "$text" -relief groove -anchor w - $w.x$line.l configure -activefore [cget $w.x$line.l -fg] \ - -activeback [cget $w.x$line.l -bg] - button $w.x$line.help -text "Help" -relief raised \ - -command "dohelp .dohelp $helpidx .menu$mnum" - pack $w.x$line.help -side right -fill y - pack $w.x$line.l -side right -fill both -expand on -} - -proc toggle_switch2 {w mnum line text variable} { - frame $w.x$line -relief sunken - radiobutton $w.x$line.y -text "y" -variable $variable -value 1 \ - -relief groove -width 2 -command "update_active" -# radiobutton $w.x$line.m -text "-" -variable $variable -value 2 \ -# -relief groove -width 2 -command "update_active" - radiobutton $w.x$line.n -text "n" -variable $variable -value 0 \ - -relief groove -width 2 -command "update_active" - - option_name $w $mnum $line $text $variable - - pack $w.x$line.n $w.x$line.y -side right -fill y -} - -proc toggle_switch3 {w mnum line text variable} { - frame $w.x$line -relief sunken - radiobutton $w.x$line.y -text "y" -variable $variable -value 1 \ - -relief groove -width 2 -command "update_active" - radiobutton $w.x$line.m -text "m" -variable $variable -value 2 \ - -relief groove -width 2 -command "update_active" - radiobutton $w.x$line.n -text "n" -variable $variable -value 0 \ - -relief groove -width 2 -command "update_active" - - option_name $w $mnum $line $text $variable - - global CONFIG_MODULES - if {($CONFIG_MODULES == 0)} then { - $w.x$line.m configure -state disabled - } - pack $w.x$line.n $w.x$line.m $w.x$line.y -side right -fill y -} - -proc bool {w mnum line text variable} { - toggle_switch2 $w $mnum $line $text $variable -# $w.x$line.m configure -state disabled - pack $w.x$line -anchor w -fill both -expand on -} - -proc tristate {w mnum line text variable } { - toggle_switch3 $w $mnum $line $text $variable - pack $w.x$line -anchor w -fill both -expand on -} - -proc dep_tristate {w mnum line text variable } { - tristate $w $mnum $line $text $variable -} - -proc dep_bool {w mnum line text variable } { - bool $w $mnum $line $text $variable -} - -proc int { w mnum line text variable } { - frame $w.x$line - entry $w.x$line.x -width 11 -relief sunken -borderwidth 2 \ - -textvariable $variable - option_name $w $mnum $line $text $variable - pack $w.x$line.x -anchor w -side right -fill y - pack $w.x$line -anchor w -fill both -expand on -} - -proc hex { w mnum line text variable } { - int $w $mnum $line $text $variable -} - -proc istring { w mnum line text variable } { - frame $w.x$line - entry $w.x$line.x -width 18 -relief sunken -borderwidth 2 \ - -textvariable $variable - option_name $w $mnum $line $text $variable - pack $w.x$line.x -anchor w -side right -fill y - pack $w.x$line -anchor w -fill both -expand on -} - -proc minimenu { w mnum line text variable helpidx } { - frame $w.x$line - menubutton $w.x$line.x -textvariable $variable -menu \ - $w.x$line.x.menu -relief raised \ - -anchor w - option_name $w $mnum $line $text $helpidx - pack $w.x$line.x -anchor w -side right -fill y - pack $w.x$line -anchor w -fill both -expand on -} - -proc menusplit {w m n} { - if { $n > 2 } then { - update idletasks - set menuoptsize [expr [$m yposition 2] - [$m yposition 1]] - set maxsize [winfo screenheight $w] - set splitpoint [expr $maxsize * 4 / 5 / $menuoptsize - 1] - for {set i [expr $splitpoint + 1]} {$i <= $n} {incr i $splitpoint} { - $m entryconfigure $i -columnbreak 1 - } - } -} - -proc menutitle {text menu w} { - wm title $w "$text" -} - -proc submenu { w mnum line text subnum } { - frame $w.x$line - button $w.x$line.l -text "" -width 9 -relief groove - $w.x$line.l configure -activefore [cget $w.x$line.l -fg] \ - -activeback [cget $w.x$line.l -bg] -state disabled - button $w.x$line.m -text "$text" -relief raised -anchor w \ - -command "catch {destroy .menu$subnum}; menu$subnum .menu$subnum \"$text\"" - pack $w.x$line.l -side left -fill both - pack $w.x$line.m -anchor w -side right -fill both -expand on - pack $w.x$line -anchor w -fill both -expand on -} - -proc comment {w mnum line text } { - frame $w.x$line - button $w.x$line.l -text "" -width 15 -relief groove - $w.x$line.l configure -activefore [cget $w.x$line.l -fg] \ - -activeback [cget $w.x$line.l -bg] -state disabled - button $w.x$line.m -text "$text" -relief groove -anchor w - $w.x$line.m configure -activefore [cget $w.x$line.m -fg] \ - -activeback [cget $w.x$line.m -bg] - pack $w.x$line.l -side left -fill both - pack $w.x$line.m -anchor w -side right -fill both -expand on - pack $w.x$line -anchor w -fill both -expand on -} - -proc readhelp {tag fn} { - set message "" - set b 0 - if { [file readable $fn] == 1} then { - set fhandle [open $fn r] - while {[gets $fhandle inline] >= 0} { - if { $b == 0 } { - if { [regexp $tag $inline ] } { - set b 1 - set message "$inline:\n" - } - } else { - if { [regexp {^[^ \t]} $inline]} { - break - } - set message "$message\n$inline" - } - } - close $fhandle - } - return $message -} - -proc dohelp {w var parent} { - catch {destroy $w} - toplevel $w -class Dialog - - set filefound 0 - set found 0 - set lineno 0 - - if { [file readable config.help] == 1} then { - set filefound 1 - # First escape sed regexp special characters in var: - set var [exec echo "$var" | sed s/\[\]\[\/.^$*\]/\\\\&/g] - # Now pick out right help text: - set message [readhelp $var config.help] - set found [expr [string length "$message"] > 0] - } - - frame $w.f1 - pack $w.f1 -fill both -expand on - - # Do the OK button - # - set oldFocus [focus] - frame $w.f2 - button $w.f2.ok -text "OK" \ - -width 10 -command "destroy $w; catch {focus $oldFocus}" - pack $w.f2.ok -side bottom -pady 6 -anchor n - pack $w.f2 -side bottom -padx 10 -anchor s - - scrollbar $w.f1.vscroll -command "$w.f1.canvas yview" - pack $w.f1.vscroll -side right -fill y - - canvas $w.f1.canvas -relief flat -borderwidth 0 \ - -yscrollcommand "$w.f1.vscroll set" - frame $w.f1.f - pack $w.f1.canvas -side right -fill y -expand on - - if { $found == 0 } then { - if { $filefound == 0 } then { - message $w.f1.f.m -width 750 -aspect 300 -relief flat -text \ - "No help available - unable to open file config.help." - } else { - message $w.f1.f.m -width 400 -aspect 300 -relief flat -text \ - "No help available for $var" - } - label $w.f1.bm -bitmap error - wm title $w "RTFM" - } else { - text $w.f1.f.m -width 73 -relief flat -wrap word - $w.f1.f.m insert 0.0 $message - $w.f1.f.m conf -state disabled -height [$w.f1.f.m index end] - - label $w.f1.bm -bitmap info - wm title $w "Configuration help" - } - pack $w.f1.f.m -side left - pack $w.f1.bm $w.f1.f -side left -padx 10 - - focus $w - set winx [expr [winfo x $parent]+20] - set winy [expr [winfo y $parent]+20] - wm geometry $w +$winx+$winy - set sizok [expr [winfo reqheight $w.f2.ok] + 12] - set maxy [expr [winfo screenheight .] * 3 / 4] - set canvtotal [winfo reqheight $w.f1.f.m] - if [expr $sizok + $canvtotal < $maxy] { - set sizy $canvtotal - } else { - set sizy [expr $maxy - $sizok] - } - $w.f1.canvas configure -height $sizy -width [winfo reqwidth $w.f1.f.m] \ - -scrollregion "0 0 [winfo reqwidth $w.f1.f.m] \ - [winfo reqheight $w.f1.f.m]" - $w.f1.canvas create window 0 0 -anchor nw -window $w.f1.f - update idletasks - - set maxy [winfo screenheight .] - if [expr $sizok + $canvtotal < $maxy] { - set sizy [expr $sizok + $canvtotal] - } else { - set sizy $maxy - } - wm maxsize $w [winfo width $w] $sizy -} - -bind all { catch {exec cp -f .config .config.old}; \ - writeconfig .config config.h; wrapup .wrap } - -proc wrapup {w } { - catch {destroy $w} - toplevel $w -class Dialog - - global CONFIG_MODVERSIONS; vfix CONFIG_MODVERSIONS - message $w.m -width 460 -aspect 300 -relief raised -text \ - "End of design configuration. " - label $w.bm -bitmap info - pack $w.bm $w.m -pady 10 -side top -padx 10 - wm title $w "LEON build instructions" - - set oldFocus [focus] - frame $w.f - button $w.f.back -text "OK" \ - -width 10 -command "exit 2" - pack $w.f.back -side bottom -pady 10 -anchor s - pack $w.f -pady 10 -side top -padx 10 -anchor s - focus $w - bind $w "exit 2" - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - wm geometry $w +$winx+$winy - -} - -proc unregister_active {num} { - global active_menus - set index [lsearch -exact $active_menus $num] - if {$index != -1} then {set active_menus [lreplace $active_menus $index $index]} -} - -proc update_active {} { - global active_menus total_menus - set max 0 - if {[llength $active_menus] > 0} then { - set max [lindex $active_menus end] - update_define [toplevel_menu [lindex $active_menus 0]] $max 0 - } - foreach i $active_menus { - if {[winfo exists .menu$i] == 0} then { - unregister_active $i - } else { - update_menu$i - } - } - update_define [expr $max + 1] $total_menus 1 - update_mainmenu -} - -proc configure_entry {w option items} { - foreach i $items { - $w.$i configure -state $option - } -} - -proc validate_int {name val default} { - if {([exec echo $val | sed s/^-//g | tr -d \[:digit:\] ] != "")} then { - global $name; set $name $default - } -} - -proc validate_hex {name val default} { - if {([exec echo $val | tr -d \[:xdigit:\] ] != "")} then { - global $name; set $name $default - } -} - -proc update_define {first last allow_update} { - for {set i $first} {$i <= $last} {incr i} { - update_define_menu$i - if {$allow_update == 1} then update - } -} - -# -# Next set up the particulars for the top level menu, and define a few -# buttons which we will stick down at the bottom. -# - -frame .f0 -frame .f0.left -frame .f0.middle -frame .f0.right - -set active_menus [list] -set processed_top_level 0 -set ARCH sparc -set menus_per_column 2 -set total_menus 9 - -proc toplevel_menu {num} { - if {$num == 2} then {return 1} - if {$num == 3} then {return 1} - if {$num == 4} then {return 1} - if {$num == 5} then {return 1} - if {$num == 6} then {return 1} - if {$num == 7} then {return 1} - if {$num == 8} then {return 1} - return $num -} - -mainmenu_name "LEON3 WildCard Design Configuration" -menu_option menu1 1 "Processor " -proc menu1 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 1} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 1]] - message $w.m -width 400 -aspect 300 -text \ - "Processor " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Processor " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 1; break" - set nextscript "catch {focus $oldFocus}; menu2 .menu2 \"$title\"" - frame $w.f - button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 1" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 1; menu0 .menu0 \"$title\"" - $w.f.prev configure -state disabled - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 1 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 - int $w.config.f 1 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 1 2 "Integer unit " 2 - submenu $w.config.f 1 3 "Floating-point unit" 3 - submenu $w.config.f 1 4 "Cache system" 4 - submenu $w.config.f 1 5 "MMU" 5 - submenu $w.config.f 1 6 "Debug Support Unit " 6 - submenu $w.config.f 1 7 "Fault-tolerance " 7 - submenu $w.config.f 1 8 "VHDL debug settings " 8 - - - - focus $w - update_active - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu1 {} { - global CONFIG_LEON3 - global CONFIG_PROC_NUM - if {($CONFIG_LEON3 == 1)} then {.menu1.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu1.config.f.x1.l configure -state normal; } else {.menu1.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu1.config.f.x1.l configure -state disabled} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu1.config.f.x2 normal {m}} else {configure_entry .menu1.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu1.config.f.x3 normal {m}} else {configure_entry .menu1.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu1.config.f.x4 normal {m}} else {configure_entry .menu1.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu1.config.f.x5 normal {m}} else {configure_entry .menu1.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu1.config.f.x6 normal {m}} else {configure_entry .menu1.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu1.config.f.x7 normal {m}} else {configure_entry .menu1.config.f.x7 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu1.config.f.x8 normal {m}} else {configure_entry .menu1.config.f.x8 disabled {m}} -} - - -proc update_define_menu1 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_PROC_NUM - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} -} - - -proc menu2 {w title} { - set oldFocus [focus] - catch {focus .menu1} - catch {destroy $w; unregister_active 2} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 2]] - message $w.m -width 400 -aspect 300 -text \ - "Integer unit " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Integer unit " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 2; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 2; menu3 .menu3 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 2" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 2; menu1 .menu1 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 2; menu1 .menu1 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - int $w.config.f 2 0 "SPARC register windows" CONFIG_IU_NWINDOWS - bool $w.config.f 2 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_0 - minimenu $w.config.f 2 2 "Hardware multiplier latency" tmpvar_0 CONFIG_IU_MUL_LATENCY_2 - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_0 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_0 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_0 -value "5-cycles" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 3 - bool $w.config.f 2 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_1 - minimenu $w.config.f 2 4 "Multipler structure " tmpvar_1 CONFIG_IU_MUL_INFERRED - menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_1 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_1 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_1 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_1 -value "Designware" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 4 - bool $w.config.f 2 5 "Branch prediction " CONFIG_IU_BP - bool $w.config.f 2 6 "Single-vector trapping" CONFIG_IU_SVT - bool $w.config.f 2 7 "Disable tagged ADD/SUB and CASA" CONFIG_NOTAG - int $w.config.f 2 8 "Load delay" CONFIG_IU_LDELAY - int $w.config.f 2 9 "Hardware watchpoints" CONFIG_IU_WATCHPOINTS - bool $w.config.f 2 10 "Enable power-down mode " CONFIG_PWD - hex $w.config.f 2 11 " Reset start address (addr\[31:12\]) " CONFIG_IU_RSTADDR - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu1] == 0} then {menu1 .menu1 "Processor "} - set winx [expr [winfo x .menu1]+30]; set winy [expr [winfo y .menu1]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu2 {} { - global CONFIG_LEON3 - global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {.menu2.config.f.x0.x configure -state normal -foreground [ cget .ref -foreground ]; .menu2.config.f.x0.l configure -state normal; } else {.menu2.config.f.x0.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu2.config.f.x0.l configure -state disabled} - global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu2.config.f.x1 normal {n l y}} else {configure_entry .menu2.config.f.x1 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu2.config.f.x2 normal {x l}} else {configure_entry .menu2.config.f.x2 disabled {x l}} - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { - configure_entry .menu2.config.f.x3 normal {n l y}} else {configure_entry .menu2.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu2.config.f.x4 normal {x l}} else {configure_entry .menu2.config.f.x4 disabled {x l}} - global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu2.config.f.x5 normal {n l y}} else {configure_entry .menu2.config.f.x5 disabled {y n l}} - global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu2.config.f.x6 normal {n l y}} else {configure_entry .menu2.config.f.x6 disabled {y n l}} - global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu2.config.f.x7 normal {n l y}} else {configure_entry .menu2.config.f.x7 disabled {y n l}} - global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {.menu2.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu2.config.f.x8.l configure -state normal; } else {.menu2.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu2.config.f.x8.l configure -state disabled} - global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu2.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu2.config.f.x9.l configure -state normal; } else {.menu2.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu2.config.f.x9.l configure -state disabled} - global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu2.config.f.x10 normal {n l y}} else {configure_entry .menu2.config.f.x10 disabled {y n l}} - global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu2.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu2.config.f.x11.l configure -state normal; } else {.menu2.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu2.config.f.x11.l configure -state disabled} -} - - -proc update_define_menu2 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} - global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_0 - global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_0 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} - global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_0 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} - global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_0 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} - global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { - set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_1 - global CONFIG_IU_MUL_INFERRED - if {$tmpvar_1 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} - global CONFIG_IU_MUL_MODGEN - if {$tmpvar_1 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} - global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_1 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} - global CONFIG_IU_MUL_DW - if {$tmpvar_1 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} - global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} - global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} - global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} - global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} - global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} - global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} - global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} -} - - -proc menu3 {w title} { - set oldFocus [focus] - catch {focus .menu1} - catch {destroy $w; unregister_active 3} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 3]] - message $w.m -width 400 -aspect 300 -text \ - "Floating-point unit" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Floating-point unit" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 3; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 3; menu4 .menu4 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 3" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 3; menu2 .menu2 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 3; menu2 .menu2 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 3 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_2 - minimenu $w.config.f 3 1 "FPU core" tmpvar_2 CONFIG_FPU_GRFPU - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_2 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_2 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_2 -value "Meiko" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_3 - minimenu $w.config.f 3 2 "GRFPU multiplier" tmpvar_3 CONFIG_FPU_GRFPU_INFMUL - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_3 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_3 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_3 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_3 -value "TechSpec" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_4 - minimenu $w.config.f 3 3 "GRFPU-LITE controller" tmpvar_4 CONFIG_FPU_GRFPC0 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_4 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_4 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_4 -value "Non-blocking" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 3 - bool $w.config.f 3 4 "Use VHDL netlist " CONFIG_FPU_NETLIST - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu1] == 0} then {menu1 .menu1 "Processor "} - set winx [expr [winfo x .menu1]+30]; set winy [expr [winfo y .menu1]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu3 {} { - global CONFIG_LEON3 - global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu3.config.f.x0 normal {n l y}} else {configure_entry .menu3.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu3.config.f.x1 normal {x l}} else {configure_entry .menu3.config.f.x1 disabled {x l}} - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} - global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu3.config.f.x3 normal {x l}} else {configure_entry .menu3.config.f.x3 disabled {x l}} - global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu3.config.f.x4 normal {n l y}} else {configure_entry .menu3.config.f.x4 disabled {y n l}} -} - - -proc update_define_menu3 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_2 - global CONFIG_FPU_GRFPU - if {$tmpvar_2 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} - global CONFIG_FPU_GRFPULITE - if {$tmpvar_2 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} - global CONFIG_FPU_MEIKO - if {$tmpvar_2 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_3 - global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_3 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} - global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_3 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} - global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_3 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} - global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_3 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_4 - global CONFIG_FPU_GRFPC0 - if {$tmpvar_4 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} - global CONFIG_FPU_GRFPC1 - if {$tmpvar_4 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} - global CONFIG_FPU_GRFPC2 - if {$tmpvar_4 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} - global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} -} - - -proc menu4 {w title} { - set oldFocus [focus] - catch {focus .menu1} - catch {destroy $w; unregister_active 4} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 4]] - message $w.m -width 400 -aspect 300 -text \ - "Cache system" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Cache system" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 4; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 4; menu5 .menu5 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 4" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 4; menu3 .menu3 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 4; menu3 .menu3 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 4 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_5 - minimenu $w.config.f 4 1 "Associativity (sets) " tmpvar_5 CONFIG_ICACHE_ASSO1 - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_5 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_5 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_5 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_5 -value "4" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_6 - minimenu $w.config.f 4 2 "Way size (kbytes/way)" tmpvar_6 CONFIG_ICACHE_SZ1 - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_6 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_6 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_6 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_6 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_6 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_6 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_6 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_6 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_6 -value "256" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_7 - minimenu $w.config.f 4 3 "Line size (bytes/line)" tmpvar_7 CONFIG_ICACHE_LZ16 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_7 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_7 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_8 - minimenu $w.config.f 4 4 "Replacement alorithm" tmpvar_8 CONFIG_ICACHE_ALGORND - menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_8 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_8 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_8 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_8 -value "LRU" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 4 - bool $w.config.f 4 5 "Cache locking " CONFIG_ICACHE_LOCK - bool $w.config.f 4 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_9 - minimenu $w.config.f 4 7 "Local data RAM size (kbytes)" tmpvar_9 CONFIG_ICACHE_LRAM_SZ1 - menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" - menusplit $w $w.config.f.x7.x.menu 9 - hex $w.config.f 4 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART - bool $w.config.f 4 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_10 - minimenu $w.config.f 4 10 "Associativity (sets)" tmpvar_10 CONFIG_DCACHE_ASSO1 - menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_10 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" - menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_11 - minimenu $w.config.f 4 11 "Set size (kbytes/set)" tmpvar_11 CONFIG_DCACHE_SZ1 - menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_11 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_11 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_11 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_11 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_11 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_11 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_11 -value "256" -command "update_active" - menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_12 - minimenu $w.config.f 4 12 "Line size (bytes/line)" tmpvar_12 CONFIG_DCACHE_LZ16 - menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_13 - minimenu $w.config.f 4 13 "Replacement alorithm" tmpvar_13 CONFIG_DCACHE_ALGORND - menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_13 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_13 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_13 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_13 -value "LRU" -command "update_active" - menusplit $w $w.config.f.x13.x.menu 4 - bool $w.config.f 4 14 "Cache locking " CONFIG_DCACHE_LOCK - bool $w.config.f 4 15 "AHB snooping " CONFIG_DCACHE_SNOOP - bool $w.config.f 4 16 "Fast snooping " CONFIG_DCACHE_SNOOP_FAST - bool $w.config.f 4 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG - hex $w.config.f 4 18 "Fixed cacheability map " CONFIG_CACHE_FIXED - bool $w.config.f 4 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_14 - minimenu $w.config.f 4 20 "Local data RAM size (kbytes)" tmpvar_14 CONFIG_DCACHE_LRAM_SZ1 - menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" - menusplit $w $w.config.f.x20.x.menu 9 - hex $w.config.f 4 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu1] == 0} then {menu1 .menu1 "Processor "} - set winx [expr [winfo x .menu1]+30]; set winy [expr [winfo y .menu1]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu4 {} { - global CONFIG_LEON3 - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu4.config.f.x0 normal {n l y}} else {configure_entry .menu4.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu4.config.f.x1 normal {x l}} else {configure_entry .menu4.config.f.x1 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu4.config.f.x2 normal {x l}} else {configure_entry .menu4.config.f.x2 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu4.config.f.x3 normal {x l}} else {configure_entry .menu4.config.f.x3 disabled {x l}} - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} - global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} - global CONFIG_MMU_ENABLE - global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { - configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {configure_entry .menu4.config.f.x7 normal {x l}} else {configure_entry .menu4.config.f.x7 disabled {x l}} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 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} - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu4.config.f.x9 normal {n l y}} else {configure_entry .menu4.config.f.x9 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu4.config.f.x10 normal {x l}} else {configure_entry .menu4.config.f.x10 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu4.config.f.x11 normal {x l}} else {configure_entry .menu4.config.f.x11 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu4.config.f.x12 normal {x l}} else {configure_entry .menu4.config.f.x12 disabled {x l}} - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {configure_entry .menu4.config.f.x13 normal {x l}} else {configure_entry .menu4.config.f.x13 disabled {x l}} - global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - configure_entry .menu4.config.f.x14 normal {n l y}} else {configure_entry .menu4.config.f.x14 disabled {y n l}} - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - configure_entry .menu4.config.f.x15 normal {n l y}} else {configure_entry .menu4.config.f.x15 disabled {y n l}} - global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { - configure_entry .menu4.config.f.x16 normal {n l y}} else {configure_entry .menu4.config.f.x16 disabled {y n l}} - global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { - configure_entry .menu4.config.f.x17 normal {n l y}} else {configure_entry .menu4.config.f.x17 disabled {y n l}} - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {.menu4.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x18.l configure -state normal; } else {.menu4.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x18.l configure -state disabled} - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { - configure_entry .menu4.config.f.x19 normal {n l y}} else {configure_entry .menu4.config.f.x19 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {configure_entry .menu4.config.f.x20 normal {x l}} else {configure_entry .menu4.config.f.x20 disabled {x l}} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {.menu4.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x21.l configure -state normal; } else {.menu4.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x21.l configure -state disabled} -} - - -proc update_define_menu4 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_5 - global CONFIG_ICACHE_ASSO1 - if {$tmpvar_5 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} - global CONFIG_ICACHE_ASSO2 - if {$tmpvar_5 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} - global CONFIG_ICACHE_ASSO3 - if {$tmpvar_5 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} - global CONFIG_ICACHE_ASSO4 - if {$tmpvar_5 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_6 - global CONFIG_ICACHE_SZ1 - if {$tmpvar_6 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} - global CONFIG_ICACHE_SZ2 - if {$tmpvar_6 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} - global CONFIG_ICACHE_SZ4 - if {$tmpvar_6 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} - global CONFIG_ICACHE_SZ8 - if {$tmpvar_6 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} - global CONFIG_ICACHE_SZ16 - if {$tmpvar_6 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} - global CONFIG_ICACHE_SZ32 - if {$tmpvar_6 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} - global CONFIG_ICACHE_SZ64 - if {$tmpvar_6 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} - global CONFIG_ICACHE_SZ128 - if {$tmpvar_6 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} - global CONFIG_ICACHE_SZ256 - if {$tmpvar_6 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_7 - global CONFIG_ICACHE_LZ16 - if {$tmpvar_7 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} - global CONFIG_ICACHE_LZ32 - if {$tmpvar_7 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_8 - global CONFIG_ICACHE_ALGORND - if {$tmpvar_8 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} - global CONFIG_ICACHE_ALGODIR - if {$tmpvar_8 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} - global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_8 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} - global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_8 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} - global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} - global CONFIG_MMU_ENABLE - global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { - set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_9 - global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} - global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} - global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} - global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} - global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} - global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} - global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} - global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} - global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_10 - global CONFIG_DCACHE_ASSO1 - if {$tmpvar_10 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} - global CONFIG_DCACHE_ASSO2 - if {$tmpvar_10 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} - global CONFIG_DCACHE_ASSO3 - if {$tmpvar_10 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} - global CONFIG_DCACHE_ASSO4 - if {$tmpvar_10 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_11 - global CONFIG_DCACHE_SZ1 - if {$tmpvar_11 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} - global CONFIG_DCACHE_SZ2 - if {$tmpvar_11 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} - global CONFIG_DCACHE_SZ4 - if {$tmpvar_11 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} - global CONFIG_DCACHE_SZ8 - if {$tmpvar_11 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} - global CONFIG_DCACHE_SZ16 - if {$tmpvar_11 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} - global CONFIG_DCACHE_SZ32 - if {$tmpvar_11 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} - global CONFIG_DCACHE_SZ64 - if {$tmpvar_11 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} - global CONFIG_DCACHE_SZ128 - if {$tmpvar_11 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} - global CONFIG_DCACHE_SZ256 - if {$tmpvar_11 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_12 - global CONFIG_DCACHE_LZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} - global CONFIG_DCACHE_LZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_13 - global CONFIG_DCACHE_ALGORND - if {$tmpvar_13 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} - global CONFIG_DCACHE_ALGODIR - if {$tmpvar_13 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} - global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_13 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} - global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_13 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} - global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} - global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { - set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} - global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { - set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { - set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_14 - global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} - global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} - global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} - global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} - global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} - global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} - global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} - global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} - global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} -} - - -proc menu5 {w title} { - set oldFocus [focus] - catch {focus .menu1} - catch {destroy $w; unregister_active 5} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 5]] - message $w.m -width 400 -aspect 300 -text \ - "MMU" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "MMU" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 5; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 5; menu6 .menu6 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 5" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 5; menu4 .menu4 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 5; menu4 .menu4 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 5 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_15 - minimenu $w.config.f 5 1 "MMU type " tmpvar_15 CONFIG_MMU_COMBINED - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_15 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_15 -value "split" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 5 2 "TLB replacement sheme " tmpvar_16 CONFIG_MMU_REPARRAY - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_16 -value "Increment" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_17 - minimenu $w.config.f 5 3 "Instruction (or combined) TLB entries" tmpvar_17 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 - global tmpvar_18 - minimenu $w.config.f 5 4 "Data TLB entries" tmpvar_18 CONFIG_MMU_D2 - menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 - bool $w.config.f 5 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_19 - minimenu $w.config.f 5 6 "MMU page size" tmpvar_19 CONFIG_MMU_PAGE_4K - menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_19 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_19 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_19 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_19 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_19 -value "Programmable" -command "update_active" - menusplit $w $w.config.f.x6.x.menu 5 - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu1] == 0} then {menu1 .menu1 "Processor "} - set winx [expr [winfo x .menu1]+30]; set winy [expr [winfo y .menu1]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu5 {} { - global CONFIG_LEON3 - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu5.config.f.x1 normal {x l}} else {configure_entry .menu5.config.f.x1 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu5.config.f.x2 normal {x l}} else {configure_entry .menu5.config.f.x2 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu5.config.f.x3 normal {x l}} else {configure_entry .menu5.config.f.x3 disabled {x l}} - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} - global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu5.config.f.x6 normal {x l}} else {configure_entry .menu5.config.f.x6 disabled {x l}} -} - - -proc update_define_menu5 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_15 - global CONFIG_MMU_COMBINED - if {$tmpvar_15 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} - global CONFIG_MMU_SPLIT - if {$tmpvar_15 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_16 - global CONFIG_MMU_REPARRAY - if {$tmpvar_16 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} - global CONFIG_MMU_REPINCREMENT - if {$tmpvar_16 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_17 - global CONFIG_MMU_I2 - if {$tmpvar_17 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} - global CONFIG_MMU_I4 - if {$tmpvar_17 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} - global CONFIG_MMU_I8 - if {$tmpvar_17 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} - global CONFIG_MMU_I16 - if {$tmpvar_17 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} - global CONFIG_MMU_I32 - if {$tmpvar_17 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_18 - global CONFIG_MMU_D2 - if {$tmpvar_18 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} - global CONFIG_MMU_D4 - if {$tmpvar_18 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} - global CONFIG_MMU_D8 - if {$tmpvar_18 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} - global CONFIG_MMU_D16 - if {$tmpvar_18 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} - global CONFIG_MMU_D32 - if {$tmpvar_18 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} - global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_19 - global CONFIG_MMU_PAGE_4K - if {$tmpvar_19 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} - global CONFIG_MMU_PAGE_8K - if {$tmpvar_19 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} - global CONFIG_MMU_PAGE_16K - if {$tmpvar_19 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} - global CONFIG_MMU_PAGE_32K - if {$tmpvar_19 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} - global CONFIG_MMU_PAGE_PROG - if {$tmpvar_19 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} -} - - -proc menu6 {w title} { - set oldFocus [focus] - catch {focus .menu1} - catch {destroy $w; unregister_active 6} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 6]] - message $w.m -width 400 -aspect 300 -text \ - "Debug Support Unit " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Debug Support Unit " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 6; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 6; menu7 .menu7 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 6" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 6; menu5 .menu5 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 6; menu5 .menu5 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 6 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE - bool $w.config.f 6 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_20 - minimenu $w.config.f 6 2 "Instruction trace buffer size (kbytes)" tmpvar_20 CONFIG_DSU_ITRACESZ1 - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_20 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 5 - bool $w.config.f 6 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_21 - minimenu $w.config.f 6 4 "AHB trace buffer size (kbytes)" tmpvar_21 CONFIG_DSU_ATRACESZ1 - menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_21 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu1] == 0} then {menu1 .menu1 "Processor "} - set winx [expr [winfo x .menu1]+30]; set winy [expr [winfo y .menu1]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu6 {} { - global CONFIG_LEON3 - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { - configure_entry .menu6.config.f.x1 normal {n l y}} else {configure_entry .menu6.config.f.x1 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {configure_entry .menu6.config.f.x2 normal {x l}} else {configure_entry .menu6.config.f.x2 disabled {x l}} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { - configure_entry .menu6.config.f.x3 normal {n l y}} else {configure_entry .menu6.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {configure_entry .menu6.config.f.x4 normal {x l}} else {configure_entry .menu6.config.f.x4 disabled {x l}} -} - - -proc update_define_menu6 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { - set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_20 - global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_20 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} - global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_20 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} - global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_20 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} - global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_20 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} - global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_20 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { - set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_21 - global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_21 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} - global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_21 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} - global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_21 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} - global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_21 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} - global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_21 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} -} - - -proc menu7 {w title} { - set oldFocus [focus] - catch {focus .menu1} - catch {destroy $w; unregister_active 7} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 7]] - message $w.m -width 400 -aspect 300 -text \ - "Fault-tolerance " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Fault-tolerance " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 7; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 7; menu8 .menu8 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 7" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 7; menu6 .menu6 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 7; menu6 .menu6 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 7 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_22 - minimenu $w.config.f 7 1 "IU Register file protection " tmpvar_22 CONFIG_IUFT_NONE - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_22 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_22 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_22 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_22 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_22 -value "TMR" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 7 2 "FPU Register file protection " CONFIG_FPUFT_EN - bool $w.config.f 7 3 "Register file error injection" CONFIG_RF_ERRINJ - bool $w.config.f 7 4 "Cache memory protection " CONFIG_CACHE_FT_EN - int $w.config.f 7 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ - bool $w.config.f 7 6 "Use LEON3FT netlist " CONFIG_LEON3_NETLIST - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu1] == 0} then {menu1 .menu1 "Processor "} - set winx [expr [winfo x .menu1]+30]; set winy [expr [winfo y .menu1]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu7 {} { - global CONFIG_LEON3 - global CONFIG_LEON3FT_EN - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu7.config.f.x1 normal {x l}} else {configure_entry .menu7.config.f.x1 disabled {x l}} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu7.config.f.x2 normal {n l y}} else {configure_entry .menu7.config.f.x2 disabled {y n l}} - global CONFIG_RF_ERRINJ - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - configure_entry .menu7.config.f.x3 normal {n l y}} else {configure_entry .menu7.config.f.x3 disabled {y n l}} - global CONFIG_CACHE_FT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - configure_entry .menu7.config.f.x4 normal {n l y}} else {configure_entry .menu7.config.f.x4 disabled {y n l}} - global CONFIG_CACHE_ERRINJ - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {.menu7.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x5.l configure -state normal; } else {.menu7.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x5.l configure -state disabled} - global CONFIG_LEON3_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - configure_entry .menu7.config.f.x6 normal {n l y}} else {configure_entry .menu7.config.f.x6 disabled {y n l}} -} - - -proc update_define_menu7 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_LEON3FT_EN - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_22 - global CONFIG_IUFT_NONE - if {$tmpvar_22 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} - global CONFIG_IUFT_PAR - if {$tmpvar_22 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} - global CONFIG_IUFT_DMR - if {$tmpvar_22 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} - global CONFIG_IUFT_BCH - if {$tmpvar_22 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} - global CONFIG_IUFT_TMR - if {$tmpvar_22 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} - global CONFIG_RF_ERRINJ - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} - global CONFIG_CACHE_FT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - set CONFIG_CACHE_FT_EN [expr $CONFIG_CACHE_FT_EN&15]} else {set CONFIG_CACHE_FT_EN [expr $CONFIG_CACHE_FT_EN|16]} - global CONFIG_CACHE_ERRINJ - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {validate_int CONFIG_CACHE_ERRINJ "$CONFIG_CACHE_ERRINJ" 0} - global CONFIG_LEON3_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - set CONFIG_LEON3_NETLIST [expr $CONFIG_LEON3_NETLIST&15]} else {set CONFIG_LEON3_NETLIST [expr $CONFIG_LEON3_NETLIST|16]} -} - - -proc menu8 {w title} { - set oldFocus [focus] - catch {focus .menu1} - catch {destroy $w; unregister_active 8} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 8]] - message $w.m -width 400 -aspect 300 -text \ - "VHDL debug settings " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "VHDL debug settings " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 8; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 8; catch {destroy .menu1}; unregister_active 1; menu9 .menu9 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 8" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 8; menu7 .menu7 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 8; menu7 .menu7 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 8 0 "Processor disassembly to console " CONFIG_IU_DISAS - bool $w.config.f 8 1 "Processor disassembly in netlist " CONFIG_IU_DISAS_NET - bool $w.config.f 8 2 "32-bit program counters " CONFIG_DEBUG_PC32 - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu1] == 0} then {menu1 .menu1 "Processor "} - set winx [expr [winfo x .menu1]+30]; set winy [expr [winfo y .menu1]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu8 {} { - global CONFIG_LEON3 - global CONFIG_IU_DISAS - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} - global CONFIG_IU_DISAS_NET - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_DISAS == 1)} then { - configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - global CONFIG_DEBUG_PC32 - if {($CONFIG_LEON3 == 1)} then { - configure_entry .menu8.config.f.x2 normal {n l y}} else {configure_entry .menu8.config.f.x2 disabled {y n l}} -} - - -proc update_define_menu8 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_LEON3 - global CONFIG_IU_DISAS - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_IU_DISAS [expr $CONFIG_IU_DISAS&15]} else {set CONFIG_IU_DISAS [expr $CONFIG_IU_DISAS|16]} - global CONFIG_IU_DISAS_NET - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_DISAS == 1)} then { - set CONFIG_IU_DISAS_NET [expr $CONFIG_IU_DISAS_NET&15]} else {set CONFIG_IU_DISAS_NET [expr $CONFIG_IU_DISAS_NET|16]} - global CONFIG_DEBUG_PC32 - if {($CONFIG_LEON3 == 1)} then { - set CONFIG_DEBUG_PC32 [expr $CONFIG_DEBUG_PC32&15]} else {set CONFIG_DEBUG_PC32 [expr $CONFIG_DEBUG_PC32|16]} -} - - -menu_option menu9 9 "On-chip RAM" -proc menu9 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 9} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 9]] - message $w.m -width 400 -aspect 300 -text \ - "On-chip RAM" -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "On-chip RAM" - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 9; break" - set nextscript "catch {focus $oldFocus}; menu10 .menu10 \"$title\"" - frame $w.f - button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 9" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - $w.f.next configure -state disabled - bind all "puts \"no more menus\" " - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 9; menu8 .menu8 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 9; menu8 .menu8 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 9 0 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_23 - minimenu $w.config.f 9 1 "AHB RAM size (Kbyte)" tmpvar_23 CONFIG_AHBRAM_SZ1 - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_23 -value "32" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "64" -variable tmpvar_23 -value "64" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 7 - hex $w.config.f 9 2 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START - - - - focus $w - update_active - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu9 {} { - global CONFIG_AHBRAM_ENABLE - if {($CONFIG_AHBRAM_ENABLE == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} - global CONFIG_AHBRAM_START - if {($CONFIG_AHBRAM_ENABLE == 1)} then {.menu9.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu9.config.f.x2.l configure -state normal; } else {.menu9.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu9.config.f.x2.l configure -state disabled} -} - - -proc update_define_menu9 {} { - update_define_mainmenu - global CONFIG_MODULES - global tmpvar_23 - global CONFIG_AHBRAM_SZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} - global CONFIG_AHBRAM_SZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} - global CONFIG_AHBRAM_SZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} - global CONFIG_AHBRAM_SZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} - global CONFIG_AHBRAM_SZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} - global CONFIG_AHBRAM_SZ32 - if {$tmpvar_23 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} - global CONFIG_AHBRAM_SZ64 - if {$tmpvar_23 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} - global CONFIG_AHBRAM_ENABLE - global CONFIG_AHBRAM_START - if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} -} - - -proc update_mainmenu {} { -} - - -set CONFIG_LEON3 0 -set CONFIG_PROC_NUM 1 -set CONFIG_IU_NWINDOWS 8 -set CONFIG_IU_V8MULDIV 0 -set tmpvar_0 "(not set)" -set CONFIG_IU_MUL_LATENCY_2 0 -set CONFIG_IU_MUL_LATENCY_4 0 -set CONFIG_IU_MUL_LATENCY_5 0 -set CONFIG_IU_MUL_MAC 0 -set tmpvar_1 "(not set)" -set CONFIG_IU_MUL_INFERRED 0 -set CONFIG_IU_MUL_MODGEN 0 -set CONFIG_IU_MUL_TECHSPEC 0 -set CONFIG_IU_MUL_DW 0 -set CONFIG_IU_BP 0 -set CONFIG_IU_SVT 0 -set CONFIG_NOTAG 0 -set CONFIG_IU_LDELAY 1 -set CONFIG_IU_WATCHPOINTS 0 -set CONFIG_PWD 0 -set CONFIG_IU_RSTADDR 00000 -set CONFIG_FPU_ENABLE 0 -set tmpvar_2 "(not set)" -set CONFIG_FPU_GRFPU 0 -set CONFIG_FPU_GRFPULITE 0 -set CONFIG_FPU_MEIKO 0 -set tmpvar_3 "(not set)" -set CONFIG_FPU_GRFPU_INFMUL 0 -set CONFIG_FPU_GRFPU_DWMUL 0 -set CONFIG_FPU_GRFPU_MODGEN 0 -set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_4 "(not set)" -set CONFIG_FPU_GRFPC0 0 -set CONFIG_FPU_GRFPC1 0 -set CONFIG_FPU_GRFPC2 0 -set CONFIG_FPU_NETLIST 0 -set CONFIG_ICACHE_ENABLE 0 -set tmpvar_5 "(not set)" -set CONFIG_ICACHE_ASSO1 0 -set CONFIG_ICACHE_ASSO2 0 -set CONFIG_ICACHE_ASSO3 0 -set CONFIG_ICACHE_ASSO4 0 -set tmpvar_6 "(not set)" -set CONFIG_ICACHE_SZ1 0 -set CONFIG_ICACHE_SZ2 0 -set CONFIG_ICACHE_SZ4 0 -set CONFIG_ICACHE_SZ8 0 -set CONFIG_ICACHE_SZ16 0 -set CONFIG_ICACHE_SZ32 0 -set CONFIG_ICACHE_SZ64 0 -set CONFIG_ICACHE_SZ128 0 -set CONFIG_ICACHE_SZ256 0 -set tmpvar_7 "(not set)" -set CONFIG_ICACHE_LZ16 0 -set CONFIG_ICACHE_LZ32 0 -set tmpvar_8 "(not set)" -set CONFIG_ICACHE_ALGORND 0 -set CONFIG_ICACHE_ALGODIR 0 -set CONFIG_ICACHE_ALGOLRR 0 -set CONFIG_ICACHE_ALGOLRU 0 -set CONFIG_ICACHE_LOCK 0 -set CONFIG_ICACHE_LRAM 0 -set tmpvar_9 "(not set)" -set CONFIG_ICACHE_LRAM_SZ1 0 -set CONFIG_ICACHE_LRAM_SZ2 0 -set CONFIG_ICACHE_LRAM_SZ4 0 -set CONFIG_ICACHE_LRAM_SZ8 0 -set CONFIG_ICACHE_LRAM_SZ16 0 -set CONFIG_ICACHE_LRAM_SZ32 0 -set CONFIG_ICACHE_LRAM_SZ64 0 -set CONFIG_ICACHE_LRAM_SZ128 0 -set CONFIG_ICACHE_LRAM_SZ256 0 -set CONFIG_ICACHE_LRSTART 8e -set CONFIG_DCACHE_ENABLE 0 -set tmpvar_10 "(not set)" -set CONFIG_DCACHE_ASSO1 0 -set CONFIG_DCACHE_ASSO2 0 -set CONFIG_DCACHE_ASSO3 0 -set CONFIG_DCACHE_ASSO4 0 -set tmpvar_11 "(not set)" -set CONFIG_DCACHE_SZ1 0 -set CONFIG_DCACHE_SZ2 0 -set CONFIG_DCACHE_SZ4 0 -set CONFIG_DCACHE_SZ8 0 -set CONFIG_DCACHE_SZ16 0 -set CONFIG_DCACHE_SZ32 0 -set CONFIG_DCACHE_SZ64 0 -set CONFIG_DCACHE_SZ128 0 -set CONFIG_DCACHE_SZ256 0 -set tmpvar_12 "(not set)" -set CONFIG_DCACHE_LZ16 0 -set CONFIG_DCACHE_LZ32 0 -set tmpvar_13 "(not set)" -set CONFIG_DCACHE_ALGORND 0 -set CONFIG_DCACHE_ALGODIR 0 -set CONFIG_DCACHE_ALGOLRR 0 -set CONFIG_DCACHE_ALGOLRU 0 -set CONFIG_DCACHE_LOCK 0 -set CONFIG_DCACHE_SNOOP 0 -set CONFIG_DCACHE_SNOOP_FAST 0 -set CONFIG_DCACHE_SNOOP_SEPTAG 0 -set CONFIG_CACHE_FIXED 0 -set CONFIG_DCACHE_LRAM 0 -set tmpvar_14 "(not set)" -set CONFIG_DCACHE_LRAM_SZ1 0 -set CONFIG_DCACHE_LRAM_SZ2 0 -set CONFIG_DCACHE_LRAM_SZ4 0 -set CONFIG_DCACHE_LRAM_SZ8 0 -set CONFIG_DCACHE_LRAM_SZ16 0 -set CONFIG_DCACHE_LRAM_SZ32 0 -set CONFIG_DCACHE_LRAM_SZ64 0 -set CONFIG_DCACHE_LRAM_SZ128 0 -set CONFIG_DCACHE_LRAM_SZ256 0 -set CONFIG_DCACHE_LRSTART 8f -set CONFIG_MMU_ENABLE 0 -set tmpvar_15 "(not set)" -set CONFIG_MMU_COMBINED 0 -set CONFIG_MMU_SPLIT 0 -set tmpvar_16 "(not set)" -set CONFIG_MMU_REPARRAY 0 -set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_17 "(not set)" -set CONFIG_MMU_I2 0 -set CONFIG_MMU_I4 0 -set CONFIG_MMU_I8 0 -set CONFIG_MMU_I16 0 -set CONFIG_MMU_I32 0 -set tmpvar_18 "(not set)" -set CONFIG_MMU_D2 0 -set CONFIG_MMU_D4 0 -set CONFIG_MMU_D8 0 -set CONFIG_MMU_D16 0 -set CONFIG_MMU_D32 0 -set CONFIG_MMU_FASTWB 0 -set tmpvar_19 "(not set)" -set CONFIG_MMU_PAGE_4K 0 -set CONFIG_MMU_PAGE_8K 0 -set CONFIG_MMU_PAGE_16K 0 -set CONFIG_MMU_PAGE_32K 0 -set CONFIG_MMU_PAGE_PROG 0 -set CONFIG_DSU_ENABLE 0 -set CONFIG_DSU_ITRACE 0 -set tmpvar_20 "(not set)" -set CONFIG_DSU_ITRACESZ1 0 -set CONFIG_DSU_ITRACESZ2 0 -set CONFIG_DSU_ITRACESZ4 0 -set CONFIG_DSU_ITRACESZ8 0 -set CONFIG_DSU_ITRACESZ16 0 -set CONFIG_DSU_ATRACE 0 -set tmpvar_21 "(not set)" -set CONFIG_DSU_ATRACESZ1 0 -set CONFIG_DSU_ATRACESZ2 0 -set CONFIG_DSU_ATRACESZ4 0 -set CONFIG_DSU_ATRACESZ8 0 -set CONFIG_DSU_ATRACESZ16 0 -set CONFIG_LEON3FT_EN 0 -set tmpvar_22 "(not set)" -set CONFIG_IUFT_NONE 0 -set CONFIG_IUFT_PAR 0 -set CONFIG_IUFT_DMR 0 -set CONFIG_IUFT_BCH 0 -set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 -set CONFIG_RF_ERRINJ 0 -set CONFIG_CACHE_FT_EN 0 -set CONFIG_CACHE_ERRINJ 0 -set CONFIG_LEON3_NETLIST 0 -set CONFIG_IU_DISAS 0 -set CONFIG_IU_DISAS_NET 0 -set CONFIG_DEBUG_PC32 0 -set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_23 "(not set)" -set CONFIG_AHBRAM_SZ1 0 -set CONFIG_AHBRAM_SZ2 0 -set CONFIG_AHBRAM_SZ4 0 -set CONFIG_AHBRAM_SZ8 0 -set CONFIG_AHBRAM_SZ16 0 -set CONFIG_AHBRAM_SZ32 0 -set CONFIG_AHBRAM_SZ64 0 -set CONFIG_AHBRAM_START A00 -set CONFIG_HAS_SHARED_GRFPU 4 -set CONFIG_FPU_GRFPU_SH 4 -set CONFIG_MODULES 4 -proc writeconfig {file1 file2} { - set cfg [open $file1 w] - set autocfg [open $file2 w] - set notmod 1 - set notset 0 - puts $cfg "#" - puts $cfg "# Automatically generated make config: don't edit" - puts $cfg "#" - puts $autocfg "/*" - puts $autocfg " * Automatically generated C config: don't edit" - puts $autocfg " */" - puts $autocfg "#define AUTOCONF_INCLUDED" - global CONFIG_LEON3 - write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 - global CONFIG_PROC_NUM - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} - global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } - global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_0 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_0 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - if { $tmpvar_0 == "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 } - if { $tmpvar_0 == "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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_1 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_1 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_1 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_1 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} - global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } - global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } - global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } - global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } - global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } - global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } - global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} - global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } - global tmpvar_2 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_2 == "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 } - if { $tmpvar_2 == "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 } - if { $tmpvar_2 == "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 }} - global tmpvar_3 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_3 == "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 } - if { $tmpvar_3 == "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 } - if { $tmpvar_3 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_3 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global tmpvar_4 - global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_4 == "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 } - if { $tmpvar_4 == "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 } - if { $tmpvar_4 == "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 }} - global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} - global tmpvar_6 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 }} - global tmpvar_7 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} - global tmpvar_8 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } - global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } - global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} - global tmpvar_11 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global tmpvar_13 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } - global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } - global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} - global tmpvar_16 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global tmpvar_18 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} - global CONFIG_MMU_FASTWB - 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 } - global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_19 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_19 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_19 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_19 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } - global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } - global tmpvar_21 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} - global CONFIG_LEON3FT_EN - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_22 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_22 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_22 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_22 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_22 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } - global CONFIG_RF_ERRINJ - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } - global CONFIG_CACHE_FT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_CACHE_FT_EN $CONFIG_CACHE_FT_EN [list $notmod] 2 } - global CONFIG_CACHE_ERRINJ - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_int $cfg $autocfg CONFIG_CACHE_ERRINJ $CONFIG_CACHE_ERRINJ $notmod } - global CONFIG_LEON3_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3_NETLIST $CONFIG_LEON3_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "VHDL debug settings "} - global CONFIG_IU_DISAS - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_DISAS $CONFIG_IU_DISAS [list $notmod] 2 } - global CONFIG_IU_DISAS_NET - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_DISAS == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_DISAS_NET $CONFIG_IU_DISAS_NET [list $notmod] 2 } - global CONFIG_DEBUG_PC32 - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DEBUG_PC32 $CONFIG_DEBUG_PC32 [list $notmod] 2 } - write_comment $cfg $autocfg "On-chip RAM" - global CONFIG_AHBRAM_ENABLE - write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_23 - if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_AHBRAM_START - if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } - close $cfg - close $autocfg -} - - -proc clear_choices { } { - global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 - global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 - global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 - global CONFIG_IU_MUL_INFERRED; set CONFIG_IU_MUL_INFERRED 0 - global CONFIG_IU_MUL_MODGEN; set CONFIG_IU_MUL_MODGEN 0 - global CONFIG_IU_MUL_TECHSPEC; set CONFIG_IU_MUL_TECHSPEC 0 - global CONFIG_IU_MUL_DW; set CONFIG_IU_MUL_DW 0 - global CONFIG_FPU_GRFPU; set CONFIG_FPU_GRFPU 0 - global CONFIG_FPU_GRFPULITE; set CONFIG_FPU_GRFPULITE 0 - global CONFIG_FPU_MEIKO; set CONFIG_FPU_MEIKO 0 - global CONFIG_FPU_GRFPU_INFMUL; set CONFIG_FPU_GRFPU_INFMUL 0 - global CONFIG_FPU_GRFPU_DWMUL; set CONFIG_FPU_GRFPU_DWMUL 0 - global CONFIG_FPU_GRFPU_MODGEN; set CONFIG_FPU_GRFPU_MODGEN 0 - global CONFIG_FPU_GRFPU_TECHSPEC; set CONFIG_FPU_GRFPU_TECHSPEC 0 - global CONFIG_FPU_GRFPC0; set CONFIG_FPU_GRFPC0 0 - global CONFIG_FPU_GRFPC1; set CONFIG_FPU_GRFPC1 0 - global CONFIG_FPU_GRFPC2; set CONFIG_FPU_GRFPC2 0 - global CONFIG_ICACHE_ASSO1; set CONFIG_ICACHE_ASSO1 0 - global CONFIG_ICACHE_ASSO2; set CONFIG_ICACHE_ASSO2 0 - global CONFIG_ICACHE_ASSO3; set CONFIG_ICACHE_ASSO3 0 - global CONFIG_ICACHE_ASSO4; set CONFIG_ICACHE_ASSO4 0 - global CONFIG_ICACHE_SZ1; set CONFIG_ICACHE_SZ1 0 - global CONFIG_ICACHE_SZ2; set CONFIG_ICACHE_SZ2 0 - global CONFIG_ICACHE_SZ4; set CONFIG_ICACHE_SZ4 0 - global CONFIG_ICACHE_SZ8; set CONFIG_ICACHE_SZ8 0 - global CONFIG_ICACHE_SZ16; set CONFIG_ICACHE_SZ16 0 - global CONFIG_ICACHE_SZ32; set CONFIG_ICACHE_SZ32 0 - global CONFIG_ICACHE_SZ64; set CONFIG_ICACHE_SZ64 0 - global CONFIG_ICACHE_SZ128; set CONFIG_ICACHE_SZ128 0 - global CONFIG_ICACHE_SZ256; set CONFIG_ICACHE_SZ256 0 - global CONFIG_ICACHE_LZ16; set CONFIG_ICACHE_LZ16 0 - global CONFIG_ICACHE_LZ32; set CONFIG_ICACHE_LZ32 0 - global CONFIG_ICACHE_ALGORND; set CONFIG_ICACHE_ALGORND 0 - global CONFIG_ICACHE_ALGODIR; set CONFIG_ICACHE_ALGODIR 0 - global CONFIG_ICACHE_ALGOLRR; set CONFIG_ICACHE_ALGOLRR 0 - global CONFIG_ICACHE_ALGOLRU; set CONFIG_ICACHE_ALGOLRU 0 - global CONFIG_ICACHE_LRAM_SZ1; set CONFIG_ICACHE_LRAM_SZ1 0 - global CONFIG_ICACHE_LRAM_SZ2; set CONFIG_ICACHE_LRAM_SZ2 0 - global CONFIG_ICACHE_LRAM_SZ4; set CONFIG_ICACHE_LRAM_SZ4 0 - global CONFIG_ICACHE_LRAM_SZ8; set CONFIG_ICACHE_LRAM_SZ8 0 - global CONFIG_ICACHE_LRAM_SZ16; set CONFIG_ICACHE_LRAM_SZ16 0 - global CONFIG_ICACHE_LRAM_SZ32; set CONFIG_ICACHE_LRAM_SZ32 0 - global CONFIG_ICACHE_LRAM_SZ64; set CONFIG_ICACHE_LRAM_SZ64 0 - global CONFIG_ICACHE_LRAM_SZ128; set CONFIG_ICACHE_LRAM_SZ128 0 - global CONFIG_ICACHE_LRAM_SZ256; set CONFIG_ICACHE_LRAM_SZ256 0 - global CONFIG_DCACHE_ASSO1; set CONFIG_DCACHE_ASSO1 0 - global CONFIG_DCACHE_ASSO2; set CONFIG_DCACHE_ASSO2 0 - global CONFIG_DCACHE_ASSO3; set CONFIG_DCACHE_ASSO3 0 - global CONFIG_DCACHE_ASSO4; set CONFIG_DCACHE_ASSO4 0 - global CONFIG_DCACHE_SZ1; set CONFIG_DCACHE_SZ1 0 - global CONFIG_DCACHE_SZ2; set CONFIG_DCACHE_SZ2 0 - global CONFIG_DCACHE_SZ4; set CONFIG_DCACHE_SZ4 0 - global CONFIG_DCACHE_SZ8; set CONFIG_DCACHE_SZ8 0 - global CONFIG_DCACHE_SZ16; set CONFIG_DCACHE_SZ16 0 - global CONFIG_DCACHE_SZ32; set CONFIG_DCACHE_SZ32 0 - global CONFIG_DCACHE_SZ64; set CONFIG_DCACHE_SZ64 0 - global CONFIG_DCACHE_SZ128; set CONFIG_DCACHE_SZ128 0 - global CONFIG_DCACHE_SZ256; set CONFIG_DCACHE_SZ256 0 - global CONFIG_DCACHE_LZ16; set CONFIG_DCACHE_LZ16 0 - global CONFIG_DCACHE_LZ32; set CONFIG_DCACHE_LZ32 0 - global CONFIG_DCACHE_ALGORND; set CONFIG_DCACHE_ALGORND 0 - global CONFIG_DCACHE_ALGODIR; set CONFIG_DCACHE_ALGODIR 0 - global CONFIG_DCACHE_ALGOLRR; set CONFIG_DCACHE_ALGOLRR 0 - global CONFIG_DCACHE_ALGOLRU; set CONFIG_DCACHE_ALGOLRU 0 - global CONFIG_DCACHE_LRAM_SZ1; set CONFIG_DCACHE_LRAM_SZ1 0 - global CONFIG_DCACHE_LRAM_SZ2; set CONFIG_DCACHE_LRAM_SZ2 0 - global CONFIG_DCACHE_LRAM_SZ4; set CONFIG_DCACHE_LRAM_SZ4 0 - global CONFIG_DCACHE_LRAM_SZ8; set CONFIG_DCACHE_LRAM_SZ8 0 - global CONFIG_DCACHE_LRAM_SZ16; set CONFIG_DCACHE_LRAM_SZ16 0 - global CONFIG_DCACHE_LRAM_SZ32; set CONFIG_DCACHE_LRAM_SZ32 0 - global CONFIG_DCACHE_LRAM_SZ64; set CONFIG_DCACHE_LRAM_SZ64 0 - global CONFIG_DCACHE_LRAM_SZ128; set CONFIG_DCACHE_LRAM_SZ128 0 - global CONFIG_DCACHE_LRAM_SZ256; set CONFIG_DCACHE_LRAM_SZ256 0 - global CONFIG_MMU_COMBINED; set CONFIG_MMU_COMBINED 0 - global CONFIG_MMU_SPLIT; set CONFIG_MMU_SPLIT 0 - global CONFIG_MMU_REPARRAY; set CONFIG_MMU_REPARRAY 0 - global CONFIG_MMU_REPINCREMENT; set CONFIG_MMU_REPINCREMENT 0 - global CONFIG_MMU_I2; set CONFIG_MMU_I2 0 - global CONFIG_MMU_I4; set CONFIG_MMU_I4 0 - global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 - global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 - global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 - global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 - global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 - global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 - global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 - global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 - global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 - global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 - global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 - global CONFIG_MMU_PAGE_32K; set CONFIG_MMU_PAGE_32K 0 - global CONFIG_MMU_PAGE_PROG; set CONFIG_MMU_PAGE_PROG 0 - global CONFIG_DSU_ITRACESZ1; set CONFIG_DSU_ITRACESZ1 0 - global CONFIG_DSU_ITRACESZ2; set CONFIG_DSU_ITRACESZ2 0 - global CONFIG_DSU_ITRACESZ4; set CONFIG_DSU_ITRACESZ4 0 - global CONFIG_DSU_ITRACESZ8; set CONFIG_DSU_ITRACESZ8 0 - global CONFIG_DSU_ITRACESZ16; set CONFIG_DSU_ITRACESZ16 0 - global CONFIG_DSU_ATRACESZ1; set CONFIG_DSU_ATRACESZ1 0 - global CONFIG_DSU_ATRACESZ2; set CONFIG_DSU_ATRACESZ2 0 - global CONFIG_DSU_ATRACESZ4; set CONFIG_DSU_ATRACESZ4 0 - global CONFIG_DSU_ATRACESZ8; set CONFIG_DSU_ATRACESZ8 0 - global CONFIG_DSU_ATRACESZ16; set CONFIG_DSU_ATRACESZ16 0 - global CONFIG_IUFT_NONE; set CONFIG_IUFT_NONE 0 - global CONFIG_IUFT_PAR; set CONFIG_IUFT_PAR 0 - global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 - global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 - global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 - global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0 - global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0 - global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0 - global CONFIG_AHBRAM_SZ8; set CONFIG_AHBRAM_SZ8 0 - global CONFIG_AHBRAM_SZ16; set CONFIG_AHBRAM_SZ16 0 - global CONFIG_AHBRAM_SZ32; set CONFIG_AHBRAM_SZ32 0 - global CONFIG_AHBRAM_SZ64; set CONFIG_AHBRAM_SZ64 0 -} - - -proc update_choices { } { - global tmpvar_0 - set tmpvar_0 "5-cycles" - global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_0 "2-cycles" } - global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_0 "4-cycles" } - global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_0 "5-cycles" } - global tmpvar_1 - set tmpvar_1 "Inferred" - global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_1 "Inferred" } - global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_1 "NTNU_Modgen" } - global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_1 "TechSpec" } - global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_1 "Designware" } - global tmpvar_2 - set tmpvar_2 "GRFPU" - global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_2 "GRFPU" } - global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_2 "GRFPU-LITE" } - global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_2 "Meiko" } - global tmpvar_3 - set tmpvar_3 "Inferred" - global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_3 "Inferred" } - global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_3 "DW" } - global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_3 "ModGen" } - global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_3 "TechSpec" } - global tmpvar_4 - set tmpvar_4 "Simple" - global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_4 "Simple" } - global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_4 "Data-forwarding" } - global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_4 "Non-blocking" } - global tmpvar_5 - set tmpvar_5 "1" - global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_5 "1" } - global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_5 "2" } - global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_5 "3" } - global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_5 "4" } - global tmpvar_6 - set tmpvar_6 "4" - global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_6 "1" } - global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_6 "2" } - global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_6 "4" } - global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_6 "8" } - global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_6 "16" } - global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_6 "32" } - global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_6 "64" } - global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_6 "128" } - global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_6 "256" } - global tmpvar_7 - set tmpvar_7 "32" - global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_7 "16" } - global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_7 "32" } - global tmpvar_8 - set tmpvar_8 "Random" - global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_8 "Random" } - global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_8 "Direct" } - global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_8 "LRR" } - global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_8 "LRU" } - global tmpvar_9 - set tmpvar_9 "4" - global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_9 "1" } - global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_9 "2" } - global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_9 "4" } - global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_9 "8" } - global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_9 "16" } - global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_9 "32" } - global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_9 "64" } - global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_9 "128" } - global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "1" - global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_10 "1" } - global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_10 "2" } - global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_10 "3" } - global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_10 "4" } - global tmpvar_11 - set tmpvar_11 "4" - global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_11 "1" } - global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_11 "2" } - global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_11 "4" } - global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_11 "8" } - global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_11 "16" } - global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_11 "32" } - global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_11 "64" } - global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_11 "128" } - global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_11 "256" } - global tmpvar_12 - set tmpvar_12 "32" - global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_12 "16" } - global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_12 "32" } - global tmpvar_13 - set tmpvar_13 "Random" - global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_13 "Random" } - global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_13 "Direct" } - global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_13 "LRR" } - global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_13 "LRU" } - global tmpvar_14 - set tmpvar_14 "4" - global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_14 "1" } - global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_14 "2" } - global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_14 "4" } - global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_14 "8" } - global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_14 "16" } - global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_14 "32" } - global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_14 "64" } - global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_14 "128" } - global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "combined" - global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_15 "combined" } - global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_15 "split" } - global tmpvar_16 - set tmpvar_16 "Increment" - global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_16 "LRU" } - global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_16 "Increment" } - global tmpvar_17 - set tmpvar_17 "8" - global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_17 "2" } - global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_17 "4" } - global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_17 "8" } - global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_17 "16" } - global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_17 "32" } - global tmpvar_18 - set tmpvar_18 "8" - global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_18 "2" } - global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_18 "4" } - global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_18 "8" } - global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_18 "16" } - global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_18 "32" } - global tmpvar_19 - set tmpvar_19 "4K" - global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_19 "4K" } - global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_19 "8K" } - global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_19 "16K" } - global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_19 "32K" } - global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_19 "Programmable" } - global tmpvar_20 - set tmpvar_20 "1" - global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_20 "1" } - global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_20 "2" } - global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_20 "4" } - global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_20 "8" } - global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_20 "16" } - global tmpvar_21 - set tmpvar_21 "1" - global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_21 "1" } - global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_21 "2" } - global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_21 "4" } - global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_21 "8" } - global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_21 "16" } - global tmpvar_22 - set tmpvar_22 "None" - global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_22 "None" } - global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_22 "Parity" } - global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_22 "PDMR" } - global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_22 "BCH" } - global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_22 "TMR" } - global tmpvar_23 - set tmpvar_23 "4" - global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_23 "1" } - global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_23 "2" } - global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_23 "4" } - global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_23 "8" } - global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_23 "16" } - global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_23 "32" } - global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_23 "64" } -} - - -proc update_define_mainmenu {} { - global CONFIG_MODULES -} - - -# FILE: tail.tk -# This file is boilerplate TCL/TK function definitions for 'make xconfig'. -# -# CHANGES -# ======= -# -# 8 January 1998, Michael Elizabeth Chastain, -# Arrange buttons in three columns for better screen fitting. -# - -# -# Read the user's settings from .config. These will override whatever is -# in config.in. Don't do this if the user specified a -D to force -# the defaults. -# - -set defaults defconfig - -if { [file readable .config] == 1} then { - if { $argc > 0 } then { - if { [lindex $argv 0] != "-D" } then { - read_config .config - } - else - { - read_config $defaults - } - } else { - read_config .config - } -} else { - read_config $defaults -} - -update_define 1 $total_menus 0 -update_mainmenu - -button .f0.right.save -anchor w -text "Save and Exit" -underline 0\ - -command { catch {exec cp -f .config .config.old}; \ - writeconfig .config config.h; wrapup .wrap } - -button .f0.right.quit -anchor w -text "Quit Without Saving" -underline 0\ - -command { maybe_exit .maybe } - -button .f0.right.load -anchor w -text "Load Configuration from File" \ - -command { load_configfile .load "Load Configuration from file" read_config_file -} - -button .f0.right.store -anchor w -text "Store Configuration to File" \ - -command { load_configfile .load "Store Configuration to file" write_config_file } - -# -# Now pack everything. -# - -pack .f0.right.store .f0.right.load .f0.right.quit .f0.right.save \ - -padx 0 -pady 0 -side bottom -fill x -pack .f0.left .f0.middle .f0.right -side left -padx 5 -pady 0 -fill y -pack .f0 -padx 5 -pady 5 - -update idletasks -set winy [expr 10 + [winfo reqheight .f0]] -set scry [lindex [wm maxsize .] 1] -set winx [expr 10 + [winfo reqwidth .f0]] -set scrx [lindex [wm maxsize .] 0] -if {$winx < $scrx} then {set maxx -1} else {set maxx $winx} -if {$winy < $scry} then {set maxy -1} else {set maxy $winy} -.f0 configure -width $winx -height $winy -wm maxsize . $maxx $maxy - -# -# If we cannot write our config files, disable the write button. -# -if { [file exists .config] == 1 } then { - if { [file writable .config] == 0 } then { - .f0.right.save configure -state disabled - } - } else { - if { [file writable .] == 0 } then { - .f0.right.save configure -state disabled - } - } - -#if { [file exists include/linux/autoconf.h] == 1 } then { -# if { [file writable include/linux/autoconf.h] == 0 } then { -# .f0.right.save configure -state disabled -# } -# } else { -# if { [file writable include/linux/] == 0 } then { -# .f0.right.save configure -state disabled -# } -# } diff --git a/designs/leon3-wildcard-xcv300e/pe_arch.vhd b/designs/leon3-wildcard-xcv300e/pe_arch.vhd deleted file mode 100644 index 54e3a1d6..00000000 --- a/designs/leon3-wildcard-xcv300e/pe_arch.vhd +++ /dev/null @@ -1,173 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---============================================================================-- --- Design unit : PE architecture (architecture declarations) --- --- File name : pe_arch.vhd --- --- Purpose : Wrapper for simulation --- --- Library : PE_Lib --- --- Authors : Aeroflex Gaisler AB --- --- Contact : mailto:support@gaisler.com --- http://www.gaisler.com --- --- Disclaimer : All information is provided "as is", there is no warranty that --- the information is correct or suitable for any purpose, --- neither implicit nor explicit. ---============================================================================-- - ---============================== Architecture ================================-- - -library IEEE; -use IEEE.Std_Logic_1164.all; - -library PE_Lib; -use PE_Lib.PE_Package.all; - -architecture Wrapper of PE is - - component WildFpga is - port ( - Clocks_F_Clk: in std_logic; - Clocks_M_Clk: in std_logic; - Clocks_P_Clk: in std_logic; - Clocks_K_Clk: in std_logic; - Clocks_IO_Clk: in std_logic; - - Clocks_M_Clk_Out_PE: out std_logic; - Clocks_M_Clk_Out_CB_Ctrl: out std_logic; - Clocks_M_Clk_Out_Right_Mem: out std_logic; - Clocks_M_Clk_Out_Left_Mem: out std_logic; - Clocks_P_Clk_Out_PE: out std_logic; - Clocks_P_Clk_Out_CB_Ctrl: out std_logic; - - Reset_Reset: in std_logic; - Audio_Audio: out std_logic; - - LAD_Bus_Addr_Data: inout std_logic_vector (31 downto 0); - LAD_Bus_AS_n: in std_logic; - LAD_Bus_DS_n: in std_logic; - LAD_Bus_WR_n: in std_logic; - LAD_Bus_CS_n: in std_logic; - LAD_Bus_Reg_n: in std_logic; - LAD_Bus_Ack_n: out std_logic; - LAD_Bus_Int_Req_n: out std_logic; - LAD_Bus_DMA_0_Data_OK_n: out std_logic; - LAD_Bus_DMA_0_Burst_OK: out std_logic; - LAD_Bus_DMA_1_Data_OK_n: out std_logic; - LAD_Bus_DMA_1_Burst_OK: out std_logic; - LAD_Bus_Reg_Data_OK_n: out std_logic; - LAD_Bus_Reg_Burst_OK: out std_logic; - LAD_Bus_Force_K_Clk_n: out std_logic; - LAD_Bus_Reserved: out std_logic; - - Left_Mem_Addr: out std_logic_vector (18 downto 0); - Left_Mem_Data: inout std_logic_vector (35 downto 0); - Left_Mem_Byte_WR_n: out std_logic_vector (3 downto 0); - Left_Mem_CS_n: out std_logic; - Left_Mem_CE_n: out std_logic; - Left_Mem_WE_n: out std_logic; - Left_Mem_OE_n: out std_logic; - Left_Mem_Sleep_EN: out std_logic; - Left_Mem_Load_EN_n: out std_logic; - Left_Mem_Burst_Mode: out std_logic; - - Right_Mem_Addr: out std_logic_vector (18 downto 0); - Right_Mem_Data: inout std_logic_vector (35 downto 0); - Right_Mem_Byte_WR_n: out std_logic_vector (3 downto 0); - Right_Mem_CS_n: out std_logic; - Right_Mem_CE_n: out std_logic; - Right_Mem_WE_n: out std_logic; - Right_Mem_OE_n: out std_logic; - Right_Mem_Sleep_EN: out std_logic; - Right_Mem_Load_EN_n: out std_logic; - Right_Mem_Burst_Mode: out std_logic; - - Left_IO: inout std_logic_vector (12 downto 0); - Right_IO: inout std_logic_vector (12 downto 0)); - end component; - - signal Clocks_M_Clk_Out_Right_Del: std_logic; - signal Clocks_M_Clk_Out_Left_Del: std_logic; - -begin - - Init_PE_Pads ( Pads ); - - Pads.Clocks.M_Clk_Out_Right_Mem <= transport Clocks_M_Clk_Out_Right_Del after 2 ns; - Pads.Clocks.M_Clk_Out_Left_Mem <= transport Clocks_M_Clk_Out_Left_Del after 2 ns; - - FPGA: WildFpga - port map ( - Clocks_F_Clk => Pads.Clocks.F_Clk, - Clocks_M_Clk => Pads.Clocks.M_Clk, - Clocks_P_Clk => Pads.Clocks.P_Clk, - Clocks_K_Clk => Pads.Clocks.K_Clk, - Clocks_IO_Clk => Pads.Clocks.IO_Clk, - Clocks_M_Clk_Out_PE => Pads.Clocks.M_Clk_Out_PE, - Clocks_M_Clk_Out_CB_Ctrl => Pads.Clocks.M_Clk_Out_CB_Ctrl, - Clocks_M_Clk_Out_Right_Mem => Clocks_M_Clk_Out_Right_Del, - Clocks_M_Clk_Out_Left_Mem => Clocks_M_Clk_Out_Left_Del, - Clocks_P_Clk_Out_PE => Pads.Clocks.P_Clk_Out_PE, - Clocks_P_Clk_Out_CB_Ctrl => Pads.Clocks.P_Clk_Out_CB_Ctrl, - Reset_Reset => Pads.Reset, - Audio_Audio => Pads.Audio, - LAD_Bus_Addr_Data => Pads.LAD_Bus.Addr_Data, - LAD_Bus_AS_n => Pads.LAD_Bus.AS_n, - LAD_Bus_DS_n => Pads.LAD_Bus.DS_n, - LAD_Bus_WR_n => Pads.LAD_Bus.WR_n, - LAD_Bus_CS_n => Pads.LAD_Bus.CS_n, - LAD_Bus_Reg_n => Pads.LAD_Bus.Reg_n, - LAD_Bus_Ack_n => Pads.LAD_Bus.Ack_n, - LAD_Bus_Int_Req_n => Pads.LAD_Bus.Int_Req_n, - LAD_Bus_DMA_0_Data_OK_n => Pads.LAD_Bus.DMA_0_Data_OK_n, - LAD_Bus_DMA_0_Burst_OK => Pads.LAD_Bus.DMA_0_Burst_OK, - LAD_Bus_DMA_1_Data_OK_n => Pads.LAD_Bus.DMA_1_Data_OK_n, - LAD_Bus_DMA_1_Burst_OK => Pads.LAD_Bus.DMA_1_Burst_OK, - LAD_Bus_Reg_Data_OK_n => Pads.LAD_Bus.Reg_Data_OK_n, - LAD_Bus_Reg_Burst_OK => Pads.LAD_Bus.Reg_Burst_OK, - LAD_Bus_Force_K_Clk_n => Pads.LAD_Bus.Force_K_Clk_n, - LAD_Bus_Reserved => Pads.LAD_Bus.Reserved, - Left_Mem_Addr => Pads.Left_Mem.Addr, - Left_Mem_Data => Pads.Left_Mem.Data, - Left_Mem_Byte_WR_n => Pads.Left_Mem.Byte_WR_n, - Left_Mem_CS_n => Pads.Left_Mem.CS_n, - Left_Mem_CE_n => Pads.Left_Mem.CE_n, - Left_Mem_WE_n => Pads.Left_Mem.WE_n, - Left_Mem_OE_n => Pads.Left_Mem.OE_n, - Left_Mem_Sleep_EN => Pads.Left_Mem.Sleep_EN, - Left_Mem_Load_EN_n => Pads.Left_Mem.Load_EN_n, - Left_Mem_Burst_Mode => Pads.Left_Mem.Burst_Mode, - Right_Mem_Addr => Pads.Right_Mem.Addr, - Right_Mem_Data => Pads.Right_Mem.Data, - Right_Mem_Byte_WR_n => Pads.Right_Mem.Byte_WR_n, - Right_Mem_CS_n => Pads.Right_Mem.CS_n, - Right_Mem_CE_n => Pads.Right_Mem.CE_n, - Right_Mem_WE_n => Pads.Right_Mem.WE_n, - Right_Mem_OE_n => Pads.Right_Mem.OE_n, - Right_Mem_Sleep_EN => Pads.Right_Mem.Sleep_EN, - Right_Mem_Load_EN_n => Pads.Right_Mem.Load_EN_n, - Right_Mem_Burst_Mode => Pads.Right_Mem.Burst_Mode, - Left_IO => Pads.Left_IO, - Right_IO => Pads.Right_IO); - -end architecture Wrapper; --==================================================-- diff --git a/designs/leon3-wildcard-xcv300e/readme.txt b/designs/leon3-wildcard-xcv300e/readme.txt deleted file mode 100644 index 20ac440d..00000000 --- a/designs/leon3-wildcard-xcv300e/readme.txt +++ /dev/null @@ -1,24 +0,0 @@ --============================================================================-- -The WildCard FPGA template design is based on the GRLIB VHDL IP core library. - -The design can be synthesized using only GRLIB IP cores: - -- make ise Synthesis, place and route using Xilinx ISE - -- make ise-synp Synthesis using Synplify, place and route using Xilinx ISE - -- make ise-prom Generation of wildcard-xcv300e.bin programming file - -To simulate the design, one requires access to the VHDL templates that are -delivered with the WildCard device. Set WILDCARD_BASE variable to WildCard VHDL -directory path. - -- make vsim Compile FPGA design with ModelSim - -- make vsim-wildcard Compile WildCard test environment with ModelSim - -- vsim system_config Simulate WildCard design with ModelSim - -All information is provided "as is", there is no warranty that the information -is correct or suitable for any purpose, neither implicit nor explicit. ---============================================================================-- diff --git a/designs/leon3-wildcard-xcv300e/system_cfg.vhd b/designs/leon3-wildcard-xcv300e/system_cfg.vhd deleted file mode 100644 index 89947de4..00000000 --- a/designs/leon3-wildcard-xcv300e/system_cfg.vhd +++ /dev/null @@ -1,75 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---============================================================================-- --- Design unit : System_Config (configuration declaration) --- --- File name : system_cfg.vhd --- --- Purpose : System configuration for co-simulation of host and WildCard --- --- Library : System --- --- Authors : Aeroflex Gaisler AB --- --- Contact : mailto:support@gaisler.com --- http://www.gaisler.com --- --- Disclaimer : All information is provided "as is", there is no warranty that --- the information is correct or suitable for any purpose, --- neither implicit nor explicit. ---============================================================================-- -library SYSTEM; -library PE_Lib; -library Work; - -configuration System_Config of System is - for Structure - for U_Host: Host - use entity SYSTEM.Host(Validate); - end for; - - for U_WILDCARD: WILDCARD - use entity SYSTEM.WILDCARD(Standard); - for Standard - for U_PE: PE - use entity PE_Lib.PE(Wrapper); - for Wrapper - for FPGA: WildFpga - use entity Work.WildFpga(Rtl) - generic map ( - fabtech => 1, - memtech => 1, - padtech => 1, - clktech => 1, - netlist => 1); - end for; - end for; - end for; - for U_Left_Mem: Memory_Bank - use entity SYSTEM.Memory_Bank( Static ) - generic map(MEM_SIZE => 2**19); - end for; - for U_Right_Mem: Memory_Bank - use entity SYSTEM.Memory_Bank( Static ) - generic map(MEM_SIZE => 2**19); - end for; - end for; - end for; - end for; -end configuration System_Config; --===========================================-- \ No newline at end of file diff --git a/designs/leon3-wildcard-xcv300e/wave.do b/designs/leon3-wildcard-xcv300e/wave.do deleted file mode 100644 index b9b7242e..00000000 --- a/designs/leon3-wildcard-xcv300e/wave.do +++ /dev/null @@ -1,79 +0,0 @@ -onerror {resume} -quietly WaveActivateNextPane {} 0 -add wave -noupdate -divider External -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/clocks_f_clk -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/clocks_m_clk -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/clocks_p_clk -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/clocks_k_clk -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/clocks_io_clk -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/clocks_m_clk_out_pe -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/clocks_m_clk_out_cb_ctrl -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/clocks_m_clk_out_right_mem -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/clocks_m_clk_out_left_mem -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/clocks_p_clk_out_pe -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/clocks_p_clk_out_cb_ctrl -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/reset_reset -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/audio_audio -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/lad_bus_addr_data -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_as_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_ds_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_wr_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_cs_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_reg_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_ack_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_int_req_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_dma_0_data_ok_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_dma_0_burst_ok -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_dma_1_data_ok_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_dma_1_burst_ok -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_reg_data_ok_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_reg_burst_ok -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_force_k_clk_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/lad_bus_reserved -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/left_mem_addr -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/left_mem_data -add wave -noupdate -format Literal /system/u_wildcard/u_pe/fpga/left_mem_byte_wr_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/left_mem_cs_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/left_mem_ce_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/left_mem_we_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/left_mem_oe_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/left_mem_sleep_en -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/left_mem_load_en_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/left_mem_burst_mode -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/right_mem_addr -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/right_mem_data -add wave -noupdate -format Literal /system/u_wildcard/u_pe/fpga/right_mem_byte_wr_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/right_mem_cs_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/right_mem_ce_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/right_mem_we_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/right_mem_oe_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/right_mem_sleep_en -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/right_mem_load_en_n -add wave -noupdate -format Logic /system/u_wildcard/u_pe/fpga/right_mem_burst_mode -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/left_io -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/right_io -add wave -noupdate -divider Amba -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/ladi -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/lado -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/apbi -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/apbo -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/ahbsi -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/ahbso -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/ahbmi -add wave -noupdate -format Literal -radix hexadecimal /system/u_wildcard/u_pe/fpga/ahbmo -TreeUpdate [SetDefaultTree] -WaveRestoreCursors {{Cursor 1} {43611000 ps} 0} -configure wave -namecolwidth 222 -configure wave -valuecolwidth 115 -configure wave -justifyvalue left -configure wave -signalnamewidth 1 -configure wave -snapdistance 10 -configure wave -datasetprefix 0 -configure wave -rowmargin 4 -configure wave -childrowmargin 2 -configure wave -gridoffset 0 -configure wave -gridperiod 1 -configure wave -griddelta 40 -configure wave -timeline 0 -update -WaveRestoreZoom {0 ps} {40983991 ps} diff --git a/designs/leon3-wildcard-xcv300e/wildfpga.vhd b/designs/leon3-wildcard-xcv300e/wildfpga.vhd deleted file mode 100644 index 33a3d389..00000000 --- a/designs/leon3-wildcard-xcv300e/wildfpga.vhd +++ /dev/null @@ -1,588 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---============================================================================-- --- Design unit : WildCard FPGA (entity and architecture declarations) --- --- File name : wildfpga.vhd --- --- Purpose : WildCard FPGA design --- --- Library : Work --- --- Authors : Aeroflex Gaisler AB --- --- Contact : mailto:support@gaisler.com --- http://www.gaisler.com --- --- Disclaimer : All information is provided "as is", there is no warranty that --- the information is correct or suitable for any purpose, --- neither implicit nor explicit. ---============================================================================-- - ------------------------------------ Glossary ----------------------------------- --- --- Name Key: --- ========= --- _AS : Address Strobe --- _CE : Clock Enable --- _CS : Chip Select --- _DS : Data Strobe --- _EN : Enable --- _OE : Output Enable --- _RD : Read Select --- _WE : Write Enable --- _WR : Write Select --- _d[d...] : Delayed (registered) signal (each 'd' denotes one --- level of delay) --- _n : Active low signals (must be last part of name) --- --- Port Name Dir Description --- ============================ === ================================ --- Clocks_F_Clk I Frequency synthesizer clock --- Clocks_M_Clk I Memory clock --- Clocks_P_Clk I Processor clock --- Clocks_K_Clk I LAD-bus clock --- Clocks_IO_Clk I External I/O connector clock --- Clocks_M_Clk_Out_Pe O M_Clk to the PE --- Clocks_M_Clk_Out_CB_Ctrl O M_Clk to the CardBus controller --- Clocks_M_Clk_Out_Right_Mem O M_Clk to the right memory bank --- Clocks_M_Clk_Out_Left_Mem O M_Clk to the left memory bank --- Clocks_P_Clk_Out_Pe O P_Clk to the PE --- Clocks_P_Clk_Out_CB_Ctrl O P_Clk to the CardBus controller --- Reset_Reset I Global PE reset --- Audio_Audio O Pulse-width modulated audio pad --- LAD_Bus_Addr_Data B LAD-bus shared address/data bus --- LAD_Bus_AS_n I LAD-bus address strobe --- LAD_Bus_DS_n I LAD-bus data strobe --- LAD_Bus_WR_n I LAD-bus write select --- LAD_Bus_CS_n I LAD-bus chip select --- LAD_Bus_Reg_n I LAD-bus register select --- LAD_Bus_Ack_n O LAD-bus acknowledge strobe --- LAD_Bus_Int_Req_n O LAD-bus interrupt request --- LAD_Bus_DMA_0_Data_OK_n O LAD-bus DMA chan 0 data OK flag --- LAD_Bus_DMA_0_Burst_OK_n O LAD-bus DMA chan 0 burst OK flag --- LAD_Bus_DMA_1_Data_OK_n O LAD-bus DMA chan 1 data OK flag --- LAD_Bus_DMA_1_Burst_OK_n O LAD-bus DMA chan 1 burst OK flag --- LAD_Bus_Reg_Data_OK_n O LAD-bus reg space data OK flag --- LAD_Bus_Reg_Burst_OK_n O LAD-bus reg space burst OK flag --- LAD_Bus_Force_K_Clk_n O LAD-bus K_Clk forced-run select --- LAD_Bus_Reserved - Reserved for future use --- Left_Mem_Addr O Left memory address bus --- Left_Mem_Data B Left memory data bus --- Left_Mem_Byte_WR_n O Left memory byte write select --- Left_Mem_CS_n O Left memory chip select --- Left_Mem_CE_n O Left memory clock enable --- Left_Mem_WE_n O Left memory write enable --- Left_Mem_OE_n O Left memory output enable --- Left_Mem_Sleep_EN O Left memory sleep enable --- Left_Mem_Load_EN_n O Left memory load enable --- Left_Mem_Burst_Mode O Left memory burst mode select --- Right_Mem_Addr O Right memory address bus --- Right_Mem_Data B Right memory data bus --- Right_Mem_Byte_WR_n O Right memory byte write select --- Right_Mem_CS_n O Right memory chip select --- Right_Mem_CE_n O Right memory clock enable --- Right_Mem_WE_n O Right memory write enable --- Right_Mem_OE_n O Right memory output enable --- Right_Mem_Sleep_EN O Right memory sleep enable --- Right_Mem_Load_EN_n O Right memory load enable --- Left_Mem_Burst_Mode O Right memory burst mode select --- Left_IO B Left external I/O connector --- Right_IO B Right external I/O connector ---============================================================================-- - -library IEEE; -use IEEE.Std_Logic_1164.all; - -entity WildFpga is - generic ( - fabtech: integer := 1; - memtech: integer := 1; - padtech: integer := 1; - clktech: integer := 1; - netlist: integer := 1); - port ( - Clocks_F_Clk: in std_logic; - Clocks_M_Clk: in std_logic; - Clocks_P_Clk: in std_logic; - Clocks_K_Clk: in std_logic; - Clocks_IO_Clk: in std_logic; - - Clocks_M_Clk_Out_PE: out std_logic; - Clocks_M_Clk_Out_CB_Ctrl: out std_logic; - Clocks_M_Clk_Out_Right_Mem: out std_logic; - Clocks_M_Clk_Out_Left_Mem: out std_logic; - Clocks_P_Clk_Out_PE: out std_logic; - Clocks_P_Clk_Out_CB_Ctrl: out std_logic; - - Reset_Reset: in std_logic; - Audio_Audio: out std_logic; - - LAD_Bus_Addr_Data: inout std_logic_vector (31 downto 0); - LAD_Bus_AS_n: in std_logic; - LAD_Bus_DS_n: in std_logic; - LAD_Bus_WR_n: in std_logic; - LAD_Bus_CS_n: in std_logic; - LAD_Bus_Reg_n: in std_logic; - LAD_Bus_Ack_n: out std_logic; - LAD_Bus_Int_Req_n: out std_logic; - LAD_Bus_DMA_0_Data_OK_n: out std_logic; - LAD_Bus_DMA_0_Burst_OK: out std_logic; - LAD_Bus_DMA_1_Data_OK_n: out std_logic; - LAD_Bus_DMA_1_Burst_OK: out std_logic; - LAD_Bus_Reg_Data_OK_n: out std_logic; - LAD_Bus_Reg_Burst_OK: out std_logic; - LAD_Bus_Force_K_Clk_n: out std_logic; - LAD_Bus_Reserved: out std_logic; - - Left_Mem_Addr: out std_logic_vector (18 downto 0); - Left_Mem_Data: inout std_logic_vector (35 downto 0); - Left_Mem_Byte_WR_n: out std_logic_vector (3 downto 0); - Left_Mem_CS_n: out std_logic; - Left_Mem_CE_n: out std_logic; - Left_Mem_WE_n: out std_logic; - Left_Mem_OE_n: out std_logic; - Left_Mem_Sleep_EN: out std_logic; - Left_Mem_Load_EN_n: out std_logic; - Left_Mem_Burst_Mode: out std_logic; - - Right_Mem_Addr: out std_logic_vector (18 downto 0); - Right_Mem_Data: inout std_logic_vector (35 downto 0); - Right_Mem_Byte_WR_n: out std_logic_vector (3 downto 0); - Right_Mem_CS_n: out std_logic; - Right_Mem_CE_n: out std_logic; - Right_Mem_WE_n: out std_logic; - Right_Mem_OE_n: out std_logic; - Right_Mem_Sleep_EN: out std_logic; - Right_Mem_Load_EN_n: out std_logic; - Right_Mem_Burst_Mode: out std_logic; - - Left_IO: inout std_logic_vector (12 downto 0); - Right_IO: inout std_logic_vector (12 downto 0)); -end entity WildFpga; --=======================================================-- - -library IEEE; -use IEEE.Std_Logic_1164.all; - -library Work; -use Work.config.all; - -library grlib; -use grlib.amba.all; - -library gaisler; -use gaisler.memctrl.all; -use gaisler.misc.all; -use gaisler.uart.all; -use gaisler.leon3.all; -use gaisler.haps.all; -use gaisler.wild.all; - -library techmap; -use techmap.gencomp.all; - -architecture RTL of WildFpga is - - -- clock generation - signal rst, rstn: Std_ULogic; - - signal kclk, clkk, clkkn, rstkn, rstkraw: Std_ULogic; - signal cgik: clkgen_in_type; - signal cgok: clkgen_out_type; - - signal fclk, clkf1, clkf, rstfn, rstfraw: Std_ULogic; - signal cgif: clkgen_in_type; - signal cgof: clkgen_out_type; - - signal vcc, gnd: Std_ULogic; - - -- gpio - signal gpioi: gpio_in_type; - signal gpioo: gpio_out_type; - - -- uarts - signal u1i, u2i: uart_in_type; - signal u1o, u2o: uart_out_type; - - -- timers - signal gpti: gptimer_in_type; - - -- memory interface - signal memir, memil: memory_in_type; - signal memor, memol: memory_out_type; - - -- LEON3 debug interface - signal dbgi: l3_debug_in_vector(0 to 0); - signal dbgo: l3_debug_out_vector(0 to 0); - - signal dsui: dsu_in_type; - signal dsuo: dsu_out_type; - - -- interrupt controller - signal irqi: irq_in_vector(0 to 0); - signal irqo: irq_out_vector(0 to 0); - - -- local address and data bus - signal ladi: lad_in_type; - signal lado: lad_out_type; - - -- amba apb interface - signal apbi: APB_Slv_In_Type; - signal apbo: APB_Slv_Out_Vector := (others => apb_none); - signal ahbsi: AHB_Slv_In_Type; - signal ahbso: AHB_Slv_Out_Vector := (others => ahbs_none); - signal ahbmi: AHB_Mst_In_Type; - signal ahbmo: AHB_Mst_Out_Vector := (others => ahbm_none); - -begin - - ----------------------------------------------------------------------------- - -- Reset and Clock generation - ----------------------------------------------------------------------------- - vcc <= '1'; - gnd <= '0'; - - -- Reset input - rst_pad : inpad - port map(Reset_Reset, rst); - - rstn <= not rst; - - - -- PCI clock domain, 33 MHz, Clk_K - cgik.pllctrl <= "00"; - cgik.pllrst <= rstkraw; - cgik.pllref <= '0'; - - clkk_pad : clkpad - generic map (tech => padtech) - port map (Clocks_K_Clk, kclk); - - clkgenk : clkgen -- clock generator - generic map (0, 2, 2, 0, 0, 0, 0, 0) - port map (kclk, kclk, clkk, clkkn, open, open, open, cgik, cgok); - - rstgenk : rstgen -- reset generator - port map (rstn, clkkn, cgok.clklock, rstkn, rstkraw); - - -- Main clock domain, X MHz, Clk_F - cgif.pllctrl <= "00"; - cgif.pllrst <= rstfraw; - - clkfk_pad : clkpad - generic map (tech => padtech) - port map (Clocks_F_Clk, fclk); - - pllref_pad : clkpad - generic map (tech => padtech) - port map (Clocks_M_Clk, cgif.pllref); - - clkgenf : clkgen -- clock generator - generic map (clktech, 2, 2, 1, 0, 0, 0, 0, 10000, 0) - port map (fclk, gnd, clkf, open, open, clkf1, open, cgif, cgof); - - rstgenf : rstgen -- reset generator - port map (rstn, clkf, cgof.clklock, rstfn, rstfraw); - - - Clocks_P_Clk_Out_PE_PAD: outpad - generic map (tech => padtech, slew => 1, strength => 24) - port map(Clocks_P_Clk_Out_PE, clkf1); - - Clocks_P_Clk_Out_CB_Ctrl_PAD: outpad - generic map (tech => padtech, slew => 1, strength => 24) - port map(Clocks_P_Clk_Out_CB_Ctrl, clkf1); - - Clocks_M_Clk_Out_PE_PAD: outpad - generic map (tech => padtech, slew => 1, strength => 24) - port map(Clocks_M_Clk_Out_PE, clkf1); - - Clocks_M_Clk_Out_CB_Ctrl_PAD: outpad - generic map (tech => padtech, slew => 1, strength => 24) - port map(Clocks_M_Clk_Out_CB_Ctrl, clkf1); - - Clocks_M_Clk_Out_Right_Mem_PAD: outpad - generic map (tech => padtech, slew => 1, strength => 24) - port map(Clocks_M_Clk_Out_Right_Mem, clkf1); - - Clocks_M_Clk_Out_Left_Mem_PAD: outpad - generic map (tech => padtech, slew => 1, strength => 24) - port map(Clocks_M_Clk_Out_Left_Mem, clkf1); - - ----------------------------------------------------------------------------- - -- AMBA AHB Controller - ----------------------------------------------------------------------------- - ahb0 : ahbctrl -- AHB arbiter/multiplexer - generic map ( - nahbm => 1+CFG_LEON3, - nahbs => 3+CFG_DSU+CFG_AHBRAMEN, - fpnpen => 1) - port map (rstfn, clkf, ahbmi, ahbmo, ahbsi, ahbso); - - ----------------------------------------------------------------------------- - -- LEON3 processor with Debug Support Unit - ----------------------------------------------------------------------------- - leongen : if CFG_LEON3=1 and CFG_NCPU=1 generate - u0 : leon3s - generic map (0, fabtech, memtech, - CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, 0, CFG_MAC, CFG_PCLOW, 0, CFG_NWP, - CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, CFG_ISETSZ, CFG_ILOCK, - CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, CFG_DLOCK, CFG_DSNOOP, - CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, - CFG_DLRAMEN, CFG_DLRAMSZ, CFG_DLRAMADDR, - CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, - CFG_LDDEL, CFG_DISAS, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, 0, CFG_DFIXED) - port map (clkf, rstfn, ahbmi, ahbmo(0), ahbsi, ahbso, - irqi(0), irqo(0), dbgi(0), dbgo(0)); - end generate; - - dsugen : if CFG_DSU=1 generate - dsu0 : dsu3 - generic map (hindex => 1, haddr => 16#900#, hmask => 16#F00#, - ncpu => 1, tbits => 30, tech => memtech, irq => 0, kbytes => CFG_ATBSZ) - port map (rstfn, clkf, ahbmi, ahbsi, ahbso(1), dbgo, dbgi, dsui, dsuo); - - dsui.enable <= '1'; dsui.break <= '0'; - end generate; - - ----------------------------------------------------------------------------- - -- Local Address and Data Bus to AMBA AHB bus DMA interface - ----------------------------------------------------------------------------- - wild2ahb0: wild2ahb - generic map ( - hindex => CFG_LEON3, - burst => 5, - syncrst => 1) - port map(rstkn, clkk, rstfn, clkf, ahbmi, ahbmo(CFG_LEON3), ladi, lado); - - ----------------------------------------------------------------------------- - -- AHB/APB Bridge - ----------------------------------------------------------------------------- - apb0 : apbctrl -- AHB/APB bridge - generic map ( - hindex => 0, - haddr => 16#800#, - hmask => 16#FFF#, - nslaves => 16) - port map (rstfn, clkf, ahbsi, ahbso(0), apbi, apbo); - --- apbo(0) <= apb_none; --- apbo(1) <= apb_none; --- apbo(2) <= apb_none; --- apbo(3) <= apb_none; --- apbo(4) <= apb_none; --- apbo(5) <= apb_none; - apbo(6) <= apb_none; - apbo(7) <= apb_none; - apbo(8) <= apb_none; - apbo(9) <= apb_none; - apbo(10) <= apb_none; - apbo(11) <= apb_none; - apbo(12) <= apb_none; - apbo(13) <= apb_none; - apbo(14) <= apb_none; - apbo(15) <= apb_none; - - ----------------------------------------------------------------------------- - -- Interrupt controller, timer and uart - ----------------------------------------------------------------------------- - irqctrl0 : irqmp -- interrupt controller - generic map (pindex => 0, paddr => 2, ncpu => 1) - port map (rstfn, clkf, apbi, apbo(0), irqo, irqi); - - timer0: gptimer -- timers - generic map (pindex => 1, paddr => 3, pirq => 8, sepirq => 1, - sbits => 8, ntimers => 2, nbits => 32, wdog => 0) - port map (rstfn, clkf, apbi, apbo(1), gpti, open); - gpti.dhalt <= dsuo.tstop; gpti.extclk <= '0'; - - uart1: apbuart -- uart - generic map (pindex => 2, paddr => 1, pirq => 2, console => 0, fifosize => 2) - port map (rstfn, clkf, apbi, apbo(2), u1i, u1o); - u1i.extclk <= '0'; u1i.ctsn <= '0'; u1i.rxd <= u1o.txd; - - ----------------------------------------------------------------------------- - -- General Purpose Input Output with pads - ----------------------------------------------------------------------------- - grgpio0: grgpio - generic map(pindex => 3, paddr => 11, imask => 0, nbits => 27, oepol => 0, syncrst =>0) - port map(rstfn, clkf, apbi, apbo(3), gpioi, gpioo); - - left_io_pads : for i in 12 downto 0 generate - left_io_pad : iopad - generic map (tech => padtech) - port map (Left_IO(i), gpioo.dout(i+13), gpioo.oen(i+13), gpioi.din(i+13)); - end generate; - - right_io_pads : for i in 12 downto 0 generate - right_io_pad : iopad - generic map (tech => padtech) - port map (Right_IO(i), gpioo.dout(i), gpioo.oen(i), gpioi.din(i)); - end generate; - - ----------------------------------------------------------------------------- - -- Audio pad - ----------------------------------------------------------------------------- - audio_io_pad : toutpad - generic map (tech => padtech) - port map (Audio_Audio, gpioo.dout(26), gpioo.oen(26)); - - ----------------------------------------------------------------------------- - -- SSRAM controller - left - ----------------------------------------------------------------------------- - ssraml : sram_1x1 - generic map (hindex => 1+CFG_DSU, pindex => 4, paddr => 4, - romaddr => 16#100#, rommask => 0, - ioaddr => 16#200#, iomask => 0, - ramaddr => 16#400#, rammask => 16#FFF#, - bus16 => netlist, netlist => netlist, tech => 2) - port map (rstfn, clkf, ahbsi, ahbso(1+CFG_DSU), apbi, apbo(4), memil, memol); - - memil.writen <= '1'; memil.wrn <= "1111"; memil.bwidth <= "10"; - memil.brdyn <= '1'; memil.bexcn <= '1'; - - -- ssram pads - addr_l_pad : outpadv - generic map (width => 19, tech => padtech, slew => 1) - port map (Left_Mem_Addr, memol.address(20 downto 2)); - rams_l_pad : outpad - generic map (tech => padtech, slew => 1) - port map (Left_Mem_CS_n, memol.ramsn(0)); - oen_l_pad : outpad - generic map (tech => padtech, slew => 1) - port map (Left_Mem_OE_n, memol.oen); - write_l_pad : outpad - generic map (tech => padtech, slew => 1) - port map (Left_Mem_WE_n, memol.writen); - rwen_l_pad0 : outpad - generic map (tech => padtech, slew => 1) - port map (Left_Mem_Byte_WR_n(0), memol.wrn(3)); - rwen_l_pad1 : outpad - generic map (tech => padtech, slew => 1) - port map (Left_Mem_Byte_WR_n(1), memol.wrn(2)); - rwen_l_pad2 : outpad - generic map (tech => padtech, slew => 1) - port map (Left_Mem_Byte_WR_n(2), memol.wrn(1)); - rwen_l_pad3 : outpad - generic map (tech => padtech, slew => 1) - port map (Left_Mem_Byte_WR_n(3), memol.wrn(0)); - data_l_pads : iopadvv - generic map (tech => padtech, width => 32, slew => 1) - port map (Left_Mem_Data(31 downto 0), memol.data(31 downto 0), - memol.vbdrive(31 downto 0), memil.data(31 downto 0)); - - Left_Mem_Sleep_EN <= '0'; - Left_Mem_Burst_Mode <= '0'; - Left_Mem_Load_EN_n <= '0'; - Left_Mem_CE_n <= '0'; - Left_Mem_Data(35 downto 32) <= (others => 'Z'); - - ----------------------------------------------------------------------------- - -- SSRAM controller - right - ----------------------------------------------------------------------------- - ssramr : sram_1x1 - generic map (hindex => 2+CFG_DSU, pindex => 5, paddr => 5, - romaddr => 16#300#, rommask => 0, - ioaddr => 16#500#, iomask => 0, - ramaddr => 16#600#, rammask => 16#FFF#, - bus16 => netlist, netlist => netlist, tech => 2) - port map (rstfn, clkf, ahbsi, ahbso(2+CFG_DSU), apbi, apbo(5), memir, memor); - - memir.writen <= '1'; memir.wrn <= "1111"; memir.bwidth <= "10"; - memir.brdyn <= '1'; memir.bexcn <= '1'; - - -- ssram pads - addr_r_pad : outpadv - generic map (width => 19, tech => padtech, slew => 1) - port map (Right_Mem_Addr, memor.address(20 downto 2)); - rams_r_pad : outpad - generic map (tech => padtech, slew => 1) - port map (Right_Mem_CS_n, memor.ramsn(0)); - oen_r_pad : outpad - generic map (tech => padtech, slew => 1) - port map (Right_Mem_OE_n, memor.oen); - write_r_pad : outpad - generic map (tech => padtech, slew => 1) - port map (Right_Mem_WE_n, memor.writen); - rwen_r_pad0 : outpad - generic map (tech => padtech, slew => 1) - port map (Right_Mem_Byte_WR_n(0), memor.wrn(3)); - rwen_r_pad1 : outpad - generic map (tech => padtech, slew => 1) - port map (Right_Mem_Byte_WR_n(1), memor.wrn(2)); - rwen_r_pad2 : outpad - generic map (tech => padtech, slew => 1) - port map (Right_Mem_Byte_WR_n(2), memor.wrn(1)); - rwen_r_pad3 : outpad - generic map (tech => padtech, slew => 1) - port map (Right_Mem_Byte_WR_n(3), memor.wrn(0)); - data_r_pads : iopadvv - generic map (tech => padtech, width => 32, slew => 1) - port map (Right_Mem_Data(31 downto 0), memor.data(31 downto 0), - memor.vbdrive(31 downto 0), memir.data(31 downto 0)); - - Right_Mem_Sleep_EN <= '0'; - Right_Mem_Burst_Mode <= '0'; - Right_Mem_Load_EN_n <= '0'; - Right_Mem_CE_n <= '0'; - Right_Mem_Data(35 downto 32) <= (others => 'Z'); - - ----------------------------------------------------------------------------- - -- On-chip memory - ----------------------------------------------------------------------------- - memgen : if CFG_AHBRAMEN=1 generate - mem0: ahbram - generic map (hindex => 3+CFG_DSU, haddr => CFG_AHBRADDR, hmask => 16#FFF#, - tech => memtech, kbytes => CFG_AHBRSZ) - port map (rstfn, clkf, ahbsi, ahbso(3+CFG_DSU)); - end generate; - - ----------------------------------------------------------------------------- - -- Local Address and Data Bus pads - ----------------------------------------------------------------------------- - addr_data_pad : for i in LAD_Bus_Addr_Data'range generate - ad_pad : iopad - generic map( - slew => 1, - strength => 24) - port map( - pad => LAD_Bus_Addr_Data(i), - i => lado.Addr_Data(i), - en => lado.Addr_Data_OE_n(i), - o => ladi.Addr_Data(i)); - end generate; - - ladi.AS_n <= LAD_Bus_AS_n; - ladi.DS_n <= LAD_Bus_DS_n; - ladi.WR_n <= LAD_Bus_WR_n; - ladi.CS_n <= LAD_Bus_CS_n; - ladi.Reg_n <= LAD_Bus_Reg_n; - - LAD_Bus_Ack_n <= lado.Ack_n; - LAD_Bus_Int_Req_n <= lado.Int_Req_n; - LAD_Bus_DMA_0_Data_OK_n <= lado.DMA_0_Data_OK_n; - LAD_Bus_DMA_0_Burst_OK <= lado.DMA_0_Burst_OK; - LAD_Bus_DMA_1_Data_OK_n <= lado.DMA_1_Data_OK_n; - LAD_Bus_DMA_1_Burst_OK <= lado.DMA_1_Burst_OK; - LAD_Bus_Reg_Data_OK_n <= lado.Reg_Data_OK_n; - LAD_Bus_Reg_Burst_OK <= lado.Reg_Burst_OK; - LAD_Bus_Force_K_Clk_n <= lado.Force_K_Clk_n; - LAD_Bus_Reserved <= lado.Reserved; - -end architecture RTL; --======================================================-- diff --git a/designs/leon3-ge-hpe-midi-ep2s180/.config b/designs/leon3-xilinx-kc705/.config similarity index 72% rename from designs/leon3-ge-hpe-midi-ep2s180/.config rename to designs/leon3-xilinx-kc705/.config index 3ed51f9a..f662732b 100644 --- a/designs/leon3-ge-hpe-midi-ep2s180/.config +++ b/designs/leon3-xilinx-kc705/.config @@ -1,14 +1,15 @@ # # Automatically generated make config: don't edit # -CONFIG_MCTRL_RMW=y +CONFIG_LEON3FT_PRESENT=y +CONFIG_HAS_SHARED_GRFPU=y # # Synthesis # # CONFIG_SYN_INFERRED is not set # CONFIG_SYN_STRATIX is not set -CONFIG_SYN_STRATIXII=y +# CONFIG_SYN_STRATIXII is not set # CONFIG_SYN_STRATIXIII is not set # CONFIG_SYN_CYCLONEIII is not set # CONFIG_SYN_ALTERA is not set @@ -41,6 +42,7 @@ CONFIG_SYN_STRATIXII=y # CONFIG_SYN_TM65GPLUS is not set # CONFIG_SYN_TSMC90 is not set # CONFIG_SYN_UMC is not set +CONFIG_SYN_KINTEX7=y # CONFIG_SYN_SPARTAN2 is not set # CONFIG_SYN_SPARTAN3 is not set # CONFIG_SYN_SPARTAN3E is not set @@ -51,6 +53,7 @@ CONFIG_SYN_STRATIXII=y # CONFIG_SYN_VIRTEX4 is not set # CONFIG_SYN_VIRTEX5 is not set # CONFIG_SYN_VIRTEX6 is not set +# CONFIG_SYN_VIRTEX7 is not set # CONFIG_SYN_INFER_RAM is not set # CONFIG_SYN_INFER_PADS is not set # CONFIG_SYN_NO_ASYNC is not set @@ -70,45 +73,56 @@ CONFIG_SYN_STRATIXII=y # CONFIG_CLK_FUSPLL is not set # CONFIG_CLK_LIB18T is not set # CONFIG_CLK_RHUMC is not set +CONFIG_CLK_CLKPLLE2=y # CONFIG_CLK_CLKDLL is not set -CONFIG_CLK_DCM=y +# CONFIG_CLK_DCM is not set CONFIG_CLK_MUL=4 -CONFIG_CLK_DIV=4 -# CONFIG_PCI_CLKDLL is not set -# CONFIG_CLK_NOFB is not set +CONFIG_CLK_DIV=8 # CONFIG_PCI_SYSCLK is not set -CONFIG_LEON3=y -CONFIG_PROC_NUM=1 # # Processor # +CONFIG_LEON3=y +CONFIG_PROC_NUM=1 +# CONFIG_LEON3_MIN is not set +# CONFIG_LEON3_GP is not set +# CONFIG_LEON3_HP is not set +CONFIG_LEON3_CUSTOM=y # # Integer unit # CONFIG_IU_NWINDOWS=8 CONFIG_IU_V8MULDIV=y -# CONFIG_IU_MUL_LATENCY_2 is not set +CONFIG_IU_MUL_LATENCY_2=y # CONFIG_IU_MUL_LATENCY_4 is not set -CONFIG_IU_MUL_LATENCY_5=y -# CONFIG_IU_MUL_MAC is not set +# CONFIG_IU_MUL_LATENCY_5 is not set CONFIG_IU_MUL_INFERRED=y # CONFIG_IU_MUL_MODGEN is not set # CONFIG_IU_MUL_TECHSPEC is not set # CONFIG_IU_MUL_DW is not set -# CONFIG_IU_BP is not set +CONFIG_IU_BP=y CONFIG_IU_SVT=y # CONFIG_NOTAG is not set CONFIG_IU_LDELAY=1 -CONFIG_IU_WATCHPOINTS=2 -# CONFIG_PWD is not set +CONFIG_IU_WATCHPOINTS=4 +CONFIG_PWD=y CONFIG_IU_RSTADDR=00000 # # Floating-point unit # -# CONFIG_FPU_ENABLE is not set +CONFIG_FPU_ENABLE=y +CONFIG_FPU_GRFPU=y +# CONFIG_FPU_GRFPULITE is not set +# CONFIG_FPU_MEIKO is not set +CONFIG_FPU_GRFPU_INFMUL=y +# CONFIG_FPU_GRFPU_DWMUL is not set +# CONFIG_FPU_GRFPU_MODGEN is not set +# CONFIG_FPU_GRFPU_TECHSPEC is not set +# CONFIG_FPU_GRFPU_SH is not set +# CONFIG_FPU_NETLIST is not set # # Cache system @@ -120,15 +134,15 @@ CONFIG_ICACHE_ASSO2=y # CONFIG_ICACHE_ASSO4 is not set # CONFIG_ICACHE_SZ1 is not set # CONFIG_ICACHE_SZ2 is not set -# CONFIG_ICACHE_SZ4 is not set -CONFIG_ICACHE_SZ8=y +CONFIG_ICACHE_SZ4=y +# CONFIG_ICACHE_SZ8 is not set # CONFIG_ICACHE_SZ16 is not set # CONFIG_ICACHE_SZ32 is not set # CONFIG_ICACHE_SZ64 is not set # CONFIG_ICACHE_SZ128 is not set # CONFIG_ICACHE_SZ256 is not set -# CONFIG_ICACHE_LZ16 is not set -CONFIG_ICACHE_LZ32=y +CONFIG_ICACHE_LZ16=y +# CONFIG_ICACHE_LZ32 is not set # CONFIG_ICACHE_ALGORND is not set # CONFIG_ICACHE_ALGODIR is not set # CONFIG_ICACHE_ALGOLRR is not set @@ -157,7 +171,7 @@ CONFIG_DCACHE_ALGOLRU=y # CONFIG_DCACHE_LOCK is not set CONFIG_DCACHE_SNOOP=y # CONFIG_DCACHE_SNOOP_FAST is not set -# CONFIG_DCACHE_SNOOP_SEPTAG is not set +CONFIG_DCACHE_SNOOP_SEPTAG=y CONFIG_CACHE_FIXED=0 # @@ -170,14 +184,16 @@ CONFIG_MMU_REPARRAY=y # CONFIG_MMU_REPINCREMENT is not set # CONFIG_MMU_I2 is not set # CONFIG_MMU_I4 is not set -CONFIG_MMU_I8=y -# CONFIG_MMU_I16 is not set +# CONFIG_MMU_I8 is not set +CONFIG_MMU_I16=y # CONFIG_MMU_I32 is not set +# CONFIG_MMU_I64 is not set # CONFIG_MMU_D2 is not set # CONFIG_MMU_D4 is not set -CONFIG_MMU_D8=y -# CONFIG_MMU_D16 is not set +# CONFIG_MMU_D8 is not set +CONFIG_MMU_D16=y # CONFIG_MMU_D32 is not set +# CONFIG_MMU_D64 is not set CONFIG_MMU_FASTWB=y CONFIG_MMU_PAGE_4K=y # CONFIG_MMU_PAGE_8K is not set @@ -191,16 +207,11 @@ CONFIG_MMU_PAGE_4K=y CONFIG_DSU_ENABLE=y CONFIG_DSU_ITRACE=y # CONFIG_DSU_ITRACESZ1 is not set -CONFIG_DSU_ITRACESZ2=y -# CONFIG_DSU_ITRACESZ4 is not set +# CONFIG_DSU_ITRACESZ2 is not set +CONFIG_DSU_ITRACESZ4=y # CONFIG_DSU_ITRACESZ8 is not set # CONFIG_DSU_ITRACESZ16 is not set -CONFIG_DSU_ATRACE=y -# CONFIG_DSU_ATRACESZ1 is not set -CONFIG_DSU_ATRACESZ2=y -# CONFIG_DSU_ATRACESZ4 is not set -# CONFIG_DSU_ATRACESZ8 is not set -# CONFIG_DSU_ATRACESZ16 is not set +# CONFIG_DSU_ATRACE is not set # # Fault-tolerance @@ -211,7 +222,7 @@ CONFIG_DSU_ATRACESZ2=y # VHDL debug settings # # CONFIG_IU_DISAS is not set -# CONFIG_DEBUG_PC32 is not set +CONFIG_DEBUG_PC32=y # # AMBA configuration @@ -219,7 +230,7 @@ CONFIG_DSU_ATRACESZ2=y CONFIG_AHB_DEFMST=0 CONFIG_AHB_RROBIN=y # CONFIG_AHB_SPLIT is not set -# CONFIG_AHB_FPNPEN is not set +CONFIG_AHB_FPNPEN=y CONFIG_AHB_IOADDR=FFF CONFIG_APB_HADDR=800 # CONFIG_AHB_MON is not set @@ -230,80 +241,53 @@ CONFIG_APB_HADDR=800 # CONFIG_DSU_UART=y CONFIG_DSU_JTAG=y -CONFIG_DSU_ETH=y -# CONFIG_DSU_ETHSZ1 is not set -CONFIG_DSU_ETHSZ2=y -# CONFIG_DSU_ETHSZ4 is not set -# CONFIG_DSU_ETHSZ8 is not set -# CONFIG_DSU_ETHSZ16 is not set -CONFIG_DSU_IPMSB=C0A8 -CONFIG_DSU_IPLSB=0034 -CONFIG_DSU_ETHMSB=020000 -CONFIG_DSU_ETHLSB=00001E -# CONFIG_DSU_ETH_PROG is not set -# CONFIG_DSU_ETH_DIS is not set -# CONFIG_GRUSB_DCL is not set # # Peripherals # # -# Memory controllers +# Memory controller # -# -# 8/32-bit PROM/SRAM controller -# -# CONFIG_SRCTRL is not set - # # Leon2 memory controller # CONFIG_MCTRL_LEON2=y -# CONFIG_MCTRL_8BIT is not set -# CONFIG_MCTRL_16BIT is not set +CONFIG_MCTRL_8BIT=y +CONFIG_MCTRL_16BIT=y # CONFIG_MCTRL_5CS is not set -CONFIG_MCTRL_SDRAM=y -# CONFIG_MCTRL_SDRAM_SEPBUS is not set -CONFIG_MCTRL_PAGE=y -# CONFIG_MCTRL_PROGPAGE is not set +# CONFIG_MCTRL_SDRAM is not set # -# PC133 SDRAM controller +# MIG memory controller # -# CONFIG_SDCTRL is not set +# CONFIG_MIG_DDR2 is not set # -# On-chip RAM/ROM +# MIG Series 7 memory controller # -# CONFIG_AHBROM_ENABLE is not set -# CONFIG_AHBRAM_ENABLE is not set +CONFIG_MIG_SERIES7=y +# CONFIG_AHBSTAT_ENABLE is not set # -# Ethernet -# -CONFIG_GRETH_ENABLE=y -# CONFIG_GRETH_GIGA is not set -# CONFIG_GRETH_FIFO4 is not set -# CONFIG_GRETH_FIFO8 is not set -# CONFIG_GRETH_FIFO16 is not set -CONFIG_GRETH_FIFO32=y -# CONFIG_GRETH_FIFO64 is not set - -# -# CAN -# -# CONFIG_CAN_ENABLE is not set - -# -# SPI +# On-chip RAM/ROM # +# CONFIG_AHBROM_ENABLE is not set +CONFIG_AHBRAM_ENABLE=y +# CONFIG_AHBRAM_SZ1 is not set +# CONFIG_AHBRAM_SZ2 is not set +CONFIG_AHBRAM_SZ4=y +# CONFIG_AHBRAM_SZ8 is not set +# CONFIG_AHBRAM_SZ16 is not set +# CONFIG_AHBRAM_SZ32 is not set +# CONFIG_AHBRAM_SZ64 is not set +CONFIG_AHBRAM_START=A00 # -# SPI controller(s) +# Ethernet # -# CONFIG_SPICTRL_ENABLE is not set +# CONFIG_GRETH_ENABLE is not set # # UARTs, timers and irq control @@ -311,10 +295,10 @@ CONFIG_GRETH_FIFO32=y CONFIG_UART1_ENABLE=y # CONFIG_UA1_FIFO1 is not set # CONFIG_UA1_FIFO2 is not set -CONFIG_UA1_FIFO4=y +# CONFIG_UA1_FIFO4 is not set # CONFIG_UA1_FIFO8 is not set # CONFIG_UA1_FIFO16 is not set -# CONFIG_UA1_FIFO32 is not set +CONFIG_UA1_FIFO32=y CONFIG_IRQ3_ENABLE=y # CONFIG_IRQ3_SEC is not set CONFIG_GPT_ENABLE=y @@ -324,6 +308,10 @@ CONFIG_GPT_TW=32 CONFIG_GPT_IRQ=8 CONFIG_GPT_SEPIRQ=y # CONFIG_GPT_WDOGEN is not set +CONFIG_GRGPIO_ENABLE=y +CONFIG_GRGPIO_WIDTH=8 +CONFIG_GRGPIO_IMASK=0000 +CONFIG_I2C_ENABLE=y # # Keybord and VGA interface @@ -333,13 +321,18 @@ CONFIG_GPT_SEPIRQ=y # CONFIG_SVGA_ENABLE is not set # -# Gleichmann Options +# SPI +# + +# +# SPI memory controller +# +# CONFIG_SPIMCTRL is not set + # -# CONFIG_AHB2HPI_ENABLE is not set -# CONFIG_ADCDAC_ENABLE is not set -# CONFIG_SPI_OC_ENABLE is not set -# CONFIG_MULTIIO_ENABLE is not set -# CONFIG_AC97_OC_ENABLE is not set +# SPI controller(s) +# +# CONFIG_SPICTRL_ENABLE is not set # # VHDL Debugging diff --git a/designs/leon3-xilinx-kc705/Makefile b/designs/leon3-xilinx-kc705/Makefile new file mode 100644 index 00000000..435b5081 --- /dev/null +++ b/designs/leon3-xilinx-kc705/Makefile @@ -0,0 +1,67 @@ +include .config + +GRLIB=../.. +TOP=leon3mp +BOARD=xilinx-kc705-xc7k325t +DESIGN=leon3-xilinx-kc705 + +include $(GRLIB)/boards/$(BOARD)/Makefile.inc + +DEVICE=$(PART)$(PACKAGE)-$(SPEED) +XDC=$(GRLIB)/boards/$(BOARD)/$(BOARD).xdc + +VHDLSYNFILES= \ + config.vhd ahbrom.vhd leon3mp.vhd ./ddr_dummy.vhd +VHDLSIMFILES=testbench.vhd +SIMTOP=testbench +BITGEN=$(GRLIB)/boards/$(BOARD)/default.ut +CLEAN=soft-clean +VCOMOPT=-explicit +ifeq ($(CONFIG_MIG_SERIES7),y) +VLOGOPT= +define+1Gb +define+sg125 +define+x8 +VSIMOPT= -gUSE_MIG_INTERFACE_MODEL=true -gdisas=1 -gDEBUG=0 -i -do preload_ddr3_dimm.do -t ps -novopt +notimingchecks -L secureip_ver -L xilinxcorelib_ver -L unisims_ver glbl $(SIMTOP) +else +VSIMOPT= -gdisas=1 -i -t ps $(SIMTOP) +endif +TECHLIBS = secureip unisim +EXTRA_SOFT = gen_hex_dim + +LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ + tmtc openchip ihp usbhc spw gsi cypress hynix \ + spansion leon4 leon4v0 secureip +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci ambatest can \ + usb grusbhc spacewire ascs slink spi hcan \ + leon4 leon4v0 l2cache pwm gr1553b iommu ac97 secureip +FILESKIP = grcan.vhd ddr2.v mobile_ddr.v + +include $(GRLIB)/bin/Makefile +include $(GRLIB)/software/leon3/Makefile + +################## project specific targets ########################## + +all: help-local + +help-local: help + @echo + @echo " design specific targets:" + @echo " (Only needed to generate and compile MIG Series7)" + @echo + @echo " make compile_xilinx_verilog_lib : compile xilinx library" + @echo " make clean_xilinx_verilog_lib : remove xilinx library" + @echo " make mig_series7 : create xilinx memory controller using coregen." + @echo " make mig_series7_clean : remove generated memory controller" + @echo + @echo " ================================================================" + @echo " Quick start guide for simulation of systest.c" + @echo + @echo " 1. Setup search paths for Xilinx, GCC and Modelsim " + @echo " 2. make vsim" + @echo " 3. make mig_series7" + @echo " 4. make soft" + @echo " 5. make vsim-launch" + @echo + @echo " Please note that this quick start guide will compile and simulate" + @echo " a preconfigured version of the leon3 processor system." + @echo " For customizing the leon3 susbsystem run make 'xconfig'" + @echo " ================================================================" + @echo diff --git a/designs/leon3-xilinx-kc705/README.txt b/designs/leon3-xilinx-kc705/README.txt new file mode 100644 index 00000000..7a040048 --- /dev/null +++ b/designs/leon3-xilinx-kc705/README.txt @@ -0,0 +1,225 @@ +This leon3 design is tailored to the Xilinx kintex-7 KC705 board + +http://www.xilinx.com/kc705 + +Simulation and synthesis +------------------------ + +The design uses the Xilinx MIG memory interface with an AHB-2.0 +interface. The MIG source code cannot be distributed due to the +prohibitive Xilinx license, so the MIG must be re-generated with +coregen before simulation and synthesis can be done. + +To generate the MIG and install the Xilinx unisim simulation +library, do as follows: + + make vsim + make mig_series7 + +To simulate and run systest.c on the Leon design using the memory +controller from Xilinx use the make targets: + + make soft + make vsim-launch + +With the generic USE_MIG_INTERFACE_MODEL can the user select to use the real +XILINX memory contoller + MICRON memory model or a simplified model. For speed +select the simplified model by setting the generic USE_MIG_INTERFACE_MODEL to TRUE. + +Synthesis will ONLY work with Vivado 2012.02 installed or newer, and +the XILINX variable properly set in the shell. To synthesize the design, do + + make vivado + +and then + + make vivado-prog-fpga + + or use xilinx programming tool + + impact -b vivado/leon3-xilinx-kc705/leon3-xilinx-kc705.runs/impl_1/leon3mp.bit + +to program the FPGA. + +The MIG can be disabled either by deselecting the MIG controller in 'xconfig' or +manually editing the config.vhd file. When no MIG is present in the system normal +GRLIB flow can be used and no extra compile steps are needed. Also when when no +MIG is present it is possible to control and set the system frequency via xconfig. +Note that the system frequency can be modified via Xilinx Coregen when the +MIG is present. + +Compiling and launching modelsim when no memory controller is present: + + make vsim + make vsim-launch + +Simulation options +------------------ + +All options are set either by editing the testbench or specify/modify the generic +default value when launching the simulator. For Modelsim use the option "-g" i.e. +to enable processor disassembly to console launch modelsim with the option: "-gdisas=1" + +USE_MIG_INTERFACE_MODEL - Use MIG simulation model for faster simulation run time + +disas - Enable processor disassembly to console + +DEBUG - Enable extra debug information when using Micron DDR3 models + +Design specifics +---------------- + +* Synthesis should be done using Vivado 2012.02 or newer + +* The DDR3 controller is implemented with Xilinx MIG Series7 1.6 and + runs of the 200 MHz clock. The DDR3 memory runs at 400 MHz + (DDR3-800). grmon-2.0.30-74 or later is needed to detect the + DDR3 memory. + +* The AHB clock is generated by the MMCM module in the DDR3 + controller, and can be controlled via Coregen. When the + MIG DDR3 controller isn't present the AHB clock is generated + from CLKGEN, and can be controlled via xconfig + +* System reset is mapped to the EAST button + (This is since the CPU RESET button pin is used for DDR VTP) + +* DSU break is mapped to GPIO east button + +* LED 0 indicates processor in debug mode + +* LED 1 indicates processor in error mode, execution halted + +* LED 2 indicates DDR3 PHY initialization done (Only valid when MIG is present) + +* LED 3 indicates internal PLL has locked (Only valid when MIG isn't present) + +* 16-bit flash prom can be read at address 0. It can be programmed + with GRMON version 2.0.30-74 or later. + +* The system can be simulated with xilinxs memory interface in normal or fast mode. + For normal mode i.e. with the MIG IP and Memory models from MICRON all simulaion libraries + needs to be installed and compiled with the following command: Please, note the MIG Series7 + only have to be generated if it is going to be used in the system. + + make vsim + make mig_series7 + + Then rebuild the scripts and simulation model: + + make distclean vsim + + Modelsim v10.1 or newer is required and simulate Xilinx memory + controller for Series 7. + + The normal leon3 test bench can be executed as the DDR3 model + is pre-loading with the systest. A model of the DDR3 interface + exist and can be used for faster simulations and software debug + +* The application UART1 is connected to the USB/RS232 connector + +* The JTAG DSU interface is enabled and accesible via the JTAG port. + Start grmon with -xilusb to connect. + + +* Output from GRMON is: + + grmon -xilusb + + GRMON2 LEON debug monitor v2.0.30-149-ga91ee12 internal version + + Copyright (C) 2012 Aeroflex Gaisler - All rights reserved. + For latest updates, go to http://www.gaisler.com/ + Comments or bug-reports to support@gaisler.com + + +Parsing -xilusb +Xilusb: Cable type/rev : 0x3 + JTAG chain (1): xc7k325t + +Commands missing help: + debug + + GRLIB build version: 4118 + Detected frequency: 100 MHz + + Component Vendor + LEON3 SPARC V8 Processor Aeroflex Gaisler + AHB Debug UART Aeroflex Gaisler + JTAG Debug Link Aeroflex Gaisler + LEON2 Memory Controller European Space Agency + AHB/APB Bridge Aeroflex Gaisler + LEON3 Debug Support Unit Aeroflex Gaisler + Single-port AHB SRAM module Aeroflex Gaisler + Unknown device Aeroflex Gaisler + Single-port AHB SRAM module Aeroflex Gaisler + Generic UART Aeroflex Gaisler + Multi-processor Interrupt Ctrl. Aeroflex Gaisler + Modular Timer Unit Aeroflex Gaisler + AMBA Wrapper for OC I2C-master Aeroflex Gaisler + General Purpose I/O port Aeroflex Gaisler + + Use command 'info sys' to print a detailed report of attached cores + +grmon2> info sys + cpu0 Aeroflex Gaisler LEON3 SPARC V8 Processor + AHB Master 0 + ahbuart0 Aeroflex Gaisler AHB Debug UART + AHB Master 1 + APB: 80000700 - 80000800 + Baudrate 115200, AHB frequency 100.00 MHz + ahbjtag0 Aeroflex Gaisler JTAG Debug Link + AHB Master 2 + mctrl0 European Space Agency LEON2 Memory Controller + AHB: 00000000 - 20000000 + APB: 80000000 - 80000100 + 16-bit prom @ 0x00000000 + apbmst0 Aeroflex Gaisler AHB/APB Bridge + AHB: 80000000 - 80100000 + dsu0 Aeroflex Gaisler LEON3 Debug Support Unit + AHB: 90000000 - A0000000 + AHB trace: 256 lines, 32-bit bus + CPU0: win 8, hwbp 2, itrace 256, V8 mul/div, srmmu, lddel 1 + stack pointer 0x20000ff0 + icache 4 * 8 kB, 32 B/line dir + dcache 4 * 8 kB, 32 B/line dir + ahbram0 Aeroflex Gaisler Single-port AHB SRAM module + AHB: 20000000 - 20100000 + 32-bit static ram: 4 kB @ 0x20000000 + adev7 Aeroflex Gaisler Unknown device + AHB: 40000000 - 48000000 + APB: 80000400 - 80000500 + ahbram1 Aeroflex Gaisler Single-port AHB SRAM module + AHB: A0000000 - A0100000 + 32-bit static ram: 4 kB @ 0xa0000000 + uart0 Aeroflex Gaisler Generic UART + APB: 80000100 - 80000200 + IRQ: 2 + Baudrate 38343 + irqmp0 Aeroflex Gaisler Multi-processor Interrupt Ctrl. + APB: 80000200 - 80000300 + gptimer0 Aeroflex Gaisler Modular Timer Unit + APB: 80000300 - 80000400 + IRQ: 8 + 8-bit scalar, 2 * 32-bit timers, divisor 100 + i2cmst0 Aeroflex Gaisler AMBA Wrapper for OC I2C-master + APB: 80000800 - 80000900 + IRQ: 11 + gpio0 Aeroflex Gaisler General Purpose I/O port + APB: 80000A00 - 80000B00 + +grmon2> load systest.exe + 40000000 .text 112.2kB / 112.2kB [===============>] 100% + 40020000 .data 163.1kB / 163.1kB [===============>] 100% + Total size: 275.28kB (1.19Mbit/s) + Entry point 0x40000000 + Image /home/ringhage/grlib_git/designs/leon3-xilinx-kc705/systest.exe loaded + +grmon2> verify systest.exe + 40000000 .text 112.2kB / 112.2kB [===============>] 100% + 40020000 .data 163.1kB / 163.1kB [===============>] 100% + Total size: 275.28kB (85.23kbit/s) + Entry point 0x40000000 + Image of /home/ringhage/grlib_git/designs/leon3-xilinx-kc705/systest.exe verified without errors + +grmon2> diff --git a/designs/leon3-xilinx-kc705/ahb2mig.vhd b/designs/leon3-xilinx-kc705/ahb2mig.vhd new file mode 100644 index 00000000..bde8c45b --- /dev/null +++ b/designs/leon3-xilinx-kc705/ahb2mig.vhd @@ -0,0 +1,708 @@ +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Entity: ahb2mig +-- File: ahb2mig.vhd +-- Author: Fredrik Ringhage - Aeroflex Gaisler AB +-- +-- This is a AHB-2.0 interface for the Xilinx Virtex-7 MIG. +-- +------------------------------------------------------------------------------- + +library ieee,work; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library grlib; +use grlib.amba.all; +use grlib.stdlib.all; +use grlib.devices.all; + +entity ahb2mig is + generic( + hindex : integer := 0; + haddr : integer := 0; + hmask : integer := 16#f00#; + pindex : integer := 0; + paddr : integer := 0; + pmask : integer := 16#fff#; + maxwriteburst : integer := 8; + maxreadburst : integer := 8; + SIM_BYPASS_INIT_CAL : string := "OFF"; + SIMULATION : string := "FALSE"; + USE_MIG_INTERFACE_MODEL : boolean := false + ); + port( + ddr3_dq : inout std_logic_vector(63 downto 0); + ddr3_dqs_p : inout std_logic_vector(7 downto 0); + ddr3_dqs_n : inout std_logic_vector(7 downto 0); + ddr3_addr : out std_logic_vector(13 downto 0); + ddr3_ba : out std_logic_vector(2 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_ck_p : out std_logic_vector(0 downto 0); + ddr3_ck_n : out std_logic_vector(0 downto 0); + ddr3_cke : out std_logic_vector(0 downto 0); + ddr3_cs_n : out std_logic_vector(0 downto 0); + ddr3_dm : out std_logic_vector(7 downto 0); + ddr3_odt : out std_logic_vector(0 downto 0); + ahbso : out ahb_slv_out_type; + ahbsi : in ahb_slv_in_type; + apbi : in apb_slv_in_type; + apbo : out apb_slv_out_type; + calib_done : out std_logic; + rst_n_syn : in std_logic; + rst_n_async : in std_logic; + clk_amba : in std_logic; + sys_clk_p : in std_logic; + sys_clk_n : in std_logic; + ui_clk : out std_logic; + ui_clk_sync_rst : out std_logic + ); +end ; + +architecture rtl of ahb2mig is + +type bstate_type is (idle, start, read_cmd, read_data, read_output, write_cmd, write_burst); + +constant hconfig : ahb_config_type := ( + 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_MIGDDR3, 0, 0, 0), + 4 => ahb_membar(haddr, '1', '1', hmask), + others => zero32); + +constant pconfig : apb_config_type := ( + 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_MIGDDR3, 0, 0, 0), + 1 => apb_iobar(paddr, pmask)); + +type reg_type is record + bstate : bstate_type; + cmd : std_logic_vector(2 downto 0); + cmd_en : std_logic; + wr_en : std_logic; + wr_end : std_logic; + cmd_count : unsigned(6 downto 0); + wr_count : unsigned(6 downto 0); + rd_count : unsigned(6 downto 0); + hready : std_logic; + hwrite : std_logic; + hwdata : std_logic_vector(31 downto 0); + hwdata_burst : std_logic_vector(1023 downto 0); + mask_burst : std_logic_vector(127 downto 0); + htrans : std_logic_vector(1 downto 0); + hburst : std_logic_vector(2 downto 0); + hsize : std_logic_vector(2 downto 0); + hrdata : std_logic_vector(31 downto 0); + haddr : std_logic_vector(31 downto 0); + haddr_start : std_logic_vector(31 downto 0); + haddr_burst : std_logic_vector(31 downto 0); + hmaster : std_logic_vector(3 downto 0); + int_buffer : unsigned(1024-1 downto 0); + rd_buffer : unsigned(1024-1 downto 0); + wdf_data_buffer : std_logic_vector(511 downto 0); + wdf_mask_buffer : std_logic_vector(63 downto 0); +end record; + +type mig_in_type is record + cmd_en : std_logic; + app_addr : std_logic_vector(27 downto 0); + app_cmd : std_logic_vector(2 downto 0); + app_en : std_logic; + app_wdf_data : std_logic_vector(511 downto 0); + app_wdf_end : std_logic; + app_wdf_mask : std_logic_vector(63 downto 0); + app_wdf_wren : std_logic; +end record; + +type mig_out_type is record + app_rd_data : std_logic_vector(511 downto 0); + app_rd_data_end : std_logic; + app_rd_data_valid : std_logic; + app_rdy : std_logic; + app_wdf_rdy : std_logic; +end record; + +signal r, rin : reg_type; +signal migin : mig_in_type; +signal migout,migoutraw : mig_out_type; + +component mig is + generic( + SIM_BYPASS_INIT_CAL : string := "OFF"; + SIMULATION : string := "FALSE" + ); + port ( + ddr3_dq : inout std_logic_vector(63 downto 0); + ddr3_addr : out std_logic_vector(13 downto 0); + ddr3_ba : out std_logic_vector(2 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_dqs_n : inout std_logic_vector(7 downto 0); + ddr3_dqs_p : inout std_logic_vector(7 downto 0); + ddr3_ck_p : out std_logic_vector(0 downto 0); + ddr3_ck_n : out std_logic_vector(0 downto 0); + ddr3_cke : out std_logic_vector(0 downto 0); + ddr3_cs_n : out std_logic_vector(0 downto 0); + ddr3_dm : out std_logic_vector(7 downto 0); + ddr3_odt : out std_logic_vector(0 downto 0); + sys_clk_p : in std_logic; + sys_clk_n : in std_logic; + app_addr : in std_logic_vector(27 downto 0); + app_cmd : in std_logic_vector(2 downto 0); + app_en : in std_logic; + app_wdf_data : in std_logic_vector(511 downto 0); + app_wdf_end : in std_logic; + app_wdf_mask : in std_logic_vector(63 downto 0); + app_wdf_wren : in std_logic; + app_rd_data : out std_logic_vector(511 downto 0); + app_rd_data_end : out std_logic; + app_rd_data_valid : out std_logic; + app_rdy : out std_logic; + app_wdf_rdy : out std_logic; + app_sr_req : in std_logic; + app_sr_active : out std_logic; + app_ref_req : in std_logic; + app_ref_ack : out std_logic; + app_zq_req : in std_logic; + app_zq_ack : out std_logic; + ui_clk : out std_logic; + ui_clk_sync_rst : out std_logic; + init_calib_complete : out std_logic; + sys_rst : in std_logic + ); +end component mig; + +component mig_interface_model is + port ( + app_addr : in std_logic_vector(27 downto 0); + app_cmd : in std_logic_vector(2 downto 0); + app_en : in std_logic; + app_wdf_data : in std_logic_vector(511 downto 0); + app_wdf_end : in std_logic; + app_wdf_mask : in std_logic_vector(63 downto 0); + app_wdf_wren : in std_logic; + app_rd_data : out std_logic_vector(511 downto 0); + app_rd_data_end : out std_logic; + app_rd_data_valid : out std_logic; + app_rdy : out std_logic; + app_wdf_rdy : out std_logic; + ui_clk : out std_logic; + ui_clk_sync_rst : out std_logic; + init_calib_complete : out std_logic; + sys_rst : in std_logic + ); +end component mig_interface_model; + + +begin + + comb: process( rst_n_syn, r, ahbsi, migout ) + + -- Design temp variables + variable v : reg_type; + variable wmask : std_logic_vector(3 downto 0); + variable writedata : std_logic_vector(31 downto 0); + variable shift_steps : natural; + variable hrdata_temp : unsigned(v.rd_buffer'length-1 downto 0); + variable hrdata_shift_steps : natural; + variable shift_steps_write : natural; + variable shift_steps_write_mask : natural; + + begin + + -- Make all register visible for the statemachine + v := r; + + case r.bstate is + when idle => + + -- Clear Read data response + v.hrdata := (others => '0'); + + -- Clear old pointers and MIG command signals + v.cmd := (others => '0'); + v.cmd_en := '0'; + v.wr_en := '0'; + v.wr_end := '0'; + v.hready := '1'; + v.hwrite := '0'; + v.hwdata_burst := (others => '0'); + v.mask_burst := (others => '0'); + v.rd_count := (others => '0'); + + -- Check if this is a single or burst transfer (and not a BUSY transfer) + if ((ahbsi.hready and ahbsi.hsel(hindex) and ahbsi.htrans(1)) = '1' + and (ahbsi.hwrite = '0' or ahbsi.hwrite = '1' )) then + + -- Hold info regarding transaction and execute + v.hburst := ahbsi.hburst; + v.hwrite := ahbsi.hwrite; + v.hsize := ahbsi.hsize; + v.hmaster := ahbsi.hmaster; + v.hready := '0'; + v.htrans := ahbsi.htrans; + v.bstate := start; + v.haddr := "0" & "000000" & ahbsi.haddr(27 downto 6) & "000"; + v.haddr_start := ahbsi.haddr; + v.cmd := (others => '0'); + v.cmd(0) := not ahbsi.hwrite; + + end if; + + when start => + -- Check if a write command shall be issued to the DDR3 memory + if r.hwrite = '1' then + + case r.hsize is + when "000" => + case r.haddr_start(1 downto 0) is + when "00" => wmask := "0010"; + when "01" => wmask := "0001"; + when "10" => wmask := "1000"; + when others => wmask := "0100"; + end case; + + when "001" => + case r.haddr_start(1) is + when '0' => wmask := "0011"; + when others => wmask := "1100"; + end case; + when "010" => wmask := "1111"; + when others => wmask := "1111"; + end case; + + -- Work out write offset/start + if ((r.htrans = "11") or ahbsi.htrans = "11") then + shift_steps_write := to_integer(unsigned(v.rd_count - 2)&"00000") + + to_integer(unsigned(r.haddr_start(5 downto 2))&"00000"); + shift_steps_write_mask := to_integer(unsigned(v.rd_count - 2)&"00") + + to_integer(unsigned(r.haddr_start(5 downto 2))&"00") ; + else + shift_steps_write := to_integer(unsigned(v.rd_count)&"00000") + + to_integer(unsigned(r.haddr_start(5 downto 2))&"00000"); + shift_steps_write_mask := to_integer(unsigned(v.rd_count)&"00") + + to_integer(unsigned(r.haddr_start(5 downto 2))&"00") ; + end if; + + if (ahbsi.htrans = "11") then + v.htrans := "11"; + end if; + + -- generate mask for complete burst + v.mask_burst := v.mask_burst or std_logic_vector(shift_left(resize(unsigned(wmask), + v.mask_burst'length),shift_steps_write_mask)); + + -- fetch all wdata before write to memory can begin + writedata := ahbsi.hwdata(15 downto 0) & ahbsi.hwdata(31 downto 16); + v.hwdata_burst := v.hwdata_burst or std_logic_vector(shift_left(resize(unsigned(writedata), + v.hwdata_burst'length ) ,shift_steps_write)); + + -- Check if this is acont burst longer than internal buffer + if (ahbsi.htrans = "11") then + + if ((v.rd_count < maxwriteburst) and (v.rd_count > 0)) then + v.hready := '1'; + else + v.hready := '0'; + end if; + + if (v.rd_count >= maxwriteburst) and (r.hready = '0') then + if (r.htrans = "11") then + v.bstate := write_cmd; + end if; + v.htrans := ahbsi.htrans; + v.haddr_burst := ahbsi.haddr; + end if; + + else + v.bstate := write_cmd; + v.htrans := ahbsi.htrans; + end if; + + -- Else issue a read command when ready + else + if migout.app_rdy = '1' and migout.app_wdf_rdy = '1' then + v.cmd := "001"; + v.bstate := read_cmd; + v.htrans := ahbsi.htrans; + v.cmd_count := to_unsigned(0,v.cmd_count'length); + + -- Always do a read burst + if (ahbsi.htrans /= "11") then + v.rd_count := to_unsigned(0,v.rd_count'length); + else + v.rd_count := to_unsigned(1,v.rd_count'length); + end if; + end if; + end if; + + when write_cmd => + -- Check if burst has ended due to max size burst + if (ahbsi.hsel(hindex) = '0') then + v.htrans := (others => '0'); + end if; + + -- Stop when addr and write command is accepted by mig + if (v.wr_count >= 2) and (v.cmd_count >= 2) then + if (r.htrans /= "11") then + --v.bstate := idle; + if ((ahbsi.hsel(hindex) = '1') and (ahbsi.htrans = "11")) then + -- Hold info regarding transaction and execute + v.hburst := ahbsi.hburst; + v.hwrite := ahbsi.hwrite; + v.hsize := ahbsi.hsize; + v.hmaster := ahbsi.hmaster; + v.hready := '0'; + v.htrans := ahbsi.htrans; + v.bstate := start; + + -- Need to work-out the offset by looking at transfer size + if (ahbsi.hsize = "000") then + v.haddr_start := ahbsi.haddr - 1; + elsif (ahbsi.hsize = "001") then + v.haddr_start := ahbsi.haddr - 2; + else + v.haddr_start := ahbsi.haddr - 4; + end if; + + v.haddr := "0"&"000000" & v.haddr_start(27 downto 6)&"000"; + v.cmd := (others => '0'); + v.cmd(0) := not ahbsi.hwrite; + v.hwdata_burst := (others => '0'); + v.mask_burst := (others => '0'); + v.rd_count := (others => '0'); + v.cmd_count := (others => '0'); + v.wr_count := (others => '0'); + v.rd_count := (others => '0'); + else + v.bstate := idle; + end if; + + else -- Cont burst and work out new offset for next write command + v.bstate := write_burst; + v.haddr := "0" & "000000" & r.haddr_burst(27 downto 6) & "000"; + v.haddr_start := r.haddr_burst; + end if; + end if; + + when write_burst => + v.bstate := start; + v.hready := '1'; + + when read_cmd => + v.hready := '0'; + + v.rd_count := (others => '0'); + + -- stop when read command is accepted ny mig. + if (v.cmd_count >= 2) then + v.bstate := read_data; + end if; + + when read_data => + + -- We are not ready yet so issue a read command to the memory controller + v.hready := '0'; + + -- If read data is valid store data in buffers + if (migout.app_rd_data_valid = '1') then + if (v.rd_count = 0) then + v.int_buffer(511 downto 0) := unsigned(migout.app_rd_data); + v.rd_count := to_unsigned(1,v.rd_count'length); + -- Check if this wasn't a burst command + if (v.htrans /= "11") then + v.rd_count := to_unsigned(2,v.rd_count'length); + v.int_buffer(1023 downto 512) := (others => '0'); + end if; + else + v.int_buffer(1023 downto 512) := unsigned(migout.app_rd_data); + v.rd_count := to_unsigned(2,v.rd_count'length); + end if; + end if; + + if (v.rd_count >= 2) then + shift_steps := to_integer(unsigned(r.haddr_start(5 downto 2))&"00000"); + v.rd_buffer := shift_right(v.int_buffer,shift_steps); + v.bstate := read_output; + v.rd_count := to_unsigned(0,v.rd_count'length); + end if; + + when read_output => + -- Data is fetched from memory and ready to be transfered + v.hready := '1'; + + -- uses the "wr_count" signal to keep track of number of bytes output'd to AHB + -- Select correct 32bit to output + hrdata_shift_steps := to_integer(v.wr_count & "00000"); + hrdata_temp := shift_right(v.rd_buffer,hrdata_shift_steps); + + case r.hsize is + when "000" => + case r.haddr_start(1 downto 0) is + when "11" => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(23 downto 16) + & hrdata_temp(23 downto 16) & hrdata_temp(23 downto 16) & hrdata_temp(23 downto 16)); + when "10" => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(31 downto 24) + & hrdata_temp(31 downto 24) & hrdata_temp(31 downto 24) & hrdata_temp(31 downto 24)); + when "01" => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(7 downto 0) + & hrdata_temp(7 downto 0) & hrdata_temp(7 downto 0) & hrdata_temp(7 downto 0)); + when others => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(15 downto 8) + & hrdata_temp(15 downto 8) & hrdata_temp(15 downto 8) & hrdata_temp(15 downto 8)); + end case; + when "001" => + case r.haddr_start(1) is + when '1' => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(31 downto 16) + & hrdata_temp(31 downto 16)); + when others => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(15 downto 0) + & hrdata_temp(15 downto 0)); + end case; + when "010" => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(15 downto 0) & hrdata_temp(31 downto 16)); + when others => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(15 downto 0) & hrdata_temp(31 downto 16)); + end case; + + -- Count number of bytes send + v.wr_count := v.wr_count + 1; + + -- Check if this was the last transaction + if (v.wr_count >= maxreadburst) then + v.bstate := idle; + v.wr_count := (others => '0'); + end if; + + -- Check if transfer was interrupted or no burst + if (ahbsi.htrans = "00") or ((ahbsi.htrans = "10") and (v.wr_count < 7)) then + v.bstate := idle; + v.wr_count := (others => '0'); + end if; + + when others => + v.bstate := idle; + end case; + + if ((ahbsi.hsel(hindex) = '0') and ((r.bstate = write_cmd) or (r.bstate = write_burst) or (r.bstate = start))) then + v.hready := '0'; + elsif ((ahbsi.htrans /= "11") and (r.bstate = start)) then + v.hready := '0'; + end if; + + if rst_n_syn = '0' then + v.bstate := idle; v.hready := '1'; v.cmd_en := '0'; v.wr_en := '0'; v.wr_end := '0'; + end if; + + rin <= v; + + end process; + + comb_hready: process(r, ahbsi) + begin + if ((ahbsi.hsel(hindex) = '0') and ((r.bstate = write_cmd) or (r.bstate = write_burst) or (r.bstate = start))) then + ahbso.hready <= '0'; + elsif ((ahbsi.htrans /= "11") and (r.bstate = start)) then + ahbso.hready <= '0'; + else + ahbso.hready <= r.hready; + end if; + end process; + + ahbso.hresp <= "00"; --r.hresp; + ahbso.hrdata <= r.hrdata; + + migin.app_addr <= r.haddr(27 downto 2) & "00"; + migin.app_cmd <= r.cmd; + migin.app_en <= r.cmd_en; + + migin.app_wdf_data <= r.wdf_data_buffer; + migin.app_wdf_end <= r.wr_end; + migin.app_wdf_mask <= r.wdf_mask_buffer; + migin.app_wdf_wren <= r.wr_en; + + ahbso.hconfig <= hconfig; + ahbso.hirq <= (others => '0'); + ahbso.hindex <= hindex; + ahbso.hsplit <= (others => '0'); + + apbo.pindex <= pindex; + apbo.pconfig <= pconfig; + apbo.pirq <= (others => '0'); + apbo.prdata <= (others => '0'); + + regs : process(clk_amba) + begin + if rising_edge(clk_amba) then + + -- Copy variables into registers (Default values) + r <= rin; + + -- add extra pipe-stage for read data + migout <= migoutraw; + + -- IDLE Clear + if r.bstate = idle then + r.cmd_count <= (others => '0'); + r.wr_count <= (others => '0'); + r.rd_count <= (others => '0'); + end if; + + -- Read AHB write data + if (r.bstate = start) and (r.hwrite = '1') then + if ((r.htrans = "11") and (r.rd_count = 0)) then + r.rd_count <= (others => '0'); + r.htrans <= "10"; + else + r.rd_count <= r.rd_count + 1; + end if; + end if; + + -- Write command repsonse + if r.bstate = write_cmd then + if (r.cmd_count < 1) then + r.cmd_en <= '1'; + end if; + if (migoutraw.app_rdy = '1') and (r.cmd_en = '1' ) then + r.cmd_count <= r.cmd_count + 1; + if (r.cmd_count = 0 ) then + r.haddr <= r.haddr + 8; + end if; + if (r.cmd_count >= 1) then + r.cmd_en <= '0'; + end if; + end if; + if (r.wr_count < 1 ) then + r.wr_en <= '1'; + r.wr_end <= '1'; + r.wdf_mask_buffer <= not r.mask_burst(63 downto 0); + r.wdf_data_buffer <= r.hwdata_burst(511 downto 0); + end if; + if (migoutraw.app_wdf_rdy = '1') and (r.wr_en = '1' ) then + r.wdf_mask_buffer <= not r.mask_burst(127 downto 64); + r.wdf_data_buffer <= r.hwdata_burst(1023 downto 512); + r.wr_count <= r.wr_count + 1; + if (r.wr_count >= 1 ) then + r.wr_en <= '0'; + r.wr_end <= '0'; + end if; + end if; + end if; + + -- Burst Write Wait + if r.bstate = write_burst then + r.cmd_count <= (others => '0'); + r.wr_count <= (others => '0'); + r.rd_count <= (others => '0'); + -- To make it easier to debug + r.mask_burst <= (others => '0'); + r.hwdata_burst <= (others => '0'); + end if; + + -- Read command repsonse + if r.bstate = read_cmd then + if (r.cmd_count < 1) then + r.cmd_en <= '1'; + end if; + if (migoutraw.app_rdy = '1') and (r.cmd_en = '1' ) then + r.cmd_count <= r.cmd_count + 1; + if (r.cmd_count = 0 ) then + r.haddr <= r.haddr + 8; + if (ahbsi.htrans /= "11") then + r.cmd_en <= '0'; + r.cmd_count <= to_unsigned(2,r.cmd_count'length); + end if; + end if; + if (r.cmd_count >= 1) then + r.cmd_en <= '0'; + end if; + end if; + end if; + end if; + end process; + + gen_mig : if (USE_MIG_INTERFACE_MODEL /= true) generate + MCB_inst : mig + generic map( + SIM_BYPASS_INIT_CAL => SIM_BYPASS_INIT_CAL, + SIMULATION => SIMULATION) + port map ( + ddr3_dq => ddr3_dq, + ddr3_dqs_p => ddr3_dqs_p, + ddr3_dqs_n => ddr3_dqs_n, + ddr3_addr => ddr3_addr, + ddr3_ba => ddr3_ba, + ddr3_ras_n => ddr3_ras_n, + ddr3_cas_n => ddr3_cas_n, + ddr3_we_n => ddr3_we_n, + ddr3_reset_n => ddr3_reset_n, + ddr3_ck_p => ddr3_ck_p, + ddr3_ck_n => ddr3_ck_n, + ddr3_cke => ddr3_cke, + ddr3_cs_n => ddr3_cs_n, + ddr3_dm => ddr3_dm, + ddr3_odt => ddr3_odt, + sys_clk_p => sys_clk_p, + sys_clk_n => sys_clk_n, + app_addr => migin.app_addr, + app_cmd => migin.app_cmd, + app_en => migin.app_en, + app_rdy => migoutraw.app_rdy, + app_wdf_data => migin.app_wdf_data, + app_wdf_end => migin.app_wdf_end, + app_wdf_mask => migin.app_wdf_mask, + app_wdf_wren => migin.app_wdf_wren, + app_wdf_rdy => migoutraw.app_wdf_rdy, + app_rd_data => migoutraw.app_rd_data, + app_rd_data_end => migoutraw.app_rd_data_end, + app_rd_data_valid => migoutraw.app_rd_data_valid, + app_sr_req => '0', + app_sr_active => open, + app_ref_req => '0', + app_ref_ack => open, + app_zq_req => '0', + app_zq_ack => open, + ui_clk => ui_clk, + ui_clk_sync_rst => ui_clk_sync_rst, + init_calib_complete => calib_done, + sys_rst => rst_n_async + ); + end generate gen_mig; + + gen_mig_model : if (USE_MIG_INTERFACE_MODEL = true) generate + MCB_model_inst : mig_interface_model + port map ( + -- user interface signals + app_addr => migin.app_addr, + app_cmd => migin.app_cmd, + app_en => migin.app_en, + app_rdy => migoutraw.app_rdy, + app_wdf_data => migin.app_wdf_data, + app_wdf_end => migin.app_wdf_end, + app_wdf_mask => migin.app_wdf_mask, + app_wdf_wren => migin.app_wdf_wren, + app_wdf_rdy => migoutraw.app_wdf_rdy, + app_rd_data => migoutraw.app_rd_data, + app_rd_data_end => migoutraw.app_rd_data_end, + app_rd_data_valid => migoutraw.app_rd_data_valid, + ui_clk => ui_clk, + ui_clk_sync_rst => ui_clk_sync_rst, + init_calib_complete => calib_done, + sys_rst => rst_n_async + ); + end generate gen_mig_model; + + +end; diff --git a/designs/leon3-xilinx-kc705/ahbrom.vhd b/designs/leon3-xilinx-kc705/ahbrom.vhd new file mode 100644 index 00000000..ac26c7b2 --- /dev/null +++ b/designs/leon3-xilinx-kc705/ahbrom.vhd @@ -0,0 +1,231 @@ + +---------------------------------------------------------------------------- +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2009 Aeroflex Gaisler +---------------------------------------------------------------------------- +-- Entity: ahbrom +-- File: ahbrom.vhd +-- Author: Jiri Gaisler - Gaisler Research +-- Description: AHB rom. 0/1-waitstate read +---------------------------------------------------------------------------- +library ieee; +use ieee.std_logic_1164.all; +library grlib; +use grlib.amba.all; +use grlib.stdlib.all; +use grlib.devices.all; + +entity ahbrom is + generic ( + hindex : integer := 0; + haddr : integer := 0; + hmask : integer := 16#fff#; + pipe : integer := 0; + tech : integer := 0; + kbytes : integer := 1); + port ( + rst : in std_ulogic; + clk : in std_ulogic; + ahbsi : in ahb_slv_in_type; + ahbso : out ahb_slv_out_type + ); +end; + +architecture rtl of ahbrom is +constant abits : integer := 10; +constant bytes : integer := 560; + +constant hconfig : ahb_config_type := ( + 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_AHBROM, 0, 0, 0), + 4 => ahb_membar(haddr, '1', '1', hmask), others => zero32); + +signal romdata : std_logic_vector(31 downto 0); +signal addr : std_logic_vector(abits-1 downto 2); +signal hsel, hready : std_ulogic; + +begin + + ahbso.hresp <= "00"; + ahbso.hsplit <= (others => '0'); + ahbso.hirq <= (others => '0'); + ahbso.hconfig <= hconfig; + ahbso.hindex <= hindex; + + reg : process (clk) + begin + if rising_edge(clk) then + addr <= ahbsi.haddr(abits-1 downto 2); + end if; + end process; + + p0 : if pipe = 0 generate + ahbso.hrdata <= ahbdrivedata(romdata); + ahbso.hready <= '1'; + end generate; + + p1 : if pipe = 1 generate + reg2 : process (clk) + begin + if rising_edge(clk) then + hsel <= ahbsi.hsel(hindex) and ahbsi.htrans(1); + hready <= ahbsi.hready; + ahbso.hready <= (not rst) or (hsel and hready) or + (ahbsi.hsel(hindex) and not ahbsi.htrans(1) and ahbsi.hready); + ahbso.hrdata <= ahbdrivedata(romdata); + end if; + end process; + end generate; + + comb : process (addr) + begin + case conv_integer(addr) is + when 16#00000# => romdata <= X"81D82000"; + when 16#00001# => romdata <= X"03000004"; + when 16#00002# => romdata <= X"821060E0"; + when 16#00003# => romdata <= X"81884000"; + when 16#00004# => romdata <= X"81900000"; + when 16#00005# => romdata <= X"81980000"; + when 16#00006# => romdata <= X"81800000"; + when 16#00007# => romdata <= X"A1800000"; + when 16#00008# => romdata <= X"01000000"; + when 16#00009# => romdata <= X"03002040"; + when 16#0000A# => romdata <= X"8210600F"; + when 16#0000B# => romdata <= X"C2A00040"; + when 16#0000C# => romdata <= X"84100000"; + when 16#0000D# => romdata <= X"01000000"; + when 16#0000E# => romdata <= X"01000000"; + when 16#0000F# => romdata <= X"01000000"; + when 16#00010# => romdata <= X"01000000"; + when 16#00011# => romdata <= X"01000000"; + when 16#00012# => romdata <= X"80108002"; + when 16#00013# => romdata <= X"01000000"; + when 16#00014# => romdata <= X"01000000"; + when 16#00015# => romdata <= X"01000000"; + when 16#00016# => romdata <= X"01000000"; + when 16#00017# => romdata <= X"01000000"; + when 16#00018# => romdata <= X"87444000"; + when 16#00019# => romdata <= X"8608E01F"; + when 16#0001A# => romdata <= X"88100000"; + when 16#0001B# => romdata <= X"8A100000"; + when 16#0001C# => romdata <= X"8C100000"; + when 16#0001D# => romdata <= X"8E100000"; + when 16#0001E# => romdata <= X"A0100000"; + when 16#0001F# => romdata <= X"A2100000"; + when 16#00020# => romdata <= X"A4100000"; + when 16#00021# => romdata <= X"A6100000"; + when 16#00022# => romdata <= X"A8100000"; + when 16#00023# => romdata <= X"AA100000"; + when 16#00024# => romdata <= X"AC100000"; + when 16#00025# => romdata <= X"AE100000"; + when 16#00026# => romdata <= X"90100000"; + when 16#00027# => romdata <= X"92100000"; + when 16#00028# => romdata <= X"94100000"; + when 16#00029# => romdata <= X"96100000"; + when 16#0002A# => romdata <= X"98100000"; + when 16#0002B# => romdata <= X"9A100000"; + when 16#0002C# => romdata <= X"9C100000"; + when 16#0002D# => romdata <= X"9E100000"; + when 16#0002E# => romdata <= X"86A0E001"; + when 16#0002F# => romdata <= X"16BFFFEF"; + when 16#00030# => romdata <= X"81E00000"; + when 16#00031# => romdata <= X"82102002"; + when 16#00032# => romdata <= X"81904000"; + when 16#00033# => romdata <= X"03000004"; + when 16#00034# => romdata <= X"821060E0"; + when 16#00035# => romdata <= X"81884000"; + when 16#00036# => romdata <= X"01000000"; + when 16#00037# => romdata <= X"01000000"; + when 16#00038# => romdata <= X"01000000"; + when 16#00039# => romdata <= X"83480000"; + when 16#0003A# => romdata <= X"8330600C"; + when 16#0003B# => romdata <= X"80886001"; + when 16#0003C# => romdata <= X"02800024"; + when 16#0003D# => romdata <= X"01000000"; + when 16#0003E# => romdata <= X"07000000"; + when 16#0003F# => romdata <= X"8610E178"; + when 16#00040# => romdata <= X"C108C000"; + when 16#00041# => romdata <= X"C118C000"; + when 16#00042# => romdata <= X"C518C000"; + when 16#00043# => romdata <= X"C918C000"; + when 16#00044# => romdata <= X"CD18C000"; + when 16#00045# => romdata <= X"D118C000"; + when 16#00046# => romdata <= X"D518C000"; + when 16#00047# => romdata <= X"D918C000"; + when 16#00048# => romdata <= X"DD18C000"; + when 16#00049# => romdata <= X"E118C000"; + when 16#0004A# => romdata <= X"E518C000"; + when 16#0004B# => romdata <= X"E918C000"; + when 16#0004C# => romdata <= X"ED18C000"; + when 16#0004D# => romdata <= X"F118C000"; + when 16#0004E# => romdata <= X"F518C000"; + when 16#0004F# => romdata <= X"F918C000"; + when 16#00050# => romdata <= X"FD18C000"; + when 16#00051# => romdata <= X"01000000"; + when 16#00052# => romdata <= X"01000000"; + when 16#00053# => romdata <= X"01000000"; + when 16#00054# => romdata <= X"01000000"; + when 16#00055# => romdata <= X"01000000"; + when 16#00056# => romdata <= X"89A00842"; + when 16#00057# => romdata <= X"01000000"; + when 16#00058# => romdata <= X"01000000"; + when 16#00059# => romdata <= X"01000000"; + when 16#0005A# => romdata <= X"01000000"; + when 16#0005B# => romdata <= X"10800005"; + when 16#0005C# => romdata <= X"01000000"; + when 16#0005D# => romdata <= X"01000000"; + when 16#0005E# => romdata <= X"00000000"; + when 16#0005F# => romdata <= X"00000000"; + when 16#00060# => romdata <= X"87444000"; + when 16#00061# => romdata <= X"8730E01C"; + when 16#00062# => romdata <= X"8688E00F"; + when 16#00063# => romdata <= X"12800015"; + when 16#00064# => romdata <= X"03200000"; + when 16#00065# => romdata <= X"05040E00"; + when 16#00066# => romdata <= X"8410A033"; + when 16#00067# => romdata <= X"C4204000"; + when 16#00068# => romdata <= X"0539AE1B"; + when 16#00069# => romdata <= X"8410A260"; + when 16#0006A# => romdata <= X"C4206004"; + when 16#0006B# => romdata <= X"050003FC"; + when 16#0006C# => romdata <= X"C4206008"; + when 16#0006D# => romdata <= X"82103860"; + when 16#0006E# => romdata <= X"C4004000"; + when 16#0006F# => romdata <= X"8530A00C"; + when 16#00070# => romdata <= X"03000004"; + when 16#00071# => romdata <= X"82106009"; + when 16#00072# => romdata <= X"80A04002"; + when 16#00073# => romdata <= X"12800005"; + when 16#00074# => romdata <= X"03200000"; + when 16#00075# => romdata <= X"0539A81B"; + when 16#00076# => romdata <= X"8410A260"; + when 16#00077# => romdata <= X"C4204000"; + when 16#00078# => romdata <= X"05000080"; + when 16#00079# => romdata <= X"82100000"; + when 16#0007A# => romdata <= X"80A0E000"; + when 16#0007B# => romdata <= X"02800005"; + when 16#0007C# => romdata <= X"01000000"; + when 16#0007D# => romdata <= X"82004002"; + when 16#0007E# => romdata <= X"10BFFFFC"; + when 16#0007F# => romdata <= X"8620E001"; + when 16#00080# => romdata <= X"3D1003FF"; + when 16#00081# => romdata <= X"BC17A3E0"; + when 16#00082# => romdata <= X"BC278001"; + when 16#00083# => romdata <= X"9C27A060"; + when 16#00084# => romdata <= X"03100000"; + when 16#00085# => romdata <= X"81C04000"; + when 16#00086# => romdata <= X"01000000"; + when 16#00087# => romdata <= X"01000000"; + when 16#00088# => romdata <= X"00000000"; + when 16#00089# => romdata <= X"00000000"; + when 16#0008A# => romdata <= X"00000000"; + when 16#0008B# => romdata <= X"00000000"; + when 16#0008C# => romdata <= X"00000000"; + when others => romdata <= (others => '-'); + end case; + end process; + -- pragma translate_off + bootmsg : report_version + generic map ("ahbrom" & tost(hindex) & + ": 32-bit AHB ROM Module, " & tost(bytes/4) & " words, " & tost(abits-2) & " address bits" ); + -- pragma translate_on + end; diff --git a/designs/leon3-ge-hpe-midi-ep2s180/config.help b/designs/leon3-xilinx-kc705/config.help similarity index 86% rename from designs/leon3-ge-hpe-midi-ep2s180/config.help rename to designs/leon3-xilinx-kc705/config.help index a39fb533..0b647288 100644 --- a/designs/leon3-ge-hpe-midi-ep2s180/config.help +++ b/designs/leon3-xilinx-kc705/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ @@ -699,55 +732,6 @@ Programmable MAC/IP address CONFIG_DSU_ETH_PROG Say Y to make the LSB 4 bits of the EDCL MAC and IP address configurable using the ethi.edcladdr inputs. -USB DSU enable -CONFIG_GRUSB_DCL - Say Y to enable the USB Debug Communication Link - -CONFIG_GRUSB_DCL_ULPI - Select the interface of the USB transceiver that the USBDCL will be - connected to. -PROM/SRAM memory controller -CONFIG_SRCTRL - Say Y here to enable a simple (and small) PROM/SRAM memory controller. - The controller has a fixed number of waitstates, and is primarily - intended for FPGA implementations. The RAM data bus is always 32 bits, - the PROM can be configured to either 8 or 32 bits (hardwired). - -8-bit memory support -CONFIG_SRCTRL_8BIT - If you say Y here, the simple PROM/SRAM memory controller will - implement 8-bit PROM mode. - -PROM waitstates -CONFIG_SRCTRL_PROMWS - Select the number of waitstates for PROM access. - -RAM waitstates -CONFIG_SRCTRL_RAMWS - Select the number of waitstates for RAM access. - -IO waitstates -CONFIG_SRCTRL_IOWS - Select the number of waitstates for IO access. - -Read-modify-write support -CONFIG_SRCTRL_RMW - Say Y here to perform byte- and half-word writes as a - read-modify-write sequence. This is necessary if your - SRAM does not have individual byte enables. If you are - unsure, it is safe to say Y. - -SRAM bank select -CONFIG_SRCTRL_SRBANKS - Select number of SRAM banks. - -SRAM bank size select -CONFIG_SRCTRL_BANKSZ - Select size of SRAM banks in kBytes. - -PROM address bit select -CONFIG_SRCTRL_ROMASEL - Select address bit for PROM bank decoding. Leon2 memory controller CONFIG_MCTRL_LEON2 Say Y here to enable the LEON2 memory controller. The controller @@ -824,34 +808,16 @@ CONFIG_MCTRL_PROGPAGE will allow to dynamically enable/disable page burst by setting bit 17 in MCFG2. -SDRAM controller enable -CONFIG_SDCTRL - Say Y here to enabled a 32/64-bit PC133 SDRAM controller. - -SDRAM controller inverted clock -CONFIG_SDCTRL_INVCLK - If you say Y here, the SDRAM clock will be inverted in respect to the - system clock and the SDRAM signals. This will limit the SDRAM frequency - to 50/66 MHz, but has the benefit that you will not need a PLL to - generate the SDRAM clock. On FPGA targets, say Y. On ASIC targets, - say N and tell your foundry to balance the SDRAM clock output. - -64-bit data bus -CONFIG_SDCTRL_BUS64 - Say Y here to enable 64-bit data bus. +AHB status register +CONFIG_AHBSTAT_ENABLE + Say Y here to enable the AHB status register (AHBSTAT IP). + The register will latch the AHB address and master index when + an error response is returned by any AHB slave. -Page burst enable -CONFIG_SDCTRL_PAGE - Say Y here to enable SDRAM page burst operation. This will implement - read operations using page bursts rather than 8-word bursts and save - about 500 gates (100 LUTs). Note that not all SDRAM supports page - burst, so use this option with care. - -Programmable page burst enable -CONFIG_SDCTRL_PROGPAGE - Say Y here to enable programmable SDRAM page burst operation. This - will allow to dynamically enable/disable page burst by setting - bit 17 in MCFG2. +SDRAM separate address buses +CONFIG_AHBSTAT_NFTSLV + The AHB status register can also latch the AHB address on an external + input. Select here how many of such inputs are required. On-chip rom CONFIG_AHBROM_ENABLE @@ -917,65 +883,6 @@ CONFIG_GRETH_FIFO4 size of the FIFO depth. -CAN interface enable -CONFIG_CAN_ENABLE - Say Y here to enable the CAN interace from OpenCores. The core has one - AHB slave interface for accessing the control registers. The CAN core - ir register-compatible with the SAJ1000 core from Philips. - -CAN register address -CONFIG_CANIO - The control registers of the CAN core occupy 4 kbyte, and are - mapped in the AHB bus I/O area (0xFFF00000 - 0xFFFFF000). This setting - defines at which address in the I/O area the registers appear (HADDR[19:8]). - -CAN interrupt -CONFIG_CANIRQ - Defines which interrupt number the CAN core will generate. - -CAN loob-back testing -CONFIG_CANLOOP - If you say Y here, the receiver and trasmitter of the CAN core will - be connected together in a loop-back fashion. This will make it - possible to perform loop-back test, but not data will be sent - or received from the outside. ONLY for testing! - -CAN Synchronous reset -CONFIG_CAN_SYNCRST - If you say Y here, the CAN core will be implemented with - synchronous reset rather than asynchronous. This is needed - when the target library does not implement registers with - async reset. Unless you know what you are doing, say N. - -CAN FT memories -CONFIG_CAN_FT - If you say Y here, the CAN FIFOs will be implemented using - SEU protected RAM blocks. Only applicable to the FT version - of grlib. -Gaisler Research SPI controller -CONFIG_SPICTRL_ENABLE - Say Y here to enable the SPI controller(s) - -CONFIG_SPICTRL_NUM - Number of SPI controllers to implement in design. Note that most - template designs are limited to one SPI controller. - Configuration options made here in xconfig will apply to all - implemented SPI controllers. - -CONFIG_SPICTRL_MAXWLEN - 0: Core will support lengths up to 32 bits - 1-2: Illegal values - 3-15: Maximum word length will be value+1 (4-16) - -CONFIG_SPICTRL_SYNCRAM - Say Y here to use SYNCRAM_2P components for the core's receive - and transmit queues. This is the recommended setting, particularly - if the core is implemented with support for automatic mode. - -CONFIG_SPICTRL_FT - Fault-tolerance for internal buffers. Only applicable if core - buffers are implemented with SYNCRAM components. - UART1 enable CONFIG_UART1_ENABLE Say Y here to enable UART1, or the console UART. This is needed to @@ -1053,6 +960,25 @@ Watchdog time-out value CONFIG_GPT_WDOG This value will be loaded in the watchdog timer at reset. +GPIO port +CONFIG_GRGPIO_ENABLE + Say Y here to enable a general purpose I/O port. The port can be + configured from 1 - 32 bits, whith each port signal individually + programmable as input or output. The port signals can also serve + as interrupt inputs. + +GPIO port witdth +CONFIG_GRGPIO_WIDTH + Number of bits in the I/O port. Must be in the range of 1 - 32. + +GPIO interrupt mask +CONFIG_GRGPIO_IMASK + The I/O port interrupt mask defines which bits in the I/O port + should be able to create an interrupt. + +OpenCores I2C Master +CONFIG_I2C_ENABLE + Say Y here to enable the OpenCores I2C master. Text-mode VGA CONFIG_VGA_ENABLE Say Y here to enable a simple text-mode VGA controller. The controller @@ -1069,21 +995,74 @@ PS2 KBD interface CONFIG_KBD_ENABLE Say Y here to enable a PS/2 keyboard or mouse interface. -MultiIO Design -CONFIG_AHB2HPI_ENABLE - Say Y here to enable a simple bidirectional AHB2HPI bridge. -ADCDAC -CONFIG_ADCDAC_ENABLE - Say Y here to enable the Analog-to-Digital- and Digital-to-Analog-Converter. -OpenCores SPI Controller -CONFIG_SPI_OC_ENABLE - Say Y here to enable the SPI Controller from OpenCores. This requires Mixed Language Support (VHDL/Verilog). -MultiIO Design -CONFIG_MULTIIO_ENABLE - Say Y here to enable a simple MultiIO Design (LEDS, DIPSWITCHES, etc.). -OpenCores AC97 Controller -CONFIG_AC97_OC_ENABLE - Say Y here to enable the AC97 Controller from OpenCores. This requires Mixed Language Support (VHDL/Verilog). +SPI memory controller +CONFIG_SPIMCTRL + Say Y here to enable a simple SPI memory controller. + The controller maps a SPI memory device into AMBA address space and + also has a simple interface that allows sending commands directly + to the SPI device. + +SD card support +CONFIG_SPIMCTRL_SDCARD + Memory device connected to controller is SD card. + +Read command +CONFIG_SPIMCTRL_READCMD + Read instruction for SPI memory device (hex). + +Dummy byte +CONFIG_SPIMCTRL_DUMMYBYTE + Output dummy byte after address when issuing read instruction. + +Dual output +CONFIG_SPIMCTRL_DUALOUTPUT + Memory device supports dual output when reading data. + +Address offset +CONFIG_SPIMCTRL_OFFSET + Offset that will be added by core on SPI memory address (hex). + +Clock scaler +CONFIG_SPIMCTRL_SCALER + Selects the divisor used when dividing the system clock to produce + the memory device clock. The divisor used is two to the power of the + specified value. This value must be at least 1. + +Alternate clock scaler +CONFIG_SPIMCTRL_ASCALER + Selects the divisor used when dividing the system clock to produce + the alternate memory device clock. If the selected memory device is + a SD Card this clock will be used during card initialization. The + divisor used is two to the power of the specified value. This + value must be at least 1. + +Power-up cnt +CONFIG_SPIMCTRL_PWRUPCNT + Number of system clock cycles to wait before issuing first command. +Gaisler Research SPI controller +CONFIG_SPICTRL_ENABLE + Say Y here to enable the SPI controller(s) + +CONFIG_SPICTRL_NUM + Number of SPI controllers to implement in design. Note that most + template designs are limited to one SPI controller. + Configuration options made here in xconfig will apply to all + implemented SPI controllers. + +CONFIG_SPICTRL_MAXWLEN + 0: Core will support lengths up to 32 bits + 1-2: Illegal values + 3-15: Maximum word length will be value+1 (4-16) + +CONFIG_SPICTRL_SYNCRAM + Say Y here to use SYNCRAM_2P components for the core's receive + and transmit queues. This is the recommended setting, particularly + if the core is implemented with support for automatic mode. + +CONFIG_SPICTRL_FT + Fault-tolerance for internal buffers. Only applicable if core + buffers are implemented with SYNCRAM components. + UART debugging CONFIG_DEBUG_UART During simulation, the output from the UARTs is printed on the diff --git a/designs/leon3-ge-hpe-mini/config.in b/designs/leon3-xilinx-kc705/config.in similarity index 76% rename from designs/leon3-ge-hpe-mini/config.in rename to designs/leon3-xilinx-kc705/config.in index 9f9d0611..4c40dec3 100644 --- a/designs/leon3-ge-hpe-mini/config.in +++ b/designs/leon3-xilinx-kc705/config.in @@ -8,8 +8,10 @@ # #define_bool CONFIG_MCTRL_RMW y +define_bool CONFIG_LEON3FT_PRESENT y +define_bool CONFIG_HAS_SHARED_GRFPU y -mainmenu_name "LEON3MINI Design Configuration" +mainmenu_name "LEON3MP Xilinx KC705 Design Configuration" mainmenu_option next_comment comment 'Synthesis ' @@ -35,9 +37,11 @@ mainmenu_option next_comment comment 'Peripherals ' mainmenu_option next_comment - comment 'Memory controllers ' - source lib/gaisler/memctrl/srctrl.in + comment 'Memory controller ' source lib/esa/memoryctrl/mctrl.in + source lib/gaisler/ddr/mig.in + source lib/gaisler/ddr/mig_series7.in + source lib/gaisler/misc/ahbstat.in endmenu mainmenu_option next_comment @@ -51,33 +55,26 @@ comment 'Peripherals ' source lib/gaisler/greth/greth.in endmenu -# mainmenu_option next_comment -# comment 'CAN ' -# source lib/gaisler/misc/can_oc.in -# endmenu - mainmenu_option next_comment comment 'UARTs, timers and irq control ' source lib/gaisler/uart/uart1.in source lib/gaisler/leon3/irqmp.in source lib/gaisler/misc/gptimer.in + source lib/gaisler/misc/grgpio.in + source lib/gaisler/i2c/i2c.in endmenu - mainmenu_option next_comment - comment 'ATA Controller' - source lib/gaisler/ata/ata.in - endmenu - mainmenu_option next_comment comment 'Keybord and VGA interface' source lib/gaisler/misc/ps2vga.in endmenu -endmenu -mainmenu_option next_comment -comment 'Gleichmann Options ' - source lib/gleichmann/ahb2hpi/ahb2hpi.in - source lib/gleichmann/dac/dac_ahb.in + mainmenu_option next_comment + comment 'SPI' + source lib/gaisler/spi/spimctrl.in + source lib/gaisler/spi/spictrl.in + endmenu + endmenu mainmenu_option next_comment diff --git a/designs/leon3-ge-hpe-midi-ep2s180/config.vhd b/designs/leon3-xilinx-kc705/config.vhd similarity index 55% rename from designs/leon3-ge-hpe-midi-ep2s180/config.vhd rename to designs/leon3-xilinx-kc705/config.vhd index 39564dea..43bab06b 100644 --- a/designs/leon3-ge-hpe-midi-ep2s180/config.vhd +++ b/designs/leon3-xilinx-kc705/config.vhd @@ -1,9 +1,6 @@ - - - ----------------------------------------------------------------------------- -- LEON3 Demonstration design test bench configuration -- Copyright (C) 2009 Aeroflex Gaisler @@ -12,53 +9,18 @@ library techmap; use techmap.gencomp.all; -library gleichmann; -use gleichmann.miscellaneous.all; package config is - - ----------------------------------------------------------------------------- - -- GLEICHMANN SPECIFIC OPTIONS - ----------------------------------------------------------------------------- - - -- HPE board version - -- for valid options see package miscellaneous - constant CFG_HPEVER : integer := midi; - - -- provide ahb signals for an external slave - -- slave number can be defined below - -- numbers 8 to 15 can be used safely, numbers below - -- might be used by other LEON cores depending on configuration - constant CFG_EXTAHB : integer := 0; - - constant CFG_EXTAHB_ADDR : integer := 16#0#; - - -- interrupt number the external slave is assigned to - -- unused at the moment - constant CFG_EXTAHB_IRQ : integer := 0; - - -- AHB slave number the external slave is assigned to - constant CFG_EXTAHB_NR : integer := 8; - - -- index number the external slave is assigned to - constant CFG_EXTAHB_ID : integer := 8; - - -- lsb sdram address to bit - constant CFG_SDSHIFT : integer := 0; - - ----------------------------------------------------------------------------- - -- END GLEICHMANN SPECIFIC OPTIONS - ----------------------------------------------------------------------------- -- Technology and synthesis options - constant CFG_FABTECH : integer := stratix2; - constant CFG_MEMTECH : integer := stratix2; - constant CFG_PADTECH : integer := stratix2; + constant CFG_FABTECH : integer := kintex7; + constant CFG_MEMTECH : integer := kintex7; + constant CFG_PADTECH : integer := kintex7; constant CFG_NOASYNC : integer := 0; constant CFG_SCAN : integer := 0; -- Clock generator - constant CFG_CLKTECH : integer := stratix2; + constant CFG_CLKTECH : integer := kintex7; constant CFG_CLKMUL : integer := (4); - constant CFG_CLKDIV : integer := (4); + constant CFG_CLKDIV : integer := (8); constant CFG_OCLKDIV : integer := 1; constant CFG_OCLKBDIV : integer := 0; constant CFG_OCLKCDIV : integer := 0; @@ -69,21 +31,21 @@ package config is constant CFG_LEON3 : integer := 1; constant CFG_NCPU : integer := (1); constant CFG_NWIN : integer := (8); - constant CFG_V8 : integer := 2 + 4*0; + constant CFG_V8 : integer := 16#32# + 4*0; constant CFG_MAC : integer := 0; - constant CFG_BP : integer := 0; + constant CFG_BP : integer := 1; constant CFG_SVT : integer := 1; constant CFG_RSTADDR : integer := 16#00000#; constant CFG_LDDEL : integer := (1); constant CFG_NOTAG : integer := 0; - constant CFG_NWP : integer := (2); - constant CFG_PWD : integer := 0*2; - constant CFG_FPU : integer := 0 + 16*0 + 32*0; + constant CFG_NWP : integer := (4); + constant CFG_PWD : integer := 1*2; + constant CFG_FPU : integer := (1+0) + 16*0 + 32*0; constant CFG_GRFPUSH : integer := 0; constant CFG_ICEN : integer := 1; constant CFG_ISETS : integer := 2; - constant CFG_ISETSZ : integer := 8; - constant CFG_ILINE : integer := 8; + constant CFG_ISETSZ : integer := 4; + constant CFG_ILINE : integer := 4; constant CFG_IREPL : integer := 0; constant CFG_ILOCK : integer := 0; constant CFG_ILRAMEN : integer := 0; @@ -95,20 +57,20 @@ package config is constant CFG_DLINE : integer := 4; constant CFG_DREPL : integer := 0; constant CFG_DLOCK : integer := 0; - constant CFG_DSNOOP : integer := 1 + 0 + 4*0; + constant CFG_DSNOOP : integer := 1 + 0 + 4*1; constant CFG_DFIXED : integer := 16#0#; constant CFG_DLRAMEN : integer := 0; constant CFG_DLRAMADDR: integer := 16#8F#; constant CFG_DLRAMSZ : integer := 1; constant CFG_MMUEN : integer := 1; - constant CFG_ITLBNUM : integer := 8; - constant CFG_DTLBNUM : integer := 8; + constant CFG_ITLBNUM : integer := 16; + constant CFG_DTLBNUM : integer := 16; constant CFG_TLB_TYPE : integer := 0 + 1*2; constant CFG_TLB_REP : integer := 0; constant CFG_MMU_PAGE : integer := 0; constant CFG_DSU : integer := 1; - constant CFG_ITBSZ : integer := 2; - constant CFG_ATBSZ : integer := 2; + constant CFG_ITBSZ : integer := 4; + constant CFG_ATBSZ : integer := 0; constant CFG_LEON3FT_EN : integer := 0; constant CFG_IUFT_EN : integer := 0; constant CFG_FPUFT_EN : integer := 0; @@ -117,12 +79,12 @@ package config is constant CFG_CACHE_ERRINJ : integer := 0; constant CFG_LEON3_NETLIST: integer := 0; constant CFG_DISAS : integer := 0 + 0; - constant CFG_PCLOW : integer := 2; + constant CFG_PCLOW : integer := 0; -- AMBA settings constant CFG_DEFMST : integer := (0); constant CFG_RROBIN : integer := 1; constant CFG_SPLIT : integer := 0; - constant CFG_FPNPEN : integer := 0; + constant CFG_FPNPEN : integer := 1; constant CFG_AHBIO : integer := 16#FFF#; constant CFG_APBADDR : integer := 16#800#; constant CFG_AHB_MON : integer := 0; @@ -134,41 +96,34 @@ package config is -- JTAG based DSU interface constant CFG_AHB_JTAG : integer := 1; -- Ethernet DSU - constant CFG_DSU_ETH : integer := 1 + 0 + 0; - constant CFG_ETH_BUF : integer := 2; + constant CFG_DSU_ETH : integer := 0 + 0 + 0; + constant CFG_ETH_BUF : integer := 1; constant CFG_ETH_IPM : integer := 16#C0A8#; - constant CFG_ETH_IPL : integer := 16#0034#; + constant CFG_ETH_IPL : integer := 16#0033#; constant CFG_ETH_ENM : integer := 16#020000#; - constant CFG_ETH_ENL : integer := 16#00001E#; --- USB DSU - constant CFG_GRUSB_DCL : integer := 0; - constant CFG_GRUSB_DCL_UIFACE : integer := 1; - constant CFG_GRUSB_DCL_DW : integer := 8; --- PROM/SRAM controller - constant CFG_SRCTRL : integer := 0; - constant CFG_SRCTRL_PROMWS : integer := 0; - constant CFG_SRCTRL_RAMWS : integer := 0; - constant CFG_SRCTRL_IOWS : integer := 0; - constant CFG_SRCTRL_RMW : integer := 0; - constant CFG_SRCTRL_8BIT : integer := 0; - constant CFG_SRCTRL_SRBANKS : integer := 1; - constant CFG_SRCTRL_BANKSZ : integer := 0; - constant CFG_SRCTRL_ROMASEL : integer := 0; + constant CFG_ETH_ENL : integer := 16#000009#; -- LEON2 memory controller constant CFG_MCTRL_LEON2 : integer := 1; - constant CFG_MCTRL_RAM8BIT : integer := 0; - constant CFG_MCTRL_RAM16BIT : integer := 0; + constant CFG_MCTRL_RAM8BIT : integer := 1; + constant CFG_MCTRL_RAM16BIT : integer := 1; constant CFG_MCTRL_5CS : integer := 0; - constant CFG_MCTRL_SDEN : integer := 1; + constant CFG_MCTRL_SDEN : integer := 0; constant CFG_MCTRL_SEPBUS : integer := 0; constant CFG_MCTRL_INVCLK : integer := 0; constant CFG_MCTRL_SD64 : integer := 0; - constant CFG_MCTRL_PAGE : integer := 1 + 0; --- SDRAM controller - constant CFG_SDCTRL : integer := 0; - constant CFG_SDCTRL_INVCLK : integer := 0; - constant CFG_SDCTRL_SD64 : integer := 0; - constant CFG_SDCTRL_PAGE : integer := 0 + 0; + constant CFG_MCTRL_PAGE : integer := 0 + 0; +-- Xilinx MIG + constant CFG_MIG_DDR2 : integer := 0; + constant CFG_MIG_RANKS : integer := 1; + constant CFG_MIG_COLBITS : integer := 10; + constant CFG_MIG_ROWBITS : integer := 13; + constant CFG_MIG_BANKBITS: integer := 2; + constant CFG_MIG_HMASK : integer := 16#F00#; +-- Xilinx MIG Series 7 + constant CFG_MIG_SERIES7 : integer := 1; +-- AHB status register + constant CFG_AHBSTAT : integer := 0; + constant CFG_AHBSTATN : integer := 1; -- AHB ROM constant CFG_AHBROMEN : integer := 0; constant CFG_AHBROPIP : integer := 0; @@ -176,39 +131,23 @@ package config is constant CFG_ROMADDR : integer := 16#000#; constant CFG_ROMMASK : integer := 16#E00# + 16#000#; -- AHB RAM - constant CFG_AHBRAMEN : integer := 0; - constant CFG_AHBRSZ : integer := 1; + constant CFG_AHBRAMEN : integer := 1; + constant CFG_AHBRSZ : integer := 4; constant CFG_AHBRADDR : integer := 16#A00#; + -- Gaisler Ethernet core - constant CFG_GRETH : integer := 1; + constant CFG_GRETH : integer := 0; constant CFG_GRETH1G : integer := 0; - constant CFG_ETH_FIFO : integer := 32; --- CAN 2.0 interface - constant CFG_CAN : integer := 0; - constant CFG_CANIO : integer := 16#0#; - constant CFG_CANIRQ : integer := 0; - constant CFG_CANLOOP : integer := 0; - constant CFG_CAN_SYNCRST : integer := 0; - constant CFG_CANFT : integer := 0; --- SPI controller - constant CFG_SPICTRL_ENABLE : integer := 0; - constant CFG_SPICTRL_NUM : integer := 1; - constant CFG_SPICTRL_SLVS : integer := 1; - constant CFG_SPICTRL_FIFO : integer := 1; - constant CFG_SPICTRL_SLVREG : integer := 0; - constant CFG_SPICTRL_ODMODE : integer := 0; - constant CFG_SPICTRL_AM : integer := 0; - constant CFG_SPICTRL_ASEL : integer := 0; - constant CFG_SPICTRL_TWEN : integer := 0; - constant CFG_SPICTRL_MAXWLEN : integer := 0; - constant CFG_SPICTRL_SYNCRAM : integer := 0; - constant CFG_SPICTRL_FT : integer := 0; + constant CFG_ETH_FIFO : integer := 8; + -- UART 1 constant CFG_UART1_ENABLE : integer := 1; - constant CFG_UART1_FIFO : integer := 4; + constant CFG_UART1_FIFO : integer := 32; + -- LEON3 interrupt controller constant CFG_IRQ3_ENABLE : integer := 1; constant CFG_IRQ3_NSEC : integer := 0; + -- Modular timer constant CFG_GPT_ENABLE : integer := 1; constant CFG_GPT_NTIM : integer := (2); @@ -218,20 +157,45 @@ package config is constant CFG_GPT_SEPIRQ : integer := 1; constant CFG_GPT_WDOGEN : integer := 0; constant CFG_GPT_WDOG : integer := 16#0#; + +-- GPIO port + constant CFG_GRGPIO_ENABLE : integer := 1; + constant CFG_GRGPIO_IMASK : integer := 16#0000#; + constant CFG_GRGPIO_WIDTH : integer := (8); + +-- I2C master + constant CFG_I2C_ENABLE : integer := 1; + -- VGA and PS2/ interface constant CFG_KBD_ENABLE : integer := 0; constant CFG_VGA_ENABLE : integer := 0; constant CFG_SVGA_ENABLE : integer := 0; --- AHB2HPI enable - constant CFG_AHB2HPI : integer := 0; --- ADCDAC enable - constant CFG_ADCDAC : integer := 0; --- SPI_OC enable - constant CFG_SPI_OC : integer := 0; --- MultiIO enable - constant CFG_MULTIIO : integer := 0; --- AC97_OC enable - constant CFG_AC97_OC : integer := 0; + +-- SPI memory controller + constant CFG_SPIMCTRL : integer := 0; + constant CFG_SPIMCTRL_SDCARD : integer := 0; + constant CFG_SPIMCTRL_READCMD : integer := 16#0#; + constant CFG_SPIMCTRL_DUMMYBYTE : integer := 0; + constant CFG_SPIMCTRL_DUALOUTPUT : integer := 0; + constant CFG_SPIMCTRL_SCALER : integer := 1; + constant CFG_SPIMCTRL_ASCALER : integer := 1; + constant CFG_SPIMCTRL_PWRUPCNT : integer := 0; + constant CFG_SPIMCTRL_OFFSET : integer := 16#0#; + +-- SPI controller + constant CFG_SPICTRL_ENABLE : integer := 0; + constant CFG_SPICTRL_NUM : integer := 1; + constant CFG_SPICTRL_SLVS : integer := 1; + constant CFG_SPICTRL_FIFO : integer := 1; + constant CFG_SPICTRL_SLVREG : integer := 0; + constant CFG_SPICTRL_ODMODE : integer := 0; + constant CFG_SPICTRL_AM : integer := 0; + constant CFG_SPICTRL_ASEL : integer := 0; + constant CFG_SPICTRL_TWEN : integer := 0; + constant CFG_SPICTRL_MAXWLEN : integer := 0; + constant CFG_SPICTRL_SYNCRAM : integer := 0; + constant CFG_SPICTRL_FT : integer := 0; + -- GRLIB debugging constant CFG_DUART : integer := 0; end; diff --git a/designs/leon3-ge-hpe-midi-ep2s180/config.vhd.h b/designs/leon3-xilinx-kc705/config.vhd.h similarity index 81% rename from designs/leon3-ge-hpe-midi-ep2s180/config.vhd.h rename to designs/leon3-xilinx-kc705/config.vhd.h index eaab03fa..d3303929 100644 --- a/designs/leon3-ge-hpe-midi-ep2s180/config.vhd.h +++ b/designs/leon3-xilinx-kc705/config.vhd.h @@ -96,22 +96,6 @@ constant CFG_ETH_ENM : integer := 16#CONFIG_DSU_ETHMSB#; constant CFG_ETH_ENL : integer := 16#CONFIG_DSU_ETHLSB#; --- USB DSU - constant CFG_GRUSB_DCL : integer := CONFIG_GRUSB_DCL; - constant CFG_GRUSB_DCL_UIFACE : integer := CONFIG_GRUSB_DCL_UIFACE; - constant CFG_GRUSB_DCL_DW : integer := CONFIG_GRUSB_DCL_DW; - --- PROM/SRAM controller - constant CFG_SRCTRL : integer := CONFIG_SRCTRL; - constant CFG_SRCTRL_PROMWS : integer := CONFIG_SRCTRL_PROMWS; - constant CFG_SRCTRL_RAMWS : integer := CONFIG_SRCTRL_RAMWS; - constant CFG_SRCTRL_IOWS : integer := CONFIG_SRCTRL_IOWS; - constant CFG_SRCTRL_RMW : integer := CONFIG_SRCTRL_RMW; - constant CFG_SRCTRL_8BIT : integer := CONFIG_SRCTRL_8BIT; - - constant CFG_SRCTRL_SRBANKS : integer := CFG_SR_CTRL_SRBANKS; - constant CFG_SRCTRL_BANKSZ : integer := CFG_SR_CTRL_BANKSZ; - constant CFG_SRCTRL_ROMASEL : integer := CONFIG_SRCTRL_ROMASEL; -- LEON2 memory controller constant CFG_MCTRL_LEON2 : integer := CONFIG_MCTRL_LEON2; constant CFG_MCTRL_RAM8BIT : integer := CONFIG_MCTRL_8BIT; @@ -123,11 +107,21 @@ constant CFG_MCTRL_SD64 : integer := CONFIG_MCTRL_SDRAM_BUS64; constant CFG_MCTRL_PAGE : integer := CONFIG_MCTRL_PAGE + CONFIG_MCTRL_PROGPAGE; --- SDRAM controller - constant CFG_SDCTRL : integer := CONFIG_SDCTRL; - constant CFG_SDCTRL_INVCLK : integer := CONFIG_SDCTRL_INVCLK; - constant CFG_SDCTRL_SD64 : integer := CONFIG_SDCTRL_BUS64; - constant CFG_SDCTRL_PAGE : integer := CONFIG_SDCTRL_PAGE + CONFIG_SDCTRL_PROGPAGE; +-- Xilinx MIG + constant CFG_MIG_DDR2 : integer := CONFIG_MIG_DDR2; + constant CFG_MIG_RANKS : integer := CONFIG_MIG_RANKS; + constant CFG_MIG_COLBITS : integer := CONFIG_MIG_COLBITS; + constant CFG_MIG_ROWBITS : integer := CONFIG_MIG_ROWBITS; + constant CFG_MIG_BANKBITS: integer := CONFIG_MIG_BANKBITS; + constant CFG_MIG_HMASK : integer := 16#CONFIG_MIG_HMASK#; + + +-- Xilinx MIG Series 7 + constant CFG_MIG_SERIES7 : integer := CONFIG_MIG_SERIES7; + +-- AHB status register + constant CFG_AHBSTAT : integer := CONFIG_AHBSTAT_ENABLE; + constant CFG_AHBSTATN : integer := CONFIG_AHBSTAT_NFTSLV; -- AHB ROM constant CFG_AHBROMEN : integer := CONFIG_AHBROM_ENABLE; @@ -146,28 +140,6 @@ constant CFG_GRETH1G : integer := CONFIG_GRETH_GIGA; constant CFG_ETH_FIFO : integer := CFG_GRETH_FIFO; --- CAN 2.0 interface - constant CFG_CAN : integer := CONFIG_CAN_ENABLE; - constant CFG_CANIO : integer := 16#CONFIG_CANIO#; - constant CFG_CANIRQ : integer := CONFIG_CANIRQ; - constant CFG_CANLOOP : integer := CONFIG_CANLOOP; - constant CFG_CAN_SYNCRST : integer := CONFIG_CAN_SYNCRST; - constant CFG_CANFT : integer := CONFIG_CAN_FT; - --- SPI controller - constant CFG_SPICTRL_ENABLE : integer := CONFIG_SPICTRL_ENABLE; - constant CFG_SPICTRL_NUM : integer := CONFIG_SPICTRL_NUM; - constant CFG_SPICTRL_SLVS : integer := CONFIG_SPICTRL_SLVS; - constant CFG_SPICTRL_FIFO : integer := CONFIG_SPICTRL_FIFO; - constant CFG_SPICTRL_SLVREG : integer := CONFIG_SPICTRL_SLVREG; - constant CFG_SPICTRL_ODMODE : integer := CONFIG_SPICTRL_ODMODE; - constant CFG_SPICTRL_AM : integer := CONFIG_SPICTRL_AM; - constant CFG_SPICTRL_ASEL : integer := CONFIG_SPICTRL_ASEL; - constant CFG_SPICTRL_TWEN : integer := CONFIG_SPICTRL_TWEN; - constant CFG_SPICTRL_MAXWLEN : integer := CONFIG_SPICTRL_MAXWLEN; - constant CFG_SPICTRL_SYNCRAM : integer := CONFIG_SPICTRL_SYNCRAM; - constant CFG_SPICTRL_FT : integer := CONFIG_SPICTRL_FT; - -- UART 1 constant CFG_UART1_ENABLE : integer := CONFIG_UART1_ENABLE; constant CFG_UART1_FIFO : integer := CFG_UA1_FIFO; @@ -186,25 +158,43 @@ constant CFG_GPT_WDOGEN : integer := CONFIG_GPT_WDOGEN; constant CFG_GPT_WDOG : integer := 16#CONFIG_GPT_WDOG#; +-- GPIO port + constant CFG_GRGPIO_ENABLE : integer := CONFIG_GRGPIO_ENABLE; + constant CFG_GRGPIO_IMASK : integer := 16#CONFIG_GRGPIO_IMASK#; + constant CFG_GRGPIO_WIDTH : integer := CONFIG_GRGPIO_WIDTH; + +-- I2C master + constant CFG_I2C_ENABLE : integer := CONFIG_I2C_ENABLE; + -- VGA and PS2/ interface constant CFG_KBD_ENABLE : integer := CONFIG_KBD_ENABLE; constant CFG_VGA_ENABLE : integer := CONFIG_VGA_ENABLE; constant CFG_SVGA_ENABLE : integer := CONFIG_SVGA_ENABLE; --- AHB2HPI enable - constant CFG_AHB2HPI : integer := CONFIG_AHB2HPI_ENABLE; - --- ADCDAC enable - constant CFG_ADCDAC : integer := CONFIG_ADCDAC_ENABLE; - --- SPI_OC enable - constant CFG_SPI_OC : integer := CONFIG_SPI_OC_ENABLE; - --- MultiIO enable - constant CFG_MULTIIO : integer := CONFIG_MULTIIO_ENABLE; +-- SPI memory controller + constant CFG_SPIMCTRL : integer := CONFIG_SPIMCTRL; + constant CFG_SPIMCTRL_SDCARD : integer := CONFIG_SPIMCTRL_SDCARD; + constant CFG_SPIMCTRL_READCMD : integer := 16#CONFIG_SPIMCTRL_READCMD#; + constant CFG_SPIMCTRL_DUMMYBYTE : integer := CONFIG_SPIMCTRL_DUMMYBYTE; + constant CFG_SPIMCTRL_DUALOUTPUT : integer := CONFIG_SPIMCTRL_DUALOUTPUT; + constant CFG_SPIMCTRL_SCALER : integer := CONFIG_SPIMCTRL_SCALER; + constant CFG_SPIMCTRL_ASCALER : integer := CONFIG_SPIMCTRL_ASCALER; + constant CFG_SPIMCTRL_PWRUPCNT : integer := CONFIG_SPIMCTRL_PWRUPCNT; + constant CFG_SPIMCTRL_OFFSET : integer := 16#CONFIG_SPIMCTRL_OFFSET#; --- AC97_OC enable - constant CFG_AC97_OC : integer := CONFIG_AC97_OC_ENABLE; +-- SPI controller + constant CFG_SPICTRL_ENABLE : integer := CONFIG_SPICTRL_ENABLE; + constant CFG_SPICTRL_NUM : integer := CONFIG_SPICTRL_NUM; + constant CFG_SPICTRL_SLVS : integer := CONFIG_SPICTRL_SLVS; + constant CFG_SPICTRL_FIFO : integer := CONFIG_SPICTRL_FIFO; + constant CFG_SPICTRL_SLVREG : integer := CONFIG_SPICTRL_SLVREG; + constant CFG_SPICTRL_ODMODE : integer := CONFIG_SPICTRL_ODMODE; + constant CFG_SPICTRL_AM : integer := CONFIG_SPICTRL_AM; + constant CFG_SPICTRL_ASEL : integer := CONFIG_SPICTRL_ASEL; + constant CFG_SPICTRL_TWEN : integer := CONFIG_SPICTRL_TWEN; + constant CFG_SPICTRL_MAXWLEN : integer := CONFIG_SPICTRL_MAXWLEN; + constant CFG_SPICTRL_SYNCRAM : integer := CONFIG_SPICTRL_SYNCRAM; + constant CFG_SPICTRL_FT : integer := CONFIG_SPICTRL_FT; -- GRLIB debugging constant CFG_DUART : integer := CONFIG_DEBUG_UART; diff --git a/designs/basic_passthru/config.vhd.in b/designs/leon3-xilinx-kc705/config.vhd.in similarity index 99% rename from designs/basic_passthru/config.vhd.in rename to designs/leon3-xilinx-kc705/config.vhd.in index 17917add..0b22306b 100644 --- a/designs/basic_passthru/config.vhd.in +++ b/designs/leon3-xilinx-kc705/config.vhd.in @@ -1,5 +1,6 @@ #include "config.h" #include "tkconfig.h" + ----------------------------------------------------------------------------- -- LEON3 Demonstration design test bench configuration -- Copyright (C) 2009 Aeroflex Gaisler @@ -13,4 +14,6 @@ package config is #include "config.vhd.h" + + end; diff --git a/designs/leon3-xilinx-kc705/ddr_dummy.vhd b/designs/leon3-xilinx-kc705/ddr_dummy.vhd new file mode 100644 index 00000000..cf6a9d46 --- /dev/null +++ b/designs/leon3-xilinx-kc705/ddr_dummy.vhd @@ -0,0 +1,141 @@ +---------------------------------------------------------------------------- +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2012 Aeroflex Gaisler +---------------------------------------------------------------------------- +-- Package: ddr_dummy +-- File:ddr_dummy.vhd +-- Author:Fredrik Ringhage - Gaisler Research +-- Description: Xilinx MIG wrapper +------------------------------------------------------------------------------ + + +library ieee; +use ieee.std_logic_1164.all; +library techmap; +use techmap.gencomp.all; +-- pragma translate_off +library unisim; +use unisim.IBUF; +-- pragma translate_on + +library work; + +entity ddr_dummy is + generic ( + USE_MIG_INTERFACE_MODEL : boolean := false; + nCS_PER_RANK : integer := 1; -- # of unique CS outputs per rank + BANK_WIDTH : integer := 3; -- # of bank address + CKE_WIDTH : integer := 1; -- # of clock enable outputs + CS_WIDTH : integer := 1; -- # of chip select + DM_WIDTH : integer := 8; -- # of data mask + DQ_WIDTH : integer := 64; -- # of data bits + DQS_WIDTH : integer := 8; -- # of strobe pairs + ODT_WIDTH : integer := 1; -- # of ODT outputs + ROW_WIDTH : integer := 14 -- # of row/column address + ); + port ( + ddr_ck_p : out std_logic_vector(0 downto 0); + ddr_ck_n : out std_logic_vector(0 downto 0); + ddr_addr : out std_logic_vector(ROW_WIDTH-1 downto 0); + ddr_ba : out std_logic_vector(BANK_WIDTH-1 downto 0); + ddr_cas_n : out std_logic; + ddr_cke : out std_logic_vector(CKE_WIDTH-1 downto 0); + ddr_cs_n : out std_logic_vector(CS_WIDTH*nCS_PER_RANK-1 downto 0); + ddr_dm : out std_logic_vector(DM_WIDTH-1 downto 0); + ddr_odt : out std_logic_vector(ODT_WIDTH-1 downto 0); + ddr_ras_n : out std_logic; + ddr_we_n : out std_logic; + ddr_reset_n : out std_logic; + ddr_dq : inout std_logic_vector(DQ_WIDTH-1 downto 0); + ddr_dqs : inout std_logic_vector(DQS_WIDTH-1 downto 0); + ddr_dqs_n : inout std_logic_vector(DQS_WIDTH-1 downto 0) + ); +end; + +architecture rtl of ddr_dummy is + + component OBUF generic (IOSTANDARD : string := "SSTL15"); + port (O : out std_ulogic; I : in std_ulogic); + end component; + + component IOBUF generic (IOSTANDARD : string := "SSTL15_T_DCI"); + port (O : out std_ulogic; IO : inout std_logic; I, T : in std_ulogic); + end component; + + component OBUFDS generic(IOSTANDARD : string := "DIFF_SSTL15"); + port(O : out std_ulogic; OB : out std_ulogic; I : in std_ulogic); +end component; + + component IOBUFDS generic (IOSTANDARD : string := "DIFF_SSTL15"); + port (O : out std_ulogic; IO, IOB : inout std_logic; I, T : in std_ulogic); + end component; + + signal in_dq : std_logic_vector(DQ_WIDTH-1 downto 0); + signal in_dqs : std_logic_vector(DQS_WIDTH-1 downto 0); + +begin + + io_cas : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_cas_n, I => '0'); + + io_ras : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_ras_n, I => '0'); + + io_we : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_we_n, I => '0'); + + io_ck : OBUFDS generic map (IOSTANDARD => "DIFF_SSTL15") + port map (O => ddr_ck_p(0), OB => ddr_ck_n(0), I => '0'); + + io_addr_gen : for i in 0 to ROW_WIDTH-1 generate + begin + io_addr : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_addr(i), I => '0'); + end generate io_addr_gen; + + io_ba_gen : for i in 0 to BANK_WIDTH-1 generate + begin + io_addr : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_ba(i), I => '0'); + end generate io_ba_gen; + + io_cs_gen : for i in 0 to CS_WIDTH*nCS_PER_RANK-1 generate + begin + io_cs : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_cs_n(i), I => '0'); + end generate io_cs_gen; + + io_odt_gen : for i in 0 to ODT_WIDTH-1 generate + begin + io_odt : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_odt(i), I => '0'); + end generate io_odt_gen; + + io_dm_gen : for i in 0 to DM_WIDTH-1 generate + begin + io_dm : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_dm(i), I => '0'); + end generate io_dm_gen; + + io_cke_gen : for i in 0 to CKE_WIDTH-1 generate + begin + io_cke : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_cke(i), I => '0'); + end generate io_cke_gen; + + op_reset : OBUF generic map (IOSTANDARD => "LVCMOS15") + port map (O => ddr_reset_n, I => '1'); + + io_dq_gen : for i in 0 to DQ_WIDTH-1 generate + begin + io_dq : IOBUF generic map (IOSTANDARD => "SSTL15_T_DCI") + port map (O => in_dq(i), IO => ddr_dq(i), I => '0', T => '0'); + end generate io_dq_gen; + + io_dqs_gen : for i in 0 to DQS_WIDTH-1 generate + begin + io_dqs : IOBUFDS generic map (IOSTANDARD => "DIFF_SSTL15_T_DCI") + port map (O => in_dqs(i), IO => ddr_dqs(i), IOB => ddr_dqs_n(i), I => '0', T => '1'); + end generate io_dqs_gen; + +end architecture rtl; \ No newline at end of file diff --git a/designs/leon3-ge-hpe-midi-ep2s180/lconfig.tk b/designs/leon3-xilinx-kc705/lconfig.tk similarity index 69% rename from designs/leon3-ge-hpe-midi-ep2s180/lconfig.tk rename to designs/leon3-xilinx-kc705/lconfig.tk index 7619615f..8d87b9f2 100755 --- a/designs/leon3-ge-hpe-midi-ep2s180/lconfig.tk +++ b/designs/leon3-xilinx-kc705/lconfig.tk @@ -644,7 +644,7 @@ set active_menus [list] set processed_top_level 0 set ARCH sparc set menus_per_column 4 -set total_menus 26 +set total_menus 25 proc toplevel_menu {num} { if {$num == 4} then {return 3} @@ -662,13 +662,13 @@ proc toplevel_menu {num} { if {$num == 19} then {return 13} if {$num == 20} then {return 13} if {$num == 21} then {return 13} - if {$num == 22} then {return 21} - if {$num == 23} then {return 13} - if {$num == 24} then {return 13} + if {$num == 22} then {return 13} + if {$num == 23} then {return 22} + if {$num == 24} then {return 22} return $num } -mainmenu_name "LEON3MIDI Design Configuration" +mainmenu_name "LEON3MP Xilinx KC705 Design Configuration" menu_option menu1 1 "Synthesis " proc menu1 {w title} { set oldFocus [focus] @@ -758,7 +758,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -768,7 +769,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -911,8 +914,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -931,6 +936,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1020,9 +1029,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1076,10 +1086,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1125,14 +1136,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1205,13 +1218,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1251,22 +1272,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1323,21 +1612,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1384,36 +1673,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1421,48 +1711,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1518,29 +1809,30 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 3 - bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST + bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH + global tmpvar_8 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 + menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 3 + bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1579,17 +1871,22 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + global CONFIG_HAS_SHARED_GRFPU + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1597,34 +1894,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global CONFIG_HAS_SHARED_GRFPU + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1681,92 +1983,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1774,18 +2076,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1826,52 +2128,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1879,162 +2182,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2090,45 +2394,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2168,18 +2474,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2187,55 +2494,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2292,24 +2604,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2349,17 +2661,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2367,37 +2680,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2453,16 +2767,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2510,9 +2831,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2534,21 +2853,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2857,14 +3181,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2872,14 +3196,6 @@ proc menu12 {w title} { hex $w.config.f 12 7 "LSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHLSB bool $w.config.f 12 8 "Programmable 4-bit LSB of MAC/IP address" CONFIG_DSU_ETH_PROG bool $w.config.f 12 9 "EDCL disable pin " CONFIG_DSU_ETH_DIS - bool $w.config.f 12 10 "USB Debug Communication Link" CONFIG_GRUSB_DCL - global tmpvar_27 - minimenu $w.config.f 12 11 "USB Transceiver Interface" tmpvar_27 CONFIG_GRUSB_DCL_ULPI - menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"USB Transceiver Interface\"" - $w.config.f.x11.x.menu add radiobutton -label "ULPI" -variable tmpvar_27 -value "ULPI" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "UTMI/UTMI+8-bit" -variable tmpvar_27 -value "UTMI/UTMI+8-bit" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "UTMI/UTMI+16-bit" -variable tmpvar_27 -value "UTMI/UTMI+16-bit" -command "update_active" - menusplit $w $w.config.f.x11.x.menu 3 @@ -2936,8 +3252,6 @@ proc update_menu12 {} { global CONFIG_DSU_ETH_DIS if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { configure_entry .menu12.config.f.x9 normal {n l y}} else {configure_entry .menu12.config.f.x9 disabled {y n l}} - global CONFIG_GRUSB_DCL - if {($CONFIG_GRUSB_DCL == 1)} then {configure_entry .menu12.config.f.x11 normal {x l}} else {configure_entry .menu12.config.f.x11 disabled {x l}} } @@ -2948,17 +3262,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -2974,13 +3288,6 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH_DIS if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { set CONFIG_DSU_ETH_DIS [expr $CONFIG_DSU_ETH_DIS&15]} else {set CONFIG_DSU_ETH_DIS [expr $CONFIG_DSU_ETH_DIS|16]} - global tmpvar_27 - global CONFIG_GRUSB_DCL_ULPI - if {$tmpvar_27 == "ULPI"} then {set CONFIG_GRUSB_DCL_ULPI 1} else {set CONFIG_GRUSB_DCL_ULPI 0} - global CONFIG_GRUSB_DCL_UTMI8 - if {$tmpvar_27 == "UTMI/UTMI+8-bit"} then {set CONFIG_GRUSB_DCL_UTMI8 1} else {set CONFIG_GRUSB_DCL_UTMI8 0} - global CONFIG_GRUSB_DCL_UTMI16 - if {$tmpvar_27 == "UTMI/UTMI+16-bit"} then {set CONFIG_GRUSB_DCL_UTMI16 1} else {set CONFIG_GRUSB_DCL_UTMI16 0} } @@ -3035,13 +3342,12 @@ proc menu13 {w title} { pack $w.config.canvas -side right -fill y - submenu $w.config.f 13 0 "Memory controllers " 14 + submenu $w.config.f 13 0 "Memory controller " 14 submenu $w.config.f 13 1 "On-chip RAM/ROM " 18 submenu $w.config.f 13 2 "Ethernet " 19 - submenu $w.config.f 13 3 "CAN " 20 - submenu $w.config.f 13 4 "SPI " 21 - submenu $w.config.f 13 5 "UARTs, timers and irq control " 23 - submenu $w.config.f 13 6 "Keybord and VGA interface" 24 + submenu $w.config.f 13 3 "UARTs, timers and irq control " 20 + submenu $w.config.f 13 4 "Keybord and VGA interface" 21 + submenu $w.config.f 13 5 "SPI" 22 @@ -3096,9 +3402,9 @@ proc menu14 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 14]] message $w.m -width 400 -aspect 300 -text \ - "Memory controllers " -relief raised + "Memory controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "Memory controllers " + wm title $w "Memory controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 14; break" set nextscript "catch {focus $oldFocus}; menu15 .menu15 \"$title\"" @@ -3138,9 +3444,11 @@ proc menu14 {w title} { pack $w.config.canvas -side right -fill y - submenu $w.config.f 14 0 "8/32-bit PROM/SRAM controller " 15 - submenu $w.config.f 14 1 "Leon2 memory controller " 16 - submenu $w.config.f 14 2 "PC133 SDRAM controller " 17 + submenu $w.config.f 14 0 "Leon2 memory controller " 15 + submenu $w.config.f 14 1 "MIG memory controller " 16 + submenu $w.config.f 14 2 "MIG Series 7 memory controller " 17 + bool $w.config.f 14 3 "Enable AHB Status Register " CONFIG_AHBSTAT_ENABLE + int $w.config.f 14 4 "Number of correctable-error slaves " CONFIG_AHBSTAT_NFTSLV @@ -3178,12 +3486,18 @@ proc menu14 {w title} { } proc update_menu14 {} { + global CONFIG_AHBSTAT_ENABLE + global CONFIG_AHBSTAT_NFTSLV + if {($CONFIG_AHBSTAT_ENABLE == 1)} then {.menu14.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu14.config.f.x4.l configure -state normal; } else {.menu14.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu14.config.f.x4.l configure -state disabled} } proc update_define_menu14 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_AHBSTAT_ENABLE + global CONFIG_AHBSTAT_NFTSLV + if {($CONFIG_AHBSTAT_ENABLE == 1)} then {validate_int CONFIG_AHBSTAT_NFTSLV "$CONFIG_AHBSTAT_NFTSLV" 1} } @@ -3196,9 +3510,9 @@ proc menu15 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 15]] message $w.m -width 400 -aspect 300 -text \ - "8/32-bit PROM/SRAM controller " -relief raised + "Leon2 memory controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "8/32-bit PROM/SRAM controller " + wm title $w "Leon2 memory controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 15; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 15; menu16 .menu16 \"$title\"" @@ -3238,47 +3552,23 @@ proc menu15 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 15 0 "Enable 8/32-bit PROM/SRAM controller " CONFIG_SRCTRL - bool $w.config.f 15 1 "8-bit PROM interface " CONFIG_SRCTRL_8BIT - int $w.config.f 15 2 "PROM waitstates" CONFIG_SRCTRL_PROMWS - int $w.config.f 15 3 "RAM waitstates" CONFIG_SRCTRL_RAMWS - int $w.config.f 15 4 "IO waitstates" CONFIG_SRCTRL_IOWS - bool $w.config.f 15 5 "Use read-modify-write for sub-word writes " CONFIG_SRCTRL_RMW - global tmpvar_28 - minimenu $w.config.f 15 6 "SRAM banks" tmpvar_28 CONFIG_SRCTRL_SRBANKS1 - menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"SRAM banks\"" - $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_28 -value "3" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_28 -value "5" -command "update_active" - menusplit $w $w.config.f.x6.x.menu 5 - global tmpvar_29 - minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_29 CONFIG_SRCTRL_BANKSZ0 - menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"SRAM bank size (kb) (0 for programmable)\"" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_29 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_29 -value "256" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_29 -value "512" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_29 -value "1024" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_29 -value "2048" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_29 -value "4096" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_29 -value "8192" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_29 -value "16384" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_29 -value "32768" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_29 -value "65536" -command "update_active" - menusplit $w $w.config.f.x7.x.menu 14 - int $w.config.f 15 8 "PROM bank select address bit (0 - 28)" CONFIG_SRCTRL_ROMASEL + bool $w.config.f 15 0 "Enable Leon2 memory controller " CONFIG_MCTRL_LEON2 + bool $w.config.f 15 1 "8-bit PROM/SRAM bus support " CONFIG_MCTRL_8BIT + bool $w.config.f 15 2 "16-bit PROM/SRAM bus support " CONFIG_MCTRL_16BIT + bool $w.config.f 15 3 "5th SRAM chip-select " CONFIG_MCTRL_5CS + bool $w.config.f 15 4 "SDRAM controller " CONFIG_MCTRL_SDRAM + bool $w.config.f 15 5 "Separate address and data buses" CONFIG_MCTRL_SDRAM_SEPBUS + bool $w.config.f 15 6 "64-bit SDRAM data bus" CONFIG_MCTRL_SDRAM_BUS64 + bool $w.config.f 15 7 "Unsynchronized sdclock" CONFIG_MCTRL_SDRAM_INVCLK + bool $w.config.f 15 8 "Enable page burst operation " CONFIG_MCTRL_PAGE + bool $w.config.f 15 9 "Enable programmable page burst " CONFIG_MCTRL_PROGPAGE focus $w update_active global winx; global winy - if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers "} + if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controller "} set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks @@ -3309,84 +3599,68 @@ proc menu15 {w title} { } proc update_menu15 {} { - global CONFIG_SRCTRL - global CONFIG_SRCTRL_8BIT - if {($CONFIG_SRCTRL == 1)} then { + global CONFIG_MCTRL_LEON2 + global CONFIG_MCTRL_8BIT + if {($CONFIG_MCTRL_LEON2 == 1)} then { configure_entry .menu15.config.f.x1 normal {n l y}} else {configure_entry .menu15.config.f.x1 disabled {y n l}} - global CONFIG_SRCTRL_PROMWS - 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} - global CONFIG_SRCTRL_RAMWS - 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} - global CONFIG_SRCTRL_IOWS - 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} - global CONFIG_SRCTRL_RMW - if {($CONFIG_SRCTRL == 1)} then { + global CONFIG_MCTRL_16BIT + if {($CONFIG_MCTRL_LEON2 == 1)} then { + configure_entry .menu15.config.f.x2 normal {n l y}} else {configure_entry .menu15.config.f.x2 disabled {y n l}} + global CONFIG_MCTRL_5CS + if {($CONFIG_MCTRL_LEON2 == 1)} then { + configure_entry .menu15.config.f.x3 normal {n l y}} else {configure_entry .menu15.config.f.x3 disabled {y n l}} + global CONFIG_MCTRL_SDRAM + if {($CONFIG_MCTRL_LEON2 == 1)} then { + configure_entry .menu15.config.f.x4 normal {n l y}} else {configure_entry .menu15.config.f.x4 disabled {y n l}} + global CONFIG_MCTRL_SDRAM_SEPBUS + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { configure_entry .menu15.config.f.x5 normal {n l y}} else {configure_entry .menu15.config.f.x5 disabled {y n l}} - if {($CONFIG_SRCTRL == 1)} then {configure_entry .menu15.config.f.x6 normal {x l}} else {configure_entry .menu15.config.f.x6 disabled {x l}} - if {($CONFIG_SRCTRL == 1)} then {configure_entry .menu15.config.f.x7 normal {x l}} else {configure_entry .menu15.config.f.x7 disabled {x l}} - global CONFIG_SRCTRL_ROMASEL - 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} + global CONFIG_MCTRL_SDRAM_BUS64 + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { + configure_entry .menu15.config.f.x6 normal {n l y}} else {configure_entry .menu15.config.f.x6 disabled {y n l}} + global CONFIG_MCTRL_SDRAM_INVCLK + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { + configure_entry .menu15.config.f.x7 normal {n l y}} else {configure_entry .menu15.config.f.x7 disabled {y n l}} + global CONFIG_MCTRL_PAGE + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { + configure_entry .menu15.config.f.x8 normal {n l y}} else {configure_entry .menu15.config.f.x8 disabled {y n l}} + global CONFIG_MCTRL_PROGPAGE + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then { + configure_entry .menu15.config.f.x9 normal {n l y}} else {configure_entry .menu15.config.f.x9 disabled {y n l}} } proc update_define_menu15 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_SRCTRL - global CONFIG_SRCTRL_8BIT - if {($CONFIG_SRCTRL == 1)} then { - set CONFIG_SRCTRL_8BIT [expr $CONFIG_SRCTRL_8BIT&15]} else {set CONFIG_SRCTRL_8BIT [expr $CONFIG_SRCTRL_8BIT|16]} - global CONFIG_SRCTRL_PROMWS - if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_PROMWS "$CONFIG_SRCTRL_PROMWS" 3} - global CONFIG_SRCTRL_RAMWS - if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_RAMWS "$CONFIG_SRCTRL_RAMWS" 0} - global CONFIG_SRCTRL_IOWS - if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_IOWS "$CONFIG_SRCTRL_IOWS" 0} - global CONFIG_SRCTRL_RMW - if {($CONFIG_SRCTRL == 1)} then { - set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW&15]} else {set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW|16]} - global tmpvar_28 - global CONFIG_SRCTRL_SRBANKS1 - if {$tmpvar_28 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} - global CONFIG_SRCTRL_SRBANKS2 - if {$tmpvar_28 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} - global CONFIG_SRCTRL_SRBANKS3 - if {$tmpvar_28 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} - global CONFIG_SRCTRL_SRBANKS4 - if {$tmpvar_28 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} - global CONFIG_SRCTRL_SRBANKS5 - if {$tmpvar_28 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} - global tmpvar_29 - global CONFIG_SRCTRL_BANKSZ0 - if {$tmpvar_29 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} - global CONFIG_SRCTRL_BANKSZ1 - if {$tmpvar_29 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} - global CONFIG_SRCTRL_BANKSZ2 - if {$tmpvar_29 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} - global CONFIG_SRCTRL_BANKSZ3 - if {$tmpvar_29 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} - global CONFIG_SRCTRL_BANKSZ4 - if {$tmpvar_29 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} - global CONFIG_SRCTRL_BANKSZ5 - if {$tmpvar_29 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} - global CONFIG_SRCTRL_BANKSZ6 - if {$tmpvar_29 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} - global CONFIG_SRCTRL_BANKSZ7 - if {$tmpvar_29 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} - global CONFIG_SRCTRL_BANKSZ8 - if {$tmpvar_29 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} - global CONFIG_SRCTRL_BANKSZ9 - if {$tmpvar_29 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} - global CONFIG_SRCTRL_BANKSZ10 - if {$tmpvar_29 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} - global CONFIG_SRCTRL_BANKSZ11 - if {$tmpvar_29 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} - global CONFIG_SRCTRL_BANKSZ12 - if {$tmpvar_29 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} - global CONFIG_SRCTRL_BANKSZ13 - if {$tmpvar_29 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} - global CONFIG_SRCTRL_ROMASEL - if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_ROMASEL "$CONFIG_SRCTRL_ROMASEL" 19} + global CONFIG_MCTRL_LEON2 + global CONFIG_MCTRL_8BIT + if {($CONFIG_MCTRL_LEON2 == 1)} then { + set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT&15]} else {set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT|16]} + global CONFIG_MCTRL_16BIT + if {($CONFIG_MCTRL_LEON2 == 1)} then { + set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT&15]} else {set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT|16]} + global CONFIG_MCTRL_5CS + if {($CONFIG_MCTRL_LEON2 == 1)} then { + set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS&15]} else {set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS|16]} + global CONFIG_MCTRL_SDRAM + if {($CONFIG_MCTRL_LEON2 == 1)} then { + set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM&15]} else {set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM|16]} + global CONFIG_MCTRL_SDRAM_SEPBUS + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { + set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS&15]} else {set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS|16]} + global CONFIG_MCTRL_SDRAM_BUS64 + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { + set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64&15]} else {set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64|16]} + global CONFIG_MCTRL_SDRAM_INVCLK + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { + set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK&15]} else {set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK|16]} + global CONFIG_MCTRL_PAGE + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { + set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE&15]} else {set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE|16]} + global CONFIG_MCTRL_PROGPAGE + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then { + set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE&15]} else {set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE|16]} } @@ -3399,9 +3673,9 @@ proc menu16 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 16]] message $w.m -width 400 -aspect 300 -text \ - "Leon2 memory controller " -relief raised + "MIG memory controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "Leon2 memory controller " + wm title $w "MIG memory controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 16; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 16; menu17 .menu17 \"$title\"" @@ -3441,23 +3715,19 @@ proc menu16 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 16 0 "Enable Leon2 memory controller " CONFIG_MCTRL_LEON2 - bool $w.config.f 16 1 "8-bit PROM/SRAM bus support " CONFIG_MCTRL_8BIT - bool $w.config.f 16 2 "16-bit PROM/SRAM bus support " CONFIG_MCTRL_16BIT - bool $w.config.f 16 3 "5th SRAM chip-select " CONFIG_MCTRL_5CS - bool $w.config.f 16 4 "SDRAM controller " CONFIG_MCTRL_SDRAM - bool $w.config.f 16 5 "Separate address and data buses" CONFIG_MCTRL_SDRAM_SEPBUS - bool $w.config.f 16 6 "64-bit SDRAM data bus" CONFIG_MCTRL_SDRAM_BUS64 - bool $w.config.f 16 7 "Unsynchronized sdclock" CONFIG_MCTRL_SDRAM_INVCLK - bool $w.config.f 16 8 "Enable page burst operation " CONFIG_MCTRL_PAGE - bool $w.config.f 16 9 "Enable programmable page burst " CONFIG_MCTRL_PROGPAGE + bool $w.config.f 16 0 "Enable Xilinx MIG memory controller" CONFIG_MIG_DDR2 + int $w.config.f 16 1 "Chip selects (ranks) " CONFIG_MIG_RANKS + int $w.config.f 16 2 "Column bits " CONFIG_MIG_COLBITS + int $w.config.f 16 3 "Row bits " CONFIG_MIG_ROWBITS + int $w.config.f 16 4 "Bank bits " CONFIG_MIG_BANKBITS + hex $w.config.f 16 5 "AHB HMASK " CONFIG_MIG_HMASK focus $w update_active global winx; global winy - if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers "} + if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controller "} set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks @@ -3488,68 +3758,34 @@ proc menu16 {w title} { } proc update_menu16 {} { - global CONFIG_MCTRL_LEON2 - global CONFIG_MCTRL_8BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu16.config.f.x1 normal {n l y}} else {configure_entry .menu16.config.f.x1 disabled {y n l}} - global CONFIG_MCTRL_16BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu16.config.f.x2 normal {n l y}} else {configure_entry .menu16.config.f.x2 disabled {y n l}} - global CONFIG_MCTRL_5CS - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu16.config.f.x3 normal {n l y}} else {configure_entry .menu16.config.f.x3 disabled {y n l}} - global CONFIG_MCTRL_SDRAM - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu16.config.f.x4 normal {n l y}} else {configure_entry .menu16.config.f.x4 disabled {y n l}} - global CONFIG_MCTRL_SDRAM_SEPBUS - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - configure_entry .menu16.config.f.x5 normal {n l y}} else {configure_entry .menu16.config.f.x5 disabled {y n l}} - global CONFIG_MCTRL_SDRAM_BUS64 - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - configure_entry .menu16.config.f.x6 normal {n l y}} else {configure_entry .menu16.config.f.x6 disabled {y n l}} - global CONFIG_MCTRL_SDRAM_INVCLK - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - configure_entry .menu16.config.f.x7 normal {n l y}} else {configure_entry .menu16.config.f.x7 disabled {y n l}} - global CONFIG_MCTRL_PAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - configure_entry .menu16.config.f.x8 normal {n l y}} else {configure_entry .menu16.config.f.x8 disabled {y n l}} - global CONFIG_MCTRL_PROGPAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then { - configure_entry .menu16.config.f.x9 normal {n l y}} else {configure_entry .menu16.config.f.x9 disabled {y n l}} + global CONFIG_MIG_DDR2 + global CONFIG_MIG_RANKS + if {($CONFIG_MIG_DDR2 == 1)} then {.menu16.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x1.l configure -state normal; } else {.menu16.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x1.l configure -state disabled} + global CONFIG_MIG_COLBITS + if {($CONFIG_MIG_DDR2 == 1)} then {.menu16.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x2.l configure -state normal; } else {.menu16.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x2.l configure -state disabled} + global CONFIG_MIG_ROWBITS + if {($CONFIG_MIG_DDR2 == 1)} then {.menu16.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x3.l configure -state normal; } else {.menu16.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x3.l configure -state disabled} + global CONFIG_MIG_BANKBITS + if {($CONFIG_MIG_DDR2 == 1)} then {.menu16.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x4.l configure -state normal; } else {.menu16.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x4.l configure -state disabled} + global CONFIG_MIG_HMASK + if {($CONFIG_MIG_DDR2 == 1)} then {.menu16.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x5.l configure -state normal; } else {.menu16.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x5.l configure -state disabled} } proc update_define_menu16 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_MCTRL_LEON2 - global CONFIG_MCTRL_8BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT&15]} else {set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT|16]} - global CONFIG_MCTRL_16BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT&15]} else {set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT|16]} - global CONFIG_MCTRL_5CS - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS&15]} else {set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS|16]} - global CONFIG_MCTRL_SDRAM - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM&15]} else {set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM|16]} - global CONFIG_MCTRL_SDRAM_SEPBUS - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS&15]} else {set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS|16]} - global CONFIG_MCTRL_SDRAM_BUS64 - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64&15]} else {set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64|16]} - global CONFIG_MCTRL_SDRAM_INVCLK - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK&15]} else {set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK|16]} - global CONFIG_MCTRL_PAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE&15]} else {set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE|16]} - global CONFIG_MCTRL_PROGPAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then { - set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE&15]} else {set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE|16]} + global CONFIG_MIG_DDR2 + global CONFIG_MIG_RANKS + if {($CONFIG_MIG_DDR2 == 1)} then {validate_int CONFIG_MIG_RANKS "$CONFIG_MIG_RANKS" 1} + global CONFIG_MIG_COLBITS + if {($CONFIG_MIG_DDR2 == 1)} then {validate_int CONFIG_MIG_COLBITS "$CONFIG_MIG_COLBITS" 10} + global CONFIG_MIG_ROWBITS + if {($CONFIG_MIG_DDR2 == 1)} then {validate_int CONFIG_MIG_ROWBITS "$CONFIG_MIG_ROWBITS" 13} + global CONFIG_MIG_BANKBITS + if {($CONFIG_MIG_DDR2 == 1)} then {validate_int CONFIG_MIG_BANKBITS "$CONFIG_MIG_BANKBITS" 2} + global CONFIG_MIG_HMASK + if {($CONFIG_MIG_DDR2 == 1)} then {validate_hex CONFIG_MIG_HMASK "$CONFIG_MIG_HMASK" F00} } @@ -3562,9 +3798,9 @@ proc menu17 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 17]] message $w.m -width 400 -aspect 300 -text \ - "PC133 SDRAM controller " -relief raised + "MIG Series 7 memory controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "PC133 SDRAM controller " + wm title $w "MIG Series 7 memory controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 17; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 17; catch {destroy .menu14}; unregister_active 14; menu18 .menu18 \"$title\"" @@ -3604,18 +3840,14 @@ proc menu17 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 17 0 "Enable PC133 SDRAM controller " CONFIG_SDCTRL - bool $w.config.f 17 1 "64-bit SDRAM data bus" CONFIG_SDCTRL_BUS64 - bool $w.config.f 17 2 "Unsynchronized sdclock" CONFIG_SDCTRL_INVCLK - bool $w.config.f 17 3 "Enable page burst operation " CONFIG_SDCTRL_PAGE - bool $w.config.f 17 4 "Enable programmable page burst " CONFIG_SDCTRL_PROGPAGE + bool $w.config.f 17 0 "Enable Xilinx DDR3 MIG memory controller" CONFIG_MIG_SERIES7 focus $w update_active global winx; global winy - if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers "} + if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controller "} set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks @@ -3646,38 +3878,12 @@ proc menu17 {w title} { } proc update_menu17 {} { - global CONFIG_SDCTRL - global CONFIG_SDCTRL_BUS64 - if {($CONFIG_SDCTRL == 1)} then { - configure_entry .menu17.config.f.x1 normal {n l y}} else {configure_entry .menu17.config.f.x1 disabled {y n l}} - global CONFIG_SDCTRL_INVCLK - if {($CONFIG_SDCTRL == 1)} then { - configure_entry .menu17.config.f.x2 normal {n l y}} else {configure_entry .menu17.config.f.x2 disabled {y n l}} - global CONFIG_SDCTRL_PAGE - if {($CONFIG_SDCTRL == 1)} then { - configure_entry .menu17.config.f.x3 normal {n l y}} else {configure_entry .menu17.config.f.x3 disabled {y n l}} - global CONFIG_SDCTRL_PROGPAGE - if {($CONFIG_SDCTRL == 1) && ($CONFIG_SDCTRL_PAGE == 1)} then { - configure_entry .menu17.config.f.x4 normal {n l y}} else {configure_entry .menu17.config.f.x4 disabled {y n l}} } proc update_define_menu17 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_SDCTRL - global CONFIG_SDCTRL_BUS64 - if {($CONFIG_SDCTRL == 1)} then { - set CONFIG_SDCTRL_BUS64 [expr $CONFIG_SDCTRL_BUS64&15]} else {set CONFIG_SDCTRL_BUS64 [expr $CONFIG_SDCTRL_BUS64|16]} - global CONFIG_SDCTRL_INVCLK - if {($CONFIG_SDCTRL == 1)} then { - set CONFIG_SDCTRL_INVCLK [expr $CONFIG_SDCTRL_INVCLK&15]} else {set CONFIG_SDCTRL_INVCLK [expr $CONFIG_SDCTRL_INVCLK|16]} - global CONFIG_SDCTRL_PAGE - if {($CONFIG_SDCTRL == 1)} then { - set CONFIG_SDCTRL_PAGE [expr $CONFIG_SDCTRL_PAGE&15]} else {set CONFIG_SDCTRL_PAGE [expr $CONFIG_SDCTRL_PAGE|16]} - global CONFIG_SDCTRL_PROGPAGE - if {($CONFIG_SDCTRL == 1) && ($CONFIG_SDCTRL_PAGE == 1)} then { - set CONFIG_SDCTRL_PROGPAGE [expr $CONFIG_SDCTRL_PROGPAGE&15]} else {set CONFIG_SDCTRL_PROGPAGE [expr $CONFIG_SDCTRL_PROGPAGE|16]} } @@ -3736,16 +3942,16 @@ proc menu18 {w title} { hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 18 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 18 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_30 - minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_30 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3807,21 +4013,21 @@ proc update_define_menu18 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_30 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_30 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_30 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_30 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_30 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_30 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_30 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_30 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3881,14 +4087,14 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 19 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_31 - minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_31 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3942,17 +4148,17 @@ proc update_define_menu19 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_31 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_31 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_31 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3965,9 +4171,9 @@ proc menu20 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 20]] message $w.m -width 400 -aspect 300 -text \ - "CAN " -relief raised + "UARTs, timers and irq control " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "CAN " + wm title $w "UARTs, timers and irq control " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu21 .menu21 \"$title\"" @@ -4007,12 +4213,32 @@ proc menu20 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 20 0 "Enable CAN interface " CONFIG_CAN_ENABLE - hex $w.config.f 20 1 "CAN I/O area start address (haddr\[19:8\]) " CONFIG_CANIO - int $w.config.f 20 2 "Interrupt number " CONFIG_CANIRQ - bool $w.config.f 20 3 "Enable loop-back testing " CONFIG_CANLOOP - bool $w.config.f 20 4 "Enable synchronous reset " CONFIG_CAN_SYNCRST - bool $w.config.f 20 5 "Enable FT FIFO memory " CONFIG_CAN_FT + bool $w.config.f 20 0 "Enable console UART " CONFIG_UART1_ENABLE + global tmpvar_31 + minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 + menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + menusplit $w $w.config.f.x1.x.menu 6 + bool $w.config.f 20 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE + bool $w.config.f 20 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC + int $w.config.f 20 4 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC + bool $w.config.f 20 5 "Enable Timer Unit " CONFIG_GPT_ENABLE + int $w.config.f 20 6 "Number of timers (1 - 7) " CONFIG_GPT_NTIM + int $w.config.f 20 7 "Scaler width (2 - 16) " CONFIG_GPT_SW + int $w.config.f 20 8 "Timer width (2 - 32) " CONFIG_GPT_TW + int $w.config.f 20 9 "Timer unit interrupt " CONFIG_GPT_IRQ + bool $w.config.f 20 10 "Separate interrupts " CONFIG_GPT_SEPIRQ + bool $w.config.f 20 11 "Watchdog enable " CONFIG_GPT_WDOGEN + hex $w.config.f 20 12 "Initial watchdog time-out value " CONFIG_GPT_WDOG + bool $w.config.f 20 13 "Enable generic GPIO port " CONFIG_GRGPIO_ENABLE + int $w.config.f 20 14 "GPIO width " CONFIG_GRGPIO_WIDTH + hex $w.config.f 20 15 "GPIO interrupt mask " CONFIG_GRGPIO_IMASK + bool $w.config.f 20 16 "Enable I2C master " CONFIG_I2C_ENABLE @@ -4050,40 +4276,83 @@ proc menu20 {w title} { } proc update_menu20 {} { - global CONFIG_CAN_ENABLE - global CONFIG_CANIO - 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} - global CONFIG_CANIRQ - 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} - global CONFIG_CANLOOP - if {($CONFIG_CAN_ENABLE == 1)} then { + global CONFIG_UART1_ENABLE + if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu20.config.f.x1 normal {x l}} else {configure_entry .menu20.config.f.x1 disabled {x l}} + global CONFIG_IRQ3_ENABLE + global CONFIG_IRQ3_SEC + if {($CONFIG_IRQ3_ENABLE == 1)} then { configure_entry .menu20.config.f.x3 normal {n l y}} else {configure_entry .menu20.config.f.x3 disabled {y n l}} - global CONFIG_CAN_SYNCRST - if {($CONFIG_CAN_ENABLE == 1)} then { - configure_entry .menu20.config.f.x4 normal {n l y}} else {configure_entry .menu20.config.f.x4 disabled {y n l}} - global CONFIG_CAN_FT - if {($CONFIG_CAN_ENABLE == 1)} then { - configure_entry .menu20.config.f.x5 normal {n l y}} else {configure_entry .menu20.config.f.x5 disabled {y n l}} + global CONFIG_IRQ3_NSEC + if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {.menu20.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x4.l configure -state normal; } else {.menu20.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x4.l configure -state disabled} + global CONFIG_GPT_ENABLE + global CONFIG_GPT_NTIM + if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x6.l configure -state normal; } else {.menu20.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x6.l configure -state disabled} + global CONFIG_GPT_SW + if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x7.l configure -state normal; } else {.menu20.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x7.l configure -state disabled} + global CONFIG_GPT_TW + if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x8.l configure -state normal; } else {.menu20.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x8.l configure -state disabled} + global CONFIG_GPT_IRQ + if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x9.l configure -state normal; } else {.menu20.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x9.l configure -state disabled} + global CONFIG_GPT_SEPIRQ + if {($CONFIG_GPT_ENABLE == 1)} then { + configure_entry .menu20.config.f.x10 normal {n l y}} else {configure_entry .menu20.config.f.x10 disabled {y n l}} + global CONFIG_GPT_WDOGEN + if {($CONFIG_GPT_ENABLE == 1)} then { + configure_entry .menu20.config.f.x11 normal {n l y}} else {configure_entry .menu20.config.f.x11 disabled {y n l}} + global CONFIG_GPT_WDOG + if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu20.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x12.l configure -state normal; } else {.menu20.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x12.l configure -state disabled} + global CONFIG_GRGPIO_ENABLE + global CONFIG_GRGPIO_WIDTH + if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu20.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x14.l configure -state normal; } else {.menu20.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x14.l configure -state disabled} + global CONFIG_GRGPIO_IMASK + if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu20.config.f.x15.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x15.l configure -state normal; } else {.menu20.config.f.x15.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x15.l configure -state disabled} } proc update_define_menu20 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_CAN_ENABLE - global CONFIG_CANIO - if {($CONFIG_CAN_ENABLE == 1)} then {validate_hex CONFIG_CANIO "$CONFIG_CANIO" C00} - global CONFIG_CANIRQ - if {($CONFIG_CAN_ENABLE == 1)} then {validate_int CONFIG_CANIRQ "$CONFIG_CANIRQ" 13} - global CONFIG_CANLOOP - if {($CONFIG_CAN_ENABLE == 1)} then { - set CONFIG_CANLOOP [expr $CONFIG_CANLOOP&15]} else {set CONFIG_CANLOOP [expr $CONFIG_CANLOOP|16]} - global CONFIG_CAN_SYNCRST - if {($CONFIG_CAN_ENABLE == 1)} then { - set CONFIG_CAN_SYNCRST [expr $CONFIG_CAN_SYNCRST&15]} else {set CONFIG_CAN_SYNCRST [expr $CONFIG_CAN_SYNCRST|16]} - global CONFIG_CAN_FT - if {($CONFIG_CAN_ENABLE == 1)} then { - set CONFIG_CAN_FT [expr $CONFIG_CAN_FT&15]} else {set CONFIG_CAN_FT [expr $CONFIG_CAN_FT|16]} + global tmpvar_31 + global CONFIG_UA1_FIFO1 + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + global CONFIG_UA1_FIFO2 + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + global CONFIG_UA1_FIFO4 + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + global CONFIG_UA1_FIFO8 + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + global CONFIG_UA1_FIFO16 + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + global CONFIG_UA1_FIFO32 + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + global CONFIG_IRQ3_ENABLE + global CONFIG_IRQ3_SEC + if {($CONFIG_IRQ3_ENABLE == 1)} then { + set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC&15]} else {set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC|16]} + global CONFIG_IRQ3_NSEC + if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {validate_int CONFIG_IRQ3_NSEC "$CONFIG_IRQ3_NSEC" 12} + global CONFIG_GPT_ENABLE + global CONFIG_GPT_NTIM + if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_NTIM "$CONFIG_GPT_NTIM" 2} + global CONFIG_GPT_SW + if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_SW "$CONFIG_GPT_SW" 8} + global CONFIG_GPT_TW + if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_TW "$CONFIG_GPT_TW" 32} + global CONFIG_GPT_IRQ + if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_IRQ "$CONFIG_GPT_IRQ" 8} + global CONFIG_GPT_SEPIRQ + if {($CONFIG_GPT_ENABLE == 1)} then { + set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ&15]} else {set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ|16]} + global CONFIG_GPT_WDOGEN + if {($CONFIG_GPT_ENABLE == 1)} then { + set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN&15]} else {set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN|16]} + global CONFIG_GPT_WDOG + if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {validate_hex CONFIG_GPT_WDOG "$CONFIG_GPT_WDOG" FFFF} + global CONFIG_GRGPIO_ENABLE + global CONFIG_GRGPIO_WIDTH + if {($CONFIG_GRGPIO_ENABLE == 1)} then {validate_int CONFIG_GRGPIO_WIDTH "$CONFIG_GRGPIO_WIDTH" 8} + global CONFIG_GRGPIO_IMASK + if {($CONFIG_GRGPIO_ENABLE == 1)} then {validate_hex CONFIG_GRGPIO_IMASK "$CONFIG_GRGPIO_IMASK" 0000} } @@ -4096,12 +4365,12 @@ proc menu21 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 21]] message $w.m -width 400 -aspect 300 -text \ - "SPI " -relief raised + "Keybord and VGA interface" -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "SPI " + wm title $w "Keybord and VGA interface" bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; break" - set nextscript "catch {focus $oldFocus}; menu22 .menu22 \"$title\"" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu22 .menu22 \"$title\"" frame $w.f button $w.f.back -text "OK" \ -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21" @@ -4138,7 +4407,9 @@ proc menu21 {w title} { pack $w.config.canvas -side right -fill y - submenu $w.config.f 21 0 "SPI controller(s) " 22 + bool $w.config.f 21 0 "Keyboard/mouse (PS2) interface " CONFIG_KBD_ENABLE + bool $w.config.f 21 1 "Text-based VGA interface " CONFIG_VGA_ENABLE + bool $w.config.f 21 2 "SVGA graphical frame buffer " CONFIG_SVGA_ENABLE @@ -4176,30 +4447,38 @@ proc menu21 {w title} { } proc update_menu21 {} { + global CONFIG_VGA_ENABLE + global CONFIG_SVGA_ENABLE + if {($CONFIG_VGA_ENABLE == 0)} then { + configure_entry .menu21.config.f.x2 normal {n l y}} else {configure_entry .menu21.config.f.x2 disabled {y n l}} } proc update_define_menu21 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_VGA_ENABLE + global CONFIG_SVGA_ENABLE + if {($CONFIG_VGA_ENABLE == 0)} then { + set CONFIG_SVGA_ENABLE [expr $CONFIG_SVGA_ENABLE&15]} else {set CONFIG_SVGA_ENABLE [expr $CONFIG_SVGA_ENABLE|16]} } proc menu22 {w title} { set oldFocus [focus] - catch {focus .menu21} + catch {focus .menu13} catch {destroy $w; unregister_active 22} toplevel $w -class Dialog wm withdraw $w global active_menus set active_menus [lsort -integer [linsert $active_menus end 22]] message $w.m -width 400 -aspect 300 -text \ - "SPI controller(s) " -relief raised + "SPI" -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "SPI controller(s) " + wm title $w "SPI" bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 22; catch {destroy .menu21}; unregister_active 21; menu23 .menu23 \"$title\"" + set nextscript "catch {focus $oldFocus}; menu23 .menu23 \"$title\"" frame $w.f button $w.f.back -text "OK" \ -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22" @@ -4236,32 +4515,16 @@ proc menu22 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 22 0 "Enable SPI controller(s) " CONFIG_SPICTRL_ENABLE - int $w.config.f 22 1 "Number of SPI controllers " CONFIG_SPICTRL_NUM - int $w.config.f 22 2 "Slave select lines " CONFIG_SPICTRL_SLVS - int $w.config.f 22 3 "FIFO depth (2^N) " CONFIG_SPICTRL_FIFO - bool $w.config.f 22 4 "Enable slave select registers" CONFIG_SPICTRL_SLVREG - bool $w.config.f 22 5 "Enable automatic slave select" CONFIG_SPICTRL_ASEL - bool $w.config.f 22 6 "Support automated transfers " CONFIG_SPICTRL_AM - bool $w.config.f 22 7 "Support open drain mode " CONFIG_SPICTRL_ODMODE - bool $w.config.f 22 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN - int $w.config.f 22 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN - bool $w.config.f 22 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM - global tmpvar_32 - minimenu $w.config.f 22 11 "Fault-tolerance" tmpvar_32 CONFIG_SPICTRL_NOFT - menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" - $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_32 -value "None" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_32 -value "Parity-DMR" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_32 -value "TMR" -command "update_active" - menusplit $w $w.config.f.x11.x.menu 3 + submenu $w.config.f 22 0 "SPI memory controller " 23 + submenu $w.config.f 22 1 "SPI controller(s) " 24 focus $w update_active global winx; global winy - if {[winfo exists .menu21] == 0} then {menu21 .menu21 "SPI "} - set winx [expr [winfo x .menu21]+30]; set winy [expr [winfo y .menu21]+30] + if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} + set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f @@ -4291,89 +4554,27 @@ proc menu22 {w title} { } proc update_menu22 {} { - global CONFIG_SPICTRL_ENABLE - global CONFIG_SPICTRL_NUM - if {($CONFIG_SPICTRL_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} - global CONFIG_SPICTRL_SLVS - if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu22.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x2.l configure -state normal; } else {.menu22.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x2.l configure -state disabled} - global CONFIG_SPICTRL_FIFO - if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu22.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x3.l configure -state normal; } else {.menu22.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x3.l configure -state disabled} - global CONFIG_SPICTRL_SLVREG - if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu22.config.f.x4 normal {n l y}} else {configure_entry .menu22.config.f.x4 disabled {y n l}} - global CONFIG_SPICTRL_ASEL - if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu22.config.f.x5 normal {n l y}} else {configure_entry .menu22.config.f.x5 disabled {y n l}} - global CONFIG_SPICTRL_AM - if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu22.config.f.x6 normal {n l y}} else {configure_entry .menu22.config.f.x6 disabled {y n l}} - global CONFIG_SPICTRL_ODMODE - if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu22.config.f.x7 normal {n l y}} else {configure_entry .menu22.config.f.x7 disabled {y n l}} - global CONFIG_SPICTRL_TWEN - if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu22.config.f.x8 normal {n l y}} else {configure_entry .menu22.config.f.x8 disabled {y n l}} - global CONFIG_SPICTRL_MAXWLEN - if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu22.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x9.l configure -state normal; } else {.menu22.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x9.l configure -state disabled} - global CONFIG_SPICTRL_SYNCRAM - if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu22.config.f.x10 normal {n l y}} else {configure_entry .menu22.config.f.x10 disabled {y n l}} - if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then {configure_entry .menu22.config.f.x11 normal {x l}} else {configure_entry .menu22.config.f.x11 disabled {x l}} } proc update_define_menu22 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_SPICTRL_ENABLE - global CONFIG_SPICTRL_NUM - if {($CONFIG_SPICTRL_ENABLE == 1)} then {validate_int CONFIG_SPICTRL_NUM "$CONFIG_SPICTRL_NUM" 1} - global CONFIG_SPICTRL_SLVS - if {($CONFIG_SPICTRL_ENABLE == 1)} then {validate_int CONFIG_SPICTRL_SLVS "$CONFIG_SPICTRL_SLVS" 1} - global CONFIG_SPICTRL_FIFO - if {($CONFIG_SPICTRL_ENABLE == 1)} then {validate_int CONFIG_SPICTRL_FIFO "$CONFIG_SPICTRL_FIFO" 1} - global CONFIG_SPICTRL_SLVREG - if {($CONFIG_SPICTRL_ENABLE == 1)} then { - set CONFIG_SPICTRL_SLVREG [expr $CONFIG_SPICTRL_SLVREG&15]} else {set CONFIG_SPICTRL_SLVREG [expr $CONFIG_SPICTRL_SLVREG|16]} - global CONFIG_SPICTRL_ASEL - if {($CONFIG_SPICTRL_ENABLE == 1)} then { - set CONFIG_SPICTRL_ASEL [expr $CONFIG_SPICTRL_ASEL&15]} else {set CONFIG_SPICTRL_ASEL [expr $CONFIG_SPICTRL_ASEL|16]} - global CONFIG_SPICTRL_AM - if {($CONFIG_SPICTRL_ENABLE == 1)} then { - set CONFIG_SPICTRL_AM [expr $CONFIG_SPICTRL_AM&15]} else {set CONFIG_SPICTRL_AM [expr $CONFIG_SPICTRL_AM|16]} - global CONFIG_SPICTRL_ODMODE - if {($CONFIG_SPICTRL_ENABLE == 1)} then { - set CONFIG_SPICTRL_ODMODE [expr $CONFIG_SPICTRL_ODMODE&15]} else {set CONFIG_SPICTRL_ODMODE [expr $CONFIG_SPICTRL_ODMODE|16]} - global CONFIG_SPICTRL_TWEN - if {($CONFIG_SPICTRL_ENABLE == 1)} then { - set CONFIG_SPICTRL_TWEN [expr $CONFIG_SPICTRL_TWEN&15]} else {set CONFIG_SPICTRL_TWEN [expr $CONFIG_SPICTRL_TWEN|16]} - global CONFIG_SPICTRL_MAXWLEN - if {($CONFIG_SPICTRL_ENABLE == 1)} then {validate_int CONFIG_SPICTRL_MAXWLEN "$CONFIG_SPICTRL_MAXWLEN" 0} - global CONFIG_SPICTRL_SYNCRAM - if {($CONFIG_SPICTRL_ENABLE == 1)} then { - set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} - global tmpvar_32 - global CONFIG_SPICTRL_NOFT - if {$tmpvar_32 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} - global CONFIG_SPICTRL_DMRFT - if {$tmpvar_32 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} - global CONFIG_SPICTRL_TMRFT - if {$tmpvar_32 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } proc menu23 {w title} { set oldFocus [focus] - catch {focus .menu13} + catch {focus .menu22} catch {destroy $w; unregister_active 23} toplevel $w -class Dialog wm withdraw $w global active_menus set active_menus [lsort -integer [linsert $active_menus end 23]] message $w.m -width 400 -aspect 300 -text \ - "UARTs, timers and irq control " -relief raised + "SPI memory controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "UARTs, timers and irq control " + wm title $w "SPI memory controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu24 .menu24 \"$title\"" @@ -4413,36 +4614,23 @@ proc menu23 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 23 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_33 - minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_33 CONFIG_UA1_FIFO1 - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_33 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_33 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_33 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 6 - bool $w.config.f 23 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE - bool $w.config.f 23 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC - int $w.config.f 23 4 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC - bool $w.config.f 23 5 "Enable Timer Unit " CONFIG_GPT_ENABLE - int $w.config.f 23 6 "Number of timers (1 - 7) " CONFIG_GPT_NTIM - int $w.config.f 23 7 "Scaler width (2 - 16) " CONFIG_GPT_SW - int $w.config.f 23 8 "Timer width (2 - 32) " CONFIG_GPT_TW - int $w.config.f 23 9 "Timer unit interrupt " CONFIG_GPT_IRQ - bool $w.config.f 23 10 "Separate interrupts " CONFIG_GPT_SEPIRQ - bool $w.config.f 23 11 "Watchdog enable " CONFIG_GPT_WDOGEN - hex $w.config.f 23 12 "Initial watchdog time-out value " CONFIG_GPT_WDOG + bool $w.config.f 23 0 "Enable SPI memory controller " CONFIG_SPIMCTRL + bool $w.config.f 23 1 "Enable SD card support " CONFIG_SPIMCTRL_SDCARD + hex $w.config.f 23 2 "Read instruction " CONFIG_SPIMCTRL_READCMD + bool $w.config.f 23 3 "Read instruction requires dummy byte " CONFIG_SPIMCTRL_DUMMYBYTE + bool $w.config.f 23 4 "Enable dual output for reads " CONFIG_SPIMCTRL_DUALOUTPUT + hex $w.config.f 23 5 "Address offset " CONFIG_SPIMCTRL_OFFSET + int $w.config.f 23 6 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER + int $w.config.f 23 7 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER + int $w.config.f 23 8 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT focus $w update_active global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] + if {[winfo exists .menu22] == 0} then {menu22 .menu22 "SPI"} + set winx [expr [winfo x .menu22]+30]; set winy [expr [winfo y .menu22]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f @@ -4472,91 +4660,70 @@ proc menu23 {w title} { } proc update_menu23 {} { - global CONFIG_UART1_ENABLE - 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}} - global CONFIG_IRQ3_ENABLE - global CONFIG_IRQ3_SEC - if {($CONFIG_IRQ3_ENABLE == 1)} then { + global CONFIG_SPIMCTRL + global CONFIG_SPIMCTRL_SDCARD + if {($CONFIG_SPIMCTRL == 1)} then { + configure_entry .menu23.config.f.x1 normal {n l y}} else {configure_entry .menu23.config.f.x1 disabled {y n l}} + global CONFIG_SPIMCTRL_READCMD + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {.menu23.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x2.l configure -state normal; } else {.menu23.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x2.l configure -state disabled} + global CONFIG_SPIMCTRL_DUMMYBYTE + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { configure_entry .menu23.config.f.x3 normal {n l y}} else {configure_entry .menu23.config.f.x3 disabled {y n l}} - global CONFIG_IRQ3_NSEC - if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {.menu23.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x4.l configure -state normal; } else {.menu23.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x4.l configure -state disabled} - global CONFIG_GPT_ENABLE - global CONFIG_GPT_NTIM - 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} - global CONFIG_GPT_SW - 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} - global CONFIG_GPT_TW - 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} - global CONFIG_GPT_IRQ - 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} - global CONFIG_GPT_SEPIRQ - if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu23.config.f.x10 normal {n l y}} else {configure_entry .menu23.config.f.x10 disabled {y n l}} - global CONFIG_GPT_WDOGEN - if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu23.config.f.x11 normal {n l y}} else {configure_entry .menu23.config.f.x11 disabled {y n l}} - global CONFIG_GPT_WDOG - 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} + global CONFIG_SPIMCTRL_DUALOUTPUT + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { + configure_entry .menu23.config.f.x4 normal {n l y}} else {configure_entry .menu23.config.f.x4 disabled {y n l}} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {.menu23.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x5.l configure -state normal; } else {.menu23.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x5.l configure -state disabled} + global CONFIG_SPIMCTRL_SCALER + if {($CONFIG_SPIMCTRL == 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} + global CONFIG_SPIMCTRL_ASCALER + if {($CONFIG_SPIMCTRL == 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} + global CONFIG_SPIMCTRL_PWRUPCNT + if {($CONFIG_SPIMCTRL == 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} } proc update_define_menu23 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_33 - global CONFIG_UA1_FIFO1 - if {$tmpvar_33 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} - global CONFIG_UA1_FIFO2 - if {$tmpvar_33 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} - global CONFIG_UA1_FIFO4 - if {$tmpvar_33 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} - global CONFIG_UA1_FIFO8 - if {$tmpvar_33 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} - global CONFIG_UA1_FIFO16 - if {$tmpvar_33 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} - global CONFIG_UA1_FIFO32 - if {$tmpvar_33 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} - global CONFIG_IRQ3_ENABLE - global CONFIG_IRQ3_SEC - if {($CONFIG_IRQ3_ENABLE == 1)} then { - set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC&15]} else {set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC|16]} - global CONFIG_IRQ3_NSEC - if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {validate_int CONFIG_IRQ3_NSEC "$CONFIG_IRQ3_NSEC" 12} - global CONFIG_GPT_ENABLE - global CONFIG_GPT_NTIM - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_NTIM "$CONFIG_GPT_NTIM" 2} - global CONFIG_GPT_SW - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_SW "$CONFIG_GPT_SW" 8} - global CONFIG_GPT_TW - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_TW "$CONFIG_GPT_TW" 32} - global CONFIG_GPT_IRQ - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_IRQ "$CONFIG_GPT_IRQ" 8} - global CONFIG_GPT_SEPIRQ - if {($CONFIG_GPT_ENABLE == 1)} then { - set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ&15]} else {set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ|16]} - global CONFIG_GPT_WDOGEN - if {($CONFIG_GPT_ENABLE == 1)} then { - set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN&15]} else {set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN|16]} - global CONFIG_GPT_WDOG - if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {validate_hex CONFIG_GPT_WDOG "$CONFIG_GPT_WDOG" FFFF} + global CONFIG_SPIMCTRL + global CONFIG_SPIMCTRL_SDCARD + if {($CONFIG_SPIMCTRL == 1)} then { + set CONFIG_SPIMCTRL_SDCARD [expr $CONFIG_SPIMCTRL_SDCARD&15]} else {set CONFIG_SPIMCTRL_SDCARD [expr $CONFIG_SPIMCTRL_SDCARD|16]} + global CONFIG_SPIMCTRL_READCMD + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {validate_hex CONFIG_SPIMCTRL_READCMD "$CONFIG_SPIMCTRL_READCMD" 0B} + global CONFIG_SPIMCTRL_DUMMYBYTE + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { + set CONFIG_SPIMCTRL_DUMMYBYTE [expr $CONFIG_SPIMCTRL_DUMMYBYTE&15]} else {set CONFIG_SPIMCTRL_DUMMYBYTE [expr $CONFIG_SPIMCTRL_DUMMYBYTE|16]} + global CONFIG_SPIMCTRL_DUALOUTPUT + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { + set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT&15]} else {set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT|16]} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {validate_hex CONFIG_SPIMCTRL_OFFSET "$CONFIG_SPIMCTRL_OFFSET" 0} + global CONFIG_SPIMCTRL_SCALER + if {($CONFIG_SPIMCTRL == 1)} then {validate_int CONFIG_SPIMCTRL_SCALER "$CONFIG_SPIMCTRL_SCALER" 1} + global CONFIG_SPIMCTRL_ASCALER + if {($CONFIG_SPIMCTRL == 1)} then {validate_int CONFIG_SPIMCTRL_ASCALER "$CONFIG_SPIMCTRL_ASCALER" 8} + global CONFIG_SPIMCTRL_PWRUPCNT + if {($CONFIG_SPIMCTRL == 1)} then {validate_int CONFIG_SPIMCTRL_PWRUPCNT "$CONFIG_SPIMCTRL_PWRUPCNT" 0} } proc menu24 {w title} { set oldFocus [focus] - catch {focus .menu13} + catch {focus .menu22} catch {destroy $w; unregister_active 24} toplevel $w -class Dialog wm withdraw $w global active_menus set active_menus [lsort -integer [linsert $active_menus end 24]] message $w.m -width 400 -aspect 300 -text \ - "Keybord and VGA interface" -relief raised + "SPI controller(s) " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "Keybord and VGA interface" + wm title $w "SPI controller(s) " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 24; catch {destroy .menu13}; unregister_active 13; menu25 .menu25 \"$title\"" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 24; catch {destroy .menu22}; unregister_active 22; catch {destroy .menu13}; unregister_active 13; menu25 .menu25 \"$title\"" frame $w.f button $w.f.back -text "OK" \ -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24" @@ -4593,17 +4760,32 @@ proc menu24 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 24 0 "Keyboard/mouse (PS2) interface " CONFIG_KBD_ENABLE - bool $w.config.f 24 1 "Text-based VGA interface " CONFIG_VGA_ENABLE - bool $w.config.f 24 2 "SVGA graphical frame buffer " CONFIG_SVGA_ENABLE + bool $w.config.f 24 0 "Enable SPI controller(s) " CONFIG_SPICTRL_ENABLE + int $w.config.f 24 1 "Number of SPI controllers " CONFIG_SPICTRL_NUM + int $w.config.f 24 2 "Slave select lines " CONFIG_SPICTRL_SLVS + int $w.config.f 24 3 "FIFO depth (2^N) " CONFIG_SPICTRL_FIFO + bool $w.config.f 24 4 "Enable slave select registers" CONFIG_SPICTRL_SLVREG + bool $w.config.f 24 5 "Enable automatic slave select" CONFIG_SPICTRL_ASEL + bool $w.config.f 24 6 "Support automated transfers " CONFIG_SPICTRL_AM + bool $w.config.f 24 7 "Support open drain mode " CONFIG_SPICTRL_ODMODE + bool $w.config.f 24 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN + int $w.config.f 24 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN + bool $w.config.f 24 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM + global tmpvar_32 + minimenu $w.config.f 24 11 "Fault-tolerance" tmpvar_32 CONFIG_SPICTRL_NOFT + menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_32 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_32 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_32 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x11.x.menu 3 focus $w update_active global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] + if {[winfo exists .menu22] == 0} then {menu22 .menu22 "SPI"} + set winx [expr [winfo x .menu22]+30]; set winy [expr [winfo y .menu22]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f @@ -4633,149 +4815,102 @@ proc menu24 {w title} { } proc update_menu24 {} { - global CONFIG_VGA_ENABLE - global CONFIG_SVGA_ENABLE - if {($CONFIG_VGA_ENABLE == 0)} then { - configure_entry .menu24.config.f.x2 normal {n l y}} else {configure_entry .menu24.config.f.x2 disabled {y n l}} + global CONFIG_SPICTRL_ENABLE + global CONFIG_SPICTRL_NUM + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu24.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x1.l configure -state normal; } else {.menu24.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x1.l configure -state disabled} + global CONFIG_SPICTRL_SLVS + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu24.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x2.l configure -state normal; } else {.menu24.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x2.l configure -state disabled} + global CONFIG_SPICTRL_FIFO + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu24.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x3.l configure -state normal; } else {.menu24.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x3.l configure -state disabled} + global CONFIG_SPICTRL_SLVREG + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + configure_entry .menu24.config.f.x4 normal {n l y}} else {configure_entry .menu24.config.f.x4 disabled {y n l}} + global CONFIG_SPICTRL_ASEL + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + configure_entry .menu24.config.f.x5 normal {n l y}} else {configure_entry .menu24.config.f.x5 disabled {y n l}} + global CONFIG_SPICTRL_AM + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + configure_entry .menu24.config.f.x6 normal {n l y}} else {configure_entry .menu24.config.f.x6 disabled {y n l}} + global CONFIG_SPICTRL_ODMODE + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + configure_entry .menu24.config.f.x7 normal {n l y}} else {configure_entry .menu24.config.f.x7 disabled {y n l}} + global CONFIG_SPICTRL_TWEN + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + configure_entry .menu24.config.f.x8 normal {n l y}} else {configure_entry .menu24.config.f.x8 disabled {y n l}} + global CONFIG_SPICTRL_MAXWLEN + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu24.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x9.l configure -state normal; } else {.menu24.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x9.l configure -state disabled} + global CONFIG_SPICTRL_SYNCRAM + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + configure_entry .menu24.config.f.x10 normal {n l y}} else {configure_entry .menu24.config.f.x10 disabled {y n l}} + if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then {configure_entry .menu24.config.f.x11 normal {x l}} else {configure_entry .menu24.config.f.x11 disabled {x l}} } proc update_define_menu24 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_VGA_ENABLE - global CONFIG_SVGA_ENABLE - if {($CONFIG_VGA_ENABLE == 0)} then { - set CONFIG_SVGA_ENABLE [expr $CONFIG_SVGA_ENABLE&15]} else {set CONFIG_SVGA_ENABLE [expr $CONFIG_SVGA_ENABLE|16]} -} - - -menu_option menu25 25 "Gleichmann Options " -proc menu25 {w title} { - set oldFocus [focus] - catch {destroy $w; unregister_active 25} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 25]] - message $w.m -width 400 -aspect 300 -text \ - "Gleichmann Options " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "Gleichmann Options " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu26 .menu26 \"$title\"" - frame $w.f - button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 25 0 "AHB2HPI Bridge" CONFIG_AHB2HPI_ENABLE - bool $w.config.f 25 1 "ADCDAC" CONFIG_ADCDAC_ENABLE - bool $w.config.f 25 2 "OpenCores SPI Controller" CONFIG_SPI_OC_ENABLE - bool $w.config.f 25 3 "MultiIO enable" CONFIG_MULTIIO_ENABLE - bool $w.config.f 25 4 "OpenCores AC97 Controller" CONFIG_AC97_OC_ENABLE - - - - focus $w - update_active - global winx; global winy - set winx [expr [winfo x .]+30]; set winy [expr [winfo y .]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu25 {} { -} - - -proc update_define_menu25 {} { - update_define_mainmenu - global CONFIG_MODULES + global CONFIG_SPICTRL_ENABLE + global CONFIG_SPICTRL_NUM + if {($CONFIG_SPICTRL_ENABLE == 1)} then {validate_int CONFIG_SPICTRL_NUM "$CONFIG_SPICTRL_NUM" 1} + global CONFIG_SPICTRL_SLVS + if {($CONFIG_SPICTRL_ENABLE == 1)} then {validate_int CONFIG_SPICTRL_SLVS "$CONFIG_SPICTRL_SLVS" 1} + global CONFIG_SPICTRL_FIFO + if {($CONFIG_SPICTRL_ENABLE == 1)} then {validate_int CONFIG_SPICTRL_FIFO "$CONFIG_SPICTRL_FIFO" 1} + global CONFIG_SPICTRL_SLVREG + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + set CONFIG_SPICTRL_SLVREG [expr $CONFIG_SPICTRL_SLVREG&15]} else {set CONFIG_SPICTRL_SLVREG [expr $CONFIG_SPICTRL_SLVREG|16]} + global CONFIG_SPICTRL_ASEL + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + set CONFIG_SPICTRL_ASEL [expr $CONFIG_SPICTRL_ASEL&15]} else {set CONFIG_SPICTRL_ASEL [expr $CONFIG_SPICTRL_ASEL|16]} + global CONFIG_SPICTRL_AM + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + set CONFIG_SPICTRL_AM [expr $CONFIG_SPICTRL_AM&15]} else {set CONFIG_SPICTRL_AM [expr $CONFIG_SPICTRL_AM|16]} + global CONFIG_SPICTRL_ODMODE + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + set CONFIG_SPICTRL_ODMODE [expr $CONFIG_SPICTRL_ODMODE&15]} else {set CONFIG_SPICTRL_ODMODE [expr $CONFIG_SPICTRL_ODMODE|16]} + global CONFIG_SPICTRL_TWEN + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + set CONFIG_SPICTRL_TWEN [expr $CONFIG_SPICTRL_TWEN&15]} else {set CONFIG_SPICTRL_TWEN [expr $CONFIG_SPICTRL_TWEN|16]} + global CONFIG_SPICTRL_MAXWLEN + if {($CONFIG_SPICTRL_ENABLE == 1)} then {validate_int CONFIG_SPICTRL_MAXWLEN "$CONFIG_SPICTRL_MAXWLEN" 0} + global CONFIG_SPICTRL_SYNCRAM + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} + global tmpvar_32 + global CONFIG_SPICTRL_NOFT + if {$tmpvar_32 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + global CONFIG_SPICTRL_DMRFT + if {$tmpvar_32 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + global CONFIG_SPICTRL_TMRFT + if {$tmpvar_32 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } -menu_option menu26 26 "VHDL Debugging " -proc menu26 {w title} { +menu_option menu25 25 "VHDL Debugging " +proc menu25 {w title} { set oldFocus [focus] - catch {destroy $w; unregister_active 26} + catch {destroy $w; unregister_active 25} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 26]] + set active_menus [lsort -integer [linsert $active_menus end 25]] message $w.m -width 400 -aspect 300 -text \ "VHDL Debugging " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "VHDL Debugging " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 26; break" - set nextscript "catch {focus $oldFocus}; menu27 .menu27 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; break" + set nextscript "catch {focus $oldFocus}; menu26 .menu26 \"$title\"" frame $w.f button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 26" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript $w.f.next configure -state disabled bind all "puts \"no more menus\" " button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 26; menu25 .menu25 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 26; menu25 .menu25 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4803,7 +4938,7 @@ proc menu26 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 26 0 "Accelerated UART tracing " CONFIG_DEBUG_UART + bool $w.config.f 25 0 "Accelerated UART tracing " CONFIG_DEBUG_UART @@ -4839,11 +4974,11 @@ proc menu26 {w title} { } } -proc update_menu26 {} { +proc update_menu25 {} { } -proc update_define_menu26 {} { +proc update_define_menu25 {} { update_define_mainmenu global CONFIG_MODULES } @@ -4889,7 +5024,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4899,6 +5035,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4923,6 +5061,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4935,14 +5074,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4955,27 +5099,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set CONFIG_FPU_GRFPU_SH 0 +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4985,17 +5130,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -5007,12 +5152,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -5022,10 +5167,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -5036,7 +5181,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -5048,26 +5193,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -5075,27 +5222,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -5116,7 +5267,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -5128,39 +5279,6 @@ set CONFIG_DSU_ETHMSB 020000 set CONFIG_DSU_ETHLSB 000000 set CONFIG_DSU_ETH_PROG 0 set CONFIG_DSU_ETH_DIS 0 -set CONFIG_GRUSB_DCL 0 -set tmpvar_27 "(not set)" -set CONFIG_GRUSB_DCL_ULPI 0 -set CONFIG_GRUSB_DCL_UTMI8 0 -set CONFIG_GRUSB_DCL_UTMI16 0 -set CONFIG_SRCTRL 0 -set CONFIG_SRCTRL_8BIT 0 -set CONFIG_SRCTRL_PROMWS 3 -set CONFIG_SRCTRL_RAMWS 0 -set CONFIG_SRCTRL_IOWS 0 -set CONFIG_SRCTRL_RMW 0 -set tmpvar_28 "(not set)" -set CONFIG_SRCTRL_SRBANKS1 0 -set CONFIG_SRCTRL_SRBANKS2 0 -set CONFIG_SRCTRL_SRBANKS3 0 -set CONFIG_SRCTRL_SRBANKS4 0 -set CONFIG_SRCTRL_SRBANKS5 0 -set tmpvar_29 "(not set)" -set CONFIG_SRCTRL_BANKSZ0 0 -set CONFIG_SRCTRL_BANKSZ1 0 -set CONFIG_SRCTRL_BANKSZ2 0 -set CONFIG_SRCTRL_BANKSZ3 0 -set CONFIG_SRCTRL_BANKSZ4 0 -set CONFIG_SRCTRL_BANKSZ5 0 -set CONFIG_SRCTRL_BANKSZ6 0 -set CONFIG_SRCTRL_BANKSZ7 0 -set CONFIG_SRCTRL_BANKSZ8 0 -set CONFIG_SRCTRL_BANKSZ9 0 -set CONFIG_SRCTRL_BANKSZ10 0 -set CONFIG_SRCTRL_BANKSZ11 0 -set CONFIG_SRCTRL_BANKSZ12 0 -set CONFIG_SRCTRL_BANKSZ13 0 -set CONFIG_SRCTRL_ROMASEL 19 set CONFIG_MCTRL_LEON2 0 set CONFIG_MCTRL_8BIT 0 set CONFIG_MCTRL_16BIT 0 @@ -5171,16 +5289,20 @@ set CONFIG_MCTRL_SDRAM_BUS64 0 set CONFIG_MCTRL_SDRAM_INVCLK 0 set CONFIG_MCTRL_PAGE 0 set CONFIG_MCTRL_PROGPAGE 0 -set CONFIG_SDCTRL 0 -set CONFIG_SDCTRL_BUS64 0 -set CONFIG_SDCTRL_INVCLK 0 -set CONFIG_SDCTRL_PAGE 0 -set CONFIG_SDCTRL_PROGPAGE 0 +set CONFIG_MIG_DDR2 0 +set CONFIG_MIG_RANKS 1 +set CONFIG_MIG_COLBITS 10 +set CONFIG_MIG_ROWBITS 13 +set CONFIG_MIG_BANKBITS 2 +set CONFIG_MIG_HMASK F00 +set CONFIG_MIG_SERIES7 0 +set CONFIG_AHBSTAT_ENABLE 0 +set CONFIG_AHBSTAT_NFTSLV 1 set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_30 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -5191,35 +5313,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_31 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 -set CONFIG_CAN_ENABLE 0 -set CONFIG_CANIO C00 -set CONFIG_CANIRQ 13 -set CONFIG_CANLOOP 0 -set CONFIG_CAN_SYNCRST 0 -set CONFIG_CAN_FT 0 -set CONFIG_SPICTRL_ENABLE 0 -set CONFIG_SPICTRL_NUM 1 -set CONFIG_SPICTRL_SLVS 1 -set CONFIG_SPICTRL_FIFO 1 -set CONFIG_SPICTRL_SLVREG 0 -set CONFIG_SPICTRL_ASEL 0 -set CONFIG_SPICTRL_AM 0 -set CONFIG_SPICTRL_ODMODE 0 -set CONFIG_SPICTRL_TWEN 0 -set CONFIG_SPICTRL_MAXWLEN 0 -set CONFIG_SPICTRL_SYNCRAM 0 -set tmpvar_32 "(not set)" -set CONFIG_SPICTRL_NOFT 0 -set CONFIG_SPICTRL_DMRFT 0 -set CONFIG_SPICTRL_TMRFT 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_33 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5237,20 +5338,42 @@ set CONFIG_GPT_IRQ 8 set CONFIG_GPT_SEPIRQ 0 set CONFIG_GPT_WDOGEN 0 set CONFIG_GPT_WDOG FFFF +set CONFIG_GRGPIO_ENABLE 0 +set CONFIG_GRGPIO_WIDTH 8 +set CONFIG_GRGPIO_IMASK 0000 +set CONFIG_I2C_ENABLE 0 set CONFIG_KBD_ENABLE 0 set CONFIG_VGA_ENABLE 0 set CONFIG_SVGA_ENABLE 0 -set CONFIG_AHB2HPI_ENABLE 0 -set CONFIG_ADCDAC_ENABLE 0 -set CONFIG_SPI_OC_ENABLE 0 -set CONFIG_MULTIIO_ENABLE 0 -set CONFIG_AC97_OC_ENABLE 0 +set CONFIG_SPIMCTRL 0 +set CONFIG_SPIMCTRL_SDCARD 0 +set CONFIG_SPIMCTRL_READCMD 0B +set CONFIG_SPIMCTRL_DUMMYBYTE 0 +set CONFIG_SPIMCTRL_DUALOUTPUT 0 +set CONFIG_SPIMCTRL_OFFSET 0 +set CONFIG_SPIMCTRL_SCALER 1 +set CONFIG_SPIMCTRL_ASCALER 8 +set CONFIG_SPIMCTRL_PWRUPCNT 0 +set CONFIG_SPICTRL_ENABLE 0 +set CONFIG_SPICTRL_NUM 1 +set CONFIG_SPICTRL_SLVS 1 +set CONFIG_SPICTRL_FIFO 1 +set CONFIG_SPICTRL_SLVREG 0 +set CONFIG_SPICTRL_ASEL 0 +set CONFIG_SPICTRL_AM 0 +set CONFIG_SPICTRL_ODMODE 0 +set CONFIG_SPICTRL_TWEN 0 +set CONFIG_SPICTRL_MAXWLEN 0 +set CONFIG_SPICTRL_SYNCRAM 0 +set tmpvar_32 "(not set)" +set CONFIG_SPICTRL_NOFT 0 +set CONFIG_SPICTRL_DMRFT 0 +set CONFIG_SPICTRL_TMRFT 0 set CONFIG_DEBUG_UART 0 -set CONFIG_MCTRL_RMW 4 +set CONFIG_LEON3FT_PRESENT 4 +set CONFIG_HAS_SHARED_GRFPU 4 set CONFIG_SYN_ARTISAN 4 set CONFIG_PCI_ENABLE 4 -set CONFIG_HAS_SHARED_GRFPU 4 -set CONFIG_FPU_GRFPU_SH 4 set CONFIG_MODULES 4 proc writeconfig {file1 file2} { set cfg [open $file1 w] @@ -5264,9 +5387,11 @@ proc writeconfig {file1 file2} { puts $autocfg " * Automatically generated C config: don't edit" puts $autocfg " */" puts $autocfg "#define AUTOCONF_INCLUDED" - global CONFIG_MCTRL_RMW + global CONFIG_LEON3FT_PRESENT global CONSTANT_Y - write_tristate $cfg $autocfg CONFIG_MCTRL_RMW $CONFIG_MCTRL_RMW [list $notmod] 2 + write_tristate $cfg $autocfg CONFIG_LEON3FT_PRESENT $CONFIG_LEON3FT_PRESENT [list $notmod] 2 + global CONFIG_HAS_SHARED_GRFPU + write_tristate $cfg $autocfg CONFIG_HAS_SHARED_GRFPU $CONFIG_HAS_SHARED_GRFPU [list $notmod] 2 write_comment $cfg $autocfg "Synthesis " global tmpvar_0 @@ -5305,7 +5430,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5315,6 +5441,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5353,6 +5481,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -5365,9 +5494,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5381,239 +5511,390 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5658,13 +5939,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5678,53 +5959,8 @@ proc writeconfig {file1 file2} { 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 } global CONFIG_DSU_ETH_DIS if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH_DIS $CONFIG_DSU_ETH_DIS [list $notmod] 2 } - global CONFIG_GRUSB_DCL - write_tristate $cfg $autocfg CONFIG_GRUSB_DCL $CONFIG_GRUSB_DCL [list $notmod] 2 - global tmpvar_27 - if {($CONFIG_GRUSB_DCL == 1)} then { - if { $tmpvar_27 == "ULPI" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_ULPI 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_ULPI 0 [list $notmod] 2 } - if { $tmpvar_27 == "UTMI/UTMI+8-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI8 0 [list $notmod] 2 } - if { $tmpvar_27 == "UTMI/UTMI+16-bit" } then { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_GRUSB_DCL_UTMI16 0 [list $notmod] 2 }} write_comment $cfg $autocfg "Peripherals " - write_comment $cfg $autocfg "Memory controllers " - write_comment $cfg $autocfg "8/32-bit PROM/SRAM controller " - global CONFIG_SRCTRL - write_tristate $cfg $autocfg CONFIG_SRCTRL $CONFIG_SRCTRL [list $notmod] 2 - global CONFIG_SRCTRL_8BIT - if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_8BIT $CONFIG_SRCTRL_8BIT [list $notmod] 2 } - global CONFIG_SRCTRL_PROMWS - if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_PROMWS $CONFIG_SRCTRL_PROMWS $notmod } - global CONFIG_SRCTRL_RAMWS - if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_RAMWS $CONFIG_SRCTRL_RAMWS $notmod } - global CONFIG_SRCTRL_IOWS - if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_IOWS $CONFIG_SRCTRL_IOWS $notmod } - global CONFIG_SRCTRL_RMW - if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_RMW $CONFIG_SRCTRL_RMW [list $notmod] 2 } - global tmpvar_28 - if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} - global tmpvar_29 - if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} - global CONFIG_SRCTRL_ROMASEL - if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_ROMASEL $CONFIG_SRCTRL_ROMASEL $notmod } + write_comment $cfg $autocfg "Memory controller " write_comment $cfg $autocfg "Leon2 memory controller " global CONFIG_MCTRL_LEON2 write_tristate $cfg $autocfg CONFIG_MCTRL_LEON2 $CONFIG_MCTRL_LEON2 [list $notmod] 2 @@ -5746,17 +5982,26 @@ proc writeconfig {file1 file2} { if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_PAGE $CONFIG_MCTRL_PAGE [list $notmod] 2 } global CONFIG_MCTRL_PROGPAGE 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 } - write_comment $cfg $autocfg "PC133 SDRAM controller " - global CONFIG_SDCTRL - write_tristate $cfg $autocfg CONFIG_SDCTRL $CONFIG_SDCTRL [list $notmod] 2 - global CONFIG_SDCTRL_BUS64 - if {($CONFIG_SDCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SDCTRL_BUS64 $CONFIG_SDCTRL_BUS64 [list $notmod] 2 } - global CONFIG_SDCTRL_INVCLK - if {($CONFIG_SDCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SDCTRL_INVCLK $CONFIG_SDCTRL_INVCLK [list $notmod] 2 } - global CONFIG_SDCTRL_PAGE - if {($CONFIG_SDCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SDCTRL_PAGE $CONFIG_SDCTRL_PAGE [list $notmod] 2 } - global CONFIG_SDCTRL_PROGPAGE - if {($CONFIG_SDCTRL == 1) && ($CONFIG_SDCTRL_PAGE == 1)} then {write_tristate $cfg $autocfg CONFIG_SDCTRL_PROGPAGE $CONFIG_SDCTRL_PROGPAGE [list $notmod] 2 } + write_comment $cfg $autocfg "MIG memory controller " + global CONFIG_MIG_DDR2 + write_tristate $cfg $autocfg CONFIG_MIG_DDR2 $CONFIG_MIG_DDR2 [list $notmod] 2 + global CONFIG_MIG_RANKS + if {($CONFIG_MIG_DDR2 == 1)} then {write_int $cfg $autocfg CONFIG_MIG_RANKS $CONFIG_MIG_RANKS $notmod } + global CONFIG_MIG_COLBITS + if {($CONFIG_MIG_DDR2 == 1)} then {write_int $cfg $autocfg CONFIG_MIG_COLBITS $CONFIG_MIG_COLBITS $notmod } + global CONFIG_MIG_ROWBITS + if {($CONFIG_MIG_DDR2 == 1)} then {write_int $cfg $autocfg CONFIG_MIG_ROWBITS $CONFIG_MIG_ROWBITS $notmod } + global CONFIG_MIG_BANKBITS + if {($CONFIG_MIG_DDR2 == 1)} then {write_int $cfg $autocfg CONFIG_MIG_BANKBITS $CONFIG_MIG_BANKBITS $notmod } + global CONFIG_MIG_HMASK + if {($CONFIG_MIG_DDR2 == 1)} then {write_hex $cfg $autocfg CONFIG_MIG_HMASK $CONFIG_MIG_HMASK $notmod } + write_comment $cfg $autocfg "MIG Series 7 memory controller " + global CONFIG_MIG_SERIES7 + write_tristate $cfg $autocfg CONFIG_MIG_SERIES7 $CONFIG_MIG_SERIES7 [list $notmod] 2 + global CONFIG_AHBSTAT_ENABLE + write_tristate $cfg $autocfg CONFIG_AHBSTAT_ENABLE $CONFIG_AHBSTAT_ENABLE [list $notmod] 2 + global CONFIG_AHBSTAT_NFTSLV + if {($CONFIG_AHBSTAT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_AHBSTAT_NFTSLV $CONFIG_AHBSTAT_NFTSLV $notmod } write_comment $cfg $autocfg "On-chip RAM/ROM " global CONFIG_AHBROM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBROM_ENABLE $CONFIG_AHBROM_ENABLE [list $notmod] 2 @@ -5766,80 +6011,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_30 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_31 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 }} - write_comment $cfg $autocfg "CAN " - global CONFIG_CAN_ENABLE - write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2 - global CONFIG_CANIO - if {($CONFIG_CAN_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CANIO $CONFIG_CANIO $notmod } - global CONFIG_CANIRQ - if {($CONFIG_CAN_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_CANIRQ $CONFIG_CANIRQ $notmod } - global CONFIG_CANLOOP - if {($CONFIG_CAN_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_CANLOOP $CONFIG_CANLOOP [list $notmod] 2 } - global CONFIG_CAN_SYNCRST - if {($CONFIG_CAN_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_CAN_SYNCRST $CONFIG_CAN_SYNCRST [list $notmod] 2 } - global CONFIG_CAN_FT - if {($CONFIG_CAN_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_CAN_FT $CONFIG_CAN_FT [list $notmod] 2 } - write_comment $cfg $autocfg "SPI " - write_comment $cfg $autocfg "SPI controller(s) " - global CONFIG_SPICTRL_ENABLE - write_tristate $cfg $autocfg CONFIG_SPICTRL_ENABLE $CONFIG_SPICTRL_ENABLE [list $notmod] 2 - global CONFIG_SPICTRL_NUM - if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_NUM $CONFIG_SPICTRL_NUM $notmod } - global CONFIG_SPICTRL_SLVS - if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_SLVS $CONFIG_SPICTRL_SLVS $notmod } - global CONFIG_SPICTRL_FIFO - if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_FIFO $CONFIG_SPICTRL_FIFO $notmod } - global CONFIG_SPICTRL_SLVREG - if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SLVREG $CONFIG_SPICTRL_SLVREG [list $notmod] 2 } - global CONFIG_SPICTRL_ASEL - if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_ASEL $CONFIG_SPICTRL_ASEL [list $notmod] 2 } - global CONFIG_SPICTRL_AM - if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_AM $CONFIG_SPICTRL_AM [list $notmod] 2 } - global CONFIG_SPICTRL_ODMODE - if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_ODMODE $CONFIG_SPICTRL_ODMODE [list $notmod] 2 } - global CONFIG_SPICTRL_TWEN - if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_TWEN $CONFIG_SPICTRL_TWEN [list $notmod] 2 } - global CONFIG_SPICTRL_MAXWLEN - if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } - global CONFIG_SPICTRL_SYNCRAM - if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } - global tmpvar_32 - if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { - if { $tmpvar_32 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } - if { $tmpvar_32 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } - if { $tmpvar_32 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_33 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5862,6 +6065,14 @@ proc writeconfig {file1 file2} { if {($CONFIG_GPT_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GPT_WDOGEN $CONFIG_GPT_WDOGEN [list $notmod] 2 } global CONFIG_GPT_WDOG if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {write_hex $cfg $autocfg CONFIG_GPT_WDOG $CONFIG_GPT_WDOG $notmod } + global CONFIG_GRGPIO_ENABLE + write_tristate $cfg $autocfg CONFIG_GRGPIO_ENABLE $CONFIG_GRGPIO_ENABLE [list $notmod] 2 + global CONFIG_GRGPIO_WIDTH + if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRGPIO_WIDTH $CONFIG_GRGPIO_WIDTH $notmod } + global CONFIG_GRGPIO_IMASK + if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_GRGPIO_IMASK $CONFIG_GRGPIO_IMASK $notmod } + global CONFIG_I2C_ENABLE + write_tristate $cfg $autocfg CONFIG_I2C_ENABLE $CONFIG_I2C_ENABLE [list $notmod] 2 write_comment $cfg $autocfg "Keybord and VGA interface" global CONFIG_KBD_ENABLE write_tristate $cfg $autocfg CONFIG_KBD_ENABLE $CONFIG_KBD_ENABLE [list $notmod] 2 @@ -5869,17 +6080,54 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_VGA_ENABLE $CONFIG_VGA_ENABLE [list $notmod] 2 global CONFIG_SVGA_ENABLE if {($CONFIG_VGA_ENABLE == 0)} then {write_tristate $cfg $autocfg CONFIG_SVGA_ENABLE $CONFIG_SVGA_ENABLE [list $notmod] 2 } - write_comment $cfg $autocfg "Gleichmann Options " - global CONFIG_AHB2HPI_ENABLE - write_tristate $cfg $autocfg CONFIG_AHB2HPI_ENABLE $CONFIG_AHB2HPI_ENABLE [list $notmod] 2 - global CONFIG_ADCDAC_ENABLE - write_tristate $cfg $autocfg CONFIG_ADCDAC_ENABLE $CONFIG_ADCDAC_ENABLE [list $notmod] 2 - global CONFIG_SPI_OC_ENABLE - write_tristate $cfg $autocfg CONFIG_SPI_OC_ENABLE $CONFIG_SPI_OC_ENABLE [list $notmod] 2 - global CONFIG_MULTIIO_ENABLE - write_tristate $cfg $autocfg CONFIG_MULTIIO_ENABLE $CONFIG_MULTIIO_ENABLE [list $notmod] 2 - global CONFIG_AC97_OC_ENABLE - write_tristate $cfg $autocfg CONFIG_AC97_OC_ENABLE $CONFIG_AC97_OC_ENABLE [list $notmod] 2 + write_comment $cfg $autocfg "SPI" + write_comment $cfg $autocfg "SPI memory controller " + global CONFIG_SPIMCTRL + write_tristate $cfg $autocfg CONFIG_SPIMCTRL $CONFIG_SPIMCTRL [list $notmod] 2 + global CONFIG_SPIMCTRL_SDCARD + if {($CONFIG_SPIMCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_SDCARD $CONFIG_SPIMCTRL_SDCARD [list $notmod] 2 } + global CONFIG_SPIMCTRL_READCMD + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_hex $cfg $autocfg CONFIG_SPIMCTRL_READCMD $CONFIG_SPIMCTRL_READCMD $notmod } + global CONFIG_SPIMCTRL_DUMMYBYTE + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUMMYBYTE $CONFIG_SPIMCTRL_DUMMYBYTE [list $notmod] 2 } + global CONFIG_SPIMCTRL_DUALOUTPUT + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUALOUTPUT $CONFIG_SPIMCTRL_DUALOUTPUT [list $notmod] 2 } + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_hex $cfg $autocfg CONFIG_SPIMCTRL_OFFSET $CONFIG_SPIMCTRL_OFFSET $notmod } + global CONFIG_SPIMCTRL_SCALER + if {($CONFIG_SPIMCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SPIMCTRL_SCALER $CONFIG_SPIMCTRL_SCALER $notmod } + global CONFIG_SPIMCTRL_ASCALER + if {($CONFIG_SPIMCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SPIMCTRL_ASCALER $CONFIG_SPIMCTRL_ASCALER $notmod } + global CONFIG_SPIMCTRL_PWRUPCNT + if {($CONFIG_SPIMCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SPIMCTRL_PWRUPCNT $CONFIG_SPIMCTRL_PWRUPCNT $notmod } + write_comment $cfg $autocfg "SPI controller(s) " + global CONFIG_SPICTRL_ENABLE + write_tristate $cfg $autocfg CONFIG_SPICTRL_ENABLE $CONFIG_SPICTRL_ENABLE [list $notmod] 2 + global CONFIG_SPICTRL_NUM + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_NUM $CONFIG_SPICTRL_NUM $notmod } + global CONFIG_SPICTRL_SLVS + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_SLVS $CONFIG_SPICTRL_SLVS $notmod } + global CONFIG_SPICTRL_FIFO + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_FIFO $CONFIG_SPICTRL_FIFO $notmod } + global CONFIG_SPICTRL_SLVREG + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SLVREG $CONFIG_SPICTRL_SLVREG [list $notmod] 2 } + global CONFIG_SPICTRL_ASEL + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_ASEL $CONFIG_SPICTRL_ASEL [list $notmod] 2 } + global CONFIG_SPICTRL_AM + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_AM $CONFIG_SPICTRL_AM [list $notmod] 2 } + global CONFIG_SPICTRL_ODMODE + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_ODMODE $CONFIG_SPICTRL_ODMODE [list $notmod] 2 } + global CONFIG_SPICTRL_TWEN + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_TWEN $CONFIG_SPICTRL_TWEN [list $notmod] 2 } + global CONFIG_SPICTRL_MAXWLEN + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } + global CONFIG_SPICTRL_SYNCRAM + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } + global tmpvar_32 + if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { + if { $tmpvar_32 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -5924,7 +6172,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5934,6 +6183,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5952,8 +6203,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -6036,11 +6292,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -6061,33 +6319,15 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 global CONFIG_DSU_ETHSZ8; set CONFIG_DSU_ETHSZ8 0 global CONFIG_DSU_ETHSZ16; set CONFIG_DSU_ETHSZ16 0 - global CONFIG_GRUSB_DCL_ULPI; set CONFIG_GRUSB_DCL_ULPI 0 - global CONFIG_GRUSB_DCL_UTMI8; set CONFIG_GRUSB_DCL_UTMI8 0 - global CONFIG_GRUSB_DCL_UTMI16; set CONFIG_GRUSB_DCL_UTMI16 0 - global CONFIG_SRCTRL_SRBANKS1; set CONFIG_SRCTRL_SRBANKS1 0 - global CONFIG_SRCTRL_SRBANKS2; set CONFIG_SRCTRL_SRBANKS2 0 - global CONFIG_SRCTRL_SRBANKS3; set CONFIG_SRCTRL_SRBANKS3 0 - global CONFIG_SRCTRL_SRBANKS4; set CONFIG_SRCTRL_SRBANKS4 0 - global CONFIG_SRCTRL_SRBANKS5; set CONFIG_SRCTRL_SRBANKS5 0 - global CONFIG_SRCTRL_BANKSZ0; set CONFIG_SRCTRL_BANKSZ0 0 - global CONFIG_SRCTRL_BANKSZ1; set CONFIG_SRCTRL_BANKSZ1 0 - global CONFIG_SRCTRL_BANKSZ2; set CONFIG_SRCTRL_BANKSZ2 0 - global CONFIG_SRCTRL_BANKSZ3; set CONFIG_SRCTRL_BANKSZ3 0 - global CONFIG_SRCTRL_BANKSZ4; set CONFIG_SRCTRL_BANKSZ4 0 - global CONFIG_SRCTRL_BANKSZ5; set CONFIG_SRCTRL_BANKSZ5 0 - global CONFIG_SRCTRL_BANKSZ6; set CONFIG_SRCTRL_BANKSZ6 0 - global CONFIG_SRCTRL_BANKSZ7; set CONFIG_SRCTRL_BANKSZ7 0 - global CONFIG_SRCTRL_BANKSZ8; set CONFIG_SRCTRL_BANKSZ8 0 - global CONFIG_SRCTRL_BANKSZ9; set CONFIG_SRCTRL_BANKSZ9 0 - global CONFIG_SRCTRL_BANKSZ10; set CONFIG_SRCTRL_BANKSZ10 0 - global CONFIG_SRCTRL_BANKSZ11; set CONFIG_SRCTRL_BANKSZ11 0 - global CONFIG_SRCTRL_BANKSZ12; set CONFIG_SRCTRL_BANKSZ12 0 - global CONFIG_SRCTRL_BANKSZ13; set CONFIG_SRCTRL_BANKSZ13 0 global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0 global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0 global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0 @@ -6100,15 +6340,15 @@ proc clear_choices { } { global CONFIG_GRETH_FIFO16; set CONFIG_GRETH_FIFO16 0 global CONFIG_GRETH_FIFO32; set CONFIG_GRETH_FIFO32 0 global CONFIG_GRETH_FIFO64; set CONFIG_GRETH_FIFO64 0 - global CONFIG_SPICTRL_NOFT; set CONFIG_SPICTRL_NOFT 0 - global CONFIG_SPICTRL_DMRFT; set CONFIG_SPICTRL_DMRFT 0 - global CONFIG_SPICTRL_TMRFT; set CONFIG_SPICTRL_TMRFT 0 global CONFIG_UA1_FIFO1; set CONFIG_UA1_FIFO1 0 global CONFIG_UA1_FIFO2; set CONFIG_UA1_FIFO2 0 global CONFIG_UA1_FIFO4; set CONFIG_UA1_FIFO4 0 global CONFIG_UA1_FIFO8; set CONFIG_UA1_FIFO8 0 global CONFIG_UA1_FIFO16; set CONFIG_UA1_FIFO16 0 global CONFIG_UA1_FIFO32; set CONFIG_UA1_FIFO32 0 + global CONFIG_SPICTRL_NOFT; set CONFIG_SPICTRL_NOFT 0 + global CONFIG_SPICTRL_DMRFT; set CONFIG_SPICTRL_DMRFT 0 + global CONFIG_SPICTRL_TMRFT; set CONFIG_SPICTRL_TMRFT 0 } @@ -6185,8 +6425,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -6205,6 +6447,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -6245,360 +6491,350 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "ULPI" - global CONFIG_GRUSB_DCL_ULPI - if { $CONFIG_GRUSB_DCL_ULPI == 1 } then { set tmpvar_27 "ULPI" } - global CONFIG_GRUSB_DCL_UTMI8 - if { $CONFIG_GRUSB_DCL_UTMI8 == 1 } then { set tmpvar_27 "UTMI/UTMI+8-bit" } - global CONFIG_GRUSB_DCL_UTMI16 - if { $CONFIG_GRUSB_DCL_UTMI16 == 1 } then { set tmpvar_27 "UTMI/UTMI+16-bit" } - global tmpvar_28 - set tmpvar_28 "1" - global CONFIG_SRCTRL_SRBANKS1 - if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_28 "1" } - global CONFIG_SRCTRL_SRBANKS2 - if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_28 "2" } - global CONFIG_SRCTRL_SRBANKS3 - if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_28 "3" } - global CONFIG_SRCTRL_SRBANKS4 - if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_28 "4" } - global CONFIG_SRCTRL_SRBANKS5 - if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_28 "5" } + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } global tmpvar_29 - set tmpvar_29 "0" - global CONFIG_SRCTRL_BANKSZ0 - if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_29 "8" } - global CONFIG_SRCTRL_BANKSZ1 - if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_29 "16" } - global CONFIG_SRCTRL_BANKSZ2 - if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_29 "32" } - global CONFIG_SRCTRL_BANKSZ3 - if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_29 "64" } - global CONFIG_SRCTRL_BANKSZ4 - if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_29 "128" } - global CONFIG_SRCTRL_BANKSZ5 - if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_29 "256" } - global CONFIG_SRCTRL_BANKSZ6 - if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_29 "512" } - global CONFIG_SRCTRL_BANKSZ7 - if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_29 "1024" } - global CONFIG_SRCTRL_BANKSZ8 - if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_29 "2048" } - global CONFIG_SRCTRL_BANKSZ9 - if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_29 "4096" } - global CONFIG_SRCTRL_BANKSZ10 - if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_29 "8192" } - global CONFIG_SRCTRL_BANKSZ11 - if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_29 "16384" } - global CONFIG_SRCTRL_BANKSZ12 - if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_29 "32768" } - global CONFIG_SRCTRL_BANKSZ13 - if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_29 "65536" } - global tmpvar_30 - set tmpvar_30 "4" + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_30 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_30 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_30 "64" } - global tmpvar_31 - set tmpvar_31 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_31 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_31 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_31 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_31 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_31 "64" } + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" + global CONFIG_UA1_FIFO1 + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } + global CONFIG_UA1_FIFO2 + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } + global CONFIG_UA1_FIFO4 + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } + global CONFIG_UA1_FIFO8 + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } + global CONFIG_UA1_FIFO16 + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } + global CONFIG_UA1_FIFO32 + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } global tmpvar_32 set tmpvar_32 "None" global CONFIG_SPICTRL_NOFT @@ -6607,28 +6843,16 @@ proc update_choices { } { if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_32 "Parity-DMR" } global CONFIG_SPICTRL_TMRFT if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_32 "TMR" } - global tmpvar_33 - set tmpvar_33 "1" - global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_33 "1" } - global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_33 "2" } - global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_33 "4" } - global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_33 "8" } - global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_33 "16" } - global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_33 "32" } } proc update_define_mainmenu {} { global CONFIG_MODULES - global CONFIG_MCTRL_RMW + global CONFIG_LEON3FT_PRESENT + global CONFIG_HAS_SHARED_GRFPU global CONSTANT_Y - set CONFIG_MCTRL_RMW $CONSTANT_Y + set CONFIG_LEON3FT_PRESENT $CONSTANT_Y + set CONFIG_HAS_SHARED_GRFPU $CONSTANT_Y } diff --git a/designs/leon3-xilinx-kc705/leon3mp.vhd b/designs/leon3-xilinx-kc705/leon3mp.vhd new file mode 100644 index 00000000..ac0f7f5a --- /dev/null +++ b/designs/leon3-xilinx-kc705/leon3mp.vhd @@ -0,0 +1,644 @@ +----------------------------------------------------------------------------- +-- LEON3 Xilinx KC705 Demonstration design +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; +library grlib, techmap; +use grlib.amba.all; +use grlib.stdlib.all; +use techmap.gencomp.all; +use techmap.allclkgen.all; +library gaisler; +use gaisler.memctrl.all; +use gaisler.leon3.all; +use gaisler.uart.all; +use gaisler.misc.all; +use gaisler.i2c.all; +use gaisler.net.all; +use gaisler.jtag.all; +-- pragma translate_off +use gaisler.sim.all; +library unisim; +use unisim.all; +-- pragma translate_on + + +library esa; +use esa.memoryctrl.all; + +use work.config.all; + +entity leon3mp is + generic ( + fabtech : integer := CFG_FABTECH; + memtech : integer := CFG_MEMTECH; + padtech : integer := CFG_PADTECH; + clktech : integer := CFG_CLKTECH; + disas : integer := CFG_DISAS; -- Enable disassembly to console + dbguart : integer := CFG_DUART; -- Print UART on console + pclow : integer := CFG_PCLOW; + testahb : boolean := false; + SIM_BYPASS_INIT_CAL : string := "OFF"; + SIMULATION : string := "FALSE"; + USE_MIG_INTERFACE_MODEL : boolean := false + ); + port ( + reset : in std_ulogic; + clk200p : in std_ulogic; -- 200 MHz clock + clk200n : in std_ulogic; -- 200 MHz clock + address : out std_logic_vector(25 downto 0); + data : inout std_logic_vector(15 downto 0); + oen : out std_ulogic; + writen : out std_ulogic; + romsn : out std_logic; + adv : out std_logic; + ddr3_dq : inout std_logic_vector(63 downto 0); + ddr3_dqs_p : inout std_logic_vector(7 downto 0); + ddr3_dqs_n : inout std_logic_vector(7 downto 0); + ddr3_addr : out std_logic_vector(13 downto 0); + ddr3_ba : out std_logic_vector(2 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_ck_p : out std_logic_vector(0 downto 0); + ddr3_ck_n : out std_logic_vector(0 downto 0); + ddr3_cke : out std_logic_vector(0 downto 0); + ddr3_cs_n : out std_logic_vector(0 downto 0); + ddr3_dm : out std_logic_vector(7 downto 0); + ddr3_odt : out std_logic_vector(0 downto 0); + dsurx : in std_ulogic; + dsutx : out std_ulogic; + dsuctsn : in std_ulogic; + dsurtsn : out std_ulogic; + button : in std_logic_vector(2 downto 0); + switch : inout std_logic_vector(3 downto 0); + led : out std_logic_vector(6 downto 0); + iic_scl : inout std_ulogic; + iic_sda : inout std_ulogic + ); +end; + +architecture rtl of leon3mp is + +component ahb2mig_series7 + generic( + hindex : integer := 0; + haddr : integer := 0; + hmask : integer := 16#f00#; + pindex : integer := 0; + paddr : integer := 0; + pmask : integer := 16#fff#; + SIM_BYPASS_INIT_CAL : string := "OFF"; + SIMULATION : string := "FALSE"; + USE_MIG_INTERFACE_MODEL : boolean := false + ); + port( + ddr3_dq : inout std_logic_vector(63 downto 0); + ddr3_dqs_p : inout std_logic_vector(7 downto 0); + ddr3_dqs_n : inout std_logic_vector(7 downto 0); + ddr3_addr : out std_logic_vector(13 downto 0); + ddr3_ba : out std_logic_vector(2 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_ck_p : out std_logic_vector(0 downto 0); + ddr3_ck_n : out std_logic_vector(0 downto 0); + ddr3_cke : out std_logic_vector(0 downto 0); + ddr3_cs_n : out std_logic_vector(0 downto 0); + ddr3_dm : out std_logic_vector(7 downto 0); + ddr3_odt : out std_logic_vector(0 downto 0); + ahbso : out ahb_slv_out_type; + ahbsi : in ahb_slv_in_type; + apbi : in apb_slv_in_type; + apbo : out apb_slv_out_type; + calib_done : out std_logic; + rst_n_syn : in std_logic; + rst_n_async : in std_logic; + clk_amba : in std_logic; + sys_clk_p : in std_logic; + sys_clk_n : in std_logic; + ui_clk : out std_logic; + ui_clk_sync_rst : out std_logic + ); +end component ; + +component ddr_dummy + port ( + ddr_dq : inout std_logic_vector(63 downto 0); + ddr_dqs : inout std_logic_vector(7 downto 0); + ddr_dqs_n : inout std_logic_vector(7 downto 0); + ddr_addr : out std_logic_vector(13 downto 0); + ddr_ba : out std_logic_vector(2 downto 0); + ddr_ras_n : out std_logic; + ddr_cas_n : out std_logic; + ddr_we_n : out std_logic; + ddr_reset_n : out std_logic; + ddr_ck_p : out std_logic_vector(0 downto 0); + ddr_ck_n : out std_logic_vector(0 downto 0); + ddr_cke : out std_logic_vector(0 downto 0); + ddr_cs_n : out std_logic_vector(0 downto 0); + ddr_dm : out std_logic_vector(7 downto 0); + ddr_odt : out std_logic_vector(0 downto 0) + ); +end component ; + +constant maxahbm : integer := CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG; +constant maxahbs : integer := 1+CFG_DSU+CFG_MCTRL_LEON2+CFG_AHBROMEN+CFG_AHBRAMEN+2; +constant maxapbs : integer := CFG_IRQ3_ENABLE+CFG_GPT_ENABLE+CFG_GRGPIO_ENABLE+CFG_AHBSTAT+CFG_AHBSTAT; + +signal vcc, gnd : std_logic; +signal memi : memory_in_type; +signal memo : memory_out_type; +signal wpo : wprot_out_type; +signal sdi : sdctrl_in_type; +signal sdo : sdram_out_type; +signal sdo2, sdo3 : sdctrl_out_type; + +signal apbi : apb_slv_in_type; +signal apbo : apb_slv_out_vector := (others => apb_none); +signal ahbsi : ahb_slv_in_type; +signal ahbso : ahb_slv_out_vector := (others => ahbs_none); +signal ahbmi : ahb_mst_in_type; +signal vahbmi : ahb_mst_in_type; +signal ahbmo : ahb_mst_out_vector := (others => ahbm_none); +signal vahbmo : ahb_mst_out_type; + +signal ui_clk : std_ulogic; +signal clkm, rstn, rstraw, sdclkl : std_ulogic; +signal clk_200 : std_ulogic; +signal clk25, clk40, clk65 : std_ulogic; + +signal cgi, cgi2 : clkgen_in_type; +signal cgo, cgo2 : clkgen_out_type; +signal u1i, u2i, dui : uart_in_type; +signal u1o, u2o, duo : uart_out_type; + +signal irqi : irq_in_vector(0 to CFG_NCPU-1); +signal irqo : irq_out_vector(0 to CFG_NCPU-1); + +signal dbgi : l3_debug_in_vector(0 to CFG_NCPU-1); +signal dbgo : l3_debug_out_vector(0 to CFG_NCPU-1); + +signal dsui : dsu_in_type; +signal dsuo : dsu_out_type; + +signal rxd1 : std_logic; +signal txd1 : std_logic; + +signal ethi : eth_in_type; +signal etho : eth_out_type; +signal egtx_clk :std_ulogic; +signal negtx_clk :std_ulogic; + +signal gpti : gptimer_in_type; +signal gpto : gptimer_out_type; + +signal gpioi : gpio_in_type; +signal gpioo : gpio_out_type; + +signal clklock, elock, ulock : std_ulogic; + +signal lock, calib_done, clkml, lclk, rst, ndsuact : std_ulogic; +signal tck, tckn, tms, tdi, tdo : std_ulogic; + +signal lcd_datal : std_logic_vector(11 downto 0); +signal lcd_hsyncl, lcd_vsyncl, lcd_del, lcd_reset_bl : std_ulogic; + +signal i2ci, dvi_i2ci : i2c_in_type; +signal i2co, dvi_i2co : i2c_out_type; + +constant BOARD_FREQ : integer := 200000; -- input frequency in KHz +constant CPU_FREQ : integer := BOARD_FREQ * CFG_CLKMUL / CFG_CLKDIV; -- cpu frequency in KHz + +signal stati : ahbstat_in_type; + +signal fpi : grfpu_in_vector_type; +signal fpo : grfpu_out_vector_type; + +attribute keep : boolean; +attribute syn_keep : string; +attribute keep of clkm : signal is true; + +begin + +---------------------------------------------------------------------- +--- Reset and Clock generation ------------------------------------- +---------------------------------------------------------------------- + + vcc <= '1'; gnd <= '0'; + cgi.pllctrl <= "00"; cgi.pllrst <= rstraw; + + clk_gen : if (CFG_MIG_SERIES7 = 0) generate + clk_pad_ds : clkpad_ds generic map (tech => padtech, level => sstl, voltage => x15v) port map (clk200p, clk200n, lclk); + clkgen0 : clkgen -- clock generator + generic map (clktech, CFG_CLKMUL, CFG_CLKDIV, CFG_MCTRL_SDEN, + CFG_CLK_NOFB, 0, 0, 0, BOARD_FREQ) + port map (lclk, lclk, clkm, open, open, open, open, cgi, cgo, open, open, open); + end generate; + + reset_pad : inpad generic map (tech => padtech, level => cmos, voltage => x15v) port map (reset, rst); + rst0 : rstgen -- reset generator + generic map (acthigh => 1) + port map (rst, clkm, lock, rstn, rstraw); + lock <= calib_done when CFG_MIG_SERIES7 = 1 else cgo.clklock; + +---------------------------------------------------------------------- +--- AHB CONTROLLER -------------------------------------------------- +---------------------------------------------------------------------- + + ahb0 : ahbctrl -- AHB arbiter/multiplexer + generic map (defmast => CFG_DEFMST, split => CFG_SPLIT, + rrobin => CFG_RROBIN, ioaddr => CFG_AHBIO, fpnpen => CFG_FPNPEN, + nahbm => maxahbm, nahbs => maxahbs) + port map (rstn, clkm, ahbmi, ahbmo, ahbsi, ahbso); + +---------------------------------------------------------------------- +--- LEON3 processor and DSU ----------------------------------------- +---------------------------------------------------------------------- + + nosh : if CFG_GRFPUSH = 0 generate + cpu : for i in 0 to CFG_NCPU-1 generate + l3ft : if CFG_LEON3FT_EN /= 0 generate + leon3ft0 : leon3ft -- LEON3 processor + generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, + 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, + CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, + CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, + CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, + CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1, + CFG_IUFT_EN, CFG_FPUFT_EN, CFG_CACHE_FT_EN, CFG_RF_ERRINJ, + CFG_CACHE_ERRINJ, CFG_DFIXED, CFG_LEON3_NETLIST, CFG_SCAN, CFG_MMU_PAGE) + port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, + irqi(i), irqo(i), dbgi(i), dbgo(i), clkm); + end generate; + + l3s : if CFG_LEON3FT_EN = 0 generate + u0 : leon3s -- LEON3 processor + generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, + 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, + CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, + CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, + CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, + CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1, + CFG_DFIXED, CFG_SCAN, CFG_MMU_PAGE, CFG_BP) + port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, + irqi(i), irqo(i), dbgi(i), dbgo(i)); + end generate; + end generate; + end generate; + + sh : if CFG_GRFPUSH = 1 generate + cpu : for i in 0 to CFG_NCPU-1 generate + l3ft : if CFG_LEON3FT_EN /= 0 generate + leon3ft0 : leon3ftsh -- LEON3 processor + generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, + 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, + CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, + CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, + CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, + CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1, + CFG_IUFT_EN, CFG_FPUFT_EN, CFG_CACHE_FT_EN, CFG_RF_ERRINJ, + CFG_CACHE_ERRINJ, CFG_DFIXED, CFG_LEON3_NETLIST, CFG_SCAN, CFG_MMU_PAGE) + port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, + irqi(i), irqo(i), dbgi(i), dbgo(i), clkm, fpi(i), fpo(i)); + + end generate; + l3s : if CFG_LEON3FT_EN = 0 generate + u0 : leon3sh -- LEON3 processor + generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, + 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, + CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, + CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, + CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, + CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1, + CFG_DFIXED, CFG_SCAN, CFG_MMU_PAGE) + port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, + irqi(i), irqo(i), dbgi(i), dbgo(i), fpi(i), fpo(i)); + end generate; + end generate; + + grfpush0 : grfpushwx generic map ((CFG_FPU-1), CFG_NCPU, fabtech) + port map (clkm, rstn, fpi, fpo); + + end generate; + + led1_pad : outpad generic map (tech => padtech, level => cmos, voltage => x15v) port map (led(1), dbgo(0).error); + + dsugen : if CFG_DSU = 1 generate + dsu0 : dsu3 -- LEON3 Debug Support Unit + generic map (hindex => 2, haddr => 16#900#, hmask => 16#F00#, + ncpu => CFG_NCPU, tbits => 30, tech => memtech, irq => 0, kbytes => CFG_ATBSZ) + port map (rstn, clkm, ahbmi, ahbsi, ahbso(2), dbgo, dbgi, dsui, dsuo); + dsui.enable <= '1'; + dsui_break_pad : inpad generic map (level => cmos, voltage => x15v, tech => padtech) port map (button(2), dsui.break); + dsuact_pad : outpad generic map (tech => padtech, level => cmos, voltage => x15v) port map (led(0), ndsuact); + ndsuact <= not dsuo.active; + end generate; + + nodsu : if CFG_DSU = 0 generate + dsuo.tstop <= '0'; dsuo.active <= '0'; ahbso(2) <= ahbs_none; + end generate; + + -- Debug UART + dcomgen : if CFG_AHB_UART = 1 generate + dcom0 : ahbuart + generic map (hindex => CFG_NCPU, pindex => 7, paddr => 7) + port map (rstn, clkm, dui, duo, apbi, apbo(7), ahbmi, ahbmo(CFG_NCPU)); + dui.extclk <= '0'; + end generate; + + nouah : if CFG_AHB_UART = 0 generate + apbo(7) <= apb_none; + duo.txd <= '0'; + duo.rtsn <= '0'; + dui.extclk <= '0'; + end generate; + + dsurx_pad : inpad generic map (level => cmos, voltage => x25v, tech => padtech) port map (dsurx, dui.rxd); + dsutx_pad : outpad generic map (level => cmos, voltage => x25v, tech => padtech) port map (dsutx, duo.txd); + dsuctsn_pad : inpad generic map (level => cmos, voltage => x25v, tech => padtech) port map (dsuctsn, dui.ctsn); + dsurtsn_pad : outpad generic map (level => cmos, voltage => x25v, tech => padtech) port map (dsurtsn, duo.rtsn); + + + ahbjtaggen0 :if CFG_AHB_JTAG = 1 generate + ahbjtag0 : ahbjtag generic map(tech => fabtech, hindex => CFG_NCPU+1) + port map(rstn, clkm, tck, tms, tdi, tdo, ahbmi, ahbmo(CFG_NCPU+1), + open, open, open, open, open, open, open, gnd); + end generate; + + nojtag : if CFG_AHB_JTAG = 0 generate apbo(CFG_NCPU+1) <= apb_none; end generate; + +---------------------------------------------------------------------- +--- Memory controllers ---------------------------------------------- +---------------------------------------------------------------------- + + memi.writen <= '1'; memi.wrn <= "1111"; memi.bwidth <= "01"; + memi.brdyn <= '0'; memi.bexcn <= '1'; + + mctrl_gen : if CFG_MCTRL_LEON2 /= 0 generate + mctrl0 : mctrl generic map (hindex => 0, pindex => 0, + paddr => 0, srbanks => 2, ram8 => CFG_MCTRL_RAM8BIT, + ram16 => CFG_MCTRL_RAM16BIT, sden => CFG_MCTRL_SDEN, + invclk => CFG_CLK_NOFB, sepbus => CFG_MCTRL_SEPBUS, + pageburst => CFG_MCTRL_PAGE, rammask => 0, iomask => 0) + port map (rstn, clkm, memi, memo, ahbsi, ahbso(0), apbi, apbo(0), wpo, sdo); + + addr_pad : outpadv generic map (width => 26, tech => padtech, level => cmos, voltage => x25v) + port map (address(25 downto 0), memo.address(26 downto 1)); + roms_pad : outpad generic map (tech => padtech, level => cmos, voltage => x25v) + port map (romsn, memo.romsn(0)); + oen_pad : outpad generic map (tech => padtech, level => cmos, voltage => x25v) + port map (oen, memo.oen); + adv_pad : outpad generic map (tech => padtech, level => cmos, voltage => x25v) + port map (adv, '0'); + wri_pad : outpad generic map (tech => padtech, level => cmos, voltage => x25v) + port map (writen, memo.writen); + data_pad : iopadvv generic map (tech => padtech, width => 16, level => cmos, voltage => x25v) + port map (data(15 downto 0), memo.data(31 downto 16), + memo.vbdrive(31 downto 16), memi.data(31 downto 16)); + end generate; + +---------------------------------------------------------------------- +--- DDR3 memory controller ------------------------------------------ +---------------------------------------------------------------------- + + mig_gen : if (CFG_MIG_SERIES7 = 1) generate + ddrc : ahb2mig_series7 generic map( + hindex => 4, haddr => 16#400#, hmask => 16#F80#, + pindex => 4, paddr => 4, + SIM_BYPASS_INIT_CAL => SIM_BYPASS_INIT_CAL, + SIMULATION => SIMULATION, USE_MIG_INTERFACE_MODEL => USE_MIG_INTERFACE_MODEL) + port map( + ddr3_dq => ddr3_dq, + ddr3_dqs_p => ddr3_dqs_p, + ddr3_dqs_n => ddr3_dqs_n, + ddr3_addr => ddr3_addr, + ddr3_ba => ddr3_ba, + ddr3_ras_n => ddr3_ras_n, + ddr3_cas_n => ddr3_cas_n, + ddr3_we_n => ddr3_we_n, + ddr3_reset_n => ddr3_reset_n, + ddr3_ck_p => ddr3_ck_p, + ddr3_ck_n => ddr3_ck_n, + ddr3_cke => ddr3_cke, + ddr3_cs_n => ddr3_cs_n, + ddr3_dm => ddr3_dm, + ddr3_odt => ddr3_odt, + ahbsi => ahbsi, + ahbso => ahbso(4), + apbi => apbi, + apbo => apbo(4), + calib_done => calib_done, + rst_n_syn => rstn, + rst_n_async => rstraw, + clk_amba => clkm, + sys_clk_p => clk200p, + sys_clk_n => clk200n, + ui_clk => clkm, + ui_clk_sync_rst => open + ); + end generate; + + no_mig_gen : if (CFG_MIG_SERIES7 = 0) generate + ahbram0 : ahbram + generic map (hindex => 4, haddr => 16#400#, tech => CFG_MEMTECH, kbytes => 32) + port map ( rstn, clkm, ahbsi, ahbso(4)); + + ddrdummy0 : ddr_dummy + port map ( + ddr_dq => ddr3_dq, + ddr_dqs => ddr3_dqs_p, + ddr_dqs_n => ddr3_dqs_n, + ddr_addr => ddr3_addr, + ddr_ba => ddr3_ba, + ddr_ras_n => ddr3_ras_n, + ddr_cas_n => ddr3_cas_n, + ddr_we_n => ddr3_we_n, + ddr_reset_n => ddr3_reset_n, + ddr_ck_p => ddr3_ck_p, + ddr_ck_n => ddr3_ck_n, + ddr_cke => ddr3_cke, + ddr_cs_n => ddr3_cs_n, + ddr_dm => ddr3_dm, + ddr_odt => ddr3_odt + ); + + calib_done <= '1'; + end generate; + + led2_pad : outpad generic map (tech => padtech, level => cmos, voltage => x15v) + port map (led(2), calib_done); + led3_pad : outpad generic map (tech => padtech, level => cmos, voltage => x15v) + port map (led(3), lock); + led4_pad : outpad generic map (tech => padtech, level => cmos, voltage => x25v) + port map (led(4), ahbso(4).hready); + +---------------------------------------------------------------------- +--- I2C Controller-------------------------------------------- +---------------------------------------------------------------------- + + i2cm: if CFG_I2C_ENABLE = 1 generate -- I2C master + i2c0 : i2cmst + generic map (pindex => 8, paddr => 8, pmask => 16#FFF#, + pirq => 11, filter => 8) + port map (rstn, clkm, apbi, apbo(8), i2ci, i2co); + -- The EEK does not use a bi-directional line for the I2C clock + i2ci.scl <= i2co.scloen; -- No clock stretch possible + -- When SCL output enable is activated the line should go low + i2c_scl_pad : outpad generic map (tech => padtech, level => cmos, voltage => x25v) + port map (iic_scl, i2co.scloen); + i2c_sda_pad : iopad generic map (tech => padtech, level => cmos, voltage => x25v) + port map (iic_sda, i2co.sda, i2co.sdaoen, i2ci.sda); + end generate i2cm; + + +---------------------------------------------------------------------- +--- APB Bridge and various periherals ------------------------------- +---------------------------------------------------------------------- + + apb0 : apbctrl -- AHB/APB bridge + generic map (hindex => 1, haddr => CFG_APBADDR, nslaves => 16) + port map (rstn, clkm, ahbsi, ahbso(1), apbi, apbo ); + + irqctrl : if CFG_IRQ3_ENABLE /= 0 generate + irqctrl0 : irqmp -- interrupt controller + generic map (pindex => 2, paddr => 2, ncpu => CFG_NCPU) + port map (rstn, clkm, apbi, apbo(2), irqo, irqi); + end generate; + irq3 : if CFG_IRQ3_ENABLE = 0 generate + x : for i in 0 to CFG_NCPU-1 generate + irqi(i).irl <= "0000"; + end generate; + apbo(2) <= apb_none; + end generate; + + gpt : if CFG_GPT_ENABLE /= 0 generate + timer0 : gptimer -- timer unit + generic map (pindex => 3, paddr => 3, pirq => CFG_GPT_IRQ, + sepirq => CFG_GPT_SEPIRQ, sbits => CFG_GPT_SW, ntimers => CFG_GPT_NTIM, + nbits => CFG_GPT_TW, wdog => 0) + port map (rstn, clkm, apbi, apbo(3), gpti, gpto); + gpti.dhalt <= dsuo.tstop; gpti.extclk <= '0'; + end generate; + + nogpt : if CFG_GPT_ENABLE = 0 generate apbo(3) <= apb_none; end generate; + + gpio0 : if CFG_GRGPIO_ENABLE /= 0 generate -- GPIO unit + grgpio0: grgpio + generic map(pindex => 10, paddr => 10, imask => CFG_GRGPIO_IMASK, nbits => 7) + port map(rst => rstn, clk => clkm, apbi => apbi, apbo => apbo(10), + gpioi => gpioi, gpioo => gpioo); + pio_pads : for i in 0 to 3 generate + pio_pad : iopad generic map (tech => padtech, level => cmos, voltage => x25v) + port map (switch(i), gpioo.dout(i), gpioo.oen(i), gpioi.din(i)); + end generate; + pio_pads2 : for i in 4 to 5 generate + pio_pad : inpad generic map (tech => padtech, level => cmos, voltage => x15v) + port map (button(i-4), gpioi.din(i)); + end generate; + end generate; + + ua1 : if CFG_UART1_ENABLE /= 0 generate + uart1 : apbuart -- UART 1 + generic map (pindex => 1, paddr => 1, pirq => 2, console => dbguart, + fifosize => CFG_UART1_FIFO) + port map (rstn, clkm, apbi, apbo(1), u1i, u1o); + u1i.rxd <= rxd1; + u1i.ctsn <= '0'; + u1i.extclk <= '0'; + txd1 <= u1o.txd; + serrx_pad : outpad generic map (level => cmos, voltage => x25v, tech => padtech) + port map (led(5), rxd1); + sertx_pad : outpad generic map (level => cmos, voltage => x25v, tech => padtech) + port map (led(6), txd1); + end generate; + noua0 : if CFG_UART1_ENABLE = 0 generate apbo(1) <= apb_none; end generate; + + ahbs : if CFG_AHBSTAT = 1 generate -- AHB status register + ahbstat0 : ahbstat generic map (pindex => 15, paddr => 15, pirq => 7, + nftslv => CFG_AHBSTATN) + port map (rstn, clkm, ahbmi, ahbsi, stati, apbi, apbo(15)); + end generate; + +----------------------------------------------------------------------- +--- AHB ROM ---------------------------------------------------------- +----------------------------------------------------------------------- + + bpromgen : if CFG_AHBROMEN /= 0 generate + brom : entity work.ahbrom + generic map (hindex => 7, haddr => CFG_AHBRODDR, pipe => CFG_AHBROPIP) + port map ( rstn, clkm, ahbsi, ahbso(7)); + end generate; + +----------------------------------------------------------------------- +--- AHB RAM ---------------------------------------------------------- +----------------------------------------------------------------------- + + ocram : if CFG_AHBRAMEN = 1 generate + ahbram0 : ahbram generic map (hindex => 5, haddr => CFG_AHBRADDR, + tech => CFG_MEMTECH, kbytes => CFG_AHBRSZ) + port map ( rstn, clkm, ahbsi, ahbso(5)); + end generate; + +----------------------------------------------------------------------- +--- Test report module ---------------------------------------------- +----------------------------------------------------------------------- + + -- pragma translate_off + test0_gen : if (testahb = true) generate + test0 : ahbrep generic map (hindex => 3, haddr => 16#200#) + port map (rstn, clkm, ahbsi, ahbso(3)); + end generate; + -- pragma translate_on + + test1_gen : if (testahb = false) generate + ahbram0 : ahbram generic map (hindex => 3, haddr => 16#200#, + tech => CFG_MEMTECH, kbytes => CFG_AHBRSZ) + port map ( rstn, clkm, ahbsi, ahbso(3)); + end generate; + + ----------------------------------------------------------------------- + --- Drive unused bus elements --------------------------------------- + ----------------------------------------------------------------------- + + nam1 : for i in (CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_GRETH+1) to NAHBMST-1 generate + ahbmo(i) <= ahbm_none; + end generate; + + ----------------------------------------------------------------------- + --- Boot message ---------------------------------------------------- + ----------------------------------------------------------------------- + + -- pragma translate_off + x : report_version + generic map ( + msg1 => "LEON3 Xilinx KC705 Demonstration design", + msg2 => "GRLIB Version " & tost(LIBVHDL_VERSION/1000) & "." & tost((LIBVHDL_VERSION mod 1000)/100) + & "." & tost(LIBVHDL_VERSION mod 100) & ", build " & tost(LIBVHDL_BUILD), + msg3 => "Target technology: " & tech_table(fabtech) & ", memory library: " & tech_table(memtech), + mdel => 1 + ); + -- pragma translate_on + end; + diff --git a/designs/leon3-xilinx-kc705/mig_interface_model.v b/designs/leon3-xilinx-kc705/mig_interface_model.v new file mode 100644 index 00000000..9496c788 --- /dev/null +++ b/designs/leon3-xilinx-kc705/mig_interface_model.v @@ -0,0 +1,168 @@ + +/***************************************************************************** +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Entity: mig_interface_model +-- File: mig_interface_model.v +-- Author: Fredrik Ringhage - Aeroflex Gaisler AB +-- +-- This is a interface model for Xilinx Virtex-7 MIG used on eval board +-- VC707 and KC705. +-- +------------------------------------------------------------------------------- +*****************************************************************************/ + +`timescale 1ps/1ps + +module mig_interface_model + ( + // user interface signals + input [27:0] app_addr, + input [2:0] app_cmd, + input app_en, + input [511:0] app_wdf_data, + input app_wdf_end, + input [63:0] app_wdf_mask, + input app_wdf_wren, + output wire [511:0] app_rd_data, + output wire app_rd_data_end, + output wire app_rd_data_valid, + output wire app_rdy, + output wire app_wdf_rdy, + output reg ui_clk, + output reg ui_clk_sync_rst, + output reg init_calib_complete, + input sys_rst + ); + + parameter AddressSize = 28 - 12; + parameter WordSize = 512; + parameter MEM_SIZE = (1<> 4) + 0]; +// assign app_rd_data_hi = Mem[(app_addr_r >> 4) + 1]; +// assign app_rd_data_hi_data = {app_rd_data_hi[255:0],app_rd_data_lo[511:256]}; +// assign test = app_addr_r[3]; +// assign #100 app_rd_data = test ? app_rd_data_hi_data : app_rd_data_lo; + assign #100 app_rd_data = Mem[app_addr_r >> 3]; + + // Clear memory + initial + begin + for (k = 0; k < MEM_SIZE ; k = k + 1) + begin + Mem[k] = 512'd0; + end + end + + initial + begin + app_rd_data_valid_r = 1'b0; + app_rd_data_end_r = 1'b0; + app_rdy_r = 1'b1; + app_wdf_rdy_r = 1'b1; + init_calib_complete = 1'b0; + ui_clk_sync_rst = 1'b0; + ui_clk = 1'b0; + end + + // Generate clocks + always + begin + forever begin + #5000; + ui_clk = ~ui_clk; + end + end + + // Release reset and calibration + initial + begin + #10000; + $display("Reset release of simulation time is %d",$time); + @(posedge ui_clk) ui_clk_sync_rst = 1'b1; + #1000; + $display("Calibration release of simulation time is %d",$time); + @(posedge ui_clk) init_calib_complete = 1'b1; + end + + // Write Process + always@(posedge app_wdf_wren) + begin + #100; + for (k = 0; k < 511 ; k = k + 1) + begin + mask[k] = ~ app_wdf_mask[k >> 3]; + end + Mem[app_addr >> 3] = (app_wdf_data & mask) | (Mem[app_addr >> 3] & (~ mask) ); + #10000; + if (app_wdf_wren) begin + #100; + for (k = 0; k < 512 ; k = k + 1) + begin + mask[k] = ~ app_wdf_mask[k >> 3]; + end + Mem[app_addr >> 3] = (app_wdf_data & mask) | (Mem[app_addr >> 3] & (~ mask) ); + end + end + + // Read Process + always@(posedge app_en) + begin + #100; + if (app_cmd == 3'd1) begin + app_addr_r1 = app_addr; + #10000; + app_addr_r2 = app_addr; + #40000; + app_addr_r = app_addr_r1; + #100; + app_rd_data_valid_r = 1'b1; + #10000; + app_addr_r = app_addr_r2; + #10000; + app_rd_data_valid_r = 1'b0; + #10000; + end + end +endmodule diff --git a/designs/leon3-xilinx-kc705/preload_ddr3_dimm.do b/designs/leon3-xilinx-kc705/preload_ddr3_dimm.do new file mode 100644 index 00000000..c4ab1091 --- /dev/null +++ b/designs/leon3-xilinx-kc705/preload_ddr3_dimm.do @@ -0,0 +1,52 @@ +# Procedure to load memory from file +proc reload_mem {} { + # Load memory with system test and display memory + if {[examine /testbench/led(3)] == 1} { + if {[examine sim:/config@work/CFG_MIG_SERIES7] == 1} { + echo "Loading DDR3 memory with System Test" + if {[examine /testbench/USE_MIG_INTERFACE_MODEL] == FALSE} { + mem load -startaddress 0 -format hex -infile sdram_dimm1.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(0)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm2.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(1)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm3.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(2)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm4.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(3)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm5.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(4)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm6.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(5)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm7.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(6)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm8.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(7)/u1/memory + + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(0)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(1)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(2)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(3)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(4)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(5)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(6)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(7)/u1/address + + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(0)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(1)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(2)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(3)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(4)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(5)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(6)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(7)/u1/memory_used 1111111111111111 + } + + if {[examine /testbench/USE_MIG_INTERFACE_MODEL] == TRUE} { + echo "MIG Model found" + mem load -startaddress 0 -format hex -infile sdram_dimm_merge.hex -filltype value -filldata 1'b0 sim:/testbench/cpu/mig_gen/ddrc/gen_mig_model/MCB_model_inst/Mem + } + + #do wave.do + } + } +} + +set init_path /testbench/led(3); + +when -label when1 "$init_path'event and $init_path ='1'" { + reload_mem +} + +#run 2 ms diff --git a/designs/leon3-lattice-latticeECP3/prom.h b/designs/leon3-xilinx-kc705/prom.h similarity index 79% rename from designs/leon3-lattice-latticeECP3/prom.h rename to designs/leon3-xilinx-kc705/prom.h index 5be23f55..e283ab8b 100644 --- a/designs/leon3-lattice-latticeECP3/prom.h +++ b/designs/leon3-xilinx-kc705/prom.h @@ -1,5 +1,5 @@ -#define MCFG1 0x10380033 -#define MCFG2 0xe6B86e20 +#define MCFG1 0x10380133 +#define MCFG2 0xe6B86e60 #define MCFG3 0x000ff000 #define ASDCFG 0x80000000 #define DSDCFG 0xe6A06e60 diff --git a/designs/leon3-ge-hpe-mini/prom.srec b/designs/leon3-xilinx-kc705/prom.srec similarity index 75% rename from designs/leon3-ge-hpe-mini/prom.srec rename to designs/leon3-xilinx-kc705/prom.srec index bd8fcca3..a2497cbf 100755 --- a/designs/leon3-ge-hpe-mini/prom.srec +++ b/designs/leon3-xilinx-kc705/prom.srec @@ -23,15 +23,15 @@ S1130140FD18C000010000000100000001000000D3 S1130150010000000100000089A008420100000025 S113016001000000010000000100000010800005F3 S11301700100000001000000000000000000000079 -S1130180874440008730E01C8688E00F1280001608 -S11301900320000005040E008410A233C420400094 +S1130180874440008730E01C8688E00F1280001509 +S11301900320000005040E008410A133C420400095 S11301A00539AE1B8410A260C4206004050003FC62 S11301B0C420600882103860C40040008530A00C60 -S11301C0030000048210600980A04002128000062F -S11301D0033FFC00821061000539A81B8410A26053 -S11301E0C4204000050000808210000080A0E000D0 -S11301F002800005010000008200400210BFFFFCE5 -S11302008620E0013D1003FFBC17A3E0BC2780015A -S11302109C27A0600310000081C040000100000082 +S11301C0030000048210600980A040021280000530 +S11301D0032000000539A81B8410A260C42040003D +S11301E0050000808210000080A0E000028000056D +S11301F0010000008200400210BFFFFC8620E001E5 +S11302003D1003FFBC17A3E0BC2780019C27A0601E +S11302100310000081C04000010000000100000044 S113022000000000000000000000000000000000CA S9030000FC diff --git a/designs/leon3-ge-hpe-midi-ep2s180/sdram.srec b/designs/leon3-xilinx-kc705/sdram.srec similarity index 70% rename from designs/leon3-ge-hpe-midi-ep2s180/sdram.srec rename to designs/leon3-xilinx-kc705/sdram.srec index 926a7ff7..9eece58d 100755 --- a/designs/leon3-ge-hpe-midi-ep2s180/sdram.srec +++ b/designs/leon3-xilinx-kc705/sdram.srec @@ -1,14 +1,14 @@ S00D0000736472616D2E7372656300 -S31540000000881000000910006C81C1206C01000000BE -S31540000010A1480000A75000001080203BAC102001F2 +S31540000000881000000910006C81C122980100000090 +S31540000010A1480000A75000001080203EAC102001EF S3154000002091D0200001000000010000000100000006 S3154000003091D02000010000000100000001000000F6 -S31540000040A14800002910006B81C523A401000000CF -S31540000050A14800002910006981C522C8010000009E -S31540000060A14800002910006981C523340100000021 +S31540000040A14800002910006C81C521EC0100000088 +S31540000050A14800002910006981C522A401000000C2 +S31540000060A14800002910006981C523100100000045 S3154000007091D02000010000000100000001000000B6 S3154000008091D02000010000000100000001000000A6 -S31540000090A1480000A75000001080201BAC1020098A +S31540000090A1480000A75000001080201EAC10200987 S315400000A091D0200001000000010000000100000086 S315400000B091D0200001000000010000000100000076 S315400000C091D0200001000000010000000100000066 @@ -16,21 +16,21 @@ S315400000D091D0200001000000010000000100000056 S315400000E091D0200001000000010000000100000046 S315400000F091D0200001000000010000000100000036 S3154000010091D0200001000000010000000100000025 -S31540000110AE102001A148000010806A33A7500000AD -S31540000120AE102002A148000010806A2FA7500000A0 -S31540000130AE102003A148000010806A2BA750000093 -S31540000140AE102004A148000010806A27A750000086 -S31540000150AE102005A148000010806A23A750000079 -S31540000160AE102006A148000010806A1FA75000006C -S31540000170AE102007A148000010806A1BA75000005F -S31540000180AE102008A148000010806A17A750000052 -S31540000190AE102009A148000010806A13A750000045 -S315400001A0AE10200AA148000010806A0FA750000038 -S315400001B0AE10200BA148000010806A0BA75000002B -S315400001C0AE10200CA148000010806A07A75000001E -S315400001D0AE10200DA148000010806A03A750000011 -S315400001E0AE10200EA1480000108069FFA750000005 -S315400001F0AE10200FA1480000108069FBA7500000F8 +S31540000110AE102001A148000010806A2AA7500000B6 +S31540000120AE102002A148000010806A26A7500000A9 +S31540000130AE102003A148000010806A22A75000009C +S31540000140AE102004A148000010806A1EA75000008F +S31540000150AE102005A148000010806A1AA750000082 +S31540000160AE102006A148000010806A16A750000075 +S31540000170AE102007A148000010806A12A750000068 +S31540000180AE102008A148000010806A0EA75000005B +S31540000190AE102009A148000010806A0AA75000004E +S315400001A0AE10200AA148000010806A06A750000041 +S315400001B0AE10200BA148000010806A02A750000034 +S315400001C0AE10200CA1480000108069FEA750000028 +S315400001D0AE10200DA1480000108069FAA75000001B +S315400001E0AE10200EA1480000108069F6A75000000E +S315400001F0AE10200FA1480000108069F2A750000001 S3154000020091D0200001000000010000000100000024 S3154000021091D0200001000000010000000100000014 S3154000022091D0200001000000010000000100000004 @@ -129,10 +129,10 @@ S315400007E091D020000100000001000000010000003F S315400007F091D020000100000001000000010000002F S3154000080091D020000100000001000000010000001E S3154000081091D020000100000001000000010000000E -S31540000820A14800002910006A81C521080100000086 -S31540000830A1480000108067D9A750000001000000C1 +S31540000820A14800002910006A81C520E401000000AB +S31540000830A1480000108067D0A750000001000000CA S3154000084091D02000010000000100000001000000DE -S31540000850A14800002910006A81C520EC0100000073 +S31540000850A14800002910006A81C520C80100000097 S3154000086091D02000010000000100000001000000BE S3154000087091D02000010000000100000001000000AE S3154000088091D020000100000001000000010000009E @@ -255,250 +255,250 @@ S31540000FC091D0200001000000010000000100000057 S31540000FD091D0200001000000010000000100000047 S31540000FE091D0200001000000010000000100000037 S31540000FF091D0200001000000010000000100000027 -S315400010009DE3BFC0051001438410A0600710014452 -S315400010108610E188821000008620C00286A0E00883 -S3154000102036BFFFFFC038800311100144901221885B -S31540001030C02200004000666601000000400066666F -S315400010400100000040006818010000001110006D0A -S31540001050901221A040006166010000004000694AEC -S3154000106001000000400000430100000040006743CB -S315400010700100000081C7E00881E800009DE3BF98B9 -S3154000108023100143C20C606080A0600012800015EE -S315400010902110008010800005C204200C9FC3400030 -S315400010A0C224200CC204200CDA00400080A3600059 -S315400010B012BFFFFB82006004030000008210600044 -S315400010C080A0600002800006821020011110006D91 -S315400010D06FFFFBCC9012213082102001C22C606041 -S315400010E081C7E00881E800009DE3BF9881C7E0081A -S315400010F081E800009DE3BF98030000008210600075 -S315400011001110006D1310014380A060009012213031 -S3154000111002800004921260646FFFFBBA0100000077 -S315400011201B100144C203618880A060000280000950 -S31540001130B0136188030000008210600080A0600048 -S3154000114002800004010000006FFFFBAE81E8000052 -S315400011500100000081C7E00881E800009DE3BF98D8 -S3154000116081C7E00881E8000081C3E0080100000073 -S315400011709DE3BF9840000007010000004000014683 -S31540001180010000004000000E81E800000100000060 -S315400011909DE3BF98400000290100000080A2200086 -S315400011A01280000503100080D80060109A102001BC -S315400011B0DA23201081C7E00891E820000310008060 -S315400011C0D80060109A102001DA23201481C3E00869 -S315400011D09010200003100080DA006010D0234000F9 -S315400011E081C3E0089010200003100080DA006010F0 -S315400011F0D023600881C3E0089010200003100080CF -S31540001200DA006010D023600481C3E008901020000B -S3154000121013100080921260149010200081C3E008E1 -S31540001220D0EA4020901020001310008092126014E3 -S3154000123081C3E008D0224000914440009132201CF6 -S3154000124081C3E008900A200F81C3E008D0820020C5 -S315400012509010200C81C3E008D08200408210000824 -S3154000126080A20009148000039022000990224001C8 -S3154000127081C3E00801000000932A60028210200129 -S31540001280C22200099810200080A3000A1680000A96 -S3154000129096102001832B2002DA02000180A0000D67 -S315400012A0826020009803200180A3000A06BFFFFA4F -S315400012B0960AC00180A2E00002BFFFF49810200009 -S315400012C081C3E008010000009DE3BF98C2062010DC -S315400012D08330601CA0100018A400600180A4A00107 -S315400012E00280006CB0103FFF7FFFFFD4010000007A -S315400012F0AA100008912A20047FFFFFBC9002200715 -S315400013007FFFFFD40100000003020000808A000135 -S315400013100280005C010000009A05600182102001F5 -S315400013208328400D11100080C2242010901220A066 -S31540001330921000157FFFFFD1941000120310008019 -S3154000134082106018A12D6002C0204010DA004010C3 -S31540001350A610000180A36009291001431480002BC8 -S31540001360AC1000017FFFFFAB0100000080A220000F -S3154000137012BFFFFD01000000B010200080A6001241 -S31540001380168000140100000010800005A21000160F -S3154000139080A600121680000F01000000832E200256 -S315400013A0D0044010D20440017FFFFFADB0062001BB -S315400013B080A2200104BFFFF7901020027FFFFF901C -S315400013C00100000080A6001206BFFFF6832E200211 -S315400013D0C205207C82006001C225207C7FFFFF92EF -S315400013E001000000C204C01082006001C224C01087 -S315400013F0DA04C01080A3600904BFFFDB111000802F -S31540001400108000049012205C111000809012205C25 -S31540001410921000157FFFFF9994100012832CA002B2 -S3154000142082004012A0004001DA05207C80A4000D15 -S3154000143002800004231001437FFFFF7190102003B8 -S31540001440C204607C80A060000480000601000000A9 -S31540001450C204607C80A400011680000580A560005F -S315400014607FFFFF679010200380A56000228000095F -S31540001470B010200091D0200010800006B01020004F -S315400014807FFFFF5F9010200110BFFFA59A05600106 -S3154000149081C7E00881E800009DE3BF98C20620109E -S315400014A0A01000188330601C80A0600002800009F4 -S315400014B0B0103FFF7FFFFF610100000080A22000C7 -S315400014C0128000040300003F821063FFC2242010F4 -S315400014D081C7E00881E800009DE3BF98C20620105E -S315400014E08330601CA400600180A4A00102800068D3 -S315400014F0B0103FFF7FFFFF5101000000AA10000817 -S31540001500912A20047FFFFF39900220077FFFFF5179 -S315400015100100000003020000808A0001028000589A -S315400015200100000011100080901220A092100015BA -S315400015307FFFFF5294100012031000808210601843 -S31540001540A12D6002C0204010DA004010A610000114 -S3154000155080A36009291001431480002BAC100001C0 -S315400015607FFFFF2C0100000080A2200012BFFFFD7C -S3154000157001000000B010200080A600121680001462 -S315400015800100000010800005A210001680A600127F -S315400015901680000F01000000832E2002D004401068 -S315400015A0D20440017FFFFF2EB006200180A2200119 -S315400015B004BFFFF7901020027FFFFF1101000000DB -S315400015C080A6001206BFFFF6832E2002C205207CAD -S315400015D082006001C225207C7FFFFF1301000000CE -S315400015E0C204C01082006001C224C010DA04C010D8 -S315400015F080A3600904BFFFDB111000801080000447 -S315400016009012205C111000809012205C9210001500 -S315400016107FFFFF1A94100012832CA0028200401212 -S31540001620A0004001DA05207C80A4000D0280000461 -S31540001630231001437FFFFEF290102003C204607C1A -S3154000164080A060000480000601000000C204607CA7 -S3154000165080A400011680000580A560007FFFFEE89B -S315400016609010200380A5600022800009B010200061 -S3154000167091D0200010800006B01020007FFFFEE0D1 -S315400016809010200110BFFFA91110008081C7E0080B -S3154000169081E800009DE3BF983120000092162200A9 -S315400016A09410200040003E599010200140003B62BB -S315400016B0901622009016230040003EBE921020084D -S315400016C0B016210040003A4F81E8000001000000BA -S315400016D09DE3BF9821200000921422009410200020 -S315400016E040003E4A9010200140003B539014220097 -S315400016F09210001840003EAF90142300B014210011 -S3154000170040003A4081E8000001000000000000006F -S315400017100000000000000000000000000000000083 -S315400017200000000000000000000000000000000073 -S315400017300000000000000000000000000000000063 -S315400017400000000000000000000000000000000053 -S315400017500000000000000000000000000000000043 -S315400017600000000000000000000000000000000033 -S315400017700000000000000000000000000000000023 -S315400017800000000000000000000000000000000013 -S315400017900000000000000000000000000000000003 -S315400017A000000000000000000000000000000000F3 -S315400017B000000000000000000000000000000000E3 -S315400017C000000000000000000000000000000000D3 -S315400017D000000000000000000000000000000000C3 -S315400017E000000000000000000000000000000000B3 -S315400017F000000000000000000000000000000000A3 -S315400018000000000000000000000000000000000092 -S315400018100000000000000000000000000000000082 -S315400018200000000000000000000000000000000072 -S315400018300000000000000000000000000000000062 -S315400018400000000000000000000000000000000052 -S315400018500000000000000000000000000000000042 -S315400018600000000000000000000000000000000032 -S315400018700000000000000000000000000000000022 -S315400018800000000000000000000000000000000012 -S315400018900000000000000000000000000000000002 -S315400018A000000000000000000000000000000000F2 -S315400018B000000000000000000000000000000000E2 -S315400018C000000000000000000000000000000000D2 -S315400018D000000000000000000000000000000000C2 -S315400018E000000000000000000000000000000000B2 -S315400018F000000000000000000000000000000000A2 -S315400019000000000000000000000000000000000091 -S315400019100000000000000000000000000000000081 -S315400019200000000000000000000000000000000071 -S315400019300000000000000000000000000000000061 -S315400019400000000000000000000000000000000051 -S315400019500000000000000000000000000000000041 -S315400019600000000000000000000000000000000031 -S315400019700000000000000000000000000000000021 -S315400019800000000000000000000000000000000011 -S315400019900000000000000000000000000000000001 -S315400019A000000000000000000000000000000000F1 -S315400019B000000000000000000000000000000000E1 -S315400019C000000000000000000000000000000000D1 -S315400019D000000000000000000000000000000000C1 -S315400019E000000000000000000000000000000000B1 -S315400019F000000000000000000000000000000000A1 -S31540001A000000000000000000000000000000000090 -S31540001A100000000000000000000000000000000080 -S31540001A200000000000000000000000000000000070 -S31540001A300000000000000000000000000000000060 -S31540001A400000000000000000000000000000000050 -S31540001A500000000000000000000000000000000040 -S31540001A600000000000000000000000000000000030 -S31540001A700000000000000000000000000000000020 -S31540001A800000000000000000000000000000000010 -S31540001A900000000000000000000000000000000000 -S31540001AA000000000000000000000000000000000F0 -S31540001AB000000000000000000000000000000000E0 -S31540001AC000000000000000000000000000000000D0 -S31540001AD000000000000000000000000000000000C0 -S31540001AE000000000000000000000000000000000B0 -S31540001AF000000000000000000000000000000000A0 -S31540001B00000000000000000000000000000000008F -S31540001B10000000000000000000000000000000007F -S31540001B20000000000000000000000000000000006F -S31540001B30000000000000000000000000000000005F -S31540001B40000000000000000000000000000000004F -S31540001B50000000000000000000000000000000003F -S31540001B60000000000000000000000000000000002F -S31540001B70000000000000000000000000000000001F -S31540001B80000000000000000000000000000000000F -S31540001B9000000000000000000000000000000000FF -S31540001BA000000000000000000000000000000000EF -S31540001BB000000000000000000000000000000000DF -S31540001BC000000000000000000000000000000000CF -S31540001BD000000000000000000000000000000000BF -S31540001BE000000000000000000000000000000000AF -S31540001BF0000000000000000000000000000000009F -S31540001C00000000000000000000000000000000008E -S31540001C10000000000000000000000000000000007E -S31540001C20000000000000000000000000000000006E -S31540001C30000000000000000000000000000000005E -S31540001C40000000000000000000000000000000004E -S31540001C50000000000000000000000000000000003E -S31540001C60000000000000000000000000000000002E -S31540001C70000000000000000000000000000000001E -S31540001C80000000000000000000000000000000000E -S31540001C9000000000000000000000000000000000FE -S31540001CA000000000000000000000000000000000EE -S31540001CB000000000000000000000000000000000DE -S31540001CC000000000000000000000000000000000CE -S31540001CD000000000000000000000000000000000BE -S31540001CE000000000000000000000000000000000AE -S31540001CF0000000000000000000000000000000009E -S31540001D00000000000000000000000000000000008D -S31540001D10000000000000000000000000000000007D -S31540001D20000000000000000000000000000000006D -S31540001D30000000000000000000000000000000005D -S31540001D40000000000000000000000000000000004D -S31540001D50000000000000000000000000000000003D -S31540001D60000000000000000000000000000000002D -S31540001D70000000000000000000000000000000001D -S31540001D80000000000000000000000000000000000D -S31540001D9000000000000000000000000000000000FD -S31540001DA000000000000000000000000000000000ED -S31540001DB000000000000000000000000000000000DD -S31540001DC000000000000000000000000000000000CD -S31540001DD000000000000000000000000000000000BD -S31540001DE000000000000000000000000000000000AD -S31540001DF0000000000000000000000000000000009D -S31540001E00000000000000000000000000000000008C -S31540001E10000000000000000000000000000000007C -S31540001E20000000000000000000000000000000006C -S31540001E30000000000000000000000000000000005C -S31540001E40000000000000000000000000000000004C -S31540001E50000000000000000000000000000000003C -S31540001E60000000000000000000000000000000002C -S31540001E70000000000000000000000000000000001C -S31540001E80000000000000000000000000000000000C -S31540001E9000000000000000000000000000000000FC -S31540001EA000000000000000000000000000000000EC -S31540001EB000000000000000000000000000000000DC -S31540001EC000000000000000000000000000000000CC -S31540001ED000000000000000000000000000000000BC -S31540001EE000000000000000000000000000000000AC -S31540001EF0000000000000000000000000000000009C -S31540001F00000000000000000000000000000000008B -S31540001F10000000000000000000000000000000007B -S31540001F20000000000000000000000000000000006B -S31540001F30000000000000000000000000000000005B +S315400010009DE3BFC0051001238410A05007100125A1 +S315400010108610E168821000008620C00286A0E008A3 +S3154000102036BFFFFFC038800311100125901221689A +S31540001030C02200004000665D010000004000665D81 +S3154000104001000000400068A301000000111000707C +S31540001050901220BC400061C30100000040006C11AA +S3154000106001000000400002300100000040006730EF +S315400010700100000081C7E00881E800009DE3BFA0B1 +S3154000108021100123C20C205080A060001280002253 +S3154000109023100123C20460542710007025100070ED +S315400010A0A614E024A414A028A4248013A53CA002DE +S315400010B0A404BFFF80A040123A80000E0300000047 +S315400010C0A21460548200600185286002C224400058 +S315400010D0C204C0029FC0400001000000C20440009C +S315400010E080A040120ABFFFF98200600103000000A1 +S315400010F08210600080A060000280000682102001FD +S315400011001110006E6FFFFBBF90122020821020014D +S31540001110C22C205081C7E00881E800009DE3BFA0B3 +S3154000112081C7E00881E800009DE3BFA003000000FE +S315400011308210600080A06000228000081110012506 +S315400011401110006E13100123901220206FFFFBAD8B +S315400011509212605811100125C202216880A06000D9 +S31540001160028000099012216803000000821060008E +S3154000117080A0600002800004010000009FC0400083 +S315400011800100000081C7E00881E800009DE3BFA0A0 +S3154000119081C7E00881E800008292200002800015A5 +S315400011A001000000C400400080A0A0002280001181 +S315400011B092102001C600600880A240032A800008E1 +S315400011C08200600C8800FFFF8401000280A240027A +S315400011D02880000AC20060048200600CC4004000FF +S315400011E080A0A00032BFFFF5C60060089210200123 +S315400011F081C3E00890100009920240019222400308 +S3154000120081C3E008901000099DE3BFA0C2064000DC +S3154000121080A060001280001582007FFFC206600831 +S3154000122080A0600322800014C206600CD2062014FF +S31540001230D006600C4000615394102034C206600C06 +S3154000124082006034C226600CC2066004B0007FFE95 +S3154000125082007FFFB0104018C2266004B136201FBE +S3154000126081C7E00881E80000C226400081C7E00847 +S3154000127091E82000C4062014C6008000C620400025 +S31540001280C600A004C6206004C400A008C4206008AC +S31540001290C206600C8200600CC226600CC206600466 +S315400012A0B0007FFE82007FFFB0104018C226600467 +S315400012B0B136201F81C7E00881E800009DE3BFA04A +S315400012C0C2064000C406A0149B3060188930600CEA +S315400012D088092FFF8608601F833060058208601FDB +S315400012E0DA2EA011C836A012C228A001C628800056 +S315400012F01700003F9612E3F0C2066004C220A02801 +S3154000130082102000C6066008C620A02CC606600CC7 +S31540001310C620A03086064001C600E01080A0E0004E +S315400013209A1020000280000B881020009B30E004B9 +S315400013308808C00B9B2B6014892920109808E00F61 +S315400013409A20000D80A320030280000A8808C0046A +S31540001350860080018200600480A06010DA20E014DC +S3154000136012BFFFEDC820E00481C7E00881E8000015 +S315400013708931200C9A380003881100189B33600489 +S315400013809A0B6FFF9B2B60089A1360FF10BFFFF10B +S315400013909A0360019DE3BEF8F627A050FA27A058AD +S315400013A080A660000280010AA81020102B0003FCD2 +S315400013B0A0102000AA160015A407BFA4A607BFDCEC +S315400013C0A207BF7010800005AC10200180A4001455 +S315400013D01680003437000040932C200594102020BE +S315400013E092024015400060E790100012C207BFA469 +S315400013F080A0600022BFFFF6A0042001C024E010B8 +S31540001400C024C000C024E004C024E008C024E00C8E +S31540001410C0244000C0246004C0246008C024600C7E +S31540001420C0246010C0246014C0246018C024601C0E +S31540001430C0246020C0246024C0246028C024602CBE +S31540001440C0246030E227BFF0EC2FBFEC90100018AC +S31540001450921000127FFFFF9A94100013C20FBFED47 +S3154000146080A0401C32BFFFDAA0042001C217BFEEA5 +S31540001470C407A05880A0400232BFFFD5A004200177 +S31540001480D207A0507FFFFF619010001380A220007A +S3154000149002BFFFCFA004200181C7E00891E82001E8 +S315400014A02D0003FE3B003FFF3300003F9206A04065 +S315400014B0AC160016BA1763FFB21663F0A0102000F0 +S315400014C0A607BFDCA207BF70B616E020AA07BFC4B6 +S315400014D0AE07BFF410800005D227BF6C80A5001070 +S315400014E0048000AE01000000932C200590100012ED +S315400014F092024016400060A394102020C207BFA469 +S3154000150080A0600022BFFFF6A004200182102001C7 +S31540001510C024E010C22FBFECC024C000C024E004A9 +S31540001520C024E008C024E00CC0244000C02460046D +S31540001530C0246008C024600CC0246010C02460141D +S31540001540C0246018C024601CC0246020C0246024CD +S31540001550C0246028C024602CC0246030E227BFF03D +S3154000156090100018921000127FFFFF559410001340 +S31540001570C20FBFED80A7000102800051C217BFEE27 +S31540001580C207BFEC8208401D80A0401B2280005B42 +S31540001590C207BFF0050000408410A00680A04002AC +S315400015A032BFFFCFA0042001C207BFF0C6006004CF +S315400015B088102003030003FC8210C001108000063F +S315400015C08400607880A0400222BFFFC5A0042001AD +S315400015D082006008DA00400080A3600002BFFFFA84 +S315400015E0D8006004920B601F973360189533600CE7 +S315400015F09B3360059A0B601F940AAFFFC025C0005D +S31540001600D22FBFF4DA2FBFF5130003FF9B3320041C +S31540001610921263FF9A0B6FFF9B2B60089A2A400D2C +S315400016209A036001133FFC00DA27BFFCC025400047 +S315400016309A0B0019C02560049B2B6004980B000987 +S31540001640C02560089933200CC025600C980B400CCF +S31540001650EE27BFD898130003C82FBFD4D62FBFD5C7 +S31540001660D437BFD680A7000B12BFFFD7D827BFF805 +S31540001670DA07A05880A3400A12BFFFD480A04002D8 +S31540001680D207A050C227BF60C427BF64C627BF5C2D +S31540001690C827BF687FFFFEDD90100015C207BF60F8 +S315400016A080A22000C407BF64C607BF5C12BFFF7B91 +S315400016B0C807BF6810BFFFC580A04002DA07A05820 +S315400016C080A3400112BFFFB0C207BFECD207A050B3 +S315400016D07FFFFECE9010001380A2200012BFFF6F46 +S315400016E0C207BFEC8208401D80A0401B12BFFFAB63 +S315400016F005000040C207BFF0C408600180A0A000FA +S3154000170022BFFF77A004200180A6A0000280001718 +S31540001710D000602C82102000C406800180A0A0006A +S315400017200280000880A2000222BFFF6DA0042001B3 +S315400017308200600480A0604032BFFFF9C406800189 +S31540001740C607BF6C8210001AC400400080A0A000EB +S3154000175022800014D02040008200600480A0400314 +S3154000176032BFFFFBC4004000D607A050DA07A0589E +S31540001770921000139410001A7FFFFF079810001C68 +S3154000178080A2200012BFFF45A004200180A50010C2 +S3154000179014BFFF57932C200581C7E00891E820002D +S315400017A0D607A05092100013DA07A0589410001ADA +S315400017B07FFFFEF99810001C80A2200012BFFF3761 +S315400017C0A004200110BFFFF380A5001080A6A00052 +S315400017D00280000B8210001A8606A040C40040001A +S315400017E080A0A00022800008F02040008200600413 +S315400017F080A0400332BFFFFBC400400010BFFEEC98 +S31540001800A810204010BFFEEAA81020409DE3BF501C +S315400018109407BFB08210200398100018C022A00879 +S31540001820C022A00CC022A010C022A014C022A01822 +S31540001830C022A01CC022A020C022A024C022A028D2 +S31540001840C022A02CC022A030C022A034C022A03882 +S31540001850C022A03CA0102001F427BFFCC027BFB087 +S31540001860C027BFB4C027BFF09A100019E027BFF4C5 +S31540001870C227BFF8921020009607BFF07FFFFEC632 +S31540001880113FFC00F007BFF4B024001881C7E00800 +S3154000189081E800009DE3BF9090102001A007BFF4AF +S315400018A09210200C7FFFFFDA9410001080A22001D6 +S315400018B00280001A0310012390102001921020117B +S315400018C07FFFFFD39410001080A220010280000DFC +S315400018D00710012494100010901020017FFFFFCCC8 +S315400018E09210200D80A220011280000403100123D3 +S315400018F0C407BFF8C420602C81C7E00881E8000017 +S31540001900C207BFF884006010C220E0A40310012380 +S3154000191010BFFFF1C4206028C407BFF810BFFFE71F +S31540001920C42060349DE3BFA04000002301000000B6 +S3154000193040000174010000004000000381E80000FF +S315400019400100000003100080C200600C84102001DA +S3154000195090102000C420601481C3E00801000000FC +S3154000196003100080C200600C841000089010200014 +S31540001970C420400081C3E00801000000031000803D +S31540001980C200600C8410000890102000C42060083B +S3154000199081C3E0080100000003100080C200600C13 +S315400019A08410000890102000C420600481C3E00821 +S315400019B0010000009DE3BFA04000001401000000AC +S315400019C080A220001280000503100080C200600C37 +S315400019D084102001C420601081C7E00891E82000EF +S315400019E013100080921260109010200081C3E0080E +S315400019F0D0EA402090102000131000809212601010 +S31540001A0081C3E008D0224000914440009132201C1E +S31540001A1081C3E008900A200F81C3E008D0820020ED +S31540001A209010200C81C3E008D08200409DE3BFA007 +S31540001A30C2062010A01000188330601C80A06000F1 +S31540001A4002800009B0103FFF7FFFFFF00100000059 +S31540001A5080A22000128000040300003F821063FF32 +S31540001A60C224201081C7E00881E800009DE3BFA0A2 +S31540001A70E4062010A534A01CA404A00180A4A00163 +S31540001A800280003CB0103FFF7FFFFFE001000000F6 +S31540001A90AA100008912A20047FFFFFB99002200770 +S31540001AA07FFFFFE00100000003020000808A000182 +S31540001AB00280007401000000A72D6002091000801A +S31540001AC0881120148210200184102001C2210013A5 +S31540001AD08210200080A480011480000987286002BB +S31540001AE080A0A000128000258210200084102001D2 +S31540001AF080A4800104BFFFFB87286002C601000363 +S31540001B0080A00003820060018660200010BFFFF2C3 +S31540001B1084088003C205A074852CA003A12CA001D3 +S31540001B20A004000280A4000102800004010000001D +S31540001B307FFFFF9A90102003C205A07480A060002A +S31540001B400480000603100123C200607480A40001D3 +S31540001B501680000580A560007FFFFF90901020034F +S31540001B6080A5600002800003B010200091D02000C4 +S31540001B7081C7E00881E8000023100080A214609C21 +S31540001B802D100123C0244013C204401380A06009D5 +S31540001B901480002709100080A815A0747FFFFF91CC +S31540001BA00100000080A2200012BFFFFD80A4A0001B +S31540001BB00480001301000000A0102000C40440135C +S31540001BC0832C2002C204400180A08001A004200191 +S31540001BD004800003862040028620800180A0E00128 +S31540001BE00480000580A480107FFFFF6C90102002C7 +S31540001BF080A4801014BFFFF201000000C20500005F +S31540001C0082006001C22500007FFFFF7B01000000CB +S31540001C10C204401382006001C2244013C204401330 +S31540001C2080A0600904BFFFDE09100080881120589B +S31540001C308210200184102001C2210013821020004E +S31540001C4080A48001148000098728600280A0A0003B +S31540001C5012BFFFB1821020008410200180A48001B1 +S31540001C6004BFFFFB87286002C601000380A0000373 +S31540001C70820060018660200010BFFFF28408800366 +S31540001C807FFFFF469010200110BFFF8DA72D6002F9 +S31540001C909DE3BFA0E4062010A0100018A534A01CA8 +S31540001CA0A404A00180A4A0010280003FB0103FFF21 +S31540001CB07FFFFF5601000000AA100008912A200469 +S31540001CC07FFFFF2F900220077FFFFF560100000095 +S31540001CD003020000808A00010280007701000000B4 +S31540001CE0A72D60020910008088112014821020015F +S31540001CF08405600185284002C4242010C2210013B7 +S31540001D00841020018210200080A4800114800009E4 +S31540001D108728600280A0A000128000258210200043 +S31540001D208410200180A4800104BFFFFB8728600245 +S31540001D30C601000380A00003820060018660200087 +S31540001D4010BFFFF284088003C205A074852CA0034F +S31540001D50A12CA001A004000280A40001028000047E +S31540001D60010000007FFFFF0D90102003C205A07404 +S31540001D7080A060000480000603100123C200607446 +S31540001D8080A400011680000580A560007FFFFF0348 +S31540001D909010200380A5600002800003B010200050 +S31540001DA091D0200081C7E00881E800002310008020 +S31540001DB0A214609C2D100123C0244013C20440137A +S31540001DC080A060091480002709100080A815A0741F +S31540001DD07FFFFF040100000080A2200012BFFFFD2C +S31540001DE080A4A0000480001301000000A010200081 +S31540001DF0C4044013832C2002C204400180A0800109 +S31540001E00A004200104800003862040028620800131 +S31540001E1080A0E0010480000580A480107FFFFEDFE3 +S31540001E209010200280A4801014BFFFF20100000031 +S31540001E30C205000082006001C22500007FFFFEEE61 +S31540001E4001000000C204401382006001C224401316 +S31540001E50C204401380A0600904BFFFDE0910008061 +S31540001E60881120588210200184102001C2210013BD +S31540001E708210200080A48001148000098728600217 +S31540001E8080A0A00012BFFFB1821020008410200164 +S31540001E9080A4800104BFFFFB87286002C6010003BF +S31540001EA080A00003820060018660200010BFFFF220 +S31540001EB0840880037FFFFEB99010200110BFFF8A7F +S31540001EC0A72D60029DE3BFA02120000094102000B2 +S31540001ED09214220040003C4F9010200140003B07E6 +S31540001EE0901422009210001840003C939014230056 +S31540001EF0B01421004000384381E800000100000092 +S31540001F009DE3BFA0312000009410200092162200CD +S31540001F1040003C409010200140003AF890162200C4 +S31540001F209016230040003C8492102008B0162100F1 +S31540001F304000383481E80000010000000000000045 S31540001F40000000000000000000000000000000004B S31540001F50000000000000000000000000000000003B S31540001F60000000000000000000000000000000002B @@ -2049,39 +2049,39 @@ S31540007FE0000000000000000000000000000000004B S31540007FF0000000000000000000000000000000003B S315400080009DE3BF9081C7E00881E8000003000010AF S31540008010C48000408088800112BFFFFE010000003E -S315400080209DE3BF909DE3BF909DE3BF909DE3BF90CE -S315400080309DE3BF909DE3BF9021044444A0142111C9 -S3154000804023088888A2146222250CCCCCA414A3331E -S3154000805027111111A614E04429155555A815215587 -S315400080602B199999AA1562662D1DDDDDAC15A377EE -S315400080702F222222AE15E08801100000E03FBFE02B -S31540008080E43FBFE8E83FBFF0EC3FBFF88210001E78 -S315400080908220601CC0A041E082206008C0A041E070 -S315400080A082206008C0A041E082206008C0A041E074 -S315400080B0C0A002209DE3BF909DE3BF9081E80000F1 -S315400080C081E800000100000001000000E01FBFE061 -S315400080D0E41FBFE8E81FBFF0EC1FBFF80100000037 -S315400080E00100000081E8000081E8000081E800000E -S315400080F081E8000081E8000081C7E00881E80000CF -S31540008100A7500000AA102400A8102300EC854320A5 -S31540008110EA8503202F100020AE15E150EE05C00081 -S31540008120E805C000EA05E004EC05E008AC15A0004F -S31540008130C0A58300EA250000AE05E00C2B10002008 -S31540008140AA156150EE25400081C4400081CC8000D4 -S3154000815000000000010000000000000000000000D8 -S3154000816000000000000000000000000000000000C9 +S31540008020C46FBFF89DE3BF909DE3BF909DE3BF90B3 +S315400080309DE3BF909DE3BF909DE3BF9021044444E0 +S31540008040A014211123088888A2146222250CCCCCC6 +S31540008050A414A33327111111A614E044291555552C +S31540008060A81521552B199999AA1562662D1DDDDD96 +S31540008070AC15A3772F222222AE15E088011000000E +S31540008080E03FBFE0E43FBFE8E83FBFF0EC3FBFF86A +S315400080908210001E8220601CC0A041E08220600841 +S315400080A0C0A041E082206008C0A041E08220600874 +S315400080B0C0A041E0C0A002209DE3BF909DE3BF90D9 +S315400080C081E8000081E80000010000000100000096 +S315400080D0E01FBFE0E41FBFE8E81FBFF0EC1FBFF89A +S315400080E0EC6FBFF8EC7FBFF8010000000100000014 +S315400080F081E8000081E8000081E8000081E8000096 +S3154000810081E8000081C7E00881E80000A750000030 +S31540008110AA102400A8102300EC854320EA850320FA +S315400081202F100020AE15E160EE05C000E805C00046 +S31540008130EA05E004EC05E008AC15A000C0A5830004 +S31540008140EA250000AE05E00C2B100020AA15616060 +S31540008150EE25400081C4400081CC80000100000033 +S3154000816000000000010000000000000000000000C8 S3154000817000000000000000000000000000000000B9 S3154000818000000000000000000000000000000000A9 -S315400081900000000001000000010000000100000096 -S315400081A00100000001000000010000000100000085 +S315400081900000000000000000000000000000000099 +S315400081A00000000001000000010000000100000086 S315400081B00100000001000000010000000100000075 -S315400081C00100000001000000010000000100000065 +S315400081C081C3E008D0A003200100000001000000A8 S315400081D00100000001000000010000000100000055 -S315400081E00100000001000000010000000100000045 -S315400081F00100000001000000010000000100000035 -S315400082000100000001000000010000000100000024 -S315400082100100000001000000010000000100000014 -S315400082200100000001000000010000000100000004 +S315400081E09DE3BF90FC2780009007A0019410001EDD +S315400081F0D1E7816AD1E7816A9402A0019002200109 +S31540008200D1E7816AD1E7816AD60780009622C01EEF +S31540008210B0A2E00202800004900020017FFFE5DF6B +S315400082200100000081C7E00881E80000010000006D S3154000823001000000010000000100000001000000F4 S3154000824001000000010000000100000001000000E4 S3154000825001000000010000000100000001000000D4 @@ -4095,3250 +4095,4438 @@ S3154000FFC001000000010000000100000001000000E7 S3154000FFD001000000010000000100000001000000D7 S3154000FFE001000000010000000100000001000000C7 S3154000FFF001000000010000000100000001000000B7 -S315400100009DE3BF987FFFC4741100403080A2200059 -S31540010010128000F382102001C226200CC026200443 +S315400100009DE3BFA07FFFC6571100403080A220006C +S31540010010128000AF82102001C226200CC026200487 S31540010020C0260000C026200882102002C2262008D1 S31540010030C0260000C026000082102003C2262008E8 -S315400100409A102083DA262008A2102063C0260000D9 -S31540010050A2847FFF1CBFFFFE01000000A2102063A7 -S31540010060C2060000A2847FFF1CBFFFFE8210200251 -S31540010070C2262008A4062004C28480208088600409 -S3154001008002BFFFFE01000000C0262008C026000076 -S31540010090A6102001C2848020833860148208603F04 -S315400100A080A0600122800093A604E0018210200313 -S315400100B0C2262008C2848020808860010280000711 -S315400100C080886004C2860020C284802080886001C6 -S315400100D012BFFFFD8088600402BFFFFB808860027B -S315400100E002BFFFF901000000C0262008C0262004F7 -S315400100F080A4E0010480000821100080C284802091 -S315400101008208608080A06001028000AE010000008C -S3154001011021100080DA4C20F0DA260000C2848020CB -S315400101208208600480A060010280009A01000000FC -S31540010130C284802080A4E001048000208210200136 -S31540010140A210200180A440131680000D2B100080C0 -S31540010150A81420F0E00560E8901000114000247AD0 -S3154001016092100010C24D0008A2046001C226000090 -S3154001017080A4401306BFFFFA90100011C28480206C -S315400101808208608080A06001028000920100000028 -S31540010190C2848020833860148208603F80A0401367 -S315400101A002800004010000007FFFC4159010200664 -S315400101B0C284802082102001C226200CDA8480204D -S315400101C0808B60011280006801000000821020834C -S315400101D0C226200880A4E0010280005201000000EE -S315400101E0C28480208088640002BFFFFE01000000B7 -S315400101F0C284802080886001028000530100000093 -S3154001020080A4E00124800012A2102000C284802034 -S315400102108330601A80A04013028000040100000070 -S315400102207FFFC3F790102009C28480208088610037 -S315400102300280005501000000C2848020808864004D -S315400102400280004D01000000A210200080A440134E -S315400102501680001203100080A81060F02B10008059 -S31540010260E08600209010001140002437D20560E856 -S31540010270C24D0008A204600180A040100280000423 -S315400102809010200C7FFFC3DE0100000080A44013C4 -S3154001029006BFFFF40100000080A4E0010480000FC6 -S315400102A001000000C28480208088610012800042E3 -S315400102B001000000C28480208330601A80A0600063 -S315400102C01280003A01000000C284802080886400C8 -S315400102D01280003301000000C284802080886001C2 -S315400102E01280001D01000000C02620083080003C1D -S315400102F0C0260000C2848020833860148208603F93 -S3154001030080A0401322BFFFFBA604E00180A4E001C8 -S3154001031034BFFF67A604FFFF10BFFF6682102003AC -S31540010320C28480208088600112BFFFB201000000B4 -S31540010330C28480208088600102BFFFFA010000006C -S3154001034030BFFFAC7FFFC3AE9010200810BFFFAE99 -S3154001035080A4E0017FFFC3AA9010200CC02620088C -S315400103603080001F7FFFC3A69010200710BFFF9962 -S31540010370821020837FFFC3A29010200B10BFFFB4D1 -S31540010380A21020007FFFC39E9010200A30BFFFAB12 -S315400103907FFFC39B9010200130BFFF667FFFC3984C -S315400103A09010200B30BFFFCD7FFFC3959010200EDC -S315400103B030BFFFC67FFFC3929010200D30BFFFBEF6 -S315400103C07FFFC38F9010200410BFFF532110008080 -S315400103D07FFFC38B9010200530BFFF6E81C7E008B9 -S315400103E091E8200017100143DA02E08090022010C4 -S315400103F09B2B60029812E080D023000DC202E08060 -S3154001040082006001C222E08081C3E0080100000051 -S31540010410C0220000C022204082103FFFC222200C91 -S315400104209A10200103100143DA20608081C3E0085D -S31540010430010000009DE3BF7803100144F02060CC29 -S315400104407FFFC365110040347FFFFFF29010001813 -S31540010450A010200123100040921000104000298F67 -S31540010460901463E4A004200180A4200F04BFFFFC84 -S3154001047092100010C20620208330601CAE0060013D -S31540010480AC10200080A58017168000ED0300003FC8 -S31540010490B81063FE2B1001430300002AB61062AA6E -S315400104A0BA102001B410001CB2156080832DA00C37 -S315400104B080A5E00114800119A600401880A5A0007E -S315400104C01280010A01000000F824E008C204E00895 -S315400104D080A0401C02800004010000007FFFC34849 -S315400104E090102001F824E040C204E04080A0401C66 -S315400104F002800004010000007FFFC34190102002EA -S31540010500C204E00880A0600012BFFFFE01000000A7 -S31540010510C205608080A0601002800005251001435D -S315400105207FFFC3379010200325100143A0102001FF -S31540010530A414A080A2102020832C20029A244010CB -S31540010540D8048001A004200180A3000D028000048C -S31540010550901020047FFFC32A0100000080A4200FD1 -S3154001056004BFFFF7832C2002FA256080F624C000E1 -S31540010570F424E040C204C00080A0401B0280000475 -S31540010580A010001A7FFFC31E90102005C204E04050 -S3154001059080A0401002800004010000007FFFC318C4 -S315400105A090102005F424E008C204E00880A0600011 -S315400105B012BFFFFE01000000C205608080A06010EE -S315400105C002800005251001437FFFC30D90102006D0 -S315400105D025100143A0102001A414A080A210201FC1 -S315400105E09B2C2002C204800D80A04011A004200152 -S315400105F0A2047FFE02800004901020077FFFC30003 -S315400106000100000080A4200704BFFFF79B2C2002B5 -S31540010610A4066028A210201CA0102005C204800058 -S3154001062080A04011A404A004A2047FFE028000041D -S31540010630901020087FFFC2F201000000A0843FFF16 -S315400106401CBFFFF701000000FA27BFE8C207BFE859 -S3154001065082006001C227BFECDA07BFEC9A03600152 -S31540010660DA27BFF0C207BFF082006001C227BFF49C -S315400106709A102006DA27BFD8C024C000C024E04023 -S31540010680FA256080A0102002E024E040E024E00842 -S31540010690834440008088610002800005010000001B -S315400106A0805000018050000180500001C207BFD830 -S315400106B0C227BFDCDA07BFD880A3600602800004E8 -S315400106C0010000007FFFC2CE9010200AE024E0081E -S315400106D001000000C207BFD8C227BFDCDA07BFD876 -S315400106E080A3600602800004010000007FFFC2C4AF -S315400106F09010200AE024E00801000000C027BFDC7A -S31540010700C207BFDC80A06000128000960100000095 -S31540010710C204E00880A0600012BFFFFE0100000095 -S31540010720C205608080A06004028000050300003F8E -S315400107307FFFC2B39010200D0300003FC024E0406C -S31540010740821063FEC224E008031001439A1020017F -S31540010750DA206080400003E801000000400003E821 -S3154001076090122F0082103FFFC224E040C204E040B5 -S3154001077080A0600002BFFFFE01000000C20560804C -S3154001078080A0600202800004A01560807FFFC29CA9 -S315400107909010200EC204200480A0601F0280000435 -S315400107A0010000007FFFC2969010200F400003D247 -S315400107B0A8100010400003D290023F00A010200272 -S315400107C0A4102020400003CC01000000400003CCCF -S315400107D090023F00C2056080A204200180A0401122 -S315400107E002800004901020107FFFC28501000000A6 -S315400107F0832C20029A248010D8050001A0100011F4 -S3154001080080A3000D02800004901020117FFFC27C5E -S315400108100100000080A4200F04BFFFEB010000008F -S31540010820C024E040AC05A00182103FFFC224E00C89 -S3154001083080A5801706BFFF1F832DA00C80A5E00170 -S315400108400480004B01000000C0262024C20620245B -S3154001085080A060001280003F0100000021040000DA -S31540010860E0262024C206202480A0401002800005F4 -S31540010870821020017FFFC262901020148210200155 -S31540010880C2262020C0262024C206202480A0401053 -S3154001089002800004010000007FFFC259901020151C -S315400108A0C0262020C0262024C206202480A0600025 -S315400108B0128000240100000082102002C22620205E -S315400108C0DA062020808B60020280001B01000000B6 -S315400108D0C0262020C2062020808860020280002493 -S315400108E001000000308000117FFFFECA9010001306 -S315400108F09B2DA01CDA24E024C204E0248330601C32 -S3154001090080A0401602BFFEF1010000007FFFC23CFD -S315400109109010201230BFFEED7FFFC23490100016BA -S3154001092010BFFEE880A5A0007FFFC23590102018B9 -S315400109303080000F7FFFC2329010201730BFFFE595 -S315400109407FFFC22F9010201610BFFFDD82102002BC -S315400109507FFFC22B9010201310BFFFC2210400005D -S315400109607FFFC2279010200B30BFFF6A81C7E00886 -S3154001097091E8200003100143DA0060C8C0236008F3 -S3154001098081C3E008901020009DE3BF902F100144E1 -S31540010990E205E0CCA004610027100143C204200413 -S315400109A0F024E0C87FFFC21190102010030180009F -S315400109B0DA04200482106020808B40011280010DF0 -S315400109C001000000DA046100DA27BFF0C2046100C9 -S315400109D080A3400102800005821020017FFFC208EA -S315400109E09010200282102001C2242004DA04610002 -S315400109F0DA27BFF0C204610080A3400102800120D2 -S31540010A0001000000C0242004DA046100DA27BFF0A7 -S31540010A10C204610080A340010280000580A7200036 -S31540010A207FFFC1F79010200480A72000128000B7F5 -S31540010A3080A72001B010200180A6001A1680001759 -S31540010A40A8102001108000052510004280A6001A3A -S31540010A5016800013DA04E0C8A206C0189014A174E7 -S31540010A609210001180A4601F14BFFFF9B006200147 -S31540010A704000280A01000000D805E0CCC20320400E -S31540010A809B2D00118210400DC223204080A6001AE2 -S31540010A9006BFFFF3A206C018DA04E0C89606A00313 -S31540010AA0C0236004833AE01FC023601098103FFFC3 -S31540010AB08330601EAA02C001D8236014D823600C7B -S31540010AC0A2102000AD3D600280A720000280008A6E -S31540010AD0A810200180A4401C168000ECC204E0C886 -S31540010AE080A7200104800015B010200080A5A00039 -S31540010AF00480001380A0001C9B2C6010832C60187E -S31540010B008210400D992C60088210400C82104011D1 -S31540010B10993D6002DA04E0C8C2236020B006200194 -S31540010B2080A72001048000059A03600480A3001871 -S31540010B3014BFFFFA0100000080A0001CB0603FFF17 -S31540010B4080A6001A16800016C204E0C8250180005E -S31540010B5080A72000028000058206C01880A72001D8 -S31540010B60028000848206C011C2242004D804E0C851 -S31540010B70832D00189B3E4018C2232008808B6001BC -S31540010B80128000859A10000CB006200180A6001A3A -S31540010B9006BFFFF180A72000C204E0C8C02060085C -S31540010BA0808E600112800009B0102000B00620013D -S31540010BB080A6201F14800005833E4018808860016E -S31540010BC022BFFFFCB006200180A72000028000065C -S31540010BD08206C01880A72001028000048216E02008 -S31540010BE08206C01182106020C2242004DA04E0C8C3 -S31540010BF0832D0018C2236008C203600880A06000EC -S31540010C0012BFFFFE01000000C2042004808860205C -S31540010C100280009801000000DA042004030100006C -S31540010C20808B40010280009001000000DA0420041C -S31540010C3003008000808B4001028000880100000093 -S31540010C40C2042008C227BFF0DA04200CDA27BFF419 -S31540010C50C204E0C8992D0018D82060089A100001F6 -S31540010C60C203600880A0600012BFFFFE01000000C1 -S31540010C70C2042004808860200280007501000000C3 -S31540010C80DA04200403010000808B40010280006DDC -S31540010C9001000000DA04200403008000808B40013B -S31540010CA00280006501000000DA042008C207BFF097 -S31540010CB080A0400D02800004010000007FFFC1506A -S31540010CC09010200EDA04200CC207BFF480A0400D1C -S31540010CD002800005030180007FFFC1499010200F6B -S31540010CE003018000C224200480A7200012BFFF7A9E -S31540010CF0A204600180A4600004BFFF7B80A720019D -S31540010D0010800062C204E0C80280003D111000421A -S31540010D10B010200080A6001C16BFFF60A81020015D -S31540010D20108000052510004280A6001C16BFFF5CFE -S31540010D30DA04E0C8A206C0189014A17492100011FA -S31540010D4080A4601F14BFFFF9B0062001400027535D -S31540010D5001000000D805E0CCC20320409B2D0011C4 -S31540010D608210400DC223204010BFFFF180A6001C17 -S31540010D70F6242004D804E0C8832D00189B3E401871 -S31540010D80C2232008808B600122BFFF81B00620016B -S31540010D909A10000CC203600880A0600012BFFFFEDB -S31540010DA001000000DA04200403010000808B4001A9 -S31540010DB00280001E01000000DA04200403008000C6 -S31540010DC0808B40010280001601000000E4242004CB -S31540010DD0C20420048088401222BFFF6DB006200164 -S31540010DE07FFFC1079010200710BFFF69B0062001A1 -S31540010DF07FFFC1039010200130BFFEF39012217492 -S31540010E00400027269210001BDA05E0CC832F001BF9 -S31540010E10C223604010BFFF22DA04E0C87FFFC0F85A -S31540010E209010200630BFFFEA7FFFC0F590102005E5 -S31540010E3030BFFFE27FFFC0F29010200D30BFFF9B15 -S31540010E407FFFC0EF9010200C30BFFF937FFFC0ECB7 -S31540010E509010200B30BFFF8B7FFFC0E99010200A16 -S31540010E6030BFFF787FFFC0E69010200930BFFF708A -S31540010E707FFFC0E39010200830BFFF687FFFC0E0CE -S31540010E809010200330BFFEE0C020600CDA05E0CCB4 -S31540010E90C023604082103FFFC223600C81C7E00837 -S31540010EA091E820009DE3BF983B100144E60760CCE2 -S31540010EB07FFFC0CE90102011C024E01CC204E01C6C -S31540010EC080A060000280004801000000C204E01CCE -S31540010ED08330601B80A0401A0A80003F0100000059 -S31540010EE0A410200080A4801A1A8000422D100143CC -S31540010EF0AA102001AE15A080A32CA002E006401145 -S31540010F007FFFFD4490100013A804A0019B2D4012C1 -S31540010F10832D20108210400DC224E01C9A103FFF01 -S31540010F20DA24E040D80600119A10201FDA23200463 -S31540010F30A0043FFFDA230000A12C20048204000C08 -S31540010F409A102005DA206010C0206014EA2060184B -S31540010F509A100001C203601080A0600012BFFFFE1C -S31540010F6001000000A004000CC204201080A0600013 -S31540010F7002BFFFFE01000000C0242018C205A08068 -S31540010F8080A06002028000069A04A011900480129B -S31540010F907FFFC09B900220039A04A011C205E00482 -S31540010FA080A0400D22800006A410001490048012F7 -S31540010FB07FFFC09390022004A4100014C024E01CBB -S31540010FC080A5001A0ABFFFCEA32CA0021080000AFA -S31540010FD0DA0760CC7FFFC08A9010200210BFFFC2A3 -S31540010FE0A41020007FFFC0869010200130BFFFB8BB -S31540010FF0DA0760CCC023604082103FFFC223600CF9 -S3154001100081C7E00891E820009DE3BF987FFFC08B30 -S315400110100100000080A220000280002680A6200058 -S3154001102012800029010000007FFFC08401000000FA -S31540011030912A20047FFFC06D900220034000186D65 -S315400110400100000080A220001280002B0100000058 -S315400110504000182B01000000400017E40100000089 -S31540011060400002270100000080A6A0001280002D4A -S31540011070031001447FFFC071B41060D0912A200251 -S31540011080C206800880A060001280003080A6200041 -S3154001109012800039010000004000048E010000006A -S315400110A040001E0201000000400015C181E8000019 -S315400110B07FFFC0491100400C80A6200002BFFFDB24 -S315400110C0010000007FFFC0F5901000197FFFC05B53 -S315400110D001000000912A20047FFFC04490022003B2 -S315400110E0400018440100000080A2200002BFFFD941 -S315400110F0010000007FFFC04290102001400018000F -S3154001110001000000400017B901000000400001FC49 -S315400111100100000080A6A00002BFFFD703100144D2 -S3154001112040001DED01000000031001447FFFC04354 -S31540011130B41060D0912A2002C206800880A06000C7 -S3154001114002BFFFD480A620007FFFC03C0100000003 -S315400111507FFFC03AA0100008912A2002C2068008EB -S315400111609FC040009010001080A6200002BFFFCB18 -S31540011170010000007FFFC0D99010001940000455BE -S315400111800100000040001DC9010000004000158813 -S3154001119081E800000100000003100143DA0060CC41 -S315400111A09A036001DA2060CC81C3E00801000000A7 -S315400111B09DE3BF987FFFC00811004044D806200830 -S315400111C082103FFFC2262004DA060000C206000054 -S315400111D080A340010280006FA60B20078210201FCA -S315400111E0C2262004C226000080A4E000028000330B -S315400111F082100018A2100013C0206018A2847FFF3D -S3154001120012BFFFFE82006010A210200080A440138E -S315400112101680002B80A4E001A810200FA010001812 -S315400112207FFFBFF290100011C0242010E824201443 -S3154001123082102006C2242018DA04201080A3600FF1 -S3154001124002800004010000007FFFBFED90102003E3 -S31540011250E82420189A10200EC204201080A0400DC8 -S3154001126012BFFFFE010000009A837FFF1CBFFFFBF8 -S31540011270A4100010C204201080A0600F12BFFFFE10 -S3154001128001000000C20420188088601002800035E9 -S3154001129082102010C224A018DA042018808B601016 -S315400112A01280003801000000A204600180A44013AE -S315400112B006BFFFDCA004201080A4E00114800010CA -S315400112C080A4E0000280000782100018A2100013DB -S315400112D0C0206018A2847FFF12BFFFFE820060100B -S315400112E021100144C20420CC80A060000280002D60 -S315400112F0111000441080000D921000197FFFBFBBF2 -S31540011300901020088210200FC22620189A10202FF4 -S31540011310DA262028C206202080A0600D12BFFFFEDB -S3154001132080A4E00030BFFFE8400025DC9012219800 -S315400113307FFFFC38D00420CC82102001832840193D -S31540011340DA0420CCC22360409810200FD8262014FE -S315400113508210200DC2262018A7800000308000117F -S315400113607FFFBFA79010200482102010C224A0182E -S31540011370DA042018808B601022BFFFCDA2046001E1 -S315400113807FFFBF9F9010200510BFFFC9A2046001D7 -S315400113907FFFBF9B9010200110BFFF928210201F3C -S315400113A081C7E00881E8000000000000000000005D -S315400113B000000000000000000000000000000000E6 -S315400113C001000000010000000100000001000000D2 -S315400113D0010000000100000081C3E0080100000097 -S315400113E001000000010000000100000001000000B2 -S315400113F0010000000100000081C3E0080100000077 -S315400114000100000001000000010000000100000091 -S31540011410010000000100000081C3E0080100000056 -S315400114200100000001000000010000000100000071 -S31540011430010000000100000081C3E0080100000036 -S31540011440D482018090A2000916BFFFFE9612800B3E -S3154001145081C3E0089010000BD48201C090A200091C -S3154001146016BFFFFE9612800B81C3E0089010000B59 -S3154001147090A22004C0A201A090A22004C0A201A073 -S3154001148090A22004C0A201A090A22004C0A201A063 -S31540011490C0A2018090A2200414BFFFF70100000002 -S315400114A081C3E0080100000090A22004C0A201E02F -S315400114B090A22004C0A201E090A22004C0A201E0B3 -S315400114C090A22004C0A201E0C0A201C090A22004C3 -S315400114D014BFFFF70100000081C3E00801000000CE -S315400114E0981000089610000A98A3200814BFFFFF21 -S315400114F0D43B00099810000898A3200814BFFFFFA9 -S31540011500C01B00099810000898A32004D6030009BF -S3154001151080A2C00A1280000698A3200434BFFFFDB2 -S31540011520D603000981C3E0089010200090102001E5 -S31540011530981000089610000A98A3200814BFFFFFD0 -S31540011540D43B00099810000898A32004D60300094B -S3154001155080A2C00A1280000698A3200434BFFFFD72 -S31540011560D603000981C3E0089010200090102001A5 -S315400115709810000898A32004D2A301A0DA8301A001 -S3154001158080A340091280000698A3200414BFFFFCE3 -S31540011590D2A301A081C3E008901020009010200141 -S315400115A09A1000089AA3400AD6A34180D883418065 -S315400115B0981B000B988B0009128000069AA3400ADB -S315400115C014BFFFFBD6A3418081C3E00890102000E1 -S315400115D0901020019A1000089AA3400BD8A241CD41 -S315400115E0C48241CD8418800C8488800A128000060A -S315400115F09AA3400B14BFFFFBD8A241CD81C3E0089B -S315400116009010200090102001010000000100000010 -S31540011610010000001310008092126138D40240008C -S3154001162080A2A0011280000780A0A002D40240003F -S31540011630D4024000952AA002108000050100000056 -S315400116403280000381E80000D402400081E00000BE -S3154001165093480000818A602023100045A2146278D5 -S31540011660A40460040100000081C4400081CC8000D4 -S3154001167091D0200191D020012680000590002001C3 -S3154001168090222001912A2001912A200281C3E0085B -S315400116900100000081C3E008D082004081C3E00818 -S315400116A0D2A2004081C3E008D082018081C3E00814 -S315400116B0D2A2018081C3E008D08201A081C3E008A3 -S315400116C0D2A201A081C3E008D08201C081C3E00853 -S315400116D0D2A201C081C3E008D08201E081C3E00803 -S315400116E0D2A201E081C3E008D2A2000081C3E00892 -S315400116F0D082000081C3E00891480000818A000041 -S3154001170001000000010000000100000081C3E00863 -S315400117100100000081C3E008C0A000A081C3E00829 -S31540011720C0A000C081C3E008D01A0000010000003B -S31540011730010000000100000001000000010000005E -S315400117409DE3BF701310006DCD1A6160CD3FBFE0C0 -S31540011750111000801B100080C91B61E0C51A21D8F9 -S31540011760C11FBFE095A088C4D53FBFF0D91FBFF0C8 -S3154001177003100080D11861E881AB0A4801000000DE -S315400117800380002BC13FBFD8F91FBFD8B5A0055C68 -S31540011790F53FBFF0ED1FBFF0F11FBFF0A5A589587A -S315400117A0E91FBFE0A1A488D41510006DA1A00130A6 -S315400117B0DD1AA16881AC0ACE010000000D80002D22 -S315400117C0F53FBFD0C51FBFD083A018C291A0492104 -S315400117D099A01928D51FBFE091A308CA1710006D1B -S315400117E091A00128FD1AE17081AA0ADE01000000DC -S315400117F00D80002F01000000400001AE01000000F5 -S315400118004000020C0100000080A22000128000313D -S3154001181001000000400002610100000080A220009A -S315400118200280003501000000308000317FFFBE7428 -S3154001183090102001F91FBFD8B5A0055CF53FBFF058 -S31540011840ED1FBFF0F11FBFF0A5A58958E91FBFE005 -S31540011850A1A488D41510006DA1A00130DD1AA1689C -S3154001186081AC0ACE010000001BBFFFD7F53FBFD0B8 -S315400118707FFFBE6390102002C51FBFD083A018C250 -S3154001188091A0492199A01928D51FBFE091A308CA63 -S315400118901710006D91A00128FD1AE17081AA0ADE98 -S315400118A0010000001BBFFFD5010000007FFFBE54B1 -S315400118B0901020034000017F01000000400001DD3F -S315400118C00100000080A2200002BFFFD301000000FA -S315400118D07FFFBE4B010000004000023001000000C6 -S315400118E080A2200002800004010000007FFFBE4468 -S315400118F09010200581C7E00881E800009DE3BF986C -S315400119007FFFFF7D210000047FFFFF7D90120010C5 -S315400119107FFFFF79B0102000808A00100280000B03 -S315400119209010200040000267010000007FFFBE4387 -S3154001193001000000912A20047FFFBE2C900220085E -S315400119407FFFFF800100000081C7E00881E80000B9 -S31540011950191000809813217811100200921020006E -S31540011960150FF76C9412A3D7D03B0000D42320085F -S31540011970C11B0000C503200887A089220100000081 -S3154001198089A005408DA0892281A8CA2601000000B0 -S3154001199033800003901020009010200181C3E0089D -S315400119A001000000C11A0000C51A400089A0084282 -S315400119B081C3E008C93A8000C11A0000C51A400037 -S315400119C089A0094281C3E008C93A80001910008004 -S315400119D098132178D0230000D2232008C1030000A8 -S315400119E0C303200885A00D2181C3E008C53A8000C4 -S315400119F0C11A0000C51A400089A009C2C93A80002F -S31540011A0081C3E00801000000C11A000085A005401D -S31540011A10C53A400081C3E008010000000100000012 -S31540011A20010000000100000001000000010000006B -S31540011A30010000000100000001000000010000005B -S31540011A40010000000100000001000000010000004B -S31540011A50010000000100000001000000010000003B -S31540011A60010000000100000001000000010000002B -S31540011A70010000000100000001000000010000001B -S31540011A80010000000100000001000000010000000B -S31540011A9001000000010000000100000081A00020BB -S31540011AA081C3E00801000000C11A000081C3E008BB -S31540011AB001000000C51A000089A009C2C93A4000C8 -S31540011AC081C3E00801000000131000809212617882 -S31540011AD0D0224000C102400085A01900C53A40000D -S31540011AE081C3E008D01A4000131000809212617839 -S31540011AF0D0224000C102400085A01880C522400086 -S31540011B0081C3E008D0024000151000809412A178EC -S31540011B10D03A8000C11A800085A01A40C5228000B3 -S31540011B2081C3E008D0028000151000809412A1788C -S31540011B30D0228000C102800085A01A20C5228000E3 -S31540011B4081C3E008D0028000151000809412A1786C -S31540011B50D0228000C102800081A01920C13A8000B4 -S31540011B6081C3E008D01A8000151000809412A17834 -S31540011B70D03A8000C11A800081A018C0C1228000DD -S31540011B8081C3E008D0028000151000809412A1782C -S31540011B90D0228000CB0280008DA00025CD2280007E -S31540011BA081C3E008D0028000151000809412A1780C -S31540011BB0D0228000CB0280008DA000A5CD228000DE -S31540011BC081C3E008D0028000151000809412A178EC -S31540011BD0D0228000CB0280008DA00125CD2280003D -S31540011BE081C3E008D0028000191000809813217843 -S31540011BF0D03B0000D43B2008C11B0000C51B200878 -S31540011C0081A80A420100000033800009901020009B -S31540011C1029800007901020012D8000059010200298 -S31540011C202F8000039010200391D0200081C3E0084B -S31540011C30010000001910008098132178D03B000064 -S31540011C40D43B2008C11B0000C51B200881A80AC23D -S31540011C500100000033BFFFF69010200029BFFFF4BA -S31540011C60901020012DBFFFF2901020022FBFFFF0F0 -S31540011C709010200391D020001910008098132178EC +S3154001004082102083C226200882102000C02600008C +S315400100508200600180A0606412BFFFFD01000000C4 +S3154001006082102000C40600008200600180A0606406 +S3154001007012BFFFFD0100000082102002C2262008A7 +S31540010080A0062004C28400208088600402BFFFFECF +S3154001009001000000C0262008C0260000C2840020BE +S315400100A084102001833860148208603F80A060017B +S315400100B002800004A21020011080000E821020034D +S315400100C0C0260000A200A001C2840020833860142B +S315400100D08208603F80A0401122BFFFFA84100001D0 +S315400100E080A4600134800002A21000028210200325 +S315400100F0C2262008C28400208208600780A06006CC +S315400101000280000801000000C2860020C28400204F +S315400101108208600780A0600612BFFFFC0100000054 +S31540010120C0262008C026200480A460010480000463 +S3154001013082102034C284002082102034C22600005E +S31540010140C2840020C284002080A46001048000197A +S315400101508210200129100070A4102001A81520301A +S3154001016090100012400024D592102041C24D000843 +S31540010170C2260000A404A00180A4801112BFFFFA88 +S3154001018090100012C2840020C2840020833860147B +S315400101908208603F80A040110280000401000000F7 +S315400101A07FFFC5FE90102006C284002082102001E8 +S315400101B0C226200CC2840020808860011280005330 +S315400101C082102083C226200880A46001028000425A +S315400101D001000000C28400208088640002BFFFFE47 +S315400101E001000000C2840020808860010280004F27 +S315400101F080A460010480005280A46000C284002073 +S315400102008330601A80A04011028000040100000082 +S315400102107FFFC5E290102009C284002080886100DA +S315400102200280004A01000000C284002080886400E8 +S315400102300280004C0100000029100070A41020002B +S31540010240A8152030E6860020921020414000249BCC +S3154001025090100012C24D000880A040132280000574 +S31540010260A404A0017FFFC5CD9010200CA404A001D9 +S3154001027080A4401214BFFFF480A460010480000FE3 +S3154001028001000000C2840020808861001280003F86 +S3154001029001000000C28400208330601A80A0600003 +S315400102A01280003701000000C2840020808864006B +S315400102B01280003001000000E0840020808C200183 +S315400102C01280000E01000000C026200881C7E00808 +S315400102D091E82000C28400208088600112BFFFC2DD +S315400102E001000000C28400208088600102BFFFFA3D +S315400102F00100000030BFFFBC7FFFC5A89010200C55 +S31540010300C026200830BFFFF27FFFC5A4901020070A +S3154001031082102083C226200880A4600112BFFFAE4E +S315400103200100000030BFFFEC7FFFC59C9010200804 +S3154001033080A4600114BFFFB280A4600034BFFFC037 +S315400103402910007030BFFFDD7FFFC5949010200A51 +S31540010350C28400208088640032BFFFB92910007032 +S315400103607FFFC58E9010200B10BFFFB5291000707E +S315400103707FFFC58A9010200B30BFFFD07FFFC58716 +S315400103809010200E30BFFFC97FFFC5849010200D0D +S3154001039030BFFFC103100123C40060788528A00245 +S315400103A08610607890022010D020C002C400607888 +S315400103B08400A001C420607881C3E00801000000E8 +S315400103C0C0220000C022204082103FFFC222200CE2 +S315400103D00310012384102001C420607881C3E00802 +S315400103E00100000003100123C20060C090102000EC +S315400103F0C020600881C3E008010000009DE3BFA062 +S3154001040023100124E00461107FFFC55D9010201187 +S31540010410C024201CC204201C80A060000280004C25 +S3154001042001000000C204201C8330601B80A0401ADA +S315400104300A80004E80A6A0000280003FC2046110DF +S315400104402B100123A6102004AA156078BA102000AB +S31540010450A4102000AE103FFFA8102001AC10201FB1 +S31540010460B8102005BB2F6002C606401DC0240000FF +S31540010470C0242040EE24200CE8254000832D0012A4 +S31540010480A404A001852CA01082108001C224201C46 +S31540010490EE2420408928E0049A00FFFFC206001D91 +S315400104A0980040049B2B60048400400DEC206004BE +S315400104B0EC204000F8204004C0232004E820A01886 +S315400104C0C400400480A0A00012BFFFFE010000004E +S315400104D08728E004C400400380A0A00002BFFFFEBD +S315400104E0010000008200400DC0206018C205400096 +S315400104F080A0600202800004010000007FFFC52742 +S315400105009004FFFFC40560048204A01080A080010E +S3154001051002800004BA1000127FFFC520901000131C +S31540010520C024201C80A6801218BFFFCFA604E0027B +S31540010530C204611084103FFFB0102000C02060400B +S31540010540C420600C81C7E00881E800007FFFC51325 +S3154001055090102001C204201C8330601B80A0401AE9 +S315400105601ABFFFB680A6A0007FFFC50C90102002DF +S3154001057010BFFFB52B1001239DE3BF80231001233C +S3154001058021100124E6042110A404E100C204A004C0 +S31540010590F02460C07FFFC4FA90102010C204A0046A +S315400105A0050180008410A020808840021280014508 +S315400105B001000000C404E100C204E10080A0800102 +S315400105C002800005821020017FFFC4F490102002B2 +S315400105D082102001C224A004C404E100C204E10047 +S315400105E080A080010280014201000000C024A004D5 +S315400105F0C404E100C204E10080A08001028000053C +S3154001060080A720007FFFC4E59010200480A720002A +S315400106101280011180A7200180A6A0010480001A42 +S315400106202F100040A606E001AE15E3E4A810200114 +S31540010630AC14211010800005AA10200180A6801458 +S3154001064004800011A604E00180A4E01F34BFFFFC32 +S31540010650A8052001921000134000290090100017B0 +S31540010660C2058000C4006040872D40138410C0023B +S31540010670C4206040A805200180A6801414BFFFF362 +S31540010680A604E00180A0001C84603FFFC427BFF0A0 +S31540010690C60460C082103FFFF627BFF8C027BFFCE3 +S315400106A0C020E004C020E010C220E014C220E00CCB +S315400106B08206A0038538601F8530A01E8200800116 +S315400106C0AF386002C207BFF08200401B8416E020AB +S315400106D0C227BFECC427BFE829100123AC10200173 +S315400106E0A81520C0310100003B0080002B0180008D +S315400106F080A7200002800003821020018210001C86 +S31540010700C407BFFC80A08001168000CB80A72001D2 +S315400107100480001680A5E00004800014C207BFFCD7 +S31540010720C407BFFC8928601883286010881100011E +S315400107308328A008881100028400E0248811000162 +S3154001074082102001C820E0201080000680A04017BA +S31540010750C8208000820060018400A00480A0401768 +S3154001076012BFFFFC01000000C207BFF0E827BFF43B +S3154001077080A68001A2100001048000338400E008B5 +S315400107801080000EE607BFECE624A004832D8011FD +S31540010790C220E008833E4011808860011280001328 +S315400107A08400E008A204600180A68011048000262E +S315400107B0A604E001C605000080A7200002BFFFF3A2 +S315400107C080A7200102800079C407BFF8C424A00491 +S315400107D0832D8011C220E008833E4011808860014C +S315400107E002BFFFF18400E008C200800080A06000E3 +S315400107F012BFFFFE01000000C204A0048088401819 +S315400108000280006701000000C204A0048088401DE8 +S315400108100280006001000000EA24A004C204A00492 +S31540010820808840151280005601000000C405000072 +S315400108308400A008A204600180A6801114BFFFDED7 +S31540010840A604E001C020800010800005A21020000F +S3154001085080A460200280000780A72000833E4011CB +S315400108608088600122BFFFFBA204600180A72000AF +S315400108701280005180A720018204401B8210602013 +S31540010880C224A004A32D8011E2208000C200800072 +S3154001089080A0600012BFFFFE01000000C204A00458 +S315400108A0808860200280005D01000000C204A0042F +S315400108B0808840180280005601000000C204A0044E +S315400108C08088401D0280004E01000000C207BFF42F +S315400108D0C4004000C204A008E604A00C8600A0089B +S315400108E0E220A008C400C00080A0A00012BFFFFE05 +S315400108F001000000C404A0048088A0202280003C9E +S31540010900C227BFE4C404A004808880182280003432 +S31540010910C227BFE4C404A0048088801D2280002C25 +S31540010920C227BFE4C404A00880A04002028000049C +S31540010930010000007FFFC4199010200EC204A00CD4 +S3154001094080A4C00102800005C407BFF47FFFC41321 +S315400109509010200FC407BFF4C207BFFCC600800039 +S31540010960C407BFF8820060018400A001EA24A00404 +S31540010970C227BFFC10BFFF5FC427BFF87FFFC40774 +S3154001098090102007C405000010BFFFAB8400A008EB +S315400109907FFFC4029010200630BFFFA07FFFC3FF38 +S315400109A09010200530BFFF99F624A00410BFFF79AF +S315400109B0832D80110280001CC607BFF88210E020FB +S315400109C0C224A00410BFFFB1A32D80117FFFC3F342 +S315400109D09010200D10BFFFD4C207BFE47FFFC3EFC5 +S315400109E09010200C10BFFFCCC207BFE47FFFC3EBC2 +S315400109F09010200B10BFFFC4C207BFE47FFFC3E7BF +S31540010A009010200A10BFFFB3C207BFF47FFFC3E3B4 +S31540010A109010200930BFFFAA7FFFC3E09010200845 +S31540010A2030BFFFA3C607BFE8C624A00410BFFF9787 +S31540010A30A32D8011C2042110C020E00C84103FFF79 +S31540010A40B0102000C0206040C420600C81C7E0087F +S31540010A5081E800000280001E1110004080A720009E +S31540010A60A610001B04BFFF08A81020002F1000404D +S31540010A70AC142110AE15E3E410800005AA10200144 +S31540010A8080A7001404BFFF00A604E00180A4E01F74 +S31540010A9034BFFFFCA805200192100013400027EF48 +S31540010AA090100017C2058000C4006040872D401396 +S31540010AB08410C002C420604010BFFFF2A805200187 +S31540010AC07FFFC3B69010200130BFFEBB9210001BC2 +S31540010AD0400027E2901223E4C2042110852F001B17 +S31540010AE0C420604010BFFEE980A0001C7FFFC3AB5D +S31540010AF09010200330BFFEBE9DE3BF80031001244A +S31540010B0011004034231000407FFFC396F02061104E +S31540010B10C0260000C026204082103FFFC226200C7E +S31540010B200310012384102001A0102001C420607805 +S31540010B30A214639492100010400027C8901000112F +S31540010B40A004200180A4201012BFFFFC92100010C7 +S31540010B50F8062020B937201C231001232D00003F21 +S31540010B603700002AB8072001A2146078AC15A3FE0D +S31540010B70B616E2AAA6100018AE102000B4103FFF28 +S31540010B80BA102001A8102020AA10202180A72001F8 +S31540010B900280000580A5E0007FFFC3799010001711 +S31540010BA080A5E0000280000F01000000C024C000C3 +S31540010BB0C024E040F424E00CFA244000832DE01CDC +S31540010BC0C224E024C204E0248330601C80A0401784 +S31540010BD002800004010000007FFFC37090102012C4 +S31540010BE0EC24E008C204E00880A04016028000041C +S31540010BF0010000007FFFC36990102001EC24E04012 +S31540010C00C204E04080A040160280000401000000BA +S31540010C107FFFC36290102002C204E00880A06000FA +S31540010C2012BFFFFE01000000C204400080A0601018 +S31540010C3002800005A01020017FFFC35890102003B9 +S31540010C40A0102001832C2002C204400184250010FB +S31540010C5080A0800122800005A00420017FFFC34FB0 +S31540010C6090102004A004200180A4201012BFFFF799 +S31540010C70832C2002FA244000F624C000EC24E040F4 +S31540010C80C204C00080A0401B028000040100000095 +S31540010C907FFFC34290102005C204E04080A0401669 +S31540010CA002800004010000007FFFC33C9010200534 +S31540010CB0EC24E008C204E00880A0600012BFFFFEF9 +S31540010CC001000000C204400080A0601002800005BF +S31540010CD0A410201F7FFFC33190102006A410201FAF +S31540010CE0A0102001832C2002C204400180A04012A2 +S31540010CF022800005A00420017FFFC3289010200711 +S31540010D00A004200180A4200812BFFFF7A404BFFE5F +S31540010D10A410201CA010200A832C2002C2044001EA +S31540010D2080A0401222800005A00420017FFFC31B42 +S31540010D3090102008A004200180A4201012BFFFF7C4 +S31540010D40A404BFFEFA27BFF082102002C407BFF0F9 +S31540010D508400A001C427BFF4C407BFF48400A001E6 +S31540010D60C427BFF8C407BFF88400A001C427BFFC4D +S31540010D7084102006C427BFE0C024C000C024E04040 +S31540010D80FA244000C224E040C224E00883444000E3 +S31540010D90808861000280000501000000805000014A +S31540010DA08050000180500001C207BFE0C227BFE466 +S31540010DB0C207BFE080A060060280000582102002C3 +S31540010DC07FFFC2F69010200A82102002C224E0085A +S31540010DD001000000C207BFE0C227BFE4C207BFE06F +S31540010DE080A0600602800005821020027FFFC2EBD0 +S31540010DF09010200A82102002C224E008010000005F +S31540010E00C027BFE4C207BFE480A060001280007320 +S31540010E1001000000C204E00880A0600012BFFFFE8E +S31540010E2001000000C204400080A06004028000046A +S31540010E30010000007FFFC2D99010200DC024E04080 +S31540010E40EC24E008FA2440004000020B01000000B7 +S31540010E504000020B90122F00EC24E040C204E04017 +S31540010E6080A0600002BFFFFE01000000C2044000F6 +S31540010E7080A0600202800004010000007FFFC2C71B +S31540010E809010200EC204600480A0601F02800004FE +S31540010E90010000007FFFC2C19010200F400001F603 +S31540010EA0A4102002400001F690023F00400001F2EA +S31540010EB001000000400001F290023F00C2044000E0 +S31540010EC0A004A00180A0401022800005A52CA0020C +S31540010ED07FFFC2B290102010A52CA002C40440127C +S31540010EE08225401080A0800102800004A4100010D9 +S31540010EF07FFFC2AA9010201180A4201012BFFFECE0 +S31540010F0001000000C024E040F424E00CAE05E001FD +S31540010F1080A7001714BFFF1EA624F00080A720015A +S31540010F200480002C01000000C0262024C206202493 +S31540010F3080A060001280002C010000000304000024 +S31540010F40C2262024C406202480A0800102800005F8 +S31540010F50821020017FFFC29190102014821020013F +S31540010F60C2262020C026202403040000C4062024D3 +S31540010F7080A0800102800004010000007FFFC2873B +S31540010F8090102015C0262020C0262024C2062024E9 +S31540010F9080A060001280001B010000008210200228 +S31540010FA0C2262020C20620208088600202800012CC +S31540010FB001000000C0262020C20620208088600251 +S31540010FC002800004010000007FFFC27490102018C7 +S31540010FD081C7E00891E820007FFFC2709010200B86 +S31540010FE030BFFF8D7FFFC26D9010201310BFFFD51C +S31540010FF0030400007FFFC2699010201730BFFFEE47 +S315400110007FFFC2669010201610BFFFE682102002B5 +S315400110109DE3BFA07FFFC27D0100000080A22000AA +S315400110200280003B0100000080A6200012800035AE +S31540011030010000007FFFC27501000000912A2004D3 +S315400110407FFFC24F9002200340001880010000003C +S3154001105080A2200012800028010000004000181FD5 +S3154001106001000000400017CD01000000400001E3EF +S315400110700100000080A6A0001280001C01000000B3 +S315400110807FFFC26221100124912A2002A01421145B +S31540011090C204000880A060000280000A80A62000E9 +S315400110A07FFFC25A01000000912A20027FFFC257EA +S315400110B0E00400089FC400000100000080A6200053 +S315400110C002800004010000007FFFC26990100019F0 +S315400110D0400004400100000040001E4F0100000096 +S315400110E0400015D281E8000040001F2101000000A8 +S315400110F030BFFFE47FFFC2299010200130BFFFD8E7 +S315400111007FFFC24B9010001930BFFFCB7FFFC21546 +S315400111101100400C10BFFFC680A62000031001231A +S31540011120C40060C48400A001C42060C481C3E00837 +S31540011130010000009DE3BFA07FFFC20A11004044A9 +S3154001114082103FFFE4062008C2262004A40CA00713 +S31540011150C4060000C206000080A08001028000741F +S31540011160010000008210201FC2262004C226000072 +S3154001117080A4A0000280004E8210200085286004D1 +S31540011180840600028200600180A04012C020A0189F +S3154001119012BFFFFC85286004A0102000A610200F76 +S315400111A0AA102006A81020107FFFC1F5901000104C +S315400111B0A2042001832C600486060001A12C200490 +S315400111C0C026000184060010E620E004EA20A018AB +S315400111D0C206000180A0600F028000058206001051 +S315400111E07FFFC1EE90102003820600108410200E6E +S315400111F0872C6004E6206018C206000380A04002E6 +S3154001120012BFFFFE010000008400BFFF80A0BFFFA8 +S3154001121012BFFFFA01000000852C6004C2060002DD +S3154001122080A0600F12BFFFFE82060010C200601848 +S315400112308088601002800033A0060010E824201840 +S31540011240C204201880886010128000350100000019 +S3154001125080A4801114BFFFD5A010001180A4A00165 +S315400112600480000C821020007FFFC1C59010200829 +S315400112708210200FC22620188210202FC226202835 +S31540011280C206202080A0600D12BFFFFE8210200002 +S3154001129085286004840600028200600180A0401215 +S315400112A0C020A01812BFFFFC85286004211001242C +S315400112B0C204211080A06000028000109210001923 +S315400112C011100044400025E59012211C7FFFFC3D92 +S315400112D0D0042110C204211084102001B3288019A2 +S315400112E0F22060408210200FC22620148210200D69 +S315400112F0C2262018A780000081C7E00881E80000C7 +S315400113007FFFC1A690102004E8242018C2042018AB +S315400113108088601022BFFFD080A480117FFFC19FCB +S315400113209010200510BFFFCC80A480117FFFC19B88 +S315400113309010200110BFFF8D8210201F0000000079 +S315400113400100000001000000010000000100000052 +S31540011350010000000100000081C3E0080100000017 +S315400113600100000001000000010000000100000032 +S31540011370010000000100000081C3E00801000000F7 +S315400113800100000001000000010000000100000012 +S31540011390010000000100000081C3E00801000000D7 +S315400113A001000000010000000100000001000000F2 +S315400113B0010000000100000081C3E00801000000B7 +S315400113C0D482018090A2000916BFFFFE9612800BBF +S315400113D081C3E0089010000BD48201C090A200099D +S315400113E016BFFFFE9612800B81C3E0089010000BDA +S315400113F090A22004C0A201A090A22004C0A201A0F4 +S3154001140090A22004C0A201A090A22004C0A201A0E3 +S31540011410C0A2018090A2200414BFFFF70100000082 +S3154001142081C3E0080100000090A22004C0A201E0AF +S3154001143090A22004C0A201E090A22004C0A201E033 +S3154001144090A22004C0A201E0C0A201C090A2200443 +S3154001145014BFFFF70100000081C3E008010000004E +S31540011460981000089610000A98A3200814BFFFFFA1 +S31540011470D43B00099810000898A3200814BFFFFF29 +S31540011480C01B00099810000898A32004D603000940 +S3154001149080A2C00A1280000698A3200434BFFFFD33 +S315400114A0D603000981C3E008901020009010200166 +S315400114B0981000089610000A98A3200814BFFFFF51 +S315400114C0D43B00099810000898A32004D6030009CC +S315400114D080A2C00A1280000698A3200434BFFFFDF3 +S315400114E0D603000981C3E008901020009010200126 +S315400114F09810000898A32004D2A301A0DA8301A082 +S3154001150080A340091280000698A3200414BFFFFC63 +S31540011510D2A301A081C3E0089010200090102001C1 +S315400115209A1000089AA3400AD6A34180D8834180E5 +S31540011530981B000B988B0009128000069AA3400A5B +S3154001154014BFFFFBD6A3418081C3E0089010200061 +S31540011550901020019A1000089AA3400BD8A241CDC1 +S31540011560C48241CD8418800C8488800A128000068A +S315400115709AA3400B14BFFFFBD8A241CD81C3E0081B +S315400115809010200090102001010000000100000091 +S315400115900100000013100080921260E0D402400066 +S315400115A080A2A0011280000780A0A002D4024000C0 +S315400115B0D4024000952AA0021080000501000000D7 +S315400115C03280000381E80000D402400081E000003F +S315400115D093480000818A602023100045A21461F8D7 +S315400115E0A40460040100000081C4400081CC800055 +S315400115F091D0200191D02001268000059000200144 +S3154001160090222001912A2001912A200281C3E008DB +S315400116100100000081C3E008D082004081C3E00898 +S31540011620D2A2004081C3E008D082018081C3E00894 +S31540011630D2A2018081C3E008D08201A081C3E00823 +S31540011640D2A201A081C3E008D08201C081C3E008D3 +S31540011650D2A201C081C3E008D08201E081C3E00883 +S31540011660D2A201E081C3E008D2A2000081C3E00812 +S31540011670D082000081C3E00891480000818A0000C1 +S3154001168001000000010000000100000081C3E008E4 +S315400116900100000081C3E008C0A000A081C3E008AA +S315400116A0C0A000C081C3E008D01A000001000000BC +S315400116B001000000010000000100000001000000DF +S315400116C09DE3BF8803100070D1186078D13FBFF009 +S315400116D003100080D11FBFF0D9186180031000802C +S315400116E0D518618895A308CAD53FBFF80310008075 +S315400116F0D91FBFF8D518619081AB0A4A0100000095 +S3154001170023800038D127BFEC91A005480310007013 +S31540011710D13FBFF8D51FBFF8D91FBFF899A3094AD2 +S31540011720D51FBFF099A308CA99A0012CD51860808E +S3154001173081AB0ACA010000002D800024D127BFECED +S3154001174091A018C891A20928D51FBFF091A01928C8 +S3154001175091A208CA91A0012803100070D51860888B +S3154001176081AA0ACA010000000D800015010000008F +S315400117704000019001000000400001EE0100000020 +S3154001178080A220001280000B0100000040000243AD +S315400117900100000080A22000128000040100000028 +S315400117A081C7E00881E800007FFFC07C91E8200501 +S315400117B07FFFC07A0100000030BFFFF57FFFC07791 +S315400117C09010200330BFFFEBD327BFE87FFFC073E4 +S315400117D090102002D307BFE810BFFFDAD107BFEC54 +S315400117E0D327BFE87FFFC06D90102001D307BFE824 +S315400117F010BFFFC6D107BFEC9DE3BFA07FFFFF9E91 +S31540011800210000047FFFFF9E901200107FFFFF9A88 +S3154001181001000000808A001012800004B0102000F0 +S3154001182081C7E00881E80000400002669010200070 +S315400118307FFFC07601000000912A20047FFFC0503F +S31540011840900220087FFFFF9F81E800000100000011 +S3154001185019100080981321201110020092102000C7 +S31540011860150FF76C9412A3D7D03B0000D423200860 +S31540011870C11B0000C503200887A089220100000082 +S3154001188089A005408DA0892281A8CA2601000000B1 +S3154001189033800003901020009010200181C3E0089E +S315400118A001000000C11A0000C51A400089A0084283 +S315400118B081C3E008C93A8000C11A0000C51A400038 +S315400118C089A0094281C3E008C93A80001910008005 +S315400118D098132120D0230000D2232008C103000001 +S315400118E0C303200885A00D2181C3E008C53A8000C5 +S315400118F0C11A0000C51A400089A009C2C93A800030 +S3154001190081C3E00801000000C11A000085A005401E +S31540011910C53A400081C3E008010000000100000013 +S31540011920010000000100000001000000010000006C +S31540011930010000000100000001000000010000005C +S31540011940010000000100000001000000010000004C +S31540011950010000000100000001000000010000003C +S31540011960010000000100000001000000010000002C +S31540011970010000000100000001000000010000001C +S31540011980010000000100000001000000010000000C +S3154001199001000000010000000100000081A00020BC +S315400119A081C3E00801000000C11A000081C3E008BC +S315400119B001000000C51A000089A009C2C93A4000C9 +S315400119C081C3E008010000001310008092126120DB +S315400119D0D0224000C102400085A01900C53A40000E +S315400119E081C3E008D01A4000131000809212612092 +S315400119F0D0224000C102400085A01880C522400087 +S31540011A0081C3E008D0024000151000809412A12045 +S31540011A10D03A8000C11A800085A01A40C5228000B4 +S31540011A2081C3E008D0028000151000809412A120E5 +S31540011A30D0228000C102800085A01A20C5228000E4 +S31540011A4081C3E008D0028000151000809412A120C5 +S31540011A50D0228000C102800081A01920C13A8000B5 +S31540011A6081C3E008D01A8000151000809412A1208D +S31540011A70D03A8000C11A800081A018C0C1228000DE +S31540011A8081C3E008D0028000151000809412A12085 +S31540011A90D0228000CB0280008DA00025CD2280007F +S31540011AA081C3E008D0028000151000809412A12065 +S31540011AB0D0228000CB0280008DA000A5CD228000DF +S31540011AC081C3E008D0028000151000809412A12045 +S31540011AD0D0228000CB0280008DA00125CD2280003E +S31540011AE081C3E008D002800019100080981321209C +S31540011AF0D03B0000D43B2008C11B0000C51B200879 +S31540011B0081A80A420100000033800009901020009C +S31540011B1029800007901020012D8000059010200299 +S31540011B202F8000039010200391D0200081C3E0084C +S31540011B30010000001910008098132120D03B0000BD +S31540011B40D43B2008C11B0000C51B200881A80AC23E +S31540011B500100000033BFFFF69010200029BFFFF4BB +S31540011B60901020012DBFFFF2901020022FBFFFF0F1 +S31540011B709010200391D02000191000809813212045 +S31540011B80D0230000D2232008C1030000C30320084C +S31540011B9081A80A210100000033BFFFE59010200013 +S31540011BA029BFFFE3901020012DBFFFE190102002D5 +S31540011BB02FBFFFDF9010200391D020001910008025 +S31540011BC098132120D0230000D2232008C10300000E +S31540011BD0C303200881A80AA10100000033BFFFD436 +S31540011BE09010200029BFFFD2901020012DBFFFD0B9 +S31540011BF0901020022FBFFFCE9010200391D02000DD +S31540011C001910008098132120D03B0000D43B2008B6 +S31540011C10C11B0000C51B200889A008C2C93B0000A2 +S31540011C2081C3E008D01B00001910008098132120C1 +S31540011C30D0230000D2232008C1030000C30320089B +S31540011C4085A00821C523000081C3E008D003000018 +S31540011C501910008098132120D0230000D223200898 +S31540011C60C1030000C303200885A008A1C5230000C5 +S31540011C7081C3E008D0030000191000809813212089 S31540011C80D0230000D2232008C1030000C30320084B -S31540011C9081A80A210100000033BFFFE59010200012 -S31540011CA029BFFFE3901020012DBFFFE190102002D4 -S31540011CB02FBFFFDF9010200391D020001910008024 -S31540011CC098132178D0230000D2232008C1030000B5 -S31540011CD0C303200881A80AA10100000033BFFFD435 -S31540011CE09010200029BFFFD2901020012DBFFFD0B8 -S31540011CF0901020022FBFFFCE9010200391D02000DC -S31540011D001910008098132178D03B0000D43B20085D -S31540011D10C11B0000C51B200889A008C2C93B0000A1 -S31540011D2081C3E008D01B0000191000809813217868 -S31540011D30D0230000D2232008C1030000C30320089A -S31540011D4085A00821C523000081C3E008D003000017 -S31540011D501910008098132178D0230000D22320083F -S31540011D60C1030000C303200885A008A1C5230000C4 -S31540011D7081C3E008D0030000191000809813217830 -S31540011D80D0230000D2232008C1030000C30320084A -S31540011D9085A00921C523000081C3E008D0030000C6 -S31540011DA01910008098132178D0230000D2232008EF -S31540011DB0C1030000C303200885A009A1C523000073 -S31540011DC081C3E008D00300001910008098132178E0 -S31540011DD0D0230000C103000083A00520C3230000D7 -S31540011DE081C3E008D0030000131000809212619075 -S31540011DF0C51A6008C11A400089A0084091A108C2CD -S31540011E0095A209C495A2894281C3E008D53A00004A -S31540011E1013100080921261B0C1024000C3026004F7 -S31540011E2085A0082087A088A189A0C9A289A10921E6 -S31540011E3081C3E008C92200009610200213100080D9 -S31540011E4092126190151000809412A190D502400023 -S31540011E50D7028000D5220000D8020000131000806E -S31540011E60921261B096A2E00112BFFFF90100000093 -S31540011E7081C3E008010000001310008092126190B6 -S31540011E80151000809412A1B0C1028000C51A6010DD -S31540011E9083A0082089A088C08BA109A18DA10942F0 -S31540011EA08FA1492691A0054681C3E008D13A000099 -S31540011EB01110008090122188C11A0000C51A000035 -S31540011EC0C91A0000CD1A0000D11A0000D51A000027 -S31540011ED0D91A0000DD1A0000E11A0000E51A0000D7 -S31540011EE0E91A0000ED1A0000F11A0000F51A000087 -S31540011EF0F91A0000FD1A000081C3E0080100000044 -S31540011F0029100080A815215827100080A614E1C089 -S31540011F10C12CC000E604C000A134E00EA00C20078D -S31540011F20A0A42002AE1020002D100080AC15A1C047 -S31540011F30AE05E001AC05A008C1358000C12D000009 -S31540011F40EA050000AB35600DAA8D600112BFFFF9AD -S31540011F5001000000808000100280002F2B3C1FFFF3 -S31540011F60AA1563FFA60CC015E6250000C10D0000A9 -S31540011F702B100080AA1561CC2D100047AC15A3E0AB -S31540011F80AE25E001E0054000E025800081D8200033 -S31540011F9001000000010000000100000001000000F6 -S31540011FA001000000010000000100000001000000E6 -S31540011FB001000000010000000100000001000000D6 -S31540011FC001000000010000000100000001000000C6 -S31540011FD001000000010000000100000001000000B6 -S31540011FE00000000080A5C00012BFFFE6AA056008F8 -S31540011FF0C12D0000E60500002B03C000A614C01544 -S31540012000E6250000C10D000081C4400081CC80005E -S315400120100100000081C4800081CCA00401000000C1 -S315400120200100000081C3E008915800000100000052 -S315400120301110008090122158C10A0000C0220000F0 -S31540012040C10A0000C12A0000D40200001300038027 -S31540012050942A800980A0000A3280004D9010200306 -S315400120601303E000D223BFA0C023BFA4C10BBFA06E -S31540012070C023BFA0151000809412A170C102800038 -S315400120800100000001000000C10BBFA0C10BBFA4AD -S3154001209083A00520C12BBFA0D003BFA0808A220008 -S315400120A02280003B901020049010200015100080E3 -S315400120B09412A140C5028000C902A008D102A00C19 -S315400120C01310008092126170C70240008DA08944AE -S315400120D081A98AC8010000000380000501000000B3 -S315400120E0901020011080002A01000000C5028000E6 -S315400120F0C902A008D102A00C13100080921261708F -S31540012100CB0240008DA0894481A98AC80100000004 -S315400121100380000501000000901020011080001C82 -S315400121200100000025100080A414A168C11C800094 -S31540012130C51C800080A000003280000685A008C032 -S3154001214081A80AC2010000001380000301000000BB -S31540012150901020050100000025100080A414A168FC -S31540012160C11C8000C51C800080A000000100000049 -S315400121703280000685A008C081A80AC2010000007D -S3154001218013800003010000009010200701000000A9 -S3154001219081C3E00801000000901020019544000031 -S315400121A09532A01E940AA00380A2800002800040BE -S315400121B09010200080A2A0030280003D13100080F1 -S315400121C0921261F0C11A4000C51A6008FD026018FA -S315400121D095A0003E99A0003E9DA0003E170000C07C -S315400121E09612E078A182C0000100000001000000C3 -S315400121F00100000001000000010000000100000094 -S3154001220081A0002083A0002195A0002A99A0002C3E -S315400122109DA0002E170000C09612E07CA182C0004E -S315400122200100000001000000010000000100000063 -S31540012230010000000100000085A0002287A00023C4 -S31540012240A180000001000000010000000100000023 -S3154001225001000000010000000100000089A00842C1 -S31540012260A9A2883ED93A4000DD224000CD1A60102D -S31540012270D102600881A90A46010000000380000CD2 -S3154001228081AD0A2801000000038000099344000043 -S315400122909332601B920A60079010200080A2A00131 -S315400122A002800003902260079022600481C3E00807 -S315400122B001000000C12BBFA081C3E008D003BFA02D -S315400122C0D023BFA081C3E008C10BBFA0010000001D -S315400122D09DE3BF6040001B17B0102000913A200AD1 -S315400122E0900A200380A220011280111101000000F2 -S315400122F07FFFBBBE9010200D190C40291B23CD1B1F -S315400123009410200096102000981320069A13609B83 -S31540012310D43FBFE0D43FBFC0D43FBFE87FFFFF42B9 -S31540012320D83FBFF0900A3000032804009012208065 -S315400123308210600FC22200001B1000479002200449 -S315400123409A1363009A234008191000009B3B6002D0 -S31540012350032784009A13400C82106010C222200485 -S315400123607FFFFED4DA2200007FFFFFD61103E00093 -S315400123702D100080C025A1C07FFFFDD49010200004 -S31540012380809200091280000601000000C205A1C02A -S3154001239080A0600002800004010000007FFFBB981E -S315400123A09010200B7FFFFDC990103FFA03300600C5 -S315400123B080A200011280000480A2600002800EDB30 -S315400123C0010000007FFFBB8E9010200B7FFFFDBFF9 -S315400123D09010201403100D0080A200011280000409 -S315400123E080A2600002800ECC010000007FFFBB840A -S315400123F09010200B7FFFFDB5901020620310162030 -S3154001240080A200011280000480A2600002800EBDFD -S31540012410010000007FFFBB7A9010200B7FFFFDB3C8 -S31540012420901020050310280080A2000112800006AA -S3154001243001000000C205A1C080A060000280000426 -S31540012440010000007FFFBB6E9010200B7FFFFF9DB8 -S315400124501103C000111C00007FFFFDAC921020004B -S31540012460031FFFFF821063FF80A200011280000A52 -S315400124701B000070C205A1C09A13601F190000100D -S315400124808208400D9813201080A0400C0280000560 -S31540012490113C00007FFFBB5A9010200C113C0000FC -S315400124A07FFFFD9A921020000320000080A20001C8 -S315400124B01280000A1B000070C205A1C09A13601F5A -S315400124C0190000108208400D9813201080A0400C7E -S315400124D002800004010000007FFFBB499010200CE0 -S315400124E0C025A1C0901020007FFFFD8892102000DA -S315400124F080A220001280000601000000C205A1C092 -S3154001250080A0600002800005110144007FFFBB3CB2 -S315400125109010200C11014400132840009012230210 -S315400125207FFFFD7A9212600180A220001280000690 -S3154001253001000000C205A1C080A060002280000504 -S315400125401111FFFF7FFFBB2E9010200C1111FFFFD1 -S315400125507FFFFD76901223FF0300007F821063FF09 -S3154001256080A200011280000601000000C205A1C040 -S3154001257080A06000028000052F1000857FFFBB20F0 -S315400125809010200C2F1000857FFFFD60D01DE0C804 -S31540012590031FFFFF821063FF80A200011280000A21 -S315400125A01B000070C205A1C09A13601F19000010DC -S315400125B08208400D9813201080A0400C028000052F -S315400125C0031000857FFFBB0E9010200C0310008581 -S315400125D0D01860D8C025A1C07FFFFD4C0100000086 -S315400125E00320000080A200011280000A1B00007037 -S315400125F0C205A1C09A13601F190000108208400D40 -S315400126009813201080A0400C028000051910008507 -S315400126107FFFBAFB9010200C19100085C025A1C080 -S315400126207FFFFD3AD01B20B8031FFFFF821063FFD7 -S3154001263080A200011280000A1B000070C205A1C0E1 -S315400126409A13601F190000108208400D981320103C -S3154001265080A0400C02800005331000857FFFBAE858 -S315400126609010200C33100085C025A1C07FFFFD27A7 -S31540012670D01E60F0C205A1C08330600E820860039F -S3154001268080A0600202800004211000807FFFBADC36 -S315400126909010200C7FFFFF0B1103C000111158044D -S315400126A0C02421C07FFFFD299012223403102B0044 -S315400126B08210624680A200011280000503200000BC -S315400126C080A2400102800FC5010000007FFFBACC05 -S315400126D09010200D113C02AF7FFFFD1C901220D1BE -S315400126E0033180558210639A80A200011280000551 -S315400126F00308000080A2400102800FDB01000000B8 -S315400127007FFFBABF9010200D1111FC007FFFFD170E -S3154001271092102000031FE00080A200011280000AEF -S315400127201B000070C205A1C09A13601F190000105A -S315400127308208400D9813200880A0400C02800005B5 -S3154001274011207C017FFFBAAE9010200D11207C0133 -S31540012750C025A1C0901220307FFFFD041300010067 -S315400127600320000080A200011280000A1B000070B5 -S31540012770C205A1C09A13601F190000108208400DBE -S315400127809813200480A0400C028000040100000040 -S315400127907FFFBA9B9010200DC025A1C0901020004C -S315400127A07FFFFCF29210200080A2200012800006DA -S315400127B001000000C205A1C080A0600002800004A3 -S315400127C0010000007FFFBA8E9010200D7FFFFCE7CD -S315400127D0D01DE0C803100085DA0060C080A2000D5C -S315400127E01280000601000000C205A1C080A0600061 -S315400127F0028000051B1000857FFFBA819010200DD5 -S315400128001B1000857FFFFCD9D01B60D0031FE00061 -S3154001281080A200011280000601000000C205A1C08D -S3154001282080A0600002800005031000857FFFBA7416 -S315400128309010200D031000857FFFFCCCD01860B8A6 -S3154001284003100085DA0060A880A2000D1280000AFC -S315400128501B000070C205A1C09A13601F1900001029 -S315400128608208400D9813201080A0400C028000047D -S31540012870010000007FFFBA629010200DC025A1C063 -S315400128807FFFFCBAD01E60F0C205A1C08330600E46 -S315400128908208600380A06002028000042310008049 -S315400128A07FFFBA579010200D7FFFFE861103E0008F -S315400128B02108C6AF901420DEC02461C07FFFFCB35F -S315400128C0A01420DE80A20010128000060100000044 -S315400128D0C20461C080A06000028000052108C6AF25 -S315400128E07FFFBA479010200E2108C6AF7FFFFCB785 -S315400128F0901420DEA01420DE80A200101280000673 -S3154001290001000000C205A1C080A060002280000530 -S315400129101128C6AF7FFFBA3A9010200E1128C6AFD4 -S315400129207FFFFCAA901220DE0308C6AF821060DE4C -S3154001293080A200011280000601000000C205A1C06C -S3154001294080A06000228000051108C6AF7FFFBA2C27 -S315400129509010200E1108C6AF7FFFFC94901220DE26 -S315400129600328C6AF821060DE80A2000112800006F5 -S3154001297001000000C205A1C080A0600022800005C0 -S315400129801128C6AF7FFFBA1E9010200E1128C6AF80 -S315400129907FFFFC86901220DE0308C6AF821060DE00 -S315400129A080A200011280000601000000C205A1C0FC -S315400129B080A0600002800004010000007FFFBA1081 -S315400129C09010200E7FFFFE3F1103E00011151BC042 -S315400129D01310C82115351BC01710C82190122103A9 -S315400129E0921261419412A1037FFFFC809612E1414C -S315400129F080A220021280000601000000C205A1C08B -S31540012A0080A060000280000511351BC07FFFB9FC24 -S31540012A109010200F11351BC01310C82115151BC06E -S31540012A201710C82190122103921261419412A103F9 -S31540012A307FFFFC6E9612E14180A2200112800006C2 -S31540012A4001000000C205A1C080A06000028000050F -S31540012A50901020007FFFB9EA9010200F90102000BF -S31540012A6092102000152000007FFFFC609610200088 -S31540012A7080A220001280000601000000C205A1C00C -S31540012A8080A0600002800005191000857FFFB9DC37 -S31540012A909010200F191000851B100085D01B20D0E7 -S31540012AA07FFFFC52D41B60D880A220021280000610 -S31540012AB001000000C205A1C080A06000028000059F -S31540012AC011151BC07FFFB9CE9010200F11151BC0E9 -S31540012AD01310C82115151BE81710C82190122103A0 -S31540012AE0921261419412A1037FFFFC409612E1418B -S31540012AF080A220011280000601000000C205A1C08B -S31540012B0080A060000280000511151BE87FFFB9BC5B -S31540012B109010200F11151BE81310C82115151BC065 -S31540012B201710C82190122103921261419412A103F8 -S31540012B307FFFFC2E9612E14180A220021280000600 -S31540012B4001000000C205A1C080A06000028000050E -S31540012B5011151BE87FFFB9AA9010200F11151BE82C -S31540012B601310C82190122103921261417FFFFC1F6D -S31540012B70D41DE0C880A22003128000060100000097 -S31540012B80C205A1C080A06000028000050310008537 -S31540012B907FFFB99B9010200F0310008511151BE88C -S31540012BA01310C82190122103921261417FFFFC0F3D -S31540012BB0D41860B880A220031280000A1B0000705E -S31540012BC0C205A1C09A13601F190000108208400D6A -S31540012BD09813201080A0400C0280000511151BE8B7 -S31540012BE07FFFB9879010200F11151BE81310C821DC -S31540012BF0C025A1C090122103921261417FFFFBFBC8 -S31540012C00D41E60F080A2200212800006010000005E -S31540012C10C205A1C080A060000280000515151BE811 -S31540012C207FFFB9779010200F15151BE81710C821A3 -S31540012C30D01E60F09412A1037FFFFBEC9612E14196 -S31540012C4080A220011280000601000000C205A1C039 -S31540012C5080A060000280000515151BE87FFFB9685A -S31540012C609010200F15151BE81710C821D01DE0C87C -S31540012C709412A1037FFFFBDD9612E14180A220035E -S31540012C801280000601000000C205A1C080A06000BC -S31540012C9002800005191000857FFFB9599010200F59 -S31540012CA01910008515151BE81710C821D01B20B82F -S31540012CB09412A1037FFFFBCD9612E14180A220032E -S31540012CC01280000A1B000070C205A1C09A13601F42 -S31540012CD0190000108208400D9813201080A0400C66 -S31540012CE00280000511151BC07FFFB9459010200FCA -S31540012CF011151BC01310C82115351BC01710C8214B -S31540012D00C025A1C090122103921261419412A103E0 -S31540012D107FFFFBC99612E14180A220021280000684 -S31540012D2001000000C205A1C080A06000028000052C -S31540012D3011351BC07FFFB9329010200F11351BC0D2 -S31540012D401310C82115151BC01710C8219012210355 -S31540012D50921261419412A1037FFFFBB79612E141A2 -S31540012D6080A220011280000601000000C205A1C018 -S31540012D7080A0600002800005901020007FFFB920EE -S31540012D809010200F90102000921020001520000076 -S31540012D907FFFFBA99610200080A22000128000062A -S31540012DA001000000C205A1C080A0600002800005AC -S31540012DB01B1000857FFFB9129010200F1B10008554 -S31540012DC003100085D01B60D07FFFFB9BD41860D8D1 -S31540012DD080A220021280000601000000C205A1C0A7 -S31540012DE080A060000280000511151BC07FFFB90459 -S31540012DF09010200F11151BC01310C82115151BE883 -S31540012E001710C82190122103921261419412A10315 -S31540012E107FFFFB899612E14180A2200112800006C4 -S31540012E2001000000C205A1C080A06000028000052B -S31540012E3011151BE87FFFB8F29010200F11151BE802 -S31540012E401310C82115151BC01710C8219012210354 -S31540012E50921261419412A1037FFFFB779612E141E1 -S31540012E6080A220021280000601000000C205A1C016 -S31540012E7080A060000280000511151BE87FFFB8E0C5 -S31540012E809010200F11151BE81310C8219012210331 -S31540012E90921261417FFFFB68D41DE0C880A22003E6 -S31540012EA01280000A1B000070C205A1C09A13601F60 -S31540012EB0190000108208400D9813201080A0400C84 -S31540012EC002800005191000857FFFB8CD9010200FB4 -S31540012ED01910008511151BE81310C8219012210302 -S31540012EE0921261417FFFFB54D41B20B880A220037C -S31540012EF01280000A1B000070C205A1C09A13601F10 -S31540012F00190000108208400D9813201080A0400C33 -S31540012F100280000511151BE87FFFB8B99010200FFC -S31540012F2011151BE81310C821C025A1C09012210319 -S31540012F30921261417FFFFB40D41E60F080A22002C5 -S31540012F401280000601000000C205A1C080A06000F9 -S31540012F500280000515151BE87FFFB8A99010200FC8 -S31540012F6015151BE81710C821D01E60F09412A10355 -S31540012F707FFFFB319612E14180A2200112800006BB -S31540012F8001000000C205A1C080A0600002800005CA -S31540012F9015151BE87FFFB89A9010200F15151BE8F1 -S31540012FA01710C821D01DE0C89412A1037FFFFB2250 -S31540012FB09612E14180A220031280000A1B00007094 -S31540012FC0C205A1C09A13601F190000108208400D66 -S31540012FD09813201080A0400C028000051B1000852C -S31540012FE07FFFB8879010200F1B10008515151BE831 -S31540012FF01710C821D01B60B89412A1037FFFFB0EA6 -S315400130009612E14180A220031280000A1B00007043 -S31540013010C205A1C09A13601F190000108208400D15 -S315400130209813201080A0400C02800005110048EA48 -S315400130307FFFB8739010200F110048EA13048D15D5 -S31540013040C025A1C0901223CD7FFFFB0C921262785E -S3154001305080A220011280000601000000C205A1C025 -S3154001306080A0600002800005110048EA7FFFB86435 -S315400130709010200F110048EA13048D15901223CDAC -S315400130807FFFFB0F9212627880A220011280000618 -S3154001309001000000C205A1C080A0600002800004BA -S315400130A0010000007FFFB8569010200FC025A1C037 -S315400130B07FFFFC841103C000291001449007BFF033 -S315400130C09207BFE87FFFFA3894152120C207BFF067 -S315400130D0DA05212080A0400D1280000782152120AB -S315400130E0DA006004C207BFF480A0400D02800D598A -S315400130F0010000007FFFB842901020103710008574 -S315400131009007BFF09216E0E07FFFFA279415212041 -S31540013110C206E0E0DA05212080A340018215212084 -S31540013120128000079816E0E0DA006004C20320042A -S3154001313080A3400102800D42010000007FFFB830AC -S31540013140901020109007BFF09215E0C87FFFFA1645 -S3154001315094152120C205E0C8DA05212080A340014B -S3154001316082152120128000079815E0C8DA00600414 -S31540013170C203200480A3400102800D2C01000000FF -S315400131807FFFB81F9010201003100085921060B881 -S315400131909007BFF07FFFFA04941521201B000070B1 -S315400131A0C205A1C09A13601F190000108208400D84 -S315400131B09813201080A0400C028000042110014485 -S315400131C07FFFB80F9010201003100080C02061C00F -S315400131D07FFFFC3C901020001310008594142120A1 -S315400131E0921260B87FFFF9F09007BFF03910008561 -S315400131F0C20720B0DA04212080A340019414212083 -S3154001320012800007821720B0DA02A004C2006004CF -S3154001321080A3400102800004010000007FFFB7F84F -S31540013220901020107FFFFC271103C0009007BFF0CC -S31540013230921660F07FFFF9DC94152120C205A1C0EA -S315400132408330600E8208600380A060022110014431 -S3154001325002800004231000807FFFB7E99010201000 -S3154001326094142120C02461C09007BFE87FFFF9CEA6 -S315400132709207BFF0DA042120C207BFF080A34001C4 -S315400132801280000794142120DA02A004C207BFF479 -S3154001329080A3400102800D21010000007FFFB7D8C5 -S315400132A0901020109007BFE89216E0E07FFFF9BE2C -S315400132B094152120C206E0E0DA05212080A34001D1 -S315400132C082152120128000079816E0E0DA0060049A -S315400132D0C203200480A3400102800D0B01000000BF -S315400132E07FFFB7C7901020109007BFE89215E0C83E -S315400132F07FFFF9AD94152120C205E0C8DA052120EA -S3154001330080A3400182152120128000079815E0C84C -S31540013310DA006004C203200480A3400102800CF558 -S31540013320010000007FFFB7B69010201019100085EC -S31540013330921320B89007BFE87FFFF99B941521208F -S315400133401B000070C205A1C09A13601F190000102E -S315400133508208400D9813201080A0400C0280000482 -S31540013360211001447FFFB7A6901020107FFFFBD5A7 -S31540013370901020001310008594142120921260B8F9 -S315400133807FFFF9899007BFE8C20720B0DA04212000 -S3154001339080A340019414212012800007821720B097 -S315400133A0DA02A004C200600480A340010280000446 -S315400133B0010000007FFFB792901020107FFFFBC1F4 -S315400133C01103C0009007BFE8921660F07FFFF976BF -S315400133D094152120C205A1C08330600E8208600386 -S315400133E080A0600221100144028000042310008065 -S315400133F07FFFB7839010201094142120C02461C010 -S315400134009016E0E07FFFF9689207BFF0C206E0E060 -S31540013410DA04212080A34001941421201280000760 -S315400134208216E0E0DA02A004C200600480A34001F3 -S3154001343002800CAB010000007FFFB7719010201095 -S315400134409016E0E09207BFE87FFFF95794152120D7 -S31540013450C206E0E0DA05212080A340018215212041 -S31540013460128000079816E0E0DA006004C2032004E7 -S3154001347080A3400102800C95010000007FFFB760E8 -S31540013480901020101B100085901360D092100008F8 -S315400134907FFFF9459415212019100085C20320D0DC -S315400134A0DA05212080A340018215212012800007E0 -S315400134B0981320D0DA006004C203200480A340019F -S315400134C002800C7D010000007FFFB74D9010201057 -S315400134D01B100085901360D8921000087FFFF932C7 -S315400134E09415212019100085C20320D8DA05212020 -S315400134F080A340018215212012800007981320D80D -S31540013500DA006004C203200480A3400102800C65F6 -S31540013510010000007FFFB73A901020101B10008574 -S3154001352003100085901360D8921060D07FFFF91E7A -S31540013530941521201B000070C205A1C09A13601F7B -S31540013540190000108208400D9813201080A0400CED -S3154001355002800004211001447FFFB72990102010FA -S315400135607FFFFB5890102000111000851310008535 -S3154001357094142120901220D87FFFF90B921260D02B -S31540013580C20720B0DA04212080A3400194142120EF -S3154001359012800007821720B0DA02A004C20060043C -S315400135A080A3400102800004010000007FFFB714A0 -S315400135B0901020107FFFFB431103C00019100085B6 -S315400135C01B100085901320D0921360D8C025A1C04E -S315400135D07FFFF8F594152120C20720B0DA05212096 -S315400135E080A340018215212012800007981720B040 -S315400135F0DA006004C203200480A3400102800C1F4C -S315400136001B0000707FFFB6FE901020109016E0E080 -S31540013610921660F07FFFF8E494152120C205A1C0FF -S315400136208330600E8208600380A06002211001444D -S3154001363002800004231000807FFFB6F19010201015 -S3154001364094142120C02461C09015E0C87FFFF8D6AC -S315400136509207BFF0C205E0C8DA04212080A34001E9 -S3154001366094142120128000078215E0C8DA02A004D2 -S31540013670C200600480A3400102800B9C010000004F -S315400136807FFFB6DF901020109015E0C89207BFE883 -S315400136907FFFF8C594152120C205E0C8DA0521202F -S315400136A080A3400182152120128000079815E0C8A9 -S315400136B0DA006004C203200480A3400102800B8625 -S315400136C0010000007FFFB6CE901020109015E0C893 -S315400136D09216E0E07FFFF8B494152120C205E0C8B8 -S315400136E0DA05212080A3400182152120128000079E -S315400136F09815E0C8DA006004C203200480A34001A3 -S3154001370002800B70010000007FFFB6BD90102010B3 -S315400137109015E0C8921000087FFFF8A39415212068 -S31540013720C205E0C8DA05212080A340018215212087 -S31540013730128000079815E0C8DA006004C20320042D -S3154001374080A3400102800B5A010000007FFFB6AC06 -S315400137509010201003100085921060B89015E0C8B3 -S315400137607FFFF8919415212003000070A610601F79 -S31540013770DA05A1C0030000109A0B4013AA1060108D -S3154001378080A34015231000852510014402800004C2 -S31540013790211000807FFFB69A90102010C02421C0CE -S315400137A0901460B89207BFF07FFFF87F9414A12070 -S315400137B0C20421C08208401380A040150280000443 -S315400137C0010000007FFFB68E90102010C02421C05A -S315400137D0901460B89207BFE87FFFF8739414A12054 -S315400137E0C20421C08208401380A040150280000413 -S315400137F0010000007FFFB68290102010C02421C036 -S31540013800901460B89216E0E07FFFF8679414A12007 -S31540013810C20421C08208401380A0401502800005E1 -S31540013820131000857FFFB676901020101310008587 -S31540013830C02421C0921260C8901460B87FFFF85A24 -S315400138409414A120C20421C08208401380A04015CF -S3154001385002800005901460B87FFFB6699010201071 -S31540013860901460B8C02421C0921000087FFFF84E22 -S315400138709414A120C20421C08208401380A040159F -S3154001388002800004010000007FFFB65D9010201009 -S31540013890C02421C0901460B8921660F07FFFF842B0 -S315400138A09414A120C20421C08330600E82086003B3 -S315400138B080A06002228000051103C0007FFFB65040 -S315400138C0901020101103C0007FFFFA7E3B10008448 -S315400138D0A2176210C02421C0AA14A120A40460101A -S315400138E0A0102000A6046008B010200C920400131A -S315400138F0900400117FFFF82C94152120DA048010E2 -S3154001390098040012C2052120A004201880A340017A -S315400139101280000790102010DA032004C2056004CB -S3154001392080A3400122800005B0863FFF7FFFB63469 -S3154001393001000000B0863FFF1CBFFFEE920400135A -S31540013940C205A1C080A06000128009890100000063 -S315400139501110008490122348920220087FFFF8122A -S315400139609415212098176210C2052120DA032148B7 -S3154001397080A340011280000782152120DA03214CE1 -S31540013980C200600480A3400122800AAB031000807C -S315400139907FFFB61B901020101110008490122360F7 -S315400139A0920220087FFFF800941521209817621093 -S315400139B0C2052120DA03216080A34001128000075D -S315400139C082152120DA032164C200600480A34001EC -S315400139D002800AA41B0000707FFFB60990102010D8 -S315400139E01110008490122378920220087FFFF7EE8F -S315400139F09415212098176210C2052120DA032178F7 -S31540013A0080A340011280000782152120DA03217C20 -S31540013A10C200600480A3400102800A9C1B00007022 -S31540013A207FFFB5F790102010C025A1C011100000EE -S31540013A3092102000150FFC007FFFF8B2961020006F -S31540013A40030FFC0080A200011280000880A26000E2 -S31540013A501280000601000000C205A1C080A06000DE -S31540013A6002800005111000007FFFB5E5901020107F -S31540013A701110000092102000152FFC007FFFF8A1C5 -S31540013A80961020000310020080A200011280000857 -S31540013A9080A260001280000601000000C205A1C09C -S31540013AA080A0600002800005113000007FFFB5D480 -S31540013AB0901020101130000092102000150FFC00CC -S31540013AC07FFFF890961020000330020080A200018B -S31540013AD01280000880A260001280000601000000EA -S31540013AE0C205A1C080A0600002800005113000001F -S31540013AF07FFFB5C3901020101130000092102000B6 -S31540013B00152FFC007FFFF87F96102000032FFC0045 -S31540013B1080A200011280000880A260001280000687 -S31540013B2001000000C205A1C080A06000028000051E -S31540013B30111000007FFFB5B2901020101110000047 -S31540013B407FFFF87A130FE0000310100080A20001F6 -S31540013B501280000601000000C205A1C080A06000DD -S31540013B6002800005111000007FFFB5A590102010BE -S31540013B70111000007FFFF877130FE000030FE000FC -S31540013B8080A200011280000601000000C205A1C00A -S31540013B9080A0600022800005191000857FFFB5983E -S31540013BA09010201019100085921320E8C025A1C05D -S31540013BB09007BFF07FFFF78F9415212019100085DC -S31540013BC0C20320D8DA05212080A340018215212095 -S31540013BD012800007981320D8DA006004C20320043B -S31540013BE080A3400102800A461B0000707FFFB58416 -S31540013BF0901020111B100085921360D0C025A1C0E2 -S31540013C009007BFF07FFFF77B94152120C207BFE0E5 -S31540013C10DA05212080A34001128000078215212068 -S31540013C20DA006004C207BFE480A3400102800A3E75 -S31540013C30010000007FFFB572901020119007BFF080 -S31540013C409215E0C87FFFF76B94152120C205E0C8A5 -S31540013C50DA05212080A34001821521201280000728 -S31540013C609815E0C8DA006004C203200480A340012D -S31540013C7002800A32010000007FFFB56190102011D9 -S31540013C8003100085921060B89007BFF07FFFF75987 -S31540013C9094152120C20720B0DA05212080A34001D6 -S31540013CA08215212012800007981720B0DA0060049F -S31540013CB0C203200480A3400102800A251B00007034 -S31540013CC07FFFB54F901020119007BFF0921660F01C -S31540013CD07FFFF74894152120C205A1C01B00007043 -S31540013CE08208400D1900002080A0400C211001449B -S31540013CF002800004231000807FFFB54190102011FF -S31540013D0094142120C02461C09007BFE87FFFF73992 -S31540013D109207BFF0DA042120C207BFE880A3400121 -S31540013D201280000794142120DA02A004C207BFECD6 -S31540013D3080A3400102800A10010000007FFFB530D8 -S31540013D409010201119100085901320E89207BFE0CA -S31540013D507FFFF72894152120C20720B0DA052120DC -S31540013D6080A340018215212012800007981720B0B8 -S31540013D70DA006004C203200480A3400102800A03E2 -S31540013D801B0000707FFFB51E901020111B1000858F -S31540013D9003100085901360E8921060D0C025A1C041 -S31540013DA07FFFF7149415212019100085C20320E8DE -S31540013DB0DA05212080A340018215212012800007C7 -S31540013DC0981320E8DA006004C203200480A340016E -S31540013DD0028009F8010000007FFFB509901020110B -S31540013DE09007BFE89215E0C87FFFF702941521209E -S31540013DF0C205E0C8DA05212080A3400182152120B1 -S31540013E00128000079815E0C8DA006004C203200456 -S31540013E1080A34001028009EC010000007FFFB4F855 -S31540013E20901020071B100085921360B89007BFE8D9 -S31540013E307FFFF6F09415212025000070D805A1C01A -S31540013E409A14A01F03000010980B000D82106010F9 -S31540013E5080A3000121100144028000042310008048 -S31540013E607FFFB4E790102011C02461C09007BFE8DE -S31540013E70921660F07FFFF6DF94142120C20461C0E0 -S31540013E80820840121B00002080A0400D22800005C0 -S31540013E90031000857FFFB4DA9010201103100085CE -S31540013EA0901060D894142120C02461C07FFFF6D1C0 -S31540013EB09207BFF019100085C20320D8DA042120E9 -S31540013EC080A340019414212012800007821320D838 -S31540013ED0DA02A004C200600480A34001028008B84F -S31540013EE0010000007FFFB4C6901020111B10008511 -S31540013EF003100085901360D8921060E87FFFF6BDED -S31540013F009415212019100085C20320D0DA052120FD -S31540013F1080A340018215212012800007981320D0EA -S31540013F20DA006004C203200480A34001028008A98C -S31540013F30010000007FFFB4B2901020119016E0E01E -S31540013F40921000087FFFF6AB94152120C20720B0DE -S31540013F50DA05212080A34001821521201280000725 -S31540013F60981720B0DA006004C203200480A3400100 -S31540013F700280089D1B0000707FFFB4A190102011A4 -S31540013F80C025A1C09016E0E09215E0C87FFFF699E2 -S31540013F9094152120C205E0C8DA05212080A34001FD -S31540013FA082152120128000079815E0C8DA006004C6 -S31540013FB0C203200480A3400102800894010000004E -S31540013FC07FFFB48F901020111B100085921360B8AB -S31540013FD09016E0E07FFFF68794152120C20720B0B6 -S31540013FE0DA05212080A34001821521201280000795 -S31540013FF0981720B0DA006004C203200480A3400170 -S31540014000028008871B0000707FFFB47D901020114D -S31540014010C025A1C09016E0E0921660F07FFFF675CC -S3154001402094152120C205A1C01B0000708208400DD5 -S315400140301900002080A0400C23100080028000045B -S31540014040211001447FFFB46E901020119414212059 -S31540014050C02461C09015E0C87FFFF6669207BFF0A5 -S31540014060C205E0C8DA04212080A34001941421202E -S31540014070128000078215E0C8DA02A004C20060047B -S3154001408080A340010280086F010000007FFFB45CFD -S31540014090901020119015E0C89207BFE87FFFF655B2 -S315400140A094152120C205E0C8DA05212080A34001EC -S315400140B082152120128000079815E0C8DA006004B5 -S315400140C0C203200480A3400102800863010000006E -S315400140D07FFFB44B901020119015E0C89216E0E096 -S315400140E07FFFF64494152120C205E0C8DA05212058 -S315400140F080A3400182152120128000079815E0C84F -S31540014100DA006004C203200480A3400102800857FC -S31540014110010000007FFFB43A901020119015E0C8CD -S31540014120921000087FFFF63394152120C205E0C89E -S31540014130DA05212080A34001821521201280000743 -S315400141409815E0C8DA006004C203200480A3400148 -S31540014150028007F3010000007FFFB429901020116F -S3154001416003100085921060B89015E0C87FFFF621D4 -S3154001417094152120C20720B0DA05212080A34001F1 -S315400141808215212012800007981720B0DA006004BA -S31540014190C203200480A34001028007E61B00007091 -S315400141A07FFFB417901020119015E0C8921660F069 -S315400141B07FFFF61094152120C205A1C03100007081 -S315400141C0820840183B00002080A0401D2310014476 -S315400141D002800004211000807FFFB4099010201155 -S315400141E019100085901320B89207BFF07FFFF601A2 -S315400141F094146120C20421C0AA16201F3500001064 -S3154001420082084015A616A01080A040130280000423 -S31540014210251000857FFFB3FA90102011C02421C0DC -S315400142209014A0B89207BFE87FFFF5F2941461207D -S31540014230C20421C08208401580A0401302800004B8 -S31540014240010000007FFFB3EE90102011C02421C071 -S315400142509014A0B89216E0E07FFFF5E69414612031 -S31540014260C20421C08208401580A040130280000587 -S31540014270131000857FFFB3E29010201113100085C3 -S31540014280C02421C0921260C89014A0B87FFFF5D90E -S3154001429094146120C20421C08208401580A04013B5 -S315400142A0028000059014A0B87FFFB3D5901020116D -S315400142B09014A0B8C02421C0921000087FFFF5CD0C -S315400142C094146120C20421C08208401580A0401385 -S315400142D002800005131000857FFFB3C9901020119D -S315400142E013100085C02421C09014A0B8921260F02A -S315400142F07FFFF5C094146120C20421C08208401892 -S3154001430080A0401D2280000515203E837FFFB3BC5F -S315400143109010201115203E83170021C89412A3FF47 -S315400143209612E3A1191FC0001B00C0009A1360B08A -S3154001433098132102D43FBFD0D83FBFD8C02421C053 -S315400143409007BFD89207BFD07FFFF5AA9407BFC891 -S31540014350DA07BFC8033FFC0080A340010280070B78 -S31540014360A207BFC87FFFB3A6901020111510868300 -S31540014370170021C89412A3FF9612E3A11900400029 -S315400143801B00C0009A1360B098132102D43FBFD0DE -S31540014390D83FBFD8C025A1C09007BFD89207BFD08C -S315400143A07FFFF5949407BFC8DA046004C207BFC80B -S315400143B08090400D1280000A1B000070C205A1C00A -S315400143C09A13601F190000108208400D98132004AB -S315400143D080A0400C22800005150FFC007FFFB388AA -S315400143E090102011150FFC00170281D89412A0409D -S315400143F09612E10C9A102010190006AFD43FBFD097 -S31540014400D83FBFD8C025A1C09007BFD89207BFD01B -S315400144107FFFF5789407BFC8030006AEDA07BFC829 -S315400144208210639580A340011280000703003A9AE7 -S31540014430DA0460048210630F80A3400102800733CF -S31540014440010000007FFFB36E90102011150FFFFF92 -S31540014450170281D89412A3409612E10C9A102010AB -S31540014460190006AFD43FBFD0D83FBFD8C025A1C0A1 -S315400144709007BFD89207BFD07FFFF55E9407BFC8AC -S31540014480DA046004C207BFC88090400D1280000A5A -S315400144901B000070C205A1C09A13601F19000010CD -S315400144A08208400D9813200480A0400C028000042D -S315400144B0010000007FFFB35290102011C025A1C01A -S315400144C0111088007FFFF63713100100031066C9EB -S315400144D0821062CA80A2000112800006010000001B -S315400144E0C205A1C080A06000028000051111BBFE7B -S315400144F07FFFB343901020111111BBFE901223FF91 -S315400145007FFFF628130C7040031527CA8210611EDF -S3154001451080A200011280000601000000C205A1C070 -S3154001452080A06000028000051310C7FF7FFFB334EF -S31540014530901020111310C7FF921263FC7FFFF619EA -S31540014540111E607E031D73FC8210633880A2000138 -S315400145501280000601000000C205A1C080A06000D3 -S3154001456002800005130FE0007FFFB3259010201154 -S31540014570130FE000921260017FFFF60A110020003E -S3154001458080A220001280000A1B000070C205A1C053 -S315400145909A13601F190000108208400D98132004D9 -S315400145A080A0400C02800005110FE0007FFFB3148C -S315400145B090102011110FE000C025A1C07FFFF5F931 -S315400145C092100008030FE00080A20001128000064D -S315400145D001000000C205A1C080A060000280000564 -S315400145E0130FE0007FFFB30690102011130FE00078 -S315400145F0921260017FFFF5EB1100200080A220009E -S315400146001280000A1B000070C205A1C09A13601FE8 -S31540014610190000108208400D9813200480A0400C18 -S31540014620028000051B1000857FFFB2F59010201116 -S315400146301B100085921360E8C025A1C09007BFF00A -S315400146407FFFF4DE9415212019100085C20320E86E -S31540014650DA05212080A3400182152120128000071E -S31540014660981320E8DA006004C203200480A34001C5 -S31540014670028006BA010000007FFFB2E190102012CD -S315400146801B100085921360D09007BFF07FFFF4CBDB -S315400146909415212019100085C20320D0DA05212066 -S315400146A080A340018215212012800007981320D053 -S315400146B0DA006004C203200480A34001028006ACF4 -S315400146C0010000007FFFB2CE901020129007BFF08C -S315400146D09215E0C87FFFF4B994152120C205E0C8C0 -S315400146E0DA05212080A3400182152120128000078E -S315400146F09815E0C8DA006004C203200480A3400193 -S31540014700028006A0010000007FFFB2BD901020127A -S315400147101B100085921360B89007BFF07FFFF4A786 -S3154001472094152120C20720B0DA05212080A340013B -S315400147308215212012800007981720B0DA00600404 -S31540014740C203200480A34001028006931B0000702F -S315400147507FFFB2AB901020129007BFF0921660F027 -S315400147607FFFF49694152120C205A1C01B0000705D -S315400147708208400D1900002080A0400C2110014400 -S3154001478002800004231000807FFFB29D901020120A -S3154001479094142120C02461C09007BFE87FFFF487AD -S315400147A09207BFF0DA042120C207BFE880A3400187 -S315400147B01280000794142120DA02A004C207BFEC3C -S315400147C080A34001028006DE010000007FFFB28C1B -S315400147D0901020120310008519100085901060E892 -S315400147E0921320D87FFFF47594152120C20720B07B -S315400147F0DA05212080A3400182152120128000077D -S31540014800981720B0DA006004C203200480A3400157 -S31540014810028006D01B0000707FFFB27990102012F3 -S31540014820C025A1C09007BFE89215E0C87FFFF46399 -S3154001483094152120C205E0C8DA05212080A3400154 -S3154001484082152120128000079815E0C8DA0060041D -S31540014850C203200480A34001028006C70100000074 -S315400148607FFFB267901024991B100085921360B8A0 -S315400148709007BFE87FFFF45194152120C20720B06D -S31540014880DA05212080A340018215212012800007EC -S31540014890981720B0DA006004C203200480A34001C7 -S315400148A0028006BA1B0000707FFFB255901020129D -S315400148B09007BFE8921660F07FFFF44094152120DF -S315400148C0C205A1C01B0000708208400D19000020DE -S315400148D080A0400C21100144028000042310008076 -S315400148E07FFFB2479010201294142120C02461C04A -S315400148F09016E0E07FFFF4319207BFF0C206E0E098 -S31540014900DA04212080A3400194142120128000075B -S315400149108216E0E0DA02A004C200600480A34001EE -S31540014920028006A4010000007FFFB23590102012DC -S315400149309016E0E09207BFE87FFFF420941521200E -S31540014940C20720B0DA05212080A34001821521202B -S3154001495012800007981720B0DA006004C2032004D1 -S3154001496080A34001028006981B0000707FFFB2249D -S3154001497090102012C025A1C09016E0E09215E0C823 -S315400149807FFFF40E94152120C205E0C8DA052120E7 -S3154001499080A3400182152120128000079815E0C8A6 -S315400149A0DA006004C203200480A340010280068F1E -S315400149B0010000007FFFB212901020120310008503 -S315400149C0921060B89016E0E07FFFF3FC9415212029 -S315400149D0C20720B0DA05212080A34001821521209B -S315400149E012800007981720B0DA006004C203200441 -S315400149F080A34001028006821B0000707FFFB20047 -S31540014A00901020129016E0E0921660F07FFFF3EBD3 -S31540014A1094152120C205A1C01B0000708208400DDB -S31540014A201900002080A0400C21100144028000049E -S31540014A30231000807FFFB1F29010201294142120A0 -S31540014A40C02461C09015E0C87FFFF3DC9207BFF038 -S31540014A50C205E0C8DA04212080A340019414212034 -S31540014A60128000078215E0C8DA02A004C200600481 -S31540014A7080A340010280061E010000007FFFB1E0D5 -S31540014A80901020129015E0C89207BFE87FFFF3CB44 -S31540014A9094152120C205E0C8DA05212080A34001F2 -S31540014AA082152120128000079815E0C8DA006004BB -S31540014AB0C203200480A340010280061201000000C7 -S31540014AC07FFFB1CF901020129015E0C89216E0E01A -S31540014AD07FFFF3BA94152120C205E0C8DA052120EB -S31540014AE080A3400182152120128000079815E0C855 -S31540014AF0DA006004C203200480A340010280060656 -S31540014B00010000007FFFB1BE901020129015E0C851 -S31540014B10921000087FFFF3A994152120C205E0C831 -S31540014B20DA05212080A34001821521201280000749 -S31540014B309815E0C8DA006004C203200480A340014E -S31540014B40028005FA010000007FFFB1AD90102012EE -S31540014B50191000859015E0C8921320B87FFFF3978E -S31540014B609415212003000070A610601FDA05A1C02C -S31540014B70030000109A0B4013AA10601080A3401541 -S31540014B802510008523100144028000042110008075 -S31540014B907FFFB19B90102012C02421C09014A0B871 -S31540014BA09207BFF07FFFF38594146120C20421C0B0 -S31540014BB08208401380A040150280000401000000D5 -S31540014BC07FFFB18F90102012C02421C09014A0B84D -S31540014BD09207BFE87FFFF37994146120C20421C094 -S31540014BE08208401380A040150280000401000000A5 -S31540014BF07FFFB18390102012C02421C09014A0B829 -S31540014C009216E0E07FFFF36D94146120C20421C047 -S31540014C108208401380A040150280000513100085CC -S31540014C207FFFB1779010201213100085C02421C058 -S31540014C30921260C89014A0B87FFFF360941461206B -S31540014C40C20421C08208401380A04015028000059D -S31540014C509014A0B87FFFB16A901020129014A0B8AA -S31540014C60C02421C0921000087FFFF35494146120A0 -S31540014C70C20421C08208401380A04015028000046E -S31540014C80010000007FFFB15E90102012C02421C0B8 -S31540014C909014A0B8921660F07FFFF34894146120F7 -S31540014CA0C20421C08330600E8208600380A0600286 -S31540014CB0228000051103C0007FFFB15190102012E0 -S31540014CC01103C0007FFFF57F3B100084A41763905A -S31540014CD0AA146120C02421C0A604A008A210200065 -S31540014CE0B0102005A00440129204401394152120CF -S31540014CF07FFFF33290100010DA042010C205212004 -S31540014D00A204601880A3400112800007901020126F -S31540014D10DA042014C205600480A3400102800474B1 -S31540014D20010000007FFFB13601000000B0863FFF61 -S31540014D303CBFFFEEA00440121110008590122020C6 -S31540014D40920220087FFFF31D941521209817639046 -S31540014D50C2052120DA0320A080A34001128000076A -S31540014D6082152120DA0320A4C200600480A34001F9 -S31540014D70028004DC1B0000707FFFB12190102012DD -S31540014D801110008590122038C025A1C0920220083A -S31540014D907FFFF30A9415212098176390C2052120BD -S31540014DA0DA0320B880A34001128000078215212032 -S31540014DB0DA0320BCC200600480A340010280047F64 -S31540014DC01B0000707FFFB10E90102012111000855C -S31540014DD090122050C025A1C0920220087FFFF2F711 -S31540014DE09415212098176390C2052120DA0320D01B -S31540014DF080A340011280000782152120DA0320D4C6 -S31540014E00C200600480A34001028004761B0000704A -S31540014E107FFFB0FB90102012111000859012206880 -S31540014E20C025A1C0920220087FFFF2E494152120FB -S31540014E3098176390C2052120DA0320E880A3400138 -S31540014E401280000782152120DA0320ECC20060049B -S31540014E5080A340010280046D1B0000707FFFB0E813 -S31540014E60901020121110008590122080C025A1C0FB -S31540014E70920220087FFFF2D1941521209817639062 -S31540014E80C2052120DA03210080A3400112800007D8 -S31540014E9082152120DA032104C200600480A3400167 -S31540014EA0028004641B0000707FFFB0D59010201271 -S31540014EB0C025A1C0111010007FFFF3B013100000F0 -S31540014EC00310300080A2000112800006010000009C -S31540014ED0C205A1C080A0600002800005111FE0004C -S31540014EE07FFFB0C790102012111FE0001310000081 -S31540014EF07FFFF2B794152120031FFC00DA0521201C -S31540014F0080A340011280000A82152120C20060045C -S31540014F1080A060001280000601000000C205A1C009 -S31540014F2080A0600002800005111FE0007FFFB0B441 -S31540014F309010201B111FE000133000007FFFF2A4E8 -S31540014F4094152120033FFC00DA05212080A340016E -S31540014F501280000A82152120C200600480A06000F0 -S31540014F601280000601000000C205A1C080A06000B9 -S31540014F7002800005111000007FFFB0A19010201C97 -S31540014F8011100000921020107FFFF29194152120FC -S31540014F90C205A1C01B0000708208400D1900002007 -S31540014FA080A0400C2110014402800004231000809F -S31540014FB07FFFB0939010201D94142120C02461C01E -S31540014FC0110020007FFFF282130FC000DA04212076 -S31540014FD0030E000080A340011280000A9414212090 -S31540014FE0C202A00480A060001280000601000000F9 -S31540014FF0C20461C080A0600002800005111FDFFF6E -S315400150007FFFB07F9010201E111FDFFF901223FFFC -S31540015010131000007FFFF26E941521200311FFFF4C -S31540015020821063FFDA05212080A340011280000728 -S3154001503082152120DA0060040338000080A3400174 -S3154001504002800405010000007FFFB06D9010201F13 -S31540015050111FD000130FF0007FFFF25D9415212040 -S315400150600311FC80DA05212080A340011280000A49 -S3154001507082152120C200600480A0600012800006D3 -S3154001508001000000C205A1C080A0600002800005A9 -S31540015090111FDFFF7FFFB05A90102021111FDFFF44 -S315400150A0901223FF921000087FFFF24994152120A8 -S315400150B00313FBFF821063FFDA05212080A3400121 -S315400150C01280000882152120DA00600403300000B6 -S315400150D08210602080A34001028003E401000000A9 -S315400150E07FFFB047901020207FFFF4761103C00068 -S315400150F0C025A1C09007BFE07FFFF2449215212051 -S31540015100C207BFE0DA05212080A3400112800007D3 -S3154001511082152120DA006004C207BFE480A3400162 -S31540015120028003D7010000007FFFB03590102013A5 -S315400151301B100085901360E87FFFF2349215212001 -S3154001514003100085DA0060E8C205212080A0400DE9 -S31540015150191000858215212012800007901320E83E -S31540015160DA006004C202200480A34001028003C920 -S31540015170010000007FFFB022901020131B10008514 -S31540015180901360D07FFFF2219215212019100085DE -S31540015190C20320D0DA05212080A3400182152120B7 -S315400151A012800007981320D0DA006004C20320045D -S315400151B080A34001028003BC010000007FFFB010C4 -S315400151C0901020131B100085901360D87FFFF20FBB -S315400151D092152120C20720B0DA05212080A3400183 -S315400151E08215212012800007981720B0DA0060044A -S315400151F0C203200480A34001028003B01B0000705B -S315400152007FFFAFFF9010201303100085901060B808 -S31540015210C025A1C07FFFF1FD92152120C20720B014 -S31540015220DA05212080A34001821521201280000742 -S31540015230981720B0DA006004C203200480A340011D -S315400152400280040F1B0000707FFFAFED901020130A -S31540015250C025A1C09015E0C87FFFF1EC9215212031 -S31540015260C2052120DA05E0C880A0400D8215212023 -S31540015270128000079015E0C8DA006004C2022004DB -S3154001528080A3400102800407010000007FFFAFDCDC -S3154001529090102013170C00089A10200019100C00CA -S315400152A015300F789612E001D83FBFF0D43FBFC00A -S315400152B09007BFF07FFFF1D592152120031004001E -S315400152C0DA05212080A340011280000A821521209F -S315400152D0C200600480A06000128000060100000048 -S315400152E0C205A1C080A06000028000059007BFC032 -S315400152F07FFFAFC3901020139007BFC07FFFF1C35C -S3154001530092152120C2052120DA0720B080A0400D48 -S315400153108215212012800007981720B0DA00600418 -S31540015320C203200480A34001028003E31B000070F6 -S315400153307FFFAFB390102013901660F07FFFF1B35B -S3154001534092152120C205A1C08330600E82086003F8 -S3154001535080A0600202800004211000807FFFAFA878 -S3154001536090102013C02421C07FFFF2981111F20042 -S315400153700310E80080A2000112800006010000002F -S31540015380C20421C080A06000028000040100000028 -S315400153907FFFAF9B901020137FFFF3CA11100000CF -S315400153A01101F5897FFFF289901221E20308E96430 -S315400153B080A200011280000601000000C205A1C0C2 -S315400153C080A0600002800004010000007FFFAF8CD6 -S315400153D0901020237FFFF27D1112A2080311410094 -S315400153E080A200011280000601000000C205A1C092 -S315400153F080A0600002800004010000007FFFAF80B2 -S31540015400901020237FFFF3AF110010009007BFF0EB -S31540015410921660F07FFFF1649415212003100C0071 -S31540015420DA05212080A340011280000A821521203D -S31540015430C200600480A060001280000601000000E6 -S31540015440C205A1C080A0600002800005901660F0F0 -S315400154507FFFAF6B90102014901660F09207BFC08B -S315400154607FFFF1569415212003200000DA05212003 -S3154001547080A340011280000A82152120C2006004E7 -S3154001548080A060001280000601000000C205A1C094 -S3154001549080A0600002800004010000007FFFAF5839 -S315400154A0901020147FFFF19190102001030FE0002E -S315400154B080A200011280000601000000C205A1C0C1 -S315400154C080A0600002800004010000007FFFAF4C15 -S315400154D0901020147FFFF17D90102001030FFC00F6 -S315400154E080A200011280000880A26000128000069E -S315400154F001000000C205A1C080A060000280000436 -S31540015500010000007FFFAF3E901020147FFFF36D36 -S315400155101110100019100085D41B20D07FFFF1F91E -S31540015520D01E60F003100085D03D2120DA0060D8FE -S31540015530C205212080A0400D191000858215212029 -S3154001554012800007901320D8DA006004C2022004BA -S3154001555080A3400102800361010000007FFFAF2864 -S31540015560901020227FFFF35711100000170400808E -S31540015570150F28009612E0F09A102000190FFC0032 -S31540015580D43FBFC0D83FBFF09007BFF09207BFC01E -S315400155907FFFF10594152120030FFC00DA05212038 -S315400155A080A340011280000682152120C2006004BA -S315400155B080A0600002800004010000007FFFAF1060 -S315400155C0901020157FFFF33F112000001700004087 -S315400155D0150014009612E0019A102000190FFC00E4 -S315400155E0D43FBFC0D83FBFF09007BFF09207BFC0BE -S315400155F07FFFF0ED94152120030FFC00DA052120F1 -S3154001560080A340011280000682152120C200600459 -S3154001561080A0600102800004010000007FFFAEF817 -S31540015620901020157FFFF32711300000170000402E -S31540015630152014009612E0019A102000192FFC0043 -S31540015640D43FBFC0D83FBFF09007BFF09207BFC05D -S315400156507FFFF0D594152120032FFC00DA05212088 -S3154001566080A340011280000682152120C2006004F9 -S3154001567080A0600102800004010000007FFFAEE0CF -S31540015680901020157FFFF30F11100000190FFC0039 -S315400156909A102000D83FBFF09007BFF09216E0E085 -S315400156A07FFFF0C194152120C206E0E0DA052120F2 -S315400156B080A3400182152120128000079816E0E060 -S315400156C0DA006004C203200480A340010280000482 -S315400156D0010000007FFFAECA901020157FFFF2F94E -S315400156E01120000017000040150014009612E00139 -S315400156F0190FFC009A102000D43FBFC0D83FBFF01D -S315400157009007BFF09216E0E07FFFF0A794152120A5 -S31540015710C206E0E0DA05212080A34001821521205E -S31540015720128000079816E0E0DA006004C203200404 -S3154001573080A3400102800004010000007FFFAEB05B -S31540015740901020157FFFF2DF113000001700004056 -S31540015750152014009612E0019A102000192FFC0022 -S31540015760D43FBFC0D83FBFF09007BFF09216E0E0EC -S315400157707FFFF08D94152120C2052120DA06E0E055 -S3154001578080A0400D82152120128000079016E0E08E -S31540015790DA006004C202200480A3400102800004B2 -S315400157A0010000007FFFAE96901020157FFFF2C5E5 -S315400157B01110000015100000961020019A102001CA -S315400157C0190FFC00D43FBFC0D83FBFF09007BFF0D0 -S315400157D09207BFC07FFFF079941521200310000086 -S315400157E0DA05212080A3400112800006821521207E -S315400157F0C200600480A06002028000040100000033 -S315400158007FFFAE7F901020157FFFF2AE1120000082 -S315400158109007BFF09207BFC07FFFF0689415212023 -S3154001582003100000DA05212080A340011280000602 -S3154001583082152120C200600480A06003028000041A -S31540015840010000007FFFAE6E901020157FFFF29D94 -S31540015850113000009A102001192FFC00D83FBFF0EB -S315400158609007BFF09207BFC07FFFF05494152120E7 -S3154001587003300000DA05212080A340011280000692 -S3154001588082152120C200600480A0600302800004CA -S31540015890010000007FFFAE5A901020157FFFF2896C -S315400158A011100000150FFC04172F26159412A01293 -S315400158B09612E231190FFEAE1B1CD2E89A13601103 -S315400158C098132154D43FBFC0D83FBFF09007BFF0D3 -S315400158D09207BFC07FFFF04794152120030FFEA713 -S315400158E082106296DA05212080A3400112800008C9 -S315400158F082152120DA006004032C1B348210602FAC -S3154001590080A3400102800004010000007FFFAE3CFD -S31540015910901020157FFFF26B112000009007BFF019 -S315400159209207BFC07FFFF03394152120030FFEA7D6 -S3154001593082106296DA05212080A340011280000878 -S3154001594082152120DA006004032C1B34821060305A -S3154001595080A3400102800004010000007FFFAE28C1 -S31540015960901020157FFFF25711300000192FFC04CB -S315400159701B2F26159A13623198132012D83FBFC0A8 -S315400159809007BFF09207BFC07FFFF01A9415212000 -S31540015990032FFEA782106296DA05212080A34001DB -S315400159A01280000882152120DA006004032C1B3482 -S315400159B08210603080A34001028000040100000093 -S315400159C07FFFAE0F901020157FFFF23E11100000B1 -S315400159D015101000961020009A102000191038005A -S315400159E0D43FBFC0D83FBFF09007BFF09207BFC0BA -S315400159F07FFFF0009415212003102400DA052120B1 -S31540015A0080A340011280000682152120C200600455 -S31540015A1080A0600002800004010000007FFFADF815 -S31540015A20901020157FFFF227112000009007BFF04C -S31540015A309207BFC07FFFEFEF94152120031024008A -S31540015A40DA05212080A3400112800006821521201B -S31540015A50C200600480A060000280000401000000D2 -S31540015A607FFFADE7901020157FFFF2161130000041 -S31540015A709007BFF09207BFC07FFFEFDE941521204C -S31540015A8003102400DA05212080A34001128000067C -S31540015A9082152120C200600480A0600002800004BB -S31540015AA0010000007FFFADD6901020157FFFF20563 -S31540015AB011100000210FE000110020007FFFF0B916 -S31540015AC09214200180A220001280012301000000CF -S31540015AD07FFFF1FC11200000110020007FFFF0B193 -S31540015AE09214200180A220001280011801000000BA -S31540015AF07FFFF1F411300000921420017FFFF0A9DD -S31540015B001100200080A220001280010D010000003A -S31540015B107FFFF1EC111000009A102000190FFC00D4 -S31540015B20D83FBFF09007BFF07FFFEFB89215212015 -S31540015B30C207BFF0DA05212080A340011280000789 -S31540015B4082152120DA006004C207BFF480A3400118 -S31540015B50028002A7010000007FFFADA99010201529 -S31540015B607FFFF1D8112000009007BFF07FFFEFA71C -S31540015B7092152120C207BFF0DA05212080A34001FA -S31540015B801280000782152120DA006004C207BFF4A3 -S31540015B9080A340010280029B010000007FFFAD9877 -S31540015BA0901020157FFFF1C7113000009007BFF01C -S31540015BB07FFFEF9692152120C207BFF0DA0521201B -S31540015BC080A340011280000782152120DA0060047B -S31540015BD0C207BFF480A340010280028F010000008A -S31540015BE07FFFAD87901020157FFFF1B611100000A1 -S31540015BF0030FDFFF901063FF7FFFF074A0100008D2 -S31540015C0080A2001002800004010000007FFFAD7CED -S31540015C10901020157FFFF1AB112000007FFFF06B44 -S31540015C2090100010030FE00080A2000102800004E2 -S31540015C30010000007FFFAD72901020157FFFF1A19A -S31540015C40113000007FFFF0619010001080A200101B -S31540015C5002800004010000007FFFAD69901020150D -S31540015C607FFFF198901020007FFFF0609015212072 -S31540015C70032FFE00DA05212080A340011280000691 -S31540015C8082152120C200600480A0600002800005C8 -S31540015C90211001447FFFAD5A901020162110014476 -S31540015CA07FFFF05C90142128DA042128032FF000AD -S31540015CB080A3400102800004A21421287FFFAD5039 -S31540015CC0901020167FFFF05D90100011DA04212814 -S31540015CD0030FE00080A340010280000401000000A0 -S31540015CE07FFFAD47901020167FFFF064901521206D -S31540015CF0030FFBF7821063F0DA05212080A34001F0 -S31540015D001280000882152120DA0060040303FF1285 -S31540015D108210604A80A3400102800005921660F01D -S31540015D207FFFAD3790102016921660F09007BFF0B6 -S31540015D307FFFEF3094152120C205A1C08330600E4C -S31540015D408208600780A060020280000519100046A3 -S31540015D507FFFAD2B901020171910004617100080B9 -S31540015D60DA02E1C8821321F880A0400DE00321F850 -S31540015D7002800004A212E1C87FFFAD2190102018D5 -S31540015D80C204600480A040100280000401000000AB -S31540015D907FFFAD1B90102018C204600880A06000F0 -S31540015DA01280007701000000C204600C80A06000F0 -S31540015DB01280006C010000007FFFEEE6010000004A -S31540015DC080A220010280019801000000190C40299F -S31540015DD01B23CD1B9A13609B981320069410200019 -S31540015DE096102000D83FBFF0D43FBFC07FFFEF2FB2 -S31540015DF09007BFF003100083A21062101B100081B0 -S31540015E0003100144A0136210A4106120B0102000B9 -S31540015E10832E2002DA044001DA27BFC09007BFC0B3 -S31540015E207FFFEF25921521209B2E2003D804000DDC -S31540015E30C2052120B00620019603401080A300012F -S31540015E401280000790102019DA02E004C204A0046F -S31540015E5080A340010280000580A620FF7FFFACE8B9 -S31540015E600100000080A620FF04BFFFEB832E200225 -S31540015E7003100083A41062101B100080031001441C -S31540015E80A2136210A6106120B0102000A12E20029C -S31540015E90C2048010C227BFC0921521207FFFEEDBCE -S31540015EA09007BFC0DA044010C2052120B006200287 -S31540015EB09804001180A34001128000079010201A17 -S31540015EC0DA032004C204E00480A3400102800005F5 -S31540015ED080A620FF7FFFACCA0100000080A620FFFC -S31540015EE024BFFFECA12E200230800211C205A1C0C1 -S31540015EF080A0600022BFFB8FB0863FFF30BFFB8A88 -S31540015F00C205A1C080A0600002BFF14501000000AA -S31540015F1030BFF141C205A1C080A0600002BFF13689 -S31540015F200100000030BFF132C205A1C080A060006F -S31540015F3002BFF1270100000030BFF1237FFFACB063 -S31540015F409010201530BFFEF37FFFACAD90102015A9 -S31540015F5030BFFEE87FFFACAA9010201530BFFEDDB2 -S31540015F607FFFACA79010201830BFFF947FFFACA4F1 -S31540015F709010201010BFF678111000847FFFACA05E -S31540015F809010201830BFFF89C207BFCC80A06000A7 -S31540015F9012BFF8F501000000C20421C08208401575 -S31540015FA09A16A00880A0400D12BFF8EF010000002C -S31540015FB010BFF8F015108683C205A1C09A13601F61 -S31540015FC0190000108208400D9813200880A0400C4B -S31540015FD012BFFB7D1110008510BFFB7F9012205030 -S31540015FE0C205A1C09A13601F190000108208400D16 -S31540015FF09813200880A0400C12BFFB861110008523 -S3154001600010BFFB8890122068C205A1C09A13601F79 -S31540016010190000108208400D9813200480A0400CFE -S3154001602012BFFB8F1110008510BFFB91901220808B -S31540016030C205A1C09A13601F190000108208400DC5 -S315400160409813200880A0400C12BFFB980100000065 -S3154001605030BFFB98C205A1C080A0600002BFFBFE15 -S31540016060111FD00030BFFBF9C205A1C080A060005E -S3154001607002BFFC1E0100000030BFFC1AC205A1C0D0 -S3154001608080A0600002BFFC2C1B10008530BFFC279E -S31540016090C205A1C080A0600002BFFC3A1B1000856A -S315400160A030BFFC35C205A1C080A0600002BFFC47DD -S315400160B01B10008530BFFC42C205A1C09A13601F68 -S315400160C0190000108208400D9813201080A0400C42 -S315400160D012BFFC4C0310008510BFFC4E901060B8F7 -S315400160E0C205A1C09A13601F190000108208400D15 -S315400160F09813200480A0400C12BFFB20111000858C -S3154001610010BFFB2290122038C205A1C080A06000BA -S3154001611022BFF8D0150FFFFF30BFF8CBC205A1C093 -S3154001612080A0600002BFF8100310008530BFF80B55 -S31540016130C205A1C09A13601F190000108208400DC4 -S315400161409813201080A0400C12BFF8169015E0C895 -S3154001615010BFF818921660F0C205A1C080A0600079 -S3154001616002BFF9491B10008530BFF944C205A1C0E1 -S3154001617080A0600002BFF9579007BFF030BFF952C7 -S31540016180C205A1C080A0600002BFF9631B10008553 -S3154001619030BFF95EC205A1C09A13601F19000010F5 -S315400161A08208400D9813201080A0400C12BFF96957 -S315400161B09007BFF010BFF96B921660F0C20461C040 -S315400161C080A0600002BFF74B1B10008530BFF74629 -S315400161D0C205A1C080A0600002BFF75A9016E0E058 -S315400161E030BFF755C205A1C09A13601F19000010B0 -S315400161F08208400D9813201080A0400C12BFF75F13 -S315400162000100000030BFF75FC205A1C080A0600059 -S3154001621002BFF76F1B10008530BFF76AC205A1C0E8 -S315400162209A13601F190000108208400D9813201020 -S3154001623080A0400C12BFF7750100000030BFF77512 -S31540016240C20461C080A0600002BFF7949015E0C807 -S3154001625030BFF78FC205A1C080A0600002BFF7A082 -S315400162609015E0C830BFF79BC205A1C080A0600071 -S3154001627002BFF7AC9015E0C830BFF7A7C205A1C071 -S315400162809A13601F190000108208400D98132010C0 -S3154001629080A0400C12BFFBED0100000030BFFBEDBA -S315400162A0C205A1C080A0600002BFFBFC170C00081C -S315400162B030BFFBF7C205A1C09A13601F1900001039 -S315400162C08208400D9813201080A0400C12BFFC1983 -S315400162D0901660F030BFFC1AC205A1C080A06000D4 -S315400162E002BFFCA10100000030BFFC9DC20461C099 -S315400162F080A0600002BFF9E59015E0C830BFF9E023 -S31540016300C205A1C080A0600002BFF9F19015E0C8A6 -S3154001631030BFF9ECC205A1C080A0600002BFF9FD03 -S315400163209015E0C830BFF9F8C205A1C080A0600051 -S3154001633002BFFA091910008530BFFA04C20461C0D0 -S3154001634080A0600002BFF9250310008530BFF92007 -S31540016350C205A1C09A13601F190000108208400DA2 -S315400163609813201080A0400C12BFF92C01000000A8 -S3154001637030BFF92CC205A1C080A0600002BFF93C24 -S315400163801B10008530BFF937C205A1C09A13601FA3 -S31540016390190000108208400D9813201080A0400C6F -S315400163A012BFF9429007BFE810BFF944921660F058 -S315400163B0C20461C080A0600002BFF95F9016E0E0B0 -S315400163C030BFF95AC205A1C09A13601F19000010C7 -S315400163D08208400D9813201080A0400C12BFF9642A -S315400163E00100000030BFF964C205A1C080A0600071 -S315400163F002BFF9740310008530BFF96FC205A1C011 -S315400164009A13601F190000108208400D981320103E -S3154001641080A0400C12BFF97A9016E0E010BFF97CDB -S31540016420921660F07FFFAB769010201910BFFE697F -S31540016430190C4029D80061C01B0000709A13601FD7 -S3154001644003000010980B000D8210600880A3000124 -S3154001645012BFF5501110008410BFF55290122360FF -S31540016460C205A1C09A13601F190000108208400D91 -S315400164709813200480A0400C12BFF55811100084D7 -S3154001648010BFF55A90122378C205A1C09A13601F16 -S31540016490190000108208400D9813200480A0400C7A -S315400164A012BFF5600100000030BFF560C205A1C012 -S315400164B080A0600002BFF4A90310008530BFF4A498 -S315400164C0C205A1C080A0600002BFF4939015E0C848 -S315400164D030BFF48EC205A1C080A0600002BFF47D2A -S315400164E09015E0C830BFF478C20461C080A0600056 -S315400164F002BFF4679015E0C830BFF462C205A1C07F -S315400165009A13601F190000108208400D981320024B -S3154001651080A0400C12BFF5B61B10008510BFF5B820 -S31540016520921360D0C205A1C080A0600002BFF5C52C -S315400165309007BFF030BFF5C0C205A1C080A0600082 -S3154001654002BFF5D10310008530BFF5CCC205A1C00D -S315400165509A13601F190000108208400D98132010ED -S3154001656080A0400C12BFF5D79007BFF010BFF5D9F8 -S31540016570921660F0C20461C080A0600022BFF5F3AC -S315400165801910008530BFF5EEC205A1C09A13601FF0 -S31540016590190000108208400D9813201080A0400C6D -S315400165A012BFF5F91B10008510BFF5FB03100085DE -S315400165B0C205A1C080A0600002BFF60B9007BFE8EC -S315400165C030BFF606C205A1C080A0600002BFF61723 -S315400165D01B10008530BFF612C20421C080A06000A6 -S315400165E022BFF03E113C02AF30BFF039C205A1C017 -S315400165F080A0600002BFFD5B0100000030BFFD5777 -S31540016600C205A1C080A0600002BFFD670100000075 -S3154001661030BFFD63C205A1C080A0600002BFFD730B -S315400166200100000030BFFD6FC205A1C080A060001F -S3154001663002BFF2D70310008530BFF2D2C205A1C016 -S3154001664080A0600002BFF2C19007BFF030BFF2BC2C -S31540016650C205A1C080A0600002BFF2AA3710008522 -S3154001666030BFF2A5C205A1C080A0600002BFF028DC -S315400166701111FC0030BFF023C205A1C09A13601F5F -S31540016680190000108208400D9813201080A0400C7C -S3154001669012BFF3DD9016E0E010BFF3DF921660F013 -S315400166A0C205A1C080A0600002BFF39E1B100085F9 -S315400166B030BFF399C205A1C080A0600002BFF38636 -S315400166C01B10008530BFF381C205A1C080A06000C8 -S315400166D002BFF36E1B10008530BFF369C20461C06F -S315400166E080A0600002BFF3589016E0E030BFF3533C -S315400166F0C205A1C080A0600002BFF30E191000853B -S3154001670030BFF309C205A1C080A0600002BFF2F804 -S315400167109007BFE830BFF2F3C20461C080A06000B9 -S3154001672002BFF2E29007BFE830BFF2DD81C7E00861 -S3154001673081E80000D27A000081C3E0080100000030 -S3154001674081C3E008900A20209332600492126001CE -S315400167508213C0007FFFFFF89E1040000100000039 -S3154001676081D8200081C3E008010000009DE3BF9865 -S315400167707FFFFFFC0100000082102400C0A04300FF -S3154001678081C7E00881E80000833220189A1000088A -S315400167908088600F028000049010200083336010CF -S315400167A09008600381C3E008010000009DE3BF98A3 -S315400167B0031000C01B1000C1B0106000A21360009E -S315400167C0031000C21B1000C2A4106000A613610092 -S315400167D0031000201B100020A8106158AA13600066 -S315400167E07FFFEBAD9010200C808A2008028001FDCE -S315400167F0010000007FFFAA7D9010200ED08003206B -S315400168007FFFFFE2010000000310014380A2200246 -S31540016810028000C6D02060D080A22002148000E40D -S3154001682080A2200380A22001028000D1821020197B -S31540016830331000A02F1000A0391000A0371000A07F -S31540016840351000A07FFFFFC7210100007FFFFFC871 -S31540016850BA04A00C921000117FFFFFBC90100018E3 -S31540016860921000117FFFFFB990062004901000118D -S315400168707FFFFFB19210200ADA066014110800006A -S31540016880913A000DC205E010900A0001912A2002BA -S3154001689013008000900200117FFFFFA79212600A49 -S315400168A0DA06601411100000913A000DC205E0109D -S315400168B0900A0001912A2002900200117FFFFF9E5B -S315400168C09214208EDA066014111C0000913A000DD4 -S315400168D0C205E010900A0001912A20021301C0006E -S315400168E0900200117FFFFF949212608E9334A004B0 -S315400168F09004600C7FFFFF90921260019214201E5B -S315400169007FFFFF8D9004A0089010001D7FFFFF8A36 -S31540016910921020009334E004921260017FFFFF86BB -S315400169209004A004111000C2901221087FFFFF823B -S3154001693092102000031000E0A01060009334200460 -S31540016940111000C2901221047FFFFF7B9212601A40 -S3154001695003048D1582106278C2242004111000E0D0 -S3154001696015100120C0222000A2102003AC12A00065 -S31540016970A004E00C90047FFD40000A7392102003AE -S315400169801B100143C20360D08200600C932A0001B0 -S315400169909202401693326004901000107FFFFF660A -S315400169A09212601EA204600180A4600A04BFFFF235 -S315400169B0A0042004C206E008D807200C8208600122 -S315400169C08328400CD605E010111000E0D406A00043 -S315400169D0DA06601498122000960AE003972AC00D41 -S315400169E0920AA002111000A0DA022004940AA00122 -S315400169F0952A800D932A400D1B1000209612C00146 -S31540016A00E8236150030100001B0076418210601E9D -S31540016A109A1361C09212C00999332004C2252004F9 -S31540016A20DA2520089612C00A9E13200E913560047D -S31540016A301B1000C2031000C2821061049012201E76 -S31540016A40953620049813201E9A136108D625202CCA -S31540016A50D8252010D025201CD2252020DE2520280F -S31540016A60D6252014940ABFF0FA250000DA2520180D -S31540016A70C2252024C225200CA2102100D4A44320E3 -S31540016A80C2800320D88443209A102001A0102200FE -S31540016A90DAA40320D884032082102000C2A4032054 -S31540016AA0DAA0032081D820007FFFC55901000000EC -S31540016AB0C2800320E2844320E0840320DA05E0100B -S31540016AC0D6066014C206E0089A0B60039B2B400B66 -S31540016AD082086001D407200CD806A000111000A03E -S31540016AE08328400A980B2001D60220049A134001BC -S31540016AF0992B000B9A13400CC203400080A0600002 -S31540016B0012800008821360041B048D15D8004000D2 -S31540016B109A13627880A3000D02800038C205E01006 -S31540016B2010800000010000008210201A331000A0DE -S31540016B30C22660149810203F2F1000A0391000A0E3 -S31540016B40351000A09A1020148210200E151000A0B6 -S31540016B50371000A0DA27200CC222A004D826A000B4 -S31540016B60D825E01010BFFF38D826E0089A10207FBC -S31540016B70331000A02F1000A0C2266014DA25E010C1 -S31540016B809810203F391000A0351000A08210201324 -S31540016B909A10200D111000A0371000A0C227200C1A -S31540016BA0DA22200410BFFFF0D826A00012BFFF2230 -S31540016BB0331000A08210201CC22660149A102015A2 -S31540016BC08210207F391000A0371000A0DA27200C50 -S31540016BD0C226E0089810200F2F1000A0351000A003 -S31540016BE01B1000A08210203FD8236004C226A000BB -S31540016BF010BFFF15D825E010DA06E008D806601464 -S31540016C00820860039A0B6002D607200C8328400C49 -S31540016C109B2B400B8210400DD80040001B100000FA -S31540016C20C203400080A3000102800004D406E008AC -S31540016C301080000001000000C205E010980AA00182 -S31540016C40D207200CD6066014820860038328400BC5 -S31540016C50992B0009940AA0039810400CDA06A0006B -S31540016C60111000A0952A80099A0B6001D6022004D2 -S31540016C708210400AC20040009B2B400B9813000D26 -S31540016C800321D9509813200482106321C2230000A6 -S31540016C90DA03000080A3400102800004C206E00836 -S31540016CA01080000001000000D407200CDA05E01036 -S31540016CB082086001D60660148328400A9A0B600355 -S31540016CC0D806A0009B2B400B151000A0D602A004AD -S31540016CD0980B20019A134001992B000B9813400CF5 -S31540016CE08210000C05048D158410A278072AF37BC7 -S31540016CF08610E301C4384000C438400003048D15B2 -S31540016D00DA0300008210627880A340010280000409 -S31540016D108213200410800000010000001B2AF37B2F -S31540016D20D80040009A13630180A3000D12BFFFFAF9 -S31540016D30C205E010D6066014D806E0088208600352 -S31540016D40D407200C8328400B980B2001DA06A000BB -S31540016D50111000A0992B000A9A0B6003D602200459 -S31540016D608210400C9B2B400B15100143A010400D87 -S31540016D70F002A0D0A2102003E0240000C0A002200F -S31540016D80921020034000097090047FFD8206200C7A -S31540016D9098102001912A0001992B00011B10012016 -S31540016DA09610000182136000DA02000180A34010B0 -S31540016DB0A204600112800087A004000C80A4600A2E -S31540016DC024BFFFEFE0240000C0A0022003100120F1 -S31540016DD0A810000BAA106000A0102000A2102003EA -S31540016DE090047FFD4000095892102003832C6002D5 -S31540016DF0912A0014DA04C00190020015820B6060EA -S31540016E009132200480A000019012201EA040001063 -S31540016E109A0B7F9F900A3F9F80A340081280006F84 -S31540016E20A204600180A4600A24BFFFEF90047FFDA5 -S31540016E3080A4200012800004C205E01010800000EA -S31540016E4001000000D6066014D806E00882086003F7 -S31540016E50D407200CDA06A000111000A08328400BAD -S31540016E60980B2001992B000AD60220049A0B600246 -S31540016E708210400C9B2B400BAA10400D9FC5400031 -S31540016E800100000082102400C0A04300C0A00220DF -S31540016E90A0102000A21020039B2C6002C204C00D4A -S31540016EA08208606080A00001A0400010A204600139 -S31540016EB080A4600A24BFFFFA9B2C600280A42008AC -S31540016EC022800004D004E00410800000010000008C -S31540016ED0808A204002800007010000007FFFFE19E2 -S31540016EE00100000080A22000128000040100000081 -S31540016EF010800000010000007FFFFE12D004A008B0 -S31540016F0080A22000128000040100000010800000D1 -S31540016F10010000007FFFFE0BD004E00880A22000A4 -S31540016F2012800004010000001080000001000000F2 -S31540016F3083480000842860808188A0000100000009 -S31540016F400100000001000000D806E008D407200C2B -S31540016F50DA05E010980B2001D6066014992B000A39 -S31540016F609A0B6003C206A0009B2B400B151000A094 -S31540016F70D602A004820860018328400B9A13400C74 -S31540016F809A1340019A136004C203400092102004F0 -S31540016F9091D02002010000007FFFC41D01000000C6 -S31540016FA0981020009A102200D8A343208210200175 -S31540016FB0C2A34320D8A3432003100000DA804380B4 -S31540016FC0DAA04380D8A0032081D820003080000574 -S31540016FD01080000001000000108000000100000048 -S31540016FE081C7E00891E820009DE3BF98400007D1A2 -S31540016FF001000000808A21000280003F010000005C -S315400170007FFFA88E01000000912A20047FFFA87708 -S31540017010900220050310014082106048DA006004A6 -S3154001702080A360002280001503100140B0100001CA -S31540017030C20600009B38601F81836000DA06200487 -S3154001704001000000010000008278400DDA062008A8 -S31540017050B006200C80A0400D028000049010200153 -S315400170607FFFA86701000000C206200480A06000DF -S3154001707012BFFFF00310014082106000DA00600485 -S3154001708080A360000280001501000000B0100001DD -S31540017090C206000081800000DA06200401000000DB -S315400170A0010000009A70400D8210000DDA0620089A -S315400170B0B006200C80A0400D0280000490102002F2 -S315400170C07FFFA84F01000000C206200480A0600097 -S315400170D012BFFFF00100000040000824010000003B -S315400170E080A2200012800004010000007FFFA84416 -S315400170F09010200381C7E00891E820009DE3BF98E6 -S315400171007FFFA84E01000000912A20047FFFA83787 -S3154001711090022004400007890100000080A221233B -S3154001712002800004010000007FFFA8359010200175 -S315400171304000078001000000808A21000280002B68 -S315400171400310014082106184DA00600880A360095F -S315400171500280001101000000B0100001C2060000CB -S31540017160DA062004D80620088258400DB006200CC5 -S3154001717080A0400C02800004901020027FFFA820CE -S3154001718001000000C206200880A0600912BFFFF47A -S3154001719001000000400007760100000080A22000A7 -S315400171A00280000F0100000040000762010000005C -S315400171B0808A22000280000D010000004000079EE7 -S315400171C00100000080A2200012800008010000009A -S315400171D07FFFA80B90102004308000047FFFA80891 -S315400171E09010200330BFFFF181C7E00891E82000ED -S315400171F09DE3BFA0941020001110005C9012222440 -S315400172001310005C921262281710005C9612E2304D -S315400172101910005C9813223493C2000081C24000C9 -S315400172201080019181C2C00081C300001080018E8F -S315400172309402A0019402A00180A2A0031280018AB7 -S3154001724001000000874400008D30E00E8C89A007C4 -S3154001725080A1A000028000C701000000AF30E00B12 -S31540017260AE0DE00780A5E000128000C201000000DB -S3154001727080A1A00212800035010000002510000007 -S31540017280E41C80002510000029100000A8152104E7 -S31540017290A6100012AA100012AC100014A1802046BC -S315400172A0A4100000AA10000001000000A180204E99 -S315400172B0A810210001000000A1800000010000008B -S315400172C001000000E83CA03082A4801312800166D0 -S315400172D082A5001612800164010000000100000031 -S315400172E001000000874400008D30E00B8C89A00727 -S315400172F08CA1A0051280015CA18000000100000064 -S315400173000100000001000000E81CA03082A5001623 -S315400173101280015582A54012A4100000128001522C -S315400173200100000001000000874400008D30E00BA1 -S315400173308C89A0078CA1A0031280014B010000009B -S315400173401080008C0100000080A1A0011280002362 -S3154001735025100000E41C80002510000029100000C3 -S31540017360A8152104A6100012AA100012AC10001490 -S31540017370A1802046A4100000AA10000001000000D0 -S31540017380A180204EA810210001000000A18000002C -S31540017390010000000100000001000000E83C8000FF -S315400173A082A480131280013082A500161280012E1C -S315400173B00100000001000000874400008D30E00B11 -S315400173C08C89A0078CA1A002128001270100000030 -S315400173D0108000680100000080A1A00312800065B2 -S315400173E0A6100000A210200EA1844000A6100000A5 -S315400173F0A1800000A814E000AB4400000100000099 -S31540017400AC14E00001000000AF44000080A520005C -S3154001741012800115AA8D6E0080A5400012800112CE -S3154001742080A5A00012800110AF35E00BAE0DE0073C -S3154001743080A5E0011280010C01000000A0100000AF -S31540017440A1844000A6100000A1800000E8180000B9 -S31540017450AC100000AE100000EC04C000EE04E004E5 -S3154001746080A500161280010080A54017128000FEFB -S3154001747001000000A5440000A534A00BA40CA00700 -S3154001748080A4A001128000F801000000A0100000B5 -S31540017490A1844000A6100000A1800000A210200A8D -S315400174A0A1844000A4100000A1800000E81800005B -S315400174B0AC100000AE100000EC04C012EE04E00473 -S315400174C080A50016128000E880A54017128000E6CC -S315400174D001000000A5440000A534A00BA40CA007A0 -S315400174E080A4A002068000E00100000021100140B6 -S315400174F0A0142200EC1C0000A0042008E81C000097 -S31540017500A1844000A6100000A1800000A210200E18 -S31540017510A1844000A4100010AC100000AE10000081 -S31540017520A18000000100000001000000EC3C801336 -S31540017530AC100000AE100000E81CC01280A5001679 -S31540017540128000C980A54017128000C701000000C3 -S31540017550A5440000A534A00BA40CA00780A4A00458 -S31540017560128000C1010000001080000201000000ED -S315400175708B4440008A09601F80A160010280000A95 -S315400175808C1000059DE3BFA08AA1600116BFFFFED6 -S315400175900100000081E800008CA1A00116BFFFFE9A -S315400175A0010000000100000001000000A023A080AE -S315400175B0A02C20078E100010A3480000E2240000F2 -S315400175C0C2242004C43C2008C83C2010CC3C2018CE -S315400175D0F03C2020F43C2028F83C2030FC3C20386C -S315400175E0D03C2040D43C2048D83C2050DC3C20585C -S315400175F0A5500000E424206080102008821020015C -S315400176008410200286102003881020048A10200549 -S315400176108C10200681900000A42C601F818C800074 -S31540017620010000000100000001000000030040408D -S3154001763082106101841000008610000089444000D8 -S315400176408809201F86100004A01000028400400211 -S31540017650A210000284004002A410000284004002ED -S31540017660A610000284004002A810000284004002D5 -S31540017670AA10000284004002AC10000284004002BD -S31540017680AE100002840040029010000284004002C5 -S3154001769092100002840040029410000284004002CD -S315400176A096100002840040029810000284004002B5 -S315400176B09A100002840040029C100002840040029D -S315400176C09E1000028400400281E0000086A0E00195 -S315400176D016BFFFDE01000000030040408210610139 -S315400176E0841000008610000480A400021280003F2E -S315400176F08400400280A440021280003C8400400283 -S3154001770080A48002128000398400400280A4C00215 -S31540017710128000368400400280A5000212800033A8 -S315400177208400400280A5400212800030840040025D -S3154001773080A580021280002D8400400280A5C002EF -S315400177401280002A8400400280A200021280002793 -S315400177508400400280A2400212800024840040023C -S3154001776080A28002128000218400400280A2C002D1 -S315400177701280001E8400400280A300021280001B7A -S315400177808400400280A34002128000188400400217 -S3154001779080A38002128000158400400280A3C002AB -S315400177A0128000128400400281E0000086A0E001C0 -S315400177B016BFFFCE0100000080A020001280000B02 -S315400177C080A0FFFF1280000980A16005128000079A -S315400177D080A1A0061280000501000000A01000074C -S315400177E010800006C0242020A01000079010200120 -S315400177F010800002D024202082100007C4004000DF -S3154001780081888000010000000100000001000000A5 -S31540017810C4186008C8186010CC186018F0186020A9 -S31540017820F4186028F8186030FC186038D0186040A9 -S31540017830D4186048D8186050DC186058E40060607D -S31540017840C200600481948000010000000100000034 -S3154001785001000000A0100007F004202081C7E008C5 -S3154001786081E8000010BFFFFCB010000001000000DD -S3154001787081D8200081C3E008010000001B100144AB -S31540017880D8036150821020018328400C1B1001440B -S3154001789082007FFFD803615482084008932A400C36 -S315400178A0900040098213C0007FFFE77F9E10400091 -S315400178B0010000001B100144D803615082102001D1 -S315400178C08328400C1B10014482007FFFD80361547A -S315400178D0932A400C82084008900040099210000A01 -S315400178E08213C0007FFFE7729E1040000100000036 -S315400178F01B100144D8036150821020018328400C9B -S315400179001B10014482007FFFD8036154932A400C27 -S3154001791082084008900040099210000A8213C00074 -S315400179207FFFE7679E104000010000001B100144E5 -S31540017930D8036150821020018328400C1B1001445A -S3154001794082007FFFD803615482084008932A400C85 -S31540017950900040098213C0007FFFE7579E10400008 -S31540017960010000001B100144D803615C8210200114 -S315400179708328400C1B10014482007FFFD803616CB1 -S31540017980932A400C82084008900040099210000A50 -S315400179908213C0007FFFE74E9E10400001000000A9 -S315400179A01B100144D803615C821020018328400CDE -S315400179B01B10014482007FFFD803616C932A400C5F -S315400179C082084008900040099210000A8213C000C4 -S315400179D07FFFE7439E104000010000009DE3BF5832 -S315400179E02D100144A2102000C205A16080A44001CF -S315400179F01680001BA01020002B10014429100144C1 -S31540017A0027100144A4102001D005615C912C800807 -S31540017A10C205216C90023FFF832C0001900A001899 -S31540017A207FFFE72990020001C204E14C901E000845 -S31540017A30900A000180A00008A2647FFFA0042001F3 -S31540017A40C205A16080A4000126BFFFF1D005615C9B -S31540017A5080A4600012800003B0102000B010200105 -S31540017A6081C7E00881E800001B100144D803615C2E -S31540017A70821020018328400C1B10014482007FFFA5 -S31540017A80D803616C82084008932A400C9000400953 -S31540017A908213C0007FFFE70C9E10400001000000EA -S31540017AA01B100144D803615C821020018328400CDD -S31540017AB01B10014482007FFFD803616C8208400895 -S31540017AC0932A400C900040098213C0007FFFE702D1 -S31540017AD09E10400001000000952AA00D03280000D9 -S31540017AE094028009D02040009422B000D420600442 -S31540017AF081C3E00801000000033FFFBF821062F826 -S31540017B009DE38001193FFFBF94132368B407BFF873 -S31540017B10031000459606800A82106020C222E00CBE -S31540017B2003100044821063E0C222E0041B100044AB -S31540017B309A1363C0033FFFBFDA26800A901323805E -S31540017B40331000458210635C94068008981323C065 -S31540017B50921660008200401ED222E008D4204000E6 -S31540017B60B006800C7FFFA5A1901020067FFFE6CAD4 -S31540017B7090102000920A3FF07FFFE6C99010200046 -S31540017B80210000307FFFE6C490102000808A00105B -S31540017B9012BFFFFD010000007FFFFF3621000030CC -S31540017BA07FFFE6BD90102000808A001012BFFFFDC6 -S31540017BB0010000007FFFE6B890102000030020403E -S31540017BC08210600F921200017FFFE6B590102000EF -S31540017BD07FFFE6B19010200821100144D0242148AE -S31540017BE07FFFE6AD9010200CA73A2010993A201459 -S31540017BF0A60CE007980B200FDA042148A8230013AE -S31540017C00A80520089F3B6014933B60109B3B60187E -S31540017C1094050013A2102001AC03200A9E0BE00F2D -S31540017C2096102400AE0B60039402A00221200000AE -S31540017C30992AC00C1B1001448203E00A952C400A84 -S31540017C409424000A832C4001D8236168A0240001B2 -S31540017C501B10014403100144EC23615C972AC00FB9 -S31540017C60AA03E00A1B100144D620614403100144D3 -S31540017C70EA236154EA2061501B1001440310014478 -S31540017C80D423614C920A6007A53A2018D020615846 -S31540017C90153FFFBF932C4009A40CA00303100144D8 -S31540017CA09412A358932C4009A404A001391001440D -S31540017CB037100144EC20616C9B2C40149402801EC9 -S31540017CC0E0272164E426E160AA027FFFDA228000F0 -S31540017CD0AC85E0010280000CBB2C4013033FFFBF83 -S31540017CE082106368A0068001A4100016D00400002B -S31540017CF09FC20000A0042004A484BFFF32BFFFFD41 -S31540017D00D00400007FFFE66490102000920A3FFCF9 -S31540017D107FFFE66390102000A410200080A4801607 -S31540017D2016800022A2102000033FFFBFAE106368F9 -S31540017D30A610001AA010200080A400163680001854 -S31540017D40A404A00110800005A810001780A4001605 -S31540017D5036800013A404A001921000107FFFFEC8D4 -S31540017D60D004C014820A001580A0401512BFFFF846 -S31540017D70A0042001C204C01482184008DA07216415 -S31540017D808208400D80A00001A2647FFF80A40016F6 -S31540017D9006BFFFF392100010A404A00180A4801630 -S31540017DA006BFFFE5A604E0047FFFE63B90102000F6 -S31540017DB0A6100008901020007FFFE6399214E003D8 -S31540017DC080A46000028001B101000000833CE00C08 -S31540017DD080886003128000A5030048D1833CE013EC -S31540017DE080886003128001AD010000007FFFFEA183 -S31540017DF0210000307FFFE62890102000808A001085 -S31540017E0012BFFFFDA6100008A4102000C206E160C3 -S31540017E1080A480011680000D832CA00292100012CE -S31540017E20901000187FFFFED094102000A404A001FA -S31540017E30C206E16080A4800106BFFFFA92100012DB -S31540017E40A4102000832CA002A404A001C026000196 -S31540017E5080A4A01E04BFFFFD832CA0028210200532 -S31540017E60C22600009A102001DA2620048210200240 -S31540017E70C22620089A102003DA26200C7FFFFED85E -S31540017E809010001880A22000028001D3010000005A -S31540017E90C206000080A060050280000401000000C7 -S31540017EA07FFFA4D7901020067FFFFECD90100018CB -S31540017EB080A22000128001C401000000A41020000D -S31540017EC0C206E16080A480011680000F9210001264 -S31540017ED0A0062004941020007FFFFEB290100018E7 -S31540017EE092100012901000107FFFFEAE94102000F9 -S31540017EF0A404A001C206E16080A4800106BFFFF68A -S31540017F00921000127FFFE5FA901000187FFFE5F806 -S31540017F10900620207FFFE5F6900620407FFFE5F49E -S31540017F2090062060A4102000C206E16080A4800172 -S31540017F3006800196A21020007FFFA4B19010200870 -S31540017F40173FFFBF8212E3C0940680018212E35CB1 -S31540017F508200401ED81A8000C2004000D838400036 -S31540017F609612E380C206800B80A06005128000064F -S31540017F708206800BDA00600480A36001028000055E -S31540017F80A41020007FFFA49E90102009A410200079 -S31540017F90C206E16080A4800116800011A210200073 -S31540017FA0A0062004921000127FFFFEBE9010001022 -S31540017FB0901A200180A00008A2647FFFA404A001BA -S31540017FC0C206E16080A4800106BFFFF8921000124C -S31540017FD080A4600102800005833CE0137FFFA488F2 -S31540017FE09010200A833CE013808860031280018050 -S31540017FF082102005C22600009A102001DA262004AC -S3154001800082102002C22620089A102003DA26200C6C -S315400180101B3FFFBF9A1363589A03401ED00340008B -S315400180204000048D9210001D032EEEEEA12A20027F -S31540018030A21063BBE22600107FFFFE699010001874 -S3154001804080A220001280016701000000C2060010D4 -S3154001805080A0401102800005030048D17FFFA4683B -S3154001806090102012030048D1821061671B226AF3E7 -S31540018070C22620209A1361EFDA262024C20E202040 -S3154001808080A0600102800004010000007FFFA45C23 -S315400180909010201AC20E202180A060230280000485 -S315400180A0010000007FFFA4569010201BC20E202223 -S315400180B080A0604502800004010000007FFFA450BB -S315400180C09010201CC20E202380A06067028000040D -S315400180D0010000007FFFA44A9010201DC20E2024FB -S315400180E080A0608902800004010000007FFFA44453 -S315400180F09010201EC20E202580A060AB0280000495 -S31540018100010000007FFFA43E9010201FC20E2026D2 -S3154001811080A060CD02800004010000007FFFA438EA -S3154001812090102020C20E202780A060EF028000041C -S31540018130010000007FFFA43290102021C2162020AA -S31540018140832860108330601080A061230280000480 -S31540018150010000007FFFA42A90102022DA16202277 -S315400181609B2B6010030000119B33601082106167E6 -S3154001817080A3400102800004010000007FFFA4208B -S3154001818090102023DA1620249B2B60100300002236 -S315400181909B336010821061AB80A3400102800004D2 -S315400181A0010000007FFFA41690102024DA16202635 -S315400181B09B2B6010030000339B336010821061EFEC -S315400181C080A3400102800005821020307FFFA40C6D -S315400181D09010202582102030C22E2020030C08D179 -S315400181E0DA0620208210616780A3400102800005E3 -S315400181F0821020317FFFA402901020278210203167 -S31540018200C22E2021030C0C51DA0620208210616710 -S3154001821080A3400102800005821020327FFFA3F82F -S315400182209010202882102032C22E2022210C0C4C84 -S31540018230DA0620208214226780A3400102800005CD -S31540018240821020337FFFA3EE901020298210203325 -S31540018250C22E20239A142233C206202080A0400D2C -S3154001826002800005821020347FFFA3E59010202A6A -S3154001827082102034C22E2024030D2AF3DA0620244C -S31540018280821061EF80A340010280000582102035F3 -S315400182907FFFA3DB9010202B82102035C22E202594 -S315400182A0030D0D73DA062024821061EF80A340018D -S315400182B002800005821020367FFFA3D19010202C2A -S315400182C082102036C22E2026210D0D4DDA0620249D -S315400182D0821422EF80A340010280000582102037DC -S315400182E07FFFA3C79010202D82102037C22E202752 -S315400182F09A142237C206202480A0400D0280000530 -S31540018300210000107FFFA3BE9010202E21000010F7 -S3154001831082142041C23620200310104CDA06202058 -S315400183208210623380A340010280000582142243F9 -S315400183307FFFA3B39010202F82142243C2362022FE -S3154001834003101050DA0620208210624380A34001B8 -S3154001835002800005210000117FFFA3A99010203063 -S315400183602100001182142045C23620240311114DEB -S31540018370DA0620248210623780A34001028000057C -S31540018380821422477FFFA39E9010203182142247F8 -S31540018390C236202603111151DA0620248210624783 -S315400183A080A3400102800004010000007FFFA394E6 -S315400183B0901020327FFFFD2FA4102000C206E160FD -S315400183C080A48001168000151B100144D403616C02 -S315400183D096100001A010200080A4001D3680000CDC -S315400183E0A404A001832C800A9B286002992CA0102A -S315400183F082130010C226000DA004200180A4001D96 -S3154001840006BFFFFC9A036004A404A00180A4800B6C -S3154001841026BFFFF2A01020007FFFE49F90102000AE -S3154001842003000010808A000112BFFFFC010000001A -S31540018430A4102000C206E16080A4800116800114C8 -S31540018440921000127FFFFD8990100018151001440B -S31540018450C202A14C900A0001820E000180A20001D5 -S31540018460A404A00112BFFFF4901020337FFFA36440 -S3154001847001000000C206E16080A4800106BFFFF250 -S3154001848092100012308001027FFFA35D90102001FF -S3154001849010BFFE50833CE00C7FFFE47F901020002C -S315400184A0133FFFF09212603F920A0009A61000089E -S315400184B07FFFE47B901020007FFFE3D2A4102000D1 -S315400184C01303C0009214C0097FFFE4759010200089 -S315400184D080A4801616800009921000129016600042 -S315400184E07FFFFD0494102000A404A00180A48016FF -S315400184F006BFFFFB921000127FFFE3C2010000009E -S315400185007FFFE46590102000913A200A900A2003EB -S3154001851080A2200102800004010000007FFFA338F1 -S315400185209010200201000000921020009016600079 -S315400185307FFFFCE194102000010000007FFFE4561C -S31540018540901020001303C000922A00097FFFE454D3 -S3154001855090102000010000007FFFE3AA0100000007 -S315400185607FFFE44D90102000913A200C900A2003A1 -S3154001857080A2200102BFFE1E010000007FFFA32052 -S315400185809010200330BFFE1A921000127FFFFD4566 -S3154001859090100018901A200580A00008A2647FFF61 -S315400185A0A404A001C206E16080A4800106BFFFF8D1 -S315400185B09210001280A4600012BFFE63173FFFBFF6 -S315400185C030BFFE5E7FFFA30E9010200710BFFE3D19 -S315400185D0A41020007FFFA30A9010200530BFFE2D76 -S315400185E07FFFA3079010201130BFFE997FFFE42A39 -S315400185F090102000033FFFF08210603F920A000175 -S315400186007FFFE42790102000033FFFBFA010638047 -S3154001861092102000941020007FFFFCE2900680100B -S315400186207FFFE41D901020000303C0009212000159 -S315400186307FFFE41B9010200010800006A41020004C -S31540018640900680107FFFFCD794102005A404A0015A -S31540018650C206E16080A4800106BFFFFA92100012B3 -S31540018660033FFFBFA01063809A102001DA2E8010CD -S3154001867003004000D80680108210600580A30001E7 -S3154001868002800004010000007FFFA2DD9010200B54 -S315400186907FFFE40190102000913A2006900A2003C2 -S315400186A080A2200102800004010000007FFFA2D4C5 -S315400186B09010200C7FFFE3F8901020001303C000B8 -S315400186C0922A00097FFFE3F69010200092102000C5 -S315400186D0900680107FFFFCB3941020007FFFE3EEED -S315400186E0901020002103C000921200107FFFE3EC9E -S315400186F0901020007FFFE3E890102000808A001050 -S3154001870002BFFFFDA6100008A4102000C206E160CA -S3154001871080A480011680000E033FFFBF9A102001FE -S31540018720A2106380A12B401D921000129006801169 -S315400187307FFFFC8D94043FFFA404A001C206E160C3 -S3154001874080A4800106BFFFFA921000121303C000F5 -S31540018750922CC0097FFFE3D2901020002103C00074 -S315400187607FFFE3CD90102000808A001012BFFFFDED -S315400187701B004000213FFFBF82142380D8068001A1 -S315400187809A13600580A3000D0280000401000000D9 -S315400187907FFFA29B9010200D7FFFE3BF901020002A -S315400187A0913A2008900A200380A2200122800005E8 -S315400187B0A01423787FFFA2929010200FA014237853 -S315400187C094068010981020119A102055D83A8000AE -S315400187D07FFFE3B1901020000303C0009212000115 -S315400187E0920A7F3F7FFFE3AE90102000A0068010E3 -S315400187F07FFFE3CD9010001010800006A4102000EA -S31540018800900420047FFFFC6794102055A404A00126 -S31540018810C206E16080A4800106BFFFFA92100012F1 -S31540018820113FFFBF901223787FFFE3BF9006800878 -S3154001883080A220111280000480A2605502800004AB -S31540018840010000007FFFA26E901020107FFFE3928F -S3154001885090102000833A20068208600380A06001C0 -S3154001886002800004A61000087FFFA2659010201028 -S31540018870133C3FF09212603F920CC0097FFFE388A0 -S315400188809010200010BFFDDC821020057FFFE3829F -S31540018890901020009212200F7FFFE381901020005C -S315400188A081C7E00891E820009DE3BF987FFFFC93D4 -S315400188B001000000B0100008130020409212600F22 -S315400188C07FFFE377901020000100000081C7E00898 -S315400188D081E80000033FFFBF821063589DE380019A -S315400188E07FFFFBE401000000400002380100000068 -S315400188F07FFFE36990102008A21000087FFFE3661E -S315400189009010200C7FFFA24DA0100008912A200450 -S315400189107FFFA2369002200C973C6014833C60187E -S31540018920953C2014993C201882086003960AE00F72 -S31540018930820060019602E00AA33C6010A13C20102F -S31540018940980B2003940AA00FA728400B98032001F7 -S31540018950A20C6007A00C20079402A00A9A102001DD -S31540018960A2046002A0042002B12B000A03200000E9 -S31540018970AB2B4011A52B40109620401898057FFF40 -S31540018980822040139A04BFFFAE130001A213400B8D -S31540018990210000307FFFE34090102000808A0010C4 -S315400189A012BFFFFD033FFFBF9A07BFF8821063C0A6 -S315400189B0A00340012D155555901000189210001036 -S315400189C07FFFE2C89415A15580A220001280004B7A -S315400189D0292AAAAA92100010901000187FFFE2D50A -S315400189E0941522AA80A220001280004E01000000A8 -S315400189F07FFFA21201000000912A20047FFFA1FB04 -S31540018A009002200A400001EE01000000921522006A -S31540018A10920C400990100018941000119610001203 -S31540018A207FFFE2ED981522AA80A220001280005114 -S31540018A30010000009215A10090100018920C400907 -S31540018A4094100011961000127FFFE2E39815A1558C -S31540018A5080A2200012800044010000007FFFA1F7A0 -S31540018A6001000000912A20047FFFA1E09002200B23 -S31540018A70901000137FFFE2BF9215A15580A22000FE -S31540018A801280003501000000901000137FFFE2B90B -S31540018A90921522AA80A220001280002C010000001B -S31540018AA07FFFA1E601000000912A20047FFFA1CFAC -S31540018AB0900220099010001392100017941000158F -S31540018AC07FFFE2B8961522AA80A220001280001BE1 -S31540018AD00100000090100013921000179410001529 -S31540018AE07FFFE2B09615A15580A2200002800025A5 -S31540018AF0010000003080000E7FFFA1C190102001CF -S31540018B00292AAAAA92100010901000187FFFE28924 -S31540018B10941522AA80A2200002BFFFB601000000E0 -S31540018B207FFFA1B79010200230BFFFB27FFFA1B4F3 -S31540018B3090102008308000137FFFA1B190102007CC -S31540018B4010BFFFE6901000137FFFA1AD90102006E5 -S31540018B5030BFFFD47FFFA1AA9010200510BFFFCCE4 -S31540018B60901000137FFFA1A69010200430BFFFBCD8 -S31540018B707FFFA1A39010200310BFFFB09215A10063 -S31540018B807FFFFB3CB0102000400001900100000037 -S31540018B900100000081C7E00881E800009DE3BF981D -S31540018BA07FFFA18D1100412CDA062004D80620044E -S31540018BB09A0B6003993B200282102007C2262008A7 -S31540018BC0BA036001B20B27FF010000009010200A92 -S31540018BD0C02600007FFFA1850100000017000200AA -S31540018BE082103FFFC226000B032AAAAA1B15555520 -S31540018BF0D806000BAC102000821062AA9A13615568 -S31540018C00AA0B000180A5801D16800038A80B000D17 -S31540018C109612E020A72E600880A4E0000480000C94 -S31540018C20A2102000832DA0028200401819000200E4 -S31540018C309A10000BE820400CEA20400DA204601077 -S31540018C4080A4C01114BFFFFC82006040AC05A001A6 -S31540018C5080A5801D06BFFFF280A4E000AC10200075 -S31540018C6080A5801D1680002103000200B8106020F7 -S31540018C70A72E6008AE10001880A4E00004800017FB -S31540018C80A210200003000200A4060001A005C01C9A -S31540018C90C2048000A2046010A404A04080A0401435 -S31540018CA002800004901020017FFFA15501000000C1 -S31540018CB0C2040000A004204080A0401502800004A8 -S31540018CC0901020017FFFA14E0100000080A4C01139 -S31540018CD014BFFFF001000000AC05A00180A5801D76 -S31540018CE006BFFFE6AE05E0047FFFA1409010200CD1 -S31540018CF0AC10200080A5801D1680008803155555AF -S31540018D009E1061551B000800032AAAAA9A13600403 -S31540018D10901062AAA72E600880A4E0000480000E8D -S31540018D20A2102000832DA0138200401813000800D2 -S31540018D309410000F9610000D98100008D420400999 -S31540018D40D820400BA204600280A4C01114BFFFFCCE -S31540018D5082006008AC05A00180A5801D06BFFFF01A -S31540018D6080A4E000AC10200080A5801D1680006B19 -S31540018D7003155555B81061551B000800032AAAAAC8 -S31540018D80B6136004B41062AAA72E600880A4E0005E -S31540018D9004800019A2102000832DA013A0004018C2 -S31540018DA02F000800AA10001CA810001BA410001ACE -S31540018DB0C2040017A204600280A04015028000048C -S31540018DC0901020037FFFA10E01000000C204001491 -S31540018DD0A004200880A040120280000490102003C5 -S31540018DE07FFFA1070100000080A4C01114BFFFF15D -S31540018DF001000000AC05A00180A5801D06BFFFE56E -S31540018E0080A4E000AC10200080A5801D16800043A0 -S31540018E10030008009E1060041B155555032AAAAA93 -S31540018E209A136155901062AAA72E600880A4E000AB -S31540018E300480000EA2102000832DA013820040184A -S31540018E40130008009410000F9610000D98100008AA -S31540018E50D620400AD8204009A204600280A4C0114D -S31540018E6014BFFFFC82006008AC05A00180A5801DEF -S31540018E7006BFFFF080A4E000AC10200080A5801D55 -S31540018E801680002603155555B81061551B2AAAAA06 -S31540018E9003000800A72E6008B61362AAB410600446 -S31540018EA080A4E00004800019A2102000832DA013A5 -S31540018EB0A00040182F000800AA10001CA810001B93 -S31540018EC0A410001AC2040012A204600280A0401538 -S31540018ED002800004901020047FFFA0C90100000019 -S31540018EE0C2040017A004200880A040140280000498 -S31540018EF0901020047FFFA0C20100000080A4C01191 -S31540018F0014BFFFF101000000AC05A00180A5801D42 -S31540018F1006BFFFE580A4E00082102005C226200896 -S31540018F201B200000DA26000081C7E00881E8000026 -S31540018F3081C3E00891444000808000001510014043 -S31540018F409412A18090102000921022468180000048 -S31540018F50010000000100000001000000D002800075 -S31540018F609122400881C3E008010000008180000091 -S31540018F70901020018090200180D020011280002C89 -S31540018F800100000080D23FFF168000290100000049 -S31540018F9080DA3FFF9340000080A27FFF12800024C9 -S31540018FA00100000080D23FFF9348000093326014D5 -S31540018FB0920A600F80A260081280001D0100000025 -S31540018FC08180000090102001945220049452A00404 -S31540018FD09452A00496A2A040128000150100000000 -S31540018FE0818000009010200280A000003280001095 -S31540018FF09052000880A220021280000D010000005C -S31540019000818000009010200280A000000100000035 -S31540019010328000079052000880A22002128000048C -S315400190200100000081C3E0089010200181C3E008DF -S31540019030901000001315555592126155A5824000B6 -S31540019040010000000100000001000000954480007D -S3154001905080A2400A1280004301000000923A40007B -S31540019060A58240000100000001000000010000004F -S315400190709544800080A2400A1280003A0100000017 -S315400190801100003F901223FFA5800000818000005F -S3154001909001000000010000000100000093F23FFFC3 -S315400190A09A10000993F23FFF93F23FFF93F23FFF7D -S315400190B093F23FFF93F23FFF93F23FFF93F23FFF5D -S315400190C09940000097448000153FFC009412A00887 -S315400190D080A2400A1280002380A2400B1280002108 -S315400190E080A320071280001F113FFF8090122001AC -S315400190F080A340081280001B1100003F901223FFFD -S31540019100A5800000818000000100000001000000F0 -S315400191100100000093FA3FFF93FA3FFF93FA3FFFA6 -S3154001912093FA3FFF93FA3FFF93FA3FFF93FA3FFFCC -S3154001913093FA3FFF994000009744800080A260085F -S315400191401280000880A260081280000680A32000D9 -S31540019150128000040100000081C3E0089010200144 -S3154001916081C3E00890100000818000009010200229 -S3154001917080A00000328000109072000880A2200278 -S315400191801280000D01000000818000009010200235 -S3154001919080A00000010000003280000790720008A4 -S315400191A080A22002128000040100000081C3E00871 -S315400191B09010200181C3E00890100000C0A000403B -S315400191C081C3E00801000000110020409012200FE9 -S315400191D0D0A0004081C3E008010000009DE3BF9894 -S315400191E07FFFE12D90102008A21000087FFFE12AA1 -S315400191F09010200C833C60149B3A2014A13A20180D -S31540019200A33C6018A20C6003A00C20038208600FE7 -S315400192109A0B600F8200600A9A03600AA2046001F9 -S31540019220A0042001A32C40017FFFFFE5A12C000DE6 -S315400192307FFFE090901000117FFFE09C901000109E -S315400192407FFFF98C010000007FFFFFE081E800000D -S315400192500100000098120009818200009AAB2FFF9D -S315400192600280002598880000992300099923000966 -S315400192709923000999230009992300099923000993 -S315400192809923000999230009992300099923000983 -S315400192909923000999230009992300099923000973 -S315400192A09923000999230009992300099923000963 -S315400192B09923000999230009992300099923000953 -S315400192C09923000999230009992300099923000943 -S315400192D09923000999230009992300099923000933 -S315400192E099230009992300099923000081C3E008C5 -S315400192F09140000099230009992300099923000907 -S315400193009923000999230009992300099923000902 -S3154001931099230009992300099923000999230009F2 -S3154001932099230009992300009B400000992B200CAA -S315400193309B33601481C3E0089013400C1080000BEE -S31540019340861020008092400816800008861000088A -S31540019350809240001680000480920000168000032F -S3154001936092200009902000089A9240001280000540 -S315400193709610000891D0200281C3E00890100000A9 -S3154001938080A2C00D0A8000959410000003020000DF -S3154001939080A2C0010A8000289810000080A34001E5 -S315400193A01A80000D841020019B2B600410BFFFFC26 -S315400193B0980320019A83400D1A8000078400A0017A -S315400193C0832860049B3360019A03400110800007A3 -S315400193D08420A00180A3400B0ABFFFF701000000D3 -S315400193E0028000020100000084A0A00106800076F0 -S315400193F0010000009622C00D941020011080000A41 -S3154001940001000000952AA001068000059B336001FA -S315400194109622C00D108000049402A0019602C00D50 -S315400194209422A00184A0A00116BFFFF78092C0003C -S31540019430308000659B2B600480A3400B08BFFFFE74 -S315400194409883200102800065982320018092C00004 -S31540019450952AA0040680002F9B33600196A2C00D79 -S31540019460068000179B33600196A2C00D0680000B53 -S315400194709B33600196A2C00D068000059B336001B7 -S3154001948096A2C00D108000509402A00F9682C00D86 -S315400194901080004D9402A00D9682C00D06800005F5 -S315400194A09B33600196A2C00D108000479402A00B29 -S315400194B09682C00D108000449402A0099682C00D88 -S315400194C00680000B9B33600196A2C00D0680000505 -S315400194D09B33600196A2C00D1080003B9402A00709 -S315400194E09682C00D108000389402A0059682C00D68 -S315400194F0068000059B33600196A2C00D10800032A4 -S315400195009402A0039682C00D1080002F9402A00100 -S315400195109682C00D068000179B33600196A2C00D4E -S315400195200680000B9B33600196A2C00D06800005A4 -S315400195309B33600196A2C00D108000239402BFFFA9 -S315400195409682C00D108000209402BFFD9682C00D08 -S31540019550068000059B33600196A2C00D1080001A5B -S315400195609402BFFB9682C00D108000179402BFF98A -S315400195709682C00D0680000B9B33600196A2C00DFA -S31540019580068000059B33600196A2C00D1080000E37 -S315400195909402BFF79682C00D1080000B9402BFF56E -S315400195A09682C00D068000059B33600196A2C00DD0 -S315400195B0108000059402BFF39682C00D1080000210 -S315400195C09402BFF198A3200116BFFFA28092C0006A -S315400195D0268000029602C0098090C00026800002C3 -S315400195E09620000B81C3E0089010000B92100008F2 -S315400195F09010200094102000961020008213C00085 -S31540019600400000039E104000010000009DE3BF980A -S3154001961023100143400005F6901460F40310006DD9 -S31540019620E0006178D004214880A220002280002DEC -S315400196309004214CD602200480A2E01F1480001D14 -S315400196400100000080A620001280000B94022088B1 -S31540019650832AE0029A02E00182004008DA222004CD -S31540019660F2206008400005FA901460F41080002250 -S31540019670B0102000821020019328400B992AE00265 -S31540019680DA02A1009A1340098203000AF62060809B -S31540019690F422800C80A6200212BFFFEEDA22A1003E -S315400196A0C202A1048210400910BFFFEAC222A104EE -S315400196B0400000139010219080A220000280000BF0 -S315400196C096102000C2042148C2220000D02421481D -S315400196D0C0222004C022218810BFFFDBC022218C7A -S315400196E010BFFFD5D0242148400005D9901460F41D -S315400196F0B0103FFF81C7E00881E8000092100008E2 -S3154001970003100141D00063708213C0004000000A7B -S315400197109E10400001000000921000080310014114 -S31540019720D00063708213C000400002199E104000B1 -S31540019730010000009DE3BF988206600B80A0601681 -S31540019740A610001818800003A0087FF8A01020106A -S3154001975080A400199A4020008334201F8090400D38 -S31540019760128001B0B0102000400001B090100013EB -S3154001977080A421F718800017993420093910014136 -S315400197808217238098040001F003200C80A6000C68 -S315400197900280004E9F342003C206200494087FFCB9 -S315400197A09A06000AC203600482106001D006200CAA -S315400197B0D2062008D2222008C2236004D022600C9F -S315400197C0400001A09010001310800196B0062008B9 -S315400197D080A32000128000289F34200339100141C4 -S315400197E09B2BE003821723809A0340011080000AD5 -S315400197F0F003600C94087FFC9622801080A2E00F53 -S315400198001480010980A2E00036BFFFE79A06000AEC -S31540019810F006200C80A6000D32BFFFF7C2062004D9 -S315400198209E03E001251001419814A388F003200806 -S3154001983080A6000C0280005D833BE01FC206200427 -S3154001984094087FFC9622801080A2E00F1480009F2E -S3154001985080A2E000D823200C06800023D8232008CC -S315400198609A06000AC20360048210600110BFFFD548 -S31540019870C22360048334200680A3200408BFFFD896 -S315400198809E00603880A3201408BFFFD59E03205B4D -S315400198908334200C80A3205408BFFFD19E00606E04 -S315400198A08334200F80A3215408BFFFCD9E006077EB -S315400198B08334201280A3255408BFFFC99E00607CD3 -S315400198C010BFFFC79E10207E98062008F003200C8B -S315400198D080A6000C32BFFFB2C206200410BFFFD2E1 -S315400198E09E03E00280A2A1FF088000BE9B32A00336 -S315400198F09732A00980A2E0002280001796172380A4 -S315400199008332A00680A2E004088000129A006038E3 -S3154001991080A2E0140880000F9A02E05B8332A00C1B -S3154001992080A2E0540880000B9A00606E8332A00F3B -S3154001993080A2E154088000079A0060778332A01222 -S3154001994080A2E554088000039A00607C9A10207E2C -S3154001995096172380832B60039000400BD202200888 -S3154001996080A240082280010F99336002C20260043E -S3154001997082087FFC80A0400A28800007D002600C44 -S31540019980D202600880A2400832BFFFFAC2026004D8 -S31540019990D002600CD026200CD2262008F022600C82 -S315400199A0F0222008833BE01F8330601E8203C00102 -S315400199B03910014183386002981723809A1020019B -S315400199C0932B4001D803200480A2400C1880004B01 -S315400199D0AE172380808B00091280000D03100141D0 -S315400199E0820BFFFC92024009808B0009128000071E -S315400199F09E0060048210000C920240098088400952 -S31540019A0002BFFFFE9E03E00403100141A2106380E2 -S31540019A10A8100011832BE003980040119010000F0D -S31540019A209A10000C1080000AF003600C94087FFC29 -S31540019A309622801080A2E00F1480007D80A2E00073 -S31540019A403680008B9A06000AF006200C80A6000D8F -S31540019A5032BFFFF7C20620049E03E001808BE0037C -S31540019A6012BFFFF19A036008808A200398033FF8EA -S31540019A70028000D490023FFFC203200880A0400C20 -S31540019A8002BFFFFB808A200392024009C2052004DF -S31540019A9080A24001188000183910014180A260005F -S31540019AA0128000068088400910800014AE1723807A -S31540019AB09E03E0048088400922BFFFFE92024009CE -S31540019AC010BFFFD6832BE0038214200194060010B9 -S31540019AD0C2262004D423200CD42320088212E0017C -S31540019AE0D622800BD822A008C222A00410BFFF357F -S31540019AF0D822A00CAE172380F005E008C206200448 -S31540019B00AA087FFC80A540109A4020009625401067 -S31540019B1080A2E00F14800042821020018093400110 -S31540019B200280002703100143DA0061982D1001419C -S31540019B309A04000DC205A378A810001580A07FFFE6 -S31540019B40A203601002800004A406001582046FFF80 -S31540019B50A208700090100013400000C0921000113E -S31540019B6080A23FFF02800008B210000880A20012C6 -S31540019B701A8000463B10014380A60017228000440C -S31540019B80C207616882172380D8006008DA0320047F -S31540019B909A0B7FFC80A340109840200096234010EA -S31540019BA080A2E00F04800003821020018210200071 -S31540019BB080930001128000980100000098172380CD -S31540019BC0F003200882142001C22620049A060010C0 -S31540019BD08212E001C223600410BFFEFADA23200894 -S31540019BE098033FF8832B60039000400C9B3360023F -S31540019BF0821020018328400DD2022008DA03200476 -S31540019C009A134001D026200CD2262008F022600C5F -S31540019C10DA23200410BFFF64F022200810BFFFC0E2 -S31540019C208210200010BFFEFF9E03FFFFD006200CCE -S31540019C30D20620089A142001940600108214A388A3 -S31540019C40D2222008D022600CDA262004D420600CCF -S31540019C50D42060089A12E001D622800BC222A008C5 -S31540019C60DA22A00410BFFED7C222A00CC2036004B0 -S31540019C7082106001D006200CD2062008C22360045F -S31540019C8010BFFECFD2222008C20761688200401170 -S31540019C9080A640120280004FC2276168C205A378A0 -S31540019CA080A07FFF02800045C20761689A26401264 -S31540019CB08200400DC22761689A8E600702800005C6 -S31540019CC0A410200082102008A420400DB2064012A4 -S31540019CD09A0640119A0B6FFF030000048220400D43 -S31540019CE0A4048001901000134000005C9210001201 -S31540019CF080A23FFF2280003FA4102000822200194B -S31540019D009000401282172380DA0761689A03401255 -S31540019D1080A60001F2206008DA27616802800037D8 -S31540019D208212200180A5600F38800005C22660049A -S31540019D308210200110BFFF94C2266004C20620048F -S31540019D409A057FF4A80B7FF88208600182104014BF -S31540019D50C22620049A06001482102005C2236008F8 -S31540019D6080A5200F18800027C223600419100143E3 -S31540019D70DA076168C203219480A34001388000025A -S31540019D80DA23219419100143C203219080A3400193 -S31540019D9038BFFF7DDA23219010BFFF7C82172380D5 -S31540019DA09A102001C202E0049B2B400C8210400D08 -S31540019DB010BFFEF9C222E00410BFFFC0F225A3780E -S31540019DC0C20460048228400910BFFF30C2246004E7 -S31540019DD0808E6FFF12BFFFB3C205A3789004401473 -S31540019DE0DA05E0088212200110BFFFE1C2236004B8 -S31540019DF010BFFFC39010001910BFFFDDC2266004DB -S31540019E0092062008400000629010001310BFFFD94F -S31540019E10191001434000000B90100013B0102000B0 -S31540019E2081C7E00881E800001110014290122388A1 -S31540019E308213C000400003EE9E1040000100000066 -S31540019E4011100142901223888213C0004000040081 -S31540019E509E104000010000009DE3BF98211001447F -S31540019E60C02421704000020D9010001980A23FFFCE -S31540019E7012800006C204217080A0600002800003A7 -S31540019E8001000000C226000081C7E00891E80008F1 -S31540019E909DE3BF987FFFFFE5901000180310014135 -S31540019EA0A2106380DA046008C2036004A0087FFC44 -S31540019EB0B2240019B2066FEFB20E7000B2067000FE -S31540019EC09210200080A66FFF0480000A90100018AF -S31540019ED07FFFFFE201000000C204600882004010DB -S31540019EE080A04008922000190280000590100018B9 -S31540019EF07FFFFFD4B0102000308000237FFFFFD7C3 -S31540019F00901000188224001980A23FFF8210600140 -S31540019F1092102000191001430280000B9010001886 -S31540019F20DA046008C2236004C20321688220401912 -S31540019F30901000187FFFFFC3C223216810800012D2 -S31540019F40B01020017FFFFFC50100000098100008F6 -S31540019F50D6046008A023000B9010001880A4200F9F -S31540019F6004BFFFE4B214200103100141DA00637813 -S31540019F709A23000D03100143DA20616810BFFFDD0B -S31540019F80F222E00481C7E00881E800009DE3BF9822 -S31540019F9080A660000280009DA41000187FFFFFA3E9 -S31540019FA090100018A0067FF8D6042004900AFFFE00 -S31540019FB01910014194040008A2132380DA02A00477 -S31540019FC0C204600880A0400A028000449E0B7FFCC8 -S31540019FD0808AE001DE22A0041280000CB01020002D -S31540019FE0F2067FF8A024001982046008DA042008EA -S31540019FF080A340010280007D90020019D204200C0A -S3154001A000DA226008D223600C8202800FDA006004F3 -S3154001A010808B60011280000A8212200180A62000F6 -S3154001A020028000229002000FDA02A008D202A00CA0 -S3154001A030DA226008D223600C82122001C224200455 -S3154001A04080A6200002800005D0240008B01000122E -S3154001A0507FFFFF7C81E8000080A221FF1880003647 -S3154001A060973220099B32200398132380832B600368 -S3154001A0709200400C9B336002821020018328400DE0 -S3154001A080D6026008DA0320049A134001D224200C38 -S3154001A090D6242008E022E00CDA232004E0226008DE -S3154001A0A010BFFFECB010001203100141DA02A00804 -S3154001A0B08210638880A3400132BFFFDED202A00C2A -S3154001A0C0E023600CE0236008DA242008DA24200C1F -S3154001A0D010BFFFDAB0102001808AE001128000092A -S3154001A0E09002000FF2067FF8A0240019D204200C3A -S3154001A0F0D6042008D622600890020019D222E00C2C -S3154001A10003100141DA00637C98122001E0246008C3 -S3154001A11080A2000D0ABFFFCFD824200403100143BB -S3154001A120D20061987FFFFF5B901000127FFFFF45D1 -S3154001A13081E8000080A2E000028000169B322003E5 -S3154001A1408332200680A2E004088000129A0060381B -S3154001A15080A2E0140880000F9A02E05B8332200C53 -S3154001A16080A2E0540880000B9A00606E8332200F73 -S3154001A17080A2E154088000079A006077833220125A -S3154001A18080A2E554088000039A00607C9A10207EE4 -S3154001A19094132380832B60039200400AD602600801 -S3154001A1A080A2C0090280001399336002C202E00412 -S3154001A1B082087FFC80A0400828800007D202E00C7C -S3154001A1C0D602E00880A2C00932BFFFFAC202E0040B -S3154001A1D0D202E00CD224200CD6242008E022E00C46 -S3154001A1E010BFFFB0E022600810BFFF88B010200109 -S3154001A1F09A102001C202A0049B2B400C8210400DF4 -S3154001A20010BFFFF5C222A00481C7E00881E8000023 -S3154001A2109DE3BF98D206400080A2600012800004F0 -S3154001A220901000187FFFFF5A81E800007FFFFFF979 -S3154001A230010000007FFFFF5681E800000100000099 -S3154001A2409DE3BF9803100141DA00637080A6000DBB -S3154001A2500280004101000000D206204C80A260002D -S3154001A2601280001CA0102000D206214880A2600066 -S3154001A2702280000FD2062054A006214C80A2401015 -S3154001A2802280000BD206205410800005B21000092E -S3154001A290F20640007FFFFF3E9010001880A400198F -S3154001A2A012BFFFFC92100019D206205480A2600012 -S3154001A2B01280002501000000C206203880A06000FF -S3154001A2C0028000250100000010800017C206203CD4 -S3154001A2D0832C2002F202400180A660002280000BFE -S3154001A2E0A004200192100019F20640007FFFFF28CA -S3154001A2F09010001880A6600012BFFFFC9210001952 -S3154001A300D206204CA004200180A4200E04BFFFF2F7 -S3154001A310832C20027FFFFF1E9010001810BFFFD430 -S3154001A320D20621489FC0400090100018F20622E054 -S3154001A33080A6600002800008010000007FFFFFB593 -S3154001A34081E800007FFFFF129010001810BFFFDC6C -S3154001A350C206203881C7E00881E800009DE3BF9826 -S3154001A36080A620000280001D03100141E406214819 -S3154001A37080A4A00022800013C206203CE204A0046F -S3154001A380A2847FFF0C80000A832C60028200401267 -S3154001A390A0006008C20400009FC04000A0043FFC2A -S3154001A3A0A2847FFF3CBFFFFDC2040000E40480009D -S3154001A3B080A4A00032BFFFF3E204A004C206203C01 -S3154001A3C080A0600002800007010000009FC040009D -S3154001A3D0901000183080000310BFFFE5F000637055 -S3154001A3E081C7E00881E800001080000B861020003C -S3154001A3F08092400816800008861A400880924000E4 -S3154001A4001680000480920000168000039220000905 -S3154001A410902000089A92400012800005961000088C -S3154001A42091D0200281C3E0089010000080A2C00DA7 -S3154001A4300A800095941000000302000080A2C0012A -S3154001A4400A8000289810000080A340011A80000D60 -S3154001A450841020019B2B600410BFFFFC9803200150 -S3154001A4609A83400D1A8000078400A0018328600466 -S3154001A4709B3360019A034001108000078420A001AC -S3154001A48080A3400B0ABFFFF70100000002800002D3 -S3154001A4900100000084A0A0010680007601000000B2 -S3154001A4A09622C00D941020011080000A0100000080 -S3154001A4B0952AA001068000059B3360019622C00DB6 -S3154001A4C0108000049402A0019602C00D9422A001BE -S3154001A4D084A0A00116BFFFF78092C00030800065BE -S3154001A4E09B2B600480A3400B08BFFFFE988320018D -S3154001A4F002800065982320018092C000952AA0041D -S3154001A5000680002F9B33600196A2C00D068000177E -S3154001A5109B33600196A2C00D0680000B9B33600100 -S3154001A52096A2C00D068000059B33600196A2C00D20 -S3154001A530108000509402A00F9682C00D1080004DED -S3154001A5409402A00D9682C00D068000059B336001E2 -S3154001A55096A2C00D108000479402A00B9682C00DB2 -S3154001A560108000449402A0099682C00D0680000B1B -S3154001A5709B33600196A2C00D068000059B336001A6 -S3154001A58096A2C00D1080003B9402A0079682C00D92 -S3154001A590108000389402A0059682C00D0680000501 -S3154001A5A09B33600196A2C00D108000329402A00335 -S3154001A5B09682C00D1080002F9402A0019682C00D94 -S3154001A5C0068000179B33600196A2C00D0680000BE2 -S3154001A5D09B33600196A2C00D068000059B33600146 -S3154001A5E096A2C00D108000239402BFFF9682C00D33 -S3154001A5F0108000209402BFFD9682C00D06800005A2 -S3154001A6009B33600196A2C00D1080001A9402BFFBD5 -S3154001A6109682C00D108000179402BFF99682C00D34 -S3154001A6200680000B9B33600196A2C00D0680000593 -S3154001A6309B33600196A2C00D1080000E9402BFF7B5 -S3154001A6409682C00D1080000B9402BFF59682C00D14 -S3154001A650068000059B33600196A2C00D108000055F -S3154001A6609402BFF39682C00D108000029402BFF19E -S3154001A67098A3200116BFFFA28092C0002680000247 -S3154001A6809422A0018090C000268000029420000AF6 -S3154001A69081C3E0089010000A19100144DA032174BD -S3154001A6A080A3600012800006820340080310014423 -S3154001A6B09A106188DA23217482034008C2232174E7 -S3154001A6C081C3E0089010000DA7500000AE100001B4 -S3154001A6D08334E00129100143E8052038A92CC01430 -S3154001A6E08215000181E000008190400001000000D8 -S3154001A6F00100000001000000E03BA000E43BA0088F -S3154001A700E83BA010EC3BA018F03BA020F43BA0286E -S3154001A710F83BA030FC3BA03881E8000082100017CE -S3154001A72081C4400081CC800001000000010000008E -S3154001A73001000000A7500000A92CE0012B100143A5 -S3154001A740EA056038AB34C015AA154014819540001E -S3154001A75001000000010000000100000081E8000046 -S3154001A76081E80000E01BA000E41BA008E81BA01044 -S3154001A770EC1BA018F01BA020F41BA028F81BA0304E -S3154001A780FC1BA03881E0000081E0000081C440004C -S3154001A79081CC8000A75000002910006CADC5210472 -S3154001A7A00100000027100143A614E018E024C00070 -S3154001A7B0818C202001000000010000000100000002 -S3154001A7C09DE3BFA09DE3BFA09DE3BFA09DE3BFA0C6 -S3154001A7D09DE3BFA09DE3BFA09DE3BFA081E800002C -S3154001A7E081E8000081E8000081E8000081E800007E -S3154001A7F081E8000081E8000027100143A614E01813 -S3154001A800C024C000E203A068A4046004E223A0645B -S3154001A810E423A06810800262AC10000029100142B6 -S3154001A820A81523FCC2252000C8252004E0252010B8 -S3154001A830E2252014E4252018E825201C81E80000A3 -S3154001A8408348000082106F0081886020010000006B -S3154001A850010000000100000009100143C801203831 -S3154001A86081E000008821200180A920FF02800003A9 -S3154001A870010000000100000080A1000012BFFFF9A5 -S3154001A8800100000009100143C801203881E8000099 -S3154001A89080A920FF028000030100000001000000A2 -S3154001A8A08821200180A1000012BFFFF901000000AC -S3154001A8B081E0000029100142A81523FCC8052004A7 -S3154001A8C0C2052000E0052010E2052014E405201809 -S3154001A8D0C025201C818C20000100000001000000E1 -S3154001A8E00100000081C4800081CCA004A0142F0087 -S3154001A8F0818C000001000000010000000100000001 -S3154001A90081C4800081CCA00480A66002128000052B -S3154001A910A8142F00818D0000B01420203080001F24 -S3154001A92080A6600312800006A80E2F00AA2C2F00D5 -S3154001A930A8154014818D00003080001880A660045F -S3154001A94012800008A9480000A8152040818D00000A -S3154001A9500100000001000000010000003080000FEE -S3154001A96080A6600512800008A9480000A82D204055 -S3154001A970818D00000100000001000000010000007F -S3154001A9803080000680A660061280000301000000A8 -S3154001A99030BFFFA391D0200081C4800081CCA004A8 -S3154001A9A09210200381C3E00891D020029210200228 -S3154001A9B081C3E00891D020029210200681C3E008AD -S3154001A9C091D0200281C3E0080100000081C3E00864 -S3154001A9D00100000081C3E00801000000AE25A0107F -S3154001A9E0A75000002D10006AAC15A1F02910006C8B -S3154001A9F081C522AC010000001110014390122024B0 -S3154001AA00D202000092026001D2220000932DE0089A -S3154001AA10902C2F0092120009111001439012201C14 -S3154001AA20D002000080A000082280000292126F002E -S3154001AA30818A602001000000010000000100000041 -S3154001AA4090100017400000319203A06092142F002D -S3154001AA50818A602001000000010000000100000021 -S3154001AA601110014390122024D2020000922260016B -S3154001AA70D22200001080022DAC1000001B100144B0 -S3154001AA809A13602C912A2002C2034008C222600C0C -S3154001AA9081C3E008D22340089DE3BF9803100144D7 -S3154001AAA08210602C992E60021B100143972E600480 -S3154001AAB0D800400C9A13622C901000199202C00DD6 -S3154001AAC080A6601F1480000F8210200010800006AF -S3154001AAD080A320002280000AC2024000D803200C35 -S3154001AAE080A3200012BFFFFC80A300097FFFFFE483 -S3154001AAF0F02240001080000382102000F022400026 -S3154001AB0081C7E00891E800019DE3BF981B1001430E -S3154001AB1082136028D800600480A300180280004494 -S3154001AB20C203602880A6200022800002B010000CDB -S3154001AB3003100144A32E20028210602CE000401134 -S3154001AB4080A420000280003D0310014310800012C2 -S3154001AB50A41061A8D2042008941000199FC30000D4 -S3154001AB609010001803100143C20061A080A060004C -S3154001AB701280002B01000000C204801182007FFF79 -S3154001AB80C2248011E004200C80A420000280002B06 -S3154001AB9001000000D804000080A3200022BFFFFB73 -S3154001ABA0E004200C03100143DA00622880A3600010 -S3154001ABB0128000089610001203100143821061A80A -S3154001ABC0DA00401180A3600032BFFFF0E004200CA0 -S3154001ABD0DA02C011031001439A036001C20061A465 -S3154001ABE080A0600002BFFFDCDA22C0119FC0400096 -S3154001ABF001000000D8040000D20420089410001976 -S3154001AC009FC300009010001803100143C20061A0C9 -S3154001AC1080A0600022BFFFDAC20480119FC04000BD -S3154001AC200100000010BFFFD6C2048011DA0060C0E7 -S3154001AC3010BFFFBDB00B601F81C7E00881E800006F -S3154001AC408C10000FA74800008B34E0188A09600F6A -S3154001AC5080A160030280000C0B1001438A11603011 -S3154001AC600920000088112070C82140000B100143C3 -S3154001AC708A1160500920000088112040C8214000F7 -S3154001AC80108000399010200192102006400001DD0D -S3154001AC900100000080A0000802800033010000008E -S3154001ACA0C2022010113FFC0082084008110003FC3B -S3154001ACB08410400890100002921020019410200C3C -S3154001ACC0400001E60100000080A000080280002645 -S3154001ACD001000000400001F6921000010B100143F3 -S3154001ACE08A116030D221400090100002921020015A -S3154001ACF094102011400001D90100000080A00008F5 -S3154001AD000280001901000000400001E99210000193 -S3154001AD10920260100B1001438A116050D22140000B -S3154001AD2090100002921020019410200D400001CB9A -S3154001AD300100000080A000080280000B0100000015 -S3154001AD40400001DB921000010B1001438A1160287B -S3154001AD50D2214000D40260109532A010940AA00F6F -S3154001AD60D42160049E10000681C3E0080100000062 -S3154001AD7003100143821060488210200191D02000C7 -S3154001AD8081C3E008010000009DE3BF980310014420 -S3154001AD90C20060C8901000189210001980A060008F -S3154001ADA002800005B01020009FC040000100000055 -S3154001ADB0B010000881C7E00881E800009DE3BF9814 -S3154001ADC003100144C20060C49010001880A06000C6 -S3154001ADD002800005B01020009FC040000100000025 -S3154001ADE0B010000881C7E00881E800009DE3BF98E4 -S3154001ADF003100144C20060BC9010001880A060009E -S3154001AE0002800005B01020009FC0400001000000F4 -S3154001AE10B010000881C7E00881E800009DE3BF98B3 -S3154001AE2003100144C20060C09010001880A0600069 -S3154001AE3002800005B01020009FC0400001000000C4 -S3154001AE40B010000881C7E00881E800009DE3BF9883 -S3154001AE5003100144C20060B89010001880A0600041 -S3154001AE6002800005B01020009FC040000100000094 -S3154001AE70B010000881C7E00881E800009DE3BF9853 -S3154001AE8003100144C20060B49010001880A0600015 -S3154001AE9002800005B01020009FC040000100000064 -S3154001AEA0B010000881C7E00881E800009DE3BF9823 -S3154001AEB003100144C20060B09010001880A06000E9 -S3154001AEC002800005B01020009FC040000100000034 -S3154001AED0B010000881C7E00881E800009DE3BF98F3 -S3154001AEE003100144C20060AC901000189210001982 -S3154001AEF080A0600002800005B01020009FC0400085 -S3154001AF0001000000B010000881C7E00881E8000098 -S3154001AF10010000000310006B821063E09FC04000F7 -S3154001AF20010000000310000082106000819840007B -S3154001AF300310006C821060649FC040000100000055 -S3154001AF400310006B821063D09FC0400001000000D7 -S3154001AF508B4800008B3160188A09600380A1600329 -S3154001AF6012800007010000008B4440008B31601CB9 -S3154001AF7080A1400012800006010000007FFFFF31E2 -S3154001AF80010000007FFF9879010000009C23A0404A -S3154001AF907FFF981C010000008210200191D0200003 -S3154001AFA00100000029000004A68C00143280000331 -S3154001AFB0A02C001491D02000818C000001000000DB -S3154001AFC0010000000100000081C4800081CCA00482 -S3154001AFD081C3E0080100000081C1E00801000000D2 -S3154001AFE0A74800008B34E0188A09600380A16003FA -S3154001AFF0128000080100000021100143A0142040E6 -S3154001B000A2102003E22400008B4440001080000877 -S3154001B01021100143A0142040A2102002E224000086 -S3154001B02021200000E60420248B34E0148A09601FA5 -S3154001B03027100143A614E038CA24C0008A016001E2 -S3154001B04027100143A614E034CA24C0002710014347 -S3154001B050A614E03C8A216002CA24C00081C3E008EC -S3154001B0600100000081C3E0080100000083480000A0 -S3154001B070833060188208600380A060031280000656 -S3154001B0800100000083444000050000088228400278 -S3154001B090A3804000881000000910006B81C1231471 -S3154001B0A0010000009DE3BF980310006D1B10006D69 -S3154001B0B0A01061609A13616080A4000D1A8000108F -S3154001B0C0A210000D10800006C204000080A40011E9 -S3154001B0D01A80000B01000000C204000080A060003D -S3154001B0E002BFFFFBA00420049FC0400001000000F6 -S3154001B0F080A400112ABFFFFAC204000081C7E008FC -S3154001B10081E80000AA27A0B0E0256060E2256064DE -S3154001B110E4256068C2256074C43D6078C83D60809E -S3154001B120CC3D608885400000C425606CF03D609050 -S3154001B130F43D6098F83D60A0FC3D60A8A810200150 -S3154001B140A92D0010808D001302800013010000001C -S3154001B1508534E00107100143C600E038A72CC0033F -S3154001B1608414C0028408A0FF81E000008190A00001 -S3154001B170E03BA000E43BA008E83BA010EC3BA01854 -S3154001B180F03BA020F43BA028F83BA030FC3BA03884 -S3154001B19081E8000081C5A0089C10001505100143F7 -S3154001B1A08410A19CC400800080A08000028000041D -S3154001B1B0010000009FC080009203A060818C2000A6 -S3154001B1C0821020028328401005100143C400A03498 -S3154001B1D085304002821040028550000080888001FF -S3154001B1E0028000208328A00107100143C600E038F1 -S3154001B1F08530800382104002820860FF81906000A2 -S3154001B200C203A06C81806000F01BA090F41BA09843 -S3154001B210F81BA0A0FC1BA0A8C203A074C41BA07865 -S3154001B220C81BA080CC1BA088E003A060E203A064F9 -S3154001B230E403A06881E80000E01BA000E41BA0082D -S3154001B240E81BA010EC1BA018F01BA020F41BA028A3 -S3154001B250F81BA030FC1BA0381080000F81E00000D5 -S3154001B260C203A06C81806000F01BA090F41BA098E3 -S3154001B270F81BA0A0FC1BA0A8C203A074C41BA07805 -S3154001B280C81BA080CC1BA088E003A060E203A06499 -S3154001B290E403A068818C2000010000000100000049 -S3154001B2A00100000081C4400081CC8000AA27A0B0E3 -S3154001B2B0C2256074C43D6078C83D6080CC3D6088DD -S3154001B2C085400000C425606CA8102001A92D0010FE -S3154001B2D0808D001302800013010000008534E001D7 -S3154001B2E007100143C600E038A72CC0038414C002EE -S3154001B2F08408A0FF81E000008190A000E03BA0000F -S3154001B300E43BA008E83BA010EC3BA018F03BA02092 -S3154001B310F43BA028F83BA030FC3BA03881E8000074 -S3154001B32081C5A0089C100015051001438410A19CFD -S3154001B330C400800080A0800002800004010000005B -S3154001B3409FC080009203A060818C20008210200261 -S3154001B3508328401005100143C400A03485304002C3 -S3154001B36082104002855000008088800102800019C9 -S3154001B3708328A00107100143C600E03885308003C9 -S3154001B38082104002820860FF81906000C203A06C77 -S3154001B39081806000C203A074C41BA078C81BA08032 -S3154001B3A0CC1BA08881E80000E01BA000E41BA0089C -S3154001B3B0E81BA010EC1BA018F01BA020F41BA02832 -S3154001B3C0F81BA030FC1BA0381080000881E000006B -S3154001B3D0C203A06C81806000C203A074C41BA07824 -S3154001B3E0C81BA080CC1BA088818C200001000000D6 -S3154001B3F0010000000100000081C4400081CC8000B2 -S3154001B400821000089A10380096102000912AE00513 -S3154001B41098034008D40340089132A01880A2000145 -S3154001B420328000089602E0019132A00C900A2FFF6B -S3154001B43080A20009028000079410000C9602E001E8 -S3154001B44080A2E00728BFFFF3912AE005941020006F -S3154001B45081C3E0089010000A82100008981020006D -S3154001B460912B20039A004008D60040089132E018FB -S3154001B47080A2000932800008980320019132E00C35 -S3154001B480900A2FFF80A2000A028000079610000D45 -S3154001B4909803200180A3200F28BFFFF3912B20039F -S3154001B4A09610200081C3E0089010000BD4022004BE -S3154001B4B0173FFC00920A400B900A800B9132200CF8 -S3154001B4C0921240081100003F901223F0940A80081E -S3154001B4D0952AA0049412800B920A400A81C3E0087F -S3154001B4E0901000099DE3BF980310006D82106148DA -S3154001B4F0DA007FFC80A37FFF02800009A0007FFC69 -S3154001B5008210000D9FC04000A0043FFCC204000011 -S3154001B51080A07FFF12BFFFFC0100000081C7E00849 -S3154001B52081E800009DE3BF9881C7E00881E80000FB -S3154001B53000000000000000000000000000000000C4 -S3154001B54000000002FFFFFFFF0000000000000000B6 -S3154001B55000000002FFFFFFFF0000000000000000A6 -S3154001B56040080000000000003CD203AF9EE756169B -S3154001B5703E7AD7F29ABCAF4840050220000000004F -S3154001B580430000009DE3BFA07FFF96DB0100000062 -S3154001B5907FFFFFD50100000081C7E00881E8000078 -S3154001B5A09DE3BFA07FFF96B60100000081C7E0087A -S3154001B5B081E80000000000000000000000000000DB -S315400200000000000100000000000000004001B55859 -S315400200102000000000000000000000000000000078 +S31540011C9085A00921C523000081C3E008D0030000C7 +S31540011CA01910008098132120D0230000D223200848 +S31540011CB0C1030000C303200885A009A1C523000074 +S31540011CC081C3E008D0030000191000809813212039 +S31540011CD0D0230000C103000083A00520C3230000D8 +S31540011CE081C3E008D00300001310008092126138CE +S31540011CF0C51A6008C11A400089A0084091A108C2CE +S31540011D0095A209C495A2894281C3E008D53A00004B +S31540011D101310008092126158C1024000C302600450 +S31540011D2085A0082087A088A189A0C9A289A10921E7 +S31540011D3081C3E008C92200009610200213100080DA +S31540011D4092126138151000809412A138D5024000D4 +S31540011D50D7028000D5220000D8020000131000806F +S31540011D609212615896A2E00112BFFFF901000000EC +S31540011D7081C3E0080100000013100080921261380F +S31540011D80151000809412A158C1028000C51A601036 +S31540011D9083A0082089A088C08BA109A18DA10942F1 +S31540011DA08FA1492691A0054681C3E008D13A00009A +S31540011DB01110008090122130C11A0000C51A00008E +S31540011DC0C91A0000CD1A0000D11A0000D51A000028 +S31540011DD0D91A0000DD1A0000E11A0000E51A0000D8 +S31540011DE0E91A0000ED1A0000F11A0000F51A000088 +S31540011DF0F91A0000FD1A000081C3E0080100000045 +S31540011E0029100080A81520F827100080A614E16843 +S31540011E10C12CC000E604C000A134E00EA00C20078E +S31540011E20A0A42002AE1020002D100080AC15A168A0 +S31540011E30AE05E001AC05A008C1358000C12D00000A +S31540011E40EA050000AB35600DAA8D600112BFFFF9AE +S31540011E5001000000808000100280002F2B3C1FFFF4 +S31540011E60AA1563FFA60CC015E6250000C10D0000AA +S31540011E702B100080AA1561742D100047AC15A2E005 +S31540011E80AE25E001E0054000E025800081D8200034 +S31540011E9001000000010000000100000001000000F7 +S31540011EA001000000010000000100000001000000E7 +S31540011EB001000000010000000100000001000000D7 +S31540011EC001000000010000000100000001000000C7 +S31540011ED001000000010000000100000001000000B7 +S31540011EE00000000080A5C00012BFFFE6AA056008F9 +S31540011EF0C12D0000E60500002B03C000A614C01545 +S31540011F00E6250000C10D000081C4400081CC80005F +S31540011F100100000081C4800081CCA00401000000C2 +S31540011F200100000081C3E008915800000100000053 +S31540011F3011100080901220F8C10A0000C022000052 +S31540011F40C10A0000C12A0000D40200001300038028 +S31540011F50942A800980A0000A3280004D9010200307 +S31540011F601303E000D223BFA0C023BFA4C10BBFA06F +S31540011F70C023BFA0151000809412A0E8C1028000C2 +S31540011F800100000001000000C10BBFA0C10BBFA4AE +S31540011F9083A00520C12BBFA0D003BFA0808A220009 +S31540011FA02280003B901020049010200015100080E4 +S31540011FB09412A108C5028000C902A008D102A00C52 +S31540011FC013100080921260E8C70240008DA0894438 +S31540011FD081A98AC8010000000380000501000000B4 +S31540011FE0901020011080002A01000000C5028000E7 +S31540011FF0C902A008D102A00C13100080921260E819 +S31540012000CB0240008DA0894481A98AC80100000005 +S315400120100380000501000000901020011080001C83 +S315400120200100000025100080A414A0F0C11C80000E +S31540012030C51C800080A000003280000685A008C033 +S3154001204081A80AC2010000001380000301000000BC +S31540012050901020050100000025100080A414A0F076 +S31540012060C11C8000C51C800080A00000010000004A +S315400120703280000685A008C081A80AC2010000007E +S3154001208013800003010000009010200701000000AA +S3154001209081C3E00801000000901020019544000032 +S315400120A09532A01E940AA00380A2800002800040BF +S315400120B09010200080A2A0021680003D13100080DF +S315400120C092126198C11A4000C51A6008FD02601853 +S315400120D095A0003E99A0003E9DA0003E170000C07D +S315400120E09612E078A182C0000100000001000000C4 +S315400120F00100000001000000010000000100000095 +S3154001210081A0002083A0002195A0002A99A0002C3F +S315400121109DA0002E170000C09612E07CA182C0004F +S315400121200100000001000000010000000100000064 +S31540012130010000000100000085A0002287A00023C5 +S31540012140A180000001000000010000000100000024 +S3154001215001000000010000000100000089A00842C2 +S31540012160A9A2883ED93A4000DD224000CD1A60102E +S31540012170D102600881A90A46010000000380000CD3 +S3154001218081AD0A2801000000038000099344000044 +S315400121909332601B920A60079010200080A2A00132 +S315400121A002800003902260079022600481C3E00808 +S315400121B001000000C12BBFA081C3E008D003BFA02E +S315400121C0D023BFA081C3E008C10BBFA0010000001E +S315400121D09DE3BF6040001B94B0102000833A200A63 +S315400121E08208600380A060010280000401000000B3 +S315400121F081C7E00881E800007FFFBDE19010200D16 +S31540012200050C40290723CD1B8410A0068610E09BB0 +S31540012210C027BFF0C027BFF4C43FBFF8C027BFD017 +S31540012220C027BFD4C027BFC87FFFFF3FC027BFCC51 +S31540012230820A30008210608084006004072804000E +S315400122408610E00F09100047C62040008811220081 +S3154001225007100000882100028939200286110003F7 +S31540012260C620600425100080032784008210601078 +S315400122707FFFFED0C220A0047FFFFFD21103E00002 +S3154001228090102000C024A1687FFFFDD0010000000E +S31540012290809200091280000601000000C204A16874 +S315400122A080A0600002800004010000007FFFBDBBEA +S315400122B09010200B7FFFFDC590103FFA03300600BA +S315400122C080A2000102800CF880A260007FFFBDB3AE +S315400122D09010200B7FFFFDBD9010201403100D00C0 +S315400122E080A200010280113680A260007FFFBDAB53 +S315400122F09010200B7FFFFDB5901020620310162031 +S3154001230080A200010280112780A260007FFFBDA349 +S315400123109010200B7FFFFDB590102005031028007B +S3154001232080A2000112800CB501000000C204A16820 +S3154001233080A0600012800CB1010000007FFFFFA168 +S315400123401103C000111C00007FFFFDB09210200058 +S31540012350031FFFFF821063FF80A200011280000B62 +S3154001236001000000C404A168030000708210601FD0 +S3154001237084088001030000108210601080A0800153 +S3154001238002800005113C00007FFFBD849010200CA7 +S31540012390113C00007FFFFD9D9210200003200000AC +S315400123A080A200011280000B01000000C404A16854 +S315400123B0030000708210601F840880010300001032 +S315400123C08210601080A0800102800004010000009C +S315400123D07FFFBD729010200CC024A1689010200090 +S315400123E07FFFFD8A9210200080A220001280000605 +S315400123F003100080C200616880A060000280000571 +S31540012400110144007FFFBD659010200C110144006D +S3154001241013284000901223027FFFFD7C9212600137 +S3154001242080A220001280000601000000C204A168BB +S3154001243080A06000228000051111FFFF7FFFBD577C +S315400124409010200C1111FFFF7FFFFD78901223FFA2 +S315400124500300007F821063FF80A2000112800C639B +S3154001246001000000C204A16880A0600012800C5FD8 +S3154001247001000000271000807FFFFD64D01CE1E0D1 +S31540012480031FFFFF821063FF80A200011280000B31 +S3154001249001000000C404A168030000708210601F9F +S315400124A084088001030000108210601080A0800122 +S315400124B002800005351000807FFFBD389010200C4A +S315400124C035100080D01EA1D0C024A1687FFFFD4FEA +S315400124D0010000000320000080A200011280000BD1 +S315400124E003100080C4006168030000708210601F01 +S315400124F084088001030000108210601080A08001D2 +S31540012500028000052B1000807FFFBD249010200C17 +S315400125102B100080D01D61F0C024A1687FFFFD3BD8 +S3154001252001000000031FFFFF821063FF80A200012C +S315400125301280000B03100080C40061680300007024 +S315400125408210601F84088001030000108210601011 +S3154001255080A08001028000052F1000807FFFBD0F03 +S315400125609010200C2F100080D01DE1B8C024A16826 +S315400125707FFFFD2601000000C204A1688330600E82 +S315400125808208600380A0600202800004010000000E +S315400125907FFFBD029010200C7FFFFF0A1103C00090 +S315400125A011115804C024A1687FFFFD2890122234DE +S315400125B003102B008210624680A200010280107136 +S315400125C0032000007FFFBCF59010200D113C02AFA7 +S315400125D07FFFFD1E901220D1033180558210639AF0 +S315400125E080A200010280105F030800007FFFBCEB60 +S315400125F09010200D1111FC007FFFFD1C9210200050 +S31540012600031FE00080A200011280000B01000000C0 +S31540012610C404A168030000708210601F8408800111 +S31540012620030000108210600880A08001028000042F +S31540012630010000007FFFBCD99010200DC024A16885 +S3154001264011207C01130001007FFFFD08901220300C +S315400126500320000080A200011280000B03100080BD +S31540012660C4006168030000708210601F8408800105 +S31540012670030000108210600480A0800102800004E3 +S31540012680010000007FFFBCC59010200DC024A16849 +S31540012690901020007FFFFCF59210200080A22000C0 +S315400126A01280000603100080C200616880A06000AD +S315400126B002800004010000007FFFBCB89010200D8D +S315400126C07FFFFCEAD01CE1E003100080C20061E814 +S315400126D080A2000112800BC101000000C204A16862 +S315400126E080A0600012800BBD010000003710008001 +S315400126F07FFFFCDED01EE1D8031FE00080A200016F +S3154001270012800BB301000000C204A16880A06000E2 +S3154001271012800BAF010000007FFFFCD4D01D61F099 +S3154001272003100080C200620080A200011280000BEB +S3154001273001000000C404A168030000708210601FFC +S3154001274084088001030000108210601080A080017F +S3154001275002800005D01DE1B87FFFBC909010200D8E +S31540012760D01DE1B8C024A1687FFFFCC00100000074 +S31540012770C204A1688330600E8208600380A06002B3 +S3154001278002800004010000007FFFBC849010200DF0 +S315400127907FFFFE8C1103E0002108C6AFC024A1686B +S315400127A0901420DE7FFFFCB9A01420DE80A2001029 +S315400127B012800B8303100080C200616880A0600014 +S315400127C012800B7F010000002108C6AF901420DE65 +S315400127D07FFFFCBEA01420DE80A2001012800B7485 +S315400127E001000000C204A16880A0600012800B7045 +S315400127F0010000001128C6AF7FFFFCB4901220DE15 +S315400128000308C6AF821060DE80A2000112800B640D +S3154001281001000000C204A16880A0600012800B6024 +S31540012820010000001108C6AF7FFFFCA0901220DE18 +S315400128300328C6AF821060DE80A2000112800B54CD +S3154001284001000000C204A16880A0600012800B5004 +S31540012850010000001128C6AF7FFFFC94901220DED4 +S315400128600308C6AF821060DE80A2000112800B45CC +S3154001287001000000C204A16880A0600012800B41E3 +S31540012880010000007FFFFE4F1103E00011151BC040 +S315400128901310C821901221039212614115351BC0B4 +S315400128A01710C8219412A1037FFFFC909612E141B3 +S315400128B080A2200212800B2B01000000C204A168F5 +S315400128C080A0600012800B270100000011351BC05B +S315400128D01310C821901221039212614115151BC094 +S315400128E01710C8219412A1037FFFFC809612E14183 +S315400128F080A2200112800B1F01000000C204A168C2 +S3154001290080A0600012800B1B010000009010200087 +S3154001291092102000152000007FFFFC7496102000C5 +S3154001292080A220001280000601000000C204A168B6 +S3154001293080A0600002800005D01EE1D87FFFBC1751 +S315400129409010200FD01EE1D87FFFFC68D41EA1D085 +S3154001295080A2200212800AFF01000000C204A16881 +S3154001296080A0600012800AFB0100000011151BC007 +S315400129701310C821901221039212614115151BE8CB +S315400129801710C8219412A1037FFFFC589612E1410A +S3154001299080A2200112800AEB01000000C204A16856 +S315400129A080A0600012800AE70100000011151BE8B3 +S315400129B01310C821901221039212614115151BC0B3 +S315400129C01710C8219412A1037FFFFC489612E141DA +S315400129D080A2200212800AD701000000C204A16829 +S315400129E080A0600012800AD301000000D41CE1E0FF +S315400129F011151BE81310C821901221037FFFFC3BE0 +S31540012A009212614180A2200312800AC60100000091 +S31540012A10C204A16880A0600012800AC201000000C1 +S31540012A20D41D61F011151BE81310C8219012210322 +S31540012A307FFFFC2E9212614180A220031280000B7F +S31540012A4001000000C404A168030000708210601FE9 +S31540012A5084088001030000108210601080A080016C +S31540012A6002800005D41DE1B87FFFBBCC9010200F3A +S31540012A70D41DE1B8C024A16811151BE81310C82163 +S31540012A80901221037FFFFC199212614180A220021C +S31540012A9012800AA003100080C200616880A0600015 +S31540012AA012800A9C01000000D01DE1B815151BE8F3 +S31540012AB01710C8219412A1037FFFFC0C9612E14125 +S31540012AC080A2200112800A8B01000000C204A16885 +S31540012AD080A0600012800A8701000000D01CE1E05E +S31540012AE015151BE81710C8219412A1037FFFFBFFA0 +S31540012AF09612E14180A2200312800A820100000061 +S31540012B00C204A16880A0600012800A7E0100000014 +S31540012B10D01D61F015151BE81710C8219412A103A9 +S31540012B207FFFFBF29612E14180A220031280000B47 +S31540012B3001000000C404A168030000708210601FF8 +S31540012B4084088001030000108210601080A080017B +S31540012B5002800004010000007FFFBB909010200F0F +S31540012B60C024A16811151BC01310C821901221035E +S31540012B709212614115351BC01710C8219412A10349 +S31540012B807FFFFBED9612E14180A2200212800A5599 +S31540012B9003100080C200616880A0600012800A5163 +S31540012BA00100000011351BC01310C82190122103EA +S31540012BB09212614115151BC01710C8219412A10329 +S31540012BC07FFFFBDD9612E14180A2200112800A417E +S31540012BD001000000C204A16880A0600012800A3D85 +S31540012BE001000000901020009210200015200000E6 +S31540012BF07FFFFBD19610200080A2200012800006A4 +S31540012C0001000000C204A16880A0600002800005A6 +S31540012C10D01EE1D87FFFBB619010200FD01EE1D8B6 +S31540012C207FFFFBC5D41EA1D080A2200212800A25B7 +S31540012C3001000000C204A16880A0600012800A2140 +S31540012C400100000011151BC01310C8219012210369 +S31540012C509212614115151BE81710C8219412A10360 +S31540012C607FFFFBB59612E14180A2200112800A1135 +S31540012C7001000000C204A16880A0600012800A0D14 +S31540012C800100000011151BE81310C8219012210301 +S31540012C909212614115151BC01710C8219412A10348 +S31540012CA07FFFFBA59612E14180A22002128009FD19 +S31540012CB001000000C204A16880A06000128009F9E9 +S31540012CC001000000D41CE1E011151BE81310C821D6 +S31540012CD0901221037FFFFB989212614180A220034B +S31540012CE01280000B01000000C404A16803000070BB +S31540012CF08210601F8408800103000010821060105A +S31540012D0080A0800102800005D41D61F07FFFBB23B6 +S31540012D109010200FD41D61F011151BE81310C82126 +S31540012D20901221037FFFFB849212614180A220030E +S31540012D301280000B01000000C404A168030000706A +S31540012D408210601F84088001030000108210601009 +S31540012D5080A0800102800005D41DE1B87FFFBB0F32 +S31540012D609010200FD41DE1B8C024A16811151BE8AD +S31540012D701310C821901221037FFFFB6F921261410C +S31540012D8080A22002128009BF03100080C200616840 +S31540012D9080A06000128009BB01000000D01DE1B88F +S31540012DA015151BE81710C8219412A1037FFFFB627A +S31540012DB09612E14180A22001128009B6010000006D +S31540012DC0C204A16880A06000128009B2010000001F +S31540012DD0D01CE1E015151BE81710C8219412A10378 +S31540012DE07FFFFB559612E14180A220031280000B22 +S31540012DF001000000C404A168030000708210601F36 +S31540012E0084088001030000108210601080A08001B8 +S31540012E1002800005D01D61F07FFFBAE09010200FBF +S31540012E20D01D61F015151BE81710C8219412A10396 +S31540012E307FFFFB419612E14180A220031280000BE5 +S31540012E4001000000C404A168030000708210601FE5 +S31540012E5084088001030000108210601080A0800168 +S31540012E6002800004010000007FFFBACC9010200FC1 +S31540012E70C024A168110048EA13048D15901223CD90 +S31540012E807FFFFB3E9212627880A22001128009796F +S31540012E9003100080C200616880A06000128009753D +S31540012EA001000000110048EA13048D15901223CD4C +S31540012EB07FFFFB439212627880A220011280096A49 +S31540012EC001000000C204A16880A06000128009666A +S31540012ED001000000C024A1687FFFFCBA1103C000B5 +S31540012EE023100124A807BFF8BA07BFD090100014D9 +S31540012EF09210001D7FFFFA6C94146160C2046160F8 +S31540012F00C407BFF880A0800102800E0CA014616046 +S31540012F107FFFBAA2901020102D100080901000144F +S31540012F209215A1C87FFFFA6094146160C404616080 +S31540012F30C205A1C880A0800122800DF6C4042004E8 +S31540012F407FFFBA9690102010901000149214E1E081 +S31540012F507FFFFA5594146160C4046160C204E1E0E4 +S31540012F6080A0800102800DE1B214E1E07FFFBA8BBF +S31540012F709010201090100014921561F07FFFFA4ACC +S31540012F8094146160C404A168030000708210601F3C +S31540012F9084088001030000108210601080A0800127 +S31540012FA002800004010000007FFFBA7C90102010CF +S31540012FB0C024A1687FFFFC8390102000901000146C +S31540012FC0921561F07FFFFA389414616039100080E0 +S31540012FD0C4046160C20721F880A0800122800DBD32 +S31540012FE0C40420047FFFBA6D901020107FFFFC754A +S31540012FF01103C000901000149215E1B87FFFFA2A20 +S3154001300094146160C204A1688330600E8208600333 +S3154001301080A0600202800004010000007FFFBA5FC9 +S3154001302090102010C024A1689010001D9210001429 +S315400130307FFFFA1D94146160C4046160C207BFF842 +S3154001304080A0800122800D9AC40420047FFFBA53D8 +S31540013050901020109010001D9215A1C87FFFFA1202 +S3154001306094146160C4046160C205A1C880A0800156 +S3154001307022800D84C40420047FFFBA48901020109A +S315400130809010001D9214E1E07FFFFA0794146160ED +S31540013090C4046160C204E1E080A0800122800D7019 +S315400130A0C40420047FFFBA3D901020109010001DEB +S315400130B0921561F07FFFF9FC94146160C404A16824 +S315400130C0030000708210601F840880010300001015 +S315400130D08210601080A0800102800004010000007F +S315400130E07FFFBA2E901020107FFFFC3690102000F3 +S315400130F09010001D921561F07FFFF9EB9414616009 +S31540013100C4046160C20721F880A0800122800D4D70 +S31540013110C40420047FFFBA21901020107FFFFC29B0 +S315400131201103C0009010001D9215E1B87FFFF9DE32 +S3154001313094146160C204A1688330600E8208600302 +S3154001314080A0600202800004010000007FFFBA13E4 +S3154001315090102010C024A1689015A1C892100014A7 +S315400131607FFFF9D194146160C4046160C205A1C8AE +S3154001317080A0800122800D28C40420047FFFBA0765 +S31540013180901020109015A1C89210001D7FFFF9C61E +S3154001319094146160C4046160C205A1C880A0800125 +S315400131A022800D12C40420047FFFB9FC9010201028 +S315400131B09016E1D8941461607FFFF9BB9210000824 +S315400131C0C4046160C206E1D880A0800122800CFC63 +S315400131D0C40420047FFFB9F1901020109016A1D0AD +S315400131E0941461607FFFF9B092100008C4046160D5 +S315400131F0C206A1D080A0800122800CE6C40420042E +S315400132007FFFB9E6901020109016A1D09216E1D812 +S315400132107FFFF9A594146160C404A168030000709E +S315400132208210601F84088001030000108210601024 +S3154001323080A0800102800004010000007FFFB9D711 +S31540013240901020107FFFFBDF901020009016A1D038 +S315400132509216E1D87FFFF99494146160C4046160C9 +S31540013260C20721F880A0800122800CC3C404200437 +S315400132707FFFB9CA901020107FFFFBD21103C00017 +S315400132809016E1D8C024A1689216A1D07FFFF98695 +S3154001329094146160C4046160C20721F880A0800172 +S315400132A022800CA4C40420047FFFB9BC90102010D6 +S315400132B09015A1C89215E1B87FFFF97B941461601E +S315400132C0C204A1688330600E8208600380A0600258 +S315400132D002800004010000007FFFB9B09010201069 +S315400132E0C024A1689014E1E0921000147FFFF96EAA +S315400132F094146160C4046160C204E1E080A080016D +S3154001330022800C83C40420047FFFB9A490102010AE +S315400133109014E1E09210001D7FFFF96394146160FF +S31540013320C4046160C204E1E080A0800122800C6F88 +S31540013330C40420047FFFB999901020109014E1E055 +S315400133409215A1C87FFFF95894146160C404616065 +S31540013350C204E1E080A0800122800C5BC404200409 +S315400133607FFFB98E901020109014E1E094146160B3 +S315400133707FFFF94D92100008C4046160C204E1E088 +S3154001338080A0800122800C47C40420047FFFB983BA +S31540013390901020109014E1E0921561F07FFFF94200 +S315400133A094146160C404A168030000708210601F18 +S315400133B084088001030000108210601080A0800103 +S315400133C002800004010000007FFFB97490102010B4 +S315400133D0C024A168901561F0921000147FFFF93264 +S315400133E094146160C404A168030000708210601FD8 +S315400133F084088001030000108210601080A08001C3 +S3154001340002800004010000007FFFB9649010201083 +S31540013410C024A168901561F09210001D7FFFF9222A +S3154001342094146160C404A168030000708210601F97 +S3154001343084088001030000108210601080A0800182 +S3154001344002800004010000007FFFB9549010201053 +S31540013450C024A168901561F09215A1C87FFFF912A9 +S3154001346094146160C404A168030000708210601F57 +S3154001347084088001030000108210601080A0800142 +S3154001348002800004010000007FFFB9449010201023 +S31540013490C024A168901561F09214E1E07FFFF90222 +S315400134A094146160C404A168030000708210601F17 +S315400134B084088001030000108210601080A0800102 +S315400134C002800005901561F07FFFB93490102010FD +S315400134D0901561F0C024A168941461607FFFF8F2F1 +S315400134E092100008C404A168030000708210601F96 +S315400134F084088001030000108210601080A08001C2 +S3154001350002800004010000007FFFB92490102010C2 +S31540013510C024A168901561F09215E1B87FFFF8E2E9 +S3154001352094146160C204A1688330600E820860030E +S3154001353080A0600202800004010000007FFFB917ED +S31540013540901020107FFFFB1F1103C0000310008065 +S31540013550C024A1688210633010800009B010200099 +S315400135607FFFB90E90102010C207BFC4B0062001DC +S3154001357080A6200D0280002282006018852E20033D +S31540013580912E200590220002051000808410A32070 +S31540013590C227BFC490008008932E20011510012434 +S315400135A0920240189412A16092026001932A60032C +S315400135B07FFFF8BD92008009C207BFC4C600400024 +S315400135C0C404000080A0C00232BFFFE6C227BFC4C8 +S315400135D0C60060040910012488112160C401200439 +S315400135E080A0C00232BFFFDFC227BFC4B0062001A0 +S315400135F080A6200D12BFFFE282006018C204A168B6 +S3154001360080A0600012800BA3010000001110008110 +S3154001361094146160901220587FFFF8A3920220080B +S315400136200310008082106320C4006148C2046160B7 +S3154001363080A0800102800B86071000807FFFB8D7EB +S315400136409010201011100081941461609012207026 +S315400136507FFFF8959202200809100080C20461603C +S3154001366088112320C401216080A0800122800B693A +S31540013670C40121647FFFB8C9901020101110008148 +S3154001368094146160901220887FFFF8879202200887 +S315400136900310008082106320C4006178C204616017 +S315400136A080A0800102800B4B071000807FFFB8BBD2 +S315400136B090102010C024A168111000009210200023 +S315400136C0150FFC007FFFF94F96102000030FFC00F9 +S315400136D080A2000102800B3880A260007FFFB8AF54 +S315400136E0901020101110000092102000152FFC00A0 +S315400136F07FFFF944961020000310020080A20001CA +S3154001370002800B2680A260007FFFB8A49010201093 +S315400137101130000092102000150FFC007FFFF9398F +S31540013720961020000330020080A2000102800B1493 +S3154001373080A260007FFFB8999010201011300000E0 +S3154001374092102000152FFC007FFFF92E96102000C5 +S31540013750032FFC0080A2000102800B0280A26000C0 +S315400137607FFFB88E90102010111000007FFFF92FB7 +S31540013770130FE0000310100080A20001128007B66B +S3154001378001000000C204A16880A06000128007B257 +S3154001379001000000111000007FFFF92E130FE00019 +S315400137A0030FE00080A20001128007A7010000007C +S315400137B0C204A16880A06000128007A30100000036 +S315400137C009100080C024A16890100014941461600F +S315400137D07FFFF848921121C0C4046160C206A1D09E +S315400137E080A0800122800ACFC40420047FFFB86BE9 +S315400137F090102011C024A168901000149216E1D8AF +S315400138007FFFF83C94146160C4046160C207BFC87D +S3154001381080A0800122800ABAC40420047FFFB85FD9 +S3154001382090102011901000149214E1E07FFFF831BE +S3154001383094146160C4046160C204E1E080A0800127 +S3154001384022800AA6C40420047FFFB8549010201198 +S3154001385090100014921561F07FFFF8269414616070 +S31540013860C4046160C20721F880A0800122800A8ACF +S31540013870C40420047FFFB849901020119010001411 +S315400138809215E1B87FFFF81B941461600300007044 +S31540013890C404A168840880010300002080A080013F +S315400138A002800004010000007FFFB83C9010201107 +S315400138B0C024A1689010001D921000147FFFF80DDE +S315400138C094146160C4046160C207BFD080A08001C6 +S315400138D022800A68C40420047FFFB830901020116A +S315400138E0031000809207BFC8901061C07FFFF801A6 +S315400138F094146160C4046160C20721F880A080010C +S3154001390022800A4CC40420047FFFB8249010201161 +S3154001391009100080C024A168901121C09216E1D8F7 +S315400139207FFFF7F494146160C4046160071000805E +S31540013930C200E1C080A0800122800A34C404200470 +S315400139407FFFB816901020119010001D9214E1E0EF +S315400139507FFFF7E894146160C4046160C204E1E04A +S3154001396080A0800122800A20C40420047FFFB80B76 +S31540013970901020079010001D921561F07FFFF7DD32 +S3154001398094146160C404A168030000708210601F32 +S3154001399084088001030000108210601080A080011D +S315400139A002800004010000007FFFB7FC9010201147 +S315400139B0C024A1689010001D9215E1B87FFFF7CD94 +S315400139C09414616003000070C404A16884088001F6 +S315400139D00300002080A08001028000040100000055 +S315400139E07FFFB7EE90102011C024A1689016A1D098 +S315400139F0921000147FFFF7BF94146160C4046160A4 +S31540013A00C206A1D080A08001228009ECC404200412 +S31540013A107FFFB7E290102011091000809016A1D0C7 +S31540013A20921121C07FFFF7B394146160C4046160B1 +S31540013A30C206E1D880A08001228009D5C4042004B1 +S31540013A407FFFB7D6901020119015A1C894146160DC +S31540013A507FFFF7A892100008C4046160C20721F8ED +S31540013A6080A08001228009BAC40420047FFFB7CB1D +S31540013A7090102011C024A1689015A1C89214E1E0CC +S31540013A807FFFF79C94146160C4046160C204E1E065 +S31540013A9080A08001228009A5C40420047FFFB7BF0E +S31540013AA0901020119015A1C8921561F07FFFF791F2 +S31540013AB094146160C4046160C20721F880A080014A +S31540013AC02280098AC40420047FFFB7B490102011D4 +S31540013AD0C024A1689015A1C89215E1B87FFFF7856A +S31540013AE09414616003000070C404A16884088001D5 +S31540013AF00300002080A08001028000040100000034 +S31540013B007FFFB7A690102011C024A1689014E1E070 +S31540013B10921000147FFFF77794146160C4046160CA +S31540013B20C204E1E080A0800122800967C404200428 +S31540013B307FFFB79A901020119014E1E09210001D7A +S31540013B407FFFF76C94146160C4046160C204E1E0D4 +S31540013B5080A0800122800953C40420047FFFB78FCF +S31540013B60901020119014E1E09215A1C87FFFF761F2 +S31540013B7094146160C4046160C204E1E080A08001E4 +S31540013B802280093FC40420047FFFB784901020118E +S31540013B909014E1E0941461607FFFF756921000089B +S31540013BA0C4046160C204E1E080A080012280092B47 +S31540013BB0C40420047FFFB779901020119014E1E0EE +S31540013BC0921561F07FFFF74B94146160C404616004 +S31540013BD0C20721F880A080012280090FC404200475 +S31540013BE07FFFB76E901020119014E1E09215E1B875 +S31540013BF07FFFF7409414616003000070C404A1681C +S31540013C00840880010300002080A080010280000515 +S31540013C10901561F07FFFB76190102011901561F00A +S31540013C20921000147FFFF73394146160C404A168B5 +S31540013C30030000708210601F840880010300001099 +S31540013C408210601080A08001028000040100000003 +S31540013C507FFFB75290102011C024A168901561F0E2 +S31540013C609210001D7FFFF72394146160C404A1687C +S31540013C70030000708210601F840880010300001059 +S31540013C808210601080A080010280000401000000C3 +S31540013C907FFFB74290102011C024A168901561F0B2 +S31540013CA09215A1C87FFFF71394146160C404A168FB +S31540013CB0030000708210601F840880010300001019 +S31540013CC08210601080A08001028000040100000083 +S31540013CD07FFFB73290102011C024A168901561F082 +S31540013CE09214E1E07FFFF70394146160C404A16874 +S31540013CF0030000708210601F8408800103000010D9 +S31540013D008210601080A0800102800005901561F04C +S31540013D107FFFB72290102011901561F0C024A16851 +S31540013D20941461607FFFF6F392100008C404A16801 +S31540013D30030000708210601F840880010300001098 +S31540013D408210601080A08001028000040100000002 +S31540013D507FFFB71290102011C024A168901561F021 +S31540013D609215E1B87FFFF6E3941461600300007099 +S31540013D70C404A168840880010300002080A080015A +S31540013D8002800005051FC0007FFFB7049010201177 +S31540013D90051FC0000700C0008410A1028610E0B0D4 +S31540013DA0C024A168B007BFE0C43FBFE805203E83F9 +S31540013DB0070021C88410A3FF8610E3A19007BFE83E +S31540013DC092100018C43FBFE07FFFF6CA9407BFD8E0 +S31540013DD0C407BFD8033FFC0080A080010280088051 +S31540013DE0C207BFDC7FFFB6ED9010201105004000F1 +S31540013DF00700C0008410A1028610E0B0C024A1686B +S31540013E009007BFE8C43FBFE805108683070021C875 +S31540013E108410A3FF8610E3A1921000189407BFD81F +S31540013E207FFFF6B4C43FBFE0C207BFDCC407BFD8BB +S31540013E30809080011280000B03100080C4006168ED +S31540013E40030000708210601F840880010300001087 +S31540013E508210600480A0800102800005050006AF43 +S31540013E607FFFB6CE90102011050006AF86102010B8 +S31540013E70C024A1689007BFE8C43FBFE8050FFC0016 +S31540013E80070281D88410A0408610E10C92100018D8 +S31540013E909407BFD87FFFF697C43FBFE0C407BFD89A +S31540013EA0030006AE8210639580A08001028008421D +S31540013EB0C407BFDC7FFFB6B990102011050006AFDD +S31540013EC086102010C024A1689007BFE8C43FBFE810 +S31540013ED0050FFFFF070281D88410A3408610E10C2D +S31540013EE0921000189407BFD87FFFF682C43FBFE007 +S31540013EF0C207BFDCC407BFD8809080011280000B87 +S31540013F0003100080C4006168030000708210601FC6 +S31540013F1084088001030000108210600480A08001A3 +S31540013F2002800004010000007FFFB69C9010201122 +S31540013F30C024A168111088007FFFF75A13100100B1 +S31540013F40031066C9821062CA80A20001128005BAB6 +S31540013F5003100080C200616880A06000128005B62F +S31540013F60010000001111BBFE130C70407FFFF74D9D +S31540013F70901223FF031527CA8210611E80A20001F9 +S31540013F80128005A901000000C204A16880A060005A +S31540013F90128005A501000000111E607E1310C7FFA7 +S31540013FA07FFFF740921263FC031D73FC8210633856 +S31540013FB080A200011280059801000000C204A16898 +S31540013FC080A06000128005940100000011002000CD +S31540013FD0130FE0007FFFF7339212600180A22000A9 +S31540013FE01280000B01000000C404A16803000070A8 +S31540013FF08210601F84088001030000108210600453 +S3154001400080A0800102800005110FE0007FFFB663AA +S3154001401090102011110FE000C024A1687FFFF72105 +S3154001402092100008030FE00080A20001128005767D +S3154001403003100080C200616880A060001280057292 +S315400140400100000011002000130FE0007FFFF7156B +S315400140509212600180A220001280000B0100000034 +S31540014060C404A168030000708210601F84088001A7 +S31540014070030000108210600480A0800102800005C8 +S31540014080031000807FFFB645901020110310008079 +S31540014090C024A168921061C0901000147FFFF607FA +S315400140A094146160C404616007100080C200E1C0DD +S315400140B080A08001228007B6C40420047FFFB63762 +S315400140C090102012901000149216E1D87FFFF5FB54 +S315400140D094146160C4046160C206E1D880A0800185 +S315400140E0228007A0C40420047FFFB62C9010201222 +S315400140F0901000149214E1E07FFFF5F09414616092 +S31540014100C4046160C204E1E080A080012280078C82 +S31540014110C40420047FFFB621901020129010001491 +S31540014120921561F07FFFF5E594146160C404616006 +S31540014130C20721F880A0800122800770C4042004B0 +S315400141407FFFB61690102012901000149215E1B818 +S315400141507FFFF5DA9414616003000070C404A1681E +S31540014160840880010300002080A0800102800004B1 +S31540014170010000007FFFB60990102012C024A168FB +S315400141809010001D921000147FFFF5CC94146160CD +S31540014190C4046160C207BFD080A080012280074E5F +S315400141A0C40420047FFFB5FD901020120310008047 +S315400141B09216A1D0901061C07FFFF5C09414616042 +S315400141C0C4046160C20721F880A0800122800732C1 +S315400141D0C40420047FFFB5F190102012C024A168C9 +S315400141E09010001D9214E1E07FFFF5B494146160D4 +S315400141F0C4046160C204E1E080A080012280071D01 +S31540014200C40420047FFFB5E5901024999010001D49 +S31540014210921561F07FFFF5A994146160C404616051 +S31540014220C20721F880A0800122800701C40420042E +S315400142307FFFB5DA901020129010001D9215E1B85B +S315400142407FFFF59E9414616003000070C404A16869 +S31540014250840880010300002080A0800102800004C0 +S31540014260010000007FFFB5CD90102012C024A16847 +S315400142709015A1C8921000147FFFF59094146160C7 +S31540014280C4046160C205A1C880A08001228006DD08 +S31540014290C40420047FFFB5C1901020129015A1C817 +S315400142A09210001D7FFFF58594146160C40461601E +S315400142B0C20721F880A08001228006C2C4042004DE +S315400142C07FFFB5B690102012C024A1689015A1C8F1 +S315400142D09214E1E07FFFF57994146160C404616052 +S315400142E0C204E1E080A08001228006ADC40420041E +S315400142F07FFFB5AA901020129015A1C8921561F0C2 +S315400143007FFFF56E94146160C4046160C20721F8B1 +S3154001431080A0800122800691C40420047FFFB59FBE +S31540014320901020129015A1C89215E1B87FFFF56350 +S315400143309414616003000070C404A168840880017C +S315400143400300002080A080010280000401000000DB +S315400143507FFFB59290102012C024A1689014E1E02D +S31540014360921000147FFFF55594146160C404616096 +S31540014370C204E1E080A080012280066FC4042004CB +S315400143807FFFB586901020129014E1E09210001D37 +S315400143907FFFF54A94146160C4046160C204E1E0A0 +S315400143A080A080012280065BC40420047FFFB57B88 +S315400143B0901020129014E1E09215A1C87FFFF53FBD +S315400143C094146160C4046160C204E1E080A080018C +S315400143D022800647C40420047FFFB5709010201246 +S315400143E09014E1E0941461607FFFF5349210000867 +S315400143F0C4046160C204E1E080A0800122800633EA +S31540014400C40420047FFFB565901020129014E1E0AA +S31540014410921561F07FFFF52994146160C404A16887 +S31540014420030000708210601F8408800103000010A1 +S315400144308210601080A0800102800004010000000B +S315400144407FFFB55690102012C024A168901561F0E7 +S31540014450921000147FFFF51994146160C404A16899 +S31540014460030000708210601F840880010300001061 +S315400144708210601080A080010280000401000000CB +S315400144807FFFB54690102012C024A1689210001DEE +S31540014490901561F07FFFF50994146160C404A16829 +S315400144A0030000708210601F840880010300001021 +S315400144B08210601080A0800102800004010000008B +S315400144C07FFFB53690102012C024A168901561F087 +S315400144D09215A1C87FFFF4F994146160C404A168E0 +S315400144E0030000708210601F8408800103000010E1 +S315400144F08210601080A0800102800004010000004B +S315400145007FFFB52690102012C024A168901561F056 +S315400145109214E1E07FFFF4E994146160C404A16858 +S31540014520030000708210601F8408800103000010A0 +S315400145308210601080A0800102800005901561F014 +S315400145407FFFB51690102012901561F0C024A16826 +S31540014550941461607FFFF4D992100008C404A168E5 +S31540014560030000708210601F840880010300001060 +S315400145708210601080A080010280000401000000CA +S315400145807FFFB50690102012C024A168901561F0F6 +S315400145909215E1B87FFFF4C994146160C204A16821 +S315400145A08330600E8208600380A0600202800005AD +S315400145B01103C0007FFFB4F9901020121103C0000F +S315400145C07FFFF70031100080B0162228C024A16871 +S315400145D010800008BA1020007FFFB4F0901020121E +S315400145E0BA07600180A7600602800024B006201841 +S315400145F0832F60030910008088112218912F6005CE +S31540014600932F6001902200019202401D9001000803 +S315400146109202600115100124932A60039412A1604D +S315400146207FFFF4A692010009C4060000C2040000FF +S3154001463080A0800112BFFFE907100124C4062004AF +S315400146408610E160C200E00480A0800112BFFFE352 +S315400146500910008088112168C201000080A0600015 +S3154001466012BFFFDE01000000BA07600180A76006A5 +S3154001467012BFFFE0B006201811100080941461604B +S31540014680901222A87FFFF48D920220080310008029 +S3154001469082106218C40060A0C204616080A08001DB +S315400146A00280057A071000807FFFB4BC901020126B +S315400146B0C024A1681110008094146160901222C038 +S315400146C07FFFF47E9202200809100080C2046160D7 +S315400146D088112218C40120B880A080012280055D7E +S315400146E0C40120BC7FFFB4AD90102012C024A16844 +S315400146F01110008094146160901222D87FFFF46FEC +S31540014700920220080310008082106218C40060D013 +S31540014710C204616080A080010280053E07100080CE +S315400147207FFFB49E90102012C024A1681110008012 +S3154001473094146160901222F07FFFF4609202200887 +S3154001474009100080C204616088112218C40120E862 +S3154001475080A0800122800521C40120EC7FFFB48F17 +S3154001476090102012C024A168111000809414616039 +S31540014770901223087FFFF451920220080310008013 +S3154001478082106218C4006100C204616080A0800189 +S3154001479002800502071000807FFFB480901020122E +S315400147A0C024A168111010007FFFF53413100000DA +S315400147B00310300080A20001128003B7031000806D +S315400147C0C200616880A06000128003B3010000004E +S315400147D0111FE000131000007FFFF43D9414616047 +S315400147E0C4046160031FFC0080A08001228004E3B1 +S315400147F0C20420047FFFB4699010201B111FE00002 +S31540014800133000007FFFF43294146160C404616088 +S31540014810033FFC0080A08001228004D0C204200412 +S315400148207FFFB45E9010201C1110000092102010E2 +S315400148307FFFF4279414616003000070C404A168EB +S31540014840840880010300002080A0800102800004CA +S31540014850010000007FFFB4519010201DC024A168C3 +S3154001486011002000130FC0007FFFF41994146160FA +S31540014870C4046160030E000080A08001228004AF61 +S31540014880C20420047FFFB4459010201E111FDFFF94 +S3154001489013100000901223FF7FFFF40D9414616002 +S315400148A0C40461600311FFFF821063FF80A0800191 +S315400148B022800499C40420047FFFB4389010201F3D +S315400148C0111FD000130FF0007FFFF40194146160B3 +S315400148D0C40461600311FC8080A0800122800486AB +S315400148E0C20420047FFFB42D90102021111FDFFF49 +S315400148F094146160901223FF7FFFF3F59210000834 +S31540014900C40461600313FBFF821063FF80A0800132 +S315400149102280046FC40420047FFFB420901020201D +S315400149207FFFF6281103C0009007BFC8C024A168C5 +S315400149307FFFF3F692146160C4046160C207BFC889 +S3154001494080A0800122800459C40420047FFFB4134F +S315400149509010201309100080921461607FFFF3EBE1 +S31540014960901121C005100080C200A1C0C40461603D +S3154001497080A0800102800442071000807FFFB407B7 +S31540014980901020139016E1D87FFFF3E092146160F6 +S31540014990C4046160C206E1D880A080010280042D72 +S315400149A0091000807FFFB3FD901020139016A1D00F +S315400149B07FFFF3D692146160C4046160C20721F897 +S315400149C080A0800122800413C40420047FFFB3F336 +S315400149D090102013C024A168901561F07FFFF3CB9E +S315400149E092146160C4046160C20721F880A080010D +S315400149F0228003F8C40420047FFFB3E890102013FB +S31540014A00C024A1689014E1E07FFFF3C09214616075 +S31540014A10C204E1E0C404616080A08001228003E415 +S31540014A20C20660047FFFB3DD9010201305100C0011 +S31540014A30861020009010001492146160C43FBFF8A4 +S31540014A4005300F78070C00088610E0017FFFF3AFB1 +S31540014A50C43FBFF0C40461600310040080A080011C +S31540014A60228003CBC20420047FFFB3CC90102013D5 +S31540014A70A607BFF0921461607FFFF3A49010001364 +S31540014A80C20721F8C404616080A08001028003B09E +S31540014A90051000807FFFB3C1901020139015E1B837 +S31540014AA07FFFF39A92146160C204A1688330600E5D +S31540014AB08208600380A060020280000401000000B9 +S31540014AC07FFFB3B690102013C024A1687FFFF47F07 +S31540014AD01111F2000310E80080A20001128002EBDE +S31540014AE003100080C200616880A06000128002E766 +S31540014AF0010000007FFFF5B3111000001101F58997 +S31540014B007FFFF472901221E20308E96480A200015A +S31540014B10128002DB01000000C204A16880A060008F +S31540014B20128002D7010000007FFFF4681112A2082B +S31540014B300311410080A20001128002CE0100000053 +S31540014B40C204A16880A06000128002CA0100000070 +S31540014B507FFFF59C11001000901000149215E1B8EA +S31540014B607FFFF35194146160C404616003100C002B +S31540014B7080A080012280036EC20420047FFFB38798 +S31540014B80901020149015E1B8921000137FFFF34B5B +S31540014B9094146160C40461600320000080A0800118 +S31540014BA02280035BC20420047FFFB37C9010201453 +S31540014BB07FFFF38E90102001030FE00080A20001D9 +S31540014BC0128002A901000000C204A16880A0600011 +S31540014BD0128002A5010000007FFFF37C90102001A6 +S31540014BE0030FFC0080A200010280034280A2600004 +S31540014BF07FFFB36A901020147FFFF57211101000E9 +S31540014C00D41EE1D87FFFF3FFD01DE1B8C206A1D083 +S31540014C10D024616080A040080280032BD224200466 +S31540014C207FFFB35E901020227FFFF56611100000D2 +S31540014C30050FFC00861020009010001492100013FE +S31540014C40C43FBFF8050F2800070400808610E0F036 +S31540014C50941461607FFFF314C43FBFF0C4046160E4 +S31540014C60030FFC0080A0800122800313C2042004AC +S31540014C707FFFB34A901020157FFFF55211200000A7 +S31540014C80050FFC00861020009010001492100013AE +S31540014C90C43FBFF805001400070000408610E0013C +S31540014CA0941461607FFFF300C43FBFF0C4046160A8 +S31540014CB0030FFC0080A08001228002FBC204200475 +S31540014CC07FFFB336901020157FFFF53E113000006F +S31540014CD0052FFC008610200090100014921000133E +S31540014CE0C43FBFF805201400070000408610E001CC +S31540014CF0941461607FFFF2ECC43FBFF0C40461606D +S31540014D00032FFC0080A08001228002E3C20420041C +S31540014D107FFFB322901020157FFFF52A1110000066 +S31540014D20050FFC0086102000901000149215A1C8B2 +S31540014D30C43FBFF87FFFF2DC94146160C404616034 +S31540014D40C205A1C880A08001228002CCC4042004EF +S31540014D507FFFB312901020157FFFF51A1120000036 +S31540014D60050FFC0086102000901000149215A1C872 +S31540014D70C43FBFF805001400070000408610E0015B +S31540014D80941461607FFFF2C8C43FBFF0C404616000 +S31540014D90C205A1C880A08001228002B1C4042004BA +S31540014DA07FFFB2FE901020157FFFF50611300000FF +S31540014DB0052FFC0086102000901000149215A1C802 +S31540014DC0C43FBFF805201400070000408610E001EB +S31540014DD0941461607FFFF2B4C43FBFF0C205A1C81D +S31540014DE0C404616080A0800102800296091000809F +S31540014DF07FFFB2EA901020157FFFF4F211100000F8 +S31540014E00050FFC008610200190100014921000132B +S31540014E10C43FBFF80510000086102001941461605C +S31540014E207FFFF2A6C43FBFF0C404616003100000D7 +S31540014E3080A080012280027FC20420047FFFB2D776 +S31540014E40901020157FFFF4DF112000009010001410 +S31540014E50921000137FFFF29994146160C40461605B +S31540014E600310000080A080012280026EC20420044B +S31540014E707FFFB2CA901020157FFFF4D21130000097 +S31540014E80052FFC008610200190100014921000138B +S31540014E90C43FBFF87FFFF28994146160C404616026 +S31540014EA00330000080A080012280025AC2042004FF +S31540014EB07FFFB2BA901020157FFFF4C21110000097 +S31540014EC0050FFEAE071CD2E88410A1548610E011EE +S31540014ED09010001492100013C43FBFF8050FFC0454 +S31540014EE0072F26158410A0128610E23194146160B2 +S31540014EF07FFFF280C43FBFF0C4046160030FFEA789 +S31540014F008210629680A080012280023CC404200463 +S31540014F107FFFB2A2901020157FFFF4AA1120000056 +S31540014F2090100014921000137FFFF2729414616086 +S31540014F30C4046160030FFEA78210629680A08001BF +S31540014F4022800228C40420047FFFB29490102015C9 +S31540014F507FFFF49C11300000052FFC04072F261516 +S31540014F608410A0128610E2319010001492100013A2 +S31540014F70C43FBFF07FFFF25F94146160C404616077 +S31540014F80032FFEA78210629680A080012280020F25 +S31540014F90C40420047FFFB281901020157FFFF4895D +S31540014FA011100000051038008610200090100014E2 +S31540014FB092100013C43FBFF8051010008610200060 +S31540014FC0941461607FFFF24BC43FBFF0C40461603B +S31540014FD00310240080A08001228001F8C20420042D +S31540014FE07FFFB26E901020157FFFF47611200000EE +S31540014FF090100014921000137FFFF23E94146160EA +S31540015000C40461600310240080A08001228001E76E +S31540015010C20420047FFFB261901020157FFFF4691E +S315400150201130000090100014921000137FFFF231EE +S3154001503094146160C40461600310240080A080015F +S31540015040228001D6C20420047FFFB254901020155D +S315400150507FFFF45C1110000011002000130FE000E7 +S315400150607FFFF3109212600180A22000128001C8D6 +S31540015070010000007FFFF4531120000011002000C1 +S31540015080130FE0007FFFF3079212600180A2200018 +S31540015090128001BC010000007FFFF44A113000007C +S315400150A011002000130FE0007FFFF2FE9212600113 +S315400150B080A22000128001B0010000007FFFF44170 +S315400150C011100000050FFC008610200090100014FE +S315400150D0921461607FFFF20DC43FBFF8C404616062 +S315400150E0C207BFF880A080012280019AC40420042F +S315400150F07FFFB22A901020157FFFF4321120000065 +S31540015100901000147FFFF20192146160C404616043 +S31540015110C207BFF880A0800122800185C404200413 +S315400151207FFFB21E901020157FFFF426113000003C +S31540015130901000147FFFF1F592146160C404616020 +S31540015140C207BFF880A0800122800170C4042004F8 +S315400151507FFFB212901020157FFFF41A1110000044 +S315400151602B0FDFFF901563FF7FFFF2D8AA1563FF70 +S3154001517080A2001502800004010000007FFFB207F3 +S31540015180901020157FFFF40F11200000110FDFFF53 +S315400151907FFFF2CE901223FF030FE00080A20001B1 +S315400151A002800004010000007FFFB1FC9010201531 +S315400151B07FFFF404113000002B0FDFFF901563FFD2 +S315400151C07FFFF2C2AA1563FF80A200150280000488 +S315400151D0010000007FFFB1F1901020157FFFF3F928 +S315400151E0901020007FFFF2C190146160C404616099 +S315400151F0032FFE0080A0800122800140C2042004CA +S315400152007FFFB1E6901020162B1001247FFFF2C1DB +S3154001521090156168C4056168032FF00080A0800184 +S3154001522002800004010000007FFFB1DC90102016CF +S315400152307FFFF2C290156168C4056168030FE00003 +S3154001524080A0800102800004010000007FFFB1D3ED +S31540015250901020167FFFF2C990146160C40461600A +S31540015260030FFBF7821063F080A080012280011CAE +S31540015270C40420047FFFB1C9901020169215E1B8ED +S31540015280901000147FFFF19B94146160C204A168E1 +S315400152908330600E8208600780A0600202800005AC +S315400152A0031000807FFFB1BD9010201703100080CE +S315400152B0C400617003100046E40060F8821060F893 +S315400152C080A0400202800005031000807FFFB1B339 +S315400152D09010201803100080C200617480A0401213 +S315400152E002800005031000807FFFB1AC90102018AA +S315400152F003100080C200617880A06000128000F433 +S315400153000100000003100080C200617C80A06000A3 +S31540015310128000EC010000007FFFF14E0100000009 +S3154001532080A220010280052D01000000050C4029C4 +S315400153300723CD1B8410A0068610E09B9010001415 +S31540015340C027BFF0C027BFF4C43FBFF82910008172 +S315400153507FFFF1962B100082AA1560A0A4102000B1 +S31540015360A81520A0AC146160BA1000151080000881 +S31540015370AE1000107FFFB18990102019A404A0043B +S3154001538080A4A400228000172B100084C2050012BD +S31540015390C224C000901000137FFFF18792100016BF +S315400153A0832CA001C4040000C605400180A0C002B0 +S315400153B012BFFFF182074001C4006004C205E00448 +S315400153C080A0800112BFFFEC01000000A404A004EC +S315400153D080A4A40032BFFFEFC20500122B10008447 +S315400153E0A2146160AA1560A0A4102000AE10001599 +S315400153F010800008AC1000107FFFB1689010201A91 +S31540015400A404A00880A4A4000280001501000000A5 +S31540015410C2050012C224C000921000117FFFF13B69 +S3154001542090100013C4054012C204000080A0800100 +S3154001543012BFFFF28205C012C4006004C205A00477 +S3154001544080A0800112BFFFED01000000A404A00866 +S3154001545080A4A40032BFFFF0C205001281C7E00854 +S3154001546081E800007FFFB14D9010200F30BFF69AC2 +S315400154707FFFB14A9010200F10BFF68C110048EA09 +S315400154807FFFB1469010200F10BFF646D01DE1B800 +S315400154907FFFB1429010200F10BFF64FD01CE1E0C4 +S315400154A07FFFB13E9010200F10BFF608D41CE1E0FB +S315400154B07FFFB13A9010200F10BFF5F411151BE88C +S315400154C07FFFB1369010200F10BFF5E011151BC0BC +S315400154D07FFFB1329010200F10BFF5C4901020000D +S315400154E07FFFB12E9010200F10BFF5B011351BC0B4 +S315400154F07FFFB12A9010200F10BFF57AD01CE1E052 +S315400155007FFFB1269010200F10BFF583D01D61F0AB +S315400155107FFFB1229010200F10BFF565D01DE1B875 +S315400155207FFFB11E9010200F10BFF53FD41D61F0D3 +S315400155307FFFB11A9010200F10BFF52ED41CE1E069 +S315400155407FFFB1169010200F10BFF51A11151BE8F9 +S315400155507FFFB1129010200F10BFF50611151BC029 +S315400155607FFFB10E9010200F10BFF4DA11351BC02A +S315400155707FFFB10A9010200F10BFF4E69010200073 +S315400155807FFFB1069010200E30BFF4BF7FFFB103FD +S315400155909010200E10BFF4B11128C6AF7FFFB0FFA7 +S315400155A09010200E10BFF4A11108C6AF7FFFB0FBCB +S315400155B09010200E10BFF4911128C6AF7FFFB0F7AF +S315400155C09010200E10BFF4822108C6AF7FFFB0F3C2 +S315400155D09010200D30BFF4517FFFB0F09010200D98 +S315400155E010BFF444371000807FFFB0EC9010200CC0 +S315400155F010BFF3A2271000807FFFB0E89010200B68 +S3154001560030BFF34F7FFFB0E59010201110BFFA8FE6 +S31540015610110020007FFFB0E19010201110BFFA6DFC +S31540015620110020007FFFB0DD9010201110BFFA5C01 +S31540015630111E607E7FFFB0D99010201110BFFA4B2A +S315400156401111BBFE7FFFB0D59010201010BFF85E40 +S31540015650091000807FFFB0D19010201010BFF84F85 +S31540015660111000007FFFB0CD9010201430BFFD5BBC +S315400156707FFFB0CA9010202330BFFD367FFFB0C7F1 +S315400156809010202330BFFD297FFFB0C49010201316 +S3154001569030BFFD197FFFB0C19010201210BFFC4EE4 +S315400156A0111FE00012BFF30A01000000C204A16805 +S315400156B080A0600002BFF3080100000030BFF30480 +S315400156C07FFFB0B69010201830BFFF147FFFB0B3F4 +S315400156D09010201810BFFF0D031000800303FF1226 +S315400156E08210604A80A0800112BFFEE39215E1B8A4 +S315400156F010BFFEE59010001480A0600002BFFEC4FA +S315400157002B10012430BFFEBFC207BFFC80A0800121 +S3154001571012BFFE9001000000C204A16880A0600093 +S3154001572002BFFE8E0100000030BFFE8AC207BFFCE9 +S3154001573080A0800112BFFE7B01000000C204A16867 +S3154001574080A0600002BFFE790100000030BFFE75F7 +S31540015750C207BFFC80A0800112BFFE6601000000A7 +S31540015760C204A16880A0600002BFFE64010000007F +S3154001577030BFFE607FFFB0899010201530BFFE50CC +S315400157807FFFB0869010201530BFFE447FFFB08367 +S315400157909010201530BFFE3880A0600002BFFE2D5C +S315400157A00100000030BFFE2980A0600002BFFE1C40 +S315400157B00100000030BFFE1880A0600002BFFE0B52 +S315400157C00100000030BFFE07032C1B3482106030FD +S315400157D080A0800112BFFDF00100000030BFFDF046 +S315400157E0032C1B348210603080A0800112BFFDD78C +S315400157F00100000030BFFDD7032C1B348210602FFF +S3154001580080A0800112BFFDC30100000030BFFDC36F +S3154001581080A0600312BFFDA70100000030BFFDA7B5 +S3154001582080A0600312BFFD930100000030BFFD93CD +S3154001583080A0600212BFFD820100000030BFFD82E0 +S31540015840C4042004881121C8C201200480A080011B +S3154001585012BFFD680100000030BFFD6807100080DF +S315400158608610E1C8C200E00480A0800112BFFD4D50 +S315400158700100000030BFFD4D09100080881121C88C +S31540015880C201200480A0800112BFFD320100000048 +S3154001589030BFFD3280A0600112BFFD1E0100000035 +S315400158A030BFFD1E80A0600112BFFD060100000051 +S315400158B030BFFD0680A0600002BFFCF00100000081 +S315400158C030BFFCEC071000808610E1D0C200E00436 +S315400158D080A0400912BFFCD301000000C204A168A8 +S315400158E080A0600002BFFCD10100000030BFFCCDAA +S315400158F012BFFCC001000000C204A16880A0600084 +S3154001590002BFFCBE0100000030BFFCBA80A06000AF +S3154001591012BFFCA601000000C204A16880A060007D +S3154001592002BFFCA40100000030BFFCA080A06000C3 +S3154001593012BFFC9301000000C204A16880A0600070 +S3154001594002BFFC929015E1B830BFFC8D8410A1F8DE +S31540015950C200A004C404200480A0800112BFFC4EF2 +S3154001596001000000C404A168030000708210601F9A +S3154001597084088001030000108210601080A080011D +S3154001598012BFFC459015E1B830BFFC4680A06000CF +S3154001599012BFFC3601000000C204A16880A060006D +S315400159A002BFFC35A607BFF030BFFC30C40420045B +S315400159B080A0800112BFFC1C03100080C2006168F8 +S315400159C080A0600002BFFC1B05100C0030BFFC1616 +S315400159D009100080881121F8C201200480A08001AD +S315400159E012BFFC0603100080C4006168030000700A +S315400159F08210601F8408800103000010821060102D +S31540015A0080A0800112BFFBFD0100000030BFFBFDFD +S31540015A10071000808610E1F8C200E00480A08001F2 +S31540015A2012BFFBEB01000000C404A1680300007033 +S31540015A308210601F840880010300001082106010EC +S31540015A4080A0800112BFFBE20100000030BFFBE2F3 +S31540015A50C4042004881121D8C201200480A08001F9 +S31540015A6012BFFBD101000000C204A16880A0600002 +S31540015A7002BFFBD09016A1D030BFFBCBC40420049B +S31540015A808610E1C0C200E00480A0800112BFFBBCC9 +S31540015A9001000000C204A16880A0600002BFFBBBF8 +S31540015AA09016E1D830BFFBB6C207BFCC80A08001BB +S31540015AB012BFFBA703100080C200616880A060008E +S31540015AC002BFFBA60910008030BFFBA103300000D6 +S31540015AD08210602080A0800112BFFB90010000006F +S31540015AE0C204A16880A0600002BFFB8E01000000D5 +S31540015AF030BFFB8A80A0600012BFFB7B0100000023 +S31540015B00C204A16880A0600002BFFB7A111FDFFFBB +S31540015B1030BFFB750338000080A0800112BFFB67D0 +S31540015B2001000000C204A16880A0600002BFFB66BC +S31540015B30111FD00030BFFB6180A0600012BFFB5235 +S31540015B4003100080C200616880A0600002BFFB5163 +S31540015B50111FDFFF30BFFB4C80A0600012BFFB313D +S31540015B6001000000C204A16880A0600002BFFB30B2 +S31540015B701110000030BFFB2B80A0600012BFFB1E3E +S31540015B8001000000C204A16880A0600002BFFB1DA5 +S31540015B90111FE00030BFFB18C20420048610E21832 +S31540015BA0C400E10480A0800112BFFAFC031000800A +S31540015BB0C4006168030000708210601F8408800180 +S31540015BC0030000108210600880A0800112BFFAF322 +S31540015BD00100000030BFFAF3C204200480A0800116 +S31540015BE012BFFADF03100080C40061680300007031 +S31540015BF08210601F84088001030000108210600437 +S31540015C0080A0800112BFFAD60100000030BFFAD64B +S31540015C10C20420048610E218C400E0D480A08001AA +S31540015C2012BFFAC003100080C4006168030000700F +S31540015C308210601F840880010300001082106008F2 +S31540015C4080A0800112BFFAB70100000030BFFAB749 +S31540015C50C204200480A0800112BFFAA30310008071 +S31540015C60C4006168030000708210601F84088001CF +S31540015C70030000108210600880A0800112BFFA9ACA +S31540015C800100000030BFFA9AC20420048610E218CF +S31540015C90C400E0A480A0800112BFFA840100000084 +S31540015CA0C404A168030000708210601F840880014B +S31540015CB0030000108210600480A0800112BFFA7BAD +S31540015CC00100000030BFFA7BC206600480A080015B +S31540015CD012BFF9CD01000000C204A16880A0600096 +S31540015CE002BFF9CC9014E1E030BFF9C7C2066004A7 +S31540015CF080A0800112BFF9B901000000C204A16869 +S31540015D0080A0600002BFF9B89014E1E030BFF9B35A +S31540015D10C206600480A0800112BFF9A501000000FF +S31540015D20C204A16880A0600002BFF9A49014E1E01A +S31540015D3030BFF99FC206600480A0800112BFF9916D +S31540015D4003100080C200616880A0600002BFF99024 +S31540015D509014E1E030BFF98B071000808610E1F81E +S31540015D60C200E00480A0800112BFF96D010000006D +S31540015D70C404A168030000708210601F840880017A +S31540015D80030000108210601080A0800112BFF964E8 +S31540015D909015A1C810BFF9669215E1B8C206600414 +S31540015DA080A0800112BFF95303100080C2006168D0 +S31540015DB080A0600002BFF9529015A1C830BFF94DCD +S31540015DC009100080881121F8C201200480A08001B9 +S31540015DD012BFF93C01000000C404A1680300007031 +S31540015DE08210601F84088001030000108210601039 +S31540015DF080A0800112BFF9330100000030BFF933A2 +S31540015E00071000808610E1C8C200E00480A080012E +S31540015E1012BFF92103100080C200616880A06000B2 +S31540015E2002BFF9209015A1C830BFF91B09100080A7 +S31540015E30881121F8C201200480A0800112BFF8FD1B +S31540015E4001000000C404A168030000708210601FB5 +S31540015E5084088001030000108210601080A0800138 +S31540015E6012BFF8F49010001D10BFF8F69215E1B874 +S31540015E70C206600480A0800112BFF8E303100080CF +S31540015E80C200616880A0600002BFF8E29010001D68 +S31540015E9030BFF8DD071000808610E1F8C200E0044B +S31540015EA080A0800112BFF8CC01000000C404A168A3 +S31540015EB0030000708210601F8408800103000010F7 +S31540015EC08210601080A0800112BFF8C3010000005B +S31540015ED030BFF8C3C207BFD480A0800112BFF8B259 +S31540015EE003100080C200616880A0600002BFF8B163 +S31540015EF00310008030BFF8AC09100080881121F8EA +S31540015F00C201200480A0800112BFF88E010000006A +S31540015F10C404A168030000708210601F84088001D8 +S31540015F20030000108210601080A0800112BFF88526 +S31540015F309010001410BFF8879215E1B8C2066004AC +S31540015F4080A0800112BFF87401000000C204A1685C +S31540015F5080A0600002BFF8739010001430BFF86E45 +S31540015F60071000808610E1D8C200E00480A08001BD +S31540015F7012BFF85E01000000C204A16880A0600063 +S31540015F8002BFF85D9010001430BFF8588810E1C088 +S31540015F90C201200480A0800112BFF849031000808D +S31540015FA0C200616880A0600002BFF84890100014EA +S31540015FB030BFF84303003A9A8210630F80A08001F4 +S31540015FC012BFF7BD03100080C200616880A0600067 +S31540015FD002BFF7BC050006AF30BFF7B780A060002F +S31540015FE012BFF78103100080C4006168030000708E +S31540015FF08210601F8408800103000010821060082F +S3154001600080A0800112BFF7780500400010BFF77AE3 +S315400160100700C00009100080881121F8C201200440 +S3154001602080A0800112BFF6EF01000000C404A16800 +S31540016030030000708210601F840880010300001075 +S315400160408210601080A0800112BFF6E69014E1E054 +S3154001605010BFF6E89215E1B8C206600480A080013F +S3154001606012BFF6D501000000C204A16880A06000FD +S3154001607002BFF6D49014E1E030BFF6CFC206600409 +S3154001608080A0800112BFF6C101000000C204A168D0 +S3154001609080A0600002BFF6C09014E1E030BFF6BBBD +S315400160A0C206600480A0800112BFF6AD0100000067 +S315400160B0C204A16880A0600002BFF6AC9014E1E082 +S315400160C030BFF6A7C206600480A0800112BFF699D0 +S315400160D003100080C200616880A0600002BFF6988C +S315400160E09014E1E030BFF693071000808610E1F886 +S315400160F0C200E00480A0800112BFF67401000000D6 +S31540016100C404A168030000708210601F84088001E6 +S31540016110030000108210601080A0800112BFF66B50 +S315400161200100000030BFF66BC206600480A080010A +S3154001613012BFF65B03100080C200616880A0600058 +S3154001614002BFF65A9015A1C830BFF6550910008016 +S31540016150881121F8C201200480A0800112BFF644B3 +S3154001616001000000C404A168030000708210601F92 +S3154001617084088001030000108210601080A0800115 +S3154001618012BFF63B0100000030BFF63B071000800E +S315400161908610E1D8C200E00480A0800112BFF62932 +S315400161A001000000C204A16880A0600002BFF62879 +S315400161B09015A1C830BFF623071000808610E1D0A4 +S315400161C0C200E00480A0800112BFF61203100080D5 +S315400161D0C200616880A0600002BFF611091000800C +S315400161E030BFF60CC206600480A0800112BFF5E004 +S315400161F001000000C204A16880A0600002BFF5DF73 +S315400162009010001D30BFF5DA8810E1C0C2012004AC +S3154001621080A0800112BFF5CB03100080C2006168E7 +S3154001622080A0600002BFF5CA9010001D30BFF5C5C1 +S31540016230071000808610E1F8C200E00480A08001CA +S3154001624012BFF5B201000000C404A168030000704A +S315400162508210601F840880010300001082106010C4 +S3154001626080A0800112BFF5A90910008030BFF5AAB0 +S31540016270C207BFD480A0800112BFF59803100080E9 +S31540016280C200616880A0600002BFF59703100080DC +S3154001629030BFF59209100080881121F8C20120040F +S315400162A080A0800112BFF57401000000C404A168FA +S315400162B0030000708210601F8408800103000010F3 +S315400162C08210601080A0800112BFF56B90100014FF +S315400162D010BFF56D9215E1B8C206600480A0800139 +S315400162E012BFF55A01000000C204A16880A06000F7 +S315400162F002BFF5599010001430BFF554C207BFCC08 +S3154001630080A0800112BFF54603100080C20061687B +S3154001631080A0600002BFF5459010001430BFF540E3 +S31540016320071000808610E1D0C200E00480A0800101 +S3154001633012BFF52F03100080C4006168030000708E +S315400163408210601F840880010300001082106002E1 +S3154001635080A0800112BFF5260100000030BFF5265E +S3154001636012BFF50001000000C204A16880A06000D0 +S3154001637002BFF4FF1110000030BFF4FA12BFF4EE71 +S3154001638001000000C204A16880A0600002BFF4EDD4 +S315400163901130000030BFF4E812BFF4DC0100000008 +S315400163A0C204A16880A0600002BFF4DB1130000086 +S315400163B030BFF4D612BFF4CA03100080C200616830 +S315400163C080A0600002BFF4C91110000030BFF4C4C0 +S315400163D0C20420048610E320C400E17C80A0800131 +S315400163E012BFF4B301000000C404A16803000070A9 +S315400163F08210601F8408800103000010821060042F +S3154001640080A0800112BFF4AA0100000030BFF4AAA7 +S31540016410C204200480A0800112BFF497010000004D +S31540016420C404A168030000708210601F84088001C3 +S31540016430030000108210600480A0800112BFF48E18 +S315400164401110008110BFF49094146160C2042004BD +S315400164508610E320C400E14C80A0800112BFF4788D +S3154001646001000000C404A168030000708210601F8F +S3154001647084088001030000108210600880A080011A +S3154001648012BFF46F1110008110BFF4719414616052 +S315400164907FFFAD429010201010BFF45E11100081B5 +S315400164A0C206600480A0800112BFF3B9010000005A +S315400164B0C204A16880A0600002BFF3B89014E1E075 +S315400164C030BFF3B3C206600480A0800112BFF3A5BA +S315400164D001000000C204A16880A0600002BFF3A4CD +S315400164E09014E1E030BFF39FC206600480A08001B2 +S315400164F012BFF39101000000C204A16880A06000B0 +S3154001650002BFF3909014E1E030BFF38BC206600402 +S3154001651080A0800112BFF37D03100080C200616834 +S3154001652080A0600002BFF37C9014E1E030BFF377B6 +S3154001653009100080881121F8C201200480A0800141 +S3154001654012BFF35A03100080C40061680300007053 +S315400165508210601F840880010300001082106010C1 +S3154001656080A0800112BFF3519015A1C810BFF3530B +S315400165709215E1B8071000808610E1F8C200E004E8 +S3154001658080A0800112BFF33B0100000030BFF33B06 +S3154001659009100080881121D0C201200480A0800109 +S315400165A012BFF31801000000C204A16880A0600078 +S315400165B002BFF3179016A1D030BFF3120710008027 +S315400165C08610E1D8C200E00480A0800112BFF30228 +S315400165D001000000C204A16880A0600002BFF3016F +S315400165E09016A1D030BFF2FC09100080881121C855 +S315400165F0C201200480A0800112BFF2EC010000001C +S31540016600C204A16880A0600002BFF2EB9016E1D8F7 +S3154001661030BFF2E6071000808610E1C8C200E004F0 +S3154001662080A0800112BFF2D603100080C2006168CB +S3154001663080A0600002BFF2D59015A1C830BFF2D04C +S3154001664009100080881121F8C201200480A0800130 +S3154001665012BFF2B10100000030BFF2B1C2066004C0 +S3154001666080A0800112BFF29001000000C204A1681F +S3154001667080A0600002BFF28F9010001D30BFF28AE9 +S31540016680071000808610E1C8C200E00480A08001A6 +S3154001669012BFF27A01000000C204A16880A0600026 +S315400166A002BFF2799010001D30BFF274C207BFFCE1 +S315400166B080A0800112BFF26603100080C2006168AB +S315400166C080A0600002BFF2659010001D30BFF260ED +S315400166D0881721F8C201200480A0800112BFF2422E +S315400166E00100000030BFF242C4042004C206600427 +S315400166F080A0800112BFF21E01000000C204A16801 +S3154001670080A0600002BFF21D9010001430BFF21845 +S315400167108615A1C8C200E00480A0800112BFF2091B +S3154001672001000000C204A16880A0600002BFF20817 +S315400167309010001430BFF203C2042004C407BFFC0A +S3154001674080A0800112BFF1F303100080C20061688E +S3154001675080A0600002BFF1F22D10008030BFF1ED44 +S3154001676080A2400112BFEFA201000000C204A1684D +S3154001677080A0600002BFEFA11111FC0030BFEF9C69 +S3154001678080A2400112BFEF9003100080C2006168F1 +S3154001679080A0600022BFEF8F113C02AF30BFEF8A6D +S315400167A012BFEEDB01000000C204A16880A06000B8 +S315400167B002BFEED90100000030BFEED512BFEECCCC +S315400167C001000000C204A16880A0600002BFEECAB9 +S315400167D00100000030BFEEC67FFFAC70901020195B +S315400167E010BFFAD4050C402981D8200081C3E008A6 +S315400167F00100000081D8200082102400C0A043007F +S3154001680081C3E00801000000853220109132201832 +S31540016810900A200F8408A00380A00008826020000F +S3154001682081C3E008900880019DE3BF887FFFEB7A32 +S315400168309010200C808A200812800004010000007C +S3154001684081C7E00891E820007FFFAC4D9010200EF3 +S31540016850C2800320853060188088A00F028000DD49 +S315400168602F100123833060108208600380A06002EC +S31540016870028000E0C225E0C880A06003028000FFDC +S3154001688080A06001028000EC2910010C2310010C4C +S315400168902110010C2B10010C2710010C2510010CA5 +S315400168A081D8200081D8200082102400C0A0430056 +S315400168B0031000A1051000A0821060008410A00002 +S315400168C0873060048610E00188100003C878800094 +S315400168D08800A004C67900008610200AC6784000C8 +S315400168E0C8046000C60420041B008000190800008B +S315400168F09A13600A993B0004980B0003992B2002D6 +S3154001690098030001DA7B00001B010000171000000C +S315400169109813608E973AC004960AC003972AE002FC +S315400169209602C001D87AC000171C00001901C000A8 +S31540016930893AC0049813208E860900038728E0020D +S315400169408600C001D878C0003B1000A28200600CCE +S31540016950BA176000873760048610E001C6784000A8 +S315400169608213601E86076008C278C000821020002C +S315400169708807600C86100001C67900002D1000A220 +S315400169809A076004AC15A1008735A004B81000161B +S315400169908610E001C67B4000B405A008C27E800097 +S315400169A01B1000C0B605A004861360008330E004C6 +S315400169B09810601AD87EC000C02360001B048D1554 +S315400169C09A136278DA20E004DA05E0C83310010050 +S315400169D09A03600CB21660008605A00CB010200028 +S315400169E0C627BFF8DA27BFFC901000189210200383 +S315400169F0C227BFF0C427BFEC40000AB0C827BFF486 +S31540016A00DA07BFFC992A000DC607BFF8980300199B +S31540016A10993320049813201ED878C000B00620016F +S31540016A208600E00480A62008C207BFF0C407BFEC79 +S31540016A3012BFFFECC807BFF417100020DE05200C7B +S31540016A408612E168C822E16809100020D005600875 +S31540016A50D804A014DA04E010D2042004D40460005F +S31540016A60960BE001972AC008C6212160880A600377 +S31540016A708929000A8812C004960B2002972AC00D64 +S31540016A809611000B8530A004D620E0209610600EAA +S31540016A90D620E0289608BFF0840B20018528800D7A +S31540016AA0841100028210601EC420E02CC420E01430 +S31540016AB0050100008410A01EC220E010C420E0049D +S31540016AC0F620E00CF420E018F620E024050076419B +S31540016AD0031000208410A1C082106000C420E00889 +S31540016AE0833060048210601EC220E01C82102100A7 +S31540016AF0D6A04320C4800320C280432084102001B5 +S31540016B0082102200C4A04320C68043208610200064 +S31540016B10C6A04320C4A0032081D820007FFFEABE3F +S31540016B2090102000913A200C808A20030280006553 +S31540016B3001000000C280032082102100C280432050 +S31540016B4082102200C2804320C80420048809200301 +S31540016B50C2046000C605200CC4056008D404A01414 +S31540016B60D604E010832900019808E0019A0AA001A1 +S31540016B70992B00029B2B400B981300019A13000D91 +S31540016B80C803400080A120000280000388136004EE +S31540016B9030800000D201000011048D159012227838 +S31540016BA080A2400812BFFFFB111000009E08E002C0 +S31540016BB0D00200009F2BC0029E13C001DE03C0001D +S31540016BC080A3C008228000428608E003308000008E +S31540016BD02310010C2110010CC025E0C82B10010C1B +S31540016BE02910010C2710010C10BFFF2E2510010C96 +S31540016BF02110010C2910010C2510010C2310010C48 +S31540016C008210203F2B10010C2710010CC2242004B6 +S31540016C10C224A014C225200C8210201AC22460006E +S31540016C2082102014C22560088210200E10BFFF1D5D +S31540016C30C224E0102510010C2310010C8210203FC4 +S31540016C402110010C2B10010C2710010CC225200C20 +S31540016C50C224A01482102019C22460008210207F11 +S31540016C60C224200482102013C22560088210200D00 +S31540016C7010BFFF0CC224E0102110010C2710010C9B +S31540016C802310010C8210200F2B10010C2910010C2E +S31540016C902510010CC224E010C22420048210201CBD +S31540016CA0C224600082102015C22560088210207F10 +S31540016CB0C225200C8210203F10BFFEFAC224A01428 +S31540016CC07FFFC4D30100000030BFFF9B8528C0026F +S31540016CD082108001C20040000321D95082106321F5 +S31540016CE0C2210000C401000080A08001028000038F +S31540016CF001000000308000008210000D05048D1552 +S31540016D008410A278072AF37B8610E301C438400039 +S31540016D10C4384000C203400080A0400902800003FD +S31540016D200100000030800000C4010000032AF37B0B +S31540016D308210630180A0800112BFFFFBC205E0C83B +S31540016D40940AA0038200600C972A800B84102001CC +S31540016D50AE13000B85288001B0102000EE25C0003F +S31540016D60C0A0022092102003C227BFF0C427BFEC67 +S31540016D70400009D290100018C207BFF0912A0001C5 +S31540016D80C606400880A0C01712800008C407BFECA1 +S31540016D90B006200180A6200802800005AE05C0028B +S31540016DA010BFFFF0EE25C00030800000C0A00220D9 +S31540016DB0AE102003B0102000852DE002C4058002EC +S31540016DC08608A06080A00003C227BFF0B04000182B +S31540016DD0C427BFEC9005FFFD400009B8921020037F +S31540016DE0C207BFF0C407BFEC872A000186064003ED +S31540016DF08730E0048610E01E8418C0028088BF9F59 +S31540016E0012800009AE05E00180A5E00B32BFFFEC20 +S31540016E10852DE00280A6200012800004D805200CB2 +S31540016E203080000030800000C8056008DA04200484 +S31540016E30C4046000C604A014C204E010980B2001EB +S31540016E409A0B6003892B0004852B40028608E002D9 +S31540016E50841100028328C001821080019FC0400036 +S31540016E600100000082102400C0A04300C0A00220FF +S31540016E708210200084072020C607200C8608E06087 +S31540016E8080A00003B80720048240000180A70002C9 +S31540016E9032BFFFFBC607200C80A06008228000039A +S31540016EA0C206C00030800000808860400280000435 +S31540016EB08088602032800003C2076008308000006D +S31540016EC08088602032800003C20680003080000046 +S31540016ED0808860201280000301000000308000009D +S31540016EE083480000842860808188A000010000005A +S31540016EF00100000001000000D8042004C80460001D +S31540016F00DA05200CC4056008C604A014C204E010CA +S31540016F10980B20039A0B6001892B0004852B4002B4 +S31540016F208608E001841100028328C0018410A00470 +S31540016F3082108001C20040009210200491D02002AC +S31540016F40010000007FFFE9B490102000913A200C27 +S31540016F50808A200312800005841020007FFFC42C04 +S31540016F60010000008410200082102200C4A04320AA +S31540016F7086102001C6A04320C4A043200310000070 +S31540016F80C4804380C4A043807FFFC48E90102000FC +S31540016F9081D8200030BFFE2B9DE3BFA040000822D0 +S31540016FA001000000808A21001280000401000000D7 +S31540016FB081C7E00891E820007FFFAA9423100120B1 +S31540016FC0912A20047FFFAA6E90022005A214600038 +S31540016FD0C204600480A060000280001A8210200072 +S31540016FE0A010200084044001C8044001C600A0044A +S31540016FF0C200A0089B39201F818360000100000068 +S3154001700001000000010000008479000380A0800196 +S3154001701002800004A00420017FFFAA609010200195 +S3154001702082040010820040108328600284044001DB +S31540017030C400A00480A0A00012BFFFEC840440015C +S3154001704023100120A2146138C204600480A06000AC +S315400170500280001982102000A01020008404400103 +S31540017060C8044001C600A004C200A00881802000D7 +S3154001707001000000010000000100000084710003CE +S3154001708080A0800102800004A00420017FFFAA4362 +S315400170909010200282040010820040108328600272 +S315400170A084044001C400A00480A0A00012BFFFEDEB +S315400170B084044001400008890100000080A22000AC +S315400170C012BFFFBC901020037FFFAA34B0102000EE +S315400170D081C7E00881E800009DE3BFA07FFFAA4B7E +S315400170E001000000912A20047FFFAA259002200476 +S315400170F0400007CF0100000080A221230280000446 +S31540017100010000007FFFAA2590102001400007C61C +S3154001711001000000808A21000280002923100120FD +S31540017120A2146180C204600880A060090280001533 +S3154001713082102000A010200084044001C6044001B2 +S31540017140C800A004C200A0088459000380A08001A1 +S3154001715002800004A00420017FFFAA1090102002A3 +S31540017160820400108200401083286002840440019A +S31540017170C400A00880A0A00912BFFFF18404400109 +S31540017180400007B80100000080A2200002800023D1 +S3154001719001000000400007B30100000080A220006A +S315400171A002800016010000004000079F0100000018 +S315400171B0808A2200128000040100000081C7E00895 +S315400171C091E82000400007F80100000080A220005D +S315400171D00280001A01000000400007F30100000090 +S315400171E080A2200012BFFFF6010000007FFFA9EB3D +S315400171F09010200430BFFFF27FFFA9E890102003D2 +S315400172004000078901000000808A220002BFFFEC8E +S315400172100100000030BFFFEC7FFFA9E09010200382 +S31540017220400007900100000080A2200012BFFFDF4E +S315400172300100000030BFFFF17FFFA9D89010200464 +S3154001724030BFFFE6000000009DE3BFA09410200080 +S315400172501110005C9012227C1310005C9212628025 +S315400172601710005C9612E2881910005C9813228C64 +S3154001727093C2000081C240001080019181C2C000CA +S3154001728081C300001080018E9402A0019402A001E6 +S3154001729080A2A0031280018A0100000087440000F9 +S315400172A08D30E00E8C89A00780A1A000028000C726 +S315400172B001000000AF30E00BAE0DE00780A5E00015 +S315400172C0128000C20100000080A1A0021280003598 +S315400172D00100000025100000E41C8000251000007C +S315400172E029100000A8152104A6100012AA100012A8 +S315400172F0AC100014A1802046A4100000AA10000082 +S3154001730001000000A180204EA810210001000000CC +S31540017310A18000000100000001000000E83CA0300F +S3154001732082A480131280016682A500161280016430 +S315400173300100000001000000010000008744000038 +S315400173408D30E00B8C89A0078CA1A0051280015CD1 +S31540017350A1800000010000000100000001000000C2 +S31540017360E81CA03082A500161280015582A5401264 +S31540017370A41000001280015201000000010000002B +S31540017380874400008D30E00B8C89A0078CA1A003B7 +S315400173901280014B010000001080008C01000000AA +S315400173A080A1A0011280002325100000E41C80006A +S315400173B02510000029100000A8152104A61000126E +S315400173C0AA100012AC100014A1802046A41000009F +S315400173D0AA10000001000000A180204EA810210043 +S315400173E001000000A1800000010000000100000032 +S315400173F001000000E83C800082A480131280013025 +S3154001740082A500161280012E010000000100000035 +S31540017410874400008D30E00B8C89A0078CA1A00227 +S315400174201280012701000000108000680100000061 +S3154001743080A1A00312800065A6100000A210200EB4 +S31540017440A1844000A6100000A1800000A814E0001D +S31540017450AB44000001000000AC14E0000100000054 +S31540017460AF44000080A5200012800115AA8D6E0050 +S3154001747080A540001280011280A5A0001280011053 +S31540017480AF35E00BAE0DE00780A5E0011280010C9F +S3154001749001000000A0100000A1844000A6100000D9 +S315400174A0A1800000E8180000AC100000AE100000FA +S315400174B0EC04C000EE04E00480A500161280010031 +S315400174C080A54017128000FE01000000A54400007F +S315400174D0A534A00BA40CA00780A4A001128000F83B +S315400174E001000000A0100000A1844000A610000089 +S315400174F0A1800000A210200AA1844000A41000002F +S31540017500A1800000E8180000AC100000AE10000099 +S31540017510EC04C012EE04E00480A50016128000E8D7 +S3154001752080A54017128000E601000000A544000036 +S31540017530A534A00BA40CA00780A4A002068000E0FD +S315400175400100000021100120A0142200EC1C0000C3 +S31540017550A0042008E81C0000A1844000A6100000F9 +S31540017560A1800000A210200EA1844000A4100010AA +S31540017570AC100000AE100000A18000000100000028 +S3154001758001000000EC3C8013AC100000AE1000007E +S31540017590E81CC01280A50016128000C980A54017BC +S315400175A0128000C701000000A5440000A534A00BCD +S315400175B0A40CA00780A4A004128000C10100000011 +S315400175C010800002010000008B4440008A09601FC0 +S315400175D080A160010280000A8C1000059DE3BFA0D6 +S315400175E08AA1600116BFFFFE0100000081E800008C +S315400175F08CA1A00116BFFFFE0100000001000000A2 +S3154001760001000000A023A080A02C20078E100010AE +S31540017610A3480000E2240000C2242004C43C200800 +S31540017620C83C2010CC3C2018F03C2020F43C2028BB +S31540017630F83C2030FC3C2038D03C2040D43C20480B +S31540017640D83C2050DC3C2058A5500000E424206062 +S315400176508010200882102001841020028610200309 +S31540017660881020048A1020058C1020068190000085 +S31540017670A42C601F818C80000100000001000000E5 +S3154001768001000000030040408210610184100000A7 +S3154001769086100000894440008809201F8610000496 +S315400176A0A010000284004002A210000284004002A1 +S315400176B0A410000284004002A61000028400400289 +S315400176C0A810000284004002AA1000028400400271 +S315400176D0AC10000284004002AE1000028400400259 +S315400176E09010000284004002921000028400400281 +S315400176F09410000284004002961000028400400269 +S3154001770098100002840040029A1000028400400250 +S315400177109C100002840040029E1000028400400238 +S3154001772081E0000086A0E00116BFFFDE01000000F7 +S31540017730030040408210610184100000861000045D +S3154001774080A400021280003F8400400280A44002CF +S315400177501280003C8400400280A4800212800039DD +S315400177608400400280A4C002128000368400400298 +S3154001777080A50002128000338400400280A54002A9 +S31540017780128000308400400280A580021280002DC4 +S315400177908400400280A5C0021280002A8400400273 +S315400177A080A20002128000278400400280A240028B +S315400177B0128000248400400280A2800212800021AF +S315400177C08400400280A2C0021280001E8400400252 +S315400177D080A300021280001B8400400280A3400265 +S315400177E0128000188400400280A380021280001596 +S315400177F08400400280A3C00212800012840040022D +S3154001780081E0000086A0E00116BFFFCE0100000026 +S3154001781080A020001280000B80A0FFFF128000098B +S3154001782080A160051280000780A1A0061280000594 +S3154001783001000000A010000710800006C02420208F +S31540017840A01000079010200110800002D0242020B3 +S3154001785082100007C40040008188800001000000BA +S315400178600100000001000000C4186008C81860103B +S31540017870CC186018F0186020F4186028F8186030A9 +S31540017880FC186038D0186040D4186048D818605049 +S31540017890DC186058E4006060C20060048194800096 +S315400178A0010000000100000001000000A0100007D7 +S315400178B0F004202081C7E00881E8000010BFFFFCEA +S315400178C0B01000000100000081D8200081C3E0080B +S315400178D0010000000328000084106004952AA00DD1 +S315400178E0D0204000922270009202400AD2208000AD +S315400178F081C3E0080100000003100124C40061AC0B +S3154001790003100124C200619C852A40028610200191 +S315400179108328C00182007FFF900A00019000800801 +S315400179208213C0007FFFE74C9E104000010000001B +S3154001793003100124C40061AC03100124C200619C00 +S31540017940852A4002861020018328C00182007FFFDC +S31540017950900A0001900080088213C0007FFFE73A39 +S315400179609E104000010000009DE3BFA02D100124A0 +S31540017970C205A1A0A410001880A0600004800020C8 +S31540017980B01020012F1001242B100124D005E1ACA9 +S3154001799029100124AC15A1A0AE15E1ACAA15619C34 +S315400179A0A815218CA0102000A2102000A6102001AD +S315400179B0C2054000832CC00182007FFF820C8001FA +S315400179C0912C00087FFFE72090020001C2050000CC +S315400179D0901A0012820A000180A00001C2058000AF +S315400179E0A2647FFFA004200180A0401034BFFFF1B4 +S315400179F0D005C00080A00011B0603FFF81C7E008FC +S31540017A0081E800009DE3BFA003100124C40061ACDE +S31540017A1003100124C200619CB32E40028410200150 +S31540017A208328800182007FFF820E00019210001A96 +S31540017A307FFFE70B9006400181C7E00881E800001F +S31540017A409DE3BFA003100124C40061AC03100124CF +S31540017A50C200619CB32E400284102001832880011C +S31540017A6082007FFF820E00019210001A7FFFE6F826 +S31540017A709006400181C7E00881E800000310012417 +S31540017A80C400619403100124C2006190852A40021A +S31540017A90861020018328C00182007FFF900A0001E1 +S31540017AA0900080088213C0007FFFE6E39E104000ED +S31540017AB0010000009DE3BFA003100124C4006194AE +S31540017AC003100124C2006190B32E400284102001AC +S31540017AD08328800182007FFF820E00019210001AE6 +S31540017AE07FFFE6D79006400181C7E00881E80000A4 +S31540017AF09DE3BFA003100124C40061940310012437 +S31540017B00C2006190B32E4002841020018328800177 +S31540017B1082007FFF820E00019210001A7FFFE6C4A9 +S31540017B209006400181C7E00881E800000310012466 +S31540017B30C400619403100124C2006190852A400269 +S31540017B40861020018328C00182007FFF900A000130 +S31540017B50900080088213C0007FFFE6B39E1040006C +S31540017B6001000000033FFFBF821063089DE38001CF +S31540017B700310004482106360C227BFEC0310004427 +S31540017B80821063A02F100044C227BFF4AE15E34014 +S31540017B9035100044EE27BFE8B416A38090102006A6 +S31540017BA07FFFA777F427BFF07FFFE69B9010200069 +S31540017BB0213FFFBF920A3FF0A01423689010200096 +S31540017BC07FFFE697A0078010230000307FFFE692F3 +S31540017BD090102000808A001112BFFFFD01000000B5 +S31540017BE081D82000230000307FFFE68B90102000D3 +S31540017BF0808A001112BFFFFD0100000023100124FD +S31540017C007FFFE6859010200013002040A410000855 +S31540017C109212600F921200097FFFE68190102000B8 +S31540017C207FFFE67D90102008D02461887FFFE67AA9 +S31540017C309010200C09100124C40461889938A014BD +S31540017C4013100124980B200F8603200AC621219088 +S31540017C50091001240310012496102400C621219401 +S31540017C60893A20148809200F9401200AD422619C64 +S31540017C70131001242D100124D0206198D42261AC27 +S31540017C8015100124932AC004833A2018D222A1A8B0 +S31540017C901510012482086003820060011B20000048 +S31540017CA08801200837100124C225A1A09201200293 +S31540017CB0821020019328400992234009D222A18CA7 +S31540017CC01510012487284003913A20109A23400336 +S31540017CD0992AC00CDA26E1A4D822A184A20A200757 +S31540017CE08738A018A93CA00CBA210011A408E003CA +S31540017CF08538A010A88D2003AA08A007A404A001D6 +S31540017D00AB284015A3284011AB2840159010001709 +S31540017D10AA057FFFA610200002800123B807BFE80D +S31540017D20A6042020030048D182106167C224C00006 +S31540017D3003226AF3821061EFC2242024C20C202060 +S31540017D4080A0600102800004010000007FFFA713AC +S31540017D509010201AC20C202180A0602302800004CA +S31540017D60010000007FFFA70D9010201BC20C2022AE +S31540017D7080A0604502800004010000007FFFA70744 +S31540017D809010201CC20C202380A060670280000452 +S31540017D90010000007FFFA7019010201DC20C202486 +S31540017DA080A0608902800004010000007FFFA6FBDD +S31540017DB09010201EC20C202580A060AB02800004DA +S31540017DC0010000007FFFA6F59010201FC20C20265F +S31540017DD080A060CD02800004010000007FFFA6EF75 +S31540017DE090102020C20C202780A060EF0280000462 +S31540017DF0010000007FFFA6E990102021C214202037 +S31540017E00832860108330601080A0612302800004C3 +S31540017E10010000007FFFA6E190102022C414202219 +S31540017E208528A010030000118530A01082106167DB +S31540017E3080A0800102800004010000007FFFA6D7D8 +S31540017E4090102023C41420248528A010030000226A +S31540017E508530A010821061AB80A0800102800004B1 +S31540017E60010000007FFFA6CD90102024C4142026D7 +S31540017E708528A010030000338530A010821061EFE1 +S31540017E8080A0800102800005821020307FFFA6C3BA +S31540017E909010202582102030C22C2020030C08D1BE +S31540017EA082106167C404C00080A080010280000581 +S31540017EB0821020317FFFA6B99010202782102031F1 +S31540017EC0C22C2021030C0C5182106167C404C000EE +S31540017ED080A0800102800005821020327FFFA6AF7C +S31540017EE09010202882102032C22C2022030C0C4CE8 +S31540017EF082106267C404C00080A080010280000530 +S31540017F00821020337FFFA6A59010202982102033AE +S31540017F10C22C2023030C0C4C82106233C404C000D3 +S31540017F2080A0800102800005821020347FFFA69B3D +S31540017F309010202A82102034C22C2024030D2AF3CB +S31540017F40821061EFC404202480A0800102800005D4 +S31540017F50821020357FFFA6919010202B821020356C +S31540017F60C22C2025030D0D73821061EFC404202419 +S31540017F7080A0800102800005821020367FFFA687FF +S31540017F809010202C82102036C22C2026030D0D4D38 +S31540017F90821062EFC404202480A080010280000583 +S31540017FA0821020377FFFA67D9010202D821020372A +S31540017FB0C22C2027030D0D4D82106237C4042024A4 +S31540017FC080A0800102800005030000107FFFA67398 +S31540017FD09010202E0300001082106041C2342020F0 +S31540017FE00310104C82106233C404C00080A080018B +S31540017FF002800005030000107FFFA6689010202F25 +S315400180000300001082106243C23420220310105034 +S3154001801082106243C404C00080A080010280000532 +S31540018020030000117FFFA65D901020300300001170 +S3154001803082106045C23420240311114D82106237EB +S31540018040C404202480A080010280000503000011A1 +S315400180507FFFA65290102031030000118210624723 +S31540018060C23420260311115182106247C4042024D0 +S3154001807080A0800102800004010000007FFFA64726 +S315400180809010203281D82000C205A1A080A06000B6 +S315400180900480001B80A5200025100124191001240D +S315400180A0A414A1A0981321AC8810200080A46000DC +S315400180B09B2920100480000C82102000C40300007C +S315400180C085290002840040028528A0028610400DC1 +S315400180D082006001C624000280A0401132BFFFF930 +S315400180E0C4030000C20480008801200180A040042E +S315400180F014BFFFF080A4600080A5200012800028F4 +S31540018100230000107FFFE54490102000808A001173 +S3154001811012BFFFFDC205A1A080A060000480001B24 +S31540018120010000002510012427100124A414A1A058 +S31540018130A614E18C10800006A2102000A204600162 +S3154001814080A040110480001101000000921000112E +S315400181507FFFFDF890100010C204C000901C00087B +S31540018160808A000132BFFFF6C20480007FFFA60B62 +S3154001817090102033C2048000A204600180A0401107 +S3154001818014BFFFF4921000117FFFE52390102000E9 +S315400181909212200F7FFFE5229010200081C7E00850 +S315400181A091E820009FC20000A604E00180A480134C +S315400181B004800008832CE002D00700019FC2000022 +S315400181C0A604E00180A4801314BFFFFC832CE002C7 +S315400181D07FFFE51190102000B616E1A4920A3FFCFC +S315400181E0A8102000901020007FFFE50DB810200058 +S315400181F0B207BFE810800005A610200080A48013B6 +S3154001820024800012A8052001921000137FFFFE482A +S3154001821090100017820A001580A0401512BFFFF882 +S31540018220A604E001C206C000901DC008900A0001E4 +S3154001823080A00008B8673FFF80A4801314BFFFF4F5 +S3154001824092100013A805200180A480140480000424 +S31540018250832D200210BFFFE8EE0640017FFFE4EECA +S3154001826090102000A6100008901020007FFFE4EC3B +S315400182709214E00380A720000280018301000000E0 +S31540018280A73CE013808CE0031280018501000000C9 +S3154001829081D82000250000307FFFE4DF90102000C8 +S315400182A0808A001212BFFFFDAA100008C205A1A0D4 +S315400182B080A060000480000F053FFFBF2510012408 +S315400182C0A6102000A414A1A0921000139010001033 +S315400182D07FFFFDDC94102000C2048000A604E0016B +S315400182E080A0401314BFFFFA92100013053FFFBF51 +S315400182F0821020008410A36884078002C0204002B7 +S315400183008200600480A0607C12BFFFFD0100000076 +S3154001831082102005C224000082102001C2242004BC +S3154001832082102002C224200882102003C224200C7D +S31540018330901000107FFFFD8DA804200480A220002C +S315400183400280014A01000000C204000080A06005CD +S3154001835002800004010000007FFFA59090102006D6 +S315400183607FFFFD829010001080A2200012800199AB +S31540018370C205A1A080A06000048000120100000097 +S3154001838025100124A6102000A414A1A092100013C8 +S31540018390941020007FFFFD9C901000109210001356 +S315400183A0901000147FFFFD9894102000C2048000B5 +S315400183B0A604E00180A0401314BFFFF692100013FB +S315400183C07FFFE4AB90100010A60420207FFFE4A8B5 +S315400183D0901000137FFFE4A6900420407FFFE4A4A1 +S315400183E090042060C205A1A080A0600004800180A5 +S315400183F0B810200025100124A414A1A0AE1020001D +S31540018400921000177FFFFD3D90100010C2048000BE +S31540018410901A200580A00008AE05E001B8673FFF2D +S3154001842080A0401714BFFFF89210001780A72000C4 +S315400184300280016F01000000033FFFBF82106368A5 +S31540018440C41F8001C43FBFA8C207BFA880A0600562 +S315400184501280000601000000C207BFAC80A0600187 +S3154001846002800005C205A1A07FFFA54C90102009FE +S31540018470C205A1A080A06000048000382510012417 +S31540018480B8102000A414A1A0AE102000921000172D +S315400184907FFFFD1A90100014C2048000901A20013B +S315400184A080A00008AE05E001B8673FFF80A04017F5 +S315400184B014BFFFF89210001780A7200112800027F1 +S315400184C0833D6013808860031280002A010000000A +S315400184D0C2042004C224000082102005C2240000E8 +S315400184E090102001D024200482102002C2242008AA +S315400184F082102003C224200C92100011400003B3C5 +S31540018500912A001DA52A2002032EEEEE821063BB9E +S31540018510C22400127FFFFD159010001080A220009A +S315400185201280013701000000C4040012032EEEEE52 +S31540018530A93D600C821063BB80A0800102BFFDFA99 +S31540018540A80D2003901020127FFFA514A93D600CB1 +S3154001855010BFFDF5A80D20037FFFA5109010200A3E +S31540018560833D60138088600302BFFFDA010000008B +S315400185707FFFE42990102000033FFFF08210603F07 +S31540018580920A00017FFFE4269010200092102000FD +S3154001859094102000AA07BFA87FFFFD1B901000156D +S315400185A07FFFE41D901020000303C00092120001DA +S315400185B07FFFE41B90102000C205A1A080A06000AF +S315400185C00480000F8210200125100124A8102000EC +S315400185D0A414A1A092100014901000157FFFFD0A6B +S315400185E094102005C2048000A805200180A04014F3 +S315400185F014BFFFFA9210001482102001C22FBFA8A7 +S315400186000300400082106005C407BFA880A0800116 +S3154001861002800004010000007FFFA4E09010200BBF +S315400186207FFFE3FD90102000833A20068208600315 +S3154001863080A0600102800004010000007FFFA4D7F2 +S315400186409010200C7FFFE3F4901020000303C0003C +S3154001865025000030922A00017FFFE3F190102000AF +S315400186607FFFE3ED90102000808A001212BFFFFDCC +S3154001867092102000941020007FFFFCE3901000151B +S315400186807FFFE3E5901020002503C00092120012FF +S315400186907FFFE3E3901020007FFFE3DF901020008F +S315400186A0808A001202BFFFFDAE100008C205A1A0DC +S315400186B080A060000480001025100124B81020011C +S315400186C0B92F0011A414A1A0B8073FFFA81020009C +S315400186D092100014901000157FFFFCDA9410001CD4 +S315400186E0C2048000A805200180A0401414BFFFFAEF +S315400186F0921000141303C00090102000922DC0095F +S315400187007FFFE3C72503C0007FFFE3C3901020002E +S31540018710808A001212BFFFFD01000000C407BFA8F6 +S31540018720030040008210600580A0800102800004A1 +S31540018730010000007FFFA4999010200D7FFFE3B652 +S3154001874090102000833A20088208600380A06001CF +S3154001875002800005841020117FFFA4909010200F05 +S3154001876084102011861020559010200025000030DD +S31540018770C43FBFF87FFFE3A801000000033C3FFF71 +S315400187800503C0008210633F820A00019010200059 +S315400187907FFFE3A3921040027FFFE39F90102000EA +S315400187A0808A001212BFFFFDAE07BFF87FFFE3BE0E +S315400187B090100017C205A1A080A060000480000FA0 +S315400187C00100000025100124AA07BFFCA414A1A0A2 +S315400187D0A810200092100014901000157FFFFC8A0B +S315400187E094102055C2048000A805200180A04014A1 +S315400187F014BFFFFA921000147FFFE3AB90100017ED +S3154001880080A220110280008180A260557FFFA4636F +S31540018810901020107FFFE38090102000833A2006BD +S315400188208208600380A0600102800004A410000851 +S315400188307FFFA45A90102010133C3FF09010200067 +S315400188409212603F920C80097FFFE375250000304C +S315400188507FFFE37190102000808A001212BFFFFD56 +S31540018860AA10000830BFFF1B7FFFA44C90102005C3 +S31540018870C204000080A0600512BFFEB801000000DE +S3154001888030BFFEB87FFFA44590102001A73CE013FE +S31540018890808CE00302BFFE7F010000007FFFE35EA4 +S315400188A090102000133FFFF0AA1000089212603F7B +S315400188B0920A00097FFFE35A901020007FFFE2B140 +S315400188C0A810001A0303C000133C3FFF901020007C +S315400188D0921263FC920D4009A61020007FFFE350DF +S315400188E09212400192100013901000147FFFFC7207 +S315400188F094102000A604E00180A4801334BFFFFB3E +S3154001890092100013901020001303C0007FFFE34430 +S31540018910921540097FFFE29B010000007FFFE33E85 +S3154001892090102000833A200A8208600380A06001EB +S3154001893002800005250000307FFFA4189010200218 +S31540018940250000307FFFE33490102000808A00121A +S3154001895012BFFFFD0100000001000000920A3FFC2A +S315400189607FFFE32F901020009010001492102000FA +S315400189707FFFFC6094102000010000007FFFE3268A +S3154001898090102000033C3FFF821063FC820A0001E5 +S31540018990901020007FFFE322921060030100000047 +S315400189A07FFFE278010000007FFFE31B901020006B +S315400189B0833A200C8208600380A0600102BFFE3525 +S315400189C0010000007FFFA3F59010200330BFFE3168 +S315400189D07FFFA3F290102007C205A1A080A06000EE +S315400189E034BFFE692510012430BFFE767FFFA3EB1D +S315400189F09010200810BFFE92033FFFBF7FFFA3E701 +S31540018A009010201130BFFEC912BFFF810100000046 +S31540018A1030BFFF819DE3BFA07FFFFC5301000000F3 +S31540018A2013002040B01000089212600F7FFFE2FC55 +S31540018A309010200081C7E00881E800009DE3BFA0B7 +S31540018A407FFFA3C81100412C82102007EC062004A9 +S31540018A50E0062004C2262008AC0DA003AC05A00107 +S31540018A6001000000C02600007FFFA3C59010200A28 +S31540018A700300020084103FFFB8060001C42600012E +S31540018A80A13C2002292AAAAAA00C27FFA81522AA9E +S31540018A902B155555A12C2008AA1561558810001C87 +S31540018AA0C2060001A8084014AA0840159A102000E1 +S31540018AB080A420002280000D9A03600186012020B7 +S31540018AC08410000482102000EA208000E820C000C3 +S31540018AD0820060108400A04080A0401006BFFFFBCA +S31540018AE08600E0409A03600180A5800D14BFFFF126 +S31540018AF0880120043B000200AE102000BA17602016 +S31540018B00BA06001D80A4200022800017AE05E001B0 +S31540018B10A610001CA410001DA2102000C204C00013 +S31540018B2080A0401502800004010000007FFFA39B46 +S31540018B3090102001C204800080A0401422800005CC +S31540018B40A20460107FFFA39590102001A20460103B +S31540018B50A604E04080A4401006BFFFF1A404A04053 +S31540018B60AE05E00180A5801714BFFFE7BA07600490 +S31540018B707FFFA3839010200C2F0008001B1555552D +S31540018B80AE060017092AAAAA9A136155881122AA84 +S31540018B9098100017961020001500020080A42000AE +S31540018BA02280000D9602E001860320048410000C09 +S31540018BB082102000DA208000C820C00082006002B6 +S31540018BC08400A00880A0401006BFFFFB8600E00895 +S31540018BD09602E00180A5800B14BFFFF19803000ABD +S31540018BE02B155555292AAAAAAA156155A81522AAAF +S31540018BF0BA1020003900020080A42000228000170C +S31540018C00BA076001A605E004A4100017A2102000CF +S31540018C10C204800080A040150280000401000000CB +S31540018C207FFFA35E90102003C204C00080A04014C1 +S31540018C3022800005A20460027FFFA3589010200302 +S31540018C40A2046002A404A00880A4401006BFFFF15C +S31540018C50A604E008BA07600180A5801D14BFFFE79E +S31540018C60AE05C01C2F0008001B155555AE15E00476 +S31540018C70092AAAAAAE0600179A136155881122AA93 +S31540018C8098100017961020001500020080A42000BD +S31540018C902280000D9602E00186033FFC8410000C01 +S31540018CA082102000DA208000C820C00082006002C5 +S31540018CB08400A00880A0401006BFFFFB8600E008A4 +S31540018CC09602E00180A5800B14BFFFF19803000ACC +S31540018CD02B155555292AAAAAAA156155A81522AABE +S31540018CE0BA1020003900020080A42000228000171B +S31540018CF0BA076001A605FFFCA4100017A2102000C8 +S31540018D00C204800080A040150280000401000000DA +S31540018D107FFFA32290102004C204C00080A040140B +S31540018D2022800005A20460027FFFA31C901020044C +S31540018D30A2046002A404A00880A4401006BFFFF16B +S31540018D40A604E008BA07600180A5801D14BFFFE7AD +S31540018D50AE05C01C82102005C22620080320000053 +S31540018D60C226000081C7E00881E80000033FFFBF3B +S31540018D70821063609DE380017FFFFAD425200000C5 +S31540018D804000016E2D0000307FFFE2239010200845 +S31540018D90AA1000087FFFE2209010200C7FFFA31B42 +S31540018DA0AE100008912A20047FFFA2F59002200C04 +S31540018DB082102001873D60148608E00F8600E00A94 +S31540018DC0A73D6010A13D6018853DE014A60CE00763 +S31540018DD08408A00FA604E0028400A00AA728401335 +S31540018DE0A00C2003A93DE010A0042001A80D2007F6 +S31540018DF0A12C0003A8052002AA2480108604FFFFA7 +S31540018E00A9284014A33DE01882053FFFA20C600348 +S31540018E10A2046001AA154003A32C4002A424801198 +S31540018E20A41480017FFFE1FC90102000808A001687 +S31540018E3012BFFFFD133FFFBF90100011921263C096 +S31540018E4015155555920780097FFFE1869412A15564 +S31540018E5080A220001280007001000000133FFFBF76 +S31540018E6090100011921263C0152AAAAA920780098E +S31540018E707FFFE1909412A2AA80A220001280006393 +S31540018E80010000007FFFA2E101000000912A2004B9 +S31540018E907FFFA2BB9002200A40000125010000008D +S31540018EA0032AAAAA981062AA8210620090100011A1 +S31540018EB0920C8001941000127FFFE1A796100014D6 +S31540018EC080A220001280004D010000000315555577 +S31540018ED09810615582106100901000119410001293 +S31540018EE0961000147FFFE19C920C800180A2200025 +S31540018EF01280003F010000007FFFA2C40100000074 +S31540018F00912A20047FFFA29E9002200B9010001010 +S31540018F10131555557FFFE1779212615580A22000C6 +S31540018F201280002F0100000090100010132AAAAAF7 +S31540018F307FFFE170921262AA80A220001280002572 +S31540018F40010000007FFFA2B101000000912A200428 +S31540018F507FFFA28B900220099010001092100015FD +S31540018F6094100013172AAAAA7FFFE16E9612E2AA6D +S31540018F7080A2200012800013010000009010001012 +S31540018F809210001594100013171555557FFFE16592 +S31540018F909612E15580A220000280000401000000E3 +S31540018FA07FFFA27E901020087FFFFA48B010200074 +S31540018FB0400000E20100000081C7E00881E80000AE +S31540018FC07FFFA2769010200710BFFFEE9010001091 +S31540018FD07FFFA2729010200630BFFFDB7FFFA26F9A +S31540018FE09010200510BFFFD2901000107FFFA26B9A +S31540018FF09010200430BFFFC17FFFA268901020036C +S3154001900010BFFFB4031555557FFFA264901020028F +S3154001901030BFFF9D7FFFA2619010200110BFFF91DD +S31540019020133FFFBF81C3E0089144400080800000A8 +S31540019030151001209412A1EC9010200092102246A6 +S3154001904081800000010000000100000001000000D5 +S31540019050D00280009122400881C3E008010000004F +S3154001906081800000901020018090200180F0200135 +S315400190701280004B010000000100000001000000C9 +S31540019080010000008090200180F8200112800044F8 +S315400190900100000001000000010000000100000085 +S315400190A08090200180FA3FFF010000001680003CBD +S315400190B00100000001000000010000000100000065 +S315400190C08180000090102001809020010100000065 +S315400190D080D0200112800032010000000100000012 +S315400190E0010000000100000080D220010280002C16 +S315400190F00100000080D23FFF1680002901000000D8 +S3154001910080DA3FFF9340000080A27FFF1280002457 +S315400191100100000080D23FFF934800009332601463 +S31540019120920A600F80A260081280001D01000000B3 +S315400191308180000090102001945220049452A00492 +S315400191409452A00496A2A04012800015010000008E +S31540019150818000009010200280A000003280001023 +S315400191609052000880A220021280000D01000000EA +S31540019170818000009010200280A0000001000000C4 +S31540019180328000079052000880A22002128000041B +S315400191900100000081C3E0089010200181C3E0086E +S315400191A0901000001315555592126155A582400045 +S315400191B0010000000100000001000000954480000C +S315400191C080A2400A1280004301000000923A40000A +S315400191D0A5824000010000000100000001000000DE +S315400191E09544800080A2400A1280003A01000000A6 +S315400191F01100003F901223FFA580000081800000EE +S3154001920001000000010000000100000093F23FFF51 +S315400192109A10000993F23FFF93F23FFF93F23FFF0B +S3154001922093F23FFF93F23FFF93F23FFF93F23FFFEB +S315400192309940000097448000153FFC009412A00815 +S3154001924080A2400A1280002380A2400B1280002196 +S3154001925080A320071280001F113FFF80901220013A +S3154001926080A340081280001B1100003F901223FF8B +S31540019270A58000008180000001000000010000007F +S315400192800100000093FA3FFF93FA3FFF93FA3FFF35 +S3154001929093FA3FFF93FA3FFF93FA3FFF93FA3FFF5B +S315400192A093FA3FFF994000009744800080A26008EE +S315400192B01280000880A260081280000680A3200068 +S315400192C0128000040100000081C3E00890102001D3 +S315400192D081C3E008901000008180000090102002B8 +S315400192E080A00000328000109072000880A2200207 +S315400192F01280000D010000008180000090102002C4 +S3154001930080A0000001000000328000079072000832 +S3154001931080A22002128000040100000081C3E008FF +S315400193209010200181C3E00890100000C0A00040C9 +S3154001933081C3E00801000000110020409012200F77 +S31540019340D0A0004081C3E008010000009DE3BFA01A +S315400193507FFFE0B190102008A21000087FFFE0AE29 +S315400193609010200CA0100008C0A00040833C60145F +S315400193708208600F8200600A913C6018900A2003BF +S31540019380900220017FFFE01B912A0001833C2014BB +S315400193908208600F8200600A913C2018900A2003DF +S315400193A0900220017FFFE021912A00017FFFF947CA +S315400193B001000000110020409012200FD0A0004073 +S315400193C081C7E00881E80000981200098182000007 +S315400193D09AAB2FFF02800025988800009923000947 +S315400193E09923000999230009992300099923000922 +S315400193F09923000999230009992300099923000912 +S315400194009923000999230009992300099923000901 +S3154001941099230009992300099923000999230009F1 +S3154001942099230009992300099923000999230009E1 +S3154001943099230009992300099923000999230009D1 +S3154001944099230009992300099923000999230009C1 +S3154001945099230009992300099923000999230000BA +S3154001946081C3E0089140000099230009992300092E +S315400194709923000999230009992300099923000991 +S315400194809923000999230009992300099923000981 +S315400194909923000999230009992300009B40000064 +S315400194A0992B200C9B33601481C3E0089013400C28 +S315400194B01080000B8610200080924008168000081C +S315400194C086100008809240001680000480920000B9 +S315400194D01680000392200009902000089A924000CD +S315400194E0128000059610000891D0200281C3E00841 +S315400194F09010000080A2C00D0A80009594100000D3 +S315400195000302000080A2C0010A80002898100000D2 +S3154001951080A340011A80000D841020019B2B60041A +S3154001952010BFFFFC980320019A83400D1A80000763 +S315400195308400A001832860049B3360019A034001A3 +S31540019540108000078420A00180A3400B0ABFFFF7CB +S3154001955001000000028000020100000084A0A00179 +S3154001956006800076010000009622C00D941020016D +S315400195701080000A01000000952AA001068000051E +S315400195809B3360019622C00D108000049402A00115 +S315400195909602C00D9422A00184A0A00116BFFFF738 +S315400195A08092C000308000659B2B600480A3400BF5 +S315400195B008BFFFFE988320010280006598232001A1 +S315400195C08092C000952AA0040680002F9B3360013B +S315400195D096A2C00D068000179B33600196A2C00D6E +S315400195E00680000B9B33600196A2C00D06800005E4 +S315400195F09B33600196A2C00D108000509402A00FCB +S315400196009682C00D1080004D9402A00D9682C00D29 +S31540019610068000059B33600196A2C00D108000476D +S315400196209402A00B9682C00D108000449402A009BA +S315400196309682C00D0680000B9B33600196A2C00D39 +S31540019640068000059B33600196A2C00D1080003B49 +S315400196509402A0079682C00D108000389402A0059E +S315400196609682C00D068000059B33600196A2C00D0F +S31540019670108000329402A0039682C00D1080002F04 +S315400196809402A0019682C00D068000179B336001AB +S3154001969096A2C00D0680000B9B33600196A2C00DB9 +S315400196A0068000059B33600196A2C00D1080002301 +S315400196B09402BFFF9682C00D108000209402BFFD28 +S315400196C09682C00D068000059B33600196A2C00DAF +S315400196D01080001A9402BFFB9682C00D10800017BD +S315400196E09402BFF99682C00D0680000B9B33600140 +S315400196F096A2C00D068000059B33600196A2C00D5F +S315400197001080000E9402BFF79682C00D1080000BA8 +S315400197109402BFF59682C00D068000059B33600119 +S3154001972096A2C00D108000059402BFF39682C00D2B +S31540019730108000029402BFF198A3200116BFFFA238 +S315400197408092C000268000029602C0098090C00027 +S31540019750268000029620000B81C3E0089010000B82 +S3154001976092100008941020009010200096102000BE +S315400197708213C000400000429E10400001000000DC +S315400197809DE3BFA080A6A00F9A100018881000196B +S31540019790088000068610001A8216401880886003E9 +S315400197A00280000D8410001980A0E00002800008AC +S315400197B082102000C4090001C42B400182006001CF +S315400197C080A0400332BFFFFDC409000181C7E00804 +S315400197D081E8000082100018DA008000DA2040009B +S315400197E08600FFF080A0E00FDA00A004DA206004D2 +S315400197F0DA00A008DA206008DA00A00CDA20600C52 +S315400198008400A01018BFFFF582006010B406BFF0B7 +S315400198109B36A004832B60049A036001B426800121 +S315400198209B2B600480A6A0038806400D8610001A73 +S3154001983008BFFFDE9A06000D82102000C401000118 +S31540019840C4234001820060048426800180A0A003D5 +S3154001985038BFFFFCC4010001B406BFFC8336A00239 +S315400198608728600282006001862680038328600281 +S315400198708801000110BFFFCD9A0340019DE3BFA0BF +S3154001988021100123400005F7901420EC03100070CD +S31540019890E2006090D004614880A220002280003D11 +S315400198A09004614CC202200480A0601F1480001EF7 +S315400198B00100000080A620000280001284006002A0 +S315400198C0C4022004820060228600A04289286002E8 +S315400198D08728E002C2022188F4220004F62200030E +S315400198E0861020018728C00282104003C2222188A7 +S315400198F080A62002028000198210000284006002C4 +S315400199008528A00282006001C2222004F2220002C0 +S31540019910B0102000400005E9901420EC81C7E00812 +S3154001992081E80000400000289010219080A220008C +S315400199302280001A901420ECC2046148C222000021 +S31540019940D0246148C0222004C0222188C022218C13 +S3154001995010BFFFD982102000C202218C861040031D +S3154001996082100002840060028528A002C622218C52 +S3154001997082006001F2220002C2222004B0102000BF +S31540019980400005CE901420EC81C7E00881E8000034 +S3154001999010BFFFC5D0246148400005C8B0103FFF45 +S315400199A081C7E00881E800009210000803100120F9 +S315400199B0D00062208213C000400002179E10400072 +S315400199C0010000009210000803100120D00062201F +S315400199D08213C000400000039E10400001000000B9 +S315400199E09DE3BFA0841020008206600B80A0601614 +S315400199F008800004A0102010A0087FF88534201F9D +S31540019A0080A400190A8000468088A0FF1280004485 +S31540019A1001000000400001AF9010001880A421F71A +S31540019A20188000418334200923100121A214637850 +S31540019A3082044010E400600C80A480010280010F82 +S31540019A4099342003C604A004C404A00CC204A0088F +S31540019A508608FFFC86048003C800E00488112001C3 +S31540019A60C220A008C820E004C420600C9010001851 +S31540019A7040000192B004A00881C7E00881E80000D7 +S31540019A80E6046008E804E004A80D3FFC82250010C6 +S31540019A9080A0600F148000D280A40014031001231B +S31540019AA02F100122EA006160C205E384AA05601015 +S31540019AB080A07FFF02800004AA054010AA056FFF1F +S31540019AC0AA0D7000901000184000018892100015F0 +S31540019AD080A23FFF02800009A41000088404C0143C +S31540019AE080A08008088000EC2D10012380A440133B +S31540019AF0028000EAC205A16CC2046008C400600489 +S31540019B008408BFFC8220801080A0600F148001224F +S31540019B1080A40002400001699010001881C7E00846 +S31540019B2091E820009934200380A060000280000F54 +S31540019B30872B200380A06004088000929934200678 +S31540019B409800605B80A0601408800008872B200382 +S31540019B5080A060541880011380A061549934200C70 +S31540019B609803206E872B200323100121A2146378CA +S31540019B7086044003E400E00C80A0C0123280000B52 +S31540019B80C404A004108000109803200136800068A8 +S31540019B90C604A00CE404A00C80A0C0122280000AD6 +S31540019BA098032001C404A0048408BFFC82208010CD +S31540019BB080A0600F04BFFFF680A0600098033FFFBE +S31540019BC098032001071001218610E380E400E00894 +S31540019BD080A0C0122280002AC2046004C404A004EA +S31540019BE08408BFFC8220801080A0600F1480008A08 +S31540019BF080A06000C620E00C16800059C620E0080F +S31540019C0080A0A1FF288000628530A0038330A0098F +S31540019C1080A06004188000E98800605B8930A00656 +S31540019C20880120389B2920039A04400DC20360080D +S31540019C3080A0400D32800008C8006004108000E911 +S31540019C40DA04600480A3400122800008C400600C4D +S31540019C50C800600488093FFC80A080042ABFFFFA3F +S31540019C60C2006008C400600CC424A00CC224A00831 +S31540019C70E420600CE420A008C2046004853B200275 +S31540019C80881020018929000280A040042ABFFF7E56 +S31540019C90E6046008808840042280004B980B3FFC14 +S31540019CA0952B20039610000C9404400A9A10000A42 +S31540019CB0E403600C80A340123280000BC404A0046C +S31540019CC0108000589602E00136800019C604A00CA7 +S31540019CD0E404A00C80A34012228000529602E001C7 +S31540019CE0C404A0048408BFFC8220801080A0600FB9 +S31540019CF004BFFFF680A06000DA04A00CC804A008E7 +S31540019D0084048010A0142001C8236008DA21200CA5 +S31540019D10C420E00CC420E008E024A004C220800155 +S31540019D20C620A00810800010C620A00CC204A008BE +S31540019D3084048002C800A00488112001C220E008E2 +S31540019D40C820A004C620600C90100018400000DB1B +S31540019D50B004A00881C7E00881E8000084048002BD +S31540019D60C200A00482106001C220A0049010001815 +S31540019D70400000D2B004A00881C7E00881E8000095 +S31540019D809803203810BFFF79872B20038928A00329 +S31540019D9088044004DA012008D6046004C824A00CD3 +S31540019DA0DA24A0088538A00282102001E423600C41 +S31540019DB083284002E42120088210400B10BFFFB0E7 +S31540019DC0C2246004892920018088400402BFFFFE25 +S31540019DD09803200410BFFFB4952B200338BFFF31F1 +S31540019DE003100123E404600884048010A0142001B8 +S31540019DF082106001E024A004C220A0049010001843 +S31540019E00C4246008400000ADB004A00881C7E00842 +S31540019E1081E800008404801010BFFFBEA014200119 +S31540019E20808AE00312BFFFA39A04A008808B200317 +S31540019E300280009C8202BFF8D400600880A28001A3 +S31540019E4022BFFFFB98033FFFC2046004892920011A +S31540019E5080A1000118BFFF0B80A1200022BFFF0A8D +S31540019E60E604600880890001228000928929200148 +S31540019E7010BFFF8C9810000B8204A008E400600C10 +S31540019E8080A0401202BFFF509803200210BFFEEF90 +S31540019E90C604A004C205A16C8205400180A08012BF +S31540019EA002800067C225A16CC605E38480A0FFFF3E +S31540019EB02280006B0310012282048001842040022B +S31540019EC0C425A16C848CA00702800006030000040F +S31540019ED08210200882204002A40480018220700062 +S31540019EE0AA04801590100018AA0D6FFFAA204015EC +S31540019EF04000007E9210001580A23FFF0280006064 +S31540019F008410200184220012840080158410A0014F +S31540019F10C205A16C82054001C225A16CC424A004DE +S31540019F2080A4401302800010E424600880A5200F1D +S31540019F300880003A84053FF48408BFF88604C002CD +S31540019F40C804E0048809200188108004C824E0047C +S31540019F5088102005C820E00880A0A00F1880004284 +S31540019F60C820E00405100123C600A16480A0400377 +S31540019F7038800002C220A16405100123C600A168F1 +S31540019F8080A0400338BFFEDDC220A16810BFFEDCC1 +S31540019F90C204600828BFFF95E404600830BFFEDEB6 +S31540019FA01880001780A065549934200F98032077B4 +S31540019FB010BFFEEE872B200380A0601408BFFF1B55 +S31540019FC09B29200380A060541880001780A061540B +S31540019FD08930A00C8801206E10BFFF149B292003F5 +S31540019FE08939200284102001852880048413400287 +S31540019FF0C424600410BFFF1D84100001861023F0A5 +S3154001A00018BFFEDA9810207E993420129803207CDE +S3154001A01010BFFED6872B20038210200110BFFEB74A +S3154001A020C224A0041880001880A065548930A00F6E +S3154001A0308801207710BFFEFD9B2920038088AFFF52 +S3154001A04012BFFF9BC605E384C4046008860540141D +S3154001A0508610E00110BFFFC4C620A00410BFFF9ABE +S3154001A060E42063849204E0084000006B90100018DD +S3154001A0700310012310BFFFBCC200616C10BFFFA5D6 +S3154001A080AA1020009A1023F018BFFEE88810207EFF +S3154001A0908930A0128801207C10BFFEE49B29200351 +S3154001A0A0C20460048228400410BFFF68C2246004D1 +S3154001A0B010BFFF6D9602E004111001229012238811 +S3154001A0C08213C000400003FD9E10400001000000C5 +S3154001A0D011100122901223888213C000400003E12F +S3154001A0E09E104000010000009DE3BFA02110012405 +S3154001A0F0901000194000015DC02421B080A23FFFAD +S3154001A10002800004C20421B081C7E00891E800083A +S3154001A11080A0600002BFFFFD01000000C2260000D2 +S3154001A12081C7E00891E800089DE3BFA07FFFFFE9F2 +S3154001A1309010001821100121A0142378C204200890 +S3154001A140E2006004A20C7FFC82046FEFB22040194A +S3154001A150B20E7000B206700080A66FFF048000093F +S3154001A160901000187FFFFFE192102000C2042008E2 +S3154001A1708200401180A20001028000079010001861 +S3154001A180901000187FFFFFCDB010200081C7E00876 +S3154001A19081E800007FFFFFD59220001980A23FFF92 +S3154001A1A00280000EA2244019C4042008A2146001B2 +S3154001A1B003100123E220A00490100018B0102001E2 +S3154001A1C0C400616CB22080197FFFFFBCF220616C34 +S3154001A1D081C7E00881E80000901000187FFFFFC3A7 +S3154001A1E092102000C20420088422000180A0A00F02 +S3154001A1F004BFFFE407100122C600E3849022000356 +S3154001A200071001238410A001D020E16C10BFFFDDAF +S3154001A210C42060049DE3BFA080A660000280005078 +S3154001A220010000007FFFFFAB9010001884067FF805 +S3154001A230D800A004820B3FFE09100121860080014F +S3154001A24088112378DA00E004D601200880A2C003F1 +S3154001A250028000639A0B7FFCDA20E004808B2001A8 +S3154001A2601280000E98102000D8067FF88420800CBA +S3154001A2708200400CD600A0089801200880A2C00C9C +S3154001A2800280000698102001D400A00CD422E00CD4 +S3154001A29098102000D622A0089600C00DD602E004F0 +S3154001A2A0808AE0013280000A8610600180A3200086 +S3154001A2B00280002D8200400DDA00E008C600E00C65 +S3154001A2C0C623600CDA20E00886106001C2208001B6 +S3154001A2D080A3200012800020C620A00480A061FF38 +S3154001A2E028800030833060038730600980A0E00415 +S3154001A2F0188000529800E05B993060069803203838 +S3154001A3009B2B20039A01000DC603600880A0C00D57 +S3154001A31032800008C800E00410800052DA012004AF +S3154001A32080A3400322800008C200E00CC800E0047C +S3154001A33088093FFC80A040042ABFFFFAC600E00816 +S3154001A340C200E00CC220A00CC620A008C420E00C2C +S3154001A350C42060087FFFFF5981E8000081C7E008FB +S3154001A36081E80000DA00E008171001219612E38027 +S3154001A37080A3400B32BFFFD3C600E00CC423600C60 +S3154001A380C4236008C2208001DA20A008821060013F +S3154001A390DA20A00CC220A0047FFFFF4881E800001C +S3154001A3A08728600386010003DA00E008C620A00C76 +S3154001A3B0DA20A008D8012004C423600CC420E00898 +S3154001A3C083386002841020018328800182130001B2 +S3154001A3D0C22120047FFFFF3981E80000808B2001E4 +S3154001A3E01280000982034001D8067FF88420800C40 +S3154001A3F0DA00A00CC600A0088200400CC623600803 +S3154001A400DA20E00CC421200886106001C620A00491 +S3154001A41005100122C400A38080A040020ABFFFCEDE +S3154001A42003100123D20061607FFFFF4090100018A6 +S3154001A4307FFFFF2281E8000080A0E01408BFFFB241 +S3154001A4409B2B200380A0E0541880000D80A0E1548E +S3154001A4509930600C9803206E10BFFFAB9B2B2003F5 +S3154001A460993B2002821020018328400C821340012F +S3154001A470C221200410BFFFB48210000318800006D9 +S3154001A48080A0E5549930600F9803207710BFFF9E56 +S3154001A4909B2B20039A1023F018BFFF9B9810207E18 +S3154001A4A0993060129803207C10BFFF979B2B2003A5 +S3154001A4B09DE3BFA080A620000280001F031001205B +S3154001A4C0E406214880A4A00022800014C206203C54 +S3154001A4D0C204A004A0807FFF2C80000CE40480000D +S3154001A4E0A2006001A32C6002A2048011C2044000B4 +S3154001A4F09FC04000A2047FFCA0843FFF3CBFFFFDFC +S3154001A500C2044000E404800080A4A00032BFFFF2F0 +S3154001A510C204A004C206203C80A060000280000460 +S3154001A520010000009FC040009010001881C7E0085C +S3154001A53081E8000010BFFFE3F00062209DE3BFA069 +S3154001A540D206400080A260000280000401000000A3 +S3154001A5507FFFFFFB901000187FFFFF2F81E800006F +S3154001A560010000009DE3BFA003100120C20062204C +S3154001A57080A600010280003201000000D206204C74 +S3154001A58080A2600022800016E0062148A210200029 +S3154001A590E002401180A420002280000BA204600446 +S3154001A5A092100010901000187FFFFF1BE00400007E +S3154001A5B080A4200012BFFFFC92100010D206204C4E +S3154001A5C0A204600480A4603C32BFFFF3E002401164 +S3154001A5D07FFFFF1190100018E006214880A420005B +S3154001A5E02280000ED2062054A206214C80A40011DE +S3154001A5F02280000AD20620549210001090100018B2 +S3154001A6007FFFFF05E004000080A4401012BFFFFC5D +S3154001A61092100010D206205480A2600022800005CC +S3154001A620C20620387FFFFEFC90100018C206203873 +S3154001A63080A0600032800004C206203C81C7E00849 +S3154001A64081E800009FC0400090100018F20622E009 +S3154001A65080A6600002BFFFFA010000007FFFFFB83D +S3154001A66081E800000100000005100124C200A1B4E8 +S3154001A67080A060002280000603100125900040085A +S3154001A680D020A1B481C3E008901000018210616816 +S3154001A69090004008C220A1B4D020A1B481C3E008F3 +S3154001A6A090100001A7500000AE1000018334E00174 +S3154001A6B029100123E805203CA92CC014821500016C +S3154001A6C081E000008190400001000000010000008F +S3154001A6D001000000E03BA000E43BA008E83BA010DD +S3154001A6E0EC3BA018F03BA020F43BA028F83BA0305F +S3154001A6F0FC3BA03881E800008210001781C440006D +S3154001A70081CC800001000000010000000100000032 +S3154001A710A7500000A92CE0012B100123EA05603C5B +S3154001A720AB34C015AA1540148195400001000000C4 +S3154001A730010000000100000081E8000081E80000FE +S3154001A740E01BA000E41BA008E81BA010EC1BA0180E +S3154001A750F01BA020F41BA028F81BA030FC1BA0383E +S3154001A76081E0000081E0000081C4400081CC80008E +S3154001A770A75000002910006CADC5231C0100000044 +S3154001A78027100123A614E018E024C000818C202064 +S3154001A7900100000001000000010000009DE3BFA090 +S3154001A7A09DE3BFA09DE3BFA09DE3BFA09DE3BFA0E6 +S3154001A7B09DE3BFA09DE3BFA081E8000081E80000C2 +S3154001A7C081E8000081E8000081E8000081E800009E +S3154001A7D081E8000027100123A614E018C024C00018 +S3154001A7E0E203A068A4046004E223A064E423A06811 +S3154001A7F0108002F1AC10000029100122A81523FC9B +S3154001A800C2252000C8252004E0252010E225201479 +S3154001A810E4252018E825201C81E800008348000033 +S3154001A82082106F0081886020010000000100000055 +S3154001A8300100000009100123C801203C81E000000D +S3154001A8408821200180A920FF028000030100000029 +S3154001A8500100000080A1000012BFFFF901000000C5 +S3154001A86009100123C801203C81E8000080A920FF8E +S3154001A8700280000301000000010000008821200140 +S3154001A88080A1000012BFFFF90100000081E0000035 +S3154001A89029100122A81523FCC8052004C205200061 +S3154001A8A0E0052010E2052014E4052018C025201CEF +S3154001A8B0818C200001000000010000000100000021 +S3154001A8C081C4800081CCA004A0142F00818C00009B +S3154001A8D001000000010000000100000081C4800069 +S3154001A8E081CCA00480A6600212800005A8142F0026 +S3154001A8F0818D0000B01420203080001F80A66003A7 +S3154001A90012800006A80E2F00AA2C2F00A81540146D +S3154001A910818D00003080001880A6600412800008F6 +S3154001A920A9480000A8152040818D000001000000C3 +S3154001A93001000000010000003080000F80A6600584 +S3154001A94012800008A9480000A82D2040818D0000F2 +S3154001A95001000000010000000100000030800006F7 +S3154001A96080A66006128000030100000030BFFFA3ED +S3154001A97091D0200081C4800081CCA0049210200394 +S3154001A98081C3E00891D020029210200281C3E008E1 +S3154001A99091D020029210200681C3E00891D0200276 +S3154001A9A081C3E0080100000081C3E0080100000006 +S3154001A9B081C3E00801000000AE25A010A7500000A9 +S3154001A9C02D10006AAC15A1CC2910006D81C520C49B +S3154001A9D0010000001110012390122024D202000030 +S3154001A9E092026001D2220000932DE008902C2F00A4 +S3154001A9F092120009111001239012201CD00200006E +S3154001AA0080A000082280000292126F00818A602095 +S3154001AA100100000001000000010000009010001735 +S3154001AA20400000379203A06092142F00818A602073 +S3154001AA300100000001000000010000001110012387 +S3154001AA4090122024D202000092226001D2220000FC +S3154001AA50108002BCAC1000009DE3BFA01B10012377 +S3154001AA60892E60029A13619480A6601F821020008D +S3154001AA7014800017C6034004B32E60041910012345 +S3154001AA8080A0E000981322140280000D8406400C39 +S3154001AA9080A0C00212800006821000031080000EC2 +S3154001AAA0C206400C2280000CC206400CC200600C5B +S3154001AAB080A0600012BFFFFC80A08001C423400437 +S3154001AAC0F026400CC620A00C8210200081C7E00869 +S3154001AAD091E80001F026400C81C7E00891E80001A9 +S3154001AAE0912A20020310012382106194C400400878 +S3154001AAF0C422600C81C3E008D22040089DE3BFA078 +S3154001AB00051001238210A02CC200600480A04018C9 +S3154001AB1022800040C400A02C80A620002280000292 +S3154001AB20B0100001A32E200203100123821061946C +S3154001AB30E000401180A42000028000342910012445 +S3154001AB402D1001242B10012427100124A8152014AF +S3154001AB50AC15A098AA15609C1080001DA614E0189B +S3154001AB60A41000138400A001C4248011C4058000F0 +S3154001AB7080A0A00022800006D20420089FC0800049 +S3154001AB8001000000C2040000D20420089010001801 +S3154001AB909FC0400094100019C205400080A060008B +S3154001ABA022800005C20480119FC0400001000000C0 +S3154001ABB0C204801182007FFFC2248011E004200C70 +S3154001ABC080A420000280001101000000C2040000A0 +S3154001ABD080A0600022BFFFFBE004200CC4050000FA +S3154001ABE080A0A00012BFFFDFC404C01180A0A00056 +S3154001ABF002BFFFDDA4100013E004200C80A4200056 +S3154001AC0032BFFFF4C204000081C7E00881E80000BA +S3154001AC10F000A0C010BFFFC1B00E201F8C10000F66 +S3154001AC20A74800008B34E0188A09600F80A16003B1 +S3154001AC3002800002108000399010200192102006F7 +S3154001AC40400002760100000080A000080280003327 +S3154001AC5001000000C2022010113FFC00820840089A +S3154001AC60110003FC8410400890100002921020014C +S3154001AC709410200C4000027F0100000080A00008D3 +S3154001AC8002800026010000004000028F9210000160 +S3154001AC900B1001238A116034D2214000901000022A +S3154001ACA09210200194102011400002720100000010 +S3154001ACB080A00008028000190100000040000282C5 +S3154001ACC092100001920260100B1001238A11602834 +S3154001ACD0D221400090100002921020019410200DC4 +S3154001ACE0400002640100000080A000080280000BC1 +S3154001ACF00100000040000274921000010B10012374 +S3154001AD008A11602CD2214000D40260109532A010E5 +S3154001AD10940AA00FD42160049E10000681C3E00866 +S3154001AD2001000000031001238210604882102001B7 +S3154001AD3091D0200081C3E008010000009DE3BFA03F +S3154001AD40051001248410A1B8C200A09080A0600023 +S3154001AD50028000278600A0941080000688102000FB +S3154001AD608801200180A100011A8000210100000014 +S3154001AD70D800C000DA0300009733601880A2C018DB +S3154001AD8012BFFFF88600E0049733600C960AEFFF86 +S3154001AD9080A2C01932BFFFF48801200180A6A0001D +S3154001ADA0028000039A0B600FDA268000C20320045A +S3154001ADB0860120648728E00284008003C400A00441 +S3154001ADC03100003F073FFC00B01623F0B0084018A1 +S3154001ADD082084003B12E20048330600CB00E00017E +S3154001ADE0B016000281C7E00881E8000081C7E0088B +S3154001ADF091E820009DE3BFA003100124C40060AC8C +S3154001AE0080A0A00012800078841020012310012424 +S3154001AE10C42060AC92102000A01461B8941023A401 +S3154001AE20400002379010001084102000821030003C +S3154001AE308728A00288040003C600400080A0E000E5 +S3154001AE400280000480A070E0C22120048400A00199 +S3154001AE5032BFFFF882006020C42461B8DA0420487A +S3154001AE6082103800840360128528A00286040002FD +S3154001AE70C400400080A0A0000280000480A078E0C9 +S3154001AE80C220E0049A03600112BFFFF782006020EE +S3154001AE9080A360000480003FDA2420482500003F5B +S3154001AEA08404204CA414A3F09E102000821020009C +S3154001AEB010800005230003FC80A340010480003577 +S3154001AEC08400A004C6008000C800C000D600E0107F +S3154001AED08731201880A0E00132BFFFF8820060016F +S3154001AEE08931200C88092FFF80A1200632BFFFF34C +S3154001AEF082006001D804209080A3203F3480000264 +S3154001AF00861020008088E0FF2280001E82006001BA +S3154001AF10A60AC01288102000A72CE010A60AC0136A +S3154001AF208614C011D600C00080A2E0000280001144 +S3154001AF3088012001D60420909002E0249202E06428 +S3154001AF409402E0A4912A2002932A60029004000808 +S3154001AF5092040009952AA0029404000A9602E0018F +S3154001AF60C6222004E6226004DE22A004D6242090D4 +S3154001AF7080A1200F0480001E9803200182006001F9 +S3154001AF809E03E00180A3400114BFFFCF8400A004CB +S3154001AF90901020019210200D941020007FFFFF6831 +S3154001AFA02110012380A2200032800002D024202CCF +S3154001AFB09010200192102011151001247FFFFF608F +S3154001AFC09412A0A880A2200002800003031001244D +S3154001AFD0D02060A4C204202C80A0600032800002F0 +S3154001AFE0C020604081C7E00881E8000080A3203F7F +S3154001AFF034BFFFE48200600110BFFFCB8600E0084A +S3154001B0009DE3BFA003100124C20060B08410001864 +S3154001B01080A0600002800006B0102000901000025F +S3154001B0209FC0400092100019B010000881C7E00887 +S3154001B03081E800009DE3BFA003100124C20060B473 +S3154001B04080A0600002800005841020009FC040005F +S3154001B050901000188410000881C7E00891E80002AA +S3154001B0609DE3BFA003100124C20060BC80A0600024 +S3154001B07002800005841020009FC0400090100018F7 +S3154001B0808410000881C7E00891E800029DE3BFA053 +S3154001B09003100124C20060B880A060000280000550 +S3154001B0A0841020009FC040009010001884100008B2 +S3154001B0B081C7E00891E800029DE3BFA00310012487 +S3154001B0C0C20060C080A0600002800005841020009C +S3154001B0D09FC04000901000188410000881C7E00806 +S3154001B0E091E800029DE3BFA003100124C20060C4A1 +S3154001B0F080A0600002800005841020009FC04000AF +S3154001B100901000188410000881C7E00891E80002F9 +S3154001B1109DE3BFA003100124C20060C880A0600067 +S3154001B12002800005841020009FC040009010001846 +S3154001B1308410000881C7E00891E800029DE3BFA0A2 +S3154001B14003100124C20060CC8410001880A0600066 +S3154001B15002800006B0102000901000029FC04000FF +S3154001B16092100019B010000881C7E00881E800007C +S3154001B170010000000310006C821062289FC040004D +S3154001B1800100000003100000821060008198400019 +S3154001B1900310006C821062909FC0400001000000C5 +S3154001B1A00310006C821062189FC04000010000002D +S3154001B1B08B4440008B31601C80A140001280000608 +S3154001B1C0010000007FFFFE96010000007FFF99B25B +S3154001B1D0010000009C23A0407FFF978A01000000E8 +S3154001B1E08210200191D020000100000029000004B6 +S3154001B1F0A68C001432800003A02C001491D02000AC +S3154001B200818C0000010000000100000001000000E7 +S3154001B21081C4800081CCA00481C3E0080100000004 +S3154001B22081C1E00801000000A74800008B34E01806 +S3154001B2308A09600380A160031280000801000000B2 +S3154001B24021100123A0142044A2102003E22400006F +S3154001B2508B444000108000018A09601F271001239A +S3154001B260A614E03CCA24C0008A01600127100123CC +S3154001B270A614E038CA24C00027100123A614E040D2 +S3154001B2808A216002CA24C00081C3E008010000008F +S3154001B29081C3E00801000000834800008330601844 +S3154001B2A08208600380A0600312800006010000004E +S3154001B2B0834440000500000882284002A3804000E4 +S3154001B2C0881000000910006C81C121740100000042 +S3154001B2D09DE3BFA02110007023100070A014203000 +S3154001B2E0A214603080A400111A80000B01000000F6 +S3154001B2F0D004000080A2200002800004A0042004A3 +S3154001B3009FC200000100000080A400112ABFFFFA7D +S3154001B310D004000081C7E00881E80000AA27A0B058 +S3154001B320E0256060E2256064E4256068C2256074BA +S3154001B330C43D6078C83D6080CC3D60888540000052 +S3154001B340C425606CF03D6090F43D6098F83D60A086 +S3154001B350FC3D60A8A8102001A92D0010808D001386 +S3154001B36002800013010000008534E001071001232B +S3154001B370C600E03CA72CC0038414C0028408A0FF89 +S3154001B38081E000008190A000E03BA000E43BA008E2 +S3154001B390E83BA010EC3BA018F03BA020F43BA028D2 +S3154001B3A0F83BA030FC3BA03881E8000081C5A008ED +S3154001B3B09C100015051001248410A0A0C400800033 +S3154001B3C080A0800002800004010000009FC0800030 +S3154001B3D09203A060818C20008210200283284010B5 +S3154001B3E005100123C400A038853040028210400276 +S3154001B3F08550000080888001028000208328A001BA +S3154001B40007100123C600E03C8530800382104002CC +S3154001B410820860FF81906000C203A06C8180600059 +S3154001B420F01BA090F41BA098F81BA0A0FC1BA0A8A1 +S3154001B430C203A074C41BA078C81BA080CC1BA088E3 +S3154001B440E003A060E203A064E403A06881E8000091 +S3154001B450E01BA000E41BA008E81BA010EC1BA018F1 +S3154001B460F01BA020F41BA028F81BA030FC1BA03821 +S3154001B4701080000F81E00000C203A06C8180600053 +S3154001B480F01BA090F41BA098F81BA0A0FC1BA0A841 +S3154001B490C203A074C41BA078C81BA080CC1BA08883 +S3154001B4A0E003A060E203A064E403A068818C20006D +S3154001B4B001000000010000000100000081C44000BD +S3154001B4C081CC8000AA27A0B0C2256074C43D6078B3 +S3154001B4D0C83D6080CC3D608885400000C425606CD5 +S3154001B4E0A8102001A92D0010808D001302800013A1 +S3154001B4F0010000008534E00107100123C600E03C4D +S3154001B500A72CC0038414C0028408A0FF81E0000078 +S3154001B5108190A000E03BA000E43BA008E83BA010DE +S3154001B520EC3BA018F03BA020F43BA028F83BA03010 +S3154001B530FC3BA03881E8000081C5A0089C1000159D +S3154001B540051001248410A0A0C400800080A08000C2 +S3154001B55002800004010000009FC080009203A060A9 +S3154001B560818C20008210200283284010051001237F +S3154001B570C400A03885304002821040028550000048 +S3154001B58080888001028000198328A00107100123C9 +S3154001B590C600E03C8530800382104002820860FF8D +S3154001B5A081906000C203A06C81806000C203A074D8 +S3154001B5B0C41BA078C81BA080CC1BA08881E80000D2 +S3154001B5C0E01BA000E41BA008E81BA010EC1BA01880 +S3154001B5D0F01BA020F41BA028F81BA030FC1BA038B0 +S3154001B5E01080000881E00000C203A06C81806000E9 +S3154001B5F0C203A074C41BA078C81BA080CC1BA08822 +S3154001B600818C2000010000000100000001000000C3 +S3154001B61081C4400081CC8000821000089A10380015 +S3154001B62096102000912AE00598034008D40340086B +S3154001B6309132A01880A20001328000089602E001F2 +S3154001B6409132A00C900A2FFF80A2000902800007C8 +S3154001B6509410000C9602E00180A2E00728BFFFF398 +S3154001B660912AE0059410200081C3E0089010000A59 +S3154001B6708210000898102000912B20039A00400860 +S3154001B680D60040089132E01880A2000932800008B5 +S3154001B690980320019132E00C900A2FFF80A2000A04 +S3154001B6A0028000079610000D9803200180A3200F09 +S3154001B6B028BFFFF3912B20039610200081C3E00899 +S3154001B6C09010000BD4022004173FFC00920A400B55 +S3154001B6D0900A800B9132200C921240081100003FD3 +S3154001B6E0901223F0940A8008952AA0049412800BA4 +S3154001B6F0920A400A81C3E008901000099DE3BFA069 +S3154001B700860E60FF80A6A0030880002A84100018D8 +S3154001B710808E20033280002A821020008328E00890 +S3154001B7208210400380A6A00F852860109A10001849 +S3154001B730841080018810001A0880001182100018B8 +S3154001B740C4204000C4206004C4206008C420600CAA +S3154001B75088013FF080A1200F18BFFFFA82006010D8 +S3154001B7608206BFF0B408600F9A087FF080A6A00356 +S3154001B7709A0360100880000E9A06000D8210200080 +S3154001B780C4234001820060048826800180A12003F1 +S3154001B79038BFFFFDC42340018206BFFCB4086003E5 +S3154001B7A082087FFC820060049A0340018410000DE8 +S3154001B7B080A6A0000280000782102000C6288001D2 +S3154001B7C08200600180A0401A32BFFFFEC628800178 +S3154001B7D081C7E00881E800009DE3BFA02110007009 +S3154001B7E0A0142018C2043FFC80A07FFF02800008FD +S3154001B7F0A0043FFC9FC04000A0043FFCC2040000DF +S3154001B80080A07FFF12BFFFFC0100000081C7E00856 +S3154001B81081E800009DE3BFA081C7E00881E8000000 +S3154001B8200000001000000000017A5200047C0F0164 +S3154001B8301B0C0E000000001000000018FFFE595CB2 +S3154001B8400000007000000000000000180000002CFD +S3154001B850FFFE59B8000000B400410D1E2D4A090FE4 +S3154001B8601F0000000000001800000048FFFE5A506B +S3154001B870000000D800410D1E2D6C090F1F0000006D +S3154001B8800000001800000064FFFE5B0C0000047815 +S3154001B89000410D1E2D4D090F1F000000000000182C +S3154001B8A000000080FFFE5F680000008800410D1E19 +S3154001B8B02D5B090F1F000000000000180000009CCE +S3154001B8C0FFFE5FD40000009000410D1E2D43090F7D +S3154001B8D01F00000000000014000000B8FFFE604891 +S3154001B8E00000002000410D1E2D090F1F0000001011 +S3154001B8F0000000D0FFFE60500000001C0000000068 +S3154001B90000000010000000E4FFFE60580000001C2B +S3154001B9100000000000000010000000F8FFFE60601B +S3154001B9200000001C00000000000000100000010C97 +S3154001B930FFFE60680000001C0000000000000014CB +S3154001B94000000120FFFE60700000002C00410D1E2A +S3154001B9502D090F1F0000001800000138FFFE60D0BE +S3154001B9600000004000410D1E2D46090F1F0000003A +S3154001B9700000001800000154FFFE60F4000002249C +S3154001B98000410D1E2D46090F1F0000000000001842 +S3154001B99000000170FFFE62FC0000023400410D1EF2 +S3154001B9A02D47090F1F000000000000180000018C00 +S3154001B9B0FFFE65140000003C00410D1E2D43090F9A +S3154001B9C01F00000000000018000001A8FFFE6534BA +S3154001B9D00000003C00410D1E2D43090F1F000000D1 +S3154001B9E000000014000001C4FFFF46180000039444 +S3154001B9F000410D1E2D090F1F00000010000001DC43 +S3154001BA00FFFF49940000002C0000000000000010D8 +S3154001BA10000001F0FFFF49AC0000002400000000D7 +S3154001BA200000001000000204FFFF49BC000000189E +S3154001BA30000000000000001800000218FFFF49C086 +S3154001BA400000017C00410D1E2D42090F1F00000020 +S3154001BA500000001800000234FFFF4B200000058063 +S3154001BA6000410D1E2D46090F1F0000000000001861 +S3154001BA7000000250FFFF50840000051800410D1ED2 +S3154001BA802D43090F1F000000000000140000026C46 +S3154001BA90FFFF55800000010C00410D1E2D090F1FAF +S3154001BAA00000001000000284FFFF567400000018D9 +S3154001BAB0000000000000001400000298FFFF5678C5 +S3154001BAC00000020800410D1E2D090F1F0000001441 +S3154001BAD0000002B0FFFF66FC0000461800410D1E43 +S3154001BAE02D090F1F00000010000002C8FFFFACFC2B +S3154001BAF00000000C0000000000000010000002DC05 +S3154001BB00FFFFACF40000001400000000000000102C +S3154001BB10000002F0FFFFACF400000020000000002E +S3154001BB200000001400000304FFFFAD000000077091 +S3154001BB3000410D1E2D090F1F000000100000031CBF +S3154001BB40FFFFBD880000000C00000000000000104F +S3154001BB5000000330FFFFBD8000000024000000000C +S3154001BB600000001000000344FFFFBD9000000038B4 +S3154001BB70000000000000001000000358FFFFBDB4A4 +S3154001BB800000003800000000000000180000036CAF +S3154001BB90FFFFBDD80000009C00410D1E2D56090F28 +S3154001BBA01F0000000000001800000388FFFFBE5878 +S3154001BBB00000003C00410D1E2D4A090F1F000000E8 +S3154001BBC000000018000003A4FFFFBE780000003CFF +S3154001BBD000410D1E2D4A090F1F00000000000010F4 +S3154001BBE0000003C0FFFFBE980000003800000000BF +S3154001BBF000000018000003D4FFFFBEBC0000003C5B +S3154001BC0000410D1E2D4A090F1F00000000000018BB +S3154001BC10000003F0FFFFBEDC0000003C00410D1EAA +S3154001BC202D4A090F1F000000000000100000040CFF +S3154001BC30FFFFBEFC000000380000000000000018B5 +S3154001BC4000000420FFFFBF2000000EB000430D1E80 +S3154001BC502D4C090F1F000000000000140000043C99 +S3154001BC60FFFFCDB40000002800410D1E2D090F1F16 +S3154001BC700000001400000454FFFFCDC4000003304F +S3154001BC8000410D1E2D090F1F000000140000046C19 +S3154001BC90FFFFD0DC000002B800430D1E2D090F1F27 +S3154001BCA00000001000000484FFFFD6840000000C51 +S3154001BCB0000000000000001000000498FFFFD67C41 +S3154001BCC0000000140000000000000014000004AC55 +S3154001BCD0FFFFD67C0000007C00410D1E2D090F1F81 +S3154001BCE000000010000004C4FFFFDA7800000020C5 +S3154001BCF00000000000000018000004D8FFFFDA84AD +S3154001BD00000000FC00410D1E2D54090F1F000000CC +S3154001BD1000000018000004F4FFFFDB640000012C62 +S3154001BD2000410D1E2D41090F1F00000000000010AB +S3154001BD3000000510FFFFDC740000001C000000003D +S3154001BD400000001000000524FFFFDC7C0000001C01 +S3154001BD50000000000000001800000538FFFFDC84E9 +S3154001BD60000006D800410D1E2D4C090F1F00000092 +S3154001BD700000001000000554FFFFE34000000018DA +S3154001BD80000000000000001000000568FFFFE344CA +S3154001BD900000001800000000000000180000057CAB +S3154001BDA0FFFFE3480000004000410D1E2D42090FF0 +S3154001BDB01F0000000000001400000598FFFFE36C1F +S3154001BDC0000000EC00410D1E2D090F1F0000001858 +S3154001BDD0000005B0FFFFE4400000029C00410D1E3B +S3154001BDE02D43090F1F00000000000018000005CC7C +S3154001BDF0FFFFE6C00000008C00410D1E2D4F090FCC +S3154001BE001F00000000000018000005E8FFFFE730B2 +S3154001BE100000002800410D1E2D44090F1F0000009F +S3154001BE200000001800000604FFFFE73C0000010483 +S3154001BE3000410D1E2D45090F1F0000000000001096 +S3154001BE4000000620FFFFE8240000003C000000003F +S3154001BE500000001800000634FFFFEC0000000088D7 +S3154001BE6000410D1E2D52090F1F0000000000001059 +S3154001BE7000000650FFFFEC6C0000001C00000000B3 +S3154001BE800000001800000664FFFFEC74000001206A +S3154001BE9000410D1E2D58090F1F0000000000001023 +S3154001BEA000000680FFFFEE88000000100000000041 +S3154001BEB00000001800000694FFFFEE84000000B861 +S3154001BEC000410D1E2D48090F1F00000000000018FB +S3154001BED0000006B0FFFFEF200000020C00410D1EDE +S3154001BEE02D4A090F1F00000000000018000006CC73 +S3154001BEF0FFFFF1100000003400410D1E2D47090FD0 +S3154001BF001F00000000000018000006E8FFFFF128AE +S3154001BF100000002C00410D1E2D45090F1F00000099 +S3154001BF200000001800000704FFFFF1380000002C54 +S3154001BF3000410D1E2D45090F1F000000000000188D +S3154001BF4000000720FFFFF1480000002C00410D1EB4 +S3154001BF502D45090F1F000000000000180000073C96 +S3154001BF60FFFFF1580000002C00410D1E2D45090F21 +S3154001BF701F0000000000001800000758FFFFF1688D +S3154001BF800000002C00410D1E2D45090F1F00000029 +S3154001BF900000001800000774FFFFF1780000002C34 +S3154001BFA000410D1E2D45090F1F000000000000181D +S3154001BFB000000790FFFFF1880000003400410D1E8C +S3154001BFC02D47090F1F00000000000018000007ACB4 +S3154001BFD0FFFFF3000000004C00410D1E2D47090FE5 +S3154001BFE01F00000000000018000007C8FFFFF710FF +S3154001BFF0000000DC00410D1E2D76090F1F000000D8 +S3154001C00000000000000000000000000000000000E9 +S3154001C01000000002FFFFFFFF0000000000000000DB +S3154001C02000000002FFFFFFFF0000000000000000CB +S3154001C030343074693934612B3079676979753035B3 +S3154001C0407968617035796934682B612B69697978CA +S3154001C0506869346B35396A30713930356A6B6F7955 +S3154001C06070686F70746A72686961346979302B34AB +S3154001C0700000000000000000400800000000000031 +S3154001C0803CD203AF9EE756163E7AD7F29ABCAF48EA +S3154001C0904004822800000000430000000000000028 +S3154001C0A09DE3BFA07FFF9421010000007FFFFDCBF0 +S3154001C0B00100000081C7E00881E800009DE3BFA0C0 +S3154001C0C07FFF93EF0100000081C7E00881E800008F +S3154001C0D00000000000000000000000000000000019 +S3154001C0E00000000000000000000000000000000009 +S3154001C0F000000000000000000000000000000000F9 +S3154001C10000000000000000000000000000000000E8 +S3154001C11000000000000000000000000000000000D8 +S3154001C12000000000000000000000000000000000C8 +S3154001C13000000000000000000000000000000000B8 +S3154001C14000000000000000000000000000000000A8 +S3154001C1500000000000000000000000000000000098 +S3154001C1600000000000000000000000000000000088 +S3154001C1700000000000000000000000000000000078 +S3154001C1800000000000000000000000000000000068 +S3154001C1900000000000000000000000000000000058 +S3154001C1A00000000000000000000000000000000048 +S3154001C1B00000000000000000000000000000000038 +S3154001C1C00000000000000000000000000000000028 +S3154001C1D00000000000000000000000000000000018 +S3154001C1E00000000000000000000000000000000008 +S3154001C1F000000000000000000000000000000000F8 +S3154001C20000000000000000000000000000000000E7 +S3154001C21000000000000000000000000000000000D7 +S3154001C22000000000000000000000000000000000C7 +S3154001C23000000000000000000000000000000000B7 +S3154001C24000000000000000000000000000000000A7 +S3154001C2500000000000000000000000000000000097 +S3154001C2600000000000000000000000000000000087 +S3154001C2700000000000000000000000000000000077 +S3154001C2800000000000000000000000000000000067 +S3154001C2900000000000000000000000000000000057 +S3154001C2A00000000000000000000000000000000047 +S3154001C2B00000000000000000000000000000000037 +S3154001C2C00000000000000000000000000000000027 +S3154001C2D00000000000000000000000000000000017 +S3154001C2E00000000000000000000000000000000007 +S3154001C2F000000000000000000000000000000000F7 +S3154001C30000000000000000000000000000000000E6 +S3154001C31000000000000000000000000000000000D6 +S3154001C32000000000000000000000000000000000C6 +S3154001C33000000000000000000000000000000000B6 +S3154001C34000000000000000000000000000000000A6 +S3154001C3500000000000000000000000000000000096 +S3154001C3600000000000000000000000000000000086 +S3154001C3700000000000000000000000000000000076 +S3154001C3800000000000000000000000000000000066 +S3154001C3900000000000000000000000000000000056 +S3154001C3A00000000000000000000000000000000046 +S3154001C3B00000000000000000000000000000000036 +S3154001C3C00000000000000000000000000000000026 +S3154001C3D00000000000000000000000000000000016 +S3154001C3E00000000000000000000000000000000006 +S3154001C3F000000000000000000000000000000000F6 +S3154001C40000000000000000000000000000000000E5 +S3154001C41000000000000000000000000000000000D5 +S3154001C42000000000000000000000000000000000C5 +S3154001C43000000000000000000000000000000000B5 +S3154001C44000000000000000000000000000000000A5 +S3154001C4500000000000000000000000000000000095 +S3154001C4600000000000000000000000000000000085 +S3154001C4700000000000000000000000000000000075 +S3154001C4800000000000000000000000000000000065 +S3154001C4900000000000000000000000000000000055 +S3154001C4A00000000000000000000000000000000045 +S3154001C4B00000000000000000000000000000000035 +S3154001C4C00000000000000000000000000000000025 +S3154001C4D00000000000000000000000000000000015 +S3154001C4E00000000000000000000000000000000005 +S3154001C4F000000000000000000000000000000000F5 +S3154001C50000000000000000000000000000000000E4 +S3154001C51000000000000000000000000000000000D4 +S3154001C52000000000000000000000000000000000C4 +S3154001C53000000000000000000000000000000000B4 +S3154001C54000000000000000000000000000000000A4 +S3154001C5500000000000000000000000000000000094 +S3154001C5600000000000000000000000000000000084 +S3154001C5700000000000000000000000000000000074 +S3154001C5800000000000000000000000000000000064 +S3154001C5900000000000000000000000000000000054 +S3154001C5A00000000000000000000000000000000044 +S3154001C5B00000000000000000000000000000000034 +S3154001C5C00000000000000000000000000000000024 +S3154001C5D00000000000000000000000000000000014 +S3154001C5E00000000000000000000000000000000004 +S3154001C5F000000000000000000000000000000000F4 +S3154001C60000000000000000000000000000000000E3 +S3154001C61000000000000000000000000000000000D3 +S3154001C62000000000000000000000000000000000C3 +S3154001C63000000000000000000000000000000000B3 +S3154001C64000000000000000000000000000000000A3 +S3154001C6500000000000000000000000000000000093 +S3154001C6600000000000000000000000000000000083 +S3154001C6700000000000000000000000000000000073 +S3154001C6800000000000000000000000000000000063 +S3154001C6900000000000000000000000000000000053 +S3154001C6A00000000000000000000000000000000043 +S3154001C6B00000000000000000000000000000000033 +S3154001C6C00000000000000000000000000000000023 +S3154001C6D00000000000000000000000000000000013 +S3154001C6E00000000000000000000000000000000003 +S3154001C6F000000000000000000000000000000000F3 +S3154001C70000000000000000000000000000000000E2 +S3154001C71000000000000000000000000000000000D2 +S3154001C72000000000000000000000000000000000C2 +S3154001C73000000000000000000000000000000000B2 +S3154001C74000000000000000000000000000000000A2 +S3154001C7500000000000000000000000000000000092 +S3154001C7600000000000000000000000000000000082 +S3154001C7700000000000000000000000000000000072 +S3154001C7800000000000000000000000000000000062 +S3154001C7900000000000000000000000000000000052 +S3154001C7A00000000000000000000000000000000042 +S3154001C7B00000000000000000000000000000000032 +S3154001C7C00000000000000000000000000000000022 +S3154001C7D00000000000000000000000000000000012 +S3154001C7E00000000000000000000000000000000002 +S3154001C7F000000000000000000000000000000000F2 +S3154001C80000000000000000000000000000000000E1 +S3154001C81000000000000000000000000000000000D1 +S3154001C82000000000000000000000000000000000C1 +S3154001C83000000000000000000000000000000000B1 +S3154001C84000000000000000000000000000000000A1 +S3154001C8500000000000000000000000000000000091 +S3154001C8600000000000000000000000000000000081 +S3154001C8700000000000000000000000000000000071 +S3154001C8800000000000000000000000000000000061 +S3154001C8900000000000000000000000000000000051 +S3154001C8A00000000000000000000000000000000041 +S3154001C8B00000000000000000000000000000000031 +S3154001C8C00000000000000000000000000000000021 +S3154001C8D00000000000000000000000000000000011 +S3154001C8E00000000000000000000000000000000001 +S3154001C8F000000000000000000000000000000000F1 +S3154001C90000000000000000000000000000000000E0 +S3154001C91000000000000000000000000000000000D0 +S3154001C92000000000000000000000000000000000C0 +S3154001C93000000000000000000000000000000000B0 +S3154001C94000000000000000000000000000000000A0 +S3154001C9500000000000000000000000000000000090 +S3154001C9600000000000000000000000000000000080 +S3154001C9700000000000000000000000000000000070 +S3154001C9800000000000000000000000000000000060 +S3154001C9900000000000000000000000000000000050 +S3154001C9A00000000000000000000000000000000040 +S3154001C9B00000000000000000000000000000000030 +S3154001C9C00000000000000000000000000000000020 +S3154001C9D00000000000000000000000000000000010 +S3154001C9E00000000000000000000000000000000000 +S3154001C9F000000000000000000000000000000000F0 +S3154001CA0000000000000000000000000000000000DF +S3154001CA1000000000000000000000000000000000CF +S3154001CA2000000000000000000000000000000000BF +S3154001CA3000000000000000000000000000000000AF +S3154001CA40000000000000000000000000000000009F +S3154001CA50000000000000000000000000000000008F +S3154001CA60000000000000000000000000000000007F +S3154001CA70000000000000000000000000000000006F +S3154001CA80000000000000000000000000000000005F +S3154001CA90000000000000000000000000000000004F +S3154001CAA0000000000000000000000000000000003F +S3154001CAB0000000000000000000000000000000002F +S3154001CAC0000000000000000000000000000000001F +S3154001CAD0000000000000000000000000000000000F +S3154001CAE000000000000000000000000000000000FF +S3154001CAF000000000000000000000000000000000EF +S3154001CB0000000000000000000000000000000000DE +S3154001CB1000000000000000000000000000000000CE +S3154001CB2000000000000000000000000000000000BE +S3154001CB3000000000000000000000000000000000AE +S3154001CB40000000000000000000000000000000009E +S3154001CB50000000000000000000000000000000008E +S3154001CB60000000000000000000000000000000007E +S3154001CB70000000000000000000000000000000006E +S3154001CB80000000000000000000000000000000005E +S3154001CB90000000000000000000000000000000004E +S3154001CBA0000000000000000000000000000000003E +S3154001CBB0000000000000000000000000000000002E +S3154001CBC0000000000000000000000000000000001E +S3154001CBD0000000000000000000000000000000000E +S3154001CBE000000000000000000000000000000000FE +S3154001CBF000000000000000000000000000000000EE +S3154001CC0000000000000000000000000000000000DD +S3154001CC1000000000000000000000000000000000CD +S3154001CC2000000000000000000000000000000000BD +S3154001CC3000000000000000000000000000000000AD +S3154001CC40000000000000000000000000000000009D +S3154001CC50000000000000000000000000000000008D +S3154001CC60000000000000000000000000000000007D +S3154001CC70000000000000000000000000000000006D +S3154001CC80000000000000000000000000000000005D +S3154001CC90000000000000000000000000000000004D +S3154001CCA0000000000000000000000000000000003D +S3154001CCB0000000000000000000000000000000002D +S3154001CCC0000000000000000000000000000000001D +S3154001CCD0000000000000000000000000000000000D +S3154001CCE000000000000000000000000000000000FD +S3154001CCF000000000000000000000000000000000ED +S3154001CD0000000000000000000000000000000000DC +S3154001CD1000000000000000000000000000000000CC +S3154001CD2000000000000000000000000000000000BC +S3154001CD3000000000000000000000000000000000AC +S3154001CD40000000000000000000000000000000009C +S3154001CD50000000000000000000000000000000008C +S3154001CD60000000000000000000000000000000007C +S3154001CD70000000000000000000000000000000006C +S3154001CD80000000000000000000000000000000005C +S3154001CD90000000000000000000000000000000004C +S3154001CDA0000000000000000000000000000000003C +S3154001CDB0000000000000000000000000000000002C +S3154001CDC0000000000000000000000000000000001C +S3154001CDD0000000000000000000000000000000000C +S3154001CDE000000000000000000000000000000000FC +S3154001CDF000000000000000000000000000000000EC +S3154001CE0000000000000000000000000000000000DB +S3154001CE1000000000000000000000000000000000CB +S3154001CE2000000000000000000000000000000000BB +S3154001CE3000000000000000000000000000000000AB +S3154001CE40000000000000000000000000000000009B +S3154001CE50000000000000000000000000000000008B +S3154001CE60000000000000000000000000000000007B +S3154001CE70000000000000000000000000000000006B +S3154001CE80000000000000000000000000000000005B +S3154001CE90000000000000000000000000000000004B +S3154001CEA0000000000000000000000000000000003B +S3154001CEB0000000000000000000000000000000002B +S3154001CEC0000000000000000000000000000000001B +S3154001CED0000000000000000000000000000000000B +S3154001CEE000000000000000000000000000000000FB +S3154001CEF000000000000000000000000000000000EB +S3154001CF0000000000000000000000000000000000DA +S3154001CF1000000000000000000000000000000000CA +S3154001CF2000000000000000000000000000000000BA +S3154001CF3000000000000000000000000000000000AA +S3154001CF40000000000000000000000000000000009A +S3154001CF50000000000000000000000000000000008A +S3154001CF60000000000000000000000000000000007A +S3154001CF70000000000000000000000000000000006A +S3154001CF80000000000000000000000000000000005A +S3154001CF90000000000000000000000000000000004A +S3154001CFA0000000000000000000000000000000003A +S3154001CFB0000000000000000000000000000000002A +S3154001CFC0000000000000000000000000000000001A +S3154001CFD0000000000000000000000000000000000A +S3154001CFE000000000000000000000000000000000FA +S3154001CFF000000000000000000000000000000000EA +S3154001D00000000000000000000000000000000000D9 +S3154001D01000000000000000000000000000000000C9 +S3154001D02000000000000000000000000000000000B9 +S3154001D03000000000000000000000000000000000A9 +S3154001D0400000000000000000000000000000000099 +S3154001D0500000000000000000000000000000000089 +S3154001D0600000000000000000000000000000000079 +S3154001D0700000000000000000000000000000000069 +S3154001D0800000000000000000000000000000000059 +S3154001D0900000000000000000000000000000000049 +S3154001D0A00000000000000000000000000000000039 +S3154001D0B00000000000000000000000000000000029 +S3154001D0C00000000000000000000000000000000019 +S3154001D0D00000000000000000000000000000000009 +S3154001D0E000000000000000000000000000000000F9 +S3154001D0F000000000000000000000000000000000E9 +S3154001D10000000000000000000000000000000000D8 +S3154001D11000000000000000000000000000000000C8 +S3154001D12000000000000000000000000000000000B8 +S3154001D13000000000000000000000000000000000A8 +S3154001D1400000000000000000000000000000000098 +S3154001D1500000000000000000000000000000000088 +S3154001D1600000000000000000000000000000000078 +S3154001D1700000000000000000000000000000000068 +S3154001D1800000000000000000000000000000000058 +S3154001D1900000000000000000000000000000000048 +S3154001D1A00000000000000000000000000000000038 +S3154001D1B00000000000000000000000000000000028 +S3154001D1C00000000000000000000000000000000018 +S3154001D1D00000000000000000000000000000000008 +S3154001D1E000000000000000000000000000000000F8 +S3154001D1F000000000000000000000000000000000E8 +S3154001D20000000000000000000000000000000000D7 +S3154001D21000000000000000000000000000000000C7 +S3154001D22000000000000000000000000000000000B7 +S3154001D23000000000000000000000000000000000A7 +S3154001D2400000000000000000000000000000000097 +S3154001D2500000000000000000000000000000000087 +S3154001D2600000000000000000000000000000000077 +S3154001D2700000000000000000000000000000000067 +S3154001D2800000000000000000000000000000000057 +S3154001D2900000000000000000000000000000000047 +S3154001D2A00000000000000000000000000000000037 +S3154001D2B00000000000000000000000000000000027 +S3154001D2C00000000000000000000000000000000017 +S3154001D2D00000000000000000000000000000000007 +S3154001D2E000000000000000000000000000000000F7 +S3154001D2F000000000000000000000000000000000E7 +S3154001D30000000000000000000000000000000000D6 +S3154001D31000000000000000000000000000000000C6 +S3154001D32000000000000000000000000000000000B6 +S3154001D33000000000000000000000000000000000A6 +S3154001D3400000000000000000000000000000000096 +S3154001D3500000000000000000000000000000000086 +S3154001D3600000000000000000000000000000000076 +S3154001D3700000000000000000000000000000000066 +S3154001D3800000000000000000000000000000000056 +S3154001D3900000000000000000000000000000000046 +S3154001D3A00000000000000000000000000000000036 +S3154001D3B00000000000000000000000000000000026 +S3154001D3C00000000000000000000000000000000016 +S3154001D3D00000000000000000000000000000000006 +S3154001D3E000000000000000000000000000000000F6 +S3154001D3F000000000000000000000000000000000E6 +S3154001D40000000000000000000000000000000000D5 +S3154001D41000000000000000000000000000000000C5 +S3154001D42000000000000000000000000000000000B5 +S3154001D43000000000000000000000000000000000A5 +S3154001D4400000000000000000000000000000000095 +S3154001D4500000000000000000000000000000000085 +S3154001D4600000000000000000000000000000000075 +S3154001D4700000000000000000000000000000000065 +S3154001D4800000000000000000000000000000000055 +S3154001D4900000000000000000000000000000000045 +S3154001D4A00000000000000000000000000000000035 +S3154001D4B00000000000000000000000000000000025 +S3154001D4C00000000000000000000000000000000015 +S3154001D4D00000000000000000000000000000000005 +S3154001D4E000000000000000000000000000000000F5 +S3154001D4F000000000000000000000000000000000E5 +S3154001D50000000000000000000000000000000000D4 +S3154001D51000000000000000000000000000000000C4 +S3154001D52000000000000000000000000000000000B4 +S3154001D53000000000000000000000000000000000A4 +S3154001D5400000000000000000000000000000000094 +S3154001D5500000000000000000000000000000000084 +S3154001D5600000000000000000000000000000000074 +S3154001D5700000000000000000000000000000000064 +S3154001D5800000000000000000000000000000000054 +S3154001D5900000000000000000000000000000000044 +S3154001D5A00000000000000000000000000000000034 +S3154001D5B00000000000000000000000000000000024 +S3154001D5C00000000000000000000000000000000014 +S3154001D5D00000000000000000000000000000000004 +S3154001D5E000000000000000000000000000000000F4 +S3154001D5F000000000000000000000000000000000E4 +S3154001D60000000000000000000000000000000000D3 +S3154001D61000000000000000000000000000000000C3 +S3154001D62000000000000000000000000000000000B3 +S3154001D63000000000000000000000000000000000A3 +S3154001D6400000000000000000000000000000000093 +S3154001D6500000000000000000000000000000000083 +S3154001D6600000000000000000000000000000000073 +S3154001D6700000000000000000000000000000000063 +S3154001D6800000000000000000000000000000000053 +S3154001D6900000000000000000000000000000000043 +S3154001D6A00000000000000000000000000000000033 +S3154001D6B00000000000000000000000000000000023 +S3154001D6C00000000000000000000000000000000013 +S3154001D6D00000000000000000000000000000000003 +S3154001D6E000000000000000000000000000000000F3 +S3154001D6F000000000000000000000000000000000E3 +S3154001D70000000000000000000000000000000000D2 +S3154001D71000000000000000000000000000000000C2 +S3154001D72000000000000000000000000000000000B2 +S3154001D73000000000000000000000000000000000A2 +S3154001D7400000000000000000000000000000000092 +S3154001D7500000000000000000000000000000000082 +S3154001D7600000000000000000000000000000000072 +S3154001D7700000000000000000000000000000000062 +S3154001D7800000000000000000000000000000000052 +S3154001D7900000000000000000000000000000000042 +S3154001D7A00000000000000000000000000000000032 +S3154001D7B00000000000000000000000000000000022 +S3154001D7C00000000000000000000000000000000012 +S3154001D7D00000000000000000000000000000000002 +S3154001D7E000000000000000000000000000000000F2 +S3154001D7F000000000000000000000000000000000E2 +S3154001D80000000000000000000000000000000000D1 +S3154001D81000000000000000000000000000000000C1 +S3154001D82000000000000000000000000000000000B1 +S3154001D83000000000000000000000000000000000A1 +S3154001D8400000000000000000000000000000000091 +S3154001D8500000000000000000000000000000000081 +S3154001D8600000000000000000000000000000000071 +S3154001D8700000000000000000000000000000000061 +S3154001D8800000000000000000000000000000000051 +S3154001D8900000000000000000000000000000000041 +S3154001D8A00000000000000000000000000000000031 +S3154001D8B00000000000000000000000000000000021 +S3154001D8C00000000000000000000000000000000011 +S3154001D8D00000000000000000000000000000000001 +S3154001D8E000000000000000000000000000000000F1 +S3154001D8F000000000000000000000000000000000E1 +S3154001D90000000000000000000000000000000000D0 +S3154001D91000000000000000000000000000000000C0 +S3154001D92000000000000000000000000000000000B0 +S3154001D93000000000000000000000000000000000A0 +S3154001D9400000000000000000000000000000000090 +S3154001D9500000000000000000000000000000000080 +S3154001D9600000000000000000000000000000000070 +S3154001D9700000000000000000000000000000000060 +S3154001D9800000000000000000000000000000000050 +S3154001D9900000000000000000000000000000000040 +S3154001D9A00000000000000000000000000000000030 +S3154001D9B00000000000000000000000000000000020 +S3154001D9C00000000000000000000000000000000010 +S3154001D9D00000000000000000000000000000000000 +S3154001D9E000000000000000000000000000000000F0 +S3154001D9F000000000000000000000000000000000E0 +S3154001DA0000000000000000000000000000000000CF +S3154001DA1000000000000000000000000000000000BF +S3154001DA2000000000000000000000000000000000AF +S3154001DA30000000000000000000000000000000009F +S3154001DA40000000000000000000000000000000008F +S3154001DA50000000000000000000000000000000007F +S3154001DA60000000000000000000000000000000006F +S3154001DA70000000000000000000000000000000005F +S3154001DA80000000000000000000000000000000004F +S3154001DA90000000000000000000000000000000003F +S3154001DAA0000000000000000000000000000000002F +S3154001DAB0000000000000000000000000000000001F +S3154001DAC0000000000000000000000000000000000F +S3154001DAD000000000000000000000000000000000FF +S3154001DAE000000000000000000000000000000000EF +S3154001DAF000000000000000000000000000000000DF +S3154001DB0000000000000000000000000000000000CE +S3154001DB1000000000000000000000000000000000BE +S3154001DB2000000000000000000000000000000000AE +S3154001DB30000000000000000000000000000000009E +S3154001DB40000000000000000000000000000000008E +S3154001DB50000000000000000000000000000000007E +S3154001DB60000000000000000000000000000000006E +S3154001DB70000000000000000000000000000000005E +S3154001DB80000000000000000000000000000000004E +S3154001DB90000000000000000000000000000000003E +S3154001DBA0000000000000000000000000000000002E +S3154001DBB0000000000000000000000000000000001E +S3154001DBC0000000000000000000000000000000000E +S3154001DBD000000000000000000000000000000000FE +S3154001DBE000000000000000000000000000000000EE +S3154001DBF000000000000000000000000000000000DE +S3154001DC0000000000000000000000000000000000CD +S3154001DC1000000000000000000000000000000000BD +S3154001DC2000000000000000000000000000000000AD +S3154001DC30000000000000000000000000000000009D +S3154001DC40000000000000000000000000000000008D +S3154001DC50000000000000000000000000000000007D +S3154001DC60000000000000000000000000000000006D +S3154001DC70000000000000000000000000000000005D +S3154001DC80000000000000000000000000000000004D +S3154001DC90000000000000000000000000000000003D +S3154001DCA0000000000000000000000000000000002D +S3154001DCB0000000000000000000000000000000001D +S3154001DCC0000000000000000000000000000000000D +S3154001DCD000000000000000000000000000000000FD +S3154001DCE000000000000000000000000000000000ED +S3154001DCF000000000000000000000000000000000DD +S3154001DD0000000000000000000000000000000000CC +S3154001DD1000000000000000000000000000000000BC +S3154001DD2000000000000000000000000000000000AC +S3154001DD30000000000000000000000000000000009C +S3154001DD40000000000000000000000000000000008C +S3154001DD50000000000000000000000000000000007C +S3154001DD60000000000000000000000000000000006C +S3154001DD70000000000000000000000000000000005C +S3154001DD80000000000000000000000000000000004C +S3154001DD90000000000000000000000000000000003C +S3154001DDA0000000000000000000000000000000002C +S3154001DDB0000000000000000000000000000000001C +S3154001DDC0000000000000000000000000000000000C +S3154001DDD000000000000000000000000000000000FC +S3154001DDE000000000000000000000000000000000EC +S3154001DDF000000000000000000000000000000000DC +S3154001DE0000000000000000000000000000000000CB +S3154001DE1000000000000000000000000000000000BB +S3154001DE2000000000000000000000000000000000AB +S3154001DE30000000000000000000000000000000009B +S3154001DE40000000000000000000000000000000008B +S3154001DE50000000000000000000000000000000007B +S3154001DE60000000000000000000000000000000006B +S3154001DE70000000000000000000000000000000005B +S3154001DE80000000000000000000000000000000004B +S3154001DE90000000000000000000000000000000003B +S3154001DEA0000000000000000000000000000000002B +S3154001DEB0000000000000000000000000000000001B +S3154001DEC0000000000000000000000000000000000B +S3154001DED000000000000000000000000000000000FB +S3154001DEE000000000000000000000000000000000EB +S3154001DEF000000000000000000000000000000000DB +S3154001DF0000000000000000000000000000000000CA +S3154001DF1000000000000000000000000000000000BA +S3154001DF2000000000000000000000000000000000AA +S3154001DF30000000000000000000000000000000009A +S3154001DF40000000000000000000000000000000008A +S3154001DF50000000000000000000000000000000007A +S3154001DF60000000000000000000000000000000006A +S3154001DF70000000000000000000000000000000005A +S3154001DF80000000000000000000000000000000004A +S3154001DF90000000000000000000000000000000003A +S3154001DFA0000000000000000000000000000000002A +S3154001DFB0000000000000000000000000000000001A +S3154001DFC0000000000000000000000000000000000A +S3154001DFD000000000000000000000000000000000FA +S3154001DFE000000000000000000000000000000000EA +S3154001DFF000000000000000000000000000000000DA +S3154001E00000000000000000000000000000000000C9 +S3154001E01000000000000000000000000000000000B9 +S3154001E02000000000000000000000000000000000A9 +S3154001E0300000000000000000000000000000000099 +S3154001E0400000000000000000000000000000000089 +S3154001E0500000000000000000000000000000000079 +S3154001E0600000000000000000000000000000000069 +S3154001E0700000000000000000000000000000000059 +S3154001E0800000000000000000000000000000000049 +S3154001E0900000000000000000000000000000000039 +S3154001E0A00000000000000000000000000000000029 +S3154001E0B00000000000000000000000000000000019 +S3154001E0C00000000000000000000000000000000009 +S3154001E0D000000000000000000000000000000000F9 +S3154001E0E000000000000000000000000000000000E9 +S3154001E0F000000000000000000000000000000000D9 +S3154001E10000000000000000000000000000000000C8 +S3154001E11000000000000000000000000000000000B8 +S3154001E12000000000000000000000000000000000A8 +S3154001E1300000000000000000000000000000000098 +S3154001E1400000000000000000000000000000000088 +S3154001E1500000000000000000000000000000000078 +S3154001E1600000000000000000000000000000000068 +S3154001E1700000000000000000000000000000000058 +S3154001E1800000000000000000000000000000000048 +S3154001E1900000000000000000000000000000000038 +S3154001E1A00000000000000000000000000000000028 +S3154001E1B00000000000000000000000000000000018 +S3154001E1C00000000000000000000000000000000008 +S3154001E1D000000000000000000000000000000000F8 +S3154001E1E000000000000000000000000000000000E8 +S3154001E1F000000000000000000000000000000000D8 +S3154001E20000000000000000000000000000000000C7 +S3154001E21000000000000000000000000000000000B7 +S3154001E22000000000000000000000000000000000A7 +S3154001E2300000000000000000000000000000000097 +S3154001E2400000000000000000000000000000000087 +S3154001E2500000000000000000000000000000000077 +S3154001E2600000000000000000000000000000000067 +S3154001E2700000000000000000000000000000000057 +S3154001E2800000000000000000000000000000000047 +S3154001E2900000000000000000000000000000000037 +S3154001E2A00000000000000000000000000000000027 +S3154001E2B00000000000000000000000000000000017 +S3154001E2C00000000000000000000000000000000007 +S3154001E2D000000000000000000000000000000000F7 +S3154001E2E000000000000000000000000000000000E7 +S3154001E2F000000000000000000000000000000000D7 +S3154001E30000000000000000000000000000000000C6 +S3154001E31000000000000000000000000000000000B6 +S3154001E32000000000000000000000000000000000A6 +S3154001E3300000000000000000000000000000000096 +S3154001E3400000000000000000000000000000000086 +S3154001E3500000000000000000000000000000000076 +S3154001E3600000000000000000000000000000000066 +S3154001E3700000000000000000000000000000000056 +S3154001E3800000000000000000000000000000000046 +S3154001E3900000000000000000000000000000000036 +S3154001E3A00000000000000000000000000000000026 +S3154001E3B00000000000000000000000000000000016 +S3154001E3C00000000000000000000000000000000006 +S3154001E3D000000000000000000000000000000000F6 +S3154001E3E000000000000000000000000000000000E6 +S3154001E3F000000000000000000000000000000000D6 +S3154001E40000000000000000000000000000000000C5 +S3154001E41000000000000000000000000000000000B5 +S3154001E42000000000000000000000000000000000A5 +S3154001E4300000000000000000000000000000000095 +S3154001E4400000000000000000000000000000000085 +S3154001E4500000000000000000000000000000000075 +S3154001E4600000000000000000000000000000000065 +S3154001E4700000000000000000000000000000000055 +S3154001E4800000000000000000000000000000000045 +S3154001E4900000000000000000000000000000000035 +S3154001E4A00000000000000000000000000000000025 +S3154001E4B00000000000000000000000000000000015 +S3154001E4C00000000000000000000000000000000005 +S3154001E4D000000000000000000000000000000000F5 +S3154001E4E000000000000000000000000000000000E5 +S3154001E4F000000000000000000000000000000000D5 +S3154001E50000000000000000000000000000000000C4 +S3154001E51000000000000000000000000000000000B4 +S3154001E52000000000000000000000000000000000A4 +S3154001E5300000000000000000000000000000000094 +S3154001E5400000000000000000000000000000000084 +S3154001E5500000000000000000000000000000000074 +S3154001E5600000000000000000000000000000000064 +S3154001E5700000000000000000000000000000000054 +S3154001E5800000000000000000000000000000000044 +S3154001E5900000000000000000000000000000000034 +S3154001E5A00000000000000000000000000000000024 +S3154001E5B00000000000000000000000000000000014 +S3154001E5C00000000000000000000000000000000004 +S3154001E5D000000000000000000000000000000000F4 +S3154001E5E000000000000000000000000000000000E4 +S3154001E5F000000000000000000000000000000000D4 +S3154001E60000000000000000000000000000000000C3 +S3154001E61000000000000000000000000000000000B3 +S3154001E62000000000000000000000000000000000A3 +S3154001E6300000000000000000000000000000000093 +S3154001E6400000000000000000000000000000000083 +S3154001E6500000000000000000000000000000000073 +S3154001E6600000000000000000000000000000000063 +S3154001E6700000000000000000000000000000000053 +S3154001E6800000000000000000000000000000000043 +S3154001E6900000000000000000000000000000000033 +S3154001E6A00000000000000000000000000000000023 +S3154001E6B00000000000000000000000000000000013 +S3154001E6C00000000000000000000000000000000003 +S3154001E6D000000000000000000000000000000000F3 +S3154001E6E000000000000000000000000000000000E3 +S3154001E6F000000000000000000000000000000000D3 +S3154001E70000000000000000000000000000000000C2 +S3154001E71000000000000000000000000000000000B2 +S3154001E72000000000000000000000000000000000A2 +S3154001E7300000000000000000000000000000000092 +S3154001E7400000000000000000000000000000000082 +S3154001E7500000000000000000000000000000000072 +S3154001E7600000000000000000000000000000000062 +S3154001E7700000000000000000000000000000000052 +S3154001E7800000000000000000000000000000000042 +S3154001E7900000000000000000000000000000000032 +S3154001E7A00000000000000000000000000000000022 +S3154001E7B00000000000000000000000000000000012 +S3154001E7C00000000000000000000000000000000002 +S3154001E7D000000000000000000000000000000000F2 +S3154001E7E000000000000000000000000000000000E2 +S3154001E7F000000000000000000000000000000000D2 +S3154001E80000000000000000000000000000000000C1 +S3154001E81000000000000000000000000000000000B1 +S3154001E82000000000000000000000000000000000A1 +S3154001E8300000000000000000000000000000000091 +S3154001E8400000000000000000000000000000000081 +S3154001E8500000000000000000000000000000000071 +S3154001E8600000000000000000000000000000000061 +S3154001E8700000000000000000000000000000000051 +S3154001E8800000000000000000000000000000000041 +S3154001E8900000000000000000000000000000000031 +S3154001E8A00000000000000000000000000000000021 +S3154001E8B00000000000000000000000000000000011 +S3154001E8C00000000000000000000000000000000001 +S3154001E8D000000000000000000000000000000000F1 +S3154001E8E000000000000000000000000000000000E1 +S3154001E8F000000000000000000000000000000000D1 +S3154001E90000000000000000000000000000000000C0 +S3154001E91000000000000000000000000000000000B0 +S3154001E92000000000000000000000000000000000A0 +S3154001E9300000000000000000000000000000000090 +S3154001E9400000000000000000000000000000000080 +S3154001E9500000000000000000000000000000000070 +S3154001E9600000000000000000000000000000000060 +S3154001E9700000000000000000000000000000000050 +S3154001E9800000000000000000000000000000000040 +S3154001E9900000000000000000000000000000000030 +S3154001E9A00000000000000000000000000000000020 +S3154001E9B00000000000000000000000000000000010 +S3154001E9C00000000000000000000000000000000000 +S3154001E9D000000000000000000000000000000000F0 +S3154001E9E000000000000000000000000000000000E0 +S3154001E9F000000000000000000000000000000000D0 +S3154001EA0000000000000000000000000000000000BF +S3154001EA1000000000000000000000000000000000AF +S3154001EA20000000000000000000000000000000009F +S3154001EA30000000000000000000000000000000008F +S3154001EA40000000000000000000000000000000007F +S3154001EA50000000000000000000000000000000006F +S3154001EA60000000000000000000000000000000005F +S3154001EA70000000000000000000000000000000004F +S3154001EA80000000000000000000000000000000003F +S3154001EA90000000000000000000000000000000002F +S3154001EAA0000000000000000000000000000000001F +S3154001EAB0000000000000000000000000000000000F +S3154001EAC000000000000000000000000000000000FF +S3154001EAD000000000000000000000000000000000EF +S3154001EAE000000000000000000000000000000000DF +S3154001EAF000000000000000000000000000000000CF +S3154001EB0000000000000000000000000000000000BE +S3154001EB1000000000000000000000000000000000AE +S3154001EB20000000000000000000000000000000009E +S3154001EB30000000000000000000000000000000008E +S3154001EB40000000000000000000000000000000007E +S3154001EB50000000000000000000000000000000006E +S3154001EB60000000000000000000000000000000005E +S3154001EB70000000000000000000000000000000004E +S3154001EB80000000000000000000000000000000003E +S3154001EB90000000000000000000000000000000002E +S3154001EBA0000000000000000000000000000000001E +S3154001EBB0000000000000000000000000000000000E +S3154001EBC000000000000000000000000000000000FE +S3154001EBD000000000000000000000000000000000EE +S3154001EBE000000000000000000000000000000000DE +S3154001EBF000000000000000000000000000000000CE +S3154001EC0000000000000000000000000000000000BD +S3154001EC1000000000000000000000000000000000AD +S3154001EC20000000000000000000000000000000009D +S3154001EC30000000000000000000000000000000008D +S3154001EC40000000000000000000000000000000007D +S3154001EC50000000000000000000000000000000006D +S3154001EC60000000000000000000000000000000005D +S3154001EC70000000000000000000000000000000004D +S3154001EC80000000000000000000000000000000003D +S3154001EC90000000000000000000000000000000002D +S3154001ECA0000000000000000000000000000000001D +S3154001ECB0000000000000000000000000000000000D +S3154001ECC000000000000000000000000000000000FD +S3154001ECD000000000000000000000000000000000ED +S3154001ECE000000000000000000000000000000000DD +S3154001ECF000000000000000000000000000000000CD +S3154001ED0000000000000000000000000000000000BC +S3154001ED1000000000000000000000000000000000AC +S3154001ED20000000000000000000000000000000009C +S3154001ED30000000000000000000000000000000008C +S3154001ED40000000000000000000000000000000007C +S3154001ED50000000000000000000000000000000006C +S3154001ED60000000000000000000000000000000005C +S3154001ED70000000000000000000000000000000004C +S3154001ED80000000000000000000000000000000003C +S3154001ED90000000000000000000000000000000002C +S3154001EDA0000000000000000000000000000000001C +S3154001EDB0000000000000000000000000000000000C +S3154001EDC000000000000000000000000000000000FC +S3154001EDD000000000000000000000000000000000EC +S3154001EDE000000000000000000000000000000000DC +S3154001EDF000000000000000000000000000000000CC +S3154001EE0000000000000000000000000000000000BB +S3154001EE1000000000000000000000000000000000AB +S3154001EE20000000000000000000000000000000009B +S3154001EE30000000000000000000000000000000008B +S3154001EE40000000000000000000000000000000007B +S3154001EE50000000000000000000000000000000006B +S3154001EE60000000000000000000000000000000005B +S3154001EE70000000000000000000000000000000004B +S3154001EE80000000000000000000000000000000003B +S3154001EE90000000000000000000000000000000002B +S3154001EEA0000000000000000000000000000000001B +S3154001EEB0000000000000000000000000000000000B +S3154001EEC000000000000000000000000000000000FB +S3154001EED000000000000000000000000000000000EB +S3154001EEE000000000000000000000000000000000DB +S3154001EEF000000000000000000000000000000000CB +S3154001EF0000000000000000000000000000000000BA +S3154001EF1000000000000000000000000000000000AA +S3154001EF20000000000000000000000000000000009A +S3154001EF30000000000000000000000000000000008A +S3154001EF40000000000000000000000000000000007A +S3154001EF50000000000000000000000000000000006A +S3154001EF60000000000000000000000000000000005A +S3154001EF70000000000000000000000000000000004A +S3154001EF80000000000000000000000000000000003A +S3154001EF90000000000000000000000000000000002A +S3154001EFA0000000000000000000000000000000001A +S3154001EFB0000000000000000000000000000000000A +S3154001EFC000000000000000000000000000000000FA +S3154001EFD000000000000000000000000000000000EA +S3154001EFE000000000000000000000000000000000DA +S3154001EFF000000000000000000000000000000000CA +S3154001F00000000000000000000000000000000000B9 +S3154001F01000000000000000000000000000000000A9 +S3154001F0200000000000000000000000000000000099 +S3154001F0300000000000000000000000000000000089 +S3154001F0400000000000000000000000000000000079 +S3154001F0500000000000000000000000000000000069 +S3154001F0600000000000000000000000000000000059 +S3154001F0700000000000000000000000000000000049 +S3154001F0800000000000000000000000000000000039 +S3154001F0900000000000000000000000000000000029 +S3154001F0A00000000000000000000000000000000019 +S3154001F0B00000000000000000000000000000000009 +S3154001F0C000000000000000000000000000000000F9 +S3154001F0D000000000000000000000000000000000E9 +S3154001F0E000000000000000000000000000000000D9 +S3154001F0F000000000000000000000000000000000C9 +S3154001F10000000000000000000000000000000000B8 +S3154001F11000000000000000000000000000000000A8 +S3154001F1200000000000000000000000000000000098 +S3154001F1300000000000000000000000000000000088 +S3154001F1400000000000000000000000000000000078 +S3154001F1500000000000000000000000000000000068 +S3154001F1600000000000000000000000000000000058 +S3154001F1700000000000000000000000000000000048 +S3154001F1800000000000000000000000000000000038 +S3154001F1900000000000000000000000000000000028 +S3154001F1A00000000000000000000000000000000018 +S3154001F1B00000000000000000000000000000000008 +S3154001F1C000000000000000000000000000000000F8 +S3154001F1D000000000000000000000000000000000E8 +S3154001F1E000000000000000000000000000000000D8 +S3154001F1F000000000000000000000000000000000C8 +S3154001F20000000000000000000000000000000000B7 +S3154001F21000000000000000000000000000000000A7 +S3154001F2200000000000000000000000000000000097 +S3154001F2300000000000000000000000000000000087 +S3154001F2400000000000000000000000000000000077 +S3154001F2500000000000000000000000000000000067 +S3154001F2600000000000000000000000000000000057 +S3154001F2700000000000000000000000000000000047 +S3154001F2800000000000000000000000000000000037 +S3154001F2900000000000000000000000000000000027 +S3154001F2A00000000000000000000000000000000017 +S3154001F2B00000000000000000000000000000000007 +S3154001F2C000000000000000000000000000000000F7 +S3154001F2D000000000000000000000000000000000E7 +S3154001F2E000000000000000000000000000000000D7 +S3154001F2F000000000000000000000000000000000C7 +S3154001F30000000000000000000000000000000000B6 +S3154001F31000000000000000000000000000000000A6 +S3154001F3200000000000000000000000000000000096 +S3154001F3300000000000000000000000000000000086 +S3154001F3400000000000000000000000000000000076 +S3154001F3500000000000000000000000000000000066 +S3154001F3600000000000000000000000000000000056 +S3154001F3700000000000000000000000000000000046 +S3154001F3800000000000000000000000000000000036 +S3154001F3900000000000000000000000000000000026 +S3154001F3A00000000000000000000000000000000016 +S3154001F3B00000000000000000000000000000000006 +S3154001F3C000000000000000000000000000000000F6 +S3154001F3D000000000000000000000000000000000E6 +S3154001F3E000000000000000000000000000000000D6 +S3154001F3F000000000000000000000000000000000C6 +S3154001F40000000000000000000000000000000000B5 +S3154001F41000000000000000000000000000000000A5 +S3154001F4200000000000000000000000000000000095 +S3154001F4300000000000000000000000000000000085 +S3154001F4400000000000000000000000000000000075 +S3154001F4500000000000000000000000000000000065 +S3154001F4600000000000000000000000000000000055 +S3154001F4700000000000000000000000000000000045 +S3154001F4800000000000000000000000000000000035 +S3154001F4900000000000000000000000000000000025 +S3154001F4A00000000000000000000000000000000015 +S3154001F4B00000000000000000000000000000000005 +S3154001F4C000000000000000000000000000000000F5 +S3154001F4D000000000000000000000000000000000E5 +S3154001F4E000000000000000000000000000000000D5 +S3154001F4F000000000000000000000000000000000C5 +S3154001F50000000000000000000000000000000000B4 +S3154001F51000000000000000000000000000000000A4 +S3154001F5200000000000000000000000000000000094 +S3154001F5300000000000000000000000000000000084 +S3154001F5400000000000000000000000000000000074 +S3154001F5500000000000000000000000000000000064 +S3154001F5600000000000000000000000000000000054 +S3154001F5700000000000000000000000000000000044 +S3154001F5800000000000000000000000000000000034 +S3154001F5900000000000000000000000000000000024 +S3154001F5A00000000000000000000000000000000014 +S3154001F5B00000000000000000000000000000000004 +S3154001F5C000000000000000000000000000000000F4 +S3154001F5D000000000000000000000000000000000E4 +S3154001F5E000000000000000000000000000000000D4 +S3154001F5F000000000000000000000000000000000C4 +S3154001F60000000000000000000000000000000000B3 +S3154001F61000000000000000000000000000000000A3 +S3154001F6200000000000000000000000000000000093 +S3154001F6300000000000000000000000000000000083 +S3154001F6400000000000000000000000000000000073 +S3154001F6500000000000000000000000000000000063 +S3154001F6600000000000000000000000000000000053 +S3154001F6700000000000000000000000000000000043 +S3154001F6800000000000000000000000000000000033 +S3154001F6900000000000000000000000000000000023 +S3154001F6A00000000000000000000000000000000013 +S3154001F6B00000000000000000000000000000000003 +S3154001F6C000000000000000000000000000000000F3 +S3154001F6D000000000000000000000000000000000E3 +S3154001F6E000000000000000000000000000000000D3 +S3154001F6F000000000000000000000000000000000C3 +S3154001F70000000000000000000000000000000000B2 +S3154001F71000000000000000000000000000000000A2 +S3154001F7200000000000000000000000000000000092 +S3154001F7300000000000000000000000000000000082 +S3154001F7400000000000000000000000000000000072 +S3154001F7500000000000000000000000000000000062 +S3154001F7600000000000000000000000000000000052 +S3154001F7700000000000000000000000000000000042 +S3154001F7800000000000000000000000000000000032 +S3154001F7900000000000000000000000000000000022 +S3154001F7A00000000000000000000000000000000012 +S3154001F7B00000000000000000000000000000000002 +S3154001F7C000000000000000000000000000000000F2 +S3154001F7D000000000000000000000000000000000E2 +S3154001F7E000000000000000000000000000000000D2 +S3154001F7F000000000000000000000000000000000C2 +S3154001F80000000000000000000000000000000000B1 +S3154001F81000000000000000000000000000000000A1 +S3154001F8200000000000000000000000000000000091 +S3154001F8300000000000000000000000000000000081 +S3154001F8400000000000000000000000000000000071 +S3154001F8500000000000000000000000000000000061 +S3154001F8600000000000000000000000000000000051 +S3154001F8700000000000000000000000000000000041 +S3154001F8800000000000000000000000000000000031 +S3154001F8900000000000000000000000000000000021 +S3154001F8A00000000000000000000000000000000011 +S3154001F8B00000000000000000000000000000000001 +S3154001F8C000000000000000000000000000000000F1 +S3154001F8D000000000000000000000000000000000E1 +S3154001F8E000000000000000000000000000000000D1 +S3154001F8F000000000000000000000000000000000C1 +S3154001F90000000000000000000000000000000000B0 +S3154001F91000000000000000000000000000000000A0 +S3154001F9200000000000000000000000000000000090 +S3154001F9300000000000000000000000000000000080 +S3154001F9400000000000000000000000000000000070 +S3154001F9500000000000000000000000000000000060 +S3154001F9600000000000000000000000000000000050 +S3154001F9700000000000000000000000000000000040 +S3154001F9800000000000000000000000000000000030 +S3154001F9900000000000000000000000000000000020 +S3154001F9A00000000000000000000000000000000010 +S3154001F9B00000000000000000000000000000000000 +S3154001F9C000000000000000000000000000000000F0 +S3154001F9D000000000000000000000000000000000E0 +S3154001F9E000000000000000000000000000000000D0 +S3154001F9F000000000000000000000000000000000C0 +S3154001FA0000000000000000000000000000000000AF +S3154001FA10000000000000000000000000000000009F +S3154001FA20000000000000000000000000000000008F +S3154001FA30000000000000000000000000000000007F +S3154001FA40000000000000000000000000000000006F +S3154001FA50000000000000000000000000000000005F +S3154001FA60000000000000000000000000000000004F +S3154001FA70000000000000000000000000000000003F +S3154001FA80000000000000000000000000000000002F +S3154001FA90000000000000000000000000000000001F +S3154001FAA0000000000000000000000000000000000F +S3154001FAB000000000000000000000000000000000FF +S3154001FAC000000000000000000000000000000000EF +S3154001FAD000000000000000000000000000000000DF +S3154001FAE000000000000000000000000000000000CF +S3154001FAF000000000000000000000000000000000BF +S3154001FB0000000000000000000000000000000000AE +S3154001FB10000000000000000000000000000000009E +S3154001FB20000000000000000000000000000000008E +S3154001FB30000000000000000000000000000000007E +S3154001FB40000000000000000000000000000000006E +S3154001FB50000000000000000000000000000000005E +S3154001FB60000000000000000000000000000000004E +S3154001FB70000000000000000000000000000000003E +S3154001FB80000000000000000000000000000000002E +S3154001FB90000000000000000000000000000000001E +S3154001FBA0000000000000000000000000000000000E +S3154001FBB000000000000000000000000000000000FE +S3154001FBC000000000000000000000000000000000EE +S3154001FBD000000000000000000000000000000000DE +S3154001FBE000000000000000000000000000000000CE +S3154001FBF000000000000000000000000000000000BE +S3154001FC0000000000000000000000000000000000AD +S3154001FC10000000000000000000000000000000009D +S3154001FC20000000000000000000000000000000008D +S3154001FC30000000000000000000000000000000007D +S3154001FC40000000000000000000000000000000006D +S3154001FC50000000000000000000000000000000005D +S3154001FC60000000000000000000000000000000004D +S3154001FC70000000000000000000000000000000003D +S3154001FC80000000000000000000000000000000002D +S3154001FC90000000000000000000000000000000001D +S3154001FCA0000000000000000000000000000000000D +S3154001FCB000000000000000000000000000000000FD +S3154001FCC000000000000000000000000000000000ED +S3154001FCD000000000000000000000000000000000DD +S3154001FCE000000000000000000000000000000000CD +S3154001FCF000000000000000000000000000000000BD +S3154001FD0000000000000000000000000000000000AC +S3154001FD10000000000000000000000000000000009C +S3154001FD20000000000000000000000000000000008C +S3154001FD30000000000000000000000000000000007C +S3154001FD40000000000000000000000000000000006C +S3154001FD50000000000000000000000000000000005C +S3154001FD60000000000000000000000000000000004C +S3154001FD70000000000000000000000000000000003C +S3154001FD80000000000000000000000000000000002C +S3154001FD90000000000000000000000000000000001C +S3154001FDA0000000000000000000000000000000000C +S3154001FDB000000000000000000000000000000000FC +S3154001FDC000000000000000000000000000000000EC +S3154001FDD000000000000000000000000000000000DC +S3154001FDE000000000000000000000000000000000CC +S3154001FDF000000000000000000000000000000000BC +S3154001FE0000000000000000000000000000000000AB +S3154001FE10000000000000000000000000000000009B +S3154001FE20000000000000000000000000000000008B +S3154001FE30000000000000000000000000000000007B +S3154001FE40000000000000000000000000000000006B +S3154001FE50000000000000000000000000000000005B +S3154001FE60000000000000000000000000000000004B +S3154001FE70000000000000000000000000000000003B +S3154001FE80000000000000000000000000000000002B +S3154001FE90000000000000000000000000000000001B +S3154001FEA0000000000000000000000000000000000B +S3154001FEB000000000000000000000000000000000FB +S3154001FEC000000000000000000000000000000000EB +S3154001FED000000000000000000000000000000000DB +S3154001FEE000000000000000000000000000000000CB +S3154001FEF000000000000000000000000000000000BB +S3154001FF0000000000000000000000000000000000AA +S3154001FF10000000000000000000000000000000009A +S3154001FF20000000000000000000000000000000008A +S3154001FF30000000000000000000000000000000007A +S3154001FF40000000000000000000000000000000006A +S3154001FF50000000000000000000000000000000005A +S3154001FF60000000000000000000000000000000004A +S3154001FF70000000000000000000000000000000003A +S3154001FF80000000000000000000000000000000002A +S3154001FF90000000000000000000000000000000001A +S3154001FFA0000000000000000000000000000000000A +S3154001FFB000000000000000000000000000000000FA +S3154001FFC000000000000000000000000000000000EA +S3154001FFD000000000000000000000000000000000DA +S3154001FFE000000000000000000000000000000000CA +S3154001FFF000000000000000000000000000000000BA +S315400200000000000100000000000000002000000087 +S315400200100000000000000000000000000000000098 S315400200200000000000000000000000000000000088 S315400200300000000000000000000000000000000078 S315400200400000000000000000000000000000000068 -S315400200500000000000000000000000010000000057 +S315400200500000000000000001000000000000000057 S315400200600000000000000000000000000000000048 S315400200700000000000000000000000000000000038 S315400200800000000000000000000000000000000028 -S315400200900000000000000000000000000000000117 +S315400200900000000000000000000000010000000017 S315400200A00000000000000000000000000000000008 S315400200B000000000000000000000000000000000F8 S315400200C000000000000000000000000000000000E8 -S315400200D000000000000000000000000000000000D8 -S315400200E00000000100000000000000410000000086 -S315400200F0343074693934612B3079676979753035B2 -S315400201007968617035796934682B612B69697978C8 -S315400201106869346B35396A30713930356A6B6F7953 -S3154002012070686F70746A72686961346979302B34A9 -S315400201300000000000000000000000010000000076 -S3154002014040000000000000004008000000000000DF -S31540020150401800000000000080000000000000007F -S315400201600000000000000000BFF000000000000098 -S31540020170BF800000000000000000000000000000F8 -S315400201800000000000000000000000000000000027 -S315400201903FF00000000000004008000000000000A0 -S315400201A03FF0000040000000000000000000000098 -S315400201B03F800000404000000000000000000000B8 -S315400201C000000000000000000000000000000000E7 -S315400201D0000000000000000048000001000000008E -S315400201E0480000000000000046C000000000000079 -S315400201F03FF0000000000000400000000000000048 -S3154002020040080000000000003F800000000000009F -S31540020210529000000000000052900FF807F60DEBD6 -S3154002022052901FE03F61BAD052902FB8D4E30F48A4 -S3154002023052903F81F636B80C52904F3BD03C0A64FE -S3154002024052905EE68EFAD48B52906E825DA8FC2B5B -S3154002025052907E0F66AFED0752908D8DD3B1D9AADB -S3154002026052909CFDCD8ED0095290AC5F7C69A3C85A -S315400202705290BBB307ACAFDB5290CAF8960E710DE3 -S315400202805290DA304D95FB065290E95A539F492CCB -S315400202905290F876CCDF6CD952910785DD689A295F -S315400202A052911687A8AE14A35291257C5187FD0917 -S315400202B052913463FA37014E5291433EC467EFFB83 -S315400202C05291520CD1372FEB529160CE41341D746C -S315400202D052916F8334644DF952917E2BCA46BAB914 -S315400202E052918CC821D6D3E352919B58598F7C9F09 -S315400202F05291A9DC8F6DF1045291B854E0F496A064 -S315400203005291C6C16B2DB8705291D5224AAE2EE19A -S315400203105291E3779B97F4A85291F1C1799CA8FF39 -S31540020320529200000000000052920E33499A21A9CF -S3154002033052921C5B70D9F82452922A788FC76DE587 -S315400203405292388AC0059C28529246921AD4EA4959 -S315400203505292548EB9151E8552926280B347609668 -S315400203605292706821902E9A52927E451BB944C38E -S3154002037052928C17B9337834529299E01118857596 -S315400203805292A79E3A2CD2E65292B5524AE1278E13 -S315400203905292C2FC595456A75292D09C7B54E03E8C -S315400203A05292DE32C66287415292EBBF4FAFDD4B6D -S315400203B05292F9422C23C47E529306BB705AE7C32B -S315400203C05293142B30A929AB52932191811B0A4196 -S315400203D052932EEE7577041652933C42213EE0C963 -S315400203E05293498C97B10540529356CDEBC9B5E22B -S315400203F0529364063044530652937135779C8DCBA3 -S3154002040052937E5BD40F95A152938B79579D3EAB07 -S315400204105293988E1409212E5293A59A1ADBB257FB -S315400204205293B29D7D6356625293BF984CB56C7798 -S315400204305293CC8A99AF54535293D97474F76DF24E -S315400204405293E655EEFE13675293F32F17FE8D0431 -S31540020450529400000000000052940CC8B6D657C20F -S31540020460529419894C2329F052942641CF569572BB -S31540020470529432F24FB01C7A52943F9ADC3F79CE74 -S3154002048052944C3B83E57153529458D455549C1A1A -S31540020490529465655F122FF6529471EEAF76C2C6DC -S315400204A052947E7054AF098952948AEA5CBC935F37 -S315400204B05294975CD57680885294A3C7CC8A358A63 -S315400204C05294B02B4F7C0A885294BC876BA7F6ECA9 -S315400204D05294C8DC2E4239805294D529A457FCFC4A -S315400204E05294E16FDACFF9375294EDAEDE6B10FEDD -S315400204F05294F9E6BBC4ECB3529506177F5491BBAE -S3154002050052951241356CF6E052951E63EA3D95B01E -S3154002051052952A7FA9D2F8EA529536948017481006 -S31540020520529542A278D2D03652954EA99FAC8A0FA6 -S3154002053052955AAA002A9D5A529566A3A5B2E1B18E -S31540020540529572969B8B5CD852957E82ECDABE8D22 -S3154002055052958A68A4A8D9F352959647CDDF1CA531 -S315400205605295A220734903775295ADF29F948CFB24 -S315400205705295B9BE5D52A9DA5295C583B6F7AB0319 -S315400205805295D142B6DBADC55295DCFB673B05DFE2 -S315400205905295E8ADD236A58F5295F45A01D483B41A -S315400205A0529600000000000052960B9FD68A455490 -S315400205B0529617398F2AAA48529622CD337F0FE890 -S315400205C052962E5ACD0C3EBE529639E2653E421B9B -S315400205D0529645640568C1C3529650DFB6C759F470 -S315400205E052965C55827DF1D2529667C57199104BEF -S315400205F05296732F8D0E2F7752967E93DDBC0E73D5 -S31540020600529689F26C6B01D05296954B41CD4293EC -S315400206100BC0A4068F346C9B0BC093731C185447B3 -S315400206200BC083008E183C230BC072AE83A9704A5E -S315400206300BC0627C9CC166FF0BC0526A7ACE64A430 -S315400206400BC04277C0B04ADA0BC032A412B191A0B5 -S315400206500BC022EF168069500BC0135873280473DF -S315400206600BC003DFD10A08480BBFE909B3B04632D3 -S315400206700BBFCA8E711B8E880BBFAC4D32D4143061 -S315400206800BBF8E4553D34B1B0BBF7076318237EF70 -S315400206900BBF52DF2BADF99C0BBF357FA47C936C0D -S315400206A00BBF18570061F5EB0BBEFB64A61545154B -S315400206B00BBEDEA7FE865A2B0BBEC22074D37FBC6E -S315400206C00BBEA5CD763F66690BBE89AE722750F04A -S315400206D00BBE6DC2D9F976230BBE520A212B976CFB -S315400206E00BBE3683BD31CAA20BBE1B2F257575CAFA -S315400206F00BBE000BD34C7BAF0BBDE51941F097FE09 -S315400207000BBDCA56EE76E9D00BBDAFC457C7AB7325 -S315400207100BBD9560FE9616690BBD7B2C65587275AE -S315400207200BBD612610404EC00BBD474D8532E409D4 -S315400207300BBD2DA24BC19EDF0BBD1423ED22D10171 -S315400207400BBCFAD1F42A88E40BBCE1ABED438E80B4 -S315400207500BBCC8B1666884820BBCAFE1EF1D2D01AC -S315400207600BBC973D1867D0EF0BBC7EC274CAC962F8 -S315400207700BBC6671983E29FE0BBC4E4A18298BA9C2 -S315400207800BBC364B8B5DF6DB0BBC1E758A0FECBF82 -S315400207900BBC06C7ADD18E7E0BBBEF41918CE1F609 -S315400207A00BBBD7E2D17E33360BBBC0AB0B2E921BB3 -S315400207B00BBBA999DD6E6B650BBB92AEE8503CA7AD -S315400207C00BBB7BE9CD2362720BBB654A2E6F002CB5 -S315400207D00BBB4ECFAFED00FE0BBB3879F685313FF2 -S315400207E00BBB2248A8486FDE0BBB0C3B6C6BF73B3E -S315400207F00BBAF651EB44BCEE0BBAE08BCE42E7F1B4 -S315400208000BBACAE8BFED5CC00BBAB5686BDD5EDDFC -S315400208100BBAA00A7EBA475E0BBA8ACEA6354FEB12 -S315400208200BBA75B4910571DB0BBA60BBEEE358EFB8 -S315400208300BBA4BE4708569410BBA372DC79BD7FE7D -S315400208400BBA2297A6CCD68C0BBA0E21C1B0CFA03A -S315400208500BB9F9CBCCCEB6050BB9E5957D98648B31 -S315400208600BB9D17E8A670EE70BB9BD86AA77C3104C -S315400208700BB9A9AD95E7FAC40BB995F305B23CE5B8 -S315400208800BB98256B3AACE570BB96ED85A7C7206AA -S315400208900BB95B77B5A537C80BB94834817359CCC8 -S315400208A00BB9350E7B02284D0BB922056037032E54 -S315400208B00BB90F18EFBE614A0BB8FC48E908E522AE -S315400208C00BB8E9950C487EA90BB8D6FD1A6D99E886 -S315400208D00BB8C480D5245A340BB8B21FFED1E1BC42 -S315400208E00BB89FDA5A91A5260BB88DAFAC32CB0A1C -S315400208F00BB87B9FB83596F60BB869AA43C8DFE1B9 -S315400209000BB857CF14C791B50BB8460DF1B639C6D9 -S315400209100BB83466A1C09DF90BB822D8ECB75E6E0F -S315400209200BB811649B0DA16B0BB8000975D6C9595A -S315400209300BB7EEC746C434A50BB7DD9DD823075285 -S315400209400BB7CC8CF4D9FE010BB7BB9468674A50FF -S315400209500BB7AAB3FEDE78540BB799EB84E65D0C6F -S315400209600BB7893AC7B70D960BB778A19517DF0132 -S315400209700BB7681FBB5D6E910BB757B50967B24C93 -S315400209800BB747614EA011A20BB737245AF786140C -S315400209900BB726FDFEE4C3A00BB716EE0B6268E862 -S315400209A00BB706F451ED36CE0BB6F710A4824F8044 -S315400209B00BB6E742D59D7CB40BB6D78AB8377D0EC7 -S315400209C00BB6C7E81FC458720BB6B85AE031BB32F1 -S315400209D00BB6A8E2CDE557F90BB6997FBDBB50459C -S315400209E00BB68A318504A35C0BB67AF7F985A39BCD -S315400209F00BB66BD2F17471FF0BB65CC243777FCEF6 -S31540020A000BB64DC5C6A416420BB63EDD527CE4116A -S31540020A100BB63008BEF090CF0BB62147E45855EBE3 -S31540020A200BB6129A9B769D520BB60400BD75A584F1 -S31540020A300BB5F57A23E62B070BB5E706A8BE172CAE -S31540020A400BB5D8A6265733FF0BB5CA58776DE54B7B -S31540020A500BB5BC1D771FE6AB0BB5ADF500EB0E78BB -S31540020A600BB59FDEF0AC15940BB591DB229D63F27C -S31540020A700BB583E97355E1C10BB57609BFC7CD32D4 -S31540020A800BB5683BE53F94B80BB55A7FC162B5B624 -S31540020A900BB54CD5322E9F7F0BB53F3C15F79AA12D -S31540020AA00BB531B44B67B45A0BB5243DB17DAE306C -S31540020AB00BB516D8278BF18F0BB509838D37876710 -S31540020AC00BB4FC3FC27713AE0BB4EF0CA791D4BB69 -S31540020AD00BB4E1EA1D1EA6680BB4D4D8040308E59C -S31540020AE00BB4C7D63D722B370BB4BAE4AAEBF9481E -S31540020AF00BB4AE032E3C2D7E0BB4A131A97965C948 -S31540020B000BB4946FFF043C1C0BB487BE118662364D -S31540020B100BB47B1BC3F1C0BF0BB46E88F97F999BA4 -S31540020B200BB4620595AFAD730BB455917C476454D3 -S31540020B300BB4492C9150F96C0BB43CD6B91AA9C8DE -S31540020B400BB4308FD835E60B0BB42457D3768716C1 -S31540020B500BB4182E8FF205900BB40C13F2FEB43B75 -S31540020B600BB40007E232FD1F0BB3F40A4364A167DC -S31540020B700BB3E81AFCA7FBF00BB3DC39F44F468AF9 -S31540020B800BB3D06710E9E1C30BB3C4A239439F4FFD -S31540020B900BB3B8EB54640EF10BB3AD42498DCDDFC6 -S31540020BA00BB3A1A7003DD89B0BB39619602ADF2B46 -S31540020BB00BB38A9951449BB80BB37F26BBB32B79AF -S31540020BC00BB373C187D669EA0BB368699E454E4437 -S31540020BD00BB35D1EE7CD4B2D0BB351E14D71B09872 -S31540020BE00BB346B0B86B0FC30BB33B8D1226A15A5B -S31540020BF00BB330764445ADAC0BB3256C389CF6EB63 -S31540020C000BB31A6ED934256E0BB30F7E104535F5EC -S31540020C100BB30499C83BE9D60BB2F9C1EBB53923FC -S31540020C200BB2EEF6657EC6AA0BB2E437209655D5D0 -S31540020C300BB2D984082942630BB2CEDD0793F9E79A -S31540020C400BB2C4420A6177190BB2B9B2FC4ABEDA98 -S31540020C500BB2AF2FC9365EFF0BB2A4B85D37EEC1F9 -S31540020C600BB29A4CA48F90E30BB28FEC8BA9777997 -S31540020C700BB28597FF1D694D0BB27B4EEBAE48DD3D -S31540020C800BB271113E499CEE0BB266DEE4071AA81E -S31540020C900BB25CB7CA2831380BB2529BDE1796F7B5 -S31540020CA00BB2488B0D68D8030BB23E8545D7E65A40 -S31540020CB00BB2348A7548AB540BB22A9A89C69A97B4 -S31540020CC00BB220B5718446610BB216DB1ADAF53FD8 -S31540020CD00BB20D0B744A39100BB203466C77876C14 -S31540020CE00BB1F98BF22DD3490BB1EFDBF45D27FF44 -S31540020CF00BB1E636621A457E0BB1DC9B2A9E3DD588 -S31540020D000BB1D30A3D4613EE0BB1C98389925B817F -S31540020D100BB1C006FF26DA3F0BB1B6948DCA2A281C -S31540020D200BB1AD2C25655D0F0BB1A3CDB603A13D2D -S31540020D300BB19A792FD1E7410BB1912E831E88D2FE -S31540020D400BB187EDA058F0D60BB17EB6781144733D -S31540020D500BB17588FAF80D3A0BB16C6519DDE45D95 -S31540020D600BB1634AC5B31EEF0BB15A39EF877B28E5 -S31540020D700BB151328889CEAE0BB148348207B5DB0E -S31540020D800BB13F3FCD6D43FF0BB136545C44B49A31 -S31540020D900BB12D7220361D870BB124990B07221BEE -S31540020DA00BB11BC90E9AA72D0BB113021CF0880F6B -S31540020DB00BB10A4428254C650BB1018F2271DEE541 -S31540020DC00BB0F8E2FE2B44F40BB0F03FADC2572312 -S31540020DD00BB0E7A523C37A850BB0DF1352D65AD997 -S31540020DE00BB0D68A2DBDA58C0BB0CE09A756C589A8 -S31540020DF00BB0C591B2999FDB0BB0BD2242985115FB -S31540020E000BB0B4BB4A7EEB870BB0AC5CBD933636B7 -S31540020E1065300000653010006530200065303000D6 -S31540020E2065304000653050006530600065307000C6 -S31540020E3065308000653090006530A0006530B000B6 -S31540020E406530C0006530D0006530E0006530F000A6 -S31540020E506531000065311000653120006531300092 -S31540020E606531400065315000653160006531700082 -S31540020E7065318000653190006531A0006531B00072 -S31540020E806531C0006531D0006531E0006531F00062 -S31540020E90653200006532100065322000653230004E -S31540020EA0653240006532500065326000653270003E -S31540020EB065328000653290006532A0006532B0002E -S31540020EC06532C0006532D0006532E0006532F0001E -S31540020ED0653300006533100065332000653330000A -S31540020EE065334000653350006533600065337000FA -S31540020EF065338000653390006533A0006533B000EA -S31540020F006533C0006533D0006533E0006533F000D9 -S31540020F1065340000653410006534200065343000C5 -S31540020F2065344000653450006534600065347000B5 -S31540020F3065348000653490006534A0006534B000A5 -S31540020F406534C0006534D0006534E0006534F00095 -S31540020F506535000065351000653520006535300081 -S31540020F606535400065355000653560006535700071 -S31540020F7065358000653590006535A0006535B00061 -S31540020F806535C0006535D0006535E0006535F00051 -S31540020F90653600006536100065362000653630003D -S31540020FA0653640006536500065366000653670002D -S31540020FB065368000653690006536A0006536B0001D -S31540020FC06536C0006536D0006536E0006536F0000D -S31540020FD065370000653710006537200065373000F9 -S31540020FE065374000653750006537600065377000E9 -S31540020FF065378000653790006537A0006537B000D9 -S315400210006537C0006537D0006537E0006537F000C8 -S3154002101065380000653810006538200065383000B4 -S3154002102065384000653850006538600065387000A4 -S3154002103065388000653890006538A0006538B00094 -S315400210406538C0006538D0006538E0006538F00084 -S315400210506539000065391000653920006539300070 -S315400210606539400065395000653960006539700060 -S3154002107065398000653990006539A0006539B00050 -S315400210806539C0006539D0006539E0006539F00040 -S31540021090653A0000653A1000653A2000653A30002C -S315400210A0653A4000653A5000653A6000653A70001C -S315400210B0653A8000653A9000653AA000653AB0000C -S315400210C0653AC000653AD000653AE000653AF000FC -S315400210D0653B0000653B1000653B2000653B3000E8 -S315400210E0653B4000653B5000653B6000653B7000D8 -S315400210F0653B8000653B9000653BA000653BB000C8 -S31540021100653BC000653BD000653BE000653BF000B7 -S31540021110653C0000653C1000653C2000653C3000A3 -S31540021120653C4000653C5000653C6000653C700093 -S31540021130653C8000653C9000653CA000653CB00083 -S31540021140653CC000653CD000653CE000653CF00073 -S31540021150653D0000653D1000653D2000653D30005F -S31540021160653D4000653D5000653D6000653D70004F -S31540021170653D8000653D9000653DA000653DB0003F -S31540021180653DC000653DD000653DE000653DF0002F -S31540021190653E0000653E1000653E2000653E30001B -S315400211A0653E4000653E5000653E6000653E70000B -S315400211B0653E8000653E9000653EA000653EB000FB -S315400211C0653EC000653ED000653EE000653EF000EB -S315400211D0653F0000653F1000653F2000653F3000D7 -S315400211E0653F4000653F5000653F6000653F7000C7 -S315400211F0653F8000653F9000653FA000653FB000B7 -S31540021200653FC000653FD000653FE000653FF000A6 -S315400212104200000000000000400FFFFFFFFFFFFFFB -S315400212204200000000200000420FFFFFFFFFFFFFC9 -S3154002123040000000000000004210000000080000CC -S3154002124042000000000000013EB000000000000124 -S315400212504200000000000002420F484C0137D2080B -S31540021260C20E780F256007AB41BA079B7AF94BA0AD -S315400212704201484C0137D208420E780F256007AB2F -S315400212804217E02D934BECDA420F484C0137D20815 -S31540021290C21E780F256007ABC20DA7D249883D4EC4 -S315400212A0421F484C0137D208C20E780F256007AB61 -S315400212B042100C446E87CE32C03340AB371208918F -S315400212C00000000000000000C03340AB3712089116 -S315400212D00000000000000000C29E7A0F236007A6AD -S315400212E0C29E7A0F236007A66F3F484C0137D20849 -S315400212F06E2E780F256007AB6F3F485B3D3F64B863 -S315400213006F3F484C0137D208EE2E780F256007AB67 -S315400213106F3F483CC5303F587FE2F780AB123809F1 -S315400213207FD00000000000007FEAF780AB12380948 -S31540021330002000000000000080280000000000009D -S3154002134080100000000000007FEFF780AB123809E2 -S315400213507FEFF2010203A1117FF0000000000000BE -S315400213600010000000001000801FFFFFF203A111D1 -S315400213708000000000000000001ABCD000023809BC -S31540021380801ABCD0000001110000000000000000DD -S315400213907E71000000000000416010000000000065 -S315400213A07FE11100000000000178100000000000FB -S315400213B03E880000FFF0000000120C00C073F800E7 -S315400213C0C1EFFFFFC00020003FB3C75D224F280F89 -S315400213D0C1B3C75CFAC08192A12FFF8000001FFFF4 -S315400213E03EE0000000FF0000A01FFF8001FE18073C -S315400213F041CFFFFE0000002040303FFFFFFFFFFDD0 -S3154002140042103FFEFC00000D3FD000003FEFFFFFC1 -S31540021410BFD0000010000000BFB000004FF0003FF8 -S3154002142001701000000000003E8000011A0000001A -S3154002143000000000000000007E7C0000000000006A -S31540021440416A1000010000107FF000000000000019 -S3154002145075012034056AC000FA1009091000104FC0 -S31540021460FFF00000000000000100203040030200AF -S31540021470003020340000A00B0000000000000000F5 -S315400214807FE0001010200001400000000010200AFA -S315400214907FF00000000000003FEFDFF00FFC484AFB -S315400214A0BFF80000000000007FFF000000000000BF -S315400214B07FFFE000000000007FF400000000000013 -S315400214C07FC00000000000007FF80000000000001E -S315400214D07FF0000000000000FFF000000000000066 -S315400214E0FFF0000000000000800000000000000045 -S315400214F000000000000100000000000000000000A3 +S315400200D000000000000000000000000000000001D7 +S315400200E00000000100000000BF8000000000000088 +S315400200F0BFF0000000000000800000000000000089 +S315400201000000000000000000400000000000000067 +S3154002011040080000000000004018000000000000F7 +S315400201200000000000000000000000000000000087 +S3154002013000000000000000003FF000000000000048 +S3154002014040080000000000003FF0000040000000B0 +S3154002015000000000000000003F8000004040000018 +S315400201600000000000000000000000000000000047 +S315400201700000000000000000000000000000000037 +S315400201804800000100000000480000000000000096 +S3154002019046C00000000000003FF0000000000000E2 +S315400201A0400000000000000040080000000000007F +S315400201B03F80000000000000000000000001000037 +S315400201C08000000000000000FFF000000000000078 +S315400201D0FFF00000000000007FF000000000000079 +S315400201E07FF80000000000007FC000000000000011 +S315400201F07FF40000000000007FFFE00000000000E6 +S315400202007FFF000000000000BFF800000000000071 +S315400202103FEFDFF00FFC484A7E710000000000000D +S3154002022041601000000000007FE111000000000064 +S3154002023001781000000000003E880000FFF0000038 +S3154002024000120C00C073F800C1EFFFFFC00020008F +S315400202503FB3C75D224F280FC1B3C75CFAC0819234 +S31540020260A12FFF8000001FFF3EE0000000FF0000BC +S31540020270A01FFF8001FE180741CFFFFE00000020AD +S3154002028040303FFFFFFFFFFD42103FFEFC00000DE6 +S315400202903FD000003FEFFFFFBFD00000100000003C +S315400202A0BFB000004FF0003F017010000000000098 +S315400202B03E8000011A00000000000000000000001D +S315400202C07E7C000000000000416A10000100001020 +S315400202D07FF000000000000075012034056AC0006E +S315400202E0FA1009091000104FFFF00000000000004C +S315400202F00100203040030200003020340000A00BF1 +S3154002030000000000000000007FE000101020000105 +S31540020310400000000010200A7FF0000000000000AC +S315400203204200000000000000400FFFFFFFFFFFFFFA +S315400203304200000000200000420FFFFFFFFFFFFFC8 +S3154002034040000000000000004210000000080000CB +S3154002035042000000000000013EB000000000000123 +S315400203604200000000000002420F484C0137D2080A +S31540020370C20E780F256007AB41BA079B7AF94BA0AC +S315400203804201484C0137D208420E780F256007AB2E +S315400203904217E02D934BECDA420F484C0137D20814 +S315400203A0C21E780F256007ABC20DA7D249883D4EC3 +S315400203B0421F484C0137D208C20E780F256007AB60 +S315400203C042100C446E87CE32C03340AB371208918E +S315400203D00000000000000000C03340AB3712089115 +S315400203E00000000000000000C29E7A0F236007A6AC +S315400203F0C29E7A0F236007A66F3F484C0137D20848 +S315400204006E2E780F256007AB6F3F485B3D3F64B861 +S315400204106F3F484C0137D208EE2E780F256007AB66 +S315400204206F3F483CC5303F587FE2F780AB123809F0 +S315400204307FD00000000000007FEAF780AB12380947 +S31540020440002000000000000080280000000000009C +S3154002045080100000000000007FEFF780AB123809E1 +S315400204607FEFF2010203A1117FF0000000000000BD +S315400204700010000000001000801FFFFFF203A111D0 +S315400204808000000000000000001ABCD000023809BB +S31540020490801ABCD0000001110000000000000000DC +S315400204A06530000065301000653020006530300050 +S315400204B06530400065305000653060006530700040 +S315400204C065308000653090006530A0006530B00030 +S315400204D06530C0006530D0006530E0006530F00020 +S315400204E0653100006531100065312000653130000C +S315400204F065314000653150006531600065317000FC +S3154002050065318000653190006531A0006531B000EB +S315400205106531C0006531D0006531E0006531F000DB +S3154002052065320000653210006532200065323000C7 +S3154002053065324000653250006532600065327000B7 +S3154002054065328000653290006532A0006532B000A7 +S315400205506532C0006532D0006532E0006532F00097 +S315400205606533000065331000653320006533300083 +S315400205706533400065335000653360006533700073 +S3154002058065338000653390006533A0006533B00063 +S315400205906533C0006533D0006533E0006533F00053 +S315400205A0653400006534100065342000653430003F +S315400205B0653440006534500065346000653470002F +S315400205C065348000653490006534A0006534B0001F +S315400205D06534C0006534D0006534E0006534F0000F +S315400205E065350000653510006535200065353000FB +S315400205F065354000653550006535600065357000EB +S3154002060065358000653590006535A0006535B000DA +S315400206106535C0006535D0006535E0006535F000CA +S3154002062065360000653610006536200065363000B6 +S3154002063065364000653650006536600065367000A6 +S3154002064065368000653690006536A0006536B00096 +S315400206506536C0006536D0006536E0006536F00086 +S315400206606537000065371000653720006537300072 +S315400206706537400065375000653760006537700062 +S3154002068065378000653790006537A0006537B00052 +S315400206906537C0006537D0006537E0006537F00042 +S315400206A0653800006538100065382000653830002E +S315400206B0653840006538500065386000653870001E +S315400206C065388000653890006538A0006538B0000E +S315400206D06538C0006538D0006538E0006538F000FE +S315400206E065390000653910006539200065393000EA +S315400206F065394000653950006539600065397000DA +S3154002070065398000653990006539A0006539B000C9 +S315400207106539C0006539D0006539E0006539F000B9 +S31540020720653A0000653A1000653A2000653A3000A5 +S31540020730653A4000653A5000653A6000653A700095 +S31540020740653A8000653A9000653AA000653AB00085 +S31540020750653AC000653AD000653AE000653AF00075 +S31540020760653B0000653B1000653B2000653B300061 +S31540020770653B4000653B5000653B6000653B700051 +S31540020780653B8000653B9000653BA000653BB00041 +S31540020790653BC000653BD000653BE000653BF00031 +S315400207A0653C0000653C1000653C2000653C30001D +S315400207B0653C4000653C5000653C6000653C70000D +S315400207C0653C8000653C9000653CA000653CB000FD +S315400207D0653CC000653CD000653CE000653CF000ED +S315400207E0653D0000653D1000653D2000653D3000D9 +S315400207F0653D4000653D5000653D6000653D7000C9 +S31540020800653D8000653D9000653DA000653DB000B8 +S31540020810653DC000653DD000653DE000653DF000A8 +S31540020820653E0000653E1000653E2000653E300094 +S31540020830653E4000653E5000653E6000653E700084 +S31540020840653E8000653E9000653EA000653EB00074 +S31540020850653EC000653ED000653EE000653EF00064 +S31540020860653F0000653F1000653F2000653F300050 +S31540020870653F4000653F5000653F6000653F700040 +S31540020880653F8000653F9000653FA000653FB00030 +S31540020890653FC000653FD000653FE000653FF00020 +S315400208A00BC0A4068F346C9B0BC093731C18544721 +S315400208B00BC083008E183C230BC072AE83A9704ACC +S315400208C00BC0627C9CC166FF0BC0526A7ACE64A49E +S315400208D00BC04277C0B04ADA0BC032A412B191A023 +S315400208E00BC022EF168069500BC01358732804734D +S315400208F00BC003DFD10A08480BBFE909B3B0463241 +S315400209000BBFCA8E711B8E880BBFAC4D32D41430CE +S315400209100BBF8E4553D34B1B0BBF7076318237EFDD +S315400209200BBF52DF2BADF99C0BBF357FA47C936C7A +S315400209300BBF18570061F5EB0BBEFB64A6154515B8 +S315400209400BBEDEA7FE865A2B0BBEC22074D37FBCDB +S315400209500BBEA5CD763F66690BBE89AE722750F0B7 +S315400209600BBE6DC2D9F976230BBE520A212B976C68 +S315400209700BBE3683BD31CAA20BBE1B2F257575CA67 +S315400209800BBE000BD34C7BAF0BBDE51941F097FE76 +S315400209900BBDCA56EE76E9D00BBDAFC457C7AB7393 +S315400209A00BBD9560FE9616690BBD7B2C655872751C +S315400209B00BBD612610404EC00BBD474D8532E40942 +S315400209C00BBD2DA24BC19EDF0BBD1423ED22D101DF +S315400209D00BBCFAD1F42A88E40BBCE1ABED438E8022 +S315400209E00BBCC8B1666884820BBCAFE1EF1D2D011A +S315400209F00BBC973D1867D0EF0BBC7EC274CAC96266 +S31540020A000BBC6671983E29FE0BBC4E4A18298BA92F +S31540020A100BBC364B8B5DF6DB0BBC1E758A0FECBFEF +S31540020A200BBC06C7ADD18E7E0BBBEF41918CE1F676 +S31540020A300BBBD7E2D17E33360BBBC0AB0B2E921B20 +S31540020A400BBBA999DD6E6B650BBB92AEE8503CA71A +S31540020A500BBB7BE9CD2362720BBB654A2E6F002C22 +S31540020A600BBB4ECFAFED00FE0BBB3879F685313F5F +S31540020A700BBB2248A8486FDE0BBB0C3B6C6BF73BAB +S31540020A800BBAF651EB44BCEE0BBAE08BCE42E7F121 +S31540020A900BBACAE8BFED5CC00BBAB5686BDD5EDD6A +S31540020AA00BBAA00A7EBA475E0BBA8ACEA6354FEB80 +S31540020AB00BBA75B4910571DB0BBA60BBEEE358EF26 +S31540020AC00BBA4BE4708569410BBA372DC79BD7FEEB +S31540020AD00BBA2297A6CCD68C0BBA0E21C1B0CFA0A8 +S31540020AE00BB9F9CBCCCEB6050BB9E5957D98648B9F +S31540020AF00BB9D17E8A670EE70BB9BD86AA77C310BA +S31540020B000BB9A9AD95E7FAC40BB995F305B23CE525 +S31540020B100BB98256B3AACE570BB96ED85A7C720617 +S31540020B200BB95B77B5A537C80BB94834817359CC35 +S31540020B300BB9350E7B02284D0BB922056037032EC1 +S31540020B400BB90F18EFBE614A0BB8FC48E908E5221B +S31540020B500BB8E9950C487EA90BB8D6FD1A6D99E8F3 +S31540020B600BB8C480D5245A340BB8B21FFED1E1BCAF +S31540020B700BB89FDA5A91A5260BB88DAFAC32CB0A89 +S31540020B800BB87B9FB83596F60BB869AA43C8DFE126 +S31540020B900BB857CF14C791B50BB8460DF1B639C647 +S31540020BA00BB83466A1C09DF90BB822D8ECB75E6E7D +S31540020BB00BB811649B0DA16B0BB8000975D6C959C8 +S31540020BC00BB7EEC746C434A50BB7DD9DD8230752F3 +S31540020BD00BB7CC8CF4D9FE010BB7BB9468674A506D +S31540020BE00BB7AAB3FEDE78540BB799EB84E65D0CDD +S31540020BF00BB7893AC7B70D960BB778A19517DF01A0 +S31540020C000BB7681FBB5D6E910BB757B50967B24C00 +S31540020C100BB747614EA011A20BB737245AF7861479 +S31540020C200BB726FDFEE4C3A00BB716EE0B6268E8CF +S31540020C300BB706F451ED36CE0BB6F710A4824F80B1 +S31540020C400BB6E742D59D7CB40BB6D78AB8377D0E34 +S31540020C500BB6C7E81FC458720BB6B85AE031BB325E +S31540020C600BB6A8E2CDE557F90BB6997FBDBB504509 +S31540020C700BB68A318504A35C0BB67AF7F985A39B3A +S31540020C800BB66BD2F17471FF0BB65CC243777FCE63 +S31540020C900BB64DC5C6A416420BB63EDD527CE411D8 +S31540020CA00BB63008BEF090CF0BB62147E45855EB51 +S31540020CB00BB6129A9B769D520BB60400BD75A5845F +S31540020CC00BB5F57A23E62B070BB5E706A8BE172C1C +S31540020CD00BB5D8A6265733FF0BB5CA58776DE54BE9 +S31540020CE00BB5BC1D771FE6AB0BB5ADF500EB0E7829 +S31540020CF00BB59FDEF0AC15940BB591DB229D63F2EA +S31540020D000BB583E97355E1C10BB57609BFC7CD3241 +S31540020D100BB5683BE53F94B80BB55A7FC162B5B691 +S31540020D200BB54CD5322E9F7F0BB53F3C15F79AA19A +S31540020D300BB531B44B67B45A0BB5243DB17DAE30D9 +S31540020D400BB516D8278BF18F0BB509838D3787677D +S31540020D500BB4FC3FC27713AE0BB4EF0CA791D4BBD6 +S31540020D600BB4E1EA1D1EA6680BB4D4D8040308E509 +S31540020D700BB4C7D63D722B370BB4BAE4AAEBF9488B +S31540020D800BB4AE032E3C2D7E0BB4A131A97965C9B5 +S31540020D900BB4946FFF043C1C0BB487BE11866236BB +S31540020DA00BB47B1BC3F1C0BF0BB46E88F97F999B12 +S31540020DB00BB4620595AFAD730BB455917C47645441 +S31540020DC00BB4492C9150F96C0BB43CD6B91AA9C84C +S31540020DD00BB4308FD835E60B0BB42457D37687162F +S31540020DE00BB4182E8FF205900BB40C13F2FEB43BE3 +S31540020DF00BB40007E232FD1F0BB3F40A4364A1674A +S31540020E000BB3E81AFCA7FBF00BB3DC39F44F468A66 +S31540020E100BB3D06710E9E1C30BB3C4A239439F4F6A +S31540020E200BB3B8EB54640EF10BB3AD42498DCDDF33 +S31540020E300BB3A1A7003DD89B0BB39619602ADF2BB3 +S31540020E400BB38A9951449BB80BB37F26BBB32B791C +S31540020E500BB373C187D669EA0BB368699E454E44A4 +S31540020E600BB35D1EE7CD4B2D0BB351E14D71B098DF +S31540020E700BB346B0B86B0FC30BB33B8D1226A15AC8 +S31540020E800BB330764445ADAC0BB3256C389CF6EBD0 +S31540020E900BB31A6ED934256E0BB30F7E104535F55A +S31540020EA00BB30499C83BE9D60BB2F9C1EBB539236A +S31540020EB00BB2EEF6657EC6AA0BB2E437209655D53E +S31540020EC00BB2D984082942630BB2CEDD0793F9E708 +S31540020ED00BB2C4420A6177190BB2B9B2FC4ABEDA06 +S31540020EE00BB2AF2FC9365EFF0BB2A4B85D37EEC167 +S31540020EF00BB29A4CA48F90E30BB28FEC8BA9777905 +S31540020F000BB28597FF1D694D0BB27B4EEBAE48DDAA +S31540020F100BB271113E499CEE0BB266DEE4071AA88B +S31540020F200BB25CB7CA2831380BB2529BDE1796F722 +S31540020F300BB2488B0D68D8030BB23E8545D7E65AAD +S31540020F400BB2348A7548AB540BB22A9A89C69A9721 +S31540020F500BB220B5718446610BB216DB1ADAF53F45 +S31540020F600BB20D0B744A39100BB203466C77876C81 +S31540020F700BB1F98BF22DD3490BB1EFDBF45D27FFB1 +S31540020F800BB1E636621A457E0BB1DC9B2A9E3DD5F5 +S31540020F900BB1D30A3D4613EE0BB1C98389925B81ED +S31540020FA00BB1C006FF26DA3F0BB1B6948DCA2A288A +S31540020FB00BB1AD2C25655D0F0BB1A3CDB603A13D9B +S31540020FC00BB19A792FD1E7410BB1912E831E88D26C +S31540020FD00BB187EDA058F0D60BB17EB678114473AB +S31540020FE00BB17588FAF80D3A0BB16C6519DDE45D03 +S31540020FF00BB1634AC5B31EEF0BB15A39EF877B2853 +S315400210000BB151328889CEAE0BB148348207B5DB7B +S315400210100BB13F3FCD6D43FF0BB136545C44B49A9E +S315400210200BB12D7220361D870BB124990B07221B5B +S315400210300BB11BC90E9AA72D0BB113021CF0880FD8 +S315400210400BB10A4428254C650BB1018F2271DEE5AE +S315400210500BB0F8E2FE2B44F40BB0F03FADC257237F +S315400210600BB0E7A523C37A850BB0DF1352D65AD904 +S315400210700BB0D68A2DBDA58C0BB0CE09A756C58915 +S315400210800BB0C591B2999FDB0BB0BD224298511568 +S315400210900BB0B4BB4A7EEB870BB0AC5CBD93363625 +S315400210A0529000000000000052900FF807F60DEB38 +S315400210B052901FE03F61BAD052902FB8D4E30F4806 +S315400210C052903F81F636B80C52904F3BD03C0A6460 +S315400210D052905EE68EFAD48B52906E825DA8FC2BBD +S315400210E052907E0F66AFED0752908D8DD3B1D9AA3D +S315400210F052909CFDCD8ED0095290AC5F7C69A3C8BC +S315400211005290BBB307ACAFDB5290CAF8960E710D44 +S315400211105290DA304D95FB065290E95A539F492C2C +S315400211205290F876CCDF6CD952910785DD689A29C0 +S3154002113052911687A8AE14A35291257C5187FD0978 +S3154002114052913463FA37014E5291433EC467EFFBE4 +S315400211505291520CD1372FEB529160CE41341D74CD +S3154002116052916F8334644DF952917E2BCA46BAB975 +S3154002117052918CC821D6D3E352919B58598F7C9F6A +S315400211805291A9DC8F6DF1045291B854E0F496A0C5 +S315400211905291C6C16B2DB8705291D5224AAE2EE1FC +S315400211A05291E3779B97F4A85291F1C1799CA8FF9B +S315400211B0529200000000000052920E33499A21A931 +S315400211C052921C5B70D9F82452922A788FC76DE5E9 +S315400211D05292388AC0059C28529246921AD4EA49BB +S315400211E05292548EB9151E8552926280B3476096CA +S315400211F05292706821902E9A52927E451BB944C3F0 +S3154002120052928C17B9337834529299E011188575F7 +S315400212105292A79E3A2CD2E65292B5524AE1278E74 +S315400212205292C2FC595456A75292D09C7B54E03EED +S315400212305292DE32C66287415292EBBF4FAFDD4BCE +S315400212405292F9422C23C47E529306BB705AE7C38C +S315400212505293142B30A929AB52932191811B0A41F7 +S3154002126052932EEE7577041652933C42213EE0C9C4 +S315400212705293498C97B10540529356CDEBC9B5E28C +S31540021280529364063044530652937135779C8DCB04 +S3154002129052937E5BD40F95A152938B79579D3EAB69 +S315400212A05293988E1409212E5293A59A1ADBB2575D +S315400212B05293B29D7D6356625293BF984CB56C77FA +S315400212C05293CC8A99AF54535293D97474F76DF2B0 +S315400212D05293E655EEFE13675293F32F17FE8D0493 +S315400212E0529400000000000052940CC8B6D657C271 +S315400212F0529419894C2329F052942641CF5695721D +S31540021300529432F24FB01C7A52943F9ADC3F79CED5 +S3154002131052944C3B83E57153529458D455549C1A7B +S31540021320529465655F122FF6529471EEAF76C2C63D +S3154002133052947E7054AF098952948AEA5CBC935F98 +S315400213405294975CD57680885294A3C7CC8A358AC4 +S315400213505294B02B4F7C0A885294BC876BA7F6EC0A +S315400213605294C8DC2E4239805294D529A457FCFCAB +S315400213705294E16FDACFF9375294EDAEDE6B10FE3E +S315400213805294F9E6BBC4ECB3529506177F5491BB0F +S3154002139052951241356CF6E052951E63EA3D95B080 +S315400213A052952A7FA9D2F8EA529536948017481068 +S315400213B0529542A278D2D03652954EA99FAC8A0F08 +S315400213C052955AAA002A9D5A529566A3A5B2E1B1F0 +S315400213D0529572969B8B5CD852957E82ECDABE8D84 +S315400213E052958A68A4A8D9F352959647CDDF1CA593 +S315400213F05295A220734903775295ADF29F948CFB86 +S315400214005295B9BE5D52A9DA5295C583B6F7AB037A +S315400214105295D142B6DBADC55295DCFB673B05DF43 +S315400214205295E8ADD236A58F5295F45A01D483B47B +S31540021430529600000000000052960B9FD68A4554F1 +S31540021440529617398F2AAA48529622CD337F0FE8F1 +S3154002145052962E5ACD0C3EBE529639E2653E421BFC +S31540021460529645640568C1C3529650DFB6C759F4D1 +S3154002147052965C55827DF1D2529667C57199104B50 +S315400214805296732F8D0E2F7752967E93DDBC0E7336 +S31540021490529689F26C6B01D05296954B41CD42934E +S315400214A000000000000000000000000000000000F4 +S315400214B000000000000000000000000000000000E4 +S315400214C000000000000000000000000000000000D4 +S315400214D000000000000000000000000000000000C4 +S315400214E000000000000000000000000000000000B4 +S315400214F000000000000000000000000000000000A4 S315400215000000000000000000000000000000000093 S315400215100000000000000000000000000000000083 S315400215200000000000000000000000000000000073 @@ -9051,8 +10239,8 @@ S31540027FC00000000000000000000000000000000069 S31540027FD00000000000000000000000000000000059 S31540027FE00000000000000000000000000000000049 S31540027FF00000000000000000000000000000000039 -S315400280000000003F0000000C0000003F000000128C -S31540028010000000FF00000018000000000000000001 +S315400280000000000000000000000000000000000028 +S315400280100000000000000000000000000000000018 S315400280200000000000000000000000000000000008 S3154002803000000000000000000000000000000000F8 S3154002804000000000000000000000000000000000E8 @@ -15963,8 +17151,8 @@ S31540042FC000000000000000000000000000000000B7 S31540042FD000000000000000000000000000000000A7 S31540042FE00000000000000000000000000000000097 S31540042FF00000000000000000000000000000000087 -S315400430000000000000000000000000000000000076 -S315400430100000000000000000000000000000000066 +S3154004300000000018000000FF000000120000003F0E +S315400430100000000C0000003F00000000000000001B S315400430200000000000000000000000000000000056 S315400430300000000000000000000000000000000046 S315400430400000000000000000000000000000000036 @@ -17243,44 +18431,44 @@ S31540047FC00000000000000000000000000000000067 S31540047FD00000000000000000000000000000000057 S31540047FE00000000000000000000000000000000047 S31540047FF00000000000000000000000000000000037 -S315400480000000000000000000000000000000000026 -S315400480100000000000000000000000000000000016 -S315400480200000000000000000000000000000000006 -S3154004803000000000000000000000000000000000F6 -S3154004804000000000000000000000000000000000E6 -S3154004805000000000000000000000000000000000D6 -S3154004806000000000000000000000000000000000C6 -S3154004807000000000000000000000000000000000B6 -S3154004808000000000000000000000000000000000A6 -S315400480900000000000000000000000000000000096 -S315400480A00000000000000000000000000000000086 -S315400480B00000000000000000000000000000000076 -S315400480C00000000000000000000000000000000066 -S315400480D00000000000000000000000000000000056 -S315400480E00000000000000000000000000000000046 -S315400480F00000000000000000000000000000000036 -S315400481000000000000000000000000000000000025 -S315400481100000000000000000000000000000000015 -S315400481200000000000000000000000000000000005 -S3154004813000000000000000000000000000000000F5 -S3154004814000000000000000000000000000000000E5 -S3154004815000000000000000000000000000000000D5 -S3154004816000000000000000000000000000000000C5 -S3154004817000000000000000000000000000000000B5 -S3154004818000000000000000000000000000000000A5 -S315400481900000000000000000000000000000000095 -S315400481A00000000000000000000000000000000085 -S315400481B00000000000000000000000000000000075 -S315400481C00000000000000000000000000000000065 -S315400481D00000000000000000000000000000000055 -S315400481E00000000000000000000000000000000045 +S31540048000000000020000000300000000000000031E +S31540048010FFFFFFFEFFFFFFFF00000002FFFFFFFD23 +S315400480200000000000000000000000010000000005 +S3154004803000000000FFFFFFFF0000000000000001F9 +S31540048040FFFFFFFFFFFFFFFFFFFFFFFF00000001F1 +S31540048050FFFFFFFFFFFFFFFE0000000300000000DC +S31540048060FFFFFFFEFFFFFFFD0000000000000009C8 +S315400480700000000700000001FFFFFFF700000002B8 +S31540048080FFFFFFFCFFFFFFF800000002FFFFFFFCBD +S31540048090FFFFFFF8FFFFFFFC00000002000000089E +S315400480A0FFFFFFFCFFFFFFFEFFFFFFF8FFFFFFF8A8 +S315400480B000000001FFFFFFF8FFFFFFF7000000008C +S315400480C00000000B00000002000000050000002F25 +S315400480D0000000020000001700003039000002A72B +S315400480E000000012FFFF076C0000004DFFFFFCC6B6 +S315400480F000003039FFFFFD59FFFFFFEEFFFF076C1D +S31540048100FFFFFFB30000033A00000091FFFFE84180 +S3154004811000000000FFFFFD84FFFED02F000000009A +S315400481200000F6FA006E49810000000000000000DD +S3154004813000000000000000000000000200000003F0 +S3154004814000000000000000000000000100000000E4 +S31540048150FFFFFFFE0000000355555554FFFFFFFE89 +S315400481600000000355555554700FFFFE00000007EC +S315400481701002492400000000000000000000000036 +S315400481800000000200000003000000060000000298 +S31540048190FFFFFFFDFFFFFFFA0000000000000001A3 +S315400481A00000000000000000FFFFFFFF0000000089 +S315400481B000000001FFFFFFFFFFFFFFFFFFFFFFFF80 +S315400481C000000001FFFFFFFFFFFFFFFE000000036A +S315400481D0FFFFFFFAFFFFFFFEFFFFFFFD0000000663 +S315400481E0000000000000000000000009FFFFF0004E S315400481F00000000000000000000000000000000035 -S315400482000000000000000000000000000000000024 +S31540048200000000000000000100000002000000031E S315400482100000000000000000000000000000000014 -S315400482200000000000000000000000000000000004 -S3154004823000000000000000000000000000000000F4 +S315400482204004822800000000000000004004851439 +S31540048230400485E0400486AC0000000000000000D5 S3154004824000000000000000000000000000000000E4 -S3154004825000000000000000000000000000000000D4 +S315400482500000000000000000000000004001C0983B S3154004826000000000000000000000000000000000C4 S3154004827000000000000000000000000000000000B4 S3154004828000000000000000000000000000000000A4 @@ -17288,8 +18476,8 @@ S315400482900000000000000000000000000000000094 S315400482A00000000000000000000000000000000084 S315400482B00000000000000000000000000000000074 S315400482C00000000000000000000000000000000064 -S315400482D00000000000000000000000000000000054 -S315400482E00000000000000000000000000000000044 +S315400482D00000000000000001330EABCD1234E66D01 +S315400482E0DEEC0005000B000000000000000000006A S315400482F00000000000000000000000000000000034 S315400483000000000000000000000000000000000023 S315400483100000000000000000000000000000000013 @@ -17363,72 +18551,72 @@ S3154004874000000000000000000000000000000000DF S3154004875000000000000000000000000000000000CF S3154004876000000000000000000000000000000000BF S3154004877000000000000000000000000000000000AF -S31540048780000000000000000000000000000000009F -S31540048790000000000000000000000000000000008F -S315400487A0000000000000000000000000000000007F -S315400487B0000000000000000000000000000000006F -S315400487C0000000000000000000000000000000005F -S315400487D0000000000000000000000000000000004F -S315400487E0000000000000000000000000000000003F -S315400487F0000000000000000000000000000000002F -S31540048800000000000000000000000000000000001E -S31540048810000000000000000000000000000000000E -S3154004882000000000000000000000000000000000FE -S3154004883000000000000000000000000000000000EE -S3154004884000000000000000000000000000000000DE -S3154004885000000000000000000000000000000000CE -S3154004886000000000000000000000000000000000BE -S3154004887000000000000000000000000000000000AE -S31540048880000000000000000000000000000000009E -S31540048890000000000000000000000000000000008E -S315400488A0000000000000000000000000000000007E -S315400488B0000000000000000000000000000000006E -S315400488C0000000000000000000000000000000005E -S315400488D0000000000000000000000000000000004E -S315400488E0000000000000000000000000000000003E -S315400488F0000000000000000000000000000000002E -S31540048900000000000000000000000000000000001D -S31540048910000000000000000000000000000000000D -S3154004892000000000000000000000000000000000FD -S3154004893000000000000000000000000000000000ED -S3154004894000000000000000000000000000000000DD -S3154004895000000000000000000000000000000000CD -S3154004896000000000000000000000000000000000BD -S3154004897000000000000000000000000000000000AD -S31540048980000000000000000000000000000000009D -S31540048990000000000000000000000000000000008D -S315400489A0000000000000000000000000000000007D -S315400489B0000000000000000000000000000000006D -S315400489C0000000000000000000000000000000005D -S315400489D0000000000000000000000000000000004D -S315400489E0000000000000000000000000000000003D -S315400489F0000000000000000000000000000000002D -S31540048A00000000000000000000000000000000001C -S31540048A10000000000000000000000000000000000C -S31540048A2000000000000000000000000000000000FC -S31540048A3000000000000000000000000000000000EC -S31540048A4000000000000000000000000000000000DC -S31540048A5000000000000000000000000000000000CC -S31540048A6000000000000000000000000000000000BC -S31540048A7000000000000000000000000000000000AC -S31540048A80000000000000000000000000000000009C -S31540048A90000000000000000000000000000000008C -S31540048AA0000000000000000000000000000000007C -S31540048AB0000000000000000000000000000000006C -S31540048AC0000000000000000000000000000000005C -S31540048AD0000000000000000000000000000000004C -S31540048AE0000000000000000000000000000000003C -S31540048AF0000000000000000000000000000000002C -S31540048B00000000000000000000000000000000001B -S31540048B10000000000000000000000000000000000B -S31540048B2000000000000000000000000000000000FB -S31540048B3000000000000000000000000000000000EB -S31540048B4000000000000000000000000000000000DB -S31540048B5000000000000000000000000000000000CB -S31540048B6000000000000000000000000000000000BB -S31540048B7000000000000000000000000000000000AB -S31540048B80000000000000000000000000000000009B -S31540048B90000000000000000000000000000000008B +S315400487804004877840048778400487804004878083 +S315400487904004878840048788400487904004879033 +S315400487A04004879840048798400487A0400487A0E3 +S315400487B0400487A8400487A8400487B0400487B093 +S315400487C0400487B8400487B8400487C0400487C043 +S315400487D0400487C8400487C8400487D0400487D0F3 +S315400487E0400487D8400487D8400487E0400487E0A3 +S315400487F0400487E8400487E8400487F0400487F053 +S31540048800400487F8400487F8400488004004880000 +S3154004881040048808400488084004881040048810AE +S31540048820400488184004881840048820400488205E +S31540048830400488284004882840048830400488300E +S3154004884040048838400488384004884040048840BE +S31540048850400488484004884840048850400488506E +S31540048860400488584004885840048860400488601E +S3154004887040048868400488684004887040048870CE +S31540048880400488784004887840048880400488807E +S31540048890400488884004888840048890400488902E +S315400488A04004889840048898400488A0400488A0DE +S315400488B0400488A8400488A8400488B0400488B08E +S315400488C0400488B8400488B8400488C0400488C03E +S315400488D0400488C8400488C8400488D0400488D0EE +S315400488E0400488D8400488D8400488E0400488E09E +S315400488F0400488E8400488E8400488F0400488F04E +S31540048900400488F8400488F84004890040048900FB +S3154004891040048908400489084004891040048910A9 +S315400489204004891840048918400489204004892059 +S315400489304004892840048928400489304004893009 +S3154004894040048938400489384004894040048940B9 +S315400489504004894840048948400489504004895069 +S315400489604004895840048958400489604004896019 +S3154004897040048968400489684004897040048970C9 +S315400489804004897840048978400489804004898079 +S315400489904004898840048988400489904004899029 +S315400489A04004899840048998400489A0400489A0D9 +S315400489B0400489A8400489A8400489B0400489B089 +S315400489C0400489B8400489B8400489C0400489C039 +S315400489D0400489C8400489C8400489D0400489D0E9 +S315400489E0400489D8400489D8400489E0400489E099 +S315400489F0400489E8400489E8400489F0400489F049 +S31540048A00400489F8400489F840048A0040048A00F6 +S31540048A1040048A0840048A0840048A1040048A10A4 +S31540048A2040048A1840048A1840048A2040048A2054 +S31540048A3040048A2840048A2840048A3040048A3004 +S31540048A4040048A3840048A3840048A4040048A40B4 +S31540048A5040048A4840048A4840048A5040048A5064 +S31540048A6040048A5840048A5840048A6040048A6014 +S31540048A7040048A6840048A6840048A7040048A70C4 +S31540048A8040048A7840048A7840048A8040048A8074 +S31540048A9040048A8840048A8840048A9040048A9024 +S31540048AA040048A9840048A9840048AA040048AA0D4 +S31540048AB040048AA840048AA840048AB040048AB084 +S31540048AC040048AB840048AB840048AC040048AC034 +S31540048AD040048AC840048AC840048AD040048AD0E4 +S31540048AE040048AD840048AD840048AE040048AE094 +S31540048AF040048AE840048AE840048AF040048AF044 +S31540048B0040048AF840048AF840048B0040048B00F1 +S31540048B1040048B0840048B0840048B1040048B109F +S31540048B2040048B1840048B1840048B2040048B204F +S31540048B3040048B2840048B2840048B3040048B30FF +S31540048B4040048B3840048B3840048B4040048B40AF +S31540048B5040048B4840048B4840048B5040048B505F +S31540048B6040048B5840048B5840048B6040048B600F +S31540048B7040048B6840048B6840048B7040048B70BF +S31540048B8000020000FFFFFFFF0000000040048B8846 +S31540048B900000000000000000000000000000000289 S31540048BA0000000000000000000000000000000007B S31540048BB0000000000000000000000000000000006B S31540048BC0000000000000000000000000000000005B @@ -17437,2056 +18625,7 @@ S31540048BE0000000000000000000000000000000003B S31540048BF0000000000000000000000000000000002B S31540048C00000000000000000000000000000000001A S31540048C10000000000000000000000000000000000A -S31540048C2000000000000000000000000000000000FA -S31540048C3000000000000000000000000000000000EA -S31540048C4000000000000000000000000000000000DA -S31540048C5000000000000000000000000000000000CA -S31540048C6000000000000000000000000000000000BA -S31540048C7000000000000000000000000000000000AA -S31540048C80000000000000000000000000000000009A -S31540048C90000000000000000000000000000000008A -S31540048CA0000000000000000000000000000000007A -S31540048CB0000000000000000000000000000000006A -S31540048CC0000000000000000000000000000000005A -S31540048CD0000000000000000000000000000000004A -S31540048CE0000000000000000000000000000000003A -S31540048CF0000000000000000000000000000000002A -S31540048D000000000000000000000000000000000019 -S31540048D100000000000000000000000000000000009 -S31540048D2000000000000000000000000000000000F9 -S31540048D3000000000000000000000000000000000E9 -S31540048D4000000000000000000000000000000000D9 -S31540048D5000000000000000000000000000000000C9 -S31540048D6000000000000000000000000000000000B9 -S31540048D7000000000000000000000000000000000A9 -S31540048D800000000000000000000000000000000099 -S31540048D900000000000000000000000000000000089 -S31540048DA00000000000000000000000000000000079 -S31540048DB00000000000000000000000000000000069 -S31540048DC00000000000000000000000000000000059 -S31540048DD00000000000000000000000000000000049 -S31540048DE00000000000000000000000000000000039 -S31540048DF00000000000000000000000000000000029 -S31540048E000000000000000000000000000000000018 -S31540048E100000000000000000000000000000000008 -S31540048E2000000000000000000000000000000000F8 -S31540048E3000000000000000000000000000000000E8 -S31540048E4000000000000000000000000000000000D8 -S31540048E5000000000000000000000000000000000C8 -S31540048E6000000000000000000000000000000000B8 -S31540048E7000000000000000000000000000000000A8 -S31540048E800000000000000000000000000000000098 -S31540048E900000000000000000000000000000000088 -S31540048EA00000000000000000000000000000000078 -S31540048EB00000000000000000000000000000000068 -S31540048EC00000000000000000000000000000000058 -S31540048ED00000000000000000000000000000000048 -S31540048EE00000000000000000000000000000000038 -S31540048EF00000000000000000000000000000000028 -S31540048F000000000000000000000000000000000017 -S31540048F100000000000000000000000000000000007 -S31540048F2000000000000000000000000000000000F7 -S31540048F3000000000000000000000000000000000E7 -S31540048F4000000000000000000000000000000000D7 -S31540048F5000000000000000000000000000000000C7 -S31540048F6000000000000000000000000000000000B7 -S31540048F7000000000000000000000000000000000A7 -S31540048F800000000000000000000000000000000097 -S31540048F900000000000000000000000000000000087 -S31540048FA00000000000000000000000000000000077 -S31540048FB00000000000000000000000000000000067 -S31540048FC00000000000000000000000000000000057 -S31540048FD00000000000000000000000000000000047 -S31540048FE00000000000000000000000000000000037 -S31540048FF00000000000000000000000000000000027 -S315400490000000000000000000000000000000000016 -S315400490100000000000000000000000000000000006 -S3154004902000000000000000000000000000000000F6 -S3154004903000000000000000000000000000000000E6 -S3154004904000000000000000000000000000000000D6 -S3154004905000000000000000000000000000000000C6 -S3154004906000000000000000000000000000000000B6 -S3154004907000000000000000000000000000000000A6 -S315400490800000000000000000000000000000000096 -S315400490900000000000000000000000000000000086 -S315400490A00000000000000000000000000000000076 -S315400490B00000000000000000000000000000000066 -S315400490C00000000000000000000000000000000056 -S315400490D00000000000000000000000000000000046 -S315400490E00000000000000000000000000000000036 -S315400490F00000000000000000000000000000000026 -S315400491000000000000000000000000000000000015 -S315400491100000000000000000000000000000000005 -S3154004912000000000000000000000000000000000F5 -S3154004913000000000000000000000000000000000E5 -S3154004914000000000000000000000000000000000D5 -S3154004915000000000000000000000000000000000C5 -S3154004916000000000000000000000000000000000B5 -S3154004917000000000000000000000000000000000A5 -S315400491800000000000000000000000000000000095 -S315400491900000000000000000000000000000000085 -S315400491A00000000000000000000000000000000075 -S315400491B00000000000000000000000000000000065 -S315400491C00000000000000000000000000000000055 -S315400491D00000000000000000000000000000000045 -S315400491E00000000000000000000000000000000035 -S315400491F00000000000000000000000000000000025 -S315400492000000000000000000000000000000000014 -S315400492100000000000000000000000000000000004 -S3154004922000000000000000000000000000000000F4 -S3154004923000000000000000000000000000000000E4 -S3154004924000000000000000000000000000000000D4 -S3154004925000000000000000000000000000000000C4 -S3154004926000000000000000000000000000000000B4 -S3154004927000000000000000000000000000000000A4 -S315400492800000000000000000000000000000000094 -S315400492900000000000000000000000000000000084 -S315400492A00000000000000000000000000000000074 -S315400492B00000000000000000000000000000000064 -S315400492C00000000000000000000000000000000054 -S315400492D00000000000000000000000000000000044 -S315400492E00000000000000000000000000000000034 -S315400492F00000000000000000000000000000000024 -S315400493000000000000000000000000000000000013 -S315400493100000000000000000000000000000000003 -S3154004932000000000000000000000000000000000F3 -S3154004933000000000000000000000000000000000E3 -S3154004934000000000000000000000000000000000D3 -S3154004935000000000000000000000000000000000C3 -S3154004936000000000000000000000000000000000B3 -S3154004937000000000000000000000000000000000A3 -S315400493800000000000000000000000000000000093 -S315400493900000000000000000000000000000000083 -S315400493A00000000000000000000000000000000073 -S315400493B00000000000000000000000000000000063 -S315400493C00000000000000000000000000000000053 -S315400493D00000000000000000000000000000000043 -S315400493E00000000000000000000000000000000033 -S315400493F00000000000000000000000000000000023 -S315400494000000000000000000000000000000000012 -S315400494100000000000000000000000000000000002 -S3154004942000000000000000000000000000000000F2 -S3154004943000000000000000000000000000000000E2 -S3154004944000000000000000000000000000000000D2 -S3154004945000000000000000000000000000000000C2 -S3154004946000000000000000000000000000000000B2 -S3154004947000000000000000000000000000000000A2 -S315400494800000000000000000000000000000000092 -S315400494900000000000000000000000000000000082 -S315400494A00000000000000000000000000000000072 -S315400494B00000000000000000000000000000000062 -S315400494C00000000000000000000000000000000052 -S315400494D00000000000000000000000000000000042 -S315400494E00000000000000000000000000000000032 -S315400494F00000000000000000000000000000000022 -S315400495000000000000000000000000000000000011 -S315400495100000000000000000000000000000000001 -S3154004952000000000000000000000000000000000F1 -S3154004953000000000000000000000000000000000E1 -S3154004954000000000000000000000000000000000D1 -S3154004955000000000000000000000000000000000C1 -S3154004956000000000000000000000000000000000B1 -S3154004957000000000000000000000000000000000A1 -S315400495800000000000000000000000000000000091 -S315400495900000000000000000000000000000000081 -S315400495A00000000000000000000000000000000071 -S315400495B00000000000000000000000000000000061 -S315400495C00000000000000000000000000000000051 -S315400495D00000000000000000000000000000000041 -S315400495E00000000000000000000000000000000031 -S315400495F00000000000000000000000000000000021 -S315400496000000000000000000000000000000000010 -S315400496100000000000000000000000000000000000 -S3154004962000000000000000000000000000000000F0 -S3154004963000000000000000000000000000000000E0 -S3154004964000000000000000000000000000000000D0 -S3154004965000000000000000000000000000000000C0 -S3154004966000000000000000000000000000000000B0 -S3154004967000000000000000000000000000000000A0 -S315400496800000000000000000000000000000000090 -S315400496900000000000000000000000000000000080 -S315400496A00000000000000000000000000000000070 -S315400496B00000000000000000000000000000000060 -S315400496C00000000000000000000000000000000050 -S315400496D00000000000000000000000000000000040 -S315400496E00000000000000000000000000000000030 -S315400496F00000000000000000000000000000000020 -S31540049700000000000000000000000000000000000F -S3154004971000000000000000000000000000000000FF -S3154004972000000000000000000000000000000000EF -S3154004973000000000000000000000000000000000DF -S3154004974000000000000000000000000000000000CF -S3154004975000000000000000000000000000000000BF -S3154004976000000000000000000000000000000000AF -S31540049770000000000000000000000000000000009F -S31540049780000000000000000000000000000000008F -S31540049790000000000000000000000000000000007F -S315400497A0000000000000000000000000000000006F -S315400497B0000000000000000000000000000000005F -S315400497C0000000000000000000000000000000004F -S315400497D0000000000000000000000000000000003F -S315400497E0000000000000000000000000000000002F -S315400497F0000000000000000000000000000000001F -S31540049800000000000000000000000000000000000E -S3154004981000000000000000000000000000000000FE -S3154004982000000000000000000000000000000000EE -S3154004983000000000000000000000000000000000DE -S3154004984000000000000000000000000000000000CE -S3154004985000000000000000000000000000000000BE -S3154004986000000000000000000000000000000000AE -S31540049870000000000000000000000000000000009E -S31540049880000000000000000000000000000000008E -S31540049890000000000000000000000000000000007E -S315400498A0000000000000000000000000000000006E -S315400498B0000000000000000000000000000000005E -S315400498C0000000000000000000000000000000004E -S315400498D0000000000000000000000000000000003E -S315400498E0000000000000000000000000000000002E -S315400498F0000000000000000000000000000000001E -S31540049900000000000000000000000000000000000D -S3154004991000000000000000000000000000000000FD -S3154004992000000000000000000000000000000000ED -S3154004993000000000000000000000000000000000DD -S3154004994000000000000000000000000000000000CD -S3154004995000000000000000000000000000000000BD -S3154004996000000000000000000000000000000000AD -S31540049970000000000000000000000000000000009D -S31540049980000000000000000000000000000000008D -S31540049990000000000000000000000000000000007D -S315400499A0000000000000000000000000000000006D -S315400499B0000000000000000000000000000000005D -S315400499C0000000000000000000000000000000004D -S315400499D0000000000000000000000000000000003D -S315400499E0000000000000000000000000000000002D -S315400499F0000000000000000000000000000000001D -S31540049A00000000000000000000000000000000000C -S31540049A1000000000000000000000000000000000FC -S31540049A2000000000000000000000000000000000EC -S31540049A3000000000000000000000000000000000DC -S31540049A4000000000000000000000000000000000CC -S31540049A5000000000000000000000000000000000BC -S31540049A6000000000000000000000000000000000AC -S31540049A70000000000000000000000000000000009C -S31540049A80000000000000000000000000000000008C -S31540049A90000000000000000000000000000000007C -S31540049AA0000000000000000000000000000000006C -S31540049AB0000000000000000000000000000000005C -S31540049AC0000000000000000000000000000000004C -S31540049AD0000000000000000000000000000000003C -S31540049AE0000000000000000000000000000000002C -S31540049AF0000000000000000000000000000000001C -S31540049B00000000000000000000000000000000000B -S31540049B1000000000000000000000000000000000FB -S31540049B2000000000000000000000000000000000EB -S31540049B3000000000000000000000000000000000DB -S31540049B4000000000000000000000000000000000CB -S31540049B5000000000000000000000000000000000BB -S31540049B6000000000000000000000000000000000AB -S31540049B70000000000000000000000000000000009B -S31540049B80000000000000000000000000000000008B -S31540049B90000000000000000000000000000000007B -S31540049BA0000000000000000000000000000000006B -S31540049BB0000000000000000000000000000000005B -S31540049BC0000000000000000000000000000000004B -S31540049BD0000000000000000000000000000000003B -S31540049BE0000000000000000000000000000000002B -S31540049BF0000000000000000000000000000000001B -S31540049C00000000000000000000000000000000000A -S31540049C1000000000000000000000000000000000FA -S31540049C2000000000000000000000000000000000EA -S31540049C3000000000000000000000000000000000DA -S31540049C4000000000000000000000000000000000CA -S31540049C5000000000000000000000000000000000BA -S31540049C6000000000000000000000000000000000AA -S31540049C70000000000000000000000000000000009A -S31540049C80000000000000000000000000000000008A -S31540049C90000000000000000000000000000000007A -S31540049CA0000000000000000000000000000000006A -S31540049CB0000000000000000000000000000000005A -S31540049CC0000000000000000000000000000000004A -S31540049CD0000000000000000000000000000000003A -S31540049CE0000000000000000000000000000000002A -S31540049CF0000000000000000000000000000000001A -S31540049D000000000000000000000000000000000009 -S31540049D1000000000000000000000000000000000F9 -S31540049D2000000000000000000000000000000000E9 -S31540049D3000000000000000000000000000000000D9 -S31540049D4000000000000000000000000000000000C9 -S31540049D5000000000000000000000000000000000B9 -S31540049D6000000000000000000000000000000000A9 -S31540049D700000000000000000000000000000000099 -S31540049D800000000000000000000000000000000089 -S31540049D900000000000000000000000000000000079 -S31540049DA00000000000000000000000000000000069 -S31540049DB00000000000000000000000000000000059 -S31540049DC00000000000000000000000000000000049 -S31540049DD00000000000000000000000000000000039 -S31540049DE00000000000000000000000000000000029 -S31540049DF00000000000000000000000000000000019 -S31540049E000000000000000000000000000000000008 -S31540049E1000000000000000000000000000000000F8 -S31540049E2000000000000000000000000000000000E8 -S31540049E3000000000000000000000000000000000D8 -S31540049E4000000000000000000000000000000000C8 -S31540049E5000000000000000000000000000000000B8 -S31540049E6000000000000000000000000000000000A8 -S31540049E700000000000000000000000000000000098 -S31540049E800000000000000000000000000000000088 -S31540049E900000000000000000000000000000000078 -S31540049EA00000000000000000000000000000000068 -S31540049EB00000000000000000000000000000000058 -S31540049EC00000000000000000000000000000000048 -S31540049ED00000000000000000000000000000000038 -S31540049EE00000000000000000000000000000000028 -S31540049EF00000000000000000000000000000000018 -S31540049F000000000000000000000000000000000007 -S31540049F1000000000000000000000000000000000F7 -S31540049F2000000000000000000000000000000000E7 -S31540049F3000000000000000000000000000000000D7 -S31540049F4000000000000000000000000000000000C7 -S31540049F5000000000000000000000000000000000B7 -S31540049F6000000000000000000000000000000000A7 -S31540049F700000000000000000000000000000000097 -S31540049F800000000000000000000000000000000087 -S31540049F900000000000000000000000000000000077 -S31540049FA00000000000000000000000000000000067 -S31540049FB00000000000000000000000000000000057 -S31540049FC00000000000000000000000000000000047 -S31540049FD00000000000000000000000000000000037 -S31540049FE00000000000000000000000000000000027 -S31540049FF00000000000000000000000000000000017 -S3154004A0000000000000000000000000000000000006 -S3154004A01000000000000000000000000000000000F6 -S3154004A02000000000000000000000000000000000E6 -S3154004A03000000000000000000000000000000000D6 -S3154004A04000000000000000000000000000000000C6 -S3154004A05000000000000000000000000000000000B6 -S3154004A06000000000000000000000000000000000A6 -S3154004A0700000000000000000000000000000000096 -S3154004A0800000000000000000000000000000000086 -S3154004A0900000000000000000000000000000000076 -S3154004A0A00000000000000000000000000000000066 -S3154004A0B00000000000000000000000000000000056 -S3154004A0C00000000000000000000000000000000046 -S3154004A0D00000000000000000000000000000000036 -S3154004A0E00000000000000000000000000000000026 -S3154004A0F00000000000000000000000000000000016 -S3154004A1000000000000000000000000000000000005 -S3154004A11000000000000000000000000000000000F5 -S3154004A12000000000000000000000000000000000E5 -S3154004A13000000000000000000000000000000000D5 -S3154004A14000000000000000000000000000000000C5 -S3154004A15000000000000000000000000000000000B5 -S3154004A16000000000000000000000000000000000A5 -S3154004A1700000000000000000000000000000000095 -S3154004A1800000000000000000000000000000000085 -S3154004A1900000000000000000000000000000000075 -S3154004A1A00000000000000000000000000000000065 -S3154004A1B00000000000000000000000000000000055 -S3154004A1C00000000000000000000000000000000045 -S3154004A1D00000000000000000000000000000000035 -S3154004A1E00000000000000000000000000000000025 -S3154004A1F00000000000000000000000000000000015 -S3154004A2000000000000000000000000000000000004 -S3154004A21000000000000000000000000000000000F4 -S3154004A22000000000000000000000000000000000E4 -S3154004A23000000000000000000000000000000000D4 -S3154004A24000000000000000000000000000000000C4 -S3154004A25000000000000000000000000000000000B4 -S3154004A26000000000000000000000000000000000A4 -S3154004A2700000000000000000000000000000000094 -S3154004A2800000000000000000000000000000000084 -S3154004A2900000000000000000000000000000000074 -S3154004A2A00000000000000000000000000000000064 -S3154004A2B00000000000000000000000000000000054 -S3154004A2C00000000000000000000000000000000044 -S3154004A2D00000000000000000000000000000000034 -S3154004A2E00000000000000000000000000000000024 -S3154004A2F00000000000000000000000000000000014 -S3154004A3000000000000000000000000000000000003 -S3154004A31000000000000000000000000000000000F3 -S3154004A32000000000000000000000000000000000E3 -S3154004A33000000000000000000000000000000000D3 -S3154004A34000000000000000000000000000000000C3 -S3154004A35000000000000000000000000000000000B3 -S3154004A36000000000000000000000000000000000A3 -S3154004A3700000000000000000000000000000000093 -S3154004A3800000000000000000000000000000000083 -S3154004A3900000000000000000000000000000000073 -S3154004A3A00000000000000000000000000000000063 -S3154004A3B00000000000000000000000000000000053 -S3154004A3C00000000000000000000000000000000043 -S3154004A3D00000000000000000000000000000000033 -S3154004A3E00000000000000000000000000000000023 -S3154004A3F00000000000000000000000000000000013 -S3154004A4000000000000000000000000000000000002 -S3154004A41000000000000000000000000000000000F2 -S3154004A42000000000000000000000000000000000E2 -S3154004A43000000000000000000000000000000000D2 -S3154004A44000000000000000000000000000000000C2 -S3154004A45000000000000000000000000000000000B2 -S3154004A46000000000000000000000000000000000A2 -S3154004A4700000000000000000000000000000000092 -S3154004A4800000000000000000000000000000000082 -S3154004A4900000000000000000000000000000000072 -S3154004A4A00000000000000000000000000000000062 -S3154004A4B00000000000000000000000000000000052 -S3154004A4C00000000000000000000000000000000042 -S3154004A4D00000000000000000000000000000000032 -S3154004A4E00000000000000000000000000000000022 -S3154004A4F00000000000000000000000000000000012 -S3154004A5000000000000000000000000000000000001 -S3154004A51000000000000000000000000000000000F1 -S3154004A52000000000000000000000000000000000E1 -S3154004A53000000000000000000000000000000000D1 -S3154004A54000000000000000000000000000000000C1 -S3154004A55000000000000000000000000000000000B1 -S3154004A56000000000000000000000000000000000A1 -S3154004A5700000000000000000000000000000000091 -S3154004A5800000000000000000000000000000000081 -S3154004A5900000000000000000000000000000000071 -S3154004A5A00000000000000000000000000000000061 -S3154004A5B00000000000000000000000000000000051 -S3154004A5C00000000000000000000000000000000041 -S3154004A5D00000000000000000000000000000000031 -S3154004A5E00000000000000000000000000000000021 -S3154004A5F00000000000000000000000000000000011 -S3154004A6000000000000000000000000000000000000 -S3154004A61000000000000000000000000000000000F0 -S3154004A62000000000000000000000000000000000E0 -S3154004A63000000000000000000000000000000000D0 -S3154004A64000000000000000000000000000000000C0 -S3154004A65000000000000000000000000000000000B0 -S3154004A66000000000000000000000000000000000A0 -S3154004A6700000000000000000000000000000000090 -S3154004A6800000000000000000000000000000000080 -S3154004A6900000000000000000000000000000000070 -S3154004A6A00000000000000000000000000000000060 -S3154004A6B00000000000000000000000000000000050 -S3154004A6C00000000000000000000000000000000040 -S3154004A6D00000000000000000000000000000000030 -S3154004A6E00000000000000000000000000000000020 -S3154004A6F00000000000000000000000000000000010 -S3154004A70000000000000000000000000000000000FF -S3154004A71000000000000000000000000000000000EF -S3154004A72000000000000000000000000000000000DF -S3154004A73000000000000000000000000000000000CF -S3154004A74000000000000000000000000000000000BF -S3154004A75000000000000000000000000000000000AF -S3154004A760000000000000000000000000000000009F -S3154004A770000000000000000000000000000000008F -S3154004A780000000000000000000000000000000007F -S3154004A790000000000000000000000000000000006F -S3154004A7A0000000000000000000000000000000005F -S3154004A7B0000000000000000000000000000000004F -S3154004A7C0000000000000000000000000000000003F -S3154004A7D0000000000000000000000000000000002F -S3154004A7E0000000000000000000000000000000001F -S3154004A7F0000000000000000000000000000000000F -S3154004A80000000000000000000000000000000000FE -S3154004A81000000000000000000000000000000000EE -S3154004A82000000000000000000000000000000000DE -S3154004A83000000000000000000000000000000000CE -S3154004A84000000000000000000000000000000000BE -S3154004A85000000000000000000000000000000000AE -S3154004A860000000000000000000000000000000009E -S3154004A870000000000000000000000000000000008E -S3154004A880000000000000000000000000000000007E -S3154004A890000000000000000000000000000000006E -S3154004A8A0000000000000000000000000000000005E -S3154004A8B0000000000000000000000000000000004E -S3154004A8C0000000000000000000000000000000003E -S3154004A8D0000000000000000000000000000000002E -S3154004A8E0000000000000000000000000000000001E -S3154004A8F0000000000000000000000000000000000E -S3154004A90000000000000000000000000000000000FD -S3154004A91000000000000000000000000000000000ED -S3154004A92000000000000000000000000000000000DD -S3154004A93000000000000000000000000000000000CD -S3154004A94000000000000000000000000000000000BD -S3154004A95000000000000000000000000000000000AD -S3154004A960000000000000000000000000000000009D -S3154004A970000000000000000000000000000000008D -S3154004A980000000000000000000000000000000007D -S3154004A990000000000000000000000000000000006D -S3154004A9A0000000000000000000000000000000005D -S3154004A9B0000000000000000000000000000000004D -S3154004A9C0000000000000000000000000000000003D -S3154004A9D0000000000000000000000000000000002D -S3154004A9E0000000000000000000000000000000001D -S3154004A9F0000000000000000000000000000000000D -S3154004AA0000000000000000000000000000000000FC -S3154004AA1000000000000000000000000000000000EC -S3154004AA2000000000000000000000000000000000DC -S3154004AA3000000000000000000000000000000000CC -S3154004AA4000000000000000000000000000000000BC -S3154004AA5000000000000000000000000000000000AC -S3154004AA60000000000000000000000000000000009C -S3154004AA70000000000000000000000000000000008C -S3154004AA80000000000000000000000000000000007C -S3154004AA90000000000000000000000000000000006C -S3154004AAA0000000000000000000000000000000005C -S3154004AAB0000000000000000000000000000000004C -S3154004AAC0000000000000000000000000000000003C -S3154004AAD0000000000000000000000000000000002C -S3154004AAE0000000000000000000000000000000001C -S3154004AAF0000000000000000000000000000000000C -S3154004AB0000000000000000000000000000000000FB -S3154004AB1000000000000000000000000000000000EB -S3154004AB2000000000000000000000000000000000DB -S3154004AB3000000000000000000000000000000000CB -S3154004AB4000000000000000000000000000000000BB -S3154004AB5000000000000000000000000000000000AB -S3154004AB60000000000000000000000000000000009B -S3154004AB70000000000000000000000000000000008B -S3154004AB80000000000000000000000000000000007B -S3154004AB90000000000000000000000000000000006B -S3154004ABA0000000000000000000000000000000005B -S3154004ABB0000000000000000000000000000000004B -S3154004ABC0000000000000000000000000000000003B -S3154004ABD0000000000000000000000000000000002B -S3154004ABE0000000000000000000000000000000001B -S3154004ABF0000000000000000000000000000000000B -S3154004AC0000000000000000000000000000000000FA -S3154004AC1000000000000000000000000000000000EA -S3154004AC2000000000000000000000000000000000DA -S3154004AC3000000000000000000000000000000000CA -S3154004AC4000000000000000000000000000000000BA -S3154004AC5000000000000000000000000000000000AA -S3154004AC60000000000000000000000000000000009A -S3154004AC70000000000000000000000000000000008A -S3154004AC80000000000000000000000000000000007A -S3154004AC90000000000000000000000000000000006A -S3154004ACA0000000000000000000000000000000005A -S3154004ACB0000000000000000000000000000000004A -S3154004ACC0000000000000000000000000000000003A -S3154004ACD0000000000000000000000000000000002A -S3154004ACE0000000000000000000000000000000001A -S3154004ACF0000000000000000000000000000000000A -S3154004AD0000000000000000000000000000000000F9 -S3154004AD1000000000000000000000000000000000E9 -S3154004AD2000000000000000000000000000000000D9 -S3154004AD3000000000000000000000000000000000C9 -S3154004AD4000000000000000000000000000000000B9 -S3154004AD5000000000000000000000000000000000A9 -S3154004AD600000000000000000000000000000000099 -S3154004AD700000000000000000000000000000000089 -S3154004AD800000000000000000000000000000000079 -S3154004AD900000000000000000000000000000000069 -S3154004ADA00000000000000000000000000000000059 -S3154004ADB00000000000000000000000000000000049 -S3154004ADC00000000000000000000000000000000039 -S3154004ADD00000000000000000000000000000000029 -S3154004ADE00000000000000000000000000000000019 -S3154004ADF00000000000000000000000000000000009 -S3154004AE0000000000000000000000000000000000F8 -S3154004AE1000000000000000000000000000000000E8 -S3154004AE2000000000000000000000000000000000D8 -S3154004AE3000000000000000000000000000000000C8 -S3154004AE4000000000000000000000000000000000B8 -S3154004AE5000000000000000000000000000000000A8 -S3154004AE600000000000000000000000000000000098 -S3154004AE700000000000000000000000000000000088 -S3154004AE800000000000000000000000000000000078 -S3154004AE900000000000000000000000000000000068 -S3154004AEA00000000000000000000000000000000058 -S3154004AEB00000000000000000000000000000000048 -S3154004AEC00000000000000000000000000000000038 -S3154004AED00000000000000000000000000000000028 -S3154004AEE00000000000000000000000000000000018 -S3154004AEF00000000000000000000000000000000008 -S3154004AF0000000000000000000000000000000000F7 -S3154004AF1000000000000000000000000000000000E7 -S3154004AF2000000000000000000000000000000000D7 -S3154004AF3000000000000000000000000000000000C7 -S3154004AF4000000000000000000000000000000000B7 -S3154004AF5000000000000000000000000000000000A7 -S3154004AF600000000000000000000000000000000097 -S3154004AF700000000000000000000000000000000087 -S3154004AF800000000000000000000000000000000077 -S3154004AF900000000000000000000000000000000067 -S3154004AFA00000000000000000000000000000000057 -S3154004AFB00000000000000000000000000000000047 -S3154004AFC00000000000000000000000000000000037 -S3154004AFD00000000000000000000000000000000027 -S3154004AFE00000000000000000000000000000000017 -S3154004AFF00000000000000000000000000000000007 -S3154004B00000000000000000000000000000000000F6 -S3154004B01000000000000000000000000000000000E6 -S3154004B02000000000000000000000000000000000D6 -S3154004B03000000000000000000000000000000000C6 -S3154004B04000000000000000000000000000000000B6 -S3154004B05000000000000000000000000000000000A6 -S3154004B0600000000000000000000000000000000096 -S3154004B0700000000000000000000000000000000086 -S3154004B0800000000000000000000000000000000076 -S3154004B0900000000000000000000000000000000066 -S3154004B0A00000000000000000000000000000000056 -S3154004B0B00000000000000000000000000000000046 -S3154004B0C00000000000000000000000000000000036 -S3154004B0D00000000000000000000000000000000026 -S3154004B0E00000000000000000000000000000000016 -S3154004B0F00000000000000000000000000000000006 -S3154004B10000000000000000000000000000000000F5 -S3154004B11000000000000000000000000000000000E5 -S3154004B12000000000000000000000000000000000D5 -S3154004B13000000000000000000000000000000000C5 -S3154004B14000000000000000000000000000000000B5 -S3154004B15000000000000000000000000000000000A5 -S3154004B1600000000000000000000000000000000095 -S3154004B1700000000000000000000000000000000085 -S3154004B1800000000000000000000000000000000075 -S3154004B1900000000000000000000000000000000065 -S3154004B1A00000000000000000000000000000000055 -S3154004B1B00000000000000000000000000000000045 -S3154004B1C00000000000000000000000000000000035 -S3154004B1D00000000000000000000000000000000025 -S3154004B1E00000000000000000000000000000000015 -S3154004B1F00000000000000000000000000000000005 -S3154004B20000000000000000000000000000000000F4 -S3154004B21000000000000000000000000000000000E4 -S3154004B22000000000000000000000000000000000D4 -S3154004B23000000000000000000000000000000000C4 -S3154004B24000000000000000000000000000000000B4 -S3154004B25000000000000000000000000000000000A4 -S3154004B2600000000000000000000000000000000094 -S3154004B2700000000000000000000000000000000084 -S3154004B2800000000000000000000000000000000074 -S3154004B2900000000000000000000000000000000064 -S3154004B2A00000000000000000000000000000000054 -S3154004B2B00000000000000000000000000000000044 -S3154004B2C00000000000000000000000000000000034 -S3154004B2D00000000000000000000000000000000024 -S3154004B2E00000000000000000000000000000000014 -S3154004B2F00000000000000000000000000000000004 -S3154004B30000000000000000000000000000000000F3 -S3154004B31000000000000000000000000000000000E3 -S3154004B32000000000000000000000000000000000D3 -S3154004B33000000000000000000000000000000000C3 -S3154004B34000000000000000000000000000000000B3 -S3154004B35000000000000000000000000000000000A3 -S3154004B3600000000000000000000000000000000093 -S3154004B3700000000000000000000000000000000083 -S3154004B3800000000000000000000000000000000073 -S3154004B3900000000000000000000000000000000063 -S3154004B3A00000000000000000000000000000000053 -S3154004B3B00000000000000000000000000000000043 -S3154004B3C00000000000000000000000000000000033 -S3154004B3D00000000000000000000000000000000023 -S3154004B3E00000000000000000000000000000000013 -S3154004B3F00000000000000000000000000000000003 -S3154004B40000000000000000000000000000000000F2 -S3154004B41000000000000000000000000000000000E2 -S3154004B42000000000000000000000000000000000D2 -S3154004B43000000000000000000000000000000000C2 -S3154004B44000000000000000000000000000000000B2 -S3154004B45000000000000000000000000000000000A2 -S3154004B4600000000000000000000000000000000092 -S3154004B4700000000000000000000000000000000082 -S3154004B4800000000000000000000000000000000072 -S3154004B4900000000000000000000000000000000062 -S3154004B4A00000000000000000000000000000000052 -S3154004B4B00000000000000000000000000000000042 -S3154004B4C00000000000000000000000000000000032 -S3154004B4D00000000000000000000000000000000022 -S3154004B4E00000000000000000000000000000000012 -S3154004B4F00000000000000000000000000000000002 -S3154004B50000000000000000000000000000000000F1 -S3154004B51000000000000000000000000000000000E1 -S3154004B52000000000000000000000000000000000D1 -S3154004B53000000000000000000000000000000000C1 -S3154004B54000000000000000000000000000000000B1 -S3154004B55000000000000000000000000000000000A1 -S3154004B5600000000000000000000000000000000091 -S3154004B5700000000000000000000000000000000081 -S3154004B5800000000000000000000000000000000071 -S3154004B5900000000000000000000000000000000061 -S3154004B5A00000000000000000000000000000000051 -S3154004B5B00000000000000000000000000000000041 -S3154004B5C00000000000000000000000000000000031 -S3154004B5D00000000000000000000000000000000021 -S3154004B5E00000000000000000000000000000000011 -S3154004B5F00000000000000000000000000000000001 -S3154004B60000000000000000000000000000000000F0 -S3154004B61000000000000000000000000000000000E0 -S3154004B62000000000000000000000000000000000D0 -S3154004B63000000000000000000000000000000000C0 -S3154004B64000000000000000000000000000000000B0 -S3154004B65000000000000000000000000000000000A0 -S3154004B6600000000000000000000000000000000090 -S3154004B6700000000000000000000000000000000080 -S3154004B6800000000000000000000000000000000070 -S3154004B6900000000000000000000000000000000060 -S3154004B6A00000000000000000000000000000000050 -S3154004B6B00000000000000000000000000000000040 -S3154004B6C00000000000000000000000000000000030 -S3154004B6D00000000000000000000000000000000020 -S3154004B6E00000000000000000000000000000000010 -S3154004B6F00000000000000000000000000000000000 -S3154004B70000000000000000000000000000000000EF -S3154004B71000000000000000000000000000000000DF -S3154004B72000000000000000000000000000000000CF -S3154004B73000000000000000000000000000000000BF -S3154004B74000000000000000000000000000000000AF -S3154004B750000000000000000000000000000000009F -S3154004B760000000000000000000000000000000008F -S3154004B770000000000000000000000000000000007F -S3154004B780000000000000000000000000000000006F -S3154004B790000000000000000000000000000000005F -S3154004B7A0000000000000000000000000000000004F -S3154004B7B0000000000000000000000000000000003F -S3154004B7C0000000000000000000000000000000002F -S3154004B7D0000000000000000000000000000000001F -S3154004B7E0000000000000000000000000000000000F -S3154004B7F000000000000000000000000000000000FF -S3154004B80000000000000000000000000000000000EE -S3154004B81000000000000000000000000000000000DE -S3154004B82000000000000000000000000000000000CE -S3154004B83000000000000000000000000000000000BE -S3154004B84000000000000000000000000000000000AE -S3154004B850000000000000000000000000000000009E -S3154004B860000000000000000000000000000000008E -S3154004B870000000000000000000000000000000007E -S3154004B880000000000000000000000000000000006E -S3154004B890000000000000000000000000000000005E -S3154004B8A0000000000000000000000000000000004E -S3154004B8B0000000000000000000000000000000003E -S3154004B8C0000000000000000000000000000000002E -S3154004B8D0000000000000000000000000000000001E -S3154004B8E0000000000000000000000000000000000E -S3154004B8F000000000000000000000000000000000FE -S3154004B90000000000000000000000000000000000ED -S3154004B91000000000000000000000000000000000DD -S3154004B92000000000000000000000000000000000CD -S3154004B93000000000000000000000000000000000BD -S3154004B94000000000000000000000000000000000AD -S3154004B950000000000000000000000000000000009D -S3154004B960000000000000000000000000000000008D -S3154004B970000000000000000000000000000000007D -S3154004B980000000000000000000000000000000006D -S3154004B990000000000000000000000000000000005D -S3154004B9A0000000000000000000000000000000004D -S3154004B9B0000000000000000000000000000000003D -S3154004B9C0000000000000000000000000000000002D -S3154004B9D0000000000000000000000000000000001D -S3154004B9E0000000000000000000000000000000000D -S3154004B9F000000000000000000000000000000000FD -S3154004BA0000000000000000000000000000000000EC -S3154004BA1000000000000000000000000000000000DC -S3154004BA2000000000000000000000000000000000CC -S3154004BA3000000000000000000000000000000000BC -S3154004BA4000000000000000000000000000000000AC -S3154004BA50000000000000000000000000000000009C -S3154004BA60000000000000000000000000000000008C -S3154004BA70000000000000000000000000000000007C -S3154004BA80000000000000000000000000000000006C -S3154004BA90000000000000000000000000000000005C -S3154004BAA0000000000000000000000000000000004C -S3154004BAB0000000000000000000000000000000003C -S3154004BAC0000000000000000000000000000000002C -S3154004BAD0000000000000000000000000000000001C -S3154004BAE0000000000000000000000000000000000C -S3154004BAF000000000000000000000000000000000FC -S3154004BB0000000000000000000000000000000000EB -S3154004BB1000000000000000000000000000000000DB -S3154004BB2000000000000000000000000000000000CB -S3154004BB3000000000000000000000000000000000BB -S3154004BB4000000000000000000000000000000000AB -S3154004BB50000000000000000000000000000000009B -S3154004BB60000000000000000000000000000000008B -S3154004BB70000000000000000000000000000000007B -S3154004BB80000000000000000000000000000000006B -S3154004BB90000000000000000000000000000000005B -S3154004BBA0000000000000000000000000000000004B -S3154004BBB0000000000000000000000000000000003B -S3154004BBC0000000000000000000000000000000002B -S3154004BBD0000000000000000000000000000000001B -S3154004BBE0000000000000000000000000000000000B -S3154004BBF000000000000000000000000000000000FB -S3154004BC0000000000000000000000000000000000EA -S3154004BC1000000000000000000000000000000000DA -S3154004BC2000000000000000000000000000000000CA -S3154004BC3000000000000000000000000000000000BA -S3154004BC4000000000000000000000000000000000AA -S3154004BC50000000000000000000000000000000009A -S3154004BC60000000000000000000000000000000008A -S3154004BC70000000000000000000000000000000007A -S3154004BC80000000000000000000000000000000006A -S3154004BC90000000000000000000000000000000005A -S3154004BCA0000000000000000000000000000000004A -S3154004BCB0000000000000000000000000000000003A -S3154004BCC0000000000000000000000000000000002A -S3154004BCD0000000000000000000000000000000001A -S3154004BCE0000000000000000000000000000000000A -S3154004BCF000000000000000000000000000000000FA -S3154004BD0000000000000000000000000000000000E9 -S3154004BD1000000000000000000000000000000000D9 -S3154004BD2000000000000000000000000000000000C9 -S3154004BD3000000000000000000000000000000000B9 -S3154004BD4000000000000000000000000000000000A9 -S3154004BD500000000000000000000000000000000099 -S3154004BD600000000000000000000000000000000089 -S3154004BD700000000000000000000000000000000079 -S3154004BD800000000000000000000000000000000069 -S3154004BD900000000000000000000000000000000059 -S3154004BDA00000000000000000000000000000000049 -S3154004BDB00000000000000000000000000000000039 -S3154004BDC00000000000000000000000000000000029 -S3154004BDD00000000000000000000000000000000019 -S3154004BDE00000000000000000000000000000000009 -S3154004BDF000000000000000000000000000000000F9 -S3154004BE0000000000000000000000000000000000E8 -S3154004BE1000000000000000000000000000000000D8 -S3154004BE2000000000000000000000000000000000C8 -S3154004BE3000000000000000000000000000000000B8 -S3154004BE4000000000000000000000000000000000A8 -S3154004BE500000000000000000000000000000000098 -S3154004BE600000000000000000000000000000000088 -S3154004BE700000000000000000000000000000000078 -S3154004BE800000000000000000000000000000000068 -S3154004BE900000000000000000000000000000000058 -S3154004BEA00000000000000000000000000000000048 -S3154004BEB00000000000000000000000000000000038 -S3154004BEC00000000000000000000000000000000028 -S3154004BED00000000000000000000000000000000018 -S3154004BEE00000000000000000000000000000000008 -S3154004BEF000000000000000000000000000000000F8 -S3154004BF0000000000000000000000000000000000E7 -S3154004BF1000000000000000000000000000000000D7 -S3154004BF2000000000000000000000000000000000C7 -S3154004BF3000000000000000000000000000000000B7 -S3154004BF4000000000000000000000000000000000A7 -S3154004BF500000000000000000000000000000000097 -S3154004BF600000000000000000000000000000000087 -S3154004BF700000000000000000000000000000000077 -S3154004BF800000000000000000000000000000000067 -S3154004BF900000000000000000000000000000000057 -S3154004BFA00000000000000000000000000000000047 -S3154004BFB00000000000000000000000000000000037 -S3154004BFC00000000000000000000000000000000027 -S3154004BFD00000000000000000000000000000000017 -S3154004BFE00000000000000000000000000000000007 -S3154004BFF000000000000000000000000000000000F7 -S3154004C00000000000000000000000000000000000E6 -S3154004C01000000000000000000000000000000000D6 -S3154004C02000000000000000000000000000000000C6 -S3154004C03000000000000000000000000000000000B6 -S3154004C04000000000000000000000000000000000A6 -S3154004C0500000000000000000000000000000000096 -S3154004C0600000000000000000000000000000000086 -S3154004C0700000000000000000000000000000000076 -S3154004C0800000000000000000000000000000000066 -S3154004C0900000000000000000000000000000000056 -S3154004C0A00000000000000000000000000000000046 -S3154004C0B00000000000000000000000000000000036 -S3154004C0C00000000000000000000000000000000026 -S3154004C0D00000000000000000000000000000000016 -S3154004C0E00000000000000000000000000000000006 -S3154004C0F000000000000000000000000000000000F6 -S3154004C10000000000000000000000000000000000E5 -S3154004C11000000000000000000000000000000000D5 -S3154004C12000000000000000000000000000000000C5 -S3154004C13000000000000000000000000000000000B5 -S3154004C14000000000000000000000000000000000A5 -S3154004C1500000000000000000000000000000000095 -S3154004C1600000000000000000000000000000000085 -S3154004C1700000000000000000000000000000000075 -S3154004C1800000000000000000000000000000000065 -S3154004C1900000000000000000000000000000000055 -S3154004C1A00000000000000000000000000000000045 -S3154004C1B00000000000000000000000000000000035 -S3154004C1C00000000000000000000000000000000025 -S3154004C1D00000000000000000000000000000000015 -S3154004C1E00000000000000000000000000000000005 -S3154004C1F000000000000000000000000000000000F5 -S3154004C20000000000000000000000000000000000E4 -S3154004C21000000000000000000000000000000000D4 -S3154004C22000000000000000000000000000000000C4 -S3154004C23000000000000000000000000000000000B4 -S3154004C24000000000000000000000000000000000A4 -S3154004C2500000000000000000000000000000000094 -S3154004C2600000000000000000000000000000000084 -S3154004C2700000000000000000000000000000000074 -S3154004C2800000000000000000000000000000000064 -S3154004C2900000000000000000000000000000000054 -S3154004C2A00000000000000000000000000000000044 -S3154004C2B00000000000000000000000000000000034 -S3154004C2C00000000000000000000000000000000024 -S3154004C2D00000000000000000000000000000000014 -S3154004C2E00000000000000000000000000000000004 -S3154004C2F000000000000000000000000000000000F4 -S3154004C30000000000000000000000000000000000E3 -S3154004C31000000000000000000000000000000000D3 -S3154004C32000000000000000000000000000000000C3 -S3154004C33000000000000000000000000000000000B3 -S3154004C34000000000000000000000000000000000A3 -S3154004C3500000000000000000000000000000000093 -S3154004C3600000000000000000000000000000000083 -S3154004C3700000000000000000000000000000000073 -S3154004C3800000000000000000000000000000000063 -S3154004C3900000000000000000000000000000000053 -S3154004C3A00000000000000000000000000000000043 -S3154004C3B00000000000000000000000000000000033 -S3154004C3C00000000000000000000000000000000023 -S3154004C3D00000000000000000000000000000000013 -S3154004C3E00000000000000000000000000000000003 -S3154004C3F000000000000000000000000000000000F3 -S3154004C40000000000000000000000000000000000E2 -S3154004C41000000000000000000000000000000000D2 -S3154004C42000000000000000000000000000000000C2 -S3154004C43000000000000000000000000000000000B2 -S3154004C44000000000000000000000000000000000A2 -S3154004C4500000000000000000000000000000000092 -S3154004C4600000000000000000000000000000000082 -S3154004C4700000000000000000000000000000000072 -S3154004C4800000000000000000000000000000000062 -S3154004C4900000000000000000000000000000000052 -S3154004C4A00000000000000000000000000000000042 -S3154004C4B00000000000000000000000000000000032 -S3154004C4C00000000000000000000000000000000022 -S3154004C4D00000000000000000000000000000000012 -S3154004C4E00000000000000000000000000000000002 -S3154004C4F000000000000000000000000000000000F2 -S3154004C50000000000000000000000000000000000E1 -S3154004C51000000000000000000000000000000000D1 -S3154004C52000000000000000000000000000000000C1 -S3154004C53000000000000000000000000000000000B1 -S3154004C54000000000000000000000000000000000A1 -S3154004C5500000000000000000000000000000000091 -S3154004C5600000000000000000000000000000000081 -S3154004C5700000000000000000000000000000000071 -S3154004C5800000000000000000000000000000000061 -S3154004C5900000000000000000000000000000000051 -S3154004C5A00000000000000000000000000000000041 -S3154004C5B00000000000000000000000000000000031 -S3154004C5C00000000000000000000000000000000021 -S3154004C5D00000000000000000000000000000000011 -S3154004C5E00000000000000000000000000000000001 -S3154004C5F000000000000000000000000000000000F1 -S3154004C60000000000000000000000000000000000E0 -S3154004C61000000000000000000000000000000000D0 -S3154004C62000000000000000000000000000000000C0 -S3154004C63000000000000000000000000000000000B0 -S3154004C64000000000000000000000000000000000A0 -S3154004C6500000000000000000000000000000000090 -S3154004C6600000000000000000000000000000000080 -S3154004C6700000000000000000000000000000000070 -S3154004C6800000000000000000000000000000000060 -S3154004C6900000000000000000000000000000000050 -S3154004C6A00000000000000000000000000000000040 -S3154004C6B00000000000000000000000000000000030 -S3154004C6C00000000000000000000000000000000020 -S3154004C6D00000000000000000000000000000000010 -S3154004C6E00000000000000000000000000000000000 -S3154004C6F000000000000000000000000000000000F0 -S3154004C70000000000000000000000000000000000DF -S3154004C71000000000000000000000000000000000CF -S3154004C72000000000000000000000000000000000BF -S3154004C73000000000000000000000000000000000AF -S3154004C740000000000000000000000000000000009F -S3154004C750000000000000000000000000000000008F -S3154004C760000000000000000000000000000000007F -S3154004C770000000000000000000000000000000006F -S3154004C780000000000000000000000000000000005F -S3154004C790000000000000000000000000000000004F -S3154004C7A0000000000000000000000000000000003F -S3154004C7B0000000000000000000000000000000002F -S3154004C7C0000000000000000000000000000000001F -S3154004C7D0000000000000000000000000000000000F -S3154004C7E000000000000000000000000000000000FF -S3154004C7F000000000000000000000000000000000EF -S3154004C80000000000000000000000000000000000DE -S3154004C81000000000000000000000000000000000CE -S3154004C82000000000000000000000000000000000BE -S3154004C83000000000000000000000000000000000AE -S3154004C840000000000000000000000000000000009E -S3154004C850000000000000000000000000000000008E -S3154004C860000000000000000000000000000000007E -S3154004C870000000000000000000000000000000006E -S3154004C880000000000000000000000000000000005E -S3154004C890000000000000000000000000000000004E -S3154004C8A0000000000000000000000000000000003E -S3154004C8B0000000000000000000000000000000002E -S3154004C8C0000000000000000000000000000000001E -S3154004C8D0000000000000000000000000000000000E -S3154004C8E000000000000000000000000000000000FE -S3154004C8F000000000000000000000000000000000EE -S3154004C90000000000000000000000000000000000DD -S3154004C91000000000000000000000000000000000CD -S3154004C92000000000000000000000000000000000BD -S3154004C93000000000000000000000000000000000AD -S3154004C940000000000000000000000000000000009D -S3154004C950000000000000000000000000000000008D -S3154004C960000000000000000000000000000000007D -S3154004C970000000000000000000000000000000006D -S3154004C980000000000000000000000000000000005D -S3154004C990000000000000000000000000000000004D -S3154004C9A0000000000000000000000000000000003D -S3154004C9B0000000000000000000000000000000002D -S3154004C9C0000000000000000000000000000000001D -S3154004C9D0000000000000000000000000000000000D -S3154004C9E000000000000000000000000000000000FD -S3154004C9F000000000000000000000000000000000ED -S3154004CA0000000000000000000000000000000000DC -S3154004CA1000000000000000000000000000000000CC -S3154004CA2000000000000000000000000000000000BC -S3154004CA3000000000000000000000000000000000AC -S3154004CA40000000000000000000000000000000009C -S3154004CA50000000000000000000000000000000008C -S3154004CA60000000000000000000000000000000007C -S3154004CA70000000000000000000000000000000006C -S3154004CA80000000000000000000000000000000005C -S3154004CA90000000000000000000000000000000004C -S3154004CAA0000000000000000000000000000000003C -S3154004CAB0000000000000000000000000000000002C -S3154004CAC0000000000000000000000000000000001C -S3154004CAD0000000000000000000000000000000000C -S3154004CAE000000000000000000000000000000000FC -S3154004CAF000000000000000000000000000000000EC -S3154004CB0000000000000000000000000000000000DB -S3154004CB1000000000000000000000000000000000CB -S3154004CB2000000000000000000000000000000000BB -S3154004CB3000000000000000000000000000000000AB -S3154004CB40000000000000000000000000000000009B -S3154004CB50000000000000000000000000000000008B -S3154004CB60000000000000000000000000000000007B -S3154004CB70000000000000000000000000000000006B -S3154004CB80000000000000000000000000000000005B -S3154004CB90000000000000000000000000000000004B -S3154004CBA0000000000000000000000000000000003B -S3154004CBB0000000000000000000000000000000002B -S3154004CBC0000000000000000000000000000000001B -S3154004CBD0000000000000000000000000000000000B -S3154004CBE000000000000000000000000000000000FB -S3154004CBF000000000000000000000000000000000EB -S3154004CC0000000000000000000000000000000000DA -S3154004CC1000000000000000000000000000000000CA -S3154004CC2000000000000000000000000000000000BA -S3154004CC3000000000000000000000000000000000AA -S3154004CC40000000000000000000000000000000009A -S3154004CC50000000000000000000000000000000008A -S3154004CC60000000000000000000000000000000007A -S3154004CC70000000000000000000000000000000006A -S3154004CC80000000000000000000000000000000005A -S3154004CC90000000000000000000000000000000004A -S3154004CCA0000000000000000000000000000000003A -S3154004CCB0000000000000000000000000000000002A -S3154004CCC0000000000000000000000000000000001A -S3154004CCD0000000000000000000000000000000000A -S3154004CCE000000000000000000000000000000000FA -S3154004CCF000000000000000000000000000000000EA -S3154004CD0000000000000000000000000000000000D9 -S3154004CD1000000000000000000000000000000000C9 -S3154004CD2000000000000000000000000000000000B9 -S3154004CD3000000000000000000000000000000000A9 -S3154004CD400000000000000000000000000000000099 -S3154004CD500000000000000000000000000000000089 -S3154004CD600000000000000000000000000000000079 -S3154004CD700000000000000000000000000000000069 -S3154004CD800000000000000000000000000000000059 -S3154004CD900000000000000000000000000000000049 -S3154004CDA00000000000000000000000000000000039 -S3154004CDB00000000000000000000000000000000029 -S3154004CDC00000000000000000000000000000000019 -S3154004CDD00000000000000000000000000000000009 -S3154004CDE000000000000000000000000000000000F9 -S3154004CDF000000000000000000000000000000000E9 -S3154004CE0000000000000000000000000000000000D8 -S3154004CE1000000000000000000000000000000000C8 -S3154004CE2000000000000000000000000000000000B8 -S3154004CE3000000000000000000000000000000000A8 -S3154004CE400000000000000000000000000000000098 -S3154004CE500000000000000000000000000000000088 -S3154004CE600000000000000000000000000000000078 -S3154004CE700000000000000000000000000000000068 -S3154004CE800000000000000000000000000000000058 -S3154004CE900000000000000000000000000000000048 -S3154004CEA00000000000000000000000000000000038 -S3154004CEB00000000000000000000000000000000028 -S3154004CEC00000000000000000000000000000000018 -S3154004CED00000000000000000000000000000000008 -S3154004CEE000000000000000000000000000000000F8 -S3154004CEF000000000000000000000000000000000E8 -S3154004CF0000000000000000000000000000000000D7 -S3154004CF1000000000000000000000000000000000C7 -S3154004CF2000000000000000000000000000000000B7 -S3154004CF3000000000000000000000000000000000A7 -S3154004CF400000000000000000000000000000000097 -S3154004CF500000000000000000000000000000000087 -S3154004CF600000000000000000000000000000000077 -S3154004CF700000000000000000000000000000000067 -S3154004CF800000000000000000000000000000000057 -S3154004CF900000000000000000000000000000000047 -S3154004CFA00000000000000000000000000000000037 -S3154004CFB00000000000000000000000000000000027 -S3154004CFC00000000000000000000000000000000017 -S3154004CFD00000000000000000000000000000000007 -S3154004CFE000000000000000000000000000000000F7 -S3154004CFF000000000000000000000000000000000E7 -S3154004D00000000000000000000000000000000000D6 -S3154004D01000000000000000000000000000000000C6 -S3154004D02000000000000000000000000000000000B6 -S3154004D03000000000000000000000000000000000A6 -S3154004D0400000000000000000000000000000000096 -S3154004D0500000000000000000000000000000000086 -S3154004D0600000000000000000000000000000000076 -S3154004D0700000000000000000000000000000000066 -S3154004D0800000000000000000000000000000000056 -S3154004D0900000000000000000000000000000000046 -S3154004D0A00000000000000000000000000000000036 -S3154004D0B00000000000000000000000000000000026 -S3154004D0C00000000000000000000000000000000016 -S3154004D0D00000000000000000000000000000000006 -S3154004D0E000000000000000000000000000000000F6 -S3154004D0F000000000000000000000000000000000E6 -S3154004D10000000000000000000000000000000000D5 -S3154004D11000000000000000000000000000000000C5 -S3154004D12000000000000000000000000000000000B5 -S3154004D13000000000000000000000000000000000A5 -S3154004D1400000000000000000000000000000000095 -S3154004D1500000000000000000000000000000000085 -S3154004D1600000000000000000000000000000000075 -S3154004D1700000000000000000000000000000000065 -S3154004D1800000000000000000000000000000000055 -S3154004D1900000000000000000000000000000000045 -S3154004D1A00000000000000000000000000000000035 -S3154004D1B00000000000000000000000000000000025 -S3154004D1C00000000000000000000000000000000015 -S3154004D1D00000000000000000000000000000000005 -S3154004D1E000000000000000000000000000000000F5 -S3154004D1F000000000000000000000000000000000E5 -S3154004D20000000000000000000000000000000000D4 -S3154004D21000000000000000000000000000000000C4 -S3154004D22000000000000000000000000000000000B4 -S3154004D23000000000000000000000000000000000A4 -S3154004D2400000000000000000000000000000000094 -S3154004D2500000000000000000000000000000000084 -S3154004D2600000000000000000000000000000000074 -S3154004D2700000000000000000000000000000000064 -S3154004D2800000000000000000000000000000000054 -S3154004D2900000000000000000000000000000000044 -S3154004D2A00000000000000000000000000000000034 -S3154004D2B00000000000000000000000000000000024 -S3154004D2C00000000000000000000000000000000014 -S3154004D2D00000000000000000000000000000000004 -S3154004D2E000000000000000000000000000000000F4 -S3154004D2F000000000000000000000000000000000E4 -S3154004D30000000000000000000000000000000000D3 -S3154004D31000000000000000000000000000000000C3 -S3154004D32000000000000000000000000000000000B3 -S3154004D33000000000000000000000000000000000A3 -S3154004D3400000000000000000000000000000000093 -S3154004D3500000000000000000000000000000000083 -S3154004D3600000000000000000000000000000000073 -S3154004D3700000000000000000000000000000000063 -S3154004D3800000000000000000000000000000000053 -S3154004D3900000000000000000000000000000000043 -S3154004D3A00000000000000000000000000000000033 -S3154004D3B00000000000000000000000000000000023 -S3154004D3C00000000000000000000000000000000013 -S3154004D3D00000000000000000000000000000000003 -S3154004D3E000000000000000000000000000000000F3 -S3154004D3F000000000000000000000000000000000E3 -S3154004D40000000000000000000000000000000000D2 -S3154004D41000000000000000000000000000000000C2 -S3154004D42000000000000000000000000000000000B2 -S3154004D43000000000000000000000000000000000A2 -S3154004D4400000000000000000000000000000000092 -S3154004D4500000000000000000000000000000000082 -S3154004D4600000000000000000000000000000000072 -S3154004D4700000000000000000000000000000000062 -S3154004D4800000000000000000000000000000000052 -S3154004D4900000000000000000000000000000000042 -S3154004D4A00000000000000000000000000000000032 -S3154004D4B00000000000000000000000000000000022 -S3154004D4C00000000000000000000000000000000012 -S3154004D4D00000000000000000000000000000000002 -S3154004D4E000000000000000000000000000000000F2 -S3154004D4F000000000000000000000000000000000E2 -S3154004D50000000000000000000000000000000000D1 -S3154004D51000000000000000000000000000000000C1 -S3154004D52000000000000000000000000000000000B1 -S3154004D53000000000000000000000000000000000A1 -S3154004D5400000000000000000000000000000000091 -S3154004D5500000000000000000000000000000000081 -S3154004D5600000000000000000000000000000000071 -S3154004D5700000000000000000000000000000000061 -S3154004D5800000000000000000000000000000000051 -S3154004D5900000000000000000000000000000000041 -S3154004D5A00000000000000000000000000000000031 -S3154004D5B00000000000000000000000000000000021 -S3154004D5C00000000000000000000000000000000011 -S3154004D5D00000000000000000000000000000000001 -S3154004D5E000000000000000000000000000000000F1 -S3154004D5F000000000000000000000000000000000E1 -S3154004D60000000000000000000000000000000000D0 -S3154004D61000000000000000000000000000000000C0 -S3154004D62000000000000000000000000000000000B0 -S3154004D63000000000000000000000000000000000A0 -S3154004D6400000000000000000000000000000000090 -S3154004D6500000000000000000000000000000000080 -S3154004D6600000000000000000000000000000000070 -S3154004D6700000000000000000000000000000000060 -S3154004D6800000000000000000000000000000000050 -S3154004D6900000000000000000000000000000000040 -S3154004D6A00000000000000000000000000000000030 -S3154004D6B00000000000000000000000000000000020 -S3154004D6C00000000000000000000000000000000010 -S3154004D6D00000000000000000000000000000000000 -S3154004D6E000000000000000000000000000000000F0 -S3154004D6F000000000000000000000000000000000E0 -S3154004D70000000000000000000000000000000000CF -S3154004D71000000000000000000000000000000000BF -S3154004D72000000000000000000000000000000000AF -S3154004D730000000000000000000000000000000009F -S3154004D740000000000000000000000000000000008F -S3154004D750000000000000000000000000000000007F -S3154004D760000000000000000000000000000000006F -S3154004D770000000000000000000000000000000005F -S3154004D780000000000000000000000000000000004F -S3154004D790000000000000000000000000000000003F -S3154004D7A0000000000000000000000000000000002F -S3154004D7B0000000000000000000000000000000001F -S3154004D7C0000000000000000000000000000000000F -S3154004D7D000000000000000000000000000000000FF -S3154004D7E000000000000000000000000000000000EF -S3154004D7F000000000000000000000000000000000DF -S3154004D80000000000000000000000000000000000CE -S3154004D81000000000000000000000000000000000BE -S3154004D82000000000000000000000000000000000AE -S3154004D830000000000000000000000000000000009E -S3154004D840000000000000000000000000000000008E -S3154004D850000000000000000000000000000000007E -S3154004D860000000000000000000000000000000006E -S3154004D870000000000000000000000000000000005E -S3154004D880000000000000000000000000000000004E -S3154004D890000000000000000000000000000000003E -S3154004D8A0000000000000000000000000000000002E -S3154004D8B0000000000000000000000000000000001E -S3154004D8C0000000000000000000000000000000000E -S3154004D8D000000000000000000000000000000000FE -S3154004D8E000000000000000000000000000000000EE -S3154004D8F000000000000000000000000000000000DE -S3154004D90000000000000000000000000000000000CD -S3154004D91000000000000000000000000000000000BD -S3154004D92000000000000000000000000000000000AD -S3154004D930000000000000000000000000000000009D -S3154004D940000000000000000000000000000000008D -S3154004D950000000000000000000000000000000007D -S3154004D960000000000000000000000000000000006D -S3154004D970000000000000000000000000000000005D -S3154004D980000000000000000000000000000000004D -S3154004D990000000000000000000000000000000003D -S3154004D9A0000000000000000000000000000000002D -S3154004D9B0000000000000000000000000000000001D -S3154004D9C0000000000000000000000000000000000D -S3154004D9D000000000000000000000000000000000FD -S3154004D9E000000000000000000000000000000000ED -S3154004D9F000000000000000000000000000000000DD -S3154004DA0000000000000000000000000000000000CC -S3154004DA1000000000000000000000000000000000BC -S3154004DA2000000000000000000000000000000000AC -S3154004DA30000000000000000000000000000000009C -S3154004DA40000000000000000000000000000000008C -S3154004DA50000000000000000000000000000000007C -S3154004DA60000000000000000000000000000000006C -S3154004DA70000000000000000000000000000000005C -S3154004DA80000000000000000000000000000000004C -S3154004DA90000000000000000000000000000000003C -S3154004DAA0000000000000000000000000000000002C -S3154004DAB0000000000000000000000000000000001C -S3154004DAC0000000000000000000000000000000000C -S3154004DAD000000000000000000000000000000000FC -S3154004DAE000000000000000000000000000000000EC -S3154004DAF000000000000000000000000000000000DC -S3154004DB0000000000000000000000000000000000CB -S3154004DB1000000000000000000000000000000000BB -S3154004DB2000000000000000000000000000000000AB -S3154004DB30000000000000000000000000000000009B -S3154004DB40000000000000000000000000000000008B -S3154004DB50000000000000000000000000000000007B -S3154004DB60000000000000000000000000000000006B -S3154004DB70000000000000000000000000000000005B -S3154004DB80000000000000000000000000000000004B -S3154004DB90000000000000000000000000000000003B -S3154004DBA0000000000000000000000000000000002B -S3154004DBB0000000000000000000000000000000001B -S3154004DBC0000000000000000000000000000000000B -S3154004DBD000000000000000000000000000000000FB -S3154004DBE000000000000000000000000000000000EB -S3154004DBF000000000000000000000000000000000DB -S3154004DC0000000000000000000000000000000000CA -S3154004DC1000000000000000000000000000000000BA -S3154004DC2000000000000000000000000000000000AA -S3154004DC30000000000000000000000000000000009A -S3154004DC40000000000000000000000000000000008A -S3154004DC50000000000000000000000000000000007A -S3154004DC60000000000000000000000000000000006A -S3154004DC70000000000000000000000000000000005A -S3154004DC80000000000000000000000000000000004A -S3154004DC90000000000000000000000000000000003A -S3154004DCA0000000000000000000000000000000002A -S3154004DCB0000000000000000000000000000000001A -S3154004DCC0000000000000000000000000000000000A -S3154004DCD000000000000000000000000000000000FA -S3154004DCE000000000000000000000000000000000EA -S3154004DCF000000000000000000000000000000000DA -S3154004DD0000000000000000000000000000000000C9 -S3154004DD1000000000000000000000000000000000B9 -S3154004DD2000000000000000000000000000000000A9 -S3154004DD300000000000000000000000000000000099 -S3154004DD400000000000000000000000000000000089 -S3154004DD500000000000000000000000000000000079 -S3154004DD600000000000000000000000000000000069 -S3154004DD700000000000000000000000000000000059 -S3154004DD800000000000000000000000000000000049 -S3154004DD900000000000000000000000000000000039 -S3154004DDA00000000000000000000000000000000029 -S3154004DDB00000000000000000000000000000000019 -S3154004DDC00000000000000000000000000000000009 -S3154004DDD000000000000000000000000000000000F9 -S3154004DDE000000000000000000000000000000000E9 -S3154004DDF000000000000000000000000000000000D9 -S3154004DE0000000000000000000000000000000000C8 -S3154004DE1000000000000000000000000000000000B8 -S3154004DE2000000000000000000000000000000000A8 -S3154004DE300000000000000000000000000000000098 -S3154004DE400000000000000000000000000000000088 -S3154004DE500000000000000000000000000000000078 -S3154004DE600000000000000000000000000000000068 -S3154004DE700000000000000000000000000000000058 -S3154004DE800000000000000000000000000000000048 -S3154004DE900000000000000000000000000000000038 -S3154004DEA00000000000000000000000000000000028 -S3154004DEB00000000000000000000000000000000018 -S3154004DEC00000000000000000000000000000000008 -S3154004DED000000000000000000000000000000000F8 -S3154004DEE000000000000000000000000000000000E8 -S3154004DEF000000000000000000000000000000000D8 -S3154004DF0000000000000000000000000000000000C7 -S3154004DF1000000000000000000000000000000000B7 -S3154004DF2000000000000000000000000000000000A7 -S3154004DF300000000000000000000000000000000097 -S3154004DF400000000000000000000000000000000087 -S3154004DF500000000000000000000000000000000077 -S3154004DF600000000000000000000000000000000067 -S3154004DF700000000000000000000000000000000057 -S3154004DF800000000000000000000000000000000047 -S3154004DF900000000000000000000000000000000037 -S3154004DFA00000000000000000000000000000000027 -S3154004DFB00000000000000000000000000000000017 -S3154004DFC00000000000000000000000000000000007 -S3154004DFD000000000000000000000000000000000F7 -S3154004DFE000000000000000000000000000000000E7 -S3154004DFF000000000000000000000000000000000D7 -S3154004E00000000000000000000000000000000000C6 -S3154004E01000000000000000000000000000000000B6 -S3154004E02000000000000000000000000000000000A6 -S3154004E0300000000000000000000000000000000096 -S3154004E0400000000000000000000000000000000086 -S3154004E0500000000000000000000000000000000076 -S3154004E0600000000000000000000000000000000066 -S3154004E0700000000000000000000000000000000056 -S3154004E0800000000000000000000000000000000046 -S3154004E0900000000000000000000000000000000036 -S3154004E0A00000000000000000000000000000000026 -S3154004E0B00000000000000000000000000000000016 -S3154004E0C00000000000000000000000000000000006 -S3154004E0D000000000000000000000000000000000F6 -S3154004E0E000000000000000000000000000000000E6 -S3154004E0F000000000000000000000000000000000D6 -S3154004E10000000000000000000000000000000000C5 -S3154004E11000000000000000000000000000000000B5 -S3154004E12000000000000000000000000000000000A5 -S3154004E1300000000000000000000000000000000095 -S3154004E1400000000000000000000000000000000085 -S3154004E1500000000000000000000000000000000075 -S3154004E1600000000000000000000000000000000065 -S3154004E1700000000000000000000000000000000055 -S3154004E1800000000000000000000000000000000045 -S3154004E1900000000000000000000000000000000035 -S3154004E1A00000000000000000000000000000000025 -S3154004E1B00000000000000000000000000000000015 -S3154004E1C00000000000000000000000000000000005 -S3154004E1D000000000000000000000000000000000F5 -S3154004E1E000000000000000000000000000000000E5 -S3154004E1F000000000000000000000000000000000D5 -S3154004E20000000000000000000000000000000000C4 -S3154004E21000000000000000000000000000000000B4 -S3154004E22000000000000000000000000000000000A4 -S3154004E2300000000000000000000000000000000094 -S3154004E2400000000000000000000000000000000084 -S3154004E2500000000000000000000000000000000074 -S3154004E2600000000000000000000000000000000064 -S3154004E2700000000000000000000000000000000054 -S3154004E2800000000000000000000000000000000044 -S3154004E2900000000000000000000000000000000034 -S3154004E2A00000000000000000000000000000000024 -S3154004E2B00000000000000000000000000000000014 -S3154004E2C00000000000000000000000000000000004 -S3154004E2D000000000000000000000000000000000F4 -S3154004E2E000000000000000000000000000000000E4 -S3154004E2F000000000000000000000000000000000D4 -S3154004E30000000000000000000000000000000000C3 -S3154004E31000000000000000000000000000000000B3 -S3154004E32000000000000000000000000000000000A3 -S3154004E3300000000000000000000000000000000093 -S3154004E3400000000000000000000000000000000083 -S3154004E3500000000000000000000000000000000073 -S3154004E3600000000000000000000000000000000063 -S3154004E3700000000000000000000000000000000053 -S3154004E3800000000000000000000000000000000043 -S3154004E3900000000000000000000000000000000033 -S3154004E3A00000000000000000000000000000000023 -S3154004E3B00000000000000000000000000000000013 -S3154004E3C00000000000000000000000000000000003 -S3154004E3D000000000000000000000000000000000F3 -S3154004E3E000000000000000000000000000000000E3 -S3154004E3F000000000000000000000000000000000D3 -S3154004E40000000000000000000000000000000000C2 -S3154004E41000000000000000000000000000000000B2 -S3154004E42000000000000000000000000000000000A2 -S3154004E4300000000000000000000000000000000092 -S3154004E4400000000000000000000000000000000082 -S3154004E4500000000000000000000000000000000072 -S3154004E4600000000000000000000000000000000062 -S3154004E4700000000000000000000000000000000052 -S3154004E4800000000000000000000000000000000042 -S3154004E4900000000000000000000000000000000032 -S3154004E4A00000000000000000000000000000000022 -S3154004E4B00000000000000000000000000000000012 -S3154004E4C00000000000000000000000000000000002 -S3154004E4D000000000000000000000000000000000F2 -S3154004E4E000000000000000000000000000000000E2 -S3154004E4F000000000000000000000000000000000D2 -S3154004E50000000000000000000000000000000000C1 -S3154004E51000000000000000000000000000000000B1 -S3154004E52000000000000000000000000000000000A1 -S3154004E5300000000000000000000000000000000091 -S3154004E5400000000000000000000000000000000081 -S3154004E5500000000000000000000000000000000071 -S3154004E5600000000000000000000000000000000061 -S3154004E5700000000000000000000000000000000051 -S3154004E5800000000000000000000000000000000041 -S3154004E5900000000000000000000000000000000031 -S3154004E5A00000000000000000000000000000000021 -S3154004E5B00000000000000000000000000000000011 -S3154004E5C00000000000000000000000000000000001 -S3154004E5D000000000000000000000000000000000F1 -S3154004E5E000000000000000000000000000000000E1 -S3154004E5F000000000000000000000000000000000D1 -S3154004E60000000000000000000000000000000000C0 -S3154004E61000000000000000000000000000000000B0 -S3154004E62000000000000000000000000000000000A0 -S3154004E6300000000000000000000000000000000090 -S3154004E6400000000000000000000000000000000080 -S3154004E6500000000000000000000000000000000070 -S3154004E6600000000000000000000000000000000060 -S3154004E6700000000000000000000000000000000050 -S3154004E6800000000000000000000000000000000040 -S3154004E6900000000000000000000000000000000030 -S3154004E6A00000000000000000000000000000000020 -S3154004E6B00000000000000000000000000000000010 -S3154004E6C00000000000000000000000000000000000 -S3154004E6D000000000000000000000000000000000F0 -S3154004E6E000000000000000000000000000000000E0 -S3154004E6F000000000000000000000000000000000D0 -S3154004E70000000000000000000000000000000000BF -S3154004E71000000000000000000000000000000000AF -S3154004E720000000000000000000000000000000009F -S3154004E730000000000000000000000000000000008F -S3154004E740000000000000000000000000000000007F -S3154004E750000000000000000000000000000000006F -S3154004E760000000000000000000000000000000005F -S3154004E770000000000000000000000000000000004F -S3154004E780000000000000000000000000000000003F -S3154004E790000000000000000000000000000000002F -S3154004E7A0000000000000000000000000000000001F -S3154004E7B0000000000000000000000000000000000F -S3154004E7C000000000000000000000000000000000FF -S3154004E7D000000000000000000000000000000000EF -S3154004E7E000000000000000000000000000000000DF -S3154004E7F000000000000000000000000000000000CF -S3154004E80000000000000000000000000000000000BE -S3154004E81000000000000000000000000000000000AE -S3154004E820000000000000000000000000000000009E -S3154004E830000000000000000000000000000000008E -S3154004E840000000000000000000000000000000007E -S3154004E850000000000000000000000000000000006E -S3154004E860000000000000000000000000000000005E -S3154004E870000000000000000000000000000000004E -S3154004E880000000000000000000000000000000003E -S3154004E890000000000000000000000000000000002E -S3154004E8A0000000000000000000000000000000001E -S3154004E8B0000000000000000000000000000000000E -S3154004E8C000000000000000000000000000000000FE -S3154004E8D000000000000000000000000000000000EE -S3154004E8E000000000000000000000000000000000DE -S3154004E8F000000000000000000000000000000000CE -S3154004E90000000000000000000000000000000000BD -S3154004E91000000000000000000000000000000000AD -S3154004E920000000000000000000000000000000009D -S3154004E930000000000000000000000000000000008D -S3154004E940000000000000000000000000000000007D -S3154004E950000000000000000000000000000000006D -S3154004E960000000000000000000000000000000005D -S3154004E970000000000000000000000000000000004D -S3154004E980000000000000000000000000000000003D -S3154004E990000000000000000000000000000000002D -S3154004E9A0000000000000000000000000000000001D -S3154004E9B0000000000000000000000000000000000D -S3154004E9C000000000000000000000000000000000FD -S3154004E9D000000000000000000000000000000000ED -S3154004E9E000000000000000000000000000000000DD -S3154004E9F000000000000000000000000000000000CD -S3154004EA0000000000000000000000000000000000BC -S3154004EA1000000000000000000000000000000000AC -S3154004EA20000000000000000000000000000000009C -S3154004EA30000000000000000000000000000000008C -S3154004EA40000000000000000000000000000000007C -S3154004EA50000000000000000000000000000000006C -S3154004EA60000000000000000000000000000000005C -S3154004EA70000000000000000000000000000000004C -S3154004EA80000000000000000000000000000000003C -S3154004EA90000000000000000000000000000000002C -S3154004EAA0000000000000000000000000000000001C -S3154004EAB0000000000000000000000000000000000C -S3154004EAC000000000000000000000000000000000FC -S3154004EAD000000000000000000000000000000000EC -S3154004EAE000000000000000000000000000000000DC -S3154004EAF000000000000000000000000000000000CC -S3154004EB0000000000000000000000000000000000BB -S3154004EB1000000000000000000000000000000000AB -S3154004EB20000000000000000000000000000000009B -S3154004EB30000000000000000000000000000000008B -S3154004EB40000000000000000000000000000000007B -S3154004EB50000000000000000000000000000000006B -S3154004EB60000000000000000000000000000000005B -S3154004EB70000000000000000000000000000000004B -S3154004EB80000000000000000000000000000000003B -S3154004EB90000000000000000000000000000000002B -S3154004EBA0000000000000000000000000000000001B -S3154004EBB0000000000000000000000000000000000B -S3154004EBC000000000000000000000000000000000FB -S3154004EBD000000000000000000000000000000000EB -S3154004EBE000000000000000000000000000000000DB -S3154004EBF000000000000000000000000000000000CB -S3154004EC0000000000000000000000000000000000BA -S3154004EC1000000000000000000000000000000000AA -S3154004EC20000000000000000000000000000000009A -S3154004EC30000000000000000000000000000000008A -S3154004EC40000000000000000000000000000000007A -S3154004EC50000000000000000000000000000000006A -S3154004EC60000000000000000000000000000000005A -S3154004EC70000000000000000000000000000000004A -S3154004EC80000000000000000000000000000000003A -S3154004EC90000000000000000000000000000000002A -S3154004ECA0000000000000000000000000000000001A -S3154004ECB0000000000000000000000000000000000A -S3154004ECC000000000000000000000000000000000FA -S3154004ECD000000000000000000000000000000000EA -S3154004ECE000000000000000000000000000000000DA -S3154004ECF000000000000000000000000000000000CA -S3154004ED0000000000000000000000000000000000B9 -S3154004ED1000000000000000000000000000000000A9 -S3154004ED200000000000000000000000000000000099 -S3154004ED300000000000000000000000000000000089 -S3154004ED400000000000000000000000000000000079 -S3154004ED500000000000000000000000000000000069 -S3154004ED600000000000000000000000000000000059 -S3154004ED700000000000000000000000000000000049 -S3154004ED800000000000000000000000000000000039 -S3154004ED900000000000000000000000000000000029 -S3154004EDA00000000000000000000000000000000019 -S3154004EDB00000000000000000000000000000000009 -S3154004EDC000000000000000000000000000000000F9 -S3154004EDD000000000000000000000000000000000E9 -S3154004EDE000000000000000000000000000000000D9 -S3154004EDF000000000000000000000000000000000C9 -S3154004EE0000000000000000000000000000000000B8 -S3154004EE1000000000000000000000000000000000A8 -S3154004EE200000000000000000000000000000000098 -S3154004EE300000000000000000000000000000000088 -S3154004EE400000000000000000000000000000000078 -S3154004EE500000000000000000000000000000000068 -S3154004EE600000000000000000000000000000000058 -S3154004EE700000000000000000000000000000000048 -S3154004EE800000000000000000000000000000000038 -S3154004EE900000000000000000000000000000000028 -S3154004EEA00000000000000000000000000000000018 -S3154004EEB00000000000000000000000000000000008 -S3154004EEC000000000000000000000000000000000F8 -S3154004EED000000000000000000000000000000000E8 -S3154004EEE000000000000000000000000000000000D8 -S3154004EEF000000000000000000000000000000000C8 -S3154004EF0000000000000000000000000000000000B7 -S3154004EF1000000000000000000000000000000000A7 -S3154004EF200000000000000000000000000000000097 -S3154004EF300000000000000000000000000000000087 -S3154004EF400000000000000000000000000000000077 -S3154004EF500000000000000000000000000000000067 -S3154004EF600000000000000000000000000000000057 -S3154004EF700000000000000000000000000000000047 -S3154004EF800000000000000000000000000000000037 -S3154004EF900000000000000000000000000000000027 -S3154004EFA00000000000000000000000000000000017 -S3154004EFB00000000000000000000000000000000007 -S3154004EFC000000000000000000000000000000000F7 -S3154004EFD000000000000000000000000000000000E7 -S3154004EFE000000000000000000000000000000000D7 -S3154004EFF000000000000000000000000000000000C7 -S3154004F00000000000000000000000000000000000B6 -S3154004F01000000000000000000000000000000000A6 -S3154004F0200000000000000000000000000000000096 -S3154004F0300000000000000000000000000000000086 -S3154004F0400000000000000000000000000000000076 -S3154004F0500000000000000000000000000000000066 -S3154004F0600000000000000000000000000000000056 -S3154004F0700000000000000000000000000000000046 -S3154004F0800000000000000000000000000000000036 -S3154004F0900000000000000000000000000000000026 -S3154004F0A00000000000000000000000000000000016 -S3154004F0B00000000000000000000000000000000006 -S3154004F0C000000000000000000000000000000000F6 -S3154004F0D000000000000000000000000000000000E6 -S3154004F0E000000000000000000000000000000000D6 -S3154004F0F000000000000000000000000000000000C6 -S3154004F10000000000000000000000000000000000B5 -S3154004F11000000000000000000000000000000000A5 -S3154004F1200000000000000000000000000000000095 -S3154004F1300000000000000000000000000000000085 -S3154004F1400000000000000000000000000000000075 -S3154004F1500000000000000000000000000000000065 -S3154004F1600000000000000000000000000000000055 -S3154004F1700000000000000000000000000000000045 -S3154004F1800000000000000000000000000000000035 -S3154004F1900000000000000000000000000000000025 -S3154004F1A00000000000000000000000000000000015 -S3154004F1B00000000000000000000000000000000005 -S3154004F1C000000000000000000000000000000000F5 -S3154004F1D000000000000000000000000000000000E5 -S3154004F1E000000000000000000000000000000000D5 -S3154004F1F000000000000000000000000000000000C5 -S3154004F20000000000000000000000000000000000B4 -S3154004F21000000000000000000000000000000000A4 -S3154004F2200000000000000000000000000000000094 -S3154004F2300000000000000000000000000000000084 -S3154004F2400000000000000000000000000000000074 -S3154004F2500000000000000000000000000000000064 -S3154004F2600000000000000000000000000000000054 -S3154004F2700000000000000000000000000000000044 -S3154004F2800000000000000000000000000000000034 -S3154004F2900000000000000000000000000000000024 -S3154004F2A00000000000000000000000000000000014 -S3154004F2B00000000000000000000000000000000004 -S3154004F2C000000000000000000000000000000000F4 -S3154004F2D000000000000000000000000000000000E4 -S3154004F2E000000000000000000000000000000000D4 -S3154004F2F000000000000000000000000000000000C4 -S3154004F30000000000000000000000000000000000B3 -S3154004F31000000000000000000000000000000000A3 -S3154004F3200000000000000000000000000000000093 -S3154004F3300000000000000000000000000000000083 -S3154004F3400000000000000000000000000000000073 -S3154004F3500000000000000000000000000000000063 -S3154004F3600000000000000000000000000000000053 -S3154004F3700000000000000000000000000000000043 -S3154004F3800000000000000000000000000000000033 -S3154004F3900000000000000000000000000000000023 -S3154004F3A00000000000000000000000000000000013 -S3154004F3B00000000000000000000000000000000003 -S3154004F3C000000000000000000000000000000000F3 -S3154004F3D000000000000000000000000000000000E3 -S3154004F3E000000000000000000000000000000000D3 -S3154004F3F000000000000000000000000000000000C3 -S3154004F40000000000000000000000000000000000B2 -S3154004F41000000000000000000000000000000000A2 -S3154004F4200000000000000000000000000000000092 -S3154004F4300000000000000000000000000000000082 -S3154004F4400000000000000000000000000000000072 -S3154004F4500000000000000000000000000000000062 -S3154004F4600000000000000000000000000000000052 -S3154004F4700000000000000000000000000000000042 -S3154004F4800000000000000000000000000000000032 -S3154004F4900000000000000000000000000000000022 -S3154004F4A00000000000000000000000000000000012 -S3154004F4B00000000000000000000000000000000002 -S3154004F4C000000000000000000000000000000000F2 -S3154004F4D000000000000000000000000000000000E2 -S3154004F4E000000000000000000000000000000000D2 -S3154004F4F000000000000000000000000000000000C2 -S3154004F50000000000000000000000000000000000B1 -S3154004F51000000000000000000000000000000000A1 -S3154004F5200000000000000000000000000000000091 -S3154004F5300000000000000000000000000000000081 -S3154004F5400000000000000000000000000000000071 -S3154004F5500000000000000000000000000000000061 -S3154004F5600000000000000000000000000000000051 -S3154004F5700000000000000000000000000000000041 -S3154004F5800000000000000000000000000000000031 -S3154004F5900000000000000000000000000000000021 -S3154004F5A00000000000000000000000000000000011 -S3154004F5B00000000000000000000000000000000001 -S3154004F5C000000000000000000000000000000000F1 -S3154004F5D000000000000000000000000000000000E1 -S3154004F5E000000000000000000000000000000000D1 -S3154004F5F000000000000000000000000000000000C1 -S3154004F60000000000000000000000000000000000B0 -S3154004F61000000000000000000000000000000000A0 -S3154004F6200000000000000000000000000000000090 -S3154004F6300000000000000000000000000000000080 -S3154004F6400000000000000000000000000000000070 -S3154004F6500000000000000000000000000000000060 -S3154004F6600000000000000000000000000000000050 -S3154004F6700000000000000000000000000000000040 -S3154004F6800000000000000000000000000000000030 -S3154004F6900000000000000000000000000000000020 -S3154004F6A00000000000000000000000000000000010 -S3154004F6B00000000000000000000000000000000000 -S3154004F6C000000000000000000000000000000000F0 -S3154004F6D000000000000000000000000000000000E0 -S3154004F6E000000000000000000000000000000000D0 -S3154004F6F000000000000000000000000000000000C0 -S3154004F70000000000000000000000000000000000AF -S3154004F710000000000000000000000000000000009F -S3154004F720000000000000000000000000000000008F -S3154004F730000000000000000000000000000000007F -S3154004F740000000000000000000000000000000006F -S3154004F750000000000000000000000000000000005F -S3154004F760000000000000000000000000000000004F -S3154004F770000000000000000000000000000000003F -S3154004F780000000000000000000000000000000002F -S3154004F790000000000000000000000000000000001F -S3154004F7A0000000000000000000000000000000000F -S3154004F7B000000000000000000000000000000000FF -S3154004F7C000000000000000000000000000000000EF -S3154004F7D000000000000000000000000000000000DF -S3154004F7E000000000000000000000000000000000CF -S3154004F7F000000000000000000000000000000000BF -S3154004F80000000000000000000000000000000000AE -S3154004F810000000000000000000000000000000009E -S3154004F820000000000000000000000000000000008E -S3154004F830000000000000000000000000000000007E -S3154004F840000000000000000000000000000000006E -S3154004F850000000000000000000000000000000005E -S3154004F860000000000000000000000000000000004E -S3154004F870000000000000000000000000000000003E -S3154004F880000000000000000000000000000000002E -S3154004F890000000000000000000000000000000001E -S3154004F8A0000000000000000000000000000000000E -S3154004F8B000000000000000000000000000000000FE -S3154004F8C000000000000000000000000000000000EE -S3154004F8D000000000000000000000000000000000DE -S3154004F8E000000000000000000000000000000000CE -S3154004F8F000000000000000000000000000000000BE -S3154004F90000000000000000000000000000000000AD -S3154004F910000000000000000000000000000000009D -S3154004F920000000000000000000000000000000008D -S3154004F930000000000000000000000000000000007D -S3154004F940000000000000000000000000000000006D -S3154004F950000000000000000000000000000000005D -S3154004F960000000000000000000000000000000004D -S3154004F970000000000000000000000000000000003D -S3154004F980000000000000000000000000000000002D -S3154004F990000000000000000000000000000000001D -S3154004F9A0000000000000000000000000000000000D -S3154004F9B000000000000000000000000000000000FD -S3154004F9C000000000000000000000000000000000ED -S3154004F9D000000000000000000000000000000000DD -S3154004F9E000000000000000000000000000000000CD -S3154004F9F000000000000000000000000000000000BD -S3154004FA0000000000000000000000000000000000AC -S3154004FA10000000000000000000000000000000009C -S3154004FA20000000000000000000000000000000008C -S3154004FA30000000000000000000000000000000007C -S3154004FA40000000000000000000000000000000006C -S3154004FA50000000000000000000000000000000005C -S3154004FA60000000000000000000000000000000004C -S3154004FA70000000000000000000000000000000003C -S3154004FA80000000000000000000000000000000002C -S3154004FA90000000000000000000000000000000001C -S3154004FAA0000000000000000000000000000000000C -S3154004FAB000000000000000000000000000000000FC -S3154004FAC000000000000000000000000000000000EC -S3154004FAD000000000000000000000000000000000DC -S3154004FAE000000000000000000000000000000000CC -S3154004FAF000000000000000000000000000000000BC -S3154004FB0000000000000000000000000000000000AB -S3154004FB10000000000000000000000000000000009B -S3154004FB20000000000000000000000000000000008B -S3154004FB30000000000000000000000000000000007B -S3154004FB40000000000000000000000000000000006B -S3154004FB50000000000000000000000000000000005B -S3154004FB60000000000000000000000000000000004B -S3154004FB70000000000000000000000000000000003B -S3154004FB80000000000000000000000000000000002B -S3154004FB90000000000000000000000000000000001B -S3154004FBA0000000000000000000000000000000000B -S3154004FBB000000000000000000000000000000000FB -S3154004FBC000000000000000000000000000000000EB -S3154004FBD000000000000000000000000000000000DB -S3154004FBE000000000000000000000000000000000CB -S3154004FBF000000000000000000000000000000000BB -S3154004FC0000000000000000000000000000000000AA -S3154004FC10000000000000000000000000000000009A -S3154004FC20000000000000000000000000000000008A -S3154004FC30000000000000000000000000000000007A -S3154004FC40000000000000000000000000000000006A -S3154004FC50000000000000000000000000000000005A -S3154004FC60000000000000000000000000000000004A -S3154004FC70000000000000000000000000000000003A -S3154004FC80000000000000000000000000000000002A -S3154004FC90000000000000000000000000000000001A -S3154004FCA0000000000000000000000000000000000A -S3154004FCB000000000000000000000000000000000FA -S3154004FCC000000000000000000000000000000000EA -S3154004FCD000000000000000000000000000000000DA -S3154004FCE000000000000000000000000000000000CA -S3154004FCF000000000000000000000000000000000BA -S3154004FD0000000000000000000000000000000000A9 -S3154004FD100000000000000000000000000000000099 -S3154004FD200000000000000000000000000000000089 -S3154004FD300000000000000000000000000000000079 -S3154004FD400000000000000000000000000000000069 -S3154004FD500000000000000000000000000000000059 -S3154004FD600000000000000000000000000000000049 -S3154004FD700000000000000000000000000000000039 -S3154004FD800000000000000000000000000000000029 -S3154004FD900000000000000000000000000000000019 -S3154004FDA00000000000000000000000000000000009 -S3154004FDB000000000000000000000000000000000F9 -S3154004FDC000000000000000000000000000000000E9 -S3154004FDD000000000000000000000000000000000D9 -S3154004FDE000000000000000000000000000000000C9 -S3154004FDF000000000000000000000000000000000B9 -S3154004FE0000000000000000000000000000000000A8 -S3154004FE100000000000000000000000000000000098 -S3154004FE200000000000000000000000000000000088 -S3154004FE300000000000000000000000000000000078 -S3154004FE400000000000000000000000000000000068 -S3154004FE500000000000000000000000000000000058 -S3154004FE600000000000000000000000000000000048 -S3154004FE700000000000000000000000000000000038 -S3154004FE800000000000000000000000000000000028 -S3154004FE900000000000000000000000000000000018 -S3154004FEA00000000000000000000000000000000008 -S3154004FEB000000000000000000000000000000000F8 -S3154004FEC000000000000000000000000000000000E8 -S3154004FED000000000000000000000000000000000D8 -S3154004FEE000000000000000000000000000000000C8 -S3154004FEF000000000000000000000000000000000B8 -S3154004FF0000000000000000000000000000000000A7 -S3154004FF100000000000000000000000000000000097 -S3154004FF200000000000000000000000000000000087 -S3154004FF300000000000000000000000000000000077 -S3154004FF400000000000000000000000000000000067 -S3154004FF500000000000000000000000000000000057 -S3154004FF600000000000000000000000000000000047 -S3154004FF700000000000000000000000000000000037 -S3154004FF800000000000000000000000000000000027 -S3154004FF900000000000000000000000000000000017 -S3154004FFA00000000000000000000000000000000007 -S3154004FFB000000000000000000000000000000000F7 -S3154004FFC000000000000000000000000000000000E7 -S3154004FFD000000000000000000000000000000000D7 -S3154004FFE000000000000000000000000000000000C7 -S3154004FFF000000000000000000000000000000000B7 -S3154005000000000002000000030000000000000000A0 -S315400500100000000100000000FFFFFFFE0000000396 -S3154005002055555554FFFFFFFE0000000355555554E1 -S31540050030700FFFFE00000007100249240000000073 -S315400500400000000000000000000000020000000360 -S315400500500000000000000003FFFFFFFEFFFFFFFF5B -S3154005006000000002FFFFFFFD000000000000000049 -S31540050070000000010000000000000000FFFFFFFF38 -S315400500800000000000000001FFFFFFFFFFFFFFFF2C -S31540050090FFFFFFFF00000001FFFFFFFFFFFFFFFE21 -S315400500A00000000300000000FFFFFFFEFFFFFFFD0D -S315400500B000000000000000090000000700000001E4 -S315400500C0FFFFFFF700000002FFFFFFFCFFFFFFF801 -S315400500D000000002FFFFFFFCFFFFFFF8FFFFFFFCEC -S315400500E00000000200000008FFFFFFFCFFFFFFFEC7 -S315400500F0FFFFFFF8FFFFFFF800000001FFFFFFF8D5 -S31540050100FFFFFFF7000000000000000B00000002A3 -S31540050110000000050000002F000000020000001747 -S3154005012000003039000002A700000012FFFF076CEF -S315400501300000004DFFFFFCC600003039FFFFFD59AA -S31540050140FFFFFFEEFFFF076CFFFFFFB30000033A1B -S3154005015000000091FFFFE84100000000FFFFFD841D -S31540050160FFFED02F000000000000F6FA006E498120 -S315400501700000000000000000000000000000000034 -S31540050180FFFFF0000000000200000003000000062B -S3154005019000000002FFFFFFFDFFFFFFFA0000000021 -S315400501A0000000010000000000000000FFFFFFFF07 -S315400501B00000000000000001FFFFFFFFFFFFFFFFFB -S315400501C0FFFFFFFF00000001FFFFFFFFFFFFFFFEF0 -S315400501D000000003FFFFFFFAFFFFFFFEFFFFFFFDE5 -S315400501E000000006000000000000000000000009B5 -S315400501F000000000000000000000000000000000B4 -S31540050200000000000000000100000002000000039D -S315400502100000000000000000000000000000000093 -S31540050220000000004005050C400505D8400506A41C -S315400502300000000000000000000000000000000073 -S315400502400000000000000000000000000000000063 -S31540050250000000004001B5800000000000000000DD -S315400502600000000000000000000000000000000043 -S315400502700000000000000000000000000000000033 -S315400502800000000000000000000000000000000023 -S315400502900000000000000000000000000000000013 -S315400502A00000000000000000000000000000000003 -S315400502B000000000000000000000000000000000F3 -S315400502C000000000000000000000000000000001E2 -S315400502D0330EABCD1234E66DDEEC0005000B0000A7 -S315400502E000000000000000000000000000000000C3 -S315400502F000000000000000000000000000000000B3 -S3154005030000000000000000000000000000000000A2 -S315400503100000000000000000000000000000000092 -S315400503200000000000000000000000000000000082 -S315400503300000000000000000000000000000000072 -S315400503400000000000000000000000000000000062 -S315400503500000000000000000000000000000000052 -S315400503600000000000000000000000000000000042 -S315400503700000000000000000000000000000000032 -S315400503800000000000000000000000000000000022 -S315400503900000000000000000000000000000000012 -S315400503A00000000000000000000000000000000002 -S315400503B000000000000000000000000000000000F2 -S315400503C000000000000000000000000000000000E2 -S315400503D000000000000000000000000000000000D2 -S315400503E000000000000000000000000000000000C2 -S315400503F000000000000000000000000000000000B2 -S3154005040000000000000000000000000000000000A1 -S315400504100000000000000000000000000000000091 -S315400504200000000000000000000000000000000081 -S315400504300000000000000000000000000000000071 -S315400504400000000000000000000000000000000061 -S315400504500000000000000000000000000000000051 -S315400504600000000000000000000000000000000041 -S315400504700000000000000000000000000000000031 -S315400504800000000000000000000000000000000021 -S315400504900000000000000000000000000000000011 -S315400504A00000000000000000000000000000000001 -S315400504B000000000000000000000000000000000F1 -S315400504C000000000000000000000000000000000E1 -S315400504D000000000000000000000000000000000D1 -S315400504E000000000000000000000000000000000C1 -S315400504F000000000000000000000000000000000B1 -S3154005050000000000000000000000000000000000A0 -S315400505100000000000000000000000000000000090 -S315400505200000000000000000000000000000000080 -S315400505300000000000000000000000000000000070 -S315400505400000000000000000000000000000000060 -S315400505500000000000000000000000000000000050 -S315400505600000000000000000000000000000000040 -S315400505700000000000000000000000000000000030 -S315400505800000000000000000000000000000000020 -S315400505900000000000000000000000000000000010 -S315400505A00000000000000000000000000000000000 -S315400505B000000000000000000000000000000000F0 -S315400505C000000000000000000000000000000000E0 -S315400505D000000000000000000000000000000000D0 -S315400505E000000000000000000000000000000000C0 -S315400505F000000000000000000000000000000000B0 -S31540050600000000000000000000000000000000009F -S31540050610000000000000000000000000000000008F -S31540050620000000000000000000000000000000007F -S31540050630000000000000000000000000000000006F -S31540050640000000000000000000000000000000005F -S31540050650000000000000000000000000000000004F -S31540050660000000000000000000000000000000003F -S31540050670000000000000000000000000000000002F -S31540050680000000000000000000000000000000001F -S31540050690000000000000000000000000000000000F -S315400506A000000000000000000000000000000000FF -S315400506B000000000000000000000000000000000EF -S315400506C000000000000000000000000000000000DF -S315400506D000000000000000000000000000000000CF -S315400506E000000000000000000000000000000000BF -S315400506F000000000000000000000000000000000AF -S31540050700000000000000000000000000000000009E -S31540050710000000000000000000000000000000008E -S31540050720000000000000000000000000000000007E -S31540050730000000000000000000000000000000006E -S31540050740000000000000000000000000000000005E -S31540050750000000000000000000000000000000004E -S31540050760000000000000000000000000000000003E -S315400507704005022000000000FFFFFFFF00020000C9 -S315400507800000000000000000400507804005078086 -S3154005079040050788400507884005079040050790AE -S315400507A04005079840050798400507A0400507A05E -S315400507B0400507A8400507A8400507B0400507B00E -S315400507C0400507B8400507B8400507C0400507C0BE -S315400507D0400507C8400507C8400507D0400507D06E -S315400507E0400507D8400507D8400507E0400507E01E -S315400507F0400507E8400507E8400507F0400507F0CE -S31540050800400507F8400507F840050800400508007B -S315400508104005080840050808400508104005081029 -S3154005082040050818400508184005082040050820D9 -S315400508304005082840050828400508304005083089 -S315400508404005083840050838400508404005084039 -S3154005085040050848400508484005085040050850E9 -S315400508604005085840050858400508604005086099 -S315400508704005086840050868400508704005087049 -S3154005088040050878400508784005088040050880F9 -S3154005089040050888400508884005089040050890A9 -S315400508A04005089840050898400508A0400508A059 -S315400508B0400508A8400508A8400508B0400508B009 -S315400508C0400508B8400508B8400508C0400508C0B9 -S315400508D0400508C8400508C8400508D0400508D069 -S315400508E0400508D8400508D8400508E0400508E019 -S315400508F0400508E8400508E8400508F0400508F0C9 -S31540050900400508F8400508F8400509004005090076 -S315400509104005090840050908400509104005091024 -S3154005092040050918400509184005092040050920D4 -S315400509304005092840050928400509304005093084 -S315400509404005093840050938400509404005094034 -S3154005095040050948400509484005095040050950E4 -S315400509604005095840050958400509604005096094 -S315400509704005096840050968400509704005097044 -S3154005098040050978400509784005098040050980F4 -S3154005099040050988400509884005099040050990A4 -S315400509A04005099840050998400509A0400509A054 -S315400509B0400509A8400509A8400509B0400509B004 -S315400509C0400509B8400509B8400509C0400509C0B4 -S315400509D0400509C8400509C8400509D0400509D064 -S315400509E0400509D8400509D8400509E0400509E014 -S315400509F0400509E8400509E8400509F0400509F0C4 -S31540050A00400509F8400509F840050A0040050A0071 -S31540050A1040050A0840050A0840050A1040050A101F -S31540050A2040050A1840050A1840050A2040050A20CF -S31540050A3040050A2840050A2840050A3040050A307F -S31540050A4040050A3840050A3840050A4040050A402F -S31540050A5040050A4840050A4840050A5040050A50DF -S31540050A6040050A5840050A5840050A6040050A608F -S31540050A7040050A6840050A6840050A7040050A703F -S31540050A8040050A7840050A7840050A8040050A80EF -S31540050A9040050A8840050A8840050A9040050A909F -S31540050AA040050A9840050A9840050AA040050AA04F -S31540050AB040050AA840050AA840050AB040050AB0FF -S31540050AC040050AB840050AB840050AC040050AC0AF -S31540050AD040050AC840050AC840050AD040050AD05F -S31540050AE040050AD840050AD840050AE040050AE00F -S31540050AF040050AE840050AE840050AF040050AF0BF -S31540050B0040050AF840050AF840050B0040050B006C -S31540050B1040050B0840050B0840050B1040050B101A -S31540050B2040050B1840050B1840050B2040050B20CA -S31540050B3040050B2840050B2840050B3040050B307A -S31540050B4040050B3840050B3840050B4040050B402A -S31540050B5040050B4840050B4840050B5040050B50DA -S31540050B6040050B5840050B5840050B6040050B608A -S31540050B7040050B6840050B6840050B7040050B703A -S31540050B8040050B7840050B780000000040050B88B2 -S31540050B900000000000000000000000000000000208 -S31540050BA000000000000000000000000000000000FA -S31540050BB000000000000000000000000000000000EA -S31540050BC000000000000000000000000000000000DA -S31540050BD000000000000000000000000000000000CA -S31540050BE000000000000000000000000000000000BA -S31540050BF000000000000000000000000000000000AA -S31540050C000000000000000000000000000000000099 -S31540050C100000000000000000000000000000000089 -S31540050C200000000000000000000000000000000079 -S31540050C3080000100000000080000000700000006D3 -S31540050C40000000030000000000000000FFFF8AD0FE -S30940050C5080000310C2 +S31540048C200000000000000000800003100000000067 +S31540048C30000000008000010000000008000000075A +S31540048C40000000060000000300000000FFFF8AD079 S70540000000BA diff --git a/designs/leon3-ge-hpe-mini-lattice/systest.c b/designs/leon3-xilinx-kc705/systest.c similarity index 96% rename from designs/leon3-ge-hpe-mini-lattice/systest.c rename to designs/leon3-xilinx-kc705/systest.c index 100c2697..f5647a5f 100644 --- a/designs/leon3-ge-hpe-mini-lattice/systest.c +++ b/designs/leon3-xilinx-kc705/systest.c @@ -1,7 +1,9 @@ + main() { + report_start(); base_test(); diff --git a/designs/leon3-xilinx-kc705/testbench.vhd b/designs/leon3-xilinx-kc705/testbench.vhd new file mode 100644 index 00000000..8bfa83eb --- /dev/null +++ b/designs/leon3-xilinx-kc705/testbench.vhd @@ -0,0 +1,513 @@ +----------------------------------------------------------------------------- +-- LEON3 Demonstration design test bench +-- Copyright (C) 2004 Jiri Gaisler, Gaisler Research +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; +library gaisler; +use gaisler.libdcom.all; +use gaisler.sim.all; +library grlib; +use grlib.amba.all; +use grlib.stdlib.all; +use grlib.devices.all; +library micron; +use micron.all; +library techmap; +use techmap.gencomp.all; +use work.debug.all; + +use work.config.all; + +entity testbench is + generic ( + fabtech : integer := CFG_FABTECH; + memtech : integer := CFG_MEMTECH; + padtech : integer := CFG_PADTECH; + clktech : integer := CFG_CLKTECH; + disas : integer := CFG_DISAS; -- Enable disassembly to console + dbguart : integer := CFG_DUART; -- Print UART on console + pclow : integer := CFG_PCLOW; + testahb : boolean := true; + USE_MIG_INTERFACE_MODEL : boolean := false + + ); +end; + +architecture behav of testbench is + +-- DDR3 Simulation parameters +constant SIM_BYPASS_INIT_CAL : string := "FAST"; + -- # = "OFF" - Complete memory init & + -- calibration sequence + -- # = "SKIP" - Not supported + -- # = "FAST" - Complete memory init & use + -- abbreviated calib sequence + +constant SIMULATION : string := "TRUE"; + -- Should be TRUE during design simulations and + -- FALSE during implementations + + +constant promfile : string := "prom.srec"; -- rom contents +constant sramfile : string := "sram.srec"; -- ram contents +constant sdramfile : string := "sdram.srec"; -- sdram contents + +signal clk : std_logic := '0'; +signal Rst : std_logic := '0'; + +signal address : std_logic_vector(25 downto 0); +signal data : std_logic_vector(15 downto 0); +signal button : std_logic_vector(2 downto 0) := "000"; +signal genio : std_logic_vector(59 downto 0); +signal romsn : std_logic; +signal oen : std_ulogic; +signal writen : std_ulogic; +signal adv : std_logic; + +signal GND : std_ulogic := '0'; +signal VCC : std_ulogic := '1'; +signal NC : std_ulogic := 'Z'; + +signal txd1 , rxd1 , dsurx : std_logic; +signal txd2 , rxd2 , dsutx : std_logic; +signal ctsn1 , rtsn1 , dsuctsn : std_ulogic; +signal ctsn2 , rtsn2 , dsurtsn : std_ulogic; + +signal phy_mii_data : std_logic; +signal phy_tx_clk : std_ulogic; +signal phy_rx_clk : std_ulogic; +signal phy_rx_data : std_logic_vector(7 downto 0); +signal phy_dv : std_ulogic; +signal phy_rx_er : std_ulogic; +signal phy_col : std_ulogic; +signal phy_crs : std_ulogic; +signal phy_tx_data : std_logic_vector(7 downto 0); +signal phy_tx_en : std_ulogic; +signal phy_tx_er : std_ulogic; +signal phy_mii_clk : std_ulogic; +signal phy_rst_n : std_ulogic; +signal phy_gtx_clk : std_ulogic; +signal phy_mii_int_n : std_ulogic; + +signal clk27 : std_ulogic := '0'; +signal clk200p : std_ulogic := '0'; +signal clk200n : std_ulogic := '1'; +signal clk33 : std_ulogic := '0'; + +signal iic_scl : std_ulogic; +signal iic_sda : std_ulogic; +signal ddc_scl : std_ulogic; +signal ddc_sda : std_ulogic; +signal dvi_iic_scl : std_logic; +signal dvi_iic_sda : std_logic; + +signal tft_lcd_data : std_logic_vector(11 downto 0); +signal tft_lcd_clk_p : std_ulogic; +signal tft_lcd_clk_n : std_ulogic; +signal tft_lcd_hsync : std_ulogic; +signal tft_lcd_vsync : std_ulogic; +signal tft_lcd_de : std_ulogic; +signal tft_lcd_reset_b : std_ulogic; + +-- DDR3 memory +signal ddr3_dq : std_logic_vector(63 downto 0); +signal ddr3_dqs_p : std_logic_vector(7 downto 0); +signal ddr3_dqs_n : std_logic_vector(7 downto 0); +signal ddr3_addr : std_logic_vector(13 downto 0); +signal ddr3_ba : std_logic_vector(2 downto 0); +signal ddr3_ras_n : std_logic; +signal ddr3_cas_n : std_logic; +signal ddr3_we_n : std_logic; +signal ddr3_reset_n : std_logic; +signal ddr3_ck_p : std_logic_vector(0 downto 0); +signal ddr3_ck_n : std_logic_vector(0 downto 0); +signal ddr3_cke : std_logic_vector(0 downto 0); +signal ddr3_cs_n : std_logic_vector(0 downto 0); +signal ddr3_dm : std_logic_vector(7 downto 0); +signal ddr3_odt : std_logic_vector(0 downto 0); + +-- SPI flash +signal spi_sel_n : std_ulogic; +signal spi_clk : std_ulogic; +signal spi_mosi : std_ulogic; + +signal dsurst : std_ulogic; +signal errorn : std_logic; + +signal switch : std_logic_vector(3 downto 0); -- I/O port +signal led : std_logic_vector(6 downto 0); -- I/O port +constant lresp : boolean := false; + +signal tdqs_n : std_logic; + +component leon3mp is + generic ( + fabtech : integer := CFG_FABTECH; + memtech : integer := CFG_MEMTECH; + padtech : integer := CFG_PADTECH; + clktech : integer := CFG_CLKTECH; + disas : integer := CFG_DISAS; -- Enable disassembly to console + dbguart : integer := CFG_DUART; -- Print UART on console + pclow : integer := CFG_PCLOW; + testahb : boolean := false; + SIM_BYPASS_INIT_CAL : string := "OFF"; + SIMULATION : string := "FALSE"; + USE_MIG_INTERFACE_MODEL : boolean := false + ); + port ( + reset : in std_ulogic; + clk200p : in std_ulogic; -- 200 MHz clock + clk200n : in std_ulogic; -- 200 MHz clock + address : out std_logic_vector(25 downto 0); + data : inout std_logic_vector(15 downto 0); + oen : out std_ulogic; + writen : out std_ulogic; + romsn : out std_logic; + adv : out std_logic; + ddr3_dq : inout std_logic_vector(63 downto 0); + ddr3_dqs_p : inout std_logic_vector(7 downto 0); + ddr3_dqs_n : inout std_logic_vector(7 downto 0); + ddr3_addr : out std_logic_vector(13 downto 0); + ddr3_ba : out std_logic_vector(2 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_ck_p : out std_logic_vector(0 downto 0); + ddr3_ck_n : out std_logic_vector(0 downto 0); + ddr3_cke : out std_logic_vector(0 downto 0); + ddr3_cs_n : out std_logic_vector(0 downto 0); + ddr3_dm : out std_logic_vector(7 downto 0); + ddr3_odt : out std_logic_vector(0 downto 0); + dsurx : in std_ulogic; + dsutx : out std_ulogic; + dsuctsn : in std_ulogic; + dsurtsn : out std_ulogic; + button : in std_logic_vector(2 downto 0); + switch : inout std_logic_vector(3 downto 0); + led : out std_logic_vector(6 downto 0); + iic_scl : inout std_ulogic; + iic_sda : inout std_ulogic + ); +end component; + +component ddr3_model is + port ( + rst_n : in std_logic; + ck : in std_logic; + ck_n : in std_logic; + cke : in std_logic; + cs_n : in std_logic; + ras_n : in std_logic; + cas_n : in std_logic; + we_n : in std_logic; + dm_tdqs : inout std_logic; + ba : in std_logic_vector(2 downto 0); + addr : in std_logic_vector(13 downto 0); + dq : inout std_logic_vector(7 downto 0); + dqs : inout std_logic; + dqs_n : inout std_logic; + tdqs_n : out std_logic; + odt : in std_logic + ); +end component ddr3_model; + +begin + + -- clock, reset and misc + clk200p <= not clk200p after 2.5 ns; + clk200n <= not clk200n after 2.5 ns; + rst <= not dsurst; + rxd1 <= 'H'; ctsn1 <= '0'; + rxd2 <= 'H'; ctsn2 <= '0'; + button <= "000"; + switch <= "0000"; + + cpu : leon3mp + generic map ( + fabtech => fabtech, + memtech => memtech, + padtech => padtech, + clktech => clktech, + disas => disas, + dbguart => dbguart, + pclow => pclow, + testahb => testahb, + SIM_BYPASS_INIT_CAL => SIM_BYPASS_INIT_CAL, + SIMULATION => SIMULATION, + USE_MIG_INTERFACE_MODEL => USE_MIG_INTERFACE_MODEL + ) + port map ( + reset => rst, + clk200p => clk200p, + clk200n => clk200n, + address => address, + data => data, + oen => oen, + writen => writen, + romsn => romsn, + adv => adv, + ddr3_dq => ddr3_dq, + ddr3_dqs_p => ddr3_dqs_p, + ddr3_dqs_n => ddr3_dqs_n, + ddr3_addr => ddr3_addr, + ddr3_ba => ddr3_ba, + ddr3_ras_n => ddr3_ras_n, + ddr3_cas_n => ddr3_cas_n, + ddr3_we_n => ddr3_we_n, + ddr3_reset_n => ddr3_reset_n, + ddr3_ck_p => ddr3_ck_p, + ddr3_ck_n => ddr3_ck_n, + ddr3_cke => ddr3_cke, + ddr3_cs_n => ddr3_cs_n, + ddr3_dm => ddr3_dm, + ddr3_odt => ddr3_odt, + dsurx => dsurx, + dsutx => dsutx, + dsuctsn => dsuctsn, + dsurtsn => dsurtsn, + button => button, + switch => switch, + led => led, + iic_scl => iic_scl, + iic_sda => iic_sda + ); + + prom0 : for i in 0 to 1 generate + sr0 : sram generic map (index => i+4, abits => 26, fname => promfile) + port map (address(25 downto 0), data(15-i*8 downto 8-i*8), romsn, + writen, oen); + end generate; + + -- ************************************************************************** + -- * Memory Models instantiations + -- ************************************************************************** + gen_mem_model : if (USE_MIG_INTERFACE_MODEL /= true) generate + ddr3mem : if (CFG_MIG_SERIES7 = 1) generate + gen_mem: for i in 0 to 7 generate + u1: ddr3_model port map + ( + rst_n => ddr3_reset_n, + ck => ddr3_ck_p(0), + ck_n => ddr3_ck_n(0), + cke => ddr3_cke(0), + cs_n => ddr3_cs_n(0), + ras_n => ddr3_ras_n, + cas_n => ddr3_cas_n, + we_n => ddr3_we_n, + dm_tdqs => ddr3_dm(i), + ba => ddr3_ba, + addr => ddr3_addr, + dq => ddr3_dq((8*i+7) downto (8*i)), + dqs => ddr3_dqs_p(i), + dqs_n => ddr3_dqs_n(i), + tdqs_n => OPEN, + odt => ddr3_odt(0) + ); + end generate gen_mem; + end generate ddr3mem; -- DDR3 + end generate gen_mem_model; + + mig_mem_model : if (USE_MIG_INTERFACE_MODEL = true) generate + ddr3_dq <= (others => 'Z'); + ddr3_dqs_p <= (others => 'Z'); + ddr3_dqs_n <= (others => 'Z'); + end generate mig_mem_model; + + errorn <= led(1); + errorn <= 'H'; -- ERROR pull-up + + phy0 : if (CFG_GRETH = 1) generate + phy_mii_data <= 'H'; + p0: phy + generic map (address => 7) + port map(phy_rst_n, phy_mii_data, phy_tx_clk, phy_rx_clk, phy_rx_data, + phy_dv, phy_rx_er, phy_col, phy_crs, phy_tx_data, phy_tx_en, + phy_tx_er, phy_mii_clk, phy_gtx_clk); + end generate; + + iuerr : process + begin + wait for 210 us; -- This is for proper DDR3 behaviour durign init phase not needed durin simulation + wait on led(3); -- DDR3 Memory Init ready + wait for 5000 ns; + if to_x01(errorn) = '1' then wait on errorn; end if; + assert (to_x01(errorn) = '1') + report "*** IU in error mode, simulation halted ***" + severity failure ; -- this should be a failure + end process; + + data <= buskeep(data) after 5 ns; + + dsucom : process + procedure dsucfg(signal dsurx : in std_ulogic; signal dsutx : out std_ulogic) is + variable w32 : std_logic_vector(31 downto 0); + variable c8 : std_logic_vector(7 downto 0); + constant txp : time := 320 * 1 ns; + begin + dsutx <= '1'; + dsurst <= '0'; + wait for 2500 ns; + wait for 210 us; -- This is for proper DDR3 behaviour durign init phase not needed durin simulation + dsurst <= '1'; + wait on led(3); -- Wait for DDR3 Memory Init ready + wait for 5000 ns; + txc(dsutx, 16#55#, txp); -- sync uart + txc(dsutx, 16#a0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); + rxi(dsurx, w32, txp, lresp); + wait; + + -- do test read and writes to DDR3 to check status + -- Write + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); + txa(dsutx, 16#01#, 16#23#, 16#45#, 16#67#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#04#, txp); + txa(dsutx, 16#89#, 16#AB#, 16#CD#, 16#EF#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#08#, txp); + txa(dsutx, 16#08#, 16#19#, 16#2A#, 16#3B#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#0C#, txp); + txa(dsutx, 16#4C#, 16#5D#, 16#6E#, 16#7F#, txp); + txc(dsutx, 16#a0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); + rxi(dsurx, w32, txp, lresp); + txc(dsutx, 16#a0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#04#, txp); + rxi(dsurx, w32, txp, lresp); + report "* Read " & tost(w32); + txc(dsutx, 16#a0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#08#, txp); + rxi(dsurx, w32, txp, lresp); + txc(dsutx, 16#a0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#0C#, txp); + rxi(dsurx, w32, txp, lresp); + wait; + wait for 5000 ns; + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); + txa(dsutx, 16#00#, 16#00#, 16#80#, 16#02#, txp); + wait; + -- Register 0x90000000 (DSU Control Register) + -- Data 0x0000202e (b0010 0000 0010 1110) + -- [0] - Trace Enable + -- [1] - Break On Error + -- [2] - Break on IU watchpoint + -- [3] - Break on s/w break points + -- + -- [4] - (Break on trap) + -- [5] - Break on error traps + -- [6] - Debug mode (Read mode only) + -- [7] - DSUEN (read mode) + -- + -- [8] - DSUBRE (read mode) + -- [9] - Processor mode error (clears error) + -- [10] - processor halt (returns 1 if processor halted) + -- [11] - power down mode (return 1 if processor in power down mode) + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); + txa(dsutx, 16#00#, 16#00#, 16#20#, 16#2e#, txp); + + wait for 25000 ns; + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#01#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#40#, 16#00#, 16#24#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0D#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#70#, 16#11#, 16#78#, txp); + txa(dsutx, 16#91#, 16#00#, 16#00#, 16#0D#, txp); + + txa(dsutx, 16#90#, 16#40#, 16#00#, 16#44#, txp); + txa(dsutx, 16#00#, 16#00#, 16#20#, 16#00#, txp); + + txc(dsutx, 16#80#, txp); + txa(dsutx, 16#90#, 16#40#, 16#00#, 16#44#, txp); + + wait; + -- This is only kept for reference + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#00#, 16#00#, 16#0a#, 16#aa#, txp); + txa(dsutx, 16#00#, 16#55#, 16#00#, 16#55#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#00#, 16#00#, 16#0a#, 16#a0#, txp); + txa(dsutx, 16#01#, 16#02#, 16#09#, 16#33#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#2e#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#91#, 16#00#, 16#00#, 16#00#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#2e#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0f#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#00#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#80#, 16#00#, 16#02#, 16#10#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0f#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#91#, 16#40#, 16#00#, 16#24#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#24#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#91#, 16#70#, 16#00#, 16#00#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#03#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); + txa(dsutx, 16#00#, 16#00#, 16#ff#, 16#ff#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#40#, 16#00#, 16#48#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#12#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#40#, 16#00#, 16#60#, txp); + txa(dsutx, 16#00#, 16#00#, 16#12#, 16#10#, txp); + + txc(dsutx, 16#80#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); + rxi(dsurx, w32, txp, lresp); + + txc(dsutx, 16#a0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); + rxi(dsurx, w32, txp, lresp); + + end; + + begin + dsuctsn <= '0'; + dsucfg(dsutx, dsurx); + wait; + end process; +end ; + diff --git a/designs/leon3-ge-hpe-midi-ep2s180/tkconfig.h b/designs/leon3-xilinx-kc705/tkconfig.h similarity index 86% rename from designs/leon3-ge-hpe-midi-ep2s180/tkconfig.h rename to designs/leon3-xilinx-kc705/tkconfig.h index ce81145a..0dae996c 100644 --- a/designs/leon3-ge-hpe-midi-ep2s180/tkconfig.h +++ b/designs/leon3-xilinx-kc705/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -738,95 +760,6 @@ #define CONFIG_DSU_ETH_DIS 0 #endif -#ifndef CONFIG_GRUSB_DCL -#define CONFIG_GRUSB_DCL 0 -#endif - -#if defined CONFIG_GRUSB_DCL_UTMI16 -#define CONFIG_GRUSB_DCL_UIFACE 0 -#define CONFIG_GRUSB_DCL_DW 16 -#elif defined CONFIG_GRUSB_DCL_UTMI8 -#define CONFIG_GRUSB_DCL_UIFACE 0 -#define CONFIG_GRUSB_DCL_DW 8 -#else -#define CONFIG_GRUSB_DCL_UIFACE 1 -#define CONFIG_GRUSB_DCL_DW 8 -#endif - -#ifndef CONFIG_SRCTRL -#define CONFIG_SRCTRL 0 -#endif - -#ifndef CONFIG_SRCTRL_PROMWS -#define CONFIG_SRCTRL_PROMWS 0 -#endif - -#ifndef CONFIG_SRCTRL_RAMWS -#define CONFIG_SRCTRL_RAMWS 0 -#endif - -#ifndef CONFIG_SRCTRL_IOWS -#define CONFIG_SRCTRL_IOWS 0 -#endif - -#ifndef CONFIG_SRCTRL_RMW -#define CONFIG_SRCTRL_RMW 0 -#endif - -#ifndef CONFIG_SRCTRL_8BIT -#define CONFIG_SRCTRL_8BIT 0 -#endif - - -#ifndef CONFIG_SRCTRL_ROMASEL -#define CONFIG_SRCTRL_ROMASEL 0 -#endif - -#if defined CONFIG_SRCTRL_SRBANKS1 -#define CFG_SR_CTRL_SRBANKS 1 -#elif defined CONFIG_SRCTRL_SRBANKS2 -#define CFG_SR_CTRL_SRBANKS 2 -#elif defined CONFIG_SRCTRL_SRBANKS3 -#define CFG_SR_CTRL_SRBANKS 3 -#elif defined CONFIG_SRCTRL_SRBANKS4 -#define CFG_SR_CTRL_SRBANKS 4 -#elif defined CONFIG_SRCTRL_SRBANKS5 -#define CFG_SR_CTRL_SRBANKS 5 -#else -#define CFG_SR_CTRL_SRBANKS 1 -#endif - -#if defined CONFIG_SRCTRL_BANKSZ0 -#define CFG_SR_CTRL_BANKSZ 0 -#elif defined CONFIG_SRCTRL_BANKSZ1 -#define CFG_SR_CTRL_BANKSZ 1 -#elif defined CONFIG_SRCTRL_BANKSZ2 -#define CFG_SR_CTRL_BANKSZ 2 -#elif defined CONFIG_SRCTRL_BANKSZ3 -#define CFG_SR_CTRL_BANKSZ 3 -#elif defined CONFIG_SRCTRL_BANKSZ4 -#define CFG_SR_CTRL_BANKSZ 4 -#elif defined CONFIG_SRCTRL_BANKSZ5 -#define CFG_SR_CTRL_BANKSZ 5 -#elif defined CONFIG_SRCTRL_BANKSZ6 -#define CFG_SR_CTRL_BANKSZ 6 -#elif defined CONFIG_SRCTRL_BANKSZ7 -#define CFG_SR_CTRL_BANKSZ 7 -#elif defined CONFIG_SRCTRL_BANKSZ8 -#define CFG_SR_CTRL_BANKSZ 8 -#elif defined CONFIG_SRCTRL_BANKSZ9 -#define CFG_SR_CTRL_BANKSZ 9 -#elif defined CONFIG_SRCTRL_BANKSZ10 -#define CFG_SR_CTRL_BANKSZ 10 -#elif defined CONFIG_SRCTRL_BANKSZ11 -#define CFG_SR_CTRL_BANKSZ 11 -#elif defined CONFIG_SRCTRL_BANKSZ12 -#define CFG_SR_CTRL_BANKSZ 12 -#elif defined CONFIG_SRCTRL_BANKSZ13 -#define CFG_SR_CTRL_BANKSZ 13 -#else -#define CFG_SR_CTRL_BANKSZ 0 -#endif #ifndef CONFIG_MCTRL_LEON2 #define CONFIG_MCTRL_LEON2 0 #endif @@ -871,28 +804,44 @@ #define CONFIG_MCTRL_PROGPAGE 0 #endif -#ifndef CONFIG_SDCTRL -#define CONFIG_SDCTRL 0 + +#ifndef CONFIG_MIG_DDR3 +#define CONFIG_MIG_DDR3 0 +#endif + +#ifndef CONFIG_MIG_DDR2 +#define CONFIG_MIG_DDR2 0 #endif -#ifndef CONFIG_SDCTRL_SEPBUS -#define CONFIG_SDCTRL_SEPBUS 0 +#ifndef CONFIG_MIG_RANKS +#define CONFIG_MIG_RANKS 1 #endif -#ifndef CONFIG_SDCTRL_INVCLK -#define CONFIG_SDCTRL_INVCLK 0 +#ifndef CONFIG_MIG_COLBITS +#define CONFIG_MIG_COLBITS 10 #endif -#ifndef CONFIG_SDCTRL_BUS64 -#define CONFIG_SDCTRL_BUS64 0 +#ifndef CONFIG_MIG_ROWBITS +#define CONFIG_MIG_ROWBITS 13 #endif -#ifndef CONFIG_SDCTRL_PAGE -#define CONFIG_SDCTRL_PAGE 0 +#ifndef CONFIG_MIG_BANKBITS +#define CONFIG_MIG_BANKBITS 2 #endif -#ifndef CONFIG_SDCTRL_PROGPAGE -#define CONFIG_SDCTRL_PROGPAGE 0 +#ifndef CONFIG_MIG_HMASK +#define CONFIG_MIG_HMASK F00 +#endif + +#ifndef CONFIG_MIG_SERIES7 +#define CONFIG_MIG_SERIES7 0 +#endif +#ifndef CONFIG_AHBSTAT_ENABLE +#define CONFIG_AHBSTAT_ENABLE 0 +#endif + +#ifndef CONFIG_AHBSTAT_NFTSLV +#define CONFIG_AHBSTAT_NFTSLV 1 #endif #ifndef CONFIG_AHBROM_ENABLE @@ -962,70 +911,6 @@ #define CFG_GRETH_FIFO 8 #endif -#ifndef CONFIG_CAN_ENABLE -#define CONFIG_CAN_ENABLE 0 -#endif - -#ifndef CONFIG_CANIO -#define CONFIG_CANIO 0 -#endif - -#ifndef CONFIG_CANIRQ -#define CONFIG_CANIRQ 0 -#endif - -#ifndef CONFIG_CANLOOP -#define CONFIG_CANLOOP 0 -#endif - -#ifndef CONFIG_CAN_SYNCRST -#define CONFIG_CAN_SYNCRST 0 -#endif - - -#ifndef CONFIG_CAN_FT -#define CONFIG_CAN_FT 0 -#endif -#ifndef CONFIG_SPICTRL_ENABLE -#define CONFIG_SPICTRL_ENABLE 0 -#endif -#ifndef CONFIG_SPICTRL_NUM -#define CONFIG_SPICTRL_NUM 1 -#endif -#ifndef CONFIG_SPICTRL_SLVS -#define CONFIG_SPICTRL_SLVS 1 -#endif -#ifndef CONFIG_SPICTRL_FIFO -#define CONFIG_SPICTRL_FIFO 1 -#endif -#ifndef CONFIG_SPICTRL_SLVREG -#define CONFIG_SPICTRL_SLVREG 0 -#endif -#ifndef CONFIG_SPICTRL_ODMODE -#define CONFIG_SPICTRL_ODMODE 0 -#endif -#ifndef CONFIG_SPICTRL_AM -#define CONFIG_SPICTRL_AM 0 -#endif -#ifndef CONFIG_SPICTRL_ASEL -#define CONFIG_SPICTRL_ASEL 0 -#endif -#ifndef CONFIG_SPICTRL_TWEN -#define CONFIG_SPICTRL_TWEN 0 -#endif -#ifndef CONFIG_SPICTRL_MAXWLEN -#define CONFIG_SPICTRL_MAXWLEN 0 -#endif -#ifndef CONFIG_SPICTRL_SYNCRAM -#define CONFIG_SPICTRL_SYNCRAM 0 -#endif -#if defined(CONFIG_SPICTRL_DMRFT) -#define CONFIG_SPICTRL_FT 1 -#elif defined(CONFIG_SPICTRL_TMRFT) -#define CONFIG_SPICTRL_FT 2 -#else -#define CONFIG_SPICTRL_FT 0 -#endif #ifndef CONFIG_UART1_ENABLE #define CONFIG_UART1_ENABLE 0 #endif @@ -1107,6 +992,19 @@ #define CONFIG_GPT_WDOG 0 #endif +#ifndef CONFIG_GRGPIO_ENABLE +#define CONFIG_GRGPIO_ENABLE 0 +#endif +#ifndef CONFIG_GRGPIO_IMASK +#define CONFIG_GRGPIO_IMASK 0000 +#endif +#ifndef CONFIG_GRGPIO_WIDTH +#define CONFIG_GRGPIO_WIDTH 1 +#endif + +#ifndef CONFIG_I2C_ENABLE +#define CONFIG_I2C_ENABLE 0 +#endif #ifndef CONFIG_VGA_ENABLE #define CONFIG_VGA_ENABLE 0 #endif @@ -1117,26 +1015,82 @@ #define CONFIG_KBD_ENABLE 0 #endif -#ifndef CONFIG_AHB2HPI_ENABLE -#define CONFIG_AHB2HPI_ENABLE 0 + +#ifndef CONFIG_SPIMCTRL +#define CONFIG_SPIMCTRL 0 +#endif + +#ifndef CONFIG_SPIMCTRL_SDCARD +#define CONFIG_SPIMCTRL_SDCARD 0 #endif -#ifndef CONFIG_ADCDAC_ENABLE -#define CONFIG_ADCDAC_ENABLE 0 +#ifndef CONFIG_SPIMCTRL_READCMD +#define CONFIG_SPIMCTRL_READCMD 0 #endif -#ifndef CONFIG_SPI_OC_ENABLE -#define CONFIG_SPI_OC_ENABLE 0 +#ifndef CONFIG_SPIMCTRL_DUMMYBYTE +#define CONFIG_SPIMCTRL_DUMMYBYTE 0 #endif -#ifndef CONFIG_MULTIIO_ENABLE -#define CONFIG_MULTIIO_ENABLE 0 +#ifndef CONFIG_SPIMCTRL_DUALOUTPUT +#define CONFIG_SPIMCTRL_DUALOUTPUT 0 #endif -#ifndef CONFIG_AC97_OC_ENABLE -#define CONFIG_AC97_OC_ENABLE 0 +#ifndef CONFIG_SPIMCTRL_SCALER +#define CONFIG_SPIMCTRL_SCALER 1 #endif +#ifndef CONFIG_SPIMCTRL_ASCALER +#define CONFIG_SPIMCTRL_ASCALER 1 +#endif + +#ifndef CONFIG_SPIMCTRL_PWRUPCNT +#define CONFIG_SPIMCTRL_PWRUPCNT 0 +#endif + +#ifndef CONFIG_SPIMCTRL_OFFSET +#define CONFIG_SPIMCTRL_OFFSET 0 +#endif +#ifndef CONFIG_SPICTRL_ENABLE +#define CONFIG_SPICTRL_ENABLE 0 +#endif +#ifndef CONFIG_SPICTRL_NUM +#define CONFIG_SPICTRL_NUM 1 +#endif +#ifndef CONFIG_SPICTRL_SLVS +#define CONFIG_SPICTRL_SLVS 1 +#endif +#ifndef CONFIG_SPICTRL_FIFO +#define CONFIG_SPICTRL_FIFO 1 +#endif +#ifndef CONFIG_SPICTRL_SLVREG +#define CONFIG_SPICTRL_SLVREG 0 +#endif +#ifndef CONFIG_SPICTRL_ODMODE +#define CONFIG_SPICTRL_ODMODE 0 +#endif +#ifndef CONFIG_SPICTRL_AM +#define CONFIG_SPICTRL_AM 0 +#endif +#ifndef CONFIG_SPICTRL_ASEL +#define CONFIG_SPICTRL_ASEL 0 +#endif +#ifndef CONFIG_SPICTRL_TWEN +#define CONFIG_SPICTRL_TWEN 0 +#endif +#ifndef CONFIG_SPICTRL_MAXWLEN +#define CONFIG_SPICTRL_MAXWLEN 0 +#endif +#ifndef CONFIG_SPICTRL_SYNCRAM +#define CONFIG_SPICTRL_SYNCRAM 0 +#endif +#if defined(CONFIG_SPICTRL_DMRFT) +#define CONFIG_SPICTRL_FT 1 +#elif defined(CONFIG_SPICTRL_TMRFT) +#define CONFIG_SPICTRL_FT 2 +#else +#define CONFIG_SPICTRL_FT 0 +#endif #ifndef CONFIG_DEBUG_UART #define CONFIG_DEBUG_UART 0 diff --git a/designs/leon3-xilinx-ml403/Makefile b/designs/leon3-xilinx-ml403/Makefile index 8d07375d..b3b62b21 100644 --- a/designs/leon3-xilinx-ml403/Makefile +++ b/designs/leon3-xilinx-ml403/Makefile @@ -22,10 +22,10 @@ CLEAN=soft-clean TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix ihp gleichmann fmf gsi spansion + tmtc openchip hynix ihp fmf gsi spansion DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can usb \ - hcan leon4 leon4b64 l2cache slink ascs pwm haps coremp7 gr1553b iommu \ - spi ac97 + hcan leon4 leon4v0 l2cache slink ascs pwm gr1553b iommu \ + spi FILESKIP = grcan.vhd include $(GRLIB)/software/leon3/Makefile diff --git a/designs/leon3-xilinx-ml403/ahbrom.vhd b/designs/leon3-xilinx-ml403/ahbrom.vhd index e5eb66ec..df5aba6a 100644 --- a/designs/leon3-xilinx-ml403/ahbrom.vhd +++ b/designs/leon3-xilinx-ml403/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-xilinx-ml403/config.help b/designs/leon3-xilinx-ml403/config.help index c311f948..4d7ca3c2 100644 --- a/designs/leon3-xilinx-ml403/config.help +++ b/designs/leon3-xilinx-ml403/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-xilinx-ml403/doc/Makefile b/designs/leon3-xilinx-ml403/doc/Makefile deleted file mode 100644 index 2b8abafd..00000000 --- a/designs/leon3-xilinx-ml403/doc/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -clean: - -rm *backup* *.ps *.log diff --git a/designs/leon3-xilinx-ml403/doc/leon3-ml401.pdf b/designs/leon3-xilinx-ml403/doc/leon3-ml401.pdf deleted file mode 100644 index 2282b4a8..00000000 Binary files a/designs/leon3-xilinx-ml403/doc/leon3-ml401.pdf and /dev/null differ diff --git a/designs/leon3-xilinx-ml403/lconfig.tk b/designs/leon3-xilinx-ml403/lconfig.tk index 3c746128..3b004d62 100755 --- a/designs/leon3-xilinx-ml403/lconfig.tk +++ b/designs/leon3-xilinx-ml403/lconfig.tk @@ -755,7 +755,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -765,7 +766,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -908,8 +911,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -928,6 +933,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1017,9 +1026,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1073,10 +1083,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1122,14 +1133,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1202,13 +1215,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1248,22 +1269,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1320,21 +1609,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1381,36 +1670,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1418,48 +1708,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1515,27 +1806,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1576,16 +1867,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1594,34 +1886,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1678,92 +1971,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1771,18 +2064,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1823,52 +2116,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1876,162 +2170,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2087,45 +2382,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2165,18 +2462,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2184,55 +2482,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2289,24 +2592,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2346,17 +2649,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2364,37 +2668,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2450,16 +2755,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2507,9 +2819,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2531,21 +2841,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2854,14 +3169,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2935,17 +3250,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3637,16 +3952,16 @@ proc menu18 {w title} { hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 18 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 18 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3708,21 +4023,21 @@ proc update_define_menu18 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3782,14 +4097,14 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 19 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3843,17 +4158,17 @@ proc update_define_menu19 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3909,15 +4224,15 @@ proc menu20 {w title} { bool $w.config.f 20 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 20 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 20 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4007,19 +4322,19 @@ proc update_menu20 {} { proc update_define_menu20 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4297,7 +4612,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4307,6 +4623,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4331,6 +4649,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4343,14 +4662,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4363,27 +4687,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4393,17 +4717,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4415,12 +4739,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4430,10 +4754,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4444,7 +4768,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4456,26 +4780,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4483,27 +4809,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4524,7 +4854,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4560,7 +4890,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4571,14 +4901,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4659,7 +4989,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4669,6 +5000,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4707,6 +5040,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4719,9 +5053,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4735,239 +5070,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5012,13 +5497,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5092,38 +5577,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UART, timer, I2C, I/O port and interrupt controller" global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5205,7 +5690,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5215,6 +5701,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5233,8 +5721,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5317,11 +5810,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5342,6 +5837,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5441,8 +5940,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5461,6 +5962,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5501,324 +6006,350 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-xilinx-ml403/leon3mp.vhd b/designs/leon3-xilinx-ml403/leon3mp.vhd index 0aa6501a..26bf211b 100644 --- a/designs/leon3-xilinx-ml403/leon3mp.vhd +++ b/designs/leon3-xilinx-ml403/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -380,7 +380,8 @@ begin hindex => 0, haddr => 16#400#, hmask => 16#F00#, ioaddr => 1, pwron => CFG_DDRSP_INIT, MHz => BOARD_FREQ/1000, clkmul => CFG_DDRSP_FREQ/10, clkdiv => 10, ahbfreq => CPU_FREQ/1000, - col => CFG_DDRSP_COL, Mbyte => CFG_DDRSP_SIZE, ddrbits => 32) + col => CFG_DDRSP_COL, Mbyte => CFG_DDRSP_SIZE, ddrbits => 32, + phyiconf => 1) port map ( rst, rstn, lclk, clkm, lock, clkml, clkml, ahbsi, ahbso(0), ddr_clkv, ddr_clkbv, open, ddr_clk_fb, diff --git a/designs/leon3-xilinx-ml403/testbench.vhd b/designs/leon3-xilinx-ml403/testbench.vhd index 6a5e1da6..e4825650 100644 --- a/designs/leon3-xilinx-ml403/testbench.vhd +++ b/designs/leon3-xilinx-ml403/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-ml403/tkconfig.h b/designs/leon3-xilinx-ml403/tkconfig.h index fd7911b6..f6fa5a70 100644 --- a/designs/leon3-xilinx-ml403/tkconfig.h +++ b/designs/leon3-xilinx-ml403/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-xilinx-ml40x/Makefile b/designs/leon3-xilinx-ml40x/Makefile index d173e035..0e91059d 100644 --- a/designs/leon3-xilinx-ml40x/Makefile +++ b/designs/leon3-xilinx-ml40x/Makefile @@ -22,11 +22,11 @@ CLEAN=soft-clean TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix ihp gleichmann fmf gsi spansion + tmtc openchip hynix ihp fmf gsi spansion DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can usb \ - hcan leon4 leon4b64 l2cache slink ascs pwm haps coremp7 gr1553b iommu + hcan leon4 leon4v0 l2cache slink ascs pwm gr1553b iommu -FILESKIP = grcan.vhd simple_spi_top.v +FILESKIP = grcan.vhd include $(GRLIB)/software/leon3/Makefile XLDFLAGS=-L./ lib3tests.a -Ttext=0x40000000 diff --git a/designs/leon3-xilinx-ml40x/ahbrom.vhd b/designs/leon3-xilinx-ml40x/ahbrom.vhd index e5eb66ec..df5aba6a 100644 --- a/designs/leon3-xilinx-ml40x/ahbrom.vhd +++ b/designs/leon3-xilinx-ml40x/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-xilinx-ml40x/config.help b/designs/leon3-xilinx-ml40x/config.help index 84994664..7759d4ef 100644 --- a/designs/leon3-xilinx-ml40x/config.help +++ b/designs/leon3-xilinx-ml40x/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-xilinx-ml40x/doc/Makefile b/designs/leon3-xilinx-ml40x/doc/Makefile deleted file mode 100644 index 2b8abafd..00000000 --- a/designs/leon3-xilinx-ml40x/doc/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -clean: - -rm *backup* *.ps *.log diff --git a/designs/leon3-xilinx-ml40x/doc/leon3-ml401.pdf b/designs/leon3-xilinx-ml40x/doc/leon3-ml401.pdf deleted file mode 100644 index 2282b4a8..00000000 Binary files a/designs/leon3-xilinx-ml40x/doc/leon3-ml401.pdf and /dev/null differ diff --git a/designs/leon3-xilinx-ml40x/lconfig.tk b/designs/leon3-xilinx-ml40x/lconfig.tk index 6ff2585f..53cc907a 100755 --- a/designs/leon3-xilinx-ml40x/lconfig.tk +++ b/designs/leon3-xilinx-ml40x/lconfig.tk @@ -756,7 +756,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -766,7 +767,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -909,8 +912,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -929,6 +934,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1125,9 +1134,10 @@ proc menu3 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_3 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_3 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_3 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_3 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_3 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_3 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 3 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 3 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 3 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1181,10 +1191,11 @@ proc update_menu3 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu3.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x2.l configure -state normal; } else {.menu3.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x2.l configure -state disabled} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {.menu3.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x2.l configure -state normal; } else {.menu3.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x2.l configure -state disabled} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu3.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x3.l configure -state normal; } else {.menu3.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x3.l configure -state disabled} global CONFIG_OCLKB_DIV @@ -1230,14 +1241,16 @@ proc update_define_menu3 {} { if {$tmpvar_3 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_3 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_3 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_3 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_3 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1310,13 +1323,21 @@ proc menu4 {w title} { bool $w.config.f 4 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 4 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 4 2 "Integer unit " 5 - submenu $w.config.f 4 3 "Floating-point unit" 6 - submenu $w.config.f 4 4 "Cache system" 7 - submenu $w.config.f 4 5 "MMU" 8 - submenu $w.config.f 4 6 "Debug Support Unit " 9 - submenu $w.config.f 4 7 "Fault-tolerance " 10 - submenu $w.config.f 4 8 "VHDL debug settings " 11 + global tmpvar_4 + minimenu $w.config.f 4 2 "Force values from example configuration (see help)" tmpvar_4 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_4 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_4 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_4 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_4 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 4 3 "Integer unit " 5 + submenu $w.config.f 4 4 "Floating-point unit" 6 + submenu $w.config.f 4 5 "Cache system" 7 + submenu $w.config.f 4 6 "MMU" 8 + submenu $w.config.f 4 7 "Debug Support Unit " 9 + submenu $w.config.f 4 8 "Fault-tolerance " 10 + submenu $w.config.f 4 9 "VHDL debug settings " 11 @@ -1356,22 +1377,290 @@ proc update_menu4 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x1.l configure -state normal; } else {.menu4.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x1.l configure -state disabled} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x2 normal {m}} else {configure_entry .menu4.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x3 normal {m}} else {configure_entry .menu4.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x4 normal {m}} else {configure_entry .menu4.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x5 normal {m}} else {configure_entry .menu4.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x6 normal {m}} else {configure_entry .menu4.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x7 normal {m}} else {configure_entry .menu4.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x2 normal {x l}} else {configure_entry .menu4.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x3 normal {m}} else {configure_entry .menu4.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x4 normal {m}} else {configure_entry .menu4.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x5 normal {m}} else {configure_entry .menu4.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x6 normal {m}} else {configure_entry .menu4.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x7 normal {m}} else {configure_entry .menu4.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x8 normal {m}} else {configure_entry .menu4.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x9 normal {m}} else {configure_entry .menu4.config.f.x9 disabled {m}} } proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_4 + global CONFIG_LEON3_MIN + if {$tmpvar_4 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_4 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_4 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_4 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1428,21 +1717,21 @@ proc menu5 {w title} { int $w.config.f 5 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 5 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_4 - minimenu $w.config.f 5 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_5 + minimenu $w.config.f 5 2 "Hardware multiplier latency" tmpvar_5 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_5 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_5 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_5 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 5 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_5 - minimenu $w.config.f 5 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED + global tmpvar_6 + minimenu $w.config.f 5 4 "Multipler structure " tmpvar_6 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_6 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_6 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 5 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 5 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1489,36 +1778,37 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x0.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x0.l configure -state normal; } else {.menu5.config.f.x0.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x0.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x0.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x0.l configure -state normal; } else {.menu5.config.f.x0.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x0.l configure -state disabled} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x1 normal {n l y}} else {configure_entry .menu5.config.f.x1 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x2 normal {x l}} else {configure_entry .menu5.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x2 normal {x l}} else {configure_entry .menu5.config.f.x2 disabled {x l}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x6 normal {n l y}} else {configure_entry .menu5.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x7 normal {n l y}} else {configure_entry .menu5.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x8.l configure -state normal; } else {.menu5.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x8.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x8.l configure -state normal; } else {.menu5.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x8.l configure -state disabled} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x9.l configure -state normal; } else {.menu5.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x9.l configure -state normal; } else {.menu5.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x10 normal {n l y}} else {configure_entry .menu5.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x11.l configure -state normal; } else {.menu5.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x11.l configure -state normal; } else {.menu5.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x11.l configure -state disabled} } @@ -1526,48 +1816,49 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_5 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_5 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_5 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_6 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_6 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_6 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_6 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1623,27 +1914,27 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_6 - minimenu $w.config.f 6 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU + global tmpvar_7 + minimenu $w.config.f 6 1 "FPU core" tmpvar_7 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_7 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_7 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_7 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_7 - minimenu $w.config.f 6 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_8 + minimenu $w.config.f 6 2 "GRFPU multiplier" tmpvar_8 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_8 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_8 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_8 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_8 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_8 - minimenu $w.config.f 6 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 + global tmpvar_9 + minimenu $w.config.f 6 3 "GRFPU-LITE controller" tmpvar_9 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_9 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_9 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_9 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 6 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1684,16 +1975,17 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu6.config.f.x1 normal {x l}} else {configure_entry .menu6.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu6.config.f.x1 normal {x l}} else {configure_entry .menu6.config.f.x1 disabled {x l}} global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {configure_entry .menu6.config.f.x2 normal {x l}} else {configure_entry .menu6.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {configure_entry .menu6.config.f.x2 normal {x l}} else {configure_entry .menu6.config.f.x2 disabled {x l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu6.config.f.x3 normal {x l}} else {configure_entry .menu6.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu6.config.f.x3 normal {x l}} else {configure_entry .menu6.config.f.x3 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu6.config.f.x4 normal {n l y}} else {configure_entry .menu6.config.f.x4 disabled {y n l}} } @@ -1702,34 +1994,35 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_6 + global tmpvar_7 global CONFIG_FPU_GRFPU - if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_7 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_7 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_7 + if {$tmpvar_7 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_8 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_8 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_8 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_8 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_8 + if {$tmpvar_8 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_9 global CONFIG_FPU_GRFPC0 - if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_9 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_9 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_9 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1786,92 +2079,92 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_9 - minimenu $w.config.f 7 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 + global tmpvar_10 + minimenu $w.config.f 7 1 "Associativity (sets) " tmpvar_10 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_10 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_10 - minimenu $w.config.f 7 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 + global tmpvar_11 + minimenu $w.config.f 7 2 "Way size (kbytes/way)" tmpvar_11 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_11 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_11 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_11 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_11 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_11 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_11 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_11 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_11 - minimenu $w.config.f 7 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 + global tmpvar_12 + minimenu $w.config.f 7 3 "Line size (bytes/line)" tmpvar_12 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_12 - minimenu $w.config.f 7 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND + global tmpvar_13 + minimenu $w.config.f 7 4 "Replacement alorithm" tmpvar_13 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_13 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_13 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_13 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_13 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 7 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 7 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_13 - minimenu $w.config.f 7 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_14 + minimenu $w.config.f 7 7 "Local data RAM size (kbytes)" tmpvar_14 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 7 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 7 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_14 - minimenu $w.config.f 7 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 + global tmpvar_15 + minimenu $w.config.f 7 10 "Associativity (sets)" tmpvar_15 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_15 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_15 - minimenu $w.config.f 7 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 + global tmpvar_16 + minimenu $w.config.f 7 11 "Set size (kbytes/set)" tmpvar_16 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_16 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_16 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_16 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_16 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_16 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_16 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_16 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_16 - minimenu $w.config.f 7 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 + global tmpvar_17 + minimenu $w.config.f 7 12 "Line size (bytes/line)" tmpvar_17 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_17 - minimenu $w.config.f 7 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND + global tmpvar_18 + minimenu $w.config.f 7 13 "Replacement alorithm" tmpvar_18 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_18 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_18 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_18 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_18 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 7 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 7 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1879,18 +2172,18 @@ proc menu7 {w title} { bool $w.config.f 7 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 7 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 7 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_18 - minimenu $w.config.f 7 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_19 + minimenu $w.config.f 7 20 "Local data RAM size (kbytes)" tmpvar_19 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_19 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_19 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_19 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_19 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_19 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_19 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_19 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_19 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_19 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 7 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1931,52 +2224,53 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x1 normal {x l}} else {configure_entry .menu7.config.f.x1 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x2 normal {x l}} else {configure_entry .menu7.config.f.x2 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x3 normal {x l}} else {configure_entry .menu7.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x1 normal {x l}} else {configure_entry .menu7.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x2 normal {x l}} else {configure_entry .menu7.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x3 normal {x l}} else {configure_entry .menu7.config.f.x3 disabled {x l}} global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x4 normal {x l}} else {configure_entry .menu7.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x4 normal {x l}} else {configure_entry .menu7.config.f.x4 disabled {x l}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu7.config.f.x6 normal {n l y}} else {configure_entry .menu7.config.f.x6 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x7 normal {x l}} else {configure_entry .menu7.config.f.x7 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x7 normal {x l}} else {configure_entry .menu7.config.f.x7 disabled {x l}} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {.menu7.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x8.l configure -state normal; } else {.menu7.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x8.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {.menu7.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x8.l configure -state normal; } else {.menu7.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x8.l configure -state disabled} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x9 normal {n l y}} else {configure_entry .menu7.config.f.x9 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x10 normal {x l}} else {configure_entry .menu7.config.f.x10 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x11 normal {x l}} else {configure_entry .menu7.config.f.x11 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x12 normal {x l}} else {configure_entry .menu7.config.f.x12 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x10 normal {x l}} else {configure_entry .menu7.config.f.x10 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x11 normal {x l}} else {configure_entry .menu7.config.f.x11 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x12 normal {x l}} else {configure_entry .menu7.config.f.x12 disabled {x l}} global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x13 normal {x l}} else {configure_entry .menu7.config.f.x13 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x13 normal {x l}} else {configure_entry .menu7.config.f.x13 disabled {x l}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu7.config.f.x14 normal {n l y}} else {configure_entry .menu7.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu7.config.f.x15 normal {n l y}} else {configure_entry .menu7.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu7.config.f.x16 normal {n l y}} else {configure_entry .menu7.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu7.config.f.x17 normal {n l y}} else {configure_entry .menu7.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {.menu7.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x18.l configure -state normal; } else {.menu7.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x18.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {.menu7.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x18.l configure -state normal; } else {.menu7.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x18.l configure -state disabled} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu7.config.f.x19 normal {n l y}} else {configure_entry .menu7.config.f.x19 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x20 normal {x l}} else {configure_entry .menu7.config.f.x20 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x20 normal {x l}} else {configure_entry .menu7.config.f.x20 disabled {x l}} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {.menu7.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x21.l configure -state normal; } else {.menu7.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x21.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {.menu7.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x21.l configure -state normal; } else {.menu7.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x21.l configure -state disabled} } @@ -1984,162 +2278,163 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_9 + global tmpvar_10 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_10 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_10 + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_11 global CONFIG_ICACHE_SZ1 - if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_11 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_11 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_11 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_11 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_11 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_11 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_11 + if {$tmpvar_11 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_12 global CONFIG_ICACHE_LZ16 - if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_12 + if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_13 global CONFIG_ICACHE_ALGORND - if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_13 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_13 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_13 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_13 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_14 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_14 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_14 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_14 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_14 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_14 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_14 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_14 + global tmpvar_15 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_15 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_15 + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_16 global CONFIG_DCACHE_SZ1 - if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_16 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_16 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_16 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_16 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_16 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_16 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_16 + if {$tmpvar_16 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_17 global CONFIG_DCACHE_LZ16 - if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_17 + if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_18 global CONFIG_DCACHE_ALGORND - if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_18 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_18 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_18 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_18 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_19 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_19 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_19 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_19 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_19 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_19 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_19 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_19 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_19 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2195,45 +2490,47 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_19 - minimenu $w.config.f 8 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED + global tmpvar_20 + minimenu $w.config.f 8 1 "MMU type " tmpvar_20 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_20 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_20 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 8 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY + global tmpvar_21 + minimenu $w.config.f 8 2 "TLB replacement sheme " tmpvar_21 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_21 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_21 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_21 - minimenu $w.config.f 8 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_22 - minimenu $w.config.f 8 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 + minimenu $w.config.f 8 3 "Instruction (or combined) TLB entries" tmpvar_22 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_23 + minimenu $w.config.f 8 4 "Data TLB entries" tmpvar_23 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_23 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_23 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 8 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_23 - minimenu $w.config.f 8 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K + global tmpvar_24 + minimenu $w.config.f 8 6 "MMU page size" tmpvar_24 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_24 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_24 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_24 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_24 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_24 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2273,18 +2570,19 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x1 normal {x l}} else {configure_entry .menu8.config.f.x1 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x2 normal {x l}} else {configure_entry .menu8.config.f.x2 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x3 normal {x l}} else {configure_entry .menu8.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x1 normal {x l}} else {configure_entry .menu8.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x2 normal {x l}} else {configure_entry .menu8.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x3 normal {x l}} else {configure_entry .menu8.config.f.x3 disabled {x l}} global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {configure_entry .menu8.config.f.x4 normal {x l}} else {configure_entry .menu8.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {configure_entry .menu8.config.f.x4 normal {x l}} else {configure_entry .menu8.config.f.x4 disabled {x l}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu8.config.f.x5 normal {n l y}} else {configure_entry .menu8.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x6 normal {x l}} else {configure_entry .menu8.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x6 normal {x l}} else {configure_entry .menu8.config.f.x6 disabled {x l}} } @@ -2292,55 +2590,60 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_19 + global tmpvar_20 global CONFIG_MMU_COMBINED - if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_20 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_20 + if {$tmpvar_20 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_21 global CONFIG_MMU_REPARRAY - if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_21 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_21 + if {$tmpvar_21 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_22 global CONFIG_MMU_I2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_22 + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_23 global CONFIG_MMU_D2 - if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_23 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_23 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_23 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_23 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_23 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_23 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_MMU_PAGE_4K - if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_24 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_24 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_24 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_24 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_24 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2397,24 +2700,24 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 9 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_24 - minimenu $w.config.f 9 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 + global tmpvar_25 + minimenu $w.config.f 9 2 "Instruction trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 9 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_25 - minimenu $w.config.f 9 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 + global tmpvar_26 + minimenu $w.config.f 9 4 "AHB trace buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2454,17 +2757,18 @@ proc menu9 {w title} { proc update_menu9 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu9.config.f.x1 normal {n l y}} else {configure_entry .menu9.config.f.x1 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {configure_entry .menu9.config.f.x4 normal {x l}} else {configure_entry .menu9.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {configure_entry .menu9.config.f.x4 normal {x l}} else {configure_entry .menu9.config.f.x4 disabled {x l}} } @@ -2472,37 +2776,38 @@ proc update_define_menu9 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2558,16 +2863,23 @@ proc menu10 {w title} { bool $w.config.f 10 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_26 - minimenu $w.config.f 10 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE + global tmpvar_27 + minimenu $w.config.f 10 1 "IU Register file protection " tmpvar_27 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_27 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 10 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_28 + minimenu $w.config.f 10 2 "FPU Register file protection " tmpvar_28 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_28 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_28 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_28 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_28 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 10 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 10 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 10 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2615,9 +2927,7 @@ proc update_menu10 {} { configure_entry .menu10.config.f.x0 normal {n l y}} else {configure_entry .menu10.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu10.config.f.x1 normal {x l}} else {configure_entry .menu10.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu10.config.f.x2 normal {n l y}} else {configure_entry .menu10.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu10.config.f.x2 normal {x l}} else {configure_entry .menu10.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu10.config.f.x3 normal {n l y}} else {configure_entry .menu10.config.f.x3 disabled {y n l}} @@ -2639,21 +2949,26 @@ proc update_define_menu10 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_26 + global tmpvar_27 global CONFIG_IUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_27 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_27 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_28 + global CONFIG_FPUFT_NONE + if {$tmpvar_28 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_28 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_28 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_28 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2962,14 +3277,14 @@ proc menu13 {w title} { bool $w.config.f 13 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 13 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 13 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_27 - minimenu $w.config.f 13 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_27 CONFIG_DSU_ETHSZ1 + global tmpvar_29 + minimenu $w.config.f 13 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_29 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 13 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 13 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -3043,17 +3358,17 @@ proc update_define_menu13 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3746,16 +4061,16 @@ proc menu19 {w title} { hex $w.config.f 19 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 19 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 19 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_28 - minimenu $w.config.f 19 4 "AHB RAM size (Kbyte)" tmpvar_28 CONFIG_AHBRAM_SZ1 + global tmpvar_30 + minimenu $w.config.f 19 4 "AHB RAM size (Kbyte)" tmpvar_30 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 19 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3817,21 +4132,21 @@ proc update_define_menu19 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_28 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_30 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_28 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_30 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_28 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_28 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_28 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_28 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_28 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3891,14 +4206,14 @@ proc menu20 {w title} { bool $w.config.f 20 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 20 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_29 - minimenu $w.config.f 20 2 "AHB FIFO size (words) " tmpvar_29 CONFIG_GRETH_FIFO4 + global tmpvar_31 + minimenu $w.config.f 20 2 "AHB FIFO size (words) " tmpvar_31 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3952,17 +4267,17 @@ proc update_define_menu20 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_29 + global tmpvar_31 global CONFIG_GRETH_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_29 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_31 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -4018,15 +4333,15 @@ proc menu21 {w title} { bool $w.config.f 21 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_30 - minimenu $w.config.f 21 1 "UART1 FIFO depth" tmpvar_30 CONFIG_UA1_FIFO1 + global tmpvar_32 + minimenu $w.config.f 21 1 "UART1 FIFO depth" tmpvar_32 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_32 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_32 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 21 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 21 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4116,19 +4431,19 @@ proc update_menu21 {} { proc update_define_menu21 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_30 + global tmpvar_32 global CONFIG_UA1_FIFO1 - if {$tmpvar_30 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_32 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_30 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_32 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_32 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_32 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_32 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_32 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4504,7 +4819,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4514,6 +4830,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4541,6 +4859,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4553,14 +4872,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_4 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4573,27 +4897,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4603,17 +4927,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4625,12 +4949,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4640,10 +4964,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4654,7 +4978,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4666,26 +4990,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_21 "(not set)" +set tmpvar_22 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_22 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_23 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4693,27 +5019,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_28 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4734,7 +5064,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4770,7 +5100,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4781,14 +5111,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4870,7 +5200,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4880,6 +5211,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4923,6 +5256,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_3 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } + if { $tmpvar_3 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } global CONFIG_CLK_MUL @@ -4935,9 +5269,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4951,239 +5286,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_4 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_4 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_4 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_4 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_4 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - if { $tmpvar_4 == "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 } - if { $tmpvar_4 == "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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_5 == "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 } + if { $tmpvar_5 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_6 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_6 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_6 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_6 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_7 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 }} global tmpvar_8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_8 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_9 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 }} global tmpvar_22 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_24 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_24 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_24 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_24 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_24 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_26 + global tmpvar_27 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_28 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_28 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_28 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_28 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_28 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5228,13 +5713,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_27 + global tmpvar_29 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5308,38 +5793,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_28 + global tmpvar_30 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_29 + global tmpvar_31 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} write_comment $cfg $autocfg "UART, timer, I2C, I/O port and interrupt controller" global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_30 + global tmpvar_32 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5424,7 +5909,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5434,6 +5920,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5454,8 +5942,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5538,11 +6031,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5563,6 +6058,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5662,8 +6161,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5682,6 +6183,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5728,324 +6233,350 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_3 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_3 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_3 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_3 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_3 "Xilinx-DCM" } global tmpvar_4 - set tmpvar_4 "5-cycles" + set tmpvar_4 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_4 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_4 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_4 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_4 "Custom-configuration" } + global tmpvar_5 + set tmpvar_5 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_5 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_5 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } - global tmpvar_5 - set tmpvar_5 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_5 "5-cycles" } + global tmpvar_6 + set tmpvar_6 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_6 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_6 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } - global tmpvar_6 - set tmpvar_6 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_6 "Designware" } + global tmpvar_7 + set tmpvar_7 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_7 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_7 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } - global tmpvar_7 - set tmpvar_7 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_7 "Meiko" } + global tmpvar_8 + set tmpvar_8 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_8 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_8 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_8 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } - global tmpvar_8 - set tmpvar_8 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_8 "TechSpec" } + global tmpvar_9 + set tmpvar_9 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_9 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_9 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } - global tmpvar_9 - set tmpvar_9 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_9 "Non-blocking" } + global tmpvar_10 + set tmpvar_10 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_10 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } - global tmpvar_10 - set tmpvar_10 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_10 "4" } + global tmpvar_11 + set tmpvar_11 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_11 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_11 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_11 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_11 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_11 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_11 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_11 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } - global tmpvar_11 - set tmpvar_11 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_11 "256" } + global tmpvar_12 + set tmpvar_12 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_12 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } - global tmpvar_12 - set tmpvar_12 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_12 "32" } + global tmpvar_13 + set tmpvar_13 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_13 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_13 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_13 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } - global tmpvar_13 - set tmpvar_13 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_13 "LRU" } + global tmpvar_14 + set tmpvar_14 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_14 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_14 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_14 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_14 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_14 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_14 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_14 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_14 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } - global tmpvar_14 - set tmpvar_14 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_14 "256" } + global tmpvar_15 + set tmpvar_15 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_15 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } - global tmpvar_15 - set tmpvar_15 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_15 "4" } + global tmpvar_16 + set tmpvar_16 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_16 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_16 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_16 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_16 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_16 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_16 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_16 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } - global tmpvar_16 - set tmpvar_16 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_16 "256" } + global tmpvar_17 + set tmpvar_17 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_17 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } - global tmpvar_17 - set tmpvar_17 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_17 "32" } + global tmpvar_18 + set tmpvar_18 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_18 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_18 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_18 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } - global tmpvar_18 - set tmpvar_18 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_18 "LRU" } + global tmpvar_19 + set tmpvar_19 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_19 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_19 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_19 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_19 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_19 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_19 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_19 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_19 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } - global tmpvar_19 - set tmpvar_19 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_19 "256" } + global tmpvar_20 + set tmpvar_20 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_20 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } - global tmpvar_20 - set tmpvar_20 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_20 "split" } + global tmpvar_21 + set tmpvar_21 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_21 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_21 "Increment" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_23 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_23 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_23 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_23 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } - global tmpvar_23 - set tmpvar_23 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_23 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_23 "64" } + global tmpvar_24 + set tmpvar_24 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_24 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_24 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_24 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_24 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_24 "Programmable" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_26 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_26 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_26 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_26 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_26 "16" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_27 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_28 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_28 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_28 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_28 "TMR" } + global tmpvar_29 + set tmpvar_29 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_27 "16" } - global tmpvar_28 - set tmpvar_28 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_29 "16" } + global tmpvar_30 + set tmpvar_30 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_30 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_30 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_30 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_30 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_30 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_30 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_31 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_29 "64" } - global tmpvar_30 - set tmpvar_30 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_31 "64" } + global tmpvar_32 + set tmpvar_32 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_30 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_32 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_30 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_32 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_32 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_32 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_32 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_32 "32" } } diff --git a/designs/leon3-xilinx-ml40x/leon3mp.vhd b/designs/leon3-xilinx-ml40x/leon3mp.vhd index 585cd374..358f78e4 100644 --- a/designs/leon3-xilinx-ml40x/leon3mp.vhd +++ b/designs/leon3-xilinx-ml40x/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -396,12 +396,13 @@ begin port map (sram_flash_data, memo.data, memo.vbdrive, memi.data); ddrsp0 : if (CFG_DDRSP /= 0) generate - + -- phyiconf => 1 = no diff pads for DDR clock pairs ddrc0 : ddrspa generic map ( fabtech => CFG_FABTECH, memtech => memtech, hindex => 0, haddr => 16#400#, hmask => 16#F00#, ioaddr => 1, pwron => CFG_DDRSP_INIT, MHz => BOARD_FREQ/1000, clkmul => CFG_DDRSP_FREQ/10, clkdiv => 10, ahbfreq => CPU_FREQ/1000, - col => CFG_DDRSP_COL, Mbyte => CFG_DDRSP_SIZE, ddrbits => 32) + col => CFG_DDRSP_COL, Mbyte => CFG_DDRSP_SIZE, ddrbits => 32, + phyiconf => 1) port map ( rst, rstn, lclk, clkm, lock, clkml, clkml, ahbsi, ahbso(0), ddr_clkv, ddr_clkbv, open, ddr_clk_fb, diff --git a/designs/leon3-xilinx-ml40x/testbench.vhd b/designs/leon3-xilinx-ml40x/testbench.vhd index 5285d5d6..6a9864ba 100644 --- a/designs/leon3-xilinx-ml40x/testbench.vhd +++ b/designs/leon3-xilinx-ml40x/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-ml40x/tkconfig.h b/designs/leon3-xilinx-ml40x/tkconfig.h index 9d68168d..eb869351 100644 --- a/designs/leon3-xilinx-ml40x/tkconfig.h +++ b/designs/leon3-xilinx-ml40x/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/leon3-xilinx-ml501/Makefile b/designs/leon3-xilinx-ml501/Makefile index a468a5b2..3c9e7550 100644 --- a/designs/leon3-xilinx-ml501/Makefile +++ b/designs/leon3-xilinx-ml501/Makefile @@ -60,12 +60,12 @@ XLDFLAGS=-L./ lib3tests.a -Ttext=0x40000000 TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann usbhc spw fmf gsi spansion -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan can ata pci leon3ft ambatest \ - grusbhc usb spacewire hcan leon4 leon4b64 l2cache \ - slink ascs pwm haps coremp7 gr1553b iommu + tmtc openchip ihp usbhc spw fmf gsi spansion +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan can pci leon3ft ambatest \ + grusbhc usb spacewire hcan leon4 leon4v0 l2cache \ + slink ascs pwm gr1553b iommu -FILESKIP = grcan.vhd simple_spi_top.v +FILESKIP = grcan.vhd include $(GRLIB)/bin/Makefile diff --git a/designs/leon3-xilinx-ml501/README.txt b/designs/leon3-xilinx-ml501/README.txt index a40243fc..6e4f1337 100644 --- a/designs/leon3-xilinx-ml501/README.txt +++ b/designs/leon3-xilinx-ml501/README.txt @@ -43,6 +43,9 @@ Design specifics: without having to regenerate the MIG itself. The default settings are compatible with the provided 256 Mbyte SODIMM. + It is essential to use ISE 13.4. MIG generation is not supported + for any other ISE version in this design. + * The SSRAM can be interfaced with the LEON2 Memory controller. Start GRMON with -ramrws 1 when the LEON2 controller is used. diff --git a/designs/leon3-xilinx-ml501/ahb2mig_ml50x.vhd b/designs/leon3-xilinx-ml501/ahb2mig_ml50x.vhd index cef83932..fc328732 100644 --- a/designs/leon3-xilinx-ml501/ahb2mig_ml50x.vhd +++ b/designs/leon3-xilinx-ml501/ahb2mig_ml50x.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -428,7 +428,6 @@ begin ahbso.hready <= ra.hready; ahbso.hresp <= ra.hresp; ahbso.hrdata <= ahbdrivedata(ra.hrdata); - ahbso.hcache <= '1'; -- migi.app_addr <= '0' & ra.acc.haddr(28 downto 6) & "000"; migi.app_addr <= "00000" & ra.acc.haddr(28 downto 5) & "00"; diff --git a/designs/leon3-xilinx-ml501/ahbrom.vhd b/designs/leon3-xilinx-ml501/ahbrom.vhd index e5eb66ec..df5aba6a 100644 --- a/designs/leon3-xilinx-ml501/ahbrom.vhd +++ b/designs/leon3-xilinx-ml501/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-xilinx-ml501/config.help b/designs/leon3-xilinx-ml501/config.help index 10380303..5a9cd175 100644 --- a/designs/leon3-xilinx-ml501/config.help +++ b/designs/leon3-xilinx-ml501/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-xilinx-ml501/lconfig.tk b/designs/leon3-xilinx-ml501/lconfig.tk index f3a1f7c5..6dded157 100755 --- a/designs/leon3-xilinx-ml501/lconfig.tk +++ b/designs/leon3-xilinx-ml501/lconfig.tk @@ -756,7 +756,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -766,7 +767,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -909,8 +912,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -929,6 +934,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1018,9 +1027,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1074,10 +1084,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1123,14 +1134,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1203,13 +1216,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1249,22 +1270,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1321,21 +1610,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1382,36 +1671,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1419,48 +1709,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1516,27 +1807,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1577,16 +1868,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1595,34 +1887,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1679,92 +1972,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1772,18 +2065,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1824,52 +2117,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1877,162 +2171,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2088,45 +2383,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2166,18 +2463,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2185,55 +2483,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2290,24 +2593,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2347,17 +2650,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2365,37 +2669,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2451,16 +2756,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2508,9 +2820,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2532,21 +2842,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2855,14 +3170,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2936,17 +3251,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3735,16 +4050,16 @@ proc menu18 {w title} { hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 18 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 18 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3806,21 +4121,21 @@ proc update_define_menu18 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3880,14 +4195,14 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 19 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3941,17 +4256,17 @@ proc update_define_menu19 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -4007,15 +4322,15 @@ proc menu20 {w title} { bool $w.config.f 20 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 20 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 20 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4106,19 +4421,19 @@ proc update_menu20 {} { proc update_define_menu20 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4494,7 +4809,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4504,6 +4820,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4528,6 +4846,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4540,14 +4859,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4560,27 +4884,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4590,17 +4914,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4612,12 +4936,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4627,10 +4951,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4641,7 +4965,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4653,26 +4977,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4680,27 +5006,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4721,7 +5051,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4777,7 +5107,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4788,14 +5118,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4878,7 +5208,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4888,6 +5219,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4926,6 +5259,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4938,9 +5272,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4954,239 +5289,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5231,13 +5716,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5345,38 +5830,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UART, timer, I2C, SysMon, I/O port and interrupt controller" global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5463,7 +5948,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5473,6 +5959,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5491,8 +5979,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5575,11 +6068,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5600,6 +6095,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5699,8 +6198,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5719,6 +6220,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5759,324 +6264,350 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-xilinx-ml501/leon3mp.vhd b/designs/leon3-xilinx-ml501/leon3mp.vhd index 17334891..6801f4a6 100644 --- a/designs/leon3-xilinx-ml501/leon3mp.vhd +++ b/designs/leon3-xilinx-ml501/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-ml501/svga2ch7301c.vhd b/designs/leon3-xilinx-ml501/svga2ch7301c.vhd index 0c28c28c..e0fa9171 100644 --- a/designs/leon3-xilinx-ml501/svga2ch7301c.vhd +++ b/designs/leon3-xilinx-ml501/svga2ch7301c.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-ml501/testbench.vhd b/designs/leon3-xilinx-ml501/testbench.vhd index 3bfc3647..db686a97 100644 --- a/designs/leon3-xilinx-ml501/testbench.vhd +++ b/designs/leon3-xilinx-ml501/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-ml501/tkconfig.h b/designs/leon3-xilinx-ml501/tkconfig.h index a617e6a7..33dd02bc 100644 --- a/designs/leon3-xilinx-ml501/tkconfig.h +++ b/designs/leon3-xilinx-ml501/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -783,6 +805,10 @@ #endif +#ifndef CONFIG_MIG_DDR3 +#define CONFIG_MIG_DDR3 0 +#endif + #ifndef CONFIG_MIG_DDR2 #define CONFIG_MIG_DDR2 0 #endif diff --git a/designs/leon3-xilinx-ml50x/Makefile b/designs/leon3-xilinx-ml50x/Makefile index eb141df2..930f35c7 100644 --- a/designs/leon3-xilinx-ml50x/Makefile +++ b/designs/leon3-xilinx-ml50x/Makefile @@ -72,12 +72,12 @@ XLDFLAGS=-L./ lib3tests.a -Ttext=0x40000000 TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann usbhc spw fmf gsi spansion -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan can ata pci leon3ft ambatest \ - grusbhc usb spacewire hcan leon4 leon4b64 l2cache \ - slink ascs pwm haps coremp7 gr1553b iommu + tmtc openchip ihp usbhc spw fmf gsi spansion +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan can pci leon3ft ambatest \ + grusbhc usb spacewire hcan leon4 leon4v0 l2cache \ + slink ascs pwm gr1553b iommu -FILESKIP = grcan.vhd simple_spi_top.v +FILESKIP = grcan.vhd include $(GRLIB)/bin/Makefile diff --git a/designs/leon3-xilinx-ml50x/README.txt b/designs/leon3-xilinx-ml50x/README.txt index b97a0346..b352ea82 100644 --- a/designs/leon3-xilinx-ml50x/README.txt +++ b/designs/leon3-xilinx-ml50x/README.txt @@ -37,7 +37,8 @@ Design specifics: make mig make install-unisim - It is essential to use ISE-13.4 or later. + It is essential to use ISE 13.4. MIG generation is not supported + for any other ISE version in this design. * The SSRAM can be interfaced with the LEON2 Memory controller. Start GRMON with -ramrws 1 when the LEON2 controller is used. diff --git a/designs/leon3-xilinx-ml50x/ahb2mig_ml50x.vhd b/designs/leon3-xilinx-ml50x/ahb2mig_ml50x.vhd index cef83932..fc328732 100644 --- a/designs/leon3-xilinx-ml50x/ahb2mig_ml50x.vhd +++ b/designs/leon3-xilinx-ml50x/ahb2mig_ml50x.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -428,7 +428,6 @@ begin ahbso.hready <= ra.hready; ahbso.hresp <= ra.hresp; ahbso.hrdata <= ahbdrivedata(ra.hrdata); - ahbso.hcache <= '1'; -- migi.app_addr <= '0' & ra.acc.haddr(28 downto 6) & "000"; migi.app_addr <= "00000" & ra.acc.haddr(28 downto 5) & "00"; diff --git a/designs/leon3-xilinx-ml50x/ahbrom.vhd b/designs/leon3-xilinx-ml50x/ahbrom.vhd index e5eb66ec..df5aba6a 100644 --- a/designs/leon3-xilinx-ml50x/ahbrom.vhd +++ b/designs/leon3-xilinx-ml50x/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-xilinx-ml50x/config.help b/designs/leon3-xilinx-ml50x/config.help index b61e6bca..5a9cd175 100644 --- a/designs/leon3-xilinx-ml50x/config.help +++ b/designs/leon3-xilinx-ml50x/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. diff --git a/designs/leon3-xilinx-ml50x/grlib_config.vhd b/designs/leon3-xilinx-ml50x/grlib_config.vhd index 931f70c1..0e5a2140 100644 --- a/designs/leon3-xilinx-ml50x/grlib_config.vhd +++ b/designs/leon3-xilinx-ml50x/grlib_config.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -26,6 +26,8 @@ library ieee; use ieee.std_logic_1164.all; +library grlib; +use grlib.config_types.all; package config is @@ -53,7 +55,14 @@ constant CFG_AHBDW : integer := 64; -- constant CFG_AHB_ACDM : integer := 0; -constant grlib_debug_level : integer := 0; -constant grlib_debug_mask : integer := 0; +-- GRLIB_CONFIG_ARRAY - Array of configuration values +-- +-- The length of this array and the meaning of different positions is defined +-- in the grlib.config_types package. +constant GRLIB_CONFIG_ARRAY : grlib_config_array_type := ( + grlib_debug_level => 0, + grlib_debug_mask => 0, + grlib_techmap_strict_ram => 0, + others => 0); end; diff --git a/designs/leon3-xilinx-ml50x/lconfig.tk b/designs/leon3-xilinx-ml50x/lconfig.tk index 65a92e24..5917f410 100755 --- a/designs/leon3-xilinx-ml50x/lconfig.tk +++ b/designs/leon3-xilinx-ml50x/lconfig.tk @@ -756,7 +756,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -766,7 +767,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -909,8 +912,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -929,6 +934,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1131,9 +1140,10 @@ proc menu3 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_3 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_3 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_3 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_3 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_3 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_3 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 3 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 3 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 3 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1187,10 +1197,11 @@ proc update_menu3 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu3.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x2.l configure -state normal; } else {.menu3.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x2.l configure -state disabled} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {.menu3.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x2.l configure -state normal; } else {.menu3.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x2.l configure -state disabled} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu3.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x3.l configure -state normal; } else {.menu3.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x3.l configure -state disabled} global CONFIG_OCLKB_DIV @@ -1236,14 +1247,16 @@ proc update_define_menu3 {} { if {$tmpvar_3 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_3 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_3 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_3 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_3 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1316,13 +1329,21 @@ proc menu4 {w title} { bool $w.config.f 4 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 4 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 4 2 "Integer unit " 5 - submenu $w.config.f 4 3 "Floating-point unit" 6 - submenu $w.config.f 4 4 "Cache system" 7 - submenu $w.config.f 4 5 "MMU" 8 - submenu $w.config.f 4 6 "Debug Support Unit " 9 - submenu $w.config.f 4 7 "Fault-tolerance " 10 - submenu $w.config.f 4 8 "VHDL debug settings " 11 + global tmpvar_4 + minimenu $w.config.f 4 2 "Force values from example configuration (see help)" tmpvar_4 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_4 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_4 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_4 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_4 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 4 3 "Integer unit " 5 + submenu $w.config.f 4 4 "Floating-point unit" 6 + submenu $w.config.f 4 5 "Cache system" 7 + submenu $w.config.f 4 6 "MMU" 8 + submenu $w.config.f 4 7 "Debug Support Unit " 9 + submenu $w.config.f 4 8 "Fault-tolerance " 10 + submenu $w.config.f 4 9 "VHDL debug settings " 11 @@ -1362,22 +1383,290 @@ proc update_menu4 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x1.l configure -state normal; } else {.menu4.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x1.l configure -state disabled} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x2 normal {m}} else {configure_entry .menu4.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x3 normal {m}} else {configure_entry .menu4.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x4 normal {m}} else {configure_entry .menu4.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x5 normal {m}} else {configure_entry .menu4.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x6 normal {m}} else {configure_entry .menu4.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x7 normal {m}} else {configure_entry .menu4.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x2 normal {x l}} else {configure_entry .menu4.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x3 normal {m}} else {configure_entry .menu4.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x4 normal {m}} else {configure_entry .menu4.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x5 normal {m}} else {configure_entry .menu4.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x6 normal {m}} else {configure_entry .menu4.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x7 normal {m}} else {configure_entry .menu4.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x8 normal {m}} else {configure_entry .menu4.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x9 normal {m}} else {configure_entry .menu4.config.f.x9 disabled {m}} } proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_4 + global CONFIG_LEON3_MIN + if {$tmpvar_4 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_4 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_4 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_4 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1434,21 +1723,21 @@ proc menu5 {w title} { int $w.config.f 5 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 5 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_4 - minimenu $w.config.f 5 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_5 + minimenu $w.config.f 5 2 "Hardware multiplier latency" tmpvar_5 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_5 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_5 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_5 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 5 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_5 - minimenu $w.config.f 5 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED + global tmpvar_6 + minimenu $w.config.f 5 4 "Multipler structure " tmpvar_6 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_6 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_6 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 5 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 5 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1495,36 +1784,37 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x0.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x0.l configure -state normal; } else {.menu5.config.f.x0.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x0.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x0.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x0.l configure -state normal; } else {.menu5.config.f.x0.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x0.l configure -state disabled} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x1 normal {n l y}} else {configure_entry .menu5.config.f.x1 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x2 normal {x l}} else {configure_entry .menu5.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x2 normal {x l}} else {configure_entry .menu5.config.f.x2 disabled {x l}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x6 normal {n l y}} else {configure_entry .menu5.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x7 normal {n l y}} else {configure_entry .menu5.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x8.l configure -state normal; } else {.menu5.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x8.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x8.l configure -state normal; } else {.menu5.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x8.l configure -state disabled} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x9.l configure -state normal; } else {.menu5.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x9.l configure -state normal; } else {.menu5.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x10 normal {n l y}} else {configure_entry .menu5.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x11.l configure -state normal; } else {.menu5.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x11.l configure -state normal; } else {.menu5.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x11.l configure -state disabled} } @@ -1532,48 +1822,49 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_5 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_5 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_5 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_6 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_6 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_6 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_6 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1629,27 +1920,27 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_6 - minimenu $w.config.f 6 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU + global tmpvar_7 + minimenu $w.config.f 6 1 "FPU core" tmpvar_7 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_7 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_7 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_7 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_7 - minimenu $w.config.f 6 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_8 + minimenu $w.config.f 6 2 "GRFPU multiplier" tmpvar_8 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_8 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_8 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_8 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_8 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_8 - minimenu $w.config.f 6 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 + global tmpvar_9 + minimenu $w.config.f 6 3 "GRFPU-LITE controller" tmpvar_9 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_9 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_9 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_9 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 6 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1690,16 +1981,17 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu6.config.f.x1 normal {x l}} else {configure_entry .menu6.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu6.config.f.x1 normal {x l}} else {configure_entry .menu6.config.f.x1 disabled {x l}} global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {configure_entry .menu6.config.f.x2 normal {x l}} else {configure_entry .menu6.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {configure_entry .menu6.config.f.x2 normal {x l}} else {configure_entry .menu6.config.f.x2 disabled {x l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu6.config.f.x3 normal {x l}} else {configure_entry .menu6.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu6.config.f.x3 normal {x l}} else {configure_entry .menu6.config.f.x3 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu6.config.f.x4 normal {n l y}} else {configure_entry .menu6.config.f.x4 disabled {y n l}} } @@ -1708,34 +2000,35 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_6 + global tmpvar_7 global CONFIG_FPU_GRFPU - if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_7 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_7 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_7 + if {$tmpvar_7 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_8 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_8 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_8 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_8 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_8 + if {$tmpvar_8 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_9 global CONFIG_FPU_GRFPC0 - if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_9 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_9 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_9 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1792,92 +2085,92 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_9 - minimenu $w.config.f 7 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 + global tmpvar_10 + minimenu $w.config.f 7 1 "Associativity (sets) " tmpvar_10 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_10 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_10 - minimenu $w.config.f 7 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 + global tmpvar_11 + minimenu $w.config.f 7 2 "Way size (kbytes/way)" tmpvar_11 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_11 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_11 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_11 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_11 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_11 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_11 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_11 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_11 - minimenu $w.config.f 7 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 + global tmpvar_12 + minimenu $w.config.f 7 3 "Line size (bytes/line)" tmpvar_12 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_12 - minimenu $w.config.f 7 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND + global tmpvar_13 + minimenu $w.config.f 7 4 "Replacement alorithm" tmpvar_13 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_13 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_13 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_13 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_13 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 7 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 7 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_13 - minimenu $w.config.f 7 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_14 + minimenu $w.config.f 7 7 "Local data RAM size (kbytes)" tmpvar_14 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 7 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 7 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_14 - minimenu $w.config.f 7 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 + global tmpvar_15 + minimenu $w.config.f 7 10 "Associativity (sets)" tmpvar_15 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_15 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_15 - minimenu $w.config.f 7 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 + global tmpvar_16 + minimenu $w.config.f 7 11 "Set size (kbytes/set)" tmpvar_16 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_16 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_16 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_16 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_16 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_16 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_16 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_16 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_16 - minimenu $w.config.f 7 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 + global tmpvar_17 + minimenu $w.config.f 7 12 "Line size (bytes/line)" tmpvar_17 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_17 - minimenu $w.config.f 7 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND + global tmpvar_18 + minimenu $w.config.f 7 13 "Replacement alorithm" tmpvar_18 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_18 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_18 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_18 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_18 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 7 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 7 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1885,18 +2178,18 @@ proc menu7 {w title} { bool $w.config.f 7 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 7 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 7 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_18 - minimenu $w.config.f 7 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_19 + minimenu $w.config.f 7 20 "Local data RAM size (kbytes)" tmpvar_19 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_19 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_19 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_19 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_19 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_19 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_19 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_19 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_19 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_19 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 7 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1937,52 +2230,53 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x1 normal {x l}} else {configure_entry .menu7.config.f.x1 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x2 normal {x l}} else {configure_entry .menu7.config.f.x2 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x3 normal {x l}} else {configure_entry .menu7.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x1 normal {x l}} else {configure_entry .menu7.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x2 normal {x l}} else {configure_entry .menu7.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x3 normal {x l}} else {configure_entry .menu7.config.f.x3 disabled {x l}} global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x4 normal {x l}} else {configure_entry .menu7.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x4 normal {x l}} else {configure_entry .menu7.config.f.x4 disabled {x l}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu7.config.f.x6 normal {n l y}} else {configure_entry .menu7.config.f.x6 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x7 normal {x l}} else {configure_entry .menu7.config.f.x7 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x7 normal {x l}} else {configure_entry .menu7.config.f.x7 disabled {x l}} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {.menu7.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x8.l configure -state normal; } else {.menu7.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x8.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {.menu7.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x8.l configure -state normal; } else {.menu7.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x8.l configure -state disabled} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x9 normal {n l y}} else {configure_entry .menu7.config.f.x9 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x10 normal {x l}} else {configure_entry .menu7.config.f.x10 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x11 normal {x l}} else {configure_entry .menu7.config.f.x11 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x12 normal {x l}} else {configure_entry .menu7.config.f.x12 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x10 normal {x l}} else {configure_entry .menu7.config.f.x10 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x11 normal {x l}} else {configure_entry .menu7.config.f.x11 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x12 normal {x l}} else {configure_entry .menu7.config.f.x12 disabled {x l}} global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x13 normal {x l}} else {configure_entry .menu7.config.f.x13 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x13 normal {x l}} else {configure_entry .menu7.config.f.x13 disabled {x l}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu7.config.f.x14 normal {n l y}} else {configure_entry .menu7.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu7.config.f.x15 normal {n l y}} else {configure_entry .menu7.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu7.config.f.x16 normal {n l y}} else {configure_entry .menu7.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu7.config.f.x17 normal {n l y}} else {configure_entry .menu7.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {.menu7.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x18.l configure -state normal; } else {.menu7.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x18.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {.menu7.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x18.l configure -state normal; } else {.menu7.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x18.l configure -state disabled} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu7.config.f.x19 normal {n l y}} else {configure_entry .menu7.config.f.x19 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x20 normal {x l}} else {configure_entry .menu7.config.f.x20 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x20 normal {x l}} else {configure_entry .menu7.config.f.x20 disabled {x l}} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {.menu7.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x21.l configure -state normal; } else {.menu7.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x21.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {.menu7.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x21.l configure -state normal; } else {.menu7.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x21.l configure -state disabled} } @@ -1990,162 +2284,163 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_9 + global tmpvar_10 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_10 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_10 + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_11 global CONFIG_ICACHE_SZ1 - if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_11 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_11 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_11 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_11 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_11 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_11 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_11 + if {$tmpvar_11 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_12 global CONFIG_ICACHE_LZ16 - if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_12 + if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_13 global CONFIG_ICACHE_ALGORND - if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_13 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_13 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_13 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_13 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_14 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_14 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_14 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_14 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_14 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_14 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_14 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_14 + global tmpvar_15 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_15 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_15 + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_16 global CONFIG_DCACHE_SZ1 - if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_16 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_16 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_16 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_16 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_16 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_16 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_16 + if {$tmpvar_16 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_17 global CONFIG_DCACHE_LZ16 - if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_17 + if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_18 global CONFIG_DCACHE_ALGORND - if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_18 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_18 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_18 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_18 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_19 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_19 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_19 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_19 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_19 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_19 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_19 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_19 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_19 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2201,45 +2496,47 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_19 - minimenu $w.config.f 8 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED + global tmpvar_20 + minimenu $w.config.f 8 1 "MMU type " tmpvar_20 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_20 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_20 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 8 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY + global tmpvar_21 + minimenu $w.config.f 8 2 "TLB replacement sheme " tmpvar_21 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_21 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_21 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_21 - minimenu $w.config.f 8 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_22 - minimenu $w.config.f 8 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 + minimenu $w.config.f 8 3 "Instruction (or combined) TLB entries" tmpvar_22 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_23 + minimenu $w.config.f 8 4 "Data TLB entries" tmpvar_23 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_23 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_23 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 8 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_23 - minimenu $w.config.f 8 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K + global tmpvar_24 + minimenu $w.config.f 8 6 "MMU page size" tmpvar_24 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_24 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_24 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_24 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_24 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_24 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2279,18 +2576,19 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x1 normal {x l}} else {configure_entry .menu8.config.f.x1 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x2 normal {x l}} else {configure_entry .menu8.config.f.x2 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x3 normal {x l}} else {configure_entry .menu8.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x1 normal {x l}} else {configure_entry .menu8.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x2 normal {x l}} else {configure_entry .menu8.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x3 normal {x l}} else {configure_entry .menu8.config.f.x3 disabled {x l}} global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {configure_entry .menu8.config.f.x4 normal {x l}} else {configure_entry .menu8.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {configure_entry .menu8.config.f.x4 normal {x l}} else {configure_entry .menu8.config.f.x4 disabled {x l}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu8.config.f.x5 normal {n l y}} else {configure_entry .menu8.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x6 normal {x l}} else {configure_entry .menu8.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x6 normal {x l}} else {configure_entry .menu8.config.f.x6 disabled {x l}} } @@ -2298,55 +2596,60 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_19 + global tmpvar_20 global CONFIG_MMU_COMBINED - if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_20 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_20 + if {$tmpvar_20 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_21 global CONFIG_MMU_REPARRAY - if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_21 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_21 + if {$tmpvar_21 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_22 global CONFIG_MMU_I2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_22 + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_23 global CONFIG_MMU_D2 - if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_23 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_23 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_23 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_23 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_23 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_23 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_MMU_PAGE_4K - if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_24 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_24 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_24 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_24 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_24 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2403,24 +2706,24 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 9 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_24 - minimenu $w.config.f 9 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 + global tmpvar_25 + minimenu $w.config.f 9 2 "Instruction trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 9 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_25 - minimenu $w.config.f 9 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 + global tmpvar_26 + minimenu $w.config.f 9 4 "AHB trace buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2460,17 +2763,18 @@ proc menu9 {w title} { proc update_menu9 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu9.config.f.x1 normal {n l y}} else {configure_entry .menu9.config.f.x1 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {configure_entry .menu9.config.f.x4 normal {x l}} else {configure_entry .menu9.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {configure_entry .menu9.config.f.x4 normal {x l}} else {configure_entry .menu9.config.f.x4 disabled {x l}} } @@ -2478,37 +2782,38 @@ proc update_define_menu9 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2564,22 +2869,22 @@ proc menu10 {w title} { bool $w.config.f 10 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_26 - minimenu $w.config.f 10 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE + global tmpvar_27 + minimenu $w.config.f 10 1 "IU Register file protection " tmpvar_27 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_27 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - global tmpvar_27 - minimenu $w.config.f 10 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + global tmpvar_28 + minimenu $w.config.f 10 2 "FPU Register file protection " tmpvar_28 CONFIG_FPUFT_NONE menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" - $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_28 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_28 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_28 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_28 -value "TMR" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 10 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 10 4 "Cache memory protection " CONFIG_CACHE_FT_EN @@ -2650,26 +2955,26 @@ proc update_define_menu10 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_26 + global tmpvar_27 global CONFIG_IUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_27 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global tmpvar_27 + if {$tmpvar_27 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_28 global CONFIG_FPUFT_NONE - if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + if {$tmpvar_28 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} global CONFIG_FPUFT_PAR - if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + if {$tmpvar_28 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} global CONFIG_FPUFT_DMR - if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + if {$tmpvar_28 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} global CONFIG_FPUFT_TMR - if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} + if {$tmpvar_28 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2978,14 +3283,14 @@ proc menu13 {w title} { bool $w.config.f 13 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 13 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 13 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_28 - minimenu $w.config.f 13 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 + global tmpvar_29 + minimenu $w.config.f 13 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_29 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 13 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 13 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -3059,17 +3364,17 @@ proc update_define_menu13 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_28 + global tmpvar_29 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3858,16 +4163,16 @@ proc menu19 {w title} { hex $w.config.f 19 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 19 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 19 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_29 - minimenu $w.config.f 19 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 + global tmpvar_30 + minimenu $w.config.f 19 4 "AHB RAM size (Kbyte)" tmpvar_30 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 19 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3929,21 +4234,21 @@ proc update_define_menu19 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_29 + global tmpvar_30 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_30 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_30 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -4003,14 +4308,14 @@ proc menu20 {w title} { bool $w.config.f 20 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 20 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_30 - minimenu $w.config.f 20 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 + global tmpvar_31 + minimenu $w.config.f 20 2 "AHB FIFO size (words) " tmpvar_31 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -4064,17 +4369,17 @@ proc update_define_menu20 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_30 + global tmpvar_31 global CONFIG_GRETH_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_31 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -4130,15 +4435,15 @@ proc menu21 {w title} { bool $w.config.f 21 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_31 - minimenu $w.config.f 21 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 + global tmpvar_32 + minimenu $w.config.f 21 1 "UART1 FIFO depth" tmpvar_32 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_32 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_32 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 21 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 21 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4229,19 +4534,19 @@ proc update_menu21 {} { proc update_define_menu21 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_31 + global tmpvar_32 global CONFIG_UA1_FIFO1 - if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_32 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_32 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_32 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_32 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_32 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_32 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4617,7 +4922,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4627,6 +4933,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4656,6 +4964,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4668,14 +4977,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_4 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4688,27 +5002,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4718,17 +5032,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4740,12 +5054,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4755,10 +5069,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4769,7 +5083,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4781,26 +5095,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_21 "(not set)" +set tmpvar_22 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_22 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_23 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4808,27 +5124,27 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set tmpvar_27 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_FPUFT_NONE 0 set CONFIG_FPUFT_PAR 0 set CONFIG_FPUFT_DMR 0 @@ -4853,7 +5169,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_28 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4909,7 +5225,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4920,14 +5236,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_30 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_31 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5010,7 +5326,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5020,6 +5337,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5065,6 +5384,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_3 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } + if { $tmpvar_3 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } global CONFIG_CLK_MUL @@ -5077,9 +5397,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5093,243 +5414,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_4 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_4 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_4 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_4 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_4 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - if { $tmpvar_4 == "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 } - if { $tmpvar_4 == "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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_5 == "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 } + if { $tmpvar_5 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_6 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_6 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_6 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_6 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_7 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 }} global tmpvar_8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_8 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_9 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 }} global tmpvar_22 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_24 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_24 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_24 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_24 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_24 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_26 - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_28 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} + if { $tmpvar_28 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_28 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_28 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_28 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5374,13 +5841,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_28 + global tmpvar_29 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5488,38 +5955,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_30 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_30 + global tmpvar_31 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} write_comment $cfg $autocfg "UART, timer, I2C, SysMon, I/O port and interrupt controller" global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_31 + global tmpvar_32 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 }} + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5606,7 +6073,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5616,6 +6084,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5638,8 +6108,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5722,11 +6197,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5850,8 +6327,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5870,6 +6349,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5920,334 +6403,350 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_3 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_3 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_3 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_3 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_3 "Xilinx-DCM" } global tmpvar_4 - set tmpvar_4 "5-cycles" + set tmpvar_4 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_4 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_4 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_4 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_4 "Custom-configuration" } + global tmpvar_5 + set tmpvar_5 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_5 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_5 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } - global tmpvar_5 - set tmpvar_5 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_5 "5-cycles" } + global tmpvar_6 + set tmpvar_6 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_6 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_6 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } - global tmpvar_6 - set tmpvar_6 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_6 "Designware" } + global tmpvar_7 + set tmpvar_7 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_7 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_7 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } - global tmpvar_7 - set tmpvar_7 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_7 "Meiko" } + global tmpvar_8 + set tmpvar_8 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_8 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_8 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_8 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } - global tmpvar_8 - set tmpvar_8 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_8 "TechSpec" } + global tmpvar_9 + set tmpvar_9 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_9 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_9 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } - global tmpvar_9 - set tmpvar_9 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_9 "Non-blocking" } + global tmpvar_10 + set tmpvar_10 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_10 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } - global tmpvar_10 - set tmpvar_10 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_10 "4" } + global tmpvar_11 + set tmpvar_11 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_11 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_11 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_11 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_11 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_11 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_11 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_11 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } - global tmpvar_11 - set tmpvar_11 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_11 "256" } + global tmpvar_12 + set tmpvar_12 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_12 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } - global tmpvar_12 - set tmpvar_12 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_12 "32" } + global tmpvar_13 + set tmpvar_13 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_13 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_13 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_13 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } - global tmpvar_13 - set tmpvar_13 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_13 "LRU" } + global tmpvar_14 + set tmpvar_14 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_14 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_14 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_14 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_14 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_14 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_14 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_14 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_14 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } - global tmpvar_14 - set tmpvar_14 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_14 "256" } + global tmpvar_15 + set tmpvar_15 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_15 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } - global tmpvar_15 - set tmpvar_15 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_15 "4" } + global tmpvar_16 + set tmpvar_16 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_16 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_16 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_16 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_16 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_16 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_16 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_16 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } - global tmpvar_16 - set tmpvar_16 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_16 "256" } + global tmpvar_17 + set tmpvar_17 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_17 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } - global tmpvar_17 - set tmpvar_17 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_17 "32" } + global tmpvar_18 + set tmpvar_18 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_18 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_18 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_18 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } - global tmpvar_18 - set tmpvar_18 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_18 "LRU" } + global tmpvar_19 + set tmpvar_19 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_19 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_19 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_19 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_19 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_19 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_19 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_19 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_19 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } - global tmpvar_19 - set tmpvar_19 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_19 "256" } + global tmpvar_20 + set tmpvar_20 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_20 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } - global tmpvar_20 - set tmpvar_20 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_20 "split" } + global tmpvar_21 + set tmpvar_21 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_21 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_21 "Increment" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_23 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_23 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_23 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_23 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } - global tmpvar_23 - set tmpvar_23 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_23 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_23 "64" } + global tmpvar_24 + set tmpvar_24 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_24 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_24 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_24 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_24 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_24 "Programmable" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_26 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_26 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_26 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_26 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_26 "16" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_27 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "None" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "None" global CONFIG_FPUFT_NONE - if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_28 "None" } global CONFIG_FPUFT_PAR - if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_28 "Parity" } global CONFIG_FPUFT_DMR - if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_28 "PDMR" } global CONFIG_FPUFT_TMR - if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } - global tmpvar_28 - set tmpvar_28 "2" + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_28 "TMR" } + global tmpvar_29 + set tmpvar_29 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } - global tmpvar_29 - set tmpvar_29 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_29 "16" } + global tmpvar_30 + set tmpvar_30 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_30 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_30 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_30 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_30 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_30 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_30 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } - global tmpvar_30 - set tmpvar_30 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_31 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } - global tmpvar_31 - set tmpvar_31 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_31 "64" } + global tmpvar_32 + set tmpvar_32 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_32 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_32 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_32 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_32 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_32 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_32 "32" } } diff --git a/designs/leon3-xilinx-ml50x/leon3mp.vhd b/designs/leon3-xilinx-ml50x/leon3mp.vhd index 5b62bb2c..38a2d9a2 100644 --- a/designs/leon3-xilinx-ml50x/leon3mp.vhd +++ b/designs/leon3-xilinx-ml50x/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-ml50x/svga2ch7301c.vhd b/designs/leon3-xilinx-ml50x/svga2ch7301c.vhd index 0c28c28c..e0fa9171 100644 --- a/designs/leon3-xilinx-ml50x/svga2ch7301c.vhd +++ b/designs/leon3-xilinx-ml50x/svga2ch7301c.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-ml50x/testbench.vhd b/designs/leon3-xilinx-ml50x/testbench.vhd index 570d5633..4bdb2cc6 100644 --- a/designs/leon3-xilinx-ml50x/testbench.vhd +++ b/designs/leon3-xilinx-ml50x/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-ml50x/tkconfig.h b/designs/leon3-xilinx-ml50x/tkconfig.h index 77acfd71..33dd02bc 100644 --- a/designs/leon3-xilinx-ml50x/tkconfig.h +++ b/designs/leon3-xilinx-ml50x/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -783,6 +805,10 @@ #endif +#ifndef CONFIG_MIG_DDR3 +#define CONFIG_MIG_DDR3 0 +#endif + #ifndef CONFIG_MIG_DDR2 #define CONFIG_MIG_DDR2 0 #endif diff --git a/designs/leon3-xilinx-ml510/.config b/designs/leon3-xilinx-ml510/.config index d7679438..9a24f4a2 100644 --- a/designs/leon3-xilinx-ml510/.config +++ b/designs/leon3-xilinx-ml510/.config @@ -41,7 +41,8 @@ CONFIG_HAS_SHARED_GRFPU=y # CONFIG_SYN_TM65GPLUS is not set # CONFIG_SYN_TSMC90 is not set # CONFIG_SYN_UMC is not set -# CONFIG_SYN_SPARTAN2 is not set +# CONFIG_SYN_ARTIX7 is not set +# CONFIG_SYN_KINTEX7 is not set # CONFIG_SYN_SPARTAN3 is not set # CONFIG_SYN_SPARTAN3E is not set # CONFIG_SYN_SPARTAN6 is not set @@ -51,6 +52,8 @@ CONFIG_HAS_SHARED_GRFPU=y # CONFIG_SYN_VIRTEX4 is not set CONFIG_SYN_VIRTEX5=y # CONFIG_SYN_VIRTEX6 is not set +# CONFIG_SYN_VIRTEX7 is not set +# CONFIG_SYN_ZYNQ7000 is not set # CONFIG_SYN_INFER_RAM is not set # CONFIG_SYN_INFER_PADS is not set # CONFIG_SYN_NO_ASYNC is not set @@ -70,6 +73,7 @@ CONFIG_SYN_VIRTEX5=y # CONFIG_CLK_FUSPLL is not set # CONFIG_CLK_LIB18T is not set # CONFIG_CLK_RHUMC is not set +# CONFIG_CLK_CLKPLLE2 is not set # CONFIG_CLK_CLKDLL is not set CONFIG_CLK_DCM=y CONFIG_CLK_MUL=8 @@ -77,12 +81,16 @@ CONFIG_CLK_DIV=10 # CONFIG_PCI_CLKDLL is not set CONFIG_CLK_NOFB=y # CONFIG_PCI_SYSCLK is not set -CONFIG_LEON3=y -CONFIG_PROC_NUM=1 # # Processor # +CONFIG_LEON3=y +CONFIG_PROC_NUM=2 +# CONFIG_LEON3_MIN is not set +# CONFIG_LEON3_GP is not set +# CONFIG_LEON3_HP is not set +CONFIG_LEON3_CUSTOM=y # # Integer unit @@ -156,7 +164,7 @@ CONFIG_DCACHE_ALGOLRU=y # CONFIG_DCACHE_LOCK is not set CONFIG_DCACHE_SNOOP=y CONFIG_DCACHE_SNOOP_FAST=y -# CONFIG_DCACHE_SNOOP_SEPTAG is not set +CONFIG_DCACHE_SNOOP_SEPTAG=y CONFIG_CACHE_FIXED=0 # @@ -172,11 +180,13 @@ CONFIG_MMU_REPARRAY=y CONFIG_MMU_I8=y # CONFIG_MMU_I16 is not set # CONFIG_MMU_I32 is not set +# CONFIG_MMU_I64 is not set # CONFIG_MMU_D2 is not set # CONFIG_MMU_D4 is not set CONFIG_MMU_D8=y # CONFIG_MMU_D16 is not set # CONFIG_MMU_D32 is not set +# CONFIG_MMU_D64 is not set CONFIG_MMU_FASTWB=y CONFIG_MMU_PAGE_4K=y # CONFIG_MMU_PAGE_8K is not set @@ -204,6 +214,7 @@ CONFIG_DSU_ATRACESZ2=y # # Fault-tolerance # +# CONFIG_LEON3FT_EN is not set # # VHDL debug settings @@ -217,6 +228,7 @@ CONFIG_DSU_ATRACESZ2=y CONFIG_AHB_DEFMST=0 CONFIG_AHB_RROBIN=y CONFIG_AHB_SPLIT=y +# CONFIG_AHB_FPNPEN is not set CONFIG_AHB_IOADDR=FFF CONFIG_APB_HADDR=C00 CONFIG_AHB_MON=y @@ -259,11 +271,6 @@ CONFIG_MCTRL_16BIT=y # CONFIG_MCTRL_5CS is not set # CONFIG_MCTRL_SDRAM is not set -# -# Xilinx MIG DDR2 controller -# -# CONFIG_MIG_DDR2 is not set - # # DDR2 SDRAM controller # @@ -273,7 +280,7 @@ CONFIG_DDR2SP_NOSYNC=y CONFIG_DDR2SP_TRFC=130 CONFIG_DDR2SP_COL=10 CONFIG_DDR2SP_MBYTE=512 -CONFIG_DDR2SP_DATAWIDTH=32 +CONFIG_DDR2SP_DATAWIDTH=64 # CONFIG_DDR2SP_FTEN is not set CONFIG_DDR2SP_DELAY0=8 CONFIG_DDR2SP_DELAY1=8 diff --git a/designs/leon3-xilinx-ml510/Makefile b/designs/leon3-xilinx-ml510/Makefile index f563ec06..5153f3ac 100644 --- a/designs/leon3-xilinx-ml510/Makefile +++ b/designs/leon3-xilinx-ml510/Makefile @@ -4,39 +4,13 @@ TOP=leon3mp BOARD=xilinx-ml510-xc5vfx130t include $(GRLIB)/boards/$(BOARD)/Makefile.inc DEVICE=$(PART)-$(PACKAGE)$(SPEED) -ifeq ("$(CONFIG_MIG_DDR2)","y") -UCF=leon3mp_mig.ucf -else UCF=leon3mp.ucf -endif XSTOPT=-uc leon3mp.xcf QSF=$(GRLIB)/boards/$(BOARD)/$(TOP).qsf EFFORT=high ISEMAPOPT=-m -timing SYNPOPT="set_option -pipe 1; set_option -retiming 1; set_option -write_apr_constraint 0" -VHDLOPTSYNFILES= \ - mig_36_1/user_design/rtl/ddr2_chipscope.vhd \ - mig_36_1/user_design/rtl/ddr2_ctrl.vhd \ - mig_36_1/user_design/rtl/ddr2_idelay_ctrl.vhd \ - mig_36_1/user_design/rtl/ddr2_infrastructure.vhd \ - mig_36_1/user_design/rtl/ddr2_mem_if_top.vhd \ - mig_36_1/user_design/rtl/ddr2_phy_calib.vhd \ - mig_36_1/user_design/rtl/ddr2_phy_ctl_io.vhd \ - mig_36_1/user_design/rtl/ddr2_phy_dm_iob.vhd \ - mig_36_1/user_design/rtl/ddr2_phy_dq_iob.vhd \ - mig_36_1/user_design/rtl/ddr2_phy_dqs_iob.vhd \ - mig_36_1/user_design/rtl/ddr2_phy_init.vhd \ - mig_36_1/user_design/rtl/ddr2_phy_io.vhd \ - mig_36_1/user_design/rtl/ddr2_phy_top.vhd \ - mig_36_1/user_design/rtl/ddr2_phy_write.vhd \ - mig_36_1/user_design/rtl/ddr2_top.vhd \ - mig_36_1/user_design/rtl/ddr2_usr_addr_fifo.vhd \ - mig_36_1/user_design/rtl/ddr2_usr_rd.vhd \ - mig_36_1/user_design/rtl/ddr2_usr_top.vhd \ - mig_36_1/user_design/rtl/ddr2_usr_wr.vhd \ - mig_36_1/user_design/rtl/mig_36_1.vhd -VHDLSYNFILES= config.vhd \ - ahb2mig_ml510.vhd ahbrom.vhd \ +VHDLSYNFILES= config.vhd ahbrom.vhd \ svga2ch7301c.vhd leon3mp.vhd VHDLSIMFILES=testbench.vhd SIMTOP=testbench @@ -49,23 +23,14 @@ XLDFLAGS=-L./ lib3tests.a -Ttext=0x40000000 TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann usbhc spw micron -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan can ata leon3ft \ - grusbhc usb spacewire hcan leon4 leon4b64 l2cache \ - slink ascs pwm haps coremp7 gr1553b iommu ac97 ambatest atf + tmtc openchip ihp usbhc spw micron +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan can leon3ft \ + grusbhc usb spacewire hcan leon4 leon4v0 l2cache \ + slink ascs pwm gr1553b iommu ambatest atf -FILESKIP = grcan.vhd simple_spi_top.v +FILESKIP = grcan.vhd include $(GRLIB)/bin/Makefile ################## project specific targets ########################## - -mig_36_1 mig: - cp mig_rdimm.prj mig.prj - coregen -b mig.xco -p . - patch -p0 < mig.diff - -migclean: - -rm -rf mig_36* tmp coregen.log - diff --git a/designs/leon3-xilinx-ml510/README.txt b/designs/leon3-xilinx-ml510/README.txt index 2f816df0..f95d7305 100644 --- a/designs/leon3-xilinx-ml510/README.txt +++ b/designs/leon3-xilinx-ml510/README.txt @@ -10,6 +10,9 @@ NOTE1: With revision 1 of the DDR2SPA controller, the controller can NOTE2: The ML510 has a bug that prevents the use of 64 bit unbuffered DDR2. See description of the DDR2 interface below. +NOTE3: To intialize the correct DDR2 delay values, issue the GRMON command: + ddr2delay scan (see GRMON example below) + Design specifics: * System reset is mapped to the CPU RESET button @@ -112,250 +115,281 @@ Design specifics: * Sample output from GRMON is: -grmon -eth -ip 192.168.0.52 - - GRMON LEON debug monitor v1.1.32 - - Copyright (C) 2004-2008 Gaisler Research - all rights reserved. - For latest updates, go to http://www.gaisler.com/ - Comments or bug-reports to support@gaisler.com - - - ethernet startup. - Device ID: : 0x510 - GRLIB build version: 3293 - - initialising ........................ - detected frequency: 80 MHz - - Component Vendor - LEON3 SPARC V8 Processor Gaisler Research - AHB Debug UART Gaisler Research - AHB Debug JTAG TAP Gaisler Research - SVGA frame buffer Gaisler Research - GR Ethernet MAC Gaisler Research - Fast 32-bit PCI Bridge Gaisler Research - PCI/AHB DMA controller Gaisler Research - DDR2 Controller Gaisler Research - DDR2 Controller Gaisler Research - LEON3 Debug Support Unit Gaisler Research - LEON2 Memory Controller European Space Agency - AHB/APB Bridge Gaisler Research - System ACE I/F Controller Gaisler Research - AMBA Wrapper for System Monitor Gaisler Research - Generic APB UART Gaisler Research - Multi-processor Interrupt Ctrl Gaisler Research - Modular Timer Unit Gaisler Research - AMBA Wrapper for OC I2C-master Gaisler Research - General purpose I/O port Gaisler Research - AMBA Wrapper for OC I2C-master Gaisler Research - SPI Controller Gaisler Research - PCI trace buffer Gaisler Research - PCI Arbiter European Space Agency - AHB status register Gaisler Research - - Use command 'info sys' to print a detailed report of attached cores - -grlib> inf sys -00.01:003 Gaisler Research LEON3 SPARC V8 Processor (ver 0x0) - ahb master 0 -01.01:007 Gaisler Research AHB Debug UART (ver 0x0) - ahb master 1 - apb: c0000700 - c0000800 - baud rate 115200, ahb frequency 80.00 -02.01:01c Gaisler Research AHB Debug JTAG TAP (ver 0x0) - ahb master 2 -03.01:063 Gaisler Research SVGA frame buffer (ver 0x0) - ahb master 3 - apb: c0000e00 - c0000f00 - clk0: 25.00 MHz clk1: 25.00 MHz clk2: 40.00 MHz clk3: 65.00 MHz -04.01:01d Gaisler Research GR Ethernet MAC (ver 0x0) - ahb master 4, irq 4 - apb: c0000b00 - c0000c00 - edcl ip 192.168.0.52, buffer 2 kbyte -05.01:014 Gaisler Research Fast 32-bit PCI Bridge (ver 0x0) - ahb master 5, irq 5 - ahb: 80000000 - c0000000 - ahb: fff40000 - fff60000 - apb: c0000400 - c0000500 -06.01:016 Gaisler Research PCI/AHB DMA controller (ver 0x0) - ahb master 6 - apb: c0000500 - c0000600 -00.01:02e Gaisler Research DDR2 Controller (ver 0x0) - ahb: 40000000 - 60000000 - ahb: fff00100 - fff00200 - 32-bit DDR2 : 2 * 256 Mbyte @ 0x40000000 - 160 MHz, col 10, ref 7.8 us, trfc 131 ns -01.01:02e Gaisler Research DDR2 Controller (ver 0x0) - ahb: 60000000 - 80000000 - ahb: fff00200 - fff00300 - 32-bit DDR2 : 2 * 256 Mbyte @ 0x60000000 - 160 MHz, col 10, ref 7.8 us, trfc 131 ns -02.01:004 Gaisler Research LEON3 Debug Support Unit (ver 0x1) - ahb: d0000000 - e0000000 - AHB trace 128 lines, stack pointer 0x5ffffff0 - CPU#0 win 8, hwbp 2, itrace 128, V8 mul/div, srmmu, lddel 1, GRFPU - icache 4 * 8 kbyte, 32 byte/line lru - dcache 4 * 4 kbyte, 16 byte/line lru -03.04:00f European Space Agency LEON2 Memory Controller (ver 0x1) - ahb: 00000000 - 20000000 - ahb: 20000000 - 40000000 - apb: c0000000 - c0000100 - 16-bit prom @ 0x00000000 -04.01:006 Gaisler Research AHB/APB Bridge (ver 0x0) - ahb: c0000000 - c0100000 -05.01:067 Gaisler Research System ACE I/F Controller (ver 0x0) - irq 13 - ahb: fff00000 - fff00100 -08.01:066 Gaisler Research AMBA Wrapper for System Monitor (ver 0x0) - irq 1 - ahb: fff00300 - fff00400 - ahb: fff00400 - fff00600 - SYSMON registers are on word boundaries -01.01:00c Gaisler Research Generic APB UART (ver 0x1) - irq 2 - apb: c0000100 - c0000200 - baud rate 38461 -02.01:00d Gaisler Research Multi-processor Interrupt Ctrl (ver 0x3) - apb: c0000200 - c0000300 -03.01:011 Gaisler Research Modular Timer Unit (ver 0x0) - irq 8 - apb: c0000300 - c0000400 - 8-bit scaler, 2 * 32-bit timers, divisor 80 -06.01:028 Gaisler Research AMBA Wrapper for OC I2C-master (ver 0x0) - irq 14 - apb: c0000600 - c0000700 - Controller index for use in GRMON: 1 -08.01:01a Gaisler Research General purpose I/O port (ver 0x0) - apb: c0000800 - c0000900 -09.01:028 Gaisler Research AMBA Wrapper for OC I2C-master (ver 0x0) - irq 3 - apb: c0000900 - c0000a00 - Controller index for use in GRMON: 2 -0a.01:02d Gaisler Research SPI Controller (ver 0x1) - irq 12 - apb: c0000a00 - c0000b00 - FIFO depth: 4, 1 slave select signals -0c.01:015 Gaisler Research PCI trace buffer (ver 0x0) - apb: c0010000 - c0020000 - 1024 line trace buffer -0d.04:010 European Space Agency PCI Arbiter (ver 0x0) - apb: c0000d00 - c0000e00 -0f.01:052 Gaisler Research AHB status register (ver 0x0) - irq 15 - apb: c0000f00 - c0001000 -grlib> fla - - Intel-style 16-bit flash on D[31:16] - - Manuf. Intel - Device Strataflash P30 - - Device ID c26cffff01c94716 - User ID ffffffffffffffff - - - 1 x 32 Mbyte = 32 Mbyte total @ 0x00000000 - - - CFI info - flash family : 1 - flash size : 256 Mbit - erase regions : 2 - erase blocks : 259 - write buffer : 64 bytes - lock-down : yes - region 0 : 255 blocks of 128 Kbytes - region 1 : 4 blocks of 32 Kbytes - -grlib> i2c 1 scan - -Scanning 7-bit address space on I2C bus: - Detected I2C device at address 0x50 - Detected I2C device at address 0x76 -Scan of I2C bus completed. 2 devices found - -grlib> i2c 2 scan - -Scanning 7-bit address space on I2C bus: - Detected I2C device at address 0x2e - Detected I2C device at address 0x33 - Detected I2C device at address 0x34 - Detected I2C device at address 0x47 - Detected I2C device at address 0x50 - Detected I2C device at address 0x51 - Detected I2C device at address 0x53 - Detected I2C device at address 0x54 -Scan of I2C bus completed. 8 devices found - -grlib> i2c 1 dvi init_ml50x_dvi - - Transmitter was not set to Chrontel CH7301C (AS=0), changing.. - - DVI transmitter set to Chrontel CH7301C (AS=0) - - Initializing CH7301 for ML50x Leon3/GRLIB template design.. - Initialization done.. - -grlib> i2c 1 dvi showreg - - Registers for Chrontel CH7301C (AS=0) DVI transmitter: - - 0x1c: 04 - 0x1d: 45 - 0x1e: f0 - 0x1f: 9a - 0x20: 2e - 0x21: 00 - 0x23: 00 - 0x31: 80 - 0x33: 08 - 0x34: 16 - 0x35: 30 - 0x36: 60 - 0x37: 00 - 0x48: 18 - 0x49: c0 - 0x4a: 95 - 0x4b: 17 - 0x56: 00 - -grlib> spi selftest - - Starting SPI controller self test.............................. - Self test PASSED - -grlib> grpci info - -GRPCI initiator/target (in system slot): - - BAR0: 0x00000000 - PAGE0: 0x40000001 - BAR1: 0x00000000 - PAGE1: 0x00000000 - Bus master: yes - Mem. space en: no - Latency timer: 0x0 - MMAP: 0x0 - IOMAP: 0x0000 - -grlib> grpci init -grlib> grpci scan - -Found PCI device in slot 7, function 0, (0xfff53800) - vendor: 0x10b9, device: 0x5451 - BAR1 size: 4 kbyte (Memory space) - -Found PCI device in slot 8, function 0, (0xfff54000) - vendor: 0x10b9, device: 0x1533 - -Found PCI device in slot 9, function 0, (0xfff54800) - vendor: 0x10b9, device: 0x5457 - BAR0 size: 4 kbyte (Memory space) +bash-3.2$ grmon2cli -xilusb -regmem -u + + GRMON2 LEON debug monitor v2.0.30-194-g937ff0a internal version + + Copyright (C) 2012 Aeroflex Gaisler - All rights reserved. + For latest updates, go to http://www.gaisler.com/ + Comments or bug-reports to support@gaisler.com + +Xilusb: Cable type/rev : 0x3 + JTAG chain (2): xc5vfx130t xccace + + Device ID: 0x510 + GRLIB build version: 4120 + Detected frequency: 80 MHz + + Component Vendor + LEON3 SPARC V8 Processor Aeroflex Gaisler + LEON3 SPARC V8 Processor Aeroflex Gaisler + AHB Debug UART Aeroflex Gaisler + JTAG Debug Link Aeroflex Gaisler + SVGA frame buffer Aeroflex Gaisler + GR Ethernet MAC Aeroflex Gaisler + Fast 32-bit PCI Bridge Aeroflex Gaisler + PCI/AHB DMA controller Aeroflex Gaisler + Single-port DDR2 controller Aeroflex Gaisler + Single-port DDR2 controller Aeroflex Gaisler + LEON3 Debug Support Unit Aeroflex Gaisler + LEON2 Memory Controller European Space Agency + AHB/APB Bridge Aeroflex Gaisler + System ACE I/F Controller Aeroflex Gaisler + Generic UART Aeroflex Gaisler + Multi-processor Interrupt Ctrl. Aeroflex Gaisler + Modular Timer Unit Aeroflex Gaisler + AMBA Wrapper for OC I2C-master Aeroflex Gaisler + General Purpose I/O port Aeroflex Gaisler + AMBA Wrapper for OC I2C-master Aeroflex Gaisler + SPI Controller Aeroflex Gaisler + 32-bit PCI Trace Buffer Aeroflex Gaisler + PCI Arbiter European Space Agency + AHB Status Register Aeroflex Gaisler + + Use command 'info sys' to print a detailed report of attached cores + +grmon2> ddr2delay scan + DDR2 Delay calibration routine + - Resetting delays + - Trying read-delay 0 cycles + Bits 63-56: ---------------------------------------------------------------- -1 + Bits 55-48: ---------------------------------------------------------------- -1 + Bits 47-40: ---------------------------------------------------------------- -1 + Bits 39-32: ---------------------------------------------------------------- -1 + Bits 31-24: ---------------------------------------------------------------- -1 + Bits 23-16: ---------------------------------------------------------------- -1 + Bits 15- 8: ---------------------------------------------------------------- -1 + Bits 7- 0: ---------------------------------------------------------------- -1 + - Trying read-delay 1 cycles + Bits 63-56: OOOOOOOOOOOOOOOO-O-O------------------------------------OOOOOOOO 4 + Bits 55-48: OOOOOOOOOOOOOOOOOOOO-O----------------------------------OOOOOOOO 6 + Bits 47-40: OOOOOOOOOOOOOOOOOOOOOO----------------------------------OOOOOOOO 7 + Bits 39-32: OOOOOOOOOOOOOOOOOOO-------------------------------------OOOOOOOO 5 + Bits 31-24: OOOOOOOOOOOOOOOOOOOO------------------------------------OOOOOOOO 6 + Bits 23-16: OOOOOOOOOOOOOOOOOOOOOO----------------------------------OOOOOOOO 7 + Bits 15- 8: OOOOOOOOOOOOOOOOOOOOOOO---------------------------------OOOOOOOO 7 + Bits 7- 0: OOOOOOOOOOOOOOOOOOOOO-O---------------------------------OOOOOOOO 6 + - Verifying + - Calibration done + +grmon2> info sys + cpu0 Aeroflex Gaisler LEON3 SPARC V8 Processor + AHB Master 0 + cpu1 Aeroflex Gaisler LEON3 SPARC V8 Processor + AHB Master 1 + ahbuart0 Aeroflex Gaisler AHB Debug UART + AHB Master 2 + APB: C0000700 - C0000800 + Baudrate 115200, AHB frequency 80.00 MHz + ahbjtag0 Aeroflex Gaisler JTAG Debug Link + AHB Master 3 + svga0 Aeroflex Gaisler SVGA frame buffer + AHB Master 4 + APB: C0000E00 - C0000F00 + clk0: 25.00 MHz clk1: 25.00 MHz clk2: 40.00 MHz clk3: 65.00 MHz + greth0 Aeroflex Gaisler GR Ethernet MAC + AHB Master 5 + APB: C0000B00 - C0000C00 + IRQ: 4 + edcl ip 192.168.0.52, buffer 2 kbyte + pci0 Aeroflex Gaisler Fast 32-bit PCI Bridge + AHB Master 6 + AHB: 80000000 - C0000000 + AHB: FFF40000 - FFF60000 + APB: C0000400 - C0000500 + IRQ: 5 + adev7 Aeroflex Gaisler PCI/AHB DMA controller + AHB Master 7 + APB: C0000500 - C0000600 + ddr2spa0 Aeroflex Gaisler Single-port DDR2 controller + AHB: 40000000 - 60000000 + AHB: FFF00100 - FFF00200 + 64-bit DDR2 : 1 * 256 MB @ 0x40000000, 4 internal banks + 160 MHz, col 10, ref 7.8 us, trfc 131 ns + ddr2spa1 Aeroflex Gaisler Single-port DDR2 controller + AHB: 60000000 - 80000000 + AHB: FFF00200 - FFF00300 + No SDRAM found + dsu0 Aeroflex Gaisler LEON3 Debug Support Unit + AHB: D0000000 - E0000000 + AHB trace: 128 lines, 32-bit bus + CPU0: win 8, hwbp 2, V8 mul/div, srmmu, lddel 1 + stack pointer 0x4ffffff0 + icache 4 * 8 kB, 32 B/line lru + dcache 4 * 4 kB, 16 B/line lru + CPU1: win 8, hwbp 2, V8 mul/div, srmmu, lddel 1 + stack pointer 0x4ffffff0 + icache 4 * 8 kB, 32 B/line lru + dcache 4 * 4 kB, 16 B/line lru + mctrl0 European Space Agency LEON2 Memory Controller + AHB: 00000000 - 20000000 + AHB: 20000000 - 40000000 + APB: C0000000 - C0000100 + 16-bit prom @ 0x00000000 + apbmst0 Aeroflex Gaisler AHB/APB Bridge + AHB: C0000000 - C0100000 + adev13 Aeroflex Gaisler System ACE I/F Controller + AHB: FFF00000 - FFF00100 + IRQ: 13 + uart0 Aeroflex Gaisler Generic UART + APB: C0000100 - C0000200 + IRQ: 2 + Baudrate 38461 + irqmp0 Aeroflex Gaisler Multi-processor Interrupt Ctrl. + APB: C0000200 - C0000300 + gptimer0 Aeroflex Gaisler Modular Timer Unit + APB: C0000300 - C0000400 + IRQ: 8 + 8-bit scalar, 2 * 32-bit timers, divisor 80 + i2cmst0 Aeroflex Gaisler AMBA Wrapper for OC I2C-master + APB: C0000600 - C0000700 + IRQ: 14 + Index for use in GRMON: 0 + gpio0 Aeroflex Gaisler General Purpose I/O port + APB: C0000800 - C0000900 + i2cmst1 Aeroflex Gaisler AMBA Wrapper for OC I2C-master + APB: C0000900 - C0000A00 + IRQ: 3 + Index for use in GRMON: 1 + spi0 Aeroflex Gaisler SPI Controller + APB: C0000A00 - C0000B00 + IRQ: 12 + FIFO depth: 4, 1 slave select signals + Maximum word length: 32 bits + Supports 3-wire mode + Controller index for use in GRMON: 0 + pcitrace0 Aeroflex Gaisler 32-bit PCI Trace Buffer + APB: C0010000 - C0020000 + Trace buffer size: 1024 lines + adev22 European Space Agency PCI Arbiter + APB: C0000D00 - C0000E00 + ahbstat0 Aeroflex Gaisler AHB Status Register + APB: C0000F00 - C0001000 + IRQ: 15 + +grmon2> fla + + Intel-style 16-bit flash on D[31:16] + + Manuf. : Intel + Device : Strataflash P30 + Device ID : 01c94716c26cffff + User ID : ffffffffffffffff + + 1 x 32 Mbytes = 32 Mbytes total @ 0x00000000 + + CFI information + Flash family : 1 + Flash size : 256 Mbit + Erase regions : 2 + Erase blocks : 259 + Write buffer : 64 bytes + Lock-down : Not supported + Region 0 : 255 blocks of 128 kbytes + Region 1 : 4 blocks of 32 kbytes + +grmon2> load /usr/local32/apps/bench/leon3/dhry.leon3 + 40000000 .text 54.7kB / 54.7kB [===============>] 100% + 4000DAF0 .data 2.7kB / 2.7kB [===============>] 100% + Total size: 57.44kB (1.15Mbit/s) + Entry point 0x40000000 + Image /usr/local32/apps/bench/leon3/dhry.leon3 loaded + +grmon2> verify /usr/local32/apps/bench/leon3/dhry.leon3 + 40000000 .text 54.7kB / 54.7kB [===============>] 100% + 4000DAF0 .data 2.7kB / 2.7kB [===============>] 100% + Total size: 57.44kB (85.12kbit/s) + Entry point 0x40000000 + Image of /usr/local32/apps/bench/leon3/dhry.leon3 verified without errors + +grmon2> run +Execution starts, 1000000 runs through Dhrystone +Total execution time: 5.2 s +Microseconds for one run through Dhrystone: 5.2 +Dhrystones per Second: 191785.4 + +Dhrystones MIPS : 109.2 + + + CPU 0: Program exited normally. + CPU 1: Power down mode + +grmon2> i2c 0 scan + Scanning 7-bit address space on I2C bus: + Detected I2C device at address 0x76 + + Scan of I2C bus completed. 1 device found + +grmon2> i2c 1 scan + Scanning 7-bit address space on I2C bus: + Detected I2C device at address 0x2e + Detected I2C device at address 0x47 + Detected I2C device at address 0x50 + Detected I2C device at address 0x51 + Detected I2C device at address 0x54 + + Scan of I2C bus completed. 5 devices found + +grmon2> i2c 0 dvi init_ml50x_dvi +Transmitter was not set to Chrontel CH7301C (AS=0), changing... + Initialized CH7301 DVI output for LEON/GRLIB design. + +grmon2> i2c 0 dvi showreg + Registers for Chrontel CH7301C (AS=0) DVI transmitter: + + 0x1c: 04 + 0x1d: 45 + 0x1e: f0 + 0x1f: 8a + 0x20: 0e + 0x21: 00 + 0x23: 00 + 0x31: 80 + 0x33: 08 + 0x34: 16 + 0x35: 30 + 0x36: 60 + 0x37: 00 + 0x48: 18 + 0x49: c0 + 0x4a: 95 + 0x4b: 17 + 0x56: 00 + +grmon2> spi selftest + Self test PASSED + +grmon2> pci info + + GRPCI initiator/target (in system slot): + + Bus master: yes + Mem. space en: no + Latency timer: 0x0 + Byte twisting: disabled + + MMAP: 0x0 + IOMAP: 0x0000 + + BAR0: 0x00000000 + PAGE0: 0x40000001 + BAR1: 0x00000000 + PAGE1: 0x00000000 + + +grmon2> -Found PCI device in slot 18, function 0, (0xfff59000) - vendor: 0x10b9, device: 0x7101 -Found PCI device in slot 21, function 0, (0xfff5a800) - vendor: 0x10b9, device: 0x5237 - BAR0 size: 4 kbyte (Memory space) -grlib> -grlib> * Example MKPROM2 command line, creating bootable image from the application "hello": diff --git a/designs/leon3-xilinx-ml510/ahb2mig_ml510.vhd b/designs/leon3-xilinx-ml510/ahb2mig_ml510.vhd deleted file mode 100644 index 24dfd786..00000000 --- a/designs/leon3-xilinx-ml510/ahb2mig_ml510.vhd +++ /dev/null @@ -1,435 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: ahb2mig --- File: ahb2mig.vhd --- Author: Jiri Gaisler, Gaisler Research --- Description: AHB wrapper for Xilinx Virtex5 DDR2/3 MIG ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; - -package ml510 is - - constant nCS_PER_RANK : integer := 1; - constant BANK_WIDTH : integer := 2; - constant CK_WIDTH : integer := 1; - constant CKE_WIDTH : integer := 1; - constant COL_WIDTH : integer := 10; - constant CS_WIDTH : integer := 1; - constant DM_WIDTH : integer := 9; --8; - constant DQ_WIDTH : integer := 72; --64; - constant DQS_WIDTH : integer := DM_WIDTH; - constant ROW_WIDTH : integer := 14; --13; - constant PAYLOAD_WIDTH : integer := 36; --32; - constant ADDR_WIDTH : integer := 31; - - type mig_app_in_type is record - app_wdf_wren : std_logic; - app_wdf_data : std_logic_vector((4*PAYLOAD_WIDTH)-1 downto 0); - app_wdf_mask : std_logic_vector((4*PAYLOAD_WIDTH)/8-1 downto 0); - app_addr : std_logic_vector(ADDR_WIDTH-1 downto 0); - app_cmd : std_logic_vector(2 downto 0); - app_en : std_logic; - end record; - - type mig_app_out_type is record - app_af_afull : std_logic; - app_wdf_afull : std_logic; - app_rd_data : std_logic_vector((4*PAYLOAD_WIDTH)-1 downto 0); - app_rd_data_valid : std_logic; - end record; - -end package; - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -library gaisler; -use grlib.devices.all; -use gaisler.memctrl.all; -library techmap; -use techmap.gencomp.all; -use work.ml510.all; - -entity ahb2mig_ml510 is - generic ( - memtech : integer := 0; - hindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#e00#; - MHz : integer := 100; - Mbyte : integer := 512; - nosync : integer := 0 - ); - port ( - rst_ddr : in std_ulogic; - rst_ahb : in std_ulogic; - clk_ddr : in std_ulogic; - clk_ahb : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - migi : out mig_app_in_type; - migo : in mig_app_out_type - ); -end; - -architecture rtl of ahb2mig_ml510 is - -constant REVISION : integer := 0; - -constant hconfig : ahb_config_type := ( - 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_MIGDDR2, 0, REVISION, 0), - 4 => ahb_membar(haddr, '1', '1', hmask), - others => zero32); - -type ahb_state_type is (midle, rhold, dread, dwrite, whold1, whold2); -type ddr_state_type is (midle, rhold, dread, dwrite, whold1, whold2); -constant abuf : integer := 6; -type access_param is record - haddr : std_logic_vector(31 downto 0); - size : std_logic_vector(2 downto 0); - hwrite : std_ulogic; -end record; --- local registers - -type mem is array(0 to 7) of std_logic_vector(31 downto 0); -type wrm is array(0 to 7) of std_logic_vector(3 downto 0); - -type ahb_reg_type is record - hready : std_ulogic; - hsel : std_ulogic; - startsd : std_ulogic; - state : ahb_state_type; - haddr : std_logic_vector(31 downto 0); - hrdata : std_logic_vector(127 downto 0); - hwrite : std_ulogic; - htrans : std_logic_vector(1 downto 0); - hresp : std_logic_vector(1 downto 0); - raddr : std_logic_vector(abuf-1 downto 0); - size : std_logic_vector(2 downto 0); - acc : access_param; - sync : std_ulogic; - hwdata : mem; - write : wrm; -end record; - -type ddr_reg_type is record - startsd : std_ulogic; - hrdata : std_logic_vector(255 downto 0); - sync : std_ulogic; - dstate : ahb_state_type; -end record; - -signal vcc, clk_ahb1, clk_ahb2 : std_ulogic; -signal r, ri : ddr_reg_type; -signal ra, rai : ahb_reg_type; -signal rbdrive, ribdrive : std_logic_vector(31 downto 0); -signal hwdata, hwdatab : std_logic_vector(127 downto 0); - -begin - - vcc <= '1'; - - ahb_ctrl : process(rst_ahb, ahbsi, r, ra, migo, hwdata) - variable va : ahb_reg_type; -- local variables for registers - variable startsd : std_ulogic; - variable ready : std_logic; - variable tmp : std_logic_vector(3 downto 0); - variable waddr : integer; - variable rdata : std_logic_vector(127 downto 0); - begin - - va := ra; va.hresp := HRESP_OKAY; - tmp := (others => '0'); - - case ra.raddr(2 downto 2) is - when "0" => rdata := r.hrdata(127 downto 0); - when others => rdata := r.hrdata(255 downto 128); - end case; - - if AHBDW > 64 and ra.size = HSIZE_4WORD then - va.hrdata := rdata(63 downto 0) & rdata(127 downto 64); - elsif AHBDW > 32 and ra.size = HSIZE_DWORD then - if ra.raddr(1) = '1' then va.hrdata(63 downto 0) := rdata(127 downto 64); - else va.hrdata(63 downto 0) := rdata(63 downto 0); end if; - va.hrdata(127 downto 64) := va.hrdata(63 downto 0); - else - case ra.raddr(1 downto 0) is - when "00" => va.hrdata(31 downto 0) := rdata(63 downto 32); - when "01" => va.hrdata(31 downto 0) := rdata(31 downto 0); - when "10" => va.hrdata(31 downto 0) := rdata(127 downto 96); - when others => va.hrdata(31 downto 0) := rdata(95 downto 64); - end case; - va.hrdata(127 downto 32) := va.hrdata(31 downto 0) & - va.hrdata(31 downto 0) & - va.hrdata(31 downto 0); - end if; - - if nosync = 0 then - va.sync := r.startsd; - if ra.startsd = ra.sync then ready := '1'; - else ready := '0'; end if; - else - if ra.startsd = r.startsd then ready := '1'; - else ready := '0'; end if; - end if; - - if ((ahbsi.hready and ahbsi.hsel(hindex)) = '1') then - va.htrans := ahbsi.htrans; va.haddr := ahbsi.haddr; - va.size := ahbsi.hsize(2 downto 0); va.hwrite := ahbsi.hwrite; - if ahbsi.htrans(1) = '1' then - va.hsel := '1'; va.hready := '0'; - end if; - end if; - - if ahbsi.hready = '1' then va.hsel := ahbsi.hsel(hindex); end if; - - case ra.state is - when midle => - va.write := (others => "0000"); - if ((va.hsel and va.htrans(1)) = '1') then - if va.hwrite = '0' then - va.state := rhold; va.startsd := not ra.startsd; - else - va.state := dwrite; va.hready := '1'; - end if; - end if; - va.raddr := ra.haddr(7 downto 2); - if ((ahbsi.hready and ahbsi.hsel(hindex)) = '1') then - va.acc := (va.haddr, va.size, va.hwrite); - end if; - when rhold => - va.raddr := ra.haddr(7 downto 2); - if ready = '1' then - va.state := dread; va.hready := '1'; - if AHBDW > 64 and ra.size(2) = '1' then va.raddr := ra.raddr + 4; - elsif AHBDW > 32 and andv(ra.size(1 downto 0)) = '1' then va.raddr := ra.raddr + 2; - else va.raddr := ra.raddr + 1; end if; - end if; - when dread => - va.hready := '1'; - if AHBDW > 64 and ra.size(2) = '1' then va.raddr := ra.raddr + 4; - elsif AHBDW > 32 and andv(ra.size(1 downto 0)) = '1' then va.raddr := ra.raddr + 2; - else va.raddr := ra.raddr + 1; end if; - if ((va.hsel and va.htrans(1) and va.htrans(0)) = '0') - or (ra.raddr(2 downto 0) = "000") then - va.state := midle; va.hready := '0'; - end if; - va.acc := (va.haddr, va.size, va.hwrite); - when dwrite => - va.raddr := ra.haddr(7 downto 2); va.hready := '1'; - if (((va.hsel and va.htrans(1) and va.htrans(0)) = '0') - or (ra.haddr(4 downto 2) = "111") - or (AHBDW > 32 and ra.haddr(5 downto 2) = "1110" and andv(ra.size(1 downto 0)) = '1') - or (AHBDW > 64 and ra.haddr(5 downto 2) = "1100" and ra.size(2) = '1')) then - va.startsd := not ra.startsd; va.state := whold1; - va.hready := '0'; - end if; - tmp := decode(ra.haddr(1 downto 0)); - waddr := conv_integer(ra.haddr(4 downto 2)); - va.hwdata(waddr) := hwdata(31 downto 0); - case ra.size is - when "000" => va.write(waddr) := tmp(0) & tmp(1) & tmp(2) & tmp(3); - when "001" => va.write(waddr) := tmp(0) & tmp(0) & tmp(2) & tmp(2); - when "010" => va.write(waddr) := "1111"; - when "011" => va.write(waddr) := "1111"; va.write(waddr+1) := "1111"; - va.hwdata(waddr+1) := hwdata((63 mod AHBDW) downto (32 mod AHBDW)); - when others => va.write(waddr) := "1111"; va.write(waddr+1) := "1111"; - va.write(waddr+2) := "1111"; va.write(waddr+3) := "1111"; - va.hwdata(waddr+1) := hwdata((63 mod AHBDW) downto (32 mod AHBDW)); - va.hwdata(waddr+2) := hwdata((95 mod AHBDW) downto (64 mod AHBDW)); - va.hwdata(waddr+3) := hwdata((127 mod AHBDW) downto (96 mod AHBDW)); - end case; - when whold1 => - va.state := whold2; - when whold2 => - if ready = '1' then - va.state := midle; va.acc := (va.haddr, va.size, va.hwrite); - end if; - end case; - - if (ahbsi.hready and ahbsi.hsel(hindex) ) = '1' then - if ahbsi.htrans(1) = '0' then va.hready := '1'; end if; - end if; - - if rst_ahb = '0' then - va.hsel := '0'; - va.hready := '1'; - va.state := midle; - va.startsd := '0'; - va.acc.hwrite := '0'; - va.acc.haddr := (others => '0'); - end if; - - rai <= va; - - end process; - - ahbso.hready <= ra.hready; - ahbso.hresp <= ra.hresp; - ahbso.hrdata <= ahbdrivedata(ra.hrdata); - ahbso.hcache <= '1'; - --- migi.app_addr <= '0' & ra.acc.haddr(28 downto 6) & "000"; - migi.app_addr <= "00000" & ra.acc.haddr(28 downto 5) & "00"; - - ddr_ctrl : process(rst_ddr, r, ra, migo) - variable v : ddr_reg_type; -- local variables for registers - variable startsd : std_ulogic; - variable raddr : std_logic_vector(13 downto 0); - variable adec : std_ulogic; - variable haddr : std_logic_vector(31 downto 0); - variable hsize : std_logic_vector(1 downto 0); - variable hwrite : std_ulogic; - variable htrans : std_logic_vector(1 downto 0); - variable hready : std_ulogic; - variable app_en : std_ulogic; - variable app_cmd : std_logic_vector(2 downto 0); - variable app_wdf_mask : std_logic_vector((4*PAYLOAD_WIDTH)/8-1 downto 0); - variable app_wdf_wren : std_ulogic; - variable app_wdf_data : std_logic_vector((4*PAYLOAD_WIDTH)-1 downto 0); - - begin - --- Variable default settings to avoid latches - - v := r; app_en := '0'; app_cmd := "000"; app_wdf_wren := '0'; - app_wdf_mask := (others => '0'); - app_wdf_mask(15 downto 0) := ra.write(2) & ra.write(3) & ra.write(0) & ra.write(1); - app_wdf_data := (others => '0'); - app_wdf_data(127 downto 0) := ra.hwdata(2) & ra.hwdata(3) & ra.hwdata(0) & ra.hwdata(1); - if ra.acc.hwrite = '0' then app_cmd(0) := '1'; else app_cmd(0) := '0'; end if; - v.sync := ra.startsd; - - if nosync = 0 then - if r.startsd /= r.sync then startsd := '1'; - else startsd := '0'; end if; - else - if ra.startsd /= r.startsd then startsd := '1'; - else startsd := '0'; end if; - end if; - - case r.dstate is - when midle => - if (startsd = '1') and (migo.app_af_afull = '0') then - if ra.acc.hwrite = '0' then - v.dstate := dread; app_en := '1'; - elsif migo.app_wdf_afull = '0' then - v.dstate := dwrite; app_en := '1'; app_wdf_wren := '1'; - end if; - end if; - when dread => - if migo.app_rd_data_valid = '1' then - v.hrdata(127 downto 0) := migo.app_rd_data(127 downto 0); - v.dstate := rhold; - end if; - when rhold => - v.hrdata(255 downto 128) := migo.app_rd_data(127 downto 0); - v.dstate := midle; - v.startsd := not r.startsd; - when dwrite => - app_wdf_wren := '1'; - app_wdf_mask(15 downto 0) := ra.write(6) & ra.write(7) & ra.write(4) & ra.write(5); - app_wdf_data(127 downto 0) := ra.hwdata(6) & ra.hwdata(7) & ra.hwdata(4) & ra.hwdata(5); - v.startsd := not r.startsd; - v.dstate := midle; - when others => - end case; - --- reset - - if rst_ddr = '0' then - v.startsd := '0'; - app_en := '0'; - v.dstate := midle; - end if; - - ri <= v; - migi.app_cmd <= app_cmd; - migi.app_en <= app_en; - migi.app_wdf_wren <= app_wdf_wren; - migi.app_wdf_mask <= not app_wdf_mask; - migi.app_wdf_data <= app_wdf_data; - - end process; - - ahbso.hconfig <= hconfig; - ahbso.hirq <= (others => '0'); - ahbso.hindex <= hindex; - ahbso.hsplit <= (others => '0'); - - clk_ahb1 <= clk_ahb; clk_ahb2 <= clk_ahb1; -- sync clock deltas - ahbregs : process(clk_ahb2) begin - if rising_edge(clk_ahb2) then - ra <= rai; - end if; - end process; - - ddrregs : process(clk_ddr) begin - if rising_edge(clk_ddr) then - r <= ri; - end if; - end process; - - -- Write data selection. - AHB32: if AHBDW = 32 generate - hwdata <= ahbsi.hwdata(31 downto 0) & ahbsi.hwdata(31 downto 0) & - ahbsi.hwdata(31 downto 0) & ahbsi.hwdata(31 downto 0); - end generate AHB32; - AHB64: if AHBDW = 64 generate - -- With CORE_ACDM set to 0 hwdata will always be ahbsi.hwdata(63 downto 0) - -- otherwise the valid data slice will be selected, and possibly uplicated, - -- from ahbsi.hwdata. - hwdatab(63 downto 0) <= ahbreaddword(ahbsi.hwdata, ra.haddr(4 downto 2)) when (CORE_ACDM = 0 or ra.size(1 downto 0) = "11") else - (ahbreadword(ahbsi.hwdata, ra.haddr(4 downto 2)) & - ahbreadword(ahbsi.hwdata, ra.haddr(4 downto 2))); - hwdata <= hwdatab(31 downto 0) & hwdatab(63 downto 32) & - hwdatab(31 downto 0) & hwdatab(63 downto 32); - end generate AHB64; - AHBWIDE: if AHBDW > 64 generate - -- With CORE_ACDM set to 0 hwdata will always be ahbsi.hwdata(127 downto 0) - -- otherwise the valid data slice will be selected, and possibly uplicated, - -- from ahbsi.hwdata. - hwdatab <= ahbread4word(ahbsi.hwdata, ra.haddr(4 downto 2)) when (CORE_ACDM = 0 or ra.size(2) = '1') else - (ahbreaddword(ahbsi.hwdata, ra.haddr(4 downto 2)) & - ahbreaddword(ahbsi.hwdata, ra.haddr(4 downto 2))) when (ra.size = "011") else - (ahbreadword(ahbsi.hwdata, ra.haddr(4 downto 2)) & - ahbreadword(ahbsi.hwdata, ra.haddr(4 downto 2)) & - ahbreadword(ahbsi.hwdata, ra.haddr(4 downto 2)) & - ahbreadword(ahbsi.hwdata, ra.haddr(4 downto 2))); - hwdata <= hwdatab(31 downto 0) & hwdatab(63 downto 32) & - hwdatab(95 downto 64) & hwdatab(127 downto 96); - end generate AHBWIDE; - --- pragma translate_off - bootmsg : report_version - generic map ( - msg1 => "ahb2mig" & tost(hindex) & ": 64-bit DDR2/3 controller rev " & - tost(REVISION) & ", " & tost(Mbyte) & " Mbyte, " & tost(MHz) & - " MHz DDR clock"); --- pragma translate_on - -end; - diff --git a/designs/leon3-xilinx-ml510/ahbrom.vhd b/designs/leon3-xilinx-ml510/ahbrom.vhd index 0a8f2dd0..d8976b7a 100644 --- a/designs/leon3-xilinx-ml510/ahbrom.vhd +++ b/designs/leon3-xilinx-ml510/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-xilinx-ml510/config.help b/designs/leon3-xilinx-ml510/config.help index f31039ca..950132f2 100644 --- a/designs/leon3-xilinx-ml510/config.help +++ b/designs/leon3-xilinx-ml510/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ @@ -610,7 +643,13 @@ CONFIG_AHB_SPLIT Unless you actually have an AHB slave that can generate AHB split responses, say N and save some gates. -Default AHB master +Enable full PnP decoding +CONFIG_AHB_FPNPEN + Say Y here to enable full decoding of the PnP configuration records in + in the AHB arbiter. When disabled the user-defined registers in the + PnP configuration records are not mapped in the configuration area. + +IO area start address CONFIG_AHB_IOADDR Selects the MSB adddress (HADDR[31:20]) of the AHB IO area, as defined in the plug&play extentions of the AMBA bus. Should be kept to FFF diff --git a/designs/leon3-xilinx-ml510/config.in b/designs/leon3-xilinx-ml510/config.in index eb93d313..9b80f519 100644 --- a/designs/leon3-xilinx-ml510/config.in +++ b/designs/leon3-xilinx-ml510/config.in @@ -38,7 +38,6 @@ comment 'Peripherals ' mainmenu_option next_comment comment 'Memory controller ' source lib/esa/memoryctrl/mctrl.in - source lib/gaisler/ddr/mig.in source lib/gaisler/ddr/ddr2sp.in source lib/gaisler/misc/ahbstat.in endmenu diff --git a/designs/leon3-xilinx-ml510/config.vhd b/designs/leon3-xilinx-ml510/config.vhd index c8f2a30f..eb76a4c9 100644 --- a/designs/leon3-xilinx-ml510/config.vhd +++ b/designs/leon3-xilinx-ml510/config.vhd @@ -30,7 +30,7 @@ package config is constant CFG_CLK_NOFB : integer := 1; -- LEON3 processor core constant CFG_LEON3 : integer := 1; - constant CFG_NCPU : integer := (1); + constant CFG_NCPU : integer := (2); constant CFG_NWIN : integer := (8); constant CFG_V8 : integer := 16#32# + 4*0; constant CFG_MAC : integer := 0; @@ -41,7 +41,7 @@ package config is constant CFG_NOTAG : integer := 0; constant CFG_NWP : integer := (2); constant CFG_PWD : integer := 1*2; - constant CFG_FPU : integer := 0 + 16*0; + constant CFG_FPU : integer := 0 + 16*0 + 32*0; constant CFG_GRFPUSH : integer := 0; constant CFG_ICEN : integer := 1; constant CFG_ISETS : integer := 4; @@ -58,7 +58,7 @@ package config is constant CFG_DLINE : integer := 4; constant CFG_DREPL : integer := 0; constant CFG_DLOCK : integer := 0; - constant CFG_DSNOOP : integer := 1 + 1 + 4*0; + constant CFG_DSNOOP : integer := 1 + 1 + 4*1; constant CFG_DFIXED : integer := 16#0#; constant CFG_DLRAMEN : integer := 0; constant CFG_DLRAMADDR: integer := 16#8F#; @@ -85,6 +85,7 @@ package config is constant CFG_DEFMST : integer := (0); constant CFG_RROBIN : integer := 1; constant CFG_SPLIT : integer := 1; + constant CFG_FPNPEN : integer := 0; constant CFG_AHBIO : integer := 16#FFF#; constant CFG_APBADDR : integer := 16#C00#; constant CFG_AHB_MON : integer := 1; @@ -112,14 +113,14 @@ package config is constant CFG_MCTRL_INVCLK : integer := 0; constant CFG_MCTRL_SD64 : integer := 0; constant CFG_MCTRL_PAGE : integer := 0 + 0; --- Xilinx MIG - constant CFG_MIG_DDR2 : integer := 0; -- DDR controller constant CFG_DDR2SP : integer := 1; constant CFG_DDR2SP_INIT : integer := 1; constant CFG_DDR2SP_FREQ : integer := 100; constant CFG_DDR2SP_TRFC : integer := (130); - constant CFG_DDR2SP_DATAWIDTH : integer := (32); + constant CFG_DDR2SP_DATAWIDTH : integer := (64); + constant CFG_DDR2SP_FTEN : integer := 0; + constant CFG_DDR2SP_FTWIDTH : integer := 0; constant CFG_DDR2SP_COL : integer := (10); constant CFG_DDR2SP_SIZE : integer := (512); constant CFG_DDR2SP_DELAY0 : integer := (8); @@ -140,12 +141,10 @@ package config is constant CFG_AHBRODDR : integer := 16#000#; constant CFG_ROMADDR : integer := 16#000#; constant CFG_ROMMASK : integer := 16#E00# + 16#000#; - -- AHB RAM constant CFG_AHBRAMEN : integer := 0; constant CFG_AHBRSZ : integer := 1; constant CFG_AHBRADDR : integer := 16#A00#; - -- Gaisler Ethernet core constant CFG_GRETH : integer := 1; constant CFG_GRETH1G : integer := 0; diff --git a/designs/leon3-xilinx-ml510/config.vhd.h b/designs/leon3-xilinx-ml510/config.vhd.h index cacae194..d5b2035c 100644 --- a/designs/leon3-xilinx-ml510/config.vhd.h +++ b/designs/leon3-xilinx-ml510/config.vhd.h @@ -29,7 +29,7 @@ constant CFG_NOTAG : integer := CONFIG_NOTAG; constant CFG_NWP : integer := CONFIG_IU_WATCHPOINTS; constant CFG_PWD : integer := CONFIG_PWD*2; - constant CFG_FPU : integer := CONFIG_FPU + 16*CONFIG_FPU_NETLIST; + constant CFG_FPU : integer := CONFIG_FPU + 16*CONFIG_FPU_NETLIST + 32*CONFIG_FPU_GRFPU_SHARED; constant CFG_GRFPUSH : integer := CONFIG_FPU_GRFPU_SHARED; constant CFG_ICEN : integer := CONFIG_ICACHE_ENABLE; constant CFG_ISETS : integer := CFG_IU_ISETS; @@ -74,6 +74,7 @@ constant CFG_DEFMST : integer := CONFIG_AHB_DEFMST; constant CFG_RROBIN : integer := CONFIG_AHB_RROBIN; constant CFG_SPLIT : integer := CONFIG_AHB_SPLIT; + constant CFG_FPNPEN : integer := CONFIG_AHB_FPNPEN; constant CFG_AHBIO : integer := 16#CONFIG_AHB_IOADDR#; constant CFG_APBADDR : integer := 16#CONFIG_APB_HADDR#; constant CFG_AHB_MON : integer := CONFIG_AHB_MON; @@ -106,16 +107,14 @@ constant CFG_MCTRL_SD64 : integer := CONFIG_MCTRL_SDRAM_BUS64; constant CFG_MCTRL_PAGE : integer := CONFIG_MCTRL_PAGE + CONFIG_MCTRL_PROGPAGE; --- Xilinx MIG - constant CFG_MIG_DDR2 : integer := CONFIG_MIG_DDR2; - - -- DDR controller - constant CFG_DDR2SP : integer := CONFIG_DDR2SP; + constant CFG_DDR2SP : integer := CONFIG_DDR2SP; constant CFG_DDR2SP_INIT : integer := CONFIG_DDR2SP_INIT; constant CFG_DDR2SP_FREQ : integer := CONFIG_DDR2SP_FREQ; constant CFG_DDR2SP_TRFC : integer := CONFIG_DDR2SP_TRFC; - constant CFG_DDR2SP_DATAWIDTH : integer := CONFIG_DDR2SP_DATAWIDTH; + constant CFG_DDR2SP_DATAWIDTH : integer := CONFIG_DDR2SP_DATAWIDTH; + constant CFG_DDR2SP_FTEN : integer := CONFIG_DDR2SP_FTEN; + constant CFG_DDR2SP_FTWIDTH : integer := CONFIG_DDR2SP_FTWIDTH; constant CFG_DDR2SP_COL : integer := CONFIG_DDR2SP_COL; constant CFG_DDR2SP_SIZE : integer := CONFIG_DDR2SP_MBYTE; constant CFG_DDR2SP_DELAY0 : integer := CONFIG_DDR2SP_DELAY0; diff --git a/designs/leon3-xilinx-ml510/coregen.cgc b/designs/leon3-xilinx-ml510/coregen.cgc deleted file mode 100644 index 370fbda8..00000000 --- a/designs/leon3-xilinx-ml510/coregen.cgc +++ /dev/null @@ -1,978 +0,0 @@ - - - xilinx.com - CoreGen - coregen - 1.0 - - - mig_36_1 - MIG - - - mig_36_1 - ./mig_36_1/user_design/mig.prj - - - - - coregen - ./ - ./tmp/ - ./tmp/_cg/ - - - xc5vfx130t - virtex5 - ff1738 - -2 - - - BusFormatParenNotRipped - VHDL - true - Synplicity - false - false - false - Ngc - false - - - Behavioral - VHDL - false - - - - - model_parameter_resolution_generator - - - ip_xco_generator - - ./mig_36_1.xco - xco - Tue Nov 29 15:31:03 GMT 2011 - 0xEFB7755F - generationid_2277480361 - - - - implementation_source_generator - - ./mig_36_1/docs/adr_cntrl_timing.xls - ignore - unknown - Tue Nov 29 15:31:04 GMT 2011 - 0xAF35ABC0 - generationid_2277480361 - - - ./mig_36_1/docs/read_data_timing.xls - ignore - unknown - Tue Nov 29 15:31:04 GMT 2011 - 0xD41334D2 - generationid_2277480361 - - - ./mig_36_1/docs/ug086.pdf - ignore - pdf - Tue Nov 29 15:31:04 GMT 2011 - 0xE22E2DD9 - generationid_2277480361 - - - ./mig_36_1/docs/write_data_timing.xls - ignore - unknown - Tue Nov 29 15:31:04 GMT 2011 - 0x605046E7 - generationid_2277480361 - - - ./mig_36_1/docs/xapp858.url - ignore - unknown - Tue Nov 29 15:31:04 GMT 2011 - 0x5698FE61 - generationid_2277480361 - - - ./mig_36_1/example_design/datasheet.txt - ignore - txt - Tue Nov 29 15:31:05 GMT 2011 - 0x6DF1849F - generationid_2277480361 - - - ./mig_36_1/example_design/log.txt - ignore - txt - Tue Nov 29 15:31:05 GMT 2011 - 0x5FBBD44D - generationid_2277480361 - - - ./mig_36_1/example_design/mig.prj - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0xD6AF0D47 - generationid_2277480361 - - - ./mig_36_1/example_design/par/icon4_cg.xco - ignore - xco - Tue Nov 29 15:31:04 GMT 2011 - 0x7B06BD87 - generationid_2277480361 - - - ./mig_36_1/example_design/par/ise_flow.sh - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0x8CDF35C3 - generationid_2277480361 - - - ./mig_36_1/example_design/par/makeproj.sh - ignore - unknown - Tue Nov 29 15:31:04 GMT 2011 - 0xCFE64DF9 - generationid_2277480361 - - - ./mig_36_1/example_design/par/mem_interface_top.ut - ignore - unknown - Tue Nov 29 15:31:04 GMT 2011 - 0x86B57F5F - generationid_2277480361 - - - ./mig_36_1/example_design/par/mig_36_1.cdc - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0x6EE977AF - generationid_2277480361 - - - ./mig_36_1/example_design/par/mig_36_1.ucf - ignore - ucf - Tue Nov 29 15:31:04 GMT 2011 - 0x78C7E859 - generationid_2277480361 - - - ./mig_36_1/example_design/par/readme.txt - ignore - txt - Tue Nov 29 15:31:05 GMT 2011 - 0x67A0882A - generationid_2277480361 - - - ./mig_36_1/example_design/par/rem_files.sh - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0xD71CF538 - generationid_2277480361 - - - ./mig_36_1/example_design/par/vio_async_in100_cg.xco - ignore - xco - Tue Nov 29 15:31:05 GMT 2011 - 0xCDC17572 - generationid_2277480361 - - - ./mig_36_1/example_design/par/vio_async_in192_cg.xco - ignore - xco - Tue Nov 29 15:31:05 GMT 2011 - 0xE89A5043 - generationid_2277480361 - - - ./mig_36_1/example_design/par/vio_async_in96_cg.xco - ignore - xco - Tue Nov 29 15:31:05 GMT 2011 - 0x11F8FD04 - generationid_2277480361 - - - ./mig_36_1/example_design/par/vio_sync_out32_cg.xco - ignore - xco - Tue Nov 29 15:31:05 GMT 2011 - 0xFE83F4F7 - generationid_2277480361 - - - ./mig_36_1/example_design/par/xst_run.txt - ignore - txt - Tue Nov 29 15:31:05 GMT 2011 - 0xD7903C1C - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_chipscope.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0xAF4D142E - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_ctrl.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x58746BDE - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_idelay_ctrl.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x6A9C9146 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_infrastructure.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x5141207F - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_mem_if_top.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x6A44636F - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_phy_calib.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0xD74A7F2F - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_phy_ctl_io.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x9D7E36A4 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_phy_dm_iob.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x7F660442 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_phy_dq_iob.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x1AD54EC9 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_phy_dqs_iob.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x8DCFD13B - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_phy_init.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x429C4334 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_phy_io.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0xD101A4A6 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_phy_top.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0xC5E9925D - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_phy_write.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0xFE3E4E47 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_tb_test_addr_gen.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0xCDFE7324 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_tb_test_cmp.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0xE311288B - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_tb_test_data_gen.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x25F0DA7A - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_tb_test_gen.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x7C4457F5 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_tb_top.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x1237F424 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_top.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x43AA08DC - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_usr_addr_fifo.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x0E71DC48 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_usr_rd.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x1652D798 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_usr_top.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x609A43A0 - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/ddr2_usr_wr.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x89369B8F - generationid_2277480361 - - - ./mig_36_1/example_design/rtl/mig_36_1.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x5DE788B9 - generationid_2277480361 - - - ./mig_36_1/example_design/sim/ddr2_model.v - ignore - verilog - Tue Nov 29 15:31:04 GMT 2011 - 0xF630302C - generationid_2277480361 - - - ./mig_36_1/example_design/sim/ddr2_model_parameters.vh - ignore - unknown - Tue Nov 29 15:31:04 GMT 2011 - 0x1D074097 - generationid_2277480361 - - - ./mig_36_1/example_design/sim/sim.do - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0xD54BF87B - generationid_2277480361 - - - ./mig_36_1/example_design/sim/sim_tb_top.vhd - ignore - vhdl - Tue Nov 29 15:31:04 GMT 2011 - 0x022D10F6 - generationid_2277480361 - - - ./mig_36_1/example_design/sim/wiredly.vhd - ignore - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0xF6D086FB - generationid_2277480361 - - - ./mig_36_1/example_design/synth/mem_interface_top_synp.sdc - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0xB7AD3897 - generationid_2277480361 - - - ./mig_36_1/example_design/synth/mig_36_1.lso - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0xEEDE3797 - generationid_2277480361 - - - ./mig_36_1/example_design/synth/mig_36_1.prj - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0x1994297A - generationid_2277480361 - - - ./mig_36_1/example_design/synth/script_synp.tcl - ignore - tcl - Tue Nov 29 15:31:05 GMT 2011 - 0x9418A0ED - generationid_2277480361 - - - ./mig_36_1/user_design/datasheet.txt - ignore - txt - Tue Nov 29 15:31:05 GMT 2011 - 0xC9A3634D - generationid_2277480361 - - - ./mig_36_1/user_design/log.txt - ignore - txt - Tue Nov 29 15:31:05 GMT 2011 - 0x83DBF2F3 - generationid_2277480361 - - - ./mig_36_1/user_design/mig.prj - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0xD6AF0D47 - generationid_2277480361 - - - ./mig_36_1/user_design/par/icon4_cg.xco - ignore - xco - Tue Nov 29 15:31:05 GMT 2011 - 0x7B06BD87 - generationid_2277480361 - - - ./mig_36_1/user_design/par/ise_flow.sh - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0x8CDF35C3 - generationid_2277480361 - - - ./mig_36_1/user_design/par/makeproj.sh - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0xCFE64DF9 - generationid_2277480361 - - - ./mig_36_1/user_design/par/mem_interface_top.ut - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0x86B57F5F - generationid_2277480361 - - - ./mig_36_1/user_design/par/mig_36_1.cdc - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0x6EE977AF - generationid_2277480361 - - - ./mig_36_1/user_design/par/mig_36_1.ucf - ucf - Tue Nov 29 15:31:05 GMT 2011 - 0x1784E9D4 - generationid_2277480361 - - - ./mig_36_1/user_design/par/readme.txt - ignore - txt - Tue Nov 29 15:31:05 GMT 2011 - 0xC6462211 - generationid_2277480361 - - - ./mig_36_1/user_design/par/rem_files.sh - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0xD71CF538 - generationid_2277480361 - - - ./mig_36_1/user_design/par/vio_async_in100_cg.xco - ignore - xco - Tue Nov 29 15:31:05 GMT 2011 - 0xCDC17572 - generationid_2277480361 - - - ./mig_36_1/user_design/par/vio_async_in192_cg.xco - ignore - xco - Tue Nov 29 15:31:05 GMT 2011 - 0xE89A5043 - generationid_2277480361 - - - ./mig_36_1/user_design/par/vio_async_in96_cg.xco - ignore - xco - Tue Nov 29 15:31:05 GMT 2011 - 0x11F8FD04 - generationid_2277480361 - - - ./mig_36_1/user_design/par/vio_sync_out32_cg.xco - ignore - xco - Tue Nov 29 15:31:05 GMT 2011 - 0xFE83F4F7 - generationid_2277480361 - - - ./mig_36_1/user_design/par/xst_run.txt - ignore - txt - Tue Nov 29 15:31:05 GMT 2011 - 0xD7903C1C - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_chipscope.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0xAF4D142E - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_ctrl.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x58746BDE - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_idelay_ctrl.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x6A9C9146 - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_infrastructure.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x5141207F - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_mem_if_top.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x6A44636F - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_phy_calib.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0xD74A7F2F - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_phy_ctl_io.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x9D7E36A4 - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_phy_dm_iob.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x7F660442 - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_phy_dq_iob.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x1AD54EC9 - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_phy_dqs_iob.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x8DCFD13B - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_phy_init.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x429C4334 - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_phy_io.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0xD101A4A6 - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_phy_top.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0xC5E9925D - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_phy_write.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0xFE3E4E47 - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_top.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x43AA08DC - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_usr_addr_fifo.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x0E71DC48 - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_usr_rd.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x1652D798 - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_usr_top.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x609A43A0 - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/ddr2_usr_wr.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x89369B8F - generationid_2277480361 - - - ./mig_36_1/user_design/rtl/mig_36_1.vhd - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x2EAC7E3D - generationid_2277480361 - - - ./mig_36_1/user_design/sim/ddr2_model.v - ignore - verilog - Tue Nov 29 15:31:05 GMT 2011 - 0xF630302C - generationid_2277480361 - - - ./mig_36_1/user_design/sim/ddr2_model_parameters.vh - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0x1D074097 - generationid_2277480361 - - - ./mig_36_1/user_design/sim/ddr2_tb_test_addr_gen.vhd - ignore - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0xCDFE7324 - generationid_2277480361 - - - ./mig_36_1/user_design/sim/ddr2_tb_test_cmp.vhd - ignore - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0xE311288B - generationid_2277480361 - - - ./mig_36_1/user_design/sim/ddr2_tb_test_data_gen.vhd - ignore - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x25F0DA7A - generationid_2277480361 - - - ./mig_36_1/user_design/sim/ddr2_tb_test_gen.vhd - ignore - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x7C4457F5 - generationid_2277480361 - - - ./mig_36_1/user_design/sim/ddr2_tb_top.vhd - ignore - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x1237F424 - generationid_2277480361 - - - ./mig_36_1/user_design/sim/sim.do - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0xD54BF87B - generationid_2277480361 - - - ./mig_36_1/user_design/sim/sim_tb_top.vhd - ignore - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0x1D86F4EC - generationid_2277480361 - - - ./mig_36_1/user_design/sim/wiredly.vhd - ignore - vhdl - Tue Nov 29 15:31:05 GMT 2011 - 0xF6D086FB - generationid_2277480361 - - - ./mig_36_1/user_design/synth/mem_interface_top_synp.sdc - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0xB7AD3897 - generationid_2277480361 - - - ./mig_36_1/user_design/synth/mig_36_1.lso - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0xEEDE3797 - generationid_2277480361 - - - ./mig_36_1/user_design/synth/mig_36_1.prj - ignore - unknown - Tue Nov 29 15:31:05 GMT 2011 - 0xE3025A67 - generationid_2277480361 - - - ./mig_36_1/user_design/synth/script_synp.tcl - ignore - tcl - Tue Nov 29 15:31:05 GMT 2011 - 0x8FE181B5 - generationid_2277480361 - - - ./mig_36_1.vho - vho - Tue Nov 29 15:31:05 GMT 2011 - 0x84BD3FC9 - generationid_2277480361 - - - ./mig_36_1_xmdf.tcl - ignore - tcl - Tue Nov 29 15:31:05 GMT 2011 - 0x33DABBBA - generationid_2277480361 - - - - instantiation_template_generator - - - asy_generator - - - xmdf_generator - - - ise_generator - - ./mig_36_1.gise - ignore - gise - Tue Nov 29 15:31:11 GMT 2011 - 0xD06B341A - generationid_2277480361 - - - ./mig_36_1.xise - ignore - xise - Tue Nov 29 15:31:11 GMT 2011 - 0x11A66908 - generationid_2277480361 - - - - deliver_readme_generator - - - flist_generator - - ./mig_36_1_flist.txt - ignore - txtFlist - txt - Tue Nov 29 15:31:12 GMT 2011 - 0xCAF34298 - generationid_2277480361 - - - - - - - - - - coregen - ./ - ./tmp/ - ./tmp/_cg - - - xc5vfx130t - virtex5 - ff1738 - -2 - - - BusFormatParenNotRipped - VHDL - true - Synplicity - false - false - false - Ngc - false - - - Behavioral - VHDL - false - - - - - diff --git a/designs/leon3-xilinx-ml510/ddr2_udimm.cfg b/designs/leon3-xilinx-ml510/ddr2_udimm.cfg deleted file mode 100644 index d7679438..00000000 --- a/designs/leon3-xilinx-ml510/ddr2_udimm.cfg +++ /dev/null @@ -1,387 +0,0 @@ -# -# Automatically generated make config: don't edit -# -CONFIG_HAS_SHARED_GRFPU=y - -# -# Synthesis -# -# CONFIG_SYN_INFERRED is not set -# CONFIG_SYN_STRATIX is not set -# CONFIG_SYN_STRATIXII is not set -# CONFIG_SYN_STRATIXIII is not set -# CONFIG_SYN_CYCLONEIII is not set -# CONFIG_SYN_ALTERA is not set -# CONFIG_SYN_AXCEL is not set -# CONFIG_SYN_AXDSP is not set -# CONFIG_SYN_PROASIC is not set -# CONFIG_SYN_PROASICPLUS is not set -# CONFIG_SYN_PROASIC3 is not set -# CONFIG_SYN_PROASIC3E is not set -# CONFIG_SYN_PROASIC3L is not set -# CONFIG_SYN_IGLOO is not set -# CONFIG_SYN_FUSION is not set -# CONFIG_SYN_UT025CRH is not set -# CONFIG_SYN_UT130HBD is not set -# CONFIG_SYN_UT90NHBD is not set -# CONFIG_SYN_ATC18 is not set -# CONFIG_SYN_ATC18RHA is not set -# CONFIG_SYN_CMOS9SF is not set -# CONFIG_SYN_CUSTOM1 is not set -# CONFIG_SYN_EASIC90 is not set -# CONFIG_SYN_EASIC45 is not set -# CONFIG_SYN_IHP25 is not set -# CONFIG_SYN_IHP25RH is not set -# CONFIG_SYN_LATTICE is not set -# CONFIG_SYN_ECLIPSE is not set -# CONFIG_SYN_PEREGRINE is not set -# CONFIG_SYN_RH_LIB18T is not set -# CONFIG_SYN_RHUMC is not set -# CONFIG_SYN_SMIC13 is not set -# CONFIG_SYN_TM65GPLUS is not set -# CONFIG_SYN_TSMC90 is not set -# CONFIG_SYN_UMC is not set -# CONFIG_SYN_SPARTAN2 is not set -# CONFIG_SYN_SPARTAN3 is not set -# CONFIG_SYN_SPARTAN3E is not set -# CONFIG_SYN_SPARTAN6 is not set -# CONFIG_SYN_VIRTEX is not set -# CONFIG_SYN_VIRTEXE is not set -# CONFIG_SYN_VIRTEX2 is not set -# CONFIG_SYN_VIRTEX4 is not set -CONFIG_SYN_VIRTEX5=y -# CONFIG_SYN_VIRTEX6 is not set -# CONFIG_SYN_INFER_RAM is not set -# CONFIG_SYN_INFER_PADS is not set -# CONFIG_SYN_NO_ASYNC is not set -# CONFIG_SYN_SCAN is not set - -# -# Clock generation -# -# CONFIG_CLK_INFERRED is not set -# CONFIG_CLK_HCLKBUF is not set -# CONFIG_CLK_UT130HBD is not set -# CONFIG_CLK_ALTDLL is not set -# CONFIG_CLK_LATDLL is not set -# CONFIG_CLK_PRO3PLL is not set -# CONFIG_CLK_PRO3EPLL is not set -# CONFIG_CLK_PRO3LPLL is not set -# CONFIG_CLK_FUSPLL is not set -# CONFIG_CLK_LIB18T is not set -# CONFIG_CLK_RHUMC is not set -# CONFIG_CLK_CLKDLL is not set -CONFIG_CLK_DCM=y -CONFIG_CLK_MUL=8 -CONFIG_CLK_DIV=10 -# CONFIG_PCI_CLKDLL is not set -CONFIG_CLK_NOFB=y -# CONFIG_PCI_SYSCLK is not set -CONFIG_LEON3=y -CONFIG_PROC_NUM=1 - -# -# Processor -# - -# -# Integer unit -# -CONFIG_IU_NWINDOWS=8 -CONFIG_IU_V8MULDIV=y -CONFIG_IU_MUL_LATENCY_2=y -# CONFIG_IU_MUL_LATENCY_4 is not set -# CONFIG_IU_MUL_LATENCY_5 is not set -CONFIG_IU_MUL_INFERRED=y -# CONFIG_IU_MUL_MODGEN is not set -# CONFIG_IU_MUL_TECHSPEC is not set -# CONFIG_IU_MUL_DW is not set -CONFIG_IU_BP=y -CONFIG_IU_SVT=y -# CONFIG_NOTAG is not set -CONFIG_IU_LDELAY=1 -CONFIG_IU_WATCHPOINTS=2 -CONFIG_PWD=y -CONFIG_IU_RSTADDR=00000 - -# -# Floating-point unit -# -# CONFIG_FPU_ENABLE is not set - -# -# Cache system -# -CONFIG_ICACHE_ENABLE=y -# CONFIG_ICACHE_ASSO1 is not set -# CONFIG_ICACHE_ASSO2 is not set -# CONFIG_ICACHE_ASSO3 is not set -CONFIG_ICACHE_ASSO4=y -# CONFIG_ICACHE_SZ1 is not set -# CONFIG_ICACHE_SZ2 is not set -# CONFIG_ICACHE_SZ4 is not set -CONFIG_ICACHE_SZ8=y -# CONFIG_ICACHE_SZ16 is not set -# CONFIG_ICACHE_SZ32 is not set -# CONFIG_ICACHE_SZ64 is not set -# CONFIG_ICACHE_SZ128 is not set -# CONFIG_ICACHE_SZ256 is not set -# CONFIG_ICACHE_LZ16 is not set -CONFIG_ICACHE_LZ32=y -# CONFIG_ICACHE_ALGORND is not set -# CONFIG_ICACHE_ALGODIR is not set -# CONFIG_ICACHE_ALGOLRR is not set -CONFIG_ICACHE_ALGOLRU=y -# CONFIG_ICACHE_LOCK is not set -CONFIG_DCACHE_ENABLE=y -# CONFIG_DCACHE_ASSO1 is not set -# CONFIG_DCACHE_ASSO2 is not set -# CONFIG_DCACHE_ASSO3 is not set -CONFIG_DCACHE_ASSO4=y -# CONFIG_DCACHE_SZ1 is not set -# CONFIG_DCACHE_SZ2 is not set -CONFIG_DCACHE_SZ4=y -# CONFIG_DCACHE_SZ8 is not set -# CONFIG_DCACHE_SZ16 is not set -# CONFIG_DCACHE_SZ32 is not set -# CONFIG_DCACHE_SZ64 is not set -# CONFIG_DCACHE_SZ128 is not set -# CONFIG_DCACHE_SZ256 is not set -CONFIG_DCACHE_LZ16=y -# CONFIG_DCACHE_LZ32 is not set -# CONFIG_DCACHE_ALGORND is not set -# CONFIG_DCACHE_ALGODIR is not set -# CONFIG_DCACHE_ALGOLRR is not set -CONFIG_DCACHE_ALGOLRU=y -# CONFIG_DCACHE_LOCK is not set -CONFIG_DCACHE_SNOOP=y -CONFIG_DCACHE_SNOOP_FAST=y -# CONFIG_DCACHE_SNOOP_SEPTAG is not set -CONFIG_CACHE_FIXED=0 - -# -# MMU -# -CONFIG_MMU_ENABLE=y -# CONFIG_MMU_COMBINED is not set -CONFIG_MMU_SPLIT=y -CONFIG_MMU_REPARRAY=y -# CONFIG_MMU_REPINCREMENT is not set -# CONFIG_MMU_I2 is not set -# CONFIG_MMU_I4 is not set -CONFIG_MMU_I8=y -# CONFIG_MMU_I16 is not set -# CONFIG_MMU_I32 is not set -# CONFIG_MMU_D2 is not set -# CONFIG_MMU_D4 is not set -CONFIG_MMU_D8=y -# CONFIG_MMU_D16 is not set -# CONFIG_MMU_D32 is not set -CONFIG_MMU_FASTWB=y -CONFIG_MMU_PAGE_4K=y -# CONFIG_MMU_PAGE_8K is not set -# CONFIG_MMU_PAGE_16K is not set -# CONFIG_MMU_PAGE_32K is not set -# CONFIG_MMU_PAGE_PROG is not set - -# -# Debug Support Unit -# -CONFIG_DSU_ENABLE=y -CONFIG_DSU_ITRACE=y -# CONFIG_DSU_ITRACESZ1 is not set -CONFIG_DSU_ITRACESZ2=y -# CONFIG_DSU_ITRACESZ4 is not set -# CONFIG_DSU_ITRACESZ8 is not set -# CONFIG_DSU_ITRACESZ16 is not set -CONFIG_DSU_ATRACE=y -# CONFIG_DSU_ATRACESZ1 is not set -CONFIG_DSU_ATRACESZ2=y -# CONFIG_DSU_ATRACESZ4 is not set -# CONFIG_DSU_ATRACESZ8 is not set -# CONFIG_DSU_ATRACESZ16 is not set - -# -# Fault-tolerance -# - -# -# VHDL debug settings -# -# CONFIG_IU_DISAS is not set -# CONFIG_DEBUG_PC32 is not set - -# -# AMBA configuration -# -CONFIG_AHB_DEFMST=0 -CONFIG_AHB_RROBIN=y -CONFIG_AHB_SPLIT=y -CONFIG_AHB_IOADDR=FFF -CONFIG_APB_HADDR=C00 -CONFIG_AHB_MON=y -CONFIG_AHB_MONERR=y -CONFIG_AHB_MONWAR=y -# CONFIG_AHB_DTRACE is not set - -# -# Debug Link -# -CONFIG_DSU_UART=y -CONFIG_DSU_JTAG=y -CONFIG_DSU_ETH=y -# CONFIG_DSU_ETHSZ1 is not set -CONFIG_DSU_ETHSZ2=y -# CONFIG_DSU_ETHSZ4 is not set -# CONFIG_DSU_ETHSZ8 is not set -# CONFIG_DSU_ETHSZ16 is not set -CONFIG_DSU_IPMSB=C0A8 -CONFIG_DSU_IPLSB=0034 -CONFIG_DSU_ETHMSB=020000 -CONFIG_DSU_ETHLSB=000035 -# CONFIG_DSU_ETH_PROG is not set -# CONFIG_DSU_ETH_DIS is not set - -# -# Peripherals -# - -# -# Memory controller -# - -# -# Leon2 memory controller -# -CONFIG_MCTRL_LEON2=y -# CONFIG_MCTRL_8BIT is not set -CONFIG_MCTRL_16BIT=y -# CONFIG_MCTRL_5CS is not set -# CONFIG_MCTRL_SDRAM is not set - -# -# Xilinx MIG DDR2 controller -# -# CONFIG_MIG_DDR2 is not set - -# -# DDR2 SDRAM controller -# -CONFIG_DDR2SP=y -CONFIG_DDR2SP_INIT=y -CONFIG_DDR2SP_NOSYNC=y -CONFIG_DDR2SP_TRFC=130 -CONFIG_DDR2SP_COL=10 -CONFIG_DDR2SP_MBYTE=512 -CONFIG_DDR2SP_DATAWIDTH=32 -# CONFIG_DDR2SP_FTEN is not set -CONFIG_DDR2SP_DELAY0=8 -CONFIG_DDR2SP_DELAY1=8 -CONFIG_DDR2SP_DELAY2=8 -CONFIG_DDR2SP_DELAY3=8 -CONFIG_DDR2SP_DELAY4=8 -CONFIG_DDR2SP_DELAY5=8 -CONFIG_DDR2SP_DELAY6=8 -CONFIG_DDR2SP_DELAY7=8 -CONFIG_AHBSTAT_ENABLE=y -CONFIG_AHBSTAT_NFTSLV=1 - -# -# On-chip RAM/ROM -# -# CONFIG_AHBROM_ENABLE is not set -# CONFIG_AHBRAM_ENABLE is not set - -# -# Ethernet -# -CONFIG_GRETH_ENABLE=y -# CONFIG_GRETH_GIGA is not set -# CONFIG_GRETH_FIFO4 is not set -# CONFIG_GRETH_FIFO8 is not set -# CONFIG_GRETH_FIFO16 is not set -# CONFIG_GRETH_FIFO32 is not set -CONFIG_GRETH_FIFO64=y - -# -# UART, timer, I/O port and interrupt controller -# -CONFIG_UART1_ENABLE=y -# CONFIG_UA1_FIFO1 is not set -# CONFIG_UA1_FIFO2 is not set -CONFIG_UA1_FIFO4=y -# CONFIG_UA1_FIFO8 is not set -# CONFIG_UA1_FIFO16 is not set -# CONFIG_UA1_FIFO32 is not set -CONFIG_IRQ3_ENABLE=y -# CONFIG_IRQ3_SEC is not set -CONFIG_GPT_ENABLE=y -CONFIG_GPT_NTIM=2 -CONFIG_GPT_SW=8 -CONFIG_GPT_TW=32 -CONFIG_GPT_IRQ=8 -CONFIG_GPT_SEPIRQ=y -# CONFIG_GPT_WDOGEN is not set -CONFIG_GRGPIO_ENABLE=y -CONFIG_GRGPIO_WIDTH=12 -CONFIG_GRGPIO_IMASK=0060 - -# -# I2C and SPI -# -CONFIG_I2C_ENABLE=y - -# -# SPI controller(s) -# -CONFIG_SPICTRL_ENABLE=y -CONFIG_SPICTRL_NUM=1 -CONFIG_SPICTRL_SLVS=1 -CONFIG_SPICTRL_FIFO=2 -CONFIG_SPICTRL_SLVREG=y -# CONFIG_SPICTRL_ASEL is not set -# CONFIG_SPICTRL_AM is not set -# CONFIG_SPICTRL_ODMODE is not set -# CONFIG_SPICTRL_TWEN is not set -CONFIG_SPICTRL_MAXWLEN=0 -# CONFIG_SPICTRL_SYNCRAM is not set - -# -# PCI -# -CONFIG_PCI_MASTER_TARGET=y -CONFIG_PCI_MASTER_TARGET_DMA=y -CONFIG_PCI_VENDORID=1AC8 -CONFIG_PCI_DEVICEID=0054 -# CONFIG_PCI_FIFO0 is not set -# CONFIG_PCI_FIFO8 is not set -# CONFIG_PCI_FIFO16 is not set -# CONFIG_PCI_FIFO32 is not set -# CONFIG_PCI_FIFO64 is not set -CONFIG_PCI_FIFO128=y -CONFIG_PCI_HADDR=E00 -CONFIG_PCI_ARBITER=y -CONFIG_PCI_ARBITER_APB=y -CONFIG_PCI_ARBITER_NREQ=8 -CONFIG_PCI_TRACE=y -# CONFIG_PCI_TRACE256 is not set -# CONFIG_PCI_TRACE512 is not set -# CONFIG_PCI_TRACE1024 is not set -# CONFIG_PCI_TRACE2048 is not set -CONFIG_PCI_TRACE4096=y - -# -# VGA interface -# -CONFIG_SVGA_ENABLE=y - -# -# System ACE and System Monitor -# -CONFIG_GRACECTRL=y -# CONFIG_GRSYSMON is not set - -# -# VHDL Debugging -# -# CONFIG_DEBUG_UART is not set diff --git a/designs/leon3-xilinx-ml510/lconfig.tk b/designs/leon3-xilinx-ml510/lconfig.tk index 4ae27c16..b35aa54f 100755 --- a/designs/leon3-xilinx-ml510/lconfig.tk +++ b/designs/leon3-xilinx-ml510/lconfig.tk @@ -644,7 +644,7 @@ set active_menus [list] set processed_top_level 0 set ARCH sparc set menus_per_column 4 -set total_menus 26 +set total_menus 25 proc toplevel_menu {num} { if {$num == 4} then {return 3} @@ -657,15 +657,14 @@ proc toplevel_menu {num} { if {$num == 14} then {return 13} if {$num == 15} then {return 14} if {$num == 16} then {return 14} - if {$num == 17} then {return 14} + if {$num == 17} then {return 13} if {$num == 18} then {return 13} if {$num == 19} then {return 13} if {$num == 20} then {return 13} - if {$num == 21} then {return 13} - if {$num == 22} then {return 21} + if {$num == 21} then {return 20} + if {$num == 22} then {return 13} if {$num == 23} then {return 13} if {$num == 24} then {return 13} - if {$num == 25} then {return 13} return $num } @@ -759,7 +758,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -769,7 +769,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -912,8 +914,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -932,6 +936,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1021,9 +1029,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1077,10 +1086,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1126,14 +1136,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1206,13 +1218,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1252,22 +1272,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1324,21 +1612,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1385,36 +1673,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1422,48 +1711,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1519,28 +1809,28 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH - global tmpvar_7 - minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x4.x.menu 3 bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1581,20 +1871,21 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1603,38 +1894,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} - global tmpvar_7 + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1691,92 +1983,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1784,18 +2076,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1836,52 +2128,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1889,162 +2182,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2100,45 +2394,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2178,18 +2474,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2197,55 +2494,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2302,24 +2604,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2359,17 +2661,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2377,37 +2680,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2462,6 +2766,28 @@ proc menu9 {w title} { pack $w.config.canvas -side right -fill y + bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE + menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x1.x.menu 5 + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ + bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN + int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ + bool $w.config.f 9 6 "Use LEON3FT netlist " CONFIG_LEON3_NETLIST @@ -2499,12 +2825,65 @@ proc menu9 {w title} { } proc update_menu9 {} { + global CONFIG_LEON3 + global CONFIG_LEON3FT_EN + if {($CONFIG_LEON3 == 1)} then { + configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} + global CONFIG_FPU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} + global CONFIG_RF_ERRINJ + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} + global CONFIG_CACHE_FT_EN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + configure_entry .menu9.config.f.x4 normal {n l y}} else {configure_entry .menu9.config.f.x4 disabled {y n l}} + global CONFIG_CACHE_ERRINJ + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {.menu9.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu9.config.f.x5.l configure -state normal; } else {.menu9.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu9.config.f.x5.l configure -state disabled} + global CONFIG_LEON3_NETLIST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + configure_entry .menu9.config.f.x6 normal {n l y}} else {configure_entry .menu9.config.f.x6 disabled {y n l}} } proc update_define_menu9 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_LEON3 + global CONFIG_LEON3FT_EN + if {($CONFIG_LEON3 == 1)} then { + set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} + global tmpvar_26 + global CONFIG_IUFT_NONE + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + global CONFIG_IUFT_PAR + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + global CONFIG_IUFT_DMR + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + global CONFIG_IUFT_BCH + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + global CONFIG_IUFT_TMR + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} + global CONFIG_RF_ERRINJ + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} + global CONFIG_CACHE_FT_EN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + set CONFIG_CACHE_FT_EN [expr $CONFIG_CACHE_FT_EN&15]} else {set CONFIG_CACHE_FT_EN [expr $CONFIG_CACHE_FT_EN|16]} + global CONFIG_CACHE_ERRINJ + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {validate_int CONFIG_CACHE_ERRINJ "$CONFIG_CACHE_ERRINJ" 0} + global CONFIG_LEON3_NETLIST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + set CONFIG_LEON3_NETLIST [expr $CONFIG_LEON3_NETLIST&15]} else {set CONFIG_LEON3_NETLIST [expr $CONFIG_LEON3_NETLIST|16]} } @@ -2682,12 +3061,13 @@ proc menu11 {w title} { int $w.config.f 11 0 "Default AHB master" CONFIG_AHB_DEFMST bool $w.config.f 11 1 "Round-robin arbiter " CONFIG_AHB_RROBIN bool $w.config.f 11 2 "AHB split-transaction support " CONFIG_AHB_SPLIT - hex $w.config.f 11 3 "I/O area start address (haddr\[31:20\]) " CONFIG_AHB_IOADDR - hex $w.config.f 11 4 "AHB/APB bridge address (haddr\[31:20\]) " CONFIG_APB_HADDR - bool $w.config.f 11 5 "Enable AMBA AHB monitor " CONFIG_AHB_MON - bool $w.config.f 11 6 "Report AHB errors " CONFIG_AHB_MONERR - bool $w.config.f 11 7 "Report AHB warings " CONFIG_AHB_MONWAR - bool $w.config.f 11 8 "Write trace to simulation console " CONFIG_AHB_DTRACE + bool $w.config.f 11 3 "Enable full plug&play decoding " CONFIG_AHB_FPNPEN + hex $w.config.f 11 4 "I/O area start address (haddr\[31:20\]) " CONFIG_AHB_IOADDR + hex $w.config.f 11 5 "AHB/APB bridge address (haddr\[31:20\]) " CONFIG_APB_HADDR + bool $w.config.f 11 6 "Enable AMBA AHB monitor " CONFIG_AHB_MON + bool $w.config.f 11 7 "Report AHB errors " CONFIG_AHB_MONERR + bool $w.config.f 11 8 "Report AHB warings " CONFIG_AHB_MONWAR + bool $w.config.f 11 9 "Write trace to simulation console " CONFIG_AHB_DTRACE @@ -2727,10 +3107,10 @@ proc update_menu11 {} { global CONFIG_AHB_MON global CONFIG_AHB_MONERR if {($CONFIG_AHB_MON == 1)} then { - configure_entry .menu11.config.f.x6 normal {n l y}} else {configure_entry .menu11.config.f.x6 disabled {y n l}} + configure_entry .menu11.config.f.x7 normal {n l y}} else {configure_entry .menu11.config.f.x7 disabled {y n l}} global CONFIG_AHB_MONWAR if {($CONFIG_AHB_MON == 1)} then { - configure_entry .menu11.config.f.x7 normal {n l y}} else {configure_entry .menu11.config.f.x7 disabled {y n l}} + configure_entry .menu11.config.f.x8 normal {n l y}} else {configure_entry .menu11.config.f.x8 disabled {y n l}} } @@ -2801,14 +3181,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2882,17 +3262,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -2963,13 +3343,13 @@ proc menu13 {w title} { submenu $w.config.f 13 0 "Memory controller " 14 - submenu $w.config.f 13 1 "On-chip RAM/ROM " 18 - submenu $w.config.f 13 2 "Ethernet " 19 - submenu $w.config.f 13 3 "UART, timer, I/O port and interrupt controller" 20 - submenu $w.config.f 13 4 "I2C and SPI " 21 - submenu $w.config.f 13 5 "PCI " 23 - submenu $w.config.f 13 6 "VGA interface" 24 - submenu $w.config.f 13 7 "System ACE and System Monitor" 25 + submenu $w.config.f 13 1 "On-chip RAM/ROM " 17 + submenu $w.config.f 13 2 "Ethernet " 18 + submenu $w.config.f 13 3 "UART, timer, I/O port and interrupt controller" 19 + submenu $w.config.f 13 4 "I2C and SPI " 20 + submenu $w.config.f 13 5 "PCI " 22 + submenu $w.config.f 13 6 "VGA interface" 23 + submenu $w.config.f 13 7 "System ACE and System Monitor" 24 @@ -3067,10 +3447,9 @@ proc menu14 {w title} { submenu $w.config.f 14 0 "Leon2 memory controller " 15 - submenu $w.config.f 14 1 "Xilinx MIG DDR2 controller " 16 - submenu $w.config.f 14 2 "DDR2 SDRAM controller " 17 - bool $w.config.f 14 3 "Enable AHB Status Register " CONFIG_AHBSTAT_ENABLE - int $w.config.f 14 4 "Number of correctable-error slaves " CONFIG_AHBSTAT_NFTSLV + submenu $w.config.f 14 1 "DDR2 SDRAM controller " 16 + bool $w.config.f 14 2 "Enable AHB Status Register " CONFIG_AHBSTAT_ENABLE + int $w.config.f 14 3 "Number of correctable-error slaves " CONFIG_AHBSTAT_NFTSLV @@ -3110,7 +3489,7 @@ proc menu14 {w title} { proc update_menu14 {} { global CONFIG_AHBSTAT_ENABLE global CONFIG_AHBSTAT_NFTSLV - if {($CONFIG_AHBSTAT_ENABLE == 1)} then {.menu14.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu14.config.f.x4.l configure -state normal; } else {.menu14.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu14.config.f.x4.l configure -state disabled} + if {($CONFIG_AHBSTAT_ENABLE == 1)} then {.menu14.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu14.config.f.x3.l configure -state normal; } else {.menu14.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu14.config.f.x3.l configure -state disabled} } @@ -3295,12 +3674,12 @@ proc menu16 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 16]] message $w.m -width 400 -aspect 300 -text \ - "Xilinx MIG DDR2 controller " -relief raised + "DDR2 SDRAM controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "Xilinx MIG DDR2 controller " + wm title $w "DDR2 SDRAM controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 16; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 16; menu17 .menu17 \"$title\"" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 16; catch {destroy .menu14}; unregister_active 14; menu17 .menu17 \"$title\"" frame $w.f button $w.f.back -text "OK" \ -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 16" @@ -3337,7 +3716,28 @@ proc menu16 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 16 0 "Enable Xilinx MIG DDR2/3 controller" CONFIG_MIG_DDR2 + bool $w.config.f 16 0 "Enable DDR2 SDRAM controller " CONFIG_DDR2SP + bool $w.config.f 16 1 "Enable power-on initialization " CONFIG_DDR2SP_INIT + bool $w.config.f 16 2 "DDR clock is aligned to system clock " CONFIG_DDR2SP_NOSYNC + int $w.config.f 16 3 "Memory frequency (MHz) " CONFIG_DDR2SP_FREQ + int $w.config.f 16 4 "Refresh to Activate (tRFC) in ns " CONFIG_DDR2SP_TRFC + int $w.config.f 16 5 "Column address bits (9 - 12) " CONFIG_DDR2SP_COL + int $w.config.f 16 6 "Chip select bank size (Mbyte) " CONFIG_DDR2SP_MBYTE + int $w.config.f 16 7 "Data width (64, 32, 16) bit " CONFIG_DDR2SP_DATAWIDTH + bool $w.config.f 16 8 "Fault-tolerant DDR2 controller " CONFIG_DDR2SP_FTEN + int $w.config.f 16 9 "Checkbits width (32,16,8) bit " CONFIG_DDR2SP_FTWIDTH + int $w.config.f 16 10 "Input pad delay for bits 7:0 (0 - 63)" CONFIG_DDR2SP_DELAY0 + int $w.config.f 16 11 "Input pad delay for bits 15:8 (0 - 63)" CONFIG_DDR2SP_DELAY1 + int $w.config.f 16 12 "Input pad delay for bits 23:16 (0 - 63)" CONFIG_DDR2SP_DELAY2 + int $w.config.f 16 13 "Input pad delay for bits 31:24 (0 - 63)" CONFIG_DDR2SP_DELAY3 + int $w.config.f 16 14 "Input pad delay for bits 39:32 (0 - 63)" CONFIG_DDR2SP_DELAY4 + int $w.config.f 16 15 "Input pad delay for bits 47:40 (0 - 63)" CONFIG_DDR2SP_DELAY5 + int $w.config.f 16 16 "Input pad delay for bits 55:48 (0 - 63)" CONFIG_DDR2SP_DELAY6 + int $w.config.f 16 17 "Input pad delay for bits 63:56 (0 - 63)" CONFIG_DDR2SP_DELAY7 + int $w.config.f 16 18 "Input pad delay for checkbits 7:0 (0 - 63)" CONFIG_DDR2SP_CBDELAY0 + int $w.config.f 16 19 "Input pad delay for checkbits 15:8 (0 - 63)" CONFIG_DDR2SP_CBDELAY1 + int $w.config.f 16 20 "Input pad delay for checkbits 23:16 (0 - 63)" CONFIG_DDR2SP_CBDELAY2 + int $w.config.f 16 21 "Input pad delay for checkbits 31:24 (0 - 63)" CONFIG_DDR2SP_CBDELAY3 @@ -3375,30 +3775,128 @@ proc menu16 {w title} { } proc update_menu16 {} { + global CONFIG_MIG_DDR2 + global CONFIG_DDR2SP + if {($CONFIG_MIG_DDR2 != 1)} then { + configure_entry .menu16.config.f.x0 normal {n l y}} else {configure_entry .menu16.config.f.x0 disabled {y n l}} + global CONFIG_DDR2SP_INIT + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then { + configure_entry .menu16.config.f.x1 normal {n l y}} else {configure_entry .menu16.config.f.x1 disabled {y n l}} + global CONFIG_DDR2SP_NOSYNC + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then { + configure_entry .menu16.config.f.x2 normal {n l y}} else {configure_entry .menu16.config.f.x2 disabled {y n l}} + global CONFIG_DDR2SP_FREQ + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_NOSYNC == 0)} then {.menu16.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x3.l configure -state normal; } else {.menu16.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x3.l configure -state disabled} + global CONFIG_DDR2SP_TRFC + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {.menu16.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x4.l configure -state normal; } else {.menu16.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x4.l configure -state disabled} + global CONFIG_DDR2SP_COL + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_INIT == 1)} then {.menu16.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x5.l configure -state normal; } else {.menu16.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x5.l configure -state disabled} + global CONFIG_DDR2SP_MBYTE + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_INIT == 1)} then {.menu16.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x6.l configure -state normal; } else {.menu16.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x6.l configure -state disabled} + global CONFIG_DDR2SP_DATAWIDTH + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {.menu16.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x7.l configure -state normal; } else {.menu16.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x7.l configure -state disabled} + global CONFIG_DDR2SP_FTEN + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then { + configure_entry .menu16.config.f.x8 normal {n l y}} else {configure_entry .menu16.config.f.x8 disabled {y n l}} + global CONFIG_DDR2SP_FTWIDTH + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {.menu16.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x9.l configure -state normal; } else {.menu16.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x9.l configure -state disabled} + global CONFIG_DDR2SP_DELAY0 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {.menu16.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x10.l configure -state normal; } else {.menu16.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x10.l configure -state disabled} + global CONFIG_DDR2SP_DELAY1 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {.menu16.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x11.l configure -state normal; } else {.menu16.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x11.l configure -state disabled} + global CONFIG_DDR2SP_DELAY2 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {.menu16.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x12.l configure -state normal; } else {.menu16.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x12.l configure -state disabled} + global CONFIG_DDR2SP_DELAY3 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {.menu16.config.f.x13.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x13.l configure -state normal; } else {.menu16.config.f.x13.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x13.l configure -state disabled} + global CONFIG_DDR2SP_DELAY4 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {.menu16.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x14.l configure -state normal; } else {.menu16.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x14.l configure -state disabled} + global CONFIG_DDR2SP_DELAY5 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {.menu16.config.f.x15.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x15.l configure -state normal; } else {.menu16.config.f.x15.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x15.l configure -state disabled} + global CONFIG_DDR2SP_DELAY6 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {.menu16.config.f.x16.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x16.l configure -state normal; } else {.menu16.config.f.x16.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x16.l configure -state disabled} + global CONFIG_DDR2SP_DELAY7 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {.menu16.config.f.x17.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x17.l configure -state normal; } else {.menu16.config.f.x17.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x17.l configure -state disabled} + global CONFIG_DDR2SP_CBDELAY0 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {.menu16.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x18.l configure -state normal; } else {.menu16.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x18.l configure -state disabled} + global CONFIG_DDR2SP_CBDELAY1 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {.menu16.config.f.x19.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x19.l configure -state normal; } else {.menu16.config.f.x19.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x19.l configure -state disabled} + global CONFIG_DDR2SP_CBDELAY2 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {.menu16.config.f.x20.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x20.l configure -state normal; } else {.menu16.config.f.x20.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x20.l configure -state disabled} + global CONFIG_DDR2SP_CBDELAY3 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {.menu16.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x21.l configure -state normal; } else {.menu16.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x21.l configure -state disabled} } proc update_define_menu16 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_MIG_DDR2 + global CONFIG_DDR2SP + if {($CONFIG_MIG_DDR2 != 1)} then { + set CONFIG_DDR2SP [expr $CONFIG_DDR2SP&15]} else {set CONFIG_DDR2SP [expr $CONFIG_DDR2SP|16]} + global CONFIG_DDR2SP_INIT + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then { + set CONFIG_DDR2SP_INIT [expr $CONFIG_DDR2SP_INIT&15]} else {set CONFIG_DDR2SP_INIT [expr $CONFIG_DDR2SP_INIT|16]} + global CONFIG_DDR2SP_NOSYNC + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then { + set CONFIG_DDR2SP_NOSYNC [expr $CONFIG_DDR2SP_NOSYNC&15]} else {set CONFIG_DDR2SP_NOSYNC [expr $CONFIG_DDR2SP_NOSYNC|16]} + global CONFIG_DDR2SP_FREQ + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_NOSYNC == 0)} then {validate_int CONFIG_DDR2SP_FREQ "$CONFIG_DDR2SP_FREQ" 100} + global CONFIG_DDR2SP_TRFC + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_TRFC "$CONFIG_DDR2SP_TRFC" 130} + global CONFIG_DDR2SP_COL + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_INIT == 1)} then {validate_int CONFIG_DDR2SP_COL "$CONFIG_DDR2SP_COL" 9} + global CONFIG_DDR2SP_MBYTE + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_INIT == 1)} then {validate_int CONFIG_DDR2SP_MBYTE "$CONFIG_DDR2SP_MBYTE" 16} + global CONFIG_DDR2SP_DATAWIDTH + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DATAWIDTH "$CONFIG_DDR2SP_DATAWIDTH" 64} + global CONFIG_DDR2SP_FTEN + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then { + set CONFIG_DDR2SP_FTEN [expr $CONFIG_DDR2SP_FTEN&15]} else {set CONFIG_DDR2SP_FTEN [expr $CONFIG_DDR2SP_FTEN|16]} + global CONFIG_DDR2SP_FTWIDTH + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {validate_int CONFIG_DDR2SP_FTWIDTH "$CONFIG_DDR2SP_FTWIDTH" 32} + global CONFIG_DDR2SP_DELAY0 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY0 "$CONFIG_DDR2SP_DELAY0" 0} + global CONFIG_DDR2SP_DELAY1 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY1 "$CONFIG_DDR2SP_DELAY1" 0} + global CONFIG_DDR2SP_DELAY2 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY2 "$CONFIG_DDR2SP_DELAY2" 0} + global CONFIG_DDR2SP_DELAY3 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY3 "$CONFIG_DDR2SP_DELAY3" 0} + global CONFIG_DDR2SP_DELAY4 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY4 "$CONFIG_DDR2SP_DELAY4" 0} + global CONFIG_DDR2SP_DELAY5 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY5 "$CONFIG_DDR2SP_DELAY5" 0} + global CONFIG_DDR2SP_DELAY6 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY6 "$CONFIG_DDR2SP_DELAY6" 0} + global CONFIG_DDR2SP_DELAY7 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY7 "$CONFIG_DDR2SP_DELAY7" 0} + global CONFIG_DDR2SP_CBDELAY0 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {validate_int CONFIG_DDR2SP_CBDELAY0 "$CONFIG_DDR2SP_CBDELAY0" 0} + global CONFIG_DDR2SP_CBDELAY1 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {validate_int CONFIG_DDR2SP_CBDELAY1 "$CONFIG_DDR2SP_CBDELAY1" 0} + global CONFIG_DDR2SP_CBDELAY2 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {validate_int CONFIG_DDR2SP_CBDELAY2 "$CONFIG_DDR2SP_CBDELAY2" 0} + global CONFIG_DDR2SP_CBDELAY3 + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {validate_int CONFIG_DDR2SP_CBDELAY3 "$CONFIG_DDR2SP_CBDELAY3" 0} } proc menu17 {w title} { set oldFocus [focus] - catch {focus .menu14} + catch {focus .menu13} catch {destroy $w; unregister_active 17} toplevel $w -class Dialog wm withdraw $w global active_menus set active_menus [lsort -integer [linsert $active_menus end 17]] message $w.m -width 400 -aspect 300 -text \ - "DDR2 SDRAM controller " -relief raised + "On-chip RAM/ROM " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "DDR2 SDRAM controller " + wm title $w "On-chip RAM/ROM " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 17; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 17; catch {destroy .menu14}; unregister_active 14; menu18 .menu18 \"$title\"" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 17; menu18 .menu18 \"$title\"" frame $w.f button $w.f.back -text "OK" \ -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 17" @@ -3435,36 +3933,30 @@ proc menu17 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 17 0 "Enable DDR2 SDRAM controller " CONFIG_DDR2SP - bool $w.config.f 17 1 "Enable power-on initialization " CONFIG_DDR2SP_INIT - bool $w.config.f 17 2 "DDR clock is aligned to system clock " CONFIG_DDR2SP_NOSYNC - int $w.config.f 17 3 "Memory frequency (MHz) " CONFIG_DDR2SP_FREQ - int $w.config.f 17 4 "Refresh to Activate (tRFC) in ns " CONFIG_DDR2SP_TRFC - int $w.config.f 17 5 "Column address bits (9 - 12) " CONFIG_DDR2SP_COL - int $w.config.f 17 6 "Chip select bank size (Mbyte) " CONFIG_DDR2SP_MBYTE - int $w.config.f 17 7 "Data width (64, 32, 16) bit " CONFIG_DDR2SP_DATAWIDTH - bool $w.config.f 17 8 "Fault-tolerant DDR2 controller " CONFIG_DDR2SP_FTEN - int $w.config.f 17 9 "Checkbits width (32,16,8) bit " CONFIG_DDR2SP_FTWIDTH - int $w.config.f 17 10 "Input pad delay for bits 7:0 (0 - 63)" CONFIG_DDR2SP_DELAY0 - int $w.config.f 17 11 "Input pad delay for bits 15:8 (0 - 63)" CONFIG_DDR2SP_DELAY1 - int $w.config.f 17 12 "Input pad delay for bits 23:16 (0 - 63)" CONFIG_DDR2SP_DELAY2 - int $w.config.f 17 13 "Input pad delay for bits 31:24 (0 - 63)" CONFIG_DDR2SP_DELAY3 - int $w.config.f 17 14 "Input pad delay for bits 39:32 (0 - 63)" CONFIG_DDR2SP_DELAY4 - int $w.config.f 17 15 "Input pad delay for bits 47:40 (0 - 63)" CONFIG_DDR2SP_DELAY5 - int $w.config.f 17 16 "Input pad delay for bits 55:48 (0 - 63)" CONFIG_DDR2SP_DELAY6 - int $w.config.f 17 17 "Input pad delay for bits 63:56 (0 - 63)" CONFIG_DDR2SP_DELAY7 - int $w.config.f 17 18 "Input pad delay for checkbits 7:0 (0 - 63)" CONFIG_DDR2SP_CBDELAY0 - int $w.config.f 17 19 "Input pad delay for checkbits 15:8 (0 - 63)" CONFIG_DDR2SP_CBDELAY1 - int $w.config.f 17 20 "Input pad delay for checkbits 23:16 (0 - 63)" CONFIG_DDR2SP_CBDELAY2 - int $w.config.f 17 21 "Input pad delay for checkbits 31:24 (0 - 63)" CONFIG_DDR2SP_CBDELAY3 + bool $w.config.f 17 0 "On-chip AHB ROM " CONFIG_AHBROM_ENABLE + hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START + bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE + bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE + global tmpvar_29 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 + menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 7 + hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START focus $w update_active global winx; global winy - if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controller "} - set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30] + if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} + set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f @@ -3494,225 +3986,20 @@ proc menu17 {w title} { } proc update_menu17 {} { - global CONFIG_DDR2SP - global CONFIG_DDR2SP_INIT - if {($CONFIG_DDR2SP == 1)} then { - configure_entry .menu17.config.f.x1 normal {n l y}} else {configure_entry .menu17.config.f.x1 disabled {y n l}} - global CONFIG_DDR2SP_NOSYNC - if {($CONFIG_DDR2SP == 1)} then { + global CONFIG_AHBROM_ENABLE + global CONFIG_AHBROM_START + if {($CONFIG_AHBROM_ENABLE == 1)} then {.menu17.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x1.l configure -state normal; } else {.menu17.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x1.l configure -state disabled} + global CONFIG_AHBROM_PIPE + if {($CONFIG_AHBROM_ENABLE == 1)} then { configure_entry .menu17.config.f.x2 normal {n l y}} else {configure_entry .menu17.config.f.x2 disabled {y n l}} - global CONFIG_DDR2SP_FREQ - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_NOSYNC == 0)} then {.menu17.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x3.l configure -state normal; } else {.menu17.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x3.l configure -state disabled} - global CONFIG_DDR2SP_TRFC - if {($CONFIG_DDR2SP == 1)} then {.menu17.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x4.l configure -state normal; } else {.menu17.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x4.l configure -state disabled} - global CONFIG_DDR2SP_COL - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_INIT == 1)} then {.menu17.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x5.l configure -state normal; } else {.menu17.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x5.l configure -state disabled} - global CONFIG_DDR2SP_MBYTE - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_INIT == 1)} then {.menu17.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x6.l configure -state normal; } else {.menu17.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x6.l configure -state disabled} - global CONFIG_DDR2SP_DATAWIDTH - if {($CONFIG_DDR2SP == 1)} then {.menu17.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x7.l configure -state normal; } else {.menu17.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x7.l configure -state disabled} - global CONFIG_DDR2SP_FTEN - if {($CONFIG_DDR2SP == 1)} then { - configure_entry .menu17.config.f.x8 normal {n l y}} else {configure_entry .menu17.config.f.x8 disabled {y n l}} - global CONFIG_DDR2SP_FTWIDTH - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {.menu17.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x9.l configure -state normal; } else {.menu17.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x9.l configure -state disabled} - global CONFIG_DDR2SP_DELAY0 - if {($CONFIG_DDR2SP == 1)} then {.menu17.config.f.x10.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x10.l configure -state normal; } else {.menu17.config.f.x10.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x10.l configure -state disabled} - global CONFIG_DDR2SP_DELAY1 - if {($CONFIG_DDR2SP == 1)} then {.menu17.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x11.l configure -state normal; } else {.menu17.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x11.l configure -state disabled} - global CONFIG_DDR2SP_DELAY2 - if {($CONFIG_DDR2SP == 1)} then {.menu17.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x12.l configure -state normal; } else {.menu17.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x12.l configure -state disabled} - global CONFIG_DDR2SP_DELAY3 - if {($CONFIG_DDR2SP == 1)} then {.menu17.config.f.x13.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x13.l configure -state normal; } else {.menu17.config.f.x13.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x13.l configure -state disabled} - global CONFIG_DDR2SP_DELAY4 - if {($CONFIG_DDR2SP == 1)} then {.menu17.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x14.l configure -state normal; } else {.menu17.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x14.l configure -state disabled} - global CONFIG_DDR2SP_DELAY5 - if {($CONFIG_DDR2SP == 1)} then {.menu17.config.f.x15.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x15.l configure -state normal; } else {.menu17.config.f.x15.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x15.l configure -state disabled} - global CONFIG_DDR2SP_DELAY6 - if {($CONFIG_DDR2SP == 1)} then {.menu17.config.f.x16.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x16.l configure -state normal; } else {.menu17.config.f.x16.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x16.l configure -state disabled} - global CONFIG_DDR2SP_DELAY7 - if {($CONFIG_DDR2SP == 1)} then {.menu17.config.f.x17.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x17.l configure -state normal; } else {.menu17.config.f.x17.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x17.l configure -state disabled} - global CONFIG_DDR2SP_CBDELAY0 - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {.menu17.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x18.l configure -state normal; } else {.menu17.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x18.l configure -state disabled} - global CONFIG_DDR2SP_CBDELAY1 - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {.menu17.config.f.x19.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x19.l configure -state normal; } else {.menu17.config.f.x19.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x19.l configure -state disabled} - global CONFIG_DDR2SP_CBDELAY2 - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {.menu17.config.f.x20.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x20.l configure -state normal; } else {.menu17.config.f.x20.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x20.l configure -state disabled} - global CONFIG_DDR2SP_CBDELAY3 - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {.menu17.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x21.l configure -state normal; } else {.menu17.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x21.l configure -state disabled} -} - - -proc update_define_menu17 {} { - update_define_mainmenu - global CONFIG_MODULES - global CONFIG_DDR2SP - global CONFIG_DDR2SP_INIT - if {($CONFIG_DDR2SP == 1)} then { - set CONFIG_DDR2SP_INIT [expr $CONFIG_DDR2SP_INIT&15]} else {set CONFIG_DDR2SP_INIT [expr $CONFIG_DDR2SP_INIT|16]} - global CONFIG_DDR2SP_NOSYNC - if {($CONFIG_DDR2SP == 1)} then { - set CONFIG_DDR2SP_NOSYNC [expr $CONFIG_DDR2SP_NOSYNC&15]} else {set CONFIG_DDR2SP_NOSYNC [expr $CONFIG_DDR2SP_NOSYNC|16]} - global CONFIG_DDR2SP_FREQ - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_NOSYNC == 0)} then {validate_int CONFIG_DDR2SP_FREQ "$CONFIG_DDR2SP_FREQ" 100} - global CONFIG_DDR2SP_TRFC - if {($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_TRFC "$CONFIG_DDR2SP_TRFC" 130} - global CONFIG_DDR2SP_COL - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_INIT == 1)} then {validate_int CONFIG_DDR2SP_COL "$CONFIG_DDR2SP_COL" 9} - global CONFIG_DDR2SP_MBYTE - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_INIT == 1)} then {validate_int CONFIG_DDR2SP_MBYTE "$CONFIG_DDR2SP_MBYTE" 16} - global CONFIG_DDR2SP_DATAWIDTH - if {($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DATAWIDTH "$CONFIG_DDR2SP_DATAWIDTH" 64} - global CONFIG_DDR2SP_FTEN - if {($CONFIG_DDR2SP == 1)} then { - set CONFIG_DDR2SP_FTEN [expr $CONFIG_DDR2SP_FTEN&15]} else {set CONFIG_DDR2SP_FTEN [expr $CONFIG_DDR2SP_FTEN|16]} - global CONFIG_DDR2SP_FTWIDTH - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {validate_int CONFIG_DDR2SP_FTWIDTH "$CONFIG_DDR2SP_FTWIDTH" 32} - global CONFIG_DDR2SP_DELAY0 - if {($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY0 "$CONFIG_DDR2SP_DELAY0" 0} - global CONFIG_DDR2SP_DELAY1 - if {($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY1 "$CONFIG_DDR2SP_DELAY1" 0} - global CONFIG_DDR2SP_DELAY2 - if {($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY2 "$CONFIG_DDR2SP_DELAY2" 0} - global CONFIG_DDR2SP_DELAY3 - if {($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY3 "$CONFIG_DDR2SP_DELAY3" 0} - global CONFIG_DDR2SP_DELAY4 - if {($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY4 "$CONFIG_DDR2SP_DELAY4" 0} - global CONFIG_DDR2SP_DELAY5 - if {($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY5 "$CONFIG_DDR2SP_DELAY5" 0} - global CONFIG_DDR2SP_DELAY6 - if {($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY6 "$CONFIG_DDR2SP_DELAY6" 0} - global CONFIG_DDR2SP_DELAY7 - if {($CONFIG_DDR2SP == 1)} then {validate_int CONFIG_DDR2SP_DELAY7 "$CONFIG_DDR2SP_DELAY7" 0} - global CONFIG_DDR2SP_CBDELAY0 - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {validate_int CONFIG_DDR2SP_CBDELAY0 "$CONFIG_DDR2SP_CBDELAY0" 0} - global CONFIG_DDR2SP_CBDELAY1 - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {validate_int CONFIG_DDR2SP_CBDELAY1 "$CONFIG_DDR2SP_CBDELAY1" 0} - global CONFIG_DDR2SP_CBDELAY2 - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {validate_int CONFIG_DDR2SP_CBDELAY2 "$CONFIG_DDR2SP_CBDELAY2" 0} - global CONFIG_DDR2SP_CBDELAY3 - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {validate_int CONFIG_DDR2SP_CBDELAY3 "$CONFIG_DDR2SP_CBDELAY3" 0} -} - - -proc menu18 {w title} { - set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 18} - toplevel $w -class Dialog - wm withdraw $w - global active_menus - set active_menus [lsort -integer [linsert $active_menus end 18]] - message $w.m -width 400 -aspect 300 -text \ - "On-chip RAM/ROM " -relief raised - pack $w.m -pady 10 -side top -padx 10 - wm title $w "On-chip RAM/ROM " - - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 18; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu19 .menu19 \"$title\"" - frame $w.f - button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18" - button $w.f.next -text "Next" -underline 0\ - -width 15 -command $nextscript - bind all $nextscript - button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu17 .menu17 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu17 .menu17 \"$title\";break" - pack $w.f.back $w.f.next $w.f.prev -side left -expand on - pack $w.f -pady 10 -side bottom -anchor w -fill x - frame $w.topline -relief ridge -borderwidth 2 -height 2 - pack $w.topline -side top -fill x - - frame $w.botline -relief ridge -borderwidth 2 -height 2 - pack $w.botline -side bottom -fill x - - frame $w.config - pack $w.config -fill y -expand on - - scrollbar $w.config.vscroll -command "$w.config.canvas yview" - pack $w.config.vscroll -side right -fill y - - canvas $w.config.canvas -height 1\ - -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ - -width [expr [winfo screenwidth .] * 1 / 2] - frame $w.config.f - bind $w "$w.config.canvas yview scroll 1 unit;break;" - bind $w "$w.config.canvas yview scroll -1 unit;break;" - bind $w "$w.config.canvas yview scroll 1 page;break;" - bind $w "$w.config.canvas yview scroll -1 page;break;" - bind $w "$w.config.canvas yview moveto 0;break;" - bind $w "$w.config.canvas yview moveto 1 ;break;" - pack $w.config.canvas -side right -fill y - - - bool $w.config.f 18 0 "On-chip AHB ROM " CONFIG_AHBROM_ENABLE - hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START - bool $w.config.f 18 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE - bool $w.config.f 18 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 - menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 7 - hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START - - - - focus $w - update_active - global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] - if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} - update idletasks - if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f - - $w.config.canvas configure \ - -width [expr [winfo reqwidth $w.config.f] + 1]\ - -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ - [expr [winfo reqheight $w.config.f] + 1]" - - set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] - set scry [expr [winfo screenh $w] / 2] - set maxy [expr [winfo screenh $w] * 3 / 4] - set canvtotal [expr [winfo reqh $w.config.f] + 2] - if [expr $winy + $canvtotal < $maxy] { - $w.config.canvas configure -height $canvtotal - } else { - $w.config.canvas configure -height [expr $scry - $winy] - } - } - update idletasks - if {[winfo exists $w]} then { - wm maxsize $w [winfo width $w] [winfo screenheight $w] - wm minsize $w [winfo width $w] 100 - - wm deiconify $w -} -} - -proc update_menu18 {} { - global CONFIG_AHBROM_ENABLE - global CONFIG_AHBROM_START - 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} - global CONFIG_AHBROM_PIPE - if {($CONFIG_AHBROM_ENABLE == 1)} then { - configure_entry .menu18.config.f.x2 normal {n l y}} else {configure_entry .menu18.config.f.x2 disabled {y n l}} global CONFIG_AHBRAM_ENABLE - 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}} + if {($CONFIG_AHBRAM_ENABLE == 1)} then {configure_entry .menu17.config.f.x4 normal {x l}} else {configure_entry .menu17.config.f.x4 disabled {x l}} global CONFIG_AHBRAM_START - 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} + if {($CONFIG_AHBRAM_ENABLE == 1)} then {.menu17.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x5.l configure -state normal; } else {.menu17.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x5.l configure -state disabled} } -proc update_define_menu18 {} { +proc update_define_menu17 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_AHBROM_ENABLE @@ -3721,51 +4008,51 @@ proc update_define_menu18 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} } -proc menu19 {w title} { +proc menu18 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 19} + catch {destroy $w; unregister_active 18} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 19]] + set active_menus [lsort -integer [linsert $active_menus end 18]] message $w.m -width 400 -aspect 300 -text \ "Ethernet " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "Ethernet " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu20 .menu20 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 18; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu19 .menu19 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu17 .menu17 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 18; menu17 .menu17 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -3793,16 +4080,16 @@ proc menu19 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 19 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE - bool $w.config.f 19 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + bool $w.config.f 18 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE + bool $w.config.f 18 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA + global tmpvar_30 + minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3840,60 +4127,60 @@ proc menu19 {w title} { } } -proc update_menu19 {} { +proc update_menu18 {} { global CONFIG_GRETH_ENABLE global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { - configure_entry .menu19.config.f.x1 normal {n l y}} else {configure_entry .menu19.config.f.x1 disabled {y n l}} - 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}} + configure_entry .menu18.config.f.x1 normal {n l y}} else {configure_entry .menu18.config.f.x1 disabled {y n l}} + if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then {configure_entry .menu18.config.f.x2 normal {x l}} else {configure_entry .menu18.config.f.x2 disabled {x l}} } -proc update_define_menu19 {} { +proc update_define_menu18 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_GRETH_ENABLE global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } -proc menu20 {w title} { +proc menu19 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 20} + catch {destroy $w; unregister_active 19} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 20]] + set active_menus [lsort -integer [linsert $active_menus end 19]] message $w.m -width 400 -aspect 300 -text \ "UART, timer, I/O port and interrupt controller" -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "UART, timer, I/O port and interrupt controller" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu21 .menu21 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu20 .menu20 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 19; menu18 .menu18 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -3921,31 +4208,31 @@ proc menu20 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 20 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + bool $w.config.f 19 0 "Enable console UART " CONFIG_UART1_ENABLE + global tmpvar_31 + minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 - bool $w.config.f 20 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE - bool $w.config.f 20 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC - int $w.config.f 20 4 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC - bool $w.config.f 20 5 "Enable Timer Unit " CONFIG_GPT_ENABLE - int $w.config.f 20 6 "Number of timers (1 - 7) " CONFIG_GPT_NTIM - int $w.config.f 20 7 "Scaler width (2 - 16) " CONFIG_GPT_SW - int $w.config.f 20 8 "Timer width (2 - 32) " CONFIG_GPT_TW - int $w.config.f 20 9 "Timer unit interrupt " CONFIG_GPT_IRQ - bool $w.config.f 20 10 "Separate interrupts " CONFIG_GPT_SEPIRQ - bool $w.config.f 20 11 "Watchdog enable " CONFIG_GPT_WDOGEN - hex $w.config.f 20 12 "Initial watchdog time-out value " CONFIG_GPT_WDOG - bool $w.config.f 20 13 "Enable generic GPIO port " CONFIG_GRGPIO_ENABLE - int $w.config.f 20 14 "GPIO width " CONFIG_GRGPIO_WIDTH - hex $w.config.f 20 15 "GPIO interrupt mask " CONFIG_GRGPIO_IMASK + bool $w.config.f 19 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE + bool $w.config.f 19 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC + int $w.config.f 19 4 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC + bool $w.config.f 19 5 "Enable Timer Unit " CONFIG_GPT_ENABLE + int $w.config.f 19 6 "Number of timers (1 - 7) " CONFIG_GPT_NTIM + int $w.config.f 19 7 "Scaler width (2 - 16) " CONFIG_GPT_SW + int $w.config.f 19 8 "Timer width (2 - 32) " CONFIG_GPT_TW + int $w.config.f 19 9 "Timer unit interrupt " CONFIG_GPT_IRQ + bool $w.config.f 19 10 "Separate interrupts " CONFIG_GPT_SEPIRQ + bool $w.config.f 19 11 "Watchdog enable " CONFIG_GPT_WDOGEN + hex $w.config.f 19 12 "Initial watchdog time-out value " CONFIG_GPT_WDOG + bool $w.config.f 19 13 "Enable generic GPIO port " CONFIG_GRGPIO_ENABLE + int $w.config.f 19 14 "GPIO width " CONFIG_GRGPIO_WIDTH + hex $w.config.f 19 15 "GPIO interrupt mask " CONFIG_GRGPIO_IMASK @@ -3982,56 +4269,56 @@ proc menu20 {w title} { } } -proc update_menu20 {} { +proc update_menu19 {} { global CONFIG_UART1_ENABLE - if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu20.config.f.x1 normal {x l}} else {configure_entry .menu20.config.f.x1 disabled {x l}} + if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu19.config.f.x1 normal {x l}} else {configure_entry .menu19.config.f.x1 disabled {x l}} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { - configure_entry .menu20.config.f.x3 normal {n l y}} else {configure_entry .menu20.config.f.x3 disabled {y n l}} + configure_entry .menu19.config.f.x3 normal {n l y}} else {configure_entry .menu19.config.f.x3 disabled {y n l}} global CONFIG_IRQ3_NSEC - if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {.menu20.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x4.l configure -state normal; } else {.menu20.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x4.l configure -state disabled} + if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {.menu19.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x4.l configure -state normal; } else {.menu19.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x4.l configure -state disabled} global CONFIG_GPT_ENABLE global CONFIG_GPT_NTIM - if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x6.l configure -state normal; } else {.menu20.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x6.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1)} then {.menu19.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x6.l configure -state normal; } else {.menu19.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x6.l configure -state disabled} global CONFIG_GPT_SW - if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x7.l configure -state normal; } else {.menu20.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x7.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1)} then {.menu19.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x7.l configure -state normal; } else {.menu19.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x7.l configure -state disabled} global CONFIG_GPT_TW - if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x8.l configure -state normal; } else {.menu20.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x8.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1)} then {.menu19.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x8.l configure -state normal; } else {.menu19.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x8.l configure -state disabled} global CONFIG_GPT_IRQ - if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x9.l configure -state normal; } else {.menu20.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x9.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1)} then {.menu19.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x9.l configure -state normal; } else {.menu19.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x9.l configure -state disabled} global CONFIG_GPT_SEPIRQ if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu20.config.f.x10 normal {n l y}} else {configure_entry .menu20.config.f.x10 disabled {y n l}} + configure_entry .menu19.config.f.x10 normal {n l y}} else {configure_entry .menu19.config.f.x10 disabled {y n l}} global CONFIG_GPT_WDOGEN if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu20.config.f.x11 normal {n l y}} else {configure_entry .menu20.config.f.x11 disabled {y n l}} + configure_entry .menu19.config.f.x11 normal {n l y}} else {configure_entry .menu19.config.f.x11 disabled {y n l}} global CONFIG_GPT_WDOG - if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu20.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x12.l configure -state normal; } else {.menu20.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x12.l configure -state disabled} + if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu19.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x12.l configure -state normal; } else {.menu19.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x12.l configure -state disabled} global CONFIG_GRGPIO_ENABLE global CONFIG_GRGPIO_WIDTH - if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu20.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x14.l configure -state normal; } else {.menu20.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x14.l configure -state disabled} + if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu19.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x14.l configure -state normal; } else {.menu19.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x14.l configure -state disabled} global CONFIG_GRGPIO_IMASK - if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu20.config.f.x15.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x15.l configure -state normal; } else {.menu20.config.f.x15.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x15.l configure -state disabled} + if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu19.config.f.x15.x configure -state normal -foreground [ cget .ref -foreground ]; .menu19.config.f.x15.l configure -state normal; } else {.menu19.config.f.x15.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu19.config.f.x15.l configure -state disabled} } -proc update_define_menu20 {} { +proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4063,30 +4350,30 @@ proc update_define_menu20 {} { } -proc menu21 {w title} { +proc menu20 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 21} + catch {destroy $w; unregister_active 20} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 21]] + set active_menus [lsort -integer [linsert $active_menus end 20]] message $w.m -width 400 -aspect 300 -text \ "I2C and SPI " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "I2C and SPI " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; break" - set nextscript "catch {focus $oldFocus}; menu22 .menu22 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; break" + set nextscript "catch {focus $oldFocus}; menu21 .menu21 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu19 .menu19 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4114,8 +4401,8 @@ proc menu21 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 21 0 "Enable I2C master " CONFIG_I2C_ENABLE - submenu $w.config.f 21 1 "SPI controller(s) " 22 + bool $w.config.f 20 0 "Enable I2C master " CONFIG_I2C_ENABLE + submenu $w.config.f 20 1 "SPI controller(s) " 21 @@ -4152,40 +4439,40 @@ proc menu21 {w title} { } } -proc update_menu21 {} { +proc update_menu20 {} { } -proc update_define_menu21 {} { +proc update_define_menu20 {} { update_define_mainmenu global CONFIG_MODULES } -proc menu22 {w title} { +proc menu21 {w title} { set oldFocus [focus] - catch {focus .menu21} - catch {destroy $w; unregister_active 22} + catch {focus .menu20} + catch {destroy $w; unregister_active 21} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 22]] + set active_menus [lsort -integer [linsert $active_menus end 21]] message $w.m -width 400 -aspect 300 -text \ "SPI controller(s) " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "SPI controller(s) " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 22; catch {destroy .menu21}; unregister_active 21; menu23 .menu23 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 21; catch {destroy .menu20}; unregister_active 20; menu22 .menu22 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu20 .menu20 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4213,23 +4500,23 @@ proc menu22 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 22 0 "Enable SPI controller(s) " CONFIG_SPICTRL_ENABLE - int $w.config.f 22 1 "Number of SPI controllers " CONFIG_SPICTRL_NUM - int $w.config.f 22 2 "Slave select lines " CONFIG_SPICTRL_SLVS - int $w.config.f 22 3 "FIFO depth (2^N) " CONFIG_SPICTRL_FIFO - bool $w.config.f 22 4 "Enable slave select registers" CONFIG_SPICTRL_SLVREG - bool $w.config.f 22 5 "Enable automatic slave select" CONFIG_SPICTRL_ASEL - bool $w.config.f 22 6 "Support automated transfers " CONFIG_SPICTRL_AM - bool $w.config.f 22 7 "Support open drain mode " CONFIG_SPICTRL_ODMODE - bool $w.config.f 22 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN - int $w.config.f 22 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN - bool $w.config.f 22 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM - global tmpvar_30 - minimenu $w.config.f 22 11 "Fault-tolerance" tmpvar_30 CONFIG_SPICTRL_NOFT + bool $w.config.f 21 0 "Enable SPI controller(s) " CONFIG_SPICTRL_ENABLE + int $w.config.f 21 1 "Number of SPI controllers " CONFIG_SPICTRL_NUM + int $w.config.f 21 2 "Slave select lines " CONFIG_SPICTRL_SLVS + int $w.config.f 21 3 "FIFO depth (2^N) " CONFIG_SPICTRL_FIFO + bool $w.config.f 21 4 "Enable slave select registers" CONFIG_SPICTRL_SLVREG + bool $w.config.f 21 5 "Enable automatic slave select" CONFIG_SPICTRL_ASEL + bool $w.config.f 21 6 "Support automated transfers " CONFIG_SPICTRL_AM + bool $w.config.f 21 7 "Support open drain mode " CONFIG_SPICTRL_ODMODE + bool $w.config.f 21 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN + int $w.config.f 21 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN + bool $w.config.f 21 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM + global tmpvar_32 + minimenu $w.config.f 21 11 "Fault-tolerance" tmpvar_32 CONFIG_SPICTRL_NOFT menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" - $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_30 -value "None" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_30 -value "Parity-DMR" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_30 -value "TMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_32 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_32 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_32 -value "TMR" -command "update_active" menusplit $w $w.config.f.x11.x.menu 3 @@ -4237,8 +4524,8 @@ proc menu22 {w title} { focus $w update_active global winx; global winy - if {[winfo exists .menu21] == 0} then {menu21 .menu21 "I2C and SPI "} - set winx [expr [winfo x .menu21]+30]; set winy [expr [winfo y .menu21]+30] + if {[winfo exists .menu20] == 0} then {menu20 .menu20 "I2C and SPI "} + set winx [expr [winfo x .menu20]+30]; set winy [expr [winfo y .menu20]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f @@ -4267,39 +4554,39 @@ proc menu22 {w title} { } } -proc update_menu22 {} { +proc update_menu21 {} { global CONFIG_SPICTRL_ENABLE global CONFIG_SPICTRL_NUM - if {($CONFIG_SPICTRL_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} + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu21.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x1.l configure -state normal; } else {.menu21.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x1.l configure -state disabled} global CONFIG_SPICTRL_SLVS - if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu22.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x2.l configure -state normal; } else {.menu22.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x2.l configure -state disabled} + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu21.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x2.l configure -state normal; } else {.menu21.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x2.l configure -state disabled} global CONFIG_SPICTRL_FIFO - if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu22.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x3.l configure -state normal; } else {.menu22.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x3.l configure -state disabled} + if {($CONFIG_SPICTRL_ENABLE == 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} global CONFIG_SPICTRL_SLVREG if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu22.config.f.x4 normal {n l y}} else {configure_entry .menu22.config.f.x4 disabled {y n l}} + configure_entry .menu21.config.f.x4 normal {n l y}} else {configure_entry .menu21.config.f.x4 disabled {y n l}} global CONFIG_SPICTRL_ASEL if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu22.config.f.x5 normal {n l y}} else {configure_entry .menu22.config.f.x5 disabled {y n l}} + configure_entry .menu21.config.f.x5 normal {n l y}} else {configure_entry .menu21.config.f.x5 disabled {y n l}} global CONFIG_SPICTRL_AM if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu22.config.f.x6 normal {n l y}} else {configure_entry .menu22.config.f.x6 disabled {y n l}} + configure_entry .menu21.config.f.x6 normal {n l y}} else {configure_entry .menu21.config.f.x6 disabled {y n l}} global CONFIG_SPICTRL_ODMODE if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu22.config.f.x7 normal {n l y}} else {configure_entry .menu22.config.f.x7 disabled {y n l}} + configure_entry .menu21.config.f.x7 normal {n l y}} else {configure_entry .menu21.config.f.x7 disabled {y n l}} global CONFIG_SPICTRL_TWEN if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu22.config.f.x8 normal {n l y}} else {configure_entry .menu22.config.f.x8 disabled {y n l}} + configure_entry .menu21.config.f.x8 normal {n l y}} else {configure_entry .menu21.config.f.x8 disabled {y n l}} global CONFIG_SPICTRL_MAXWLEN - if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu22.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x9.l configure -state normal; } else {.menu22.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x9.l configure -state disabled} + if {($CONFIG_SPICTRL_ENABLE == 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} global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { - configure_entry .menu22.config.f.x10 normal {n l y}} else {configure_entry .menu22.config.f.x10 disabled {y n l}} - if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then {configure_entry .menu22.config.f.x11 normal {x l}} else {configure_entry .menu22.config.f.x11 disabled {x l}} + configure_entry .menu21.config.f.x10 normal {n l y}} else {configure_entry .menu21.config.f.x10 disabled {y n l}} + if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then {configure_entry .menu21.config.f.x11 normal {x l}} else {configure_entry .menu21.config.f.x11 disabled {x l}} } -proc update_define_menu22 {} { +proc update_define_menu21 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_SPICTRL_ENABLE @@ -4329,40 +4616,40 @@ proc update_define_menu22 {} { global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} - global tmpvar_30 + global tmpvar_32 global CONFIG_SPICTRL_NOFT - if {$tmpvar_30 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + if {$tmpvar_32 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} global CONFIG_SPICTRL_DMRFT - if {$tmpvar_30 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + if {$tmpvar_32 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} global CONFIG_SPICTRL_TMRFT - if {$tmpvar_30 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} + if {$tmpvar_32 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } -proc menu23 {w title} { +proc menu22 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 23} + catch {destroy $w; unregister_active 22} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 23]] + set active_menus [lsort -integer [linsert $active_menus end 22]] message $w.m -width 400 -aspect 300 -text \ "PCI " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "PCI " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu24 .menu24 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu23 .menu23 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4390,33 +4677,33 @@ proc menu23 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 23 0 "PCI interface, master-target " CONFIG_PCI_MASTER_TARGET - bool $w.config.f 23 1 "PCI DMA controller " CONFIG_PCI_MASTER_TARGET_DMA - hex $w.config.f 23 2 "PCI vendor ID" CONFIG_PCI_VENDORID - hex $w.config.f 23 3 "PCI device ID" CONFIG_PCI_DEVICEID - global tmpvar_31 - minimenu $w.config.f 23 4 "PCI FIFO depth" tmpvar_31 CONFIG_PCI_FIFO0 + bool $w.config.f 22 0 "PCI interface, master-target " CONFIG_PCI_MASTER_TARGET + bool $w.config.f 22 1 "PCI DMA controller " CONFIG_PCI_MASTER_TARGET_DMA + hex $w.config.f 22 2 "PCI vendor ID" CONFIG_PCI_VENDORID + hex $w.config.f 22 3 "PCI device ID" CONFIG_PCI_DEVICEID + global tmpvar_33 + minimenu $w.config.f 22 4 "PCI FIFO depth" tmpvar_33 CONFIG_PCI_FIFO0 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"PCI FIFO depth\"" - $w.config.f.x4.x.menu add radiobutton -label "None" -variable tmpvar_31 -value "None" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "128" -variable tmpvar_31 -value "128" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "None" -variable tmpvar_33 -value "None" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_33 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "128" -variable tmpvar_33 -value "128" -command "update_active" menusplit $w $w.config.f.x4.x.menu 6 - hex $w.config.f 23 5 "PCI initiator address (haddr\[31:20\]) " CONFIG_PCI_HADDR - bool $w.config.f 23 6 "PCI arbiter " CONFIG_PCI_ARBITER - bool $w.config.f 23 7 "PCI arbiter APB interface " CONFIG_PCI_ARBITER_APB - int $w.config.f 23 8 "Number of PCI REQ/GNT pairs" CONFIG_PCI_ARBITER_NREQ - bool $w.config.f 23 9 "Enable PCI trace buffer " CONFIG_PCI_TRACE - global tmpvar_32 - minimenu $w.config.f 23 10 "PCI trace buffer depth" tmpvar_32 CONFIG_PCI_TRACE256 + hex $w.config.f 22 5 "PCI initiator address (haddr\[31:20\]) " CONFIG_PCI_HADDR + bool $w.config.f 22 6 "PCI arbiter " CONFIG_PCI_ARBITER + bool $w.config.f 22 7 "PCI arbiter APB interface " CONFIG_PCI_ARBITER_APB + int $w.config.f 22 8 "Number of PCI REQ/GNT pairs" CONFIG_PCI_ARBITER_NREQ + bool $w.config.f 22 9 "Enable PCI trace buffer " CONFIG_PCI_TRACE + global tmpvar_34 + minimenu $w.config.f 22 10 "PCI trace buffer depth" tmpvar_34 CONFIG_PCI_TRACE256 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"PCI trace buffer depth\"" - $w.config.f.x10.x.menu add radiobutton -label "256" -variable tmpvar_32 -value "256" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "512" -variable tmpvar_32 -value "512" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "1024" -variable tmpvar_32 -value "1024" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2048" -variable tmpvar_32 -value "2048" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4096" -variable tmpvar_32 -value "4096" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "256" -variable tmpvar_34 -value "256" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "512" -variable tmpvar_34 -value "512" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1024" -variable tmpvar_34 -value "1024" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2048" -variable tmpvar_34 -value "2048" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4096" -variable tmpvar_34 -value "4096" -command "update_active" menusplit $w $w.config.f.x10.x.menu 5 @@ -4454,34 +4741,34 @@ proc menu23 {w title} { } } -proc update_menu23 {} { +proc update_menu22 {} { global CONFIG_PCI_SIMPLE_TARGET global CONFIG_PCI_ACTEL global CONFIG_PCI_MASTER_TARGET if {($CONFIG_PCI_SIMPLE_TARGET != 1 && $CONFIG_PCI_ACTEL != 1)} then { - configure_entry .menu23.config.f.x0 normal {n l y}} else {configure_entry .menu23.config.f.x0 disabled {y n l}} + configure_entry .menu22.config.f.x0 normal {n l y}} else {configure_entry .menu22.config.f.x0 disabled {y n l}} global CONFIG_PCI_MASTER_TARGET_DMA if {($CONFIG_PCI_MASTER_TARGET == 1)} then { - configure_entry .menu23.config.f.x1 normal {n l y}} else {configure_entry .menu23.config.f.x1 disabled {y n l}} + configure_entry .menu22.config.f.x1 normal {n l y}} else {configure_entry .menu22.config.f.x1 disabled {y n l}} global CONFIG_PCI_VENDORID - if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {.menu23.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x2.l configure -state normal; } else {.menu23.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x2.l configure -state disabled} + if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {.menu22.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x2.l configure -state normal; } else {.menu22.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x2.l configure -state disabled} global CONFIG_PCI_DEVICEID - if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {.menu23.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x3.l configure -state normal; } else {.menu23.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x3.l configure -state disabled} - if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1) && ($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {configure_entry .menu23.config.f.x4 normal {x l}} else {configure_entry .menu23.config.f.x4 disabled {x l}} + if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {.menu22.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x3.l configure -state normal; } else {.menu22.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x3.l configure -state disabled} + if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1) && ($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {configure_entry .menu22.config.f.x4 normal {x l}} else {configure_entry .menu22.config.f.x4 disabled {x l}} global CONFIG_PCI_HADDR - if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1) && ($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {.menu23.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x5.l configure -state normal; } else {.menu23.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x5.l configure -state disabled} + if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1) && ($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {.menu22.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x5.l configure -state normal; } else {.menu22.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x5.l configure -state disabled} global CONFIG_PCI_ARBITER global CONFIG_PCI_ARBITER_APB if {($CONFIG_PCI_ARBITER == 1)} then { - configure_entry .menu23.config.f.x7 normal {n l y}} else {configure_entry .menu23.config.f.x7 disabled {y n l}} + configure_entry .menu22.config.f.x7 normal {n l y}} else {configure_entry .menu22.config.f.x7 disabled {y n l}} global CONFIG_PCI_ARBITER_NREQ - if {($CONFIG_PCI_ARBITER == 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} + if {($CONFIG_PCI_ARBITER == 1)} then {.menu22.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x8.l configure -state normal; } else {.menu22.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x8.l configure -state disabled} global CONFIG_PCI_TRACE - if {($CONFIG_PCI_TRACE == 1)} then {configure_entry .menu23.config.f.x10 normal {x l}} else {configure_entry .menu23.config.f.x10 disabled {x l}} + if {($CONFIG_PCI_TRACE == 1)} then {configure_entry .menu22.config.f.x10 normal {x l}} else {configure_entry .menu22.config.f.x10 disabled {x l}} } -proc update_define_menu23 {} { +proc update_define_menu22 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_PCI_SIMPLE_TARGET @@ -4496,19 +4783,19 @@ proc update_define_menu23 {} { if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_VENDORID "$CONFIG_PCI_VENDORID" 1AC8} global CONFIG_PCI_DEVICEID if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_DEVICEID "$CONFIG_PCI_DEVICEID" 0054} - global tmpvar_31 + global tmpvar_33 global CONFIG_PCI_FIFO0 - if {$tmpvar_31 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} + if {$tmpvar_33 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} global CONFIG_PCI_FIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} + if {$tmpvar_33 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} global CONFIG_PCI_FIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} + if {$tmpvar_33 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} global CONFIG_PCI_FIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} + if {$tmpvar_33 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} global CONFIG_PCI_FIFO64 - if {$tmpvar_31 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} + if {$tmpvar_33 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} global CONFIG_PCI_FIFO128 - if {$tmpvar_31 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} + if {$tmpvar_33 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} global CONFIG_PCI_HADDR if {($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} global CONFIG_PCI_ARBITER @@ -4517,44 +4804,44 @@ proc update_define_menu23 {} { set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB&15]} else {set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB|16]} global CONFIG_PCI_ARBITER_NREQ if {($CONFIG_PCI_ARBITER == 1)} then {validate_int CONFIG_PCI_ARBITER_NREQ "$CONFIG_PCI_ARBITER_NREQ" 4} - global tmpvar_32 + global tmpvar_34 global CONFIG_PCI_TRACE256 - if {$tmpvar_32 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} + if {$tmpvar_34 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} global CONFIG_PCI_TRACE512 - if {$tmpvar_32 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} + if {$tmpvar_34 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} global CONFIG_PCI_TRACE1024 - if {$tmpvar_32 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} + if {$tmpvar_34 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} global CONFIG_PCI_TRACE2048 - if {$tmpvar_32 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} + if {$tmpvar_34 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} global CONFIG_PCI_TRACE4096 - if {$tmpvar_32 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} + if {$tmpvar_34 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} } -proc menu24 {w title} { +proc menu23 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 24} + catch {destroy $w; unregister_active 23} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 24]] + set active_menus [lsort -integer [linsert $active_menus end 23]] message $w.m -width 400 -aspect 300 -text \ "VGA interface" -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "VGA interface" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu25 .menu25 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu24 .menu24 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4582,7 +4869,7 @@ proc menu24 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 24 0 "SVGA graphical frame buffer " CONFIG_SVGA_ENABLE + bool $w.config.f 23 0 "SVGA graphical frame buffer " CONFIG_SVGA_ENABLE @@ -4619,40 +4906,40 @@ proc menu24 {w title} { } } -proc update_menu24 {} { +proc update_menu23 {} { } -proc update_define_menu24 {} { +proc update_define_menu23 {} { update_define_mainmenu global CONFIG_MODULES } -proc menu25 {w title} { +proc menu24 {w title} { set oldFocus [focus] catch {focus .menu13} - catch {destroy $w; unregister_active 25} + catch {destroy $w; unregister_active 24} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 25]] + set active_menus [lsort -integer [linsert $active_menus end 24]] message $w.m -width 400 -aspect 300 -text \ "System ACE and System Monitor" -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "System ACE and System Monitor" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 25; catch {destroy .menu13}; unregister_active 13; menu26 .menu26 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 24; catch {destroy .menu13}; unregister_active 13; menu25 .menu25 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4680,8 +4967,8 @@ proc menu25 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 25 0 "Enable System ACE I/F Controller " CONFIG_GRACECTRL - bool $w.config.f 25 1 "Enable System Monitor " CONFIG_GRSYSMON + bool $w.config.f 24 0 "Enable System ACE I/F Controller " CONFIG_GRACECTRL + bool $w.config.f 24 1 "Enable System Monitor " CONFIG_GRSYSMON @@ -4718,41 +5005,41 @@ proc menu25 {w title} { } } -proc update_menu25 {} { +proc update_menu24 {} { } -proc update_define_menu25 {} { +proc update_define_menu24 {} { update_define_mainmenu global CONFIG_MODULES } -menu_option menu26 26 "VHDL Debugging " -proc menu26 {w title} { +menu_option menu25 25 "VHDL Debugging " +proc menu25 {w title} { set oldFocus [focus] - catch {destroy $w; unregister_active 26} + catch {destroy $w; unregister_active 25} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 26]] + set active_menus [lsort -integer [linsert $active_menus end 25]] message $w.m -width 400 -aspect 300 -text \ "VHDL Debugging " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "VHDL Debugging " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 26; break" - set nextscript "catch {focus $oldFocus}; menu27 .menu27 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; break" + set nextscript "catch {focus $oldFocus}; menu26 .menu26 \"$title\"" frame $w.f button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 26" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript $w.f.next configure -state disabled bind all "puts \"no more menus\" " button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 26; menu25 .menu25 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 26; menu25 .menu25 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4780,7 +5067,7 @@ proc menu26 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 26 0 "Accelerated UART tracing " CONFIG_DEBUG_UART + bool $w.config.f 25 0 "Accelerated UART tracing " CONFIG_DEBUG_UART @@ -4816,11 +5103,11 @@ proc menu26 {w title} { } } -proc update_menu26 {} { +proc update_menu25 {} { } -proc update_define_menu26 {} { +proc update_define_menu25 {} { update_define_mainmenu global CONFIG_MODULES } @@ -4866,7 +5153,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4876,6 +5164,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4900,6 +5190,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4912,14 +5203,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4932,28 +5228,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 set CONFIG_FPU_GRFPU_SH 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4963,17 +5259,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4985,12 +5281,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -5000,10 +5296,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -5014,7 +5310,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -5026,26 +5322,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -5053,25 +5351,42 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 +set CONFIG_LEON3FT_EN 0 +set tmpvar_26 "(not set)" +set CONFIG_IUFT_NONE 0 +set CONFIG_IUFT_PAR 0 +set CONFIG_IUFT_DMR 0 +set CONFIG_IUFT_BCH 0 +set CONFIG_IUFT_TMR 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 +set CONFIG_RF_ERRINJ 0 +set CONFIG_CACHE_FT_EN 0 +set CONFIG_CACHE_ERRINJ 0 +set CONFIG_LEON3_NETLIST 0 set CONFIG_IU_DISAS 0 set CONFIG_IU_DISAS_NET 0 set CONFIG_DEBUG_PC32 0 set CONFIG_AHB_DEFMST 0 set CONFIG_AHB_RROBIN 0 set CONFIG_AHB_SPLIT 0 +set CONFIG_AHB_FPNPEN 0 set CONFIG_AHB_IOADDR FFF set CONFIG_APB_HADDR 800 set CONFIG_AHB_MON 0 @@ -5081,7 +5396,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -5103,7 +5418,6 @@ set CONFIG_MCTRL_SDRAM_BUS64 0 set CONFIG_MCTRL_SDRAM_INVCLK 0 set CONFIG_MCTRL_PAGE 0 set CONFIG_MCTRL_PROGPAGE 0 -set CONFIG_MIG_DDR2 0 set CONFIG_DDR2SP 0 set CONFIG_DDR2SP_INIT 0 set CONFIG_DDR2SP_NOSYNC 0 @@ -5132,7 +5446,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -5143,14 +5457,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5183,7 +5497,7 @@ set CONFIG_SPICTRL_ODMODE 0 set CONFIG_SPICTRL_TWEN 0 set CONFIG_SPICTRL_MAXWLEN 0 set CONFIG_SPICTRL_SYNCRAM 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_SPICTRL_NOFT 0 set CONFIG_SPICTRL_DMRFT 0 set CONFIG_SPICTRL_TMRFT 0 @@ -5191,7 +5505,7 @@ set CONFIG_PCI_MASTER_TARGET 0 set CONFIG_PCI_MASTER_TARGET_DMA 0 set CONFIG_PCI_VENDORID 1AC8 set CONFIG_PCI_DEVICEID 0054 -set tmpvar_31 "(not set)" +set tmpvar_33 "(not set)" set CONFIG_PCI_FIFO0 0 set CONFIG_PCI_FIFO8 0 set CONFIG_PCI_FIFO16 0 @@ -5203,7 +5517,7 @@ set CONFIG_PCI_ARBITER 0 set CONFIG_PCI_ARBITER_APB 0 set CONFIG_PCI_ARBITER_NREQ 4 set CONFIG_PCI_TRACE 0 -set tmpvar_32 "(not set)" +set tmpvar_34 "(not set)" set CONFIG_PCI_TRACE256 0 set CONFIG_PCI_TRACE512 0 set CONFIG_PCI_TRACE1024 0 @@ -5216,18 +5530,7 @@ set CONFIG_DEBUG_UART 0 set CONFIG_HAS_SHARED_GRFPU 4 set CONFIG_SYN_ARTISAN 4 set CONFIG_PCI_ENABLE 4 -set CONFIG_LEON3FT_PRESENT 4 -set CONFIG_LEON3FT_EN 4 -set CONFIG_IUFT_NONE 4 -set CONFIG_IUFT_PAR 4 -set CONFIG_IUFT_DMR 4 -set CONFIG_IUFT_BCH 4 -set CONFIG_IUFT_TMR 4 -set CONFIG_FPUFT_EN 4 -set CONFIG_RF_ERRINJ 4 -set CONFIG_CACHE_FT_EN 4 -set CONFIG_CACHE_ERRINJ 4 -set CONFIG_LEON3_NETLIST 4 +set CONFIG_MIG_DDR2 4 set CONFIG_PCI_SIMPLE_TARGET 4 set CONFIG_PCI_ACTEL 4 set CONFIG_MODULES 4 @@ -5284,7 +5587,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5294,6 +5598,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5332,6 +5638,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -5344,9 +5651,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5360,230 +5668,398 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} + global CONFIG_LEON3FT_EN + if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } + global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} + global CONFIG_RF_ERRINJ + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } + global CONFIG_CACHE_FT_EN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_CACHE_FT_EN $CONFIG_CACHE_FT_EN [list $notmod] 2 } + global CONFIG_CACHE_ERRINJ + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_int $cfg $autocfg CONFIG_CACHE_ERRINJ $CONFIG_CACHE_ERRINJ $notmod } + global CONFIG_LEON3_NETLIST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3_NETLIST $CONFIG_LEON3_NETLIST [list $notmod] 2 } if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "VHDL debug settings "} global CONFIG_IU_DISAS if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_DISAS $CONFIG_IU_DISAS [list $notmod] 2 } @@ -5598,6 +6074,8 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_AHB_RROBIN $CONFIG_AHB_RROBIN [list $notmod] 2 global CONFIG_AHB_SPLIT write_tristate $cfg $autocfg CONFIG_AHB_SPLIT $CONFIG_AHB_SPLIT [list $notmod] 2 + global CONFIG_AHB_FPNPEN + write_tristate $cfg $autocfg CONFIG_AHB_FPNPEN $CONFIG_AHB_FPNPEN [list $notmod] 2 global CONFIG_AHB_IOADDR write_hex $cfg $autocfg CONFIG_AHB_IOADDR $CONFIG_AHB_IOADDR $notmod global CONFIG_APB_HADDR @@ -5618,13 +6096,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5661,54 +6139,52 @@ proc writeconfig {file1 file2} { if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_PAGE $CONFIG_MCTRL_PAGE [list $notmod] 2 } global CONFIG_MCTRL_PROGPAGE 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 } - write_comment $cfg $autocfg "Xilinx MIG DDR2 controller " - global CONFIG_MIG_DDR2 - write_tristate $cfg $autocfg CONFIG_MIG_DDR2 $CONFIG_MIG_DDR2 [list $notmod] 2 write_comment $cfg $autocfg "DDR2 SDRAM controller " global CONFIG_DDR2SP - write_tristate $cfg $autocfg CONFIG_DDR2SP $CONFIG_DDR2SP [list $notmod] 2 + global CONFIG_MIG_DDR2 + if {($CONFIG_MIG_DDR2 != 1)} then {write_tristate $cfg $autocfg CONFIG_DDR2SP $CONFIG_DDR2SP [list $notmod] 2 } global CONFIG_DDR2SP_INIT - if {($CONFIG_DDR2SP == 1)} then {write_tristate $cfg $autocfg CONFIG_DDR2SP_INIT $CONFIG_DDR2SP_INIT [list $notmod] 2 } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_tristate $cfg $autocfg CONFIG_DDR2SP_INIT $CONFIG_DDR2SP_INIT [list $notmod] 2 } global CONFIG_DDR2SP_NOSYNC - if {($CONFIG_DDR2SP == 1)} then {write_tristate $cfg $autocfg CONFIG_DDR2SP_NOSYNC $CONFIG_DDR2SP_NOSYNC [list $notmod] 2 } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_tristate $cfg $autocfg CONFIG_DDR2SP_NOSYNC $CONFIG_DDR2SP_NOSYNC [list $notmod] 2 } global CONFIG_DDR2SP_FREQ - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_NOSYNC == 0)} then {write_int $cfg $autocfg CONFIG_DDR2SP_FREQ $CONFIG_DDR2SP_FREQ $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_NOSYNC == 0)} then {write_int $cfg $autocfg CONFIG_DDR2SP_FREQ $CONFIG_DDR2SP_FREQ $notmod } global CONFIG_DDR2SP_TRFC - if {($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_TRFC $CONFIG_DDR2SP_TRFC $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_TRFC $CONFIG_DDR2SP_TRFC $notmod } global CONFIG_DDR2SP_COL - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_INIT == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_COL $CONFIG_DDR2SP_COL $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_INIT == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_COL $CONFIG_DDR2SP_COL $notmod } global CONFIG_DDR2SP_MBYTE - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_INIT == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_MBYTE $CONFIG_DDR2SP_MBYTE $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_INIT == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_MBYTE $CONFIG_DDR2SP_MBYTE $notmod } global CONFIG_DDR2SP_DATAWIDTH - if {($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DATAWIDTH $CONFIG_DDR2SP_DATAWIDTH $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DATAWIDTH $CONFIG_DDR2SP_DATAWIDTH $notmod } global CONFIG_DDR2SP_FTEN - if {($CONFIG_DDR2SP == 1)} then {write_tristate $cfg $autocfg CONFIG_DDR2SP_FTEN $CONFIG_DDR2SP_FTEN [list $notmod] 2 } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_tristate $cfg $autocfg CONFIG_DDR2SP_FTEN $CONFIG_DDR2SP_FTEN [list $notmod] 2 } global CONFIG_DDR2SP_FTWIDTH - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_FTWIDTH $CONFIG_DDR2SP_FTWIDTH $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_FTWIDTH $CONFIG_DDR2SP_FTWIDTH $notmod } global CONFIG_DDR2SP_DELAY0 - if {($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY0 $CONFIG_DDR2SP_DELAY0 $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY0 $CONFIG_DDR2SP_DELAY0 $notmod } global CONFIG_DDR2SP_DELAY1 - if {($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY1 $CONFIG_DDR2SP_DELAY1 $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY1 $CONFIG_DDR2SP_DELAY1 $notmod } global CONFIG_DDR2SP_DELAY2 - if {($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY2 $CONFIG_DDR2SP_DELAY2 $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY2 $CONFIG_DDR2SP_DELAY2 $notmod } global CONFIG_DDR2SP_DELAY3 - if {($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY3 $CONFIG_DDR2SP_DELAY3 $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY3 $CONFIG_DDR2SP_DELAY3 $notmod } global CONFIG_DDR2SP_DELAY4 - if {($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY4 $CONFIG_DDR2SP_DELAY4 $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY4 $CONFIG_DDR2SP_DELAY4 $notmod } global CONFIG_DDR2SP_DELAY5 - if {($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY5 $CONFIG_DDR2SP_DELAY5 $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY5 $CONFIG_DDR2SP_DELAY5 $notmod } global CONFIG_DDR2SP_DELAY6 - if {($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY6 $CONFIG_DDR2SP_DELAY6 $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY6 $CONFIG_DDR2SP_DELAY6 $notmod } global CONFIG_DDR2SP_DELAY7 - if {($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY7 $CONFIG_DDR2SP_DELAY7 $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_DELAY7 $CONFIG_DDR2SP_DELAY7 $notmod } global CONFIG_DDR2SP_CBDELAY0 - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_CBDELAY0 $CONFIG_DDR2SP_CBDELAY0 $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_CBDELAY0 $CONFIG_DDR2SP_CBDELAY0 $notmod } global CONFIG_DDR2SP_CBDELAY1 - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_CBDELAY1 $CONFIG_DDR2SP_CBDELAY1 $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_CBDELAY1 $CONFIG_DDR2SP_CBDELAY1 $notmod } global CONFIG_DDR2SP_CBDELAY2 - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_CBDELAY2 $CONFIG_DDR2SP_CBDELAY2 $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_CBDELAY2 $CONFIG_DDR2SP_CBDELAY2 $notmod } global CONFIG_DDR2SP_CBDELAY3 - if {($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_CBDELAY3 $CONFIG_DDR2SP_CBDELAY3 $notmod } + if {($CONFIG_MIG_DDR2 != 1) && ($CONFIG_DDR2SP == 1) && ($CONFIG_DDR2SP_FTEN == 1)} then {write_int $cfg $autocfg CONFIG_DDR2SP_CBDELAY3 $CONFIG_DDR2SP_CBDELAY3 $notmod } global CONFIG_AHBSTAT_ENABLE write_tristate $cfg $autocfg CONFIG_AHBSTAT_ENABLE $CONFIG_AHBSTAT_ENABLE [list $notmod] 2 global CONFIG_AHBSTAT_NFTSLV @@ -5722,38 +6198,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UART, timer, I/O port and interrupt controller" global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5808,11 +6284,11 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } - global tmpvar_30 + global tmpvar_32 if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { - if { $tmpvar_30 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } - if { $tmpvar_30 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } - if { $tmpvar_30 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} + if { $tmpvar_32 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "PCI " global CONFIG_PCI_MASTER_TARGET global CONFIG_PCI_SIMPLE_TARGET @@ -5824,14 +6300,14 @@ proc writeconfig {file1 file2} { if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {write_hex $cfg $autocfg CONFIG_PCI_VENDORID $CONFIG_PCI_VENDORID $notmod } global CONFIG_PCI_DEVICEID if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {write_hex $cfg $autocfg CONFIG_PCI_DEVICEID $CONFIG_PCI_DEVICEID $notmod } - global tmpvar_31 + global tmpvar_33 if {($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1) && ($CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then { - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 }} + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 }} global CONFIG_PCI_HADDR if {($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 } global CONFIG_PCI_ARBITER @@ -5842,13 +6318,13 @@ proc writeconfig {file1 file2} { if {($CONFIG_PCI_ARBITER == 1)} then {write_int $cfg $autocfg CONFIG_PCI_ARBITER_NREQ $CONFIG_PCI_ARBITER_NREQ $notmod } global CONFIG_PCI_TRACE write_tristate $cfg $autocfg CONFIG_PCI_TRACE $CONFIG_PCI_TRACE [list $notmod] 2 - global tmpvar_32 + global tmpvar_34 if {($CONFIG_PCI_TRACE == 1)} then { - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 }} + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 }} write_comment $cfg $autocfg "VGA interface" global CONFIG_SVGA_ENABLE write_tristate $cfg $autocfg CONFIG_SVGA_ENABLE $CONFIG_SVGA_ENABLE [list $notmod] 2 @@ -5901,7 +6377,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5911,6 +6388,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5929,8 +6408,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -6013,11 +6497,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -6033,6 +6519,15 @@ proc clear_choices { } { global CONFIG_DSU_ATRACESZ4; set CONFIG_DSU_ATRACESZ4 0 global CONFIG_DSU_ATRACESZ8; set CONFIG_DSU_ATRACESZ8 0 global CONFIG_DSU_ATRACESZ16; set CONFIG_DSU_ATRACESZ16 0 + global CONFIG_IUFT_NONE; set CONFIG_IUFT_NONE 0 + global CONFIG_IUFT_PAR; set CONFIG_IUFT_PAR 0 + global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 + global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 + global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -6146,8 +6641,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -6166,6 +6663,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -6206,346 +6707,384 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } global tmpvar_26 - set tmpvar_26 "2" + set tmpvar_26 "None" + global CONFIG_IUFT_NONE + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } + global CONFIG_IUFT_PAR + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + global CONFIG_IUFT_DMR + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + global CONFIG_IUFT_BCH + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } + global CONFIG_IUFT_TMR + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } - global tmpvar_30 - set tmpvar_30 "None" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } + global tmpvar_32 + set tmpvar_32 "None" global CONFIG_SPICTRL_NOFT - if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_30 "None" } + if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_32 "None" } global CONFIG_SPICTRL_DMRFT - if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_30 "Parity-DMR" } + if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_32 "Parity-DMR" } global CONFIG_SPICTRL_TMRFT - if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_30 "TMR" } - global tmpvar_31 - set tmpvar_31 "8" + if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_32 "TMR" } + global tmpvar_33 + set tmpvar_33 "8" global CONFIG_PCI_FIFO0 - if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_31 "None" } + if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_33 "None" } global CONFIG_PCI_FIFO8 - if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_31 "8" } + if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_33 "8" } global CONFIG_PCI_FIFO16 - if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_31 "16" } + if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_33 "16" } global CONFIG_PCI_FIFO32 - if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_31 "32" } + if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_33 "32" } global CONFIG_PCI_FIFO64 - if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_31 "64" } + if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_33 "64" } global CONFIG_PCI_FIFO128 - if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_31 "128" } - global tmpvar_32 - set tmpvar_32 "256" + if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_33 "128" } + global tmpvar_34 + set tmpvar_34 "256" global CONFIG_PCI_TRACE256 - if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_32 "256" } + if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_34 "256" } global CONFIG_PCI_TRACE512 - if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_32 "512" } + if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_34 "512" } global CONFIG_PCI_TRACE1024 - if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_32 "1024" } + if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_34 "1024" } global CONFIG_PCI_TRACE2048 - if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_32 "2048" } + if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_34 "2048" } global CONFIG_PCI_TRACE4096 - if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_32 "4096" } + if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_34 "4096" } } diff --git a/designs/leon3-xilinx-ml510/leon3mp.vhd b/designs/leon3-xilinx-ml510/leon3mp.vhd index 38c62245..90f7a7ef 100644 --- a/designs/leon3-xilinx-ml510/leon3mp.vhd +++ b/designs/leon3-xilinx-ml510/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2011, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -22,6 +22,7 @@ ------------------------------------------------------------------------------ + library ieee; use ieee.std_logic_1164.all; library grlib, techmap; @@ -46,7 +47,6 @@ library esa; use esa.memoryctrl.all; use esa.pcicomp.all; use work.config.all; -use work.ml510.all; -- pragma translate_off library unisim; @@ -233,139 +233,6 @@ end; architecture rtl of leon3mp is - component mig_36_1 - generic( - BANK_WIDTH : integer := 2; - -- # of memory bank addr bits. - CKE_WIDTH : integer := 1; - -- # of memory clock enable outputs. - CLK_WIDTH : integer := 1; - -- # of clock outputs. - COL_WIDTH : integer := 10; - -- # of memory column bits. - CS_NUM : integer := 1; - -- # of separate memory chip selects. - CS_WIDTH : integer := 1; - -- # of total memory chip selects. - CS_BITS : integer := 0; - -- set to log2(CS_NUM) (rounded up). - DM_WIDTH : integer := 9; - -- # of data mask bits. - DQ_WIDTH : integer := 72; - -- # of data width. - DQ_PER_DQS : integer := 8; - -- # of DQ data bits per strobe. - DQS_WIDTH : integer := 9; - -- # of DQS strobes. - DQ_BITS : integer := 7; - -- set to log2(DQS_WIDTH*DQ_PER_DQS). - DQS_BITS : integer := 4; - -- set to log2(DQS_WIDTH). - ODT_WIDTH : integer := 1; - -- # of memory on-die term enables. - ROW_WIDTH : integer := 14; - -- # of memory row and # of addr bits. - ADDITIVE_LAT : integer := 0; - -- additive write latency. - BURST_LEN : integer := 4; - -- burst length (in double words). - BURST_TYPE : integer := 0; - -- burst type (=0 seq; =1 interleaved). - CAS_LAT : integer := 3; - -- CAS latency. - ECC_ENABLE : integer := 0; - -- enable ECC (=1 enable). - APPDATA_WIDTH : integer := 144; - -- # of usr read/write data bus bits. - MULTI_BANK_EN : integer := 1; - -- Keeps multiple banks open. (= 1 enable). - TWO_T_TIME_EN : integer := 0; - -- 2t timing for unbuffered dimms. - ODT_TYPE : integer := 1; - -- ODT (=0(none),=1(75),=2(150),=3(50)). - REDUCE_DRV : integer := 0; - -- reduced strength mem I/O (=1 yes). - REG_ENABLE : integer := 1; - -- registered addr/ctrl (=1 yes). - TREFI_NS : integer := 7800; - -- auto refresh interval (ns). - TRAS : integer := 40000; - -- active->precharge delay. - TRCD : integer := 15000; - -- active->read/write delay. - TRFC : integer := 105000; - -- refresh->refresh, refresh->active delay. - TRP : integer := 15000; - -- precharge->command delay. - TRTP : integer := 7500; - -- read->precharge delay. - TWR : integer := 15000; - -- used to determine write->precharge. - TWTR : integer := 10000; - -- write->read delay. - HIGH_PERFORMANCE_MODE : boolean := TRUE; - -- # = TRUE, the IODELAY performance mode is set - -- to high. - -- # = FALSE, the IODELAY performance mode is set - -- to low. - SIM_ONLY : integer := 0; - -- = 1 to skip SDRAM power up delay. - DEBUG_EN : integer := 0; - -- Enable debug signals/controls. - -- When this parameter is changed from 0 to 1, - -- make sure to uncomment the coregen commands - -- in ise_flow.bat or create_ise.bat files in - -- par folder. - CLK_PERIOD : integer := 5000; - -- Core/Memory clock period (in ps). - DLL_FREQ_MODE : string := "HIGH"; - -- DCM Frequency range. - CLK_TYPE : string := "SINGLE_ENDED"; - -- # = "DIFFERENTIAL " ->; Differential input clocks , - -- # = "SINGLE_ENDED" -> Single ended input clocks. - NOCLK200 : boolean := FALSE; - -- clk200 enable and disable - RST_ACT_LOW : integer := 1 - -- =1 for active low reset, =0 for active high. - ); - port( - ddr2_dq : inout std_logic_vector((DQ_WIDTH-1) downto 0); - ddr2_a : out std_logic_vector((ROW_WIDTH-1) downto 0); - ddr2_ba : out std_logic_vector((BANK_WIDTH-1) downto 0); - ddr2_ras_n : out std_logic; - ddr2_cas_n : out std_logic; - ddr2_we_n : out std_logic; - ddr2_cs_n : out std_logic_vector((CS_WIDTH-1) downto 0); - ddr2_odt : out std_logic_vector((ODT_WIDTH-1) downto 0); - ddr2_cke : out std_logic_vector((CKE_WIDTH-1) downto 0); - ddr2_reset_n : out std_logic; - ddr2_dm : out std_logic_vector((DM_WIDTH-1) downto 0); - sys_clk : in std_logic; - idly_clk_200 : in std_logic; - sys_rst_n : in std_logic; - phy_init_done : out std_logic; - rst0_tb : out std_logic; - clk0_tb : out std_logic; - app_wdf_afull : out std_logic; - app_af_afull : out std_logic; - rd_data_valid : out std_logic; - app_wdf_wren : in std_logic; - app_af_wren : in std_logic; - app_af_addr : in std_logic_vector(30 downto 0); - app_af_cmd : in std_logic_vector(2 downto 0); - rd_data_fifo_out : out std_logic_vector((APPDATA_WIDTH-1) downto 0); - app_wdf_data : in std_logic_vector((APPDATA_WIDTH-1) downto 0); - app_wdf_mask_data : in std_logic_vector((APPDATA_WIDTH/8-1) downto 0); - ddr2_dqs : inout std_logic_vector((DQS_WIDTH-1) downto 0); - ddr2_dqs_n : inout std_logic_vector((DQS_WIDTH-1) downto 0); - ddr2_ck : out std_logic_vector((CLK_WIDTH-1) downto 0); - ddr2_ck_n : out std_logic_vector((CLK_WIDTH-1) downto 0); - clk100 : out std_ulogic; - clkdiv : out std_ulogic - ); - -end component; - component svga2ch7301c generic ( tech : integer := 0; @@ -506,10 +373,6 @@ signal pcii : pci_in_type; signal pcio : pci_out_type; signal clkma, clkmb, clkmc : std_ulogic; - -- Used for connecting input/output signals to the DDR3 controller - signal migi : mig_app_in_type; - signal migo : mig_app_out_type; - signal clk0_tb, rst0_tb, rst0_tbn : std_ulogic; signal phy_init_done : std_ulogic; -- Logan signals @@ -606,6 +469,10 @@ begin port map (rst, clkm, clklock, rstn, rstraw); clklock <= lock0 and lock1 and cgo.clklock and cgo3.clklock; + clk_pad : clkpad generic map (tech => padtech, arch => 2, level => cmos, voltage => x25v) + port map (user_clksys, lclk); + + ---------------------------------------------------------------------- --- AHB CONTROLLER -------------------------------------------------- ---------------------------------------------------------------------- @@ -728,70 +595,11 @@ begin flash_d_pads : iopadvv generic map (tech => padtech, width => 16) port map (flash_d, memo.data(31 downto 16), memo.vbdrive(31 downto 16), memi.data(31 downto 16)); - - migsp0 : if (CFG_MIG_DDR2 = 1) generate - - ahb2mig0 : entity work.ahb2mig_ml510 - generic map ( hindex => 0, haddr => 16#400#, hmask => 16#E00#, - MHz => 400, Mbyte => 512, nosync => 0) --boolean'pos(CFG_MIG_CLK4=12)) --CFG_CLKDIV/12) - port map ( - rst_ahb => rstn, rst_ddr => rst0_tbn, clk_ahb => clkm, clk_ddr => clk0_tb, - ahbsi => ahbsi, ahbso => ahbso(0), migi => migi, migo => migo); - - BUFGCLK200 : BUFG port map (I => clk_200, O => clkddr); - - migv5 : mig_36_1 --- generic map (SIM_BYPASS_INIT_CAL => "FAST", CLKOUT_DIVIDE4 => CFG_MIG_CLK4) - generic map (NOCLK200 => true, SIM_ONLY => 1) - port map( -- sys_clk_p, sys_clk_n, --- clk_ref_p, clk_ref_n, - ddr2_dq => dimm0_ddr2_dq(DQ_WIDTH-1 downto 0), - ddr2_a => dimm0_ddr2_a(ROW_WIDTH-1 downto 0), - ddr2_ba => dimm0_ddr2_ba(1 downto 0), ddr2_ras_n => dimm0_ddr2_ras_b, - ddr2_cas_n => dimm0_ddr2_cas_b, ddr2_we_n => dimm0_ddr2_we_b, - ddr2_cs_n => dimm0_ddr2_s_b(0 downto 0), ddr2_odt => dimm0_ddr2_odt(0 downto 0), - ddr2_cke => dimm0_ddr2_cke(0 downto 0), - ddr2_dm => dimm0_ddr2_dqm(DM_WIDTH-1 downto 0), - ddr2_reset_n => dimm0_ddr2_reset_n, - sys_clk => user_clksys, idly_clk_200 => clkddr, sys_rst_n => rstraw, - phy_init_done => phy_init_done, - rst0_tb => rst0_tb, clk0_tb => clk0_tb, - app_wdf_afull => migo.app_wdf_afull, - app_af_afull => migo.app_af_afull, - rd_data_valid => migo.app_rd_data_valid, - app_wdf_wren => migi.app_wdf_wren, - app_af_wren => migi.app_en, app_af_addr => migi.app_addr, - app_af_cmd => migi.app_cmd, - rd_data_fifo_out => migo.app_rd_data, app_wdf_data => migi.app_wdf_data, - app_wdf_mask_data => migi.app_wdf_mask, - ddr2_dqs => dimm0_ddr2_dqs_p(DQS_WIDTH-1 downto 0), - ddr2_dqs_n => dimm0_ddr2_dqs_n(DQS_WIDTH-1 downto 0), - ddr2_ck => ddr0_clkv((CK_WIDTH-1) downto 0), - ddr2_ck_n => ddr0_clkbv((CK_WIDTH-1) downto 0), - clk100 => lclk - ); - - dimm0_ddr2_pll_clkin_p <= ddr0_clkv(0); - dimm0_ddr2_pll_clkin_n <= ddr0_clkbv(0); - lock0 <= phy_init_done; - lock1 <= phy_init_done; - -- Tri-state unused data strobe - xtra : if DQS_WIDTH = 8 generate - dimm0_dqsp_notused8_pad : iopad generic map (tech => padtech, level => SSTL18_II) - port map (dimm0_ddr2_dqs_p(8), gnd(0), vcc(0), open); - dimm0_dqsn_notused8_pad : iopad generic map (tech => padtech, level => SSTL18_II) - port map (dimm0_ddr2_dqs_n(8), gnd(0), vcc(0), open); - end generate; - end generate; dbg_led0_pad : outpad generic map (tech => padtech, level => cmos, voltage => x33v) port map (dbg_led(3), phy_init_done); - nomigsp0 : if (CFG_MIG_DDR2 = 0) generate - clk_pad : clkpad generic map (tech => padtech, arch => 2, level => cmos, voltage => x25v) - port map (user_clksys, lclk); - end generate; - clkm <= clkma; clkma <= clkmb; clkmb <= clkmc; + clkm <= clkma; clkma <= clkmb; clkmb <= clkmc; ddrsp0 : if (CFG_DDR2SP /= 0) generate diff --git a/designs/leon3-xilinx-ml510/leon3mp_mig.ucf b/designs/leon3-xilinx-ml510/leon3mp_mig.ucf deleted file mode 100644 index 679c69a3..00000000 --- a/designs/leon3-xilinx-ml510/leon3mp_mig.ucf +++ /dev/null @@ -1,1286 +0,0 @@ -///////////////////////////////////////////////////// -// FPGA reset -///////////////////////////////////////////////////// - -NET "FPGA_CPU_RESET_B" LOC ="J15"; -NET "FPGA_CPU_RESET_B" PULLUP; -NET "FPGA_CPU_RESET_B" TIG; - -///////////////////////////////////////////////////// -// Board clocks -///////////////////////////////////////////////////// -# Main clock -#NET "USER_CLKSYS" period = 10.000; -NET "USER_CLKSYS" LOC ="L29"; - -# User supplied clock -#NET "USER_CLK2" LOC ="K29"; - -# -#NET "USER_SMA_CLK_P" LOC ="K30"; -#NET "USER_SMA_CLK_N" LOC ="L30"; - -# -#NET "SATACLK_QO_P" LOC ="F4"; -#NET "SATACLK_QO_N" LOC ="F3"; - -# -#NET "LVDS_CLKEXT_P_C" LOC ="V4"; -#NET "LVDS_CLKEXT_N_C" LOC ="V3"; - -# System ACE clock -NET "SYSACE_FPGA_CLK" LOC ="L17"; -NET "SYSACE_FPGA_CLK" period = 29.000; - -///////////////////////////////////////////////////// -// Design clocks -///////////////////////////////////////////////////// - -NET "clkm" TNM_NET = "clkm"; -NET "clk0_tb" TNM_NET = "clk0_tb"; - -NET "pciclk" TNM_NET="pciclk"; -TIMESPEC "TS_clkm_pciclk" = FROM "clkm" TO "pciclk" TIG; -TIMESPEC "TS_pciclk_clkm" = FROM "pciclk" TO "clkm" TIG; -TIMESPEC "TS_clk0_tb_clkm" = FROM "clk0_tb" TO "clkm" TIG; -TIMESPEC "TS_clkm_clk0_tb" = FROM "clkm" TO "clk0_tb" TIG; -NET "*/phy_init_done" TIG; - -# PCI clock feedback. PCI_P_CLK5_R is generated by FPGA -# and PCI_P_CLK5 is the feedback. -NET "PCI_P_CLK5" period = 30.000; - -///////////////////////////////////////////////////// -// Delays -///////////////////////////////////////////////////// - -OFFSET = OUT : 11.000 : AFTER PCI_P_CLK5; -OFFSET = IN : 7.000 : BEFORE PCI_P_CLK5; - -///////////////////////////////////////////////////// -// VGA clocks -///////////////////////////////////////////////////// - -NET "clkvga" TNM_NET = "clkvga" | PERIOD = 15.385; -NET "clk25" TNM_NET = "clk25" | PERIOD = 40.000; -NET "clk40" TNM_NET = "clk40" | PERIOD = 25.000; -NET "clk65" TNM_NET = "clk65" | PERIOD = 15.385; -TIMESPEC "TSPLB_TFT25" = FROM "clkm" TO "clk25" TIG; -TIMESPEC "TSPLB_TFT40" = FROM "clkm" TO "clk40" TIG; -TIMESPEC "TSPLB_TFT65" = FROM "clkm" TO "clk65" TIG; -TIMESPEC "TSTFT25_PLB" = FROM "clk25" TO "clkm" TIG; -TIMESPEC "TSTFT25_TFT40" = FROM "clk25" TO "clk40" TIG; -TIMESPEC "TSTFT25_TFT65" = FROM "clk25" TO "clk65" TIG; -TIMESPEC "TSTFT40_PLB" = FROM "clk40" TO "clkm" TIG; -TIMESPEC "TSTFT40_TFT25" = FROM "clk40" TO "clk25" TIG; -TIMESPEC "TSTFT40_TFT65" = FROM "clk40" TO "clk65" TIG; -TIMESPEC "TSTFT65_PLB" = FROM "clk65" TO "clkm" TIG; -TIMESPEC "TSTFT65_TFT25" = FROM "clk65" TO "clk25" TIG; -TIMESPEC "TSTFT65_TFT40" = FROM "clk65" TO "clk40" TIG; - -# MIG contraints - - - -#NET "*/u_ddr2_infrastructure/sys_clk_ibufg" TNM_NET = "SYS_CLK"; -NET "user_clksys" TNM_NET = "SYS_CLK"; -TIMESPEC "TS_SYS_CLK" = PERIOD "SYS_CLK" 10 ns HIGH 50 %; - -#NET "*/u_ddr2_infrastructure/clk200_ibufg" TNM_NET = "SYS_CLK_200"; -#TIMESPEC "TS_SYS_CLK_200" = PERIOD "SYS_CLK_200" 5 ns HIGH 50 %; -############################################################################### -# Define multicycle paths - these paths may take longer because additional -# time allowed for logic to settle in calibration/initialization FSM -############################################################################### - -# MIG 2.1: Eliminate Timegroup definitions for CLK0, and CLK90. Instead trace -# multicycle paths from originating flip-flop to ANY destination -# flip-flop (or in some cases, it can also be a BRAM) -# MUX Select for either rising/falling CLK0 for 2nd stage read capture -INST "*/u_phy_calib/gen_rd_data_sel*.u_ff_rd_data_sel" TNM = "TNM_RD_DATA_SEL"; -TIMESPEC "TS_MC_RD_DATA_SEL" = FROM "TNM_RD_DATA_SEL" TO FFS -"TS_SYS_CLK" * 2; -# MUX select for read data - optional delay on data to account for byte skews -INST "*/u_usr_rd/gen_rden_sel_mux*.u_ff_rden_sel_mux" TNM = "TNM_RDEN_SEL_MUX"; -TIMESPEC "TS_MC_RDEN_SEL_MUX" = FROM "TNM_RDEN_SEL_MUX" TO FFS -"TS_SYS_CLK" * 2; -# Calibration/Initialization complete status flag (for PHY logic only) - can -# be used to drive both flip-flops and BRAMs -INST "*/u_phy_init/u_ff_phy_init_data_sel" TNM = "TNM_PHY_INIT_DATA_SEL"; -TIMESPEC "TS_MC_PHY_INIT_DATA_SEL_0" = FROM "TNM_PHY_INIT_DATA_SEL" TO FFS -"TS_SYS_CLK" * 2; -# The RAM path is only used in cases where Write Latency (Additive Latency + -# (CAS Latency - 1) + (1 in case of RDIMM)) is 2 or below. So these constraints are -# valid for CAS Latency = 3, Additive Latency = 0 and selected part is not RDIMM. -# If Write Latency is higher than 3, then a warning will appear in PAR, -# and the constraint can be ignored as this path does not exist. RAM constraint -# can be safely removed if the warning is not to be displayed. -TIMESPEC "TS_MC_PHY_INIT_DATA_SEL_90" = FROM "TNM_PHY_INIT_DATA_SEL" TO RAMS -"TS_SYS_CLK" * 2; -# Select (address) bits for SRL32 shift registers used in stage3/stage4 -# calibration -INST "*/u_phy_calib/gen_gate_dly*.u_ff_gate_dly" TNM = "TNM_GATE_DLY"; -TIMESPEC "TS_MC_GATE_DLY" = FROM "TNM_GATE_DLY" TO FFS "TS_SYS_CLK" * 2; - -INST "*/u_phy_calib/gen_rden_dly*.u_ff_rden_dly" TNM = "TNM_RDEN_DLY"; -TIMESPEC "TS_MC_RDEN_DLY" = FROM "TNM_RDEN_DLY" TO FFS "TS_SYS_CLK" * 2; - -INST "*/u_phy_calib/gen_cal_rden_dly*.u_ff_cal_rden_dly" - TNM = "TNM_CAL_RDEN_DLY"; -TIMESPEC "TS_MC_CAL_RDEN_DLY" = FROM "TNM_CAL_RDEN_DLY" TO FFS -"TS_SYS_CLK" * 2; -############################################################################### -#The following constraint is added to prevent (false) hold time violations on -#the data path from stage1 to stage2 capture flops. Stage1 flops are clocked by -#the delayed DQS and stage2 flops are clocked by the clk0 clock. Placing a TIG -#on the DQ IDDR capture flop instance to achieve this is acceptable because timing -#is guaranteed through the use of separate Predictable IP constraints. These -#violations are reported when anunconstrained path report is run. -############################################################################### -INST "*/gen*.u_iob_dq/gen*.u_iddr_dq" TIG ; -############################################################################### -# DQS Read Post amble Glitch Squelch circuit related constraints -############################################################################### - -############################################################################### -# LOC placement of DQS-squelch related IDDR and IDELAY elements -# Each circuit can be located at any of the following locations: -# 1. Unused "N"-side of DQS differential pair I/O -# 2. DM data mask (output only, input side is free for use) -# 3. Any output-only site -############################################################################### - -############################################################################### -#The following constraint is added to avoid the HOLD violations in the trace report -#when run for unconstrained paths.These two FF groups will be clocked by two different -# clocks and hence there should be no timing analysis performed on this path. -############################################################################### -INST "*/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_gate.*.u_en_dqs_ff" TNM = EN_DQS_FF; -TIMESPEC TS_FROM_EN_DQS_FF_TO_DQ_CE_FF = FROM EN_DQS_FF TO TNM_DQ_CE_IDDR 3.85 ns DATAPATHONLY; - -INST "*/gen_dqs.0.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y340"; -INST "*/gen_dqs.0.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y340"; -INST "*/gen_dqs.1.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y338"; -INST "*/gen_dqs.1.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y338"; -INST "*/gen_dqs.2.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y336"; -INST "*/gen_dqs.2.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y336"; -INST "*/gen_dqs.3.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y300"; -INST "*/gen_dqs.3.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y300"; -INST "*/gen_dqs.4.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y298"; -INST "*/gen_dqs.4.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y298"; -INST "*/gen_dqs.5.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y296"; -INST "*/gen_dqs.5.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y296"; -INST "*/gen_dqs.6.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y262"; -INST "*/gen_dqs.6.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y262"; -INST "*/gen_dqs.7.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y260"; -INST "*/gen_dqs.7.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y260"; -INST "*/gen_dqs.8.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y258"; -INST "*/gen_dqs.8.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y258"; - -#INST "*/gen_dqs.0.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y382"; -#INST "*/gen_dqs.0.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y382"; -#INST "*/gen_dqs.1.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y380"; -#INST "*/gen_dqs.1.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y380"; -#INST "*/gen_dqs.2.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y378"; -#INST "*/gen_dqs.2.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y378"; -#INST "*/gen_dqs.3.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y342"; -#INST "*/gen_dqs.3.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y342"; -#INST "*/gen_dqs.4.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y340"; -#INST "*/gen_dqs.4.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y340"; -#INST "*/gen_dqs.5.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y338"; -#INST "*/gen_dqs.5.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y338"; -#INST "*/gen_dqs.6.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y302"; -#INST "*/gen_dqs.6.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y302"; -#INST "*/gen_dqs.7.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y300"; -#INST "*/gen_dqs.7.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y300"; -#INST "*/gen_dqs.8.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y298"; -#INST "*/gen_dqs.8.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y298"; - -############################################################################### -# LOC and timing constraints for flop driving DQS CE enable signal -# from fabric logic. Even though the absolute delay on this path is -# calibrated out (when synchronizing this output to DQS), the delay -# should still be kept as low as possible to reduce post-calibration -# voltage/temp variations - these are roughly proportional to the -# absolute delay of the path. -# The following code has been commented for V5 as the predictable IP will take -# care of placement of these flops by meeting the MAXDELAY requirement. -# These constraints will be removed in the next release. -############################################################################### - -INST "*/u_phy_calib/gen_gate.0.u_en_dqs_ff" LOC = SLICE_X0Y170; -INST "*/u_phy_calib/gen_gate.1.u_en_dqs_ff" LOC = SLICE_X0Y169; -INST "*/u_phy_calib/gen_gate.2.u_en_dqs_ff" LOC = SLICE_X0Y168; -INST "*/u_phy_calib/gen_gate.3.u_en_dqs_ff" LOC = SLICE_X0Y150; -INST "*/u_phy_calib/gen_gate.4.u_en_dqs_ff" LOC = SLICE_X0Y149; -INST "*/u_phy_calib/gen_gate.5.u_en_dqs_ff" LOC = SLICE_X0Y148; -INST "*/u_phy_calib/gen_gate.6.u_en_dqs_ff" LOC = SLICE_X0Y131; -INST "*/u_phy_calib/gen_gate.7.u_en_dqs_ff" LOC = SLICE_X0Y130; -INST "*/u_phy_calib/gen_gate.8.u_en_dqs_ff" LOC = SLICE_X0Y129; - -#INST "*/u_phy_calib/gen_gate.0.u_en_dqs_ff" LOC = SLICE_X0Y191; -#INST "*/u_phy_calib/gen_gate.1.u_en_dqs_ff" LOC = SLICE_X0Y190; -#INST "*/u_phy_calib/gen_gate.2.u_en_dqs_ff" LOC = SLICE_X0Y189; -#INST "*/u_phy_calib/gen_gate.3.u_en_dqs_ff" LOC = SLICE_X0Y171; -#INST "*/u_phy_calib/gen_gate.4.u_en_dqs_ff" LOC = SLICE_X0Y170; -#INST "*/u_phy_calib/gen_gate.5.u_en_dqs_ff" LOC = SLICE_X0Y169; -#INST "*/u_phy_calib/gen_gate.6.u_en_dqs_ff" LOC = SLICE_X0Y151; -#INST "*/u_phy_calib/gen_gate.7.u_en_dqs_ff" LOC = SLICE_X0Y150; -#INST "*/u_phy_calib/gen_gate.8.u_en_dqs_ff" LOC = SLICE_X0Y149; - -# Control for DQS gate - from fabric flop. Prevent "runaway" delay - -# two parts to this path: (1) from fabric flop to IDELAY, (2) from -# IDELAY to asynchronous reset of IDDR that drives the DQ CE's -# This can be relaxed by the user for lower frequencies: -# 300MHz = 850ps, 267MHz = 900ps. At 200MHz = 950ps. -# In general PAR should be able to route this -# within 900ps over all speed grades. -NET "*/u_phy_io/en_dqs[*]" MAXDELAY = 600 ps; -NET "*/u_phy_io/gen_dqs*.u_iob_dqs/en_dqs_sync" MAXDELAY = 800 ps; - -############################################################################### -# "Half-cycle" path constraint from IOB flip-flop to CE pin for all DQ IDDR's -# for DQS Read Post amble Glitch Squelch circuit -############################################################################### - -# Max delay from output of IOB flip-flop to CE input of DQ IDDRs = -# tRPST + some slack where slack account for rise-time of DQS on board. -# For now assume slack = 0.400ns (based on initial SPICE simulations, -# assumes use of ODT), so time = 0.4*Tcyc + 0.40ns = 1.6ns @333MHz -INST "*/gen_dqs.*.u_iob_dqs/u_iddr_dq_ce" TNM = "TNM_DQ_CE_IDDR"; -INST "*/gen_dq.*.u_iob_dq/gen_stg2_*.u_iddr_dq" TNM = "TNM_DQS_FLOPS"; -TIMESPEC "TS_DQ_CE" = FROM "TNM_DQ_CE_IDDR" TO "TNM_DQS_FLOPS" 2.4 ns; - - - - - -///////////////////////////////////////////////////// -// Flash -///////////////////////////////////////////////////// - -NET "FLASH_WE_B" LOC ="AM28"; -NET "FLASH_WAIT" LOC ="W11"; -NET "FLASH_RESET_B" LOC ="K7"; -NET "FLASH_OE_B" LOC ="AM13"; -NET "FLASH_D(9)" LOC ="AL15"; -NET "FLASH_D(8)" LOC ="AL16"; -NET "FLASH_D(7)" LOC ="AN13"; -NET "FLASH_D(6)" LOC ="AP13"; -NET "FLASH_D(5)" LOC ="AK28"; -NET "FLASH_D(4)" LOC ="AK29"; -NET "FLASH_D(3)" LOC ="AN14"; -NET "FLASH_D(2)" LOC ="AM14"; -NET "FLASH_D(15)" LOC ="AN30"; -NET "FLASH_D(14)" LOC ="AP30"; -NET "FLASH_D(13)" LOC ="AK17"; -NET "FLASH_D(12)" LOC ="AL17"; -NET "FLASH_D(11)" LOC ="AN29"; -NET "FLASH_D(10)" LOC ="AP28"; -NET "FLASH_D(1)" LOC ="AK27"; -NET "FLASH_D(0)" LOC ="AJ26"; -NET "FLASH_CLK" LOC ="AN28"; -NET "FLASH_CE_B" LOC ="AL14"; -NET "FLASH_ADV_B" LOC ="AL29"; -NET "FLASH_A(9)" LOC ="N15"; -NET "FLASH_A(8)" LOC ="N14"; -NET "FLASH_A(7)" LOC ="N28"; -NET "FLASH_A(6)" LOC ="N29"; -NET "FLASH_A(5)" LOC ="M14"; -NET "FLASH_A(4)" LOC ="M13"; -NET "FLASH_A(3)" LOC ="N30"; -NET "FLASH_A(21)" LOC ="AL30"; -NET "FLASH_A(20)" LOC ="AM29"; -NET "FLASH_A(2)" LOC ="M29"; -NET "FLASH_A(19)" LOC ="N25"; -NET "FLASH_A(18)" LOC ="P25"; -NET "FLASH_A(17)" LOC ="P18"; -NET "FLASH_A(16)" LOC ="P17"; -NET "FLASH_A(15)" LOC ="P26"; -NET "FLASH_A(14)" LOC ="N26"; -NET "FLASH_A(13)" LOC ="M16"; -NET "FLASH_A(12)" LOC ="N16"; -NET "FLASH_A(11)" LOC ="P27"; -NET "FLASH_A(10)" LOC ="P28"; -NET "FLASH_A(1)" LOC ="N13"; -NET "FLASH_A(0)" LOC ="P13"; -# These are mapped exclusively for flash on the SoC -#NET "SYSACE_FLASH_CFGA1" LOC ="AK12"; -#NET "SYSACE_FLASH_CFGA0" LOC ="AK13"; -#NET "FLASH_A(23)" LOC ="AK12"; -#NET "FLASH_A(22)" LOC ="AK13"; - -///////////////////////////////////////////////////// -// DDR2 -///////////////////////////////////////////////////// - -# DIMM1 -NET "DIMM1_DDR2_WE_B" LOC ="V40"; -NET "DIMM1_DDR2_S_B(0)" LOC ="AE37"; -NET "DIMM1_DDR2_S_B(1)" LOC ="AU42"; -NET "DIMM1_DDR2_RAS_B" LOC ="V41"; -NET "DIMM1_DDR2_PLL_CLKIN_P" LOC ="Y39"; -NET "DIMM1_DDR2_PLL_CLKIN_N" LOC ="Y38"; -NET "DIMM1_DDR2_ODT(1)" LOC ="AF37"; -NET "DIMM1_DDR2_ODT(0)" LOC ="AV41"; -NET "DIMM1_DDR2_DQS_P(8)" LOC ="AH34"; -NET "DIMM1_DDR2_DQS_N(8)" LOC ="AG34"; -NET "DIMM1_DDR2_DQS_P(7)" LOC ="AF35"; -NET "DIMM1_DDR2_DQS_N(7)" LOC ="AF36"; -NET "DIMM1_DDR2_DQS_P(6)" LOC ="AE35"; -NET "DIMM1_DDR2_DQS_N(6)" LOC ="AF34"; -NET "DIMM1_DDR2_DQS_P(5)" LOC ="AT39"; -NET "DIMM1_DDR2_DQS_N(5)" LOC ="AR39"; -NET "DIMM1_DDR2_DQS_P(4)" LOC ="AV40"; -NET "DIMM1_DDR2_DQS_N(4)" LOC ="AU39"; -NET "DIMM1_DDR2_DQS_P(3)" LOC ="AR40"; -NET "DIMM1_DDR2_DQS_N(3)" LOC ="AT40"; -NET "DIMM1_DDR2_DQS_P(2)" LOC ="AC40"; -NET "DIMM1_DDR2_DQS_N(2)" LOC ="AC39"; -NET "DIMM1_DDR2_DQS_P(1)" LOC ="AE40"; -NET "DIMM1_DDR2_DQS_N(1)" LOC ="AD40"; -NET "DIMM1_DDR2_DQS_P(0)" LOC ="AB39"; -NET "DIMM1_DDR2_DQS_N(0)" LOC ="AC38"; -NET "DIMM1_DDR2_DQM(8)" LOC ="AD33"; -NET "DIMM1_DDR2_DQM(7)" LOC ="AV39"; -NET "DIMM1_DDR2_DQM(6)" LOC ="AK35"; -NET "DIMM1_DDR2_DQM(5)" LOC ="AN40"; -NET "DIMM1_DDR2_DQM(4)" LOC ="AG37"; -NET "DIMM1_DDR2_DQM(3)" LOC ="AC36"; -NET "DIMM1_DDR2_DQM(2)" LOC ="AP41"; -NET "DIMM1_DDR2_DQM(1)" LOC ="AH41"; -NET "DIMM1_DDR2_DQM(0)" LOC ="AC41"; -NET "DIMM1_DDR2_DQ(9)" LOC ="AF42"; -NET "DIMM1_DDR2_DQ(8)" LOC ="AE42"; -NET "DIMM1_DDR2_DQ(7)" LOC ="AF41"; -NET "DIMM1_DDR2_DQ(63)" LOC ="AN34"; -NET "DIMM1_DDR2_DQ(62)" LOC ="AU38"; -NET "DIMM1_DDR2_DQ(61)" LOC ="AR37"; -NET "DIMM1_DDR2_DQ(60)" LOC ="AN36"; -NET "DIMM1_DDR2_DQ(6)" LOC ="AF40"; -NET "DIMM1_DDR2_DQ(59)" LOC ="AU37"; -NET "DIMM1_DDR2_DQ(58)" LOC ="AT36"; -NET "DIMM1_DDR2_DQ(57)" LOC ="AT37"; -NET "DIMM1_DDR2_DQ(56)" LOC ="AP35"; -NET "DIMM1_DDR2_DQ(55)" LOC ="AK34"; -NET "DIMM1_DDR2_DQ(54)" LOC ="AR38"; -NET "DIMM1_DDR2_DQ(53)" LOC ="AL36"; -NET "DIMM1_DDR2_DQ(52)" LOC ="AE32"; -NET "DIMM1_DDR2_DQ(51)" LOC ="AL34"; -NET "DIMM1_DDR2_DQ(50)" LOC ="AM34"; -NET "DIMM1_DDR2_DQ(5)" LOC ="AB42"; -NET "DIMM1_DDR2_DQ(49)" LOC ="AM36"; -NET "DIMM1_DDR2_DQ(48)" LOC ="AL35"; -NET "DIMM1_DDR2_DQ(47)" LOC ="AN39"; -NET "DIMM1_DDR2_DQ(46)" LOC ="AN38"; -NET "DIMM1_DDR2_DQ(45)" LOC ="AK38"; -NET "DIMM1_DDR2_DQ(44)" LOC ="AL39"; -NET "DIMM1_DDR2_DQ(43)" LOC ="AP38"; -NET "DIMM1_DDR2_DQ(42)" LOC ="AM37"; -NET "DIMM1_DDR2_DQ(41)" LOC ="AP40"; -NET "DIMM1_DDR2_DQ(40)" LOC ="AM38"; -NET "DIMM1_DDR2_DQ(4)" LOC ="AB41"; -NET "DIMM1_DDR2_DQ(39)" LOC ="AJ37"; -NET "DIMM1_DDR2_DQ(38)" LOC ="AK39"; -NET "DIMM1_DDR2_DQ(37)" LOC ="AG38"; -NET "DIMM1_DDR2_DQ(36)" LOC ="AF39"; -NET "DIMM1_DDR2_DQ(35)" LOC ="AM39"; -NET "DIMM1_DDR2_DQ(34)" LOC ="AL37"; -NET "DIMM1_DDR2_DQ(33)" LOC ="AH38"; -NET "DIMM1_DDR2_DQ(32)" LOC ="AJ38"; -NET "DIMM1_DDR2_DQ(31)" LOC ="AD37"; -NET "DIMM1_DDR2_DQ(30)" LOC ="AD35"; -NET "DIMM1_DDR2_DQ(3)" LOC ="AD41"; -NET "DIMM1_DDR2_DQ(29)" LOC ="AC35"; -NET "DIMM1_DDR2_DQ(28)" LOC ="AB34"; -NET "DIMM1_DDR2_DQ(27)" LOC ="AE38"; -NET "DIMM1_DDR2_DQ(26)" LOC ="AD36"; -NET "DIMM1_DDR2_DQ(25)" LOC ="AC34"; -NET "DIMM1_DDR2_DQ(24)" LOC ="AB36"; -NET "DIMM1_DDR2_DQ(23)" LOC ="AT41"; -NET "DIMM1_DDR2_DQ(22)" LOC ="AT42"; -NET "DIMM1_DDR2_DQ(21)" LOC ="AM41"; -NET "DIMM1_DDR2_DQ(20)" LOC ="AN41"; -NET "DIMM1_DDR2_DQ(2)" LOC ="AD42"; -NET "DIMM1_DDR2_DQ(19)" LOC ="AR42"; -NET "DIMM1_DDR2_DQ(18)" LOC ="AP42"; -NET "DIMM1_DDR2_DQ(17)" LOC ="AL42"; -NET "DIMM1_DDR2_DQ(16)" LOC ="AK42"; -NET "DIMM1_DDR2_DQ(15)" LOC ="AL41"; -NET "DIMM1_DDR2_DQ(14)" LOC ="AJ42"; -NET "DIMM1_DDR2_DQ(13)" LOC ="AH40"; -NET "DIMM1_DDR2_DQ(12)" LOC ="AG42"; -NET "DIMM1_DDR2_DQ(11)" LOC ="AJ40"; -NET "DIMM1_DDR2_DQ(10)" LOC ="AJ41"; -NET "DIMM1_DDR2_DQ(1)" LOC ="AB37"; -NET "DIMM1_DDR2_DQ(0)" LOC ="AB38"; -NET "DIMM1_DDR2_CKE(1)" LOC ="AE39"; -NET "DIMM1_DDR2_CKE(0)" LOC ="AU41"; -NET "DIMM1_DDR2_CB(7)" LOC ="AE33"; -NET "DIMM1_DDR2_CB(6)" LOC ="AE34"; -NET "DIMM1_DDR2_CB(5)" LOC ="AC33"; -NET "DIMM1_DDR2_CB(4)" LOC ="AB32"; -NET "DIMM1_DDR2_CB(3)" LOC ="AH36"; -NET "DIMM1_DDR2_CB(2)" LOC ="AG36"; -NET "DIMM1_DDR2_CB(1)" LOC ="AD32"; -NET "DIMM1_DDR2_CB(0)" LOC ="AB33"; -NET "DIMM1_DDR2_CAS_B" LOC ="Y42"; -NET "DIMM1_DDR2_BA(2)" LOC ="AH35"; -NET "DIMM1_DDR2_BA(1)" LOC ="AJ36"; -NET "DIMM1_DDR2_BA(0)" LOC ="AJ35"; -NET "DIMM1_DDR2_A(9)" LOC ="F42"; -NET "DIMM1_DDR2_A(8)" LOC ="G42"; -NET "DIMM1_DDR2_A(7)" LOC ="J42"; -NET "DIMM1_DDR2_A(6)" LOC ="H41"; -NET "DIMM1_DDR2_A(5)" LOC ="M42"; -NET "DIMM1_DDR2_A(4)" LOC ="L42"; -NET "DIMM1_DDR2_A(3)" LOC ="K42"; -NET "DIMM1_DDR2_A(2)" LOC ="M41"; -NET "DIMM1_DDR2_A(13)" LOC ="W41"; -NET "DIMM1_DDR2_A(12)" LOC ="F41"; -NET "DIMM1_DDR2_A(11)" LOC ="G41"; -NET "DIMM1_DDR2_A(10)" LOC ="W42"; -NET "DIMM1_DDR2_A(1)" LOC ="J41"; -NET "DIMM1_DDR2_A(0)" LOC ="R40"; - -NET "DIMM*_DDR2_DQ[*]" IOSTANDARD = SSTL18_II_DCI; -NET "DIMM*_DDR2_DQM[*]" IOSTANDARD = SSTL18_II_DCI; -NET "DIMM0_DDR2_DQS_P[*]" IOSTANDARD = DIFF_SSTL18_II_DCI; -NET "DIMM0_DDR2_DQS_N[*]" IOSTANDARD = DIFF_SSTL18_II_DCI; -NET "DIMM1_DDR2_DQS_P[*]" IOSTANDARD = SSTL18_II_DCI; -NET "DIMM1_DDR2_DQS_N[*]" IOSTANDARD = SSTL18_II_DCI; -NET "DIMM*_DDR2_A[*]" IOSTANDARD = SSTL18_II; -NET "DIMM*_DDR2_BA[*]" IOSTANDARD = SSTL18_II; -NET "DIMM*_DDR2_WE_B" IOSTANDARD = SSTL18_II; -NET "DIMM*_DDR2_RAS_B" IOSTANDARD = SSTL18_II; -NET "DIMM*_DDR2_CAS_B" IOSTANDARD = SSTL18_II; -NET "DIMM*_DDR2_S_B[*]" IOSTANDARD = SSTL18_II; -NET "DIMM*_DDR2_ODT[*]" IOSTANDARD = SSTL18_II; -NET "DIMM*_DDR2_CKE[*]" IOSTANDARD = SSTL18_II; -NET "DIMM*_DDR2_CB[*]" IOSTANDARD = SSTL18_II; -NET "DIMM0_DDR2_PLL_CLKIN_P" IOSTANDARD = DIFF_SSTL18_II; -NET "DIMM0_DDR2_PLL_CLKIN_N" IOSTANDARD = DIFF_SSTL18_II; -NET "DIMM1_DDR2_PLL_CLKIN_P" IOSTANDARD = SSTL18_II; -NET "DIMM1_DDR2_PLL_CLKIN_N" IOSTANDARD = SSTL18_II; - -NET "PHY0_*" IOSTANDARD = LVCMOS25; -NET "PHY1_*" IOSTANDARD = LVCMOS25; - -# DIMM0 -NET "DIMM0_DDR2_WE_B" LOC ="Y40"; -NET "DIMM0_DDR2_S_B(1)" LOC ="M37"; -NET "DIMM0_DDR2_S_B(0)" LOC ="U32"; -NET "DIMM0_DDR2_RAS_B" LOC ="W40"; -NET "DIMM0_DDR2_PLL_CLKIN_P" LOC ="AA40"; -NET "DIMM0_DDR2_PLL_CLKIN_N" LOC ="AA39"; -NET "DIMM0_DDR2_ODT(1)" LOC ="K35"; -NET "DIMM0_DDR2_ODT(0)" LOC ="U31"; -NET "DIMM0_DDR2_DQS_P(8)" LOC ="H40"; -NET "DIMM0_DDR2_DQS_N(8)" LOC ="J40"; -NET "DIMM0_DDR2_DQS_P(7)" LOC ="K38"; -NET "DIMM0_DDR2_DQS_N(7)" LOC ="J38"; -NET "DIMM0_DDR2_DQS_P(6)" LOC ="M38"; -NET "DIMM0_DDR2_DQS_N(6)" LOC ="L39"; -NET "DIMM0_DDR2_DQS_P(5)" LOC ="U36"; -NET "DIMM0_DDR2_DQS_N(5)" LOC ="V36"; -NET "DIMM0_DDR2_DQS_P(4)" LOC ="R35"; -NET "DIMM0_DDR2_DQS_N(4)" LOC ="T36"; -NET "DIMM0_DDR2_DQS_P(3)" LOC ="T34"; -NET "DIMM0_DDR2_DQS_N(3)" LOC ="U33"; -NET "DIMM0_DDR2_DQS_P(2)" LOC ="E32"; -NET "DIMM0_DDR2_DQS_N(2)" LOC ="E33"; -NET "DIMM0_DDR2_DQS_P(1)" LOC ="F31"; -NET "DIMM0_DDR2_DQS_N(1)" LOC ="F32"; -NET "DIMM0_DDR2_DQS_P(0)" LOC ="E34"; -NET "DIMM0_DDR2_DQS_N(0)" LOC ="F34"; -NET "DIMM0_DDR2_DQM(8)" LOC ="G39"; -NET "DIMM0_DDR2_DQM(7)" LOC ="W36"; -NET "DIMM0_DDR2_DQM(6)" LOC ="T39"; -NET "DIMM0_DDR2_DQM(5)" LOC ="V35"; -NET "DIMM0_DDR2_DQM(4)" LOC ="M36"; -NET "DIMM0_DDR2_DQM(3)" LOC ="F36"; -NET "DIMM0_DDR2_DQM(2)" LOC ="P33"; -NET "DIMM0_DDR2_DQM(1)" LOC ="L32"; -NET "DIMM0_DDR2_DQM(0)" LOC ="F35"; -NET "DIMM0_DDR2_DQ(9)" LOC ="L31"; -NET "DIMM0_DDR2_DQ(8)" LOC ="J33"; -NET "DIMM0_DDR2_DQ(7)" LOC ="H34"; -NET "DIMM0_DDR2_DQ(63)" LOC ="W35"; -NET "DIMM0_DDR2_DQ(62)" LOC ="W37"; -NET "DIMM0_DDR2_DQ(61)" LOC ="T37"; -NET "DIMM0_DDR2_DQ(60)" LOC ="P37"; -NET "DIMM0_DDR2_DQ(6)" LOC ="H31"; -NET "DIMM0_DDR2_DQ(59)" LOC ="Y34"; -NET "DIMM0_DDR2_DQ(58)" LOC ="AA34"; -NET "DIMM0_DDR2_DQ(57)" LOC ="AA36"; -NET "DIMM0_DDR2_DQ(56)" LOC ="AA35"; -NET "DIMM0_DDR2_DQ(55)" LOC ="V39"; -NET "DIMM0_DDR2_DQ(54)" LOC ="R37"; -NET "DIMM0_DDR2_DQ(53)" LOC ="R39"; -NET "DIMM0_DDR2_DQ(52)" LOC ="N38"; -NET "DIMM0_DDR2_DQ(51)" LOC ="W38"; -NET "DIMM0_DDR2_DQ(50)" LOC ="Y35"; -NET "DIMM0_DDR2_DQ(5)" LOC ="G33"; -NET "DIMM0_DDR2_DQ(49)" LOC ="P38"; -NET "DIMM0_DDR2_DQ(48)" LOC ="U38"; -NET "DIMM0_DDR2_DQ(47)" LOC ="W33"; -NET "DIMM0_DDR2_DQ(46)" LOC ="Y33"; -NET "DIMM0_DDR2_DQ(45)" LOC ="T35"; -NET "DIMM0_DDR2_DQ(44)" LOC ="R34"; -NET "DIMM0_DDR2_DQ(43)" LOC ="AA32"; -NET "DIMM0_DDR2_DQ(42)" LOC ="Y32"; -NET "DIMM0_DDR2_DQ(41)" LOC ="W32"; -NET "DIMM0_DDR2_DQ(40)" LOC ="V33"; -NET "DIMM0_DDR2_DQ(4)" LOC ="G32"; -NET "DIMM0_DDR2_DQ(39)" LOC ="P35"; -NET "DIMM0_DDR2_DQ(38)" LOC ="N36"; -NET "DIMM0_DDR2_DQ(37)" LOC ="L36"; -NET "DIMM0_DDR2_DQ(36)" LOC ="J35"; -NET "DIMM0_DDR2_DQ(35)" LOC ="U34"; -NET "DIMM0_DDR2_DQ(34)" LOC ="V34"; -NET "DIMM0_DDR2_DQ(33)" LOC ="P36"; -NET "DIMM0_DDR2_DQ(32)" LOC ="N35"; -NET "DIMM0_DDR2_DQ(31)" LOC ="J37"; -NET "DIMM0_DDR2_DQ(30)" LOC ="H35"; -NET "DIMM0_DDR2_DQ(3)" LOC ="H33"; -NET "DIMM0_DDR2_DQ(29)" LOC ="E38"; -NET "DIMM0_DDR2_DQ(28)" LOC ="D37"; -NET "DIMM0_DDR2_DQ(27)" LOC ="K37"; -NET "DIMM0_DDR2_DQ(26)" LOC ="J36"; -NET "DIMM0_DDR2_DQ(25)" LOC ="G36"; -NET "DIMM0_DDR2_DQ(24)" LOC ="F37"; -NET "DIMM0_DDR2_DQ(23)" LOC ="T31"; -NET "DIMM0_DDR2_DQ(22)" LOC ="R32"; -NET "DIMM0_DDR2_DQ(21)" LOC ="P31"; -NET "DIMM0_DDR2_DQ(20)" LOC ="N34"; -NET "DIMM0_DDR2_DQ(2)" LOC ="J31"; -NET "DIMM0_DDR2_DQ(19)" LOC ="T32"; -NET "DIMM0_DDR2_DQ(18)" LOC ="R33"; -NET "DIMM0_DDR2_DQ(17)" LOC ="P32"; -NET "DIMM0_DDR2_DQ(16)" LOC ="N33"; -NET "DIMM0_DDR2_DQ(15)" LOC ="N31"; -NET "DIMM0_DDR2_DQ(14)" LOC ="M32"; -NET "DIMM0_DDR2_DQ(13)" LOC ="K33"; -NET "DIMM0_DDR2_DQ(12)" LOC ="K32"; -NET "DIMM0_DDR2_DQ(11)" LOC ="M34"; -NET "DIMM0_DDR2_DQ(10)" LOC ="M33"; -NET "DIMM0_DDR2_DQ(1)" LOC ="G31"; -NET "DIMM0_DDR2_DQ(0)" LOC ="E35"; -NET "DIMM0_DDR2_CKE(1)" LOC ="L37"; -NET "DIMM0_DDR2_CKE(0)" LOC ="M31"; -NET "dimm0_ddr2_reset_n" IOSTANDARD = LVCMOS25; -NET "dimm0_ddr2_reset_n" LOC = "AG33" ; #Bank 11 -NET "DIMM0_DDR2_DQ(71)" LOC ="H39"; -NET "DIMM0_DDR2_DQ(70)" LOC ="G38"; -NET "DIMM0_DDR2_DQ(69)" LOC ="E39"; -NET "DIMM0_DDR2_DQ(68)" LOC ="E40"; -NET "DIMM0_DDR2_DQ(67)" LOC ="H38"; -NET "DIMM0_DDR2_DQ(66)" LOC ="K40"; -NET "DIMM0_DDR2_DQ(65)" LOC ="F39"; -NET "DIMM0_DDR2_DQ(64)" LOC ="F40"; -NET "DIMM0_DDR2_CB(7)" LOC ="H39"; -NET "DIMM0_DDR2_CB(6)" LOC ="G38"; -NET "DIMM0_DDR2_CB(5)" LOC ="E39"; -NET "DIMM0_DDR2_CB(4)" LOC ="E40"; -NET "DIMM0_DDR2_CB(3)" LOC ="H38"; -NET "DIMM0_DDR2_CB(2)" LOC ="K40"; -NET "DIMM0_DDR2_CB(1)" LOC ="F39"; -NET "DIMM0_DDR2_CB(0)" LOC ="F40"; -NET "DIMM0_DDR2_CAS_B" LOC ="AA37"; -NET "DIMM0_DDR2_BA(2)" LOC ="K39"; -NET "DIMM0_DDR2_BA(1)" LOC ="M39"; -NET "DIMM0_DDR2_BA(0)" LOC ="N39"; -NET "DIMM0_DDR2_A(9)" LOC ="L40"; -NET "DIMM0_DDR2_A(8)" LOC ="P42"; -NET "DIMM0_DDR2_A(7)" LOC ="R42"; -NET "DIMM0_DDR2_A(6)" LOC ="P41"; -NET "DIMM0_DDR2_A(5)" LOC ="T40"; -NET "DIMM0_DDR2_A(4)" LOC ="U42"; -NET "DIMM0_DDR2_A(3)" LOC ="T42"; -NET "DIMM0_DDR2_A(2)" LOC ="U41"; -NET "DIMM0_DDR2_A(13)" LOC ="Y37"; -NET "DIMM0_DDR2_A(12)" LOC ="N41"; -NET "DIMM0_DDR2_A(11)" LOC ="N40"; -NET "DIMM0_DDR2_A(10)" LOC ="AA41"; -NET "DIMM0_DDR2_A(1)" LOC ="P40"; -NET "DIMM0_DDR2_A(0)" LOC ="AA42"; - -///////////////////////////////////////////////////// -// Ethernet -///////////////////////////////////////////////////// - -# PHY 1 uses SGMII which is not supported by GRETH -#NET "PHY1_RESET_SGMII" LOC ="AL25"; -#NET "PHY1_MDIO" LOC ="AT32"; -#NET "PHY1_MDC" LOC ="AU31"; -#NET "PHY1_INT_SGMII" LOC ="AV31"; -#NET "SGMIICLK_QO_P" LOC ="C4"; -#NET "SGMIICLK_QO_N" LOC ="C3"; - -# PHY 0 -NET "PHY0_TXER" LOC ="AT31"; -NET "PHY0_TXD(3)" LOC ="AN31"; -NET "PHY0_TXD(2)" LOC ="AR32"; -NET "PHY0_TXD(1)" LOC ="AP32"; -NET "PHY0_TXD(0)" LOC ="AR33"; -NET "PHY0_TXCTL_TXEN" LOC ="AP31"; -NET "PHY0_TXCLK" LOC ="M26"; -NET "PHY0_RXER" LOC ="AP33"; -NET "PHY0_RXD(3)" LOC ="AM33"; -NET "PHY0_RXD(2)" LOC ="AK33"; -NET "PHY0_RXD(1)" LOC ="AJ33"; -NET "PHY0_RXD(0)" LOC ="AJ32"; -NET "PHY0_RXCTL_RXDV" LOC ="AN33"; -NET "PHY0_RXCLK" LOC ="J17"; -NET "PHY0_RESET" LOC ="AK32"; -NET "PHY0_MDIO" LOC ="AL31"; -NET "PHY0_MDC" LOC ="AM32"; -# Not used by GRETH -#NET "PHY0_INT" LOC ="AL32"; -# Only for RGMII, which is not supported -#NET "PHY0_GTXCLK" LOC ="AM31"; - -///////////////////////////////////////////////////// -// System ACE MPU -///////////////////////////////////////////////////// - -NET "SYSACE_MPWE" LOC ="AR8"; -NET "SYSACE_MPOE" LOC ="AK10"; -NET "SYSACE_MPIRQ" LOC ="AK9"; -NET "SYSACE_MPD(9)" LOC ="AV5"; -NET "SYSACE_MPD(8)" LOC ="AV6"; -NET "SYSACE_MPD(7)" LOC ="AH11"; -NET "SYSACE_MPD(6)" LOC ="AH10"; -NET "SYSACE_MPD(5)" LOC ="AU6"; -NET "SYSACE_MPD(4)" LOC ="AT5"; -NET "SYSACE_MPD(3)" LOC ="AH9"; -NET "SYSACE_MPD(2)" LOC ="AG9"; -NET "SYSACE_MPD(15)" LOC ="AK8"; -NET "SYSACE_MPD(14)" LOC ="AP8"; -NET "SYSACE_MPD(13)" LOC ="AT7"; -NET "SYSACE_MPD(12)" LOC ="AJ8"; -NET "SYSACE_MPD(11)" LOC ="AJ10"; -NET "SYSACE_MPD(10)" LOC ="AJ11"; -NET "SYSACE_MPD(1)" LOC ="AR5"; -NET "SYSACE_MPD(0)" LOC ="AT6"; -NET "SYSACE_MPCE" LOC ="AN8"; -# Not used -#NET "SYSACE_MPBRDY" LOC ="AN4"; -NET "SYSACE_MPA(6)" LOC ="AG11"; -NET "SYSACE_MPA(5)" LOC ="AG12"; -NET "SYSACE_MPA(4)" LOC ="AM8"; -NET "SYSACE_MPA(3)" LOC ="AM7"; -NET "SYSACE_MPA(2)" LOC ="AM6"; -NET "SYSACE_MPA(1)" LOC ="AN6"; -NET "SYSACE_MPA(0)" LOC ="AR7"; -# Removed -#NET "SYSACE_FLASH_CFGA1" LOC ="AK12"; -#NET "SYSACE_FLASH_CFGA0" LOC ="AK13"; - -///////////////////////////////////////////////////// -// Green LEDs -///////////////////////////////////////////////////// - -NET "DBG_LED(3)" LOC ="AL6"; -NET "DBG_LED(2)" LOC ="AN5"; -NET "DBG_LED(1)" LOC ="AP6"; -NET "DBG_LED(0)" LOC ="AL7"; - -///////////////////////////////////////////////////// -// Red/Green LEDs -///////////////////////////////////////////////////// - -NET "OPB_BUS_ERROR" LOC ="AL19"; -NET "PLB_BUS_ERROR" LOC ="AK24"; -#NET "FPGA_DONE" LOC ="R14"; -#NET "FPGA_INIT" LOC ="T14"; - -///////////////////////////////////////////////////// -// LCD -///////////////////////////////////////////////////// - -#NET "FPGA_LCD_RW" LOC ="Y9"; -#NET "FPGA_LCD_RS" LOC ="Y8"; -#NET "FPGA_LCD_E" LOC ="W10"; -#NET "FPGA_LCD_DB(7)" LOC ="Y10"; -#NET "FPGA_LCD_DB(6)" LOC ="AA9"; -#NET "FPGA_LCD_DB(5)" LOC ="AA10"; -#NET "FPGA_LCD_DB(4)" LOC ="AA11"; -#NET "FPGA_LCD_DB(3)" LOC ="T4"; -#NET "FPGA_LCD_DB(2)" LOC ="T5"; -#NET "FPGA_LCD_DB(1)" LOC ="R5"; -#NET "FPGA_LCD_DB(0)" LOC ="R4"; - -///////////////////////////////////////////////////// -// JTAG Trace/Debug -///////////////////////////////////////////////////// - -#NET "ATCB_CLK_R" LOC ="J16"; -#NET "TRC_TS6" LOC ="AR17"; -#NET "TRC_TS5" LOC ="AP17"; -#NET "TRC_TS4" LOC ="AT27"; -#NET "TRC_TS3" LOC ="AU28"; -#NET "TRC_TS2" LOC ="AT16"; -#NET "TRC_TS1" LOC ="AT17"; -#NET "TRC_TS0" LOC ="AT29"; -#NET "TRC_ES4" LOC ="AR15"; -#NET "TRC_ES3" LOC ="AT26"; -#NET "TRC_ES2" LOC ="AT15"; -#NET "TRC_ES1" LOC ="AN20"; -#NET "TRC_ES0" LOC ="AN19"; -#NET "TRC_CLK_R" LOC ="AR27"; -#NET "TRC_BS2_BR2" LOC ="AN18"; -#NET "TRC_BS1_BR1" LOC ="AM18"; -#NET "TRC_BS0_BR0" LOC ="AN26"; -#NET "CPU_TRST_B" LOC ="AT30"; -#NET "CPU_TMS" LOC ="AR14"; -#NET "CPU_TDO_TMP" LOC ="AR28"; -#NET "CPU_TDI" LOC ="AR30"; -#NET "CPU_TCK" LOC ="AT14"; -#NET "CPU_HALT_B" LOC ="AR29"; -#NET "ATD_4" LOC ="AM24"; -#NET "ATD_3" LOC ="AT19"; -#NET "ATD_2" LOC ="AP25"; -#NET "ATD_1" LOC ="AN25"; -#NET "ATD_0" LOC ="AP26"; - -///////////////////////////////////////////////////// -// DVI -///////////////////////////////////////////////////// - -NET "DVI_XCLK_P" LOC ="AG8"; -NET "DVI_XCLK_N" LOC ="AH8"; -NET "DVI_V" LOC ="AM17"; -NET "DVI_RESET_B" LOC ="AM9"; -NET "DVI_H" LOC ="AP27"; -NET "DVI_GPIO1" LOC ="AN9"; -NET "DVI_DE" LOC ="M8"; -NET "DVI_D(9)" LOC ="AK15"; -NET "DVI_D(8)" LOC ="AM16"; -NET "DVI_D(7)" LOC ="AM27"; -NET "DVI_D(6)" LOC ="AM26"; -NET "DVI_D(5)" LOC ="AN15"; -NET "DVI_D(4)" LOC ="AN16"; -NET "DVI_D(3)" LOC ="AL27"; -NET "DVI_D(2)" LOC ="AL26"; -NET "DVI_D(11)" LOC ="AK30"; -NET "DVI_D(10)" LOC ="AJ30"; -NET "DVI_D(1)" LOC ="AP16"; -NET "DVI_D(0)" LOC ="AP15"; - -///////////////////////////////////////////////////// -// PCI -///////////////////////////////////////////////////// - -NET "PCI_P_TRDY_B" LOC ="V10" | PULLUP | BYPASS; -NET "PCI_P_STOP_B" LOC ="G9" | PULLUP | BYPASS; -NET "PCI_P_SERR_B" LOC ="G8" | PULLUP | BYPASS; -NET "PCI_P_RST_B" LOC ="H11" | PULLUP | BYPASS; -NET "PCI_P_REQ_B(4)" LOC ="R7"; -NET "PCI_P_REQ_B(3)" LOC ="F6"; -NET "PCI_P_REQ_B(2)" LOC ="D7"; -NET "PCI_P_REQ_B(1)" LOC ="R8"; -NET "PCI_P_REQ_B(0)" LOC ="E7"; -# The tools insist on disregarding the IOSTANDARD of the PCI_P_REQ pads even -# though the pads should not be optimized away when disabling the PCI core. -NET "PCI_P_REQ_B(*)" IOSTANDARD="PCI33_3" | PULLUP; -NET "PCI_P_PERR_B" LOC ="G7" | PULLUP | BYPASS; -NET "PCI_P_PAR" LOC ="E8" | PULLUP | BYPASS; -NET "PCI_P_LOCK_B" LOC ="J12" | PULLUP | BYPASS; -NET "PCI_P_IRDY_B" LOC ="P8" | PULLUP | BYPASS; -NET "PCI_P_INTD_B" LOC ="F11"; -NET "PCI_P_INTC_B" LOC ="F12"; -NET "PCI_P_INTB_B" LOC ="G11"; -NET "PCI_P_INTA_B" LOC ="G12"; -NET "PCI_P_GNT_B(4)" LOC ="E5"; -NET "PCI_P_GNT_B(3)" LOC ="R9"; -NET "PCI_P_GNT_B(2)" LOC ="F5"; -NET "PCI_P_GNT_B(1)" LOC ="F7"; -NET "PCI_P_GNT_B(0)" LOC ="T9"; -NET "PCI_P_GNT_B(*)" PULLUP; -NET "PCI_P_FRAME_B" LOC ="P7" | PULLUP | BYPASS; -NET "PCI_P_DEVSEL_B" LOC ="F9" | PULLUP | BYPASS; -NET "PCI_P_CLK5_R" LOC ="V9"; -NET "PCI_P_CLK5" LOC ="L16"; -NET "PCI_P_CLK4_R" LOC ="U11"; -NET "PCI_P_CLK3_R" LOC ="M9"; -NET "PCI_P_CLK1_R" LOC ="U9"; -NET "PCI_P_CLK0_R" LOC ="U8"; -NET "PCI_P_CBE_B(3)" LOC ="F15"; -NET "PCI_P_CBE_B(2)" LOC ="N9"; -NET "PCI_P_CBE_B(1)" LOC ="N8"; -NET "PCI_P_CBE_B(0)" LOC ="E9"; -NET "PCI_P_CBE_B(*)" BYPASS; -NET "PCI_P_AD(9)" LOC ="P12"; -NET "PCI_P_AD(8)" LOC ="E12"; -NET "PCI_P_AD(7)" LOC ="D12"; -NET "PCI_P_AD(6)" LOC ="P11"; -NET "PCI_P_AD(5)" LOC ="N10"; -NET "PCI_P_AD(4)" LOC ="D13"; -NET "PCI_P_AD(31)" LOC ="F10"; -NET "PCI_P_AD(30)" LOC ="K14"; -NET "PCI_P_AD(3)" LOC ="E14"; -NET "PCI_P_AD(29)" LOC ="K13"; -NET "PCI_P_AD(28)" LOC ="K12"; -NET "PCI_P_AD(27)" LOC ="J11"; -NET "PCI_P_AD(26)" LOC ="J13"; -NET "PCI_P_AD(25)" LOC ="H13"; -NET "PCI_P_AD(24)" LOC ="H10"; -NET "PCI_P_AD(23)" LOC ="J10"; -NET "PCI_P_AD(22)" LOC ="H14"; -NET "PCI_P_AD(21)" LOC ="H15"; -NET "PCI_P_AD(20)" LOC ="K10"; -NET "PCI_P_AD(2)" LOC ="R10"; -NET "PCI_P_AD(19)" LOC ="L10"; -NET "PCI_P_AD(18)" LOC ="L12"; -NET "PCI_P_AD(17)" LOC ="L11"; -NET "PCI_P_AD(16)" LOC ="G13"; -NET "PCI_P_AD(15)" LOC ="G14"; -NET "PCI_P_AD(14)" LOC ="M11"; -NET "PCI_P_AD(13)" LOC ="M12"; -NET "PCI_P_AD(12)" LOC ="F14"; -NET "PCI_P_AD(11)" LOC ="E13"; -NET "PCI_P_AD(10)" LOC ="N11"; -NET "PCI_P_AD(1)" LOC ="P10"; -NET "PCI_P_AD(0)" LOC ="E15"; -NET "PCI_P_AD(*)" BYPASS; -#NET "PCI_FPGA_IDSEL" LOC ="E10"; - -# Southbridge sideband -NET "SBR_PWG_RSM_RSTJ" LOC ="M17"; -NET "SBR_NMI_R" LOC ="AU29"; -NET "SBR_INTR_R" LOC ="K28"; -NET "SBR_IDE_RST_B" LOC ="AR19"; - -///////////////////////////////////////////////////// -// IIC/SMBus -///////////////////////////////////////////////////// - -NET "IIC_SDA_DVI" LOC ="M7"; -NET "IIC_SCL_DVI" LOC ="L9"; - -NET "FPGA_SDA" LOC ="K8"; -NET "FPGA_SCL" LOC ="L7"; -NET "IIC_THERM_B" LOC ="AN24"; -NET "IIC_RESET_B" LOC ="AK19"; -NET "IIC_IRQ_B" LOC ="AK25"; -NET "IIC_ALERT_B" LOC ="AK18"; - -///////////////////////////////////////////////////// -// SPI -///////////////////////////////////////////////////// - -NET "SPI_DATA_OUT" LOC ="AP7"; -NET "SPI_DATA_IN" LOC ="AP5"; -NET "SPI_DATA_CS_B" LOC ="AL10"; -NET "SPI_CLK" LOC ="AL9"; - -///////////////////////////////////////////////////// -// UARTs -///////////////////////////////////////////////////// - -NET "UART1_TXD" LOC ="T10"; -NET "UART1_RXD" LOC ="V11"; -NET "UART1_RTS_B" LOC ="K9"; -NET "UART1_CTS_B" LOC ="J8"; -NET "UART0_TXD" LOC ="H9"; -NET "UART0_RXD" LOC ="T11"; -NET "UART0_RTS_B" LOC ="J7"; -# Not used by AHBUART: -#NET "UART0_CTS_B" LOC ="H8"; - -///////////////////////////////////////////////////// -// System monitor -///////////////////////////////////////////////////// - -#NET "TEST_MON_VREFP" LOC ="AB22"; -NET "TEST_MON_VP0_P" LOC ="AA22"; -NET "TEST_MON_VN0_N" LOC ="AB21"; -#NET "TEST_MON_AVDD" LOC ="Y22"; - -///////////////////////////////////////////////////// -// PCI Express -///////////////////////////////////////////////////// - -# Slot A -#NET "GTP122_PCIE_SLOTA_CLK_P" LOC ="AT4"; -#NET "GTP122_PCIE_SLOTA_CLK_N" LOC ="AT3"; -#NET "GTP126_PCIE_SLOTA_CLK_P" LOC ="AW4"; -#NET "GTP126_PCIE_SLOTA_CLK_N" LOC ="AY4"; -#NET "PCIE_SLOTA_WAKE_B_R" LOC ="K17"; -#NET "PCIE_SLOTA_PRSNT2_B_R" LOC ="M28"; -#NET "PCIE_SLOTA_PERST_B" LOC ="L27"; -#NET "GTP_122_TX1_P_C" LOC ="AW2"; -#NET "GTP_122_TX1_N_C" LOC ="AV2"; -#NET "GTP_122_TX0_P_C" LOC ="AP2"; -#NET "GTP_122_TX0_N_C" LOC ="AR2"; -#NET "GTP_122_RX1_P" LOC ="AV1"; -#NET "GTP_122_RX1_N" LOC ="AU1"; -#NET "GTP_122_RX0_P" LOC ="AR1"; -#NET "GTP_122_RX0_N" LOC ="AT1"; -#NET "GTP_126_TX1_P_C" LOC ="BA6"; -#NET "GTP_126_TX1_N_C" LOC ="BA5"; -#NET "GTP_126_TX0_P_C" LOC ="BA1"; -#NET "GTP_126_TX0_N_C" LOC ="BA2"; -#NET "GTP_126_RX1_P" LOC ="BB5"; -#NET "GTP_126_RX1_N" LOC ="BB4"; -#NET "GTP_126_RX0_P" LOC ="BB2"; -#NET "GTP_126_RX0_N" LOC ="BB3"; -#NET "GTP_130_TX1_P_C" LOC ="BA12"; -#NET "GTP_130_TX1_N_C" LOC ="BA11"; -#NET "GTP_130_TX0_P_C" LOC ="BA7"; -#NET "GTP_130_TX0_N_C" LOC ="BA8"; -#NET "GTP_130_RX1_P" LOC ="BB11"; -#NET "GTP_130_RX1_N" LOC ="BB10"; -#NET "GTP_130_RX0_P" LOC ="BB8"; -#NET "GTP_130_RX0_N" LOC ="BB9"; -#NET "GTP_130_AVCC_PLL" LOC ="AY11"; -#NET "GTP_130_AVCC" LOC ="AW10"; -#NET "GTP_130_AVCC" LOC ="AY10"; - -# Slot B -#NET "GTP132_PCIE_SLOTB_CLK_P" LOC ="D16"; -#NET "GTP132_PCIE_SLOTB_CLK_N" LOC ="C16"; -#NET "GTP128_PCIE_SLOTB_CLK_P" LOC ="D10"; -#NET "GTP128_PCIE_SLOTB_CLK_N" LOC ="C10"; -#NET "PCIE_SLOTB_WAKE_B_R" LOC ="J30"; -#NET "PCIE_SLOTB_PRSNT2_B_R" LOC ="K15"; -#NET "PCIE_SLOTB_PERST_B" LOC ="L15"; -#NET "GTP_128_TX1_P_C" LOC ="B7"; -#NET "GTP_128_TX1_N_C" LOC ="B8"; -#NET "GTP_128_TX0_P_C" LOC ="B12"; -#NET "GTP_128_TX0_N_C" LOC ="B11"; -#NET "GTP_128_RX1_P" LOC ="A8"; -#NET "GTP_128_RX1_N" LOC ="A9"; -#NET "GTP_128_RX0_P" LOC ="A11"; -#NET "GTP_128_RX0_N" LOC ="A10"; -#NET "GTP_132_TX1_P_C" LOC ="B13"; -#NET "GTP_132_TX1_N_C" LOC ="B14"; -#NET "GTP_132_TX0_P_C" LOC ="B18"; -#NET "GTP_132_TX0_N_C" LOC ="B17"; -#NET "GTP_132_RX1_P" LOC ="A14"; -#NET "GTP_132_RX1_N" LOC ="A15"; -#NET "GTP_132_RX0_P" LOC ="A17"; -#NET "GTP_132_RX0_N" LOC ="A16"; - -///////////////////////////////////////////////////// -// Serial ATA -///////////////////////////////////////////////////// -#NET "GTP_120_TX1_P" LOC ="J2"; -#NET "GTP_120_TX1_N" LOC ="H2"; -#NET "GTP_120_TX0_P" LOC ="D2"; -#NET "GTP_120_TX0_N" LOC ="E2"; -#NET "GTP_120_RX1_P" LOC ="H1"; -#NET "GTP_120_RX1_N" LOC ="G1"; -#NET "GTP_120_RX0_P" LOC ="E1"; -#NET "GTP_120_RX0_N" LOC ="F1"; - -////////////////////////////////////////// -// Personality module -////////////////////////////////////////// -#NET "PM_IO_9_N" LOC ="J25"; -#NET "PM_IO_95_N" LOC ="AV34"; -#NET "PM_IO_94_P" LOC ="AV33"; -#NET "PM_IO_93_N" LOC ="AU33"; -#NET "PM_IO_92_P" LOC ="AU32"; -#NET "PM_IO_91_N" LOC ="AR34"; -#NET "PM_IO_90_P" LOC ="AR35"; -#NET "PM_IO_8_P" LOC ="K25"; -#NET "PM_IO_89_N" LOC ="AT34"; -#NET "PM_IO_88_P" LOC ="AU34"; -#NET "PM_IO_87_N" LOC ="AT35"; -#NET "PM_IO_86_P" LOC ="AU36"; -#NET "PM_IO_85_N" LOC ="AV36"; -#NET "PM_IO_84_P" LOC ="AV35"; -#NET "PM_IO_83_N" LOC ="AJ31"; -#NET "PM_IO_82_P" LOC ="AH31"; -#NET "PM_IO_81_N" LOC ="AG32"; -#NET "PM_IO_80_P" LOC ="AH33"; -#NET "PM_IO_7_N" LOC ="F17"; -#NET "PM_IO_79_N" LOC ="AG33"; -#NET "PM_IO_78_P" LOC ="AF32"; -#NET "PM_IO_77_N" LOC ="AF31"; -#NET "PM_IO_76_P" LOC ="AG31"; -#NET "PM_IO_75_N" LOC ="AF12"; -#NET "PM_IO_74_P" LOC ="AF11"; -#NET "PM_IO_73_N" LOC ="AE10"; -#NET "PM_IO_72_P" LOC ="AE9"; -#NET "PM_IO_71_N" LOC ="AF10"; -#NET "PM_IO_70_P" LOC ="AF9"; -#NET "PM_IO_6_P" LOC ="F16"; -#NET "PM_IO_69_N" LOC ="AE8"; -#NET "PM_IO_68_P" LOC ="AD8"; -#NET "PM_IO_67_N" LOC ="AE7"; -#NET "PM_IO_66_P" LOC ="AF7"; -#NET "PM_IO_65_N" LOC ="AD5"; -#NET "PM_IO_64_P" LOC ="AE5"; -#NET "PM_IO_63_N" LOC ="AG7"; -#NET "PM_IO_62_P" LOC ="AG6"; -#NET "PM_IO_61_N" LOC ="AF6"; -#NET "PM_IO_60_P" LOC ="AF5"; -#NET "PM_IO_5_N" LOC ="L25"; -#NET "PM_IO_59_N" LOC ="AC6"; -#NET "PM_IO_58_P" LOC ="AC5"; -#NET "PM_IO_57_N" LOC ="AB6"; -#NET "PM_IO_56_P" LOC ="AB7"; -#NET "PM_IO_55_N" LOC ="AH4"; -#NET "PM_IO_54_P" LOC ="AG4"; -#NET "PM_IO_53_N" LOC ="AD11"; -#NET "PM_IO_52_P" LOC ="AD10"; -#NET "PM_IO_51_N" LOC ="AH5"; -#NET "PM_IO_50_P" LOC ="AH6"; -#NET "PM_IO_4_P" LOC ="K24"; -#NET "PM_IO_49_N" LOC ="AC9"; -#NET "PM_IO_48_P" LOC ="AC8"; -#NET "PM_IO_47_N_J" LOC ="AJ5"; -#NET "PM_IO_46_P_J" LOC ="AJ6"; -#NET "PM_IO_45_N" LOC ="AB8"; -#NET "PM_IO_44_P" LOC ="AB9"; -#NET "PM_IO_43_N" LOC ="AK5"; -#NET "PM_IO_42_P" LOC ="AL5"; -#NET "PM_IO_41_N" LOC ="AC10"; -#NET "PM_IO_40_P" LOC ="AB11"; -#NET "PM_IO_3_N" LOC ="E17"; -#NET "PM_IO_3V_9_N" LOC ="U6"; -#NET "PM_IO_3V_8_N" LOC ="J5"; -#NET "PM_IO_3V_7_N" LOC ="M6"; -#NET "PM_IO_3V_6_P" LOC ="H6"; -#NET "PM_IO_3V_5_P" LOC ="N5"; -#NET "PM_IO_3V_4_P" LOC ="AA7"; -#NET "PM_IO_3V_3_P" LOC ="K4"; -#NET "PM_IO_3V_2_N" LOC ="K5"; -#NET "PM_IO_3V_25_N" LOC ="V6"; -#NET "PM_IO_3V_24_P" LOC ="T7"; -#NET "PM_IO_3V_23_N" LOC ="W7"; -#NET "PM_IO_3V_22_P" LOC ="L6"; -#NET "PM_IO_3V_21_N" LOC ="H5"; -#NET "PM_IO_3V_20_P" LOC ="G6"; -#NET "PM_IO_3V_1_N" LOC ="L5"; -#NET "PM_IO_3V_19_N" LOC ="T6"; -#NET "PM_IO_3V_18_P" LOC ="V5"; -#NET "PM_IO_3V_17_N" LOC ="N6"; -#NET "PM_IO_3V_16_N" LOC ="V8"; -#NET "PM_IO_3V_15_N" LOC ="W6"; -#NET "PM_IO_3V_14_P" LOC ="J6"; -#NET "PM_IO_3V_13_P" LOC ="U7"; -#NET "PM_IO_3V_12_P" LOC ="W8"; -#NET "PM_IO_3V_11_P" LOC ="Y7"; -#NET "PM_IO_3V_10_N" LOC ="AA6"; -#NET "PM_IO_3V_0_P" LOC ="W5"; -#NET "PM_IO_39_N" LOC ="AK7"; -#NET "PM_IO_38_P" LOC ="AJ7"; -#NET "PM_IO_37_N_J" LOC ="H30"; -#NET "PM_IO_36_P_J" LOC ="H29"; -#NET "PM_IO_35_N" LOC ="L19"; -#NET "PM_IO_34_P" LOC ="L20"; -#NET "PM_IO_33_N" LOC ="F29"; -#NET "PM_IO_32_P" LOC ="G29"; -#NET "PM_IO_31_N" LOC ="N18"; -#NET "PM_IO_30_P" LOC ="M18"; -#NET "PM_IO_2_P" LOC ="E18"; -#NET "PM_IO_29_N" LOC ="H28"; -#NET "PM_IO_28_P" LOC ="G28"; -#NET "PM_IO_27_N" LOC ="N19"; -#NET "PM_IO_26_P" LOC ="M19"; -#NET "PM_IO_25_N" LOC ="F27"; -#NET "PM_IO_24_P" LOC ="G27"; -#NET "PM_IO_23_N" LOC ="L26"; -#NET "PM_IO_22_P" LOC ="K27"; -#NET "PM_IO_21_N" LOC ="K19"; -#NET "PM_IO_20_P" LOC ="K18"; -#NET "PM_IO_1_N" LOC ="M24"; -#NET "PM_IO_19_N" LOC ="H18"; -#NET "PM_IO_18_P" LOC ="J18"; -#NET "PM_IO_17_N" LOC ="J27"; -#NET "PM_IO_16_P" LOC ="J28"; -#NET "PM_IO_15_N" LOC ="G17"; -#NET "PM_IO_14_P" LOC ="G18"; -#NET "PM_IO_13_N" LOC ="J26"; -#NET "PM_IO_12_P" LOC ="H26"; -#NET "PM_IO_11_N" LOC ="H16"; -#NET "PM_IO_10_P" LOC ="G16"; -#NET "PM_IO_0_P" LOC ="L24"; -#NET "PM_CLK_TOP" LOC ="M27"; -#NET "PM_CLK_BOT" LOC ="L14"; - -////////////////////////////////////////// -// RocketIO -////////////////////////////////////////// -#NET "GTP_VREF" LOC ="AA4"; -#NET "GTP_134_VTTTX" LOC ="AY13"; -#NET "GTP_134_VTTTX" LOC ="AY18"; -#NET "GTP_134_VTTRX" LOC ="AY14"; -#NET "GTP_134_TX1_P_C" LOC ="BA18"; -#NET "GTP_134_TX1_N_C" LOC ="BA17"; -#NET "GTP_134_TX0_P_C" LOC ="BA13"; -#NET "GTP_134_TX0_N_C" LOC ="BA14"; -#NET "GTP_134_RX1_P" LOC ="BB17"; -#NET "GTP_134_RX1_N" LOC ="BB16"; -#NET "GTP_134_RX0_P" LOC ="BB14"; -#NET "GTP_134_RX0_N" LOC ="BB15"; -#NET "GTP_134_AVCC_PLL" LOC ="AY17"; -#NET "GTP_134_AVCC" LOC ="AW16"; -#NET "GTP_134_AVCC" LOC ="AY16"; -#NET "GTP_132_VTTTX" LOC ="C13"; -#NET "GTP_132_VTTTX" LOC ="C18"; -#NET "GTP_132_VTTRX" LOC ="C17"; -#NET "GTP_132_AVCC_PLL" LOC ="C14"; -#NET "GTP_132_AVCC" LOC ="C15"; -#NET "GTP_132_AVCC" LOC ="D15"; -#NET "GTP_130_VTTTX" LOC ="AY12"; -#NET "GTP_130_VTTTX" LOC ="AY7"; -#NET "GTP_130_VTTRX" LOC ="AY8"; -#NET "GTP_128_VTTTX" LOC ="C12"; -#NET "GTP_128_VTTTX" LOC ="C7"; -#NET "GTP_128_VTTRX" LOC ="C11"; -#NET "GTP_128_AVCC_PLL" LOC ="C8"; -#NET "GTP_128_AVCC" LOC ="C9"; -#NET "GTP_128_AVCC" LOC ="D9"; -#NET "GTP_126_VTTTX" LOC ="AY1"; -#NET "GTP_126_VTTTX" LOC ="AY6"; -#NET "GTP_126_VTTRX" LOC ="AY2"; -#NET "GTP_126_AVCC_PLL" LOC ="AY5"; -#NET "GTP_126_AVCC" LOC ="AW5"; -#NET "GTP_126_AVCC" LOC ="AY3"; -#NET "GTP_124_VTTTX" LOC ="C1"; -#NET "GTP_124_VTTTX" LOC ="C6"; -#NET "GTP_124_VTTRX" LOC ="C5"; -#NET "GTP_124_TX1_P" LOC ="B1"; -#NET "GTP_124_TX1_N" LOC ="B2"; -#NET "GTP_124_TX0_P" LOC ="B6"; -#NET "GTP_124_TX0_N" LOC ="B5"; -#NET "GTP_124_RX1_P" LOC ="A2"; -#NET "GTP_124_RX1_N" LOC ="A3"; -#NET "GTP_124_RX0_P" LOC ="A5"; -#NET "GTP_124_RX0_N" LOC ="A4"; -#NET "GTP_124_RTERM" LOC ="Y5"; -#NET "GTP_124_AVCC_PLL" LOC ="C2"; -#NET "GTP_124_AVCC" LOC ="D4"; -#NET "GTP_124_AVCC" LOC ="D5"; -#NET "GTP_122_VTTTX" LOC ="AP3"; -#NET "GTP_122_VTTTX" LOC ="AW3"; -#NET "GTP_122_VTTRX" LOC ="AR3"; -#NET "GTP_122_AVCC_PLL" LOC ="AV3"; -#NET "GTP_122_AVCC" LOC ="AU3"; -#NET "GTP_122_AVCC" LOC ="AU4"; -#NET "GTP_120_VTTTX" LOC ="D3"; -#NET "GTP_120_VTTTX" LOC ="J3"; -#NET "GTP_120_VTTRX" LOC ="E3"; -#NET "GTP_120_AVCC_PLL" LOC ="H3"; -#NET "GTP_120_AVCC" LOC ="G3"; -#NET "GTP_120_AVCC" LOC ="G4"; -#NET "GTP_118_VTTTX" LOC ="AH3"; -#NET "GTP_118_VTTTX" LOC ="AN3"; -#NET "GTP_118_VTTRX" LOC ="AJ3"; -#NET "GTP_118_TX1_P" LOC ="AN2"; -#NET "GTP_118_TX1_N" LOC ="AM2"; -#NET "GTP_118_TX0_P" LOC ="AH2"; -#NET "GTP_118_TX0_N" LOC ="AJ2"; -#NET "GTP_118_RX1_P" LOC ="AM1"; -#NET "GTP_118_RX1_N" LOC ="AL1"; -#NET "GTP_118_RX0_P" LOC ="AJ1"; -#NET "GTP_118_RX0_N" LOC ="AK1"; -#NET "GTP_118_AVCC_PLL" LOC ="AM3"; -#NET "GTP_118_AVCC" LOC ="AL3"; -#NET "GTP_118_AVCC" LOC ="AL4"; -#NET "GTP_116_VTTTX" LOC ="K3"; -#NET "GTP_116_VTTTX" LOC ="R3"; -#NET "GTP_116_VTTRX" LOC ="L3"; -#NET "GTP_116_TX1_P" LOC ="R2"; -#NET "GTP_116_TX1_N" LOC ="P2"; -#NET "GTP_116_TX0_P" LOC ="K2"; -#NET "GTP_116_TX0_N" LOC ="L2"; -#NET "GTP_116_RX1_P" LOC ="P1"; -#NET "GTP_116_RX1_N" LOC ="N1"; -#NET "GTP_116_RX0_P" LOC ="L1"; -#NET "GTP_116_RX0_N" LOC ="M1"; -#NET "GTP_116_AVCC_PLL" LOC ="P3"; -#NET "GTP_116_AVCC" LOC ="N3"; -#NET "GTP_116_AVCC" LOC ="N4"; -#NET "GTP_114_VTTTX" LOC ="AB3"; -#NET "GTP_114_VTTTX" LOC ="AG3"; -#NET "GTP_114_VTTRX" LOC ="AC3"; -#NET "GTP_114_TX1_P" LOC ="AG2"; -#NET "GTP_114_TX1_N" LOC ="AF2"; -#NET "GTP_114_TX0_P" LOC ="AB2"; -#NET "GTP_114_TX0_N" LOC ="AC2"; -#NET "GTP_114_RX1_P" LOC ="AF1"; -#NET "GTP_114_RX1_N" LOC ="AE1"; -#NET "GTP_114_RX0_P" LOC ="AC1"; -#NET "GTP_114_RX0_N" LOC ="AD1"; -#NET "GTP_114_GTPCLK_P" LOC ="AD4"; -#NET "GTP_114_GTPCLK_N" LOC ="AD3"; -#NET "GTP_114_AVCC_PLL" LOC ="AF3"; -#NET "GTP_114_AVCC" LOC ="AE3"; -#NET "GTP_114_AVCC" LOC ="AE4"; -#NET "GTP_112_VTTTX" LOC ="AA3"; -#NET "GTP_112_VTTTX" LOC ="T3"; -#NET "GTP_112_VTTRX" LOC ="U3"; -#NET "GTP_112_TX1_P" LOC ="AA2"; -#NET "GTP_112_TX1_N" LOC ="Y2"; -#NET "GTP_112_TX0_P" LOC ="T2"; -#NET "GTP_112_TX0_N" LOC ="U2"; -#NET "GTP_112_RX1_P" LOC ="Y1"; -#NET "GTP_112_RX1_N" LOC ="W1"; -#NET "GTP_112_RX0_P" LOC ="U1"; -#NET "GTP_112_RX0_N" LOC ="V1"; -#NET "GTP_112_RREF" LOC ="AB4"; -#NET "GTP_112_AVCC_PLL" LOC ="Y3"; -#NET "GTP_112_AVCC" LOC ="W3"; -#NET "GTP_112_AVCC" LOC ="W4"; - -////////////////////////////////////////// - -#NET "VTRXC" LOC ="AA5"; -#NET "VRP_BANK6" LOC ="AP18"; -#NET "VRP_BANK5" LOC ="P20"; -#NET "VRP_BANK23" LOC ="K34"; -#NET "VRP_BANK21" LOC ="AP36"; -#NET "VRP_BANK19" LOC ="G37"; -#NET "VRP_BANK18" LOC ="AD7"; -#NET "VRP_BANK17" LOC ="AH39"; -#NET "VRP_BANK15" LOC ="U37"; -#NET "VRP_BANK13" LOC ="AL40"; -#NET "VRP_BANK12" LOC ="P6"; -#NET "VRN_BANK6" LOC ="AR18"; -#NET "VRN_BANK5" LOC ="N20"; -#NET "VRN_BANK23" LOC ="L34"; -#NET "VRN_BANK21" LOC ="AP37"; -#NET "VRN_BANK19" LOC ="H36"; -#NET "VRN_BANK18" LOC ="AD6"; -#NET "VRN_BANK17" LOC ="AG39"; -#NET "VRN_BANK15" LOC ="V38"; -#NET "VRN_BANK13" LOC ="AK40"; -#NET "VRN_BANK12" LOC ="P5"; -#NET "VREF_DDR2" LOC ="T41"; -#NET "VDDA_SATACLK" LOC ="AA8"; -#NET "VDDA_SATACLK" LOC ="U10"; -#NET "VCC3_PCI" LOC ="L8"; -#NET "VCC3V3" LOC ="AG30"; -#NET "VCC2V5" LOC ="E26"; -#NET "VCC1V8" LOC ="AA38"; -#NET "VCC1V0" LOC ="AA14"; - -#NET "FPGA_VBATT" LOC ="P30"; -#NET "FPGA_TMS" LOC ="AH15"; -#NET "FPGA_TDO" LOC ="AJ15"; -#NET "FPGA_TDI" LOC ="AH16"; -#NET "FPGA_TCK" LOC ="AG29"; - -#NET "FPGA_PROG_B" LOC ="R29"; -#NET "FPGA_MODE_2" LOC ="AJ28"; -#NET "FPGA_MODE_1" LOC ="AH30"; -#NET "FPGA_MODE_0" LOC ="AH29"; -#NET "FPGA_LED_USER2" LOC ="AL24"; -#NET "FPGA_LED_USER1" LOC ="AM19"; - -#NET "FPGA_HSWAP" LOC ="P15"; -#NET "FPGA_DX_P" LOC ="AC22"; -#NET "FPGA_DX_N" LOC ="AC21"; - -#NET "FPGA_CCLK" LOC ="AH14"; -#NET "FPGA_A22" LOC ="AK14"; - -#NET "$3N7315" LOC ="R30"; -#NET "$3N7288" LOC ="AF30"; -#NET "$3N7283" LOC ="T30"; diff --git a/designs/leon3-xilinx-ml510/mig.diff b/designs/leon3-xilinx-ml510/mig.diff deleted file mode 100644 index 7e030fb7..00000000 --- a/designs/leon3-xilinx-ml510/mig.diff +++ /dev/null @@ -1,98 +0,0 @@ -diff -Naur mig_36_1/user_design/rtl/ddr2_infrastructure.vhd mig_36_1_ddr2/user_design/rtl/ddr2_infrastructure.vhd ---- mig_36_1/user_design/rtl/ddr2_infrastructure.vhd 2011-09-22 11:29:57.000000000 +0200 -+++ mig_36_1_ddr2/user_design/rtl/ddr2_infrastructure.vhd 2011-09-22 16:02:13.000000000 +0200 -@@ -104,7 +104,8 @@ - rst0 : out std_logic; - rst90 : out std_logic; - rst200 : out std_logic; -- rstdiv0 : out std_logic -+ rstdiv0 : out std_logic; -+ clkinp : out std_logic - ); - end entity ddr2_infrastructure; - -@@ -166,6 +167,7 @@ - clk90 <= clk90_bufg; - clk200 <= clk200_bufg; - clkdiv0 <= clkdiv0_bufg; -+ clkinp <= sys_clk_ibufg; - - DIFF_ENDED_CLKS_INST : if(CLK_TYPE = "DIFFERENTIAL") generate - begin -@@ -220,7 +222,7 @@ - end generate; - - NOCLK200_CHECK_GND: if ( (NOCLK200 = true) and (CLK_TYPE = "SINGLE_ENDED")) generate -- clk200_bufg <= '0'; -+ clk200_bufg <= idly_clk_200; - end generate; - - -@@ -233,7 +235,7 @@ - u_pll_adv: PLL_ADV - generic map ( - BANDWIDTH => "OPTIMIZED", -- CLKIN1_PERIOD => CLK_PERIOD_NS, -+ CLKIN1_PERIOD => CLK_PERIOD_NS*2.0, - CLKIN2_PERIOD => 10.000, - CLKOUT0_DIVIDE => CLK_PERIOD_INT, - CLKOUT1_DIVIDE => CLK_PERIOD_INT, -@@ -255,7 +257,7 @@ - CLKOUT5_DUTY_CYCLE => 0.500, - COMPENSATION => "SYSTEM_SYNCHRONOUS", - DIVCLK_DIVIDE => 1, -- CLKFBOUT_MULT => CLK_PERIOD_INT, -+ CLKFBOUT_MULT => CLK_PERIOD_INT*2, - CLKFBOUT_PHASE => 0.0, - REF_JITTER => 0.005000 - ) -diff -Naur mig_36_1/user_design/rtl/mig_36_1.vhd mig_36_1_ddr2/user_design/rtl/mig_36_1.vhd ---- mig_36_1/user_design/rtl/mig_36_1.vhd 2011-09-22 11:29:57.000000000 +0200 -+++ mig_36_1_ddr2/user_design/rtl/mig_36_1.vhd 2011-09-22 14:19:51.000000000 +0200 -@@ -195,7 +195,9 @@ - ddr2_dqs : inout std_logic_vector((DQS_WIDTH-1) downto 0); - ddr2_dqs_n : inout std_logic_vector((DQS_WIDTH-1) downto 0); - ddr2_ck : out std_logic_vector((CLK_WIDTH-1) downto 0); -- ddr2_ck_n : out std_logic_vector((CLK_WIDTH-1) downto 0) -+ ddr2_ck_n : out std_logic_vector((CLK_WIDTH-1) downto 0); -+ clk100 : out std_ulogic; -+ clkdiv : out std_ulogic - ); - - end entity mig_36_1; -@@ -240,17 +242,18 @@ - clk200_p : in std_logic; - clk200_n : in std_logic; - idly_clk_200 : in std_logic; -- sys_rst_n : in std_logic; -- rst0 : out std_logic; -- rst90 : out std_logic; -- rstdiv0 : out std_logic; -- rst200 : out std_logic; - clk0 : out std_logic; - clk90 : out std_logic; -- clkdiv0 : out std_logic; - clk200 : out std_logic; -- idelay_ctrl_rdy : in std_logic -+ clkdiv0 : out std_logic; - -+ sys_rst_n : in std_logic; -+ idelay_ctrl_rdy : in std_logic; -+ rst0 : out std_logic; -+ rst90 : out std_logic; -+ rst200 : out std_logic; -+ rstdiv0 : out std_logic; -+ clkinp : out std_logic - ); - end component; - -@@ -473,7 +476,8 @@ - clk90 => clk90, - clkdiv0 => clkdiv0, - clk200 => clk200, -- idelay_ctrl_rdy => idelay_ctrl_rdy -+ idelay_ctrl_rdy => idelay_ctrl_rdy, -+ clkinp => clk100 - ); - - u_ddr2_top_0 : ddr2_top diff --git a/designs/leon3-xilinx-ml510/mig.prj b/designs/leon3-xilinx-ml510/mig.prj deleted file mode 100644 index 92e3d249..00000000 --- a/designs/leon3-xilinx-ml510/mig.prj +++ /dev/null @@ -1,61 +0,0 @@ - - - 1 - mig_36_1 - 0 - 1 - 0 - Class II - Disable - xc5vfx130t-ff1738/-2 - 3.6.1 - Single-Ended - FALSE - HIGH - - DDR2_SDRAM/RDIMMs/MT9HTF6472Y-40E - 5000 - 72 - 1 - 1 - FALSE - - 14 - 10 - 2 - - - - ECC Disabled - - - - - - - - - - - - - - - 4(010) - sequential(0) - 3(011) - normal(0) - no(0) - fast exit(0) - 3(010) - Enable-Normal(0) - Fullstrength(0) - 75ohms(01) - 0(000) - OCD Exit(000) - Enable(0) - Disable(0) - Enable(0) - NATIVE - - diff --git a/designs/leon3-xilinx-ml510/mig_ddr2.prj b/designs/leon3-xilinx-ml510/mig_ddr2.prj deleted file mode 100644 index 78d72af6..00000000 --- a/designs/leon3-xilinx-ml510/mig_ddr2.prj +++ /dev/null @@ -1,61 +0,0 @@ - - - 1 - mig_36_1 - 0 - 1 - 0 - Class II - Disable - xc5vfx130t-ff1738/-2 - 3.6.1 - Single-Ended - FALSE - HIGH - - DDR2_SDRAM/UDIMMs/MT4HTF3264AY-40E - 5000 - 64 - 1 - 1 - FALSE - - 13 - 10 - 2 - - - - ECC Disabled - - - - - - - - - - - - - - - 4(010) - sequential(0) - 3(011) - normal(0) - no(0) - fast exit(0) - - Enable-Normal(0) - Fullstrength(0) - 75ohms(01) - 0(000) - OCD Exit(000) - Enable(0) - Disable(0) - Enable(0) - NATIVE - - diff --git a/designs/leon3-xilinx-ml510/mig_rdimm.prj b/designs/leon3-xilinx-ml510/mig_rdimm.prj deleted file mode 100644 index 92e3d249..00000000 --- a/designs/leon3-xilinx-ml510/mig_rdimm.prj +++ /dev/null @@ -1,61 +0,0 @@ - - - 1 - mig_36_1 - 0 - 1 - 0 - Class II - Disable - xc5vfx130t-ff1738/-2 - 3.6.1 - Single-Ended - FALSE - HIGH - - DDR2_SDRAM/RDIMMs/MT9HTF6472Y-40E - 5000 - 72 - 1 - 1 - FALSE - - 14 - 10 - 2 - - - - ECC Disabled - - - - - - - - - - - - - - - 4(010) - sequential(0) - 3(011) - normal(0) - no(0) - fast exit(0) - 3(010) - Enable-Normal(0) - Fullstrength(0) - 75ohms(01) - 0(000) - OCD Exit(000) - Enable(0) - Disable(0) - Enable(0) - NATIVE - - diff --git a/designs/leon3-xilinx-ml510/mig_rdimm_333.prj b/designs/leon3-xilinx-ml510/mig_rdimm_333.prj deleted file mode 100644 index d291f059..00000000 --- a/designs/leon3-xilinx-ml510/mig_rdimm_333.prj +++ /dev/null @@ -1,61 +0,0 @@ - - - 1 - mig_36_1 - 0 - 1 - 0 - Class II - Disable - xc5vfx130t-ff1738/-2 - 3.6.1 - Single-Ended - FALSE - HIGH - - DDR2_SDRAM/RDIMMs/MT9HTF6472Y-667 - 5000 - 72 - 1 - 1 - FALSE - - 14 - 10 - 2 - - - - ECC Disabled - - - - - - - - - - - - - - - 4(010) - sequential(0) - 5(101) - normal(0) - no(0) - fast exit(0) - 5(100) - Enable-Normal(0) - Fullstrength(0) - 75ohms(01) - 0(000) - OCD Exit(000) - Enable(0) - Disable(0) - Enable(0) - NATIVE - - diff --git a/designs/leon3-xilinx-ml510/rdimm_ddr2.diff b/designs/leon3-xilinx-ml510/rdimm_ddr2.diff deleted file mode 100644 index 4cca8c1d..00000000 --- a/designs/leon3-xilinx-ml510/rdimm_ddr2.diff +++ /dev/null @@ -1,834 +0,0 @@ -diff -Naur mig_36_1/example_design/datasheet.txt mig_36_1.org/example_design/datasheet.txt ---- mig_36_1/example_design/datasheet.txt 2011-09-25 23:35:44.000000000 +0200 -+++ mig_36_1.org/example_design/datasheet.txt 2011-09-22 11:29:57.000000000 +0200 -@@ -33,10 +33,10 @@ - Controller Options : - Memory : DDR2_SDRAM - Design Clock Frequency : 5000 ps(200.00 MHz) -- Memory Type : RDIMMs -- Memory Part : MT9HTF6472Y-40E -+ Memory Type : UDIMMs -+ Memory Part : MT4HTF3264AY-40E - Equivalent Part(s) : -- -- Data Width : 72 -+ Data Width : 64 - Memory Depth : 1 - ECC : ECC Disabled - Data Mask : enabled -@@ -57,7 +57,7 @@ - bank 13(38) -> Number of pins used : 0 - bank 15(38) -> Number of pins used : 0 - bank 17(38) -> Number of pins used : 0 -- bank 19(38) -> Number of pins used : 33 -+ bank 19(38) -> Number of pins used : 22 - bank 21(38) -> Number of pins used : 0 - bank 23(38) -> Number of pins used : 33 - bank 25(38) -> Number of pins used : 0 -@@ -66,9 +66,9 @@ - - Address/Control:bank 11(38) -> Number of pins used : 0 - bank 13(38) -> Number of pins used : 0 -- bank 15(38) -> Number of pins used : 16 -+ bank 15(38) -> Number of pins used : 7 - bank 17(38) -> Number of pins used : 0 -- bank 19(38) -> Number of pins used : 3 -+ bank 19(38) -> Number of pins used : 14 - bank 21(38) -> Number of pins used : 0 - bank 23(38) -> Number of pins used : 3 - bank 25(38) -> Number of pins used : 0 -@@ -89,5 +89,5 @@ - System Clock :bank 3(19) -> Number of pins used : 2 - bank 4(19) -> Number of pins used : 0 - -- Total IOs used : 129 -+ Total IOs used : 120 - -diff -Naur mig_36_1/example_design/log.txt mig_36_1.org/example_design/log.txt ---- mig_36_1/example_design/log.txt 2011-09-25 23:35:44.000000000 +0200 -+++ mig_36_1.org/example_design/log.txt 2011-09-22 11:29:57.000000000 +0200 -@@ -1,6 +1,6 @@ - Log file - --Generated by MIG MIG Version 3.6.1Build NumberSW_VERSION on Sun Sep 25 23:35:43 2011 -+Generated by MIG MIG Version 3.6.1Build NumberSW_VERSION on Thu Sep 22 11:29:55 2011 - - - Reading design libraries of xc5vfx130t-ff1738... successful ! -@@ -37,10 +37,10 @@ - Allocating pins to System Control signals ...successful! - Allocating pins to system clock signals ...successful! - Copying all the files from docs ... --copying /home/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/adr_cntrl_timing.xls to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs --copying /home/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/read_data_timing.xls to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs --copying /home/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/write_data_timing.xls to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs --copying /home/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/xapp858.url to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs -+copying /usr/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/adr_cntrl_timing.xls to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs -+copying /usr/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/read_data_timing.xls to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs -+copying /usr/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/write_data_timing.xls to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs -+copying /usr/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/xapp858.url to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs - Generating the file /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/example_design/rtl/ddr2_chipscope.vhd ...successful! - Generating the file /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/example_design/rtl/ddr2_ctrl.vhd ...successful! - Generating the file /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/example_design/rtl/ddr2_top.vhd ...successful! -diff -Naur mig_36_1/example_design/mig.prj mig_36_1.org/example_design/mig.prj ---- mig_36_1/example_design/mig.prj 2011-09-25 23:35:44.000000000 +0200 -+++ mig_36_1.org/example_design/mig.prj 2011-09-22 11:29:57.000000000 +0200 -@@ -13,14 +13,14 @@ - FALSE - HIGH - -- DDR2_SDRAM/RDIMMs/MT9HTF6472Y-40E -+ DDR2_SDRAM/UDIMMs/MT4HTF3264AY-40E - 5000 -- 72 -+ 64 - 1 - 1 - FALSE - -- 14 -+ 13 - 10 - 2 - -@@ -47,7 +47,7 @@ - normal(0) - no(0) - fast exit(0) -- 3(010) -+ - Enable-Normal(0) - Fullstrength(0) - 75ohms(01) -diff -Naur mig_36_1/example_design/par/mig_36_1.ucf mig_36_1.org/example_design/par/mig_36_1.ucf ---- mig_36_1/example_design/par/mig_36_1.ucf 2011-09-25 23:35:43.000000000 +0200 -+++ mig_36_1.org/example_design/par/mig_36_1.ucf 2011-09-22 11:29:57.000000000 +0200 -@@ -1,7 +1,7 @@ - ############################################################################ - ## - ## Xilinx, Inc. 2006 www.xilinx.com --## Sun Sep 25 23:35:43 2011 -+## Thu Sep 22 11:29:55 2011 - ## Generated by MIG Version 3.6.1 - ## - ############################################################################ -@@ -32,8 +32,8 @@ - ############################################################################ - ######################################################################## - # Controller 0 --# Memory Device: DDR2_SDRAM->RDIMMs->MT9HTF6472Y-40E --# Data Width: 72 -+# Memory Device: DDR2_SDRAM->UDIMMs->MT4HTF3264AY-40E -+# Data Width: 64 - # Frequency: 200 - # Time Period: 5000 - # Data Mask: 1 -@@ -53,7 +53,6 @@ - NET "ddr2_cs_n[*]" IOSTANDARD = SSTL18_II; - NET "ddr2_odt[*]" IOSTANDARD = SSTL18_II; - NET "ddr2_cke[*]" IOSTANDARD = SSTL18_II; --NET "ddr2_reset_n" IOSTANDARD = LVCMOS18; - NET "ddr2_dm[*]" IOSTANDARD = SSTL18_II_DCI; - NET "sys_clk" IOSTANDARD = LVCMOS25; - NET "idly_clk_200" IOSTANDARD = LVCMOS25; -@@ -133,37 +132,27 @@ - NET "ddr2_dq[61]" LOC = "F36" ; #Bank 19 - NET "ddr2_dq[62]" LOC = "G36" ; #Bank 19 - NET "ddr2_dq[63]" LOC = "F37" ; #Bank 19 --NET "ddr2_dq[64]" LOC = "E38" ; #Bank 19 --NET "ddr2_dq[65]" LOC = "D37" ; #Bank 19 --NET "ddr2_dq[66]" LOC = "V35" ; #Bank 19 --NET "ddr2_dq[67]" LOC = "V34" ; #Bank 19 --NET "ddr2_dq[68]" LOC = "W33" ; #Bank 19 --NET "ddr2_dq[69]" LOC = "Y33" ; #Bank 19 --NET "ddr2_dq[70]" LOC = "W32" ; #Bank 19 --NET "ddr2_dq[71]" LOC = "Y32" ; #Bank 19 --NET "ddr2_a[13]" LOC = "D42" ; #Bank 27 --NET "ddr2_a[12]" LOC = "E32" ; #Bank 23 --NET "ddr2_a[11]" LOC = "E33" ; #Bank 23 --NET "ddr2_a[10]" LOC = "T31" ; #Bank 23 --NET "ddr2_a[9]" LOC = "U36" ; #Bank 19 --NET "ddr2_a[8]" LOC = "V36" ; #Bank 19 --NET "ddr2_a[7]" LOC = "AA32" ; #Bank 19 --NET "ddr2_a[6]" LOC = "H38" ; #Bank 15 --NET "ddr2_a[5]" LOC = "H39" ; #Bank 15 --NET "ddr2_a[4]" LOC = "G38" ; #Bank 15 --NET "ddr2_a[3]" LOC = "G39" ; #Bank 15 --NET "ddr2_a[2]" LOC = "F39" ; #Bank 15 --NET "ddr2_a[1]" LOC = "F40" ; #Bank 15 --NET "ddr2_a[0]" LOC = "E39" ; #Bank 15 --NET "ddr2_ba[1]" LOC = "E40" ; #Bank 15 --NET "ddr2_ba[0]" LOC = "R39" ; #Bank 15 --NET "ddr2_ras_n" LOC = "R37" ; #Bank 15 --NET "ddr2_cas_n" LOC = "P37" ; #Bank 15 --NET "ddr2_we_n" LOC = "P38" ; #Bank 15 --NET "ddr2_cs_n[0]" LOC = "N38" ; #Bank 15 --NET "ddr2_odt[0]" LOC = "N39" ; #Bank 15 --NET "ddr2_cke[0]" LOC = "M39" ; #Bank 15 --NET "ddr2_reset_n" LOC = "M38" ; #Bank 15 -+NET "ddr2_a[12]" LOC = "D42" ; #Bank 27 -+NET "ddr2_a[11]" LOC = "T31" ; #Bank 23 -+NET "ddr2_a[10]" LOC = "U36" ; #Bank 19 -+NET "ddr2_a[9]" LOC = "V36" ; #Bank 19 -+NET "ddr2_a[8]" LOC = "E38" ; #Bank 19 -+NET "ddr2_a[7]" LOC = "D37" ; #Bank 19 -+NET "ddr2_a[6]" LOC = "V35" ; #Bank 19 -+NET "ddr2_a[5]" LOC = "V34" ; #Bank 19 -+NET "ddr2_a[4]" LOC = "V33" ; #Bank 19 -+NET "ddr2_a[3]" LOC = "W33" ; #Bank 19 -+NET "ddr2_a[2]" LOC = "Y33" ; #Bank 19 -+NET "ddr2_a[1]" LOC = "W32" ; #Bank 19 -+NET "ddr2_a[0]" LOC = "Y32" ; #Bank 19 -+NET "ddr2_ba[1]" LOC = "AA32" ; #Bank 19 -+NET "ddr2_ba[0]" LOC = "H38" ; #Bank 15 -+NET "ddr2_ras_n" LOC = "H39" ; #Bank 15 -+NET "ddr2_cas_n" LOC = "G38" ; #Bank 15 -+NET "ddr2_we_n" LOC = "G39" ; #Bank 15 -+NET "ddr2_cs_n[0]" LOC = "F39" ; #Bank 15 -+NET "ddr2_odt[0]" LOC = "F40" ; #Bank 15 -+NET "ddr2_cke[0]" LOC = "E39" ; #Bank 15 - NET "ddr2_dm[0]" LOC = "A30" ; #Bank 27 - NET "ddr2_dm[1]" LOC = "A34" ; #Bank 27 - NET "ddr2_dm[2]" LOC = "B42" ; #Bank 27 -@@ -172,12 +161,11 @@ - NET "ddr2_dm[5]" LOC = "R33" ; #Bank 23 - NET "ddr2_dm[6]" LOC = "L37" ; #Bank 19 - NET "ddr2_dm[7]" LOC = "K37" ; #Bank 19 --NET "ddr2_dm[8]" LOC = "V33" ; #Bank 19 - NET "sys_clk" LOC = "J17" ; #Bank 3 - NET "idly_clk_200" LOC = "M27" ; #Bank 3 --NET "sys_rst_n" LOC = "L39" ; #Bank 15 --NET "phy_init_done" LOC = "K38" ; #Bank 15 --NET "error" LOC = "J38" ; #Bank 15 -+NET "sys_rst_n" LOC = "E40" ; #Bank 15 -+NET "phy_init_done" LOC = "R39" ; #Bank 15 -+NET "error" LOC = "R37" ; #Bank 15 - NET "ddr2_dqs[0]" LOC = "D35" ; #Bank 27 - NET "ddr2_dqs_n[0]" LOC = "D36" ; #Bank 27 - NET "ddr2_dqs[1]" LOC = "C36" ; #Bank 27 -@@ -194,10 +182,12 @@ - NET "ddr2_dqs_n[6]" LOC = "T35" ; #Bank 19 - NET "ddr2_dqs[7]" LOC = "T34" ; #Bank 19 - NET "ddr2_dqs_n[7]" LOC = "U33" ; #Bank 19 --NET "ddr2_dqs[8]" LOC = "R35" ; #Bank 19 --NET "ddr2_dqs_n[8]" LOC = "T36" ; #Bank 19 - NET "ddr2_ck[0]" LOC = "B37" ; #Bank 27 - NET "ddr2_ck_n[0]" LOC = "B36" ; #Bank 27 -+NET "ddr2_ck[1]" LOC = "E32" ; #Bank 23 -+NET "ddr2_ck_n[1]" LOC = "E33" ; #Bank 23 -+NET "ddr2_ck[2]" LOC = "R35" ; #Bank 19 -+NET "ddr2_ck_n[2]" LOC = "T36" ; #Bank 19 - - - ############################################################################### -@@ -286,8 +276,6 @@ - INST "*/gen_dqs.6.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y302"; - INST "*/gen_dqs.7.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y300"; - INST "*/gen_dqs.7.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y300"; --INST "*/gen_dqs.8.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y298"; --INST "*/gen_dqs.8.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y298"; - - ############################################################################### - # LOC and timing constraints for flop driving DQS CE enable signal -@@ -309,7 +297,6 @@ - INST "*/u_phy_calib/gen_gate.5.u_en_dqs_ff" LOC = SLICE_X0Y169; - INST "*/u_phy_calib/gen_gate.6.u_en_dqs_ff" LOC = SLICE_X0Y151; - INST "*/u_phy_calib/gen_gate.7.u_en_dqs_ff" LOC = SLICE_X0Y150; --INST "*/u_phy_calib/gen_gate.8.u_en_dqs_ff" LOC = SLICE_X0Y149; - - # Control for DQS gate - from fabric flop. Prevent "runaway" delay - - # two parts to this path: (1) from fabric flop to IDELAY, (2) from -diff -Naur mig_36_1/example_design/rtl/ddr2_phy_top.vhd mig_36_1.org/example_design/rtl/ddr2_phy_top.vhd ---- mig_36_1/example_design/rtl/ddr2_phy_top.vhd 2011-09-25 23:35:43.000000000 +0200 -+++ mig_36_1.org/example_design/rtl/ddr2_phy_top.vhd 2011-09-22 11:29:57.000000000 +0200 -@@ -395,7 +395,7 @@ - "mig_v3_61_ddr2_sdram_v5, Coregen 12.4"; - - attribute CORE_GENERATION_INFO : string; -- attribute CORE_GENERATION_INFO of syn : architecture IS "ddr2_sdram_v5,mig_v3_61,{component_name=ddr2_phy_top, BANK_WIDTH=2, CKE_WIDTH=1, CLK_WIDTH=1, COL_WIDTH=10, CS_NUM=1, CS_WIDTH=1, DM_WIDTH=9, DQ_WIDTH=72, DQ_PER_DQS=8, DQS_WIDTH=9, ODT_WIDTH=1, ROW_WIDTH=14, ADDITIVE_LAT=0, BURST_LEN=4, BURST_TYPE=0, CAS_LAT=3, ECC_ENABLE=0, MULTI_BANK_EN=1, TWO_T_TIME_EN=0, ODT_TYPE=1, REDUCE_DRV=0, REG_ENABLE=1, TREFI_NS=7800, TRAS=40000, TRCD=15000, TRFC=105000, TRP=15000, TRTP=7500, TWR=15000, TWTR=10000, CLK_PERIOD=5000, RST_ACT_LOW=1, INTERFACE_TYPE=DDR2_SDRAM, LANGUAGE=VHDL, SYNTHESIS_TOOL=synplicity, NO_OF_CONTROLLERS=1}"; -+ attribute CORE_GENERATION_INFO of syn : architecture IS "ddr2_sdram_v5,mig_v3_61,{component_name=ddr2_phy_top, BANK_WIDTH=2, CKE_WIDTH=1, CLK_WIDTH=3, COL_WIDTH=10, CS_NUM=1, CS_WIDTH=1, DM_WIDTH=8, DQ_WIDTH=64, DQ_PER_DQS=8, DQS_WIDTH=8, ODT_WIDTH=1, ROW_WIDTH=13, ADDITIVE_LAT=0, BURST_LEN=4, BURST_TYPE=0, CAS_LAT=3, ECC_ENABLE=0, MULTI_BANK_EN=1, TWO_T_TIME_EN=1, ODT_TYPE=1, REDUCE_DRV=0, REG_ENABLE=0, TREFI_NS=7800, TRAS=40000, TRCD=15000, TRFC=105000, TRP=15000, TRTP=7500, TWR=15000, TWTR=10000, CLK_PERIOD=5000, RST_ACT_LOW=1, INTERFACE_TYPE=DDR2_SDRAM, LANGUAGE=VHDL, SYNTHESIS_TOOL=synplicity, NO_OF_CONTROLLERS=1}"; - - begin - -diff -Naur mig_36_1/example_design/rtl/mig_36_1.vhd mig_36_1.org/example_design/rtl/mig_36_1.vhd ---- mig_36_1/example_design/rtl/mig_36_1.vhd 2011-09-25 23:35:44.000000000 +0200 -+++ mig_36_1.org/example_design/rtl/mig_36_1.vhd 2011-09-22 11:29:57.000000000 +0200 -@@ -79,7 +79,7 @@ - -- # of memory bank addr bits. - CKE_WIDTH : integer := 1; - -- # of memory clock enable outputs. -- CLK_WIDTH : integer := 1; -+ CLK_WIDTH : integer := 3; - -- # of clock outputs. - COL_WIDTH : integer := 10; - -- # of memory column bits. -@@ -89,21 +89,21 @@ - -- # of total memory chip selects. - CS_BITS : integer := 0; - -- set to log2(CS_NUM) (rounded up). -- DM_WIDTH : integer := 9; -+ DM_WIDTH : integer := 8; - -- # of data mask bits. -- DQ_WIDTH : integer := 72; -+ DQ_WIDTH : integer := 64; - -- # of data width. - DQ_PER_DQS : integer := 8; - -- # of DQ data bits per strobe. -- DQS_WIDTH : integer := 9; -+ DQS_WIDTH : integer := 8; - -- # of DQS strobes. -- DQ_BITS : integer := 7; -+ DQ_BITS : integer := 6; - -- set to log2(DQS_WIDTH*DQ_PER_DQS). -- DQS_BITS : integer := 4; -+ DQS_BITS : integer := 3; - -- set to log2(DQS_WIDTH). - ODT_WIDTH : integer := 1; - -- # of memory on-die term enables. -- ROW_WIDTH : integer := 14; -+ ROW_WIDTH : integer := 13; - -- # of memory row and # of addr bits. - ADDITIVE_LAT : integer := 0; - -- additive write latency. -@@ -115,17 +115,17 @@ - -- CAS latency. - ECC_ENABLE : integer := 0; - -- enable ECC (=1 enable). -- APPDATA_WIDTH : integer := 144; -+ APPDATA_WIDTH : integer := 128; - -- # of usr read/write data bus bits. - MULTI_BANK_EN : integer := 1; - -- Keeps multiple banks open. (= 1 enable). -- TWO_T_TIME_EN : integer := 0; -+ TWO_T_TIME_EN : integer := 1; - -- 2t timing for unbuffered dimms. - ODT_TYPE : integer := 1; - -- ODT (=0(none),=1(75),=2(150),=3(50)). - REDUCE_DRV : integer := 0; - -- reduced strength mem I/O (=1 yes). -- REG_ENABLE : integer := 1; -+ REG_ENABLE : integer := 0; - -- registered addr/ctrl (=1 yes). - TREFI_NS : integer := 7800; - -- auto refresh interval (ns). -@@ -178,7 +178,6 @@ - ddr2_cs_n : out std_logic_vector((CS_WIDTH-1) downto 0); - ddr2_odt : out std_logic_vector((ODT_WIDTH-1) downto 0); - ddr2_cke : out std_logic_vector((CKE_WIDTH-1) downto 0); -- ddr2_reset_n : out std_logic; - ddr2_dm : out std_logic_vector((DM_WIDTH-1) downto 0); - sys_clk : in std_logic; - idly_clk_200 : in std_logic; -@@ -459,12 +458,11 @@ - "mig_v3_61_ddr2_v5, Coregen 12.4"; - - attribute CORE_GENERATION_INFO : string; -- attribute CORE_GENERATION_INFO of arc_mem_interface_top : architecture IS "ddr2_v5,mig_v3_61,{component_name=mig_36_1, BANK_WIDTH=2, CKE_WIDTH=1, CLK_WIDTH=1, COL_WIDTH=10, CS_NUM=1, CS_WIDTH=1, DM_WIDTH=9, DQ_WIDTH=72, DQ_PER_DQS=8, DQS_WIDTH=9, ODT_WIDTH=1, ROW_WIDTH=14, ADDITIVE_LAT=0, BURST_LEN=4, BURST_TYPE=0, CAS_LAT=3, ECC_ENABLE=0, MULTI_BANK_EN=1, TWO_T_TIME_EN=0, ODT_TYPE=1, REDUCE_DRV=0, REG_ENABLE=1, TREFI_NS=7800, TRAS=40000, TRCD=15000, TRFC=105000, TRP=15000, TRTP=7500, TWR=15000, TWTR=10000, CLK_PERIOD=5000, RST_ACT_LOW=1, INTERFACE_TYPE=DDR2_SDRAM, LANGUAGE=VHDL, SYNTHESIS_TOOL=synplicity, NO_OF_CONTROLLERS=1}"; -+ attribute CORE_GENERATION_INFO of arc_mem_interface_top : architecture IS "ddr2_v5,mig_v3_61,{component_name=mig_36_1, BANK_WIDTH=2, CKE_WIDTH=1, CLK_WIDTH=3, COL_WIDTH=10, CS_NUM=1, CS_WIDTH=1, DM_WIDTH=8, DQ_WIDTH=64, DQ_PER_DQS=8, DQS_WIDTH=8, ODT_WIDTH=1, ROW_WIDTH=13, ADDITIVE_LAT=0, BURST_LEN=4, BURST_TYPE=0, CAS_LAT=3, ECC_ENABLE=0, MULTI_BANK_EN=1, TWO_T_TIME_EN=1, ODT_TYPE=1, REDUCE_DRV=0, REG_ENABLE=0, TREFI_NS=7800, TRAS=40000, TRCD=15000, TRFC=105000, TRP=15000, TRTP=7500, TWR=15000, TWTR=10000, CLK_PERIOD=5000, RST_ACT_LOW=1, INTERFACE_TYPE=DDR2_SDRAM, LANGUAGE=VHDL, SYNTHESIS_TOOL=synplicity, NO_OF_CONTROLLERS=1}"; - - begin - - --*************************************************************************** -- ddr2_reset_n <= not(rst0); - phy_init_done <= i_phy_init_done; - sys_clk_p <= '1'; - sys_clk_n <= '0'; -diff -Naur mig_36_1/example_design/sim/sim.do mig_36_1.org/example_design/sim/sim.do ---- mig_36_1/example_design/sim/sim.do 2011-09-25 23:35:44.000000000 +0200 -+++ mig_36_1.org/example_design/sim/sim.do 2011-09-22 11:29:57.000000000 +0200 -@@ -70,7 +70,7 @@ - vlog ../sim/*.v - vcom ../sim/*.vhd - #Pass the parameters for memory model parameter file# --vlog +incdir+. +define+x512Mb +define+sg5E +define+x8 ddr2_model.v -+vlog +incdir+. +define+x512Mb +define+sg5E +define+x16 ddr2_model.v - - #Load the design. Use required libraries.# - vsim -t ps -novopt +notimingchecks -L unisim work.sim_tb_top glbl -diff -Naur mig_36_1/example_design/sim/sim_tb_top.vhd mig_36_1.org/example_design/sim/sim_tb_top.vhd ---- mig_36_1/example_design/sim/sim_tb_top.vhd 2011-09-25 23:35:43.000000000 +0200 -+++ mig_36_1.org/example_design/sim/sim_tb_top.vhd 2011-09-22 11:29:57.000000000 +0200 -@@ -72,32 +72,32 @@ - -- memory controller parameters - constant BANK_WIDTH : integer := 2; -- # of memory bank addr bits - constant CKE_WIDTH : integer := 1; -- # of memory clock enable outputs -- constant CLK_WIDTH : integer := 1; -- # of clock outputs -+ constant CLK_WIDTH : integer := 3; -- # of clock outputs - constant CLK_TYPE : string := "SINGLE_ENDED"; -- # of clock type - constant COL_WIDTH : integer := 10; -- # of memory column bits - constant CS_NUM : integer := 1; -- # of separate memory chip selects - constant CS_WIDTH : integer := 1; -- # of total memory chip selects - constant CS_BITS : integer := 0; -- set to log2(CS_NUM) (rounded up) -- constant DM_WIDTH : integer := 9; -- # of data mask bits -- constant DQ_WIDTH : integer := 72; -- # of data width -+ constant DM_WIDTH : integer := 8; -- # of data mask bits -+ constant DQ_WIDTH : integer := 64; -- # of data width - constant DQ_PER_DQS : integer := 8; -- # of DQ data bits per strobe -- constant DQ_BITS : integer := 7; -- set to log2(DQS_WIDTH*DQ_PER_DQS) -- constant DQS_WIDTH : integer := 9; -- # of DQS strobes -- constant DQS_BITS : integer := 4; -- set to log2(DQS_WIDTH) -+ constant DQ_BITS : integer := 6; -- set to log2(DQS_WIDTH*DQ_PER_DQS) -+ constant DQS_WIDTH : integer := 8; -- # of DQS strobes -+ constant DQS_BITS : integer := 3; -- set to log2(DQS_WIDTH) - constant HIGH_PERFORMANCE_MODE : boolean := TRUE; -- Sets the performance mode for IODELAY elements - constant ODT_WIDTH : integer := 1; -- # of memory on-die term enables -- constant ROW_WIDTH : integer := 14; -- # of memory row & # of addr bits -- constant APPDATA_WIDTH : integer := 144; -- # of usr read/write data bus bits -+ constant ROW_WIDTH : integer := 13; -- # of memory row & # of addr bits -+ constant APPDATA_WIDTH : integer := 128; -- # of usr read/write data bus bits - constant ADDITIVE_LAT : integer := 0; -- additive write latency - constant BURST_LEN : integer := 4; -- burst length (in double words) - constant BURST_TYPE : integer := 0; -- burst type (=0 seq; =1 interlved) - constant CAS_LAT : integer := 3; -- CAS latency - constant ECC_ENABLE : integer := 0; -- enable ECC (=1 enable) - constant MULTI_BANK_EN : integer := 1; -- enable bank management -- constant TWO_T_TIME_EN : integer := 0; -- 2t timing for unbuffered dimms -+ constant TWO_T_TIME_EN : integer := 1; -- 2t timing for unbuffered dimms - constant ODT_TYPE : integer := 1; -- ODT (=0(none),=1(75),=2(150),=3(50)) - constant REDUCE_DRV : integer := 0; -- reduced strength mem I/O (=1 yes) -- constant REG_ENABLE : integer := 1; -- registered addr/ctrl (=1 yes) -+ constant REG_ENABLE : integer := 0; -- registered addr/ctrl (=1 yes) - constant TREFI_NS : integer := 7800; -- auto refresh interval (ns) - constant TRAS : integer := 40000; -- active->precharge delay - constant TRCD : integer := 15000; -- active->read/write delay -@@ -112,7 +112,7 @@ - constant DLL_FREQ_MODE : string := "HIGH"; -- DCM Frequency range - constant CLK_PERIOD : integer := 5000; -- Core/Mem clk period (in ps) - -- constant DEVICE_WIDTH : integer := 8; -- Memory device data width -+ constant DEVICE_WIDTH : integer := 16; -- Memory device data width - constant CLK_PERIOD_NS : real := 5000.0 / 1000.0; - constant TCYC_SYS : real := CLK_PERIOD_NS/2.0; - constant TCYC_SYS_0 : time := CLK_PERIOD_NS * 1 ns; -@@ -186,7 +186,6 @@ - ddr2_dqs : inout std_logic_vector((DQS_WIDTH-1) downto 0); - ddr2_dqs_n : inout std_logic_vector((DQS_WIDTH-1) downto 0); - ddr2_dm : out std_logic_vector((DM_WIDTH-1) downto 0); -- ddr2_reset_n : out std_logic; - - error : out std_logic; - -@@ -381,7 +380,6 @@ - ddr2_cke => ddr2_cke_fpga, - ddr2_odt => ddr2_odt_fpga, - ddr2_dm => ddr2_dm_fpga, -- ddr2_reset_n => ddr2_reset_n_fpga, - ddr2_dq => ddr2_dq_fpga, - ddr2_dqs => ddr2_dqs_fpga, - ddr2_dqs_n => ddr2_dqs_n_fpga, -diff -Naur mig_36_1/user_design/datasheet.txt mig_36_1.org/user_design/datasheet.txt ---- mig_36_1/user_design/datasheet.txt 2011-09-25 23:35:45.000000000 +0200 -+++ mig_36_1.org/user_design/datasheet.txt 2011-09-22 11:29:58.000000000 +0200 -@@ -33,10 +33,10 @@ - Controller Options : - Memory : DDR2_SDRAM - Design Clock Frequency : 5000 ps(200.00 MHz) -- Memory Type : RDIMMs -- Memory Part : MT9HTF6472Y-40E -+ Memory Type : UDIMMs -+ Memory Part : MT4HTF3264AY-40E - Equivalent Part(s) : -- -- Data Width : 72 -+ Data Width : 64 - Memory Depth : 1 - ECC : ECC Disabled - Data Mask : enabled -@@ -57,7 +57,7 @@ - bank 13(38) -> Number of pins used : 0 - bank 15(38) -> Number of pins used : 0 - bank 17(38) -> Number of pins used : 0 -- bank 19(38) -> Number of pins used : 33 -+ bank 19(38) -> Number of pins used : 22 - bank 21(38) -> Number of pins used : 0 - bank 23(38) -> Number of pins used : 33 - bank 25(38) -> Number of pins used : 0 -@@ -66,9 +66,9 @@ - - Address/Control:bank 11(38) -> Number of pins used : 0 - bank 13(38) -> Number of pins used : 0 -- bank 15(38) -> Number of pins used : 16 -+ bank 15(38) -> Number of pins used : 7 - bank 17(38) -> Number of pins used : 0 -- bank 19(38) -> Number of pins used : 3 -+ bank 19(38) -> Number of pins used : 14 - bank 21(38) -> Number of pins used : 0 - bank 23(38) -> Number of pins used : 3 - bank 25(38) -> Number of pins used : 0 -@@ -89,5 +89,5 @@ - System Clock :bank 3(19) -> Number of pins used : 2 - bank 4(19) -> Number of pins used : 0 - -- Total IOs used : 128 -+ Total IOs used : 119 - -diff -Naur mig_36_1/user_design/log.txt mig_36_1.org/user_design/log.txt ---- mig_36_1/user_design/log.txt 2011-09-25 23:35:45.000000000 +0200 -+++ mig_36_1.org/user_design/log.txt 2011-09-22 11:29:58.000000000 +0200 -@@ -1,6 +1,6 @@ - Log file - --Generated by MIG MIG Version 3.6.1Build NumberSW_VERSION on Sun Sep 25 23:35:44 2011 -+Generated by MIG MIG Version 3.6.1Build NumberSW_VERSION on Thu Sep 22 11:29:57 2011 - - - Reading design libraries of xc5vfx130t-ff1738... successful ! -@@ -30,10 +30,10 @@ - Checking pins allocated to Address bits ... - Checking pins allocated to BankAddress bits ... - Copying all the files from docs ... --copying /home/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/adr_cntrl_timing.xls to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs --copying /home/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/read_data_timing.xls to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs --copying /home/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/write_data_timing.xls to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs --copying /home/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/xapp858.url to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs -+copying /usr/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/adr_cntrl_timing.xls to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs -+copying /usr/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/read_data_timing.xls to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs -+copying /usr/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/write_data_timing.xls to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs -+copying /usr/local/xilinx/ise13i01/ISE_DS/ISE/coregen/ip/xilinx/other/com/xilinx/ip/mig_v3_61/bin/lin/../../data/docs/virtex5/ddr2_sdram/xapp858.url to /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/docs - Generating the file /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/user_design/rtl/ddr2_chipscope.vhd ...successful! - Generating the file /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/user_design/rtl/ddr2_ctrl.vhd ...successful! - Generating the file /home/jiri/ibm/vhdl/grlib/designs/leon3-xilinx-ml510/tmp/_cg/mig_36_1/user_design/rtl/ddr2_top.vhd ...successful! -diff -Naur mig_36_1/user_design/mig.prj mig_36_1.org/user_design/mig.prj ---- mig_36_1/user_design/mig.prj 2011-09-25 23:35:45.000000000 +0200 -+++ mig_36_1.org/user_design/mig.prj 2011-09-22 11:29:58.000000000 +0200 -@@ -13,14 +13,14 @@ - FALSE - HIGH - -- DDR2_SDRAM/RDIMMs/MT9HTF6472Y-40E -+ DDR2_SDRAM/UDIMMs/MT4HTF3264AY-40E - 5000 -- 72 -+ 64 - 1 - 1 - FALSE - -- 14 -+ 13 - 10 - 2 - -@@ -47,7 +47,7 @@ - normal(0) - no(0) - fast exit(0) -- 3(010) -+ - Enable-Normal(0) - Fullstrength(0) - 75ohms(01) -diff -Naur mig_36_1/user_design/par/mig_36_1.ucf mig_36_1.org/user_design/par/mig_36_1.ucf ---- mig_36_1/user_design/par/mig_36_1.ucf 2011-09-25 23:35:45.000000000 +0200 -+++ mig_36_1.org/user_design/par/mig_36_1.ucf 2011-09-22 11:29:58.000000000 +0200 -@@ -1,7 +1,7 @@ - ############################################################################ - ## - ## Xilinx, Inc. 2006 www.xilinx.com --## Sun Sep 25 23:35:43 2011 -+## Thu Sep 22 11:29:55 2011 - ## Generated by MIG Version 3.6.1 - ## - ############################################################################ -@@ -32,8 +32,8 @@ - ############################################################################ - ######################################################################## - # Controller 0 --# Memory Device: DDR2_SDRAM->RDIMMs->MT9HTF6472Y-40E --# Data Width: 72 -+# Memory Device: DDR2_SDRAM->UDIMMs->MT4HTF3264AY-40E -+# Data Width: 64 - # Frequency: 200 - # Time Period: 5000 - # Data Mask: 1 -@@ -53,7 +53,6 @@ - NET "ddr2_cs_n[*]" IOSTANDARD = SSTL18_II; - NET "ddr2_odt[*]" IOSTANDARD = SSTL18_II; - NET "ddr2_cke[*]" IOSTANDARD = SSTL18_II; --NET "ddr2_reset_n" IOSTANDARD = LVCMOS18; - NET "ddr2_dm[*]" IOSTANDARD = SSTL18_II_DCI; - NET "sys_clk" IOSTANDARD = LVCMOS25; - NET "idly_clk_200" IOSTANDARD = LVCMOS25; -@@ -132,37 +131,27 @@ - NET "ddr2_dq[61]" LOC = "F36" ; #Bank 19 - NET "ddr2_dq[62]" LOC = "G36" ; #Bank 19 - NET "ddr2_dq[63]" LOC = "F37" ; #Bank 19 --NET "ddr2_dq[64]" LOC = "E38" ; #Bank 19 --NET "ddr2_dq[65]" LOC = "D37" ; #Bank 19 --NET "ddr2_dq[66]" LOC = "V35" ; #Bank 19 --NET "ddr2_dq[67]" LOC = "V34" ; #Bank 19 --NET "ddr2_dq[68]" LOC = "W33" ; #Bank 19 --NET "ddr2_dq[69]" LOC = "Y33" ; #Bank 19 --NET "ddr2_dq[70]" LOC = "W32" ; #Bank 19 --NET "ddr2_dq[71]" LOC = "Y32" ; #Bank 19 --NET "ddr2_a[13]" LOC = "D42" ; #Bank 27 --NET "ddr2_a[12]" LOC = "E32" ; #Bank 23 --NET "ddr2_a[11]" LOC = "E33" ; #Bank 23 --NET "ddr2_a[10]" LOC = "T31" ; #Bank 23 --NET "ddr2_a[9]" LOC = "U36" ; #Bank 19 --NET "ddr2_a[8]" LOC = "V36" ; #Bank 19 --NET "ddr2_a[7]" LOC = "AA32" ; #Bank 19 --NET "ddr2_a[6]" LOC = "H38" ; #Bank 15 --NET "ddr2_a[5]" LOC = "H39" ; #Bank 15 --NET "ddr2_a[4]" LOC = "G38" ; #Bank 15 --NET "ddr2_a[3]" LOC = "G39" ; #Bank 15 --NET "ddr2_a[2]" LOC = "F39" ; #Bank 15 --NET "ddr2_a[1]" LOC = "F40" ; #Bank 15 --NET "ddr2_a[0]" LOC = "E39" ; #Bank 15 --NET "ddr2_ba[1]" LOC = "E40" ; #Bank 15 --NET "ddr2_ba[0]" LOC = "R39" ; #Bank 15 --NET "ddr2_ras_n" LOC = "R37" ; #Bank 15 --NET "ddr2_cas_n" LOC = "P37" ; #Bank 15 --NET "ddr2_we_n" LOC = "P38" ; #Bank 15 --NET "ddr2_cs_n[0]" LOC = "N38" ; #Bank 15 --NET "ddr2_odt[0]" LOC = "N39" ; #Bank 15 --NET "ddr2_cke[0]" LOC = "M39" ; #Bank 15 --NET "ddr2_reset_n" LOC = "M38" ; #Bank 15 -+NET "ddr2_a[12]" LOC = "D42" ; #Bank 27 -+NET "ddr2_a[11]" LOC = "T31" ; #Bank 23 -+NET "ddr2_a[10]" LOC = "U36" ; #Bank 19 -+NET "ddr2_a[9]" LOC = "V36" ; #Bank 19 -+NET "ddr2_a[8]" LOC = "E38" ; #Bank 19 -+NET "ddr2_a[7]" LOC = "D37" ; #Bank 19 -+NET "ddr2_a[6]" LOC = "V35" ; #Bank 19 -+NET "ddr2_a[5]" LOC = "V34" ; #Bank 19 -+NET "ddr2_a[4]" LOC = "V33" ; #Bank 19 -+NET "ddr2_a[3]" LOC = "W33" ; #Bank 19 -+NET "ddr2_a[2]" LOC = "Y33" ; #Bank 19 -+NET "ddr2_a[1]" LOC = "W32" ; #Bank 19 -+NET "ddr2_a[0]" LOC = "Y32" ; #Bank 19 -+NET "ddr2_ba[1]" LOC = "AA32" ; #Bank 19 -+NET "ddr2_ba[0]" LOC = "H38" ; #Bank 15 -+NET "ddr2_ras_n" LOC = "H39" ; #Bank 15 -+NET "ddr2_cas_n" LOC = "G38" ; #Bank 15 -+NET "ddr2_we_n" LOC = "G39" ; #Bank 15 -+NET "ddr2_cs_n[0]" LOC = "F39" ; #Bank 15 -+NET "ddr2_odt[0]" LOC = "F40" ; #Bank 15 -+NET "ddr2_cke[0]" LOC = "E39" ; #Bank 15 - NET "ddr2_dm[0]" LOC = "A30" ; #Bank 27 - NET "ddr2_dm[1]" LOC = "A34" ; #Bank 27 - NET "ddr2_dm[2]" LOC = "B42" ; #Bank 27 -@@ -171,11 +160,10 @@ - NET "ddr2_dm[5]" LOC = "R33" ; #Bank 23 - NET "ddr2_dm[6]" LOC = "L37" ; #Bank 19 - NET "ddr2_dm[7]" LOC = "K37" ; #Bank 19 --NET "ddr2_dm[8]" LOC = "V33" ; #Bank 19 - NET "sys_clk" LOC = "J17" ; #Bank 3 - NET "idly_clk_200" LOC = "M27" ; #Bank 3 --NET "sys_rst_n" LOC = "L39" ; #Bank 15 --NET "phy_init_done" LOC = "K38" ; #Bank 15 -+NET "sys_rst_n" LOC = "E40" ; #Bank 15 -+NET "phy_init_done" LOC = "R39" ; #Bank 15 - NET "ddr2_dqs[0]" LOC = "D35" ; #Bank 27 - NET "ddr2_dqs_n[0]" LOC = "D36" ; #Bank 27 - NET "ddr2_dqs[1]" LOC = "C36" ; #Bank 27 -@@ -192,10 +180,12 @@ - NET "ddr2_dqs_n[6]" LOC = "T35" ; #Bank 19 - NET "ddr2_dqs[7]" LOC = "T34" ; #Bank 19 - NET "ddr2_dqs_n[7]" LOC = "U33" ; #Bank 19 --NET "ddr2_dqs[8]" LOC = "R35" ; #Bank 19 --NET "ddr2_dqs_n[8]" LOC = "T36" ; #Bank 19 - NET "ddr2_ck[0]" LOC = "B37" ; #Bank 27 - NET "ddr2_ck_n[0]" LOC = "B36" ; #Bank 27 -+NET "ddr2_ck[1]" LOC = "E32" ; #Bank 23 -+NET "ddr2_ck_n[1]" LOC = "E33" ; #Bank 23 -+NET "ddr2_ck[2]" LOC = "R35" ; #Bank 19 -+NET "ddr2_ck_n[2]" LOC = "T36" ; #Bank 19 - - - ############################################################################### -@@ -284,8 +274,6 @@ - INST "*/gen_dqs.6.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y302"; - INST "*/gen_dqs.7.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y300"; - INST "*/gen_dqs.7.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y300"; --INST "*/gen_dqs.8.u_iob_dqs/u_iddr_dq_ce" LOC = "ILOGIC_X0Y298"; --INST "*/gen_dqs.8.u_iob_dqs/u_iodelay_dq_ce" LOC = "IODELAY_X0Y298"; - - ############################################################################### - # LOC and timing constraints for flop driving DQS CE enable signal -@@ -307,7 +295,6 @@ - INST "*/u_phy_calib/gen_gate.5.u_en_dqs_ff" LOC = SLICE_X0Y169; - INST "*/u_phy_calib/gen_gate.6.u_en_dqs_ff" LOC = SLICE_X0Y151; - INST "*/u_phy_calib/gen_gate.7.u_en_dqs_ff" LOC = SLICE_X0Y150; --INST "*/u_phy_calib/gen_gate.8.u_en_dqs_ff" LOC = SLICE_X0Y149; - - # Control for DQS gate - from fabric flop. Prevent "runaway" delay - - # two parts to this path: (1) from fabric flop to IDELAY, (2) from -diff -Naur mig_36_1/user_design/rtl/ddr2_phy_top.vhd mig_36_1.org/user_design/rtl/ddr2_phy_top.vhd ---- mig_36_1/user_design/rtl/ddr2_phy_top.vhd 2011-09-25 23:35:44.000000000 +0200 -+++ mig_36_1.org/user_design/rtl/ddr2_phy_top.vhd 2011-09-22 11:29:57.000000000 +0200 -@@ -395,7 +395,7 @@ - "mig_v3_61_ddr2_sdram_v5, Coregen 12.4"; - - attribute CORE_GENERATION_INFO : string; -- attribute CORE_GENERATION_INFO of syn : architecture IS "ddr2_sdram_v5,mig_v3_61,{component_name=ddr2_phy_top, BANK_WIDTH=2, CKE_WIDTH=1, CLK_WIDTH=1, COL_WIDTH=10, CS_NUM=1, CS_WIDTH=1, DM_WIDTH=9, DQ_WIDTH=72, DQ_PER_DQS=8, DQS_WIDTH=9, ODT_WIDTH=1, ROW_WIDTH=14, ADDITIVE_LAT=0, BURST_LEN=4, BURST_TYPE=0, CAS_LAT=3, ECC_ENABLE=0, MULTI_BANK_EN=1, TWO_T_TIME_EN=0, ODT_TYPE=1, REDUCE_DRV=0, REG_ENABLE=1, TREFI_NS=7800, TRAS=40000, TRCD=15000, TRFC=105000, TRP=15000, TRTP=7500, TWR=15000, TWTR=10000, CLK_PERIOD=5000, RST_ACT_LOW=1, INTERFACE_TYPE=DDR2_SDRAM, LANGUAGE=VHDL, SYNTHESIS_TOOL=synplicity, NO_OF_CONTROLLERS=1}"; -+ attribute CORE_GENERATION_INFO of syn : architecture IS "ddr2_sdram_v5,mig_v3_61,{component_name=ddr2_phy_top, BANK_WIDTH=2, CKE_WIDTH=1, CLK_WIDTH=3, COL_WIDTH=10, CS_NUM=1, CS_WIDTH=1, DM_WIDTH=8, DQ_WIDTH=64, DQ_PER_DQS=8, DQS_WIDTH=8, ODT_WIDTH=1, ROW_WIDTH=13, ADDITIVE_LAT=0, BURST_LEN=4, BURST_TYPE=0, CAS_LAT=3, ECC_ENABLE=0, MULTI_BANK_EN=1, TWO_T_TIME_EN=1, ODT_TYPE=1, REDUCE_DRV=0, REG_ENABLE=0, TREFI_NS=7800, TRAS=40000, TRCD=15000, TRFC=105000, TRP=15000, TRTP=7500, TWR=15000, TWTR=10000, CLK_PERIOD=5000, RST_ACT_LOW=1, INTERFACE_TYPE=DDR2_SDRAM, LANGUAGE=VHDL, SYNTHESIS_TOOL=synplicity, NO_OF_CONTROLLERS=1}"; - - begin - -diff -Naur mig_36_1/user_design/rtl/mig_36_1.vhd mig_36_1.org/user_design/rtl/mig_36_1.vhd ---- mig_36_1/user_design/rtl/mig_36_1.vhd 2011-09-25 23:35:44.000000000 +0200 -+++ mig_36_1.org/user_design/rtl/mig_36_1.vhd 2011-09-22 11:29:57.000000000 +0200 -@@ -76,7 +76,7 @@ - -- # of memory bank addr bits. - CKE_WIDTH : integer := 1; - -- # of memory clock enable outputs. -- CLK_WIDTH : integer := 1; -+ CLK_WIDTH : integer := 3; - -- # of clock outputs. - COL_WIDTH : integer := 10; - -- # of memory column bits. -@@ -86,21 +86,21 @@ - -- # of total memory chip selects. - CS_BITS : integer := 0; - -- set to log2(CS_NUM) (rounded up). -- DM_WIDTH : integer := 9; -+ DM_WIDTH : integer := 8; - -- # of data mask bits. -- DQ_WIDTH : integer := 72; -+ DQ_WIDTH : integer := 64; - -- # of data width. - DQ_PER_DQS : integer := 8; - -- # of DQ data bits per strobe. -- DQS_WIDTH : integer := 9; -+ DQS_WIDTH : integer := 8; - -- # of DQS strobes. -- DQ_BITS : integer := 7; -+ DQ_BITS : integer := 6; - -- set to log2(DQS_WIDTH*DQ_PER_DQS). -- DQS_BITS : integer := 4; -+ DQS_BITS : integer := 3; - -- set to log2(DQS_WIDTH). - ODT_WIDTH : integer := 1; - -- # of memory on-die term enables. -- ROW_WIDTH : integer := 14; -+ ROW_WIDTH : integer := 13; - -- # of memory row and # of addr bits. - ADDITIVE_LAT : integer := 0; - -- additive write latency. -@@ -112,17 +112,17 @@ - -- CAS latency. - ECC_ENABLE : integer := 0; - -- enable ECC (=1 enable). -- APPDATA_WIDTH : integer := 144; -+ APPDATA_WIDTH : integer := 128; - -- # of usr read/write data bus bits. - MULTI_BANK_EN : integer := 1; - -- Keeps multiple banks open. (= 1 enable). -- TWO_T_TIME_EN : integer := 0; -+ TWO_T_TIME_EN : integer := 1; - -- 2t timing for unbuffered dimms. - ODT_TYPE : integer := 1; - -- ODT (=0(none),=1(75),=2(150),=3(50)). - REDUCE_DRV : integer := 0; - -- reduced strength mem I/O (=1 yes). -- REG_ENABLE : integer := 1; -+ REG_ENABLE : integer := 0; - -- registered addr/ctrl (=1 yes). - TREFI_NS : integer := 7800; - -- auto refresh interval (ns). -@@ -175,7 +175,6 @@ - ddr2_cs_n : out std_logic_vector((CS_WIDTH-1) downto 0); - ddr2_odt : out std_logic_vector((ODT_WIDTH-1) downto 0); - ddr2_cke : out std_logic_vector((CKE_WIDTH-1) downto 0); -- ddr2_reset_n : out std_logic; - ddr2_dm : out std_logic_vector((DM_WIDTH-1) downto 0); - sys_clk : in std_logic; - idly_clk_200 : in std_logic; -@@ -427,14 +426,13 @@ - "mig_v3_61_ddr2_v5, Coregen 12.4"; - - attribute CORE_GENERATION_INFO : string; -- attribute CORE_GENERATION_INFO of arc_mem_interface_top : architecture IS "ddr2_v5,mig_v3_61,{component_name=mig_36_1, BANK_WIDTH=2, CKE_WIDTH=1, CLK_WIDTH=1, COL_WIDTH=10, CS_NUM=1, CS_WIDTH=1, DM_WIDTH=9, DQ_WIDTH=72, DQ_PER_DQS=8, DQS_WIDTH=9, ODT_WIDTH=1, ROW_WIDTH=14, ADDITIVE_LAT=0, BURST_LEN=4, BURST_TYPE=0, CAS_LAT=3, ECC_ENABLE=0, MULTI_BANK_EN=1, TWO_T_TIME_EN=0, ODT_TYPE=1, REDUCE_DRV=0, REG_ENABLE=1, TREFI_NS=7800, TRAS=40000, TRCD=15000, TRFC=105000, TRP=15000, TRTP=7500, TWR=15000, TWTR=10000, CLK_PERIOD=5000, RST_ACT_LOW=1, INTERFACE_TYPE=DDR2_SDRAM, LANGUAGE=VHDL, SYNTHESIS_TOOL=synplicity, NO_OF_CONTROLLERS=1}"; -+ attribute CORE_GENERATION_INFO of arc_mem_interface_top : architecture IS "ddr2_v5,mig_v3_61,{component_name=mig_36_1, BANK_WIDTH=2, CKE_WIDTH=1, CLK_WIDTH=3, COL_WIDTH=10, CS_NUM=1, CS_WIDTH=1, DM_WIDTH=8, DQ_WIDTH=64, DQ_PER_DQS=8, DQS_WIDTH=8, ODT_WIDTH=1, ROW_WIDTH=13, ADDITIVE_LAT=0, BURST_LEN=4, BURST_TYPE=0, CAS_LAT=3, ECC_ENABLE=0, MULTI_BANK_EN=1, TWO_T_TIME_EN=1, ODT_TYPE=1, REDUCE_DRV=0, REG_ENABLE=0, TREFI_NS=7800, TRAS=40000, TRCD=15000, TRFC=105000, TRP=15000, TRTP=7500, TWR=15000, TWTR=10000, CLK_PERIOD=5000, RST_ACT_LOW=1, INTERFACE_TYPE=DDR2_SDRAM, LANGUAGE=VHDL, SYNTHESIS_TOOL=synplicity, NO_OF_CONTROLLERS=1}"; - - begin - - --*************************************************************************** - rst0_tb <= rst0; - clk0_tb <= clk0; -- ddr2_reset_n <= not(rst0); - phy_init_done <= i_phy_init_done; - sys_clk_p <= '1'; - sys_clk_n <= '0'; -diff -Naur mig_36_1/user_design/sim/sim.do mig_36_1.org/user_design/sim/sim.do ---- mig_36_1/user_design/sim/sim.do 2011-09-25 23:35:45.000000000 +0200 -+++ mig_36_1.org/user_design/sim/sim.do 2011-09-22 11:29:58.000000000 +0200 -@@ -70,7 +70,7 @@ - vlog ../sim/*.v - vcom ../sim/*.vhd - #Pass the parameters for memory model parameter file# --vlog +incdir+. +define+x512Mb +define+sg5E +define+x8 ddr2_model.v -+vlog +incdir+. +define+x512Mb +define+sg5E +define+x16 ddr2_model.v - - #Load the design. Use required libraries.# - vsim -t ps -novopt +notimingchecks -L unisim work.sim_tb_top glbl -diff -Naur mig_36_1/user_design/sim/sim_tb_top.vhd mig_36_1.org/user_design/sim/sim_tb_top.vhd ---- mig_36_1/user_design/sim/sim_tb_top.vhd 2011-09-25 23:35:44.000000000 +0200 -+++ mig_36_1.org/user_design/sim/sim_tb_top.vhd 2011-09-22 11:29:57.000000000 +0200 -@@ -72,32 +72,32 @@ - -- memory controller parameters - constant BANK_WIDTH : integer := 2; -- # of memory bank addr bits - constant CKE_WIDTH : integer := 1; -- # of memory clock enable outputs -- constant CLK_WIDTH : integer := 1; -- # of clock outputs -+ constant CLK_WIDTH : integer := 3; -- # of clock outputs - constant CLK_TYPE : string := "SINGLE_ENDED"; -- # of clock type - constant COL_WIDTH : integer := 10; -- # of memory column bits - constant CS_NUM : integer := 1; -- # of separate memory chip selects - constant CS_WIDTH : integer := 1; -- # of total memory chip selects - constant CS_BITS : integer := 0; -- set to log2(CS_NUM) (rounded up) -- constant DM_WIDTH : integer := 9; -- # of data mask bits -- constant DQ_WIDTH : integer := 72; -- # of data width -+ constant DM_WIDTH : integer := 8; -- # of data mask bits -+ constant DQ_WIDTH : integer := 64; -- # of data width - constant DQ_PER_DQS : integer := 8; -- # of DQ data bits per strobe -- constant DQ_BITS : integer := 7; -- set to log2(DQS_WIDTH*DQ_PER_DQS) -- constant DQS_WIDTH : integer := 9; -- # of DQS strobes -- constant DQS_BITS : integer := 4; -- set to log2(DQS_WIDTH) -+ constant DQ_BITS : integer := 6; -- set to log2(DQS_WIDTH*DQ_PER_DQS) -+ constant DQS_WIDTH : integer := 8; -- # of DQS strobes -+ constant DQS_BITS : integer := 3; -- set to log2(DQS_WIDTH) - constant HIGH_PERFORMANCE_MODE : boolean := TRUE; -- Sets the performance mode for IODELAY elements - constant ODT_WIDTH : integer := 1; -- # of memory on-die term enables -- constant ROW_WIDTH : integer := 14; -- # of memory row & # of addr bits -- constant APPDATA_WIDTH : integer := 144; -- # of usr read/write data bus bits -+ constant ROW_WIDTH : integer := 13; -- # of memory row & # of addr bits -+ constant APPDATA_WIDTH : integer := 128; -- # of usr read/write data bus bits - constant ADDITIVE_LAT : integer := 0; -- additive write latency - constant BURST_LEN : integer := 4; -- burst length (in double words) - constant BURST_TYPE : integer := 0; -- burst type (=0 seq; =1 interlved) - constant CAS_LAT : integer := 3; -- CAS latency - constant ECC_ENABLE : integer := 0; -- enable ECC (=1 enable) - constant MULTI_BANK_EN : integer := 1; -- enable bank management -- constant TWO_T_TIME_EN : integer := 0; -- 2t timing for unbuffered dimms -+ constant TWO_T_TIME_EN : integer := 1; -- 2t timing for unbuffered dimms - constant ODT_TYPE : integer := 1; -- ODT (=0(none),=1(75),=2(150),=3(50)) - constant REDUCE_DRV : integer := 0; -- reduced strength mem I/O (=1 yes) -- constant REG_ENABLE : integer := 1; -- registered addr/ctrl (=1 yes) -+ constant REG_ENABLE : integer := 0; -- registered addr/ctrl (=1 yes) - constant TREFI_NS : integer := 7800; -- auto refresh interval (ns) - constant TRAS : integer := 40000; -- active->precharge delay - constant TRCD : integer := 15000; -- active->read/write delay -@@ -112,7 +112,7 @@ - constant DLL_FREQ_MODE : string := "HIGH"; -- DCM Frequency range - constant CLK_PERIOD : integer := 5000; -- Core/Mem clk period (in ps) - -- constant DEVICE_WIDTH : integer := 8; -- Memory device data width -+ constant DEVICE_WIDTH : integer := 16; -- Memory device data width - constant CLK_PERIOD_NS : real := 5000.0 / 1000.0; - constant TCYC_SYS : real := CLK_PERIOD_NS/2.0; - constant TCYC_SYS_0 : time := CLK_PERIOD_NS * 1 ns; -@@ -186,7 +186,6 @@ - ddr2_dqs : inout std_logic_vector((DQS_WIDTH-1) downto 0); - ddr2_dqs_n : inout std_logic_vector((DQS_WIDTH-1) downto 0); - ddr2_dm : out std_logic_vector((DM_WIDTH-1) downto 0); -- ddr2_reset_n : out std_logic; - - clk0_tb : out std_logic; - rst0_tb : out std_logic; -@@ -434,7 +433,6 @@ - ddr2_cke => ddr2_cke_fpga, - ddr2_odt => ddr2_odt_fpga, - ddr2_dm => ddr2_dm_fpga, -- ddr2_reset_n => ddr2_reset_n_fpga, - ddr2_dq => ddr2_dq_fpga, - ddr2_dqs => ddr2_dqs_fpga, - ddr2_dqs_n => ddr2_dqs_n_fpga, diff --git a/designs/leon3-xilinx-ml510/svga2ch7301c.vhd b/designs/leon3-xilinx-ml510/svga2ch7301c.vhd index 0c28c28c..e0fa9171 100644 --- a/designs/leon3-xilinx-ml510/svga2ch7301c.vhd +++ b/designs/leon3-xilinx-ml510/svga2ch7301c.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-ml510/testbench.vhd b/designs/leon3-xilinx-ml510/testbench.vhd index d3cdf4d3..8a3e19fc 100644 --- a/designs/leon3-xilinx-ml510/testbench.vhd +++ b/designs/leon3-xilinx-ml510/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -35,7 +35,6 @@ use hynix.components.all; use work.debug.all; use work.config.all; -- configuration -use work.ml510.all; -- configuration entity testbench is generic ( @@ -303,7 +302,7 @@ begin u1 : HY5PS121621F generic map (TimingCheckFlag => true, PUSCheckFlag => false, index => (1 + 2*(CFG_DDR2SP_DATAWIDTH/64))-i, bbits => CFG_DDR2SP_DATAWIDTH, - fname => sdramfile, fdelay => 100*CFG_MIG_DDR2) + fname => sdramfile, fdelay => 0) port map (DQ => dimm0_ddr2_dq2(i*16+15+32*(32/CFG_DDR2SP_DATAWIDTH) downto i*16+32*(32/CFG_DDR2SP_DATAWIDTH)), LDQS => dimm0_ddr2_dqs_p(i*2+4*(32/CFG_DDR2SP_DATAWIDTH)), LDQSB => dimm0_ddr2_dqs_n(i*2+4*(32/CFG_DDR2SP_DATAWIDTH)), @@ -322,7 +321,7 @@ begin u1 : HY5PS121621F generic map (TimingCheckFlag => true, PUSCheckFlag => false, index => (1 + 2*(CFG_DDR2SP_DATAWIDTH/64))-i, bbits => CFG_DDR2SP_DATAWIDTH, - fname => sdramfile, fdelay => 100*CFG_MIG_DDR2) + fname => sdramfile, fdelay => 0) port map (DQ => dimm1_ddr2_dq2(i*16+15+32*(32/CFG_DDR2SP_DATAWIDTH) downto i*16+32*(32/CFG_DDR2SP_DATAWIDTH)), LDQS => dimm1_ddr2_dqs_p(i*2+4*(32/CFG_DDR2SP_DATAWIDTH)), LDQSB => dimm1_ddr2_dqs_n(i*2+4*(32/CFG_DDR2SP_DATAWIDTH)), @@ -337,23 +336,13 @@ begin UDM => dimm1_ddr2_dqm(i*2+1+4*(32/CFG_DDR2SP_DATAWIDTH))); end generate; - nodelgen : if CFG_MIG_DDR2 = 1 generate - ddr2delay0 : delay_wire - generic map(data_width => dimm0_ddr2_dq'length, delay_atob => 0.0, delay_btoa => 0.0) - port map(a => dimm0_ddr2_dq, b => dimm0_ddr2_dq2); - ddr2delay1 : delay_wire - generic map(data_width => dimm1_ddr2_dq'length, delay_atob => 0.0, delay_btoa => 0.0) - port map(a => dimm1_ddr2_dq, b => dimm1_ddr2_dq2); - end generate; - delgen : if CFG_MIG_DDR2 = 0 generate - ddr2delay0 : delay_wire - generic map(data_width => dimm0_ddr2_dq'length, delay_atob => 0.0, delay_btoa => 2.5) - port map(a => dimm0_ddr2_dq, b => dimm0_ddr2_dq2); - ddr2delay1 : delay_wire - generic map(data_width => dimm1_ddr2_dq'length, delay_atob => 0.0, delay_btoa => 2.5) - port map(a => dimm1_ddr2_dq, b => dimm1_ddr2_dq2); - end generate; + ddr2delay0 : delay_wire + generic map(data_width => dimm0_ddr2_dq'length, delay_atob => 0.0, delay_btoa => 2.5) + port map(a => dimm0_ddr2_dq, b => dimm0_ddr2_dq2); + ddr2delay1 : delay_wire + generic map(data_width => dimm1_ddr2_dq'length, delay_atob => 0.0, delay_btoa => 2.5) + port map(a => dimm1_ddr2_dq, b => dimm1_ddr2_dq2); prom0 : sram16 generic map (index => 4, abits => romdepth, fname => promfile) port map (flash_a(romdepth-1 downto 0), flash_d(15 downto 0), diff --git a/designs/leon3-xilinx-ml510/tkconfig.h b/designs/leon3-xilinx-ml510/tkconfig.h index a96032a9..d6b2903a 100644 --- a/designs/leon3-xilinx-ml510/tkconfig.h +++ b/designs/leon3-xilinx-ml510/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -657,6 +679,10 @@ #define CONFIG_AHB_RROBIN 0 #endif +#ifndef CONFIG_AHB_FPNPEN +#define CONFIG_AHB_FPNPEN 0 +#endif + #ifndef CONFIG_AHB_IOADDR #define CONFIG_AHB_IOADDR FFF #endif @@ -778,10 +804,6 @@ #define CONFIG_MCTRL_PROGPAGE 0 #endif - -#ifndef CONFIG_MIG_DDR2 -#define CONFIG_MIG_DDR2 0 -#endif #ifndef CONFIG_DDR2SP #define CONFIG_DDR2SP 0 #endif @@ -869,6 +891,10 @@ #ifndef CONFIG_DDR2SP_FTEN #define CONFIG_DDR2SP_FTEN 0 #endif + +#ifndef CONFIG_DDR2SP_FTWIDTH +#define CONFIG_DDR2SP_FTWIDTH 0 +#endif #ifndef CONFIG_AHBSTAT_ENABLE #define CONFIG_AHBSTAT_ENABLE 0 #endif diff --git a/designs/leon3-xilinx-ml605/.config b/designs/leon3-xilinx-ml605/.config index 04f0fcbc..392e7f0d 100755 --- a/designs/leon3-xilinx-ml605/.config +++ b/designs/leon3-xilinx-ml605/.config @@ -42,7 +42,8 @@ CONFIG_HAS_SHARED_GRFPU=y # CONFIG_SYN_TM65GPLUS is not set # CONFIG_SYN_TSMC90 is not set # CONFIG_SYN_UMC is not set -# CONFIG_SYN_SPARTAN2 is not set +# CONFIG_SYN_ARTIX7 is not set +# CONFIG_SYN_KINTEX7 is not set # CONFIG_SYN_SPARTAN3 is not set # CONFIG_SYN_SPARTAN3E is not set # CONFIG_SYN_SPARTAN6 is not set @@ -52,6 +53,8 @@ CONFIG_HAS_SHARED_GRFPU=y # CONFIG_SYN_VIRTEX4 is not set # CONFIG_SYN_VIRTEX5 is not set CONFIG_SYN_VIRTEX6=y +# CONFIG_SYN_VIRTEX7 is not set +# CONFIG_SYN_ZYNQ7000 is not set # CONFIG_SYN_INFER_RAM is not set # CONFIG_SYN_INFER_PADS is not set # CONFIG_SYN_NO_ASYNC is not set @@ -65,12 +68,16 @@ CONFIG_FREQ75=y # CONFIG_FREQ80 is not set # CONFIG_FREQ100 is not set # CONFIG_FREQ120 is not set -CONFIG_LEON3=y -CONFIG_PROC_NUM=1 # # Processor # +CONFIG_LEON3=y +CONFIG_PROC_NUM=1 +# CONFIG_LEON3_MIN is not set +# CONFIG_LEON3_GP is not set +# CONFIG_LEON3_HP is not set +CONFIG_LEON3_CUSTOM=y # # Integer unit @@ -151,21 +158,16 @@ CONFIG_CACHE_FIXED=0 # MMU # CONFIG_MMU_ENABLE=y -# CONFIG_MMU_COMBINED is not set -CONFIG_MMU_SPLIT=y -CONFIG_MMU_REPARRAY=y -# CONFIG_MMU_REPINCREMENT is not set +CONFIG_MMU_COMBINED=y +# CONFIG_MMU_SPLIT is not set +# CONFIG_MMU_REPARRAY is not set +CONFIG_MMU_REPINCREMENT=y # CONFIG_MMU_I2 is not set # CONFIG_MMU_I4 is not set CONFIG_MMU_I8=y # CONFIG_MMU_I16 is not set # CONFIG_MMU_I32 is not set -# CONFIG_MMU_D2 is not set -# CONFIG_MMU_D4 is not set -CONFIG_MMU_D8=y -# CONFIG_MMU_D16 is not set -# CONFIG_MMU_D32 is not set -CONFIG_MMU_FASTWB=y +# CONFIG_MMU_I64 is not set CONFIG_MMU_PAGE_4K=y # CONFIG_MMU_PAGE_8K is not set # CONFIG_MMU_PAGE_16K is not set diff --git a/designs/leon3-xilinx-ml605/Makefile b/designs/leon3-xilinx-ml605/Makefile index 6af55af8..99a39892 100644 --- a/designs/leon3-xilinx-ml605/Makefile +++ b/designs/leon3-xilinx-ml605/Makefile @@ -1,11 +1,14 @@ include .config GRLIB=../.. TOP=leon3mp +DESIGN=leon3-xilinx-ml605 BOARD=xilinx-ml605-xc6vlx240t include $(GRLIB)/boards/$(BOARD)/Makefile.inc DEVICE=$(PART)-$(PACKAGE)$(SPEED) #UCF=$(GRLIB)/boards/$(BOARD)/$(TOP).ucf UCF=$(TOP).ucf +UCF_PLANAHEAD=$(TOP)_mig39.ucf + #ISEMAPOPT=-timing QSF=$(GRLIB)/boards/$(BOARD)/$(TOP).qsf EFFORT=high @@ -64,6 +67,14 @@ VHDLOPTSYNFILES= \ mig_37/user_design/rtl/ui/ui_rd_data.vhd \ mig_37/user_design/rtl/ui/ui_top.vhd \ mig_37/user_design/rtl/ui/ui_wr_data.vhd +VERILOGOPTSYNFILES= \ + mig/user_design/rtl/controller/*.v \ + mig/user_design/rtl/ecc/*.v \ + mig/user_design/rtl/ip_top/*.v \ + mig/user_design/rtl/phy/*.v \ + mig/user_design/rtl/phy/*.v \ + mig/user_design/rtl/ui/*.v \ + $$XILINX/verilog/src/glbl.v VHDLSYNFILES= \ ahb2mig_ml605.vhd config.vhd ahbrom.vhd \ svga2ch7301c.vhd gtxclk.vhd leon3mp.vhd @@ -73,13 +84,16 @@ SDCFILE=default.sdc BITGEN=$(GRLIB)/boards/$(BOARD)/default.ut CLEAN=soft-clean TECHLIBS = secureip unisim +VLOGOPT= +define+x1Gb +define+sg187E +define+x16 +VSIMOPT= -gdisas=1 -gDEBUG=0 -i -do preload_ddr3_dimm.do -t ps -novopt +notimingchecks -L secureip_ver -L xilinxcorelib_ver -L unisims_ver glbl $(SIMTOP) +EXTRA_SOFT = gen_hex_dim16 LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann usbhc spw gsi cypress hynix \ + tmtc openchip ihp usbhc spw gsi cypress hynix \ spansion DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci ambatest can \ - usb grusbhc spacewire ata haps coremp7 ascs slink spi hcan \ - leon4 leon4b64 l2cache pwm gr1553b iommu ac97 + usb grusbhc spacewire ascs slink spi hcan \ + leon4 leon4v0 l2cache pwm gr1553b iommu ac97 FILESKIP = grcan.vhd ddr2.v mobile_ddr.v GRLIB_CONFIG = grlib_config.vhd @@ -93,4 +107,14 @@ mig_37 mig: patch -p1 < mig.diff migclean: - -rm -rf mig_37* tmp coregen.log \ No newline at end of file + -rm -rf mig_37* tmp coregen.log + +mig39: + coregen -b mig39.xco -p mig39.cgp + patch -p1 < mig_patch.txt + patch -p1 < mig_iodelay_ctrl_patch.txt + patch -p1 < mig_infrastructure_patch.txt + patch -p1 < mig_ucf_patch.txt + +mig39clean: + -rm -rf mig tmp coregen.log diff --git a/designs/leon3-xilinx-ml605/README.txt b/designs/leon3-xilinx-ml605/README.txt index 383138b0..705dae21 100644 --- a/designs/leon3-xilinx-ml605/README.txt +++ b/designs/leon3-xilinx-ml605/README.txt @@ -2,8 +2,8 @@ This leon3 design is tailored to the Xilinx Virtex-6 ML605 board http://www.xilinx.com/ml605 -Simulation and synthesis ------------------------- +Simulation and synthesis for ISE-13 +----------------------------------- The design uses the Xilinx MIG memory interface with an AHB-2.0 interface. The MIG source code cannot be distributed due to the @@ -27,10 +27,42 @@ and then to program the FPGA. +Simulation and synthesis for ISE-14 +----------------------------------- + +The design uses the Xilinx MIG memory interface with an AHB-2.0 +interface. The MIG source code cannot be distributed due to the +prohibitive Xilinx license, so the MIG must be re-generated with +coregen before simulation and synthesis can be done. + +To generate the MIG and install the Xilinx unisim simulation +library, do as follows: + + make mig39 + make compile_xilinx_verilog_lib + make map_xilinx_verilog_lib + +To simulate and run systest.c on the Leon design using the memory +controller from Xilinx use the make targets: + + make soft + make vsim-launch + +This will ONLY work with ISE-14 installed, and the XILINX variable +properly set in the shell. To build the design, do + + make planAhead + +and then + + make ise-prog-fpga + +to program the FPGA. + Design specifics ---------------- -* Synthesis shold be done using ISE-13 +* Synthesis should be done using ISE-13 or ISE-14 * The DDR3 controller is implemented with Xilinx MIG-3.7 and runs of the 200 MHz clock. The DDR3 memory runs at 400 MHz @@ -50,7 +82,7 @@ Design specifics * LED 2 indicates processor in debug mode -* LED 3 indicates DDR3 PHY initialization done +* LED 7 indicates processor in error mode * The GRETH core is enabled and runs without problems at both 100 and 1000 Mbit. The 1000 Mbit operation requires the commercial @@ -60,7 +92,7 @@ Design specifics * 16-bit flash prom can be read at address 0. It can be programmed with GRMON version 1.1.16 or later. -* The system can be simulated if the secure IP models are installed: +* When using ISE-13 the system can be simulated if the secure IP models are installed: make install-secureip @@ -70,8 +102,16 @@ Design specifics Modelsim v6.5e or newer is required to build the secure IP models. - The normal leon3 test bench cannot be executed as the DDR3 model - does not support pre-loading. +* When using ISE-14 the system can be simulated if xilinx core libs are installed: + + make compile_xilinx_verilog_lib + make map_xilinx_verilog_lib + + Then rebuild the scripts and simulation model: + + make distclean vsim-launch + + Modelsim v10.1a has been used to run systest.c. * The application UART1 is connected to the USB/RS232 connector @@ -84,7 +124,7 @@ Design specifics * Output from GRMON is: -grmon -eth -ip 192.168.0.52 -u -nb +grmon -eth -ip 192.168.0.51 -u -nb GRMON LEON debug monitor v1.1.47 professional version diff --git a/designs/leon3-xilinx-ml605/ahb2mig_ml605.vhd b/designs/leon3-xilinx-ml605/ahb2mig_ml605.vhd index 602a693e..63670692 100644 --- a/designs/leon3-xilinx-ml605/ahb2mig_ml605.vhd +++ b/designs/leon3-xilinx-ml605/ahb2mig_ml605.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -313,7 +313,6 @@ begin ahbso.hready <= ra.hready; ahbso.hresp <= ra.hresp; ahbso.hrdata <= ahbdrivedata(ra.hrdata); - ahbso.hcache <= '1'; migi.app_addr <= '0' & ra.acc.haddr(28 downto 6) & "000"; diff --git a/designs/leon3-xilinx-ml605/ahbrom.vhd b/designs/leon3-xilinx-ml605/ahbrom.vhd index c997d1ce..48a5a6a8 100644 --- a/designs/leon3-xilinx-ml605/ahbrom.vhd +++ b/designs/leon3-xilinx-ml605/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-xilinx-ml605/config.help b/designs/leon3-xilinx-ml605/config.help index 4d338b53..5530e085 100644 --- a/designs/leon3-xilinx-ml605/config.help +++ b/designs/leon3-xilinx-ml605/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,6 +63,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. diff --git a/designs/leon3-xilinx-ml605/config.vhd b/designs/leon3-xilinx-ml605/config.vhd index f8400dd2..161984cc 100644 --- a/designs/leon3-xilinx-ml605/config.vhd +++ b/designs/leon3-xilinx-ml605/config.vhd @@ -2,8 +2,6 @@ - - ----------------------------------------------------------------------------- -- LEON3 Demonstration design test bench configuration -- Copyright (C) 2009 Aeroflex Gaisler @@ -57,9 +55,9 @@ package config is constant CFG_DLRAMSZ : integer := 1; constant CFG_MMUEN : integer := 1; constant CFG_ITLBNUM : integer := 8; - constant CFG_DTLBNUM : integer := 8; - constant CFG_TLB_TYPE : integer := 0 + 1*2; - constant CFG_TLB_REP : integer := 0; + constant CFG_DTLBNUM : integer := 2; + constant CFG_TLB_TYPE : integer := 1 + 0*2; + constant CFG_TLB_REP : integer := 1; constant CFG_MMU_PAGE : integer := 0; constant CFG_DSU : integer := 1; constant CFG_ITBSZ : integer := 4; diff --git a/designs/leon3-xilinx-ml605/grlib_config.vhd b/designs/leon3-xilinx-ml605/grlib_config.vhd index 34827930..c594ac71 100644 --- a/designs/leon3-xilinx-ml605/grlib_config.vhd +++ b/designs/leon3-xilinx-ml605/grlib_config.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -26,6 +26,8 @@ library ieee; use ieee.std_logic_1164.all; +library grlib; +use grlib.config_types.all; package config is @@ -53,7 +55,14 @@ constant CFG_AHBDW : integer := 64; -- constant CFG_AHB_ACDM : integer := 0; -constant grlib_debug_level : integer := 0; -constant grlib_debug_mask : integer := 0; +-- GRLIB_CONFIG_ARRAY - Array of configuration values +-- +-- The length of this array and the meaning of different positions is defined +-- in the grlib.config_types package. +constant GRLIB_CONFIG_ARRAY : grlib_config_array_type := ( + grlib_debug_level => 0, + grlib_debug_mask => 0, + grlib_techmap_strict_ram => 0, + others => 0); end; diff --git a/designs/leon3-xilinx-ml605/lconfig.tk b/designs/leon3-xilinx-ml605/lconfig.tk index 60d0b937..8ca96879 100755 --- a/designs/leon3-xilinx-ml605/lconfig.tk +++ b/designs/leon3-xilinx-ml605/lconfig.tk @@ -755,7 +755,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -765,7 +766,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -908,8 +911,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -928,6 +933,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1121,13 +1130,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1167,22 +1184,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1239,21 +1524,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1300,36 +1585,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1337,48 +1623,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1434,28 +1721,28 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH - global tmpvar_7 - minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x4.x.menu 3 bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1496,20 +1783,21 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1518,38 +1806,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} - global tmpvar_7 + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1606,92 +1895,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1699,18 +1988,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1751,52 +2040,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1804,162 +2094,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2015,45 +2306,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2093,18 +2386,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2112,55 +2406,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2217,24 +2516,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2274,17 +2573,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2292,37 +2592,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2378,22 +2679,22 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - global tmpvar_26 - minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_26 CONFIG_FPUFT_NONE + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" - $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN @@ -2464,26 +2765,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global tmpvar_26 + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 global CONFIG_FPUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} global CONFIG_FPUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} global CONFIG_FPUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} global CONFIG_FPUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2792,14 +3093,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_27 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_27 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2873,17 +3174,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_27 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3419,16 +3720,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_28 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_28 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3490,21 +3791,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_28 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_28 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_28 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_28 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_28 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_28 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_28 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_28 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3564,14 +3865,14 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 18 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_29 - minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_29 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3625,17 +3926,17 @@ proc update_define_menu18 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_29 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_29 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3691,15 +3992,15 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_30 - minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_30 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 19 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 19 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3789,19 +4090,19 @@ proc update_menu19 {} { proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_30 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_30 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_30 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4177,7 +4478,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4187,6 +4489,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4207,14 +4511,19 @@ set CONFIG_FREQ100 0 set CONFIG_FREQ120 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4227,28 +4536,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 set CONFIG_FPU_GRFPU_SH 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4258,17 +4567,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4280,12 +4589,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4295,10 +4604,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4309,7 +4618,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4321,26 +4630,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4348,27 +4659,27 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_FPUFT_NONE 0 set CONFIG_FPUFT_PAR 0 set CONFIG_FPUFT_DMR 0 @@ -4393,7 +4704,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_27 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4420,7 +4731,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_28 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4431,14 +4742,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_29 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_30 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4524,7 +4835,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4534,6 +4846,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4566,245 +4880,390 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "80MHz" } then { write_tristate $cfg $autocfg CONFIG_FREQ80 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FREQ80 0 [list $notmod] 2 } if { $tmpvar_2 == "100MHz" } then { write_tristate $cfg $autocfg CONFIG_FREQ100 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FREQ100 0 [list $notmod] 2 } if { $tmpvar_2 == "120MHz" } then { write_tristate $cfg $autocfg CONFIG_FREQ120 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FREQ120 0 [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4849,13 +5308,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_27 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -4904,38 +5363,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_28 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_29 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_30 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5020,7 +5479,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5030,6 +5490,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5042,6 +5504,10 @@ proc clear_choices { } { global CONFIG_FREQ80; set CONFIG_FREQ80 0 global CONFIG_FREQ100; set CONFIG_FREQ100 0 global CONFIG_FREQ120; set CONFIG_FREQ120 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5124,11 +5590,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5252,8 +5720,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5272,6 +5742,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5301,329 +5775,343 @@ proc update_choices { } { global CONFIG_FREQ120 if { $CONFIG_FREQ120 == 1 } then { set tmpvar_2 "120MHz" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_FPUFT_NONE - if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_FPUFT_PAR - if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_FPUFT_DMR - if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_FPUFT_TMR - if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "2" + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_27 "16" } - global tmpvar_28 - set tmpvar_28 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_29 "64" } - global tmpvar_30 - set tmpvar_30 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_30 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_30 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } } diff --git a/designs/leon3-xilinx-ml605/leon3mp.ucf b/designs/leon3-xilinx-ml605/leon3mp.ucf index d3d212fe..8f9ed523 100644 --- a/designs/leon3-xilinx-ml605/leon3mp.ucf +++ b/designs/leon3-xilinx-ml605/leon3mp.ucf @@ -484,6 +484,8 @@ NET "led(1)" LOC = "AC24"; ## 2 on LED DS11, 2 on J62 NET "led(2)" LOC = "AE22"; ## 2 on LED DS9, 3 on J62 NET "led(3)" LOC = "AE23"; ## 2 on LED DS10, 4 on J62 NET "led(4)" LOC = "AB23"; ## 2 on LED DS15, 5 on J62 +NET "led(4)" LOC = "AB23"; ## 2 on LED DS15, 5 on J62 +NET "led(5)" LOC = "AG23"; ## 2 on LED DS14, 6 on J62 #NET "GPIO_LED_5" LOC = "AG23"; ## 2 on LED DS14, 6 on J62 #NET "GPIO_LED_6" LOC = "AE24"; ## 2 on LED DS22, 7 on J62 #NET "GPIO_LED_7" LOC = "AD24"; ## 2 on LED DS21, 8 on J62 diff --git a/designs/leon3-xilinx-ml605/leon3mp.vhd b/designs/leon3-xilinx-ml605/leon3mp.vhd index e98ce6a1..429eddd3 100644 --- a/designs/leon3-xilinx-ml605/leon3mp.vhd +++ b/designs/leon3-xilinx-ml605/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2010, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -56,7 +56,8 @@ entity leon3mp is padtech : integer := CFG_PADTECH; disas : integer := CFG_DISAS; -- Enable disassembly to console dbguart : integer := CFG_DUART; -- Print UART on console - pclow : integer := CFG_PCLOW + pclow : integer := CFG_PCLOW; + SIM_BYPASS_INIT_CAL : string := "OFF" ); port ( reset : in std_ulogic; @@ -72,24 +73,22 @@ entity leon3mp is writen : out std_ulogic; alatch : out std_ulogic; - -- DDR3 memory - ddr3_dq : inout std_logic_vector(DQ_WIDTH-1 downto 0); - ddr3_dm : out std_logic_vector(DM_WIDTH-1 downto 0); - ddr3_addr : out std_logic_vector(ROW_WIDTH-1 downto 0); - ddr3_ba : out std_logic_vector(BANK_WIDTH-1 downto 0); - ddr3_ras_n : out std_logic; - ddr3_cas_n : out std_logic; - ddr3_we_n : out std_logic; - ddr3_reset_n : out std_logic; - ddr3_cs_n : out std_logic_vector((CS_WIDTH*nCS_PER_RANK)-1 downto 0); - ddr3_odt : out std_logic_vector((CS_WIDTH*nCS_PER_RANK)-1 downto 0); - ddr3_cke : out std_logic_vector(CKE_WIDTH-1 downto 0); - ddr3_dqs_p : inout std_logic_vector(DQS_WIDTH-1 downto 0); - ddr3_dqs_n : inout std_logic_vector(DQS_WIDTH-1 downto 0); - ddr3_ck_p : out std_logic_vector(CK_WIDTH-1 downto 0); - ddr3_ck_n : out std_logic_vector(CK_WIDTH-1 downto 0); --- sda : inout std_logic; --- scl : out std_logic; + -- DDR3 memory + ddr3_dq : inout std_logic_vector(DQ_WIDTH-1 downto 0); + ddr3_dm : out std_logic_vector(DM_WIDTH-1 downto 0); + ddr3_addr : out std_logic_vector(ROW_WIDTH-1 downto 0); + ddr3_ba : out std_logic_vector(BANK_WIDTH-1 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_cs_n : out std_logic_vector((CS_WIDTH*nCS_PER_RANK)-1 downto 0); + ddr3_odt : out std_logic_vector((CS_WIDTH*nCS_PER_RANK)-1 downto 0); + ddr3_cke : out std_logic_vector(CKE_WIDTH-1 downto 0); + ddr3_dqs_p : inout std_logic_vector(DQS_WIDTH-1 downto 0); + ddr3_dqs_n : inout std_logic_vector(DQS_WIDTH-1 downto 0); + ddr3_ck_p : out std_logic_vector(CK_WIDTH-1 downto 0); + ddr3_ck_n : out std_logic_vector(CK_WIDTH-1 downto 0); -- Debug support unit dsubre : in std_ulogic; -- Debug Unit break (connect to button) @@ -140,7 +139,7 @@ entity leon3mp is sysace_d : inout std_logic_vector(7 downto 0); -- Output signals to LEDs - led : out std_logic_vector(4 downto 0) + led : out std_logic_vector(6 downto 0) ); end; @@ -198,7 +197,7 @@ architecture rtl of leon3mp is -- RS232 APB Uart signal rxd1 : std_logic; signal txd1 : std_logic; - + -- VGA signal vgao : apbvga_out_type; signal lcd_datal : std_logic_vector(11 downto 0); @@ -220,6 +219,9 @@ architecture rtl of leon3mp is -- Used for connecting input/output signals to the DDR3 controller signal migi : mig_app_in_type; signal migo : mig_app_out_type; + + signal counter : unsigned(31 downto 0); + signal led_int : std_logic; attribute keep : boolean; @@ -253,15 +255,15 @@ begin rst0 : rstgen generic map (acthigh => 1) port map (reset, clkm, lock, rstn, rstraw); - ----------------------------------------------------------------------- + +---------------------------------------------------------------------- --- AHB CONTROLLER -------------------------------------------------- ---------------------------------------------------------------------- ahb0 : ahbctrl generic map (defmast => CFG_DEFMST, split => CFG_SPLIT, - rrobin => CFG_RROBIN, ioaddr => CFG_AHBIO, ioen => 1, - nahbm => CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_GRETH+CFG_SVGA_ENABLE, + rrobin => CFG_RROBIN, ioaddr => CFG_AHBIO, ioen => 1, + nahbm => CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_GRETH+CFG_SVGA_ENABLE, nahbs => 8) port map (rstn, clkm, ahbmi, ahbmo, ahbsi, ahbso); @@ -273,16 +275,16 @@ begin nosh : if CFG_GRFPUSH = 0 generate cpu : for i in 0 to CFG_NCPU-1 generate l3ft : if CFG_LEON3FT_EN /= 0 generate - leon3ft0 : leon3ft -- LEON3 processor - generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, - 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, + leon3ft0 : leon3ft -- LEON3 processor + generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, + 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, - CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, + CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1, - CFG_IUFT_EN, CFG_FPUFT_EN, CFG_CACHE_FT_EN, CFG_RF_ERRINJ, + CFG_IUFT_EN, CFG_FPUFT_EN, CFG_CACHE_FT_EN, CFG_RF_ERRINJ, CFG_CACHE_ERRINJ, CFG_DFIXED, CFG_LEON3_NETLIST, CFG_SCAN, CFG_MMU_PAGE) - port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, + port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, irqi(i), irqo(i), dbgi(i), dbgo(i), clkm); end generate; @@ -304,16 +306,16 @@ begin sh : if CFG_GRFPUSH = 1 generate cpu : for i in 0 to CFG_NCPU-1 generate l3ft : if CFG_LEON3FT_EN /= 0 generate - leon3ft0 : leon3ftsh -- LEON3 processor - generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, - 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, + leon3ft0 : leon3ftsh -- LEON3 processor + generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, + 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, - CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, + CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1, - CFG_IUFT_EN, CFG_FPUFT_EN, CFG_CACHE_FT_EN, CFG_RF_ERRINJ, + CFG_IUFT_EN, CFG_FPUFT_EN, CFG_CACHE_FT_EN, CFG_RF_ERRINJ, CFG_CACHE_ERRINJ, CFG_DFIXED, CFG_LEON3_NETLIST, CFG_SCAN, CFG_MMU_PAGE) - port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, + port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, irqi(i), irqo(i), dbgi(i), dbgo(i), clkm, fpi(i), fpo(i)); end generate; @@ -340,7 +342,7 @@ begin error_pad : odpad generic map (level => cmos, voltage => x25v, tech => padtech) port map (errorn, lerrorn); dsugen : if CFG_DSU = 1 generate - -- LEON3 Debug Support Unit + -- LEON3 Debug Support Unit dsugen : if CFG_DSU = 1 generate dsu0 : dsu3 generic map (hindex => 2, haddr => 16#900#, hmask => 16#F00#, @@ -353,7 +355,7 @@ begin led(2) <= dsuo.active; end generate; end generate; - nodsu : if CFG_DSU = 0 generate + nodsu : if CFG_DSU = 0 generate ahbso(2) <= ahbs_none; dsuo.tstop <= '0'; dsuo.active <= '0'; end generate; @@ -391,7 +393,7 @@ begin memi.wrn <= "1111"; memi.bwidth <= "01"; - mg0 : if (CFG_MCTRL_LEON2 = 0) generate + mg0 : if (CFG_MCTRL_LEON2 = 0) generate apbo(0) <= apb_none; ahbso(5) <= ahbs_none; roms_pad : outpad generic map (level => cmos, voltage => x25v, tech => padtech) @@ -399,7 +401,7 @@ begin memo.bdrive(0) <= '1'; end generate; - mgpads : if (CFG_MCTRL_LEON2 /= 0) generate + mgpads : if (CFG_MCTRL_LEON2 /= 0) generate addr_pad : outpadv generic map (level => cmos, voltage => x25v, tech => padtech, width => 24) port map (address, memo.address(24 downto 1)); roms_pad : outpad generic map (level => cmos, voltage => x25v, tech => padtech) @@ -413,45 +415,87 @@ begin bdr : iopadvv generic map (level => cmos, voltage => x25v, tech => padtech, width => 16) port map (data(15 downto 0), memo.data(31 downto 16), memo.vbdrive(31 downto 16), memi.data(31 downto 16)); - + ---------------------------------------------------------------------- --- DDR3 memory controller ------------------------------------------ ---------------------------------------------------------------------- - --- mig_gen : if (CFG_MIG_DDR2 = 1) generate + +-- mig_gen : if (CFG_MIG_DDR2 = 1) generate ahb2mig0 : ahb2mig_ml605 - generic map ( hindex => 0, haddr => 16#400#, hmask => 16#E00#, - MHz => 400, Mbyte => 512, nosync => boolean'pos(CFG_MIG_CLK4=12)) --CFG_CLKDIV/12) - port map ( - rst => rstn, clk_ahb => clkm, clk_ddr => clk_ddr, - ahbsi => ahbsi, ahbso => ahbso(0), migi => migi, migo => migo); - - ddr3ctrl : entity work.mig_37 - generic map (SIM_BYPASS_INIT_CAL => "FAST", CLKOUT_DIVIDE4 => CFG_MIG_CLK4) - port map( -- sys_clk_p, sys_clk_n, - clk_ref_p, clk_ref_n, - ddr3_dq, ddr3_dm, ddr3_addr, ddr3_ba, ddr3_ras_n, - ddr3_cas_n, ddr3_we_n, ddr3_reset_n, ddr3_cs_n, ddr3_odt, - ddr3_cke, ddr3_dqs_p, ddr3_dqs_n, ddr3_ck_p, ddr3_ck_n , --- sda, scl, - migi.app_wdf_wren, migi.app_wdf_data, migi.app_wdf_mask, - migi.app_wdf_end, migi.app_addr, migi.app_cmd, migi.app_en, migo.app_rdy, - migo.app_wdf_rdy, migo.app_rd_data, migo.app_rd_data_valid, tb_rst, clk_ddr, - phy_init_done, clkm, clk100, sys_rst + generic map ( hindex => 0, haddr => 16#400#, hmask => 16#E00#, + MHz => 400, Mbyte => 512, nosync => boolean'pos(CFG_MIG_CLK4=12)) --CFG_CLKDIV/12) + port map ( + rst => rstn, clk_ahb => clkm, clk_ddr => clk_ddr, + ahbsi => ahbsi, ahbso => ahbso(0), migi => migi, migo => migo); + + ddr3ctrl : entity work.mig_37 + generic map (SIM_BYPASS_INIT_CAL => SIM_BYPASS_INIT_CAL,CLKOUT_DIVIDE4 => CFG_MIG_CLK4) + port map( + clk_ref_p => clk_ref_p, + clk_ref_n => clk_ref_n, + ddr3_dq => ddr3_dq, + ddr3_addr => ddr3_addr, + ddr3_ba => ddr3_ba, + ddr3_ras_n => ddr3_ras_n, + ddr3_cas_n => ddr3_cas_n, + ddr3_we_n => ddr3_we_n, + ddr3_reset_n => ddr3_reset_n, + ddr3_cs_n => ddr3_cs_n, + ddr3_odt => ddr3_odt, + ddr3_cke => ddr3_cke, + ddr3_dm => ddr3_dm, + ddr3_dqs_p => ddr3_dqs_p, + ddr3_dqs_n => ddr3_dqs_n, + ddr3_ck_p => ddr3_ck_p, + ddr3_ck_n => ddr3_ck_n, + app_wdf_wren => migi.app_wdf_wren, + app_wdf_data => migi.app_wdf_data, + app_wdf_mask => migi.app_wdf_mask, + app_wdf_end => migi.app_wdf_end, + app_addr => migi.app_addr, + app_cmd => migi.app_cmd, + app_en => migi.app_en, + app_rdy => migo.app_rdy, + app_wdf_rdy => migo.app_wdf_rdy, + app_rd_data => migo.app_rd_data, + app_rd_data_valid => migo.app_rd_data_valid, + tb_rst => open, + tb_clk => clk_ddr, + clk_ahb => clkm, + clk100 => clk100, + phy_init_done => phy_init_done, + sys_rst => rstraw ); led(3) <= phy_init_done; led(4) <= ahbmi.hready; + led(5) <= reset; + led(6) <= led_int; sys_rst <= reset; lock <= phy_init_done; -- and cgo.clklock; --- end generate; +-- end generate; -- noddr : if (CFG_DDR2SP+CFG_MIG_DDR2) = 0 generate lock <= cgo.clklock; end generate; + regs : process(clkm,rstn) + begin + if (rstn = '0') then + counter <= (others => '0'); + led_int <= '0'; + elsif rising_edge(clkm) then + if (counter >= 75000000) then + counter <= (others => '0'); + led_int <= not led_int; + else + counter <= counter + 1; + led_int <= led_int; + end if; + end if; + end process; ---------------------------------------------------------------------- --- System ACE I/F Controller --------------------------------------- ---------------------------------------------------------------------- - + grace: if CFG_GRACECTRL = 1 generate grace0 : gracectrl generic map (hindex => 7, hirq => 10, mode => 2, haddr => 16#002#, hmask => 16#fff#, split => CFG_SPLIT) @@ -460,22 +504,22 @@ begin nograce: if CFG_GRACECTRL /= 1 generate aceo <= gracectrl_none; end generate; - - clk_33_pad : clkpad generic map (level => cmos, voltage => x25v, tech => padtech) + + clk_33_pad : clkpad generic map (level => cmos, voltage => x25v, tech => padtech) port map (clk_33, clkace); - sysace_mpa_pads : outpadv generic map (level => cmos, voltage => x25v, width => 7, tech => padtech) - port map (sysace_mpa, aceo.addr); + sysace_mpa_pads : outpadv generic map (level => cmos, voltage => x25v, width => 7, tech => padtech) + port map (sysace_mpa, aceo.addr); sysace_mpce_pad : outpad generic map (level => cmos, voltage => x25v, tech => padtech) - port map (sysace_mpce, aceo.cen); + port map (sysace_mpce, aceo.cen); sysace_d_pads : iopadv generic map (level => cmos, voltage => x25v, tech => padtech, width => 8) - port map (sysace_d(7 downto 0), aceo.do(7 downto 0), aceo.doen, acei.di(7 downto 0)); + port map (sysace_d(7 downto 0), aceo.do(7 downto 0), aceo.doen, acei.di(7 downto 0)); acei.di(15 downto 8) <= (others => '0'); sysace_mpoe_pad : outpad generic map (level => cmos, voltage => x25v, tech => padtech) port map (sysace_mpoe, aceo.oen); sysace_mpwe_pad : outpad generic map (level => cmos, voltage => x25v, tech => padtech) - port map (sysace_mpwe, aceo.wen); + port map (sysace_mpwe, aceo.wen); sysace_mpirq_pad : inpad generic map (level => cmos, voltage => x25v, tech => padtech) - port map (sysace_mpirq, acei.irq); + port map (sysace_mpirq, acei.irq); ---------------------------------------------------------------------- --- APB Bridge and various periherals ------------------------------- @@ -560,22 +604,22 @@ begin hindex => CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG, clk0 => 40000, clk1 => 24000, clk2 => 20000, clk3 => 16000, burstlen => 4, ahbaccsz => CFG_AHBDW) - port map(rstn, clkm, clkvga, apbi, apbo(6), vgao, ahbmi, + port map(rstn, clkm, clkvga, apbi, apbo(6), vgao, ahbmi, ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG), clk_sel); end generate; - vgadvi : if (CFG_VGA_ENABLE + CFG_SVGA_ENABLE) /= 0 generate + vgadvi : if (CFG_VGA_ENABLE + CFG_SVGA_ENABLE) /= 0 generate dvi0 : entity work.svga2ch7301c generic map (tech => fabtech, idf => 2) - port map (clk100, ethi.gtx_clk, lock, clk_sel, vgao, clkvga, clkvga_p, clkvga_n, + port map (clk100, ethi.gtx_clk, lock, clk_sel, vgao, clkvga, clkvga_p, clkvga_n, lcd_datal, lcd_hsyncl, lcd_vsyncl, lcd_del); - + i2cdvi : i2cmst generic map (pindex => 9, paddr => 9, pmask => 16#FFF#, pirq => 14, filter => I2C_FILTER) port map (rstn, clkm, apbi, apbo(9), dvi_i2ci, dvi_i2co); end generate; - novga : if (CFG_VGA_ENABLE + CFG_SVGA_ENABLE) = 0 generate + novga : if (CFG_VGA_ENABLE + CFG_SVGA_ENABLE) = 0 generate apbo(6) <= apb_none; lcd_datal <= (others => '0'); clkvga_p <= '0'; clkvga_n <= '0'; lcd_hsyncl <= '0'; lcd_vsyncl <= '0'; lcd_del <= '0'; @@ -611,26 +655,26 @@ begin pindex => 15, paddr => 15, pirq => 12, memtech => memtech, mdcscaler => CPU_FREQ/1000, enable_mdio => 1, fifosize => CFG_ETH_FIFO, nsync => 1, edcl => CFG_DSU_ETH, edclbufsz => CFG_ETH_BUF, - macaddrh => CFG_ETH_ENM, macaddrl => CFG_ETH_ENL, phyrstadr => 7, + macaddrh => CFG_ETH_ENM, macaddrl => CFG_ETH_ENL, phyrstadr => 7, ipaddrh => CFG_ETH_IPM, ipaddrl => CFG_ETH_IPL, giga => CFG_GRETH1G, enable_mdint => 1) port map(rst => rstn, clk => clkm, ahbmi => ahbmi, - ahbmo => ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_SVGA_ENABLE), - apbi => apbi, apbo => apbo(15), ethi => ethi, etho => etho); + ahbmo => ahbmo(CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_SVGA_ENABLE), + apbi => apbi, apbo => apbo(15), ethi => ethi, etho => etho); end generate; -- greth1g: if CFG_GRETH1G = 1 generate gtxclk0 : entity work.gtxclk port map ( - clk_p => gmiiclk_p, clk_n => gmiiclk_n, clkint => ethi.gtx_clk, + clk_p => gmiiclk_p, clk_n => gmiiclk_n, clkint => ethi.gtx_clk, clkout => egtx_clk); -- end generate; ethpads : if (CFG_GRETH = 1) generate -- eth pads emdio_pad : iopad generic map (level => cmos, voltage => x25v, tech => padtech) port map (emdio, etho.mdio_o, etho.mdio_oe, ethi.mdio_i); - etxc_pad : clkpad generic map (level => cmos, voltage => x25v, tech => padtech, arch => 2) + etxc_pad : clkpad generic map (level => cmos, voltage => x25v, tech => padtech, arch => 2) port map (etx_clk, ethi.tx_clk); - erxc_pad : clkpad generic map (level => cmos, voltage => x25v, tech => padtech, arch => 2) + erxc_pad : clkpad generic map (level => cmos, voltage => x25v, tech => padtech, arch => 2) port map (erx_clk, ethi.rx_clk); erxd_pad : inpadv generic map (level => cmos, voltage => x25v, tech => padtech, width => 8) port map (erxd, ethi.rxd(7 downto 0)); @@ -642,7 +686,7 @@ begin port map (erx_col, ethi.rx_col); erxcr_pad : inpad generic map (level => cmos, voltage => x25v, tech => padtech) port map (erx_crs, ethi.rx_crs); - emdint_pad : inpad generic map (level => cmos, voltage => x25v, tech => padtech) + emdint_pad : inpad generic map (level => cmos, voltage => x25v, tech => padtech) port map (emdint, ethi.mdint); diff --git a/designs/leon3-xilinx-ml605/leon3mp_mig39.ucf b/designs/leon3-xilinx-ml605/leon3mp_mig39.ucf new file mode 100644 index 00000000..f25ee033 --- /dev/null +++ b/designs/leon3-xilinx-ml605/leon3mp_mig39.ucf @@ -0,0 +1,195 @@ + +NET "clk_ref_p" TNM_NET = TNM_clk_ref; +TIMESPEC "TS_clk_ref" = PERIOD "TNM_clk_ref" 5 ns ; + +NET "reset" IOSTANDARD = SSTL15; +NET "reset" LOC = "H10"; +NET "errorn" LOC = "AD24"; + +NET "address(0)" LOC = "AL8"; ## 29 on U4, A1 on U27 +NET "address(1)" LOC = "AK8"; ## 25 on U4, B1 on U27 +NET "address(2)" LOC = "AC9"; ## 24 on U4, C1 on U27 +NET "address(3)" LOC = "AD10"; ## 23 on U4, D1 on U27 +NET "address(4)" LOC = "C8"; ## 22 on U4, D2 on U27 +NET "address(5)" LOC = "B8"; ## 21 on U4, A2 on U27 +NET "address(6)" LOC = "E9"; ## 20 on U4, C2 on U27 +NET "address(7)" LOC = "E8"; ## 19 on U4, A3 on U27 +NET "address(8)" LOC = "A8"; ## 8 on U4, B3 on U27 +NET "address(9)" LOC = "A9"; ## 7 on U4, C3 on U27 +NET "address(10)" LOC = "D9"; ## 6 on U4, D3 on U27 +NET "address(11)" LOC = "C9"; ## 5 on U4, C4 on U27 +NET "address(12)" LOC = "D10"; ## 4 on U4, A5 on U27 +NET "address(13)" LOC = "C10"; ## 3 on U4, B5 on U27 +NET "address(14)" LOC = "F10"; ## 2 on U4, C5 on U27 +NET "address(15)" LOC = "F9"; ## 1 on U4, D7 on U27 +NET "address(16)" LOC = "AH8"; ## 55 on U4, D8 on U27 +NET "address(17)" LOC = "AG8"; ## 18 on U4, A7 on U27 +NET "address(18)" LOC = "AP9"; ## 17 on U4, B7 on U27 +NET "address(19)" LOC = "AN9"; ## 16 on U4, C7 on U27 +NET "address(20)" LOC = "AF10"; ## 11 on U4, C8 on U27 +NET "address(21)" LOC = "AF9"; ## 10 on U4, A8 on U27 +NET "address(22)" LOC = "AL9"; ## 9 on U4, G1 on U27 +NET "address(23)" LOC = "AA23"; ## 26 on U4 +NET "data(0)" LOC = "AF24"; ## 34 on U4, F2 on U27 +NET "data(1)" LOC = "AF25"; ## 36 on U4, E2 on U27 +NET "data(2)" LOC = "W24"; ## 39 on U4, G3 on U27 +NET "data(3)" LOC = "V24"; ## 41 on U4, E4 on U27 +NET "data(4)" LOC = "H24"; ## 47 on U4, E5 on U27 +NET "data(5)" LOC = "H25"; ## 49 on U4, G5 on U27 +NET "data(6)" LOC = "P24"; ## 51 on U4, G6 on U27 +NET "data(7)" LOC = "R24"; ## 53 on U4, H7 on U27 +NET "data(8)" LOC = "G23"; ## 35 on U4, E1 on U27 +NET "data(9)" LOC = "H23"; ## 37 on U4, E3 on U27 +NET "data(10)" LOC = "N24"; ## 40 on U4, F3 on U27 +NET "data(11)" LOC = "N23"; ## 42 on U4, F4 on U27 +NET "data(12)" LOC = "F23"; ## 48 on U4, F5 on U27 +NET "data(13)" LOC = "F24"; ## 50 on U4, H5 on U27 +NET "data(14)" LOC = "L24"; ## 52 on U4, G7 on U27 +NET "data(15)" LOC = "M23"; ## 54 on U4, E7 on U27 +#NET "FLASH_WAIT" LOC = "J26"; ## 56 on U4 +NET "writen" LOC = "AF23"; ## 14 on U4, G8 on U27 +NET "oen" LOC = "AA24"; ## 32 on U4, F8 on U27 +#NET "FPGA_CCLK" LOC = "K8"; ## F1 on U27 +NET "alatch" LOC = "AC23"; ## H1 on U27 +NET "romsn" LOC = "Y24"; ## 30 on U4, B4 on U27 (U10 and switch S2.2 setting select either U4 or U27) +## + +NET "erx_col" LOC = "AK13"; ## 114 on U80 +NET "erx_crs" LOC = "AL13"; ## 115 on U80 +NET "emdint" LOC = "AH14"; ## 32 on U80 +NET "emdc" LOC = "AP14"; ## 35 on U80 +NET "emdio" LOC = "AN14"; ## 33 on U80 +NET "erstn" LOC = "AH13"; ## 36 on U80 +NET "erx_clk" LOC = "AP11"; ## 7 on U80 +NET "erx_dv" LOC = "AM13"; ## 4 on U80 +NET "erxd(0)" LOC = "AN13"; ## 3 on U80 +NET "erxd(1)" LOC = "AF14"; ## 128 on U80 +NET "erxd(2)" LOC = "AE14"; ## 126 on U80 +NET "erxd(3)" LOC = "AN12"; ## 125 on U80 +NET "erxd(4)" LOC = "AM12"; ## 124 on U80 +NET "erxd(5)" LOC = "AD11"; ## 123 on U80 +NET "erxd(6)" LOC = "AC12"; ## 121 on U80 +NET "erxd(7)" LOC = "AC13"; ## 120 on U80 +NET "erx_er" LOC = "AG12"; ## 9 on U80 +NET "etx_clk" LOC = "AD12"; ## 10 on U80 +NET "etx_en" LOC = "AJ10"; ## 16 on U80 +NET "egtx_clk" LOC = "AH12"; ## 14 on U80 +NET "etxd(0)" LOC = "AM11"; ## 18 on U80 +NET "etxd(1)" LOC = "AL11"; ## 19 on U80 +NET "etxd(2)" LOC = "AG10"; ## 20 on U80 +NET "etxd(3)" LOC = "AG11"; ## 24 on U80 +NET "etxd(4)" LOC = "AL10"; ## 25 on U80 +NET "etxd(5)" LOC = "AM10"; ## 26 on U80 +NET "etxd(6)" LOC = "AE11"; ## 28 on U80 +NET "etxd(7)" LOC = "AF11"; ## 29 on U80 +NET "etx_er" LOC = "AH10"; ## 13 on U80 + +NET "dsurx" LOC = "J24"; ## 24 on U34 +NET "dsutx" LOC = "J25"; ## 25 on U34 + +#NET "GPIO_DIP_SW1" LOC = "D22"; ## 1 on SW1 DIP switch (active-high) +#NET "GPIO_DIP_SW2" LOC = "C22"; ## 2 on SW1 DIP switch (active-high) +#NET "GPIO_DIP_SW3" LOC = "L21"; ## 3 on SW1 DIP switch (active-high) +#NET "GPIO_DIP_SW4" LOC = "L20"; ## 4 on SW1 DIP switch (active-high) +#NET "GPIO_DIP_SW5" LOC = "C18"; ## 5 on SW1 DIP switch (active-high) +NET "dsubre" LOC = "B18"; ## 6 on SW1 DIP switch (active-high) +#NET "GPIO_DIP_SW7" LOC = "K22"; ## 7 on SW1 DIP switch (active-high) +#NET "GPIO_DIP_SW8" LOC = "K21"; ## 8 on SW1 DIP switch (active-high) +## + +NET "led(0)" LOC = "AC22"; ## 2 on LED DS12, 1 on J62 +NET "led(1)" LOC = "AC24"; ## 2 on LED DS11, 2 on J62 +NET "led(2)" LOC = "AE22"; ## 2 on LED DS9, 3 on J62 +NET "led(3)" LOC = "AE23"; ## 2 on LED DS10, 4 on J62 +NET "led(4)" LOC = "AB23"; ## 2 on LED DS15, 5 on J62 +NET "led(5)" LOC = "AG23"; ## 2 on LED DS14, 6 on J62 +NET "led(6)" LOC = "AE24"; ## 2 on LED DS22, 7 on J62 +#NET "led(7)" LOC = "AD24"; ## 2 on LED DS21, 8 on J62 + +NET "dvi_iic_scl" LOC = "AN10"; ## 2 on Q5, 15 on U38 +NET "iic_scl_main" LOC = "AK9"; ## 2 on Q19 +#NET "IIC_SCL_SFP" LOC = "AA34"; ## 2 on Q23 +NET "dvi_iic_sda" LOC = "AP10"; ## 2 on Q6, 14 on U38 +NET "iic_sda_main" LOC = "AE9"; ## 2 on Q20 +#NET "IIC_SDA_SFP" LOC = "AA33"; ## 2 on Q21 + +NET "tft_lcd_data(0)" LOC = "AJ19"; ## 63 on U38 (thru series R111 47.5 ohm) +NET "tft_lcd_data(1)" LOC = "AH19"; ## 62 on U38 (thru series R110 47.5 ohm) +NET "tft_lcd_data(2)" LOC = "AM17"; ## 61 on U38 (thru series R109 47.5 ohm) +NET "tft_lcd_data(3)" LOC = "AM16"; ## 60 on U38 (thru series R108 47.5 ohm) +NET "tft_lcd_data(4)" LOC = "AD17"; ## 59 on U38 (thru series R107 47.5 ohm) +NET "tft_lcd_data(5)" LOC = "AE17"; ## 58 on U38 (thru series R106 47.5 ohm) +NET "tft_lcd_data(6)" LOC = "AK18"; ## 55 on U38 (thru series R105 47.5 ohm) +NET "tft_lcd_data(7)" LOC = "AK17"; ## 54 on U38 (thru series R104 47.5 ohm) +NET "tft_lcd_data(8)" LOC = "AE18"; ## 53 on U38 (thru series R103 47.5 ohm) +NET "tft_lcd_data(9)" LOC = "AF18"; ## 52 on U38 (thru series R102 47.5 ohm) +NET "tft_lcd_data(10)" LOC = "AL16"; ## 51 on U38 (thru series R101 47.5 ohm) +NET "tft_lcd_data(11)" LOC = "AK16"; ## 50 on U38 (thru series R100 47.5 ohm) +NET "tft_lcd_de" LOC = "AD16"; ## 2 on U38 (thru series R112 47.5 ohm) +#NET "DVI_GPIO1_FMC_C2M_PG_LS" LOC = "K9"; ## 18 on U32 (not wired to U38) +NET "tft_lcd_hsync" LOC = "AN17"; ## 4 on U38 (thru series R113 47.5 ohm) +NET "tft_lcd_reset_b" LOC = "AP17"; ## 2 on U32 (DVI_RESET_B pin 13 on U38) +NET "tft_lcd_vsync" LOC = "AD15"; ## 5 on U38 (thru series R114 47.5 ohm) +NET "tft_lcd_clk_n" LOC = "AC17"; ## 56 on U38 +NET "tft_lcd_clk_p" LOC = "AC18"; ## 57 on U38 + +#NET "SYSACE_CFGTDI" LOC = "AC8"; ## 81 on U19 +NET "sysace_d(0)" LOC = "AM15"; ## 66 on U19 +NET "sysace_d(1)" LOC = "AJ17"; ## 65 on U19 +NET "sysace_d(2)" LOC = "AJ16"; ## 63 on U19 +NET "sysace_d(3)" LOC = "AP16"; ## 62 on U19 +NET "sysace_d(4)" LOC = "AG16"; ## 61 on U19 +NET "sysace_d(5)" LOC = "AH15"; ## 60 on U19 +NET "sysace_d(6)" LOC = "AF16"; ## 59 on U19 +NET "sysace_d(7)" LOC = "AN15"; ## 58 on U19 +NET "sysace_mpa(0)" LOC = "AC15"; ## 70 on U19 +NET "sysace_mpa(1)" LOC = "AP15"; ## 69 on U19 +NET "sysace_mpa(2)" LOC = "AG17"; ## 68 on U19 +NET "sysace_mpa(3)" LOC = "AH17"; ## 67 on U19 +NET "sysace_mpa(4)" LOC = "AG15"; ## 45 on U19 +NET "sysace_mpa(5)" LOC = "AF15"; ## 44 on U19 +NET "sysace_mpa(6)" LOC = "AK14"; ## 43 on U19 +#NET "SYSACE_MPBRDY" LOC = "AJ15"; ## 39 on U19 +NET "sysace_mpce" LOC = "AJ14"; ## 42 on U19 +NET "sysace_mpirq" LOC = "L9"; ## 41 on U19 +NET "sysace_mpoe" LOC = "AL15"; ## 77 on U19 +NET "sysace_mpwe" LOC = "AL14"; ## 76 on U19 +NET "clk_33" LOC = "AE16"; ## 93 on U19 +NET "clk_33" PERIOD = 30.000 ; +OFFSET = IN : 20.000 : BEFORE clk_33 ; +OFFSET = OUT : 20.000 : AFTER clk_33 ; + + +NET "clkm" TNM_NET = "clkm"; +NET "clk_ddr" TNM_NET = "clk_ddr"; + +TIMESPEC "TS_clkm_clk_ddr" = FROM "clkm" TO "clk_ddr" TIG; +TIMESPEC "TS_clk_ddr_clkm" = FROM "clk_ddr" TO "clkm" TIG; + +NET "erx_clk" PERIOD = 8.000 ; +OFFSET = IN : 5.000 : BEFORE erx_clk ; +#OFFSET = IN : 2.000 : BEFORE erx_clk ; + +NET "etx_clk" PERIOD = 40.000 ; +OFFSET = OUT : 15.000 : AFTER etx_clk ; +OFFSET = IN : 8.000 : BEFORE etx_clk ; + +NET "etx_clk" MAXSKEW= 1.0 ns; +NET "erx_clk" MAXSKEW= 1.0 ns; + +#NET "egtx_clk" PERIOD = 8.000 ; +#OFFSET = OUT : 5.500 : AFTER egtx_clk; +#NET "egtx_clk" CLOCK_DEDICATED_ROUTE = FALSE; + +NET "gmiiclk_p" LOC = "H6"; +NET "gmiiclk_n" LOC = "H5"; +NET "gmiiclk_p" PERIOD = 8.000 ; +OFFSET = OUT : 12.000 : AFTER gmiiclk_p; + +//////////////////////////////////////////////////////////////////////////// +// VGA clock +//////////////////////////////////////////////////////////////////////////// +#NET "clkvga" TNM_NET = "clkvga" | PERIOD = 15.385; +#TIMESPEC "TSPLB_TFT25" = FROM "clkm" TO "clkvga" TIG; +#TIMESPEC "TSPLB_TFT40" = FROM "clkvga" TO "clkm" TIG; + diff --git a/designs/leon3-xilinx-ml605/mig.xco b/designs/leon3-xilinx-ml605/mig.xco index dc093522..1727e7a6 100644 --- a/designs/leon3-xilinx-ml605/mig.xco +++ b/designs/leon3-xilinx-ml605/mig.xco @@ -1,42 +1,42 @@ -############################################################## -# -# Xilinx Core Generator version 13.1 -# Date: Sat Feb 19 19:51:50 2011 -# -############################################################## -# -# This file contains the customisation parameters for a -# Xilinx CORE Generator IP GUI. It is strongly recommended -# that you do not manually alter this file as it may cause -# unexpected and unsupported behavior. -# -############################################################## -# -# BEGIN Project Options -SET addpads = false -SET asysymbol = true -SET busformat = BusFormatParenNotRipped -SET createndf = false -SET designentry = VHDL -SET device = xc6vlx240t -SET devicefamily = virtex6 -SET flowvendor = Synplicity -SET formalverification = false -SET foundationsym = false -SET implementationfiletype = Ngc -SET package = ff1156 -SET removerpms = false -SET simulationfiles = Behavioral -SET speedgrade = -1 -SET verilogsim = false -SET vhdlsim = true -# END Project Options -# BEGIN Select -SELECT MIG_Virtex6_and_Spartan6 family Xilinx,_Inc. 3.7 -# END Select -# BEGIN Parameters -CSET component_name=mig_37 -CSET xml_input_file=./mig.prj -# END Parameters -GENERATE -# CRC: 362dace +############################################################## +# +# Xilinx Core Generator version 13.1 +# Date: Sat Feb 19 19:51:50 2011 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatParenNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6vlx240t +SET devicefamily = virtex6 +SET flowvendor = Synplicity +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = ff1156 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -1 +SET verilogsim = false +SET vhdlsim = true +# END Project Options +# BEGIN Select +SELECT MIG_Virtex6_and_Spartan6 family Xilinx,_Inc. 3.7 +# END Select +# BEGIN Parameters +CSET component_name=mig_37 +CSET xml_input_file=./mig.prj +# END Parameters +GENERATE +# CRC: 362dace diff --git a/designs/leon3-xilinx-ml605/mig39.cgp b/designs/leon3-xilinx-ml605/mig39.cgp new file mode 100644 index 00000000..6ba986e5 --- /dev/null +++ b/designs/leon3-xilinx-ml605/mig39.cgp @@ -0,0 +1,22 @@ +# Date: Wed Dec 5 12:56:18 2012 + +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatParenNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc6vlx240t +SET devicefamily = virtex6 +SET flowvendor = Synplicity +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = ff1156 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -1 +SET verilogsim = true +SET vhdlsim = false +SET workingdirectory = ./tmp/ + +# CRC: 59c905fa diff --git a/designs/leon3-xilinx-ml605/mig39.prj b/designs/leon3-xilinx-ml605/mig39.prj new file mode 100644 index 00000000..24f482aa --- /dev/null +++ b/designs/leon3-xilinx-ml605/mig39.prj @@ -0,0 +1,194 @@ + + + mig + 1 + 0 + OFF + xc6vlx240t-ff1156/-1 + 3.92 + Differential + TRUE + HIGH + 0 + + DDR3_SDRAM/SODIMMs/MT4JSF6464HY-1G1 + 2500 + 64 + 1 + 1 + FALSE + + 13 + 10 + 3 + 25 + + + + Disabled + 1 + 36 + BANK_ROW_COLUMN + Normal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8 - Fixed + Sequential + 6 + Normal + No + Slow Exit + Enable + RZQ/7 + RZQ/4 + 0 + Disabled + Enabled + Output Buffer Enabled + Full Array + 5 + Enabled + Normal + Dynamic ODT off + NATIVE + + diff --git a/designs/leon3-xilinx-ml605/mig39.xco b/designs/leon3-xilinx-ml605/mig39.xco new file mode 100644 index 00000000..10dff04a --- /dev/null +++ b/designs/leon3-xilinx-ml605/mig39.xco @@ -0,0 +1,49 @@ +############################################################## +# +# Xilinx Core Generator version 14.4 +# Date: Tue Jan 15 12:55:41 2013 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# Generated from component: xilinx.com:ip:mig:3.92 +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatParenNotRipped +SET createndf = false +SET designentry = Verilog +SET device = xc6vlx240t +SET devicefamily = virtex6 +SET flowvendor = Synplicity +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = ff1156 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -1 +SET verilogsim = true +SET vhdlsim = false +# END Project Options +# BEGIN Select +SELECT MIG_Virtex-6_and_Spartan-6 family Xilinx,_Inc. 3.92 +# END Select +# BEGIN Parameters +CSET component_name=mig +CSET xml_input_file=./mig39.prj +# END Parameters +# BEGIN Extra information +MISC pkg_timestamp=2012-10-13T03:35:42Z +# END Extra information +GENERATE +# CRC: 1dbe8904 diff --git a/designs/leon3-xilinx-ml605/mig_infrastructure_patch.txt b/designs/leon3-xilinx-ml605/mig_infrastructure_patch.txt new file mode 100644 index 00000000..986c831a --- /dev/null +++ b/designs/leon3-xilinx-ml605/mig_infrastructure_patch.txt @@ -0,0 +1,109 @@ +--- ./mig/user_design/rtl/ip_top/infrastructure.v 2012-12-18 14:40:25.000000000 +0100 ++++ ./mig_patch/p/a/t/c/h/mig_design/infrastructure.v 2012-12-18 10:03:46.821589702 +0100 +@@ -88,6 +88,7 @@ + parameter DIVCLK_DIVIDE = 1, // write PLL VCO divisor + parameter CLKOUT_DIVIDE = 2, // VCO output divisor for fast + // (memory) clocks ++ parameter CLKOUT_DIVIDE4 = 12, + parameter RST_ACT_LOW = 1 + ) + ( +@@ -101,6 +102,8 @@ + output clk_mem, // 2x logic clock + output clk, // 1x logic clock + output clk_rd_base, // 2x base read clock ++ output clk_amba, ++ output clk_100, + // Reset outputs + output rstdiv0, // Reset CLK and CLKDIV logic (incl I/O), + // Phase Shift Interface +@@ -135,10 +138,14 @@ + localparam CLKOUT0_DIVIDE_F = CLKOUT_DIVIDE; + localparam CLKOUT1_DIVIDE = CLKOUT_DIVIDE * nCK_PER_CLK; + localparam CLKOUT2_DIVIDE = CLKOUT_DIVIDE; ++ localparam CLKOUT3_DIVIDE = CLKOUT_DIVIDE * nCK_PER_CLK * 2; ++ localparam CLKOUT4_DIVIDE = CLKOUT_DIVIDE4; + + localparam CLKOUT0_PERIOD = VCO_PERIOD * CLKOUT0_DIVIDE_F; + localparam CLKOUT1_PERIOD = VCO_PERIOD * CLKOUT1_DIVIDE; + localparam CLKOUT2_PERIOD = VCO_PERIOD * CLKOUT2_DIVIDE; ++ localparam CLKOUT3_PERIOD = VCO_PERIOD * CLKOUT3_DIVIDE; ++ localparam CLKOUT4_PERIOD = VCO_PERIOD * CLKOUT4_DIVIDE; + + //synthesis translate_off + initial begin +@@ -152,9 +159,12 @@ + $display("CLKOUT0_DIVIDE_F = %7d", CLKOUT0_DIVIDE_F); + $display("CLKOUT1_DIVIDE = %7d", CLKOUT1_DIVIDE ); + $display("CLKOUT2_DIVIDE = %7d", CLKOUT2_DIVIDE ); +- $display("CLKOUT0_PERIOD = %7d", CLKOUT0_PERIOD ); ++ $display("CLKOUT3_DIVIDE = %7d", CLKOUT3_DIVIDE ); ++ $display("CLKOUT4_DIVIDE = %7d", CLKOUT4_DIVIDE ); + $display("CLKOUT1_PERIOD = %7d", CLKOUT1_PERIOD ); + $display("CLKOUT2_PERIOD = %7d", CLKOUT2_PERIOD ); ++ $display("CLKOUT3_PERIOD = %7d", CLKOUT3_PERIOD ); ++ $display("CLKOUT4_PERIOD = %7d", CLKOUT4_PERIOD ); + $display("############################################################\n"); + end + //synthesis translate_on +@@ -163,6 +173,8 @@ + wire clk_mem_bufg; + wire clk_mem_pll; + wire clk_pll; ++ wire clk_pll_amba; ++ wire clk_pll_100; + wire clkfbout_pll; + wire pll_lock + /* synthesis syn_maxfan = 10 */; +@@ -225,15 +237,15 @@ + .CLKOUT2_DUTY_CYCLE (0.500), + .CLKOUT2_PHASE (0.000), + .CLKOUT2_USE_FINE_PS ("TRUE"), +- .CLKOUT3_DIVIDE (1), ++ .CLKOUT3_DIVIDE (CLKOUT3_DIVIDE), + .CLKOUT3_DUTY_CYCLE (0.500), + .CLKOUT3_PHASE (0.000), +- .CLKOUT3_USE_FINE_PS ("FALSE"), ++ .CLKOUT3_USE_FINE_PS ("TRUE"), + .CLKOUT4_CASCADE ("FALSE"), +- .CLKOUT4_DIVIDE (1), ++ .CLKOUT4_DIVIDE (CLKOUT4_DIVIDE), + .CLKOUT4_DUTY_CYCLE (0.500), + .CLKOUT4_PHASE (0.000), +- .CLKOUT4_USE_FINE_PS ("FALSE"), ++ .CLKOUT4_USE_FINE_PS ("TRUE"), + .CLKOUT5_DIVIDE (1), + .CLKOUT5_DUTY_CYCLE (0.500), + .CLKOUT5_PHASE (0.000), +@@ -255,9 +267,9 @@ + .CLKOUT1B (), + .CLKOUT2 (clk_rd_base), + .CLKOUT2B (), +- .CLKOUT3 (), ++ .CLKOUT3 (clk_pll_100), + .CLKOUT3B (), +- .CLKOUT4 (), ++ .CLKOUT4 (clk_pll_amba), + .CLKOUT5 (), + .CLKOUT6 (), + .DO (), +@@ -292,6 +304,19 @@ + .I (clk_pll) + ); + ++ BUFG u_bufg_clkamba ++ ( ++ .O (clk_amba), ++ .I (clk_pll_amba) ++ ); ++ ++ BUFG u_bufg_clk100 ++ ( ++ .O (clk_100), ++ .I (clk_pll_100) ++ ); ++ ++ + //*************************************************************************** + // RESET SYNCHRONIZATION DESCRIPTION: + // Various resets are generated to ensure that: diff --git a/designs/leon3-xilinx-ml605/mig_iodelay_ctrl_patch.txt b/designs/leon3-xilinx-ml605/mig_iodelay_ctrl_patch.txt new file mode 100644 index 00000000..09fdc752 --- /dev/null +++ b/designs/leon3-xilinx-ml605/mig_iodelay_ctrl_patch.txt @@ -0,0 +1,18 @@ +--- ./mig/user_design/rtl/ip_top/iodelay_ctrl.v 2012-12-18 14:40:25.000000000 +0100 ++++ ./mig_patch/p/a/t/c/h/mig_design/iodelay_ctrl.v 2012-12-17 07:40:31.662595674 +0100 +@@ -92,6 +92,7 @@ + input clk_ref_n, + input clk_ref, + input sys_rst, ++ output clk_200, // single 200MHz clock for ML605 + output iodelay_ctrl_rdy + ); + +@@ -159,6 +160,7 @@ + .O (clk_ref_bufg), + .I (clk_ref_ibufg) + ); ++ assign clk_200 = clk_ref_bufg; // ML605 single 200MHz clock source + + //***************************************************************** + // IDELAYCTRL reset diff --git a/designs/leon3-xilinx-ml605/mig_patch.txt b/designs/leon3-xilinx-ml605/mig_patch.txt new file mode 100644 index 00000000..cf19852b --- /dev/null +++ b/designs/leon3-xilinx-ml605/mig_patch.txt @@ -0,0 +1,159 @@ +--- ./mig/user_design/rtl/ip_top/mig.v 2012-12-18 14:40:26.000000000 +0100 ++++ ./mig_patch/p/a/t/c/h/mig_design/mig.v 2012-12-18 14:24:36.329423978 +0100 +@@ -74,7 +74,7 @@ + + `timescale 1ps/1ps + +-module mig # ++module mig_37 # + ( + parameter REFCLK_FREQ = 200, + // # = 200 for all design frequencies of +@@ -91,9 +91,10 @@ + // MMCM programming algorithm + parameter CLKFBOUT_MULT_F = 6, + // write PLL VCO multiplier. +- parameter DIVCLK_DIVIDE = 2, ++ parameter DIVCLK_DIVIDE = 1, // ML605 200MHz input clock (VCO = 1200MHz)use "2" for 400MHz SMA, + // write PLL VCO divisor. +- parameter CLKOUT_DIVIDE = 3, ++ parameter CLKOUT_DIVIDE4 = 12, // Leon3 Amba clock control ++ parameter CLKOUT_DIVIDE = 3, //400MHz clock + // VCO output divisor for fast (memory) clocks. + parameter nCK_PER_CLK = 2, + // # of memory CKs per fabric clock. +@@ -136,14 +137,14 @@ + // # of DQS/DQS# bits. + parameter ROW_WIDTH = 13, + // # of memory Row Address bits. +- parameter BURST_MODE = "8", ++ parameter BURST_MODE = "OTF", + // Burst Length (Mode Register 0). + // # = "8", "4", "OTF". + parameter BM_CNT_WIDTH = 2, + // # = ceil(log2(nBANK_MACHS)). + parameter ADDR_CMD_MODE = "1T" , + // # = "2T", "1T". +- parameter ORDERING = "NORM", ++ parameter ORDERING = "STRICT", + // # = "NORM", "STRICT". + parameter WRLVL = "ON", + // # = "ON" - DDR3 SDRAM +@@ -210,8 +211,8 @@ + ) + ( + +- input sys_clk_p, //differential system clocks +- input sys_clk_n, ++// input sys_clk_p, //differential system clocks ++// input sys_clk_n, + input clk_ref_p, //differential iodelayctrl clk + input clk_ref_n, + inout [DQ_WIDTH-1:0] ddr3_dq, +@@ -229,8 +230,8 @@ + inout [DQS_WIDTH-1:0] ddr3_dqs_n, + output [CK_WIDTH-1:0] ddr3_ck_p, + output [CK_WIDTH-1:0] ddr3_ck_n, +- inout sda, +- output scl, ++ //inout sda, ++ //output scl, + input app_wdf_wren, + input [(4*PAYLOAD_WIDTH)-1:0] app_wdf_data, + input [(4*PAYLOAD_WIDTH)/8-1:0] app_wdf_mask, +@@ -241,10 +242,12 @@ + output app_rdy, + output app_wdf_rdy, + output [(4*PAYLOAD_WIDTH)-1:0] app_rd_data, +- output app_rd_data_end, ++ //output app_rd_data_end, + output app_rd_data_valid, +- output ui_clk_sync_rst, +- output ui_clk, ++ output tb_rst, ++ output tb_clk, ++ output clk_ahb, ++ output clk100, + output phy_init_done, + + input sys_rst // System reset +@@ -266,9 +269,9 @@ + wire sys_clk; + wire mmcm_clk; + wire iodelay_ctrl_rdy; +- +- (* KEEP = "TRUE" *) wire sda_i; +- (* KEEP = "TRUE" *) wire scl_i; ++ wire app_rd_data_end; ++// (* KEEP = "TRUE" *) wire sda_i; ++// (* KEEP = "TRUE" *) wire scl_i; + wire rst; + wire clk; + wire clk_mem; +@@ -365,9 +368,9 @@ + + assign app_hi_pri = 1'b0; + +- assign ui_clk = clk; +- assign ui_clk_sync_rst = rst; +- MUXCY scl_inst ++ assign tb_clk = clk; ++ assign tb_rst = rst; ++ /* MUXCY scl_inst + ( + .O (scl), + .CI (scl_i), +@@ -382,8 +385,11 @@ + .DI (1'b0), + .S (1'b1) + ); ++*/ + assign clk_ref = 1'b0; +- assign sys_clk = 1'b0; ++// assign sys_clk = 1'b0; ++// ML605 200MHz clock sourced from BUFG within "idelay_ctrl" module. ++ wire clk_200; + + + iodelay_ctrl # +@@ -399,8 +405,11 @@ + .clk_ref_n (clk_ref_n), + .clk_ref (clk_ref), + .sys_rst (sys_rst), ++ .clk_200 (clk_200), // ML605 200MHz clock from BUFG to MMCM CLKIN1 + .iodelay_ctrl_rdy (iodelay_ctrl_rdy) + ); ++/* ML605 comment out "clk_ibuf" module. MIG default requires 2 inputs clocks. ++ + clk_ibuf # + ( + .INPUT_CLK_TYPE (INPUT_CLK_TYPE) +@@ -412,6 +421,8 @@ + .sys_clk (sys_clk), + .mmcm_clk (mmcm_clk) + ); ++*/ ++ + infrastructure # + ( + .TCQ (TCQ), +@@ -420,6 +431,7 @@ + .MMCM_ADV_BANDWIDTH (MMCM_ADV_BANDWIDTH), + .CLKFBOUT_MULT_F (CLKFBOUT_MULT_F), + .DIVCLK_DIVIDE (DIVCLK_DIVIDE), ++ .CLKOUT_DIVIDE4 (CLKOUT_DIVIDE4), + .CLKOUT_DIVIDE (CLKOUT_DIVIDE), + .RST_ACT_LOW (RST_ACT_LOW) + ) +@@ -428,8 +440,10 @@ + .clk_mem (clk_mem), + .clk (clk), + .clk_rd_base (clk_rd_base), ++ .clk_amba (clk_ahb), ++ .clk_100 (clk100), + .rstdiv0 (rst), +- .mmcm_clk (mmcm_clk), ++ .mmcm_clk (clk_200), // ML605 single input clock 200MHz from "iodelay_ctrl" + .sys_rst (sys_rst), + .iodelay_ctrl_rdy (iodelay_ctrl_rdy), + .PSDONE (pd_PSDONE), diff --git a/designs/leon3-xilinx-ml605/mig_ucf_patch.txt b/designs/leon3-xilinx-ml605/mig_ucf_patch.txt new file mode 100644 index 00000000..a5a8bc32 --- /dev/null +++ b/designs/leon3-xilinx-ml605/mig_ucf_patch.txt @@ -0,0 +1,204 @@ +--- ./mig/user_design/par/mig.ucf 2012-12-18 14:40:26.000000000 +0100 ++++ ./mig_patch/p/a/t/c/h/mig_design/mig.ucf 2012-12-18 12:01:45.861514738 +0100 +@@ -20,16 +20,16 @@ + # Timing constraints # + ############################################################################ + +-NET "sys_clk_p" TNM_NET = TNM_sys_clk; +-TIMESPEC "TS_sys_clk" = PERIOD "TNM_sys_clk" 2.5 ns; ++#NET "sys_clk_p" TNM_NET = TNM_sys_clk; ++#TIMESPEC "TS_sys_clk" = PERIOD "TNM_sys_clk" 2.5 ns; + +-NET "clk_ref_p" TNM_NET = TNM_clk_ref; +-TIMESPEC "TS_clk_ref" = PERIOD "TNM_clk_ref" 5 ns ; ++#NET "clk_ref_p" TNM_NET = TNM_clk_ref; ++#TIMESPEC "TS_clk_ref" = PERIOD "TNM_clk_ref" 5 ns ; + + # Constrain BUFR clocks used to synchronize data from IOB to fabric logic + # Note that ISE cannot infer this from other PERIOD constraints because + # of the use of OSERDES blocks in the BUFR clock generation path +-NET "u_memc_ui_top/u_mem_intfc/phy_top0/clk_rsync[?]" TNM_NET = TNM_clk_rsync; ++NET "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/clk_rsync[?]" TNM_NET = TNM_clk_rsync; + TIMESPEC "TS_clk_rsync" = PERIOD "TNM_clk_rsync" 5 ns; + + # Paths between DQ/DQS ISERDES.Q outputs and CLB flops clocked by falling +@@ -44,13 +44,13 @@ + TIMEGRP "TG_clk_rsync_rise" = RISING "TNM_clk_rsync"; + TIMEGRP "TG_clk_rsync_fall" = FALLING "TNM_clk_rsync"; + TIMESPEC "TS_clk_rsync_rise_to_fall" = +- FROM "TG_clk_rsync_rise" TO "TG_clk_rsync_fall" "TS_sys_clk" * 2; ++ FROM "TG_clk_rsync_rise" TO "TG_clk_rsync_fall" "TS_clk_ref" * 1; + + # Signal to select between controller and physical layer signals. Four divided by two clock + # cycles (4 memory clock cycles) are provided by design for the signal to settle down. + # Used only by the phy modules. +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_init/u_ff_phy_init_data_sel" TNM = "TNM_PHY_INIT_SEL"; +-TIMESPEC "TS_MC_PHY_INIT_SEL" = FROM "TNM_PHY_INIT_SEL" TO FFS = "TS_sys_clk"*4; ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_init/u_ff_phy_init_data_sel" TNM = "TNM_PHY_INIT_SEL"; ++TIMESPEC "TS_MC_PHY_INIT_SEL" = FROM "TNM_PHY_INIT_SEL" TO FFS = "TS_clk_ref"*2; + ############################################################################ + ######################################################################## + # Controller 0 +@@ -77,14 +77,14 @@ + NET "ddr3_odt[*]" IOSTANDARD = SSTL15; + NET "ddr3_cs_n[*]" IOSTANDARD = SSTL15; + NET "ddr3_dm[*]" IOSTANDARD = SSTL15; +-NET "sys_clk_p" IOSTANDARD = LVDS_25; +-NET "sys_clk_n" IOSTANDARD = LVDS_25; ++#NET "sys_clk_p" IOSTANDARD = LVDS_25; ++#NET "sys_clk_n" IOSTANDARD = LVDS_25; + NET "clk_ref_p" IOSTANDARD = LVDS_25; + NET "clk_ref_n" IOSTANDARD = LVDS_25; +-NET "sda" IOSTANDARD = LVCMOS25; +-NET "scl" IOSTANDARD = LVCMOS25; +-NET "sys_rst" IOSTANDARD = LVCMOS25; +-NET "phy_init_done" IOSTANDARD = LVCMOS25; ++#NET "sda" IOSTANDARD = LVCMOS25; ++#NET "scl" IOSTANDARD = LVCMOS25; ++#NET "sys_rst" IOSTANDARD = LVCMOS25; ++#NET "phy_init_done" IOSTANDARD = LVCMOS25; + NET "ddr3_dqs_p[*]" IOSTANDARD = DIFF_SSTL15_T_DCI; + NET "ddr3_dqs_n[*]" IOSTANDARD = DIFF_SSTL15_T_DCI; + NET "ddr3_ck_p[*]" IOSTANDARD = DIFF_SSTL15; +@@ -93,14 +93,15 @@ + ################################################################################ + ##SAVE attributes to reserve the pins + ################################################################################ +-NET "sda" S; +-NET "scl" S; ++#NET "sda" S; ++#NET "scl" S; + + ############################################################################### + #DCI_CASCADING + #Syntax : CONFIG DCI_CASCADE = " .."; + ############################################################################### +-CONFIG DCI_CASCADE = "25 26"; ++CONFIG DCI_CASCADE = "26 25"; ++CONFIG DCI_CASCADE = "36 35"; + + + ################################################################################## +@@ -201,14 +202,14 @@ + NET "ddr3_dm[5]" LOC = "A26" ; #Bank 25 + NET "ddr3_dm[6]" LOC = "A29" ; #Bank 25 + NET "ddr3_dm[7]" LOC = "A31" ; #Bank 25 +-NET "sys_clk_p" LOC = "A10" ; #Bank 34 +-NET "sys_clk_n" LOC = "B10" ; #Bank 34 ++#NET "sys_clk_p" LOC = "A10" ; #Bank 34 ++#NET "sys_clk_n" LOC = "B10" ; #Bank 34 + NET "clk_ref_p" LOC = "J9" ; #Bank 34 + NET "clk_ref_n" LOC = "H9" ; #Bank 34 +-NET "sda" LOC = "AA33" ; #Bank 13 +-NET "scl" LOC = "AA34" ; #Bank 13 +-NET "sys_rst" LOC = "H10" ; #Bank 35 +-NET "phy_init_done" LOC = "AE23" ; #Bank 24 ++#NET "sda" LOC = "AA33" ; #Bank 13 ++#NET "scl" LOC = "AA34" ; #Bank 13 ++#NET "sys_rst" LOC = "H10" ; #Bank 35 ++#NET "phy_init_done" LOC = "AE23" ; #Bank 24 + NET "ddr3_dqs_p[0]" LOC = "D12" ; #Bank 35 + NET "ddr3_dqs_n[0]" LOC = "E12" ; #Bank 35 + NET "ddr3_dqs_p[1]" LOC = "H12" ; #Bank 35 +@@ -251,21 +252,21 @@ + ###################################################################################### + + ##Site: C29 -- Bank 25 +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_loop_col1.u_oserdes_rsync" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_loop_col1.u_oserdes_rsync" + LOC = "OLOGIC_X1Y139"; +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_loop_col1.u_odelay_rsync" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_loop_col1.u_odelay_rsync" + LOC = "IODELAY_X1Y139"; + +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_loop_col1.u_bufr_rsync" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_loop_col1.u_bufr_rsync" + LOC = "BUFR_X1Y6"; + + ##Site: M12 -- Bank 35 +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_loop_col0.u_oserdes_rsync" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_loop_col0.u_oserdes_rsync" + LOC = "OLOGIC_X2Y139"; +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_loop_col0.u_odelay_rsync" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_loop_col0.u_odelay_rsync" + LOC = "IODELAY_X2Y139"; + +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_loop_col0.u_bufr_rsync" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_loop_col0.u_bufr_rsync" + LOC = "BUFR_X2Y6"; + + ################################################################################################## +@@ -282,51 +283,51 @@ + ###################################################################################### + + ##Site: C13 -- Bank 35 +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[0].u_oserdes_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[0].u_oserdes_cpt" + LOC = "OLOGIC_X2Y137"; +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[0].u_odelay_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[0].u_odelay_cpt" + LOC = "IODELAY_X2Y137"; + + ##Site: L13 -- Bank 35 +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[1].u_oserdes_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[1].u_oserdes_cpt" + LOC = "OLOGIC_X2Y141"; +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[1].u_odelay_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[1].u_odelay_cpt" + LOC = "IODELAY_X2Y141"; + + ##Site: K14 -- Bank 35 +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[2].u_oserdes_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[2].u_oserdes_cpt" + LOC = "OLOGIC_X2Y143"; +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[2].u_odelay_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[2].u_odelay_cpt" + LOC = "IODELAY_X2Y143"; + + ##Site: F21 -- Bank 26 +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[3].u_oserdes_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[3].u_oserdes_cpt" + LOC = "OLOGIC_X1Y179"; +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[3].u_odelay_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[3].u_odelay_cpt" + LOC = "IODELAY_X1Y179"; + + ##Site: B20 -- Bank 26 +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[4].u_oserdes_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[4].u_oserdes_cpt" + LOC = "OLOGIC_X1Y181"; +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[4].u_odelay_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[4].u_odelay_cpt" + LOC = "IODELAY_X1Y181"; + + ##Site: F25 -- Bank 25 +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[5].u_oserdes_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[5].u_oserdes_cpt" + LOC = "OLOGIC_X1Y137"; +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[5].u_odelay_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[5].u_odelay_cpt" + LOC = "IODELAY_X1Y137"; + + ##Site: C28 -- Bank 25 +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[6].u_oserdes_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[6].u_oserdes_cpt" + LOC = "OLOGIC_X1Y141"; +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[6].u_odelay_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[6].u_odelay_cpt" + LOC = "IODELAY_X1Y141"; + + ##Site: D24 -- Bank 25 +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[7].u_oserdes_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[7].u_oserdes_cpt" + LOC = "OLOGIC_X1Y143"; +-INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[7].u_odelay_cpt" ++INST "ddr3ctrl/u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/*gen_ck_cpt[7].u_odelay_cpt" + LOC = "IODELAY_X1Y143"; + + +@@ -334,4 +335,4 @@ + ## MMCM_ADV CONSTRAINTS ## + ###################################################################################### + +-INST "u_infrastructure/u_mmcm_adv" LOC = "MMCM_ADV_X0Y8"; #Banks 16, 26, 36 ++INST "ddr3ctrl/u_infrastructure/u_mmcm_adv" LOC = "MMCM_ADV_X0Y8"; #Banks 16, 26, 36 diff --git a/designs/leon3-xilinx-ml605/preload_ddr3_dimm.do b/designs/leon3-xilinx-ml605/preload_ddr3_dimm.do new file mode 100644 index 00000000..66e20fde --- /dev/null +++ b/designs/leon3-xilinx-ml605/preload_ddr3_dimm.do @@ -0,0 +1,40 @@ +# Procedure to load memory from file +proc reload_mem {} { + # Load memory with system test and display memory + if {[examine /testbench/led(3)] == 1} { + #if {[examine sim:/config@work/CFG_MIG_SERIES7] == 1} { + echo "Loading DDR3 memory with System Test" + #if {[examine /testbench/USE_MIG_INTERFACE_MODEL] == FALSE} { + mem load -startaddress 0 -format hex -infile sdram_dimm_merge3.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem(0)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm_merge4.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem(1)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm_merge1.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem(2)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm_merge2.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem(3)/u1/memory + + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem(0)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem(1)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem(2)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem(3)/u1/address + + change sim:/testbench/gen_mem(0)/u1/memory_used 11111111111111111111111111111111 + change sim:/testbench/gen_mem(1)/u1/memory_used 11111111111111111111111111111111 + change sim:/testbench/gen_mem(2)/u1/memory_used 11111111111111111111111111111111 + change sim:/testbench/gen_mem(3)/u1/memory_used 11111111111111111111111111111111 + #} + + #if {[examine /testbench/USE_MIG_INTERFACE_MODEL] == TRUE} { + # echo "MIG Model found" + # mem load -startaddress 0 -format hex -infile sdram_dimm_merge.hex -filltype value -filldata 1'b0 sim:/testbench/cpu/mig_gen/ddrc/gen_mig_model/MCB_model_inst/Mem + #} + + #do wave.do + #} + } +} + +set init_path /testbench/led(3); + +when -label when1 "$init_path'event and $init_path ='1'" { + reload_mem +} + +#run 2 ms diff --git a/designs/leon3-xilinx-ml605/prom.S b/designs/leon3-xilinx-ml605/prom.S deleted file mode 100644 index f48df0d9..00000000 --- a/designs/leon3-xilinx-ml605/prom.S +++ /dev/null @@ -1,244 +0,0 @@ - -/* Template boot-code for LEON3 test benches */ - -#include "prom.h" - -#ifndef STACKSIZE -#define STACKSIZE 0x00020000 -#endif - - - .seg "text" - .proc 0 - .align 4 - .global start -start: - - flush - set 0x10e0, %g1 ! init IU - mov %g1, %psr - mov %g0, %wim - mov %g0, %tbr - mov %g0, %y - mov %g0, %asr16 - nop - set 0x81000f, %g1 - sta %g1, [%g0] 2 - mov %g0, %g2 - nop - nop - nop - nop - nop - or %g2, %g2, %g0 - nop - nop - nop - nop - nop -#ifdef DSUADDR - set DSUADDR, %g2 - st %g0, [%g2] - st %g0, [%g2+0x08] - st %g0, [%g2+0x20] - st %g0, [%g2+0x24] - st %g0, [%g2+0x40] - st %g0, [%g2+0x44] - st %g0, [%g2+0x50] - st %g0, [%g2+0x54] - st %g0, [%g2+0x58] - st %g0, [%g2+0x5C] - st %g0, [%g2+0x54] -#endif - -2: - mov %asr17, %g3 - and %g3, 0x1f, %g3 - mov %g0, %g4 - mov %g0, %g5 - mov %g0, %g6 - mov %g0, %g7 -1: - mov %g0, %l0 - mov %g0, %l1 - mov %g0, %l2 - mov %g0, %l3 - mov %g0, %l4 - mov %g0, %l5 - mov %g0, %l6 - mov %g0, %l7 - mov %g0, %o0 - mov %g0, %o1 - mov %g0, %o2 - mov %g0, %o3 - mov %g0, %o4 - mov %g0, %o5 - mov %g0, %o6 - mov %g0, %o7 - subcc %g3, 1, %g3 - bge 1b - save - - mov 2, %g1 - mov %g1, %wim - set 0x10e0, %g1 ! enable traps - mov %g1, %psr - nop; nop; nop; - - mov %psr, %g1 - srl %g1, 12, %g1 - andcc %g1, 1, %g0 - be 1f - nop - - set _fsrxx, %g3 - ld [%g3], %fsr - ldd [%g3], %f0 - ldd [%g3], %f2 - ldd [%g3], %f4 - ldd [%g3], %f6 - ldd [%g3], %f8 - ldd [%g3], %f10 - ldd [%g3], %f12 - ldd [%g3], %f14 - ldd [%g3], %f16 - ldd [%g3], %f18 - ldd [%g3], %f20 - ldd [%g3], %f22 - ldd [%g3], %f24 - ldd [%g3], %f26 - ldd [%g3], %f28 - ldd [%g3], %f30 - nop - nop - nop - nop - nop - faddd %f0, %f2, %f4 - nop - nop - nop - nop - ba 1f - nop - - -.align 8 -_fsrxx: - .word 0 - .word 0 - -1: - mov %asr17, %g3 - srl %g3, 28, %g3 - andcc %g3, 0x0f, %g3 - bne 1f - - set L2MCTRLIO, %g1 - set MCFG1, %g2 - st %g2, [%g1] - set MCFG2, %g2 - st %g2, [%g1+4] - set MCFG3, %g2 - st %g2, [%g1+8] -! set IRQCTRL, %g1 -! set 0x0ffff, %g2 -! st %g2, [%g1+0x10] - - ! %g3 = cpu index -1: set STACKSIZE, %g2 - mov %g0, %g1 -2: subcc %g3, 0, %g0 - be 3f - nop - add %g1, %g2, %g1 - ba 2b - sub %g3, 1, %g3 - - -3: set RAMSTART+ RAMSIZE-32, %fp - sub %fp, %g1, %fp - sub %fp, 96, %sp - - set RAMSTART, %g1 -! st %g1, [%g1] - -! SVGA - set 0x80000600, %g3 - st %g1, [%g3 + 0x14] - set (1023 << 16) | 767, %g2 - st %g2, [%g3 + 0x04] - set 0x000A000A, %g2 - st %g2, [%g3 + 0x08] - st %g2, [%g3 + 0x0C] - set (1043 << 16) | 787, %g2 - st %g2, [%g3 + 0x04] - set 0x21, %g2 - st %g2, [%g3 + 0x00] - - -! DDR3 test - set 64, %g2 -4: - subcc %g2, 1, %g2 - bge,a 4b - stb %g2, [%g1+%g2] - - set 64, %g2 -5: - subcc %g2, 1, %g2 - bge,a 5b - ldub [%g1+%g2], %g3 - - add %g1, 64, %g1 - set 64, %g2 -4: - subcc %g2, 2, %g2 - bge,a 4b - sth %g2, [%g1+%g2] - - set 64, %g2 -5: - subcc %g2, 2, %g2 - bge,a 5b - lduh [%g1+%g2], %g3 - - add %g1, 64, %g1 - set 64, %g2 -4: - subcc %g2, 4, %g2 - bge,a 4b - st %g2, [%g1+%g2] - - set 64, %g2 -5: - subcc %g2, 4, %g2 - bge,a 5b - ld [%g1+%g2], %g3 - - add %g1, 64, %g1 - set 64, %g2 -4: - subcc %g2, 8, %g2 - bge,a 4b - std %g2, [%g1+%g2] - - set 64, %g2 -5: - subcc %g2, 8, %g2 - bge,a 5b - ldd [%g1+%g2], %g4 - - ba 3b - nop - - ld [%g1], %g2 - ldd [%g1], %g2 - ldd [%g1+0x10], %g2 - add %g1, 0x20, %g1 - ba 4b - nop - jmp %g1 - nop - -.align 32 diff --git a/designs/leon3-xilinx-ml605/prom.srec b/designs/leon3-xilinx-ml605/prom.srec index 5b94cf74..3250e7e1 100755 --- a/designs/leon3-xilinx-ml605/prom.srec +++ b/designs/leon3-xilinx-ml605/prom.srec @@ -23,27 +23,15 @@ S1130140FD18C000010000000100000001000000D3 S1130150010000000100000089A008420100000025 S113016001000000010000000100000010800005F3 S11301700100000001000000000000000000000079 -S1130180874440008730E01C8688E00F1280000A14 +S1130180874440008730E01C8688E00F1280001608 S11301900320000005040E008410A133C420400095 S11301A00539AE038410A250C4206004050003FC8A -S11301B0C4206008050000808210000080A0E000D8 -S11301C002800005010000008200400210BFFFFC15 -S11301D08620E0013D1003FFBC17A3E0BC2780018B -S11301E09C27A06003100000072000018610E20095 -S11301F0C220E0140500FFC08410A2FFC420E00464 -S1130200050002808410A00AC420E008C420E00C89 -S1130210050104C08410A313C420E0048410202129 -S1130220C420E0008410204084A0A00136BFFFFF5A -S1130230C42840028410204084A0A00136BFFFFFE0 -S1130240C6084002820060408410204084A0A002BE -S113025036BFFFFFC43040028410204084A0A002B7 -S113026036BFFFFFC6104002820060408410204069 -S113027084A0A00436BFFFFFC420400284102040A5 -S113028084A0A00436BFFFFFC60040028200604085 -S11302908410204084A0A00836BFFFFFC438400269 -S11302A08410204084A0A00836BFFFFFC818400275 -S11302B010BFFFC901000000C4004000C418400082 -S11302C0C41860108200602010BFFFF3010000001A -S11302D081C0400001000000010000000100000096 -S11302E0000000000000000000000000000000000A +S11301B0C420600882103860C40040008530A00C60 +S11301C0030000048210600980A04002128000062F +S11301D0033FFC0082106100052488208410A3CD15 +S11301E0C4204000050000808210000080A0E000D0 +S11301F002800005010000008200400210BFFFFCE5 +S11302008620E0013D1003FFBC17A3E0BC2780015A +S11302109C27A0600310000081C040000100000082 +S113022000000000000000000000000000000000CA S9030000FC diff --git a/designs/leon3-xilinx-ml605/sdram.srec b/designs/leon3-xilinx-ml605/sdram.srec index 468fc5d7..9eece58d 100755 --- a/designs/leon3-xilinx-ml605/sdram.srec +++ b/designs/leon3-xilinx-ml605/sdram.srec @@ -1,11 +1,11 @@ S00D0000736472616D2E7372656300 -S31540000000881000000910006C81C1207401000000B6 +S31540000000881000000910006C81C122980100000090 S31540000010A1480000A75000001080203EAC102001EF S3154000002091D0200001000000010000000100000006 S3154000003091D02000010000000100000001000000F6 -S31540000040A14800002910006B81C523AC01000000C7 -S31540000050A14800002910006981C522D00100000096 -S31540000060A14800002910006981C5233C0100000019 +S31540000040A14800002910006C81C521EC0100000088 +S31540000050A14800002910006981C522A401000000C2 +S31540000060A14800002910006981C523100100000045 S3154000007091D02000010000000100000001000000B6 S3154000008091D02000010000000100000001000000A6 S31540000090A1480000A75000001080201EAC10200987 @@ -16,21 +16,21 @@ S315400000D091D0200001000000010000000100000056 S315400000E091D0200001000000010000000100000046 S315400000F091D0200001000000010000000100000036 S3154000010091D0200001000000010000000100000025 -S31540000110AE102001A148000010806A35A7500000AB -S31540000120AE102002A148000010806A31A75000009E -S31540000130AE102003A148000010806A2DA750000091 -S31540000140AE102004A148000010806A29A750000084 -S31540000150AE102005A148000010806A25A750000077 -S31540000160AE102006A148000010806A21A75000006A -S31540000170AE102007A148000010806A1DA75000005D -S31540000180AE102008A148000010806A19A750000050 -S31540000190AE102009A148000010806A15A750000043 -S315400001A0AE10200AA148000010806A11A750000036 -S315400001B0AE10200BA148000010806A0DA750000029 -S315400001C0AE10200CA148000010806A09A75000001C -S315400001D0AE10200DA148000010806A05A75000000F -S315400001E0AE10200EA148000010806A01A750000002 -S315400001F0AE10200FA1480000108069FDA7500000F6 +S31540000110AE102001A148000010806A2AA7500000B6 +S31540000120AE102002A148000010806A26A7500000A9 +S31540000130AE102003A148000010806A22A75000009C +S31540000140AE102004A148000010806A1EA75000008F +S31540000150AE102005A148000010806A1AA750000082 +S31540000160AE102006A148000010806A16A750000075 +S31540000170AE102007A148000010806A12A750000068 +S31540000180AE102008A148000010806A0EA75000005B +S31540000190AE102009A148000010806A0AA75000004E +S315400001A0AE10200AA148000010806A06A750000041 +S315400001B0AE10200BA148000010806A02A750000034 +S315400001C0AE10200CA1480000108069FEA750000028 +S315400001D0AE10200DA1480000108069FAA75000001B +S315400001E0AE10200EA1480000108069F6A75000000E +S315400001F0AE10200FA1480000108069F2A750000001 S3154000020091D0200001000000010000000100000024 S3154000021091D0200001000000010000000100000014 S3154000022091D0200001000000010000000100000004 @@ -129,10 +129,10 @@ S315400007E091D020000100000001000000010000003F S315400007F091D020000100000001000000010000002F S3154000080091D020000100000001000000010000001E S3154000081091D020000100000001000000010000000E -S31540000820A14800002910006A81C52110010000007E -S31540000830A1480000108067DBA750000001000000BF +S31540000820A14800002910006A81C520E401000000AB +S31540000830A1480000108067D0A750000001000000CA S3154000084091D02000010000000100000001000000DE -S31540000850A14800002910006A81C520F4010000006B +S31540000850A14800002910006A81C520C80100000097 S3154000086091D02000010000000100000001000000BE S3154000087091D02000010000000100000001000000AE S3154000088091D020000100000001000000010000009E @@ -255,250 +255,250 @@ S31540000FC091D0200001000000010000000100000057 S31540000FD091D0200001000000010000000100000047 S31540000FE091D0200001000000010000000100000037 S31540000FF091D0200001000000010000000100000027 -S315400010009DE3BFC0051001438410A0600710014452 -S315400010108610E188821000008620C00286A0E00883 -S3154000102036BFFFFFC038800311100144901221885B -S31540001030C02200004000666801000000400066686B -S31540001040010000004000681A010000001110006D08 -S31540001050901221B040006168010000004000694ED6 -S3154000106001000000400000430100000040006745C9 -S315400010700100000081C7E00881E800009DE3BF98B9 -S3154000108023100143C20C606080A0600012800015EE -S315400010902110008010800005C204200C9FC3400030 -S315400010A0C224200CC204200CDA00400080A3600059 -S315400010B012BFFFFB82006004030000008210600044 -S315400010C080A0600002800006821020011110006D91 -S315400010D06FFFFBCC9012214082102001C22C606031 -S315400010E081C7E00881E800009DE3BF9881C7E0081A -S315400010F081E800009DE3BF98030000008210600075 -S315400011001110006D1310014380A060009012214021 -S3154000111002800004921260646FFFFBBA0100000077 -S315400011201B100144C203618880A060000280000950 -S31540001130B0136188030000008210600080A0600048 -S3154000114002800004010000006FFFFBAE81E8000052 -S315400011500100000081C7E00881E800009DE3BF98D8 -S3154000116081C7E00881E8000081C3E0080100000073 -S315400011709DE3BF9840000007010000004000014683 -S31540001180010000004000000E81E800000100000060 -S315400011909DE3BF98400000290100000080A2200086 -S315400011A01280000503100080D80060109A102001BC -S315400011B0DA23201081C7E00891E820000310008060 -S315400011C0D80060109A102001DA23201481C3E00869 -S315400011D09010200003100080DA006010D0234000F9 -S315400011E081C3E0089010200003100080DA006010F0 -S315400011F0D023600881C3E0089010200003100080CF -S31540001200DA006010D023600481C3E008901020000B -S3154000121013100080921260149010200081C3E008E1 -S31540001220D0EA4020901020001310008092126014E3 -S3154000123081C3E008D0224000914440009132201CF6 -S3154000124081C3E008900A200F81C3E008D0820020C5 -S315400012509010200C81C3E008D08200408210000824 -S3154000126080A20009148000039022000990224001C8 -S3154000127081C3E00801000000932A60028210200129 -S31540001280C22200099810200080A3000A1680000A96 -S3154000129096102001832B2002DA02000180A0000D67 -S315400012A0826020009803200180A3000A06BFFFFA4F -S315400012B0960AC00180A2E00002BFFFF49810200009 -S315400012C081C3E008010000009DE3BF98C2062010DC -S315400012D08330601CA0100018A400600180A4A00107 -S315400012E00280006CB0103FFF7FFFFFD4010000007A -S315400012F0AA100008912A20047FFFFFBC9002200715 -S315400013007FFFFFD40100000003020000808A000135 -S315400013100280005C010000009A05600182102001F5 -S315400013208328400D11100080C2242010901220A066 -S31540001330921000157FFFFFD1941000120310008019 -S3154000134082106018A12D6002C0204010DA004010C3 -S31540001350A610000180A36009291001431480002BC8 -S31540001360AC1000017FFFFFAB0100000080A220000F -S3154000137012BFFFFD01000000B010200080A6001241 -S31540001380168000140100000010800005A21000160F -S3154000139080A600121680000F01000000832E200256 -S315400013A0D0044010D20440017FFFFFADB0062001BB -S315400013B080A2200104BFFFF7901020027FFFFF901C -S315400013C00100000080A6001206BFFFF6832E200211 -S315400013D0C205207C82006001C225207C7FFFFF92EF -S315400013E001000000C204C01082006001C224C01087 -S315400013F0DA04C01080A3600904BFFFDB111000802F -S31540001400108000049012205C111000809012205C25 -S31540001410921000157FFFFF9994100012832CA002B2 -S3154000142082004012A0004001DA05207C80A4000D15 -S3154000143002800004231001437FFFFF7190102003B8 -S31540001440C204607C80A060000480000601000000A9 -S31540001450C204607C80A400011680000580A560005F -S315400014607FFFFF679010200380A56000228000095F -S31540001470B010200091D0200010800006B01020004F -S315400014807FFFFF5F9010200110BFFFA59A05600106 -S3154000149081C7E00881E800009DE3BF98C20620109E -S315400014A0A01000188330601C80A0600002800009F4 -S315400014B0B0103FFF7FFFFF610100000080A22000C7 -S315400014C0128000040300003F821063FFC2242010F4 -S315400014D081C7E00881E800009DE3BF98C20620105E -S315400014E08330601CA400600180A4A00102800068D3 -S315400014F0B0103FFF7FFFFF5101000000AA10000817 -S31540001500912A20047FFFFF39900220077FFFFF5179 -S315400015100100000003020000808A0001028000589A -S315400015200100000011100080901220A092100015BA -S315400015307FFFFF5294100012031000808210601843 -S31540001540A12D6002C0204010DA004010A610000114 -S3154000155080A36009291001431480002BAC100001C0 -S315400015607FFFFF2C0100000080A2200012BFFFFD7C -S3154000157001000000B010200080A600121680001462 -S315400015800100000010800005A210001680A600127F -S315400015901680000F01000000832E2002D004401068 -S315400015A0D20440017FFFFF2EB006200180A2200119 -S315400015B004BFFFF7901020027FFFFF1101000000DB -S315400015C080A6001206BFFFF6832E2002C205207CAD -S315400015D082006001C225207C7FFFFF1301000000CE -S315400015E0C204C01082006001C224C010DA04C010D8 -S315400015F080A3600904BFFFDB111000801080000447 -S315400016009012205C111000809012205C9210001500 -S315400016107FFFFF1A94100012832CA0028200401212 -S31540001620A0004001DA05207C80A4000D0280000461 -S31540001630231001437FFFFEF290102003C204607C1A -S3154000164080A060000480000601000000C204607CA7 -S3154000165080A400011680000580A560007FFFFEE89B -S315400016609010200380A5600022800009B010200061 -S3154000167091D0200010800006B01020007FFFFEE0D1 -S315400016809010200110BFFFA91110008081C7E0080B -S3154000169081E800009DE3BF983120000092162200A9 -S315400016A09410200040003E589010200140003B62BC -S315400016B0901622009016230040003EBD921020084E -S315400016C0B016210040003A4F81E8000001000000BA -S315400016D09DE3BF9821200000921422009410200020 -S315400016E040003E499010200140003B539014220098 -S315400016F09210001840003EAE90142300B014210012 -S3154000170040003A4081E8000001000000000000006F -S315400017100000000000000000000000000000000083 -S315400017200000000000000000000000000000000073 -S315400017300000000000000000000000000000000063 -S315400017400000000000000000000000000000000053 -S315400017500000000000000000000000000000000043 -S315400017600000000000000000000000000000000033 -S315400017700000000000000000000000000000000023 -S315400017800000000000000000000000000000000013 -S315400017900000000000000000000000000000000003 -S315400017A000000000000000000000000000000000F3 -S315400017B000000000000000000000000000000000E3 -S315400017C000000000000000000000000000000000D3 -S315400017D000000000000000000000000000000000C3 -S315400017E000000000000000000000000000000000B3 -S315400017F000000000000000000000000000000000A3 -S315400018000000000000000000000000000000000092 -S315400018100000000000000000000000000000000082 -S315400018200000000000000000000000000000000072 -S315400018300000000000000000000000000000000062 -S315400018400000000000000000000000000000000052 -S315400018500000000000000000000000000000000042 -S315400018600000000000000000000000000000000032 -S315400018700000000000000000000000000000000022 -S315400018800000000000000000000000000000000012 -S315400018900000000000000000000000000000000002 -S315400018A000000000000000000000000000000000F2 -S315400018B000000000000000000000000000000000E2 -S315400018C000000000000000000000000000000000D2 -S315400018D000000000000000000000000000000000C2 -S315400018E000000000000000000000000000000000B2 -S315400018F000000000000000000000000000000000A2 -S315400019000000000000000000000000000000000091 -S315400019100000000000000000000000000000000081 -S315400019200000000000000000000000000000000071 -S315400019300000000000000000000000000000000061 -S315400019400000000000000000000000000000000051 -S315400019500000000000000000000000000000000041 -S315400019600000000000000000000000000000000031 -S315400019700000000000000000000000000000000021 -S315400019800000000000000000000000000000000011 -S315400019900000000000000000000000000000000001 -S315400019A000000000000000000000000000000000F1 -S315400019B000000000000000000000000000000000E1 -S315400019C000000000000000000000000000000000D1 -S315400019D000000000000000000000000000000000C1 -S315400019E000000000000000000000000000000000B1 -S315400019F000000000000000000000000000000000A1 -S31540001A000000000000000000000000000000000090 -S31540001A100000000000000000000000000000000080 -S31540001A200000000000000000000000000000000070 -S31540001A300000000000000000000000000000000060 -S31540001A400000000000000000000000000000000050 -S31540001A500000000000000000000000000000000040 -S31540001A600000000000000000000000000000000030 -S31540001A700000000000000000000000000000000020 -S31540001A800000000000000000000000000000000010 -S31540001A900000000000000000000000000000000000 -S31540001AA000000000000000000000000000000000F0 -S31540001AB000000000000000000000000000000000E0 -S31540001AC000000000000000000000000000000000D0 -S31540001AD000000000000000000000000000000000C0 -S31540001AE000000000000000000000000000000000B0 -S31540001AF000000000000000000000000000000000A0 -S31540001B00000000000000000000000000000000008F -S31540001B10000000000000000000000000000000007F -S31540001B20000000000000000000000000000000006F -S31540001B30000000000000000000000000000000005F -S31540001B40000000000000000000000000000000004F -S31540001B50000000000000000000000000000000003F -S31540001B60000000000000000000000000000000002F -S31540001B70000000000000000000000000000000001F -S31540001B80000000000000000000000000000000000F -S31540001B9000000000000000000000000000000000FF -S31540001BA000000000000000000000000000000000EF -S31540001BB000000000000000000000000000000000DF -S31540001BC000000000000000000000000000000000CF -S31540001BD000000000000000000000000000000000BF -S31540001BE000000000000000000000000000000000AF -S31540001BF0000000000000000000000000000000009F -S31540001C00000000000000000000000000000000008E -S31540001C10000000000000000000000000000000007E -S31540001C20000000000000000000000000000000006E -S31540001C30000000000000000000000000000000005E -S31540001C40000000000000000000000000000000004E -S31540001C50000000000000000000000000000000003E -S31540001C60000000000000000000000000000000002E -S31540001C70000000000000000000000000000000001E -S31540001C80000000000000000000000000000000000E -S31540001C9000000000000000000000000000000000FE -S31540001CA000000000000000000000000000000000EE -S31540001CB000000000000000000000000000000000DE -S31540001CC000000000000000000000000000000000CE -S31540001CD000000000000000000000000000000000BE -S31540001CE000000000000000000000000000000000AE -S31540001CF0000000000000000000000000000000009E -S31540001D00000000000000000000000000000000008D -S31540001D10000000000000000000000000000000007D -S31540001D20000000000000000000000000000000006D -S31540001D30000000000000000000000000000000005D -S31540001D40000000000000000000000000000000004D -S31540001D50000000000000000000000000000000003D -S31540001D60000000000000000000000000000000002D -S31540001D70000000000000000000000000000000001D -S31540001D80000000000000000000000000000000000D -S31540001D9000000000000000000000000000000000FD -S31540001DA000000000000000000000000000000000ED -S31540001DB000000000000000000000000000000000DD -S31540001DC000000000000000000000000000000000CD -S31540001DD000000000000000000000000000000000BD -S31540001DE000000000000000000000000000000000AD -S31540001DF0000000000000000000000000000000009D -S31540001E00000000000000000000000000000000008C -S31540001E10000000000000000000000000000000007C -S31540001E20000000000000000000000000000000006C -S31540001E30000000000000000000000000000000005C -S31540001E40000000000000000000000000000000004C -S31540001E50000000000000000000000000000000003C -S31540001E60000000000000000000000000000000002C -S31540001E70000000000000000000000000000000001C -S31540001E80000000000000000000000000000000000C -S31540001E9000000000000000000000000000000000FC -S31540001EA000000000000000000000000000000000EC -S31540001EB000000000000000000000000000000000DC -S31540001EC000000000000000000000000000000000CC -S31540001ED000000000000000000000000000000000BC -S31540001EE000000000000000000000000000000000AC -S31540001EF0000000000000000000000000000000009C -S31540001F00000000000000000000000000000000008B -S31540001F10000000000000000000000000000000007B -S31540001F20000000000000000000000000000000006B -S31540001F30000000000000000000000000000000005B +S315400010009DE3BFC0051001238410A05007100125A1 +S315400010108610E168821000008620C00286A0E008A3 +S3154000102036BFFFFFC038800311100125901221689A +S31540001030C02200004000665D010000004000665D81 +S3154000104001000000400068A301000000111000707C +S31540001050901220BC400061C30100000040006C11AA +S3154000106001000000400002300100000040006730EF +S315400010700100000081C7E00881E800009DE3BFA0B1 +S3154000108021100123C20C205080A060001280002253 +S3154000109023100123C20460542710007025100070ED +S315400010A0A614E024A414A028A4248013A53CA002DE +S315400010B0A404BFFF80A040123A80000E0300000047 +S315400010C0A21460548200600185286002C224400058 +S315400010D0C204C0029FC0400001000000C20440009C +S315400010E080A040120ABFFFF98200600103000000A1 +S315400010F08210600080A060000280000682102001FD +S315400011001110006E6FFFFBBF90122020821020014D +S31540001110C22C205081C7E00881E800009DE3BFA0B3 +S3154000112081C7E00881E800009DE3BFA003000000FE +S315400011308210600080A06000228000081110012506 +S315400011401110006E13100123901220206FFFFBAD8B +S315400011509212605811100125C202216880A06000D9 +S31540001160028000099012216803000000821060008E +S3154000117080A0600002800004010000009FC0400083 +S315400011800100000081C7E00881E800009DE3BFA0A0 +S3154000119081C7E00881E800008292200002800015A5 +S315400011A001000000C400400080A0A0002280001181 +S315400011B092102001C600600880A240032A800008E1 +S315400011C08200600C8800FFFF8401000280A240027A +S315400011D02880000AC20060048200600CC4004000FF +S315400011E080A0A00032BFFFF5C60060089210200123 +S315400011F081C3E00890100009920240019222400308 +S3154000120081C3E008901000099DE3BFA0C2064000DC +S3154000121080A060001280001582007FFFC206600831 +S3154000122080A0600322800014C206600CD2062014FF +S31540001230D006600C4000615394102034C206600C06 +S3154000124082006034C226600CC2066004B0007FFE95 +S3154000125082007FFFB0104018C2266004B136201FBE +S3154000126081C7E00881E80000C226400081C7E00847 +S3154000127091E82000C4062014C6008000C620400025 +S31540001280C600A004C6206004C400A008C4206008AC +S31540001290C206600C8200600CC226600CC206600466 +S315400012A0B0007FFE82007FFFB0104018C226600467 +S315400012B0B136201F81C7E00881E800009DE3BFA04A +S315400012C0C2064000C406A0149B3060188930600CEA +S315400012D088092FFF8608601F833060058208601FDB +S315400012E0DA2EA011C836A012C228A001C628800056 +S315400012F01700003F9612E3F0C2066004C220A02801 +S3154000130082102000C6066008C620A02CC606600CC7 +S31540001310C620A03086064001C600E01080A0E0004E +S315400013209A1020000280000B881020009B30E004B9 +S315400013308808C00B9B2B6014892920109808E00F61 +S315400013409A20000D80A320030280000A8808C0046A +S31540001350860080018200600480A06010DA20E014DC +S3154000136012BFFFEDC820E00481C7E00881E8000015 +S315400013708931200C9A380003881100189B33600489 +S315400013809A0B6FFF9B2B60089A1360FF10BFFFF10B +S315400013909A0360019DE3BEF8F627A050FA27A058AD +S315400013A080A660000280010AA81020102B0003FCD2 +S315400013B0A0102000AA160015A407BFA4A607BFDCEC +S315400013C0A207BF7010800005AC10200180A4001455 +S315400013D01680003437000040932C200594102020BE +S315400013E092024015400060E790100012C207BFA469 +S315400013F080A0600022BFFFF6A0042001C024E010B8 +S31540001400C024C000C024E004C024E008C024E00C8E +S31540001410C0244000C0246004C0246008C024600C7E +S31540001420C0246010C0246014C0246018C024601C0E +S31540001430C0246020C0246024C0246028C024602CBE +S31540001440C0246030E227BFF0EC2FBFEC90100018AC +S31540001450921000127FFFFF9A94100013C20FBFED47 +S3154000146080A0401C32BFFFDAA0042001C217BFEEA5 +S31540001470C407A05880A0400232BFFFD5A004200177 +S31540001480D207A0507FFFFF619010001380A220007A +S3154000149002BFFFCFA004200181C7E00891E82001E8 +S315400014A02D0003FE3B003FFF3300003F9206A04065 +S315400014B0AC160016BA1763FFB21663F0A0102000F0 +S315400014C0A607BFDCA207BF70B616E020AA07BFC4B6 +S315400014D0AE07BFF410800005D227BF6C80A5001070 +S315400014E0048000AE01000000932C200590100012ED +S315400014F092024016400060A394102020C207BFA469 +S3154000150080A0600022BFFFF6A004200182102001C7 +S31540001510C024E010C22FBFECC024C000C024E004A9 +S31540001520C024E008C024E00CC0244000C02460046D +S31540001530C0246008C024600CC0246010C02460141D +S31540001540C0246018C024601CC0246020C0246024CD +S31540001550C0246028C024602CC0246030E227BFF03D +S3154000156090100018921000127FFFFF559410001340 +S31540001570C20FBFED80A7000102800051C217BFEE27 +S31540001580C207BFEC8208401D80A0401B2280005B42 +S31540001590C207BFF0050000408410A00680A04002AC +S315400015A032BFFFCFA0042001C207BFF0C6006004CF +S315400015B088102003030003FC8210C001108000063F +S315400015C08400607880A0400222BFFFC5A0042001AD +S315400015D082006008DA00400080A3600002BFFFFA84 +S315400015E0D8006004920B601F973360189533600CE7 +S315400015F09B3360059A0B601F940AAFFFC025C0005D +S31540001600D22FBFF4DA2FBFF5130003FF9B3320041C +S31540001610921263FF9A0B6FFF9B2B60089A2A400D2C +S315400016209A036001133FFC00DA27BFFCC025400047 +S315400016309A0B0019C02560049B2B6004980B000987 +S31540001640C02560089933200CC025600C980B400CCF +S31540001650EE27BFD898130003C82FBFD4D62FBFD5C7 +S31540001660D437BFD680A7000B12BFFFD7D827BFF805 +S31540001670DA07A05880A3400A12BFFFD480A04002D8 +S31540001680D207A050C227BF60C427BF64C627BF5C2D +S31540001690C827BF687FFFFEDD90100015C207BF60F8 +S315400016A080A22000C407BF64C607BF5C12BFFF7B91 +S315400016B0C807BF6810BFFFC580A04002DA07A05820 +S315400016C080A3400112BFFFB0C207BFECD207A050B3 +S315400016D07FFFFECE9010001380A2200012BFFF6F46 +S315400016E0C207BFEC8208401D80A0401B12BFFFAB63 +S315400016F005000040C207BFF0C408600180A0A000FA +S3154000170022BFFF77A004200180A6A0000280001718 +S31540001710D000602C82102000C406800180A0A0006A +S315400017200280000880A2000222BFFF6DA0042001B3 +S315400017308200600480A0604032BFFFF9C406800189 +S31540001740C607BF6C8210001AC400400080A0A000EB +S3154000175022800014D02040008200600480A0400314 +S3154000176032BFFFFBC4004000D607A050DA07A0589E +S31540001770921000139410001A7FFFFF079810001C68 +S3154000178080A2200012BFFF45A004200180A50010C2 +S3154000179014BFFF57932C200581C7E00891E820002D +S315400017A0D607A05092100013DA07A0589410001ADA +S315400017B07FFFFEF99810001C80A2200012BFFF3761 +S315400017C0A004200110BFFFF380A5001080A6A00052 +S315400017D00280000B8210001A8606A040C40040001A +S315400017E080A0A00022800008F02040008200600413 +S315400017F080A0400332BFFFFBC400400010BFFEEC98 +S31540001800A810204010BFFEEAA81020409DE3BF501C +S315400018109407BFB08210200398100018C022A00879 +S31540001820C022A00CC022A010C022A014C022A01822 +S31540001830C022A01CC022A020C022A024C022A028D2 +S31540001840C022A02CC022A030C022A034C022A03882 +S31540001850C022A03CA0102001F427BFFCC027BFB087 +S31540001860C027BFB4C027BFF09A100019E027BFF4C5 +S31540001870C227BFF8921020009607BFF07FFFFEC632 +S31540001880113FFC00F007BFF4B024001881C7E00800 +S3154000189081E800009DE3BF9090102001A007BFF4AF +S315400018A09210200C7FFFFFDA9410001080A22001D6 +S315400018B00280001A0310012390102001921020117B +S315400018C07FFFFFD39410001080A220010280000DFC +S315400018D00710012494100010901020017FFFFFCCC8 +S315400018E09210200D80A220011280000403100123D3 +S315400018F0C407BFF8C420602C81C7E00881E8000017 +S31540001900C207BFF884006010C220E0A40310012380 +S3154000191010BFFFF1C4206028C407BFF810BFFFE71F +S31540001920C42060349DE3BFA04000002301000000B6 +S3154000193040000174010000004000000381E80000FF +S315400019400100000003100080C200600C84102001DA +S3154000195090102000C420601481C3E00801000000FC +S3154000196003100080C200600C841000089010200014 +S31540001970C420400081C3E00801000000031000803D +S31540001980C200600C8410000890102000C42060083B +S3154000199081C3E0080100000003100080C200600C13 +S315400019A08410000890102000C420600481C3E00821 +S315400019B0010000009DE3BFA04000001401000000AC +S315400019C080A220001280000503100080C200600C37 +S315400019D084102001C420601081C7E00891E82000EF +S315400019E013100080921260109010200081C3E0080E +S315400019F0D0EA402090102000131000809212601010 +S31540001A0081C3E008D0224000914440009132201C1E +S31540001A1081C3E008900A200F81C3E008D0820020ED +S31540001A209010200C81C3E008D08200409DE3BFA007 +S31540001A30C2062010A01000188330601C80A06000F1 +S31540001A4002800009B0103FFF7FFFFFF00100000059 +S31540001A5080A22000128000040300003F821063FF32 +S31540001A60C224201081C7E00881E800009DE3BFA0A2 +S31540001A70E4062010A534A01CA404A00180A4A00163 +S31540001A800280003CB0103FFF7FFFFFE001000000F6 +S31540001A90AA100008912A20047FFFFFB99002200770 +S31540001AA07FFFFFE00100000003020000808A000182 +S31540001AB00280007401000000A72D6002091000801A +S31540001AC0881120148210200184102001C2210013A5 +S31540001AD08210200080A480011480000987286002BB +S31540001AE080A0A000128000258210200084102001D2 +S31540001AF080A4800104BFFFFB87286002C601000363 +S31540001B0080A00003820060018660200010BFFFF2C3 +S31540001B1084088003C205A074852CA003A12CA001D3 +S31540001B20A004000280A4000102800004010000001D +S31540001B307FFFFF9A90102003C205A07480A060002A +S31540001B400480000603100123C200607480A40001D3 +S31540001B501680000580A560007FFFFF90901020034F +S31540001B6080A5600002800003B010200091D02000C4 +S31540001B7081C7E00881E8000023100080A214609C21 +S31540001B802D100123C0244013C204401380A06009D5 +S31540001B901480002709100080A815A0747FFFFF91CC +S31540001BA00100000080A2200012BFFFFD80A4A0001B +S31540001BB00480001301000000A0102000C40440135C +S31540001BC0832C2002C204400180A08001A004200191 +S31540001BD004800003862040028620800180A0E00128 +S31540001BE00480000580A480107FFFFF6C90102002C7 +S31540001BF080A4801014BFFFF201000000C20500005F +S31540001C0082006001C22500007FFFFF7B01000000CB +S31540001C10C204401382006001C2244013C204401330 +S31540001C2080A0600904BFFFDE09100080881120589B +S31540001C308210200184102001C2210013821020004E +S31540001C4080A48001148000098728600280A0A0003B +S31540001C5012BFFFB1821020008410200180A48001B1 +S31540001C6004BFFFFB87286002C601000380A0000373 +S31540001C70820060018660200010BFFFF28408800366 +S31540001C807FFFFF469010200110BFFF8DA72D6002F9 +S31540001C909DE3BFA0E4062010A0100018A534A01CA8 +S31540001CA0A404A00180A4A0010280003FB0103FFF21 +S31540001CB07FFFFF5601000000AA100008912A200469 +S31540001CC07FFFFF2F900220077FFFFF560100000095 +S31540001CD003020000808A00010280007701000000B4 +S31540001CE0A72D60020910008088112014821020015F +S31540001CF08405600185284002C4242010C2210013B7 +S31540001D00841020018210200080A4800114800009E4 +S31540001D108728600280A0A000128000258210200043 +S31540001D208410200180A4800104BFFFFB8728600245 +S31540001D30C601000380A00003820060018660200087 +S31540001D4010BFFFF284088003C205A074852CA0034F +S31540001D50A12CA001A004000280A40001028000047E +S31540001D60010000007FFFFF0D90102003C205A07404 +S31540001D7080A060000480000603100123C200607446 +S31540001D8080A400011680000580A560007FFFFF0348 +S31540001D909010200380A5600002800003B010200050 +S31540001DA091D0200081C7E00881E800002310008020 +S31540001DB0A214609C2D100123C0244013C20440137A +S31540001DC080A060091480002709100080A815A0741F +S31540001DD07FFFFF040100000080A2200012BFFFFD2C +S31540001DE080A4A0000480001301000000A010200081 +S31540001DF0C4044013832C2002C204400180A0800109 +S31540001E00A004200104800003862040028620800131 +S31540001E1080A0E0010480000580A480107FFFFEDFE3 +S31540001E209010200280A4801014BFFFF20100000031 +S31540001E30C205000082006001C22500007FFFFEEE61 +S31540001E4001000000C204401382006001C224401316 +S31540001E50C204401380A0600904BFFFDE0910008061 +S31540001E60881120588210200184102001C2210013BD +S31540001E708210200080A48001148000098728600217 +S31540001E8080A0A00012BFFFB1821020008410200164 +S31540001E9080A4800104BFFFFB87286002C6010003BF +S31540001EA080A00003820060018660200010BFFFF220 +S31540001EB0840880037FFFFEB99010200110BFFF8A7F +S31540001EC0A72D60029DE3BFA02120000094102000B2 +S31540001ED09214220040003C4F9010200140003B07E6 +S31540001EE0901422009210001840003C939014230056 +S31540001EF0B01421004000384381E800000100000092 +S31540001F009DE3BFA0312000009410200092162200CD +S31540001F1040003C409010200140003AF890162200C4 +S31540001F209016230040003C8492102008B0162100F1 +S31540001F304000383481E80000010000000000000045 S31540001F40000000000000000000000000000000004B S31540001F50000000000000000000000000000000003B S31540001F60000000000000000000000000000000002B @@ -2049,7 +2049,7 @@ S31540007FE0000000000000000000000000000000004B S31540007FF0000000000000000000000000000000003B S315400080009DE3BF9081C7E00881E8000003000010AF S31540008010C48000408088800112BFFFFE010000003E -S31540008020EC6FBFF89DE3BF909DE3BF909DE3BF908B +S31540008020C46FBFF89DE3BF909DE3BF909DE3BF90B3 S315400080309DE3BF909DE3BF909DE3BF9021044444E0 S31540008040A014211123088888A2146222250CCCCCC6 S31540008050A414A33327111111A614E044291555552C @@ -2080,7 +2080,7 @@ S315400081D00100000001000000010000000100000055 S315400081E09DE3BF90FC2780009007A0019410001EDD S315400081F0D1E7816AD1E7816A9402A0019002200109 S31540008200D1E7816AD1E7816AD60780009622C01EEF -S31540008210B0A2E00202800004900020017FFFE3F854 +S31540008210B0A2E00202800004900020017FFFE5DF6B S315400082200100000081C7E00881E80000010000006D S3154000823001000000010000000100000001000000F4 S3154000824001000000010000000100000001000000E4 @@ -4095,3251 +4095,4438 @@ S3154000FFC001000000010000000100000001000000E7 S3154000FFD001000000010000000100000001000000D7 S3154000FFE001000000010000000100000001000000C7 S3154000FFF001000000010000000100000001000000B7 -S315400100009DE3BF987FFFC4741100403080A2200059 -S31540010010128000F382102001C226200CC026200443 +S315400100009DE3BFA07FFFC6571100403080A220006C +S31540010010128000AF82102001C226200CC026200487 S31540010020C0260000C026200882102002C2262008D1 S31540010030C0260000C026000082102003C2262008E8 -S315400100409A102083DA262008A2102063C0260000D9 -S31540010050A2847FFF1CBFFFFE01000000A2102063A7 -S31540010060C2060000A2847FFF1CBFFFFE8210200251 -S31540010070C2262008A4062004C28480208088600409 -S3154001008002BFFFFE01000000C0262008C026000076 -S31540010090A6102001C2848020833860148208603F04 -S315400100A080A0600122800093A604E0018210200313 -S315400100B0C2262008C2848020808860010280000711 -S315400100C080886004C2860020C284802080886001C6 -S315400100D012BFFFFD8088600402BFFFFB808860027B -S315400100E002BFFFF901000000C0262008C0262004F7 -S315400100F080A4E0010480000821100080C284802091 -S315400101008208608080A06001028000AE010000008C -S3154001011021100080DA4C20F0DA260000C2848020CB -S315400101208208600480A060010280009A01000000FC -S31540010130C284802080A4E001048000208210200136 -S31540010140A210200180A440131680000D2B100080C0 -S31540010150A81420F0E00560E8901000114000247CCE -S3154001016092100010C24D0008A2046001C226000090 -S3154001017080A4401306BFFFFA90100011C28480206C -S315400101808208608080A06001028000920100000028 -S31540010190C2848020833860148208603F80A0401367 -S315400101A002800004010000007FFFC4159010200664 -S315400101B0C284802082102001C226200CDA8480204D -S315400101C0808B60011280006801000000821020834C -S315400101D0C226200880A4E0010280005201000000EE -S315400101E0C28480208088640002BFFFFE01000000B7 -S315400101F0C284802080886001028000530100000093 -S3154001020080A4E00124800012A2102000C284802034 -S315400102108330601A80A04013028000040100000070 -S315400102207FFFC3F790102009C28480208088610037 -S315400102300280005501000000C2848020808864004D -S315400102400280004D01000000A210200080A440134E -S315400102501680001203100080A81060F02B10008059 -S31540010260E08600209010001140002439D20560E854 -S31540010270C24D0008A204600180A040100280000423 -S315400102809010200C7FFFC3DE0100000080A44013C4 -S3154001029006BFFFF40100000080A4E0010480000FC6 -S315400102A001000000C28480208088610012800042E3 -S315400102B001000000C28480208330601A80A0600063 -S315400102C01280003A01000000C284802080886400C8 -S315400102D01280003301000000C284802080886001C2 -S315400102E01280001D01000000C02620083080003C1D -S315400102F0C0260000C2848020833860148208603F93 -S3154001030080A0401322BFFFFBA604E00180A4E001C8 -S3154001031034BFFF67A604FFFF10BFFF6682102003AC -S31540010320C28480208088600112BFFFB201000000B4 -S31540010330C28480208088600102BFFFFA010000006C -S3154001034030BFFFAC7FFFC3AE9010200810BFFFAE99 -S3154001035080A4E0017FFFC3AA9010200CC02620088C -S315400103603080001F7FFFC3A69010200710BFFF9962 -S31540010370821020837FFFC3A29010200B10BFFFB4D1 -S31540010380A21020007FFFC39E9010200A30BFFFAB12 -S315400103907FFFC39B9010200130BFFF667FFFC3984C -S315400103A09010200B30BFFFCD7FFFC3959010200EDC -S315400103B030BFFFC67FFFC3929010200D30BFFFBEF6 -S315400103C07FFFC38F9010200410BFFF532110008080 -S315400103D07FFFC38B9010200530BFFF6E81C7E008B9 -S315400103E091E8200017100143DA02E08090022010C4 -S315400103F09B2B60029812E080D023000DC202E08060 -S3154001040082006001C222E08081C3E0080100000051 -S31540010410C0220000C022204082103FFFC222200C91 -S315400104209A10200103100143DA20608081C3E0085D -S31540010430010000009DE3BF7803100144F02060CC29 -S315400104407FFFC365110040347FFFFFF29010001813 -S31540010450A010200123100040921000104000299165 -S31540010460901463E4A004200180A4200F04BFFFFC84 -S3154001047092100010C20620208330601CAE0060013D -S31540010480AC10200080A58017168000EC0300003FC9 -S31540010490B81063FE2B1001430300002AB61062AA6E -S315400104A0BA102001B410001CB2156080832DA00C37 -S315400104B080A5E00114800118A600401880A5A0007F -S315400104C01280010901000000F824E008C204E00896 -S315400104D080A0401C02800004010000007FFFC34849 -S315400104E090102001F824E040C204E04080A0401C66 -S315400104F002800004010000007FFFC34190102002EA -S31540010500C204E00880A0600012BFFFFE01000000A7 -S31540010510C205608080A0601002800005251001435D -S315400105207FFFC3379010200325100143A0102001FF -S31540010530A414A080A2102020832C20029A244010CB -S31540010540D8048001A004200180A3000D028000048C -S31540010550901020047FFFC32A0100000080A4200FD1 -S3154001056004BFFFF7832C2002FA256080F624C000E1 -S31540010570F424E040C204C00080A0401B0280000475 -S31540010580A010001A7FFFC31E90102005C204E04050 -S3154001059080A0401002800004010000007FFFC318C4 -S315400105A090102005F424E008C204E00880A0600011 -S315400105B012BFFFFE01000000C205608080A06010EE -S315400105C002800005251001437FFFC30D90102006D0 -S315400105D025100143A0102001A414A080A210201FC1 -S315400105E09B2C2002C204800D80A04011A004200152 -S315400105F0A2047FFE02800004901020077FFFC30003 -S315400106000100000080A4200704BFFFF79B2C2002B5 -S31540010610A4066028A210201CA0102005C204800058 -S3154001062080A04011A404A004A2047FFE028000041D -S31540010630901020087FFFC2F201000000A0843FFF16 -S315400106401CBFFFF701000000FA27BFE8C207BFE859 -S3154001065082006001C227BFECDA07BFEC9A03600152 -S31540010660DA27BFF0C207BFF082006001C227BFF49C -S315400106709A102006DA27BFD8C024C000C024E04023 -S31540010680FA256080A0102002E024E040E024E00842 -S31540010690834440008088610002800005010000001B -S315400106A0805000018050000180500001C207BFD830 -S315400106B0C227BFDCDA07BFD880A3600602800004E8 -S315400106C0010000007FFFC2CE9010200AE024E0081E -S315400106D001000000C207BFD8C227BFDCDA07BFD876 -S315400106E080A3600602800004010000007FFFC2C4AF -S315400106F09010200AE024E00801000000C027BFDC7A -S31540010700C207BFDC80A06000128000950100000096 -S31540010710C204E00880A0600012BFFFFE0100000095 -S31540010720C205608080A06004028000052100003F70 -S315400107307FFFC2B39010200D2100003FC024E0404E -S31540010740A01423FE9A10200103100143E024E0087F -S31540010750DA206080400003E801000000400003E821 -S3154001076090122F00E024E040C204E04080A06000E7 -S3154001077002BFFFFE01000000C205608080A060024A -S3154001078002800004A01560807FFFC29D9010200E5C -S31540010790C204200480A0601F028000040100000002 -S315400107A07FFFC2979010200F400003D3A81000107E -S315400107B0400003D390023F00A0102002A410202045 -S315400107C0400003CD01000000400003CD90023F00F0 -S315400107D0C2056080A204200180A04011028000046D -S315400107E0901020107FFFC28601000000832C20025A -S315400107F09A248010D8050001A010001180A3000D95 -S3154001080002800004901020117FFFC27D010000008C -S3154001081080A4200F04BFFFEB01000000C024E0408C -S31540010820AC05A00182103FFFC224E00C80A58017D1 -S3154001083006BFFF20832DA00C80A5E0010480004B5C -S3154001084001000000C0262024C206202480A06000AA -S315400108501280003F0100000021040000E026202410 -S31540010860C206202480A0401002800005821020018B -S315400108707FFFC2639010201482102001C2262020DF -S31540010880C0262024C206202480A0401002800004F5 -S31540010890010000007FFFC25A90102015C02620207B -S315400108A0C0262024C206202480A060001280002495 -S315400108B00100000082102002C2262020DA062020F4 -S315400108C0808B60020280001B01000000C0262020B0 -S315400108D0C2062020808860020280002401000000B8 -S315400108E0308000117FFFFECB901000139B2DA01C82 -S315400108F0DA24E024C204E0248330601C80A0401640 -S3154001090002BFFEF2010000007FFFC23D901020129F -S3154001091030BFFEEE7FFFC2359010001610BFFEE9D4 -S3154001092080A5A0007FFFC236901020183080000FAE -S315400109307FFFC2339010201730BFFFE57FFFC230E3 -S315400109409010201610BFFFDD821020027FFFC22CBF -S315400109509010201310BFFFC2210400007FFFC22860 -S315400109609010200B30BFFF6B81C7E00891E8200053 -S3154001097003100143DA0060C8C023600881C3E00860 -S31540010980901020009DE3BF902F100144E205E0CC7A -S31540010990A004610027100143C2042004F024E0C8EA -S315400109A07FFFC2129010201003018000DA04200458 -S315400109B082106020808B40011280010D01000000F1 -S315400109C0DA046100DA27BFF0C204610080A3400166 -S315400109D002800005821020017FFFC209901020028B -S315400109E082102001C2242004DA046100DA27BFF014 -S315400109F0C204610080A34001028001200100000081 -S31540010A00C0242004DA046100DA27BFF0C204610081 -S31540010A1080A340010280000580A720007FFFC1F826 -S31540010A209010200480A72000128000B780A72001E3 -S31540010A30B010200180A6001A16800017A8102001C8 -S31540010A40108000052510004280A6001A168000136A -S31540010A50DA04E0C8A206C0189014A17092100011E1 -S31540010A6080A4601F14BFFFF9B00620014000280D85 -S31540010A7001000000D805E0CCC20320409B2D0011A7 -S31540010A808210400DC223204080A6001A06BFFFF304 -S31540010A90A206C018DA04E0C89606A003C023600483 -S31540010AA0833AE01FC023601098103FFF8330601ED9 -S31540010AB0AA02C001D8236014D823600CA2102000DA -S31540010AC0AD3D600280A720000280008AA810200167 -S31540010AD080A4401C168000ECC204E0C880A7200117 -S31540010AE004800015B010200080A5A00004800013EA -S31540010AF080A0001C9B2C6010832C60188210400D36 -S31540010B00992C60088210400C82104011993D600278 -S31540010B10DA04E0C8C2236020B006200180A7200184 -S31540010B20048000059A03600480A3001814BFFFFAED -S31540010B300100000080A0001CB0603FFF80A6001AA3 -S31540010B4016800016C204E0C82501800080A7200057 -S31540010B50028000058206C01880A720010280008419 -S31540010B608206C011C2242004D804E0C8832D00188F -S31540010B709B3E4018C2232008808B6001128000856D -S31540010B809A10000CB006200180A6001A06BFFFF19C -S31540010B9080A72000C204E0C8C0206008808E6001A2 -S31540010BA012800009B0102000B006200180A6201F47 -S31540010BB014800005833E40188088600122BFFFFCF7 -S31540010BC0B006200180A72000028000068206C018D8 -S31540010BD080A72001028000048216E0208206C0110F -S31540010BE082106020C2242004DA04E0C8832D001854 -S31540010BF0C2236008C203600880A0600012BFFFFEE6 -S31540010C0001000000C2042004808860200280009810 -S31540010C1001000000DA04200403010000808B40013A -S31540010C200280009001000000DA04200403008000E5 -S31540010C30808B40010280008801000000C204200828 -S31540010C40C227BFF0DA04200CDA27BFF4C204E0C899 -S31540010C50992D0018D82060089A100001C203600837 -S31540010C6080A0600012BFFFFE01000000C204200404 -S31540010C70808860200280007501000000DA042004AB -S31540010C8003010000808B40010280006D01000000DD -S31540010C90DA04200403008000808B40010280006555 -S31540010CA001000000DA042008C207BFF080A0400D11 -S31540010CB002800004010000007FFFC1519010200E08 -S31540010CC0DA04200CC207BFF480A0400D0280000563 -S31540010CD0030180007FFFC14A9010200F030180006D -S31540010CE0C224200480A7200012BFFF7AA20460011B -S31540010CF080A4600004BFFF7B80A7200110800062B2 -S31540010D00C204E0C80280003D11100042B01020002C -S31540010D1080A6001C16BFFF60A810200110800005A8 -S31540010D202510004280A6001C16BFFF5CDA04E0C80D -S31540010D30A206C0189014A1709210001180A4601FE1 -S31540010D4014BFFFF9B00620014000275601000000FC -S31540010D50D805E0CCC20320409B2D00118210400DE6 -S31540010D60C223204010BFFFF180A6001CF6242004B8 -S31540010D70D804E0C8832D00189B3E4018C2232008A2 -S31540010D80808B600122BFFF81B00620019A10000CC2 -S31540010D90C203600880A0600012BFFFFE0100000090 -S31540010DA0DA04200403010000808B40010280001E0A -S31540010DB001000000DA04200403008000808B40011A -S31540010DC00280001601000000E4242004C20420042D -S31540010DD08088401222BFFF6DB00620017FFFC10807 -S31540010DE09010200710BFFF69B00620017FFFC104A4 -S31540010DF09010200130BFFEF3901221704000272948 -S31540010E009210001BDA05E0CC832F001BC223604001 -S31540010E1010BFFF22DA04E0C87FFFC0F99010200618 -S31540010E2030BFFFEA7FFFC0F69010200530BFFFE2DA -S31540010E307FFFC0F39010200D30BFFF9B7FFFC0F0B6 -S31540010E409010200C30BFFF937FFFC0ED9010200B18 -S31540010E5030BFFF8B7FFFC0EA9010200A30BFFF787A -S31540010E607FFFC0E79010200930BFFF707FFFC0E4CD -S31540010E709010200830BFFF687FFFC0E1901020032B -S31540010E8030BFFEE0C020600CDA05E0CCC0236040F4 -S31540010E9082103FFFC223600C81C7E00891E8200021 -S31540010EA09DE3BF983B100144E60760CC7FFFC0CF6E -S31540010EB090102011C024E01CC204E01C80A06000F8 -S31540010EC00280004801000000C204E01C8330601B20 -S31540010ED080A0401A0A80003F01000000A4102000B3 -S31540010EE080A4801A1A8000422D100143AA102001C5 -S31540010EF0AE15A080A32CA002E00640117FFFFD4560 -S31540010F0090100013A804A0019B2D4012832D2010A0 -S31540010F108210400DC224E01C9A103FFFDA24E040C3 -S31540010F20D80600119A10201FDA232004A0043FFF9F -S31540010F30DA230000A12C20048204000C9A1020051B -S31540010F40DA206010C0206014EA2060189A1000016F -S31540010F50C203601080A0600012BFFFFE01000000C6 -S31540010F60A004000CC204201080A0600002BFFFFE56 -S31540010F7001000000C0242018C205A08080A06002A4 -S31540010F80028000069A04A011900480127FFFC09C43 -S31540010F90900220039A04A011C205E00480A0400DEE -S31540010FA022800006A4100014900480127FFFC09492 -S31540010FB090022004A4100014C024E01C80A5001A4D -S31540010FC00ABFFFCEA32CA0021080000ADA0760CC2C -S31540010FD07FFFC08B9010200210BFFFC2A4102000DB -S31540010FE07FFFC0879010200130BFFFB8DA0760CC81 -S31540010FF0C023604082103FFFC223600C81C7E008D6 -S3154001100091E820009DE3BF987FFFC08C010000005E -S3154001101080A220000280002680A62000128000299E -S31540011020010000007FFFC08501000000912A2004D5 -S315400110307FFFC06E9002200340001870010000003F -S3154001104080A220001280002B010000004000182DD4 -S3154001105001000000400017E60100000040000228A0 -S315400110600100000080A6A0001280002D031001445B -S315400110707FFFC072B41060D0912A2002C206800858 -S3154001108080A060001280003080A6200012800039C6 -S31540011090010000004000048F0100000040001E05D1 -S315400110A001000000400015C281E800007FFFC04AF0 -S315400110B01100400C80A6200002BFFFDB01000000AA -S315400110C07FFFC0F6901000197FFFC05C0100000051 -S315400110D0912A20047FFFC045900220034000184713 -S315400110E00100000080A2200002BFFFD901000000DC -S315400110F07FFFC0439010200140001802010000000C -S31540011100400017BB01000000400001FD0100000046 -S3154001111080A6A00002BFFFD70310014440001DF086 -S3154001112001000000031001447FFFC044B41060D0A9 -S31540011130912A2002C206800880A0600002BFFFD427 -S3154001114080A620007FFFC03D010000007FFFC03B1D -S31540011150A0100008912A2002C20680089FC04000C4 -S315400111609010001080A6200002BFFFCB01000000B6 -S315400111707FFFC0DA901000194000045601000000BC -S3154001118040001DCC010000004000158981E80000A7 -S315400111900100000003100143DA0060CC9A036001AC -S315400111A0DA2060CC81C3E008010000009DE3BF98CE -S315400111B07FFFC00911004044D806200882103FFF36 -S315400111C0C2262004DA060000C206000080A34001C0 -S315400111D00280006FA60B20078210201FC226200422 -S315400111E0C226000080A4E00002800033821000186D -S315400111F0A2100013C0206018A2847FFF12BFFFFE19 -S3154001120082006010A210200080A440131680002B9B -S3154001121080A4E001A810200FA01000187FFFBFF3A3 -S3154001122090100011C0242010E824201482102006BA -S31540011230C2242018DA04201080A3600F0280000423 -S31540011240010000007FFFBFEE90102003E824201824 -S315400112509A10200EC204201080A0400D12BFFFFE3E -S31540011260010000009A837FFF1CBFFFFBA410001002 -S31540011270C204201080A0600F12BFFFFE01000000D3 -S31540011280C204201880886010028000358210201028 -S31540011290C224A018DA042018808B6010128000380E -S315400112A001000000A204600180A4401306BFFFDCD8 -S315400112B0A004201080A4E0011480001080A4E00066 -S315400112C00280000782100018A2100013C020601887 -S315400112D0A2847FFF12BFFFFE8200601021100144ED -S315400112E0C20420CC80A060000280002D1110004471 -S315400112F01080000D921000197FFFBFBC901020088E -S315400113008210200FC22620189A10202FDA26202874 -S31540011310C206202080A0600D12BFFFFE80A4E0001F -S3154001132030BFFFE8400025DF901221947FFFFC3952 -S31540011330D00420CC8210200183284019DA0420CC25 -S31540011340C22360409810200FD82620148210200D09 -S31540011350C2262018A7800000308000117FFFBFA859 -S315400113609010200482102010C224A018DA042018FC -S31540011370808B601022BFFFCDA20460017FFFBFA01A -S315400113809010200510BFFFC9A20460017FFFBF9CDA -S315400113909010200110BFFF928210201F81C7E008E4 -S315400113A081E800000000000000000000000000008D -S315400113B000000000000000000000000000000000E6 -S315400113C001000000010000000100000001000000D2 -S315400113D0010000000100000081C3E0080100000097 -S315400113E001000000010000000100000001000000B2 -S315400113F0010000000100000081C3E0080100000077 -S315400114000100000001000000010000000100000091 -S31540011410010000000100000081C3E0080100000056 -S315400114200100000001000000010000000100000071 -S31540011430010000000100000081C3E0080100000036 -S31540011440D482018090A2000916BFFFFE9612800B3E -S3154001145081C3E0089010000BD48201C090A200091C -S3154001146016BFFFFE9612800B81C3E0089010000B59 -S3154001147090A22004C0A201A090A22004C0A201A073 -S3154001148090A22004C0A201A090A22004C0A201A063 -S31540011490C0A2018090A2200414BFFFF70100000002 -S315400114A081C3E0080100000090A22004C0A201E02F -S315400114B090A22004C0A201E090A22004C0A201E0B3 -S315400114C090A22004C0A201E0C0A201C090A22004C3 -S315400114D014BFFFF70100000081C3E00801000000CE -S315400114E0981000089610000A98A3200814BFFFFF21 -S315400114F0D43B00099810000898A3200814BFFFFFA9 -S31540011500C01B00099810000898A32004D6030009BF -S3154001151080A2C00A1280000698A3200434BFFFFDB2 -S31540011520D603000981C3E0089010200090102001E5 -S31540011530981000089610000A98A3200814BFFFFFD0 -S31540011540D43B00099810000898A32004D60300094B -S3154001155080A2C00A1280000698A3200434BFFFFD72 -S31540011560D603000981C3E0089010200090102001A5 -S315400115709810000898A32004D2A301A0DA8301A001 -S3154001158080A340091280000698A3200414BFFFFCE3 -S31540011590D2A301A081C3E008901020009010200141 -S315400115A09A1000089AA3400AD6A34180D883418065 -S315400115B0981B000B988B0009128000069AA3400ADB -S315400115C014BFFFFBD6A3418081C3E00890102000E1 -S315400115D0901020019A1000089AA3400BD8A241CD41 -S315400115E0C48241CD8418800C8488800A128000060A -S315400115F09AA3400B14BFFFFBD8A241CD81C3E0089B -S315400116009010200090102001010000000100000010 -S31540011610010000001310008092126138D40240008C -S3154001162080A2A0011280000780A0A002D40240003F -S31540011630D4024000952AA002108000050100000056 -S315400116403280000381E80000D402400081E00000BE -S3154001165093480000818A602023100045A2146278D5 -S31540011660A40460040100000081C4400081CC8000D4 -S3154001167091D0200191D020012680000590002001C3 -S3154001168090222001912A2001912A200281C3E0085B -S315400116900100000081C3E008D082004081C3E00818 -S315400116A0D2A2004081C3E008D082018081C3E00814 -S315400116B0D2A2018081C3E008D08201A081C3E008A3 -S315400116C0D2A201A081C3E008D08201C081C3E00853 -S315400116D0D2A201C081C3E008D08201E081C3E00803 -S315400116E0D2A201E081C3E008D2A2000081C3E00892 -S315400116F0D082000081C3E00891480000818A000041 -S3154001170001000000010000000100000081C3E00863 -S315400117100100000081C3E008C0A000A081C3E00829 -S31540011720C0A000C081C3E008D01A0000010000003B -S31540011730010000000100000001000000010000005E -S315400117409DE3BF701310006DCD1A6170CD3FBFE0B0 -S31540011750111000801B100080C91B61E0C51A21D8F9 -S31540011760C11FBFE095A088C4D53FBFF0D91FBFF0C8 -S3154001177003100080D11861E881AB0A4801000000DE -S315400117800380002BC13FBFD8F91FBFD8B5A0055C68 -S31540011790F53FBFF0ED1FBFF0F11FBFF0A5A589587A -S315400117A0E91FBFE0A1A488D41510006DA1A00130A6 -S315400117B0DD1AA17881AC0ACE010000000D80002D12 -S315400117C0F53FBFD0C51FBFD083A018C291A0492104 -S315400117D099A01928D51FBFE091A308CA1710006D1B -S315400117E091A00128FD1AE18081AA0ADE01000000CC -S315400117F00D80002F01000000400001AE01000000F5 -S315400118004000020C0100000080A22000128000313D -S3154001181001000000400002610100000080A220009A -S315400118200280003501000000308000317FFFBE7428 -S3154001183090102001F91FBFD8B5A0055CF53FBFF058 -S31540011840ED1FBFF0F11FBFF0A5A58958E91FBFE005 -S31540011850A1A488D41510006DA1A00130DD1AA1788C -S3154001186081AC0ACE010000001BBFFFD7F53FBFD0B8 -S315400118707FFFBE6390102002C51FBFD083A018C250 -S3154001188091A0492199A01928D51FBFE091A308CA63 -S315400118901710006D91A00128FD1AE18081AA0ADE88 -S315400118A0010000001BBFFFD5010000007FFFBE54B1 -S315400118B0901020034000017F01000000400001DD3F -S315400118C00100000080A2200002BFFFD301000000FA -S315400118D07FFFBE4B010000004000023001000000C6 -S315400118E080A2200002800004010000007FFFBE4468 -S315400118F09010200581C7E00881E800009DE3BF986C -S315400119007FFFFF7D210000047FFFFF7D90120010C5 -S315400119107FFFFF79B0102000808A00100280000B03 -S315400119209010200040000267010000007FFFBE4387 -S3154001193001000000912A20047FFFBE2C900220085E -S315400119407FFFFF800100000081C7E00881E80000B9 -S31540011950191000809813217811100200921020006E -S31540011960150FF76C9412A3D7D03B0000D42320085F -S31540011970C11B0000C503200887A089220100000081 -S3154001198089A005408DA0892281A8CA2601000000B0 -S3154001199033800003901020009010200181C3E0089D -S315400119A001000000C11A0000C51A400089A0084282 -S315400119B081C3E008C93A8000C11A0000C51A400037 -S315400119C089A0094281C3E008C93A80001910008004 -S315400119D098132178D0230000D2232008C1030000A8 -S315400119E0C303200885A00D2181C3E008C53A8000C4 -S315400119F0C11A0000C51A400089A009C2C93A80002F -S31540011A0081C3E00801000000C11A000085A005401D -S31540011A10C53A400081C3E008010000000100000012 -S31540011A20010000000100000001000000010000006B -S31540011A30010000000100000001000000010000005B -S31540011A40010000000100000001000000010000004B -S31540011A50010000000100000001000000010000003B -S31540011A60010000000100000001000000010000002B -S31540011A70010000000100000001000000010000001B -S31540011A80010000000100000001000000010000000B -S31540011A9001000000010000000100000081A00020BB -S31540011AA081C3E00801000000C11A000081C3E008BB -S31540011AB001000000C51A000089A009C2C93A4000C8 -S31540011AC081C3E00801000000131000809212617882 -S31540011AD0D0224000C102400085A01900C53A40000D -S31540011AE081C3E008D01A4000131000809212617839 -S31540011AF0D0224000C102400085A01880C522400086 -S31540011B0081C3E008D0024000151000809412A178EC -S31540011B10D03A8000C11A800085A01A40C5228000B3 -S31540011B2081C3E008D0028000151000809412A1788C -S31540011B30D0228000C102800085A01A20C5228000E3 -S31540011B4081C3E008D0028000151000809412A1786C -S31540011B50D0228000C102800081A01920C13A8000B4 -S31540011B6081C3E008D01A8000151000809412A17834 -S31540011B70D03A8000C11A800081A018C0C1228000DD -S31540011B8081C3E008D0028000151000809412A1782C -S31540011B90D0228000CB0280008DA00025CD2280007E -S31540011BA081C3E008D0028000151000809412A1780C -S31540011BB0D0228000CB0280008DA000A5CD228000DE -S31540011BC081C3E008D0028000151000809412A178EC -S31540011BD0D0228000CB0280008DA00125CD2280003D -S31540011BE081C3E008D0028000191000809813217843 -S31540011BF0D03B0000D43B2008C11B0000C51B200878 -S31540011C0081A80A420100000033800009901020009B -S31540011C1029800007901020012D8000059010200298 -S31540011C202F8000039010200391D0200081C3E0084B -S31540011C30010000001910008098132178D03B000064 -S31540011C40D43B2008C11B0000C51B200881A80AC23D -S31540011C500100000033BFFFF69010200029BFFFF4BA -S31540011C60901020012DBFFFF2901020022FBFFFF0F0 -S31540011C709010200391D020001910008098132178EC +S3154001004082102083C226200882102000C02600008C +S315400100508200600180A0606412BFFFFD01000000C4 +S3154001006082102000C40600008200600180A0606406 +S3154001007012BFFFFD0100000082102002C2262008A7 +S31540010080A0062004C28400208088600402BFFFFECF +S3154001009001000000C0262008C0260000C2840020BE +S315400100A084102001833860148208603F80A060017B +S315400100B002800004A21020011080000E821020034D +S315400100C0C0260000A200A001C2840020833860142B +S315400100D08208603F80A0401122BFFFFA84100001D0 +S315400100E080A4600134800002A21000028210200325 +S315400100F0C2262008C28400208208600780A06006CC +S315400101000280000801000000C2860020C28400204F +S315400101108208600780A0600612BFFFFC0100000054 +S31540010120C0262008C026200480A460010480000463 +S3154001013082102034C284002082102034C22600005E +S31540010140C2840020C284002080A46001048000197A +S315400101508210200129100070A4102001A81520301A +S3154001016090100012400024D592102041C24D000843 +S31540010170C2260000A404A00180A4801112BFFFFA88 +S3154001018090100012C2840020C2840020833860147B +S315400101908208603F80A040110280000401000000F7 +S315400101A07FFFC5FE90102006C284002082102001E8 +S315400101B0C226200CC2840020808860011280005330 +S315400101C082102083C226200880A46001028000425A +S315400101D001000000C28400208088640002BFFFFE47 +S315400101E001000000C2840020808860010280004F27 +S315400101F080A460010480005280A46000C284002073 +S315400102008330601A80A04011028000040100000082 +S315400102107FFFC5E290102009C284002080886100DA +S315400102200280004A01000000C284002080886400E8 +S315400102300280004C0100000029100070A41020002B +S31540010240A8152030E6860020921020414000249BCC +S3154001025090100012C24D000880A040132280000574 +S31540010260A404A0017FFFC5CD9010200CA404A001D9 +S3154001027080A4401214BFFFF480A460010480000FE3 +S3154001028001000000C2840020808861001280003F86 +S3154001029001000000C28400208330601A80A0600003 +S315400102A01280003701000000C2840020808864006B +S315400102B01280003001000000E0840020808C200183 +S315400102C01280000E01000000C026200881C7E00808 +S315400102D091E82000C28400208088600112BFFFC2DD +S315400102E001000000C28400208088600102BFFFFA3D +S315400102F00100000030BFFFBC7FFFC5A89010200C55 +S31540010300C026200830BFFFF27FFFC5A4901020070A +S3154001031082102083C226200880A4600112BFFFAE4E +S315400103200100000030BFFFEC7FFFC59C9010200804 +S3154001033080A4600114BFFFB280A4600034BFFFC037 +S315400103402910007030BFFFDD7FFFC5949010200A51 +S31540010350C28400208088640032BFFFB92910007032 +S315400103607FFFC58E9010200B10BFFFB5291000707E +S315400103707FFFC58A9010200B30BFFFD07FFFC58716 +S315400103809010200E30BFFFC97FFFC5849010200D0D +S3154001039030BFFFC103100123C40060788528A00245 +S315400103A08610607890022010D020C002C400607888 +S315400103B08400A001C420607881C3E00801000000E8 +S315400103C0C0220000C022204082103FFFC222200CE2 +S315400103D00310012384102001C420607881C3E00802 +S315400103E00100000003100123C20060C090102000EC +S315400103F0C020600881C3E008010000009DE3BFA062 +S3154001040023100124E00461107FFFC55D9010201187 +S31540010410C024201CC204201C80A060000280004C25 +S3154001042001000000C204201C8330601B80A0401ADA +S315400104300A80004E80A6A0000280003FC2046110DF +S315400104402B100123A6102004AA156078BA102000AB +S31540010450A4102000AE103FFFA8102001AC10201FB1 +S31540010460B8102005BB2F6002C606401DC0240000FF +S31540010470C0242040EE24200CE8254000832D0012A4 +S31540010480A404A001852CA01082108001C224201C46 +S31540010490EE2420408928E0049A00FFFFC206001D91 +S315400104A0980040049B2B60048400400DEC206004BE +S315400104B0EC204000F8204004C0232004E820A01886 +S315400104C0C400400480A0A00012BFFFFE010000004E +S315400104D08728E004C400400380A0A00002BFFFFEBD +S315400104E0010000008200400DC0206018C205400096 +S315400104F080A0600202800004010000007FFFC52742 +S315400105009004FFFFC40560048204A01080A080010E +S3154001051002800004BA1000127FFFC520901000131C +S31540010520C024201C80A6801218BFFFCFA604E0027B +S31540010530C204611084103FFFB0102000C02060400B +S31540010540C420600C81C7E00881E800007FFFC51325 +S3154001055090102001C204201C8330601B80A0401AE9 +S315400105601ABFFFB680A6A0007FFFC50C90102002DF +S3154001057010BFFFB52B1001239DE3BF80231001233C +S3154001058021100124E6042110A404E100C204A004C0 +S31540010590F02460C07FFFC4FA90102010C204A0046A +S315400105A0050180008410A020808840021280014508 +S315400105B001000000C404E100C204E10080A0800102 +S315400105C002800005821020017FFFC4F490102002B2 +S315400105D082102001C224A004C404E100C204E10047 +S315400105E080A080010280014201000000C024A004D5 +S315400105F0C404E100C204E10080A08001028000053C +S3154001060080A720007FFFC4E59010200480A720002A +S315400106101280011180A7200180A6A0010480001A42 +S315400106202F100040A606E001AE15E3E4A810200114 +S31540010630AC14211010800005AA10200180A6801458 +S3154001064004800011A604E00180A4E01F34BFFFFC32 +S31540010650A8052001921000134000290090100017B0 +S31540010660C2058000C4006040872D40138410C0023B +S31540010670C4206040A805200180A6801414BFFFF362 +S31540010680A604E00180A0001C84603FFFC427BFF0A0 +S31540010690C60460C082103FFFF627BFF8C027BFFCE3 +S315400106A0C020E004C020E010C220E014C220E00CCB +S315400106B08206A0038538601F8530A01E8200800116 +S315400106C0AF386002C207BFF08200401B8416E020AB +S315400106D0C227BFECC427BFE829100123AC10200173 +S315400106E0A81520C0310100003B0080002B0180008D +S315400106F080A7200002800003821020018210001C86 +S31540010700C407BFFC80A08001168000CB80A72001D2 +S315400107100480001680A5E00004800014C207BFFCD7 +S31540010720C407BFFC8928601883286010881100011E +S315400107308328A008881100028400E0248811000162 +S3154001074082102001C820E0201080000680A04017BA +S31540010750C8208000820060018400A00480A0401768 +S3154001076012BFFFFC01000000C207BFF0E827BFF43B +S3154001077080A68001A2100001048000338400E008B5 +S315400107801080000EE607BFECE624A004832D8011FD +S31540010790C220E008833E4011808860011280001328 +S315400107A08400E008A204600180A68011048000262E +S315400107B0A604E001C605000080A7200002BFFFF3A2 +S315400107C080A7200102800079C407BFF8C424A00491 +S315400107D0832D8011C220E008833E4011808860014C +S315400107E002BFFFF18400E008C200800080A06000E3 +S315400107F012BFFFFE01000000C204A0048088401819 +S315400108000280006701000000C204A0048088401DE8 +S315400108100280006001000000EA24A004C204A00492 +S31540010820808840151280005601000000C405000072 +S315400108308400A008A204600180A6801114BFFFDED7 +S31540010840A604E001C020800010800005A21020000F +S3154001085080A460200280000780A72000833E4011CB +S315400108608088600122BFFFFBA204600180A72000AF +S315400108701280005180A720018204401B8210602013 +S31540010880C224A004A32D8011E2208000C200800072 +S3154001089080A0600012BFFFFE01000000C204A00458 +S315400108A0808860200280005D01000000C204A0042F +S315400108B0808840180280005601000000C204A0044E +S315400108C08088401D0280004E01000000C207BFF42F +S315400108D0C4004000C204A008E604A00C8600A0089B +S315400108E0E220A008C400C00080A0A00012BFFFFE05 +S315400108F001000000C404A0048088A0202280003C9E +S31540010900C227BFE4C404A004808880182280003432 +S31540010910C227BFE4C404A0048088801D2280002C25 +S31540010920C227BFE4C404A00880A04002028000049C +S31540010930010000007FFFC4199010200EC204A00CD4 +S3154001094080A4C00102800005C407BFF47FFFC41321 +S315400109509010200FC407BFF4C207BFFCC600800039 +S31540010960C407BFF8820060018400A001EA24A00404 +S31540010970C227BFFC10BFFF5FC427BFF87FFFC40774 +S3154001098090102007C405000010BFFFAB8400A008EB +S315400109907FFFC4029010200630BFFFA07FFFC3FF38 +S315400109A09010200530BFFF99F624A00410BFFF79AF +S315400109B0832D80110280001CC607BFF88210E020FB +S315400109C0C224A00410BFFFB1A32D80117FFFC3F342 +S315400109D09010200D10BFFFD4C207BFE47FFFC3EFC5 +S315400109E09010200C10BFFFCCC207BFE47FFFC3EBC2 +S315400109F09010200B10BFFFC4C207BFE47FFFC3E7BF +S31540010A009010200A10BFFFB3C207BFF47FFFC3E3B4 +S31540010A109010200930BFFFAA7FFFC3E09010200845 +S31540010A2030BFFFA3C607BFE8C624A00410BFFF9787 +S31540010A30A32D8011C2042110C020E00C84103FFF79 +S31540010A40B0102000C0206040C420600C81C7E0087F +S31540010A5081E800000280001E1110004080A720009E +S31540010A60A610001B04BFFF08A81020002F1000404D +S31540010A70AC142110AE15E3E410800005AA10200144 +S31540010A8080A7001404BFFF00A604E00180A4E01F74 +S31540010A9034BFFFFCA805200192100013400027EF48 +S31540010AA090100017C2058000C4006040872D401396 +S31540010AB08410C002C420604010BFFFF2A805200187 +S31540010AC07FFFC3B69010200130BFFEBB9210001BC2 +S31540010AD0400027E2901223E4C2042110852F001B17 +S31540010AE0C420604010BFFEE980A0001C7FFFC3AB5D +S31540010AF09010200330BFFEBE9DE3BF80031001244A +S31540010B0011004034231000407FFFC396F02061104E +S31540010B10C0260000C026204082103FFFC226200C7E +S31540010B200310012384102001A0102001C420607805 +S31540010B30A214639492100010400027C8901000112F +S31540010B40A004200180A4201012BFFFFC92100010C7 +S31540010B50F8062020B937201C231001232D00003F21 +S31540010B603700002AB8072001A2146078AC15A3FE0D +S31540010B70B616E2AAA6100018AE102000B4103FFF28 +S31540010B80BA102001A8102020AA10202180A72001F8 +S31540010B900280000580A5E0007FFFC3799010001711 +S31540010BA080A5E0000280000F01000000C024C000C3 +S31540010BB0C024E040F424E00CFA244000832DE01CDC +S31540010BC0C224E024C204E0248330601C80A0401784 +S31540010BD002800004010000007FFFC37090102012C4 +S31540010BE0EC24E008C204E00880A04016028000041C +S31540010BF0010000007FFFC36990102001EC24E04012 +S31540010C00C204E04080A040160280000401000000BA +S31540010C107FFFC36290102002C204E00880A06000FA +S31540010C2012BFFFFE01000000C204400080A0601018 +S31540010C3002800005A01020017FFFC35890102003B9 +S31540010C40A0102001832C2002C204400184250010FB +S31540010C5080A0800122800005A00420017FFFC34FB0 +S31540010C6090102004A004200180A4201012BFFFF799 +S31540010C70832C2002FA244000F624C000EC24E040F4 +S31540010C80C204C00080A0401B028000040100000095 +S31540010C907FFFC34290102005C204E04080A0401669 +S31540010CA002800004010000007FFFC33C9010200534 +S31540010CB0EC24E008C204E00880A0600012BFFFFEF9 +S31540010CC001000000C204400080A0601002800005BF +S31540010CD0A410201F7FFFC33190102006A410201FAF +S31540010CE0A0102001832C2002C204400180A04012A2 +S31540010CF022800005A00420017FFFC3289010200711 +S31540010D00A004200180A4200812BFFFF7A404BFFE5F +S31540010D10A410201CA010200A832C2002C2044001EA +S31540010D2080A0401222800005A00420017FFFC31B42 +S31540010D3090102008A004200180A4201012BFFFF7C4 +S31540010D40A404BFFEFA27BFF082102002C407BFF0F9 +S31540010D508400A001C427BFF4C407BFF48400A001E6 +S31540010D60C427BFF8C407BFF88400A001C427BFFC4D +S31540010D7084102006C427BFE0C024C000C024E04040 +S31540010D80FA244000C224E040C224E00883444000E3 +S31540010D90808861000280000501000000805000014A +S31540010DA08050000180500001C207BFE0C227BFE466 +S31540010DB0C207BFE080A060060280000582102002C3 +S31540010DC07FFFC2F69010200A82102002C224E0085A +S31540010DD001000000C207BFE0C227BFE4C207BFE06F +S31540010DE080A0600602800005821020027FFFC2EBD0 +S31540010DF09010200A82102002C224E008010000005F +S31540010E00C027BFE4C207BFE480A060001280007320 +S31540010E1001000000C204E00880A0600012BFFFFE8E +S31540010E2001000000C204400080A06004028000046A +S31540010E30010000007FFFC2D99010200DC024E04080 +S31540010E40EC24E008FA2440004000020B01000000B7 +S31540010E504000020B90122F00EC24E040C204E04017 +S31540010E6080A0600002BFFFFE01000000C2044000F6 +S31540010E7080A0600202800004010000007FFFC2C71B +S31540010E809010200EC204600480A0601F02800004FE +S31540010E90010000007FFFC2C19010200F400001F603 +S31540010EA0A4102002400001F690023F00400001F2EA +S31540010EB001000000400001F290023F00C2044000E0 +S31540010EC0A004A00180A0401022800005A52CA0020C +S31540010ED07FFFC2B290102010A52CA002C40440127C +S31540010EE08225401080A0800102800004A4100010D9 +S31540010EF07FFFC2AA9010201180A4201012BFFFECE0 +S31540010F0001000000C024E040F424E00CAE05E001FD +S31540010F1080A7001714BFFF1EA624F00080A720015A +S31540010F200480002C01000000C0262024C206202493 +S31540010F3080A060001280002C010000000304000024 +S31540010F40C2262024C406202480A0800102800005F8 +S31540010F50821020017FFFC29190102014821020013F +S31540010F60C2262020C026202403040000C4062024D3 +S31540010F7080A0800102800004010000007FFFC2873B +S31540010F8090102015C0262020C0262024C2062024E9 +S31540010F9080A060001280001B010000008210200228 +S31540010FA0C2262020C20620208088600202800012CC +S31540010FB001000000C0262020C20620208088600251 +S31540010FC002800004010000007FFFC27490102018C7 +S31540010FD081C7E00891E820007FFFC2709010200B86 +S31540010FE030BFFF8D7FFFC26D9010201310BFFFD51C +S31540010FF0030400007FFFC2699010201730BFFFEE47 +S315400110007FFFC2669010201610BFFFE682102002B5 +S315400110109DE3BFA07FFFC27D0100000080A22000AA +S315400110200280003B0100000080A6200012800035AE +S31540011030010000007FFFC27501000000912A2004D3 +S315400110407FFFC24F9002200340001880010000003C +S3154001105080A2200012800028010000004000181FD5 +S3154001106001000000400017CD01000000400001E3EF +S315400110700100000080A6A0001280001C01000000B3 +S315400110807FFFC26221100124912A2002A01421145B +S31540011090C204000880A060000280000A80A62000E9 +S315400110A07FFFC25A01000000912A20027FFFC257EA +S315400110B0E00400089FC400000100000080A6200053 +S315400110C002800004010000007FFFC26990100019F0 +S315400110D0400004400100000040001E4F0100000096 +S315400110E0400015D281E8000040001F2101000000A8 +S315400110F030BFFFE47FFFC2299010200130BFFFD8E7 +S315400111007FFFC24B9010001930BFFFCB7FFFC21546 +S315400111101100400C10BFFFC680A62000031001231A +S31540011120C40060C48400A001C42060C481C3E00837 +S31540011130010000009DE3BFA07FFFC20A11004044A9 +S3154001114082103FFFE4062008C2262004A40CA00713 +S31540011150C4060000C206000080A08001028000741F +S31540011160010000008210201FC2262004C226000072 +S3154001117080A4A0000280004E8210200085286004D1 +S31540011180840600028200600180A04012C020A0189F +S3154001119012BFFFFC85286004A0102000A610200F76 +S315400111A0AA102006A81020107FFFC1F5901000104C +S315400111B0A2042001832C600486060001A12C200490 +S315400111C0C026000184060010E620E004EA20A018AB +S315400111D0C206000180A0600F028000058206001051 +S315400111E07FFFC1EE90102003820600108410200E6E +S315400111F0872C6004E6206018C206000380A04002E6 +S3154001120012BFFFFE010000008400BFFF80A0BFFFA8 +S3154001121012BFFFFA01000000852C6004C2060002DD +S3154001122080A0600F12BFFFFE82060010C200601848 +S315400112308088601002800033A0060010E824201840 +S31540011240C204201880886010128000350100000019 +S3154001125080A4801114BFFFD5A010001180A4A00165 +S315400112600480000C821020007FFFC1C59010200829 +S315400112708210200FC22620188210202FC226202835 +S31540011280C206202080A0600D12BFFFFE8210200002 +S3154001129085286004840600028200600180A0401215 +S315400112A0C020A01812BFFFFC85286004211001242C +S315400112B0C204211080A06000028000109210001923 +S315400112C011100044400025E59012211C7FFFFC3D92 +S315400112D0D0042110C204211084102001B3288019A2 +S315400112E0F22060408210200FC22620148210200D69 +S315400112F0C2262018A780000081C7E00881E80000C7 +S315400113007FFFC1A690102004E8242018C2042018AB +S315400113108088601022BFFFD080A480117FFFC19FCB +S315400113209010200510BFFFCC80A480117FFFC19B88 +S315400113309010200110BFFF8D8210201F0000000079 +S315400113400100000001000000010000000100000052 +S31540011350010000000100000081C3E0080100000017 +S315400113600100000001000000010000000100000032 +S31540011370010000000100000081C3E00801000000F7 +S315400113800100000001000000010000000100000012 +S31540011390010000000100000081C3E00801000000D7 +S315400113A001000000010000000100000001000000F2 +S315400113B0010000000100000081C3E00801000000B7 +S315400113C0D482018090A2000916BFFFFE9612800BBF +S315400113D081C3E0089010000BD48201C090A200099D +S315400113E016BFFFFE9612800B81C3E0089010000BDA +S315400113F090A22004C0A201A090A22004C0A201A0F4 +S3154001140090A22004C0A201A090A22004C0A201A0E3 +S31540011410C0A2018090A2200414BFFFF70100000082 +S3154001142081C3E0080100000090A22004C0A201E0AF +S3154001143090A22004C0A201E090A22004C0A201E033 +S3154001144090A22004C0A201E0C0A201C090A2200443 +S3154001145014BFFFF70100000081C3E008010000004E +S31540011460981000089610000A98A3200814BFFFFFA1 +S31540011470D43B00099810000898A3200814BFFFFF29 +S31540011480C01B00099810000898A32004D603000940 +S3154001149080A2C00A1280000698A3200434BFFFFD33 +S315400114A0D603000981C3E008901020009010200166 +S315400114B0981000089610000A98A3200814BFFFFF51 +S315400114C0D43B00099810000898A32004D6030009CC +S315400114D080A2C00A1280000698A3200434BFFFFDF3 +S315400114E0D603000981C3E008901020009010200126 +S315400114F09810000898A32004D2A301A0DA8301A082 +S3154001150080A340091280000698A3200414BFFFFC63 +S31540011510D2A301A081C3E0089010200090102001C1 +S315400115209A1000089AA3400AD6A34180D8834180E5 +S31540011530981B000B988B0009128000069AA3400A5B +S3154001154014BFFFFBD6A3418081C3E0089010200061 +S31540011550901020019A1000089AA3400BD8A241CDC1 +S31540011560C48241CD8418800C8488800A128000068A +S315400115709AA3400B14BFFFFBD8A241CD81C3E0081B +S315400115809010200090102001010000000100000091 +S315400115900100000013100080921260E0D402400066 +S315400115A080A2A0011280000780A0A002D4024000C0 +S315400115B0D4024000952AA0021080000501000000D7 +S315400115C03280000381E80000D402400081E000003F +S315400115D093480000818A602023100045A21461F8D7 +S315400115E0A40460040100000081C4400081CC800055 +S315400115F091D0200191D02001268000059000200144 +S3154001160090222001912A2001912A200281C3E008DB +S315400116100100000081C3E008D082004081C3E00898 +S31540011620D2A2004081C3E008D082018081C3E00894 +S31540011630D2A2018081C3E008D08201A081C3E00823 +S31540011640D2A201A081C3E008D08201C081C3E008D3 +S31540011650D2A201C081C3E008D08201E081C3E00883 +S31540011660D2A201E081C3E008D2A2000081C3E00812 +S31540011670D082000081C3E00891480000818A0000C1 +S3154001168001000000010000000100000081C3E008E4 +S315400116900100000081C3E008C0A000A081C3E008AA +S315400116A0C0A000C081C3E008D01A000001000000BC +S315400116B001000000010000000100000001000000DF +S315400116C09DE3BF8803100070D1186078D13FBFF009 +S315400116D003100080D11FBFF0D9186180031000802C +S315400116E0D518618895A308CAD53FBFF80310008075 +S315400116F0D91FBFF8D518619081AB0A4A0100000095 +S3154001170023800038D127BFEC91A005480310007013 +S31540011710D13FBFF8D51FBFF8D91FBFF899A3094AD2 +S31540011720D51FBFF099A308CA99A0012CD51860808E +S3154001173081AB0ACA010000002D800024D127BFECED +S3154001174091A018C891A20928D51FBFF091A01928C8 +S3154001175091A208CA91A0012803100070D51860888B +S3154001176081AA0ACA010000000D800015010000008F +S315400117704000019001000000400001EE0100000020 +S3154001178080A220001280000B0100000040000243AD +S315400117900100000080A22000128000040100000028 +S315400117A081C7E00881E800007FFFC07C91E8200501 +S315400117B07FFFC07A0100000030BFFFF57FFFC07791 +S315400117C09010200330BFFFEBD327BFE87FFFC073E4 +S315400117D090102002D307BFE810BFFFDAD107BFEC54 +S315400117E0D327BFE87FFFC06D90102001D307BFE824 +S315400117F010BFFFC6D107BFEC9DE3BFA07FFFFF9E91 +S31540011800210000047FFFFF9E901200107FFFFF9A88 +S3154001181001000000808A001012800004B0102000F0 +S3154001182081C7E00881E80000400002669010200070 +S315400118307FFFC07601000000912A20047FFFC0503F +S31540011840900220087FFFFF9F81E800000100000011 +S3154001185019100080981321201110020092102000C7 +S31540011860150FF76C9412A3D7D03B0000D423200860 +S31540011870C11B0000C503200887A089220100000082 +S3154001188089A005408DA0892281A8CA2601000000B1 +S3154001189033800003901020009010200181C3E0089E +S315400118A001000000C11A0000C51A400089A0084283 +S315400118B081C3E008C93A8000C11A0000C51A400038 +S315400118C089A0094281C3E008C93A80001910008005 +S315400118D098132120D0230000D2232008C103000001 +S315400118E0C303200885A00D2181C3E008C53A8000C5 +S315400118F0C11A0000C51A400089A009C2C93A800030 +S3154001190081C3E00801000000C11A000085A005401E +S31540011910C53A400081C3E008010000000100000013 +S31540011920010000000100000001000000010000006C +S31540011930010000000100000001000000010000005C +S31540011940010000000100000001000000010000004C +S31540011950010000000100000001000000010000003C +S31540011960010000000100000001000000010000002C +S31540011970010000000100000001000000010000001C +S31540011980010000000100000001000000010000000C +S3154001199001000000010000000100000081A00020BC +S315400119A081C3E00801000000C11A000081C3E008BC +S315400119B001000000C51A000089A009C2C93A4000C9 +S315400119C081C3E008010000001310008092126120DB +S315400119D0D0224000C102400085A01900C53A40000E +S315400119E081C3E008D01A4000131000809212612092 +S315400119F0D0224000C102400085A01880C522400087 +S31540011A0081C3E008D0024000151000809412A12045 +S31540011A10D03A8000C11A800085A01A40C5228000B4 +S31540011A2081C3E008D0028000151000809412A120E5 +S31540011A30D0228000C102800085A01A20C5228000E4 +S31540011A4081C3E008D0028000151000809412A120C5 +S31540011A50D0228000C102800081A01920C13A8000B5 +S31540011A6081C3E008D01A8000151000809412A1208D +S31540011A70D03A8000C11A800081A018C0C1228000DE +S31540011A8081C3E008D0028000151000809412A12085 +S31540011A90D0228000CB0280008DA00025CD2280007F +S31540011AA081C3E008D0028000151000809412A12065 +S31540011AB0D0228000CB0280008DA000A5CD228000DF +S31540011AC081C3E008D0028000151000809412A12045 +S31540011AD0D0228000CB0280008DA00125CD2280003E +S31540011AE081C3E008D002800019100080981321209C +S31540011AF0D03B0000D43B2008C11B0000C51B200879 +S31540011B0081A80A420100000033800009901020009C +S31540011B1029800007901020012D8000059010200299 +S31540011B202F8000039010200391D0200081C3E0084C +S31540011B30010000001910008098132120D03B0000BD +S31540011B40D43B2008C11B0000C51B200881A80AC23E +S31540011B500100000033BFFFF69010200029BFFFF4BB +S31540011B60901020012DBFFFF2901020022FBFFFF0F1 +S31540011B709010200391D02000191000809813212045 +S31540011B80D0230000D2232008C1030000C30320084C +S31540011B9081A80A210100000033BFFFE59010200013 +S31540011BA029BFFFE3901020012DBFFFE190102002D5 +S31540011BB02FBFFFDF9010200391D020001910008025 +S31540011BC098132120D0230000D2232008C10300000E +S31540011BD0C303200881A80AA10100000033BFFFD436 +S31540011BE09010200029BFFFD2901020012DBFFFD0B9 +S31540011BF0901020022FBFFFCE9010200391D02000DD +S31540011C001910008098132120D03B0000D43B2008B6 +S31540011C10C11B0000C51B200889A008C2C93B0000A2 +S31540011C2081C3E008D01B00001910008098132120C1 +S31540011C30D0230000D2232008C1030000C30320089B +S31540011C4085A00821C523000081C3E008D003000018 +S31540011C501910008098132120D0230000D223200898 +S31540011C60C1030000C303200885A008A1C5230000C5 +S31540011C7081C3E008D0030000191000809813212089 S31540011C80D0230000D2232008C1030000C30320084B -S31540011C9081A80A210100000033BFFFE59010200012 -S31540011CA029BFFFE3901020012DBFFFE190102002D4 -S31540011CB02FBFFFDF9010200391D020001910008024 -S31540011CC098132178D0230000D2232008C1030000B5 -S31540011CD0C303200881A80AA10100000033BFFFD435 -S31540011CE09010200029BFFFD2901020012DBFFFD0B8 -S31540011CF0901020022FBFFFCE9010200391D02000DC -S31540011D001910008098132178D03B0000D43B20085D -S31540011D10C11B0000C51B200889A008C2C93B0000A1 -S31540011D2081C3E008D01B0000191000809813217868 -S31540011D30D0230000D2232008C1030000C30320089A -S31540011D4085A00821C523000081C3E008D003000017 -S31540011D501910008098132178D0230000D22320083F -S31540011D60C1030000C303200885A008A1C5230000C4 -S31540011D7081C3E008D0030000191000809813217830 -S31540011D80D0230000D2232008C1030000C30320084A -S31540011D9085A00921C523000081C3E008D0030000C6 -S31540011DA01910008098132178D0230000D2232008EF -S31540011DB0C1030000C303200885A009A1C523000073 -S31540011DC081C3E008D00300001910008098132178E0 -S31540011DD0D0230000C103000083A00520C3230000D7 -S31540011DE081C3E008D0030000131000809212619075 -S31540011DF0C51A6008C11A400089A0084091A108C2CD -S31540011E0095A209C495A2894281C3E008D53A00004A -S31540011E1013100080921261B0C1024000C3026004F7 -S31540011E2085A0082087A088A189A0C9A289A10921E6 -S31540011E3081C3E008C92200009610200213100080D9 -S31540011E4092126190151000809412A190D502400023 -S31540011E50D7028000D5220000D8020000131000806E -S31540011E60921261B096A2E00112BFFFF90100000093 -S31540011E7081C3E008010000001310008092126190B6 -S31540011E80151000809412A1B0C1028000C51A6010DD -S31540011E9083A0082089A088C08BA109A18DA10942F0 -S31540011EA08FA1492691A0054681C3E008D13A000099 -S31540011EB01110008090122188C11A0000C51A000035 -S31540011EC0C91A0000CD1A0000D11A0000D51A000027 -S31540011ED0D91A0000DD1A0000E11A0000E51A0000D7 -S31540011EE0E91A0000ED1A0000F11A0000F51A000087 -S31540011EF0F91A0000FD1A000081C3E0080100000044 -S31540011F0029100080A815215827100080A614E1C089 -S31540011F10C12CC000E604C000A134E00EA00C20078D -S31540011F20A0A42002AE1020002D100080AC15A1C047 -S31540011F30AE05E001AC05A008C1358000C12D000009 -S31540011F40EA050000AB35600DAA8D600112BFFFF9AD -S31540011F5001000000808000100280002F2B3C1FFFF3 -S31540011F60AA1563FFA60CC015E6250000C10D0000A9 -S31540011F702B100080AA1561CC2D100047AC15A3E0AB -S31540011F80AE25E001E0054000E025800081D8200033 -S31540011F9001000000010000000100000001000000F6 -S31540011FA001000000010000000100000001000000E6 -S31540011FB001000000010000000100000001000000D6 -S31540011FC001000000010000000100000001000000C6 -S31540011FD001000000010000000100000001000000B6 -S31540011FE00000000080A5C00012BFFFE6AA056008F8 -S31540011FF0C12D0000E60500002B03C000A614C01544 -S31540012000E6250000C10D000081C4400081CC80005E -S315400120100100000081C4800081CCA00401000000C1 -S315400120200100000081C3E008915800000100000052 -S315400120301110008090122158C10A0000C0220000F0 -S31540012040C10A0000C12A0000D40200001300038027 -S31540012050942A800980A0000A3280004D9010200306 -S315400120601303E000D223BFA0C023BFA4C10BBFA06E -S31540012070C023BFA0151000809412A170C102800038 -S315400120800100000001000000C10BBFA0C10BBFA4AD -S3154001209083A00520C12BBFA0D003BFA0808A220008 -S315400120A02280003B901020049010200015100080E3 -S315400120B09412A140C5028000C902A008D102A00C19 -S315400120C01310008092126170C70240008DA08944AE -S315400120D081A98AC8010000000380000501000000B3 -S315400120E0901020011080002A01000000C5028000E6 -S315400120F0C902A008D102A00C13100080921261708F -S31540012100CB0240008DA0894481A98AC80100000004 -S315400121100380000501000000901020011080001C82 -S315400121200100000025100080A414A168C11C800094 -S31540012130C51C800080A000003280000685A008C032 -S3154001214081A80AC2010000001380000301000000BB -S31540012150901020050100000025100080A414A168FC -S31540012160C11C8000C51C800080A000000100000049 -S315400121703280000685A008C081A80AC2010000007D -S3154001218013800003010000009010200701000000A9 -S3154001219081C3E00801000000901020019544000031 -S315400121A09532A01E940AA00380A2800002800040BE -S315400121B09010200080A2A0030280003D13100080F1 -S315400121C0921261F0C11A4000C51A6008FD026018FA -S315400121D095A0003E99A0003E9DA0003E170000C07C -S315400121E09612E078A182C0000100000001000000C3 -S315400121F00100000001000000010000000100000094 -S3154001220081A0002083A0002195A0002A99A0002C3E -S315400122109DA0002E170000C09612E07CA182C0004E -S315400122200100000001000000010000000100000063 -S31540012230010000000100000085A0002287A00023C4 -S31540012240A180000001000000010000000100000023 -S3154001225001000000010000000100000089A00842C1 -S31540012260A9A2883ED93A4000DD224000CD1A60102D -S31540012270D102600881A90A46010000000380000CD2 -S3154001228081AD0A2801000000038000099344000043 -S315400122909332601B920A60079010200080A2A00131 -S315400122A002800003902260079022600481C3E00807 -S315400122B001000000C12BBFA081C3E008D003BFA02D -S315400122C0D023BFA081C3E008C10BBFA0010000001D -S315400122D09DE3BF6040001B19B0102000913A200ACF -S315400122E0900A200380A220011280111101000000F2 -S315400122F07FFFBBBE9010200D190C40291B23CD1B1F -S315400123009410200096102000981320069A13609B83 -S31540012310D43FBFE0D43FBFC0D43FBFE87FFFFF42B9 -S31540012320D83FBFF0900A3000032804009012208065 -S315400123308210600FC22200001B1000479002200449 -S315400123409A1363009A234008191000009B3B6002D0 -S31540012350032784009A13400C82106010C222200485 -S315400123607FFFFED4DA2200007FFFFFD61103E00093 -S315400123702D100080C025A1C07FFFFDD49010200004 -S31540012380809200091280000601000000C205A1C02A -S3154001239080A0600002800004010000007FFFBB981E -S315400123A09010200B7FFFFDC990103FFA03300600C5 -S315400123B080A200011280000480A2600002800EDB30 -S315400123C0010000007FFFBB8E9010200B7FFFFDBFF9 -S315400123D09010201403100D0080A200011280000409 -S315400123E080A2600002800ECC010000007FFFBB840A -S315400123F09010200B7FFFFDB5901020620310162030 -S3154001240080A200011280000480A2600002800EBDFD -S31540012410010000007FFFBB7A9010200B7FFFFDB3C8 -S31540012420901020050310280080A2000112800006AA -S3154001243001000000C205A1C080A060000280000426 -S31540012440010000007FFFBB6E9010200B7FFFFF9DB8 -S315400124501103C000111C00007FFFFDAC921020004B -S31540012460031FFFFF821063FF80A200011280000A52 -S315400124701B000070C205A1C09A13601F190000100D -S315400124808208400D9813201080A0400C0280000560 -S31540012490113C00007FFFBB5A9010200C113C0000FC -S315400124A07FFFFD9A921020000320000080A20001C8 -S315400124B01280000A1B000070C205A1C09A13601F5A -S315400124C0190000108208400D9813201080A0400C7E -S315400124D002800004010000007FFFBB499010200CE0 -S315400124E0C025A1C0901020007FFFFD8892102000DA -S315400124F080A220001280000601000000C205A1C092 -S3154001250080A0600002800005110144007FFFBB3CB2 -S315400125109010200C11014400132840009012230210 -S315400125207FFFFD7A9212600180A220001280000690 -S3154001253001000000C205A1C080A060002280000504 -S315400125401111FFFF7FFFBB2E9010200C1111FFFFD1 -S315400125507FFFFD76901223FF0300007F821063FF09 -S3154001256080A200011280000601000000C205A1C040 -S3154001257080A06000028000052F1000857FFFBB20F0 -S315400125809010200C2F1000857FFFFD60D01DE0C804 -S31540012590031FFFFF821063FF80A200011280000A21 -S315400125A01B000070C205A1C09A13601F19000010DC -S315400125B08208400D9813201080A0400C028000052F -S315400125C0031000857FFFBB0E9010200C0310008581 -S315400125D0D01860D8C025A1C07FFFFD4C0100000086 -S315400125E00320000080A200011280000A1B00007037 -S315400125F0C205A1C09A13601F190000108208400D40 -S315400126009813201080A0400C028000051910008507 -S315400126107FFFBAFB9010200C19100085C025A1C080 -S315400126207FFFFD3AD01B20B8031FFFFF821063FFD7 -S3154001263080A200011280000A1B000070C205A1C0E1 -S315400126409A13601F190000108208400D981320103C -S3154001265080A0400C02800005331000857FFFBAE858 -S315400126609010200C33100085C025A1C07FFFFD27A7 -S31540012670D01E60F0C205A1C08330600E820860039F -S3154001268080A0600202800004211000807FFFBADC36 -S315400126909010200C7FFFFF0B1103C000111158044D -S315400126A0C02421C07FFFFD299012223403102B0044 -S315400126B08210624680A200011280000503200000BC -S315400126C080A2400102800FC5010000007FFFBACC05 -S315400126D09010200D113C02AF7FFFFD1C901220D1BE -S315400126E0033180558210639A80A200011280000551 -S315400126F00308000080A2400102800FDB01000000B8 -S315400127007FFFBABF9010200D1111FC007FFFFD170E -S3154001271092102000031FE00080A200011280000AEF -S315400127201B000070C205A1C09A13601F190000105A -S315400127308208400D9813200880A0400C02800005B5 -S3154001274011207C017FFFBAAE9010200D11207C0133 -S31540012750C025A1C0901220307FFFFD041300010067 -S315400127600320000080A200011280000A1B000070B5 -S31540012770C205A1C09A13601F190000108208400DBE -S315400127809813200480A0400C028000040100000040 -S315400127907FFFBA9B9010200DC025A1C0901020004C -S315400127A07FFFFCF29210200080A2200012800006DA -S315400127B001000000C205A1C080A0600002800004A3 -S315400127C0010000007FFFBA8E9010200D7FFFFCE7CD -S315400127D0D01DE0C803100085DA0060C080A2000D5C -S315400127E01280000601000000C205A1C080A0600061 -S315400127F0028000051B1000857FFFBA819010200DD5 -S315400128001B1000857FFFFCD9D01B60D0031FE00061 -S3154001281080A200011280000601000000C205A1C08D -S3154001282080A0600002800005031000857FFFBA7416 -S315400128309010200D031000857FFFFCCCD01860B8A6 -S3154001284003100085DA0060A880A2000D1280000AFC -S315400128501B000070C205A1C09A13601F1900001029 -S315400128608208400D9813201080A0400C028000047D -S31540012870010000007FFFBA629010200DC025A1C063 -S315400128807FFFFCBAD01E60F0C205A1C08330600E46 -S315400128908208600380A06002028000042310008049 -S315400128A07FFFBA579010200D7FFFFE861103E0008F -S315400128B02108C6AF901420DEC02461C07FFFFCB35F -S315400128C0A01420DE80A20010128000060100000044 -S315400128D0C20461C080A06000028000052108C6AF25 -S315400128E07FFFBA479010200E2108C6AF7FFFFCB785 -S315400128F0901420DEA01420DE80A200101280000673 -S3154001290001000000C205A1C080A060002280000530 -S315400129101128C6AF7FFFBA3A9010200E1128C6AFD4 -S315400129207FFFFCAA901220DE0308C6AF821060DE4C -S3154001293080A200011280000601000000C205A1C06C -S3154001294080A06000228000051108C6AF7FFFBA2C27 -S315400129509010200E1108C6AF7FFFFC94901220DE26 -S315400129600328C6AF821060DE80A2000112800006F5 -S3154001297001000000C205A1C080A0600022800005C0 -S315400129801128C6AF7FFFBA1E9010200E1128C6AF80 -S315400129907FFFFC86901220DE0308C6AF821060DE00 -S315400129A080A200011280000601000000C205A1C0FC -S315400129B080A0600002800004010000007FFFBA1081 -S315400129C09010200E7FFFFE3F1103E00011151BC042 -S315400129D01310C82115351BC01710C82190122103A9 -S315400129E0921261419412A1037FFFFC809612E1414C -S315400129F080A220021280000601000000C205A1C08B -S31540012A0080A060000280000511351BC07FFFB9FC24 -S31540012A109010200F11351BC01310C82115151BC06E -S31540012A201710C82190122103921261419412A103F9 -S31540012A307FFFFC6E9612E14180A2200112800006C2 -S31540012A4001000000C205A1C080A06000028000050F -S31540012A50901020007FFFB9EA9010200F90102000BF -S31540012A6092102000152000007FFFFC609610200088 -S31540012A7080A220001280000601000000C205A1C00C -S31540012A8080A0600002800005191000857FFFB9DC37 -S31540012A909010200F191000851B100085D01B20D0E7 -S31540012AA07FFFFC52D41B60D880A220021280000610 -S31540012AB001000000C205A1C080A06000028000059F -S31540012AC011151BC07FFFB9CE9010200F11151BC0E9 -S31540012AD01310C82115151BE81710C82190122103A0 -S31540012AE0921261419412A1037FFFFC409612E1418B -S31540012AF080A220011280000601000000C205A1C08B -S31540012B0080A060000280000511151BE87FFFB9BC5B -S31540012B109010200F11151BE81310C82115151BC065 -S31540012B201710C82190122103921261419412A103F8 -S31540012B307FFFFC2E9612E14180A220021280000600 -S31540012B4001000000C205A1C080A06000028000050E -S31540012B5011151BE87FFFB9AA9010200F11151BE82C -S31540012B601310C82190122103921261417FFFFC1F6D -S31540012B70D41DE0C880A22003128000060100000097 -S31540012B80C205A1C080A06000028000050310008537 -S31540012B907FFFB99B9010200F0310008511151BE88C -S31540012BA01310C82190122103921261417FFFFC0F3D -S31540012BB0D41860B880A220031280000A1B0000705E -S31540012BC0C205A1C09A13601F190000108208400D6A -S31540012BD09813201080A0400C0280000511151BE8B7 -S31540012BE07FFFB9879010200F11151BE81310C821DC -S31540012BF0C025A1C090122103921261417FFFFBFBC8 -S31540012C00D41E60F080A2200212800006010000005E -S31540012C10C205A1C080A060000280000515151BE811 -S31540012C207FFFB9779010200F15151BE81710C821A3 -S31540012C30D01E60F09412A1037FFFFBEC9612E14196 -S31540012C4080A220011280000601000000C205A1C039 -S31540012C5080A060000280000515151BE87FFFB9685A -S31540012C609010200F15151BE81710C821D01DE0C87C -S31540012C709412A1037FFFFBDD9612E14180A220035E -S31540012C801280000601000000C205A1C080A06000BC -S31540012C9002800005191000857FFFB9599010200F59 -S31540012CA01910008515151BE81710C821D01B20B82F -S31540012CB09412A1037FFFFBCD9612E14180A220032E -S31540012CC01280000A1B000070C205A1C09A13601F42 -S31540012CD0190000108208400D9813201080A0400C66 -S31540012CE00280000511151BC07FFFB9459010200FCA -S31540012CF011151BC01310C82115351BC01710C8214B -S31540012D00C025A1C090122103921261419412A103E0 -S31540012D107FFFFBC99612E14180A220021280000684 -S31540012D2001000000C205A1C080A06000028000052C -S31540012D3011351BC07FFFB9329010200F11351BC0D2 -S31540012D401310C82115151BC01710C8219012210355 -S31540012D50921261419412A1037FFFFBB79612E141A2 -S31540012D6080A220011280000601000000C205A1C018 -S31540012D7080A0600002800005901020007FFFB920EE -S31540012D809010200F90102000921020001520000076 -S31540012D907FFFFBA99610200080A22000128000062A -S31540012DA001000000C205A1C080A0600002800005AC -S31540012DB01B1000857FFFB9129010200F1B10008554 -S31540012DC003100085D01B60D07FFFFB9BD41860D8D1 -S31540012DD080A220021280000601000000C205A1C0A7 -S31540012DE080A060000280000511151BC07FFFB90459 -S31540012DF09010200F11151BC01310C82115151BE883 -S31540012E001710C82190122103921261419412A10315 -S31540012E107FFFFB899612E14180A2200112800006C4 -S31540012E2001000000C205A1C080A06000028000052B -S31540012E3011151BE87FFFB8F29010200F11151BE802 -S31540012E401310C82115151BC01710C8219012210354 -S31540012E50921261419412A1037FFFFB779612E141E1 -S31540012E6080A220021280000601000000C205A1C016 -S31540012E7080A060000280000511151BE87FFFB8E0C5 -S31540012E809010200F11151BE81310C8219012210331 -S31540012E90921261417FFFFB68D41DE0C880A22003E6 -S31540012EA01280000A1B000070C205A1C09A13601F60 -S31540012EB0190000108208400D9813201080A0400C84 -S31540012EC002800005191000857FFFB8CD9010200FB4 -S31540012ED01910008511151BE81310C8219012210302 -S31540012EE0921261417FFFFB54D41B20B880A220037C -S31540012EF01280000A1B000070C205A1C09A13601F10 -S31540012F00190000108208400D9813201080A0400C33 -S31540012F100280000511151BE87FFFB8B99010200FFC -S31540012F2011151BE81310C821C025A1C09012210319 -S31540012F30921261417FFFFB40D41E60F080A22002C5 -S31540012F401280000601000000C205A1C080A06000F9 -S31540012F500280000515151BE87FFFB8A99010200FC8 -S31540012F6015151BE81710C821D01E60F09412A10355 -S31540012F707FFFFB319612E14180A2200112800006BB -S31540012F8001000000C205A1C080A0600002800005CA -S31540012F9015151BE87FFFB89A9010200F15151BE8F1 -S31540012FA01710C821D01DE0C89412A1037FFFFB2250 -S31540012FB09612E14180A220031280000A1B00007094 -S31540012FC0C205A1C09A13601F190000108208400D66 -S31540012FD09813201080A0400C028000051B1000852C -S31540012FE07FFFB8879010200F1B10008515151BE831 -S31540012FF01710C821D01B60B89412A1037FFFFB0EA6 -S315400130009612E14180A220031280000A1B00007043 -S31540013010C205A1C09A13601F190000108208400D15 -S315400130209813201080A0400C02800005110048EA48 -S315400130307FFFB8739010200F110048EA13048D15D5 -S31540013040C025A1C0901223CD7FFFFB0C921262785E -S3154001305080A220011280000601000000C205A1C025 -S3154001306080A0600002800005110048EA7FFFB86435 -S315400130709010200F110048EA13048D15901223CDAC -S315400130807FFFFB0F9212627880A220011280000618 -S3154001309001000000C205A1C080A0600002800004BA -S315400130A0010000007FFFB8569010200FC025A1C037 -S315400130B07FFFFC841103C000291001449007BFF033 -S315400130C09207BFE87FFFFA3894152120C207BFF067 -S315400130D0DA05212080A0400D1280000782152120AB -S315400130E0DA006004C207BFF480A0400D02800D598A -S315400130F0010000007FFFB842901020103710008574 -S315400131009007BFF09216E0E07FFFFA279415212041 -S31540013110C206E0E0DA05212080A340018215212084 -S31540013120128000079816E0E0DA006004C20320042A -S3154001313080A3400102800D42010000007FFFB830AC -S31540013140901020109007BFF09215E0C87FFFFA1645 -S3154001315094152120C205E0C8DA05212080A340014B -S3154001316082152120128000079815E0C8DA00600414 -S31540013170C203200480A3400102800D2C01000000FF -S315400131807FFFB81F9010201003100085921060B881 -S315400131909007BFF07FFFFA04941521201B000070B1 -S315400131A0C205A1C09A13601F190000108208400D84 -S315400131B09813201080A0400C028000042110014485 -S315400131C07FFFB80F9010201003100080C02061C00F -S315400131D07FFFFC3C901020001310008594142120A1 -S315400131E0921260B87FFFF9F09007BFF03910008561 -S315400131F0C20720B0DA04212080A340019414212083 -S3154001320012800007821720B0DA02A004C2006004CF -S3154001321080A3400102800004010000007FFFB7F84F -S31540013220901020107FFFFC271103C0009007BFF0CC -S31540013230921660F07FFFF9DC94152120C205A1C0EA -S315400132408330600E8208600380A060022110014431 -S3154001325002800004231000807FFFB7E99010201000 -S3154001326094142120C02461C09007BFE87FFFF9CEA6 -S315400132709207BFF0DA042120C207BFF080A34001C4 -S315400132801280000794142120DA02A004C207BFF479 -S3154001329080A3400102800D21010000007FFFB7D8C5 -S315400132A0901020109007BFE89216E0E07FFFF9BE2C -S315400132B094152120C206E0E0DA05212080A34001D1 -S315400132C082152120128000079816E0E0DA0060049A -S315400132D0C203200480A3400102800D0B01000000BF -S315400132E07FFFB7C7901020109007BFE89215E0C83E -S315400132F07FFFF9AD94152120C205E0C8DA052120EA -S3154001330080A3400182152120128000079815E0C84C -S31540013310DA006004C203200480A3400102800CF558 -S31540013320010000007FFFB7B69010201019100085EC -S31540013330921320B89007BFE87FFFF99B941521208F -S315400133401B000070C205A1C09A13601F190000102E -S315400133508208400D9813201080A0400C0280000482 -S31540013360211001447FFFB7A6901020107FFFFBD5A7 -S31540013370901020001310008594142120921260B8F9 -S315400133807FFFF9899007BFE8C20720B0DA04212000 -S3154001339080A340019414212012800007821720B097 -S315400133A0DA02A004C200600480A340010280000446 -S315400133B0010000007FFFB792901020107FFFFBC1F4 -S315400133C01103C0009007BFE8921660F07FFFF976BF -S315400133D094152120C205A1C08330600E8208600386 -S315400133E080A0600221100144028000042310008065 -S315400133F07FFFB7839010201094142120C02461C010 -S315400134009016E0E07FFFF9689207BFF0C206E0E060 -S31540013410DA04212080A34001941421201280000760 -S315400134208216E0E0DA02A004C200600480A34001F3 -S3154001343002800CAB010000007FFFB7719010201095 -S315400134409016E0E09207BFE87FFFF95794152120D7 -S31540013450C206E0E0DA05212080A340018215212041 -S31540013460128000079816E0E0DA006004C2032004E7 -S3154001347080A3400102800C95010000007FFFB760E8 -S31540013480901020101B100085901360D092100008F8 -S315400134907FFFF9459415212019100085C20320D0DC -S315400134A0DA05212080A340018215212012800007E0 -S315400134B0981320D0DA006004C203200480A340019F -S315400134C002800C7D010000007FFFB74D9010201057 -S315400134D01B100085901360D8921000087FFFF932C7 -S315400134E09415212019100085C20320D8DA05212020 -S315400134F080A340018215212012800007981320D80D -S31540013500DA006004C203200480A3400102800C65F6 -S31540013510010000007FFFB73A901020101B10008574 -S3154001352003100085901360D8921060D07FFFF91E7A -S31540013530941521201B000070C205A1C09A13601F7B -S31540013540190000108208400D9813201080A0400CED -S3154001355002800004211001447FFFB72990102010FA -S315400135607FFFFB5890102000111000851310008535 -S3154001357094142120901220D87FFFF90B921260D02B -S31540013580C20720B0DA04212080A3400194142120EF -S3154001359012800007821720B0DA02A004C20060043C -S315400135A080A3400102800004010000007FFFB714A0 -S315400135B0901020107FFFFB431103C00019100085B6 -S315400135C01B100085901320D0921360D8C025A1C04E -S315400135D07FFFF8F594152120C20720B0DA05212096 -S315400135E080A340018215212012800007981720B040 -S315400135F0DA006004C203200480A3400102800C1F4C -S315400136001B0000707FFFB6FE901020109016E0E080 -S31540013610921660F07FFFF8E494152120C205A1C0FF -S315400136208330600E8208600380A06002211001444D -S3154001363002800004231000807FFFB6F19010201015 -S3154001364094142120C02461C09015E0C87FFFF8D6AC -S315400136509207BFF0C205E0C8DA04212080A34001E9 -S3154001366094142120128000078215E0C8DA02A004D2 -S31540013670C200600480A3400102800B9C010000004F -S315400136807FFFB6DF901020109015E0C89207BFE883 -S315400136907FFFF8C594152120C205E0C8DA0521202F -S315400136A080A3400182152120128000079815E0C8A9 -S315400136B0DA006004C203200480A3400102800B8625 -S315400136C0010000007FFFB6CE901020109015E0C893 -S315400136D09216E0E07FFFF8B494152120C205E0C8B8 -S315400136E0DA05212080A3400182152120128000079E -S315400136F09815E0C8DA006004C203200480A34001A3 -S3154001370002800B70010000007FFFB6BD90102010B3 -S315400137109015E0C8921000087FFFF8A39415212068 -S31540013720C205E0C8DA05212080A340018215212087 -S31540013730128000079815E0C8DA006004C20320042D -S3154001374080A3400102800B5A010000007FFFB6AC06 -S315400137509010201003100085921060B89015E0C8B3 -S315400137607FFFF8919415212003000070A610601F79 -S31540013770DA05A1C0030000109A0B4013AA1060108D -S3154001378080A34015231000852510014402800004C2 -S31540013790211000807FFFB69A90102010C02421C0CE -S315400137A0901460B89207BFF07FFFF87F9414A12070 -S315400137B0C20421C08208401380A040150280000443 -S315400137C0010000007FFFB68E90102010C02421C05A -S315400137D0901460B89207BFE87FFFF8739414A12054 -S315400137E0C20421C08208401380A040150280000413 -S315400137F0010000007FFFB68290102010C02421C036 -S31540013800901460B89216E0E07FFFF8679414A12007 -S31540013810C20421C08208401380A0401502800005E1 -S31540013820131000857FFFB676901020101310008587 -S31540013830C02421C0921260C8901460B87FFFF85A24 -S315400138409414A120C20421C08208401380A04015CF -S3154001385002800005901460B87FFFB6699010201071 -S31540013860901460B8C02421C0921000087FFFF84E22 -S315400138709414A120C20421C08208401380A040159F -S3154001388002800004010000007FFFB65D9010201009 -S31540013890C02421C0901460B8921660F07FFFF842B0 -S315400138A09414A120C20421C08330600E82086003B3 -S315400138B080A06002228000051103C0007FFFB65040 -S315400138C0901020101103C0007FFFFA7E3B10008448 -S315400138D0A2176210C02421C0AA14A120A40460101A -S315400138E0A0102000A6046008B010200C920400131A -S315400138F0900400117FFFF82C94152120DA048010E2 -S3154001390098040012C2052120A004201880A340017A -S315400139101280000790102010DA032004C2056004CB -S3154001392080A3400122800005B0863FFF7FFFB63469 -S3154001393001000000B0863FFF1CBFFFEE920400135A -S31540013940C205A1C080A06000128009890100000063 -S315400139501110008490122348920220087FFFF8122A -S315400139609415212098176210C2052120DA032148B7 -S3154001397080A340011280000782152120DA03214CE1 -S31540013980C200600480A3400122800AAB031000807C -S315400139907FFFB61B901020101110008490122360F7 -S315400139A0920220087FFFF800941521209817621093 -S315400139B0C2052120DA03216080A34001128000075D -S315400139C082152120DA032164C200600480A34001EC -S315400139D002800AA41B0000707FFFB60990102010D8 -S315400139E01110008490122378920220087FFFF7EE8F -S315400139F09415212098176210C2052120DA032178F7 -S31540013A0080A340011280000782152120DA03217C20 -S31540013A10C200600480A3400102800A9C1B00007022 -S31540013A207FFFB5F790102010C025A1C011100000EE -S31540013A3092102000150FFC007FFFF8B2961020006F -S31540013A40030FFC0080A200011280000880A26000E2 -S31540013A501280000601000000C205A1C080A06000DE -S31540013A6002800005111000007FFFB5E5901020107F -S31540013A701110000092102000152FFC007FFFF8A1C5 -S31540013A80961020000310020080A200011280000857 -S31540013A9080A260001280000601000000C205A1C09C -S31540013AA080A0600002800005113000007FFFB5D480 -S31540013AB0901020101130000092102000150FFC00CC -S31540013AC07FFFF890961020000330020080A200018B -S31540013AD01280000880A260001280000601000000EA -S31540013AE0C205A1C080A0600002800005113000001F -S31540013AF07FFFB5C3901020101130000092102000B6 -S31540013B00152FFC007FFFF87F96102000032FFC0045 -S31540013B1080A200011280000880A260001280000687 -S31540013B2001000000C205A1C080A06000028000051E -S31540013B30111000007FFFB5B2901020101110000047 -S31540013B407FFFF87A130FE0000310100080A20001F6 -S31540013B501280000601000000C205A1C080A06000DD -S31540013B6002800005111000007FFFB5A590102010BE -S31540013B70111000007FFFF877130FE000030FE000FC -S31540013B8080A200011280000601000000C205A1C00A -S31540013B9080A0600022800005191000857FFFB5983E -S31540013BA09010201019100085921320E8C025A1C05D -S31540013BB09007BFF07FFFF78F9415212019100085DC -S31540013BC0C20320D8DA05212080A340018215212095 -S31540013BD012800007981320D8DA006004C20320043B -S31540013BE080A3400102800A461B0000707FFFB58416 -S31540013BF0901020111B100085921360D0C025A1C0E2 -S31540013C009007BFF07FFFF77B94152120C207BFE0E5 -S31540013C10DA05212080A34001128000078215212068 -S31540013C20DA006004C207BFE480A3400102800A3E75 -S31540013C30010000007FFFB572901020119007BFF080 -S31540013C409215E0C87FFFF76B94152120C205E0C8A5 -S31540013C50DA05212080A34001821521201280000728 -S31540013C609815E0C8DA006004C203200480A340012D -S31540013C7002800A32010000007FFFB56190102011D9 -S31540013C8003100085921060B89007BFF07FFFF75987 -S31540013C9094152120C20720B0DA05212080A34001D6 -S31540013CA08215212012800007981720B0DA0060049F -S31540013CB0C203200480A3400102800A251B00007034 -S31540013CC07FFFB54F901020119007BFF0921660F01C -S31540013CD07FFFF74894152120C205A1C01B00007043 -S31540013CE08208400D1900002080A0400C211001449B -S31540013CF002800004231000807FFFB54190102011FF -S31540013D0094142120C02461C09007BFE87FFFF73992 -S31540013D109207BFF0DA042120C207BFE880A3400121 -S31540013D201280000794142120DA02A004C207BFECD6 -S31540013D3080A3400102800A10010000007FFFB530D8 -S31540013D409010201119100085901320E89207BFE0CA -S31540013D507FFFF72894152120C20720B0DA052120DC -S31540013D6080A340018215212012800007981720B0B8 -S31540013D70DA006004C203200480A3400102800A03E2 -S31540013D801B0000707FFFB51E901020111B1000858F -S31540013D9003100085901360E8921060D0C025A1C041 -S31540013DA07FFFF7149415212019100085C20320E8DE -S31540013DB0DA05212080A340018215212012800007C7 -S31540013DC0981320E8DA006004C203200480A340016E -S31540013DD0028009F8010000007FFFB509901020110B -S31540013DE09007BFE89215E0C87FFFF702941521209E -S31540013DF0C205E0C8DA05212080A3400182152120B1 -S31540013E00128000079815E0C8DA006004C203200456 -S31540013E1080A34001028009EC010000007FFFB4F855 -S31540013E20901020071B100085921360B89007BFE8D9 -S31540013E307FFFF6F09415212025000070D805A1C01A -S31540013E409A14A01F03000010980B000D82106010F9 -S31540013E5080A3000121100144028000042310008048 -S31540013E607FFFB4E790102011C02461C09007BFE8DE -S31540013E70921660F07FFFF6DF94142120C20461C0E0 -S31540013E80820840121B00002080A0400D22800005C0 -S31540013E90031000857FFFB4DA9010201103100085CE -S31540013EA0901060D894142120C02461C07FFFF6D1C0 -S31540013EB09207BFF019100085C20320D8DA042120E9 -S31540013EC080A340019414212012800007821320D838 -S31540013ED0DA02A004C200600480A34001028008B84F -S31540013EE0010000007FFFB4C6901020111B10008511 -S31540013EF003100085901360D8921060E87FFFF6BDED -S31540013F009415212019100085C20320D0DA052120FD -S31540013F1080A340018215212012800007981320D0EA -S31540013F20DA006004C203200480A34001028008A98C -S31540013F30010000007FFFB4B2901020119016E0E01E -S31540013F40921000087FFFF6AB94152120C20720B0DE -S31540013F50DA05212080A34001821521201280000725 -S31540013F60981720B0DA006004C203200480A3400100 -S31540013F700280089D1B0000707FFFB4A190102011A4 -S31540013F80C025A1C09016E0E09215E0C87FFFF699E2 -S31540013F9094152120C205E0C8DA05212080A34001FD -S31540013FA082152120128000079815E0C8DA006004C6 -S31540013FB0C203200480A3400102800894010000004E -S31540013FC07FFFB48F901020111B100085921360B8AB -S31540013FD09016E0E07FFFF68794152120C20720B0B6 -S31540013FE0DA05212080A34001821521201280000795 -S31540013FF0981720B0DA006004C203200480A3400170 -S31540014000028008871B0000707FFFB47D901020114D -S31540014010C025A1C09016E0E0921660F07FFFF675CC -S3154001402094152120C205A1C01B0000708208400DD5 -S315400140301900002080A0400C23100080028000045B -S31540014040211001447FFFB46E901020119414212059 -S31540014050C02461C09015E0C87FFFF6669207BFF0A5 -S31540014060C205E0C8DA04212080A34001941421202E -S31540014070128000078215E0C8DA02A004C20060047B -S3154001408080A340010280086F010000007FFFB45CFD -S31540014090901020119015E0C89207BFE87FFFF655B2 -S315400140A094152120C205E0C8DA05212080A34001EC -S315400140B082152120128000079815E0C8DA006004B5 -S315400140C0C203200480A3400102800863010000006E -S315400140D07FFFB44B901020119015E0C89216E0E096 -S315400140E07FFFF64494152120C205E0C8DA05212058 -S315400140F080A3400182152120128000079815E0C84F -S31540014100DA006004C203200480A3400102800857FC -S31540014110010000007FFFB43A901020119015E0C8CD -S31540014120921000087FFFF63394152120C205E0C89E -S31540014130DA05212080A34001821521201280000743 -S315400141409815E0C8DA006004C203200480A3400148 -S31540014150028007F3010000007FFFB429901020116F -S3154001416003100085921060B89015E0C87FFFF621D4 -S3154001417094152120C20720B0DA05212080A34001F1 -S315400141808215212012800007981720B0DA006004BA -S31540014190C203200480A34001028007E61B00007091 -S315400141A07FFFB417901020119015E0C8921660F069 -S315400141B07FFFF61094152120C205A1C03100007081 -S315400141C0820840183B00002080A0401D2310014476 -S315400141D002800004211000807FFFB4099010201155 -S315400141E019100085901320B89207BFF07FFFF601A2 -S315400141F094146120C20421C0AA16201F3500001064 -S3154001420082084015A616A01080A040130280000423 -S31540014210251000857FFFB3FA90102011C02421C0DC -S315400142209014A0B89207BFE87FFFF5F2941461207D -S31540014230C20421C08208401580A0401302800004B8 -S31540014240010000007FFFB3EE90102011C02421C071 -S315400142509014A0B89216E0E07FFFF5E69414612031 -S31540014260C20421C08208401580A040130280000587 -S31540014270131000857FFFB3E29010201113100085C3 -S31540014280C02421C0921260C89014A0B87FFFF5D90E -S3154001429094146120C20421C08208401580A04013B5 -S315400142A0028000059014A0B87FFFB3D5901020116D -S315400142B09014A0B8C02421C0921000087FFFF5CD0C -S315400142C094146120C20421C08208401580A0401385 -S315400142D002800005131000857FFFB3C9901020119D -S315400142E013100085C02421C09014A0B8921260F02A -S315400142F07FFFF5C094146120C20421C08208401892 -S3154001430080A0401D2280000515203E837FFFB3BC5F -S315400143109010201115203E83170021C89412A3FF47 -S315400143209612E3A1191FC0001B00C0009A1360B08A -S3154001433098132102D43FBFD0D83FBFD8C02421C053 -S315400143409007BFD89207BFD07FFFF5AA9407BFC891 -S31540014350DA07BFC8033FFC0080A340010280070B78 -S31540014360A207BFC87FFFB3A6901020111510868300 -S31540014370170021C89412A3FF9612E3A11900400029 -S315400143801B00C0009A1360B098132102D43FBFD0DE -S31540014390D83FBFD8C025A1C09007BFD89207BFD08C -S315400143A07FFFF5949407BFC8DA046004C207BFC80B -S315400143B08090400D1280000A1B000070C205A1C00A -S315400143C09A13601F190000108208400D98132004AB -S315400143D080A0400C22800005150FFC007FFFB388AA -S315400143E090102011150FFC00170281D89412A0409D -S315400143F09612E10C9A102010190006AFD43FBFD097 -S31540014400D83FBFD8C025A1C09007BFD89207BFD01B -S315400144107FFFF5789407BFC8030006AEDA07BFC829 -S315400144208210639580A340011280000703003A9AE7 -S31540014430DA0460048210630F80A3400102800733CF -S31540014440010000007FFFB36E90102011150FFFFF92 -S31540014450170281D89412A3409612E10C9A102010AB -S31540014460190006AFD43FBFD0D83FBFD8C025A1C0A1 -S315400144709007BFD89207BFD07FFFF55E9407BFC8AC -S31540014480DA046004C207BFC88090400D1280000A5A -S315400144901B000070C205A1C09A13601F19000010CD -S315400144A08208400D9813200480A0400C028000042D -S315400144B0010000007FFFB35290102011C025A1C01A -S315400144C0111088007FFFF63713100100031066C9EB -S315400144D0821062CA80A2000112800006010000001B -S315400144E0C205A1C080A06000028000051111BBFE7B -S315400144F07FFFB343901020111111BBFE901223FF91 -S315400145007FFFF628130C7040031527CA8210611EDF -S3154001451080A200011280000601000000C205A1C070 -S3154001452080A06000028000051310C7FF7FFFB334EF -S31540014530901020111310C7FF921263FC7FFFF619EA -S31540014540111E607E031D73FC8210633880A2000138 -S315400145501280000601000000C205A1C080A06000D3 -S3154001456002800005130FE0007FFFB3259010201154 -S31540014570130FE000921260017FFFF60A110020003E -S3154001458080A220001280000A1B000070C205A1C053 -S315400145909A13601F190000108208400D98132004D9 -S315400145A080A0400C02800005110FE0007FFFB3148C -S315400145B090102011110FE000C025A1C07FFFF5F931 -S315400145C092100008030FE00080A20001128000064D -S315400145D001000000C205A1C080A060000280000564 -S315400145E0130FE0007FFFB30690102011130FE00078 -S315400145F0921260017FFFF5EB1100200080A220009E -S315400146001280000A1B000070C205A1C09A13601FE8 -S31540014610190000108208400D9813200480A0400C18 -S31540014620028000051B1000857FFFB2F59010201116 -S315400146301B100085921360E8C025A1C09007BFF00A -S315400146407FFFF4DE9415212019100085C20320E86E -S31540014650DA05212080A3400182152120128000071E -S31540014660981320E8DA006004C203200480A34001C5 -S31540014670028006BA010000007FFFB2E190102012CD -S315400146801B100085921360D09007BFF07FFFF4CBDB -S315400146909415212019100085C20320D0DA05212066 -S315400146A080A340018215212012800007981320D053 -S315400146B0DA006004C203200480A34001028006ACF4 -S315400146C0010000007FFFB2CE901020129007BFF08C -S315400146D09215E0C87FFFF4B994152120C205E0C8C0 -S315400146E0DA05212080A3400182152120128000078E -S315400146F09815E0C8DA006004C203200480A3400193 -S31540014700028006A0010000007FFFB2BD901020127A -S315400147101B100085921360B89007BFF07FFFF4A786 -S3154001472094152120C20720B0DA05212080A340013B -S315400147308215212012800007981720B0DA00600404 -S31540014740C203200480A34001028006931B0000702F -S315400147507FFFB2AB901020129007BFF0921660F027 -S315400147607FFFF49694152120C205A1C01B0000705D -S315400147708208400D1900002080A0400C2110014400 -S3154001478002800004231000807FFFB29D901020120A -S3154001479094142120C02461C09007BFE87FFFF487AD -S315400147A09207BFF0DA042120C207BFE880A3400187 -S315400147B01280000794142120DA02A004C207BFEC3C -S315400147C080A34001028006DE010000007FFFB28C1B -S315400147D0901020120310008519100085901060E892 -S315400147E0921320D87FFFF47594152120C20720B07B -S315400147F0DA05212080A3400182152120128000077D -S31540014800981720B0DA006004C203200480A3400157 -S31540014810028006D01B0000707FFFB27990102012F3 -S31540014820C025A1C09007BFE89215E0C87FFFF46399 -S3154001483094152120C205E0C8DA05212080A3400154 -S3154001484082152120128000079815E0C8DA0060041D -S31540014850C203200480A34001028006C70100000074 -S315400148607FFFB267901024991B100085921360B8A0 -S315400148709007BFE87FFFF45194152120C20720B06D -S31540014880DA05212080A340018215212012800007EC -S31540014890981720B0DA006004C203200480A34001C7 -S315400148A0028006BA1B0000707FFFB255901020129D -S315400148B09007BFE8921660F07FFFF44094152120DF -S315400148C0C205A1C01B0000708208400D19000020DE -S315400148D080A0400C21100144028000042310008076 -S315400148E07FFFB2479010201294142120C02461C04A -S315400148F09016E0E07FFFF4319207BFF0C206E0E098 -S31540014900DA04212080A3400194142120128000075B -S315400149108216E0E0DA02A004C200600480A34001EE -S31540014920028006A4010000007FFFB23590102012DC -S315400149309016E0E09207BFE87FFFF420941521200E -S31540014940C20720B0DA05212080A34001821521202B -S3154001495012800007981720B0DA006004C2032004D1 -S3154001496080A34001028006981B0000707FFFB2249D -S3154001497090102012C025A1C09016E0E09215E0C823 -S315400149807FFFF40E94152120C205E0C8DA052120E7 -S3154001499080A3400182152120128000079815E0C8A6 -S315400149A0DA006004C203200480A340010280068F1E -S315400149B0010000007FFFB212901020120310008503 -S315400149C0921060B89016E0E07FFFF3FC9415212029 -S315400149D0C20720B0DA05212080A34001821521209B -S315400149E012800007981720B0DA006004C203200441 -S315400149F080A34001028006821B0000707FFFB20047 -S31540014A00901020129016E0E0921660F07FFFF3EBD3 -S31540014A1094152120C205A1C01B0000708208400DDB -S31540014A201900002080A0400C21100144028000049E -S31540014A30231000807FFFB1F29010201294142120A0 -S31540014A40C02461C09015E0C87FFFF3DC9207BFF038 -S31540014A50C205E0C8DA04212080A340019414212034 -S31540014A60128000078215E0C8DA02A004C200600481 -S31540014A7080A340010280061E010000007FFFB1E0D5 -S31540014A80901020129015E0C89207BFE87FFFF3CB44 -S31540014A9094152120C205E0C8DA05212080A34001F2 -S31540014AA082152120128000079815E0C8DA006004BB -S31540014AB0C203200480A340010280061201000000C7 -S31540014AC07FFFB1CF901020129015E0C89216E0E01A -S31540014AD07FFFF3BA94152120C205E0C8DA052120EB -S31540014AE080A3400182152120128000079815E0C855 -S31540014AF0DA006004C203200480A340010280060656 -S31540014B00010000007FFFB1BE901020129015E0C851 -S31540014B10921000087FFFF3A994152120C205E0C831 -S31540014B20DA05212080A34001821521201280000749 -S31540014B309815E0C8DA006004C203200480A340014E -S31540014B40028005FA010000007FFFB1AD90102012EE -S31540014B50191000859015E0C8921320B87FFFF3978E -S31540014B609415212003000070A610601FDA05A1C02C -S31540014B70030000109A0B4013AA10601080A3401541 -S31540014B802510008523100144028000042110008075 -S31540014B907FFFB19B90102012C02421C09014A0B871 -S31540014BA09207BFF07FFFF38594146120C20421C0B0 -S31540014BB08208401380A040150280000401000000D5 -S31540014BC07FFFB18F90102012C02421C09014A0B84D -S31540014BD09207BFE87FFFF37994146120C20421C094 -S31540014BE08208401380A040150280000401000000A5 -S31540014BF07FFFB18390102012C02421C09014A0B829 -S31540014C009216E0E07FFFF36D94146120C20421C047 -S31540014C108208401380A040150280000513100085CC -S31540014C207FFFB1779010201213100085C02421C058 -S31540014C30921260C89014A0B87FFFF360941461206B -S31540014C40C20421C08208401380A04015028000059D -S31540014C509014A0B87FFFB16A901020129014A0B8AA -S31540014C60C02421C0921000087FFFF35494146120A0 -S31540014C70C20421C08208401380A04015028000046E -S31540014C80010000007FFFB15E90102012C02421C0B8 -S31540014C909014A0B8921660F07FFFF34894146120F7 -S31540014CA0C20421C08330600E8208600380A0600286 -S31540014CB0228000051103C0007FFFB15190102012E0 -S31540014CC01103C0007FFFF57F3B100084A41763905A -S31540014CD0AA146120C02421C0A604A008A210200065 -S31540014CE0B0102005A00440129204401394152120CF -S31540014CF07FFFF33290100010DA042010C205212004 -S31540014D00A204601880A3400112800007901020126F -S31540014D10DA042014C205600480A3400102800474B1 -S31540014D20010000007FFFB13601000000B0863FFF61 -S31540014D303CBFFFEEA00440121110008590122020C6 -S31540014D40920220087FFFF31D941521209817639046 -S31540014D50C2052120DA0320A080A34001128000076A -S31540014D6082152120DA0320A4C200600480A34001F9 -S31540014D70028004DC1B0000707FFFB12190102012DD -S31540014D801110008590122038C025A1C0920220083A -S31540014D907FFFF30A9415212098176390C2052120BD -S31540014DA0DA0320B880A34001128000078215212032 -S31540014DB0DA0320BCC200600480A340010280047F64 -S31540014DC01B0000707FFFB10E90102012111000855C -S31540014DD090122050C025A1C0920220087FFFF2F711 -S31540014DE09415212098176390C2052120DA0320D01B -S31540014DF080A340011280000782152120DA0320D4C6 -S31540014E00C200600480A34001028004761B0000704A -S31540014E107FFFB0FB90102012111000859012206880 -S31540014E20C025A1C0920220087FFFF2E494152120FB -S31540014E3098176390C2052120DA0320E880A3400138 -S31540014E401280000782152120DA0320ECC20060049B -S31540014E5080A340010280046D1B0000707FFFB0E813 -S31540014E60901020121110008590122080C025A1C0FB -S31540014E70920220087FFFF2D1941521209817639062 -S31540014E80C2052120DA03210080A3400112800007D8 -S31540014E9082152120DA032104C200600480A3400167 -S31540014EA0028004641B0000707FFFB0D59010201271 -S31540014EB0C025A1C0111010007FFFF3B013100000F0 -S31540014EC00310300080A2000112800006010000009C -S31540014ED0C205A1C080A0600002800005111FE0004C -S31540014EE07FFFB0C790102012111FE0001310000081 -S31540014EF07FFFF2B794152120031FFC00DA0521201C -S31540014F0080A340011280000A82152120C20060045C -S31540014F1080A060001280000601000000C205A1C009 -S31540014F2080A0600002800005111FE0007FFFB0B441 -S31540014F309010201B111FE000133000007FFFF2A4E8 -S31540014F4094152120033FFC00DA05212080A340016E -S31540014F501280000A82152120C200600480A06000F0 -S31540014F601280000601000000C205A1C080A06000B9 -S31540014F7002800005111000007FFFB0A19010201C97 -S31540014F8011100000921020107FFFF29194152120FC -S31540014F90C205A1C01B0000708208400D1900002007 -S31540014FA080A0400C2110014402800004231000809F -S31540014FB07FFFB0939010201D94142120C02461C01E -S31540014FC0110020007FFFF282130FC000DA04212076 -S31540014FD0030E000080A340011280000A9414212090 -S31540014FE0C202A00480A060001280000601000000F9 -S31540014FF0C20461C080A0600002800005111FDFFF6E -S315400150007FFFB07F9010201E111FDFFF901223FFFC -S31540015010131000007FFFF26E941521200311FFFF4C -S31540015020821063FFDA05212080A340011280000728 -S3154001503082152120DA0060040338000080A3400174 -S3154001504002800405010000007FFFB06D9010201F13 -S31540015050111FD000130FF0007FFFF25D9415212040 -S315400150600311FC80DA05212080A340011280000A49 -S3154001507082152120C200600480A0600012800006D3 -S3154001508001000000C205A1C080A0600002800005A9 -S31540015090111FDFFF7FFFB05A90102021111FDFFF44 -S315400150A0901223FF921000087FFFF24994152120A8 -S315400150B00313FBFF821063FFDA05212080A3400121 -S315400150C01280000882152120DA00600403300000B6 -S315400150D08210602080A34001028003E401000000A9 -S315400150E07FFFB047901020207FFFF4761103C00068 -S315400150F0C025A1C09007BFE07FFFF2449215212051 -S31540015100C207BFE0DA05212080A3400112800007D3 -S3154001511082152120DA006004C207BFE480A3400162 -S31540015120028003D7010000007FFFB03590102013A5 -S315400151301B100085901360E87FFFF2349215212001 -S3154001514003100085DA0060E8C205212080A0400DE9 -S31540015150191000858215212012800007901320E83E -S31540015160DA006004C202200480A34001028003C920 -S31540015170010000007FFFB022901020131B10008514 -S31540015180901360D07FFFF2219215212019100085DE -S31540015190C20320D0DA05212080A3400182152120B7 -S315400151A012800007981320D0DA006004C20320045D -S315400151B080A34001028003BC010000007FFFB010C4 -S315400151C0901020131B100085901360D87FFFF20FBB -S315400151D092152120C20720B0DA05212080A3400183 -S315400151E08215212012800007981720B0DA0060044A -S315400151F0C203200480A34001028003B01B0000705B -S315400152007FFFAFFF9010201303100085901060B808 -S31540015210C025A1C07FFFF1FD92152120C20720B014 -S31540015220DA05212080A34001821521201280000742 -S31540015230981720B0DA006004C203200480A340011D -S315400152400280040F1B0000707FFFAFED901020130A -S31540015250C025A1C09015E0C87FFFF1EC9215212031 -S31540015260C2052120DA05E0C880A0400D8215212023 -S31540015270128000079015E0C8DA006004C2022004DB -S3154001528080A3400102800407010000007FFFAFDCDC -S3154001529090102013170C00089A10200019100C00CA -S315400152A015300F789612E001D83FBFF0D43FBFC00A -S315400152B09007BFF07FFFF1D592152120031004001E -S315400152C0DA05212080A340011280000A821521209F -S315400152D0C200600480A06000128000060100000048 -S315400152E0C205A1C080A06000028000059007BFC032 -S315400152F07FFFAFC3901020139007BFC07FFFF1C35C -S3154001530092152120C2052120DA0720B080A0400D48 -S315400153108215212012800007981720B0DA00600418 -S31540015320C203200480A34001028003E31B000070F6 -S315400153307FFFAFB390102013901660F07FFFF1B35B -S3154001534092152120C205A1C08330600E82086003F8 -S3154001535080A0600202800004211000807FFFAFA878 -S3154001536090102013C02421C07FFFF2981111F20042 -S315400153700310E80080A2000112800006010000002F -S31540015380C20421C080A06000028000040100000028 -S315400153907FFFAF9B901020137FFFF3CA11100000CF -S315400153A01101F5897FFFF289901221E20308E96430 -S315400153B080A200011280000601000000C205A1C0C2 -S315400153C080A0600002800004010000007FFFAF8CD6 -S315400153D0901020237FFFF27D1112A2080311410094 -S315400153E080A200011280000601000000C205A1C092 -S315400153F080A0600002800004010000007FFFAF80B2 -S31540015400901020237FFFF3AF110010009007BFF0EB -S31540015410921660F07FFFF1649415212003100C0071 -S31540015420DA05212080A340011280000A821521203D -S31540015430C200600480A060001280000601000000E6 -S31540015440C205A1C080A0600002800005901660F0F0 -S315400154507FFFAF6B90102014901660F09207BFC08B -S315400154607FFFF1569415212003200000DA05212003 -S3154001547080A340011280000A82152120C2006004E7 -S3154001548080A060001280000601000000C205A1C094 -S3154001549080A0600002800004010000007FFFAF5839 -S315400154A0901020147FFFF19190102001030FE0002E -S315400154B080A200011280000601000000C205A1C0C1 -S315400154C080A0600002800004010000007FFFAF4C15 -S315400154D0901020147FFFF17D90102001030FFC00F6 -S315400154E080A200011280000880A26000128000069E -S315400154F001000000C205A1C080A060000280000436 -S31540015500010000007FFFAF3E901020147FFFF36D36 -S315400155101110100019100085D41B20D07FFFF1F91E -S31540015520D01E60F003100085D03D2120DA0060D8FE -S31540015530C205212080A0400D191000858215212029 -S3154001554012800007901320D8DA006004C2022004BA -S3154001555080A3400102800361010000007FFFAF2864 -S31540015560901020227FFFF35711100000170400808E -S31540015570150F28009612E0F09A102000190FFC0032 -S31540015580D43FBFC0D83FBFF09007BFF09207BFC01E -S315400155907FFFF10594152120030FFC00DA05212038 -S315400155A080A340011280000682152120C2006004BA -S315400155B080A0600002800004010000007FFFAF1060 -S315400155C0901020157FFFF33F112000001700004087 -S315400155D0150014009612E0019A102000190FFC00E4 -S315400155E0D43FBFC0D83FBFF09007BFF09207BFC0BE -S315400155F07FFFF0ED94152120030FFC00DA052120F1 -S3154001560080A340011280000682152120C200600459 -S3154001561080A0600102800004010000007FFFAEF817 -S31540015620901020157FFFF32711300000170000402E -S31540015630152014009612E0019A102000192FFC0043 -S31540015640D43FBFC0D83FBFF09007BFF09207BFC05D -S315400156507FFFF0D594152120032FFC00DA05212088 -S3154001566080A340011280000682152120C2006004F9 -S3154001567080A0600102800004010000007FFFAEE0CF -S31540015680901020157FFFF30F11100000190FFC0039 -S315400156909A102000D83FBFF09007BFF09216E0E085 -S315400156A07FFFF0C194152120C206E0E0DA052120F2 -S315400156B080A3400182152120128000079816E0E060 -S315400156C0DA006004C203200480A340010280000482 -S315400156D0010000007FFFAECA901020157FFFF2F94E -S315400156E01120000017000040150014009612E00139 -S315400156F0190FFC009A102000D43FBFC0D83FBFF01D -S315400157009007BFF09216E0E07FFFF0A794152120A5 -S31540015710C206E0E0DA05212080A34001821521205E -S31540015720128000079816E0E0DA006004C203200404 -S3154001573080A3400102800004010000007FFFAEB05B -S31540015740901020157FFFF2DF113000001700004056 -S31540015750152014009612E0019A102000192FFC0022 -S31540015760D43FBFC0D83FBFF09007BFF09216E0E0EC -S315400157707FFFF08D94152120C2052120DA06E0E055 -S3154001578080A0400D82152120128000079016E0E08E -S31540015790DA006004C202200480A3400102800004B2 -S315400157A0010000007FFFAE96901020157FFFF2C5E5 -S315400157B01110000015100000961020019A102001CA -S315400157C0190FFC00D43FBFC0D83FBFF09007BFF0D0 -S315400157D09207BFC07FFFF079941521200310000086 -S315400157E0DA05212080A3400112800006821521207E -S315400157F0C200600480A06002028000040100000033 -S315400158007FFFAE7F901020157FFFF2AE1120000082 -S315400158109007BFF09207BFC07FFFF0689415212023 -S3154001582003100000DA05212080A340011280000602 -S3154001583082152120C200600480A06003028000041A -S31540015840010000007FFFAE6E901020157FFFF29D94 -S31540015850113000009A102001192FFC00D83FBFF0EB -S315400158609007BFF09207BFC07FFFF05494152120E7 -S3154001587003300000DA05212080A340011280000692 -S3154001588082152120C200600480A0600302800004CA -S31540015890010000007FFFAE5A901020157FFFF2896C -S315400158A011100000150FFC04172F26159412A01293 -S315400158B09612E231190FFEAE1B1CD2E89A13601103 -S315400158C098132154D43FBFC0D83FBFF09007BFF0D3 -S315400158D09207BFC07FFFF04794152120030FFEA713 -S315400158E082106296DA05212080A3400112800008C9 -S315400158F082152120DA006004032C1B348210602FAC -S3154001590080A3400102800004010000007FFFAE3CFD -S31540015910901020157FFFF26B112000009007BFF019 -S315400159209207BFC07FFFF03394152120030FFEA7D6 -S3154001593082106296DA05212080A340011280000878 -S3154001594082152120DA006004032C1B34821060305A -S3154001595080A3400102800004010000007FFFAE28C1 -S31540015960901020157FFFF25711300000192FFC04CB -S315400159701B2F26159A13623198132012D83FBFC0A8 -S315400159809007BFF09207BFC07FFFF01A9415212000 -S31540015990032FFEA782106296DA05212080A34001DB -S315400159A01280000882152120DA006004032C1B3482 -S315400159B08210603080A34001028000040100000093 -S315400159C07FFFAE0F901020157FFFF23E11100000B1 -S315400159D015101000961020009A102000191038005A -S315400159E0D43FBFC0D83FBFF09007BFF09207BFC0BA -S315400159F07FFFF0009415212003102400DA052120B1 -S31540015A0080A340011280000682152120C200600455 -S31540015A1080A0600002800004010000007FFFADF815 -S31540015A20901020157FFFF227112000009007BFF04C -S31540015A309207BFC07FFFEFEF94152120031024008A -S31540015A40DA05212080A3400112800006821521201B -S31540015A50C200600480A060000280000401000000D2 -S31540015A607FFFADE7901020157FFFF2161130000041 -S31540015A709007BFF09207BFC07FFFEFDE941521204C -S31540015A8003102400DA05212080A34001128000067C -S31540015A9082152120C200600480A0600002800004BB -S31540015AA0010000007FFFADD6901020157FFFF20563 -S31540015AB011100000210FE000110020007FFFF0B916 -S31540015AC09214200180A220001280012301000000CF -S31540015AD07FFFF1FC11200000110020007FFFF0B193 -S31540015AE09214200180A220001280011801000000BA -S31540015AF07FFFF1F411300000921420017FFFF0A9DD -S31540015B001100200080A220001280010D010000003A -S31540015B107FFFF1EC111000009A102000190FFC00D4 -S31540015B20D83FBFF09007BFF07FFFEFB89215212015 -S31540015B30C207BFF0DA05212080A340011280000789 -S31540015B4082152120DA006004C207BFF480A3400118 -S31540015B50028002A7010000007FFFADA99010201529 -S31540015B607FFFF1D8112000009007BFF07FFFEFA71C -S31540015B7092152120C207BFF0DA05212080A34001FA -S31540015B801280000782152120DA006004C207BFF4A3 -S31540015B9080A340010280029B010000007FFFAD9877 -S31540015BA0901020157FFFF1C7113000009007BFF01C -S31540015BB07FFFEF9692152120C207BFF0DA0521201B -S31540015BC080A340011280000782152120DA0060047B -S31540015BD0C207BFF480A340010280028F010000008A -S31540015BE07FFFAD87901020157FFFF1B611100000A1 -S31540015BF0030FDFFF901063FF7FFFF074A0100008D2 -S31540015C0080A2001002800004010000007FFFAD7CED -S31540015C10901020157FFFF1AB112000007FFFF06B44 -S31540015C2090100010030FE00080A2000102800004E2 -S31540015C30010000007FFFAD72901020157FFFF1A19A -S31540015C40113000007FFFF0619010001080A200101B -S31540015C5002800004010000007FFFAD69901020150D -S31540015C607FFFF198901020007FFFF0609015212072 -S31540015C70032FFE00DA05212080A340011280000691 -S31540015C8082152120C200600480A0600002800005C8 -S31540015C90211001447FFFAD5A901020162110014476 -S31540015CA07FFFF05C90142128DA042128032FF000AD -S31540015CB080A3400102800004A21421287FFFAD5039 -S31540015CC0901020167FFFF05D90100011DA04212814 -S31540015CD0030FE00080A340010280000401000000A0 -S31540015CE07FFFAD47901020167FFFF064901521206D -S31540015CF0030FFBF7821063F0DA05212080A34001F0 -S31540015D001280000882152120DA0060040303FF1285 -S31540015D108210604A80A3400102800005921660F01D -S31540015D207FFFAD3790102016921660F09007BFF0B6 -S31540015D307FFFEF3094152120C205A1C08330600E4C -S31540015D408208600780A060020280000519100046A3 -S31540015D507FFFAD2B901020171910004617100080B9 -S31540015D60DA02E1C8821321F880A0400DE00321F850 -S31540015D7002800004A212E1C87FFFAD2190102018D5 -S31540015D80C204600480A040100280000401000000AB -S31540015D907FFFAD1B90102018C204600880A06000F0 -S31540015DA01280007701000000C204600C80A06000F0 -S31540015DB01280006C010000007FFFEEE6010000004A -S31540015DC080A220010280019801000000190C40299F -S31540015DD01B23CD1B9A13609B981320069410200019 -S31540015DE096102000D83FBFF0D43FBFC07FFFEF2FB2 -S31540015DF09007BFF003100083A21062101B100081B0 -S31540015E0003100144A0136210A4106120B0102000B9 -S31540015E10832E2002DA044001DA27BFC09007BFC0B3 -S31540015E207FFFEF25921521209B2E2003D804000DDC -S31540015E30C2052120B00620019603401080A300012F -S31540015E401280000790102019DA02E004C204A0046F -S31540015E5080A340010280000580A620FF7FFFACE8B9 -S31540015E600100000080A620FF04BFFFEB832E200225 -S31540015E7003100083A41062101B100080031001441C -S31540015E80A2136210A6106120B0102000A12E20029C -S31540015E90C2048010C227BFC0921521207FFFEEDBCE -S31540015EA09007BFC0DA044010C2052120B006200287 -S31540015EB09804001180A34001128000079010201A17 -S31540015EC0DA032004C204E00480A3400102800005F5 -S31540015ED080A620FF7FFFACCA0100000080A620FFFC -S31540015EE024BFFFECA12E200230800211C205A1C0C1 -S31540015EF080A0600022BFFB8FB0863FFF30BFFB8A88 -S31540015F00C205A1C080A0600002BFF14501000000AA -S31540015F1030BFF141C205A1C080A0600002BFF13689 -S31540015F200100000030BFF132C205A1C080A060006F -S31540015F3002BFF1270100000030BFF1237FFFACB063 -S31540015F409010201530BFFEF37FFFACAD90102015A9 -S31540015F5030BFFEE87FFFACAA9010201530BFFEDDB2 -S31540015F607FFFACA79010201830BFFF947FFFACA4F1 -S31540015F709010201010BFF678111000847FFFACA05E -S31540015F809010201830BFFF89C207BFCC80A06000A7 -S31540015F9012BFF8F501000000C20421C08208401575 -S31540015FA09A16A00880A0400D12BFF8EF010000002C -S31540015FB010BFF8F015108683C205A1C09A13601F61 -S31540015FC0190000108208400D9813200880A0400C4B -S31540015FD012BFFB7D1110008510BFFB7F9012205030 -S31540015FE0C205A1C09A13601F190000108208400D16 -S31540015FF09813200880A0400C12BFFB861110008523 -S3154001600010BFFB8890122068C205A1C09A13601F79 -S31540016010190000108208400D9813200480A0400CFE -S3154001602012BFFB8F1110008510BFFB91901220808B -S31540016030C205A1C09A13601F190000108208400DC5 -S315400160409813200880A0400C12BFFB980100000065 -S3154001605030BFFB98C205A1C080A0600002BFFBFE15 -S31540016060111FD00030BFFBF9C205A1C080A060005E -S3154001607002BFFC1E0100000030BFFC1AC205A1C0D0 -S3154001608080A0600002BFFC2C1B10008530BFFC279E -S31540016090C205A1C080A0600002BFFC3A1B1000856A -S315400160A030BFFC35C205A1C080A0600002BFFC47DD -S315400160B01B10008530BFFC42C205A1C09A13601F68 -S315400160C0190000108208400D9813201080A0400C42 -S315400160D012BFFC4C0310008510BFFC4E901060B8F7 -S315400160E0C205A1C09A13601F190000108208400D15 -S315400160F09813200480A0400C12BFFB20111000858C -S3154001610010BFFB2290122038C205A1C080A06000BA -S3154001611022BFF8D0150FFFFF30BFF8CBC205A1C093 -S3154001612080A0600002BFF8100310008530BFF80B55 -S31540016130C205A1C09A13601F190000108208400DC4 -S315400161409813201080A0400C12BFF8169015E0C895 -S3154001615010BFF818921660F0C205A1C080A0600079 -S3154001616002BFF9491B10008530BFF944C205A1C0E1 -S3154001617080A0600002BFF9579007BFF030BFF952C7 -S31540016180C205A1C080A0600002BFF9631B10008553 -S3154001619030BFF95EC205A1C09A13601F19000010F5 -S315400161A08208400D9813201080A0400C12BFF96957 -S315400161B09007BFF010BFF96B921660F0C20461C040 -S315400161C080A0600002BFF74B1B10008530BFF74629 -S315400161D0C205A1C080A0600002BFF75A9016E0E058 -S315400161E030BFF755C205A1C09A13601F19000010B0 -S315400161F08208400D9813201080A0400C12BFF75F13 -S315400162000100000030BFF75FC205A1C080A0600059 -S3154001621002BFF76F1B10008530BFF76AC205A1C0E8 -S315400162209A13601F190000108208400D9813201020 -S3154001623080A0400C12BFF7750100000030BFF77512 -S31540016240C20461C080A0600002BFF7949015E0C807 -S3154001625030BFF78FC205A1C080A0600002BFF7A082 -S315400162609015E0C830BFF79BC205A1C080A0600071 -S3154001627002BFF7AC9015E0C830BFF7A7C205A1C071 -S315400162809A13601F190000108208400D98132010C0 -S3154001629080A0400C12BFFBED0100000030BFFBEDBA -S315400162A0C205A1C080A0600002BFFBFC170C00081C -S315400162B030BFFBF7C205A1C09A13601F1900001039 -S315400162C08208400D9813201080A0400C12BFFC1983 -S315400162D0901660F030BFFC1AC205A1C080A06000D4 -S315400162E002BFFCA10100000030BFFC9DC20461C099 -S315400162F080A0600002BFF9E59015E0C830BFF9E023 -S31540016300C205A1C080A0600002BFF9F19015E0C8A6 -S3154001631030BFF9ECC205A1C080A0600002BFF9FD03 -S315400163209015E0C830BFF9F8C205A1C080A0600051 -S3154001633002BFFA091910008530BFFA04C20461C0D0 -S3154001634080A0600002BFF9250310008530BFF92007 -S31540016350C205A1C09A13601F190000108208400DA2 -S315400163609813201080A0400C12BFF92C01000000A8 -S3154001637030BFF92CC205A1C080A0600002BFF93C24 -S315400163801B10008530BFF937C205A1C09A13601FA3 -S31540016390190000108208400D9813201080A0400C6F -S315400163A012BFF9429007BFE810BFF944921660F058 -S315400163B0C20461C080A0600002BFF95F9016E0E0B0 -S315400163C030BFF95AC205A1C09A13601F19000010C7 -S315400163D08208400D9813201080A0400C12BFF9642A -S315400163E00100000030BFF964C205A1C080A0600071 -S315400163F002BFF9740310008530BFF96FC205A1C011 -S315400164009A13601F190000108208400D981320103E -S3154001641080A0400C12BFF97A9016E0E010BFF97CDB -S31540016420921660F07FFFAB769010201910BFFE697F -S31540016430190C4029D80061C01B0000709A13601FD7 -S3154001644003000010980B000D8210600880A3000124 -S3154001645012BFF5501110008410BFF55290122360FF -S31540016460C205A1C09A13601F190000108208400D91 -S315400164709813200480A0400C12BFF55811100084D7 -S3154001648010BFF55A90122378C205A1C09A13601F16 -S31540016490190000108208400D9813200480A0400C7A -S315400164A012BFF5600100000030BFF560C205A1C012 -S315400164B080A0600002BFF4A90310008530BFF4A498 -S315400164C0C205A1C080A0600002BFF4939015E0C848 -S315400164D030BFF48EC205A1C080A0600002BFF47D2A -S315400164E09015E0C830BFF478C20461C080A0600056 -S315400164F002BFF4679015E0C830BFF462C205A1C07F -S315400165009A13601F190000108208400D981320024B -S3154001651080A0400C12BFF5B61B10008510BFF5B820 -S31540016520921360D0C205A1C080A0600002BFF5C52C -S315400165309007BFF030BFF5C0C205A1C080A0600082 -S3154001654002BFF5D10310008530BFF5CCC205A1C00D -S315400165509A13601F190000108208400D98132010ED -S3154001656080A0400C12BFF5D79007BFF010BFF5D9F8 -S31540016570921660F0C20461C080A0600022BFF5F3AC -S315400165801910008530BFF5EEC205A1C09A13601FF0 -S31540016590190000108208400D9813201080A0400C6D -S315400165A012BFF5F91B10008510BFF5FB03100085DE -S315400165B0C205A1C080A0600002BFF60B9007BFE8EC -S315400165C030BFF606C205A1C080A0600002BFF61723 -S315400165D01B10008530BFF612C20421C080A06000A6 -S315400165E022BFF03E113C02AF30BFF039C205A1C017 -S315400165F080A0600002BFFD5B0100000030BFFD5777 -S31540016600C205A1C080A0600002BFFD670100000075 -S3154001661030BFFD63C205A1C080A0600002BFFD730B -S315400166200100000030BFFD6FC205A1C080A060001F -S3154001663002BFF2D70310008530BFF2D2C205A1C016 -S3154001664080A0600002BFF2C19007BFF030BFF2BC2C -S31540016650C205A1C080A0600002BFF2AA3710008522 -S3154001666030BFF2A5C205A1C080A0600002BFF028DC -S315400166701111FC0030BFF023C205A1C09A13601F5F -S31540016680190000108208400D9813201080A0400C7C -S3154001669012BFF3DD9016E0E010BFF3DF921660F013 -S315400166A0C205A1C080A0600002BFF39E1B100085F9 -S315400166B030BFF399C205A1C080A0600002BFF38636 -S315400166C01B10008530BFF381C205A1C080A06000C8 -S315400166D002BFF36E1B10008530BFF369C20461C06F -S315400166E080A0600002BFF3589016E0E030BFF3533C -S315400166F0C205A1C080A0600002BFF30E191000853B -S3154001670030BFF309C205A1C080A0600002BFF2F804 -S315400167109007BFE830BFF2F3C20461C080A06000B9 -S3154001672002BFF2E29007BFE830BFF2DD81C7E00861 -S3154001673081E80000D27A000081C3E0080100000030 -S3154001674081C3E008900A20209332600492126001CE -S315400167508213C0007FFFFFF89E1040000100000039 -S3154001676081D8200081C3E008010000009DE3BF9865 -S315400167707FFFFFFC0100000082102400C0A04300FF -S3154001678081C7E00881E80000833220189A1000088A -S315400167908088600F028000049010200083336010CF -S315400167A09008600381C3E008010000009DE3BF98A3 -S315400167B0031000C01B1000C1B0106000A21360009E -S315400167C0031000C21B1000C2A4106000A613610092 -S315400167D0031000201B100020A8106168AA13600056 -S315400167E07FFFEBAD9010200C808A2008028001FECD -S315400167F0010000007FFFAA7D9010200ED08003206B -S315400168007FFFFFE2010000000310014380A2200246 -S31540016810028000C6D02060D080A22002148000E40D -S3154001682080A2200380A22001028000D1821020197B -S31540016830331000A02F1000A0391000A0371000A07F -S31540016840351000A07FFFFFC7210100007FFFFFC871 -S31540016850BA04A00C921000117FFFFFBC90100018E3 -S31540016860921000117FFFFFB990062004901000118D -S315400168707FFFFFB19210200ADA066014110800006A -S31540016880913A000DC205E010900A0001912A2002BA -S3154001689013008000900200117FFFFFA79212600A49 -S315400168A0DA06601411100000913A000DC205E0109D -S315400168B0900A0001912A2002900200117FFFFF9E5B -S315400168C09214208EDA066014111C0000913A000DD4 -S315400168D0C205E010900A0001912A20021301C0006E -S315400168E0900200117FFFFF949212608E9334A004B0 -S315400168F09004600C7FFFFF90921260019214201E5B -S315400169007FFFFF8D9004A0089010001D7FFFFF8A36 -S31540016910921020009334E004921260017FFFFF86BB -S315400169209004A004111000C2901221087FFFFF823B -S3154001693092102000031000E0A01060009334200460 -S31540016940111000C2901221047FFFFF7B9212601A40 -S3154001695003048D1582106278C2242004111000E0D0 -S3154001696015100120C0222000A2102003AC12A00065 -S31540016970A004E00C90047FFD40000A7592102003AC -S315400169801B100143C20360D08200600C932A0001B0 -S315400169909202401693326004901000107FFFFF660A -S315400169A09212601EA204600180A4600A04BFFFF235 -S315400169B0A0042004C206E008D807200C8208600122 -S315400169C08328400CD605E010111000E0D406A00043 -S315400169D0DA06601498122000960AE003972AC00D41 -S315400169E0920AA002111000A0DA022004940AA00122 -S315400169F0952A800D932A400D1B1000209612C00146 -S31540016A00E8236160030100001B0076418210601E8D -S31540016A109A1361C09212C00999332004C2252004F9 -S31540016A20DA2520089612C00A9E13200E913560047D -S31540016A301B1000C2031000C2821061049012201E76 -S31540016A40953620049813201E9A136108D625202CCA -S31540016A50D8252010D025201CD2252020DE2520280F -S31540016A60D6252014940ABFF0FA250000DA2520180D -S31540016A70C2252024C225200CA2102100D4A44320E3 -S31540016A80C2800320D88443209A102001A0102200FE -S31540016A90DAA40320D884032082102000C2A4032054 -S31540016AA0DAA0032081D820007FFFC55901000000EC -S31540016AB0C2800320E2844320E0840320DA05E0100B -S31540016AC0D6066014C206E0089A0B60039B2B400B66 -S31540016AD082086001D407200CD806A000111000A03E -S31540016AE08328400A980B2001D60220049A134001BC -S31540016AF0992B000B9A13400CC203400080A0600002 -S31540016B0012800008821360041B048D15D8004000D2 -S31540016B109A13627880A3000D02800038C205E01006 -S31540016B2010800000010000008210201A331000A0DE -S31540016B30C22660149810203F2F1000A0391000A0E3 -S31540016B40351000A09A1020148210200E151000A0B6 -S31540016B50371000A0DA27200CC222A004D826A000B4 -S31540016B60D825E01010BFFF38D826E0089A10207FBC -S31540016B70331000A02F1000A0C2266014DA25E010C1 -S31540016B809810203F391000A0351000A08210201324 -S31540016B909A10200D111000A0371000A0C227200C1A -S31540016BA0DA22200410BFFFF0D826A00012BFFF2230 -S31540016BB0331000A08210201CC22660149A102015A2 -S31540016BC08210207F391000A0371000A0DA27200C50 -S31540016BD0C226E0089810200F2F1000A0351000A003 -S31540016BE01B1000A08210203FD8236004C226A000BB -S31540016BF010BFFF15D825E010DA06E008D806601464 -S31540016C00820860039A0B6002D607200C8328400C49 -S31540016C109B2B400B8210400DD80040001B100000FA -S31540016C20C203400080A3000102800004D406E008AC -S31540016C301080000001000000C205E010980AA00182 -S31540016C40D207200CD6066014820860038328400BC5 -S31540016C50992B0009940AA0039810400CDA06A0006B -S31540016C60111000A0952A80099A0B6001D6022004D2 -S31540016C708210400AC20040009B2B400B9813000D26 -S31540016C800321D9509813200482106321C2230000A6 -S31540016C90DA03000080A3400102800004C206E00836 -S31540016CA01080000001000000D407200CDA05E01036 -S31540016CB082086001D60660148328400A9A0B600355 -S31540016CC0D806A0009B2B400B151000A0D602A004AD -S31540016CD0980B20019A134001992B000B9813400CF5 -S31540016CE08210000C05048D158410A278072AF37BC7 -S31540016CF08610E301C4384000C438400003048D15B2 -S31540016D00DA0300008210627880A340010280000409 -S31540016D108213200410800000010000001B2AF37B2F -S31540016D20D80040009A13630180A3000D12BFFFFAF9 -S31540016D30C205E010D6066014D806E0088208600352 -S31540016D40D407200C8328400B980B2001DA06A000BB -S31540016D50111000A0992B000A9A0B6003D602200459 -S31540016D608210400C9B2B400B15100143A010400D87 -S31540016D70F002A0D0A2102003E0240000C0A002200F -S31540016D80921020034000097290047FFD8206200C78 -S31540016D9098102001912A0001992B00011B10012016 -S31540016DA09610000182136000DA02000180A34010B0 -S31540016DB0A204600112800088A004000C80A4600A2D -S31540016DC024BFFFEFE0240000C0A0022003100120F1 -S31540016DD0A810000BAA106000A0102000A2102003EA -S31540016DE090047FFD4000095A92102003832C6002D3 -S31540016DF0912A0014DA04C00190020015820B6060EA -S31540016E009132200480A000019012201EA040001063 -S31540016E109A0B7F9F900A3F9F80A340081280007083 -S31540016E20A204600180A4600A24BFFFEF90047FFDA5 -S31540016E3080A4200012800004C205E01010800000EA -S31540016E4001000000D6066014D806E00882086003F7 -S31540016E50D407200CDA06A000111000A08328400BAD -S31540016E60980B2001992B000AD60220049A0B600246 -S31540016E708210400C9B2B400BAA10400D9FC5400031 -S31540016E800100000082102400C0A04300C0A00220DF -S31540016E90A0102000A21020039B2C6002C204C00D4A -S31540016EA08208606080A00001A0400010A204600139 -S31540016EB080A4600A24BFFFFA9B2C600280A42008AC -S31540016EC022800004D004E00410800000010000008C -S31540016ED0808A204002800007010000007FFFFE19E2 -S31540016EE00100000080A22000128000040100000081 -S31540016EF010800000010000007FFFFE12D004A008B0 -S31540016F0080A22000128000040100000010800000D1 -S31540016F10010000007FFFFE0BD004E00880A22000A4 -S31540016F2012800004010000001080000001000000F2 -S31540016F3083480000842860808188A0000100000009 -S31540016F400100000001000000D806E008D407200C2B -S31540016F50DA05E010980B2001D6066014992B000A39 -S31540016F609A0B6003C206A0009B2B400B151000A094 -S31540016F70D602A004820860018328400B9A13400C74 -S31540016F809A1340019A136004C203400092102004F0 -S31540016F9091D02002010000007FFFC41D01000000C6 -S31540016FA0981020009A102200D8A343208210200175 -S31540016FB0C2A34320D8A3432003100000DA804380B4 -S31540016FC0DAA043807FFFC47F9010200081D8200043 -S31540016FD03080000510800000010000001080000094 -S31540016FE00100000081C7E00891E820009DE3BF98B9 -S31540016FF0400007D201000000808A21000280003F44 -S31540017000010000007FFFA88D01000000912A2004A5 -S315400170107FFFA87690022005031001408210604848 -S31540017020DA00600480A3600022800015031001404D -S31540017030B0100001C20600009B38601F81836000CA -S31540017040DA06200401000000010000008278400DAC -S31540017050DA062008B006200C80A0400D028000040C -S31540017060901020017FFFA86601000000C20620049F -S3154001707080A0600012BFFFF0031001408210600043 -S31540017080DA00600480A36000028000150100000060 -S31540017090B0100001C206000081800000DA0620041B -S315400170A001000000010000009A70400D8210000DA1 -S315400170B0DA062008B006200C80A0400D02800004AC -S315400170C0901020027FFFA84E01000000C206200456 -S315400170D080A0600012BFFFF00100000040000825BB -S315400170E00100000080A2200012800004010000007F -S315400170F07FFFA8439010200381C7E00891E8200054 -S315400171009DE3BF987FFFA84D01000000912A20040E -S315400171107FFFA836900220044000078A0100000044 -S3154001712080A2212302800004010000007FFFA834D1 -S31540017130901020014000078101000000808A210053 -S315400171400280002B0310014082106184DA0060083E -S3154001715080A360090280001101000000B010000107 -S31540017160C2060000DA062004D80620088258400DDF -S31540017170B006200C80A0400C028000049010200232 -S315400171807FFFA81F01000000C206200880A06009F9 -S3154001719012BFFFF401000000400007770100000024 -S315400171A080A220000280000F01000000400007631A -S315400171B001000000808A22000280000D01000000CB -S315400171C04000079F0100000080A2200012800008B5 -S315400171D0010000007FFFA80A9010200430800004BF -S315400171E07FFFA8079010200330BFFFF181C7E00859 -S315400171F091E82000000000009DE3BFA0941020000C -S315400172001110005C9012222C1310005C9212623015 -S315400172101710005C9612E2381910005C9813223C54 -S3154001722093C2000081C240001080019181C2C0001A -S3154001723081C300001080018E9402A0019402A00136 -S3154001724080A2A0031280018A010000008744000049 -S315400172508D30E00E8C89A00780A1A000028000C776 -S3154001726001000000AF30E00BAE0DE00780A5E00065 -S31540017270128000C20100000080A1A00212800035E8 -S315400172800100000025100000E41C800025100000CC -S3154001729029100000A8152104A6100012AA100012F8 -S315400172A0AC100014A1802046A4100000AA100000D2 -S315400172B001000000A180204EA8102100010000001D -S315400172C0A18000000100000001000000E83CA03060 -S315400172D082A480131280016682A500161280016481 -S315400172E00100000001000000010000008744000089 -S315400172F08D30E00B8C89A0078CA1A0051280015C22 -S31540017300A180000001000000010000000100000012 -S31540017310E81CA03082A500161280015582A54012B4 -S31540017320A41000001280015201000000010000007B -S31540017330874400008D30E00B8C89A0078CA1A00307 -S315400173401280014B010000001080008C01000000FA -S3154001735080A1A0011280002325100000E41C8000BA -S315400173602510000029100000A8152104A6100012BE -S31540017370AA100012AC100014A1802046A4100000EF -S31540017380AA10000001000000A180204EA810210093 -S3154001739001000000A1800000010000000100000082 -S315400173A001000000E83C800082A480131280013075 -S315400173B082A500161280012E010000000100000086 -S315400173C0874400008D30E00B8C89A0078CA1A00278 -S315400173D012800127010000001080006801000000B2 -S315400173E080A1A00312800065A6100000A210200E05 -S315400173F0A1844000A6100000A1800000A814E0006E -S31540017400AB44000001000000AC14E00001000000A4 -S31540017410AF44000080A5200012800115AA8D6E00A0 -S3154001742080A540001280011280A5A00012800110A3 -S31540017430AF35E00BAE0DE00780A5E0011280010CEF -S3154001744001000000A0100000A1844000A610000029 -S31540017450A1800000E8180000AC100000AE1000004A -S31540017460EC04C000EE04E00480A500161280010081 -S3154001747080A54017128000FE01000000A5440000CF -S31540017480A534A00BA40CA00780A4A001128000F88B +S31540011C9085A00921C523000081C3E008D0030000C7 +S31540011CA01910008098132120D0230000D223200848 +S31540011CB0C1030000C303200885A009A1C523000074 +S31540011CC081C3E008D0030000191000809813212039 +S31540011CD0D0230000C103000083A00520C3230000D8 +S31540011CE081C3E008D00300001310008092126138CE +S31540011CF0C51A6008C11A400089A0084091A108C2CE +S31540011D0095A209C495A2894281C3E008D53A00004B +S31540011D101310008092126158C1024000C302600450 +S31540011D2085A0082087A088A189A0C9A289A10921E7 +S31540011D3081C3E008C92200009610200213100080DA +S31540011D4092126138151000809412A138D5024000D4 +S31540011D50D7028000D5220000D8020000131000806F +S31540011D609212615896A2E00112BFFFF901000000EC +S31540011D7081C3E0080100000013100080921261380F +S31540011D80151000809412A158C1028000C51A601036 +S31540011D9083A0082089A088C08BA109A18DA10942F1 +S31540011DA08FA1492691A0054681C3E008D13A00009A +S31540011DB01110008090122130C11A0000C51A00008E +S31540011DC0C91A0000CD1A0000D11A0000D51A000028 +S31540011DD0D91A0000DD1A0000E11A0000E51A0000D8 +S31540011DE0E91A0000ED1A0000F11A0000F51A000088 +S31540011DF0F91A0000FD1A000081C3E0080100000045 +S31540011E0029100080A81520F827100080A614E16843 +S31540011E10C12CC000E604C000A134E00EA00C20078E +S31540011E20A0A42002AE1020002D100080AC15A168A0 +S31540011E30AE05E001AC05A008C1358000C12D00000A +S31540011E40EA050000AB35600DAA8D600112BFFFF9AE +S31540011E5001000000808000100280002F2B3C1FFFF4 +S31540011E60AA1563FFA60CC015E6250000C10D0000AA +S31540011E702B100080AA1561742D100047AC15A2E005 +S31540011E80AE25E001E0054000E025800081D8200034 +S31540011E9001000000010000000100000001000000F7 +S31540011EA001000000010000000100000001000000E7 +S31540011EB001000000010000000100000001000000D7 +S31540011EC001000000010000000100000001000000C7 +S31540011ED001000000010000000100000001000000B7 +S31540011EE00000000080A5C00012BFFFE6AA056008F9 +S31540011EF0C12D0000E60500002B03C000A614C01545 +S31540011F00E6250000C10D000081C4400081CC80005F +S31540011F100100000081C4800081CCA00401000000C2 +S31540011F200100000081C3E008915800000100000053 +S31540011F3011100080901220F8C10A0000C022000052 +S31540011F40C10A0000C12A0000D40200001300038028 +S31540011F50942A800980A0000A3280004D9010200307 +S31540011F601303E000D223BFA0C023BFA4C10BBFA06F +S31540011F70C023BFA0151000809412A0E8C1028000C2 +S31540011F800100000001000000C10BBFA0C10BBFA4AE +S31540011F9083A00520C12BBFA0D003BFA0808A220009 +S31540011FA02280003B901020049010200015100080E4 +S31540011FB09412A108C5028000C902A008D102A00C52 +S31540011FC013100080921260E8C70240008DA0894438 +S31540011FD081A98AC8010000000380000501000000B4 +S31540011FE0901020011080002A01000000C5028000E7 +S31540011FF0C902A008D102A00C13100080921260E819 +S31540012000CB0240008DA0894481A98AC80100000005 +S315400120100380000501000000901020011080001C83 +S315400120200100000025100080A414A0F0C11C80000E +S31540012030C51C800080A000003280000685A008C033 +S3154001204081A80AC2010000001380000301000000BC +S31540012050901020050100000025100080A414A0F076 +S31540012060C11C8000C51C800080A00000010000004A +S315400120703280000685A008C081A80AC2010000007E +S3154001208013800003010000009010200701000000AA +S3154001209081C3E00801000000901020019544000032 +S315400120A09532A01E940AA00380A2800002800040BF +S315400120B09010200080A2A0021680003D13100080DF +S315400120C092126198C11A4000C51A6008FD02601853 +S315400120D095A0003E99A0003E9DA0003E170000C07D +S315400120E09612E078A182C0000100000001000000C4 +S315400120F00100000001000000010000000100000095 +S3154001210081A0002083A0002195A0002A99A0002C3F +S315400121109DA0002E170000C09612E07CA182C0004F +S315400121200100000001000000010000000100000064 +S31540012130010000000100000085A0002287A00023C5 +S31540012140A180000001000000010000000100000024 +S3154001215001000000010000000100000089A00842C2 +S31540012160A9A2883ED93A4000DD224000CD1A60102E +S31540012170D102600881A90A46010000000380000CD3 +S3154001218081AD0A2801000000038000099344000044 +S315400121909332601B920A60079010200080A2A00132 +S315400121A002800003902260079022600481C3E00808 +S315400121B001000000C12BBFA081C3E008D003BFA02E +S315400121C0D023BFA081C3E008C10BBFA0010000001E +S315400121D09DE3BF6040001B94B0102000833A200A63 +S315400121E08208600380A060010280000401000000B3 +S315400121F081C7E00881E800007FFFBDE19010200D16 +S31540012200050C40290723CD1B8410A0068610E09BB0 +S31540012210C027BFF0C027BFF4C43FBFF8C027BFD017 +S31540012220C027BFD4C027BFC87FFFFF3FC027BFCC51 +S31540012230820A30008210608084006004072804000E +S315400122408610E00F09100047C62040008811220081 +S3154001225007100000882100028939200286110003F7 +S31540012260C620600425100080032784008210601078 +S315400122707FFFFED0C220A0047FFFFFD21103E00002 +S3154001228090102000C024A1687FFFFDD0010000000E +S31540012290809200091280000601000000C204A16874 +S315400122A080A0600002800004010000007FFFBDBBEA +S315400122B09010200B7FFFFDC590103FFA03300600BA +S315400122C080A2000102800CF880A260007FFFBDB3AE +S315400122D09010200B7FFFFDBD9010201403100D00C0 +S315400122E080A200010280113680A260007FFFBDAB53 +S315400122F09010200B7FFFFDB5901020620310162031 +S3154001230080A200010280112780A260007FFFBDA349 +S315400123109010200B7FFFFDB590102005031028007B +S3154001232080A2000112800CB501000000C204A16820 +S3154001233080A0600012800CB1010000007FFFFFA168 +S315400123401103C000111C00007FFFFDB09210200058 +S31540012350031FFFFF821063FF80A200011280000B62 +S3154001236001000000C404A168030000708210601FD0 +S3154001237084088001030000108210601080A0800153 +S3154001238002800005113C00007FFFBD849010200CA7 +S31540012390113C00007FFFFD9D9210200003200000AC +S315400123A080A200011280000B01000000C404A16854 +S315400123B0030000708210601F840880010300001032 +S315400123C08210601080A0800102800004010000009C +S315400123D07FFFBD729010200CC024A1689010200090 +S315400123E07FFFFD8A9210200080A220001280000605 +S315400123F003100080C200616880A060000280000571 +S31540012400110144007FFFBD659010200C110144006D +S3154001241013284000901223027FFFFD7C9212600137 +S3154001242080A220001280000601000000C204A168BB +S3154001243080A06000228000051111FFFF7FFFBD577C +S315400124409010200C1111FFFF7FFFFD78901223FFA2 +S315400124500300007F821063FF80A2000112800C639B +S3154001246001000000C204A16880A0600012800C5FD8 +S3154001247001000000271000807FFFFD64D01CE1E0D1 +S31540012480031FFFFF821063FF80A200011280000B31 +S3154001249001000000C404A168030000708210601F9F +S315400124A084088001030000108210601080A0800122 +S315400124B002800005351000807FFFBD389010200C4A +S315400124C035100080D01EA1D0C024A1687FFFFD4FEA +S315400124D0010000000320000080A200011280000BD1 +S315400124E003100080C4006168030000708210601F01 +S315400124F084088001030000108210601080A08001D2 +S31540012500028000052B1000807FFFBD249010200C17 +S315400125102B100080D01D61F0C024A1687FFFFD3BD8 +S3154001252001000000031FFFFF821063FF80A200012C +S315400125301280000B03100080C40061680300007024 +S315400125408210601F84088001030000108210601011 +S3154001255080A08001028000052F1000807FFFBD0F03 +S315400125609010200C2F100080D01DE1B8C024A16826 +S315400125707FFFFD2601000000C204A1688330600E82 +S315400125808208600380A0600202800004010000000E +S315400125907FFFBD029010200C7FFFFF0A1103C00090 +S315400125A011115804C024A1687FFFFD2890122234DE +S315400125B003102B008210624680A200010280107136 +S315400125C0032000007FFFBCF59010200D113C02AFA7 +S315400125D07FFFFD1E901220D1033180558210639AF0 +S315400125E080A200010280105F030800007FFFBCEB60 +S315400125F09010200D1111FC007FFFFD1C9210200050 +S31540012600031FE00080A200011280000B01000000C0 +S31540012610C404A168030000708210601F8408800111 +S31540012620030000108210600880A08001028000042F +S31540012630010000007FFFBCD99010200DC024A16885 +S3154001264011207C01130001007FFFFD08901220300C +S315400126500320000080A200011280000B03100080BD +S31540012660C4006168030000708210601F8408800105 +S31540012670030000108210600480A0800102800004E3 +S31540012680010000007FFFBCC59010200DC024A16849 +S31540012690901020007FFFFCF59210200080A22000C0 +S315400126A01280000603100080C200616880A06000AD +S315400126B002800004010000007FFFBCB89010200D8D +S315400126C07FFFFCEAD01CE1E003100080C20061E814 +S315400126D080A2000112800BC101000000C204A16862 +S315400126E080A0600012800BBD010000003710008001 +S315400126F07FFFFCDED01EE1D8031FE00080A200016F +S3154001270012800BB301000000C204A16880A06000E2 +S3154001271012800BAF010000007FFFFCD4D01D61F099 +S3154001272003100080C200620080A200011280000BEB +S3154001273001000000C404A168030000708210601FFC +S3154001274084088001030000108210601080A080017F +S3154001275002800005D01DE1B87FFFBC909010200D8E +S31540012760D01DE1B8C024A1687FFFFCC00100000074 +S31540012770C204A1688330600E8208600380A06002B3 +S3154001278002800004010000007FFFBC849010200DF0 +S315400127907FFFFE8C1103E0002108C6AFC024A1686B +S315400127A0901420DE7FFFFCB9A01420DE80A2001029 +S315400127B012800B8303100080C200616880A0600014 +S315400127C012800B7F010000002108C6AF901420DE65 +S315400127D07FFFFCBEA01420DE80A2001012800B7485 +S315400127E001000000C204A16880A0600012800B7045 +S315400127F0010000001128C6AF7FFFFCB4901220DE15 +S315400128000308C6AF821060DE80A2000112800B640D +S3154001281001000000C204A16880A0600012800B6024 +S31540012820010000001108C6AF7FFFFCA0901220DE18 +S315400128300328C6AF821060DE80A2000112800B54CD +S3154001284001000000C204A16880A0600012800B5004 +S31540012850010000001128C6AF7FFFFC94901220DED4 +S315400128600308C6AF821060DE80A2000112800B45CC +S3154001287001000000C204A16880A0600012800B41E3 +S31540012880010000007FFFFE4F1103E00011151BC040 +S315400128901310C821901221039212614115351BC0B4 +S315400128A01710C8219412A1037FFFFC909612E141B3 +S315400128B080A2200212800B2B01000000C204A168F5 +S315400128C080A0600012800B270100000011351BC05B +S315400128D01310C821901221039212614115151BC094 +S315400128E01710C8219412A1037FFFFC809612E14183 +S315400128F080A2200112800B1F01000000C204A168C2 +S3154001290080A0600012800B1B010000009010200087 +S3154001291092102000152000007FFFFC7496102000C5 +S3154001292080A220001280000601000000C204A168B6 +S3154001293080A0600002800005D01EE1D87FFFBC1751 +S315400129409010200FD01EE1D87FFFFC68D41EA1D085 +S3154001295080A2200212800AFF01000000C204A16881 +S3154001296080A0600012800AFB0100000011151BC007 +S315400129701310C821901221039212614115151BE8CB +S315400129801710C8219412A1037FFFFC589612E1410A +S3154001299080A2200112800AEB01000000C204A16856 +S315400129A080A0600012800AE70100000011151BE8B3 +S315400129B01310C821901221039212614115151BC0B3 +S315400129C01710C8219412A1037FFFFC489612E141DA +S315400129D080A2200212800AD701000000C204A16829 +S315400129E080A0600012800AD301000000D41CE1E0FF +S315400129F011151BE81310C821901221037FFFFC3BE0 +S31540012A009212614180A2200312800AC60100000091 +S31540012A10C204A16880A0600012800AC201000000C1 +S31540012A20D41D61F011151BE81310C8219012210322 +S31540012A307FFFFC2E9212614180A220031280000B7F +S31540012A4001000000C404A168030000708210601FE9 +S31540012A5084088001030000108210601080A080016C +S31540012A6002800005D41DE1B87FFFBBCC9010200F3A +S31540012A70D41DE1B8C024A16811151BE81310C82163 +S31540012A80901221037FFFFC199212614180A220021C +S31540012A9012800AA003100080C200616880A0600015 +S31540012AA012800A9C01000000D01DE1B815151BE8F3 +S31540012AB01710C8219412A1037FFFFC0C9612E14125 +S31540012AC080A2200112800A8B01000000C204A16885 +S31540012AD080A0600012800A8701000000D01CE1E05E +S31540012AE015151BE81710C8219412A1037FFFFBFFA0 +S31540012AF09612E14180A2200312800A820100000061 +S31540012B00C204A16880A0600012800A7E0100000014 +S31540012B10D01D61F015151BE81710C8219412A103A9 +S31540012B207FFFFBF29612E14180A220031280000B47 +S31540012B3001000000C404A168030000708210601FF8 +S31540012B4084088001030000108210601080A080017B +S31540012B5002800004010000007FFFBB909010200F0F +S31540012B60C024A16811151BC01310C821901221035E +S31540012B709212614115351BC01710C8219412A10349 +S31540012B807FFFFBED9612E14180A2200212800A5599 +S31540012B9003100080C200616880A0600012800A5163 +S31540012BA00100000011351BC01310C82190122103EA +S31540012BB09212614115151BC01710C8219412A10329 +S31540012BC07FFFFBDD9612E14180A2200112800A417E +S31540012BD001000000C204A16880A0600012800A3D85 +S31540012BE001000000901020009210200015200000E6 +S31540012BF07FFFFBD19610200080A2200012800006A4 +S31540012C0001000000C204A16880A0600002800005A6 +S31540012C10D01EE1D87FFFBB619010200FD01EE1D8B6 +S31540012C207FFFFBC5D41EA1D080A2200212800A25B7 +S31540012C3001000000C204A16880A0600012800A2140 +S31540012C400100000011151BC01310C8219012210369 +S31540012C509212614115151BE81710C8219412A10360 +S31540012C607FFFFBB59612E14180A2200112800A1135 +S31540012C7001000000C204A16880A0600012800A0D14 +S31540012C800100000011151BE81310C8219012210301 +S31540012C909212614115151BC01710C8219412A10348 +S31540012CA07FFFFBA59612E14180A22002128009FD19 +S31540012CB001000000C204A16880A06000128009F9E9 +S31540012CC001000000D41CE1E011151BE81310C821D6 +S31540012CD0901221037FFFFB989212614180A220034B +S31540012CE01280000B01000000C404A16803000070BB +S31540012CF08210601F8408800103000010821060105A +S31540012D0080A0800102800005D41D61F07FFFBB23B6 +S31540012D109010200FD41D61F011151BE81310C82126 +S31540012D20901221037FFFFB849212614180A220030E +S31540012D301280000B01000000C404A168030000706A +S31540012D408210601F84088001030000108210601009 +S31540012D5080A0800102800005D41DE1B87FFFBB0F32 +S31540012D609010200FD41DE1B8C024A16811151BE8AD +S31540012D701310C821901221037FFFFB6F921261410C +S31540012D8080A22002128009BF03100080C200616840 +S31540012D9080A06000128009BB01000000D01DE1B88F +S31540012DA015151BE81710C8219412A1037FFFFB627A +S31540012DB09612E14180A22001128009B6010000006D +S31540012DC0C204A16880A06000128009B2010000001F +S31540012DD0D01CE1E015151BE81710C8219412A10378 +S31540012DE07FFFFB559612E14180A220031280000B22 +S31540012DF001000000C404A168030000708210601F36 +S31540012E0084088001030000108210601080A08001B8 +S31540012E1002800005D01D61F07FFFBAE09010200FBF +S31540012E20D01D61F015151BE81710C8219412A10396 +S31540012E307FFFFB419612E14180A220031280000BE5 +S31540012E4001000000C404A168030000708210601FE5 +S31540012E5084088001030000108210601080A0800168 +S31540012E6002800004010000007FFFBACC9010200FC1 +S31540012E70C024A168110048EA13048D15901223CD90 +S31540012E807FFFFB3E9212627880A22001128009796F +S31540012E9003100080C200616880A06000128009753D +S31540012EA001000000110048EA13048D15901223CD4C +S31540012EB07FFFFB439212627880A220011280096A49 +S31540012EC001000000C204A16880A06000128009666A +S31540012ED001000000C024A1687FFFFCBA1103C000B5 +S31540012EE023100124A807BFF8BA07BFD090100014D9 +S31540012EF09210001D7FFFFA6C94146160C2046160F8 +S31540012F00C407BFF880A0800102800E0CA014616046 +S31540012F107FFFBAA2901020102D100080901000144F +S31540012F209215A1C87FFFFA6094146160C404616080 +S31540012F30C205A1C880A0800122800DF6C4042004E8 +S31540012F407FFFBA9690102010901000149214E1E081 +S31540012F507FFFFA5594146160C4046160C204E1E0E4 +S31540012F6080A0800102800DE1B214E1E07FFFBA8BBF +S31540012F709010201090100014921561F07FFFFA4ACC +S31540012F8094146160C404A168030000708210601F3C +S31540012F9084088001030000108210601080A0800127 +S31540012FA002800004010000007FFFBA7C90102010CF +S31540012FB0C024A1687FFFFC8390102000901000146C +S31540012FC0921561F07FFFFA389414616039100080E0 +S31540012FD0C4046160C20721F880A0800122800DBD32 +S31540012FE0C40420047FFFBA6D901020107FFFFC754A +S31540012FF01103C000901000149215E1B87FFFFA2A20 +S3154001300094146160C204A1688330600E8208600333 +S3154001301080A0600202800004010000007FFFBA5FC9 +S3154001302090102010C024A1689010001D9210001429 +S315400130307FFFFA1D94146160C4046160C207BFF842 +S3154001304080A0800122800D9AC40420047FFFBA53D8 +S31540013050901020109010001D9215A1C87FFFFA1202 +S3154001306094146160C4046160C205A1C880A0800156 +S3154001307022800D84C40420047FFFBA48901020109A +S315400130809010001D9214E1E07FFFFA0794146160ED +S31540013090C4046160C204E1E080A0800122800D7019 +S315400130A0C40420047FFFBA3D901020109010001DEB +S315400130B0921561F07FFFF9FC94146160C404A16824 +S315400130C0030000708210601F840880010300001015 +S315400130D08210601080A0800102800004010000007F +S315400130E07FFFBA2E901020107FFFFC3690102000F3 +S315400130F09010001D921561F07FFFF9EB9414616009 +S31540013100C4046160C20721F880A0800122800D4D70 +S31540013110C40420047FFFBA21901020107FFFFC29B0 +S315400131201103C0009010001D9215E1B87FFFF9DE32 +S3154001313094146160C204A1688330600E8208600302 +S3154001314080A0600202800004010000007FFFBA13E4 +S3154001315090102010C024A1689015A1C892100014A7 +S315400131607FFFF9D194146160C4046160C205A1C8AE +S3154001317080A0800122800D28C40420047FFFBA0765 +S31540013180901020109015A1C89210001D7FFFF9C61E +S3154001319094146160C4046160C205A1C880A0800125 +S315400131A022800D12C40420047FFFB9FC9010201028 +S315400131B09016E1D8941461607FFFF9BB9210000824 +S315400131C0C4046160C206E1D880A0800122800CFC63 +S315400131D0C40420047FFFB9F1901020109016A1D0AD +S315400131E0941461607FFFF9B092100008C4046160D5 +S315400131F0C206A1D080A0800122800CE6C40420042E +S315400132007FFFB9E6901020109016A1D09216E1D812 +S315400132107FFFF9A594146160C404A168030000709E +S315400132208210601F84088001030000108210601024 +S3154001323080A0800102800004010000007FFFB9D711 +S31540013240901020107FFFFBDF901020009016A1D038 +S315400132509216E1D87FFFF99494146160C4046160C9 +S31540013260C20721F880A0800122800CC3C404200437 +S315400132707FFFB9CA901020107FFFFBD21103C00017 +S315400132809016E1D8C024A1689216A1D07FFFF98695 +S3154001329094146160C4046160C20721F880A0800172 +S315400132A022800CA4C40420047FFFB9BC90102010D6 +S315400132B09015A1C89215E1B87FFFF97B941461601E +S315400132C0C204A1688330600E8208600380A0600258 +S315400132D002800004010000007FFFB9B09010201069 +S315400132E0C024A1689014E1E0921000147FFFF96EAA +S315400132F094146160C4046160C204E1E080A080016D +S3154001330022800C83C40420047FFFB9A490102010AE +S315400133109014E1E09210001D7FFFF96394146160FF +S31540013320C4046160C204E1E080A0800122800C6F88 +S31540013330C40420047FFFB999901020109014E1E055 +S315400133409215A1C87FFFF95894146160C404616065 +S31540013350C204E1E080A0800122800C5BC404200409 +S315400133607FFFB98E901020109014E1E094146160B3 +S315400133707FFFF94D92100008C4046160C204E1E088 +S3154001338080A0800122800C47C40420047FFFB983BA +S31540013390901020109014E1E0921561F07FFFF94200 +S315400133A094146160C404A168030000708210601F18 +S315400133B084088001030000108210601080A0800103 +S315400133C002800004010000007FFFB97490102010B4 +S315400133D0C024A168901561F0921000147FFFF93264 +S315400133E094146160C404A168030000708210601FD8 +S315400133F084088001030000108210601080A08001C3 +S3154001340002800004010000007FFFB9649010201083 +S31540013410C024A168901561F09210001D7FFFF9222A +S3154001342094146160C404A168030000708210601F97 +S3154001343084088001030000108210601080A0800182 +S3154001344002800004010000007FFFB9549010201053 +S31540013450C024A168901561F09215A1C87FFFF912A9 +S3154001346094146160C404A168030000708210601F57 +S3154001347084088001030000108210601080A0800142 +S3154001348002800004010000007FFFB9449010201023 +S31540013490C024A168901561F09214E1E07FFFF90222 +S315400134A094146160C404A168030000708210601F17 +S315400134B084088001030000108210601080A0800102 +S315400134C002800005901561F07FFFB93490102010FD +S315400134D0901561F0C024A168941461607FFFF8F2F1 +S315400134E092100008C404A168030000708210601F96 +S315400134F084088001030000108210601080A08001C2 +S3154001350002800004010000007FFFB92490102010C2 +S31540013510C024A168901561F09215E1B87FFFF8E2E9 +S3154001352094146160C204A1688330600E820860030E +S3154001353080A0600202800004010000007FFFB917ED +S31540013540901020107FFFFB1F1103C0000310008065 +S31540013550C024A1688210633010800009B010200099 +S315400135607FFFB90E90102010C207BFC4B0062001DC +S3154001357080A6200D0280002282006018852E20033D +S31540013580912E200590220002051000808410A32070 +S31540013590C227BFC490008008932E20011510012434 +S315400135A0920240189412A16092026001932A60032C +S315400135B07FFFF8BD92008009C207BFC4C600400024 +S315400135C0C404000080A0C00232BFFFE6C227BFC4C8 +S315400135D0C60060040910012488112160C401200439 +S315400135E080A0C00232BFFFDFC227BFC4B0062001A0 +S315400135F080A6200D12BFFFE282006018C204A168B6 +S3154001360080A0600012800BA3010000001110008110 +S3154001361094146160901220587FFFF8A3920220080B +S315400136200310008082106320C4006148C2046160B7 +S3154001363080A0800102800B86071000807FFFB8D7EB +S315400136409010201011100081941461609012207026 +S315400136507FFFF8959202200809100080C20461603C +S3154001366088112320C401216080A0800122800B693A +S31540013670C40121647FFFB8C9901020101110008148 +S3154001368094146160901220887FFFF8879202200887 +S315400136900310008082106320C4006178C204616017 +S315400136A080A0800102800B4B071000807FFFB8BBD2 +S315400136B090102010C024A168111000009210200023 +S315400136C0150FFC007FFFF94F96102000030FFC00F9 +S315400136D080A2000102800B3880A260007FFFB8AF54 +S315400136E0901020101110000092102000152FFC00A0 +S315400136F07FFFF944961020000310020080A20001CA +S3154001370002800B2680A260007FFFB8A49010201093 +S315400137101130000092102000150FFC007FFFF9398F +S31540013720961020000330020080A2000102800B1493 +S3154001373080A260007FFFB8999010201011300000E0 +S3154001374092102000152FFC007FFFF92E96102000C5 +S31540013750032FFC0080A2000102800B0280A26000C0 +S315400137607FFFB88E90102010111000007FFFF92FB7 +S31540013770130FE0000310100080A20001128007B66B +S3154001378001000000C204A16880A06000128007B257 +S3154001379001000000111000007FFFF92E130FE00019 +S315400137A0030FE00080A20001128007A7010000007C +S315400137B0C204A16880A06000128007A30100000036 +S315400137C009100080C024A16890100014941461600F +S315400137D07FFFF848921121C0C4046160C206A1D09E +S315400137E080A0800122800ACFC40420047FFFB86BE9 +S315400137F090102011C024A168901000149216E1D8AF +S315400138007FFFF83C94146160C4046160C207BFC87D +S3154001381080A0800122800ABAC40420047FFFB85FD9 +S3154001382090102011901000149214E1E07FFFF831BE +S3154001383094146160C4046160C204E1E080A0800127 +S3154001384022800AA6C40420047FFFB8549010201198 +S3154001385090100014921561F07FFFF8269414616070 +S31540013860C4046160C20721F880A0800122800A8ACF +S31540013870C40420047FFFB849901020119010001411 +S315400138809215E1B87FFFF81B941461600300007044 +S31540013890C404A168840880010300002080A080013F +S315400138A002800004010000007FFFB83C9010201107 +S315400138B0C024A1689010001D921000147FFFF80DDE +S315400138C094146160C4046160C207BFD080A08001C6 +S315400138D022800A68C40420047FFFB830901020116A +S315400138E0031000809207BFC8901061C07FFFF801A6 +S315400138F094146160C4046160C20721F880A080010C +S3154001390022800A4CC40420047FFFB8249010201161 +S3154001391009100080C024A168901121C09216E1D8F7 +S315400139207FFFF7F494146160C4046160071000805E +S31540013930C200E1C080A0800122800A34C404200470 +S315400139407FFFB816901020119010001D9214E1E0EF +S315400139507FFFF7E894146160C4046160C204E1E04A +S3154001396080A0800122800A20C40420047FFFB80B76 +S31540013970901020079010001D921561F07FFFF7DD32 +S3154001398094146160C404A168030000708210601F32 +S3154001399084088001030000108210601080A080011D +S315400139A002800004010000007FFFB7FC9010201147 +S315400139B0C024A1689010001D9215E1B87FFFF7CD94 +S315400139C09414616003000070C404A16884088001F6 +S315400139D00300002080A08001028000040100000055 +S315400139E07FFFB7EE90102011C024A1689016A1D098 +S315400139F0921000147FFFF7BF94146160C4046160A4 +S31540013A00C206A1D080A08001228009ECC404200412 +S31540013A107FFFB7E290102011091000809016A1D0C7 +S31540013A20921121C07FFFF7B394146160C4046160B1 +S31540013A30C206E1D880A08001228009D5C4042004B1 +S31540013A407FFFB7D6901020119015A1C894146160DC +S31540013A507FFFF7A892100008C4046160C20721F8ED +S31540013A6080A08001228009BAC40420047FFFB7CB1D +S31540013A7090102011C024A1689015A1C89214E1E0CC +S31540013A807FFFF79C94146160C4046160C204E1E065 +S31540013A9080A08001228009A5C40420047FFFB7BF0E +S31540013AA0901020119015A1C8921561F07FFFF791F2 +S31540013AB094146160C4046160C20721F880A080014A +S31540013AC02280098AC40420047FFFB7B490102011D4 +S31540013AD0C024A1689015A1C89215E1B87FFFF7856A +S31540013AE09414616003000070C404A16884088001D5 +S31540013AF00300002080A08001028000040100000034 +S31540013B007FFFB7A690102011C024A1689014E1E070 +S31540013B10921000147FFFF77794146160C4046160CA +S31540013B20C204E1E080A0800122800967C404200428 +S31540013B307FFFB79A901020119014E1E09210001D7A +S31540013B407FFFF76C94146160C4046160C204E1E0D4 +S31540013B5080A0800122800953C40420047FFFB78FCF +S31540013B60901020119014E1E09215A1C87FFFF761F2 +S31540013B7094146160C4046160C204E1E080A08001E4 +S31540013B802280093FC40420047FFFB784901020118E +S31540013B909014E1E0941461607FFFF756921000089B +S31540013BA0C4046160C204E1E080A080012280092B47 +S31540013BB0C40420047FFFB779901020119014E1E0EE +S31540013BC0921561F07FFFF74B94146160C404616004 +S31540013BD0C20721F880A080012280090FC404200475 +S31540013BE07FFFB76E901020119014E1E09215E1B875 +S31540013BF07FFFF7409414616003000070C404A1681C +S31540013C00840880010300002080A080010280000515 +S31540013C10901561F07FFFB76190102011901561F00A +S31540013C20921000147FFFF73394146160C404A168B5 +S31540013C30030000708210601F840880010300001099 +S31540013C408210601080A08001028000040100000003 +S31540013C507FFFB75290102011C024A168901561F0E2 +S31540013C609210001D7FFFF72394146160C404A1687C +S31540013C70030000708210601F840880010300001059 +S31540013C808210601080A080010280000401000000C3 +S31540013C907FFFB74290102011C024A168901561F0B2 +S31540013CA09215A1C87FFFF71394146160C404A168FB +S31540013CB0030000708210601F840880010300001019 +S31540013CC08210601080A08001028000040100000083 +S31540013CD07FFFB73290102011C024A168901561F082 +S31540013CE09214E1E07FFFF70394146160C404A16874 +S31540013CF0030000708210601F8408800103000010D9 +S31540013D008210601080A0800102800005901561F04C +S31540013D107FFFB72290102011901561F0C024A16851 +S31540013D20941461607FFFF6F392100008C404A16801 +S31540013D30030000708210601F840880010300001098 +S31540013D408210601080A08001028000040100000002 +S31540013D507FFFB71290102011C024A168901561F021 +S31540013D609215E1B87FFFF6E3941461600300007099 +S31540013D70C404A168840880010300002080A080015A +S31540013D8002800005051FC0007FFFB7049010201177 +S31540013D90051FC0000700C0008410A1028610E0B0D4 +S31540013DA0C024A168B007BFE0C43FBFE805203E83F9 +S31540013DB0070021C88410A3FF8610E3A19007BFE83E +S31540013DC092100018C43FBFE07FFFF6CA9407BFD8E0 +S31540013DD0C407BFD8033FFC0080A080010280088051 +S31540013DE0C207BFDC7FFFB6ED9010201105004000F1 +S31540013DF00700C0008410A1028610E0B0C024A1686B +S31540013E009007BFE8C43FBFE805108683070021C875 +S31540013E108410A3FF8610E3A1921000189407BFD81F +S31540013E207FFFF6B4C43FBFE0C207BFDCC407BFD8BB +S31540013E30809080011280000B03100080C4006168ED +S31540013E40030000708210601F840880010300001087 +S31540013E508210600480A0800102800005050006AF43 +S31540013E607FFFB6CE90102011050006AF86102010B8 +S31540013E70C024A1689007BFE8C43FBFE8050FFC0016 +S31540013E80070281D88410A0408610E10C92100018D8 +S31540013E909407BFD87FFFF697C43FBFE0C407BFD89A +S31540013EA0030006AE8210639580A08001028008421D +S31540013EB0C407BFDC7FFFB6B990102011050006AFDD +S31540013EC086102010C024A1689007BFE8C43FBFE810 +S31540013ED0050FFFFF070281D88410A3408610E10C2D +S31540013EE0921000189407BFD87FFFF682C43FBFE007 +S31540013EF0C207BFDCC407BFD8809080011280000B87 +S31540013F0003100080C4006168030000708210601FC6 +S31540013F1084088001030000108210600480A08001A3 +S31540013F2002800004010000007FFFB69C9010201122 +S31540013F30C024A168111088007FFFF75A13100100B1 +S31540013F40031066C9821062CA80A20001128005BAB6 +S31540013F5003100080C200616880A06000128005B62F +S31540013F60010000001111BBFE130C70407FFFF74D9D +S31540013F70901223FF031527CA8210611E80A20001F9 +S31540013F80128005A901000000C204A16880A060005A +S31540013F90128005A501000000111E607E1310C7FFA7 +S31540013FA07FFFF740921263FC031D73FC8210633856 +S31540013FB080A200011280059801000000C204A16898 +S31540013FC080A06000128005940100000011002000CD +S31540013FD0130FE0007FFFF7339212600180A22000A9 +S31540013FE01280000B01000000C404A16803000070A8 +S31540013FF08210601F84088001030000108210600453 +S3154001400080A0800102800005110FE0007FFFB663AA +S3154001401090102011110FE000C024A1687FFFF72105 +S3154001402092100008030FE00080A20001128005767D +S3154001403003100080C200616880A060001280057292 +S315400140400100000011002000130FE0007FFFF7156B +S315400140509212600180A220001280000B0100000034 +S31540014060C404A168030000708210601F84088001A7 +S31540014070030000108210600480A0800102800005C8 +S31540014080031000807FFFB645901020110310008079 +S31540014090C024A168921061C0901000147FFFF607FA +S315400140A094146160C404616007100080C200E1C0DD +S315400140B080A08001228007B6C40420047FFFB63762 +S315400140C090102012901000149216E1D87FFFF5FB54 +S315400140D094146160C4046160C206E1D880A0800185 +S315400140E0228007A0C40420047FFFB62C9010201222 +S315400140F0901000149214E1E07FFFF5F09414616092 +S31540014100C4046160C204E1E080A080012280078C82 +S31540014110C40420047FFFB621901020129010001491 +S31540014120921561F07FFFF5E594146160C404616006 +S31540014130C20721F880A0800122800770C4042004B0 +S315400141407FFFB61690102012901000149215E1B818 +S315400141507FFFF5DA9414616003000070C404A1681E +S31540014160840880010300002080A0800102800004B1 +S31540014170010000007FFFB60990102012C024A168FB +S315400141809010001D921000147FFFF5CC94146160CD +S31540014190C4046160C207BFD080A080012280074E5F +S315400141A0C40420047FFFB5FD901020120310008047 +S315400141B09216A1D0901061C07FFFF5C09414616042 +S315400141C0C4046160C20721F880A0800122800732C1 +S315400141D0C40420047FFFB5F190102012C024A168C9 +S315400141E09010001D9214E1E07FFFF5B494146160D4 +S315400141F0C4046160C204E1E080A080012280071D01 +S31540014200C40420047FFFB5E5901024999010001D49 +S31540014210921561F07FFFF5A994146160C404616051 +S31540014220C20721F880A0800122800701C40420042E +S315400142307FFFB5DA901020129010001D9215E1B85B +S315400142407FFFF59E9414616003000070C404A16869 +S31540014250840880010300002080A0800102800004C0 +S31540014260010000007FFFB5CD90102012C024A16847 +S315400142709015A1C8921000147FFFF59094146160C7 +S31540014280C4046160C205A1C880A08001228006DD08 +S31540014290C40420047FFFB5C1901020129015A1C817 +S315400142A09210001D7FFFF58594146160C40461601E +S315400142B0C20721F880A08001228006C2C4042004DE +S315400142C07FFFB5B690102012C024A1689015A1C8F1 +S315400142D09214E1E07FFFF57994146160C404616052 +S315400142E0C204E1E080A08001228006ADC40420041E +S315400142F07FFFB5AA901020129015A1C8921561F0C2 +S315400143007FFFF56E94146160C4046160C20721F8B1 +S3154001431080A0800122800691C40420047FFFB59FBE +S31540014320901020129015A1C89215E1B87FFFF56350 +S315400143309414616003000070C404A168840880017C +S315400143400300002080A080010280000401000000DB +S315400143507FFFB59290102012C024A1689014E1E02D +S31540014360921000147FFFF55594146160C404616096 +S31540014370C204E1E080A080012280066FC4042004CB +S315400143807FFFB586901020129014E1E09210001D37 +S315400143907FFFF54A94146160C4046160C204E1E0A0 +S315400143A080A080012280065BC40420047FFFB57B88 +S315400143B0901020129014E1E09215A1C87FFFF53FBD +S315400143C094146160C4046160C204E1E080A080018C +S315400143D022800647C40420047FFFB5709010201246 +S315400143E09014E1E0941461607FFFF5349210000867 +S315400143F0C4046160C204E1E080A0800122800633EA +S31540014400C40420047FFFB565901020129014E1E0AA +S31540014410921561F07FFFF52994146160C404A16887 +S31540014420030000708210601F8408800103000010A1 +S315400144308210601080A0800102800004010000000B +S315400144407FFFB55690102012C024A168901561F0E7 +S31540014450921000147FFFF51994146160C404A16899 +S31540014460030000708210601F840880010300001061 +S315400144708210601080A080010280000401000000CB +S315400144807FFFB54690102012C024A1689210001DEE +S31540014490901561F07FFFF50994146160C404A16829 +S315400144A0030000708210601F840880010300001021 +S315400144B08210601080A0800102800004010000008B +S315400144C07FFFB53690102012C024A168901561F087 +S315400144D09215A1C87FFFF4F994146160C404A168E0 +S315400144E0030000708210601F8408800103000010E1 +S315400144F08210601080A0800102800004010000004B +S315400145007FFFB52690102012C024A168901561F056 +S315400145109214E1E07FFFF4E994146160C404A16858 +S31540014520030000708210601F8408800103000010A0 +S315400145308210601080A0800102800005901561F014 +S315400145407FFFB51690102012901561F0C024A16826 +S31540014550941461607FFFF4D992100008C404A168E5 +S31540014560030000708210601F840880010300001060 +S315400145708210601080A080010280000401000000CA +S315400145807FFFB50690102012C024A168901561F0F6 +S315400145909215E1B87FFFF4C994146160C204A16821 +S315400145A08330600E8208600380A0600202800005AD +S315400145B01103C0007FFFB4F9901020121103C0000F +S315400145C07FFFF70031100080B0162228C024A16871 +S315400145D010800008BA1020007FFFB4F0901020121E +S315400145E0BA07600180A7600602800024B006201841 +S315400145F0832F60030910008088112218912F6005CE +S31540014600932F6001902200019202401D9001000803 +S315400146109202600115100124932A60039412A1604D +S315400146207FFFF4A692010009C4060000C2040000FF +S3154001463080A0800112BFFFE907100124C4062004AF +S315400146408610E160C200E00480A0800112BFFFE352 +S315400146500910008088112168C201000080A0600015 +S3154001466012BFFFDE01000000BA07600180A76006A5 +S3154001467012BFFFE0B006201811100080941461604B +S31540014680901222A87FFFF48D920220080310008029 +S3154001469082106218C40060A0C204616080A08001DB +S315400146A00280057A071000807FFFB4BC901020126B +S315400146B0C024A1681110008094146160901222C038 +S315400146C07FFFF47E9202200809100080C2046160D7 +S315400146D088112218C40120B880A080012280055D7E +S315400146E0C40120BC7FFFB4AD90102012C024A16844 +S315400146F01110008094146160901222D87FFFF46FEC +S31540014700920220080310008082106218C40060D013 +S31540014710C204616080A080010280053E07100080CE +S315400147207FFFB49E90102012C024A1681110008012 +S3154001473094146160901222F07FFFF4609202200887 +S3154001474009100080C204616088112218C40120E862 +S3154001475080A0800122800521C40120EC7FFFB48F17 +S3154001476090102012C024A168111000809414616039 +S31540014770901223087FFFF451920220080310008013 +S3154001478082106218C4006100C204616080A0800189 +S3154001479002800502071000807FFFB480901020122E +S315400147A0C024A168111010007FFFF53413100000DA +S315400147B00310300080A20001128003B7031000806D +S315400147C0C200616880A06000128003B3010000004E +S315400147D0111FE000131000007FFFF43D9414616047 +S315400147E0C4046160031FFC0080A08001228004E3B1 +S315400147F0C20420047FFFB4699010201B111FE00002 +S31540014800133000007FFFF43294146160C404616088 +S31540014810033FFC0080A08001228004D0C204200412 +S315400148207FFFB45E9010201C1110000092102010E2 +S315400148307FFFF4279414616003000070C404A168EB +S31540014840840880010300002080A0800102800004CA +S31540014850010000007FFFB4519010201DC024A168C3 +S3154001486011002000130FC0007FFFF41994146160FA +S31540014870C4046160030E000080A08001228004AF61 +S31540014880C20420047FFFB4459010201E111FDFFF94 +S3154001489013100000901223FF7FFFF40D9414616002 +S315400148A0C40461600311FFFF821063FF80A0800191 +S315400148B022800499C40420047FFFB4389010201F3D +S315400148C0111FD000130FF0007FFFF40194146160B3 +S315400148D0C40461600311FC8080A0800122800486AB +S315400148E0C20420047FFFB42D90102021111FDFFF49 +S315400148F094146160901223FF7FFFF3F59210000834 +S31540014900C40461600313FBFF821063FF80A0800132 +S315400149102280046FC40420047FFFB420901020201D +S315400149207FFFF6281103C0009007BFC8C024A168C5 +S315400149307FFFF3F692146160C4046160C207BFC889 +S3154001494080A0800122800459C40420047FFFB4134F +S315400149509010201309100080921461607FFFF3EBE1 +S31540014960901121C005100080C200A1C0C40461603D +S3154001497080A0800102800442071000807FFFB407B7 +S31540014980901020139016E1D87FFFF3E092146160F6 +S31540014990C4046160C206E1D880A080010280042D72 +S315400149A0091000807FFFB3FD901020139016A1D00F +S315400149B07FFFF3D692146160C4046160C20721F897 +S315400149C080A0800122800413C40420047FFFB3F336 +S315400149D090102013C024A168901561F07FFFF3CB9E +S315400149E092146160C4046160C20721F880A080010D +S315400149F0228003F8C40420047FFFB3E890102013FB +S31540014A00C024A1689014E1E07FFFF3C09214616075 +S31540014A10C204E1E0C404616080A08001228003E415 +S31540014A20C20660047FFFB3DD9010201305100C0011 +S31540014A30861020009010001492146160C43FBFF8A4 +S31540014A4005300F78070C00088610E0017FFFF3AFB1 +S31540014A50C43FBFF0C40461600310040080A080011C +S31540014A60228003CBC20420047FFFB3CC90102013D5 +S31540014A70A607BFF0921461607FFFF3A49010001364 +S31540014A80C20721F8C404616080A08001028003B09E +S31540014A90051000807FFFB3C1901020139015E1B837 +S31540014AA07FFFF39A92146160C204A1688330600E5D +S31540014AB08208600380A060020280000401000000B9 +S31540014AC07FFFB3B690102013C024A1687FFFF47F07 +S31540014AD01111F2000310E80080A20001128002EBDE +S31540014AE003100080C200616880A06000128002E766 +S31540014AF0010000007FFFF5B3111000001101F58997 +S31540014B007FFFF472901221E20308E96480A200015A +S31540014B10128002DB01000000C204A16880A060008F +S31540014B20128002D7010000007FFFF4681112A2082B +S31540014B300311410080A20001128002CE0100000053 +S31540014B40C204A16880A06000128002CA0100000070 +S31540014B507FFFF59C11001000901000149215E1B8EA +S31540014B607FFFF35194146160C404616003100C002B +S31540014B7080A080012280036EC20420047FFFB38798 +S31540014B80901020149015E1B8921000137FFFF34B5B +S31540014B9094146160C40461600320000080A0800118 +S31540014BA02280035BC20420047FFFB37C9010201453 +S31540014BB07FFFF38E90102001030FE00080A20001D9 +S31540014BC0128002A901000000C204A16880A0600011 +S31540014BD0128002A5010000007FFFF37C90102001A6 +S31540014BE0030FFC0080A200010280034280A2600004 +S31540014BF07FFFB36A901020147FFFF57211101000E9 +S31540014C00D41EE1D87FFFF3FFD01DE1B8C206A1D083 +S31540014C10D024616080A040080280032BD224200466 +S31540014C207FFFB35E901020227FFFF56611100000D2 +S31540014C30050FFC00861020009010001492100013FE +S31540014C40C43FBFF8050F2800070400808610E0F036 +S31540014C50941461607FFFF314C43FBFF0C4046160E4 +S31540014C60030FFC0080A0800122800313C2042004AC +S31540014C707FFFB34A901020157FFFF55211200000A7 +S31540014C80050FFC00861020009010001492100013AE +S31540014C90C43FBFF805001400070000408610E0013C +S31540014CA0941461607FFFF300C43FBFF0C4046160A8 +S31540014CB0030FFC0080A08001228002FBC204200475 +S31540014CC07FFFB336901020157FFFF53E113000006F +S31540014CD0052FFC008610200090100014921000133E +S31540014CE0C43FBFF805201400070000408610E001CC +S31540014CF0941461607FFFF2ECC43FBFF0C40461606D +S31540014D00032FFC0080A08001228002E3C20420041C +S31540014D107FFFB322901020157FFFF52A1110000066 +S31540014D20050FFC0086102000901000149215A1C8B2 +S31540014D30C43FBFF87FFFF2DC94146160C404616034 +S31540014D40C205A1C880A08001228002CCC4042004EF +S31540014D507FFFB312901020157FFFF51A1120000036 +S31540014D60050FFC0086102000901000149215A1C872 +S31540014D70C43FBFF805001400070000408610E0015B +S31540014D80941461607FFFF2C8C43FBFF0C404616000 +S31540014D90C205A1C880A08001228002B1C4042004BA +S31540014DA07FFFB2FE901020157FFFF50611300000FF +S31540014DB0052FFC0086102000901000149215A1C802 +S31540014DC0C43FBFF805201400070000408610E001EB +S31540014DD0941461607FFFF2B4C43FBFF0C205A1C81D +S31540014DE0C404616080A0800102800296091000809F +S31540014DF07FFFB2EA901020157FFFF4F211100000F8 +S31540014E00050FFC008610200190100014921000132B +S31540014E10C43FBFF80510000086102001941461605C +S31540014E207FFFF2A6C43FBFF0C404616003100000D7 +S31540014E3080A080012280027FC20420047FFFB2D776 +S31540014E40901020157FFFF4DF112000009010001410 +S31540014E50921000137FFFF29994146160C40461605B +S31540014E600310000080A080012280026EC20420044B +S31540014E707FFFB2CA901020157FFFF4D21130000097 +S31540014E80052FFC008610200190100014921000138B +S31540014E90C43FBFF87FFFF28994146160C404616026 +S31540014EA00330000080A080012280025AC2042004FF +S31540014EB07FFFB2BA901020157FFFF4C21110000097 +S31540014EC0050FFEAE071CD2E88410A1548610E011EE +S31540014ED09010001492100013C43FBFF8050FFC0454 +S31540014EE0072F26158410A0128610E23194146160B2 +S31540014EF07FFFF280C43FBFF0C4046160030FFEA789 +S31540014F008210629680A080012280023CC404200463 +S31540014F107FFFB2A2901020157FFFF4AA1120000056 +S31540014F2090100014921000137FFFF2729414616086 +S31540014F30C4046160030FFEA78210629680A08001BF +S31540014F4022800228C40420047FFFB29490102015C9 +S31540014F507FFFF49C11300000052FFC04072F261516 +S31540014F608410A0128610E2319010001492100013A2 +S31540014F70C43FBFF07FFFF25F94146160C404616077 +S31540014F80032FFEA78210629680A080012280020F25 +S31540014F90C40420047FFFB281901020157FFFF4895D +S31540014FA011100000051038008610200090100014E2 +S31540014FB092100013C43FBFF8051010008610200060 +S31540014FC0941461607FFFF24BC43FBFF0C40461603B +S31540014FD00310240080A08001228001F8C20420042D +S31540014FE07FFFB26E901020157FFFF47611200000EE +S31540014FF090100014921000137FFFF23E94146160EA +S31540015000C40461600310240080A08001228001E76E +S31540015010C20420047FFFB261901020157FFFF4691E +S315400150201130000090100014921000137FFFF231EE +S3154001503094146160C40461600310240080A080015F +S31540015040228001D6C20420047FFFB254901020155D +S315400150507FFFF45C1110000011002000130FE000E7 +S315400150607FFFF3109212600180A22000128001C8D6 +S31540015070010000007FFFF4531120000011002000C1 +S31540015080130FE0007FFFF3079212600180A2200018 +S31540015090128001BC010000007FFFF44A113000007C +S315400150A011002000130FE0007FFFF2FE9212600113 +S315400150B080A22000128001B0010000007FFFF44170 +S315400150C011100000050FFC008610200090100014FE +S315400150D0921461607FFFF20DC43FBFF8C404616062 +S315400150E0C207BFF880A080012280019AC40420042F +S315400150F07FFFB22A901020157FFFF4321120000065 +S31540015100901000147FFFF20192146160C404616043 +S31540015110C207BFF880A0800122800185C404200413 +S315400151207FFFB21E901020157FFFF426113000003C +S31540015130901000147FFFF1F592146160C404616020 +S31540015140C207BFF880A0800122800170C4042004F8 +S315400151507FFFB212901020157FFFF41A1110000044 +S315400151602B0FDFFF901563FF7FFFF2D8AA1563FF70 +S3154001517080A2001502800004010000007FFFB207F3 +S31540015180901020157FFFF40F11200000110FDFFF53 +S315400151907FFFF2CE901223FF030FE00080A20001B1 +S315400151A002800004010000007FFFB1FC9010201531 +S315400151B07FFFF404113000002B0FDFFF901563FFD2 +S315400151C07FFFF2C2AA1563FF80A200150280000488 +S315400151D0010000007FFFB1F1901020157FFFF3F928 +S315400151E0901020007FFFF2C190146160C404616099 +S315400151F0032FFE0080A0800122800140C2042004CA +S315400152007FFFB1E6901020162B1001247FFFF2C1DB +S3154001521090156168C4056168032FF00080A0800184 +S3154001522002800004010000007FFFB1DC90102016CF +S315400152307FFFF2C290156168C4056168030FE00003 +S3154001524080A0800102800004010000007FFFB1D3ED +S31540015250901020167FFFF2C990146160C40461600A +S31540015260030FFBF7821063F080A080012280011CAE +S31540015270C40420047FFFB1C9901020169215E1B8ED +S31540015280901000147FFFF19B94146160C204A168E1 +S315400152908330600E8208600780A0600202800005AC +S315400152A0031000807FFFB1BD9010201703100080CE +S315400152B0C400617003100046E40060F8821060F893 +S315400152C080A0400202800005031000807FFFB1B339 +S315400152D09010201803100080C200617480A0401213 +S315400152E002800005031000807FFFB1AC90102018AA +S315400152F003100080C200617880A06000128000F433 +S315400153000100000003100080C200617C80A06000A3 +S31540015310128000EC010000007FFFF14E0100000009 +S3154001532080A220010280052D01000000050C4029C4 +S315400153300723CD1B8410A0068610E09B9010001415 +S31540015340C027BFF0C027BFF4C43FBFF82910008172 +S315400153507FFFF1962B100082AA1560A0A4102000B1 +S31540015360A81520A0AC146160BA1000151080000881 +S31540015370AE1000107FFFB18990102019A404A0043B +S3154001538080A4A400228000172B100084C2050012BD +S31540015390C224C000901000137FFFF18792100016BF +S315400153A0832CA001C4040000C605400180A0C002B0 +S315400153B012BFFFF182074001C4006004C205E00448 +S315400153C080A0800112BFFFEC01000000A404A004EC +S315400153D080A4A40032BFFFEFC20500122B10008447 +S315400153E0A2146160AA1560A0A4102000AE10001599 +S315400153F010800008AC1000107FFFB1689010201A91 +S31540015400A404A00880A4A4000280001501000000A5 +S31540015410C2050012C224C000921000117FFFF13B69 +S3154001542090100013C4054012C204000080A0800100 +S3154001543012BFFFF28205C012C4006004C205A00477 +S3154001544080A0800112BFFFED01000000A404A00866 +S3154001545080A4A40032BFFFF0C205001281C7E00854 +S3154001546081E800007FFFB14D9010200F30BFF69AC2 +S315400154707FFFB14A9010200F10BFF68C110048EA09 +S315400154807FFFB1469010200F10BFF646D01DE1B800 +S315400154907FFFB1429010200F10BFF64FD01CE1E0C4 +S315400154A07FFFB13E9010200F10BFF608D41CE1E0FB +S315400154B07FFFB13A9010200F10BFF5F411151BE88C +S315400154C07FFFB1369010200F10BFF5E011151BC0BC +S315400154D07FFFB1329010200F10BFF5C4901020000D +S315400154E07FFFB12E9010200F10BFF5B011351BC0B4 +S315400154F07FFFB12A9010200F10BFF57AD01CE1E052 +S315400155007FFFB1269010200F10BFF583D01D61F0AB +S315400155107FFFB1229010200F10BFF565D01DE1B875 +S315400155207FFFB11E9010200F10BFF53FD41D61F0D3 +S315400155307FFFB11A9010200F10BFF52ED41CE1E069 +S315400155407FFFB1169010200F10BFF51A11151BE8F9 +S315400155507FFFB1129010200F10BFF50611151BC029 +S315400155607FFFB10E9010200F10BFF4DA11351BC02A +S315400155707FFFB10A9010200F10BFF4E69010200073 +S315400155807FFFB1069010200E30BFF4BF7FFFB103FD +S315400155909010200E10BFF4B11128C6AF7FFFB0FFA7 +S315400155A09010200E10BFF4A11108C6AF7FFFB0FBCB +S315400155B09010200E10BFF4911128C6AF7FFFB0F7AF +S315400155C09010200E10BFF4822108C6AF7FFFB0F3C2 +S315400155D09010200D30BFF4517FFFB0F09010200D98 +S315400155E010BFF444371000807FFFB0EC9010200CC0 +S315400155F010BFF3A2271000807FFFB0E89010200B68 +S3154001560030BFF34F7FFFB0E59010201110BFFA8FE6 +S31540015610110020007FFFB0E19010201110BFFA6DFC +S31540015620110020007FFFB0DD9010201110BFFA5C01 +S31540015630111E607E7FFFB0D99010201110BFFA4B2A +S315400156401111BBFE7FFFB0D59010201010BFF85E40 +S31540015650091000807FFFB0D19010201010BFF84F85 +S31540015660111000007FFFB0CD9010201430BFFD5BBC +S315400156707FFFB0CA9010202330BFFD367FFFB0C7F1 +S315400156809010202330BFFD297FFFB0C49010201316 +S3154001569030BFFD197FFFB0C19010201210BFFC4EE4 +S315400156A0111FE00012BFF30A01000000C204A16805 +S315400156B080A0600002BFF3080100000030BFF30480 +S315400156C07FFFB0B69010201830BFFF147FFFB0B3F4 +S315400156D09010201810BFFF0D031000800303FF1226 +S315400156E08210604A80A0800112BFFEE39215E1B8A4 +S315400156F010BFFEE59010001480A0600002BFFEC4FA +S315400157002B10012430BFFEBFC207BFFC80A0800121 +S3154001571012BFFE9001000000C204A16880A0600093 +S3154001572002BFFE8E0100000030BFFE8AC207BFFCE9 +S3154001573080A0800112BFFE7B01000000C204A16867 +S3154001574080A0600002BFFE790100000030BFFE75F7 +S31540015750C207BFFC80A0800112BFFE6601000000A7 +S31540015760C204A16880A0600002BFFE64010000007F +S3154001577030BFFE607FFFB0899010201530BFFE50CC +S315400157807FFFB0869010201530BFFE447FFFB08367 +S315400157909010201530BFFE3880A0600002BFFE2D5C +S315400157A00100000030BFFE2980A0600002BFFE1C40 +S315400157B00100000030BFFE1880A0600002BFFE0B52 +S315400157C00100000030BFFE07032C1B3482106030FD +S315400157D080A0800112BFFDF00100000030BFFDF046 +S315400157E0032C1B348210603080A0800112BFFDD78C +S315400157F00100000030BFFDD7032C1B348210602FFF +S3154001580080A0800112BFFDC30100000030BFFDC36F +S3154001581080A0600312BFFDA70100000030BFFDA7B5 +S3154001582080A0600312BFFD930100000030BFFD93CD +S3154001583080A0600212BFFD820100000030BFFD82E0 +S31540015840C4042004881121C8C201200480A080011B +S3154001585012BFFD680100000030BFFD6807100080DF +S315400158608610E1C8C200E00480A0800112BFFD4D50 +S315400158700100000030BFFD4D09100080881121C88C +S31540015880C201200480A0800112BFFD320100000048 +S3154001589030BFFD3280A0600112BFFD1E0100000035 +S315400158A030BFFD1E80A0600112BFFD060100000051 +S315400158B030BFFD0680A0600002BFFCF00100000081 +S315400158C030BFFCEC071000808610E1D0C200E00436 +S315400158D080A0400912BFFCD301000000C204A168A8 +S315400158E080A0600002BFFCD10100000030BFFCCDAA +S315400158F012BFFCC001000000C204A16880A0600084 +S3154001590002BFFCBE0100000030BFFCBA80A06000AF +S3154001591012BFFCA601000000C204A16880A060007D +S3154001592002BFFCA40100000030BFFCA080A06000C3 +S3154001593012BFFC9301000000C204A16880A0600070 +S3154001594002BFFC929015E1B830BFFC8D8410A1F8DE +S31540015950C200A004C404200480A0800112BFFC4EF2 +S3154001596001000000C404A168030000708210601F9A +S3154001597084088001030000108210601080A080011D +S3154001598012BFFC459015E1B830BFFC4680A06000CF +S3154001599012BFFC3601000000C204A16880A060006D +S315400159A002BFFC35A607BFF030BFFC30C40420045B +S315400159B080A0800112BFFC1C03100080C2006168F8 +S315400159C080A0600002BFFC1B05100C0030BFFC1616 +S315400159D009100080881121F8C201200480A08001AD +S315400159E012BFFC0603100080C4006168030000700A +S315400159F08210601F8408800103000010821060102D +S31540015A0080A0800112BFFBFD0100000030BFFBFDFD +S31540015A10071000808610E1F8C200E00480A08001F2 +S31540015A2012BFFBEB01000000C404A1680300007033 +S31540015A308210601F840880010300001082106010EC +S31540015A4080A0800112BFFBE20100000030BFFBE2F3 +S31540015A50C4042004881121D8C201200480A08001F9 +S31540015A6012BFFBD101000000C204A16880A0600002 +S31540015A7002BFFBD09016A1D030BFFBCBC40420049B +S31540015A808610E1C0C200E00480A0800112BFFBBCC9 +S31540015A9001000000C204A16880A0600002BFFBBBF8 +S31540015AA09016E1D830BFFBB6C207BFCC80A08001BB +S31540015AB012BFFBA703100080C200616880A060008E +S31540015AC002BFFBA60910008030BFFBA103300000D6 +S31540015AD08210602080A0800112BFFB90010000006F +S31540015AE0C204A16880A0600002BFFB8E01000000D5 +S31540015AF030BFFB8A80A0600012BFFB7B0100000023 +S31540015B00C204A16880A0600002BFFB7A111FDFFFBB +S31540015B1030BFFB750338000080A0800112BFFB67D0 +S31540015B2001000000C204A16880A0600002BFFB66BC +S31540015B30111FD00030BFFB6180A0600012BFFB5235 +S31540015B4003100080C200616880A0600002BFFB5163 +S31540015B50111FDFFF30BFFB4C80A0600012BFFB313D +S31540015B6001000000C204A16880A0600002BFFB30B2 +S31540015B701110000030BFFB2B80A0600012BFFB1E3E +S31540015B8001000000C204A16880A0600002BFFB1DA5 +S31540015B90111FE00030BFFB18C20420048610E21832 +S31540015BA0C400E10480A0800112BFFAFC031000800A +S31540015BB0C4006168030000708210601F8408800180 +S31540015BC0030000108210600880A0800112BFFAF322 +S31540015BD00100000030BFFAF3C204200480A0800116 +S31540015BE012BFFADF03100080C40061680300007031 +S31540015BF08210601F84088001030000108210600437 +S31540015C0080A0800112BFFAD60100000030BFFAD64B +S31540015C10C20420048610E218C400E0D480A08001AA +S31540015C2012BFFAC003100080C4006168030000700F +S31540015C308210601F840880010300001082106008F2 +S31540015C4080A0800112BFFAB70100000030BFFAB749 +S31540015C50C204200480A0800112BFFAA30310008071 +S31540015C60C4006168030000708210601F84088001CF +S31540015C70030000108210600880A0800112BFFA9ACA +S31540015C800100000030BFFA9AC20420048610E218CF +S31540015C90C400E0A480A0800112BFFA840100000084 +S31540015CA0C404A168030000708210601F840880014B +S31540015CB0030000108210600480A0800112BFFA7BAD +S31540015CC00100000030BFFA7BC206600480A080015B +S31540015CD012BFF9CD01000000C204A16880A0600096 +S31540015CE002BFF9CC9014E1E030BFF9C7C2066004A7 +S31540015CF080A0800112BFF9B901000000C204A16869 +S31540015D0080A0600002BFF9B89014E1E030BFF9B35A +S31540015D10C206600480A0800112BFF9A501000000FF +S31540015D20C204A16880A0600002BFF9A49014E1E01A +S31540015D3030BFF99FC206600480A0800112BFF9916D +S31540015D4003100080C200616880A0600002BFF99024 +S31540015D509014E1E030BFF98B071000808610E1F81E +S31540015D60C200E00480A0800112BFF96D010000006D +S31540015D70C404A168030000708210601F840880017A +S31540015D80030000108210601080A0800112BFF964E8 +S31540015D909015A1C810BFF9669215E1B8C206600414 +S31540015DA080A0800112BFF95303100080C2006168D0 +S31540015DB080A0600002BFF9529015A1C830BFF94DCD +S31540015DC009100080881121F8C201200480A08001B9 +S31540015DD012BFF93C01000000C404A1680300007031 +S31540015DE08210601F84088001030000108210601039 +S31540015DF080A0800112BFF9330100000030BFF933A2 +S31540015E00071000808610E1C8C200E00480A080012E +S31540015E1012BFF92103100080C200616880A06000B2 +S31540015E2002BFF9209015A1C830BFF91B09100080A7 +S31540015E30881121F8C201200480A0800112BFF8FD1B +S31540015E4001000000C404A168030000708210601FB5 +S31540015E5084088001030000108210601080A0800138 +S31540015E6012BFF8F49010001D10BFF8F69215E1B874 +S31540015E70C206600480A0800112BFF8E303100080CF +S31540015E80C200616880A0600002BFF8E29010001D68 +S31540015E9030BFF8DD071000808610E1F8C200E0044B +S31540015EA080A0800112BFF8CC01000000C404A168A3 +S31540015EB0030000708210601F8408800103000010F7 +S31540015EC08210601080A0800112BFF8C3010000005B +S31540015ED030BFF8C3C207BFD480A0800112BFF8B259 +S31540015EE003100080C200616880A0600002BFF8B163 +S31540015EF00310008030BFF8AC09100080881121F8EA +S31540015F00C201200480A0800112BFF88E010000006A +S31540015F10C404A168030000708210601F84088001D8 +S31540015F20030000108210601080A0800112BFF88526 +S31540015F309010001410BFF8879215E1B8C2066004AC +S31540015F4080A0800112BFF87401000000C204A1685C +S31540015F5080A0600002BFF8739010001430BFF86E45 +S31540015F60071000808610E1D8C200E00480A08001BD +S31540015F7012BFF85E01000000C204A16880A0600063 +S31540015F8002BFF85D9010001430BFF8588810E1C088 +S31540015F90C201200480A0800112BFF849031000808D +S31540015FA0C200616880A0600002BFF84890100014EA +S31540015FB030BFF84303003A9A8210630F80A08001F4 +S31540015FC012BFF7BD03100080C200616880A0600067 +S31540015FD002BFF7BC050006AF30BFF7B780A060002F +S31540015FE012BFF78103100080C4006168030000708E +S31540015FF08210601F8408800103000010821060082F +S3154001600080A0800112BFF7780500400010BFF77AE3 +S315400160100700C00009100080881121F8C201200440 +S3154001602080A0800112BFF6EF01000000C404A16800 +S31540016030030000708210601F840880010300001075 +S315400160408210601080A0800112BFF6E69014E1E054 +S3154001605010BFF6E89215E1B8C206600480A080013F +S3154001606012BFF6D501000000C204A16880A06000FD +S3154001607002BFF6D49014E1E030BFF6CFC206600409 +S3154001608080A0800112BFF6C101000000C204A168D0 +S3154001609080A0600002BFF6C09014E1E030BFF6BBBD +S315400160A0C206600480A0800112BFF6AD0100000067 +S315400160B0C204A16880A0600002BFF6AC9014E1E082 +S315400160C030BFF6A7C206600480A0800112BFF699D0 +S315400160D003100080C200616880A0600002BFF6988C +S315400160E09014E1E030BFF693071000808610E1F886 +S315400160F0C200E00480A0800112BFF67401000000D6 +S31540016100C404A168030000708210601F84088001E6 +S31540016110030000108210601080A0800112BFF66B50 +S315400161200100000030BFF66BC206600480A080010A +S3154001613012BFF65B03100080C200616880A0600058 +S3154001614002BFF65A9015A1C830BFF6550910008016 +S31540016150881121F8C201200480A0800112BFF644B3 +S3154001616001000000C404A168030000708210601F92 +S3154001617084088001030000108210601080A0800115 +S3154001618012BFF63B0100000030BFF63B071000800E +S315400161908610E1D8C200E00480A0800112BFF62932 +S315400161A001000000C204A16880A0600002BFF62879 +S315400161B09015A1C830BFF623071000808610E1D0A4 +S315400161C0C200E00480A0800112BFF61203100080D5 +S315400161D0C200616880A0600002BFF611091000800C +S315400161E030BFF60CC206600480A0800112BFF5E004 +S315400161F001000000C204A16880A0600002BFF5DF73 +S315400162009010001D30BFF5DA8810E1C0C2012004AC +S3154001621080A0800112BFF5CB03100080C2006168E7 +S3154001622080A0600002BFF5CA9010001D30BFF5C5C1 +S31540016230071000808610E1F8C200E00480A08001CA +S3154001624012BFF5B201000000C404A168030000704A +S315400162508210601F840880010300001082106010C4 +S3154001626080A0800112BFF5A90910008030BFF5AAB0 +S31540016270C207BFD480A0800112BFF59803100080E9 +S31540016280C200616880A0600002BFF59703100080DC +S3154001629030BFF59209100080881121F8C20120040F +S315400162A080A0800112BFF57401000000C404A168FA +S315400162B0030000708210601F8408800103000010F3 +S315400162C08210601080A0800112BFF56B90100014FF +S315400162D010BFF56D9215E1B8C206600480A0800139 +S315400162E012BFF55A01000000C204A16880A06000F7 +S315400162F002BFF5599010001430BFF554C207BFCC08 +S3154001630080A0800112BFF54603100080C20061687B +S3154001631080A0600002BFF5459010001430BFF540E3 +S31540016320071000808610E1D0C200E00480A0800101 +S3154001633012BFF52F03100080C4006168030000708E +S315400163408210601F840880010300001082106002E1 +S3154001635080A0800112BFF5260100000030BFF5265E +S3154001636012BFF50001000000C204A16880A06000D0 +S3154001637002BFF4FF1110000030BFF4FA12BFF4EE71 +S3154001638001000000C204A16880A0600002BFF4EDD4 +S315400163901130000030BFF4E812BFF4DC0100000008 +S315400163A0C204A16880A0600002BFF4DB1130000086 +S315400163B030BFF4D612BFF4CA03100080C200616830 +S315400163C080A0600002BFF4C91110000030BFF4C4C0 +S315400163D0C20420048610E320C400E17C80A0800131 +S315400163E012BFF4B301000000C404A16803000070A9 +S315400163F08210601F8408800103000010821060042F +S3154001640080A0800112BFF4AA0100000030BFF4AAA7 +S31540016410C204200480A0800112BFF497010000004D +S31540016420C404A168030000708210601F84088001C3 +S31540016430030000108210600480A0800112BFF48E18 +S315400164401110008110BFF49094146160C2042004BD +S315400164508610E320C400E14C80A0800112BFF4788D +S3154001646001000000C404A168030000708210601F8F +S3154001647084088001030000108210600880A080011A +S3154001648012BFF46F1110008110BFF4719414616052 +S315400164907FFFAD429010201010BFF45E11100081B5 +S315400164A0C206600480A0800112BFF3B9010000005A +S315400164B0C204A16880A0600002BFF3B89014E1E075 +S315400164C030BFF3B3C206600480A0800112BFF3A5BA +S315400164D001000000C204A16880A0600002BFF3A4CD +S315400164E09014E1E030BFF39FC206600480A08001B2 +S315400164F012BFF39101000000C204A16880A06000B0 +S3154001650002BFF3909014E1E030BFF38BC206600402 +S3154001651080A0800112BFF37D03100080C200616834 +S3154001652080A0600002BFF37C9014E1E030BFF377B6 +S3154001653009100080881121F8C201200480A0800141 +S3154001654012BFF35A03100080C40061680300007053 +S315400165508210601F840880010300001082106010C1 +S3154001656080A0800112BFF3519015A1C810BFF3530B +S315400165709215E1B8071000808610E1F8C200E004E8 +S3154001658080A0800112BFF33B0100000030BFF33B06 +S3154001659009100080881121D0C201200480A0800109 +S315400165A012BFF31801000000C204A16880A0600078 +S315400165B002BFF3179016A1D030BFF3120710008027 +S315400165C08610E1D8C200E00480A0800112BFF30228 +S315400165D001000000C204A16880A0600002BFF3016F +S315400165E09016A1D030BFF2FC09100080881121C855 +S315400165F0C201200480A0800112BFF2EC010000001C +S31540016600C204A16880A0600002BFF2EB9016E1D8F7 +S3154001661030BFF2E6071000808610E1C8C200E004F0 +S3154001662080A0800112BFF2D603100080C2006168CB +S3154001663080A0600002BFF2D59015A1C830BFF2D04C +S3154001664009100080881121F8C201200480A0800130 +S3154001665012BFF2B10100000030BFF2B1C2066004C0 +S3154001666080A0800112BFF29001000000C204A1681F +S3154001667080A0600002BFF28F9010001D30BFF28AE9 +S31540016680071000808610E1C8C200E00480A08001A6 +S3154001669012BFF27A01000000C204A16880A0600026 +S315400166A002BFF2799010001D30BFF274C207BFFCE1 +S315400166B080A0800112BFF26603100080C2006168AB +S315400166C080A0600002BFF2659010001D30BFF260ED +S315400166D0881721F8C201200480A0800112BFF2422E +S315400166E00100000030BFF242C4042004C206600427 +S315400166F080A0800112BFF21E01000000C204A16801 +S3154001670080A0600002BFF21D9010001430BFF21845 +S315400167108615A1C8C200E00480A0800112BFF2091B +S3154001672001000000C204A16880A0600002BFF20817 +S315400167309010001430BFF203C2042004C407BFFC0A +S3154001674080A0800112BFF1F303100080C20061688E +S3154001675080A0600002BFF1F22D10008030BFF1ED44 +S3154001676080A2400112BFEFA201000000C204A1684D +S3154001677080A0600002BFEFA11111FC0030BFEF9C69 +S3154001678080A2400112BFEF9003100080C2006168F1 +S3154001679080A0600022BFEF8F113C02AF30BFEF8A6D +S315400167A012BFEEDB01000000C204A16880A06000B8 +S315400167B002BFEED90100000030BFEED512BFEECCCC +S315400167C001000000C204A16880A0600002BFEECAB9 +S315400167D00100000030BFEEC67FFFAC70901020195B +S315400167E010BFFAD4050C402981D8200081C3E008A6 +S315400167F00100000081D8200082102400C0A043007F +S3154001680081C3E00801000000853220109132201832 +S31540016810900A200F8408A00380A00008826020000F +S3154001682081C3E008900880019DE3BF887FFFEB7A32 +S315400168309010200C808A200812800004010000007C +S3154001684081C7E00891E820007FFFAC4D9010200EF3 +S31540016850C2800320853060188088A00F028000DD49 +S315400168602F100123833060108208600380A06002EC +S31540016870028000E0C225E0C880A06003028000FFDC +S3154001688080A06001028000EC2910010C2310010C4C +S315400168902110010C2B10010C2710010C2510010CA5 +S315400168A081D8200081D8200082102400C0A0430056 +S315400168B0031000A1051000A0821060008410A00002 +S315400168C0873060048610E00188100003C878800094 +S315400168D08800A004C67900008610200AC6784000C8 +S315400168E0C8046000C60420041B008000190800008B +S315400168F09A13600A993B0004980B0003992B2002D6 +S3154001690098030001DA7B00001B010000171000000C +S315400169109813608E973AC004960AC003972AE002FC +S315400169209602C001D87AC000171C00001901C000A8 +S31540016930893AC0049813208E860900038728E0020D +S315400169408600C001D878C0003B1000A28200600CCE +S31540016950BA176000873760048610E001C6784000A8 +S315400169608213601E86076008C278C000821020002C +S315400169708807600C86100001C67900002D1000A220 +S315400169809A076004AC15A1008735A004B81000161B +S315400169908610E001C67B4000B405A008C27E800097 +S315400169A01B1000C0B605A004861360008330E004C6 +S315400169B09810601AD87EC000C02360001B048D1554 +S315400169C09A136278DA20E004DA05E0C83310010050 +S315400169D09A03600CB21660008605A00CB010200028 +S315400169E0C627BFF8DA27BFFC901000189210200383 +S315400169F0C227BFF0C427BFEC40000AB0C827BFF486 +S31540016A00DA07BFFC992A000DC607BFF8980300199B +S31540016A10993320049813201ED878C000B00620016F +S31540016A208600E00480A62008C207BFF0C407BFEC79 +S31540016A3012BFFFECC807BFF417100020DE05200C7B +S31540016A408612E168C822E16809100020D005600875 +S31540016A50D804A014DA04E010D2042004D40460005F +S31540016A60960BE001972AC008C6212160880A600377 +S31540016A708929000A8812C004960B2002972AC00D64 +S31540016A809611000B8530A004D620E0209610600EAA +S31540016A90D620E0289608BFF0840B20018528800D7A +S31540016AA0841100028210601EC420E02CC420E01430 +S31540016AB0050100008410A01EC220E010C420E0049D +S31540016AC0F620E00CF420E018F620E024050076419B +S31540016AD0031000208410A1C082106000C420E00889 +S31540016AE0833060048210601EC220E01C82102100A7 +S31540016AF0D6A04320C4800320C280432084102001B5 +S31540016B0082102200C4A04320C68043208610200064 +S31540016B10C6A04320C4A0032081D820007FFFEABE3F +S31540016B2090102000913A200C808A20030280006553 +S31540016B3001000000C280032082102100C280432050 +S31540016B4082102200C2804320C80420048809200301 +S31540016B50C2046000C605200CC4056008D404A01414 +S31540016B60D604E010832900019808E0019A0AA001A1 +S31540016B70992B00029B2B400B981300019A13000D91 +S31540016B80C803400080A120000280000388136004EE +S31540016B9030800000D201000011048D159012227838 +S31540016BA080A2400812BFFFFB111000009E08E002C0 +S31540016BB0D00200009F2BC0029E13C001DE03C0001D +S31540016BC080A3C008228000428608E003308000008E +S31540016BD02310010C2110010CC025E0C82B10010C1B +S31540016BE02910010C2710010C10BFFF2E2510010C96 +S31540016BF02110010C2910010C2510010C2310010C48 +S31540016C008210203F2B10010C2710010CC2242004B6 +S31540016C10C224A014C225200C8210201AC22460006E +S31540016C2082102014C22560088210200E10BFFF1D5D +S31540016C30C224E0102510010C2310010C8210203FC4 +S31540016C402110010C2B10010C2710010CC225200C20 +S31540016C50C224A01482102019C22460008210207F11 +S31540016C60C224200482102013C22560088210200D00 +S31540016C7010BFFF0CC224E0102110010C2710010C9B +S31540016C802310010C8210200F2B10010C2910010C2E +S31540016C902510010CC224E010C22420048210201CBD +S31540016CA0C224600082102015C22560088210207F10 +S31540016CB0C225200C8210203F10BFFEFAC224A01428 +S31540016CC07FFFC4D30100000030BFFF9B8528C0026F +S31540016CD082108001C20040000321D95082106321F5 +S31540016CE0C2210000C401000080A08001028000038F +S31540016CF001000000308000008210000D05048D1552 +S31540016D008410A278072AF37B8610E301C438400039 +S31540016D10C4384000C203400080A0400902800003FD +S31540016D200100000030800000C4010000032AF37B0B +S31540016D308210630180A0800112BFFFFBC205E0C83B +S31540016D40940AA0038200600C972A800B84102001CC +S31540016D50AE13000B85288001B0102000EE25C0003F +S31540016D60C0A0022092102003C227BFF0C427BFEC67 +S31540016D70400009D290100018C207BFF0912A0001C5 +S31540016D80C606400880A0C01712800008C407BFECA1 +S31540016D90B006200180A6200802800005AE05C0028B +S31540016DA010BFFFF0EE25C00030800000C0A00220D9 +S31540016DB0AE102003B0102000852DE002C4058002EC +S31540016DC08608A06080A00003C227BFF0B04000182B +S31540016DD0C427BFEC9005FFFD400009B8921020037F +S31540016DE0C207BFF0C407BFEC872A000186064003ED +S31540016DF08730E0048610E01E8418C0028088BF9F59 +S31540016E0012800009AE05E00180A5E00B32BFFFEC20 +S31540016E10852DE00280A6200012800004D805200CB2 +S31540016E203080000030800000C8056008DA04200484 +S31540016E30C4046000C604A014C204E010980B2001EB +S31540016E409A0B6003892B0004852B40028608E002D9 +S31540016E50841100028328C001821080019FC0400036 +S31540016E600100000082102400C0A04300C0A00220FF +S31540016E708210200084072020C607200C8608E06087 +S31540016E8080A00003B80720048240000180A70002C9 +S31540016E9032BFFFFBC607200C80A06008228000039A +S31540016EA0C206C00030800000808860400280000435 +S31540016EB08088602032800003C2076008308000006D +S31540016EC08088602032800003C20680003080000046 +S31540016ED0808860201280000301000000308000009D +S31540016EE083480000842860808188A000010000005A +S31540016EF00100000001000000D8042004C80460001D +S31540016F00DA05200CC4056008C604A014C204E010CA +S31540016F10980B20039A0B6001892B0004852B4002B4 +S31540016F208608E001841100028328C0018410A00470 +S31540016F3082108001C20040009210200491D02002AC +S31540016F40010000007FFFE9B490102000913A200C27 +S31540016F50808A200312800005841020007FFFC42C04 +S31540016F60010000008410200082102200C4A04320AA +S31540016F7086102001C6A04320C4A043200310000070 +S31540016F80C4804380C4A043807FFFC48E90102000FC +S31540016F9081D8200030BFFE2B9DE3BFA040000822D0 +S31540016FA001000000808A21001280000401000000D7 +S31540016FB081C7E00891E820007FFFAA9423100120B1 +S31540016FC0912A20047FFFAA6E90022005A214600038 +S31540016FD0C204600480A060000280001A8210200072 +S31540016FE0A010200084044001C8044001C600A0044A +S31540016FF0C200A0089B39201F818360000100000068 +S3154001700001000000010000008479000380A0800196 +S3154001701002800004A00420017FFFAA609010200195 +S3154001702082040010820040108328600284044001DB +S31540017030C400A00480A0A00012BFFFEC840440015C +S3154001704023100120A2146138C204600480A06000AC +S315400170500280001982102000A01020008404400103 +S31540017060C8044001C600A004C200A00881802000D7 +S3154001707001000000010000000100000084710003CE +S3154001708080A0800102800004A00420017FFFAA4362 +S315400170909010200282040010820040108328600272 +S315400170A084044001C400A00480A0A00012BFFFEDEB +S315400170B084044001400008890100000080A22000AC +S315400170C012BFFFBC901020037FFFAA34B0102000EE +S315400170D081C7E00881E800009DE3BFA07FFFAA4B7E +S315400170E001000000912A20047FFFAA259002200476 +S315400170F0400007CF0100000080A221230280000446 +S31540017100010000007FFFAA2590102001400007C61C +S3154001711001000000808A21000280002923100120FD +S31540017120A2146180C204600880A060090280001533 +S3154001713082102000A010200084044001C6044001B2 +S31540017140C800A004C200A0088459000380A08001A1 +S3154001715002800004A00420017FFFAA1090102002A3 +S31540017160820400108200401083286002840440019A +S31540017170C400A00880A0A00912BFFFF18404400109 +S31540017180400007B80100000080A2200002800023D1 +S3154001719001000000400007B30100000080A220006A +S315400171A002800016010000004000079F0100000018 +S315400171B0808A2200128000040100000081C7E00895 +S315400171C091E82000400007F80100000080A220005D +S315400171D00280001A01000000400007F30100000090 +S315400171E080A2200012BFFFF6010000007FFFA9EB3D +S315400171F09010200430BFFFF27FFFA9E890102003D2 +S315400172004000078901000000808A220002BFFFEC8E +S315400172100100000030BFFFEC7FFFA9E09010200382 +S31540017220400007900100000080A2200012BFFFDF4E +S315400172300100000030BFFFF17FFFA9D89010200464 +S3154001724030BFFFE6000000009DE3BFA09410200080 +S315400172501110005C9012227C1310005C9212628025 +S315400172601710005C9612E2881910005C9813228C64 +S3154001727093C2000081C240001080019181C2C000CA +S3154001728081C300001080018E9402A0019402A001E6 +S3154001729080A2A0031280018A0100000087440000F9 +S315400172A08D30E00E8C89A00780A1A000028000C726 +S315400172B001000000AF30E00BAE0DE00780A5E00015 +S315400172C0128000C20100000080A1A0021280003598 +S315400172D00100000025100000E41C8000251000007C +S315400172E029100000A8152104A6100012AA100012A8 +S315400172F0AC100014A1802046A4100000AA10000082 +S3154001730001000000A180204EA810210001000000CC +S31540017310A18000000100000001000000E83CA0300F +S3154001732082A480131280016682A500161280016430 +S315400173300100000001000000010000008744000038 +S315400173408D30E00B8C89A0078CA1A0051280015CD1 +S31540017350A1800000010000000100000001000000C2 +S31540017360E81CA03082A500161280015582A5401264 +S31540017370A41000001280015201000000010000002B +S31540017380874400008D30E00B8C89A0078CA1A003B7 +S315400173901280014B010000001080008C01000000AA +S315400173A080A1A0011280002325100000E41C80006A +S315400173B02510000029100000A8152104A61000126E +S315400173C0AA100012AC100014A1802046A41000009F +S315400173D0AA10000001000000A180204EA810210043 +S315400173E001000000A1800000010000000100000032 +S315400173F001000000E83C800082A480131280013025 +S3154001740082A500161280012E010000000100000035 +S31540017410874400008D30E00B8C89A0078CA1A00227 +S315400174201280012701000000108000680100000061 +S3154001743080A1A00312800065A6100000A210200EB4 +S31540017440A1844000A6100000A1800000A814E0001D +S31540017450AB44000001000000AC14E0000100000054 +S31540017460AF44000080A5200012800115AA8D6E0050 +S3154001747080A540001280011280A5A0001280011053 +S31540017480AF35E00BAE0DE00780A5E0011280010C9F S3154001749001000000A0100000A1844000A6100000D9 -S315400174A0A1800000A210200AA1844000A41000007F -S315400174B0A1800000E8180000AC100000AE100000EA -S315400174C0EC04C012EE04E00480A50016128000E828 -S315400174D080A54017128000E601000000A544000087 -S315400174E0A534A00BA40CA00780A4A002068000E04E -S315400174F00100000021100140A0142200EC1C0000F4 -S31540017500A0042008E81C0000A1844000A610000049 -S31540017510A1800000A210200EA1844000A4100010FA -S31540017520AC100000AE100000A18000000100000078 -S3154001753001000000EC3C8013AC100000AE100000CE -S31540017540E81CC01280A50016128000C980A540170C -S31540017550128000C701000000A5440000A534A00B1D -S31540017560A40CA00780A4A004128000C10100000061 -S3154001757010800002010000008B4440008A09601F10 -S3154001758080A160010280000A8C1000059DE3BFA026 -S315400175908AA1600116BFFFFE0100000081E80000DC -S315400175A08CA1A00116BFFFFE0100000001000000F2 -S315400175B001000000A023A080A02C20078E100010FF -S315400175C0A3480000E2240000C2242004C43C200851 -S315400175D0C83C2010CC3C2018F03C2020F43C20280C -S315400175E0F83C2030FC3C2038D03C2040D43C20485C -S315400175F0D83C2050DC3C2058A5500000E4242060B3 -S315400176008010200882102001841020028610200359 -S31540017610881020048A1020058C10200681900000D5 -S31540017620A42C601F818C8000010000000100000035 -S3154001763001000000030040408210610184100000F7 -S3154001764086100000894440008809201F86100004E6 -S31540017650A010000284004002A210000284004002F1 -S31540017660A410000284004002A610000284004002D9 -S31540017670A810000284004002AA10000284004002C1 -S31540017680AC10000284004002AE10000284004002A9 -S3154001769090100002840040029210000284004002D1 -S315400176A094100002840040029610000284004002B9 -S315400176B098100002840040029A10000284004002A1 -S315400176C09C100002840040029E1000028400400289 -S315400176D081E0000086A0E00116BFFFDE0100000048 -S315400176E003004040821061018410000086100004AE -S315400176F080A400021280003F8400400280A4400220 -S315400177001280003C8400400280A48002128000392D -S315400177108400400280A4C0021280003684004002E8 -S3154001772080A50002128000338400400280A54002F9 -S31540017730128000308400400280A580021280002D14 -S315400177408400400280A5C0021280002A84004002C3 -S3154001775080A20002128000278400400280A24002DB -S31540017760128000248400400280A2800212800021FF -S315400177708400400280A2C0021280001E84004002A2 -S3154001778080A300021280001B8400400280A34002B5 -S31540017790128000188400400280A3800212800015E6 -S315400177A08400400280A3C00212800012840040027D -S315400177B081E0000086A0E00116BFFFCE0100000077 -S315400177C080A020001280000B80A0FFFF12800009DC -S315400177D080A160051280000780A1A00612800005E5 -S315400177E001000000A010000710800006C0242020E0 -S315400177F0A01000079010200110800002D024202004 -S3154001780082100007C400400081888000010000000A -S315400178100100000001000000C4186008C81860108B -S31540017820CC186018F0186020F4186028F8186030F9 -S31540017830FC186038D0186040D4186048D818605099 -S31540017840DC186058E4006060C200600481948000E6 -S31540017850010000000100000001000000A010000727 -S31540017860F004202081C7E00881E8000010BFFFFC3A -S31540017870B01000000100000081D8200081C3E0085B -S31540017880010000001B100144D80361508210200101 -S315400178908328400C1B10014482007FFFD8036154AA -S315400178A082084008932A400C900040098213C00088 -S315400178B07FFFE77D9E104000010000001B10014440 -S315400178C0D8036150821020018328400C1B100144CB -S315400178D082007FFFD8036154932A400C82084008F6 -S315400178E0900040099210000A8213C0007FFFE770A2 -S315400178F09E104000010000001B100144D803615056 -S31540017900821020018328400C1B10014482007FFF16 -S31540017910D8036154932A400C8208400890004009DC -S315400179209210000A8213C0007FFFE7659E10400057 -S31540017930010000001B100144D80361508210200150 -S315400179408328400C1B10014482007FFFD8036154F9 -S3154001795082084008932A400C900040098213C000D7 -S315400179607FFFE7559E104000010000001B100144B7 -S31540017970D803615C821020018328400C1B1001440E -S3154001798082007FFFD803616C932A400C820840082D -S31540017990900040099210000A8213C0007FFFE74C15 -S315400179A09E104000010000001B100144D803615C99 -S315400179B0821020018328400C1B10014482007FFF66 -S315400179C0D803616C932A400C820840089000400914 -S315400179D09210000A8213C0007FFFE7419E104000CB -S315400179E0010000009DE3BF582D100144A210200064 -S315400179F0C205A16080A440011680001BA010200092 -S31540017A002B1001442910014427100144A4102001E0 -S31540017A10D005615C912C8008C205216C90023FFF24 -S31540017A20832C0001900A00187FFFE727900200018E -S31540017A30C204E14C901E0008900A000180A0000893 -S31540017A40A2647FFFA0042001C205A16080A40001B9 -S31540017A5026BFFFF1D005615C80A46000128000035F -S31540017A60B0102000B010200181C7E00881E8000075 -S31540017A701B100144D803615C821020018328400C0D -S31540017A801B10014482007FFFD803616C82084008C5 -S31540017A90932A400C900040098213C0007FFFE70AF9 -S31540017AA09E104000010000001B100144D803615C98 -S31540017AB0821020018328400C1B10014482007FFF65 -S31540017AC0D803616C82084008932A400C9000400913 -S31540017AD08213C0007FFFE7009E10400001000000B6 -S31540017AE0952AA00D0328000094028009D020400069 -S31540017AF09422B000D420600481C3E0080100000054 -S31540017B00033FFFBF821062F89DE38001193FFFBF2B -S31540017B1094132368B407BFF8031000459606800AFC -S31540017B2082106020C222E00C03100044821063E000 -S31540017B30C222E0041B1000449A1363C0033FFFBFF7 -S31540017B40DA26800A90132380331000458210635C45 -S31540017B5094068008981323C0921660008200401E46 -S31540017B60D222E008D4204000B006800C7FFFA59FBA -S31540017B70901020067FFFE6C890102000920A3FF041 -S31540017B807FFFE6C790102000210000307FFFE6C24C -S31540017B9090102000808A001012BFFFFD01000000F6 -S31540017BA07FFFFF36210000307FFFE6BB90102000AB -S31540017BB0808A001012BFFFFD010000007FFFE6B67C -S31540017BC090102000030020408210600F92120001A5 -S31540017BD07FFFE6B3901020007FFFE6AF90102008AC -S31540017BE021100144D02421487FFFE6AB9010200CA0 -S31540017BF0A73A2010993A2014A60CE007980B200FBB -S31540017C00DA042148A8230013A80520089F3B6014E5 -S31540017C10933B60109B3B601894050013A210200112 -S31540017C20AC03200A9E0BE00F96102400AE0B6003B6 -S31540017C309402A00221200000992AC00C1B10014485 -S31540017C408203E00A952C400A9424000A832C4001C1 -S31540017C50D8236168A02400011B100144031001448C -S31540017C60EC23615C972AC00FAA03E00A1B1001446A -S31540017C70D620614403100144EA236154EA2061504D -S31540017C801B10014403100144D423614C920A60073E -S31540017C90A53A2018D0206158153FFFBF932C4009C3 -S31540017CA0A40CA003031001449412A358932C400939 -S31540017CB0A404A0013910014437100144EC20616C41 -S31540017CC09B2C40149402801EE0272164E426E16047 -S31540017CD0AA027FFFDA228000AC85E0010280000C17 -S31540017CE0BB2C4013033FFFBF82106368A00680018F -S31540017CF0A4100016D00400009FC20000A004200476 -S31540017D00A484BFFF32BFFFFDD00400007FFFE662BF -S31540017D1090102000920A3FFC7FFFE6619010200000 -S31540017D20A410200080A4801616800022A2102000F4 -S31540017D30033FFFBFAE106368A610001AA0102000D3 -S31540017D4080A4001636800018A404A0011080000506 -S31540017D50A810001780A4001636800013A404A001C1 -S31540017D60921000107FFFFEC8D004C014820A00158D -S31540017D7080A0401512BFFFF8A0042001C204C01420 -S31540017D8082184008DA0721648208400D80A000016C -S31540017D90A2647FFF80A4001606BFFFF39210001075 -S31540017DA0A404A00180A4801606BFFFE5A604E00452 -S31540017DB07FFFE63990102000A610000890102000A1 -S31540017DC07FFFE6379214E00380A46000028001B190 -S31540017DD001000000833CE00C80886003128000A50E -S31540017DE0030048D1833CE01380886003128001ADD3 -S31540017DF0010000007FFFFEA1210000307FFFE62643 -S31540017E0090102000808A001012BFFFFDA6100008C6 -S31540017E10A4102000C206E16080A480011680000DF6 -S31540017E20832CA00292100012901000187FFFFED002 -S31540017E3094102000A404A001C206E16080A4800140 -S31540017E4006BFFFFA92100012A4102000832CA00254 -S31540017E50A404A001C026000180A4A01E04BFFFFD0A -S31540017E60832CA00282102005C22600009A10200110 -S31540017E70DA26200482102002C22620089A10200306 -S31540017E80DA26200C7FFFFED89010001880A2200031 -S31540017E90028001D301000000C206000080A06005F7 -S31540017EA002800004010000007FFFA4D59010200647 -S31540017EB07FFFFECD9010001880A22000128001C4E1 -S31540017EC001000000A4102000C206E16080A48001E8 -S31540017ED01680000F92100012A00620049410200074 -S31540017EE07FFFFEB290100018921000129010001001 -S31540017EF07FFFFEAE94102000A404A001C206E160FB -S31540017F0080A4800106BFFFF6921000127FFFE5F8BC -S31540017F10901000187FFFE5F6900620207FFFE5F4DC -S31540017F20900620407FFFE5F290062060A4102000D5 -S31540017F30C206E16080A4800106800196A21020005D -S31540017F407FFFA4AF90102008173FFFBF8212E3C006 -S31540017F50940680018212E35C8200401ED81A80009A -S31540017F60C2004000D83840009612E380C206800B1A -S31540017F7080A06005128000068206800BDA0060044C -S31540017F8080A3600102800005A41020007FFFA49C0D -S31540017F9090102009A4102000C206E16080A480014F -S31540017FA016800011A2102000A00620049210001293 -S31540017FB07FFFFEBE90100010901A200180A000089D -S31540017FC0A2647FFFA404A001C206E16080A48001EF -S31540017FD006BFFFF89210001280A4600102800005DE -S31540017FE0833CE0137FFFA4869010200A833CE01374 -S31540017FF0808860031280018082102005C22600001D -S315400180009A102001DA26200482102002C226200876 -S315400180109A102003DA26200C1B3FFFBF9A136358A0 -S315400180209A03401ED00340004000048D9210001D6B -S31540018030032EEEEEA12A2002A21063BBE226001017 -S315400180407FFFFE699010001880A220001280016710 -S3154001805001000000C206001080A040110280000508 -S31540018060030048D17FFFA46690102012030048D137 -S31540018070821061671B226AF3C22620209A1361EFA0 -S31540018080DA262024C20E202080A06001028000044E -S31540018090010000007FFFA45A9010201AC20E202131 -S315400180A080A0602302800004010000007FFFA454E9 -S315400180B09010201BC20E202280A060450280000441 -S315400180C0010000007FFFA44E9010201CC20E202309 -S315400180D080A0606702800004010000007FFFA44881 -S315400180E09010201DC20E202480A0608902800004C9 -S315400180F0010000007FFFA4429010201EC20E2025E1 -S3154001810080A060AB02800004010000007FFFA43C18 -S315400181109010201FC20E202680A060CD0280000450 -S31540018120010000007FFFA43690102020C20E2027B8 -S3154001813080A060EF02800004010000007FFFA430B0 -S3154001814090102021C21620208328601083306010B1 -S3154001815080A0612302800004010000007FFFA42863 -S3154001816090102022DA1620229B2B6010030000116A -S315400181709B3360108210616780A340010280000436 -S31540018180010000007FFFA41E90102023DA16202450 -S315400181909B2B6010030000229B336010821061AB61 -S315400181A080A3400102800004010000007FFFA41467 -S315400181B090102024DA1620269B2B601003000033F2 -S315400181C09B336010821061EF80A34001028000055D -S315400181D0821020307FFFA40A901020258210203083 -S315400181E0C22E2020030C08D1DA06202082106167B6 -S315400181F080A3400102800005821020317FFFA40048 -S315400182009010202782102031C22E2021030C0C51C0 -S31540018210DA0620208210616780A3400102800005B2 -S31540018220821020327FFFA3F6901020288210203240 -S31540018230C22E2022210C0C4CDA0620208214226701 -S3154001824080A3400102800005821020337FFFA3EC0A -S315400182509010202982102033C22E20239A142233D3 -S31540018260C206202080A0400D0280000582102034E5 -S315400182707FFFA3E39010202A82102034C22E2024AF -S31540018280030D2AF3DA062024821061EF80A3400110 -S3154001829002800005821020357FFFA3D99010202B44 -S315400182A082102035C22E2025030D0D73DA062024B7 -S315400182B0821061EF80A340010280000582102036C2 -S315400182C07FFFA3CF9010202C82102036C22E20266D -S315400182D0210D0D4DDA062024821422EF80A34001A0 -S315400182E002800005821020377FFFA3C59010202D04 -S315400182F082102037C22E20279A142237C206202404 -S3154001830080A0400D02800005210000107FFFA3BC24 -S315400183109010202E2100001082142041C2362020C8 -S315400183200310104CDA0620208210623380A34001EC -S3154001833002800005821422437FFFA3B19010202FB3 -S3154001834082142243C236202203101050DA0620201E -S315400183508210624380A34001028000052100001182 -S315400183607FFFA3A7901020302100001182142045E1 -S31540018370C23620240311114DDA06202482106237B9 -S3154001838080A3400102800005821422477FFFA39CFF -S315400183909010203182142247C236202603111151F2 -S315400183A0DA0620248210624780A34001028000043D -S315400183B0010000007FFFA392901020327FFFFD2F26 -S315400183C0A4102000C206E16080A480011680001539 -S315400183D01B100144D403616C96100001A0102000CB -S315400183E080A4001D3680000CA404A001832C800AC1 -S315400183F09B286002992CA01082130010C226000D02 -S31540018400A004200180A4001D06BFFFFC9A0360045E -S31540018410A404A00180A4800B26BFFFF2A010200077 -S315400184207FFFE49D9010200003000010808A000128 -S3154001843012BFFFFC01000000A4102000C206E1604B -S3154001844080A4800116800114921000127FFFFD89DD -S315400184509010001815100144C202A14C900A000167 -S31540018460820E000180A20001A404A00112BFFFF404 -S31540018470901020337FFFA36201000000C206E16035 -S3154001848080A4800106BFFFF29210001230800102E3 -S315400184907FFFA35B9010200110BFFE50833CE00C90 -S315400184A07FFFE47D90102000133FFFF09212603F62 -S315400184B0920A0009A61000087FFFE4799010200077 -S315400184C07FFFE3D0A41020001303C0009214C0091B -S315400184D07FFFE4739010200080A480161680000967 -S315400184E092100012901660007FFFFD049410200048 -S315400184F0A404A00180A4801606BFFFFB92100012BF -S315400185007FFFE3C0010000007FFFE463901020007D -S31540018510913A200A900A200380A220010280000499 -S31540018520010000007FFFA3369010200201000000E9 -S3154001853092102000901660007FFFFCE1941020000D -S31540018540010000007FFFE454901020001303C00097 -S31540018550922A00097FFFE45290102000010000009A -S315400185607FFFE3A8010000007FFFE44B901020004D -S31540018570913A200C900A200380A2200102BFFE1EE0 -S31540018580010000007FFFA31E9010200330BFFE1A9A -S31540018590921000127FFFFD4590100018901A200599 -S315400185A080A00008A2647FFFA404A001C206E16086 -S315400185B080A4800106BFFFF89210001280A46000DB -S315400185C012BFFE63173FFFBF30BFFE5E7FFFA30CA6 -S315400185D09010200710BFFE3DA41020007FFFA30886 -S315400185E09010200530BFFE2D7FFFA305901020116E -S315400185F030BFFE997FFFE42890102000033FFFF033 -S315400186008210603F920A00017FFFE425901020000E -S31540018610033FFFBFA01063809210200094102000FA -S315400186207FFFFCE2900680107FFFE41B9010200044 -S315400186300303C000921200017FFFE419901020004D -S3154001864010800006A4102000900680107FFFFCD702 -S3154001865094102005A404A001C206E16080A4800113 -S3154001866006BFFFFA92100012033FFFBFA0106380BE -S315400186709A102001DA2E801003004000D80680109F -S315400186808210600580A30001028000040100000001 -S315400186907FFFA2DB9010200B7FFFE3FF90102000AD -S315400186A0913A2006900A200380A22001028000040C -S315400186B0010000007FFFA2D29010200C7FFFE3F65D -S315400186C0901020001303C000922A00097FFFE3F4B3 -S315400186D09010200092102000900680107FFFFCB37E -S315400186E0941020007FFFE3EC901020002103C0008E -S315400186F0921200107FFFE3EA901020007FFFE3E62D -S3154001870090102000808A001002BFFFFDA6100008CD -S31540018710A4102000C206E16080A480011680000EEC -S31540018720033FFFBF9A102001A2106380A12B401D79 -S3154001873092100012900680117FFFFC8D94043FFF3A -S31540018740A404A001C206E16080A4800106BFFFFA2D -S31540018750921000121303C000922CC0097FFFE3D090 -S31540018760901020002103C0007FFFE3CB9010200032 -S31540018770808A001012BFFFFD1B004000213FFFBF52 -S3154001878082142380D80680019A13600580A3000DC8 -S3154001879002800004010000007FFFA2999010200D85 -S315400187A07FFFE3BD90102000913A2008900A2003F4 -S315400187B080A2200122800005A01423787FFFA29089 -S315400187C09010200FA0142378940680109810201141 -S315400187D09A102055D83A80007FFFE3AF90102000D1 -S315400187E00303C00092120001920A7F3F7FFFE3AC70 -S315400187F090102000A00680107FFFE3CB9010001060 -S3154001880010800006A4102000900420047FFFFC671E -S3154001881094102055A404A001C206E16080A4800101 -S3154001882006BFFFFA92100012113FFFBF9012237844 -S315400188307FFFE3BD9006800880A2201112800004CC -S3154001884080A2605502800004010000007FFFA26CF7 -S31540018850901020107FFFE39090102000833A20066D -S315400188608208600380A0600102800004A61000080F -S315400188707FFFA26390102010133C3FF09212603F9D -S31540018880920CC0097FFFE3869010200010BFFDDCEB -S31540018890821020057FFFE380901020009212200F66 -S315400188A07FFFE37F9010200081C7E00891E8200018 -S315400188B09DE3BF987FFFFC9301000000B0100008C4 -S315400188C0130020409212600F7FFFE3759010200045 -S315400188D00100000081C7E00881E80000033FFFBFB7 -S315400188E0821063589DE380017FFFFBE40100000095 -S315400188F040000238010000007FFFE3679010200826 -S31540018900A21000087FFFE3649010200C7FFFA24B6A -S31540018910A0100008912A20047FFFA2349002200C67 -S31540018920973C6014833C6018953C2014993C201870 -S3154001893082086003960AE00F820060019602E00A0F -S31540018940A33C6010A13C2010980B2003940AA00F71 -S31540018950A728400B98032001A20C6007A00C200712 -S315400189609402A00A9A102001A2046002A0042002E7 -S31540018970B12B000A03200000AB2B4011A52B401060 -S315400189809620401898057FFF822040139A04BFFF26 -S31540018990AE130001A213400B210000307FFFE33EDE -S315400189A090102000808A001012BFFFFD033FFFBFD9 -S315400189B09A07BFF8821063C0A00340012D15555593 -S315400189C090100018921000107FFFE2C69415A15531 -S315400189D080A220001280004B292AAAAA92100010D8 -S315400189E0901000187FFFE2D3941522AA80A220009E -S315400189F01280004E010000007FFFA210010000001E -S31540018A00912A20047FFFA1F99002200A400001EE3D -S31540018A100100000092152200920C400990100018A6 -S31540018A2094100011961000127FFFE2EB981522AACE -S31540018A3080A2200012800051010000009215A10081 -S31540018A4090100018920C40099410001196100012D3 -S31540018A507FFFE2E19815A15580A2200012800044D3 -S31540018A60010000007FFFA1F501000000912A2004CA -S31540018A707FFFA1DE9002200B901000137FFFE2BD25 -S31540018A809215A15580A220001280003501000000F8 -S31540018A90901000137FFFE2B7921522AA80A2200010 -S31540018AA01280002C010000007FFFA1E401000000BC -S31540018AB0912A20047FFFA1CD900220099010001336 -S31540018AC092100017941000157FFFE2B6961522AA60 -S31540018AD080A220001280001B0100000090100013AC -S31540018AE092100017941000157FFFE2AE9615A1551E -S31540018AF080A2200002800025010000003080000E87 -S31540018B007FFFA1BF90102001292AAAAA9210001026 -S31540018B10901000187FFFE287941522AA80A22000B8 -S31540018B2002BFFFB6010000007FFFA1B590102002F1 -S31540018B3030BFFFB27FFFA1B29010200830800013F2 -S31540018B407FFFA1AF9010200710BFFFE690100013E2 -S31540018B507FFFA1AB9010200630BFFFD47FFFA1A8B5 -S31540018B609010200510BFFFCC901000137FFFA1A4E9 -S31540018B709010200430BFFFBC7FFFA1A190102003BD -S31540018B8010BFFFB09215A1007FFFFB3CB010200043 -S31540018B9040000190010000000100000081C7E0088B -S31540018BA081E800009DE3BF987FFFA18B1100412C16 -S31540018BB0DA062004D80620049A0B6003993B20026A -S31540018BC082102007C2262008BA036001B20B27FF94 -S31540018BD0010000009010200AC02600007FFFA183FB -S31540018BE0010000001700020082103FFFC226000B61 -S31540018BF0032AAAAA1B155555D806000BAC1020000E -S31540018C00821062AA9A136155AA0B000180A5801DA4 -S31540018C1016800038A80B000D9612E020A72E60089A -S31540018C2080A4E0000480000CA2102000832DA00245 -S31540018C3082004018190002009A10000BE820400CEF -S31540018C40EA20400DA204601080A4C01114BFFFFCAD -S31540018C5082006040AC05A00180A5801D06BFFFF2E1 -S31540018C6080A4E000AC10200080A5801D1680002164 -S31540018C7003000200B8106020A72E6008AE1000184D -S31540018C8080A4E00004800017A21020000300020027 -S31540018C90A4060001A005C01CC2048000A204601005 -S31540018CA0A404A04080A0401402800004901020013A -S31540018CB07FFFA15301000000C2040000A004204030 -S31540018CC080A0401502800004901020017FFFA14C36 -S31540018CD00100000080A4C01114BFFFF00100000094 -S31540018CE0AC05A00180A5801D06BFFFE6AE05E004E8 -S31540018CF07FFFA13E9010200CAC10200080A5801D66 -S31540018D0016800088031555559E1061551B000800B5 -S31540018D10032AAAAA9A136004901062AAA72E600891 -S31540018D2080A4E0000480000EA2102000832DA01331 -S31540018D3082004018130008009410000F9610000D91 -S31540018D4098100008D4204009D820400BA2046002A4 -S31540018D5080A4C01114BFFFFC82006008AC05A001CD -S31540018D6080A5801D06BFFFF080A4E000AC10200066 -S31540018D7080A5801D1680006B03155555B8106155A9 -S31540018D801B000800032AAAAAB6136004B41062AAFB -S31540018D90A72E600880A4E00004800019A2102000DC -S31540018DA0832DA013A00040182F000800AA10001C14 -S31540018DB0A810001BA410001AC2040017A2046002E6 -S31540018DC080A0401502800004901020037FFFA10C73 -S31540018DD001000000C2040014A004200880A0401233 -S31540018DE002800004901020037FFFA10501000000CE -S31540018DF080A4C01114BFFFF101000000AC05A00121 -S31540018E0080A5801D06BFFFE580A4E000AC102000D0 -S31540018E1080A5801D16800043030008009E10600453 -S31540018E201B155555032AAAAA9A136155901062AA91 -S31540018E30A72E600880A4E0000480000EA210200046 -S31540018E40832DA01382004018130008009410000FD0 -S31540018E509610000D98100008D620400AD8204009E7 -S31540018E60A204600280A4C01114BFFFFC8200600806 -S31540018E70AC05A00180A5801D06BFFFF080A4E000DF -S31540018E80AC10200080A5801D16800026031555557F -S31540018E90B81061551B2AAAAA03000800A72E60082C -S31540018EA0B61362AAB410600480A4E00004800019DD -S31540018EB0A2102000832DA013A00040182F00080007 -S31540018EC0AA10001CA810001BA410001AC20400120C -S31540018ED0A204600280A04015028000049010200484 -S31540018EE07FFFA0C701000000C2040017A0042008AC -S31540018EF080A0401402800004901020047FFFA0C08F -S31540018F000100000080A4C01114BFFFF10100000060 -S31540018F10AC05A00180A5801D06BFFFE580A4E00049 -S31540018F2082102005C22620081B200000DA260000F8 -S31540018F3081C7E00881E8000081C3E0089144400010 -S31540018F4080800000151001409412A18090102000ED -S31540018F5092102246818000000100000001000000BD -S31540018F6001000000D00280009122400881C3E00840 -S31540018F7001000000818000009010200180902001B6 -S31540018F8080D020011280002C0100000080D23FFFDA -S31540018F90168000290100000080DA3FFF934000005F -S31540018FA080A27FFF128000240100000080D23FFF93 -S31540018FB09348000093326014920A600F80A26008C1 -S31540018FC01280001D010000008180000090102001E8 -S31540018FD0945220049452A0049452A00496A2A04014 -S31540018FE012800015010000008180000090102002CF -S31540018FF080A00000328000109052000880A220021A -S315400190001280000D010000008180000090102002B6 -S3154001901080A0000001000000328000079052000845 -S3154001902080A22002128000040100000081C3E008F2 -S315400190309010200181C3E00890100000131555558A -S3154001904092126155A5824000010000000100000016 -S31540019050010000009544800080A2400A128000432E -S3154001906001000000923A4000A58240000100000044 -S3154001907001000000010000009544800080A2400AE2 -S315400190801280003A010000001100003F901223FFB8 -S31540019090A580000081800000010000000100000061 -S315400190A00100000093F23FFF9A10000993F23FFF3F -S315400190B093F23FFF93F23FFF93F23FFF93F23FFF5D -S315400190C093F23FFF93F23FFF99400000974480009F -S315400190D0153FFC009412A00880A2400A128000238A -S315400190E080A2400B1280002180A320071280001F1E -S315400190F0113FFF809012200180A340081280001B7F -S315400191001100003F901223FFA580000081800000DE -S3154001911001000000010000000100000093FA3FFF3A -S3154001912093FA3FFF93FA3FFF93FA3FFF93FA3FFFCC -S3154001913093FA3FFF93FA3FFF93FA3FFF99400000AE -S315400191409744800080A260081280000880A26008CF -S315400191501280000680A32000128000040100000056 -S3154001916081C3E0089010200181C3E00890100000FF -S31540019170818000009010200280A000003280001003 -S315400191809072000880A220021280000D01000000AA -S31540019190818000009010200280A0000001000000A4 -S315400191A0328000079072000880A2200212800004DB -S315400191B00100000081C3E0089010200181C3E0084E -S315400191C090100000C0A0004081C3E00801000000EB -S315400191D0110020409012200FD0A0004081C3E0082A -S315400191E0010000009DE3BF987FFFE12B901020080E -S315400191F0A21000087FFFE1289010200C833C6014E8 -S315400192009B3A2014A13A2018A33C6018A20C600393 -S31540019210A00C20038208600F9A0B600F8200600A3F -S315400192209A03600AA2046001A0042001A32C400114 -S315400192307FFFFFE5A12C000D7FFFE08E901000110E -S315400192407FFFE09A901000107FFFF98C010000002B -S315400192507FFFFFE081E8000001000000981200094D -S31540019260818200009AAB2FFF02800025988800007A -S315400192709923000999230009992300099923000993 -S315400192809923000999230009992300099923000983 -S315400192909923000999230009992300099923000973 -S315400192A09923000999230009992300099923000963 -S315400192B09923000999230009992300099923000953 -S315400192C09923000999230009992300099923000943 -S315400192D09923000999230009992300099923000933 -S315400192E09923000999230009992300099923000923 -S315400192F09923000081C3E0089140000099230009A9 -S315400193009923000999230009992300099923000902 -S3154001931099230009992300099923000999230009F2 -S3154001932099230009992300099923000999230000EB -S315400193309B400000992B200C9B33601481C3E008AD -S315400193409013400C1080000B86102000809240083C -S31540019350168000088610000880924000168000049E -S315400193608092000016800003922000099020000898 -S315400193709A924000128000059610000891D0200272 -S3154001938081C3E0089010000080A2C00D0A800095BC -S31540019390941000000302000080A2C0010A80002848 -S315400193A09810000080A340011A80000D841020010E -S315400193B09B2B600410BFFFFC980320019A83400D4C -S315400193C01A8000078400A001832860049B33600152 -S315400193D09A034001108000078420A00180A3400B1E -S315400193E00ABFFFF7010000000280000201000000F1 -S315400193F084A0A00106800076010000009622C00DDF -S31540019400941020011080000A01000000952AA00155 -S31540019410068000059B3360019622C00D1080000432 -S315400194209402A0019602C00D9422A00184A0A0013D -S3154001943016BFFFF78092C000308000659B2B600409 -S3154001944080A3400B08BFFFFE988320010280006580 -S31540019450982320018092C000952AA0040680002FFF -S315400194609B33600196A2C00D068000179B336001B5 -S3154001947096A2C00D0680000B9B33600196A2C00DDB -S31540019480068000059B33600196A2C00D10800050F6 -S315400194909402A00F9682C00D1080004D9402A00D3B -S315400194A09682C00D068000059B33600196A2C00DD1 -S315400194B0108000479402A00B9682C00D1080004494 -S315400194C09402A0099682C00D0680000B9B33600171 -S315400194D096A2C00D068000059B33600196A2C00D81 -S315400194E01080003B9402A0079682C00D1080003880 -S315400194F09402A0059682C00D068000059B3360014B -S3154001950096A2C00D108000329402A0039682C00D2F -S315400195101080002F9402A0019682C00D068000178C -S315400195209B33600196A2C00D0680000B9B33600100 -S3154001953096A2C00D068000059B33600196A2C00D20 -S31540019540108000239402BFFF9682C00D1080002038 -S315400195509402BFFD9682C00D068000059B336001D3 -S3154001956096A2C00D1080001A9402BFFB9682C00DD0 -S31540019570108000179402BFF99682C00D0680000B39 -S315400195809B33600196A2C00D068000059B336001A6 -S3154001959096A2C00D1080000E9402BFF79682C00DB0 -S315400195A01080000B9402BFF59682C00D068000051F -S315400195B09B33600196A2C00D108000059402BFF353 -S315400195C09682C00D108000029402BFF198A320013B -S315400195D016BFFFA28092C000268000029602C009F3 -S315400195E08090C000268000029620000B81C3E008CF -S315400195F09010000B9210000890102000941020004B -S31540019600961020008213C000400000039E104000C7 -S31540019610010000009DE3BF9823100143400005F679 -S31540019620901460F40310006DE0006188D004214875 -S3154001963080A220002280002D9004214CD6022004D5 -S3154001964080A2E01F1480001D0100000080A62000BA -S315400196501280000B94022088832AE0029A02E001DC -S3154001966082004008DA222004F2206008400005FA10 -S31540019670901460F410800022B01020008210200166 -S315400196809328400B992AE002DA02A1009A13400975 -S315400196908203000AF6206080F422800C80A6200214 -S315400196A012BFFFEEDA22A100C202A10482104009D4 -S315400196B010BFFFEAC222A10440000013901021907E -S315400196C080A220000280000B96102000C20421488F -S315400196D0C2220000D0242148C0222004C022218871 -S315400196E010BFFFDBC022218C10BFFFD5D0242148FB -S315400196F0400005D9901460F4B0103FFF81C7E008DF -S3154001970081E800009210000803100141D000637007 -S315400197108213C0004000000A9E1040000100000074 -S315400197209210000803100141D00063708213C000FB -S31540019730400002199E104000010000009DE3BF98C1 -S315400197408206600B80A06016A610001818800003E0 -S31540019750A0087FF8A010201080A400199A4020008C -S315400197608334201F8090400D128001B0B01020003C -S31540019770400001B09010001380A421F71880001713 -S315400197809934200939100141821723809804000138 -S31540019790F003200C80A6000C0280004E9F3420036B -S315400197A0C206200494087FFC9A06000AC20360049C -S315400197B082106001D006200CD2062008D222200851 -S315400197C0C2236004D022600C400001A09010001317 -S315400197D010800196B006200880A320001280002840 -S315400197E09F342003391001419B2BE00382172380CC -S315400197F09A0340011080000AF003600C94087FFC34 -S315400198009622801080A2E00F1480010980A2E00018 -S3154001981036BFFFE79A06000AF006200C80A6000D27 -S3154001982032BFFFF7C20620049E03E0012510014125 -S315400198309814A388F003200880A6000C0280005DDE -S31540019840833BE01FC206200494087FFC96228010C9 -S3154001985080A2E00F1480009F80A2E000D823200C54 -S3154001986006800023D82320089A06000AC203600412 -S315400198708210600110BFFFD5C223600483342006E5 -S3154001988080A3200408BFFFD89E00603880A320141F -S3154001989008BFFFD59E03205B8334200C80A3205450 -S315400198A008BFFFD19E00606E8334200F80A32154F0 -S315400198B008BFFFCD9E0060778334201280A32554D4 -S315400198C008BFFFC99E00607C10BFFFC79E10207E67 -S315400198D098062008F003200C80A6000C32BFFFB288 -S315400198E0C206200410BFFFD29E03E00280A2A1FF60 -S315400198F0088000BE9B32A0039732A00980A2E000F7 -S3154001990022800017961723808332A00680A2E004A6 -S31540019910088000129A00603880A2E0140880000F87 -S315400199209A02E05B8332A00C80A2E0540880000BCF -S315400199309A00606E8332A00F80A2E154088000072E -S315400199409A0060778332A01280A2E5540880000312 -S315400199509A00607C9A10207E96172380832B6003A1 -S315400199609000400BD202200880A240082280010FBD -S3154001997099336002C202600482087FFC80A0400ADB -S3154001998028800007D002600CD202600880A24008FD -S3154001999032BFFFFAC2026004D002600CD026200C0E -S315400199A0D2262008F022600CF0222008833BE01FDB -S315400199B08330601E8203C001391001418338600241 -S315400199C0981723809A102001932B4001D803200435 -S315400199D080A2400C1880004BAE172380808B000973 -S315400199E01280000D03100141820BFFFC92024009D7 -S315400199F0808B0009128000079E0060048210000CD3 -S31540019A00920240098088400902BFFFFE9E03E0049E -S31540019A1003100141A2106380A8100011832BE003BB -S31540019A20980040119010000F9A10000C1080000A07 -S31540019A30F003600C94087FFC9622801080A2E00F10 -S31540019A401480007D80A2E0003680008B9A06000AD1 -S31540019A50F006200C80A6000D32BFFFF7C206200497 -S31540019A609E03E001808BE00312BFFFF19A03600879 -S31540019A70808A200398033FF8028000D490023FFF7A -S31540019A80C203200880A0400C02BFFFFB808A20034E -S31540019A9092024009C205200480A2400118800018A4 -S31540019AA03910014180A26000128000068088400979 -S31540019AB010800014AE1723809E03E004808840097D -S31540019AC022BFFFFE9202400910BFFFD6832BE0035F -S31540019AD08214200194060010C2262004D423200CAF -S31540019AE0D42320088212E001D622800BD822A00876 -S31540019AF0C222A00410BFFF35D822A00CAE17238086 -S31540019B00F005E008C2062004AA087FFC80A54010A3 -S31540019B109A4020009625401080A2E00F1480004212 -S31540019B2082102001809340010280002703100143E7 -S31540019B30DA0061982D1001419A04000DC205A378FF -S31540019B40A810001580A07FFFA203601002800004C8 -S31540019B50A406001582046FFFA2087000901000133E -S31540019B60400000C09210001180A23FFF0280000811 -S31540019B70B210000880A200121A8000463B10014331 -S31540019B8080A6001722800044C2076168821723809D -S31540019B90D8006008DA0320049A0B7FFC80A34010AA -S31540019BA0984020009623401080A2E00F04800003D5 -S31540019BB082102001821020008093000112800098BB -S31540019BC00100000098172380F00320088214200129 -S31540019BD0C22620049A0600108212E001C2236004C4 -S31540019BE010BFFEFADA23200898033FF8832B60035F -S31540019BF09000400C9B336002821020018328400D67 -S31540019C00D2022008DA0320049A134001D026200C00 -S31540019C10D2262008F022600CDA23200410BFFF640C -S31540019C20F022200810BFFFC08210200010BFFEFFA7 -S31540019C309E03FFFFD006200CD20620089A1420016D -S31540019C40940600108214A388D2222008D022600CE8 -S31540019C50DA262004D420600CD42060089A12E00150 -S31540019C60D622800BC222A008DA22A00410BFFED75A -S31540019C70C222A00CC203600482106001D006200CEF -S31540019C80D2062008C223600410BFFECFD22220088C -S31540019C90C20761688200401180A640120280004FCF -S31540019CA0C2276168C205A37880A07FFF0280004574 -S31540019CB0C20761689A2640128200400DC227616838 -S31540019CC09A8E600702800005A410200082102008A9 -S31540019CD0A420400DB20640129A0640119A0B6FFF1E -S31540019CE0030000048220400DA4048001901000135B -S31540019CF04000005C9210001280A23FFF2280003F8C -S31540019D00A41020008222001990004012821723805D -S31540019D10DA0761689A03401280A60001F2206008C2 -S31540019D20DA276168028000378212200180A5600F20 -S31540019D3038800005C22660048210200110BFFF94BE -S31540019D40C2266004C20620049A057FF4A80B7FF858 -S31540019D508208600182104014C22620049A0600142B -S31540019D6082102005C223600880A5200F1880002795 -S31540019D70C223600419100143DA076168C2032194C2 -S31540019D8080A3400138800002DA232194191001434F -S31540019D90C203219080A3400138BFFF7DDA23219081 -S31540019DA010BFFF7C821723809A102001C202E00473 -S31540019DB09B2B400C8210400D10BFFEF9C222E004DD -S31540019DC010BFFFC0F225A378C2046004822840096F -S31540019DD010BFFF30C2246004808E6FFF12BFFFB3F5 -S31540019DE0C205A37890044014DA05E00882122001E6 -S31540019DF010BFFFE1C223600410BFFFC390100019DA -S31540019E0010BFFFDDC22660049206200840000062B2 -S31540019E109010001310BFFFD9191001434000000BE9 -S31540019E2090100013B010200081C7E00881E80000BF -S31540019E3011100142901223888213C000400003EEA4 -S31540019E409E1040000100000011100142901223882B -S31540019E508213C000400004009E1040000100000033 -S31540019E609DE3BF9821100144C02421704000020D9A -S31540019E709010001980A23FFF12800006C204217093 -S31540019E8080A060000280000301000000C22600009D -S31540019E9081C7E00891E800089DE3BF987FFFFFE591 -S31540019EA09010001803100141A2106380DA04600883 -S31540019EB0C2036004A0087FFCB2240019B2066FEF0A -S31540019EC0B20E7000B20670009210200080A66FFF9D -S31540019ED00480000A901000187FFFFFE20100000095 -S31540019EE0C20460088200401080A0400892200019F8 -S31540019EF002800005901000187FFFFFD4B0102000AB -S31540019F00308000237FFFFFD790100018822400196C -S31540019F1080A23FFF82106001921020001910014378 -S31540019F200280000B90100018DA046008C223600416 -S31540019F30C203216882204019901000187FFFFFC399 -S31540019F40C223216810800012B01020017FFFFFC597 -S31540019F500100000098100008D6046008A023000BF9 -S31540019F609010001880A4200F04BFFFE4B214200112 -S31540019F7003100141DA0063789A23000D031001436F -S31540019F80DA20616810BFFFDDF222E00481C7E008F4 -S31540019F9081E800009DE3BF9880A660000280009D95 -S31540019FA0A41000187FFFFFA390100018A0067FF8A9 -S31540019FB0D6042004900AFFFE1910014194040008BA -S31540019FC0A2132380DA02A004C204600880A0400ADA -S31540019FD0028000449E0B7FFC808AE001DE22A004C1 -S31540019FE01280000CB0102000F2067FF8A024001960 -S31540019FF082046008DA04200880A340010280007DC3 -S3154001A00090020019D204200CDA226008D223600C97 -S3154001A0108202800FDA006004808B60011280000AA0 -S3154001A0208212200180A62000028000229002000FA9 -S3154001A030DA02A008D202A00CDA226008D223600C10 -S3154001A04082122001C224200480A62000028000053D -S3154001A050D0240008B01000127FFFFF7C81E8000089 -S3154001A06080A221FF18800036973220099B322003B7 -S3154001A07098132380832B60039200400C9B3360022C -S3154001A080821020018328400DD6026008DA0320049D -S3154001A0909A134001D224200CD6242008E022E00C59 -S3154001A0A0DA232004E022600810BFFFECB010001252 -S3154001A0B003100141DA02A0088210638880A340019F -S3154001A0C032BFFFDED202A00CE023600CE023600821 -S3154001A0D0DA242008DA24200C10BFFFDAB010200160 -S3154001A0E0808AE001128000099002000FF2067FF893 -S3154001A0F0A0240019D204200CD6042008D6226008D8 -S3154001A10090020019D222E00C03100141DA00637C6F -S3154001A11098122001E024600880A2000D0ABFFFCFFB -S3154001A120D824200403100143D20061987FFFFF5BCE -S3154001A130901000127FFFFF4581E8000080A2E000F9 -S3154001A140028000169B3220038332200680A2E0045F -S3154001A150088000129A00603880A2E0140880000F3F -S3154001A1609A02E05B8332200C80A2E0540880000B07 -S3154001A1709A00606E8332200F80A2E1540880000766 -S3154001A1809A0060778332201280A2E554088000034A -S3154001A1909A00607C9A10207E94132380832B60035F -S3154001A1A09200400AD602600880A2C00902800013CC -S3154001A1B099336002C202E00482087FFC80A0400815 -S3154001A1C028800007D202E00CD602E00880A2C0092E -S3154001A1D032BFFFFAC202E004D202E00CD224200CC4 -S3154001A1E0D6242008E022E00C10BFFFB0E022600830 -S3154001A1F010BFFF88B01020019A102001C202A004AE -S3154001A2009B2B400C8210400D10BFFFF5C222A004CB -S3154001A21081C7E00881E800009DE3BF98D20640006F -S3154001A22080A2600012800004901000187FFFFF5A40 -S3154001A23081E800007FFFFFF9010000007FFFFF5624 -S3154001A24081E80000010000009DE3BF980310014131 -S3154001A250DA00637080A6000D028000410100000013 -S3154001A260D206204C80A260001280001CA010200063 -S3154001A270D206214880A260002280000FD2062054D7 -S3154001A280A006214C80A240102280000BD206205409 -S3154001A29010800005B2100009F20640007FFFFF3E24 -S3154001A2A09010001880A4001912BFFFFC92100019EB -S3154001A2B0D206205480A260001280002501000000D1 -S3154001A2C0C206203880A060000280002501000000FF -S3154001A2D010800017C206203C832C2002F202400166 -S3154001A2E080A660002280000BA00420019210001974 -S3154001A2F0F20640007FFFFF289010001880A66000FC -S3154001A30012BFFFFC92100019D206204CA004200176 -S3154001A31080A4200E04BFFFF2832C20027FFFFF1E84 -S3154001A3209010001810BFFFD4D20621489FC04000AC -S3154001A33090100018F20622E080A660000280000814 -S3154001A340010000007FFFFFB581E800007FFFFF129B -S3154001A3509010001810BFFFDCC206203881C7E00804 -S3154001A36081E800009DE3BF9880A620000280001D81 -S3154001A37003100141E406214880A4A0002280001375 -S3154001A380C206203CE204A004A2847FFF0C80000A9E -S3154001A390832C600282004012A0006008C2040000C3 -S3154001A3A09FC04000A0043FFCA2847FFF3CBFFFFD4D -S3154001A3B0C2040000E404800080A4A00032BFFFF381 -S3154001A3C0E204A004C206203C80A06000028000078F -S3154001A3D0010000009FC0400090100018308000032B -S3154001A3E010BFFFE5F000637081C7E00881E8000017 -S3154001A3F01080000B861020008092400816800008CD -S3154001A400861A40088092400016800004809200001F -S3154001A4101680000392200009902000089A9240007D -S3154001A420128000059610000891D0200281C3E008F1 -S3154001A4309010000080A2C00D0A8000959410000083 -S3154001A4400302000080A2C0010A8000289810000083 -S3154001A45080A340011A80000D841020019B2B6004CB -S3154001A46010BFFFFC980320019A83400D1A80000714 -S3154001A4708400A001832860049B3360019A03400154 -S3154001A480108000078420A00180A3400B0ABFFFF77C -S3154001A49001000000028000020100000084A0A0012A -S3154001A4A006800076010000009622C00D941020011E -S3154001A4B01080000A01000000952AA00106800005CF -S3154001A4C09B3360019622C00D108000049402A001C6 -S3154001A4D09602C00D9422A00184A0A00116BFFFF7E9 -S3154001A4E08092C000308000659B2B600480A3400BA6 -S3154001A4F008BFFFFE98832001028000659823200152 -S3154001A5008092C000952AA0040680002F9B336001EB -S3154001A51096A2C00D068000179B33600196A2C00D1E -S3154001A5200680000B9B33600196A2C00D0680000594 -S3154001A5309B33600196A2C00D108000509402A00F7B -S3154001A5409682C00D1080004D9402A00D9682C00DDA -S3154001A550068000059B33600196A2C00D108000471E -S3154001A5609402A00B9682C00D108000449402A0096B -S3154001A5709682C00D0680000B9B33600196A2C00DEA -S3154001A580068000059B33600196A2C00D1080003BFA -S3154001A5909402A0079682C00D108000389402A0054F -S3154001A5A09682C00D068000059B33600196A2C00DC0 -S3154001A5B0108000329402A0039682C00D1080002FB5 -S3154001A5C09402A0019682C00D068000179B3360015C -S3154001A5D096A2C00D0680000B9B33600196A2C00D6A -S3154001A5E0068000059B33600196A2C00D10800023B2 -S3154001A5F09402BFFF9682C00D108000209402BFFDD9 -S3154001A6009682C00D068000059B33600196A2C00D5F -S3154001A6101080001A9402BFFB9682C00D108000176D -S3154001A6209402BFF99682C00D0680000B9B336001F0 -S3154001A63096A2C00D068000059B33600196A2C00D0F -S3154001A6401080000E9402BFF79682C00D1080000B59 -S3154001A6509402BFF59682C00D068000059B336001CA -S3154001A66096A2C00D108000059402BFF39682C00DDC -S3154001A670108000029402BFF198A3200116BFFFA2E9 -S3154001A6808092C000268000029422A0018090C000E2 -S3154001A690268000029420000A81C3E0089010000A37 -S3154001A6A019100144DA03217480A360001280000668 -S3154001A6B082034008031001449A106188DA23217409 -S3154001A6C082034008C223217481C3E0089010000D23 -S3154001A6D0A7500000AE1000018334E0012910014368 -S3154001A6E0E8052038A92CC0148215000181E000003C -S3154001A6F081904000010000000100000001000000BF -S3154001A700E03BA000E43BA008E83BA010EC3BA018CE -S3154001A710F03BA020F43BA028F83BA030FC3BA038FE -S3154001A72081E800008210001781C4400081CC80007E -S3154001A730010000000100000001000000A7500000D8 -S3154001A740A92CE0012B100143EA056038AB34C01552 -S3154001A750AA15401481954000010000000100000047 -S3154001A7600100000081E8000081E80000E01BA00034 -S3154001A770E41BA008E81BA010EC1BA018F01BA020AE -S3154001A780F41BA028F81BA030FC1BA03881E0000078 -S3154001A79081E0000081C4400081CC8000A7500000C8 -S3154001A7A02910006CADC5210C0100000027100143A2 -S3154001A7B0A614E018E024C000818C2020010000008E -S3154001A7C001000000010000009DE3BFA09DE3BFA082 -S3154001A7D09DE3BFA09DE3BFA09DE3BFA09DE3BFA0B6 -S3154001A7E09DE3BFA081E8000081E8000081E8000008 -S3154001A7F081E8000081E8000081E8000081E800006E -S3154001A80027100143A614E018C024C000E203A06843 -S3154001A810A4046004E223A064E423A06810800262D9 -S3154001A820AC10000029100142A81523FCC2252000C6 -S3154001A830C8252004E0252010E2252014E42520180F -S3154001A840E825201C81E800008348000082106F0043 -S3154001A8508188602001000000010000000100000025 -S3154001A86009100143C801203881E0000088212001F8 -S3154001A87080A920FF028000030100000001000000C2 -S3154001A88080A1000012BFFFF9010000000910014339 -S3154001A890C801203881E8000080A920FF028000031A -S3154001A8A001000000010000008821200180A1000074 -S3154001A8B012BFFFF90100000081E0000029100142AA -S3154001A8C0A81523FCC8052004C2052000E005201078 -S3154001A8D0E2052014E4052018C025201C818C2000A7 -S3154001A8E001000000010000000100000081C4800059 -S3154001A8F081CCA004A0142F00818C0000010000002F -S3154001A900010000000100000081C4800081CCA00448 -S3154001A91080A6600212800005A8142F00818D0000D8 -S3154001A920B01420203080001F80A6600312800006EC -S3154001A930A80E2F00AA2C2F00A8154014818D0000C7 -S3154001A9403080001880A6600412800008A9480000E3 -S3154001A950A8152040818D0000010000000100000083 -S3154001A960010000003080000F80A6600512800008BB -S3154001A970A9480000A82D2040818D0000010000005B -S3154001A98001000000010000003080000680A660063C -S3154001A990128000030100000030BFFFA391D02000C8 -S3154001A9A081C4800081CCA0049210200381C3E008B9 -S3154001A9B091D020029210200281C3E00891D020025A -S3154001A9C09210200681C3E00891D0200281C3E0089D -S3154001A9D00100000081C3E0080100000081C3E008D6 -S3154001A9E001000000AE25A010A75000002D10006AFE -S3154001A9F0AC15A1F82910006C81C522B401000000F4 -S3154001AA001110014390122024D202000092026001EB -S3154001AA10D2220000932DE008902C2F0092120009BB -S3154001AA20111001439012201CD002000080A00008A2 -S3154001AA302280000292126F00818A6020010000008C -S3154001AA400100000001000000901000174000003195 -S3154001AA509203A06092142F00818A602001000000B9 -S3154001AA600100000001000000111001439012202452 -S3154001AA70D202000092226001D22200001080022DF3 -S3154001AA80AC1000001B1001449A13602C912A20023D -S3154001AA90C2034008C222600C81C3E008D2234008A9 -S3154001AAA09DE3BF98031001448210602C992E6002E9 -S3154001AAB01B100143972E6004D800400C9A13622C58 -S3154001AAC0901000199202C00D80A6601F1480000FDD -S3154001AAD0821020001080000680A320002280000AF8 -S3154001AAE0C2024000D803200C80A3200012BFFFFC05 -S3154001AAF080A300097FFFFFE4F0224000108000039D -S3154001AB0082102000F022400081C7E00891E8000150 -S3154001AB109DE3BF981B10014382136028D80060044F -S3154001AB2080A3001802800044C203602880A620004A -S3154001AB3022800002B010000C03100144A32E200213 -S3154001AB408210602CE000401180A420000280003D6C -S3154001AB500310014310800012A41061A8D2042008FA -S3154001AB60941000199FC30000901000180310014370 -S3154001AB70C20061A080A060001280002B010000008D -S3154001AB80C204801182007FFFC2248011E004200CA0 -S3154001AB9080A420000280002B01000000D8040000A0 -S3154001ABA080A3200022BFFFFBE004200C03100143D9 -S3154001ABB0DA00622880A36000128000089610001215 -S3154001ABC003100143821061A8DA00401180A360009E -S3154001ABD032BFFFF0E004200CDA02C011031001433A -S3154001ABE09A036001C20061A480A0600002BFFFDC3D -S3154001ABF0DA22C0119FC0400001000000D8040000C5 -S3154001AC00D2042008941000199FC300009010001828 -S3154001AC1003100143C20061A080A0600022BFFFDA99 -S3154001AC20C20480119FC040000100000010BFFFD642 -S3154001AC30C2048011DA0060C010BFFFBDB00B601FB7 -S3154001AC4081C7E00881E800008C10000FA74800008A -S3154001AC508B34E0188A09600F80A160030280000CE2 -S3154001AC600B1001438A1160300920000088112070C1 -S3154001AC70C82140000B1001438A1160500920000091 -S3154001AC8088112040C82140001080003990102001D1 -S3154001AC9092102006400001DD0100000080A000085E -S3154001ACA00280003301000000C2022010113FFC0067 -S3154001ACB082084008110003FC8410400890100002ED -S3154001ACC0921020019410200C400001E60100000082 -S3154001ACD080A000080280002601000000400001F625 -S3154001ACE0921000010B1001438A116030D2214000BD -S3154001ACF0901000029210200194102011400001D9B9 -S3154001AD000100000080A00008028000190100000037 -S3154001AD10400001E992100001920260100B100143BC -S3154001AD208A116050D22140009010000292102001F9 -S3154001AD309410200D400001CB0100000080A00008C6 -S3154001AD400280000B01000000400001DB921000016F -S3154001AD500B1001438A116028D2214000D4026010B1 -S3154001AD609532A010940AA00FD42160049E100006CB -S3154001AD7081C3E008010000000310014382106048CE -S3154001AD808210200191D0200081C3E008010000001B -S3154001AD909DE3BF9803100144C20060C8901000189B -S3154001ADA09210001980A0600002800005B0102000BA -S3154001ADB09FC0400001000000B010000881C7E008B4 -S3154001ADC081E800009DE3BF9803100144C20060C4BE -S3154001ADD09010001880A0600002800005B01020008D -S3154001ADE09FC0400001000000B010000881C7E00884 -S3154001ADF081E800009DE3BF9803100144C20060BC96 -S3154001AE009010001880A0600002800005B01020005C -S3154001AE109FC0400001000000B010000881C7E00853 -S3154001AE2081E800009DE3BF9803100144C20060C061 -S3154001AE309010001880A0600002800005B01020002C -S3154001AE409FC0400001000000B010000881C7E00823 -S3154001AE5081E800009DE3BF9803100144C20060B839 -S3154001AE609010001880A0600002800005B0102000FC -S3154001AE709FC0400001000000B010000881C7E008F3 -S3154001AE8081E800009DE3BF9803100144C20060B40D -S3154001AE909010001880A0600002800005B0102000CC -S3154001AEA09FC0400001000000B010000881C7E008C3 -S3154001AEB081E800009DE3BF9803100144C20060B0E1 -S3154001AEC09010001880A0600002800005B01020009C -S3154001AED09FC0400001000000B010000881C7E00893 -S3154001AEE081E800009DE3BF9803100144C20060ACB5 -S3154001AEF0901000189210001980A060000280000591 -S3154001AF00B01020009FC0400001000000B0100008B2 -S3154001AF1081C7E00881E80000010000000310006BD2 -S3154001AF20821063E89FC0400001000000031000004A -S3154001AF3082106000819840000310006C8210606CA2 -S3154001AF409FC04000010000000310006B821063D8CF -S3154001AF509FC04000010000008B4800008B31601803 -S3154001AF608A09600380A16003128000070100000086 -S3154001AF708B4440008B31601C80A14000128000064A -S3154001AF80010000007FFFFF31010000007FFF98773D -S3154001AF90010000009C23A0407FFF981A0100000099 -S3154001AFA08210200191D020000100000029000004F8 -S3154001AFB0A68C001432800003A02C001491D02000EE -S3154001AFC0818C00000100000001000000010000002A -S3154001AFD081C4800081CCA00481C3E0080100000047 -S3154001AFE081C1E00801000000A74800008B34E01849 -S3154001AFF08A09600380A160031280000801000000F5 -S3154001B00021100143A0142040A2102003E224000095 -S3154001B0108B4440001080000821100143A0142040B9 -S3154001B020A2102002E224000021200000E604202490 -S3154001B0308B34E0148A09601F27100143A614E038B7 -S3154001B040CA24C0008A01600127100143A614E034D6 -S3154001B050CA24C00027100143A614E03C8A2160029D -S3154001B060CA24C00081C3E0080100000081C3E00892 -S3154001B07001000000834800008330601882086003A5 -S3154001B08080A0600312800006010000008344400056 -S3154001B0900500000882284002A38040008810000075 -S3154001B0A00910006B81C1231C010000009DE3BF987C -S3154001B0B00310006D1B10006DA01061709A13617032 -S3154001B0C080A4000D1A800010A210000D1080000609 -S3154001B0D0C204000080A400111A80000B0100000088 -S3154001B0E0C204000080A0600002BFFFFBA004200450 -S3154001B0F09FC040000100000080A400112ABFFFFA52 -S3154001B100C204000081C7E00881E80000AA27A0B078 -S3154001B110E0256060E2256064E4256068C2256074CC -S3154001B120C43D6078C83D6080CC3D60888540000064 -S3154001B130C425606CF03D6090F43D6098F83D60A098 -S3154001B140FC3D60A8A8102001A92D0010808D001398 -S3154001B15002800013010000008534E001071001431D -S3154001B160C600E038A72CC0038414C0028408A0FF9F -S3154001B17081E000008190A000E03BA000E43BA008F4 -S3154001B180E83BA010EC3BA018F03BA020F43BA028E4 -S3154001B190F83BA030FC3BA03881E8000081C5A008FF -S3154001B1A09C100015051001438410A19CC400800029 -S3154001B1B080A0800002800004010000009FC0800042 -S3154001B1C09203A060818C20008210200283284010C7 -S3154001B1D005100143C400A03485304002821040026C -S3154001B1E08550000080888001028000208328A001CC -S3154001B1F007100143C600E0388530800382104002C3 -S3154001B200820860FF81906000C203A06C818060006B -S3154001B210F01BA090F41BA098F81BA0A0FC1BA0A8B3 -S3154001B220C203A074C41BA078C81BA080CC1BA088F5 -S3154001B230E003A060E203A064E403A06881E80000A3 -S3154001B240E01BA000E41BA008E81BA010EC1BA01803 -S3154001B250F01BA020F41BA028F81BA030FC1BA03833 -S3154001B2601080000F81E00000C203A06C8180600065 -S3154001B270F01BA090F41BA098F81BA0A0FC1BA0A853 -S3154001B280C203A074C41BA078C81BA080CC1BA08895 -S3154001B290E003A060E203A064E403A068818C20007F -S3154001B2A001000000010000000100000081C44000CF -S3154001B2B081CC8000AA27A0B0C2256074C43D6078C5 -S3154001B2C0C83D6080CC3D608885400000C425606CE7 -S3154001B2D0A8102001A92D0010808D001302800013B3 -S3154001B2E0010000008534E00107100143C600E03843 -S3154001B2F0A72CC0038414C0028408A0FF81E000008B -S3154001B3008190A000E03BA000E43BA008E83BA010F0 -S3154001B310EC3BA018F03BA020F43BA028F83BA03022 -S3154001B320FC3BA03881E8000081C5A0089C100015AF -S3154001B330051001438410A19CC400800080A08000B8 -S3154001B34002800004010000009FC080009203A060BB -S3154001B350818C200082102002832840100510014371 -S3154001B360C400A0348530400282104002855000005E -S3154001B37080888001028000198328A00107100143BB -S3154001B380C600E0388530800382104002820860FFA3 -S3154001B39081906000C203A06C81806000C203A074EA -S3154001B3A0C41BA078C81BA080CC1BA08881E80000E4 -S3154001B3B0E01BA000E41BA008E81BA010EC1BA01892 -S3154001B3C0F01BA020F41BA028F81BA030FC1BA038C2 -S3154001B3D01080000881E00000C203A06C81806000FB -S3154001B3E0C203A074C41BA078C81BA080CC1BA08834 -S3154001B3F0818C2000010000000100000001000000D6 -S3154001B40081C4400081CC8000821000089A10380027 -S3154001B41096102000912AE00598034008D40340087D -S3154001B4209132A01880A20001328000089602E00104 -S3154001B4309132A00C900A2FFF80A2000902800007DA -S3154001B4409410000C9602E00180A2E00728BFFFF3AA -S3154001B450912AE0059410200081C3E0089010000A6B -S3154001B4608210000898102000912B20039A00400872 -S3154001B470D60040089132E01880A2000932800008C7 -S3154001B480980320019132E00C900A2FFF80A2000A16 -S3154001B490028000079610000D9803200180A3200F1B -S3154001B4A028BFFFF3912B20039610200081C3E008AB -S3154001B4B09010000BD4022004173FFC00920A400B67 -S3154001B4C0900A800B9132200C921240081100003FE5 -S3154001B4D0901223F0940A8008952AA0049412800BB6 -S3154001B4E0920A400A81C3E008901000099DE3BF9883 -S3154001B4F00310006D82106158DA007FFC80A37FFF44 -S3154001B50002800009A0007FFC8210000D9FC0400010 -S3154001B510A0043FFCC204000080A07FFF12BFFFFCD5 -S3154001B5200100000081C7E00881E800009DE3BF9863 -S3154001B53081C7E00881E8000000000000000000002B -S3154001B54000000000000000000000000000000000B4 -S3154001B55000000002FFFFFFFF0000000000000000A6 -S3154001B56000000002FFFFFFFF000000000000000096 -S3154001B57040080000000000003CD203AF9EE756168B -S3154001B5803E7AD7F29ABCAF4840050220000000003F -S3154001B590430000009DE3BFA07FFF96D70100000056 -S3154001B5A07FFFFFD30100000081C7E00881E800006A -S3154001B5B09DE3BFA07FFF96B20100000081C7E0086E -S3154001B5C081E80000000000000000000000000000CB -S315400200000000000100000000000000004001B56849 -S315400200102000000000000000000000000000000078 +S315400174A0A1800000E8180000AC100000AE100000FA +S315400174B0EC04C000EE04E00480A500161280010031 +S315400174C080A54017128000FE01000000A54400007F +S315400174D0A534A00BA40CA00780A4A001128000F83B +S315400174E001000000A0100000A1844000A610000089 +S315400174F0A1800000A210200AA1844000A41000002F +S31540017500A1800000E8180000AC100000AE10000099 +S31540017510EC04C012EE04E00480A50016128000E8D7 +S3154001752080A54017128000E601000000A544000036 +S31540017530A534A00BA40CA00780A4A002068000E0FD +S315400175400100000021100120A0142200EC1C0000C3 +S31540017550A0042008E81C0000A1844000A6100000F9 +S31540017560A1800000A210200EA1844000A4100010AA +S31540017570AC100000AE100000A18000000100000028 +S3154001758001000000EC3C8013AC100000AE1000007E +S31540017590E81CC01280A50016128000C980A54017BC +S315400175A0128000C701000000A5440000A534A00BCD +S315400175B0A40CA00780A4A004128000C10100000011 +S315400175C010800002010000008B4440008A09601FC0 +S315400175D080A160010280000A8C1000059DE3BFA0D6 +S315400175E08AA1600116BFFFFE0100000081E800008C +S315400175F08CA1A00116BFFFFE0100000001000000A2 +S3154001760001000000A023A080A02C20078E100010AE +S31540017610A3480000E2240000C2242004C43C200800 +S31540017620C83C2010CC3C2018F03C2020F43C2028BB +S31540017630F83C2030FC3C2038D03C2040D43C20480B +S31540017640D83C2050DC3C2058A5500000E424206062 +S315400176508010200882102001841020028610200309 +S31540017660881020048A1020058C1020068190000085 +S31540017670A42C601F818C80000100000001000000E5 +S3154001768001000000030040408210610184100000A7 +S3154001769086100000894440008809201F8610000496 +S315400176A0A010000284004002A210000284004002A1 +S315400176B0A410000284004002A61000028400400289 +S315400176C0A810000284004002AA1000028400400271 +S315400176D0AC10000284004002AE1000028400400259 +S315400176E09010000284004002921000028400400281 +S315400176F09410000284004002961000028400400269 +S3154001770098100002840040029A1000028400400250 +S315400177109C100002840040029E1000028400400238 +S3154001772081E0000086A0E00116BFFFDE01000000F7 +S31540017730030040408210610184100000861000045D +S3154001774080A400021280003F8400400280A44002CF +S315400177501280003C8400400280A4800212800039DD +S315400177608400400280A4C002128000368400400298 +S3154001777080A50002128000338400400280A54002A9 +S31540017780128000308400400280A580021280002DC4 +S315400177908400400280A5C0021280002A8400400273 +S315400177A080A20002128000278400400280A240028B +S315400177B0128000248400400280A2800212800021AF +S315400177C08400400280A2C0021280001E8400400252 +S315400177D080A300021280001B8400400280A3400265 +S315400177E0128000188400400280A380021280001596 +S315400177F08400400280A3C00212800012840040022D +S3154001780081E0000086A0E00116BFFFCE0100000026 +S3154001781080A020001280000B80A0FFFF128000098B +S3154001782080A160051280000780A1A0061280000594 +S3154001783001000000A010000710800006C02420208F +S31540017840A01000079010200110800002D0242020B3 +S3154001785082100007C40040008188800001000000BA +S315400178600100000001000000C4186008C81860103B +S31540017870CC186018F0186020F4186028F8186030A9 +S31540017880FC186038D0186040D4186048D818605049 +S31540017890DC186058E4006060C20060048194800096 +S315400178A0010000000100000001000000A0100007D7 +S315400178B0F004202081C7E00881E8000010BFFFFCEA +S315400178C0B01000000100000081D8200081C3E0080B +S315400178D0010000000328000084106004952AA00DD1 +S315400178E0D0204000922270009202400AD2208000AD +S315400178F081C3E0080100000003100124C40061AC0B +S3154001790003100124C200619C852A40028610200191 +S315400179108328C00182007FFF900A00019000800801 +S315400179208213C0007FFFE74C9E104000010000001B +S3154001793003100124C40061AC03100124C200619C00 +S31540017940852A4002861020018328C00182007FFFDC +S31540017950900A0001900080088213C0007FFFE73A39 +S315400179609E104000010000009DE3BFA02D100124A0 +S31540017970C205A1A0A410001880A0600004800020C8 +S31540017980B01020012F1001242B100124D005E1ACA9 +S3154001799029100124AC15A1A0AE15E1ACAA15619C34 +S315400179A0A815218CA0102000A2102000A6102001AD +S315400179B0C2054000832CC00182007FFF820C8001FA +S315400179C0912C00087FFFE72090020001C2050000CC +S315400179D0901A0012820A000180A00001C2058000AF +S315400179E0A2647FFFA004200180A0401034BFFFF1B4 +S315400179F0D005C00080A00011B0603FFF81C7E008FC +S31540017A0081E800009DE3BFA003100124C40061ACDE +S31540017A1003100124C200619CB32E40028410200150 +S31540017A208328800182007FFF820E00019210001A96 +S31540017A307FFFE70B9006400181C7E00881E800001F +S31540017A409DE3BFA003100124C40061AC03100124CF +S31540017A50C200619CB32E400284102001832880011C +S31540017A6082007FFF820E00019210001A7FFFE6F826 +S31540017A709006400181C7E00881E800000310012417 +S31540017A80C400619403100124C2006190852A40021A +S31540017A90861020018328C00182007FFF900A0001E1 +S31540017AA0900080088213C0007FFFE6E39E104000ED +S31540017AB0010000009DE3BFA003100124C4006194AE +S31540017AC003100124C2006190B32E400284102001AC +S31540017AD08328800182007FFF820E00019210001AE6 +S31540017AE07FFFE6D79006400181C7E00881E80000A4 +S31540017AF09DE3BFA003100124C40061940310012437 +S31540017B00C2006190B32E4002841020018328800177 +S31540017B1082007FFF820E00019210001A7FFFE6C4A9 +S31540017B209006400181C7E00881E800000310012466 +S31540017B30C400619403100124C2006190852A400269 +S31540017B40861020018328C00182007FFF900A000130 +S31540017B50900080088213C0007FFFE6B39E1040006C +S31540017B6001000000033FFFBF821063089DE38001CF +S31540017B700310004482106360C227BFEC0310004427 +S31540017B80821063A02F100044C227BFF4AE15E34014 +S31540017B9035100044EE27BFE8B416A38090102006A6 +S31540017BA07FFFA777F427BFF07FFFE69B9010200069 +S31540017BB0213FFFBF920A3FF0A01423689010200096 +S31540017BC07FFFE697A0078010230000307FFFE692F3 +S31540017BD090102000808A001112BFFFFD01000000B5 +S31540017BE081D82000230000307FFFE68B90102000D3 +S31540017BF0808A001112BFFFFD0100000023100124FD +S31540017C007FFFE6859010200013002040A410000855 +S31540017C109212600F921200097FFFE68190102000B8 +S31540017C207FFFE67D90102008D02461887FFFE67AA9 +S31540017C309010200C09100124C40461889938A014BD +S31540017C4013100124980B200F8603200AC621219088 +S31540017C50091001240310012496102400C621219401 +S31540017C60893A20148809200F9401200AD422619C64 +S31540017C70131001242D100124D0206198D42261AC27 +S31540017C8015100124932AC004833A2018D222A1A8B0 +S31540017C901510012482086003820060011B20000048 +S31540017CA08801200837100124C225A1A09201200293 +S31540017CB0821020019328400992234009D222A18CA7 +S31540017CC01510012487284003913A20109A23400336 +S31540017CD0992AC00CDA26E1A4D822A184A20A200757 +S31540017CE08738A018A93CA00CBA210011A408E003CA +S31540017CF08538A010A88D2003AA08A007A404A001D6 +S31540017D00AB284015A3284011AB2840159010001709 +S31540017D10AA057FFFA610200002800123B807BFE80D +S31540017D20A6042020030048D182106167C224C00006 +S31540017D3003226AF3821061EFC2242024C20C202060 +S31540017D4080A0600102800004010000007FFFA713AC +S31540017D509010201AC20C202180A0602302800004CA +S31540017D60010000007FFFA70D9010201BC20C2022AE +S31540017D7080A0604502800004010000007FFFA70744 +S31540017D809010201CC20C202380A060670280000452 +S31540017D90010000007FFFA7019010201DC20C202486 +S31540017DA080A0608902800004010000007FFFA6FBDD +S31540017DB09010201EC20C202580A060AB02800004DA +S31540017DC0010000007FFFA6F59010201FC20C20265F +S31540017DD080A060CD02800004010000007FFFA6EF75 +S31540017DE090102020C20C202780A060EF0280000462 +S31540017DF0010000007FFFA6E990102021C214202037 +S31540017E00832860108330601080A0612302800004C3 +S31540017E10010000007FFFA6E190102022C414202219 +S31540017E208528A010030000118530A01082106167DB +S31540017E3080A0800102800004010000007FFFA6D7D8 +S31540017E4090102023C41420248528A010030000226A +S31540017E508530A010821061AB80A0800102800004B1 +S31540017E60010000007FFFA6CD90102024C4142026D7 +S31540017E708528A010030000338530A010821061EFE1 +S31540017E8080A0800102800005821020307FFFA6C3BA +S31540017E909010202582102030C22C2020030C08D1BE +S31540017EA082106167C404C00080A080010280000581 +S31540017EB0821020317FFFA6B99010202782102031F1 +S31540017EC0C22C2021030C0C5182106167C404C000EE +S31540017ED080A0800102800005821020327FFFA6AF7C +S31540017EE09010202882102032C22C2022030C0C4CE8 +S31540017EF082106267C404C00080A080010280000530 +S31540017F00821020337FFFA6A59010202982102033AE +S31540017F10C22C2023030C0C4C82106233C404C000D3 +S31540017F2080A0800102800005821020347FFFA69B3D +S31540017F309010202A82102034C22C2024030D2AF3CB +S31540017F40821061EFC404202480A0800102800005D4 +S31540017F50821020357FFFA6919010202B821020356C +S31540017F60C22C2025030D0D73821061EFC404202419 +S31540017F7080A0800102800005821020367FFFA687FF +S31540017F809010202C82102036C22C2026030D0D4D38 +S31540017F90821062EFC404202480A080010280000583 +S31540017FA0821020377FFFA67D9010202D821020372A +S31540017FB0C22C2027030D0D4D82106237C4042024A4 +S31540017FC080A0800102800005030000107FFFA67398 +S31540017FD09010202E0300001082106041C2342020F0 +S31540017FE00310104C82106233C404C00080A080018B +S31540017FF002800005030000107FFFA6689010202F25 +S315400180000300001082106243C23420220310105034 +S3154001801082106243C404C00080A080010280000532 +S31540018020030000117FFFA65D901020300300001170 +S3154001803082106045C23420240311114D82106237EB +S31540018040C404202480A080010280000503000011A1 +S315400180507FFFA65290102031030000118210624723 +S31540018060C23420260311115182106247C4042024D0 +S3154001807080A0800102800004010000007FFFA64726 +S315400180809010203281D82000C205A1A080A06000B6 +S315400180900480001B80A5200025100124191001240D +S315400180A0A414A1A0981321AC8810200080A46000DC +S315400180B09B2920100480000C82102000C40300007C +S315400180C085290002840040028528A0028610400DC1 +S315400180D082006001C624000280A0401132BFFFF930 +S315400180E0C4030000C20480008801200180A040042E +S315400180F014BFFFF080A4600080A5200012800028F4 +S31540018100230000107FFFE54490102000808A001173 +S3154001811012BFFFFDC205A1A080A060000480001B24 +S31540018120010000002510012427100124A414A1A058 +S31540018130A614E18C10800006A2102000A204600162 +S3154001814080A040110480001101000000921000112E +S315400181507FFFFDF890100010C204C000901C00087B +S31540018160808A000132BFFFF6C20480007FFFA60B62 +S3154001817090102033C2048000A204600180A0401107 +S3154001818014BFFFF4921000117FFFE52390102000E9 +S315400181909212200F7FFFE5229010200081C7E00850 +S315400181A091E820009FC20000A604E00180A480134C +S315400181B004800008832CE002D00700019FC2000022 +S315400181C0A604E00180A4801314BFFFFC832CE002C7 +S315400181D07FFFE51190102000B616E1A4920A3FFCFC +S315400181E0A8102000901020007FFFE50DB810200058 +S315400181F0B207BFE810800005A610200080A48013B6 +S3154001820024800012A8052001921000137FFFFE482A +S3154001821090100017820A001580A0401512BFFFF882 +S31540018220A604E001C206C000901DC008900A0001E4 +S3154001823080A00008B8673FFF80A4801314BFFFF4F5 +S3154001824092100013A805200180A480140480000424 +S31540018250832D200210BFFFE8EE0640017FFFE4EECA +S3154001826090102000A6100008901020007FFFE4EC3B +S315400182709214E00380A720000280018301000000E0 +S31540018280A73CE013808CE0031280018501000000C9 +S3154001829081D82000250000307FFFE4DF90102000C8 +S315400182A0808A001212BFFFFDAA100008C205A1A0D4 +S315400182B080A060000480000F053FFFBF2510012408 +S315400182C0A6102000A414A1A0921000139010001033 +S315400182D07FFFFDDC94102000C2048000A604E0016B +S315400182E080A0401314BFFFFA92100013053FFFBF51 +S315400182F0821020008410A36884078002C0204002B7 +S315400183008200600480A0607C12BFFFFD0100000076 +S3154001831082102005C224000082102001C2242004BC +S3154001832082102002C224200882102003C224200C7D +S31540018330901000107FFFFD8DA804200480A220002C +S315400183400280014A01000000C204000080A06005CD +S3154001835002800004010000007FFFA59090102006D6 +S315400183607FFFFD829010001080A2200012800199AB +S31540018370C205A1A080A06000048000120100000097 +S3154001838025100124A6102000A414A1A092100013C8 +S31540018390941020007FFFFD9C901000109210001356 +S315400183A0901000147FFFFD9894102000C2048000B5 +S315400183B0A604E00180A0401314BFFFF692100013FB +S315400183C07FFFE4AB90100010A60420207FFFE4A8B5 +S315400183D0901000137FFFE4A6900420407FFFE4A4A1 +S315400183E090042060C205A1A080A0600004800180A5 +S315400183F0B810200025100124A414A1A0AE1020001D +S31540018400921000177FFFFD3D90100010C2048000BE +S31540018410901A200580A00008AE05E001B8673FFF2D +S3154001842080A0401714BFFFF89210001780A72000C4 +S315400184300280016F01000000033FFFBF82106368A5 +S31540018440C41F8001C43FBFA8C207BFA880A0600562 +S315400184501280000601000000C207BFAC80A0600187 +S3154001846002800005C205A1A07FFFA54C90102009FE +S31540018470C205A1A080A06000048000382510012417 +S31540018480B8102000A414A1A0AE102000921000172D +S315400184907FFFFD1A90100014C2048000901A20013B +S315400184A080A00008AE05E001B8673FFF80A04017F5 +S315400184B014BFFFF89210001780A7200112800027F1 +S315400184C0833D6013808860031280002A010000000A +S315400184D0C2042004C224000082102005C2240000E8 +S315400184E090102001D024200482102002C2242008AA +S315400184F082102003C224200C92100011400003B3C5 +S31540018500912A001DA52A2002032EEEEE821063BB9E +S31540018510C22400127FFFFD159010001080A220009A +S315400185201280013701000000C4040012032EEEEE52 +S31540018530A93D600C821063BB80A0800102BFFDFA99 +S31540018540A80D2003901020127FFFA514A93D600CB1 +S3154001855010BFFDF5A80D20037FFFA5109010200A3E +S31540018560833D60138088600302BFFFDA010000008B +S315400185707FFFE42990102000033FFFF08210603F07 +S31540018580920A00017FFFE4269010200092102000FD +S3154001859094102000AA07BFA87FFFFD1B901000156D +S315400185A07FFFE41D901020000303C00092120001DA +S315400185B07FFFE41B90102000C205A1A080A06000AF +S315400185C00480000F8210200125100124A8102000EC +S315400185D0A414A1A092100014901000157FFFFD0A6B +S315400185E094102005C2048000A805200180A04014F3 +S315400185F014BFFFFA9210001482102001C22FBFA8A7 +S315400186000300400082106005C407BFA880A0800116 +S3154001861002800004010000007FFFA4E09010200BBF +S315400186207FFFE3FD90102000833A20068208600315 +S3154001863080A0600102800004010000007FFFA4D7F2 +S315400186409010200C7FFFE3F4901020000303C0003C +S3154001865025000030922A00017FFFE3F190102000AF +S315400186607FFFE3ED90102000808A001212BFFFFDCC +S3154001867092102000941020007FFFFCE3901000151B +S315400186807FFFE3E5901020002503C00092120012FF +S315400186907FFFE3E3901020007FFFE3DF901020008F +S315400186A0808A001202BFFFFDAE100008C205A1A0DC +S315400186B080A060000480001025100124B81020011C +S315400186C0B92F0011A414A1A0B8073FFFA81020009C +S315400186D092100014901000157FFFFCDA9410001CD4 +S315400186E0C2048000A805200180A0401414BFFFFAEF +S315400186F0921000141303C00090102000922DC0095F +S315400187007FFFE3C72503C0007FFFE3C3901020002E +S31540018710808A001212BFFFFD01000000C407BFA8F6 +S31540018720030040008210600580A0800102800004A1 +S31540018730010000007FFFA4999010200D7FFFE3B652 +S3154001874090102000833A20088208600380A06001CF +S3154001875002800005841020117FFFA4909010200F05 +S3154001876084102011861020559010200025000030DD +S31540018770C43FBFF87FFFE3A801000000033C3FFF71 +S315400187800503C0008210633F820A00019010200059 +S315400187907FFFE3A3921040027FFFE39F90102000EA +S315400187A0808A001212BFFFFDAE07BFF87FFFE3BE0E +S315400187B090100017C205A1A080A060000480000FA0 +S315400187C00100000025100124AA07BFFCA414A1A0A2 +S315400187D0A810200092100014901000157FFFFC8A0B +S315400187E094102055C2048000A805200180A04014A1 +S315400187F014BFFFFA921000147FFFE3AB90100017ED +S3154001880080A220110280008180A260557FFFA4636F +S31540018810901020107FFFE38090102000833A2006BD +S315400188208208600380A0600102800004A410000851 +S315400188307FFFA45A90102010133C3FF09010200067 +S315400188409212603F920C80097FFFE375250000304C +S315400188507FFFE37190102000808A001212BFFFFD56 +S31540018860AA10000830BFFF1B7FFFA44C90102005C3 +S31540018870C204000080A0600512BFFEB801000000DE +S3154001888030BFFEB87FFFA44590102001A73CE013FE +S31540018890808CE00302BFFE7F010000007FFFE35EA4 +S315400188A090102000133FFFF0AA1000089212603F7B +S315400188B0920A00097FFFE35A901020007FFFE2B140 +S315400188C0A810001A0303C000133C3FFF901020007C +S315400188D0921263FC920D4009A61020007FFFE350DF +S315400188E09212400192100013901000147FFFFC7207 +S315400188F094102000A604E00180A4801334BFFFFB3E +S3154001890092100013901020001303C0007FFFE34430 +S31540018910921540097FFFE29B010000007FFFE33E85 +S3154001892090102000833A200A8208600380A06001EB +S3154001893002800005250000307FFFA4189010200218 +S31540018940250000307FFFE33490102000808A00121A +S3154001895012BFFFFD0100000001000000920A3FFC2A +S315400189607FFFE32F901020009010001492102000FA +S315400189707FFFFC6094102000010000007FFFE3268A +S3154001898090102000033C3FFF821063FC820A0001E5 +S31540018990901020007FFFE322921060030100000047 +S315400189A07FFFE278010000007FFFE31B901020006B +S315400189B0833A200C8208600380A0600102BFFE3525 +S315400189C0010000007FFFA3F59010200330BFFE3168 +S315400189D07FFFA3F290102007C205A1A080A06000EE +S315400189E034BFFE692510012430BFFE767FFFA3EB1D +S315400189F09010200810BFFE92033FFFBF7FFFA3E701 +S31540018A009010201130BFFEC912BFFF810100000046 +S31540018A1030BFFF819DE3BFA07FFFFC5301000000F3 +S31540018A2013002040B01000089212600F7FFFE2FC55 +S31540018A309010200081C7E00881E800009DE3BFA0B7 +S31540018A407FFFA3C81100412C82102007EC062004A9 +S31540018A50E0062004C2262008AC0DA003AC05A00107 +S31540018A6001000000C02600007FFFA3C59010200A28 +S31540018A700300020084103FFFB8060001C42600012E +S31540018A80A13C2002292AAAAAA00C27FFA81522AA9E +S31540018A902B155555A12C2008AA1561558810001C87 +S31540018AA0C2060001A8084014AA0840159A102000E1 +S31540018AB080A420002280000D9A03600186012020B7 +S31540018AC08410000482102000EA208000E820C000C3 +S31540018AD0820060108400A04080A0401006BFFFFBCA +S31540018AE08600E0409A03600180A5800D14BFFFF126 +S31540018AF0880120043B000200AE102000BA17602016 +S31540018B00BA06001D80A4200022800017AE05E001B0 +S31540018B10A610001CA410001DA2102000C204C00013 +S31540018B2080A0401502800004010000007FFFA39B46 +S31540018B3090102001C204800080A0401422800005CC +S31540018B40A20460107FFFA39590102001A20460103B +S31540018B50A604E04080A4401006BFFFF1A404A04053 +S31540018B60AE05E00180A5801714BFFFE7BA07600490 +S31540018B707FFFA3839010200C2F0008001B1555552D +S31540018B80AE060017092AAAAA9A136155881122AA84 +S31540018B9098100017961020001500020080A42000AE +S31540018BA02280000D9602E001860320048410000C09 +S31540018BB082102000DA208000C820C00082006002B6 +S31540018BC08400A00880A0401006BFFFFB8600E00895 +S31540018BD09602E00180A5800B14BFFFF19803000ABD +S31540018BE02B155555292AAAAAAA156155A81522AAAF +S31540018BF0BA1020003900020080A42000228000170C +S31540018C00BA076001A605E004A4100017A2102000CF +S31540018C10C204800080A040150280000401000000CB +S31540018C207FFFA35E90102003C204C00080A04014C1 +S31540018C3022800005A20460027FFFA3589010200302 +S31540018C40A2046002A404A00880A4401006BFFFF15C +S31540018C50A604E008BA07600180A5801D14BFFFE79E +S31540018C60AE05C01C2F0008001B155555AE15E00476 +S31540018C70092AAAAAAE0600179A136155881122AA93 +S31540018C8098100017961020001500020080A42000BD +S31540018C902280000D9602E00186033FFC8410000C01 +S31540018CA082102000DA208000C820C00082006002C5 +S31540018CB08400A00880A0401006BFFFFB8600E008A4 +S31540018CC09602E00180A5800B14BFFFF19803000ACC +S31540018CD02B155555292AAAAAAA156155A81522AABE +S31540018CE0BA1020003900020080A42000228000171B +S31540018CF0BA076001A605FFFCA4100017A2102000C8 +S31540018D00C204800080A040150280000401000000DA +S31540018D107FFFA32290102004C204C00080A040140B +S31540018D2022800005A20460027FFFA31C901020044C +S31540018D30A2046002A404A00880A4401006BFFFF16B +S31540018D40A604E008BA07600180A5801D14BFFFE7AD +S31540018D50AE05C01C82102005C22620080320000053 +S31540018D60C226000081C7E00881E80000033FFFBF3B +S31540018D70821063609DE380017FFFFAD425200000C5 +S31540018D804000016E2D0000307FFFE2239010200845 +S31540018D90AA1000087FFFE2209010200C7FFFA31B42 +S31540018DA0AE100008912A20047FFFA2F59002200C04 +S31540018DB082102001873D60148608E00F8600E00A94 +S31540018DC0A73D6010A13D6018853DE014A60CE00763 +S31540018DD08408A00FA604E0028400A00AA728401335 +S31540018DE0A00C2003A93DE010A0042001A80D2007F6 +S31540018DF0A12C0003A8052002AA2480108604FFFFA7 +S31540018E00A9284014A33DE01882053FFFA20C600348 +S31540018E10A2046001AA154003A32C4002A424801198 +S31540018E20A41480017FFFE1FC90102000808A001687 +S31540018E3012BFFFFD133FFFBF90100011921263C096 +S31540018E4015155555920780097FFFE1869412A15564 +S31540018E5080A220001280007001000000133FFFBF76 +S31540018E6090100011921263C0152AAAAA920780098E +S31540018E707FFFE1909412A2AA80A220001280006393 +S31540018E80010000007FFFA2E101000000912A2004B9 +S31540018E907FFFA2BB9002200A40000125010000008D +S31540018EA0032AAAAA981062AA8210620090100011A1 +S31540018EB0920C8001941000127FFFE1A796100014D6 +S31540018EC080A220001280004D010000000315555577 +S31540018ED09810615582106100901000119410001293 +S31540018EE0961000147FFFE19C920C800180A2200025 +S31540018EF01280003F010000007FFFA2C40100000074 +S31540018F00912A20047FFFA29E9002200B9010001010 +S31540018F10131555557FFFE1779212615580A22000C6 +S31540018F201280002F0100000090100010132AAAAAF7 +S31540018F307FFFE170921262AA80A220001280002572 +S31540018F40010000007FFFA2B101000000912A200428 +S31540018F507FFFA28B900220099010001092100015FD +S31540018F6094100013172AAAAA7FFFE16E9612E2AA6D +S31540018F7080A2200012800013010000009010001012 +S31540018F809210001594100013171555557FFFE16592 +S31540018F909612E15580A220000280000401000000E3 +S31540018FA07FFFA27E901020087FFFFA48B010200074 +S31540018FB0400000E20100000081C7E00881E80000AE +S31540018FC07FFFA2769010200710BFFFEE9010001091 +S31540018FD07FFFA2729010200630BFFFDB7FFFA26F9A +S31540018FE09010200510BFFFD2901000107FFFA26B9A +S31540018FF09010200430BFFFC17FFFA268901020036C +S3154001900010BFFFB4031555557FFFA264901020028F +S3154001901030BFFF9D7FFFA2619010200110BFFF91DD +S31540019020133FFFBF81C3E0089144400080800000A8 +S31540019030151001209412A1EC9010200092102246A6 +S3154001904081800000010000000100000001000000D5 +S31540019050D00280009122400881C3E008010000004F +S3154001906081800000901020018090200180F0200135 +S315400190701280004B010000000100000001000000C9 +S31540019080010000008090200180F8200112800044F8 +S315400190900100000001000000010000000100000085 +S315400190A08090200180FA3FFF010000001680003CBD +S315400190B00100000001000000010000000100000065 +S315400190C08180000090102001809020010100000065 +S315400190D080D0200112800032010000000100000012 +S315400190E0010000000100000080D220010280002C16 +S315400190F00100000080D23FFF1680002901000000D8 +S3154001910080DA3FFF9340000080A27FFF1280002457 +S315400191100100000080D23FFF934800009332601463 +S31540019120920A600F80A260081280001D01000000B3 +S315400191308180000090102001945220049452A00492 +S315400191409452A00496A2A04012800015010000008E +S31540019150818000009010200280A000003280001023 +S315400191609052000880A220021280000D01000000EA +S31540019170818000009010200280A0000001000000C4 +S31540019180328000079052000880A22002128000041B +S315400191900100000081C3E0089010200181C3E0086E +S315400191A0901000001315555592126155A582400045 +S315400191B0010000000100000001000000954480000C +S315400191C080A2400A1280004301000000923A40000A +S315400191D0A5824000010000000100000001000000DE +S315400191E09544800080A2400A1280003A01000000A6 +S315400191F01100003F901223FFA580000081800000EE +S3154001920001000000010000000100000093F23FFF51 +S315400192109A10000993F23FFF93F23FFF93F23FFF0B +S3154001922093F23FFF93F23FFF93F23FFF93F23FFFEB +S315400192309940000097448000153FFC009412A00815 +S3154001924080A2400A1280002380A2400B1280002196 +S3154001925080A320071280001F113FFF80901220013A +S3154001926080A340081280001B1100003F901223FF8B +S31540019270A58000008180000001000000010000007F +S315400192800100000093FA3FFF93FA3FFF93FA3FFF35 +S3154001929093FA3FFF93FA3FFF93FA3FFF93FA3FFF5B +S315400192A093FA3FFF994000009744800080A26008EE +S315400192B01280000880A260081280000680A3200068 +S315400192C0128000040100000081C3E00890102001D3 +S315400192D081C3E008901000008180000090102002B8 +S315400192E080A00000328000109072000880A2200207 +S315400192F01280000D010000008180000090102002C4 +S3154001930080A0000001000000328000079072000832 +S3154001931080A22002128000040100000081C3E008FF +S315400193209010200181C3E00890100000C0A00040C9 +S3154001933081C3E00801000000110020409012200F77 +S31540019340D0A0004081C3E008010000009DE3BFA01A +S315400193507FFFE0B190102008A21000087FFFE0AE29 +S315400193609010200CA0100008C0A00040833C60145F +S315400193708208600F8200600A913C6018900A2003BF +S31540019380900220017FFFE01B912A0001833C2014BB +S315400193908208600F8200600A913C2018900A2003DF +S315400193A0900220017FFFE021912A00017FFFF947CA +S315400193B001000000110020409012200FD0A0004073 +S315400193C081C7E00881E80000981200098182000007 +S315400193D09AAB2FFF02800025988800009923000947 +S315400193E09923000999230009992300099923000922 +S315400193F09923000999230009992300099923000912 +S315400194009923000999230009992300099923000901 +S3154001941099230009992300099923000999230009F1 +S3154001942099230009992300099923000999230009E1 +S3154001943099230009992300099923000999230009D1 +S3154001944099230009992300099923000999230009C1 +S3154001945099230009992300099923000999230000BA +S3154001946081C3E0089140000099230009992300092E +S315400194709923000999230009992300099923000991 +S315400194809923000999230009992300099923000981 +S315400194909923000999230009992300009B40000064 +S315400194A0992B200C9B33601481C3E0089013400C28 +S315400194B01080000B8610200080924008168000081C +S315400194C086100008809240001680000480920000B9 +S315400194D01680000392200009902000089A924000CD +S315400194E0128000059610000891D0200281C3E00841 +S315400194F09010000080A2C00D0A80009594100000D3 +S315400195000302000080A2C0010A80002898100000D2 +S3154001951080A340011A80000D841020019B2B60041A +S3154001952010BFFFFC980320019A83400D1A80000763 +S315400195308400A001832860049B3360019A034001A3 +S31540019540108000078420A00180A3400B0ABFFFF7CB +S3154001955001000000028000020100000084A0A00179 +S3154001956006800076010000009622C00D941020016D +S315400195701080000A01000000952AA001068000051E +S315400195809B3360019622C00D108000049402A00115 +S315400195909602C00D9422A00184A0A00116BFFFF738 +S315400195A08092C000308000659B2B600480A3400BF5 +S315400195B008BFFFFE988320010280006598232001A1 +S315400195C08092C000952AA0040680002F9B3360013B +S315400195D096A2C00D068000179B33600196A2C00D6E +S315400195E00680000B9B33600196A2C00D06800005E4 +S315400195F09B33600196A2C00D108000509402A00FCB +S315400196009682C00D1080004D9402A00D9682C00D29 +S31540019610068000059B33600196A2C00D108000476D +S315400196209402A00B9682C00D108000449402A009BA +S315400196309682C00D0680000B9B33600196A2C00D39 +S31540019640068000059B33600196A2C00D1080003B49 +S315400196509402A0079682C00D108000389402A0059E +S315400196609682C00D068000059B33600196A2C00D0F +S31540019670108000329402A0039682C00D1080002F04 +S315400196809402A0019682C00D068000179B336001AB +S3154001969096A2C00D0680000B9B33600196A2C00DB9 +S315400196A0068000059B33600196A2C00D1080002301 +S315400196B09402BFFF9682C00D108000209402BFFD28 +S315400196C09682C00D068000059B33600196A2C00DAF +S315400196D01080001A9402BFFB9682C00D10800017BD +S315400196E09402BFF99682C00D0680000B9B33600140 +S315400196F096A2C00D068000059B33600196A2C00D5F +S315400197001080000E9402BFF79682C00D1080000BA8 +S315400197109402BFF59682C00D068000059B33600119 +S3154001972096A2C00D108000059402BFF39682C00D2B +S31540019730108000029402BFF198A3200116BFFFA238 +S315400197408092C000268000029602C0098090C00027 +S31540019750268000029620000B81C3E0089010000B82 +S3154001976092100008941020009010200096102000BE +S315400197708213C000400000429E10400001000000DC +S315400197809DE3BFA080A6A00F9A100018881000196B +S31540019790088000068610001A8216401880886003E9 +S315400197A00280000D8410001980A0E00002800008AC +S315400197B082102000C4090001C42B400182006001CF +S315400197C080A0400332BFFFFDC409000181C7E00804 +S315400197D081E8000082100018DA008000DA2040009B +S315400197E08600FFF080A0E00FDA00A004DA206004D2 +S315400197F0DA00A008DA206008DA00A00CDA20600C52 +S315400198008400A01018BFFFF582006010B406BFF0B7 +S315400198109B36A004832B60049A036001B426800121 +S315400198209B2B600480A6A0038806400D8610001A73 +S3154001983008BFFFDE9A06000D82102000C401000118 +S31540019840C4234001820060048426800180A0A003D5 +S3154001985038BFFFFCC4010001B406BFFC8336A00239 +S315400198608728600282006001862680038328600281 +S315400198708801000110BFFFCD9A0340019DE3BFA0BF +S3154001988021100123400005F7901420EC03100070CD +S31540019890E2006090D004614880A220002280003D11 +S315400198A09004614CC202200480A0601F1480001EF7 +S315400198B00100000080A620000280001284006002A0 +S315400198C0C4022004820060228600A04289286002E8 +S315400198D08728E002C2022188F4220004F62200030E +S315400198E0861020018728C00282104003C2222188A7 +S315400198F080A62002028000198210000284006002C4 +S315400199008528A00282006001C2222004F2220002C0 +S31540019910B0102000400005E9901420EC81C7E00812 +S3154001992081E80000400000289010219080A220008C +S315400199302280001A901420ECC2046148C222000021 +S31540019940D0246148C0222004C0222188C022218C13 +S3154001995010BFFFD982102000C202218C861040031D +S3154001996082100002840060028528A002C622218C52 +S3154001997082006001F2220002C2222004B0102000BF +S31540019980400005CE901420EC81C7E00881E8000034 +S3154001999010BFFFC5D0246148400005C8B0103FFF45 +S315400199A081C7E00881E800009210000803100120F9 +S315400199B0D00062208213C000400002179E10400072 +S315400199C0010000009210000803100120D00062201F +S315400199D08213C000400000039E10400001000000B9 +S315400199E09DE3BFA0841020008206600B80A0601614 +S315400199F008800004A0102010A0087FF88534201F9D +S31540019A0080A400190A8000468088A0FF1280004485 +S31540019A1001000000400001AF9010001880A421F71A +S31540019A20188000418334200923100121A214637850 +S31540019A3082044010E400600C80A480010280010F82 +S31540019A4099342003C604A004C404A00CC204A0088F +S31540019A508608FFFC86048003C800E00488112001C3 +S31540019A60C220A008C820E004C420600C9010001851 +S31540019A7040000192B004A00881C7E00881E80000D7 +S31540019A80E6046008E804E004A80D3FFC82250010C6 +S31540019A9080A0600F148000D280A40014031001231B +S31540019AA02F100122EA006160C205E384AA05601015 +S31540019AB080A07FFF02800004AA054010AA056FFF1F +S31540019AC0AA0D7000901000184000018892100015F0 +S31540019AD080A23FFF02800009A41000088404C0143C +S31540019AE080A08008088000EC2D10012380A440133B +S31540019AF0028000EAC205A16CC2046008C400600489 +S31540019B008408BFFC8220801080A0600F148001224F +S31540019B1080A40002400001699010001881C7E00846 +S31540019B2091E820009934200380A060000280000F54 +S31540019B30872B200380A06004088000929934200678 +S31540019B409800605B80A0601408800008872B200382 +S31540019B5080A060541880011380A061549934200C70 +S31540019B609803206E872B200323100121A2146378CA +S31540019B7086044003E400E00C80A0C0123280000B52 +S31540019B80C404A004108000109803200136800068A8 +S31540019B90C604A00CE404A00C80A0C0122280000AD6 +S31540019BA098032001C404A0048408BFFC82208010CD +S31540019BB080A0600F04BFFFF680A0600098033FFFBE +S31540019BC098032001071001218610E380E400E00894 +S31540019BD080A0C0122280002AC2046004C404A004EA +S31540019BE08408BFFC8220801080A0600F1480008A08 +S31540019BF080A06000C620E00C16800059C620E0080F +S31540019C0080A0A1FF288000628530A0038330A0098F +S31540019C1080A06004188000E98800605B8930A00656 +S31540019C20880120389B2920039A04400DC20360080D +S31540019C3080A0400D32800008C8006004108000E911 +S31540019C40DA04600480A3400122800008C400600C4D +S31540019C50C800600488093FFC80A080042ABFFFFA3F +S31540019C60C2006008C400600CC424A00CC224A00831 +S31540019C70E420600CE420A008C2046004853B200275 +S31540019C80881020018929000280A040042ABFFF7E56 +S31540019C90E6046008808840042280004B980B3FFC14 +S31540019CA0952B20039610000C9404400A9A10000A42 +S31540019CB0E403600C80A340123280000BC404A0046C +S31540019CC0108000589602E00136800019C604A00CA7 +S31540019CD0E404A00C80A34012228000529602E001C7 +S31540019CE0C404A0048408BFFC8220801080A0600FB9 +S31540019CF004BFFFF680A06000DA04A00CC804A008E7 +S31540019D0084048010A0142001C8236008DA21200CA5 +S31540019D10C420E00CC420E008E024A004C220800155 +S31540019D20C620A00810800010C620A00CC204A008BE +S31540019D3084048002C800A00488112001C220E008E2 +S31540019D40C820A004C620600C90100018400000DB1B +S31540019D50B004A00881C7E00881E8000084048002BD +S31540019D60C200A00482106001C220A0049010001815 +S31540019D70400000D2B004A00881C7E00881E8000095 +S31540019D809803203810BFFF79872B20038928A00329 +S31540019D9088044004DA012008D6046004C824A00CD3 +S31540019DA0DA24A0088538A00282102001E423600C41 +S31540019DB083284002E42120088210400B10BFFFB0E7 +S31540019DC0C2246004892920018088400402BFFFFE25 +S31540019DD09803200410BFFFB4952B200338BFFF31F1 +S31540019DE003100123E404600884048010A0142001B8 +S31540019DF082106001E024A004C220A0049010001843 +S31540019E00C4246008400000ADB004A00881C7E00842 +S31540019E1081E800008404801010BFFFBEA014200119 +S31540019E20808AE00312BFFFA39A04A008808B200317 +S31540019E300280009C8202BFF8D400600880A28001A3 +S31540019E4022BFFFFB98033FFFC2046004892920011A +S31540019E5080A1000118BFFF0B80A1200022BFFF0A8D +S31540019E60E604600880890001228000928929200148 +S31540019E7010BFFF8C9810000B8204A008E400600C10 +S31540019E8080A0401202BFFF509803200210BFFEEF90 +S31540019E90C604A004C205A16C8205400180A08012BF +S31540019EA002800067C225A16CC605E38480A0FFFF3E +S31540019EB02280006B0310012282048001842040022B +S31540019EC0C425A16C848CA00702800006030000040F +S31540019ED08210200882204002A40480018220700062 +S31540019EE0AA04801590100018AA0D6FFFAA204015EC +S31540019EF04000007E9210001580A23FFF0280006064 +S31540019F008410200184220012840080158410A0014F +S31540019F10C205A16C82054001C225A16CC424A004DE +S31540019F2080A4401302800010E424600880A5200F1D +S31540019F300880003A84053FF48408BFF88604C002CD +S31540019F40C804E0048809200188108004C824E0047C +S31540019F5088102005C820E00880A0A00F1880004284 +S31540019F60C820E00405100123C600A16480A0400377 +S31540019F7038800002C220A16405100123C600A168F1 +S31540019F8080A0400338BFFEDDC220A16810BFFEDCC1 +S31540019F90C204600828BFFF95E404600830BFFEDEB6 +S31540019FA01880001780A065549934200F98032077B4 +S31540019FB010BFFEEE872B200380A0601408BFFF1B55 +S31540019FC09B29200380A060541880001780A061540B +S31540019FD08930A00C8801206E10BFFF149B292003F5 +S31540019FE08939200284102001852880048413400287 +S31540019FF0C424600410BFFF1D84100001861023F0A5 +S3154001A00018BFFEDA9810207E993420129803207CDE +S3154001A01010BFFED6872B20038210200110BFFEB74A +S3154001A020C224A0041880001880A065548930A00F6E +S3154001A0308801207710BFFEFD9B2920038088AFFF52 +S3154001A04012BFFF9BC605E384C4046008860540141D +S3154001A0508610E00110BFFFC4C620A00410BFFF9ABE +S3154001A060E42063849204E0084000006B90100018DD +S3154001A0700310012310BFFFBCC200616C10BFFFA5D6 +S3154001A080AA1020009A1023F018BFFEE88810207EFF +S3154001A0908930A0128801207C10BFFEE49B29200351 +S3154001A0A0C20460048228400410BFFF68C2246004D1 +S3154001A0B010BFFF6D9602E004111001229012238811 +S3154001A0C08213C000400003FD9E10400001000000C5 +S3154001A0D011100122901223888213C000400003E12F +S3154001A0E09E104000010000009DE3BFA02110012405 +S3154001A0F0901000194000015DC02421B080A23FFFAD +S3154001A10002800004C20421B081C7E00891E800083A +S3154001A11080A0600002BFFFFD01000000C2260000D2 +S3154001A12081C7E00891E800089DE3BFA07FFFFFE9F2 +S3154001A1309010001821100121A0142378C204200890 +S3154001A140E2006004A20C7FFC82046FEFB22040194A +S3154001A150B20E7000B206700080A66FFF048000093F +S3154001A160901000187FFFFFE192102000C2042008E2 +S3154001A1708200401180A20001028000079010001861 +S3154001A180901000187FFFFFCDB010200081C7E00876 +S3154001A19081E800007FFFFFD59220001980A23FFF92 +S3154001A1A00280000EA2244019C4042008A2146001B2 +S3154001A1B003100123E220A00490100018B0102001E2 +S3154001A1C0C400616CB22080197FFFFFBCF220616C34 +S3154001A1D081C7E00881E80000901000187FFFFFC3A7 +S3154001A1E092102000C20420088422000180A0A00F02 +S3154001A1F004BFFFE407100122C600E3849022000356 +S3154001A200071001238410A001D020E16C10BFFFDDAF +S3154001A210C42060049DE3BFA080A660000280005078 +S3154001A220010000007FFFFFAB9010001884067FF805 +S3154001A230D800A004820B3FFE09100121860080014F +S3154001A24088112378DA00E004D601200880A2C003F1 +S3154001A250028000639A0B7FFCDA20E004808B2001A8 +S3154001A2601280000E98102000D8067FF88420800CBA +S3154001A2708200400CD600A0089801200880A2C00C9C +S3154001A2800280000698102001D400A00CD422E00CD4 +S3154001A29098102000D622A0089600C00DD602E004F0 +S3154001A2A0808AE0013280000A8610600180A3200086 +S3154001A2B00280002D8200400DDA00E008C600E00C65 +S3154001A2C0C623600CDA20E00886106001C2208001B6 +S3154001A2D080A3200012800020C620A00480A061FF38 +S3154001A2E028800030833060038730600980A0E00415 +S3154001A2F0188000529800E05B993060069803203838 +S3154001A3009B2B20039A01000DC603600880A0C00D57 +S3154001A31032800008C800E00410800052DA012004AF +S3154001A32080A3400322800008C200E00CC800E0047C +S3154001A33088093FFC80A040042ABFFFFAC600E00816 +S3154001A340C200E00CC220A00CC620A008C420E00C2C +S3154001A350C42060087FFFFF5981E8000081C7E008FB +S3154001A36081E80000DA00E008171001219612E38027 +S3154001A37080A3400B32BFFFD3C600E00CC423600C60 +S3154001A380C4236008C2208001DA20A008821060013F +S3154001A390DA20A00CC220A0047FFFFF4881E800001C +S3154001A3A08728600386010003DA00E008C620A00C76 +S3154001A3B0DA20A008D8012004C423600CC420E00898 +S3154001A3C083386002841020018328800182130001B2 +S3154001A3D0C22120047FFFFF3981E80000808B2001E4 +S3154001A3E01280000982034001D8067FF88420800C40 +S3154001A3F0DA00A00CC600A0088200400CC623600803 +S3154001A400DA20E00CC421200886106001C620A00491 +S3154001A41005100122C400A38080A040020ABFFFCEDE +S3154001A42003100123D20061607FFFFF4090100018A6 +S3154001A4307FFFFF2281E8000080A0E01408BFFFB241 +S3154001A4409B2B200380A0E0541880000D80A0E1548E +S3154001A4509930600C9803206E10BFFFAB9B2B2003F5 +S3154001A460993B2002821020018328400C821340012F +S3154001A470C221200410BFFFB48210000318800006D9 +S3154001A48080A0E5549930600F9803207710BFFF9E56 +S3154001A4909B2B20039A1023F018BFFF9B9810207E18 +S3154001A4A0993060129803207C10BFFF979B2B2003A5 +S3154001A4B09DE3BFA080A620000280001F031001205B +S3154001A4C0E406214880A4A00022800014C206203C54 +S3154001A4D0C204A004A0807FFF2C80000CE40480000D +S3154001A4E0A2006001A32C6002A2048011C2044000B4 +S3154001A4F09FC04000A2047FFCA0843FFF3CBFFFFDFC +S3154001A500C2044000E404800080A4A00032BFFFF2F0 +S3154001A510C204A004C206203C80A060000280000460 +S3154001A520010000009FC040009010001881C7E0085C +S3154001A53081E8000010BFFFE3F00062209DE3BFA069 +S3154001A540D206400080A260000280000401000000A3 +S3154001A5507FFFFFFB901000187FFFFF2F81E800006F +S3154001A560010000009DE3BFA003100120C20062204C +S3154001A57080A600010280003201000000D206204C74 +S3154001A58080A2600022800016E0062148A210200029 +S3154001A590E002401180A420002280000BA204600446 +S3154001A5A092100010901000187FFFFF1BE00400007E +S3154001A5B080A4200012BFFFFC92100010D206204C4E +S3154001A5C0A204600480A4603C32BFFFF3E002401164 +S3154001A5D07FFFFF1190100018E006214880A420005B +S3154001A5E02280000ED2062054A206214C80A40011DE +S3154001A5F02280000AD20620549210001090100018B2 +S3154001A6007FFFFF05E004000080A4401012BFFFFC5D +S3154001A61092100010D206205480A2600022800005CC +S3154001A620C20620387FFFFEFC90100018C206203873 +S3154001A63080A0600032800004C206203C81C7E00849 +S3154001A64081E800009FC0400090100018F20622E009 +S3154001A65080A6600002BFFFFA010000007FFFFFB83D +S3154001A66081E800000100000005100124C200A1B4E8 +S3154001A67080A060002280000603100125900040085A +S3154001A680D020A1B481C3E008901000018210616816 +S3154001A69090004008C220A1B4D020A1B481C3E008F3 +S3154001A6A090100001A7500000AE1000018334E00174 +S3154001A6B029100123E805203CA92CC014821500016C +S3154001A6C081E000008190400001000000010000008F +S3154001A6D001000000E03BA000E43BA008E83BA010DD +S3154001A6E0EC3BA018F03BA020F43BA028F83BA0305F +S3154001A6F0FC3BA03881E800008210001781C440006D +S3154001A70081CC800001000000010000000100000032 +S3154001A710A7500000A92CE0012B100123EA05603C5B +S3154001A720AB34C015AA1540148195400001000000C4 +S3154001A730010000000100000081E8000081E80000FE +S3154001A740E01BA000E41BA008E81BA010EC1BA0180E +S3154001A750F01BA020F41BA028F81BA030FC1BA0383E +S3154001A76081E0000081E0000081C4400081CC80008E +S3154001A770A75000002910006CADC5231C0100000044 +S3154001A78027100123A614E018E024C000818C202064 +S3154001A7900100000001000000010000009DE3BFA090 +S3154001A7A09DE3BFA09DE3BFA09DE3BFA09DE3BFA0E6 +S3154001A7B09DE3BFA09DE3BFA081E8000081E80000C2 +S3154001A7C081E8000081E8000081E8000081E800009E +S3154001A7D081E8000027100123A614E018C024C00018 +S3154001A7E0E203A068A4046004E223A064E423A06811 +S3154001A7F0108002F1AC10000029100122A81523FC9B +S3154001A800C2252000C8252004E0252010E225201479 +S3154001A810E4252018E825201C81E800008348000033 +S3154001A82082106F0081886020010000000100000055 +S3154001A8300100000009100123C801203C81E000000D +S3154001A8408821200180A920FF028000030100000029 +S3154001A8500100000080A1000012BFFFF901000000C5 +S3154001A86009100123C801203C81E8000080A920FF8E +S3154001A8700280000301000000010000008821200140 +S3154001A88080A1000012BFFFF90100000081E0000035 +S3154001A89029100122A81523FCC8052004C205200061 +S3154001A8A0E0052010E2052014E4052018C025201CEF +S3154001A8B0818C200001000000010000000100000021 +S3154001A8C081C4800081CCA004A0142F00818C00009B +S3154001A8D001000000010000000100000081C4800069 +S3154001A8E081CCA00480A6600212800005A8142F0026 +S3154001A8F0818D0000B01420203080001F80A66003A7 +S3154001A90012800006A80E2F00AA2C2F00A81540146D +S3154001A910818D00003080001880A6600412800008F6 +S3154001A920A9480000A8152040818D000001000000C3 +S3154001A93001000000010000003080000F80A6600584 +S3154001A94012800008A9480000A82D2040818D0000F2 +S3154001A95001000000010000000100000030800006F7 +S3154001A96080A66006128000030100000030BFFFA3ED +S3154001A97091D0200081C4800081CCA0049210200394 +S3154001A98081C3E00891D020029210200281C3E008E1 +S3154001A99091D020029210200681C3E00891D0200276 +S3154001A9A081C3E0080100000081C3E0080100000006 +S3154001A9B081C3E00801000000AE25A010A7500000A9 +S3154001A9C02D10006AAC15A1CC2910006D81C520C49B +S3154001A9D0010000001110012390122024D202000030 +S3154001A9E092026001D2220000932DE008902C2F00A4 +S3154001A9F092120009111001239012201CD00200006E +S3154001AA0080A000082280000292126F00818A602095 +S3154001AA100100000001000000010000009010001735 +S3154001AA20400000379203A06092142F00818A602073 +S3154001AA300100000001000000010000001110012387 +S3154001AA4090122024D202000092226001D2220000FC +S3154001AA50108002BCAC1000009DE3BFA01B10012377 +S3154001AA60892E60029A13619480A6601F821020008D +S3154001AA7014800017C6034004B32E60041910012345 +S3154001AA8080A0E000981322140280000D8406400C39 +S3154001AA9080A0C00212800006821000031080000EC2 +S3154001AAA0C206400C2280000CC206400CC200600C5B +S3154001AAB080A0600012BFFFFC80A08001C423400437 +S3154001AAC0F026400CC620A00C8210200081C7E00869 +S3154001AAD091E80001F026400C81C7E00891E80001A9 +S3154001AAE0912A20020310012382106194C400400878 +S3154001AAF0C422600C81C3E008D22040089DE3BFA078 +S3154001AB00051001238210A02CC200600480A04018C9 +S3154001AB1022800040C400A02C80A620002280000292 +S3154001AB20B0100001A32E200203100123821061946C +S3154001AB30E000401180A42000028000342910012445 +S3154001AB402D1001242B10012427100124A8152014AF +S3154001AB50AC15A098AA15609C1080001DA614E0189B +S3154001AB60A41000138400A001C4248011C4058000F0 +S3154001AB7080A0A00022800006D20420089FC0800049 +S3154001AB8001000000C2040000D20420089010001801 +S3154001AB909FC0400094100019C205400080A060008B +S3154001ABA022800005C20480119FC0400001000000C0 +S3154001ABB0C204801182007FFFC2248011E004200C70 +S3154001ABC080A420000280001101000000C2040000A0 +S3154001ABD080A0600022BFFFFBE004200CC4050000FA +S3154001ABE080A0A00012BFFFDFC404C01180A0A00056 +S3154001ABF002BFFFDDA4100013E004200C80A4200056 +S3154001AC0032BFFFF4C204000081C7E00881E80000BA +S3154001AC10F000A0C010BFFFC1B00E201F8C10000F66 +S3154001AC20A74800008B34E0188A09600F80A16003B1 +S3154001AC3002800002108000399010200192102006F7 +S3154001AC40400002760100000080A000080280003327 +S3154001AC5001000000C2022010113FFC00820840089A +S3154001AC60110003FC8410400890100002921020014C +S3154001AC709410200C4000027F0100000080A00008D3 +S3154001AC8002800026010000004000028F9210000160 +S3154001AC900B1001238A116034D2214000901000022A +S3154001ACA09210200194102011400002720100000010 +S3154001ACB080A00008028000190100000040000282C5 +S3154001ACC092100001920260100B1001238A11602834 +S3154001ACD0D221400090100002921020019410200DC4 +S3154001ACE0400002640100000080A000080280000BC1 +S3154001ACF00100000040000274921000010B10012374 +S3154001AD008A11602CD2214000D40260109532A010E5 +S3154001AD10940AA00FD42160049E10000681C3E00866 +S3154001AD2001000000031001238210604882102001B7 +S3154001AD3091D0200081C3E008010000009DE3BFA03F +S3154001AD40051001248410A1B8C200A09080A0600023 +S3154001AD50028000278600A0941080000688102000FB +S3154001AD608801200180A100011A8000210100000014 +S3154001AD70D800C000DA0300009733601880A2C018DB +S3154001AD8012BFFFF88600E0049733600C960AEFFF86 +S3154001AD9080A2C01932BFFFF48801200180A6A0001D +S3154001ADA0028000039A0B600FDA268000C20320045A +S3154001ADB0860120648728E00284008003C400A00441 +S3154001ADC03100003F073FFC00B01623F0B0084018A1 +S3154001ADD082084003B12E20048330600CB00E00017E +S3154001ADE0B016000281C7E00881E8000081C7E0088B +S3154001ADF091E820009DE3BFA003100124C40060AC8C +S3154001AE0080A0A00012800078841020012310012424 +S3154001AE10C42060AC92102000A01461B8941023A401 +S3154001AE20400002379010001084102000821030003C +S3154001AE308728A00288040003C600400080A0E000E5 +S3154001AE400280000480A070E0C22120048400A00199 +S3154001AE5032BFFFF882006020C42461B8DA0420487A +S3154001AE6082103800840360128528A00286040002FD +S3154001AE70C400400080A0A0000280000480A078E0C9 +S3154001AE80C220E0049A03600112BFFFF782006020EE +S3154001AE9080A360000480003FDA2420482500003F5B +S3154001AEA08404204CA414A3F09E102000821020009C +S3154001AEB010800005230003FC80A340010480003577 +S3154001AEC08400A004C6008000C800C000D600E0107F +S3154001AED08731201880A0E00132BFFFF8820060016F +S3154001AEE08931200C88092FFF80A1200632BFFFF34C +S3154001AEF082006001D804209080A3203F3480000264 +S3154001AF00861020008088E0FF2280001E82006001BA +S3154001AF10A60AC01288102000A72CE010A60AC0136A +S3154001AF208614C011D600C00080A2E0000280001144 +S3154001AF3088012001D60420909002E0249202E06428 +S3154001AF409402E0A4912A2002932A60029004000808 +S3154001AF5092040009952AA0029404000A9602E0018F +S3154001AF60C6222004E6226004DE22A004D6242090D4 +S3154001AF7080A1200F0480001E9803200182006001F9 +S3154001AF809E03E00180A3400114BFFFCF8400A004CB +S3154001AF90901020019210200D941020007FFFFF6831 +S3154001AFA02110012380A2200032800002D024202CCF +S3154001AFB09010200192102011151001247FFFFF608F +S3154001AFC09412A0A880A2200002800003031001244D +S3154001AFD0D02060A4C204202C80A0600032800002F0 +S3154001AFE0C020604081C7E00881E8000080A3203F7F +S3154001AFF034BFFFE48200600110BFFFCB8600E0084A +S3154001B0009DE3BFA003100124C20060B08410001864 +S3154001B01080A0600002800006B0102000901000025F +S3154001B0209FC0400092100019B010000881C7E00887 +S3154001B03081E800009DE3BFA003100124C20060B473 +S3154001B04080A0600002800005841020009FC040005F +S3154001B050901000188410000881C7E00891E80002AA +S3154001B0609DE3BFA003100124C20060BC80A0600024 +S3154001B07002800005841020009FC0400090100018F7 +S3154001B0808410000881C7E00891E800029DE3BFA053 +S3154001B09003100124C20060B880A060000280000550 +S3154001B0A0841020009FC040009010001884100008B2 +S3154001B0B081C7E00891E800029DE3BFA00310012487 +S3154001B0C0C20060C080A0600002800005841020009C +S3154001B0D09FC04000901000188410000881C7E00806 +S3154001B0E091E800029DE3BFA003100124C20060C4A1 +S3154001B0F080A0600002800005841020009FC04000AF +S3154001B100901000188410000881C7E00891E80002F9 +S3154001B1109DE3BFA003100124C20060C880A0600067 +S3154001B12002800005841020009FC040009010001846 +S3154001B1308410000881C7E00891E800029DE3BFA0A2 +S3154001B14003100124C20060CC8410001880A0600066 +S3154001B15002800006B0102000901000029FC04000FF +S3154001B16092100019B010000881C7E00881E800007C +S3154001B170010000000310006C821062289FC040004D +S3154001B1800100000003100000821060008198400019 +S3154001B1900310006C821062909FC0400001000000C5 +S3154001B1A00310006C821062189FC04000010000002D +S3154001B1B08B4440008B31601C80A140001280000608 +S3154001B1C0010000007FFFFE96010000007FFF99B25B +S3154001B1D0010000009C23A0407FFF978A01000000E8 +S3154001B1E08210200191D020000100000029000004B6 +S3154001B1F0A68C001432800003A02C001491D02000AC +S3154001B200818C0000010000000100000001000000E7 +S3154001B21081C4800081CCA00481C3E0080100000004 +S3154001B22081C1E00801000000A74800008B34E01806 +S3154001B2308A09600380A160031280000801000000B2 +S3154001B24021100123A0142044A2102003E22400006F +S3154001B2508B444000108000018A09601F271001239A +S3154001B260A614E03CCA24C0008A01600127100123CC +S3154001B270A614E038CA24C00027100123A614E040D2 +S3154001B2808A216002CA24C00081C3E008010000008F +S3154001B29081C3E00801000000834800008330601844 +S3154001B2A08208600380A0600312800006010000004E +S3154001B2B0834440000500000882284002A3804000E4 +S3154001B2C0881000000910006C81C121740100000042 +S3154001B2D09DE3BFA02110007023100070A014203000 +S3154001B2E0A214603080A400111A80000B01000000F6 +S3154001B2F0D004000080A2200002800004A0042004A3 +S3154001B3009FC200000100000080A400112ABFFFFA7D +S3154001B310D004000081C7E00881E80000AA27A0B058 +S3154001B320E0256060E2256064E4256068C2256074BA +S3154001B330C43D6078C83D6080CC3D60888540000052 +S3154001B340C425606CF03D6090F43D6098F83D60A086 +S3154001B350FC3D60A8A8102001A92D0010808D001386 +S3154001B36002800013010000008534E001071001232B +S3154001B370C600E03CA72CC0038414C0028408A0FF89 +S3154001B38081E000008190A000E03BA000E43BA008E2 +S3154001B390E83BA010EC3BA018F03BA020F43BA028D2 +S3154001B3A0F83BA030FC3BA03881E8000081C5A008ED +S3154001B3B09C100015051001248410A0A0C400800033 +S3154001B3C080A0800002800004010000009FC0800030 +S3154001B3D09203A060818C20008210200283284010B5 +S3154001B3E005100123C400A038853040028210400276 +S3154001B3F08550000080888001028000208328A001BA +S3154001B40007100123C600E03C8530800382104002CC +S3154001B410820860FF81906000C203A06C8180600059 +S3154001B420F01BA090F41BA098F81BA0A0FC1BA0A8A1 +S3154001B430C203A074C41BA078C81BA080CC1BA088E3 +S3154001B440E003A060E203A064E403A06881E8000091 +S3154001B450E01BA000E41BA008E81BA010EC1BA018F1 +S3154001B460F01BA020F41BA028F81BA030FC1BA03821 +S3154001B4701080000F81E00000C203A06C8180600053 +S3154001B480F01BA090F41BA098F81BA0A0FC1BA0A841 +S3154001B490C203A074C41BA078C81BA080CC1BA08883 +S3154001B4A0E003A060E203A064E403A068818C20006D +S3154001B4B001000000010000000100000081C44000BD +S3154001B4C081CC8000AA27A0B0C2256074C43D6078B3 +S3154001B4D0C83D6080CC3D608885400000C425606CD5 +S3154001B4E0A8102001A92D0010808D001302800013A1 +S3154001B4F0010000008534E00107100123C600E03C4D +S3154001B500A72CC0038414C0028408A0FF81E0000078 +S3154001B5108190A000E03BA000E43BA008E83BA010DE +S3154001B520EC3BA018F03BA020F43BA028F83BA03010 +S3154001B530FC3BA03881E8000081C5A0089C1000159D +S3154001B540051001248410A0A0C400800080A08000C2 +S3154001B55002800004010000009FC080009203A060A9 +S3154001B560818C20008210200283284010051001237F +S3154001B570C400A03885304002821040028550000048 +S3154001B58080888001028000198328A00107100123C9 +S3154001B590C600E03C8530800382104002820860FF8D +S3154001B5A081906000C203A06C81806000C203A074D8 +S3154001B5B0C41BA078C81BA080CC1BA08881E80000D2 +S3154001B5C0E01BA000E41BA008E81BA010EC1BA01880 +S3154001B5D0F01BA020F41BA028F81BA030FC1BA038B0 +S3154001B5E01080000881E00000C203A06C81806000E9 +S3154001B5F0C203A074C41BA078C81BA080CC1BA08822 +S3154001B600818C2000010000000100000001000000C3 +S3154001B61081C4400081CC8000821000089A10380015 +S3154001B62096102000912AE00598034008D40340086B +S3154001B6309132A01880A20001328000089602E001F2 +S3154001B6409132A00C900A2FFF80A2000902800007C8 +S3154001B6509410000C9602E00180A2E00728BFFFF398 +S3154001B660912AE0059410200081C3E0089010000A59 +S3154001B6708210000898102000912B20039A00400860 +S3154001B680D60040089132E01880A2000932800008B5 +S3154001B690980320019132E00C900A2FFF80A2000A04 +S3154001B6A0028000079610000D9803200180A3200F09 +S3154001B6B028BFFFF3912B20039610200081C3E00899 +S3154001B6C09010000BD4022004173FFC00920A400B55 +S3154001B6D0900A800B9132200C921240081100003FD3 +S3154001B6E0901223F0940A8008952AA0049412800BA4 +S3154001B6F0920A400A81C3E008901000099DE3BFA069 +S3154001B700860E60FF80A6A0030880002A84100018D8 +S3154001B710808E20033280002A821020008328E00890 +S3154001B7208210400380A6A00F852860109A10001849 +S3154001B730841080018810001A0880001182100018B8 +S3154001B740C4204000C4206004C4206008C420600CAA +S3154001B75088013FF080A1200F18BFFFFA82006010D8 +S3154001B7608206BFF0B408600F9A087FF080A6A00356 +S3154001B7709A0360100880000E9A06000D8210200080 +S3154001B780C4234001820060048826800180A12003F1 +S3154001B79038BFFFFDC42340018206BFFCB4086003E5 +S3154001B7A082087FFC820060049A0340018410000DE8 +S3154001B7B080A6A0000280000782102000C6288001D2 +S3154001B7C08200600180A0401A32BFFFFEC628800178 +S3154001B7D081C7E00881E800009DE3BFA02110007009 +S3154001B7E0A0142018C2043FFC80A07FFF02800008FD +S3154001B7F0A0043FFC9FC04000A0043FFCC2040000DF +S3154001B80080A07FFF12BFFFFC0100000081C7E00856 +S3154001B81081E800009DE3BFA081C7E00881E8000000 +S3154001B8200000001000000000017A5200047C0F0164 +S3154001B8301B0C0E000000001000000018FFFE595CB2 +S3154001B8400000007000000000000000180000002CFD +S3154001B850FFFE59B8000000B400410D1E2D4A090FE4 +S3154001B8601F0000000000001800000048FFFE5A506B +S3154001B870000000D800410D1E2D6C090F1F0000006D +S3154001B8800000001800000064FFFE5B0C0000047815 +S3154001B89000410D1E2D4D090F1F000000000000182C +S3154001B8A000000080FFFE5F680000008800410D1E19 +S3154001B8B02D5B090F1F000000000000180000009CCE +S3154001B8C0FFFE5FD40000009000410D1E2D43090F7D +S3154001B8D01F00000000000014000000B8FFFE604891 +S3154001B8E00000002000410D1E2D090F1F0000001011 +S3154001B8F0000000D0FFFE60500000001C0000000068 +S3154001B90000000010000000E4FFFE60580000001C2B +S3154001B9100000000000000010000000F8FFFE60601B +S3154001B9200000001C00000000000000100000010C97 +S3154001B930FFFE60680000001C0000000000000014CB +S3154001B94000000120FFFE60700000002C00410D1E2A +S3154001B9502D090F1F0000001800000138FFFE60D0BE +S3154001B9600000004000410D1E2D46090F1F0000003A +S3154001B9700000001800000154FFFE60F4000002249C +S3154001B98000410D1E2D46090F1F0000000000001842 +S3154001B99000000170FFFE62FC0000023400410D1EF2 +S3154001B9A02D47090F1F000000000000180000018C00 +S3154001B9B0FFFE65140000003C00410D1E2D43090F9A +S3154001B9C01F00000000000018000001A8FFFE6534BA +S3154001B9D00000003C00410D1E2D43090F1F000000D1 +S3154001B9E000000014000001C4FFFF46180000039444 +S3154001B9F000410D1E2D090F1F00000010000001DC43 +S3154001BA00FFFF49940000002C0000000000000010D8 +S3154001BA10000001F0FFFF49AC0000002400000000D7 +S3154001BA200000001000000204FFFF49BC000000189E +S3154001BA30000000000000001800000218FFFF49C086 +S3154001BA400000017C00410D1E2D42090F1F00000020 +S3154001BA500000001800000234FFFF4B200000058063 +S3154001BA6000410D1E2D46090F1F0000000000001861 +S3154001BA7000000250FFFF50840000051800410D1ED2 +S3154001BA802D43090F1F000000000000140000026C46 +S3154001BA90FFFF55800000010C00410D1E2D090F1FAF +S3154001BAA00000001000000284FFFF567400000018D9 +S3154001BAB0000000000000001400000298FFFF5678C5 +S3154001BAC00000020800410D1E2D090F1F0000001441 +S3154001BAD0000002B0FFFF66FC0000461800410D1E43 +S3154001BAE02D090F1F00000010000002C8FFFFACFC2B +S3154001BAF00000000C0000000000000010000002DC05 +S3154001BB00FFFFACF40000001400000000000000102C +S3154001BB10000002F0FFFFACF400000020000000002E +S3154001BB200000001400000304FFFFAD000000077091 +S3154001BB3000410D1E2D090F1F000000100000031CBF +S3154001BB40FFFFBD880000000C00000000000000104F +S3154001BB5000000330FFFFBD8000000024000000000C +S3154001BB600000001000000344FFFFBD9000000038B4 +S3154001BB70000000000000001000000358FFFFBDB4A4 +S3154001BB800000003800000000000000180000036CAF +S3154001BB90FFFFBDD80000009C00410D1E2D56090F28 +S3154001BBA01F0000000000001800000388FFFFBE5878 +S3154001BBB00000003C00410D1E2D4A090F1F000000E8 +S3154001BBC000000018000003A4FFFFBE780000003CFF +S3154001BBD000410D1E2D4A090F1F00000000000010F4 +S3154001BBE0000003C0FFFFBE980000003800000000BF +S3154001BBF000000018000003D4FFFFBEBC0000003C5B +S3154001BC0000410D1E2D4A090F1F00000000000018BB +S3154001BC10000003F0FFFFBEDC0000003C00410D1EAA +S3154001BC202D4A090F1F000000000000100000040CFF +S3154001BC30FFFFBEFC000000380000000000000018B5 +S3154001BC4000000420FFFFBF2000000EB000430D1E80 +S3154001BC502D4C090F1F000000000000140000043C99 +S3154001BC60FFFFCDB40000002800410D1E2D090F1F16 +S3154001BC700000001400000454FFFFCDC4000003304F +S3154001BC8000410D1E2D090F1F000000140000046C19 +S3154001BC90FFFFD0DC000002B800430D1E2D090F1F27 +S3154001BCA00000001000000484FFFFD6840000000C51 +S3154001BCB0000000000000001000000498FFFFD67C41 +S3154001BCC0000000140000000000000014000004AC55 +S3154001BCD0FFFFD67C0000007C00410D1E2D090F1F81 +S3154001BCE000000010000004C4FFFFDA7800000020C5 +S3154001BCF00000000000000018000004D8FFFFDA84AD +S3154001BD00000000FC00410D1E2D54090F1F000000CC +S3154001BD1000000018000004F4FFFFDB640000012C62 +S3154001BD2000410D1E2D41090F1F00000000000010AB +S3154001BD3000000510FFFFDC740000001C000000003D +S3154001BD400000001000000524FFFFDC7C0000001C01 +S3154001BD50000000000000001800000538FFFFDC84E9 +S3154001BD60000006D800410D1E2D4C090F1F00000092 +S3154001BD700000001000000554FFFFE34000000018DA +S3154001BD80000000000000001000000568FFFFE344CA +S3154001BD900000001800000000000000180000057CAB +S3154001BDA0FFFFE3480000004000410D1E2D42090FF0 +S3154001BDB01F0000000000001400000598FFFFE36C1F +S3154001BDC0000000EC00410D1E2D090F1F0000001858 +S3154001BDD0000005B0FFFFE4400000029C00410D1E3B +S3154001BDE02D43090F1F00000000000018000005CC7C +S3154001BDF0FFFFE6C00000008C00410D1E2D4F090FCC +S3154001BE001F00000000000018000005E8FFFFE730B2 +S3154001BE100000002800410D1E2D44090F1F0000009F +S3154001BE200000001800000604FFFFE73C0000010483 +S3154001BE3000410D1E2D45090F1F0000000000001096 +S3154001BE4000000620FFFFE8240000003C000000003F +S3154001BE500000001800000634FFFFEC0000000088D7 +S3154001BE6000410D1E2D52090F1F0000000000001059 +S3154001BE7000000650FFFFEC6C0000001C00000000B3 +S3154001BE800000001800000664FFFFEC74000001206A +S3154001BE9000410D1E2D58090F1F0000000000001023 +S3154001BEA000000680FFFFEE88000000100000000041 +S3154001BEB00000001800000694FFFFEE84000000B861 +S3154001BEC000410D1E2D48090F1F00000000000018FB +S3154001BED0000006B0FFFFEF200000020C00410D1EDE +S3154001BEE02D4A090F1F00000000000018000006CC73 +S3154001BEF0FFFFF1100000003400410D1E2D47090FD0 +S3154001BF001F00000000000018000006E8FFFFF128AE +S3154001BF100000002C00410D1E2D45090F1F00000099 +S3154001BF200000001800000704FFFFF1380000002C54 +S3154001BF3000410D1E2D45090F1F000000000000188D +S3154001BF4000000720FFFFF1480000002C00410D1EB4 +S3154001BF502D45090F1F000000000000180000073C96 +S3154001BF60FFFFF1580000002C00410D1E2D45090F21 +S3154001BF701F0000000000001800000758FFFFF1688D +S3154001BF800000002C00410D1E2D45090F1F00000029 +S3154001BF900000001800000774FFFFF1780000002C34 +S3154001BFA000410D1E2D45090F1F000000000000181D +S3154001BFB000000790FFFFF1880000003400410D1E8C +S3154001BFC02D47090F1F00000000000018000007ACB4 +S3154001BFD0FFFFF3000000004C00410D1E2D47090FE5 +S3154001BFE01F00000000000018000007C8FFFFF710FF +S3154001BFF0000000DC00410D1E2D76090F1F000000D8 +S3154001C00000000000000000000000000000000000E9 +S3154001C01000000002FFFFFFFF0000000000000000DB +S3154001C02000000002FFFFFFFF0000000000000000CB +S3154001C030343074693934612B3079676979753035B3 +S3154001C0407968617035796934682B612B69697978CA +S3154001C0506869346B35396A30713930356A6B6F7955 +S3154001C06070686F70746A72686961346979302B34AB +S3154001C0700000000000000000400800000000000031 +S3154001C0803CD203AF9EE756163E7AD7F29ABCAF48EA +S3154001C0904004822800000000430000000000000028 +S3154001C0A09DE3BFA07FFF9421010000007FFFFDCBF0 +S3154001C0B00100000081C7E00881E800009DE3BFA0C0 +S3154001C0C07FFF93EF0100000081C7E00881E800008F +S3154001C0D00000000000000000000000000000000019 +S3154001C0E00000000000000000000000000000000009 +S3154001C0F000000000000000000000000000000000F9 +S3154001C10000000000000000000000000000000000E8 +S3154001C11000000000000000000000000000000000D8 +S3154001C12000000000000000000000000000000000C8 +S3154001C13000000000000000000000000000000000B8 +S3154001C14000000000000000000000000000000000A8 +S3154001C1500000000000000000000000000000000098 +S3154001C1600000000000000000000000000000000088 +S3154001C1700000000000000000000000000000000078 +S3154001C1800000000000000000000000000000000068 +S3154001C1900000000000000000000000000000000058 +S3154001C1A00000000000000000000000000000000048 +S3154001C1B00000000000000000000000000000000038 +S3154001C1C00000000000000000000000000000000028 +S3154001C1D00000000000000000000000000000000018 +S3154001C1E00000000000000000000000000000000008 +S3154001C1F000000000000000000000000000000000F8 +S3154001C20000000000000000000000000000000000E7 +S3154001C21000000000000000000000000000000000D7 +S3154001C22000000000000000000000000000000000C7 +S3154001C23000000000000000000000000000000000B7 +S3154001C24000000000000000000000000000000000A7 +S3154001C2500000000000000000000000000000000097 +S3154001C2600000000000000000000000000000000087 +S3154001C2700000000000000000000000000000000077 +S3154001C2800000000000000000000000000000000067 +S3154001C2900000000000000000000000000000000057 +S3154001C2A00000000000000000000000000000000047 +S3154001C2B00000000000000000000000000000000037 +S3154001C2C00000000000000000000000000000000027 +S3154001C2D00000000000000000000000000000000017 +S3154001C2E00000000000000000000000000000000007 +S3154001C2F000000000000000000000000000000000F7 +S3154001C30000000000000000000000000000000000E6 +S3154001C31000000000000000000000000000000000D6 +S3154001C32000000000000000000000000000000000C6 +S3154001C33000000000000000000000000000000000B6 +S3154001C34000000000000000000000000000000000A6 +S3154001C3500000000000000000000000000000000096 +S3154001C3600000000000000000000000000000000086 +S3154001C3700000000000000000000000000000000076 +S3154001C3800000000000000000000000000000000066 +S3154001C3900000000000000000000000000000000056 +S3154001C3A00000000000000000000000000000000046 +S3154001C3B00000000000000000000000000000000036 +S3154001C3C00000000000000000000000000000000026 +S3154001C3D00000000000000000000000000000000016 +S3154001C3E00000000000000000000000000000000006 +S3154001C3F000000000000000000000000000000000F6 +S3154001C40000000000000000000000000000000000E5 +S3154001C41000000000000000000000000000000000D5 +S3154001C42000000000000000000000000000000000C5 +S3154001C43000000000000000000000000000000000B5 +S3154001C44000000000000000000000000000000000A5 +S3154001C4500000000000000000000000000000000095 +S3154001C4600000000000000000000000000000000085 +S3154001C4700000000000000000000000000000000075 +S3154001C4800000000000000000000000000000000065 +S3154001C4900000000000000000000000000000000055 +S3154001C4A00000000000000000000000000000000045 +S3154001C4B00000000000000000000000000000000035 +S3154001C4C00000000000000000000000000000000025 +S3154001C4D00000000000000000000000000000000015 +S3154001C4E00000000000000000000000000000000005 +S3154001C4F000000000000000000000000000000000F5 +S3154001C50000000000000000000000000000000000E4 +S3154001C51000000000000000000000000000000000D4 +S3154001C52000000000000000000000000000000000C4 +S3154001C53000000000000000000000000000000000B4 +S3154001C54000000000000000000000000000000000A4 +S3154001C5500000000000000000000000000000000094 +S3154001C5600000000000000000000000000000000084 +S3154001C5700000000000000000000000000000000074 +S3154001C5800000000000000000000000000000000064 +S3154001C5900000000000000000000000000000000054 +S3154001C5A00000000000000000000000000000000044 +S3154001C5B00000000000000000000000000000000034 +S3154001C5C00000000000000000000000000000000024 +S3154001C5D00000000000000000000000000000000014 +S3154001C5E00000000000000000000000000000000004 +S3154001C5F000000000000000000000000000000000F4 +S3154001C60000000000000000000000000000000000E3 +S3154001C61000000000000000000000000000000000D3 +S3154001C62000000000000000000000000000000000C3 +S3154001C63000000000000000000000000000000000B3 +S3154001C64000000000000000000000000000000000A3 +S3154001C6500000000000000000000000000000000093 +S3154001C6600000000000000000000000000000000083 +S3154001C6700000000000000000000000000000000073 +S3154001C6800000000000000000000000000000000063 +S3154001C6900000000000000000000000000000000053 +S3154001C6A00000000000000000000000000000000043 +S3154001C6B00000000000000000000000000000000033 +S3154001C6C00000000000000000000000000000000023 +S3154001C6D00000000000000000000000000000000013 +S3154001C6E00000000000000000000000000000000003 +S3154001C6F000000000000000000000000000000000F3 +S3154001C70000000000000000000000000000000000E2 +S3154001C71000000000000000000000000000000000D2 +S3154001C72000000000000000000000000000000000C2 +S3154001C73000000000000000000000000000000000B2 +S3154001C74000000000000000000000000000000000A2 +S3154001C7500000000000000000000000000000000092 +S3154001C7600000000000000000000000000000000082 +S3154001C7700000000000000000000000000000000072 +S3154001C7800000000000000000000000000000000062 +S3154001C7900000000000000000000000000000000052 +S3154001C7A00000000000000000000000000000000042 +S3154001C7B00000000000000000000000000000000032 +S3154001C7C00000000000000000000000000000000022 +S3154001C7D00000000000000000000000000000000012 +S3154001C7E00000000000000000000000000000000002 +S3154001C7F000000000000000000000000000000000F2 +S3154001C80000000000000000000000000000000000E1 +S3154001C81000000000000000000000000000000000D1 +S3154001C82000000000000000000000000000000000C1 +S3154001C83000000000000000000000000000000000B1 +S3154001C84000000000000000000000000000000000A1 +S3154001C8500000000000000000000000000000000091 +S3154001C8600000000000000000000000000000000081 +S3154001C8700000000000000000000000000000000071 +S3154001C8800000000000000000000000000000000061 +S3154001C8900000000000000000000000000000000051 +S3154001C8A00000000000000000000000000000000041 +S3154001C8B00000000000000000000000000000000031 +S3154001C8C00000000000000000000000000000000021 +S3154001C8D00000000000000000000000000000000011 +S3154001C8E00000000000000000000000000000000001 +S3154001C8F000000000000000000000000000000000F1 +S3154001C90000000000000000000000000000000000E0 +S3154001C91000000000000000000000000000000000D0 +S3154001C92000000000000000000000000000000000C0 +S3154001C93000000000000000000000000000000000B0 +S3154001C94000000000000000000000000000000000A0 +S3154001C9500000000000000000000000000000000090 +S3154001C9600000000000000000000000000000000080 +S3154001C9700000000000000000000000000000000070 +S3154001C9800000000000000000000000000000000060 +S3154001C9900000000000000000000000000000000050 +S3154001C9A00000000000000000000000000000000040 +S3154001C9B00000000000000000000000000000000030 +S3154001C9C00000000000000000000000000000000020 +S3154001C9D00000000000000000000000000000000010 +S3154001C9E00000000000000000000000000000000000 +S3154001C9F000000000000000000000000000000000F0 +S3154001CA0000000000000000000000000000000000DF +S3154001CA1000000000000000000000000000000000CF +S3154001CA2000000000000000000000000000000000BF +S3154001CA3000000000000000000000000000000000AF +S3154001CA40000000000000000000000000000000009F +S3154001CA50000000000000000000000000000000008F +S3154001CA60000000000000000000000000000000007F +S3154001CA70000000000000000000000000000000006F +S3154001CA80000000000000000000000000000000005F +S3154001CA90000000000000000000000000000000004F +S3154001CAA0000000000000000000000000000000003F +S3154001CAB0000000000000000000000000000000002F +S3154001CAC0000000000000000000000000000000001F +S3154001CAD0000000000000000000000000000000000F +S3154001CAE000000000000000000000000000000000FF +S3154001CAF000000000000000000000000000000000EF +S3154001CB0000000000000000000000000000000000DE +S3154001CB1000000000000000000000000000000000CE +S3154001CB2000000000000000000000000000000000BE +S3154001CB3000000000000000000000000000000000AE +S3154001CB40000000000000000000000000000000009E +S3154001CB50000000000000000000000000000000008E +S3154001CB60000000000000000000000000000000007E +S3154001CB70000000000000000000000000000000006E +S3154001CB80000000000000000000000000000000005E +S3154001CB90000000000000000000000000000000004E +S3154001CBA0000000000000000000000000000000003E +S3154001CBB0000000000000000000000000000000002E +S3154001CBC0000000000000000000000000000000001E +S3154001CBD0000000000000000000000000000000000E +S3154001CBE000000000000000000000000000000000FE +S3154001CBF000000000000000000000000000000000EE +S3154001CC0000000000000000000000000000000000DD +S3154001CC1000000000000000000000000000000000CD +S3154001CC2000000000000000000000000000000000BD +S3154001CC3000000000000000000000000000000000AD +S3154001CC40000000000000000000000000000000009D +S3154001CC50000000000000000000000000000000008D +S3154001CC60000000000000000000000000000000007D +S3154001CC70000000000000000000000000000000006D +S3154001CC80000000000000000000000000000000005D +S3154001CC90000000000000000000000000000000004D +S3154001CCA0000000000000000000000000000000003D +S3154001CCB0000000000000000000000000000000002D +S3154001CCC0000000000000000000000000000000001D +S3154001CCD0000000000000000000000000000000000D +S3154001CCE000000000000000000000000000000000FD +S3154001CCF000000000000000000000000000000000ED +S3154001CD0000000000000000000000000000000000DC +S3154001CD1000000000000000000000000000000000CC +S3154001CD2000000000000000000000000000000000BC +S3154001CD3000000000000000000000000000000000AC +S3154001CD40000000000000000000000000000000009C +S3154001CD50000000000000000000000000000000008C +S3154001CD60000000000000000000000000000000007C +S3154001CD70000000000000000000000000000000006C +S3154001CD80000000000000000000000000000000005C +S3154001CD90000000000000000000000000000000004C +S3154001CDA0000000000000000000000000000000003C +S3154001CDB0000000000000000000000000000000002C +S3154001CDC0000000000000000000000000000000001C +S3154001CDD0000000000000000000000000000000000C +S3154001CDE000000000000000000000000000000000FC +S3154001CDF000000000000000000000000000000000EC +S3154001CE0000000000000000000000000000000000DB +S3154001CE1000000000000000000000000000000000CB +S3154001CE2000000000000000000000000000000000BB +S3154001CE3000000000000000000000000000000000AB +S3154001CE40000000000000000000000000000000009B +S3154001CE50000000000000000000000000000000008B +S3154001CE60000000000000000000000000000000007B +S3154001CE70000000000000000000000000000000006B +S3154001CE80000000000000000000000000000000005B +S3154001CE90000000000000000000000000000000004B +S3154001CEA0000000000000000000000000000000003B +S3154001CEB0000000000000000000000000000000002B +S3154001CEC0000000000000000000000000000000001B +S3154001CED0000000000000000000000000000000000B +S3154001CEE000000000000000000000000000000000FB +S3154001CEF000000000000000000000000000000000EB +S3154001CF0000000000000000000000000000000000DA +S3154001CF1000000000000000000000000000000000CA +S3154001CF2000000000000000000000000000000000BA +S3154001CF3000000000000000000000000000000000AA +S3154001CF40000000000000000000000000000000009A +S3154001CF50000000000000000000000000000000008A +S3154001CF60000000000000000000000000000000007A +S3154001CF70000000000000000000000000000000006A +S3154001CF80000000000000000000000000000000005A +S3154001CF90000000000000000000000000000000004A +S3154001CFA0000000000000000000000000000000003A +S3154001CFB0000000000000000000000000000000002A +S3154001CFC0000000000000000000000000000000001A +S3154001CFD0000000000000000000000000000000000A +S3154001CFE000000000000000000000000000000000FA +S3154001CFF000000000000000000000000000000000EA +S3154001D00000000000000000000000000000000000D9 +S3154001D01000000000000000000000000000000000C9 +S3154001D02000000000000000000000000000000000B9 +S3154001D03000000000000000000000000000000000A9 +S3154001D0400000000000000000000000000000000099 +S3154001D0500000000000000000000000000000000089 +S3154001D0600000000000000000000000000000000079 +S3154001D0700000000000000000000000000000000069 +S3154001D0800000000000000000000000000000000059 +S3154001D0900000000000000000000000000000000049 +S3154001D0A00000000000000000000000000000000039 +S3154001D0B00000000000000000000000000000000029 +S3154001D0C00000000000000000000000000000000019 +S3154001D0D00000000000000000000000000000000009 +S3154001D0E000000000000000000000000000000000F9 +S3154001D0F000000000000000000000000000000000E9 +S3154001D10000000000000000000000000000000000D8 +S3154001D11000000000000000000000000000000000C8 +S3154001D12000000000000000000000000000000000B8 +S3154001D13000000000000000000000000000000000A8 +S3154001D1400000000000000000000000000000000098 +S3154001D1500000000000000000000000000000000088 +S3154001D1600000000000000000000000000000000078 +S3154001D1700000000000000000000000000000000068 +S3154001D1800000000000000000000000000000000058 +S3154001D1900000000000000000000000000000000048 +S3154001D1A00000000000000000000000000000000038 +S3154001D1B00000000000000000000000000000000028 +S3154001D1C00000000000000000000000000000000018 +S3154001D1D00000000000000000000000000000000008 +S3154001D1E000000000000000000000000000000000F8 +S3154001D1F000000000000000000000000000000000E8 +S3154001D20000000000000000000000000000000000D7 +S3154001D21000000000000000000000000000000000C7 +S3154001D22000000000000000000000000000000000B7 +S3154001D23000000000000000000000000000000000A7 +S3154001D2400000000000000000000000000000000097 +S3154001D2500000000000000000000000000000000087 +S3154001D2600000000000000000000000000000000077 +S3154001D2700000000000000000000000000000000067 +S3154001D2800000000000000000000000000000000057 +S3154001D2900000000000000000000000000000000047 +S3154001D2A00000000000000000000000000000000037 +S3154001D2B00000000000000000000000000000000027 +S3154001D2C00000000000000000000000000000000017 +S3154001D2D00000000000000000000000000000000007 +S3154001D2E000000000000000000000000000000000F7 +S3154001D2F000000000000000000000000000000000E7 +S3154001D30000000000000000000000000000000000D6 +S3154001D31000000000000000000000000000000000C6 +S3154001D32000000000000000000000000000000000B6 +S3154001D33000000000000000000000000000000000A6 +S3154001D3400000000000000000000000000000000096 +S3154001D3500000000000000000000000000000000086 +S3154001D3600000000000000000000000000000000076 +S3154001D3700000000000000000000000000000000066 +S3154001D3800000000000000000000000000000000056 +S3154001D3900000000000000000000000000000000046 +S3154001D3A00000000000000000000000000000000036 +S3154001D3B00000000000000000000000000000000026 +S3154001D3C00000000000000000000000000000000016 +S3154001D3D00000000000000000000000000000000006 +S3154001D3E000000000000000000000000000000000F6 +S3154001D3F000000000000000000000000000000000E6 +S3154001D40000000000000000000000000000000000D5 +S3154001D41000000000000000000000000000000000C5 +S3154001D42000000000000000000000000000000000B5 +S3154001D43000000000000000000000000000000000A5 +S3154001D4400000000000000000000000000000000095 +S3154001D4500000000000000000000000000000000085 +S3154001D4600000000000000000000000000000000075 +S3154001D4700000000000000000000000000000000065 +S3154001D4800000000000000000000000000000000055 +S3154001D4900000000000000000000000000000000045 +S3154001D4A00000000000000000000000000000000035 +S3154001D4B00000000000000000000000000000000025 +S3154001D4C00000000000000000000000000000000015 +S3154001D4D00000000000000000000000000000000005 +S3154001D4E000000000000000000000000000000000F5 +S3154001D4F000000000000000000000000000000000E5 +S3154001D50000000000000000000000000000000000D4 +S3154001D51000000000000000000000000000000000C4 +S3154001D52000000000000000000000000000000000B4 +S3154001D53000000000000000000000000000000000A4 +S3154001D5400000000000000000000000000000000094 +S3154001D5500000000000000000000000000000000084 +S3154001D5600000000000000000000000000000000074 +S3154001D5700000000000000000000000000000000064 +S3154001D5800000000000000000000000000000000054 +S3154001D5900000000000000000000000000000000044 +S3154001D5A00000000000000000000000000000000034 +S3154001D5B00000000000000000000000000000000024 +S3154001D5C00000000000000000000000000000000014 +S3154001D5D00000000000000000000000000000000004 +S3154001D5E000000000000000000000000000000000F4 +S3154001D5F000000000000000000000000000000000E4 +S3154001D60000000000000000000000000000000000D3 +S3154001D61000000000000000000000000000000000C3 +S3154001D62000000000000000000000000000000000B3 +S3154001D63000000000000000000000000000000000A3 +S3154001D6400000000000000000000000000000000093 +S3154001D6500000000000000000000000000000000083 +S3154001D6600000000000000000000000000000000073 +S3154001D6700000000000000000000000000000000063 +S3154001D6800000000000000000000000000000000053 +S3154001D6900000000000000000000000000000000043 +S3154001D6A00000000000000000000000000000000033 +S3154001D6B00000000000000000000000000000000023 +S3154001D6C00000000000000000000000000000000013 +S3154001D6D00000000000000000000000000000000003 +S3154001D6E000000000000000000000000000000000F3 +S3154001D6F000000000000000000000000000000000E3 +S3154001D70000000000000000000000000000000000D2 +S3154001D71000000000000000000000000000000000C2 +S3154001D72000000000000000000000000000000000B2 +S3154001D73000000000000000000000000000000000A2 +S3154001D7400000000000000000000000000000000092 +S3154001D7500000000000000000000000000000000082 +S3154001D7600000000000000000000000000000000072 +S3154001D7700000000000000000000000000000000062 +S3154001D7800000000000000000000000000000000052 +S3154001D7900000000000000000000000000000000042 +S3154001D7A00000000000000000000000000000000032 +S3154001D7B00000000000000000000000000000000022 +S3154001D7C00000000000000000000000000000000012 +S3154001D7D00000000000000000000000000000000002 +S3154001D7E000000000000000000000000000000000F2 +S3154001D7F000000000000000000000000000000000E2 +S3154001D80000000000000000000000000000000000D1 +S3154001D81000000000000000000000000000000000C1 +S3154001D82000000000000000000000000000000000B1 +S3154001D83000000000000000000000000000000000A1 +S3154001D8400000000000000000000000000000000091 +S3154001D8500000000000000000000000000000000081 +S3154001D8600000000000000000000000000000000071 +S3154001D8700000000000000000000000000000000061 +S3154001D8800000000000000000000000000000000051 +S3154001D8900000000000000000000000000000000041 +S3154001D8A00000000000000000000000000000000031 +S3154001D8B00000000000000000000000000000000021 +S3154001D8C00000000000000000000000000000000011 +S3154001D8D00000000000000000000000000000000001 +S3154001D8E000000000000000000000000000000000F1 +S3154001D8F000000000000000000000000000000000E1 +S3154001D90000000000000000000000000000000000D0 +S3154001D91000000000000000000000000000000000C0 +S3154001D92000000000000000000000000000000000B0 +S3154001D93000000000000000000000000000000000A0 +S3154001D9400000000000000000000000000000000090 +S3154001D9500000000000000000000000000000000080 +S3154001D9600000000000000000000000000000000070 +S3154001D9700000000000000000000000000000000060 +S3154001D9800000000000000000000000000000000050 +S3154001D9900000000000000000000000000000000040 +S3154001D9A00000000000000000000000000000000030 +S3154001D9B00000000000000000000000000000000020 +S3154001D9C00000000000000000000000000000000010 +S3154001D9D00000000000000000000000000000000000 +S3154001D9E000000000000000000000000000000000F0 +S3154001D9F000000000000000000000000000000000E0 +S3154001DA0000000000000000000000000000000000CF +S3154001DA1000000000000000000000000000000000BF +S3154001DA2000000000000000000000000000000000AF +S3154001DA30000000000000000000000000000000009F +S3154001DA40000000000000000000000000000000008F +S3154001DA50000000000000000000000000000000007F +S3154001DA60000000000000000000000000000000006F +S3154001DA70000000000000000000000000000000005F +S3154001DA80000000000000000000000000000000004F +S3154001DA90000000000000000000000000000000003F +S3154001DAA0000000000000000000000000000000002F +S3154001DAB0000000000000000000000000000000001F +S3154001DAC0000000000000000000000000000000000F +S3154001DAD000000000000000000000000000000000FF +S3154001DAE000000000000000000000000000000000EF +S3154001DAF000000000000000000000000000000000DF +S3154001DB0000000000000000000000000000000000CE +S3154001DB1000000000000000000000000000000000BE +S3154001DB2000000000000000000000000000000000AE +S3154001DB30000000000000000000000000000000009E +S3154001DB40000000000000000000000000000000008E +S3154001DB50000000000000000000000000000000007E +S3154001DB60000000000000000000000000000000006E +S3154001DB70000000000000000000000000000000005E +S3154001DB80000000000000000000000000000000004E +S3154001DB90000000000000000000000000000000003E +S3154001DBA0000000000000000000000000000000002E +S3154001DBB0000000000000000000000000000000001E +S3154001DBC0000000000000000000000000000000000E +S3154001DBD000000000000000000000000000000000FE +S3154001DBE000000000000000000000000000000000EE +S3154001DBF000000000000000000000000000000000DE +S3154001DC0000000000000000000000000000000000CD +S3154001DC1000000000000000000000000000000000BD +S3154001DC2000000000000000000000000000000000AD +S3154001DC30000000000000000000000000000000009D +S3154001DC40000000000000000000000000000000008D +S3154001DC50000000000000000000000000000000007D +S3154001DC60000000000000000000000000000000006D +S3154001DC70000000000000000000000000000000005D +S3154001DC80000000000000000000000000000000004D +S3154001DC90000000000000000000000000000000003D +S3154001DCA0000000000000000000000000000000002D +S3154001DCB0000000000000000000000000000000001D +S3154001DCC0000000000000000000000000000000000D +S3154001DCD000000000000000000000000000000000FD +S3154001DCE000000000000000000000000000000000ED +S3154001DCF000000000000000000000000000000000DD +S3154001DD0000000000000000000000000000000000CC +S3154001DD1000000000000000000000000000000000BC +S3154001DD2000000000000000000000000000000000AC +S3154001DD30000000000000000000000000000000009C +S3154001DD40000000000000000000000000000000008C +S3154001DD50000000000000000000000000000000007C +S3154001DD60000000000000000000000000000000006C +S3154001DD70000000000000000000000000000000005C +S3154001DD80000000000000000000000000000000004C +S3154001DD90000000000000000000000000000000003C +S3154001DDA0000000000000000000000000000000002C +S3154001DDB0000000000000000000000000000000001C +S3154001DDC0000000000000000000000000000000000C +S3154001DDD000000000000000000000000000000000FC +S3154001DDE000000000000000000000000000000000EC +S3154001DDF000000000000000000000000000000000DC +S3154001DE0000000000000000000000000000000000CB +S3154001DE1000000000000000000000000000000000BB +S3154001DE2000000000000000000000000000000000AB +S3154001DE30000000000000000000000000000000009B +S3154001DE40000000000000000000000000000000008B +S3154001DE50000000000000000000000000000000007B +S3154001DE60000000000000000000000000000000006B +S3154001DE70000000000000000000000000000000005B +S3154001DE80000000000000000000000000000000004B +S3154001DE90000000000000000000000000000000003B +S3154001DEA0000000000000000000000000000000002B +S3154001DEB0000000000000000000000000000000001B +S3154001DEC0000000000000000000000000000000000B +S3154001DED000000000000000000000000000000000FB +S3154001DEE000000000000000000000000000000000EB +S3154001DEF000000000000000000000000000000000DB +S3154001DF0000000000000000000000000000000000CA +S3154001DF1000000000000000000000000000000000BA +S3154001DF2000000000000000000000000000000000AA +S3154001DF30000000000000000000000000000000009A +S3154001DF40000000000000000000000000000000008A +S3154001DF50000000000000000000000000000000007A +S3154001DF60000000000000000000000000000000006A +S3154001DF70000000000000000000000000000000005A +S3154001DF80000000000000000000000000000000004A +S3154001DF90000000000000000000000000000000003A +S3154001DFA0000000000000000000000000000000002A +S3154001DFB0000000000000000000000000000000001A +S3154001DFC0000000000000000000000000000000000A +S3154001DFD000000000000000000000000000000000FA +S3154001DFE000000000000000000000000000000000EA +S3154001DFF000000000000000000000000000000000DA +S3154001E00000000000000000000000000000000000C9 +S3154001E01000000000000000000000000000000000B9 +S3154001E02000000000000000000000000000000000A9 +S3154001E0300000000000000000000000000000000099 +S3154001E0400000000000000000000000000000000089 +S3154001E0500000000000000000000000000000000079 +S3154001E0600000000000000000000000000000000069 +S3154001E0700000000000000000000000000000000059 +S3154001E0800000000000000000000000000000000049 +S3154001E0900000000000000000000000000000000039 +S3154001E0A00000000000000000000000000000000029 +S3154001E0B00000000000000000000000000000000019 +S3154001E0C00000000000000000000000000000000009 +S3154001E0D000000000000000000000000000000000F9 +S3154001E0E000000000000000000000000000000000E9 +S3154001E0F000000000000000000000000000000000D9 +S3154001E10000000000000000000000000000000000C8 +S3154001E11000000000000000000000000000000000B8 +S3154001E12000000000000000000000000000000000A8 +S3154001E1300000000000000000000000000000000098 +S3154001E1400000000000000000000000000000000088 +S3154001E1500000000000000000000000000000000078 +S3154001E1600000000000000000000000000000000068 +S3154001E1700000000000000000000000000000000058 +S3154001E1800000000000000000000000000000000048 +S3154001E1900000000000000000000000000000000038 +S3154001E1A00000000000000000000000000000000028 +S3154001E1B00000000000000000000000000000000018 +S3154001E1C00000000000000000000000000000000008 +S3154001E1D000000000000000000000000000000000F8 +S3154001E1E000000000000000000000000000000000E8 +S3154001E1F000000000000000000000000000000000D8 +S3154001E20000000000000000000000000000000000C7 +S3154001E21000000000000000000000000000000000B7 +S3154001E22000000000000000000000000000000000A7 +S3154001E2300000000000000000000000000000000097 +S3154001E2400000000000000000000000000000000087 +S3154001E2500000000000000000000000000000000077 +S3154001E2600000000000000000000000000000000067 +S3154001E2700000000000000000000000000000000057 +S3154001E2800000000000000000000000000000000047 +S3154001E2900000000000000000000000000000000037 +S3154001E2A00000000000000000000000000000000027 +S3154001E2B00000000000000000000000000000000017 +S3154001E2C00000000000000000000000000000000007 +S3154001E2D000000000000000000000000000000000F7 +S3154001E2E000000000000000000000000000000000E7 +S3154001E2F000000000000000000000000000000000D7 +S3154001E30000000000000000000000000000000000C6 +S3154001E31000000000000000000000000000000000B6 +S3154001E32000000000000000000000000000000000A6 +S3154001E3300000000000000000000000000000000096 +S3154001E3400000000000000000000000000000000086 +S3154001E3500000000000000000000000000000000076 +S3154001E3600000000000000000000000000000000066 +S3154001E3700000000000000000000000000000000056 +S3154001E3800000000000000000000000000000000046 +S3154001E3900000000000000000000000000000000036 +S3154001E3A00000000000000000000000000000000026 +S3154001E3B00000000000000000000000000000000016 +S3154001E3C00000000000000000000000000000000006 +S3154001E3D000000000000000000000000000000000F6 +S3154001E3E000000000000000000000000000000000E6 +S3154001E3F000000000000000000000000000000000D6 +S3154001E40000000000000000000000000000000000C5 +S3154001E41000000000000000000000000000000000B5 +S3154001E42000000000000000000000000000000000A5 +S3154001E4300000000000000000000000000000000095 +S3154001E4400000000000000000000000000000000085 +S3154001E4500000000000000000000000000000000075 +S3154001E4600000000000000000000000000000000065 +S3154001E4700000000000000000000000000000000055 +S3154001E4800000000000000000000000000000000045 +S3154001E4900000000000000000000000000000000035 +S3154001E4A00000000000000000000000000000000025 +S3154001E4B00000000000000000000000000000000015 +S3154001E4C00000000000000000000000000000000005 +S3154001E4D000000000000000000000000000000000F5 +S3154001E4E000000000000000000000000000000000E5 +S3154001E4F000000000000000000000000000000000D5 +S3154001E50000000000000000000000000000000000C4 +S3154001E51000000000000000000000000000000000B4 +S3154001E52000000000000000000000000000000000A4 +S3154001E5300000000000000000000000000000000094 +S3154001E5400000000000000000000000000000000084 +S3154001E5500000000000000000000000000000000074 +S3154001E5600000000000000000000000000000000064 +S3154001E5700000000000000000000000000000000054 +S3154001E5800000000000000000000000000000000044 +S3154001E5900000000000000000000000000000000034 +S3154001E5A00000000000000000000000000000000024 +S3154001E5B00000000000000000000000000000000014 +S3154001E5C00000000000000000000000000000000004 +S3154001E5D000000000000000000000000000000000F4 +S3154001E5E000000000000000000000000000000000E4 +S3154001E5F000000000000000000000000000000000D4 +S3154001E60000000000000000000000000000000000C3 +S3154001E61000000000000000000000000000000000B3 +S3154001E62000000000000000000000000000000000A3 +S3154001E6300000000000000000000000000000000093 +S3154001E6400000000000000000000000000000000083 +S3154001E6500000000000000000000000000000000073 +S3154001E6600000000000000000000000000000000063 +S3154001E6700000000000000000000000000000000053 +S3154001E6800000000000000000000000000000000043 +S3154001E6900000000000000000000000000000000033 +S3154001E6A00000000000000000000000000000000023 +S3154001E6B00000000000000000000000000000000013 +S3154001E6C00000000000000000000000000000000003 +S3154001E6D000000000000000000000000000000000F3 +S3154001E6E000000000000000000000000000000000E3 +S3154001E6F000000000000000000000000000000000D3 +S3154001E70000000000000000000000000000000000C2 +S3154001E71000000000000000000000000000000000B2 +S3154001E72000000000000000000000000000000000A2 +S3154001E7300000000000000000000000000000000092 +S3154001E7400000000000000000000000000000000082 +S3154001E7500000000000000000000000000000000072 +S3154001E7600000000000000000000000000000000062 +S3154001E7700000000000000000000000000000000052 +S3154001E7800000000000000000000000000000000042 +S3154001E7900000000000000000000000000000000032 +S3154001E7A00000000000000000000000000000000022 +S3154001E7B00000000000000000000000000000000012 +S3154001E7C00000000000000000000000000000000002 +S3154001E7D000000000000000000000000000000000F2 +S3154001E7E000000000000000000000000000000000E2 +S3154001E7F000000000000000000000000000000000D2 +S3154001E80000000000000000000000000000000000C1 +S3154001E81000000000000000000000000000000000B1 +S3154001E82000000000000000000000000000000000A1 +S3154001E8300000000000000000000000000000000091 +S3154001E8400000000000000000000000000000000081 +S3154001E8500000000000000000000000000000000071 +S3154001E8600000000000000000000000000000000061 +S3154001E8700000000000000000000000000000000051 +S3154001E8800000000000000000000000000000000041 +S3154001E8900000000000000000000000000000000031 +S3154001E8A00000000000000000000000000000000021 +S3154001E8B00000000000000000000000000000000011 +S3154001E8C00000000000000000000000000000000001 +S3154001E8D000000000000000000000000000000000F1 +S3154001E8E000000000000000000000000000000000E1 +S3154001E8F000000000000000000000000000000000D1 +S3154001E90000000000000000000000000000000000C0 +S3154001E91000000000000000000000000000000000B0 +S3154001E92000000000000000000000000000000000A0 +S3154001E9300000000000000000000000000000000090 +S3154001E9400000000000000000000000000000000080 +S3154001E9500000000000000000000000000000000070 +S3154001E9600000000000000000000000000000000060 +S3154001E9700000000000000000000000000000000050 +S3154001E9800000000000000000000000000000000040 +S3154001E9900000000000000000000000000000000030 +S3154001E9A00000000000000000000000000000000020 +S3154001E9B00000000000000000000000000000000010 +S3154001E9C00000000000000000000000000000000000 +S3154001E9D000000000000000000000000000000000F0 +S3154001E9E000000000000000000000000000000000E0 +S3154001E9F000000000000000000000000000000000D0 +S3154001EA0000000000000000000000000000000000BF +S3154001EA1000000000000000000000000000000000AF +S3154001EA20000000000000000000000000000000009F +S3154001EA30000000000000000000000000000000008F +S3154001EA40000000000000000000000000000000007F +S3154001EA50000000000000000000000000000000006F +S3154001EA60000000000000000000000000000000005F +S3154001EA70000000000000000000000000000000004F +S3154001EA80000000000000000000000000000000003F +S3154001EA90000000000000000000000000000000002F +S3154001EAA0000000000000000000000000000000001F +S3154001EAB0000000000000000000000000000000000F +S3154001EAC000000000000000000000000000000000FF +S3154001EAD000000000000000000000000000000000EF +S3154001EAE000000000000000000000000000000000DF +S3154001EAF000000000000000000000000000000000CF +S3154001EB0000000000000000000000000000000000BE +S3154001EB1000000000000000000000000000000000AE +S3154001EB20000000000000000000000000000000009E +S3154001EB30000000000000000000000000000000008E +S3154001EB40000000000000000000000000000000007E +S3154001EB50000000000000000000000000000000006E +S3154001EB60000000000000000000000000000000005E +S3154001EB70000000000000000000000000000000004E +S3154001EB80000000000000000000000000000000003E +S3154001EB90000000000000000000000000000000002E +S3154001EBA0000000000000000000000000000000001E +S3154001EBB0000000000000000000000000000000000E +S3154001EBC000000000000000000000000000000000FE +S3154001EBD000000000000000000000000000000000EE +S3154001EBE000000000000000000000000000000000DE +S3154001EBF000000000000000000000000000000000CE +S3154001EC0000000000000000000000000000000000BD +S3154001EC1000000000000000000000000000000000AD +S3154001EC20000000000000000000000000000000009D +S3154001EC30000000000000000000000000000000008D +S3154001EC40000000000000000000000000000000007D +S3154001EC50000000000000000000000000000000006D +S3154001EC60000000000000000000000000000000005D +S3154001EC70000000000000000000000000000000004D +S3154001EC80000000000000000000000000000000003D +S3154001EC90000000000000000000000000000000002D +S3154001ECA0000000000000000000000000000000001D +S3154001ECB0000000000000000000000000000000000D +S3154001ECC000000000000000000000000000000000FD +S3154001ECD000000000000000000000000000000000ED +S3154001ECE000000000000000000000000000000000DD +S3154001ECF000000000000000000000000000000000CD +S3154001ED0000000000000000000000000000000000BC +S3154001ED1000000000000000000000000000000000AC +S3154001ED20000000000000000000000000000000009C +S3154001ED30000000000000000000000000000000008C +S3154001ED40000000000000000000000000000000007C +S3154001ED50000000000000000000000000000000006C +S3154001ED60000000000000000000000000000000005C +S3154001ED70000000000000000000000000000000004C +S3154001ED80000000000000000000000000000000003C +S3154001ED90000000000000000000000000000000002C +S3154001EDA0000000000000000000000000000000001C +S3154001EDB0000000000000000000000000000000000C +S3154001EDC000000000000000000000000000000000FC +S3154001EDD000000000000000000000000000000000EC +S3154001EDE000000000000000000000000000000000DC +S3154001EDF000000000000000000000000000000000CC +S3154001EE0000000000000000000000000000000000BB +S3154001EE1000000000000000000000000000000000AB +S3154001EE20000000000000000000000000000000009B +S3154001EE30000000000000000000000000000000008B +S3154001EE40000000000000000000000000000000007B +S3154001EE50000000000000000000000000000000006B +S3154001EE60000000000000000000000000000000005B +S3154001EE70000000000000000000000000000000004B +S3154001EE80000000000000000000000000000000003B +S3154001EE90000000000000000000000000000000002B +S3154001EEA0000000000000000000000000000000001B +S3154001EEB0000000000000000000000000000000000B +S3154001EEC000000000000000000000000000000000FB +S3154001EED000000000000000000000000000000000EB +S3154001EEE000000000000000000000000000000000DB +S3154001EEF000000000000000000000000000000000CB +S3154001EF0000000000000000000000000000000000BA +S3154001EF1000000000000000000000000000000000AA +S3154001EF20000000000000000000000000000000009A +S3154001EF30000000000000000000000000000000008A +S3154001EF40000000000000000000000000000000007A +S3154001EF50000000000000000000000000000000006A +S3154001EF60000000000000000000000000000000005A +S3154001EF70000000000000000000000000000000004A +S3154001EF80000000000000000000000000000000003A +S3154001EF90000000000000000000000000000000002A +S3154001EFA0000000000000000000000000000000001A +S3154001EFB0000000000000000000000000000000000A +S3154001EFC000000000000000000000000000000000FA +S3154001EFD000000000000000000000000000000000EA +S3154001EFE000000000000000000000000000000000DA +S3154001EFF000000000000000000000000000000000CA +S3154001F00000000000000000000000000000000000B9 +S3154001F01000000000000000000000000000000000A9 +S3154001F0200000000000000000000000000000000099 +S3154001F0300000000000000000000000000000000089 +S3154001F0400000000000000000000000000000000079 +S3154001F0500000000000000000000000000000000069 +S3154001F0600000000000000000000000000000000059 +S3154001F0700000000000000000000000000000000049 +S3154001F0800000000000000000000000000000000039 +S3154001F0900000000000000000000000000000000029 +S3154001F0A00000000000000000000000000000000019 +S3154001F0B00000000000000000000000000000000009 +S3154001F0C000000000000000000000000000000000F9 +S3154001F0D000000000000000000000000000000000E9 +S3154001F0E000000000000000000000000000000000D9 +S3154001F0F000000000000000000000000000000000C9 +S3154001F10000000000000000000000000000000000B8 +S3154001F11000000000000000000000000000000000A8 +S3154001F1200000000000000000000000000000000098 +S3154001F1300000000000000000000000000000000088 +S3154001F1400000000000000000000000000000000078 +S3154001F1500000000000000000000000000000000068 +S3154001F1600000000000000000000000000000000058 +S3154001F1700000000000000000000000000000000048 +S3154001F1800000000000000000000000000000000038 +S3154001F1900000000000000000000000000000000028 +S3154001F1A00000000000000000000000000000000018 +S3154001F1B00000000000000000000000000000000008 +S3154001F1C000000000000000000000000000000000F8 +S3154001F1D000000000000000000000000000000000E8 +S3154001F1E000000000000000000000000000000000D8 +S3154001F1F000000000000000000000000000000000C8 +S3154001F20000000000000000000000000000000000B7 +S3154001F21000000000000000000000000000000000A7 +S3154001F2200000000000000000000000000000000097 +S3154001F2300000000000000000000000000000000087 +S3154001F2400000000000000000000000000000000077 +S3154001F2500000000000000000000000000000000067 +S3154001F2600000000000000000000000000000000057 +S3154001F2700000000000000000000000000000000047 +S3154001F2800000000000000000000000000000000037 +S3154001F2900000000000000000000000000000000027 +S3154001F2A00000000000000000000000000000000017 +S3154001F2B00000000000000000000000000000000007 +S3154001F2C000000000000000000000000000000000F7 +S3154001F2D000000000000000000000000000000000E7 +S3154001F2E000000000000000000000000000000000D7 +S3154001F2F000000000000000000000000000000000C7 +S3154001F30000000000000000000000000000000000B6 +S3154001F31000000000000000000000000000000000A6 +S3154001F3200000000000000000000000000000000096 +S3154001F3300000000000000000000000000000000086 +S3154001F3400000000000000000000000000000000076 +S3154001F3500000000000000000000000000000000066 +S3154001F3600000000000000000000000000000000056 +S3154001F3700000000000000000000000000000000046 +S3154001F3800000000000000000000000000000000036 +S3154001F3900000000000000000000000000000000026 +S3154001F3A00000000000000000000000000000000016 +S3154001F3B00000000000000000000000000000000006 +S3154001F3C000000000000000000000000000000000F6 +S3154001F3D000000000000000000000000000000000E6 +S3154001F3E000000000000000000000000000000000D6 +S3154001F3F000000000000000000000000000000000C6 +S3154001F40000000000000000000000000000000000B5 +S3154001F41000000000000000000000000000000000A5 +S3154001F4200000000000000000000000000000000095 +S3154001F4300000000000000000000000000000000085 +S3154001F4400000000000000000000000000000000075 +S3154001F4500000000000000000000000000000000065 +S3154001F4600000000000000000000000000000000055 +S3154001F4700000000000000000000000000000000045 +S3154001F4800000000000000000000000000000000035 +S3154001F4900000000000000000000000000000000025 +S3154001F4A00000000000000000000000000000000015 +S3154001F4B00000000000000000000000000000000005 +S3154001F4C000000000000000000000000000000000F5 +S3154001F4D000000000000000000000000000000000E5 +S3154001F4E000000000000000000000000000000000D5 +S3154001F4F000000000000000000000000000000000C5 +S3154001F50000000000000000000000000000000000B4 +S3154001F51000000000000000000000000000000000A4 +S3154001F5200000000000000000000000000000000094 +S3154001F5300000000000000000000000000000000084 +S3154001F5400000000000000000000000000000000074 +S3154001F5500000000000000000000000000000000064 +S3154001F5600000000000000000000000000000000054 +S3154001F5700000000000000000000000000000000044 +S3154001F5800000000000000000000000000000000034 +S3154001F5900000000000000000000000000000000024 +S3154001F5A00000000000000000000000000000000014 +S3154001F5B00000000000000000000000000000000004 +S3154001F5C000000000000000000000000000000000F4 +S3154001F5D000000000000000000000000000000000E4 +S3154001F5E000000000000000000000000000000000D4 +S3154001F5F000000000000000000000000000000000C4 +S3154001F60000000000000000000000000000000000B3 +S3154001F61000000000000000000000000000000000A3 +S3154001F6200000000000000000000000000000000093 +S3154001F6300000000000000000000000000000000083 +S3154001F6400000000000000000000000000000000073 +S3154001F6500000000000000000000000000000000063 +S3154001F6600000000000000000000000000000000053 +S3154001F6700000000000000000000000000000000043 +S3154001F6800000000000000000000000000000000033 +S3154001F6900000000000000000000000000000000023 +S3154001F6A00000000000000000000000000000000013 +S3154001F6B00000000000000000000000000000000003 +S3154001F6C000000000000000000000000000000000F3 +S3154001F6D000000000000000000000000000000000E3 +S3154001F6E000000000000000000000000000000000D3 +S3154001F6F000000000000000000000000000000000C3 +S3154001F70000000000000000000000000000000000B2 +S3154001F71000000000000000000000000000000000A2 +S3154001F7200000000000000000000000000000000092 +S3154001F7300000000000000000000000000000000082 +S3154001F7400000000000000000000000000000000072 +S3154001F7500000000000000000000000000000000062 +S3154001F7600000000000000000000000000000000052 +S3154001F7700000000000000000000000000000000042 +S3154001F7800000000000000000000000000000000032 +S3154001F7900000000000000000000000000000000022 +S3154001F7A00000000000000000000000000000000012 +S3154001F7B00000000000000000000000000000000002 +S3154001F7C000000000000000000000000000000000F2 +S3154001F7D000000000000000000000000000000000E2 +S3154001F7E000000000000000000000000000000000D2 +S3154001F7F000000000000000000000000000000000C2 +S3154001F80000000000000000000000000000000000B1 +S3154001F81000000000000000000000000000000000A1 +S3154001F8200000000000000000000000000000000091 +S3154001F8300000000000000000000000000000000081 +S3154001F8400000000000000000000000000000000071 +S3154001F8500000000000000000000000000000000061 +S3154001F8600000000000000000000000000000000051 +S3154001F8700000000000000000000000000000000041 +S3154001F8800000000000000000000000000000000031 +S3154001F8900000000000000000000000000000000021 +S3154001F8A00000000000000000000000000000000011 +S3154001F8B00000000000000000000000000000000001 +S3154001F8C000000000000000000000000000000000F1 +S3154001F8D000000000000000000000000000000000E1 +S3154001F8E000000000000000000000000000000000D1 +S3154001F8F000000000000000000000000000000000C1 +S3154001F90000000000000000000000000000000000B0 +S3154001F91000000000000000000000000000000000A0 +S3154001F9200000000000000000000000000000000090 +S3154001F9300000000000000000000000000000000080 +S3154001F9400000000000000000000000000000000070 +S3154001F9500000000000000000000000000000000060 +S3154001F9600000000000000000000000000000000050 +S3154001F9700000000000000000000000000000000040 +S3154001F9800000000000000000000000000000000030 +S3154001F9900000000000000000000000000000000020 +S3154001F9A00000000000000000000000000000000010 +S3154001F9B00000000000000000000000000000000000 +S3154001F9C000000000000000000000000000000000F0 +S3154001F9D000000000000000000000000000000000E0 +S3154001F9E000000000000000000000000000000000D0 +S3154001F9F000000000000000000000000000000000C0 +S3154001FA0000000000000000000000000000000000AF +S3154001FA10000000000000000000000000000000009F +S3154001FA20000000000000000000000000000000008F +S3154001FA30000000000000000000000000000000007F +S3154001FA40000000000000000000000000000000006F +S3154001FA50000000000000000000000000000000005F +S3154001FA60000000000000000000000000000000004F +S3154001FA70000000000000000000000000000000003F +S3154001FA80000000000000000000000000000000002F +S3154001FA90000000000000000000000000000000001F +S3154001FAA0000000000000000000000000000000000F +S3154001FAB000000000000000000000000000000000FF +S3154001FAC000000000000000000000000000000000EF +S3154001FAD000000000000000000000000000000000DF +S3154001FAE000000000000000000000000000000000CF +S3154001FAF000000000000000000000000000000000BF +S3154001FB0000000000000000000000000000000000AE +S3154001FB10000000000000000000000000000000009E +S3154001FB20000000000000000000000000000000008E +S3154001FB30000000000000000000000000000000007E +S3154001FB40000000000000000000000000000000006E +S3154001FB50000000000000000000000000000000005E +S3154001FB60000000000000000000000000000000004E +S3154001FB70000000000000000000000000000000003E +S3154001FB80000000000000000000000000000000002E +S3154001FB90000000000000000000000000000000001E +S3154001FBA0000000000000000000000000000000000E +S3154001FBB000000000000000000000000000000000FE +S3154001FBC000000000000000000000000000000000EE +S3154001FBD000000000000000000000000000000000DE +S3154001FBE000000000000000000000000000000000CE +S3154001FBF000000000000000000000000000000000BE +S3154001FC0000000000000000000000000000000000AD +S3154001FC10000000000000000000000000000000009D +S3154001FC20000000000000000000000000000000008D +S3154001FC30000000000000000000000000000000007D +S3154001FC40000000000000000000000000000000006D +S3154001FC50000000000000000000000000000000005D +S3154001FC60000000000000000000000000000000004D +S3154001FC70000000000000000000000000000000003D +S3154001FC80000000000000000000000000000000002D +S3154001FC90000000000000000000000000000000001D +S3154001FCA0000000000000000000000000000000000D +S3154001FCB000000000000000000000000000000000FD +S3154001FCC000000000000000000000000000000000ED +S3154001FCD000000000000000000000000000000000DD +S3154001FCE000000000000000000000000000000000CD +S3154001FCF000000000000000000000000000000000BD +S3154001FD0000000000000000000000000000000000AC +S3154001FD10000000000000000000000000000000009C +S3154001FD20000000000000000000000000000000008C +S3154001FD30000000000000000000000000000000007C +S3154001FD40000000000000000000000000000000006C +S3154001FD50000000000000000000000000000000005C +S3154001FD60000000000000000000000000000000004C +S3154001FD70000000000000000000000000000000003C +S3154001FD80000000000000000000000000000000002C +S3154001FD90000000000000000000000000000000001C +S3154001FDA0000000000000000000000000000000000C +S3154001FDB000000000000000000000000000000000FC +S3154001FDC000000000000000000000000000000000EC +S3154001FDD000000000000000000000000000000000DC +S3154001FDE000000000000000000000000000000000CC +S3154001FDF000000000000000000000000000000000BC +S3154001FE0000000000000000000000000000000000AB +S3154001FE10000000000000000000000000000000009B +S3154001FE20000000000000000000000000000000008B +S3154001FE30000000000000000000000000000000007B +S3154001FE40000000000000000000000000000000006B +S3154001FE50000000000000000000000000000000005B +S3154001FE60000000000000000000000000000000004B +S3154001FE70000000000000000000000000000000003B +S3154001FE80000000000000000000000000000000002B +S3154001FE90000000000000000000000000000000001B +S3154001FEA0000000000000000000000000000000000B +S3154001FEB000000000000000000000000000000000FB +S3154001FEC000000000000000000000000000000000EB +S3154001FED000000000000000000000000000000000DB +S3154001FEE000000000000000000000000000000000CB +S3154001FEF000000000000000000000000000000000BB +S3154001FF0000000000000000000000000000000000AA +S3154001FF10000000000000000000000000000000009A +S3154001FF20000000000000000000000000000000008A +S3154001FF30000000000000000000000000000000007A +S3154001FF40000000000000000000000000000000006A +S3154001FF50000000000000000000000000000000005A +S3154001FF60000000000000000000000000000000004A +S3154001FF70000000000000000000000000000000003A +S3154001FF80000000000000000000000000000000002A +S3154001FF90000000000000000000000000000000001A +S3154001FFA0000000000000000000000000000000000A +S3154001FFB000000000000000000000000000000000FA +S3154001FFC000000000000000000000000000000000EA +S3154001FFD000000000000000000000000000000000DA +S3154001FFE000000000000000000000000000000000CA +S3154001FFF000000000000000000000000000000000BA +S315400200000000000100000000000000002000000087 +S315400200100000000000000000000000000000000098 S315400200200000000000000000000000000000000088 S315400200300000000000000000000000000000000078 S315400200400000000000000000000000000000000068 -S315400200500000000000000000000000010000000057 +S315400200500000000000000001000000000000000057 S315400200600000000000000000000000000000000048 S315400200700000000000000000000000000000000038 S315400200800000000000000000000000000000000028 -S315400200900000000000000000000000000000000117 +S315400200900000000000000000000000010000000017 S315400200A00000000000000000000000000000000008 S315400200B000000000000000000000000000000000F8 S315400200C000000000000000000000000000000000E8 -S315400200D000000000000000000000000000000000D8 -S315400200E00000000100000000000000410000000086 -S315400200F0343074693934612B3079676979753035B2 -S315400201007968617035796934682B612B69697978C8 -S315400201106869346B35396A30713930356A6B6F7953 -S3154002012070686F70746A72686961346979302B34A9 -S315400201300000000000000000000000010000000076 -S3154002014040000000000000004008000000000000DF -S31540020150401800000000000080000000000000007F -S315400201600000000000000000BFF000000000000098 -S31540020170BF800000000000000000000000000000F8 -S315400201800000000000000000000000000000000027 -S315400201903FF00000000000004008000000000000A0 -S315400201A03FF0000040000000000000000000000098 -S315400201B03F800000404000000000000000000000B8 -S315400201C000000000000000000000000000000000E7 -S315400201D0000000000000000048000001000000008E -S315400201E0480000000000000046C000000000000079 -S315400201F03FF0000000000000400000000000000048 -S3154002020040080000000000003F800000000000009F -S31540020210529000000000000052900FF807F60DEBD6 -S3154002022052901FE03F61BAD052902FB8D4E30F48A4 -S3154002023052903F81F636B80C52904F3BD03C0A64FE -S3154002024052905EE68EFAD48B52906E825DA8FC2B5B -S3154002025052907E0F66AFED0752908D8DD3B1D9AADB -S3154002026052909CFDCD8ED0095290AC5F7C69A3C85A -S315400202705290BBB307ACAFDB5290CAF8960E710DE3 -S315400202805290DA304D95FB065290E95A539F492CCB -S315400202905290F876CCDF6CD952910785DD689A295F -S315400202A052911687A8AE14A35291257C5187FD0917 -S315400202B052913463FA37014E5291433EC467EFFB83 -S315400202C05291520CD1372FEB529160CE41341D746C -S315400202D052916F8334644DF952917E2BCA46BAB914 -S315400202E052918CC821D6D3E352919B58598F7C9F09 -S315400202F05291A9DC8F6DF1045291B854E0F496A064 -S315400203005291C6C16B2DB8705291D5224AAE2EE19A -S315400203105291E3779B97F4A85291F1C1799CA8FF39 -S31540020320529200000000000052920E33499A21A9CF -S3154002033052921C5B70D9F82452922A788FC76DE587 -S315400203405292388AC0059C28529246921AD4EA4959 -S315400203505292548EB9151E8552926280B347609668 -S315400203605292706821902E9A52927E451BB944C38E -S3154002037052928C17B9337834529299E01118857596 -S315400203805292A79E3A2CD2E65292B5524AE1278E13 -S315400203905292C2FC595456A75292D09C7B54E03E8C -S315400203A05292DE32C66287415292EBBF4FAFDD4B6D -S315400203B05292F9422C23C47E529306BB705AE7C32B -S315400203C05293142B30A929AB52932191811B0A4196 -S315400203D052932EEE7577041652933C42213EE0C963 -S315400203E05293498C97B10540529356CDEBC9B5E22B -S315400203F0529364063044530652937135779C8DCBA3 -S3154002040052937E5BD40F95A152938B79579D3EAB07 -S315400204105293988E1409212E5293A59A1ADBB257FB -S315400204205293B29D7D6356625293BF984CB56C7798 -S315400204305293CC8A99AF54535293D97474F76DF24E -S315400204405293E655EEFE13675293F32F17FE8D0431 -S31540020450529400000000000052940CC8B6D657C20F -S31540020460529419894C2329F052942641CF569572BB -S31540020470529432F24FB01C7A52943F9ADC3F79CE74 -S3154002048052944C3B83E57153529458D455549C1A1A -S31540020490529465655F122FF6529471EEAF76C2C6DC -S315400204A052947E7054AF098952948AEA5CBC935F37 -S315400204B05294975CD57680885294A3C7CC8A358A63 -S315400204C05294B02B4F7C0A885294BC876BA7F6ECA9 -S315400204D05294C8DC2E4239805294D529A457FCFC4A -S315400204E05294E16FDACFF9375294EDAEDE6B10FEDD -S315400204F05294F9E6BBC4ECB3529506177F5491BBAE -S3154002050052951241356CF6E052951E63EA3D95B01E -S3154002051052952A7FA9D2F8EA529536948017481006 -S31540020520529542A278D2D03652954EA99FAC8A0FA6 -S3154002053052955AAA002A9D5A529566A3A5B2E1B18E -S31540020540529572969B8B5CD852957E82ECDABE8D22 -S3154002055052958A68A4A8D9F352959647CDDF1CA531 -S315400205605295A220734903775295ADF29F948CFB24 -S315400205705295B9BE5D52A9DA5295C583B6F7AB0319 -S315400205805295D142B6DBADC55295DCFB673B05DFE2 -S315400205905295E8ADD236A58F5295F45A01D483B41A -S315400205A0529600000000000052960B9FD68A455490 -S315400205B0529617398F2AAA48529622CD337F0FE890 -S315400205C052962E5ACD0C3EBE529639E2653E421B9B -S315400205D0529645640568C1C3529650DFB6C759F470 -S315400205E052965C55827DF1D2529667C57199104BEF -S315400205F05296732F8D0E2F7752967E93DDBC0E73D5 -S31540020600529689F26C6B01D05296954B41CD4293EC -S315400206100BC0A4068F346C9B0BC093731C185447B3 -S315400206200BC083008E183C230BC072AE83A9704A5E -S315400206300BC0627C9CC166FF0BC0526A7ACE64A430 -S315400206400BC04277C0B04ADA0BC032A412B191A0B5 -S315400206500BC022EF168069500BC0135873280473DF -S315400206600BC003DFD10A08480BBFE909B3B04632D3 -S315400206700BBFCA8E711B8E880BBFAC4D32D4143061 -S315400206800BBF8E4553D34B1B0BBF7076318237EF70 -S315400206900BBF52DF2BADF99C0BBF357FA47C936C0D -S315400206A00BBF18570061F5EB0BBEFB64A61545154B -S315400206B00BBEDEA7FE865A2B0BBEC22074D37FBC6E -S315400206C00BBEA5CD763F66690BBE89AE722750F04A -S315400206D00BBE6DC2D9F976230BBE520A212B976CFB -S315400206E00BBE3683BD31CAA20BBE1B2F257575CAFA -S315400206F00BBE000BD34C7BAF0BBDE51941F097FE09 -S315400207000BBDCA56EE76E9D00BBDAFC457C7AB7325 -S315400207100BBD9560FE9616690BBD7B2C65587275AE -S315400207200BBD612610404EC00BBD474D8532E409D4 -S315400207300BBD2DA24BC19EDF0BBD1423ED22D10171 -S315400207400BBCFAD1F42A88E40BBCE1ABED438E80B4 -S315400207500BBCC8B1666884820BBCAFE1EF1D2D01AC -S315400207600BBC973D1867D0EF0BBC7EC274CAC962F8 -S315400207700BBC6671983E29FE0BBC4E4A18298BA9C2 -S315400207800BBC364B8B5DF6DB0BBC1E758A0FECBF82 -S315400207900BBC06C7ADD18E7E0BBBEF41918CE1F609 -S315400207A00BBBD7E2D17E33360BBBC0AB0B2E921BB3 -S315400207B00BBBA999DD6E6B650BBB92AEE8503CA7AD -S315400207C00BBB7BE9CD2362720BBB654A2E6F002CB5 -S315400207D00BBB4ECFAFED00FE0BBB3879F685313FF2 -S315400207E00BBB2248A8486FDE0BBB0C3B6C6BF73B3E -S315400207F00BBAF651EB44BCEE0BBAE08BCE42E7F1B4 -S315400208000BBACAE8BFED5CC00BBAB5686BDD5EDDFC -S315400208100BBAA00A7EBA475E0BBA8ACEA6354FEB12 -S315400208200BBA75B4910571DB0BBA60BBEEE358EFB8 -S315400208300BBA4BE4708569410BBA372DC79BD7FE7D -S315400208400BBA2297A6CCD68C0BBA0E21C1B0CFA03A -S315400208500BB9F9CBCCCEB6050BB9E5957D98648B31 -S315400208600BB9D17E8A670EE70BB9BD86AA77C3104C -S315400208700BB9A9AD95E7FAC40BB995F305B23CE5B8 -S315400208800BB98256B3AACE570BB96ED85A7C7206AA -S315400208900BB95B77B5A537C80BB94834817359CCC8 -S315400208A00BB9350E7B02284D0BB922056037032E54 -S315400208B00BB90F18EFBE614A0BB8FC48E908E522AE -S315400208C00BB8E9950C487EA90BB8D6FD1A6D99E886 -S315400208D00BB8C480D5245A340BB8B21FFED1E1BC42 -S315400208E00BB89FDA5A91A5260BB88DAFAC32CB0A1C -S315400208F00BB87B9FB83596F60BB869AA43C8DFE1B9 -S315400209000BB857CF14C791B50BB8460DF1B639C6D9 -S315400209100BB83466A1C09DF90BB822D8ECB75E6E0F -S315400209200BB811649B0DA16B0BB8000975D6C9595A -S315400209300BB7EEC746C434A50BB7DD9DD823075285 -S315400209400BB7CC8CF4D9FE010BB7BB9468674A50FF -S315400209500BB7AAB3FEDE78540BB799EB84E65D0C6F -S315400209600BB7893AC7B70D960BB778A19517DF0132 -S315400209700BB7681FBB5D6E910BB757B50967B24C93 -S315400209800BB747614EA011A20BB737245AF786140C -S315400209900BB726FDFEE4C3A00BB716EE0B6268E862 -S315400209A00BB706F451ED36CE0BB6F710A4824F8044 -S315400209B00BB6E742D59D7CB40BB6D78AB8377D0EC7 -S315400209C00BB6C7E81FC458720BB6B85AE031BB32F1 -S315400209D00BB6A8E2CDE557F90BB6997FBDBB50459C -S315400209E00BB68A318504A35C0BB67AF7F985A39BCD -S315400209F00BB66BD2F17471FF0BB65CC243777FCEF6 -S31540020A000BB64DC5C6A416420BB63EDD527CE4116A -S31540020A100BB63008BEF090CF0BB62147E45855EBE3 -S31540020A200BB6129A9B769D520BB60400BD75A584F1 -S31540020A300BB5F57A23E62B070BB5E706A8BE172CAE -S31540020A400BB5D8A6265733FF0BB5CA58776DE54B7B -S31540020A500BB5BC1D771FE6AB0BB5ADF500EB0E78BB -S31540020A600BB59FDEF0AC15940BB591DB229D63F27C -S31540020A700BB583E97355E1C10BB57609BFC7CD32D4 -S31540020A800BB5683BE53F94B80BB55A7FC162B5B624 -S31540020A900BB54CD5322E9F7F0BB53F3C15F79AA12D -S31540020AA00BB531B44B67B45A0BB5243DB17DAE306C -S31540020AB00BB516D8278BF18F0BB509838D37876710 -S31540020AC00BB4FC3FC27713AE0BB4EF0CA791D4BB69 -S31540020AD00BB4E1EA1D1EA6680BB4D4D8040308E59C -S31540020AE00BB4C7D63D722B370BB4BAE4AAEBF9481E -S31540020AF00BB4AE032E3C2D7E0BB4A131A97965C948 -S31540020B000BB4946FFF043C1C0BB487BE118662364D -S31540020B100BB47B1BC3F1C0BF0BB46E88F97F999BA4 -S31540020B200BB4620595AFAD730BB455917C476454D3 -S31540020B300BB4492C9150F96C0BB43CD6B91AA9C8DE -S31540020B400BB4308FD835E60B0BB42457D3768716C1 -S31540020B500BB4182E8FF205900BB40C13F2FEB43B75 -S31540020B600BB40007E232FD1F0BB3F40A4364A167DC -S31540020B700BB3E81AFCA7FBF00BB3DC39F44F468AF9 -S31540020B800BB3D06710E9E1C30BB3C4A239439F4FFD -S31540020B900BB3B8EB54640EF10BB3AD42498DCDDFC6 -S31540020BA00BB3A1A7003DD89B0BB39619602ADF2B46 -S31540020BB00BB38A9951449BB80BB37F26BBB32B79AF -S31540020BC00BB373C187D669EA0BB368699E454E4437 -S31540020BD00BB35D1EE7CD4B2D0BB351E14D71B09872 -S31540020BE00BB346B0B86B0FC30BB33B8D1226A15A5B -S31540020BF00BB330764445ADAC0BB3256C389CF6EB63 -S31540020C000BB31A6ED934256E0BB30F7E104535F5EC -S31540020C100BB30499C83BE9D60BB2F9C1EBB53923FC -S31540020C200BB2EEF6657EC6AA0BB2E437209655D5D0 -S31540020C300BB2D984082942630BB2CEDD0793F9E79A -S31540020C400BB2C4420A6177190BB2B9B2FC4ABEDA98 -S31540020C500BB2AF2FC9365EFF0BB2A4B85D37EEC1F9 -S31540020C600BB29A4CA48F90E30BB28FEC8BA9777997 -S31540020C700BB28597FF1D694D0BB27B4EEBAE48DD3D -S31540020C800BB271113E499CEE0BB266DEE4071AA81E -S31540020C900BB25CB7CA2831380BB2529BDE1796F7B5 -S31540020CA00BB2488B0D68D8030BB23E8545D7E65A40 -S31540020CB00BB2348A7548AB540BB22A9A89C69A97B4 -S31540020CC00BB220B5718446610BB216DB1ADAF53FD8 -S31540020CD00BB20D0B744A39100BB203466C77876C14 -S31540020CE00BB1F98BF22DD3490BB1EFDBF45D27FF44 -S31540020CF00BB1E636621A457E0BB1DC9B2A9E3DD588 -S31540020D000BB1D30A3D4613EE0BB1C98389925B817F -S31540020D100BB1C006FF26DA3F0BB1B6948DCA2A281C -S31540020D200BB1AD2C25655D0F0BB1A3CDB603A13D2D -S31540020D300BB19A792FD1E7410BB1912E831E88D2FE -S31540020D400BB187EDA058F0D60BB17EB6781144733D -S31540020D500BB17588FAF80D3A0BB16C6519DDE45D95 -S31540020D600BB1634AC5B31EEF0BB15A39EF877B28E5 -S31540020D700BB151328889CEAE0BB148348207B5DB0E -S31540020D800BB13F3FCD6D43FF0BB136545C44B49A31 -S31540020D900BB12D7220361D870BB124990B07221BEE -S31540020DA00BB11BC90E9AA72D0BB113021CF0880F6B -S31540020DB00BB10A4428254C650BB1018F2271DEE541 -S31540020DC00BB0F8E2FE2B44F40BB0F03FADC2572312 -S31540020DD00BB0E7A523C37A850BB0DF1352D65AD997 -S31540020DE00BB0D68A2DBDA58C0BB0CE09A756C589A8 -S31540020DF00BB0C591B2999FDB0BB0BD2242985115FB -S31540020E000BB0B4BB4A7EEB870BB0AC5CBD933636B7 -S31540020E1065300000653010006530200065303000D6 -S31540020E2065304000653050006530600065307000C6 -S31540020E3065308000653090006530A0006530B000B6 -S31540020E406530C0006530D0006530E0006530F000A6 -S31540020E506531000065311000653120006531300092 -S31540020E606531400065315000653160006531700082 -S31540020E7065318000653190006531A0006531B00072 -S31540020E806531C0006531D0006531E0006531F00062 -S31540020E90653200006532100065322000653230004E -S31540020EA0653240006532500065326000653270003E -S31540020EB065328000653290006532A0006532B0002E -S31540020EC06532C0006532D0006532E0006532F0001E -S31540020ED0653300006533100065332000653330000A -S31540020EE065334000653350006533600065337000FA -S31540020EF065338000653390006533A0006533B000EA -S31540020F006533C0006533D0006533E0006533F000D9 -S31540020F1065340000653410006534200065343000C5 -S31540020F2065344000653450006534600065347000B5 -S31540020F3065348000653490006534A0006534B000A5 -S31540020F406534C0006534D0006534E0006534F00095 -S31540020F506535000065351000653520006535300081 -S31540020F606535400065355000653560006535700071 -S31540020F7065358000653590006535A0006535B00061 -S31540020F806535C0006535D0006535E0006535F00051 -S31540020F90653600006536100065362000653630003D -S31540020FA0653640006536500065366000653670002D -S31540020FB065368000653690006536A0006536B0001D -S31540020FC06536C0006536D0006536E0006536F0000D -S31540020FD065370000653710006537200065373000F9 -S31540020FE065374000653750006537600065377000E9 -S31540020FF065378000653790006537A0006537B000D9 -S315400210006537C0006537D0006537E0006537F000C8 -S3154002101065380000653810006538200065383000B4 -S3154002102065384000653850006538600065387000A4 -S3154002103065388000653890006538A0006538B00094 -S315400210406538C0006538D0006538E0006538F00084 -S315400210506539000065391000653920006539300070 -S315400210606539400065395000653960006539700060 -S3154002107065398000653990006539A0006539B00050 -S315400210806539C0006539D0006539E0006539F00040 -S31540021090653A0000653A1000653A2000653A30002C -S315400210A0653A4000653A5000653A6000653A70001C -S315400210B0653A8000653A9000653AA000653AB0000C -S315400210C0653AC000653AD000653AE000653AF000FC -S315400210D0653B0000653B1000653B2000653B3000E8 -S315400210E0653B4000653B5000653B6000653B7000D8 -S315400210F0653B8000653B9000653BA000653BB000C8 -S31540021100653BC000653BD000653BE000653BF000B7 -S31540021110653C0000653C1000653C2000653C3000A3 -S31540021120653C4000653C5000653C6000653C700093 -S31540021130653C8000653C9000653CA000653CB00083 -S31540021140653CC000653CD000653CE000653CF00073 -S31540021150653D0000653D1000653D2000653D30005F -S31540021160653D4000653D5000653D6000653D70004F -S31540021170653D8000653D9000653DA000653DB0003F -S31540021180653DC000653DD000653DE000653DF0002F -S31540021190653E0000653E1000653E2000653E30001B -S315400211A0653E4000653E5000653E6000653E70000B -S315400211B0653E8000653E9000653EA000653EB000FB -S315400211C0653EC000653ED000653EE000653EF000EB -S315400211D0653F0000653F1000653F2000653F3000D7 -S315400211E0653F4000653F5000653F6000653F7000C7 -S315400211F0653F8000653F9000653FA000653FB000B7 -S31540021200653FC000653FD000653FE000653FF000A6 -S315400212104200000000000000400FFFFFFFFFFFFFFB -S315400212204200000000200000420FFFFFFFFFFFFFC9 -S3154002123040000000000000004210000000080000CC -S3154002124042000000000000013EB000000000000124 -S315400212504200000000000002420F484C0137D2080B -S31540021260C20E780F256007AB41BA079B7AF94BA0AD -S315400212704201484C0137D208420E780F256007AB2F -S315400212804217E02D934BECDA420F484C0137D20815 -S31540021290C21E780F256007ABC20DA7D249883D4EC4 -S315400212A0421F484C0137D208C20E780F256007AB61 -S315400212B042100C446E87CE32C03340AB371208918F -S315400212C00000000000000000C03340AB3712089116 -S315400212D00000000000000000C29E7A0F236007A6AD -S315400212E0C29E7A0F236007A66F3F484C0137D20849 -S315400212F06E2E780F256007AB6F3F485B3D3F64B863 -S315400213006F3F484C0137D208EE2E780F256007AB67 -S315400213106F3F483CC5303F587FE2F780AB123809F1 -S315400213207FD00000000000007FEAF780AB12380948 -S31540021330002000000000000080280000000000009D -S3154002134080100000000000007FEFF780AB123809E2 -S315400213507FEFF2010203A1117FF0000000000000BE -S315400213600010000000001000801FFFFFF203A111D1 -S315400213708000000000000000001ABCD000023809BC -S31540021380801ABCD0000001110000000000000000DD -S315400213907E71000000000000416010000000000065 -S315400213A07FE11100000000000178100000000000FB -S315400213B03E880000FFF0000000120C00C073F800E7 -S315400213C0C1EFFFFFC00020003FB3C75D224F280F89 -S315400213D0C1B3C75CFAC08192A12FFF8000001FFFF4 -S315400213E03EE0000000FF0000A01FFF8001FE18073C -S315400213F041CFFFFE0000002040303FFFFFFFFFFDD0 -S3154002140042103FFEFC00000D3FD000003FEFFFFFC1 -S31540021410BFD0000010000000BFB000004FF0003FF8 -S3154002142001701000000000003E8000011A0000001A -S3154002143000000000000000007E7C0000000000006A -S31540021440416A1000010000107FF000000000000019 -S3154002145075012034056AC000FA1009091000104FC0 -S31540021460FFF00000000000000100203040030200AF -S31540021470003020340000A00B0000000000000000F5 -S315400214807FE0001010200001400000000010200AFA -S315400214907FF00000000000003FEFDFF00FFC484AFB -S315400214A0BFF80000000000007FFF000000000000BF -S315400214B07FFFE000000000007FF400000000000013 -S315400214C07FC00000000000007FF80000000000001E -S315400214D07FF0000000000000FFF000000000000066 -S315400214E0FFF0000000000000800000000000000045 -S315400214F000000000000100000000000000000000A3 +S315400200D000000000000000000000000000000001D7 +S315400200E00000000100000000BF8000000000000088 +S315400200F0BFF0000000000000800000000000000089 +S315400201000000000000000000400000000000000067 +S3154002011040080000000000004018000000000000F7 +S315400201200000000000000000000000000000000087 +S3154002013000000000000000003FF000000000000048 +S3154002014040080000000000003FF0000040000000B0 +S3154002015000000000000000003F8000004040000018 +S315400201600000000000000000000000000000000047 +S315400201700000000000000000000000000000000037 +S315400201804800000100000000480000000000000096 +S3154002019046C00000000000003FF0000000000000E2 +S315400201A0400000000000000040080000000000007F +S315400201B03F80000000000000000000000001000037 +S315400201C08000000000000000FFF000000000000078 +S315400201D0FFF00000000000007FF000000000000079 +S315400201E07FF80000000000007FC000000000000011 +S315400201F07FF40000000000007FFFE00000000000E6 +S315400202007FFF000000000000BFF800000000000071 +S315400202103FEFDFF00FFC484A7E710000000000000D +S3154002022041601000000000007FE111000000000064 +S3154002023001781000000000003E880000FFF0000038 +S3154002024000120C00C073F800C1EFFFFFC00020008F +S315400202503FB3C75D224F280FC1B3C75CFAC0819234 +S31540020260A12FFF8000001FFF3EE0000000FF0000BC +S31540020270A01FFF8001FE180741CFFFFE00000020AD +S3154002028040303FFFFFFFFFFD42103FFEFC00000DE6 +S315400202903FD000003FEFFFFFBFD00000100000003C +S315400202A0BFB000004FF0003F017010000000000098 +S315400202B03E8000011A00000000000000000000001D +S315400202C07E7C000000000000416A10000100001020 +S315400202D07FF000000000000075012034056AC0006E +S315400202E0FA1009091000104FFFF00000000000004C +S315400202F00100203040030200003020340000A00BF1 +S3154002030000000000000000007FE000101020000105 +S31540020310400000000010200A7FF0000000000000AC +S315400203204200000000000000400FFFFFFFFFFFFFFA +S315400203304200000000200000420FFFFFFFFFFFFFC8 +S3154002034040000000000000004210000000080000CB +S3154002035042000000000000013EB000000000000123 +S315400203604200000000000002420F484C0137D2080A +S31540020370C20E780F256007AB41BA079B7AF94BA0AC +S315400203804201484C0137D208420E780F256007AB2E +S315400203904217E02D934BECDA420F484C0137D20814 +S315400203A0C21E780F256007ABC20DA7D249883D4EC3 +S315400203B0421F484C0137D208C20E780F256007AB60 +S315400203C042100C446E87CE32C03340AB371208918E +S315400203D00000000000000000C03340AB3712089115 +S315400203E00000000000000000C29E7A0F236007A6AC +S315400203F0C29E7A0F236007A66F3F484C0137D20848 +S315400204006E2E780F256007AB6F3F485B3D3F64B861 +S315400204106F3F484C0137D208EE2E780F256007AB66 +S315400204206F3F483CC5303F587FE2F780AB123809F0 +S315400204307FD00000000000007FEAF780AB12380947 +S31540020440002000000000000080280000000000009C +S3154002045080100000000000007FEFF780AB123809E1 +S315400204607FEFF2010203A1117FF0000000000000BD +S315400204700010000000001000801FFFFFF203A111D0 +S315400204808000000000000000001ABCD000023809BB +S31540020490801ABCD0000001110000000000000000DC +S315400204A06530000065301000653020006530300050 +S315400204B06530400065305000653060006530700040 +S315400204C065308000653090006530A0006530B00030 +S315400204D06530C0006530D0006530E0006530F00020 +S315400204E0653100006531100065312000653130000C +S315400204F065314000653150006531600065317000FC +S3154002050065318000653190006531A0006531B000EB +S315400205106531C0006531D0006531E0006531F000DB +S3154002052065320000653210006532200065323000C7 +S3154002053065324000653250006532600065327000B7 +S3154002054065328000653290006532A0006532B000A7 +S315400205506532C0006532D0006532E0006532F00097 +S315400205606533000065331000653320006533300083 +S315400205706533400065335000653360006533700073 +S3154002058065338000653390006533A0006533B00063 +S315400205906533C0006533D0006533E0006533F00053 +S315400205A0653400006534100065342000653430003F +S315400205B0653440006534500065346000653470002F +S315400205C065348000653490006534A0006534B0001F +S315400205D06534C0006534D0006534E0006534F0000F +S315400205E065350000653510006535200065353000FB +S315400205F065354000653550006535600065357000EB +S3154002060065358000653590006535A0006535B000DA +S315400206106535C0006535D0006535E0006535F000CA +S3154002062065360000653610006536200065363000B6 +S3154002063065364000653650006536600065367000A6 +S3154002064065368000653690006536A0006536B00096 +S315400206506536C0006536D0006536E0006536F00086 +S315400206606537000065371000653720006537300072 +S315400206706537400065375000653760006537700062 +S3154002068065378000653790006537A0006537B00052 +S315400206906537C0006537D0006537E0006537F00042 +S315400206A0653800006538100065382000653830002E +S315400206B0653840006538500065386000653870001E +S315400206C065388000653890006538A0006538B0000E +S315400206D06538C0006538D0006538E0006538F000FE +S315400206E065390000653910006539200065393000EA +S315400206F065394000653950006539600065397000DA +S3154002070065398000653990006539A0006539B000C9 +S315400207106539C0006539D0006539E0006539F000B9 +S31540020720653A0000653A1000653A2000653A3000A5 +S31540020730653A4000653A5000653A6000653A700095 +S31540020740653A8000653A9000653AA000653AB00085 +S31540020750653AC000653AD000653AE000653AF00075 +S31540020760653B0000653B1000653B2000653B300061 +S31540020770653B4000653B5000653B6000653B700051 +S31540020780653B8000653B9000653BA000653BB00041 +S31540020790653BC000653BD000653BE000653BF00031 +S315400207A0653C0000653C1000653C2000653C30001D +S315400207B0653C4000653C5000653C6000653C70000D +S315400207C0653C8000653C9000653CA000653CB000FD +S315400207D0653CC000653CD000653CE000653CF000ED +S315400207E0653D0000653D1000653D2000653D3000D9 +S315400207F0653D4000653D5000653D6000653D7000C9 +S31540020800653D8000653D9000653DA000653DB000B8 +S31540020810653DC000653DD000653DE000653DF000A8 +S31540020820653E0000653E1000653E2000653E300094 +S31540020830653E4000653E5000653E6000653E700084 +S31540020840653E8000653E9000653EA000653EB00074 +S31540020850653EC000653ED000653EE000653EF00064 +S31540020860653F0000653F1000653F2000653F300050 +S31540020870653F4000653F5000653F6000653F700040 +S31540020880653F8000653F9000653FA000653FB00030 +S31540020890653FC000653FD000653FE000653FF00020 +S315400208A00BC0A4068F346C9B0BC093731C18544721 +S315400208B00BC083008E183C230BC072AE83A9704ACC +S315400208C00BC0627C9CC166FF0BC0526A7ACE64A49E +S315400208D00BC04277C0B04ADA0BC032A412B191A023 +S315400208E00BC022EF168069500BC01358732804734D +S315400208F00BC003DFD10A08480BBFE909B3B0463241 +S315400209000BBFCA8E711B8E880BBFAC4D32D41430CE +S315400209100BBF8E4553D34B1B0BBF7076318237EFDD +S315400209200BBF52DF2BADF99C0BBF357FA47C936C7A +S315400209300BBF18570061F5EB0BBEFB64A6154515B8 +S315400209400BBEDEA7FE865A2B0BBEC22074D37FBCDB +S315400209500BBEA5CD763F66690BBE89AE722750F0B7 +S315400209600BBE6DC2D9F976230BBE520A212B976C68 +S315400209700BBE3683BD31CAA20BBE1B2F257575CA67 +S315400209800BBE000BD34C7BAF0BBDE51941F097FE76 +S315400209900BBDCA56EE76E9D00BBDAFC457C7AB7393 +S315400209A00BBD9560FE9616690BBD7B2C655872751C +S315400209B00BBD612610404EC00BBD474D8532E40942 +S315400209C00BBD2DA24BC19EDF0BBD1423ED22D101DF +S315400209D00BBCFAD1F42A88E40BBCE1ABED438E8022 +S315400209E00BBCC8B1666884820BBCAFE1EF1D2D011A +S315400209F00BBC973D1867D0EF0BBC7EC274CAC96266 +S31540020A000BBC6671983E29FE0BBC4E4A18298BA92F +S31540020A100BBC364B8B5DF6DB0BBC1E758A0FECBFEF +S31540020A200BBC06C7ADD18E7E0BBBEF41918CE1F676 +S31540020A300BBBD7E2D17E33360BBBC0AB0B2E921B20 +S31540020A400BBBA999DD6E6B650BBB92AEE8503CA71A +S31540020A500BBB7BE9CD2362720BBB654A2E6F002C22 +S31540020A600BBB4ECFAFED00FE0BBB3879F685313F5F +S31540020A700BBB2248A8486FDE0BBB0C3B6C6BF73BAB +S31540020A800BBAF651EB44BCEE0BBAE08BCE42E7F121 +S31540020A900BBACAE8BFED5CC00BBAB5686BDD5EDD6A +S31540020AA00BBAA00A7EBA475E0BBA8ACEA6354FEB80 +S31540020AB00BBA75B4910571DB0BBA60BBEEE358EF26 +S31540020AC00BBA4BE4708569410BBA372DC79BD7FEEB +S31540020AD00BBA2297A6CCD68C0BBA0E21C1B0CFA0A8 +S31540020AE00BB9F9CBCCCEB6050BB9E5957D98648B9F +S31540020AF00BB9D17E8A670EE70BB9BD86AA77C310BA +S31540020B000BB9A9AD95E7FAC40BB995F305B23CE525 +S31540020B100BB98256B3AACE570BB96ED85A7C720617 +S31540020B200BB95B77B5A537C80BB94834817359CC35 +S31540020B300BB9350E7B02284D0BB922056037032EC1 +S31540020B400BB90F18EFBE614A0BB8FC48E908E5221B +S31540020B500BB8E9950C487EA90BB8D6FD1A6D99E8F3 +S31540020B600BB8C480D5245A340BB8B21FFED1E1BCAF +S31540020B700BB89FDA5A91A5260BB88DAFAC32CB0A89 +S31540020B800BB87B9FB83596F60BB869AA43C8DFE126 +S31540020B900BB857CF14C791B50BB8460DF1B639C647 +S31540020BA00BB83466A1C09DF90BB822D8ECB75E6E7D +S31540020BB00BB811649B0DA16B0BB8000975D6C959C8 +S31540020BC00BB7EEC746C434A50BB7DD9DD8230752F3 +S31540020BD00BB7CC8CF4D9FE010BB7BB9468674A506D +S31540020BE00BB7AAB3FEDE78540BB799EB84E65D0CDD +S31540020BF00BB7893AC7B70D960BB778A19517DF01A0 +S31540020C000BB7681FBB5D6E910BB757B50967B24C00 +S31540020C100BB747614EA011A20BB737245AF7861479 +S31540020C200BB726FDFEE4C3A00BB716EE0B6268E8CF +S31540020C300BB706F451ED36CE0BB6F710A4824F80B1 +S31540020C400BB6E742D59D7CB40BB6D78AB8377D0E34 +S31540020C500BB6C7E81FC458720BB6B85AE031BB325E +S31540020C600BB6A8E2CDE557F90BB6997FBDBB504509 +S31540020C700BB68A318504A35C0BB67AF7F985A39B3A +S31540020C800BB66BD2F17471FF0BB65CC243777FCE63 +S31540020C900BB64DC5C6A416420BB63EDD527CE411D8 +S31540020CA00BB63008BEF090CF0BB62147E45855EB51 +S31540020CB00BB6129A9B769D520BB60400BD75A5845F +S31540020CC00BB5F57A23E62B070BB5E706A8BE172C1C +S31540020CD00BB5D8A6265733FF0BB5CA58776DE54BE9 +S31540020CE00BB5BC1D771FE6AB0BB5ADF500EB0E7829 +S31540020CF00BB59FDEF0AC15940BB591DB229D63F2EA +S31540020D000BB583E97355E1C10BB57609BFC7CD3241 +S31540020D100BB5683BE53F94B80BB55A7FC162B5B691 +S31540020D200BB54CD5322E9F7F0BB53F3C15F79AA19A +S31540020D300BB531B44B67B45A0BB5243DB17DAE30D9 +S31540020D400BB516D8278BF18F0BB509838D3787677D +S31540020D500BB4FC3FC27713AE0BB4EF0CA791D4BBD6 +S31540020D600BB4E1EA1D1EA6680BB4D4D8040308E509 +S31540020D700BB4C7D63D722B370BB4BAE4AAEBF9488B +S31540020D800BB4AE032E3C2D7E0BB4A131A97965C9B5 +S31540020D900BB4946FFF043C1C0BB487BE11866236BB +S31540020DA00BB47B1BC3F1C0BF0BB46E88F97F999B12 +S31540020DB00BB4620595AFAD730BB455917C47645441 +S31540020DC00BB4492C9150F96C0BB43CD6B91AA9C84C +S31540020DD00BB4308FD835E60B0BB42457D37687162F +S31540020DE00BB4182E8FF205900BB40C13F2FEB43BE3 +S31540020DF00BB40007E232FD1F0BB3F40A4364A1674A +S31540020E000BB3E81AFCA7FBF00BB3DC39F44F468A66 +S31540020E100BB3D06710E9E1C30BB3C4A239439F4F6A +S31540020E200BB3B8EB54640EF10BB3AD42498DCDDF33 +S31540020E300BB3A1A7003DD89B0BB39619602ADF2BB3 +S31540020E400BB38A9951449BB80BB37F26BBB32B791C +S31540020E500BB373C187D669EA0BB368699E454E44A4 +S31540020E600BB35D1EE7CD4B2D0BB351E14D71B098DF +S31540020E700BB346B0B86B0FC30BB33B8D1226A15AC8 +S31540020E800BB330764445ADAC0BB3256C389CF6EBD0 +S31540020E900BB31A6ED934256E0BB30F7E104535F55A +S31540020EA00BB30499C83BE9D60BB2F9C1EBB539236A +S31540020EB00BB2EEF6657EC6AA0BB2E437209655D53E +S31540020EC00BB2D984082942630BB2CEDD0793F9E708 +S31540020ED00BB2C4420A6177190BB2B9B2FC4ABEDA06 +S31540020EE00BB2AF2FC9365EFF0BB2A4B85D37EEC167 +S31540020EF00BB29A4CA48F90E30BB28FEC8BA9777905 +S31540020F000BB28597FF1D694D0BB27B4EEBAE48DDAA +S31540020F100BB271113E499CEE0BB266DEE4071AA88B +S31540020F200BB25CB7CA2831380BB2529BDE1796F722 +S31540020F300BB2488B0D68D8030BB23E8545D7E65AAD +S31540020F400BB2348A7548AB540BB22A9A89C69A9721 +S31540020F500BB220B5718446610BB216DB1ADAF53F45 +S31540020F600BB20D0B744A39100BB203466C77876C81 +S31540020F700BB1F98BF22DD3490BB1EFDBF45D27FFB1 +S31540020F800BB1E636621A457E0BB1DC9B2A9E3DD5F5 +S31540020F900BB1D30A3D4613EE0BB1C98389925B81ED +S31540020FA00BB1C006FF26DA3F0BB1B6948DCA2A288A +S31540020FB00BB1AD2C25655D0F0BB1A3CDB603A13D9B +S31540020FC00BB19A792FD1E7410BB1912E831E88D26C +S31540020FD00BB187EDA058F0D60BB17EB678114473AB +S31540020FE00BB17588FAF80D3A0BB16C6519DDE45D03 +S31540020FF00BB1634AC5B31EEF0BB15A39EF877B2853 +S315400210000BB151328889CEAE0BB148348207B5DB7B +S315400210100BB13F3FCD6D43FF0BB136545C44B49A9E +S315400210200BB12D7220361D870BB124990B07221B5B +S315400210300BB11BC90E9AA72D0BB113021CF0880FD8 +S315400210400BB10A4428254C650BB1018F2271DEE5AE +S315400210500BB0F8E2FE2B44F40BB0F03FADC257237F +S315400210600BB0E7A523C37A850BB0DF1352D65AD904 +S315400210700BB0D68A2DBDA58C0BB0CE09A756C58915 +S315400210800BB0C591B2999FDB0BB0BD224298511568 +S315400210900BB0B4BB4A7EEB870BB0AC5CBD93363625 +S315400210A0529000000000000052900FF807F60DEB38 +S315400210B052901FE03F61BAD052902FB8D4E30F4806 +S315400210C052903F81F636B80C52904F3BD03C0A6460 +S315400210D052905EE68EFAD48B52906E825DA8FC2BBD +S315400210E052907E0F66AFED0752908D8DD3B1D9AA3D +S315400210F052909CFDCD8ED0095290AC5F7C69A3C8BC +S315400211005290BBB307ACAFDB5290CAF8960E710D44 +S315400211105290DA304D95FB065290E95A539F492C2C +S315400211205290F876CCDF6CD952910785DD689A29C0 +S3154002113052911687A8AE14A35291257C5187FD0978 +S3154002114052913463FA37014E5291433EC467EFFBE4 +S315400211505291520CD1372FEB529160CE41341D74CD +S3154002116052916F8334644DF952917E2BCA46BAB975 +S3154002117052918CC821D6D3E352919B58598F7C9F6A +S315400211805291A9DC8F6DF1045291B854E0F496A0C5 +S315400211905291C6C16B2DB8705291D5224AAE2EE1FC +S315400211A05291E3779B97F4A85291F1C1799CA8FF9B +S315400211B0529200000000000052920E33499A21A931 +S315400211C052921C5B70D9F82452922A788FC76DE5E9 +S315400211D05292388AC0059C28529246921AD4EA49BB +S315400211E05292548EB9151E8552926280B3476096CA +S315400211F05292706821902E9A52927E451BB944C3F0 +S3154002120052928C17B9337834529299E011188575F7 +S315400212105292A79E3A2CD2E65292B5524AE1278E74 +S315400212205292C2FC595456A75292D09C7B54E03EED +S315400212305292DE32C66287415292EBBF4FAFDD4BCE +S315400212405292F9422C23C47E529306BB705AE7C38C +S315400212505293142B30A929AB52932191811B0A41F7 +S3154002126052932EEE7577041652933C42213EE0C9C4 +S315400212705293498C97B10540529356CDEBC9B5E28C +S31540021280529364063044530652937135779C8DCB04 +S3154002129052937E5BD40F95A152938B79579D3EAB69 +S315400212A05293988E1409212E5293A59A1ADBB2575D +S315400212B05293B29D7D6356625293BF984CB56C77FA +S315400212C05293CC8A99AF54535293D97474F76DF2B0 +S315400212D05293E655EEFE13675293F32F17FE8D0493 +S315400212E0529400000000000052940CC8B6D657C271 +S315400212F0529419894C2329F052942641CF5695721D +S31540021300529432F24FB01C7A52943F9ADC3F79CED5 +S3154002131052944C3B83E57153529458D455549C1A7B +S31540021320529465655F122FF6529471EEAF76C2C63D +S3154002133052947E7054AF098952948AEA5CBC935F98 +S315400213405294975CD57680885294A3C7CC8A358AC4 +S315400213505294B02B4F7C0A885294BC876BA7F6EC0A +S315400213605294C8DC2E4239805294D529A457FCFCAB +S315400213705294E16FDACFF9375294EDAEDE6B10FE3E +S315400213805294F9E6BBC4ECB3529506177F5491BB0F +S3154002139052951241356CF6E052951E63EA3D95B080 +S315400213A052952A7FA9D2F8EA529536948017481068 +S315400213B0529542A278D2D03652954EA99FAC8A0F08 +S315400213C052955AAA002A9D5A529566A3A5B2E1B1F0 +S315400213D0529572969B8B5CD852957E82ECDABE8D84 +S315400213E052958A68A4A8D9F352959647CDDF1CA593 +S315400213F05295A220734903775295ADF29F948CFB86 +S315400214005295B9BE5D52A9DA5295C583B6F7AB037A +S315400214105295D142B6DBADC55295DCFB673B05DF43 +S315400214205295E8ADD236A58F5295F45A01D483B47B +S31540021430529600000000000052960B9FD68A4554F1 +S31540021440529617398F2AAA48529622CD337F0FE8F1 +S3154002145052962E5ACD0C3EBE529639E2653E421BFC +S31540021460529645640568C1C3529650DFB6C759F4D1 +S3154002147052965C55827DF1D2529667C57199104B50 +S315400214805296732F8D0E2F7752967E93DDBC0E7336 +S31540021490529689F26C6B01D05296954B41CD42934E +S315400214A000000000000000000000000000000000F4 +S315400214B000000000000000000000000000000000E4 +S315400214C000000000000000000000000000000000D4 +S315400214D000000000000000000000000000000000C4 +S315400214E000000000000000000000000000000000B4 +S315400214F000000000000000000000000000000000A4 S315400215000000000000000000000000000000000093 S315400215100000000000000000000000000000000083 S315400215200000000000000000000000000000000073 @@ -9052,8 +10239,8 @@ S31540027FC00000000000000000000000000000000069 S31540027FD00000000000000000000000000000000059 S31540027FE00000000000000000000000000000000049 S31540027FF00000000000000000000000000000000039 -S315400280000000003F0000000C0000003F000000128C -S31540028010000000FF00000018000000000000000001 +S315400280000000000000000000000000000000000028 +S315400280100000000000000000000000000000000018 S315400280200000000000000000000000000000000008 S3154002803000000000000000000000000000000000F8 S3154002804000000000000000000000000000000000E8 @@ -15964,8 +17151,8 @@ S31540042FC000000000000000000000000000000000B7 S31540042FD000000000000000000000000000000000A7 S31540042FE00000000000000000000000000000000097 S31540042FF00000000000000000000000000000000087 -S315400430000000000000000000000000000000000076 -S315400430100000000000000000000000000000000066 +S3154004300000000018000000FF000000120000003F0E +S315400430100000000C0000003F00000000000000001B S315400430200000000000000000000000000000000056 S315400430300000000000000000000000000000000046 S315400430400000000000000000000000000000000036 @@ -17244,44 +18431,44 @@ S31540047FC00000000000000000000000000000000067 S31540047FD00000000000000000000000000000000057 S31540047FE00000000000000000000000000000000047 S31540047FF00000000000000000000000000000000037 -S315400480000000000000000000000000000000000026 -S315400480100000000000000000000000000000000016 -S315400480200000000000000000000000000000000006 -S3154004803000000000000000000000000000000000F6 -S3154004804000000000000000000000000000000000E6 -S3154004805000000000000000000000000000000000D6 -S3154004806000000000000000000000000000000000C6 -S3154004807000000000000000000000000000000000B6 -S3154004808000000000000000000000000000000000A6 -S315400480900000000000000000000000000000000096 -S315400480A00000000000000000000000000000000086 -S315400480B00000000000000000000000000000000076 -S315400480C00000000000000000000000000000000066 -S315400480D00000000000000000000000000000000056 -S315400480E00000000000000000000000000000000046 -S315400480F00000000000000000000000000000000036 -S315400481000000000000000000000000000000000025 -S315400481100000000000000000000000000000000015 -S315400481200000000000000000000000000000000005 -S3154004813000000000000000000000000000000000F5 -S3154004814000000000000000000000000000000000E5 -S3154004815000000000000000000000000000000000D5 -S3154004816000000000000000000000000000000000C5 -S3154004817000000000000000000000000000000000B5 -S3154004818000000000000000000000000000000000A5 -S315400481900000000000000000000000000000000095 -S315400481A00000000000000000000000000000000085 -S315400481B00000000000000000000000000000000075 -S315400481C00000000000000000000000000000000065 -S315400481D00000000000000000000000000000000055 -S315400481E00000000000000000000000000000000045 +S31540048000000000020000000300000000000000031E +S31540048010FFFFFFFEFFFFFFFF00000002FFFFFFFD23 +S315400480200000000000000000000000010000000005 +S3154004803000000000FFFFFFFF0000000000000001F9 +S31540048040FFFFFFFFFFFFFFFFFFFFFFFF00000001F1 +S31540048050FFFFFFFFFFFFFFFE0000000300000000DC +S31540048060FFFFFFFEFFFFFFFD0000000000000009C8 +S315400480700000000700000001FFFFFFF700000002B8 +S31540048080FFFFFFFCFFFFFFF800000002FFFFFFFCBD +S31540048090FFFFFFF8FFFFFFFC00000002000000089E +S315400480A0FFFFFFFCFFFFFFFEFFFFFFF8FFFFFFF8A8 +S315400480B000000001FFFFFFF8FFFFFFF7000000008C +S315400480C00000000B00000002000000050000002F25 +S315400480D0000000020000001700003039000002A72B +S315400480E000000012FFFF076C0000004DFFFFFCC6B6 +S315400480F000003039FFFFFD59FFFFFFEEFFFF076C1D +S31540048100FFFFFFB30000033A00000091FFFFE84180 +S3154004811000000000FFFFFD84FFFED02F000000009A +S315400481200000F6FA006E49810000000000000000DD +S3154004813000000000000000000000000200000003F0 +S3154004814000000000000000000000000100000000E4 +S31540048150FFFFFFFE0000000355555554FFFFFFFE89 +S315400481600000000355555554700FFFFE00000007EC +S315400481701002492400000000000000000000000036 +S315400481800000000200000003000000060000000298 +S31540048190FFFFFFFDFFFFFFFA0000000000000001A3 +S315400481A00000000000000000FFFFFFFF0000000089 +S315400481B000000001FFFFFFFFFFFFFFFFFFFFFFFF80 +S315400481C000000001FFFFFFFFFFFFFFFE000000036A +S315400481D0FFFFFFFAFFFFFFFEFFFFFFFD0000000663 +S315400481E0000000000000000000000009FFFFF0004E S315400481F00000000000000000000000000000000035 -S315400482000000000000000000000000000000000024 +S31540048200000000000000000100000002000000031E S315400482100000000000000000000000000000000014 -S315400482200000000000000000000000000000000004 -S3154004823000000000000000000000000000000000F4 +S315400482204004822800000000000000004004851439 +S31540048230400485E0400486AC0000000000000000D5 S3154004824000000000000000000000000000000000E4 -S3154004825000000000000000000000000000000000D4 +S315400482500000000000000000000000004001C0983B S3154004826000000000000000000000000000000000C4 S3154004827000000000000000000000000000000000B4 S3154004828000000000000000000000000000000000A4 @@ -17289,8 +18476,8 @@ S315400482900000000000000000000000000000000094 S315400482A00000000000000000000000000000000084 S315400482B00000000000000000000000000000000074 S315400482C00000000000000000000000000000000064 -S315400482D00000000000000000000000000000000054 -S315400482E00000000000000000000000000000000044 +S315400482D00000000000000001330EABCD1234E66D01 +S315400482E0DEEC0005000B000000000000000000006A S315400482F00000000000000000000000000000000034 S315400483000000000000000000000000000000000023 S315400483100000000000000000000000000000000013 @@ -17364,72 +18551,72 @@ S3154004874000000000000000000000000000000000DF S3154004875000000000000000000000000000000000CF S3154004876000000000000000000000000000000000BF S3154004877000000000000000000000000000000000AF -S31540048780000000000000000000000000000000009F -S31540048790000000000000000000000000000000008F -S315400487A0000000000000000000000000000000007F -S315400487B0000000000000000000000000000000006F -S315400487C0000000000000000000000000000000005F -S315400487D0000000000000000000000000000000004F -S315400487E0000000000000000000000000000000003F -S315400487F0000000000000000000000000000000002F -S31540048800000000000000000000000000000000001E -S31540048810000000000000000000000000000000000E -S3154004882000000000000000000000000000000000FE -S3154004883000000000000000000000000000000000EE -S3154004884000000000000000000000000000000000DE -S3154004885000000000000000000000000000000000CE -S3154004886000000000000000000000000000000000BE -S3154004887000000000000000000000000000000000AE -S31540048880000000000000000000000000000000009E -S31540048890000000000000000000000000000000008E -S315400488A0000000000000000000000000000000007E -S315400488B0000000000000000000000000000000006E -S315400488C0000000000000000000000000000000005E -S315400488D0000000000000000000000000000000004E -S315400488E0000000000000000000000000000000003E -S315400488F0000000000000000000000000000000002E -S31540048900000000000000000000000000000000001D -S31540048910000000000000000000000000000000000D -S3154004892000000000000000000000000000000000FD -S3154004893000000000000000000000000000000000ED -S3154004894000000000000000000000000000000000DD -S3154004895000000000000000000000000000000000CD -S3154004896000000000000000000000000000000000BD -S3154004897000000000000000000000000000000000AD -S31540048980000000000000000000000000000000009D -S31540048990000000000000000000000000000000008D -S315400489A0000000000000000000000000000000007D -S315400489B0000000000000000000000000000000006D -S315400489C0000000000000000000000000000000005D -S315400489D0000000000000000000000000000000004D -S315400489E0000000000000000000000000000000003D -S315400489F0000000000000000000000000000000002D -S31540048A00000000000000000000000000000000001C -S31540048A10000000000000000000000000000000000C -S31540048A2000000000000000000000000000000000FC -S31540048A3000000000000000000000000000000000EC -S31540048A4000000000000000000000000000000000DC -S31540048A5000000000000000000000000000000000CC -S31540048A6000000000000000000000000000000000BC -S31540048A7000000000000000000000000000000000AC -S31540048A80000000000000000000000000000000009C -S31540048A90000000000000000000000000000000008C -S31540048AA0000000000000000000000000000000007C -S31540048AB0000000000000000000000000000000006C -S31540048AC0000000000000000000000000000000005C -S31540048AD0000000000000000000000000000000004C -S31540048AE0000000000000000000000000000000003C -S31540048AF0000000000000000000000000000000002C -S31540048B00000000000000000000000000000000001B -S31540048B10000000000000000000000000000000000B -S31540048B2000000000000000000000000000000000FB -S31540048B3000000000000000000000000000000000EB -S31540048B4000000000000000000000000000000000DB -S31540048B5000000000000000000000000000000000CB -S31540048B6000000000000000000000000000000000BB -S31540048B7000000000000000000000000000000000AB -S31540048B80000000000000000000000000000000009B -S31540048B90000000000000000000000000000000008B +S315400487804004877840048778400487804004878083 +S315400487904004878840048788400487904004879033 +S315400487A04004879840048798400487A0400487A0E3 +S315400487B0400487A8400487A8400487B0400487B093 +S315400487C0400487B8400487B8400487C0400487C043 +S315400487D0400487C8400487C8400487D0400487D0F3 +S315400487E0400487D8400487D8400487E0400487E0A3 +S315400487F0400487E8400487E8400487F0400487F053 +S31540048800400487F8400487F8400488004004880000 +S3154004881040048808400488084004881040048810AE +S31540048820400488184004881840048820400488205E +S31540048830400488284004882840048830400488300E +S3154004884040048838400488384004884040048840BE +S31540048850400488484004884840048850400488506E +S31540048860400488584004885840048860400488601E +S3154004887040048868400488684004887040048870CE +S31540048880400488784004887840048880400488807E +S31540048890400488884004888840048890400488902E +S315400488A04004889840048898400488A0400488A0DE +S315400488B0400488A8400488A8400488B0400488B08E +S315400488C0400488B8400488B8400488C0400488C03E +S315400488D0400488C8400488C8400488D0400488D0EE +S315400488E0400488D8400488D8400488E0400488E09E +S315400488F0400488E8400488E8400488F0400488F04E +S31540048900400488F8400488F84004890040048900FB +S3154004891040048908400489084004891040048910A9 +S315400489204004891840048918400489204004892059 +S315400489304004892840048928400489304004893009 +S3154004894040048938400489384004894040048940B9 +S315400489504004894840048948400489504004895069 +S315400489604004895840048958400489604004896019 +S3154004897040048968400489684004897040048970C9 +S315400489804004897840048978400489804004898079 +S315400489904004898840048988400489904004899029 +S315400489A04004899840048998400489A0400489A0D9 +S315400489B0400489A8400489A8400489B0400489B089 +S315400489C0400489B8400489B8400489C0400489C039 +S315400489D0400489C8400489C8400489D0400489D0E9 +S315400489E0400489D8400489D8400489E0400489E099 +S315400489F0400489E8400489E8400489F0400489F049 +S31540048A00400489F8400489F840048A0040048A00F6 +S31540048A1040048A0840048A0840048A1040048A10A4 +S31540048A2040048A1840048A1840048A2040048A2054 +S31540048A3040048A2840048A2840048A3040048A3004 +S31540048A4040048A3840048A3840048A4040048A40B4 +S31540048A5040048A4840048A4840048A5040048A5064 +S31540048A6040048A5840048A5840048A6040048A6014 +S31540048A7040048A6840048A6840048A7040048A70C4 +S31540048A8040048A7840048A7840048A8040048A8074 +S31540048A9040048A8840048A8840048A9040048A9024 +S31540048AA040048A9840048A9840048AA040048AA0D4 +S31540048AB040048AA840048AA840048AB040048AB084 +S31540048AC040048AB840048AB840048AC040048AC034 +S31540048AD040048AC840048AC840048AD040048AD0E4 +S31540048AE040048AD840048AD840048AE040048AE094 +S31540048AF040048AE840048AE840048AF040048AF044 +S31540048B0040048AF840048AF840048B0040048B00F1 +S31540048B1040048B0840048B0840048B1040048B109F +S31540048B2040048B1840048B1840048B2040048B204F +S31540048B3040048B2840048B2840048B3040048B30FF +S31540048B4040048B3840048B3840048B4040048B40AF +S31540048B5040048B4840048B4840048B5040048B505F +S31540048B6040048B5840048B5840048B6040048B600F +S31540048B7040048B6840048B6840048B7040048B70BF +S31540048B8000020000FFFFFFFF0000000040048B8846 +S31540048B900000000000000000000000000000000289 S31540048BA0000000000000000000000000000000007B S31540048BB0000000000000000000000000000000006B S31540048BC0000000000000000000000000000000005B @@ -17438,2056 +18625,7 @@ S31540048BE0000000000000000000000000000000003B S31540048BF0000000000000000000000000000000002B S31540048C00000000000000000000000000000000001A S31540048C10000000000000000000000000000000000A -S31540048C2000000000000000000000000000000000FA -S31540048C3000000000000000000000000000000000EA -S31540048C4000000000000000000000000000000000DA -S31540048C5000000000000000000000000000000000CA -S31540048C6000000000000000000000000000000000BA -S31540048C7000000000000000000000000000000000AA -S31540048C80000000000000000000000000000000009A -S31540048C90000000000000000000000000000000008A -S31540048CA0000000000000000000000000000000007A -S31540048CB0000000000000000000000000000000006A -S31540048CC0000000000000000000000000000000005A -S31540048CD0000000000000000000000000000000004A -S31540048CE0000000000000000000000000000000003A -S31540048CF0000000000000000000000000000000002A -S31540048D000000000000000000000000000000000019 -S31540048D100000000000000000000000000000000009 -S31540048D2000000000000000000000000000000000F9 -S31540048D3000000000000000000000000000000000E9 -S31540048D4000000000000000000000000000000000D9 -S31540048D5000000000000000000000000000000000C9 -S31540048D6000000000000000000000000000000000B9 -S31540048D7000000000000000000000000000000000A9 -S31540048D800000000000000000000000000000000099 -S31540048D900000000000000000000000000000000089 -S31540048DA00000000000000000000000000000000079 -S31540048DB00000000000000000000000000000000069 -S31540048DC00000000000000000000000000000000059 -S31540048DD00000000000000000000000000000000049 -S31540048DE00000000000000000000000000000000039 -S31540048DF00000000000000000000000000000000029 -S31540048E000000000000000000000000000000000018 -S31540048E100000000000000000000000000000000008 -S31540048E2000000000000000000000000000000000F8 -S31540048E3000000000000000000000000000000000E8 -S31540048E4000000000000000000000000000000000D8 -S31540048E5000000000000000000000000000000000C8 -S31540048E6000000000000000000000000000000000B8 -S31540048E7000000000000000000000000000000000A8 -S31540048E800000000000000000000000000000000098 -S31540048E900000000000000000000000000000000088 -S31540048EA00000000000000000000000000000000078 -S31540048EB00000000000000000000000000000000068 -S31540048EC00000000000000000000000000000000058 -S31540048ED00000000000000000000000000000000048 -S31540048EE00000000000000000000000000000000038 -S31540048EF00000000000000000000000000000000028 -S31540048F000000000000000000000000000000000017 -S31540048F100000000000000000000000000000000007 -S31540048F2000000000000000000000000000000000F7 -S31540048F3000000000000000000000000000000000E7 -S31540048F4000000000000000000000000000000000D7 -S31540048F5000000000000000000000000000000000C7 -S31540048F6000000000000000000000000000000000B7 -S31540048F7000000000000000000000000000000000A7 -S31540048F800000000000000000000000000000000097 -S31540048F900000000000000000000000000000000087 -S31540048FA00000000000000000000000000000000077 -S31540048FB00000000000000000000000000000000067 -S31540048FC00000000000000000000000000000000057 -S31540048FD00000000000000000000000000000000047 -S31540048FE00000000000000000000000000000000037 -S31540048FF00000000000000000000000000000000027 -S315400490000000000000000000000000000000000016 -S315400490100000000000000000000000000000000006 -S3154004902000000000000000000000000000000000F6 -S3154004903000000000000000000000000000000000E6 -S3154004904000000000000000000000000000000000D6 -S3154004905000000000000000000000000000000000C6 -S3154004906000000000000000000000000000000000B6 -S3154004907000000000000000000000000000000000A6 -S315400490800000000000000000000000000000000096 -S315400490900000000000000000000000000000000086 -S315400490A00000000000000000000000000000000076 -S315400490B00000000000000000000000000000000066 -S315400490C00000000000000000000000000000000056 -S315400490D00000000000000000000000000000000046 -S315400490E00000000000000000000000000000000036 -S315400490F00000000000000000000000000000000026 -S315400491000000000000000000000000000000000015 -S315400491100000000000000000000000000000000005 -S3154004912000000000000000000000000000000000F5 -S3154004913000000000000000000000000000000000E5 -S3154004914000000000000000000000000000000000D5 -S3154004915000000000000000000000000000000000C5 -S3154004916000000000000000000000000000000000B5 -S3154004917000000000000000000000000000000000A5 -S315400491800000000000000000000000000000000095 -S315400491900000000000000000000000000000000085 -S315400491A00000000000000000000000000000000075 -S315400491B00000000000000000000000000000000065 -S315400491C00000000000000000000000000000000055 -S315400491D00000000000000000000000000000000045 -S315400491E00000000000000000000000000000000035 -S315400491F00000000000000000000000000000000025 -S315400492000000000000000000000000000000000014 -S315400492100000000000000000000000000000000004 -S3154004922000000000000000000000000000000000F4 -S3154004923000000000000000000000000000000000E4 -S3154004924000000000000000000000000000000000D4 -S3154004925000000000000000000000000000000000C4 -S3154004926000000000000000000000000000000000B4 -S3154004927000000000000000000000000000000000A4 -S315400492800000000000000000000000000000000094 -S315400492900000000000000000000000000000000084 -S315400492A00000000000000000000000000000000074 -S315400492B00000000000000000000000000000000064 -S315400492C00000000000000000000000000000000054 -S315400492D00000000000000000000000000000000044 -S315400492E00000000000000000000000000000000034 -S315400492F00000000000000000000000000000000024 -S315400493000000000000000000000000000000000013 -S315400493100000000000000000000000000000000003 -S3154004932000000000000000000000000000000000F3 -S3154004933000000000000000000000000000000000E3 -S3154004934000000000000000000000000000000000D3 -S3154004935000000000000000000000000000000000C3 -S3154004936000000000000000000000000000000000B3 -S3154004937000000000000000000000000000000000A3 -S315400493800000000000000000000000000000000093 -S315400493900000000000000000000000000000000083 -S315400493A00000000000000000000000000000000073 -S315400493B00000000000000000000000000000000063 -S315400493C00000000000000000000000000000000053 -S315400493D00000000000000000000000000000000043 -S315400493E00000000000000000000000000000000033 -S315400493F00000000000000000000000000000000023 -S315400494000000000000000000000000000000000012 -S315400494100000000000000000000000000000000002 -S3154004942000000000000000000000000000000000F2 -S3154004943000000000000000000000000000000000E2 -S3154004944000000000000000000000000000000000D2 -S3154004945000000000000000000000000000000000C2 -S3154004946000000000000000000000000000000000B2 -S3154004947000000000000000000000000000000000A2 -S315400494800000000000000000000000000000000092 -S315400494900000000000000000000000000000000082 -S315400494A00000000000000000000000000000000072 -S315400494B00000000000000000000000000000000062 -S315400494C00000000000000000000000000000000052 -S315400494D00000000000000000000000000000000042 -S315400494E00000000000000000000000000000000032 -S315400494F00000000000000000000000000000000022 -S315400495000000000000000000000000000000000011 -S315400495100000000000000000000000000000000001 -S3154004952000000000000000000000000000000000F1 -S3154004953000000000000000000000000000000000E1 -S3154004954000000000000000000000000000000000D1 -S3154004955000000000000000000000000000000000C1 -S3154004956000000000000000000000000000000000B1 -S3154004957000000000000000000000000000000000A1 -S315400495800000000000000000000000000000000091 -S315400495900000000000000000000000000000000081 -S315400495A00000000000000000000000000000000071 -S315400495B00000000000000000000000000000000061 -S315400495C00000000000000000000000000000000051 -S315400495D00000000000000000000000000000000041 -S315400495E00000000000000000000000000000000031 -S315400495F00000000000000000000000000000000021 -S315400496000000000000000000000000000000000010 -S315400496100000000000000000000000000000000000 -S3154004962000000000000000000000000000000000F0 -S3154004963000000000000000000000000000000000E0 -S3154004964000000000000000000000000000000000D0 -S3154004965000000000000000000000000000000000C0 -S3154004966000000000000000000000000000000000B0 -S3154004967000000000000000000000000000000000A0 -S315400496800000000000000000000000000000000090 -S315400496900000000000000000000000000000000080 -S315400496A00000000000000000000000000000000070 -S315400496B00000000000000000000000000000000060 -S315400496C00000000000000000000000000000000050 -S315400496D00000000000000000000000000000000040 -S315400496E00000000000000000000000000000000030 -S315400496F00000000000000000000000000000000020 -S31540049700000000000000000000000000000000000F -S3154004971000000000000000000000000000000000FF -S3154004972000000000000000000000000000000000EF -S3154004973000000000000000000000000000000000DF -S3154004974000000000000000000000000000000000CF -S3154004975000000000000000000000000000000000BF -S3154004976000000000000000000000000000000000AF -S31540049770000000000000000000000000000000009F -S31540049780000000000000000000000000000000008F -S31540049790000000000000000000000000000000007F -S315400497A0000000000000000000000000000000006F -S315400497B0000000000000000000000000000000005F -S315400497C0000000000000000000000000000000004F -S315400497D0000000000000000000000000000000003F -S315400497E0000000000000000000000000000000002F -S315400497F0000000000000000000000000000000001F -S31540049800000000000000000000000000000000000E -S3154004981000000000000000000000000000000000FE -S3154004982000000000000000000000000000000000EE -S3154004983000000000000000000000000000000000DE -S3154004984000000000000000000000000000000000CE -S3154004985000000000000000000000000000000000BE -S3154004986000000000000000000000000000000000AE -S31540049870000000000000000000000000000000009E -S31540049880000000000000000000000000000000008E -S31540049890000000000000000000000000000000007E -S315400498A0000000000000000000000000000000006E -S315400498B0000000000000000000000000000000005E -S315400498C0000000000000000000000000000000004E -S315400498D0000000000000000000000000000000003E -S315400498E0000000000000000000000000000000002E -S315400498F0000000000000000000000000000000001E -S31540049900000000000000000000000000000000000D -S3154004991000000000000000000000000000000000FD -S3154004992000000000000000000000000000000000ED -S3154004993000000000000000000000000000000000DD -S3154004994000000000000000000000000000000000CD -S3154004995000000000000000000000000000000000BD -S3154004996000000000000000000000000000000000AD -S31540049970000000000000000000000000000000009D -S31540049980000000000000000000000000000000008D -S31540049990000000000000000000000000000000007D -S315400499A0000000000000000000000000000000006D -S315400499B0000000000000000000000000000000005D -S315400499C0000000000000000000000000000000004D -S315400499D0000000000000000000000000000000003D -S315400499E0000000000000000000000000000000002D -S315400499F0000000000000000000000000000000001D -S31540049A00000000000000000000000000000000000C -S31540049A1000000000000000000000000000000000FC -S31540049A2000000000000000000000000000000000EC -S31540049A3000000000000000000000000000000000DC -S31540049A4000000000000000000000000000000000CC -S31540049A5000000000000000000000000000000000BC -S31540049A6000000000000000000000000000000000AC -S31540049A70000000000000000000000000000000009C -S31540049A80000000000000000000000000000000008C -S31540049A90000000000000000000000000000000007C -S31540049AA0000000000000000000000000000000006C -S31540049AB0000000000000000000000000000000005C -S31540049AC0000000000000000000000000000000004C -S31540049AD0000000000000000000000000000000003C -S31540049AE0000000000000000000000000000000002C -S31540049AF0000000000000000000000000000000001C -S31540049B00000000000000000000000000000000000B -S31540049B1000000000000000000000000000000000FB -S31540049B2000000000000000000000000000000000EB -S31540049B3000000000000000000000000000000000DB -S31540049B4000000000000000000000000000000000CB -S31540049B5000000000000000000000000000000000BB -S31540049B6000000000000000000000000000000000AB -S31540049B70000000000000000000000000000000009B -S31540049B80000000000000000000000000000000008B -S31540049B90000000000000000000000000000000007B -S31540049BA0000000000000000000000000000000006B -S31540049BB0000000000000000000000000000000005B -S31540049BC0000000000000000000000000000000004B -S31540049BD0000000000000000000000000000000003B -S31540049BE0000000000000000000000000000000002B -S31540049BF0000000000000000000000000000000001B -S31540049C00000000000000000000000000000000000A -S31540049C1000000000000000000000000000000000FA -S31540049C2000000000000000000000000000000000EA -S31540049C3000000000000000000000000000000000DA -S31540049C4000000000000000000000000000000000CA -S31540049C5000000000000000000000000000000000BA -S31540049C6000000000000000000000000000000000AA -S31540049C70000000000000000000000000000000009A -S31540049C80000000000000000000000000000000008A -S31540049C90000000000000000000000000000000007A -S31540049CA0000000000000000000000000000000006A -S31540049CB0000000000000000000000000000000005A -S31540049CC0000000000000000000000000000000004A -S31540049CD0000000000000000000000000000000003A -S31540049CE0000000000000000000000000000000002A -S31540049CF0000000000000000000000000000000001A -S31540049D000000000000000000000000000000000009 -S31540049D1000000000000000000000000000000000F9 -S31540049D2000000000000000000000000000000000E9 -S31540049D3000000000000000000000000000000000D9 -S31540049D4000000000000000000000000000000000C9 -S31540049D5000000000000000000000000000000000B9 -S31540049D6000000000000000000000000000000000A9 -S31540049D700000000000000000000000000000000099 -S31540049D800000000000000000000000000000000089 -S31540049D900000000000000000000000000000000079 -S31540049DA00000000000000000000000000000000069 -S31540049DB00000000000000000000000000000000059 -S31540049DC00000000000000000000000000000000049 -S31540049DD00000000000000000000000000000000039 -S31540049DE00000000000000000000000000000000029 -S31540049DF00000000000000000000000000000000019 -S31540049E000000000000000000000000000000000008 -S31540049E1000000000000000000000000000000000F8 -S31540049E2000000000000000000000000000000000E8 -S31540049E3000000000000000000000000000000000D8 -S31540049E4000000000000000000000000000000000C8 -S31540049E5000000000000000000000000000000000B8 -S31540049E6000000000000000000000000000000000A8 -S31540049E700000000000000000000000000000000098 -S31540049E800000000000000000000000000000000088 -S31540049E900000000000000000000000000000000078 -S31540049EA00000000000000000000000000000000068 -S31540049EB00000000000000000000000000000000058 -S31540049EC00000000000000000000000000000000048 -S31540049ED00000000000000000000000000000000038 -S31540049EE00000000000000000000000000000000028 -S31540049EF00000000000000000000000000000000018 -S31540049F000000000000000000000000000000000007 -S31540049F1000000000000000000000000000000000F7 -S31540049F2000000000000000000000000000000000E7 -S31540049F3000000000000000000000000000000000D7 -S31540049F4000000000000000000000000000000000C7 -S31540049F5000000000000000000000000000000000B7 -S31540049F6000000000000000000000000000000000A7 -S31540049F700000000000000000000000000000000097 -S31540049F800000000000000000000000000000000087 -S31540049F900000000000000000000000000000000077 -S31540049FA00000000000000000000000000000000067 -S31540049FB00000000000000000000000000000000057 -S31540049FC00000000000000000000000000000000047 -S31540049FD00000000000000000000000000000000037 -S31540049FE00000000000000000000000000000000027 -S31540049FF00000000000000000000000000000000017 -S3154004A0000000000000000000000000000000000006 -S3154004A01000000000000000000000000000000000F6 -S3154004A02000000000000000000000000000000000E6 -S3154004A03000000000000000000000000000000000D6 -S3154004A04000000000000000000000000000000000C6 -S3154004A05000000000000000000000000000000000B6 -S3154004A06000000000000000000000000000000000A6 -S3154004A0700000000000000000000000000000000096 -S3154004A0800000000000000000000000000000000086 -S3154004A0900000000000000000000000000000000076 -S3154004A0A00000000000000000000000000000000066 -S3154004A0B00000000000000000000000000000000056 -S3154004A0C00000000000000000000000000000000046 -S3154004A0D00000000000000000000000000000000036 -S3154004A0E00000000000000000000000000000000026 -S3154004A0F00000000000000000000000000000000016 -S3154004A1000000000000000000000000000000000005 -S3154004A11000000000000000000000000000000000F5 -S3154004A12000000000000000000000000000000000E5 -S3154004A13000000000000000000000000000000000D5 -S3154004A14000000000000000000000000000000000C5 -S3154004A15000000000000000000000000000000000B5 -S3154004A16000000000000000000000000000000000A5 -S3154004A1700000000000000000000000000000000095 -S3154004A1800000000000000000000000000000000085 -S3154004A1900000000000000000000000000000000075 -S3154004A1A00000000000000000000000000000000065 -S3154004A1B00000000000000000000000000000000055 -S3154004A1C00000000000000000000000000000000045 -S3154004A1D00000000000000000000000000000000035 -S3154004A1E00000000000000000000000000000000025 -S3154004A1F00000000000000000000000000000000015 -S3154004A2000000000000000000000000000000000004 -S3154004A21000000000000000000000000000000000F4 -S3154004A22000000000000000000000000000000000E4 -S3154004A23000000000000000000000000000000000D4 -S3154004A24000000000000000000000000000000000C4 -S3154004A25000000000000000000000000000000000B4 -S3154004A26000000000000000000000000000000000A4 -S3154004A2700000000000000000000000000000000094 -S3154004A2800000000000000000000000000000000084 -S3154004A2900000000000000000000000000000000074 -S3154004A2A00000000000000000000000000000000064 -S3154004A2B00000000000000000000000000000000054 -S3154004A2C00000000000000000000000000000000044 -S3154004A2D00000000000000000000000000000000034 -S3154004A2E00000000000000000000000000000000024 -S3154004A2F00000000000000000000000000000000014 -S3154004A3000000000000000000000000000000000003 -S3154004A31000000000000000000000000000000000F3 -S3154004A32000000000000000000000000000000000E3 -S3154004A33000000000000000000000000000000000D3 -S3154004A34000000000000000000000000000000000C3 -S3154004A35000000000000000000000000000000000B3 -S3154004A36000000000000000000000000000000000A3 -S3154004A3700000000000000000000000000000000093 -S3154004A3800000000000000000000000000000000083 -S3154004A3900000000000000000000000000000000073 -S3154004A3A00000000000000000000000000000000063 -S3154004A3B00000000000000000000000000000000053 -S3154004A3C00000000000000000000000000000000043 -S3154004A3D00000000000000000000000000000000033 -S3154004A3E00000000000000000000000000000000023 -S3154004A3F00000000000000000000000000000000013 -S3154004A4000000000000000000000000000000000002 -S3154004A41000000000000000000000000000000000F2 -S3154004A42000000000000000000000000000000000E2 -S3154004A43000000000000000000000000000000000D2 -S3154004A44000000000000000000000000000000000C2 -S3154004A45000000000000000000000000000000000B2 -S3154004A46000000000000000000000000000000000A2 -S3154004A4700000000000000000000000000000000092 -S3154004A4800000000000000000000000000000000082 -S3154004A4900000000000000000000000000000000072 -S3154004A4A00000000000000000000000000000000062 -S3154004A4B00000000000000000000000000000000052 -S3154004A4C00000000000000000000000000000000042 -S3154004A4D00000000000000000000000000000000032 -S3154004A4E00000000000000000000000000000000022 -S3154004A4F00000000000000000000000000000000012 -S3154004A5000000000000000000000000000000000001 -S3154004A51000000000000000000000000000000000F1 -S3154004A52000000000000000000000000000000000E1 -S3154004A53000000000000000000000000000000000D1 -S3154004A54000000000000000000000000000000000C1 -S3154004A55000000000000000000000000000000000B1 -S3154004A56000000000000000000000000000000000A1 -S3154004A5700000000000000000000000000000000091 -S3154004A5800000000000000000000000000000000081 -S3154004A5900000000000000000000000000000000071 -S3154004A5A00000000000000000000000000000000061 -S3154004A5B00000000000000000000000000000000051 -S3154004A5C00000000000000000000000000000000041 -S3154004A5D00000000000000000000000000000000031 -S3154004A5E00000000000000000000000000000000021 -S3154004A5F00000000000000000000000000000000011 -S3154004A6000000000000000000000000000000000000 -S3154004A61000000000000000000000000000000000F0 -S3154004A62000000000000000000000000000000000E0 -S3154004A63000000000000000000000000000000000D0 -S3154004A64000000000000000000000000000000000C0 -S3154004A65000000000000000000000000000000000B0 -S3154004A66000000000000000000000000000000000A0 -S3154004A6700000000000000000000000000000000090 -S3154004A6800000000000000000000000000000000080 -S3154004A6900000000000000000000000000000000070 -S3154004A6A00000000000000000000000000000000060 -S3154004A6B00000000000000000000000000000000050 -S3154004A6C00000000000000000000000000000000040 -S3154004A6D00000000000000000000000000000000030 -S3154004A6E00000000000000000000000000000000020 -S3154004A6F00000000000000000000000000000000010 -S3154004A70000000000000000000000000000000000FF -S3154004A71000000000000000000000000000000000EF -S3154004A72000000000000000000000000000000000DF -S3154004A73000000000000000000000000000000000CF -S3154004A74000000000000000000000000000000000BF -S3154004A75000000000000000000000000000000000AF -S3154004A760000000000000000000000000000000009F -S3154004A770000000000000000000000000000000008F -S3154004A780000000000000000000000000000000007F -S3154004A790000000000000000000000000000000006F -S3154004A7A0000000000000000000000000000000005F -S3154004A7B0000000000000000000000000000000004F -S3154004A7C0000000000000000000000000000000003F -S3154004A7D0000000000000000000000000000000002F -S3154004A7E0000000000000000000000000000000001F -S3154004A7F0000000000000000000000000000000000F -S3154004A80000000000000000000000000000000000FE -S3154004A81000000000000000000000000000000000EE -S3154004A82000000000000000000000000000000000DE -S3154004A83000000000000000000000000000000000CE -S3154004A84000000000000000000000000000000000BE -S3154004A85000000000000000000000000000000000AE -S3154004A860000000000000000000000000000000009E -S3154004A870000000000000000000000000000000008E -S3154004A880000000000000000000000000000000007E -S3154004A890000000000000000000000000000000006E -S3154004A8A0000000000000000000000000000000005E -S3154004A8B0000000000000000000000000000000004E -S3154004A8C0000000000000000000000000000000003E -S3154004A8D0000000000000000000000000000000002E -S3154004A8E0000000000000000000000000000000001E -S3154004A8F0000000000000000000000000000000000E -S3154004A90000000000000000000000000000000000FD -S3154004A91000000000000000000000000000000000ED -S3154004A92000000000000000000000000000000000DD -S3154004A93000000000000000000000000000000000CD -S3154004A94000000000000000000000000000000000BD -S3154004A95000000000000000000000000000000000AD -S3154004A960000000000000000000000000000000009D -S3154004A970000000000000000000000000000000008D -S3154004A980000000000000000000000000000000007D -S3154004A990000000000000000000000000000000006D -S3154004A9A0000000000000000000000000000000005D -S3154004A9B0000000000000000000000000000000004D -S3154004A9C0000000000000000000000000000000003D -S3154004A9D0000000000000000000000000000000002D -S3154004A9E0000000000000000000000000000000001D -S3154004A9F0000000000000000000000000000000000D -S3154004AA0000000000000000000000000000000000FC -S3154004AA1000000000000000000000000000000000EC -S3154004AA2000000000000000000000000000000000DC -S3154004AA3000000000000000000000000000000000CC -S3154004AA4000000000000000000000000000000000BC -S3154004AA5000000000000000000000000000000000AC -S3154004AA60000000000000000000000000000000009C -S3154004AA70000000000000000000000000000000008C -S3154004AA80000000000000000000000000000000007C -S3154004AA90000000000000000000000000000000006C -S3154004AAA0000000000000000000000000000000005C -S3154004AAB0000000000000000000000000000000004C -S3154004AAC0000000000000000000000000000000003C -S3154004AAD0000000000000000000000000000000002C -S3154004AAE0000000000000000000000000000000001C -S3154004AAF0000000000000000000000000000000000C -S3154004AB0000000000000000000000000000000000FB -S3154004AB1000000000000000000000000000000000EB -S3154004AB2000000000000000000000000000000000DB -S3154004AB3000000000000000000000000000000000CB -S3154004AB4000000000000000000000000000000000BB -S3154004AB5000000000000000000000000000000000AB -S3154004AB60000000000000000000000000000000009B -S3154004AB70000000000000000000000000000000008B -S3154004AB80000000000000000000000000000000007B -S3154004AB90000000000000000000000000000000006B -S3154004ABA0000000000000000000000000000000005B -S3154004ABB0000000000000000000000000000000004B -S3154004ABC0000000000000000000000000000000003B -S3154004ABD0000000000000000000000000000000002B -S3154004ABE0000000000000000000000000000000001B -S3154004ABF0000000000000000000000000000000000B -S3154004AC0000000000000000000000000000000000FA -S3154004AC1000000000000000000000000000000000EA -S3154004AC2000000000000000000000000000000000DA -S3154004AC3000000000000000000000000000000000CA -S3154004AC4000000000000000000000000000000000BA -S3154004AC5000000000000000000000000000000000AA -S3154004AC60000000000000000000000000000000009A -S3154004AC70000000000000000000000000000000008A -S3154004AC80000000000000000000000000000000007A -S3154004AC90000000000000000000000000000000006A -S3154004ACA0000000000000000000000000000000005A -S3154004ACB0000000000000000000000000000000004A -S3154004ACC0000000000000000000000000000000003A -S3154004ACD0000000000000000000000000000000002A -S3154004ACE0000000000000000000000000000000001A -S3154004ACF0000000000000000000000000000000000A -S3154004AD0000000000000000000000000000000000F9 -S3154004AD1000000000000000000000000000000000E9 -S3154004AD2000000000000000000000000000000000D9 -S3154004AD3000000000000000000000000000000000C9 -S3154004AD4000000000000000000000000000000000B9 -S3154004AD5000000000000000000000000000000000A9 -S3154004AD600000000000000000000000000000000099 -S3154004AD700000000000000000000000000000000089 -S3154004AD800000000000000000000000000000000079 -S3154004AD900000000000000000000000000000000069 -S3154004ADA00000000000000000000000000000000059 -S3154004ADB00000000000000000000000000000000049 -S3154004ADC00000000000000000000000000000000039 -S3154004ADD00000000000000000000000000000000029 -S3154004ADE00000000000000000000000000000000019 -S3154004ADF00000000000000000000000000000000009 -S3154004AE0000000000000000000000000000000000F8 -S3154004AE1000000000000000000000000000000000E8 -S3154004AE2000000000000000000000000000000000D8 -S3154004AE3000000000000000000000000000000000C8 -S3154004AE4000000000000000000000000000000000B8 -S3154004AE5000000000000000000000000000000000A8 -S3154004AE600000000000000000000000000000000098 -S3154004AE700000000000000000000000000000000088 -S3154004AE800000000000000000000000000000000078 -S3154004AE900000000000000000000000000000000068 -S3154004AEA00000000000000000000000000000000058 -S3154004AEB00000000000000000000000000000000048 -S3154004AEC00000000000000000000000000000000038 -S3154004AED00000000000000000000000000000000028 -S3154004AEE00000000000000000000000000000000018 -S3154004AEF00000000000000000000000000000000008 -S3154004AF0000000000000000000000000000000000F7 -S3154004AF1000000000000000000000000000000000E7 -S3154004AF2000000000000000000000000000000000D7 -S3154004AF3000000000000000000000000000000000C7 -S3154004AF4000000000000000000000000000000000B7 -S3154004AF5000000000000000000000000000000000A7 -S3154004AF600000000000000000000000000000000097 -S3154004AF700000000000000000000000000000000087 -S3154004AF800000000000000000000000000000000077 -S3154004AF900000000000000000000000000000000067 -S3154004AFA00000000000000000000000000000000057 -S3154004AFB00000000000000000000000000000000047 -S3154004AFC00000000000000000000000000000000037 -S3154004AFD00000000000000000000000000000000027 -S3154004AFE00000000000000000000000000000000017 -S3154004AFF00000000000000000000000000000000007 -S3154004B00000000000000000000000000000000000F6 -S3154004B01000000000000000000000000000000000E6 -S3154004B02000000000000000000000000000000000D6 -S3154004B03000000000000000000000000000000000C6 -S3154004B04000000000000000000000000000000000B6 -S3154004B05000000000000000000000000000000000A6 -S3154004B0600000000000000000000000000000000096 -S3154004B0700000000000000000000000000000000086 -S3154004B0800000000000000000000000000000000076 -S3154004B0900000000000000000000000000000000066 -S3154004B0A00000000000000000000000000000000056 -S3154004B0B00000000000000000000000000000000046 -S3154004B0C00000000000000000000000000000000036 -S3154004B0D00000000000000000000000000000000026 -S3154004B0E00000000000000000000000000000000016 -S3154004B0F00000000000000000000000000000000006 -S3154004B10000000000000000000000000000000000F5 -S3154004B11000000000000000000000000000000000E5 -S3154004B12000000000000000000000000000000000D5 -S3154004B13000000000000000000000000000000000C5 -S3154004B14000000000000000000000000000000000B5 -S3154004B15000000000000000000000000000000000A5 -S3154004B1600000000000000000000000000000000095 -S3154004B1700000000000000000000000000000000085 -S3154004B1800000000000000000000000000000000075 -S3154004B1900000000000000000000000000000000065 -S3154004B1A00000000000000000000000000000000055 -S3154004B1B00000000000000000000000000000000045 -S3154004B1C00000000000000000000000000000000035 -S3154004B1D00000000000000000000000000000000025 -S3154004B1E00000000000000000000000000000000015 -S3154004B1F00000000000000000000000000000000005 -S3154004B20000000000000000000000000000000000F4 -S3154004B21000000000000000000000000000000000E4 -S3154004B22000000000000000000000000000000000D4 -S3154004B23000000000000000000000000000000000C4 -S3154004B24000000000000000000000000000000000B4 -S3154004B25000000000000000000000000000000000A4 -S3154004B2600000000000000000000000000000000094 -S3154004B2700000000000000000000000000000000084 -S3154004B2800000000000000000000000000000000074 -S3154004B2900000000000000000000000000000000064 -S3154004B2A00000000000000000000000000000000054 -S3154004B2B00000000000000000000000000000000044 -S3154004B2C00000000000000000000000000000000034 -S3154004B2D00000000000000000000000000000000024 -S3154004B2E00000000000000000000000000000000014 -S3154004B2F00000000000000000000000000000000004 -S3154004B30000000000000000000000000000000000F3 -S3154004B31000000000000000000000000000000000E3 -S3154004B32000000000000000000000000000000000D3 -S3154004B33000000000000000000000000000000000C3 -S3154004B34000000000000000000000000000000000B3 -S3154004B35000000000000000000000000000000000A3 -S3154004B3600000000000000000000000000000000093 -S3154004B3700000000000000000000000000000000083 -S3154004B3800000000000000000000000000000000073 -S3154004B3900000000000000000000000000000000063 -S3154004B3A00000000000000000000000000000000053 -S3154004B3B00000000000000000000000000000000043 -S3154004B3C00000000000000000000000000000000033 -S3154004B3D00000000000000000000000000000000023 -S3154004B3E00000000000000000000000000000000013 -S3154004B3F00000000000000000000000000000000003 -S3154004B40000000000000000000000000000000000F2 -S3154004B41000000000000000000000000000000000E2 -S3154004B42000000000000000000000000000000000D2 -S3154004B43000000000000000000000000000000000C2 -S3154004B44000000000000000000000000000000000B2 -S3154004B45000000000000000000000000000000000A2 -S3154004B4600000000000000000000000000000000092 -S3154004B4700000000000000000000000000000000082 -S3154004B4800000000000000000000000000000000072 -S3154004B4900000000000000000000000000000000062 -S3154004B4A00000000000000000000000000000000052 -S3154004B4B00000000000000000000000000000000042 -S3154004B4C00000000000000000000000000000000032 -S3154004B4D00000000000000000000000000000000022 -S3154004B4E00000000000000000000000000000000012 -S3154004B4F00000000000000000000000000000000002 -S3154004B50000000000000000000000000000000000F1 -S3154004B51000000000000000000000000000000000E1 -S3154004B52000000000000000000000000000000000D1 -S3154004B53000000000000000000000000000000000C1 -S3154004B54000000000000000000000000000000000B1 -S3154004B55000000000000000000000000000000000A1 -S3154004B5600000000000000000000000000000000091 -S3154004B5700000000000000000000000000000000081 -S3154004B5800000000000000000000000000000000071 -S3154004B5900000000000000000000000000000000061 -S3154004B5A00000000000000000000000000000000051 -S3154004B5B00000000000000000000000000000000041 -S3154004B5C00000000000000000000000000000000031 -S3154004B5D00000000000000000000000000000000021 -S3154004B5E00000000000000000000000000000000011 -S3154004B5F00000000000000000000000000000000001 -S3154004B60000000000000000000000000000000000F0 -S3154004B61000000000000000000000000000000000E0 -S3154004B62000000000000000000000000000000000D0 -S3154004B63000000000000000000000000000000000C0 -S3154004B64000000000000000000000000000000000B0 -S3154004B65000000000000000000000000000000000A0 -S3154004B6600000000000000000000000000000000090 -S3154004B6700000000000000000000000000000000080 -S3154004B6800000000000000000000000000000000070 -S3154004B6900000000000000000000000000000000060 -S3154004B6A00000000000000000000000000000000050 -S3154004B6B00000000000000000000000000000000040 -S3154004B6C00000000000000000000000000000000030 -S3154004B6D00000000000000000000000000000000020 -S3154004B6E00000000000000000000000000000000010 -S3154004B6F00000000000000000000000000000000000 -S3154004B70000000000000000000000000000000000EF -S3154004B71000000000000000000000000000000000DF -S3154004B72000000000000000000000000000000000CF -S3154004B73000000000000000000000000000000000BF -S3154004B74000000000000000000000000000000000AF -S3154004B750000000000000000000000000000000009F -S3154004B760000000000000000000000000000000008F -S3154004B770000000000000000000000000000000007F -S3154004B780000000000000000000000000000000006F -S3154004B790000000000000000000000000000000005F -S3154004B7A0000000000000000000000000000000004F -S3154004B7B0000000000000000000000000000000003F -S3154004B7C0000000000000000000000000000000002F -S3154004B7D0000000000000000000000000000000001F -S3154004B7E0000000000000000000000000000000000F -S3154004B7F000000000000000000000000000000000FF -S3154004B80000000000000000000000000000000000EE -S3154004B81000000000000000000000000000000000DE -S3154004B82000000000000000000000000000000000CE -S3154004B83000000000000000000000000000000000BE -S3154004B84000000000000000000000000000000000AE -S3154004B850000000000000000000000000000000009E -S3154004B860000000000000000000000000000000008E -S3154004B870000000000000000000000000000000007E -S3154004B880000000000000000000000000000000006E -S3154004B890000000000000000000000000000000005E -S3154004B8A0000000000000000000000000000000004E -S3154004B8B0000000000000000000000000000000003E -S3154004B8C0000000000000000000000000000000002E -S3154004B8D0000000000000000000000000000000001E -S3154004B8E0000000000000000000000000000000000E -S3154004B8F000000000000000000000000000000000FE -S3154004B90000000000000000000000000000000000ED -S3154004B91000000000000000000000000000000000DD -S3154004B92000000000000000000000000000000000CD -S3154004B93000000000000000000000000000000000BD -S3154004B94000000000000000000000000000000000AD -S3154004B950000000000000000000000000000000009D -S3154004B960000000000000000000000000000000008D -S3154004B970000000000000000000000000000000007D -S3154004B980000000000000000000000000000000006D -S3154004B990000000000000000000000000000000005D -S3154004B9A0000000000000000000000000000000004D -S3154004B9B0000000000000000000000000000000003D -S3154004B9C0000000000000000000000000000000002D -S3154004B9D0000000000000000000000000000000001D -S3154004B9E0000000000000000000000000000000000D -S3154004B9F000000000000000000000000000000000FD -S3154004BA0000000000000000000000000000000000EC -S3154004BA1000000000000000000000000000000000DC -S3154004BA2000000000000000000000000000000000CC -S3154004BA3000000000000000000000000000000000BC -S3154004BA4000000000000000000000000000000000AC -S3154004BA50000000000000000000000000000000009C -S3154004BA60000000000000000000000000000000008C -S3154004BA70000000000000000000000000000000007C -S3154004BA80000000000000000000000000000000006C -S3154004BA90000000000000000000000000000000005C -S3154004BAA0000000000000000000000000000000004C -S3154004BAB0000000000000000000000000000000003C -S3154004BAC0000000000000000000000000000000002C -S3154004BAD0000000000000000000000000000000001C -S3154004BAE0000000000000000000000000000000000C -S3154004BAF000000000000000000000000000000000FC -S3154004BB0000000000000000000000000000000000EB -S3154004BB1000000000000000000000000000000000DB -S3154004BB2000000000000000000000000000000000CB -S3154004BB3000000000000000000000000000000000BB -S3154004BB4000000000000000000000000000000000AB -S3154004BB50000000000000000000000000000000009B -S3154004BB60000000000000000000000000000000008B -S3154004BB70000000000000000000000000000000007B -S3154004BB80000000000000000000000000000000006B -S3154004BB90000000000000000000000000000000005B -S3154004BBA0000000000000000000000000000000004B -S3154004BBB0000000000000000000000000000000003B -S3154004BBC0000000000000000000000000000000002B -S3154004BBD0000000000000000000000000000000001B -S3154004BBE0000000000000000000000000000000000B -S3154004BBF000000000000000000000000000000000FB -S3154004BC0000000000000000000000000000000000EA -S3154004BC1000000000000000000000000000000000DA -S3154004BC2000000000000000000000000000000000CA -S3154004BC3000000000000000000000000000000000BA -S3154004BC4000000000000000000000000000000000AA -S3154004BC50000000000000000000000000000000009A -S3154004BC60000000000000000000000000000000008A -S3154004BC70000000000000000000000000000000007A -S3154004BC80000000000000000000000000000000006A -S3154004BC90000000000000000000000000000000005A -S3154004BCA0000000000000000000000000000000004A -S3154004BCB0000000000000000000000000000000003A -S3154004BCC0000000000000000000000000000000002A -S3154004BCD0000000000000000000000000000000001A -S3154004BCE0000000000000000000000000000000000A -S3154004BCF000000000000000000000000000000000FA -S3154004BD0000000000000000000000000000000000E9 -S3154004BD1000000000000000000000000000000000D9 -S3154004BD2000000000000000000000000000000000C9 -S3154004BD3000000000000000000000000000000000B9 -S3154004BD4000000000000000000000000000000000A9 -S3154004BD500000000000000000000000000000000099 -S3154004BD600000000000000000000000000000000089 -S3154004BD700000000000000000000000000000000079 -S3154004BD800000000000000000000000000000000069 -S3154004BD900000000000000000000000000000000059 -S3154004BDA00000000000000000000000000000000049 -S3154004BDB00000000000000000000000000000000039 -S3154004BDC00000000000000000000000000000000029 -S3154004BDD00000000000000000000000000000000019 -S3154004BDE00000000000000000000000000000000009 -S3154004BDF000000000000000000000000000000000F9 -S3154004BE0000000000000000000000000000000000E8 -S3154004BE1000000000000000000000000000000000D8 -S3154004BE2000000000000000000000000000000000C8 -S3154004BE3000000000000000000000000000000000B8 -S3154004BE4000000000000000000000000000000000A8 -S3154004BE500000000000000000000000000000000098 -S3154004BE600000000000000000000000000000000088 -S3154004BE700000000000000000000000000000000078 -S3154004BE800000000000000000000000000000000068 -S3154004BE900000000000000000000000000000000058 -S3154004BEA00000000000000000000000000000000048 -S3154004BEB00000000000000000000000000000000038 -S3154004BEC00000000000000000000000000000000028 -S3154004BED00000000000000000000000000000000018 -S3154004BEE00000000000000000000000000000000008 -S3154004BEF000000000000000000000000000000000F8 -S3154004BF0000000000000000000000000000000000E7 -S3154004BF1000000000000000000000000000000000D7 -S3154004BF2000000000000000000000000000000000C7 -S3154004BF3000000000000000000000000000000000B7 -S3154004BF4000000000000000000000000000000000A7 -S3154004BF500000000000000000000000000000000097 -S3154004BF600000000000000000000000000000000087 -S3154004BF700000000000000000000000000000000077 -S3154004BF800000000000000000000000000000000067 -S3154004BF900000000000000000000000000000000057 -S3154004BFA00000000000000000000000000000000047 -S3154004BFB00000000000000000000000000000000037 -S3154004BFC00000000000000000000000000000000027 -S3154004BFD00000000000000000000000000000000017 -S3154004BFE00000000000000000000000000000000007 -S3154004BFF000000000000000000000000000000000F7 -S3154004C00000000000000000000000000000000000E6 -S3154004C01000000000000000000000000000000000D6 -S3154004C02000000000000000000000000000000000C6 -S3154004C03000000000000000000000000000000000B6 -S3154004C04000000000000000000000000000000000A6 -S3154004C0500000000000000000000000000000000096 -S3154004C0600000000000000000000000000000000086 -S3154004C0700000000000000000000000000000000076 -S3154004C0800000000000000000000000000000000066 -S3154004C0900000000000000000000000000000000056 -S3154004C0A00000000000000000000000000000000046 -S3154004C0B00000000000000000000000000000000036 -S3154004C0C00000000000000000000000000000000026 -S3154004C0D00000000000000000000000000000000016 -S3154004C0E00000000000000000000000000000000006 -S3154004C0F000000000000000000000000000000000F6 -S3154004C10000000000000000000000000000000000E5 -S3154004C11000000000000000000000000000000000D5 -S3154004C12000000000000000000000000000000000C5 -S3154004C13000000000000000000000000000000000B5 -S3154004C14000000000000000000000000000000000A5 -S3154004C1500000000000000000000000000000000095 -S3154004C1600000000000000000000000000000000085 -S3154004C1700000000000000000000000000000000075 -S3154004C1800000000000000000000000000000000065 -S3154004C1900000000000000000000000000000000055 -S3154004C1A00000000000000000000000000000000045 -S3154004C1B00000000000000000000000000000000035 -S3154004C1C00000000000000000000000000000000025 -S3154004C1D00000000000000000000000000000000015 -S3154004C1E00000000000000000000000000000000005 -S3154004C1F000000000000000000000000000000000F5 -S3154004C20000000000000000000000000000000000E4 -S3154004C21000000000000000000000000000000000D4 -S3154004C22000000000000000000000000000000000C4 -S3154004C23000000000000000000000000000000000B4 -S3154004C24000000000000000000000000000000000A4 -S3154004C2500000000000000000000000000000000094 -S3154004C2600000000000000000000000000000000084 -S3154004C2700000000000000000000000000000000074 -S3154004C2800000000000000000000000000000000064 -S3154004C2900000000000000000000000000000000054 -S3154004C2A00000000000000000000000000000000044 -S3154004C2B00000000000000000000000000000000034 -S3154004C2C00000000000000000000000000000000024 -S3154004C2D00000000000000000000000000000000014 -S3154004C2E00000000000000000000000000000000004 -S3154004C2F000000000000000000000000000000000F4 -S3154004C30000000000000000000000000000000000E3 -S3154004C31000000000000000000000000000000000D3 -S3154004C32000000000000000000000000000000000C3 -S3154004C33000000000000000000000000000000000B3 -S3154004C34000000000000000000000000000000000A3 -S3154004C3500000000000000000000000000000000093 -S3154004C3600000000000000000000000000000000083 -S3154004C3700000000000000000000000000000000073 -S3154004C3800000000000000000000000000000000063 -S3154004C3900000000000000000000000000000000053 -S3154004C3A00000000000000000000000000000000043 -S3154004C3B00000000000000000000000000000000033 -S3154004C3C00000000000000000000000000000000023 -S3154004C3D00000000000000000000000000000000013 -S3154004C3E00000000000000000000000000000000003 -S3154004C3F000000000000000000000000000000000F3 -S3154004C40000000000000000000000000000000000E2 -S3154004C41000000000000000000000000000000000D2 -S3154004C42000000000000000000000000000000000C2 -S3154004C43000000000000000000000000000000000B2 -S3154004C44000000000000000000000000000000000A2 -S3154004C4500000000000000000000000000000000092 -S3154004C4600000000000000000000000000000000082 -S3154004C4700000000000000000000000000000000072 -S3154004C4800000000000000000000000000000000062 -S3154004C4900000000000000000000000000000000052 -S3154004C4A00000000000000000000000000000000042 -S3154004C4B00000000000000000000000000000000032 -S3154004C4C00000000000000000000000000000000022 -S3154004C4D00000000000000000000000000000000012 -S3154004C4E00000000000000000000000000000000002 -S3154004C4F000000000000000000000000000000000F2 -S3154004C50000000000000000000000000000000000E1 -S3154004C51000000000000000000000000000000000D1 -S3154004C52000000000000000000000000000000000C1 -S3154004C53000000000000000000000000000000000B1 -S3154004C54000000000000000000000000000000000A1 -S3154004C5500000000000000000000000000000000091 -S3154004C5600000000000000000000000000000000081 -S3154004C5700000000000000000000000000000000071 -S3154004C5800000000000000000000000000000000061 -S3154004C5900000000000000000000000000000000051 -S3154004C5A00000000000000000000000000000000041 -S3154004C5B00000000000000000000000000000000031 -S3154004C5C00000000000000000000000000000000021 -S3154004C5D00000000000000000000000000000000011 -S3154004C5E00000000000000000000000000000000001 -S3154004C5F000000000000000000000000000000000F1 -S3154004C60000000000000000000000000000000000E0 -S3154004C61000000000000000000000000000000000D0 -S3154004C62000000000000000000000000000000000C0 -S3154004C63000000000000000000000000000000000B0 -S3154004C64000000000000000000000000000000000A0 -S3154004C6500000000000000000000000000000000090 -S3154004C6600000000000000000000000000000000080 -S3154004C6700000000000000000000000000000000070 -S3154004C6800000000000000000000000000000000060 -S3154004C6900000000000000000000000000000000050 -S3154004C6A00000000000000000000000000000000040 -S3154004C6B00000000000000000000000000000000030 -S3154004C6C00000000000000000000000000000000020 -S3154004C6D00000000000000000000000000000000010 -S3154004C6E00000000000000000000000000000000000 -S3154004C6F000000000000000000000000000000000F0 -S3154004C70000000000000000000000000000000000DF -S3154004C71000000000000000000000000000000000CF -S3154004C72000000000000000000000000000000000BF -S3154004C73000000000000000000000000000000000AF -S3154004C740000000000000000000000000000000009F -S3154004C750000000000000000000000000000000008F -S3154004C760000000000000000000000000000000007F -S3154004C770000000000000000000000000000000006F -S3154004C780000000000000000000000000000000005F -S3154004C790000000000000000000000000000000004F -S3154004C7A0000000000000000000000000000000003F -S3154004C7B0000000000000000000000000000000002F -S3154004C7C0000000000000000000000000000000001F -S3154004C7D0000000000000000000000000000000000F -S3154004C7E000000000000000000000000000000000FF -S3154004C7F000000000000000000000000000000000EF -S3154004C80000000000000000000000000000000000DE -S3154004C81000000000000000000000000000000000CE -S3154004C82000000000000000000000000000000000BE -S3154004C83000000000000000000000000000000000AE -S3154004C840000000000000000000000000000000009E -S3154004C850000000000000000000000000000000008E -S3154004C860000000000000000000000000000000007E -S3154004C870000000000000000000000000000000006E -S3154004C880000000000000000000000000000000005E -S3154004C890000000000000000000000000000000004E -S3154004C8A0000000000000000000000000000000003E -S3154004C8B0000000000000000000000000000000002E -S3154004C8C0000000000000000000000000000000001E -S3154004C8D0000000000000000000000000000000000E -S3154004C8E000000000000000000000000000000000FE -S3154004C8F000000000000000000000000000000000EE -S3154004C90000000000000000000000000000000000DD -S3154004C91000000000000000000000000000000000CD -S3154004C92000000000000000000000000000000000BD -S3154004C93000000000000000000000000000000000AD -S3154004C940000000000000000000000000000000009D -S3154004C950000000000000000000000000000000008D -S3154004C960000000000000000000000000000000007D -S3154004C970000000000000000000000000000000006D -S3154004C980000000000000000000000000000000005D -S3154004C990000000000000000000000000000000004D -S3154004C9A0000000000000000000000000000000003D -S3154004C9B0000000000000000000000000000000002D -S3154004C9C0000000000000000000000000000000001D -S3154004C9D0000000000000000000000000000000000D -S3154004C9E000000000000000000000000000000000FD -S3154004C9F000000000000000000000000000000000ED -S3154004CA0000000000000000000000000000000000DC -S3154004CA1000000000000000000000000000000000CC -S3154004CA2000000000000000000000000000000000BC -S3154004CA3000000000000000000000000000000000AC -S3154004CA40000000000000000000000000000000009C -S3154004CA50000000000000000000000000000000008C -S3154004CA60000000000000000000000000000000007C -S3154004CA70000000000000000000000000000000006C -S3154004CA80000000000000000000000000000000005C -S3154004CA90000000000000000000000000000000004C -S3154004CAA0000000000000000000000000000000003C -S3154004CAB0000000000000000000000000000000002C -S3154004CAC0000000000000000000000000000000001C -S3154004CAD0000000000000000000000000000000000C -S3154004CAE000000000000000000000000000000000FC -S3154004CAF000000000000000000000000000000000EC -S3154004CB0000000000000000000000000000000000DB -S3154004CB1000000000000000000000000000000000CB -S3154004CB2000000000000000000000000000000000BB -S3154004CB3000000000000000000000000000000000AB -S3154004CB40000000000000000000000000000000009B -S3154004CB50000000000000000000000000000000008B -S3154004CB60000000000000000000000000000000007B -S3154004CB70000000000000000000000000000000006B -S3154004CB80000000000000000000000000000000005B -S3154004CB90000000000000000000000000000000004B -S3154004CBA0000000000000000000000000000000003B -S3154004CBB0000000000000000000000000000000002B -S3154004CBC0000000000000000000000000000000001B -S3154004CBD0000000000000000000000000000000000B -S3154004CBE000000000000000000000000000000000FB -S3154004CBF000000000000000000000000000000000EB -S3154004CC0000000000000000000000000000000000DA -S3154004CC1000000000000000000000000000000000CA -S3154004CC2000000000000000000000000000000000BA -S3154004CC3000000000000000000000000000000000AA -S3154004CC40000000000000000000000000000000009A -S3154004CC50000000000000000000000000000000008A -S3154004CC60000000000000000000000000000000007A -S3154004CC70000000000000000000000000000000006A -S3154004CC80000000000000000000000000000000005A -S3154004CC90000000000000000000000000000000004A -S3154004CCA0000000000000000000000000000000003A -S3154004CCB0000000000000000000000000000000002A -S3154004CCC0000000000000000000000000000000001A -S3154004CCD0000000000000000000000000000000000A -S3154004CCE000000000000000000000000000000000FA -S3154004CCF000000000000000000000000000000000EA -S3154004CD0000000000000000000000000000000000D9 -S3154004CD1000000000000000000000000000000000C9 -S3154004CD2000000000000000000000000000000000B9 -S3154004CD3000000000000000000000000000000000A9 -S3154004CD400000000000000000000000000000000099 -S3154004CD500000000000000000000000000000000089 -S3154004CD600000000000000000000000000000000079 -S3154004CD700000000000000000000000000000000069 -S3154004CD800000000000000000000000000000000059 -S3154004CD900000000000000000000000000000000049 -S3154004CDA00000000000000000000000000000000039 -S3154004CDB00000000000000000000000000000000029 -S3154004CDC00000000000000000000000000000000019 -S3154004CDD00000000000000000000000000000000009 -S3154004CDE000000000000000000000000000000000F9 -S3154004CDF000000000000000000000000000000000E9 -S3154004CE0000000000000000000000000000000000D8 -S3154004CE1000000000000000000000000000000000C8 -S3154004CE2000000000000000000000000000000000B8 -S3154004CE3000000000000000000000000000000000A8 -S3154004CE400000000000000000000000000000000098 -S3154004CE500000000000000000000000000000000088 -S3154004CE600000000000000000000000000000000078 -S3154004CE700000000000000000000000000000000068 -S3154004CE800000000000000000000000000000000058 -S3154004CE900000000000000000000000000000000048 -S3154004CEA00000000000000000000000000000000038 -S3154004CEB00000000000000000000000000000000028 -S3154004CEC00000000000000000000000000000000018 -S3154004CED00000000000000000000000000000000008 -S3154004CEE000000000000000000000000000000000F8 -S3154004CEF000000000000000000000000000000000E8 -S3154004CF0000000000000000000000000000000000D7 -S3154004CF1000000000000000000000000000000000C7 -S3154004CF2000000000000000000000000000000000B7 -S3154004CF3000000000000000000000000000000000A7 -S3154004CF400000000000000000000000000000000097 -S3154004CF500000000000000000000000000000000087 -S3154004CF600000000000000000000000000000000077 -S3154004CF700000000000000000000000000000000067 -S3154004CF800000000000000000000000000000000057 -S3154004CF900000000000000000000000000000000047 -S3154004CFA00000000000000000000000000000000037 -S3154004CFB00000000000000000000000000000000027 -S3154004CFC00000000000000000000000000000000017 -S3154004CFD00000000000000000000000000000000007 -S3154004CFE000000000000000000000000000000000F7 -S3154004CFF000000000000000000000000000000000E7 -S3154004D00000000000000000000000000000000000D6 -S3154004D01000000000000000000000000000000000C6 -S3154004D02000000000000000000000000000000000B6 -S3154004D03000000000000000000000000000000000A6 -S3154004D0400000000000000000000000000000000096 -S3154004D0500000000000000000000000000000000086 -S3154004D0600000000000000000000000000000000076 -S3154004D0700000000000000000000000000000000066 -S3154004D0800000000000000000000000000000000056 -S3154004D0900000000000000000000000000000000046 -S3154004D0A00000000000000000000000000000000036 -S3154004D0B00000000000000000000000000000000026 -S3154004D0C00000000000000000000000000000000016 -S3154004D0D00000000000000000000000000000000006 -S3154004D0E000000000000000000000000000000000F6 -S3154004D0F000000000000000000000000000000000E6 -S3154004D10000000000000000000000000000000000D5 -S3154004D11000000000000000000000000000000000C5 -S3154004D12000000000000000000000000000000000B5 -S3154004D13000000000000000000000000000000000A5 -S3154004D1400000000000000000000000000000000095 -S3154004D1500000000000000000000000000000000085 -S3154004D1600000000000000000000000000000000075 -S3154004D1700000000000000000000000000000000065 -S3154004D1800000000000000000000000000000000055 -S3154004D1900000000000000000000000000000000045 -S3154004D1A00000000000000000000000000000000035 -S3154004D1B00000000000000000000000000000000025 -S3154004D1C00000000000000000000000000000000015 -S3154004D1D00000000000000000000000000000000005 -S3154004D1E000000000000000000000000000000000F5 -S3154004D1F000000000000000000000000000000000E5 -S3154004D20000000000000000000000000000000000D4 -S3154004D21000000000000000000000000000000000C4 -S3154004D22000000000000000000000000000000000B4 -S3154004D23000000000000000000000000000000000A4 -S3154004D2400000000000000000000000000000000094 -S3154004D2500000000000000000000000000000000084 -S3154004D2600000000000000000000000000000000074 -S3154004D2700000000000000000000000000000000064 -S3154004D2800000000000000000000000000000000054 -S3154004D2900000000000000000000000000000000044 -S3154004D2A00000000000000000000000000000000034 -S3154004D2B00000000000000000000000000000000024 -S3154004D2C00000000000000000000000000000000014 -S3154004D2D00000000000000000000000000000000004 -S3154004D2E000000000000000000000000000000000F4 -S3154004D2F000000000000000000000000000000000E4 -S3154004D30000000000000000000000000000000000D3 -S3154004D31000000000000000000000000000000000C3 -S3154004D32000000000000000000000000000000000B3 -S3154004D33000000000000000000000000000000000A3 -S3154004D3400000000000000000000000000000000093 -S3154004D3500000000000000000000000000000000083 -S3154004D3600000000000000000000000000000000073 -S3154004D3700000000000000000000000000000000063 -S3154004D3800000000000000000000000000000000053 -S3154004D3900000000000000000000000000000000043 -S3154004D3A00000000000000000000000000000000033 -S3154004D3B00000000000000000000000000000000023 -S3154004D3C00000000000000000000000000000000013 -S3154004D3D00000000000000000000000000000000003 -S3154004D3E000000000000000000000000000000000F3 -S3154004D3F000000000000000000000000000000000E3 -S3154004D40000000000000000000000000000000000D2 -S3154004D41000000000000000000000000000000000C2 -S3154004D42000000000000000000000000000000000B2 -S3154004D43000000000000000000000000000000000A2 -S3154004D4400000000000000000000000000000000092 -S3154004D4500000000000000000000000000000000082 -S3154004D4600000000000000000000000000000000072 -S3154004D4700000000000000000000000000000000062 -S3154004D4800000000000000000000000000000000052 -S3154004D4900000000000000000000000000000000042 -S3154004D4A00000000000000000000000000000000032 -S3154004D4B00000000000000000000000000000000022 -S3154004D4C00000000000000000000000000000000012 -S3154004D4D00000000000000000000000000000000002 -S3154004D4E000000000000000000000000000000000F2 -S3154004D4F000000000000000000000000000000000E2 -S3154004D50000000000000000000000000000000000D1 -S3154004D51000000000000000000000000000000000C1 -S3154004D52000000000000000000000000000000000B1 -S3154004D53000000000000000000000000000000000A1 -S3154004D5400000000000000000000000000000000091 -S3154004D5500000000000000000000000000000000081 -S3154004D5600000000000000000000000000000000071 -S3154004D5700000000000000000000000000000000061 -S3154004D5800000000000000000000000000000000051 -S3154004D5900000000000000000000000000000000041 -S3154004D5A00000000000000000000000000000000031 -S3154004D5B00000000000000000000000000000000021 -S3154004D5C00000000000000000000000000000000011 -S3154004D5D00000000000000000000000000000000001 -S3154004D5E000000000000000000000000000000000F1 -S3154004D5F000000000000000000000000000000000E1 -S3154004D60000000000000000000000000000000000D0 -S3154004D61000000000000000000000000000000000C0 -S3154004D62000000000000000000000000000000000B0 -S3154004D63000000000000000000000000000000000A0 -S3154004D6400000000000000000000000000000000090 -S3154004D6500000000000000000000000000000000080 -S3154004D6600000000000000000000000000000000070 -S3154004D6700000000000000000000000000000000060 -S3154004D6800000000000000000000000000000000050 -S3154004D6900000000000000000000000000000000040 -S3154004D6A00000000000000000000000000000000030 -S3154004D6B00000000000000000000000000000000020 -S3154004D6C00000000000000000000000000000000010 -S3154004D6D00000000000000000000000000000000000 -S3154004D6E000000000000000000000000000000000F0 -S3154004D6F000000000000000000000000000000000E0 -S3154004D70000000000000000000000000000000000CF -S3154004D71000000000000000000000000000000000BF -S3154004D72000000000000000000000000000000000AF -S3154004D730000000000000000000000000000000009F -S3154004D740000000000000000000000000000000008F -S3154004D750000000000000000000000000000000007F -S3154004D760000000000000000000000000000000006F -S3154004D770000000000000000000000000000000005F -S3154004D780000000000000000000000000000000004F -S3154004D790000000000000000000000000000000003F -S3154004D7A0000000000000000000000000000000002F -S3154004D7B0000000000000000000000000000000001F -S3154004D7C0000000000000000000000000000000000F -S3154004D7D000000000000000000000000000000000FF -S3154004D7E000000000000000000000000000000000EF -S3154004D7F000000000000000000000000000000000DF -S3154004D80000000000000000000000000000000000CE -S3154004D81000000000000000000000000000000000BE -S3154004D82000000000000000000000000000000000AE -S3154004D830000000000000000000000000000000009E -S3154004D840000000000000000000000000000000008E -S3154004D850000000000000000000000000000000007E -S3154004D860000000000000000000000000000000006E -S3154004D870000000000000000000000000000000005E -S3154004D880000000000000000000000000000000004E -S3154004D890000000000000000000000000000000003E -S3154004D8A0000000000000000000000000000000002E -S3154004D8B0000000000000000000000000000000001E -S3154004D8C0000000000000000000000000000000000E -S3154004D8D000000000000000000000000000000000FE -S3154004D8E000000000000000000000000000000000EE -S3154004D8F000000000000000000000000000000000DE -S3154004D90000000000000000000000000000000000CD -S3154004D91000000000000000000000000000000000BD -S3154004D92000000000000000000000000000000000AD -S3154004D930000000000000000000000000000000009D -S3154004D940000000000000000000000000000000008D -S3154004D950000000000000000000000000000000007D -S3154004D960000000000000000000000000000000006D -S3154004D970000000000000000000000000000000005D -S3154004D980000000000000000000000000000000004D -S3154004D990000000000000000000000000000000003D -S3154004D9A0000000000000000000000000000000002D -S3154004D9B0000000000000000000000000000000001D -S3154004D9C0000000000000000000000000000000000D -S3154004D9D000000000000000000000000000000000FD -S3154004D9E000000000000000000000000000000000ED -S3154004D9F000000000000000000000000000000000DD -S3154004DA0000000000000000000000000000000000CC -S3154004DA1000000000000000000000000000000000BC -S3154004DA2000000000000000000000000000000000AC -S3154004DA30000000000000000000000000000000009C -S3154004DA40000000000000000000000000000000008C -S3154004DA50000000000000000000000000000000007C -S3154004DA60000000000000000000000000000000006C -S3154004DA70000000000000000000000000000000005C -S3154004DA80000000000000000000000000000000004C -S3154004DA90000000000000000000000000000000003C -S3154004DAA0000000000000000000000000000000002C -S3154004DAB0000000000000000000000000000000001C -S3154004DAC0000000000000000000000000000000000C -S3154004DAD000000000000000000000000000000000FC -S3154004DAE000000000000000000000000000000000EC -S3154004DAF000000000000000000000000000000000DC -S3154004DB0000000000000000000000000000000000CB -S3154004DB1000000000000000000000000000000000BB -S3154004DB2000000000000000000000000000000000AB -S3154004DB30000000000000000000000000000000009B -S3154004DB40000000000000000000000000000000008B -S3154004DB50000000000000000000000000000000007B -S3154004DB60000000000000000000000000000000006B -S3154004DB70000000000000000000000000000000005B -S3154004DB80000000000000000000000000000000004B -S3154004DB90000000000000000000000000000000003B -S3154004DBA0000000000000000000000000000000002B -S3154004DBB0000000000000000000000000000000001B -S3154004DBC0000000000000000000000000000000000B -S3154004DBD000000000000000000000000000000000FB -S3154004DBE000000000000000000000000000000000EB -S3154004DBF000000000000000000000000000000000DB -S3154004DC0000000000000000000000000000000000CA -S3154004DC1000000000000000000000000000000000BA -S3154004DC2000000000000000000000000000000000AA -S3154004DC30000000000000000000000000000000009A -S3154004DC40000000000000000000000000000000008A -S3154004DC50000000000000000000000000000000007A -S3154004DC60000000000000000000000000000000006A -S3154004DC70000000000000000000000000000000005A -S3154004DC80000000000000000000000000000000004A -S3154004DC90000000000000000000000000000000003A -S3154004DCA0000000000000000000000000000000002A -S3154004DCB0000000000000000000000000000000001A -S3154004DCC0000000000000000000000000000000000A -S3154004DCD000000000000000000000000000000000FA -S3154004DCE000000000000000000000000000000000EA -S3154004DCF000000000000000000000000000000000DA -S3154004DD0000000000000000000000000000000000C9 -S3154004DD1000000000000000000000000000000000B9 -S3154004DD2000000000000000000000000000000000A9 -S3154004DD300000000000000000000000000000000099 -S3154004DD400000000000000000000000000000000089 -S3154004DD500000000000000000000000000000000079 -S3154004DD600000000000000000000000000000000069 -S3154004DD700000000000000000000000000000000059 -S3154004DD800000000000000000000000000000000049 -S3154004DD900000000000000000000000000000000039 -S3154004DDA00000000000000000000000000000000029 -S3154004DDB00000000000000000000000000000000019 -S3154004DDC00000000000000000000000000000000009 -S3154004DDD000000000000000000000000000000000F9 -S3154004DDE000000000000000000000000000000000E9 -S3154004DDF000000000000000000000000000000000D9 -S3154004DE0000000000000000000000000000000000C8 -S3154004DE1000000000000000000000000000000000B8 -S3154004DE2000000000000000000000000000000000A8 -S3154004DE300000000000000000000000000000000098 -S3154004DE400000000000000000000000000000000088 -S3154004DE500000000000000000000000000000000078 -S3154004DE600000000000000000000000000000000068 -S3154004DE700000000000000000000000000000000058 -S3154004DE800000000000000000000000000000000048 -S3154004DE900000000000000000000000000000000038 -S3154004DEA00000000000000000000000000000000028 -S3154004DEB00000000000000000000000000000000018 -S3154004DEC00000000000000000000000000000000008 -S3154004DED000000000000000000000000000000000F8 -S3154004DEE000000000000000000000000000000000E8 -S3154004DEF000000000000000000000000000000000D8 -S3154004DF0000000000000000000000000000000000C7 -S3154004DF1000000000000000000000000000000000B7 -S3154004DF2000000000000000000000000000000000A7 -S3154004DF300000000000000000000000000000000097 -S3154004DF400000000000000000000000000000000087 -S3154004DF500000000000000000000000000000000077 -S3154004DF600000000000000000000000000000000067 -S3154004DF700000000000000000000000000000000057 -S3154004DF800000000000000000000000000000000047 -S3154004DF900000000000000000000000000000000037 -S3154004DFA00000000000000000000000000000000027 -S3154004DFB00000000000000000000000000000000017 -S3154004DFC00000000000000000000000000000000007 -S3154004DFD000000000000000000000000000000000F7 -S3154004DFE000000000000000000000000000000000E7 -S3154004DFF000000000000000000000000000000000D7 -S3154004E00000000000000000000000000000000000C6 -S3154004E01000000000000000000000000000000000B6 -S3154004E02000000000000000000000000000000000A6 -S3154004E0300000000000000000000000000000000096 -S3154004E0400000000000000000000000000000000086 -S3154004E0500000000000000000000000000000000076 -S3154004E0600000000000000000000000000000000066 -S3154004E0700000000000000000000000000000000056 -S3154004E0800000000000000000000000000000000046 -S3154004E0900000000000000000000000000000000036 -S3154004E0A00000000000000000000000000000000026 -S3154004E0B00000000000000000000000000000000016 -S3154004E0C00000000000000000000000000000000006 -S3154004E0D000000000000000000000000000000000F6 -S3154004E0E000000000000000000000000000000000E6 -S3154004E0F000000000000000000000000000000000D6 -S3154004E10000000000000000000000000000000000C5 -S3154004E11000000000000000000000000000000000B5 -S3154004E12000000000000000000000000000000000A5 -S3154004E1300000000000000000000000000000000095 -S3154004E1400000000000000000000000000000000085 -S3154004E1500000000000000000000000000000000075 -S3154004E1600000000000000000000000000000000065 -S3154004E1700000000000000000000000000000000055 -S3154004E1800000000000000000000000000000000045 -S3154004E1900000000000000000000000000000000035 -S3154004E1A00000000000000000000000000000000025 -S3154004E1B00000000000000000000000000000000015 -S3154004E1C00000000000000000000000000000000005 -S3154004E1D000000000000000000000000000000000F5 -S3154004E1E000000000000000000000000000000000E5 -S3154004E1F000000000000000000000000000000000D5 -S3154004E20000000000000000000000000000000000C4 -S3154004E21000000000000000000000000000000000B4 -S3154004E22000000000000000000000000000000000A4 -S3154004E2300000000000000000000000000000000094 -S3154004E2400000000000000000000000000000000084 -S3154004E2500000000000000000000000000000000074 -S3154004E2600000000000000000000000000000000064 -S3154004E2700000000000000000000000000000000054 -S3154004E2800000000000000000000000000000000044 -S3154004E2900000000000000000000000000000000034 -S3154004E2A00000000000000000000000000000000024 -S3154004E2B00000000000000000000000000000000014 -S3154004E2C00000000000000000000000000000000004 -S3154004E2D000000000000000000000000000000000F4 -S3154004E2E000000000000000000000000000000000E4 -S3154004E2F000000000000000000000000000000000D4 -S3154004E30000000000000000000000000000000000C3 -S3154004E31000000000000000000000000000000000B3 -S3154004E32000000000000000000000000000000000A3 -S3154004E3300000000000000000000000000000000093 -S3154004E3400000000000000000000000000000000083 -S3154004E3500000000000000000000000000000000073 -S3154004E3600000000000000000000000000000000063 -S3154004E3700000000000000000000000000000000053 -S3154004E3800000000000000000000000000000000043 -S3154004E3900000000000000000000000000000000033 -S3154004E3A00000000000000000000000000000000023 -S3154004E3B00000000000000000000000000000000013 -S3154004E3C00000000000000000000000000000000003 -S3154004E3D000000000000000000000000000000000F3 -S3154004E3E000000000000000000000000000000000E3 -S3154004E3F000000000000000000000000000000000D3 -S3154004E40000000000000000000000000000000000C2 -S3154004E41000000000000000000000000000000000B2 -S3154004E42000000000000000000000000000000000A2 -S3154004E4300000000000000000000000000000000092 -S3154004E4400000000000000000000000000000000082 -S3154004E4500000000000000000000000000000000072 -S3154004E4600000000000000000000000000000000062 -S3154004E4700000000000000000000000000000000052 -S3154004E4800000000000000000000000000000000042 -S3154004E4900000000000000000000000000000000032 -S3154004E4A00000000000000000000000000000000022 -S3154004E4B00000000000000000000000000000000012 -S3154004E4C00000000000000000000000000000000002 -S3154004E4D000000000000000000000000000000000F2 -S3154004E4E000000000000000000000000000000000E2 -S3154004E4F000000000000000000000000000000000D2 -S3154004E50000000000000000000000000000000000C1 -S3154004E51000000000000000000000000000000000B1 -S3154004E52000000000000000000000000000000000A1 -S3154004E5300000000000000000000000000000000091 -S3154004E5400000000000000000000000000000000081 -S3154004E5500000000000000000000000000000000071 -S3154004E5600000000000000000000000000000000061 -S3154004E5700000000000000000000000000000000051 -S3154004E5800000000000000000000000000000000041 -S3154004E5900000000000000000000000000000000031 -S3154004E5A00000000000000000000000000000000021 -S3154004E5B00000000000000000000000000000000011 -S3154004E5C00000000000000000000000000000000001 -S3154004E5D000000000000000000000000000000000F1 -S3154004E5E000000000000000000000000000000000E1 -S3154004E5F000000000000000000000000000000000D1 -S3154004E60000000000000000000000000000000000C0 -S3154004E61000000000000000000000000000000000B0 -S3154004E62000000000000000000000000000000000A0 -S3154004E6300000000000000000000000000000000090 -S3154004E6400000000000000000000000000000000080 -S3154004E6500000000000000000000000000000000070 -S3154004E6600000000000000000000000000000000060 -S3154004E6700000000000000000000000000000000050 -S3154004E6800000000000000000000000000000000040 -S3154004E6900000000000000000000000000000000030 -S3154004E6A00000000000000000000000000000000020 -S3154004E6B00000000000000000000000000000000010 -S3154004E6C00000000000000000000000000000000000 -S3154004E6D000000000000000000000000000000000F0 -S3154004E6E000000000000000000000000000000000E0 -S3154004E6F000000000000000000000000000000000D0 -S3154004E70000000000000000000000000000000000BF -S3154004E71000000000000000000000000000000000AF -S3154004E720000000000000000000000000000000009F -S3154004E730000000000000000000000000000000008F -S3154004E740000000000000000000000000000000007F -S3154004E750000000000000000000000000000000006F -S3154004E760000000000000000000000000000000005F -S3154004E770000000000000000000000000000000004F -S3154004E780000000000000000000000000000000003F -S3154004E790000000000000000000000000000000002F -S3154004E7A0000000000000000000000000000000001F -S3154004E7B0000000000000000000000000000000000F -S3154004E7C000000000000000000000000000000000FF -S3154004E7D000000000000000000000000000000000EF -S3154004E7E000000000000000000000000000000000DF -S3154004E7F000000000000000000000000000000000CF -S3154004E80000000000000000000000000000000000BE -S3154004E81000000000000000000000000000000000AE -S3154004E820000000000000000000000000000000009E -S3154004E830000000000000000000000000000000008E -S3154004E840000000000000000000000000000000007E -S3154004E850000000000000000000000000000000006E -S3154004E860000000000000000000000000000000005E -S3154004E870000000000000000000000000000000004E -S3154004E880000000000000000000000000000000003E -S3154004E890000000000000000000000000000000002E -S3154004E8A0000000000000000000000000000000001E -S3154004E8B0000000000000000000000000000000000E -S3154004E8C000000000000000000000000000000000FE -S3154004E8D000000000000000000000000000000000EE -S3154004E8E000000000000000000000000000000000DE -S3154004E8F000000000000000000000000000000000CE -S3154004E90000000000000000000000000000000000BD -S3154004E91000000000000000000000000000000000AD -S3154004E920000000000000000000000000000000009D -S3154004E930000000000000000000000000000000008D -S3154004E940000000000000000000000000000000007D -S3154004E950000000000000000000000000000000006D -S3154004E960000000000000000000000000000000005D -S3154004E970000000000000000000000000000000004D -S3154004E980000000000000000000000000000000003D -S3154004E990000000000000000000000000000000002D -S3154004E9A0000000000000000000000000000000001D -S3154004E9B0000000000000000000000000000000000D -S3154004E9C000000000000000000000000000000000FD -S3154004E9D000000000000000000000000000000000ED -S3154004E9E000000000000000000000000000000000DD -S3154004E9F000000000000000000000000000000000CD -S3154004EA0000000000000000000000000000000000BC -S3154004EA1000000000000000000000000000000000AC -S3154004EA20000000000000000000000000000000009C -S3154004EA30000000000000000000000000000000008C -S3154004EA40000000000000000000000000000000007C -S3154004EA50000000000000000000000000000000006C -S3154004EA60000000000000000000000000000000005C -S3154004EA70000000000000000000000000000000004C -S3154004EA80000000000000000000000000000000003C -S3154004EA90000000000000000000000000000000002C -S3154004EAA0000000000000000000000000000000001C -S3154004EAB0000000000000000000000000000000000C -S3154004EAC000000000000000000000000000000000FC -S3154004EAD000000000000000000000000000000000EC -S3154004EAE000000000000000000000000000000000DC -S3154004EAF000000000000000000000000000000000CC -S3154004EB0000000000000000000000000000000000BB -S3154004EB1000000000000000000000000000000000AB -S3154004EB20000000000000000000000000000000009B -S3154004EB30000000000000000000000000000000008B -S3154004EB40000000000000000000000000000000007B -S3154004EB50000000000000000000000000000000006B -S3154004EB60000000000000000000000000000000005B -S3154004EB70000000000000000000000000000000004B -S3154004EB80000000000000000000000000000000003B -S3154004EB90000000000000000000000000000000002B -S3154004EBA0000000000000000000000000000000001B -S3154004EBB0000000000000000000000000000000000B -S3154004EBC000000000000000000000000000000000FB -S3154004EBD000000000000000000000000000000000EB -S3154004EBE000000000000000000000000000000000DB -S3154004EBF000000000000000000000000000000000CB -S3154004EC0000000000000000000000000000000000BA -S3154004EC1000000000000000000000000000000000AA -S3154004EC20000000000000000000000000000000009A -S3154004EC30000000000000000000000000000000008A -S3154004EC40000000000000000000000000000000007A -S3154004EC50000000000000000000000000000000006A -S3154004EC60000000000000000000000000000000005A -S3154004EC70000000000000000000000000000000004A -S3154004EC80000000000000000000000000000000003A -S3154004EC90000000000000000000000000000000002A -S3154004ECA0000000000000000000000000000000001A -S3154004ECB0000000000000000000000000000000000A -S3154004ECC000000000000000000000000000000000FA -S3154004ECD000000000000000000000000000000000EA -S3154004ECE000000000000000000000000000000000DA -S3154004ECF000000000000000000000000000000000CA -S3154004ED0000000000000000000000000000000000B9 -S3154004ED1000000000000000000000000000000000A9 -S3154004ED200000000000000000000000000000000099 -S3154004ED300000000000000000000000000000000089 -S3154004ED400000000000000000000000000000000079 -S3154004ED500000000000000000000000000000000069 -S3154004ED600000000000000000000000000000000059 -S3154004ED700000000000000000000000000000000049 -S3154004ED800000000000000000000000000000000039 -S3154004ED900000000000000000000000000000000029 -S3154004EDA00000000000000000000000000000000019 -S3154004EDB00000000000000000000000000000000009 -S3154004EDC000000000000000000000000000000000F9 -S3154004EDD000000000000000000000000000000000E9 -S3154004EDE000000000000000000000000000000000D9 -S3154004EDF000000000000000000000000000000000C9 -S3154004EE0000000000000000000000000000000000B8 -S3154004EE1000000000000000000000000000000000A8 -S3154004EE200000000000000000000000000000000098 -S3154004EE300000000000000000000000000000000088 -S3154004EE400000000000000000000000000000000078 -S3154004EE500000000000000000000000000000000068 -S3154004EE600000000000000000000000000000000058 -S3154004EE700000000000000000000000000000000048 -S3154004EE800000000000000000000000000000000038 -S3154004EE900000000000000000000000000000000028 -S3154004EEA00000000000000000000000000000000018 -S3154004EEB00000000000000000000000000000000008 -S3154004EEC000000000000000000000000000000000F8 -S3154004EED000000000000000000000000000000000E8 -S3154004EEE000000000000000000000000000000000D8 -S3154004EEF000000000000000000000000000000000C8 -S3154004EF0000000000000000000000000000000000B7 -S3154004EF1000000000000000000000000000000000A7 -S3154004EF200000000000000000000000000000000097 -S3154004EF300000000000000000000000000000000087 -S3154004EF400000000000000000000000000000000077 -S3154004EF500000000000000000000000000000000067 -S3154004EF600000000000000000000000000000000057 -S3154004EF700000000000000000000000000000000047 -S3154004EF800000000000000000000000000000000037 -S3154004EF900000000000000000000000000000000027 -S3154004EFA00000000000000000000000000000000017 -S3154004EFB00000000000000000000000000000000007 -S3154004EFC000000000000000000000000000000000F7 -S3154004EFD000000000000000000000000000000000E7 -S3154004EFE000000000000000000000000000000000D7 -S3154004EFF000000000000000000000000000000000C7 -S3154004F00000000000000000000000000000000000B6 -S3154004F01000000000000000000000000000000000A6 -S3154004F0200000000000000000000000000000000096 -S3154004F0300000000000000000000000000000000086 -S3154004F0400000000000000000000000000000000076 -S3154004F0500000000000000000000000000000000066 -S3154004F0600000000000000000000000000000000056 -S3154004F0700000000000000000000000000000000046 -S3154004F0800000000000000000000000000000000036 -S3154004F0900000000000000000000000000000000026 -S3154004F0A00000000000000000000000000000000016 -S3154004F0B00000000000000000000000000000000006 -S3154004F0C000000000000000000000000000000000F6 -S3154004F0D000000000000000000000000000000000E6 -S3154004F0E000000000000000000000000000000000D6 -S3154004F0F000000000000000000000000000000000C6 -S3154004F10000000000000000000000000000000000B5 -S3154004F11000000000000000000000000000000000A5 -S3154004F1200000000000000000000000000000000095 -S3154004F1300000000000000000000000000000000085 -S3154004F1400000000000000000000000000000000075 -S3154004F1500000000000000000000000000000000065 -S3154004F1600000000000000000000000000000000055 -S3154004F1700000000000000000000000000000000045 -S3154004F1800000000000000000000000000000000035 -S3154004F1900000000000000000000000000000000025 -S3154004F1A00000000000000000000000000000000015 -S3154004F1B00000000000000000000000000000000005 -S3154004F1C000000000000000000000000000000000F5 -S3154004F1D000000000000000000000000000000000E5 -S3154004F1E000000000000000000000000000000000D5 -S3154004F1F000000000000000000000000000000000C5 -S3154004F20000000000000000000000000000000000B4 -S3154004F21000000000000000000000000000000000A4 -S3154004F2200000000000000000000000000000000094 -S3154004F2300000000000000000000000000000000084 -S3154004F2400000000000000000000000000000000074 -S3154004F2500000000000000000000000000000000064 -S3154004F2600000000000000000000000000000000054 -S3154004F2700000000000000000000000000000000044 -S3154004F2800000000000000000000000000000000034 -S3154004F2900000000000000000000000000000000024 -S3154004F2A00000000000000000000000000000000014 -S3154004F2B00000000000000000000000000000000004 -S3154004F2C000000000000000000000000000000000F4 -S3154004F2D000000000000000000000000000000000E4 -S3154004F2E000000000000000000000000000000000D4 -S3154004F2F000000000000000000000000000000000C4 -S3154004F30000000000000000000000000000000000B3 -S3154004F31000000000000000000000000000000000A3 -S3154004F3200000000000000000000000000000000093 -S3154004F3300000000000000000000000000000000083 -S3154004F3400000000000000000000000000000000073 -S3154004F3500000000000000000000000000000000063 -S3154004F3600000000000000000000000000000000053 -S3154004F3700000000000000000000000000000000043 -S3154004F3800000000000000000000000000000000033 -S3154004F3900000000000000000000000000000000023 -S3154004F3A00000000000000000000000000000000013 -S3154004F3B00000000000000000000000000000000003 -S3154004F3C000000000000000000000000000000000F3 -S3154004F3D000000000000000000000000000000000E3 -S3154004F3E000000000000000000000000000000000D3 -S3154004F3F000000000000000000000000000000000C3 -S3154004F40000000000000000000000000000000000B2 -S3154004F41000000000000000000000000000000000A2 -S3154004F4200000000000000000000000000000000092 -S3154004F4300000000000000000000000000000000082 -S3154004F4400000000000000000000000000000000072 -S3154004F4500000000000000000000000000000000062 -S3154004F4600000000000000000000000000000000052 -S3154004F4700000000000000000000000000000000042 -S3154004F4800000000000000000000000000000000032 -S3154004F4900000000000000000000000000000000022 -S3154004F4A00000000000000000000000000000000012 -S3154004F4B00000000000000000000000000000000002 -S3154004F4C000000000000000000000000000000000F2 -S3154004F4D000000000000000000000000000000000E2 -S3154004F4E000000000000000000000000000000000D2 -S3154004F4F000000000000000000000000000000000C2 -S3154004F50000000000000000000000000000000000B1 -S3154004F51000000000000000000000000000000000A1 -S3154004F5200000000000000000000000000000000091 -S3154004F5300000000000000000000000000000000081 -S3154004F5400000000000000000000000000000000071 -S3154004F5500000000000000000000000000000000061 -S3154004F5600000000000000000000000000000000051 -S3154004F5700000000000000000000000000000000041 -S3154004F5800000000000000000000000000000000031 -S3154004F5900000000000000000000000000000000021 -S3154004F5A00000000000000000000000000000000011 -S3154004F5B00000000000000000000000000000000001 -S3154004F5C000000000000000000000000000000000F1 -S3154004F5D000000000000000000000000000000000E1 -S3154004F5E000000000000000000000000000000000D1 -S3154004F5F000000000000000000000000000000000C1 -S3154004F60000000000000000000000000000000000B0 -S3154004F61000000000000000000000000000000000A0 -S3154004F6200000000000000000000000000000000090 -S3154004F6300000000000000000000000000000000080 -S3154004F6400000000000000000000000000000000070 -S3154004F6500000000000000000000000000000000060 -S3154004F6600000000000000000000000000000000050 -S3154004F6700000000000000000000000000000000040 -S3154004F6800000000000000000000000000000000030 -S3154004F6900000000000000000000000000000000020 -S3154004F6A00000000000000000000000000000000010 -S3154004F6B00000000000000000000000000000000000 -S3154004F6C000000000000000000000000000000000F0 -S3154004F6D000000000000000000000000000000000E0 -S3154004F6E000000000000000000000000000000000D0 -S3154004F6F000000000000000000000000000000000C0 -S3154004F70000000000000000000000000000000000AF -S3154004F710000000000000000000000000000000009F -S3154004F720000000000000000000000000000000008F -S3154004F730000000000000000000000000000000007F -S3154004F740000000000000000000000000000000006F -S3154004F750000000000000000000000000000000005F -S3154004F760000000000000000000000000000000004F -S3154004F770000000000000000000000000000000003F -S3154004F780000000000000000000000000000000002F -S3154004F790000000000000000000000000000000001F -S3154004F7A0000000000000000000000000000000000F -S3154004F7B000000000000000000000000000000000FF -S3154004F7C000000000000000000000000000000000EF -S3154004F7D000000000000000000000000000000000DF -S3154004F7E000000000000000000000000000000000CF -S3154004F7F000000000000000000000000000000000BF -S3154004F80000000000000000000000000000000000AE -S3154004F810000000000000000000000000000000009E -S3154004F820000000000000000000000000000000008E -S3154004F830000000000000000000000000000000007E -S3154004F840000000000000000000000000000000006E -S3154004F850000000000000000000000000000000005E -S3154004F860000000000000000000000000000000004E -S3154004F870000000000000000000000000000000003E -S3154004F880000000000000000000000000000000002E -S3154004F890000000000000000000000000000000001E -S3154004F8A0000000000000000000000000000000000E -S3154004F8B000000000000000000000000000000000FE -S3154004F8C000000000000000000000000000000000EE -S3154004F8D000000000000000000000000000000000DE -S3154004F8E000000000000000000000000000000000CE -S3154004F8F000000000000000000000000000000000BE -S3154004F90000000000000000000000000000000000AD -S3154004F910000000000000000000000000000000009D -S3154004F920000000000000000000000000000000008D -S3154004F930000000000000000000000000000000007D -S3154004F940000000000000000000000000000000006D -S3154004F950000000000000000000000000000000005D -S3154004F960000000000000000000000000000000004D -S3154004F970000000000000000000000000000000003D -S3154004F980000000000000000000000000000000002D -S3154004F990000000000000000000000000000000001D -S3154004F9A0000000000000000000000000000000000D -S3154004F9B000000000000000000000000000000000FD -S3154004F9C000000000000000000000000000000000ED -S3154004F9D000000000000000000000000000000000DD -S3154004F9E000000000000000000000000000000000CD -S3154004F9F000000000000000000000000000000000BD -S3154004FA0000000000000000000000000000000000AC -S3154004FA10000000000000000000000000000000009C -S3154004FA20000000000000000000000000000000008C -S3154004FA30000000000000000000000000000000007C -S3154004FA40000000000000000000000000000000006C -S3154004FA50000000000000000000000000000000005C -S3154004FA60000000000000000000000000000000004C -S3154004FA70000000000000000000000000000000003C -S3154004FA80000000000000000000000000000000002C -S3154004FA90000000000000000000000000000000001C -S3154004FAA0000000000000000000000000000000000C -S3154004FAB000000000000000000000000000000000FC -S3154004FAC000000000000000000000000000000000EC -S3154004FAD000000000000000000000000000000000DC -S3154004FAE000000000000000000000000000000000CC -S3154004FAF000000000000000000000000000000000BC -S3154004FB0000000000000000000000000000000000AB -S3154004FB10000000000000000000000000000000009B -S3154004FB20000000000000000000000000000000008B -S3154004FB30000000000000000000000000000000007B -S3154004FB40000000000000000000000000000000006B -S3154004FB50000000000000000000000000000000005B -S3154004FB60000000000000000000000000000000004B -S3154004FB70000000000000000000000000000000003B -S3154004FB80000000000000000000000000000000002B -S3154004FB90000000000000000000000000000000001B -S3154004FBA0000000000000000000000000000000000B -S3154004FBB000000000000000000000000000000000FB -S3154004FBC000000000000000000000000000000000EB -S3154004FBD000000000000000000000000000000000DB -S3154004FBE000000000000000000000000000000000CB -S3154004FBF000000000000000000000000000000000BB -S3154004FC0000000000000000000000000000000000AA -S3154004FC10000000000000000000000000000000009A -S3154004FC20000000000000000000000000000000008A -S3154004FC30000000000000000000000000000000007A -S3154004FC40000000000000000000000000000000006A -S3154004FC50000000000000000000000000000000005A -S3154004FC60000000000000000000000000000000004A -S3154004FC70000000000000000000000000000000003A -S3154004FC80000000000000000000000000000000002A -S3154004FC90000000000000000000000000000000001A -S3154004FCA0000000000000000000000000000000000A -S3154004FCB000000000000000000000000000000000FA -S3154004FCC000000000000000000000000000000000EA -S3154004FCD000000000000000000000000000000000DA -S3154004FCE000000000000000000000000000000000CA -S3154004FCF000000000000000000000000000000000BA -S3154004FD0000000000000000000000000000000000A9 -S3154004FD100000000000000000000000000000000099 -S3154004FD200000000000000000000000000000000089 -S3154004FD300000000000000000000000000000000079 -S3154004FD400000000000000000000000000000000069 -S3154004FD500000000000000000000000000000000059 -S3154004FD600000000000000000000000000000000049 -S3154004FD700000000000000000000000000000000039 -S3154004FD800000000000000000000000000000000029 -S3154004FD900000000000000000000000000000000019 -S3154004FDA00000000000000000000000000000000009 -S3154004FDB000000000000000000000000000000000F9 -S3154004FDC000000000000000000000000000000000E9 -S3154004FDD000000000000000000000000000000000D9 -S3154004FDE000000000000000000000000000000000C9 -S3154004FDF000000000000000000000000000000000B9 -S3154004FE0000000000000000000000000000000000A8 -S3154004FE100000000000000000000000000000000098 -S3154004FE200000000000000000000000000000000088 -S3154004FE300000000000000000000000000000000078 -S3154004FE400000000000000000000000000000000068 -S3154004FE500000000000000000000000000000000058 -S3154004FE600000000000000000000000000000000048 -S3154004FE700000000000000000000000000000000038 -S3154004FE800000000000000000000000000000000028 -S3154004FE900000000000000000000000000000000018 -S3154004FEA00000000000000000000000000000000008 -S3154004FEB000000000000000000000000000000000F8 -S3154004FEC000000000000000000000000000000000E8 -S3154004FED000000000000000000000000000000000D8 -S3154004FEE000000000000000000000000000000000C8 -S3154004FEF000000000000000000000000000000000B8 -S3154004FF0000000000000000000000000000000000A7 -S3154004FF100000000000000000000000000000000097 -S3154004FF200000000000000000000000000000000087 -S3154004FF300000000000000000000000000000000077 -S3154004FF400000000000000000000000000000000067 -S3154004FF500000000000000000000000000000000057 -S3154004FF600000000000000000000000000000000047 -S3154004FF700000000000000000000000000000000037 -S3154004FF800000000000000000000000000000000027 -S3154004FF900000000000000000000000000000000017 -S3154004FFA00000000000000000000000000000000007 -S3154004FFB000000000000000000000000000000000F7 -S3154004FFC000000000000000000000000000000000E7 -S3154004FFD000000000000000000000000000000000D7 -S3154004FFE000000000000000000000000000000000C7 -S3154004FFF000000000000000000000000000000000B7 -S3154005000000000002000000030000000000000000A0 -S315400500100000000100000000FFFFFFFE0000000396 -S3154005002055555554FFFFFFFE0000000355555554E1 -S31540050030700FFFFE00000007100249240000000073 -S315400500400000000000000000000000020000000360 -S315400500500000000000000003FFFFFFFEFFFFFFFF5B -S3154005006000000002FFFFFFFD000000000000000049 -S31540050070000000010000000000000000FFFFFFFF38 -S315400500800000000000000001FFFFFFFFFFFFFFFF2C -S31540050090FFFFFFFF00000001FFFFFFFFFFFFFFFE21 -S315400500A00000000300000000FFFFFFFEFFFFFFFD0D -S315400500B000000000000000090000000700000001E4 -S315400500C0FFFFFFF700000002FFFFFFFCFFFFFFF801 -S315400500D000000002FFFFFFFCFFFFFFF8FFFFFFFCEC -S315400500E00000000200000008FFFFFFFCFFFFFFFEC7 -S315400500F0FFFFFFF8FFFFFFF800000001FFFFFFF8D5 -S31540050100FFFFFFF7000000000000000B00000002A3 -S31540050110000000050000002F000000020000001747 -S3154005012000003039000002A700000012FFFF076CEF -S315400501300000004DFFFFFCC600003039FFFFFD59AA -S31540050140FFFFFFEEFFFF076CFFFFFFB30000033A1B -S3154005015000000091FFFFE84100000000FFFFFD841D -S31540050160FFFED02F000000000000F6FA006E498120 -S315400501700000000000000000000000000000000034 -S31540050180FFFFF0000000000200000003000000062B -S3154005019000000002FFFFFFFDFFFFFFFA0000000021 -S315400501A0000000010000000000000000FFFFFFFF07 -S315400501B00000000000000001FFFFFFFFFFFFFFFFFB -S315400501C0FFFFFFFF00000001FFFFFFFFFFFFFFFEF0 -S315400501D000000003FFFFFFFAFFFFFFFEFFFFFFFDE5 -S315400501E000000006000000000000000000000009B5 -S315400501F000000000000000000000000000000000B4 -S31540050200000000000000000100000002000000039D -S315400502100000000000000000000000000000000093 -S31540050220000000004005050C400505D8400506A41C -S315400502300000000000000000000000000000000073 -S315400502400000000000000000000000000000000063 -S31540050250000000004001B5900000000000000000CD -S315400502600000000000000000000000000000000043 -S315400502700000000000000000000000000000000033 -S315400502800000000000000000000000000000000023 -S315400502900000000000000000000000000000000013 -S315400502A00000000000000000000000000000000003 -S315400502B000000000000000000000000000000000F3 -S315400502C000000000000000000000000000000001E2 -S315400502D0330EABCD1234E66DDEEC0005000B0000A7 -S315400502E000000000000000000000000000000000C3 -S315400502F000000000000000000000000000000000B3 -S3154005030000000000000000000000000000000000A2 -S315400503100000000000000000000000000000000092 -S315400503200000000000000000000000000000000082 -S315400503300000000000000000000000000000000072 -S315400503400000000000000000000000000000000062 -S315400503500000000000000000000000000000000052 -S315400503600000000000000000000000000000000042 -S315400503700000000000000000000000000000000032 -S315400503800000000000000000000000000000000022 -S315400503900000000000000000000000000000000012 -S315400503A00000000000000000000000000000000002 -S315400503B000000000000000000000000000000000F2 -S315400503C000000000000000000000000000000000E2 -S315400503D000000000000000000000000000000000D2 -S315400503E000000000000000000000000000000000C2 -S315400503F000000000000000000000000000000000B2 -S3154005040000000000000000000000000000000000A1 -S315400504100000000000000000000000000000000091 -S315400504200000000000000000000000000000000081 -S315400504300000000000000000000000000000000071 -S315400504400000000000000000000000000000000061 -S315400504500000000000000000000000000000000051 -S315400504600000000000000000000000000000000041 -S315400504700000000000000000000000000000000031 -S315400504800000000000000000000000000000000021 -S315400504900000000000000000000000000000000011 -S315400504A00000000000000000000000000000000001 -S315400504B000000000000000000000000000000000F1 -S315400504C000000000000000000000000000000000E1 -S315400504D000000000000000000000000000000000D1 -S315400504E000000000000000000000000000000000C1 -S315400504F000000000000000000000000000000000B1 -S3154005050000000000000000000000000000000000A0 -S315400505100000000000000000000000000000000090 -S315400505200000000000000000000000000000000080 -S315400505300000000000000000000000000000000070 -S315400505400000000000000000000000000000000060 -S315400505500000000000000000000000000000000050 -S315400505600000000000000000000000000000000040 -S315400505700000000000000000000000000000000030 -S315400505800000000000000000000000000000000020 -S315400505900000000000000000000000000000000010 -S315400505A00000000000000000000000000000000000 -S315400505B000000000000000000000000000000000F0 -S315400505C000000000000000000000000000000000E0 -S315400505D000000000000000000000000000000000D0 -S315400505E000000000000000000000000000000000C0 -S315400505F000000000000000000000000000000000B0 -S31540050600000000000000000000000000000000009F -S31540050610000000000000000000000000000000008F -S31540050620000000000000000000000000000000007F -S31540050630000000000000000000000000000000006F -S31540050640000000000000000000000000000000005F -S31540050650000000000000000000000000000000004F -S31540050660000000000000000000000000000000003F -S31540050670000000000000000000000000000000002F -S31540050680000000000000000000000000000000001F -S31540050690000000000000000000000000000000000F -S315400506A000000000000000000000000000000000FF -S315400506B000000000000000000000000000000000EF -S315400506C000000000000000000000000000000000DF -S315400506D000000000000000000000000000000000CF -S315400506E000000000000000000000000000000000BF -S315400506F000000000000000000000000000000000AF -S31540050700000000000000000000000000000000009E -S31540050710000000000000000000000000000000008E -S31540050720000000000000000000000000000000007E -S31540050730000000000000000000000000000000006E -S31540050740000000000000000000000000000000005E -S31540050750000000000000000000000000000000004E -S31540050760000000000000000000000000000000003E -S315400507704005022000000000FFFFFFFF00020000C9 -S315400507800000000000000000400507804005078086 -S3154005079040050788400507884005079040050790AE -S315400507A04005079840050798400507A0400507A05E -S315400507B0400507A8400507A8400507B0400507B00E -S315400507C0400507B8400507B8400507C0400507C0BE -S315400507D0400507C8400507C8400507D0400507D06E -S315400507E0400507D8400507D8400507E0400507E01E -S315400507F0400507E8400507E8400507F0400507F0CE -S31540050800400507F8400507F840050800400508007B -S315400508104005080840050808400508104005081029 -S3154005082040050818400508184005082040050820D9 -S315400508304005082840050828400508304005083089 -S315400508404005083840050838400508404005084039 -S3154005085040050848400508484005085040050850E9 -S315400508604005085840050858400508604005086099 -S315400508704005086840050868400508704005087049 -S3154005088040050878400508784005088040050880F9 -S3154005089040050888400508884005089040050890A9 -S315400508A04005089840050898400508A0400508A059 -S315400508B0400508A8400508A8400508B0400508B009 -S315400508C0400508B8400508B8400508C0400508C0B9 -S315400508D0400508C8400508C8400508D0400508D069 -S315400508E0400508D8400508D8400508E0400508E019 -S315400508F0400508E8400508E8400508F0400508F0C9 -S31540050900400508F8400508F8400509004005090076 -S315400509104005090840050908400509104005091024 -S3154005092040050918400509184005092040050920D4 -S315400509304005092840050928400509304005093084 -S315400509404005093840050938400509404005094034 -S3154005095040050948400509484005095040050950E4 -S315400509604005095840050958400509604005096094 -S315400509704005096840050968400509704005097044 -S3154005098040050978400509784005098040050980F4 -S3154005099040050988400509884005099040050990A4 -S315400509A04005099840050998400509A0400509A054 -S315400509B0400509A8400509A8400509B0400509B004 -S315400509C0400509B8400509B8400509C0400509C0B4 -S315400509D0400509C8400509C8400509D0400509D064 -S315400509E0400509D8400509D8400509E0400509E014 -S315400509F0400509E8400509E8400509F0400509F0C4 -S31540050A00400509F8400509F840050A0040050A0071 -S31540050A1040050A0840050A0840050A1040050A101F -S31540050A2040050A1840050A1840050A2040050A20CF -S31540050A3040050A2840050A2840050A3040050A307F -S31540050A4040050A3840050A3840050A4040050A402F -S31540050A5040050A4840050A4840050A5040050A50DF -S31540050A6040050A5840050A5840050A6040050A608F -S31540050A7040050A6840050A6840050A7040050A703F -S31540050A8040050A7840050A7840050A8040050A80EF -S31540050A9040050A8840050A8840050A9040050A909F -S31540050AA040050A9840050A9840050AA040050AA04F -S31540050AB040050AA840050AA840050AB040050AB0FF -S31540050AC040050AB840050AB840050AC040050AC0AF -S31540050AD040050AC840050AC840050AD040050AD05F -S31540050AE040050AD840050AD840050AE040050AE00F -S31540050AF040050AE840050AE840050AF040050AF0BF -S31540050B0040050AF840050AF840050B0040050B006C -S31540050B1040050B0840050B0840050B1040050B101A -S31540050B2040050B1840050B1840050B2040050B20CA -S31540050B3040050B2840050B2840050B3040050B307A -S31540050B4040050B3840050B3840050B4040050B402A -S31540050B5040050B4840050B4840050B5040050B50DA -S31540050B6040050B5840050B5840050B6040050B608A -S31540050B7040050B6840050B6840050B7040050B703A -S31540050B8040050B7840050B780000000040050B88B2 -S31540050B900000000000000000000000000000000208 -S31540050BA000000000000000000000000000000000FA -S31540050BB000000000000000000000000000000000EA -S31540050BC000000000000000000000000000000000DA -S31540050BD000000000000000000000000000000000CA -S31540050BE000000000000000000000000000000000BA -S31540050BF000000000000000000000000000000000AA -S31540050C000000000000000000000000000000000099 -S31540050C100000000000000000000000000000000089 -S31540050C200000000000000000000000000000000079 -S31540050C3080000100000000080000000700000006D3 -S31540050C40000000030000000000000000FFFF8AD0FE -S30940050C5080000310C2 +S31540048C200000000000000000800003100000000067 +S31540048C30000000008000010000000008000000075A +S31540048C40000000060000000300000000FFFF8AD079 S70540000000BA diff --git a/designs/leon3-xilinx-ml605/sram.srec b/designs/leon3-xilinx-ml605/sram.srec index 1f61725e..7fa507bf 100755 --- a/designs/leon3-xilinx-ml605/sram.srec +++ b/designs/leon3-xilinx-ml605/sram.srec @@ -1,11 +1,11 @@ S00C00007372616D2E7372656365 -S31540000000881000000910006C81C1207401000000B6 +S31540000000881000000910006C81C122980100000090 S31540000010A1480000A75000001080203EAC102001EF S3154000002091D0200001000000010000000100000006 S3154000003091D02000010000000100000001000000F6 -S31540000040A14800002910006B81C523AC01000000C7 -S31540000050A14800002910006981C522D00100000096 -S31540000060A14800002910006981C5233C0100000019 +S31540000040A14800002910006C81C521EC0100000088 +S31540000050A14800002910006981C522A401000000C2 +S31540000060A14800002910006981C523100100000045 S3154000007091D02000010000000100000001000000B6 S3154000008091D02000010000000100000001000000A6 S31540000090A1480000A75000001080201EAC10200987 @@ -16,21 +16,21 @@ S315400000D091D0200001000000010000000100000056 S315400000E091D0200001000000010000000100000046 S315400000F091D0200001000000010000000100000036 S3154000010091D0200001000000010000000100000025 -S31540000110AE102001A148000010806A35A7500000AB -S31540000120AE102002A148000010806A31A75000009E -S31540000130AE102003A148000010806A2DA750000091 -S31540000140AE102004A148000010806A29A750000084 -S31540000150AE102005A148000010806A25A750000077 -S31540000160AE102006A148000010806A21A75000006A -S31540000170AE102007A148000010806A1DA75000005D -S31540000180AE102008A148000010806A19A750000050 -S31540000190AE102009A148000010806A15A750000043 -S315400001A0AE10200AA148000010806A11A750000036 -S315400001B0AE10200BA148000010806A0DA750000029 -S315400001C0AE10200CA148000010806A09A75000001C -S315400001D0AE10200DA148000010806A05A75000000F -S315400001E0AE10200EA148000010806A01A750000002 -S315400001F0AE10200FA1480000108069FDA7500000F6 +S31540000110AE102001A148000010806A2AA7500000B6 +S31540000120AE102002A148000010806A26A7500000A9 +S31540000130AE102003A148000010806A22A75000009C +S31540000140AE102004A148000010806A1EA75000008F +S31540000150AE102005A148000010806A1AA750000082 +S31540000160AE102006A148000010806A16A750000075 +S31540000170AE102007A148000010806A12A750000068 +S31540000180AE102008A148000010806A0EA75000005B +S31540000190AE102009A148000010806A0AA75000004E +S315400001A0AE10200AA148000010806A06A750000041 +S315400001B0AE10200BA148000010806A02A750000034 +S315400001C0AE10200CA1480000108069FEA750000028 +S315400001D0AE10200DA1480000108069FAA75000001B +S315400001E0AE10200EA1480000108069F6A75000000E +S315400001F0AE10200FA1480000108069F2A750000001 S3154000020091D0200001000000010000000100000024 S3154000021091D0200001000000010000000100000014 S3154000022091D0200001000000010000000100000004 @@ -129,10 +129,10 @@ S315400007E091D020000100000001000000010000003F S315400007F091D020000100000001000000010000002F S3154000080091D020000100000001000000010000001E S3154000081091D020000100000001000000010000000E -S31540000820A14800002910006A81C52110010000007E -S31540000830A1480000108067DBA750000001000000BF +S31540000820A14800002910006A81C520E401000000AB +S31540000830A1480000108067D0A750000001000000CA S3154000084091D02000010000000100000001000000DE -S31540000850A14800002910006A81C520F4010000006B +S31540000850A14800002910006A81C520C80100000097 S3154000086091D02000010000000100000001000000BE S3154000087091D02000010000000100000001000000AE S3154000088091D020000100000001000000010000009E @@ -255,250 +255,250 @@ S31540000FC091D0200001000000010000000100000057 S31540000FD091D0200001000000010000000100000047 S31540000FE091D0200001000000010000000100000037 S31540000FF091D0200001000000010000000100000027 -S315400010009DE3BFC0051001438410A0600710014452 -S315400010108610E188821000008620C00286A0E00883 -S3154000102036BFFFFFC038800311100144901221885B -S31540001030C02200004000666801000000400066686B -S31540001040010000004000681A010000001110006D08 -S31540001050901221B040006168010000004000694ED6 -S3154000106001000000400000430100000040006745C9 -S315400010700100000081C7E00881E800009DE3BF98B9 -S3154000108023100143C20C606080A0600012800015EE -S315400010902110008010800005C204200C9FC3400030 -S315400010A0C224200CC204200CDA00400080A3600059 -S315400010B012BFFFFB82006004030000008210600044 -S315400010C080A0600002800006821020011110006D91 -S315400010D06FFFFBCC9012214082102001C22C606031 -S315400010E081C7E00881E800009DE3BF9881C7E0081A -S315400010F081E800009DE3BF98030000008210600075 -S315400011001110006D1310014380A060009012214021 -S3154000111002800004921260646FFFFBBA0100000077 -S315400011201B100144C203618880A060000280000950 -S31540001130B0136188030000008210600080A0600048 -S3154000114002800004010000006FFFFBAE81E8000052 -S315400011500100000081C7E00881E800009DE3BF98D8 -S3154000116081C7E00881E8000081C3E0080100000073 -S315400011709DE3BF9840000007010000004000014683 -S31540001180010000004000000E81E800000100000060 -S315400011909DE3BF98400000290100000080A2200086 -S315400011A01280000503100080D80060109A102001BC -S315400011B0DA23201081C7E00891E820000310008060 -S315400011C0D80060109A102001DA23201481C3E00869 -S315400011D09010200003100080DA006010D0234000F9 -S315400011E081C3E0089010200003100080DA006010F0 -S315400011F0D023600881C3E0089010200003100080CF -S31540001200DA006010D023600481C3E008901020000B -S3154000121013100080921260149010200081C3E008E1 -S31540001220D0EA4020901020001310008092126014E3 -S3154000123081C3E008D0224000914440009132201CF6 -S3154000124081C3E008900A200F81C3E008D0820020C5 -S315400012509010200C81C3E008D08200408210000824 -S3154000126080A20009148000039022000990224001C8 -S3154000127081C3E00801000000932A60028210200129 -S31540001280C22200099810200080A3000A1680000A96 -S3154000129096102001832B2002DA02000180A0000D67 -S315400012A0826020009803200180A3000A06BFFFFA4F -S315400012B0960AC00180A2E00002BFFFF49810200009 -S315400012C081C3E008010000009DE3BF98C2062010DC -S315400012D08330601CA0100018A400600180A4A00107 -S315400012E00280006CB0103FFF7FFFFFD4010000007A -S315400012F0AA100008912A20047FFFFFBC9002200715 -S315400013007FFFFFD40100000003020000808A000135 -S315400013100280005C010000009A05600182102001F5 -S315400013208328400D11100080C2242010901220A066 -S31540001330921000157FFFFFD1941000120310008019 -S3154000134082106018A12D6002C0204010DA004010C3 -S31540001350A610000180A36009291001431480002BC8 -S31540001360AC1000017FFFFFAB0100000080A220000F -S3154000137012BFFFFD01000000B010200080A6001241 -S31540001380168000140100000010800005A21000160F -S3154000139080A600121680000F01000000832E200256 -S315400013A0D0044010D20440017FFFFFADB0062001BB -S315400013B080A2200104BFFFF7901020027FFFFF901C -S315400013C00100000080A6001206BFFFF6832E200211 -S315400013D0C205207C82006001C225207C7FFFFF92EF -S315400013E001000000C204C01082006001C224C01087 -S315400013F0DA04C01080A3600904BFFFDB111000802F -S31540001400108000049012205C111000809012205C25 -S31540001410921000157FFFFF9994100012832CA002B2 -S3154000142082004012A0004001DA05207C80A4000D15 -S3154000143002800004231001437FFFFF7190102003B8 -S31540001440C204607C80A060000480000601000000A9 -S31540001450C204607C80A400011680000580A560005F -S315400014607FFFFF679010200380A56000228000095F -S31540001470B010200091D0200010800006B01020004F -S315400014807FFFFF5F9010200110BFFFA59A05600106 -S3154000149081C7E00881E800009DE3BF98C20620109E -S315400014A0A01000188330601C80A0600002800009F4 -S315400014B0B0103FFF7FFFFF610100000080A22000C7 -S315400014C0128000040300003F821063FFC2242010F4 -S315400014D081C7E00881E800009DE3BF98C20620105E -S315400014E08330601CA400600180A4A00102800068D3 -S315400014F0B0103FFF7FFFFF5101000000AA10000817 -S31540001500912A20047FFFFF39900220077FFFFF5179 -S315400015100100000003020000808A0001028000589A -S315400015200100000011100080901220A092100015BA -S315400015307FFFFF5294100012031000808210601843 -S31540001540A12D6002C0204010DA004010A610000114 -S3154000155080A36009291001431480002BAC100001C0 -S315400015607FFFFF2C0100000080A2200012BFFFFD7C -S3154000157001000000B010200080A600121680001462 -S315400015800100000010800005A210001680A600127F -S315400015901680000F01000000832E2002D004401068 -S315400015A0D20440017FFFFF2EB006200180A2200119 -S315400015B004BFFFF7901020027FFFFF1101000000DB -S315400015C080A6001206BFFFF6832E2002C205207CAD -S315400015D082006001C225207C7FFFFF1301000000CE -S315400015E0C204C01082006001C224C010DA04C010D8 -S315400015F080A3600904BFFFDB111000801080000447 -S315400016009012205C111000809012205C9210001500 -S315400016107FFFFF1A94100012832CA0028200401212 -S31540001620A0004001DA05207C80A4000D0280000461 -S31540001630231001437FFFFEF290102003C204607C1A -S3154000164080A060000480000601000000C204607CA7 -S3154000165080A400011680000580A560007FFFFEE89B -S315400016609010200380A5600022800009B010200061 -S3154000167091D0200010800006B01020007FFFFEE0D1 -S315400016809010200110BFFFA91110008081C7E0080B -S3154000169081E800009DE3BF983120000092162200A9 -S315400016A09410200040003E589010200140003B62BC -S315400016B0901622009016230040003EBD921020084E -S315400016C0B016210040003A4F81E8000001000000BA -S315400016D09DE3BF9821200000921422009410200020 -S315400016E040003E499010200140003B539014220098 -S315400016F09210001840003EAE90142300B014210012 -S3154000170040003A4081E8000001000000000000006F -S315400017100000000000000000000000000000000083 -S315400017200000000000000000000000000000000073 -S315400017300000000000000000000000000000000063 -S315400017400000000000000000000000000000000053 -S315400017500000000000000000000000000000000043 -S315400017600000000000000000000000000000000033 -S315400017700000000000000000000000000000000023 -S315400017800000000000000000000000000000000013 -S315400017900000000000000000000000000000000003 -S315400017A000000000000000000000000000000000F3 -S315400017B000000000000000000000000000000000E3 -S315400017C000000000000000000000000000000000D3 -S315400017D000000000000000000000000000000000C3 -S315400017E000000000000000000000000000000000B3 -S315400017F000000000000000000000000000000000A3 -S315400018000000000000000000000000000000000092 -S315400018100000000000000000000000000000000082 -S315400018200000000000000000000000000000000072 -S315400018300000000000000000000000000000000062 -S315400018400000000000000000000000000000000052 -S315400018500000000000000000000000000000000042 -S315400018600000000000000000000000000000000032 -S315400018700000000000000000000000000000000022 -S315400018800000000000000000000000000000000012 -S315400018900000000000000000000000000000000002 -S315400018A000000000000000000000000000000000F2 -S315400018B000000000000000000000000000000000E2 -S315400018C000000000000000000000000000000000D2 -S315400018D000000000000000000000000000000000C2 -S315400018E000000000000000000000000000000000B2 -S315400018F000000000000000000000000000000000A2 -S315400019000000000000000000000000000000000091 -S315400019100000000000000000000000000000000081 -S315400019200000000000000000000000000000000071 -S315400019300000000000000000000000000000000061 -S315400019400000000000000000000000000000000051 -S315400019500000000000000000000000000000000041 -S315400019600000000000000000000000000000000031 -S315400019700000000000000000000000000000000021 -S315400019800000000000000000000000000000000011 -S315400019900000000000000000000000000000000001 -S315400019A000000000000000000000000000000000F1 -S315400019B000000000000000000000000000000000E1 -S315400019C000000000000000000000000000000000D1 -S315400019D000000000000000000000000000000000C1 -S315400019E000000000000000000000000000000000B1 -S315400019F000000000000000000000000000000000A1 -S31540001A000000000000000000000000000000000090 -S31540001A100000000000000000000000000000000080 -S31540001A200000000000000000000000000000000070 -S31540001A300000000000000000000000000000000060 -S31540001A400000000000000000000000000000000050 -S31540001A500000000000000000000000000000000040 -S31540001A600000000000000000000000000000000030 -S31540001A700000000000000000000000000000000020 -S31540001A800000000000000000000000000000000010 -S31540001A900000000000000000000000000000000000 -S31540001AA000000000000000000000000000000000F0 -S31540001AB000000000000000000000000000000000E0 -S31540001AC000000000000000000000000000000000D0 -S31540001AD000000000000000000000000000000000C0 -S31540001AE000000000000000000000000000000000B0 -S31540001AF000000000000000000000000000000000A0 -S31540001B00000000000000000000000000000000008F -S31540001B10000000000000000000000000000000007F -S31540001B20000000000000000000000000000000006F -S31540001B30000000000000000000000000000000005F -S31540001B40000000000000000000000000000000004F -S31540001B50000000000000000000000000000000003F -S31540001B60000000000000000000000000000000002F -S31540001B70000000000000000000000000000000001F -S31540001B80000000000000000000000000000000000F -S31540001B9000000000000000000000000000000000FF -S31540001BA000000000000000000000000000000000EF -S31540001BB000000000000000000000000000000000DF -S31540001BC000000000000000000000000000000000CF -S31540001BD000000000000000000000000000000000BF -S31540001BE000000000000000000000000000000000AF -S31540001BF0000000000000000000000000000000009F -S31540001C00000000000000000000000000000000008E -S31540001C10000000000000000000000000000000007E -S31540001C20000000000000000000000000000000006E -S31540001C30000000000000000000000000000000005E -S31540001C40000000000000000000000000000000004E -S31540001C50000000000000000000000000000000003E -S31540001C60000000000000000000000000000000002E -S31540001C70000000000000000000000000000000001E -S31540001C80000000000000000000000000000000000E -S31540001C9000000000000000000000000000000000FE -S31540001CA000000000000000000000000000000000EE -S31540001CB000000000000000000000000000000000DE -S31540001CC000000000000000000000000000000000CE -S31540001CD000000000000000000000000000000000BE -S31540001CE000000000000000000000000000000000AE -S31540001CF0000000000000000000000000000000009E -S31540001D00000000000000000000000000000000008D -S31540001D10000000000000000000000000000000007D -S31540001D20000000000000000000000000000000006D -S31540001D30000000000000000000000000000000005D -S31540001D40000000000000000000000000000000004D -S31540001D50000000000000000000000000000000003D -S31540001D60000000000000000000000000000000002D -S31540001D70000000000000000000000000000000001D -S31540001D80000000000000000000000000000000000D -S31540001D9000000000000000000000000000000000FD -S31540001DA000000000000000000000000000000000ED -S31540001DB000000000000000000000000000000000DD -S31540001DC000000000000000000000000000000000CD -S31540001DD000000000000000000000000000000000BD -S31540001DE000000000000000000000000000000000AD -S31540001DF0000000000000000000000000000000009D -S31540001E00000000000000000000000000000000008C -S31540001E10000000000000000000000000000000007C -S31540001E20000000000000000000000000000000006C -S31540001E30000000000000000000000000000000005C -S31540001E40000000000000000000000000000000004C -S31540001E50000000000000000000000000000000003C -S31540001E60000000000000000000000000000000002C -S31540001E70000000000000000000000000000000001C -S31540001E80000000000000000000000000000000000C -S31540001E9000000000000000000000000000000000FC -S31540001EA000000000000000000000000000000000EC -S31540001EB000000000000000000000000000000000DC -S31540001EC000000000000000000000000000000000CC -S31540001ED000000000000000000000000000000000BC -S31540001EE000000000000000000000000000000000AC -S31540001EF0000000000000000000000000000000009C -S31540001F00000000000000000000000000000000008B -S31540001F10000000000000000000000000000000007B -S31540001F20000000000000000000000000000000006B -S31540001F30000000000000000000000000000000005B +S315400010009DE3BFC0051001238410A05007100125A1 +S315400010108610E168821000008620C00286A0E008A3 +S3154000102036BFFFFFC038800311100125901221689A +S31540001030C02200004000665D010000004000665D81 +S3154000104001000000400068A301000000111000707C +S31540001050901220BC400061C30100000040006C11AA +S3154000106001000000400002300100000040006730EF +S315400010700100000081C7E00881E800009DE3BFA0B1 +S3154000108021100123C20C205080A060001280002253 +S3154000109023100123C20460542710007025100070ED +S315400010A0A614E024A414A028A4248013A53CA002DE +S315400010B0A404BFFF80A040123A80000E0300000047 +S315400010C0A21460548200600185286002C224400058 +S315400010D0C204C0029FC0400001000000C20440009C +S315400010E080A040120ABFFFF98200600103000000A1 +S315400010F08210600080A060000280000682102001FD +S315400011001110006E6FFFFBBF90122020821020014D +S31540001110C22C205081C7E00881E800009DE3BFA0B3 +S3154000112081C7E00881E800009DE3BFA003000000FE +S315400011308210600080A06000228000081110012506 +S315400011401110006E13100123901220206FFFFBAD8B +S315400011509212605811100125C202216880A06000D9 +S31540001160028000099012216803000000821060008E +S3154000117080A0600002800004010000009FC0400083 +S315400011800100000081C7E00881E800009DE3BFA0A0 +S3154000119081C7E00881E800008292200002800015A5 +S315400011A001000000C400400080A0A0002280001181 +S315400011B092102001C600600880A240032A800008E1 +S315400011C08200600C8800FFFF8401000280A240027A +S315400011D02880000AC20060048200600CC4004000FF +S315400011E080A0A00032BFFFF5C60060089210200123 +S315400011F081C3E00890100009920240019222400308 +S3154000120081C3E008901000099DE3BFA0C2064000DC +S3154000121080A060001280001582007FFFC206600831 +S3154000122080A0600322800014C206600CD2062014FF +S31540001230D006600C4000615394102034C206600C06 +S3154000124082006034C226600CC2066004B0007FFE95 +S3154000125082007FFFB0104018C2266004B136201FBE +S3154000126081C7E00881E80000C226400081C7E00847 +S3154000127091E82000C4062014C6008000C620400025 +S31540001280C600A004C6206004C400A008C4206008AC +S31540001290C206600C8200600CC226600CC206600466 +S315400012A0B0007FFE82007FFFB0104018C226600467 +S315400012B0B136201F81C7E00881E800009DE3BFA04A +S315400012C0C2064000C406A0149B3060188930600CEA +S315400012D088092FFF8608601F833060058208601FDB +S315400012E0DA2EA011C836A012C228A001C628800056 +S315400012F01700003F9612E3F0C2066004C220A02801 +S3154000130082102000C6066008C620A02CC606600CC7 +S31540001310C620A03086064001C600E01080A0E0004E +S315400013209A1020000280000B881020009B30E004B9 +S315400013308808C00B9B2B6014892920109808E00F61 +S315400013409A20000D80A320030280000A8808C0046A +S31540001350860080018200600480A06010DA20E014DC +S3154000136012BFFFEDC820E00481C7E00881E8000015 +S315400013708931200C9A380003881100189B33600489 +S315400013809A0B6FFF9B2B60089A1360FF10BFFFF10B +S315400013909A0360019DE3BEF8F627A050FA27A058AD +S315400013A080A660000280010AA81020102B0003FCD2 +S315400013B0A0102000AA160015A407BFA4A607BFDCEC +S315400013C0A207BF7010800005AC10200180A4001455 +S315400013D01680003437000040932C200594102020BE +S315400013E092024015400060E790100012C207BFA469 +S315400013F080A0600022BFFFF6A0042001C024E010B8 +S31540001400C024C000C024E004C024E008C024E00C8E +S31540001410C0244000C0246004C0246008C024600C7E +S31540001420C0246010C0246014C0246018C024601C0E +S31540001430C0246020C0246024C0246028C024602CBE +S31540001440C0246030E227BFF0EC2FBFEC90100018AC +S31540001450921000127FFFFF9A94100013C20FBFED47 +S3154000146080A0401C32BFFFDAA0042001C217BFEEA5 +S31540001470C407A05880A0400232BFFFD5A004200177 +S31540001480D207A0507FFFFF619010001380A220007A +S3154000149002BFFFCFA004200181C7E00891E82001E8 +S315400014A02D0003FE3B003FFF3300003F9206A04065 +S315400014B0AC160016BA1763FFB21663F0A0102000F0 +S315400014C0A607BFDCA207BF70B616E020AA07BFC4B6 +S315400014D0AE07BFF410800005D227BF6C80A5001070 +S315400014E0048000AE01000000932C200590100012ED +S315400014F092024016400060A394102020C207BFA469 +S3154000150080A0600022BFFFF6A004200182102001C7 +S31540001510C024E010C22FBFECC024C000C024E004A9 +S31540001520C024E008C024E00CC0244000C02460046D +S31540001530C0246008C024600CC0246010C02460141D +S31540001540C0246018C024601CC0246020C0246024CD +S31540001550C0246028C024602CC0246030E227BFF03D +S3154000156090100018921000127FFFFF559410001340 +S31540001570C20FBFED80A7000102800051C217BFEE27 +S31540001580C207BFEC8208401D80A0401B2280005B42 +S31540001590C207BFF0050000408410A00680A04002AC +S315400015A032BFFFCFA0042001C207BFF0C6006004CF +S315400015B088102003030003FC8210C001108000063F +S315400015C08400607880A0400222BFFFC5A0042001AD +S315400015D082006008DA00400080A3600002BFFFFA84 +S315400015E0D8006004920B601F973360189533600CE7 +S315400015F09B3360059A0B601F940AAFFFC025C0005D +S31540001600D22FBFF4DA2FBFF5130003FF9B3320041C +S31540001610921263FF9A0B6FFF9B2B60089A2A400D2C +S315400016209A036001133FFC00DA27BFFCC025400047 +S315400016309A0B0019C02560049B2B6004980B000987 +S31540001640C02560089933200CC025600C980B400CCF +S31540001650EE27BFD898130003C82FBFD4D62FBFD5C7 +S31540001660D437BFD680A7000B12BFFFD7D827BFF805 +S31540001670DA07A05880A3400A12BFFFD480A04002D8 +S31540001680D207A050C227BF60C427BF64C627BF5C2D +S31540001690C827BF687FFFFEDD90100015C207BF60F8 +S315400016A080A22000C407BF64C607BF5C12BFFF7B91 +S315400016B0C807BF6810BFFFC580A04002DA07A05820 +S315400016C080A3400112BFFFB0C207BFECD207A050B3 +S315400016D07FFFFECE9010001380A2200012BFFF6F46 +S315400016E0C207BFEC8208401D80A0401B12BFFFAB63 +S315400016F005000040C207BFF0C408600180A0A000FA +S3154000170022BFFF77A004200180A6A0000280001718 +S31540001710D000602C82102000C406800180A0A0006A +S315400017200280000880A2000222BFFF6DA0042001B3 +S315400017308200600480A0604032BFFFF9C406800189 +S31540001740C607BF6C8210001AC400400080A0A000EB +S3154000175022800014D02040008200600480A0400314 +S3154000176032BFFFFBC4004000D607A050DA07A0589E +S31540001770921000139410001A7FFFFF079810001C68 +S3154000178080A2200012BFFF45A004200180A50010C2 +S3154000179014BFFF57932C200581C7E00891E820002D +S315400017A0D607A05092100013DA07A0589410001ADA +S315400017B07FFFFEF99810001C80A2200012BFFF3761 +S315400017C0A004200110BFFFF380A5001080A6A00052 +S315400017D00280000B8210001A8606A040C40040001A +S315400017E080A0A00022800008F02040008200600413 +S315400017F080A0400332BFFFFBC400400010BFFEEC98 +S31540001800A810204010BFFEEAA81020409DE3BF501C +S315400018109407BFB08210200398100018C022A00879 +S31540001820C022A00CC022A010C022A014C022A01822 +S31540001830C022A01CC022A020C022A024C022A028D2 +S31540001840C022A02CC022A030C022A034C022A03882 +S31540001850C022A03CA0102001F427BFFCC027BFB087 +S31540001860C027BFB4C027BFF09A100019E027BFF4C5 +S31540001870C227BFF8921020009607BFF07FFFFEC632 +S31540001880113FFC00F007BFF4B024001881C7E00800 +S3154000189081E800009DE3BF9090102001A007BFF4AF +S315400018A09210200C7FFFFFDA9410001080A22001D6 +S315400018B00280001A0310012390102001921020117B +S315400018C07FFFFFD39410001080A220010280000DFC +S315400018D00710012494100010901020017FFFFFCCC8 +S315400018E09210200D80A220011280000403100123D3 +S315400018F0C407BFF8C420602C81C7E00881E8000017 +S31540001900C207BFF884006010C220E0A40310012380 +S3154000191010BFFFF1C4206028C407BFF810BFFFE71F +S31540001920C42060349DE3BFA04000002301000000B6 +S3154000193040000174010000004000000381E80000FF +S315400019400100000003100080C200600C84102001DA +S3154000195090102000C420601481C3E00801000000FC +S3154000196003100080C200600C841000089010200014 +S31540001970C420400081C3E00801000000031000803D +S31540001980C200600C8410000890102000C42060083B +S3154000199081C3E0080100000003100080C200600C13 +S315400019A08410000890102000C420600481C3E00821 +S315400019B0010000009DE3BFA04000001401000000AC +S315400019C080A220001280000503100080C200600C37 +S315400019D084102001C420601081C7E00891E82000EF +S315400019E013100080921260109010200081C3E0080E +S315400019F0D0EA402090102000131000809212601010 +S31540001A0081C3E008D0224000914440009132201C1E +S31540001A1081C3E008900A200F81C3E008D0820020ED +S31540001A209010200C81C3E008D08200409DE3BFA007 +S31540001A30C2062010A01000188330601C80A06000F1 +S31540001A4002800009B0103FFF7FFFFFF00100000059 +S31540001A5080A22000128000040300003F821063FF32 +S31540001A60C224201081C7E00881E800009DE3BFA0A2 +S31540001A70E4062010A534A01CA404A00180A4A00163 +S31540001A800280003CB0103FFF7FFFFFE001000000F6 +S31540001A90AA100008912A20047FFFFFB99002200770 +S31540001AA07FFFFFE00100000003020000808A000182 +S31540001AB00280007401000000A72D6002091000801A +S31540001AC0881120148210200184102001C2210013A5 +S31540001AD08210200080A480011480000987286002BB +S31540001AE080A0A000128000258210200084102001D2 +S31540001AF080A4800104BFFFFB87286002C601000363 +S31540001B0080A00003820060018660200010BFFFF2C3 +S31540001B1084088003C205A074852CA003A12CA001D3 +S31540001B20A004000280A4000102800004010000001D +S31540001B307FFFFF9A90102003C205A07480A060002A +S31540001B400480000603100123C200607480A40001D3 +S31540001B501680000580A560007FFFFF90901020034F +S31540001B6080A5600002800003B010200091D02000C4 +S31540001B7081C7E00881E8000023100080A214609C21 +S31540001B802D100123C0244013C204401380A06009D5 +S31540001B901480002709100080A815A0747FFFFF91CC +S31540001BA00100000080A2200012BFFFFD80A4A0001B +S31540001BB00480001301000000A0102000C40440135C +S31540001BC0832C2002C204400180A08001A004200191 +S31540001BD004800003862040028620800180A0E00128 +S31540001BE00480000580A480107FFFFF6C90102002C7 +S31540001BF080A4801014BFFFF201000000C20500005F +S31540001C0082006001C22500007FFFFF7B01000000CB +S31540001C10C204401382006001C2244013C204401330 +S31540001C2080A0600904BFFFDE09100080881120589B +S31540001C308210200184102001C2210013821020004E +S31540001C4080A48001148000098728600280A0A0003B +S31540001C5012BFFFB1821020008410200180A48001B1 +S31540001C6004BFFFFB87286002C601000380A0000373 +S31540001C70820060018660200010BFFFF28408800366 +S31540001C807FFFFF469010200110BFFF8DA72D6002F9 +S31540001C909DE3BFA0E4062010A0100018A534A01CA8 +S31540001CA0A404A00180A4A0010280003FB0103FFF21 +S31540001CB07FFFFF5601000000AA100008912A200469 +S31540001CC07FFFFF2F900220077FFFFF560100000095 +S31540001CD003020000808A00010280007701000000B4 +S31540001CE0A72D60020910008088112014821020015F +S31540001CF08405600185284002C4242010C2210013B7 +S31540001D00841020018210200080A4800114800009E4 +S31540001D108728600280A0A000128000258210200043 +S31540001D208410200180A4800104BFFFFB8728600245 +S31540001D30C601000380A00003820060018660200087 +S31540001D4010BFFFF284088003C205A074852CA0034F +S31540001D50A12CA001A004000280A40001028000047E +S31540001D60010000007FFFFF0D90102003C205A07404 +S31540001D7080A060000480000603100123C200607446 +S31540001D8080A400011680000580A560007FFFFF0348 +S31540001D909010200380A5600002800003B010200050 +S31540001DA091D0200081C7E00881E800002310008020 +S31540001DB0A214609C2D100123C0244013C20440137A +S31540001DC080A060091480002709100080A815A0741F +S31540001DD07FFFFF040100000080A2200012BFFFFD2C +S31540001DE080A4A0000480001301000000A010200081 +S31540001DF0C4044013832C2002C204400180A0800109 +S31540001E00A004200104800003862040028620800131 +S31540001E1080A0E0010480000580A480107FFFFEDFE3 +S31540001E209010200280A4801014BFFFF20100000031 +S31540001E30C205000082006001C22500007FFFFEEE61 +S31540001E4001000000C204401382006001C224401316 +S31540001E50C204401380A0600904BFFFDE0910008061 +S31540001E60881120588210200184102001C2210013BD +S31540001E708210200080A48001148000098728600217 +S31540001E8080A0A00012BFFFB1821020008410200164 +S31540001E9080A4800104BFFFFB87286002C6010003BF +S31540001EA080A00003820060018660200010BFFFF220 +S31540001EB0840880037FFFFEB99010200110BFFF8A7F +S31540001EC0A72D60029DE3BFA02120000094102000B2 +S31540001ED09214220040003C4F9010200140003B07E6 +S31540001EE0901422009210001840003C939014230056 +S31540001EF0B01421004000384381E800000100000092 +S31540001F009DE3BFA0312000009410200092162200CD +S31540001F1040003C409010200140003AF890162200C4 +S31540001F209016230040003C8492102008B0162100F1 +S31540001F304000383481E80000010000000000000045 S31540001F40000000000000000000000000000000004B S31540001F50000000000000000000000000000000003B S31540001F60000000000000000000000000000000002B @@ -2049,7 +2049,7 @@ S31540007FE0000000000000000000000000000000004B S31540007FF0000000000000000000000000000000003B S315400080009DE3BF9081C7E00881E8000003000010AF S31540008010C48000408088800112BFFFFE010000003E -S31540008020EC6FBFF89DE3BF909DE3BF909DE3BF908B +S31540008020C46FBFF89DE3BF909DE3BF909DE3BF90B3 S315400080309DE3BF909DE3BF909DE3BF9021044444E0 S31540008040A014211123088888A2146222250CCCCCC6 S31540008050A414A33327111111A614E044291555552C @@ -2080,7 +2080,7 @@ S315400081D00100000001000000010000000100000055 S315400081E09DE3BF90FC2780009007A0019410001EDD S315400081F0D1E7816AD1E7816A9402A0019002200109 S31540008200D1E7816AD1E7816AD60780009622C01EEF -S31540008210B0A2E00202800004900020017FFFE3F854 +S31540008210B0A2E00202800004900020017FFFE5DF6B S315400082200100000081C7E00881E80000010000006D S3154000823001000000010000000100000001000000F4 S3154000824001000000010000000100000001000000E4 @@ -4095,3251 +4095,3427 @@ S3154000FFC001000000010000000100000001000000E7 S3154000FFD001000000010000000100000001000000D7 S3154000FFE001000000010000000100000001000000C7 S3154000FFF001000000010000000100000001000000B7 -S315400100009DE3BF987FFFC4741100403080A2200059 -S31540010010128000F382102001C226200CC026200443 +S315400100009DE3BFA07FFFC6571100403080A220006C +S31540010010128000AF82102001C226200CC026200487 S31540010020C0260000C026200882102002C2262008D1 S31540010030C0260000C026000082102003C2262008E8 -S315400100409A102083DA262008A2102063C0260000D9 -S31540010050A2847FFF1CBFFFFE01000000A2102063A7 -S31540010060C2060000A2847FFF1CBFFFFE8210200251 -S31540010070C2262008A4062004C28480208088600409 -S3154001008002BFFFFE01000000C0262008C026000076 -S31540010090A6102001C2848020833860148208603F04 -S315400100A080A0600122800093A604E0018210200313 -S315400100B0C2262008C2848020808860010280000711 -S315400100C080886004C2860020C284802080886001C6 -S315400100D012BFFFFD8088600402BFFFFB808860027B -S315400100E002BFFFF901000000C0262008C0262004F7 -S315400100F080A4E0010480000821100080C284802091 -S315400101008208608080A06001028000AE010000008C -S3154001011021100080DA4C20F0DA260000C2848020CB -S315400101208208600480A060010280009A01000000FC -S31540010130C284802080A4E001048000208210200136 -S31540010140A210200180A440131680000D2B100080C0 -S31540010150A81420F0E00560E8901000114000247CCE -S3154001016092100010C24D0008A2046001C226000090 -S3154001017080A4401306BFFFFA90100011C28480206C -S315400101808208608080A06001028000920100000028 -S31540010190C2848020833860148208603F80A0401367 -S315400101A002800004010000007FFFC4159010200664 -S315400101B0C284802082102001C226200CDA8480204D -S315400101C0808B60011280006801000000821020834C -S315400101D0C226200880A4E0010280005201000000EE -S315400101E0C28480208088640002BFFFFE01000000B7 -S315400101F0C284802080886001028000530100000093 -S3154001020080A4E00124800012A2102000C284802034 -S315400102108330601A80A04013028000040100000070 -S315400102207FFFC3F790102009C28480208088610037 -S315400102300280005501000000C2848020808864004D -S315400102400280004D01000000A210200080A440134E -S315400102501680001203100080A81060F02B10008059 -S31540010260E08600209010001140002439D20560E854 -S31540010270C24D0008A204600180A040100280000423 -S315400102809010200C7FFFC3DE0100000080A44013C4 -S3154001029006BFFFF40100000080A4E0010480000FC6 -S315400102A001000000C28480208088610012800042E3 -S315400102B001000000C28480208330601A80A0600063 -S315400102C01280003A01000000C284802080886400C8 -S315400102D01280003301000000C284802080886001C2 -S315400102E01280001D01000000C02620083080003C1D -S315400102F0C0260000C2848020833860148208603F93 -S3154001030080A0401322BFFFFBA604E00180A4E001C8 -S3154001031034BFFF67A604FFFF10BFFF6682102003AC -S31540010320C28480208088600112BFFFB201000000B4 -S31540010330C28480208088600102BFFFFA010000006C -S3154001034030BFFFAC7FFFC3AE9010200810BFFFAE99 -S3154001035080A4E0017FFFC3AA9010200CC02620088C -S315400103603080001F7FFFC3A69010200710BFFF9962 -S31540010370821020837FFFC3A29010200B10BFFFB4D1 -S31540010380A21020007FFFC39E9010200A30BFFFAB12 -S315400103907FFFC39B9010200130BFFF667FFFC3984C -S315400103A09010200B30BFFFCD7FFFC3959010200EDC -S315400103B030BFFFC67FFFC3929010200D30BFFFBEF6 -S315400103C07FFFC38F9010200410BFFF532110008080 -S315400103D07FFFC38B9010200530BFFF6E81C7E008B9 -S315400103E091E8200017100143DA02E08090022010C4 -S315400103F09B2B60029812E080D023000DC202E08060 -S3154001040082006001C222E08081C3E0080100000051 -S31540010410C0220000C022204082103FFFC222200C91 -S315400104209A10200103100143DA20608081C3E0085D -S31540010430010000009DE3BF7803100144F02060CC29 -S315400104407FFFC365110040347FFFFFF29010001813 -S31540010450A010200123100040921000104000299165 -S31540010460901463E4A004200180A4200F04BFFFFC84 -S3154001047092100010C20620208330601CAE0060013D -S31540010480AC10200080A58017168000EC0300003FC9 -S31540010490B81063FE2B1001430300002AB61062AA6E -S315400104A0BA102001B410001CB2156080832DA00C37 -S315400104B080A5E00114800118A600401880A5A0007F -S315400104C01280010901000000F824E008C204E00896 -S315400104D080A0401C02800004010000007FFFC34849 -S315400104E090102001F824E040C204E04080A0401C66 -S315400104F002800004010000007FFFC34190102002EA -S31540010500C204E00880A0600012BFFFFE01000000A7 -S31540010510C205608080A0601002800005251001435D -S315400105207FFFC3379010200325100143A0102001FF -S31540010530A414A080A2102020832C20029A244010CB -S31540010540D8048001A004200180A3000D028000048C -S31540010550901020047FFFC32A0100000080A4200FD1 -S3154001056004BFFFF7832C2002FA256080F624C000E1 -S31540010570F424E040C204C00080A0401B0280000475 -S31540010580A010001A7FFFC31E90102005C204E04050 -S3154001059080A0401002800004010000007FFFC318C4 -S315400105A090102005F424E008C204E00880A0600011 -S315400105B012BFFFFE01000000C205608080A06010EE -S315400105C002800005251001437FFFC30D90102006D0 -S315400105D025100143A0102001A414A080A210201FC1 -S315400105E09B2C2002C204800D80A04011A004200152 -S315400105F0A2047FFE02800004901020077FFFC30003 -S315400106000100000080A4200704BFFFF79B2C2002B5 -S31540010610A4066028A210201CA0102005C204800058 -S3154001062080A04011A404A004A2047FFE028000041D -S31540010630901020087FFFC2F201000000A0843FFF16 -S315400106401CBFFFF701000000FA27BFE8C207BFE859 -S3154001065082006001C227BFECDA07BFEC9A03600152 -S31540010660DA27BFF0C207BFF082006001C227BFF49C -S315400106709A102006DA27BFD8C024C000C024E04023 -S31540010680FA256080A0102002E024E040E024E00842 -S31540010690834440008088610002800005010000001B -S315400106A0805000018050000180500001C207BFD830 -S315400106B0C227BFDCDA07BFD880A3600602800004E8 -S315400106C0010000007FFFC2CE9010200AE024E0081E -S315400106D001000000C207BFD8C227BFDCDA07BFD876 -S315400106E080A3600602800004010000007FFFC2C4AF -S315400106F09010200AE024E00801000000C027BFDC7A -S31540010700C207BFDC80A06000128000950100000096 -S31540010710C204E00880A0600012BFFFFE0100000095 -S31540010720C205608080A06004028000052100003F70 -S315400107307FFFC2B39010200D2100003FC024E0404E -S31540010740A01423FE9A10200103100143E024E0087F -S31540010750DA206080400003E801000000400003E821 -S3154001076090122F00E024E040C204E04080A06000E7 -S3154001077002BFFFFE01000000C205608080A060024A -S3154001078002800004A01560807FFFC29D9010200E5C -S31540010790C204200480A0601F028000040100000002 -S315400107A07FFFC2979010200F400003D3A81000107E -S315400107B0400003D390023F00A0102002A410202045 -S315400107C0400003CD01000000400003CD90023F00F0 -S315400107D0C2056080A204200180A04011028000046D -S315400107E0901020107FFFC28601000000832C20025A -S315400107F09A248010D8050001A010001180A3000D95 -S3154001080002800004901020117FFFC27D010000008C -S3154001081080A4200F04BFFFEB01000000C024E0408C -S31540010820AC05A00182103FFFC224E00C80A58017D1 -S3154001083006BFFF20832DA00C80A5E0010480004B5C -S3154001084001000000C0262024C206202480A06000AA -S315400108501280003F0100000021040000E026202410 -S31540010860C206202480A0401002800005821020018B -S315400108707FFFC2639010201482102001C2262020DF -S31540010880C0262024C206202480A0401002800004F5 -S31540010890010000007FFFC25A90102015C02620207B -S315400108A0C0262024C206202480A060001280002495 -S315400108B00100000082102002C2262020DA062020F4 -S315400108C0808B60020280001B01000000C0262020B0 -S315400108D0C2062020808860020280002401000000B8 -S315400108E0308000117FFFFECB901000139B2DA01C82 -S315400108F0DA24E024C204E0248330601C80A0401640 -S3154001090002BFFEF2010000007FFFC23D901020129F -S3154001091030BFFEEE7FFFC2359010001610BFFEE9D4 -S3154001092080A5A0007FFFC236901020183080000FAE -S315400109307FFFC2339010201730BFFFE57FFFC230E3 -S315400109409010201610BFFFDD821020027FFFC22CBF -S315400109509010201310BFFFC2210400007FFFC22860 -S315400109609010200B30BFFF6B81C7E00891E8200053 -S3154001097003100143DA0060C8C023600881C3E00860 -S31540010980901020009DE3BF902F100144E205E0CC7A -S31540010990A004610027100143C2042004F024E0C8EA -S315400109A07FFFC2129010201003018000DA04200458 -S315400109B082106020808B40011280010D01000000F1 -S315400109C0DA046100DA27BFF0C204610080A3400166 -S315400109D002800005821020017FFFC209901020028B -S315400109E082102001C2242004DA046100DA27BFF014 -S315400109F0C204610080A34001028001200100000081 -S31540010A00C0242004DA046100DA27BFF0C204610081 -S31540010A1080A340010280000580A720007FFFC1F826 -S31540010A209010200480A72000128000B780A72001E3 -S31540010A30B010200180A6001A16800017A8102001C8 -S31540010A40108000052510004280A6001A168000136A -S31540010A50DA04E0C8A206C0189014A17092100011E1 -S31540010A6080A4601F14BFFFF9B00620014000280D85 -S31540010A7001000000D805E0CCC20320409B2D0011A7 -S31540010A808210400DC223204080A6001A06BFFFF304 -S31540010A90A206C018DA04E0C89606A003C023600483 -S31540010AA0833AE01FC023601098103FFF8330601ED9 -S31540010AB0AA02C001D8236014D823600CA2102000DA -S31540010AC0AD3D600280A720000280008AA810200167 -S31540010AD080A4401C168000ECC204E0C880A7200117 -S31540010AE004800015B010200080A5A00004800013EA -S31540010AF080A0001C9B2C6010832C60188210400D36 -S31540010B00992C60088210400C82104011993D600278 -S31540010B10DA04E0C8C2236020B006200180A7200184 -S31540010B20048000059A03600480A3001814BFFFFAED -S31540010B300100000080A0001CB0603FFF80A6001AA3 -S31540010B4016800016C204E0C82501800080A7200057 -S31540010B50028000058206C01880A720010280008419 -S31540010B608206C011C2242004D804E0C8832D00188F -S31540010B709B3E4018C2232008808B6001128000856D -S31540010B809A10000CB006200180A6001A06BFFFF19C -S31540010B9080A72000C204E0C8C0206008808E6001A2 -S31540010BA012800009B0102000B006200180A6201F47 -S31540010BB014800005833E40188088600122BFFFFCF7 -S31540010BC0B006200180A72000028000068206C018D8 -S31540010BD080A72001028000048216E0208206C0110F -S31540010BE082106020C2242004DA04E0C8832D001854 -S31540010BF0C2236008C203600880A0600012BFFFFEE6 -S31540010C0001000000C2042004808860200280009810 -S31540010C1001000000DA04200403010000808B40013A -S31540010C200280009001000000DA04200403008000E5 -S31540010C30808B40010280008801000000C204200828 -S31540010C40C227BFF0DA04200CDA27BFF4C204E0C899 -S31540010C50992D0018D82060089A100001C203600837 -S31540010C6080A0600012BFFFFE01000000C204200404 -S31540010C70808860200280007501000000DA042004AB -S31540010C8003010000808B40010280006D01000000DD -S31540010C90DA04200403008000808B40010280006555 -S31540010CA001000000DA042008C207BFF080A0400D11 -S31540010CB002800004010000007FFFC1519010200E08 -S31540010CC0DA04200CC207BFF480A0400D0280000563 -S31540010CD0030180007FFFC14A9010200F030180006D -S31540010CE0C224200480A7200012BFFF7AA20460011B -S31540010CF080A4600004BFFF7B80A7200110800062B2 -S31540010D00C204E0C80280003D11100042B01020002C -S31540010D1080A6001C16BFFF60A810200110800005A8 -S31540010D202510004280A6001C16BFFF5CDA04E0C80D -S31540010D30A206C0189014A1709210001180A4601FE1 -S31540010D4014BFFFF9B00620014000275601000000FC -S31540010D50D805E0CCC20320409B2D00118210400DE6 -S31540010D60C223204010BFFFF180A6001CF6242004B8 -S31540010D70D804E0C8832D00189B3E4018C2232008A2 -S31540010D80808B600122BFFF81B00620019A10000CC2 -S31540010D90C203600880A0600012BFFFFE0100000090 -S31540010DA0DA04200403010000808B40010280001E0A -S31540010DB001000000DA04200403008000808B40011A -S31540010DC00280001601000000E4242004C20420042D -S31540010DD08088401222BFFF6DB00620017FFFC10807 -S31540010DE09010200710BFFF69B00620017FFFC104A4 -S31540010DF09010200130BFFEF3901221704000272948 -S31540010E009210001BDA05E0CC832F001BC223604001 -S31540010E1010BFFF22DA04E0C87FFFC0F99010200618 -S31540010E2030BFFFEA7FFFC0F69010200530BFFFE2DA -S31540010E307FFFC0F39010200D30BFFF9B7FFFC0F0B6 -S31540010E409010200C30BFFF937FFFC0ED9010200B18 -S31540010E5030BFFF8B7FFFC0EA9010200A30BFFF787A -S31540010E607FFFC0E79010200930BFFF707FFFC0E4CD -S31540010E709010200830BFFF687FFFC0E1901020032B -S31540010E8030BFFEE0C020600CDA05E0CCC0236040F4 -S31540010E9082103FFFC223600C81C7E00891E8200021 -S31540010EA09DE3BF983B100144E60760CC7FFFC0CF6E -S31540010EB090102011C024E01CC204E01C80A06000F8 -S31540010EC00280004801000000C204E01C8330601B20 -S31540010ED080A0401A0A80003F01000000A4102000B3 -S31540010EE080A4801A1A8000422D100143AA102001C5 -S31540010EF0AE15A080A32CA002E00640117FFFFD4560 -S31540010F0090100013A804A0019B2D4012832D2010A0 -S31540010F108210400DC224E01C9A103FFFDA24E040C3 -S31540010F20D80600119A10201FDA232004A0043FFF9F -S31540010F30DA230000A12C20048204000C9A1020051B -S31540010F40DA206010C0206014EA2060189A1000016F -S31540010F50C203601080A0600012BFFFFE01000000C6 -S31540010F60A004000CC204201080A0600002BFFFFE56 -S31540010F7001000000C0242018C205A08080A06002A4 -S31540010F80028000069A04A011900480127FFFC09C43 -S31540010F90900220039A04A011C205E00480A0400DEE -S31540010FA022800006A4100014900480127FFFC09492 -S31540010FB090022004A4100014C024E01C80A5001A4D -S31540010FC00ABFFFCEA32CA0021080000ADA0760CC2C -S31540010FD07FFFC08B9010200210BFFFC2A4102000DB -S31540010FE07FFFC0879010200130BFFFB8DA0760CC81 -S31540010FF0C023604082103FFFC223600C81C7E008D6 -S3154001100091E820009DE3BF987FFFC08C010000005E -S3154001101080A220000280002680A62000128000299E -S31540011020010000007FFFC08501000000912A2004D5 -S315400110307FFFC06E9002200340001870010000003F -S3154001104080A220001280002B010000004000182DD4 -S3154001105001000000400017E60100000040000228A0 -S315400110600100000080A6A0001280002D031001445B -S315400110707FFFC072B41060D0912A2002C206800858 -S3154001108080A060001280003080A6200012800039C6 -S31540011090010000004000048F0100000040001E05D1 -S315400110A001000000400015C281E800007FFFC04AF0 -S315400110B01100400C80A6200002BFFFDB01000000AA -S315400110C07FFFC0F6901000197FFFC05C0100000051 -S315400110D0912A20047FFFC045900220034000184713 -S315400110E00100000080A2200002BFFFD901000000DC -S315400110F07FFFC0439010200140001802010000000C -S31540011100400017BB01000000400001FD0100000046 -S3154001111080A6A00002BFFFD70310014440001DF086 -S3154001112001000000031001447FFFC044B41060D0A9 -S31540011130912A2002C206800880A0600002BFFFD427 -S3154001114080A620007FFFC03D010000007FFFC03B1D -S31540011150A0100008912A2002C20680089FC04000C4 -S315400111609010001080A6200002BFFFCB01000000B6 -S315400111707FFFC0DA901000194000045601000000BC -S3154001118040001DCC010000004000158981E80000A7 -S315400111900100000003100143DA0060CC9A036001AC -S315400111A0DA2060CC81C3E008010000009DE3BF98CE -S315400111B07FFFC00911004044D806200882103FFF36 -S315400111C0C2262004DA060000C206000080A34001C0 -S315400111D00280006FA60B20078210201FC226200422 -S315400111E0C226000080A4E00002800033821000186D -S315400111F0A2100013C0206018A2847FFF12BFFFFE19 -S3154001120082006010A210200080A440131680002B9B -S3154001121080A4E001A810200FA01000187FFFBFF3A3 -S3154001122090100011C0242010E824201482102006BA -S31540011230C2242018DA04201080A3600F0280000423 -S31540011240010000007FFFBFEE90102003E824201824 -S315400112509A10200EC204201080A0400D12BFFFFE3E -S31540011260010000009A837FFF1CBFFFFBA410001002 -S31540011270C204201080A0600F12BFFFFE01000000D3 -S31540011280C204201880886010028000358210201028 -S31540011290C224A018DA042018808B6010128000380E -S315400112A001000000A204600180A4401306BFFFDCD8 -S315400112B0A004201080A4E0011480001080A4E00066 -S315400112C00280000782100018A2100013C020601887 -S315400112D0A2847FFF12BFFFFE8200601021100144ED -S315400112E0C20420CC80A060000280002D1110004471 -S315400112F01080000D921000197FFFBFBC901020088E -S315400113008210200FC22620189A10202FDA26202874 -S31540011310C206202080A0600D12BFFFFE80A4E0001F -S3154001132030BFFFE8400025DF901221947FFFFC3952 -S31540011330D00420CC8210200183284019DA0420CC25 -S31540011340C22360409810200FD82620148210200D09 -S31540011350C2262018A7800000308000117FFFBFA859 -S315400113609010200482102010C224A018DA042018FC -S31540011370808B601022BFFFCDA20460017FFFBFA01A -S315400113809010200510BFFFC9A20460017FFFBF9CDA -S315400113909010200110BFFF928210201F81C7E008E4 -S315400113A081E800000000000000000000000000008D -S315400113B000000000000000000000000000000000E6 -S315400113C001000000010000000100000001000000D2 -S315400113D0010000000100000081C3E0080100000097 -S315400113E001000000010000000100000001000000B2 -S315400113F0010000000100000081C3E0080100000077 -S315400114000100000001000000010000000100000091 -S31540011410010000000100000081C3E0080100000056 -S315400114200100000001000000010000000100000071 -S31540011430010000000100000081C3E0080100000036 -S31540011440D482018090A2000916BFFFFE9612800B3E -S3154001145081C3E0089010000BD48201C090A200091C -S3154001146016BFFFFE9612800B81C3E0089010000B59 -S3154001147090A22004C0A201A090A22004C0A201A073 -S3154001148090A22004C0A201A090A22004C0A201A063 -S31540011490C0A2018090A2200414BFFFF70100000002 -S315400114A081C3E0080100000090A22004C0A201E02F -S315400114B090A22004C0A201E090A22004C0A201E0B3 -S315400114C090A22004C0A201E0C0A201C090A22004C3 -S315400114D014BFFFF70100000081C3E00801000000CE -S315400114E0981000089610000A98A3200814BFFFFF21 -S315400114F0D43B00099810000898A3200814BFFFFFA9 -S31540011500C01B00099810000898A32004D6030009BF -S3154001151080A2C00A1280000698A3200434BFFFFDB2 -S31540011520D603000981C3E0089010200090102001E5 -S31540011530981000089610000A98A3200814BFFFFFD0 -S31540011540D43B00099810000898A32004D60300094B -S3154001155080A2C00A1280000698A3200434BFFFFD72 -S31540011560D603000981C3E0089010200090102001A5 -S315400115709810000898A32004D2A301A0DA8301A001 -S3154001158080A340091280000698A3200414BFFFFCE3 -S31540011590D2A301A081C3E008901020009010200141 -S315400115A09A1000089AA3400AD6A34180D883418065 -S315400115B0981B000B988B0009128000069AA3400ADB -S315400115C014BFFFFBD6A3418081C3E00890102000E1 -S315400115D0901020019A1000089AA3400BD8A241CD41 -S315400115E0C48241CD8418800C8488800A128000060A -S315400115F09AA3400B14BFFFFBD8A241CD81C3E0089B -S315400116009010200090102001010000000100000010 -S31540011610010000001310008092126138D40240008C -S3154001162080A2A0011280000780A0A002D40240003F -S31540011630D4024000952AA002108000050100000056 -S315400116403280000381E80000D402400081E00000BE -S3154001165093480000818A602023100045A2146278D5 -S31540011660A40460040100000081C4400081CC8000D4 -S3154001167091D0200191D020012680000590002001C3 -S3154001168090222001912A2001912A200281C3E0085B -S315400116900100000081C3E008D082004081C3E00818 -S315400116A0D2A2004081C3E008D082018081C3E00814 -S315400116B0D2A2018081C3E008D08201A081C3E008A3 -S315400116C0D2A201A081C3E008D08201C081C3E00853 -S315400116D0D2A201C081C3E008D08201E081C3E00803 -S315400116E0D2A201E081C3E008D2A2000081C3E00892 -S315400116F0D082000081C3E00891480000818A000041 -S3154001170001000000010000000100000081C3E00863 -S315400117100100000081C3E008C0A000A081C3E00829 -S31540011720C0A000C081C3E008D01A0000010000003B -S31540011730010000000100000001000000010000005E -S315400117409DE3BF701310006DCD1A6170CD3FBFE0B0 -S31540011750111000801B100080C91B61E0C51A21D8F9 -S31540011760C11FBFE095A088C4D53FBFF0D91FBFF0C8 -S3154001177003100080D11861E881AB0A4801000000DE -S315400117800380002BC13FBFD8F91FBFD8B5A0055C68 -S31540011790F53FBFF0ED1FBFF0F11FBFF0A5A589587A -S315400117A0E91FBFE0A1A488D41510006DA1A00130A6 -S315400117B0DD1AA17881AC0ACE010000000D80002D12 -S315400117C0F53FBFD0C51FBFD083A018C291A0492104 -S315400117D099A01928D51FBFE091A308CA1710006D1B -S315400117E091A00128FD1AE18081AA0ADE01000000CC -S315400117F00D80002F01000000400001AE01000000F5 -S315400118004000020C0100000080A22000128000313D -S3154001181001000000400002610100000080A220009A -S315400118200280003501000000308000317FFFBE7428 -S3154001183090102001F91FBFD8B5A0055CF53FBFF058 -S31540011840ED1FBFF0F11FBFF0A5A58958E91FBFE005 -S31540011850A1A488D41510006DA1A00130DD1AA1788C -S3154001186081AC0ACE010000001BBFFFD7F53FBFD0B8 -S315400118707FFFBE6390102002C51FBFD083A018C250 -S3154001188091A0492199A01928D51FBFE091A308CA63 -S315400118901710006D91A00128FD1AE18081AA0ADE88 -S315400118A0010000001BBFFFD5010000007FFFBE54B1 -S315400118B0901020034000017F01000000400001DD3F -S315400118C00100000080A2200002BFFFD301000000FA -S315400118D07FFFBE4B010000004000023001000000C6 -S315400118E080A2200002800004010000007FFFBE4468 -S315400118F09010200581C7E00881E800009DE3BF986C -S315400119007FFFFF7D210000047FFFFF7D90120010C5 -S315400119107FFFFF79B0102000808A00100280000B03 -S315400119209010200040000267010000007FFFBE4387 -S3154001193001000000912A20047FFFBE2C900220085E -S315400119407FFFFF800100000081C7E00881E80000B9 -S31540011950191000809813217811100200921020006E -S31540011960150FF76C9412A3D7D03B0000D42320085F -S31540011970C11B0000C503200887A089220100000081 -S3154001198089A005408DA0892281A8CA2601000000B0 -S3154001199033800003901020009010200181C3E0089D -S315400119A001000000C11A0000C51A400089A0084282 -S315400119B081C3E008C93A8000C11A0000C51A400037 -S315400119C089A0094281C3E008C93A80001910008004 -S315400119D098132178D0230000D2232008C1030000A8 -S315400119E0C303200885A00D2181C3E008C53A8000C4 -S315400119F0C11A0000C51A400089A009C2C93A80002F -S31540011A0081C3E00801000000C11A000085A005401D -S31540011A10C53A400081C3E008010000000100000012 -S31540011A20010000000100000001000000010000006B -S31540011A30010000000100000001000000010000005B -S31540011A40010000000100000001000000010000004B -S31540011A50010000000100000001000000010000003B -S31540011A60010000000100000001000000010000002B -S31540011A70010000000100000001000000010000001B -S31540011A80010000000100000001000000010000000B -S31540011A9001000000010000000100000081A00020BB -S31540011AA081C3E00801000000C11A000081C3E008BB -S31540011AB001000000C51A000089A009C2C93A4000C8 -S31540011AC081C3E00801000000131000809212617882 -S31540011AD0D0224000C102400085A01900C53A40000D -S31540011AE081C3E008D01A4000131000809212617839 -S31540011AF0D0224000C102400085A01880C522400086 -S31540011B0081C3E008D0024000151000809412A178EC -S31540011B10D03A8000C11A800085A01A40C5228000B3 -S31540011B2081C3E008D0028000151000809412A1788C -S31540011B30D0228000C102800085A01A20C5228000E3 -S31540011B4081C3E008D0028000151000809412A1786C -S31540011B50D0228000C102800081A01920C13A8000B4 -S31540011B6081C3E008D01A8000151000809412A17834 -S31540011B70D03A8000C11A800081A018C0C1228000DD -S31540011B8081C3E008D0028000151000809412A1782C -S31540011B90D0228000CB0280008DA00025CD2280007E -S31540011BA081C3E008D0028000151000809412A1780C -S31540011BB0D0228000CB0280008DA000A5CD228000DE -S31540011BC081C3E008D0028000151000809412A178EC -S31540011BD0D0228000CB0280008DA00125CD2280003D -S31540011BE081C3E008D0028000191000809813217843 -S31540011BF0D03B0000D43B2008C11B0000C51B200878 -S31540011C0081A80A420100000033800009901020009B -S31540011C1029800007901020012D8000059010200298 -S31540011C202F8000039010200391D0200081C3E0084B -S31540011C30010000001910008098132178D03B000064 -S31540011C40D43B2008C11B0000C51B200881A80AC23D -S31540011C500100000033BFFFF69010200029BFFFF4BA -S31540011C60901020012DBFFFF2901020022FBFFFF0F0 -S31540011C709010200391D020001910008098132178EC +S3154001004082102083C226200882102000C02600008C +S315400100508200600180A0606412BFFFFD01000000C4 +S3154001006082102000C40600008200600180A0606406 +S3154001007012BFFFFD0100000082102002C2262008A7 +S31540010080A0062004C28400208088600402BFFFFECF +S3154001009001000000C0262008C0260000C2840020BE +S315400100A084102001833860148208603F80A060017B +S315400100B002800004A21020011080000E821020034D +S315400100C0C0260000A200A001C2840020833860142B +S315400100D08208603F80A0401122BFFFFA84100001D0 +S315400100E080A4600134800002A21000028210200325 +S315400100F0C2262008C28400208208600780A06006CC +S315400101000280000801000000C2860020C28400204F +S315400101108208600780A0600612BFFFFC0100000054 +S31540010120C0262008C026200480A460010480000463 +S3154001013082102034C284002082102034C22600005E +S31540010140C2840020C284002080A46001048000197A +S315400101508210200129100070A4102001A81520301A +S3154001016090100012400024D592102041C24D000843 +S31540010170C2260000A404A00180A4801112BFFFFA88 +S3154001018090100012C2840020C2840020833860147B +S315400101908208603F80A040110280000401000000F7 +S315400101A07FFFC5FE90102006C284002082102001E8 +S315400101B0C226200CC2840020808860011280005330 +S315400101C082102083C226200880A46001028000425A +S315400101D001000000C28400208088640002BFFFFE47 +S315400101E001000000C2840020808860010280004F27 +S315400101F080A460010480005280A46000C284002073 +S315400102008330601A80A04011028000040100000082 +S315400102107FFFC5E290102009C284002080886100DA +S315400102200280004A01000000C284002080886400E8 +S315400102300280004C0100000029100070A41020002B +S31540010240A8152030E6860020921020414000249BCC +S3154001025090100012C24D000880A040132280000574 +S31540010260A404A0017FFFC5CD9010200CA404A001D9 +S3154001027080A4401214BFFFF480A460010480000FE3 +S3154001028001000000C2840020808861001280003F86 +S3154001029001000000C28400208330601A80A0600003 +S315400102A01280003701000000C2840020808864006B +S315400102B01280003001000000E0840020808C200183 +S315400102C01280000E01000000C026200881C7E00808 +S315400102D091E82000C28400208088600112BFFFC2DD +S315400102E001000000C28400208088600102BFFFFA3D +S315400102F00100000030BFFFBC7FFFC5A89010200C55 +S31540010300C026200830BFFFF27FFFC5A4901020070A +S3154001031082102083C226200880A4600112BFFFAE4E +S315400103200100000030BFFFEC7FFFC59C9010200804 +S3154001033080A4600114BFFFB280A4600034BFFFC037 +S315400103402910007030BFFFDD7FFFC5949010200A51 +S31540010350C28400208088640032BFFFB92910007032 +S315400103607FFFC58E9010200B10BFFFB5291000707E +S315400103707FFFC58A9010200B30BFFFD07FFFC58716 +S315400103809010200E30BFFFC97FFFC5849010200D0D +S3154001039030BFFFC103100123C40060788528A00245 +S315400103A08610607890022010D020C002C400607888 +S315400103B08400A001C420607881C3E00801000000E8 +S315400103C0C0220000C022204082103FFFC222200CE2 +S315400103D00310012384102001C420607881C3E00802 +S315400103E00100000003100123C20060C090102000EC +S315400103F0C020600881C3E008010000009DE3BFA062 +S3154001040023100124E00461107FFFC55D9010201187 +S31540010410C024201CC204201C80A060000280004C25 +S3154001042001000000C204201C8330601B80A0401ADA +S315400104300A80004E80A6A0000280003FC2046110DF +S315400104402B100123A6102004AA156078BA102000AB +S31540010450A4102000AE103FFFA8102001AC10201FB1 +S31540010460B8102005BB2F6002C606401DC0240000FF +S31540010470C0242040EE24200CE8254000832D0012A4 +S31540010480A404A001852CA01082108001C224201C46 +S31540010490EE2420408928E0049A00FFFFC206001D91 +S315400104A0980040049B2B60048400400DEC206004BE +S315400104B0EC204000F8204004C0232004E820A01886 +S315400104C0C400400480A0A00012BFFFFE010000004E +S315400104D08728E004C400400380A0A00002BFFFFEBD +S315400104E0010000008200400DC0206018C205400096 +S315400104F080A0600202800004010000007FFFC52742 +S315400105009004FFFFC40560048204A01080A080010E +S3154001051002800004BA1000127FFFC520901000131C +S31540010520C024201C80A6801218BFFFCFA604E0027B +S31540010530C204611084103FFFB0102000C02060400B +S31540010540C420600C81C7E00881E800007FFFC51325 +S3154001055090102001C204201C8330601B80A0401AE9 +S315400105601ABFFFB680A6A0007FFFC50C90102002DF +S3154001057010BFFFB52B1001239DE3BF80231001233C +S3154001058021100124E6042110A404E100C204A004C0 +S31540010590F02460C07FFFC4FA90102010C204A0046A +S315400105A0050180008410A020808840021280014508 +S315400105B001000000C404E100C204E10080A0800102 +S315400105C002800005821020017FFFC4F490102002B2 +S315400105D082102001C224A004C404E100C204E10047 +S315400105E080A080010280014201000000C024A004D5 +S315400105F0C404E100C204E10080A08001028000053C +S3154001060080A720007FFFC4E59010200480A720002A +S315400106101280011180A7200180A6A0010480001A42 +S315400106202F100040A606E001AE15E3E4A810200114 +S31540010630AC14211010800005AA10200180A6801458 +S3154001064004800011A604E00180A4E01F34BFFFFC32 +S31540010650A8052001921000134000290090100017B0 +S31540010660C2058000C4006040872D40138410C0023B +S31540010670C4206040A805200180A6801414BFFFF362 +S31540010680A604E00180A0001C84603FFFC427BFF0A0 +S31540010690C60460C082103FFFF627BFF8C027BFFCE3 +S315400106A0C020E004C020E010C220E014C220E00CCB +S315400106B08206A0038538601F8530A01E8200800116 +S315400106C0AF386002C207BFF08200401B8416E020AB +S315400106D0C227BFECC427BFE829100123AC10200173 +S315400106E0A81520C0310100003B0080002B0180008D +S315400106F080A7200002800003821020018210001C86 +S31540010700C407BFFC80A08001168000CB80A72001D2 +S315400107100480001680A5E00004800014C207BFFCD7 +S31540010720C407BFFC8928601883286010881100011E +S315400107308328A008881100028400E0248811000162 +S3154001074082102001C820E0201080000680A04017BA +S31540010750C8208000820060018400A00480A0401768 +S3154001076012BFFFFC01000000C207BFF0E827BFF43B +S3154001077080A68001A2100001048000338400E008B5 +S315400107801080000EE607BFECE624A004832D8011FD +S31540010790C220E008833E4011808860011280001328 +S315400107A08400E008A204600180A68011048000262E +S315400107B0A604E001C605000080A7200002BFFFF3A2 +S315400107C080A7200102800079C407BFF8C424A00491 +S315400107D0832D8011C220E008833E4011808860014C +S315400107E002BFFFF18400E008C200800080A06000E3 +S315400107F012BFFFFE01000000C204A0048088401819 +S315400108000280006701000000C204A0048088401DE8 +S315400108100280006001000000EA24A004C204A00492 +S31540010820808840151280005601000000C405000072 +S315400108308400A008A204600180A6801114BFFFDED7 +S31540010840A604E001C020800010800005A21020000F +S3154001085080A460200280000780A72000833E4011CB +S315400108608088600122BFFFFBA204600180A72000AF +S315400108701280005180A720018204401B8210602013 +S31540010880C224A004A32D8011E2208000C200800072 +S3154001089080A0600012BFFFFE01000000C204A00458 +S315400108A0808860200280005D01000000C204A0042F +S315400108B0808840180280005601000000C204A0044E +S315400108C08088401D0280004E01000000C207BFF42F +S315400108D0C4004000C204A008E604A00C8600A0089B +S315400108E0E220A008C400C00080A0A00012BFFFFE05 +S315400108F001000000C404A0048088A0202280003C9E +S31540010900C227BFE4C404A004808880182280003432 +S31540010910C227BFE4C404A0048088801D2280002C25 +S31540010920C227BFE4C404A00880A04002028000049C +S31540010930010000007FFFC4199010200EC204A00CD4 +S3154001094080A4C00102800005C407BFF47FFFC41321 +S315400109509010200FC407BFF4C207BFFCC600800039 +S31540010960C407BFF8820060018400A001EA24A00404 +S31540010970C227BFFC10BFFF5FC427BFF87FFFC40774 +S3154001098090102007C405000010BFFFAB8400A008EB +S315400109907FFFC4029010200630BFFFA07FFFC3FF38 +S315400109A09010200530BFFF99F624A00410BFFF79AF +S315400109B0832D80110280001CC607BFF88210E020FB +S315400109C0C224A00410BFFFB1A32D80117FFFC3F342 +S315400109D09010200D10BFFFD4C207BFE47FFFC3EFC5 +S315400109E09010200C10BFFFCCC207BFE47FFFC3EBC2 +S315400109F09010200B10BFFFC4C207BFE47FFFC3E7BF +S31540010A009010200A10BFFFB3C207BFF47FFFC3E3B4 +S31540010A109010200930BFFFAA7FFFC3E09010200845 +S31540010A2030BFFFA3C607BFE8C624A00410BFFF9787 +S31540010A30A32D8011C2042110C020E00C84103FFF79 +S31540010A40B0102000C0206040C420600C81C7E0087F +S31540010A5081E800000280001E1110004080A720009E +S31540010A60A610001B04BFFF08A81020002F1000404D +S31540010A70AC142110AE15E3E410800005AA10200144 +S31540010A8080A7001404BFFF00A604E00180A4E01F74 +S31540010A9034BFFFFCA805200192100013400027EF48 +S31540010AA090100017C2058000C4006040872D401396 +S31540010AB08410C002C420604010BFFFF2A805200187 +S31540010AC07FFFC3B69010200130BFFEBB9210001BC2 +S31540010AD0400027E2901223E4C2042110852F001B17 +S31540010AE0C420604010BFFEE980A0001C7FFFC3AB5D +S31540010AF09010200330BFFEBE9DE3BF80031001244A +S31540010B0011004034231000407FFFC396F02061104E +S31540010B10C0260000C026204082103FFFC226200C7E +S31540010B200310012384102001A0102001C420607805 +S31540010B30A214639492100010400027C8901000112F +S31540010B40A004200180A4201012BFFFFC92100010C7 +S31540010B50F8062020B937201C231001232D00003F21 +S31540010B603700002AB8072001A2146078AC15A3FE0D +S31540010B70B616E2AAA6100018AE102000B4103FFF28 +S31540010B80BA102001A8102020AA10202180A72001F8 +S31540010B900280000580A5E0007FFFC3799010001711 +S31540010BA080A5E0000280000F01000000C024C000C3 +S31540010BB0C024E040F424E00CFA244000832DE01CDC +S31540010BC0C224E024C204E0248330601C80A0401784 +S31540010BD002800004010000007FFFC37090102012C4 +S31540010BE0EC24E008C204E00880A04016028000041C +S31540010BF0010000007FFFC36990102001EC24E04012 +S31540010C00C204E04080A040160280000401000000BA +S31540010C107FFFC36290102002C204E00880A06000FA +S31540010C2012BFFFFE01000000C204400080A0601018 +S31540010C3002800005A01020017FFFC35890102003B9 +S31540010C40A0102001832C2002C204400184250010FB +S31540010C5080A0800122800005A00420017FFFC34FB0 +S31540010C6090102004A004200180A4201012BFFFF799 +S31540010C70832C2002FA244000F624C000EC24E040F4 +S31540010C80C204C00080A0401B028000040100000095 +S31540010C907FFFC34290102005C204E04080A0401669 +S31540010CA002800004010000007FFFC33C9010200534 +S31540010CB0EC24E008C204E00880A0600012BFFFFEF9 +S31540010CC001000000C204400080A0601002800005BF +S31540010CD0A410201F7FFFC33190102006A410201FAF +S31540010CE0A0102001832C2002C204400180A04012A2 +S31540010CF022800005A00420017FFFC3289010200711 +S31540010D00A004200180A4200812BFFFF7A404BFFE5F +S31540010D10A410201CA010200A832C2002C2044001EA +S31540010D2080A0401222800005A00420017FFFC31B42 +S31540010D3090102008A004200180A4201012BFFFF7C4 +S31540010D40A404BFFEFA27BFF082102002C407BFF0F9 +S31540010D508400A001C427BFF4C407BFF48400A001E6 +S31540010D60C427BFF8C407BFF88400A001C427BFFC4D +S31540010D7084102006C427BFE0C024C000C024E04040 +S31540010D80FA244000C224E040C224E00883444000E3 +S31540010D90808861000280000501000000805000014A +S31540010DA08050000180500001C207BFE0C227BFE466 +S31540010DB0C207BFE080A060060280000582102002C3 +S31540010DC07FFFC2F69010200A82102002C224E0085A +S31540010DD001000000C207BFE0C227BFE4C207BFE06F +S31540010DE080A0600602800005821020027FFFC2EBD0 +S31540010DF09010200A82102002C224E008010000005F +S31540010E00C027BFE4C207BFE480A060001280007320 +S31540010E1001000000C204E00880A0600012BFFFFE8E +S31540010E2001000000C204400080A06004028000046A +S31540010E30010000007FFFC2D99010200DC024E04080 +S31540010E40EC24E008FA2440004000020B01000000B7 +S31540010E504000020B90122F00EC24E040C204E04017 +S31540010E6080A0600002BFFFFE01000000C2044000F6 +S31540010E7080A0600202800004010000007FFFC2C71B +S31540010E809010200EC204600480A0601F02800004FE +S31540010E90010000007FFFC2C19010200F400001F603 +S31540010EA0A4102002400001F690023F00400001F2EA +S31540010EB001000000400001F290023F00C2044000E0 +S31540010EC0A004A00180A0401022800005A52CA0020C +S31540010ED07FFFC2B290102010A52CA002C40440127C +S31540010EE08225401080A0800102800004A4100010D9 +S31540010EF07FFFC2AA9010201180A4201012BFFFECE0 +S31540010F0001000000C024E040F424E00CAE05E001FD +S31540010F1080A7001714BFFF1EA624F00080A720015A +S31540010F200480002C01000000C0262024C206202493 +S31540010F3080A060001280002C010000000304000024 +S31540010F40C2262024C406202480A0800102800005F8 +S31540010F50821020017FFFC29190102014821020013F +S31540010F60C2262020C026202403040000C4062024D3 +S31540010F7080A0800102800004010000007FFFC2873B +S31540010F8090102015C0262020C0262024C2062024E9 +S31540010F9080A060001280001B010000008210200228 +S31540010FA0C2262020C20620208088600202800012CC +S31540010FB001000000C0262020C20620208088600251 +S31540010FC002800004010000007FFFC27490102018C7 +S31540010FD081C7E00891E820007FFFC2709010200B86 +S31540010FE030BFFF8D7FFFC26D9010201310BFFFD51C +S31540010FF0030400007FFFC2699010201730BFFFEE47 +S315400110007FFFC2669010201610BFFFE682102002B5 +S315400110109DE3BFA07FFFC27D0100000080A22000AA +S315400110200280003B0100000080A6200012800035AE +S31540011030010000007FFFC27501000000912A2004D3 +S315400110407FFFC24F9002200340001880010000003C +S3154001105080A2200012800028010000004000181FD5 +S3154001106001000000400017CD01000000400001E3EF +S315400110700100000080A6A0001280001C01000000B3 +S315400110807FFFC26221100124912A2002A01421145B +S31540011090C204000880A060000280000A80A62000E9 +S315400110A07FFFC25A01000000912A20027FFFC257EA +S315400110B0E00400089FC400000100000080A6200053 +S315400110C002800004010000007FFFC26990100019F0 +S315400110D0400004400100000040001E4F0100000096 +S315400110E0400015D281E8000040001F2101000000A8 +S315400110F030BFFFE47FFFC2299010200130BFFFD8E7 +S315400111007FFFC24B9010001930BFFFCB7FFFC21546 +S315400111101100400C10BFFFC680A62000031001231A +S31540011120C40060C48400A001C42060C481C3E00837 +S31540011130010000009DE3BFA07FFFC20A11004044A9 +S3154001114082103FFFE4062008C2262004A40CA00713 +S31540011150C4060000C206000080A08001028000741F +S31540011160010000008210201FC2262004C226000072 +S3154001117080A4A0000280004E8210200085286004D1 +S31540011180840600028200600180A04012C020A0189F +S3154001119012BFFFFC85286004A0102000A610200F76 +S315400111A0AA102006A81020107FFFC1F5901000104C +S315400111B0A2042001832C600486060001A12C200490 +S315400111C0C026000184060010E620E004EA20A018AB +S315400111D0C206000180A0600F028000058206001051 +S315400111E07FFFC1EE90102003820600108410200E6E +S315400111F0872C6004E6206018C206000380A04002E6 +S3154001120012BFFFFE010000008400BFFF80A0BFFFA8 +S3154001121012BFFFFA01000000852C6004C2060002DD +S3154001122080A0600F12BFFFFE82060010C200601848 +S315400112308088601002800033A0060010E824201840 +S31540011240C204201880886010128000350100000019 +S3154001125080A4801114BFFFD5A010001180A4A00165 +S315400112600480000C821020007FFFC1C59010200829 +S315400112708210200FC22620188210202FC226202835 +S31540011280C206202080A0600D12BFFFFE8210200002 +S3154001129085286004840600028200600180A0401215 +S315400112A0C020A01812BFFFFC85286004211001242C +S315400112B0C204211080A06000028000109210001923 +S315400112C011100044400025E59012211C7FFFFC3D92 +S315400112D0D0042110C204211084102001B3288019A2 +S315400112E0F22060408210200FC22620148210200D69 +S315400112F0C2262018A780000081C7E00881E80000C7 +S315400113007FFFC1A690102004E8242018C2042018AB +S315400113108088601022BFFFD080A480117FFFC19FCB +S315400113209010200510BFFFCC80A480117FFFC19B88 +S315400113309010200110BFFF8D8210201F0000000079 +S315400113400100000001000000010000000100000052 +S31540011350010000000100000081C3E0080100000017 +S315400113600100000001000000010000000100000032 +S31540011370010000000100000081C3E00801000000F7 +S315400113800100000001000000010000000100000012 +S31540011390010000000100000081C3E00801000000D7 +S315400113A001000000010000000100000001000000F2 +S315400113B0010000000100000081C3E00801000000B7 +S315400113C0D482018090A2000916BFFFFE9612800BBF +S315400113D081C3E0089010000BD48201C090A200099D +S315400113E016BFFFFE9612800B81C3E0089010000BDA +S315400113F090A22004C0A201A090A22004C0A201A0F4 +S3154001140090A22004C0A201A090A22004C0A201A0E3 +S31540011410C0A2018090A2200414BFFFF70100000082 +S3154001142081C3E0080100000090A22004C0A201E0AF +S3154001143090A22004C0A201E090A22004C0A201E033 +S3154001144090A22004C0A201E0C0A201C090A2200443 +S3154001145014BFFFF70100000081C3E008010000004E +S31540011460981000089610000A98A3200814BFFFFFA1 +S31540011470D43B00099810000898A3200814BFFFFF29 +S31540011480C01B00099810000898A32004D603000940 +S3154001149080A2C00A1280000698A3200434BFFFFD33 +S315400114A0D603000981C3E008901020009010200166 +S315400114B0981000089610000A98A3200814BFFFFF51 +S315400114C0D43B00099810000898A32004D6030009CC +S315400114D080A2C00A1280000698A3200434BFFFFDF3 +S315400114E0D603000981C3E008901020009010200126 +S315400114F09810000898A32004D2A301A0DA8301A082 +S3154001150080A340091280000698A3200414BFFFFC63 +S31540011510D2A301A081C3E0089010200090102001C1 +S315400115209A1000089AA3400AD6A34180D8834180E5 +S31540011530981B000B988B0009128000069AA3400A5B +S3154001154014BFFFFBD6A3418081C3E0089010200061 +S31540011550901020019A1000089AA3400BD8A241CDC1 +S31540011560C48241CD8418800C8488800A128000068A +S315400115709AA3400B14BFFFFBD8A241CD81C3E0081B +S315400115809010200090102001010000000100000091 +S315400115900100000013100080921260E0D402400066 +S315400115A080A2A0011280000780A0A002D4024000C0 +S315400115B0D4024000952AA0021080000501000000D7 +S315400115C03280000381E80000D402400081E000003F +S315400115D093480000818A602023100045A21461F8D7 +S315400115E0A40460040100000081C4400081CC800055 +S315400115F091D0200191D02001268000059000200144 +S3154001160090222001912A2001912A200281C3E008DB +S315400116100100000081C3E008D082004081C3E00898 +S31540011620D2A2004081C3E008D082018081C3E00894 +S31540011630D2A2018081C3E008D08201A081C3E00823 +S31540011640D2A201A081C3E008D08201C081C3E008D3 +S31540011650D2A201C081C3E008D08201E081C3E00883 +S31540011660D2A201E081C3E008D2A2000081C3E00812 +S31540011670D082000081C3E00891480000818A0000C1 +S3154001168001000000010000000100000081C3E008E4 +S315400116900100000081C3E008C0A000A081C3E008AA +S315400116A0C0A000C081C3E008D01A000001000000BC +S315400116B001000000010000000100000001000000DF +S315400116C09DE3BF8803100070D1186078D13FBFF009 +S315400116D003100080D11FBFF0D9186180031000802C +S315400116E0D518618895A308CAD53FBFF80310008075 +S315400116F0D91FBFF8D518619081AB0A4A0100000095 +S3154001170023800038D127BFEC91A005480310007013 +S31540011710D13FBFF8D51FBFF8D91FBFF899A3094AD2 +S31540011720D51FBFF099A308CA99A0012CD51860808E +S3154001173081AB0ACA010000002D800024D127BFECED +S3154001174091A018C891A20928D51FBFF091A01928C8 +S3154001175091A208CA91A0012803100070D51860888B +S3154001176081AA0ACA010000000D800015010000008F +S315400117704000019001000000400001EE0100000020 +S3154001178080A220001280000B0100000040000243AD +S315400117900100000080A22000128000040100000028 +S315400117A081C7E00881E800007FFFC07C91E8200501 +S315400117B07FFFC07A0100000030BFFFF57FFFC07791 +S315400117C09010200330BFFFEBD327BFE87FFFC073E4 +S315400117D090102002D307BFE810BFFFDAD107BFEC54 +S315400117E0D327BFE87FFFC06D90102001D307BFE824 +S315400117F010BFFFC6D107BFEC9DE3BFA07FFFFF9E91 +S31540011800210000047FFFFF9E901200107FFFFF9A88 +S3154001181001000000808A001012800004B0102000F0 +S3154001182081C7E00881E80000400002669010200070 +S315400118307FFFC07601000000912A20047FFFC0503F +S31540011840900220087FFFFF9F81E800000100000011 +S3154001185019100080981321201110020092102000C7 +S31540011860150FF76C9412A3D7D03B0000D423200860 +S31540011870C11B0000C503200887A089220100000082 +S3154001188089A005408DA0892281A8CA2601000000B1 +S3154001189033800003901020009010200181C3E0089E +S315400118A001000000C11A0000C51A400089A0084283 +S315400118B081C3E008C93A8000C11A0000C51A400038 +S315400118C089A0094281C3E008C93A80001910008005 +S315400118D098132120D0230000D2232008C103000001 +S315400118E0C303200885A00D2181C3E008C53A8000C5 +S315400118F0C11A0000C51A400089A009C2C93A800030 +S3154001190081C3E00801000000C11A000085A005401E +S31540011910C53A400081C3E008010000000100000013 +S31540011920010000000100000001000000010000006C +S31540011930010000000100000001000000010000005C +S31540011940010000000100000001000000010000004C +S31540011950010000000100000001000000010000003C +S31540011960010000000100000001000000010000002C +S31540011970010000000100000001000000010000001C +S31540011980010000000100000001000000010000000C +S3154001199001000000010000000100000081A00020BC +S315400119A081C3E00801000000C11A000081C3E008BC +S315400119B001000000C51A000089A009C2C93A4000C9 +S315400119C081C3E008010000001310008092126120DB +S315400119D0D0224000C102400085A01900C53A40000E +S315400119E081C3E008D01A4000131000809212612092 +S315400119F0D0224000C102400085A01880C522400087 +S31540011A0081C3E008D0024000151000809412A12045 +S31540011A10D03A8000C11A800085A01A40C5228000B4 +S31540011A2081C3E008D0028000151000809412A120E5 +S31540011A30D0228000C102800085A01A20C5228000E4 +S31540011A4081C3E008D0028000151000809412A120C5 +S31540011A50D0228000C102800081A01920C13A8000B5 +S31540011A6081C3E008D01A8000151000809412A1208D +S31540011A70D03A8000C11A800081A018C0C1228000DE +S31540011A8081C3E008D0028000151000809412A12085 +S31540011A90D0228000CB0280008DA00025CD2280007F +S31540011AA081C3E008D0028000151000809412A12065 +S31540011AB0D0228000CB0280008DA000A5CD228000DF +S31540011AC081C3E008D0028000151000809412A12045 +S31540011AD0D0228000CB0280008DA00125CD2280003E +S31540011AE081C3E008D002800019100080981321209C +S31540011AF0D03B0000D43B2008C11B0000C51B200879 +S31540011B0081A80A420100000033800009901020009C +S31540011B1029800007901020012D8000059010200299 +S31540011B202F8000039010200391D0200081C3E0084C +S31540011B30010000001910008098132120D03B0000BD +S31540011B40D43B2008C11B0000C51B200881A80AC23E +S31540011B500100000033BFFFF69010200029BFFFF4BB +S31540011B60901020012DBFFFF2901020022FBFFFF0F1 +S31540011B709010200391D02000191000809813212045 +S31540011B80D0230000D2232008C1030000C30320084C +S31540011B9081A80A210100000033BFFFE59010200013 +S31540011BA029BFFFE3901020012DBFFFE190102002D5 +S31540011BB02FBFFFDF9010200391D020001910008025 +S31540011BC098132120D0230000D2232008C10300000E +S31540011BD0C303200881A80AA10100000033BFFFD436 +S31540011BE09010200029BFFFD2901020012DBFFFD0B9 +S31540011BF0901020022FBFFFCE9010200391D02000DD +S31540011C001910008098132120D03B0000D43B2008B6 +S31540011C10C11B0000C51B200889A008C2C93B0000A2 +S31540011C2081C3E008D01B00001910008098132120C1 +S31540011C30D0230000D2232008C1030000C30320089B +S31540011C4085A00821C523000081C3E008D003000018 +S31540011C501910008098132120D0230000D223200898 +S31540011C60C1030000C303200885A008A1C5230000C5 +S31540011C7081C3E008D0030000191000809813212089 S31540011C80D0230000D2232008C1030000C30320084B -S31540011C9081A80A210100000033BFFFE59010200012 -S31540011CA029BFFFE3901020012DBFFFE190102002D4 -S31540011CB02FBFFFDF9010200391D020001910008024 -S31540011CC098132178D0230000D2232008C1030000B5 -S31540011CD0C303200881A80AA10100000033BFFFD435 -S31540011CE09010200029BFFFD2901020012DBFFFD0B8 -S31540011CF0901020022FBFFFCE9010200391D02000DC -S31540011D001910008098132178D03B0000D43B20085D -S31540011D10C11B0000C51B200889A008C2C93B0000A1 -S31540011D2081C3E008D01B0000191000809813217868 -S31540011D30D0230000D2232008C1030000C30320089A -S31540011D4085A00821C523000081C3E008D003000017 -S31540011D501910008098132178D0230000D22320083F -S31540011D60C1030000C303200885A008A1C5230000C4 -S31540011D7081C3E008D0030000191000809813217830 -S31540011D80D0230000D2232008C1030000C30320084A -S31540011D9085A00921C523000081C3E008D0030000C6 -S31540011DA01910008098132178D0230000D2232008EF -S31540011DB0C1030000C303200885A009A1C523000073 -S31540011DC081C3E008D00300001910008098132178E0 -S31540011DD0D0230000C103000083A00520C3230000D7 -S31540011DE081C3E008D0030000131000809212619075 -S31540011DF0C51A6008C11A400089A0084091A108C2CD -S31540011E0095A209C495A2894281C3E008D53A00004A -S31540011E1013100080921261B0C1024000C3026004F7 -S31540011E2085A0082087A088A189A0C9A289A10921E6 -S31540011E3081C3E008C92200009610200213100080D9 -S31540011E4092126190151000809412A190D502400023 -S31540011E50D7028000D5220000D8020000131000806E -S31540011E60921261B096A2E00112BFFFF90100000093 -S31540011E7081C3E008010000001310008092126190B6 -S31540011E80151000809412A1B0C1028000C51A6010DD -S31540011E9083A0082089A088C08BA109A18DA10942F0 -S31540011EA08FA1492691A0054681C3E008D13A000099 -S31540011EB01110008090122188C11A0000C51A000035 -S31540011EC0C91A0000CD1A0000D11A0000D51A000027 -S31540011ED0D91A0000DD1A0000E11A0000E51A0000D7 -S31540011EE0E91A0000ED1A0000F11A0000F51A000087 -S31540011EF0F91A0000FD1A000081C3E0080100000044 -S31540011F0029100080A815215827100080A614E1C089 -S31540011F10C12CC000E604C000A134E00EA00C20078D -S31540011F20A0A42002AE1020002D100080AC15A1C047 -S31540011F30AE05E001AC05A008C1358000C12D000009 -S31540011F40EA050000AB35600DAA8D600112BFFFF9AD -S31540011F5001000000808000100280002F2B3C1FFFF3 -S31540011F60AA1563FFA60CC015E6250000C10D0000A9 -S31540011F702B100080AA1561CC2D100047AC15A3E0AB -S31540011F80AE25E001E0054000E025800081D8200033 -S31540011F9001000000010000000100000001000000F6 -S31540011FA001000000010000000100000001000000E6 -S31540011FB001000000010000000100000001000000D6 -S31540011FC001000000010000000100000001000000C6 -S31540011FD001000000010000000100000001000000B6 -S31540011FE00000000080A5C00012BFFFE6AA056008F8 -S31540011FF0C12D0000E60500002B03C000A614C01544 -S31540012000E6250000C10D000081C4400081CC80005E -S315400120100100000081C4800081CCA00401000000C1 -S315400120200100000081C3E008915800000100000052 -S315400120301110008090122158C10A0000C0220000F0 -S31540012040C10A0000C12A0000D40200001300038027 -S31540012050942A800980A0000A3280004D9010200306 -S315400120601303E000D223BFA0C023BFA4C10BBFA06E -S31540012070C023BFA0151000809412A170C102800038 -S315400120800100000001000000C10BBFA0C10BBFA4AD -S3154001209083A00520C12BBFA0D003BFA0808A220008 -S315400120A02280003B901020049010200015100080E3 -S315400120B09412A140C5028000C902A008D102A00C19 -S315400120C01310008092126170C70240008DA08944AE -S315400120D081A98AC8010000000380000501000000B3 -S315400120E0901020011080002A01000000C5028000E6 -S315400120F0C902A008D102A00C13100080921261708F -S31540012100CB0240008DA0894481A98AC80100000004 -S315400121100380000501000000901020011080001C82 -S315400121200100000025100080A414A168C11C800094 -S31540012130C51C800080A000003280000685A008C032 -S3154001214081A80AC2010000001380000301000000BB -S31540012150901020050100000025100080A414A168FC -S31540012160C11C8000C51C800080A000000100000049 -S315400121703280000685A008C081A80AC2010000007D -S3154001218013800003010000009010200701000000A9 -S3154001219081C3E00801000000901020019544000031 -S315400121A09532A01E940AA00380A2800002800040BE -S315400121B09010200080A2A0030280003D13100080F1 -S315400121C0921261F0C11A4000C51A6008FD026018FA -S315400121D095A0003E99A0003E9DA0003E170000C07C -S315400121E09612E078A182C0000100000001000000C3 -S315400121F00100000001000000010000000100000094 -S3154001220081A0002083A0002195A0002A99A0002C3E -S315400122109DA0002E170000C09612E07CA182C0004E -S315400122200100000001000000010000000100000063 -S31540012230010000000100000085A0002287A00023C4 -S31540012240A180000001000000010000000100000023 -S3154001225001000000010000000100000089A00842C1 -S31540012260A9A2883ED93A4000DD224000CD1A60102D -S31540012270D102600881A90A46010000000380000CD2 -S3154001228081AD0A2801000000038000099344000043 -S315400122909332601B920A60079010200080A2A00131 -S315400122A002800003902260079022600481C3E00807 -S315400122B001000000C12BBFA081C3E008D003BFA02D -S315400122C0D023BFA081C3E008C10BBFA0010000001D -S315400122D09DE3BF6040001B19B0102000913A200ACF -S315400122E0900A200380A220011280111101000000F2 -S315400122F07FFFBBBE9010200D190C40291B23CD1B1F -S315400123009410200096102000981320069A13609B83 -S31540012310D43FBFE0D43FBFC0D43FBFE87FFFFF42B9 -S31540012320D83FBFF0900A3000032804009012208065 -S315400123308210600FC22200001B1000479002200449 -S315400123409A1363009A234008191000009B3B6002D0 -S31540012350032784009A13400C82106010C222200485 -S315400123607FFFFED4DA2200007FFFFFD61103E00093 -S315400123702D100080C025A1C07FFFFDD49010200004 -S31540012380809200091280000601000000C205A1C02A -S3154001239080A0600002800004010000007FFFBB981E -S315400123A09010200B7FFFFDC990103FFA03300600C5 -S315400123B080A200011280000480A2600002800EDB30 -S315400123C0010000007FFFBB8E9010200B7FFFFDBFF9 -S315400123D09010201403100D0080A200011280000409 -S315400123E080A2600002800ECC010000007FFFBB840A -S315400123F09010200B7FFFFDB5901020620310162030 -S3154001240080A200011280000480A2600002800EBDFD -S31540012410010000007FFFBB7A9010200B7FFFFDB3C8 -S31540012420901020050310280080A2000112800006AA -S3154001243001000000C205A1C080A060000280000426 -S31540012440010000007FFFBB6E9010200B7FFFFF9DB8 -S315400124501103C000111C00007FFFFDAC921020004B -S31540012460031FFFFF821063FF80A200011280000A52 -S315400124701B000070C205A1C09A13601F190000100D -S315400124808208400D9813201080A0400C0280000560 -S31540012490113C00007FFFBB5A9010200C113C0000FC -S315400124A07FFFFD9A921020000320000080A20001C8 -S315400124B01280000A1B000070C205A1C09A13601F5A -S315400124C0190000108208400D9813201080A0400C7E -S315400124D002800004010000007FFFBB499010200CE0 -S315400124E0C025A1C0901020007FFFFD8892102000DA -S315400124F080A220001280000601000000C205A1C092 -S3154001250080A0600002800005110144007FFFBB3CB2 -S315400125109010200C11014400132840009012230210 -S315400125207FFFFD7A9212600180A220001280000690 -S3154001253001000000C205A1C080A060002280000504 -S315400125401111FFFF7FFFBB2E9010200C1111FFFFD1 -S315400125507FFFFD76901223FF0300007F821063FF09 -S3154001256080A200011280000601000000C205A1C040 -S3154001257080A06000028000052F1000857FFFBB20F0 -S315400125809010200C2F1000857FFFFD60D01DE0C804 -S31540012590031FFFFF821063FF80A200011280000A21 -S315400125A01B000070C205A1C09A13601F19000010DC -S315400125B08208400D9813201080A0400C028000052F -S315400125C0031000857FFFBB0E9010200C0310008581 -S315400125D0D01860D8C025A1C07FFFFD4C0100000086 -S315400125E00320000080A200011280000A1B00007037 -S315400125F0C205A1C09A13601F190000108208400D40 -S315400126009813201080A0400C028000051910008507 -S315400126107FFFBAFB9010200C19100085C025A1C080 -S315400126207FFFFD3AD01B20B8031FFFFF821063FFD7 -S3154001263080A200011280000A1B000070C205A1C0E1 -S315400126409A13601F190000108208400D981320103C -S3154001265080A0400C02800005331000857FFFBAE858 -S315400126609010200C33100085C025A1C07FFFFD27A7 -S31540012670D01E60F0C205A1C08330600E820860039F -S3154001268080A0600202800004211000807FFFBADC36 -S315400126909010200C7FFFFF0B1103C000111158044D -S315400126A0C02421C07FFFFD299012223403102B0044 -S315400126B08210624680A200011280000503200000BC -S315400126C080A2400102800FC5010000007FFFBACC05 -S315400126D09010200D113C02AF7FFFFD1C901220D1BE -S315400126E0033180558210639A80A200011280000551 -S315400126F00308000080A2400102800FDB01000000B8 -S315400127007FFFBABF9010200D1111FC007FFFFD170E -S3154001271092102000031FE00080A200011280000AEF -S315400127201B000070C205A1C09A13601F190000105A -S315400127308208400D9813200880A0400C02800005B5 -S3154001274011207C017FFFBAAE9010200D11207C0133 -S31540012750C025A1C0901220307FFFFD041300010067 -S315400127600320000080A200011280000A1B000070B5 -S31540012770C205A1C09A13601F190000108208400DBE -S315400127809813200480A0400C028000040100000040 -S315400127907FFFBA9B9010200DC025A1C0901020004C -S315400127A07FFFFCF29210200080A2200012800006DA -S315400127B001000000C205A1C080A0600002800004A3 -S315400127C0010000007FFFBA8E9010200D7FFFFCE7CD -S315400127D0D01DE0C803100085DA0060C080A2000D5C -S315400127E01280000601000000C205A1C080A0600061 -S315400127F0028000051B1000857FFFBA819010200DD5 -S315400128001B1000857FFFFCD9D01B60D0031FE00061 -S3154001281080A200011280000601000000C205A1C08D -S3154001282080A0600002800005031000857FFFBA7416 -S315400128309010200D031000857FFFFCCCD01860B8A6 -S3154001284003100085DA0060A880A2000D1280000AFC -S315400128501B000070C205A1C09A13601F1900001029 -S315400128608208400D9813201080A0400C028000047D -S31540012870010000007FFFBA629010200DC025A1C063 -S315400128807FFFFCBAD01E60F0C205A1C08330600E46 -S315400128908208600380A06002028000042310008049 -S315400128A07FFFBA579010200D7FFFFE861103E0008F -S315400128B02108C6AF901420DEC02461C07FFFFCB35F -S315400128C0A01420DE80A20010128000060100000044 -S315400128D0C20461C080A06000028000052108C6AF25 -S315400128E07FFFBA479010200E2108C6AF7FFFFCB785 -S315400128F0901420DEA01420DE80A200101280000673 -S3154001290001000000C205A1C080A060002280000530 -S315400129101128C6AF7FFFBA3A9010200E1128C6AFD4 -S315400129207FFFFCAA901220DE0308C6AF821060DE4C -S3154001293080A200011280000601000000C205A1C06C -S3154001294080A06000228000051108C6AF7FFFBA2C27 -S315400129509010200E1108C6AF7FFFFC94901220DE26 -S315400129600328C6AF821060DE80A2000112800006F5 -S3154001297001000000C205A1C080A0600022800005C0 -S315400129801128C6AF7FFFBA1E9010200E1128C6AF80 -S315400129907FFFFC86901220DE0308C6AF821060DE00 -S315400129A080A200011280000601000000C205A1C0FC -S315400129B080A0600002800004010000007FFFBA1081 -S315400129C09010200E7FFFFE3F1103E00011151BC042 -S315400129D01310C82115351BC01710C82190122103A9 -S315400129E0921261419412A1037FFFFC809612E1414C -S315400129F080A220021280000601000000C205A1C08B -S31540012A0080A060000280000511351BC07FFFB9FC24 -S31540012A109010200F11351BC01310C82115151BC06E -S31540012A201710C82190122103921261419412A103F9 -S31540012A307FFFFC6E9612E14180A2200112800006C2 -S31540012A4001000000C205A1C080A06000028000050F -S31540012A50901020007FFFB9EA9010200F90102000BF -S31540012A6092102000152000007FFFFC609610200088 -S31540012A7080A220001280000601000000C205A1C00C -S31540012A8080A0600002800005191000857FFFB9DC37 -S31540012A909010200F191000851B100085D01B20D0E7 -S31540012AA07FFFFC52D41B60D880A220021280000610 -S31540012AB001000000C205A1C080A06000028000059F -S31540012AC011151BC07FFFB9CE9010200F11151BC0E9 -S31540012AD01310C82115151BE81710C82190122103A0 -S31540012AE0921261419412A1037FFFFC409612E1418B -S31540012AF080A220011280000601000000C205A1C08B -S31540012B0080A060000280000511151BE87FFFB9BC5B -S31540012B109010200F11151BE81310C82115151BC065 -S31540012B201710C82190122103921261419412A103F8 -S31540012B307FFFFC2E9612E14180A220021280000600 -S31540012B4001000000C205A1C080A06000028000050E -S31540012B5011151BE87FFFB9AA9010200F11151BE82C -S31540012B601310C82190122103921261417FFFFC1F6D -S31540012B70D41DE0C880A22003128000060100000097 -S31540012B80C205A1C080A06000028000050310008537 -S31540012B907FFFB99B9010200F0310008511151BE88C -S31540012BA01310C82190122103921261417FFFFC0F3D -S31540012BB0D41860B880A220031280000A1B0000705E -S31540012BC0C205A1C09A13601F190000108208400D6A -S31540012BD09813201080A0400C0280000511151BE8B7 -S31540012BE07FFFB9879010200F11151BE81310C821DC -S31540012BF0C025A1C090122103921261417FFFFBFBC8 -S31540012C00D41E60F080A2200212800006010000005E -S31540012C10C205A1C080A060000280000515151BE811 -S31540012C207FFFB9779010200F15151BE81710C821A3 -S31540012C30D01E60F09412A1037FFFFBEC9612E14196 -S31540012C4080A220011280000601000000C205A1C039 -S31540012C5080A060000280000515151BE87FFFB9685A -S31540012C609010200F15151BE81710C821D01DE0C87C -S31540012C709412A1037FFFFBDD9612E14180A220035E -S31540012C801280000601000000C205A1C080A06000BC -S31540012C9002800005191000857FFFB9599010200F59 -S31540012CA01910008515151BE81710C821D01B20B82F -S31540012CB09412A1037FFFFBCD9612E14180A220032E -S31540012CC01280000A1B000070C205A1C09A13601F42 -S31540012CD0190000108208400D9813201080A0400C66 -S31540012CE00280000511151BC07FFFB9459010200FCA -S31540012CF011151BC01310C82115351BC01710C8214B -S31540012D00C025A1C090122103921261419412A103E0 -S31540012D107FFFFBC99612E14180A220021280000684 -S31540012D2001000000C205A1C080A06000028000052C -S31540012D3011351BC07FFFB9329010200F11351BC0D2 -S31540012D401310C82115151BC01710C8219012210355 -S31540012D50921261419412A1037FFFFBB79612E141A2 -S31540012D6080A220011280000601000000C205A1C018 -S31540012D7080A0600002800005901020007FFFB920EE -S31540012D809010200F90102000921020001520000076 -S31540012D907FFFFBA99610200080A22000128000062A -S31540012DA001000000C205A1C080A0600002800005AC -S31540012DB01B1000857FFFB9129010200F1B10008554 -S31540012DC003100085D01B60D07FFFFB9BD41860D8D1 -S31540012DD080A220021280000601000000C205A1C0A7 -S31540012DE080A060000280000511151BC07FFFB90459 -S31540012DF09010200F11151BC01310C82115151BE883 -S31540012E001710C82190122103921261419412A10315 -S31540012E107FFFFB899612E14180A2200112800006C4 -S31540012E2001000000C205A1C080A06000028000052B -S31540012E3011151BE87FFFB8F29010200F11151BE802 -S31540012E401310C82115151BC01710C8219012210354 -S31540012E50921261419412A1037FFFFB779612E141E1 -S31540012E6080A220021280000601000000C205A1C016 -S31540012E7080A060000280000511151BE87FFFB8E0C5 -S31540012E809010200F11151BE81310C8219012210331 -S31540012E90921261417FFFFB68D41DE0C880A22003E6 -S31540012EA01280000A1B000070C205A1C09A13601F60 -S31540012EB0190000108208400D9813201080A0400C84 -S31540012EC002800005191000857FFFB8CD9010200FB4 -S31540012ED01910008511151BE81310C8219012210302 -S31540012EE0921261417FFFFB54D41B20B880A220037C -S31540012EF01280000A1B000070C205A1C09A13601F10 -S31540012F00190000108208400D9813201080A0400C33 -S31540012F100280000511151BE87FFFB8B99010200FFC -S31540012F2011151BE81310C821C025A1C09012210319 -S31540012F30921261417FFFFB40D41E60F080A22002C5 -S31540012F401280000601000000C205A1C080A06000F9 -S31540012F500280000515151BE87FFFB8A99010200FC8 -S31540012F6015151BE81710C821D01E60F09412A10355 -S31540012F707FFFFB319612E14180A2200112800006BB -S31540012F8001000000C205A1C080A0600002800005CA -S31540012F9015151BE87FFFB89A9010200F15151BE8F1 -S31540012FA01710C821D01DE0C89412A1037FFFFB2250 -S31540012FB09612E14180A220031280000A1B00007094 -S31540012FC0C205A1C09A13601F190000108208400D66 -S31540012FD09813201080A0400C028000051B1000852C -S31540012FE07FFFB8879010200F1B10008515151BE831 -S31540012FF01710C821D01B60B89412A1037FFFFB0EA6 -S315400130009612E14180A220031280000A1B00007043 -S31540013010C205A1C09A13601F190000108208400D15 -S315400130209813201080A0400C02800005110048EA48 -S315400130307FFFB8739010200F110048EA13048D15D5 -S31540013040C025A1C0901223CD7FFFFB0C921262785E -S3154001305080A220011280000601000000C205A1C025 -S3154001306080A0600002800005110048EA7FFFB86435 -S315400130709010200F110048EA13048D15901223CDAC -S315400130807FFFFB0F9212627880A220011280000618 -S3154001309001000000C205A1C080A0600002800004BA -S315400130A0010000007FFFB8569010200FC025A1C037 -S315400130B07FFFFC841103C000291001449007BFF033 -S315400130C09207BFE87FFFFA3894152120C207BFF067 -S315400130D0DA05212080A0400D1280000782152120AB -S315400130E0DA006004C207BFF480A0400D02800D598A -S315400130F0010000007FFFB842901020103710008574 -S315400131009007BFF09216E0E07FFFFA279415212041 -S31540013110C206E0E0DA05212080A340018215212084 -S31540013120128000079816E0E0DA006004C20320042A -S3154001313080A3400102800D42010000007FFFB830AC -S31540013140901020109007BFF09215E0C87FFFFA1645 -S3154001315094152120C205E0C8DA05212080A340014B -S3154001316082152120128000079815E0C8DA00600414 -S31540013170C203200480A3400102800D2C01000000FF -S315400131807FFFB81F9010201003100085921060B881 -S315400131909007BFF07FFFFA04941521201B000070B1 -S315400131A0C205A1C09A13601F190000108208400D84 -S315400131B09813201080A0400C028000042110014485 -S315400131C07FFFB80F9010201003100080C02061C00F -S315400131D07FFFFC3C901020001310008594142120A1 -S315400131E0921260B87FFFF9F09007BFF03910008561 -S315400131F0C20720B0DA04212080A340019414212083 -S3154001320012800007821720B0DA02A004C2006004CF -S3154001321080A3400102800004010000007FFFB7F84F -S31540013220901020107FFFFC271103C0009007BFF0CC -S31540013230921660F07FFFF9DC94152120C205A1C0EA -S315400132408330600E8208600380A060022110014431 -S3154001325002800004231000807FFFB7E99010201000 -S3154001326094142120C02461C09007BFE87FFFF9CEA6 -S315400132709207BFF0DA042120C207BFF080A34001C4 -S315400132801280000794142120DA02A004C207BFF479 -S3154001329080A3400102800D21010000007FFFB7D8C5 -S315400132A0901020109007BFE89216E0E07FFFF9BE2C -S315400132B094152120C206E0E0DA05212080A34001D1 -S315400132C082152120128000079816E0E0DA0060049A -S315400132D0C203200480A3400102800D0B01000000BF -S315400132E07FFFB7C7901020109007BFE89215E0C83E -S315400132F07FFFF9AD94152120C205E0C8DA052120EA -S3154001330080A3400182152120128000079815E0C84C -S31540013310DA006004C203200480A3400102800CF558 -S31540013320010000007FFFB7B69010201019100085EC -S31540013330921320B89007BFE87FFFF99B941521208F -S315400133401B000070C205A1C09A13601F190000102E -S315400133508208400D9813201080A0400C0280000482 -S31540013360211001447FFFB7A6901020107FFFFBD5A7 -S31540013370901020001310008594142120921260B8F9 -S315400133807FFFF9899007BFE8C20720B0DA04212000 -S3154001339080A340019414212012800007821720B097 -S315400133A0DA02A004C200600480A340010280000446 -S315400133B0010000007FFFB792901020107FFFFBC1F4 -S315400133C01103C0009007BFE8921660F07FFFF976BF -S315400133D094152120C205A1C08330600E8208600386 -S315400133E080A0600221100144028000042310008065 -S315400133F07FFFB7839010201094142120C02461C010 -S315400134009016E0E07FFFF9689207BFF0C206E0E060 -S31540013410DA04212080A34001941421201280000760 -S315400134208216E0E0DA02A004C200600480A34001F3 -S3154001343002800CAB010000007FFFB7719010201095 -S315400134409016E0E09207BFE87FFFF95794152120D7 -S31540013450C206E0E0DA05212080A340018215212041 -S31540013460128000079816E0E0DA006004C2032004E7 -S3154001347080A3400102800C95010000007FFFB760E8 -S31540013480901020101B100085901360D092100008F8 -S315400134907FFFF9459415212019100085C20320D0DC -S315400134A0DA05212080A340018215212012800007E0 -S315400134B0981320D0DA006004C203200480A340019F -S315400134C002800C7D010000007FFFB74D9010201057 -S315400134D01B100085901360D8921000087FFFF932C7 -S315400134E09415212019100085C20320D8DA05212020 -S315400134F080A340018215212012800007981320D80D -S31540013500DA006004C203200480A3400102800C65F6 -S31540013510010000007FFFB73A901020101B10008574 -S3154001352003100085901360D8921060D07FFFF91E7A -S31540013530941521201B000070C205A1C09A13601F7B -S31540013540190000108208400D9813201080A0400CED -S3154001355002800004211001447FFFB72990102010FA -S315400135607FFFFB5890102000111000851310008535 -S3154001357094142120901220D87FFFF90B921260D02B -S31540013580C20720B0DA04212080A3400194142120EF -S3154001359012800007821720B0DA02A004C20060043C -S315400135A080A3400102800004010000007FFFB714A0 -S315400135B0901020107FFFFB431103C00019100085B6 -S315400135C01B100085901320D0921360D8C025A1C04E -S315400135D07FFFF8F594152120C20720B0DA05212096 -S315400135E080A340018215212012800007981720B040 -S315400135F0DA006004C203200480A3400102800C1F4C -S315400136001B0000707FFFB6FE901020109016E0E080 -S31540013610921660F07FFFF8E494152120C205A1C0FF -S315400136208330600E8208600380A06002211001444D -S3154001363002800004231000807FFFB6F19010201015 -S3154001364094142120C02461C09015E0C87FFFF8D6AC -S315400136509207BFF0C205E0C8DA04212080A34001E9 -S3154001366094142120128000078215E0C8DA02A004D2 -S31540013670C200600480A3400102800B9C010000004F -S315400136807FFFB6DF901020109015E0C89207BFE883 -S315400136907FFFF8C594152120C205E0C8DA0521202F -S315400136A080A3400182152120128000079815E0C8A9 -S315400136B0DA006004C203200480A3400102800B8625 -S315400136C0010000007FFFB6CE901020109015E0C893 -S315400136D09216E0E07FFFF8B494152120C205E0C8B8 -S315400136E0DA05212080A3400182152120128000079E -S315400136F09815E0C8DA006004C203200480A34001A3 -S3154001370002800B70010000007FFFB6BD90102010B3 -S315400137109015E0C8921000087FFFF8A39415212068 -S31540013720C205E0C8DA05212080A340018215212087 -S31540013730128000079815E0C8DA006004C20320042D -S3154001374080A3400102800B5A010000007FFFB6AC06 -S315400137509010201003100085921060B89015E0C8B3 -S315400137607FFFF8919415212003000070A610601F79 -S31540013770DA05A1C0030000109A0B4013AA1060108D -S3154001378080A34015231000852510014402800004C2 -S31540013790211000807FFFB69A90102010C02421C0CE -S315400137A0901460B89207BFF07FFFF87F9414A12070 -S315400137B0C20421C08208401380A040150280000443 -S315400137C0010000007FFFB68E90102010C02421C05A -S315400137D0901460B89207BFE87FFFF8739414A12054 -S315400137E0C20421C08208401380A040150280000413 -S315400137F0010000007FFFB68290102010C02421C036 -S31540013800901460B89216E0E07FFFF8679414A12007 -S31540013810C20421C08208401380A0401502800005E1 -S31540013820131000857FFFB676901020101310008587 -S31540013830C02421C0921260C8901460B87FFFF85A24 -S315400138409414A120C20421C08208401380A04015CF -S3154001385002800005901460B87FFFB6699010201071 -S31540013860901460B8C02421C0921000087FFFF84E22 -S315400138709414A120C20421C08208401380A040159F -S3154001388002800004010000007FFFB65D9010201009 -S31540013890C02421C0901460B8921660F07FFFF842B0 -S315400138A09414A120C20421C08330600E82086003B3 -S315400138B080A06002228000051103C0007FFFB65040 -S315400138C0901020101103C0007FFFFA7E3B10008448 -S315400138D0A2176210C02421C0AA14A120A40460101A -S315400138E0A0102000A6046008B010200C920400131A -S315400138F0900400117FFFF82C94152120DA048010E2 -S3154001390098040012C2052120A004201880A340017A -S315400139101280000790102010DA032004C2056004CB -S3154001392080A3400122800005B0863FFF7FFFB63469 -S3154001393001000000B0863FFF1CBFFFEE920400135A -S31540013940C205A1C080A06000128009890100000063 -S315400139501110008490122348920220087FFFF8122A -S315400139609415212098176210C2052120DA032148B7 -S3154001397080A340011280000782152120DA03214CE1 -S31540013980C200600480A3400122800AAB031000807C -S315400139907FFFB61B901020101110008490122360F7 -S315400139A0920220087FFFF800941521209817621093 -S315400139B0C2052120DA03216080A34001128000075D -S315400139C082152120DA032164C200600480A34001EC -S315400139D002800AA41B0000707FFFB60990102010D8 -S315400139E01110008490122378920220087FFFF7EE8F -S315400139F09415212098176210C2052120DA032178F7 -S31540013A0080A340011280000782152120DA03217C20 -S31540013A10C200600480A3400102800A9C1B00007022 -S31540013A207FFFB5F790102010C025A1C011100000EE -S31540013A3092102000150FFC007FFFF8B2961020006F -S31540013A40030FFC0080A200011280000880A26000E2 -S31540013A501280000601000000C205A1C080A06000DE -S31540013A6002800005111000007FFFB5E5901020107F -S31540013A701110000092102000152FFC007FFFF8A1C5 -S31540013A80961020000310020080A200011280000857 -S31540013A9080A260001280000601000000C205A1C09C -S31540013AA080A0600002800005113000007FFFB5D480 -S31540013AB0901020101130000092102000150FFC00CC -S31540013AC07FFFF890961020000330020080A200018B -S31540013AD01280000880A260001280000601000000EA -S31540013AE0C205A1C080A0600002800005113000001F -S31540013AF07FFFB5C3901020101130000092102000B6 -S31540013B00152FFC007FFFF87F96102000032FFC0045 -S31540013B1080A200011280000880A260001280000687 -S31540013B2001000000C205A1C080A06000028000051E -S31540013B30111000007FFFB5B2901020101110000047 -S31540013B407FFFF87A130FE0000310100080A20001F6 -S31540013B501280000601000000C205A1C080A06000DD -S31540013B6002800005111000007FFFB5A590102010BE -S31540013B70111000007FFFF877130FE000030FE000FC -S31540013B8080A200011280000601000000C205A1C00A -S31540013B9080A0600022800005191000857FFFB5983E -S31540013BA09010201019100085921320E8C025A1C05D -S31540013BB09007BFF07FFFF78F9415212019100085DC -S31540013BC0C20320D8DA05212080A340018215212095 -S31540013BD012800007981320D8DA006004C20320043B -S31540013BE080A3400102800A461B0000707FFFB58416 -S31540013BF0901020111B100085921360D0C025A1C0E2 -S31540013C009007BFF07FFFF77B94152120C207BFE0E5 -S31540013C10DA05212080A34001128000078215212068 -S31540013C20DA006004C207BFE480A3400102800A3E75 -S31540013C30010000007FFFB572901020119007BFF080 -S31540013C409215E0C87FFFF76B94152120C205E0C8A5 -S31540013C50DA05212080A34001821521201280000728 -S31540013C609815E0C8DA006004C203200480A340012D -S31540013C7002800A32010000007FFFB56190102011D9 -S31540013C8003100085921060B89007BFF07FFFF75987 -S31540013C9094152120C20720B0DA05212080A34001D6 -S31540013CA08215212012800007981720B0DA0060049F -S31540013CB0C203200480A3400102800A251B00007034 -S31540013CC07FFFB54F901020119007BFF0921660F01C -S31540013CD07FFFF74894152120C205A1C01B00007043 -S31540013CE08208400D1900002080A0400C211001449B -S31540013CF002800004231000807FFFB54190102011FF -S31540013D0094142120C02461C09007BFE87FFFF73992 -S31540013D109207BFF0DA042120C207BFE880A3400121 -S31540013D201280000794142120DA02A004C207BFECD6 -S31540013D3080A3400102800A10010000007FFFB530D8 -S31540013D409010201119100085901320E89207BFE0CA -S31540013D507FFFF72894152120C20720B0DA052120DC -S31540013D6080A340018215212012800007981720B0B8 -S31540013D70DA006004C203200480A3400102800A03E2 -S31540013D801B0000707FFFB51E901020111B1000858F -S31540013D9003100085901360E8921060D0C025A1C041 -S31540013DA07FFFF7149415212019100085C20320E8DE -S31540013DB0DA05212080A340018215212012800007C7 -S31540013DC0981320E8DA006004C203200480A340016E -S31540013DD0028009F8010000007FFFB509901020110B -S31540013DE09007BFE89215E0C87FFFF702941521209E -S31540013DF0C205E0C8DA05212080A3400182152120B1 -S31540013E00128000079815E0C8DA006004C203200456 -S31540013E1080A34001028009EC010000007FFFB4F855 -S31540013E20901020071B100085921360B89007BFE8D9 -S31540013E307FFFF6F09415212025000070D805A1C01A -S31540013E409A14A01F03000010980B000D82106010F9 -S31540013E5080A3000121100144028000042310008048 -S31540013E607FFFB4E790102011C02461C09007BFE8DE -S31540013E70921660F07FFFF6DF94142120C20461C0E0 -S31540013E80820840121B00002080A0400D22800005C0 -S31540013E90031000857FFFB4DA9010201103100085CE -S31540013EA0901060D894142120C02461C07FFFF6D1C0 -S31540013EB09207BFF019100085C20320D8DA042120E9 -S31540013EC080A340019414212012800007821320D838 -S31540013ED0DA02A004C200600480A34001028008B84F -S31540013EE0010000007FFFB4C6901020111B10008511 -S31540013EF003100085901360D8921060E87FFFF6BDED -S31540013F009415212019100085C20320D0DA052120FD -S31540013F1080A340018215212012800007981320D0EA -S31540013F20DA006004C203200480A34001028008A98C -S31540013F30010000007FFFB4B2901020119016E0E01E -S31540013F40921000087FFFF6AB94152120C20720B0DE -S31540013F50DA05212080A34001821521201280000725 -S31540013F60981720B0DA006004C203200480A3400100 -S31540013F700280089D1B0000707FFFB4A190102011A4 -S31540013F80C025A1C09016E0E09215E0C87FFFF699E2 -S31540013F9094152120C205E0C8DA05212080A34001FD -S31540013FA082152120128000079815E0C8DA006004C6 -S31540013FB0C203200480A3400102800894010000004E -S31540013FC07FFFB48F901020111B100085921360B8AB -S31540013FD09016E0E07FFFF68794152120C20720B0B6 -S31540013FE0DA05212080A34001821521201280000795 -S31540013FF0981720B0DA006004C203200480A3400170 -S31540014000028008871B0000707FFFB47D901020114D -S31540014010C025A1C09016E0E0921660F07FFFF675CC -S3154001402094152120C205A1C01B0000708208400DD5 -S315400140301900002080A0400C23100080028000045B -S31540014040211001447FFFB46E901020119414212059 -S31540014050C02461C09015E0C87FFFF6669207BFF0A5 -S31540014060C205E0C8DA04212080A34001941421202E -S31540014070128000078215E0C8DA02A004C20060047B -S3154001408080A340010280086F010000007FFFB45CFD -S31540014090901020119015E0C89207BFE87FFFF655B2 -S315400140A094152120C205E0C8DA05212080A34001EC -S315400140B082152120128000079815E0C8DA006004B5 -S315400140C0C203200480A3400102800863010000006E -S315400140D07FFFB44B901020119015E0C89216E0E096 -S315400140E07FFFF64494152120C205E0C8DA05212058 -S315400140F080A3400182152120128000079815E0C84F -S31540014100DA006004C203200480A3400102800857FC -S31540014110010000007FFFB43A901020119015E0C8CD -S31540014120921000087FFFF63394152120C205E0C89E -S31540014130DA05212080A34001821521201280000743 -S315400141409815E0C8DA006004C203200480A3400148 -S31540014150028007F3010000007FFFB429901020116F -S3154001416003100085921060B89015E0C87FFFF621D4 -S3154001417094152120C20720B0DA05212080A34001F1 -S315400141808215212012800007981720B0DA006004BA -S31540014190C203200480A34001028007E61B00007091 -S315400141A07FFFB417901020119015E0C8921660F069 -S315400141B07FFFF61094152120C205A1C03100007081 -S315400141C0820840183B00002080A0401D2310014476 -S315400141D002800004211000807FFFB4099010201155 -S315400141E019100085901320B89207BFF07FFFF601A2 -S315400141F094146120C20421C0AA16201F3500001064 -S3154001420082084015A616A01080A040130280000423 -S31540014210251000857FFFB3FA90102011C02421C0DC -S315400142209014A0B89207BFE87FFFF5F2941461207D -S31540014230C20421C08208401580A0401302800004B8 -S31540014240010000007FFFB3EE90102011C02421C071 -S315400142509014A0B89216E0E07FFFF5E69414612031 -S31540014260C20421C08208401580A040130280000587 -S31540014270131000857FFFB3E29010201113100085C3 -S31540014280C02421C0921260C89014A0B87FFFF5D90E -S3154001429094146120C20421C08208401580A04013B5 -S315400142A0028000059014A0B87FFFB3D5901020116D -S315400142B09014A0B8C02421C0921000087FFFF5CD0C -S315400142C094146120C20421C08208401580A0401385 -S315400142D002800005131000857FFFB3C9901020119D -S315400142E013100085C02421C09014A0B8921260F02A -S315400142F07FFFF5C094146120C20421C08208401892 -S3154001430080A0401D2280000515203E837FFFB3BC5F -S315400143109010201115203E83170021C89412A3FF47 -S315400143209612E3A1191FC0001B00C0009A1360B08A -S3154001433098132102D43FBFD0D83FBFD8C02421C053 -S315400143409007BFD89207BFD07FFFF5AA9407BFC891 -S31540014350DA07BFC8033FFC0080A340010280070B78 -S31540014360A207BFC87FFFB3A6901020111510868300 -S31540014370170021C89412A3FF9612E3A11900400029 -S315400143801B00C0009A1360B098132102D43FBFD0DE -S31540014390D83FBFD8C025A1C09007BFD89207BFD08C -S315400143A07FFFF5949407BFC8DA046004C207BFC80B -S315400143B08090400D1280000A1B000070C205A1C00A -S315400143C09A13601F190000108208400D98132004AB -S315400143D080A0400C22800005150FFC007FFFB388AA -S315400143E090102011150FFC00170281D89412A0409D -S315400143F09612E10C9A102010190006AFD43FBFD097 -S31540014400D83FBFD8C025A1C09007BFD89207BFD01B -S315400144107FFFF5789407BFC8030006AEDA07BFC829 -S315400144208210639580A340011280000703003A9AE7 -S31540014430DA0460048210630F80A3400102800733CF -S31540014440010000007FFFB36E90102011150FFFFF92 -S31540014450170281D89412A3409612E10C9A102010AB -S31540014460190006AFD43FBFD0D83FBFD8C025A1C0A1 -S315400144709007BFD89207BFD07FFFF55E9407BFC8AC -S31540014480DA046004C207BFC88090400D1280000A5A -S315400144901B000070C205A1C09A13601F19000010CD -S315400144A08208400D9813200480A0400C028000042D -S315400144B0010000007FFFB35290102011C025A1C01A -S315400144C0111088007FFFF63713100100031066C9EB -S315400144D0821062CA80A2000112800006010000001B -S315400144E0C205A1C080A06000028000051111BBFE7B -S315400144F07FFFB343901020111111BBFE901223FF91 -S315400145007FFFF628130C7040031527CA8210611EDF -S3154001451080A200011280000601000000C205A1C070 -S3154001452080A06000028000051310C7FF7FFFB334EF -S31540014530901020111310C7FF921263FC7FFFF619EA -S31540014540111E607E031D73FC8210633880A2000138 -S315400145501280000601000000C205A1C080A06000D3 -S3154001456002800005130FE0007FFFB3259010201154 -S31540014570130FE000921260017FFFF60A110020003E -S3154001458080A220001280000A1B000070C205A1C053 -S315400145909A13601F190000108208400D98132004D9 -S315400145A080A0400C02800005110FE0007FFFB3148C -S315400145B090102011110FE000C025A1C07FFFF5F931 -S315400145C092100008030FE00080A20001128000064D -S315400145D001000000C205A1C080A060000280000564 -S315400145E0130FE0007FFFB30690102011130FE00078 -S315400145F0921260017FFFF5EB1100200080A220009E -S315400146001280000A1B000070C205A1C09A13601FE8 -S31540014610190000108208400D9813200480A0400C18 -S31540014620028000051B1000857FFFB2F59010201116 -S315400146301B100085921360E8C025A1C09007BFF00A -S315400146407FFFF4DE9415212019100085C20320E86E -S31540014650DA05212080A3400182152120128000071E -S31540014660981320E8DA006004C203200480A34001C5 -S31540014670028006BA010000007FFFB2E190102012CD -S315400146801B100085921360D09007BFF07FFFF4CBDB -S315400146909415212019100085C20320D0DA05212066 -S315400146A080A340018215212012800007981320D053 -S315400146B0DA006004C203200480A34001028006ACF4 -S315400146C0010000007FFFB2CE901020129007BFF08C -S315400146D09215E0C87FFFF4B994152120C205E0C8C0 -S315400146E0DA05212080A3400182152120128000078E -S315400146F09815E0C8DA006004C203200480A3400193 -S31540014700028006A0010000007FFFB2BD901020127A -S315400147101B100085921360B89007BFF07FFFF4A786 -S3154001472094152120C20720B0DA05212080A340013B -S315400147308215212012800007981720B0DA00600404 -S31540014740C203200480A34001028006931B0000702F -S315400147507FFFB2AB901020129007BFF0921660F027 -S315400147607FFFF49694152120C205A1C01B0000705D -S315400147708208400D1900002080A0400C2110014400 -S3154001478002800004231000807FFFB29D901020120A -S3154001479094142120C02461C09007BFE87FFFF487AD -S315400147A09207BFF0DA042120C207BFE880A3400187 -S315400147B01280000794142120DA02A004C207BFEC3C -S315400147C080A34001028006DE010000007FFFB28C1B -S315400147D0901020120310008519100085901060E892 -S315400147E0921320D87FFFF47594152120C20720B07B -S315400147F0DA05212080A3400182152120128000077D -S31540014800981720B0DA006004C203200480A3400157 -S31540014810028006D01B0000707FFFB27990102012F3 -S31540014820C025A1C09007BFE89215E0C87FFFF46399 -S3154001483094152120C205E0C8DA05212080A3400154 -S3154001484082152120128000079815E0C8DA0060041D -S31540014850C203200480A34001028006C70100000074 -S315400148607FFFB267901024991B100085921360B8A0 -S315400148709007BFE87FFFF45194152120C20720B06D -S31540014880DA05212080A340018215212012800007EC -S31540014890981720B0DA006004C203200480A34001C7 -S315400148A0028006BA1B0000707FFFB255901020129D -S315400148B09007BFE8921660F07FFFF44094152120DF -S315400148C0C205A1C01B0000708208400D19000020DE -S315400148D080A0400C21100144028000042310008076 -S315400148E07FFFB2479010201294142120C02461C04A -S315400148F09016E0E07FFFF4319207BFF0C206E0E098 -S31540014900DA04212080A3400194142120128000075B -S315400149108216E0E0DA02A004C200600480A34001EE -S31540014920028006A4010000007FFFB23590102012DC -S315400149309016E0E09207BFE87FFFF420941521200E -S31540014940C20720B0DA05212080A34001821521202B -S3154001495012800007981720B0DA006004C2032004D1 -S3154001496080A34001028006981B0000707FFFB2249D -S3154001497090102012C025A1C09016E0E09215E0C823 -S315400149807FFFF40E94152120C205E0C8DA052120E7 -S3154001499080A3400182152120128000079815E0C8A6 -S315400149A0DA006004C203200480A340010280068F1E -S315400149B0010000007FFFB212901020120310008503 -S315400149C0921060B89016E0E07FFFF3FC9415212029 -S315400149D0C20720B0DA05212080A34001821521209B -S315400149E012800007981720B0DA006004C203200441 -S315400149F080A34001028006821B0000707FFFB20047 -S31540014A00901020129016E0E0921660F07FFFF3EBD3 -S31540014A1094152120C205A1C01B0000708208400DDB -S31540014A201900002080A0400C21100144028000049E -S31540014A30231000807FFFB1F29010201294142120A0 -S31540014A40C02461C09015E0C87FFFF3DC9207BFF038 -S31540014A50C205E0C8DA04212080A340019414212034 -S31540014A60128000078215E0C8DA02A004C200600481 -S31540014A7080A340010280061E010000007FFFB1E0D5 -S31540014A80901020129015E0C89207BFE87FFFF3CB44 -S31540014A9094152120C205E0C8DA05212080A34001F2 -S31540014AA082152120128000079815E0C8DA006004BB -S31540014AB0C203200480A340010280061201000000C7 -S31540014AC07FFFB1CF901020129015E0C89216E0E01A -S31540014AD07FFFF3BA94152120C205E0C8DA052120EB -S31540014AE080A3400182152120128000079815E0C855 -S31540014AF0DA006004C203200480A340010280060656 -S31540014B00010000007FFFB1BE901020129015E0C851 -S31540014B10921000087FFFF3A994152120C205E0C831 -S31540014B20DA05212080A34001821521201280000749 -S31540014B309815E0C8DA006004C203200480A340014E -S31540014B40028005FA010000007FFFB1AD90102012EE -S31540014B50191000859015E0C8921320B87FFFF3978E -S31540014B609415212003000070A610601FDA05A1C02C -S31540014B70030000109A0B4013AA10601080A3401541 -S31540014B802510008523100144028000042110008075 -S31540014B907FFFB19B90102012C02421C09014A0B871 -S31540014BA09207BFF07FFFF38594146120C20421C0B0 -S31540014BB08208401380A040150280000401000000D5 -S31540014BC07FFFB18F90102012C02421C09014A0B84D -S31540014BD09207BFE87FFFF37994146120C20421C094 -S31540014BE08208401380A040150280000401000000A5 -S31540014BF07FFFB18390102012C02421C09014A0B829 -S31540014C009216E0E07FFFF36D94146120C20421C047 -S31540014C108208401380A040150280000513100085CC -S31540014C207FFFB1779010201213100085C02421C058 -S31540014C30921260C89014A0B87FFFF360941461206B -S31540014C40C20421C08208401380A04015028000059D -S31540014C509014A0B87FFFB16A901020129014A0B8AA -S31540014C60C02421C0921000087FFFF35494146120A0 -S31540014C70C20421C08208401380A04015028000046E -S31540014C80010000007FFFB15E90102012C02421C0B8 -S31540014C909014A0B8921660F07FFFF34894146120F7 -S31540014CA0C20421C08330600E8208600380A0600286 -S31540014CB0228000051103C0007FFFB15190102012E0 -S31540014CC01103C0007FFFF57F3B100084A41763905A -S31540014CD0AA146120C02421C0A604A008A210200065 -S31540014CE0B0102005A00440129204401394152120CF -S31540014CF07FFFF33290100010DA042010C205212004 -S31540014D00A204601880A3400112800007901020126F -S31540014D10DA042014C205600480A3400102800474B1 -S31540014D20010000007FFFB13601000000B0863FFF61 -S31540014D303CBFFFEEA00440121110008590122020C6 -S31540014D40920220087FFFF31D941521209817639046 -S31540014D50C2052120DA0320A080A34001128000076A -S31540014D6082152120DA0320A4C200600480A34001F9 -S31540014D70028004DC1B0000707FFFB12190102012DD -S31540014D801110008590122038C025A1C0920220083A -S31540014D907FFFF30A9415212098176390C2052120BD -S31540014DA0DA0320B880A34001128000078215212032 -S31540014DB0DA0320BCC200600480A340010280047F64 -S31540014DC01B0000707FFFB10E90102012111000855C -S31540014DD090122050C025A1C0920220087FFFF2F711 -S31540014DE09415212098176390C2052120DA0320D01B -S31540014DF080A340011280000782152120DA0320D4C6 -S31540014E00C200600480A34001028004761B0000704A -S31540014E107FFFB0FB90102012111000859012206880 -S31540014E20C025A1C0920220087FFFF2E494152120FB -S31540014E3098176390C2052120DA0320E880A3400138 -S31540014E401280000782152120DA0320ECC20060049B -S31540014E5080A340010280046D1B0000707FFFB0E813 -S31540014E60901020121110008590122080C025A1C0FB -S31540014E70920220087FFFF2D1941521209817639062 -S31540014E80C2052120DA03210080A3400112800007D8 -S31540014E9082152120DA032104C200600480A3400167 -S31540014EA0028004641B0000707FFFB0D59010201271 -S31540014EB0C025A1C0111010007FFFF3B013100000F0 -S31540014EC00310300080A2000112800006010000009C -S31540014ED0C205A1C080A0600002800005111FE0004C -S31540014EE07FFFB0C790102012111FE0001310000081 -S31540014EF07FFFF2B794152120031FFC00DA0521201C -S31540014F0080A340011280000A82152120C20060045C -S31540014F1080A060001280000601000000C205A1C009 -S31540014F2080A0600002800005111FE0007FFFB0B441 -S31540014F309010201B111FE000133000007FFFF2A4E8 -S31540014F4094152120033FFC00DA05212080A340016E -S31540014F501280000A82152120C200600480A06000F0 -S31540014F601280000601000000C205A1C080A06000B9 -S31540014F7002800005111000007FFFB0A19010201C97 -S31540014F8011100000921020107FFFF29194152120FC -S31540014F90C205A1C01B0000708208400D1900002007 -S31540014FA080A0400C2110014402800004231000809F -S31540014FB07FFFB0939010201D94142120C02461C01E -S31540014FC0110020007FFFF282130FC000DA04212076 -S31540014FD0030E000080A340011280000A9414212090 -S31540014FE0C202A00480A060001280000601000000F9 -S31540014FF0C20461C080A0600002800005111FDFFF6E -S315400150007FFFB07F9010201E111FDFFF901223FFFC -S31540015010131000007FFFF26E941521200311FFFF4C -S31540015020821063FFDA05212080A340011280000728 -S3154001503082152120DA0060040338000080A3400174 -S3154001504002800405010000007FFFB06D9010201F13 -S31540015050111FD000130FF0007FFFF25D9415212040 -S315400150600311FC80DA05212080A340011280000A49 -S3154001507082152120C200600480A0600012800006D3 -S3154001508001000000C205A1C080A0600002800005A9 -S31540015090111FDFFF7FFFB05A90102021111FDFFF44 -S315400150A0901223FF921000087FFFF24994152120A8 -S315400150B00313FBFF821063FFDA05212080A3400121 -S315400150C01280000882152120DA00600403300000B6 -S315400150D08210602080A34001028003E401000000A9 -S315400150E07FFFB047901020207FFFF4761103C00068 -S315400150F0C025A1C09007BFE07FFFF2449215212051 -S31540015100C207BFE0DA05212080A3400112800007D3 -S3154001511082152120DA006004C207BFE480A3400162 -S31540015120028003D7010000007FFFB03590102013A5 -S315400151301B100085901360E87FFFF2349215212001 -S3154001514003100085DA0060E8C205212080A0400DE9 -S31540015150191000858215212012800007901320E83E -S31540015160DA006004C202200480A34001028003C920 -S31540015170010000007FFFB022901020131B10008514 -S31540015180901360D07FFFF2219215212019100085DE -S31540015190C20320D0DA05212080A3400182152120B7 -S315400151A012800007981320D0DA006004C20320045D -S315400151B080A34001028003BC010000007FFFB010C4 -S315400151C0901020131B100085901360D87FFFF20FBB -S315400151D092152120C20720B0DA05212080A3400183 -S315400151E08215212012800007981720B0DA0060044A -S315400151F0C203200480A34001028003B01B0000705B -S315400152007FFFAFFF9010201303100085901060B808 -S31540015210C025A1C07FFFF1FD92152120C20720B014 -S31540015220DA05212080A34001821521201280000742 -S31540015230981720B0DA006004C203200480A340011D -S315400152400280040F1B0000707FFFAFED901020130A -S31540015250C025A1C09015E0C87FFFF1EC9215212031 -S31540015260C2052120DA05E0C880A0400D8215212023 -S31540015270128000079015E0C8DA006004C2022004DB -S3154001528080A3400102800407010000007FFFAFDCDC -S3154001529090102013170C00089A10200019100C00CA -S315400152A015300F789612E001D83FBFF0D43FBFC00A -S315400152B09007BFF07FFFF1D592152120031004001E -S315400152C0DA05212080A340011280000A821521209F -S315400152D0C200600480A06000128000060100000048 -S315400152E0C205A1C080A06000028000059007BFC032 -S315400152F07FFFAFC3901020139007BFC07FFFF1C35C -S3154001530092152120C2052120DA0720B080A0400D48 -S315400153108215212012800007981720B0DA00600418 -S31540015320C203200480A34001028003E31B000070F6 -S315400153307FFFAFB390102013901660F07FFFF1B35B -S3154001534092152120C205A1C08330600E82086003F8 -S3154001535080A0600202800004211000807FFFAFA878 -S3154001536090102013C02421C07FFFF2981111F20042 -S315400153700310E80080A2000112800006010000002F -S31540015380C20421C080A06000028000040100000028 -S315400153907FFFAF9B901020137FFFF3CA11100000CF -S315400153A01101F5897FFFF289901221E20308E96430 -S315400153B080A200011280000601000000C205A1C0C2 -S315400153C080A0600002800004010000007FFFAF8CD6 -S315400153D0901020237FFFF27D1112A2080311410094 -S315400153E080A200011280000601000000C205A1C092 -S315400153F080A0600002800004010000007FFFAF80B2 -S31540015400901020237FFFF3AF110010009007BFF0EB -S31540015410921660F07FFFF1649415212003100C0071 -S31540015420DA05212080A340011280000A821521203D -S31540015430C200600480A060001280000601000000E6 -S31540015440C205A1C080A0600002800005901660F0F0 -S315400154507FFFAF6B90102014901660F09207BFC08B -S315400154607FFFF1569415212003200000DA05212003 -S3154001547080A340011280000A82152120C2006004E7 -S3154001548080A060001280000601000000C205A1C094 -S3154001549080A0600002800004010000007FFFAF5839 -S315400154A0901020147FFFF19190102001030FE0002E -S315400154B080A200011280000601000000C205A1C0C1 -S315400154C080A0600002800004010000007FFFAF4C15 -S315400154D0901020147FFFF17D90102001030FFC00F6 -S315400154E080A200011280000880A26000128000069E -S315400154F001000000C205A1C080A060000280000436 -S31540015500010000007FFFAF3E901020147FFFF36D36 -S315400155101110100019100085D41B20D07FFFF1F91E -S31540015520D01E60F003100085D03D2120DA0060D8FE -S31540015530C205212080A0400D191000858215212029 -S3154001554012800007901320D8DA006004C2022004BA -S3154001555080A3400102800361010000007FFFAF2864 -S31540015560901020227FFFF35711100000170400808E -S31540015570150F28009612E0F09A102000190FFC0032 -S31540015580D43FBFC0D83FBFF09007BFF09207BFC01E -S315400155907FFFF10594152120030FFC00DA05212038 -S315400155A080A340011280000682152120C2006004BA -S315400155B080A0600002800004010000007FFFAF1060 -S315400155C0901020157FFFF33F112000001700004087 -S315400155D0150014009612E0019A102000190FFC00E4 -S315400155E0D43FBFC0D83FBFF09007BFF09207BFC0BE -S315400155F07FFFF0ED94152120030FFC00DA052120F1 -S3154001560080A340011280000682152120C200600459 -S3154001561080A0600102800004010000007FFFAEF817 -S31540015620901020157FFFF32711300000170000402E -S31540015630152014009612E0019A102000192FFC0043 -S31540015640D43FBFC0D83FBFF09007BFF09207BFC05D -S315400156507FFFF0D594152120032FFC00DA05212088 -S3154001566080A340011280000682152120C2006004F9 -S3154001567080A0600102800004010000007FFFAEE0CF -S31540015680901020157FFFF30F11100000190FFC0039 -S315400156909A102000D83FBFF09007BFF09216E0E085 -S315400156A07FFFF0C194152120C206E0E0DA052120F2 -S315400156B080A3400182152120128000079816E0E060 -S315400156C0DA006004C203200480A340010280000482 -S315400156D0010000007FFFAECA901020157FFFF2F94E -S315400156E01120000017000040150014009612E00139 -S315400156F0190FFC009A102000D43FBFC0D83FBFF01D -S315400157009007BFF09216E0E07FFFF0A794152120A5 -S31540015710C206E0E0DA05212080A34001821521205E -S31540015720128000079816E0E0DA006004C203200404 -S3154001573080A3400102800004010000007FFFAEB05B -S31540015740901020157FFFF2DF113000001700004056 -S31540015750152014009612E0019A102000192FFC0022 -S31540015760D43FBFC0D83FBFF09007BFF09216E0E0EC -S315400157707FFFF08D94152120C2052120DA06E0E055 -S3154001578080A0400D82152120128000079016E0E08E -S31540015790DA006004C202200480A3400102800004B2 -S315400157A0010000007FFFAE96901020157FFFF2C5E5 -S315400157B01110000015100000961020019A102001CA -S315400157C0190FFC00D43FBFC0D83FBFF09007BFF0D0 -S315400157D09207BFC07FFFF079941521200310000086 -S315400157E0DA05212080A3400112800006821521207E -S315400157F0C200600480A06002028000040100000033 -S315400158007FFFAE7F901020157FFFF2AE1120000082 -S315400158109007BFF09207BFC07FFFF0689415212023 -S3154001582003100000DA05212080A340011280000602 -S3154001583082152120C200600480A06003028000041A -S31540015840010000007FFFAE6E901020157FFFF29D94 -S31540015850113000009A102001192FFC00D83FBFF0EB -S315400158609007BFF09207BFC07FFFF05494152120E7 -S3154001587003300000DA05212080A340011280000692 -S3154001588082152120C200600480A0600302800004CA -S31540015890010000007FFFAE5A901020157FFFF2896C -S315400158A011100000150FFC04172F26159412A01293 -S315400158B09612E231190FFEAE1B1CD2E89A13601103 -S315400158C098132154D43FBFC0D83FBFF09007BFF0D3 -S315400158D09207BFC07FFFF04794152120030FFEA713 -S315400158E082106296DA05212080A3400112800008C9 -S315400158F082152120DA006004032C1B348210602FAC -S3154001590080A3400102800004010000007FFFAE3CFD -S31540015910901020157FFFF26B112000009007BFF019 -S315400159209207BFC07FFFF03394152120030FFEA7D6 -S3154001593082106296DA05212080A340011280000878 -S3154001594082152120DA006004032C1B34821060305A -S3154001595080A3400102800004010000007FFFAE28C1 -S31540015960901020157FFFF25711300000192FFC04CB -S315400159701B2F26159A13623198132012D83FBFC0A8 -S315400159809007BFF09207BFC07FFFF01A9415212000 -S31540015990032FFEA782106296DA05212080A34001DB -S315400159A01280000882152120DA006004032C1B3482 -S315400159B08210603080A34001028000040100000093 -S315400159C07FFFAE0F901020157FFFF23E11100000B1 -S315400159D015101000961020009A102000191038005A -S315400159E0D43FBFC0D83FBFF09007BFF09207BFC0BA -S315400159F07FFFF0009415212003102400DA052120B1 -S31540015A0080A340011280000682152120C200600455 -S31540015A1080A0600002800004010000007FFFADF815 -S31540015A20901020157FFFF227112000009007BFF04C -S31540015A309207BFC07FFFEFEF94152120031024008A -S31540015A40DA05212080A3400112800006821521201B -S31540015A50C200600480A060000280000401000000D2 -S31540015A607FFFADE7901020157FFFF2161130000041 -S31540015A709007BFF09207BFC07FFFEFDE941521204C -S31540015A8003102400DA05212080A34001128000067C -S31540015A9082152120C200600480A0600002800004BB -S31540015AA0010000007FFFADD6901020157FFFF20563 -S31540015AB011100000210FE000110020007FFFF0B916 -S31540015AC09214200180A220001280012301000000CF -S31540015AD07FFFF1FC11200000110020007FFFF0B193 -S31540015AE09214200180A220001280011801000000BA -S31540015AF07FFFF1F411300000921420017FFFF0A9DD -S31540015B001100200080A220001280010D010000003A -S31540015B107FFFF1EC111000009A102000190FFC00D4 -S31540015B20D83FBFF09007BFF07FFFEFB89215212015 -S31540015B30C207BFF0DA05212080A340011280000789 -S31540015B4082152120DA006004C207BFF480A3400118 -S31540015B50028002A7010000007FFFADA99010201529 -S31540015B607FFFF1D8112000009007BFF07FFFEFA71C -S31540015B7092152120C207BFF0DA05212080A34001FA -S31540015B801280000782152120DA006004C207BFF4A3 -S31540015B9080A340010280029B010000007FFFAD9877 -S31540015BA0901020157FFFF1C7113000009007BFF01C -S31540015BB07FFFEF9692152120C207BFF0DA0521201B -S31540015BC080A340011280000782152120DA0060047B -S31540015BD0C207BFF480A340010280028F010000008A -S31540015BE07FFFAD87901020157FFFF1B611100000A1 -S31540015BF0030FDFFF901063FF7FFFF074A0100008D2 -S31540015C0080A2001002800004010000007FFFAD7CED -S31540015C10901020157FFFF1AB112000007FFFF06B44 -S31540015C2090100010030FE00080A2000102800004E2 -S31540015C30010000007FFFAD72901020157FFFF1A19A -S31540015C40113000007FFFF0619010001080A200101B -S31540015C5002800004010000007FFFAD69901020150D -S31540015C607FFFF198901020007FFFF0609015212072 -S31540015C70032FFE00DA05212080A340011280000691 -S31540015C8082152120C200600480A0600002800005C8 -S31540015C90211001447FFFAD5A901020162110014476 -S31540015CA07FFFF05C90142128DA042128032FF000AD -S31540015CB080A3400102800004A21421287FFFAD5039 -S31540015CC0901020167FFFF05D90100011DA04212814 -S31540015CD0030FE00080A340010280000401000000A0 -S31540015CE07FFFAD47901020167FFFF064901521206D -S31540015CF0030FFBF7821063F0DA05212080A34001F0 -S31540015D001280000882152120DA0060040303FF1285 -S31540015D108210604A80A3400102800005921660F01D -S31540015D207FFFAD3790102016921660F09007BFF0B6 -S31540015D307FFFEF3094152120C205A1C08330600E4C -S31540015D408208600780A060020280000519100046A3 -S31540015D507FFFAD2B901020171910004617100080B9 -S31540015D60DA02E1C8821321F880A0400DE00321F850 -S31540015D7002800004A212E1C87FFFAD2190102018D5 -S31540015D80C204600480A040100280000401000000AB -S31540015D907FFFAD1B90102018C204600880A06000F0 -S31540015DA01280007701000000C204600C80A06000F0 -S31540015DB01280006C010000007FFFEEE6010000004A -S31540015DC080A220010280019801000000190C40299F -S31540015DD01B23CD1B9A13609B981320069410200019 -S31540015DE096102000D83FBFF0D43FBFC07FFFEF2FB2 -S31540015DF09007BFF003100083A21062101B100081B0 -S31540015E0003100144A0136210A4106120B0102000B9 -S31540015E10832E2002DA044001DA27BFC09007BFC0B3 -S31540015E207FFFEF25921521209B2E2003D804000DDC -S31540015E30C2052120B00620019603401080A300012F -S31540015E401280000790102019DA02E004C204A0046F -S31540015E5080A340010280000580A620FF7FFFACE8B9 -S31540015E600100000080A620FF04BFFFEB832E200225 -S31540015E7003100083A41062101B100080031001441C -S31540015E80A2136210A6106120B0102000A12E20029C -S31540015E90C2048010C227BFC0921521207FFFEEDBCE -S31540015EA09007BFC0DA044010C2052120B006200287 -S31540015EB09804001180A34001128000079010201A17 -S31540015EC0DA032004C204E00480A3400102800005F5 -S31540015ED080A620FF7FFFACCA0100000080A620FFFC -S31540015EE024BFFFECA12E200230800211C205A1C0C1 -S31540015EF080A0600022BFFB8FB0863FFF30BFFB8A88 -S31540015F00C205A1C080A0600002BFF14501000000AA -S31540015F1030BFF141C205A1C080A0600002BFF13689 -S31540015F200100000030BFF132C205A1C080A060006F -S31540015F3002BFF1270100000030BFF1237FFFACB063 -S31540015F409010201530BFFEF37FFFACAD90102015A9 -S31540015F5030BFFEE87FFFACAA9010201530BFFEDDB2 -S31540015F607FFFACA79010201830BFFF947FFFACA4F1 -S31540015F709010201010BFF678111000847FFFACA05E -S31540015F809010201830BFFF89C207BFCC80A06000A7 -S31540015F9012BFF8F501000000C20421C08208401575 -S31540015FA09A16A00880A0400D12BFF8EF010000002C -S31540015FB010BFF8F015108683C205A1C09A13601F61 -S31540015FC0190000108208400D9813200880A0400C4B -S31540015FD012BFFB7D1110008510BFFB7F9012205030 -S31540015FE0C205A1C09A13601F190000108208400D16 -S31540015FF09813200880A0400C12BFFB861110008523 -S3154001600010BFFB8890122068C205A1C09A13601F79 -S31540016010190000108208400D9813200480A0400CFE -S3154001602012BFFB8F1110008510BFFB91901220808B -S31540016030C205A1C09A13601F190000108208400DC5 -S315400160409813200880A0400C12BFFB980100000065 -S3154001605030BFFB98C205A1C080A0600002BFFBFE15 -S31540016060111FD00030BFFBF9C205A1C080A060005E -S3154001607002BFFC1E0100000030BFFC1AC205A1C0D0 -S3154001608080A0600002BFFC2C1B10008530BFFC279E -S31540016090C205A1C080A0600002BFFC3A1B1000856A -S315400160A030BFFC35C205A1C080A0600002BFFC47DD -S315400160B01B10008530BFFC42C205A1C09A13601F68 -S315400160C0190000108208400D9813201080A0400C42 -S315400160D012BFFC4C0310008510BFFC4E901060B8F7 -S315400160E0C205A1C09A13601F190000108208400D15 -S315400160F09813200480A0400C12BFFB20111000858C -S3154001610010BFFB2290122038C205A1C080A06000BA -S3154001611022BFF8D0150FFFFF30BFF8CBC205A1C093 -S3154001612080A0600002BFF8100310008530BFF80B55 -S31540016130C205A1C09A13601F190000108208400DC4 -S315400161409813201080A0400C12BFF8169015E0C895 -S3154001615010BFF818921660F0C205A1C080A0600079 -S3154001616002BFF9491B10008530BFF944C205A1C0E1 -S3154001617080A0600002BFF9579007BFF030BFF952C7 -S31540016180C205A1C080A0600002BFF9631B10008553 -S3154001619030BFF95EC205A1C09A13601F19000010F5 -S315400161A08208400D9813201080A0400C12BFF96957 -S315400161B09007BFF010BFF96B921660F0C20461C040 -S315400161C080A0600002BFF74B1B10008530BFF74629 -S315400161D0C205A1C080A0600002BFF75A9016E0E058 -S315400161E030BFF755C205A1C09A13601F19000010B0 -S315400161F08208400D9813201080A0400C12BFF75F13 -S315400162000100000030BFF75FC205A1C080A0600059 -S3154001621002BFF76F1B10008530BFF76AC205A1C0E8 -S315400162209A13601F190000108208400D9813201020 -S3154001623080A0400C12BFF7750100000030BFF77512 -S31540016240C20461C080A0600002BFF7949015E0C807 -S3154001625030BFF78FC205A1C080A0600002BFF7A082 -S315400162609015E0C830BFF79BC205A1C080A0600071 -S3154001627002BFF7AC9015E0C830BFF7A7C205A1C071 -S315400162809A13601F190000108208400D98132010C0 -S3154001629080A0400C12BFFBED0100000030BFFBEDBA -S315400162A0C205A1C080A0600002BFFBFC170C00081C -S315400162B030BFFBF7C205A1C09A13601F1900001039 -S315400162C08208400D9813201080A0400C12BFFC1983 -S315400162D0901660F030BFFC1AC205A1C080A06000D4 -S315400162E002BFFCA10100000030BFFC9DC20461C099 -S315400162F080A0600002BFF9E59015E0C830BFF9E023 -S31540016300C205A1C080A0600002BFF9F19015E0C8A6 -S3154001631030BFF9ECC205A1C080A0600002BFF9FD03 -S315400163209015E0C830BFF9F8C205A1C080A0600051 -S3154001633002BFFA091910008530BFFA04C20461C0D0 -S3154001634080A0600002BFF9250310008530BFF92007 -S31540016350C205A1C09A13601F190000108208400DA2 -S315400163609813201080A0400C12BFF92C01000000A8 -S3154001637030BFF92CC205A1C080A0600002BFF93C24 -S315400163801B10008530BFF937C205A1C09A13601FA3 -S31540016390190000108208400D9813201080A0400C6F -S315400163A012BFF9429007BFE810BFF944921660F058 -S315400163B0C20461C080A0600002BFF95F9016E0E0B0 -S315400163C030BFF95AC205A1C09A13601F19000010C7 -S315400163D08208400D9813201080A0400C12BFF9642A -S315400163E00100000030BFF964C205A1C080A0600071 -S315400163F002BFF9740310008530BFF96FC205A1C011 -S315400164009A13601F190000108208400D981320103E -S3154001641080A0400C12BFF97A9016E0E010BFF97CDB -S31540016420921660F07FFFAB769010201910BFFE697F -S31540016430190C4029D80061C01B0000709A13601FD7 -S3154001644003000010980B000D8210600880A3000124 -S3154001645012BFF5501110008410BFF55290122360FF -S31540016460C205A1C09A13601F190000108208400D91 -S315400164709813200480A0400C12BFF55811100084D7 -S3154001648010BFF55A90122378C205A1C09A13601F16 -S31540016490190000108208400D9813200480A0400C7A -S315400164A012BFF5600100000030BFF560C205A1C012 -S315400164B080A0600002BFF4A90310008530BFF4A498 -S315400164C0C205A1C080A0600002BFF4939015E0C848 -S315400164D030BFF48EC205A1C080A0600002BFF47D2A -S315400164E09015E0C830BFF478C20461C080A0600056 -S315400164F002BFF4679015E0C830BFF462C205A1C07F -S315400165009A13601F190000108208400D981320024B -S3154001651080A0400C12BFF5B61B10008510BFF5B820 -S31540016520921360D0C205A1C080A0600002BFF5C52C -S315400165309007BFF030BFF5C0C205A1C080A0600082 -S3154001654002BFF5D10310008530BFF5CCC205A1C00D -S315400165509A13601F190000108208400D98132010ED -S3154001656080A0400C12BFF5D79007BFF010BFF5D9F8 -S31540016570921660F0C20461C080A0600022BFF5F3AC -S315400165801910008530BFF5EEC205A1C09A13601FF0 -S31540016590190000108208400D9813201080A0400C6D -S315400165A012BFF5F91B10008510BFF5FB03100085DE -S315400165B0C205A1C080A0600002BFF60B9007BFE8EC -S315400165C030BFF606C205A1C080A0600002BFF61723 -S315400165D01B10008530BFF612C20421C080A06000A6 -S315400165E022BFF03E113C02AF30BFF039C205A1C017 -S315400165F080A0600002BFFD5B0100000030BFFD5777 -S31540016600C205A1C080A0600002BFFD670100000075 -S3154001661030BFFD63C205A1C080A0600002BFFD730B -S315400166200100000030BFFD6FC205A1C080A060001F -S3154001663002BFF2D70310008530BFF2D2C205A1C016 -S3154001664080A0600002BFF2C19007BFF030BFF2BC2C -S31540016650C205A1C080A0600002BFF2AA3710008522 -S3154001666030BFF2A5C205A1C080A0600002BFF028DC -S315400166701111FC0030BFF023C205A1C09A13601F5F -S31540016680190000108208400D9813201080A0400C7C -S3154001669012BFF3DD9016E0E010BFF3DF921660F013 -S315400166A0C205A1C080A0600002BFF39E1B100085F9 -S315400166B030BFF399C205A1C080A0600002BFF38636 -S315400166C01B10008530BFF381C205A1C080A06000C8 -S315400166D002BFF36E1B10008530BFF369C20461C06F -S315400166E080A0600002BFF3589016E0E030BFF3533C -S315400166F0C205A1C080A0600002BFF30E191000853B -S3154001670030BFF309C205A1C080A0600002BFF2F804 -S315400167109007BFE830BFF2F3C20461C080A06000B9 -S3154001672002BFF2E29007BFE830BFF2DD81C7E00861 -S3154001673081E80000D27A000081C3E0080100000030 -S3154001674081C3E008900A20209332600492126001CE -S315400167508213C0007FFFFFF89E1040000100000039 -S3154001676081D8200081C3E008010000009DE3BF9865 -S315400167707FFFFFFC0100000082102400C0A04300FF -S3154001678081C7E00881E80000833220189A1000088A -S315400167908088600F028000049010200083336010CF -S315400167A09008600381C3E008010000009DE3BF98A3 -S315400167B0031000C01B1000C1B0106000A21360009E -S315400167C0031000C21B1000C2A4106000A613610092 -S315400167D0031000201B100020A8106168AA13600056 -S315400167E07FFFEBAD9010200C808A2008028001FECD -S315400167F0010000007FFFAA7D9010200ED08003206B -S315400168007FFFFFE2010000000310014380A2200246 -S31540016810028000C6D02060D080A22002148000E40D -S3154001682080A2200380A22001028000D1821020197B -S31540016830331000A02F1000A0391000A0371000A07F -S31540016840351000A07FFFFFC7210100007FFFFFC871 -S31540016850BA04A00C921000117FFFFFBC90100018E3 -S31540016860921000117FFFFFB990062004901000118D -S315400168707FFFFFB19210200ADA066014110800006A -S31540016880913A000DC205E010900A0001912A2002BA -S3154001689013008000900200117FFFFFA79212600A49 -S315400168A0DA06601411100000913A000DC205E0109D -S315400168B0900A0001912A2002900200117FFFFF9E5B -S315400168C09214208EDA066014111C0000913A000DD4 -S315400168D0C205E010900A0001912A20021301C0006E -S315400168E0900200117FFFFF949212608E9334A004B0 -S315400168F09004600C7FFFFF90921260019214201E5B -S315400169007FFFFF8D9004A0089010001D7FFFFF8A36 -S31540016910921020009334E004921260017FFFFF86BB -S315400169209004A004111000C2901221087FFFFF823B -S3154001693092102000031000E0A01060009334200460 -S31540016940111000C2901221047FFFFF7B9212601A40 -S3154001695003048D1582106278C2242004111000E0D0 -S3154001696015100120C0222000A2102003AC12A00065 -S31540016970A004E00C90047FFD40000A7592102003AC -S315400169801B100143C20360D08200600C932A0001B0 -S315400169909202401693326004901000107FFFFF660A -S315400169A09212601EA204600180A4600A04BFFFF235 -S315400169B0A0042004C206E008D807200C8208600122 -S315400169C08328400CD605E010111000E0D406A00043 -S315400169D0DA06601498122000960AE003972AC00D41 -S315400169E0920AA002111000A0DA022004940AA00122 -S315400169F0952A800D932A400D1B1000209612C00146 -S31540016A00E8236160030100001B0076418210601E8D -S31540016A109A1361C09212C00999332004C2252004F9 -S31540016A20DA2520089612C00A9E13200E913560047D -S31540016A301B1000C2031000C2821061049012201E76 -S31540016A40953620049813201E9A136108D625202CCA -S31540016A50D8252010D025201CD2252020DE2520280F -S31540016A60D6252014940ABFF0FA250000DA2520180D -S31540016A70C2252024C225200CA2102100D4A44320E3 -S31540016A80C2800320D88443209A102001A0102200FE -S31540016A90DAA40320D884032082102000C2A4032054 -S31540016AA0DAA0032081D820007FFFC55901000000EC -S31540016AB0C2800320E2844320E0840320DA05E0100B -S31540016AC0D6066014C206E0089A0B60039B2B400B66 -S31540016AD082086001D407200CD806A000111000A03E -S31540016AE08328400A980B2001D60220049A134001BC -S31540016AF0992B000B9A13400CC203400080A0600002 -S31540016B0012800008821360041B048D15D8004000D2 -S31540016B109A13627880A3000D02800038C205E01006 -S31540016B2010800000010000008210201A331000A0DE -S31540016B30C22660149810203F2F1000A0391000A0E3 -S31540016B40351000A09A1020148210200E151000A0B6 -S31540016B50371000A0DA27200CC222A004D826A000B4 -S31540016B60D825E01010BFFF38D826E0089A10207FBC -S31540016B70331000A02F1000A0C2266014DA25E010C1 -S31540016B809810203F391000A0351000A08210201324 -S31540016B909A10200D111000A0371000A0C227200C1A -S31540016BA0DA22200410BFFFF0D826A00012BFFF2230 -S31540016BB0331000A08210201CC22660149A102015A2 -S31540016BC08210207F391000A0371000A0DA27200C50 -S31540016BD0C226E0089810200F2F1000A0351000A003 -S31540016BE01B1000A08210203FD8236004C226A000BB -S31540016BF010BFFF15D825E010DA06E008D806601464 -S31540016C00820860039A0B6002D607200C8328400C49 -S31540016C109B2B400B8210400DD80040001B100000FA -S31540016C20C203400080A3000102800004D406E008AC -S31540016C301080000001000000C205E010980AA00182 -S31540016C40D207200CD6066014820860038328400BC5 -S31540016C50992B0009940AA0039810400CDA06A0006B -S31540016C60111000A0952A80099A0B6001D6022004D2 -S31540016C708210400AC20040009B2B400B9813000D26 -S31540016C800321D9509813200482106321C2230000A6 -S31540016C90DA03000080A3400102800004C206E00836 -S31540016CA01080000001000000D407200CDA05E01036 -S31540016CB082086001D60660148328400A9A0B600355 -S31540016CC0D806A0009B2B400B151000A0D602A004AD -S31540016CD0980B20019A134001992B000B9813400CF5 -S31540016CE08210000C05048D158410A278072AF37BC7 -S31540016CF08610E301C4384000C438400003048D15B2 -S31540016D00DA0300008210627880A340010280000409 -S31540016D108213200410800000010000001B2AF37B2F -S31540016D20D80040009A13630180A3000D12BFFFFAF9 -S31540016D30C205E010D6066014D806E0088208600352 -S31540016D40D407200C8328400B980B2001DA06A000BB -S31540016D50111000A0992B000A9A0B6003D602200459 -S31540016D608210400C9B2B400B15100143A010400D87 -S31540016D70F002A0D0A2102003E0240000C0A002200F -S31540016D80921020034000097290047FFD8206200C78 -S31540016D9098102001912A0001992B00011B10012016 -S31540016DA09610000182136000DA02000180A34010B0 -S31540016DB0A204600112800088A004000C80A4600A2D -S31540016DC024BFFFEFE0240000C0A0022003100120F1 -S31540016DD0A810000BAA106000A0102000A2102003EA -S31540016DE090047FFD4000095A92102003832C6002D3 -S31540016DF0912A0014DA04C00190020015820B6060EA -S31540016E009132200480A000019012201EA040001063 -S31540016E109A0B7F9F900A3F9F80A340081280007083 -S31540016E20A204600180A4600A24BFFFEF90047FFDA5 -S31540016E3080A4200012800004C205E01010800000EA -S31540016E4001000000D6066014D806E00882086003F7 -S31540016E50D407200CDA06A000111000A08328400BAD -S31540016E60980B2001992B000AD60220049A0B600246 -S31540016E708210400C9B2B400BAA10400D9FC5400031 -S31540016E800100000082102400C0A04300C0A00220DF -S31540016E90A0102000A21020039B2C6002C204C00D4A -S31540016EA08208606080A00001A0400010A204600139 -S31540016EB080A4600A24BFFFFA9B2C600280A42008AC -S31540016EC022800004D004E00410800000010000008C -S31540016ED0808A204002800007010000007FFFFE19E2 -S31540016EE00100000080A22000128000040100000081 -S31540016EF010800000010000007FFFFE12D004A008B0 -S31540016F0080A22000128000040100000010800000D1 -S31540016F10010000007FFFFE0BD004E00880A22000A4 -S31540016F2012800004010000001080000001000000F2 -S31540016F3083480000842860808188A0000100000009 -S31540016F400100000001000000D806E008D407200C2B -S31540016F50DA05E010980B2001D6066014992B000A39 -S31540016F609A0B6003C206A0009B2B400B151000A094 -S31540016F70D602A004820860018328400B9A13400C74 -S31540016F809A1340019A136004C203400092102004F0 -S31540016F9091D02002010000007FFFC41D01000000C6 -S31540016FA0981020009A102200D8A343208210200175 -S31540016FB0C2A34320D8A3432003100000DA804380B4 -S31540016FC0DAA043807FFFC47F9010200081D8200043 -S31540016FD03080000510800000010000001080000094 -S31540016FE00100000081C7E00891E820009DE3BF98B9 -S31540016FF0400007D201000000808A21000280003F44 -S31540017000010000007FFFA88D01000000912A2004A5 -S315400170107FFFA87690022005031001408210604848 -S31540017020DA00600480A3600022800015031001404D -S31540017030B0100001C20600009B38601F81836000CA -S31540017040DA06200401000000010000008278400DAC -S31540017050DA062008B006200C80A0400D028000040C -S31540017060901020017FFFA86601000000C20620049F -S3154001707080A0600012BFFFF0031001408210600043 -S31540017080DA00600480A36000028000150100000060 -S31540017090B0100001C206000081800000DA0620041B -S315400170A001000000010000009A70400D8210000DA1 -S315400170B0DA062008B006200C80A0400D02800004AC -S315400170C0901020027FFFA84E01000000C206200456 -S315400170D080A0600012BFFFF00100000040000825BB -S315400170E00100000080A2200012800004010000007F -S315400170F07FFFA8439010200381C7E00891E8200054 -S315400171009DE3BF987FFFA84D01000000912A20040E -S315400171107FFFA836900220044000078A0100000044 -S3154001712080A2212302800004010000007FFFA834D1 -S31540017130901020014000078101000000808A210053 -S315400171400280002B0310014082106184DA0060083E -S3154001715080A360090280001101000000B010000107 -S31540017160C2060000DA062004D80620088258400DDF -S31540017170B006200C80A0400C028000049010200232 -S315400171807FFFA81F01000000C206200880A06009F9 -S3154001719012BFFFF401000000400007770100000024 -S315400171A080A220000280000F01000000400007631A -S315400171B001000000808A22000280000D01000000CB -S315400171C04000079F0100000080A2200012800008B5 -S315400171D0010000007FFFA80A9010200430800004BF -S315400171E07FFFA8079010200330BFFFF181C7E00859 -S315400171F091E82000000000009DE3BFA0941020000C -S315400172001110005C9012222C1310005C9212623015 -S315400172101710005C9612E2381910005C9813223C54 -S3154001722093C2000081C240001080019181C2C0001A -S3154001723081C300001080018E9402A0019402A00136 -S3154001724080A2A0031280018A010000008744000049 -S315400172508D30E00E8C89A00780A1A000028000C776 -S3154001726001000000AF30E00BAE0DE00780A5E00065 -S31540017270128000C20100000080A1A00212800035E8 -S315400172800100000025100000E41C800025100000CC -S3154001729029100000A8152104A6100012AA100012F8 -S315400172A0AC100014A1802046A4100000AA100000D2 -S315400172B001000000A180204EA8102100010000001D -S315400172C0A18000000100000001000000E83CA03060 -S315400172D082A480131280016682A500161280016481 -S315400172E00100000001000000010000008744000089 -S315400172F08D30E00B8C89A0078CA1A0051280015C22 -S31540017300A180000001000000010000000100000012 -S31540017310E81CA03082A500161280015582A54012B4 -S31540017320A41000001280015201000000010000007B -S31540017330874400008D30E00B8C89A0078CA1A00307 -S315400173401280014B010000001080008C01000000FA -S3154001735080A1A0011280002325100000E41C8000BA -S315400173602510000029100000A8152104A6100012BE -S31540017370AA100012AC100014A1802046A4100000EF -S31540017380AA10000001000000A180204EA810210093 -S3154001739001000000A1800000010000000100000082 -S315400173A001000000E83C800082A480131280013075 -S315400173B082A500161280012E010000000100000086 -S315400173C0874400008D30E00B8C89A0078CA1A00278 -S315400173D012800127010000001080006801000000B2 -S315400173E080A1A00312800065A6100000A210200E05 -S315400173F0A1844000A6100000A1800000A814E0006E -S31540017400AB44000001000000AC14E00001000000A4 -S31540017410AF44000080A5200012800115AA8D6E00A0 -S3154001742080A540001280011280A5A00012800110A3 -S31540017430AF35E00BAE0DE00780A5E0011280010CEF -S3154001744001000000A0100000A1844000A610000029 -S31540017450A1800000E8180000AC100000AE1000004A -S31540017460EC04C000EE04E00480A500161280010081 -S3154001747080A54017128000FE01000000A5440000CF -S31540017480A534A00BA40CA00780A4A001128000F88B +S31540011C9085A00921C523000081C3E008D0030000C7 +S31540011CA01910008098132120D0230000D223200848 +S31540011CB0C1030000C303200885A009A1C523000074 +S31540011CC081C3E008D0030000191000809813212039 +S31540011CD0D0230000C103000083A00520C3230000D8 +S31540011CE081C3E008D00300001310008092126138CE +S31540011CF0C51A6008C11A400089A0084091A108C2CE +S31540011D0095A209C495A2894281C3E008D53A00004B +S31540011D101310008092126158C1024000C302600450 +S31540011D2085A0082087A088A189A0C9A289A10921E7 +S31540011D3081C3E008C92200009610200213100080DA +S31540011D4092126138151000809412A138D5024000D4 +S31540011D50D7028000D5220000D8020000131000806F +S31540011D609212615896A2E00112BFFFF901000000EC +S31540011D7081C3E0080100000013100080921261380F +S31540011D80151000809412A158C1028000C51A601036 +S31540011D9083A0082089A088C08BA109A18DA10942F1 +S31540011DA08FA1492691A0054681C3E008D13A00009A +S31540011DB01110008090122130C11A0000C51A00008E +S31540011DC0C91A0000CD1A0000D11A0000D51A000028 +S31540011DD0D91A0000DD1A0000E11A0000E51A0000D8 +S31540011DE0E91A0000ED1A0000F11A0000F51A000088 +S31540011DF0F91A0000FD1A000081C3E0080100000045 +S31540011E0029100080A81520F827100080A614E16843 +S31540011E10C12CC000E604C000A134E00EA00C20078E +S31540011E20A0A42002AE1020002D100080AC15A168A0 +S31540011E30AE05E001AC05A008C1358000C12D00000A +S31540011E40EA050000AB35600DAA8D600112BFFFF9AE +S31540011E5001000000808000100280002F2B3C1FFFF4 +S31540011E60AA1563FFA60CC015E6250000C10D0000AA +S31540011E702B100080AA1561742D100047AC15A2E005 +S31540011E80AE25E001E0054000E025800081D8200034 +S31540011E9001000000010000000100000001000000F7 +S31540011EA001000000010000000100000001000000E7 +S31540011EB001000000010000000100000001000000D7 +S31540011EC001000000010000000100000001000000C7 +S31540011ED001000000010000000100000001000000B7 +S31540011EE00000000080A5C00012BFFFE6AA056008F9 +S31540011EF0C12D0000E60500002B03C000A614C01545 +S31540011F00E6250000C10D000081C4400081CC80005F +S31540011F100100000081C4800081CCA00401000000C2 +S31540011F200100000081C3E008915800000100000053 +S31540011F3011100080901220F8C10A0000C022000052 +S31540011F40C10A0000C12A0000D40200001300038028 +S31540011F50942A800980A0000A3280004D9010200307 +S31540011F601303E000D223BFA0C023BFA4C10BBFA06F +S31540011F70C023BFA0151000809412A0E8C1028000C2 +S31540011F800100000001000000C10BBFA0C10BBFA4AE +S31540011F9083A00520C12BBFA0D003BFA0808A220009 +S31540011FA02280003B901020049010200015100080E4 +S31540011FB09412A108C5028000C902A008D102A00C52 +S31540011FC013100080921260E8C70240008DA0894438 +S31540011FD081A98AC8010000000380000501000000B4 +S31540011FE0901020011080002A01000000C5028000E7 +S31540011FF0C902A008D102A00C13100080921260E819 +S31540012000CB0240008DA0894481A98AC80100000005 +S315400120100380000501000000901020011080001C83 +S315400120200100000025100080A414A0F0C11C80000E +S31540012030C51C800080A000003280000685A008C033 +S3154001204081A80AC2010000001380000301000000BC +S31540012050901020050100000025100080A414A0F076 +S31540012060C11C8000C51C800080A00000010000004A +S315400120703280000685A008C081A80AC2010000007E +S3154001208013800003010000009010200701000000AA +S3154001209081C3E00801000000901020019544000032 +S315400120A09532A01E940AA00380A2800002800040BF +S315400120B09010200080A2A0021680003D13100080DF +S315400120C092126198C11A4000C51A6008FD02601853 +S315400120D095A0003E99A0003E9DA0003E170000C07D +S315400120E09612E078A182C0000100000001000000C4 +S315400120F00100000001000000010000000100000095 +S3154001210081A0002083A0002195A0002A99A0002C3F +S315400121109DA0002E170000C09612E07CA182C0004F +S315400121200100000001000000010000000100000064 +S31540012130010000000100000085A0002287A00023C5 +S31540012140A180000001000000010000000100000024 +S3154001215001000000010000000100000089A00842C2 +S31540012160A9A2883ED93A4000DD224000CD1A60102E +S31540012170D102600881A90A46010000000380000CD3 +S3154001218081AD0A2801000000038000099344000044 +S315400121909332601B920A60079010200080A2A00132 +S315400121A002800003902260079022600481C3E00808 +S315400121B001000000C12BBFA081C3E008D003BFA02E +S315400121C0D023BFA081C3E008C10BBFA0010000001E +S315400121D09DE3BF6040001B94B0102000833A200A63 +S315400121E08208600380A060010280000401000000B3 +S315400121F081C7E00881E800007FFFBDE19010200D16 +S31540012200050C40290723CD1B8410A0068610E09BB0 +S31540012210C027BFF0C027BFF4C43FBFF8C027BFD017 +S31540012220C027BFD4C027BFC87FFFFF3FC027BFCC51 +S31540012230820A30008210608084006004072804000E +S315400122408610E00F09100047C62040008811220081 +S3154001225007100000882100028939200286110003F7 +S31540012260C620600425100080032784008210601078 +S315400122707FFFFED0C220A0047FFFFFD21103E00002 +S3154001228090102000C024A1687FFFFDD0010000000E +S31540012290809200091280000601000000C204A16874 +S315400122A080A0600002800004010000007FFFBDBBEA +S315400122B09010200B7FFFFDC590103FFA03300600BA +S315400122C080A2000102800CF880A260007FFFBDB3AE +S315400122D09010200B7FFFFDBD9010201403100D00C0 +S315400122E080A200010280113680A260007FFFBDAB53 +S315400122F09010200B7FFFFDB5901020620310162031 +S3154001230080A200010280112780A260007FFFBDA349 +S315400123109010200B7FFFFDB590102005031028007B +S3154001232080A2000112800CB501000000C204A16820 +S3154001233080A0600012800CB1010000007FFFFFA168 +S315400123401103C000111C00007FFFFDB09210200058 +S31540012350031FFFFF821063FF80A200011280000B62 +S3154001236001000000C404A168030000708210601FD0 +S3154001237084088001030000108210601080A0800153 +S3154001238002800005113C00007FFFBD849010200CA7 +S31540012390113C00007FFFFD9D9210200003200000AC +S315400123A080A200011280000B01000000C404A16854 +S315400123B0030000708210601F840880010300001032 +S315400123C08210601080A0800102800004010000009C +S315400123D07FFFBD729010200CC024A1689010200090 +S315400123E07FFFFD8A9210200080A220001280000605 +S315400123F003100080C200616880A060000280000571 +S31540012400110144007FFFBD659010200C110144006D +S3154001241013284000901223027FFFFD7C9212600137 +S3154001242080A220001280000601000000C204A168BB +S3154001243080A06000228000051111FFFF7FFFBD577C +S315400124409010200C1111FFFF7FFFFD78901223FFA2 +S315400124500300007F821063FF80A2000112800C639B +S3154001246001000000C204A16880A0600012800C5FD8 +S3154001247001000000271000807FFFFD64D01CE1E0D1 +S31540012480031FFFFF821063FF80A200011280000B31 +S3154001249001000000C404A168030000708210601F9F +S315400124A084088001030000108210601080A0800122 +S315400124B002800005351000807FFFBD389010200C4A +S315400124C035100080D01EA1D0C024A1687FFFFD4FEA +S315400124D0010000000320000080A200011280000BD1 +S315400124E003100080C4006168030000708210601F01 +S315400124F084088001030000108210601080A08001D2 +S31540012500028000052B1000807FFFBD249010200C17 +S315400125102B100080D01D61F0C024A1687FFFFD3BD8 +S3154001252001000000031FFFFF821063FF80A200012C +S315400125301280000B03100080C40061680300007024 +S315400125408210601F84088001030000108210601011 +S3154001255080A08001028000052F1000807FFFBD0F03 +S315400125609010200C2F100080D01DE1B8C024A16826 +S315400125707FFFFD2601000000C204A1688330600E82 +S315400125808208600380A0600202800004010000000E +S315400125907FFFBD029010200C7FFFFF0A1103C00090 +S315400125A011115804C024A1687FFFFD2890122234DE +S315400125B003102B008210624680A200010280107136 +S315400125C0032000007FFFBCF59010200D113C02AFA7 +S315400125D07FFFFD1E901220D1033180558210639AF0 +S315400125E080A200010280105F030800007FFFBCEB60 +S315400125F09010200D1111FC007FFFFD1C9210200050 +S31540012600031FE00080A200011280000B01000000C0 +S31540012610C404A168030000708210601F8408800111 +S31540012620030000108210600880A08001028000042F +S31540012630010000007FFFBCD99010200DC024A16885 +S3154001264011207C01130001007FFFFD08901220300C +S315400126500320000080A200011280000B03100080BD +S31540012660C4006168030000708210601F8408800105 +S31540012670030000108210600480A0800102800004E3 +S31540012680010000007FFFBCC59010200DC024A16849 +S31540012690901020007FFFFCF59210200080A22000C0 +S315400126A01280000603100080C200616880A06000AD +S315400126B002800004010000007FFFBCB89010200D8D +S315400126C07FFFFCEAD01CE1E003100080C20061E814 +S315400126D080A2000112800BC101000000C204A16862 +S315400126E080A0600012800BBD010000003710008001 +S315400126F07FFFFCDED01EE1D8031FE00080A200016F +S3154001270012800BB301000000C204A16880A06000E2 +S3154001271012800BAF010000007FFFFCD4D01D61F099 +S3154001272003100080C200620080A200011280000BEB +S3154001273001000000C404A168030000708210601FFC +S3154001274084088001030000108210601080A080017F +S3154001275002800005D01DE1B87FFFBC909010200D8E +S31540012760D01DE1B8C024A1687FFFFCC00100000074 +S31540012770C204A1688330600E8208600380A06002B3 +S3154001278002800004010000007FFFBC849010200DF0 +S315400127907FFFFE8C1103E0002108C6AFC024A1686B +S315400127A0901420DE7FFFFCB9A01420DE80A2001029 +S315400127B012800B8303100080C200616880A0600014 +S315400127C012800B7F010000002108C6AF901420DE65 +S315400127D07FFFFCBEA01420DE80A2001012800B7485 +S315400127E001000000C204A16880A0600012800B7045 +S315400127F0010000001128C6AF7FFFFCB4901220DE15 +S315400128000308C6AF821060DE80A2000112800B640D +S3154001281001000000C204A16880A0600012800B6024 +S31540012820010000001108C6AF7FFFFCA0901220DE18 +S315400128300328C6AF821060DE80A2000112800B54CD +S3154001284001000000C204A16880A0600012800B5004 +S31540012850010000001128C6AF7FFFFC94901220DED4 +S315400128600308C6AF821060DE80A2000112800B45CC +S3154001287001000000C204A16880A0600012800B41E3 +S31540012880010000007FFFFE4F1103E00011151BC040 +S315400128901310C821901221039212614115351BC0B4 +S315400128A01710C8219412A1037FFFFC909612E141B3 +S315400128B080A2200212800B2B01000000C204A168F5 +S315400128C080A0600012800B270100000011351BC05B +S315400128D01310C821901221039212614115151BC094 +S315400128E01710C8219412A1037FFFFC809612E14183 +S315400128F080A2200112800B1F01000000C204A168C2 +S3154001290080A0600012800B1B010000009010200087 +S3154001291092102000152000007FFFFC7496102000C5 +S3154001292080A220001280000601000000C204A168B6 +S3154001293080A0600002800005D01EE1D87FFFBC1751 +S315400129409010200FD01EE1D87FFFFC68D41EA1D085 +S3154001295080A2200212800AFF01000000C204A16881 +S3154001296080A0600012800AFB0100000011151BC007 +S315400129701310C821901221039212614115151BE8CB +S315400129801710C8219412A1037FFFFC589612E1410A +S3154001299080A2200112800AEB01000000C204A16856 +S315400129A080A0600012800AE70100000011151BE8B3 +S315400129B01310C821901221039212614115151BC0B3 +S315400129C01710C8219412A1037FFFFC489612E141DA +S315400129D080A2200212800AD701000000C204A16829 +S315400129E080A0600012800AD301000000D41CE1E0FF +S315400129F011151BE81310C821901221037FFFFC3BE0 +S31540012A009212614180A2200312800AC60100000091 +S31540012A10C204A16880A0600012800AC201000000C1 +S31540012A20D41D61F011151BE81310C8219012210322 +S31540012A307FFFFC2E9212614180A220031280000B7F +S31540012A4001000000C404A168030000708210601FE9 +S31540012A5084088001030000108210601080A080016C +S31540012A6002800005D41DE1B87FFFBBCC9010200F3A +S31540012A70D41DE1B8C024A16811151BE81310C82163 +S31540012A80901221037FFFFC199212614180A220021C +S31540012A9012800AA003100080C200616880A0600015 +S31540012AA012800A9C01000000D01DE1B815151BE8F3 +S31540012AB01710C8219412A1037FFFFC0C9612E14125 +S31540012AC080A2200112800A8B01000000C204A16885 +S31540012AD080A0600012800A8701000000D01CE1E05E +S31540012AE015151BE81710C8219412A1037FFFFBFFA0 +S31540012AF09612E14180A2200312800A820100000061 +S31540012B00C204A16880A0600012800A7E0100000014 +S31540012B10D01D61F015151BE81710C8219412A103A9 +S31540012B207FFFFBF29612E14180A220031280000B47 +S31540012B3001000000C404A168030000708210601FF8 +S31540012B4084088001030000108210601080A080017B +S31540012B5002800004010000007FFFBB909010200F0F +S31540012B60C024A16811151BC01310C821901221035E +S31540012B709212614115351BC01710C8219412A10349 +S31540012B807FFFFBED9612E14180A2200212800A5599 +S31540012B9003100080C200616880A0600012800A5163 +S31540012BA00100000011351BC01310C82190122103EA +S31540012BB09212614115151BC01710C8219412A10329 +S31540012BC07FFFFBDD9612E14180A2200112800A417E +S31540012BD001000000C204A16880A0600012800A3D85 +S31540012BE001000000901020009210200015200000E6 +S31540012BF07FFFFBD19610200080A2200012800006A4 +S31540012C0001000000C204A16880A0600002800005A6 +S31540012C10D01EE1D87FFFBB619010200FD01EE1D8B6 +S31540012C207FFFFBC5D41EA1D080A2200212800A25B7 +S31540012C3001000000C204A16880A0600012800A2140 +S31540012C400100000011151BC01310C8219012210369 +S31540012C509212614115151BE81710C8219412A10360 +S31540012C607FFFFBB59612E14180A2200112800A1135 +S31540012C7001000000C204A16880A0600012800A0D14 +S31540012C800100000011151BE81310C8219012210301 +S31540012C909212614115151BC01710C8219412A10348 +S31540012CA07FFFFBA59612E14180A22002128009FD19 +S31540012CB001000000C204A16880A06000128009F9E9 +S31540012CC001000000D41CE1E011151BE81310C821D6 +S31540012CD0901221037FFFFB989212614180A220034B +S31540012CE01280000B01000000C404A16803000070BB +S31540012CF08210601F8408800103000010821060105A +S31540012D0080A0800102800005D41D61F07FFFBB23B6 +S31540012D109010200FD41D61F011151BE81310C82126 +S31540012D20901221037FFFFB849212614180A220030E +S31540012D301280000B01000000C404A168030000706A +S31540012D408210601F84088001030000108210601009 +S31540012D5080A0800102800005D41DE1B87FFFBB0F32 +S31540012D609010200FD41DE1B8C024A16811151BE8AD +S31540012D701310C821901221037FFFFB6F921261410C +S31540012D8080A22002128009BF03100080C200616840 +S31540012D9080A06000128009BB01000000D01DE1B88F +S31540012DA015151BE81710C8219412A1037FFFFB627A +S31540012DB09612E14180A22001128009B6010000006D +S31540012DC0C204A16880A06000128009B2010000001F +S31540012DD0D01CE1E015151BE81710C8219412A10378 +S31540012DE07FFFFB559612E14180A220031280000B22 +S31540012DF001000000C404A168030000708210601F36 +S31540012E0084088001030000108210601080A08001B8 +S31540012E1002800005D01D61F07FFFBAE09010200FBF +S31540012E20D01D61F015151BE81710C8219412A10396 +S31540012E307FFFFB419612E14180A220031280000BE5 +S31540012E4001000000C404A168030000708210601FE5 +S31540012E5084088001030000108210601080A0800168 +S31540012E6002800004010000007FFFBACC9010200FC1 +S31540012E70C024A168110048EA13048D15901223CD90 +S31540012E807FFFFB3E9212627880A22001128009796F +S31540012E9003100080C200616880A06000128009753D +S31540012EA001000000110048EA13048D15901223CD4C +S31540012EB07FFFFB439212627880A220011280096A49 +S31540012EC001000000C204A16880A06000128009666A +S31540012ED001000000C024A1687FFFFCBA1103C000B5 +S31540012EE023100124A807BFF8BA07BFD090100014D9 +S31540012EF09210001D7FFFFA6C94146160C2046160F8 +S31540012F00C407BFF880A0800102800E0CA014616046 +S31540012F107FFFBAA2901020102D100080901000144F +S31540012F209215A1C87FFFFA6094146160C404616080 +S31540012F30C205A1C880A0800122800DF6C4042004E8 +S31540012F407FFFBA9690102010901000149214E1E081 +S31540012F507FFFFA5594146160C4046160C204E1E0E4 +S31540012F6080A0800102800DE1B214E1E07FFFBA8BBF +S31540012F709010201090100014921561F07FFFFA4ACC +S31540012F8094146160C404A168030000708210601F3C +S31540012F9084088001030000108210601080A0800127 +S31540012FA002800004010000007FFFBA7C90102010CF +S31540012FB0C024A1687FFFFC8390102000901000146C +S31540012FC0921561F07FFFFA389414616039100080E0 +S31540012FD0C4046160C20721F880A0800122800DBD32 +S31540012FE0C40420047FFFBA6D901020107FFFFC754A +S31540012FF01103C000901000149215E1B87FFFFA2A20 +S3154001300094146160C204A1688330600E8208600333 +S3154001301080A0600202800004010000007FFFBA5FC9 +S3154001302090102010C024A1689010001D9210001429 +S315400130307FFFFA1D94146160C4046160C207BFF842 +S3154001304080A0800122800D9AC40420047FFFBA53D8 +S31540013050901020109010001D9215A1C87FFFFA1202 +S3154001306094146160C4046160C205A1C880A0800156 +S3154001307022800D84C40420047FFFBA48901020109A +S315400130809010001D9214E1E07FFFFA0794146160ED +S31540013090C4046160C204E1E080A0800122800D7019 +S315400130A0C40420047FFFBA3D901020109010001DEB +S315400130B0921561F07FFFF9FC94146160C404A16824 +S315400130C0030000708210601F840880010300001015 +S315400130D08210601080A0800102800004010000007F +S315400130E07FFFBA2E901020107FFFFC3690102000F3 +S315400130F09010001D921561F07FFFF9EB9414616009 +S31540013100C4046160C20721F880A0800122800D4D70 +S31540013110C40420047FFFBA21901020107FFFFC29B0 +S315400131201103C0009010001D9215E1B87FFFF9DE32 +S3154001313094146160C204A1688330600E8208600302 +S3154001314080A0600202800004010000007FFFBA13E4 +S3154001315090102010C024A1689015A1C892100014A7 +S315400131607FFFF9D194146160C4046160C205A1C8AE +S3154001317080A0800122800D28C40420047FFFBA0765 +S31540013180901020109015A1C89210001D7FFFF9C61E +S3154001319094146160C4046160C205A1C880A0800125 +S315400131A022800D12C40420047FFFB9FC9010201028 +S315400131B09016E1D8941461607FFFF9BB9210000824 +S315400131C0C4046160C206E1D880A0800122800CFC63 +S315400131D0C40420047FFFB9F1901020109016A1D0AD +S315400131E0941461607FFFF9B092100008C4046160D5 +S315400131F0C206A1D080A0800122800CE6C40420042E +S315400132007FFFB9E6901020109016A1D09216E1D812 +S315400132107FFFF9A594146160C404A168030000709E +S315400132208210601F84088001030000108210601024 +S3154001323080A0800102800004010000007FFFB9D711 +S31540013240901020107FFFFBDF901020009016A1D038 +S315400132509216E1D87FFFF99494146160C4046160C9 +S31540013260C20721F880A0800122800CC3C404200437 +S315400132707FFFB9CA901020107FFFFBD21103C00017 +S315400132809016E1D8C024A1689216A1D07FFFF98695 +S3154001329094146160C4046160C20721F880A0800172 +S315400132A022800CA4C40420047FFFB9BC90102010D6 +S315400132B09015A1C89215E1B87FFFF97B941461601E +S315400132C0C204A1688330600E8208600380A0600258 +S315400132D002800004010000007FFFB9B09010201069 +S315400132E0C024A1689014E1E0921000147FFFF96EAA +S315400132F094146160C4046160C204E1E080A080016D +S3154001330022800C83C40420047FFFB9A490102010AE +S315400133109014E1E09210001D7FFFF96394146160FF +S31540013320C4046160C204E1E080A0800122800C6F88 +S31540013330C40420047FFFB999901020109014E1E055 +S315400133409215A1C87FFFF95894146160C404616065 +S31540013350C204E1E080A0800122800C5BC404200409 +S315400133607FFFB98E901020109014E1E094146160B3 +S315400133707FFFF94D92100008C4046160C204E1E088 +S3154001338080A0800122800C47C40420047FFFB983BA +S31540013390901020109014E1E0921561F07FFFF94200 +S315400133A094146160C404A168030000708210601F18 +S315400133B084088001030000108210601080A0800103 +S315400133C002800004010000007FFFB97490102010B4 +S315400133D0C024A168901561F0921000147FFFF93264 +S315400133E094146160C404A168030000708210601FD8 +S315400133F084088001030000108210601080A08001C3 +S3154001340002800004010000007FFFB9649010201083 +S31540013410C024A168901561F09210001D7FFFF9222A +S3154001342094146160C404A168030000708210601F97 +S3154001343084088001030000108210601080A0800182 +S3154001344002800004010000007FFFB9549010201053 +S31540013450C024A168901561F09215A1C87FFFF912A9 +S3154001346094146160C404A168030000708210601F57 +S3154001347084088001030000108210601080A0800142 +S3154001348002800004010000007FFFB9449010201023 +S31540013490C024A168901561F09214E1E07FFFF90222 +S315400134A094146160C404A168030000708210601F17 +S315400134B084088001030000108210601080A0800102 +S315400134C002800005901561F07FFFB93490102010FD +S315400134D0901561F0C024A168941461607FFFF8F2F1 +S315400134E092100008C404A168030000708210601F96 +S315400134F084088001030000108210601080A08001C2 +S3154001350002800004010000007FFFB92490102010C2 +S31540013510C024A168901561F09215E1B87FFFF8E2E9 +S3154001352094146160C204A1688330600E820860030E +S3154001353080A0600202800004010000007FFFB917ED +S31540013540901020107FFFFB1F1103C0000310008065 +S31540013550C024A1688210633010800009B010200099 +S315400135607FFFB90E90102010C207BFC4B0062001DC +S3154001357080A6200D0280002282006018852E20033D +S31540013580912E200590220002051000808410A32070 +S31540013590C227BFC490008008932E20011510012434 +S315400135A0920240189412A16092026001932A60032C +S315400135B07FFFF8BD92008009C207BFC4C600400024 +S315400135C0C404000080A0C00232BFFFE6C227BFC4C8 +S315400135D0C60060040910012488112160C401200439 +S315400135E080A0C00232BFFFDFC227BFC4B0062001A0 +S315400135F080A6200D12BFFFE282006018C204A168B6 +S3154001360080A0600012800BA3010000001110008110 +S3154001361094146160901220587FFFF8A3920220080B +S315400136200310008082106320C4006148C2046160B7 +S3154001363080A0800102800B86071000807FFFB8D7EB +S315400136409010201011100081941461609012207026 +S315400136507FFFF8959202200809100080C20461603C +S3154001366088112320C401216080A0800122800B693A +S31540013670C40121647FFFB8C9901020101110008148 +S3154001368094146160901220887FFFF8879202200887 +S315400136900310008082106320C4006178C204616017 +S315400136A080A0800102800B4B071000807FFFB8BBD2 +S315400136B090102010C024A168111000009210200023 +S315400136C0150FFC007FFFF94F96102000030FFC00F9 +S315400136D080A2000102800B3880A260007FFFB8AF54 +S315400136E0901020101110000092102000152FFC00A0 +S315400136F07FFFF944961020000310020080A20001CA +S3154001370002800B2680A260007FFFB8A49010201093 +S315400137101130000092102000150FFC007FFFF9398F +S31540013720961020000330020080A2000102800B1493 +S3154001373080A260007FFFB8999010201011300000E0 +S3154001374092102000152FFC007FFFF92E96102000C5 +S31540013750032FFC0080A2000102800B0280A26000C0 +S315400137607FFFB88E90102010111000007FFFF92FB7 +S31540013770130FE0000310100080A20001128007B66B +S3154001378001000000C204A16880A06000128007B257 +S3154001379001000000111000007FFFF92E130FE00019 +S315400137A0030FE00080A20001128007A7010000007C +S315400137B0C204A16880A06000128007A30100000036 +S315400137C009100080C024A16890100014941461600F +S315400137D07FFFF848921121C0C4046160C206A1D09E +S315400137E080A0800122800ACFC40420047FFFB86BE9 +S315400137F090102011C024A168901000149216E1D8AF +S315400138007FFFF83C94146160C4046160C207BFC87D +S3154001381080A0800122800ABAC40420047FFFB85FD9 +S3154001382090102011901000149214E1E07FFFF831BE +S3154001383094146160C4046160C204E1E080A0800127 +S3154001384022800AA6C40420047FFFB8549010201198 +S3154001385090100014921561F07FFFF8269414616070 +S31540013860C4046160C20721F880A0800122800A8ACF +S31540013870C40420047FFFB849901020119010001411 +S315400138809215E1B87FFFF81B941461600300007044 +S31540013890C404A168840880010300002080A080013F +S315400138A002800004010000007FFFB83C9010201107 +S315400138B0C024A1689010001D921000147FFFF80DDE +S315400138C094146160C4046160C207BFD080A08001C6 +S315400138D022800A68C40420047FFFB830901020116A +S315400138E0031000809207BFC8901061C07FFFF801A6 +S315400138F094146160C4046160C20721F880A080010C +S3154001390022800A4CC40420047FFFB8249010201161 +S3154001391009100080C024A168901121C09216E1D8F7 +S315400139207FFFF7F494146160C4046160071000805E +S31540013930C200E1C080A0800122800A34C404200470 +S315400139407FFFB816901020119010001D9214E1E0EF +S315400139507FFFF7E894146160C4046160C204E1E04A +S3154001396080A0800122800A20C40420047FFFB80B76 +S31540013970901020079010001D921561F07FFFF7DD32 +S3154001398094146160C404A168030000708210601F32 +S3154001399084088001030000108210601080A080011D +S315400139A002800004010000007FFFB7FC9010201147 +S315400139B0C024A1689010001D9215E1B87FFFF7CD94 +S315400139C09414616003000070C404A16884088001F6 +S315400139D00300002080A08001028000040100000055 +S315400139E07FFFB7EE90102011C024A1689016A1D098 +S315400139F0921000147FFFF7BF94146160C4046160A4 +S31540013A00C206A1D080A08001228009ECC404200412 +S31540013A107FFFB7E290102011091000809016A1D0C7 +S31540013A20921121C07FFFF7B394146160C4046160B1 +S31540013A30C206E1D880A08001228009D5C4042004B1 +S31540013A407FFFB7D6901020119015A1C894146160DC +S31540013A507FFFF7A892100008C4046160C20721F8ED +S31540013A6080A08001228009BAC40420047FFFB7CB1D +S31540013A7090102011C024A1689015A1C89214E1E0CC +S31540013A807FFFF79C94146160C4046160C204E1E065 +S31540013A9080A08001228009A5C40420047FFFB7BF0E +S31540013AA0901020119015A1C8921561F07FFFF791F2 +S31540013AB094146160C4046160C20721F880A080014A +S31540013AC02280098AC40420047FFFB7B490102011D4 +S31540013AD0C024A1689015A1C89215E1B87FFFF7856A +S31540013AE09414616003000070C404A16884088001D5 +S31540013AF00300002080A08001028000040100000034 +S31540013B007FFFB7A690102011C024A1689014E1E070 +S31540013B10921000147FFFF77794146160C4046160CA +S31540013B20C204E1E080A0800122800967C404200428 +S31540013B307FFFB79A901020119014E1E09210001D7A +S31540013B407FFFF76C94146160C4046160C204E1E0D4 +S31540013B5080A0800122800953C40420047FFFB78FCF +S31540013B60901020119014E1E09215A1C87FFFF761F2 +S31540013B7094146160C4046160C204E1E080A08001E4 +S31540013B802280093FC40420047FFFB784901020118E +S31540013B909014E1E0941461607FFFF756921000089B +S31540013BA0C4046160C204E1E080A080012280092B47 +S31540013BB0C40420047FFFB779901020119014E1E0EE +S31540013BC0921561F07FFFF74B94146160C404616004 +S31540013BD0C20721F880A080012280090FC404200475 +S31540013BE07FFFB76E901020119014E1E09215E1B875 +S31540013BF07FFFF7409414616003000070C404A1681C +S31540013C00840880010300002080A080010280000515 +S31540013C10901561F07FFFB76190102011901561F00A +S31540013C20921000147FFFF73394146160C404A168B5 +S31540013C30030000708210601F840880010300001099 +S31540013C408210601080A08001028000040100000003 +S31540013C507FFFB75290102011C024A168901561F0E2 +S31540013C609210001D7FFFF72394146160C404A1687C +S31540013C70030000708210601F840880010300001059 +S31540013C808210601080A080010280000401000000C3 +S31540013C907FFFB74290102011C024A168901561F0B2 +S31540013CA09215A1C87FFFF71394146160C404A168FB +S31540013CB0030000708210601F840880010300001019 +S31540013CC08210601080A08001028000040100000083 +S31540013CD07FFFB73290102011C024A168901561F082 +S31540013CE09214E1E07FFFF70394146160C404A16874 +S31540013CF0030000708210601F8408800103000010D9 +S31540013D008210601080A0800102800005901561F04C +S31540013D107FFFB72290102011901561F0C024A16851 +S31540013D20941461607FFFF6F392100008C404A16801 +S31540013D30030000708210601F840880010300001098 +S31540013D408210601080A08001028000040100000002 +S31540013D507FFFB71290102011C024A168901561F021 +S31540013D609215E1B87FFFF6E3941461600300007099 +S31540013D70C404A168840880010300002080A080015A +S31540013D8002800005051FC0007FFFB7049010201177 +S31540013D90051FC0000700C0008410A1028610E0B0D4 +S31540013DA0C024A168B007BFE0C43FBFE805203E83F9 +S31540013DB0070021C88410A3FF8610E3A19007BFE83E +S31540013DC092100018C43FBFE07FFFF6CA9407BFD8E0 +S31540013DD0C407BFD8033FFC0080A080010280088051 +S31540013DE0C207BFDC7FFFB6ED9010201105004000F1 +S31540013DF00700C0008410A1028610E0B0C024A1686B +S31540013E009007BFE8C43FBFE805108683070021C875 +S31540013E108410A3FF8610E3A1921000189407BFD81F +S31540013E207FFFF6B4C43FBFE0C207BFDCC407BFD8BB +S31540013E30809080011280000B03100080C4006168ED +S31540013E40030000708210601F840880010300001087 +S31540013E508210600480A0800102800005050006AF43 +S31540013E607FFFB6CE90102011050006AF86102010B8 +S31540013E70C024A1689007BFE8C43FBFE8050FFC0016 +S31540013E80070281D88410A0408610E10C92100018D8 +S31540013E909407BFD87FFFF697C43FBFE0C407BFD89A +S31540013EA0030006AE8210639580A08001028008421D +S31540013EB0C407BFDC7FFFB6B990102011050006AFDD +S31540013EC086102010C024A1689007BFE8C43FBFE810 +S31540013ED0050FFFFF070281D88410A3408610E10C2D +S31540013EE0921000189407BFD87FFFF682C43FBFE007 +S31540013EF0C207BFDCC407BFD8809080011280000B87 +S31540013F0003100080C4006168030000708210601FC6 +S31540013F1084088001030000108210600480A08001A3 +S31540013F2002800004010000007FFFB69C9010201122 +S31540013F30C024A168111088007FFFF75A13100100B1 +S31540013F40031066C9821062CA80A20001128005BAB6 +S31540013F5003100080C200616880A06000128005B62F +S31540013F60010000001111BBFE130C70407FFFF74D9D +S31540013F70901223FF031527CA8210611E80A20001F9 +S31540013F80128005A901000000C204A16880A060005A +S31540013F90128005A501000000111E607E1310C7FFA7 +S31540013FA07FFFF740921263FC031D73FC8210633856 +S31540013FB080A200011280059801000000C204A16898 +S31540013FC080A06000128005940100000011002000CD +S31540013FD0130FE0007FFFF7339212600180A22000A9 +S31540013FE01280000B01000000C404A16803000070A8 +S31540013FF08210601F84088001030000108210600453 +S3154001400080A0800102800005110FE0007FFFB663AA +S3154001401090102011110FE000C024A1687FFFF72105 +S3154001402092100008030FE00080A20001128005767D +S3154001403003100080C200616880A060001280057292 +S315400140400100000011002000130FE0007FFFF7156B +S315400140509212600180A220001280000B0100000034 +S31540014060C404A168030000708210601F84088001A7 +S31540014070030000108210600480A0800102800005C8 +S31540014080031000807FFFB645901020110310008079 +S31540014090C024A168921061C0901000147FFFF607FA +S315400140A094146160C404616007100080C200E1C0DD +S315400140B080A08001228007B6C40420047FFFB63762 +S315400140C090102012901000149216E1D87FFFF5FB54 +S315400140D094146160C4046160C206E1D880A0800185 +S315400140E0228007A0C40420047FFFB62C9010201222 +S315400140F0901000149214E1E07FFFF5F09414616092 +S31540014100C4046160C204E1E080A080012280078C82 +S31540014110C40420047FFFB621901020129010001491 +S31540014120921561F07FFFF5E594146160C404616006 +S31540014130C20721F880A0800122800770C4042004B0 +S315400141407FFFB61690102012901000149215E1B818 +S315400141507FFFF5DA9414616003000070C404A1681E +S31540014160840880010300002080A0800102800004B1 +S31540014170010000007FFFB60990102012C024A168FB +S315400141809010001D921000147FFFF5CC94146160CD +S31540014190C4046160C207BFD080A080012280074E5F +S315400141A0C40420047FFFB5FD901020120310008047 +S315400141B09216A1D0901061C07FFFF5C09414616042 +S315400141C0C4046160C20721F880A0800122800732C1 +S315400141D0C40420047FFFB5F190102012C024A168C9 +S315400141E09010001D9214E1E07FFFF5B494146160D4 +S315400141F0C4046160C204E1E080A080012280071D01 +S31540014200C40420047FFFB5E5901024999010001D49 +S31540014210921561F07FFFF5A994146160C404616051 +S31540014220C20721F880A0800122800701C40420042E +S315400142307FFFB5DA901020129010001D9215E1B85B +S315400142407FFFF59E9414616003000070C404A16869 +S31540014250840880010300002080A0800102800004C0 +S31540014260010000007FFFB5CD90102012C024A16847 +S315400142709015A1C8921000147FFFF59094146160C7 +S31540014280C4046160C205A1C880A08001228006DD08 +S31540014290C40420047FFFB5C1901020129015A1C817 +S315400142A09210001D7FFFF58594146160C40461601E +S315400142B0C20721F880A08001228006C2C4042004DE +S315400142C07FFFB5B690102012C024A1689015A1C8F1 +S315400142D09214E1E07FFFF57994146160C404616052 +S315400142E0C204E1E080A08001228006ADC40420041E +S315400142F07FFFB5AA901020129015A1C8921561F0C2 +S315400143007FFFF56E94146160C4046160C20721F8B1 +S3154001431080A0800122800691C40420047FFFB59FBE +S31540014320901020129015A1C89215E1B87FFFF56350 +S315400143309414616003000070C404A168840880017C +S315400143400300002080A080010280000401000000DB +S315400143507FFFB59290102012C024A1689014E1E02D +S31540014360921000147FFFF55594146160C404616096 +S31540014370C204E1E080A080012280066FC4042004CB +S315400143807FFFB586901020129014E1E09210001D37 +S315400143907FFFF54A94146160C4046160C204E1E0A0 +S315400143A080A080012280065BC40420047FFFB57B88 +S315400143B0901020129014E1E09215A1C87FFFF53FBD +S315400143C094146160C4046160C204E1E080A080018C +S315400143D022800647C40420047FFFB5709010201246 +S315400143E09014E1E0941461607FFFF5349210000867 +S315400143F0C4046160C204E1E080A0800122800633EA +S31540014400C40420047FFFB565901020129014E1E0AA +S31540014410921561F07FFFF52994146160C404A16887 +S31540014420030000708210601F8408800103000010A1 +S315400144308210601080A0800102800004010000000B +S315400144407FFFB55690102012C024A168901561F0E7 +S31540014450921000147FFFF51994146160C404A16899 +S31540014460030000708210601F840880010300001061 +S315400144708210601080A080010280000401000000CB +S315400144807FFFB54690102012C024A1689210001DEE +S31540014490901561F07FFFF50994146160C404A16829 +S315400144A0030000708210601F840880010300001021 +S315400144B08210601080A0800102800004010000008B +S315400144C07FFFB53690102012C024A168901561F087 +S315400144D09215A1C87FFFF4F994146160C404A168E0 +S315400144E0030000708210601F8408800103000010E1 +S315400144F08210601080A0800102800004010000004B +S315400145007FFFB52690102012C024A168901561F056 +S315400145109214E1E07FFFF4E994146160C404A16858 +S31540014520030000708210601F8408800103000010A0 +S315400145308210601080A0800102800005901561F014 +S315400145407FFFB51690102012901561F0C024A16826 +S31540014550941461607FFFF4D992100008C404A168E5 +S31540014560030000708210601F840880010300001060 +S315400145708210601080A080010280000401000000CA +S315400145807FFFB50690102012C024A168901561F0F6 +S315400145909215E1B87FFFF4C994146160C204A16821 +S315400145A08330600E8208600380A0600202800005AD +S315400145B01103C0007FFFB4F9901020121103C0000F +S315400145C07FFFF70031100080B0162228C024A16871 +S315400145D010800008BA1020007FFFB4F0901020121E +S315400145E0BA07600180A7600602800024B006201841 +S315400145F0832F60030910008088112218912F6005CE +S31540014600932F6001902200019202401D9001000803 +S315400146109202600115100124932A60039412A1604D +S315400146207FFFF4A692010009C4060000C2040000FF +S3154001463080A0800112BFFFE907100124C4062004AF +S315400146408610E160C200E00480A0800112BFFFE352 +S315400146500910008088112168C201000080A0600015 +S3154001466012BFFFDE01000000BA07600180A76006A5 +S3154001467012BFFFE0B006201811100080941461604B +S31540014680901222A87FFFF48D920220080310008029 +S3154001469082106218C40060A0C204616080A08001DB +S315400146A00280057A071000807FFFB4BC901020126B +S315400146B0C024A1681110008094146160901222C038 +S315400146C07FFFF47E9202200809100080C2046160D7 +S315400146D088112218C40120B880A080012280055D7E +S315400146E0C40120BC7FFFB4AD90102012C024A16844 +S315400146F01110008094146160901222D87FFFF46FEC +S31540014700920220080310008082106218C40060D013 +S31540014710C204616080A080010280053E07100080CE +S315400147207FFFB49E90102012C024A1681110008012 +S3154001473094146160901222F07FFFF4609202200887 +S3154001474009100080C204616088112218C40120E862 +S3154001475080A0800122800521C40120EC7FFFB48F17 +S3154001476090102012C024A168111000809414616039 +S31540014770901223087FFFF451920220080310008013 +S3154001478082106218C4006100C204616080A0800189 +S3154001479002800502071000807FFFB480901020122E +S315400147A0C024A168111010007FFFF53413100000DA +S315400147B00310300080A20001128003B7031000806D +S315400147C0C200616880A06000128003B3010000004E +S315400147D0111FE000131000007FFFF43D9414616047 +S315400147E0C4046160031FFC0080A08001228004E3B1 +S315400147F0C20420047FFFB4699010201B111FE00002 +S31540014800133000007FFFF43294146160C404616088 +S31540014810033FFC0080A08001228004D0C204200412 +S315400148207FFFB45E9010201C1110000092102010E2 +S315400148307FFFF4279414616003000070C404A168EB +S31540014840840880010300002080A0800102800004CA +S31540014850010000007FFFB4519010201DC024A168C3 +S3154001486011002000130FC0007FFFF41994146160FA +S31540014870C4046160030E000080A08001228004AF61 +S31540014880C20420047FFFB4459010201E111FDFFF94 +S3154001489013100000901223FF7FFFF40D9414616002 +S315400148A0C40461600311FFFF821063FF80A0800191 +S315400148B022800499C40420047FFFB4389010201F3D +S315400148C0111FD000130FF0007FFFF40194146160B3 +S315400148D0C40461600311FC8080A0800122800486AB +S315400148E0C20420047FFFB42D90102021111FDFFF49 +S315400148F094146160901223FF7FFFF3F59210000834 +S31540014900C40461600313FBFF821063FF80A0800132 +S315400149102280046FC40420047FFFB420901020201D +S315400149207FFFF6281103C0009007BFC8C024A168C5 +S315400149307FFFF3F692146160C4046160C207BFC889 +S3154001494080A0800122800459C40420047FFFB4134F +S315400149509010201309100080921461607FFFF3EBE1 +S31540014960901121C005100080C200A1C0C40461603D +S3154001497080A0800102800442071000807FFFB407B7 +S31540014980901020139016E1D87FFFF3E092146160F6 +S31540014990C4046160C206E1D880A080010280042D72 +S315400149A0091000807FFFB3FD901020139016A1D00F +S315400149B07FFFF3D692146160C4046160C20721F897 +S315400149C080A0800122800413C40420047FFFB3F336 +S315400149D090102013C024A168901561F07FFFF3CB9E +S315400149E092146160C4046160C20721F880A080010D +S315400149F0228003F8C40420047FFFB3E890102013FB +S31540014A00C024A1689014E1E07FFFF3C09214616075 +S31540014A10C204E1E0C404616080A08001228003E415 +S31540014A20C20660047FFFB3DD9010201305100C0011 +S31540014A30861020009010001492146160C43FBFF8A4 +S31540014A4005300F78070C00088610E0017FFFF3AFB1 +S31540014A50C43FBFF0C40461600310040080A080011C +S31540014A60228003CBC20420047FFFB3CC90102013D5 +S31540014A70A607BFF0921461607FFFF3A49010001364 +S31540014A80C20721F8C404616080A08001028003B09E +S31540014A90051000807FFFB3C1901020139015E1B837 +S31540014AA07FFFF39A92146160C204A1688330600E5D +S31540014AB08208600380A060020280000401000000B9 +S31540014AC07FFFB3B690102013C024A1687FFFF47F07 +S31540014AD01111F2000310E80080A20001128002EBDE +S31540014AE003100080C200616880A06000128002E766 +S31540014AF0010000007FFFF5B3111000001101F58997 +S31540014B007FFFF472901221E20308E96480A200015A +S31540014B10128002DB01000000C204A16880A060008F +S31540014B20128002D7010000007FFFF4681112A2082B +S31540014B300311410080A20001128002CE0100000053 +S31540014B40C204A16880A06000128002CA0100000070 +S31540014B507FFFF59C11001000901000149215E1B8EA +S31540014B607FFFF35194146160C404616003100C002B +S31540014B7080A080012280036EC20420047FFFB38798 +S31540014B80901020149015E1B8921000137FFFF34B5B +S31540014B9094146160C40461600320000080A0800118 +S31540014BA02280035BC20420047FFFB37C9010201453 +S31540014BB07FFFF38E90102001030FE00080A20001D9 +S31540014BC0128002A901000000C204A16880A0600011 +S31540014BD0128002A5010000007FFFF37C90102001A6 +S31540014BE0030FFC0080A200010280034280A2600004 +S31540014BF07FFFB36A901020147FFFF57211101000E9 +S31540014C00D41EE1D87FFFF3FFD01DE1B8C206A1D083 +S31540014C10D024616080A040080280032BD224200466 +S31540014C207FFFB35E901020227FFFF56611100000D2 +S31540014C30050FFC00861020009010001492100013FE +S31540014C40C43FBFF8050F2800070400808610E0F036 +S31540014C50941461607FFFF314C43FBFF0C4046160E4 +S31540014C60030FFC0080A0800122800313C2042004AC +S31540014C707FFFB34A901020157FFFF55211200000A7 +S31540014C80050FFC00861020009010001492100013AE +S31540014C90C43FBFF805001400070000408610E0013C +S31540014CA0941461607FFFF300C43FBFF0C4046160A8 +S31540014CB0030FFC0080A08001228002FBC204200475 +S31540014CC07FFFB336901020157FFFF53E113000006F +S31540014CD0052FFC008610200090100014921000133E +S31540014CE0C43FBFF805201400070000408610E001CC +S31540014CF0941461607FFFF2ECC43FBFF0C40461606D +S31540014D00032FFC0080A08001228002E3C20420041C +S31540014D107FFFB322901020157FFFF52A1110000066 +S31540014D20050FFC0086102000901000149215A1C8B2 +S31540014D30C43FBFF87FFFF2DC94146160C404616034 +S31540014D40C205A1C880A08001228002CCC4042004EF +S31540014D507FFFB312901020157FFFF51A1120000036 +S31540014D60050FFC0086102000901000149215A1C872 +S31540014D70C43FBFF805001400070000408610E0015B +S31540014D80941461607FFFF2C8C43FBFF0C404616000 +S31540014D90C205A1C880A08001228002B1C4042004BA +S31540014DA07FFFB2FE901020157FFFF50611300000FF +S31540014DB0052FFC0086102000901000149215A1C802 +S31540014DC0C43FBFF805201400070000408610E001EB +S31540014DD0941461607FFFF2B4C43FBFF0C205A1C81D +S31540014DE0C404616080A0800102800296091000809F +S31540014DF07FFFB2EA901020157FFFF4F211100000F8 +S31540014E00050FFC008610200190100014921000132B +S31540014E10C43FBFF80510000086102001941461605C +S31540014E207FFFF2A6C43FBFF0C404616003100000D7 +S31540014E3080A080012280027FC20420047FFFB2D776 +S31540014E40901020157FFFF4DF112000009010001410 +S31540014E50921000137FFFF29994146160C40461605B +S31540014E600310000080A080012280026EC20420044B +S31540014E707FFFB2CA901020157FFFF4D21130000097 +S31540014E80052FFC008610200190100014921000138B +S31540014E90C43FBFF87FFFF28994146160C404616026 +S31540014EA00330000080A080012280025AC2042004FF +S31540014EB07FFFB2BA901020157FFFF4C21110000097 +S31540014EC0050FFEAE071CD2E88410A1548610E011EE +S31540014ED09010001492100013C43FBFF8050FFC0454 +S31540014EE0072F26158410A0128610E23194146160B2 +S31540014EF07FFFF280C43FBFF0C4046160030FFEA789 +S31540014F008210629680A080012280023CC404200463 +S31540014F107FFFB2A2901020157FFFF4AA1120000056 +S31540014F2090100014921000137FFFF2729414616086 +S31540014F30C4046160030FFEA78210629680A08001BF +S31540014F4022800228C40420047FFFB29490102015C9 +S31540014F507FFFF49C11300000052FFC04072F261516 +S31540014F608410A0128610E2319010001492100013A2 +S31540014F70C43FBFF07FFFF25F94146160C404616077 +S31540014F80032FFEA78210629680A080012280020F25 +S31540014F90C40420047FFFB281901020157FFFF4895D +S31540014FA011100000051038008610200090100014E2 +S31540014FB092100013C43FBFF8051010008610200060 +S31540014FC0941461607FFFF24BC43FBFF0C40461603B +S31540014FD00310240080A08001228001F8C20420042D +S31540014FE07FFFB26E901020157FFFF47611200000EE +S31540014FF090100014921000137FFFF23E94146160EA +S31540015000C40461600310240080A08001228001E76E +S31540015010C20420047FFFB261901020157FFFF4691E +S315400150201130000090100014921000137FFFF231EE +S3154001503094146160C40461600310240080A080015F +S31540015040228001D6C20420047FFFB254901020155D +S315400150507FFFF45C1110000011002000130FE000E7 +S315400150607FFFF3109212600180A22000128001C8D6 +S31540015070010000007FFFF4531120000011002000C1 +S31540015080130FE0007FFFF3079212600180A2200018 +S31540015090128001BC010000007FFFF44A113000007C +S315400150A011002000130FE0007FFFF2FE9212600113 +S315400150B080A22000128001B0010000007FFFF44170 +S315400150C011100000050FFC008610200090100014FE +S315400150D0921461607FFFF20DC43FBFF8C404616062 +S315400150E0C207BFF880A080012280019AC40420042F +S315400150F07FFFB22A901020157FFFF4321120000065 +S31540015100901000147FFFF20192146160C404616043 +S31540015110C207BFF880A0800122800185C404200413 +S315400151207FFFB21E901020157FFFF426113000003C +S31540015130901000147FFFF1F592146160C404616020 +S31540015140C207BFF880A0800122800170C4042004F8 +S315400151507FFFB212901020157FFFF41A1110000044 +S315400151602B0FDFFF901563FF7FFFF2D8AA1563FF70 +S3154001517080A2001502800004010000007FFFB207F3 +S31540015180901020157FFFF40F11200000110FDFFF53 +S315400151907FFFF2CE901223FF030FE00080A20001B1 +S315400151A002800004010000007FFFB1FC9010201531 +S315400151B07FFFF404113000002B0FDFFF901563FFD2 +S315400151C07FFFF2C2AA1563FF80A200150280000488 +S315400151D0010000007FFFB1F1901020157FFFF3F928 +S315400151E0901020007FFFF2C190146160C404616099 +S315400151F0032FFE0080A0800122800140C2042004CA +S315400152007FFFB1E6901020162B1001247FFFF2C1DB +S3154001521090156168C4056168032FF00080A0800184 +S3154001522002800004010000007FFFB1DC90102016CF +S315400152307FFFF2C290156168C4056168030FE00003 +S3154001524080A0800102800004010000007FFFB1D3ED +S31540015250901020167FFFF2C990146160C40461600A +S31540015260030FFBF7821063F080A080012280011CAE +S31540015270C40420047FFFB1C9901020169215E1B8ED +S31540015280901000147FFFF19B94146160C204A168E1 +S315400152908330600E8208600780A0600202800005AC +S315400152A0031000807FFFB1BD9010201703100080CE +S315400152B0C400617003100046E40060F8821060F893 +S315400152C080A0400202800005031000807FFFB1B339 +S315400152D09010201803100080C200617480A0401213 +S315400152E002800005031000807FFFB1AC90102018AA +S315400152F003100080C200617880A06000128000F433 +S315400153000100000003100080C200617C80A06000A3 +S31540015310128000EC010000007FFFF14E0100000009 +S3154001532080A220010280052D01000000050C4029C4 +S315400153300723CD1B8410A0068610E09B9010001415 +S31540015340C027BFF0C027BFF4C43FBFF82910008172 +S315400153507FFFF1962B100082AA1560A0A4102000B1 +S31540015360A81520A0AC146160BA1000151080000881 +S31540015370AE1000107FFFB18990102019A404A0043B +S3154001538080A4A400228000172B100084C2050012BD +S31540015390C224C000901000137FFFF18792100016BF +S315400153A0832CA001C4040000C605400180A0C002B0 +S315400153B012BFFFF182074001C4006004C205E00448 +S315400153C080A0800112BFFFEC01000000A404A004EC +S315400153D080A4A40032BFFFEFC20500122B10008447 +S315400153E0A2146160AA1560A0A4102000AE10001599 +S315400153F010800008AC1000107FFFB1689010201A91 +S31540015400A404A00880A4A4000280001501000000A5 +S31540015410C2050012C224C000921000117FFFF13B69 +S3154001542090100013C4054012C204000080A0800100 +S3154001543012BFFFF28205C012C4006004C205A00477 +S3154001544080A0800112BFFFED01000000A404A00866 +S3154001545080A4A40032BFFFF0C205001281C7E00854 +S3154001546081E800007FFFB14D9010200F30BFF69AC2 +S315400154707FFFB14A9010200F10BFF68C110048EA09 +S315400154807FFFB1469010200F10BFF646D01DE1B800 +S315400154907FFFB1429010200F10BFF64FD01CE1E0C4 +S315400154A07FFFB13E9010200F10BFF608D41CE1E0FB +S315400154B07FFFB13A9010200F10BFF5F411151BE88C +S315400154C07FFFB1369010200F10BFF5E011151BC0BC +S315400154D07FFFB1329010200F10BFF5C4901020000D +S315400154E07FFFB12E9010200F10BFF5B011351BC0B4 +S315400154F07FFFB12A9010200F10BFF57AD01CE1E052 +S315400155007FFFB1269010200F10BFF583D01D61F0AB +S315400155107FFFB1229010200F10BFF565D01DE1B875 +S315400155207FFFB11E9010200F10BFF53FD41D61F0D3 +S315400155307FFFB11A9010200F10BFF52ED41CE1E069 +S315400155407FFFB1169010200F10BFF51A11151BE8F9 +S315400155507FFFB1129010200F10BFF50611151BC029 +S315400155607FFFB10E9010200F10BFF4DA11351BC02A +S315400155707FFFB10A9010200F10BFF4E69010200073 +S315400155807FFFB1069010200E30BFF4BF7FFFB103FD +S315400155909010200E10BFF4B11128C6AF7FFFB0FFA7 +S315400155A09010200E10BFF4A11108C6AF7FFFB0FBCB +S315400155B09010200E10BFF4911128C6AF7FFFB0F7AF +S315400155C09010200E10BFF4822108C6AF7FFFB0F3C2 +S315400155D09010200D30BFF4517FFFB0F09010200D98 +S315400155E010BFF444371000807FFFB0EC9010200CC0 +S315400155F010BFF3A2271000807FFFB0E89010200B68 +S3154001560030BFF34F7FFFB0E59010201110BFFA8FE6 +S31540015610110020007FFFB0E19010201110BFFA6DFC +S31540015620110020007FFFB0DD9010201110BFFA5C01 +S31540015630111E607E7FFFB0D99010201110BFFA4B2A +S315400156401111BBFE7FFFB0D59010201010BFF85E40 +S31540015650091000807FFFB0D19010201010BFF84F85 +S31540015660111000007FFFB0CD9010201430BFFD5BBC +S315400156707FFFB0CA9010202330BFFD367FFFB0C7F1 +S315400156809010202330BFFD297FFFB0C49010201316 +S3154001569030BFFD197FFFB0C19010201210BFFC4EE4 +S315400156A0111FE00012BFF30A01000000C204A16805 +S315400156B080A0600002BFF3080100000030BFF30480 +S315400156C07FFFB0B69010201830BFFF147FFFB0B3F4 +S315400156D09010201810BFFF0D031000800303FF1226 +S315400156E08210604A80A0800112BFFEE39215E1B8A4 +S315400156F010BFFEE59010001480A0600002BFFEC4FA +S315400157002B10012430BFFEBFC207BFFC80A0800121 +S3154001571012BFFE9001000000C204A16880A0600093 +S3154001572002BFFE8E0100000030BFFE8AC207BFFCE9 +S3154001573080A0800112BFFE7B01000000C204A16867 +S3154001574080A0600002BFFE790100000030BFFE75F7 +S31540015750C207BFFC80A0800112BFFE6601000000A7 +S31540015760C204A16880A0600002BFFE64010000007F +S3154001577030BFFE607FFFB0899010201530BFFE50CC +S315400157807FFFB0869010201530BFFE447FFFB08367 +S315400157909010201530BFFE3880A0600002BFFE2D5C +S315400157A00100000030BFFE2980A0600002BFFE1C40 +S315400157B00100000030BFFE1880A0600002BFFE0B52 +S315400157C00100000030BFFE07032C1B3482106030FD +S315400157D080A0800112BFFDF00100000030BFFDF046 +S315400157E0032C1B348210603080A0800112BFFDD78C +S315400157F00100000030BFFDD7032C1B348210602FFF +S3154001580080A0800112BFFDC30100000030BFFDC36F +S3154001581080A0600312BFFDA70100000030BFFDA7B5 +S3154001582080A0600312BFFD930100000030BFFD93CD +S3154001583080A0600212BFFD820100000030BFFD82E0 +S31540015840C4042004881121C8C201200480A080011B +S3154001585012BFFD680100000030BFFD6807100080DF +S315400158608610E1C8C200E00480A0800112BFFD4D50 +S315400158700100000030BFFD4D09100080881121C88C +S31540015880C201200480A0800112BFFD320100000048 +S3154001589030BFFD3280A0600112BFFD1E0100000035 +S315400158A030BFFD1E80A0600112BFFD060100000051 +S315400158B030BFFD0680A0600002BFFCF00100000081 +S315400158C030BFFCEC071000808610E1D0C200E00436 +S315400158D080A0400912BFFCD301000000C204A168A8 +S315400158E080A0600002BFFCD10100000030BFFCCDAA +S315400158F012BFFCC001000000C204A16880A0600084 +S3154001590002BFFCBE0100000030BFFCBA80A06000AF +S3154001591012BFFCA601000000C204A16880A060007D +S3154001592002BFFCA40100000030BFFCA080A06000C3 +S3154001593012BFFC9301000000C204A16880A0600070 +S3154001594002BFFC929015E1B830BFFC8D8410A1F8DE +S31540015950C200A004C404200480A0800112BFFC4EF2 +S3154001596001000000C404A168030000708210601F9A +S3154001597084088001030000108210601080A080011D +S3154001598012BFFC459015E1B830BFFC4680A06000CF +S3154001599012BFFC3601000000C204A16880A060006D +S315400159A002BFFC35A607BFF030BFFC30C40420045B +S315400159B080A0800112BFFC1C03100080C2006168F8 +S315400159C080A0600002BFFC1B05100C0030BFFC1616 +S315400159D009100080881121F8C201200480A08001AD +S315400159E012BFFC0603100080C4006168030000700A +S315400159F08210601F8408800103000010821060102D +S31540015A0080A0800112BFFBFD0100000030BFFBFDFD +S31540015A10071000808610E1F8C200E00480A08001F2 +S31540015A2012BFFBEB01000000C404A1680300007033 +S31540015A308210601F840880010300001082106010EC +S31540015A4080A0800112BFFBE20100000030BFFBE2F3 +S31540015A50C4042004881121D8C201200480A08001F9 +S31540015A6012BFFBD101000000C204A16880A0600002 +S31540015A7002BFFBD09016A1D030BFFBCBC40420049B +S31540015A808610E1C0C200E00480A0800112BFFBBCC9 +S31540015A9001000000C204A16880A0600002BFFBBBF8 +S31540015AA09016E1D830BFFBB6C207BFCC80A08001BB +S31540015AB012BFFBA703100080C200616880A060008E +S31540015AC002BFFBA60910008030BFFBA103300000D6 +S31540015AD08210602080A0800112BFFB90010000006F +S31540015AE0C204A16880A0600002BFFB8E01000000D5 +S31540015AF030BFFB8A80A0600012BFFB7B0100000023 +S31540015B00C204A16880A0600002BFFB7A111FDFFFBB +S31540015B1030BFFB750338000080A0800112BFFB67D0 +S31540015B2001000000C204A16880A0600002BFFB66BC +S31540015B30111FD00030BFFB6180A0600012BFFB5235 +S31540015B4003100080C200616880A0600002BFFB5163 +S31540015B50111FDFFF30BFFB4C80A0600012BFFB313D +S31540015B6001000000C204A16880A0600002BFFB30B2 +S31540015B701110000030BFFB2B80A0600012BFFB1E3E +S31540015B8001000000C204A16880A0600002BFFB1DA5 +S31540015B90111FE00030BFFB18C20420048610E21832 +S31540015BA0C400E10480A0800112BFFAFC031000800A +S31540015BB0C4006168030000708210601F8408800180 +S31540015BC0030000108210600880A0800112BFFAF322 +S31540015BD00100000030BFFAF3C204200480A0800116 +S31540015BE012BFFADF03100080C40061680300007031 +S31540015BF08210601F84088001030000108210600437 +S31540015C0080A0800112BFFAD60100000030BFFAD64B +S31540015C10C20420048610E218C400E0D480A08001AA +S31540015C2012BFFAC003100080C4006168030000700F +S31540015C308210601F840880010300001082106008F2 +S31540015C4080A0800112BFFAB70100000030BFFAB749 +S31540015C50C204200480A0800112BFFAA30310008071 +S31540015C60C4006168030000708210601F84088001CF +S31540015C70030000108210600880A0800112BFFA9ACA +S31540015C800100000030BFFA9AC20420048610E218CF +S31540015C90C400E0A480A0800112BFFA840100000084 +S31540015CA0C404A168030000708210601F840880014B +S31540015CB0030000108210600480A0800112BFFA7BAD +S31540015CC00100000030BFFA7BC206600480A080015B +S31540015CD012BFF9CD01000000C204A16880A0600096 +S31540015CE002BFF9CC9014E1E030BFF9C7C2066004A7 +S31540015CF080A0800112BFF9B901000000C204A16869 +S31540015D0080A0600002BFF9B89014E1E030BFF9B35A +S31540015D10C206600480A0800112BFF9A501000000FF +S31540015D20C204A16880A0600002BFF9A49014E1E01A +S31540015D3030BFF99FC206600480A0800112BFF9916D +S31540015D4003100080C200616880A0600002BFF99024 +S31540015D509014E1E030BFF98B071000808610E1F81E +S31540015D60C200E00480A0800112BFF96D010000006D +S31540015D70C404A168030000708210601F840880017A +S31540015D80030000108210601080A0800112BFF964E8 +S31540015D909015A1C810BFF9669215E1B8C206600414 +S31540015DA080A0800112BFF95303100080C2006168D0 +S31540015DB080A0600002BFF9529015A1C830BFF94DCD +S31540015DC009100080881121F8C201200480A08001B9 +S31540015DD012BFF93C01000000C404A1680300007031 +S31540015DE08210601F84088001030000108210601039 +S31540015DF080A0800112BFF9330100000030BFF933A2 +S31540015E00071000808610E1C8C200E00480A080012E +S31540015E1012BFF92103100080C200616880A06000B2 +S31540015E2002BFF9209015A1C830BFF91B09100080A7 +S31540015E30881121F8C201200480A0800112BFF8FD1B +S31540015E4001000000C404A168030000708210601FB5 +S31540015E5084088001030000108210601080A0800138 +S31540015E6012BFF8F49010001D10BFF8F69215E1B874 +S31540015E70C206600480A0800112BFF8E303100080CF +S31540015E80C200616880A0600002BFF8E29010001D68 +S31540015E9030BFF8DD071000808610E1F8C200E0044B +S31540015EA080A0800112BFF8CC01000000C404A168A3 +S31540015EB0030000708210601F8408800103000010F7 +S31540015EC08210601080A0800112BFF8C3010000005B +S31540015ED030BFF8C3C207BFD480A0800112BFF8B259 +S31540015EE003100080C200616880A0600002BFF8B163 +S31540015EF00310008030BFF8AC09100080881121F8EA +S31540015F00C201200480A0800112BFF88E010000006A +S31540015F10C404A168030000708210601F84088001D8 +S31540015F20030000108210601080A0800112BFF88526 +S31540015F309010001410BFF8879215E1B8C2066004AC +S31540015F4080A0800112BFF87401000000C204A1685C +S31540015F5080A0600002BFF8739010001430BFF86E45 +S31540015F60071000808610E1D8C200E00480A08001BD +S31540015F7012BFF85E01000000C204A16880A0600063 +S31540015F8002BFF85D9010001430BFF8588810E1C088 +S31540015F90C201200480A0800112BFF849031000808D +S31540015FA0C200616880A0600002BFF84890100014EA +S31540015FB030BFF84303003A9A8210630F80A08001F4 +S31540015FC012BFF7BD03100080C200616880A0600067 +S31540015FD002BFF7BC050006AF30BFF7B780A060002F +S31540015FE012BFF78103100080C4006168030000708E +S31540015FF08210601F8408800103000010821060082F +S3154001600080A0800112BFF7780500400010BFF77AE3 +S315400160100700C00009100080881121F8C201200440 +S3154001602080A0800112BFF6EF01000000C404A16800 +S31540016030030000708210601F840880010300001075 +S315400160408210601080A0800112BFF6E69014E1E054 +S3154001605010BFF6E89215E1B8C206600480A080013F +S3154001606012BFF6D501000000C204A16880A06000FD +S3154001607002BFF6D49014E1E030BFF6CFC206600409 +S3154001608080A0800112BFF6C101000000C204A168D0 +S3154001609080A0600002BFF6C09014E1E030BFF6BBBD +S315400160A0C206600480A0800112BFF6AD0100000067 +S315400160B0C204A16880A0600002BFF6AC9014E1E082 +S315400160C030BFF6A7C206600480A0800112BFF699D0 +S315400160D003100080C200616880A0600002BFF6988C +S315400160E09014E1E030BFF693071000808610E1F886 +S315400160F0C200E00480A0800112BFF67401000000D6 +S31540016100C404A168030000708210601F84088001E6 +S31540016110030000108210601080A0800112BFF66B50 +S315400161200100000030BFF66BC206600480A080010A +S3154001613012BFF65B03100080C200616880A0600058 +S3154001614002BFF65A9015A1C830BFF6550910008016 +S31540016150881121F8C201200480A0800112BFF644B3 +S3154001616001000000C404A168030000708210601F92 +S3154001617084088001030000108210601080A0800115 +S3154001618012BFF63B0100000030BFF63B071000800E +S315400161908610E1D8C200E00480A0800112BFF62932 +S315400161A001000000C204A16880A0600002BFF62879 +S315400161B09015A1C830BFF623071000808610E1D0A4 +S315400161C0C200E00480A0800112BFF61203100080D5 +S315400161D0C200616880A0600002BFF611091000800C +S315400161E030BFF60CC206600480A0800112BFF5E004 +S315400161F001000000C204A16880A0600002BFF5DF73 +S315400162009010001D30BFF5DA8810E1C0C2012004AC +S3154001621080A0800112BFF5CB03100080C2006168E7 +S3154001622080A0600002BFF5CA9010001D30BFF5C5C1 +S31540016230071000808610E1F8C200E00480A08001CA +S3154001624012BFF5B201000000C404A168030000704A +S315400162508210601F840880010300001082106010C4 +S3154001626080A0800112BFF5A90910008030BFF5AAB0 +S31540016270C207BFD480A0800112BFF59803100080E9 +S31540016280C200616880A0600002BFF59703100080DC +S3154001629030BFF59209100080881121F8C20120040F +S315400162A080A0800112BFF57401000000C404A168FA +S315400162B0030000708210601F8408800103000010F3 +S315400162C08210601080A0800112BFF56B90100014FF +S315400162D010BFF56D9215E1B8C206600480A0800139 +S315400162E012BFF55A01000000C204A16880A06000F7 +S315400162F002BFF5599010001430BFF554C207BFCC08 +S3154001630080A0800112BFF54603100080C20061687B +S3154001631080A0600002BFF5459010001430BFF540E3 +S31540016320071000808610E1D0C200E00480A0800101 +S3154001633012BFF52F03100080C4006168030000708E +S315400163408210601F840880010300001082106002E1 +S3154001635080A0800112BFF5260100000030BFF5265E +S3154001636012BFF50001000000C204A16880A06000D0 +S3154001637002BFF4FF1110000030BFF4FA12BFF4EE71 +S3154001638001000000C204A16880A0600002BFF4EDD4 +S315400163901130000030BFF4E812BFF4DC0100000008 +S315400163A0C204A16880A0600002BFF4DB1130000086 +S315400163B030BFF4D612BFF4CA03100080C200616830 +S315400163C080A0600002BFF4C91110000030BFF4C4C0 +S315400163D0C20420048610E320C400E17C80A0800131 +S315400163E012BFF4B301000000C404A16803000070A9 +S315400163F08210601F8408800103000010821060042F +S3154001640080A0800112BFF4AA0100000030BFF4AAA7 +S31540016410C204200480A0800112BFF497010000004D +S31540016420C404A168030000708210601F84088001C3 +S31540016430030000108210600480A0800112BFF48E18 +S315400164401110008110BFF49094146160C2042004BD +S315400164508610E320C400E14C80A0800112BFF4788D +S3154001646001000000C404A168030000708210601F8F +S3154001647084088001030000108210600880A080011A +S3154001648012BFF46F1110008110BFF4719414616052 +S315400164907FFFAD429010201010BFF45E11100081B5 +S315400164A0C206600480A0800112BFF3B9010000005A +S315400164B0C204A16880A0600002BFF3B89014E1E075 +S315400164C030BFF3B3C206600480A0800112BFF3A5BA +S315400164D001000000C204A16880A0600002BFF3A4CD +S315400164E09014E1E030BFF39FC206600480A08001B2 +S315400164F012BFF39101000000C204A16880A06000B0 +S3154001650002BFF3909014E1E030BFF38BC206600402 +S3154001651080A0800112BFF37D03100080C200616834 +S3154001652080A0600002BFF37C9014E1E030BFF377B6 +S3154001653009100080881121F8C201200480A0800141 +S3154001654012BFF35A03100080C40061680300007053 +S315400165508210601F840880010300001082106010C1 +S3154001656080A0800112BFF3519015A1C810BFF3530B +S315400165709215E1B8071000808610E1F8C200E004E8 +S3154001658080A0800112BFF33B0100000030BFF33B06 +S3154001659009100080881121D0C201200480A0800109 +S315400165A012BFF31801000000C204A16880A0600078 +S315400165B002BFF3179016A1D030BFF3120710008027 +S315400165C08610E1D8C200E00480A0800112BFF30228 +S315400165D001000000C204A16880A0600002BFF3016F +S315400165E09016A1D030BFF2FC09100080881121C855 +S315400165F0C201200480A0800112BFF2EC010000001C +S31540016600C204A16880A0600002BFF2EB9016E1D8F7 +S3154001661030BFF2E6071000808610E1C8C200E004F0 +S3154001662080A0800112BFF2D603100080C2006168CB +S3154001663080A0600002BFF2D59015A1C830BFF2D04C +S3154001664009100080881121F8C201200480A0800130 +S3154001665012BFF2B10100000030BFF2B1C2066004C0 +S3154001666080A0800112BFF29001000000C204A1681F +S3154001667080A0600002BFF28F9010001D30BFF28AE9 +S31540016680071000808610E1C8C200E00480A08001A6 +S3154001669012BFF27A01000000C204A16880A0600026 +S315400166A002BFF2799010001D30BFF274C207BFFCE1 +S315400166B080A0800112BFF26603100080C2006168AB +S315400166C080A0600002BFF2659010001D30BFF260ED +S315400166D0881721F8C201200480A0800112BFF2422E +S315400166E00100000030BFF242C4042004C206600427 +S315400166F080A0800112BFF21E01000000C204A16801 +S3154001670080A0600002BFF21D9010001430BFF21845 +S315400167108615A1C8C200E00480A0800112BFF2091B +S3154001672001000000C204A16880A0600002BFF20817 +S315400167309010001430BFF203C2042004C407BFFC0A +S3154001674080A0800112BFF1F303100080C20061688E +S3154001675080A0600002BFF1F22D10008030BFF1ED44 +S3154001676080A2400112BFEFA201000000C204A1684D +S3154001677080A0600002BFEFA11111FC0030BFEF9C69 +S3154001678080A2400112BFEF9003100080C2006168F1 +S3154001679080A0600022BFEF8F113C02AF30BFEF8A6D +S315400167A012BFEEDB01000000C204A16880A06000B8 +S315400167B002BFEED90100000030BFEED512BFEECCCC +S315400167C001000000C204A16880A0600002BFEECAB9 +S315400167D00100000030BFEEC67FFFAC70901020195B +S315400167E010BFFAD4050C402981D8200081C3E008A6 +S315400167F00100000081D8200082102400C0A043007F +S3154001680081C3E00801000000853220109132201832 +S31540016810900A200F8408A00380A00008826020000F +S3154001682081C3E008900880019DE3BF887FFFEB7A32 +S315400168309010200C808A200812800004010000007C +S3154001684081C7E00891E820007FFFAC4D9010200EF3 +S31540016850C2800320853060188088A00F028000DD49 +S315400168602F100123833060108208600380A06002EC +S31540016870028000E0C225E0C880A06003028000FFDC +S3154001688080A06001028000EC2910010C2310010C4C +S315400168902110010C2B10010C2710010C2510010CA5 +S315400168A081D8200081D8200082102400C0A0430056 +S315400168B0031000A1051000A0821060008410A00002 +S315400168C0873060048610E00188100003C878800094 +S315400168D08800A004C67900008610200AC6784000C8 +S315400168E0C8046000C60420041B008000190800008B +S315400168F09A13600A993B0004980B0003992B2002D6 +S3154001690098030001DA7B00001B010000171000000C +S315400169109813608E973AC004960AC003972AE002FC +S315400169209602C001D87AC000171C00001901C000A8 +S31540016930893AC0049813208E860900038728E0020D +S315400169408600C001D878C0003B1000A28200600CCE +S31540016950BA176000873760048610E001C6784000A8 +S315400169608213601E86076008C278C000821020002C +S315400169708807600C86100001C67900002D1000A220 +S315400169809A076004AC15A1008735A004B81000161B +S315400169908610E001C67B4000B405A008C27E800097 +S315400169A01B1000C0B605A004861360008330E004C6 +S315400169B09810601AD87EC000C02360001B048D1554 +S315400169C09A136278DA20E004DA05E0C83310010050 +S315400169D09A03600CB21660008605A00CB010200028 +S315400169E0C627BFF8DA27BFFC901000189210200383 +S315400169F0C227BFF0C427BFEC40000AB0C827BFF486 +S31540016A00DA07BFFC992A000DC607BFF8980300199B +S31540016A10993320049813201ED878C000B00620016F +S31540016A208600E00480A62008C207BFF0C407BFEC79 +S31540016A3012BFFFECC807BFF417100020DE05200C7B +S31540016A408612E168C822E16809100020D005600875 +S31540016A50D804A014DA04E010D2042004D40460005F +S31540016A60960BE001972AC008C6212160880A600377 +S31540016A708929000A8812C004960B2002972AC00D64 +S31540016A809611000B8530A004D620E0209610600EAA +S31540016A90D620E0289608BFF0840B20018528800D7A +S31540016AA0841100028210601EC420E02CC420E01430 +S31540016AB0050100008410A01EC220E010C420E0049D +S31540016AC0F620E00CF420E018F620E024050076419B +S31540016AD0031000208410A1C082106000C420E00889 +S31540016AE0833060048210601EC220E01C82102100A7 +S31540016AF0D6A04320C4800320C280432084102001B5 +S31540016B0082102200C4A04320C68043208610200064 +S31540016B10C6A04320C4A0032081D820007FFFEABE3F +S31540016B2090102000913A200C808A20030280006553 +S31540016B3001000000C280032082102100C280432050 +S31540016B4082102200C2804320C80420048809200301 +S31540016B50C2046000C605200CC4056008D404A01414 +S31540016B60D604E010832900019808E0019A0AA001A1 +S31540016B70992B00029B2B400B981300019A13000D91 +S31540016B80C803400080A120000280000388136004EE +S31540016B9030800000D201000011048D159012227838 +S31540016BA080A2400812BFFFFB111000009E08E002C0 +S31540016BB0D00200009F2BC0029E13C001DE03C0001D +S31540016BC080A3C008228000428608E003308000008E +S31540016BD02310010C2110010CC025E0C82B10010C1B +S31540016BE02910010C2710010C10BFFF2E2510010C96 +S31540016BF02110010C2910010C2510010C2310010C48 +S31540016C008210203F2B10010C2710010CC2242004B6 +S31540016C10C224A014C225200C8210201AC22460006E +S31540016C2082102014C22560088210200E10BFFF1D5D +S31540016C30C224E0102510010C2310010C8210203FC4 +S31540016C402110010C2B10010C2710010CC225200C20 +S31540016C50C224A01482102019C22460008210207F11 +S31540016C60C224200482102013C22560088210200D00 +S31540016C7010BFFF0CC224E0102110010C2710010C9B +S31540016C802310010C8210200F2B10010C2910010C2E +S31540016C902510010CC224E010C22420048210201CBD +S31540016CA0C224600082102015C22560088210207F10 +S31540016CB0C225200C8210203F10BFFEFAC224A01428 +S31540016CC07FFFC4D30100000030BFFF9B8528C0026F +S31540016CD082108001C20040000321D95082106321F5 +S31540016CE0C2210000C401000080A08001028000038F +S31540016CF001000000308000008210000D05048D1552 +S31540016D008410A278072AF37B8610E301C438400039 +S31540016D10C4384000C203400080A0400902800003FD +S31540016D200100000030800000C4010000032AF37B0B +S31540016D308210630180A0800112BFFFFBC205E0C83B +S31540016D40940AA0038200600C972A800B84102001CC +S31540016D50AE13000B85288001B0102000EE25C0003F +S31540016D60C0A0022092102003C227BFF0C427BFEC67 +S31540016D70400009D290100018C207BFF0912A0001C5 +S31540016D80C606400880A0C01712800008C407BFECA1 +S31540016D90B006200180A6200802800005AE05C0028B +S31540016DA010BFFFF0EE25C00030800000C0A00220D9 +S31540016DB0AE102003B0102000852DE002C4058002EC +S31540016DC08608A06080A00003C227BFF0B04000182B +S31540016DD0C427BFEC9005FFFD400009B8921020037F +S31540016DE0C207BFF0C407BFEC872A000186064003ED +S31540016DF08730E0048610E01E8418C0028088BF9F59 +S31540016E0012800009AE05E00180A5E00B32BFFFEC20 +S31540016E10852DE00280A6200012800004D805200CB2 +S31540016E203080000030800000C8056008DA04200484 +S31540016E30C4046000C604A014C204E010980B2001EB +S31540016E409A0B6003892B0004852B40028608E002D9 +S31540016E50841100028328C001821080019FC0400036 +S31540016E600100000082102400C0A04300C0A00220FF +S31540016E708210200084072020C607200C8608E06087 +S31540016E8080A00003B80720048240000180A70002C9 +S31540016E9032BFFFFBC607200C80A06008228000039A +S31540016EA0C206C00030800000808860400280000435 +S31540016EB08088602032800003C2076008308000006D +S31540016EC08088602032800003C20680003080000046 +S31540016ED0808860201280000301000000308000009D +S31540016EE083480000842860808188A000010000005A +S31540016EF00100000001000000D8042004C80460001D +S31540016F00DA05200CC4056008C604A014C204E010CA +S31540016F10980B20039A0B6001892B0004852B4002B4 +S31540016F208608E001841100028328C0018410A00470 +S31540016F3082108001C20040009210200491D02002AC +S31540016F40010000007FFFE9B490102000913A200C27 +S31540016F50808A200312800005841020007FFFC42C04 +S31540016F60010000008410200082102200C4A04320AA +S31540016F7086102001C6A04320C4A043200310000070 +S31540016F80C4804380C4A043807FFFC48E90102000FC +S31540016F9081D8200030BFFE2B9DE3BFA040000822D0 +S31540016FA001000000808A21001280000401000000D7 +S31540016FB081C7E00891E820007FFFAA9423100120B1 +S31540016FC0912A20047FFFAA6E90022005A214600038 +S31540016FD0C204600480A060000280001A8210200072 +S31540016FE0A010200084044001C8044001C600A0044A +S31540016FF0C200A0089B39201F818360000100000068 +S3154001700001000000010000008479000380A0800196 +S3154001701002800004A00420017FFFAA609010200195 +S3154001702082040010820040108328600284044001DB +S31540017030C400A00480A0A00012BFFFEC840440015C +S3154001704023100120A2146138C204600480A06000AC +S315400170500280001982102000A01020008404400103 +S31540017060C8044001C600A004C200A00881802000D7 +S3154001707001000000010000000100000084710003CE +S3154001708080A0800102800004A00420017FFFAA4362 +S315400170909010200282040010820040108328600272 +S315400170A084044001C400A00480A0A00012BFFFEDEB +S315400170B084044001400008890100000080A22000AC +S315400170C012BFFFBC901020037FFFAA34B0102000EE +S315400170D081C7E00881E800009DE3BFA07FFFAA4B7E +S315400170E001000000912A20047FFFAA259002200476 +S315400170F0400007CF0100000080A221230280000446 +S31540017100010000007FFFAA2590102001400007C61C +S3154001711001000000808A21000280002923100120FD +S31540017120A2146180C204600880A060090280001533 +S3154001713082102000A010200084044001C6044001B2 +S31540017140C800A004C200A0088459000380A08001A1 +S3154001715002800004A00420017FFFAA1090102002A3 +S31540017160820400108200401083286002840440019A +S31540017170C400A00880A0A00912BFFFF18404400109 +S31540017180400007B80100000080A2200002800023D1 +S3154001719001000000400007B30100000080A220006A +S315400171A002800016010000004000079F0100000018 +S315400171B0808A2200128000040100000081C7E00895 +S315400171C091E82000400007F80100000080A220005D +S315400171D00280001A01000000400007F30100000090 +S315400171E080A2200012BFFFF6010000007FFFA9EB3D +S315400171F09010200430BFFFF27FFFA9E890102003D2 +S315400172004000078901000000808A220002BFFFEC8E +S315400172100100000030BFFFEC7FFFA9E09010200382 +S31540017220400007900100000080A2200012BFFFDF4E +S315400172300100000030BFFFF17FFFA9D89010200464 +S3154001724030BFFFE6000000009DE3BFA09410200080 +S315400172501110005C9012227C1310005C9212628025 +S315400172601710005C9612E2881910005C9813228C64 +S3154001727093C2000081C240001080019181C2C000CA +S3154001728081C300001080018E9402A0019402A001E6 +S3154001729080A2A0031280018A0100000087440000F9 +S315400172A08D30E00E8C89A00780A1A000028000C726 +S315400172B001000000AF30E00BAE0DE00780A5E00015 +S315400172C0128000C20100000080A1A0021280003598 +S315400172D00100000025100000E41C8000251000007C +S315400172E029100000A8152104A6100012AA100012A8 +S315400172F0AC100014A1802046A4100000AA10000082 +S3154001730001000000A180204EA810210001000000CC +S31540017310A18000000100000001000000E83CA0300F +S3154001732082A480131280016682A500161280016430 +S315400173300100000001000000010000008744000038 +S315400173408D30E00B8C89A0078CA1A0051280015CD1 +S31540017350A1800000010000000100000001000000C2 +S31540017360E81CA03082A500161280015582A5401264 +S31540017370A41000001280015201000000010000002B +S31540017380874400008D30E00B8C89A0078CA1A003B7 +S315400173901280014B010000001080008C01000000AA +S315400173A080A1A0011280002325100000E41C80006A +S315400173B02510000029100000A8152104A61000126E +S315400173C0AA100012AC100014A1802046A41000009F +S315400173D0AA10000001000000A180204EA810210043 +S315400173E001000000A1800000010000000100000032 +S315400173F001000000E83C800082A480131280013025 +S3154001740082A500161280012E010000000100000035 +S31540017410874400008D30E00B8C89A0078CA1A00227 +S315400174201280012701000000108000680100000061 +S3154001743080A1A00312800065A6100000A210200EB4 +S31540017440A1844000A6100000A1800000A814E0001D +S31540017450AB44000001000000AC14E0000100000054 +S31540017460AF44000080A5200012800115AA8D6E0050 +S3154001747080A540001280011280A5A0001280011053 +S31540017480AF35E00BAE0DE00780A5E0011280010C9F S3154001749001000000A0100000A1844000A6100000D9 -S315400174A0A1800000A210200AA1844000A41000007F -S315400174B0A1800000E8180000AC100000AE100000EA -S315400174C0EC04C012EE04E00480A50016128000E828 -S315400174D080A54017128000E601000000A544000087 -S315400174E0A534A00BA40CA00780A4A002068000E04E -S315400174F00100000021100140A0142200EC1C0000F4 -S31540017500A0042008E81C0000A1844000A610000049 -S31540017510A1800000A210200EA1844000A4100010FA -S31540017520AC100000AE100000A18000000100000078 -S3154001753001000000EC3C8013AC100000AE100000CE -S31540017540E81CC01280A50016128000C980A540170C -S31540017550128000C701000000A5440000A534A00B1D -S31540017560A40CA00780A4A004128000C10100000061 -S3154001757010800002010000008B4440008A09601F10 -S3154001758080A160010280000A8C1000059DE3BFA026 -S315400175908AA1600116BFFFFE0100000081E80000DC -S315400175A08CA1A00116BFFFFE0100000001000000F2 -S315400175B001000000A023A080A02C20078E100010FF -S315400175C0A3480000E2240000C2242004C43C200851 -S315400175D0C83C2010CC3C2018F03C2020F43C20280C -S315400175E0F83C2030FC3C2038D03C2040D43C20485C -S315400175F0D83C2050DC3C2058A5500000E4242060B3 -S315400176008010200882102001841020028610200359 -S31540017610881020048A1020058C10200681900000D5 -S31540017620A42C601F818C8000010000000100000035 -S3154001763001000000030040408210610184100000F7 -S3154001764086100000894440008809201F86100004E6 -S31540017650A010000284004002A210000284004002F1 -S31540017660A410000284004002A610000284004002D9 -S31540017670A810000284004002AA10000284004002C1 -S31540017680AC10000284004002AE10000284004002A9 -S3154001769090100002840040029210000284004002D1 -S315400176A094100002840040029610000284004002B9 -S315400176B098100002840040029A10000284004002A1 -S315400176C09C100002840040029E1000028400400289 -S315400176D081E0000086A0E00116BFFFDE0100000048 -S315400176E003004040821061018410000086100004AE -S315400176F080A400021280003F8400400280A4400220 -S315400177001280003C8400400280A48002128000392D -S315400177108400400280A4C0021280003684004002E8 -S3154001772080A50002128000338400400280A54002F9 -S31540017730128000308400400280A580021280002D14 -S315400177408400400280A5C0021280002A84004002C3 -S3154001775080A20002128000278400400280A24002DB -S31540017760128000248400400280A2800212800021FF -S315400177708400400280A2C0021280001E84004002A2 -S3154001778080A300021280001B8400400280A34002B5 -S31540017790128000188400400280A3800212800015E6 -S315400177A08400400280A3C00212800012840040027D -S315400177B081E0000086A0E00116BFFFCE0100000077 -S315400177C080A020001280000B80A0FFFF12800009DC -S315400177D080A160051280000780A1A00612800005E5 -S315400177E001000000A010000710800006C0242020E0 -S315400177F0A01000079010200110800002D024202004 -S3154001780082100007C400400081888000010000000A -S315400178100100000001000000C4186008C81860108B -S31540017820CC186018F0186020F4186028F8186030F9 -S31540017830FC186038D0186040D4186048D818605099 -S31540017840DC186058E4006060C200600481948000E6 -S31540017850010000000100000001000000A010000727 -S31540017860F004202081C7E00881E8000010BFFFFC3A -S31540017870B01000000100000081D8200081C3E0085B -S31540017880010000001B100144D80361508210200101 -S315400178908328400C1B10014482007FFFD8036154AA -S315400178A082084008932A400C900040098213C00088 -S315400178B07FFFE77D9E104000010000001B10014440 -S315400178C0D8036150821020018328400C1B100144CB -S315400178D082007FFFD8036154932A400C82084008F6 -S315400178E0900040099210000A8213C0007FFFE770A2 -S315400178F09E104000010000001B100144D803615056 -S31540017900821020018328400C1B10014482007FFF16 -S31540017910D8036154932A400C8208400890004009DC -S315400179209210000A8213C0007FFFE7659E10400057 -S31540017930010000001B100144D80361508210200150 -S315400179408328400C1B10014482007FFFD8036154F9 -S3154001795082084008932A400C900040098213C000D7 -S315400179607FFFE7559E104000010000001B100144B7 -S31540017970D803615C821020018328400C1B1001440E -S3154001798082007FFFD803616C932A400C820840082D -S31540017990900040099210000A8213C0007FFFE74C15 -S315400179A09E104000010000001B100144D803615C99 -S315400179B0821020018328400C1B10014482007FFF66 -S315400179C0D803616C932A400C820840089000400914 -S315400179D09210000A8213C0007FFFE7419E104000CB -S315400179E0010000009DE3BF582D100144A210200064 -S315400179F0C205A16080A440011680001BA010200092 -S31540017A002B1001442910014427100144A4102001E0 -S31540017A10D005615C912C8008C205216C90023FFF24 -S31540017A20832C0001900A00187FFFE727900200018E -S31540017A30C204E14C901E0008900A000180A0000893 -S31540017A40A2647FFFA0042001C205A16080A40001B9 -S31540017A5026BFFFF1D005615C80A46000128000035F -S31540017A60B0102000B010200181C7E00881E8000075 -S31540017A701B100144D803615C821020018328400C0D -S31540017A801B10014482007FFFD803616C82084008C5 -S31540017A90932A400C900040098213C0007FFFE70AF9 -S31540017AA09E104000010000001B100144D803615C98 -S31540017AB0821020018328400C1B10014482007FFF65 -S31540017AC0D803616C82084008932A400C9000400913 -S31540017AD08213C0007FFFE7009E10400001000000B6 -S31540017AE0952AA00D0328000094028009D020400069 -S31540017AF09422B000D420600481C3E0080100000054 -S31540017B00033FFFBF821062F89DE38001193FFFBF2B -S31540017B1094132368B407BFF8031000459606800AFC -S31540017B2082106020C222E00C03100044821063E000 -S31540017B30C222E0041B1000449A1363C0033FFFBFF7 -S31540017B40DA26800A90132380331000458210635C45 -S31540017B5094068008981323C0921660008200401E46 -S31540017B60D222E008D4204000B006800C7FFFA59FBA -S31540017B70901020067FFFE6C890102000920A3FF041 -S31540017B807FFFE6C790102000210000307FFFE6C24C -S31540017B9090102000808A001012BFFFFD01000000F6 -S31540017BA07FFFFF36210000307FFFE6BB90102000AB -S31540017BB0808A001012BFFFFD010000007FFFE6B67C -S31540017BC090102000030020408210600F92120001A5 -S31540017BD07FFFE6B3901020007FFFE6AF90102008AC -S31540017BE021100144D02421487FFFE6AB9010200CA0 -S31540017BF0A73A2010993A2014A60CE007980B200FBB -S31540017C00DA042148A8230013A80520089F3B6014E5 -S31540017C10933B60109B3B601894050013A210200112 -S31540017C20AC03200A9E0BE00F96102400AE0B6003B6 -S31540017C309402A00221200000992AC00C1B10014485 -S31540017C408203E00A952C400A9424000A832C4001C1 -S31540017C50D8236168A02400011B100144031001448C -S31540017C60EC23615C972AC00FAA03E00A1B1001446A -S31540017C70D620614403100144EA236154EA2061504D -S31540017C801B10014403100144D423614C920A60073E -S31540017C90A53A2018D0206158153FFFBF932C4009C3 -S31540017CA0A40CA003031001449412A358932C400939 -S31540017CB0A404A0013910014437100144EC20616C41 -S31540017CC09B2C40149402801EE0272164E426E16047 -S31540017CD0AA027FFFDA228000AC85E0010280000C17 -S31540017CE0BB2C4013033FFFBF82106368A00680018F -S31540017CF0A4100016D00400009FC20000A004200476 -S31540017D00A484BFFF32BFFFFDD00400007FFFE662BF -S31540017D1090102000920A3FFC7FFFE6619010200000 -S31540017D20A410200080A4801616800022A2102000F4 -S31540017D30033FFFBFAE106368A610001AA0102000D3 -S31540017D4080A4001636800018A404A0011080000506 -S31540017D50A810001780A4001636800013A404A001C1 -S31540017D60921000107FFFFEC8D004C014820A00158D -S31540017D7080A0401512BFFFF8A0042001C204C01420 -S31540017D8082184008DA0721648208400D80A000016C -S31540017D90A2647FFF80A4001606BFFFF39210001075 -S31540017DA0A404A00180A4801606BFFFE5A604E00452 -S31540017DB07FFFE63990102000A610000890102000A1 -S31540017DC07FFFE6379214E00380A46000028001B190 -S31540017DD001000000833CE00C80886003128000A50E -S31540017DE0030048D1833CE01380886003128001ADD3 -S31540017DF0010000007FFFFEA1210000307FFFE62643 -S31540017E0090102000808A001012BFFFFDA6100008C6 -S31540017E10A4102000C206E16080A480011680000DF6 -S31540017E20832CA00292100012901000187FFFFED002 -S31540017E3094102000A404A001C206E16080A4800140 -S31540017E4006BFFFFA92100012A4102000832CA00254 -S31540017E50A404A001C026000180A4A01E04BFFFFD0A -S31540017E60832CA00282102005C22600009A10200110 -S31540017E70DA26200482102002C22620089A10200306 -S31540017E80DA26200C7FFFFED89010001880A2200031 -S31540017E90028001D301000000C206000080A06005F7 -S31540017EA002800004010000007FFFA4D59010200647 -S31540017EB07FFFFECD9010001880A22000128001C4E1 -S31540017EC001000000A4102000C206E16080A48001E8 -S31540017ED01680000F92100012A00620049410200074 -S31540017EE07FFFFEB290100018921000129010001001 -S31540017EF07FFFFEAE94102000A404A001C206E160FB -S31540017F0080A4800106BFFFF6921000127FFFE5F8BC -S31540017F10901000187FFFE5F6900620207FFFE5F4DC -S31540017F20900620407FFFE5F290062060A4102000D5 -S31540017F30C206E16080A4800106800196A21020005D -S31540017F407FFFA4AF90102008173FFFBF8212E3C006 -S31540017F50940680018212E35C8200401ED81A80009A -S31540017F60C2004000D83840009612E380C206800B1A -S31540017F7080A06005128000068206800BDA0060044C -S31540017F8080A3600102800005A41020007FFFA49C0D -S31540017F9090102009A4102000C206E16080A480014F -S31540017FA016800011A2102000A00620049210001293 -S31540017FB07FFFFEBE90100010901A200180A000089D -S31540017FC0A2647FFFA404A001C206E16080A48001EF -S31540017FD006BFFFF89210001280A4600102800005DE -S31540017FE0833CE0137FFFA4869010200A833CE01374 -S31540017FF0808860031280018082102005C22600001D -S315400180009A102001DA26200482102002C226200876 -S315400180109A102003DA26200C1B3FFFBF9A136358A0 -S315400180209A03401ED00340004000048D9210001D6B -S31540018030032EEEEEA12A2002A21063BBE226001017 -S315400180407FFFFE699010001880A220001280016710 -S3154001805001000000C206001080A040110280000508 -S31540018060030048D17FFFA46690102012030048D137 -S31540018070821061671B226AF3C22620209A1361EFA0 -S31540018080DA262024C20E202080A06001028000044E -S31540018090010000007FFFA45A9010201AC20E202131 -S315400180A080A0602302800004010000007FFFA454E9 -S315400180B09010201BC20E202280A060450280000441 -S315400180C0010000007FFFA44E9010201CC20E202309 -S315400180D080A0606702800004010000007FFFA44881 -S315400180E09010201DC20E202480A0608902800004C9 -S315400180F0010000007FFFA4429010201EC20E2025E1 -S3154001810080A060AB02800004010000007FFFA43C18 -S315400181109010201FC20E202680A060CD0280000450 -S31540018120010000007FFFA43690102020C20E2027B8 -S3154001813080A060EF02800004010000007FFFA430B0 -S3154001814090102021C21620208328601083306010B1 -S3154001815080A0612302800004010000007FFFA42863 -S3154001816090102022DA1620229B2B6010030000116A -S315400181709B3360108210616780A340010280000436 -S31540018180010000007FFFA41E90102023DA16202450 -S315400181909B2B6010030000229B336010821061AB61 -S315400181A080A3400102800004010000007FFFA41467 -S315400181B090102024DA1620269B2B601003000033F2 -S315400181C09B336010821061EF80A34001028000055D -S315400181D0821020307FFFA40A901020258210203083 -S315400181E0C22E2020030C08D1DA06202082106167B6 -S315400181F080A3400102800005821020317FFFA40048 -S315400182009010202782102031C22E2021030C0C51C0 -S31540018210DA0620208210616780A3400102800005B2 -S31540018220821020327FFFA3F6901020288210203240 -S31540018230C22E2022210C0C4CDA0620208214226701 -S3154001824080A3400102800005821020337FFFA3EC0A -S315400182509010202982102033C22E20239A142233D3 -S31540018260C206202080A0400D0280000582102034E5 -S315400182707FFFA3E39010202A82102034C22E2024AF -S31540018280030D2AF3DA062024821061EF80A3400110 -S3154001829002800005821020357FFFA3D99010202B44 -S315400182A082102035C22E2025030D0D73DA062024B7 -S315400182B0821061EF80A340010280000582102036C2 -S315400182C07FFFA3CF9010202C82102036C22E20266D -S315400182D0210D0D4DDA062024821422EF80A34001A0 -S315400182E002800005821020377FFFA3C59010202D04 -S315400182F082102037C22E20279A142237C206202404 -S3154001830080A0400D02800005210000107FFFA3BC24 -S315400183109010202E2100001082142041C2362020C8 -S315400183200310104CDA0620208210623380A34001EC -S3154001833002800005821422437FFFA3B19010202FB3 -S3154001834082142243C236202203101050DA0620201E -S315400183508210624380A34001028000052100001182 -S315400183607FFFA3A7901020302100001182142045E1 -S31540018370C23620240311114DDA06202482106237B9 -S3154001838080A3400102800005821422477FFFA39CFF -S315400183909010203182142247C236202603111151F2 -S315400183A0DA0620248210624780A34001028000043D -S315400183B0010000007FFFA392901020327FFFFD2F26 -S315400183C0A4102000C206E16080A480011680001539 -S315400183D01B100144D403616C96100001A0102000CB -S315400183E080A4001D3680000CA404A001832C800AC1 -S315400183F09B286002992CA01082130010C226000D02 -S31540018400A004200180A4001D06BFFFFC9A0360045E -S31540018410A404A00180A4800B26BFFFF2A010200077 -S315400184207FFFE49D9010200003000010808A000128 -S3154001843012BFFFFC01000000A4102000C206E1604B -S3154001844080A4800116800114921000127FFFFD89DD -S315400184509010001815100144C202A14C900A000167 -S31540018460820E000180A20001A404A00112BFFFF404 -S31540018470901020337FFFA36201000000C206E16035 -S3154001848080A4800106BFFFF29210001230800102E3 -S315400184907FFFA35B9010200110BFFE50833CE00C90 -S315400184A07FFFE47D90102000133FFFF09212603F62 -S315400184B0920A0009A61000087FFFE4799010200077 -S315400184C07FFFE3D0A41020001303C0009214C0091B -S315400184D07FFFE4739010200080A480161680000967 -S315400184E092100012901660007FFFFD049410200048 -S315400184F0A404A00180A4801606BFFFFB92100012BF -S315400185007FFFE3C0010000007FFFE463901020007D -S31540018510913A200A900A200380A220010280000499 -S31540018520010000007FFFA3369010200201000000E9 -S3154001853092102000901660007FFFFCE1941020000D -S31540018540010000007FFFE454901020001303C00097 -S31540018550922A00097FFFE45290102000010000009A -S315400185607FFFE3A8010000007FFFE44B901020004D -S31540018570913A200C900A200380A2200102BFFE1EE0 -S31540018580010000007FFFA31E9010200330BFFE1A9A -S31540018590921000127FFFFD4590100018901A200599 -S315400185A080A00008A2647FFFA404A001C206E16086 -S315400185B080A4800106BFFFF89210001280A46000DB -S315400185C012BFFE63173FFFBF30BFFE5E7FFFA30CA6 -S315400185D09010200710BFFE3DA41020007FFFA30886 -S315400185E09010200530BFFE2D7FFFA305901020116E -S315400185F030BFFE997FFFE42890102000033FFFF033 -S315400186008210603F920A00017FFFE425901020000E -S31540018610033FFFBFA01063809210200094102000FA -S315400186207FFFFCE2900680107FFFE41B9010200044 -S315400186300303C000921200017FFFE419901020004D -S3154001864010800006A4102000900680107FFFFCD702 -S3154001865094102005A404A001C206E16080A4800113 -S3154001866006BFFFFA92100012033FFFBFA0106380BE -S315400186709A102001DA2E801003004000D80680109F -S315400186808210600580A30001028000040100000001 -S315400186907FFFA2DB9010200B7FFFE3FF90102000AD -S315400186A0913A2006900A200380A22001028000040C -S315400186B0010000007FFFA2D29010200C7FFFE3F65D -S315400186C0901020001303C000922A00097FFFE3F4B3 -S315400186D09010200092102000900680107FFFFCB37E -S315400186E0941020007FFFE3EC901020002103C0008E -S315400186F0921200107FFFE3EA901020007FFFE3E62D -S3154001870090102000808A001002BFFFFDA6100008CD -S31540018710A4102000C206E16080A480011680000EEC -S31540018720033FFFBF9A102001A2106380A12B401D79 -S3154001873092100012900680117FFFFC8D94043FFF3A -S31540018740A404A001C206E16080A4800106BFFFFA2D -S31540018750921000121303C000922CC0097FFFE3D090 -S31540018760901020002103C0007FFFE3CB9010200032 -S31540018770808A001012BFFFFD1B004000213FFFBF52 -S3154001878082142380D80680019A13600580A3000DC8 -S3154001879002800004010000007FFFA2999010200D85 -S315400187A07FFFE3BD90102000913A2008900A2003F4 -S315400187B080A2200122800005A01423787FFFA29089 -S315400187C09010200FA0142378940680109810201141 -S315400187D09A102055D83A80007FFFE3AF90102000D1 -S315400187E00303C00092120001920A7F3F7FFFE3AC70 -S315400187F090102000A00680107FFFE3CB9010001060 -S3154001880010800006A4102000900420047FFFFC671E -S3154001881094102055A404A001C206E16080A4800101 -S3154001882006BFFFFA92100012113FFFBF9012237844 -S315400188307FFFE3BD9006800880A2201112800004CC -S3154001884080A2605502800004010000007FFFA26CF7 -S31540018850901020107FFFE39090102000833A20066D -S315400188608208600380A0600102800004A61000080F -S315400188707FFFA26390102010133C3FF09212603F9D -S31540018880920CC0097FFFE3869010200010BFFDDCEB -S31540018890821020057FFFE380901020009212200F66 -S315400188A07FFFE37F9010200081C7E00891E8200018 -S315400188B09DE3BF987FFFFC9301000000B0100008C4 -S315400188C0130020409212600F7FFFE3759010200045 -S315400188D00100000081C7E00881E80000033FFFBFB7 -S315400188E0821063589DE380017FFFFBE40100000095 -S315400188F040000238010000007FFFE3679010200826 -S31540018900A21000087FFFE3649010200C7FFFA24B6A -S31540018910A0100008912A20047FFFA2349002200C67 -S31540018920973C6014833C6018953C2014993C201870 -S3154001893082086003960AE00F820060019602E00A0F -S31540018940A33C6010A13C2010980B2003940AA00F71 -S31540018950A728400B98032001A20C6007A00C200712 -S315400189609402A00A9A102001A2046002A0042002E7 -S31540018970B12B000A03200000AB2B4011A52B401060 -S315400189809620401898057FFF822040139A04BFFF26 -S31540018990AE130001A213400B210000307FFFE33EDE -S315400189A090102000808A001012BFFFFD033FFFBFD9 -S315400189B09A07BFF8821063C0A00340012D15555593 -S315400189C090100018921000107FFFE2C69415A15531 -S315400189D080A220001280004B292AAAAA92100010D8 -S315400189E0901000187FFFE2D3941522AA80A220009E -S315400189F01280004E010000007FFFA210010000001E -S31540018A00912A20047FFFA1F99002200A400001EE3D -S31540018A100100000092152200920C400990100018A6 -S31540018A2094100011961000127FFFE2EB981522AACE -S31540018A3080A2200012800051010000009215A10081 -S31540018A4090100018920C40099410001196100012D3 -S31540018A507FFFE2E19815A15580A2200012800044D3 -S31540018A60010000007FFFA1F501000000912A2004CA -S31540018A707FFFA1DE9002200B901000137FFFE2BD25 -S31540018A809215A15580A220001280003501000000F8 -S31540018A90901000137FFFE2B7921522AA80A2200010 -S31540018AA01280002C010000007FFFA1E401000000BC -S31540018AB0912A20047FFFA1CD900220099010001336 -S31540018AC092100017941000157FFFE2B6961522AA60 -S31540018AD080A220001280001B0100000090100013AC -S31540018AE092100017941000157FFFE2AE9615A1551E -S31540018AF080A2200002800025010000003080000E87 -S31540018B007FFFA1BF90102001292AAAAA9210001026 -S31540018B10901000187FFFE287941522AA80A22000B8 -S31540018B2002BFFFB6010000007FFFA1B590102002F1 -S31540018B3030BFFFB27FFFA1B29010200830800013F2 -S31540018B407FFFA1AF9010200710BFFFE690100013E2 -S31540018B507FFFA1AB9010200630BFFFD47FFFA1A8B5 -S31540018B609010200510BFFFCC901000137FFFA1A4E9 -S31540018B709010200430BFFFBC7FFFA1A190102003BD -S31540018B8010BFFFB09215A1007FFFFB3CB010200043 -S31540018B9040000190010000000100000081C7E0088B -S31540018BA081E800009DE3BF987FFFA18B1100412C16 -S31540018BB0DA062004D80620049A0B6003993B20026A -S31540018BC082102007C2262008BA036001B20B27FF94 -S31540018BD0010000009010200AC02600007FFFA183FB -S31540018BE0010000001700020082103FFFC226000B61 -S31540018BF0032AAAAA1B155555D806000BAC1020000E -S31540018C00821062AA9A136155AA0B000180A5801DA4 -S31540018C1016800038A80B000D9612E020A72E60089A -S31540018C2080A4E0000480000CA2102000832DA00245 -S31540018C3082004018190002009A10000BE820400CEF -S31540018C40EA20400DA204601080A4C01114BFFFFCAD -S31540018C5082006040AC05A00180A5801D06BFFFF2E1 -S31540018C6080A4E000AC10200080A5801D1680002164 -S31540018C7003000200B8106020A72E6008AE1000184D -S31540018C8080A4E00004800017A21020000300020027 -S31540018C90A4060001A005C01CC2048000A204601005 -S31540018CA0A404A04080A0401402800004901020013A -S31540018CB07FFFA15301000000C2040000A004204030 -S31540018CC080A0401502800004901020017FFFA14C36 -S31540018CD00100000080A4C01114BFFFF00100000094 -S31540018CE0AC05A00180A5801D06BFFFE6AE05E004E8 -S31540018CF07FFFA13E9010200CAC10200080A5801D66 -S31540018D0016800088031555559E1061551B000800B5 -S31540018D10032AAAAA9A136004901062AAA72E600891 -S31540018D2080A4E0000480000EA2102000832DA01331 -S31540018D3082004018130008009410000F9610000D91 -S31540018D4098100008D4204009D820400BA2046002A4 -S31540018D5080A4C01114BFFFFC82006008AC05A001CD -S31540018D6080A5801D06BFFFF080A4E000AC10200066 -S31540018D7080A5801D1680006B03155555B8106155A9 -S31540018D801B000800032AAAAAB6136004B41062AAFB -S31540018D90A72E600880A4E00004800019A2102000DC -S31540018DA0832DA013A00040182F000800AA10001C14 -S31540018DB0A810001BA410001AC2040017A2046002E6 -S31540018DC080A0401502800004901020037FFFA10C73 -S31540018DD001000000C2040014A004200880A0401233 -S31540018DE002800004901020037FFFA10501000000CE -S31540018DF080A4C01114BFFFF101000000AC05A00121 -S31540018E0080A5801D06BFFFE580A4E000AC102000D0 -S31540018E1080A5801D16800043030008009E10600453 -S31540018E201B155555032AAAAA9A136155901062AA91 -S31540018E30A72E600880A4E0000480000EA210200046 -S31540018E40832DA01382004018130008009410000FD0 -S31540018E509610000D98100008D620400AD8204009E7 -S31540018E60A204600280A4C01114BFFFFC8200600806 -S31540018E70AC05A00180A5801D06BFFFF080A4E000DF -S31540018E80AC10200080A5801D16800026031555557F -S31540018E90B81061551B2AAAAA03000800A72E60082C -S31540018EA0B61362AAB410600480A4E00004800019DD -S31540018EB0A2102000832DA013A00040182F00080007 -S31540018EC0AA10001CA810001BA410001AC20400120C -S31540018ED0A204600280A04015028000049010200484 -S31540018EE07FFFA0C701000000C2040017A0042008AC -S31540018EF080A0401402800004901020047FFFA0C08F -S31540018F000100000080A4C01114BFFFF10100000060 -S31540018F10AC05A00180A5801D06BFFFE580A4E00049 -S31540018F2082102005C22620081B200000DA260000F8 -S31540018F3081C7E00881E8000081C3E0089144400010 -S31540018F4080800000151001409412A18090102000ED -S31540018F5092102246818000000100000001000000BD -S31540018F6001000000D00280009122400881C3E00840 -S31540018F7001000000818000009010200180902001B6 -S31540018F8080D020011280002C0100000080D23FFFDA -S31540018F90168000290100000080DA3FFF934000005F -S31540018FA080A27FFF128000240100000080D23FFF93 -S31540018FB09348000093326014920A600F80A26008C1 -S31540018FC01280001D010000008180000090102001E8 -S31540018FD0945220049452A0049452A00496A2A04014 -S31540018FE012800015010000008180000090102002CF -S31540018FF080A00000328000109052000880A220021A -S315400190001280000D010000008180000090102002B6 -S3154001901080A0000001000000328000079052000845 -S3154001902080A22002128000040100000081C3E008F2 -S315400190309010200181C3E00890100000131555558A -S3154001904092126155A5824000010000000100000016 -S31540019050010000009544800080A2400A128000432E -S3154001906001000000923A4000A58240000100000044 -S3154001907001000000010000009544800080A2400AE2 -S315400190801280003A010000001100003F901223FFB8 -S31540019090A580000081800000010000000100000061 -S315400190A00100000093F23FFF9A10000993F23FFF3F -S315400190B093F23FFF93F23FFF93F23FFF93F23FFF5D -S315400190C093F23FFF93F23FFF99400000974480009F -S315400190D0153FFC009412A00880A2400A128000238A -S315400190E080A2400B1280002180A320071280001F1E -S315400190F0113FFF809012200180A340081280001B7F -S315400191001100003F901223FFA580000081800000DE -S3154001911001000000010000000100000093FA3FFF3A -S3154001912093FA3FFF93FA3FFF93FA3FFF93FA3FFFCC -S3154001913093FA3FFF93FA3FFF93FA3FFF99400000AE -S315400191409744800080A260081280000880A26008CF -S315400191501280000680A32000128000040100000056 -S3154001916081C3E0089010200181C3E00890100000FF -S31540019170818000009010200280A000003280001003 -S315400191809072000880A220021280000D01000000AA -S31540019190818000009010200280A0000001000000A4 -S315400191A0328000079072000880A2200212800004DB -S315400191B00100000081C3E0089010200181C3E0084E -S315400191C090100000C0A0004081C3E00801000000EB -S315400191D0110020409012200FD0A0004081C3E0082A -S315400191E0010000009DE3BF987FFFE12B901020080E -S315400191F0A21000087FFFE1289010200C833C6014E8 -S315400192009B3A2014A13A2018A33C6018A20C600393 -S31540019210A00C20038208600F9A0B600F8200600A3F -S315400192209A03600AA2046001A0042001A32C400114 -S315400192307FFFFFE5A12C000D7FFFE08E901000110E -S315400192407FFFE09A901000107FFFF98C010000002B -S315400192507FFFFFE081E8000001000000981200094D -S31540019260818200009AAB2FFF02800025988800007A -S315400192709923000999230009992300099923000993 -S315400192809923000999230009992300099923000983 -S315400192909923000999230009992300099923000973 -S315400192A09923000999230009992300099923000963 -S315400192B09923000999230009992300099923000953 -S315400192C09923000999230009992300099923000943 -S315400192D09923000999230009992300099923000933 -S315400192E09923000999230009992300099923000923 -S315400192F09923000081C3E0089140000099230009A9 -S315400193009923000999230009992300099923000902 -S3154001931099230009992300099923000999230009F2 -S3154001932099230009992300099923000999230000EB -S315400193309B400000992B200C9B33601481C3E008AD -S315400193409013400C1080000B86102000809240083C -S31540019350168000088610000880924000168000049E -S315400193608092000016800003922000099020000898 -S315400193709A924000128000059610000891D0200272 -S3154001938081C3E0089010000080A2C00D0A800095BC -S31540019390941000000302000080A2C0010A80002848 -S315400193A09810000080A340011A80000D841020010E -S315400193B09B2B600410BFFFFC980320019A83400D4C -S315400193C01A8000078400A001832860049B33600152 -S315400193D09A034001108000078420A00180A3400B1E -S315400193E00ABFFFF7010000000280000201000000F1 -S315400193F084A0A00106800076010000009622C00DDF -S31540019400941020011080000A01000000952AA00155 -S31540019410068000059B3360019622C00D1080000432 -S315400194209402A0019602C00D9422A00184A0A0013D -S3154001943016BFFFF78092C000308000659B2B600409 -S3154001944080A3400B08BFFFFE988320010280006580 -S31540019450982320018092C000952AA0040680002FFF -S315400194609B33600196A2C00D068000179B336001B5 -S3154001947096A2C00D0680000B9B33600196A2C00DDB -S31540019480068000059B33600196A2C00D10800050F6 -S315400194909402A00F9682C00D1080004D9402A00D3B -S315400194A09682C00D068000059B33600196A2C00DD1 -S315400194B0108000479402A00B9682C00D1080004494 -S315400194C09402A0099682C00D0680000B9B33600171 -S315400194D096A2C00D068000059B33600196A2C00D81 -S315400194E01080003B9402A0079682C00D1080003880 -S315400194F09402A0059682C00D068000059B3360014B -S3154001950096A2C00D108000329402A0039682C00D2F -S315400195101080002F9402A0019682C00D068000178C -S315400195209B33600196A2C00D0680000B9B33600100 -S3154001953096A2C00D068000059B33600196A2C00D20 -S31540019540108000239402BFFF9682C00D1080002038 -S315400195509402BFFD9682C00D068000059B336001D3 -S3154001956096A2C00D1080001A9402BFFB9682C00DD0 -S31540019570108000179402BFF99682C00D0680000B39 -S315400195809B33600196A2C00D068000059B336001A6 -S3154001959096A2C00D1080000E9402BFF79682C00DB0 -S315400195A01080000B9402BFF59682C00D068000051F -S315400195B09B33600196A2C00D108000059402BFF353 -S315400195C09682C00D108000029402BFF198A320013B -S315400195D016BFFFA28092C000268000029602C009F3 -S315400195E08090C000268000029620000B81C3E008CF -S315400195F09010000B9210000890102000941020004B -S31540019600961020008213C000400000039E104000C7 -S31540019610010000009DE3BF9823100143400005F679 -S31540019620901460F40310006DE0006188D004214875 -S3154001963080A220002280002D9004214CD6022004D5 -S3154001964080A2E01F1480001D0100000080A62000BA -S315400196501280000B94022088832AE0029A02E001DC -S3154001966082004008DA222004F2206008400005FA10 -S31540019670901460F410800022B01020008210200166 -S315400196809328400B992AE002DA02A1009A13400975 -S315400196908203000AF6206080F422800C80A6200214 -S315400196A012BFFFEEDA22A100C202A10482104009D4 -S315400196B010BFFFEAC222A10440000013901021907E -S315400196C080A220000280000B96102000C20421488F -S315400196D0C2220000D0242148C0222004C022218871 -S315400196E010BFFFDBC022218C10BFFFD5D0242148FB -S315400196F0400005D9901460F4B0103FFF81C7E008DF -S3154001970081E800009210000803100141D000637007 -S315400197108213C0004000000A9E1040000100000074 -S315400197209210000803100141D00063708213C000FB -S31540019730400002199E104000010000009DE3BF98C1 -S315400197408206600B80A06016A610001818800003E0 -S31540019750A0087FF8A010201080A400199A4020008C -S315400197608334201F8090400D128001B0B01020003C -S31540019770400001B09010001380A421F71880001713 -S315400197809934200939100141821723809804000138 -S31540019790F003200C80A6000C0280004E9F3420036B -S315400197A0C206200494087FFC9A06000AC20360049C -S315400197B082106001D006200CD2062008D222200851 -S315400197C0C2236004D022600C400001A09010001317 -S315400197D010800196B006200880A320001280002840 -S315400197E09F342003391001419B2BE00382172380CC -S315400197F09A0340011080000AF003600C94087FFC34 -S315400198009622801080A2E00F1480010980A2E00018 -S3154001981036BFFFE79A06000AF006200C80A6000D27 -S3154001982032BFFFF7C20620049E03E0012510014125 -S315400198309814A388F003200880A6000C0280005DDE -S31540019840833BE01FC206200494087FFC96228010C9 -S3154001985080A2E00F1480009F80A2E000D823200C54 -S3154001986006800023D82320089A06000AC203600412 -S315400198708210600110BFFFD5C223600483342006E5 -S3154001988080A3200408BFFFD89E00603880A320141F -S3154001989008BFFFD59E03205B8334200C80A3205450 -S315400198A008BFFFD19E00606E8334200F80A32154F0 -S315400198B008BFFFCD9E0060778334201280A32554D4 -S315400198C008BFFFC99E00607C10BFFFC79E10207E67 -S315400198D098062008F003200C80A6000C32BFFFB288 -S315400198E0C206200410BFFFD29E03E00280A2A1FF60 -S315400198F0088000BE9B32A0039732A00980A2E000F7 -S3154001990022800017961723808332A00680A2E004A6 -S31540019910088000129A00603880A2E0140880000F87 -S315400199209A02E05B8332A00C80A2E0540880000BCF -S315400199309A00606E8332A00F80A2E154088000072E -S315400199409A0060778332A01280A2E5540880000312 -S315400199509A00607C9A10207E96172380832B6003A1 -S315400199609000400BD202200880A240082280010FBD -S3154001997099336002C202600482087FFC80A0400ADB -S3154001998028800007D002600CD202600880A24008FD -S3154001999032BFFFFAC2026004D002600CD026200C0E -S315400199A0D2262008F022600CF0222008833BE01FDB -S315400199B08330601E8203C001391001418338600241 -S315400199C0981723809A102001932B4001D803200435 -S315400199D080A2400C1880004BAE172380808B000973 -S315400199E01280000D03100141820BFFFC92024009D7 -S315400199F0808B0009128000079E0060048210000CD3 -S31540019A00920240098088400902BFFFFE9E03E0049E -S31540019A1003100141A2106380A8100011832BE003BB -S31540019A20980040119010000F9A10000C1080000A07 -S31540019A30F003600C94087FFC9622801080A2E00F10 -S31540019A401480007D80A2E0003680008B9A06000AD1 -S31540019A50F006200C80A6000D32BFFFF7C206200497 -S31540019A609E03E001808BE00312BFFFF19A03600879 -S31540019A70808A200398033FF8028000D490023FFF7A -S31540019A80C203200880A0400C02BFFFFB808A20034E -S31540019A9092024009C205200480A2400118800018A4 -S31540019AA03910014180A26000128000068088400979 -S31540019AB010800014AE1723809E03E004808840097D -S31540019AC022BFFFFE9202400910BFFFD6832BE0035F -S31540019AD08214200194060010C2262004D423200CAF -S31540019AE0D42320088212E001D622800BD822A00876 -S31540019AF0C222A00410BFFF35D822A00CAE17238086 -S31540019B00F005E008C2062004AA087FFC80A54010A3 -S31540019B109A4020009625401080A2E00F1480004212 -S31540019B2082102001809340010280002703100143E7 -S31540019B30DA0061982D1001419A04000DC205A378FF -S31540019B40A810001580A07FFFA203601002800004C8 -S31540019B50A406001582046FFFA2087000901000133E -S31540019B60400000C09210001180A23FFF0280000811 -S31540019B70B210000880A200121A8000463B10014331 -S31540019B8080A6001722800044C2076168821723809D -S31540019B90D8006008DA0320049A0B7FFC80A34010AA -S31540019BA0984020009623401080A2E00F04800003D5 -S31540019BB082102001821020008093000112800098BB -S31540019BC00100000098172380F00320088214200129 -S31540019BD0C22620049A0600108212E001C2236004C4 -S31540019BE010BFFEFADA23200898033FF8832B60035F -S31540019BF09000400C9B336002821020018328400D67 -S31540019C00D2022008DA0320049A134001D026200C00 -S31540019C10D2262008F022600CDA23200410BFFF640C -S31540019C20F022200810BFFFC08210200010BFFEFFA7 -S31540019C309E03FFFFD006200CD20620089A1420016D -S31540019C40940600108214A388D2222008D022600CE8 -S31540019C50DA262004D420600CD42060089A12E00150 -S31540019C60D622800BC222A008DA22A00410BFFED75A -S31540019C70C222A00CC203600482106001D006200CEF -S31540019C80D2062008C223600410BFFECFD22220088C -S31540019C90C20761688200401180A640120280004FCF -S31540019CA0C2276168C205A37880A07FFF0280004574 -S31540019CB0C20761689A2640128200400DC227616838 -S31540019CC09A8E600702800005A410200082102008A9 -S31540019CD0A420400DB20640129A0640119A0B6FFF1E -S31540019CE0030000048220400DA4048001901000135B -S31540019CF04000005C9210001280A23FFF2280003F8C -S31540019D00A41020008222001990004012821723805D -S31540019D10DA0761689A03401280A60001F2206008C2 -S31540019D20DA276168028000378212200180A5600F20 -S31540019D3038800005C22660048210200110BFFF94BE -S31540019D40C2266004C20620049A057FF4A80B7FF858 -S31540019D508208600182104014C22620049A0600142B -S31540019D6082102005C223600880A5200F1880002795 -S31540019D70C223600419100143DA076168C2032194C2 -S31540019D8080A3400138800002DA232194191001434F -S31540019D90C203219080A3400138BFFF7DDA23219081 -S31540019DA010BFFF7C821723809A102001C202E00473 -S31540019DB09B2B400C8210400D10BFFEF9C222E004DD -S31540019DC010BFFFC0F225A378C2046004822840096F -S31540019DD010BFFF30C2246004808E6FFF12BFFFB3F5 -S31540019DE0C205A37890044014DA05E00882122001E6 -S31540019DF010BFFFE1C223600410BFFFC390100019DA -S31540019E0010BFFFDDC22660049206200840000062B2 -S31540019E109010001310BFFFD9191001434000000BE9 -S31540019E2090100013B010200081C7E00881E80000BF -S31540019E3011100142901223888213C000400003EEA4 -S31540019E409E1040000100000011100142901223882B -S31540019E508213C000400004009E1040000100000033 -S31540019E609DE3BF9821100144C02421704000020D9A -S31540019E709010001980A23FFF12800006C204217093 -S31540019E8080A060000280000301000000C22600009D -S31540019E9081C7E00891E800089DE3BF987FFFFFE591 -S31540019EA09010001803100141A2106380DA04600883 -S31540019EB0C2036004A0087FFCB2240019B2066FEF0A -S31540019EC0B20E7000B20670009210200080A66FFF9D -S31540019ED00480000A901000187FFFFFE20100000095 -S31540019EE0C20460088200401080A0400892200019F8 -S31540019EF002800005901000187FFFFFD4B0102000AB -S31540019F00308000237FFFFFD790100018822400196C -S31540019F1080A23FFF82106001921020001910014378 -S31540019F200280000B90100018DA046008C223600416 -S31540019F30C203216882204019901000187FFFFFC399 -S31540019F40C223216810800012B01020017FFFFFC597 -S31540019F500100000098100008D6046008A023000BF9 -S31540019F609010001880A4200F04BFFFE4B214200112 -S31540019F7003100141DA0063789A23000D031001436F -S31540019F80DA20616810BFFFDDF222E00481C7E008F4 -S31540019F9081E800009DE3BF9880A660000280009D95 -S31540019FA0A41000187FFFFFA390100018A0067FF8A9 -S31540019FB0D6042004900AFFFE1910014194040008BA -S31540019FC0A2132380DA02A004C204600880A0400ADA -S31540019FD0028000449E0B7FFC808AE001DE22A004C1 -S31540019FE01280000CB0102000F2067FF8A024001960 -S31540019FF082046008DA04200880A340010280007DC3 -S3154001A00090020019D204200CDA226008D223600C97 -S3154001A0108202800FDA006004808B60011280000AA0 -S3154001A0208212200180A62000028000229002000FA9 -S3154001A030DA02A008D202A00CDA226008D223600C10 -S3154001A04082122001C224200480A62000028000053D -S3154001A050D0240008B01000127FFFFF7C81E8000089 -S3154001A06080A221FF18800036973220099B322003B7 -S3154001A07098132380832B60039200400C9B3360022C -S3154001A080821020018328400DD6026008DA0320049D -S3154001A0909A134001D224200CD6242008E022E00C59 -S3154001A0A0DA232004E022600810BFFFECB010001252 -S3154001A0B003100141DA02A0088210638880A340019F -S3154001A0C032BFFFDED202A00CE023600CE023600821 -S3154001A0D0DA242008DA24200C10BFFFDAB010200160 -S3154001A0E0808AE001128000099002000FF2067FF893 -S3154001A0F0A0240019D204200CD6042008D6226008D8 -S3154001A10090020019D222E00C03100141DA00637C6F -S3154001A11098122001E024600880A2000D0ABFFFCFFB -S3154001A120D824200403100143D20061987FFFFF5BCE -S3154001A130901000127FFFFF4581E8000080A2E000F9 -S3154001A140028000169B3220038332200680A2E0045F -S3154001A150088000129A00603880A2E0140880000F3F -S3154001A1609A02E05B8332200C80A2E0540880000B07 -S3154001A1709A00606E8332200F80A2E1540880000766 -S3154001A1809A0060778332201280A2E554088000034A -S3154001A1909A00607C9A10207E94132380832B60035F -S3154001A1A09200400AD602600880A2C00902800013CC -S3154001A1B099336002C202E00482087FFC80A0400815 -S3154001A1C028800007D202E00CD602E00880A2C0092E -S3154001A1D032BFFFFAC202E004D202E00CD224200CC4 -S3154001A1E0D6242008E022E00C10BFFFB0E022600830 -S3154001A1F010BFFF88B01020019A102001C202A004AE -S3154001A2009B2B400C8210400D10BFFFF5C222A004CB -S3154001A21081C7E00881E800009DE3BF98D20640006F -S3154001A22080A2600012800004901000187FFFFF5A40 -S3154001A23081E800007FFFFFF9010000007FFFFF5624 -S3154001A24081E80000010000009DE3BF980310014131 -S3154001A250DA00637080A6000D028000410100000013 -S3154001A260D206204C80A260001280001CA010200063 -S3154001A270D206214880A260002280000FD2062054D7 -S3154001A280A006214C80A240102280000BD206205409 -S3154001A29010800005B2100009F20640007FFFFF3E24 -S3154001A2A09010001880A4001912BFFFFC92100019EB -S3154001A2B0D206205480A260001280002501000000D1 -S3154001A2C0C206203880A060000280002501000000FF -S3154001A2D010800017C206203C832C2002F202400166 -S3154001A2E080A660002280000BA00420019210001974 -S3154001A2F0F20640007FFFFF289010001880A66000FC -S3154001A30012BFFFFC92100019D206204CA004200176 -S3154001A31080A4200E04BFFFF2832C20027FFFFF1E84 -S3154001A3209010001810BFFFD4D20621489FC04000AC -S3154001A33090100018F20622E080A660000280000814 -S3154001A340010000007FFFFFB581E800007FFFFF129B -S3154001A3509010001810BFFFDCC206203881C7E00804 -S3154001A36081E800009DE3BF9880A620000280001D81 -S3154001A37003100141E406214880A4A0002280001375 -S3154001A380C206203CE204A004A2847FFF0C80000A9E -S3154001A390832C600282004012A0006008C2040000C3 -S3154001A3A09FC04000A0043FFCA2847FFF3CBFFFFD4D -S3154001A3B0C2040000E404800080A4A00032BFFFF381 -S3154001A3C0E204A004C206203C80A06000028000078F -S3154001A3D0010000009FC0400090100018308000032B -S3154001A3E010BFFFE5F000637081C7E00881E8000017 -S3154001A3F01080000B861020008092400816800008CD -S3154001A400861A40088092400016800004809200001F -S3154001A4101680000392200009902000089A9240007D -S3154001A420128000059610000891D0200281C3E008F1 -S3154001A4309010000080A2C00D0A8000959410000083 -S3154001A4400302000080A2C0010A8000289810000083 -S3154001A45080A340011A80000D841020019B2B6004CB -S3154001A46010BFFFFC980320019A83400D1A80000714 -S3154001A4708400A001832860049B3360019A03400154 -S3154001A480108000078420A00180A3400B0ABFFFF77C -S3154001A49001000000028000020100000084A0A0012A -S3154001A4A006800076010000009622C00D941020011E -S3154001A4B01080000A01000000952AA00106800005CF -S3154001A4C09B3360019622C00D108000049402A001C6 -S3154001A4D09602C00D9422A00184A0A00116BFFFF7E9 -S3154001A4E08092C000308000659B2B600480A3400BA6 -S3154001A4F008BFFFFE98832001028000659823200152 -S3154001A5008092C000952AA0040680002F9B336001EB -S3154001A51096A2C00D068000179B33600196A2C00D1E -S3154001A5200680000B9B33600196A2C00D0680000594 -S3154001A5309B33600196A2C00D108000509402A00F7B -S3154001A5409682C00D1080004D9402A00D9682C00DDA -S3154001A550068000059B33600196A2C00D108000471E -S3154001A5609402A00B9682C00D108000449402A0096B -S3154001A5709682C00D0680000B9B33600196A2C00DEA -S3154001A580068000059B33600196A2C00D1080003BFA -S3154001A5909402A0079682C00D108000389402A0054F -S3154001A5A09682C00D068000059B33600196A2C00DC0 -S3154001A5B0108000329402A0039682C00D1080002FB5 -S3154001A5C09402A0019682C00D068000179B3360015C -S3154001A5D096A2C00D0680000B9B33600196A2C00D6A -S3154001A5E0068000059B33600196A2C00D10800023B2 -S3154001A5F09402BFFF9682C00D108000209402BFFDD9 -S3154001A6009682C00D068000059B33600196A2C00D5F -S3154001A6101080001A9402BFFB9682C00D108000176D -S3154001A6209402BFF99682C00D0680000B9B336001F0 -S3154001A63096A2C00D068000059B33600196A2C00D0F -S3154001A6401080000E9402BFF79682C00D1080000B59 -S3154001A6509402BFF59682C00D068000059B336001CA -S3154001A66096A2C00D108000059402BFF39682C00DDC -S3154001A670108000029402BFF198A3200116BFFFA2E9 -S3154001A6808092C000268000029422A0018090C000E2 -S3154001A690268000029420000A81C3E0089010000A37 -S3154001A6A019100144DA03217480A360001280000668 -S3154001A6B082034008031001449A106188DA23217409 -S3154001A6C082034008C223217481C3E0089010000D23 -S3154001A6D0A7500000AE1000018334E0012910014368 -S3154001A6E0E8052038A92CC0148215000181E000003C -S3154001A6F081904000010000000100000001000000BF -S3154001A700E03BA000E43BA008E83BA010EC3BA018CE -S3154001A710F03BA020F43BA028F83BA030FC3BA038FE -S3154001A72081E800008210001781C4400081CC80007E -S3154001A730010000000100000001000000A7500000D8 -S3154001A740A92CE0012B100143EA056038AB34C01552 -S3154001A750AA15401481954000010000000100000047 -S3154001A7600100000081E8000081E80000E01BA00034 -S3154001A770E41BA008E81BA010EC1BA018F01BA020AE -S3154001A780F41BA028F81BA030FC1BA03881E0000078 -S3154001A79081E0000081C4400081CC8000A7500000C8 -S3154001A7A02910006CADC5210C0100000027100143A2 -S3154001A7B0A614E018E024C000818C2020010000008E -S3154001A7C001000000010000009DE3BFA09DE3BFA082 -S3154001A7D09DE3BFA09DE3BFA09DE3BFA09DE3BFA0B6 -S3154001A7E09DE3BFA081E8000081E8000081E8000008 -S3154001A7F081E8000081E8000081E8000081E800006E -S3154001A80027100143A614E018C024C000E203A06843 -S3154001A810A4046004E223A064E423A06810800262D9 -S3154001A820AC10000029100142A81523FCC2252000C6 -S3154001A830C8252004E0252010E2252014E42520180F -S3154001A840E825201C81E800008348000082106F0043 -S3154001A8508188602001000000010000000100000025 -S3154001A86009100143C801203881E0000088212001F8 -S3154001A87080A920FF028000030100000001000000C2 -S3154001A88080A1000012BFFFF9010000000910014339 -S3154001A890C801203881E8000080A920FF028000031A -S3154001A8A001000000010000008821200180A1000074 -S3154001A8B012BFFFF90100000081E0000029100142AA -S3154001A8C0A81523FCC8052004C2052000E005201078 -S3154001A8D0E2052014E4052018C025201C818C2000A7 -S3154001A8E001000000010000000100000081C4800059 -S3154001A8F081CCA004A0142F00818C0000010000002F -S3154001A900010000000100000081C4800081CCA00448 -S3154001A91080A6600212800005A8142F00818D0000D8 -S3154001A920B01420203080001F80A6600312800006EC -S3154001A930A80E2F00AA2C2F00A8154014818D0000C7 -S3154001A9403080001880A6600412800008A9480000E3 -S3154001A950A8152040818D0000010000000100000083 -S3154001A960010000003080000F80A6600512800008BB -S3154001A970A9480000A82D2040818D0000010000005B -S3154001A98001000000010000003080000680A660063C -S3154001A990128000030100000030BFFFA391D02000C8 -S3154001A9A081C4800081CCA0049210200381C3E008B9 -S3154001A9B091D020029210200281C3E00891D020025A -S3154001A9C09210200681C3E00891D0200281C3E0089D -S3154001A9D00100000081C3E0080100000081C3E008D6 -S3154001A9E001000000AE25A010A75000002D10006AFE -S3154001A9F0AC15A1F82910006C81C522B401000000F4 -S3154001AA001110014390122024D202000092026001EB -S3154001AA10D2220000932DE008902C2F0092120009BB -S3154001AA20111001439012201CD002000080A00008A2 -S3154001AA302280000292126F00818A6020010000008C -S3154001AA400100000001000000901000174000003195 -S3154001AA509203A06092142F00818A602001000000B9 -S3154001AA600100000001000000111001439012202452 -S3154001AA70D202000092226001D22200001080022DF3 -S3154001AA80AC1000001B1001449A13602C912A20023D -S3154001AA90C2034008C222600C81C3E008D2234008A9 -S3154001AAA09DE3BF98031001448210602C992E6002E9 -S3154001AAB01B100143972E6004D800400C9A13622C58 -S3154001AAC0901000199202C00D80A6601F1480000FDD -S3154001AAD0821020001080000680A320002280000AF8 -S3154001AAE0C2024000D803200C80A3200012BFFFFC05 -S3154001AAF080A300097FFFFFE4F0224000108000039D -S3154001AB0082102000F022400081C7E00891E8000150 -S3154001AB109DE3BF981B10014382136028D80060044F -S3154001AB2080A3001802800044C203602880A620004A -S3154001AB3022800002B010000C03100144A32E200213 -S3154001AB408210602CE000401180A420000280003D6C -S3154001AB500310014310800012A41061A8D2042008FA -S3154001AB60941000199FC30000901000180310014370 -S3154001AB70C20061A080A060001280002B010000008D -S3154001AB80C204801182007FFFC2248011E004200CA0 -S3154001AB9080A420000280002B01000000D8040000A0 -S3154001ABA080A3200022BFFFFBE004200C03100143D9 -S3154001ABB0DA00622880A36000128000089610001215 -S3154001ABC003100143821061A8DA00401180A360009E -S3154001ABD032BFFFF0E004200CDA02C011031001433A -S3154001ABE09A036001C20061A480A0600002BFFFDC3D -S3154001ABF0DA22C0119FC0400001000000D8040000C5 -S3154001AC00D2042008941000199FC300009010001828 -S3154001AC1003100143C20061A080A0600022BFFFDA99 -S3154001AC20C20480119FC040000100000010BFFFD642 -S3154001AC30C2048011DA0060C010BFFFBDB00B601FB7 -S3154001AC4081C7E00881E800008C10000FA74800008A -S3154001AC508B34E0188A09600F80A160030280000CE2 -S3154001AC600B1001438A1160300920000088112070C1 -S3154001AC70C82140000B1001438A1160500920000091 -S3154001AC8088112040C82140001080003990102001D1 -S3154001AC9092102006400001DD0100000080A000085E -S3154001ACA00280003301000000C2022010113FFC0067 -S3154001ACB082084008110003FC8410400890100002ED -S3154001ACC0921020019410200C400001E60100000082 -S3154001ACD080A000080280002601000000400001F625 -S3154001ACE0921000010B1001438A116030D2214000BD -S3154001ACF0901000029210200194102011400001D9B9 -S3154001AD000100000080A00008028000190100000037 -S3154001AD10400001E992100001920260100B100143BC -S3154001AD208A116050D22140009010000292102001F9 -S3154001AD309410200D400001CB0100000080A00008C6 -S3154001AD400280000B01000000400001DB921000016F -S3154001AD500B1001438A116028D2214000D4026010B1 -S3154001AD609532A010940AA00FD42160049E100006CB -S3154001AD7081C3E008010000000310014382106048CE -S3154001AD808210200191D0200081C3E008010000001B -S3154001AD909DE3BF9803100144C20060C8901000189B -S3154001ADA09210001980A0600002800005B0102000BA -S3154001ADB09FC0400001000000B010000881C7E008B4 -S3154001ADC081E800009DE3BF9803100144C20060C4BE -S3154001ADD09010001880A0600002800005B01020008D -S3154001ADE09FC0400001000000B010000881C7E00884 -S3154001ADF081E800009DE3BF9803100144C20060BC96 -S3154001AE009010001880A0600002800005B01020005C -S3154001AE109FC0400001000000B010000881C7E00853 -S3154001AE2081E800009DE3BF9803100144C20060C061 -S3154001AE309010001880A0600002800005B01020002C -S3154001AE409FC0400001000000B010000881C7E00823 -S3154001AE5081E800009DE3BF9803100144C20060B839 -S3154001AE609010001880A0600002800005B0102000FC -S3154001AE709FC0400001000000B010000881C7E008F3 -S3154001AE8081E800009DE3BF9803100144C20060B40D -S3154001AE909010001880A0600002800005B0102000CC -S3154001AEA09FC0400001000000B010000881C7E008C3 -S3154001AEB081E800009DE3BF9803100144C20060B0E1 -S3154001AEC09010001880A0600002800005B01020009C -S3154001AED09FC0400001000000B010000881C7E00893 -S3154001AEE081E800009DE3BF9803100144C20060ACB5 -S3154001AEF0901000189210001980A060000280000591 -S3154001AF00B01020009FC0400001000000B0100008B2 -S3154001AF1081C7E00881E80000010000000310006BD2 -S3154001AF20821063E89FC0400001000000031000004A -S3154001AF3082106000819840000310006C8210606CA2 -S3154001AF409FC04000010000000310006B821063D8CF -S3154001AF509FC04000010000008B4800008B31601803 -S3154001AF608A09600380A16003128000070100000086 -S3154001AF708B4440008B31601C80A14000128000064A -S3154001AF80010000007FFFFF31010000007FFF98773D -S3154001AF90010000009C23A0407FFF981A0100000099 -S3154001AFA08210200191D020000100000029000004F8 -S3154001AFB0A68C001432800003A02C001491D02000EE -S3154001AFC0818C00000100000001000000010000002A -S3154001AFD081C4800081CCA00481C3E0080100000047 -S3154001AFE081C1E00801000000A74800008B34E01849 -S3154001AFF08A09600380A160031280000801000000F5 -S3154001B00021100143A0142040A2102003E224000095 -S3154001B0108B4440001080000821100143A0142040B9 -S3154001B020A2102002E224000021200000E604202490 -S3154001B0308B34E0148A09601F27100143A614E038B7 -S3154001B040CA24C0008A01600127100143A614E034D6 -S3154001B050CA24C00027100143A614E03C8A2160029D -S3154001B060CA24C00081C3E0080100000081C3E00892 -S3154001B07001000000834800008330601882086003A5 -S3154001B08080A0600312800006010000008344400056 -S3154001B0900500000882284002A38040008810000075 -S3154001B0A00910006B81C1231C010000009DE3BF987C -S3154001B0B00310006D1B10006DA01061709A13617032 -S3154001B0C080A4000D1A800010A210000D1080000609 -S3154001B0D0C204000080A400111A80000B0100000088 -S3154001B0E0C204000080A0600002BFFFFBA004200450 -S3154001B0F09FC040000100000080A400112ABFFFFA52 -S3154001B100C204000081C7E00881E80000AA27A0B078 -S3154001B110E0256060E2256064E4256068C2256074CC -S3154001B120C43D6078C83D6080CC3D60888540000064 -S3154001B130C425606CF03D6090F43D6098F83D60A098 -S3154001B140FC3D60A8A8102001A92D0010808D001398 -S3154001B15002800013010000008534E001071001431D -S3154001B160C600E038A72CC0038414C0028408A0FF9F -S3154001B17081E000008190A000E03BA000E43BA008F4 -S3154001B180E83BA010EC3BA018F03BA020F43BA028E4 -S3154001B190F83BA030FC3BA03881E8000081C5A008FF -S3154001B1A09C100015051001438410A19CC400800029 -S3154001B1B080A0800002800004010000009FC0800042 -S3154001B1C09203A060818C20008210200283284010C7 -S3154001B1D005100143C400A03485304002821040026C -S3154001B1E08550000080888001028000208328A001CC -S3154001B1F007100143C600E0388530800382104002C3 -S3154001B200820860FF81906000C203A06C818060006B -S3154001B210F01BA090F41BA098F81BA0A0FC1BA0A8B3 -S3154001B220C203A074C41BA078C81BA080CC1BA088F5 -S3154001B230E003A060E203A064E403A06881E80000A3 -S3154001B240E01BA000E41BA008E81BA010EC1BA01803 -S3154001B250F01BA020F41BA028F81BA030FC1BA03833 -S3154001B2601080000F81E00000C203A06C8180600065 -S3154001B270F01BA090F41BA098F81BA0A0FC1BA0A853 -S3154001B280C203A074C41BA078C81BA080CC1BA08895 -S3154001B290E003A060E203A064E403A068818C20007F -S3154001B2A001000000010000000100000081C44000CF -S3154001B2B081CC8000AA27A0B0C2256074C43D6078C5 -S3154001B2C0C83D6080CC3D608885400000C425606CE7 -S3154001B2D0A8102001A92D0010808D001302800013B3 -S3154001B2E0010000008534E00107100143C600E03843 -S3154001B2F0A72CC0038414C0028408A0FF81E000008B -S3154001B3008190A000E03BA000E43BA008E83BA010F0 -S3154001B310EC3BA018F03BA020F43BA028F83BA03022 -S3154001B320FC3BA03881E8000081C5A0089C100015AF -S3154001B330051001438410A19CC400800080A08000B8 -S3154001B34002800004010000009FC080009203A060BB -S3154001B350818C200082102002832840100510014371 -S3154001B360C400A0348530400282104002855000005E -S3154001B37080888001028000198328A00107100143BB -S3154001B380C600E0388530800382104002820860FFA3 -S3154001B39081906000C203A06C81806000C203A074EA -S3154001B3A0C41BA078C81BA080CC1BA08881E80000E4 -S3154001B3B0E01BA000E41BA008E81BA010EC1BA01892 -S3154001B3C0F01BA020F41BA028F81BA030FC1BA038C2 -S3154001B3D01080000881E00000C203A06C81806000FB -S3154001B3E0C203A074C41BA078C81BA080CC1BA08834 -S3154001B3F0818C2000010000000100000001000000D6 -S3154001B40081C4400081CC8000821000089A10380027 -S3154001B41096102000912AE00598034008D40340087D -S3154001B4209132A01880A20001328000089602E00104 -S3154001B4309132A00C900A2FFF80A2000902800007DA -S3154001B4409410000C9602E00180A2E00728BFFFF3AA -S3154001B450912AE0059410200081C3E0089010000A6B -S3154001B4608210000898102000912B20039A00400872 -S3154001B470D60040089132E01880A2000932800008C7 -S3154001B480980320019132E00C900A2FFF80A2000A16 -S3154001B490028000079610000D9803200180A3200F1B -S3154001B4A028BFFFF3912B20039610200081C3E008AB -S3154001B4B09010000BD4022004173FFC00920A400B67 -S3154001B4C0900A800B9132200C921240081100003FE5 -S3154001B4D0901223F0940A8008952AA0049412800BB6 -S3154001B4E0920A400A81C3E008901000099DE3BF9883 -S3154001B4F00310006D82106158DA007FFC80A37FFF44 -S3154001B50002800009A0007FFC8210000D9FC0400010 -S3154001B510A0043FFCC204000080A07FFF12BFFFFCD5 -S3154001B5200100000081C7E00881E800009DE3BF9863 -S3154001B53081C7E00881E8000000000000000000002B -S3154001B54000000000000000000000000000000000B4 -S3154001B55000000002FFFFFFFF0000000000000000A6 -S3154001B56000000002FFFFFFFF000000000000000096 -S3154001B57040080000000000003CD203AF9EE756168B -S3154001B5803E7AD7F29ABCAF4840050220000000003F -S3154001B590430000009DE3BFA07FFF96D70100000056 -S3154001B5A07FFFFFD30100000081C7E00881E800006A -S3154001B5B09DE3BFA07FFF96B20100000081C7E0086E -S3154001B5C081E80000000000000000000000000000CB -S315400200000000000100000000000000004001B56849 -S315400200102000000000000000000000000000000078 +S315400174A0A1800000E8180000AC100000AE100000FA +S315400174B0EC04C000EE04E00480A500161280010031 +S315400174C080A54017128000FE01000000A54400007F +S315400174D0A534A00BA40CA00780A4A001128000F83B +S315400174E001000000A0100000A1844000A610000089 +S315400174F0A1800000A210200AA1844000A41000002F +S31540017500A1800000E8180000AC100000AE10000099 +S31540017510EC04C012EE04E00480A50016128000E8D7 +S3154001752080A54017128000E601000000A544000036 +S31540017530A534A00BA40CA00780A4A002068000E0FD +S315400175400100000021100120A0142200EC1C0000C3 +S31540017550A0042008E81C0000A1844000A6100000F9 +S31540017560A1800000A210200EA1844000A4100010AA +S31540017570AC100000AE100000A18000000100000028 +S3154001758001000000EC3C8013AC100000AE1000007E +S31540017590E81CC01280A50016128000C980A54017BC +S315400175A0128000C701000000A5440000A534A00BCD +S315400175B0A40CA00780A4A004128000C10100000011 +S315400175C010800002010000008B4440008A09601FC0 +S315400175D080A160010280000A8C1000059DE3BFA0D6 +S315400175E08AA1600116BFFFFE0100000081E800008C +S315400175F08CA1A00116BFFFFE0100000001000000A2 +S3154001760001000000A023A080A02C20078E100010AE +S31540017610A3480000E2240000C2242004C43C200800 +S31540017620C83C2010CC3C2018F03C2020F43C2028BB +S31540017630F83C2030FC3C2038D03C2040D43C20480B +S31540017640D83C2050DC3C2058A5500000E424206062 +S315400176508010200882102001841020028610200309 +S31540017660881020048A1020058C1020068190000085 +S31540017670A42C601F818C80000100000001000000E5 +S3154001768001000000030040408210610184100000A7 +S3154001769086100000894440008809201F8610000496 +S315400176A0A010000284004002A210000284004002A1 +S315400176B0A410000284004002A61000028400400289 +S315400176C0A810000284004002AA1000028400400271 +S315400176D0AC10000284004002AE1000028400400259 +S315400176E09010000284004002921000028400400281 +S315400176F09410000284004002961000028400400269 +S3154001770098100002840040029A1000028400400250 +S315400177109C100002840040029E1000028400400238 +S3154001772081E0000086A0E00116BFFFDE01000000F7 +S31540017730030040408210610184100000861000045D +S3154001774080A400021280003F8400400280A44002CF +S315400177501280003C8400400280A4800212800039DD +S315400177608400400280A4C002128000368400400298 +S3154001777080A50002128000338400400280A54002A9 +S31540017780128000308400400280A580021280002DC4 +S315400177908400400280A5C0021280002A8400400273 +S315400177A080A20002128000278400400280A240028B +S315400177B0128000248400400280A2800212800021AF +S315400177C08400400280A2C0021280001E8400400252 +S315400177D080A300021280001B8400400280A3400265 +S315400177E0128000188400400280A380021280001596 +S315400177F08400400280A3C00212800012840040022D +S3154001780081E0000086A0E00116BFFFCE0100000026 +S3154001781080A020001280000B80A0FFFF128000098B +S3154001782080A160051280000780A1A0061280000594 +S3154001783001000000A010000710800006C02420208F +S31540017840A01000079010200110800002D0242020B3 +S3154001785082100007C40040008188800001000000BA +S315400178600100000001000000C4186008C81860103B +S31540017870CC186018F0186020F4186028F8186030A9 +S31540017880FC186038D0186040D4186048D818605049 +S31540017890DC186058E4006060C20060048194800096 +S315400178A0010000000100000001000000A0100007D7 +S315400178B0F004202081C7E00881E8000010BFFFFCEA +S315400178C0B01000000100000081D8200081C3E0080B +S315400178D0010000000328000084106004952AA00DD1 +S315400178E0D0204000922270009202400AD2208000AD +S315400178F081C3E0080100000003100124C40061AC0B +S3154001790003100124C200619C852A40028610200191 +S315400179108328C00182007FFF900A00019000800801 +S315400179208213C0007FFFE74C9E104000010000001B +S3154001793003100124C40061AC03100124C200619C00 +S31540017940852A4002861020018328C00182007FFFDC +S31540017950900A0001900080088213C0007FFFE73A39 +S315400179609E104000010000009DE3BFA02D100124A0 +S31540017970C205A1A0A410001880A0600004800020C8 +S31540017980B01020012F1001242B100124D005E1ACA9 +S3154001799029100124AC15A1A0AE15E1ACAA15619C34 +S315400179A0A815218CA0102000A2102000A6102001AD +S315400179B0C2054000832CC00182007FFF820C8001FA +S315400179C0912C00087FFFE72090020001C2050000CC +S315400179D0901A0012820A000180A00001C2058000AF +S315400179E0A2647FFFA004200180A0401034BFFFF1B4 +S315400179F0D005C00080A00011B0603FFF81C7E008FC +S31540017A0081E800009DE3BFA003100124C40061ACDE +S31540017A1003100124C200619CB32E40028410200150 +S31540017A208328800182007FFF820E00019210001A96 +S31540017A307FFFE70B9006400181C7E00881E800001F +S31540017A409DE3BFA003100124C40061AC03100124CF +S31540017A50C200619CB32E400284102001832880011C +S31540017A6082007FFF820E00019210001A7FFFE6F826 +S31540017A709006400181C7E00881E800000310012417 +S31540017A80C400619403100124C2006190852A40021A +S31540017A90861020018328C00182007FFF900A0001E1 +S31540017AA0900080088213C0007FFFE6E39E104000ED +S31540017AB0010000009DE3BFA003100124C4006194AE +S31540017AC003100124C2006190B32E400284102001AC +S31540017AD08328800182007FFF820E00019210001AE6 +S31540017AE07FFFE6D79006400181C7E00881E80000A4 +S31540017AF09DE3BFA003100124C40061940310012437 +S31540017B00C2006190B32E4002841020018328800177 +S31540017B1082007FFF820E00019210001A7FFFE6C4A9 +S31540017B209006400181C7E00881E800000310012466 +S31540017B30C400619403100124C2006190852A400269 +S31540017B40861020018328C00182007FFF900A000130 +S31540017B50900080088213C0007FFFE6B39E1040006C +S31540017B6001000000033FFFBF821063089DE38001CF +S31540017B700310004482106360C227BFEC0310004427 +S31540017B80821063A02F100044C227BFF4AE15E34014 +S31540017B9035100044EE27BFE8B416A38090102006A6 +S31540017BA07FFFA777F427BFF07FFFE69B9010200069 +S31540017BB0213FFFBF920A3FF0A01423689010200096 +S31540017BC07FFFE697A0078010230000307FFFE692F3 +S31540017BD090102000808A001112BFFFFD01000000B5 +S31540017BE081D82000230000307FFFE68B90102000D3 +S31540017BF0808A001112BFFFFD0100000023100124FD +S31540017C007FFFE6859010200013002040A410000855 +S31540017C109212600F921200097FFFE68190102000B8 +S31540017C207FFFE67D90102008D02461887FFFE67AA9 +S31540017C309010200C09100124C40461889938A014BD +S31540017C4013100124980B200F8603200AC621219088 +S31540017C50091001240310012496102400C621219401 +S31540017C60893A20148809200F9401200AD422619C64 +S31540017C70131001242D100124D0206198D42261AC27 +S31540017C8015100124932AC004833A2018D222A1A8B0 +S31540017C901510012482086003820060011B20000048 +S31540017CA08801200837100124C225A1A09201200293 +S31540017CB0821020019328400992234009D222A18CA7 +S31540017CC01510012487284003913A20109A23400336 +S31540017CD0992AC00CDA26E1A4D822A184A20A200757 +S31540017CE08738A018A93CA00CBA210011A408E003CA +S31540017CF08538A010A88D2003AA08A007A404A001D6 +S31540017D00AB284015A3284011AB2840159010001709 +S31540017D10AA057FFFA610200002800123B807BFE80D +S31540017D20A6042020030048D182106167C224C00006 +S31540017D3003226AF3821061EFC2242024C20C202060 +S31540017D4080A0600102800004010000007FFFA713AC +S31540017D509010201AC20C202180A0602302800004CA +S31540017D60010000007FFFA70D9010201BC20C2022AE +S31540017D7080A0604502800004010000007FFFA70744 +S31540017D809010201CC20C202380A060670280000452 +S31540017D90010000007FFFA7019010201DC20C202486 +S31540017DA080A0608902800004010000007FFFA6FBDD +S31540017DB09010201EC20C202580A060AB02800004DA +S31540017DC0010000007FFFA6F59010201FC20C20265F +S31540017DD080A060CD02800004010000007FFFA6EF75 +S31540017DE090102020C20C202780A060EF0280000462 +S31540017DF0010000007FFFA6E990102021C214202037 +S31540017E00832860108330601080A0612302800004C3 +S31540017E10010000007FFFA6E190102022C414202219 +S31540017E208528A010030000118530A01082106167DB +S31540017E3080A0800102800004010000007FFFA6D7D8 +S31540017E4090102023C41420248528A010030000226A +S31540017E508530A010821061AB80A0800102800004B1 +S31540017E60010000007FFFA6CD90102024C4142026D7 +S31540017E708528A010030000338530A010821061EFE1 +S31540017E8080A0800102800005821020307FFFA6C3BA +S31540017E909010202582102030C22C2020030C08D1BE +S31540017EA082106167C404C00080A080010280000581 +S31540017EB0821020317FFFA6B99010202782102031F1 +S31540017EC0C22C2021030C0C5182106167C404C000EE +S31540017ED080A0800102800005821020327FFFA6AF7C +S31540017EE09010202882102032C22C2022030C0C4CE8 +S31540017EF082106267C404C00080A080010280000530 +S31540017F00821020337FFFA6A59010202982102033AE +S31540017F10C22C2023030C0C4C82106233C404C000D3 +S31540017F2080A0800102800005821020347FFFA69B3D +S31540017F309010202A82102034C22C2024030D2AF3CB +S31540017F40821061EFC404202480A0800102800005D4 +S31540017F50821020357FFFA6919010202B821020356C +S31540017F60C22C2025030D0D73821061EFC404202419 +S31540017F7080A0800102800005821020367FFFA687FF +S31540017F809010202C82102036C22C2026030D0D4D38 +S31540017F90821062EFC404202480A080010280000583 +S31540017FA0821020377FFFA67D9010202D821020372A +S31540017FB0C22C2027030D0D4D82106237C4042024A4 +S31540017FC080A0800102800005030000107FFFA67398 +S31540017FD09010202E0300001082106041C2342020F0 +S31540017FE00310104C82106233C404C00080A080018B +S31540017FF002800005030000107FFFA6689010202F25 +S315400180000300001082106243C23420220310105034 +S3154001801082106243C404C00080A080010280000532 +S31540018020030000117FFFA65D901020300300001170 +S3154001803082106045C23420240311114D82106237EB +S31540018040C404202480A080010280000503000011A1 +S315400180507FFFA65290102031030000118210624723 +S31540018060C23420260311115182106247C4042024D0 +S3154001807080A0800102800004010000007FFFA64726 +S315400180809010203281D82000C205A1A080A06000B6 +S315400180900480001B80A5200025100124191001240D +S315400180A0A414A1A0981321AC8810200080A46000DC +S315400180B09B2920100480000C82102000C40300007C +S315400180C085290002840040028528A0028610400DC1 +S315400180D082006001C624000280A0401132BFFFF930 +S315400180E0C4030000C20480008801200180A040042E +S315400180F014BFFFF080A4600080A5200012800028F4 +S31540018100230000107FFFE54490102000808A001173 +S3154001811012BFFFFDC205A1A080A060000480001B24 +S31540018120010000002510012427100124A414A1A058 +S31540018130A614E18C10800006A2102000A204600162 +S3154001814080A040110480001101000000921000112E +S315400181507FFFFDF890100010C204C000901C00087B +S31540018160808A000132BFFFF6C20480007FFFA60B62 +S3154001817090102033C2048000A204600180A0401107 +S3154001818014BFFFF4921000117FFFE52390102000E9 +S315400181909212200F7FFFE5229010200081C7E00850 +S315400181A091E820009FC20000A604E00180A480134C +S315400181B004800008832CE002D00700019FC2000022 +S315400181C0A604E00180A4801314BFFFFC832CE002C7 +S315400181D07FFFE51190102000B616E1A4920A3FFCFC +S315400181E0A8102000901020007FFFE50DB810200058 +S315400181F0B207BFE810800005A610200080A48013B6 +S3154001820024800012A8052001921000137FFFFE482A +S3154001821090100017820A001580A0401512BFFFF882 +S31540018220A604E001C206C000901DC008900A0001E4 +S3154001823080A00008B8673FFF80A4801314BFFFF4F5 +S3154001824092100013A805200180A480140480000424 +S31540018250832D200210BFFFE8EE0640017FFFE4EECA +S3154001826090102000A6100008901020007FFFE4EC3B +S315400182709214E00380A720000280018301000000E0 +S31540018280A73CE013808CE0031280018501000000C9 +S3154001829081D82000250000307FFFE4DF90102000C8 +S315400182A0808A001212BFFFFDAA100008C205A1A0D4 +S315400182B080A060000480000F053FFFBF2510012408 +S315400182C0A6102000A414A1A0921000139010001033 +S315400182D07FFFFDDC94102000C2048000A604E0016B +S315400182E080A0401314BFFFFA92100013053FFFBF51 +S315400182F0821020008410A36884078002C0204002B7 +S315400183008200600480A0607C12BFFFFD0100000076 +S3154001831082102005C224000082102001C2242004BC +S3154001832082102002C224200882102003C224200C7D +S31540018330901000107FFFFD8DA804200480A220002C +S315400183400280014A01000000C204000080A06005CD +S3154001835002800004010000007FFFA59090102006D6 +S315400183607FFFFD829010001080A2200012800199AB +S31540018370C205A1A080A06000048000120100000097 +S3154001838025100124A6102000A414A1A092100013C8 +S31540018390941020007FFFFD9C901000109210001356 +S315400183A0901000147FFFFD9894102000C2048000B5 +S315400183B0A604E00180A0401314BFFFF692100013FB +S315400183C07FFFE4AB90100010A60420207FFFE4A8B5 +S315400183D0901000137FFFE4A6900420407FFFE4A4A1 +S315400183E090042060C205A1A080A0600004800180A5 +S315400183F0B810200025100124A414A1A0AE1020001D +S31540018400921000177FFFFD3D90100010C2048000BE +S31540018410901A200580A00008AE05E001B8673FFF2D +S3154001842080A0401714BFFFF89210001780A72000C4 +S315400184300280016F01000000033FFFBF82106368A5 +S31540018440C41F8001C43FBFA8C207BFA880A0600562 +S315400184501280000601000000C207BFAC80A0600187 +S3154001846002800005C205A1A07FFFA54C90102009FE +S31540018470C205A1A080A06000048000382510012417 +S31540018480B8102000A414A1A0AE102000921000172D +S315400184907FFFFD1A90100014C2048000901A20013B +S315400184A080A00008AE05E001B8673FFF80A04017F5 +S315400184B014BFFFF89210001780A7200112800027F1 +S315400184C0833D6013808860031280002A010000000A +S315400184D0C2042004C224000082102005C2240000E8 +S315400184E090102001D024200482102002C2242008AA +S315400184F082102003C224200C92100011400003B3C5 +S31540018500912A001DA52A2002032EEEEE821063BB9E +S31540018510C22400127FFFFD159010001080A220009A +S315400185201280013701000000C4040012032EEEEE52 +S31540018530A93D600C821063BB80A0800102BFFDFA99 +S31540018540A80D2003901020127FFFA514A93D600CB1 +S3154001855010BFFDF5A80D20037FFFA5109010200A3E +S31540018560833D60138088600302BFFFDA010000008B +S315400185707FFFE42990102000033FFFF08210603F07 +S31540018580920A00017FFFE4269010200092102000FD +S3154001859094102000AA07BFA87FFFFD1B901000156D +S315400185A07FFFE41D901020000303C00092120001DA +S315400185B07FFFE41B90102000C205A1A080A06000AF +S315400185C00480000F8210200125100124A8102000EC +S315400185D0A414A1A092100014901000157FFFFD0A6B +S315400185E094102005C2048000A805200180A04014F3 +S315400185F014BFFFFA9210001482102001C22FBFA8A7 +S315400186000300400082106005C407BFA880A0800116 +S3154001861002800004010000007FFFA4E09010200BBF +S315400186207FFFE3FD90102000833A20068208600315 +S3154001863080A0600102800004010000007FFFA4D7F2 +S315400186409010200C7FFFE3F4901020000303C0003C +S3154001865025000030922A00017FFFE3F190102000AF +S315400186607FFFE3ED90102000808A001212BFFFFDCC +S3154001867092102000941020007FFFFCE3901000151B +S315400186807FFFE3E5901020002503C00092120012FF +S315400186907FFFE3E3901020007FFFE3DF901020008F +S315400186A0808A001202BFFFFDAE100008C205A1A0DC +S315400186B080A060000480001025100124B81020011C +S315400186C0B92F0011A414A1A0B8073FFFA81020009C +S315400186D092100014901000157FFFFCDA9410001CD4 +S315400186E0C2048000A805200180A0401414BFFFFAEF +S315400186F0921000141303C00090102000922DC0095F +S315400187007FFFE3C72503C0007FFFE3C3901020002E +S31540018710808A001212BFFFFD01000000C407BFA8F6 +S31540018720030040008210600580A0800102800004A1 +S31540018730010000007FFFA4999010200D7FFFE3B652 +S3154001874090102000833A20088208600380A06001CF +S3154001875002800005841020117FFFA4909010200F05 +S3154001876084102011861020559010200025000030DD +S31540018770C43FBFF87FFFE3A801000000033C3FFF71 +S315400187800503C0008210633F820A00019010200059 +S315400187907FFFE3A3921040027FFFE39F90102000EA +S315400187A0808A001212BFFFFDAE07BFF87FFFE3BE0E +S315400187B090100017C205A1A080A060000480000FA0 +S315400187C00100000025100124AA07BFFCA414A1A0A2 +S315400187D0A810200092100014901000157FFFFC8A0B +S315400187E094102055C2048000A805200180A04014A1 +S315400187F014BFFFFA921000147FFFE3AB90100017ED +S3154001880080A220110280008180A260557FFFA4636F +S31540018810901020107FFFE38090102000833A2006BD +S315400188208208600380A0600102800004A410000851 +S315400188307FFFA45A90102010133C3FF09010200067 +S315400188409212603F920C80097FFFE375250000304C +S315400188507FFFE37190102000808A001212BFFFFD56 +S31540018860AA10000830BFFF1B7FFFA44C90102005C3 +S31540018870C204000080A0600512BFFEB801000000DE +S3154001888030BFFEB87FFFA44590102001A73CE013FE +S31540018890808CE00302BFFE7F010000007FFFE35EA4 +S315400188A090102000133FFFF0AA1000089212603F7B +S315400188B0920A00097FFFE35A901020007FFFE2B140 +S315400188C0A810001A0303C000133C3FFF901020007C +S315400188D0921263FC920D4009A61020007FFFE350DF +S315400188E09212400192100013901000147FFFFC7207 +S315400188F094102000A604E00180A4801334BFFFFB3E +S3154001890092100013901020001303C0007FFFE34430 +S31540018910921540097FFFE29B010000007FFFE33E85 +S3154001892090102000833A200A8208600380A06001EB +S3154001893002800005250000307FFFA4189010200218 +S31540018940250000307FFFE33490102000808A00121A +S3154001895012BFFFFD0100000001000000920A3FFC2A +S315400189607FFFE32F901020009010001492102000FA +S315400189707FFFFC6094102000010000007FFFE3268A +S3154001898090102000033C3FFF821063FC820A0001E5 +S31540018990901020007FFFE322921060030100000047 +S315400189A07FFFE278010000007FFFE31B901020006B +S315400189B0833A200C8208600380A0600102BFFE3525 +S315400189C0010000007FFFA3F59010200330BFFE3168 +S315400189D07FFFA3F290102007C205A1A080A06000EE +S315400189E034BFFE692510012430BFFE767FFFA3EB1D +S315400189F09010200810BFFE92033FFFBF7FFFA3E701 +S31540018A009010201130BFFEC912BFFF810100000046 +S31540018A1030BFFF819DE3BFA07FFFFC5301000000F3 +S31540018A2013002040B01000089212600F7FFFE2FC55 +S31540018A309010200081C7E00881E800009DE3BFA0B7 +S31540018A407FFFA3C81100412C82102007EC062004A9 +S31540018A50E0062004C2262008AC0DA003AC05A00107 +S31540018A6001000000C02600007FFFA3C59010200A28 +S31540018A700300020084103FFFB8060001C42600012E +S31540018A80A13C2002292AAAAAA00C27FFA81522AA9E +S31540018A902B155555A12C2008AA1561558810001C87 +S31540018AA0C2060001A8084014AA0840159A102000E1 +S31540018AB080A420002280000D9A03600186012020B7 +S31540018AC08410000482102000EA208000E820C000C3 +S31540018AD0820060108400A04080A0401006BFFFFBCA +S31540018AE08600E0409A03600180A5800D14BFFFF126 +S31540018AF0880120043B000200AE102000BA17602016 +S31540018B00BA06001D80A4200022800017AE05E001B0 +S31540018B10A610001CA410001DA2102000C204C00013 +S31540018B2080A0401502800004010000007FFFA39B46 +S31540018B3090102001C204800080A0401422800005CC +S31540018B40A20460107FFFA39590102001A20460103B +S31540018B50A604E04080A4401006BFFFF1A404A04053 +S31540018B60AE05E00180A5801714BFFFE7BA07600490 +S31540018B707FFFA3839010200C2F0008001B1555552D +S31540018B80AE060017092AAAAA9A136155881122AA84 +S31540018B9098100017961020001500020080A42000AE +S31540018BA02280000D9602E001860320048410000C09 +S31540018BB082102000DA208000C820C00082006002B6 +S31540018BC08400A00880A0401006BFFFFB8600E00895 +S31540018BD09602E00180A5800B14BFFFF19803000ABD +S31540018BE02B155555292AAAAAAA156155A81522AAAF +S31540018BF0BA1020003900020080A42000228000170C +S31540018C00BA076001A605E004A4100017A2102000CF +S31540018C10C204800080A040150280000401000000CB +S31540018C207FFFA35E90102003C204C00080A04014C1 +S31540018C3022800005A20460027FFFA3589010200302 +S31540018C40A2046002A404A00880A4401006BFFFF15C +S31540018C50A604E008BA07600180A5801D14BFFFE79E +S31540018C60AE05C01C2F0008001B155555AE15E00476 +S31540018C70092AAAAAAE0600179A136155881122AA93 +S31540018C8098100017961020001500020080A42000BD +S31540018C902280000D9602E00186033FFC8410000C01 +S31540018CA082102000DA208000C820C00082006002C5 +S31540018CB08400A00880A0401006BFFFFB8600E008A4 +S31540018CC09602E00180A5800B14BFFFF19803000ACC +S31540018CD02B155555292AAAAAAA156155A81522AABE +S31540018CE0BA1020003900020080A42000228000171B +S31540018CF0BA076001A605FFFCA4100017A2102000C8 +S31540018D00C204800080A040150280000401000000DA +S31540018D107FFFA32290102004C204C00080A040140B +S31540018D2022800005A20460027FFFA31C901020044C +S31540018D30A2046002A404A00880A4401006BFFFF16B +S31540018D40A604E008BA07600180A5801D14BFFFE7AD +S31540018D50AE05C01C82102005C22620080320000053 +S31540018D60C226000081C7E00881E80000033FFFBF3B +S31540018D70821063609DE380017FFFFAD425200000C5 +S31540018D804000016E2D0000307FFFE2239010200845 +S31540018D90AA1000087FFFE2209010200C7FFFA31B42 +S31540018DA0AE100008912A20047FFFA2F59002200C04 +S31540018DB082102001873D60148608E00F8600E00A94 +S31540018DC0A73D6010A13D6018853DE014A60CE00763 +S31540018DD08408A00FA604E0028400A00AA728401335 +S31540018DE0A00C2003A93DE010A0042001A80D2007F6 +S31540018DF0A12C0003A8052002AA2480108604FFFFA7 +S31540018E00A9284014A33DE01882053FFFA20C600348 +S31540018E10A2046001AA154003A32C4002A424801198 +S31540018E20A41480017FFFE1FC90102000808A001687 +S31540018E3012BFFFFD133FFFBF90100011921263C096 +S31540018E4015155555920780097FFFE1869412A15564 +S31540018E5080A220001280007001000000133FFFBF76 +S31540018E6090100011921263C0152AAAAA920780098E +S31540018E707FFFE1909412A2AA80A220001280006393 +S31540018E80010000007FFFA2E101000000912A2004B9 +S31540018E907FFFA2BB9002200A40000125010000008D +S31540018EA0032AAAAA981062AA8210620090100011A1 +S31540018EB0920C8001941000127FFFE1A796100014D6 +S31540018EC080A220001280004D010000000315555577 +S31540018ED09810615582106100901000119410001293 +S31540018EE0961000147FFFE19C920C800180A2200025 +S31540018EF01280003F010000007FFFA2C40100000074 +S31540018F00912A20047FFFA29E9002200B9010001010 +S31540018F10131555557FFFE1779212615580A22000C6 +S31540018F201280002F0100000090100010132AAAAAF7 +S31540018F307FFFE170921262AA80A220001280002572 +S31540018F40010000007FFFA2B101000000912A200428 +S31540018F507FFFA28B900220099010001092100015FD +S31540018F6094100013172AAAAA7FFFE16E9612E2AA6D +S31540018F7080A2200012800013010000009010001012 +S31540018F809210001594100013171555557FFFE16592 +S31540018F909612E15580A220000280000401000000E3 +S31540018FA07FFFA27E901020087FFFFA48B010200074 +S31540018FB0400000E20100000081C7E00881E80000AE +S31540018FC07FFFA2769010200710BFFFEE9010001091 +S31540018FD07FFFA2729010200630BFFFDB7FFFA26F9A +S31540018FE09010200510BFFFD2901000107FFFA26B9A +S31540018FF09010200430BFFFC17FFFA268901020036C +S3154001900010BFFFB4031555557FFFA264901020028F +S3154001901030BFFF9D7FFFA2619010200110BFFF91DD +S31540019020133FFFBF81C3E0089144400080800000A8 +S31540019030151001209412A1EC9010200092102246A6 +S3154001904081800000010000000100000001000000D5 +S31540019050D00280009122400881C3E008010000004F +S3154001906081800000901020018090200180F0200135 +S315400190701280004B010000000100000001000000C9 +S31540019080010000008090200180F8200112800044F8 +S315400190900100000001000000010000000100000085 +S315400190A08090200180FA3FFF010000001680003CBD +S315400190B00100000001000000010000000100000065 +S315400190C08180000090102001809020010100000065 +S315400190D080D0200112800032010000000100000012 +S315400190E0010000000100000080D220010280002C16 +S315400190F00100000080D23FFF1680002901000000D8 +S3154001910080DA3FFF9340000080A27FFF1280002457 +S315400191100100000080D23FFF934800009332601463 +S31540019120920A600F80A260081280001D01000000B3 +S315400191308180000090102001945220049452A00492 +S315400191409452A00496A2A04012800015010000008E +S31540019150818000009010200280A000003280001023 +S315400191609052000880A220021280000D01000000EA +S31540019170818000009010200280A0000001000000C4 +S31540019180328000079052000880A22002128000041B +S315400191900100000081C3E0089010200181C3E0086E +S315400191A0901000001315555592126155A582400045 +S315400191B0010000000100000001000000954480000C +S315400191C080A2400A1280004301000000923A40000A +S315400191D0A5824000010000000100000001000000DE +S315400191E09544800080A2400A1280003A01000000A6 +S315400191F01100003F901223FFA580000081800000EE +S3154001920001000000010000000100000093F23FFF51 +S315400192109A10000993F23FFF93F23FFF93F23FFF0B +S3154001922093F23FFF93F23FFF93F23FFF93F23FFFEB +S315400192309940000097448000153FFC009412A00815 +S3154001924080A2400A1280002380A2400B1280002196 +S3154001925080A320071280001F113FFF80901220013A +S3154001926080A340081280001B1100003F901223FF8B +S31540019270A58000008180000001000000010000007F +S315400192800100000093FA3FFF93FA3FFF93FA3FFF35 +S3154001929093FA3FFF93FA3FFF93FA3FFF93FA3FFF5B +S315400192A093FA3FFF994000009744800080A26008EE +S315400192B01280000880A260081280000680A3200068 +S315400192C0128000040100000081C3E00890102001D3 +S315400192D081C3E008901000008180000090102002B8 +S315400192E080A00000328000109072000880A2200207 +S315400192F01280000D010000008180000090102002C4 +S3154001930080A0000001000000328000079072000832 +S3154001931080A22002128000040100000081C3E008FF +S315400193209010200181C3E00890100000C0A00040C9 +S3154001933081C3E00801000000110020409012200F77 +S31540019340D0A0004081C3E008010000009DE3BFA01A +S315400193507FFFE0B190102008A21000087FFFE0AE29 +S315400193609010200CA0100008C0A00040833C60145F +S315400193708208600F8200600A913C6018900A2003BF +S31540019380900220017FFFE01B912A0001833C2014BB +S315400193908208600F8200600A913C2018900A2003DF +S315400193A0900220017FFFE021912A00017FFFF947CA +S315400193B001000000110020409012200FD0A0004073 +S315400193C081C7E00881E80000981200098182000007 +S315400193D09AAB2FFF02800025988800009923000947 +S315400193E09923000999230009992300099923000922 +S315400193F09923000999230009992300099923000912 +S315400194009923000999230009992300099923000901 +S3154001941099230009992300099923000999230009F1 +S3154001942099230009992300099923000999230009E1 +S3154001943099230009992300099923000999230009D1 +S3154001944099230009992300099923000999230009C1 +S3154001945099230009992300099923000999230000BA +S3154001946081C3E0089140000099230009992300092E +S315400194709923000999230009992300099923000991 +S315400194809923000999230009992300099923000981 +S315400194909923000999230009992300009B40000064 +S315400194A0992B200C9B33601481C3E0089013400C28 +S315400194B01080000B8610200080924008168000081C +S315400194C086100008809240001680000480920000B9 +S315400194D01680000392200009902000089A924000CD +S315400194E0128000059610000891D0200281C3E00841 +S315400194F09010000080A2C00D0A80009594100000D3 +S315400195000302000080A2C0010A80002898100000D2 +S3154001951080A340011A80000D841020019B2B60041A +S3154001952010BFFFFC980320019A83400D1A80000763 +S315400195308400A001832860049B3360019A034001A3 +S31540019540108000078420A00180A3400B0ABFFFF7CB +S3154001955001000000028000020100000084A0A00179 +S3154001956006800076010000009622C00D941020016D +S315400195701080000A01000000952AA001068000051E +S315400195809B3360019622C00D108000049402A00115 +S315400195909602C00D9422A00184A0A00116BFFFF738 +S315400195A08092C000308000659B2B600480A3400BF5 +S315400195B008BFFFFE988320010280006598232001A1 +S315400195C08092C000952AA0040680002F9B3360013B +S315400195D096A2C00D068000179B33600196A2C00D6E +S315400195E00680000B9B33600196A2C00D06800005E4 +S315400195F09B33600196A2C00D108000509402A00FCB +S315400196009682C00D1080004D9402A00D9682C00D29 +S31540019610068000059B33600196A2C00D108000476D +S315400196209402A00B9682C00D108000449402A009BA +S315400196309682C00D0680000B9B33600196A2C00D39 +S31540019640068000059B33600196A2C00D1080003B49 +S315400196509402A0079682C00D108000389402A0059E +S315400196609682C00D068000059B33600196A2C00D0F +S31540019670108000329402A0039682C00D1080002F04 +S315400196809402A0019682C00D068000179B336001AB +S3154001969096A2C00D0680000B9B33600196A2C00DB9 +S315400196A0068000059B33600196A2C00D1080002301 +S315400196B09402BFFF9682C00D108000209402BFFD28 +S315400196C09682C00D068000059B33600196A2C00DAF +S315400196D01080001A9402BFFB9682C00D10800017BD +S315400196E09402BFF99682C00D0680000B9B33600140 +S315400196F096A2C00D068000059B33600196A2C00D5F +S315400197001080000E9402BFF79682C00D1080000BA8 +S315400197109402BFF59682C00D068000059B33600119 +S3154001972096A2C00D108000059402BFF39682C00D2B +S31540019730108000029402BFF198A3200116BFFFA238 +S315400197408092C000268000029602C0098090C00027 +S31540019750268000029620000B81C3E0089010000B82 +S3154001976092100008941020009010200096102000BE +S315400197708213C000400000429E10400001000000DC +S315400197809DE3BFA080A6A00F9A100018881000196B +S31540019790088000068610001A8216401880886003E9 +S315400197A00280000D8410001980A0E00002800008AC +S315400197B082102000C4090001C42B400182006001CF +S315400197C080A0400332BFFFFDC409000181C7E00804 +S315400197D081E8000082100018DA008000DA2040009B +S315400197E08600FFF080A0E00FDA00A004DA206004D2 +S315400197F0DA00A008DA206008DA00A00CDA20600C52 +S315400198008400A01018BFFFF582006010B406BFF0B7 +S315400198109B36A004832B60049A036001B426800121 +S315400198209B2B600480A6A0038806400D8610001A73 +S3154001983008BFFFDE9A06000D82102000C401000118 +S31540019840C4234001820060048426800180A0A003D5 +S3154001985038BFFFFCC4010001B406BFFC8336A00239 +S315400198608728600282006001862680038328600281 +S315400198708801000110BFFFCD9A0340019DE3BFA0BF +S3154001988021100123400005F7901420EC03100070CD +S31540019890E2006090D004614880A220002280003D11 +S315400198A09004614CC202200480A0601F1480001EF7 +S315400198B00100000080A620000280001284006002A0 +S315400198C0C4022004820060228600A04289286002E8 +S315400198D08728E002C2022188F4220004F62200030E +S315400198E0861020018728C00282104003C2222188A7 +S315400198F080A62002028000198210000284006002C4 +S315400199008528A00282006001C2222004F2220002C0 +S31540019910B0102000400005E9901420EC81C7E00812 +S3154001992081E80000400000289010219080A220008C +S315400199302280001A901420ECC2046148C222000021 +S31540019940D0246148C0222004C0222188C022218C13 +S3154001995010BFFFD982102000C202218C861040031D +S3154001996082100002840060028528A002C622218C52 +S3154001997082006001F2220002C2222004B0102000BF +S31540019980400005CE901420EC81C7E00881E8000034 +S3154001999010BFFFC5D0246148400005C8B0103FFF45 +S315400199A081C7E00881E800009210000803100120F9 +S315400199B0D00062208213C000400002179E10400072 +S315400199C0010000009210000803100120D00062201F +S315400199D08213C000400000039E10400001000000B9 +S315400199E09DE3BFA0841020008206600B80A0601614 +S315400199F008800004A0102010A0087FF88534201F9D +S31540019A0080A400190A8000468088A0FF1280004485 +S31540019A1001000000400001AF9010001880A421F71A +S31540019A20188000418334200923100121A214637850 +S31540019A3082044010E400600C80A480010280010F82 +S31540019A4099342003C604A004C404A00CC204A0088F +S31540019A508608FFFC86048003C800E00488112001C3 +S31540019A60C220A008C820E004C420600C9010001851 +S31540019A7040000192B004A00881C7E00881E80000D7 +S31540019A80E6046008E804E004A80D3FFC82250010C6 +S31540019A9080A0600F148000D280A40014031001231B +S31540019AA02F100122EA006160C205E384AA05601015 +S31540019AB080A07FFF02800004AA054010AA056FFF1F +S31540019AC0AA0D7000901000184000018892100015F0 +S31540019AD080A23FFF02800009A41000088404C0143C +S31540019AE080A08008088000EC2D10012380A440133B +S31540019AF0028000EAC205A16CC2046008C400600489 +S31540019B008408BFFC8220801080A0600F148001224F +S31540019B1080A40002400001699010001881C7E00846 +S31540019B2091E820009934200380A060000280000F54 +S31540019B30872B200380A06004088000929934200678 +S31540019B409800605B80A0601408800008872B200382 +S31540019B5080A060541880011380A061549934200C70 +S31540019B609803206E872B200323100121A2146378CA +S31540019B7086044003E400E00C80A0C0123280000B52 +S31540019B80C404A004108000109803200136800068A8 +S31540019B90C604A00CE404A00C80A0C0122280000AD6 +S31540019BA098032001C404A0048408BFFC82208010CD +S31540019BB080A0600F04BFFFF680A0600098033FFFBE +S31540019BC098032001071001218610E380E400E00894 +S31540019BD080A0C0122280002AC2046004C404A004EA +S31540019BE08408BFFC8220801080A0600F1480008A08 +S31540019BF080A06000C620E00C16800059C620E0080F +S31540019C0080A0A1FF288000628530A0038330A0098F +S31540019C1080A06004188000E98800605B8930A00656 +S31540019C20880120389B2920039A04400DC20360080D +S31540019C3080A0400D32800008C8006004108000E911 +S31540019C40DA04600480A3400122800008C400600C4D +S31540019C50C800600488093FFC80A080042ABFFFFA3F +S31540019C60C2006008C400600CC424A00CC224A00831 +S31540019C70E420600CE420A008C2046004853B200275 +S31540019C80881020018929000280A040042ABFFF7E56 +S31540019C90E6046008808840042280004B980B3FFC14 +S31540019CA0952B20039610000C9404400A9A10000A42 +S31540019CB0E403600C80A340123280000BC404A0046C +S31540019CC0108000589602E00136800019C604A00CA7 +S31540019CD0E404A00C80A34012228000529602E001C7 +S31540019CE0C404A0048408BFFC8220801080A0600FB9 +S31540019CF004BFFFF680A06000DA04A00CC804A008E7 +S31540019D0084048010A0142001C8236008DA21200CA5 +S31540019D10C420E00CC420E008E024A004C220800155 +S31540019D20C620A00810800010C620A00CC204A008BE +S31540019D3084048002C800A00488112001C220E008E2 +S31540019D40C820A004C620600C90100018400000DB1B +S31540019D50B004A00881C7E00881E8000084048002BD +S31540019D60C200A00482106001C220A0049010001815 +S31540019D70400000D2B004A00881C7E00881E8000095 +S31540019D809803203810BFFF79872B20038928A00329 +S31540019D9088044004DA012008D6046004C824A00CD3 +S31540019DA0DA24A0088538A00282102001E423600C41 +S31540019DB083284002E42120088210400B10BFFFB0E7 +S31540019DC0C2246004892920018088400402BFFFFE25 +S31540019DD09803200410BFFFB4952B200338BFFF31F1 +S31540019DE003100123E404600884048010A0142001B8 +S31540019DF082106001E024A004C220A0049010001843 +S31540019E00C4246008400000ADB004A00881C7E00842 +S31540019E1081E800008404801010BFFFBEA014200119 +S31540019E20808AE00312BFFFA39A04A008808B200317 +S31540019E300280009C8202BFF8D400600880A28001A3 +S31540019E4022BFFFFB98033FFFC2046004892920011A +S31540019E5080A1000118BFFF0B80A1200022BFFF0A8D +S31540019E60E604600880890001228000928929200148 +S31540019E7010BFFF8C9810000B8204A008E400600C10 +S31540019E8080A0401202BFFF509803200210BFFEEF90 +S31540019E90C604A004C205A16C8205400180A08012BF +S31540019EA002800067C225A16CC605E38480A0FFFF3E +S31540019EB02280006B0310012282048001842040022B +S31540019EC0C425A16C848CA00702800006030000040F +S31540019ED08210200882204002A40480018220700062 +S31540019EE0AA04801590100018AA0D6FFFAA204015EC +S31540019EF04000007E9210001580A23FFF0280006064 +S31540019F008410200184220012840080158410A0014F +S31540019F10C205A16C82054001C225A16CC424A004DE +S31540019F2080A4401302800010E424600880A5200F1D +S31540019F300880003A84053FF48408BFF88604C002CD +S31540019F40C804E0048809200188108004C824E0047C +S31540019F5088102005C820E00880A0A00F1880004284 +S31540019F60C820E00405100123C600A16480A0400377 +S31540019F7038800002C220A16405100123C600A168F1 +S31540019F8080A0400338BFFEDDC220A16810BFFEDCC1 +S31540019F90C204600828BFFF95E404600830BFFEDEB6 +S31540019FA01880001780A065549934200F98032077B4 +S31540019FB010BFFEEE872B200380A0601408BFFF1B55 +S31540019FC09B29200380A060541880001780A061540B +S31540019FD08930A00C8801206E10BFFF149B292003F5 +S31540019FE08939200284102001852880048413400287 +S31540019FF0C424600410BFFF1D84100001861023F0A5 +S3154001A00018BFFEDA9810207E993420129803207CDE +S3154001A01010BFFED6872B20038210200110BFFEB74A +S3154001A020C224A0041880001880A065548930A00F6E +S3154001A0308801207710BFFEFD9B2920038088AFFF52 +S3154001A04012BFFF9BC605E384C4046008860540141D +S3154001A0508610E00110BFFFC4C620A00410BFFF9ABE +S3154001A060E42063849204E0084000006B90100018DD +S3154001A0700310012310BFFFBCC200616C10BFFFA5D6 +S3154001A080AA1020009A1023F018BFFEE88810207EFF +S3154001A0908930A0128801207C10BFFEE49B29200351 +S3154001A0A0C20460048228400410BFFF68C2246004D1 +S3154001A0B010BFFF6D9602E004111001229012238811 +S3154001A0C08213C000400003FD9E10400001000000C5 +S3154001A0D011100122901223888213C000400003E12F +S3154001A0E09E104000010000009DE3BFA02110012405 +S3154001A0F0901000194000015DC02421B080A23FFFAD +S3154001A10002800004C20421B081C7E00891E800083A +S3154001A11080A0600002BFFFFD01000000C2260000D2 +S3154001A12081C7E00891E800089DE3BFA07FFFFFE9F2 +S3154001A1309010001821100121A0142378C204200890 +S3154001A140E2006004A20C7FFC82046FEFB22040194A +S3154001A150B20E7000B206700080A66FFF048000093F +S3154001A160901000187FFFFFE192102000C2042008E2 +S3154001A1708200401180A20001028000079010001861 +S3154001A180901000187FFFFFCDB010200081C7E00876 +S3154001A19081E800007FFFFFD59220001980A23FFF92 +S3154001A1A00280000EA2244019C4042008A2146001B2 +S3154001A1B003100123E220A00490100018B0102001E2 +S3154001A1C0C400616CB22080197FFFFFBCF220616C34 +S3154001A1D081C7E00881E80000901000187FFFFFC3A7 +S3154001A1E092102000C20420088422000180A0A00F02 +S3154001A1F004BFFFE407100122C600E3849022000356 +S3154001A200071001238410A001D020E16C10BFFFDDAF +S3154001A210C42060049DE3BFA080A660000280005078 +S3154001A220010000007FFFFFAB9010001884067FF805 +S3154001A230D800A004820B3FFE09100121860080014F +S3154001A24088112378DA00E004D601200880A2C003F1 +S3154001A250028000639A0B7FFCDA20E004808B2001A8 +S3154001A2601280000E98102000D8067FF88420800CBA +S3154001A2708200400CD600A0089801200880A2C00C9C +S3154001A2800280000698102001D400A00CD422E00CD4 +S3154001A29098102000D622A0089600C00DD602E004F0 +S3154001A2A0808AE0013280000A8610600180A3200086 +S3154001A2B00280002D8200400DDA00E008C600E00C65 +S3154001A2C0C623600CDA20E00886106001C2208001B6 +S3154001A2D080A3200012800020C620A00480A061FF38 +S3154001A2E028800030833060038730600980A0E00415 +S3154001A2F0188000529800E05B993060069803203838 +S3154001A3009B2B20039A01000DC603600880A0C00D57 +S3154001A31032800008C800E00410800052DA012004AF +S3154001A32080A3400322800008C200E00CC800E0047C +S3154001A33088093FFC80A040042ABFFFFAC600E00816 +S3154001A340C200E00CC220A00CC620A008C420E00C2C +S3154001A350C42060087FFFFF5981E8000081C7E008FB +S3154001A36081E80000DA00E008171001219612E38027 +S3154001A37080A3400B32BFFFD3C600E00CC423600C60 +S3154001A380C4236008C2208001DA20A008821060013F +S3154001A390DA20A00CC220A0047FFFFF4881E800001C +S3154001A3A08728600386010003DA00E008C620A00C76 +S3154001A3B0DA20A008D8012004C423600CC420E00898 +S3154001A3C083386002841020018328800182130001B2 +S3154001A3D0C22120047FFFFF3981E80000808B2001E4 +S3154001A3E01280000982034001D8067FF88420800C40 +S3154001A3F0DA00A00CC600A0088200400CC623600803 +S3154001A400DA20E00CC421200886106001C620A00491 +S3154001A41005100122C400A38080A040020ABFFFCEDE +S3154001A42003100123D20061607FFFFF4090100018A6 +S3154001A4307FFFFF2281E8000080A0E01408BFFFB241 +S3154001A4409B2B200380A0E0541880000D80A0E1548E +S3154001A4509930600C9803206E10BFFFAB9B2B2003F5 +S3154001A460993B2002821020018328400C821340012F +S3154001A470C221200410BFFFB48210000318800006D9 +S3154001A48080A0E5549930600F9803207710BFFF9E56 +S3154001A4909B2B20039A1023F018BFFF9B9810207E18 +S3154001A4A0993060129803207C10BFFF979B2B2003A5 +S3154001A4B09DE3BFA080A620000280001F031001205B +S3154001A4C0E406214880A4A00022800014C206203C54 +S3154001A4D0C204A004A0807FFF2C80000CE40480000D +S3154001A4E0A2006001A32C6002A2048011C2044000B4 +S3154001A4F09FC04000A2047FFCA0843FFF3CBFFFFDFC +S3154001A500C2044000E404800080A4A00032BFFFF2F0 +S3154001A510C204A004C206203C80A060000280000460 +S3154001A520010000009FC040009010001881C7E0085C +S3154001A53081E8000010BFFFE3F00062209DE3BFA069 +S3154001A540D206400080A260000280000401000000A3 +S3154001A5507FFFFFFB901000187FFFFF2F81E800006F +S3154001A560010000009DE3BFA003100120C20062204C +S3154001A57080A600010280003201000000D206204C74 +S3154001A58080A2600022800016E0062148A210200029 +S3154001A590E002401180A420002280000BA204600446 +S3154001A5A092100010901000187FFFFF1BE00400007E +S3154001A5B080A4200012BFFFFC92100010D206204C4E +S3154001A5C0A204600480A4603C32BFFFF3E002401164 +S3154001A5D07FFFFF1190100018E006214880A420005B +S3154001A5E02280000ED2062054A206214C80A40011DE +S3154001A5F02280000AD20620549210001090100018B2 +S3154001A6007FFFFF05E004000080A4401012BFFFFC5D +S3154001A61092100010D206205480A2600022800005CC +S3154001A620C20620387FFFFEFC90100018C206203873 +S3154001A63080A0600032800004C206203C81C7E00849 +S3154001A64081E800009FC0400090100018F20622E009 +S3154001A65080A6600002BFFFFA010000007FFFFFB83D +S3154001A66081E800000100000005100124C200A1B4E8 +S3154001A67080A060002280000603100125900040085A +S3154001A680D020A1B481C3E008901000018210616816 +S3154001A69090004008C220A1B4D020A1B481C3E008F3 +S3154001A6A090100001A7500000AE1000018334E00174 +S3154001A6B029100123E805203CA92CC014821500016C +S3154001A6C081E000008190400001000000010000008F +S3154001A6D001000000E03BA000E43BA008E83BA010DD +S3154001A6E0EC3BA018F03BA020F43BA028F83BA0305F +S3154001A6F0FC3BA03881E800008210001781C440006D +S3154001A70081CC800001000000010000000100000032 +S3154001A710A7500000A92CE0012B100123EA05603C5B +S3154001A720AB34C015AA1540148195400001000000C4 +S3154001A730010000000100000081E8000081E80000FE +S3154001A740E01BA000E41BA008E81BA010EC1BA0180E +S3154001A750F01BA020F41BA028F81BA030FC1BA0383E +S3154001A76081E0000081E0000081C4400081CC80008E +S3154001A770A75000002910006CADC5231C0100000044 +S3154001A78027100123A614E018E024C000818C202064 +S3154001A7900100000001000000010000009DE3BFA090 +S3154001A7A09DE3BFA09DE3BFA09DE3BFA09DE3BFA0E6 +S3154001A7B09DE3BFA09DE3BFA081E8000081E80000C2 +S3154001A7C081E8000081E8000081E8000081E800009E +S3154001A7D081E8000027100123A614E018C024C00018 +S3154001A7E0E203A068A4046004E223A064E423A06811 +S3154001A7F0108002F1AC10000029100122A81523FC9B +S3154001A800C2252000C8252004E0252010E225201479 +S3154001A810E4252018E825201C81E800008348000033 +S3154001A82082106F0081886020010000000100000055 +S3154001A8300100000009100123C801203C81E000000D +S3154001A8408821200180A920FF028000030100000029 +S3154001A8500100000080A1000012BFFFF901000000C5 +S3154001A86009100123C801203C81E8000080A920FF8E +S3154001A8700280000301000000010000008821200140 +S3154001A88080A1000012BFFFF90100000081E0000035 +S3154001A89029100122A81523FCC8052004C205200061 +S3154001A8A0E0052010E2052014E4052018C025201CEF +S3154001A8B0818C200001000000010000000100000021 +S3154001A8C081C4800081CCA004A0142F00818C00009B +S3154001A8D001000000010000000100000081C4800069 +S3154001A8E081CCA00480A6600212800005A8142F0026 +S3154001A8F0818D0000B01420203080001F80A66003A7 +S3154001A90012800006A80E2F00AA2C2F00A81540146D +S3154001A910818D00003080001880A6600412800008F6 +S3154001A920A9480000A8152040818D000001000000C3 +S3154001A93001000000010000003080000F80A6600584 +S3154001A94012800008A9480000A82D2040818D0000F2 +S3154001A95001000000010000000100000030800006F7 +S3154001A96080A66006128000030100000030BFFFA3ED +S3154001A97091D0200081C4800081CCA0049210200394 +S3154001A98081C3E00891D020029210200281C3E008E1 +S3154001A99091D020029210200681C3E00891D0200276 +S3154001A9A081C3E0080100000081C3E0080100000006 +S3154001A9B081C3E00801000000AE25A010A7500000A9 +S3154001A9C02D10006AAC15A1CC2910006D81C520C49B +S3154001A9D0010000001110012390122024D202000030 +S3154001A9E092026001D2220000932DE008902C2F00A4 +S3154001A9F092120009111001239012201CD00200006E +S3154001AA0080A000082280000292126F00818A602095 +S3154001AA100100000001000000010000009010001735 +S3154001AA20400000379203A06092142F00818A602073 +S3154001AA300100000001000000010000001110012387 +S3154001AA4090122024D202000092226001D2220000FC +S3154001AA50108002BCAC1000009DE3BFA01B10012377 +S3154001AA60892E60029A13619480A6601F821020008D +S3154001AA7014800017C6034004B32E60041910012345 +S3154001AA8080A0E000981322140280000D8406400C39 +S3154001AA9080A0C00212800006821000031080000EC2 +S3154001AAA0C206400C2280000CC206400CC200600C5B +S3154001AAB080A0600012BFFFFC80A08001C423400437 +S3154001AAC0F026400CC620A00C8210200081C7E00869 +S3154001AAD091E80001F026400C81C7E00891E80001A9 +S3154001AAE0912A20020310012382106194C400400878 +S3154001AAF0C422600C81C3E008D22040089DE3BFA078 +S3154001AB00051001238210A02CC200600480A04018C9 +S3154001AB1022800040C400A02C80A620002280000292 +S3154001AB20B0100001A32E200203100123821061946C +S3154001AB30E000401180A42000028000342910012445 +S3154001AB402D1001242B10012427100124A8152014AF +S3154001AB50AC15A098AA15609C1080001DA614E0189B +S3154001AB60A41000138400A001C4248011C4058000F0 +S3154001AB7080A0A00022800006D20420089FC0800049 +S3154001AB8001000000C2040000D20420089010001801 +S3154001AB909FC0400094100019C205400080A060008B +S3154001ABA022800005C20480119FC0400001000000C0 +S3154001ABB0C204801182007FFFC2248011E004200C70 +S3154001ABC080A420000280001101000000C2040000A0 +S3154001ABD080A0600022BFFFFBE004200CC4050000FA +S3154001ABE080A0A00012BFFFDFC404C01180A0A00056 +S3154001ABF002BFFFDDA4100013E004200C80A4200056 +S3154001AC0032BFFFF4C204000081C7E00881E80000BA +S3154001AC10F000A0C010BFFFC1B00E201F8C10000F66 +S3154001AC20A74800008B34E0188A09600F80A16003B1 +S3154001AC3002800002108000399010200192102006F7 +S3154001AC40400002760100000080A000080280003327 +S3154001AC5001000000C2022010113FFC00820840089A +S3154001AC60110003FC8410400890100002921020014C +S3154001AC709410200C4000027F0100000080A00008D3 +S3154001AC8002800026010000004000028F9210000160 +S3154001AC900B1001238A116034D2214000901000022A +S3154001ACA09210200194102011400002720100000010 +S3154001ACB080A00008028000190100000040000282C5 +S3154001ACC092100001920260100B1001238A11602834 +S3154001ACD0D221400090100002921020019410200DC4 +S3154001ACE0400002640100000080A000080280000BC1 +S3154001ACF00100000040000274921000010B10012374 +S3154001AD008A11602CD2214000D40260109532A010E5 +S3154001AD10940AA00FD42160049E10000681C3E00866 +S3154001AD2001000000031001238210604882102001B7 +S3154001AD3091D0200081C3E008010000009DE3BFA03F +S3154001AD40051001248410A1B8C200A09080A0600023 +S3154001AD50028000278600A0941080000688102000FB +S3154001AD608801200180A100011A8000210100000014 +S3154001AD70D800C000DA0300009733601880A2C018DB +S3154001AD8012BFFFF88600E0049733600C960AEFFF86 +S3154001AD9080A2C01932BFFFF48801200180A6A0001D +S3154001ADA0028000039A0B600FDA268000C20320045A +S3154001ADB0860120648728E00284008003C400A00441 +S3154001ADC03100003F073FFC00B01623F0B0084018A1 +S3154001ADD082084003B12E20048330600CB00E00017E +S3154001ADE0B016000281C7E00881E8000081C7E0088B +S3154001ADF091E820009DE3BFA003100124C40060AC8C +S3154001AE0080A0A00012800078841020012310012424 +S3154001AE10C42060AC92102000A01461B8941023A401 +S3154001AE20400002379010001084102000821030003C +S3154001AE308728A00288040003C600400080A0E000E5 +S3154001AE400280000480A070E0C22120048400A00199 +S3154001AE5032BFFFF882006020C42461B8DA0420487A +S3154001AE6082103800840360128528A00286040002FD +S3154001AE70C400400080A0A0000280000480A078E0C9 +S3154001AE80C220E0049A03600112BFFFF782006020EE +S3154001AE9080A360000480003FDA2420482500003F5B +S3154001AEA08404204CA414A3F09E102000821020009C +S3154001AEB010800005230003FC80A340010480003577 +S3154001AEC08400A004C6008000C800C000D600E0107F +S3154001AED08731201880A0E00132BFFFF8820060016F +S3154001AEE08931200C88092FFF80A1200632BFFFF34C +S3154001AEF082006001D804209080A3203F3480000264 +S3154001AF00861020008088E0FF2280001E82006001BA +S3154001AF10A60AC01288102000A72CE010A60AC0136A +S3154001AF208614C011D600C00080A2E0000280001144 +S3154001AF3088012001D60420909002E0249202E06428 +S3154001AF409402E0A4912A2002932A60029004000808 +S3154001AF5092040009952AA0029404000A9602E0018F +S3154001AF60C6222004E6226004DE22A004D6242090D4 +S3154001AF7080A1200F0480001E9803200182006001F9 +S3154001AF809E03E00180A3400114BFFFCF8400A004CB +S3154001AF90901020019210200D941020007FFFFF6831 +S3154001AFA02110012380A2200032800002D024202CCF +S3154001AFB09010200192102011151001247FFFFF608F +S3154001AFC09412A0A880A2200002800003031001244D +S3154001AFD0D02060A4C204202C80A0600032800002F0 +S3154001AFE0C020604081C7E00881E8000080A3203F7F +S3154001AFF034BFFFE48200600110BFFFCB8600E0084A +S3154001B0009DE3BFA003100124C20060B08410001864 +S3154001B01080A0600002800006B0102000901000025F +S3154001B0209FC0400092100019B010000881C7E00887 +S3154001B03081E800009DE3BFA003100124C20060B473 +S3154001B04080A0600002800005841020009FC040005F +S3154001B050901000188410000881C7E00891E80002AA +S3154001B0609DE3BFA003100124C20060BC80A0600024 +S3154001B07002800005841020009FC0400090100018F7 +S3154001B0808410000881C7E00891E800029DE3BFA053 +S3154001B09003100124C20060B880A060000280000550 +S3154001B0A0841020009FC040009010001884100008B2 +S3154001B0B081C7E00891E800029DE3BFA00310012487 +S3154001B0C0C20060C080A0600002800005841020009C +S3154001B0D09FC04000901000188410000881C7E00806 +S3154001B0E091E800029DE3BFA003100124C20060C4A1 +S3154001B0F080A0600002800005841020009FC04000AF +S3154001B100901000188410000881C7E00891E80002F9 +S3154001B1109DE3BFA003100124C20060C880A0600067 +S3154001B12002800005841020009FC040009010001846 +S3154001B1308410000881C7E00891E800029DE3BFA0A2 +S3154001B14003100124C20060CC8410001880A0600066 +S3154001B15002800006B0102000901000029FC04000FF +S3154001B16092100019B010000881C7E00881E800007C +S3154001B170010000000310006C821062289FC040004D +S3154001B1800100000003100000821060008198400019 +S3154001B1900310006C821062909FC0400001000000C5 +S3154001B1A00310006C821062189FC04000010000002D +S3154001B1B08B4440008B31601C80A140001280000608 +S3154001B1C0010000007FFFFE96010000007FFF99B25B +S3154001B1D0010000009C23A0407FFF978A01000000E8 +S3154001B1E08210200191D020000100000029000004B6 +S3154001B1F0A68C001432800003A02C001491D02000AC +S3154001B200818C0000010000000100000001000000E7 +S3154001B21081C4800081CCA00481C3E0080100000004 +S3154001B22081C1E00801000000A74800008B34E01806 +S3154001B2308A09600380A160031280000801000000B2 +S3154001B24021100123A0142044A2102003E22400006F +S3154001B2508B444000108000018A09601F271001239A +S3154001B260A614E03CCA24C0008A01600127100123CC +S3154001B270A614E038CA24C00027100123A614E040D2 +S3154001B2808A216002CA24C00081C3E008010000008F +S3154001B29081C3E00801000000834800008330601844 +S3154001B2A08208600380A0600312800006010000004E +S3154001B2B0834440000500000882284002A3804000E4 +S3154001B2C0881000000910006C81C121740100000042 +S3154001B2D09DE3BFA02110007023100070A014203000 +S3154001B2E0A214603080A400111A80000B01000000F6 +S3154001B2F0D004000080A2200002800004A0042004A3 +S3154001B3009FC200000100000080A400112ABFFFFA7D +S3154001B310D004000081C7E00881E80000AA27A0B058 +S3154001B320E0256060E2256064E4256068C2256074BA +S3154001B330C43D6078C83D6080CC3D60888540000052 +S3154001B340C425606CF03D6090F43D6098F83D60A086 +S3154001B350FC3D60A8A8102001A92D0010808D001386 +S3154001B36002800013010000008534E001071001232B +S3154001B370C600E03CA72CC0038414C0028408A0FF89 +S3154001B38081E000008190A000E03BA000E43BA008E2 +S3154001B390E83BA010EC3BA018F03BA020F43BA028D2 +S3154001B3A0F83BA030FC3BA03881E8000081C5A008ED +S3154001B3B09C100015051001248410A0A0C400800033 +S3154001B3C080A0800002800004010000009FC0800030 +S3154001B3D09203A060818C20008210200283284010B5 +S3154001B3E005100123C400A038853040028210400276 +S3154001B3F08550000080888001028000208328A001BA +S3154001B40007100123C600E03C8530800382104002CC +S3154001B410820860FF81906000C203A06C8180600059 +S3154001B420F01BA090F41BA098F81BA0A0FC1BA0A8A1 +S3154001B430C203A074C41BA078C81BA080CC1BA088E3 +S3154001B440E003A060E203A064E403A06881E8000091 +S3154001B450E01BA000E41BA008E81BA010EC1BA018F1 +S3154001B460F01BA020F41BA028F81BA030FC1BA03821 +S3154001B4701080000F81E00000C203A06C8180600053 +S3154001B480F01BA090F41BA098F81BA0A0FC1BA0A841 +S3154001B490C203A074C41BA078C81BA080CC1BA08883 +S3154001B4A0E003A060E203A064E403A068818C20006D +S3154001B4B001000000010000000100000081C44000BD +S3154001B4C081CC8000AA27A0B0C2256074C43D6078B3 +S3154001B4D0C83D6080CC3D608885400000C425606CD5 +S3154001B4E0A8102001A92D0010808D001302800013A1 +S3154001B4F0010000008534E00107100123C600E03C4D +S3154001B500A72CC0038414C0028408A0FF81E0000078 +S3154001B5108190A000E03BA000E43BA008E83BA010DE +S3154001B520EC3BA018F03BA020F43BA028F83BA03010 +S3154001B530FC3BA03881E8000081C5A0089C1000159D +S3154001B540051001248410A0A0C400800080A08000C2 +S3154001B55002800004010000009FC080009203A060A9 +S3154001B560818C20008210200283284010051001237F +S3154001B570C400A03885304002821040028550000048 +S3154001B58080888001028000198328A00107100123C9 +S3154001B590C600E03C8530800382104002820860FF8D +S3154001B5A081906000C203A06C81806000C203A074D8 +S3154001B5B0C41BA078C81BA080CC1BA08881E80000D2 +S3154001B5C0E01BA000E41BA008E81BA010EC1BA01880 +S3154001B5D0F01BA020F41BA028F81BA030FC1BA038B0 +S3154001B5E01080000881E00000C203A06C81806000E9 +S3154001B5F0C203A074C41BA078C81BA080CC1BA08822 +S3154001B600818C2000010000000100000001000000C3 +S3154001B61081C4400081CC8000821000089A10380015 +S3154001B62096102000912AE00598034008D40340086B +S3154001B6309132A01880A20001328000089602E001F2 +S3154001B6409132A00C900A2FFF80A2000902800007C8 +S3154001B6509410000C9602E00180A2E00728BFFFF398 +S3154001B660912AE0059410200081C3E0089010000A59 +S3154001B6708210000898102000912B20039A00400860 +S3154001B680D60040089132E01880A2000932800008B5 +S3154001B690980320019132E00C900A2FFF80A2000A04 +S3154001B6A0028000079610000D9803200180A3200F09 +S3154001B6B028BFFFF3912B20039610200081C3E00899 +S3154001B6C09010000BD4022004173FFC00920A400B55 +S3154001B6D0900A800B9132200C921240081100003FD3 +S3154001B6E0901223F0940A8008952AA0049412800BA4 +S3154001B6F0920A400A81C3E008901000099DE3BFA069 +S3154001B700860E60FF80A6A0030880002A84100018D8 +S3154001B710808E20033280002A821020008328E00890 +S3154001B7208210400380A6A00F852860109A10001849 +S3154001B730841080018810001A0880001182100018B8 +S3154001B740C4204000C4206004C4206008C420600CAA +S3154001B75088013FF080A1200F18BFFFFA82006010D8 +S3154001B7608206BFF0B408600F9A087FF080A6A00356 +S3154001B7709A0360100880000E9A06000D8210200080 +S3154001B780C4234001820060048826800180A12003F1 +S3154001B79038BFFFFDC42340018206BFFCB4086003E5 +S3154001B7A082087FFC820060049A0340018410000DE8 +S3154001B7B080A6A0000280000782102000C6288001D2 +S3154001B7C08200600180A0401A32BFFFFEC628800178 +S3154001B7D081C7E00881E800009DE3BFA02110007009 +S3154001B7E0A0142018C2043FFC80A07FFF02800008FD +S3154001B7F0A0043FFC9FC04000A0043FFCC2040000DF +S3154001B80080A07FFF12BFFFFC0100000081C7E00856 +S3154001B81081E800009DE3BFA081C7E00881E8000000 +S3154001B8200000001000000000017A5200047C0F0164 +S3154001B8301B0C0E000000001000000018FFFE595CB2 +S3154001B8400000007000000000000000180000002CFD +S3154001B850FFFE59B8000000B400410D1E2D4A090FE4 +S3154001B8601F0000000000001800000048FFFE5A506B +S3154001B870000000D800410D1E2D6C090F1F0000006D +S3154001B8800000001800000064FFFE5B0C0000047815 +S3154001B89000410D1E2D4D090F1F000000000000182C +S3154001B8A000000080FFFE5F680000008800410D1E19 +S3154001B8B02D5B090F1F000000000000180000009CCE +S3154001B8C0FFFE5FD40000009000410D1E2D43090F7D +S3154001B8D01F00000000000014000000B8FFFE604891 +S3154001B8E00000002000410D1E2D090F1F0000001011 +S3154001B8F0000000D0FFFE60500000001C0000000068 +S3154001B90000000010000000E4FFFE60580000001C2B +S3154001B9100000000000000010000000F8FFFE60601B +S3154001B9200000001C00000000000000100000010C97 +S3154001B930FFFE60680000001C0000000000000014CB +S3154001B94000000120FFFE60700000002C00410D1E2A +S3154001B9502D090F1F0000001800000138FFFE60D0BE +S3154001B9600000004000410D1E2D46090F1F0000003A +S3154001B9700000001800000154FFFE60F4000002249C +S3154001B98000410D1E2D46090F1F0000000000001842 +S3154001B99000000170FFFE62FC0000023400410D1EF2 +S3154001B9A02D47090F1F000000000000180000018C00 +S3154001B9B0FFFE65140000003C00410D1E2D43090F9A +S3154001B9C01F00000000000018000001A8FFFE6534BA +S3154001B9D00000003C00410D1E2D43090F1F000000D1 +S3154001B9E000000014000001C4FFFF46180000039444 +S3154001B9F000410D1E2D090F1F00000010000001DC43 +S3154001BA00FFFF49940000002C0000000000000010D8 +S3154001BA10000001F0FFFF49AC0000002400000000D7 +S3154001BA200000001000000204FFFF49BC000000189E +S3154001BA30000000000000001800000218FFFF49C086 +S3154001BA400000017C00410D1E2D42090F1F00000020 +S3154001BA500000001800000234FFFF4B200000058063 +S3154001BA6000410D1E2D46090F1F0000000000001861 +S3154001BA7000000250FFFF50840000051800410D1ED2 +S3154001BA802D43090F1F000000000000140000026C46 +S3154001BA90FFFF55800000010C00410D1E2D090F1FAF +S3154001BAA00000001000000284FFFF567400000018D9 +S3154001BAB0000000000000001400000298FFFF5678C5 +S3154001BAC00000020800410D1E2D090F1F0000001441 +S3154001BAD0000002B0FFFF66FC0000461800410D1E43 +S3154001BAE02D090F1F00000010000002C8FFFFACFC2B +S3154001BAF00000000C0000000000000010000002DC05 +S3154001BB00FFFFACF40000001400000000000000102C +S3154001BB10000002F0FFFFACF400000020000000002E +S3154001BB200000001400000304FFFFAD000000077091 +S3154001BB3000410D1E2D090F1F000000100000031CBF +S3154001BB40FFFFBD880000000C00000000000000104F +S3154001BB5000000330FFFFBD8000000024000000000C +S3154001BB600000001000000344FFFFBD9000000038B4 +S3154001BB70000000000000001000000358FFFFBDB4A4 +S3154001BB800000003800000000000000180000036CAF +S3154001BB90FFFFBDD80000009C00410D1E2D56090F28 +S3154001BBA01F0000000000001800000388FFFFBE5878 +S3154001BBB00000003C00410D1E2D4A090F1F000000E8 +S3154001BBC000000018000003A4FFFFBE780000003CFF +S3154001BBD000410D1E2D4A090F1F00000000000010F4 +S3154001BBE0000003C0FFFFBE980000003800000000BF +S3154001BBF000000018000003D4FFFFBEBC0000003C5B +S3154001BC0000410D1E2D4A090F1F00000000000018BB +S3154001BC10000003F0FFFFBEDC0000003C00410D1EAA +S3154001BC202D4A090F1F000000000000100000040CFF +S3154001BC30FFFFBEFC000000380000000000000018B5 +S3154001BC4000000420FFFFBF2000000EB000430D1E80 +S3154001BC502D4C090F1F000000000000140000043C99 +S3154001BC60FFFFCDB40000002800410D1E2D090F1F16 +S3154001BC700000001400000454FFFFCDC4000003304F +S3154001BC8000410D1E2D090F1F000000140000046C19 +S3154001BC90FFFFD0DC000002B800430D1E2D090F1F27 +S3154001BCA00000001000000484FFFFD6840000000C51 +S3154001BCB0000000000000001000000498FFFFD67C41 +S3154001BCC0000000140000000000000014000004AC55 +S3154001BCD0FFFFD67C0000007C00410D1E2D090F1F81 +S3154001BCE000000010000004C4FFFFDA7800000020C5 +S3154001BCF00000000000000018000004D8FFFFDA84AD +S3154001BD00000000FC00410D1E2D54090F1F000000CC +S3154001BD1000000018000004F4FFFFDB640000012C62 +S3154001BD2000410D1E2D41090F1F00000000000010AB +S3154001BD3000000510FFFFDC740000001C000000003D +S3154001BD400000001000000524FFFFDC7C0000001C01 +S3154001BD50000000000000001800000538FFFFDC84E9 +S3154001BD60000006D800410D1E2D4C090F1F00000092 +S3154001BD700000001000000554FFFFE34000000018DA +S3154001BD80000000000000001000000568FFFFE344CA +S3154001BD900000001800000000000000180000057CAB +S3154001BDA0FFFFE3480000004000410D1E2D42090FF0 +S3154001BDB01F0000000000001400000598FFFFE36C1F +S3154001BDC0000000EC00410D1E2D090F1F0000001858 +S3154001BDD0000005B0FFFFE4400000029C00410D1E3B +S3154001BDE02D43090F1F00000000000018000005CC7C +S3154001BDF0FFFFE6C00000008C00410D1E2D4F090FCC +S3154001BE001F00000000000018000005E8FFFFE730B2 +S3154001BE100000002800410D1E2D44090F1F0000009F +S3154001BE200000001800000604FFFFE73C0000010483 +S3154001BE3000410D1E2D45090F1F0000000000001096 +S3154001BE4000000620FFFFE8240000003C000000003F +S3154001BE500000001800000634FFFFEC0000000088D7 +S3154001BE6000410D1E2D52090F1F0000000000001059 +S3154001BE7000000650FFFFEC6C0000001C00000000B3 +S3154001BE800000001800000664FFFFEC74000001206A +S3154001BE9000410D1E2D58090F1F0000000000001023 +S3154001BEA000000680FFFFEE88000000100000000041 +S3154001BEB00000001800000694FFFFEE84000000B861 +S3154001BEC000410D1E2D48090F1F00000000000018FB +S3154001BED0000006B0FFFFEF200000020C00410D1EDE +S3154001BEE02D4A090F1F00000000000018000006CC73 +S3154001BEF0FFFFF1100000003400410D1E2D47090FD0 +S3154001BF001F00000000000018000006E8FFFFF128AE +S3154001BF100000002C00410D1E2D45090F1F00000099 +S3154001BF200000001800000704FFFFF1380000002C54 +S3154001BF3000410D1E2D45090F1F000000000000188D +S3154001BF4000000720FFFFF1480000002C00410D1EB4 +S3154001BF502D45090F1F000000000000180000073C96 +S3154001BF60FFFFF1580000002C00410D1E2D45090F21 +S3154001BF701F0000000000001800000758FFFFF1688D +S3154001BF800000002C00410D1E2D45090F1F00000029 +S3154001BF900000001800000774FFFFF1780000002C34 +S3154001BFA000410D1E2D45090F1F000000000000181D +S3154001BFB000000790FFFFF1880000003400410D1E8C +S3154001BFC02D47090F1F00000000000018000007ACB4 +S3154001BFD0FFFFF3000000004C00410D1E2D47090FE5 +S3154001BFE01F00000000000018000007C8FFFFF710FF +S3154001BFF0000000DC00410D1E2D76090F1F000000D8 +S3154001C00000000000000000000000000000000000E9 +S3154001C01000000002FFFFFFFF0000000000000000DB +S3154001C02000000002FFFFFFFF0000000000000000CB +S3154001C030343074693934612B3079676979753035B3 +S3154001C0407968617035796934682B612B69697978CA +S3154001C0506869346B35396A30713930356A6B6F7955 +S3154001C06070686F70746A72686961346979302B34AB +S3154001C0700000000000000000400800000000000031 +S3154001C0803CD203AF9EE756163E7AD7F29ABCAF48EA +S3154001C0904004822800000000430000000000000028 +S3154001C0A09DE3BFA07FFF9421010000007FFFFDCBF0 +S3154001C0B00100000081C7E00881E800009DE3BFA0C0 +S3154001C0C07FFF93EF0100000081C7E00881E800008F +S315400200000000000100000000000000002000000087 +S315400200100000000000000000000000000000000098 S315400200200000000000000000000000000000000088 S315400200300000000000000000000000000000000078 S315400200400000000000000000000000000000000068 -S315400200500000000000000000000000010000000057 +S315400200500000000000000001000000000000000057 S315400200600000000000000000000000000000000048 S315400200700000000000000000000000000000000038 S315400200800000000000000000000000000000000028 -S315400200900000000000000000000000000000000117 +S315400200900000000000000000000000010000000017 S315400200A00000000000000000000000000000000008 S315400200B000000000000000000000000000000000F8 S315400200C000000000000000000000000000000000E8 -S315400200D000000000000000000000000000000000D8 -S315400200E00000000100000000000000410000000086 -S315400200F0343074693934612B3079676979753035B2 -S315400201007968617035796934682B612B69697978C8 -S315400201106869346B35396A30713930356A6B6F7953 -S3154002012070686F70746A72686961346979302B34A9 -S315400201300000000000000000000000010000000076 -S3154002014040000000000000004008000000000000DF -S31540020150401800000000000080000000000000007F -S315400201600000000000000000BFF000000000000098 -S31540020170BF800000000000000000000000000000F8 -S315400201800000000000000000000000000000000027 -S315400201903FF00000000000004008000000000000A0 -S315400201A03FF0000040000000000000000000000098 -S315400201B03F800000404000000000000000000000B8 -S315400201C000000000000000000000000000000000E7 -S315400201D0000000000000000048000001000000008E -S315400201E0480000000000000046C000000000000079 -S315400201F03FF0000000000000400000000000000048 -S3154002020040080000000000003F800000000000009F -S31540020210529000000000000052900FF807F60DEBD6 -S3154002022052901FE03F61BAD052902FB8D4E30F48A4 -S3154002023052903F81F636B80C52904F3BD03C0A64FE -S3154002024052905EE68EFAD48B52906E825DA8FC2B5B -S3154002025052907E0F66AFED0752908D8DD3B1D9AADB -S3154002026052909CFDCD8ED0095290AC5F7C69A3C85A -S315400202705290BBB307ACAFDB5290CAF8960E710DE3 -S315400202805290DA304D95FB065290E95A539F492CCB -S315400202905290F876CCDF6CD952910785DD689A295F -S315400202A052911687A8AE14A35291257C5187FD0917 -S315400202B052913463FA37014E5291433EC467EFFB83 -S315400202C05291520CD1372FEB529160CE41341D746C -S315400202D052916F8334644DF952917E2BCA46BAB914 -S315400202E052918CC821D6D3E352919B58598F7C9F09 -S315400202F05291A9DC8F6DF1045291B854E0F496A064 -S315400203005291C6C16B2DB8705291D5224AAE2EE19A -S315400203105291E3779B97F4A85291F1C1799CA8FF39 -S31540020320529200000000000052920E33499A21A9CF -S3154002033052921C5B70D9F82452922A788FC76DE587 -S315400203405292388AC0059C28529246921AD4EA4959 -S315400203505292548EB9151E8552926280B347609668 -S315400203605292706821902E9A52927E451BB944C38E -S3154002037052928C17B9337834529299E01118857596 -S315400203805292A79E3A2CD2E65292B5524AE1278E13 -S315400203905292C2FC595456A75292D09C7B54E03E8C -S315400203A05292DE32C66287415292EBBF4FAFDD4B6D -S315400203B05292F9422C23C47E529306BB705AE7C32B -S315400203C05293142B30A929AB52932191811B0A4196 -S315400203D052932EEE7577041652933C42213EE0C963 -S315400203E05293498C97B10540529356CDEBC9B5E22B -S315400203F0529364063044530652937135779C8DCBA3 -S3154002040052937E5BD40F95A152938B79579D3EAB07 -S315400204105293988E1409212E5293A59A1ADBB257FB -S315400204205293B29D7D6356625293BF984CB56C7798 -S315400204305293CC8A99AF54535293D97474F76DF24E -S315400204405293E655EEFE13675293F32F17FE8D0431 -S31540020450529400000000000052940CC8B6D657C20F -S31540020460529419894C2329F052942641CF569572BB -S31540020470529432F24FB01C7A52943F9ADC3F79CE74 -S3154002048052944C3B83E57153529458D455549C1A1A -S31540020490529465655F122FF6529471EEAF76C2C6DC -S315400204A052947E7054AF098952948AEA5CBC935F37 -S315400204B05294975CD57680885294A3C7CC8A358A63 -S315400204C05294B02B4F7C0A885294BC876BA7F6ECA9 -S315400204D05294C8DC2E4239805294D529A457FCFC4A -S315400204E05294E16FDACFF9375294EDAEDE6B10FEDD -S315400204F05294F9E6BBC4ECB3529506177F5491BBAE -S3154002050052951241356CF6E052951E63EA3D95B01E -S3154002051052952A7FA9D2F8EA529536948017481006 -S31540020520529542A278D2D03652954EA99FAC8A0FA6 -S3154002053052955AAA002A9D5A529566A3A5B2E1B18E -S31540020540529572969B8B5CD852957E82ECDABE8D22 -S3154002055052958A68A4A8D9F352959647CDDF1CA531 -S315400205605295A220734903775295ADF29F948CFB24 -S315400205705295B9BE5D52A9DA5295C583B6F7AB0319 -S315400205805295D142B6DBADC55295DCFB673B05DFE2 -S315400205905295E8ADD236A58F5295F45A01D483B41A -S315400205A0529600000000000052960B9FD68A455490 -S315400205B0529617398F2AAA48529622CD337F0FE890 -S315400205C052962E5ACD0C3EBE529639E2653E421B9B -S315400205D0529645640568C1C3529650DFB6C759F470 -S315400205E052965C55827DF1D2529667C57199104BEF -S315400205F05296732F8D0E2F7752967E93DDBC0E73D5 -S31540020600529689F26C6B01D05296954B41CD4293EC -S315400206100BC0A4068F346C9B0BC093731C185447B3 -S315400206200BC083008E183C230BC072AE83A9704A5E -S315400206300BC0627C9CC166FF0BC0526A7ACE64A430 -S315400206400BC04277C0B04ADA0BC032A412B191A0B5 -S315400206500BC022EF168069500BC0135873280473DF -S315400206600BC003DFD10A08480BBFE909B3B04632D3 -S315400206700BBFCA8E711B8E880BBFAC4D32D4143061 -S315400206800BBF8E4553D34B1B0BBF7076318237EF70 -S315400206900BBF52DF2BADF99C0BBF357FA47C936C0D -S315400206A00BBF18570061F5EB0BBEFB64A61545154B -S315400206B00BBEDEA7FE865A2B0BBEC22074D37FBC6E -S315400206C00BBEA5CD763F66690BBE89AE722750F04A -S315400206D00BBE6DC2D9F976230BBE520A212B976CFB -S315400206E00BBE3683BD31CAA20BBE1B2F257575CAFA -S315400206F00BBE000BD34C7BAF0BBDE51941F097FE09 -S315400207000BBDCA56EE76E9D00BBDAFC457C7AB7325 -S315400207100BBD9560FE9616690BBD7B2C65587275AE -S315400207200BBD612610404EC00BBD474D8532E409D4 -S315400207300BBD2DA24BC19EDF0BBD1423ED22D10171 -S315400207400BBCFAD1F42A88E40BBCE1ABED438E80B4 -S315400207500BBCC8B1666884820BBCAFE1EF1D2D01AC -S315400207600BBC973D1867D0EF0BBC7EC274CAC962F8 -S315400207700BBC6671983E29FE0BBC4E4A18298BA9C2 -S315400207800BBC364B8B5DF6DB0BBC1E758A0FECBF82 -S315400207900BBC06C7ADD18E7E0BBBEF41918CE1F609 -S315400207A00BBBD7E2D17E33360BBBC0AB0B2E921BB3 -S315400207B00BBBA999DD6E6B650BBB92AEE8503CA7AD -S315400207C00BBB7BE9CD2362720BBB654A2E6F002CB5 -S315400207D00BBB4ECFAFED00FE0BBB3879F685313FF2 -S315400207E00BBB2248A8486FDE0BBB0C3B6C6BF73B3E -S315400207F00BBAF651EB44BCEE0BBAE08BCE42E7F1B4 -S315400208000BBACAE8BFED5CC00BBAB5686BDD5EDDFC -S315400208100BBAA00A7EBA475E0BBA8ACEA6354FEB12 -S315400208200BBA75B4910571DB0BBA60BBEEE358EFB8 -S315400208300BBA4BE4708569410BBA372DC79BD7FE7D -S315400208400BBA2297A6CCD68C0BBA0E21C1B0CFA03A -S315400208500BB9F9CBCCCEB6050BB9E5957D98648B31 -S315400208600BB9D17E8A670EE70BB9BD86AA77C3104C -S315400208700BB9A9AD95E7FAC40BB995F305B23CE5B8 -S315400208800BB98256B3AACE570BB96ED85A7C7206AA -S315400208900BB95B77B5A537C80BB94834817359CCC8 -S315400208A00BB9350E7B02284D0BB922056037032E54 -S315400208B00BB90F18EFBE614A0BB8FC48E908E522AE -S315400208C00BB8E9950C487EA90BB8D6FD1A6D99E886 -S315400208D00BB8C480D5245A340BB8B21FFED1E1BC42 -S315400208E00BB89FDA5A91A5260BB88DAFAC32CB0A1C -S315400208F00BB87B9FB83596F60BB869AA43C8DFE1B9 -S315400209000BB857CF14C791B50BB8460DF1B639C6D9 -S315400209100BB83466A1C09DF90BB822D8ECB75E6E0F -S315400209200BB811649B0DA16B0BB8000975D6C9595A -S315400209300BB7EEC746C434A50BB7DD9DD823075285 -S315400209400BB7CC8CF4D9FE010BB7BB9468674A50FF -S315400209500BB7AAB3FEDE78540BB799EB84E65D0C6F -S315400209600BB7893AC7B70D960BB778A19517DF0132 -S315400209700BB7681FBB5D6E910BB757B50967B24C93 -S315400209800BB747614EA011A20BB737245AF786140C -S315400209900BB726FDFEE4C3A00BB716EE0B6268E862 -S315400209A00BB706F451ED36CE0BB6F710A4824F8044 -S315400209B00BB6E742D59D7CB40BB6D78AB8377D0EC7 -S315400209C00BB6C7E81FC458720BB6B85AE031BB32F1 -S315400209D00BB6A8E2CDE557F90BB6997FBDBB50459C -S315400209E00BB68A318504A35C0BB67AF7F985A39BCD -S315400209F00BB66BD2F17471FF0BB65CC243777FCEF6 -S31540020A000BB64DC5C6A416420BB63EDD527CE4116A -S31540020A100BB63008BEF090CF0BB62147E45855EBE3 -S31540020A200BB6129A9B769D520BB60400BD75A584F1 -S31540020A300BB5F57A23E62B070BB5E706A8BE172CAE -S31540020A400BB5D8A6265733FF0BB5CA58776DE54B7B -S31540020A500BB5BC1D771FE6AB0BB5ADF500EB0E78BB -S31540020A600BB59FDEF0AC15940BB591DB229D63F27C -S31540020A700BB583E97355E1C10BB57609BFC7CD32D4 -S31540020A800BB5683BE53F94B80BB55A7FC162B5B624 -S31540020A900BB54CD5322E9F7F0BB53F3C15F79AA12D -S31540020AA00BB531B44B67B45A0BB5243DB17DAE306C -S31540020AB00BB516D8278BF18F0BB509838D37876710 -S31540020AC00BB4FC3FC27713AE0BB4EF0CA791D4BB69 -S31540020AD00BB4E1EA1D1EA6680BB4D4D8040308E59C -S31540020AE00BB4C7D63D722B370BB4BAE4AAEBF9481E -S31540020AF00BB4AE032E3C2D7E0BB4A131A97965C948 -S31540020B000BB4946FFF043C1C0BB487BE118662364D -S31540020B100BB47B1BC3F1C0BF0BB46E88F97F999BA4 -S31540020B200BB4620595AFAD730BB455917C476454D3 -S31540020B300BB4492C9150F96C0BB43CD6B91AA9C8DE -S31540020B400BB4308FD835E60B0BB42457D3768716C1 -S31540020B500BB4182E8FF205900BB40C13F2FEB43B75 -S31540020B600BB40007E232FD1F0BB3F40A4364A167DC -S31540020B700BB3E81AFCA7FBF00BB3DC39F44F468AF9 -S31540020B800BB3D06710E9E1C30BB3C4A239439F4FFD -S31540020B900BB3B8EB54640EF10BB3AD42498DCDDFC6 -S31540020BA00BB3A1A7003DD89B0BB39619602ADF2B46 -S31540020BB00BB38A9951449BB80BB37F26BBB32B79AF -S31540020BC00BB373C187D669EA0BB368699E454E4437 -S31540020BD00BB35D1EE7CD4B2D0BB351E14D71B09872 -S31540020BE00BB346B0B86B0FC30BB33B8D1226A15A5B -S31540020BF00BB330764445ADAC0BB3256C389CF6EB63 -S31540020C000BB31A6ED934256E0BB30F7E104535F5EC -S31540020C100BB30499C83BE9D60BB2F9C1EBB53923FC -S31540020C200BB2EEF6657EC6AA0BB2E437209655D5D0 -S31540020C300BB2D984082942630BB2CEDD0793F9E79A -S31540020C400BB2C4420A6177190BB2B9B2FC4ABEDA98 -S31540020C500BB2AF2FC9365EFF0BB2A4B85D37EEC1F9 -S31540020C600BB29A4CA48F90E30BB28FEC8BA9777997 -S31540020C700BB28597FF1D694D0BB27B4EEBAE48DD3D -S31540020C800BB271113E499CEE0BB266DEE4071AA81E -S31540020C900BB25CB7CA2831380BB2529BDE1796F7B5 -S31540020CA00BB2488B0D68D8030BB23E8545D7E65A40 -S31540020CB00BB2348A7548AB540BB22A9A89C69A97B4 -S31540020CC00BB220B5718446610BB216DB1ADAF53FD8 -S31540020CD00BB20D0B744A39100BB203466C77876C14 -S31540020CE00BB1F98BF22DD3490BB1EFDBF45D27FF44 -S31540020CF00BB1E636621A457E0BB1DC9B2A9E3DD588 -S31540020D000BB1D30A3D4613EE0BB1C98389925B817F -S31540020D100BB1C006FF26DA3F0BB1B6948DCA2A281C -S31540020D200BB1AD2C25655D0F0BB1A3CDB603A13D2D -S31540020D300BB19A792FD1E7410BB1912E831E88D2FE -S31540020D400BB187EDA058F0D60BB17EB6781144733D -S31540020D500BB17588FAF80D3A0BB16C6519DDE45D95 -S31540020D600BB1634AC5B31EEF0BB15A39EF877B28E5 -S31540020D700BB151328889CEAE0BB148348207B5DB0E -S31540020D800BB13F3FCD6D43FF0BB136545C44B49A31 -S31540020D900BB12D7220361D870BB124990B07221BEE -S31540020DA00BB11BC90E9AA72D0BB113021CF0880F6B -S31540020DB00BB10A4428254C650BB1018F2271DEE541 -S31540020DC00BB0F8E2FE2B44F40BB0F03FADC2572312 -S31540020DD00BB0E7A523C37A850BB0DF1352D65AD997 -S31540020DE00BB0D68A2DBDA58C0BB0CE09A756C589A8 -S31540020DF00BB0C591B2999FDB0BB0BD2242985115FB -S31540020E000BB0B4BB4A7EEB870BB0AC5CBD933636B7 -S31540020E1065300000653010006530200065303000D6 -S31540020E2065304000653050006530600065307000C6 -S31540020E3065308000653090006530A0006530B000B6 -S31540020E406530C0006530D0006530E0006530F000A6 -S31540020E506531000065311000653120006531300092 -S31540020E606531400065315000653160006531700082 -S31540020E7065318000653190006531A0006531B00072 -S31540020E806531C0006531D0006531E0006531F00062 -S31540020E90653200006532100065322000653230004E -S31540020EA0653240006532500065326000653270003E -S31540020EB065328000653290006532A0006532B0002E -S31540020EC06532C0006532D0006532E0006532F0001E -S31540020ED0653300006533100065332000653330000A -S31540020EE065334000653350006533600065337000FA -S31540020EF065338000653390006533A0006533B000EA -S31540020F006533C0006533D0006533E0006533F000D9 -S31540020F1065340000653410006534200065343000C5 -S31540020F2065344000653450006534600065347000B5 -S31540020F3065348000653490006534A0006534B000A5 -S31540020F406534C0006534D0006534E0006534F00095 -S31540020F506535000065351000653520006535300081 -S31540020F606535400065355000653560006535700071 -S31540020F7065358000653590006535A0006535B00061 -S31540020F806535C0006535D0006535E0006535F00051 -S31540020F90653600006536100065362000653630003D -S31540020FA0653640006536500065366000653670002D -S31540020FB065368000653690006536A0006536B0001D -S31540020FC06536C0006536D0006536E0006536F0000D -S31540020FD065370000653710006537200065373000F9 -S31540020FE065374000653750006537600065377000E9 -S31540020FF065378000653790006537A0006537B000D9 -S315400210006537C0006537D0006537E0006537F000C8 -S3154002101065380000653810006538200065383000B4 -S3154002102065384000653850006538600065387000A4 -S3154002103065388000653890006538A0006538B00094 -S315400210406538C0006538D0006538E0006538F00084 -S315400210506539000065391000653920006539300070 -S315400210606539400065395000653960006539700060 -S3154002107065398000653990006539A0006539B00050 -S315400210806539C0006539D0006539E0006539F00040 -S31540021090653A0000653A1000653A2000653A30002C -S315400210A0653A4000653A5000653A6000653A70001C -S315400210B0653A8000653A9000653AA000653AB0000C -S315400210C0653AC000653AD000653AE000653AF000FC -S315400210D0653B0000653B1000653B2000653B3000E8 -S315400210E0653B4000653B5000653B6000653B7000D8 -S315400210F0653B8000653B9000653BA000653BB000C8 -S31540021100653BC000653BD000653BE000653BF000B7 -S31540021110653C0000653C1000653C2000653C3000A3 -S31540021120653C4000653C5000653C6000653C700093 -S31540021130653C8000653C9000653CA000653CB00083 -S31540021140653CC000653CD000653CE000653CF00073 -S31540021150653D0000653D1000653D2000653D30005F -S31540021160653D4000653D5000653D6000653D70004F -S31540021170653D8000653D9000653DA000653DB0003F -S31540021180653DC000653DD000653DE000653DF0002F -S31540021190653E0000653E1000653E2000653E30001B -S315400211A0653E4000653E5000653E6000653E70000B -S315400211B0653E8000653E9000653EA000653EB000FB -S315400211C0653EC000653ED000653EE000653EF000EB -S315400211D0653F0000653F1000653F2000653F3000D7 -S315400211E0653F4000653F5000653F6000653F7000C7 -S315400211F0653F8000653F9000653FA000653FB000B7 -S31540021200653FC000653FD000653FE000653FF000A6 -S315400212104200000000000000400FFFFFFFFFFFFFFB -S315400212204200000000200000420FFFFFFFFFFFFFC9 -S3154002123040000000000000004210000000080000CC -S3154002124042000000000000013EB000000000000124 -S315400212504200000000000002420F484C0137D2080B -S31540021260C20E780F256007AB41BA079B7AF94BA0AD -S315400212704201484C0137D208420E780F256007AB2F -S315400212804217E02D934BECDA420F484C0137D20815 -S31540021290C21E780F256007ABC20DA7D249883D4EC4 -S315400212A0421F484C0137D208C20E780F256007AB61 -S315400212B042100C446E87CE32C03340AB371208918F -S315400212C00000000000000000C03340AB3712089116 -S315400212D00000000000000000C29E7A0F236007A6AD -S315400212E0C29E7A0F236007A66F3F484C0137D20849 -S315400212F06E2E780F256007AB6F3F485B3D3F64B863 -S315400213006F3F484C0137D208EE2E780F256007AB67 -S315400213106F3F483CC5303F587FE2F780AB123809F1 -S315400213207FD00000000000007FEAF780AB12380948 -S31540021330002000000000000080280000000000009D -S3154002134080100000000000007FEFF780AB123809E2 -S315400213507FEFF2010203A1117FF0000000000000BE -S315400213600010000000001000801FFFFFF203A111D1 -S315400213708000000000000000001ABCD000023809BC -S31540021380801ABCD0000001110000000000000000DD -S315400213907E71000000000000416010000000000065 -S315400213A07FE11100000000000178100000000000FB -S315400213B03E880000FFF0000000120C00C073F800E7 -S315400213C0C1EFFFFFC00020003FB3C75D224F280F89 -S315400213D0C1B3C75CFAC08192A12FFF8000001FFFF4 -S315400213E03EE0000000FF0000A01FFF8001FE18073C -S315400213F041CFFFFE0000002040303FFFFFFFFFFDD0 -S3154002140042103FFEFC00000D3FD000003FEFFFFFC1 -S31540021410BFD0000010000000BFB000004FF0003FF8 -S3154002142001701000000000003E8000011A0000001A -S3154002143000000000000000007E7C0000000000006A -S31540021440416A1000010000107FF000000000000019 -S3154002145075012034056AC000FA1009091000104FC0 -S31540021460FFF00000000000000100203040030200AF -S31540021470003020340000A00B0000000000000000F5 -S315400214807FE0001010200001400000000010200AFA -S315400214907FF00000000000003FEFDFF00FFC484AFB -S315400214A0BFF80000000000007FFF000000000000BF -S315400214B07FFFE000000000007FF400000000000013 -S315400214C07FC00000000000007FF80000000000001E -S315400214D07FF0000000000000FFF000000000000066 -S315400214E0FFF0000000000000800000000000000045 -S315400214F000000000000100000000000000000000A3 +S315400200D000000000000000000000000000000001D7 +S315400200E00000000100000000BF8000000000000088 +S315400200F0BFF0000000000000800000000000000089 +S315400201000000000000000000400000000000000067 +S3154002011040080000000000004018000000000000F7 +S315400201200000000000000000000000000000000087 +S3154002013000000000000000003FF000000000000048 +S3154002014040080000000000003FF0000040000000B0 +S3154002015000000000000000003F8000004040000018 +S315400201600000000000000000000000000000000047 +S315400201700000000000000000000000000000000037 +S315400201804800000100000000480000000000000096 +S3154002019046C00000000000003FF0000000000000E2 +S315400201A0400000000000000040080000000000007F +S315400201B03F80000000000000000000000001000037 +S315400201C08000000000000000FFF000000000000078 +S315400201D0FFF00000000000007FF000000000000079 +S315400201E07FF80000000000007FC000000000000011 +S315400201F07FF40000000000007FFFE00000000000E6 +S315400202007FFF000000000000BFF800000000000071 +S315400202103FEFDFF00FFC484A7E710000000000000D +S3154002022041601000000000007FE111000000000064 +S3154002023001781000000000003E880000FFF0000038 +S3154002024000120C00C073F800C1EFFFFFC00020008F +S315400202503FB3C75D224F280FC1B3C75CFAC0819234 +S31540020260A12FFF8000001FFF3EE0000000FF0000BC +S31540020270A01FFF8001FE180741CFFFFE00000020AD +S3154002028040303FFFFFFFFFFD42103FFEFC00000DE6 +S315400202903FD000003FEFFFFFBFD00000100000003C +S315400202A0BFB000004FF0003F017010000000000098 +S315400202B03E8000011A00000000000000000000001D +S315400202C07E7C000000000000416A10000100001020 +S315400202D07FF000000000000075012034056AC0006E +S315400202E0FA1009091000104FFFF00000000000004C +S315400202F00100203040030200003020340000A00BF1 +S3154002030000000000000000007FE000101020000105 +S31540020310400000000010200A7FF0000000000000AC +S315400203204200000000000000400FFFFFFFFFFFFFFA +S315400203304200000000200000420FFFFFFFFFFFFFC8 +S3154002034040000000000000004210000000080000CB +S3154002035042000000000000013EB000000000000123 +S315400203604200000000000002420F484C0137D2080A +S31540020370C20E780F256007AB41BA079B7AF94BA0AC +S315400203804201484C0137D208420E780F256007AB2E +S315400203904217E02D934BECDA420F484C0137D20814 +S315400203A0C21E780F256007ABC20DA7D249883D4EC3 +S315400203B0421F484C0137D208C20E780F256007AB60 +S315400203C042100C446E87CE32C03340AB371208918E +S315400203D00000000000000000C03340AB3712089115 +S315400203E00000000000000000C29E7A0F236007A6AC +S315400203F0C29E7A0F236007A66F3F484C0137D20848 +S315400204006E2E780F256007AB6F3F485B3D3F64B861 +S315400204106F3F484C0137D208EE2E780F256007AB66 +S315400204206F3F483CC5303F587FE2F780AB123809F0 +S315400204307FD00000000000007FEAF780AB12380947 +S31540020440002000000000000080280000000000009C +S3154002045080100000000000007FEFF780AB123809E1 +S315400204607FEFF2010203A1117FF0000000000000BD +S315400204700010000000001000801FFFFFF203A111D0 +S315400204808000000000000000001ABCD000023809BB +S31540020490801ABCD0000001110000000000000000DC +S315400204A06530000065301000653020006530300050 +S315400204B06530400065305000653060006530700040 +S315400204C065308000653090006530A0006530B00030 +S315400204D06530C0006530D0006530E0006530F00020 +S315400204E0653100006531100065312000653130000C +S315400204F065314000653150006531600065317000FC +S3154002050065318000653190006531A0006531B000EB +S315400205106531C0006531D0006531E0006531F000DB +S3154002052065320000653210006532200065323000C7 +S3154002053065324000653250006532600065327000B7 +S3154002054065328000653290006532A0006532B000A7 +S315400205506532C0006532D0006532E0006532F00097 +S315400205606533000065331000653320006533300083 +S315400205706533400065335000653360006533700073 +S3154002058065338000653390006533A0006533B00063 +S315400205906533C0006533D0006533E0006533F00053 +S315400205A0653400006534100065342000653430003F +S315400205B0653440006534500065346000653470002F +S315400205C065348000653490006534A0006534B0001F +S315400205D06534C0006534D0006534E0006534F0000F +S315400205E065350000653510006535200065353000FB +S315400205F065354000653550006535600065357000EB +S3154002060065358000653590006535A0006535B000DA +S315400206106535C0006535D0006535E0006535F000CA +S3154002062065360000653610006536200065363000B6 +S3154002063065364000653650006536600065367000A6 +S3154002064065368000653690006536A0006536B00096 +S315400206506536C0006536D0006536E0006536F00086 +S315400206606537000065371000653720006537300072 +S315400206706537400065375000653760006537700062 +S3154002068065378000653790006537A0006537B00052 +S315400206906537C0006537D0006537E0006537F00042 +S315400206A0653800006538100065382000653830002E +S315400206B0653840006538500065386000653870001E +S315400206C065388000653890006538A0006538B0000E +S315400206D06538C0006538D0006538E0006538F000FE +S315400206E065390000653910006539200065393000EA +S315400206F065394000653950006539600065397000DA +S3154002070065398000653990006539A0006539B000C9 +S315400207106539C0006539D0006539E0006539F000B9 +S31540020720653A0000653A1000653A2000653A3000A5 +S31540020730653A4000653A5000653A6000653A700095 +S31540020740653A8000653A9000653AA000653AB00085 +S31540020750653AC000653AD000653AE000653AF00075 +S31540020760653B0000653B1000653B2000653B300061 +S31540020770653B4000653B5000653B6000653B700051 +S31540020780653B8000653B9000653BA000653BB00041 +S31540020790653BC000653BD000653BE000653BF00031 +S315400207A0653C0000653C1000653C2000653C30001D +S315400207B0653C4000653C5000653C6000653C70000D +S315400207C0653C8000653C9000653CA000653CB000FD +S315400207D0653CC000653CD000653CE000653CF000ED +S315400207E0653D0000653D1000653D2000653D3000D9 +S315400207F0653D4000653D5000653D6000653D7000C9 +S31540020800653D8000653D9000653DA000653DB000B8 +S31540020810653DC000653DD000653DE000653DF000A8 +S31540020820653E0000653E1000653E2000653E300094 +S31540020830653E4000653E5000653E6000653E700084 +S31540020840653E8000653E9000653EA000653EB00074 +S31540020850653EC000653ED000653EE000653EF00064 +S31540020860653F0000653F1000653F2000653F300050 +S31540020870653F4000653F5000653F6000653F700040 +S31540020880653F8000653F9000653FA000653FB00030 +S31540020890653FC000653FD000653FE000653FF00020 +S315400208A00BC0A4068F346C9B0BC093731C18544721 +S315400208B00BC083008E183C230BC072AE83A9704ACC +S315400208C00BC0627C9CC166FF0BC0526A7ACE64A49E +S315400208D00BC04277C0B04ADA0BC032A412B191A023 +S315400208E00BC022EF168069500BC01358732804734D +S315400208F00BC003DFD10A08480BBFE909B3B0463241 +S315400209000BBFCA8E711B8E880BBFAC4D32D41430CE +S315400209100BBF8E4553D34B1B0BBF7076318237EFDD +S315400209200BBF52DF2BADF99C0BBF357FA47C936C7A +S315400209300BBF18570061F5EB0BBEFB64A6154515B8 +S315400209400BBEDEA7FE865A2B0BBEC22074D37FBCDB +S315400209500BBEA5CD763F66690BBE89AE722750F0B7 +S315400209600BBE6DC2D9F976230BBE520A212B976C68 +S315400209700BBE3683BD31CAA20BBE1B2F257575CA67 +S315400209800BBE000BD34C7BAF0BBDE51941F097FE76 +S315400209900BBDCA56EE76E9D00BBDAFC457C7AB7393 +S315400209A00BBD9560FE9616690BBD7B2C655872751C +S315400209B00BBD612610404EC00BBD474D8532E40942 +S315400209C00BBD2DA24BC19EDF0BBD1423ED22D101DF +S315400209D00BBCFAD1F42A88E40BBCE1ABED438E8022 +S315400209E00BBCC8B1666884820BBCAFE1EF1D2D011A +S315400209F00BBC973D1867D0EF0BBC7EC274CAC96266 +S31540020A000BBC6671983E29FE0BBC4E4A18298BA92F +S31540020A100BBC364B8B5DF6DB0BBC1E758A0FECBFEF +S31540020A200BBC06C7ADD18E7E0BBBEF41918CE1F676 +S31540020A300BBBD7E2D17E33360BBBC0AB0B2E921B20 +S31540020A400BBBA999DD6E6B650BBB92AEE8503CA71A +S31540020A500BBB7BE9CD2362720BBB654A2E6F002C22 +S31540020A600BBB4ECFAFED00FE0BBB3879F685313F5F +S31540020A700BBB2248A8486FDE0BBB0C3B6C6BF73BAB +S31540020A800BBAF651EB44BCEE0BBAE08BCE42E7F121 +S31540020A900BBACAE8BFED5CC00BBAB5686BDD5EDD6A +S31540020AA00BBAA00A7EBA475E0BBA8ACEA6354FEB80 +S31540020AB00BBA75B4910571DB0BBA60BBEEE358EF26 +S31540020AC00BBA4BE4708569410BBA372DC79BD7FEEB +S31540020AD00BBA2297A6CCD68C0BBA0E21C1B0CFA0A8 +S31540020AE00BB9F9CBCCCEB6050BB9E5957D98648B9F +S31540020AF00BB9D17E8A670EE70BB9BD86AA77C310BA +S31540020B000BB9A9AD95E7FAC40BB995F305B23CE525 +S31540020B100BB98256B3AACE570BB96ED85A7C720617 +S31540020B200BB95B77B5A537C80BB94834817359CC35 +S31540020B300BB9350E7B02284D0BB922056037032EC1 +S31540020B400BB90F18EFBE614A0BB8FC48E908E5221B +S31540020B500BB8E9950C487EA90BB8D6FD1A6D99E8F3 +S31540020B600BB8C480D5245A340BB8B21FFED1E1BCAF +S31540020B700BB89FDA5A91A5260BB88DAFAC32CB0A89 +S31540020B800BB87B9FB83596F60BB869AA43C8DFE126 +S31540020B900BB857CF14C791B50BB8460DF1B639C647 +S31540020BA00BB83466A1C09DF90BB822D8ECB75E6E7D +S31540020BB00BB811649B0DA16B0BB8000975D6C959C8 +S31540020BC00BB7EEC746C434A50BB7DD9DD8230752F3 +S31540020BD00BB7CC8CF4D9FE010BB7BB9468674A506D +S31540020BE00BB7AAB3FEDE78540BB799EB84E65D0CDD +S31540020BF00BB7893AC7B70D960BB778A19517DF01A0 +S31540020C000BB7681FBB5D6E910BB757B50967B24C00 +S31540020C100BB747614EA011A20BB737245AF7861479 +S31540020C200BB726FDFEE4C3A00BB716EE0B6268E8CF +S31540020C300BB706F451ED36CE0BB6F710A4824F80B1 +S31540020C400BB6E742D59D7CB40BB6D78AB8377D0E34 +S31540020C500BB6C7E81FC458720BB6B85AE031BB325E +S31540020C600BB6A8E2CDE557F90BB6997FBDBB504509 +S31540020C700BB68A318504A35C0BB67AF7F985A39B3A +S31540020C800BB66BD2F17471FF0BB65CC243777FCE63 +S31540020C900BB64DC5C6A416420BB63EDD527CE411D8 +S31540020CA00BB63008BEF090CF0BB62147E45855EB51 +S31540020CB00BB6129A9B769D520BB60400BD75A5845F +S31540020CC00BB5F57A23E62B070BB5E706A8BE172C1C +S31540020CD00BB5D8A6265733FF0BB5CA58776DE54BE9 +S31540020CE00BB5BC1D771FE6AB0BB5ADF500EB0E7829 +S31540020CF00BB59FDEF0AC15940BB591DB229D63F2EA +S31540020D000BB583E97355E1C10BB57609BFC7CD3241 +S31540020D100BB5683BE53F94B80BB55A7FC162B5B691 +S31540020D200BB54CD5322E9F7F0BB53F3C15F79AA19A +S31540020D300BB531B44B67B45A0BB5243DB17DAE30D9 +S31540020D400BB516D8278BF18F0BB509838D3787677D +S31540020D500BB4FC3FC27713AE0BB4EF0CA791D4BBD6 +S31540020D600BB4E1EA1D1EA6680BB4D4D8040308E509 +S31540020D700BB4C7D63D722B370BB4BAE4AAEBF9488B +S31540020D800BB4AE032E3C2D7E0BB4A131A97965C9B5 +S31540020D900BB4946FFF043C1C0BB487BE11866236BB +S31540020DA00BB47B1BC3F1C0BF0BB46E88F97F999B12 +S31540020DB00BB4620595AFAD730BB455917C47645441 +S31540020DC00BB4492C9150F96C0BB43CD6B91AA9C84C +S31540020DD00BB4308FD835E60B0BB42457D37687162F +S31540020DE00BB4182E8FF205900BB40C13F2FEB43BE3 +S31540020DF00BB40007E232FD1F0BB3F40A4364A1674A +S31540020E000BB3E81AFCA7FBF00BB3DC39F44F468A66 +S31540020E100BB3D06710E9E1C30BB3C4A239439F4F6A +S31540020E200BB3B8EB54640EF10BB3AD42498DCDDF33 +S31540020E300BB3A1A7003DD89B0BB39619602ADF2BB3 +S31540020E400BB38A9951449BB80BB37F26BBB32B791C +S31540020E500BB373C187D669EA0BB368699E454E44A4 +S31540020E600BB35D1EE7CD4B2D0BB351E14D71B098DF +S31540020E700BB346B0B86B0FC30BB33B8D1226A15AC8 +S31540020E800BB330764445ADAC0BB3256C389CF6EBD0 +S31540020E900BB31A6ED934256E0BB30F7E104535F55A +S31540020EA00BB30499C83BE9D60BB2F9C1EBB539236A +S31540020EB00BB2EEF6657EC6AA0BB2E437209655D53E +S31540020EC00BB2D984082942630BB2CEDD0793F9E708 +S31540020ED00BB2C4420A6177190BB2B9B2FC4ABEDA06 +S31540020EE00BB2AF2FC9365EFF0BB2A4B85D37EEC167 +S31540020EF00BB29A4CA48F90E30BB28FEC8BA9777905 +S31540020F000BB28597FF1D694D0BB27B4EEBAE48DDAA +S31540020F100BB271113E499CEE0BB266DEE4071AA88B +S31540020F200BB25CB7CA2831380BB2529BDE1796F722 +S31540020F300BB2488B0D68D8030BB23E8545D7E65AAD +S31540020F400BB2348A7548AB540BB22A9A89C69A9721 +S31540020F500BB220B5718446610BB216DB1ADAF53F45 +S31540020F600BB20D0B744A39100BB203466C77876C81 +S31540020F700BB1F98BF22DD3490BB1EFDBF45D27FFB1 +S31540020F800BB1E636621A457E0BB1DC9B2A9E3DD5F5 +S31540020F900BB1D30A3D4613EE0BB1C98389925B81ED +S31540020FA00BB1C006FF26DA3F0BB1B6948DCA2A288A +S31540020FB00BB1AD2C25655D0F0BB1A3CDB603A13D9B +S31540020FC00BB19A792FD1E7410BB1912E831E88D26C +S31540020FD00BB187EDA058F0D60BB17EB678114473AB +S31540020FE00BB17588FAF80D3A0BB16C6519DDE45D03 +S31540020FF00BB1634AC5B31EEF0BB15A39EF877B2853 +S315400210000BB151328889CEAE0BB148348207B5DB7B +S315400210100BB13F3FCD6D43FF0BB136545C44B49A9E +S315400210200BB12D7220361D870BB124990B07221B5B +S315400210300BB11BC90E9AA72D0BB113021CF0880FD8 +S315400210400BB10A4428254C650BB1018F2271DEE5AE +S315400210500BB0F8E2FE2B44F40BB0F03FADC257237F +S315400210600BB0E7A523C37A850BB0DF1352D65AD904 +S315400210700BB0D68A2DBDA58C0BB0CE09A756C58915 +S315400210800BB0C591B2999FDB0BB0BD224298511568 +S315400210900BB0B4BB4A7EEB870BB0AC5CBD93363625 +S315400210A0529000000000000052900FF807F60DEB38 +S315400210B052901FE03F61BAD052902FB8D4E30F4806 +S315400210C052903F81F636B80C52904F3BD03C0A6460 +S315400210D052905EE68EFAD48B52906E825DA8FC2BBD +S315400210E052907E0F66AFED0752908D8DD3B1D9AA3D +S315400210F052909CFDCD8ED0095290AC5F7C69A3C8BC +S315400211005290BBB307ACAFDB5290CAF8960E710D44 +S315400211105290DA304D95FB065290E95A539F492C2C +S315400211205290F876CCDF6CD952910785DD689A29C0 +S3154002113052911687A8AE14A35291257C5187FD0978 +S3154002114052913463FA37014E5291433EC467EFFBE4 +S315400211505291520CD1372FEB529160CE41341D74CD +S3154002116052916F8334644DF952917E2BCA46BAB975 +S3154002117052918CC821D6D3E352919B58598F7C9F6A +S315400211805291A9DC8F6DF1045291B854E0F496A0C5 +S315400211905291C6C16B2DB8705291D5224AAE2EE1FC +S315400211A05291E3779B97F4A85291F1C1799CA8FF9B +S315400211B0529200000000000052920E33499A21A931 +S315400211C052921C5B70D9F82452922A788FC76DE5E9 +S315400211D05292388AC0059C28529246921AD4EA49BB +S315400211E05292548EB9151E8552926280B3476096CA +S315400211F05292706821902E9A52927E451BB944C3F0 +S3154002120052928C17B9337834529299E011188575F7 +S315400212105292A79E3A2CD2E65292B5524AE1278E74 +S315400212205292C2FC595456A75292D09C7B54E03EED +S315400212305292DE32C66287415292EBBF4FAFDD4BCE +S315400212405292F9422C23C47E529306BB705AE7C38C +S315400212505293142B30A929AB52932191811B0A41F7 +S3154002126052932EEE7577041652933C42213EE0C9C4 +S315400212705293498C97B10540529356CDEBC9B5E28C +S31540021280529364063044530652937135779C8DCB04 +S3154002129052937E5BD40F95A152938B79579D3EAB69 +S315400212A05293988E1409212E5293A59A1ADBB2575D +S315400212B05293B29D7D6356625293BF984CB56C77FA +S315400212C05293CC8A99AF54535293D97474F76DF2B0 +S315400212D05293E655EEFE13675293F32F17FE8D0493 +S315400212E0529400000000000052940CC8B6D657C271 +S315400212F0529419894C2329F052942641CF5695721D +S31540021300529432F24FB01C7A52943F9ADC3F79CED5 +S3154002131052944C3B83E57153529458D455549C1A7B +S31540021320529465655F122FF6529471EEAF76C2C63D +S3154002133052947E7054AF098952948AEA5CBC935F98 +S315400213405294975CD57680885294A3C7CC8A358AC4 +S315400213505294B02B4F7C0A885294BC876BA7F6EC0A +S315400213605294C8DC2E4239805294D529A457FCFCAB +S315400213705294E16FDACFF9375294EDAEDE6B10FE3E +S315400213805294F9E6BBC4ECB3529506177F5491BB0F +S3154002139052951241356CF6E052951E63EA3D95B080 +S315400213A052952A7FA9D2F8EA529536948017481068 +S315400213B0529542A278D2D03652954EA99FAC8A0F08 +S315400213C052955AAA002A9D5A529566A3A5B2E1B1F0 +S315400213D0529572969B8B5CD852957E82ECDABE8D84 +S315400213E052958A68A4A8D9F352959647CDDF1CA593 +S315400213F05295A220734903775295ADF29F948CFB86 +S315400214005295B9BE5D52A9DA5295C583B6F7AB037A +S315400214105295D142B6DBADC55295DCFB673B05DF43 +S315400214205295E8ADD236A58F5295F45A01D483B47B +S31540021430529600000000000052960B9FD68A4554F1 +S31540021440529617398F2AAA48529622CD337F0FE8F1 +S3154002145052962E5ACD0C3EBE529639E2653E421BFC +S31540021460529645640568C1C3529650DFB6C759F4D1 +S3154002147052965C55827DF1D2529667C57199104B50 +S315400214805296732F8D0E2F7752967E93DDBC0E7336 +S31540021490529689F26C6B01D05296954B41CD42934E +S315400214A000000000000000000000000000000000F4 +S315400214B000000000000000000000000000000000E4 +S315400214C000000000000000000000000000000000D4 +S315400214D000000000000000000000000000000000C4 +S315400214E000000000000000000000000000000000B4 +S315400214F000000000000000000000000000000000A4 S315400215000000000000000000000000000000000093 S315400215100000000000000000000000000000000083 S315400215200000000000000000000000000000000073 @@ -9052,8 +9228,8 @@ S31540027FC00000000000000000000000000000000069 S31540027FD00000000000000000000000000000000059 S31540027FE00000000000000000000000000000000049 S31540027FF00000000000000000000000000000000039 -S315400280000000003F0000000C0000003F000000128C -S31540028010000000FF00000018000000000000000001 +S315400280000000000000000000000000000000000028 +S315400280100000000000000000000000000000000018 S315400280200000000000000000000000000000000008 S3154002803000000000000000000000000000000000F8 S3154002804000000000000000000000000000000000E8 @@ -15964,8 +16140,8 @@ S31540042FC000000000000000000000000000000000B7 S31540042FD000000000000000000000000000000000A7 S31540042FE00000000000000000000000000000000097 S31540042FF00000000000000000000000000000000087 -S315400430000000000000000000000000000000000076 -S315400430100000000000000000000000000000000066 +S3154004300000000018000000FF000000120000003F0E +S315400430100000000C0000003F00000000000000001B S315400430200000000000000000000000000000000056 S315400430300000000000000000000000000000000046 S315400430400000000000000000000000000000000036 @@ -17244,44 +17420,44 @@ S31540047FC00000000000000000000000000000000067 S31540047FD00000000000000000000000000000000057 S31540047FE00000000000000000000000000000000047 S31540047FF00000000000000000000000000000000037 -S315400480000000000000000000000000000000000026 -S315400480100000000000000000000000000000000016 -S315400480200000000000000000000000000000000006 -S3154004803000000000000000000000000000000000F6 -S3154004804000000000000000000000000000000000E6 -S3154004805000000000000000000000000000000000D6 -S3154004806000000000000000000000000000000000C6 -S3154004807000000000000000000000000000000000B6 -S3154004808000000000000000000000000000000000A6 -S315400480900000000000000000000000000000000096 -S315400480A00000000000000000000000000000000086 -S315400480B00000000000000000000000000000000076 -S315400480C00000000000000000000000000000000066 -S315400480D00000000000000000000000000000000056 -S315400480E00000000000000000000000000000000046 -S315400480F00000000000000000000000000000000036 -S315400481000000000000000000000000000000000025 -S315400481100000000000000000000000000000000015 -S315400481200000000000000000000000000000000005 -S3154004813000000000000000000000000000000000F5 -S3154004814000000000000000000000000000000000E5 -S3154004815000000000000000000000000000000000D5 -S3154004816000000000000000000000000000000000C5 -S3154004817000000000000000000000000000000000B5 -S3154004818000000000000000000000000000000000A5 -S315400481900000000000000000000000000000000095 -S315400481A00000000000000000000000000000000085 -S315400481B00000000000000000000000000000000075 -S315400481C00000000000000000000000000000000065 -S315400481D00000000000000000000000000000000055 -S315400481E00000000000000000000000000000000045 +S31540048000000000020000000300000000000000031E +S31540048010FFFFFFFEFFFFFFFF00000002FFFFFFFD23 +S315400480200000000000000000000000010000000005 +S3154004803000000000FFFFFFFF0000000000000001F9 +S31540048040FFFFFFFFFFFFFFFFFFFFFFFF00000001F1 +S31540048050FFFFFFFFFFFFFFFE0000000300000000DC +S31540048060FFFFFFFEFFFFFFFD0000000000000009C8 +S315400480700000000700000001FFFFFFF700000002B8 +S31540048080FFFFFFFCFFFFFFF800000002FFFFFFFCBD +S31540048090FFFFFFF8FFFFFFFC00000002000000089E +S315400480A0FFFFFFFCFFFFFFFEFFFFFFF8FFFFFFF8A8 +S315400480B000000001FFFFFFF8FFFFFFF7000000008C +S315400480C00000000B00000002000000050000002F25 +S315400480D0000000020000001700003039000002A72B +S315400480E000000012FFFF076C0000004DFFFFFCC6B6 +S315400480F000003039FFFFFD59FFFFFFEEFFFF076C1D +S31540048100FFFFFFB30000033A00000091FFFFE84180 +S3154004811000000000FFFFFD84FFFED02F000000009A +S315400481200000F6FA006E49810000000000000000DD +S3154004813000000000000000000000000200000003F0 +S3154004814000000000000000000000000100000000E4 +S31540048150FFFFFFFE0000000355555554FFFFFFFE89 +S315400481600000000355555554700FFFFE00000007EC +S315400481701002492400000000000000000000000036 +S315400481800000000200000003000000060000000298 +S31540048190FFFFFFFDFFFFFFFA0000000000000001A3 +S315400481A00000000000000000FFFFFFFF0000000089 +S315400481B000000001FFFFFFFFFFFFFFFFFFFFFFFF80 +S315400481C000000001FFFFFFFFFFFFFFFE000000036A +S315400481D0FFFFFFFAFFFFFFFEFFFFFFFD0000000663 +S315400481E0000000000000000000000009FFFFF0004E S315400481F00000000000000000000000000000000035 -S315400482000000000000000000000000000000000024 +S31540048200000000000000000100000002000000031E S315400482100000000000000000000000000000000014 -S315400482200000000000000000000000000000000004 -S3154004823000000000000000000000000000000000F4 +S315400482204004822800000000000000004004851439 +S31540048230400485E0400486AC0000000000000000D5 S3154004824000000000000000000000000000000000E4 -S3154004825000000000000000000000000000000000D4 +S315400482500000000000000000000000004001C0983B S3154004826000000000000000000000000000000000C4 S3154004827000000000000000000000000000000000B4 S3154004828000000000000000000000000000000000A4 @@ -17289,8 +17465,8 @@ S315400482900000000000000000000000000000000094 S315400482A00000000000000000000000000000000084 S315400482B00000000000000000000000000000000074 S315400482C00000000000000000000000000000000064 -S315400482D00000000000000000000000000000000054 -S315400482E00000000000000000000000000000000044 +S315400482D00000000000000001330EABCD1234E66D01 +S315400482E0DEEC0005000B000000000000000000006A S315400482F00000000000000000000000000000000034 S315400483000000000000000000000000000000000023 S315400483100000000000000000000000000000000013 @@ -17364,72 +17540,72 @@ S3154004874000000000000000000000000000000000DF S3154004875000000000000000000000000000000000CF S3154004876000000000000000000000000000000000BF S3154004877000000000000000000000000000000000AF -S31540048780000000000000000000000000000000009F -S31540048790000000000000000000000000000000008F -S315400487A0000000000000000000000000000000007F -S315400487B0000000000000000000000000000000006F -S315400487C0000000000000000000000000000000005F -S315400487D0000000000000000000000000000000004F -S315400487E0000000000000000000000000000000003F -S315400487F0000000000000000000000000000000002F -S31540048800000000000000000000000000000000001E -S31540048810000000000000000000000000000000000E -S3154004882000000000000000000000000000000000FE -S3154004883000000000000000000000000000000000EE -S3154004884000000000000000000000000000000000DE -S3154004885000000000000000000000000000000000CE -S3154004886000000000000000000000000000000000BE -S3154004887000000000000000000000000000000000AE -S31540048880000000000000000000000000000000009E -S31540048890000000000000000000000000000000008E -S315400488A0000000000000000000000000000000007E -S315400488B0000000000000000000000000000000006E -S315400488C0000000000000000000000000000000005E -S315400488D0000000000000000000000000000000004E -S315400488E0000000000000000000000000000000003E -S315400488F0000000000000000000000000000000002E -S31540048900000000000000000000000000000000001D -S31540048910000000000000000000000000000000000D -S3154004892000000000000000000000000000000000FD -S3154004893000000000000000000000000000000000ED -S3154004894000000000000000000000000000000000DD -S3154004895000000000000000000000000000000000CD -S3154004896000000000000000000000000000000000BD -S3154004897000000000000000000000000000000000AD -S31540048980000000000000000000000000000000009D -S31540048990000000000000000000000000000000008D -S315400489A0000000000000000000000000000000007D -S315400489B0000000000000000000000000000000006D -S315400489C0000000000000000000000000000000005D -S315400489D0000000000000000000000000000000004D -S315400489E0000000000000000000000000000000003D -S315400489F0000000000000000000000000000000002D -S31540048A00000000000000000000000000000000001C -S31540048A10000000000000000000000000000000000C -S31540048A2000000000000000000000000000000000FC -S31540048A3000000000000000000000000000000000EC -S31540048A4000000000000000000000000000000000DC -S31540048A5000000000000000000000000000000000CC -S31540048A6000000000000000000000000000000000BC -S31540048A7000000000000000000000000000000000AC -S31540048A80000000000000000000000000000000009C -S31540048A90000000000000000000000000000000008C -S31540048AA0000000000000000000000000000000007C -S31540048AB0000000000000000000000000000000006C -S31540048AC0000000000000000000000000000000005C -S31540048AD0000000000000000000000000000000004C -S31540048AE0000000000000000000000000000000003C -S31540048AF0000000000000000000000000000000002C -S31540048B00000000000000000000000000000000001B -S31540048B10000000000000000000000000000000000B -S31540048B2000000000000000000000000000000000FB -S31540048B3000000000000000000000000000000000EB -S31540048B4000000000000000000000000000000000DB -S31540048B5000000000000000000000000000000000CB -S31540048B6000000000000000000000000000000000BB -S31540048B7000000000000000000000000000000000AB -S31540048B80000000000000000000000000000000009B -S31540048B90000000000000000000000000000000008B +S315400487804004877840048778400487804004878083 +S315400487904004878840048788400487904004879033 +S315400487A04004879840048798400487A0400487A0E3 +S315400487B0400487A8400487A8400487B0400487B093 +S315400487C0400487B8400487B8400487C0400487C043 +S315400487D0400487C8400487C8400487D0400487D0F3 +S315400487E0400487D8400487D8400487E0400487E0A3 +S315400487F0400487E8400487E8400487F0400487F053 +S31540048800400487F8400487F8400488004004880000 +S3154004881040048808400488084004881040048810AE +S31540048820400488184004881840048820400488205E +S31540048830400488284004882840048830400488300E +S3154004884040048838400488384004884040048840BE +S31540048850400488484004884840048850400488506E +S31540048860400488584004885840048860400488601E +S3154004887040048868400488684004887040048870CE +S31540048880400488784004887840048880400488807E +S31540048890400488884004888840048890400488902E +S315400488A04004889840048898400488A0400488A0DE +S315400488B0400488A8400488A8400488B0400488B08E +S315400488C0400488B8400488B8400488C0400488C03E +S315400488D0400488C8400488C8400488D0400488D0EE +S315400488E0400488D8400488D8400488E0400488E09E +S315400488F0400488E8400488E8400488F0400488F04E +S31540048900400488F8400488F84004890040048900FB +S3154004891040048908400489084004891040048910A9 +S315400489204004891840048918400489204004892059 +S315400489304004892840048928400489304004893009 +S3154004894040048938400489384004894040048940B9 +S315400489504004894840048948400489504004895069 +S315400489604004895840048958400489604004896019 +S3154004897040048968400489684004897040048970C9 +S315400489804004897840048978400489804004898079 +S315400489904004898840048988400489904004899029 +S315400489A04004899840048998400489A0400489A0D9 +S315400489B0400489A8400489A8400489B0400489B089 +S315400489C0400489B8400489B8400489C0400489C039 +S315400489D0400489C8400489C8400489D0400489D0E9 +S315400489E0400489D8400489D8400489E0400489E099 +S315400489F0400489E8400489E8400489F0400489F049 +S31540048A00400489F8400489F840048A0040048A00F6 +S31540048A1040048A0840048A0840048A1040048A10A4 +S31540048A2040048A1840048A1840048A2040048A2054 +S31540048A3040048A2840048A2840048A3040048A3004 +S31540048A4040048A3840048A3840048A4040048A40B4 +S31540048A5040048A4840048A4840048A5040048A5064 +S31540048A6040048A5840048A5840048A6040048A6014 +S31540048A7040048A6840048A6840048A7040048A70C4 +S31540048A8040048A7840048A7840048A8040048A8074 +S31540048A9040048A8840048A8840048A9040048A9024 +S31540048AA040048A9840048A9840048AA040048AA0D4 +S31540048AB040048AA840048AA840048AB040048AB084 +S31540048AC040048AB840048AB840048AC040048AC034 +S31540048AD040048AC840048AC840048AD040048AD0E4 +S31540048AE040048AD840048AD840048AE040048AE094 +S31540048AF040048AE840048AE840048AF040048AF044 +S31540048B0040048AF840048AF840048B0040048B00F1 +S31540048B1040048B0840048B0840048B1040048B109F +S31540048B2040048B1840048B1840048B2040048B204F +S31540048B3040048B2840048B2840048B3040048B30FF +S31540048B4040048B3840048B3840048B4040048B40AF +S31540048B5040048B4840048B4840048B5040048B505F +S31540048B6040048B5840048B5840048B6040048B600F +S31540048B7040048B6840048B6840048B7040048B70BF +S31540048B8000020000FFFFFFFF0000000040048B8846 +S31540048B900000000000000000000000000000000289 S31540048BA0000000000000000000000000000000007B S31540048BB0000000000000000000000000000000006B S31540048BC0000000000000000000000000000000005B @@ -17438,2056 +17614,7 @@ S31540048BE0000000000000000000000000000000003B S31540048BF0000000000000000000000000000000002B S31540048C00000000000000000000000000000000001A S31540048C10000000000000000000000000000000000A -S31540048C2000000000000000000000000000000000FA -S31540048C3000000000000000000000000000000000EA -S31540048C4000000000000000000000000000000000DA -S31540048C5000000000000000000000000000000000CA -S31540048C6000000000000000000000000000000000BA -S31540048C7000000000000000000000000000000000AA -S31540048C80000000000000000000000000000000009A -S31540048C90000000000000000000000000000000008A -S31540048CA0000000000000000000000000000000007A -S31540048CB0000000000000000000000000000000006A -S31540048CC0000000000000000000000000000000005A -S31540048CD0000000000000000000000000000000004A -S31540048CE0000000000000000000000000000000003A -S31540048CF0000000000000000000000000000000002A -S31540048D000000000000000000000000000000000019 -S31540048D100000000000000000000000000000000009 -S31540048D2000000000000000000000000000000000F9 -S31540048D3000000000000000000000000000000000E9 -S31540048D4000000000000000000000000000000000D9 -S31540048D5000000000000000000000000000000000C9 -S31540048D6000000000000000000000000000000000B9 -S31540048D7000000000000000000000000000000000A9 -S31540048D800000000000000000000000000000000099 -S31540048D900000000000000000000000000000000089 -S31540048DA00000000000000000000000000000000079 -S31540048DB00000000000000000000000000000000069 -S31540048DC00000000000000000000000000000000059 -S31540048DD00000000000000000000000000000000049 -S31540048DE00000000000000000000000000000000039 -S31540048DF00000000000000000000000000000000029 -S31540048E000000000000000000000000000000000018 -S31540048E100000000000000000000000000000000008 -S31540048E2000000000000000000000000000000000F8 -S31540048E3000000000000000000000000000000000E8 -S31540048E4000000000000000000000000000000000D8 -S31540048E5000000000000000000000000000000000C8 -S31540048E6000000000000000000000000000000000B8 -S31540048E7000000000000000000000000000000000A8 -S31540048E800000000000000000000000000000000098 -S31540048E900000000000000000000000000000000088 -S31540048EA00000000000000000000000000000000078 -S31540048EB00000000000000000000000000000000068 -S31540048EC00000000000000000000000000000000058 -S31540048ED00000000000000000000000000000000048 -S31540048EE00000000000000000000000000000000038 -S31540048EF00000000000000000000000000000000028 -S31540048F000000000000000000000000000000000017 -S31540048F100000000000000000000000000000000007 -S31540048F2000000000000000000000000000000000F7 -S31540048F3000000000000000000000000000000000E7 -S31540048F4000000000000000000000000000000000D7 -S31540048F5000000000000000000000000000000000C7 -S31540048F6000000000000000000000000000000000B7 -S31540048F7000000000000000000000000000000000A7 -S31540048F800000000000000000000000000000000097 -S31540048F900000000000000000000000000000000087 -S31540048FA00000000000000000000000000000000077 -S31540048FB00000000000000000000000000000000067 -S31540048FC00000000000000000000000000000000057 -S31540048FD00000000000000000000000000000000047 -S31540048FE00000000000000000000000000000000037 -S31540048FF00000000000000000000000000000000027 -S315400490000000000000000000000000000000000016 -S315400490100000000000000000000000000000000006 -S3154004902000000000000000000000000000000000F6 -S3154004903000000000000000000000000000000000E6 -S3154004904000000000000000000000000000000000D6 -S3154004905000000000000000000000000000000000C6 -S3154004906000000000000000000000000000000000B6 -S3154004907000000000000000000000000000000000A6 -S315400490800000000000000000000000000000000096 -S315400490900000000000000000000000000000000086 -S315400490A00000000000000000000000000000000076 -S315400490B00000000000000000000000000000000066 -S315400490C00000000000000000000000000000000056 -S315400490D00000000000000000000000000000000046 -S315400490E00000000000000000000000000000000036 -S315400490F00000000000000000000000000000000026 -S315400491000000000000000000000000000000000015 -S315400491100000000000000000000000000000000005 -S3154004912000000000000000000000000000000000F5 -S3154004913000000000000000000000000000000000E5 -S3154004914000000000000000000000000000000000D5 -S3154004915000000000000000000000000000000000C5 -S3154004916000000000000000000000000000000000B5 -S3154004917000000000000000000000000000000000A5 -S315400491800000000000000000000000000000000095 -S315400491900000000000000000000000000000000085 -S315400491A00000000000000000000000000000000075 -S315400491B00000000000000000000000000000000065 -S315400491C00000000000000000000000000000000055 -S315400491D00000000000000000000000000000000045 -S315400491E00000000000000000000000000000000035 -S315400491F00000000000000000000000000000000025 -S315400492000000000000000000000000000000000014 -S315400492100000000000000000000000000000000004 -S3154004922000000000000000000000000000000000F4 -S3154004923000000000000000000000000000000000E4 -S3154004924000000000000000000000000000000000D4 -S3154004925000000000000000000000000000000000C4 -S3154004926000000000000000000000000000000000B4 -S3154004927000000000000000000000000000000000A4 -S315400492800000000000000000000000000000000094 -S315400492900000000000000000000000000000000084 -S315400492A00000000000000000000000000000000074 -S315400492B00000000000000000000000000000000064 -S315400492C00000000000000000000000000000000054 -S315400492D00000000000000000000000000000000044 -S315400492E00000000000000000000000000000000034 -S315400492F00000000000000000000000000000000024 -S315400493000000000000000000000000000000000013 -S315400493100000000000000000000000000000000003 -S3154004932000000000000000000000000000000000F3 -S3154004933000000000000000000000000000000000E3 -S3154004934000000000000000000000000000000000D3 -S3154004935000000000000000000000000000000000C3 -S3154004936000000000000000000000000000000000B3 -S3154004937000000000000000000000000000000000A3 -S315400493800000000000000000000000000000000093 -S315400493900000000000000000000000000000000083 -S315400493A00000000000000000000000000000000073 -S315400493B00000000000000000000000000000000063 -S315400493C00000000000000000000000000000000053 -S315400493D00000000000000000000000000000000043 -S315400493E00000000000000000000000000000000033 -S315400493F00000000000000000000000000000000023 -S315400494000000000000000000000000000000000012 -S315400494100000000000000000000000000000000002 -S3154004942000000000000000000000000000000000F2 -S3154004943000000000000000000000000000000000E2 -S3154004944000000000000000000000000000000000D2 -S3154004945000000000000000000000000000000000C2 -S3154004946000000000000000000000000000000000B2 -S3154004947000000000000000000000000000000000A2 -S315400494800000000000000000000000000000000092 -S315400494900000000000000000000000000000000082 -S315400494A00000000000000000000000000000000072 -S315400494B00000000000000000000000000000000062 -S315400494C00000000000000000000000000000000052 -S315400494D00000000000000000000000000000000042 -S315400494E00000000000000000000000000000000032 -S315400494F00000000000000000000000000000000022 -S315400495000000000000000000000000000000000011 -S315400495100000000000000000000000000000000001 -S3154004952000000000000000000000000000000000F1 -S3154004953000000000000000000000000000000000E1 -S3154004954000000000000000000000000000000000D1 -S3154004955000000000000000000000000000000000C1 -S3154004956000000000000000000000000000000000B1 -S3154004957000000000000000000000000000000000A1 -S315400495800000000000000000000000000000000091 -S315400495900000000000000000000000000000000081 -S315400495A00000000000000000000000000000000071 -S315400495B00000000000000000000000000000000061 -S315400495C00000000000000000000000000000000051 -S315400495D00000000000000000000000000000000041 -S315400495E00000000000000000000000000000000031 -S315400495F00000000000000000000000000000000021 -S315400496000000000000000000000000000000000010 -S315400496100000000000000000000000000000000000 -S3154004962000000000000000000000000000000000F0 -S3154004963000000000000000000000000000000000E0 -S3154004964000000000000000000000000000000000D0 -S3154004965000000000000000000000000000000000C0 -S3154004966000000000000000000000000000000000B0 -S3154004967000000000000000000000000000000000A0 -S315400496800000000000000000000000000000000090 -S315400496900000000000000000000000000000000080 -S315400496A00000000000000000000000000000000070 -S315400496B00000000000000000000000000000000060 -S315400496C00000000000000000000000000000000050 -S315400496D00000000000000000000000000000000040 -S315400496E00000000000000000000000000000000030 -S315400496F00000000000000000000000000000000020 -S31540049700000000000000000000000000000000000F -S3154004971000000000000000000000000000000000FF -S3154004972000000000000000000000000000000000EF -S3154004973000000000000000000000000000000000DF -S3154004974000000000000000000000000000000000CF -S3154004975000000000000000000000000000000000BF -S3154004976000000000000000000000000000000000AF -S31540049770000000000000000000000000000000009F -S31540049780000000000000000000000000000000008F -S31540049790000000000000000000000000000000007F -S315400497A0000000000000000000000000000000006F -S315400497B0000000000000000000000000000000005F -S315400497C0000000000000000000000000000000004F -S315400497D0000000000000000000000000000000003F -S315400497E0000000000000000000000000000000002F -S315400497F0000000000000000000000000000000001F -S31540049800000000000000000000000000000000000E -S3154004981000000000000000000000000000000000FE -S3154004982000000000000000000000000000000000EE -S3154004983000000000000000000000000000000000DE -S3154004984000000000000000000000000000000000CE -S3154004985000000000000000000000000000000000BE -S3154004986000000000000000000000000000000000AE -S31540049870000000000000000000000000000000009E -S31540049880000000000000000000000000000000008E -S31540049890000000000000000000000000000000007E -S315400498A0000000000000000000000000000000006E -S315400498B0000000000000000000000000000000005E -S315400498C0000000000000000000000000000000004E -S315400498D0000000000000000000000000000000003E -S315400498E0000000000000000000000000000000002E -S315400498F0000000000000000000000000000000001E -S31540049900000000000000000000000000000000000D -S3154004991000000000000000000000000000000000FD -S3154004992000000000000000000000000000000000ED -S3154004993000000000000000000000000000000000DD -S3154004994000000000000000000000000000000000CD -S3154004995000000000000000000000000000000000BD -S3154004996000000000000000000000000000000000AD -S31540049970000000000000000000000000000000009D -S31540049980000000000000000000000000000000008D -S31540049990000000000000000000000000000000007D -S315400499A0000000000000000000000000000000006D -S315400499B0000000000000000000000000000000005D -S315400499C0000000000000000000000000000000004D -S315400499D0000000000000000000000000000000003D -S315400499E0000000000000000000000000000000002D -S315400499F0000000000000000000000000000000001D -S31540049A00000000000000000000000000000000000C -S31540049A1000000000000000000000000000000000FC -S31540049A2000000000000000000000000000000000EC -S31540049A3000000000000000000000000000000000DC -S31540049A4000000000000000000000000000000000CC -S31540049A5000000000000000000000000000000000BC -S31540049A6000000000000000000000000000000000AC -S31540049A70000000000000000000000000000000009C -S31540049A80000000000000000000000000000000008C -S31540049A90000000000000000000000000000000007C -S31540049AA0000000000000000000000000000000006C -S31540049AB0000000000000000000000000000000005C -S31540049AC0000000000000000000000000000000004C -S31540049AD0000000000000000000000000000000003C -S31540049AE0000000000000000000000000000000002C -S31540049AF0000000000000000000000000000000001C -S31540049B00000000000000000000000000000000000B -S31540049B1000000000000000000000000000000000FB -S31540049B2000000000000000000000000000000000EB -S31540049B3000000000000000000000000000000000DB -S31540049B4000000000000000000000000000000000CB -S31540049B5000000000000000000000000000000000BB -S31540049B6000000000000000000000000000000000AB -S31540049B70000000000000000000000000000000009B -S31540049B80000000000000000000000000000000008B -S31540049B90000000000000000000000000000000007B -S31540049BA0000000000000000000000000000000006B -S31540049BB0000000000000000000000000000000005B -S31540049BC0000000000000000000000000000000004B -S31540049BD0000000000000000000000000000000003B -S31540049BE0000000000000000000000000000000002B -S31540049BF0000000000000000000000000000000001B -S31540049C00000000000000000000000000000000000A -S31540049C1000000000000000000000000000000000FA -S31540049C2000000000000000000000000000000000EA -S31540049C3000000000000000000000000000000000DA -S31540049C4000000000000000000000000000000000CA -S31540049C5000000000000000000000000000000000BA -S31540049C6000000000000000000000000000000000AA -S31540049C70000000000000000000000000000000009A -S31540049C80000000000000000000000000000000008A -S31540049C90000000000000000000000000000000007A -S31540049CA0000000000000000000000000000000006A -S31540049CB0000000000000000000000000000000005A -S31540049CC0000000000000000000000000000000004A -S31540049CD0000000000000000000000000000000003A -S31540049CE0000000000000000000000000000000002A -S31540049CF0000000000000000000000000000000001A -S31540049D000000000000000000000000000000000009 -S31540049D1000000000000000000000000000000000F9 -S31540049D2000000000000000000000000000000000E9 -S31540049D3000000000000000000000000000000000D9 -S31540049D4000000000000000000000000000000000C9 -S31540049D5000000000000000000000000000000000B9 -S31540049D6000000000000000000000000000000000A9 -S31540049D700000000000000000000000000000000099 -S31540049D800000000000000000000000000000000089 -S31540049D900000000000000000000000000000000079 -S31540049DA00000000000000000000000000000000069 -S31540049DB00000000000000000000000000000000059 -S31540049DC00000000000000000000000000000000049 -S31540049DD00000000000000000000000000000000039 -S31540049DE00000000000000000000000000000000029 -S31540049DF00000000000000000000000000000000019 -S31540049E000000000000000000000000000000000008 -S31540049E1000000000000000000000000000000000F8 -S31540049E2000000000000000000000000000000000E8 -S31540049E3000000000000000000000000000000000D8 -S31540049E4000000000000000000000000000000000C8 -S31540049E5000000000000000000000000000000000B8 -S31540049E6000000000000000000000000000000000A8 -S31540049E700000000000000000000000000000000098 -S31540049E800000000000000000000000000000000088 -S31540049E900000000000000000000000000000000078 -S31540049EA00000000000000000000000000000000068 -S31540049EB00000000000000000000000000000000058 -S31540049EC00000000000000000000000000000000048 -S31540049ED00000000000000000000000000000000038 -S31540049EE00000000000000000000000000000000028 -S31540049EF00000000000000000000000000000000018 -S31540049F000000000000000000000000000000000007 -S31540049F1000000000000000000000000000000000F7 -S31540049F2000000000000000000000000000000000E7 -S31540049F3000000000000000000000000000000000D7 -S31540049F4000000000000000000000000000000000C7 -S31540049F5000000000000000000000000000000000B7 -S31540049F6000000000000000000000000000000000A7 -S31540049F700000000000000000000000000000000097 -S31540049F800000000000000000000000000000000087 -S31540049F900000000000000000000000000000000077 -S31540049FA00000000000000000000000000000000067 -S31540049FB00000000000000000000000000000000057 -S31540049FC00000000000000000000000000000000047 -S31540049FD00000000000000000000000000000000037 -S31540049FE00000000000000000000000000000000027 -S31540049FF00000000000000000000000000000000017 -S3154004A0000000000000000000000000000000000006 -S3154004A01000000000000000000000000000000000F6 -S3154004A02000000000000000000000000000000000E6 -S3154004A03000000000000000000000000000000000D6 -S3154004A04000000000000000000000000000000000C6 -S3154004A05000000000000000000000000000000000B6 -S3154004A06000000000000000000000000000000000A6 -S3154004A0700000000000000000000000000000000096 -S3154004A0800000000000000000000000000000000086 -S3154004A0900000000000000000000000000000000076 -S3154004A0A00000000000000000000000000000000066 -S3154004A0B00000000000000000000000000000000056 -S3154004A0C00000000000000000000000000000000046 -S3154004A0D00000000000000000000000000000000036 -S3154004A0E00000000000000000000000000000000026 -S3154004A0F00000000000000000000000000000000016 -S3154004A1000000000000000000000000000000000005 -S3154004A11000000000000000000000000000000000F5 -S3154004A12000000000000000000000000000000000E5 -S3154004A13000000000000000000000000000000000D5 -S3154004A14000000000000000000000000000000000C5 -S3154004A15000000000000000000000000000000000B5 -S3154004A16000000000000000000000000000000000A5 -S3154004A1700000000000000000000000000000000095 -S3154004A1800000000000000000000000000000000085 -S3154004A1900000000000000000000000000000000075 -S3154004A1A00000000000000000000000000000000065 -S3154004A1B00000000000000000000000000000000055 -S3154004A1C00000000000000000000000000000000045 -S3154004A1D00000000000000000000000000000000035 -S3154004A1E00000000000000000000000000000000025 -S3154004A1F00000000000000000000000000000000015 -S3154004A2000000000000000000000000000000000004 -S3154004A21000000000000000000000000000000000F4 -S3154004A22000000000000000000000000000000000E4 -S3154004A23000000000000000000000000000000000D4 -S3154004A24000000000000000000000000000000000C4 -S3154004A25000000000000000000000000000000000B4 -S3154004A26000000000000000000000000000000000A4 -S3154004A2700000000000000000000000000000000094 -S3154004A2800000000000000000000000000000000084 -S3154004A2900000000000000000000000000000000074 -S3154004A2A00000000000000000000000000000000064 -S3154004A2B00000000000000000000000000000000054 -S3154004A2C00000000000000000000000000000000044 -S3154004A2D00000000000000000000000000000000034 -S3154004A2E00000000000000000000000000000000024 -S3154004A2F00000000000000000000000000000000014 -S3154004A3000000000000000000000000000000000003 -S3154004A31000000000000000000000000000000000F3 -S3154004A32000000000000000000000000000000000E3 -S3154004A33000000000000000000000000000000000D3 -S3154004A34000000000000000000000000000000000C3 -S3154004A35000000000000000000000000000000000B3 -S3154004A36000000000000000000000000000000000A3 -S3154004A3700000000000000000000000000000000093 -S3154004A3800000000000000000000000000000000083 -S3154004A3900000000000000000000000000000000073 -S3154004A3A00000000000000000000000000000000063 -S3154004A3B00000000000000000000000000000000053 -S3154004A3C00000000000000000000000000000000043 -S3154004A3D00000000000000000000000000000000033 -S3154004A3E00000000000000000000000000000000023 -S3154004A3F00000000000000000000000000000000013 -S3154004A4000000000000000000000000000000000002 -S3154004A41000000000000000000000000000000000F2 -S3154004A42000000000000000000000000000000000E2 -S3154004A43000000000000000000000000000000000D2 -S3154004A44000000000000000000000000000000000C2 -S3154004A45000000000000000000000000000000000B2 -S3154004A46000000000000000000000000000000000A2 -S3154004A4700000000000000000000000000000000092 -S3154004A4800000000000000000000000000000000082 -S3154004A4900000000000000000000000000000000072 -S3154004A4A00000000000000000000000000000000062 -S3154004A4B00000000000000000000000000000000052 -S3154004A4C00000000000000000000000000000000042 -S3154004A4D00000000000000000000000000000000032 -S3154004A4E00000000000000000000000000000000022 -S3154004A4F00000000000000000000000000000000012 -S3154004A5000000000000000000000000000000000001 -S3154004A51000000000000000000000000000000000F1 -S3154004A52000000000000000000000000000000000E1 -S3154004A53000000000000000000000000000000000D1 -S3154004A54000000000000000000000000000000000C1 -S3154004A55000000000000000000000000000000000B1 -S3154004A56000000000000000000000000000000000A1 -S3154004A5700000000000000000000000000000000091 -S3154004A5800000000000000000000000000000000081 -S3154004A5900000000000000000000000000000000071 -S3154004A5A00000000000000000000000000000000061 -S3154004A5B00000000000000000000000000000000051 -S3154004A5C00000000000000000000000000000000041 -S3154004A5D00000000000000000000000000000000031 -S3154004A5E00000000000000000000000000000000021 -S3154004A5F00000000000000000000000000000000011 -S3154004A6000000000000000000000000000000000000 -S3154004A61000000000000000000000000000000000F0 -S3154004A62000000000000000000000000000000000E0 -S3154004A63000000000000000000000000000000000D0 -S3154004A64000000000000000000000000000000000C0 -S3154004A65000000000000000000000000000000000B0 -S3154004A66000000000000000000000000000000000A0 -S3154004A6700000000000000000000000000000000090 -S3154004A6800000000000000000000000000000000080 -S3154004A6900000000000000000000000000000000070 -S3154004A6A00000000000000000000000000000000060 -S3154004A6B00000000000000000000000000000000050 -S3154004A6C00000000000000000000000000000000040 -S3154004A6D00000000000000000000000000000000030 -S3154004A6E00000000000000000000000000000000020 -S3154004A6F00000000000000000000000000000000010 -S3154004A70000000000000000000000000000000000FF -S3154004A71000000000000000000000000000000000EF -S3154004A72000000000000000000000000000000000DF -S3154004A73000000000000000000000000000000000CF -S3154004A74000000000000000000000000000000000BF -S3154004A75000000000000000000000000000000000AF -S3154004A760000000000000000000000000000000009F -S3154004A770000000000000000000000000000000008F -S3154004A780000000000000000000000000000000007F -S3154004A790000000000000000000000000000000006F -S3154004A7A0000000000000000000000000000000005F -S3154004A7B0000000000000000000000000000000004F -S3154004A7C0000000000000000000000000000000003F -S3154004A7D0000000000000000000000000000000002F -S3154004A7E0000000000000000000000000000000001F -S3154004A7F0000000000000000000000000000000000F -S3154004A80000000000000000000000000000000000FE -S3154004A81000000000000000000000000000000000EE -S3154004A82000000000000000000000000000000000DE -S3154004A83000000000000000000000000000000000CE -S3154004A84000000000000000000000000000000000BE -S3154004A85000000000000000000000000000000000AE -S3154004A860000000000000000000000000000000009E -S3154004A870000000000000000000000000000000008E -S3154004A880000000000000000000000000000000007E -S3154004A890000000000000000000000000000000006E -S3154004A8A0000000000000000000000000000000005E -S3154004A8B0000000000000000000000000000000004E -S3154004A8C0000000000000000000000000000000003E -S3154004A8D0000000000000000000000000000000002E -S3154004A8E0000000000000000000000000000000001E -S3154004A8F0000000000000000000000000000000000E -S3154004A90000000000000000000000000000000000FD -S3154004A91000000000000000000000000000000000ED -S3154004A92000000000000000000000000000000000DD -S3154004A93000000000000000000000000000000000CD -S3154004A94000000000000000000000000000000000BD -S3154004A95000000000000000000000000000000000AD -S3154004A960000000000000000000000000000000009D -S3154004A970000000000000000000000000000000008D -S3154004A980000000000000000000000000000000007D -S3154004A990000000000000000000000000000000006D -S3154004A9A0000000000000000000000000000000005D -S3154004A9B0000000000000000000000000000000004D -S3154004A9C0000000000000000000000000000000003D -S3154004A9D0000000000000000000000000000000002D -S3154004A9E0000000000000000000000000000000001D -S3154004A9F0000000000000000000000000000000000D -S3154004AA0000000000000000000000000000000000FC -S3154004AA1000000000000000000000000000000000EC -S3154004AA2000000000000000000000000000000000DC -S3154004AA3000000000000000000000000000000000CC -S3154004AA4000000000000000000000000000000000BC -S3154004AA5000000000000000000000000000000000AC -S3154004AA60000000000000000000000000000000009C -S3154004AA70000000000000000000000000000000008C -S3154004AA80000000000000000000000000000000007C -S3154004AA90000000000000000000000000000000006C -S3154004AAA0000000000000000000000000000000005C -S3154004AAB0000000000000000000000000000000004C -S3154004AAC0000000000000000000000000000000003C -S3154004AAD0000000000000000000000000000000002C -S3154004AAE0000000000000000000000000000000001C -S3154004AAF0000000000000000000000000000000000C -S3154004AB0000000000000000000000000000000000FB -S3154004AB1000000000000000000000000000000000EB -S3154004AB2000000000000000000000000000000000DB -S3154004AB3000000000000000000000000000000000CB -S3154004AB4000000000000000000000000000000000BB -S3154004AB5000000000000000000000000000000000AB -S3154004AB60000000000000000000000000000000009B -S3154004AB70000000000000000000000000000000008B -S3154004AB80000000000000000000000000000000007B -S3154004AB90000000000000000000000000000000006B -S3154004ABA0000000000000000000000000000000005B -S3154004ABB0000000000000000000000000000000004B -S3154004ABC0000000000000000000000000000000003B -S3154004ABD0000000000000000000000000000000002B -S3154004ABE0000000000000000000000000000000001B -S3154004ABF0000000000000000000000000000000000B -S3154004AC0000000000000000000000000000000000FA -S3154004AC1000000000000000000000000000000000EA -S3154004AC2000000000000000000000000000000000DA -S3154004AC3000000000000000000000000000000000CA -S3154004AC4000000000000000000000000000000000BA -S3154004AC5000000000000000000000000000000000AA -S3154004AC60000000000000000000000000000000009A -S3154004AC70000000000000000000000000000000008A -S3154004AC80000000000000000000000000000000007A -S3154004AC90000000000000000000000000000000006A -S3154004ACA0000000000000000000000000000000005A -S3154004ACB0000000000000000000000000000000004A -S3154004ACC0000000000000000000000000000000003A -S3154004ACD0000000000000000000000000000000002A -S3154004ACE0000000000000000000000000000000001A -S3154004ACF0000000000000000000000000000000000A -S3154004AD0000000000000000000000000000000000F9 -S3154004AD1000000000000000000000000000000000E9 -S3154004AD2000000000000000000000000000000000D9 -S3154004AD3000000000000000000000000000000000C9 -S3154004AD4000000000000000000000000000000000B9 -S3154004AD5000000000000000000000000000000000A9 -S3154004AD600000000000000000000000000000000099 -S3154004AD700000000000000000000000000000000089 -S3154004AD800000000000000000000000000000000079 -S3154004AD900000000000000000000000000000000069 -S3154004ADA00000000000000000000000000000000059 -S3154004ADB00000000000000000000000000000000049 -S3154004ADC00000000000000000000000000000000039 -S3154004ADD00000000000000000000000000000000029 -S3154004ADE00000000000000000000000000000000019 -S3154004ADF00000000000000000000000000000000009 -S3154004AE0000000000000000000000000000000000F8 -S3154004AE1000000000000000000000000000000000E8 -S3154004AE2000000000000000000000000000000000D8 -S3154004AE3000000000000000000000000000000000C8 -S3154004AE4000000000000000000000000000000000B8 -S3154004AE5000000000000000000000000000000000A8 -S3154004AE600000000000000000000000000000000098 -S3154004AE700000000000000000000000000000000088 -S3154004AE800000000000000000000000000000000078 -S3154004AE900000000000000000000000000000000068 -S3154004AEA00000000000000000000000000000000058 -S3154004AEB00000000000000000000000000000000048 -S3154004AEC00000000000000000000000000000000038 -S3154004AED00000000000000000000000000000000028 -S3154004AEE00000000000000000000000000000000018 -S3154004AEF00000000000000000000000000000000008 -S3154004AF0000000000000000000000000000000000F7 -S3154004AF1000000000000000000000000000000000E7 -S3154004AF2000000000000000000000000000000000D7 -S3154004AF3000000000000000000000000000000000C7 -S3154004AF4000000000000000000000000000000000B7 -S3154004AF5000000000000000000000000000000000A7 -S3154004AF600000000000000000000000000000000097 -S3154004AF700000000000000000000000000000000087 -S3154004AF800000000000000000000000000000000077 -S3154004AF900000000000000000000000000000000067 -S3154004AFA00000000000000000000000000000000057 -S3154004AFB00000000000000000000000000000000047 -S3154004AFC00000000000000000000000000000000037 -S3154004AFD00000000000000000000000000000000027 -S3154004AFE00000000000000000000000000000000017 -S3154004AFF00000000000000000000000000000000007 -S3154004B00000000000000000000000000000000000F6 -S3154004B01000000000000000000000000000000000E6 -S3154004B02000000000000000000000000000000000D6 -S3154004B03000000000000000000000000000000000C6 -S3154004B04000000000000000000000000000000000B6 -S3154004B05000000000000000000000000000000000A6 -S3154004B0600000000000000000000000000000000096 -S3154004B0700000000000000000000000000000000086 -S3154004B0800000000000000000000000000000000076 -S3154004B0900000000000000000000000000000000066 -S3154004B0A00000000000000000000000000000000056 -S3154004B0B00000000000000000000000000000000046 -S3154004B0C00000000000000000000000000000000036 -S3154004B0D00000000000000000000000000000000026 -S3154004B0E00000000000000000000000000000000016 -S3154004B0F00000000000000000000000000000000006 -S3154004B10000000000000000000000000000000000F5 -S3154004B11000000000000000000000000000000000E5 -S3154004B12000000000000000000000000000000000D5 -S3154004B13000000000000000000000000000000000C5 -S3154004B14000000000000000000000000000000000B5 -S3154004B15000000000000000000000000000000000A5 -S3154004B1600000000000000000000000000000000095 -S3154004B1700000000000000000000000000000000085 -S3154004B1800000000000000000000000000000000075 -S3154004B1900000000000000000000000000000000065 -S3154004B1A00000000000000000000000000000000055 -S3154004B1B00000000000000000000000000000000045 -S3154004B1C00000000000000000000000000000000035 -S3154004B1D00000000000000000000000000000000025 -S3154004B1E00000000000000000000000000000000015 -S3154004B1F00000000000000000000000000000000005 -S3154004B20000000000000000000000000000000000F4 -S3154004B21000000000000000000000000000000000E4 -S3154004B22000000000000000000000000000000000D4 -S3154004B23000000000000000000000000000000000C4 -S3154004B24000000000000000000000000000000000B4 -S3154004B25000000000000000000000000000000000A4 -S3154004B2600000000000000000000000000000000094 -S3154004B2700000000000000000000000000000000084 -S3154004B2800000000000000000000000000000000074 -S3154004B2900000000000000000000000000000000064 -S3154004B2A00000000000000000000000000000000054 -S3154004B2B00000000000000000000000000000000044 -S3154004B2C00000000000000000000000000000000034 -S3154004B2D00000000000000000000000000000000024 -S3154004B2E00000000000000000000000000000000014 -S3154004B2F00000000000000000000000000000000004 -S3154004B30000000000000000000000000000000000F3 -S3154004B31000000000000000000000000000000000E3 -S3154004B32000000000000000000000000000000000D3 -S3154004B33000000000000000000000000000000000C3 -S3154004B34000000000000000000000000000000000B3 -S3154004B35000000000000000000000000000000000A3 -S3154004B3600000000000000000000000000000000093 -S3154004B3700000000000000000000000000000000083 -S3154004B3800000000000000000000000000000000073 -S3154004B3900000000000000000000000000000000063 -S3154004B3A00000000000000000000000000000000053 -S3154004B3B00000000000000000000000000000000043 -S3154004B3C00000000000000000000000000000000033 -S3154004B3D00000000000000000000000000000000023 -S3154004B3E00000000000000000000000000000000013 -S3154004B3F00000000000000000000000000000000003 -S3154004B40000000000000000000000000000000000F2 -S3154004B41000000000000000000000000000000000E2 -S3154004B42000000000000000000000000000000000D2 -S3154004B43000000000000000000000000000000000C2 -S3154004B44000000000000000000000000000000000B2 -S3154004B45000000000000000000000000000000000A2 -S3154004B4600000000000000000000000000000000092 -S3154004B4700000000000000000000000000000000082 -S3154004B4800000000000000000000000000000000072 -S3154004B4900000000000000000000000000000000062 -S3154004B4A00000000000000000000000000000000052 -S3154004B4B00000000000000000000000000000000042 -S3154004B4C00000000000000000000000000000000032 -S3154004B4D00000000000000000000000000000000022 -S3154004B4E00000000000000000000000000000000012 -S3154004B4F00000000000000000000000000000000002 -S3154004B50000000000000000000000000000000000F1 -S3154004B51000000000000000000000000000000000E1 -S3154004B52000000000000000000000000000000000D1 -S3154004B53000000000000000000000000000000000C1 -S3154004B54000000000000000000000000000000000B1 -S3154004B55000000000000000000000000000000000A1 -S3154004B5600000000000000000000000000000000091 -S3154004B5700000000000000000000000000000000081 -S3154004B5800000000000000000000000000000000071 -S3154004B5900000000000000000000000000000000061 -S3154004B5A00000000000000000000000000000000051 -S3154004B5B00000000000000000000000000000000041 -S3154004B5C00000000000000000000000000000000031 -S3154004B5D00000000000000000000000000000000021 -S3154004B5E00000000000000000000000000000000011 -S3154004B5F00000000000000000000000000000000001 -S3154004B60000000000000000000000000000000000F0 -S3154004B61000000000000000000000000000000000E0 -S3154004B62000000000000000000000000000000000D0 -S3154004B63000000000000000000000000000000000C0 -S3154004B64000000000000000000000000000000000B0 -S3154004B65000000000000000000000000000000000A0 -S3154004B6600000000000000000000000000000000090 -S3154004B6700000000000000000000000000000000080 -S3154004B6800000000000000000000000000000000070 -S3154004B6900000000000000000000000000000000060 -S3154004B6A00000000000000000000000000000000050 -S3154004B6B00000000000000000000000000000000040 -S3154004B6C00000000000000000000000000000000030 -S3154004B6D00000000000000000000000000000000020 -S3154004B6E00000000000000000000000000000000010 -S3154004B6F00000000000000000000000000000000000 -S3154004B70000000000000000000000000000000000EF -S3154004B71000000000000000000000000000000000DF -S3154004B72000000000000000000000000000000000CF -S3154004B73000000000000000000000000000000000BF -S3154004B74000000000000000000000000000000000AF -S3154004B750000000000000000000000000000000009F -S3154004B760000000000000000000000000000000008F -S3154004B770000000000000000000000000000000007F -S3154004B780000000000000000000000000000000006F -S3154004B790000000000000000000000000000000005F -S3154004B7A0000000000000000000000000000000004F -S3154004B7B0000000000000000000000000000000003F -S3154004B7C0000000000000000000000000000000002F -S3154004B7D0000000000000000000000000000000001F -S3154004B7E0000000000000000000000000000000000F -S3154004B7F000000000000000000000000000000000FF -S3154004B80000000000000000000000000000000000EE -S3154004B81000000000000000000000000000000000DE -S3154004B82000000000000000000000000000000000CE -S3154004B83000000000000000000000000000000000BE -S3154004B84000000000000000000000000000000000AE -S3154004B850000000000000000000000000000000009E -S3154004B860000000000000000000000000000000008E -S3154004B870000000000000000000000000000000007E -S3154004B880000000000000000000000000000000006E -S3154004B890000000000000000000000000000000005E -S3154004B8A0000000000000000000000000000000004E -S3154004B8B0000000000000000000000000000000003E -S3154004B8C0000000000000000000000000000000002E -S3154004B8D0000000000000000000000000000000001E -S3154004B8E0000000000000000000000000000000000E -S3154004B8F000000000000000000000000000000000FE -S3154004B90000000000000000000000000000000000ED -S3154004B91000000000000000000000000000000000DD -S3154004B92000000000000000000000000000000000CD -S3154004B93000000000000000000000000000000000BD -S3154004B94000000000000000000000000000000000AD -S3154004B950000000000000000000000000000000009D -S3154004B960000000000000000000000000000000008D -S3154004B970000000000000000000000000000000007D -S3154004B980000000000000000000000000000000006D -S3154004B990000000000000000000000000000000005D -S3154004B9A0000000000000000000000000000000004D -S3154004B9B0000000000000000000000000000000003D -S3154004B9C0000000000000000000000000000000002D -S3154004B9D0000000000000000000000000000000001D -S3154004B9E0000000000000000000000000000000000D -S3154004B9F000000000000000000000000000000000FD -S3154004BA0000000000000000000000000000000000EC -S3154004BA1000000000000000000000000000000000DC -S3154004BA2000000000000000000000000000000000CC -S3154004BA3000000000000000000000000000000000BC -S3154004BA4000000000000000000000000000000000AC -S3154004BA50000000000000000000000000000000009C -S3154004BA60000000000000000000000000000000008C -S3154004BA70000000000000000000000000000000007C -S3154004BA80000000000000000000000000000000006C -S3154004BA90000000000000000000000000000000005C -S3154004BAA0000000000000000000000000000000004C -S3154004BAB0000000000000000000000000000000003C -S3154004BAC0000000000000000000000000000000002C -S3154004BAD0000000000000000000000000000000001C -S3154004BAE0000000000000000000000000000000000C -S3154004BAF000000000000000000000000000000000FC -S3154004BB0000000000000000000000000000000000EB -S3154004BB1000000000000000000000000000000000DB -S3154004BB2000000000000000000000000000000000CB -S3154004BB3000000000000000000000000000000000BB -S3154004BB4000000000000000000000000000000000AB -S3154004BB50000000000000000000000000000000009B -S3154004BB60000000000000000000000000000000008B -S3154004BB70000000000000000000000000000000007B -S3154004BB80000000000000000000000000000000006B -S3154004BB90000000000000000000000000000000005B -S3154004BBA0000000000000000000000000000000004B -S3154004BBB0000000000000000000000000000000003B -S3154004BBC0000000000000000000000000000000002B -S3154004BBD0000000000000000000000000000000001B -S3154004BBE0000000000000000000000000000000000B -S3154004BBF000000000000000000000000000000000FB -S3154004BC0000000000000000000000000000000000EA -S3154004BC1000000000000000000000000000000000DA -S3154004BC2000000000000000000000000000000000CA -S3154004BC3000000000000000000000000000000000BA -S3154004BC4000000000000000000000000000000000AA -S3154004BC50000000000000000000000000000000009A -S3154004BC60000000000000000000000000000000008A -S3154004BC70000000000000000000000000000000007A -S3154004BC80000000000000000000000000000000006A -S3154004BC90000000000000000000000000000000005A -S3154004BCA0000000000000000000000000000000004A -S3154004BCB0000000000000000000000000000000003A -S3154004BCC0000000000000000000000000000000002A -S3154004BCD0000000000000000000000000000000001A -S3154004BCE0000000000000000000000000000000000A -S3154004BCF000000000000000000000000000000000FA -S3154004BD0000000000000000000000000000000000E9 -S3154004BD1000000000000000000000000000000000D9 -S3154004BD2000000000000000000000000000000000C9 -S3154004BD3000000000000000000000000000000000B9 -S3154004BD4000000000000000000000000000000000A9 -S3154004BD500000000000000000000000000000000099 -S3154004BD600000000000000000000000000000000089 -S3154004BD700000000000000000000000000000000079 -S3154004BD800000000000000000000000000000000069 -S3154004BD900000000000000000000000000000000059 -S3154004BDA00000000000000000000000000000000049 -S3154004BDB00000000000000000000000000000000039 -S3154004BDC00000000000000000000000000000000029 -S3154004BDD00000000000000000000000000000000019 -S3154004BDE00000000000000000000000000000000009 -S3154004BDF000000000000000000000000000000000F9 -S3154004BE0000000000000000000000000000000000E8 -S3154004BE1000000000000000000000000000000000D8 -S3154004BE2000000000000000000000000000000000C8 -S3154004BE3000000000000000000000000000000000B8 -S3154004BE4000000000000000000000000000000000A8 -S3154004BE500000000000000000000000000000000098 -S3154004BE600000000000000000000000000000000088 -S3154004BE700000000000000000000000000000000078 -S3154004BE800000000000000000000000000000000068 -S3154004BE900000000000000000000000000000000058 -S3154004BEA00000000000000000000000000000000048 -S3154004BEB00000000000000000000000000000000038 -S3154004BEC00000000000000000000000000000000028 -S3154004BED00000000000000000000000000000000018 -S3154004BEE00000000000000000000000000000000008 -S3154004BEF000000000000000000000000000000000F8 -S3154004BF0000000000000000000000000000000000E7 -S3154004BF1000000000000000000000000000000000D7 -S3154004BF2000000000000000000000000000000000C7 -S3154004BF3000000000000000000000000000000000B7 -S3154004BF4000000000000000000000000000000000A7 -S3154004BF500000000000000000000000000000000097 -S3154004BF600000000000000000000000000000000087 -S3154004BF700000000000000000000000000000000077 -S3154004BF800000000000000000000000000000000067 -S3154004BF900000000000000000000000000000000057 -S3154004BFA00000000000000000000000000000000047 -S3154004BFB00000000000000000000000000000000037 -S3154004BFC00000000000000000000000000000000027 -S3154004BFD00000000000000000000000000000000017 -S3154004BFE00000000000000000000000000000000007 -S3154004BFF000000000000000000000000000000000F7 -S3154004C00000000000000000000000000000000000E6 -S3154004C01000000000000000000000000000000000D6 -S3154004C02000000000000000000000000000000000C6 -S3154004C03000000000000000000000000000000000B6 -S3154004C04000000000000000000000000000000000A6 -S3154004C0500000000000000000000000000000000096 -S3154004C0600000000000000000000000000000000086 -S3154004C0700000000000000000000000000000000076 -S3154004C0800000000000000000000000000000000066 -S3154004C0900000000000000000000000000000000056 -S3154004C0A00000000000000000000000000000000046 -S3154004C0B00000000000000000000000000000000036 -S3154004C0C00000000000000000000000000000000026 -S3154004C0D00000000000000000000000000000000016 -S3154004C0E00000000000000000000000000000000006 -S3154004C0F000000000000000000000000000000000F6 -S3154004C10000000000000000000000000000000000E5 -S3154004C11000000000000000000000000000000000D5 -S3154004C12000000000000000000000000000000000C5 -S3154004C13000000000000000000000000000000000B5 -S3154004C14000000000000000000000000000000000A5 -S3154004C1500000000000000000000000000000000095 -S3154004C1600000000000000000000000000000000085 -S3154004C1700000000000000000000000000000000075 -S3154004C1800000000000000000000000000000000065 -S3154004C1900000000000000000000000000000000055 -S3154004C1A00000000000000000000000000000000045 -S3154004C1B00000000000000000000000000000000035 -S3154004C1C00000000000000000000000000000000025 -S3154004C1D00000000000000000000000000000000015 -S3154004C1E00000000000000000000000000000000005 -S3154004C1F000000000000000000000000000000000F5 -S3154004C20000000000000000000000000000000000E4 -S3154004C21000000000000000000000000000000000D4 -S3154004C22000000000000000000000000000000000C4 -S3154004C23000000000000000000000000000000000B4 -S3154004C24000000000000000000000000000000000A4 -S3154004C2500000000000000000000000000000000094 -S3154004C2600000000000000000000000000000000084 -S3154004C2700000000000000000000000000000000074 -S3154004C2800000000000000000000000000000000064 -S3154004C2900000000000000000000000000000000054 -S3154004C2A00000000000000000000000000000000044 -S3154004C2B00000000000000000000000000000000034 -S3154004C2C00000000000000000000000000000000024 -S3154004C2D00000000000000000000000000000000014 -S3154004C2E00000000000000000000000000000000004 -S3154004C2F000000000000000000000000000000000F4 -S3154004C30000000000000000000000000000000000E3 -S3154004C31000000000000000000000000000000000D3 -S3154004C32000000000000000000000000000000000C3 -S3154004C33000000000000000000000000000000000B3 -S3154004C34000000000000000000000000000000000A3 -S3154004C3500000000000000000000000000000000093 -S3154004C3600000000000000000000000000000000083 -S3154004C3700000000000000000000000000000000073 -S3154004C3800000000000000000000000000000000063 -S3154004C3900000000000000000000000000000000053 -S3154004C3A00000000000000000000000000000000043 -S3154004C3B00000000000000000000000000000000033 -S3154004C3C00000000000000000000000000000000023 -S3154004C3D00000000000000000000000000000000013 -S3154004C3E00000000000000000000000000000000003 -S3154004C3F000000000000000000000000000000000F3 -S3154004C40000000000000000000000000000000000E2 -S3154004C41000000000000000000000000000000000D2 -S3154004C42000000000000000000000000000000000C2 -S3154004C43000000000000000000000000000000000B2 -S3154004C44000000000000000000000000000000000A2 -S3154004C4500000000000000000000000000000000092 -S3154004C4600000000000000000000000000000000082 -S3154004C4700000000000000000000000000000000072 -S3154004C4800000000000000000000000000000000062 -S3154004C4900000000000000000000000000000000052 -S3154004C4A00000000000000000000000000000000042 -S3154004C4B00000000000000000000000000000000032 -S3154004C4C00000000000000000000000000000000022 -S3154004C4D00000000000000000000000000000000012 -S3154004C4E00000000000000000000000000000000002 -S3154004C4F000000000000000000000000000000000F2 -S3154004C50000000000000000000000000000000000E1 -S3154004C51000000000000000000000000000000000D1 -S3154004C52000000000000000000000000000000000C1 -S3154004C53000000000000000000000000000000000B1 -S3154004C54000000000000000000000000000000000A1 -S3154004C5500000000000000000000000000000000091 -S3154004C5600000000000000000000000000000000081 -S3154004C5700000000000000000000000000000000071 -S3154004C5800000000000000000000000000000000061 -S3154004C5900000000000000000000000000000000051 -S3154004C5A00000000000000000000000000000000041 -S3154004C5B00000000000000000000000000000000031 -S3154004C5C00000000000000000000000000000000021 -S3154004C5D00000000000000000000000000000000011 -S3154004C5E00000000000000000000000000000000001 -S3154004C5F000000000000000000000000000000000F1 -S3154004C60000000000000000000000000000000000E0 -S3154004C61000000000000000000000000000000000D0 -S3154004C62000000000000000000000000000000000C0 -S3154004C63000000000000000000000000000000000B0 -S3154004C64000000000000000000000000000000000A0 -S3154004C6500000000000000000000000000000000090 -S3154004C6600000000000000000000000000000000080 -S3154004C6700000000000000000000000000000000070 -S3154004C6800000000000000000000000000000000060 -S3154004C6900000000000000000000000000000000050 -S3154004C6A00000000000000000000000000000000040 -S3154004C6B00000000000000000000000000000000030 -S3154004C6C00000000000000000000000000000000020 -S3154004C6D00000000000000000000000000000000010 -S3154004C6E00000000000000000000000000000000000 -S3154004C6F000000000000000000000000000000000F0 -S3154004C70000000000000000000000000000000000DF -S3154004C71000000000000000000000000000000000CF -S3154004C72000000000000000000000000000000000BF -S3154004C73000000000000000000000000000000000AF -S3154004C740000000000000000000000000000000009F -S3154004C750000000000000000000000000000000008F -S3154004C760000000000000000000000000000000007F -S3154004C770000000000000000000000000000000006F -S3154004C780000000000000000000000000000000005F -S3154004C790000000000000000000000000000000004F -S3154004C7A0000000000000000000000000000000003F -S3154004C7B0000000000000000000000000000000002F -S3154004C7C0000000000000000000000000000000001F -S3154004C7D0000000000000000000000000000000000F -S3154004C7E000000000000000000000000000000000FF -S3154004C7F000000000000000000000000000000000EF -S3154004C80000000000000000000000000000000000DE -S3154004C81000000000000000000000000000000000CE -S3154004C82000000000000000000000000000000000BE -S3154004C83000000000000000000000000000000000AE -S3154004C840000000000000000000000000000000009E -S3154004C850000000000000000000000000000000008E -S3154004C860000000000000000000000000000000007E -S3154004C870000000000000000000000000000000006E -S3154004C880000000000000000000000000000000005E -S3154004C890000000000000000000000000000000004E -S3154004C8A0000000000000000000000000000000003E -S3154004C8B0000000000000000000000000000000002E -S3154004C8C0000000000000000000000000000000001E -S3154004C8D0000000000000000000000000000000000E -S3154004C8E000000000000000000000000000000000FE -S3154004C8F000000000000000000000000000000000EE -S3154004C90000000000000000000000000000000000DD -S3154004C91000000000000000000000000000000000CD -S3154004C92000000000000000000000000000000000BD -S3154004C93000000000000000000000000000000000AD -S3154004C940000000000000000000000000000000009D -S3154004C950000000000000000000000000000000008D -S3154004C960000000000000000000000000000000007D -S3154004C970000000000000000000000000000000006D -S3154004C980000000000000000000000000000000005D -S3154004C990000000000000000000000000000000004D -S3154004C9A0000000000000000000000000000000003D -S3154004C9B0000000000000000000000000000000002D -S3154004C9C0000000000000000000000000000000001D -S3154004C9D0000000000000000000000000000000000D -S3154004C9E000000000000000000000000000000000FD -S3154004C9F000000000000000000000000000000000ED -S3154004CA0000000000000000000000000000000000DC -S3154004CA1000000000000000000000000000000000CC -S3154004CA2000000000000000000000000000000000BC -S3154004CA3000000000000000000000000000000000AC -S3154004CA40000000000000000000000000000000009C -S3154004CA50000000000000000000000000000000008C -S3154004CA60000000000000000000000000000000007C -S3154004CA70000000000000000000000000000000006C -S3154004CA80000000000000000000000000000000005C -S3154004CA90000000000000000000000000000000004C -S3154004CAA0000000000000000000000000000000003C -S3154004CAB0000000000000000000000000000000002C -S3154004CAC0000000000000000000000000000000001C -S3154004CAD0000000000000000000000000000000000C -S3154004CAE000000000000000000000000000000000FC -S3154004CAF000000000000000000000000000000000EC -S3154004CB0000000000000000000000000000000000DB -S3154004CB1000000000000000000000000000000000CB -S3154004CB2000000000000000000000000000000000BB -S3154004CB3000000000000000000000000000000000AB -S3154004CB40000000000000000000000000000000009B -S3154004CB50000000000000000000000000000000008B -S3154004CB60000000000000000000000000000000007B -S3154004CB70000000000000000000000000000000006B -S3154004CB80000000000000000000000000000000005B -S3154004CB90000000000000000000000000000000004B -S3154004CBA0000000000000000000000000000000003B -S3154004CBB0000000000000000000000000000000002B -S3154004CBC0000000000000000000000000000000001B -S3154004CBD0000000000000000000000000000000000B -S3154004CBE000000000000000000000000000000000FB -S3154004CBF000000000000000000000000000000000EB -S3154004CC0000000000000000000000000000000000DA -S3154004CC1000000000000000000000000000000000CA -S3154004CC2000000000000000000000000000000000BA -S3154004CC3000000000000000000000000000000000AA -S3154004CC40000000000000000000000000000000009A -S3154004CC50000000000000000000000000000000008A -S3154004CC60000000000000000000000000000000007A -S3154004CC70000000000000000000000000000000006A -S3154004CC80000000000000000000000000000000005A -S3154004CC90000000000000000000000000000000004A -S3154004CCA0000000000000000000000000000000003A -S3154004CCB0000000000000000000000000000000002A -S3154004CCC0000000000000000000000000000000001A -S3154004CCD0000000000000000000000000000000000A -S3154004CCE000000000000000000000000000000000FA -S3154004CCF000000000000000000000000000000000EA -S3154004CD0000000000000000000000000000000000D9 -S3154004CD1000000000000000000000000000000000C9 -S3154004CD2000000000000000000000000000000000B9 -S3154004CD3000000000000000000000000000000000A9 -S3154004CD400000000000000000000000000000000099 -S3154004CD500000000000000000000000000000000089 -S3154004CD600000000000000000000000000000000079 -S3154004CD700000000000000000000000000000000069 -S3154004CD800000000000000000000000000000000059 -S3154004CD900000000000000000000000000000000049 -S3154004CDA00000000000000000000000000000000039 -S3154004CDB00000000000000000000000000000000029 -S3154004CDC00000000000000000000000000000000019 -S3154004CDD00000000000000000000000000000000009 -S3154004CDE000000000000000000000000000000000F9 -S3154004CDF000000000000000000000000000000000E9 -S3154004CE0000000000000000000000000000000000D8 -S3154004CE1000000000000000000000000000000000C8 -S3154004CE2000000000000000000000000000000000B8 -S3154004CE3000000000000000000000000000000000A8 -S3154004CE400000000000000000000000000000000098 -S3154004CE500000000000000000000000000000000088 -S3154004CE600000000000000000000000000000000078 -S3154004CE700000000000000000000000000000000068 -S3154004CE800000000000000000000000000000000058 -S3154004CE900000000000000000000000000000000048 -S3154004CEA00000000000000000000000000000000038 -S3154004CEB00000000000000000000000000000000028 -S3154004CEC00000000000000000000000000000000018 -S3154004CED00000000000000000000000000000000008 -S3154004CEE000000000000000000000000000000000F8 -S3154004CEF000000000000000000000000000000000E8 -S3154004CF0000000000000000000000000000000000D7 -S3154004CF1000000000000000000000000000000000C7 -S3154004CF2000000000000000000000000000000000B7 -S3154004CF3000000000000000000000000000000000A7 -S3154004CF400000000000000000000000000000000097 -S3154004CF500000000000000000000000000000000087 -S3154004CF600000000000000000000000000000000077 -S3154004CF700000000000000000000000000000000067 -S3154004CF800000000000000000000000000000000057 -S3154004CF900000000000000000000000000000000047 -S3154004CFA00000000000000000000000000000000037 -S3154004CFB00000000000000000000000000000000027 -S3154004CFC00000000000000000000000000000000017 -S3154004CFD00000000000000000000000000000000007 -S3154004CFE000000000000000000000000000000000F7 -S3154004CFF000000000000000000000000000000000E7 -S3154004D00000000000000000000000000000000000D6 -S3154004D01000000000000000000000000000000000C6 -S3154004D02000000000000000000000000000000000B6 -S3154004D03000000000000000000000000000000000A6 -S3154004D0400000000000000000000000000000000096 -S3154004D0500000000000000000000000000000000086 -S3154004D0600000000000000000000000000000000076 -S3154004D0700000000000000000000000000000000066 -S3154004D0800000000000000000000000000000000056 -S3154004D0900000000000000000000000000000000046 -S3154004D0A00000000000000000000000000000000036 -S3154004D0B00000000000000000000000000000000026 -S3154004D0C00000000000000000000000000000000016 -S3154004D0D00000000000000000000000000000000006 -S3154004D0E000000000000000000000000000000000F6 -S3154004D0F000000000000000000000000000000000E6 -S3154004D10000000000000000000000000000000000D5 -S3154004D11000000000000000000000000000000000C5 -S3154004D12000000000000000000000000000000000B5 -S3154004D13000000000000000000000000000000000A5 -S3154004D1400000000000000000000000000000000095 -S3154004D1500000000000000000000000000000000085 -S3154004D1600000000000000000000000000000000075 -S3154004D1700000000000000000000000000000000065 -S3154004D1800000000000000000000000000000000055 -S3154004D1900000000000000000000000000000000045 -S3154004D1A00000000000000000000000000000000035 -S3154004D1B00000000000000000000000000000000025 -S3154004D1C00000000000000000000000000000000015 -S3154004D1D00000000000000000000000000000000005 -S3154004D1E000000000000000000000000000000000F5 -S3154004D1F000000000000000000000000000000000E5 -S3154004D20000000000000000000000000000000000D4 -S3154004D21000000000000000000000000000000000C4 -S3154004D22000000000000000000000000000000000B4 -S3154004D23000000000000000000000000000000000A4 -S3154004D2400000000000000000000000000000000094 -S3154004D2500000000000000000000000000000000084 -S3154004D2600000000000000000000000000000000074 -S3154004D2700000000000000000000000000000000064 -S3154004D2800000000000000000000000000000000054 -S3154004D2900000000000000000000000000000000044 -S3154004D2A00000000000000000000000000000000034 -S3154004D2B00000000000000000000000000000000024 -S3154004D2C00000000000000000000000000000000014 -S3154004D2D00000000000000000000000000000000004 -S3154004D2E000000000000000000000000000000000F4 -S3154004D2F000000000000000000000000000000000E4 -S3154004D30000000000000000000000000000000000D3 -S3154004D31000000000000000000000000000000000C3 -S3154004D32000000000000000000000000000000000B3 -S3154004D33000000000000000000000000000000000A3 -S3154004D3400000000000000000000000000000000093 -S3154004D3500000000000000000000000000000000083 -S3154004D3600000000000000000000000000000000073 -S3154004D3700000000000000000000000000000000063 -S3154004D3800000000000000000000000000000000053 -S3154004D3900000000000000000000000000000000043 -S3154004D3A00000000000000000000000000000000033 -S3154004D3B00000000000000000000000000000000023 -S3154004D3C00000000000000000000000000000000013 -S3154004D3D00000000000000000000000000000000003 -S3154004D3E000000000000000000000000000000000F3 -S3154004D3F000000000000000000000000000000000E3 -S3154004D40000000000000000000000000000000000D2 -S3154004D41000000000000000000000000000000000C2 -S3154004D42000000000000000000000000000000000B2 -S3154004D43000000000000000000000000000000000A2 -S3154004D4400000000000000000000000000000000092 -S3154004D4500000000000000000000000000000000082 -S3154004D4600000000000000000000000000000000072 -S3154004D4700000000000000000000000000000000062 -S3154004D4800000000000000000000000000000000052 -S3154004D4900000000000000000000000000000000042 -S3154004D4A00000000000000000000000000000000032 -S3154004D4B00000000000000000000000000000000022 -S3154004D4C00000000000000000000000000000000012 -S3154004D4D00000000000000000000000000000000002 -S3154004D4E000000000000000000000000000000000F2 -S3154004D4F000000000000000000000000000000000E2 -S3154004D50000000000000000000000000000000000D1 -S3154004D51000000000000000000000000000000000C1 -S3154004D52000000000000000000000000000000000B1 -S3154004D53000000000000000000000000000000000A1 -S3154004D5400000000000000000000000000000000091 -S3154004D5500000000000000000000000000000000081 -S3154004D5600000000000000000000000000000000071 -S3154004D5700000000000000000000000000000000061 -S3154004D5800000000000000000000000000000000051 -S3154004D5900000000000000000000000000000000041 -S3154004D5A00000000000000000000000000000000031 -S3154004D5B00000000000000000000000000000000021 -S3154004D5C00000000000000000000000000000000011 -S3154004D5D00000000000000000000000000000000001 -S3154004D5E000000000000000000000000000000000F1 -S3154004D5F000000000000000000000000000000000E1 -S3154004D60000000000000000000000000000000000D0 -S3154004D61000000000000000000000000000000000C0 -S3154004D62000000000000000000000000000000000B0 -S3154004D63000000000000000000000000000000000A0 -S3154004D6400000000000000000000000000000000090 -S3154004D6500000000000000000000000000000000080 -S3154004D6600000000000000000000000000000000070 -S3154004D6700000000000000000000000000000000060 -S3154004D6800000000000000000000000000000000050 -S3154004D6900000000000000000000000000000000040 -S3154004D6A00000000000000000000000000000000030 -S3154004D6B00000000000000000000000000000000020 -S3154004D6C00000000000000000000000000000000010 -S3154004D6D00000000000000000000000000000000000 -S3154004D6E000000000000000000000000000000000F0 -S3154004D6F000000000000000000000000000000000E0 -S3154004D70000000000000000000000000000000000CF -S3154004D71000000000000000000000000000000000BF -S3154004D72000000000000000000000000000000000AF -S3154004D730000000000000000000000000000000009F -S3154004D740000000000000000000000000000000008F -S3154004D750000000000000000000000000000000007F -S3154004D760000000000000000000000000000000006F -S3154004D770000000000000000000000000000000005F -S3154004D780000000000000000000000000000000004F -S3154004D790000000000000000000000000000000003F -S3154004D7A0000000000000000000000000000000002F -S3154004D7B0000000000000000000000000000000001F -S3154004D7C0000000000000000000000000000000000F -S3154004D7D000000000000000000000000000000000FF -S3154004D7E000000000000000000000000000000000EF -S3154004D7F000000000000000000000000000000000DF -S3154004D80000000000000000000000000000000000CE -S3154004D81000000000000000000000000000000000BE -S3154004D82000000000000000000000000000000000AE -S3154004D830000000000000000000000000000000009E -S3154004D840000000000000000000000000000000008E -S3154004D850000000000000000000000000000000007E -S3154004D860000000000000000000000000000000006E -S3154004D870000000000000000000000000000000005E -S3154004D880000000000000000000000000000000004E -S3154004D890000000000000000000000000000000003E -S3154004D8A0000000000000000000000000000000002E -S3154004D8B0000000000000000000000000000000001E -S3154004D8C0000000000000000000000000000000000E -S3154004D8D000000000000000000000000000000000FE -S3154004D8E000000000000000000000000000000000EE -S3154004D8F000000000000000000000000000000000DE -S3154004D90000000000000000000000000000000000CD -S3154004D91000000000000000000000000000000000BD -S3154004D92000000000000000000000000000000000AD -S3154004D930000000000000000000000000000000009D -S3154004D940000000000000000000000000000000008D -S3154004D950000000000000000000000000000000007D -S3154004D960000000000000000000000000000000006D -S3154004D970000000000000000000000000000000005D -S3154004D980000000000000000000000000000000004D -S3154004D990000000000000000000000000000000003D -S3154004D9A0000000000000000000000000000000002D -S3154004D9B0000000000000000000000000000000001D -S3154004D9C0000000000000000000000000000000000D -S3154004D9D000000000000000000000000000000000FD -S3154004D9E000000000000000000000000000000000ED -S3154004D9F000000000000000000000000000000000DD -S3154004DA0000000000000000000000000000000000CC -S3154004DA1000000000000000000000000000000000BC -S3154004DA2000000000000000000000000000000000AC -S3154004DA30000000000000000000000000000000009C -S3154004DA40000000000000000000000000000000008C -S3154004DA50000000000000000000000000000000007C -S3154004DA60000000000000000000000000000000006C -S3154004DA70000000000000000000000000000000005C -S3154004DA80000000000000000000000000000000004C -S3154004DA90000000000000000000000000000000003C -S3154004DAA0000000000000000000000000000000002C -S3154004DAB0000000000000000000000000000000001C -S3154004DAC0000000000000000000000000000000000C -S3154004DAD000000000000000000000000000000000FC -S3154004DAE000000000000000000000000000000000EC -S3154004DAF000000000000000000000000000000000DC -S3154004DB0000000000000000000000000000000000CB -S3154004DB1000000000000000000000000000000000BB -S3154004DB2000000000000000000000000000000000AB -S3154004DB30000000000000000000000000000000009B -S3154004DB40000000000000000000000000000000008B -S3154004DB50000000000000000000000000000000007B -S3154004DB60000000000000000000000000000000006B -S3154004DB70000000000000000000000000000000005B -S3154004DB80000000000000000000000000000000004B -S3154004DB90000000000000000000000000000000003B -S3154004DBA0000000000000000000000000000000002B -S3154004DBB0000000000000000000000000000000001B -S3154004DBC0000000000000000000000000000000000B -S3154004DBD000000000000000000000000000000000FB -S3154004DBE000000000000000000000000000000000EB -S3154004DBF000000000000000000000000000000000DB -S3154004DC0000000000000000000000000000000000CA -S3154004DC1000000000000000000000000000000000BA -S3154004DC2000000000000000000000000000000000AA -S3154004DC30000000000000000000000000000000009A -S3154004DC40000000000000000000000000000000008A -S3154004DC50000000000000000000000000000000007A -S3154004DC60000000000000000000000000000000006A -S3154004DC70000000000000000000000000000000005A -S3154004DC80000000000000000000000000000000004A -S3154004DC90000000000000000000000000000000003A -S3154004DCA0000000000000000000000000000000002A -S3154004DCB0000000000000000000000000000000001A -S3154004DCC0000000000000000000000000000000000A -S3154004DCD000000000000000000000000000000000FA -S3154004DCE000000000000000000000000000000000EA -S3154004DCF000000000000000000000000000000000DA -S3154004DD0000000000000000000000000000000000C9 -S3154004DD1000000000000000000000000000000000B9 -S3154004DD2000000000000000000000000000000000A9 -S3154004DD300000000000000000000000000000000099 -S3154004DD400000000000000000000000000000000089 -S3154004DD500000000000000000000000000000000079 -S3154004DD600000000000000000000000000000000069 -S3154004DD700000000000000000000000000000000059 -S3154004DD800000000000000000000000000000000049 -S3154004DD900000000000000000000000000000000039 -S3154004DDA00000000000000000000000000000000029 -S3154004DDB00000000000000000000000000000000019 -S3154004DDC00000000000000000000000000000000009 -S3154004DDD000000000000000000000000000000000F9 -S3154004DDE000000000000000000000000000000000E9 -S3154004DDF000000000000000000000000000000000D9 -S3154004DE0000000000000000000000000000000000C8 -S3154004DE1000000000000000000000000000000000B8 -S3154004DE2000000000000000000000000000000000A8 -S3154004DE300000000000000000000000000000000098 -S3154004DE400000000000000000000000000000000088 -S3154004DE500000000000000000000000000000000078 -S3154004DE600000000000000000000000000000000068 -S3154004DE700000000000000000000000000000000058 -S3154004DE800000000000000000000000000000000048 -S3154004DE900000000000000000000000000000000038 -S3154004DEA00000000000000000000000000000000028 -S3154004DEB00000000000000000000000000000000018 -S3154004DEC00000000000000000000000000000000008 -S3154004DED000000000000000000000000000000000F8 -S3154004DEE000000000000000000000000000000000E8 -S3154004DEF000000000000000000000000000000000D8 -S3154004DF0000000000000000000000000000000000C7 -S3154004DF1000000000000000000000000000000000B7 -S3154004DF2000000000000000000000000000000000A7 -S3154004DF300000000000000000000000000000000097 -S3154004DF400000000000000000000000000000000087 -S3154004DF500000000000000000000000000000000077 -S3154004DF600000000000000000000000000000000067 -S3154004DF700000000000000000000000000000000057 -S3154004DF800000000000000000000000000000000047 -S3154004DF900000000000000000000000000000000037 -S3154004DFA00000000000000000000000000000000027 -S3154004DFB00000000000000000000000000000000017 -S3154004DFC00000000000000000000000000000000007 -S3154004DFD000000000000000000000000000000000F7 -S3154004DFE000000000000000000000000000000000E7 -S3154004DFF000000000000000000000000000000000D7 -S3154004E00000000000000000000000000000000000C6 -S3154004E01000000000000000000000000000000000B6 -S3154004E02000000000000000000000000000000000A6 -S3154004E0300000000000000000000000000000000096 -S3154004E0400000000000000000000000000000000086 -S3154004E0500000000000000000000000000000000076 -S3154004E0600000000000000000000000000000000066 -S3154004E0700000000000000000000000000000000056 -S3154004E0800000000000000000000000000000000046 -S3154004E0900000000000000000000000000000000036 -S3154004E0A00000000000000000000000000000000026 -S3154004E0B00000000000000000000000000000000016 -S3154004E0C00000000000000000000000000000000006 -S3154004E0D000000000000000000000000000000000F6 -S3154004E0E000000000000000000000000000000000E6 -S3154004E0F000000000000000000000000000000000D6 -S3154004E10000000000000000000000000000000000C5 -S3154004E11000000000000000000000000000000000B5 -S3154004E12000000000000000000000000000000000A5 -S3154004E1300000000000000000000000000000000095 -S3154004E1400000000000000000000000000000000085 -S3154004E1500000000000000000000000000000000075 -S3154004E1600000000000000000000000000000000065 -S3154004E1700000000000000000000000000000000055 -S3154004E1800000000000000000000000000000000045 -S3154004E1900000000000000000000000000000000035 -S3154004E1A00000000000000000000000000000000025 -S3154004E1B00000000000000000000000000000000015 -S3154004E1C00000000000000000000000000000000005 -S3154004E1D000000000000000000000000000000000F5 -S3154004E1E000000000000000000000000000000000E5 -S3154004E1F000000000000000000000000000000000D5 -S3154004E20000000000000000000000000000000000C4 -S3154004E21000000000000000000000000000000000B4 -S3154004E22000000000000000000000000000000000A4 -S3154004E2300000000000000000000000000000000094 -S3154004E2400000000000000000000000000000000084 -S3154004E2500000000000000000000000000000000074 -S3154004E2600000000000000000000000000000000064 -S3154004E2700000000000000000000000000000000054 -S3154004E2800000000000000000000000000000000044 -S3154004E2900000000000000000000000000000000034 -S3154004E2A00000000000000000000000000000000024 -S3154004E2B00000000000000000000000000000000014 -S3154004E2C00000000000000000000000000000000004 -S3154004E2D000000000000000000000000000000000F4 -S3154004E2E000000000000000000000000000000000E4 -S3154004E2F000000000000000000000000000000000D4 -S3154004E30000000000000000000000000000000000C3 -S3154004E31000000000000000000000000000000000B3 -S3154004E32000000000000000000000000000000000A3 -S3154004E3300000000000000000000000000000000093 -S3154004E3400000000000000000000000000000000083 -S3154004E3500000000000000000000000000000000073 -S3154004E3600000000000000000000000000000000063 -S3154004E3700000000000000000000000000000000053 -S3154004E3800000000000000000000000000000000043 -S3154004E3900000000000000000000000000000000033 -S3154004E3A00000000000000000000000000000000023 -S3154004E3B00000000000000000000000000000000013 -S3154004E3C00000000000000000000000000000000003 -S3154004E3D000000000000000000000000000000000F3 -S3154004E3E000000000000000000000000000000000E3 -S3154004E3F000000000000000000000000000000000D3 -S3154004E40000000000000000000000000000000000C2 -S3154004E41000000000000000000000000000000000B2 -S3154004E42000000000000000000000000000000000A2 -S3154004E4300000000000000000000000000000000092 -S3154004E4400000000000000000000000000000000082 -S3154004E4500000000000000000000000000000000072 -S3154004E4600000000000000000000000000000000062 -S3154004E4700000000000000000000000000000000052 -S3154004E4800000000000000000000000000000000042 -S3154004E4900000000000000000000000000000000032 -S3154004E4A00000000000000000000000000000000022 -S3154004E4B00000000000000000000000000000000012 -S3154004E4C00000000000000000000000000000000002 -S3154004E4D000000000000000000000000000000000F2 -S3154004E4E000000000000000000000000000000000E2 -S3154004E4F000000000000000000000000000000000D2 -S3154004E50000000000000000000000000000000000C1 -S3154004E51000000000000000000000000000000000B1 -S3154004E52000000000000000000000000000000000A1 -S3154004E5300000000000000000000000000000000091 -S3154004E5400000000000000000000000000000000081 -S3154004E5500000000000000000000000000000000071 -S3154004E5600000000000000000000000000000000061 -S3154004E5700000000000000000000000000000000051 -S3154004E5800000000000000000000000000000000041 -S3154004E5900000000000000000000000000000000031 -S3154004E5A00000000000000000000000000000000021 -S3154004E5B00000000000000000000000000000000011 -S3154004E5C00000000000000000000000000000000001 -S3154004E5D000000000000000000000000000000000F1 -S3154004E5E000000000000000000000000000000000E1 -S3154004E5F000000000000000000000000000000000D1 -S3154004E60000000000000000000000000000000000C0 -S3154004E61000000000000000000000000000000000B0 -S3154004E62000000000000000000000000000000000A0 -S3154004E6300000000000000000000000000000000090 -S3154004E6400000000000000000000000000000000080 -S3154004E6500000000000000000000000000000000070 -S3154004E6600000000000000000000000000000000060 -S3154004E6700000000000000000000000000000000050 -S3154004E6800000000000000000000000000000000040 -S3154004E6900000000000000000000000000000000030 -S3154004E6A00000000000000000000000000000000020 -S3154004E6B00000000000000000000000000000000010 -S3154004E6C00000000000000000000000000000000000 -S3154004E6D000000000000000000000000000000000F0 -S3154004E6E000000000000000000000000000000000E0 -S3154004E6F000000000000000000000000000000000D0 -S3154004E70000000000000000000000000000000000BF -S3154004E71000000000000000000000000000000000AF -S3154004E720000000000000000000000000000000009F -S3154004E730000000000000000000000000000000008F -S3154004E740000000000000000000000000000000007F -S3154004E750000000000000000000000000000000006F -S3154004E760000000000000000000000000000000005F -S3154004E770000000000000000000000000000000004F -S3154004E780000000000000000000000000000000003F -S3154004E790000000000000000000000000000000002F -S3154004E7A0000000000000000000000000000000001F -S3154004E7B0000000000000000000000000000000000F -S3154004E7C000000000000000000000000000000000FF -S3154004E7D000000000000000000000000000000000EF -S3154004E7E000000000000000000000000000000000DF -S3154004E7F000000000000000000000000000000000CF -S3154004E80000000000000000000000000000000000BE -S3154004E81000000000000000000000000000000000AE -S3154004E820000000000000000000000000000000009E -S3154004E830000000000000000000000000000000008E -S3154004E840000000000000000000000000000000007E -S3154004E850000000000000000000000000000000006E -S3154004E860000000000000000000000000000000005E -S3154004E870000000000000000000000000000000004E -S3154004E880000000000000000000000000000000003E -S3154004E890000000000000000000000000000000002E -S3154004E8A0000000000000000000000000000000001E -S3154004E8B0000000000000000000000000000000000E -S3154004E8C000000000000000000000000000000000FE -S3154004E8D000000000000000000000000000000000EE -S3154004E8E000000000000000000000000000000000DE -S3154004E8F000000000000000000000000000000000CE -S3154004E90000000000000000000000000000000000BD -S3154004E91000000000000000000000000000000000AD -S3154004E920000000000000000000000000000000009D -S3154004E930000000000000000000000000000000008D -S3154004E940000000000000000000000000000000007D -S3154004E950000000000000000000000000000000006D -S3154004E960000000000000000000000000000000005D -S3154004E970000000000000000000000000000000004D -S3154004E980000000000000000000000000000000003D -S3154004E990000000000000000000000000000000002D -S3154004E9A0000000000000000000000000000000001D -S3154004E9B0000000000000000000000000000000000D -S3154004E9C000000000000000000000000000000000FD -S3154004E9D000000000000000000000000000000000ED -S3154004E9E000000000000000000000000000000000DD -S3154004E9F000000000000000000000000000000000CD -S3154004EA0000000000000000000000000000000000BC -S3154004EA1000000000000000000000000000000000AC -S3154004EA20000000000000000000000000000000009C -S3154004EA30000000000000000000000000000000008C -S3154004EA40000000000000000000000000000000007C -S3154004EA50000000000000000000000000000000006C -S3154004EA60000000000000000000000000000000005C -S3154004EA70000000000000000000000000000000004C -S3154004EA80000000000000000000000000000000003C -S3154004EA90000000000000000000000000000000002C -S3154004EAA0000000000000000000000000000000001C -S3154004EAB0000000000000000000000000000000000C -S3154004EAC000000000000000000000000000000000FC -S3154004EAD000000000000000000000000000000000EC -S3154004EAE000000000000000000000000000000000DC -S3154004EAF000000000000000000000000000000000CC -S3154004EB0000000000000000000000000000000000BB -S3154004EB1000000000000000000000000000000000AB -S3154004EB20000000000000000000000000000000009B -S3154004EB30000000000000000000000000000000008B -S3154004EB40000000000000000000000000000000007B -S3154004EB50000000000000000000000000000000006B -S3154004EB60000000000000000000000000000000005B -S3154004EB70000000000000000000000000000000004B -S3154004EB80000000000000000000000000000000003B -S3154004EB90000000000000000000000000000000002B -S3154004EBA0000000000000000000000000000000001B -S3154004EBB0000000000000000000000000000000000B -S3154004EBC000000000000000000000000000000000FB -S3154004EBD000000000000000000000000000000000EB -S3154004EBE000000000000000000000000000000000DB -S3154004EBF000000000000000000000000000000000CB -S3154004EC0000000000000000000000000000000000BA -S3154004EC1000000000000000000000000000000000AA -S3154004EC20000000000000000000000000000000009A -S3154004EC30000000000000000000000000000000008A -S3154004EC40000000000000000000000000000000007A -S3154004EC50000000000000000000000000000000006A -S3154004EC60000000000000000000000000000000005A -S3154004EC70000000000000000000000000000000004A -S3154004EC80000000000000000000000000000000003A -S3154004EC90000000000000000000000000000000002A -S3154004ECA0000000000000000000000000000000001A -S3154004ECB0000000000000000000000000000000000A -S3154004ECC000000000000000000000000000000000FA -S3154004ECD000000000000000000000000000000000EA -S3154004ECE000000000000000000000000000000000DA -S3154004ECF000000000000000000000000000000000CA -S3154004ED0000000000000000000000000000000000B9 -S3154004ED1000000000000000000000000000000000A9 -S3154004ED200000000000000000000000000000000099 -S3154004ED300000000000000000000000000000000089 -S3154004ED400000000000000000000000000000000079 -S3154004ED500000000000000000000000000000000069 -S3154004ED600000000000000000000000000000000059 -S3154004ED700000000000000000000000000000000049 -S3154004ED800000000000000000000000000000000039 -S3154004ED900000000000000000000000000000000029 -S3154004EDA00000000000000000000000000000000019 -S3154004EDB00000000000000000000000000000000009 -S3154004EDC000000000000000000000000000000000F9 -S3154004EDD000000000000000000000000000000000E9 -S3154004EDE000000000000000000000000000000000D9 -S3154004EDF000000000000000000000000000000000C9 -S3154004EE0000000000000000000000000000000000B8 -S3154004EE1000000000000000000000000000000000A8 -S3154004EE200000000000000000000000000000000098 -S3154004EE300000000000000000000000000000000088 -S3154004EE400000000000000000000000000000000078 -S3154004EE500000000000000000000000000000000068 -S3154004EE600000000000000000000000000000000058 -S3154004EE700000000000000000000000000000000048 -S3154004EE800000000000000000000000000000000038 -S3154004EE900000000000000000000000000000000028 -S3154004EEA00000000000000000000000000000000018 -S3154004EEB00000000000000000000000000000000008 -S3154004EEC000000000000000000000000000000000F8 -S3154004EED000000000000000000000000000000000E8 -S3154004EEE000000000000000000000000000000000D8 -S3154004EEF000000000000000000000000000000000C8 -S3154004EF0000000000000000000000000000000000B7 -S3154004EF1000000000000000000000000000000000A7 -S3154004EF200000000000000000000000000000000097 -S3154004EF300000000000000000000000000000000087 -S3154004EF400000000000000000000000000000000077 -S3154004EF500000000000000000000000000000000067 -S3154004EF600000000000000000000000000000000057 -S3154004EF700000000000000000000000000000000047 -S3154004EF800000000000000000000000000000000037 -S3154004EF900000000000000000000000000000000027 -S3154004EFA00000000000000000000000000000000017 -S3154004EFB00000000000000000000000000000000007 -S3154004EFC000000000000000000000000000000000F7 -S3154004EFD000000000000000000000000000000000E7 -S3154004EFE000000000000000000000000000000000D7 -S3154004EFF000000000000000000000000000000000C7 -S3154004F00000000000000000000000000000000000B6 -S3154004F01000000000000000000000000000000000A6 -S3154004F0200000000000000000000000000000000096 -S3154004F0300000000000000000000000000000000086 -S3154004F0400000000000000000000000000000000076 -S3154004F0500000000000000000000000000000000066 -S3154004F0600000000000000000000000000000000056 -S3154004F0700000000000000000000000000000000046 -S3154004F0800000000000000000000000000000000036 -S3154004F0900000000000000000000000000000000026 -S3154004F0A00000000000000000000000000000000016 -S3154004F0B00000000000000000000000000000000006 -S3154004F0C000000000000000000000000000000000F6 -S3154004F0D000000000000000000000000000000000E6 -S3154004F0E000000000000000000000000000000000D6 -S3154004F0F000000000000000000000000000000000C6 -S3154004F10000000000000000000000000000000000B5 -S3154004F11000000000000000000000000000000000A5 -S3154004F1200000000000000000000000000000000095 -S3154004F1300000000000000000000000000000000085 -S3154004F1400000000000000000000000000000000075 -S3154004F1500000000000000000000000000000000065 -S3154004F1600000000000000000000000000000000055 -S3154004F1700000000000000000000000000000000045 -S3154004F1800000000000000000000000000000000035 -S3154004F1900000000000000000000000000000000025 -S3154004F1A00000000000000000000000000000000015 -S3154004F1B00000000000000000000000000000000005 -S3154004F1C000000000000000000000000000000000F5 -S3154004F1D000000000000000000000000000000000E5 -S3154004F1E000000000000000000000000000000000D5 -S3154004F1F000000000000000000000000000000000C5 -S3154004F20000000000000000000000000000000000B4 -S3154004F21000000000000000000000000000000000A4 -S3154004F2200000000000000000000000000000000094 -S3154004F2300000000000000000000000000000000084 -S3154004F2400000000000000000000000000000000074 -S3154004F2500000000000000000000000000000000064 -S3154004F2600000000000000000000000000000000054 -S3154004F2700000000000000000000000000000000044 -S3154004F2800000000000000000000000000000000034 -S3154004F2900000000000000000000000000000000024 -S3154004F2A00000000000000000000000000000000014 -S3154004F2B00000000000000000000000000000000004 -S3154004F2C000000000000000000000000000000000F4 -S3154004F2D000000000000000000000000000000000E4 -S3154004F2E000000000000000000000000000000000D4 -S3154004F2F000000000000000000000000000000000C4 -S3154004F30000000000000000000000000000000000B3 -S3154004F31000000000000000000000000000000000A3 -S3154004F3200000000000000000000000000000000093 -S3154004F3300000000000000000000000000000000083 -S3154004F3400000000000000000000000000000000073 -S3154004F3500000000000000000000000000000000063 -S3154004F3600000000000000000000000000000000053 -S3154004F3700000000000000000000000000000000043 -S3154004F3800000000000000000000000000000000033 -S3154004F3900000000000000000000000000000000023 -S3154004F3A00000000000000000000000000000000013 -S3154004F3B00000000000000000000000000000000003 -S3154004F3C000000000000000000000000000000000F3 -S3154004F3D000000000000000000000000000000000E3 -S3154004F3E000000000000000000000000000000000D3 -S3154004F3F000000000000000000000000000000000C3 -S3154004F40000000000000000000000000000000000B2 -S3154004F41000000000000000000000000000000000A2 -S3154004F4200000000000000000000000000000000092 -S3154004F4300000000000000000000000000000000082 -S3154004F4400000000000000000000000000000000072 -S3154004F4500000000000000000000000000000000062 -S3154004F4600000000000000000000000000000000052 -S3154004F4700000000000000000000000000000000042 -S3154004F4800000000000000000000000000000000032 -S3154004F4900000000000000000000000000000000022 -S3154004F4A00000000000000000000000000000000012 -S3154004F4B00000000000000000000000000000000002 -S3154004F4C000000000000000000000000000000000F2 -S3154004F4D000000000000000000000000000000000E2 -S3154004F4E000000000000000000000000000000000D2 -S3154004F4F000000000000000000000000000000000C2 -S3154004F50000000000000000000000000000000000B1 -S3154004F51000000000000000000000000000000000A1 -S3154004F5200000000000000000000000000000000091 -S3154004F5300000000000000000000000000000000081 -S3154004F5400000000000000000000000000000000071 -S3154004F5500000000000000000000000000000000061 -S3154004F5600000000000000000000000000000000051 -S3154004F5700000000000000000000000000000000041 -S3154004F5800000000000000000000000000000000031 -S3154004F5900000000000000000000000000000000021 -S3154004F5A00000000000000000000000000000000011 -S3154004F5B00000000000000000000000000000000001 -S3154004F5C000000000000000000000000000000000F1 -S3154004F5D000000000000000000000000000000000E1 -S3154004F5E000000000000000000000000000000000D1 -S3154004F5F000000000000000000000000000000000C1 -S3154004F60000000000000000000000000000000000B0 -S3154004F61000000000000000000000000000000000A0 -S3154004F6200000000000000000000000000000000090 -S3154004F6300000000000000000000000000000000080 -S3154004F6400000000000000000000000000000000070 -S3154004F6500000000000000000000000000000000060 -S3154004F6600000000000000000000000000000000050 -S3154004F6700000000000000000000000000000000040 -S3154004F6800000000000000000000000000000000030 -S3154004F6900000000000000000000000000000000020 -S3154004F6A00000000000000000000000000000000010 -S3154004F6B00000000000000000000000000000000000 -S3154004F6C000000000000000000000000000000000F0 -S3154004F6D000000000000000000000000000000000E0 -S3154004F6E000000000000000000000000000000000D0 -S3154004F6F000000000000000000000000000000000C0 -S3154004F70000000000000000000000000000000000AF -S3154004F710000000000000000000000000000000009F -S3154004F720000000000000000000000000000000008F -S3154004F730000000000000000000000000000000007F -S3154004F740000000000000000000000000000000006F -S3154004F750000000000000000000000000000000005F -S3154004F760000000000000000000000000000000004F -S3154004F770000000000000000000000000000000003F -S3154004F780000000000000000000000000000000002F -S3154004F790000000000000000000000000000000001F -S3154004F7A0000000000000000000000000000000000F -S3154004F7B000000000000000000000000000000000FF -S3154004F7C000000000000000000000000000000000EF -S3154004F7D000000000000000000000000000000000DF -S3154004F7E000000000000000000000000000000000CF -S3154004F7F000000000000000000000000000000000BF -S3154004F80000000000000000000000000000000000AE -S3154004F810000000000000000000000000000000009E -S3154004F820000000000000000000000000000000008E -S3154004F830000000000000000000000000000000007E -S3154004F840000000000000000000000000000000006E -S3154004F850000000000000000000000000000000005E -S3154004F860000000000000000000000000000000004E -S3154004F870000000000000000000000000000000003E -S3154004F880000000000000000000000000000000002E -S3154004F890000000000000000000000000000000001E -S3154004F8A0000000000000000000000000000000000E -S3154004F8B000000000000000000000000000000000FE -S3154004F8C000000000000000000000000000000000EE -S3154004F8D000000000000000000000000000000000DE -S3154004F8E000000000000000000000000000000000CE -S3154004F8F000000000000000000000000000000000BE -S3154004F90000000000000000000000000000000000AD -S3154004F910000000000000000000000000000000009D -S3154004F920000000000000000000000000000000008D -S3154004F930000000000000000000000000000000007D -S3154004F940000000000000000000000000000000006D -S3154004F950000000000000000000000000000000005D -S3154004F960000000000000000000000000000000004D -S3154004F970000000000000000000000000000000003D -S3154004F980000000000000000000000000000000002D -S3154004F990000000000000000000000000000000001D -S3154004F9A0000000000000000000000000000000000D -S3154004F9B000000000000000000000000000000000FD -S3154004F9C000000000000000000000000000000000ED -S3154004F9D000000000000000000000000000000000DD -S3154004F9E000000000000000000000000000000000CD -S3154004F9F000000000000000000000000000000000BD -S3154004FA0000000000000000000000000000000000AC -S3154004FA10000000000000000000000000000000009C -S3154004FA20000000000000000000000000000000008C -S3154004FA30000000000000000000000000000000007C -S3154004FA40000000000000000000000000000000006C -S3154004FA50000000000000000000000000000000005C -S3154004FA60000000000000000000000000000000004C -S3154004FA70000000000000000000000000000000003C -S3154004FA80000000000000000000000000000000002C -S3154004FA90000000000000000000000000000000001C -S3154004FAA0000000000000000000000000000000000C -S3154004FAB000000000000000000000000000000000FC -S3154004FAC000000000000000000000000000000000EC -S3154004FAD000000000000000000000000000000000DC -S3154004FAE000000000000000000000000000000000CC -S3154004FAF000000000000000000000000000000000BC -S3154004FB0000000000000000000000000000000000AB -S3154004FB10000000000000000000000000000000009B -S3154004FB20000000000000000000000000000000008B -S3154004FB30000000000000000000000000000000007B -S3154004FB40000000000000000000000000000000006B -S3154004FB50000000000000000000000000000000005B -S3154004FB60000000000000000000000000000000004B -S3154004FB70000000000000000000000000000000003B -S3154004FB80000000000000000000000000000000002B -S3154004FB90000000000000000000000000000000001B -S3154004FBA0000000000000000000000000000000000B -S3154004FBB000000000000000000000000000000000FB -S3154004FBC000000000000000000000000000000000EB -S3154004FBD000000000000000000000000000000000DB -S3154004FBE000000000000000000000000000000000CB -S3154004FBF000000000000000000000000000000000BB -S3154004FC0000000000000000000000000000000000AA -S3154004FC10000000000000000000000000000000009A -S3154004FC20000000000000000000000000000000008A -S3154004FC30000000000000000000000000000000007A -S3154004FC40000000000000000000000000000000006A -S3154004FC50000000000000000000000000000000005A -S3154004FC60000000000000000000000000000000004A -S3154004FC70000000000000000000000000000000003A -S3154004FC80000000000000000000000000000000002A -S3154004FC90000000000000000000000000000000001A -S3154004FCA0000000000000000000000000000000000A -S3154004FCB000000000000000000000000000000000FA -S3154004FCC000000000000000000000000000000000EA -S3154004FCD000000000000000000000000000000000DA -S3154004FCE000000000000000000000000000000000CA -S3154004FCF000000000000000000000000000000000BA -S3154004FD0000000000000000000000000000000000A9 -S3154004FD100000000000000000000000000000000099 -S3154004FD200000000000000000000000000000000089 -S3154004FD300000000000000000000000000000000079 -S3154004FD400000000000000000000000000000000069 -S3154004FD500000000000000000000000000000000059 -S3154004FD600000000000000000000000000000000049 -S3154004FD700000000000000000000000000000000039 -S3154004FD800000000000000000000000000000000029 -S3154004FD900000000000000000000000000000000019 -S3154004FDA00000000000000000000000000000000009 -S3154004FDB000000000000000000000000000000000F9 -S3154004FDC000000000000000000000000000000000E9 -S3154004FDD000000000000000000000000000000000D9 -S3154004FDE000000000000000000000000000000000C9 -S3154004FDF000000000000000000000000000000000B9 -S3154004FE0000000000000000000000000000000000A8 -S3154004FE100000000000000000000000000000000098 -S3154004FE200000000000000000000000000000000088 -S3154004FE300000000000000000000000000000000078 -S3154004FE400000000000000000000000000000000068 -S3154004FE500000000000000000000000000000000058 -S3154004FE600000000000000000000000000000000048 -S3154004FE700000000000000000000000000000000038 -S3154004FE800000000000000000000000000000000028 -S3154004FE900000000000000000000000000000000018 -S3154004FEA00000000000000000000000000000000008 -S3154004FEB000000000000000000000000000000000F8 -S3154004FEC000000000000000000000000000000000E8 -S3154004FED000000000000000000000000000000000D8 -S3154004FEE000000000000000000000000000000000C8 -S3154004FEF000000000000000000000000000000000B8 -S3154004FF0000000000000000000000000000000000A7 -S3154004FF100000000000000000000000000000000097 -S3154004FF200000000000000000000000000000000087 -S3154004FF300000000000000000000000000000000077 -S3154004FF400000000000000000000000000000000067 -S3154004FF500000000000000000000000000000000057 -S3154004FF600000000000000000000000000000000047 -S3154004FF700000000000000000000000000000000037 -S3154004FF800000000000000000000000000000000027 -S3154004FF900000000000000000000000000000000017 -S3154004FFA00000000000000000000000000000000007 -S3154004FFB000000000000000000000000000000000F7 -S3154004FFC000000000000000000000000000000000E7 -S3154004FFD000000000000000000000000000000000D7 -S3154004FFE000000000000000000000000000000000C7 -S3154004FFF000000000000000000000000000000000B7 -S3154005000000000002000000030000000000000000A0 -S315400500100000000100000000FFFFFFFE0000000396 -S3154005002055555554FFFFFFFE0000000355555554E1 -S31540050030700FFFFE00000007100249240000000073 -S315400500400000000000000000000000020000000360 -S315400500500000000000000003FFFFFFFEFFFFFFFF5B -S3154005006000000002FFFFFFFD000000000000000049 -S31540050070000000010000000000000000FFFFFFFF38 -S315400500800000000000000001FFFFFFFFFFFFFFFF2C -S31540050090FFFFFFFF00000001FFFFFFFFFFFFFFFE21 -S315400500A00000000300000000FFFFFFFEFFFFFFFD0D -S315400500B000000000000000090000000700000001E4 -S315400500C0FFFFFFF700000002FFFFFFFCFFFFFFF801 -S315400500D000000002FFFFFFFCFFFFFFF8FFFFFFFCEC -S315400500E00000000200000008FFFFFFFCFFFFFFFEC7 -S315400500F0FFFFFFF8FFFFFFF800000001FFFFFFF8D5 -S31540050100FFFFFFF7000000000000000B00000002A3 -S31540050110000000050000002F000000020000001747 -S3154005012000003039000002A700000012FFFF076CEF -S315400501300000004DFFFFFCC600003039FFFFFD59AA -S31540050140FFFFFFEEFFFF076CFFFFFFB30000033A1B -S3154005015000000091FFFFE84100000000FFFFFD841D -S31540050160FFFED02F000000000000F6FA006E498120 -S315400501700000000000000000000000000000000034 -S31540050180FFFFF0000000000200000003000000062B -S3154005019000000002FFFFFFFDFFFFFFFA0000000021 -S315400501A0000000010000000000000000FFFFFFFF07 -S315400501B00000000000000001FFFFFFFFFFFFFFFFFB -S315400501C0FFFFFFFF00000001FFFFFFFFFFFFFFFEF0 -S315400501D000000003FFFFFFFAFFFFFFFEFFFFFFFDE5 -S315400501E000000006000000000000000000000009B5 -S315400501F000000000000000000000000000000000B4 -S31540050200000000000000000100000002000000039D -S315400502100000000000000000000000000000000093 -S31540050220000000004005050C400505D8400506A41C -S315400502300000000000000000000000000000000073 -S315400502400000000000000000000000000000000063 -S31540050250000000004001B5900000000000000000CD -S315400502600000000000000000000000000000000043 -S315400502700000000000000000000000000000000033 -S315400502800000000000000000000000000000000023 -S315400502900000000000000000000000000000000013 -S315400502A00000000000000000000000000000000003 -S315400502B000000000000000000000000000000000F3 -S315400502C000000000000000000000000000000001E2 -S315400502D0330EABCD1234E66DDEEC0005000B0000A7 -S315400502E000000000000000000000000000000000C3 -S315400502F000000000000000000000000000000000B3 -S3154005030000000000000000000000000000000000A2 -S315400503100000000000000000000000000000000092 -S315400503200000000000000000000000000000000082 -S315400503300000000000000000000000000000000072 -S315400503400000000000000000000000000000000062 -S315400503500000000000000000000000000000000052 -S315400503600000000000000000000000000000000042 -S315400503700000000000000000000000000000000032 -S315400503800000000000000000000000000000000022 -S315400503900000000000000000000000000000000012 -S315400503A00000000000000000000000000000000002 -S315400503B000000000000000000000000000000000F2 -S315400503C000000000000000000000000000000000E2 -S315400503D000000000000000000000000000000000D2 -S315400503E000000000000000000000000000000000C2 -S315400503F000000000000000000000000000000000B2 -S3154005040000000000000000000000000000000000A1 -S315400504100000000000000000000000000000000091 -S315400504200000000000000000000000000000000081 -S315400504300000000000000000000000000000000071 -S315400504400000000000000000000000000000000061 -S315400504500000000000000000000000000000000051 -S315400504600000000000000000000000000000000041 -S315400504700000000000000000000000000000000031 -S315400504800000000000000000000000000000000021 -S315400504900000000000000000000000000000000011 -S315400504A00000000000000000000000000000000001 -S315400504B000000000000000000000000000000000F1 -S315400504C000000000000000000000000000000000E1 -S315400504D000000000000000000000000000000000D1 -S315400504E000000000000000000000000000000000C1 -S315400504F000000000000000000000000000000000B1 -S3154005050000000000000000000000000000000000A0 -S315400505100000000000000000000000000000000090 -S315400505200000000000000000000000000000000080 -S315400505300000000000000000000000000000000070 -S315400505400000000000000000000000000000000060 -S315400505500000000000000000000000000000000050 -S315400505600000000000000000000000000000000040 -S315400505700000000000000000000000000000000030 -S315400505800000000000000000000000000000000020 -S315400505900000000000000000000000000000000010 -S315400505A00000000000000000000000000000000000 -S315400505B000000000000000000000000000000000F0 -S315400505C000000000000000000000000000000000E0 -S315400505D000000000000000000000000000000000D0 -S315400505E000000000000000000000000000000000C0 -S315400505F000000000000000000000000000000000B0 -S31540050600000000000000000000000000000000009F -S31540050610000000000000000000000000000000008F -S31540050620000000000000000000000000000000007F -S31540050630000000000000000000000000000000006F -S31540050640000000000000000000000000000000005F -S31540050650000000000000000000000000000000004F -S31540050660000000000000000000000000000000003F -S31540050670000000000000000000000000000000002F -S31540050680000000000000000000000000000000001F -S31540050690000000000000000000000000000000000F -S315400506A000000000000000000000000000000000FF -S315400506B000000000000000000000000000000000EF -S315400506C000000000000000000000000000000000DF -S315400506D000000000000000000000000000000000CF -S315400506E000000000000000000000000000000000BF -S315400506F000000000000000000000000000000000AF -S31540050700000000000000000000000000000000009E -S31540050710000000000000000000000000000000008E -S31540050720000000000000000000000000000000007E -S31540050730000000000000000000000000000000006E -S31540050740000000000000000000000000000000005E -S31540050750000000000000000000000000000000004E -S31540050760000000000000000000000000000000003E -S315400507704005022000000000FFFFFFFF00020000C9 -S315400507800000000000000000400507804005078086 -S3154005079040050788400507884005079040050790AE -S315400507A04005079840050798400507A0400507A05E -S315400507B0400507A8400507A8400507B0400507B00E -S315400507C0400507B8400507B8400507C0400507C0BE -S315400507D0400507C8400507C8400507D0400507D06E -S315400507E0400507D8400507D8400507E0400507E01E -S315400507F0400507E8400507E8400507F0400507F0CE -S31540050800400507F8400507F840050800400508007B -S315400508104005080840050808400508104005081029 -S3154005082040050818400508184005082040050820D9 -S315400508304005082840050828400508304005083089 -S315400508404005083840050838400508404005084039 -S3154005085040050848400508484005085040050850E9 -S315400508604005085840050858400508604005086099 -S315400508704005086840050868400508704005087049 -S3154005088040050878400508784005088040050880F9 -S3154005089040050888400508884005089040050890A9 -S315400508A04005089840050898400508A0400508A059 -S315400508B0400508A8400508A8400508B0400508B009 -S315400508C0400508B8400508B8400508C0400508C0B9 -S315400508D0400508C8400508C8400508D0400508D069 -S315400508E0400508D8400508D8400508E0400508E019 -S315400508F0400508E8400508E8400508F0400508F0C9 -S31540050900400508F8400508F8400509004005090076 -S315400509104005090840050908400509104005091024 -S3154005092040050918400509184005092040050920D4 -S315400509304005092840050928400509304005093084 -S315400509404005093840050938400509404005094034 -S3154005095040050948400509484005095040050950E4 -S315400509604005095840050958400509604005096094 -S315400509704005096840050968400509704005097044 -S3154005098040050978400509784005098040050980F4 -S3154005099040050988400509884005099040050990A4 -S315400509A04005099840050998400509A0400509A054 -S315400509B0400509A8400509A8400509B0400509B004 -S315400509C0400509B8400509B8400509C0400509C0B4 -S315400509D0400509C8400509C8400509D0400509D064 -S315400509E0400509D8400509D8400509E0400509E014 -S315400509F0400509E8400509E8400509F0400509F0C4 -S31540050A00400509F8400509F840050A0040050A0071 -S31540050A1040050A0840050A0840050A1040050A101F -S31540050A2040050A1840050A1840050A2040050A20CF -S31540050A3040050A2840050A2840050A3040050A307F -S31540050A4040050A3840050A3840050A4040050A402F -S31540050A5040050A4840050A4840050A5040050A50DF -S31540050A6040050A5840050A5840050A6040050A608F -S31540050A7040050A6840050A6840050A7040050A703F -S31540050A8040050A7840050A7840050A8040050A80EF -S31540050A9040050A8840050A8840050A9040050A909F -S31540050AA040050A9840050A9840050AA040050AA04F -S31540050AB040050AA840050AA840050AB040050AB0FF -S31540050AC040050AB840050AB840050AC040050AC0AF -S31540050AD040050AC840050AC840050AD040050AD05F -S31540050AE040050AD840050AD840050AE040050AE00F -S31540050AF040050AE840050AE840050AF040050AF0BF -S31540050B0040050AF840050AF840050B0040050B006C -S31540050B1040050B0840050B0840050B1040050B101A -S31540050B2040050B1840050B1840050B2040050B20CA -S31540050B3040050B2840050B2840050B3040050B307A -S31540050B4040050B3840050B3840050B4040050B402A -S31540050B5040050B4840050B4840050B5040050B50DA -S31540050B6040050B5840050B5840050B6040050B608A -S31540050B7040050B6840050B6840050B7040050B703A -S31540050B8040050B7840050B780000000040050B88B2 -S31540050B900000000000000000000000000000000208 -S31540050BA000000000000000000000000000000000FA -S31540050BB000000000000000000000000000000000EA -S31540050BC000000000000000000000000000000000DA -S31540050BD000000000000000000000000000000000CA -S31540050BE000000000000000000000000000000000BA -S31540050BF000000000000000000000000000000000AA -S31540050C000000000000000000000000000000000099 -S31540050C100000000000000000000000000000000089 -S31540050C200000000000000000000000000000000079 -S31540050C3080000100000000080000000700000006D3 -S31540050C40000000030000000000000000FFFF8AD0FE -S30940050C5080000310C2 +S31540048C200000000000000000800003100000000067 +S31540048C30000000008000010000000008000000075A +S31540048C40000000060000000300000000FFFF8AD079 S70540000000BA diff --git a/designs/leon3-xilinx-ml605/svga2ch7301c.vhd b/designs/leon3-xilinx-ml605/svga2ch7301c.vhd index 398a2762..87876f8d 100644 --- a/designs/leon3-xilinx-ml605/svga2ch7301c.vhd +++ b/designs/leon3-xilinx-ml605/svga2ch7301c.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-ml605/testbench.vhd b/designs/leon3-xilinx-ml605/testbench.vhd index ec9f4129..b410e26d 100644 --- a/designs/leon3-xilinx-ml605/testbench.vhd +++ b/designs/leon3-xilinx-ml605/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2010, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -29,7 +29,7 @@ use gaisler.sim.all; library techmap; use techmap.gencomp.all; library micron; -use micron.components.all; +use micron.all; use work.debug.all; use work.config.all; @@ -43,11 +43,21 @@ entity testbench is disas : integer := CFG_DISAS; -- Enable disassembly to console dbguart : integer := CFG_DUART; -- Print UART on console pclow : integer := CFG_PCLOW; - clkperiod : integer := 37 -- system clock period + clkperiod : integer := 37 ); end; architecture behav of testbench is + +-- DDR3 Simulation parameters +constant SIM_BYPASS_INIT_CAL : string := "FAST"; + -- # = "OFF" - Complete memory init & + -- calibration sequence + -- # = "SKIP" - Not supported + -- # = "FAST" - Complete memory init & use + -- abbreviated calib sequence + + constant promfile : string := "prom.srec"; -- rom contents constant sdramfile : string := "sdram.srec"; -- sdram contents @@ -88,8 +98,6 @@ architecture behav of testbench is signal ddr3_tdqs_n : std_logic_vector(DQS_WIDTH-1 downto 0); signal ddr3_ck_p : std_logic_vector(CK_WIDTH-1 downto 0); signal ddr3_ck_n : std_logic_vector(CK_WIDTH-1 downto 0); - signal sda : std_logic; - signal scl : std_logic; -- Debug support unit @@ -122,7 +130,7 @@ architecture behav of testbench is signal gmiiclk_n : std_logic := '0'; -- Output signals for LEDs - signal led : std_logic_vector(4 downto 0); + signal led : std_logic_vector(6 downto 0); signal iic_scl_main, iic_sda_main : std_logic; signal iic_scl_dvi, iic_sda_dvi : std_logic; @@ -142,6 +150,29 @@ signal sysace_d : std_logic_vector(7 downto 0); signal clk_33 : std_ulogic := '0'; signal brdyn : std_ulogic; + +component ddr3_model is + port ( + rst_n : in std_logic; + ck : in std_logic; + ck_n : in std_logic; + cke : in std_logic; + cs_n : in std_logic; + ras_n : in std_logic; + cas_n : in std_logic; + we_n : in std_logic; + dm_tdqs : inout std_logic_vector(1 downto 0); + ba : in std_logic_vector(2 downto 0); + addr : in std_logic_vector(12 downto 0); + dq : inout std_logic_vector(15 downto 0); + dqs : inout std_logic_vector(1 downto 0); + dqs_n : inout std_logic_vector(1 downto 0); + tdqs_n : out std_logic_vector(1 downto 0); + odt : in std_logic + ); +end component ddr3_model; + + begin -- clock and reset clk <= not clk after ct * 1 ns; @@ -150,13 +181,14 @@ begin gmiiclk_p <= not gmiiclk_p after 4 ns; gmiiclk_n <= not gmiiclk_n after 4 ns; clk_33 <= not clk_33 after 15 ns; - rst <= '1', '0' after 1000 ns; + rst <= '1', '0' after 200 us; rstn1 <= not rst; dsubre <= '0'; urxd <= 'H'; d3 : entity work.leon3mp - generic map (fabtech, memtech, padtech, disas, dbguart, pclow) + generic map (fabtech, memtech, padtech, disas, dbguart, pclow, + SIM_BYPASS_INIT_CAL) port map ( reset => rst, errorn => error, @@ -186,8 +218,6 @@ begin ddr3_dqs_n => ddr3_dqs_n, ddr3_ck_p => ddr3_ck_p, ddr3_ck_n => ddr3_ck_n, --- sda => sda, --- scl => scl, -- Debug Unit dsubre => dsubre, @@ -236,25 +266,26 @@ begin led => led ); - ddr3mem : for i in 0 to 3 generate - u0 : entity micron.ddr3 port map ( - rst_n => ddr3_reset_n, - ck => ddr3_ck_p(0), - ck_n => ddr3_ck_n(0), - cke => ddr3_cke(0), - cs_n => ddr3_cs_n(0), - ras_n => ddr3_ras_n, - cas_n => ddr3_cas_n, - we_n => ddr3_we_n, - dm_tdqs => ddr3_dm(i*2+1 downto i*2), - ba => ddr3_ba, - addr => ddr3_addr, - dq => ddr3_dq(16*i+15 downto 16*i), - dqs => ddr3_dqs_p(i*2+1 downto i*2), - dqs_n => ddr3_dqs_n(i*2+1 downto i*2), - tdqs_n => ddr3_tdqs_n(i*2+1 downto i*2), - odt => ddr3_odt(0)); - end generate; + gen_mem: for i in 0 to 3 generate + u1: ddr3_model port map + ( + rst_n => ddr3_reset_n, + ck => ddr3_ck_p(0), + ck_n => ddr3_ck_n(0), + cke => ddr3_cke(0), + cs_n => ddr3_cs_n(0), + ras_n => ddr3_ras_n, + cas_n => ddr3_cas_n, + we_n => ddr3_we_n, + dm_tdqs => ddr3_dm((2*(i+1)-1) downto (i*2)), + ba => ddr3_ba, + addr => ddr3_addr, + dq => ddr3_dq((16*i+15) downto (16*i)), + dqs => ddr3_dqs_p((2*(i+1)-1) downto (i*2)), + dqs_n => ddr3_dqs_n((2*(i+1)-1) downto (i*2)), + tdqs_n => ddr3_tdqs_n((2*(i+1)-1) downto (i*2)), + odt => ddr3_odt(0)); + end generate gen_mem; -- prom0 : sram -- generic map (index => 6, abits => 24, fname => promfile) @@ -287,7 +318,9 @@ begin iuerr : process begin - wait for 55 us; + wait for 210 us; -- This is for proper DDR3 behaviour durign init phase not needed durin simulation + wait on led(3); -- DDR3 Memory Init ready + wait for 5000 ns; assert (to_X01(error) = '1') report "*** IU in error mode, simulation halted ***" severity failure; diff --git a/designs/leon3-xilinx-ml605/tkconfig.h b/designs/leon3-xilinx-ml605/tkconfig.h index f24000cb..45e28939 100644 --- a/designs/leon3-xilinx-ml605/tkconfig.h +++ b/designs/leon3-xilinx-ml605/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -467,6 +479,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -489,6 +505,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else diff --git a/designs/leon3-xilinx-sp601/Makefile b/designs/leon3-xilinx-sp601/Makefile index 053bbcbf..bfbf5021 100644 --- a/designs/leon3-xilinx-sp601/Makefile +++ b/designs/leon3-xilinx-sp601/Makefile @@ -1,12 +1,14 @@ include .config + GRLIB=../.. TOP=leon3mp BOARD=xilinx-sp601-xc6slx16 +DESIGN=leon3-xilinx-sp601 include $(GRLIB)/boards/$(BOARD)/Makefile.inc DEVICE=$(PART)-$(PACKAGE)$(SPEED) #UCF=$(GRLIB)/boards/$(BOARD)/$(TOP).ucf UCF=$(TOP).ucf -#ISEMAPOPT=-timing +UCF_PLANAHEAD=$(UCF) QSF=$(GRLIB)/boards/$(BOARD)/$(TOP).qsf EFFORT=high XSTOPT=-uc leon3mp.xcf @@ -19,8 +21,15 @@ VHDLOPTSYNFILES= mig37/mig_37/user_design/rtl/iodrp_controller.vhd \ mig37/mig_37/user_design/rtl/mcb_soft_calibration_top.vhd \ mig37/mig_37/user_design/rtl/memc3_infrastructure.vhd \ mig37/mig_37/user_design/rtl/memc3_wrapper.vhd \ - mig37/mig_37/user_design/rtl/mig_37.vhd -VHDLSYNFILES= \ + mig37/mig_37/user_design/rtl/mig_37.vhd \ + mig39/mig_39/user_design/rtl/iodrp_controller.vhd \ + mig39/mig_39/user_design/rtl/iodrp_mcb_controller.vhd \ + mig39/mig_39/user_design/rtl/mcb_raw_wrapper.vhd \ + mig39/mig_39/user_design/rtl/mcb_soft_calibration.vhd \ + mig39/mig_39/user_design/rtl/mcb_soft_calibration_top.vhd \ + mig39/mig_39/user_design/rtl/memc3_infrastructure.vhd \ + mig39/mig_39/user_design/rtl/memc3_wrapper.vhd \ + mig39/mig_39/user_design/rtl/mig_39.vhd \ config.vhd ahbrom.vhd ahb2mig_sp601.vhd leon3mp.vhd VHDLSIMFILES=testbench.vhd @@ -32,20 +41,31 @@ CLEAN=soft-clean TECHLIBS = secureip unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann usbhc spw + tmtc openchip ihp usbhc spw DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - usb grusbhc spacewire ata haps coremp7 ascs slink hcan \ - leon4 leon4b64 l2cache pwm gr1553b iommu + usb grusbhc spacewire ascs slink hcan \ + leon4 leon4v0 l2cache pwm gr1553b iommu FILEADD=MCB.vhd FILESKIP = grcan.vhd include $(GRLIB)/bin/Makefile include $(GRLIB)/software/leon3/Makefile + ################## project specific targets ########################## mig: coregen -b mig37/mig.xco -p mig37 migclean: - -rm -rf mig37/mig_37* mig37/tmp \ No newline at end of file + -rm -rf mig37/mig_37* mig37/tmp + +mig39: + coregen -b mig39/mig.xco -p mig39 + patch -p0 < mig_patch.txt + patch -p0 < mcb_soft_calibration_patch.txt + +mig39clean: + -rm -rf mig39/mig_39* mig39/tmp + +.PHONY : mig mig39 mig39clean \ No newline at end of file diff --git a/designs/leon3-xilinx-sp601/README.txt b/designs/leon3-xilinx-sp601/README.txt index 9c5146f0..0a1bc02b 100644 --- a/designs/leon3-xilinx-sp601/README.txt +++ b/designs/leon3-xilinx-sp601/README.txt @@ -10,16 +10,27 @@ interface. The MIG source code cannot be distributed due to the prohibitive Xilinx license, so the MIG must be re-generated with coregen before simulation and synthesis can be done. -To generate the MIG and install the Xilinx unisim simulation +To generate the MIG using ISE13 and install the Xilinx unisim simulation library, do as follows: make mig make install-secureip -This will ONLY work with ISE-13 installed, and the XILINX variable -properly set in the shell. To synthesize the design, do +To generate the MIG using ISE14 and install the Xilinx unisim simulation +library, do as follows: + + make mig39 + make install-secureip + +This will ONLY work with correct version of ISE installed, and the XILINX variable +properly set in the shell. For ISE13 it is recommened to use the 'ise' make target +and for ISE14 to use the 'planAhead' target. To synthesize the design, do + + make ise (ISE13) + +or - make ise + make planAhead (ISE14) and then @@ -75,93 +86,58 @@ Design specifics grmon -xilusb -u - GRMON LEON debug monitor v1.1.47 professional version - - Copyright (C) 2004-2010 Aeroflex Gaisler - all rights reserved. - For latest updates, go to http://www.gaisler.com/ - Comments or bug-reports to support@gaisler.com - - This debug version will expire on 14/11/2011 - Xilinx cable: Cable type/rev : 0x3 - JTAG chain: xc6slx16 - - GRLIB build version: 4107 - - initialising ........... - detected frequency: 27 MHz - - Component Vendor - LEON3 SPARC V8 Processor Gaisler Research - AHB Debug JTAG TAP Gaisler Research - GR Ethernet MAC Gaisler Research - AHB/APB Bridge Gaisler Research - LEON3 Debug Support Unit Gaisler Research - Xilinx MIG DDR2 controller Gaisler Research - LEON2 Memory Controller European Space Agency - Generic APB UART Gaisler Research - Multi-processor Interrupt Ctrl Gaisler Research - Modular Timer Unit Gaisler Research - General purpose I/O port Gaisler Research - - Use command 'info sys' to print a detailed report of attached cores - -grlib> inf sys -00.01:003 Gaisler Research LEON3 SPARC V8 Processor (ver 0x0) - ahb master 0 -01.01:01c Gaisler Research AHB Debug JTAG TAP (ver 0x1) - ahb master 1 -02.01:01d Gaisler Research GR Ethernet MAC (ver 0x0) - ahb master 2, irq 12 - apb: 80000f00 - 80001000 - Device index: dev0 -01.01:006 Gaisler Research AHB/APB Bridge (ver 0x0) - ahb: 80000000 - 80100000 -02.01:004 Gaisler Research LEON3 Debug Support Unit (ver 0x1) - ahb: 90000000 - a0000000 - AHB trace 128 lines, 32-bit bus, stack pointer 0x47fffff0 - CPU#0 win 8, itrace 128, V8 mul/div, lddel 1 - icache 1 * 8 kbyte, 32 byte/line - dcache 1 * 4 kbyte, 16 byte/line -04.01:06b Gaisler Research Xilinx MIG DDR2 controller (ver 0x0) - ahb: 40000000 - 48000000 - DDR2: 128 Mbyte -05.04:00f European Space Agency LEON2 Memory Controller (ver 0x1) - ahb: 00000000 - 20000000 - ahb: 20000000 - 40000000 - apb: 80000000 - 80000100 - 8-bit prom @ 0x00000000 -01.01:00c Gaisler Research Generic APB UART (ver 0x1) - irq 2 - apb: 80000100 - 80000200 - baud rate 38352, DSU mode (FIFO debug) -02.01:00d Gaisler Research Multi-processor Interrupt Ctrl (ver 0x3) - apb: 80000200 - 80000300 -03.01:011 Gaisler Research Modular Timer Unit (ver 0x0) - irq 8 - apb: 80000300 - 80000400 - 8-bit scaler, 2 * 32-bit timers, divisor 27 -0b.01:01a Gaisler Research General purpose I/O port (ver 0x1) - apb: 80000b00 - 80000c00 -grlib> fla - - Intel-style 8-bit flash on D[31:24] - - Manuf. Intel - Device MT28F128J3 ) - - Device ID 3c99ffff9d012849 - User ID ffffffffffffffff - - - 1 x 16 Mbyte = 16 Mbyte total @ 0x00000000 - - - CFI info - flash family : 1 - flash size : 128 Mbit - erase regions : 1 - erase blocks : 128 - write buffer : 32 bytes - region 0 : 128 blocks of 128 Kbytes - -grlib> + GRMON2 LEON debug monitor v2.0.32 internal version + + Copyright (C) 2012 Aeroflex Gaisler - All rights reserved. + For latest updates, go to http://www.gaisler.com/ + Comments or bug-reports to support@gaisler.com + + +Parsing -xilusb +Parsing -u + +Commands missing help: + debug + +Xilusb: Cable type/rev : 0x3 + JTAG chain (1): xc6slx16 + Device ID: 0x601 + GRLIB build version: 4121 + Detected frequency: 54 MHz + + Component Vendor + LEON3 SPARC V8 Processor Aeroflex Gaisler + JTAG Debug Link Aeroflex Gaisler + GR Ethernet MAC Aeroflex Gaisler + AHB/APB Bridge Aeroflex Gaisler + LEON3 Debug Support Unit Aeroflex Gaisler + Xilinx MIG DDR2 Controller Aeroflex Gaisler + LEON2 Memory Controller European Space Agency + Generic UART Aeroflex Gaisler + Multi-processor Interrupt Ctrl. Aeroflex Gaisler + Modular Timer Unit Aeroflex Gaisler + General Purpose I/O port Aeroflex Gaisler + + Use command 'info sys' to print a detailed report of attached cores + +grmon2> lo /usr/local32/apps/bench/leon3/dhry.leon3 + 40000000 .text 54.7kB / 54.7kB [===============>] 100% + 4000DAF0 .data 2.7kB / 2.7kB [===============>] 100% + Total size: 57.44kB (1.57Mbit/s) + Entry point 0x40000000 + Image /usr/local32/apps/bench/leon3/dhry.leon3 loaded + +grmon2> run +Execution starts, 1000000 runs through Dhrystone +Total execution time: 10.3 s +Microseconds for one run through Dhrystone: 10.3 +Dhrystones per Second: 97539.4 + +Dhrystones MIPS : 55.5 + + + Program exited normally. + +grmon2> exit + +Exiting GRMON diff --git a/designs/leon3-xilinx-sp601/ahb2mig_sp601.vhd b/designs/leon3-xilinx-sp601/ahb2mig_sp601.vhd index d9d87535..dafb640e 100644 --- a/designs/leon3-xilinx-sp601/ahb2mig_sp601.vhd +++ b/designs/leon3-xilinx-sp601/ahb2mig_sp601.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -369,7 +369,6 @@ begin ahbso.hirq <= (others => '0'); ahbso.hindex <= hindex; ahbso.hsplit <= (others => '0'); - ahbso.hcache <= '1'; apbo.pindex <= pindex; apbo.pconfig <= pconfig; diff --git a/designs/leon3-xilinx-sp601/ahbrom.vhd b/designs/leon3-xilinx-sp601/ahbrom.vhd index d07c1a9f..8d73e672 100644 --- a/designs/leon3-xilinx-sp601/ahbrom.vhd +++ b/designs/leon3-xilinx-sp601/ahbrom.vhd @@ -56,7 +56,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-xilinx-sp601/config.help b/designs/leon3-xilinx-sp601/config.help index 7a04e327..a1911e4f 100644 --- a/designs/leon3-xilinx-sp601/config.help +++ b/designs/leon3-xilinx-sp601/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -1012,7 +1046,7 @@ CONFIG_SPIMCTRL_SDCARD Read command CONFIG_SPIMCTRL_READCMD - Read instruction for SPI memory device + Read instruction for SPI memory device (hex). Dummy byte CONFIG_SPIMCTRL_DUMMYBYTE @@ -1022,6 +1056,10 @@ Dual output CONFIG_SPIMCTRL_DUALOUTPUT Memory device supports dual output when reading data. +Address offset +CONFIG_SPIMCTRL_OFFSET + Offset that will be added by core on SPI memory address (hex). + Clock scaler CONFIG_SPIMCTRL_SCALER Selects the divisor used when dividing the system clock to produce diff --git a/designs/leon3-xilinx-sp601/config.vhd.h b/designs/leon3-xilinx-sp601/config.vhd.h index c2cbcd0e..b86f46ca 100644 --- a/designs/leon3-xilinx-sp601/config.vhd.h +++ b/designs/leon3-xilinx-sp601/config.vhd.h @@ -185,6 +185,7 @@ constant CFG_SPIMCTRL_SCALER : integer := CONFIG_SPIMCTRL_SCALER; constant CFG_SPIMCTRL_ASCALER : integer := CONFIG_SPIMCTRL_ASCALER; constant CFG_SPIMCTRL_PWRUPCNT : integer := CONFIG_SPIMCTRL_PWRUPCNT; + constant CFG_SPIMCTRL_OFFSET : integer := 16#CONFIG_SPIMCTRL_OFFSET#; -- SPI controller constant CFG_SPICTRL_ENABLE : integer := CONFIG_SPICTRL_ENABLE; diff --git a/designs/leon3-xilinx-sp601/lconfig.tk b/designs/leon3-xilinx-sp601/lconfig.tk index 355c5ce8..9bd3f7e4 100755 --- a/designs/leon3-xilinx-sp601/lconfig.tk +++ b/designs/leon3-xilinx-sp601/lconfig.tk @@ -757,7 +757,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -767,7 +768,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -910,8 +913,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -930,6 +935,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1019,9 +1028,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1075,10 +1085,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1124,14 +1135,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1204,13 +1217,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1250,22 +1271,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1322,21 +1611,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1383,36 +1672,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1420,48 +1710,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1517,27 +1808,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1578,16 +1869,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1596,34 +1888,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1680,92 +1973,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1773,18 +2066,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1825,52 +2118,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1878,162 +2172,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2089,45 +2384,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2167,18 +2464,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2186,55 +2484,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2291,24 +2594,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2348,17 +2651,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2366,37 +2670,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2452,22 +2757,22 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - global tmpvar_26 - minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_26 CONFIG_FPUFT_NONE + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" - $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN @@ -2538,26 +2843,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global tmpvar_26 + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 global CONFIG_FPUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} global CONFIG_FPUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} global CONFIG_FPUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} global CONFIG_FPUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2866,14 +3171,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_27 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_27 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2947,17 +3252,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_27 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3737,16 +4042,16 @@ proc menu18 {w title} { hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 18 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 18 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_28 - minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_28 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3808,21 +4113,21 @@ proc update_define_menu18 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_28 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_28 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_28 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_28 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_28 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_28 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_28 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_28 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3882,14 +4187,14 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 19 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_29 - minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_29 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3943,17 +4248,17 @@ proc update_define_menu19 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_29 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_29 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -4009,15 +4314,15 @@ proc menu20 {w title} { bool $w.config.f 20 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_30 - minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_30 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 20 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 20 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4106,19 +4411,19 @@ proc update_menu20 {} { proc update_define_menu20 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_30 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_30 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_30 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4305,9 +4610,10 @@ proc menu22 {w title} { hex $w.config.f 22 2 "Read instruction " CONFIG_SPIMCTRL_READCMD bool $w.config.f 22 3 "Read instruction requires dummy byte " CONFIG_SPIMCTRL_DUMMYBYTE bool $w.config.f 22 4 "Enable dual output for reads " CONFIG_SPIMCTRL_DUALOUTPUT - int $w.config.f 22 5 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER - int $w.config.f 22 6 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER - int $w.config.f 22 7 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT + hex $w.config.f 22 5 "Address offset " CONFIG_SPIMCTRL_OFFSET + int $w.config.f 22 6 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER + int $w.config.f 22 7 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER + int $w.config.f 22 8 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT @@ -4357,12 +4663,14 @@ proc update_menu22 {} { global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { configure_entry .menu22.config.f.x4 normal {n l y}} else {configure_entry .menu22.config.f.x4 disabled {y n l}} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {.menu22.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x5.l configure -state normal; } else {.menu22.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x5.l configure -state disabled} global CONFIG_SPIMCTRL_SCALER - if {($CONFIG_SPIMCTRL == 1)} then {.menu22.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x5.l configure -state normal; } else {.menu22.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x5.l configure -state disabled} - global CONFIG_SPIMCTRL_ASCALER if {($CONFIG_SPIMCTRL == 1)} then {.menu22.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x6.l configure -state normal; } else {.menu22.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x6.l configure -state disabled} - global CONFIG_SPIMCTRL_PWRUPCNT + global CONFIG_SPIMCTRL_ASCALER if {($CONFIG_SPIMCTRL == 1)} then {.menu22.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x7.l configure -state normal; } else {.menu22.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x7.l configure -state disabled} + global CONFIG_SPIMCTRL_PWRUPCNT + if {($CONFIG_SPIMCTRL == 1)} then {.menu22.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x8.l configure -state normal; } else {.menu22.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x8.l configure -state disabled} } @@ -4381,6 +4689,8 @@ proc update_define_menu22 {} { global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT&15]} else {set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT|16]} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {validate_hex CONFIG_SPIMCTRL_OFFSET "$CONFIG_SPIMCTRL_OFFSET" 0} global CONFIG_SPIMCTRL_SCALER if {($CONFIG_SPIMCTRL == 1)} then {validate_int CONFIG_SPIMCTRL_SCALER "$CONFIG_SPIMCTRL_SCALER" 1} global CONFIG_SPIMCTRL_ASCALER @@ -4452,12 +4762,12 @@ proc menu23 {w title} { bool $w.config.f 23 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN int $w.config.f 23 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN bool $w.config.f 23 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM - global tmpvar_31 - minimenu $w.config.f 23 11 "Fault-tolerance" tmpvar_31 CONFIG_SPICTRL_NOFT + global tmpvar_32 + minimenu $w.config.f 23 11 "Fault-tolerance" tmpvar_32 CONFIG_SPICTRL_NOFT menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" - $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_31 -value "None" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_31 -value "Parity-DMR" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_31 -value "TMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_32 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_32 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_32 -value "TMR" -command "update_active" menusplit $w $w.config.f.x11.x.menu 3 @@ -4557,13 +4867,13 @@ proc update_define_menu23 {} { global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} - global tmpvar_31 + global tmpvar_32 global CONFIG_SPICTRL_NOFT - if {$tmpvar_31 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + if {$tmpvar_32 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} global CONFIG_SPICTRL_DMRFT - if {$tmpvar_31 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + if {$tmpvar_32 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} global CONFIG_SPICTRL_TMRFT - if {$tmpvar_31 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} + if {$tmpvar_32 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } @@ -4705,7 +5015,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4715,6 +5026,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4739,6 +5052,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4751,14 +5065,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4771,27 +5090,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4801,17 +5120,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4823,12 +5142,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4838,10 +5157,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4852,7 +5171,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4864,26 +5183,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4891,27 +5212,27 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_FPUFT_NONE 0 set CONFIG_FPUFT_PAR 0 set CONFIG_FPUFT_DMR 0 @@ -4936,7 +5257,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_27 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4990,7 +5311,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_28 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -5001,14 +5322,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_29 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_30 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5034,6 +5355,7 @@ set CONFIG_SPIMCTRL_SDCARD 0 set CONFIG_SPIMCTRL_READCMD 0B set CONFIG_SPIMCTRL_DUMMYBYTE 0 set CONFIG_SPIMCTRL_DUALOUTPUT 0 +set CONFIG_SPIMCTRL_OFFSET 0 set CONFIG_SPIMCTRL_SCALER 1 set CONFIG_SPIMCTRL_ASCALER 8 set CONFIG_SPIMCTRL_PWRUPCNT 0 @@ -5048,7 +5370,7 @@ set CONFIG_SPICTRL_ODMODE 0 set CONFIG_SPICTRL_TWEN 0 set CONFIG_SPICTRL_MAXWLEN 0 set CONFIG_SPICTRL_SYNCRAM 0 -set tmpvar_31 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_SPICTRL_NOFT 0 set CONFIG_SPICTRL_DMRFT 0 set CONFIG_SPICTRL_TMRFT 0 @@ -5108,7 +5430,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5118,6 +5441,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5156,6 +5481,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -5168,9 +5494,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5184,243 +5511,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5465,13 +5938,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_27 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5575,38 +6048,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_28 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_29 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_30 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5647,6 +6120,8 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUMMYBYTE $CONFIG_SPIMCTRL_DUMMYBYTE [list $notmod] 2 } global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUALOUTPUT $CONFIG_SPIMCTRL_DUALOUTPUT [list $notmod] 2 } + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_hex $cfg $autocfg CONFIG_SPIMCTRL_OFFSET $CONFIG_SPIMCTRL_OFFSET $notmod } global CONFIG_SPIMCTRL_SCALER if {($CONFIG_SPIMCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SPIMCTRL_SCALER $CONFIG_SPIMCTRL_SCALER $notmod } global CONFIG_SPIMCTRL_ASCALER @@ -5676,11 +6151,11 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } - global tmpvar_31 + global tmpvar_32 if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { - if { $tmpvar_31 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } - if { $tmpvar_31 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } - if { $tmpvar_31 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} + if { $tmpvar_32 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -5725,7 +6200,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5735,6 +6211,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5753,8 +6231,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5837,11 +6320,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5968,8 +6453,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5988,6 +6475,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -6028,342 +6519,358 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_FPUFT_NONE - if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_FPUFT_PAR - if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_FPUFT_DMR - if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_FPUFT_TMR - if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "2" + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_27 "16" } - global tmpvar_28 - set tmpvar_28 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_29 "64" } - global tmpvar_30 - set tmpvar_30 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_30 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_30 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_30 "32" } - global tmpvar_31 - set tmpvar_31 "None" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } + global tmpvar_32 + set tmpvar_32 "None" global CONFIG_SPICTRL_NOFT - if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_31 "None" } + if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_32 "None" } global CONFIG_SPICTRL_DMRFT - if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_31 "Parity-DMR" } + if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_32 "Parity-DMR" } global CONFIG_SPICTRL_TMRFT - if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_31 "TMR" } + if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_32 "TMR" } } diff --git a/designs/leon3-xilinx-sp601/leon3mp.ucf b/designs/leon3-xilinx-sp601/leon3mp.ucf index 3791d387..d9a0c5b1 100644 --- a/designs/leon3-xilinx-sp601/leon3mp.ucf +++ b/designs/leon3-xilinx-sp601/leon3mp.ucf @@ -23,12 +23,22 @@ OFFSET = IN : 10.000 : BEFORE etx_clk; #NET "mig_gen.ddrc.MCB_inst.memc?_wrapper_inst.memc?_mcb_raw_wrapper_inst.gen_term_calib.mcb_soft_calibration_top_inst.mcb_soft_calibration_inst.CKE_Train" TIG; ## This path exists for DDR2 only #NET "mig_gen.ddrc.i.calib_done" TIG; -# XST versions of DDR2 false paths +############################################################################ +# DDR2 requires the MCB to operate in Extended performance mode with higher Vccint +# specification to achieve maximum frequency. Therefore, the following CONFIG constraint +# follows the corresponding GUI option setting. However, DDR3 can operate at higher +# frequencies with any Vcciint value by operating MCB in extended mode. Please do not +# remove/edit the below constraint to avoid false errors. +############################################################################ +CONFIG MCB_PERFORMANCE= STANDARD; + +# --- MIG37 --- NET "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/selfrefresh_mcb_mode" TIG; NET "mig_gen.ddrc/MCB_inst/c?_pll_lock" TIG; NET "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/CKE_Train" TIG; ## This path exists for DDR2 only -#NET "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/DONE_SOFTANDHARD_CAL" TIG; -#NET "mig_gen.ddrc/i.calib_done" TIG; + +# --- MIG39 --- +INST "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/DONE_SOFTANDHARD_CAL*" TIG; # Avoid false paths between main clock and DDR clock diff --git a/designs/leon3-xilinx-sp601/leon3mp.vhd b/designs/leon3-xilinx-sp601/leon3mp.vhd index 6fd90dcb..59ce6bd4 100644 --- a/designs/leon3-xilinx-sp601/leon3mp.vhd +++ b/designs/leon3-xilinx-sp601/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -38,6 +38,7 @@ use gaisler.misc.all; use gaisler.spi.all; use gaisler.net.all; use gaisler.jtag.all; +use gaisler.ddrpkg.all; library esa; use esa.memoryctrl.all; use work.config.all; diff --git a/designs/leon3-xilinx-sp601/mcb_soft_calibration_patch.txt b/designs/leon3-xilinx-sp601/mcb_soft_calibration_patch.txt new file mode 100644 index 00000000..ef221fad --- /dev/null +++ b/designs/leon3-xilinx-sp601/mcb_soft_calibration_patch.txt @@ -0,0 +1,1049 @@ +--- ./mig39/mig_39//user_design/rtl/mcb_soft_calibration.vhd 2013-01-15 15:13:18.000000000 +0100 ++++ ./p/a/t/c/h/mig39/mig_39//user_design/rtl/mcb_soft_calibration.vhd 2013-01-15 15:19:15.608793398 +0100 +@@ -94,15 +94,7 @@ + -- 3.7: 04/26/10: Added DDR2 Initialization fix to meet 400 ns wait as outlined in step d) of JEDEC DDR2 spec . + -- 3.8: 05/05/10: Added fixes for the CR# 559092 (updated Mult_Divide function) and 555416 (added IOB attribute to DONE_SOFTANDHARD_CAL). + -- 3.9: 05/24/10: Added 200us Wait logic to control CKE_Train. The 200us Wait counter assumes UI_CLK freq not higher than 100 MHz. +--- 3.10 10/22/10: Fixed PERFORM_START_DYN_CAL_AFTER_SELFREFRESH logic. +--- 3.11 2/14/11: Apply a different skkew for the P and N inputs for the differential LDQS and UDQS signals to provide more noise immunity. +--- 4.1 03/08/12: Fixed SELFREFRESH_MCB_REQ logic. It should not need depend on the SM STATE so that +--- MCB can come out of selfresh mode. SM requires refresh cycle to update the DQS value. +--- 4.2 05/10/12: All P/N terms of input and bidir memory pins are initialized with value of ZERO. TZQINIT_MAXCNT +--- are set to 8 for LPDDR,DDR and DDR2 interface . +--- Keep the UICMDEN in assertion state when SM is in RST_DELAY state so that MCB will not start doing +--- Premable detection until the second deassertion of MCB_SYSRST. +- ++-- 3.10 10/22/10: Fixed PERFORM_START_DYN_CAL_AFTER_SELFREFRESH logic. + + -- End Revision + --********************************************************************************** +@@ -157,17 +149,17 @@ + MCB_UIADDR : out std_logic_vector(4 downto 0) := "00000"; -- to MCB's UIADDR port (gets passed to IODRP2_MCB's AUXADDR port + MCB_UICMDEN : out std_logic := '1'; -- set to 1 to take control of UI interface - removes control from internal calib block + MCB_UIDONECAL : out std_logic := '0'; -- set to 0 to "tell" controller that it's still in a calibrate state +- MCB_UIDQLOWERDEC : out std_logic ; +- MCB_UIDQLOWERINC : out std_logic ; +- MCB_UIDQUPPERDEC : out std_logic ; +- MCB_UIDQUPPERINC : out std_logic ; ++ MCB_UIDQLOWERDEC : out std_logic := '0'; ++ MCB_UIDQLOWERINC : out std_logic := '0'; ++ MCB_UIDQUPPERDEC : out std_logic := '0'; ++ MCB_UIDQUPPERINC : out std_logic := '0'; + MCB_UILDQSDEC : out std_logic := '0'; + MCB_UILDQSINC : out std_logic := '0'; + MCB_UIREAD : out std_logic; -- enables read w/o writing by turning on a SDO->SDI loopback inside the IODRP2_MCBs (doesn't exist in + -- regular IODRP2). IODRPCTRLR_R_WB becomes don't-care. + MCB_UIUDQSDEC : out std_logic := '0'; + MCB_UIUDQSINC : out std_logic := '0'; +- MCB_RECAL : out std_logic ; -- future hook to drive MCB's RECAL pin - initiates a hard re-calibration sequence when high ++ MCB_RECAL : out std_logic := '0'; -- future hook to drive MCB's RECAL pin - initiates a hard re-calibration sequence when high + MCB_UICMD : out std_logic; + MCB_UICMDIN : out std_logic; + MCB_UIDQCOUNT : out std_logic_vector(3 downto 0); +@@ -234,50 +226,31 @@ + constant WAIT5 : std_logic_vector(5 downto 0) := "001111"; + constant BROADCAST_NTERM : std_logic_vector(5 downto 0) := "010000"; + constant WAIT6 : std_logic_vector(5 downto 0) := "010001"; +- +- constant LDQS_CLK_WRITE_P_TERM : std_logic_vector(5 downto 0) := "010010"; +- constant LDQS_CLK_P_TERM_WAIT : std_logic_vector(5 downto 0) := "010011"; +- constant LDQS_CLK_WRITE_N_TERM : std_logic_vector(5 downto 0) := "010100"; +- constant LDQS_CLK_N_TERM_WAIT : std_logic_vector(5 downto 0) := "010101"; +- constant LDQS_PIN_WRITE_P_TERM : std_logic_vector(5 downto 0) := "010110"; +- constant LDQS_PIN_P_TERM_WAIT : std_logic_vector(5 downto 0) := "010111"; +- constant LDQS_PIN_WRITE_N_TERM : std_logic_vector(5 downto 0) := "011000"; +- constant LDQS_PIN_N_TERM_WAIT : std_logic_vector(5 downto 0) := "011001"; +- constant UDQS_CLK_WRITE_P_TERM : std_logic_vector(5 downto 0) := "011010"; +- constant UDQS_CLK_P_TERM_WAIT : std_logic_vector(5 downto 0) := "011011"; +- constant UDQS_CLK_WRITE_N_TERM : std_logic_vector(5 downto 0) := "011100"; +- constant UDQS_CLK_N_TERM_WAIT : std_logic_vector(5 downto 0) := "011101"; +- constant UDQS_PIN_WRITE_P_TERM : std_logic_vector(5 downto 0) := "011110"; +- constant UDQS_PIN_P_TERM_WAIT : std_logic_vector(5 downto 0) := "011111"; +- constant UDQS_PIN_WRITE_N_TERM : std_logic_vector(5 downto 0) := "100000"; +- constant UDQS_PIN_N_TERM_WAIT : std_logic_vector(5 downto 0) := "100001"; +- +- constant OFF_RZQ_PTERM : std_logic_vector(5 downto 0) := "100010"; +- constant WAIT7 : std_logic_vector(5 downto 0) := "100011"; +- constant OFF_ZIO_NTERM : std_logic_vector(5 downto 0) := "100100"; +- constant WAIT8 : std_logic_vector(5 downto 0) := "100101"; +- constant RST_DELAY : std_logic_vector(5 downto 0) := "100110"; +- constant START_DYN_CAL_PRE : std_logic_vector(5 downto 0) := "100111"; +- constant WAIT_FOR_UODONE : std_logic_vector(5 downto 0) := "101000"; +- constant LDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "101001"; +- constant LDQS_WAIT1 : std_logic_vector(5 downto 0) := "101010"; +- constant LDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "101011"; +- constant LDQS_WAIT2 : std_logic_vector(5 downto 0) := "101100"; +- constant UDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "101101"; +- constant UDQS_WAIT1 : std_logic_vector(5 downto 0) := "101110"; +- constant UDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "101111"; +- constant UDQS_WAIT2 : std_logic_vector(5 downto 0) := "110000"; +- constant START_DYN_CAL : std_logic_vector(5 downto 0) := "110001"; +- constant WRITE_CALIBRATE : std_logic_vector(5 downto 0) := "110010"; +- constant WAIT9 : std_logic_vector(5 downto 0) := "110011"; +- constant READ_MAX_VALUE : std_logic_vector(5 downto 0) := "110100"; +- constant WAIT10 : std_logic_vector(5 downto 0) := "110101"; +- constant ANALYZE_MAX_VALUE : std_logic_vector(5 downto 0) := "110110"; +- constant FIRST_DYN_CAL : std_logic_vector(5 downto 0) := "110111"; +- constant INCREMENT : std_logic_vector(5 downto 0) := "111000"; +- constant DECREMENT : std_logic_vector(5 downto 0) := "111001"; +- constant DONE : std_logic_vector(5 downto 0) := "111010"; +- --constant INCREMENT_TA : std_logic_vector(5 downto 0) := "111011"; ++ constant OFF_RZQ_PTERM : std_logic_vector(5 downto 0) := "010010"; ++ constant WAIT7 : std_logic_vector(5 downto 0) := "010011"; ++ constant OFF_ZIO_NTERM : std_logic_vector(5 downto 0) := "010100"; ++ constant WAIT8 : std_logic_vector(5 downto 0) := "010101"; ++ constant RST_DELAY : std_logic_vector(5 downto 0) := "010110"; ++ constant START_DYN_CAL_PRE : std_logic_vector(5 downto 0) := "010111"; ++ constant WAIT_FOR_UODONE : std_logic_vector(5 downto 0) := "011000"; ++ constant LDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "011001"; ++ constant LDQS_WAIT1 : std_logic_vector(5 downto 0) := "011010"; ++ constant LDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "011011"; ++ constant LDQS_WAIT2 : std_logic_vector(5 downto 0) := "011100"; ++ constant UDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "011101"; ++ constant UDQS_WAIT1 : std_logic_vector(5 downto 0) := "011110"; ++ constant UDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "011111"; ++ constant UDQS_WAIT2 : std_logic_vector(5 downto 0) := "100000"; ++ constant START_DYN_CAL : std_logic_vector(5 downto 0) := "100001"; ++ constant WRITE_CALIBRATE : std_logic_vector(5 downto 0) := "100010"; ++ constant WAIT9 : std_logic_vector(5 downto 0) := "100011"; ++ constant READ_MAX_VALUE : std_logic_vector(5 downto 0) := "100100"; ++ constant WAIT10 : std_logic_vector(5 downto 0) := "100101"; ++ constant ANALYZE_MAX_VALUE : std_logic_vector(5 downto 0) := "100110"; ++ constant FIRST_DYN_CAL : std_logic_vector(5 downto 0) := "100111"; ++ constant INCREMENT : std_logic_vector(5 downto 0) := "101000"; ++ constant DECREMENT : std_logic_vector(5 downto 0) := "101001"; ++ constant DONE : std_logic_vector(5 downto 0) := "101010"; + + constant RZQ : std_logic_vector(1 downto 0) := "00"; + constant ZIO : std_logic_vector(1 downto 0) := "01"; +@@ -315,12 +288,10 @@ + constant DIV : integer := 4; + + constant PNSKEW : std_logic := '1'; -- Default is 1'b1. Change to 1'b0 if PSKEW and NSKEW are not required +- constant PNSKEWDQS : std_logic := '1'; +- +- constant MULT_S : integer := 9; +- constant DIV_S : integer := 8; +- constant MULT_W : integer := 7; +- constant DIV_W : integer := 8; ++ constant PSKEW_MULT : integer := 9; ++ constant PSKEW_DIV : integer := 8; ++ constant NSKEW_MULT : integer := 7; ++ constant NSKEW_DIV : integer := 8; + + constant DQS_NUMERATOR : integer := 3; + constant DQS_DENOMINATOR : integer := 8; +@@ -329,23 +300,11 @@ + -- 3 for three eighths + + constant RST_CNT : std_logic_vector(9 downto 0) := "0000010000"; ++ constant TZQINIT_MAXCNT : std_logic_vector(9 downto 0) := C_MEM_TZQINIT_MAXCNT + RST_CNT; + + constant IN_TERM_PASS : std_logic := '0'; + constant DYN_CAL_PASS : std_logic := '1'; + +- function TZQINIT_MAXCNT_W return std_logic_vector is +- variable temp : std_logic_vector(9 downto 0) := (others=>'0'); +- begin +- if (C_MEM_TYPE = "DDR3") then +- temp := C_MEM_TZQINIT_MAXCNT + RST_CNT; +- else +- temp := 8 + RST_CNT; +- end if; +- return temp(9 downto 0); +- end function; +- +- constant TZQINIT_MAXCNT : std_logic_vector(9 downto 0) := TZQINIT_MAXCNT_W; +- + component iodrp_mcb_controller is + port ( + memcell_address : in std_logic_vector(7 downto 0); +@@ -387,15 +346,11 @@ + end component; + + signal P_Term : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term : std_logic_vector(6 downto 0) := "0000000"; +- signal P_Term_s : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term_s : std_logic_vector(6 downto 0) := "0000000"; +- signal P_Term_w : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term_w : std_logic_vector(6 downto 0) := "0000000"; ++ signal N_Term : std_logic_vector(6 downto 0) := "0000000"; + signal P_Term_Prev : std_logic_vector(5 downto 0) := "000000"; + signal N_Term_Prev : std_logic_vector(6 downto 0) := "0000000"; + +- signal STATE : std_logic_vector(5 downto 0); ++ signal STATE : std_logic_vector(5 downto 0) := START; + signal IODRPCTRLR_MEMCELL_ADDR : std_logic_vector(7 downto 0); + signal IODRPCTRLR_WRITE_DATA : std_logic_vector(7 downto 0); + signal Active_IODRP : std_logic_vector(1 downto 0); +@@ -411,7 +366,7 @@ + signal count : std_logic_vector(5 downto 0) := "000000"; -- counter for adding 18 extra clock cycles after setting Calibrate bit + signal counter_en : std_logic := '0'; -- counter enable for "count" + signal First_Dyn_Cal_Done : std_logic := '0'; -- flag - high after the very first dynamic calibration is done +- signal START_BROADCAST : std_logic ; -- Trigger to start Broadcast to IODRP2_MCBs to set Input Impedance - ++ signal START_BROADCAST : std_logic := '1'; -- Trigger to start Broadcast to IODRP2_MCBs to set Input Impedance - + -- state machine will wait for this to be high + signal DQS_DELAY_INITIAL : std_logic_vector(7 downto 0) := "00000000"; + signal DQS_DELAY : std_logic_vector(7 downto 0); -- contains the latest values written to LDQS and UDQS Input Delays +@@ -474,24 +429,15 @@ + signal MCB_UISDI_xilinx11 : std_logic; + signal MCB_UICS_xilinx6 : std_logic; + signal MCB_UIBROADCAST_xilinx4 : std_logic; +- signal MCB_UIADDR_int : std_logic_vector(4 downto 0); ++ signal MCB_UIADDR_xilinx3 : std_logic_vector(4 downto 0); + signal MCB_UIDONECAL_xilinx7 : std_logic; + signal MCB_UIREAD_xilinx10 : std_logic; + signal SELFREFRESH_MODE_xilinx11 : std_logic; + signal Max_Value_int : std_logic_vector(7 downto 0); + signal Rst_condition1 : std_logic; +- --signal Rst_condition2 : std_logic; ++ signal Rst_condition2 : std_logic; + signal non_violating_rst : std_logic; + signal WAIT_200us_COUNTER : std_logic_vector(15 downto 0); +- signal WaitTimer : std_logic_vector(7 downto 0); +- signal WarmEnough : std_logic; +- signal WaitCountEnable : std_logic; +- signal State_Start_DynCal_R1 : std_logic; +- signal State_Start_DynCal : std_logic; +- +- signal pre_sysrst_minpulse_width_ok : std_logic; +- signal pre_sysrst_cnt : std_logic_vector(3 downto 0); +- + -- This function multiplies by a constant MULT and then divides by the DIV constant + function Mult_Divide (Input : std_logic_vector(7 downto 0); MULT : integer ; DIV : integer ) return std_logic_vector is + variable Result : integer := 0; +@@ -505,19 +451,9 @@ + return temp(7 downto 0); + end function Mult_Divide; + +- +- + attribute syn_preserve : boolean; + attribute syn_preserve of P_Term : signal is TRUE; + attribute syn_preserve of N_Term : signal is TRUE; +- attribute syn_preserve of P_Term_s : signal is TRUE; +- attribute syn_preserve of N_Term_s : signal is TRUE; +- attribute syn_preserve of P_Term_w : signal is TRUE; +- attribute syn_preserve of N_Term_w : signal is TRUE; +- +- +- +- + attribute syn_preserve of P_Term_Prev : signal is TRUE; + attribute syn_preserve of N_Term_Prev : signal is TRUE; + attribute syn_preserve of IODRPCTRLR_MEMCELL_ADDR : signal is TRUE; +@@ -530,18 +466,6 @@ + + begin + +- +--- move the default assignment here to make FORMALITY happy. +- +- START_BROADCAST <= '1'; +- MCB_RECAL <= '0'; +- MCB_UIDQLOWERDEC <= '0'; +- MCB_UIADDR <= MCB_UIADDR_int; +- MCB_UIDQLOWERINC <= '0'; +- MCB_UIDQUPPERDEC <= '0'; +- MCB_UIDQUPPERINC <= '0'; +- +- + Max_Value <= Max_Value_int; + -- Drive referenced outputs + IODRP_ADD <= IODRP_ADD_xilinx0; +@@ -550,6 +474,7 @@ + MCB_UISDI <= MCB_UISDI_xilinx11; + MCB_UICS <= MCB_UICS_xilinx6; + MCB_UIBROADCAST <= MCB_UIBROADCAST_xilinx4; ++ MCB_UIADDR <= MCB_UIADDR_xilinx3; + MCB_UIDONECAL <= MCB_UIDONECAL_xilinx7; + MCB_UIREAD <= MCB_UIREAD_xilinx10; + SELFREFRESH_MODE <= SELFREFRESH_MODE_xilinx11; +@@ -607,7 +532,7 @@ + cmd_valid => MCB_CMD_VALID, + rdy_busy_n => MCB_RDY_BUSY_N, + use_broadcast => MCB_USE_BKST, +- drp_ioi_addr => MCB_UIADDR_int, ++ drp_ioi_addr => MCB_UIADDR_xilinx3, + sync_rst => RST_reg, + DRP_CLK => UI_CLK, + DRP_CS => MCB_UICS_xilinx6, +@@ -618,13 +543,10 @@ + MCB_UIREAD => MCB_UIREAD_xilinx10 + ); + ++ init_sequence: if (C_SIMULATION = "FALSE") generate + process (UI_CLK, RST) begin + if (RST = '1') then +- if (C_SIMULATION = "TRUE") then +- WAIT_200us_COUNTER <= X"7FF0"; +- else + WAIT_200us_COUNTER <= (others => '0'); +- end if; + elsif (UI_CLK'event and UI_CLK = '1') then + if (WAIT_200us_COUNTER(15) = '1') then + WAIT_200us_COUNTER <= WAIT_200us_COUNTER; +@@ -633,15 +555,16 @@ + end if; + end if; + end process; ++ end generate; + +- -- init_sequence_skip: if (C_SIMULATION = "TRUE") generate +- -- WAIT_200us_COUNTER <= X"FFFF"; +- -- process +- -- begin +- -- report "The 200 us wait period required before CKE goes active has been skipped in Simulation"; +- -- wait; +- -- end process; +- -- end generate; ++ init_sequence_skip: if (C_SIMULATION = "TRUE") generate ++ WAIT_200us_COUNTER <= X"FFFF"; ++ process ++ begin ++ report "The 200 us wait period required before CKE goes active has been skipped in Simulation"; ++ wait; ++ end process; ++ end generate; + + + gen_CKE_Train_a: if (C_MEM_TYPE = "DDR2") generate +@@ -653,8 +576,6 @@ + CKE_Train <= '0'; + elsif (WAIT_200us_COUNTER(15) = '1' and MCB_UODONECAL = '0') then + CKE_Train <= '1'; +- else +- CKE_Train <= '0'; + end if; + end if; + end process; +@@ -671,20 +592,19 @@ + --******************************************** + -- PLL_LOCK and RST signals + --******************************************** +- --MCB_SYSRST <= Pre_SYSRST or RST_reg; -- Pre_SYSRST is generated from the STATE state machine, and is OR'd with RST_reg input to drive MCB's ++ MCB_SYSRST <= Pre_SYSRST or RST_reg; -- Pre_SYSRST is generated from the STATE state machine, and is OR'd with RST_reg input to drive MCB's + -- SYSRST pin (MCB_SYSRST) +- + rst_tmp <= not(SELFREFRESH_MODE_xilinx11) and not(PLL_LOCK_R2); -- rst_tmp becomes 1 if you lose Lock and the device is not in SUSPEND + + process (UI_CLK, RST) begin + if (RST = '1') then +- --Block_Reset <= '0'; +- --RstCounter <= (others => '0'); +- --elsif (UI_CLK'event and UI_CLK = '1') then +- -- if (rst_tmp = '1') then -- this is to deal with not allowing the user-reset "RST" to violate TZQINIT_MAXCNT (min time between resets to DDR3) ++ Block_Reset <= '0'; ++ RstCounter <= (others => '0'); ++ elsif (UI_CLK'event and UI_CLK = '1') then ++ if (rst_tmp = '1') then -- this is to deal with not allowing the user-reset "RST" to violate TZQINIT_MAXCNT (min time between resets to DDR3) + Block_Reset <= '0'; + RstCounter <= (others => '0'); +- elsif (UI_CLK'event and UI_CLK = '1') then ++ else + Block_Reset <= '0'; -- default to allow STATE to move out of RST_DELAY state + if (Pre_SYSRST = '1') then + RstCounter <= RST_CNT; -- whenever STATE wants to reset the MCB, set RstCounter to h10 +@@ -695,14 +615,11 @@ + end if; + end if; + end if; +- --end if; ++ end if; + end process; +- +- -- Rst_contidtion1 is to make sure RESET will not happen again within TZQINIT_MAXCNT +- non_violating_rst <= RST and Rst_condition1; +- MCB_SYSRST <= Pre_SYSRST; + +- process (UI_CLK) begin ++ non_violating_rst <= RST and Rst_condition1; ++ process (UI_CLK) begin + if (UI_CLK'event and UI_CLK = '1') then + if (RstCounter >= TZQINIT_MAXCNT) then + Rst_condition1 <= '1'; +@@ -712,31 +629,18 @@ + end if; + end process; + +--- -- non_violating_rst asserts whenever (system-level reset) RST is asserted but must be after TZQINIT_MAXCNT is reached (min-time between resets for DDR3) +--- -- After power stablizes, we will hold MCB in reset state for at least 200us before beginning initialization process. +--- -- If the PLL loses lock during normal operation, no ui_clk will be present because mcb_drp_clk is from a BUFGCE which +--- is gated by pll's lock signal. When the PLL locks again, the RST_reg stays asserted for at least 200 us which +--- will cause MCB to reset and reinitialize the memory afterwards. +--- -- During SUSPEND operation, the PLL will lose lock but non_violating_rst remains low (de-asserted) and WAIT_200us_COUNTER stays at +--- its terminal count. The PLL_LOCK input does not come direct from PLL, rather it is driven by gated_pll_lock from mcb_raw_wrapper module +--- The gated_pll_lock in the mcb_raw_wrapper does not de-assert during SUSPEND operation, hence PLL_LOCK will not de-assert, and the soft calibration +--- state machine will not reset during SUSPEND. +--- -- RST_reg is the control signal that resets the mcb_soft_calibration's State Machine. The MCB_SYSRST is now equal to +--- Pre_SYSRST. When State Machine is performing "INPUT Termination Calibration", it holds the MCB in reset by assertign MCB_SYSRST. +--- It will deassert the MCB_SYSRST so that it can grab the bus to broadcast the P and N term value to all of the DQ pins. Once the calibrated INPUT +--- termination is set, the State Machine will issue another short MCB_SYSRST so that MCB will use the tuned input termination during DQS preamble calibration. + + +- --process (UI_CLK) begin +- -- if (UI_CLK'event and UI_CLK = '1') then +- -- +- -- if (RstCounter < RST_CNT) then +- -- Rst_condition2 <= '1'; +- -- else +- -- Rst_condition2 <= '0'; +- -- end if; +- -- end if; +- --end process; ++ process (UI_CLK) begin ++ if (UI_CLK'event and UI_CLK = '1') then ++ ++ if (RstCounter < RST_CNT) then ++ Rst_condition2 <= '1'; ++ else ++ Rst_condition2 <= '0'; ++ end if; ++ end if; ++ end process; + + process (UI_CLK, non_violating_rst) begin + if (non_violating_rst = '1') then +@@ -745,47 +649,18 @@ + if (WAIT_200us_COUNTER(15) = '0') then + RST_reg <= '1'; + else +- --RST_reg <= Rst_condition2 or rst_tmp; -- insures RST_reg is at least h10 pulses long +- RST_reg <= rst_tmp; -- insures RST_reg is at least h10 pulses long ++ RST_reg <= Rst_condition2 or rst_tmp; -- insures RST_reg is at least h10 pulses long + end if; + end if; + end process; + +---************************************************************* +--- Stretching the pre_sysrst to satisfy the minimum pulse width +---************************************************************* +- +-process (UI_CLK) begin +-if (UI_CLK'event and UI_CLK = '1') then +- if (STATE = START_DYN_CAL_PRE) then +- pre_sysrst_cnt <= pre_sysrst_cnt + '1'; +- else +- pre_sysrst_cnt <= (others=>'0'); +- end if; +-end if; +-end process; +- +-pre_sysrst_minpulse_width_ok <= pre_sysrst_cnt(3); +- ++ + --******************************************** + -- SUSPEND Logic + --******************************************** +- process (UI_CLK,RST) ++ process (UI_CLK) + begin +- if (RST = '1') then +- +- SELFREFRESH_MCB_MODE_R1 <= '0'; +- SELFREFRESH_MCB_MODE_R2 <= '0'; +- SELFREFRESH_MCB_MODE_R3 <= '0'; +- +- SELFREFRESH_REQ_R1 <= '0'; +- SELFREFRESH_REQ_R2 <= '0'; +- SELFREFRESH_REQ_R3 <= '0'; +- +- PLL_LOCK_R1 <= '0'; +- PLL_LOCK_R2 <= '0'; +- +- elsif (UI_CLK'event and UI_CLK = '1') then ++ if (UI_CLK'event and UI_CLK = '1') then + -- SELFREFRESH_MCB_MODE is clocked by sysclk_2x_180 + SELFREFRESH_MCB_MODE_R1 <= SELFREFRESH_MCB_MODE; + SELFREFRESH_MCB_MODE_R2 <= SELFREFRESH_MCB_MODE_R1; +@@ -810,10 +685,9 @@ + if (UI_CLK'event and UI_CLK = '1') then + if (RST = '1') then + SELFREFRESH_MCB_REQ <= '0'; +- --elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R3 = '0') and (STATE = START_DYN_CAL)) then +- elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R3 = '0')) then ++ elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R1 = '0') and (STATE = START_DYN_CAL)) then + SELFREFRESH_MCB_REQ <= '0'; +- elsif ((STATE = START_DYN_CAL) and (SELFREFRESH_REQ_R3 = '1')) then ++ elsif ((STATE = START_DYN_CAL) and (SELFREFRESH_REQ_R1 = '1')) then + SELFREFRESH_MCB_REQ <= '1'; + end if; + end if; +@@ -859,10 +733,6 @@ + + -- SELFREFRESH_MCB_MODE deasserted status is hold off + -- until Soft_Calib has at least done one loop of DQS update. +--- New logic WarmeEnough is added to make sure PLL_Lock is lockec and all IOs stable before +--- deassert the status of MCB's SELFREFRESH_MODE. This is to ensure all IOs are stable before +--- user logic sending new commands to MCB. +- + process (UI_CLK) + begin + if (UI_CLK'event and UI_CLK = '1') then +@@ -870,76 +740,12 @@ + SELFREFRESH_MODE_xilinx11 <= '0'; + elsif (SELFREFRESH_MCB_MODE_R2 = '1') then + SELFREFRESH_MODE_xilinx11 <= '1'; +- elsif (WarmEnough = '1') then +- SELFREFRESH_MODE_xilinx11 <= '0'; +- end if; +- end if; +- end process; +- +- +- +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- WaitCountEnable <= '0'; +- elsif (SELFREFRESH_REQ_R2 = '0' and SELFREFRESH_REQ_R1 = '1') then +- WaitCountEnable <= '0'; + elsif ((PERFORM_START_DYN_CAL_AFTER_SELFREFRESH = '0') and (PERFORM_START_DYN_CAL_AFTER_SELFREFRESH_R1 = '1')) then +- WaitCountEnable <= '1'; +- else +- WaitCountEnable <= WaitCountEnable; ++ SELFREFRESH_MODE_xilinx11 <= '0'; + end if; + end if; + end process; + +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- State_Start_DynCal <= '0'; +- elsif (STATE = START_DYN_CAL) then +- State_Start_DynCal <= '1'; +- else +- State_Start_DynCal <= '0'; +- end if; +- end if; +- end process; +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- State_Start_DynCal_R1 <= '0'; +- else +- State_Start_DynCal_R1 <= State_Start_DynCal; +- end if; +- end if; +- end process; +- +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- WaitTimer <= (others => '0'); +- WarmEnough <= '1'; +- elsif ((SELFREFRESH_REQ_R2 = '0') and (SELFREFRESH_REQ_R1 = '1')) then +- WaitTimer <= (others => '0'); +- WarmEnough <= '0'; +- elsif (WaitTimer = X"04") then +- WaitTimer <= WaitTimer ; +- WarmEnough <= '1'; +- elsif (WaitCountEnable = '1') then +- WaitTimer <= WaitTimer + '1'; +- else +- WaitTimer <= WaitTimer ; +- end if; +- end if; +- end process; +- + --******************************************** + --Comparitor for Dynamic Calibration circuit + --******************************************** +@@ -1014,7 +820,7 @@ + if (UI_CLK'event and UI_CLK = '1') then + if (RST_reg = '1') then -- Synchronous reset + MCB_CMD_VALID <= '0'; +- MCB_UIADDR_int <= "00000"; -- take control of UI/UO port ++ MCB_UIADDR_xilinx3 <= "00000"; -- take control of UI/UO port + MCB_UICMDEN <= '1'; -- tells MCB that it is in Soft Cal. + MCB_UIDONECAL_xilinx7 <= '0'; + MCB_USE_BKST <= '0'; +@@ -1027,11 +833,6 @@ + IODRPCTRLR_USE_BKST <= '0'; + P_Term <= "000000"; + N_Term <= "0000000"; +- P_Term_s <= "000000"; +- N_Term_w <= "0000000"; +- P_Term_w <= "000000"; +- N_Term_s <= "0000000"; +- + P_Term_Prev <= "000000"; + N_Term_Prev <= "0000000"; + Active_IODRP <= RZQ; +@@ -1079,10 +880,7 @@ + Pre_SYSRST <= '1'; -- keeps MCB in reset + LastPass_DynCal <= IN_TERM_PASS; + if (SKIP_IN_TERM_CAL = 1) then +- --STATE <= WRITE_CALIBRATE; +- STATE <= WAIT_FOR_START_BROADCAST; +- P_Term <= "000000"; +- N_Term <= "0000000"; ++ STATE <= WRITE_CALIBRATE; + elsif (IODRPCTRLR_RDY_BUSY_N = '1') then + STATE <= LOAD_RZQ_NTERM; + else +@@ -1135,8 +933,7 @@ + STATE <= LOAD_RZQ_PTERM; + + when MULTIPLY_DIVIDE => -- h06 +- -- 13/4/2011 compensate the added sync FF +- P_Term <= Mult_Divide(("00" & (P_Term - '1')),MULT,DIV)(5 downto 0); ++ P_Term <= Mult_Divide(("00" & P_Term),MULT,DIV)(5 downto 0); + STATE <= LOAD_ZIO_PTERM; + + when LOAD_ZIO_PTERM => --h07 +@@ -1188,13 +985,8 @@ + STATE <= LOAD_ZIO_NTERM; + + when SKEW => -- h0C +- +- P_Term_s <= Mult_Divide(("00" & P_Term), MULT_S, DIV_S)(5 downto 0); +- N_Term_w <= Mult_Divide(('0' & (N_Term-'1')), MULT_W, DIV_W)(6 downto 0); +- P_Term_w <= Mult_Divide(("00" & P_Term), MULT_W, DIV_W)(5 downto 0); +- N_Term_s <= Mult_Divide(('0' & (N_Term-'1')), MULT_S, DIV_S)(6 downto 0); +- P_Term <= Mult_Divide(("00" & P_Term), MULT_S, DIV_S)(5 downto 0); +- N_Term <= Mult_Divide(('0' & (N_Term-'1')), MULT_W, DIV_W)(6 downto 0); ++ P_Term <= Mult_Divide(("00" & P_Term), PSKEW_MULT, PSKEW_DIV)(5 downto 0); ++ N_Term <= Mult_Divide(('0' & N_Term), NSKEW_MULT, NSKEW_DIV)(6 downto 0); + STATE <= WAIT_FOR_START_BROADCAST; + + when WAIT_FOR_START_BROADCAST => --h0D +@@ -1202,7 +994,7 @@ + -- keeping the MCB in calibration mode + Active_IODRP <= MCB_PORT; + if ((START_BROADCAST and IODRPCTRLR_RDY_BUSY_N) = '1') then +- if ((P_Term /= P_Term_Prev) or (SKIP_IN_TERM_CAL = 1)) then ++ if (P_Term /= P_Term_Prev) then + STATE <= BROADCAST_PTERM; + P_Term_Prev <= P_Term; + elsif (N_Term /= N_Term_Prev) then +@@ -1272,184 +1064,10 @@ + STATE <= WAIT6; -- wait for a Refresh cycle + end if; + else +- -- if (PNSKEWDQS = '1') then +- STATE <= LDQS_CLK_WRITE_P_TERM; +- -- else +- -- STATE <= OFF_RZQ_PTERM; +- -- end if; +- end if; +- +--- ********************* +- when LDQS_CLK_WRITE_P_TERM => -- h12 +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_w; +- MCB_UIADDR_int <= IOI_LDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_CLK_WRITE_P_TERM; +- else +- STATE <= LDQS_CLK_P_TERM_WAIT; +- end if; +- +- +- when LDQS_CLK_P_TERM_WAIT => --7'h13 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_CLK_P_TERM_WAIT; +- else +- STATE <= LDQS_CLK_WRITE_N_TERM; +- end if; +- +- when LDQS_CLK_WRITE_N_TERM => --7'h14 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_s; +- MCB_UIADDR_int <= IOI_LDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_CLK_WRITE_N_TERM; +- else +- STATE <= LDQS_CLK_N_TERM_WAIT; +- end if; +- +- --** +- when LDQS_CLK_N_TERM_WAIT => --7'h15 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_CLK_N_TERM_WAIT; +- else +- STATE <= LDQS_PIN_WRITE_P_TERM; +- end if; +- +- +- when LDQS_PIN_WRITE_P_TERM => --7'h16 +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_s; +- MCB_UIADDR_int <= IOI_LDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_PIN_WRITE_P_TERM; +- else +- STATE <= LDQS_PIN_P_TERM_WAIT; +- end if; +- +- +- when LDQS_PIN_P_TERM_WAIT => --7'h17 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_PIN_P_TERM_WAIT; +- else +- STATE <= LDQS_PIN_WRITE_N_TERM; +- end if; +- +- +- when LDQS_PIN_WRITE_N_TERM => --7'h18 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_w; +- MCB_UIADDR_int <= IOI_LDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_PIN_WRITE_N_TERM; +- else +- STATE <= LDQS_PIN_N_TERM_WAIT; +- end if; +- +- +- when LDQS_PIN_N_TERM_WAIT => --7'h19 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_PIN_N_TERM_WAIT; +- else +- STATE <= UDQS_CLK_WRITE_P_TERM; +- end if; +- +- +- +- when UDQS_CLK_WRITE_P_TERM => --7'h1A +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_w; +- MCB_UIADDR_int <= IOI_UDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_CLK_WRITE_P_TERM; +- else +- STATE <= UDQS_CLK_P_TERM_WAIT; +- end if; +- +- +- when UDQS_CLK_P_TERM_WAIT => --7'h1B +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_CLK_P_TERM_WAIT; +- else +- STATE <= UDQS_CLK_WRITE_N_TERM; +- end if; +- +- +- when UDQS_CLK_WRITE_N_TERM => --7'h1C +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_s; +- MCB_UIADDR_int <= IOI_UDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_CLK_WRITE_N_TERM; +- else +- STATE <= UDQS_CLK_N_TERM_WAIT; +- end if; +- +- when UDQS_CLK_N_TERM_WAIT => --7'h1D +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_CLK_N_TERM_WAIT; +- else +- STATE <= UDQS_PIN_WRITE_P_TERM; +- end if; +- +- +- +- when UDQS_PIN_WRITE_P_TERM => --7'h1E +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_s; +- MCB_UIADDR_int <= IOI_UDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_PIN_WRITE_P_TERM; +- else +- STATE <= UDQS_PIN_P_TERM_WAIT; +- end if; +- +- +- when UDQS_PIN_P_TERM_WAIT => --7'h1F +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_PIN_P_TERM_WAIT; +- else +- STATE <= UDQS_PIN_WRITE_N_TERM; +- end if; +- +- when UDQS_PIN_WRITE_N_TERM => --7'h20 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_w; +- MCB_UIADDR_int <= IOI_UDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_PIN_WRITE_N_TERM; +- else +- STATE <= UDQS_PIN_N_TERM_WAIT; +- end if; +- +- +- when UDQS_PIN_N_TERM_WAIT => --7'h21 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_PIN_N_TERM_WAIT; +- else +- STATE <= OFF_RZQ_PTERM; ++ STATE <= OFF_RZQ_PTERM; + end if; +- +--- ********************* + +- +- when OFF_RZQ_PTERM => -- h22 ++ when OFF_RZQ_PTERM => -- h12 + Active_IODRP <= RZQ; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= PTerm; +@@ -1464,14 +1082,14 @@ + STATE <= WAIT7; + end if; + +- when WAIT7 => -- h23 ++ when WAIT7 => -- h13 + if ((not(IODRPCTRLR_RDY_BUSY_N)) = '1') then + STATE <= WAIT7; + else + STATE <= OFF_ZIO_NTERM; + end if; + +- when OFF_ZIO_NTERM => -- h24 ++ when OFF_ZIO_NTERM => -- h14 + Active_IODRP <= ZIO; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= NTerm; +@@ -1483,7 +1101,7 @@ + STATE <= WAIT8; + end if; + +- when WAIT8 => -- h25 ++ when WAIT8 => -- h15 + if (IODRPCTRLR_RDY_BUSY_N = '0') then + STATE <= WAIT8; + else +@@ -1494,8 +1112,8 @@ + end if; + end if; + +- when RST_DELAY => -- h26 +- --MCB_UICMDEN <= '0'; -- release control of UI/UO port ++ when RST_DELAY => -- h16 ++ MCB_UICMDEN <= '0'; -- release control of UI/UO port + if (Block_Reset = '1') then -- this ensures that more than 512 clock cycles occur since the last reset after MCB_WRITE_CALIBRATE ??? + STATE <= RST_DELAY; + else +@@ -1505,18 +1123,18 @@ + --*************************** + --DYNAMIC CALIBRATION PORTION + --*************************** +- when START_DYN_CAL_PRE => -- h27 ++ when START_DYN_CAL_PRE => -- h17 + LastPass_DynCal <= IN_TERM_PASS; + MCB_UICMDEN <= '0'; -- release UICMDEN + MCB_UIDONECAL_xilinx7 <= '1'; -- release UIDONECAL - MCB will now initialize. + Pre_SYSRST <= '1'; -- SYSRST pulse + if (CALMODE_EQ_CALIBRATION = '0') then -- if C_MC_CALIBRATION_MODE is set to NOCALIBRATION + STATE <= START_DYN_CAL; -- we'll skip setting the DQS delays manually +- elsif (pre_sysrst_minpulse_width_ok = '1') then ++ else + STATE <= WAIT_FOR_UODONE; + end if; + +- when WAIT_FOR_UODONE => -- h28 ++ when WAIT_FOR_UODONE => -- h18 + Pre_SYSRST <= '0'; -- SYSRST pulse + if ((IODRPCTRLR_RDY_BUSY_N and MCB_UODONECAL) = '1')then --IODRP Controller needs to be ready, & MCB needs to be done with hard calibration + MCB_UICMDEN <= '1'; -- grab UICMDEN +@@ -1526,11 +1144,11 @@ + STATE <= WAIT_FOR_UODONE; + end if; + +- when LDQS_WRITE_POS_INDELAY => -- h29 ++ when LDQS_WRITE_POS_INDELAY => -- h19 + IODRPCTRLR_MEMCELL_ADDR <= PosEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_LDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_LDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1') then + STATE <= LDQS_WRITE_POS_INDELAY; +@@ -1538,18 +1156,18 @@ + STATE <= LDQS_WAIT1; + end if; + +- when LDQS_WAIT1 => -- h2A ++ when LDQS_WAIT1 => -- h1A + if (MCB_RDY_BUSY_N = '0')then + STATE <= LDQS_WAIT1; + else + STATE <= LDQS_WRITE_NEG_INDELAY; + end if; + +- when LDQS_WRITE_NEG_INDELAY => -- h2B ++ when LDQS_WRITE_NEG_INDELAY => -- h1B + IODRPCTRLR_MEMCELL_ADDR <= NegEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_LDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_LDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= LDQS_WRITE_NEG_INDELAY; +@@ -1557,18 +1175,18 @@ + STATE <= LDQS_WAIT2; + end if; + +- when LDQS_WAIT2 => -- 7'h2C ++ when LDQS_WAIT2 => -- 7'h1C + if(MCB_RDY_BUSY_N = '0')then + STATE <= LDQS_WAIT2; + else + STATE <= UDQS_WRITE_POS_INDELAY; + end if; + +- when UDQS_WRITE_POS_INDELAY => -- 7'h2D ++ when UDQS_WRITE_POS_INDELAY => -- 7'h1D + IODRPCTRLR_MEMCELL_ADDR <= PosEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_UDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_UDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= UDQS_WRITE_POS_INDELAY; +@@ -1576,18 +1194,18 @@ + STATE <= UDQS_WAIT1; + end if; + +- when UDQS_WAIT1 => -- 7'h2E ++ when UDQS_WAIT1 => -- 7'h1E + if (MCB_RDY_BUSY_N = '0')then + STATE <= UDQS_WAIT1; + else + STATE <= UDQS_WRITE_NEG_INDELAY; + end if; + +- when UDQS_WRITE_NEG_INDELAY => -- 7'h2F ++ when UDQS_WRITE_NEG_INDELAY => -- 7'h1F + IODRPCTRLR_MEMCELL_ADDR <= NegEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_UDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_UDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= UDQS_WRITE_NEG_INDELAY; +@@ -1595,7 +1213,7 @@ + STATE <= UDQS_WAIT2; + end if; + +- when UDQS_WAIT2 => -- 7'h30 ++ when UDQS_WAIT2 => -- 7'h20 + if (MCB_RDY_BUSY_N = '0')then + STATE <= UDQS_WAIT2; + else +@@ -1604,7 +1222,7 @@ + STATE <= START_DYN_CAL; + end if; + +- when START_DYN_CAL => -- h31 ++ when START_DYN_CAL => -- h21 + Pre_SYSRST <= '0'; -- SYSRST not driven + counter_inc <= (others => '0'); + counter_dec <= (others => '0'); +@@ -1624,7 +1242,7 @@ + STATE <= START_DYN_CAL; + end if; + +- when WRITE_CALIBRATE => -- h32 ++ when WRITE_CALIBRATE => -- h22 + Pre_SYSRST <= '0'; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= DelayControl; +@@ -1637,7 +1255,7 @@ + STATE <= WAIT9; + end if; + +- when WAIT9 => -- h33 ++ when WAIT9 => -- h23 + counter_en <= '1'; + if (count < "100110") then -- this adds approximately 22 extra clock cycles after WRITE_CALIBRATE + STATE <= WAIT9; +@@ -1645,7 +1263,7 @@ + STATE <= READ_MAX_VALUE; + end if; + +- when READ_MAX_VALUE => -- h34 ++ when READ_MAX_VALUE => -- h24 + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= MaxValue; + IODRPCTRLR_R_WB <= READ_MODE; +@@ -1656,7 +1274,7 @@ + STATE <= WAIT10; + end if; + +- when WAIT10 => -- h35 ++ when WAIT10 => -- h25 + if (IODRPCTRLR_RDY_BUSY_N = '0') then + STATE <= WAIT10; + else +@@ -1669,7 +1287,7 @@ + end if; + end if; + +- when ANALYZE_MAX_VALUE => -- h36 only do a Inc or Dec during a REFRESH cycle. ++ when ANALYZE_MAX_VALUE => -- h26 only do a Inc or Dec during a REFRESH cycle. + if (First_Dyn_Cal_Done = '0')then + STATE <= FIRST_DYN_CAL; + elsif ((Max_Value_int < Max_Value_Previous) and (Max_Value_Delta_Dn >= INCDEC_THRESHOLD)) then +@@ -1684,11 +1302,11 @@ + STATE <= START_DYN_CAL; + end if; + +- when FIRST_DYN_CAL => -- h37 ++ when FIRST_DYN_CAL => -- h27 + First_Dyn_Cal_Done <= '1'; -- set flag that the First Dynamic Calibration has been completed + STATE <= START_DYN_CAL; + +- when INCREMENT => -- h38 ++ when INCREMENT => -- h28 + STATE <= START_DYN_CAL; -- Default case: Inc is not high or no longer in REFRSH + MCB_UILDQSINC <= '0'; -- Default case: no inc or dec + MCB_UIUDQSINC <= '0'; -- Default case: no inc or dec +@@ -1712,7 +1330,7 @@ + STATE <= START_DYN_CAL; + end case; + +- when DECREMENT => -- h39 ++ when DECREMENT => -- h29 + STATE <= START_DYN_CAL; -- Default case: Dec is not high or no longer in REFRSH + MCB_UILDQSINC <= '0'; -- Default case: no inc or dec + MCB_UIUDQSINC <= '0'; -- Default case: no inc or dec +@@ -1738,7 +1356,7 @@ + end case; + end if; + +- when DONE => -- h3A ++ when DONE => -- h2A + Pre_SYSRST <= '0'; -- SYSRST cleared + MCB_UICMDEN <= '0'; -- release UICMDEN + STATE <= DONE; diff --git a/designs/leon3-xilinx-sp601/mig39/coregen.cgc b/designs/leon3-xilinx-sp601/mig39/coregen.cgc new file mode 100644 index 00000000..553ad2bc --- /dev/null +++ b/designs/leon3-xilinx-sp601/mig39/coregen.cgc @@ -0,0 +1,873 @@ + + + xilinx.com + CoreGen + mig_sp601 + 1.0 + + + mig_39 + MIG Virtex-6 and Spartan-6 + + + mig_39 + ./mig_39/user_design/mig.prj + + + + + mig_sp601 + ./ + ./tmp/ + ./tmp/_cg/ + + + xc6slx16 + spartan6 + csg324 + -2 + + + BusFormatParenNotRipped + VHDL + true + Synplicity + false + false + false + Ngc + false + + + Behavioral + VHDL + false + + + 2012-10-13+03:35 + + + + + model_parameter_resolution_generator + + + ip_xco_generator + + ./mig_39.xco + xco + Thu Dec 20 08:21:57 GMT 2012 + 0x06DDCB9F + generationID_1879581046 + + + + implementation_source_generator + + ./mig_39/docs/ug388.pdf + ignore + pdf + Thu Dec 20 08:21:57 GMT 2012 + 0x90FCF0D1 + generationID_1879581046 + + + ./mig_39/docs/ug416.pdf + ignore + pdf + Thu Dec 20 08:21:57 GMT 2012 + 0x5A2D5D89 + generationID_1879581046 + + + ./mig_39/example_design/datasheet.txt + ignore + txt + Thu Dec 20 08:21:58 GMT 2012 + 0x3FA1A315 + generationID_1879581046 + + + ./mig_39/example_design/mig.prj + ignore + unknown + Thu Dec 20 08:21:58 GMT 2012 + 0xDB2A4563 + generationID_1879581046 + + + ./mig_39/example_design/par/example_top.ucf + ignore + ucf + Thu Dec 20 08:21:58 GMT 2012 + 0x3EE8669F + generationID_1879581046 + + + ./mig_39/example_design/par/icon_coregen.xco + ignore + xco + Thu Dec 20 08:21:58 GMT 2012 + 0xCBD7A036 + generationID_1879581046 + + + ./mig_39/example_design/par/ila_coregen.xco + ignore + xco + Thu Dec 20 08:21:58 GMT 2012 + 0xE42762DD + generationID_1879581046 + + + ./mig_39/example_design/par/ise_flow.sh + ignore + unknown + Thu Dec 20 08:21:58 GMT 2012 + 0x033CA452 + generationID_1879581046 + + + ./mig_39/example_design/par/ise_run.txt + ignore + txt + Thu Dec 20 08:21:58 GMT 2012 + 0x0D06A19A + generationID_1879581046 + + + ./mig_39/example_design/par/makeproj.sh + ignore + unknown + Thu Dec 20 08:21:58 GMT 2012 + 0xCFE64DF9 + generationID_1879581046 + + + ./mig_39/example_design/par/mem_interface_top.ut + ignore + unknown + Thu Dec 20 08:21:58 GMT 2012 + 0xCDD0105F + generationID_1879581046 + + + ./mig_39/example_design/par/readme.txt + ignore + txt + Thu Dec 20 08:21:58 GMT 2012 + 0xE0953675 + generationID_1879581046 + + + ./mig_39/example_design/par/rem_files.sh + ignore + unknown + Thu Dec 20 08:21:58 GMT 2012 + 0xBC4318C8 + generationID_1879581046 + + + ./mig_39/example_design/par/vio_coregen.xco + ignore + xco + Thu Dec 20 08:21:58 GMT 2012 + 0x310B51ED + generationID_1879581046 + + + ./mig_39/example_design/rtl/example_top.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x772565CF + generationID_1879581046 + + + ./mig_39/example_design/rtl/iodrp_controller.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x5A2197DD + generationID_1879581046 + + + ./mig_39/example_design/rtl/iodrp_mcb_controller.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x69237401 + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_raw_wrapper.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xA3623325 + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_soft_calibration.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x9B8E0B5E + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_soft_calibration_top.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xC37A23BB + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_infrastructure.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x702DFF2F + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_tb_top.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xFB368D57 + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_wrapper.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xF3CED667 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/afifo.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x26568D9A + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/cmd_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xC6EF0126 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/cmd_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x893B0F01 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/data_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x6E88FB8E + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/init_mem_pattern_ctr.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x26DEA717 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/mcb_flow_control.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xB9D71414 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/mcb_traffic_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x125A1D59 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/rd_data_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x50A90B14 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/read_data_path.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xDFA5DAF7 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/read_posted_fifo.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xBC61DAC4 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/sp6_data_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xA9170C59 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/tg_status.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x7B717096 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/v6_data_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x24F3E550 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/wr_data_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x91BCA941 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/write_data_path.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x391A16CE + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/readme.txt + ignore + txt + Thu Dec 20 08:21:58 GMT 2012 + 0xFA4BA7C6 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/sim.do + ignore + unknown + Thu Dec 20 08:21:58 GMT 2012 + 0x28E74B6D + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/sim_tb_top.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xC8C4E77C + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/timing_sim.sh + ignore + unknown + Thu Dec 20 08:21:58 GMT 2012 + 0xD1170B9A + generationID_1879581046 + + + ./mig_39/example_design/synth/example_top.lso + ignore + unknown + Thu Dec 20 08:21:58 GMT 2012 + 0xEEDE3797 + generationID_1879581046 + + + ./mig_39/example_design/synth/example_top.prj + ignore + unknown + Thu Dec 20 08:21:58 GMT 2012 + 0x45A82CBA + generationID_1879581046 + + + ./mig_39/example_design/synth/mem_interface_top_synp.sdc + ignore + unknown + Thu Dec 20 08:21:58 GMT 2012 + 0x8CC320DE + generationID_1879581046 + + + ./mig_39/example_design/synth/script_synp.tcl + ignore + tcl + Thu Dec 20 08:21:58 GMT 2012 + 0x3AD22759 + generationID_1879581046 + + + ./mig_39/user_design/datasheet.txt + ignore + txt + Thu Dec 20 08:21:59 GMT 2012 + 0x9DF625F7 + generationID_1879581046 + + + ./mig_39/user_design/mig.prj + ignore + unknown + Thu Dec 20 08:21:59 GMT 2012 + 0xDB2A4563 + generationID_1879581046 + + + ./mig_39/user_design/par/icon_coregen.xco + ignore + xco + Thu Dec 20 08:21:58 GMT 2012 + 0xCBD7A036 + generationID_1879581046 + + + ./mig_39/user_design/par/ila_coregen.xco + ignore + xco + Thu Dec 20 08:21:58 GMT 2012 + 0xE42762DD + generationID_1879581046 + + + ./mig_39/user_design/par/ise_flow.sh + ignore + unknown + Thu Dec 20 08:21:59 GMT 2012 + 0x517B9DBE + generationID_1879581046 + + + ./mig_39/user_design/par/ise_run.txt + ignore + txt + Thu Dec 20 08:21:58 GMT 2012 + 0xC829CAF6 + generationID_1879581046 + + + ./mig_39/user_design/par/makeproj.sh + ignore + unknown + Thu Dec 20 08:21:58 GMT 2012 + 0xCFE64DF9 + generationID_1879581046 + + + ./mig_39/user_design/par/mem_interface_top.ut + ignore + unknown + Thu Dec 20 08:21:59 GMT 2012 + 0xCDD0105F + generationID_1879581046 + + + ./mig_39/user_design/par/mig_39.ucf + ucf + Thu Dec 20 08:21:59 GMT 2012 + 0xB2A36FB3 + generationID_1879581046 + + + ./mig_39/user_design/par/readme.txt + ignore + txt + Thu Dec 20 08:21:59 GMT 2012 + 0xD26FC611 + generationID_1879581046 + + + ./mig_39/user_design/par/rem_files.sh + ignore + unknown + Thu Dec 20 08:21:59 GMT 2012 + 0x107D2E3F + generationID_1879581046 + + + ./mig_39/user_design/par/vio_coregen.xco + ignore + xco + Thu Dec 20 08:21:59 GMT 2012 + 0x310B51ED + generationID_1879581046 + + + ./mig_39/user_design/rtl/iodrp_controller.vhd + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x5A2197DD + generationID_1879581046 + + + ./mig_39/user_design/rtl/iodrp_mcb_controller.vhd + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x69237401 + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_raw_wrapper.vhd + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xA3623325 + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_soft_calibration.vhd + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x9B8E0B5E + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_soft_calibration_top.vhd + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xC37A23BB + generationID_1879581046 + + + ./mig_39/user_design/rtl/memc3_infrastructure.vhd + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x702DFF2F + generationID_1879581046 + + + ./mig_39/user_design/rtl/memc3_wrapper.vhd + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xF3CED667 + generationID_1879581046 + + + ./mig_39/user_design/rtl/mig_39.vhd + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x623B1858 + generationID_1879581046 + + + ./mig_39/user_design/sim/afifo.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x26568D9A + generationID_1879581046 + + + ./mig_39/user_design/sim/cmd_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xC6EF0126 + generationID_1879581046 + + + ./mig_39/user_design/sim/cmd_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x893B0F01 + generationID_1879581046 + + + ./mig_39/user_design/sim/data_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x6E88FB8E + generationID_1879581046 + + + ./mig_39/user_design/sim/init_mem_pattern_ctr.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x26DEA717 + generationID_1879581046 + + + ./mig_39/user_design/sim/mcb_flow_control.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xB9D71414 + generationID_1879581046 + + + ./mig_39/user_design/sim/mcb_traffic_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x125A1D59 + generationID_1879581046 + + + ./mig_39/user_design/sim/memc3_tb_top.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xFB368D57 + generationID_1879581046 + + + ./mig_39/user_design/sim/rd_data_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x50A90B14 + generationID_1879581046 + + + ./mig_39/user_design/sim/read_data_path.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xDFA5DAF7 + generationID_1879581046 + + + ./mig_39/user_design/sim/read_posted_fifo.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xBC61DAC4 + generationID_1879581046 + + + ./mig_39/user_design/sim/readme.txt + ignore + txt + Thu Dec 20 08:21:59 GMT 2012 + 0xFA4BA7C6 + generationID_1879581046 + + + ./mig_39/user_design/sim/sim.do + ignore + unknown + Thu Dec 20 08:21:59 GMT 2012 + 0x7E312C43 + generationID_1879581046 + + + ./mig_39/user_design/sim/sim_tb_top.vhd + ignore + vhdl + Thu Dec 20 08:21:59 GMT 2012 + 0x507925E3 + generationID_1879581046 + + + ./mig_39/user_design/sim/sp6_data_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0xA9170C59 + generationID_1879581046 + + + ./mig_39/user_design/sim/tg_status.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x7B717096 + generationID_1879581046 + + + ./mig_39/user_design/sim/v6_data_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x24F3E550 + generationID_1879581046 + + + ./mig_39/user_design/sim/wr_data_gen.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x91BCA941 + generationID_1879581046 + + + ./mig_39/user_design/sim/write_data_path.vhd + ignore + vhdl + Thu Dec 20 08:21:58 GMT 2012 + 0x391A16CE + generationID_1879581046 + + + ./mig_39/user_design/synth/mem_interface_top_synp.sdc + ignore + unknown + Thu Dec 20 08:21:59 GMT 2012 + 0xBE2AEA94 + generationID_1879581046 + + + ./mig_39/user_design/synth/mig_39.lso + ignore + unknown + Thu Dec 20 08:21:59 GMT 2012 + 0xEEDE3797 + generationID_1879581046 + + + ./mig_39/user_design/synth/mig_39.prj + ignore + unknown + Thu Dec 20 08:21:59 GMT 2012 + 0x1521D75B + generationID_1879581046 + + + ./mig_39/user_design/synth/script_synp.tcl + ignore + tcl + Thu Dec 20 08:21:59 GMT 2012 + 0x54B8A577 + generationID_1879581046 + + + ./mig_39.vho + vho + Thu Dec 20 08:21:59 GMT 2012 + 0xD097E43C + generationID_1879581046 + + + ./mig_39_readme.txt + ignore + txt + Thu Dec 20 08:21:59 GMT 2012 + 0xC556B87D + generationID_1879581046 + + + ./mig_39_xmdf.tcl + ignore + tcl + Thu Dec 20 08:21:59 GMT 2012 + 0x87D169C0 + generationID_1879581046 + + + + instantiation_template_generator + + + asy_generator + + + xmdf_generator + + + ise_generator + + ./mig_39.gise + ignore + gise + Thu Dec 20 08:22:09 GMT 2012 + 0x8CB3D14A + generationID_1879581046 + + + ./mig_39.xise + ignore + xise + Thu Dec 20 08:22:09 GMT 2012 + 0x395B8CC2 + generationID_1879581046 + + + + deliver_readme_generator + + + flist_generator + + ./mig_39_flist.txt + ignore + txtFlist + txt + Thu Dec 20 08:22:09 GMT 2012 + 0xC0625487 + generationID_1879581046 + + + + + + + + + + mig_sp601 + ./ + ./tmp/ + ./tmp/_cg + + + xc6slx16 + spartan6 + csg324 + -2 + + + BusFormatParenNotRipped + VHDL + true + Synplicity + false + false + false + Ngc + false + + + Behavioral + VHDL + false + + + + + diff --git a/designs/leon3-xilinx-sp601/mig39/coregen.cgp b/designs/leon3-xilinx-sp601/mig39/coregen.cgp new file mode 100644 index 00000000..3b720875 --- /dev/null +++ b/designs/leon3-xilinx-sp601/mig39/coregen.cgp @@ -0,0 +1,22 @@ +# Date: Sun Jun 12 20:54:28 2011 + +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatParenNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6slx16 +SET devicefamily = spartan6 +SET flowvendor = Synplicity +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = csg324 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -2 +SET verilogsim = false +SET vhdlsim = true +SET workingdirectory = ./tmp/ + +# CRC: 6263b4e5 diff --git a/designs/leon3-xilinx-sp601/mig39/mig.prj b/designs/leon3-xilinx-sp601/mig39/mig.prj new file mode 100644 index 00000000..155947ba --- /dev/null +++ b/designs/leon3-xilinx-sp601/mig39/mig.prj @@ -0,0 +1,62 @@ + + + mig_39 + xc6slx45t-fgg484/-3 + 3.92 + + DDR2_SDRAM/Components/EDE1116ACBG-8E + 5000 + 0 + 1 + FALSE + + 13 + 10 + 3 + + + + 4(010) + 3 + Enable-Normal + Fullstrength + 50ohms + 0 + OCD Exit + Enable + Disable + Enable + Disable + NATIVE,NATIVE,NATIVE,NATIVE,NATIVE,NATIVE + Class II + Class II + CALIB_TERM + 25 Ohms + + + + Differential + 1 + Disable + Differential + Two 32-bit bi-directional and four 32-bit unidirectional ports + C2 + L6 + Port0 + Bi-directional,none,none,none,none,none + ROW_BANK_COLUMN + Round Robin + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + diff --git a/designs/leon3-xilinx-sp601/mig39/mig.xco b/designs/leon3-xilinx-sp601/mig39/mig.xco new file mode 100644 index 00000000..ce0dbb47 --- /dev/null +++ b/designs/leon3-xilinx-sp601/mig39/mig.xco @@ -0,0 +1,42 @@ +############################################################## +# +# Xilinx Core Generator version 13.1 +# Date: Sun Jun 12 21:20:10 2011 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatParenNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6slx16 +SET devicefamily = spartan6 +SET flowvendor = Synplicity +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = csg324 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -2 +SET verilogsim = false +SET vhdlsim = true +# END Project Options +# BEGIN Select +SELECT MIG_Virtex-6_and_Spartan-6 family Xilinx,_Inc. 3.92 +# END Select +# BEGIN Parameters +CSET component_name=mig_39 +CSET xml_input_file=./mig.prj +# END Parameters +GENERATE +# CRC: 6738592 diff --git a/designs/leon3-xilinx-sp601/mig39/mig_39.xco b/designs/leon3-xilinx-sp601/mig39/mig_39.xco new file mode 100644 index 00000000..622dcad8 --- /dev/null +++ b/designs/leon3-xilinx-sp601/mig39/mig_39.xco @@ -0,0 +1,49 @@ +############################################################## +# +# Xilinx Core Generator version 14.3 +# Date: Thu Dec 20 08:21:57 2012 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# Generated from component: xilinx.com:ip:mig:3.92 +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatParenNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6slx16 +SET devicefamily = spartan6 +SET flowvendor = Synplicity +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = csg324 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -2 +SET verilogsim = false +SET vhdlsim = true +# END Project Options +# BEGIN Select +SELECT MIG_Virtex-6_and_Spartan-6 family Xilinx,_Inc. 3.92 +# END Select +# BEGIN Parameters +CSET component_name=mig_39 +CSET xml_input_file=./mig.prj +# END Parameters +# BEGIN Extra information +MISC pkg_timestamp=2012-10-13T03:35:42Z +# END Extra information +GENERATE +# CRC: 6e025a14 diff --git a/designs/leon3-xilinx-sp601/mig_patch.txt b/designs/leon3-xilinx-sp601/mig_patch.txt new file mode 100644 index 00000000..c73bed91 --- /dev/null +++ b/designs/leon3-xilinx-sp601/mig_patch.txt @@ -0,0 +1,41 @@ +--- mig39/mig_39/user_design/rtl/mig_39.vhd 2012-12-20 09:21:58.000000000 +0100 ++++ mig39_copy/mig_39/user_design/rtl/mig_39.vhd 2012-12-20 09:24:32.951784727 +0100 +@@ -65,7 +65,7 @@ + --***************************************************************************** + library ieee; + use ieee.std_logic_1164.all; +-entity mig_39 is ++entity mig_37 is + generic + ( + C3_P0_MASK_SIZE : integer := 4; +@@ -118,7 +118,7 @@ + mcb3_dram_udm : out std_logic; + c3_sys_clk_p : in std_logic; + c3_sys_clk_n : in std_logic; +- c3_sys_rst_i : in std_logic; ++ c3_sys_rst_n : in std_logic; + c3_calib_done : out std_logic; + c3_clk0 : out std_logic; + c3_rst0 : out std_logic; +@@ -151,9 +151,9 @@ + c3_p0_rd_overflow : out std_logic; + c3_p0_rd_error : out std_logic + ); +-end mig_39; ++end mig_37; + +-architecture arc of mig_39 is ++architecture arc of mig_37 is + + + +@@ -449,7 +449,7 @@ + sys_clk_p => c3_sys_clk_p, + sys_clk_n => c3_sys_clk_n, + sys_clk => c3_sys_clk, +- sys_rst_i => c3_sys_rst_i, ++ sys_rst_i => c3_sys_rst_n, + clk0 => c3_clk0, + rst0 => c3_rst0, + async_rst => c3_async_rst, diff --git a/designs/leon3-xilinx-sp601/testbench.vhd b/designs/leon3-xilinx-sp601/testbench.vhd index 3157f632..96273cb9 100644 --- a/designs/leon3-xilinx-sp601/testbench.vhd +++ b/designs/leon3-xilinx-sp601/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-sp601/tkconfig.h b/designs/leon3-xilinx-sp601/tkconfig.h index 0e04a4de..379dc4ba 100644 --- a/designs/leon3-xilinx-sp601/tkconfig.h +++ b/designs/leon3-xilinx-sp601/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -874,6 +896,10 @@ #define CONFIG_DDR2SP_FTWIDTH 0 #endif +#ifndef CONFIG_MIG_DDR3 +#define CONFIG_MIG_DDR3 0 +#endif + #ifndef CONFIG_MIG_DDR2 #define CONFIG_MIG_DDR2 0 #endif @@ -1087,6 +1113,10 @@ #ifndef CONFIG_SPIMCTRL_PWRUPCNT #define CONFIG_SPIMCTRL_PWRUPCNT 0 #endif + +#ifndef CONFIG_SPIMCTRL_OFFSET +#define CONFIG_SPIMCTRL_OFFSET 0 +#endif #ifndef CONFIG_SPICTRL_ENABLE #define CONFIG_SPICTRL_ENABLE 0 #endif diff --git a/designs/leon3-xilinx-sp605/Makefile b/designs/leon3-xilinx-sp605/Makefile index a248aa5f..10ef2fc5 100644 --- a/designs/leon3-xilinx-sp605/Makefile +++ b/designs/leon3-xilinx-sp605/Makefile @@ -3,10 +3,12 @@ include .config GRLIB=../.. TOP=leon3mp BOARD=xilinx-sp605-xc6slx45t +DESIGN=leon3-xilinx-sp605 include $(GRLIB)/boards/$(BOARD)/Makefile.inc DEVICE=$(PART)-$(PACKAGE)$(SPEED) #UCF=$(GRLIB)/boards/$(BOARD)/$(TOP).ucf UCF=leon3mp.ucf +UCF_PLANAHEAD=$(UCF) QSF=$(GRLIB)/boards/$(BOARD)/$(TOP).qsf EFFORT=high ISEMAPOPT=-timing @@ -19,8 +21,15 @@ VHDLOPTSYNFILES= mig/mig_38/user_design/rtl/iodrp_controller.vhd \ mig/mig_38/user_design/rtl/mcb_soft_calibration_top.vhd \ mig/mig_38/user_design/rtl/memc3_infrastructure.vhd \ mig/mig_38/user_design/rtl/memc3_wrapper.vhd \ - mig/mig_38/user_design/rtl/mig_38.vhd -VHDLSYNFILES= \ + mig/mig_38/user_design/rtl/mig_38.vhd \ + mig39/mig_39/user_design/rtl/iodrp_controller.vhd \ + mig39/mig_39/user_design/rtl/iodrp_mcb_controller.vhd \ + mig39/mig_39/user_design/rtl/mcb_raw_wrapper.vhd \ + mig39/mig_39/user_design/rtl/mcb_soft_calibration.vhd \ + mig39/mig_39/user_design/rtl/mcb_soft_calibration_top.vhd \ + mig39/mig_39/user_design/rtl/memc3_infrastructure.vhd \ + mig39/mig_39/user_design/rtl/memc3_wrapper.vhd \ + mig39/mig_39/user_design/rtl/mig_39.vhd \ config.vhd svga2ch7301c.vhd ahbrom.vhd \ ahb2mig_sp605.vhd vga_clkgen.vhd leon3mp.vhd VHDLSIMFILES=testbench.vhd @@ -33,10 +42,10 @@ VCOMOPT=-explicit TECHLIBS = secureip unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip cypress ihp gleichmann gsi fmf spansion + tmtc openchip cypress ihp gsi fmf spansion DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci ambatest \ - leon4 leon4b64 l2cache gr1553b iommu haps ascs slink coremp7 pwm \ - ac97 hcan usb grfpc4 grlfpc4 + leon4 leon4v0 l2cache gr1553b iommu ascs slink pwm \ + hcan usb grfpc4 grlfpc4 FILEADD = MCB.vhd FILESKIP = grcan.vhd ddr2.v mobile_ddr.v @@ -53,4 +62,13 @@ mig: migclean: -rm -rf mig/mig_38* mig/tmp -.PHONY: mig +mig39: + coregen -b mig39/mig.xco -p mig39 + patch -p0 < mig_patch.txt + patch -p0 < memc3_infrastructure_patch.txt + patch -p0 < mcb_soft_calibration_patch.txt + +mig39clean: + -rm -rf mig39/mig_39* mig39/tmp + +.PHONY : mig mig39 mig39clean \ No newline at end of file diff --git a/designs/leon3-xilinx-sp605/README.txt b/designs/leon3-xilinx-sp605/README.txt index 1032d038..5051f8f5 100644 --- a/designs/leon3-xilinx-sp605/README.txt +++ b/designs/leon3-xilinx-sp605/README.txt @@ -8,16 +8,27 @@ interface. The MIG source code cannot be distributed due to the prohibitive Xilinx license, so the MIG must be re-generated with coregen before simulation and synthesis can be done. -To generate the MIG and install tne Xilinx unisim simulation +To generate the MIG using ISE13 and install the Xilinx unisim simulation library, do as follows: make mig make install-secureip -This will ONLY work with ISE-13.2 installed, and the XILINX variable -properly set in the shell. To synthesize the design, do +To generate the MIG using ISE14 and install the Xilinx unisim simulation +library, do as follows: + + make mig39 + make install-secureip + +This will ONLY work with correct version of ISE installed, and the XILINX variable +properly set in the shell. For ISE13 it is recommened to use the 'ise' make target +and for ISE14 to use the 'planAhead' target. To synthesize the design, do + + make ise (ISE13) + +or - make ise + make planAhead (ISE14) and then @@ -85,138 +96,72 @@ Design specifics $ grmon -xilusb -u - GRMON LEON debug monitor v1.1.51 professional version - - Copyright (C) 2004-2011 Aeroflex Gaisler - all rights reserved. - For latest updates, go to http://www.gaisler.com/ - Comments or bug-reports to support@gaisler.com - - Xilinx cable: Cable type/rev : 0x3 - JTAG chain: xc6slx45t xccace - - GRLIB build version: 4113 - - initialising ............... - detected frequency: 60 MHz - SRAM waitstates: 1 - - Component Vendor - LEON3 SPARC V8 Processor Gaisler Research - AHB Debug JTAG TAP Gaisler Research - GR Ethernet MAC Gaisler Research - LEON2 Memory Controller European Space Agency - AHB/APB Bridge Gaisler Research - LEON3 Debug Support Unit Gaisler Research - Xilinx MIG DDR2 controller Gaisler Research - System ACE I/F Controller Gaisler Research - Generic APB UART Gaisler Research - Multi-processor Interrupt Ctrl Gaisler Research - Modular Timer Unit Gaisler Research - SVGA Controller Gaisler Research - AMBA Wrapper for OC I2C-master Gaisler Research - General purpose I/O port Gaisler Research - AHB status register Gaisler Research - - Use command 'info sys' to print a detailed report of attached cores - -grlib> inf sys -00.01:003 Gaisler Research LEON3 SPARC V8 Processor (ver 0x0) - ahb master 0 -01.01:01c Gaisler Research AHB Debug JTAG TAP (ver 0x1) - ahb master 1 -02.01:01d Gaisler Research GR Ethernet MAC (ver 0x0) - ahb master 2, irq 12 - apb: 80000e00 - 80000f00 - Device index: dev0 - edcl ip 192.168.0.51, buffer 2 kbyte -00.04:00f European Space Agency LEON2 Memory Controller (ver 0x1) - ahb: 00000000 - 20000000 - apb: 80000000 - 80000100 - 16-bit prom @ 0x00000000 -01.01:006 Gaisler Research AHB/APB Bridge (ver 0x0) - ahb: 80000000 - 80100000 -02.01:004 Gaisler Research LEON3 Debug Support Unit (ver 0x1) - ahb: 90000000 - a0000000 - AHB trace 256 lines, 32-bit bus, stack pointer 0x47fffff0 - CPU#0 win 8, hwbp 2, itrace 256, V8 mul/div, srmmu, lddel 1 - icache 2 * 8 kbyte, 32 byte/line rnd - dcache 2 * 4 kbyte, 16 byte/line rnd -04.01:06b Gaisler Research Xilinx MIG DDR2 controller (ver 0x0) - ahb: 40000000 - 48000000 - apb: 80000400 - 80000500 - DDR2: 128 Mbyte -08.01:067 Gaisler Research System ACE I/F Controller (ver 0x0) - irq 10 - ahb: fff00200 - fff00300 -01.01:00c Gaisler Research Generic APB UART (ver 0x1) - irq 2 - apb: 80000100 - 80000200 - baud rate 38461, DSU mode (FIFO debug) -02.01:00d Gaisler Research Multi-processor Interrupt Ctrl (ver 0x3) - apb: 80000200 - 80000300 -03.01:011 Gaisler Research Modular Timer Unit (ver 0x0) - irq 8 - apb: 80000300 - 80000400 - 8-bit scaler, 2 * 32-bit timers, divisor 60 -06.01:063 Gaisler Research SVGA Controller (ver 0x0) - apb: 80000600 - 80000700 - clk0: 50.00 MHz -09.01:028 Gaisler Research AMBA Wrapper for OC I2C-master (ver 0x3) - irq 11 - apb: 80000900 - 80000a00 -0a.01:01a Gaisler Research General purpose I/O port (ver 0x1) - apb: 80000a00 - 80000b00 -0f.01:052 Gaisler Research AHB status register (ver 0x0) - irq 7 - apb: 80000f00 - 80001000 -grlib> fla - - Intel-style 16-bit flash on D[31:16] - - Manuf. Intel - Device Strataflash P30 - - Device ID 02e44603e127ffff - User ID ffffffffffffffff - - - 1 x 32 Mbyte = 32 Mbyte total @ 0x00000000 - - - CFI info - flash family : 1 - flash size : 256 Mbit - erase regions : 2 - erase blocks : 259 - write buffer : 1024 bytes - lock-down : yes - region 0 : 255 blocks of 128 Kbytes - region 1 : 4 blocks of 32 Kbytes - -grlib> lo ~/ibm/src/bench/leonbench/coremark.exe -section: .text at 0x40000000, size 102544 bytes -section: .data at 0x40019090, size 2788 bytes -total size: 105332 bytes (1.2 Mbit/s) -read 272 symbols -entry point: 0x40000000 -grlib> run -2K performance run parameters for coremark. -CoreMark Size : 666 -Total ticks : 19945918 -Total time (secs): 19.945918 -Iterations/Sec : 100.271143 -Iterations : 2000 -Compiler version : GCC4.4.2 -Compiler flags : -O3 -mv8 -funroll-loops -fgcse-sm -combine -DPERFORMANCE_RUN=1 -mcpu=v8 -msoft-float -Memory location : STACK -seedcrc : 0xe9f5 -[0]crclist : 0xe714 -[0]crcmatrix : 0x1fd7 -[0]crcstate : 0x8e3a -[0]crcfinal : 0x4983 -Correct operation validated. See readme.txt for run and reporting rules. -CoreMark 1.0 : 100.271143 / GCC4.4.2 -O3 -mv8 -funroll-loops -fgcse-sm -combine -DPERFORMANCE_RUN=1 -mcpu=v8 -msoft-float / Stack - -Program exited normally. -grlib> + GRMON2 LEON debug monitor v2.0.32 internal version + + Copyright (C) 2012 Aeroflex Gaisler - All rights reserved. + For latest updates, go to http://www.gaisler.com/ + Comments or bug-reports to support@gaisler.com + + +Parsing -xilusb +Parsing -u + +Commands missing help: + debug + +Xilusb: Cable type/rev : 0x3 + JTAG chain (2): xc6slx45t xccace + GRLIB build version: 4121 + Detected frequency: 60 MHz + + Component Vendor + LEON3 SPARC V8 Processor Aeroflex Gaisler + JTAG Debug Link Aeroflex Gaisler + GR Ethernet MAC Aeroflex Gaisler + LEON2 Memory Controller European Space Agency + AHB/APB Bridge Aeroflex Gaisler + LEON3 Debug Support Unit Aeroflex Gaisler + Xilinx MIG DDR2 Controller Aeroflex Gaisler + System ACE I/F Controller Aeroflex Gaisler + Generic UART Aeroflex Gaisler + Multi-processor Interrupt Ctrl. Aeroflex Gaisler + Modular Timer Unit Aeroflex Gaisler + SVGA frame buffer Aeroflex Gaisler + AMBA Wrapper for OC I2C-master Aeroflex Gaisler + General Purpose I/O port Aeroflex Gaisler + AHB Status Register Aeroflex Gaisler + + Use command 'info sys' to print a detailed report of attached cores + +grmon2> mem 0x40000000 + 0x40000000 40000000 40000004 40000008 ffff0000 @...@...@....... + 0x40000010 40000010 037007f0 57c016c0 16f416f0 @....p..W....... + 0x40000020 40000020 17f037f2 97c015f0 16e017e0 @.. ..7......... + 0x40000030 07f01370 17b103f0 54dc94b0 157217f8 ...p....T....r.. + +grmon2> lo /usr/local32/apps/bench/leon3/ +164.gzip.leon3 aocs.leon3 dhry.leon3 grmon.bat linpack.dp.leon3 ut699_res.txt +176.gcc.leon3 basicmath_large.leon3 gr712rc_res.txt l4ft.ods results.txt whetstone.leon3 +256.bzip2.leon3 coremark.exe.leon3 gr712rc_res2.txt l4ft.txt swim_bc +grmon2> lo /usr/local32/apps/bench/leon3/dhry.leon3 + 40000000 .text 54.7kB / 54.7kB [===============>] 100% + 4000DAF0 .data 2.7kB / 2.7kB [===============>] 100% + Total size: 57.44kB (1.53Mbit/s) + Entry point 0x40000000 + Image /usr/local32/apps/bench/leon3/dhry.leon3 loaded + +grmon2> run +Execution starts, 1000000 runs through Dhrystone +Total execution time: 5.2 s +Microseconds for one run through Dhrystone: 5.2 +Dhrystones per Second: 194169.1 + +Dhrystones MIPS : 110.5 + + + Program exited normally. + +grmon2> exit + +Exiting GRMON diff --git a/designs/leon3-xilinx-sp605/ahb2mig_sp605.vhd b/designs/leon3-xilinx-sp605/ahb2mig_sp605.vhd index 8791b3ae..0f4164e3 100644 --- a/designs/leon3-xilinx-sp605/ahb2mig_sp605.vhd +++ b/designs/leon3-xilinx-sp605/ahb2mig_sp605.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -316,7 +316,6 @@ begin ahbso.hirq <= (others => '0'); ahbso.hindex <= hindex; ahbso.hsplit <= (others => '0'); - ahbso.hcache <= '1'; apbo.pindex <= pindex; apbo.pconfig <= pconfig; @@ -396,7 +395,6 @@ begin ahbmi.hresp <= "00"; ahbmi.hgrant <= (others => '1'); ahbmi.hready <= r2.hready; - ahbmi.hcache <= '0'; ahbmi.hirq <= (others => '0'); ahbmi.testen <= '0'; ahbmi.testrst <= '0'; diff --git a/designs/leon3-xilinx-sp605/ahbrom.vhd b/designs/leon3-xilinx-sp605/ahbrom.vhd index f7c441dc..ac26c7b2 100644 --- a/designs/leon3-xilinx-sp605/ahbrom.vhd +++ b/designs/leon3-xilinx-sp605/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-xilinx-sp605/config.help b/designs/leon3-xilinx-sp605/config.help index 77727197..531ab1dc 100644 --- a/designs/leon3-xilinx-sp605/config.help +++ b/designs/leon3-xilinx-sp605/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -966,7 +1000,7 @@ CONFIG_SPIMCTRL_SDCARD Read command CONFIG_SPIMCTRL_READCMD - Read instruction for SPI memory device + Read instruction for SPI memory device (hex). Dummy byte CONFIG_SPIMCTRL_DUMMYBYTE @@ -976,6 +1010,10 @@ Dual output CONFIG_SPIMCTRL_DUALOUTPUT Memory device supports dual output when reading data. +Address offset +CONFIG_SPIMCTRL_OFFSET + Offset that will be added by core on SPI memory address (hex). + Clock scaler CONFIG_SPIMCTRL_SCALER Selects the divisor used when dividing the system clock to produce diff --git a/designs/leon3-xilinx-sp605/config.vhd.h b/designs/leon3-xilinx-sp605/config.vhd.h index 081b993c..f7e5fd9c 100644 --- a/designs/leon3-xilinx-sp605/config.vhd.h +++ b/designs/leon3-xilinx-sp605/config.vhd.h @@ -171,6 +171,7 @@ constant CFG_SPIMCTRL_SCALER : integer := CONFIG_SPIMCTRL_SCALER; constant CFG_SPIMCTRL_ASCALER : integer := CONFIG_SPIMCTRL_ASCALER; constant CFG_SPIMCTRL_PWRUPCNT : integer := CONFIG_SPIMCTRL_PWRUPCNT; + constant CFG_SPIMCTRL_OFFSET : integer := 16#CONFIG_SPIMCTRL_OFFSET#; -- SPI controller constant CFG_SPICTRL_ENABLE : integer := CONFIG_SPICTRL_ENABLE; diff --git a/designs/leon3-xilinx-sp605/lconfig.tk b/designs/leon3-xilinx-sp605/lconfig.tk index 030d68eb..f06f7de8 100755 --- a/designs/leon3-xilinx-sp605/lconfig.tk +++ b/designs/leon3-xilinx-sp605/lconfig.tk @@ -758,7 +758,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -768,7 +769,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -911,8 +914,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -931,6 +936,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1020,9 +1029,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1076,10 +1086,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1125,14 +1136,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1205,13 +1218,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1251,22 +1272,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1323,21 +1612,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1384,36 +1673,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1421,48 +1711,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1518,28 +1809,28 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH - global tmpvar_7 - minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x4.x.menu 3 bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1580,20 +1871,21 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1602,38 +1894,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} global CONFIG_HAS_SHARED_GRFPU global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} - global tmpvar_7 + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1690,92 +1983,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1783,18 +2076,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1835,52 +2128,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1888,162 +2182,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2099,45 +2394,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2177,18 +2474,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2196,55 +2494,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2301,24 +2604,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2358,17 +2661,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2376,37 +2680,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2462,22 +2767,22 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - global tmpvar_26 - minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_26 CONFIG_FPUFT_NONE + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" - $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN @@ -2548,26 +2853,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global tmpvar_26 + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 global CONFIG_FPUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} global CONFIG_FPUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} global CONFIG_FPUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} global CONFIG_FPUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2875,14 +3180,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 1 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_27 - minimenu $w.config.f 12 2 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_27 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 2 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 hex $w.config.f 12 3 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 4 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2956,17 +3261,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_27 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3538,16 +3843,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_28 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_28 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3609,21 +3914,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_28 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_28 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_28 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_28 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_28 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_28 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_28 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_28 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3683,14 +3988,14 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 18 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_29 - minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_29 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3744,17 +4049,17 @@ proc update_define_menu18 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_29 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_29 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3810,15 +4115,15 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_30 - minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_30 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 19 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 19 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3907,19 +4212,19 @@ proc update_menu19 {} { proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_30 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_30 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_30 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4214,9 +4519,10 @@ proc menu22 {w title} { hex $w.config.f 22 2 "Read instruction " CONFIG_SPIMCTRL_READCMD bool $w.config.f 22 3 "Read instruction requires dummy byte " CONFIG_SPIMCTRL_DUMMYBYTE bool $w.config.f 22 4 "Enable dual output for reads " CONFIG_SPIMCTRL_DUALOUTPUT - int $w.config.f 22 5 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER - int $w.config.f 22 6 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER - int $w.config.f 22 7 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT + hex $w.config.f 22 5 "Address offset " CONFIG_SPIMCTRL_OFFSET + int $w.config.f 22 6 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER + int $w.config.f 22 7 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER + int $w.config.f 22 8 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT @@ -4266,12 +4572,14 @@ proc update_menu22 {} { global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { configure_entry .menu22.config.f.x4 normal {n l y}} else {configure_entry .menu22.config.f.x4 disabled {y n l}} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {.menu22.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x5.l configure -state normal; } else {.menu22.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x5.l configure -state disabled} global CONFIG_SPIMCTRL_SCALER - if {($CONFIG_SPIMCTRL == 1)} then {.menu22.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x5.l configure -state normal; } else {.menu22.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x5.l configure -state disabled} - global CONFIG_SPIMCTRL_ASCALER if {($CONFIG_SPIMCTRL == 1)} then {.menu22.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x6.l configure -state normal; } else {.menu22.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x6.l configure -state disabled} - global CONFIG_SPIMCTRL_PWRUPCNT + global CONFIG_SPIMCTRL_ASCALER if {($CONFIG_SPIMCTRL == 1)} then {.menu22.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x7.l configure -state normal; } else {.menu22.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x7.l configure -state disabled} + global CONFIG_SPIMCTRL_PWRUPCNT + if {($CONFIG_SPIMCTRL == 1)} then {.menu22.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x8.l configure -state normal; } else {.menu22.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x8.l configure -state disabled} } @@ -4290,6 +4598,8 @@ proc update_define_menu22 {} { global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT&15]} else {set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT|16]} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {validate_hex CONFIG_SPIMCTRL_OFFSET "$CONFIG_SPIMCTRL_OFFSET" 0} global CONFIG_SPIMCTRL_SCALER if {($CONFIG_SPIMCTRL == 1)} then {validate_int CONFIG_SPIMCTRL_SCALER "$CONFIG_SPIMCTRL_SCALER" 1} global CONFIG_SPIMCTRL_ASCALER @@ -4361,12 +4671,12 @@ proc menu23 {w title} { bool $w.config.f 23 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN int $w.config.f 23 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN bool $w.config.f 23 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM - global tmpvar_31 - minimenu $w.config.f 23 11 "Fault-tolerance" tmpvar_31 CONFIG_SPICTRL_NOFT + global tmpvar_32 + minimenu $w.config.f 23 11 "Fault-tolerance" tmpvar_32 CONFIG_SPICTRL_NOFT menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" - $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_31 -value "None" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_31 -value "Parity-DMR" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_31 -value "TMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_32 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_32 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_32 -value "TMR" -command "update_active" menusplit $w $w.config.f.x11.x.menu 3 @@ -4466,13 +4776,13 @@ proc update_define_menu23 {} { global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} - global tmpvar_31 + global tmpvar_32 global CONFIG_SPICTRL_NOFT - if {$tmpvar_31 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + if {$tmpvar_32 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} global CONFIG_SPICTRL_DMRFT - if {$tmpvar_31 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + if {$tmpvar_32 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} global CONFIG_SPICTRL_TMRFT - if {$tmpvar_31 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} + if {$tmpvar_32 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } @@ -4712,7 +5022,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4722,6 +5033,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4746,6 +5059,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4758,14 +5072,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4778,28 +5097,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 set CONFIG_FPU_GRFPU_SH 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4809,17 +5128,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4831,12 +5150,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4846,10 +5165,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4860,7 +5179,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4872,26 +5191,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4899,27 +5220,27 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_FPUFT_NONE 0 set CONFIG_FPUFT_PAR 0 set CONFIG_FPUFT_DMR 0 @@ -4943,7 +5264,7 @@ set CONFIG_AHB_MONWAR 0 set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_27 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4977,7 +5298,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_28 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4988,14 +5309,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_29 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_30 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5024,6 +5345,7 @@ set CONFIG_SPIMCTRL_SDCARD 0 set CONFIG_SPIMCTRL_READCMD 0B set CONFIG_SPIMCTRL_DUMMYBYTE 0 set CONFIG_SPIMCTRL_DUALOUTPUT 0 +set CONFIG_SPIMCTRL_OFFSET 0 set CONFIG_SPIMCTRL_SCALER 1 set CONFIG_SPIMCTRL_ASCALER 8 set CONFIG_SPIMCTRL_PWRUPCNT 0 @@ -5038,7 +5360,7 @@ set CONFIG_SPICTRL_ODMODE 0 set CONFIG_SPICTRL_TWEN 0 set CONFIG_SPICTRL_MAXWLEN 0 set CONFIG_SPICTRL_SYNCRAM 0 -set tmpvar_31 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_SPICTRL_NOFT 0 set CONFIG_SPICTRL_DMRFT 0 set CONFIG_SPICTRL_TMRFT 0 @@ -5104,7 +5426,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5114,6 +5437,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5152,6 +5477,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -5164,9 +5490,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5180,245 +5507,390 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} - global CONFIG_FPU_GRFPU_SH - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5461,13 +5933,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_27 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5530,38 +6002,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_28 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_29 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UART, timer, I/O port and interrupt controller" global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_30 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5609,6 +6081,8 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUMMYBYTE $CONFIG_SPIMCTRL_DUMMYBYTE [list $notmod] 2 } global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUALOUTPUT $CONFIG_SPIMCTRL_DUALOUTPUT [list $notmod] 2 } + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_hex $cfg $autocfg CONFIG_SPIMCTRL_OFFSET $CONFIG_SPIMCTRL_OFFSET $notmod } global CONFIG_SPIMCTRL_SCALER if {($CONFIG_SPIMCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SPIMCTRL_SCALER $CONFIG_SPIMCTRL_SCALER $notmod } global CONFIG_SPIMCTRL_ASCALER @@ -5638,11 +6112,11 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } - global tmpvar_31 + global tmpvar_32 if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { - if { $tmpvar_31 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } - if { $tmpvar_31 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } - if { $tmpvar_31 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} + if { $tmpvar_32 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "System ACE Interface Controller" global CONFIG_GRACECTRL write_tristate $cfg $autocfg CONFIG_GRACECTRL $CONFIG_GRACECTRL [list $notmod] 2 @@ -5690,7 +6164,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5700,6 +6175,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5718,8 +6195,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5802,11 +6284,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5933,8 +6417,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5953,6 +6439,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5993,342 +6483,358 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_FPUFT_NONE - if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_FPUFT_PAR - if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_FPUFT_DMR - if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_FPUFT_TMR - if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "2" + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_27 "16" } - global tmpvar_28 - set tmpvar_28 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_29 "64" } - global tmpvar_30 - set tmpvar_30 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_30 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_30 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_30 "32" } - global tmpvar_31 - set tmpvar_31 "None" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } + global tmpvar_32 + set tmpvar_32 "None" global CONFIG_SPICTRL_NOFT - if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_31 "None" } + if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_32 "None" } global CONFIG_SPICTRL_DMRFT - if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_31 "Parity-DMR" } + if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_32 "Parity-DMR" } global CONFIG_SPICTRL_TMRFT - if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_31 "TMR" } + if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_32 "TMR" } } diff --git a/designs/leon3-xilinx-sp605/leon3mp.ucf b/designs/leon3-xilinx-sp605/leon3mp.ucf index e1b935dd..91dbc934 100644 --- a/designs/leon3-xilinx-sp605/leon3mp.ucf +++ b/designs/leon3-xilinx-sp605/leon3mp.ucf @@ -13,12 +13,13 @@ NET "clk33" TNM_NET = "clk33"; TIMESPEC "TS_clkm_clk33" = FROM "clkm" TO "clk33" TIG; TIMESPEC "TS_clk33_clkm" = FROM "clk33" TO "clkm" TIG; -# XST versions of MIG false paths +# --- MIG37 --- NET "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/selfrefresh_mcb_mode" TIG; NET "mig_gen.ddrc/MCB_inst/c?_pll_lock" TIG; +#NET "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/CKE_Train" TIG; ## This path exists for DDR2 only + +# --- MIG39 --- INST "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/DONE_SOFTANDHARD_CAL*" TIG; -#Please uncomment the below TIG if used in a design which enables self-refresh mode -#NET "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/SELFREFRESH_MCB_REQ" TIG; NET "address(0)" LOC = "n22" | IOSTANDARD =LVCMOS25; NET "address(1)" LOC = "n20" | IOSTANDARD =LVCMOS25; diff --git a/designs/leon3-xilinx-sp605/leon3mp.vhd b/designs/leon3-xilinx-sp605/leon3mp.vhd index 4169f37b..5efae874 100644 --- a/designs/leon3-xilinx-sp605/leon3mp.vhd +++ b/designs/leon3-xilinx-sp605/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2011, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -21,7 +21,6 @@ -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ - library ieee; use ieee.std_logic_1164.all; library grlib, techmap; @@ -430,7 +429,7 @@ begin port map (data(15 downto 0), memo.data(31 downto 16), memo.vbdrive(31 downto 16), memi.data(31 downto 16)); end generate; - nomctrl : if CFG_MCTRL_LEON2 /= 0 generate + nomctrl : if CFG_MCTRL_LEON2 = 0 generate roms_pad : outpad generic map (tech => padtech) port map (romsn, vcc); --ahbso(0) <= ahbso_none; end generate; @@ -526,6 +525,15 @@ begin port map (spi_sel_n, spmo.csn); end generate; + nospimc: if ((CFG_SPICTRL_ENABLE = 0 and CFG_SPIMCTRL = 0) or + (CFG_SPICTRL_ENABLE = 1 and CFG_SPIMCTRL = 1) or + (CFG_SPICTRL_ENABLE = 1 and CFG_SPIMCTRL = 0))generate + mosi_pad : outpad generic map (tech => padtech) + port map (spi_mosi, '0'); + sck_pad : outpad generic map (tech => padtech) + port map (spi_clk, '0'); + end generate; + ---------------------------------------------------------------------- --- System ACE I/F Controller --------------------------------------- ---------------------------------------------------------------------- diff --git a/designs/leon3-xilinx-sp605/mcb_soft_calibration_patch.txt b/designs/leon3-xilinx-sp605/mcb_soft_calibration_patch.txt new file mode 100644 index 00000000..ef221fad --- /dev/null +++ b/designs/leon3-xilinx-sp605/mcb_soft_calibration_patch.txt @@ -0,0 +1,1049 @@ +--- ./mig39/mig_39//user_design/rtl/mcb_soft_calibration.vhd 2013-01-15 15:13:18.000000000 +0100 ++++ ./p/a/t/c/h/mig39/mig_39//user_design/rtl/mcb_soft_calibration.vhd 2013-01-15 15:19:15.608793398 +0100 +@@ -94,15 +94,7 @@ + -- 3.7: 04/26/10: Added DDR2 Initialization fix to meet 400 ns wait as outlined in step d) of JEDEC DDR2 spec . + -- 3.8: 05/05/10: Added fixes for the CR# 559092 (updated Mult_Divide function) and 555416 (added IOB attribute to DONE_SOFTANDHARD_CAL). + -- 3.9: 05/24/10: Added 200us Wait logic to control CKE_Train. The 200us Wait counter assumes UI_CLK freq not higher than 100 MHz. +--- 3.10 10/22/10: Fixed PERFORM_START_DYN_CAL_AFTER_SELFREFRESH logic. +--- 3.11 2/14/11: Apply a different skkew for the P and N inputs for the differential LDQS and UDQS signals to provide more noise immunity. +--- 4.1 03/08/12: Fixed SELFREFRESH_MCB_REQ logic. It should not need depend on the SM STATE so that +--- MCB can come out of selfresh mode. SM requires refresh cycle to update the DQS value. +--- 4.2 05/10/12: All P/N terms of input and bidir memory pins are initialized with value of ZERO. TZQINIT_MAXCNT +--- are set to 8 for LPDDR,DDR and DDR2 interface . +--- Keep the UICMDEN in assertion state when SM is in RST_DELAY state so that MCB will not start doing +--- Premable detection until the second deassertion of MCB_SYSRST. +- ++-- 3.10 10/22/10: Fixed PERFORM_START_DYN_CAL_AFTER_SELFREFRESH logic. + + -- End Revision + --********************************************************************************** +@@ -157,17 +149,17 @@ + MCB_UIADDR : out std_logic_vector(4 downto 0) := "00000"; -- to MCB's UIADDR port (gets passed to IODRP2_MCB's AUXADDR port + MCB_UICMDEN : out std_logic := '1'; -- set to 1 to take control of UI interface - removes control from internal calib block + MCB_UIDONECAL : out std_logic := '0'; -- set to 0 to "tell" controller that it's still in a calibrate state +- MCB_UIDQLOWERDEC : out std_logic ; +- MCB_UIDQLOWERINC : out std_logic ; +- MCB_UIDQUPPERDEC : out std_logic ; +- MCB_UIDQUPPERINC : out std_logic ; ++ MCB_UIDQLOWERDEC : out std_logic := '0'; ++ MCB_UIDQLOWERINC : out std_logic := '0'; ++ MCB_UIDQUPPERDEC : out std_logic := '0'; ++ MCB_UIDQUPPERINC : out std_logic := '0'; + MCB_UILDQSDEC : out std_logic := '0'; + MCB_UILDQSINC : out std_logic := '0'; + MCB_UIREAD : out std_logic; -- enables read w/o writing by turning on a SDO->SDI loopback inside the IODRP2_MCBs (doesn't exist in + -- regular IODRP2). IODRPCTRLR_R_WB becomes don't-care. + MCB_UIUDQSDEC : out std_logic := '0'; + MCB_UIUDQSINC : out std_logic := '0'; +- MCB_RECAL : out std_logic ; -- future hook to drive MCB's RECAL pin - initiates a hard re-calibration sequence when high ++ MCB_RECAL : out std_logic := '0'; -- future hook to drive MCB's RECAL pin - initiates a hard re-calibration sequence when high + MCB_UICMD : out std_logic; + MCB_UICMDIN : out std_logic; + MCB_UIDQCOUNT : out std_logic_vector(3 downto 0); +@@ -234,50 +226,31 @@ + constant WAIT5 : std_logic_vector(5 downto 0) := "001111"; + constant BROADCAST_NTERM : std_logic_vector(5 downto 0) := "010000"; + constant WAIT6 : std_logic_vector(5 downto 0) := "010001"; +- +- constant LDQS_CLK_WRITE_P_TERM : std_logic_vector(5 downto 0) := "010010"; +- constant LDQS_CLK_P_TERM_WAIT : std_logic_vector(5 downto 0) := "010011"; +- constant LDQS_CLK_WRITE_N_TERM : std_logic_vector(5 downto 0) := "010100"; +- constant LDQS_CLK_N_TERM_WAIT : std_logic_vector(5 downto 0) := "010101"; +- constant LDQS_PIN_WRITE_P_TERM : std_logic_vector(5 downto 0) := "010110"; +- constant LDQS_PIN_P_TERM_WAIT : std_logic_vector(5 downto 0) := "010111"; +- constant LDQS_PIN_WRITE_N_TERM : std_logic_vector(5 downto 0) := "011000"; +- constant LDQS_PIN_N_TERM_WAIT : std_logic_vector(5 downto 0) := "011001"; +- constant UDQS_CLK_WRITE_P_TERM : std_logic_vector(5 downto 0) := "011010"; +- constant UDQS_CLK_P_TERM_WAIT : std_logic_vector(5 downto 0) := "011011"; +- constant UDQS_CLK_WRITE_N_TERM : std_logic_vector(5 downto 0) := "011100"; +- constant UDQS_CLK_N_TERM_WAIT : std_logic_vector(5 downto 0) := "011101"; +- constant UDQS_PIN_WRITE_P_TERM : std_logic_vector(5 downto 0) := "011110"; +- constant UDQS_PIN_P_TERM_WAIT : std_logic_vector(5 downto 0) := "011111"; +- constant UDQS_PIN_WRITE_N_TERM : std_logic_vector(5 downto 0) := "100000"; +- constant UDQS_PIN_N_TERM_WAIT : std_logic_vector(5 downto 0) := "100001"; +- +- constant OFF_RZQ_PTERM : std_logic_vector(5 downto 0) := "100010"; +- constant WAIT7 : std_logic_vector(5 downto 0) := "100011"; +- constant OFF_ZIO_NTERM : std_logic_vector(5 downto 0) := "100100"; +- constant WAIT8 : std_logic_vector(5 downto 0) := "100101"; +- constant RST_DELAY : std_logic_vector(5 downto 0) := "100110"; +- constant START_DYN_CAL_PRE : std_logic_vector(5 downto 0) := "100111"; +- constant WAIT_FOR_UODONE : std_logic_vector(5 downto 0) := "101000"; +- constant LDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "101001"; +- constant LDQS_WAIT1 : std_logic_vector(5 downto 0) := "101010"; +- constant LDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "101011"; +- constant LDQS_WAIT2 : std_logic_vector(5 downto 0) := "101100"; +- constant UDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "101101"; +- constant UDQS_WAIT1 : std_logic_vector(5 downto 0) := "101110"; +- constant UDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "101111"; +- constant UDQS_WAIT2 : std_logic_vector(5 downto 0) := "110000"; +- constant START_DYN_CAL : std_logic_vector(5 downto 0) := "110001"; +- constant WRITE_CALIBRATE : std_logic_vector(5 downto 0) := "110010"; +- constant WAIT9 : std_logic_vector(5 downto 0) := "110011"; +- constant READ_MAX_VALUE : std_logic_vector(5 downto 0) := "110100"; +- constant WAIT10 : std_logic_vector(5 downto 0) := "110101"; +- constant ANALYZE_MAX_VALUE : std_logic_vector(5 downto 0) := "110110"; +- constant FIRST_DYN_CAL : std_logic_vector(5 downto 0) := "110111"; +- constant INCREMENT : std_logic_vector(5 downto 0) := "111000"; +- constant DECREMENT : std_logic_vector(5 downto 0) := "111001"; +- constant DONE : std_logic_vector(5 downto 0) := "111010"; +- --constant INCREMENT_TA : std_logic_vector(5 downto 0) := "111011"; ++ constant OFF_RZQ_PTERM : std_logic_vector(5 downto 0) := "010010"; ++ constant WAIT7 : std_logic_vector(5 downto 0) := "010011"; ++ constant OFF_ZIO_NTERM : std_logic_vector(5 downto 0) := "010100"; ++ constant WAIT8 : std_logic_vector(5 downto 0) := "010101"; ++ constant RST_DELAY : std_logic_vector(5 downto 0) := "010110"; ++ constant START_DYN_CAL_PRE : std_logic_vector(5 downto 0) := "010111"; ++ constant WAIT_FOR_UODONE : std_logic_vector(5 downto 0) := "011000"; ++ constant LDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "011001"; ++ constant LDQS_WAIT1 : std_logic_vector(5 downto 0) := "011010"; ++ constant LDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "011011"; ++ constant LDQS_WAIT2 : std_logic_vector(5 downto 0) := "011100"; ++ constant UDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "011101"; ++ constant UDQS_WAIT1 : std_logic_vector(5 downto 0) := "011110"; ++ constant UDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "011111"; ++ constant UDQS_WAIT2 : std_logic_vector(5 downto 0) := "100000"; ++ constant START_DYN_CAL : std_logic_vector(5 downto 0) := "100001"; ++ constant WRITE_CALIBRATE : std_logic_vector(5 downto 0) := "100010"; ++ constant WAIT9 : std_logic_vector(5 downto 0) := "100011"; ++ constant READ_MAX_VALUE : std_logic_vector(5 downto 0) := "100100"; ++ constant WAIT10 : std_logic_vector(5 downto 0) := "100101"; ++ constant ANALYZE_MAX_VALUE : std_logic_vector(5 downto 0) := "100110"; ++ constant FIRST_DYN_CAL : std_logic_vector(5 downto 0) := "100111"; ++ constant INCREMENT : std_logic_vector(5 downto 0) := "101000"; ++ constant DECREMENT : std_logic_vector(5 downto 0) := "101001"; ++ constant DONE : std_logic_vector(5 downto 0) := "101010"; + + constant RZQ : std_logic_vector(1 downto 0) := "00"; + constant ZIO : std_logic_vector(1 downto 0) := "01"; +@@ -315,12 +288,10 @@ + constant DIV : integer := 4; + + constant PNSKEW : std_logic := '1'; -- Default is 1'b1. Change to 1'b0 if PSKEW and NSKEW are not required +- constant PNSKEWDQS : std_logic := '1'; +- +- constant MULT_S : integer := 9; +- constant DIV_S : integer := 8; +- constant MULT_W : integer := 7; +- constant DIV_W : integer := 8; ++ constant PSKEW_MULT : integer := 9; ++ constant PSKEW_DIV : integer := 8; ++ constant NSKEW_MULT : integer := 7; ++ constant NSKEW_DIV : integer := 8; + + constant DQS_NUMERATOR : integer := 3; + constant DQS_DENOMINATOR : integer := 8; +@@ -329,23 +300,11 @@ + -- 3 for three eighths + + constant RST_CNT : std_logic_vector(9 downto 0) := "0000010000"; ++ constant TZQINIT_MAXCNT : std_logic_vector(9 downto 0) := C_MEM_TZQINIT_MAXCNT + RST_CNT; + + constant IN_TERM_PASS : std_logic := '0'; + constant DYN_CAL_PASS : std_logic := '1'; + +- function TZQINIT_MAXCNT_W return std_logic_vector is +- variable temp : std_logic_vector(9 downto 0) := (others=>'0'); +- begin +- if (C_MEM_TYPE = "DDR3") then +- temp := C_MEM_TZQINIT_MAXCNT + RST_CNT; +- else +- temp := 8 + RST_CNT; +- end if; +- return temp(9 downto 0); +- end function; +- +- constant TZQINIT_MAXCNT : std_logic_vector(9 downto 0) := TZQINIT_MAXCNT_W; +- + component iodrp_mcb_controller is + port ( + memcell_address : in std_logic_vector(7 downto 0); +@@ -387,15 +346,11 @@ + end component; + + signal P_Term : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term : std_logic_vector(6 downto 0) := "0000000"; +- signal P_Term_s : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term_s : std_logic_vector(6 downto 0) := "0000000"; +- signal P_Term_w : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term_w : std_logic_vector(6 downto 0) := "0000000"; ++ signal N_Term : std_logic_vector(6 downto 0) := "0000000"; + signal P_Term_Prev : std_logic_vector(5 downto 0) := "000000"; + signal N_Term_Prev : std_logic_vector(6 downto 0) := "0000000"; + +- signal STATE : std_logic_vector(5 downto 0); ++ signal STATE : std_logic_vector(5 downto 0) := START; + signal IODRPCTRLR_MEMCELL_ADDR : std_logic_vector(7 downto 0); + signal IODRPCTRLR_WRITE_DATA : std_logic_vector(7 downto 0); + signal Active_IODRP : std_logic_vector(1 downto 0); +@@ -411,7 +366,7 @@ + signal count : std_logic_vector(5 downto 0) := "000000"; -- counter for adding 18 extra clock cycles after setting Calibrate bit + signal counter_en : std_logic := '0'; -- counter enable for "count" + signal First_Dyn_Cal_Done : std_logic := '0'; -- flag - high after the very first dynamic calibration is done +- signal START_BROADCAST : std_logic ; -- Trigger to start Broadcast to IODRP2_MCBs to set Input Impedance - ++ signal START_BROADCAST : std_logic := '1'; -- Trigger to start Broadcast to IODRP2_MCBs to set Input Impedance - + -- state machine will wait for this to be high + signal DQS_DELAY_INITIAL : std_logic_vector(7 downto 0) := "00000000"; + signal DQS_DELAY : std_logic_vector(7 downto 0); -- contains the latest values written to LDQS and UDQS Input Delays +@@ -474,24 +429,15 @@ + signal MCB_UISDI_xilinx11 : std_logic; + signal MCB_UICS_xilinx6 : std_logic; + signal MCB_UIBROADCAST_xilinx4 : std_logic; +- signal MCB_UIADDR_int : std_logic_vector(4 downto 0); ++ signal MCB_UIADDR_xilinx3 : std_logic_vector(4 downto 0); + signal MCB_UIDONECAL_xilinx7 : std_logic; + signal MCB_UIREAD_xilinx10 : std_logic; + signal SELFREFRESH_MODE_xilinx11 : std_logic; + signal Max_Value_int : std_logic_vector(7 downto 0); + signal Rst_condition1 : std_logic; +- --signal Rst_condition2 : std_logic; ++ signal Rst_condition2 : std_logic; + signal non_violating_rst : std_logic; + signal WAIT_200us_COUNTER : std_logic_vector(15 downto 0); +- signal WaitTimer : std_logic_vector(7 downto 0); +- signal WarmEnough : std_logic; +- signal WaitCountEnable : std_logic; +- signal State_Start_DynCal_R1 : std_logic; +- signal State_Start_DynCal : std_logic; +- +- signal pre_sysrst_minpulse_width_ok : std_logic; +- signal pre_sysrst_cnt : std_logic_vector(3 downto 0); +- + -- This function multiplies by a constant MULT and then divides by the DIV constant + function Mult_Divide (Input : std_logic_vector(7 downto 0); MULT : integer ; DIV : integer ) return std_logic_vector is + variable Result : integer := 0; +@@ -505,19 +451,9 @@ + return temp(7 downto 0); + end function Mult_Divide; + +- +- + attribute syn_preserve : boolean; + attribute syn_preserve of P_Term : signal is TRUE; + attribute syn_preserve of N_Term : signal is TRUE; +- attribute syn_preserve of P_Term_s : signal is TRUE; +- attribute syn_preserve of N_Term_s : signal is TRUE; +- attribute syn_preserve of P_Term_w : signal is TRUE; +- attribute syn_preserve of N_Term_w : signal is TRUE; +- +- +- +- + attribute syn_preserve of P_Term_Prev : signal is TRUE; + attribute syn_preserve of N_Term_Prev : signal is TRUE; + attribute syn_preserve of IODRPCTRLR_MEMCELL_ADDR : signal is TRUE; +@@ -530,18 +466,6 @@ + + begin + +- +--- move the default assignment here to make FORMALITY happy. +- +- START_BROADCAST <= '1'; +- MCB_RECAL <= '0'; +- MCB_UIDQLOWERDEC <= '0'; +- MCB_UIADDR <= MCB_UIADDR_int; +- MCB_UIDQLOWERINC <= '0'; +- MCB_UIDQUPPERDEC <= '0'; +- MCB_UIDQUPPERINC <= '0'; +- +- + Max_Value <= Max_Value_int; + -- Drive referenced outputs + IODRP_ADD <= IODRP_ADD_xilinx0; +@@ -550,6 +474,7 @@ + MCB_UISDI <= MCB_UISDI_xilinx11; + MCB_UICS <= MCB_UICS_xilinx6; + MCB_UIBROADCAST <= MCB_UIBROADCAST_xilinx4; ++ MCB_UIADDR <= MCB_UIADDR_xilinx3; + MCB_UIDONECAL <= MCB_UIDONECAL_xilinx7; + MCB_UIREAD <= MCB_UIREAD_xilinx10; + SELFREFRESH_MODE <= SELFREFRESH_MODE_xilinx11; +@@ -607,7 +532,7 @@ + cmd_valid => MCB_CMD_VALID, + rdy_busy_n => MCB_RDY_BUSY_N, + use_broadcast => MCB_USE_BKST, +- drp_ioi_addr => MCB_UIADDR_int, ++ drp_ioi_addr => MCB_UIADDR_xilinx3, + sync_rst => RST_reg, + DRP_CLK => UI_CLK, + DRP_CS => MCB_UICS_xilinx6, +@@ -618,13 +543,10 @@ + MCB_UIREAD => MCB_UIREAD_xilinx10 + ); + ++ init_sequence: if (C_SIMULATION = "FALSE") generate + process (UI_CLK, RST) begin + if (RST = '1') then +- if (C_SIMULATION = "TRUE") then +- WAIT_200us_COUNTER <= X"7FF0"; +- else + WAIT_200us_COUNTER <= (others => '0'); +- end if; + elsif (UI_CLK'event and UI_CLK = '1') then + if (WAIT_200us_COUNTER(15) = '1') then + WAIT_200us_COUNTER <= WAIT_200us_COUNTER; +@@ -633,15 +555,16 @@ + end if; + end if; + end process; ++ end generate; + +- -- init_sequence_skip: if (C_SIMULATION = "TRUE") generate +- -- WAIT_200us_COUNTER <= X"FFFF"; +- -- process +- -- begin +- -- report "The 200 us wait period required before CKE goes active has been skipped in Simulation"; +- -- wait; +- -- end process; +- -- end generate; ++ init_sequence_skip: if (C_SIMULATION = "TRUE") generate ++ WAIT_200us_COUNTER <= X"FFFF"; ++ process ++ begin ++ report "The 200 us wait period required before CKE goes active has been skipped in Simulation"; ++ wait; ++ end process; ++ end generate; + + + gen_CKE_Train_a: if (C_MEM_TYPE = "DDR2") generate +@@ -653,8 +576,6 @@ + CKE_Train <= '0'; + elsif (WAIT_200us_COUNTER(15) = '1' and MCB_UODONECAL = '0') then + CKE_Train <= '1'; +- else +- CKE_Train <= '0'; + end if; + end if; + end process; +@@ -671,20 +592,19 @@ + --******************************************** + -- PLL_LOCK and RST signals + --******************************************** +- --MCB_SYSRST <= Pre_SYSRST or RST_reg; -- Pre_SYSRST is generated from the STATE state machine, and is OR'd with RST_reg input to drive MCB's ++ MCB_SYSRST <= Pre_SYSRST or RST_reg; -- Pre_SYSRST is generated from the STATE state machine, and is OR'd with RST_reg input to drive MCB's + -- SYSRST pin (MCB_SYSRST) +- + rst_tmp <= not(SELFREFRESH_MODE_xilinx11) and not(PLL_LOCK_R2); -- rst_tmp becomes 1 if you lose Lock and the device is not in SUSPEND + + process (UI_CLK, RST) begin + if (RST = '1') then +- --Block_Reset <= '0'; +- --RstCounter <= (others => '0'); +- --elsif (UI_CLK'event and UI_CLK = '1') then +- -- if (rst_tmp = '1') then -- this is to deal with not allowing the user-reset "RST" to violate TZQINIT_MAXCNT (min time between resets to DDR3) ++ Block_Reset <= '0'; ++ RstCounter <= (others => '0'); ++ elsif (UI_CLK'event and UI_CLK = '1') then ++ if (rst_tmp = '1') then -- this is to deal with not allowing the user-reset "RST" to violate TZQINIT_MAXCNT (min time between resets to DDR3) + Block_Reset <= '0'; + RstCounter <= (others => '0'); +- elsif (UI_CLK'event and UI_CLK = '1') then ++ else + Block_Reset <= '0'; -- default to allow STATE to move out of RST_DELAY state + if (Pre_SYSRST = '1') then + RstCounter <= RST_CNT; -- whenever STATE wants to reset the MCB, set RstCounter to h10 +@@ -695,14 +615,11 @@ + end if; + end if; + end if; +- --end if; ++ end if; + end process; +- +- -- Rst_contidtion1 is to make sure RESET will not happen again within TZQINIT_MAXCNT +- non_violating_rst <= RST and Rst_condition1; +- MCB_SYSRST <= Pre_SYSRST; + +- process (UI_CLK) begin ++ non_violating_rst <= RST and Rst_condition1; ++ process (UI_CLK) begin + if (UI_CLK'event and UI_CLK = '1') then + if (RstCounter >= TZQINIT_MAXCNT) then + Rst_condition1 <= '1'; +@@ -712,31 +629,18 @@ + end if; + end process; + +--- -- non_violating_rst asserts whenever (system-level reset) RST is asserted but must be after TZQINIT_MAXCNT is reached (min-time between resets for DDR3) +--- -- After power stablizes, we will hold MCB in reset state for at least 200us before beginning initialization process. +--- -- If the PLL loses lock during normal operation, no ui_clk will be present because mcb_drp_clk is from a BUFGCE which +--- is gated by pll's lock signal. When the PLL locks again, the RST_reg stays asserted for at least 200 us which +--- will cause MCB to reset and reinitialize the memory afterwards. +--- -- During SUSPEND operation, the PLL will lose lock but non_violating_rst remains low (de-asserted) and WAIT_200us_COUNTER stays at +--- its terminal count. The PLL_LOCK input does not come direct from PLL, rather it is driven by gated_pll_lock from mcb_raw_wrapper module +--- The gated_pll_lock in the mcb_raw_wrapper does not de-assert during SUSPEND operation, hence PLL_LOCK will not de-assert, and the soft calibration +--- state machine will not reset during SUSPEND. +--- -- RST_reg is the control signal that resets the mcb_soft_calibration's State Machine. The MCB_SYSRST is now equal to +--- Pre_SYSRST. When State Machine is performing "INPUT Termination Calibration", it holds the MCB in reset by assertign MCB_SYSRST. +--- It will deassert the MCB_SYSRST so that it can grab the bus to broadcast the P and N term value to all of the DQ pins. Once the calibrated INPUT +--- termination is set, the State Machine will issue another short MCB_SYSRST so that MCB will use the tuned input termination during DQS preamble calibration. + + +- --process (UI_CLK) begin +- -- if (UI_CLK'event and UI_CLK = '1') then +- -- +- -- if (RstCounter < RST_CNT) then +- -- Rst_condition2 <= '1'; +- -- else +- -- Rst_condition2 <= '0'; +- -- end if; +- -- end if; +- --end process; ++ process (UI_CLK) begin ++ if (UI_CLK'event and UI_CLK = '1') then ++ ++ if (RstCounter < RST_CNT) then ++ Rst_condition2 <= '1'; ++ else ++ Rst_condition2 <= '0'; ++ end if; ++ end if; ++ end process; + + process (UI_CLK, non_violating_rst) begin + if (non_violating_rst = '1') then +@@ -745,47 +649,18 @@ + if (WAIT_200us_COUNTER(15) = '0') then + RST_reg <= '1'; + else +- --RST_reg <= Rst_condition2 or rst_tmp; -- insures RST_reg is at least h10 pulses long +- RST_reg <= rst_tmp; -- insures RST_reg is at least h10 pulses long ++ RST_reg <= Rst_condition2 or rst_tmp; -- insures RST_reg is at least h10 pulses long + end if; + end if; + end process; + +---************************************************************* +--- Stretching the pre_sysrst to satisfy the minimum pulse width +---************************************************************* +- +-process (UI_CLK) begin +-if (UI_CLK'event and UI_CLK = '1') then +- if (STATE = START_DYN_CAL_PRE) then +- pre_sysrst_cnt <= pre_sysrst_cnt + '1'; +- else +- pre_sysrst_cnt <= (others=>'0'); +- end if; +-end if; +-end process; +- +-pre_sysrst_minpulse_width_ok <= pre_sysrst_cnt(3); +- ++ + --******************************************** + -- SUSPEND Logic + --******************************************** +- process (UI_CLK,RST) ++ process (UI_CLK) + begin +- if (RST = '1') then +- +- SELFREFRESH_MCB_MODE_R1 <= '0'; +- SELFREFRESH_MCB_MODE_R2 <= '0'; +- SELFREFRESH_MCB_MODE_R3 <= '0'; +- +- SELFREFRESH_REQ_R1 <= '0'; +- SELFREFRESH_REQ_R2 <= '0'; +- SELFREFRESH_REQ_R3 <= '0'; +- +- PLL_LOCK_R1 <= '0'; +- PLL_LOCK_R2 <= '0'; +- +- elsif (UI_CLK'event and UI_CLK = '1') then ++ if (UI_CLK'event and UI_CLK = '1') then + -- SELFREFRESH_MCB_MODE is clocked by sysclk_2x_180 + SELFREFRESH_MCB_MODE_R1 <= SELFREFRESH_MCB_MODE; + SELFREFRESH_MCB_MODE_R2 <= SELFREFRESH_MCB_MODE_R1; +@@ -810,10 +685,9 @@ + if (UI_CLK'event and UI_CLK = '1') then + if (RST = '1') then + SELFREFRESH_MCB_REQ <= '0'; +- --elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R3 = '0') and (STATE = START_DYN_CAL)) then +- elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R3 = '0')) then ++ elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R1 = '0') and (STATE = START_DYN_CAL)) then + SELFREFRESH_MCB_REQ <= '0'; +- elsif ((STATE = START_DYN_CAL) and (SELFREFRESH_REQ_R3 = '1')) then ++ elsif ((STATE = START_DYN_CAL) and (SELFREFRESH_REQ_R1 = '1')) then + SELFREFRESH_MCB_REQ <= '1'; + end if; + end if; +@@ -859,10 +733,6 @@ + + -- SELFREFRESH_MCB_MODE deasserted status is hold off + -- until Soft_Calib has at least done one loop of DQS update. +--- New logic WarmeEnough is added to make sure PLL_Lock is lockec and all IOs stable before +--- deassert the status of MCB's SELFREFRESH_MODE. This is to ensure all IOs are stable before +--- user logic sending new commands to MCB. +- + process (UI_CLK) + begin + if (UI_CLK'event and UI_CLK = '1') then +@@ -870,76 +740,12 @@ + SELFREFRESH_MODE_xilinx11 <= '0'; + elsif (SELFREFRESH_MCB_MODE_R2 = '1') then + SELFREFRESH_MODE_xilinx11 <= '1'; +- elsif (WarmEnough = '1') then +- SELFREFRESH_MODE_xilinx11 <= '0'; +- end if; +- end if; +- end process; +- +- +- +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- WaitCountEnable <= '0'; +- elsif (SELFREFRESH_REQ_R2 = '0' and SELFREFRESH_REQ_R1 = '1') then +- WaitCountEnable <= '0'; + elsif ((PERFORM_START_DYN_CAL_AFTER_SELFREFRESH = '0') and (PERFORM_START_DYN_CAL_AFTER_SELFREFRESH_R1 = '1')) then +- WaitCountEnable <= '1'; +- else +- WaitCountEnable <= WaitCountEnable; ++ SELFREFRESH_MODE_xilinx11 <= '0'; + end if; + end if; + end process; + +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- State_Start_DynCal <= '0'; +- elsif (STATE = START_DYN_CAL) then +- State_Start_DynCal <= '1'; +- else +- State_Start_DynCal <= '0'; +- end if; +- end if; +- end process; +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- State_Start_DynCal_R1 <= '0'; +- else +- State_Start_DynCal_R1 <= State_Start_DynCal; +- end if; +- end if; +- end process; +- +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- WaitTimer <= (others => '0'); +- WarmEnough <= '1'; +- elsif ((SELFREFRESH_REQ_R2 = '0') and (SELFREFRESH_REQ_R1 = '1')) then +- WaitTimer <= (others => '0'); +- WarmEnough <= '0'; +- elsif (WaitTimer = X"04") then +- WaitTimer <= WaitTimer ; +- WarmEnough <= '1'; +- elsif (WaitCountEnable = '1') then +- WaitTimer <= WaitTimer + '1'; +- else +- WaitTimer <= WaitTimer ; +- end if; +- end if; +- end process; +- + --******************************************** + --Comparitor for Dynamic Calibration circuit + --******************************************** +@@ -1014,7 +820,7 @@ + if (UI_CLK'event and UI_CLK = '1') then + if (RST_reg = '1') then -- Synchronous reset + MCB_CMD_VALID <= '0'; +- MCB_UIADDR_int <= "00000"; -- take control of UI/UO port ++ MCB_UIADDR_xilinx3 <= "00000"; -- take control of UI/UO port + MCB_UICMDEN <= '1'; -- tells MCB that it is in Soft Cal. + MCB_UIDONECAL_xilinx7 <= '0'; + MCB_USE_BKST <= '0'; +@@ -1027,11 +833,6 @@ + IODRPCTRLR_USE_BKST <= '0'; + P_Term <= "000000"; + N_Term <= "0000000"; +- P_Term_s <= "000000"; +- N_Term_w <= "0000000"; +- P_Term_w <= "000000"; +- N_Term_s <= "0000000"; +- + P_Term_Prev <= "000000"; + N_Term_Prev <= "0000000"; + Active_IODRP <= RZQ; +@@ -1079,10 +880,7 @@ + Pre_SYSRST <= '1'; -- keeps MCB in reset + LastPass_DynCal <= IN_TERM_PASS; + if (SKIP_IN_TERM_CAL = 1) then +- --STATE <= WRITE_CALIBRATE; +- STATE <= WAIT_FOR_START_BROADCAST; +- P_Term <= "000000"; +- N_Term <= "0000000"; ++ STATE <= WRITE_CALIBRATE; + elsif (IODRPCTRLR_RDY_BUSY_N = '1') then + STATE <= LOAD_RZQ_NTERM; + else +@@ -1135,8 +933,7 @@ + STATE <= LOAD_RZQ_PTERM; + + when MULTIPLY_DIVIDE => -- h06 +- -- 13/4/2011 compensate the added sync FF +- P_Term <= Mult_Divide(("00" & (P_Term - '1')),MULT,DIV)(5 downto 0); ++ P_Term <= Mult_Divide(("00" & P_Term),MULT,DIV)(5 downto 0); + STATE <= LOAD_ZIO_PTERM; + + when LOAD_ZIO_PTERM => --h07 +@@ -1188,13 +985,8 @@ + STATE <= LOAD_ZIO_NTERM; + + when SKEW => -- h0C +- +- P_Term_s <= Mult_Divide(("00" & P_Term), MULT_S, DIV_S)(5 downto 0); +- N_Term_w <= Mult_Divide(('0' & (N_Term-'1')), MULT_W, DIV_W)(6 downto 0); +- P_Term_w <= Mult_Divide(("00" & P_Term), MULT_W, DIV_W)(5 downto 0); +- N_Term_s <= Mult_Divide(('0' & (N_Term-'1')), MULT_S, DIV_S)(6 downto 0); +- P_Term <= Mult_Divide(("00" & P_Term), MULT_S, DIV_S)(5 downto 0); +- N_Term <= Mult_Divide(('0' & (N_Term-'1')), MULT_W, DIV_W)(6 downto 0); ++ P_Term <= Mult_Divide(("00" & P_Term), PSKEW_MULT, PSKEW_DIV)(5 downto 0); ++ N_Term <= Mult_Divide(('0' & N_Term), NSKEW_MULT, NSKEW_DIV)(6 downto 0); + STATE <= WAIT_FOR_START_BROADCAST; + + when WAIT_FOR_START_BROADCAST => --h0D +@@ -1202,7 +994,7 @@ + -- keeping the MCB in calibration mode + Active_IODRP <= MCB_PORT; + if ((START_BROADCAST and IODRPCTRLR_RDY_BUSY_N) = '1') then +- if ((P_Term /= P_Term_Prev) or (SKIP_IN_TERM_CAL = 1)) then ++ if (P_Term /= P_Term_Prev) then + STATE <= BROADCAST_PTERM; + P_Term_Prev <= P_Term; + elsif (N_Term /= N_Term_Prev) then +@@ -1272,184 +1064,10 @@ + STATE <= WAIT6; -- wait for a Refresh cycle + end if; + else +- -- if (PNSKEWDQS = '1') then +- STATE <= LDQS_CLK_WRITE_P_TERM; +- -- else +- -- STATE <= OFF_RZQ_PTERM; +- -- end if; +- end if; +- +--- ********************* +- when LDQS_CLK_WRITE_P_TERM => -- h12 +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_w; +- MCB_UIADDR_int <= IOI_LDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_CLK_WRITE_P_TERM; +- else +- STATE <= LDQS_CLK_P_TERM_WAIT; +- end if; +- +- +- when LDQS_CLK_P_TERM_WAIT => --7'h13 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_CLK_P_TERM_WAIT; +- else +- STATE <= LDQS_CLK_WRITE_N_TERM; +- end if; +- +- when LDQS_CLK_WRITE_N_TERM => --7'h14 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_s; +- MCB_UIADDR_int <= IOI_LDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_CLK_WRITE_N_TERM; +- else +- STATE <= LDQS_CLK_N_TERM_WAIT; +- end if; +- +- --** +- when LDQS_CLK_N_TERM_WAIT => --7'h15 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_CLK_N_TERM_WAIT; +- else +- STATE <= LDQS_PIN_WRITE_P_TERM; +- end if; +- +- +- when LDQS_PIN_WRITE_P_TERM => --7'h16 +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_s; +- MCB_UIADDR_int <= IOI_LDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_PIN_WRITE_P_TERM; +- else +- STATE <= LDQS_PIN_P_TERM_WAIT; +- end if; +- +- +- when LDQS_PIN_P_TERM_WAIT => --7'h17 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_PIN_P_TERM_WAIT; +- else +- STATE <= LDQS_PIN_WRITE_N_TERM; +- end if; +- +- +- when LDQS_PIN_WRITE_N_TERM => --7'h18 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_w; +- MCB_UIADDR_int <= IOI_LDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_PIN_WRITE_N_TERM; +- else +- STATE <= LDQS_PIN_N_TERM_WAIT; +- end if; +- +- +- when LDQS_PIN_N_TERM_WAIT => --7'h19 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_PIN_N_TERM_WAIT; +- else +- STATE <= UDQS_CLK_WRITE_P_TERM; +- end if; +- +- +- +- when UDQS_CLK_WRITE_P_TERM => --7'h1A +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_w; +- MCB_UIADDR_int <= IOI_UDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_CLK_WRITE_P_TERM; +- else +- STATE <= UDQS_CLK_P_TERM_WAIT; +- end if; +- +- +- when UDQS_CLK_P_TERM_WAIT => --7'h1B +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_CLK_P_TERM_WAIT; +- else +- STATE <= UDQS_CLK_WRITE_N_TERM; +- end if; +- +- +- when UDQS_CLK_WRITE_N_TERM => --7'h1C +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_s; +- MCB_UIADDR_int <= IOI_UDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_CLK_WRITE_N_TERM; +- else +- STATE <= UDQS_CLK_N_TERM_WAIT; +- end if; +- +- when UDQS_CLK_N_TERM_WAIT => --7'h1D +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_CLK_N_TERM_WAIT; +- else +- STATE <= UDQS_PIN_WRITE_P_TERM; +- end if; +- +- +- +- when UDQS_PIN_WRITE_P_TERM => --7'h1E +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_s; +- MCB_UIADDR_int <= IOI_UDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_PIN_WRITE_P_TERM; +- else +- STATE <= UDQS_PIN_P_TERM_WAIT; +- end if; +- +- +- when UDQS_PIN_P_TERM_WAIT => --7'h1F +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_PIN_P_TERM_WAIT; +- else +- STATE <= UDQS_PIN_WRITE_N_TERM; +- end if; +- +- when UDQS_PIN_WRITE_N_TERM => --7'h20 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_w; +- MCB_UIADDR_int <= IOI_UDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_PIN_WRITE_N_TERM; +- else +- STATE <= UDQS_PIN_N_TERM_WAIT; +- end if; +- +- +- when UDQS_PIN_N_TERM_WAIT => --7'h21 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_PIN_N_TERM_WAIT; +- else +- STATE <= OFF_RZQ_PTERM; ++ STATE <= OFF_RZQ_PTERM; + end if; +- +--- ********************* + +- +- when OFF_RZQ_PTERM => -- h22 ++ when OFF_RZQ_PTERM => -- h12 + Active_IODRP <= RZQ; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= PTerm; +@@ -1464,14 +1082,14 @@ + STATE <= WAIT7; + end if; + +- when WAIT7 => -- h23 ++ when WAIT7 => -- h13 + if ((not(IODRPCTRLR_RDY_BUSY_N)) = '1') then + STATE <= WAIT7; + else + STATE <= OFF_ZIO_NTERM; + end if; + +- when OFF_ZIO_NTERM => -- h24 ++ when OFF_ZIO_NTERM => -- h14 + Active_IODRP <= ZIO; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= NTerm; +@@ -1483,7 +1101,7 @@ + STATE <= WAIT8; + end if; + +- when WAIT8 => -- h25 ++ when WAIT8 => -- h15 + if (IODRPCTRLR_RDY_BUSY_N = '0') then + STATE <= WAIT8; + else +@@ -1494,8 +1112,8 @@ + end if; + end if; + +- when RST_DELAY => -- h26 +- --MCB_UICMDEN <= '0'; -- release control of UI/UO port ++ when RST_DELAY => -- h16 ++ MCB_UICMDEN <= '0'; -- release control of UI/UO port + if (Block_Reset = '1') then -- this ensures that more than 512 clock cycles occur since the last reset after MCB_WRITE_CALIBRATE ??? + STATE <= RST_DELAY; + else +@@ -1505,18 +1123,18 @@ + --*************************** + --DYNAMIC CALIBRATION PORTION + --*************************** +- when START_DYN_CAL_PRE => -- h27 ++ when START_DYN_CAL_PRE => -- h17 + LastPass_DynCal <= IN_TERM_PASS; + MCB_UICMDEN <= '0'; -- release UICMDEN + MCB_UIDONECAL_xilinx7 <= '1'; -- release UIDONECAL - MCB will now initialize. + Pre_SYSRST <= '1'; -- SYSRST pulse + if (CALMODE_EQ_CALIBRATION = '0') then -- if C_MC_CALIBRATION_MODE is set to NOCALIBRATION + STATE <= START_DYN_CAL; -- we'll skip setting the DQS delays manually +- elsif (pre_sysrst_minpulse_width_ok = '1') then ++ else + STATE <= WAIT_FOR_UODONE; + end if; + +- when WAIT_FOR_UODONE => -- h28 ++ when WAIT_FOR_UODONE => -- h18 + Pre_SYSRST <= '0'; -- SYSRST pulse + if ((IODRPCTRLR_RDY_BUSY_N and MCB_UODONECAL) = '1')then --IODRP Controller needs to be ready, & MCB needs to be done with hard calibration + MCB_UICMDEN <= '1'; -- grab UICMDEN +@@ -1526,11 +1144,11 @@ + STATE <= WAIT_FOR_UODONE; + end if; + +- when LDQS_WRITE_POS_INDELAY => -- h29 ++ when LDQS_WRITE_POS_INDELAY => -- h19 + IODRPCTRLR_MEMCELL_ADDR <= PosEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_LDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_LDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1') then + STATE <= LDQS_WRITE_POS_INDELAY; +@@ -1538,18 +1156,18 @@ + STATE <= LDQS_WAIT1; + end if; + +- when LDQS_WAIT1 => -- h2A ++ when LDQS_WAIT1 => -- h1A + if (MCB_RDY_BUSY_N = '0')then + STATE <= LDQS_WAIT1; + else + STATE <= LDQS_WRITE_NEG_INDELAY; + end if; + +- when LDQS_WRITE_NEG_INDELAY => -- h2B ++ when LDQS_WRITE_NEG_INDELAY => -- h1B + IODRPCTRLR_MEMCELL_ADDR <= NegEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_LDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_LDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= LDQS_WRITE_NEG_INDELAY; +@@ -1557,18 +1175,18 @@ + STATE <= LDQS_WAIT2; + end if; + +- when LDQS_WAIT2 => -- 7'h2C ++ when LDQS_WAIT2 => -- 7'h1C + if(MCB_RDY_BUSY_N = '0')then + STATE <= LDQS_WAIT2; + else + STATE <= UDQS_WRITE_POS_INDELAY; + end if; + +- when UDQS_WRITE_POS_INDELAY => -- 7'h2D ++ when UDQS_WRITE_POS_INDELAY => -- 7'h1D + IODRPCTRLR_MEMCELL_ADDR <= PosEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_UDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_UDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= UDQS_WRITE_POS_INDELAY; +@@ -1576,18 +1194,18 @@ + STATE <= UDQS_WAIT1; + end if; + +- when UDQS_WAIT1 => -- 7'h2E ++ when UDQS_WAIT1 => -- 7'h1E + if (MCB_RDY_BUSY_N = '0')then + STATE <= UDQS_WAIT1; + else + STATE <= UDQS_WRITE_NEG_INDELAY; + end if; + +- when UDQS_WRITE_NEG_INDELAY => -- 7'h2F ++ when UDQS_WRITE_NEG_INDELAY => -- 7'h1F + IODRPCTRLR_MEMCELL_ADDR <= NegEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_UDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_UDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= UDQS_WRITE_NEG_INDELAY; +@@ -1595,7 +1213,7 @@ + STATE <= UDQS_WAIT2; + end if; + +- when UDQS_WAIT2 => -- 7'h30 ++ when UDQS_WAIT2 => -- 7'h20 + if (MCB_RDY_BUSY_N = '0')then + STATE <= UDQS_WAIT2; + else +@@ -1604,7 +1222,7 @@ + STATE <= START_DYN_CAL; + end if; + +- when START_DYN_CAL => -- h31 ++ when START_DYN_CAL => -- h21 + Pre_SYSRST <= '0'; -- SYSRST not driven + counter_inc <= (others => '0'); + counter_dec <= (others => '0'); +@@ -1624,7 +1242,7 @@ + STATE <= START_DYN_CAL; + end if; + +- when WRITE_CALIBRATE => -- h32 ++ when WRITE_CALIBRATE => -- h22 + Pre_SYSRST <= '0'; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= DelayControl; +@@ -1637,7 +1255,7 @@ + STATE <= WAIT9; + end if; + +- when WAIT9 => -- h33 ++ when WAIT9 => -- h23 + counter_en <= '1'; + if (count < "100110") then -- this adds approximately 22 extra clock cycles after WRITE_CALIBRATE + STATE <= WAIT9; +@@ -1645,7 +1263,7 @@ + STATE <= READ_MAX_VALUE; + end if; + +- when READ_MAX_VALUE => -- h34 ++ when READ_MAX_VALUE => -- h24 + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= MaxValue; + IODRPCTRLR_R_WB <= READ_MODE; +@@ -1656,7 +1274,7 @@ + STATE <= WAIT10; + end if; + +- when WAIT10 => -- h35 ++ when WAIT10 => -- h25 + if (IODRPCTRLR_RDY_BUSY_N = '0') then + STATE <= WAIT10; + else +@@ -1669,7 +1287,7 @@ + end if; + end if; + +- when ANALYZE_MAX_VALUE => -- h36 only do a Inc or Dec during a REFRESH cycle. ++ when ANALYZE_MAX_VALUE => -- h26 only do a Inc or Dec during a REFRESH cycle. + if (First_Dyn_Cal_Done = '0')then + STATE <= FIRST_DYN_CAL; + elsif ((Max_Value_int < Max_Value_Previous) and (Max_Value_Delta_Dn >= INCDEC_THRESHOLD)) then +@@ -1684,11 +1302,11 @@ + STATE <= START_DYN_CAL; + end if; + +- when FIRST_DYN_CAL => -- h37 ++ when FIRST_DYN_CAL => -- h27 + First_Dyn_Cal_Done <= '1'; -- set flag that the First Dynamic Calibration has been completed + STATE <= START_DYN_CAL; + +- when INCREMENT => -- h38 ++ when INCREMENT => -- h28 + STATE <= START_DYN_CAL; -- Default case: Inc is not high or no longer in REFRSH + MCB_UILDQSINC <= '0'; -- Default case: no inc or dec + MCB_UIUDQSINC <= '0'; -- Default case: no inc or dec +@@ -1712,7 +1330,7 @@ + STATE <= START_DYN_CAL; + end case; + +- when DECREMENT => -- h39 ++ when DECREMENT => -- h29 + STATE <= START_DYN_CAL; -- Default case: Dec is not high or no longer in REFRSH + MCB_UILDQSINC <= '0'; -- Default case: no inc or dec + MCB_UIUDQSINC <= '0'; -- Default case: no inc or dec +@@ -1738,7 +1356,7 @@ + end case; + end if; + +- when DONE => -- h3A ++ when DONE => -- h2A + Pre_SYSRST <= '0'; -- SYSRST cleared + MCB_UICMDEN <= '0'; -- release UICMDEN + STATE <= DONE; diff --git a/designs/leon3-xilinx-sp605/memc3_infrastructure_patch.txt b/designs/leon3-xilinx-sp605/memc3_infrastructure_patch.txt new file mode 100644 index 00000000..01d22034 --- /dev/null +++ b/designs/leon3-xilinx-sp605/memc3_infrastructure_patch.txt @@ -0,0 +1,96 @@ +--- mig39/mig_39/user_design/rtl/memc3_infrastructure.vhd 2012-12-20 08:13:08.000000000 +0100 ++++ mig39_copy/mig_39/user_design/rtl/memc3_infrastructure.vhd 2012-12-20 08:20:48.359825226 +0100 +@@ -95,7 +95,9 @@ + mcb_drp_clk : out std_logic; + pll_ce_0 : out std_logic; + pll_ce_90 : out std_logic; +- pll_lock : out std_logic ++ pll_lock : out std_logic; ++ clk_125 : out std_logic; ++ clk_50 : out std_logic + + ); + end entity; +@@ -121,6 +123,8 @@ + signal clk0_bufg_in : std_logic; + signal mcb_drp_clk_bufg_in : std_logic; + signal clkfbout_clkfbin : std_logic; ++ signal clkfbout_clkfbin2 : std_logic; ++ signal clk_50i, clk_125i : std_logic; + signal rst_tmp : std_logic; + signal sys_clk_ibufg : std_logic; + signal sys_rst : std_logic; +@@ -330,5 +334,73 @@ + LOCK => bufpll_mcb_locked + ); + ++ ++ -- second PLL to generate 125 MHz for giga-bit MAC and 50 MHz for VGA ++ u_pll_adv2 : PLL_ADV ++ generic map ++ ( ++ BANDWIDTH => "OPTIMIZED", ++ CLKIN1_PERIOD => CLK_PERIOD_NS, ++ CLKIN2_PERIOD => CLK_PERIOD_NS, ++ CLKOUT0_DIVIDE => 8, -- 125 MHz ++ CLKOUT1_DIVIDE => 20, -- 50 MHz ++ CLKOUT2_DIVIDE => C_CLKOUT2_DIVIDE, ++ CLKOUT3_DIVIDE => C_CLKOUT3_DIVIDE, ++ CLKOUT4_DIVIDE => 1, ++ CLKOUT5_DIVIDE => 1, ++ CLKOUT0_PHASE => 0.000, ++ CLKOUT1_PHASE => 0.000, ++ CLKOUT2_PHASE => 0.000, ++ CLKOUT3_PHASE => 0.000, ++ CLKOUT4_PHASE => 0.000, ++ CLKOUT5_PHASE => 0.000, ++ CLKOUT0_DUTY_CYCLE => 0.500, ++ CLKOUT1_DUTY_CYCLE => 0.500, ++ CLKOUT2_DUTY_CYCLE => 0.500, ++ CLKOUT3_DUTY_CYCLE => 0.500, ++ CLKOUT4_DUTY_CYCLE => 0.500, ++ CLKOUT5_DUTY_CYCLE => 0.500, ++ SIM_DEVICE => "SPARTAN6", ++ COMPENSATION => "INTERNAL", ++ DIVCLK_DIVIDE => 1, ++ CLKFBOUT_MULT => 5, -- 1000 MHz ++ CLKFBOUT_PHASE => 0.0, ++ REF_JITTER => 0.005000 ++ ) ++ port map ++ ( ++ CLKFBIN => clkfbout_clkfbin2, ++ CLKINSEL => '1', ++ CLKIN1 => sys_clk_ibufg, ++ CLKIN2 => '0', ++ DADDR => (others => '0'), ++ DCLK => '0', ++ DEN => '0', ++ DI => (others => '0'), ++ DWE => '0', ++ REL => '0', ++ RST => sys_rst, ++ CLKFBDCM => open, ++ CLKFBOUT => clkfbout_clkfbin2, ++ CLKOUTDCM0 => open, ++ CLKOUTDCM1 => open, ++ CLKOUTDCM2 => open, ++ CLKOUTDCM3 => open, ++ CLKOUTDCM4 => open, ++ CLKOUTDCM5 => open, ++ CLKOUT0 => clk_125i, ++ CLKOUT1 => clk_50i, ++ CLKOUT2 => open, ++ CLKOUT3 => open, ++ CLKOUT4 => open, ++ CLKOUT5 => open, ++ DO => open, ++ DRDY => open, ++ LOCKED => open ++ ); ++ ++ U_BUFG_125 : BUFG port map ( O => clk_125, I => clk_125i); ++ U_BUFG_50 : BUFG port map ( O => clk_50, I => clk_50i); ++ + end architecture syn; + diff --git a/designs/leon3-xilinx-sp605/mig39/coregen.cgc b/designs/leon3-xilinx-sp605/mig39/coregen.cgc new file mode 100644 index 00000000..f4d7e311 --- /dev/null +++ b/designs/leon3-xilinx-sp605/mig39/coregen.cgc @@ -0,0 +1,953 @@ + + + xilinx.com + CoreGen + coregen + 1.0 + + + mig_39 + MIG Virtex-6 and Spartan-6 + + + mig_39 + ./mig_39/user_design/mig.prj + + + + + coregen + ./ + ./tmp/ + ./tmp/_cg/ + + + xc6slx45t + spartan6 + fgg484 + -3 + + + BusFormatParenNotRipped + VHDL + true + Synplicity + false + false + false + Ngc + false + + + Behavioral + VHDL + false + + + 2012-10-13+03:35 + + + + + model_parameter_resolution_generator + + + ip_xco_generator + + ./mig_39.xco + xco + Thu Dec 20 07:13:07 GMT 2012 + 0x21984B25 + generationID_1879581046 + + + + implementation_source_generator + + ./mig_39/docs/ug388.pdf + ignore + pdf + Thu Dec 20 07:13:07 GMT 2012 + 0x90FCF0D1 + generationID_1879581046 + + + ./mig_39/docs/ug416.pdf + ignore + pdf + Thu Dec 20 07:13:07 GMT 2012 + 0x5A2D5D89 + generationID_1879581046 + + + ./mig_39/example_design/datasheet.txt + ignore + txt + Thu Dec 20 07:13:08 GMT 2012 + 0xB2113B64 + generationID_1879581046 + + + ./mig_39/example_design/mig.prj + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x959CEC85 + generationID_1879581046 + + + ./mig_39/example_design/par/example_top.ucf + ignore + ucf + Thu Dec 20 07:13:08 GMT 2012 + 0xA086BAC0 + generationID_1879581046 + + + ./mig_39/example_design/par/icon_coregen.xco + ignore + xco + Thu Dec 20 07:13:08 GMT 2012 + 0xC358571F + generationID_1879581046 + + + ./mig_39/example_design/par/ila_coregen.xco + ignore + xco + Thu Dec 20 07:13:08 GMT 2012 + 0xA1B5D6EB + generationID_1879581046 + + + ./mig_39/example_design/par/ise_flow.sh + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0xFDA550DD + generationID_1879581046 + + + ./mig_39/example_design/par/ise_run.txt + ignore + txt + Thu Dec 20 07:13:08 GMT 2012 + 0xDF3D5A03 + generationID_1879581046 + + + ./mig_39/example_design/par/makeproj.sh + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0xCFE64DF9 + generationID_1879581046 + + + ./mig_39/example_design/par/mem_interface_top.ut + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0xCDD0105F + generationID_1879581046 + + + ./mig_39/example_design/par/readme.txt + ignore + txt + Thu Dec 20 07:13:08 GMT 2012 + 0xCA0E2934 + generationID_1879581046 + + + ./mig_39/example_design/par/rem_files.sh + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0xD24BB2EE + generationID_1879581046 + + + ./mig_39/example_design/par/vio_coregen.xco + ignore + xco + Thu Dec 20 07:13:08 GMT 2012 + 0x310B2353 + generationID_1879581046 + + + ./mig_39/example_design/rtl/example_top.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x79C4A1D0 + generationID_1879581046 + + + ./mig_39/example_design/rtl/iodrp_controller.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x5A2197DD + generationID_1879581046 + + + ./mig_39/example_design/rtl/iodrp_mcb_controller.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x69237401 + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_raw_wrapper.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xA3623325 + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_soft_calibration.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x9B8E0B5E + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_soft_calibration_top.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xC37A23BB + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_infrastructure.vhd + ignore + vhdl + Thu Dec 20 07:13:07 GMT 2012 + 0x8EA90667 + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_tb_top.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xDB511AFE + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_wrapper.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x4A9038BE + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/afifo.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x26568D9A + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/cmd_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xC6EF0126 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/cmd_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x893B0F01 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/data_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x6E88FB8E + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/init_mem_pattern_ctr.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x26DEA717 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/mcb_flow_control.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xB9D71414 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/mcb_traffic_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x125A1D59 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/rd_data_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x50A90B14 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/read_data_path.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xDFA5DAF7 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/read_posted_fifo.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xBC61DAC4 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/sp6_data_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xA9170C59 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/tg_status.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x7B717096 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/v6_data_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x24F3E550 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/wr_data_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x91BCA941 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/write_data_path.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x391A16CE + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/ddr3_model_c3.v + ignore + verilog + Thu Dec 20 07:13:08 GMT 2012 + 0x4888E9C7 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/ddr3_model_parameters_c3.vh + ignore + verilog + Thu Dec 20 07:13:08 GMT 2012 + 0xFCAE2B71 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/isim.sh + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x9F9FA990 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/isim.tcl + ignore + tcl + Thu Dec 20 07:13:08 GMT 2012 + 0x42CDE72E + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/mig_39.prj + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x4C74E1F0 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/readme.txt + ignore + txt + Thu Dec 20 07:13:08 GMT 2012 + 0xFF44EBCB + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/sim.do + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x7B7530ED + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/sim_tb_top.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x708A0AE5 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/timing_sim.sh + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x68A01DAC + generationID_1879581046 + + + ./mig_39/example_design/synth/example_top.lso + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0xEEDE3797 + generationID_1879581046 + + + ./mig_39/example_design/synth/example_top.prj + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x45A82CBA + generationID_1879581046 + + + ./mig_39/example_design/synth/mem_interface_top_synp.sdc + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x53C2426B + generationID_1879581046 + + + ./mig_39/example_design/synth/script_synp.tcl + ignore + tcl + Thu Dec 20 07:13:08 GMT 2012 + 0x983BD32D + generationID_1879581046 + + + ./mig_39/user_design/datasheet.txt + ignore + txt + Thu Dec 20 07:13:08 GMT 2012 + 0x6DD20041 + generationID_1879581046 + + + ./mig_39/user_design/mig.prj + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x959CEC85 + generationID_1879581046 + + + ./mig_39/user_design/par/icon_coregen.xco + ignore + xco + Thu Dec 20 07:13:08 GMT 2012 + 0xC358571F + generationID_1879581046 + + + ./mig_39/user_design/par/ila_coregen.xco + ignore + xco + Thu Dec 20 07:13:08 GMT 2012 + 0xA1B5D6EB + generationID_1879581046 + + + ./mig_39/user_design/par/ise_flow.sh + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x96AC23E4 + generationID_1879581046 + + + ./mig_39/user_design/par/ise_run.txt + ignore + txt + Thu Dec 20 07:13:08 GMT 2012 + 0x939BBF17 + generationID_1879581046 + + + ./mig_39/user_design/par/makeproj.sh + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0xCFE64DF9 + generationID_1879581046 + + + ./mig_39/user_design/par/mem_interface_top.ut + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0xCDD0105F + generationID_1879581046 + + + ./mig_39/user_design/par/mig_39.ucf + ucf + Thu Dec 20 07:13:08 GMT 2012 + 0xC93BF5F6 + generationID_1879581046 + + + ./mig_39/user_design/par/readme.txt + ignore + txt + Thu Dec 20 07:13:08 GMT 2012 + 0xC6F34241 + generationID_1879581046 + + + ./mig_39/user_design/par/rem_files.sh + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x56F853E2 + generationID_1879581046 + + + ./mig_39/user_design/par/vio_coregen.xco + ignore + xco + Thu Dec 20 07:13:08 GMT 2012 + 0x310B2353 + generationID_1879581046 + + + ./mig_39/user_design/rtl/iodrp_controller.vhd + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x5A2197DD + generationID_1879581046 + + + ./mig_39/user_design/rtl/iodrp_mcb_controller.vhd + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x69237401 + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_raw_wrapper.vhd + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xA3623325 + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_soft_calibration.vhd + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x9B8E0B5E + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_soft_calibration_top.vhd + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xC37A23BB + generationID_1879581046 + + + ./mig_39/user_design/rtl/memc3_infrastructure.vhd + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x8EA90667 + generationID_1879581046 + + + ./mig_39/user_design/rtl/memc3_wrapper.vhd + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x4A9038BE + generationID_1879581046 + + + ./mig_39/user_design/rtl/mig_39.vhd + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xDAFDDD97 + generationID_1879581046 + + + ./mig_39/user_design/sim/afifo.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x26568D9A + generationID_1879581046 + + + ./mig_39/user_design/sim/cmd_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xC6EF0126 + generationID_1879581046 + + + ./mig_39/user_design/sim/cmd_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x893B0F01 + generationID_1879581046 + + + ./mig_39/user_design/sim/data_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x6E88FB8E + generationID_1879581046 + + + ./mig_39/user_design/sim/ddr3_model_c3.v + ignore + verilog + Thu Dec 20 07:13:08 GMT 2012 + 0x4888E9C7 + generationID_1879581046 + + + ./mig_39/user_design/sim/ddr3_model_parameters_c3.vh + ignore + verilog + Thu Dec 20 07:13:08 GMT 2012 + 0xFCAE2B71 + generationID_1879581046 + + + ./mig_39/user_design/sim/init_mem_pattern_ctr.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x26DEA717 + generationID_1879581046 + + + ./mig_39/user_design/sim/isim.sh + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x9F9FA990 + generationID_1879581046 + + + ./mig_39/user_design/sim/isim.tcl + ignore + tcl + Thu Dec 20 07:13:08 GMT 2012 + 0x42CDE72E + generationID_1879581046 + + + ./mig_39/user_design/sim/mcb_flow_control.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xB9D71414 + generationID_1879581046 + + + ./mig_39/user_design/sim/mcb_traffic_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x125A1D59 + generationID_1879581046 + + + ./mig_39/user_design/sim/memc3_tb_top.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xDB511AFE + generationID_1879581046 + + + ./mig_39/user_design/sim/mig_39.prj + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0xF564E483 + generationID_1879581046 + + + ./mig_39/user_design/sim/rd_data_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x50A90B14 + generationID_1879581046 + + + ./mig_39/user_design/sim/read_data_path.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xDFA5DAF7 + generationID_1879581046 + + + ./mig_39/user_design/sim/read_posted_fifo.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xBC61DAC4 + generationID_1879581046 + + + ./mig_39/user_design/sim/readme.txt + ignore + txt + Thu Dec 20 07:13:08 GMT 2012 + 0xFF44EBCB + generationID_1879581046 + + + ./mig_39/user_design/sim/sim.do + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x71356E79 + generationID_1879581046 + + + ./mig_39/user_design/sim/sim_tb_top.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x8BA01B0F + generationID_1879581046 + + + ./mig_39/user_design/sim/sp6_data_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0xA9170C59 + generationID_1879581046 + + + ./mig_39/user_design/sim/tg_status.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x7B717096 + generationID_1879581046 + + + ./mig_39/user_design/sim/v6_data_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x24F3E550 + generationID_1879581046 + + + ./mig_39/user_design/sim/wr_data_gen.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x91BCA941 + generationID_1879581046 + + + ./mig_39/user_design/sim/write_data_path.vhd + ignore + vhdl + Thu Dec 20 07:13:08 GMT 2012 + 0x391A16CE + generationID_1879581046 + + + ./mig_39/user_design/synth/mem_interface_top_synp.sdc + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x612B8821 + generationID_1879581046 + + + ./mig_39/user_design/synth/mig_39.lso + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0xEEDE3797 + generationID_1879581046 + + + ./mig_39/user_design/synth/mig_39.prj + ignore + unknown + Thu Dec 20 07:13:08 GMT 2012 + 0x1521D75B + generationID_1879581046 + + + ./mig_39/user_design/synth/script_synp.tcl + ignore + tcl + Thu Dec 20 07:13:08 GMT 2012 + 0x09885FC9 + generationID_1879581046 + + + ./mig_39.vho + vho + Thu Dec 20 07:13:08 GMT 2012 + 0x93613DF1 + generationID_1879581046 + + + ./mig_39_readme.txt + ignore + txt + Thu Dec 20 07:13:08 GMT 2012 + 0x4D6824E7 + generationID_1879581046 + + + ./mig_39_xmdf.tcl + ignore + tcl + Thu Dec 20 07:13:08 GMT 2012 + 0x87D169C0 + generationID_1879581046 + + + + instantiation_template_generator + + + asy_generator + + + xmdf_generator + + + ise_generator + + ./mig_39.gise + ignore + gise + Thu Dec 20 07:13:16 GMT 2012 + 0x8CB3D14A + generationID_1879581046 + + + ./mig_39.xise + ignore + xise + Thu Dec 20 07:13:16 GMT 2012 + 0x2280B14C + generationID_1879581046 + + + + deliver_readme_generator + + + flist_generator + + ./mig_39_flist.txt + ignore + txtFlist + txt + Thu Dec 20 07:13:16 GMT 2012 + 0xE0B321B8 + generationID_1879581046 + + + + + + + + + + coregen + ./ + ./tmp/ + ./tmp/_cg/ + + + xc6slx45t + spartan6 + fgg484 + -3 + + + BusFormatParenNotRipped + VHDL + true + Synplicity + false + false + false + Ngc + false + + + Behavioral + VHDL + false + + + + + diff --git a/designs/leon3-xilinx-sp605/mig39/coregen.cgp b/designs/leon3-xilinx-sp605/mig39/coregen.cgp new file mode 100644 index 00000000..8aed4774 --- /dev/null +++ b/designs/leon3-xilinx-sp605/mig39/coregen.cgp @@ -0,0 +1,22 @@ +# Date: Thu Dec 29 23:13:08 2011 + +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatParenNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6slx45t +SET devicefamily = spartan6 +SET flowvendor = Synplicity +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fgg484 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = false +SET vhdlsim = true +SET workingdirectory = ./tmp/ + +# CRC: 1691a6bd diff --git a/designs/leon3-xilinx-sp605/mig39/mig.prj b/designs/leon3-xilinx-sp605/mig39/mig.prj new file mode 100644 index 00000000..ae2634b6 --- /dev/null +++ b/designs/leon3-xilinx-sp605/mig39/mig.prj @@ -0,0 +1,63 @@ + + + mig_39 + xc6slx45t-fgg484/-3 + 3.92 + + DDR3_SDRAM/Components/MT41J64M16XX-187E + 3000 + 0 + 1 + FALSE + + 13 + 10 + 3 + + + + 8(00) + 6 + Enable + RZQ/6 + RZQ/4 + 0 + Disabled + Disabled + Full Array + 5 + Enabled + Normal + NATIVE,NATIVE,NATIVE,NATIVE,NATIVE,NATIVE + Class II + Class II + CALIB_TERM + 25 Ohms + + + + Differential + 1 + Disable + Differential + Two 32-bit bi-directional and four 32-bit unidirectional ports + K7 + M7 + Port0,Port2 + Bi-directional,none,Read,none,none,none + ROW_BANK_COLUMN + Round Robin + 02 + 20 + 02 + 20 + 02 + 20 + 02 + 20 + 02 + 20 + 02 + 20 + + diff --git a/designs/leon3-xilinx-sp605/mig39/mig.xco b/designs/leon3-xilinx-sp605/mig39/mig.xco new file mode 100644 index 00000000..66b4bf63 --- /dev/null +++ b/designs/leon3-xilinx-sp605/mig39/mig.xco @@ -0,0 +1,46 @@ +############################################################## +# +# Xilinx Core Generator version 13.2 +# Date: Thu Dec 29 23:13:02 2011 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# Generated from component: xilinx.com:ip:mig:3.8 +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatParenNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6slx45t +SET devicefamily = spartan6 +SET flowvendor = Synplicity +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fgg484 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = false +SET vhdlsim = true +# END Project Options +# BEGIN Select +SELECT MIG_Virtex-6_and_Spartan-6 family Xilinx,_Inc. 3.92 +# END Select +# BEGIN Parameters +CSET component_name=mig_39 +CSET xml_input_file=./mig.prj +# END Parameters +GENERATE +# CRC: 584fbaf1 diff --git a/designs/leon3-xilinx-sp605/mig39/mig_39.xco b/designs/leon3-xilinx-sp605/mig39/mig_39.xco new file mode 100644 index 00000000..f10d860a --- /dev/null +++ b/designs/leon3-xilinx-sp605/mig39/mig_39.xco @@ -0,0 +1,49 @@ +############################################################## +# +# Xilinx Core Generator version 14.3 +# Date: Thu Dec 20 07:13:07 2012 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# Generated from component: xilinx.com:ip:mig:3.92 +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatParenNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6slx45t +SET devicefamily = spartan6 +SET flowvendor = Synplicity +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = fgg484 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = false +SET vhdlsim = true +# END Project Options +# BEGIN Select +SELECT MIG_Virtex-6_and_Spartan-6 family Xilinx,_Inc. 3.92 +# END Select +# BEGIN Parameters +CSET component_name=mig_39 +CSET xml_input_file=./mig.prj +# END Parameters +# BEGIN Extra information +MISC pkg_timestamp=2012-10-13T03:35:42Z +# END Extra information +GENERATE +# CRC: 68048b25 diff --git a/designs/leon3-xilinx-sp605/mig_patch.txt b/designs/leon3-xilinx-sp605/mig_patch.txt new file mode 100644 index 00000000..2844bc07 --- /dev/null +++ b/designs/leon3-xilinx-sp605/mig_patch.txt @@ -0,0 +1,62 @@ +--- mig39/mig_39/user_design/rtl/mig_39.vhd 2012-12-20 08:13:08.000000000 +0100 ++++ mig39_copy/mig_39/user_design/rtl/mig_39.vhd 2012-12-20 08:19:50.487825838 +0100 +@@ -65,7 +65,7 @@ + --***************************************************************************** + library ieee; + use ieee.std_logic_1164.all; +-entity mig_39 is ++entity mig_38 is + generic + ( + C3_P0_MASK_SIZE : integer := 4; +@@ -165,11 +165,13 @@ + c3_p2_rd_empty : out std_logic; + c3_p2_rd_count : out std_logic_vector(6 downto 0); + c3_p2_rd_overflow : out std_logic; +- c3_p2_rd_error : out std_logic ++ c3_p2_rd_error : out std_logic; ++ clk_125 : out std_logic; ++ clk_50 : out std_logic + ); +-end mig_39; ++end mig_38; + +-architecture arc of mig_39 is ++architecture arc of mig_38 is + + + component memc3_infrastructure is +@@ -198,8 +200,9 @@ + pll_ce_0 : out std_logic; + pll_ce_90 : out std_logic; + pll_lock : out std_logic; +- mcb_drp_clk : out std_logic +- ++ mcb_drp_clk : out std_logic; ++ clk_125 : out std_logic; ++ clk_50 : out std_logic + ); + end component; + +@@ -363,8 +366,8 @@ + constant C3_CLKOUT1_DIVIDE : integer := 1; + constant C3_CLKOUT2_DIVIDE : integer := 16; + constant C3_CLKOUT3_DIVIDE : integer := 8; +- constant C3_CLKFBOUT_MULT : integer := 2; +- constant C3_DIVCLK_DIVIDE : integer := 1; ++ constant C3_CLKFBOUT_MULT : integer := 2*5; ++ constant C3_DIVCLK_DIVIDE : integer := 1*3; + constant C3_INCLK_PERIOD : integer := ((C3_MEMCLK_PERIOD * C3_CLKFBOUT_MULT) / (C3_DIVCLK_DIVIDE * C3_CLKOUT0_DIVIDE * 2)); + constant C3_ARB_NUM_TIME_SLOTS : integer := 12; + constant C3_ARB_TIME_SLOT_0 : bit_vector(5 downto 0) := o"02"; +@@ -487,7 +490,9 @@ + pll_ce_0 => c3_pll_ce_0, + pll_ce_90 => c3_pll_ce_90, + pll_lock => c3_pll_lock, +- mcb_drp_clk => c3_mcb_drp_clk ++ mcb_drp_clk => c3_mcb_drp_clk, ++ clk_125 => clk_125, ++ clk_50 => clk_50 + ); + + diff --git a/designs/leon3-xilinx-sp605/res.txt b/designs/leon3-xilinx-sp605/res.txt deleted file mode 100644 index 4498c266..00000000 --- a/designs/leon3-xilinx-sp605/res.txt +++ /dev/null @@ -1,13 +0,0 @@ - -SPARTAN6 50 MHz, MIG DDR2, 2x8 + 2x4 cache, GRFPU - - LEON3 LEON3FTV2 -Dhrystone 78.4 78.4 -Whetstone DP 27.7 27.7 -gzip 43.98 s 41.38 s -bzip2 248.22 s 200.10 s -176.gcc 208.62 s 180.48 s -coremark 100.12 i/s 100.12 i/s -aocs_v8 12388.7 i/s 12388.7 i/s -basicmath_large 13245.0 i/s 13245.0 i/s -linpack_unroll_dp_v8 3265 KFLOPS 3563 KFLOPS diff --git a/designs/leon3-xilinx-sp605/svga2ch7301c.vhd b/designs/leon3-xilinx-sp605/svga2ch7301c.vhd index 8f95178b..4f9a1eac 100644 --- a/designs/leon3-xilinx-sp605/svga2ch7301c.vhd +++ b/designs/leon3-xilinx-sp605/svga2ch7301c.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-sp605/testbench.vhd b/designs/leon3-xilinx-sp605/testbench.vhd index 4cee7b62..d61322df 100644 --- a/designs/leon3-xilinx-sp605/testbench.vhd +++ b/designs/leon3-xilinx-sp605/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-sp605/tkconfig.h b/designs/leon3-xilinx-sp605/tkconfig.h index 2908697e..69ef1cf5 100644 --- a/designs/leon3-xilinx-sp605/tkconfig.h +++ b/designs/leon3-xilinx-sp605/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -778,6 +800,10 @@ #endif +#ifndef CONFIG_MIG_DDR3 +#define CONFIG_MIG_DDR3 0 +#endif + #ifndef CONFIG_MIG_DDR2 #define CONFIG_MIG_DDR2 0 #endif @@ -1009,6 +1035,10 @@ #ifndef CONFIG_SPIMCTRL_PWRUPCNT #define CONFIG_SPIMCTRL_PWRUPCNT 0 #endif + +#ifndef CONFIG_SPIMCTRL_OFFSET +#define CONFIG_SPIMCTRL_OFFSET 0 +#endif #ifndef CONFIG_SPICTRL_ENABLE #define CONFIG_SPICTRL_ENABLE 0 #endif diff --git a/designs/leon3-xilinx-sp605/vga_clkgen.vhd b/designs/leon3-xilinx-sp605/vga_clkgen.vhd index 7277ec42..b1ee2d14 100644 --- a/designs/leon3-xilinx-sp605/vga_clkgen.vhd +++ b/designs/leon3-xilinx-sp605/vga_clkgen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-ge-hpe-mini/.config b/designs/leon3-xilinx-vc707/.config old mode 100755 new mode 100644 similarity index 72% rename from designs/leon3-ge-hpe-mini/.config rename to designs/leon3-xilinx-vc707/.config index ab06a3f8..56498bc6 --- a/designs/leon3-ge-hpe-mini/.config +++ b/designs/leon3-xilinx-vc707/.config @@ -1,6 +1,8 @@ # # Automatically generated make config: don't edit # +CONFIG_LEON3FT_PRESENT=y +CONFIG_HAS_SHARED_GRFPU=y # # Synthesis @@ -10,7 +12,7 @@ # CONFIG_SYN_STRATIXII is not set # CONFIG_SYN_STRATIXIII is not set # CONFIG_SYN_CYCLONEIII is not set -CONFIG_SYN_ALTERA=y +# CONFIG_SYN_ALTERA is not set # CONFIG_SYN_AXCEL is not set # CONFIG_SYN_AXDSP is not set # CONFIG_SYN_PROASIC is not set @@ -40,6 +42,7 @@ CONFIG_SYN_ALTERA=y # CONFIG_SYN_TM65GPLUS is not set # CONFIG_SYN_TSMC90 is not set # CONFIG_SYN_UMC is not set +# CONFIG_SYN_KINTEX7 is not set # CONFIG_SYN_SPARTAN2 is not set # CONFIG_SYN_SPARTAN3 is not set # CONFIG_SYN_SPARTAN3E is not set @@ -50,8 +53,9 @@ CONFIG_SYN_ALTERA=y # CONFIG_SYN_VIRTEX4 is not set # CONFIG_SYN_VIRTEX5 is not set # CONFIG_SYN_VIRTEX6 is not set +CONFIG_SYN_VIRTEX7=y # CONFIG_SYN_INFER_RAM is not set -CONFIG_SYN_INFER_PADS=y +# CONFIG_SYN_INFER_PADS is not set # CONFIG_SYN_NO_ASYNC is not set # CONFIG_SYN_SCAN is not set @@ -61,7 +65,7 @@ CONFIG_SYN_INFER_PADS=y # CONFIG_CLK_INFERRED is not set # CONFIG_CLK_HCLKBUF is not set # CONFIG_CLK_UT130HBD is not set -CONFIG_CLK_ALTDLL=y +# CONFIG_CLK_ALTDLL is not set # CONFIG_CLK_LATDLL is not set # CONFIG_CLK_PRO3PLL is not set # CONFIG_CLK_PRO3EPLL is not set @@ -69,36 +73,40 @@ CONFIG_CLK_ALTDLL=y # CONFIG_CLK_FUSPLL is not set # CONFIG_CLK_LIB18T is not set # CONFIG_CLK_RHUMC is not set +CONFIG_CLK_CLKPLLE2=y # CONFIG_CLK_CLKDLL is not set # CONFIG_CLK_DCM is not set CONFIG_CLK_MUL=4 -CONFIG_CLK_DIV=2 +CONFIG_CLK_DIV=8 # CONFIG_PCI_SYSCLK is not set -CONFIG_LEON3=y -CONFIG_PROC_NUM=1 # # Processor # +CONFIG_LEON3=y +CONFIG_PROC_NUM=1 +# CONFIG_LEON3_MIN is not set +# CONFIG_LEON3_GP is not set +# CONFIG_LEON3_HP is not set +CONFIG_LEON3_CUSTOM=y # # Integer unit # CONFIG_IU_NWINDOWS=8 CONFIG_IU_V8MULDIV=y -# CONFIG_IU_MUL_LATENCY_2 is not set +CONFIG_IU_MUL_LATENCY_2=y # CONFIG_IU_MUL_LATENCY_4 is not set -CONFIG_IU_MUL_LATENCY_5=y -# CONFIG_IU_MUL_MAC is not set +# CONFIG_IU_MUL_LATENCY_5 is not set CONFIG_IU_MUL_INFERRED=y # CONFIG_IU_MUL_MODGEN is not set # CONFIG_IU_MUL_TECHSPEC is not set # CONFIG_IU_MUL_DW is not set -# CONFIG_IU_BP is not set +CONFIG_IU_BP=y # CONFIG_IU_SVT is not set # CONFIG_NOTAG is not set CONFIG_IU_LDELAY=1 -CONFIG_IU_WATCHPOINTS=0 +CONFIG_IU_WATCHPOINTS=2 # CONFIG_PWD is not set CONFIG_IU_RSTADDR=00000 @@ -111,14 +119,14 @@ CONFIG_IU_RSTADDR=00000 # Cache system # CONFIG_ICACHE_ENABLE=y -CONFIG_ICACHE_ASSO1=y +# CONFIG_ICACHE_ASSO1 is not set # CONFIG_ICACHE_ASSO2 is not set # CONFIG_ICACHE_ASSO3 is not set -# CONFIG_ICACHE_ASSO4 is not set +CONFIG_ICACHE_ASSO4=y # CONFIG_ICACHE_SZ1 is not set # CONFIG_ICACHE_SZ2 is not set -CONFIG_ICACHE_SZ4=y -# CONFIG_ICACHE_SZ8 is not set +# CONFIG_ICACHE_SZ4 is not set +CONFIG_ICACHE_SZ8=y # CONFIG_ICACHE_SZ16 is not set # CONFIG_ICACHE_SZ32 is not set # CONFIG_ICACHE_SZ64 is not set @@ -126,15 +134,20 @@ CONFIG_ICACHE_SZ4=y # CONFIG_ICACHE_SZ256 is not set # CONFIG_ICACHE_LZ16 is not set CONFIG_ICACHE_LZ32=y +# CONFIG_ICACHE_ALGORND is not set +CONFIG_ICACHE_ALGODIR=y +# CONFIG_ICACHE_ALGOLRR is not set +# CONFIG_ICACHE_ALGOLRU is not set +CONFIG_ICACHE_LOCK=y CONFIG_DCACHE_ENABLE=y -CONFIG_DCACHE_ASSO1=y +# CONFIG_DCACHE_ASSO1 is not set # CONFIG_DCACHE_ASSO2 is not set # CONFIG_DCACHE_ASSO3 is not set -# CONFIG_DCACHE_ASSO4 is not set +CONFIG_DCACHE_ASSO4=y # CONFIG_DCACHE_SZ1 is not set # CONFIG_DCACHE_SZ2 is not set -CONFIG_DCACHE_SZ4=y -# CONFIG_DCACHE_SZ8 is not set +# CONFIG_DCACHE_SZ4 is not set +CONFIG_DCACHE_SZ8=y # CONFIG_DCACHE_SZ16 is not set # CONFIG_DCACHE_SZ32 is not set # CONFIG_DCACHE_SZ64 is not set @@ -142,9 +155,14 @@ CONFIG_DCACHE_SZ4=y # CONFIG_DCACHE_SZ256 is not set # CONFIG_DCACHE_LZ16 is not set CONFIG_DCACHE_LZ32=y +# CONFIG_DCACHE_ALGORND is not set +CONFIG_DCACHE_ALGODIR=y +# CONFIG_DCACHE_ALGOLRR is not set +# CONFIG_DCACHE_ALGOLRU is not set +CONFIG_DCACHE_LOCK=y CONFIG_DCACHE_SNOOP=y -# CONFIG_DCACHE_SNOOP_FAST is not set -# CONFIG_DCACHE_SNOOP_SEPTAG is not set +CONFIG_DCACHE_SNOOP_FAST=y +CONFIG_DCACHE_SNOOP_SEPTAG=y CONFIG_CACHE_FIXED=0 # @@ -160,12 +178,14 @@ CONFIG_MMU_REPARRAY=y CONFIG_MMU_I8=y # CONFIG_MMU_I16 is not set # CONFIG_MMU_I32 is not set +# CONFIG_MMU_I64 is not set # CONFIG_MMU_D2 is not set # CONFIG_MMU_D4 is not set CONFIG_MMU_D8=y # CONFIG_MMU_D16 is not set # CONFIG_MMU_D32 is not set -# CONFIG_MMU_FASTWB is not set +# CONFIG_MMU_D64 is not set +CONFIG_MMU_FASTWB=y CONFIG_MMU_PAGE_4K=y # CONFIG_MMU_PAGE_8K is not set # CONFIG_MMU_PAGE_16K is not set @@ -177,15 +197,15 @@ CONFIG_MMU_PAGE_4K=y # CONFIG_DSU_ENABLE=y CONFIG_DSU_ITRACE=y -CONFIG_DSU_ITRACESZ1=y +# CONFIG_DSU_ITRACESZ1 is not set # CONFIG_DSU_ITRACESZ2 is not set -# CONFIG_DSU_ITRACESZ4 is not set +CONFIG_DSU_ITRACESZ4=y # CONFIG_DSU_ITRACESZ8 is not set # CONFIG_DSU_ITRACESZ16 is not set CONFIG_DSU_ATRACE=y -CONFIG_DSU_ATRACESZ1=y +# CONFIG_DSU_ATRACESZ1 is not set # CONFIG_DSU_ATRACESZ2 is not set -# CONFIG_DSU_ATRACESZ4 is not set +CONFIG_DSU_ATRACESZ4=y # CONFIG_DSU_ATRACESZ8 is not set # CONFIG_DSU_ATRACESZ16 is not set @@ -198,7 +218,7 @@ CONFIG_DSU_ATRACESZ1=y # VHDL debug settings # # CONFIG_IU_DISAS is not set -# CONFIG_DEBUG_PC32 is not set +CONFIG_DEBUG_PC32=y # # AMBA configuration @@ -206,7 +226,7 @@ CONFIG_DSU_ATRACESZ1=y CONFIG_AHB_DEFMST=0 CONFIG_AHB_RROBIN=y # CONFIG_AHB_SPLIT is not set -# CONFIG_AHB_FPNPEN is not set +CONFIG_AHB_FPNPEN=y CONFIG_AHB_IOADDR=FFF CONFIG_APB_HADDR=800 # CONFIG_AHB_MON is not set @@ -217,59 +237,53 @@ CONFIG_APB_HADDR=800 # CONFIG_DSU_UART=y CONFIG_DSU_JTAG=y -CONFIG_DSU_ETH=y -# CONFIG_DSU_ETHSZ1 is not set -CONFIG_DSU_ETHSZ2=y -# CONFIG_DSU_ETHSZ4 is not set -# CONFIG_DSU_ETHSZ8 is not set -# CONFIG_DSU_ETHSZ16 is not set -CONFIG_DSU_IPMSB=C0A8 -CONFIG_DSU_IPLSB=0033 -CONFIG_DSU_ETHMSB=020000 -CONFIG_DSU_ETHLSB=00001F -# CONFIG_DSU_ETH_PROG is not set -# CONFIG_DSU_ETH_DIS is not set # # Peripherals # # -# Memory controllers +# Memory controller # -# -# 8/32-bit PROM/SRAM controller -# -# CONFIG_SRCTRL is not set - # # Leon2 memory controller # CONFIG_MCTRL_LEON2=y -# CONFIG_MCTRL_8BIT is not set -# CONFIG_MCTRL_16BIT is not set +CONFIG_MCTRL_8BIT=y +CONFIG_MCTRL_16BIT=y # CONFIG_MCTRL_5CS is not set -CONFIG_MCTRL_SDRAM=y -# CONFIG_MCTRL_SDRAM_SEPBUS is not set -# CONFIG_MCTRL_PAGE is not set +# CONFIG_MCTRL_SDRAM is not set + +# +# MIG memory controller +# +# CONFIG_MIG_DDR2 is not set + +# +# MIG Series 7 memory controller +# +CONFIG_MIG_SERIES7=y +# CONFIG_AHBSTAT_ENABLE is not set # # On-chip RAM/ROM # # CONFIG_AHBROM_ENABLE is not set -# CONFIG_AHBRAM_ENABLE is not set +CONFIG_AHBRAM_ENABLE=y +# CONFIG_AHBRAM_SZ1 is not set +# CONFIG_AHBRAM_SZ2 is not set +CONFIG_AHBRAM_SZ4=y +# CONFIG_AHBRAM_SZ8 is not set +# CONFIG_AHBRAM_SZ16 is not set +# CONFIG_AHBRAM_SZ32 is not set +# CONFIG_AHBRAM_SZ64 is not set +CONFIG_AHBRAM_START=A00 # # Ethernet # -CONFIG_GRETH_ENABLE=y -# CONFIG_GRETH_GIGA is not set -# CONFIG_GRETH_FIFO4 is not set -# CONFIG_GRETH_FIFO8 is not set -# CONFIG_GRETH_FIFO16 is not set -CONFIG_GRETH_FIFO32=y -# CONFIG_GRETH_FIFO64 is not set +# CONFIG_GRETH_ENABLE is not set # # UARTs, timers and irq control @@ -277,10 +291,10 @@ CONFIG_GRETH_FIFO32=y CONFIG_UART1_ENABLE=y # CONFIG_UA1_FIFO1 is not set # CONFIG_UA1_FIFO2 is not set -CONFIG_UA1_FIFO4=y +# CONFIG_UA1_FIFO4 is not set # CONFIG_UA1_FIFO8 is not set # CONFIG_UA1_FIFO16 is not set -# CONFIG_UA1_FIFO32 is not set +CONFIG_UA1_FIFO32=y CONFIG_IRQ3_ENABLE=y # CONFIG_IRQ3_SEC is not set CONFIG_GPT_ENABLE=y @@ -290,11 +304,10 @@ CONFIG_GPT_TW=32 CONFIG_GPT_IRQ=8 CONFIG_GPT_SEPIRQ=y # CONFIG_GPT_WDOGEN is not set - -# -# ATA Controller -# -# CONFIG_ATA_ENABLE is not set +CONFIG_GRGPIO_ENABLE=y +CONFIG_GRGPIO_WIDTH=8 +CONFIG_GRGPIO_IMASK=0000 +CONFIG_I2C_ENABLE=y # # Keybord and VGA interface @@ -304,10 +317,18 @@ CONFIG_GPT_SEPIRQ=y # CONFIG_SVGA_ENABLE is not set # -# Gleichmann Options +# SPI +# + +# +# SPI memory controller +# +# CONFIG_SPIMCTRL is not set + +# +# SPI controller(s) # -CONFIG_AHB2HPI_ENABLE=y -CONFIG_DAC_AHB_ENABLE=y +# CONFIG_SPICTRL_ENABLE is not set # # VHDL Debugging diff --git a/designs/leon3-xilinx-vc707/Makefile b/designs/leon3-xilinx-vc707/Makefile new file mode 100644 index 00000000..9616eb38 --- /dev/null +++ b/designs/leon3-xilinx-vc707/Makefile @@ -0,0 +1,67 @@ +include .config + +GRLIB=../.. +TOP=leon3mp +BOARD=xilinx-vc707-xc7vx485t +DESIGN=leon3-xilinx-vc707 + +include $(GRLIB)/boards/$(BOARD)/Makefile.inc + +DEVICE=$(PART)$(PACKAGE)-$(SPEED) +XDC=$(GRLIB)/boards/$(BOARD)/$(BOARD).xdc + +VHDLSYNFILES= \ + config.vhd ahbrom.vhd leon3mp.vhd ./ddr_dummy.vhd +VHDLSIMFILES=testbench.vhd +SIMTOP=testbench +BITGEN=$(GRLIB)/boards/$(BOARD)/default.ut +CLEAN=soft-clean +VCOMOPT=-explicit +ifeq ($(CONFIG_MIG_SERIES7),y) +VLOGOPT= +define+1Gb +define+sg125 +define+x8 +VSIMOPT= -gUSE_MIG_INTERFACE_MODEL=true -gdisas=1 -gDEBUG=0 -i -do preload_ddr3_dimm.do -t ps -novopt +notimingchecks -L secureip_ver -L xilinxcorelib_ver -L unisims_ver glbl $(SIMTOP) +else +VSIMOPT= -gdisas=1 -i -t ps $(SIMTOP) +endif +TECHLIBS = secureip unisim +EXTRA_SOFT = gen_hex_dim + +LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ + tmtc openchip ihp usbhc spw gsi cypress hynix \ + spansion leon4 leon4v0 secureip +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci ambatest can \ + usb grusbhc spacewire ascs slink spi hcan \ + leon4 leon4v0 l2cache pwm gr1553b iommu ac97 secureip +FILESKIP = grcan.vhd ddr2.v mobile_ddr.v + +include $(GRLIB)/bin/Makefile +include $(GRLIB)/software/leon3/Makefile + +################## project specific targets ########################## + +all: help-local + +help-local: help + @echo + @echo " design specific targets:" + @echo " (Only needed to generate and compile MIG Series7)" + @echo + @echo " make compile_xilinx_verilog_lib : compile xilinx library" + @echo " make clean_xilinx_verilog_lib : remove xilinx library" + @echo " make mig_series7 : create xilinx memory controller using coregen." + @echo " make mig_series7_clean : remove generated memory controller" + @echo + @echo " ================================================================" + @echo " Quick start guide for simulation of systest.c" + @echo + @echo " 1. Setup search paths for Xilinx, GCC and Modelsim " + @echo " 2. make vsim" + @echo " 3. make mig_series7" + @echo " 4. make soft" + @echo " 5. make vsim-launch" + @echo + @echo " Please note that this quick start guide will compile and simulate" + @echo " a preconfigured version of the leon3 processor system." + @echo " For customizing the leon3 susbsystem run make 'xconfig'" + @echo " ================================================================" + @echo diff --git a/designs/leon3-xilinx-vc707/README.txt b/designs/leon3-xilinx-vc707/README.txt new file mode 100644 index 00000000..4a2b1e36 --- /dev/null +++ b/designs/leon3-xilinx-vc707/README.txt @@ -0,0 +1,224 @@ +This leon3 design is tailored to the Xilinx Virtex-7 VC707 board + +http://www.xilinx.com/vc707 + +Simulation and synthesis +------------------------ + +The design uses the Xilinx MIG memory interface with an AHB-2.0 +interface. The MIG source code cannot be distributed due to the +prohibitive Xilinx license, so the MIG must be re-generated with +coregen before simulation and synthesis can be done. + +To generate the MIG and install the Xilinx unisim simulation +library, do as follows: + + make vsim + make mig_series7 + +To simulate and run systest.c on the Leon design using the memory +controller from Xilinx use the make targets: + + make soft + make vsim-launch + +With the generic USE_MIG_INTERFACE_MODEL can the user select to use the real +XILINX memory contoller + MICRON memory model or a simplified model. For speed +select the simplified model by setting the generic USE_MIG_INTERFACE_MODEL to TRUE. + +Synthesis will ONLY work with Vivado 2012.02 installed or newer, and +the XILINX variable properly set in the shell. To synthesize the design, do + + make vivado + +and then + + make vivado-prog-fpga + + or use xilinx programming tool + + impact -b vivado/leon3-xilinx-vc707/leon3-xilinx-vc707.runs/impl_1/leon3mp.bit + +to program the FPGA. + +The MIG can be disabled either by deselecting the MIG controller in 'xconfig' or +manually editing the config.vhd file. When no MIG is present in the system normal +GRLIB flow can be used and no extra compile steps are needed. Also when when no +MIG is present it is possible to control and set the system frequency via xconfig. +Note that the system frequency can be modified via Xilinx Coregen when the +MIG is present. + +Compiling and launching modelsim when no memory controller is present: + + make vsim + make vsim-launch + +Simulation options +------------------ + +All options are set either by editing the testbench or specify/modify the generic +default value when launching the simulator. For Modelsim use the option "-g" i.e. +to enable processor disassembly to console launch modelsim with the option: "-gdisas=1" + +USE_MIG_INTERFACE_MODEL - Use MIG simulation model for faster simulation run time + +disas - Enable processor disassembly to console + +DEBUG - Enable extra debug information when using Micron DDR3 models + +Design specifics +---------------- + +* Synthesis should be done using Vivado 2012.02 or newer + +* The DDR3 controller is implemented with Xilinx MIG Series7 1.6 and + runs of the 200 MHz clock. The DDR3 memory runs at 400 MHz + (DDR3-800). grmon-2.0.30-74 or later is needed to detect the + DDR3 memory. + +* The AHB clock is generated by the MMCM module in the DDR3 + controller, and can be controlled via Coregen. When the + MIG DDR3 controller isn't present the AHB clock is generated + from CLKGEN, and can be controlled via xconfig + +* System reset is mapped to the CPU RESET button + +* DSU break is mapped to GPIO east button + +* LED 0 indicates processor in debug mode + +* LED 1 indicates processor in error mode, execution halted + +* LED 2 indicates DDR3 PHY initialization done (Only valid when MIG is present) + +* LED 3 indicates internal PLL has locked (Only valid when MIG isn't present) + +* 16-bit flash prom can be read at address 0. It can be programmed + with GRMON version 2.0.30-74 or later. + +* The system can be simulated with xilinxs memory interface in normal or fast mode. + For normal mode i.e. with the MIG IP and Memory models from MICRON all simulaion libraries + needs to be installed and compiled with the following command: Please, note the MIG Series7 + only have to be generated if it is going to be used in the system. + + make vsim + make mig_series7 + + Then rebuild the scripts and simulation model: + + make distclean vsim + + Modelsim v10.1 or newer is required and simulate Xilinx memory + controller for Series 7. + + The normal leon3 test bench can be executed as the DDR3 model + is pre-loading with the systest. A model of the DDR3 interface + exist and can be used for faster simulations and software debug + +* The application UART1 is connected to the USB/RS232 connector + +* The JTAG DSU interface is enabled and accesible via the JTAG port. + Start grmon with -xilusb to connect. + + +* Output from GRMON is: + + grmon -xilusb + + GRMON2 LEON debug monitor v2.0.30-149-ga91ee12 internal version + + Copyright (C) 2012 Aeroflex Gaisler - All rights reserved. + For latest updates, go to http://www.gaisler.com/ + Comments or bug-reports to support@gaisler.com + + +Parsing -xilusb +Xilusb: Cable type/rev : 0x3 + JTAG chain (1): xc7vx485t + +Commands missing help: + debug + + GRLIB build version: 4118 + Detected frequency: 100 MHz + + Component Vendor + LEON3 SPARC V8 Processor Aeroflex Gaisler + AHB Debug UART Aeroflex Gaisler + JTAG Debug Link Aeroflex Gaisler + LEON2 Memory Controller European Space Agency + AHB/APB Bridge Aeroflex Gaisler + LEON3 Debug Support Unit Aeroflex Gaisler + Single-port AHB SRAM module Aeroflex Gaisler + Unknown device Aeroflex Gaisler + Single-port AHB SRAM module Aeroflex Gaisler + Generic UART Aeroflex Gaisler + Multi-processor Interrupt Ctrl. Aeroflex Gaisler + Modular Timer Unit Aeroflex Gaisler + AMBA Wrapper for OC I2C-master Aeroflex Gaisler + General Purpose I/O port Aeroflex Gaisler + + Use command 'info sys' to print a detailed report of attached cores + +grmon2> info sys + cpu0 Aeroflex Gaisler LEON3 SPARC V8 Processor + AHB Master 0 + ahbuart0 Aeroflex Gaisler AHB Debug UART + AHB Master 1 + APB: 80000700 - 80000800 + Baudrate 115200, AHB frequency 100.00 MHz + ahbjtag0 Aeroflex Gaisler JTAG Debug Link + AHB Master 2 + mctrl0 European Space Agency LEON2 Memory Controller + AHB: 00000000 - 20000000 + APB: 80000000 - 80000100 + 16-bit prom @ 0x00000000 + apbmst0 Aeroflex Gaisler AHB/APB Bridge + AHB: 80000000 - 80100000 + dsu0 Aeroflex Gaisler LEON3 Debug Support Unit + AHB: 90000000 - A0000000 + AHB trace: 256 lines, 32-bit bus + CPU0: win 8, hwbp 2, itrace 256, V8 mul/div, srmmu, lddel 1 + stack pointer 0x20000ff0 + icache 4 * 8 kB, 32 B/line dir + dcache 4 * 8 kB, 32 B/line dir + ahbram0 Aeroflex Gaisler Single-port AHB SRAM module + AHB: 20000000 - 20100000 + 32-bit static ram: 4 kB @ 0x20000000 + adev7 Aeroflex Gaisler Unknown device + AHB: 40000000 - 48000000 + APB: 80000400 - 80000500 + ahbram1 Aeroflex Gaisler Single-port AHB SRAM module + AHB: A0000000 - A0100000 + 32-bit static ram: 4 kB @ 0xa0000000 + uart0 Aeroflex Gaisler Generic UART + APB: 80000100 - 80000200 + IRQ: 2 + Baudrate 38343 + irqmp0 Aeroflex Gaisler Multi-processor Interrupt Ctrl. + APB: 80000200 - 80000300 + gptimer0 Aeroflex Gaisler Modular Timer Unit + APB: 80000300 - 80000400 + IRQ: 8 + 8-bit scalar, 2 * 32-bit timers, divisor 100 + i2cmst0 Aeroflex Gaisler AMBA Wrapper for OC I2C-master + APB: 80000800 - 80000900 + IRQ: 11 + gpio0 Aeroflex Gaisler General Purpose I/O port + APB: 80000A00 - 80000B00 + +grmon2> load systest.exe + 40000000 .text 112.2kB / 112.2kB [===============>] 100% + 40020000 .data 163.1kB / 163.1kB [===============>] 100% + Total size: 275.28kB (1.19Mbit/s) + Entry point 0x40000000 + Image /home/ringhage/grlib_git/designs/leon3-xilinx-vc707/systest.exe loaded + +grmon2> verify systest.exe + 40000000 .text 112.2kB / 112.2kB [===============>] 100% + 40020000 .data 163.1kB / 163.1kB [===============>] 100% + Total size: 275.28kB (85.23kbit/s) + Entry point 0x40000000 + Image of /home/ringhage/grlib_git/designs/leon3-xilinx-vc707/systest.exe verified without errors + +grmon2> diff --git a/designs/leon3-xilinx-vc707/ahb2mig.vhd b/designs/leon3-xilinx-vc707/ahb2mig.vhd new file mode 100644 index 00000000..bde8c45b --- /dev/null +++ b/designs/leon3-xilinx-vc707/ahb2mig.vhd @@ -0,0 +1,708 @@ +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Entity: ahb2mig +-- File: ahb2mig.vhd +-- Author: Fredrik Ringhage - Aeroflex Gaisler AB +-- +-- This is a AHB-2.0 interface for the Xilinx Virtex-7 MIG. +-- +------------------------------------------------------------------------------- + +library ieee,work; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library grlib; +use grlib.amba.all; +use grlib.stdlib.all; +use grlib.devices.all; + +entity ahb2mig is + generic( + hindex : integer := 0; + haddr : integer := 0; + hmask : integer := 16#f00#; + pindex : integer := 0; + paddr : integer := 0; + pmask : integer := 16#fff#; + maxwriteburst : integer := 8; + maxreadburst : integer := 8; + SIM_BYPASS_INIT_CAL : string := "OFF"; + SIMULATION : string := "FALSE"; + USE_MIG_INTERFACE_MODEL : boolean := false + ); + port( + ddr3_dq : inout std_logic_vector(63 downto 0); + ddr3_dqs_p : inout std_logic_vector(7 downto 0); + ddr3_dqs_n : inout std_logic_vector(7 downto 0); + ddr3_addr : out std_logic_vector(13 downto 0); + ddr3_ba : out std_logic_vector(2 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_ck_p : out std_logic_vector(0 downto 0); + ddr3_ck_n : out std_logic_vector(0 downto 0); + ddr3_cke : out std_logic_vector(0 downto 0); + ddr3_cs_n : out std_logic_vector(0 downto 0); + ddr3_dm : out std_logic_vector(7 downto 0); + ddr3_odt : out std_logic_vector(0 downto 0); + ahbso : out ahb_slv_out_type; + ahbsi : in ahb_slv_in_type; + apbi : in apb_slv_in_type; + apbo : out apb_slv_out_type; + calib_done : out std_logic; + rst_n_syn : in std_logic; + rst_n_async : in std_logic; + clk_amba : in std_logic; + sys_clk_p : in std_logic; + sys_clk_n : in std_logic; + ui_clk : out std_logic; + ui_clk_sync_rst : out std_logic + ); +end ; + +architecture rtl of ahb2mig is + +type bstate_type is (idle, start, read_cmd, read_data, read_output, write_cmd, write_burst); + +constant hconfig : ahb_config_type := ( + 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_MIGDDR3, 0, 0, 0), + 4 => ahb_membar(haddr, '1', '1', hmask), + others => zero32); + +constant pconfig : apb_config_type := ( + 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_MIGDDR3, 0, 0, 0), + 1 => apb_iobar(paddr, pmask)); + +type reg_type is record + bstate : bstate_type; + cmd : std_logic_vector(2 downto 0); + cmd_en : std_logic; + wr_en : std_logic; + wr_end : std_logic; + cmd_count : unsigned(6 downto 0); + wr_count : unsigned(6 downto 0); + rd_count : unsigned(6 downto 0); + hready : std_logic; + hwrite : std_logic; + hwdata : std_logic_vector(31 downto 0); + hwdata_burst : std_logic_vector(1023 downto 0); + mask_burst : std_logic_vector(127 downto 0); + htrans : std_logic_vector(1 downto 0); + hburst : std_logic_vector(2 downto 0); + hsize : std_logic_vector(2 downto 0); + hrdata : std_logic_vector(31 downto 0); + haddr : std_logic_vector(31 downto 0); + haddr_start : std_logic_vector(31 downto 0); + haddr_burst : std_logic_vector(31 downto 0); + hmaster : std_logic_vector(3 downto 0); + int_buffer : unsigned(1024-1 downto 0); + rd_buffer : unsigned(1024-1 downto 0); + wdf_data_buffer : std_logic_vector(511 downto 0); + wdf_mask_buffer : std_logic_vector(63 downto 0); +end record; + +type mig_in_type is record + cmd_en : std_logic; + app_addr : std_logic_vector(27 downto 0); + app_cmd : std_logic_vector(2 downto 0); + app_en : std_logic; + app_wdf_data : std_logic_vector(511 downto 0); + app_wdf_end : std_logic; + app_wdf_mask : std_logic_vector(63 downto 0); + app_wdf_wren : std_logic; +end record; + +type mig_out_type is record + app_rd_data : std_logic_vector(511 downto 0); + app_rd_data_end : std_logic; + app_rd_data_valid : std_logic; + app_rdy : std_logic; + app_wdf_rdy : std_logic; +end record; + +signal r, rin : reg_type; +signal migin : mig_in_type; +signal migout,migoutraw : mig_out_type; + +component mig is + generic( + SIM_BYPASS_INIT_CAL : string := "OFF"; + SIMULATION : string := "FALSE" + ); + port ( + ddr3_dq : inout std_logic_vector(63 downto 0); + ddr3_addr : out std_logic_vector(13 downto 0); + ddr3_ba : out std_logic_vector(2 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_dqs_n : inout std_logic_vector(7 downto 0); + ddr3_dqs_p : inout std_logic_vector(7 downto 0); + ddr3_ck_p : out std_logic_vector(0 downto 0); + ddr3_ck_n : out std_logic_vector(0 downto 0); + ddr3_cke : out std_logic_vector(0 downto 0); + ddr3_cs_n : out std_logic_vector(0 downto 0); + ddr3_dm : out std_logic_vector(7 downto 0); + ddr3_odt : out std_logic_vector(0 downto 0); + sys_clk_p : in std_logic; + sys_clk_n : in std_logic; + app_addr : in std_logic_vector(27 downto 0); + app_cmd : in std_logic_vector(2 downto 0); + app_en : in std_logic; + app_wdf_data : in std_logic_vector(511 downto 0); + app_wdf_end : in std_logic; + app_wdf_mask : in std_logic_vector(63 downto 0); + app_wdf_wren : in std_logic; + app_rd_data : out std_logic_vector(511 downto 0); + app_rd_data_end : out std_logic; + app_rd_data_valid : out std_logic; + app_rdy : out std_logic; + app_wdf_rdy : out std_logic; + app_sr_req : in std_logic; + app_sr_active : out std_logic; + app_ref_req : in std_logic; + app_ref_ack : out std_logic; + app_zq_req : in std_logic; + app_zq_ack : out std_logic; + ui_clk : out std_logic; + ui_clk_sync_rst : out std_logic; + init_calib_complete : out std_logic; + sys_rst : in std_logic + ); +end component mig; + +component mig_interface_model is + port ( + app_addr : in std_logic_vector(27 downto 0); + app_cmd : in std_logic_vector(2 downto 0); + app_en : in std_logic; + app_wdf_data : in std_logic_vector(511 downto 0); + app_wdf_end : in std_logic; + app_wdf_mask : in std_logic_vector(63 downto 0); + app_wdf_wren : in std_logic; + app_rd_data : out std_logic_vector(511 downto 0); + app_rd_data_end : out std_logic; + app_rd_data_valid : out std_logic; + app_rdy : out std_logic; + app_wdf_rdy : out std_logic; + ui_clk : out std_logic; + ui_clk_sync_rst : out std_logic; + init_calib_complete : out std_logic; + sys_rst : in std_logic + ); +end component mig_interface_model; + + +begin + + comb: process( rst_n_syn, r, ahbsi, migout ) + + -- Design temp variables + variable v : reg_type; + variable wmask : std_logic_vector(3 downto 0); + variable writedata : std_logic_vector(31 downto 0); + variable shift_steps : natural; + variable hrdata_temp : unsigned(v.rd_buffer'length-1 downto 0); + variable hrdata_shift_steps : natural; + variable shift_steps_write : natural; + variable shift_steps_write_mask : natural; + + begin + + -- Make all register visible for the statemachine + v := r; + + case r.bstate is + when idle => + + -- Clear Read data response + v.hrdata := (others => '0'); + + -- Clear old pointers and MIG command signals + v.cmd := (others => '0'); + v.cmd_en := '0'; + v.wr_en := '0'; + v.wr_end := '0'; + v.hready := '1'; + v.hwrite := '0'; + v.hwdata_burst := (others => '0'); + v.mask_burst := (others => '0'); + v.rd_count := (others => '0'); + + -- Check if this is a single or burst transfer (and not a BUSY transfer) + if ((ahbsi.hready and ahbsi.hsel(hindex) and ahbsi.htrans(1)) = '1' + and (ahbsi.hwrite = '0' or ahbsi.hwrite = '1' )) then + + -- Hold info regarding transaction and execute + v.hburst := ahbsi.hburst; + v.hwrite := ahbsi.hwrite; + v.hsize := ahbsi.hsize; + v.hmaster := ahbsi.hmaster; + v.hready := '0'; + v.htrans := ahbsi.htrans; + v.bstate := start; + v.haddr := "0" & "000000" & ahbsi.haddr(27 downto 6) & "000"; + v.haddr_start := ahbsi.haddr; + v.cmd := (others => '0'); + v.cmd(0) := not ahbsi.hwrite; + + end if; + + when start => + -- Check if a write command shall be issued to the DDR3 memory + if r.hwrite = '1' then + + case r.hsize is + when "000" => + case r.haddr_start(1 downto 0) is + when "00" => wmask := "0010"; + when "01" => wmask := "0001"; + when "10" => wmask := "1000"; + when others => wmask := "0100"; + end case; + + when "001" => + case r.haddr_start(1) is + when '0' => wmask := "0011"; + when others => wmask := "1100"; + end case; + when "010" => wmask := "1111"; + when others => wmask := "1111"; + end case; + + -- Work out write offset/start + if ((r.htrans = "11") or ahbsi.htrans = "11") then + shift_steps_write := to_integer(unsigned(v.rd_count - 2)&"00000") + + to_integer(unsigned(r.haddr_start(5 downto 2))&"00000"); + shift_steps_write_mask := to_integer(unsigned(v.rd_count - 2)&"00") + + to_integer(unsigned(r.haddr_start(5 downto 2))&"00") ; + else + shift_steps_write := to_integer(unsigned(v.rd_count)&"00000") + + to_integer(unsigned(r.haddr_start(5 downto 2))&"00000"); + shift_steps_write_mask := to_integer(unsigned(v.rd_count)&"00") + + to_integer(unsigned(r.haddr_start(5 downto 2))&"00") ; + end if; + + if (ahbsi.htrans = "11") then + v.htrans := "11"; + end if; + + -- generate mask for complete burst + v.mask_burst := v.mask_burst or std_logic_vector(shift_left(resize(unsigned(wmask), + v.mask_burst'length),shift_steps_write_mask)); + + -- fetch all wdata before write to memory can begin + writedata := ahbsi.hwdata(15 downto 0) & ahbsi.hwdata(31 downto 16); + v.hwdata_burst := v.hwdata_burst or std_logic_vector(shift_left(resize(unsigned(writedata), + v.hwdata_burst'length ) ,shift_steps_write)); + + -- Check if this is acont burst longer than internal buffer + if (ahbsi.htrans = "11") then + + if ((v.rd_count < maxwriteburst) and (v.rd_count > 0)) then + v.hready := '1'; + else + v.hready := '0'; + end if; + + if (v.rd_count >= maxwriteburst) and (r.hready = '0') then + if (r.htrans = "11") then + v.bstate := write_cmd; + end if; + v.htrans := ahbsi.htrans; + v.haddr_burst := ahbsi.haddr; + end if; + + else + v.bstate := write_cmd; + v.htrans := ahbsi.htrans; + end if; + + -- Else issue a read command when ready + else + if migout.app_rdy = '1' and migout.app_wdf_rdy = '1' then + v.cmd := "001"; + v.bstate := read_cmd; + v.htrans := ahbsi.htrans; + v.cmd_count := to_unsigned(0,v.cmd_count'length); + + -- Always do a read burst + if (ahbsi.htrans /= "11") then + v.rd_count := to_unsigned(0,v.rd_count'length); + else + v.rd_count := to_unsigned(1,v.rd_count'length); + end if; + end if; + end if; + + when write_cmd => + -- Check if burst has ended due to max size burst + if (ahbsi.hsel(hindex) = '0') then + v.htrans := (others => '0'); + end if; + + -- Stop when addr and write command is accepted by mig + if (v.wr_count >= 2) and (v.cmd_count >= 2) then + if (r.htrans /= "11") then + --v.bstate := idle; + if ((ahbsi.hsel(hindex) = '1') and (ahbsi.htrans = "11")) then + -- Hold info regarding transaction and execute + v.hburst := ahbsi.hburst; + v.hwrite := ahbsi.hwrite; + v.hsize := ahbsi.hsize; + v.hmaster := ahbsi.hmaster; + v.hready := '0'; + v.htrans := ahbsi.htrans; + v.bstate := start; + + -- Need to work-out the offset by looking at transfer size + if (ahbsi.hsize = "000") then + v.haddr_start := ahbsi.haddr - 1; + elsif (ahbsi.hsize = "001") then + v.haddr_start := ahbsi.haddr - 2; + else + v.haddr_start := ahbsi.haddr - 4; + end if; + + v.haddr := "0"&"000000" & v.haddr_start(27 downto 6)&"000"; + v.cmd := (others => '0'); + v.cmd(0) := not ahbsi.hwrite; + v.hwdata_burst := (others => '0'); + v.mask_burst := (others => '0'); + v.rd_count := (others => '0'); + v.cmd_count := (others => '0'); + v.wr_count := (others => '0'); + v.rd_count := (others => '0'); + else + v.bstate := idle; + end if; + + else -- Cont burst and work out new offset for next write command + v.bstate := write_burst; + v.haddr := "0" & "000000" & r.haddr_burst(27 downto 6) & "000"; + v.haddr_start := r.haddr_burst; + end if; + end if; + + when write_burst => + v.bstate := start; + v.hready := '1'; + + when read_cmd => + v.hready := '0'; + + v.rd_count := (others => '0'); + + -- stop when read command is accepted ny mig. + if (v.cmd_count >= 2) then + v.bstate := read_data; + end if; + + when read_data => + + -- We are not ready yet so issue a read command to the memory controller + v.hready := '0'; + + -- If read data is valid store data in buffers + if (migout.app_rd_data_valid = '1') then + if (v.rd_count = 0) then + v.int_buffer(511 downto 0) := unsigned(migout.app_rd_data); + v.rd_count := to_unsigned(1,v.rd_count'length); + -- Check if this wasn't a burst command + if (v.htrans /= "11") then + v.rd_count := to_unsigned(2,v.rd_count'length); + v.int_buffer(1023 downto 512) := (others => '0'); + end if; + else + v.int_buffer(1023 downto 512) := unsigned(migout.app_rd_data); + v.rd_count := to_unsigned(2,v.rd_count'length); + end if; + end if; + + if (v.rd_count >= 2) then + shift_steps := to_integer(unsigned(r.haddr_start(5 downto 2))&"00000"); + v.rd_buffer := shift_right(v.int_buffer,shift_steps); + v.bstate := read_output; + v.rd_count := to_unsigned(0,v.rd_count'length); + end if; + + when read_output => + -- Data is fetched from memory and ready to be transfered + v.hready := '1'; + + -- uses the "wr_count" signal to keep track of number of bytes output'd to AHB + -- Select correct 32bit to output + hrdata_shift_steps := to_integer(v.wr_count & "00000"); + hrdata_temp := shift_right(v.rd_buffer,hrdata_shift_steps); + + case r.hsize is + when "000" => + case r.haddr_start(1 downto 0) is + when "11" => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(23 downto 16) + & hrdata_temp(23 downto 16) & hrdata_temp(23 downto 16) & hrdata_temp(23 downto 16)); + when "10" => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(31 downto 24) + & hrdata_temp(31 downto 24) & hrdata_temp(31 downto 24) & hrdata_temp(31 downto 24)); + when "01" => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(7 downto 0) + & hrdata_temp(7 downto 0) & hrdata_temp(7 downto 0) & hrdata_temp(7 downto 0)); + when others => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(15 downto 8) + & hrdata_temp(15 downto 8) & hrdata_temp(15 downto 8) & hrdata_temp(15 downto 8)); + end case; + when "001" => + case r.haddr_start(1) is + when '1' => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(31 downto 16) + & hrdata_temp(31 downto 16)); + when others => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(15 downto 0) + & hrdata_temp(15 downto 0)); + end case; + when "010" => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(15 downto 0) & hrdata_temp(31 downto 16)); + when others => v.hrdata(31 downto 0) := std_logic_vector(hrdata_temp(15 downto 0) & hrdata_temp(31 downto 16)); + end case; + + -- Count number of bytes send + v.wr_count := v.wr_count + 1; + + -- Check if this was the last transaction + if (v.wr_count >= maxreadburst) then + v.bstate := idle; + v.wr_count := (others => '0'); + end if; + + -- Check if transfer was interrupted or no burst + if (ahbsi.htrans = "00") or ((ahbsi.htrans = "10") and (v.wr_count < 7)) then + v.bstate := idle; + v.wr_count := (others => '0'); + end if; + + when others => + v.bstate := idle; + end case; + + if ((ahbsi.hsel(hindex) = '0') and ((r.bstate = write_cmd) or (r.bstate = write_burst) or (r.bstate = start))) then + v.hready := '0'; + elsif ((ahbsi.htrans /= "11") and (r.bstate = start)) then + v.hready := '0'; + end if; + + if rst_n_syn = '0' then + v.bstate := idle; v.hready := '1'; v.cmd_en := '0'; v.wr_en := '0'; v.wr_end := '0'; + end if; + + rin <= v; + + end process; + + comb_hready: process(r, ahbsi) + begin + if ((ahbsi.hsel(hindex) = '0') and ((r.bstate = write_cmd) or (r.bstate = write_burst) or (r.bstate = start))) then + ahbso.hready <= '0'; + elsif ((ahbsi.htrans /= "11") and (r.bstate = start)) then + ahbso.hready <= '0'; + else + ahbso.hready <= r.hready; + end if; + end process; + + ahbso.hresp <= "00"; --r.hresp; + ahbso.hrdata <= r.hrdata; + + migin.app_addr <= r.haddr(27 downto 2) & "00"; + migin.app_cmd <= r.cmd; + migin.app_en <= r.cmd_en; + + migin.app_wdf_data <= r.wdf_data_buffer; + migin.app_wdf_end <= r.wr_end; + migin.app_wdf_mask <= r.wdf_mask_buffer; + migin.app_wdf_wren <= r.wr_en; + + ahbso.hconfig <= hconfig; + ahbso.hirq <= (others => '0'); + ahbso.hindex <= hindex; + ahbso.hsplit <= (others => '0'); + + apbo.pindex <= pindex; + apbo.pconfig <= pconfig; + apbo.pirq <= (others => '0'); + apbo.prdata <= (others => '0'); + + regs : process(clk_amba) + begin + if rising_edge(clk_amba) then + + -- Copy variables into registers (Default values) + r <= rin; + + -- add extra pipe-stage for read data + migout <= migoutraw; + + -- IDLE Clear + if r.bstate = idle then + r.cmd_count <= (others => '0'); + r.wr_count <= (others => '0'); + r.rd_count <= (others => '0'); + end if; + + -- Read AHB write data + if (r.bstate = start) and (r.hwrite = '1') then + if ((r.htrans = "11") and (r.rd_count = 0)) then + r.rd_count <= (others => '0'); + r.htrans <= "10"; + else + r.rd_count <= r.rd_count + 1; + end if; + end if; + + -- Write command repsonse + if r.bstate = write_cmd then + if (r.cmd_count < 1) then + r.cmd_en <= '1'; + end if; + if (migoutraw.app_rdy = '1') and (r.cmd_en = '1' ) then + r.cmd_count <= r.cmd_count + 1; + if (r.cmd_count = 0 ) then + r.haddr <= r.haddr + 8; + end if; + if (r.cmd_count >= 1) then + r.cmd_en <= '0'; + end if; + end if; + if (r.wr_count < 1 ) then + r.wr_en <= '1'; + r.wr_end <= '1'; + r.wdf_mask_buffer <= not r.mask_burst(63 downto 0); + r.wdf_data_buffer <= r.hwdata_burst(511 downto 0); + end if; + if (migoutraw.app_wdf_rdy = '1') and (r.wr_en = '1' ) then + r.wdf_mask_buffer <= not r.mask_burst(127 downto 64); + r.wdf_data_buffer <= r.hwdata_burst(1023 downto 512); + r.wr_count <= r.wr_count + 1; + if (r.wr_count >= 1 ) then + r.wr_en <= '0'; + r.wr_end <= '0'; + end if; + end if; + end if; + + -- Burst Write Wait + if r.bstate = write_burst then + r.cmd_count <= (others => '0'); + r.wr_count <= (others => '0'); + r.rd_count <= (others => '0'); + -- To make it easier to debug + r.mask_burst <= (others => '0'); + r.hwdata_burst <= (others => '0'); + end if; + + -- Read command repsonse + if r.bstate = read_cmd then + if (r.cmd_count < 1) then + r.cmd_en <= '1'; + end if; + if (migoutraw.app_rdy = '1') and (r.cmd_en = '1' ) then + r.cmd_count <= r.cmd_count + 1; + if (r.cmd_count = 0 ) then + r.haddr <= r.haddr + 8; + if (ahbsi.htrans /= "11") then + r.cmd_en <= '0'; + r.cmd_count <= to_unsigned(2,r.cmd_count'length); + end if; + end if; + if (r.cmd_count >= 1) then + r.cmd_en <= '0'; + end if; + end if; + end if; + end if; + end process; + + gen_mig : if (USE_MIG_INTERFACE_MODEL /= true) generate + MCB_inst : mig + generic map( + SIM_BYPASS_INIT_CAL => SIM_BYPASS_INIT_CAL, + SIMULATION => SIMULATION) + port map ( + ddr3_dq => ddr3_dq, + ddr3_dqs_p => ddr3_dqs_p, + ddr3_dqs_n => ddr3_dqs_n, + ddr3_addr => ddr3_addr, + ddr3_ba => ddr3_ba, + ddr3_ras_n => ddr3_ras_n, + ddr3_cas_n => ddr3_cas_n, + ddr3_we_n => ddr3_we_n, + ddr3_reset_n => ddr3_reset_n, + ddr3_ck_p => ddr3_ck_p, + ddr3_ck_n => ddr3_ck_n, + ddr3_cke => ddr3_cke, + ddr3_cs_n => ddr3_cs_n, + ddr3_dm => ddr3_dm, + ddr3_odt => ddr3_odt, + sys_clk_p => sys_clk_p, + sys_clk_n => sys_clk_n, + app_addr => migin.app_addr, + app_cmd => migin.app_cmd, + app_en => migin.app_en, + app_rdy => migoutraw.app_rdy, + app_wdf_data => migin.app_wdf_data, + app_wdf_end => migin.app_wdf_end, + app_wdf_mask => migin.app_wdf_mask, + app_wdf_wren => migin.app_wdf_wren, + app_wdf_rdy => migoutraw.app_wdf_rdy, + app_rd_data => migoutraw.app_rd_data, + app_rd_data_end => migoutraw.app_rd_data_end, + app_rd_data_valid => migoutraw.app_rd_data_valid, + app_sr_req => '0', + app_sr_active => open, + app_ref_req => '0', + app_ref_ack => open, + app_zq_req => '0', + app_zq_ack => open, + ui_clk => ui_clk, + ui_clk_sync_rst => ui_clk_sync_rst, + init_calib_complete => calib_done, + sys_rst => rst_n_async + ); + end generate gen_mig; + + gen_mig_model : if (USE_MIG_INTERFACE_MODEL = true) generate + MCB_model_inst : mig_interface_model + port map ( + -- user interface signals + app_addr => migin.app_addr, + app_cmd => migin.app_cmd, + app_en => migin.app_en, + app_rdy => migoutraw.app_rdy, + app_wdf_data => migin.app_wdf_data, + app_wdf_end => migin.app_wdf_end, + app_wdf_mask => migin.app_wdf_mask, + app_wdf_wren => migin.app_wdf_wren, + app_wdf_rdy => migoutraw.app_wdf_rdy, + app_rd_data => migoutraw.app_rd_data, + app_rd_data_end => migoutraw.app_rd_data_end, + app_rd_data_valid => migoutraw.app_rd_data_valid, + ui_clk => ui_clk, + ui_clk_sync_rst => ui_clk_sync_rst, + init_calib_complete => calib_done, + sys_rst => rst_n_async + ); + end generate gen_mig_model; + + +end; diff --git a/designs/leon3-xilinx-vc707/ahbrom.vhd b/designs/leon3-xilinx-vc707/ahbrom.vhd new file mode 100644 index 00000000..ac26c7b2 --- /dev/null +++ b/designs/leon3-xilinx-vc707/ahbrom.vhd @@ -0,0 +1,231 @@ + +---------------------------------------------------------------------------- +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2009 Aeroflex Gaisler +---------------------------------------------------------------------------- +-- Entity: ahbrom +-- File: ahbrom.vhd +-- Author: Jiri Gaisler - Gaisler Research +-- Description: AHB rom. 0/1-waitstate read +---------------------------------------------------------------------------- +library ieee; +use ieee.std_logic_1164.all; +library grlib; +use grlib.amba.all; +use grlib.stdlib.all; +use grlib.devices.all; + +entity ahbrom is + generic ( + hindex : integer := 0; + haddr : integer := 0; + hmask : integer := 16#fff#; + pipe : integer := 0; + tech : integer := 0; + kbytes : integer := 1); + port ( + rst : in std_ulogic; + clk : in std_ulogic; + ahbsi : in ahb_slv_in_type; + ahbso : out ahb_slv_out_type + ); +end; + +architecture rtl of ahbrom is +constant abits : integer := 10; +constant bytes : integer := 560; + +constant hconfig : ahb_config_type := ( + 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_AHBROM, 0, 0, 0), + 4 => ahb_membar(haddr, '1', '1', hmask), others => zero32); + +signal romdata : std_logic_vector(31 downto 0); +signal addr : std_logic_vector(abits-1 downto 2); +signal hsel, hready : std_ulogic; + +begin + + ahbso.hresp <= "00"; + ahbso.hsplit <= (others => '0'); + ahbso.hirq <= (others => '0'); + ahbso.hconfig <= hconfig; + ahbso.hindex <= hindex; + + reg : process (clk) + begin + if rising_edge(clk) then + addr <= ahbsi.haddr(abits-1 downto 2); + end if; + end process; + + p0 : if pipe = 0 generate + ahbso.hrdata <= ahbdrivedata(romdata); + ahbso.hready <= '1'; + end generate; + + p1 : if pipe = 1 generate + reg2 : process (clk) + begin + if rising_edge(clk) then + hsel <= ahbsi.hsel(hindex) and ahbsi.htrans(1); + hready <= ahbsi.hready; + ahbso.hready <= (not rst) or (hsel and hready) or + (ahbsi.hsel(hindex) and not ahbsi.htrans(1) and ahbsi.hready); + ahbso.hrdata <= ahbdrivedata(romdata); + end if; + end process; + end generate; + + comb : process (addr) + begin + case conv_integer(addr) is + when 16#00000# => romdata <= X"81D82000"; + when 16#00001# => romdata <= X"03000004"; + when 16#00002# => romdata <= X"821060E0"; + when 16#00003# => romdata <= X"81884000"; + when 16#00004# => romdata <= X"81900000"; + when 16#00005# => romdata <= X"81980000"; + when 16#00006# => romdata <= X"81800000"; + when 16#00007# => romdata <= X"A1800000"; + when 16#00008# => romdata <= X"01000000"; + when 16#00009# => romdata <= X"03002040"; + when 16#0000A# => romdata <= X"8210600F"; + when 16#0000B# => romdata <= X"C2A00040"; + when 16#0000C# => romdata <= X"84100000"; + when 16#0000D# => romdata <= X"01000000"; + when 16#0000E# => romdata <= X"01000000"; + when 16#0000F# => romdata <= X"01000000"; + when 16#00010# => romdata <= X"01000000"; + when 16#00011# => romdata <= X"01000000"; + when 16#00012# => romdata <= X"80108002"; + when 16#00013# => romdata <= X"01000000"; + when 16#00014# => romdata <= X"01000000"; + when 16#00015# => romdata <= X"01000000"; + when 16#00016# => romdata <= X"01000000"; + when 16#00017# => romdata <= X"01000000"; + when 16#00018# => romdata <= X"87444000"; + when 16#00019# => romdata <= X"8608E01F"; + when 16#0001A# => romdata <= X"88100000"; + when 16#0001B# => romdata <= X"8A100000"; + when 16#0001C# => romdata <= X"8C100000"; + when 16#0001D# => romdata <= X"8E100000"; + when 16#0001E# => romdata <= X"A0100000"; + when 16#0001F# => romdata <= X"A2100000"; + when 16#00020# => romdata <= X"A4100000"; + when 16#00021# => romdata <= X"A6100000"; + when 16#00022# => romdata <= X"A8100000"; + when 16#00023# => romdata <= X"AA100000"; + when 16#00024# => romdata <= X"AC100000"; + when 16#00025# => romdata <= X"AE100000"; + when 16#00026# => romdata <= X"90100000"; + when 16#00027# => romdata <= X"92100000"; + when 16#00028# => romdata <= X"94100000"; + when 16#00029# => romdata <= X"96100000"; + when 16#0002A# => romdata <= X"98100000"; + when 16#0002B# => romdata <= X"9A100000"; + when 16#0002C# => romdata <= X"9C100000"; + when 16#0002D# => romdata <= X"9E100000"; + when 16#0002E# => romdata <= X"86A0E001"; + when 16#0002F# => romdata <= X"16BFFFEF"; + when 16#00030# => romdata <= X"81E00000"; + when 16#00031# => romdata <= X"82102002"; + when 16#00032# => romdata <= X"81904000"; + when 16#00033# => romdata <= X"03000004"; + when 16#00034# => romdata <= X"821060E0"; + when 16#00035# => romdata <= X"81884000"; + when 16#00036# => romdata <= X"01000000"; + when 16#00037# => romdata <= X"01000000"; + when 16#00038# => romdata <= X"01000000"; + when 16#00039# => romdata <= X"83480000"; + when 16#0003A# => romdata <= X"8330600C"; + when 16#0003B# => romdata <= X"80886001"; + when 16#0003C# => romdata <= X"02800024"; + when 16#0003D# => romdata <= X"01000000"; + when 16#0003E# => romdata <= X"07000000"; + when 16#0003F# => romdata <= X"8610E178"; + when 16#00040# => romdata <= X"C108C000"; + when 16#00041# => romdata <= X"C118C000"; + when 16#00042# => romdata <= X"C518C000"; + when 16#00043# => romdata <= X"C918C000"; + when 16#00044# => romdata <= X"CD18C000"; + when 16#00045# => romdata <= X"D118C000"; + when 16#00046# => romdata <= X"D518C000"; + when 16#00047# => romdata <= X"D918C000"; + when 16#00048# => romdata <= X"DD18C000"; + when 16#00049# => romdata <= X"E118C000"; + when 16#0004A# => romdata <= X"E518C000"; + when 16#0004B# => romdata <= X"E918C000"; + when 16#0004C# => romdata <= X"ED18C000"; + when 16#0004D# => romdata <= X"F118C000"; + when 16#0004E# => romdata <= X"F518C000"; + when 16#0004F# => romdata <= X"F918C000"; + when 16#00050# => romdata <= X"FD18C000"; + when 16#00051# => romdata <= X"01000000"; + when 16#00052# => romdata <= X"01000000"; + when 16#00053# => romdata <= X"01000000"; + when 16#00054# => romdata <= X"01000000"; + when 16#00055# => romdata <= X"01000000"; + when 16#00056# => romdata <= X"89A00842"; + when 16#00057# => romdata <= X"01000000"; + when 16#00058# => romdata <= X"01000000"; + when 16#00059# => romdata <= X"01000000"; + when 16#0005A# => romdata <= X"01000000"; + when 16#0005B# => romdata <= X"10800005"; + when 16#0005C# => romdata <= X"01000000"; + when 16#0005D# => romdata <= X"01000000"; + when 16#0005E# => romdata <= X"00000000"; + when 16#0005F# => romdata <= X"00000000"; + when 16#00060# => romdata <= X"87444000"; + when 16#00061# => romdata <= X"8730E01C"; + when 16#00062# => romdata <= X"8688E00F"; + when 16#00063# => romdata <= X"12800015"; + when 16#00064# => romdata <= X"03200000"; + when 16#00065# => romdata <= X"05040E00"; + when 16#00066# => romdata <= X"8410A033"; + when 16#00067# => romdata <= X"C4204000"; + when 16#00068# => romdata <= X"0539AE1B"; + when 16#00069# => romdata <= X"8410A260"; + when 16#0006A# => romdata <= X"C4206004"; + when 16#0006B# => romdata <= X"050003FC"; + when 16#0006C# => romdata <= X"C4206008"; + when 16#0006D# => romdata <= X"82103860"; + when 16#0006E# => romdata <= X"C4004000"; + when 16#0006F# => romdata <= X"8530A00C"; + when 16#00070# => romdata <= X"03000004"; + when 16#00071# => romdata <= X"82106009"; + when 16#00072# => romdata <= X"80A04002"; + when 16#00073# => romdata <= X"12800005"; + when 16#00074# => romdata <= X"03200000"; + when 16#00075# => romdata <= X"0539A81B"; + when 16#00076# => romdata <= X"8410A260"; + when 16#00077# => romdata <= X"C4204000"; + when 16#00078# => romdata <= X"05000080"; + when 16#00079# => romdata <= X"82100000"; + when 16#0007A# => romdata <= X"80A0E000"; + when 16#0007B# => romdata <= X"02800005"; + when 16#0007C# => romdata <= X"01000000"; + when 16#0007D# => romdata <= X"82004002"; + when 16#0007E# => romdata <= X"10BFFFFC"; + when 16#0007F# => romdata <= X"8620E001"; + when 16#00080# => romdata <= X"3D1003FF"; + when 16#00081# => romdata <= X"BC17A3E0"; + when 16#00082# => romdata <= X"BC278001"; + when 16#00083# => romdata <= X"9C27A060"; + when 16#00084# => romdata <= X"03100000"; + when 16#00085# => romdata <= X"81C04000"; + when 16#00086# => romdata <= X"01000000"; + when 16#00087# => romdata <= X"01000000"; + when 16#00088# => romdata <= X"00000000"; + when 16#00089# => romdata <= X"00000000"; + when 16#0008A# => romdata <= X"00000000"; + when 16#0008B# => romdata <= X"00000000"; + when 16#0008C# => romdata <= X"00000000"; + when others => romdata <= (others => '-'); + end case; + end process; + -- pragma translate_off + bootmsg : report_version + generic map ("ahbrom" & tost(hindex) & + ": 32-bit AHB ROM Module, " & tost(bytes/4) & " words, " & tost(abits-2) & " address bits" ); + -- pragma translate_on + end; diff --git a/designs/leon3-ge-hpe-mini/config.help b/designs/leon3-xilinx-vc707/config.help similarity index 85% rename from designs/leon3-ge-hpe-mini/config.help rename to designs/leon3-xilinx-vc707/config.help index 6e34f972..0b647288 100644 --- a/designs/leon3-ge-hpe-mini/config.help +++ b/designs/leon3-xilinx-vc707/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ @@ -699,48 +732,6 @@ Programmable MAC/IP address CONFIG_DSU_ETH_PROG Say Y to make the LSB 4 bits of the EDCL MAC and IP address configurable using the ethi.edcladdr inputs. -PROM/SRAM memory controller -CONFIG_SRCTRL - Say Y here to enable a simple (and small) PROM/SRAM memory controller. - The controller has a fixed number of waitstates, and is primarily - intended for FPGA implementations. The RAM data bus is always 32 bits, - the PROM can be configured to either 8 or 32 bits (hardwired). - -8-bit memory support -CONFIG_SRCTRL_8BIT - If you say Y here, the simple PROM/SRAM memory controller will - implement 8-bit PROM mode. - -PROM waitstates -CONFIG_SRCTRL_PROMWS - Select the number of waitstates for PROM access. - -RAM waitstates -CONFIG_SRCTRL_RAMWS - Select the number of waitstates for RAM access. - -IO waitstates -CONFIG_SRCTRL_IOWS - Select the number of waitstates for IO access. - -Read-modify-write support -CONFIG_SRCTRL_RMW - Say Y here to perform byte- and half-word writes as a - read-modify-write sequence. This is necessary if your - SRAM does not have individual byte enables. If you are - unsure, it is safe to say Y. - -SRAM bank select -CONFIG_SRCTRL_SRBANKS - Select number of SRAM banks. - -SRAM bank size select -CONFIG_SRCTRL_BANKSZ - Select size of SRAM banks in kBytes. - -PROM address bit select -CONFIG_SRCTRL_ROMASEL - Select address bit for PROM bank decoding. Leon2 memory controller CONFIG_MCTRL_LEON2 Say Y here to enable the LEON2 memory controller. The controller @@ -817,6 +808,17 @@ CONFIG_MCTRL_PROGPAGE will allow to dynamically enable/disable page burst by setting bit 17 in MCFG2. +AHB status register +CONFIG_AHBSTAT_ENABLE + Say Y here to enable the AHB status register (AHBSTAT IP). + The register will latch the AHB address and master index when + an error response is returned by any AHB slave. + +SDRAM separate address buses +CONFIG_AHBSTAT_NFTSLV + The AHB status register can also latch the AHB address on an external + input. Select here how many of such inputs are required. + On-chip rom CONFIG_AHBROM_ENABLE Say Y here to add a block on on-chip rom to the AHB bus. The ram @@ -958,32 +960,25 @@ Watchdog time-out value CONFIG_GPT_WDOG This value will be loaded in the watchdog timer at reset. -ATA interface enable -CONFIG_ATA_ENABLE - Say Y here to enable the ATA interace from OpenCores. The core has one - AHB slave interface for accessing all control registers. - -ATA register address -CONFIG_ATAIO - The control registers of the ATA core occupy 256 byte, and are - mapped in the AHB bus I/O area (0xFFF00000 - 0xFFFFF000). This setting - defines at which address in the I/O area the registers appear (HADDR[19:8]). - -ATA interrupt -CONFIG_ATAIRQ - Defines which interrupt number the ATA core will generate. - -ATA DMA support -CONFIG_ATA_MWDMA - Say yes here to enable IDE multi-word DMA support (MWDMA). - This will increase transfer rate compared to the PIO mode, - but increase area with approxiamtely 5,000 gates. Note that - DMA is not supported by legacy CF cards, so it makes no sense - to enable it on CF card sockets. - -ATA DMA FIFO depth -CONFIG_ATA_FIFO - Defines the DMA FIFO depth. Choose 8 or 16. +GPIO port +CONFIG_GRGPIO_ENABLE + Say Y here to enable a general purpose I/O port. The port can be + configured from 1 - 32 bits, whith each port signal individually + programmable as input or output. The port signals can also serve + as interrupt inputs. + +GPIO port witdth +CONFIG_GRGPIO_WIDTH + Number of bits in the I/O port. Must be in the range of 1 - 32. + +GPIO interrupt mask +CONFIG_GRGPIO_IMASK + The I/O port interrupt mask defines which bits in the I/O port + should be able to create an interrupt. + +OpenCores I2C Master +CONFIG_I2C_ENABLE + Say Y here to enable the OpenCores I2C master. Text-mode VGA CONFIG_VGA_ENABLE Say Y here to enable a simple text-mode VGA controller. The controller @@ -1000,12 +995,74 @@ PS2 KBD interface CONFIG_KBD_ENABLE Say Y here to enable a PS/2 keyboard or mouse interface. -MultiIO Design -CONFIG_AHB2HPI_ENABLE - Say Y here to enable a simple bidirectional AHB2HPI bridge. -Digital-to-Analog-Converter -CONFIG_DAC_AHB_ENABLE - Say Y here to enable the Digital-to-Analog-Converter. +SPI memory controller +CONFIG_SPIMCTRL + Say Y here to enable a simple SPI memory controller. + The controller maps a SPI memory device into AMBA address space and + also has a simple interface that allows sending commands directly + to the SPI device. + +SD card support +CONFIG_SPIMCTRL_SDCARD + Memory device connected to controller is SD card. + +Read command +CONFIG_SPIMCTRL_READCMD + Read instruction for SPI memory device (hex). + +Dummy byte +CONFIG_SPIMCTRL_DUMMYBYTE + Output dummy byte after address when issuing read instruction. + +Dual output +CONFIG_SPIMCTRL_DUALOUTPUT + Memory device supports dual output when reading data. + +Address offset +CONFIG_SPIMCTRL_OFFSET + Offset that will be added by core on SPI memory address (hex). + +Clock scaler +CONFIG_SPIMCTRL_SCALER + Selects the divisor used when dividing the system clock to produce + the memory device clock. The divisor used is two to the power of the + specified value. This value must be at least 1. + +Alternate clock scaler +CONFIG_SPIMCTRL_ASCALER + Selects the divisor used when dividing the system clock to produce + the alternate memory device clock. If the selected memory device is + a SD Card this clock will be used during card initialization. The + divisor used is two to the power of the specified value. This + value must be at least 1. + +Power-up cnt +CONFIG_SPIMCTRL_PWRUPCNT + Number of system clock cycles to wait before issuing first command. +Gaisler Research SPI controller +CONFIG_SPICTRL_ENABLE + Say Y here to enable the SPI controller(s) + +CONFIG_SPICTRL_NUM + Number of SPI controllers to implement in design. Note that most + template designs are limited to one SPI controller. + Configuration options made here in xconfig will apply to all + implemented SPI controllers. + +CONFIG_SPICTRL_MAXWLEN + 0: Core will support lengths up to 32 bits + 1-2: Illegal values + 3-15: Maximum word length will be value+1 (4-16) + +CONFIG_SPICTRL_SYNCRAM + Say Y here to use SYNCRAM_2P components for the core's receive + and transmit queues. This is the recommended setting, particularly + if the core is implemented with support for automatic mode. + +CONFIG_SPICTRL_FT + Fault-tolerance for internal buffers. Only applicable if core + buffers are implemented with SYNCRAM components. + UART debugging CONFIG_DEBUG_UART During simulation, the output from the UARTs is printed on the diff --git a/designs/leon3-ge-hpe-mini-lattice/config.in b/designs/leon3-xilinx-vc707/config.in similarity index 75% rename from designs/leon3-ge-hpe-mini-lattice/config.in rename to designs/leon3-xilinx-vc707/config.in index 3e979b78..7f393c4e 100644 --- a/designs/leon3-ge-hpe-mini-lattice/config.in +++ b/designs/leon3-xilinx-vc707/config.in @@ -8,8 +8,10 @@ # #define_bool CONFIG_MCTRL_RMW y +define_bool CONFIG_LEON3FT_PRESENT y +define_bool CONFIG_HAS_SHARED_GRFPU y -mainmenu_name "LEON3MINI Design Configuration" +mainmenu_name "LEON3MP Xilinx VC707 Design Configuration" mainmenu_option next_comment comment 'Synthesis ' @@ -27,6 +29,7 @@ source lib/grlib/amba/amba.in mainmenu_option next_comment comment 'Debug Link ' source lib/gaisler/uart/dcom.in + source lib/gaisler/jtag/jtag.in source lib/gaisler/net/edcl.in endmenu @@ -34,10 +37,11 @@ mainmenu_option next_comment comment 'Peripherals ' mainmenu_option next_comment - comment 'Memory controllers ' - source lib/gaisler/memctrl/srctrl.in + comment 'Memory controller ' source lib/esa/memoryctrl/mctrl.in - source lib/gaisler/ddr/ddrctrl.in + source lib/gaisler/ddr/mig.in + source lib/gaisler/ddr/mig_series7.in + source lib/gaisler/misc/ahbstat.in endmenu mainmenu_option next_comment @@ -51,16 +55,13 @@ comment 'Peripherals ' source lib/gaisler/greth/greth.in endmenu - mainmenu_option next_comment - comment 'ATA ' - source lib/gaisler/ata/ata.in - endmenu - mainmenu_option next_comment comment 'UARTs, timers and irq control ' source lib/gaisler/uart/uart1.in source lib/gaisler/leon3/irqmp.in source lib/gaisler/misc/gptimer.in + source lib/gaisler/misc/grgpio.in + source lib/gaisler/i2c/i2c.in endmenu mainmenu_option next_comment @@ -68,6 +69,12 @@ comment 'Peripherals ' source lib/gaisler/misc/ps2vga.in endmenu + mainmenu_option next_comment + comment 'SPI' + source lib/gaisler/spi/spimctrl.in + source lib/gaisler/spi/spictrl.in + endmenu + endmenu mainmenu_option next_comment diff --git a/designs/leon3-ge-hpe-mini/config.vhd b/designs/leon3-xilinx-vc707/config.vhd similarity index 55% rename from designs/leon3-ge-hpe-mini/config.vhd rename to designs/leon3-xilinx-vc707/config.vhd index 39978b2d..0b07edd4 100644 --- a/designs/leon3-ge-hpe-mini/config.vhd +++ b/designs/leon3-xilinx-vc707/config.vhd @@ -1,9 +1,6 @@ - - - ----------------------------------------------------------------------------- -- LEON3 Demonstration design test bench configuration -- Copyright (C) 2009 Aeroflex Gaisler @@ -14,55 +11,16 @@ library techmap; use techmap.gencomp.all; package config is - - ----------------------------------------------------------------------------- - -- GLEICHMANN SPECIFIC OPTIONS - ----------------------------------------------------------------------------- - - -- boot prom source - -- 0: external - -- 1: internal - constant CFG_BOOTOPT : integer := 0; - - -- HPE board version - -- 1: version 1 - -- /= 1: version 2 - constant CFG_HPEVER : integer := 2; - - -- provide ahb signals for an external slave - -- slave number can be defined below - -- numbers 8 to 15 can be used safely, numbers below - -- might be used by other LEON cores depending on configuration - constant CFG_EXTAHB : integer := 0; - --- constant CFG_EXTAHB_ADDR : integer := 16#A00#; - - -- interrupt number the external slave is assigned to - -- unused at the moment - constant CFG_EXTAHB_IRQ : integer := 6; - - -- AHB slave number the external slave is assigned to - constant CFG_EXTAHB_NR : integer := 8; - - -- index number the external slave is assigned to - constant CFG_EXTAHB_ID : integer := 8; - - -- shift sdram address to bits 12+ - constant CFG_SDSHIFT : integer := 0; - - ----------------------------------------------------------------------------- - -- END GLEICHMANN SPECIFIC OPTIONS - ----------------------------------------------------------------------------- -- Technology and synthesis options - constant CFG_FABTECH : integer := altera; - constant CFG_MEMTECH : integer := altera; - constant CFG_PADTECH : integer := inferred; + constant CFG_FABTECH : integer := virtex7; + constant CFG_MEMTECH : integer := virtex7; + constant CFG_PADTECH : integer := virtex7; constant CFG_NOASYNC : integer := 0; constant CFG_SCAN : integer := 0; -- Clock generator - constant CFG_CLKTECH : integer := altera; + constant CFG_CLKTECH : integer := virtex7; constant CFG_CLKMUL : integer := (4); - constant CFG_CLKDIV : integer := (2); + constant CFG_CLKDIV : integer := (8); constant CFG_OCLKDIV : integer := 1; constant CFG_OCLKBDIV : integer := 0; constant CFG_OCLKCDIV : integer := 0; @@ -73,33 +31,33 @@ package config is constant CFG_LEON3 : integer := 1; constant CFG_NCPU : integer := (1); constant CFG_NWIN : integer := (8); - constant CFG_V8 : integer := 2 + 4*0; + constant CFG_V8 : integer := 16#32# + 4*0; constant CFG_MAC : integer := 0; - constant CFG_BP : integer := 0; + constant CFG_BP : integer := 1; constant CFG_SVT : integer := 0; constant CFG_RSTADDR : integer := 16#00000#; constant CFG_LDDEL : integer := (1); constant CFG_NOTAG : integer := 0; - constant CFG_NWP : integer := (0); + constant CFG_NWP : integer := (2); constant CFG_PWD : integer := 0*2; constant CFG_FPU : integer := 0 + 16*0 + 32*0; constant CFG_GRFPUSH : integer := 0; constant CFG_ICEN : integer := 1; - constant CFG_ISETS : integer := 1; - constant CFG_ISETSZ : integer := 4; + constant CFG_ISETS : integer := 4; + constant CFG_ISETSZ : integer := 8; constant CFG_ILINE : integer := 8; - constant CFG_IREPL : integer := 0; - constant CFG_ILOCK : integer := 0; + constant CFG_IREPL : integer := 3; + constant CFG_ILOCK : integer := 1; constant CFG_ILRAMEN : integer := 0; constant CFG_ILRAMADDR: integer := 16#8E#; constant CFG_ILRAMSZ : integer := 1; constant CFG_DCEN : integer := 1; - constant CFG_DSETS : integer := 1; - constant CFG_DSETSZ : integer := 4; + constant CFG_DSETS : integer := 4; + constant CFG_DSETSZ : integer := 8; constant CFG_DLINE : integer := 8; - constant CFG_DREPL : integer := 0; - constant CFG_DLOCK : integer := 0; - constant CFG_DSNOOP : integer := 1 + 0 + 4*0; + constant CFG_DREPL : integer := 3; + constant CFG_DLOCK : integer := 1; + constant CFG_DSNOOP : integer := 1 + 1 + 4*1; constant CFG_DFIXED : integer := 16#0#; constant CFG_DLRAMEN : integer := 0; constant CFG_DLRAMADDR: integer := 16#8F#; @@ -107,12 +65,12 @@ package config is constant CFG_MMUEN : integer := 1; constant CFG_ITLBNUM : integer := 8; constant CFG_DTLBNUM : integer := 8; - constant CFG_TLB_TYPE : integer := 0 + 0*2; + constant CFG_TLB_TYPE : integer := 0 + 1*2; constant CFG_TLB_REP : integer := 0; constant CFG_MMU_PAGE : integer := 0; constant CFG_DSU : integer := 1; - constant CFG_ITBSZ : integer := 1; - constant CFG_ATBSZ : integer := 1; + constant CFG_ITBSZ : integer := 4; + constant CFG_ATBSZ : integer := 4; constant CFG_LEON3FT_EN : integer := 0; constant CFG_IUFT_EN : integer := 0; constant CFG_FPUFT_EN : integer := 0; @@ -121,12 +79,12 @@ package config is constant CFG_CACHE_ERRINJ : integer := 0; constant CFG_LEON3_NETLIST: integer := 0; constant CFG_DISAS : integer := 0 + 0; - constant CFG_PCLOW : integer := 2; + constant CFG_PCLOW : integer := 0; -- AMBA settings constant CFG_DEFMST : integer := (0); constant CFG_RROBIN : integer := 1; constant CFG_SPLIT : integer := 0; - constant CFG_FPNPEN : integer := 0; + constant CFG_FPNPEN : integer := 1; constant CFG_AHBIO : integer := 16#FFF#; constant CFG_APBADDR : integer := 16#800#; constant CFG_AHB_MON : integer := 0; @@ -138,32 +96,34 @@ package config is -- JTAG based DSU interface constant CFG_AHB_JTAG : integer := 1; -- Ethernet DSU - constant CFG_DSU_ETH : integer := 1 + 0 + 0; - constant CFG_ETH_BUF : integer := 2; + constant CFG_DSU_ETH : integer := 0 + 0 + 0; + constant CFG_ETH_BUF : integer := 1; constant CFG_ETH_IPM : integer := 16#C0A8#; constant CFG_ETH_IPL : integer := 16#0033#; constant CFG_ETH_ENM : integer := 16#020000#; - constant CFG_ETH_ENL : integer := 16#00001F#; --- PROM/SRAM controller - constant CFG_SRCTRL : integer := 0; - constant CFG_SRCTRL_PROMWS : integer := 0; - constant CFG_SRCTRL_RAMWS : integer := 0; - constant CFG_SRCTRL_IOWS : integer := 0; - constant CFG_SRCTRL_RMW : integer := 0; - constant CFG_SRCTRL_8BIT : integer := 0; - constant CFG_SRCTRL_SRBANKS : integer := 1; - constant CFG_SRCTRL_BANKSZ : integer := 0; - constant CFG_SRCTRL_ROMASEL : integer := 0; + constant CFG_ETH_ENL : integer := 16#000009#; -- LEON2 memory controller constant CFG_MCTRL_LEON2 : integer := 1; - constant CFG_MCTRL_RAM8BIT : integer := 0; - constant CFG_MCTRL_RAM16BIT : integer := 0; + constant CFG_MCTRL_RAM8BIT : integer := 1; + constant CFG_MCTRL_RAM16BIT : integer := 1; constant CFG_MCTRL_5CS : integer := 0; - constant CFG_MCTRL_SDEN : integer := 1; + constant CFG_MCTRL_SDEN : integer := 0; constant CFG_MCTRL_SEPBUS : integer := 0; constant CFG_MCTRL_INVCLK : integer := 0; constant CFG_MCTRL_SD64 : integer := 0; constant CFG_MCTRL_PAGE : integer := 0 + 0; +-- Xilinx MIG + constant CFG_MIG_DDR2 : integer := 0; + constant CFG_MIG_RANKS : integer := 1; + constant CFG_MIG_COLBITS : integer := 10; + constant CFG_MIG_ROWBITS : integer := 13; + constant CFG_MIG_BANKBITS: integer := 2; + constant CFG_MIG_HMASK : integer := 16#F00#; +-- Xilinx MIG Series 7 + constant CFG_MIG_SERIES7 : integer := 1; +-- AHB status register + constant CFG_AHBSTAT : integer := 0; + constant CFG_AHBSTATN : integer := 1; -- AHB ROM constant CFG_AHBROMEN : integer := 0; constant CFG_AHBROPIP : integer := 0; @@ -171,19 +131,23 @@ package config is constant CFG_ROMADDR : integer := 16#000#; constant CFG_ROMMASK : integer := 16#E00# + 16#000#; -- AHB RAM - constant CFG_AHBRAMEN : integer := 0; - constant CFG_AHBRSZ : integer := 1; + constant CFG_AHBRAMEN : integer := 1; + constant CFG_AHBRSZ : integer := 4; constant CFG_AHBRADDR : integer := 16#A00#; + -- Gaisler Ethernet core - constant CFG_GRETH : integer := 1; + constant CFG_GRETH : integer := 0; constant CFG_GRETH1G : integer := 0; - constant CFG_ETH_FIFO : integer := 32; + constant CFG_ETH_FIFO : integer := 8; + -- UART 1 constant CFG_UART1_ENABLE : integer := 1; - constant CFG_UART1_FIFO : integer := 4; + constant CFG_UART1_FIFO : integer := 32; + -- LEON3 interrupt controller constant CFG_IRQ3_ENABLE : integer := 1; constant CFG_IRQ3_NSEC : integer := 0; + -- Modular timer constant CFG_GPT_ENABLE : integer := 1; constant CFG_GPT_NTIM : integer := (2); @@ -193,20 +157,45 @@ package config is constant CFG_GPT_SEPIRQ : integer := 1; constant CFG_GPT_WDOGEN : integer := 0; constant CFG_GPT_WDOG : integer := 16#0#; --- ATA interface - constant CFG_ATA : integer := 0; - constant CFG_ATAIO : integer := 16#0#; - constant CFG_ATAIRQ : integer := 0; - constant CFG_ATADMA : integer := 0; - constant CFG_ATAFIFO : integer := 8; + +-- GPIO port + constant CFG_GRGPIO_ENABLE : integer := 1; + constant CFG_GRGPIO_IMASK : integer := 16#0000#; + constant CFG_GRGPIO_WIDTH : integer := (8); + +-- I2C master + constant CFG_I2C_ENABLE : integer := 1; + -- VGA and PS2/ interface constant CFG_KBD_ENABLE : integer := 0; constant CFG_VGA_ENABLE : integer := 0; constant CFG_SVGA_ENABLE : integer := 0; --- AHB2HPI enable - constant CFG_AHB2HPI : integer := 1; --- DAC_AHB enable - constant CFG_DAC_AHB : integer := 1; + +-- SPI memory controller + constant CFG_SPIMCTRL : integer := 0; + constant CFG_SPIMCTRL_SDCARD : integer := 0; + constant CFG_SPIMCTRL_READCMD : integer := 16#0#; + constant CFG_SPIMCTRL_DUMMYBYTE : integer := 0; + constant CFG_SPIMCTRL_DUALOUTPUT : integer := 0; + constant CFG_SPIMCTRL_SCALER : integer := 1; + constant CFG_SPIMCTRL_ASCALER : integer := 1; + constant CFG_SPIMCTRL_PWRUPCNT : integer := 0; + constant CFG_SPIMCTRL_OFFSET : integer := 16#0#; + +-- SPI controller + constant CFG_SPICTRL_ENABLE : integer := 0; + constant CFG_SPICTRL_NUM : integer := 1; + constant CFG_SPICTRL_SLVS : integer := 1; + constant CFG_SPICTRL_FIFO : integer := 1; + constant CFG_SPICTRL_SLVREG : integer := 0; + constant CFG_SPICTRL_ODMODE : integer := 0; + constant CFG_SPICTRL_AM : integer := 0; + constant CFG_SPICTRL_ASEL : integer := 0; + constant CFG_SPICTRL_TWEN : integer := 0; + constant CFG_SPICTRL_MAXWLEN : integer := 0; + constant CFG_SPICTRL_SYNCRAM : integer := 0; + constant CFG_SPICTRL_FT : integer := 0; + -- GRLIB debugging constant CFG_DUART : integer := 0; end; diff --git a/designs/leon3-ge-hpe-mini/config.vhd.h b/designs/leon3-xilinx-vc707/config.vhd.h similarity index 75% rename from designs/leon3-ge-hpe-mini/config.vhd.h rename to designs/leon3-xilinx-vc707/config.vhd.h index ea9ea058..d3303929 100644 --- a/designs/leon3-ge-hpe-mini/config.vhd.h +++ b/designs/leon3-xilinx-vc707/config.vhd.h @@ -96,17 +96,6 @@ constant CFG_ETH_ENM : integer := 16#CONFIG_DSU_ETHMSB#; constant CFG_ETH_ENL : integer := 16#CONFIG_DSU_ETHLSB#; --- PROM/SRAM controller - constant CFG_SRCTRL : integer := CONFIG_SRCTRL; - constant CFG_SRCTRL_PROMWS : integer := CONFIG_SRCTRL_PROMWS; - constant CFG_SRCTRL_RAMWS : integer := CONFIG_SRCTRL_RAMWS; - constant CFG_SRCTRL_IOWS : integer := CONFIG_SRCTRL_IOWS; - constant CFG_SRCTRL_RMW : integer := CONFIG_SRCTRL_RMW; - constant CFG_SRCTRL_8BIT : integer := CONFIG_SRCTRL_8BIT; - - constant CFG_SRCTRL_SRBANKS : integer := CFG_SR_CTRL_SRBANKS; - constant CFG_SRCTRL_BANKSZ : integer := CFG_SR_CTRL_BANKSZ; - constant CFG_SRCTRL_ROMASEL : integer := CONFIG_SRCTRL_ROMASEL; -- LEON2 memory controller constant CFG_MCTRL_LEON2 : integer := CONFIG_MCTRL_LEON2; constant CFG_MCTRL_RAM8BIT : integer := CONFIG_MCTRL_8BIT; @@ -118,6 +107,22 @@ constant CFG_MCTRL_SD64 : integer := CONFIG_MCTRL_SDRAM_BUS64; constant CFG_MCTRL_PAGE : integer := CONFIG_MCTRL_PAGE + CONFIG_MCTRL_PROGPAGE; +-- Xilinx MIG + constant CFG_MIG_DDR2 : integer := CONFIG_MIG_DDR2; + constant CFG_MIG_RANKS : integer := CONFIG_MIG_RANKS; + constant CFG_MIG_COLBITS : integer := CONFIG_MIG_COLBITS; + constant CFG_MIG_ROWBITS : integer := CONFIG_MIG_ROWBITS; + constant CFG_MIG_BANKBITS: integer := CONFIG_MIG_BANKBITS; + constant CFG_MIG_HMASK : integer := 16#CONFIG_MIG_HMASK#; + + +-- Xilinx MIG Series 7 + constant CFG_MIG_SERIES7 : integer := CONFIG_MIG_SERIES7; + +-- AHB status register + constant CFG_AHBSTAT : integer := CONFIG_AHBSTAT_ENABLE; + constant CFG_AHBSTATN : integer := CONFIG_AHBSTAT_NFTSLV; + -- AHB ROM constant CFG_AHBROMEN : integer := CONFIG_AHBROM_ENABLE; constant CFG_AHBROPIP : integer := CONFIG_AHBROM_PIPE; @@ -153,23 +158,43 @@ constant CFG_GPT_WDOGEN : integer := CONFIG_GPT_WDOGEN; constant CFG_GPT_WDOG : integer := 16#CONFIG_GPT_WDOG#; --- ATA interface - constant CFG_ATA : integer := CONFIG_ATA_ENABLE; - constant CFG_ATAIO : integer := 16#CONFIG_ATAIO#; - constant CFG_ATAIRQ : integer := CONFIG_ATAIRQ; - constant CFG_ATADMA : integer := CONFIG_ATA_MWDMA; - constant CFG_ATAFIFO : integer := CONFIG_ATA_FIFO; +-- GPIO port + constant CFG_GRGPIO_ENABLE : integer := CONFIG_GRGPIO_ENABLE; + constant CFG_GRGPIO_IMASK : integer := 16#CONFIG_GRGPIO_IMASK#; + constant CFG_GRGPIO_WIDTH : integer := CONFIG_GRGPIO_WIDTH; + +-- I2C master + constant CFG_I2C_ENABLE : integer := CONFIG_I2C_ENABLE; -- VGA and PS2/ interface constant CFG_KBD_ENABLE : integer := CONFIG_KBD_ENABLE; constant CFG_VGA_ENABLE : integer := CONFIG_VGA_ENABLE; constant CFG_SVGA_ENABLE : integer := CONFIG_SVGA_ENABLE; --- AHB2HPI enable - constant CFG_AHB2HPI : integer := CONFIG_AHB2HPI_ENABLE; - --- DAC_AHB enable - constant CFG_DAC_AHB : integer := CONFIG_DAC_AHB_ENABLE; +-- SPI memory controller + constant CFG_SPIMCTRL : integer := CONFIG_SPIMCTRL; + constant CFG_SPIMCTRL_SDCARD : integer := CONFIG_SPIMCTRL_SDCARD; + constant CFG_SPIMCTRL_READCMD : integer := 16#CONFIG_SPIMCTRL_READCMD#; + constant CFG_SPIMCTRL_DUMMYBYTE : integer := CONFIG_SPIMCTRL_DUMMYBYTE; + constant CFG_SPIMCTRL_DUALOUTPUT : integer := CONFIG_SPIMCTRL_DUALOUTPUT; + constant CFG_SPIMCTRL_SCALER : integer := CONFIG_SPIMCTRL_SCALER; + constant CFG_SPIMCTRL_ASCALER : integer := CONFIG_SPIMCTRL_ASCALER; + constant CFG_SPIMCTRL_PWRUPCNT : integer := CONFIG_SPIMCTRL_PWRUPCNT; + constant CFG_SPIMCTRL_OFFSET : integer := 16#CONFIG_SPIMCTRL_OFFSET#; + +-- SPI controller + constant CFG_SPICTRL_ENABLE : integer := CONFIG_SPICTRL_ENABLE; + constant CFG_SPICTRL_NUM : integer := CONFIG_SPICTRL_NUM; + constant CFG_SPICTRL_SLVS : integer := CONFIG_SPICTRL_SLVS; + constant CFG_SPICTRL_FIFO : integer := CONFIG_SPICTRL_FIFO; + constant CFG_SPICTRL_SLVREG : integer := CONFIG_SPICTRL_SLVREG; + constant CFG_SPICTRL_ODMODE : integer := CONFIG_SPICTRL_ODMODE; + constant CFG_SPICTRL_AM : integer := CONFIG_SPICTRL_AM; + constant CFG_SPICTRL_ASEL : integer := CONFIG_SPICTRL_ASEL; + constant CFG_SPICTRL_TWEN : integer := CONFIG_SPICTRL_TWEN; + constant CFG_SPICTRL_MAXWLEN : integer := CONFIG_SPICTRL_MAXWLEN; + constant CFG_SPICTRL_SYNCRAM : integer := CONFIG_SPICTRL_SYNCRAM; + constant CFG_SPICTRL_FT : integer := CONFIG_SPICTRL_FT; -- GRLIB debugging constant CFG_DUART : integer := CONFIG_DEBUG_UART; diff --git a/designs/leon3-lattice-latticeECP3/config.vhd.in b/designs/leon3-xilinx-vc707/config.vhd.in similarity index 89% rename from designs/leon3-lattice-latticeECP3/config.vhd.in rename to designs/leon3-xilinx-vc707/config.vhd.in index 895ee7e0..0b22306b 100644 --- a/designs/leon3-lattice-latticeECP3/config.vhd.in +++ b/designs/leon3-xilinx-vc707/config.vhd.in @@ -3,7 +3,7 @@ ----------------------------------------------------------------------------- -- LEON3 Demonstration design test bench configuration --- Copyright (C) 2012 Aeroflex Gaisler +-- Copyright (C) 2009 Aeroflex Gaisler ------------------------------------------------------------------------------ @@ -15,4 +15,5 @@ package config is #include "config.vhd.h" + end; diff --git a/designs/leon3-xilinx-vc707/ddr_dummy.vhd b/designs/leon3-xilinx-vc707/ddr_dummy.vhd new file mode 100644 index 00000000..cf6a9d46 --- /dev/null +++ b/designs/leon3-xilinx-vc707/ddr_dummy.vhd @@ -0,0 +1,141 @@ +---------------------------------------------------------------------------- +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2012 Aeroflex Gaisler +---------------------------------------------------------------------------- +-- Package: ddr_dummy +-- File:ddr_dummy.vhd +-- Author:Fredrik Ringhage - Gaisler Research +-- Description: Xilinx MIG wrapper +------------------------------------------------------------------------------ + + +library ieee; +use ieee.std_logic_1164.all; +library techmap; +use techmap.gencomp.all; +-- pragma translate_off +library unisim; +use unisim.IBUF; +-- pragma translate_on + +library work; + +entity ddr_dummy is + generic ( + USE_MIG_INTERFACE_MODEL : boolean := false; + nCS_PER_RANK : integer := 1; -- # of unique CS outputs per rank + BANK_WIDTH : integer := 3; -- # of bank address + CKE_WIDTH : integer := 1; -- # of clock enable outputs + CS_WIDTH : integer := 1; -- # of chip select + DM_WIDTH : integer := 8; -- # of data mask + DQ_WIDTH : integer := 64; -- # of data bits + DQS_WIDTH : integer := 8; -- # of strobe pairs + ODT_WIDTH : integer := 1; -- # of ODT outputs + ROW_WIDTH : integer := 14 -- # of row/column address + ); + port ( + ddr_ck_p : out std_logic_vector(0 downto 0); + ddr_ck_n : out std_logic_vector(0 downto 0); + ddr_addr : out std_logic_vector(ROW_WIDTH-1 downto 0); + ddr_ba : out std_logic_vector(BANK_WIDTH-1 downto 0); + ddr_cas_n : out std_logic; + ddr_cke : out std_logic_vector(CKE_WIDTH-1 downto 0); + ddr_cs_n : out std_logic_vector(CS_WIDTH*nCS_PER_RANK-1 downto 0); + ddr_dm : out std_logic_vector(DM_WIDTH-1 downto 0); + ddr_odt : out std_logic_vector(ODT_WIDTH-1 downto 0); + ddr_ras_n : out std_logic; + ddr_we_n : out std_logic; + ddr_reset_n : out std_logic; + ddr_dq : inout std_logic_vector(DQ_WIDTH-1 downto 0); + ddr_dqs : inout std_logic_vector(DQS_WIDTH-1 downto 0); + ddr_dqs_n : inout std_logic_vector(DQS_WIDTH-1 downto 0) + ); +end; + +architecture rtl of ddr_dummy is + + component OBUF generic (IOSTANDARD : string := "SSTL15"); + port (O : out std_ulogic; I : in std_ulogic); + end component; + + component IOBUF generic (IOSTANDARD : string := "SSTL15_T_DCI"); + port (O : out std_ulogic; IO : inout std_logic; I, T : in std_ulogic); + end component; + + component OBUFDS generic(IOSTANDARD : string := "DIFF_SSTL15"); + port(O : out std_ulogic; OB : out std_ulogic; I : in std_ulogic); +end component; + + component IOBUFDS generic (IOSTANDARD : string := "DIFF_SSTL15"); + port (O : out std_ulogic; IO, IOB : inout std_logic; I, T : in std_ulogic); + end component; + + signal in_dq : std_logic_vector(DQ_WIDTH-1 downto 0); + signal in_dqs : std_logic_vector(DQS_WIDTH-1 downto 0); + +begin + + io_cas : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_cas_n, I => '0'); + + io_ras : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_ras_n, I => '0'); + + io_we : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_we_n, I => '0'); + + io_ck : OBUFDS generic map (IOSTANDARD => "DIFF_SSTL15") + port map (O => ddr_ck_p(0), OB => ddr_ck_n(0), I => '0'); + + io_addr_gen : for i in 0 to ROW_WIDTH-1 generate + begin + io_addr : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_addr(i), I => '0'); + end generate io_addr_gen; + + io_ba_gen : for i in 0 to BANK_WIDTH-1 generate + begin + io_addr : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_ba(i), I => '0'); + end generate io_ba_gen; + + io_cs_gen : for i in 0 to CS_WIDTH*nCS_PER_RANK-1 generate + begin + io_cs : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_cs_n(i), I => '0'); + end generate io_cs_gen; + + io_odt_gen : for i in 0 to ODT_WIDTH-1 generate + begin + io_odt : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_odt(i), I => '0'); + end generate io_odt_gen; + + io_dm_gen : for i in 0 to DM_WIDTH-1 generate + begin + io_dm : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_dm(i), I => '0'); + end generate io_dm_gen; + + io_cke_gen : for i in 0 to CKE_WIDTH-1 generate + begin + io_cke : OBUF generic map (IOSTANDARD => "SSTL15") + port map (O => ddr_cke(i), I => '0'); + end generate io_cke_gen; + + op_reset : OBUF generic map (IOSTANDARD => "LVCMOS15") + port map (O => ddr_reset_n, I => '1'); + + io_dq_gen : for i in 0 to DQ_WIDTH-1 generate + begin + io_dq : IOBUF generic map (IOSTANDARD => "SSTL15_T_DCI") + port map (O => in_dq(i), IO => ddr_dq(i), I => '0', T => '0'); + end generate io_dq_gen; + + io_dqs_gen : for i in 0 to DQS_WIDTH-1 generate + begin + io_dqs : IOBUFDS generic map (IOSTANDARD => "DIFF_SSTL15_T_DCI") + port map (O => in_dqs(i), IO => ddr_dqs(i), IOB => ddr_dqs_n(i), I => '0', T => '1'); + end generate io_dqs_gen; + +end architecture rtl; \ No newline at end of file diff --git a/designs/leon3-ge-hpe-mini-lattice/lconfig.tk b/designs/leon3-xilinx-vc707/lconfig.tk similarity index 66% rename from designs/leon3-ge-hpe-mini-lattice/lconfig.tk rename to designs/leon3-xilinx-vc707/lconfig.tk index 3b8844ec..fd06731a 100755 --- a/designs/leon3-ge-hpe-mini-lattice/lconfig.tk +++ b/designs/leon3-xilinx-vc707/lconfig.tk @@ -644,7 +644,7 @@ set active_menus [list] set processed_top_level 0 set ARCH sparc set menus_per_column 4 -set total_menus 23 +set total_menus 25 proc toplevel_menu {num} { if {$num == 4} then {return 3} @@ -663,10 +663,12 @@ proc toplevel_menu {num} { if {$num == 20} then {return 13} if {$num == 21} then {return 13} if {$num == 22} then {return 13} + if {$num == 23} then {return 22} + if {$num == 24} then {return 22} return $num } -mainmenu_name "LEON3MINI Design Configuration" +mainmenu_name "LEON3MP Xilinx VC707 Design Configuration" menu_option menu1 1 "Synthesis " proc menu1 {w title} { set oldFocus [focus] @@ -756,7 +758,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -766,7 +769,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -909,8 +914,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -929,6 +936,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1018,9 +1029,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1074,10 +1086,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1123,14 +1136,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1203,13 +1218,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1249,22 +1272,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1321,21 +1612,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1382,36 +1673,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1419,48 +1711,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1516,29 +1809,30 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 3 - bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST + bool $w.config.f 5 3 "Shared GRFPU " CONFIG_FPU_GRFPU_SH + global tmpvar_8 + minimenu $w.config.f 5 4 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 + menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" + $w.config.f.x4.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 3 + bool $w.config.f 5 5 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1577,17 +1871,22 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + global CONFIG_HAS_SHARED_GRFPU + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} } @@ -1595,34 +1894,39 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global CONFIG_HAS_SHARED_GRFPU + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then { + set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH&15]} else {set CONFIG_FPU_GRFPU_SH [expr $CONFIG_FPU_GRFPU_SH|16]} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1679,92 +1983,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1772,18 +2076,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1824,52 +2128,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1877,162 +2182,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2088,45 +2394,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2166,18 +2474,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2185,55 +2494,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2290,24 +2604,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2347,17 +2661,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2365,37 +2680,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2451,16 +2767,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2508,9 +2831,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2532,21 +2853,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2853,22 +3179,23 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART - bool $w.config.f 12 1 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 2 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 - menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" - menusplit $w $w.config.f.x2.x.menu 5 - hex $w.config.f 12 3 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB - hex $w.config.f 12 4 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB - hex $w.config.f 12 5 "MSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHMSB - hex $w.config.f 12 6 "LSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHLSB - bool $w.config.f 12 7 "Programmable 4-bit LSB of MAC/IP address" CONFIG_DSU_ETH_PROG - bool $w.config.f 12 8 "EDCL disable pin " CONFIG_DSU_ETH_DIS + bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG + bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 5 + hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB + hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB + hex $w.config.f 12 6 "MSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHMSB + hex $w.config.f 12 7 "LSB 24 bits of ethern number (hex) " CONFIG_DSU_ETHLSB + bool $w.config.f 12 8 "Programmable 4-bit LSB of MAC/IP address" CONFIG_DSU_ETH_PROG + bool $w.config.f 12 9 "EDCL disable pin " CONFIG_DSU_ETH_DIS @@ -2908,23 +3235,23 @@ proc update_menu12 {} { global CONFIG_GRETH_ENABLE global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { - configure_entry .menu12.config.f.x1 normal {n l y}} else {configure_entry .menu12.config.f.x1 disabled {y n l}} - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {configure_entry .menu12.config.f.x2 normal {x l}} else {configure_entry .menu12.config.f.x2 disabled {x l}} + configure_entry .menu12.config.f.x2 normal {n l y}} else {configure_entry .menu12.config.f.x2 disabled {y n l}} + 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}} global CONFIG_DSU_IPMSB - if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {.menu12.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu12.config.f.x3.l configure -state normal; } else {.menu12.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu12.config.f.x3.l configure -state disabled} - global CONFIG_DSU_IPLSB 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} - global CONFIG_DSU_ETHMSB + global CONFIG_DSU_IPLSB 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} - global CONFIG_DSU_ETHLSB + global CONFIG_DSU_ETHMSB 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} + global CONFIG_DSU_ETHLSB + 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} global CONFIG_GRETH_GIGA global CONFIG_DSU_ETH_PROG if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - configure_entry .menu12.config.f.x7 normal {n l y}} else {configure_entry .menu12.config.f.x7 disabled {y n l}} + configure_entry .menu12.config.f.x8 normal {n l y}} else {configure_entry .menu12.config.f.x8 disabled {y n l}} global CONFIG_DSU_ETH_DIS if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - configure_entry .menu12.config.f.x8 normal {n l y}} else {configure_entry .menu12.config.f.x8 disabled {y n l}} + configure_entry .menu12.config.f.x9 normal {n l y}} else {configure_entry .menu12.config.f.x9 disabled {y n l}} } @@ -2935,17 +3262,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3015,12 +3342,12 @@ proc menu13 {w title} { pack $w.config.canvas -side right -fill y - submenu $w.config.f 13 0 "Memory controllers " 14 + submenu $w.config.f 13 0 "Memory controller " 14 submenu $w.config.f 13 1 "On-chip RAM/ROM " 18 submenu $w.config.f 13 2 "Ethernet " 19 - submenu $w.config.f 13 3 "ATA " 20 - submenu $w.config.f 13 4 "UARTs, timers and irq control " 21 - submenu $w.config.f 13 5 "Keybord and VGA interface" 22 + submenu $w.config.f 13 3 "UARTs, timers and irq control " 20 + submenu $w.config.f 13 4 "Keybord and VGA interface" 21 + submenu $w.config.f 13 5 "SPI" 22 @@ -3075,9 +3402,9 @@ proc menu14 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 14]] message $w.m -width 400 -aspect 300 -text \ - "Memory controllers " -relief raised + "Memory controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "Memory controllers " + wm title $w "Memory controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 14; break" set nextscript "catch {focus $oldFocus}; menu15 .menu15 \"$title\"" @@ -3117,9 +3444,11 @@ proc menu14 {w title} { pack $w.config.canvas -side right -fill y - submenu $w.config.f 14 0 "8/32-bit PROM/SRAM controller " 15 - submenu $w.config.f 14 1 "Leon2 memory controller " 16 - submenu $w.config.f 14 2 "Multi-port DDR controller " 17 + submenu $w.config.f 14 0 "Leon2 memory controller " 15 + submenu $w.config.f 14 1 "MIG memory controller " 16 + submenu $w.config.f 14 2 "MIG Series 7 memory controller " 17 + bool $w.config.f 14 3 "Enable AHB Status Register " CONFIG_AHBSTAT_ENABLE + int $w.config.f 14 4 "Number of correctable-error slaves " CONFIG_AHBSTAT_NFTSLV @@ -3157,12 +3486,18 @@ proc menu14 {w title} { } proc update_menu14 {} { + global CONFIG_AHBSTAT_ENABLE + global CONFIG_AHBSTAT_NFTSLV + if {($CONFIG_AHBSTAT_ENABLE == 1)} then {.menu14.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu14.config.f.x4.l configure -state normal; } else {.menu14.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu14.config.f.x4.l configure -state disabled} } proc update_define_menu14 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_AHBSTAT_ENABLE + global CONFIG_AHBSTAT_NFTSLV + if {($CONFIG_AHBSTAT_ENABLE == 1)} then {validate_int CONFIG_AHBSTAT_NFTSLV "$CONFIG_AHBSTAT_NFTSLV" 1} } @@ -3175,9 +3510,9 @@ proc menu15 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 15]] message $w.m -width 400 -aspect 300 -text \ - "8/32-bit PROM/SRAM controller " -relief raised + "Leon2 memory controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "8/32-bit PROM/SRAM controller " + wm title $w "Leon2 memory controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 15; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 15; menu16 .menu16 \"$title\"" @@ -3217,47 +3552,23 @@ proc menu15 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 15 0 "Enable 8/32-bit PROM/SRAM controller " CONFIG_SRCTRL - bool $w.config.f 15 1 "8-bit PROM interface " CONFIG_SRCTRL_8BIT - int $w.config.f 15 2 "PROM waitstates" CONFIG_SRCTRL_PROMWS - int $w.config.f 15 3 "RAM waitstates" CONFIG_SRCTRL_RAMWS - int $w.config.f 15 4 "IO waitstates" CONFIG_SRCTRL_IOWS - bool $w.config.f 15 5 "Use read-modify-write for sub-word writes " CONFIG_SRCTRL_RMW - global tmpvar_27 - minimenu $w.config.f 15 6 "SRAM banks" tmpvar_27 CONFIG_SRCTRL_SRBANKS1 - menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"SRAM banks\"" - $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_27 -value "3" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_27 -value "5" -command "update_active" - menusplit $w $w.config.f.x6.x.menu 5 - global tmpvar_28 - minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_28 CONFIG_SRCTRL_BANKSZ0 - menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"SRAM bank size (kb) (0 for programmable)\"" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_28 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_28 -value "256" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_28 -value "512" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_28 -value "1024" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_28 -value "2048" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_28 -value "4096" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_28 -value "8192" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_28 -value "16384" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_28 -value "32768" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_28 -value "65536" -command "update_active" - menusplit $w $w.config.f.x7.x.menu 14 - int $w.config.f 15 8 "PROM bank select address bit (0 - 28)" CONFIG_SRCTRL_ROMASEL + bool $w.config.f 15 0 "Enable Leon2 memory controller " CONFIG_MCTRL_LEON2 + bool $w.config.f 15 1 "8-bit PROM/SRAM bus support " CONFIG_MCTRL_8BIT + bool $w.config.f 15 2 "16-bit PROM/SRAM bus support " CONFIG_MCTRL_16BIT + bool $w.config.f 15 3 "5th SRAM chip-select " CONFIG_MCTRL_5CS + bool $w.config.f 15 4 "SDRAM controller " CONFIG_MCTRL_SDRAM + bool $w.config.f 15 5 "Separate address and data buses" CONFIG_MCTRL_SDRAM_SEPBUS + bool $w.config.f 15 6 "64-bit SDRAM data bus" CONFIG_MCTRL_SDRAM_BUS64 + bool $w.config.f 15 7 "Unsynchronized sdclock" CONFIG_MCTRL_SDRAM_INVCLK + bool $w.config.f 15 8 "Enable page burst operation " CONFIG_MCTRL_PAGE + bool $w.config.f 15 9 "Enable programmable page burst " CONFIG_MCTRL_PROGPAGE focus $w update_active global winx; global winy - if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers "} + if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controller "} set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks @@ -3288,84 +3599,68 @@ proc menu15 {w title} { } proc update_menu15 {} { - global CONFIG_SRCTRL - global CONFIG_SRCTRL_8BIT - if {($CONFIG_SRCTRL == 1)} then { + global CONFIG_MCTRL_LEON2 + global CONFIG_MCTRL_8BIT + if {($CONFIG_MCTRL_LEON2 == 1)} then { configure_entry .menu15.config.f.x1 normal {n l y}} else {configure_entry .menu15.config.f.x1 disabled {y n l}} - global CONFIG_SRCTRL_PROMWS - 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} - global CONFIG_SRCTRL_RAMWS - 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} - global CONFIG_SRCTRL_IOWS - 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} - global CONFIG_SRCTRL_RMW - if {($CONFIG_SRCTRL == 1)} then { + global CONFIG_MCTRL_16BIT + if {($CONFIG_MCTRL_LEON2 == 1)} then { + configure_entry .menu15.config.f.x2 normal {n l y}} else {configure_entry .menu15.config.f.x2 disabled {y n l}} + global CONFIG_MCTRL_5CS + if {($CONFIG_MCTRL_LEON2 == 1)} then { + configure_entry .menu15.config.f.x3 normal {n l y}} else {configure_entry .menu15.config.f.x3 disabled {y n l}} + global CONFIG_MCTRL_SDRAM + if {($CONFIG_MCTRL_LEON2 == 1)} then { + configure_entry .menu15.config.f.x4 normal {n l y}} else {configure_entry .menu15.config.f.x4 disabled {y n l}} + global CONFIG_MCTRL_SDRAM_SEPBUS + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { configure_entry .menu15.config.f.x5 normal {n l y}} else {configure_entry .menu15.config.f.x5 disabled {y n l}} - if {($CONFIG_SRCTRL == 1)} then {configure_entry .menu15.config.f.x6 normal {x l}} else {configure_entry .menu15.config.f.x6 disabled {x l}} - if {($CONFIG_SRCTRL == 1)} then {configure_entry .menu15.config.f.x7 normal {x l}} else {configure_entry .menu15.config.f.x7 disabled {x l}} - global CONFIG_SRCTRL_ROMASEL - 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} + global CONFIG_MCTRL_SDRAM_BUS64 + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { + configure_entry .menu15.config.f.x6 normal {n l y}} else {configure_entry .menu15.config.f.x6 disabled {y n l}} + global CONFIG_MCTRL_SDRAM_INVCLK + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { + configure_entry .menu15.config.f.x7 normal {n l y}} else {configure_entry .menu15.config.f.x7 disabled {y n l}} + global CONFIG_MCTRL_PAGE + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { + configure_entry .menu15.config.f.x8 normal {n l y}} else {configure_entry .menu15.config.f.x8 disabled {y n l}} + global CONFIG_MCTRL_PROGPAGE + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then { + configure_entry .menu15.config.f.x9 normal {n l y}} else {configure_entry .menu15.config.f.x9 disabled {y n l}} } proc update_define_menu15 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_SRCTRL - global CONFIG_SRCTRL_8BIT - if {($CONFIG_SRCTRL == 1)} then { - set CONFIG_SRCTRL_8BIT [expr $CONFIG_SRCTRL_8BIT&15]} else {set CONFIG_SRCTRL_8BIT [expr $CONFIG_SRCTRL_8BIT|16]} - global CONFIG_SRCTRL_PROMWS - if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_PROMWS "$CONFIG_SRCTRL_PROMWS" 3} - global CONFIG_SRCTRL_RAMWS - if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_RAMWS "$CONFIG_SRCTRL_RAMWS" 0} - global CONFIG_SRCTRL_IOWS - if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_IOWS "$CONFIG_SRCTRL_IOWS" 0} - global CONFIG_SRCTRL_RMW - if {($CONFIG_SRCTRL == 1)} then { - set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW&15]} else {set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW|16]} - global tmpvar_27 - global CONFIG_SRCTRL_SRBANKS1 - if {$tmpvar_27 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} - global CONFIG_SRCTRL_SRBANKS2 - if {$tmpvar_27 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} - global CONFIG_SRCTRL_SRBANKS3 - if {$tmpvar_27 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} - global CONFIG_SRCTRL_SRBANKS4 - if {$tmpvar_27 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} - global CONFIG_SRCTRL_SRBANKS5 - if {$tmpvar_27 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} - global tmpvar_28 - global CONFIG_SRCTRL_BANKSZ0 - if {$tmpvar_28 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} - global CONFIG_SRCTRL_BANKSZ1 - if {$tmpvar_28 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} - global CONFIG_SRCTRL_BANKSZ2 - if {$tmpvar_28 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} - global CONFIG_SRCTRL_BANKSZ3 - if {$tmpvar_28 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} - global CONFIG_SRCTRL_BANKSZ4 - if {$tmpvar_28 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} - global CONFIG_SRCTRL_BANKSZ5 - if {$tmpvar_28 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} - global CONFIG_SRCTRL_BANKSZ6 - if {$tmpvar_28 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} - global CONFIG_SRCTRL_BANKSZ7 - if {$tmpvar_28 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} - global CONFIG_SRCTRL_BANKSZ8 - if {$tmpvar_28 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} - global CONFIG_SRCTRL_BANKSZ9 - if {$tmpvar_28 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} - global CONFIG_SRCTRL_BANKSZ10 - if {$tmpvar_28 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} - global CONFIG_SRCTRL_BANKSZ11 - if {$tmpvar_28 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} - global CONFIG_SRCTRL_BANKSZ12 - if {$tmpvar_28 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} - global CONFIG_SRCTRL_BANKSZ13 - if {$tmpvar_28 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} - global CONFIG_SRCTRL_ROMASEL - if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_ROMASEL "$CONFIG_SRCTRL_ROMASEL" 19} + global CONFIG_MCTRL_LEON2 + global CONFIG_MCTRL_8BIT + if {($CONFIG_MCTRL_LEON2 == 1)} then { + set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT&15]} else {set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT|16]} + global CONFIG_MCTRL_16BIT + if {($CONFIG_MCTRL_LEON2 == 1)} then { + set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT&15]} else {set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT|16]} + global CONFIG_MCTRL_5CS + if {($CONFIG_MCTRL_LEON2 == 1)} then { + set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS&15]} else {set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS|16]} + global CONFIG_MCTRL_SDRAM + if {($CONFIG_MCTRL_LEON2 == 1)} then { + set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM&15]} else {set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM|16]} + global CONFIG_MCTRL_SDRAM_SEPBUS + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { + set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS&15]} else {set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS|16]} + global CONFIG_MCTRL_SDRAM_BUS64 + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { + set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64&15]} else {set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64|16]} + global CONFIG_MCTRL_SDRAM_INVCLK + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { + set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK&15]} else {set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK|16]} + global CONFIG_MCTRL_PAGE + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { + set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE&15]} else {set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE|16]} + global CONFIG_MCTRL_PROGPAGE + if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then { + set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE&15]} else {set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE|16]} } @@ -3378,9 +3673,9 @@ proc menu16 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 16]] message $w.m -width 400 -aspect 300 -text \ - "Leon2 memory controller " -relief raised + "MIG memory controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "Leon2 memory controller " + wm title $w "MIG memory controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 16; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 16; menu17 .menu17 \"$title\"" @@ -3420,23 +3715,19 @@ proc menu16 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 16 0 "Enable Leon2 memory controller " CONFIG_MCTRL_LEON2 - bool $w.config.f 16 1 "8-bit PROM/SRAM bus support " CONFIG_MCTRL_8BIT - bool $w.config.f 16 2 "16-bit PROM/SRAM bus support " CONFIG_MCTRL_16BIT - bool $w.config.f 16 3 "5th SRAM chip-select " CONFIG_MCTRL_5CS - bool $w.config.f 16 4 "SDRAM controller " CONFIG_MCTRL_SDRAM - bool $w.config.f 16 5 "Separate address and data buses" CONFIG_MCTRL_SDRAM_SEPBUS - bool $w.config.f 16 6 "64-bit SDRAM data bus" CONFIG_MCTRL_SDRAM_BUS64 - bool $w.config.f 16 7 "Unsynchronized sdclock" CONFIG_MCTRL_SDRAM_INVCLK - bool $w.config.f 16 8 "Enable page burst operation " CONFIG_MCTRL_PAGE - bool $w.config.f 16 9 "Enable programmable page burst " CONFIG_MCTRL_PROGPAGE + bool $w.config.f 16 0 "Enable Xilinx MIG memory controller" CONFIG_MIG_DDR2 + int $w.config.f 16 1 "Chip selects (ranks) " CONFIG_MIG_RANKS + int $w.config.f 16 2 "Column bits " CONFIG_MIG_COLBITS + int $w.config.f 16 3 "Row bits " CONFIG_MIG_ROWBITS + int $w.config.f 16 4 "Bank bits " CONFIG_MIG_BANKBITS + hex $w.config.f 16 5 "AHB HMASK " CONFIG_MIG_HMASK focus $w update_active global winx; global winy - if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers "} + if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controller "} set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks @@ -3467,68 +3758,34 @@ proc menu16 {w title} { } proc update_menu16 {} { - global CONFIG_MCTRL_LEON2 - global CONFIG_MCTRL_8BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu16.config.f.x1 normal {n l y}} else {configure_entry .menu16.config.f.x1 disabled {y n l}} - global CONFIG_MCTRL_16BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu16.config.f.x2 normal {n l y}} else {configure_entry .menu16.config.f.x2 disabled {y n l}} - global CONFIG_MCTRL_5CS - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu16.config.f.x3 normal {n l y}} else {configure_entry .menu16.config.f.x3 disabled {y n l}} - global CONFIG_MCTRL_SDRAM - if {($CONFIG_MCTRL_LEON2 == 1)} then { - configure_entry .menu16.config.f.x4 normal {n l y}} else {configure_entry .menu16.config.f.x4 disabled {y n l}} - global CONFIG_MCTRL_SDRAM_SEPBUS - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - configure_entry .menu16.config.f.x5 normal {n l y}} else {configure_entry .menu16.config.f.x5 disabled {y n l}} - global CONFIG_MCTRL_SDRAM_BUS64 - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - configure_entry .menu16.config.f.x6 normal {n l y}} else {configure_entry .menu16.config.f.x6 disabled {y n l}} - global CONFIG_MCTRL_SDRAM_INVCLK - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - configure_entry .menu16.config.f.x7 normal {n l y}} else {configure_entry .menu16.config.f.x7 disabled {y n l}} - global CONFIG_MCTRL_PAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - configure_entry .menu16.config.f.x8 normal {n l y}} else {configure_entry .menu16.config.f.x8 disabled {y n l}} - global CONFIG_MCTRL_PROGPAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then { - configure_entry .menu16.config.f.x9 normal {n l y}} else {configure_entry .menu16.config.f.x9 disabled {y n l}} + global CONFIG_MIG_DDR2 + global CONFIG_MIG_RANKS + if {($CONFIG_MIG_DDR2 == 1)} then {.menu16.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x1.l configure -state normal; } else {.menu16.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x1.l configure -state disabled} + global CONFIG_MIG_COLBITS + if {($CONFIG_MIG_DDR2 == 1)} then {.menu16.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x2.l configure -state normal; } else {.menu16.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x2.l configure -state disabled} + global CONFIG_MIG_ROWBITS + if {($CONFIG_MIG_DDR2 == 1)} then {.menu16.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x3.l configure -state normal; } else {.menu16.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x3.l configure -state disabled} + global CONFIG_MIG_BANKBITS + if {($CONFIG_MIG_DDR2 == 1)} then {.menu16.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x4.l configure -state normal; } else {.menu16.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x4.l configure -state disabled} + global CONFIG_MIG_HMASK + if {($CONFIG_MIG_DDR2 == 1)} then {.menu16.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu16.config.f.x5.l configure -state normal; } else {.menu16.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu16.config.f.x5.l configure -state disabled} } proc update_define_menu16 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_MCTRL_LEON2 - global CONFIG_MCTRL_8BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT&15]} else {set CONFIG_MCTRL_8BIT [expr $CONFIG_MCTRL_8BIT|16]} - global CONFIG_MCTRL_16BIT - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT&15]} else {set CONFIG_MCTRL_16BIT [expr $CONFIG_MCTRL_16BIT|16]} - global CONFIG_MCTRL_5CS - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS&15]} else {set CONFIG_MCTRL_5CS [expr $CONFIG_MCTRL_5CS|16]} - global CONFIG_MCTRL_SDRAM - if {($CONFIG_MCTRL_LEON2 == 1)} then { - set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM&15]} else {set CONFIG_MCTRL_SDRAM [expr $CONFIG_MCTRL_SDRAM|16]} - global CONFIG_MCTRL_SDRAM_SEPBUS - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS&15]} else {set CONFIG_MCTRL_SDRAM_SEPBUS [expr $CONFIG_MCTRL_SDRAM_SEPBUS|16]} - global CONFIG_MCTRL_SDRAM_BUS64 - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64&15]} else {set CONFIG_MCTRL_SDRAM_BUS64 [expr $CONFIG_MCTRL_SDRAM_BUS64|16]} - global CONFIG_MCTRL_SDRAM_INVCLK - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_SDRAM_SEPBUS == 1)} then { - set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK&15]} else {set CONFIG_MCTRL_SDRAM_INVCLK [expr $CONFIG_MCTRL_SDRAM_INVCLK|16]} - global CONFIG_MCTRL_PAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then { - set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE&15]} else {set CONFIG_MCTRL_PAGE [expr $CONFIG_MCTRL_PAGE|16]} - global CONFIG_MCTRL_PROGPAGE - if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1) && ($CONFIG_MCTRL_PAGE == 1)} then { - set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE&15]} else {set CONFIG_MCTRL_PROGPAGE [expr $CONFIG_MCTRL_PROGPAGE|16]} + global CONFIG_MIG_DDR2 + global CONFIG_MIG_RANKS + if {($CONFIG_MIG_DDR2 == 1)} then {validate_int CONFIG_MIG_RANKS "$CONFIG_MIG_RANKS" 1} + global CONFIG_MIG_COLBITS + if {($CONFIG_MIG_DDR2 == 1)} then {validate_int CONFIG_MIG_COLBITS "$CONFIG_MIG_COLBITS" 10} + global CONFIG_MIG_ROWBITS + if {($CONFIG_MIG_DDR2 == 1)} then {validate_int CONFIG_MIG_ROWBITS "$CONFIG_MIG_ROWBITS" 13} + global CONFIG_MIG_BANKBITS + if {($CONFIG_MIG_DDR2 == 1)} then {validate_int CONFIG_MIG_BANKBITS "$CONFIG_MIG_BANKBITS" 2} + global CONFIG_MIG_HMASK + if {($CONFIG_MIG_DDR2 == 1)} then {validate_hex CONFIG_MIG_HMASK "$CONFIG_MIG_HMASK" F00} } @@ -3541,9 +3798,9 @@ proc menu17 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 17]] message $w.m -width 400 -aspect 300 -text \ - "Multi-port DDR controller " -relief raised + "MIG Series 7 memory controller " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "Multi-port DDR controller " + wm title $w "MIG Series 7 memory controller " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 17; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 17; catch {destroy .menu14}; unregister_active 14; menu18 .menu18 \"$title\"" @@ -3583,18 +3840,14 @@ proc menu17 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 17 0 "Enable DDR controller " CONFIG_DDRMP - int $w.config.f 17 1 "Number of chip selects (1 - 2) " CONFIG_DDRMP_NCS - int $w.config.f 17 2 "Number of devices per bank (1 - 16) " CONFIG_DDRMP_NDEV - int $w.config.f 17 3 "Data width per device (4 - 16) " CONFIG_DDRMP_NBITS - int $w.config.f 17 4 "Device size in Mbits (64 - 1024) " CONFIG_DDRMP_MBITS + bool $w.config.f 17 0 "Enable Xilinx DDR3 MIG memory controller" CONFIG_MIG_SERIES7 focus $w update_active global winx; global winy - if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controllers "} + if {[winfo exists .menu14] == 0} then {menu14 .menu14 "Memory controller "} set winx [expr [winfo x .menu14]+30]; set winy [expr [winfo y .menu14]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks @@ -3625,30 +3878,12 @@ proc menu17 {w title} { } proc update_menu17 {} { - global CONFIG_DDRMP - global CONFIG_DDRMP_NCS - if {($CONFIG_DDRMP == 1)} then {.menu17.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x1.l configure -state normal; } else {.menu17.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x1.l configure -state disabled} - global CONFIG_DDRMP_NDEV - if {($CONFIG_DDRMP == 1)} then {.menu17.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x2.l configure -state normal; } else {.menu17.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x2.l configure -state disabled} - global CONFIG_DDRMP_NBITS - if {($CONFIG_DDRMP == 1)} then {.menu17.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x3.l configure -state normal; } else {.menu17.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x3.l configure -state disabled} - global CONFIG_DDRMP_MBITS - if {($CONFIG_DDRMP == 1)} then {.menu17.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu17.config.f.x4.l configure -state normal; } else {.menu17.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu17.config.f.x4.l configure -state disabled} } proc update_define_menu17 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_DDRMP - global CONFIG_DDRMP_NCS - if {($CONFIG_DDRMP == 1)} then {validate_int CONFIG_DDRMP_NCS "$CONFIG_DDRMP_NCS" 1} - global CONFIG_DDRMP_NDEV - if {($CONFIG_DDRMP == 1)} then {validate_int CONFIG_DDRMP_NDEV "$CONFIG_DDRMP_NDEV" 2} - global CONFIG_DDRMP_NBITS - if {($CONFIG_DDRMP == 1)} then {validate_int CONFIG_DDRMP_NBITS "$CONFIG_DDRMP_NBITS" 16} - global CONFIG_DDRMP_MBITS - if {($CONFIG_DDRMP == 1)} then {validate_int CONFIG_DDRMP_MBITS "$CONFIG_DDRMP_MBITS" 64} } @@ -3936,9 +4171,9 @@ proc menu20 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 20]] message $w.m -width 400 -aspect 300 -text \ - "ATA " -relief raised + "UARTs, timers and irq control " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "ATA " + wm title $w "UARTs, timers and irq control " bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 20; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 20; menu21 .menu21 \"$title\"" @@ -3978,11 +4213,32 @@ proc menu20 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 20 0 "Enable ATA interface " CONFIG_ATA_ENABLE - hex $w.config.f 20 1 "ATA I/O area start address (haddr\[19:8\]) " CONFIG_ATAIO - int $w.config.f 20 2 "Interrupt number " CONFIG_ATAIRQ - bool $w.config.f 20 3 "Enable MWDMA support " CONFIG_ATA_MWDMA - int $w.config.f 20 4 "FIFO depth " CONFIG_ATA_FIFO + bool $w.config.f 20 0 "Enable console UART " CONFIG_UART1_ENABLE + global tmpvar_31 + minimenu $w.config.f 20 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 + menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + menusplit $w $w.config.f.x1.x.menu 6 + bool $w.config.f 20 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE + bool $w.config.f 20 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC + int $w.config.f 20 4 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC + bool $w.config.f 20 5 "Enable Timer Unit " CONFIG_GPT_ENABLE + int $w.config.f 20 6 "Number of timers (1 - 7) " CONFIG_GPT_NTIM + int $w.config.f 20 7 "Scaler width (2 - 16) " CONFIG_GPT_SW + int $w.config.f 20 8 "Timer width (2 - 32) " CONFIG_GPT_TW + int $w.config.f 20 9 "Timer unit interrupt " CONFIG_GPT_IRQ + bool $w.config.f 20 10 "Separate interrupts " CONFIG_GPT_SEPIRQ + bool $w.config.f 20 11 "Watchdog enable " CONFIG_GPT_WDOGEN + hex $w.config.f 20 12 "Initial watchdog time-out value " CONFIG_GPT_WDOG + bool $w.config.f 20 13 "Enable generic GPIO port " CONFIG_GRGPIO_ENABLE + int $w.config.f 20 14 "GPIO width " CONFIG_GRGPIO_WIDTH + hex $w.config.f 20 15 "GPIO interrupt mask " CONFIG_GRGPIO_IMASK + bool $w.config.f 20 16 "Enable I2C master " CONFIG_I2C_ENABLE @@ -4020,32 +4276,83 @@ proc menu20 {w title} { } proc update_menu20 {} { - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {.menu20.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x1.l configure -state normal; } else {.menu20.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x1.l configure -state disabled} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {.menu20.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x2.l configure -state normal; } else {.menu20.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x2.l configure -state disabled} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { + global CONFIG_UART1_ENABLE + if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu20.config.f.x1 normal {x l}} else {configure_entry .menu20.config.f.x1 disabled {x l}} + global CONFIG_IRQ3_ENABLE + global CONFIG_IRQ3_SEC + if {($CONFIG_IRQ3_ENABLE == 1)} then { configure_entry .menu20.config.f.x3 normal {n l y}} else {configure_entry .menu20.config.f.x3 disabled {y n l}} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {.menu20.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x4.l configure -state normal; } else {.menu20.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x4.l configure -state disabled} + global CONFIG_IRQ3_NSEC + if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {.menu20.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x4.l configure -state normal; } else {.menu20.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x4.l configure -state disabled} + global CONFIG_GPT_ENABLE + global CONFIG_GPT_NTIM + if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x6.l configure -state normal; } else {.menu20.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x6.l configure -state disabled} + global CONFIG_GPT_SW + if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x7.l configure -state normal; } else {.menu20.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x7.l configure -state disabled} + global CONFIG_GPT_TW + if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x8.l configure -state normal; } else {.menu20.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x8.l configure -state disabled} + global CONFIG_GPT_IRQ + if {($CONFIG_GPT_ENABLE == 1)} then {.menu20.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x9.l configure -state normal; } else {.menu20.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x9.l configure -state disabled} + global CONFIG_GPT_SEPIRQ + if {($CONFIG_GPT_ENABLE == 1)} then { + configure_entry .menu20.config.f.x10 normal {n l y}} else {configure_entry .menu20.config.f.x10 disabled {y n l}} + global CONFIG_GPT_WDOGEN + if {($CONFIG_GPT_ENABLE == 1)} then { + configure_entry .menu20.config.f.x11 normal {n l y}} else {configure_entry .menu20.config.f.x11 disabled {y n l}} + global CONFIG_GPT_WDOG + if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu20.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x12.l configure -state normal; } else {.menu20.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x12.l configure -state disabled} + global CONFIG_GRGPIO_ENABLE + global CONFIG_GRGPIO_WIDTH + if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu20.config.f.x14.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x14.l configure -state normal; } else {.menu20.config.f.x14.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x14.l configure -state disabled} + global CONFIG_GRGPIO_IMASK + if {($CONFIG_GRGPIO_ENABLE == 1)} then {.menu20.config.f.x15.x configure -state normal -foreground [ cget .ref -foreground ]; .menu20.config.f.x15.l configure -state normal; } else {.menu20.config.f.x15.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu20.config.f.x15.l configure -state disabled} } proc update_define_menu20 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_ATA_ENABLE - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {validate_hex CONFIG_ATAIO "$CONFIG_ATAIO" A00} - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {validate_int CONFIG_ATAIRQ "$CONFIG_ATAIRQ" 10} - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then { - set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA&15]} else {set CONFIG_ATA_MWDMA [expr $CONFIG_ATA_MWDMA|16]} - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {validate_int CONFIG_ATA_FIFO "$CONFIG_ATA_FIFO" 8} + global tmpvar_31 + global CONFIG_UA1_FIFO1 + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + global CONFIG_UA1_FIFO2 + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + global CONFIG_UA1_FIFO4 + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + global CONFIG_UA1_FIFO8 + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + global CONFIG_UA1_FIFO16 + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + global CONFIG_UA1_FIFO32 + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + global CONFIG_IRQ3_ENABLE + global CONFIG_IRQ3_SEC + if {($CONFIG_IRQ3_ENABLE == 1)} then { + set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC&15]} else {set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC|16]} + global CONFIG_IRQ3_NSEC + if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {validate_int CONFIG_IRQ3_NSEC "$CONFIG_IRQ3_NSEC" 12} + global CONFIG_GPT_ENABLE + global CONFIG_GPT_NTIM + if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_NTIM "$CONFIG_GPT_NTIM" 2} + global CONFIG_GPT_SW + if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_SW "$CONFIG_GPT_SW" 8} + global CONFIG_GPT_TW + if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_TW "$CONFIG_GPT_TW" 32} + global CONFIG_GPT_IRQ + if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_IRQ "$CONFIG_GPT_IRQ" 8} + global CONFIG_GPT_SEPIRQ + if {($CONFIG_GPT_ENABLE == 1)} then { + set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ&15]} else {set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ|16]} + global CONFIG_GPT_WDOGEN + if {($CONFIG_GPT_ENABLE == 1)} then { + set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN&15]} else {set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN|16]} + global CONFIG_GPT_WDOG + if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {validate_hex CONFIG_GPT_WDOG "$CONFIG_GPT_WDOG" FFFF} + global CONFIG_GRGPIO_ENABLE + global CONFIG_GRGPIO_WIDTH + if {($CONFIG_GRGPIO_ENABLE == 1)} then {validate_int CONFIG_GRGPIO_WIDTH "$CONFIG_GRGPIO_WIDTH" 8} + global CONFIG_GRGPIO_IMASK + if {($CONFIG_GRGPIO_ENABLE == 1)} then {validate_hex CONFIG_GRGPIO_IMASK "$CONFIG_GRGPIO_IMASK" 0000} } @@ -4058,9 +4365,9 @@ proc menu21 {w title} { global active_menus set active_menus [lsort -integer [linsert $active_menus end 21]] message $w.m -width 400 -aspect 300 -text \ - "UARTs, timers and irq control " -relief raised + "Keybord and VGA interface" -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "UARTs, timers and irq control " + wm title $w "Keybord and VGA interface" bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 21; break" set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 21; menu22 .menu22 \"$title\"" @@ -4100,28 +4407,9 @@ proc menu21 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 21 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_31 - minimenu $w.config.f 21 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 - menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" - menusplit $w $w.config.f.x1.x.menu 6 - bool $w.config.f 21 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE - bool $w.config.f 21 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC - int $w.config.f 21 4 "Secondary interrupt number (1 - 15) " CONFIG_IRQ3_NSEC - bool $w.config.f 21 5 "Enable Timer Unit " CONFIG_GPT_ENABLE - int $w.config.f 21 6 "Number of timers (1 - 7) " CONFIG_GPT_NTIM - int $w.config.f 21 7 "Scaler width (2 - 16) " CONFIG_GPT_SW - int $w.config.f 21 8 "Timer width (2 - 32) " CONFIG_GPT_TW - int $w.config.f 21 9 "Timer unit interrupt " CONFIG_GPT_IRQ - bool $w.config.f 21 10 "Separate interrupts " CONFIG_GPT_SEPIRQ - bool $w.config.f 21 11 "Watchdog enable " CONFIG_GPT_WDOGEN - hex $w.config.f 21 12 "Initial watchdog time-out value " CONFIG_GPT_WDOG + bool $w.config.f 21 0 "Keyboard/mouse (PS2) interface " CONFIG_KBD_ENABLE + bool $w.config.f 21 1 "Text-based VGA interface " CONFIG_VGA_ENABLE + bool $w.config.f 21 2 "SVGA graphical frame buffer " CONFIG_SVGA_ENABLE @@ -4159,100 +4447,292 @@ proc menu21 {w title} { } proc update_menu21 {} { - global CONFIG_UART1_ENABLE - if {($CONFIG_UART1_ENABLE == 1)} then {configure_entry .menu21.config.f.x1 normal {x l}} else {configure_entry .menu21.config.f.x1 disabled {x l}} - global CONFIG_IRQ3_ENABLE - global CONFIG_IRQ3_SEC - if {($CONFIG_IRQ3_ENABLE == 1)} then { - configure_entry .menu21.config.f.x3 normal {n l y}} else {configure_entry .menu21.config.f.x3 disabled {y n l}} - global CONFIG_IRQ3_NSEC - if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 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} - global CONFIG_GPT_ENABLE - global CONFIG_GPT_NTIM - if {($CONFIG_GPT_ENABLE == 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} - global CONFIG_GPT_SW - if {($CONFIG_GPT_ENABLE == 1)} then {.menu21.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x7.l configure -state normal; } else {.menu21.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x7.l configure -state disabled} - global CONFIG_GPT_TW - if {($CONFIG_GPT_ENABLE == 1)} then {.menu21.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x8.l configure -state normal; } else {.menu21.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x8.l configure -state disabled} - global CONFIG_GPT_IRQ - if {($CONFIG_GPT_ENABLE == 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} - global CONFIG_GPT_SEPIRQ - if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu21.config.f.x10 normal {n l y}} else {configure_entry .menu21.config.f.x10 disabled {y n l}} - global CONFIG_GPT_WDOGEN - if {($CONFIG_GPT_ENABLE == 1)} then { - configure_entry .menu21.config.f.x11 normal {n l y}} else {configure_entry .menu21.config.f.x11 disabled {y n l}} - global CONFIG_GPT_WDOG - if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {.menu21.config.f.x12.x configure -state normal -foreground [ cget .ref -foreground ]; .menu21.config.f.x12.l configure -state normal; } else {.menu21.config.f.x12.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu21.config.f.x12.l configure -state disabled} + global CONFIG_VGA_ENABLE + global CONFIG_SVGA_ENABLE + if {($CONFIG_VGA_ENABLE == 0)} then { + configure_entry .menu21.config.f.x2 normal {n l y}} else {configure_entry .menu21.config.f.x2 disabled {y n l}} } proc update_define_menu21 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_31 - global CONFIG_UA1_FIFO1 - if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} - global CONFIG_UA1_FIFO2 - if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} - global CONFIG_UA1_FIFO4 - if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} - global CONFIG_UA1_FIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} - global CONFIG_UA1_FIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} - global CONFIG_UA1_FIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} - global CONFIG_IRQ3_ENABLE - global CONFIG_IRQ3_SEC - if {($CONFIG_IRQ3_ENABLE == 1)} then { - set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC&15]} else {set CONFIG_IRQ3_SEC [expr $CONFIG_IRQ3_SEC|16]} - global CONFIG_IRQ3_NSEC - if {($CONFIG_IRQ3_ENABLE == 1) && ($CONFIG_IRQ3_SEC == 1)} then {validate_int CONFIG_IRQ3_NSEC "$CONFIG_IRQ3_NSEC" 12} - global CONFIG_GPT_ENABLE - global CONFIG_GPT_NTIM - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_NTIM "$CONFIG_GPT_NTIM" 2} - global CONFIG_GPT_SW - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_SW "$CONFIG_GPT_SW" 8} - global CONFIG_GPT_TW - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_TW "$CONFIG_GPT_TW" 32} - global CONFIG_GPT_IRQ - if {($CONFIG_GPT_ENABLE == 1)} then {validate_int CONFIG_GPT_IRQ "$CONFIG_GPT_IRQ" 8} - global CONFIG_GPT_SEPIRQ - if {($CONFIG_GPT_ENABLE == 1)} then { - set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ&15]} else {set CONFIG_GPT_SEPIRQ [expr $CONFIG_GPT_SEPIRQ|16]} - global CONFIG_GPT_WDOGEN - if {($CONFIG_GPT_ENABLE == 1)} then { - set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN&15]} else {set CONFIG_GPT_WDOGEN [expr $CONFIG_GPT_WDOGEN|16]} - global CONFIG_GPT_WDOG - if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {validate_hex CONFIG_GPT_WDOG "$CONFIG_GPT_WDOG" FFFF} + global CONFIG_VGA_ENABLE + global CONFIG_SVGA_ENABLE + if {($CONFIG_VGA_ENABLE == 0)} then { + set CONFIG_SVGA_ENABLE [expr $CONFIG_SVGA_ENABLE&15]} else {set CONFIG_SVGA_ENABLE [expr $CONFIG_SVGA_ENABLE|16]} +} + + +proc menu22 {w title} { + set oldFocus [focus] + catch {focus .menu13} + catch {destroy $w; unregister_active 22} + toplevel $w -class Dialog + wm withdraw $w + global active_menus + set active_menus [lsort -integer [linsert $active_menus end 22]] + message $w.m -width 400 -aspect 300 -text \ + "SPI" -relief raised + pack $w.m -pady 10 -side top -padx 10 + wm title $w "SPI" + + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; break" + set nextscript "catch {focus $oldFocus}; menu23 .menu23 \"$title\"" + frame $w.f + button $w.f.back -text "OK" \ + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22" + button $w.f.next -text "Next" -underline 0\ + -width 15 -command $nextscript + bind all $nextscript + button $w.f.prev -text "Prev" -underline 0\ + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\";break" + pack $w.f.back $w.f.next $w.f.prev -side left -expand on + pack $w.f -pady 10 -side bottom -anchor w -fill x + frame $w.topline -relief ridge -borderwidth 2 -height 2 + pack $w.topline -side top -fill x + + frame $w.botline -relief ridge -borderwidth 2 -height 2 + pack $w.botline -side bottom -fill x + + frame $w.config + pack $w.config -fill y -expand on + + scrollbar $w.config.vscroll -command "$w.config.canvas yview" + pack $w.config.vscroll -side right -fill y + + canvas $w.config.canvas -height 1\ + -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ + -width [expr [winfo screenwidth .] * 1 / 2] + frame $w.config.f + bind $w "$w.config.canvas yview scroll 1 unit;break;" + bind $w "$w.config.canvas yview scroll -1 unit;break;" + bind $w "$w.config.canvas yview scroll 1 page;break;" + bind $w "$w.config.canvas yview scroll -1 page;break;" + bind $w "$w.config.canvas yview moveto 0;break;" + bind $w "$w.config.canvas yview moveto 1 ;break;" + pack $w.config.canvas -side right -fill y + + + submenu $w.config.f 22 0 "SPI memory controller " 23 + submenu $w.config.f 22 1 "SPI controller(s) " 24 + + + + focus $w + update_active + global winx; global winy + if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} + set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] + if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} + update idletasks + if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f + + $w.config.canvas configure \ + -width [expr [winfo reqwidth $w.config.f] + 1]\ + -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ + [expr [winfo reqheight $w.config.f] + 1]" + + set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] + set scry [expr [winfo screenh $w] / 2] + set maxy [expr [winfo screenh $w] * 3 / 4] + set canvtotal [expr [winfo reqh $w.config.f] + 2] + if [expr $winy + $canvtotal < $maxy] { + $w.config.canvas configure -height $canvtotal + } else { + $w.config.canvas configure -height [expr $scry - $winy] + } + } + update idletasks + if {[winfo exists $w]} then { + wm maxsize $w [winfo width $w] [winfo screenheight $w] + wm minsize $w [winfo width $w] 100 + + wm deiconify $w +} +} + +proc update_menu22 {} { +} + + +proc update_define_menu22 {} { + update_define_mainmenu + global CONFIG_MODULES +} + + +proc menu23 {w title} { + set oldFocus [focus] + catch {focus .menu22} + catch {destroy $w; unregister_active 23} + toplevel $w -class Dialog + wm withdraw $w + global active_menus + set active_menus [lsort -integer [linsert $active_menus end 23]] + message $w.m -width 400 -aspect 300 -text \ + "SPI memory controller " -relief raised + pack $w.m -pady 10 -side top -padx 10 + wm title $w "SPI memory controller " + + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu24 .menu24 \"$title\"" + frame $w.f + button $w.f.back -text "OK" \ + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23" + button $w.f.next -text "Next" -underline 0\ + -width 15 -command $nextscript + bind all $nextscript + button $w.f.prev -text "Prev" -underline 0\ + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\";break" + pack $w.f.back $w.f.next $w.f.prev -side left -expand on + pack $w.f -pady 10 -side bottom -anchor w -fill x + frame $w.topline -relief ridge -borderwidth 2 -height 2 + pack $w.topline -side top -fill x + + frame $w.botline -relief ridge -borderwidth 2 -height 2 + pack $w.botline -side bottom -fill x + + frame $w.config + pack $w.config -fill y -expand on + + scrollbar $w.config.vscroll -command "$w.config.canvas yview" + pack $w.config.vscroll -side right -fill y + + canvas $w.config.canvas -height 1\ + -relief flat -borderwidth 0 -yscrollcommand "$w.config.vscroll set" \ + -width [expr [winfo screenwidth .] * 1 / 2] + frame $w.config.f + bind $w "$w.config.canvas yview scroll 1 unit;break;" + bind $w "$w.config.canvas yview scroll -1 unit;break;" + bind $w "$w.config.canvas yview scroll 1 page;break;" + bind $w "$w.config.canvas yview scroll -1 page;break;" + bind $w "$w.config.canvas yview moveto 0;break;" + bind $w "$w.config.canvas yview moveto 1 ;break;" + pack $w.config.canvas -side right -fill y + + + bool $w.config.f 23 0 "Enable SPI memory controller " CONFIG_SPIMCTRL + bool $w.config.f 23 1 "Enable SD card support " CONFIG_SPIMCTRL_SDCARD + hex $w.config.f 23 2 "Read instruction " CONFIG_SPIMCTRL_READCMD + bool $w.config.f 23 3 "Read instruction requires dummy byte " CONFIG_SPIMCTRL_DUMMYBYTE + bool $w.config.f 23 4 "Enable dual output for reads " CONFIG_SPIMCTRL_DUALOUTPUT + hex $w.config.f 23 5 "Address offset " CONFIG_SPIMCTRL_OFFSET + int $w.config.f 23 6 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER + int $w.config.f 23 7 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER + int $w.config.f 23 8 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT + + + + focus $w + update_active + global winx; global winy + if {[winfo exists .menu22] == 0} then {menu22 .menu22 "SPI"} + set winx [expr [winfo x .menu22]+30]; set winy [expr [winfo y .menu22]+30] + if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} + update idletasks + if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f + + $w.config.canvas configure \ + -width [expr [winfo reqwidth $w.config.f] + 1]\ + -scrollregion "-1 -1 [expr [winfo reqwidth $w.config.f] + 1] \ + [expr [winfo reqheight $w.config.f] + 1]" + + set winy [expr [winfo reqh $w] - [winfo reqh $w.config.canvas]] + set scry [expr [winfo screenh $w] / 2] + set maxy [expr [winfo screenh $w] * 3 / 4] + set canvtotal [expr [winfo reqh $w.config.f] + 2] + if [expr $winy + $canvtotal < $maxy] { + $w.config.canvas configure -height $canvtotal + } else { + $w.config.canvas configure -height [expr $scry - $winy] + } + } + update idletasks + if {[winfo exists $w]} then { + wm maxsize $w [winfo width $w] [winfo screenheight $w] + wm minsize $w [winfo width $w] 100 + + wm deiconify $w +} } +proc update_menu23 {} { + global CONFIG_SPIMCTRL + global CONFIG_SPIMCTRL_SDCARD + if {($CONFIG_SPIMCTRL == 1)} then { + configure_entry .menu23.config.f.x1 normal {n l y}} else {configure_entry .menu23.config.f.x1 disabled {y n l}} + global CONFIG_SPIMCTRL_READCMD + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {.menu23.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x2.l configure -state normal; } else {.menu23.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x2.l configure -state disabled} + global CONFIG_SPIMCTRL_DUMMYBYTE + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { + configure_entry .menu23.config.f.x3 normal {n l y}} else {configure_entry .menu23.config.f.x3 disabled {y n l}} + global CONFIG_SPIMCTRL_DUALOUTPUT + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { + configure_entry .menu23.config.f.x4 normal {n l y}} else {configure_entry .menu23.config.f.x4 disabled {y n l}} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {.menu23.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu23.config.f.x5.l configure -state normal; } else {.menu23.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu23.config.f.x5.l configure -state disabled} + global CONFIG_SPIMCTRL_SCALER + if {($CONFIG_SPIMCTRL == 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} + global CONFIG_SPIMCTRL_ASCALER + if {($CONFIG_SPIMCTRL == 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} + global CONFIG_SPIMCTRL_PWRUPCNT + if {($CONFIG_SPIMCTRL == 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} +} -proc menu22 {w title} { + +proc update_define_menu23 {} { + update_define_mainmenu + global CONFIG_MODULES + global CONFIG_SPIMCTRL + global CONFIG_SPIMCTRL_SDCARD + if {($CONFIG_SPIMCTRL == 1)} then { + set CONFIG_SPIMCTRL_SDCARD [expr $CONFIG_SPIMCTRL_SDCARD&15]} else {set CONFIG_SPIMCTRL_SDCARD [expr $CONFIG_SPIMCTRL_SDCARD|16]} + global CONFIG_SPIMCTRL_READCMD + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {validate_hex CONFIG_SPIMCTRL_READCMD "$CONFIG_SPIMCTRL_READCMD" 0B} + global CONFIG_SPIMCTRL_DUMMYBYTE + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { + set CONFIG_SPIMCTRL_DUMMYBYTE [expr $CONFIG_SPIMCTRL_DUMMYBYTE&15]} else {set CONFIG_SPIMCTRL_DUMMYBYTE [expr $CONFIG_SPIMCTRL_DUMMYBYTE|16]} + global CONFIG_SPIMCTRL_DUALOUTPUT + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { + set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT&15]} else {set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT|16]} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {validate_hex CONFIG_SPIMCTRL_OFFSET "$CONFIG_SPIMCTRL_OFFSET" 0} + global CONFIG_SPIMCTRL_SCALER + if {($CONFIG_SPIMCTRL == 1)} then {validate_int CONFIG_SPIMCTRL_SCALER "$CONFIG_SPIMCTRL_SCALER" 1} + global CONFIG_SPIMCTRL_ASCALER + if {($CONFIG_SPIMCTRL == 1)} then {validate_int CONFIG_SPIMCTRL_ASCALER "$CONFIG_SPIMCTRL_ASCALER" 8} + global CONFIG_SPIMCTRL_PWRUPCNT + if {($CONFIG_SPIMCTRL == 1)} then {validate_int CONFIG_SPIMCTRL_PWRUPCNT "$CONFIG_SPIMCTRL_PWRUPCNT" 0} +} + + +proc menu24 {w title} { set oldFocus [focus] - catch {focus .menu13} - catch {destroy $w; unregister_active 22} + catch {focus .menu22} + catch {destroy $w; unregister_active 24} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 22]] + set active_menus [lsort -integer [linsert $active_menus end 24]] message $w.m -width 400 -aspect 300 -text \ - "Keybord and VGA interface" -relief raised + "SPI controller(s) " -relief raised pack $w.m -pady 10 -side top -padx 10 - wm title $w "Keybord and VGA interface" + wm title $w "SPI controller(s) " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; break" - set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 22; catch {destroy .menu13}; unregister_active 13; menu23 .menu23 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; break" + set nextscript "catch {focus $oldFocus}; destroy $w; unregister_active 24; catch {destroy .menu22}; unregister_active 22; catch {destroy .menu13}; unregister_active 13; menu25 .menu25 \"$title\"" frame $w.f button $w.f.back -text "OK" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript bind all $nextscript button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 22; menu21 .menu21 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 24; menu23 .menu23 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4280,17 +4760,32 @@ proc menu22 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 22 0 "Keyboard/mouse (PS2) interface " CONFIG_KBD_ENABLE - bool $w.config.f 22 1 "Text-based VGA interface " CONFIG_VGA_ENABLE - bool $w.config.f 22 2 "SVGA graphical frame buffer " CONFIG_SVGA_ENABLE + bool $w.config.f 24 0 "Enable SPI controller(s) " CONFIG_SPICTRL_ENABLE + int $w.config.f 24 1 "Number of SPI controllers " CONFIG_SPICTRL_NUM + int $w.config.f 24 2 "Slave select lines " CONFIG_SPICTRL_SLVS + int $w.config.f 24 3 "FIFO depth (2^N) " CONFIG_SPICTRL_FIFO + bool $w.config.f 24 4 "Enable slave select registers" CONFIG_SPICTRL_SLVREG + bool $w.config.f 24 5 "Enable automatic slave select" CONFIG_SPICTRL_ASEL + bool $w.config.f 24 6 "Support automated transfers " CONFIG_SPICTRL_AM + bool $w.config.f 24 7 "Support open drain mode " CONFIG_SPICTRL_ODMODE + bool $w.config.f 24 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN + int $w.config.f 24 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN + bool $w.config.f 24 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM + global tmpvar_32 + minimenu $w.config.f 24 11 "Fault-tolerance" tmpvar_32 CONFIG_SPICTRL_NOFT + menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_32 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_32 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_32 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x11.x.menu 3 focus $w update_active global winx; global winy - if {[winfo exists .menu13] == 0} then {menu13 .menu13 "Peripherals "} - set winx [expr [winfo x .menu13]+30]; set winy [expr [winfo y .menu13]+30] + if {[winfo exists .menu22] == 0} then {menu22 .menu22 "SPI"} + set winx [expr [winfo x .menu22]+30]; set winy [expr [winfo y .menu22]+30] if {[winfo exists $w]} then {wm geometry $w +$winx+$winy} update idletasks if {[winfo exists $w]} then {$w.config.canvas create window 0 0 -anchor nw -window $w.config.f @@ -4319,49 +4814,103 @@ proc menu22 {w title} { } } -proc update_menu22 {} { - global CONFIG_VGA_ENABLE - global CONFIG_SVGA_ENABLE - if {($CONFIG_VGA_ENABLE == 0)} then { - configure_entry .menu22.config.f.x2 normal {n l y}} else {configure_entry .menu22.config.f.x2 disabled {y n l}} -} - - -proc update_define_menu22 {} { +proc update_menu24 {} { + global CONFIG_SPICTRL_ENABLE + global CONFIG_SPICTRL_NUM + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu24.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x1.l configure -state normal; } else {.menu24.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x1.l configure -state disabled} + global CONFIG_SPICTRL_SLVS + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu24.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x2.l configure -state normal; } else {.menu24.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x2.l configure -state disabled} + global CONFIG_SPICTRL_FIFO + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu24.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x3.l configure -state normal; } else {.menu24.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x3.l configure -state disabled} + global CONFIG_SPICTRL_SLVREG + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + configure_entry .menu24.config.f.x4 normal {n l y}} else {configure_entry .menu24.config.f.x4 disabled {y n l}} + global CONFIG_SPICTRL_ASEL + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + configure_entry .menu24.config.f.x5 normal {n l y}} else {configure_entry .menu24.config.f.x5 disabled {y n l}} + global CONFIG_SPICTRL_AM + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + configure_entry .menu24.config.f.x6 normal {n l y}} else {configure_entry .menu24.config.f.x6 disabled {y n l}} + global CONFIG_SPICTRL_ODMODE + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + configure_entry .menu24.config.f.x7 normal {n l y}} else {configure_entry .menu24.config.f.x7 disabled {y n l}} + global CONFIG_SPICTRL_TWEN + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + configure_entry .menu24.config.f.x8 normal {n l y}} else {configure_entry .menu24.config.f.x8 disabled {y n l}} + global CONFIG_SPICTRL_MAXWLEN + if {($CONFIG_SPICTRL_ENABLE == 1)} then {.menu24.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu24.config.f.x9.l configure -state normal; } else {.menu24.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu24.config.f.x9.l configure -state disabled} + global CONFIG_SPICTRL_SYNCRAM + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + configure_entry .menu24.config.f.x10 normal {n l y}} else {configure_entry .menu24.config.f.x10 disabled {y n l}} + if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then {configure_entry .menu24.config.f.x11 normal {x l}} else {configure_entry .menu24.config.f.x11 disabled {x l}} +} + + +proc update_define_menu24 {} { update_define_mainmenu global CONFIG_MODULES - global CONFIG_VGA_ENABLE - global CONFIG_SVGA_ENABLE - if {($CONFIG_VGA_ENABLE == 0)} then { - set CONFIG_SVGA_ENABLE [expr $CONFIG_SVGA_ENABLE&15]} else {set CONFIG_SVGA_ENABLE [expr $CONFIG_SVGA_ENABLE|16]} -} - - -menu_option menu23 23 "VHDL Debugging " -proc menu23 {w title} { + global CONFIG_SPICTRL_ENABLE + global CONFIG_SPICTRL_NUM + if {($CONFIG_SPICTRL_ENABLE == 1)} then {validate_int CONFIG_SPICTRL_NUM "$CONFIG_SPICTRL_NUM" 1} + global CONFIG_SPICTRL_SLVS + if {($CONFIG_SPICTRL_ENABLE == 1)} then {validate_int CONFIG_SPICTRL_SLVS "$CONFIG_SPICTRL_SLVS" 1} + global CONFIG_SPICTRL_FIFO + if {($CONFIG_SPICTRL_ENABLE == 1)} then {validate_int CONFIG_SPICTRL_FIFO "$CONFIG_SPICTRL_FIFO" 1} + global CONFIG_SPICTRL_SLVREG + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + set CONFIG_SPICTRL_SLVREG [expr $CONFIG_SPICTRL_SLVREG&15]} else {set CONFIG_SPICTRL_SLVREG [expr $CONFIG_SPICTRL_SLVREG|16]} + global CONFIG_SPICTRL_ASEL + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + set CONFIG_SPICTRL_ASEL [expr $CONFIG_SPICTRL_ASEL&15]} else {set CONFIG_SPICTRL_ASEL [expr $CONFIG_SPICTRL_ASEL|16]} + global CONFIG_SPICTRL_AM + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + set CONFIG_SPICTRL_AM [expr $CONFIG_SPICTRL_AM&15]} else {set CONFIG_SPICTRL_AM [expr $CONFIG_SPICTRL_AM|16]} + global CONFIG_SPICTRL_ODMODE + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + set CONFIG_SPICTRL_ODMODE [expr $CONFIG_SPICTRL_ODMODE&15]} else {set CONFIG_SPICTRL_ODMODE [expr $CONFIG_SPICTRL_ODMODE|16]} + global CONFIG_SPICTRL_TWEN + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + set CONFIG_SPICTRL_TWEN [expr $CONFIG_SPICTRL_TWEN&15]} else {set CONFIG_SPICTRL_TWEN [expr $CONFIG_SPICTRL_TWEN|16]} + global CONFIG_SPICTRL_MAXWLEN + if {($CONFIG_SPICTRL_ENABLE == 1)} then {validate_int CONFIG_SPICTRL_MAXWLEN "$CONFIG_SPICTRL_MAXWLEN" 0} + global CONFIG_SPICTRL_SYNCRAM + if {($CONFIG_SPICTRL_ENABLE == 1)} then { + set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} + global tmpvar_32 + global CONFIG_SPICTRL_NOFT + if {$tmpvar_32 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + global CONFIG_SPICTRL_DMRFT + if {$tmpvar_32 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + global CONFIG_SPICTRL_TMRFT + if {$tmpvar_32 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} +} + + +menu_option menu25 25 "VHDL Debugging " +proc menu25 {w title} { set oldFocus [focus] - catch {destroy $w; unregister_active 23} + catch {destroy $w; unregister_active 25} toplevel $w -class Dialog wm withdraw $w global active_menus - set active_menus [lsort -integer [linsert $active_menus end 23]] + set active_menus [lsort -integer [linsert $active_menus end 25]] message $w.m -width 400 -aspect 300 -text \ "VHDL Debugging " -relief raised pack $w.m -pady 10 -side top -padx 10 wm title $w "VHDL Debugging " - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; break" - set nextscript "catch {focus $oldFocus}; menu24 .menu24 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; break" + set nextscript "catch {focus $oldFocus}; menu26 .menu26 \"$title\"" frame $w.f button $w.f.back -text "Main Menu" \ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25" button $w.f.next -text "Next" -underline 0\ -width 15 -command $nextscript $w.f.next configure -state disabled bind all "puts \"no more menus\" " button $w.f.prev -text "Prev" -underline 0\ - -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\"" - bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 23; menu22 .menu22 \"$title\";break" + -width 15 -command "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\"" + bind $w "catch {focus $oldFocus}; destroy $w; unregister_active 25; menu24 .menu24 \"$title\";break" pack $w.f.back $w.f.next $w.f.prev -side left -expand on pack $w.f -pady 10 -side bottom -anchor w -fill x frame $w.topline -relief ridge -borderwidth 2 -height 2 @@ -4389,7 +4938,7 @@ proc menu23 {w title} { pack $w.config.canvas -side right -fill y - bool $w.config.f 23 0 "Accelerated UART tracing " CONFIG_DEBUG_UART + bool $w.config.f 25 0 "Accelerated UART tracing " CONFIG_DEBUG_UART @@ -4425,11 +4974,11 @@ proc menu23 {w title} { } } -proc update_menu23 {} { +proc update_menu25 {} { } -proc update_define_menu23 {} { +proc update_define_menu25 {} { update_define_mainmenu global CONFIG_MODULES } @@ -4475,7 +5024,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4485,6 +5035,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4509,6 +5061,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4521,14 +5074,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4541,27 +5099,28 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set CONFIG_FPU_GRFPU_SH 0 +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4571,17 +5130,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4593,12 +5152,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4608,10 +5167,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4622,7 +5181,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4634,26 +5193,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4661,27 +5222,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4700,8 +5265,9 @@ set CONFIG_AHB_MONERR 0 set CONFIG_AHB_MONWAR 0 set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 +set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4713,34 +5279,6 @@ set CONFIG_DSU_ETHMSB 020000 set CONFIG_DSU_ETHLSB 000000 set CONFIG_DSU_ETH_PROG 0 set CONFIG_DSU_ETH_DIS 0 -set CONFIG_SRCTRL 0 -set CONFIG_SRCTRL_8BIT 0 -set CONFIG_SRCTRL_PROMWS 3 -set CONFIG_SRCTRL_RAMWS 0 -set CONFIG_SRCTRL_IOWS 0 -set CONFIG_SRCTRL_RMW 0 -set tmpvar_27 "(not set)" -set CONFIG_SRCTRL_SRBANKS1 0 -set CONFIG_SRCTRL_SRBANKS2 0 -set CONFIG_SRCTRL_SRBANKS3 0 -set CONFIG_SRCTRL_SRBANKS4 0 -set CONFIG_SRCTRL_SRBANKS5 0 -set tmpvar_28 "(not set)" -set CONFIG_SRCTRL_BANKSZ0 0 -set CONFIG_SRCTRL_BANKSZ1 0 -set CONFIG_SRCTRL_BANKSZ2 0 -set CONFIG_SRCTRL_BANKSZ3 0 -set CONFIG_SRCTRL_BANKSZ4 0 -set CONFIG_SRCTRL_BANKSZ5 0 -set CONFIG_SRCTRL_BANKSZ6 0 -set CONFIG_SRCTRL_BANKSZ7 0 -set CONFIG_SRCTRL_BANKSZ8 0 -set CONFIG_SRCTRL_BANKSZ9 0 -set CONFIG_SRCTRL_BANKSZ10 0 -set CONFIG_SRCTRL_BANKSZ11 0 -set CONFIG_SRCTRL_BANKSZ12 0 -set CONFIG_SRCTRL_BANKSZ13 0 -set CONFIG_SRCTRL_ROMASEL 19 set CONFIG_MCTRL_LEON2 0 set CONFIG_MCTRL_8BIT 0 set CONFIG_MCTRL_16BIT 0 @@ -4751,11 +5289,15 @@ set CONFIG_MCTRL_SDRAM_BUS64 0 set CONFIG_MCTRL_SDRAM_INVCLK 0 set CONFIG_MCTRL_PAGE 0 set CONFIG_MCTRL_PROGPAGE 0 -set CONFIG_DDRMP 0 -set CONFIG_DDRMP_NCS 1 -set CONFIG_DDRMP_NDEV 2 -set CONFIG_DDRMP_NBITS 16 -set CONFIG_DDRMP_MBITS 64 +set CONFIG_MIG_DDR2 0 +set CONFIG_MIG_RANKS 1 +set CONFIG_MIG_COLBITS 10 +set CONFIG_MIG_ROWBITS 13 +set CONFIG_MIG_BANKBITS 2 +set CONFIG_MIG_HMASK F00 +set CONFIG_MIG_SERIES7 0 +set CONFIG_AHBSTAT_ENABLE 0 +set CONFIG_AHBSTAT_NFTSLV 1 set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 @@ -4777,11 +5319,6 @@ set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 -set CONFIG_ATA_ENABLE 0 -set CONFIG_ATAIO A00 -set CONFIG_ATAIRQ 10 -set CONFIG_ATA_MWDMA 0 -set CONFIG_ATA_FIFO 8 set CONFIG_UART1_ENABLE 0 set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 @@ -4801,14 +5338,42 @@ set CONFIG_GPT_IRQ 8 set CONFIG_GPT_SEPIRQ 0 set CONFIG_GPT_WDOGEN 0 set CONFIG_GPT_WDOG FFFF +set CONFIG_GRGPIO_ENABLE 0 +set CONFIG_GRGPIO_WIDTH 8 +set CONFIG_GRGPIO_IMASK 0000 +set CONFIG_I2C_ENABLE 0 set CONFIG_KBD_ENABLE 0 set CONFIG_VGA_ENABLE 0 set CONFIG_SVGA_ENABLE 0 +set CONFIG_SPIMCTRL 0 +set CONFIG_SPIMCTRL_SDCARD 0 +set CONFIG_SPIMCTRL_READCMD 0B +set CONFIG_SPIMCTRL_DUMMYBYTE 0 +set CONFIG_SPIMCTRL_DUALOUTPUT 0 +set CONFIG_SPIMCTRL_OFFSET 0 +set CONFIG_SPIMCTRL_SCALER 1 +set CONFIG_SPIMCTRL_ASCALER 8 +set CONFIG_SPIMCTRL_PWRUPCNT 0 +set CONFIG_SPICTRL_ENABLE 0 +set CONFIG_SPICTRL_NUM 1 +set CONFIG_SPICTRL_SLVS 1 +set CONFIG_SPICTRL_FIFO 1 +set CONFIG_SPICTRL_SLVREG 0 +set CONFIG_SPICTRL_ASEL 0 +set CONFIG_SPICTRL_AM 0 +set CONFIG_SPICTRL_ODMODE 0 +set CONFIG_SPICTRL_TWEN 0 +set CONFIG_SPICTRL_MAXWLEN 0 +set CONFIG_SPICTRL_SYNCRAM 0 +set tmpvar_32 "(not set)" +set CONFIG_SPICTRL_NOFT 0 +set CONFIG_SPICTRL_DMRFT 0 +set CONFIG_SPICTRL_TMRFT 0 set CONFIG_DEBUG_UART 0 +set CONFIG_LEON3FT_PRESENT 4 +set CONFIG_HAS_SHARED_GRFPU 4 set CONFIG_SYN_ARTISAN 4 set CONFIG_PCI_ENABLE 4 -set CONFIG_HAS_SHARED_GRFPU 4 -set CONFIG_FPU_GRFPU_SH 4 set CONFIG_MODULES 4 proc writeconfig {file1 file2} { set cfg [open $file1 w] @@ -4822,6 +5387,11 @@ proc writeconfig {file1 file2} { puts $autocfg " * Automatically generated C config: don't edit" puts $autocfg " */" puts $autocfg "#define AUTOCONF_INCLUDED" + global CONFIG_LEON3FT_PRESENT + global CONSTANT_Y + write_tristate $cfg $autocfg CONFIG_LEON3FT_PRESENT $CONFIG_LEON3FT_PRESENT [list $notmod] 2 + global CONFIG_HAS_SHARED_GRFPU + write_tristate $cfg $autocfg CONFIG_HAS_SHARED_GRFPU $CONFIG_HAS_SHARED_GRFPU [list $notmod] 2 write_comment $cfg $autocfg "Synthesis " global tmpvar_0 @@ -4860,7 +5430,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4870,6 +5441,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4908,6 +5481,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -4920,9 +5494,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4936,239 +5511,390 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global CONFIG_FPU_GRFPU_SH + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_HAS_SHARED_GRFPU == 1 && $CONFIG_FPU_GRFPU == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_SH $CONFIG_FPU_GRFPU_SH [list $notmod] 2 } + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5208,16 +5934,18 @@ proc writeconfig {file1 file2} { write_comment $cfg $autocfg "Debug Link " global CONFIG_DSU_UART write_tristate $cfg $autocfg CONFIG_DSU_UART $CONFIG_DSU_UART [list $notmod] 2 + global CONFIG_DSU_JTAG + write_tristate $cfg $autocfg CONFIG_DSU_JTAG $CONFIG_DSU_JTAG [list $notmod] 2 global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5232,45 +5960,7 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH_DIS if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1) && ($CONFIG_GRETH_GIGA == 0)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH_DIS $CONFIG_DSU_ETH_DIS [list $notmod] 2 } write_comment $cfg $autocfg "Peripherals " - write_comment $cfg $autocfg "Memory controllers " - write_comment $cfg $autocfg "8/32-bit PROM/SRAM controller " - global CONFIG_SRCTRL - write_tristate $cfg $autocfg CONFIG_SRCTRL $CONFIG_SRCTRL [list $notmod] 2 - global CONFIG_SRCTRL_8BIT - if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_8BIT $CONFIG_SRCTRL_8BIT [list $notmod] 2 } - global CONFIG_SRCTRL_PROMWS - if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_PROMWS $CONFIG_SRCTRL_PROMWS $notmod } - global CONFIG_SRCTRL_RAMWS - if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_RAMWS $CONFIG_SRCTRL_RAMWS $notmod } - global CONFIG_SRCTRL_IOWS - if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_IOWS $CONFIG_SRCTRL_IOWS $notmod } - global CONFIG_SRCTRL_RMW - if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_RMW $CONFIG_SRCTRL_RMW [list $notmod] 2 } - global tmpvar_27 - if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} - global tmpvar_28 - if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} - global CONFIG_SRCTRL_ROMASEL - if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_ROMASEL $CONFIG_SRCTRL_ROMASEL $notmod } + write_comment $cfg $autocfg "Memory controller " write_comment $cfg $autocfg "Leon2 memory controller " global CONFIG_MCTRL_LEON2 write_tristate $cfg $autocfg CONFIG_MCTRL_LEON2 $CONFIG_MCTRL_LEON2 [list $notmod] 2 @@ -5292,17 +5982,26 @@ proc writeconfig {file1 file2} { if {($CONFIG_MCTRL_LEON2 == 1) && ($CONFIG_MCTRL_SDRAM == 1)} then {write_tristate $cfg $autocfg CONFIG_MCTRL_PAGE $CONFIG_MCTRL_PAGE [list $notmod] 2 } global CONFIG_MCTRL_PROGPAGE 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 } - write_comment $cfg $autocfg "Multi-port DDR controller " - global CONFIG_DDRMP - write_tristate $cfg $autocfg CONFIG_DDRMP $CONFIG_DDRMP [list $notmod] 2 - global CONFIG_DDRMP_NCS - if {($CONFIG_DDRMP == 1)} then {write_int $cfg $autocfg CONFIG_DDRMP_NCS $CONFIG_DDRMP_NCS $notmod } - global CONFIG_DDRMP_NDEV - if {($CONFIG_DDRMP == 1)} then {write_int $cfg $autocfg CONFIG_DDRMP_NDEV $CONFIG_DDRMP_NDEV $notmod } - global CONFIG_DDRMP_NBITS - if {($CONFIG_DDRMP == 1)} then {write_int $cfg $autocfg CONFIG_DDRMP_NBITS $CONFIG_DDRMP_NBITS $notmod } - global CONFIG_DDRMP_MBITS - if {($CONFIG_DDRMP == 1)} then {write_int $cfg $autocfg CONFIG_DDRMP_MBITS $CONFIG_DDRMP_MBITS $notmod } + write_comment $cfg $autocfg "MIG memory controller " + global CONFIG_MIG_DDR2 + write_tristate $cfg $autocfg CONFIG_MIG_DDR2 $CONFIG_MIG_DDR2 [list $notmod] 2 + global CONFIG_MIG_RANKS + if {($CONFIG_MIG_DDR2 == 1)} then {write_int $cfg $autocfg CONFIG_MIG_RANKS $CONFIG_MIG_RANKS $notmod } + global CONFIG_MIG_COLBITS + if {($CONFIG_MIG_DDR2 == 1)} then {write_int $cfg $autocfg CONFIG_MIG_COLBITS $CONFIG_MIG_COLBITS $notmod } + global CONFIG_MIG_ROWBITS + if {($CONFIG_MIG_DDR2 == 1)} then {write_int $cfg $autocfg CONFIG_MIG_ROWBITS $CONFIG_MIG_ROWBITS $notmod } + global CONFIG_MIG_BANKBITS + if {($CONFIG_MIG_DDR2 == 1)} then {write_int $cfg $autocfg CONFIG_MIG_BANKBITS $CONFIG_MIG_BANKBITS $notmod } + global CONFIG_MIG_HMASK + if {($CONFIG_MIG_DDR2 == 1)} then {write_hex $cfg $autocfg CONFIG_MIG_HMASK $CONFIG_MIG_HMASK $notmod } + write_comment $cfg $autocfg "MIG Series 7 memory controller " + global CONFIG_MIG_SERIES7 + write_tristate $cfg $autocfg CONFIG_MIG_SERIES7 $CONFIG_MIG_SERIES7 [list $notmod] 2 + global CONFIG_AHBSTAT_ENABLE + write_tristate $cfg $autocfg CONFIG_AHBSTAT_ENABLE $CONFIG_AHBSTAT_ENABLE [list $notmod] 2 + global CONFIG_AHBSTAT_NFTSLV + if {($CONFIG_AHBSTAT_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_AHBSTAT_NFTSLV $CONFIG_AHBSTAT_NFTSLV $notmod } write_comment $cfg $autocfg "On-chip RAM/ROM " global CONFIG_AHBROM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBROM_ENABLE $CONFIG_AHBROM_ENABLE [list $notmod] 2 @@ -5333,17 +6032,6 @@ proc writeconfig {file1 file2} { if { $tmpvar_30 == "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 } if { $tmpvar_30 == "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 } if { $tmpvar_30 == "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 }} - write_comment $cfg $autocfg "ATA " - global CONFIG_ATA_ENABLE - write_tristate $cfg $autocfg CONFIG_ATA_ENABLE $CONFIG_ATA_ENABLE [list $notmod] 2 - global CONFIG_ATAIO - if {($CONFIG_ATA_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_ATAIO $CONFIG_ATAIO $notmod } - global CONFIG_ATAIRQ - if {($CONFIG_ATA_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_ATAIRQ $CONFIG_ATAIRQ $notmod } - global CONFIG_ATA_MWDMA - if {($CONFIG_ATA_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_ATA_MWDMA $CONFIG_ATA_MWDMA [list $notmod] 2 } - global CONFIG_ATA_FIFO - if {($CONFIG_ATA_ENABLE == 1) && ($CONFIG_ATA_MWDMA == 1)} then {write_int $cfg $autocfg CONFIG_ATA_FIFO $CONFIG_ATA_FIFO $notmod } write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 @@ -5377,6 +6065,14 @@ proc writeconfig {file1 file2} { if {($CONFIG_GPT_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GPT_WDOGEN $CONFIG_GPT_WDOGEN [list $notmod] 2 } global CONFIG_GPT_WDOG if {($CONFIG_GPT_ENABLE == 1) && ($CONFIG_GPT_WDOGEN == 1)} then {write_hex $cfg $autocfg CONFIG_GPT_WDOG $CONFIG_GPT_WDOG $notmod } + global CONFIG_GRGPIO_ENABLE + write_tristate $cfg $autocfg CONFIG_GRGPIO_ENABLE $CONFIG_GRGPIO_ENABLE [list $notmod] 2 + global CONFIG_GRGPIO_WIDTH + if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_GRGPIO_WIDTH $CONFIG_GRGPIO_WIDTH $notmod } + global CONFIG_GRGPIO_IMASK + if {($CONFIG_GRGPIO_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_GRGPIO_IMASK $CONFIG_GRGPIO_IMASK $notmod } + global CONFIG_I2C_ENABLE + write_tristate $cfg $autocfg CONFIG_I2C_ENABLE $CONFIG_I2C_ENABLE [list $notmod] 2 write_comment $cfg $autocfg "Keybord and VGA interface" global CONFIG_KBD_ENABLE write_tristate $cfg $autocfg CONFIG_KBD_ENABLE $CONFIG_KBD_ENABLE [list $notmod] 2 @@ -5384,6 +6080,54 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_VGA_ENABLE $CONFIG_VGA_ENABLE [list $notmod] 2 global CONFIG_SVGA_ENABLE if {($CONFIG_VGA_ENABLE == 0)} then {write_tristate $cfg $autocfg CONFIG_SVGA_ENABLE $CONFIG_SVGA_ENABLE [list $notmod] 2 } + write_comment $cfg $autocfg "SPI" + write_comment $cfg $autocfg "SPI memory controller " + global CONFIG_SPIMCTRL + write_tristate $cfg $autocfg CONFIG_SPIMCTRL $CONFIG_SPIMCTRL [list $notmod] 2 + global CONFIG_SPIMCTRL_SDCARD + if {($CONFIG_SPIMCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_SDCARD $CONFIG_SPIMCTRL_SDCARD [list $notmod] 2 } + global CONFIG_SPIMCTRL_READCMD + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_hex $cfg $autocfg CONFIG_SPIMCTRL_READCMD $CONFIG_SPIMCTRL_READCMD $notmod } + global CONFIG_SPIMCTRL_DUMMYBYTE + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUMMYBYTE $CONFIG_SPIMCTRL_DUMMYBYTE [list $notmod] 2 } + global CONFIG_SPIMCTRL_DUALOUTPUT + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUALOUTPUT $CONFIG_SPIMCTRL_DUALOUTPUT [list $notmod] 2 } + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_hex $cfg $autocfg CONFIG_SPIMCTRL_OFFSET $CONFIG_SPIMCTRL_OFFSET $notmod } + global CONFIG_SPIMCTRL_SCALER + if {($CONFIG_SPIMCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SPIMCTRL_SCALER $CONFIG_SPIMCTRL_SCALER $notmod } + global CONFIG_SPIMCTRL_ASCALER + if {($CONFIG_SPIMCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SPIMCTRL_ASCALER $CONFIG_SPIMCTRL_ASCALER $notmod } + global CONFIG_SPIMCTRL_PWRUPCNT + if {($CONFIG_SPIMCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SPIMCTRL_PWRUPCNT $CONFIG_SPIMCTRL_PWRUPCNT $notmod } + write_comment $cfg $autocfg "SPI controller(s) " + global CONFIG_SPICTRL_ENABLE + write_tristate $cfg $autocfg CONFIG_SPICTRL_ENABLE $CONFIG_SPICTRL_ENABLE [list $notmod] 2 + global CONFIG_SPICTRL_NUM + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_NUM $CONFIG_SPICTRL_NUM $notmod } + global CONFIG_SPICTRL_SLVS + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_SLVS $CONFIG_SPICTRL_SLVS $notmod } + global CONFIG_SPICTRL_FIFO + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_FIFO $CONFIG_SPICTRL_FIFO $notmod } + global CONFIG_SPICTRL_SLVREG + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SLVREG $CONFIG_SPICTRL_SLVREG [list $notmod] 2 } + global CONFIG_SPICTRL_ASEL + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_ASEL $CONFIG_SPICTRL_ASEL [list $notmod] 2 } + global CONFIG_SPICTRL_AM + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_AM $CONFIG_SPICTRL_AM [list $notmod] 2 } + global CONFIG_SPICTRL_ODMODE + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_ODMODE $CONFIG_SPICTRL_ODMODE [list $notmod] 2 } + global CONFIG_SPICTRL_TWEN + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_TWEN $CONFIG_SPICTRL_TWEN [list $notmod] 2 } + global CONFIG_SPICTRL_MAXWLEN + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } + global CONFIG_SPICTRL_SYNCRAM + if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } + global tmpvar_32 + if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { + if { $tmpvar_32 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -5428,7 +6172,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5438,6 +6183,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5456,8 +6203,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5540,11 +6292,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5565,30 +6319,15 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 global CONFIG_DSU_ETHSZ8; set CONFIG_DSU_ETHSZ8 0 global CONFIG_DSU_ETHSZ16; set CONFIG_DSU_ETHSZ16 0 - global CONFIG_SRCTRL_SRBANKS1; set CONFIG_SRCTRL_SRBANKS1 0 - global CONFIG_SRCTRL_SRBANKS2; set CONFIG_SRCTRL_SRBANKS2 0 - global CONFIG_SRCTRL_SRBANKS3; set CONFIG_SRCTRL_SRBANKS3 0 - global CONFIG_SRCTRL_SRBANKS4; set CONFIG_SRCTRL_SRBANKS4 0 - global CONFIG_SRCTRL_SRBANKS5; set CONFIG_SRCTRL_SRBANKS5 0 - global CONFIG_SRCTRL_BANKSZ0; set CONFIG_SRCTRL_BANKSZ0 0 - global CONFIG_SRCTRL_BANKSZ1; set CONFIG_SRCTRL_BANKSZ1 0 - global CONFIG_SRCTRL_BANKSZ2; set CONFIG_SRCTRL_BANKSZ2 0 - global CONFIG_SRCTRL_BANKSZ3; set CONFIG_SRCTRL_BANKSZ3 0 - global CONFIG_SRCTRL_BANKSZ4; set CONFIG_SRCTRL_BANKSZ4 0 - global CONFIG_SRCTRL_BANKSZ5; set CONFIG_SRCTRL_BANKSZ5 0 - global CONFIG_SRCTRL_BANKSZ6; set CONFIG_SRCTRL_BANKSZ6 0 - global CONFIG_SRCTRL_BANKSZ7; set CONFIG_SRCTRL_BANKSZ7 0 - global CONFIG_SRCTRL_BANKSZ8; set CONFIG_SRCTRL_BANKSZ8 0 - global CONFIG_SRCTRL_BANKSZ9; set CONFIG_SRCTRL_BANKSZ9 0 - global CONFIG_SRCTRL_BANKSZ10; set CONFIG_SRCTRL_BANKSZ10 0 - global CONFIG_SRCTRL_BANKSZ11; set CONFIG_SRCTRL_BANKSZ11 0 - global CONFIG_SRCTRL_BANKSZ12; set CONFIG_SRCTRL_BANKSZ12 0 - global CONFIG_SRCTRL_BANKSZ13; set CONFIG_SRCTRL_BANKSZ13 0 global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0 global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0 global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0 @@ -5607,6 +6346,9 @@ proc clear_choices { } { global CONFIG_UA1_FIFO8; set CONFIG_UA1_FIFO8 0 global CONFIG_UA1_FIFO16; set CONFIG_UA1_FIFO16 0 global CONFIG_UA1_FIFO32; set CONFIG_UA1_FIFO32 0 + global CONFIG_SPICTRL_NOFT; set CONFIG_SPICTRL_NOFT 0 + global CONFIG_SPICTRL_DMRFT; set CONFIG_SPICTRL_DMRFT 0 + global CONFIG_SPICTRL_TMRFT; set CONFIG_SPICTRL_TMRFT 0 } @@ -5683,8 +6425,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5703,6 +6447,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5743,324 +6491,308 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "1" - global CONFIG_SRCTRL_SRBANKS1 - if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_27 "1" } - global CONFIG_SRCTRL_SRBANKS2 - if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_27 "2" } - global CONFIG_SRCTRL_SRBANKS3 - if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_27 "3" } - global CONFIG_SRCTRL_SRBANKS4 - if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_27 "4" } - global CONFIG_SRCTRL_SRBANKS5 - if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_27 "5" } - global tmpvar_28 - set tmpvar_28 "0" - global CONFIG_SRCTRL_BANKSZ0 - if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_28 "8" } - global CONFIG_SRCTRL_BANKSZ1 - if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_28 "16" } - global CONFIG_SRCTRL_BANKSZ2 - if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_28 "32" } - global CONFIG_SRCTRL_BANKSZ3 - if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_28 "64" } - global CONFIG_SRCTRL_BANKSZ4 - if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_28 "128" } - global CONFIG_SRCTRL_BANKSZ5 - if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_28 "256" } - global CONFIG_SRCTRL_BANKSZ6 - if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_28 "512" } - global CONFIG_SRCTRL_BANKSZ7 - if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_28 "1024" } - global CONFIG_SRCTRL_BANKSZ8 - if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_28 "2048" } - global CONFIG_SRCTRL_BANKSZ9 - if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_28 "4096" } - global CONFIG_SRCTRL_BANKSZ10 - if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_28 "8192" } - global CONFIG_SRCTRL_BANKSZ11 - if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_28 "16384" } - global CONFIG_SRCTRL_BANKSZ12 - if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_28 "32768" } - global CONFIG_SRCTRL_BANKSZ13 - if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_28 "65536" } + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } global tmpvar_29 set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 @@ -6103,11 +6835,24 @@ proc update_choices { } { if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } + global tmpvar_32 + set tmpvar_32 "None" + global CONFIG_SPICTRL_NOFT + if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_32 "None" } + global CONFIG_SPICTRL_DMRFT + if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_32 "Parity-DMR" } + global CONFIG_SPICTRL_TMRFT + if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_32 "TMR" } } proc update_define_mainmenu {} { global CONFIG_MODULES + global CONFIG_LEON3FT_PRESENT + global CONFIG_HAS_SHARED_GRFPU + global CONSTANT_Y + set CONFIG_LEON3FT_PRESENT $CONSTANT_Y + set CONFIG_HAS_SHARED_GRFPU $CONSTANT_Y } diff --git a/designs/leon3-xilinx-vc707/leon3mp.vhd b/designs/leon3-xilinx-vc707/leon3mp.vhd new file mode 100644 index 00000000..09f28b91 --- /dev/null +++ b/designs/leon3-xilinx-vc707/leon3mp.vhd @@ -0,0 +1,650 @@ +----------------------------------------------------------------------------- +-- LEON3 Xilinx VC707 Demonstration design +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; +library grlib, techmap; +use grlib.amba.all; +use grlib.stdlib.all; +use techmap.gencomp.all; +use techmap.allclkgen.all; +library gaisler; +use gaisler.memctrl.all; +use gaisler.leon3.all; +use gaisler.uart.all; +use gaisler.misc.all; +use gaisler.i2c.all; +use gaisler.net.all; +use gaisler.jtag.all; +-- pragma translate_off +use gaisler.sim.all; +library unisim; +use unisim.all; +-- pragma translate_on + + +library esa; +use esa.memoryctrl.all; + +use work.config.all; + +entity leon3mp is + generic ( + fabtech : integer := CFG_FABTECH; + memtech : integer := CFG_MEMTECH; + padtech : integer := CFG_PADTECH; + clktech : integer := CFG_CLKTECH; + disas : integer := CFG_DISAS; -- Enable disassembly to console + dbguart : integer := CFG_DUART; -- Print UART on console + pclow : integer := CFG_PCLOW; + testahb : boolean := false; + SIM_BYPASS_INIT_CAL : string := "OFF"; + SIMULATION : string := "FALSE"; + USE_MIG_INTERFACE_MODEL : boolean := false + ); + port ( + reset : in std_ulogic; + clk200p : in std_ulogic; -- 200 MHz clock + clk200n : in std_ulogic; -- 200 MHz clock + address : out std_logic_vector(25 downto 0); + data : inout std_logic_vector(15 downto 0); + oen : out std_ulogic; + writen : out std_ulogic; + romsn : out std_logic; + adv : out std_logic; + ddr3_dq : inout std_logic_vector(63 downto 0); + ddr3_dqs_p : inout std_logic_vector(7 downto 0); + ddr3_dqs_n : inout std_logic_vector(7 downto 0); + ddr3_addr : out std_logic_vector(13 downto 0); + ddr3_ba : out std_logic_vector(2 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_ck_p : out std_logic_vector(0 downto 0); + ddr3_ck_n : out std_logic_vector(0 downto 0); + ddr3_cke : out std_logic_vector(0 downto 0); + ddr3_cs_n : out std_logic_vector(0 downto 0); + ddr3_dm : out std_logic_vector(7 downto 0); + ddr3_odt : out std_logic_vector(0 downto 0); + dsurx : in std_ulogic; + dsutx : out std_ulogic; + dsuctsn : in std_ulogic; + dsurtsn : out std_ulogic; + button : in std_logic_vector(3 downto 0); + switch : inout std_logic_vector(3 downto 0); + led : out std_logic_vector(6 downto 0); + iic_scl : inout std_ulogic; + iic_sda : inout std_ulogic + ); +end; + +architecture rtl of leon3mp is + +component ahb2mig_series7 + generic( + hindex : integer := 0; + haddr : integer := 0; + hmask : integer := 16#f00#; + pindex : integer := 0; + paddr : integer := 0; + pmask : integer := 16#fff#; + SIM_BYPASS_INIT_CAL : string := "OFF"; + SIMULATION : string := "FALSE"; + USE_MIG_INTERFACE_MODEL : boolean := false + ); + port( + ddr3_dq : inout std_logic_vector(63 downto 0); + ddr3_dqs_p : inout std_logic_vector(7 downto 0); + ddr3_dqs_n : inout std_logic_vector(7 downto 0); + ddr3_addr : out std_logic_vector(13 downto 0); + ddr3_ba : out std_logic_vector(2 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_ck_p : out std_logic_vector(0 downto 0); + ddr3_ck_n : out std_logic_vector(0 downto 0); + ddr3_cke : out std_logic_vector(0 downto 0); + ddr3_cs_n : out std_logic_vector(0 downto 0); + ddr3_dm : out std_logic_vector(7 downto 0); + ddr3_odt : out std_logic_vector(0 downto 0); + ahbso : out ahb_slv_out_type; + ahbsi : in ahb_slv_in_type; + apbi : in apb_slv_in_type; + apbo : out apb_slv_out_type; + calib_done : out std_logic; + rst_n_syn : in std_logic; + rst_n_async : in std_logic; + clk_amba : in std_logic; + sys_clk_p : in std_logic; + sys_clk_n : in std_logic; + ui_clk : out std_logic; + ui_clk_sync_rst : out std_logic + ); +end component ; + +component ddr_dummy + port ( + ddr_dq : inout std_logic_vector(63 downto 0); + ddr_dqs : inout std_logic_vector(7 downto 0); + ddr_dqs_n : inout std_logic_vector(7 downto 0); + ddr_addr : out std_logic_vector(13 downto 0); + ddr_ba : out std_logic_vector(2 downto 0); + ddr_ras_n : out std_logic; + ddr_cas_n : out std_logic; + ddr_we_n : out std_logic; + ddr_reset_n : out std_logic; + ddr_ck_p : out std_logic_vector(0 downto 0); + ddr_ck_n : out std_logic_vector(0 downto 0); + ddr_cke : out std_logic_vector(0 downto 0); + ddr_cs_n : out std_logic_vector(0 downto 0); + ddr_dm : out std_logic_vector(7 downto 0); + ddr_odt : out std_logic_vector(0 downto 0) + ); +end component ; + +constant maxahbm : integer := CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG; +constant maxahbs : integer := 1+CFG_DSU+CFG_MCTRL_LEON2+CFG_AHBROMEN+CFG_AHBRAMEN+2; +constant maxapbs : integer := CFG_IRQ3_ENABLE+CFG_GPT_ENABLE+CFG_GRGPIO_ENABLE+CFG_AHBSTAT+CFG_AHBSTAT; + +signal vcc, gnd : std_logic; +signal memi : memory_in_type; +signal memo : memory_out_type; +signal wpo : wprot_out_type; +signal sdi : sdctrl_in_type; +signal sdo : sdram_out_type; +signal sdo2, sdo3 : sdctrl_out_type; + +signal apbi : apb_slv_in_type; +signal apbo : apb_slv_out_vector := (others => apb_none); +signal ahbsi : ahb_slv_in_type; +signal ahbso : ahb_slv_out_vector := (others => ahbs_none); +signal ahbmi : ahb_mst_in_type; +signal vahbmi : ahb_mst_in_type; +signal ahbmo : ahb_mst_out_vector := (others => ahbm_none); +signal vahbmo : ahb_mst_out_type; + +signal ui_clk : std_ulogic; +signal clkm, rstn, rstraw, sdclkl : std_ulogic; +signal clk_200 : std_ulogic; +signal clk25, clk40, clk65 : std_ulogic; + +signal cgi, cgi2 : clkgen_in_type; +signal cgo, cgo2 : clkgen_out_type; +signal u1i, u2i, dui : uart_in_type; +signal u1o, u2o, duo : uart_out_type; + +signal irqi : irq_in_vector(0 to CFG_NCPU-1); +signal irqo : irq_out_vector(0 to CFG_NCPU-1); + +signal dbgi : l3_debug_in_vector(0 to CFG_NCPU-1); +signal dbgo : l3_debug_out_vector(0 to CFG_NCPU-1); + +signal dsui : dsu_in_type; +signal dsuo : dsu_out_type; + +signal rxd1 : std_logic; +signal txd1 : std_logic; + +signal ethi : eth_in_type; +signal etho : eth_out_type; +signal egtx_clk :std_ulogic; +signal negtx_clk :std_ulogic; + +signal gpti : gptimer_in_type; +signal gpto : gptimer_out_type; + +signal gpioi : gpio_in_type; +signal gpioo : gpio_out_type; + +signal clklock, elock, ulock : std_ulogic; + +signal lock, calib_done, clkml, lclk, rst, ndsuact : std_ulogic; +signal tck, tckn, tms, tdi, tdo : std_ulogic; + +signal lcd_datal : std_logic_vector(11 downto 0); +signal lcd_hsyncl, lcd_vsyncl, lcd_del, lcd_reset_bl : std_ulogic; + +signal i2ci, dvi_i2ci : i2c_in_type; +signal i2co, dvi_i2co : i2c_out_type; + +constant BOARD_FREQ : integer := 200000; -- input frequency in KHz +constant CPU_FREQ : integer := BOARD_FREQ * CFG_CLKMUL / CFG_CLKDIV; -- cpu frequency in KHz + +signal stati : ahbstat_in_type; + +signal fpi : grfpu_in_vector_type; +signal fpo : grfpu_out_vector_type; + +attribute keep : boolean; +attribute syn_keep : string; +attribute keep of clkm : signal is true; + +begin + +---------------------------------------------------------------------- +--- Reset and Clock generation ------------------------------------- +---------------------------------------------------------------------- + + vcc <= '1'; gnd <= '0'; + cgi.pllctrl <= "00"; cgi.pllrst <= rstraw; + + clk_gen : if (CFG_MIG_SERIES7 = 0) generate + clk_pad_ds : clkpad_ds generic map (tech => padtech, level => sstl, voltage => x15v) port map (clk200p, clk200n, lclk); + clkgen0 : clkgen -- clock generator + generic map (clktech, CFG_CLKMUL, CFG_CLKDIV, CFG_MCTRL_SDEN, + CFG_CLK_NOFB, 0, 0, 0, BOARD_FREQ) + port map (lclk, lclk, clkm, open, open, open, open, cgi, cgo, open, open, open); + end generate; + + reset_pad : inpad generic map (tech => padtech, level => cmos, voltage => x18v) port map (reset, rst); + rst0 : rstgen -- reset generator + generic map (acthigh => 1) + port map (rst, clkm, lock, rstn, rstraw); + lock <= calib_done when CFG_MIG_SERIES7 = 1 else cgo.clklock; + +---------------------------------------------------------------------- +--- AHB CONTROLLER -------------------------------------------------- +---------------------------------------------------------------------- + + ahb0 : ahbctrl -- AHB arbiter/multiplexer + generic map (defmast => CFG_DEFMST, split => CFG_SPLIT, + rrobin => CFG_RROBIN, ioaddr => CFG_AHBIO, fpnpen => CFG_FPNPEN, + nahbm => maxahbm, nahbs => maxahbs) + port map (rstn, clkm, ahbmi, ahbmo, ahbsi, ahbso); + +---------------------------------------------------------------------- +--- LEON3 processor and DSU ----------------------------------------- +---------------------------------------------------------------------- + + nosh : if CFG_GRFPUSH = 0 generate + cpu : for i in 0 to CFG_NCPU-1 generate + l3ft : if CFG_LEON3FT_EN /= 0 generate + leon3ft0 : leon3ft -- LEON3 processor + generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, + 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, + CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, + CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, + CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, + CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1, + CFG_IUFT_EN, CFG_FPUFT_EN, CFG_CACHE_FT_EN, CFG_RF_ERRINJ, + CFG_CACHE_ERRINJ, CFG_DFIXED, CFG_LEON3_NETLIST, CFG_SCAN, CFG_MMU_PAGE) + port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, + irqi(i), irqo(i), dbgi(i), dbgo(i), clkm); + end generate; + + l3s : if CFG_LEON3FT_EN = 0 generate + u0 : leon3s -- LEON3 processor + generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, + 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, + CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, + CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, + CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, + CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1, + CFG_DFIXED, CFG_SCAN, CFG_MMU_PAGE, CFG_BP) + port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, + irqi(i), irqo(i), dbgi(i), dbgo(i)); + end generate; + end generate; + end generate; + + sh : if CFG_GRFPUSH = 1 generate + cpu : for i in 0 to CFG_NCPU-1 generate + l3ft : if CFG_LEON3FT_EN /= 0 generate + leon3ft0 : leon3ftsh -- LEON3 processor + generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, + 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, + CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, + CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, + CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, + CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1, + CFG_IUFT_EN, CFG_FPUFT_EN, CFG_CACHE_FT_EN, CFG_RF_ERRINJ, + CFG_CACHE_ERRINJ, CFG_DFIXED, CFG_LEON3_NETLIST, CFG_SCAN, CFG_MMU_PAGE) + port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, + irqi(i), irqo(i), dbgi(i), dbgo(i), clkm, fpi(i), fpo(i)); + + end generate; + l3s : if CFG_LEON3FT_EN = 0 generate + u0 : leon3sh -- LEON3 processor + generic map (i, fabtech, memtech, CFG_NWIN, CFG_DSU, CFG_FPU, CFG_V8, + 0, CFG_MAC, pclow, CFG_NOTAG, CFG_NWP, CFG_ICEN, CFG_IREPL, CFG_ISETS, CFG_ILINE, + CFG_ISETSZ, CFG_ILOCK, CFG_DCEN, CFG_DREPL, CFG_DSETS, CFG_DLINE, CFG_DSETSZ, + CFG_DLOCK, CFG_DSNOOP, CFG_ILRAMEN, CFG_ILRAMSZ, CFG_ILRAMADDR, CFG_DLRAMEN, + CFG_DLRAMSZ, CFG_DLRAMADDR, CFG_MMUEN, CFG_ITLBNUM, CFG_DTLBNUM, CFG_TLB_TYPE, CFG_TLB_REP, + CFG_LDDEL, disas, CFG_ITBSZ, CFG_PWD, CFG_SVT, CFG_RSTADDR, CFG_NCPU-1, + CFG_DFIXED, CFG_SCAN, CFG_MMU_PAGE) + port map (clkm, rstn, ahbmi, ahbmo(i), ahbsi, ahbso, + irqi(i), irqo(i), dbgi(i), dbgo(i), fpi(i), fpo(i)); + end generate; + end generate; + + grfpush0 : grfpushwx generic map ((CFG_FPU-1), CFG_NCPU, fabtech) + port map (clkm, rstn, fpi, fpo); + + end generate; + + led1_pad : outpad generic map (tech => padtech, level => cmos, voltage => x18v) port map (led(1), dbgo(0).error); + + dsugen : if CFG_DSU = 1 generate + dsu0 : dsu3 -- LEON3 Debug Support Unit + generic map (hindex => 2, haddr => 16#900#, hmask => 16#F00#, + ncpu => CFG_NCPU, tbits => 30, tech => memtech, irq => 0, kbytes => CFG_ATBSZ) + port map (rstn, clkm, ahbmi, ahbsi, ahbso(2), dbgo, dbgi, dsui, dsuo); + dsui.enable <= '1'; + dsui_break_pad : inpad generic map (level => cmos, voltage => x18v, tech => padtech) port map (button(3), dsui.break); + dsuact_pad : outpad generic map (tech => padtech, level => cmos, voltage => x18v) port map (led(0), ndsuact); + ndsuact <= not dsuo.active; + end generate; + + nodsu : if CFG_DSU = 0 generate + dsuo.tstop <= '0'; dsuo.active <= '0'; ahbso(2) <= ahbs_none; + end generate; + + -- Debug UART + dcomgen : if CFG_AHB_UART = 1 generate + dcom0 : ahbuart + generic map (hindex => CFG_NCPU, pindex => 7, paddr => 7) + port map (rstn, clkm, dui, duo, apbi, apbo(7), ahbmi, ahbmo(CFG_NCPU)); + dui.extclk <= '0'; + end generate; + + nouah : if CFG_AHB_UART = 0 generate + apbo(7) <= apb_none; + duo.txd <= '0'; + duo.rtsn <= '0'; + dui.extclk <= '0'; + end generate; + + dsurx_pad : inpad generic map (level => cmos, voltage => x18v, tech => padtech) port map (dsurx, dui.rxd); + dsutx_pad : outpad generic map (level => cmos, voltage => x18v, tech => padtech) port map (dsutx, duo.txd); + dsuctsn_pad : inpad generic map (level => cmos, voltage => x18v, tech => padtech) port map (dsuctsn, dui.ctsn); + dsurtsn_pad : outpad generic map (level => cmos, voltage => x18v, tech => padtech) port map (dsurtsn, duo.rtsn); + + + ahbjtaggen0 :if CFG_AHB_JTAG = 1 generate + ahbjtag0 : ahbjtag generic map(tech => fabtech, hindex => CFG_NCPU+1) + port map(rstn, clkm, tck, tms, tdi, tdo, ahbmi, ahbmo(CFG_NCPU+1), + open, open, open, open, open, open, open, gnd); + end generate; + + nojtag : if CFG_AHB_JTAG = 0 generate apbo(CFG_NCPU+1) <= apb_none; end generate; + +---------------------------------------------------------------------- +--- Memory controllers ---------------------------------------------- +---------------------------------------------------------------------- + + memi.writen <= '1'; memi.wrn <= "1111"; memi.bwidth <= "01"; + memi.brdyn <= '0'; memi.bexcn <= '1'; + + mctrl_gen : if CFG_MCTRL_LEON2 /= 0 generate + mctrl0 : mctrl generic map (hindex => 0, pindex => 0, + paddr => 0, srbanks => 2, ram8 => CFG_MCTRL_RAM8BIT, + ram16 => CFG_MCTRL_RAM16BIT, sden => CFG_MCTRL_SDEN, + invclk => CFG_CLK_NOFB, sepbus => CFG_MCTRL_SEPBUS, + pageburst => CFG_MCTRL_PAGE, rammask => 0, iomask => 0) + port map (rstn, clkm, memi, memo, ahbsi, ahbso(0), apbi, apbo(0), wpo, sdo); + + addr_pad : outpadv generic map (width => 26, tech => padtech, level => cmos, voltage => x18v) + port map (address(25 downto 0), memo.address(26 downto 1)); + roms_pad : outpad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (romsn, memo.romsn(0)); + oen_pad : outpad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (oen, memo.oen); + adv_pad : outpad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (adv, '0'); + wri_pad : outpad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (writen, memo.writen); + data_pad : iopadvv generic map (tech => padtech, width => 16, level => cmos, voltage => x18v) + port map (data(15 downto 0), memo.data(31 downto 16), + memo.vbdrive(31 downto 16), memi.data(31 downto 16)); + end generate; + nomctrl : if CFG_MCTRL_LEON2 = 0 generate + roms_pad : outpad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (romsn, vcc); --ahbso(0) <= ahbso_none; + end generate; + +---------------------------------------------------------------------- +--- DDR3 memory controller ------------------------------------------ +---------------------------------------------------------------------- + + mig_gen : if (CFG_MIG_SERIES7 = 1) generate + ddrc : ahb2mig_series7 generic map( + hindex => 4, haddr => 16#400#, hmask => 16#F80#, + pindex => 4, paddr => 4, + SIM_BYPASS_INIT_CAL => SIM_BYPASS_INIT_CAL, + SIMULATION => SIMULATION, USE_MIG_INTERFACE_MODEL => USE_MIG_INTERFACE_MODEL) + port map( + ddr3_dq => ddr3_dq, + ddr3_dqs_p => ddr3_dqs_p, + ddr3_dqs_n => ddr3_dqs_n, + ddr3_addr => ddr3_addr, + ddr3_ba => ddr3_ba, + ddr3_ras_n => ddr3_ras_n, + ddr3_cas_n => ddr3_cas_n, + ddr3_we_n => ddr3_we_n, + ddr3_reset_n => ddr3_reset_n, + ddr3_ck_p => ddr3_ck_p, + ddr3_ck_n => ddr3_ck_n, + ddr3_cke => ddr3_cke, + ddr3_cs_n => ddr3_cs_n, + ddr3_dm => ddr3_dm, + ddr3_odt => ddr3_odt, + ahbsi => ahbsi, + ahbso => ahbso(4), + apbi => apbi, + apbo => apbo(4), + calib_done => calib_done, + rst_n_syn => rstn, + rst_n_async => rstraw, + clk_amba => clkm, + sys_clk_p => clk200p, + sys_clk_n => clk200n, + ui_clk => clkm, + ui_clk_sync_rst => open + ); + end generate; + + no_mig_gen : if (CFG_MIG_SERIES7 = 0) generate + + ahbram0 : ahbram + generic map (hindex => 4, haddr => 16#400#, tech => CFG_MEMTECH, kbytes => 128) + port map ( rstn, clkm, ahbsi, ahbso(4)); + + ddrdummy0 : ddr_dummy + port map ( + ddr_dq => ddr3_dq, + ddr_dqs => ddr3_dqs_p, + ddr_dqs_n => ddr3_dqs_n, + ddr_addr => ddr3_addr, + ddr_ba => ddr3_ba, + ddr_ras_n => ddr3_ras_n, + ddr_cas_n => ddr3_cas_n, + ddr_we_n => ddr3_we_n, + ddr_reset_n => ddr3_reset_n, + ddr_ck_p => ddr3_ck_p, + ddr_ck_n => ddr3_ck_n, + ddr_cke => ddr3_cke, + ddr_cs_n => ddr3_cs_n, + ddr_dm => ddr3_dm, + ddr_odt => ddr3_odt + ); + + calib_done <= '1'; + + end generate; + + led2_pad : outpad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (led(2), calib_done); + led3_pad : outpad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (led(3), lock); + led4_pad : outpad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (led(4), ahbso(4).hready); + +---------------------------------------------------------------------- +--- I2C Controller-------------------------------------------- +---------------------------------------------------------------------- + + i2cm: if CFG_I2C_ENABLE = 1 generate -- I2C master + i2c0 : i2cmst + generic map (pindex => 8, paddr => 8, pmask => 16#FFF#, + pirq => 11, filter => 8) + port map (rstn, clkm, apbi, apbo(8), i2ci, i2co); + -- The EEK does not use a bi-directional line for the I2C clock + i2ci.scl <= i2co.scloen; -- No clock stretch possible + -- When SCL output enable is activated the line should go low + i2c_scl_pad : outpad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (iic_scl, i2co.scloen); + i2c_sda_pad : iopad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (iic_sda, i2co.sda, i2co.sdaoen, i2ci.sda); + end generate i2cm; + + +---------------------------------------------------------------------- +--- APB Bridge and various periherals ------------------------------- +---------------------------------------------------------------------- + + apb0 : apbctrl -- AHB/APB bridge + generic map (hindex => 1, haddr => CFG_APBADDR, nslaves => 16) + port map (rstn, clkm, ahbsi, ahbso(1), apbi, apbo ); + + irqctrl : if CFG_IRQ3_ENABLE /= 0 generate + irqctrl0 : irqmp -- interrupt controller + generic map (pindex => 2, paddr => 2, ncpu => CFG_NCPU) + port map (rstn, clkm, apbi, apbo(2), irqo, irqi); + end generate; + irq3 : if CFG_IRQ3_ENABLE = 0 generate + x : for i in 0 to CFG_NCPU-1 generate + irqi(i).irl <= "0000"; + end generate; + apbo(2) <= apb_none; + end generate; + + gpt : if CFG_GPT_ENABLE /= 0 generate + timer0 : gptimer -- timer unit + generic map (pindex => 3, paddr => 3, pirq => CFG_GPT_IRQ, + sepirq => CFG_GPT_SEPIRQ, sbits => CFG_GPT_SW, ntimers => CFG_GPT_NTIM, + nbits => CFG_GPT_TW, wdog => 0) + port map (rstn, clkm, apbi, apbo(3), gpti, gpto); + gpti.dhalt <= dsuo.tstop; gpti.extclk <= '0'; + end generate; + + nogpt : if CFG_GPT_ENABLE = 0 generate apbo(3) <= apb_none; end generate; + + gpio0 : if CFG_GRGPIO_ENABLE /= 0 generate -- GPIO unit + grgpio0: grgpio + generic map(pindex => 10, paddr => 10, imask => CFG_GRGPIO_IMASK, nbits => 7) + port map(rst => rstn, clk => clkm, apbi => apbi, apbo => apbo(10), + gpioi => gpioi, gpioo => gpioo); + pio_pads : for i in 0 to 3 generate + pio_pad : iopad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (switch(i), gpioo.dout(i), gpioo.oen(i), gpioi.din(i)); + end generate; + pio_pads2 : for i in 4 to 6 generate + pio_pad : inpad generic map (tech => padtech, level => cmos, voltage => x18v) + port map (button(i-4), gpioi.din(i)); + end generate; + end generate; + + ua1 : if CFG_UART1_ENABLE /= 0 generate + uart1 : apbuart -- UART 1 + generic map (pindex => 1, paddr => 1, pirq => 2, console => dbguart, + fifosize => CFG_UART1_FIFO) + port map (rstn, clkm, apbi, apbo(1), u1i, u1o); + u1i.rxd <= rxd1; + u1i.ctsn <= '0'; + u1i.extclk <= '0'; + txd1 <= u1o.txd; + serrx_pad : outpad generic map (level => cmos, voltage => x18v, tech => padtech) + port map (led(5), rxd1); + sertx_pad : outpad generic map (level => cmos, voltage => x18v, tech => padtech) + port map (led(6), txd1); + end generate; + noua0 : if CFG_UART1_ENABLE = 0 generate apbo(1) <= apb_none; end generate; + + ahbs : if CFG_AHBSTAT = 1 generate -- AHB status register + ahbstat0 : ahbstat generic map (pindex => 15, paddr => 15, pirq => 7, + nftslv => CFG_AHBSTATN) + port map (rstn, clkm, ahbmi, ahbsi, stati, apbi, apbo(15)); + end generate; + +----------------------------------------------------------------------- +--- AHB ROM ---------------------------------------------------------- +----------------------------------------------------------------------- + + bpromgen : if CFG_AHBROMEN /= 0 generate + brom : entity work.ahbrom + generic map (hindex => 7, haddr => CFG_AHBRODDR, pipe => CFG_AHBROPIP) + port map ( rstn, clkm, ahbsi, ahbso(7)); + end generate; + +----------------------------------------------------------------------- +--- AHB RAM ---------------------------------------------------------- +----------------------------------------------------------------------- + + ocram : if CFG_AHBRAMEN = 1 generate + ahbram0 : ahbram generic map (hindex => 5, haddr => CFG_AHBRADDR, + tech => CFG_MEMTECH, kbytes => CFG_AHBRSZ) + port map ( rstn, clkm, ahbsi, ahbso(5)); + end generate; + +----------------------------------------------------------------------- +--- Test report module ---------------------------------------------- +----------------------------------------------------------------------- + + -- pragma translate_off + test0_gen : if (testahb = true) generate + test0 : ahbrep generic map (hindex => 3, haddr => 16#200#) + port map (rstn, clkm, ahbsi, ahbso(3)); + end generate; + -- pragma translate_on + + test1_gen : if (testahb = false) generate + ahbram0 : ahbram generic map (hindex => 3, haddr => 16#200#, + tech => CFG_MEMTECH, kbytes => CFG_AHBRSZ) + port map ( rstn, clkm, ahbsi, ahbso(3)); + end generate; + + ----------------------------------------------------------------------- + --- Drive unused bus elements --------------------------------------- + ----------------------------------------------------------------------- + + nam1 : for i in (CFG_NCPU+CFG_AHB_UART+CFG_AHB_JTAG+CFG_GRETH+1) to NAHBMST-1 generate + ahbmo(i) <= ahbm_none; + end generate; + + ----------------------------------------------------------------------- + --- Boot message ---------------------------------------------------- + ----------------------------------------------------------------------- + + -- pragma translate_off + x : report_version + generic map ( + msg1 => "LEON3 Xilinx VC707 Demonstration design", + msg2 => "GRLIB Version " & tost(LIBVHDL_VERSION/1000) & "." & tost((LIBVHDL_VERSION mod 1000)/100) + & "." & tost(LIBVHDL_VERSION mod 100) & ", build " & tost(LIBVHDL_BUILD), + msg3 => "Target technology: " & tech_table(fabtech) & ", memory library: " & tech_table(memtech), + mdel => 1 + ); + -- pragma translate_on + end; + diff --git a/designs/leon3-xilinx-vc707/mig_interface_model.v b/designs/leon3-xilinx-vc707/mig_interface_model.v new file mode 100644 index 00000000..809240af --- /dev/null +++ b/designs/leon3-xilinx-vc707/mig_interface_model.v @@ -0,0 +1,163 @@ + +/***************************************************************************** +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Entity: mig_interface_model +-- File: mig_interface_model.v +-- Author: Fredrik Ringhage - Aeroflex Gaisler AB +-- +-- This is a interface model for Xilinx Virtex-7 MIG used on eval board +-- VC707 and KC705. +-- +------------------------------------------------------------------------------- +*****************************************************************************/ + +`timescale 1ps/1ps + +module mig_interface_model + ( + // user interface signals + input [27:0] app_addr, + input [2:0] app_cmd, + input app_en, + input [511:0] app_wdf_data, + input app_wdf_end, + input [63:0] app_wdf_mask, + input app_wdf_wren, + output wire [511:0] app_rd_data, + output wire app_rd_data_end, + output wire app_rd_data_valid, + output wire app_rdy, + output wire app_wdf_rdy, + output reg ui_clk, + output reg ui_clk_sync_rst, + output reg init_calib_complete, + input sys_rst + ); + + parameter AddressSize = 28 - 12; + parameter WordSize = 512; + parameter MEM_SIZE = (1<> 3]; + + // Clear memory + initial + begin + for (k = 0; k < MEM_SIZE ; k = k + 1) + begin + Mem[k] = 512'd0; + end + end + + initial + begin + app_rd_data_valid_r = 1'b0; + app_rd_data_end_r = 1'b0; + app_rdy_r = 1'b1; + app_wdf_rdy_r = 1'b1; + init_calib_complete = 1'b0; + ui_clk_sync_rst = 1'b0; + ui_clk = 1'b0; + end + + // Generate clocks + always + begin + forever begin + #5000; + ui_clk = ~ui_clk; + end + end + + // Release reset and calibration + initial + begin + #10000; + $display("Reset release of simulation time is %d",$time); + @(posedge ui_clk) ui_clk_sync_rst = 1'b1; + #1000; + $display("Calibration release of simulation time is %d",$time); + @(posedge ui_clk) init_calib_complete = 1'b1; + end + + // Write Process + always@(posedge app_wdf_wren) + begin + #100; + for (k = 0; k < 511 ; k = k + 1) + begin + mask[k] = ~ app_wdf_mask[k >> 3]; + end + Mem[app_addr >> 3] = (app_wdf_data & mask) | (Mem[app_addr >> 3] & (~ mask) ); + #10000; + if (app_wdf_wren) begin + #100; + for (k = 0; k < 512 ; k = k + 1) + begin + mask[k] = ~ app_wdf_mask[k >> 3]; + end + Mem[app_addr >> 3] = (app_wdf_data & mask) | (Mem[app_addr >> 3] & (~ mask) ); + end + end + + // Read Process + always@(posedge app_en) + begin + #100; + if (app_cmd == 3'd1) begin + app_addr_r1 = app_addr; + #10000; + app_addr_r2 = app_addr; + #40000; + app_addr_r = app_addr_r1; + #100; + app_rd_data_valid_r = 1'b1; + #10000; + app_addr_r = app_addr_r2; + #10000; + app_rd_data_valid_r = 1'b0; + #10000; + end + end +endmodule diff --git a/designs/leon3-xilinx-vc707/preload_ddr3_dimm.do b/designs/leon3-xilinx-vc707/preload_ddr3_dimm.do new file mode 100644 index 00000000..c4ab1091 --- /dev/null +++ b/designs/leon3-xilinx-vc707/preload_ddr3_dimm.do @@ -0,0 +1,52 @@ +# Procedure to load memory from file +proc reload_mem {} { + # Load memory with system test and display memory + if {[examine /testbench/led(3)] == 1} { + if {[examine sim:/config@work/CFG_MIG_SERIES7] == 1} { + echo "Loading DDR3 memory with System Test" + if {[examine /testbench/USE_MIG_INTERFACE_MODEL] == FALSE} { + mem load -startaddress 0 -format hex -infile sdram_dimm1.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(0)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm2.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(1)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm3.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(2)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm4.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(3)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm5.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(4)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm6.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(5)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm7.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(6)/u1/memory + mem load -startaddress 0 -format hex -infile sdram_dimm8.hex -filltype value -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(7)/u1/memory + + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(0)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(1)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(2)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(3)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(4)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(5)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(6)/u1/address + mem load -startaddress 0 -format hex -filltype incr -filldata 1'b0 sim:/testbench/gen_mem_model/ddr3mem/gen_mem(7)/u1/address + + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(0)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(1)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(2)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(3)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(4)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(5)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(6)/u1/memory_used 1111111111111111 + change sim:/testbench/gen_mem_model/ddr3mem/gen_mem(7)/u1/memory_used 1111111111111111 + } + + if {[examine /testbench/USE_MIG_INTERFACE_MODEL] == TRUE} { + echo "MIG Model found" + mem load -startaddress 0 -format hex -infile sdram_dimm_merge.hex -filltype value -filldata 1'b0 sim:/testbench/cpu/mig_gen/ddrc/gen_mig_model/MCB_model_inst/Mem + } + + #do wave.do + } + } +} + +set init_path /testbench/led(3); + +when -label when1 "$init_path'event and $init_path ='1'" { + reload_mem +} + +#run 2 ms diff --git a/designs/leon3-ge-hpe-mini/prom.h b/designs/leon3-xilinx-vc707/prom.h similarity index 79% rename from designs/leon3-ge-hpe-mini/prom.h rename to designs/leon3-xilinx-vc707/prom.h index d003b061..e283ab8b 100644 --- a/designs/leon3-ge-hpe-mini/prom.h +++ b/designs/leon3-xilinx-vc707/prom.h @@ -1,7 +1,7 @@ -#define MCFG1 0x10380233 +#define MCFG1 0x10380133 #define MCFG2 0xe6B86e60 #define MCFG3 0x000ff000 -#define ASDCFG 0xfff00100 +#define ASDCFG 0x80000000 #define DSDCFG 0xe6A06e60 #define L2MCTRLIO 0x80000000 #define IRQCTRL 0x80000200 diff --git a/designs/leon3-ge-hpe-midi-ep2s180/prom.srec b/designs/leon3-xilinx-vc707/prom.srec similarity index 73% rename from designs/leon3-ge-hpe-midi-ep2s180/prom.srec rename to designs/leon3-xilinx-vc707/prom.srec index 0e04c0a9..a2497cbf 100755 --- a/designs/leon3-ge-hpe-midi-ep2s180/prom.srec +++ b/designs/leon3-xilinx-vc707/prom.srec @@ -23,15 +23,15 @@ S1130140FD18C000010000000100000001000000D3 S1130150010000000100000089A008420100000025 S113016001000000010000000100000010800005F3 S11301700100000001000000000000000000000079 -S1130180874440008730E01C8688E00F1280001608 -S11301900320000005040E008410A233C420400094 -S11301A00539A81B8410A260C4206004050003FC68 +S1130180874440008730E01C8688E00F1280001509 +S11301900320000005040E008410A133C420400095 +S11301A00539AE1B8410A260C4206004050003FC62 S11301B0C420600882103860C40040008530A00C60 -S11301C0030000048210600980A04002128000062F -S11301D0033FFC00821061000539A81B8410A26053 -S11301E0C4204000050000808210000080A0E000D0 -S11301F002800005010000008200400210BFFFFCE5 -S11302008620E0013D1003FFBC17A3E0BC2780015A -S11302109C27A0600310000081C040000100000082 +S11301C0030000048210600980A040021280000530 +S11301D0032000000539A81B8410A260C42040003D +S11301E0050000808210000080A0E000028000056D +S11301F0010000008200400210BFFFFC8620E001E5 +S11302003D1003FFBC17A3E0BC2780019C27A0601E +S11302100310000081C04000010000000100000044 S113022000000000000000000000000000000000CA S9030000FC diff --git a/designs/leon3-ge-hpe-mini/sdram.srec b/designs/leon3-xilinx-vc707/sdram.srec similarity index 70% rename from designs/leon3-ge-hpe-mini/sdram.srec rename to designs/leon3-xilinx-vc707/sdram.srec index 926a7ff7..9eece58d 100755 --- a/designs/leon3-ge-hpe-mini/sdram.srec +++ b/designs/leon3-xilinx-vc707/sdram.srec @@ -1,14 +1,14 @@ S00D0000736472616D2E7372656300 -S31540000000881000000910006C81C1206C01000000BE -S31540000010A1480000A75000001080203BAC102001F2 +S31540000000881000000910006C81C122980100000090 +S31540000010A1480000A75000001080203EAC102001EF S3154000002091D0200001000000010000000100000006 S3154000003091D02000010000000100000001000000F6 -S31540000040A14800002910006B81C523A401000000CF -S31540000050A14800002910006981C522C8010000009E -S31540000060A14800002910006981C523340100000021 +S31540000040A14800002910006C81C521EC0100000088 +S31540000050A14800002910006981C522A401000000C2 +S31540000060A14800002910006981C523100100000045 S3154000007091D02000010000000100000001000000B6 S3154000008091D02000010000000100000001000000A6 -S31540000090A1480000A75000001080201BAC1020098A +S31540000090A1480000A75000001080201EAC10200987 S315400000A091D0200001000000010000000100000086 S315400000B091D0200001000000010000000100000076 S315400000C091D0200001000000010000000100000066 @@ -16,21 +16,21 @@ S315400000D091D0200001000000010000000100000056 S315400000E091D0200001000000010000000100000046 S315400000F091D0200001000000010000000100000036 S3154000010091D0200001000000010000000100000025 -S31540000110AE102001A148000010806A33A7500000AD -S31540000120AE102002A148000010806A2FA7500000A0 -S31540000130AE102003A148000010806A2BA750000093 -S31540000140AE102004A148000010806A27A750000086 -S31540000150AE102005A148000010806A23A750000079 -S31540000160AE102006A148000010806A1FA75000006C -S31540000170AE102007A148000010806A1BA75000005F -S31540000180AE102008A148000010806A17A750000052 -S31540000190AE102009A148000010806A13A750000045 -S315400001A0AE10200AA148000010806A0FA750000038 -S315400001B0AE10200BA148000010806A0BA75000002B -S315400001C0AE10200CA148000010806A07A75000001E -S315400001D0AE10200DA148000010806A03A750000011 -S315400001E0AE10200EA1480000108069FFA750000005 -S315400001F0AE10200FA1480000108069FBA7500000F8 +S31540000110AE102001A148000010806A2AA7500000B6 +S31540000120AE102002A148000010806A26A7500000A9 +S31540000130AE102003A148000010806A22A75000009C +S31540000140AE102004A148000010806A1EA75000008F +S31540000150AE102005A148000010806A1AA750000082 +S31540000160AE102006A148000010806A16A750000075 +S31540000170AE102007A148000010806A12A750000068 +S31540000180AE102008A148000010806A0EA75000005B +S31540000190AE102009A148000010806A0AA75000004E +S315400001A0AE10200AA148000010806A06A750000041 +S315400001B0AE10200BA148000010806A02A750000034 +S315400001C0AE10200CA1480000108069FEA750000028 +S315400001D0AE10200DA1480000108069FAA75000001B +S315400001E0AE10200EA1480000108069F6A75000000E +S315400001F0AE10200FA1480000108069F2A750000001 S3154000020091D0200001000000010000000100000024 S3154000021091D0200001000000010000000100000014 S3154000022091D0200001000000010000000100000004 @@ -129,10 +129,10 @@ S315400007E091D020000100000001000000010000003F S315400007F091D020000100000001000000010000002F S3154000080091D020000100000001000000010000001E S3154000081091D020000100000001000000010000000E -S31540000820A14800002910006A81C521080100000086 -S31540000830A1480000108067D9A750000001000000C1 +S31540000820A14800002910006A81C520E401000000AB +S31540000830A1480000108067D0A750000001000000CA S3154000084091D02000010000000100000001000000DE -S31540000850A14800002910006A81C520EC0100000073 +S31540000850A14800002910006A81C520C80100000097 S3154000086091D02000010000000100000001000000BE S3154000087091D02000010000000100000001000000AE S3154000088091D020000100000001000000010000009E @@ -255,250 +255,250 @@ S31540000FC091D0200001000000010000000100000057 S31540000FD091D0200001000000010000000100000047 S31540000FE091D0200001000000010000000100000037 S31540000FF091D0200001000000010000000100000027 -S315400010009DE3BFC0051001438410A0600710014452 -S315400010108610E188821000008620C00286A0E00883 -S3154000102036BFFFFFC038800311100144901221885B -S31540001030C02200004000666601000000400066666F -S315400010400100000040006818010000001110006D0A -S31540001050901221A040006166010000004000694AEC -S3154000106001000000400000430100000040006743CB -S315400010700100000081C7E00881E800009DE3BF98B9 -S3154000108023100143C20C606080A0600012800015EE -S315400010902110008010800005C204200C9FC3400030 -S315400010A0C224200CC204200CDA00400080A3600059 -S315400010B012BFFFFB82006004030000008210600044 -S315400010C080A0600002800006821020011110006D91 -S315400010D06FFFFBCC9012213082102001C22C606041 -S315400010E081C7E00881E800009DE3BF9881C7E0081A -S315400010F081E800009DE3BF98030000008210600075 -S315400011001110006D1310014380A060009012213031 -S3154000111002800004921260646FFFFBBA0100000077 -S315400011201B100144C203618880A060000280000950 -S31540001130B0136188030000008210600080A0600048 -S3154000114002800004010000006FFFFBAE81E8000052 -S315400011500100000081C7E00881E800009DE3BF98D8 -S3154000116081C7E00881E8000081C3E0080100000073 -S315400011709DE3BF9840000007010000004000014683 -S31540001180010000004000000E81E800000100000060 -S315400011909DE3BF98400000290100000080A2200086 -S315400011A01280000503100080D80060109A102001BC -S315400011B0DA23201081C7E00891E820000310008060 -S315400011C0D80060109A102001DA23201481C3E00869 -S315400011D09010200003100080DA006010D0234000F9 -S315400011E081C3E0089010200003100080DA006010F0 -S315400011F0D023600881C3E0089010200003100080CF -S31540001200DA006010D023600481C3E008901020000B -S3154000121013100080921260149010200081C3E008E1 -S31540001220D0EA4020901020001310008092126014E3 -S3154000123081C3E008D0224000914440009132201CF6 -S3154000124081C3E008900A200F81C3E008D0820020C5 -S315400012509010200C81C3E008D08200408210000824 -S3154000126080A20009148000039022000990224001C8 -S3154000127081C3E00801000000932A60028210200129 -S31540001280C22200099810200080A3000A1680000A96 -S3154000129096102001832B2002DA02000180A0000D67 -S315400012A0826020009803200180A3000A06BFFFFA4F -S315400012B0960AC00180A2E00002BFFFF49810200009 -S315400012C081C3E008010000009DE3BF98C2062010DC -S315400012D08330601CA0100018A400600180A4A00107 -S315400012E00280006CB0103FFF7FFFFFD4010000007A -S315400012F0AA100008912A20047FFFFFBC9002200715 -S315400013007FFFFFD40100000003020000808A000135 -S315400013100280005C010000009A05600182102001F5 -S315400013208328400D11100080C2242010901220A066 -S31540001330921000157FFFFFD1941000120310008019 -S3154000134082106018A12D6002C0204010DA004010C3 -S31540001350A610000180A36009291001431480002BC8 -S31540001360AC1000017FFFFFAB0100000080A220000F -S3154000137012BFFFFD01000000B010200080A6001241 -S31540001380168000140100000010800005A21000160F -S3154000139080A600121680000F01000000832E200256 -S315400013A0D0044010D20440017FFFFFADB0062001BB -S315400013B080A2200104BFFFF7901020027FFFFF901C -S315400013C00100000080A6001206BFFFF6832E200211 -S315400013D0C205207C82006001C225207C7FFFFF92EF -S315400013E001000000C204C01082006001C224C01087 -S315400013F0DA04C01080A3600904BFFFDB111000802F -S31540001400108000049012205C111000809012205C25 -S31540001410921000157FFFFF9994100012832CA002B2 -S3154000142082004012A0004001DA05207C80A4000D15 -S3154000143002800004231001437FFFFF7190102003B8 -S31540001440C204607C80A060000480000601000000A9 -S31540001450C204607C80A400011680000580A560005F -S315400014607FFFFF679010200380A56000228000095F -S31540001470B010200091D0200010800006B01020004F -S315400014807FFFFF5F9010200110BFFFA59A05600106 -S3154000149081C7E00881E800009DE3BF98C20620109E -S315400014A0A01000188330601C80A0600002800009F4 -S315400014B0B0103FFF7FFFFF610100000080A22000C7 -S315400014C0128000040300003F821063FFC2242010F4 -S315400014D081C7E00881E800009DE3BF98C20620105E -S315400014E08330601CA400600180A4A00102800068D3 -S315400014F0B0103FFF7FFFFF5101000000AA10000817 -S31540001500912A20047FFFFF39900220077FFFFF5179 -S315400015100100000003020000808A0001028000589A -S315400015200100000011100080901220A092100015BA -S315400015307FFFFF5294100012031000808210601843 -S31540001540A12D6002C0204010DA004010A610000114 -S3154000155080A36009291001431480002BAC100001C0 -S315400015607FFFFF2C0100000080A2200012BFFFFD7C -S3154000157001000000B010200080A600121680001462 -S315400015800100000010800005A210001680A600127F -S315400015901680000F01000000832E2002D004401068 -S315400015A0D20440017FFFFF2EB006200180A2200119 -S315400015B004BFFFF7901020027FFFFF1101000000DB -S315400015C080A6001206BFFFF6832E2002C205207CAD -S315400015D082006001C225207C7FFFFF1301000000CE -S315400015E0C204C01082006001C224C010DA04C010D8 -S315400015F080A3600904BFFFDB111000801080000447 -S315400016009012205C111000809012205C9210001500 -S315400016107FFFFF1A94100012832CA0028200401212 -S31540001620A0004001DA05207C80A4000D0280000461 -S31540001630231001437FFFFEF290102003C204607C1A -S3154000164080A060000480000601000000C204607CA7 -S3154000165080A400011680000580A560007FFFFEE89B -S315400016609010200380A5600022800009B010200061 -S3154000167091D0200010800006B01020007FFFFEE0D1 -S315400016809010200110BFFFA91110008081C7E0080B -S3154000169081E800009DE3BF983120000092162200A9 -S315400016A09410200040003E599010200140003B62BB -S315400016B0901622009016230040003EBE921020084D -S315400016C0B016210040003A4F81E8000001000000BA -S315400016D09DE3BF9821200000921422009410200020 -S315400016E040003E4A9010200140003B539014220097 -S315400016F09210001840003EAF90142300B014210011 -S3154000170040003A4081E8000001000000000000006F -S315400017100000000000000000000000000000000083 -S315400017200000000000000000000000000000000073 -S315400017300000000000000000000000000000000063 -S315400017400000000000000000000000000000000053 -S315400017500000000000000000000000000000000043 -S315400017600000000000000000000000000000000033 -S315400017700000000000000000000000000000000023 -S315400017800000000000000000000000000000000013 -S315400017900000000000000000000000000000000003 -S315400017A000000000000000000000000000000000F3 -S315400017B000000000000000000000000000000000E3 -S315400017C000000000000000000000000000000000D3 -S315400017D000000000000000000000000000000000C3 -S315400017E000000000000000000000000000000000B3 -S315400017F000000000000000000000000000000000A3 -S315400018000000000000000000000000000000000092 -S315400018100000000000000000000000000000000082 -S315400018200000000000000000000000000000000072 -S315400018300000000000000000000000000000000062 -S315400018400000000000000000000000000000000052 -S315400018500000000000000000000000000000000042 -S315400018600000000000000000000000000000000032 -S315400018700000000000000000000000000000000022 -S315400018800000000000000000000000000000000012 -S315400018900000000000000000000000000000000002 -S315400018A000000000000000000000000000000000F2 -S315400018B000000000000000000000000000000000E2 -S315400018C000000000000000000000000000000000D2 -S315400018D000000000000000000000000000000000C2 -S315400018E000000000000000000000000000000000B2 -S315400018F000000000000000000000000000000000A2 -S315400019000000000000000000000000000000000091 -S315400019100000000000000000000000000000000081 -S315400019200000000000000000000000000000000071 -S315400019300000000000000000000000000000000061 -S315400019400000000000000000000000000000000051 -S315400019500000000000000000000000000000000041 -S315400019600000000000000000000000000000000031 -S315400019700000000000000000000000000000000021 -S315400019800000000000000000000000000000000011 -S315400019900000000000000000000000000000000001 -S315400019A000000000000000000000000000000000F1 -S315400019B000000000000000000000000000000000E1 -S315400019C000000000000000000000000000000000D1 -S315400019D000000000000000000000000000000000C1 -S315400019E000000000000000000000000000000000B1 -S315400019F000000000000000000000000000000000A1 -S31540001A000000000000000000000000000000000090 -S31540001A100000000000000000000000000000000080 -S31540001A200000000000000000000000000000000070 -S31540001A300000000000000000000000000000000060 -S31540001A400000000000000000000000000000000050 -S31540001A500000000000000000000000000000000040 -S31540001A600000000000000000000000000000000030 -S31540001A700000000000000000000000000000000020 -S31540001A800000000000000000000000000000000010 -S31540001A900000000000000000000000000000000000 -S31540001AA000000000000000000000000000000000F0 -S31540001AB000000000000000000000000000000000E0 -S31540001AC000000000000000000000000000000000D0 -S31540001AD000000000000000000000000000000000C0 -S31540001AE000000000000000000000000000000000B0 -S31540001AF000000000000000000000000000000000A0 -S31540001B00000000000000000000000000000000008F -S31540001B10000000000000000000000000000000007F -S31540001B20000000000000000000000000000000006F -S31540001B30000000000000000000000000000000005F -S31540001B40000000000000000000000000000000004F -S31540001B50000000000000000000000000000000003F -S31540001B60000000000000000000000000000000002F -S31540001B70000000000000000000000000000000001F -S31540001B80000000000000000000000000000000000F -S31540001B9000000000000000000000000000000000FF -S31540001BA000000000000000000000000000000000EF -S31540001BB000000000000000000000000000000000DF -S31540001BC000000000000000000000000000000000CF -S31540001BD000000000000000000000000000000000BF -S31540001BE000000000000000000000000000000000AF -S31540001BF0000000000000000000000000000000009F -S31540001C00000000000000000000000000000000008E -S31540001C10000000000000000000000000000000007E -S31540001C20000000000000000000000000000000006E -S31540001C30000000000000000000000000000000005E -S31540001C40000000000000000000000000000000004E -S31540001C50000000000000000000000000000000003E -S31540001C60000000000000000000000000000000002E -S31540001C70000000000000000000000000000000001E -S31540001C80000000000000000000000000000000000E -S31540001C9000000000000000000000000000000000FE -S31540001CA000000000000000000000000000000000EE -S31540001CB000000000000000000000000000000000DE -S31540001CC000000000000000000000000000000000CE -S31540001CD000000000000000000000000000000000BE -S31540001CE000000000000000000000000000000000AE -S31540001CF0000000000000000000000000000000009E -S31540001D00000000000000000000000000000000008D -S31540001D10000000000000000000000000000000007D -S31540001D20000000000000000000000000000000006D -S31540001D30000000000000000000000000000000005D -S31540001D40000000000000000000000000000000004D -S31540001D50000000000000000000000000000000003D -S31540001D60000000000000000000000000000000002D -S31540001D70000000000000000000000000000000001D -S31540001D80000000000000000000000000000000000D -S31540001D9000000000000000000000000000000000FD -S31540001DA000000000000000000000000000000000ED -S31540001DB000000000000000000000000000000000DD -S31540001DC000000000000000000000000000000000CD -S31540001DD000000000000000000000000000000000BD -S31540001DE000000000000000000000000000000000AD -S31540001DF0000000000000000000000000000000009D -S31540001E00000000000000000000000000000000008C -S31540001E10000000000000000000000000000000007C -S31540001E20000000000000000000000000000000006C -S31540001E30000000000000000000000000000000005C -S31540001E40000000000000000000000000000000004C -S31540001E50000000000000000000000000000000003C -S31540001E60000000000000000000000000000000002C -S31540001E70000000000000000000000000000000001C -S31540001E80000000000000000000000000000000000C -S31540001E9000000000000000000000000000000000FC -S31540001EA000000000000000000000000000000000EC -S31540001EB000000000000000000000000000000000DC -S31540001EC000000000000000000000000000000000CC -S31540001ED000000000000000000000000000000000BC -S31540001EE000000000000000000000000000000000AC -S31540001EF0000000000000000000000000000000009C -S31540001F00000000000000000000000000000000008B -S31540001F10000000000000000000000000000000007B -S31540001F20000000000000000000000000000000006B -S31540001F30000000000000000000000000000000005B +S315400010009DE3BFC0051001238410A05007100125A1 +S315400010108610E168821000008620C00286A0E008A3 +S3154000102036BFFFFFC038800311100125901221689A +S31540001030C02200004000665D010000004000665D81 +S3154000104001000000400068A301000000111000707C +S31540001050901220BC400061C30100000040006C11AA +S3154000106001000000400002300100000040006730EF +S315400010700100000081C7E00881E800009DE3BFA0B1 +S3154000108021100123C20C205080A060001280002253 +S3154000109023100123C20460542710007025100070ED +S315400010A0A614E024A414A028A4248013A53CA002DE +S315400010B0A404BFFF80A040123A80000E0300000047 +S315400010C0A21460548200600185286002C224400058 +S315400010D0C204C0029FC0400001000000C20440009C +S315400010E080A040120ABFFFF98200600103000000A1 +S315400010F08210600080A060000280000682102001FD +S315400011001110006E6FFFFBBF90122020821020014D +S31540001110C22C205081C7E00881E800009DE3BFA0B3 +S3154000112081C7E00881E800009DE3BFA003000000FE +S315400011308210600080A06000228000081110012506 +S315400011401110006E13100123901220206FFFFBAD8B +S315400011509212605811100125C202216880A06000D9 +S31540001160028000099012216803000000821060008E +S3154000117080A0600002800004010000009FC0400083 +S315400011800100000081C7E00881E800009DE3BFA0A0 +S3154000119081C7E00881E800008292200002800015A5 +S315400011A001000000C400400080A0A0002280001181 +S315400011B092102001C600600880A240032A800008E1 +S315400011C08200600C8800FFFF8401000280A240027A +S315400011D02880000AC20060048200600CC4004000FF +S315400011E080A0A00032BFFFF5C60060089210200123 +S315400011F081C3E00890100009920240019222400308 +S3154000120081C3E008901000099DE3BFA0C2064000DC +S3154000121080A060001280001582007FFFC206600831 +S3154000122080A0600322800014C206600CD2062014FF +S31540001230D006600C4000615394102034C206600C06 +S3154000124082006034C226600CC2066004B0007FFE95 +S3154000125082007FFFB0104018C2266004B136201FBE +S3154000126081C7E00881E80000C226400081C7E00847 +S3154000127091E82000C4062014C6008000C620400025 +S31540001280C600A004C6206004C400A008C4206008AC +S31540001290C206600C8200600CC226600CC206600466 +S315400012A0B0007FFE82007FFFB0104018C226600467 +S315400012B0B136201F81C7E00881E800009DE3BFA04A +S315400012C0C2064000C406A0149B3060188930600CEA +S315400012D088092FFF8608601F833060058208601FDB +S315400012E0DA2EA011C836A012C228A001C628800056 +S315400012F01700003F9612E3F0C2066004C220A02801 +S3154000130082102000C6066008C620A02CC606600CC7 +S31540001310C620A03086064001C600E01080A0E0004E +S315400013209A1020000280000B881020009B30E004B9 +S315400013308808C00B9B2B6014892920109808E00F61 +S315400013409A20000D80A320030280000A8808C0046A +S31540001350860080018200600480A06010DA20E014DC +S3154000136012BFFFEDC820E00481C7E00881E8000015 +S315400013708931200C9A380003881100189B33600489 +S315400013809A0B6FFF9B2B60089A1360FF10BFFFF10B +S315400013909A0360019DE3BEF8F627A050FA27A058AD +S315400013A080A660000280010AA81020102B0003FCD2 +S315400013B0A0102000AA160015A407BFA4A607BFDCEC +S315400013C0A207BF7010800005AC10200180A4001455 +S315400013D01680003437000040932C200594102020BE +S315400013E092024015400060E790100012C207BFA469 +S315400013F080A0600022BFFFF6A0042001C024E010B8 +S31540001400C024C000C024E004C024E008C024E00C8E +S31540001410C0244000C0246004C0246008C024600C7E +S31540001420C0246010C0246014C0246018C024601C0E +S31540001430C0246020C0246024C0246028C024602CBE +S31540001440C0246030E227BFF0EC2FBFEC90100018AC +S31540001450921000127FFFFF9A94100013C20FBFED47 +S3154000146080A0401C32BFFFDAA0042001C217BFEEA5 +S31540001470C407A05880A0400232BFFFD5A004200177 +S31540001480D207A0507FFFFF619010001380A220007A +S3154000149002BFFFCFA004200181C7E00891E82001E8 +S315400014A02D0003FE3B003FFF3300003F9206A04065 +S315400014B0AC160016BA1763FFB21663F0A0102000F0 +S315400014C0A607BFDCA207BF70B616E020AA07BFC4B6 +S315400014D0AE07BFF410800005D227BF6C80A5001070 +S315400014E0048000AE01000000932C200590100012ED +S315400014F092024016400060A394102020C207BFA469 +S3154000150080A0600022BFFFF6A004200182102001C7 +S31540001510C024E010C22FBFECC024C000C024E004A9 +S31540001520C024E008C024E00CC0244000C02460046D +S31540001530C0246008C024600CC0246010C02460141D +S31540001540C0246018C024601CC0246020C0246024CD +S31540001550C0246028C024602CC0246030E227BFF03D +S3154000156090100018921000127FFFFF559410001340 +S31540001570C20FBFED80A7000102800051C217BFEE27 +S31540001580C207BFEC8208401D80A0401B2280005B42 +S31540001590C207BFF0050000408410A00680A04002AC +S315400015A032BFFFCFA0042001C207BFF0C6006004CF +S315400015B088102003030003FC8210C001108000063F +S315400015C08400607880A0400222BFFFC5A0042001AD +S315400015D082006008DA00400080A3600002BFFFFA84 +S315400015E0D8006004920B601F973360189533600CE7 +S315400015F09B3360059A0B601F940AAFFFC025C0005D +S31540001600D22FBFF4DA2FBFF5130003FF9B3320041C +S31540001610921263FF9A0B6FFF9B2B60089A2A400D2C +S315400016209A036001133FFC00DA27BFFCC025400047 +S315400016309A0B0019C02560049B2B6004980B000987 +S31540001640C02560089933200CC025600C980B400CCF +S31540001650EE27BFD898130003C82FBFD4D62FBFD5C7 +S31540001660D437BFD680A7000B12BFFFD7D827BFF805 +S31540001670DA07A05880A3400A12BFFFD480A04002D8 +S31540001680D207A050C227BF60C427BF64C627BF5C2D +S31540001690C827BF687FFFFEDD90100015C207BF60F8 +S315400016A080A22000C407BF64C607BF5C12BFFF7B91 +S315400016B0C807BF6810BFFFC580A04002DA07A05820 +S315400016C080A3400112BFFFB0C207BFECD207A050B3 +S315400016D07FFFFECE9010001380A2200012BFFF6F46 +S315400016E0C207BFEC8208401D80A0401B12BFFFAB63 +S315400016F005000040C207BFF0C408600180A0A000FA +S3154000170022BFFF77A004200180A6A0000280001718 +S31540001710D000602C82102000C406800180A0A0006A +S315400017200280000880A2000222BFFF6DA0042001B3 +S315400017308200600480A0604032BFFFF9C406800189 +S31540001740C607BF6C8210001AC400400080A0A000EB +S3154000175022800014D02040008200600480A0400314 +S3154000176032BFFFFBC4004000D607A050DA07A0589E +S31540001770921000139410001A7FFFFF079810001C68 +S3154000178080A2200012BFFF45A004200180A50010C2 +S3154000179014BFFF57932C200581C7E00891E820002D +S315400017A0D607A05092100013DA07A0589410001ADA +S315400017B07FFFFEF99810001C80A2200012BFFF3761 +S315400017C0A004200110BFFFF380A5001080A6A00052 +S315400017D00280000B8210001A8606A040C40040001A +S315400017E080A0A00022800008F02040008200600413 +S315400017F080A0400332BFFFFBC400400010BFFEEC98 +S31540001800A810204010BFFEEAA81020409DE3BF501C +S315400018109407BFB08210200398100018C022A00879 +S31540001820C022A00CC022A010C022A014C022A01822 +S31540001830C022A01CC022A020C022A024C022A028D2 +S31540001840C022A02CC022A030C022A034C022A03882 +S31540001850C022A03CA0102001F427BFFCC027BFB087 +S31540001860C027BFB4C027BFF09A100019E027BFF4C5 +S31540001870C227BFF8921020009607BFF07FFFFEC632 +S31540001880113FFC00F007BFF4B024001881C7E00800 +S3154000189081E800009DE3BF9090102001A007BFF4AF +S315400018A09210200C7FFFFFDA9410001080A22001D6 +S315400018B00280001A0310012390102001921020117B +S315400018C07FFFFFD39410001080A220010280000DFC +S315400018D00710012494100010901020017FFFFFCCC8 +S315400018E09210200D80A220011280000403100123D3 +S315400018F0C407BFF8C420602C81C7E00881E8000017 +S31540001900C207BFF884006010C220E0A40310012380 +S3154000191010BFFFF1C4206028C407BFF810BFFFE71F +S31540001920C42060349DE3BFA04000002301000000B6 +S3154000193040000174010000004000000381E80000FF +S315400019400100000003100080C200600C84102001DA +S3154000195090102000C420601481C3E00801000000FC +S3154000196003100080C200600C841000089010200014 +S31540001970C420400081C3E00801000000031000803D +S31540001980C200600C8410000890102000C42060083B +S3154000199081C3E0080100000003100080C200600C13 +S315400019A08410000890102000C420600481C3E00821 +S315400019B0010000009DE3BFA04000001401000000AC +S315400019C080A220001280000503100080C200600C37 +S315400019D084102001C420601081C7E00891E82000EF +S315400019E013100080921260109010200081C3E0080E +S315400019F0D0EA402090102000131000809212601010 +S31540001A0081C3E008D0224000914440009132201C1E +S31540001A1081C3E008900A200F81C3E008D0820020ED +S31540001A209010200C81C3E008D08200409DE3BFA007 +S31540001A30C2062010A01000188330601C80A06000F1 +S31540001A4002800009B0103FFF7FFFFFF00100000059 +S31540001A5080A22000128000040300003F821063FF32 +S31540001A60C224201081C7E00881E800009DE3BFA0A2 +S31540001A70E4062010A534A01CA404A00180A4A00163 +S31540001A800280003CB0103FFF7FFFFFE001000000F6 +S31540001A90AA100008912A20047FFFFFB99002200770 +S31540001AA07FFFFFE00100000003020000808A000182 +S31540001AB00280007401000000A72D6002091000801A +S31540001AC0881120148210200184102001C2210013A5 +S31540001AD08210200080A480011480000987286002BB +S31540001AE080A0A000128000258210200084102001D2 +S31540001AF080A4800104BFFFFB87286002C601000363 +S31540001B0080A00003820060018660200010BFFFF2C3 +S31540001B1084088003C205A074852CA003A12CA001D3 +S31540001B20A004000280A4000102800004010000001D +S31540001B307FFFFF9A90102003C205A07480A060002A +S31540001B400480000603100123C200607480A40001D3 +S31540001B501680000580A560007FFFFF90901020034F +S31540001B6080A5600002800003B010200091D02000C4 +S31540001B7081C7E00881E8000023100080A214609C21 +S31540001B802D100123C0244013C204401380A06009D5 +S31540001B901480002709100080A815A0747FFFFF91CC +S31540001BA00100000080A2200012BFFFFD80A4A0001B +S31540001BB00480001301000000A0102000C40440135C +S31540001BC0832C2002C204400180A08001A004200191 +S31540001BD004800003862040028620800180A0E00128 +S31540001BE00480000580A480107FFFFF6C90102002C7 +S31540001BF080A4801014BFFFF201000000C20500005F +S31540001C0082006001C22500007FFFFF7B01000000CB +S31540001C10C204401382006001C2244013C204401330 +S31540001C2080A0600904BFFFDE09100080881120589B +S31540001C308210200184102001C2210013821020004E +S31540001C4080A48001148000098728600280A0A0003B +S31540001C5012BFFFB1821020008410200180A48001B1 +S31540001C6004BFFFFB87286002C601000380A0000373 +S31540001C70820060018660200010BFFFF28408800366 +S31540001C807FFFFF469010200110BFFF8DA72D6002F9 +S31540001C909DE3BFA0E4062010A0100018A534A01CA8 +S31540001CA0A404A00180A4A0010280003FB0103FFF21 +S31540001CB07FFFFF5601000000AA100008912A200469 +S31540001CC07FFFFF2F900220077FFFFF560100000095 +S31540001CD003020000808A00010280007701000000B4 +S31540001CE0A72D60020910008088112014821020015F +S31540001CF08405600185284002C4242010C2210013B7 +S31540001D00841020018210200080A4800114800009E4 +S31540001D108728600280A0A000128000258210200043 +S31540001D208410200180A4800104BFFFFB8728600245 +S31540001D30C601000380A00003820060018660200087 +S31540001D4010BFFFF284088003C205A074852CA0034F +S31540001D50A12CA001A004000280A40001028000047E +S31540001D60010000007FFFFF0D90102003C205A07404 +S31540001D7080A060000480000603100123C200607446 +S31540001D8080A400011680000580A560007FFFFF0348 +S31540001D909010200380A5600002800003B010200050 +S31540001DA091D0200081C7E00881E800002310008020 +S31540001DB0A214609C2D100123C0244013C20440137A +S31540001DC080A060091480002709100080A815A0741F +S31540001DD07FFFFF040100000080A2200012BFFFFD2C +S31540001DE080A4A0000480001301000000A010200081 +S31540001DF0C4044013832C2002C204400180A0800109 +S31540001E00A004200104800003862040028620800131 +S31540001E1080A0E0010480000580A480107FFFFEDFE3 +S31540001E209010200280A4801014BFFFF20100000031 +S31540001E30C205000082006001C22500007FFFFEEE61 +S31540001E4001000000C204401382006001C224401316 +S31540001E50C204401380A0600904BFFFDE0910008061 +S31540001E60881120588210200184102001C2210013BD +S31540001E708210200080A48001148000098728600217 +S31540001E8080A0A00012BFFFB1821020008410200164 +S31540001E9080A4800104BFFFFB87286002C6010003BF +S31540001EA080A00003820060018660200010BFFFF220 +S31540001EB0840880037FFFFEB99010200110BFFF8A7F +S31540001EC0A72D60029DE3BFA02120000094102000B2 +S31540001ED09214220040003C4F9010200140003B07E6 +S31540001EE0901422009210001840003C939014230056 +S31540001EF0B01421004000384381E800000100000092 +S31540001F009DE3BFA0312000009410200092162200CD +S31540001F1040003C409010200140003AF890162200C4 +S31540001F209016230040003C8492102008B0162100F1 +S31540001F304000383481E80000010000000000000045 S31540001F40000000000000000000000000000000004B S31540001F50000000000000000000000000000000003B S31540001F60000000000000000000000000000000002B @@ -2049,39 +2049,39 @@ S31540007FE0000000000000000000000000000000004B S31540007FF0000000000000000000000000000000003B S315400080009DE3BF9081C7E00881E8000003000010AF S31540008010C48000408088800112BFFFFE010000003E -S315400080209DE3BF909DE3BF909DE3BF909DE3BF90CE -S315400080309DE3BF909DE3BF9021044444A0142111C9 -S3154000804023088888A2146222250CCCCCA414A3331E -S3154000805027111111A614E04429155555A815215587 -S315400080602B199999AA1562662D1DDDDDAC15A377EE -S315400080702F222222AE15E08801100000E03FBFE02B -S31540008080E43FBFE8E83FBFF0EC3FBFF88210001E78 -S315400080908220601CC0A041E082206008C0A041E070 -S315400080A082206008C0A041E082206008C0A041E074 -S315400080B0C0A002209DE3BF909DE3BF9081E80000F1 -S315400080C081E800000100000001000000E01FBFE061 -S315400080D0E41FBFE8E81FBFF0EC1FBFF80100000037 -S315400080E00100000081E8000081E8000081E800000E -S315400080F081E8000081E8000081C7E00881E80000CF -S31540008100A7500000AA102400A8102300EC854320A5 -S31540008110EA8503202F100020AE15E150EE05C00081 -S31540008120E805C000EA05E004EC05E008AC15A0004F -S31540008130C0A58300EA250000AE05E00C2B10002008 -S31540008140AA156150EE25400081C4400081CC8000D4 -S3154000815000000000010000000000000000000000D8 -S3154000816000000000000000000000000000000000C9 +S31540008020C46FBFF89DE3BF909DE3BF909DE3BF90B3 +S315400080309DE3BF909DE3BF909DE3BF9021044444E0 +S31540008040A014211123088888A2146222250CCCCCC6 +S31540008050A414A33327111111A614E044291555552C +S31540008060A81521552B199999AA1562662D1DDDDD96 +S31540008070AC15A3772F222222AE15E088011000000E +S31540008080E03FBFE0E43FBFE8E83FBFF0EC3FBFF86A +S315400080908210001E8220601CC0A041E08220600841 +S315400080A0C0A041E082206008C0A041E08220600874 +S315400080B0C0A041E0C0A002209DE3BF909DE3BF90D9 +S315400080C081E8000081E80000010000000100000096 +S315400080D0E01FBFE0E41FBFE8E81FBFF0EC1FBFF89A +S315400080E0EC6FBFF8EC7FBFF8010000000100000014 +S315400080F081E8000081E8000081E8000081E8000096 +S3154000810081E8000081C7E00881E80000A750000030 +S31540008110AA102400A8102300EC854320EA850320FA +S315400081202F100020AE15E160EE05C000E805C00046 +S31540008130EA05E004EC05E008AC15A000C0A5830004 +S31540008140EA250000AE05E00C2B100020AA15616060 +S31540008150EE25400081C4400081CC80000100000033 +S3154000816000000000010000000000000000000000C8 S3154000817000000000000000000000000000000000B9 S3154000818000000000000000000000000000000000A9 -S315400081900000000001000000010000000100000096 -S315400081A00100000001000000010000000100000085 +S315400081900000000000000000000000000000000099 +S315400081A00000000001000000010000000100000086 S315400081B00100000001000000010000000100000075 -S315400081C00100000001000000010000000100000065 +S315400081C081C3E008D0A003200100000001000000A8 S315400081D00100000001000000010000000100000055 -S315400081E00100000001000000010000000100000045 -S315400081F00100000001000000010000000100000035 -S315400082000100000001000000010000000100000024 -S315400082100100000001000000010000000100000014 -S315400082200100000001000000010000000100000004 +S315400081E09DE3BF90FC2780009007A0019410001EDD +S315400081F0D1E7816AD1E7816A9402A0019002200109 +S31540008200D1E7816AD1E7816AD60780009622C01EEF +S31540008210B0A2E00202800004900020017FFFE5DF6B +S315400082200100000081C7E00881E80000010000006D S3154000823001000000010000000100000001000000F4 S3154000824001000000010000000100000001000000E4 S3154000825001000000010000000100000001000000D4 @@ -4095,3250 +4095,4438 @@ S3154000FFC001000000010000000100000001000000E7 S3154000FFD001000000010000000100000001000000D7 S3154000FFE001000000010000000100000001000000C7 S3154000FFF001000000010000000100000001000000B7 -S315400100009DE3BF987FFFC4741100403080A2200059 -S31540010010128000F382102001C226200CC026200443 +S315400100009DE3BFA07FFFC6571100403080A220006C +S31540010010128000AF82102001C226200CC026200487 S31540010020C0260000C026200882102002C2262008D1 S31540010030C0260000C026000082102003C2262008E8 -S315400100409A102083DA262008A2102063C0260000D9 -S31540010050A2847FFF1CBFFFFE01000000A2102063A7 -S31540010060C2060000A2847FFF1CBFFFFE8210200251 -S31540010070C2262008A4062004C28480208088600409 -S3154001008002BFFFFE01000000C0262008C026000076 -S31540010090A6102001C2848020833860148208603F04 -S315400100A080A0600122800093A604E0018210200313 -S315400100B0C2262008C2848020808860010280000711 -S315400100C080886004C2860020C284802080886001C6 -S315400100D012BFFFFD8088600402BFFFFB808860027B -S315400100E002BFFFF901000000C0262008C0262004F7 -S315400100F080A4E0010480000821100080C284802091 -S315400101008208608080A06001028000AE010000008C -S3154001011021100080DA4C20F0DA260000C2848020CB -S315400101208208600480A060010280009A01000000FC -S31540010130C284802080A4E001048000208210200136 -S31540010140A210200180A440131680000D2B100080C0 -S31540010150A81420F0E00560E8901000114000247AD0 -S3154001016092100010C24D0008A2046001C226000090 -S3154001017080A4401306BFFFFA90100011C28480206C -S315400101808208608080A06001028000920100000028 -S31540010190C2848020833860148208603F80A0401367 -S315400101A002800004010000007FFFC4159010200664 -S315400101B0C284802082102001C226200CDA8480204D -S315400101C0808B60011280006801000000821020834C -S315400101D0C226200880A4E0010280005201000000EE -S315400101E0C28480208088640002BFFFFE01000000B7 -S315400101F0C284802080886001028000530100000093 -S3154001020080A4E00124800012A2102000C284802034 -S315400102108330601A80A04013028000040100000070 -S315400102207FFFC3F790102009C28480208088610037 -S315400102300280005501000000C2848020808864004D -S315400102400280004D01000000A210200080A440134E -S315400102501680001203100080A81060F02B10008059 -S31540010260E08600209010001140002437D20560E856 -S31540010270C24D0008A204600180A040100280000423 -S315400102809010200C7FFFC3DE0100000080A44013C4 -S3154001029006BFFFF40100000080A4E0010480000FC6 -S315400102A001000000C28480208088610012800042E3 -S315400102B001000000C28480208330601A80A0600063 -S315400102C01280003A01000000C284802080886400C8 -S315400102D01280003301000000C284802080886001C2 -S315400102E01280001D01000000C02620083080003C1D -S315400102F0C0260000C2848020833860148208603F93 -S3154001030080A0401322BFFFFBA604E00180A4E001C8 -S3154001031034BFFF67A604FFFF10BFFF6682102003AC -S31540010320C28480208088600112BFFFB201000000B4 -S31540010330C28480208088600102BFFFFA010000006C -S3154001034030BFFFAC7FFFC3AE9010200810BFFFAE99 -S3154001035080A4E0017FFFC3AA9010200CC02620088C -S315400103603080001F7FFFC3A69010200710BFFF9962 -S31540010370821020837FFFC3A29010200B10BFFFB4D1 -S31540010380A21020007FFFC39E9010200A30BFFFAB12 -S315400103907FFFC39B9010200130BFFF667FFFC3984C -S315400103A09010200B30BFFFCD7FFFC3959010200EDC -S315400103B030BFFFC67FFFC3929010200D30BFFFBEF6 -S315400103C07FFFC38F9010200410BFFF532110008080 -S315400103D07FFFC38B9010200530BFFF6E81C7E008B9 -S315400103E091E8200017100143DA02E08090022010C4 -S315400103F09B2B60029812E080D023000DC202E08060 -S3154001040082006001C222E08081C3E0080100000051 -S31540010410C0220000C022204082103FFFC222200C91 -S315400104209A10200103100143DA20608081C3E0085D -S31540010430010000009DE3BF7803100144F02060CC29 -S315400104407FFFC365110040347FFFFFF29010001813 -S31540010450A010200123100040921000104000298F67 -S31540010460901463E4A004200180A4200F04BFFFFC84 -S3154001047092100010C20620208330601CAE0060013D -S31540010480AC10200080A58017168000ED0300003FC8 -S31540010490B81063FE2B1001430300002AB61062AA6E -S315400104A0BA102001B410001CB2156080832DA00C37 -S315400104B080A5E00114800119A600401880A5A0007E -S315400104C01280010A01000000F824E008C204E00895 -S315400104D080A0401C02800004010000007FFFC34849 -S315400104E090102001F824E040C204E04080A0401C66 -S315400104F002800004010000007FFFC34190102002EA -S31540010500C204E00880A0600012BFFFFE01000000A7 -S31540010510C205608080A0601002800005251001435D -S315400105207FFFC3379010200325100143A0102001FF -S31540010530A414A080A2102020832C20029A244010CB -S31540010540D8048001A004200180A3000D028000048C -S31540010550901020047FFFC32A0100000080A4200FD1 -S3154001056004BFFFF7832C2002FA256080F624C000E1 -S31540010570F424E040C204C00080A0401B0280000475 -S31540010580A010001A7FFFC31E90102005C204E04050 -S3154001059080A0401002800004010000007FFFC318C4 -S315400105A090102005F424E008C204E00880A0600011 -S315400105B012BFFFFE01000000C205608080A06010EE -S315400105C002800005251001437FFFC30D90102006D0 -S315400105D025100143A0102001A414A080A210201FC1 -S315400105E09B2C2002C204800D80A04011A004200152 -S315400105F0A2047FFE02800004901020077FFFC30003 -S315400106000100000080A4200704BFFFF79B2C2002B5 -S31540010610A4066028A210201CA0102005C204800058 -S3154001062080A04011A404A004A2047FFE028000041D -S31540010630901020087FFFC2F201000000A0843FFF16 -S315400106401CBFFFF701000000FA27BFE8C207BFE859 -S3154001065082006001C227BFECDA07BFEC9A03600152 -S31540010660DA27BFF0C207BFF082006001C227BFF49C -S315400106709A102006DA27BFD8C024C000C024E04023 -S31540010680FA256080A0102002E024E040E024E00842 -S31540010690834440008088610002800005010000001B -S315400106A0805000018050000180500001C207BFD830 -S315400106B0C227BFDCDA07BFD880A3600602800004E8 -S315400106C0010000007FFFC2CE9010200AE024E0081E -S315400106D001000000C207BFD8C227BFDCDA07BFD876 -S315400106E080A3600602800004010000007FFFC2C4AF -S315400106F09010200AE024E00801000000C027BFDC7A -S31540010700C207BFDC80A06000128000960100000095 -S31540010710C204E00880A0600012BFFFFE0100000095 -S31540010720C205608080A06004028000050300003F8E -S315400107307FFFC2B39010200D0300003FC024E0406C -S31540010740821063FEC224E008031001439A1020017F -S31540010750DA206080400003E801000000400003E821 -S3154001076090122F0082103FFFC224E040C204E040B5 -S3154001077080A0600002BFFFFE01000000C20560804C -S3154001078080A0600202800004A01560807FFFC29CA9 -S315400107909010200EC204200480A0601F0280000435 -S315400107A0010000007FFFC2969010200F400003D247 -S315400107B0A8100010400003D290023F00A010200272 -S315400107C0A4102020400003CC01000000400003CCCF -S315400107D090023F00C2056080A204200180A0401122 -S315400107E002800004901020107FFFC28501000000A6 -S315400107F0832C20029A248010D8050001A0100011F4 -S3154001080080A3000D02800004901020117FFFC27C5E -S315400108100100000080A4200F04BFFFEB010000008F -S31540010820C024E040AC05A00182103FFFC224E00C89 -S3154001083080A5801706BFFF1F832DA00C80A5E00170 -S315400108400480004B01000000C0262024C20620245B -S3154001085080A060001280003F0100000021040000DA -S31540010860E0262024C206202480A0401002800005F4 -S31540010870821020017FFFC262901020148210200155 -S31540010880C2262020C0262024C206202480A0401053 -S3154001089002800004010000007FFFC259901020151C -S315400108A0C0262020C0262024C206202480A0600025 -S315400108B0128000240100000082102002C22620205E -S315400108C0DA062020808B60020280001B01000000B6 -S315400108D0C0262020C2062020808860020280002493 -S315400108E001000000308000117FFFFECA9010001306 -S315400108F09B2DA01CDA24E024C204E0248330601C32 -S3154001090080A0401602BFFEF1010000007FFFC23CFD -S315400109109010201230BFFEED7FFFC23490100016BA -S3154001092010BFFEE880A5A0007FFFC23590102018B9 -S315400109303080000F7FFFC2329010201730BFFFE595 -S315400109407FFFC22F9010201610BFFFDD82102002BC -S315400109507FFFC22B9010201310BFFFC2210400005D -S315400109607FFFC2279010200B30BFFF6A81C7E00886 -S3154001097091E8200003100143DA0060C8C0236008F3 -S3154001098081C3E008901020009DE3BF902F100144E1 -S31540010990E205E0CCA004610027100143C204200413 -S315400109A0F024E0C87FFFC21190102010030180009F -S315400109B0DA04200482106020808B40011280010DF0 -S315400109C001000000DA046100DA27BFF0C2046100C9 -S315400109D080A3400102800005821020017FFFC208EA -S315400109E09010200282102001C2242004DA04610002 -S315400109F0DA27BFF0C204610080A3400102800120D2 -S31540010A0001000000C0242004DA046100DA27BFF0A7 -S31540010A10C204610080A340010280000580A7200036 -S31540010A207FFFC1F79010200480A72000128000B7F5 -S31540010A3080A72001B010200180A6001A1680001759 -S31540010A40A8102001108000052510004280A6001A3A -S31540010A5016800013DA04E0C8A206C0189014A174E7 -S31540010A609210001180A4601F14BFFFF9B006200147 -S31540010A704000280A01000000D805E0CCC20320400E -S31540010A809B2D00118210400DC223204080A6001AE2 -S31540010A9006BFFFF3A206C018DA04E0C89606A00313 -S31540010AA0C0236004833AE01FC023601098103FFFC3 -S31540010AB08330601EAA02C001D8236014D823600C7B -S31540010AC0A2102000AD3D600280A720000280008A6E -S31540010AD0A810200180A4401C168000ECC204E0C886 -S31540010AE080A7200104800015B010200080A5A00039 -S31540010AF00480001380A0001C9B2C6010832C60187E -S31540010B008210400D992C60088210400C82104011D1 -S31540010B10993D6002DA04E0C8C2236020B006200194 -S31540010B2080A72001048000059A03600480A3001871 -S31540010B3014BFFFFA0100000080A0001CB0603FFF17 -S31540010B4080A6001A16800016C204E0C8250180005E -S31540010B5080A72000028000058206C01880A72001D8 -S31540010B60028000848206C011C2242004D804E0C851 -S31540010B70832D00189B3E4018C2232008808B6001BC -S31540010B80128000859A10000CB006200180A6001A3A -S31540010B9006BFFFF180A72000C204E0C8C02060085C -S31540010BA0808E600112800009B0102000B00620013D -S31540010BB080A6201F14800005833E4018808860016E -S31540010BC022BFFFFCB006200180A72000028000065C -S31540010BD08206C01880A72001028000048216E02008 -S31540010BE08206C01182106020C2242004DA04E0C8C3 -S31540010BF0832D0018C2236008C203600880A06000EC -S31540010C0012BFFFFE01000000C2042004808860205C -S31540010C100280009801000000DA042004030100006C -S31540010C20808B40010280009001000000DA0420041C -S31540010C3003008000808B4001028000880100000093 -S31540010C40C2042008C227BFF0DA04200CDA27BFF419 -S31540010C50C204E0C8992D0018D82060089A100001F6 -S31540010C60C203600880A0600012BFFFFE01000000C1 -S31540010C70C2042004808860200280007501000000C3 -S31540010C80DA04200403010000808B40010280006DDC -S31540010C9001000000DA04200403008000808B40013B -S31540010CA00280006501000000DA042008C207BFF097 -S31540010CB080A0400D02800004010000007FFFC1506A -S31540010CC09010200EDA04200CC207BFF480A0400D1C -S31540010CD002800005030180007FFFC1499010200F6B -S31540010CE003018000C224200480A7200012BFFF7A9E -S31540010CF0A204600180A4600004BFFF7B80A720019D -S31540010D0010800062C204E0C80280003D111000421A -S31540010D10B010200080A6001C16BFFF60A81020015D -S31540010D20108000052510004280A6001C16BFFF5CFE -S31540010D30DA04E0C8A206C0189014A17492100011FA -S31540010D4080A4601F14BFFFF9B0062001400027535D -S31540010D5001000000D805E0CCC20320409B2D0011C4 -S31540010D608210400DC223204010BFFFF180A6001C17 -S31540010D70F6242004D804E0C8832D00189B3E401871 -S31540010D80C2232008808B600122BFFF81B00620016B -S31540010D909A10000CC203600880A0600012BFFFFEDB -S31540010DA001000000DA04200403010000808B4001A9 -S31540010DB00280001E01000000DA04200403008000C6 -S31540010DC0808B40010280001601000000E4242004CB -S31540010DD0C20420048088401222BFFF6DB006200164 -S31540010DE07FFFC1079010200710BFFF69B0062001A1 -S31540010DF07FFFC1039010200130BFFEF39012217492 -S31540010E00400027269210001BDA05E0CC832F001BF9 -S31540010E10C223604010BFFF22DA04E0C87FFFC0F85A -S31540010E209010200630BFFFEA7FFFC0F590102005E5 -S31540010E3030BFFFE27FFFC0F29010200D30BFFF9B15 -S31540010E407FFFC0EF9010200C30BFFF937FFFC0ECB7 -S31540010E509010200B30BFFF8B7FFFC0E99010200A16 -S31540010E6030BFFF787FFFC0E69010200930BFFF708A -S31540010E707FFFC0E39010200830BFFF687FFFC0E0CE -S31540010E809010200330BFFEE0C020600CDA05E0CCB4 -S31540010E90C023604082103FFFC223600C81C7E00837 -S31540010EA091E820009DE3BF983B100144E60760CCE2 -S31540010EB07FFFC0CE90102011C024E01CC204E01C6C -S31540010EC080A060000280004801000000C204E01CCE -S31540010ED08330601B80A0401A0A80003F0100000059 -S31540010EE0A410200080A4801A1A8000422D100143CC -S31540010EF0AA102001AE15A080A32CA002E006401145 -S31540010F007FFFFD4490100013A804A0019B2D4012C1 -S31540010F10832D20108210400DC224E01C9A103FFF01 -S31540010F20DA24E040D80600119A10201FDA23200463 -S31540010F30A0043FFFDA230000A12C20048204000C08 -S31540010F409A102005DA206010C0206014EA2060184B -S31540010F509A100001C203601080A0600012BFFFFE1C -S31540010F6001000000A004000CC204201080A0600013 -S31540010F7002BFFFFE01000000C0242018C205A08068 -S31540010F8080A06002028000069A04A011900480129B -S31540010F907FFFC09B900220039A04A011C205E00482 -S31540010FA080A0400D22800006A410001490048012F7 -S31540010FB07FFFC09390022004A4100014C024E01CBB -S31540010FC080A5001A0ABFFFCEA32CA0021080000AFA -S31540010FD0DA0760CC7FFFC08A9010200210BFFFC2A3 -S31540010FE0A41020007FFFC0869010200130BFFFB8BB -S31540010FF0DA0760CCC023604082103FFFC223600CF9 -S3154001100081C7E00891E820009DE3BF987FFFC08B30 -S315400110100100000080A220000280002680A6200058 -S3154001102012800029010000007FFFC08401000000FA -S31540011030912A20047FFFC06D900220034000186D65 -S315400110400100000080A220001280002B0100000058 -S315400110504000182B01000000400017E40100000089 -S31540011060400002270100000080A6A0001280002D4A -S31540011070031001447FFFC071B41060D0912A200251 -S31540011080C206800880A060001280003080A6200041 -S3154001109012800039010000004000048E010000006A -S315400110A040001E0201000000400015C181E8000019 -S315400110B07FFFC0491100400C80A6200002BFFFDB24 -S315400110C0010000007FFFC0F5901000197FFFC05B53 -S315400110D001000000912A20047FFFC04490022003B2 -S315400110E0400018440100000080A2200002BFFFD941 -S315400110F0010000007FFFC04290102001400018000F -S3154001110001000000400017B901000000400001FC49 -S315400111100100000080A6A00002BFFFD703100144D2 -S3154001112040001DED01000000031001447FFFC04354 -S31540011130B41060D0912A2002C206800880A06000C7 -S3154001114002BFFFD480A620007FFFC03C0100000003 -S315400111507FFFC03AA0100008912A2002C2068008EB -S315400111609FC040009010001080A6200002BFFFCB18 -S31540011170010000007FFFC0D99010001940000455BE -S315400111800100000040001DC9010000004000158813 -S3154001119081E800000100000003100143DA0060CC41 -S315400111A09A036001DA2060CC81C3E00801000000A7 -S315400111B09DE3BF987FFFC00811004044D806200830 -S315400111C082103FFFC2262004DA060000C206000054 -S315400111D080A340010280006FA60B20078210201FCA -S315400111E0C2262004C226000080A4E000028000330B -S315400111F082100018A2100013C0206018A2847FFF3D -S3154001120012BFFFFE82006010A210200080A440138E -S315400112101680002B80A4E001A810200FA010001812 -S315400112207FFFBFF290100011C0242010E824201443 -S3154001123082102006C2242018DA04201080A3600FF1 -S3154001124002800004010000007FFFBFED90102003E3 -S31540011250E82420189A10200EC204201080A0400DC8 -S3154001126012BFFFFE010000009A837FFF1CBFFFFBF8 -S31540011270A4100010C204201080A0600F12BFFFFE10 -S3154001128001000000C20420188088601002800035E9 -S3154001129082102010C224A018DA042018808B601016 -S315400112A01280003801000000A204600180A44013AE -S315400112B006BFFFDCA004201080A4E00114800010CA -S315400112C080A4E0000280000782100018A2100013DB -S315400112D0C0206018A2847FFF12BFFFFE820060100B -S315400112E021100144C20420CC80A060000280002D60 -S315400112F0111000441080000D921000197FFFBFBBF2 -S31540011300901020088210200FC22620189A10202FF4 -S31540011310DA262028C206202080A0600D12BFFFFEDB -S3154001132080A4E00030BFFFE8400025DC9012219800 -S315400113307FFFFC38D00420CC82102001832840193D -S31540011340DA0420CCC22360409810200FD8262014FE -S315400113508210200DC2262018A7800000308000117F -S315400113607FFFBFA79010200482102010C224A0182E -S31540011370DA042018808B601022BFFFCDA2046001E1 -S315400113807FFFBF9F9010200510BFFFC9A2046001D7 -S315400113907FFFBF9B9010200110BFFF928210201F3C -S315400113A081C7E00881E8000000000000000000005D -S315400113B000000000000000000000000000000000E6 -S315400113C001000000010000000100000001000000D2 -S315400113D0010000000100000081C3E0080100000097 -S315400113E001000000010000000100000001000000B2 -S315400113F0010000000100000081C3E0080100000077 -S315400114000100000001000000010000000100000091 -S31540011410010000000100000081C3E0080100000056 -S315400114200100000001000000010000000100000071 -S31540011430010000000100000081C3E0080100000036 -S31540011440D482018090A2000916BFFFFE9612800B3E -S3154001145081C3E0089010000BD48201C090A200091C -S3154001146016BFFFFE9612800B81C3E0089010000B59 -S3154001147090A22004C0A201A090A22004C0A201A073 -S3154001148090A22004C0A201A090A22004C0A201A063 -S31540011490C0A2018090A2200414BFFFF70100000002 -S315400114A081C3E0080100000090A22004C0A201E02F -S315400114B090A22004C0A201E090A22004C0A201E0B3 -S315400114C090A22004C0A201E0C0A201C090A22004C3 -S315400114D014BFFFF70100000081C3E00801000000CE -S315400114E0981000089610000A98A3200814BFFFFF21 -S315400114F0D43B00099810000898A3200814BFFFFFA9 -S31540011500C01B00099810000898A32004D6030009BF -S3154001151080A2C00A1280000698A3200434BFFFFDB2 -S31540011520D603000981C3E0089010200090102001E5 -S31540011530981000089610000A98A3200814BFFFFFD0 -S31540011540D43B00099810000898A32004D60300094B -S3154001155080A2C00A1280000698A3200434BFFFFD72 -S31540011560D603000981C3E0089010200090102001A5 -S315400115709810000898A32004D2A301A0DA8301A001 -S3154001158080A340091280000698A3200414BFFFFCE3 -S31540011590D2A301A081C3E008901020009010200141 -S315400115A09A1000089AA3400AD6A34180D883418065 -S315400115B0981B000B988B0009128000069AA3400ADB -S315400115C014BFFFFBD6A3418081C3E00890102000E1 -S315400115D0901020019A1000089AA3400BD8A241CD41 -S315400115E0C48241CD8418800C8488800A128000060A -S315400115F09AA3400B14BFFFFBD8A241CD81C3E0089B -S315400116009010200090102001010000000100000010 -S31540011610010000001310008092126138D40240008C -S3154001162080A2A0011280000780A0A002D40240003F -S31540011630D4024000952AA002108000050100000056 -S315400116403280000381E80000D402400081E00000BE -S3154001165093480000818A602023100045A2146278D5 -S31540011660A40460040100000081C4400081CC8000D4 -S3154001167091D0200191D020012680000590002001C3 -S3154001168090222001912A2001912A200281C3E0085B -S315400116900100000081C3E008D082004081C3E00818 -S315400116A0D2A2004081C3E008D082018081C3E00814 -S315400116B0D2A2018081C3E008D08201A081C3E008A3 -S315400116C0D2A201A081C3E008D08201C081C3E00853 -S315400116D0D2A201C081C3E008D08201E081C3E00803 -S315400116E0D2A201E081C3E008D2A2000081C3E00892 -S315400116F0D082000081C3E00891480000818A000041 -S3154001170001000000010000000100000081C3E00863 -S315400117100100000081C3E008C0A000A081C3E00829 -S31540011720C0A000C081C3E008D01A0000010000003B -S31540011730010000000100000001000000010000005E -S315400117409DE3BF701310006DCD1A6160CD3FBFE0C0 -S31540011750111000801B100080C91B61E0C51A21D8F9 -S31540011760C11FBFE095A088C4D53FBFF0D91FBFF0C8 -S3154001177003100080D11861E881AB0A4801000000DE -S315400117800380002BC13FBFD8F91FBFD8B5A0055C68 -S31540011790F53FBFF0ED1FBFF0F11FBFF0A5A589587A -S315400117A0E91FBFE0A1A488D41510006DA1A00130A6 -S315400117B0DD1AA16881AC0ACE010000000D80002D22 -S315400117C0F53FBFD0C51FBFD083A018C291A0492104 -S315400117D099A01928D51FBFE091A308CA1710006D1B -S315400117E091A00128FD1AE17081AA0ADE01000000DC -S315400117F00D80002F01000000400001AE01000000F5 -S315400118004000020C0100000080A22000128000313D -S3154001181001000000400002610100000080A220009A -S315400118200280003501000000308000317FFFBE7428 -S3154001183090102001F91FBFD8B5A0055CF53FBFF058 -S31540011840ED1FBFF0F11FBFF0A5A58958E91FBFE005 -S31540011850A1A488D41510006DA1A00130DD1AA1689C -S3154001186081AC0ACE010000001BBFFFD7F53FBFD0B8 -S315400118707FFFBE6390102002C51FBFD083A018C250 -S3154001188091A0492199A01928D51FBFE091A308CA63 -S315400118901710006D91A00128FD1AE17081AA0ADE98 -S315400118A0010000001BBFFFD5010000007FFFBE54B1 -S315400118B0901020034000017F01000000400001DD3F -S315400118C00100000080A2200002BFFFD301000000FA -S315400118D07FFFBE4B010000004000023001000000C6 -S315400118E080A2200002800004010000007FFFBE4468 -S315400118F09010200581C7E00881E800009DE3BF986C -S315400119007FFFFF7D210000047FFFFF7D90120010C5 -S315400119107FFFFF79B0102000808A00100280000B03 -S315400119209010200040000267010000007FFFBE4387 -S3154001193001000000912A20047FFFBE2C900220085E -S315400119407FFFFF800100000081C7E00881E80000B9 -S31540011950191000809813217811100200921020006E -S31540011960150FF76C9412A3D7D03B0000D42320085F -S31540011970C11B0000C503200887A089220100000081 -S3154001198089A005408DA0892281A8CA2601000000B0 -S3154001199033800003901020009010200181C3E0089D -S315400119A001000000C11A0000C51A400089A0084282 -S315400119B081C3E008C93A8000C11A0000C51A400037 -S315400119C089A0094281C3E008C93A80001910008004 -S315400119D098132178D0230000D2232008C1030000A8 -S315400119E0C303200885A00D2181C3E008C53A8000C4 -S315400119F0C11A0000C51A400089A009C2C93A80002F -S31540011A0081C3E00801000000C11A000085A005401D -S31540011A10C53A400081C3E008010000000100000012 -S31540011A20010000000100000001000000010000006B -S31540011A30010000000100000001000000010000005B -S31540011A40010000000100000001000000010000004B -S31540011A50010000000100000001000000010000003B -S31540011A60010000000100000001000000010000002B -S31540011A70010000000100000001000000010000001B -S31540011A80010000000100000001000000010000000B -S31540011A9001000000010000000100000081A00020BB -S31540011AA081C3E00801000000C11A000081C3E008BB -S31540011AB001000000C51A000089A009C2C93A4000C8 -S31540011AC081C3E00801000000131000809212617882 -S31540011AD0D0224000C102400085A01900C53A40000D -S31540011AE081C3E008D01A4000131000809212617839 -S31540011AF0D0224000C102400085A01880C522400086 -S31540011B0081C3E008D0024000151000809412A178EC -S31540011B10D03A8000C11A800085A01A40C5228000B3 -S31540011B2081C3E008D0028000151000809412A1788C -S31540011B30D0228000C102800085A01A20C5228000E3 -S31540011B4081C3E008D0028000151000809412A1786C -S31540011B50D0228000C102800081A01920C13A8000B4 -S31540011B6081C3E008D01A8000151000809412A17834 -S31540011B70D03A8000C11A800081A018C0C1228000DD -S31540011B8081C3E008D0028000151000809412A1782C -S31540011B90D0228000CB0280008DA00025CD2280007E -S31540011BA081C3E008D0028000151000809412A1780C -S31540011BB0D0228000CB0280008DA000A5CD228000DE -S31540011BC081C3E008D0028000151000809412A178EC -S31540011BD0D0228000CB0280008DA00125CD2280003D -S31540011BE081C3E008D0028000191000809813217843 -S31540011BF0D03B0000D43B2008C11B0000C51B200878 -S31540011C0081A80A420100000033800009901020009B -S31540011C1029800007901020012D8000059010200298 -S31540011C202F8000039010200391D0200081C3E0084B -S31540011C30010000001910008098132178D03B000064 -S31540011C40D43B2008C11B0000C51B200881A80AC23D -S31540011C500100000033BFFFF69010200029BFFFF4BA -S31540011C60901020012DBFFFF2901020022FBFFFF0F0 -S31540011C709010200391D020001910008098132178EC +S3154001004082102083C226200882102000C02600008C +S315400100508200600180A0606412BFFFFD01000000C4 +S3154001006082102000C40600008200600180A0606406 +S3154001007012BFFFFD0100000082102002C2262008A7 +S31540010080A0062004C28400208088600402BFFFFECF +S3154001009001000000C0262008C0260000C2840020BE +S315400100A084102001833860148208603F80A060017B +S315400100B002800004A21020011080000E821020034D +S315400100C0C0260000A200A001C2840020833860142B +S315400100D08208603F80A0401122BFFFFA84100001D0 +S315400100E080A4600134800002A21000028210200325 +S315400100F0C2262008C28400208208600780A06006CC +S315400101000280000801000000C2860020C28400204F +S315400101108208600780A0600612BFFFFC0100000054 +S31540010120C0262008C026200480A460010480000463 +S3154001013082102034C284002082102034C22600005E +S31540010140C2840020C284002080A46001048000197A +S315400101508210200129100070A4102001A81520301A +S3154001016090100012400024D592102041C24D000843 +S31540010170C2260000A404A00180A4801112BFFFFA88 +S3154001018090100012C2840020C2840020833860147B +S315400101908208603F80A040110280000401000000F7 +S315400101A07FFFC5FE90102006C284002082102001E8 +S315400101B0C226200CC2840020808860011280005330 +S315400101C082102083C226200880A46001028000425A +S315400101D001000000C28400208088640002BFFFFE47 +S315400101E001000000C2840020808860010280004F27 +S315400101F080A460010480005280A46000C284002073 +S315400102008330601A80A04011028000040100000082 +S315400102107FFFC5E290102009C284002080886100DA +S315400102200280004A01000000C284002080886400E8 +S315400102300280004C0100000029100070A41020002B +S31540010240A8152030E6860020921020414000249BCC +S3154001025090100012C24D000880A040132280000574 +S31540010260A404A0017FFFC5CD9010200CA404A001D9 +S3154001027080A4401214BFFFF480A460010480000FE3 +S3154001028001000000C2840020808861001280003F86 +S3154001029001000000C28400208330601A80A0600003 +S315400102A01280003701000000C2840020808864006B +S315400102B01280003001000000E0840020808C200183 +S315400102C01280000E01000000C026200881C7E00808 +S315400102D091E82000C28400208088600112BFFFC2DD +S315400102E001000000C28400208088600102BFFFFA3D +S315400102F00100000030BFFFBC7FFFC5A89010200C55 +S31540010300C026200830BFFFF27FFFC5A4901020070A +S3154001031082102083C226200880A4600112BFFFAE4E +S315400103200100000030BFFFEC7FFFC59C9010200804 +S3154001033080A4600114BFFFB280A4600034BFFFC037 +S315400103402910007030BFFFDD7FFFC5949010200A51 +S31540010350C28400208088640032BFFFB92910007032 +S315400103607FFFC58E9010200B10BFFFB5291000707E +S315400103707FFFC58A9010200B30BFFFD07FFFC58716 +S315400103809010200E30BFFFC97FFFC5849010200D0D +S3154001039030BFFFC103100123C40060788528A00245 +S315400103A08610607890022010D020C002C400607888 +S315400103B08400A001C420607881C3E00801000000E8 +S315400103C0C0220000C022204082103FFFC222200CE2 +S315400103D00310012384102001C420607881C3E00802 +S315400103E00100000003100123C20060C090102000EC +S315400103F0C020600881C3E008010000009DE3BFA062 +S3154001040023100124E00461107FFFC55D9010201187 +S31540010410C024201CC204201C80A060000280004C25 +S3154001042001000000C204201C8330601B80A0401ADA +S315400104300A80004E80A6A0000280003FC2046110DF +S315400104402B100123A6102004AA156078BA102000AB +S31540010450A4102000AE103FFFA8102001AC10201FB1 +S31540010460B8102005BB2F6002C606401DC0240000FF +S31540010470C0242040EE24200CE8254000832D0012A4 +S31540010480A404A001852CA01082108001C224201C46 +S31540010490EE2420408928E0049A00FFFFC206001D91 +S315400104A0980040049B2B60048400400DEC206004BE +S315400104B0EC204000F8204004C0232004E820A01886 +S315400104C0C400400480A0A00012BFFFFE010000004E +S315400104D08728E004C400400380A0A00002BFFFFEBD +S315400104E0010000008200400DC0206018C205400096 +S315400104F080A0600202800004010000007FFFC52742 +S315400105009004FFFFC40560048204A01080A080010E +S3154001051002800004BA1000127FFFC520901000131C +S31540010520C024201C80A6801218BFFFCFA604E0027B +S31540010530C204611084103FFFB0102000C02060400B +S31540010540C420600C81C7E00881E800007FFFC51325 +S3154001055090102001C204201C8330601B80A0401AE9 +S315400105601ABFFFB680A6A0007FFFC50C90102002DF +S3154001057010BFFFB52B1001239DE3BF80231001233C +S3154001058021100124E6042110A404E100C204A004C0 +S31540010590F02460C07FFFC4FA90102010C204A0046A +S315400105A0050180008410A020808840021280014508 +S315400105B001000000C404E100C204E10080A0800102 +S315400105C002800005821020017FFFC4F490102002B2 +S315400105D082102001C224A004C404E100C204E10047 +S315400105E080A080010280014201000000C024A004D5 +S315400105F0C404E100C204E10080A08001028000053C +S3154001060080A720007FFFC4E59010200480A720002A +S315400106101280011180A7200180A6A0010480001A42 +S315400106202F100040A606E001AE15E3E4A810200114 +S31540010630AC14211010800005AA10200180A6801458 +S3154001064004800011A604E00180A4E01F34BFFFFC32 +S31540010650A8052001921000134000290090100017B0 +S31540010660C2058000C4006040872D40138410C0023B +S31540010670C4206040A805200180A6801414BFFFF362 +S31540010680A604E00180A0001C84603FFFC427BFF0A0 +S31540010690C60460C082103FFFF627BFF8C027BFFCE3 +S315400106A0C020E004C020E010C220E014C220E00CCB +S315400106B08206A0038538601F8530A01E8200800116 +S315400106C0AF386002C207BFF08200401B8416E020AB +S315400106D0C227BFECC427BFE829100123AC10200173 +S315400106E0A81520C0310100003B0080002B0180008D +S315400106F080A7200002800003821020018210001C86 +S31540010700C407BFFC80A08001168000CB80A72001D2 +S315400107100480001680A5E00004800014C207BFFCD7 +S31540010720C407BFFC8928601883286010881100011E +S315400107308328A008881100028400E0248811000162 +S3154001074082102001C820E0201080000680A04017BA +S31540010750C8208000820060018400A00480A0401768 +S3154001076012BFFFFC01000000C207BFF0E827BFF43B +S3154001077080A68001A2100001048000338400E008B5 +S315400107801080000EE607BFECE624A004832D8011FD +S31540010790C220E008833E4011808860011280001328 +S315400107A08400E008A204600180A68011048000262E +S315400107B0A604E001C605000080A7200002BFFFF3A2 +S315400107C080A7200102800079C407BFF8C424A00491 +S315400107D0832D8011C220E008833E4011808860014C +S315400107E002BFFFF18400E008C200800080A06000E3 +S315400107F012BFFFFE01000000C204A0048088401819 +S315400108000280006701000000C204A0048088401DE8 +S315400108100280006001000000EA24A004C204A00492 +S31540010820808840151280005601000000C405000072 +S315400108308400A008A204600180A6801114BFFFDED7 +S31540010840A604E001C020800010800005A21020000F +S3154001085080A460200280000780A72000833E4011CB +S315400108608088600122BFFFFBA204600180A72000AF +S315400108701280005180A720018204401B8210602013 +S31540010880C224A004A32D8011E2208000C200800072 +S3154001089080A0600012BFFFFE01000000C204A00458 +S315400108A0808860200280005D01000000C204A0042F +S315400108B0808840180280005601000000C204A0044E +S315400108C08088401D0280004E01000000C207BFF42F +S315400108D0C4004000C204A008E604A00C8600A0089B +S315400108E0E220A008C400C00080A0A00012BFFFFE05 +S315400108F001000000C404A0048088A0202280003C9E +S31540010900C227BFE4C404A004808880182280003432 +S31540010910C227BFE4C404A0048088801D2280002C25 +S31540010920C227BFE4C404A00880A04002028000049C +S31540010930010000007FFFC4199010200EC204A00CD4 +S3154001094080A4C00102800005C407BFF47FFFC41321 +S315400109509010200FC407BFF4C207BFFCC600800039 +S31540010960C407BFF8820060018400A001EA24A00404 +S31540010970C227BFFC10BFFF5FC427BFF87FFFC40774 +S3154001098090102007C405000010BFFFAB8400A008EB +S315400109907FFFC4029010200630BFFFA07FFFC3FF38 +S315400109A09010200530BFFF99F624A00410BFFF79AF +S315400109B0832D80110280001CC607BFF88210E020FB +S315400109C0C224A00410BFFFB1A32D80117FFFC3F342 +S315400109D09010200D10BFFFD4C207BFE47FFFC3EFC5 +S315400109E09010200C10BFFFCCC207BFE47FFFC3EBC2 +S315400109F09010200B10BFFFC4C207BFE47FFFC3E7BF +S31540010A009010200A10BFFFB3C207BFF47FFFC3E3B4 +S31540010A109010200930BFFFAA7FFFC3E09010200845 +S31540010A2030BFFFA3C607BFE8C624A00410BFFF9787 +S31540010A30A32D8011C2042110C020E00C84103FFF79 +S31540010A40B0102000C0206040C420600C81C7E0087F +S31540010A5081E800000280001E1110004080A720009E +S31540010A60A610001B04BFFF08A81020002F1000404D +S31540010A70AC142110AE15E3E410800005AA10200144 +S31540010A8080A7001404BFFF00A604E00180A4E01F74 +S31540010A9034BFFFFCA805200192100013400027EF48 +S31540010AA090100017C2058000C4006040872D401396 +S31540010AB08410C002C420604010BFFFF2A805200187 +S31540010AC07FFFC3B69010200130BFFEBB9210001BC2 +S31540010AD0400027E2901223E4C2042110852F001B17 +S31540010AE0C420604010BFFEE980A0001C7FFFC3AB5D +S31540010AF09010200330BFFEBE9DE3BF80031001244A +S31540010B0011004034231000407FFFC396F02061104E +S31540010B10C0260000C026204082103FFFC226200C7E +S31540010B200310012384102001A0102001C420607805 +S31540010B30A214639492100010400027C8901000112F +S31540010B40A004200180A4201012BFFFFC92100010C7 +S31540010B50F8062020B937201C231001232D00003F21 +S31540010B603700002AB8072001A2146078AC15A3FE0D +S31540010B70B616E2AAA6100018AE102000B4103FFF28 +S31540010B80BA102001A8102020AA10202180A72001F8 +S31540010B900280000580A5E0007FFFC3799010001711 +S31540010BA080A5E0000280000F01000000C024C000C3 +S31540010BB0C024E040F424E00CFA244000832DE01CDC +S31540010BC0C224E024C204E0248330601C80A0401784 +S31540010BD002800004010000007FFFC37090102012C4 +S31540010BE0EC24E008C204E00880A04016028000041C +S31540010BF0010000007FFFC36990102001EC24E04012 +S31540010C00C204E04080A040160280000401000000BA +S31540010C107FFFC36290102002C204E00880A06000FA +S31540010C2012BFFFFE01000000C204400080A0601018 +S31540010C3002800005A01020017FFFC35890102003B9 +S31540010C40A0102001832C2002C204400184250010FB +S31540010C5080A0800122800005A00420017FFFC34FB0 +S31540010C6090102004A004200180A4201012BFFFF799 +S31540010C70832C2002FA244000F624C000EC24E040F4 +S31540010C80C204C00080A0401B028000040100000095 +S31540010C907FFFC34290102005C204E04080A0401669 +S31540010CA002800004010000007FFFC33C9010200534 +S31540010CB0EC24E008C204E00880A0600012BFFFFEF9 +S31540010CC001000000C204400080A0601002800005BF +S31540010CD0A410201F7FFFC33190102006A410201FAF +S31540010CE0A0102001832C2002C204400180A04012A2 +S31540010CF022800005A00420017FFFC3289010200711 +S31540010D00A004200180A4200812BFFFF7A404BFFE5F +S31540010D10A410201CA010200A832C2002C2044001EA +S31540010D2080A0401222800005A00420017FFFC31B42 +S31540010D3090102008A004200180A4201012BFFFF7C4 +S31540010D40A404BFFEFA27BFF082102002C407BFF0F9 +S31540010D508400A001C427BFF4C407BFF48400A001E6 +S31540010D60C427BFF8C407BFF88400A001C427BFFC4D +S31540010D7084102006C427BFE0C024C000C024E04040 +S31540010D80FA244000C224E040C224E00883444000E3 +S31540010D90808861000280000501000000805000014A +S31540010DA08050000180500001C207BFE0C227BFE466 +S31540010DB0C207BFE080A060060280000582102002C3 +S31540010DC07FFFC2F69010200A82102002C224E0085A +S31540010DD001000000C207BFE0C227BFE4C207BFE06F +S31540010DE080A0600602800005821020027FFFC2EBD0 +S31540010DF09010200A82102002C224E008010000005F +S31540010E00C027BFE4C207BFE480A060001280007320 +S31540010E1001000000C204E00880A0600012BFFFFE8E +S31540010E2001000000C204400080A06004028000046A +S31540010E30010000007FFFC2D99010200DC024E04080 +S31540010E40EC24E008FA2440004000020B01000000B7 +S31540010E504000020B90122F00EC24E040C204E04017 +S31540010E6080A0600002BFFFFE01000000C2044000F6 +S31540010E7080A0600202800004010000007FFFC2C71B +S31540010E809010200EC204600480A0601F02800004FE +S31540010E90010000007FFFC2C19010200F400001F603 +S31540010EA0A4102002400001F690023F00400001F2EA +S31540010EB001000000400001F290023F00C2044000E0 +S31540010EC0A004A00180A0401022800005A52CA0020C +S31540010ED07FFFC2B290102010A52CA002C40440127C +S31540010EE08225401080A0800102800004A4100010D9 +S31540010EF07FFFC2AA9010201180A4201012BFFFECE0 +S31540010F0001000000C024E040F424E00CAE05E001FD +S31540010F1080A7001714BFFF1EA624F00080A720015A +S31540010F200480002C01000000C0262024C206202493 +S31540010F3080A060001280002C010000000304000024 +S31540010F40C2262024C406202480A0800102800005F8 +S31540010F50821020017FFFC29190102014821020013F +S31540010F60C2262020C026202403040000C4062024D3 +S31540010F7080A0800102800004010000007FFFC2873B +S31540010F8090102015C0262020C0262024C2062024E9 +S31540010F9080A060001280001B010000008210200228 +S31540010FA0C2262020C20620208088600202800012CC +S31540010FB001000000C0262020C20620208088600251 +S31540010FC002800004010000007FFFC27490102018C7 +S31540010FD081C7E00891E820007FFFC2709010200B86 +S31540010FE030BFFF8D7FFFC26D9010201310BFFFD51C +S31540010FF0030400007FFFC2699010201730BFFFEE47 +S315400110007FFFC2669010201610BFFFE682102002B5 +S315400110109DE3BFA07FFFC27D0100000080A22000AA +S315400110200280003B0100000080A6200012800035AE +S31540011030010000007FFFC27501000000912A2004D3 +S315400110407FFFC24F9002200340001880010000003C +S3154001105080A2200012800028010000004000181FD5 +S3154001106001000000400017CD01000000400001E3EF +S315400110700100000080A6A0001280001C01000000B3 +S315400110807FFFC26221100124912A2002A01421145B +S31540011090C204000880A060000280000A80A62000E9 +S315400110A07FFFC25A01000000912A20027FFFC257EA +S315400110B0E00400089FC400000100000080A6200053 +S315400110C002800004010000007FFFC26990100019F0 +S315400110D0400004400100000040001E4F0100000096 +S315400110E0400015D281E8000040001F2101000000A8 +S315400110F030BFFFE47FFFC2299010200130BFFFD8E7 +S315400111007FFFC24B9010001930BFFFCB7FFFC21546 +S315400111101100400C10BFFFC680A62000031001231A +S31540011120C40060C48400A001C42060C481C3E00837 +S31540011130010000009DE3BFA07FFFC20A11004044A9 +S3154001114082103FFFE4062008C2262004A40CA00713 +S31540011150C4060000C206000080A08001028000741F +S31540011160010000008210201FC2262004C226000072 +S3154001117080A4A0000280004E8210200085286004D1 +S31540011180840600028200600180A04012C020A0189F +S3154001119012BFFFFC85286004A0102000A610200F76 +S315400111A0AA102006A81020107FFFC1F5901000104C +S315400111B0A2042001832C600486060001A12C200490 +S315400111C0C026000184060010E620E004EA20A018AB +S315400111D0C206000180A0600F028000058206001051 +S315400111E07FFFC1EE90102003820600108410200E6E +S315400111F0872C6004E6206018C206000380A04002E6 +S3154001120012BFFFFE010000008400BFFF80A0BFFFA8 +S3154001121012BFFFFA01000000852C6004C2060002DD +S3154001122080A0600F12BFFFFE82060010C200601848 +S315400112308088601002800033A0060010E824201840 +S31540011240C204201880886010128000350100000019 +S3154001125080A4801114BFFFD5A010001180A4A00165 +S315400112600480000C821020007FFFC1C59010200829 +S315400112708210200FC22620188210202FC226202835 +S31540011280C206202080A0600D12BFFFFE8210200002 +S3154001129085286004840600028200600180A0401215 +S315400112A0C020A01812BFFFFC85286004211001242C +S315400112B0C204211080A06000028000109210001923 +S315400112C011100044400025E59012211C7FFFFC3D92 +S315400112D0D0042110C204211084102001B3288019A2 +S315400112E0F22060408210200FC22620148210200D69 +S315400112F0C2262018A780000081C7E00881E80000C7 +S315400113007FFFC1A690102004E8242018C2042018AB +S315400113108088601022BFFFD080A480117FFFC19FCB +S315400113209010200510BFFFCC80A480117FFFC19B88 +S315400113309010200110BFFF8D8210201F0000000079 +S315400113400100000001000000010000000100000052 +S31540011350010000000100000081C3E0080100000017 +S315400113600100000001000000010000000100000032 +S31540011370010000000100000081C3E00801000000F7 +S315400113800100000001000000010000000100000012 +S31540011390010000000100000081C3E00801000000D7 +S315400113A001000000010000000100000001000000F2 +S315400113B0010000000100000081C3E00801000000B7 +S315400113C0D482018090A2000916BFFFFE9612800BBF +S315400113D081C3E0089010000BD48201C090A200099D +S315400113E016BFFFFE9612800B81C3E0089010000BDA +S315400113F090A22004C0A201A090A22004C0A201A0F4 +S3154001140090A22004C0A201A090A22004C0A201A0E3 +S31540011410C0A2018090A2200414BFFFF70100000082 +S3154001142081C3E0080100000090A22004C0A201E0AF +S3154001143090A22004C0A201E090A22004C0A201E033 +S3154001144090A22004C0A201E0C0A201C090A2200443 +S3154001145014BFFFF70100000081C3E008010000004E +S31540011460981000089610000A98A3200814BFFFFFA1 +S31540011470D43B00099810000898A3200814BFFFFF29 +S31540011480C01B00099810000898A32004D603000940 +S3154001149080A2C00A1280000698A3200434BFFFFD33 +S315400114A0D603000981C3E008901020009010200166 +S315400114B0981000089610000A98A3200814BFFFFF51 +S315400114C0D43B00099810000898A32004D6030009CC +S315400114D080A2C00A1280000698A3200434BFFFFDF3 +S315400114E0D603000981C3E008901020009010200126 +S315400114F09810000898A32004D2A301A0DA8301A082 +S3154001150080A340091280000698A3200414BFFFFC63 +S31540011510D2A301A081C3E0089010200090102001C1 +S315400115209A1000089AA3400AD6A34180D8834180E5 +S31540011530981B000B988B0009128000069AA3400A5B +S3154001154014BFFFFBD6A3418081C3E0089010200061 +S31540011550901020019A1000089AA3400BD8A241CDC1 +S31540011560C48241CD8418800C8488800A128000068A +S315400115709AA3400B14BFFFFBD8A241CD81C3E0081B +S315400115809010200090102001010000000100000091 +S315400115900100000013100080921260E0D402400066 +S315400115A080A2A0011280000780A0A002D4024000C0 +S315400115B0D4024000952AA0021080000501000000D7 +S315400115C03280000381E80000D402400081E000003F +S315400115D093480000818A602023100045A21461F8D7 +S315400115E0A40460040100000081C4400081CC800055 +S315400115F091D0200191D02001268000059000200144 +S3154001160090222001912A2001912A200281C3E008DB +S315400116100100000081C3E008D082004081C3E00898 +S31540011620D2A2004081C3E008D082018081C3E00894 +S31540011630D2A2018081C3E008D08201A081C3E00823 +S31540011640D2A201A081C3E008D08201C081C3E008D3 +S31540011650D2A201C081C3E008D08201E081C3E00883 +S31540011660D2A201E081C3E008D2A2000081C3E00812 +S31540011670D082000081C3E00891480000818A0000C1 +S3154001168001000000010000000100000081C3E008E4 +S315400116900100000081C3E008C0A000A081C3E008AA +S315400116A0C0A000C081C3E008D01A000001000000BC +S315400116B001000000010000000100000001000000DF +S315400116C09DE3BF8803100070D1186078D13FBFF009 +S315400116D003100080D11FBFF0D9186180031000802C +S315400116E0D518618895A308CAD53FBFF80310008075 +S315400116F0D91FBFF8D518619081AB0A4A0100000095 +S3154001170023800038D127BFEC91A005480310007013 +S31540011710D13FBFF8D51FBFF8D91FBFF899A3094AD2 +S31540011720D51FBFF099A308CA99A0012CD51860808E +S3154001173081AB0ACA010000002D800024D127BFECED +S3154001174091A018C891A20928D51FBFF091A01928C8 +S3154001175091A208CA91A0012803100070D51860888B +S3154001176081AA0ACA010000000D800015010000008F +S315400117704000019001000000400001EE0100000020 +S3154001178080A220001280000B0100000040000243AD +S315400117900100000080A22000128000040100000028 +S315400117A081C7E00881E800007FFFC07C91E8200501 +S315400117B07FFFC07A0100000030BFFFF57FFFC07791 +S315400117C09010200330BFFFEBD327BFE87FFFC073E4 +S315400117D090102002D307BFE810BFFFDAD107BFEC54 +S315400117E0D327BFE87FFFC06D90102001D307BFE824 +S315400117F010BFFFC6D107BFEC9DE3BFA07FFFFF9E91 +S31540011800210000047FFFFF9E901200107FFFFF9A88 +S3154001181001000000808A001012800004B0102000F0 +S3154001182081C7E00881E80000400002669010200070 +S315400118307FFFC07601000000912A20047FFFC0503F +S31540011840900220087FFFFF9F81E800000100000011 +S3154001185019100080981321201110020092102000C7 +S31540011860150FF76C9412A3D7D03B0000D423200860 +S31540011870C11B0000C503200887A089220100000082 +S3154001188089A005408DA0892281A8CA2601000000B1 +S3154001189033800003901020009010200181C3E0089E +S315400118A001000000C11A0000C51A400089A0084283 +S315400118B081C3E008C93A8000C11A0000C51A400038 +S315400118C089A0094281C3E008C93A80001910008005 +S315400118D098132120D0230000D2232008C103000001 +S315400118E0C303200885A00D2181C3E008C53A8000C5 +S315400118F0C11A0000C51A400089A009C2C93A800030 +S3154001190081C3E00801000000C11A000085A005401E +S31540011910C53A400081C3E008010000000100000013 +S31540011920010000000100000001000000010000006C +S31540011930010000000100000001000000010000005C +S31540011940010000000100000001000000010000004C +S31540011950010000000100000001000000010000003C +S31540011960010000000100000001000000010000002C +S31540011970010000000100000001000000010000001C +S31540011980010000000100000001000000010000000C +S3154001199001000000010000000100000081A00020BC +S315400119A081C3E00801000000C11A000081C3E008BC +S315400119B001000000C51A000089A009C2C93A4000C9 +S315400119C081C3E008010000001310008092126120DB +S315400119D0D0224000C102400085A01900C53A40000E +S315400119E081C3E008D01A4000131000809212612092 +S315400119F0D0224000C102400085A01880C522400087 +S31540011A0081C3E008D0024000151000809412A12045 +S31540011A10D03A8000C11A800085A01A40C5228000B4 +S31540011A2081C3E008D0028000151000809412A120E5 +S31540011A30D0228000C102800085A01A20C5228000E4 +S31540011A4081C3E008D0028000151000809412A120C5 +S31540011A50D0228000C102800081A01920C13A8000B5 +S31540011A6081C3E008D01A8000151000809412A1208D +S31540011A70D03A8000C11A800081A018C0C1228000DE +S31540011A8081C3E008D0028000151000809412A12085 +S31540011A90D0228000CB0280008DA00025CD2280007F +S31540011AA081C3E008D0028000151000809412A12065 +S31540011AB0D0228000CB0280008DA000A5CD228000DF +S31540011AC081C3E008D0028000151000809412A12045 +S31540011AD0D0228000CB0280008DA00125CD2280003E +S31540011AE081C3E008D002800019100080981321209C +S31540011AF0D03B0000D43B2008C11B0000C51B200879 +S31540011B0081A80A420100000033800009901020009C +S31540011B1029800007901020012D8000059010200299 +S31540011B202F8000039010200391D0200081C3E0084C +S31540011B30010000001910008098132120D03B0000BD +S31540011B40D43B2008C11B0000C51B200881A80AC23E +S31540011B500100000033BFFFF69010200029BFFFF4BB +S31540011B60901020012DBFFFF2901020022FBFFFF0F1 +S31540011B709010200391D02000191000809813212045 +S31540011B80D0230000D2232008C1030000C30320084C +S31540011B9081A80A210100000033BFFFE59010200013 +S31540011BA029BFFFE3901020012DBFFFE190102002D5 +S31540011BB02FBFFFDF9010200391D020001910008025 +S31540011BC098132120D0230000D2232008C10300000E +S31540011BD0C303200881A80AA10100000033BFFFD436 +S31540011BE09010200029BFFFD2901020012DBFFFD0B9 +S31540011BF0901020022FBFFFCE9010200391D02000DD +S31540011C001910008098132120D03B0000D43B2008B6 +S31540011C10C11B0000C51B200889A008C2C93B0000A2 +S31540011C2081C3E008D01B00001910008098132120C1 +S31540011C30D0230000D2232008C1030000C30320089B +S31540011C4085A00821C523000081C3E008D003000018 +S31540011C501910008098132120D0230000D223200898 +S31540011C60C1030000C303200885A008A1C5230000C5 +S31540011C7081C3E008D0030000191000809813212089 S31540011C80D0230000D2232008C1030000C30320084B -S31540011C9081A80A210100000033BFFFE59010200012 -S31540011CA029BFFFE3901020012DBFFFE190102002D4 -S31540011CB02FBFFFDF9010200391D020001910008024 -S31540011CC098132178D0230000D2232008C1030000B5 -S31540011CD0C303200881A80AA10100000033BFFFD435 -S31540011CE09010200029BFFFD2901020012DBFFFD0B8 -S31540011CF0901020022FBFFFCE9010200391D02000DC -S31540011D001910008098132178D03B0000D43B20085D -S31540011D10C11B0000C51B200889A008C2C93B0000A1 -S31540011D2081C3E008D01B0000191000809813217868 -S31540011D30D0230000D2232008C1030000C30320089A -S31540011D4085A00821C523000081C3E008D003000017 -S31540011D501910008098132178D0230000D22320083F -S31540011D60C1030000C303200885A008A1C5230000C4 -S31540011D7081C3E008D0030000191000809813217830 -S31540011D80D0230000D2232008C1030000C30320084A -S31540011D9085A00921C523000081C3E008D0030000C6 -S31540011DA01910008098132178D0230000D2232008EF -S31540011DB0C1030000C303200885A009A1C523000073 -S31540011DC081C3E008D00300001910008098132178E0 -S31540011DD0D0230000C103000083A00520C3230000D7 -S31540011DE081C3E008D0030000131000809212619075 -S31540011DF0C51A6008C11A400089A0084091A108C2CD -S31540011E0095A209C495A2894281C3E008D53A00004A -S31540011E1013100080921261B0C1024000C3026004F7 -S31540011E2085A0082087A088A189A0C9A289A10921E6 -S31540011E3081C3E008C92200009610200213100080D9 -S31540011E4092126190151000809412A190D502400023 -S31540011E50D7028000D5220000D8020000131000806E -S31540011E60921261B096A2E00112BFFFF90100000093 -S31540011E7081C3E008010000001310008092126190B6 -S31540011E80151000809412A1B0C1028000C51A6010DD -S31540011E9083A0082089A088C08BA109A18DA10942F0 -S31540011EA08FA1492691A0054681C3E008D13A000099 -S31540011EB01110008090122188C11A0000C51A000035 -S31540011EC0C91A0000CD1A0000D11A0000D51A000027 -S31540011ED0D91A0000DD1A0000E11A0000E51A0000D7 -S31540011EE0E91A0000ED1A0000F11A0000F51A000087 -S31540011EF0F91A0000FD1A000081C3E0080100000044 -S31540011F0029100080A815215827100080A614E1C089 -S31540011F10C12CC000E604C000A134E00EA00C20078D -S31540011F20A0A42002AE1020002D100080AC15A1C047 -S31540011F30AE05E001AC05A008C1358000C12D000009 -S31540011F40EA050000AB35600DAA8D600112BFFFF9AD -S31540011F5001000000808000100280002F2B3C1FFFF3 -S31540011F60AA1563FFA60CC015E6250000C10D0000A9 -S31540011F702B100080AA1561CC2D100047AC15A3E0AB -S31540011F80AE25E001E0054000E025800081D8200033 -S31540011F9001000000010000000100000001000000F6 -S31540011FA001000000010000000100000001000000E6 -S31540011FB001000000010000000100000001000000D6 -S31540011FC001000000010000000100000001000000C6 -S31540011FD001000000010000000100000001000000B6 -S31540011FE00000000080A5C00012BFFFE6AA056008F8 -S31540011FF0C12D0000E60500002B03C000A614C01544 -S31540012000E6250000C10D000081C4400081CC80005E -S315400120100100000081C4800081CCA00401000000C1 -S315400120200100000081C3E008915800000100000052 -S315400120301110008090122158C10A0000C0220000F0 -S31540012040C10A0000C12A0000D40200001300038027 -S31540012050942A800980A0000A3280004D9010200306 -S315400120601303E000D223BFA0C023BFA4C10BBFA06E -S31540012070C023BFA0151000809412A170C102800038 -S315400120800100000001000000C10BBFA0C10BBFA4AD -S3154001209083A00520C12BBFA0D003BFA0808A220008 -S315400120A02280003B901020049010200015100080E3 -S315400120B09412A140C5028000C902A008D102A00C19 -S315400120C01310008092126170C70240008DA08944AE -S315400120D081A98AC8010000000380000501000000B3 -S315400120E0901020011080002A01000000C5028000E6 -S315400120F0C902A008D102A00C13100080921261708F -S31540012100CB0240008DA0894481A98AC80100000004 -S315400121100380000501000000901020011080001C82 -S315400121200100000025100080A414A168C11C800094 -S31540012130C51C800080A000003280000685A008C032 -S3154001214081A80AC2010000001380000301000000BB -S31540012150901020050100000025100080A414A168FC -S31540012160C11C8000C51C800080A000000100000049 -S315400121703280000685A008C081A80AC2010000007D -S3154001218013800003010000009010200701000000A9 -S3154001219081C3E00801000000901020019544000031 -S315400121A09532A01E940AA00380A2800002800040BE -S315400121B09010200080A2A0030280003D13100080F1 -S315400121C0921261F0C11A4000C51A6008FD026018FA -S315400121D095A0003E99A0003E9DA0003E170000C07C -S315400121E09612E078A182C0000100000001000000C3 -S315400121F00100000001000000010000000100000094 -S3154001220081A0002083A0002195A0002A99A0002C3E -S315400122109DA0002E170000C09612E07CA182C0004E -S315400122200100000001000000010000000100000063 -S31540012230010000000100000085A0002287A00023C4 -S31540012240A180000001000000010000000100000023 -S3154001225001000000010000000100000089A00842C1 -S31540012260A9A2883ED93A4000DD224000CD1A60102D -S31540012270D102600881A90A46010000000380000CD2 -S3154001228081AD0A2801000000038000099344000043 -S315400122909332601B920A60079010200080A2A00131 -S315400122A002800003902260079022600481C3E00807 -S315400122B001000000C12BBFA081C3E008D003BFA02D -S315400122C0D023BFA081C3E008C10BBFA0010000001D -S315400122D09DE3BF6040001B17B0102000913A200AD1 -S315400122E0900A200380A220011280111101000000F2 -S315400122F07FFFBBBE9010200D190C40291B23CD1B1F -S315400123009410200096102000981320069A13609B83 -S31540012310D43FBFE0D43FBFC0D43FBFE87FFFFF42B9 -S31540012320D83FBFF0900A3000032804009012208065 -S315400123308210600FC22200001B1000479002200449 -S315400123409A1363009A234008191000009B3B6002D0 -S31540012350032784009A13400C82106010C222200485 -S315400123607FFFFED4DA2200007FFFFFD61103E00093 -S315400123702D100080C025A1C07FFFFDD49010200004 -S31540012380809200091280000601000000C205A1C02A -S3154001239080A0600002800004010000007FFFBB981E -S315400123A09010200B7FFFFDC990103FFA03300600C5 -S315400123B080A200011280000480A2600002800EDB30 -S315400123C0010000007FFFBB8E9010200B7FFFFDBFF9 -S315400123D09010201403100D0080A200011280000409 -S315400123E080A2600002800ECC010000007FFFBB840A -S315400123F09010200B7FFFFDB5901020620310162030 -S3154001240080A200011280000480A2600002800EBDFD -S31540012410010000007FFFBB7A9010200B7FFFFDB3C8 -S31540012420901020050310280080A2000112800006AA -S3154001243001000000C205A1C080A060000280000426 -S31540012440010000007FFFBB6E9010200B7FFFFF9DB8 -S315400124501103C000111C00007FFFFDAC921020004B -S31540012460031FFFFF821063FF80A200011280000A52 -S315400124701B000070C205A1C09A13601F190000100D -S315400124808208400D9813201080A0400C0280000560 -S31540012490113C00007FFFBB5A9010200C113C0000FC -S315400124A07FFFFD9A921020000320000080A20001C8 -S315400124B01280000A1B000070C205A1C09A13601F5A -S315400124C0190000108208400D9813201080A0400C7E -S315400124D002800004010000007FFFBB499010200CE0 -S315400124E0C025A1C0901020007FFFFD8892102000DA -S315400124F080A220001280000601000000C205A1C092 -S3154001250080A0600002800005110144007FFFBB3CB2 -S315400125109010200C11014400132840009012230210 -S315400125207FFFFD7A9212600180A220001280000690 -S3154001253001000000C205A1C080A060002280000504 -S315400125401111FFFF7FFFBB2E9010200C1111FFFFD1 -S315400125507FFFFD76901223FF0300007F821063FF09 -S3154001256080A200011280000601000000C205A1C040 -S3154001257080A06000028000052F1000857FFFBB20F0 -S315400125809010200C2F1000857FFFFD60D01DE0C804 -S31540012590031FFFFF821063FF80A200011280000A21 -S315400125A01B000070C205A1C09A13601F19000010DC -S315400125B08208400D9813201080A0400C028000052F -S315400125C0031000857FFFBB0E9010200C0310008581 -S315400125D0D01860D8C025A1C07FFFFD4C0100000086 -S315400125E00320000080A200011280000A1B00007037 -S315400125F0C205A1C09A13601F190000108208400D40 -S315400126009813201080A0400C028000051910008507 -S315400126107FFFBAFB9010200C19100085C025A1C080 -S315400126207FFFFD3AD01B20B8031FFFFF821063FFD7 -S3154001263080A200011280000A1B000070C205A1C0E1 -S315400126409A13601F190000108208400D981320103C -S3154001265080A0400C02800005331000857FFFBAE858 -S315400126609010200C33100085C025A1C07FFFFD27A7 -S31540012670D01E60F0C205A1C08330600E820860039F -S3154001268080A0600202800004211000807FFFBADC36 -S315400126909010200C7FFFFF0B1103C000111158044D -S315400126A0C02421C07FFFFD299012223403102B0044 -S315400126B08210624680A200011280000503200000BC -S315400126C080A2400102800FC5010000007FFFBACC05 -S315400126D09010200D113C02AF7FFFFD1C901220D1BE -S315400126E0033180558210639A80A200011280000551 -S315400126F00308000080A2400102800FDB01000000B8 -S315400127007FFFBABF9010200D1111FC007FFFFD170E -S3154001271092102000031FE00080A200011280000AEF -S315400127201B000070C205A1C09A13601F190000105A -S315400127308208400D9813200880A0400C02800005B5 -S3154001274011207C017FFFBAAE9010200D11207C0133 -S31540012750C025A1C0901220307FFFFD041300010067 -S315400127600320000080A200011280000A1B000070B5 -S31540012770C205A1C09A13601F190000108208400DBE -S315400127809813200480A0400C028000040100000040 -S315400127907FFFBA9B9010200DC025A1C0901020004C -S315400127A07FFFFCF29210200080A2200012800006DA -S315400127B001000000C205A1C080A0600002800004A3 -S315400127C0010000007FFFBA8E9010200D7FFFFCE7CD -S315400127D0D01DE0C803100085DA0060C080A2000D5C -S315400127E01280000601000000C205A1C080A0600061 -S315400127F0028000051B1000857FFFBA819010200DD5 -S315400128001B1000857FFFFCD9D01B60D0031FE00061 -S3154001281080A200011280000601000000C205A1C08D -S3154001282080A0600002800005031000857FFFBA7416 -S315400128309010200D031000857FFFFCCCD01860B8A6 -S3154001284003100085DA0060A880A2000D1280000AFC -S315400128501B000070C205A1C09A13601F1900001029 -S315400128608208400D9813201080A0400C028000047D -S31540012870010000007FFFBA629010200DC025A1C063 -S315400128807FFFFCBAD01E60F0C205A1C08330600E46 -S315400128908208600380A06002028000042310008049 -S315400128A07FFFBA579010200D7FFFFE861103E0008F -S315400128B02108C6AF901420DEC02461C07FFFFCB35F -S315400128C0A01420DE80A20010128000060100000044 -S315400128D0C20461C080A06000028000052108C6AF25 -S315400128E07FFFBA479010200E2108C6AF7FFFFCB785 -S315400128F0901420DEA01420DE80A200101280000673 -S3154001290001000000C205A1C080A060002280000530 -S315400129101128C6AF7FFFBA3A9010200E1128C6AFD4 -S315400129207FFFFCAA901220DE0308C6AF821060DE4C -S3154001293080A200011280000601000000C205A1C06C -S3154001294080A06000228000051108C6AF7FFFBA2C27 -S315400129509010200E1108C6AF7FFFFC94901220DE26 -S315400129600328C6AF821060DE80A2000112800006F5 -S3154001297001000000C205A1C080A0600022800005C0 -S315400129801128C6AF7FFFBA1E9010200E1128C6AF80 -S315400129907FFFFC86901220DE0308C6AF821060DE00 -S315400129A080A200011280000601000000C205A1C0FC -S315400129B080A0600002800004010000007FFFBA1081 -S315400129C09010200E7FFFFE3F1103E00011151BC042 -S315400129D01310C82115351BC01710C82190122103A9 -S315400129E0921261419412A1037FFFFC809612E1414C -S315400129F080A220021280000601000000C205A1C08B -S31540012A0080A060000280000511351BC07FFFB9FC24 -S31540012A109010200F11351BC01310C82115151BC06E -S31540012A201710C82190122103921261419412A103F9 -S31540012A307FFFFC6E9612E14180A2200112800006C2 -S31540012A4001000000C205A1C080A06000028000050F -S31540012A50901020007FFFB9EA9010200F90102000BF -S31540012A6092102000152000007FFFFC609610200088 -S31540012A7080A220001280000601000000C205A1C00C -S31540012A8080A0600002800005191000857FFFB9DC37 -S31540012A909010200F191000851B100085D01B20D0E7 -S31540012AA07FFFFC52D41B60D880A220021280000610 -S31540012AB001000000C205A1C080A06000028000059F -S31540012AC011151BC07FFFB9CE9010200F11151BC0E9 -S31540012AD01310C82115151BE81710C82190122103A0 -S31540012AE0921261419412A1037FFFFC409612E1418B -S31540012AF080A220011280000601000000C205A1C08B -S31540012B0080A060000280000511151BE87FFFB9BC5B -S31540012B109010200F11151BE81310C82115151BC065 -S31540012B201710C82190122103921261419412A103F8 -S31540012B307FFFFC2E9612E14180A220021280000600 -S31540012B4001000000C205A1C080A06000028000050E -S31540012B5011151BE87FFFB9AA9010200F11151BE82C -S31540012B601310C82190122103921261417FFFFC1F6D -S31540012B70D41DE0C880A22003128000060100000097 -S31540012B80C205A1C080A06000028000050310008537 -S31540012B907FFFB99B9010200F0310008511151BE88C -S31540012BA01310C82190122103921261417FFFFC0F3D -S31540012BB0D41860B880A220031280000A1B0000705E -S31540012BC0C205A1C09A13601F190000108208400D6A -S31540012BD09813201080A0400C0280000511151BE8B7 -S31540012BE07FFFB9879010200F11151BE81310C821DC -S31540012BF0C025A1C090122103921261417FFFFBFBC8 -S31540012C00D41E60F080A2200212800006010000005E -S31540012C10C205A1C080A060000280000515151BE811 -S31540012C207FFFB9779010200F15151BE81710C821A3 -S31540012C30D01E60F09412A1037FFFFBEC9612E14196 -S31540012C4080A220011280000601000000C205A1C039 -S31540012C5080A060000280000515151BE87FFFB9685A -S31540012C609010200F15151BE81710C821D01DE0C87C -S31540012C709412A1037FFFFBDD9612E14180A220035E -S31540012C801280000601000000C205A1C080A06000BC -S31540012C9002800005191000857FFFB9599010200F59 -S31540012CA01910008515151BE81710C821D01B20B82F -S31540012CB09412A1037FFFFBCD9612E14180A220032E -S31540012CC01280000A1B000070C205A1C09A13601F42 -S31540012CD0190000108208400D9813201080A0400C66 -S31540012CE00280000511151BC07FFFB9459010200FCA -S31540012CF011151BC01310C82115351BC01710C8214B -S31540012D00C025A1C090122103921261419412A103E0 -S31540012D107FFFFBC99612E14180A220021280000684 -S31540012D2001000000C205A1C080A06000028000052C -S31540012D3011351BC07FFFB9329010200F11351BC0D2 -S31540012D401310C82115151BC01710C8219012210355 -S31540012D50921261419412A1037FFFFBB79612E141A2 -S31540012D6080A220011280000601000000C205A1C018 -S31540012D7080A0600002800005901020007FFFB920EE -S31540012D809010200F90102000921020001520000076 -S31540012D907FFFFBA99610200080A22000128000062A -S31540012DA001000000C205A1C080A0600002800005AC -S31540012DB01B1000857FFFB9129010200F1B10008554 -S31540012DC003100085D01B60D07FFFFB9BD41860D8D1 -S31540012DD080A220021280000601000000C205A1C0A7 -S31540012DE080A060000280000511151BC07FFFB90459 -S31540012DF09010200F11151BC01310C82115151BE883 -S31540012E001710C82190122103921261419412A10315 -S31540012E107FFFFB899612E14180A2200112800006C4 -S31540012E2001000000C205A1C080A06000028000052B -S31540012E3011151BE87FFFB8F29010200F11151BE802 -S31540012E401310C82115151BC01710C8219012210354 -S31540012E50921261419412A1037FFFFB779612E141E1 -S31540012E6080A220021280000601000000C205A1C016 -S31540012E7080A060000280000511151BE87FFFB8E0C5 -S31540012E809010200F11151BE81310C8219012210331 -S31540012E90921261417FFFFB68D41DE0C880A22003E6 -S31540012EA01280000A1B000070C205A1C09A13601F60 -S31540012EB0190000108208400D9813201080A0400C84 -S31540012EC002800005191000857FFFB8CD9010200FB4 -S31540012ED01910008511151BE81310C8219012210302 -S31540012EE0921261417FFFFB54D41B20B880A220037C -S31540012EF01280000A1B000070C205A1C09A13601F10 -S31540012F00190000108208400D9813201080A0400C33 -S31540012F100280000511151BE87FFFB8B99010200FFC -S31540012F2011151BE81310C821C025A1C09012210319 -S31540012F30921261417FFFFB40D41E60F080A22002C5 -S31540012F401280000601000000C205A1C080A06000F9 -S31540012F500280000515151BE87FFFB8A99010200FC8 -S31540012F6015151BE81710C821D01E60F09412A10355 -S31540012F707FFFFB319612E14180A2200112800006BB -S31540012F8001000000C205A1C080A0600002800005CA -S31540012F9015151BE87FFFB89A9010200F15151BE8F1 -S31540012FA01710C821D01DE0C89412A1037FFFFB2250 -S31540012FB09612E14180A220031280000A1B00007094 -S31540012FC0C205A1C09A13601F190000108208400D66 -S31540012FD09813201080A0400C028000051B1000852C -S31540012FE07FFFB8879010200F1B10008515151BE831 -S31540012FF01710C821D01B60B89412A1037FFFFB0EA6 -S315400130009612E14180A220031280000A1B00007043 -S31540013010C205A1C09A13601F190000108208400D15 -S315400130209813201080A0400C02800005110048EA48 -S315400130307FFFB8739010200F110048EA13048D15D5 -S31540013040C025A1C0901223CD7FFFFB0C921262785E -S3154001305080A220011280000601000000C205A1C025 -S3154001306080A0600002800005110048EA7FFFB86435 -S315400130709010200F110048EA13048D15901223CDAC -S315400130807FFFFB0F9212627880A220011280000618 -S3154001309001000000C205A1C080A0600002800004BA -S315400130A0010000007FFFB8569010200FC025A1C037 -S315400130B07FFFFC841103C000291001449007BFF033 -S315400130C09207BFE87FFFFA3894152120C207BFF067 -S315400130D0DA05212080A0400D1280000782152120AB -S315400130E0DA006004C207BFF480A0400D02800D598A -S315400130F0010000007FFFB842901020103710008574 -S315400131009007BFF09216E0E07FFFFA279415212041 -S31540013110C206E0E0DA05212080A340018215212084 -S31540013120128000079816E0E0DA006004C20320042A -S3154001313080A3400102800D42010000007FFFB830AC -S31540013140901020109007BFF09215E0C87FFFFA1645 -S3154001315094152120C205E0C8DA05212080A340014B -S3154001316082152120128000079815E0C8DA00600414 -S31540013170C203200480A3400102800D2C01000000FF -S315400131807FFFB81F9010201003100085921060B881 -S315400131909007BFF07FFFFA04941521201B000070B1 -S315400131A0C205A1C09A13601F190000108208400D84 -S315400131B09813201080A0400C028000042110014485 -S315400131C07FFFB80F9010201003100080C02061C00F -S315400131D07FFFFC3C901020001310008594142120A1 -S315400131E0921260B87FFFF9F09007BFF03910008561 -S315400131F0C20720B0DA04212080A340019414212083 -S3154001320012800007821720B0DA02A004C2006004CF -S3154001321080A3400102800004010000007FFFB7F84F -S31540013220901020107FFFFC271103C0009007BFF0CC -S31540013230921660F07FFFF9DC94152120C205A1C0EA -S315400132408330600E8208600380A060022110014431 -S3154001325002800004231000807FFFB7E99010201000 -S3154001326094142120C02461C09007BFE87FFFF9CEA6 -S315400132709207BFF0DA042120C207BFF080A34001C4 -S315400132801280000794142120DA02A004C207BFF479 -S3154001329080A3400102800D21010000007FFFB7D8C5 -S315400132A0901020109007BFE89216E0E07FFFF9BE2C -S315400132B094152120C206E0E0DA05212080A34001D1 -S315400132C082152120128000079816E0E0DA0060049A -S315400132D0C203200480A3400102800D0B01000000BF -S315400132E07FFFB7C7901020109007BFE89215E0C83E -S315400132F07FFFF9AD94152120C205E0C8DA052120EA -S3154001330080A3400182152120128000079815E0C84C -S31540013310DA006004C203200480A3400102800CF558 -S31540013320010000007FFFB7B69010201019100085EC -S31540013330921320B89007BFE87FFFF99B941521208F -S315400133401B000070C205A1C09A13601F190000102E -S315400133508208400D9813201080A0400C0280000482 -S31540013360211001447FFFB7A6901020107FFFFBD5A7 -S31540013370901020001310008594142120921260B8F9 -S315400133807FFFF9899007BFE8C20720B0DA04212000 -S3154001339080A340019414212012800007821720B097 -S315400133A0DA02A004C200600480A340010280000446 -S315400133B0010000007FFFB792901020107FFFFBC1F4 -S315400133C01103C0009007BFE8921660F07FFFF976BF -S315400133D094152120C205A1C08330600E8208600386 -S315400133E080A0600221100144028000042310008065 -S315400133F07FFFB7839010201094142120C02461C010 -S315400134009016E0E07FFFF9689207BFF0C206E0E060 -S31540013410DA04212080A34001941421201280000760 -S315400134208216E0E0DA02A004C200600480A34001F3 -S3154001343002800CAB010000007FFFB7719010201095 -S315400134409016E0E09207BFE87FFFF95794152120D7 -S31540013450C206E0E0DA05212080A340018215212041 -S31540013460128000079816E0E0DA006004C2032004E7 -S3154001347080A3400102800C95010000007FFFB760E8 -S31540013480901020101B100085901360D092100008F8 -S315400134907FFFF9459415212019100085C20320D0DC -S315400134A0DA05212080A340018215212012800007E0 -S315400134B0981320D0DA006004C203200480A340019F -S315400134C002800C7D010000007FFFB74D9010201057 -S315400134D01B100085901360D8921000087FFFF932C7 -S315400134E09415212019100085C20320D8DA05212020 -S315400134F080A340018215212012800007981320D80D -S31540013500DA006004C203200480A3400102800C65F6 -S31540013510010000007FFFB73A901020101B10008574 -S3154001352003100085901360D8921060D07FFFF91E7A -S31540013530941521201B000070C205A1C09A13601F7B -S31540013540190000108208400D9813201080A0400CED -S3154001355002800004211001447FFFB72990102010FA -S315400135607FFFFB5890102000111000851310008535 -S3154001357094142120901220D87FFFF90B921260D02B -S31540013580C20720B0DA04212080A3400194142120EF -S3154001359012800007821720B0DA02A004C20060043C -S315400135A080A3400102800004010000007FFFB714A0 -S315400135B0901020107FFFFB431103C00019100085B6 -S315400135C01B100085901320D0921360D8C025A1C04E -S315400135D07FFFF8F594152120C20720B0DA05212096 -S315400135E080A340018215212012800007981720B040 -S315400135F0DA006004C203200480A3400102800C1F4C -S315400136001B0000707FFFB6FE901020109016E0E080 -S31540013610921660F07FFFF8E494152120C205A1C0FF -S315400136208330600E8208600380A06002211001444D -S3154001363002800004231000807FFFB6F19010201015 -S3154001364094142120C02461C09015E0C87FFFF8D6AC -S315400136509207BFF0C205E0C8DA04212080A34001E9 -S3154001366094142120128000078215E0C8DA02A004D2 -S31540013670C200600480A3400102800B9C010000004F -S315400136807FFFB6DF901020109015E0C89207BFE883 -S315400136907FFFF8C594152120C205E0C8DA0521202F -S315400136A080A3400182152120128000079815E0C8A9 -S315400136B0DA006004C203200480A3400102800B8625 -S315400136C0010000007FFFB6CE901020109015E0C893 -S315400136D09216E0E07FFFF8B494152120C205E0C8B8 -S315400136E0DA05212080A3400182152120128000079E -S315400136F09815E0C8DA006004C203200480A34001A3 -S3154001370002800B70010000007FFFB6BD90102010B3 -S315400137109015E0C8921000087FFFF8A39415212068 -S31540013720C205E0C8DA05212080A340018215212087 -S31540013730128000079815E0C8DA006004C20320042D -S3154001374080A3400102800B5A010000007FFFB6AC06 -S315400137509010201003100085921060B89015E0C8B3 -S315400137607FFFF8919415212003000070A610601F79 -S31540013770DA05A1C0030000109A0B4013AA1060108D -S3154001378080A34015231000852510014402800004C2 -S31540013790211000807FFFB69A90102010C02421C0CE -S315400137A0901460B89207BFF07FFFF87F9414A12070 -S315400137B0C20421C08208401380A040150280000443 -S315400137C0010000007FFFB68E90102010C02421C05A -S315400137D0901460B89207BFE87FFFF8739414A12054 -S315400137E0C20421C08208401380A040150280000413 -S315400137F0010000007FFFB68290102010C02421C036 -S31540013800901460B89216E0E07FFFF8679414A12007 -S31540013810C20421C08208401380A0401502800005E1 -S31540013820131000857FFFB676901020101310008587 -S31540013830C02421C0921260C8901460B87FFFF85A24 -S315400138409414A120C20421C08208401380A04015CF -S3154001385002800005901460B87FFFB6699010201071 -S31540013860901460B8C02421C0921000087FFFF84E22 -S315400138709414A120C20421C08208401380A040159F -S3154001388002800004010000007FFFB65D9010201009 -S31540013890C02421C0901460B8921660F07FFFF842B0 -S315400138A09414A120C20421C08330600E82086003B3 -S315400138B080A06002228000051103C0007FFFB65040 -S315400138C0901020101103C0007FFFFA7E3B10008448 -S315400138D0A2176210C02421C0AA14A120A40460101A -S315400138E0A0102000A6046008B010200C920400131A -S315400138F0900400117FFFF82C94152120DA048010E2 -S3154001390098040012C2052120A004201880A340017A -S315400139101280000790102010DA032004C2056004CB -S3154001392080A3400122800005B0863FFF7FFFB63469 -S3154001393001000000B0863FFF1CBFFFEE920400135A -S31540013940C205A1C080A06000128009890100000063 -S315400139501110008490122348920220087FFFF8122A -S315400139609415212098176210C2052120DA032148B7 -S3154001397080A340011280000782152120DA03214CE1 -S31540013980C200600480A3400122800AAB031000807C -S315400139907FFFB61B901020101110008490122360F7 -S315400139A0920220087FFFF800941521209817621093 -S315400139B0C2052120DA03216080A34001128000075D -S315400139C082152120DA032164C200600480A34001EC -S315400139D002800AA41B0000707FFFB60990102010D8 -S315400139E01110008490122378920220087FFFF7EE8F -S315400139F09415212098176210C2052120DA032178F7 -S31540013A0080A340011280000782152120DA03217C20 -S31540013A10C200600480A3400102800A9C1B00007022 -S31540013A207FFFB5F790102010C025A1C011100000EE -S31540013A3092102000150FFC007FFFF8B2961020006F -S31540013A40030FFC0080A200011280000880A26000E2 -S31540013A501280000601000000C205A1C080A06000DE -S31540013A6002800005111000007FFFB5E5901020107F -S31540013A701110000092102000152FFC007FFFF8A1C5 -S31540013A80961020000310020080A200011280000857 -S31540013A9080A260001280000601000000C205A1C09C -S31540013AA080A0600002800005113000007FFFB5D480 -S31540013AB0901020101130000092102000150FFC00CC -S31540013AC07FFFF890961020000330020080A200018B -S31540013AD01280000880A260001280000601000000EA -S31540013AE0C205A1C080A0600002800005113000001F -S31540013AF07FFFB5C3901020101130000092102000B6 -S31540013B00152FFC007FFFF87F96102000032FFC0045 -S31540013B1080A200011280000880A260001280000687 -S31540013B2001000000C205A1C080A06000028000051E -S31540013B30111000007FFFB5B2901020101110000047 -S31540013B407FFFF87A130FE0000310100080A20001F6 -S31540013B501280000601000000C205A1C080A06000DD -S31540013B6002800005111000007FFFB5A590102010BE -S31540013B70111000007FFFF877130FE000030FE000FC -S31540013B8080A200011280000601000000C205A1C00A -S31540013B9080A0600022800005191000857FFFB5983E -S31540013BA09010201019100085921320E8C025A1C05D -S31540013BB09007BFF07FFFF78F9415212019100085DC -S31540013BC0C20320D8DA05212080A340018215212095 -S31540013BD012800007981320D8DA006004C20320043B -S31540013BE080A3400102800A461B0000707FFFB58416 -S31540013BF0901020111B100085921360D0C025A1C0E2 -S31540013C009007BFF07FFFF77B94152120C207BFE0E5 -S31540013C10DA05212080A34001128000078215212068 -S31540013C20DA006004C207BFE480A3400102800A3E75 -S31540013C30010000007FFFB572901020119007BFF080 -S31540013C409215E0C87FFFF76B94152120C205E0C8A5 -S31540013C50DA05212080A34001821521201280000728 -S31540013C609815E0C8DA006004C203200480A340012D -S31540013C7002800A32010000007FFFB56190102011D9 -S31540013C8003100085921060B89007BFF07FFFF75987 -S31540013C9094152120C20720B0DA05212080A34001D6 -S31540013CA08215212012800007981720B0DA0060049F -S31540013CB0C203200480A3400102800A251B00007034 -S31540013CC07FFFB54F901020119007BFF0921660F01C -S31540013CD07FFFF74894152120C205A1C01B00007043 -S31540013CE08208400D1900002080A0400C211001449B -S31540013CF002800004231000807FFFB54190102011FF -S31540013D0094142120C02461C09007BFE87FFFF73992 -S31540013D109207BFF0DA042120C207BFE880A3400121 -S31540013D201280000794142120DA02A004C207BFECD6 -S31540013D3080A3400102800A10010000007FFFB530D8 -S31540013D409010201119100085901320E89207BFE0CA -S31540013D507FFFF72894152120C20720B0DA052120DC -S31540013D6080A340018215212012800007981720B0B8 -S31540013D70DA006004C203200480A3400102800A03E2 -S31540013D801B0000707FFFB51E901020111B1000858F -S31540013D9003100085901360E8921060D0C025A1C041 -S31540013DA07FFFF7149415212019100085C20320E8DE -S31540013DB0DA05212080A340018215212012800007C7 -S31540013DC0981320E8DA006004C203200480A340016E -S31540013DD0028009F8010000007FFFB509901020110B -S31540013DE09007BFE89215E0C87FFFF702941521209E -S31540013DF0C205E0C8DA05212080A3400182152120B1 -S31540013E00128000079815E0C8DA006004C203200456 -S31540013E1080A34001028009EC010000007FFFB4F855 -S31540013E20901020071B100085921360B89007BFE8D9 -S31540013E307FFFF6F09415212025000070D805A1C01A -S31540013E409A14A01F03000010980B000D82106010F9 -S31540013E5080A3000121100144028000042310008048 -S31540013E607FFFB4E790102011C02461C09007BFE8DE -S31540013E70921660F07FFFF6DF94142120C20461C0E0 -S31540013E80820840121B00002080A0400D22800005C0 -S31540013E90031000857FFFB4DA9010201103100085CE -S31540013EA0901060D894142120C02461C07FFFF6D1C0 -S31540013EB09207BFF019100085C20320D8DA042120E9 -S31540013EC080A340019414212012800007821320D838 -S31540013ED0DA02A004C200600480A34001028008B84F -S31540013EE0010000007FFFB4C6901020111B10008511 -S31540013EF003100085901360D8921060E87FFFF6BDED -S31540013F009415212019100085C20320D0DA052120FD -S31540013F1080A340018215212012800007981320D0EA -S31540013F20DA006004C203200480A34001028008A98C -S31540013F30010000007FFFB4B2901020119016E0E01E -S31540013F40921000087FFFF6AB94152120C20720B0DE -S31540013F50DA05212080A34001821521201280000725 -S31540013F60981720B0DA006004C203200480A3400100 -S31540013F700280089D1B0000707FFFB4A190102011A4 -S31540013F80C025A1C09016E0E09215E0C87FFFF699E2 -S31540013F9094152120C205E0C8DA05212080A34001FD -S31540013FA082152120128000079815E0C8DA006004C6 -S31540013FB0C203200480A3400102800894010000004E -S31540013FC07FFFB48F901020111B100085921360B8AB -S31540013FD09016E0E07FFFF68794152120C20720B0B6 -S31540013FE0DA05212080A34001821521201280000795 -S31540013FF0981720B0DA006004C203200480A3400170 -S31540014000028008871B0000707FFFB47D901020114D -S31540014010C025A1C09016E0E0921660F07FFFF675CC -S3154001402094152120C205A1C01B0000708208400DD5 -S315400140301900002080A0400C23100080028000045B -S31540014040211001447FFFB46E901020119414212059 -S31540014050C02461C09015E0C87FFFF6669207BFF0A5 -S31540014060C205E0C8DA04212080A34001941421202E -S31540014070128000078215E0C8DA02A004C20060047B -S3154001408080A340010280086F010000007FFFB45CFD -S31540014090901020119015E0C89207BFE87FFFF655B2 -S315400140A094152120C205E0C8DA05212080A34001EC -S315400140B082152120128000079815E0C8DA006004B5 -S315400140C0C203200480A3400102800863010000006E -S315400140D07FFFB44B901020119015E0C89216E0E096 -S315400140E07FFFF64494152120C205E0C8DA05212058 -S315400140F080A3400182152120128000079815E0C84F -S31540014100DA006004C203200480A3400102800857FC -S31540014110010000007FFFB43A901020119015E0C8CD -S31540014120921000087FFFF63394152120C205E0C89E -S31540014130DA05212080A34001821521201280000743 -S315400141409815E0C8DA006004C203200480A3400148 -S31540014150028007F3010000007FFFB429901020116F -S3154001416003100085921060B89015E0C87FFFF621D4 -S3154001417094152120C20720B0DA05212080A34001F1 -S315400141808215212012800007981720B0DA006004BA -S31540014190C203200480A34001028007E61B00007091 -S315400141A07FFFB417901020119015E0C8921660F069 -S315400141B07FFFF61094152120C205A1C03100007081 -S315400141C0820840183B00002080A0401D2310014476 -S315400141D002800004211000807FFFB4099010201155 -S315400141E019100085901320B89207BFF07FFFF601A2 -S315400141F094146120C20421C0AA16201F3500001064 -S3154001420082084015A616A01080A040130280000423 -S31540014210251000857FFFB3FA90102011C02421C0DC -S315400142209014A0B89207BFE87FFFF5F2941461207D -S31540014230C20421C08208401580A0401302800004B8 -S31540014240010000007FFFB3EE90102011C02421C071 -S315400142509014A0B89216E0E07FFFF5E69414612031 -S31540014260C20421C08208401580A040130280000587 -S31540014270131000857FFFB3E29010201113100085C3 -S31540014280C02421C0921260C89014A0B87FFFF5D90E -S3154001429094146120C20421C08208401580A04013B5 -S315400142A0028000059014A0B87FFFB3D5901020116D -S315400142B09014A0B8C02421C0921000087FFFF5CD0C -S315400142C094146120C20421C08208401580A0401385 -S315400142D002800005131000857FFFB3C9901020119D -S315400142E013100085C02421C09014A0B8921260F02A -S315400142F07FFFF5C094146120C20421C08208401892 -S3154001430080A0401D2280000515203E837FFFB3BC5F -S315400143109010201115203E83170021C89412A3FF47 -S315400143209612E3A1191FC0001B00C0009A1360B08A -S3154001433098132102D43FBFD0D83FBFD8C02421C053 -S315400143409007BFD89207BFD07FFFF5AA9407BFC891 -S31540014350DA07BFC8033FFC0080A340010280070B78 -S31540014360A207BFC87FFFB3A6901020111510868300 -S31540014370170021C89412A3FF9612E3A11900400029 -S315400143801B00C0009A1360B098132102D43FBFD0DE -S31540014390D83FBFD8C025A1C09007BFD89207BFD08C -S315400143A07FFFF5949407BFC8DA046004C207BFC80B -S315400143B08090400D1280000A1B000070C205A1C00A -S315400143C09A13601F190000108208400D98132004AB -S315400143D080A0400C22800005150FFC007FFFB388AA -S315400143E090102011150FFC00170281D89412A0409D -S315400143F09612E10C9A102010190006AFD43FBFD097 -S31540014400D83FBFD8C025A1C09007BFD89207BFD01B -S315400144107FFFF5789407BFC8030006AEDA07BFC829 -S315400144208210639580A340011280000703003A9AE7 -S31540014430DA0460048210630F80A3400102800733CF -S31540014440010000007FFFB36E90102011150FFFFF92 -S31540014450170281D89412A3409612E10C9A102010AB -S31540014460190006AFD43FBFD0D83FBFD8C025A1C0A1 -S315400144709007BFD89207BFD07FFFF55E9407BFC8AC -S31540014480DA046004C207BFC88090400D1280000A5A -S315400144901B000070C205A1C09A13601F19000010CD -S315400144A08208400D9813200480A0400C028000042D -S315400144B0010000007FFFB35290102011C025A1C01A -S315400144C0111088007FFFF63713100100031066C9EB -S315400144D0821062CA80A2000112800006010000001B -S315400144E0C205A1C080A06000028000051111BBFE7B -S315400144F07FFFB343901020111111BBFE901223FF91 -S315400145007FFFF628130C7040031527CA8210611EDF -S3154001451080A200011280000601000000C205A1C070 -S3154001452080A06000028000051310C7FF7FFFB334EF -S31540014530901020111310C7FF921263FC7FFFF619EA -S31540014540111E607E031D73FC8210633880A2000138 -S315400145501280000601000000C205A1C080A06000D3 -S3154001456002800005130FE0007FFFB3259010201154 -S31540014570130FE000921260017FFFF60A110020003E -S3154001458080A220001280000A1B000070C205A1C053 -S315400145909A13601F190000108208400D98132004D9 -S315400145A080A0400C02800005110FE0007FFFB3148C -S315400145B090102011110FE000C025A1C07FFFF5F931 -S315400145C092100008030FE00080A20001128000064D -S315400145D001000000C205A1C080A060000280000564 -S315400145E0130FE0007FFFB30690102011130FE00078 -S315400145F0921260017FFFF5EB1100200080A220009E -S315400146001280000A1B000070C205A1C09A13601FE8 -S31540014610190000108208400D9813200480A0400C18 -S31540014620028000051B1000857FFFB2F59010201116 -S315400146301B100085921360E8C025A1C09007BFF00A -S315400146407FFFF4DE9415212019100085C20320E86E -S31540014650DA05212080A3400182152120128000071E -S31540014660981320E8DA006004C203200480A34001C5 -S31540014670028006BA010000007FFFB2E190102012CD -S315400146801B100085921360D09007BFF07FFFF4CBDB -S315400146909415212019100085C20320D0DA05212066 -S315400146A080A340018215212012800007981320D053 -S315400146B0DA006004C203200480A34001028006ACF4 -S315400146C0010000007FFFB2CE901020129007BFF08C -S315400146D09215E0C87FFFF4B994152120C205E0C8C0 -S315400146E0DA05212080A3400182152120128000078E -S315400146F09815E0C8DA006004C203200480A3400193 -S31540014700028006A0010000007FFFB2BD901020127A -S315400147101B100085921360B89007BFF07FFFF4A786 -S3154001472094152120C20720B0DA05212080A340013B -S315400147308215212012800007981720B0DA00600404 -S31540014740C203200480A34001028006931B0000702F -S315400147507FFFB2AB901020129007BFF0921660F027 -S315400147607FFFF49694152120C205A1C01B0000705D -S315400147708208400D1900002080A0400C2110014400 -S3154001478002800004231000807FFFB29D901020120A -S3154001479094142120C02461C09007BFE87FFFF487AD -S315400147A09207BFF0DA042120C207BFE880A3400187 -S315400147B01280000794142120DA02A004C207BFEC3C -S315400147C080A34001028006DE010000007FFFB28C1B -S315400147D0901020120310008519100085901060E892 -S315400147E0921320D87FFFF47594152120C20720B07B -S315400147F0DA05212080A3400182152120128000077D -S31540014800981720B0DA006004C203200480A3400157 -S31540014810028006D01B0000707FFFB27990102012F3 -S31540014820C025A1C09007BFE89215E0C87FFFF46399 -S3154001483094152120C205E0C8DA05212080A3400154 -S3154001484082152120128000079815E0C8DA0060041D -S31540014850C203200480A34001028006C70100000074 -S315400148607FFFB267901024991B100085921360B8A0 -S315400148709007BFE87FFFF45194152120C20720B06D -S31540014880DA05212080A340018215212012800007EC -S31540014890981720B0DA006004C203200480A34001C7 -S315400148A0028006BA1B0000707FFFB255901020129D -S315400148B09007BFE8921660F07FFFF44094152120DF -S315400148C0C205A1C01B0000708208400D19000020DE -S315400148D080A0400C21100144028000042310008076 -S315400148E07FFFB2479010201294142120C02461C04A -S315400148F09016E0E07FFFF4319207BFF0C206E0E098 -S31540014900DA04212080A3400194142120128000075B -S315400149108216E0E0DA02A004C200600480A34001EE -S31540014920028006A4010000007FFFB23590102012DC -S315400149309016E0E09207BFE87FFFF420941521200E -S31540014940C20720B0DA05212080A34001821521202B -S3154001495012800007981720B0DA006004C2032004D1 -S3154001496080A34001028006981B0000707FFFB2249D -S3154001497090102012C025A1C09016E0E09215E0C823 -S315400149807FFFF40E94152120C205E0C8DA052120E7 -S3154001499080A3400182152120128000079815E0C8A6 -S315400149A0DA006004C203200480A340010280068F1E -S315400149B0010000007FFFB212901020120310008503 -S315400149C0921060B89016E0E07FFFF3FC9415212029 -S315400149D0C20720B0DA05212080A34001821521209B -S315400149E012800007981720B0DA006004C203200441 -S315400149F080A34001028006821B0000707FFFB20047 -S31540014A00901020129016E0E0921660F07FFFF3EBD3 -S31540014A1094152120C205A1C01B0000708208400DDB -S31540014A201900002080A0400C21100144028000049E -S31540014A30231000807FFFB1F29010201294142120A0 -S31540014A40C02461C09015E0C87FFFF3DC9207BFF038 -S31540014A50C205E0C8DA04212080A340019414212034 -S31540014A60128000078215E0C8DA02A004C200600481 -S31540014A7080A340010280061E010000007FFFB1E0D5 -S31540014A80901020129015E0C89207BFE87FFFF3CB44 -S31540014A9094152120C205E0C8DA05212080A34001F2 -S31540014AA082152120128000079815E0C8DA006004BB -S31540014AB0C203200480A340010280061201000000C7 -S31540014AC07FFFB1CF901020129015E0C89216E0E01A -S31540014AD07FFFF3BA94152120C205E0C8DA052120EB -S31540014AE080A3400182152120128000079815E0C855 -S31540014AF0DA006004C203200480A340010280060656 -S31540014B00010000007FFFB1BE901020129015E0C851 -S31540014B10921000087FFFF3A994152120C205E0C831 -S31540014B20DA05212080A34001821521201280000749 -S31540014B309815E0C8DA006004C203200480A340014E -S31540014B40028005FA010000007FFFB1AD90102012EE -S31540014B50191000859015E0C8921320B87FFFF3978E -S31540014B609415212003000070A610601FDA05A1C02C -S31540014B70030000109A0B4013AA10601080A3401541 -S31540014B802510008523100144028000042110008075 -S31540014B907FFFB19B90102012C02421C09014A0B871 -S31540014BA09207BFF07FFFF38594146120C20421C0B0 -S31540014BB08208401380A040150280000401000000D5 -S31540014BC07FFFB18F90102012C02421C09014A0B84D -S31540014BD09207BFE87FFFF37994146120C20421C094 -S31540014BE08208401380A040150280000401000000A5 -S31540014BF07FFFB18390102012C02421C09014A0B829 -S31540014C009216E0E07FFFF36D94146120C20421C047 -S31540014C108208401380A040150280000513100085CC -S31540014C207FFFB1779010201213100085C02421C058 -S31540014C30921260C89014A0B87FFFF360941461206B -S31540014C40C20421C08208401380A04015028000059D -S31540014C509014A0B87FFFB16A901020129014A0B8AA -S31540014C60C02421C0921000087FFFF35494146120A0 -S31540014C70C20421C08208401380A04015028000046E -S31540014C80010000007FFFB15E90102012C02421C0B8 -S31540014C909014A0B8921660F07FFFF34894146120F7 -S31540014CA0C20421C08330600E8208600380A0600286 -S31540014CB0228000051103C0007FFFB15190102012E0 -S31540014CC01103C0007FFFF57F3B100084A41763905A -S31540014CD0AA146120C02421C0A604A008A210200065 -S31540014CE0B0102005A00440129204401394152120CF -S31540014CF07FFFF33290100010DA042010C205212004 -S31540014D00A204601880A3400112800007901020126F -S31540014D10DA042014C205600480A3400102800474B1 -S31540014D20010000007FFFB13601000000B0863FFF61 -S31540014D303CBFFFEEA00440121110008590122020C6 -S31540014D40920220087FFFF31D941521209817639046 -S31540014D50C2052120DA0320A080A34001128000076A -S31540014D6082152120DA0320A4C200600480A34001F9 -S31540014D70028004DC1B0000707FFFB12190102012DD -S31540014D801110008590122038C025A1C0920220083A -S31540014D907FFFF30A9415212098176390C2052120BD -S31540014DA0DA0320B880A34001128000078215212032 -S31540014DB0DA0320BCC200600480A340010280047F64 -S31540014DC01B0000707FFFB10E90102012111000855C -S31540014DD090122050C025A1C0920220087FFFF2F711 -S31540014DE09415212098176390C2052120DA0320D01B -S31540014DF080A340011280000782152120DA0320D4C6 -S31540014E00C200600480A34001028004761B0000704A -S31540014E107FFFB0FB90102012111000859012206880 -S31540014E20C025A1C0920220087FFFF2E494152120FB -S31540014E3098176390C2052120DA0320E880A3400138 -S31540014E401280000782152120DA0320ECC20060049B -S31540014E5080A340010280046D1B0000707FFFB0E813 -S31540014E60901020121110008590122080C025A1C0FB -S31540014E70920220087FFFF2D1941521209817639062 -S31540014E80C2052120DA03210080A3400112800007D8 -S31540014E9082152120DA032104C200600480A3400167 -S31540014EA0028004641B0000707FFFB0D59010201271 -S31540014EB0C025A1C0111010007FFFF3B013100000F0 -S31540014EC00310300080A2000112800006010000009C -S31540014ED0C205A1C080A0600002800005111FE0004C -S31540014EE07FFFB0C790102012111FE0001310000081 -S31540014EF07FFFF2B794152120031FFC00DA0521201C -S31540014F0080A340011280000A82152120C20060045C -S31540014F1080A060001280000601000000C205A1C009 -S31540014F2080A0600002800005111FE0007FFFB0B441 -S31540014F309010201B111FE000133000007FFFF2A4E8 -S31540014F4094152120033FFC00DA05212080A340016E -S31540014F501280000A82152120C200600480A06000F0 -S31540014F601280000601000000C205A1C080A06000B9 -S31540014F7002800005111000007FFFB0A19010201C97 -S31540014F8011100000921020107FFFF29194152120FC -S31540014F90C205A1C01B0000708208400D1900002007 -S31540014FA080A0400C2110014402800004231000809F -S31540014FB07FFFB0939010201D94142120C02461C01E -S31540014FC0110020007FFFF282130FC000DA04212076 -S31540014FD0030E000080A340011280000A9414212090 -S31540014FE0C202A00480A060001280000601000000F9 -S31540014FF0C20461C080A0600002800005111FDFFF6E -S315400150007FFFB07F9010201E111FDFFF901223FFFC -S31540015010131000007FFFF26E941521200311FFFF4C -S31540015020821063FFDA05212080A340011280000728 -S3154001503082152120DA0060040338000080A3400174 -S3154001504002800405010000007FFFB06D9010201F13 -S31540015050111FD000130FF0007FFFF25D9415212040 -S315400150600311FC80DA05212080A340011280000A49 -S3154001507082152120C200600480A0600012800006D3 -S3154001508001000000C205A1C080A0600002800005A9 -S31540015090111FDFFF7FFFB05A90102021111FDFFF44 -S315400150A0901223FF921000087FFFF24994152120A8 -S315400150B00313FBFF821063FFDA05212080A3400121 -S315400150C01280000882152120DA00600403300000B6 -S315400150D08210602080A34001028003E401000000A9 -S315400150E07FFFB047901020207FFFF4761103C00068 -S315400150F0C025A1C09007BFE07FFFF2449215212051 -S31540015100C207BFE0DA05212080A3400112800007D3 -S3154001511082152120DA006004C207BFE480A3400162 -S31540015120028003D7010000007FFFB03590102013A5 -S315400151301B100085901360E87FFFF2349215212001 -S3154001514003100085DA0060E8C205212080A0400DE9 -S31540015150191000858215212012800007901320E83E -S31540015160DA006004C202200480A34001028003C920 -S31540015170010000007FFFB022901020131B10008514 -S31540015180901360D07FFFF2219215212019100085DE -S31540015190C20320D0DA05212080A3400182152120B7 -S315400151A012800007981320D0DA006004C20320045D -S315400151B080A34001028003BC010000007FFFB010C4 -S315400151C0901020131B100085901360D87FFFF20FBB -S315400151D092152120C20720B0DA05212080A3400183 -S315400151E08215212012800007981720B0DA0060044A -S315400151F0C203200480A34001028003B01B0000705B -S315400152007FFFAFFF9010201303100085901060B808 -S31540015210C025A1C07FFFF1FD92152120C20720B014 -S31540015220DA05212080A34001821521201280000742 -S31540015230981720B0DA006004C203200480A340011D -S315400152400280040F1B0000707FFFAFED901020130A -S31540015250C025A1C09015E0C87FFFF1EC9215212031 -S31540015260C2052120DA05E0C880A0400D8215212023 -S31540015270128000079015E0C8DA006004C2022004DB -S3154001528080A3400102800407010000007FFFAFDCDC -S3154001529090102013170C00089A10200019100C00CA -S315400152A015300F789612E001D83FBFF0D43FBFC00A -S315400152B09007BFF07FFFF1D592152120031004001E -S315400152C0DA05212080A340011280000A821521209F -S315400152D0C200600480A06000128000060100000048 -S315400152E0C205A1C080A06000028000059007BFC032 -S315400152F07FFFAFC3901020139007BFC07FFFF1C35C -S3154001530092152120C2052120DA0720B080A0400D48 -S315400153108215212012800007981720B0DA00600418 -S31540015320C203200480A34001028003E31B000070F6 -S315400153307FFFAFB390102013901660F07FFFF1B35B -S3154001534092152120C205A1C08330600E82086003F8 -S3154001535080A0600202800004211000807FFFAFA878 -S3154001536090102013C02421C07FFFF2981111F20042 -S315400153700310E80080A2000112800006010000002F -S31540015380C20421C080A06000028000040100000028 -S315400153907FFFAF9B901020137FFFF3CA11100000CF -S315400153A01101F5897FFFF289901221E20308E96430 -S315400153B080A200011280000601000000C205A1C0C2 -S315400153C080A0600002800004010000007FFFAF8CD6 -S315400153D0901020237FFFF27D1112A2080311410094 -S315400153E080A200011280000601000000C205A1C092 -S315400153F080A0600002800004010000007FFFAF80B2 -S31540015400901020237FFFF3AF110010009007BFF0EB -S31540015410921660F07FFFF1649415212003100C0071 -S31540015420DA05212080A340011280000A821521203D -S31540015430C200600480A060001280000601000000E6 -S31540015440C205A1C080A0600002800005901660F0F0 -S315400154507FFFAF6B90102014901660F09207BFC08B -S315400154607FFFF1569415212003200000DA05212003 -S3154001547080A340011280000A82152120C2006004E7 -S3154001548080A060001280000601000000C205A1C094 -S3154001549080A0600002800004010000007FFFAF5839 -S315400154A0901020147FFFF19190102001030FE0002E -S315400154B080A200011280000601000000C205A1C0C1 -S315400154C080A0600002800004010000007FFFAF4C15 -S315400154D0901020147FFFF17D90102001030FFC00F6 -S315400154E080A200011280000880A26000128000069E -S315400154F001000000C205A1C080A060000280000436 -S31540015500010000007FFFAF3E901020147FFFF36D36 -S315400155101110100019100085D41B20D07FFFF1F91E -S31540015520D01E60F003100085D03D2120DA0060D8FE -S31540015530C205212080A0400D191000858215212029 -S3154001554012800007901320D8DA006004C2022004BA -S3154001555080A3400102800361010000007FFFAF2864 -S31540015560901020227FFFF35711100000170400808E -S31540015570150F28009612E0F09A102000190FFC0032 -S31540015580D43FBFC0D83FBFF09007BFF09207BFC01E -S315400155907FFFF10594152120030FFC00DA05212038 -S315400155A080A340011280000682152120C2006004BA -S315400155B080A0600002800004010000007FFFAF1060 -S315400155C0901020157FFFF33F112000001700004087 -S315400155D0150014009612E0019A102000190FFC00E4 -S315400155E0D43FBFC0D83FBFF09007BFF09207BFC0BE -S315400155F07FFFF0ED94152120030FFC00DA052120F1 -S3154001560080A340011280000682152120C200600459 -S3154001561080A0600102800004010000007FFFAEF817 -S31540015620901020157FFFF32711300000170000402E -S31540015630152014009612E0019A102000192FFC0043 -S31540015640D43FBFC0D83FBFF09007BFF09207BFC05D -S315400156507FFFF0D594152120032FFC00DA05212088 -S3154001566080A340011280000682152120C2006004F9 -S3154001567080A0600102800004010000007FFFAEE0CF -S31540015680901020157FFFF30F11100000190FFC0039 -S315400156909A102000D83FBFF09007BFF09216E0E085 -S315400156A07FFFF0C194152120C206E0E0DA052120F2 -S315400156B080A3400182152120128000079816E0E060 -S315400156C0DA006004C203200480A340010280000482 -S315400156D0010000007FFFAECA901020157FFFF2F94E -S315400156E01120000017000040150014009612E00139 -S315400156F0190FFC009A102000D43FBFC0D83FBFF01D -S315400157009007BFF09216E0E07FFFF0A794152120A5 -S31540015710C206E0E0DA05212080A34001821521205E -S31540015720128000079816E0E0DA006004C203200404 -S3154001573080A3400102800004010000007FFFAEB05B -S31540015740901020157FFFF2DF113000001700004056 -S31540015750152014009612E0019A102000192FFC0022 -S31540015760D43FBFC0D83FBFF09007BFF09216E0E0EC -S315400157707FFFF08D94152120C2052120DA06E0E055 -S3154001578080A0400D82152120128000079016E0E08E -S31540015790DA006004C202200480A3400102800004B2 -S315400157A0010000007FFFAE96901020157FFFF2C5E5 -S315400157B01110000015100000961020019A102001CA -S315400157C0190FFC00D43FBFC0D83FBFF09007BFF0D0 -S315400157D09207BFC07FFFF079941521200310000086 -S315400157E0DA05212080A3400112800006821521207E -S315400157F0C200600480A06002028000040100000033 -S315400158007FFFAE7F901020157FFFF2AE1120000082 -S315400158109007BFF09207BFC07FFFF0689415212023 -S3154001582003100000DA05212080A340011280000602 -S3154001583082152120C200600480A06003028000041A -S31540015840010000007FFFAE6E901020157FFFF29D94 -S31540015850113000009A102001192FFC00D83FBFF0EB -S315400158609007BFF09207BFC07FFFF05494152120E7 -S3154001587003300000DA05212080A340011280000692 -S3154001588082152120C200600480A0600302800004CA -S31540015890010000007FFFAE5A901020157FFFF2896C -S315400158A011100000150FFC04172F26159412A01293 -S315400158B09612E231190FFEAE1B1CD2E89A13601103 -S315400158C098132154D43FBFC0D83FBFF09007BFF0D3 -S315400158D09207BFC07FFFF04794152120030FFEA713 -S315400158E082106296DA05212080A3400112800008C9 -S315400158F082152120DA006004032C1B348210602FAC -S3154001590080A3400102800004010000007FFFAE3CFD -S31540015910901020157FFFF26B112000009007BFF019 -S315400159209207BFC07FFFF03394152120030FFEA7D6 -S3154001593082106296DA05212080A340011280000878 -S3154001594082152120DA006004032C1B34821060305A -S3154001595080A3400102800004010000007FFFAE28C1 -S31540015960901020157FFFF25711300000192FFC04CB -S315400159701B2F26159A13623198132012D83FBFC0A8 -S315400159809007BFF09207BFC07FFFF01A9415212000 -S31540015990032FFEA782106296DA05212080A34001DB -S315400159A01280000882152120DA006004032C1B3482 -S315400159B08210603080A34001028000040100000093 -S315400159C07FFFAE0F901020157FFFF23E11100000B1 -S315400159D015101000961020009A102000191038005A -S315400159E0D43FBFC0D83FBFF09007BFF09207BFC0BA -S315400159F07FFFF0009415212003102400DA052120B1 -S31540015A0080A340011280000682152120C200600455 -S31540015A1080A0600002800004010000007FFFADF815 -S31540015A20901020157FFFF227112000009007BFF04C -S31540015A309207BFC07FFFEFEF94152120031024008A -S31540015A40DA05212080A3400112800006821521201B -S31540015A50C200600480A060000280000401000000D2 -S31540015A607FFFADE7901020157FFFF2161130000041 -S31540015A709007BFF09207BFC07FFFEFDE941521204C -S31540015A8003102400DA05212080A34001128000067C -S31540015A9082152120C200600480A0600002800004BB -S31540015AA0010000007FFFADD6901020157FFFF20563 -S31540015AB011100000210FE000110020007FFFF0B916 -S31540015AC09214200180A220001280012301000000CF -S31540015AD07FFFF1FC11200000110020007FFFF0B193 -S31540015AE09214200180A220001280011801000000BA -S31540015AF07FFFF1F411300000921420017FFFF0A9DD -S31540015B001100200080A220001280010D010000003A -S31540015B107FFFF1EC111000009A102000190FFC00D4 -S31540015B20D83FBFF09007BFF07FFFEFB89215212015 -S31540015B30C207BFF0DA05212080A340011280000789 -S31540015B4082152120DA006004C207BFF480A3400118 -S31540015B50028002A7010000007FFFADA99010201529 -S31540015B607FFFF1D8112000009007BFF07FFFEFA71C -S31540015B7092152120C207BFF0DA05212080A34001FA -S31540015B801280000782152120DA006004C207BFF4A3 -S31540015B9080A340010280029B010000007FFFAD9877 -S31540015BA0901020157FFFF1C7113000009007BFF01C -S31540015BB07FFFEF9692152120C207BFF0DA0521201B -S31540015BC080A340011280000782152120DA0060047B -S31540015BD0C207BFF480A340010280028F010000008A -S31540015BE07FFFAD87901020157FFFF1B611100000A1 -S31540015BF0030FDFFF901063FF7FFFF074A0100008D2 -S31540015C0080A2001002800004010000007FFFAD7CED -S31540015C10901020157FFFF1AB112000007FFFF06B44 -S31540015C2090100010030FE00080A2000102800004E2 -S31540015C30010000007FFFAD72901020157FFFF1A19A -S31540015C40113000007FFFF0619010001080A200101B -S31540015C5002800004010000007FFFAD69901020150D -S31540015C607FFFF198901020007FFFF0609015212072 -S31540015C70032FFE00DA05212080A340011280000691 -S31540015C8082152120C200600480A0600002800005C8 -S31540015C90211001447FFFAD5A901020162110014476 -S31540015CA07FFFF05C90142128DA042128032FF000AD -S31540015CB080A3400102800004A21421287FFFAD5039 -S31540015CC0901020167FFFF05D90100011DA04212814 -S31540015CD0030FE00080A340010280000401000000A0 -S31540015CE07FFFAD47901020167FFFF064901521206D -S31540015CF0030FFBF7821063F0DA05212080A34001F0 -S31540015D001280000882152120DA0060040303FF1285 -S31540015D108210604A80A3400102800005921660F01D -S31540015D207FFFAD3790102016921660F09007BFF0B6 -S31540015D307FFFEF3094152120C205A1C08330600E4C -S31540015D408208600780A060020280000519100046A3 -S31540015D507FFFAD2B901020171910004617100080B9 -S31540015D60DA02E1C8821321F880A0400DE00321F850 -S31540015D7002800004A212E1C87FFFAD2190102018D5 -S31540015D80C204600480A040100280000401000000AB -S31540015D907FFFAD1B90102018C204600880A06000F0 -S31540015DA01280007701000000C204600C80A06000F0 -S31540015DB01280006C010000007FFFEEE6010000004A -S31540015DC080A220010280019801000000190C40299F -S31540015DD01B23CD1B9A13609B981320069410200019 -S31540015DE096102000D83FBFF0D43FBFC07FFFEF2FB2 -S31540015DF09007BFF003100083A21062101B100081B0 -S31540015E0003100144A0136210A4106120B0102000B9 -S31540015E10832E2002DA044001DA27BFC09007BFC0B3 -S31540015E207FFFEF25921521209B2E2003D804000DDC -S31540015E30C2052120B00620019603401080A300012F -S31540015E401280000790102019DA02E004C204A0046F -S31540015E5080A340010280000580A620FF7FFFACE8B9 -S31540015E600100000080A620FF04BFFFEB832E200225 -S31540015E7003100083A41062101B100080031001441C -S31540015E80A2136210A6106120B0102000A12E20029C -S31540015E90C2048010C227BFC0921521207FFFEEDBCE -S31540015EA09007BFC0DA044010C2052120B006200287 -S31540015EB09804001180A34001128000079010201A17 -S31540015EC0DA032004C204E00480A3400102800005F5 -S31540015ED080A620FF7FFFACCA0100000080A620FFFC -S31540015EE024BFFFECA12E200230800211C205A1C0C1 -S31540015EF080A0600022BFFB8FB0863FFF30BFFB8A88 -S31540015F00C205A1C080A0600002BFF14501000000AA -S31540015F1030BFF141C205A1C080A0600002BFF13689 -S31540015F200100000030BFF132C205A1C080A060006F -S31540015F3002BFF1270100000030BFF1237FFFACB063 -S31540015F409010201530BFFEF37FFFACAD90102015A9 -S31540015F5030BFFEE87FFFACAA9010201530BFFEDDB2 -S31540015F607FFFACA79010201830BFFF947FFFACA4F1 -S31540015F709010201010BFF678111000847FFFACA05E -S31540015F809010201830BFFF89C207BFCC80A06000A7 -S31540015F9012BFF8F501000000C20421C08208401575 -S31540015FA09A16A00880A0400D12BFF8EF010000002C -S31540015FB010BFF8F015108683C205A1C09A13601F61 -S31540015FC0190000108208400D9813200880A0400C4B -S31540015FD012BFFB7D1110008510BFFB7F9012205030 -S31540015FE0C205A1C09A13601F190000108208400D16 -S31540015FF09813200880A0400C12BFFB861110008523 -S3154001600010BFFB8890122068C205A1C09A13601F79 -S31540016010190000108208400D9813200480A0400CFE -S3154001602012BFFB8F1110008510BFFB91901220808B -S31540016030C205A1C09A13601F190000108208400DC5 -S315400160409813200880A0400C12BFFB980100000065 -S3154001605030BFFB98C205A1C080A0600002BFFBFE15 -S31540016060111FD00030BFFBF9C205A1C080A060005E -S3154001607002BFFC1E0100000030BFFC1AC205A1C0D0 -S3154001608080A0600002BFFC2C1B10008530BFFC279E -S31540016090C205A1C080A0600002BFFC3A1B1000856A -S315400160A030BFFC35C205A1C080A0600002BFFC47DD -S315400160B01B10008530BFFC42C205A1C09A13601F68 -S315400160C0190000108208400D9813201080A0400C42 -S315400160D012BFFC4C0310008510BFFC4E901060B8F7 -S315400160E0C205A1C09A13601F190000108208400D15 -S315400160F09813200480A0400C12BFFB20111000858C -S3154001610010BFFB2290122038C205A1C080A06000BA -S3154001611022BFF8D0150FFFFF30BFF8CBC205A1C093 -S3154001612080A0600002BFF8100310008530BFF80B55 -S31540016130C205A1C09A13601F190000108208400DC4 -S315400161409813201080A0400C12BFF8169015E0C895 -S3154001615010BFF818921660F0C205A1C080A0600079 -S3154001616002BFF9491B10008530BFF944C205A1C0E1 -S3154001617080A0600002BFF9579007BFF030BFF952C7 -S31540016180C205A1C080A0600002BFF9631B10008553 -S3154001619030BFF95EC205A1C09A13601F19000010F5 -S315400161A08208400D9813201080A0400C12BFF96957 -S315400161B09007BFF010BFF96B921660F0C20461C040 -S315400161C080A0600002BFF74B1B10008530BFF74629 -S315400161D0C205A1C080A0600002BFF75A9016E0E058 -S315400161E030BFF755C205A1C09A13601F19000010B0 -S315400161F08208400D9813201080A0400C12BFF75F13 -S315400162000100000030BFF75FC205A1C080A0600059 -S3154001621002BFF76F1B10008530BFF76AC205A1C0E8 -S315400162209A13601F190000108208400D9813201020 -S3154001623080A0400C12BFF7750100000030BFF77512 -S31540016240C20461C080A0600002BFF7949015E0C807 -S3154001625030BFF78FC205A1C080A0600002BFF7A082 -S315400162609015E0C830BFF79BC205A1C080A0600071 -S3154001627002BFF7AC9015E0C830BFF7A7C205A1C071 -S315400162809A13601F190000108208400D98132010C0 -S3154001629080A0400C12BFFBED0100000030BFFBEDBA -S315400162A0C205A1C080A0600002BFFBFC170C00081C -S315400162B030BFFBF7C205A1C09A13601F1900001039 -S315400162C08208400D9813201080A0400C12BFFC1983 -S315400162D0901660F030BFFC1AC205A1C080A06000D4 -S315400162E002BFFCA10100000030BFFC9DC20461C099 -S315400162F080A0600002BFF9E59015E0C830BFF9E023 -S31540016300C205A1C080A0600002BFF9F19015E0C8A6 -S3154001631030BFF9ECC205A1C080A0600002BFF9FD03 -S315400163209015E0C830BFF9F8C205A1C080A0600051 -S3154001633002BFFA091910008530BFFA04C20461C0D0 -S3154001634080A0600002BFF9250310008530BFF92007 -S31540016350C205A1C09A13601F190000108208400DA2 -S315400163609813201080A0400C12BFF92C01000000A8 -S3154001637030BFF92CC205A1C080A0600002BFF93C24 -S315400163801B10008530BFF937C205A1C09A13601FA3 -S31540016390190000108208400D9813201080A0400C6F -S315400163A012BFF9429007BFE810BFF944921660F058 -S315400163B0C20461C080A0600002BFF95F9016E0E0B0 -S315400163C030BFF95AC205A1C09A13601F19000010C7 -S315400163D08208400D9813201080A0400C12BFF9642A -S315400163E00100000030BFF964C205A1C080A0600071 -S315400163F002BFF9740310008530BFF96FC205A1C011 -S315400164009A13601F190000108208400D981320103E -S3154001641080A0400C12BFF97A9016E0E010BFF97CDB -S31540016420921660F07FFFAB769010201910BFFE697F -S31540016430190C4029D80061C01B0000709A13601FD7 -S3154001644003000010980B000D8210600880A3000124 -S3154001645012BFF5501110008410BFF55290122360FF -S31540016460C205A1C09A13601F190000108208400D91 -S315400164709813200480A0400C12BFF55811100084D7 -S3154001648010BFF55A90122378C205A1C09A13601F16 -S31540016490190000108208400D9813200480A0400C7A -S315400164A012BFF5600100000030BFF560C205A1C012 -S315400164B080A0600002BFF4A90310008530BFF4A498 -S315400164C0C205A1C080A0600002BFF4939015E0C848 -S315400164D030BFF48EC205A1C080A0600002BFF47D2A -S315400164E09015E0C830BFF478C20461C080A0600056 -S315400164F002BFF4679015E0C830BFF462C205A1C07F -S315400165009A13601F190000108208400D981320024B -S3154001651080A0400C12BFF5B61B10008510BFF5B820 -S31540016520921360D0C205A1C080A0600002BFF5C52C -S315400165309007BFF030BFF5C0C205A1C080A0600082 -S3154001654002BFF5D10310008530BFF5CCC205A1C00D -S315400165509A13601F190000108208400D98132010ED -S3154001656080A0400C12BFF5D79007BFF010BFF5D9F8 -S31540016570921660F0C20461C080A0600022BFF5F3AC -S315400165801910008530BFF5EEC205A1C09A13601FF0 -S31540016590190000108208400D9813201080A0400C6D -S315400165A012BFF5F91B10008510BFF5FB03100085DE -S315400165B0C205A1C080A0600002BFF60B9007BFE8EC -S315400165C030BFF606C205A1C080A0600002BFF61723 -S315400165D01B10008530BFF612C20421C080A06000A6 -S315400165E022BFF03E113C02AF30BFF039C205A1C017 -S315400165F080A0600002BFFD5B0100000030BFFD5777 -S31540016600C205A1C080A0600002BFFD670100000075 -S3154001661030BFFD63C205A1C080A0600002BFFD730B -S315400166200100000030BFFD6FC205A1C080A060001F -S3154001663002BFF2D70310008530BFF2D2C205A1C016 -S3154001664080A0600002BFF2C19007BFF030BFF2BC2C -S31540016650C205A1C080A0600002BFF2AA3710008522 -S3154001666030BFF2A5C205A1C080A0600002BFF028DC -S315400166701111FC0030BFF023C205A1C09A13601F5F -S31540016680190000108208400D9813201080A0400C7C -S3154001669012BFF3DD9016E0E010BFF3DF921660F013 -S315400166A0C205A1C080A0600002BFF39E1B100085F9 -S315400166B030BFF399C205A1C080A0600002BFF38636 -S315400166C01B10008530BFF381C205A1C080A06000C8 -S315400166D002BFF36E1B10008530BFF369C20461C06F -S315400166E080A0600002BFF3589016E0E030BFF3533C -S315400166F0C205A1C080A0600002BFF30E191000853B -S3154001670030BFF309C205A1C080A0600002BFF2F804 -S315400167109007BFE830BFF2F3C20461C080A06000B9 -S3154001672002BFF2E29007BFE830BFF2DD81C7E00861 -S3154001673081E80000D27A000081C3E0080100000030 -S3154001674081C3E008900A20209332600492126001CE -S315400167508213C0007FFFFFF89E1040000100000039 -S3154001676081D8200081C3E008010000009DE3BF9865 -S315400167707FFFFFFC0100000082102400C0A04300FF -S3154001678081C7E00881E80000833220189A1000088A -S315400167908088600F028000049010200083336010CF -S315400167A09008600381C3E008010000009DE3BF98A3 -S315400167B0031000C01B1000C1B0106000A21360009E -S315400167C0031000C21B1000C2A4106000A613610092 -S315400167D0031000201B100020A8106158AA13600066 -S315400167E07FFFEBAD9010200C808A2008028001FDCE -S315400167F0010000007FFFAA7D9010200ED08003206B -S315400168007FFFFFE2010000000310014380A2200246 -S31540016810028000C6D02060D080A22002148000E40D -S3154001682080A2200380A22001028000D1821020197B -S31540016830331000A02F1000A0391000A0371000A07F -S31540016840351000A07FFFFFC7210100007FFFFFC871 -S31540016850BA04A00C921000117FFFFFBC90100018E3 -S31540016860921000117FFFFFB990062004901000118D -S315400168707FFFFFB19210200ADA066014110800006A -S31540016880913A000DC205E010900A0001912A2002BA -S3154001689013008000900200117FFFFFA79212600A49 -S315400168A0DA06601411100000913A000DC205E0109D -S315400168B0900A0001912A2002900200117FFFFF9E5B -S315400168C09214208EDA066014111C0000913A000DD4 -S315400168D0C205E010900A0001912A20021301C0006E -S315400168E0900200117FFFFF949212608E9334A004B0 -S315400168F09004600C7FFFFF90921260019214201E5B -S315400169007FFFFF8D9004A0089010001D7FFFFF8A36 -S31540016910921020009334E004921260017FFFFF86BB -S315400169209004A004111000C2901221087FFFFF823B -S3154001693092102000031000E0A01060009334200460 -S31540016940111000C2901221047FFFFF7B9212601A40 -S3154001695003048D1582106278C2242004111000E0D0 -S3154001696015100120C0222000A2102003AC12A00065 -S31540016970A004E00C90047FFD40000A7392102003AE -S315400169801B100143C20360D08200600C932A0001B0 -S315400169909202401693326004901000107FFFFF660A -S315400169A09212601EA204600180A4600A04BFFFF235 -S315400169B0A0042004C206E008D807200C8208600122 -S315400169C08328400CD605E010111000E0D406A00043 -S315400169D0DA06601498122000960AE003972AC00D41 -S315400169E0920AA002111000A0DA022004940AA00122 -S315400169F0952A800D932A400D1B1000209612C00146 -S31540016A00E8236150030100001B0076418210601E9D -S31540016A109A1361C09212C00999332004C2252004F9 -S31540016A20DA2520089612C00A9E13200E913560047D -S31540016A301B1000C2031000C2821061049012201E76 -S31540016A40953620049813201E9A136108D625202CCA -S31540016A50D8252010D025201CD2252020DE2520280F -S31540016A60D6252014940ABFF0FA250000DA2520180D -S31540016A70C2252024C225200CA2102100D4A44320E3 -S31540016A80C2800320D88443209A102001A0102200FE -S31540016A90DAA40320D884032082102000C2A4032054 -S31540016AA0DAA0032081D820007FFFC55901000000EC -S31540016AB0C2800320E2844320E0840320DA05E0100B -S31540016AC0D6066014C206E0089A0B60039B2B400B66 -S31540016AD082086001D407200CD806A000111000A03E -S31540016AE08328400A980B2001D60220049A134001BC -S31540016AF0992B000B9A13400CC203400080A0600002 -S31540016B0012800008821360041B048D15D8004000D2 -S31540016B109A13627880A3000D02800038C205E01006 -S31540016B2010800000010000008210201A331000A0DE -S31540016B30C22660149810203F2F1000A0391000A0E3 -S31540016B40351000A09A1020148210200E151000A0B6 -S31540016B50371000A0DA27200CC222A004D826A000B4 -S31540016B60D825E01010BFFF38D826E0089A10207FBC -S31540016B70331000A02F1000A0C2266014DA25E010C1 -S31540016B809810203F391000A0351000A08210201324 -S31540016B909A10200D111000A0371000A0C227200C1A -S31540016BA0DA22200410BFFFF0D826A00012BFFF2230 -S31540016BB0331000A08210201CC22660149A102015A2 -S31540016BC08210207F391000A0371000A0DA27200C50 -S31540016BD0C226E0089810200F2F1000A0351000A003 -S31540016BE01B1000A08210203FD8236004C226A000BB -S31540016BF010BFFF15D825E010DA06E008D806601464 -S31540016C00820860039A0B6002D607200C8328400C49 -S31540016C109B2B400B8210400DD80040001B100000FA -S31540016C20C203400080A3000102800004D406E008AC -S31540016C301080000001000000C205E010980AA00182 -S31540016C40D207200CD6066014820860038328400BC5 -S31540016C50992B0009940AA0039810400CDA06A0006B -S31540016C60111000A0952A80099A0B6001D6022004D2 -S31540016C708210400AC20040009B2B400B9813000D26 -S31540016C800321D9509813200482106321C2230000A6 -S31540016C90DA03000080A3400102800004C206E00836 -S31540016CA01080000001000000D407200CDA05E01036 -S31540016CB082086001D60660148328400A9A0B600355 -S31540016CC0D806A0009B2B400B151000A0D602A004AD -S31540016CD0980B20019A134001992B000B9813400CF5 -S31540016CE08210000C05048D158410A278072AF37BC7 -S31540016CF08610E301C4384000C438400003048D15B2 -S31540016D00DA0300008210627880A340010280000409 -S31540016D108213200410800000010000001B2AF37B2F -S31540016D20D80040009A13630180A3000D12BFFFFAF9 -S31540016D30C205E010D6066014D806E0088208600352 -S31540016D40D407200C8328400B980B2001DA06A000BB -S31540016D50111000A0992B000A9A0B6003D602200459 -S31540016D608210400C9B2B400B15100143A010400D87 -S31540016D70F002A0D0A2102003E0240000C0A002200F -S31540016D80921020034000097090047FFD8206200C7A -S31540016D9098102001912A0001992B00011B10012016 -S31540016DA09610000182136000DA02000180A34010B0 -S31540016DB0A204600112800087A004000C80A4600A2E -S31540016DC024BFFFEFE0240000C0A0022003100120F1 -S31540016DD0A810000BAA106000A0102000A2102003EA -S31540016DE090047FFD4000095892102003832C6002D5 -S31540016DF0912A0014DA04C00190020015820B6060EA -S31540016E009132200480A000019012201EA040001063 -S31540016E109A0B7F9F900A3F9F80A340081280006F84 -S31540016E20A204600180A4600A24BFFFEF90047FFDA5 -S31540016E3080A4200012800004C205E01010800000EA -S31540016E4001000000D6066014D806E00882086003F7 -S31540016E50D407200CDA06A000111000A08328400BAD -S31540016E60980B2001992B000AD60220049A0B600246 -S31540016E708210400C9B2B400BAA10400D9FC5400031 -S31540016E800100000082102400C0A04300C0A00220DF -S31540016E90A0102000A21020039B2C6002C204C00D4A -S31540016EA08208606080A00001A0400010A204600139 -S31540016EB080A4600A24BFFFFA9B2C600280A42008AC -S31540016EC022800004D004E00410800000010000008C -S31540016ED0808A204002800007010000007FFFFE19E2 -S31540016EE00100000080A22000128000040100000081 -S31540016EF010800000010000007FFFFE12D004A008B0 -S31540016F0080A22000128000040100000010800000D1 -S31540016F10010000007FFFFE0BD004E00880A22000A4 -S31540016F2012800004010000001080000001000000F2 -S31540016F3083480000842860808188A0000100000009 -S31540016F400100000001000000D806E008D407200C2B -S31540016F50DA05E010980B2001D6066014992B000A39 -S31540016F609A0B6003C206A0009B2B400B151000A094 -S31540016F70D602A004820860018328400B9A13400C74 -S31540016F809A1340019A136004C203400092102004F0 -S31540016F9091D02002010000007FFFC41D01000000C6 -S31540016FA0981020009A102200D8A343208210200175 -S31540016FB0C2A34320D8A3432003100000DA804380B4 -S31540016FC0DAA04380D8A0032081D820003080000574 -S31540016FD01080000001000000108000000100000048 -S31540016FE081C7E00891E820009DE3BF98400007D1A2 -S31540016FF001000000808A21000280003F010000005C -S315400170007FFFA88E01000000912A20047FFFA87708 -S31540017010900220050310014082106048DA006004A6 -S3154001702080A360002280001503100140B0100001CA -S31540017030C20600009B38601F81836000DA06200487 -S3154001704001000000010000008278400DDA062008A8 -S31540017050B006200C80A0400D028000049010200153 -S315400170607FFFA86701000000C206200480A06000DF -S3154001707012BFFFF00310014082106000DA00600485 -S3154001708080A360000280001501000000B0100001DD -S31540017090C206000081800000DA06200401000000DB -S315400170A0010000009A70400D8210000DDA0620089A -S315400170B0B006200C80A0400D0280000490102002F2 -S315400170C07FFFA84F01000000C206200480A0600097 -S315400170D012BFFFF00100000040000824010000003B -S315400170E080A2200012800004010000007FFFA84416 -S315400170F09010200381C7E00891E820009DE3BF98E6 -S315400171007FFFA84E01000000912A20047FFFA83787 -S3154001711090022004400007890100000080A221233B -S3154001712002800004010000007FFFA8359010200175 -S315400171304000078001000000808A21000280002B68 -S315400171400310014082106184DA00600880A360095F -S315400171500280001101000000B0100001C2060000CB -S31540017160DA062004D80620088258400DB006200CC5 -S3154001717080A0400C02800004901020027FFFA820CE -S3154001718001000000C206200880A0600912BFFFF47A -S3154001719001000000400007760100000080A22000A7 -S315400171A00280000F0100000040000762010000005C -S315400171B0808A22000280000D010000004000079EE7 -S315400171C00100000080A2200012800008010000009A -S315400171D07FFFA80B90102004308000047FFFA80891 -S315400171E09010200330BFFFF181C7E00891E82000ED -S315400171F09DE3BFA0941020001110005C9012222440 -S315400172001310005C921262281710005C9612E2304D -S315400172101910005C9813223493C2000081C24000C9 -S315400172201080019181C2C00081C300001080018E8F -S315400172309402A0019402A00180A2A0031280018AB7 -S3154001724001000000874400008D30E00E8C89A007C4 -S3154001725080A1A000028000C701000000AF30E00B12 -S31540017260AE0DE00780A5E000128000C201000000DB -S3154001727080A1A00212800035010000002510000007 -S31540017280E41C80002510000029100000A8152104E7 -S31540017290A6100012AA100012AC100014A1802046BC -S315400172A0A4100000AA10000001000000A180204E99 -S315400172B0A810210001000000A1800000010000008B -S315400172C001000000E83CA03082A4801312800166D0 -S315400172D082A5001612800164010000000100000031 -S315400172E001000000874400008D30E00B8C89A00727 -S315400172F08CA1A0051280015CA18000000100000064 -S315400173000100000001000000E81CA03082A5001623 -S315400173101280015582A54012A4100000128001522C -S315400173200100000001000000874400008D30E00BA1 -S315400173308C89A0078CA1A0031280014B010000009B -S315400173401080008C0100000080A1A0011280002362 -S3154001735025100000E41C80002510000029100000C3 -S31540017360A8152104A6100012AA100012AC10001490 -S31540017370A1802046A4100000AA10000001000000D0 -S31540017380A180204EA810210001000000A18000002C -S31540017390010000000100000001000000E83C8000FF -S315400173A082A480131280013082A500161280012E1C -S315400173B00100000001000000874400008D30E00B11 -S315400173C08C89A0078CA1A002128001270100000030 -S315400173D0108000680100000080A1A00312800065B2 -S315400173E0A6100000A210200EA1844000A6100000A5 -S315400173F0A1800000A814E000AB4400000100000099 -S31540017400AC14E00001000000AF44000080A520005C -S3154001741012800115AA8D6E0080A5400012800112CE -S3154001742080A5A00012800110AF35E00BAE0DE0073C -S3154001743080A5E0011280010C01000000A0100000AF -S31540017440A1844000A6100000A1800000E8180000B9 -S31540017450AC100000AE100000EC04C000EE04E004E5 -S3154001746080A500161280010080A54017128000FEFB -S3154001747001000000A5440000A534A00BA40CA00700 -S3154001748080A4A001128000F801000000A0100000B5 -S31540017490A1844000A6100000A1800000A210200A8D -S315400174A0A1844000A4100000A1800000E81800005B -S315400174B0AC100000AE100000EC04C012EE04E00473 -S315400174C080A50016128000E880A54017128000E6CC -S315400174D001000000A5440000A534A00BA40CA007A0 -S315400174E080A4A002068000E00100000021100140B6 -S315400174F0A0142200EC1C0000A0042008E81C000097 -S31540017500A1844000A6100000A1800000A210200E18 -S31540017510A1844000A4100010AC100000AE10000081 -S31540017520A18000000100000001000000EC3C801336 -S31540017530AC100000AE100000E81CC01280A5001679 -S31540017540128000C980A54017128000C701000000C3 -S31540017550A5440000A534A00BA40CA00780A4A00458 -S31540017560128000C1010000001080000201000000ED -S315400175708B4440008A09601F80A160010280000A95 -S315400175808C1000059DE3BFA08AA1600116BFFFFED6 -S315400175900100000081E800008CA1A00116BFFFFE9A -S315400175A0010000000100000001000000A023A080AE -S315400175B0A02C20078E100010A3480000E2240000F2 -S315400175C0C2242004C43C2008C83C2010CC3C2018CE -S315400175D0F03C2020F43C2028F83C2030FC3C20386C -S315400175E0D03C2040D43C2048D83C2050DC3C20585C -S315400175F0A5500000E424206080102008821020015C -S315400176008410200286102003881020048A10200549 -S315400176108C10200681900000A42C601F818C800074 -S31540017620010000000100000001000000030040408D -S3154001763082106101841000008610000089444000D8 -S315400176408809201F86100004A01000028400400211 -S31540017650A210000284004002A410000284004002ED -S31540017660A610000284004002A810000284004002D5 -S31540017670AA10000284004002AC10000284004002BD -S31540017680AE100002840040029010000284004002C5 -S3154001769092100002840040029410000284004002CD -S315400176A096100002840040029810000284004002B5 -S315400176B09A100002840040029C100002840040029D -S315400176C09E1000028400400281E0000086A0E00195 -S315400176D016BFFFDE01000000030040408210610139 -S315400176E0841000008610000480A400021280003F2E -S315400176F08400400280A440021280003C8400400283 -S3154001770080A48002128000398400400280A4C00215 -S31540017710128000368400400280A5000212800033A8 -S315400177208400400280A5400212800030840040025D -S3154001773080A580021280002D8400400280A5C002EF -S315400177401280002A8400400280A200021280002793 -S315400177508400400280A2400212800024840040023C -S3154001776080A28002128000218400400280A2C002D1 -S315400177701280001E8400400280A300021280001B7A -S315400177808400400280A34002128000188400400217 -S3154001779080A38002128000158400400280A3C002AB -S315400177A0128000128400400281E0000086A0E001C0 -S315400177B016BFFFCE0100000080A020001280000B02 -S315400177C080A0FFFF1280000980A16005128000079A -S315400177D080A1A0061280000501000000A01000074C -S315400177E010800006C0242020A01000079010200120 -S315400177F010800002D024202082100007C4004000DF -S3154001780081888000010000000100000001000000A5 -S31540017810C4186008C8186010CC186018F0186020A9 -S31540017820F4186028F8186030FC186038D0186040A9 -S31540017830D4186048D8186050DC186058E40060607D -S31540017840C200600481948000010000000100000034 -S3154001785001000000A0100007F004202081C7E008C5 -S3154001786081E8000010BFFFFCB010000001000000DD -S3154001787081D8200081C3E008010000001B100144AB -S31540017880D8036150821020018328400C1B1001440B -S3154001789082007FFFD803615482084008932A400C36 -S315400178A0900040098213C0007FFFE77F9E10400091 -S315400178B0010000001B100144D803615082102001D1 -S315400178C08328400C1B10014482007FFFD80361547A -S315400178D0932A400C82084008900040099210000A01 -S315400178E08213C0007FFFE7729E1040000100000036 -S315400178F01B100144D8036150821020018328400C9B -S315400179001B10014482007FFFD8036154932A400C27 -S3154001791082084008900040099210000A8213C00074 -S315400179207FFFE7679E104000010000001B100144E5 -S31540017930D8036150821020018328400C1B1001445A -S3154001794082007FFFD803615482084008932A400C85 -S31540017950900040098213C0007FFFE7579E10400008 -S31540017960010000001B100144D803615C8210200114 -S315400179708328400C1B10014482007FFFD803616CB1 -S31540017980932A400C82084008900040099210000A50 -S315400179908213C0007FFFE74E9E10400001000000A9 -S315400179A01B100144D803615C821020018328400CDE -S315400179B01B10014482007FFFD803616C932A400C5F -S315400179C082084008900040099210000A8213C000C4 -S315400179D07FFFE7439E104000010000009DE3BF5832 -S315400179E02D100144A2102000C205A16080A44001CF -S315400179F01680001BA01020002B10014429100144C1 -S31540017A0027100144A4102001D005615C912C800807 -S31540017A10C205216C90023FFF832C0001900A001899 -S31540017A207FFFE72990020001C204E14C901E000845 -S31540017A30900A000180A00008A2647FFFA0042001F3 -S31540017A40C205A16080A4000126BFFFF1D005615C9B -S31540017A5080A4600012800003B0102000B010200105 -S31540017A6081C7E00881E800001B100144D803615C2E -S31540017A70821020018328400C1B10014482007FFFA5 -S31540017A80D803616C82084008932A400C9000400953 -S31540017A908213C0007FFFE70C9E10400001000000EA -S31540017AA01B100144D803615C821020018328400CDD -S31540017AB01B10014482007FFFD803616C8208400895 -S31540017AC0932A400C900040098213C0007FFFE702D1 -S31540017AD09E10400001000000952AA00D03280000D9 -S31540017AE094028009D02040009422B000D420600442 -S31540017AF081C3E00801000000033FFFBF821062F826 -S31540017B009DE38001193FFFBF94132368B407BFF873 -S31540017B10031000459606800A82106020C222E00CBE -S31540017B2003100044821063E0C222E0041B100044AB -S31540017B309A1363C0033FFFBFDA26800A901323805E -S31540017B40331000458210635C94068008981323C065 -S31540017B50921660008200401ED222E008D4204000E6 -S31540017B60B006800C7FFFA5A1901020067FFFE6CAD4 -S31540017B7090102000920A3FF07FFFE6C99010200046 -S31540017B80210000307FFFE6C490102000808A00105B -S31540017B9012BFFFFD010000007FFFFF3621000030CC -S31540017BA07FFFE6BD90102000808A001012BFFFFDC6 -S31540017BB0010000007FFFE6B890102000030020403E -S31540017BC08210600F921200017FFFE6B590102000EF -S31540017BD07FFFE6B19010200821100144D0242148AE -S31540017BE07FFFE6AD9010200CA73A2010993A201459 -S31540017BF0A60CE007980B200FDA042148A8230013AE -S31540017C00A80520089F3B6014933B60109B3B60187E -S31540017C1094050013A2102001AC03200A9E0BE00F2D -S31540017C2096102400AE0B60039402A00221200000AE -S31540017C30992AC00C1B1001448203E00A952C400A84 -S31540017C409424000A832C4001D8236168A0240001B2 -S31540017C501B10014403100144EC23615C972AC00FB9 -S31540017C60AA03E00A1B100144D620614403100144D3 -S31540017C70EA236154EA2061501B1001440310014478 -S31540017C80D423614C920A6007A53A2018D020615846 -S31540017C90153FFFBF932C4009A40CA00303100144D8 -S31540017CA09412A358932C4009A404A001391001440D -S31540017CB037100144EC20616C9B2C40149402801EC9 -S31540017CC0E0272164E426E160AA027FFFDA228000F0 -S31540017CD0AC85E0010280000CBB2C4013033FFFBF83 -S31540017CE082106368A0068001A4100016D00400002B -S31540017CF09FC20000A0042004A484BFFF32BFFFFD41 -S31540017D00D00400007FFFE66490102000920A3FFCF9 -S31540017D107FFFE66390102000A410200080A4801607 -S31540017D2016800022A2102000033FFFBFAE106368F9 -S31540017D30A610001AA010200080A400163680001854 -S31540017D40A404A00110800005A810001780A4001605 -S31540017D5036800013A404A001921000107FFFFEC8D4 -S31540017D60D004C014820A001580A0401512BFFFF846 -S31540017D70A0042001C204C01482184008DA07216415 -S31540017D808208400D80A00001A2647FFF80A40016F6 -S31540017D9006BFFFF392100010A404A00180A4801630 -S31540017DA006BFFFE5A604E0047FFFE63B90102000F6 -S31540017DB0A6100008901020007FFFE6399214E003D8 -S31540017DC080A46000028001B101000000833CE00C08 -S31540017DD080886003128000A5030048D1833CE013EC -S31540017DE080886003128001AD010000007FFFFEA183 -S31540017DF0210000307FFFE62890102000808A001085 -S31540017E0012BFFFFDA6100008A4102000C206E160C3 -S31540017E1080A480011680000D832CA00292100012CE -S31540017E20901000187FFFFED094102000A404A001FA -S31540017E30C206E16080A4800106BFFFFA92100012DB -S31540017E40A4102000832CA002A404A001C026000196 -S31540017E5080A4A01E04BFFFFD832CA0028210200532 -S31540017E60C22600009A102001DA2620048210200240 -S31540017E70C22620089A102003DA26200C7FFFFED85E -S31540017E809010001880A22000028001D3010000005A -S31540017E90C206000080A060050280000401000000C7 -S31540017EA07FFFA4D7901020067FFFFECD90100018CB -S31540017EB080A22000128001C401000000A41020000D -S31540017EC0C206E16080A480011680000F9210001264 -S31540017ED0A0062004941020007FFFFEB290100018E7 -S31540017EE092100012901000107FFFFEAE94102000F9 -S31540017EF0A404A001C206E16080A4800106BFFFF68A -S31540017F00921000127FFFE5FA901000187FFFE5F806 -S31540017F10900620207FFFE5F6900620407FFFE5F49E -S31540017F2090062060A4102000C206E16080A4800172 -S31540017F3006800196A21020007FFFA4B19010200870 -S31540017F40173FFFBF8212E3C0940680018212E35CB1 -S31540017F508200401ED81A8000C2004000D838400036 -S31540017F609612E380C206800B80A06005128000064F -S31540017F708206800BDA00600480A36001028000055E -S31540017F80A41020007FFFA49E90102009A410200079 -S31540017F90C206E16080A4800116800011A210200073 -S31540017FA0A0062004921000127FFFFEBE9010001022 -S31540017FB0901A200180A00008A2647FFFA404A001BA -S31540017FC0C206E16080A4800106BFFFF8921000124C -S31540017FD080A4600102800005833CE0137FFFA488F2 -S31540017FE09010200A833CE013808860031280018050 -S31540017FF082102005C22600009A102001DA262004AC -S3154001800082102002C22620089A102003DA26200C6C -S315400180101B3FFFBF9A1363589A03401ED00340008B -S315400180204000048D9210001D032EEEEEA12A20027F -S31540018030A21063BBE22600107FFFFE699010001874 -S3154001804080A220001280016701000000C2060010D4 -S3154001805080A0401102800005030048D17FFFA4683B -S3154001806090102012030048D1821061671B226AF3E7 -S31540018070C22620209A1361EFDA262024C20E202040 -S3154001808080A0600102800004010000007FFFA45C23 -S315400180909010201AC20E202180A060230280000485 -S315400180A0010000007FFFA4569010201BC20E202223 -S315400180B080A0604502800004010000007FFFA450BB -S315400180C09010201CC20E202380A06067028000040D -S315400180D0010000007FFFA44A9010201DC20E2024FB -S315400180E080A0608902800004010000007FFFA44453 -S315400180F09010201EC20E202580A060AB0280000495 -S31540018100010000007FFFA43E9010201FC20E2026D2 -S3154001811080A060CD02800004010000007FFFA438EA -S3154001812090102020C20E202780A060EF028000041C -S31540018130010000007FFFA43290102021C2162020AA -S31540018140832860108330601080A061230280000480 -S31540018150010000007FFFA42A90102022DA16202277 -S315400181609B2B6010030000119B33601082106167E6 -S3154001817080A3400102800004010000007FFFA4208B -S3154001818090102023DA1620249B2B60100300002236 -S315400181909B336010821061AB80A3400102800004D2 -S315400181A0010000007FFFA41690102024DA16202635 -S315400181B09B2B6010030000339B336010821061EFEC -S315400181C080A3400102800005821020307FFFA40C6D -S315400181D09010202582102030C22E2020030C08D179 -S315400181E0DA0620208210616780A3400102800005E3 -S315400181F0821020317FFFA402901020278210203167 -S31540018200C22E2021030C0C51DA0620208210616710 -S3154001821080A3400102800005821020327FFFA3F82F -S315400182209010202882102032C22E2022210C0C4C84 -S31540018230DA0620208214226780A3400102800005CD -S31540018240821020337FFFA3EE901020298210203325 -S31540018250C22E20239A142233C206202080A0400D2C -S3154001826002800005821020347FFFA3E59010202A6A -S3154001827082102034C22E2024030D2AF3DA0620244C -S31540018280821061EF80A340010280000582102035F3 -S315400182907FFFA3DB9010202B82102035C22E202594 -S315400182A0030D0D73DA062024821061EF80A340018D -S315400182B002800005821020367FFFA3D19010202C2A -S315400182C082102036C22E2026210D0D4DDA0620249D -S315400182D0821422EF80A340010280000582102037DC -S315400182E07FFFA3C79010202D82102037C22E202752 -S315400182F09A142237C206202480A0400D0280000530 -S31540018300210000107FFFA3BE9010202E21000010F7 -S3154001831082142041C23620200310104CDA06202058 -S315400183208210623380A340010280000582142243F9 -S315400183307FFFA3B39010202F82142243C2362022FE -S3154001834003101050DA0620208210624380A34001B8 -S3154001835002800005210000117FFFA3A99010203063 -S315400183602100001182142045C23620240311114DEB -S31540018370DA0620248210623780A34001028000057C -S31540018380821422477FFFA39E9010203182142247F8 -S31540018390C236202603111151DA0620248210624783 -S315400183A080A3400102800004010000007FFFA394E6 -S315400183B0901020327FFFFD2FA4102000C206E160FD -S315400183C080A48001168000151B100144D403616C02 -S315400183D096100001A010200080A4001D3680000CDC -S315400183E0A404A001832C800A9B286002992CA0102A -S315400183F082130010C226000DA004200180A4001D96 -S3154001840006BFFFFC9A036004A404A00180A4800B6C -S3154001841026BFFFF2A01020007FFFE49F90102000AE -S3154001842003000010808A000112BFFFFC010000001A -S31540018430A4102000C206E16080A4800116800114C8 -S31540018440921000127FFFFD8990100018151001440B -S31540018450C202A14C900A0001820E000180A20001D5 -S31540018460A404A00112BFFFF4901020337FFFA36440 -S3154001847001000000C206E16080A4800106BFFFF250 -S3154001848092100012308001027FFFA35D90102001FF -S3154001849010BFFE50833CE00C7FFFE47F901020002C -S315400184A0133FFFF09212603F920A0009A61000089E -S315400184B07FFFE47B901020007FFFE3D2A4102000D1 -S315400184C01303C0009214C0097FFFE4759010200089 -S315400184D080A4801616800009921000129016600042 -S315400184E07FFFFD0494102000A404A00180A48016FF -S315400184F006BFFFFB921000127FFFE3C2010000009E -S315400185007FFFE46590102000913A200A900A2003EB -S3154001851080A2200102800004010000007FFFA338F1 -S315400185209010200201000000921020009016600079 -S315400185307FFFFCE194102000010000007FFFE4561C -S31540018540901020001303C000922A00097FFFE454D3 -S3154001855090102000010000007FFFE3AA0100000007 -S315400185607FFFE44D90102000913A200C900A2003A1 -S3154001857080A2200102BFFE1E010000007FFFA32052 -S315400185809010200330BFFE1A921000127FFFFD4566 -S3154001859090100018901A200580A00008A2647FFF61 -S315400185A0A404A001C206E16080A4800106BFFFF8D1 -S315400185B09210001280A4600012BFFE63173FFFBFF6 -S315400185C030BFFE5E7FFFA30E9010200710BFFE3D19 -S315400185D0A41020007FFFA30A9010200530BFFE2D76 -S315400185E07FFFA3079010201130BFFE997FFFE42A39 -S315400185F090102000033FFFF08210603F920A000175 -S315400186007FFFE42790102000033FFFBFA010638047 -S3154001861092102000941020007FFFFCE2900680100B -S315400186207FFFE41D901020000303C0009212000159 -S315400186307FFFE41B9010200010800006A41020004C -S31540018640900680107FFFFCD794102005A404A0015A -S31540018650C206E16080A4800106BFFFFA92100012B3 -S31540018660033FFFBFA01063809A102001DA2E8010CD -S3154001867003004000D80680108210600580A30001E7 -S3154001868002800004010000007FFFA2DD9010200B54 -S315400186907FFFE40190102000913A2006900A2003C2 -S315400186A080A2200102800004010000007FFFA2D4C5 -S315400186B09010200C7FFFE3F8901020001303C000B8 -S315400186C0922A00097FFFE3F69010200092102000C5 -S315400186D0900680107FFFFCB3941020007FFFE3EEED -S315400186E0901020002103C000921200107FFFE3EC9E -S315400186F0901020007FFFE3E890102000808A001050 -S3154001870002BFFFFDA6100008A4102000C206E160CA -S3154001871080A480011680000E033FFFBF9A102001FE -S31540018720A2106380A12B401D921000129006801169 -S315400187307FFFFC8D94043FFFA404A001C206E160C3 -S3154001874080A4800106BFFFFA921000121303C000F5 -S31540018750922CC0097FFFE3D2901020002103C00074 -S315400187607FFFE3CD90102000808A001012BFFFFDED -S315400187701B004000213FFFBF82142380D8068001A1 -S315400187809A13600580A3000D0280000401000000D9 -S315400187907FFFA29B9010200D7FFFE3BF901020002A -S315400187A0913A2008900A200380A2200122800005E8 -S315400187B0A01423787FFFA2929010200FA014237853 -S315400187C094068010981020119A102055D83A8000AE -S315400187D07FFFE3B1901020000303C0009212000115 -S315400187E0920A7F3F7FFFE3AE90102000A0068010E3 -S315400187F07FFFE3CD9010001010800006A4102000EA -S31540018800900420047FFFFC6794102055A404A00126 -S31540018810C206E16080A4800106BFFFFA92100012F1 -S31540018820113FFFBF901223787FFFE3BF9006800878 -S3154001883080A220111280000480A2605502800004AB -S31540018840010000007FFFA26E901020107FFFE3928F -S3154001885090102000833A20068208600380A06001C0 -S3154001886002800004A61000087FFFA2659010201028 -S31540018870133C3FF09212603F920CC0097FFFE388A0 -S315400188809010200010BFFDDC821020057FFFE3829F -S31540018890901020009212200F7FFFE381901020005C -S315400188A081C7E00891E820009DE3BF987FFFFC93D4 -S315400188B001000000B0100008130020409212600F22 -S315400188C07FFFE377901020000100000081C7E00898 -S315400188D081E80000033FFFBF821063589DE380019A -S315400188E07FFFFBE401000000400002380100000068 -S315400188F07FFFE36990102008A21000087FFFE3661E -S315400189009010200C7FFFA24DA0100008912A200450 -S315400189107FFFA2369002200C973C6014833C60187E -S31540018920953C2014993C201882086003960AE00F72 -S31540018930820060019602E00AA33C6010A13C20102F -S31540018940980B2003940AA00FA728400B98032001F7 -S31540018950A20C6007A00C20079402A00A9A102001DD -S31540018960A2046002A0042002B12B000A03200000E9 -S31540018970AB2B4011A52B40109620401898057FFF40 -S31540018980822040139A04BFFFAE130001A213400B8D -S31540018990210000307FFFE34090102000808A0010C4 -S315400189A012BFFFFD033FFFBF9A07BFF8821063C0A6 -S315400189B0A00340012D155555901000189210001036 -S315400189C07FFFE2C89415A15580A220001280004B7A -S315400189D0292AAAAA92100010901000187FFFE2D50A -S315400189E0941522AA80A220001280004E01000000A8 -S315400189F07FFFA21201000000912A20047FFFA1FB04 -S31540018A009002200A400001EE01000000921522006A -S31540018A10920C400990100018941000119610001203 -S31540018A207FFFE2ED981522AA80A220001280005114 -S31540018A30010000009215A10090100018920C400907 -S31540018A4094100011961000127FFFE2E39815A1558C -S31540018A5080A2200012800044010000007FFFA1F7A0 -S31540018A6001000000912A20047FFFA1E09002200B23 -S31540018A70901000137FFFE2BF9215A15580A22000FE -S31540018A801280003501000000901000137FFFE2B90B -S31540018A90921522AA80A220001280002C010000001B -S31540018AA07FFFA1E601000000912A20047FFFA1CFAC -S31540018AB0900220099010001392100017941000158F -S31540018AC07FFFE2B8961522AA80A220001280001BE1 -S31540018AD00100000090100013921000179410001529 -S31540018AE07FFFE2B09615A15580A2200002800025A5 -S31540018AF0010000003080000E7FFFA1C190102001CF -S31540018B00292AAAAA92100010901000187FFFE28924 -S31540018B10941522AA80A2200002BFFFB601000000E0 -S31540018B207FFFA1B79010200230BFFFB27FFFA1B4F3 -S31540018B3090102008308000137FFFA1B190102007CC -S31540018B4010BFFFE6901000137FFFA1AD90102006E5 -S31540018B5030BFFFD47FFFA1AA9010200510BFFFCCE4 -S31540018B60901000137FFFA1A69010200430BFFFBCD8 -S31540018B707FFFA1A39010200310BFFFB09215A10063 -S31540018B807FFFFB3CB0102000400001900100000037 -S31540018B900100000081C7E00881E800009DE3BF981D -S31540018BA07FFFA18D1100412CDA062004D80620044E -S31540018BB09A0B6003993B200282102007C2262008A7 -S31540018BC0BA036001B20B27FF010000009010200A92 -S31540018BD0C02600007FFFA1850100000017000200AA -S31540018BE082103FFFC226000B032AAAAA1B15555520 -S31540018BF0D806000BAC102000821062AA9A13615568 -S31540018C00AA0B000180A5801D16800038A80B000D17 -S31540018C109612E020A72E600880A4E0000480000C94 -S31540018C20A2102000832DA0028200401819000200E4 -S31540018C309A10000BE820400CEA20400DA204601077 -S31540018C4080A4C01114BFFFFC82006040AC05A001A6 -S31540018C5080A5801D06BFFFF280A4E000AC10200075 -S31540018C6080A5801D1680002103000200B8106020F7 -S31540018C70A72E6008AE10001880A4E00004800017FB -S31540018C80A210200003000200A4060001A005C01C9A -S31540018C90C2048000A2046010A404A04080A0401435 -S31540018CA002800004901020017FFFA15501000000C1 -S31540018CB0C2040000A004204080A0401502800004A8 -S31540018CC0901020017FFFA14E0100000080A4C01139 -S31540018CD014BFFFF001000000AC05A00180A5801D76 -S31540018CE006BFFFE6AE05E0047FFFA1409010200CD1 -S31540018CF0AC10200080A5801D1680008803155555AF -S31540018D009E1061551B000800032AAAAA9A13600403 -S31540018D10901062AAA72E600880A4E0000480000E8D -S31540018D20A2102000832DA0138200401813000800D2 -S31540018D309410000F9610000D98100008D420400999 -S31540018D40D820400BA204600280A4C01114BFFFFCCE -S31540018D5082006008AC05A00180A5801D06BFFFF01A -S31540018D6080A4E000AC10200080A5801D1680006B19 -S31540018D7003155555B81061551B000800032AAAAAC8 -S31540018D80B6136004B41062AAA72E600880A4E0005E -S31540018D9004800019A2102000832DA013A0004018C2 -S31540018DA02F000800AA10001CA810001BA410001ACE -S31540018DB0C2040017A204600280A04015028000048C -S31540018DC0901020037FFFA10E01000000C204001491 -S31540018DD0A004200880A040120280000490102003C5 -S31540018DE07FFFA1070100000080A4C01114BFFFF15D -S31540018DF001000000AC05A00180A5801D06BFFFE56E -S31540018E0080A4E000AC10200080A5801D16800043A0 -S31540018E10030008009E1060041B155555032AAAAA93 -S31540018E209A136155901062AAA72E600880A4E000AB -S31540018E300480000EA2102000832DA013820040184A -S31540018E40130008009410000F9610000D98100008AA -S31540018E50D620400AD8204009A204600280A4C0114D -S31540018E6014BFFFFC82006008AC05A00180A5801DEF -S31540018E7006BFFFF080A4E000AC10200080A5801D55 -S31540018E801680002603155555B81061551B2AAAAA06 -S31540018E9003000800A72E6008B61362AAB410600446 -S31540018EA080A4E00004800019A2102000832DA013A5 -S31540018EB0A00040182F000800AA10001CA810001B93 -S31540018EC0A410001AC2040012A204600280A0401538 -S31540018ED002800004901020047FFFA0C90100000019 -S31540018EE0C2040017A004200880A040140280000498 -S31540018EF0901020047FFFA0C20100000080A4C01191 -S31540018F0014BFFFF101000000AC05A00180A5801D42 -S31540018F1006BFFFE580A4E00082102005C226200896 -S31540018F201B200000DA26000081C7E00881E8000026 -S31540018F3081C3E00891444000808000001510014043 -S31540018F409412A18090102000921022468180000048 -S31540018F50010000000100000001000000D002800075 -S31540018F609122400881C3E008010000008180000091 -S31540018F70901020018090200180D020011280002C89 -S31540018F800100000080D23FFF168000290100000049 -S31540018F9080DA3FFF9340000080A27FFF12800024C9 -S31540018FA00100000080D23FFF9348000093326014D5 -S31540018FB0920A600F80A260081280001D0100000025 -S31540018FC08180000090102001945220049452A00404 -S31540018FD09452A00496A2A040128000150100000000 -S31540018FE0818000009010200280A000003280001095 -S31540018FF09052000880A220021280000D010000005C -S31540019000818000009010200280A000000100000035 -S31540019010328000079052000880A22002128000048C -S315400190200100000081C3E0089010200181C3E008DF -S31540019030901000001315555592126155A5824000B6 -S31540019040010000000100000001000000954480007D -S3154001905080A2400A1280004301000000923A40007B -S31540019060A58240000100000001000000010000004F -S315400190709544800080A2400A1280003A0100000017 -S315400190801100003F901223FFA5800000818000005F -S3154001909001000000010000000100000093F23FFFC3 -S315400190A09A10000993F23FFF93F23FFF93F23FFF7D -S315400190B093F23FFF93F23FFF93F23FFF93F23FFF5D -S315400190C09940000097448000153FFC009412A00887 -S315400190D080A2400A1280002380A2400B1280002108 -S315400190E080A320071280001F113FFF8090122001AC -S315400190F080A340081280001B1100003F901223FFFD -S31540019100A5800000818000000100000001000000F0 -S315400191100100000093FA3FFF93FA3FFF93FA3FFFA6 -S3154001912093FA3FFF93FA3FFF93FA3FFF93FA3FFFCC -S3154001913093FA3FFF994000009744800080A260085F -S315400191401280000880A260081280000680A32000D9 -S31540019150128000040100000081C3E0089010200144 -S3154001916081C3E00890100000818000009010200229 -S3154001917080A00000328000109072000880A2200278 -S315400191801280000D01000000818000009010200235 -S3154001919080A00000010000003280000790720008A4 -S315400191A080A22002128000040100000081C3E00871 -S315400191B09010200181C3E00890100000C0A000403B -S315400191C081C3E00801000000110020409012200FE9 -S315400191D0D0A0004081C3E008010000009DE3BF9894 -S315400191E07FFFE12D90102008A21000087FFFE12AA1 -S315400191F09010200C833C60149B3A2014A13A20180D -S31540019200A33C6018A20C6003A00C20038208600FE7 -S315400192109A0B600F8200600A9A03600AA2046001F9 -S31540019220A0042001A32C40017FFFFFE5A12C000DE6 -S315400192307FFFE090901000117FFFE09C901000109E -S315400192407FFFF98C010000007FFFFFE081E800000D -S315400192500100000098120009818200009AAB2FFF9D -S315400192600280002598880000992300099923000966 -S315400192709923000999230009992300099923000993 -S315400192809923000999230009992300099923000983 -S315400192909923000999230009992300099923000973 -S315400192A09923000999230009992300099923000963 -S315400192B09923000999230009992300099923000953 -S315400192C09923000999230009992300099923000943 -S315400192D09923000999230009992300099923000933 -S315400192E099230009992300099923000081C3E008C5 -S315400192F09140000099230009992300099923000907 -S315400193009923000999230009992300099923000902 -S3154001931099230009992300099923000999230009F2 -S3154001932099230009992300009B400000992B200CAA -S315400193309B33601481C3E0089013400C1080000BEE -S31540019340861020008092400816800008861000088A -S31540019350809240001680000480920000168000032F -S3154001936092200009902000089A9240001280000540 -S315400193709610000891D0200281C3E00890100000A9 -S3154001938080A2C00D0A8000959410000003020000DF -S3154001939080A2C0010A8000289810000080A34001E5 -S315400193A01A80000D841020019B2B600410BFFFFC26 -S315400193B0980320019A83400D1A8000078400A0017A -S315400193C0832860049B3360019A03400110800007A3 -S315400193D08420A00180A3400B0ABFFFF701000000D3 -S315400193E0028000020100000084A0A00106800076F0 -S315400193F0010000009622C00D941020011080000A41 -S3154001940001000000952AA001068000059B336001FA -S315400194109622C00D108000049402A0019602C00D50 -S315400194209422A00184A0A00116BFFFF78092C0003C -S31540019430308000659B2B600480A3400B08BFFFFE74 -S315400194409883200102800065982320018092C00004 -S31540019450952AA0040680002F9B33600196A2C00D79 -S31540019460068000179B33600196A2C00D0680000B53 -S315400194709B33600196A2C00D068000059B336001B7 -S3154001948096A2C00D108000509402A00F9682C00D86 -S315400194901080004D9402A00D9682C00D06800005F5 -S315400194A09B33600196A2C00D108000479402A00B29 -S315400194B09682C00D108000449402A0099682C00D88 -S315400194C00680000B9B33600196A2C00D0680000505 -S315400194D09B33600196A2C00D1080003B9402A00709 -S315400194E09682C00D108000389402A0059682C00D68 -S315400194F0068000059B33600196A2C00D10800032A4 -S315400195009402A0039682C00D1080002F9402A00100 -S315400195109682C00D068000179B33600196A2C00D4E -S315400195200680000B9B33600196A2C00D06800005A4 -S315400195309B33600196A2C00D108000239402BFFFA9 -S315400195409682C00D108000209402BFFD9682C00D08 -S31540019550068000059B33600196A2C00D1080001A5B -S315400195609402BFFB9682C00D108000179402BFF98A -S315400195709682C00D0680000B9B33600196A2C00DFA -S31540019580068000059B33600196A2C00D1080000E37 -S315400195909402BFF79682C00D1080000B9402BFF56E -S315400195A09682C00D068000059B33600196A2C00DD0 -S315400195B0108000059402BFF39682C00D1080000210 -S315400195C09402BFF198A3200116BFFFA28092C0006A -S315400195D0268000029602C0098090C00026800002C3 -S315400195E09620000B81C3E0089010000B92100008F2 -S315400195F09010200094102000961020008213C00085 -S31540019600400000039E104000010000009DE3BF980A -S3154001961023100143400005F6901460F40310006DD9 -S31540019620E0006178D004214880A220002280002DEC -S315400196309004214CD602200480A2E01F1480001D14 -S315400196400100000080A620001280000B94022088B1 -S31540019650832AE0029A02E00182004008DA222004CD -S31540019660F2206008400005FA901460F41080002250 -S31540019670B0102000821020019328400B992AE00265 -S31540019680DA02A1009A1340098203000AF62060809B -S31540019690F422800C80A6200212BFFFEEDA22A1003E -S315400196A0C202A1048210400910BFFFEAC222A104EE -S315400196B0400000139010219080A220000280000BF0 -S315400196C096102000C2042148C2220000D02421481D -S315400196D0C0222004C022218810BFFFDBC022218C7A -S315400196E010BFFFD5D0242148400005D9901460F41D -S315400196F0B0103FFF81C7E00881E8000092100008E2 -S3154001970003100141D00063708213C0004000000A7B -S315400197109E10400001000000921000080310014114 -S31540019720D00063708213C000400002199E104000B1 -S31540019730010000009DE3BF988206600B80A0601681 -S31540019740A610001818800003A0087FF8A01020106A -S3154001975080A400199A4020008334201F8090400D38 -S31540019760128001B0B0102000400001B090100013EB -S3154001977080A421F718800017993420093910014136 -S315400197808217238098040001F003200C80A6000C68 -S315400197900280004E9F342003C206200494087FFCB9 -S315400197A09A06000AC203600482106001D006200CAA -S315400197B0D2062008D2222008C2236004D022600C9F -S315400197C0400001A09010001310800196B0062008B9 -S315400197D080A32000128000289F34200339100141C4 -S315400197E09B2BE003821723809A0340011080000AD5 -S315400197F0F003600C94087FFC9622801080A2E00F53 -S315400198001480010980A2E00036BFFFE79A06000AEC -S31540019810F006200C80A6000D32BFFFF7C2062004D9 -S315400198209E03E001251001419814A388F003200806 -S3154001983080A6000C0280005D833BE01FC206200427 -S3154001984094087FFC9622801080A2E00F1480009F2E -S3154001985080A2E000D823200C06800023D8232008CC -S315400198609A06000AC20360048210600110BFFFD548 -S31540019870C22360048334200680A3200408BFFFD896 -S315400198809E00603880A3201408BFFFD59E03205B4D -S315400198908334200C80A3205408BFFFD19E00606E04 -S315400198A08334200F80A3215408BFFFCD9E006077EB -S315400198B08334201280A3255408BFFFC99E00607CD3 -S315400198C010BFFFC79E10207E98062008F003200C8B -S315400198D080A6000C32BFFFB2C206200410BFFFD2E1 -S315400198E09E03E00280A2A1FF088000BE9B32A00336 -S315400198F09732A00980A2E0002280001796172380A4 -S315400199008332A00680A2E004088000129A006038E3 -S3154001991080A2E0140880000F9A02E05B8332A00C1B -S3154001992080A2E0540880000B9A00606E8332A00F3B -S3154001993080A2E154088000079A0060778332A01222 -S3154001994080A2E554088000039A00607C9A10207E2C -S3154001995096172380832B60039000400BD202200888 -S3154001996080A240082280010F99336002C20260043E -S3154001997082087FFC80A0400A28800007D002600C44 -S31540019980D202600880A2400832BFFFFAC2026004D8 -S31540019990D002600CD026200CD2262008F022600C82 -S315400199A0F0222008833BE01F8330601E8203C00102 -S315400199B03910014183386002981723809A1020019B -S315400199C0932B4001D803200480A2400C1880004B01 -S315400199D0AE172380808B00091280000D03100141D0 -S315400199E0820BFFFC92024009808B0009128000071E -S315400199F09E0060048210000C920240098088400952 -S31540019A0002BFFFFE9E03E00403100141A2106380E2 -S31540019A10A8100011832BE003980040119010000F0D -S31540019A209A10000C1080000AF003600C94087FFC29 -S31540019A309622801080A2E00F1480007D80A2E00073 -S31540019A403680008B9A06000AF006200C80A6000D8F -S31540019A5032BFFFF7C20620049E03E001808BE0037C -S31540019A6012BFFFF19A036008808A200398033FF8EA -S31540019A70028000D490023FFFC203200880A0400C20 -S31540019A8002BFFFFB808A200392024009C2052004DF -S31540019A9080A24001188000183910014180A260005F -S31540019AA0128000068088400910800014AE1723807A -S31540019AB09E03E0048088400922BFFFFE92024009CE -S31540019AC010BFFFD6832BE0038214200194060010B9 -S31540019AD0C2262004D423200CD42320088212E0017C -S31540019AE0D622800BD822A008C222A00410BFFF357F -S31540019AF0D822A00CAE172380F005E008C206200448 -S31540019B00AA087FFC80A540109A4020009625401067 -S31540019B1080A2E00F14800042821020018093400110 -S31540019B200280002703100143DA0061982D1001419C -S31540019B309A04000DC205A378A810001580A07FFFE6 -S31540019B40A203601002800004A406001582046FFF80 -S31540019B50A208700090100013400000C0921000113E -S31540019B6080A23FFF02800008B210000880A20012C6 -S31540019B701A8000463B10014380A60017228000440C -S31540019B80C207616882172380D8006008DA0320047F -S31540019B909A0B7FFC80A340109840200096234010EA -S31540019BA080A2E00F04800003821020018210200071 -S31540019BB080930001128000980100000098172380CD -S31540019BC0F003200882142001C22620049A060010C0 -S31540019BD08212E001C223600410BFFEFADA23200894 -S31540019BE098033FF8832B60039000400C9B3360023F -S31540019BF0821020018328400DD2022008DA03200476 -S31540019C009A134001D026200CD2262008F022600C5F -S31540019C10DA23200410BFFF64F022200810BFFFC0E2 -S31540019C208210200010BFFEFF9E03FFFFD006200CCE -S31540019C30D20620089A142001940600108214A388A3 -S31540019C40D2222008D022600CDA262004D420600CCF -S31540019C50D42060089A12E001D622800BC222A008C5 -S31540019C60DA22A00410BFFED7C222A00CC2036004B0 -S31540019C7082106001D006200CD2062008C22360045F -S31540019C8010BFFECFD2222008C20761688200401170 -S31540019C9080A640120280004FC2276168C205A378A0 -S31540019CA080A07FFF02800045C20761689A26401264 -S31540019CB08200400DC22761689A8E600702800005C6 -S31540019CC0A410200082102008A420400DB2064012A4 -S31540019CD09A0640119A0B6FFF030000048220400D43 -S31540019CE0A4048001901000134000005C9210001201 -S31540019CF080A23FFF2280003FA4102000822200194B -S31540019D009000401282172380DA0761689A03401255 -S31540019D1080A60001F2206008DA27616802800037D8 -S31540019D208212200180A5600F38800005C22660049A -S31540019D308210200110BFFF94C2266004C20620048F -S31540019D409A057FF4A80B7FF88208600182104014BF -S31540019D50C22620049A06001482102005C2236008F8 -S31540019D6080A5200F18800027C223600419100143E3 -S31540019D70DA076168C203219480A34001388000025A -S31540019D80DA23219419100143C203219080A3400193 -S31540019D9038BFFF7DDA23219010BFFF7C82172380D5 -S31540019DA09A102001C202E0049B2B400C8210400D08 -S31540019DB010BFFEF9C222E00410BFFFC0F225A3780E -S31540019DC0C20460048228400910BFFF30C2246004E7 -S31540019DD0808E6FFF12BFFFB3C205A3789004401473 -S31540019DE0DA05E0088212200110BFFFE1C2236004B8 -S31540019DF010BFFFC39010001910BFFFDDC2266004DB -S31540019E0092062008400000629010001310BFFFD94F -S31540019E10191001434000000B90100013B0102000B0 -S31540019E2081C7E00881E800001110014290122388A1 -S31540019E308213C000400003EE9E1040000100000066 -S31540019E4011100142901223888213C0004000040081 -S31540019E509E104000010000009DE3BF98211001447F -S31540019E60C02421704000020D9010001980A23FFFCE -S31540019E7012800006C204217080A0600002800003A7 -S31540019E8001000000C226000081C7E00891E80008F1 -S31540019E909DE3BF987FFFFFE5901000180310014135 -S31540019EA0A2106380DA046008C2036004A0087FFC44 -S31540019EB0B2240019B2066FEFB20E7000B2067000FE -S31540019EC09210200080A66FFF0480000A90100018AF -S31540019ED07FFFFFE201000000C204600882004010DB -S31540019EE080A04008922000190280000590100018B9 -S31540019EF07FFFFFD4B0102000308000237FFFFFD7C3 -S31540019F00901000188224001980A23FFF8210600140 -S31540019F1092102000191001430280000B9010001886 -S31540019F20DA046008C2236004C20321688220401912 -S31540019F30901000187FFFFFC3C223216810800012D2 -S31540019F40B01020017FFFFFC50100000098100008F6 -S31540019F50D6046008A023000B9010001880A4200F9F -S31540019F6004BFFFE4B214200103100141DA00637813 -S31540019F709A23000D03100143DA20616810BFFFDD0B -S31540019F80F222E00481C7E00881E800009DE3BF9822 -S31540019F9080A660000280009DA41000187FFFFFA3E9 -S31540019FA090100018A0067FF8D6042004900AFFFE00 -S31540019FB01910014194040008A2132380DA02A00477 -S31540019FC0C204600880A0400A028000449E0B7FFCC8 -S31540019FD0808AE001DE22A0041280000CB01020002D -S31540019FE0F2067FF8A024001982046008DA042008EA -S31540019FF080A340010280007D90020019D204200C0A -S3154001A000DA226008D223600C8202800FDA006004F3 -S3154001A010808B60011280000A8212200180A62000F6 -S3154001A020028000229002000FDA02A008D202A00CA0 -S3154001A030DA226008D223600C82122001C224200455 -S3154001A04080A6200002800005D0240008B01000122E -S3154001A0507FFFFF7C81E8000080A221FF1880003647 -S3154001A060973220099B32200398132380832B600368 -S3154001A0709200400C9B336002821020018328400DE0 -S3154001A080D6026008DA0320049A134001D224200C38 -S3154001A090D6242008E022E00CDA232004E0226008DE -S3154001A0A010BFFFECB010001203100141DA02A00804 -S3154001A0B08210638880A3400132BFFFDED202A00C2A -S3154001A0C0E023600CE0236008DA242008DA24200C1F -S3154001A0D010BFFFDAB0102001808AE001128000092A -S3154001A0E09002000FF2067FF8A0240019D204200C3A -S3154001A0F0D6042008D622600890020019D222E00C2C -S3154001A10003100141DA00637C98122001E0246008C3 -S3154001A11080A2000D0ABFFFCFD824200403100143BB -S3154001A120D20061987FFFFF5B901000127FFFFF45D1 -S3154001A13081E8000080A2E000028000169B322003E5 -S3154001A1408332200680A2E004088000129A0060381B -S3154001A15080A2E0140880000F9A02E05B8332200C53 -S3154001A16080A2E0540880000B9A00606E8332200F73 -S3154001A17080A2E154088000079A006077833220125A -S3154001A18080A2E554088000039A00607C9A10207EE4 -S3154001A19094132380832B60039200400AD602600801 -S3154001A1A080A2C0090280001399336002C202E00412 -S3154001A1B082087FFC80A0400828800007D202E00C7C -S3154001A1C0D602E00880A2C00932BFFFFAC202E0040B -S3154001A1D0D202E00CD224200CD6242008E022E00C46 -S3154001A1E010BFFFB0E022600810BFFF88B010200109 -S3154001A1F09A102001C202A0049B2B400C8210400DF4 -S3154001A20010BFFFF5C222A00481C7E00881E8000023 -S3154001A2109DE3BF98D206400080A2600012800004F0 -S3154001A220901000187FFFFF5A81E800007FFFFFF979 -S3154001A230010000007FFFFF5681E800000100000099 -S3154001A2409DE3BF9803100141DA00637080A6000DBB -S3154001A2500280004101000000D206204C80A260002D -S3154001A2601280001CA0102000D206214880A2600066 -S3154001A2702280000FD2062054A006214C80A2401015 -S3154001A2802280000BD206205410800005B21000092E -S3154001A290F20640007FFFFF3E9010001880A400198F -S3154001A2A012BFFFFC92100019D206205480A2600012 -S3154001A2B01280002501000000C206203880A06000FF -S3154001A2C0028000250100000010800017C206203CD4 -S3154001A2D0832C2002F202400180A660002280000BFE -S3154001A2E0A004200192100019F20640007FFFFF28CA -S3154001A2F09010001880A6600012BFFFFC9210001952 -S3154001A300D206204CA004200180A4200E04BFFFF2F7 -S3154001A310832C20027FFFFF1E9010001810BFFFD430 -S3154001A320D20621489FC0400090100018F20622E054 -S3154001A33080A6600002800008010000007FFFFFB593 -S3154001A34081E800007FFFFF129010001810BFFFDC6C -S3154001A350C206203881C7E00881E800009DE3BF9826 -S3154001A36080A620000280001D03100141E406214819 -S3154001A37080A4A00022800013C206203CE204A0046F -S3154001A380A2847FFF0C80000A832C60028200401267 -S3154001A390A0006008C20400009FC04000A0043FFC2A -S3154001A3A0A2847FFF3CBFFFFDC2040000E40480009D -S3154001A3B080A4A00032BFFFF3E204A004C206203C01 -S3154001A3C080A0600002800007010000009FC040009D -S3154001A3D0901000183080000310BFFFE5F000637055 -S3154001A3E081C7E00881E800001080000B861020003C -S3154001A3F08092400816800008861A400880924000E4 -S3154001A4001680000480920000168000039220000905 -S3154001A410902000089A92400012800005961000088C -S3154001A42091D0200281C3E0089010000080A2C00DA7 -S3154001A4300A800095941000000302000080A2C0012A -S3154001A4400A8000289810000080A340011A80000D60 -S3154001A450841020019B2B600410BFFFFC9803200150 -S3154001A4609A83400D1A8000078400A0018328600466 -S3154001A4709B3360019A034001108000078420A001AC -S3154001A48080A3400B0ABFFFF70100000002800002D3 -S3154001A4900100000084A0A0010680007601000000B2 -S3154001A4A09622C00D941020011080000A0100000080 -S3154001A4B0952AA001068000059B3360019622C00DB6 -S3154001A4C0108000049402A0019602C00D9422A001BE -S3154001A4D084A0A00116BFFFF78092C00030800065BE -S3154001A4E09B2B600480A3400B08BFFFFE988320018D -S3154001A4F002800065982320018092C000952AA0041D -S3154001A5000680002F9B33600196A2C00D068000177E -S3154001A5109B33600196A2C00D0680000B9B33600100 -S3154001A52096A2C00D068000059B33600196A2C00D20 -S3154001A530108000509402A00F9682C00D1080004DED -S3154001A5409402A00D9682C00D068000059B336001E2 -S3154001A55096A2C00D108000479402A00B9682C00DB2 -S3154001A560108000449402A0099682C00D0680000B1B -S3154001A5709B33600196A2C00D068000059B336001A6 -S3154001A58096A2C00D1080003B9402A0079682C00D92 -S3154001A590108000389402A0059682C00D0680000501 -S3154001A5A09B33600196A2C00D108000329402A00335 -S3154001A5B09682C00D1080002F9402A0019682C00D94 -S3154001A5C0068000179B33600196A2C00D0680000BE2 -S3154001A5D09B33600196A2C00D068000059B33600146 -S3154001A5E096A2C00D108000239402BFFF9682C00D33 -S3154001A5F0108000209402BFFD9682C00D06800005A2 -S3154001A6009B33600196A2C00D1080001A9402BFFBD5 -S3154001A6109682C00D108000179402BFF99682C00D34 -S3154001A6200680000B9B33600196A2C00D0680000593 -S3154001A6309B33600196A2C00D1080000E9402BFF7B5 -S3154001A6409682C00D1080000B9402BFF59682C00D14 -S3154001A650068000059B33600196A2C00D108000055F -S3154001A6609402BFF39682C00D108000029402BFF19E -S3154001A67098A3200116BFFFA28092C0002680000247 -S3154001A6809422A0018090C000268000029420000AF6 -S3154001A69081C3E0089010000A19100144DA032174BD -S3154001A6A080A3600012800006820340080310014423 -S3154001A6B09A106188DA23217482034008C2232174E7 -S3154001A6C081C3E0089010000DA7500000AE100001B4 -S3154001A6D08334E00129100143E8052038A92CC01430 -S3154001A6E08215000181E000008190400001000000D8 -S3154001A6F00100000001000000E03BA000E43BA0088F -S3154001A700E83BA010EC3BA018F03BA020F43BA0286E -S3154001A710F83BA030FC3BA03881E8000082100017CE -S3154001A72081C4400081CC800001000000010000008E -S3154001A73001000000A7500000A92CE0012B100143A5 -S3154001A740EA056038AB34C015AA154014819540001E -S3154001A75001000000010000000100000081E8000046 -S3154001A76081E80000E01BA000E41BA008E81BA01044 -S3154001A770EC1BA018F01BA020F41BA028F81BA0304E -S3154001A780FC1BA03881E0000081E0000081C440004C -S3154001A79081CC8000A75000002910006CADC5210472 -S3154001A7A00100000027100143A614E018E024C00070 -S3154001A7B0818C202001000000010000000100000002 -S3154001A7C09DE3BFA09DE3BFA09DE3BFA09DE3BFA0C6 -S3154001A7D09DE3BFA09DE3BFA09DE3BFA081E800002C -S3154001A7E081E8000081E8000081E8000081E800007E -S3154001A7F081E8000081E8000027100143A614E01813 -S3154001A800C024C000E203A068A4046004E223A0645B -S3154001A810E423A06810800262AC10000029100142B6 -S3154001A820A81523FCC2252000C8252004E0252010B8 -S3154001A830E2252014E4252018E825201C81E80000A3 -S3154001A8408348000082106F0081886020010000006B -S3154001A850010000000100000009100143C801203831 -S3154001A86081E000008821200180A920FF02800003A9 -S3154001A870010000000100000080A1000012BFFFF9A5 -S3154001A8800100000009100143C801203881E8000099 -S3154001A89080A920FF028000030100000001000000A2 -S3154001A8A08821200180A1000012BFFFF901000000AC -S3154001A8B081E0000029100142A81523FCC8052004A7 -S3154001A8C0C2052000E0052010E2052014E405201809 -S3154001A8D0C025201C818C20000100000001000000E1 -S3154001A8E00100000081C4800081CCA004A0142F0087 -S3154001A8F0818C000001000000010000000100000001 -S3154001A90081C4800081CCA00480A66002128000052B -S3154001A910A8142F00818D0000B01420203080001F24 -S3154001A92080A6600312800006A80E2F00AA2C2F00D5 -S3154001A930A8154014818D00003080001880A660045F -S3154001A94012800008A9480000A8152040818D00000A -S3154001A9500100000001000000010000003080000FEE -S3154001A96080A6600512800008A9480000A82D204055 -S3154001A970818D00000100000001000000010000007F -S3154001A9803080000680A660061280000301000000A8 -S3154001A99030BFFFA391D0200081C4800081CCA004A8 -S3154001A9A09210200381C3E00891D020029210200228 -S3154001A9B081C3E00891D020029210200681C3E008AD -S3154001A9C091D0200281C3E0080100000081C3E00864 -S3154001A9D00100000081C3E00801000000AE25A0107F -S3154001A9E0A75000002D10006AAC15A1F02910006C8B -S3154001A9F081C522AC010000001110014390122024B0 -S3154001AA00D202000092026001D2220000932DE0089A -S3154001AA10902C2F0092120009111001439012201C14 -S3154001AA20D002000080A000082280000292126F002E -S3154001AA30818A602001000000010000000100000041 -S3154001AA4090100017400000319203A06092142F002D -S3154001AA50818A602001000000010000000100000021 -S3154001AA601110014390122024D2020000922260016B -S3154001AA70D22200001080022DAC1000001B100144B0 -S3154001AA809A13602C912A2002C2034008C222600C0C -S3154001AA9081C3E008D22340089DE3BF9803100144D7 -S3154001AAA08210602C992E60021B100143972E600480 -S3154001AAB0D800400C9A13622C901000199202C00DD6 -S3154001AAC080A6601F1480000F8210200010800006AF -S3154001AAD080A320002280000AC2024000D803200C35 -S3154001AAE080A3200012BFFFFC80A300097FFFFFE483 -S3154001AAF0F02240001080000382102000F022400026 -S3154001AB0081C7E00891E800019DE3BF981B1001430E -S3154001AB1082136028D800600480A300180280004494 -S3154001AB20C203602880A6200022800002B010000CDB -S3154001AB3003100144A32E20028210602CE000401134 -S3154001AB4080A420000280003D0310014310800012C2 -S3154001AB50A41061A8D2042008941000199FC30000D4 -S3154001AB609010001803100143C20061A080A060004C -S3154001AB701280002B01000000C204801182007FFF79 -S3154001AB80C2248011E004200C80A420000280002B06 -S3154001AB9001000000D804000080A3200022BFFFFB73 -S3154001ABA0E004200C03100143DA00622880A3600010 -S3154001ABB0128000089610001203100143821061A80A -S3154001ABC0DA00401180A3600032BFFFF0E004200CA0 -S3154001ABD0DA02C011031001439A036001C20061A465 -S3154001ABE080A0600002BFFFDCDA22C0119FC0400096 -S3154001ABF001000000D8040000D20420089410001976 -S3154001AC009FC300009010001803100143C20061A0C9 -S3154001AC1080A0600022BFFFDAC20480119FC04000BD -S3154001AC200100000010BFFFD6C2048011DA0060C0E7 -S3154001AC3010BFFFBDB00B601F81C7E00881E800006F -S3154001AC408C10000FA74800008B34E0188A09600F6A -S3154001AC5080A160030280000C0B1001438A11603011 -S3154001AC600920000088112070C82140000B100143C3 -S3154001AC708A1160500920000088112040C8214000F7 -S3154001AC80108000399010200192102006400001DD0D -S3154001AC900100000080A0000802800033010000008E -S3154001ACA0C2022010113FFC0082084008110003FC3B -S3154001ACB08410400890100002921020019410200C3C -S3154001ACC0400001E60100000080A000080280002645 -S3154001ACD001000000400001F6921000010B100143F3 -S3154001ACE08A116030D221400090100002921020015A -S3154001ACF094102011400001D90100000080A00008F5 -S3154001AD000280001901000000400001E99210000193 -S3154001AD10920260100B1001438A116050D22140000B -S3154001AD2090100002921020019410200D400001CB9A -S3154001AD300100000080A000080280000B0100000015 -S3154001AD40400001DB921000010B1001438A1160287B -S3154001AD50D2214000D40260109532A010940AA00F6F -S3154001AD60D42160049E10000681C3E0080100000062 -S3154001AD7003100143821060488210200191D02000C7 -S3154001AD8081C3E008010000009DE3BF980310014420 -S3154001AD90C20060C8901000189210001980A060008F -S3154001ADA002800005B01020009FC040000100000055 -S3154001ADB0B010000881C7E00881E800009DE3BF9814 -S3154001ADC003100144C20060C49010001880A06000C6 -S3154001ADD002800005B01020009FC040000100000025 -S3154001ADE0B010000881C7E00881E800009DE3BF98E4 -S3154001ADF003100144C20060BC9010001880A060009E -S3154001AE0002800005B01020009FC0400001000000F4 -S3154001AE10B010000881C7E00881E800009DE3BF98B3 -S3154001AE2003100144C20060C09010001880A0600069 -S3154001AE3002800005B01020009FC0400001000000C4 -S3154001AE40B010000881C7E00881E800009DE3BF9883 -S3154001AE5003100144C20060B89010001880A0600041 -S3154001AE6002800005B01020009FC040000100000094 -S3154001AE70B010000881C7E00881E800009DE3BF9853 -S3154001AE8003100144C20060B49010001880A0600015 -S3154001AE9002800005B01020009FC040000100000064 -S3154001AEA0B010000881C7E00881E800009DE3BF9823 -S3154001AEB003100144C20060B09010001880A06000E9 -S3154001AEC002800005B01020009FC040000100000034 -S3154001AED0B010000881C7E00881E800009DE3BF98F3 -S3154001AEE003100144C20060AC901000189210001982 -S3154001AEF080A0600002800005B01020009FC0400085 -S3154001AF0001000000B010000881C7E00881E8000098 -S3154001AF10010000000310006B821063E09FC04000F7 -S3154001AF20010000000310000082106000819840007B -S3154001AF300310006C821060649FC040000100000055 -S3154001AF400310006B821063D09FC0400001000000D7 -S3154001AF508B4800008B3160188A09600380A1600329 -S3154001AF6012800007010000008B4440008B31601CB9 -S3154001AF7080A1400012800006010000007FFFFF31E2 -S3154001AF80010000007FFF9879010000009C23A0404A -S3154001AF907FFF981C010000008210200191D0200003 -S3154001AFA00100000029000004A68C00143280000331 -S3154001AFB0A02C001491D02000818C000001000000DB -S3154001AFC0010000000100000081C4800081CCA00482 -S3154001AFD081C3E0080100000081C1E00801000000D2 -S3154001AFE0A74800008B34E0188A09600380A16003FA -S3154001AFF0128000080100000021100143A0142040E6 -S3154001B000A2102003E22400008B4440001080000877 -S3154001B01021100143A0142040A2102002E224000086 -S3154001B02021200000E60420248B34E0148A09601FA5 -S3154001B03027100143A614E038CA24C0008A016001E2 -S3154001B04027100143A614E034CA24C0002710014347 -S3154001B050A614E03C8A216002CA24C00081C3E008EC -S3154001B0600100000081C3E0080100000083480000A0 -S3154001B070833060188208600380A060031280000656 -S3154001B0800100000083444000050000088228400278 -S3154001B090A3804000881000000910006B81C1231471 -S3154001B0A0010000009DE3BF980310006D1B10006D69 -S3154001B0B0A01061609A13616080A4000D1A8000108F -S3154001B0C0A210000D10800006C204000080A40011E9 -S3154001B0D01A80000B01000000C204000080A060003D -S3154001B0E002BFFFFBA00420049FC0400001000000F6 -S3154001B0F080A400112ABFFFFAC204000081C7E008FC -S3154001B10081E80000AA27A0B0E0256060E2256064DE -S3154001B110E4256068C2256074C43D6078C83D60809E -S3154001B120CC3D608885400000C425606CF03D609050 -S3154001B130F43D6098F83D60A0FC3D60A8A810200150 -S3154001B140A92D0010808D001302800013010000001C -S3154001B1508534E00107100143C600E038A72CC0033F -S3154001B1608414C0028408A0FF81E000008190A00001 -S3154001B170E03BA000E43BA008E83BA010EC3BA01854 -S3154001B180F03BA020F43BA028F83BA030FC3BA03884 -S3154001B19081E8000081C5A0089C10001505100143F7 -S3154001B1A08410A19CC400800080A08000028000041D -S3154001B1B0010000009FC080009203A060818C2000A6 -S3154001B1C0821020028328401005100143C400A03498 -S3154001B1D085304002821040028550000080888001FF -S3154001B1E0028000208328A00107100143C600E038F1 -S3154001B1F08530800382104002820860FF81906000A2 -S3154001B200C203A06C81806000F01BA090F41BA09843 -S3154001B210F81BA0A0FC1BA0A8C203A074C41BA07865 -S3154001B220C81BA080CC1BA088E003A060E203A064F9 -S3154001B230E403A06881E80000E01BA000E41BA0082D -S3154001B240E81BA010EC1BA018F01BA020F41BA028A3 -S3154001B250F81BA030FC1BA0381080000F81E00000D5 -S3154001B260C203A06C81806000F01BA090F41BA098E3 -S3154001B270F81BA0A0FC1BA0A8C203A074C41BA07805 -S3154001B280C81BA080CC1BA088E003A060E203A06499 -S3154001B290E403A068818C2000010000000100000049 -S3154001B2A00100000081C4400081CC8000AA27A0B0E3 -S3154001B2B0C2256074C43D6078C83D6080CC3D6088DD -S3154001B2C085400000C425606CA8102001A92D0010FE -S3154001B2D0808D001302800013010000008534E001D7 -S3154001B2E007100143C600E038A72CC0038414C002EE -S3154001B2F08408A0FF81E000008190A000E03BA0000F -S3154001B300E43BA008E83BA010EC3BA018F03BA02092 -S3154001B310F43BA028F83BA030FC3BA03881E8000074 -S3154001B32081C5A0089C100015051001438410A19CFD -S3154001B330C400800080A0800002800004010000005B -S3154001B3409FC080009203A060818C20008210200261 -S3154001B3508328401005100143C400A03485304002C3 -S3154001B36082104002855000008088800102800019C9 -S3154001B3708328A00107100143C600E03885308003C9 -S3154001B38082104002820860FF81906000C203A06C77 -S3154001B39081806000C203A074C41BA078C81BA08032 -S3154001B3A0CC1BA08881E80000E01BA000E41BA0089C -S3154001B3B0E81BA010EC1BA018F01BA020F41BA02832 -S3154001B3C0F81BA030FC1BA0381080000881E000006B -S3154001B3D0C203A06C81806000C203A074C41BA07824 -S3154001B3E0C81BA080CC1BA088818C200001000000D6 -S3154001B3F0010000000100000081C4400081CC8000B2 -S3154001B400821000089A10380096102000912AE00513 -S3154001B41098034008D40340089132A01880A2000145 -S3154001B420328000089602E0019132A00C900A2FFF6B -S3154001B43080A20009028000079410000C9602E001E8 -S3154001B44080A2E00728BFFFF3912AE005941020006F -S3154001B45081C3E0089010000A82100008981020006D -S3154001B460912B20039A004008D60040089132E018FB -S3154001B47080A2000932800008980320019132E00C35 -S3154001B480900A2FFF80A2000A028000079610000D45 -S3154001B4909803200180A3200F28BFFFF3912B20039F -S3154001B4A09610200081C3E0089010000BD4022004BE -S3154001B4B0173FFC00920A400B900A800B9132200CF8 -S3154001B4C0921240081100003F901223F0940A80081E -S3154001B4D0952AA0049412800B920A400A81C3E0087F -S3154001B4E0901000099DE3BF980310006D82106148DA -S3154001B4F0DA007FFC80A37FFF02800009A0007FFC69 -S3154001B5008210000D9FC04000A0043FFCC204000011 -S3154001B51080A07FFF12BFFFFC0100000081C7E00849 -S3154001B52081E800009DE3BF9881C7E00881E80000FB -S3154001B53000000000000000000000000000000000C4 -S3154001B54000000002FFFFFFFF0000000000000000B6 -S3154001B55000000002FFFFFFFF0000000000000000A6 -S3154001B56040080000000000003CD203AF9EE756169B -S3154001B5703E7AD7F29ABCAF4840050220000000004F -S3154001B580430000009DE3BFA07FFF96DB0100000062 -S3154001B5907FFFFFD50100000081C7E00881E8000078 -S3154001B5A09DE3BFA07FFF96B60100000081C7E0087A -S3154001B5B081E80000000000000000000000000000DB -S315400200000000000100000000000000004001B55859 -S315400200102000000000000000000000000000000078 +S31540011C9085A00921C523000081C3E008D0030000C7 +S31540011CA01910008098132120D0230000D223200848 +S31540011CB0C1030000C303200885A009A1C523000074 +S31540011CC081C3E008D0030000191000809813212039 +S31540011CD0D0230000C103000083A00520C3230000D8 +S31540011CE081C3E008D00300001310008092126138CE +S31540011CF0C51A6008C11A400089A0084091A108C2CE +S31540011D0095A209C495A2894281C3E008D53A00004B +S31540011D101310008092126158C1024000C302600450 +S31540011D2085A0082087A088A189A0C9A289A10921E7 +S31540011D3081C3E008C92200009610200213100080DA +S31540011D4092126138151000809412A138D5024000D4 +S31540011D50D7028000D5220000D8020000131000806F +S31540011D609212615896A2E00112BFFFF901000000EC +S31540011D7081C3E0080100000013100080921261380F +S31540011D80151000809412A158C1028000C51A601036 +S31540011D9083A0082089A088C08BA109A18DA10942F1 +S31540011DA08FA1492691A0054681C3E008D13A00009A +S31540011DB01110008090122130C11A0000C51A00008E +S31540011DC0C91A0000CD1A0000D11A0000D51A000028 +S31540011DD0D91A0000DD1A0000E11A0000E51A0000D8 +S31540011DE0E91A0000ED1A0000F11A0000F51A000088 +S31540011DF0F91A0000FD1A000081C3E0080100000045 +S31540011E0029100080A81520F827100080A614E16843 +S31540011E10C12CC000E604C000A134E00EA00C20078E +S31540011E20A0A42002AE1020002D100080AC15A168A0 +S31540011E30AE05E001AC05A008C1358000C12D00000A +S31540011E40EA050000AB35600DAA8D600112BFFFF9AE +S31540011E5001000000808000100280002F2B3C1FFFF4 +S31540011E60AA1563FFA60CC015E6250000C10D0000AA +S31540011E702B100080AA1561742D100047AC15A2E005 +S31540011E80AE25E001E0054000E025800081D8200034 +S31540011E9001000000010000000100000001000000F7 +S31540011EA001000000010000000100000001000000E7 +S31540011EB001000000010000000100000001000000D7 +S31540011EC001000000010000000100000001000000C7 +S31540011ED001000000010000000100000001000000B7 +S31540011EE00000000080A5C00012BFFFE6AA056008F9 +S31540011EF0C12D0000E60500002B03C000A614C01545 +S31540011F00E6250000C10D000081C4400081CC80005F +S31540011F100100000081C4800081CCA00401000000C2 +S31540011F200100000081C3E008915800000100000053 +S31540011F3011100080901220F8C10A0000C022000052 +S31540011F40C10A0000C12A0000D40200001300038028 +S31540011F50942A800980A0000A3280004D9010200307 +S31540011F601303E000D223BFA0C023BFA4C10BBFA06F +S31540011F70C023BFA0151000809412A0E8C1028000C2 +S31540011F800100000001000000C10BBFA0C10BBFA4AE +S31540011F9083A00520C12BBFA0D003BFA0808A220009 +S31540011FA02280003B901020049010200015100080E4 +S31540011FB09412A108C5028000C902A008D102A00C52 +S31540011FC013100080921260E8C70240008DA0894438 +S31540011FD081A98AC8010000000380000501000000B4 +S31540011FE0901020011080002A01000000C5028000E7 +S31540011FF0C902A008D102A00C13100080921260E819 +S31540012000CB0240008DA0894481A98AC80100000005 +S315400120100380000501000000901020011080001C83 +S315400120200100000025100080A414A0F0C11C80000E +S31540012030C51C800080A000003280000685A008C033 +S3154001204081A80AC2010000001380000301000000BC +S31540012050901020050100000025100080A414A0F076 +S31540012060C11C8000C51C800080A00000010000004A +S315400120703280000685A008C081A80AC2010000007E +S3154001208013800003010000009010200701000000AA +S3154001209081C3E00801000000901020019544000032 +S315400120A09532A01E940AA00380A2800002800040BF +S315400120B09010200080A2A0021680003D13100080DF +S315400120C092126198C11A4000C51A6008FD02601853 +S315400120D095A0003E99A0003E9DA0003E170000C07D +S315400120E09612E078A182C0000100000001000000C4 +S315400120F00100000001000000010000000100000095 +S3154001210081A0002083A0002195A0002A99A0002C3F +S315400121109DA0002E170000C09612E07CA182C0004F +S315400121200100000001000000010000000100000064 +S31540012130010000000100000085A0002287A00023C5 +S31540012140A180000001000000010000000100000024 +S3154001215001000000010000000100000089A00842C2 +S31540012160A9A2883ED93A4000DD224000CD1A60102E +S31540012170D102600881A90A46010000000380000CD3 +S3154001218081AD0A2801000000038000099344000044 +S315400121909332601B920A60079010200080A2A00132 +S315400121A002800003902260079022600481C3E00808 +S315400121B001000000C12BBFA081C3E008D003BFA02E +S315400121C0D023BFA081C3E008C10BBFA0010000001E +S315400121D09DE3BF6040001B94B0102000833A200A63 +S315400121E08208600380A060010280000401000000B3 +S315400121F081C7E00881E800007FFFBDE19010200D16 +S31540012200050C40290723CD1B8410A0068610E09BB0 +S31540012210C027BFF0C027BFF4C43FBFF8C027BFD017 +S31540012220C027BFD4C027BFC87FFFFF3FC027BFCC51 +S31540012230820A30008210608084006004072804000E +S315400122408610E00F09100047C62040008811220081 +S3154001225007100000882100028939200286110003F7 +S31540012260C620600425100080032784008210601078 +S315400122707FFFFED0C220A0047FFFFFD21103E00002 +S3154001228090102000C024A1687FFFFDD0010000000E +S31540012290809200091280000601000000C204A16874 +S315400122A080A0600002800004010000007FFFBDBBEA +S315400122B09010200B7FFFFDC590103FFA03300600BA +S315400122C080A2000102800CF880A260007FFFBDB3AE +S315400122D09010200B7FFFFDBD9010201403100D00C0 +S315400122E080A200010280113680A260007FFFBDAB53 +S315400122F09010200B7FFFFDB5901020620310162031 +S3154001230080A200010280112780A260007FFFBDA349 +S315400123109010200B7FFFFDB590102005031028007B +S3154001232080A2000112800CB501000000C204A16820 +S3154001233080A0600012800CB1010000007FFFFFA168 +S315400123401103C000111C00007FFFFDB09210200058 +S31540012350031FFFFF821063FF80A200011280000B62 +S3154001236001000000C404A168030000708210601FD0 +S3154001237084088001030000108210601080A0800153 +S3154001238002800005113C00007FFFBD849010200CA7 +S31540012390113C00007FFFFD9D9210200003200000AC +S315400123A080A200011280000B01000000C404A16854 +S315400123B0030000708210601F840880010300001032 +S315400123C08210601080A0800102800004010000009C +S315400123D07FFFBD729010200CC024A1689010200090 +S315400123E07FFFFD8A9210200080A220001280000605 +S315400123F003100080C200616880A060000280000571 +S31540012400110144007FFFBD659010200C110144006D +S3154001241013284000901223027FFFFD7C9212600137 +S3154001242080A220001280000601000000C204A168BB +S3154001243080A06000228000051111FFFF7FFFBD577C +S315400124409010200C1111FFFF7FFFFD78901223FFA2 +S315400124500300007F821063FF80A2000112800C639B +S3154001246001000000C204A16880A0600012800C5FD8 +S3154001247001000000271000807FFFFD64D01CE1E0D1 +S31540012480031FFFFF821063FF80A200011280000B31 +S3154001249001000000C404A168030000708210601F9F +S315400124A084088001030000108210601080A0800122 +S315400124B002800005351000807FFFBD389010200C4A +S315400124C035100080D01EA1D0C024A1687FFFFD4FEA +S315400124D0010000000320000080A200011280000BD1 +S315400124E003100080C4006168030000708210601F01 +S315400124F084088001030000108210601080A08001D2 +S31540012500028000052B1000807FFFBD249010200C17 +S315400125102B100080D01D61F0C024A1687FFFFD3BD8 +S3154001252001000000031FFFFF821063FF80A200012C +S315400125301280000B03100080C40061680300007024 +S315400125408210601F84088001030000108210601011 +S3154001255080A08001028000052F1000807FFFBD0F03 +S315400125609010200C2F100080D01DE1B8C024A16826 +S315400125707FFFFD2601000000C204A1688330600E82 +S315400125808208600380A0600202800004010000000E +S315400125907FFFBD029010200C7FFFFF0A1103C00090 +S315400125A011115804C024A1687FFFFD2890122234DE +S315400125B003102B008210624680A200010280107136 +S315400125C0032000007FFFBCF59010200D113C02AFA7 +S315400125D07FFFFD1E901220D1033180558210639AF0 +S315400125E080A200010280105F030800007FFFBCEB60 +S315400125F09010200D1111FC007FFFFD1C9210200050 +S31540012600031FE00080A200011280000B01000000C0 +S31540012610C404A168030000708210601F8408800111 +S31540012620030000108210600880A08001028000042F +S31540012630010000007FFFBCD99010200DC024A16885 +S3154001264011207C01130001007FFFFD08901220300C +S315400126500320000080A200011280000B03100080BD +S31540012660C4006168030000708210601F8408800105 +S31540012670030000108210600480A0800102800004E3 +S31540012680010000007FFFBCC59010200DC024A16849 +S31540012690901020007FFFFCF59210200080A22000C0 +S315400126A01280000603100080C200616880A06000AD +S315400126B002800004010000007FFFBCB89010200D8D +S315400126C07FFFFCEAD01CE1E003100080C20061E814 +S315400126D080A2000112800BC101000000C204A16862 +S315400126E080A0600012800BBD010000003710008001 +S315400126F07FFFFCDED01EE1D8031FE00080A200016F +S3154001270012800BB301000000C204A16880A06000E2 +S3154001271012800BAF010000007FFFFCD4D01D61F099 +S3154001272003100080C200620080A200011280000BEB +S3154001273001000000C404A168030000708210601FFC +S3154001274084088001030000108210601080A080017F +S3154001275002800005D01DE1B87FFFBC909010200D8E +S31540012760D01DE1B8C024A1687FFFFCC00100000074 +S31540012770C204A1688330600E8208600380A06002B3 +S3154001278002800004010000007FFFBC849010200DF0 +S315400127907FFFFE8C1103E0002108C6AFC024A1686B +S315400127A0901420DE7FFFFCB9A01420DE80A2001029 +S315400127B012800B8303100080C200616880A0600014 +S315400127C012800B7F010000002108C6AF901420DE65 +S315400127D07FFFFCBEA01420DE80A2001012800B7485 +S315400127E001000000C204A16880A0600012800B7045 +S315400127F0010000001128C6AF7FFFFCB4901220DE15 +S315400128000308C6AF821060DE80A2000112800B640D +S3154001281001000000C204A16880A0600012800B6024 +S31540012820010000001108C6AF7FFFFCA0901220DE18 +S315400128300328C6AF821060DE80A2000112800B54CD +S3154001284001000000C204A16880A0600012800B5004 +S31540012850010000001128C6AF7FFFFC94901220DED4 +S315400128600308C6AF821060DE80A2000112800B45CC +S3154001287001000000C204A16880A0600012800B41E3 +S31540012880010000007FFFFE4F1103E00011151BC040 +S315400128901310C821901221039212614115351BC0B4 +S315400128A01710C8219412A1037FFFFC909612E141B3 +S315400128B080A2200212800B2B01000000C204A168F5 +S315400128C080A0600012800B270100000011351BC05B +S315400128D01310C821901221039212614115151BC094 +S315400128E01710C8219412A1037FFFFC809612E14183 +S315400128F080A2200112800B1F01000000C204A168C2 +S3154001290080A0600012800B1B010000009010200087 +S3154001291092102000152000007FFFFC7496102000C5 +S3154001292080A220001280000601000000C204A168B6 +S3154001293080A0600002800005D01EE1D87FFFBC1751 +S315400129409010200FD01EE1D87FFFFC68D41EA1D085 +S3154001295080A2200212800AFF01000000C204A16881 +S3154001296080A0600012800AFB0100000011151BC007 +S315400129701310C821901221039212614115151BE8CB +S315400129801710C8219412A1037FFFFC589612E1410A +S3154001299080A2200112800AEB01000000C204A16856 +S315400129A080A0600012800AE70100000011151BE8B3 +S315400129B01310C821901221039212614115151BC0B3 +S315400129C01710C8219412A1037FFFFC489612E141DA +S315400129D080A2200212800AD701000000C204A16829 +S315400129E080A0600012800AD301000000D41CE1E0FF +S315400129F011151BE81310C821901221037FFFFC3BE0 +S31540012A009212614180A2200312800AC60100000091 +S31540012A10C204A16880A0600012800AC201000000C1 +S31540012A20D41D61F011151BE81310C8219012210322 +S31540012A307FFFFC2E9212614180A220031280000B7F +S31540012A4001000000C404A168030000708210601FE9 +S31540012A5084088001030000108210601080A080016C +S31540012A6002800005D41DE1B87FFFBBCC9010200F3A +S31540012A70D41DE1B8C024A16811151BE81310C82163 +S31540012A80901221037FFFFC199212614180A220021C +S31540012A9012800AA003100080C200616880A0600015 +S31540012AA012800A9C01000000D01DE1B815151BE8F3 +S31540012AB01710C8219412A1037FFFFC0C9612E14125 +S31540012AC080A2200112800A8B01000000C204A16885 +S31540012AD080A0600012800A8701000000D01CE1E05E +S31540012AE015151BE81710C8219412A1037FFFFBFFA0 +S31540012AF09612E14180A2200312800A820100000061 +S31540012B00C204A16880A0600012800A7E0100000014 +S31540012B10D01D61F015151BE81710C8219412A103A9 +S31540012B207FFFFBF29612E14180A220031280000B47 +S31540012B3001000000C404A168030000708210601FF8 +S31540012B4084088001030000108210601080A080017B +S31540012B5002800004010000007FFFBB909010200F0F +S31540012B60C024A16811151BC01310C821901221035E +S31540012B709212614115351BC01710C8219412A10349 +S31540012B807FFFFBED9612E14180A2200212800A5599 +S31540012B9003100080C200616880A0600012800A5163 +S31540012BA00100000011351BC01310C82190122103EA +S31540012BB09212614115151BC01710C8219412A10329 +S31540012BC07FFFFBDD9612E14180A2200112800A417E +S31540012BD001000000C204A16880A0600012800A3D85 +S31540012BE001000000901020009210200015200000E6 +S31540012BF07FFFFBD19610200080A2200012800006A4 +S31540012C0001000000C204A16880A0600002800005A6 +S31540012C10D01EE1D87FFFBB619010200FD01EE1D8B6 +S31540012C207FFFFBC5D41EA1D080A2200212800A25B7 +S31540012C3001000000C204A16880A0600012800A2140 +S31540012C400100000011151BC01310C8219012210369 +S31540012C509212614115151BE81710C8219412A10360 +S31540012C607FFFFBB59612E14180A2200112800A1135 +S31540012C7001000000C204A16880A0600012800A0D14 +S31540012C800100000011151BE81310C8219012210301 +S31540012C909212614115151BC01710C8219412A10348 +S31540012CA07FFFFBA59612E14180A22002128009FD19 +S31540012CB001000000C204A16880A06000128009F9E9 +S31540012CC001000000D41CE1E011151BE81310C821D6 +S31540012CD0901221037FFFFB989212614180A220034B +S31540012CE01280000B01000000C404A16803000070BB +S31540012CF08210601F8408800103000010821060105A +S31540012D0080A0800102800005D41D61F07FFFBB23B6 +S31540012D109010200FD41D61F011151BE81310C82126 +S31540012D20901221037FFFFB849212614180A220030E +S31540012D301280000B01000000C404A168030000706A +S31540012D408210601F84088001030000108210601009 +S31540012D5080A0800102800005D41DE1B87FFFBB0F32 +S31540012D609010200FD41DE1B8C024A16811151BE8AD +S31540012D701310C821901221037FFFFB6F921261410C +S31540012D8080A22002128009BF03100080C200616840 +S31540012D9080A06000128009BB01000000D01DE1B88F +S31540012DA015151BE81710C8219412A1037FFFFB627A +S31540012DB09612E14180A22001128009B6010000006D +S31540012DC0C204A16880A06000128009B2010000001F +S31540012DD0D01CE1E015151BE81710C8219412A10378 +S31540012DE07FFFFB559612E14180A220031280000B22 +S31540012DF001000000C404A168030000708210601F36 +S31540012E0084088001030000108210601080A08001B8 +S31540012E1002800005D01D61F07FFFBAE09010200FBF +S31540012E20D01D61F015151BE81710C8219412A10396 +S31540012E307FFFFB419612E14180A220031280000BE5 +S31540012E4001000000C404A168030000708210601FE5 +S31540012E5084088001030000108210601080A0800168 +S31540012E6002800004010000007FFFBACC9010200FC1 +S31540012E70C024A168110048EA13048D15901223CD90 +S31540012E807FFFFB3E9212627880A22001128009796F +S31540012E9003100080C200616880A06000128009753D +S31540012EA001000000110048EA13048D15901223CD4C +S31540012EB07FFFFB439212627880A220011280096A49 +S31540012EC001000000C204A16880A06000128009666A +S31540012ED001000000C024A1687FFFFCBA1103C000B5 +S31540012EE023100124A807BFF8BA07BFD090100014D9 +S31540012EF09210001D7FFFFA6C94146160C2046160F8 +S31540012F00C407BFF880A0800102800E0CA014616046 +S31540012F107FFFBAA2901020102D100080901000144F +S31540012F209215A1C87FFFFA6094146160C404616080 +S31540012F30C205A1C880A0800122800DF6C4042004E8 +S31540012F407FFFBA9690102010901000149214E1E081 +S31540012F507FFFFA5594146160C4046160C204E1E0E4 +S31540012F6080A0800102800DE1B214E1E07FFFBA8BBF +S31540012F709010201090100014921561F07FFFFA4ACC +S31540012F8094146160C404A168030000708210601F3C +S31540012F9084088001030000108210601080A0800127 +S31540012FA002800004010000007FFFBA7C90102010CF +S31540012FB0C024A1687FFFFC8390102000901000146C +S31540012FC0921561F07FFFFA389414616039100080E0 +S31540012FD0C4046160C20721F880A0800122800DBD32 +S31540012FE0C40420047FFFBA6D901020107FFFFC754A +S31540012FF01103C000901000149215E1B87FFFFA2A20 +S3154001300094146160C204A1688330600E8208600333 +S3154001301080A0600202800004010000007FFFBA5FC9 +S3154001302090102010C024A1689010001D9210001429 +S315400130307FFFFA1D94146160C4046160C207BFF842 +S3154001304080A0800122800D9AC40420047FFFBA53D8 +S31540013050901020109010001D9215A1C87FFFFA1202 +S3154001306094146160C4046160C205A1C880A0800156 +S3154001307022800D84C40420047FFFBA48901020109A +S315400130809010001D9214E1E07FFFFA0794146160ED +S31540013090C4046160C204E1E080A0800122800D7019 +S315400130A0C40420047FFFBA3D901020109010001DEB +S315400130B0921561F07FFFF9FC94146160C404A16824 +S315400130C0030000708210601F840880010300001015 +S315400130D08210601080A0800102800004010000007F +S315400130E07FFFBA2E901020107FFFFC3690102000F3 +S315400130F09010001D921561F07FFFF9EB9414616009 +S31540013100C4046160C20721F880A0800122800D4D70 +S31540013110C40420047FFFBA21901020107FFFFC29B0 +S315400131201103C0009010001D9215E1B87FFFF9DE32 +S3154001313094146160C204A1688330600E8208600302 +S3154001314080A0600202800004010000007FFFBA13E4 +S3154001315090102010C024A1689015A1C892100014A7 +S315400131607FFFF9D194146160C4046160C205A1C8AE +S3154001317080A0800122800D28C40420047FFFBA0765 +S31540013180901020109015A1C89210001D7FFFF9C61E +S3154001319094146160C4046160C205A1C880A0800125 +S315400131A022800D12C40420047FFFB9FC9010201028 +S315400131B09016E1D8941461607FFFF9BB9210000824 +S315400131C0C4046160C206E1D880A0800122800CFC63 +S315400131D0C40420047FFFB9F1901020109016A1D0AD +S315400131E0941461607FFFF9B092100008C4046160D5 +S315400131F0C206A1D080A0800122800CE6C40420042E +S315400132007FFFB9E6901020109016A1D09216E1D812 +S315400132107FFFF9A594146160C404A168030000709E +S315400132208210601F84088001030000108210601024 +S3154001323080A0800102800004010000007FFFB9D711 +S31540013240901020107FFFFBDF901020009016A1D038 +S315400132509216E1D87FFFF99494146160C4046160C9 +S31540013260C20721F880A0800122800CC3C404200437 +S315400132707FFFB9CA901020107FFFFBD21103C00017 +S315400132809016E1D8C024A1689216A1D07FFFF98695 +S3154001329094146160C4046160C20721F880A0800172 +S315400132A022800CA4C40420047FFFB9BC90102010D6 +S315400132B09015A1C89215E1B87FFFF97B941461601E +S315400132C0C204A1688330600E8208600380A0600258 +S315400132D002800004010000007FFFB9B09010201069 +S315400132E0C024A1689014E1E0921000147FFFF96EAA +S315400132F094146160C4046160C204E1E080A080016D +S3154001330022800C83C40420047FFFB9A490102010AE +S315400133109014E1E09210001D7FFFF96394146160FF +S31540013320C4046160C204E1E080A0800122800C6F88 +S31540013330C40420047FFFB999901020109014E1E055 +S315400133409215A1C87FFFF95894146160C404616065 +S31540013350C204E1E080A0800122800C5BC404200409 +S315400133607FFFB98E901020109014E1E094146160B3 +S315400133707FFFF94D92100008C4046160C204E1E088 +S3154001338080A0800122800C47C40420047FFFB983BA +S31540013390901020109014E1E0921561F07FFFF94200 +S315400133A094146160C404A168030000708210601F18 +S315400133B084088001030000108210601080A0800103 +S315400133C002800004010000007FFFB97490102010B4 +S315400133D0C024A168901561F0921000147FFFF93264 +S315400133E094146160C404A168030000708210601FD8 +S315400133F084088001030000108210601080A08001C3 +S3154001340002800004010000007FFFB9649010201083 +S31540013410C024A168901561F09210001D7FFFF9222A +S3154001342094146160C404A168030000708210601F97 +S3154001343084088001030000108210601080A0800182 +S3154001344002800004010000007FFFB9549010201053 +S31540013450C024A168901561F09215A1C87FFFF912A9 +S3154001346094146160C404A168030000708210601F57 +S3154001347084088001030000108210601080A0800142 +S3154001348002800004010000007FFFB9449010201023 +S31540013490C024A168901561F09214E1E07FFFF90222 +S315400134A094146160C404A168030000708210601F17 +S315400134B084088001030000108210601080A0800102 +S315400134C002800005901561F07FFFB93490102010FD +S315400134D0901561F0C024A168941461607FFFF8F2F1 +S315400134E092100008C404A168030000708210601F96 +S315400134F084088001030000108210601080A08001C2 +S3154001350002800004010000007FFFB92490102010C2 +S31540013510C024A168901561F09215E1B87FFFF8E2E9 +S3154001352094146160C204A1688330600E820860030E +S3154001353080A0600202800004010000007FFFB917ED +S31540013540901020107FFFFB1F1103C0000310008065 +S31540013550C024A1688210633010800009B010200099 +S315400135607FFFB90E90102010C207BFC4B0062001DC +S3154001357080A6200D0280002282006018852E20033D +S31540013580912E200590220002051000808410A32070 +S31540013590C227BFC490008008932E20011510012434 +S315400135A0920240189412A16092026001932A60032C +S315400135B07FFFF8BD92008009C207BFC4C600400024 +S315400135C0C404000080A0C00232BFFFE6C227BFC4C8 +S315400135D0C60060040910012488112160C401200439 +S315400135E080A0C00232BFFFDFC227BFC4B0062001A0 +S315400135F080A6200D12BFFFE282006018C204A168B6 +S3154001360080A0600012800BA3010000001110008110 +S3154001361094146160901220587FFFF8A3920220080B +S315400136200310008082106320C4006148C2046160B7 +S3154001363080A0800102800B86071000807FFFB8D7EB +S315400136409010201011100081941461609012207026 +S315400136507FFFF8959202200809100080C20461603C +S3154001366088112320C401216080A0800122800B693A +S31540013670C40121647FFFB8C9901020101110008148 +S3154001368094146160901220887FFFF8879202200887 +S315400136900310008082106320C4006178C204616017 +S315400136A080A0800102800B4B071000807FFFB8BBD2 +S315400136B090102010C024A168111000009210200023 +S315400136C0150FFC007FFFF94F96102000030FFC00F9 +S315400136D080A2000102800B3880A260007FFFB8AF54 +S315400136E0901020101110000092102000152FFC00A0 +S315400136F07FFFF944961020000310020080A20001CA +S3154001370002800B2680A260007FFFB8A49010201093 +S315400137101130000092102000150FFC007FFFF9398F +S31540013720961020000330020080A2000102800B1493 +S3154001373080A260007FFFB8999010201011300000E0 +S3154001374092102000152FFC007FFFF92E96102000C5 +S31540013750032FFC0080A2000102800B0280A26000C0 +S315400137607FFFB88E90102010111000007FFFF92FB7 +S31540013770130FE0000310100080A20001128007B66B +S3154001378001000000C204A16880A06000128007B257 +S3154001379001000000111000007FFFF92E130FE00019 +S315400137A0030FE00080A20001128007A7010000007C +S315400137B0C204A16880A06000128007A30100000036 +S315400137C009100080C024A16890100014941461600F +S315400137D07FFFF848921121C0C4046160C206A1D09E +S315400137E080A0800122800ACFC40420047FFFB86BE9 +S315400137F090102011C024A168901000149216E1D8AF +S315400138007FFFF83C94146160C4046160C207BFC87D +S3154001381080A0800122800ABAC40420047FFFB85FD9 +S3154001382090102011901000149214E1E07FFFF831BE +S3154001383094146160C4046160C204E1E080A0800127 +S3154001384022800AA6C40420047FFFB8549010201198 +S3154001385090100014921561F07FFFF8269414616070 +S31540013860C4046160C20721F880A0800122800A8ACF +S31540013870C40420047FFFB849901020119010001411 +S315400138809215E1B87FFFF81B941461600300007044 +S31540013890C404A168840880010300002080A080013F +S315400138A002800004010000007FFFB83C9010201107 +S315400138B0C024A1689010001D921000147FFFF80DDE +S315400138C094146160C4046160C207BFD080A08001C6 +S315400138D022800A68C40420047FFFB830901020116A +S315400138E0031000809207BFC8901061C07FFFF801A6 +S315400138F094146160C4046160C20721F880A080010C +S3154001390022800A4CC40420047FFFB8249010201161 +S3154001391009100080C024A168901121C09216E1D8F7 +S315400139207FFFF7F494146160C4046160071000805E +S31540013930C200E1C080A0800122800A34C404200470 +S315400139407FFFB816901020119010001D9214E1E0EF +S315400139507FFFF7E894146160C4046160C204E1E04A +S3154001396080A0800122800A20C40420047FFFB80B76 +S31540013970901020079010001D921561F07FFFF7DD32 +S3154001398094146160C404A168030000708210601F32 +S3154001399084088001030000108210601080A080011D +S315400139A002800004010000007FFFB7FC9010201147 +S315400139B0C024A1689010001D9215E1B87FFFF7CD94 +S315400139C09414616003000070C404A16884088001F6 +S315400139D00300002080A08001028000040100000055 +S315400139E07FFFB7EE90102011C024A1689016A1D098 +S315400139F0921000147FFFF7BF94146160C4046160A4 +S31540013A00C206A1D080A08001228009ECC404200412 +S31540013A107FFFB7E290102011091000809016A1D0C7 +S31540013A20921121C07FFFF7B394146160C4046160B1 +S31540013A30C206E1D880A08001228009D5C4042004B1 +S31540013A407FFFB7D6901020119015A1C894146160DC +S31540013A507FFFF7A892100008C4046160C20721F8ED +S31540013A6080A08001228009BAC40420047FFFB7CB1D +S31540013A7090102011C024A1689015A1C89214E1E0CC +S31540013A807FFFF79C94146160C4046160C204E1E065 +S31540013A9080A08001228009A5C40420047FFFB7BF0E +S31540013AA0901020119015A1C8921561F07FFFF791F2 +S31540013AB094146160C4046160C20721F880A080014A +S31540013AC02280098AC40420047FFFB7B490102011D4 +S31540013AD0C024A1689015A1C89215E1B87FFFF7856A +S31540013AE09414616003000070C404A16884088001D5 +S31540013AF00300002080A08001028000040100000034 +S31540013B007FFFB7A690102011C024A1689014E1E070 +S31540013B10921000147FFFF77794146160C4046160CA +S31540013B20C204E1E080A0800122800967C404200428 +S31540013B307FFFB79A901020119014E1E09210001D7A +S31540013B407FFFF76C94146160C4046160C204E1E0D4 +S31540013B5080A0800122800953C40420047FFFB78FCF +S31540013B60901020119014E1E09215A1C87FFFF761F2 +S31540013B7094146160C4046160C204E1E080A08001E4 +S31540013B802280093FC40420047FFFB784901020118E +S31540013B909014E1E0941461607FFFF756921000089B +S31540013BA0C4046160C204E1E080A080012280092B47 +S31540013BB0C40420047FFFB779901020119014E1E0EE +S31540013BC0921561F07FFFF74B94146160C404616004 +S31540013BD0C20721F880A080012280090FC404200475 +S31540013BE07FFFB76E901020119014E1E09215E1B875 +S31540013BF07FFFF7409414616003000070C404A1681C +S31540013C00840880010300002080A080010280000515 +S31540013C10901561F07FFFB76190102011901561F00A +S31540013C20921000147FFFF73394146160C404A168B5 +S31540013C30030000708210601F840880010300001099 +S31540013C408210601080A08001028000040100000003 +S31540013C507FFFB75290102011C024A168901561F0E2 +S31540013C609210001D7FFFF72394146160C404A1687C +S31540013C70030000708210601F840880010300001059 +S31540013C808210601080A080010280000401000000C3 +S31540013C907FFFB74290102011C024A168901561F0B2 +S31540013CA09215A1C87FFFF71394146160C404A168FB +S31540013CB0030000708210601F840880010300001019 +S31540013CC08210601080A08001028000040100000083 +S31540013CD07FFFB73290102011C024A168901561F082 +S31540013CE09214E1E07FFFF70394146160C404A16874 +S31540013CF0030000708210601F8408800103000010D9 +S31540013D008210601080A0800102800005901561F04C +S31540013D107FFFB72290102011901561F0C024A16851 +S31540013D20941461607FFFF6F392100008C404A16801 +S31540013D30030000708210601F840880010300001098 +S31540013D408210601080A08001028000040100000002 +S31540013D507FFFB71290102011C024A168901561F021 +S31540013D609215E1B87FFFF6E3941461600300007099 +S31540013D70C404A168840880010300002080A080015A +S31540013D8002800005051FC0007FFFB7049010201177 +S31540013D90051FC0000700C0008410A1028610E0B0D4 +S31540013DA0C024A168B007BFE0C43FBFE805203E83F9 +S31540013DB0070021C88410A3FF8610E3A19007BFE83E +S31540013DC092100018C43FBFE07FFFF6CA9407BFD8E0 +S31540013DD0C407BFD8033FFC0080A080010280088051 +S31540013DE0C207BFDC7FFFB6ED9010201105004000F1 +S31540013DF00700C0008410A1028610E0B0C024A1686B +S31540013E009007BFE8C43FBFE805108683070021C875 +S31540013E108410A3FF8610E3A1921000189407BFD81F +S31540013E207FFFF6B4C43FBFE0C207BFDCC407BFD8BB +S31540013E30809080011280000B03100080C4006168ED +S31540013E40030000708210601F840880010300001087 +S31540013E508210600480A0800102800005050006AF43 +S31540013E607FFFB6CE90102011050006AF86102010B8 +S31540013E70C024A1689007BFE8C43FBFE8050FFC0016 +S31540013E80070281D88410A0408610E10C92100018D8 +S31540013E909407BFD87FFFF697C43FBFE0C407BFD89A +S31540013EA0030006AE8210639580A08001028008421D +S31540013EB0C407BFDC7FFFB6B990102011050006AFDD +S31540013EC086102010C024A1689007BFE8C43FBFE810 +S31540013ED0050FFFFF070281D88410A3408610E10C2D +S31540013EE0921000189407BFD87FFFF682C43FBFE007 +S31540013EF0C207BFDCC407BFD8809080011280000B87 +S31540013F0003100080C4006168030000708210601FC6 +S31540013F1084088001030000108210600480A08001A3 +S31540013F2002800004010000007FFFB69C9010201122 +S31540013F30C024A168111088007FFFF75A13100100B1 +S31540013F40031066C9821062CA80A20001128005BAB6 +S31540013F5003100080C200616880A06000128005B62F +S31540013F60010000001111BBFE130C70407FFFF74D9D +S31540013F70901223FF031527CA8210611E80A20001F9 +S31540013F80128005A901000000C204A16880A060005A +S31540013F90128005A501000000111E607E1310C7FFA7 +S31540013FA07FFFF740921263FC031D73FC8210633856 +S31540013FB080A200011280059801000000C204A16898 +S31540013FC080A06000128005940100000011002000CD +S31540013FD0130FE0007FFFF7339212600180A22000A9 +S31540013FE01280000B01000000C404A16803000070A8 +S31540013FF08210601F84088001030000108210600453 +S3154001400080A0800102800005110FE0007FFFB663AA +S3154001401090102011110FE000C024A1687FFFF72105 +S3154001402092100008030FE00080A20001128005767D +S3154001403003100080C200616880A060001280057292 +S315400140400100000011002000130FE0007FFFF7156B +S315400140509212600180A220001280000B0100000034 +S31540014060C404A168030000708210601F84088001A7 +S31540014070030000108210600480A0800102800005C8 +S31540014080031000807FFFB645901020110310008079 +S31540014090C024A168921061C0901000147FFFF607FA +S315400140A094146160C404616007100080C200E1C0DD +S315400140B080A08001228007B6C40420047FFFB63762 +S315400140C090102012901000149216E1D87FFFF5FB54 +S315400140D094146160C4046160C206E1D880A0800185 +S315400140E0228007A0C40420047FFFB62C9010201222 +S315400140F0901000149214E1E07FFFF5F09414616092 +S31540014100C4046160C204E1E080A080012280078C82 +S31540014110C40420047FFFB621901020129010001491 +S31540014120921561F07FFFF5E594146160C404616006 +S31540014130C20721F880A0800122800770C4042004B0 +S315400141407FFFB61690102012901000149215E1B818 +S315400141507FFFF5DA9414616003000070C404A1681E +S31540014160840880010300002080A0800102800004B1 +S31540014170010000007FFFB60990102012C024A168FB +S315400141809010001D921000147FFFF5CC94146160CD +S31540014190C4046160C207BFD080A080012280074E5F +S315400141A0C40420047FFFB5FD901020120310008047 +S315400141B09216A1D0901061C07FFFF5C09414616042 +S315400141C0C4046160C20721F880A0800122800732C1 +S315400141D0C40420047FFFB5F190102012C024A168C9 +S315400141E09010001D9214E1E07FFFF5B494146160D4 +S315400141F0C4046160C204E1E080A080012280071D01 +S31540014200C40420047FFFB5E5901024999010001D49 +S31540014210921561F07FFFF5A994146160C404616051 +S31540014220C20721F880A0800122800701C40420042E +S315400142307FFFB5DA901020129010001D9215E1B85B +S315400142407FFFF59E9414616003000070C404A16869 +S31540014250840880010300002080A0800102800004C0 +S31540014260010000007FFFB5CD90102012C024A16847 +S315400142709015A1C8921000147FFFF59094146160C7 +S31540014280C4046160C205A1C880A08001228006DD08 +S31540014290C40420047FFFB5C1901020129015A1C817 +S315400142A09210001D7FFFF58594146160C40461601E +S315400142B0C20721F880A08001228006C2C4042004DE +S315400142C07FFFB5B690102012C024A1689015A1C8F1 +S315400142D09214E1E07FFFF57994146160C404616052 +S315400142E0C204E1E080A08001228006ADC40420041E +S315400142F07FFFB5AA901020129015A1C8921561F0C2 +S315400143007FFFF56E94146160C4046160C20721F8B1 +S3154001431080A0800122800691C40420047FFFB59FBE +S31540014320901020129015A1C89215E1B87FFFF56350 +S315400143309414616003000070C404A168840880017C +S315400143400300002080A080010280000401000000DB +S315400143507FFFB59290102012C024A1689014E1E02D +S31540014360921000147FFFF55594146160C404616096 +S31540014370C204E1E080A080012280066FC4042004CB +S315400143807FFFB586901020129014E1E09210001D37 +S315400143907FFFF54A94146160C4046160C204E1E0A0 +S315400143A080A080012280065BC40420047FFFB57B88 +S315400143B0901020129014E1E09215A1C87FFFF53FBD +S315400143C094146160C4046160C204E1E080A080018C +S315400143D022800647C40420047FFFB5709010201246 +S315400143E09014E1E0941461607FFFF5349210000867 +S315400143F0C4046160C204E1E080A0800122800633EA +S31540014400C40420047FFFB565901020129014E1E0AA +S31540014410921561F07FFFF52994146160C404A16887 +S31540014420030000708210601F8408800103000010A1 +S315400144308210601080A0800102800004010000000B +S315400144407FFFB55690102012C024A168901561F0E7 +S31540014450921000147FFFF51994146160C404A16899 +S31540014460030000708210601F840880010300001061 +S315400144708210601080A080010280000401000000CB +S315400144807FFFB54690102012C024A1689210001DEE +S31540014490901561F07FFFF50994146160C404A16829 +S315400144A0030000708210601F840880010300001021 +S315400144B08210601080A0800102800004010000008B +S315400144C07FFFB53690102012C024A168901561F087 +S315400144D09215A1C87FFFF4F994146160C404A168E0 +S315400144E0030000708210601F8408800103000010E1 +S315400144F08210601080A0800102800004010000004B +S315400145007FFFB52690102012C024A168901561F056 +S315400145109214E1E07FFFF4E994146160C404A16858 +S31540014520030000708210601F8408800103000010A0 +S315400145308210601080A0800102800005901561F014 +S315400145407FFFB51690102012901561F0C024A16826 +S31540014550941461607FFFF4D992100008C404A168E5 +S31540014560030000708210601F840880010300001060 +S315400145708210601080A080010280000401000000CA +S315400145807FFFB50690102012C024A168901561F0F6 +S315400145909215E1B87FFFF4C994146160C204A16821 +S315400145A08330600E8208600380A0600202800005AD +S315400145B01103C0007FFFB4F9901020121103C0000F +S315400145C07FFFF70031100080B0162228C024A16871 +S315400145D010800008BA1020007FFFB4F0901020121E +S315400145E0BA07600180A7600602800024B006201841 +S315400145F0832F60030910008088112218912F6005CE +S31540014600932F6001902200019202401D9001000803 +S315400146109202600115100124932A60039412A1604D +S315400146207FFFF4A692010009C4060000C2040000FF +S3154001463080A0800112BFFFE907100124C4062004AF +S315400146408610E160C200E00480A0800112BFFFE352 +S315400146500910008088112168C201000080A0600015 +S3154001466012BFFFDE01000000BA07600180A76006A5 +S3154001467012BFFFE0B006201811100080941461604B +S31540014680901222A87FFFF48D920220080310008029 +S3154001469082106218C40060A0C204616080A08001DB +S315400146A00280057A071000807FFFB4BC901020126B +S315400146B0C024A1681110008094146160901222C038 +S315400146C07FFFF47E9202200809100080C2046160D7 +S315400146D088112218C40120B880A080012280055D7E +S315400146E0C40120BC7FFFB4AD90102012C024A16844 +S315400146F01110008094146160901222D87FFFF46FEC +S31540014700920220080310008082106218C40060D013 +S31540014710C204616080A080010280053E07100080CE +S315400147207FFFB49E90102012C024A1681110008012 +S3154001473094146160901222F07FFFF4609202200887 +S3154001474009100080C204616088112218C40120E862 +S3154001475080A0800122800521C40120EC7FFFB48F17 +S3154001476090102012C024A168111000809414616039 +S31540014770901223087FFFF451920220080310008013 +S3154001478082106218C4006100C204616080A0800189 +S3154001479002800502071000807FFFB480901020122E +S315400147A0C024A168111010007FFFF53413100000DA +S315400147B00310300080A20001128003B7031000806D +S315400147C0C200616880A06000128003B3010000004E +S315400147D0111FE000131000007FFFF43D9414616047 +S315400147E0C4046160031FFC0080A08001228004E3B1 +S315400147F0C20420047FFFB4699010201B111FE00002 +S31540014800133000007FFFF43294146160C404616088 +S31540014810033FFC0080A08001228004D0C204200412 +S315400148207FFFB45E9010201C1110000092102010E2 +S315400148307FFFF4279414616003000070C404A168EB +S31540014840840880010300002080A0800102800004CA +S31540014850010000007FFFB4519010201DC024A168C3 +S3154001486011002000130FC0007FFFF41994146160FA +S31540014870C4046160030E000080A08001228004AF61 +S31540014880C20420047FFFB4459010201E111FDFFF94 +S3154001489013100000901223FF7FFFF40D9414616002 +S315400148A0C40461600311FFFF821063FF80A0800191 +S315400148B022800499C40420047FFFB4389010201F3D +S315400148C0111FD000130FF0007FFFF40194146160B3 +S315400148D0C40461600311FC8080A0800122800486AB +S315400148E0C20420047FFFB42D90102021111FDFFF49 +S315400148F094146160901223FF7FFFF3F59210000834 +S31540014900C40461600313FBFF821063FF80A0800132 +S315400149102280046FC40420047FFFB420901020201D +S315400149207FFFF6281103C0009007BFC8C024A168C5 +S315400149307FFFF3F692146160C4046160C207BFC889 +S3154001494080A0800122800459C40420047FFFB4134F +S315400149509010201309100080921461607FFFF3EBE1 +S31540014960901121C005100080C200A1C0C40461603D +S3154001497080A0800102800442071000807FFFB407B7 +S31540014980901020139016E1D87FFFF3E092146160F6 +S31540014990C4046160C206E1D880A080010280042D72 +S315400149A0091000807FFFB3FD901020139016A1D00F +S315400149B07FFFF3D692146160C4046160C20721F897 +S315400149C080A0800122800413C40420047FFFB3F336 +S315400149D090102013C024A168901561F07FFFF3CB9E +S315400149E092146160C4046160C20721F880A080010D +S315400149F0228003F8C40420047FFFB3E890102013FB +S31540014A00C024A1689014E1E07FFFF3C09214616075 +S31540014A10C204E1E0C404616080A08001228003E415 +S31540014A20C20660047FFFB3DD9010201305100C0011 +S31540014A30861020009010001492146160C43FBFF8A4 +S31540014A4005300F78070C00088610E0017FFFF3AFB1 +S31540014A50C43FBFF0C40461600310040080A080011C +S31540014A60228003CBC20420047FFFB3CC90102013D5 +S31540014A70A607BFF0921461607FFFF3A49010001364 +S31540014A80C20721F8C404616080A08001028003B09E +S31540014A90051000807FFFB3C1901020139015E1B837 +S31540014AA07FFFF39A92146160C204A1688330600E5D +S31540014AB08208600380A060020280000401000000B9 +S31540014AC07FFFB3B690102013C024A1687FFFF47F07 +S31540014AD01111F2000310E80080A20001128002EBDE +S31540014AE003100080C200616880A06000128002E766 +S31540014AF0010000007FFFF5B3111000001101F58997 +S31540014B007FFFF472901221E20308E96480A200015A +S31540014B10128002DB01000000C204A16880A060008F +S31540014B20128002D7010000007FFFF4681112A2082B +S31540014B300311410080A20001128002CE0100000053 +S31540014B40C204A16880A06000128002CA0100000070 +S31540014B507FFFF59C11001000901000149215E1B8EA +S31540014B607FFFF35194146160C404616003100C002B +S31540014B7080A080012280036EC20420047FFFB38798 +S31540014B80901020149015E1B8921000137FFFF34B5B +S31540014B9094146160C40461600320000080A0800118 +S31540014BA02280035BC20420047FFFB37C9010201453 +S31540014BB07FFFF38E90102001030FE00080A20001D9 +S31540014BC0128002A901000000C204A16880A0600011 +S31540014BD0128002A5010000007FFFF37C90102001A6 +S31540014BE0030FFC0080A200010280034280A2600004 +S31540014BF07FFFB36A901020147FFFF57211101000E9 +S31540014C00D41EE1D87FFFF3FFD01DE1B8C206A1D083 +S31540014C10D024616080A040080280032BD224200466 +S31540014C207FFFB35E901020227FFFF56611100000D2 +S31540014C30050FFC00861020009010001492100013FE +S31540014C40C43FBFF8050F2800070400808610E0F036 +S31540014C50941461607FFFF314C43FBFF0C4046160E4 +S31540014C60030FFC0080A0800122800313C2042004AC +S31540014C707FFFB34A901020157FFFF55211200000A7 +S31540014C80050FFC00861020009010001492100013AE +S31540014C90C43FBFF805001400070000408610E0013C +S31540014CA0941461607FFFF300C43FBFF0C4046160A8 +S31540014CB0030FFC0080A08001228002FBC204200475 +S31540014CC07FFFB336901020157FFFF53E113000006F +S31540014CD0052FFC008610200090100014921000133E +S31540014CE0C43FBFF805201400070000408610E001CC +S31540014CF0941461607FFFF2ECC43FBFF0C40461606D +S31540014D00032FFC0080A08001228002E3C20420041C +S31540014D107FFFB322901020157FFFF52A1110000066 +S31540014D20050FFC0086102000901000149215A1C8B2 +S31540014D30C43FBFF87FFFF2DC94146160C404616034 +S31540014D40C205A1C880A08001228002CCC4042004EF +S31540014D507FFFB312901020157FFFF51A1120000036 +S31540014D60050FFC0086102000901000149215A1C872 +S31540014D70C43FBFF805001400070000408610E0015B +S31540014D80941461607FFFF2C8C43FBFF0C404616000 +S31540014D90C205A1C880A08001228002B1C4042004BA +S31540014DA07FFFB2FE901020157FFFF50611300000FF +S31540014DB0052FFC0086102000901000149215A1C802 +S31540014DC0C43FBFF805201400070000408610E001EB +S31540014DD0941461607FFFF2B4C43FBFF0C205A1C81D +S31540014DE0C404616080A0800102800296091000809F +S31540014DF07FFFB2EA901020157FFFF4F211100000F8 +S31540014E00050FFC008610200190100014921000132B +S31540014E10C43FBFF80510000086102001941461605C +S31540014E207FFFF2A6C43FBFF0C404616003100000D7 +S31540014E3080A080012280027FC20420047FFFB2D776 +S31540014E40901020157FFFF4DF112000009010001410 +S31540014E50921000137FFFF29994146160C40461605B +S31540014E600310000080A080012280026EC20420044B +S31540014E707FFFB2CA901020157FFFF4D21130000097 +S31540014E80052FFC008610200190100014921000138B +S31540014E90C43FBFF87FFFF28994146160C404616026 +S31540014EA00330000080A080012280025AC2042004FF +S31540014EB07FFFB2BA901020157FFFF4C21110000097 +S31540014EC0050FFEAE071CD2E88410A1548610E011EE +S31540014ED09010001492100013C43FBFF8050FFC0454 +S31540014EE0072F26158410A0128610E23194146160B2 +S31540014EF07FFFF280C43FBFF0C4046160030FFEA789 +S31540014F008210629680A080012280023CC404200463 +S31540014F107FFFB2A2901020157FFFF4AA1120000056 +S31540014F2090100014921000137FFFF2729414616086 +S31540014F30C4046160030FFEA78210629680A08001BF +S31540014F4022800228C40420047FFFB29490102015C9 +S31540014F507FFFF49C11300000052FFC04072F261516 +S31540014F608410A0128610E2319010001492100013A2 +S31540014F70C43FBFF07FFFF25F94146160C404616077 +S31540014F80032FFEA78210629680A080012280020F25 +S31540014F90C40420047FFFB281901020157FFFF4895D +S31540014FA011100000051038008610200090100014E2 +S31540014FB092100013C43FBFF8051010008610200060 +S31540014FC0941461607FFFF24BC43FBFF0C40461603B +S31540014FD00310240080A08001228001F8C20420042D +S31540014FE07FFFB26E901020157FFFF47611200000EE +S31540014FF090100014921000137FFFF23E94146160EA +S31540015000C40461600310240080A08001228001E76E +S31540015010C20420047FFFB261901020157FFFF4691E +S315400150201130000090100014921000137FFFF231EE +S3154001503094146160C40461600310240080A080015F +S31540015040228001D6C20420047FFFB254901020155D +S315400150507FFFF45C1110000011002000130FE000E7 +S315400150607FFFF3109212600180A22000128001C8D6 +S31540015070010000007FFFF4531120000011002000C1 +S31540015080130FE0007FFFF3079212600180A2200018 +S31540015090128001BC010000007FFFF44A113000007C +S315400150A011002000130FE0007FFFF2FE9212600113 +S315400150B080A22000128001B0010000007FFFF44170 +S315400150C011100000050FFC008610200090100014FE +S315400150D0921461607FFFF20DC43FBFF8C404616062 +S315400150E0C207BFF880A080012280019AC40420042F +S315400150F07FFFB22A901020157FFFF4321120000065 +S31540015100901000147FFFF20192146160C404616043 +S31540015110C207BFF880A0800122800185C404200413 +S315400151207FFFB21E901020157FFFF426113000003C +S31540015130901000147FFFF1F592146160C404616020 +S31540015140C207BFF880A0800122800170C4042004F8 +S315400151507FFFB212901020157FFFF41A1110000044 +S315400151602B0FDFFF901563FF7FFFF2D8AA1563FF70 +S3154001517080A2001502800004010000007FFFB207F3 +S31540015180901020157FFFF40F11200000110FDFFF53 +S315400151907FFFF2CE901223FF030FE00080A20001B1 +S315400151A002800004010000007FFFB1FC9010201531 +S315400151B07FFFF404113000002B0FDFFF901563FFD2 +S315400151C07FFFF2C2AA1563FF80A200150280000488 +S315400151D0010000007FFFB1F1901020157FFFF3F928 +S315400151E0901020007FFFF2C190146160C404616099 +S315400151F0032FFE0080A0800122800140C2042004CA +S315400152007FFFB1E6901020162B1001247FFFF2C1DB +S3154001521090156168C4056168032FF00080A0800184 +S3154001522002800004010000007FFFB1DC90102016CF +S315400152307FFFF2C290156168C4056168030FE00003 +S3154001524080A0800102800004010000007FFFB1D3ED +S31540015250901020167FFFF2C990146160C40461600A +S31540015260030FFBF7821063F080A080012280011CAE +S31540015270C40420047FFFB1C9901020169215E1B8ED +S31540015280901000147FFFF19B94146160C204A168E1 +S315400152908330600E8208600780A0600202800005AC +S315400152A0031000807FFFB1BD9010201703100080CE +S315400152B0C400617003100046E40060F8821060F893 +S315400152C080A0400202800005031000807FFFB1B339 +S315400152D09010201803100080C200617480A0401213 +S315400152E002800005031000807FFFB1AC90102018AA +S315400152F003100080C200617880A06000128000F433 +S315400153000100000003100080C200617C80A06000A3 +S31540015310128000EC010000007FFFF14E0100000009 +S3154001532080A220010280052D01000000050C4029C4 +S315400153300723CD1B8410A0068610E09B9010001415 +S31540015340C027BFF0C027BFF4C43FBFF82910008172 +S315400153507FFFF1962B100082AA1560A0A4102000B1 +S31540015360A81520A0AC146160BA1000151080000881 +S31540015370AE1000107FFFB18990102019A404A0043B +S3154001538080A4A400228000172B100084C2050012BD +S31540015390C224C000901000137FFFF18792100016BF +S315400153A0832CA001C4040000C605400180A0C002B0 +S315400153B012BFFFF182074001C4006004C205E00448 +S315400153C080A0800112BFFFEC01000000A404A004EC +S315400153D080A4A40032BFFFEFC20500122B10008447 +S315400153E0A2146160AA1560A0A4102000AE10001599 +S315400153F010800008AC1000107FFFB1689010201A91 +S31540015400A404A00880A4A4000280001501000000A5 +S31540015410C2050012C224C000921000117FFFF13B69 +S3154001542090100013C4054012C204000080A0800100 +S3154001543012BFFFF28205C012C4006004C205A00477 +S3154001544080A0800112BFFFED01000000A404A00866 +S3154001545080A4A40032BFFFF0C205001281C7E00854 +S3154001546081E800007FFFB14D9010200F30BFF69AC2 +S315400154707FFFB14A9010200F10BFF68C110048EA09 +S315400154807FFFB1469010200F10BFF646D01DE1B800 +S315400154907FFFB1429010200F10BFF64FD01CE1E0C4 +S315400154A07FFFB13E9010200F10BFF608D41CE1E0FB +S315400154B07FFFB13A9010200F10BFF5F411151BE88C +S315400154C07FFFB1369010200F10BFF5E011151BC0BC +S315400154D07FFFB1329010200F10BFF5C4901020000D +S315400154E07FFFB12E9010200F10BFF5B011351BC0B4 +S315400154F07FFFB12A9010200F10BFF57AD01CE1E052 +S315400155007FFFB1269010200F10BFF583D01D61F0AB +S315400155107FFFB1229010200F10BFF565D01DE1B875 +S315400155207FFFB11E9010200F10BFF53FD41D61F0D3 +S315400155307FFFB11A9010200F10BFF52ED41CE1E069 +S315400155407FFFB1169010200F10BFF51A11151BE8F9 +S315400155507FFFB1129010200F10BFF50611151BC029 +S315400155607FFFB10E9010200F10BFF4DA11351BC02A +S315400155707FFFB10A9010200F10BFF4E69010200073 +S315400155807FFFB1069010200E30BFF4BF7FFFB103FD +S315400155909010200E10BFF4B11128C6AF7FFFB0FFA7 +S315400155A09010200E10BFF4A11108C6AF7FFFB0FBCB +S315400155B09010200E10BFF4911128C6AF7FFFB0F7AF +S315400155C09010200E10BFF4822108C6AF7FFFB0F3C2 +S315400155D09010200D30BFF4517FFFB0F09010200D98 +S315400155E010BFF444371000807FFFB0EC9010200CC0 +S315400155F010BFF3A2271000807FFFB0E89010200B68 +S3154001560030BFF34F7FFFB0E59010201110BFFA8FE6 +S31540015610110020007FFFB0E19010201110BFFA6DFC +S31540015620110020007FFFB0DD9010201110BFFA5C01 +S31540015630111E607E7FFFB0D99010201110BFFA4B2A +S315400156401111BBFE7FFFB0D59010201010BFF85E40 +S31540015650091000807FFFB0D19010201010BFF84F85 +S31540015660111000007FFFB0CD9010201430BFFD5BBC +S315400156707FFFB0CA9010202330BFFD367FFFB0C7F1 +S315400156809010202330BFFD297FFFB0C49010201316 +S3154001569030BFFD197FFFB0C19010201210BFFC4EE4 +S315400156A0111FE00012BFF30A01000000C204A16805 +S315400156B080A0600002BFF3080100000030BFF30480 +S315400156C07FFFB0B69010201830BFFF147FFFB0B3F4 +S315400156D09010201810BFFF0D031000800303FF1226 +S315400156E08210604A80A0800112BFFEE39215E1B8A4 +S315400156F010BFFEE59010001480A0600002BFFEC4FA +S315400157002B10012430BFFEBFC207BFFC80A0800121 +S3154001571012BFFE9001000000C204A16880A0600093 +S3154001572002BFFE8E0100000030BFFE8AC207BFFCE9 +S3154001573080A0800112BFFE7B01000000C204A16867 +S3154001574080A0600002BFFE790100000030BFFE75F7 +S31540015750C207BFFC80A0800112BFFE6601000000A7 +S31540015760C204A16880A0600002BFFE64010000007F +S3154001577030BFFE607FFFB0899010201530BFFE50CC +S315400157807FFFB0869010201530BFFE447FFFB08367 +S315400157909010201530BFFE3880A0600002BFFE2D5C +S315400157A00100000030BFFE2980A0600002BFFE1C40 +S315400157B00100000030BFFE1880A0600002BFFE0B52 +S315400157C00100000030BFFE07032C1B3482106030FD +S315400157D080A0800112BFFDF00100000030BFFDF046 +S315400157E0032C1B348210603080A0800112BFFDD78C +S315400157F00100000030BFFDD7032C1B348210602FFF +S3154001580080A0800112BFFDC30100000030BFFDC36F +S3154001581080A0600312BFFDA70100000030BFFDA7B5 +S3154001582080A0600312BFFD930100000030BFFD93CD +S3154001583080A0600212BFFD820100000030BFFD82E0 +S31540015840C4042004881121C8C201200480A080011B +S3154001585012BFFD680100000030BFFD6807100080DF +S315400158608610E1C8C200E00480A0800112BFFD4D50 +S315400158700100000030BFFD4D09100080881121C88C +S31540015880C201200480A0800112BFFD320100000048 +S3154001589030BFFD3280A0600112BFFD1E0100000035 +S315400158A030BFFD1E80A0600112BFFD060100000051 +S315400158B030BFFD0680A0600002BFFCF00100000081 +S315400158C030BFFCEC071000808610E1D0C200E00436 +S315400158D080A0400912BFFCD301000000C204A168A8 +S315400158E080A0600002BFFCD10100000030BFFCCDAA +S315400158F012BFFCC001000000C204A16880A0600084 +S3154001590002BFFCBE0100000030BFFCBA80A06000AF +S3154001591012BFFCA601000000C204A16880A060007D +S3154001592002BFFCA40100000030BFFCA080A06000C3 +S3154001593012BFFC9301000000C204A16880A0600070 +S3154001594002BFFC929015E1B830BFFC8D8410A1F8DE +S31540015950C200A004C404200480A0800112BFFC4EF2 +S3154001596001000000C404A168030000708210601F9A +S3154001597084088001030000108210601080A080011D +S3154001598012BFFC459015E1B830BFFC4680A06000CF +S3154001599012BFFC3601000000C204A16880A060006D +S315400159A002BFFC35A607BFF030BFFC30C40420045B +S315400159B080A0800112BFFC1C03100080C2006168F8 +S315400159C080A0600002BFFC1B05100C0030BFFC1616 +S315400159D009100080881121F8C201200480A08001AD +S315400159E012BFFC0603100080C4006168030000700A +S315400159F08210601F8408800103000010821060102D +S31540015A0080A0800112BFFBFD0100000030BFFBFDFD +S31540015A10071000808610E1F8C200E00480A08001F2 +S31540015A2012BFFBEB01000000C404A1680300007033 +S31540015A308210601F840880010300001082106010EC +S31540015A4080A0800112BFFBE20100000030BFFBE2F3 +S31540015A50C4042004881121D8C201200480A08001F9 +S31540015A6012BFFBD101000000C204A16880A0600002 +S31540015A7002BFFBD09016A1D030BFFBCBC40420049B +S31540015A808610E1C0C200E00480A0800112BFFBBCC9 +S31540015A9001000000C204A16880A0600002BFFBBBF8 +S31540015AA09016E1D830BFFBB6C207BFCC80A08001BB +S31540015AB012BFFBA703100080C200616880A060008E +S31540015AC002BFFBA60910008030BFFBA103300000D6 +S31540015AD08210602080A0800112BFFB90010000006F +S31540015AE0C204A16880A0600002BFFB8E01000000D5 +S31540015AF030BFFB8A80A0600012BFFB7B0100000023 +S31540015B00C204A16880A0600002BFFB7A111FDFFFBB +S31540015B1030BFFB750338000080A0800112BFFB67D0 +S31540015B2001000000C204A16880A0600002BFFB66BC +S31540015B30111FD00030BFFB6180A0600012BFFB5235 +S31540015B4003100080C200616880A0600002BFFB5163 +S31540015B50111FDFFF30BFFB4C80A0600012BFFB313D +S31540015B6001000000C204A16880A0600002BFFB30B2 +S31540015B701110000030BFFB2B80A0600012BFFB1E3E +S31540015B8001000000C204A16880A0600002BFFB1DA5 +S31540015B90111FE00030BFFB18C20420048610E21832 +S31540015BA0C400E10480A0800112BFFAFC031000800A +S31540015BB0C4006168030000708210601F8408800180 +S31540015BC0030000108210600880A0800112BFFAF322 +S31540015BD00100000030BFFAF3C204200480A0800116 +S31540015BE012BFFADF03100080C40061680300007031 +S31540015BF08210601F84088001030000108210600437 +S31540015C0080A0800112BFFAD60100000030BFFAD64B +S31540015C10C20420048610E218C400E0D480A08001AA +S31540015C2012BFFAC003100080C4006168030000700F +S31540015C308210601F840880010300001082106008F2 +S31540015C4080A0800112BFFAB70100000030BFFAB749 +S31540015C50C204200480A0800112BFFAA30310008071 +S31540015C60C4006168030000708210601F84088001CF +S31540015C70030000108210600880A0800112BFFA9ACA +S31540015C800100000030BFFA9AC20420048610E218CF +S31540015C90C400E0A480A0800112BFFA840100000084 +S31540015CA0C404A168030000708210601F840880014B +S31540015CB0030000108210600480A0800112BFFA7BAD +S31540015CC00100000030BFFA7BC206600480A080015B +S31540015CD012BFF9CD01000000C204A16880A0600096 +S31540015CE002BFF9CC9014E1E030BFF9C7C2066004A7 +S31540015CF080A0800112BFF9B901000000C204A16869 +S31540015D0080A0600002BFF9B89014E1E030BFF9B35A +S31540015D10C206600480A0800112BFF9A501000000FF +S31540015D20C204A16880A0600002BFF9A49014E1E01A +S31540015D3030BFF99FC206600480A0800112BFF9916D +S31540015D4003100080C200616880A0600002BFF99024 +S31540015D509014E1E030BFF98B071000808610E1F81E +S31540015D60C200E00480A0800112BFF96D010000006D +S31540015D70C404A168030000708210601F840880017A +S31540015D80030000108210601080A0800112BFF964E8 +S31540015D909015A1C810BFF9669215E1B8C206600414 +S31540015DA080A0800112BFF95303100080C2006168D0 +S31540015DB080A0600002BFF9529015A1C830BFF94DCD +S31540015DC009100080881121F8C201200480A08001B9 +S31540015DD012BFF93C01000000C404A1680300007031 +S31540015DE08210601F84088001030000108210601039 +S31540015DF080A0800112BFF9330100000030BFF933A2 +S31540015E00071000808610E1C8C200E00480A080012E +S31540015E1012BFF92103100080C200616880A06000B2 +S31540015E2002BFF9209015A1C830BFF91B09100080A7 +S31540015E30881121F8C201200480A0800112BFF8FD1B +S31540015E4001000000C404A168030000708210601FB5 +S31540015E5084088001030000108210601080A0800138 +S31540015E6012BFF8F49010001D10BFF8F69215E1B874 +S31540015E70C206600480A0800112BFF8E303100080CF +S31540015E80C200616880A0600002BFF8E29010001D68 +S31540015E9030BFF8DD071000808610E1F8C200E0044B +S31540015EA080A0800112BFF8CC01000000C404A168A3 +S31540015EB0030000708210601F8408800103000010F7 +S31540015EC08210601080A0800112BFF8C3010000005B +S31540015ED030BFF8C3C207BFD480A0800112BFF8B259 +S31540015EE003100080C200616880A0600002BFF8B163 +S31540015EF00310008030BFF8AC09100080881121F8EA +S31540015F00C201200480A0800112BFF88E010000006A +S31540015F10C404A168030000708210601F84088001D8 +S31540015F20030000108210601080A0800112BFF88526 +S31540015F309010001410BFF8879215E1B8C2066004AC +S31540015F4080A0800112BFF87401000000C204A1685C +S31540015F5080A0600002BFF8739010001430BFF86E45 +S31540015F60071000808610E1D8C200E00480A08001BD +S31540015F7012BFF85E01000000C204A16880A0600063 +S31540015F8002BFF85D9010001430BFF8588810E1C088 +S31540015F90C201200480A0800112BFF849031000808D +S31540015FA0C200616880A0600002BFF84890100014EA +S31540015FB030BFF84303003A9A8210630F80A08001F4 +S31540015FC012BFF7BD03100080C200616880A0600067 +S31540015FD002BFF7BC050006AF30BFF7B780A060002F +S31540015FE012BFF78103100080C4006168030000708E +S31540015FF08210601F8408800103000010821060082F +S3154001600080A0800112BFF7780500400010BFF77AE3 +S315400160100700C00009100080881121F8C201200440 +S3154001602080A0800112BFF6EF01000000C404A16800 +S31540016030030000708210601F840880010300001075 +S315400160408210601080A0800112BFF6E69014E1E054 +S3154001605010BFF6E89215E1B8C206600480A080013F +S3154001606012BFF6D501000000C204A16880A06000FD +S3154001607002BFF6D49014E1E030BFF6CFC206600409 +S3154001608080A0800112BFF6C101000000C204A168D0 +S3154001609080A0600002BFF6C09014E1E030BFF6BBBD +S315400160A0C206600480A0800112BFF6AD0100000067 +S315400160B0C204A16880A0600002BFF6AC9014E1E082 +S315400160C030BFF6A7C206600480A0800112BFF699D0 +S315400160D003100080C200616880A0600002BFF6988C +S315400160E09014E1E030BFF693071000808610E1F886 +S315400160F0C200E00480A0800112BFF67401000000D6 +S31540016100C404A168030000708210601F84088001E6 +S31540016110030000108210601080A0800112BFF66B50 +S315400161200100000030BFF66BC206600480A080010A +S3154001613012BFF65B03100080C200616880A0600058 +S3154001614002BFF65A9015A1C830BFF6550910008016 +S31540016150881121F8C201200480A0800112BFF644B3 +S3154001616001000000C404A168030000708210601F92 +S3154001617084088001030000108210601080A0800115 +S3154001618012BFF63B0100000030BFF63B071000800E +S315400161908610E1D8C200E00480A0800112BFF62932 +S315400161A001000000C204A16880A0600002BFF62879 +S315400161B09015A1C830BFF623071000808610E1D0A4 +S315400161C0C200E00480A0800112BFF61203100080D5 +S315400161D0C200616880A0600002BFF611091000800C +S315400161E030BFF60CC206600480A0800112BFF5E004 +S315400161F001000000C204A16880A0600002BFF5DF73 +S315400162009010001D30BFF5DA8810E1C0C2012004AC +S3154001621080A0800112BFF5CB03100080C2006168E7 +S3154001622080A0600002BFF5CA9010001D30BFF5C5C1 +S31540016230071000808610E1F8C200E00480A08001CA +S3154001624012BFF5B201000000C404A168030000704A +S315400162508210601F840880010300001082106010C4 +S3154001626080A0800112BFF5A90910008030BFF5AAB0 +S31540016270C207BFD480A0800112BFF59803100080E9 +S31540016280C200616880A0600002BFF59703100080DC +S3154001629030BFF59209100080881121F8C20120040F +S315400162A080A0800112BFF57401000000C404A168FA +S315400162B0030000708210601F8408800103000010F3 +S315400162C08210601080A0800112BFF56B90100014FF +S315400162D010BFF56D9215E1B8C206600480A0800139 +S315400162E012BFF55A01000000C204A16880A06000F7 +S315400162F002BFF5599010001430BFF554C207BFCC08 +S3154001630080A0800112BFF54603100080C20061687B +S3154001631080A0600002BFF5459010001430BFF540E3 +S31540016320071000808610E1D0C200E00480A0800101 +S3154001633012BFF52F03100080C4006168030000708E +S315400163408210601F840880010300001082106002E1 +S3154001635080A0800112BFF5260100000030BFF5265E +S3154001636012BFF50001000000C204A16880A06000D0 +S3154001637002BFF4FF1110000030BFF4FA12BFF4EE71 +S3154001638001000000C204A16880A0600002BFF4EDD4 +S315400163901130000030BFF4E812BFF4DC0100000008 +S315400163A0C204A16880A0600002BFF4DB1130000086 +S315400163B030BFF4D612BFF4CA03100080C200616830 +S315400163C080A0600002BFF4C91110000030BFF4C4C0 +S315400163D0C20420048610E320C400E17C80A0800131 +S315400163E012BFF4B301000000C404A16803000070A9 +S315400163F08210601F8408800103000010821060042F +S3154001640080A0800112BFF4AA0100000030BFF4AAA7 +S31540016410C204200480A0800112BFF497010000004D +S31540016420C404A168030000708210601F84088001C3 +S31540016430030000108210600480A0800112BFF48E18 +S315400164401110008110BFF49094146160C2042004BD +S315400164508610E320C400E14C80A0800112BFF4788D +S3154001646001000000C404A168030000708210601F8F +S3154001647084088001030000108210600880A080011A +S3154001648012BFF46F1110008110BFF4719414616052 +S315400164907FFFAD429010201010BFF45E11100081B5 +S315400164A0C206600480A0800112BFF3B9010000005A +S315400164B0C204A16880A0600002BFF3B89014E1E075 +S315400164C030BFF3B3C206600480A0800112BFF3A5BA +S315400164D001000000C204A16880A0600002BFF3A4CD +S315400164E09014E1E030BFF39FC206600480A08001B2 +S315400164F012BFF39101000000C204A16880A06000B0 +S3154001650002BFF3909014E1E030BFF38BC206600402 +S3154001651080A0800112BFF37D03100080C200616834 +S3154001652080A0600002BFF37C9014E1E030BFF377B6 +S3154001653009100080881121F8C201200480A0800141 +S3154001654012BFF35A03100080C40061680300007053 +S315400165508210601F840880010300001082106010C1 +S3154001656080A0800112BFF3519015A1C810BFF3530B +S315400165709215E1B8071000808610E1F8C200E004E8 +S3154001658080A0800112BFF33B0100000030BFF33B06 +S3154001659009100080881121D0C201200480A0800109 +S315400165A012BFF31801000000C204A16880A0600078 +S315400165B002BFF3179016A1D030BFF3120710008027 +S315400165C08610E1D8C200E00480A0800112BFF30228 +S315400165D001000000C204A16880A0600002BFF3016F +S315400165E09016A1D030BFF2FC09100080881121C855 +S315400165F0C201200480A0800112BFF2EC010000001C +S31540016600C204A16880A0600002BFF2EB9016E1D8F7 +S3154001661030BFF2E6071000808610E1C8C200E004F0 +S3154001662080A0800112BFF2D603100080C2006168CB +S3154001663080A0600002BFF2D59015A1C830BFF2D04C +S3154001664009100080881121F8C201200480A0800130 +S3154001665012BFF2B10100000030BFF2B1C2066004C0 +S3154001666080A0800112BFF29001000000C204A1681F +S3154001667080A0600002BFF28F9010001D30BFF28AE9 +S31540016680071000808610E1C8C200E00480A08001A6 +S3154001669012BFF27A01000000C204A16880A0600026 +S315400166A002BFF2799010001D30BFF274C207BFFCE1 +S315400166B080A0800112BFF26603100080C2006168AB +S315400166C080A0600002BFF2659010001D30BFF260ED +S315400166D0881721F8C201200480A0800112BFF2422E +S315400166E00100000030BFF242C4042004C206600427 +S315400166F080A0800112BFF21E01000000C204A16801 +S3154001670080A0600002BFF21D9010001430BFF21845 +S315400167108615A1C8C200E00480A0800112BFF2091B +S3154001672001000000C204A16880A0600002BFF20817 +S315400167309010001430BFF203C2042004C407BFFC0A +S3154001674080A0800112BFF1F303100080C20061688E +S3154001675080A0600002BFF1F22D10008030BFF1ED44 +S3154001676080A2400112BFEFA201000000C204A1684D +S3154001677080A0600002BFEFA11111FC0030BFEF9C69 +S3154001678080A2400112BFEF9003100080C2006168F1 +S3154001679080A0600022BFEF8F113C02AF30BFEF8A6D +S315400167A012BFEEDB01000000C204A16880A06000B8 +S315400167B002BFEED90100000030BFEED512BFEECCCC +S315400167C001000000C204A16880A0600002BFEECAB9 +S315400167D00100000030BFEEC67FFFAC70901020195B +S315400167E010BFFAD4050C402981D8200081C3E008A6 +S315400167F00100000081D8200082102400C0A043007F +S3154001680081C3E00801000000853220109132201832 +S31540016810900A200F8408A00380A00008826020000F +S3154001682081C3E008900880019DE3BF887FFFEB7A32 +S315400168309010200C808A200812800004010000007C +S3154001684081C7E00891E820007FFFAC4D9010200EF3 +S31540016850C2800320853060188088A00F028000DD49 +S315400168602F100123833060108208600380A06002EC +S31540016870028000E0C225E0C880A06003028000FFDC +S3154001688080A06001028000EC2910010C2310010C4C +S315400168902110010C2B10010C2710010C2510010CA5 +S315400168A081D8200081D8200082102400C0A0430056 +S315400168B0031000A1051000A0821060008410A00002 +S315400168C0873060048610E00188100003C878800094 +S315400168D08800A004C67900008610200AC6784000C8 +S315400168E0C8046000C60420041B008000190800008B +S315400168F09A13600A993B0004980B0003992B2002D6 +S3154001690098030001DA7B00001B010000171000000C +S315400169109813608E973AC004960AC003972AE002FC +S315400169209602C001D87AC000171C00001901C000A8 +S31540016930893AC0049813208E860900038728E0020D +S315400169408600C001D878C0003B1000A28200600CCE +S31540016950BA176000873760048610E001C6784000A8 +S315400169608213601E86076008C278C000821020002C +S315400169708807600C86100001C67900002D1000A220 +S315400169809A076004AC15A1008735A004B81000161B +S315400169908610E001C67B4000B405A008C27E800097 +S315400169A01B1000C0B605A004861360008330E004C6 +S315400169B09810601AD87EC000C02360001B048D1554 +S315400169C09A136278DA20E004DA05E0C83310010050 +S315400169D09A03600CB21660008605A00CB010200028 +S315400169E0C627BFF8DA27BFFC901000189210200383 +S315400169F0C227BFF0C427BFEC40000AB0C827BFF486 +S31540016A00DA07BFFC992A000DC607BFF8980300199B +S31540016A10993320049813201ED878C000B00620016F +S31540016A208600E00480A62008C207BFF0C407BFEC79 +S31540016A3012BFFFECC807BFF417100020DE05200C7B +S31540016A408612E168C822E16809100020D005600875 +S31540016A50D804A014DA04E010D2042004D40460005F +S31540016A60960BE001972AC008C6212160880A600377 +S31540016A708929000A8812C004960B2002972AC00D64 +S31540016A809611000B8530A004D620E0209610600EAA +S31540016A90D620E0289608BFF0840B20018528800D7A +S31540016AA0841100028210601EC420E02CC420E01430 +S31540016AB0050100008410A01EC220E010C420E0049D +S31540016AC0F620E00CF420E018F620E024050076419B +S31540016AD0031000208410A1C082106000C420E00889 +S31540016AE0833060048210601EC220E01C82102100A7 +S31540016AF0D6A04320C4800320C280432084102001B5 +S31540016B0082102200C4A04320C68043208610200064 +S31540016B10C6A04320C4A0032081D820007FFFEABE3F +S31540016B2090102000913A200C808A20030280006553 +S31540016B3001000000C280032082102100C280432050 +S31540016B4082102200C2804320C80420048809200301 +S31540016B50C2046000C605200CC4056008D404A01414 +S31540016B60D604E010832900019808E0019A0AA001A1 +S31540016B70992B00029B2B400B981300019A13000D91 +S31540016B80C803400080A120000280000388136004EE +S31540016B9030800000D201000011048D159012227838 +S31540016BA080A2400812BFFFFB111000009E08E002C0 +S31540016BB0D00200009F2BC0029E13C001DE03C0001D +S31540016BC080A3C008228000428608E003308000008E +S31540016BD02310010C2110010CC025E0C82B10010C1B +S31540016BE02910010C2710010C10BFFF2E2510010C96 +S31540016BF02110010C2910010C2510010C2310010C48 +S31540016C008210203F2B10010C2710010CC2242004B6 +S31540016C10C224A014C225200C8210201AC22460006E +S31540016C2082102014C22560088210200E10BFFF1D5D +S31540016C30C224E0102510010C2310010C8210203FC4 +S31540016C402110010C2B10010C2710010CC225200C20 +S31540016C50C224A01482102019C22460008210207F11 +S31540016C60C224200482102013C22560088210200D00 +S31540016C7010BFFF0CC224E0102110010C2710010C9B +S31540016C802310010C8210200F2B10010C2910010C2E +S31540016C902510010CC224E010C22420048210201CBD +S31540016CA0C224600082102015C22560088210207F10 +S31540016CB0C225200C8210203F10BFFEFAC224A01428 +S31540016CC07FFFC4D30100000030BFFF9B8528C0026F +S31540016CD082108001C20040000321D95082106321F5 +S31540016CE0C2210000C401000080A08001028000038F +S31540016CF001000000308000008210000D05048D1552 +S31540016D008410A278072AF37B8610E301C438400039 +S31540016D10C4384000C203400080A0400902800003FD +S31540016D200100000030800000C4010000032AF37B0B +S31540016D308210630180A0800112BFFFFBC205E0C83B +S31540016D40940AA0038200600C972A800B84102001CC +S31540016D50AE13000B85288001B0102000EE25C0003F +S31540016D60C0A0022092102003C227BFF0C427BFEC67 +S31540016D70400009D290100018C207BFF0912A0001C5 +S31540016D80C606400880A0C01712800008C407BFECA1 +S31540016D90B006200180A6200802800005AE05C0028B +S31540016DA010BFFFF0EE25C00030800000C0A00220D9 +S31540016DB0AE102003B0102000852DE002C4058002EC +S31540016DC08608A06080A00003C227BFF0B04000182B +S31540016DD0C427BFEC9005FFFD400009B8921020037F +S31540016DE0C207BFF0C407BFEC872A000186064003ED +S31540016DF08730E0048610E01E8418C0028088BF9F59 +S31540016E0012800009AE05E00180A5E00B32BFFFEC20 +S31540016E10852DE00280A6200012800004D805200CB2 +S31540016E203080000030800000C8056008DA04200484 +S31540016E30C4046000C604A014C204E010980B2001EB +S31540016E409A0B6003892B0004852B40028608E002D9 +S31540016E50841100028328C001821080019FC0400036 +S31540016E600100000082102400C0A04300C0A00220FF +S31540016E708210200084072020C607200C8608E06087 +S31540016E8080A00003B80720048240000180A70002C9 +S31540016E9032BFFFFBC607200C80A06008228000039A +S31540016EA0C206C00030800000808860400280000435 +S31540016EB08088602032800003C2076008308000006D +S31540016EC08088602032800003C20680003080000046 +S31540016ED0808860201280000301000000308000009D +S31540016EE083480000842860808188A000010000005A +S31540016EF00100000001000000D8042004C80460001D +S31540016F00DA05200CC4056008C604A014C204E010CA +S31540016F10980B20039A0B6001892B0004852B4002B4 +S31540016F208608E001841100028328C0018410A00470 +S31540016F3082108001C20040009210200491D02002AC +S31540016F40010000007FFFE9B490102000913A200C27 +S31540016F50808A200312800005841020007FFFC42C04 +S31540016F60010000008410200082102200C4A04320AA +S31540016F7086102001C6A04320C4A043200310000070 +S31540016F80C4804380C4A043807FFFC48E90102000FC +S31540016F9081D8200030BFFE2B9DE3BFA040000822D0 +S31540016FA001000000808A21001280000401000000D7 +S31540016FB081C7E00891E820007FFFAA9423100120B1 +S31540016FC0912A20047FFFAA6E90022005A214600038 +S31540016FD0C204600480A060000280001A8210200072 +S31540016FE0A010200084044001C8044001C600A0044A +S31540016FF0C200A0089B39201F818360000100000068 +S3154001700001000000010000008479000380A0800196 +S3154001701002800004A00420017FFFAA609010200195 +S3154001702082040010820040108328600284044001DB +S31540017030C400A00480A0A00012BFFFEC840440015C +S3154001704023100120A2146138C204600480A06000AC +S315400170500280001982102000A01020008404400103 +S31540017060C8044001C600A004C200A00881802000D7 +S3154001707001000000010000000100000084710003CE +S3154001708080A0800102800004A00420017FFFAA4362 +S315400170909010200282040010820040108328600272 +S315400170A084044001C400A00480A0A00012BFFFEDEB +S315400170B084044001400008890100000080A22000AC +S315400170C012BFFFBC901020037FFFAA34B0102000EE +S315400170D081C7E00881E800009DE3BFA07FFFAA4B7E +S315400170E001000000912A20047FFFAA259002200476 +S315400170F0400007CF0100000080A221230280000446 +S31540017100010000007FFFAA2590102001400007C61C +S3154001711001000000808A21000280002923100120FD +S31540017120A2146180C204600880A060090280001533 +S3154001713082102000A010200084044001C6044001B2 +S31540017140C800A004C200A0088459000380A08001A1 +S3154001715002800004A00420017FFFAA1090102002A3 +S31540017160820400108200401083286002840440019A +S31540017170C400A00880A0A00912BFFFF18404400109 +S31540017180400007B80100000080A2200002800023D1 +S3154001719001000000400007B30100000080A220006A +S315400171A002800016010000004000079F0100000018 +S315400171B0808A2200128000040100000081C7E00895 +S315400171C091E82000400007F80100000080A220005D +S315400171D00280001A01000000400007F30100000090 +S315400171E080A2200012BFFFF6010000007FFFA9EB3D +S315400171F09010200430BFFFF27FFFA9E890102003D2 +S315400172004000078901000000808A220002BFFFEC8E +S315400172100100000030BFFFEC7FFFA9E09010200382 +S31540017220400007900100000080A2200012BFFFDF4E +S315400172300100000030BFFFF17FFFA9D89010200464 +S3154001724030BFFFE6000000009DE3BFA09410200080 +S315400172501110005C9012227C1310005C9212628025 +S315400172601710005C9612E2881910005C9813228C64 +S3154001727093C2000081C240001080019181C2C000CA +S3154001728081C300001080018E9402A0019402A001E6 +S3154001729080A2A0031280018A0100000087440000F9 +S315400172A08D30E00E8C89A00780A1A000028000C726 +S315400172B001000000AF30E00BAE0DE00780A5E00015 +S315400172C0128000C20100000080A1A0021280003598 +S315400172D00100000025100000E41C8000251000007C +S315400172E029100000A8152104A6100012AA100012A8 +S315400172F0AC100014A1802046A4100000AA10000082 +S3154001730001000000A180204EA810210001000000CC +S31540017310A18000000100000001000000E83CA0300F +S3154001732082A480131280016682A500161280016430 +S315400173300100000001000000010000008744000038 +S315400173408D30E00B8C89A0078CA1A0051280015CD1 +S31540017350A1800000010000000100000001000000C2 +S31540017360E81CA03082A500161280015582A5401264 +S31540017370A41000001280015201000000010000002B +S31540017380874400008D30E00B8C89A0078CA1A003B7 +S315400173901280014B010000001080008C01000000AA +S315400173A080A1A0011280002325100000E41C80006A +S315400173B02510000029100000A8152104A61000126E +S315400173C0AA100012AC100014A1802046A41000009F +S315400173D0AA10000001000000A180204EA810210043 +S315400173E001000000A1800000010000000100000032 +S315400173F001000000E83C800082A480131280013025 +S3154001740082A500161280012E010000000100000035 +S31540017410874400008D30E00B8C89A0078CA1A00227 +S315400174201280012701000000108000680100000061 +S3154001743080A1A00312800065A6100000A210200EB4 +S31540017440A1844000A6100000A1800000A814E0001D +S31540017450AB44000001000000AC14E0000100000054 +S31540017460AF44000080A5200012800115AA8D6E0050 +S3154001747080A540001280011280A5A0001280011053 +S31540017480AF35E00BAE0DE00780A5E0011280010C9F +S3154001749001000000A0100000A1844000A6100000D9 +S315400174A0A1800000E8180000AC100000AE100000FA +S315400174B0EC04C000EE04E00480A500161280010031 +S315400174C080A54017128000FE01000000A54400007F +S315400174D0A534A00BA40CA00780A4A001128000F83B +S315400174E001000000A0100000A1844000A610000089 +S315400174F0A1800000A210200AA1844000A41000002F +S31540017500A1800000E8180000AC100000AE10000099 +S31540017510EC04C012EE04E00480A50016128000E8D7 +S3154001752080A54017128000E601000000A544000036 +S31540017530A534A00BA40CA00780A4A002068000E0FD +S315400175400100000021100120A0142200EC1C0000C3 +S31540017550A0042008E81C0000A1844000A6100000F9 +S31540017560A1800000A210200EA1844000A4100010AA +S31540017570AC100000AE100000A18000000100000028 +S3154001758001000000EC3C8013AC100000AE1000007E +S31540017590E81CC01280A50016128000C980A54017BC +S315400175A0128000C701000000A5440000A534A00BCD +S315400175B0A40CA00780A4A004128000C10100000011 +S315400175C010800002010000008B4440008A09601FC0 +S315400175D080A160010280000A8C1000059DE3BFA0D6 +S315400175E08AA1600116BFFFFE0100000081E800008C +S315400175F08CA1A00116BFFFFE0100000001000000A2 +S3154001760001000000A023A080A02C20078E100010AE +S31540017610A3480000E2240000C2242004C43C200800 +S31540017620C83C2010CC3C2018F03C2020F43C2028BB +S31540017630F83C2030FC3C2038D03C2040D43C20480B +S31540017640D83C2050DC3C2058A5500000E424206062 +S315400176508010200882102001841020028610200309 +S31540017660881020048A1020058C1020068190000085 +S31540017670A42C601F818C80000100000001000000E5 +S3154001768001000000030040408210610184100000A7 +S3154001769086100000894440008809201F8610000496 +S315400176A0A010000284004002A210000284004002A1 +S315400176B0A410000284004002A61000028400400289 +S315400176C0A810000284004002AA1000028400400271 +S315400176D0AC10000284004002AE1000028400400259 +S315400176E09010000284004002921000028400400281 +S315400176F09410000284004002961000028400400269 +S3154001770098100002840040029A1000028400400250 +S315400177109C100002840040029E1000028400400238 +S3154001772081E0000086A0E00116BFFFDE01000000F7 +S31540017730030040408210610184100000861000045D +S3154001774080A400021280003F8400400280A44002CF +S315400177501280003C8400400280A4800212800039DD +S315400177608400400280A4C002128000368400400298 +S3154001777080A50002128000338400400280A54002A9 +S31540017780128000308400400280A580021280002DC4 +S315400177908400400280A5C0021280002A8400400273 +S315400177A080A20002128000278400400280A240028B +S315400177B0128000248400400280A2800212800021AF +S315400177C08400400280A2C0021280001E8400400252 +S315400177D080A300021280001B8400400280A3400265 +S315400177E0128000188400400280A380021280001596 +S315400177F08400400280A3C00212800012840040022D +S3154001780081E0000086A0E00116BFFFCE0100000026 +S3154001781080A020001280000B80A0FFFF128000098B +S3154001782080A160051280000780A1A0061280000594 +S3154001783001000000A010000710800006C02420208F +S31540017840A01000079010200110800002D0242020B3 +S3154001785082100007C40040008188800001000000BA +S315400178600100000001000000C4186008C81860103B +S31540017870CC186018F0186020F4186028F8186030A9 +S31540017880FC186038D0186040D4186048D818605049 +S31540017890DC186058E4006060C20060048194800096 +S315400178A0010000000100000001000000A0100007D7 +S315400178B0F004202081C7E00881E8000010BFFFFCEA +S315400178C0B01000000100000081D8200081C3E0080B +S315400178D0010000000328000084106004952AA00DD1 +S315400178E0D0204000922270009202400AD2208000AD +S315400178F081C3E0080100000003100124C40061AC0B +S3154001790003100124C200619C852A40028610200191 +S315400179108328C00182007FFF900A00019000800801 +S315400179208213C0007FFFE74C9E104000010000001B +S3154001793003100124C40061AC03100124C200619C00 +S31540017940852A4002861020018328C00182007FFFDC +S31540017950900A0001900080088213C0007FFFE73A39 +S315400179609E104000010000009DE3BFA02D100124A0 +S31540017970C205A1A0A410001880A0600004800020C8 +S31540017980B01020012F1001242B100124D005E1ACA9 +S3154001799029100124AC15A1A0AE15E1ACAA15619C34 +S315400179A0A815218CA0102000A2102000A6102001AD +S315400179B0C2054000832CC00182007FFF820C8001FA +S315400179C0912C00087FFFE72090020001C2050000CC +S315400179D0901A0012820A000180A00001C2058000AF +S315400179E0A2647FFFA004200180A0401034BFFFF1B4 +S315400179F0D005C00080A00011B0603FFF81C7E008FC +S31540017A0081E800009DE3BFA003100124C40061ACDE +S31540017A1003100124C200619CB32E40028410200150 +S31540017A208328800182007FFF820E00019210001A96 +S31540017A307FFFE70B9006400181C7E00881E800001F +S31540017A409DE3BFA003100124C40061AC03100124CF +S31540017A50C200619CB32E400284102001832880011C +S31540017A6082007FFF820E00019210001A7FFFE6F826 +S31540017A709006400181C7E00881E800000310012417 +S31540017A80C400619403100124C2006190852A40021A +S31540017A90861020018328C00182007FFF900A0001E1 +S31540017AA0900080088213C0007FFFE6E39E104000ED +S31540017AB0010000009DE3BFA003100124C4006194AE +S31540017AC003100124C2006190B32E400284102001AC +S31540017AD08328800182007FFF820E00019210001AE6 +S31540017AE07FFFE6D79006400181C7E00881E80000A4 +S31540017AF09DE3BFA003100124C40061940310012437 +S31540017B00C2006190B32E4002841020018328800177 +S31540017B1082007FFF820E00019210001A7FFFE6C4A9 +S31540017B209006400181C7E00881E800000310012466 +S31540017B30C400619403100124C2006190852A400269 +S31540017B40861020018328C00182007FFF900A000130 +S31540017B50900080088213C0007FFFE6B39E1040006C +S31540017B6001000000033FFFBF821063089DE38001CF +S31540017B700310004482106360C227BFEC0310004427 +S31540017B80821063A02F100044C227BFF4AE15E34014 +S31540017B9035100044EE27BFE8B416A38090102006A6 +S31540017BA07FFFA777F427BFF07FFFE69B9010200069 +S31540017BB0213FFFBF920A3FF0A01423689010200096 +S31540017BC07FFFE697A0078010230000307FFFE692F3 +S31540017BD090102000808A001112BFFFFD01000000B5 +S31540017BE081D82000230000307FFFE68B90102000D3 +S31540017BF0808A001112BFFFFD0100000023100124FD +S31540017C007FFFE6859010200013002040A410000855 +S31540017C109212600F921200097FFFE68190102000B8 +S31540017C207FFFE67D90102008D02461887FFFE67AA9 +S31540017C309010200C09100124C40461889938A014BD +S31540017C4013100124980B200F8603200AC621219088 +S31540017C50091001240310012496102400C621219401 +S31540017C60893A20148809200F9401200AD422619C64 +S31540017C70131001242D100124D0206198D42261AC27 +S31540017C8015100124932AC004833A2018D222A1A8B0 +S31540017C901510012482086003820060011B20000048 +S31540017CA08801200837100124C225A1A09201200293 +S31540017CB0821020019328400992234009D222A18CA7 +S31540017CC01510012487284003913A20109A23400336 +S31540017CD0992AC00CDA26E1A4D822A184A20A200757 +S31540017CE08738A018A93CA00CBA210011A408E003CA +S31540017CF08538A010A88D2003AA08A007A404A001D6 +S31540017D00AB284015A3284011AB2840159010001709 +S31540017D10AA057FFFA610200002800123B807BFE80D +S31540017D20A6042020030048D182106167C224C00006 +S31540017D3003226AF3821061EFC2242024C20C202060 +S31540017D4080A0600102800004010000007FFFA713AC +S31540017D509010201AC20C202180A0602302800004CA +S31540017D60010000007FFFA70D9010201BC20C2022AE +S31540017D7080A0604502800004010000007FFFA70744 +S31540017D809010201CC20C202380A060670280000452 +S31540017D90010000007FFFA7019010201DC20C202486 +S31540017DA080A0608902800004010000007FFFA6FBDD +S31540017DB09010201EC20C202580A060AB02800004DA +S31540017DC0010000007FFFA6F59010201FC20C20265F +S31540017DD080A060CD02800004010000007FFFA6EF75 +S31540017DE090102020C20C202780A060EF0280000462 +S31540017DF0010000007FFFA6E990102021C214202037 +S31540017E00832860108330601080A0612302800004C3 +S31540017E10010000007FFFA6E190102022C414202219 +S31540017E208528A010030000118530A01082106167DB +S31540017E3080A0800102800004010000007FFFA6D7D8 +S31540017E4090102023C41420248528A010030000226A +S31540017E508530A010821061AB80A0800102800004B1 +S31540017E60010000007FFFA6CD90102024C4142026D7 +S31540017E708528A010030000338530A010821061EFE1 +S31540017E8080A0800102800005821020307FFFA6C3BA +S31540017E909010202582102030C22C2020030C08D1BE +S31540017EA082106167C404C00080A080010280000581 +S31540017EB0821020317FFFA6B99010202782102031F1 +S31540017EC0C22C2021030C0C5182106167C404C000EE +S31540017ED080A0800102800005821020327FFFA6AF7C +S31540017EE09010202882102032C22C2022030C0C4CE8 +S31540017EF082106267C404C00080A080010280000530 +S31540017F00821020337FFFA6A59010202982102033AE +S31540017F10C22C2023030C0C4C82106233C404C000D3 +S31540017F2080A0800102800005821020347FFFA69B3D +S31540017F309010202A82102034C22C2024030D2AF3CB +S31540017F40821061EFC404202480A0800102800005D4 +S31540017F50821020357FFFA6919010202B821020356C +S31540017F60C22C2025030D0D73821061EFC404202419 +S31540017F7080A0800102800005821020367FFFA687FF +S31540017F809010202C82102036C22C2026030D0D4D38 +S31540017F90821062EFC404202480A080010280000583 +S31540017FA0821020377FFFA67D9010202D821020372A +S31540017FB0C22C2027030D0D4D82106237C4042024A4 +S31540017FC080A0800102800005030000107FFFA67398 +S31540017FD09010202E0300001082106041C2342020F0 +S31540017FE00310104C82106233C404C00080A080018B +S31540017FF002800005030000107FFFA6689010202F25 +S315400180000300001082106243C23420220310105034 +S3154001801082106243C404C00080A080010280000532 +S31540018020030000117FFFA65D901020300300001170 +S3154001803082106045C23420240311114D82106237EB +S31540018040C404202480A080010280000503000011A1 +S315400180507FFFA65290102031030000118210624723 +S31540018060C23420260311115182106247C4042024D0 +S3154001807080A0800102800004010000007FFFA64726 +S315400180809010203281D82000C205A1A080A06000B6 +S315400180900480001B80A5200025100124191001240D +S315400180A0A414A1A0981321AC8810200080A46000DC +S315400180B09B2920100480000C82102000C40300007C +S315400180C085290002840040028528A0028610400DC1 +S315400180D082006001C624000280A0401132BFFFF930 +S315400180E0C4030000C20480008801200180A040042E +S315400180F014BFFFF080A4600080A5200012800028F4 +S31540018100230000107FFFE54490102000808A001173 +S3154001811012BFFFFDC205A1A080A060000480001B24 +S31540018120010000002510012427100124A414A1A058 +S31540018130A614E18C10800006A2102000A204600162 +S3154001814080A040110480001101000000921000112E +S315400181507FFFFDF890100010C204C000901C00087B +S31540018160808A000132BFFFF6C20480007FFFA60B62 +S3154001817090102033C2048000A204600180A0401107 +S3154001818014BFFFF4921000117FFFE52390102000E9 +S315400181909212200F7FFFE5229010200081C7E00850 +S315400181A091E820009FC20000A604E00180A480134C +S315400181B004800008832CE002D00700019FC2000022 +S315400181C0A604E00180A4801314BFFFFC832CE002C7 +S315400181D07FFFE51190102000B616E1A4920A3FFCFC +S315400181E0A8102000901020007FFFE50DB810200058 +S315400181F0B207BFE810800005A610200080A48013B6 +S3154001820024800012A8052001921000137FFFFE482A +S3154001821090100017820A001580A0401512BFFFF882 +S31540018220A604E001C206C000901DC008900A0001E4 +S3154001823080A00008B8673FFF80A4801314BFFFF4F5 +S3154001824092100013A805200180A480140480000424 +S31540018250832D200210BFFFE8EE0640017FFFE4EECA +S3154001826090102000A6100008901020007FFFE4EC3B +S315400182709214E00380A720000280018301000000E0 +S31540018280A73CE013808CE0031280018501000000C9 +S3154001829081D82000250000307FFFE4DF90102000C8 +S315400182A0808A001212BFFFFDAA100008C205A1A0D4 +S315400182B080A060000480000F053FFFBF2510012408 +S315400182C0A6102000A414A1A0921000139010001033 +S315400182D07FFFFDDC94102000C2048000A604E0016B +S315400182E080A0401314BFFFFA92100013053FFFBF51 +S315400182F0821020008410A36884078002C0204002B7 +S315400183008200600480A0607C12BFFFFD0100000076 +S3154001831082102005C224000082102001C2242004BC +S3154001832082102002C224200882102003C224200C7D +S31540018330901000107FFFFD8DA804200480A220002C +S315400183400280014A01000000C204000080A06005CD +S3154001835002800004010000007FFFA59090102006D6 +S315400183607FFFFD829010001080A2200012800199AB +S31540018370C205A1A080A06000048000120100000097 +S3154001838025100124A6102000A414A1A092100013C8 +S31540018390941020007FFFFD9C901000109210001356 +S315400183A0901000147FFFFD9894102000C2048000B5 +S315400183B0A604E00180A0401314BFFFF692100013FB +S315400183C07FFFE4AB90100010A60420207FFFE4A8B5 +S315400183D0901000137FFFE4A6900420407FFFE4A4A1 +S315400183E090042060C205A1A080A0600004800180A5 +S315400183F0B810200025100124A414A1A0AE1020001D +S31540018400921000177FFFFD3D90100010C2048000BE +S31540018410901A200580A00008AE05E001B8673FFF2D +S3154001842080A0401714BFFFF89210001780A72000C4 +S315400184300280016F01000000033FFFBF82106368A5 +S31540018440C41F8001C43FBFA8C207BFA880A0600562 +S315400184501280000601000000C207BFAC80A0600187 +S3154001846002800005C205A1A07FFFA54C90102009FE +S31540018470C205A1A080A06000048000382510012417 +S31540018480B8102000A414A1A0AE102000921000172D +S315400184907FFFFD1A90100014C2048000901A20013B +S315400184A080A00008AE05E001B8673FFF80A04017F5 +S315400184B014BFFFF89210001780A7200112800027F1 +S315400184C0833D6013808860031280002A010000000A +S315400184D0C2042004C224000082102005C2240000E8 +S315400184E090102001D024200482102002C2242008AA +S315400184F082102003C224200C92100011400003B3C5 +S31540018500912A001DA52A2002032EEEEE821063BB9E +S31540018510C22400127FFFFD159010001080A220009A +S315400185201280013701000000C4040012032EEEEE52 +S31540018530A93D600C821063BB80A0800102BFFDFA99 +S31540018540A80D2003901020127FFFA514A93D600CB1 +S3154001855010BFFDF5A80D20037FFFA5109010200A3E +S31540018560833D60138088600302BFFFDA010000008B +S315400185707FFFE42990102000033FFFF08210603F07 +S31540018580920A00017FFFE4269010200092102000FD +S3154001859094102000AA07BFA87FFFFD1B901000156D +S315400185A07FFFE41D901020000303C00092120001DA +S315400185B07FFFE41B90102000C205A1A080A06000AF +S315400185C00480000F8210200125100124A8102000EC +S315400185D0A414A1A092100014901000157FFFFD0A6B +S315400185E094102005C2048000A805200180A04014F3 +S315400185F014BFFFFA9210001482102001C22FBFA8A7 +S315400186000300400082106005C407BFA880A0800116 +S3154001861002800004010000007FFFA4E09010200BBF +S315400186207FFFE3FD90102000833A20068208600315 +S3154001863080A0600102800004010000007FFFA4D7F2 +S315400186409010200C7FFFE3F4901020000303C0003C +S3154001865025000030922A00017FFFE3F190102000AF +S315400186607FFFE3ED90102000808A001212BFFFFDCC +S3154001867092102000941020007FFFFCE3901000151B +S315400186807FFFE3E5901020002503C00092120012FF +S315400186907FFFE3E3901020007FFFE3DF901020008F +S315400186A0808A001202BFFFFDAE100008C205A1A0DC +S315400186B080A060000480001025100124B81020011C +S315400186C0B92F0011A414A1A0B8073FFFA81020009C +S315400186D092100014901000157FFFFCDA9410001CD4 +S315400186E0C2048000A805200180A0401414BFFFFAEF +S315400186F0921000141303C00090102000922DC0095F +S315400187007FFFE3C72503C0007FFFE3C3901020002E +S31540018710808A001212BFFFFD01000000C407BFA8F6 +S31540018720030040008210600580A0800102800004A1 +S31540018730010000007FFFA4999010200D7FFFE3B652 +S3154001874090102000833A20088208600380A06001CF +S3154001875002800005841020117FFFA4909010200F05 +S3154001876084102011861020559010200025000030DD +S31540018770C43FBFF87FFFE3A801000000033C3FFF71 +S315400187800503C0008210633F820A00019010200059 +S315400187907FFFE3A3921040027FFFE39F90102000EA +S315400187A0808A001212BFFFFDAE07BFF87FFFE3BE0E +S315400187B090100017C205A1A080A060000480000FA0 +S315400187C00100000025100124AA07BFFCA414A1A0A2 +S315400187D0A810200092100014901000157FFFFC8A0B +S315400187E094102055C2048000A805200180A04014A1 +S315400187F014BFFFFA921000147FFFE3AB90100017ED +S3154001880080A220110280008180A260557FFFA4636F +S31540018810901020107FFFE38090102000833A2006BD +S315400188208208600380A0600102800004A410000851 +S315400188307FFFA45A90102010133C3FF09010200067 +S315400188409212603F920C80097FFFE375250000304C +S315400188507FFFE37190102000808A001212BFFFFD56 +S31540018860AA10000830BFFF1B7FFFA44C90102005C3 +S31540018870C204000080A0600512BFFEB801000000DE +S3154001888030BFFEB87FFFA44590102001A73CE013FE +S31540018890808CE00302BFFE7F010000007FFFE35EA4 +S315400188A090102000133FFFF0AA1000089212603F7B +S315400188B0920A00097FFFE35A901020007FFFE2B140 +S315400188C0A810001A0303C000133C3FFF901020007C +S315400188D0921263FC920D4009A61020007FFFE350DF +S315400188E09212400192100013901000147FFFFC7207 +S315400188F094102000A604E00180A4801334BFFFFB3E +S3154001890092100013901020001303C0007FFFE34430 +S31540018910921540097FFFE29B010000007FFFE33E85 +S3154001892090102000833A200A8208600380A06001EB +S3154001893002800005250000307FFFA4189010200218 +S31540018940250000307FFFE33490102000808A00121A +S3154001895012BFFFFD0100000001000000920A3FFC2A +S315400189607FFFE32F901020009010001492102000FA +S315400189707FFFFC6094102000010000007FFFE3268A +S3154001898090102000033C3FFF821063FC820A0001E5 +S31540018990901020007FFFE322921060030100000047 +S315400189A07FFFE278010000007FFFE31B901020006B +S315400189B0833A200C8208600380A0600102BFFE3525 +S315400189C0010000007FFFA3F59010200330BFFE3168 +S315400189D07FFFA3F290102007C205A1A080A06000EE +S315400189E034BFFE692510012430BFFE767FFFA3EB1D +S315400189F09010200810BFFE92033FFFBF7FFFA3E701 +S31540018A009010201130BFFEC912BFFF810100000046 +S31540018A1030BFFF819DE3BFA07FFFFC5301000000F3 +S31540018A2013002040B01000089212600F7FFFE2FC55 +S31540018A309010200081C7E00881E800009DE3BFA0B7 +S31540018A407FFFA3C81100412C82102007EC062004A9 +S31540018A50E0062004C2262008AC0DA003AC05A00107 +S31540018A6001000000C02600007FFFA3C59010200A28 +S31540018A700300020084103FFFB8060001C42600012E +S31540018A80A13C2002292AAAAAA00C27FFA81522AA9E +S31540018A902B155555A12C2008AA1561558810001C87 +S31540018AA0C2060001A8084014AA0840159A102000E1 +S31540018AB080A420002280000D9A03600186012020B7 +S31540018AC08410000482102000EA208000E820C000C3 +S31540018AD0820060108400A04080A0401006BFFFFBCA +S31540018AE08600E0409A03600180A5800D14BFFFF126 +S31540018AF0880120043B000200AE102000BA17602016 +S31540018B00BA06001D80A4200022800017AE05E001B0 +S31540018B10A610001CA410001DA2102000C204C00013 +S31540018B2080A0401502800004010000007FFFA39B46 +S31540018B3090102001C204800080A0401422800005CC +S31540018B40A20460107FFFA39590102001A20460103B +S31540018B50A604E04080A4401006BFFFF1A404A04053 +S31540018B60AE05E00180A5801714BFFFE7BA07600490 +S31540018B707FFFA3839010200C2F0008001B1555552D +S31540018B80AE060017092AAAAA9A136155881122AA84 +S31540018B9098100017961020001500020080A42000AE +S31540018BA02280000D9602E001860320048410000C09 +S31540018BB082102000DA208000C820C00082006002B6 +S31540018BC08400A00880A0401006BFFFFB8600E00895 +S31540018BD09602E00180A5800B14BFFFF19803000ABD +S31540018BE02B155555292AAAAAAA156155A81522AAAF +S31540018BF0BA1020003900020080A42000228000170C +S31540018C00BA076001A605E004A4100017A2102000CF +S31540018C10C204800080A040150280000401000000CB +S31540018C207FFFA35E90102003C204C00080A04014C1 +S31540018C3022800005A20460027FFFA3589010200302 +S31540018C40A2046002A404A00880A4401006BFFFF15C +S31540018C50A604E008BA07600180A5801D14BFFFE79E +S31540018C60AE05C01C2F0008001B155555AE15E00476 +S31540018C70092AAAAAAE0600179A136155881122AA93 +S31540018C8098100017961020001500020080A42000BD +S31540018C902280000D9602E00186033FFC8410000C01 +S31540018CA082102000DA208000C820C00082006002C5 +S31540018CB08400A00880A0401006BFFFFB8600E008A4 +S31540018CC09602E00180A5800B14BFFFF19803000ACC +S31540018CD02B155555292AAAAAAA156155A81522AABE +S31540018CE0BA1020003900020080A42000228000171B +S31540018CF0BA076001A605FFFCA4100017A2102000C8 +S31540018D00C204800080A040150280000401000000DA +S31540018D107FFFA32290102004C204C00080A040140B +S31540018D2022800005A20460027FFFA31C901020044C +S31540018D30A2046002A404A00880A4401006BFFFF16B +S31540018D40A604E008BA07600180A5801D14BFFFE7AD +S31540018D50AE05C01C82102005C22620080320000053 +S31540018D60C226000081C7E00881E80000033FFFBF3B +S31540018D70821063609DE380017FFFFAD425200000C5 +S31540018D804000016E2D0000307FFFE2239010200845 +S31540018D90AA1000087FFFE2209010200C7FFFA31B42 +S31540018DA0AE100008912A20047FFFA2F59002200C04 +S31540018DB082102001873D60148608E00F8600E00A94 +S31540018DC0A73D6010A13D6018853DE014A60CE00763 +S31540018DD08408A00FA604E0028400A00AA728401335 +S31540018DE0A00C2003A93DE010A0042001A80D2007F6 +S31540018DF0A12C0003A8052002AA2480108604FFFFA7 +S31540018E00A9284014A33DE01882053FFFA20C600348 +S31540018E10A2046001AA154003A32C4002A424801198 +S31540018E20A41480017FFFE1FC90102000808A001687 +S31540018E3012BFFFFD133FFFBF90100011921263C096 +S31540018E4015155555920780097FFFE1869412A15564 +S31540018E5080A220001280007001000000133FFFBF76 +S31540018E6090100011921263C0152AAAAA920780098E +S31540018E707FFFE1909412A2AA80A220001280006393 +S31540018E80010000007FFFA2E101000000912A2004B9 +S31540018E907FFFA2BB9002200A40000125010000008D +S31540018EA0032AAAAA981062AA8210620090100011A1 +S31540018EB0920C8001941000127FFFE1A796100014D6 +S31540018EC080A220001280004D010000000315555577 +S31540018ED09810615582106100901000119410001293 +S31540018EE0961000147FFFE19C920C800180A2200025 +S31540018EF01280003F010000007FFFA2C40100000074 +S31540018F00912A20047FFFA29E9002200B9010001010 +S31540018F10131555557FFFE1779212615580A22000C6 +S31540018F201280002F0100000090100010132AAAAAF7 +S31540018F307FFFE170921262AA80A220001280002572 +S31540018F40010000007FFFA2B101000000912A200428 +S31540018F507FFFA28B900220099010001092100015FD +S31540018F6094100013172AAAAA7FFFE16E9612E2AA6D +S31540018F7080A2200012800013010000009010001012 +S31540018F809210001594100013171555557FFFE16592 +S31540018F909612E15580A220000280000401000000E3 +S31540018FA07FFFA27E901020087FFFFA48B010200074 +S31540018FB0400000E20100000081C7E00881E80000AE +S31540018FC07FFFA2769010200710BFFFEE9010001091 +S31540018FD07FFFA2729010200630BFFFDB7FFFA26F9A +S31540018FE09010200510BFFFD2901000107FFFA26B9A +S31540018FF09010200430BFFFC17FFFA268901020036C +S3154001900010BFFFB4031555557FFFA264901020028F +S3154001901030BFFF9D7FFFA2619010200110BFFF91DD +S31540019020133FFFBF81C3E0089144400080800000A8 +S31540019030151001209412A1EC9010200092102246A6 +S3154001904081800000010000000100000001000000D5 +S31540019050D00280009122400881C3E008010000004F +S3154001906081800000901020018090200180F0200135 +S315400190701280004B010000000100000001000000C9 +S31540019080010000008090200180F8200112800044F8 +S315400190900100000001000000010000000100000085 +S315400190A08090200180FA3FFF010000001680003CBD +S315400190B00100000001000000010000000100000065 +S315400190C08180000090102001809020010100000065 +S315400190D080D0200112800032010000000100000012 +S315400190E0010000000100000080D220010280002C16 +S315400190F00100000080D23FFF1680002901000000D8 +S3154001910080DA3FFF9340000080A27FFF1280002457 +S315400191100100000080D23FFF934800009332601463 +S31540019120920A600F80A260081280001D01000000B3 +S315400191308180000090102001945220049452A00492 +S315400191409452A00496A2A04012800015010000008E +S31540019150818000009010200280A000003280001023 +S315400191609052000880A220021280000D01000000EA +S31540019170818000009010200280A0000001000000C4 +S31540019180328000079052000880A22002128000041B +S315400191900100000081C3E0089010200181C3E0086E +S315400191A0901000001315555592126155A582400045 +S315400191B0010000000100000001000000954480000C +S315400191C080A2400A1280004301000000923A40000A +S315400191D0A5824000010000000100000001000000DE +S315400191E09544800080A2400A1280003A01000000A6 +S315400191F01100003F901223FFA580000081800000EE +S3154001920001000000010000000100000093F23FFF51 +S315400192109A10000993F23FFF93F23FFF93F23FFF0B +S3154001922093F23FFF93F23FFF93F23FFF93F23FFFEB +S315400192309940000097448000153FFC009412A00815 +S3154001924080A2400A1280002380A2400B1280002196 +S3154001925080A320071280001F113FFF80901220013A +S3154001926080A340081280001B1100003F901223FF8B +S31540019270A58000008180000001000000010000007F +S315400192800100000093FA3FFF93FA3FFF93FA3FFF35 +S3154001929093FA3FFF93FA3FFF93FA3FFF93FA3FFF5B +S315400192A093FA3FFF994000009744800080A26008EE +S315400192B01280000880A260081280000680A3200068 +S315400192C0128000040100000081C3E00890102001D3 +S315400192D081C3E008901000008180000090102002B8 +S315400192E080A00000328000109072000880A2200207 +S315400192F01280000D010000008180000090102002C4 +S3154001930080A0000001000000328000079072000832 +S3154001931080A22002128000040100000081C3E008FF +S315400193209010200181C3E00890100000C0A00040C9 +S3154001933081C3E00801000000110020409012200F77 +S31540019340D0A0004081C3E008010000009DE3BFA01A +S315400193507FFFE0B190102008A21000087FFFE0AE29 +S315400193609010200CA0100008C0A00040833C60145F +S315400193708208600F8200600A913C6018900A2003BF +S31540019380900220017FFFE01B912A0001833C2014BB +S315400193908208600F8200600A913C2018900A2003DF +S315400193A0900220017FFFE021912A00017FFFF947CA +S315400193B001000000110020409012200FD0A0004073 +S315400193C081C7E00881E80000981200098182000007 +S315400193D09AAB2FFF02800025988800009923000947 +S315400193E09923000999230009992300099923000922 +S315400193F09923000999230009992300099923000912 +S315400194009923000999230009992300099923000901 +S3154001941099230009992300099923000999230009F1 +S3154001942099230009992300099923000999230009E1 +S3154001943099230009992300099923000999230009D1 +S3154001944099230009992300099923000999230009C1 +S3154001945099230009992300099923000999230000BA +S3154001946081C3E0089140000099230009992300092E +S315400194709923000999230009992300099923000991 +S315400194809923000999230009992300099923000981 +S315400194909923000999230009992300009B40000064 +S315400194A0992B200C9B33601481C3E0089013400C28 +S315400194B01080000B8610200080924008168000081C +S315400194C086100008809240001680000480920000B9 +S315400194D01680000392200009902000089A924000CD +S315400194E0128000059610000891D0200281C3E00841 +S315400194F09010000080A2C00D0A80009594100000D3 +S315400195000302000080A2C0010A80002898100000D2 +S3154001951080A340011A80000D841020019B2B60041A +S3154001952010BFFFFC980320019A83400D1A80000763 +S315400195308400A001832860049B3360019A034001A3 +S31540019540108000078420A00180A3400B0ABFFFF7CB +S3154001955001000000028000020100000084A0A00179 +S3154001956006800076010000009622C00D941020016D +S315400195701080000A01000000952AA001068000051E +S315400195809B3360019622C00D108000049402A00115 +S315400195909602C00D9422A00184A0A00116BFFFF738 +S315400195A08092C000308000659B2B600480A3400BF5 +S315400195B008BFFFFE988320010280006598232001A1 +S315400195C08092C000952AA0040680002F9B3360013B +S315400195D096A2C00D068000179B33600196A2C00D6E +S315400195E00680000B9B33600196A2C00D06800005E4 +S315400195F09B33600196A2C00D108000509402A00FCB +S315400196009682C00D1080004D9402A00D9682C00D29 +S31540019610068000059B33600196A2C00D108000476D +S315400196209402A00B9682C00D108000449402A009BA +S315400196309682C00D0680000B9B33600196A2C00D39 +S31540019640068000059B33600196A2C00D1080003B49 +S315400196509402A0079682C00D108000389402A0059E +S315400196609682C00D068000059B33600196A2C00D0F +S31540019670108000329402A0039682C00D1080002F04 +S315400196809402A0019682C00D068000179B336001AB +S3154001969096A2C00D0680000B9B33600196A2C00DB9 +S315400196A0068000059B33600196A2C00D1080002301 +S315400196B09402BFFF9682C00D108000209402BFFD28 +S315400196C09682C00D068000059B33600196A2C00DAF +S315400196D01080001A9402BFFB9682C00D10800017BD +S315400196E09402BFF99682C00D0680000B9B33600140 +S315400196F096A2C00D068000059B33600196A2C00D5F +S315400197001080000E9402BFF79682C00D1080000BA8 +S315400197109402BFF59682C00D068000059B33600119 +S3154001972096A2C00D108000059402BFF39682C00D2B +S31540019730108000029402BFF198A3200116BFFFA238 +S315400197408092C000268000029602C0098090C00027 +S31540019750268000029620000B81C3E0089010000B82 +S3154001976092100008941020009010200096102000BE +S315400197708213C000400000429E10400001000000DC +S315400197809DE3BFA080A6A00F9A100018881000196B +S31540019790088000068610001A8216401880886003E9 +S315400197A00280000D8410001980A0E00002800008AC +S315400197B082102000C4090001C42B400182006001CF +S315400197C080A0400332BFFFFDC409000181C7E00804 +S315400197D081E8000082100018DA008000DA2040009B +S315400197E08600FFF080A0E00FDA00A004DA206004D2 +S315400197F0DA00A008DA206008DA00A00CDA20600C52 +S315400198008400A01018BFFFF582006010B406BFF0B7 +S315400198109B36A004832B60049A036001B426800121 +S315400198209B2B600480A6A0038806400D8610001A73 +S3154001983008BFFFDE9A06000D82102000C401000118 +S31540019840C4234001820060048426800180A0A003D5 +S3154001985038BFFFFCC4010001B406BFFC8336A00239 +S315400198608728600282006001862680038328600281 +S315400198708801000110BFFFCD9A0340019DE3BFA0BF +S3154001988021100123400005F7901420EC03100070CD +S31540019890E2006090D004614880A220002280003D11 +S315400198A09004614CC202200480A0601F1480001EF7 +S315400198B00100000080A620000280001284006002A0 +S315400198C0C4022004820060228600A04289286002E8 +S315400198D08728E002C2022188F4220004F62200030E +S315400198E0861020018728C00282104003C2222188A7 +S315400198F080A62002028000198210000284006002C4 +S315400199008528A00282006001C2222004F2220002C0 +S31540019910B0102000400005E9901420EC81C7E00812 +S3154001992081E80000400000289010219080A220008C +S315400199302280001A901420ECC2046148C222000021 +S31540019940D0246148C0222004C0222188C022218C13 +S3154001995010BFFFD982102000C202218C861040031D +S3154001996082100002840060028528A002C622218C52 +S3154001997082006001F2220002C2222004B0102000BF +S31540019980400005CE901420EC81C7E00881E8000034 +S3154001999010BFFFC5D0246148400005C8B0103FFF45 +S315400199A081C7E00881E800009210000803100120F9 +S315400199B0D00062208213C000400002179E10400072 +S315400199C0010000009210000803100120D00062201F +S315400199D08213C000400000039E10400001000000B9 +S315400199E09DE3BFA0841020008206600B80A0601614 +S315400199F008800004A0102010A0087FF88534201F9D +S31540019A0080A400190A8000468088A0FF1280004485 +S31540019A1001000000400001AF9010001880A421F71A +S31540019A20188000418334200923100121A214637850 +S31540019A3082044010E400600C80A480010280010F82 +S31540019A4099342003C604A004C404A00CC204A0088F +S31540019A508608FFFC86048003C800E00488112001C3 +S31540019A60C220A008C820E004C420600C9010001851 +S31540019A7040000192B004A00881C7E00881E80000D7 +S31540019A80E6046008E804E004A80D3FFC82250010C6 +S31540019A9080A0600F148000D280A40014031001231B +S31540019AA02F100122EA006160C205E384AA05601015 +S31540019AB080A07FFF02800004AA054010AA056FFF1F +S31540019AC0AA0D7000901000184000018892100015F0 +S31540019AD080A23FFF02800009A41000088404C0143C +S31540019AE080A08008088000EC2D10012380A440133B +S31540019AF0028000EAC205A16CC2046008C400600489 +S31540019B008408BFFC8220801080A0600F148001224F +S31540019B1080A40002400001699010001881C7E00846 +S31540019B2091E820009934200380A060000280000F54 +S31540019B30872B200380A06004088000929934200678 +S31540019B409800605B80A0601408800008872B200382 +S31540019B5080A060541880011380A061549934200C70 +S31540019B609803206E872B200323100121A2146378CA +S31540019B7086044003E400E00C80A0C0123280000B52 +S31540019B80C404A004108000109803200136800068A8 +S31540019B90C604A00CE404A00C80A0C0122280000AD6 +S31540019BA098032001C404A0048408BFFC82208010CD +S31540019BB080A0600F04BFFFF680A0600098033FFFBE +S31540019BC098032001071001218610E380E400E00894 +S31540019BD080A0C0122280002AC2046004C404A004EA +S31540019BE08408BFFC8220801080A0600F1480008A08 +S31540019BF080A06000C620E00C16800059C620E0080F +S31540019C0080A0A1FF288000628530A0038330A0098F +S31540019C1080A06004188000E98800605B8930A00656 +S31540019C20880120389B2920039A04400DC20360080D +S31540019C3080A0400D32800008C8006004108000E911 +S31540019C40DA04600480A3400122800008C400600C4D +S31540019C50C800600488093FFC80A080042ABFFFFA3F +S31540019C60C2006008C400600CC424A00CC224A00831 +S31540019C70E420600CE420A008C2046004853B200275 +S31540019C80881020018929000280A040042ABFFF7E56 +S31540019C90E6046008808840042280004B980B3FFC14 +S31540019CA0952B20039610000C9404400A9A10000A42 +S31540019CB0E403600C80A340123280000BC404A0046C +S31540019CC0108000589602E00136800019C604A00CA7 +S31540019CD0E404A00C80A34012228000529602E001C7 +S31540019CE0C404A0048408BFFC8220801080A0600FB9 +S31540019CF004BFFFF680A06000DA04A00CC804A008E7 +S31540019D0084048010A0142001C8236008DA21200CA5 +S31540019D10C420E00CC420E008E024A004C220800155 +S31540019D20C620A00810800010C620A00CC204A008BE +S31540019D3084048002C800A00488112001C220E008E2 +S31540019D40C820A004C620600C90100018400000DB1B +S31540019D50B004A00881C7E00881E8000084048002BD +S31540019D60C200A00482106001C220A0049010001815 +S31540019D70400000D2B004A00881C7E00881E8000095 +S31540019D809803203810BFFF79872B20038928A00329 +S31540019D9088044004DA012008D6046004C824A00CD3 +S31540019DA0DA24A0088538A00282102001E423600C41 +S31540019DB083284002E42120088210400B10BFFFB0E7 +S31540019DC0C2246004892920018088400402BFFFFE25 +S31540019DD09803200410BFFFB4952B200338BFFF31F1 +S31540019DE003100123E404600884048010A0142001B8 +S31540019DF082106001E024A004C220A0049010001843 +S31540019E00C4246008400000ADB004A00881C7E00842 +S31540019E1081E800008404801010BFFFBEA014200119 +S31540019E20808AE00312BFFFA39A04A008808B200317 +S31540019E300280009C8202BFF8D400600880A28001A3 +S31540019E4022BFFFFB98033FFFC2046004892920011A +S31540019E5080A1000118BFFF0B80A1200022BFFF0A8D +S31540019E60E604600880890001228000928929200148 +S31540019E7010BFFF8C9810000B8204A008E400600C10 +S31540019E8080A0401202BFFF509803200210BFFEEF90 +S31540019E90C604A004C205A16C8205400180A08012BF +S31540019EA002800067C225A16CC605E38480A0FFFF3E +S31540019EB02280006B0310012282048001842040022B +S31540019EC0C425A16C848CA00702800006030000040F +S31540019ED08210200882204002A40480018220700062 +S31540019EE0AA04801590100018AA0D6FFFAA204015EC +S31540019EF04000007E9210001580A23FFF0280006064 +S31540019F008410200184220012840080158410A0014F +S31540019F10C205A16C82054001C225A16CC424A004DE +S31540019F2080A4401302800010E424600880A5200F1D +S31540019F300880003A84053FF48408BFF88604C002CD +S31540019F40C804E0048809200188108004C824E0047C +S31540019F5088102005C820E00880A0A00F1880004284 +S31540019F60C820E00405100123C600A16480A0400377 +S31540019F7038800002C220A16405100123C600A168F1 +S31540019F8080A0400338BFFEDDC220A16810BFFEDCC1 +S31540019F90C204600828BFFF95E404600830BFFEDEB6 +S31540019FA01880001780A065549934200F98032077B4 +S31540019FB010BFFEEE872B200380A0601408BFFF1B55 +S31540019FC09B29200380A060541880001780A061540B +S31540019FD08930A00C8801206E10BFFF149B292003F5 +S31540019FE08939200284102001852880048413400287 +S31540019FF0C424600410BFFF1D84100001861023F0A5 +S3154001A00018BFFEDA9810207E993420129803207CDE +S3154001A01010BFFED6872B20038210200110BFFEB74A +S3154001A020C224A0041880001880A065548930A00F6E +S3154001A0308801207710BFFEFD9B2920038088AFFF52 +S3154001A04012BFFF9BC605E384C4046008860540141D +S3154001A0508610E00110BFFFC4C620A00410BFFF9ABE +S3154001A060E42063849204E0084000006B90100018DD +S3154001A0700310012310BFFFBCC200616C10BFFFA5D6 +S3154001A080AA1020009A1023F018BFFEE88810207EFF +S3154001A0908930A0128801207C10BFFEE49B29200351 +S3154001A0A0C20460048228400410BFFF68C2246004D1 +S3154001A0B010BFFF6D9602E004111001229012238811 +S3154001A0C08213C000400003FD9E10400001000000C5 +S3154001A0D011100122901223888213C000400003E12F +S3154001A0E09E104000010000009DE3BFA02110012405 +S3154001A0F0901000194000015DC02421B080A23FFFAD +S3154001A10002800004C20421B081C7E00891E800083A +S3154001A11080A0600002BFFFFD01000000C2260000D2 +S3154001A12081C7E00891E800089DE3BFA07FFFFFE9F2 +S3154001A1309010001821100121A0142378C204200890 +S3154001A140E2006004A20C7FFC82046FEFB22040194A +S3154001A150B20E7000B206700080A66FFF048000093F +S3154001A160901000187FFFFFE192102000C2042008E2 +S3154001A1708200401180A20001028000079010001861 +S3154001A180901000187FFFFFCDB010200081C7E00876 +S3154001A19081E800007FFFFFD59220001980A23FFF92 +S3154001A1A00280000EA2244019C4042008A2146001B2 +S3154001A1B003100123E220A00490100018B0102001E2 +S3154001A1C0C400616CB22080197FFFFFBCF220616C34 +S3154001A1D081C7E00881E80000901000187FFFFFC3A7 +S3154001A1E092102000C20420088422000180A0A00F02 +S3154001A1F004BFFFE407100122C600E3849022000356 +S3154001A200071001238410A001D020E16C10BFFFDDAF +S3154001A210C42060049DE3BFA080A660000280005078 +S3154001A220010000007FFFFFAB9010001884067FF805 +S3154001A230D800A004820B3FFE09100121860080014F +S3154001A24088112378DA00E004D601200880A2C003F1 +S3154001A250028000639A0B7FFCDA20E004808B2001A8 +S3154001A2601280000E98102000D8067FF88420800CBA +S3154001A2708200400CD600A0089801200880A2C00C9C +S3154001A2800280000698102001D400A00CD422E00CD4 +S3154001A29098102000D622A0089600C00DD602E004F0 +S3154001A2A0808AE0013280000A8610600180A3200086 +S3154001A2B00280002D8200400DDA00E008C600E00C65 +S3154001A2C0C623600CDA20E00886106001C2208001B6 +S3154001A2D080A3200012800020C620A00480A061FF38 +S3154001A2E028800030833060038730600980A0E00415 +S3154001A2F0188000529800E05B993060069803203838 +S3154001A3009B2B20039A01000DC603600880A0C00D57 +S3154001A31032800008C800E00410800052DA012004AF +S3154001A32080A3400322800008C200E00CC800E0047C +S3154001A33088093FFC80A040042ABFFFFAC600E00816 +S3154001A340C200E00CC220A00CC620A008C420E00C2C +S3154001A350C42060087FFFFF5981E8000081C7E008FB +S3154001A36081E80000DA00E008171001219612E38027 +S3154001A37080A3400B32BFFFD3C600E00CC423600C60 +S3154001A380C4236008C2208001DA20A008821060013F +S3154001A390DA20A00CC220A0047FFFFF4881E800001C +S3154001A3A08728600386010003DA00E008C620A00C76 +S3154001A3B0DA20A008D8012004C423600CC420E00898 +S3154001A3C083386002841020018328800182130001B2 +S3154001A3D0C22120047FFFFF3981E80000808B2001E4 +S3154001A3E01280000982034001D8067FF88420800C40 +S3154001A3F0DA00A00CC600A0088200400CC623600803 +S3154001A400DA20E00CC421200886106001C620A00491 +S3154001A41005100122C400A38080A040020ABFFFCEDE +S3154001A42003100123D20061607FFFFF4090100018A6 +S3154001A4307FFFFF2281E8000080A0E01408BFFFB241 +S3154001A4409B2B200380A0E0541880000D80A0E1548E +S3154001A4509930600C9803206E10BFFFAB9B2B2003F5 +S3154001A460993B2002821020018328400C821340012F +S3154001A470C221200410BFFFB48210000318800006D9 +S3154001A48080A0E5549930600F9803207710BFFF9E56 +S3154001A4909B2B20039A1023F018BFFF9B9810207E18 +S3154001A4A0993060129803207C10BFFF979B2B2003A5 +S3154001A4B09DE3BFA080A620000280001F031001205B +S3154001A4C0E406214880A4A00022800014C206203C54 +S3154001A4D0C204A004A0807FFF2C80000CE40480000D +S3154001A4E0A2006001A32C6002A2048011C2044000B4 +S3154001A4F09FC04000A2047FFCA0843FFF3CBFFFFDFC +S3154001A500C2044000E404800080A4A00032BFFFF2F0 +S3154001A510C204A004C206203C80A060000280000460 +S3154001A520010000009FC040009010001881C7E0085C +S3154001A53081E8000010BFFFE3F00062209DE3BFA069 +S3154001A540D206400080A260000280000401000000A3 +S3154001A5507FFFFFFB901000187FFFFF2F81E800006F +S3154001A560010000009DE3BFA003100120C20062204C +S3154001A57080A600010280003201000000D206204C74 +S3154001A58080A2600022800016E0062148A210200029 +S3154001A590E002401180A420002280000BA204600446 +S3154001A5A092100010901000187FFFFF1BE00400007E +S3154001A5B080A4200012BFFFFC92100010D206204C4E +S3154001A5C0A204600480A4603C32BFFFF3E002401164 +S3154001A5D07FFFFF1190100018E006214880A420005B +S3154001A5E02280000ED2062054A206214C80A40011DE +S3154001A5F02280000AD20620549210001090100018B2 +S3154001A6007FFFFF05E004000080A4401012BFFFFC5D +S3154001A61092100010D206205480A2600022800005CC +S3154001A620C20620387FFFFEFC90100018C206203873 +S3154001A63080A0600032800004C206203C81C7E00849 +S3154001A64081E800009FC0400090100018F20622E009 +S3154001A65080A6600002BFFFFA010000007FFFFFB83D +S3154001A66081E800000100000005100124C200A1B4E8 +S3154001A67080A060002280000603100125900040085A +S3154001A680D020A1B481C3E008901000018210616816 +S3154001A69090004008C220A1B4D020A1B481C3E008F3 +S3154001A6A090100001A7500000AE1000018334E00174 +S3154001A6B029100123E805203CA92CC014821500016C +S3154001A6C081E000008190400001000000010000008F +S3154001A6D001000000E03BA000E43BA008E83BA010DD +S3154001A6E0EC3BA018F03BA020F43BA028F83BA0305F +S3154001A6F0FC3BA03881E800008210001781C440006D +S3154001A70081CC800001000000010000000100000032 +S3154001A710A7500000A92CE0012B100123EA05603C5B +S3154001A720AB34C015AA1540148195400001000000C4 +S3154001A730010000000100000081E8000081E80000FE +S3154001A740E01BA000E41BA008E81BA010EC1BA0180E +S3154001A750F01BA020F41BA028F81BA030FC1BA0383E +S3154001A76081E0000081E0000081C4400081CC80008E +S3154001A770A75000002910006CADC5231C0100000044 +S3154001A78027100123A614E018E024C000818C202064 +S3154001A7900100000001000000010000009DE3BFA090 +S3154001A7A09DE3BFA09DE3BFA09DE3BFA09DE3BFA0E6 +S3154001A7B09DE3BFA09DE3BFA081E8000081E80000C2 +S3154001A7C081E8000081E8000081E8000081E800009E +S3154001A7D081E8000027100123A614E018C024C00018 +S3154001A7E0E203A068A4046004E223A064E423A06811 +S3154001A7F0108002F1AC10000029100122A81523FC9B +S3154001A800C2252000C8252004E0252010E225201479 +S3154001A810E4252018E825201C81E800008348000033 +S3154001A82082106F0081886020010000000100000055 +S3154001A8300100000009100123C801203C81E000000D +S3154001A8408821200180A920FF028000030100000029 +S3154001A8500100000080A1000012BFFFF901000000C5 +S3154001A86009100123C801203C81E8000080A920FF8E +S3154001A8700280000301000000010000008821200140 +S3154001A88080A1000012BFFFF90100000081E0000035 +S3154001A89029100122A81523FCC8052004C205200061 +S3154001A8A0E0052010E2052014E4052018C025201CEF +S3154001A8B0818C200001000000010000000100000021 +S3154001A8C081C4800081CCA004A0142F00818C00009B +S3154001A8D001000000010000000100000081C4800069 +S3154001A8E081CCA00480A6600212800005A8142F0026 +S3154001A8F0818D0000B01420203080001F80A66003A7 +S3154001A90012800006A80E2F00AA2C2F00A81540146D +S3154001A910818D00003080001880A6600412800008F6 +S3154001A920A9480000A8152040818D000001000000C3 +S3154001A93001000000010000003080000F80A6600584 +S3154001A94012800008A9480000A82D2040818D0000F2 +S3154001A95001000000010000000100000030800006F7 +S3154001A96080A66006128000030100000030BFFFA3ED +S3154001A97091D0200081C4800081CCA0049210200394 +S3154001A98081C3E00891D020029210200281C3E008E1 +S3154001A99091D020029210200681C3E00891D0200276 +S3154001A9A081C3E0080100000081C3E0080100000006 +S3154001A9B081C3E00801000000AE25A010A7500000A9 +S3154001A9C02D10006AAC15A1CC2910006D81C520C49B +S3154001A9D0010000001110012390122024D202000030 +S3154001A9E092026001D2220000932DE008902C2F00A4 +S3154001A9F092120009111001239012201CD00200006E +S3154001AA0080A000082280000292126F00818A602095 +S3154001AA100100000001000000010000009010001735 +S3154001AA20400000379203A06092142F00818A602073 +S3154001AA300100000001000000010000001110012387 +S3154001AA4090122024D202000092226001D2220000FC +S3154001AA50108002BCAC1000009DE3BFA01B10012377 +S3154001AA60892E60029A13619480A6601F821020008D +S3154001AA7014800017C6034004B32E60041910012345 +S3154001AA8080A0E000981322140280000D8406400C39 +S3154001AA9080A0C00212800006821000031080000EC2 +S3154001AAA0C206400C2280000CC206400CC200600C5B +S3154001AAB080A0600012BFFFFC80A08001C423400437 +S3154001AAC0F026400CC620A00C8210200081C7E00869 +S3154001AAD091E80001F026400C81C7E00891E80001A9 +S3154001AAE0912A20020310012382106194C400400878 +S3154001AAF0C422600C81C3E008D22040089DE3BFA078 +S3154001AB00051001238210A02CC200600480A04018C9 +S3154001AB1022800040C400A02C80A620002280000292 +S3154001AB20B0100001A32E200203100123821061946C +S3154001AB30E000401180A42000028000342910012445 +S3154001AB402D1001242B10012427100124A8152014AF +S3154001AB50AC15A098AA15609C1080001DA614E0189B +S3154001AB60A41000138400A001C4248011C4058000F0 +S3154001AB7080A0A00022800006D20420089FC0800049 +S3154001AB8001000000C2040000D20420089010001801 +S3154001AB909FC0400094100019C205400080A060008B +S3154001ABA022800005C20480119FC0400001000000C0 +S3154001ABB0C204801182007FFFC2248011E004200C70 +S3154001ABC080A420000280001101000000C2040000A0 +S3154001ABD080A0600022BFFFFBE004200CC4050000FA +S3154001ABE080A0A00012BFFFDFC404C01180A0A00056 +S3154001ABF002BFFFDDA4100013E004200C80A4200056 +S3154001AC0032BFFFF4C204000081C7E00881E80000BA +S3154001AC10F000A0C010BFFFC1B00E201F8C10000F66 +S3154001AC20A74800008B34E0188A09600F80A16003B1 +S3154001AC3002800002108000399010200192102006F7 +S3154001AC40400002760100000080A000080280003327 +S3154001AC5001000000C2022010113FFC00820840089A +S3154001AC60110003FC8410400890100002921020014C +S3154001AC709410200C4000027F0100000080A00008D3 +S3154001AC8002800026010000004000028F9210000160 +S3154001AC900B1001238A116034D2214000901000022A +S3154001ACA09210200194102011400002720100000010 +S3154001ACB080A00008028000190100000040000282C5 +S3154001ACC092100001920260100B1001238A11602834 +S3154001ACD0D221400090100002921020019410200DC4 +S3154001ACE0400002640100000080A000080280000BC1 +S3154001ACF00100000040000274921000010B10012374 +S3154001AD008A11602CD2214000D40260109532A010E5 +S3154001AD10940AA00FD42160049E10000681C3E00866 +S3154001AD2001000000031001238210604882102001B7 +S3154001AD3091D0200081C3E008010000009DE3BFA03F +S3154001AD40051001248410A1B8C200A09080A0600023 +S3154001AD50028000278600A0941080000688102000FB +S3154001AD608801200180A100011A8000210100000014 +S3154001AD70D800C000DA0300009733601880A2C018DB +S3154001AD8012BFFFF88600E0049733600C960AEFFF86 +S3154001AD9080A2C01932BFFFF48801200180A6A0001D +S3154001ADA0028000039A0B600FDA268000C20320045A +S3154001ADB0860120648728E00284008003C400A00441 +S3154001ADC03100003F073FFC00B01623F0B0084018A1 +S3154001ADD082084003B12E20048330600CB00E00017E +S3154001ADE0B016000281C7E00881E8000081C7E0088B +S3154001ADF091E820009DE3BFA003100124C40060AC8C +S3154001AE0080A0A00012800078841020012310012424 +S3154001AE10C42060AC92102000A01461B8941023A401 +S3154001AE20400002379010001084102000821030003C +S3154001AE308728A00288040003C600400080A0E000E5 +S3154001AE400280000480A070E0C22120048400A00199 +S3154001AE5032BFFFF882006020C42461B8DA0420487A +S3154001AE6082103800840360128528A00286040002FD +S3154001AE70C400400080A0A0000280000480A078E0C9 +S3154001AE80C220E0049A03600112BFFFF782006020EE +S3154001AE9080A360000480003FDA2420482500003F5B +S3154001AEA08404204CA414A3F09E102000821020009C +S3154001AEB010800005230003FC80A340010480003577 +S3154001AEC08400A004C6008000C800C000D600E0107F +S3154001AED08731201880A0E00132BFFFF8820060016F +S3154001AEE08931200C88092FFF80A1200632BFFFF34C +S3154001AEF082006001D804209080A3203F3480000264 +S3154001AF00861020008088E0FF2280001E82006001BA +S3154001AF10A60AC01288102000A72CE010A60AC0136A +S3154001AF208614C011D600C00080A2E0000280001144 +S3154001AF3088012001D60420909002E0249202E06428 +S3154001AF409402E0A4912A2002932A60029004000808 +S3154001AF5092040009952AA0029404000A9602E0018F +S3154001AF60C6222004E6226004DE22A004D6242090D4 +S3154001AF7080A1200F0480001E9803200182006001F9 +S3154001AF809E03E00180A3400114BFFFCF8400A004CB +S3154001AF90901020019210200D941020007FFFFF6831 +S3154001AFA02110012380A2200032800002D024202CCF +S3154001AFB09010200192102011151001247FFFFF608F +S3154001AFC09412A0A880A2200002800003031001244D +S3154001AFD0D02060A4C204202C80A0600032800002F0 +S3154001AFE0C020604081C7E00881E8000080A3203F7F +S3154001AFF034BFFFE48200600110BFFFCB8600E0084A +S3154001B0009DE3BFA003100124C20060B08410001864 +S3154001B01080A0600002800006B0102000901000025F +S3154001B0209FC0400092100019B010000881C7E00887 +S3154001B03081E800009DE3BFA003100124C20060B473 +S3154001B04080A0600002800005841020009FC040005F +S3154001B050901000188410000881C7E00891E80002AA +S3154001B0609DE3BFA003100124C20060BC80A0600024 +S3154001B07002800005841020009FC0400090100018F7 +S3154001B0808410000881C7E00891E800029DE3BFA053 +S3154001B09003100124C20060B880A060000280000550 +S3154001B0A0841020009FC040009010001884100008B2 +S3154001B0B081C7E00891E800029DE3BFA00310012487 +S3154001B0C0C20060C080A0600002800005841020009C +S3154001B0D09FC04000901000188410000881C7E00806 +S3154001B0E091E800029DE3BFA003100124C20060C4A1 +S3154001B0F080A0600002800005841020009FC04000AF +S3154001B100901000188410000881C7E00891E80002F9 +S3154001B1109DE3BFA003100124C20060C880A0600067 +S3154001B12002800005841020009FC040009010001846 +S3154001B1308410000881C7E00891E800029DE3BFA0A2 +S3154001B14003100124C20060CC8410001880A0600066 +S3154001B15002800006B0102000901000029FC04000FF +S3154001B16092100019B010000881C7E00881E800007C +S3154001B170010000000310006C821062289FC040004D +S3154001B1800100000003100000821060008198400019 +S3154001B1900310006C821062909FC0400001000000C5 +S3154001B1A00310006C821062189FC04000010000002D +S3154001B1B08B4440008B31601C80A140001280000608 +S3154001B1C0010000007FFFFE96010000007FFF99B25B +S3154001B1D0010000009C23A0407FFF978A01000000E8 +S3154001B1E08210200191D020000100000029000004B6 +S3154001B1F0A68C001432800003A02C001491D02000AC +S3154001B200818C0000010000000100000001000000E7 +S3154001B21081C4800081CCA00481C3E0080100000004 +S3154001B22081C1E00801000000A74800008B34E01806 +S3154001B2308A09600380A160031280000801000000B2 +S3154001B24021100123A0142044A2102003E22400006F +S3154001B2508B444000108000018A09601F271001239A +S3154001B260A614E03CCA24C0008A01600127100123CC +S3154001B270A614E038CA24C00027100123A614E040D2 +S3154001B2808A216002CA24C00081C3E008010000008F +S3154001B29081C3E00801000000834800008330601844 +S3154001B2A08208600380A0600312800006010000004E +S3154001B2B0834440000500000882284002A3804000E4 +S3154001B2C0881000000910006C81C121740100000042 +S3154001B2D09DE3BFA02110007023100070A014203000 +S3154001B2E0A214603080A400111A80000B01000000F6 +S3154001B2F0D004000080A2200002800004A0042004A3 +S3154001B3009FC200000100000080A400112ABFFFFA7D +S3154001B310D004000081C7E00881E80000AA27A0B058 +S3154001B320E0256060E2256064E4256068C2256074BA +S3154001B330C43D6078C83D6080CC3D60888540000052 +S3154001B340C425606CF03D6090F43D6098F83D60A086 +S3154001B350FC3D60A8A8102001A92D0010808D001386 +S3154001B36002800013010000008534E001071001232B +S3154001B370C600E03CA72CC0038414C0028408A0FF89 +S3154001B38081E000008190A000E03BA000E43BA008E2 +S3154001B390E83BA010EC3BA018F03BA020F43BA028D2 +S3154001B3A0F83BA030FC3BA03881E8000081C5A008ED +S3154001B3B09C100015051001248410A0A0C400800033 +S3154001B3C080A0800002800004010000009FC0800030 +S3154001B3D09203A060818C20008210200283284010B5 +S3154001B3E005100123C400A038853040028210400276 +S3154001B3F08550000080888001028000208328A001BA +S3154001B40007100123C600E03C8530800382104002CC +S3154001B410820860FF81906000C203A06C8180600059 +S3154001B420F01BA090F41BA098F81BA0A0FC1BA0A8A1 +S3154001B430C203A074C41BA078C81BA080CC1BA088E3 +S3154001B440E003A060E203A064E403A06881E8000091 +S3154001B450E01BA000E41BA008E81BA010EC1BA018F1 +S3154001B460F01BA020F41BA028F81BA030FC1BA03821 +S3154001B4701080000F81E00000C203A06C8180600053 +S3154001B480F01BA090F41BA098F81BA0A0FC1BA0A841 +S3154001B490C203A074C41BA078C81BA080CC1BA08883 +S3154001B4A0E003A060E203A064E403A068818C20006D +S3154001B4B001000000010000000100000081C44000BD +S3154001B4C081CC8000AA27A0B0C2256074C43D6078B3 +S3154001B4D0C83D6080CC3D608885400000C425606CD5 +S3154001B4E0A8102001A92D0010808D001302800013A1 +S3154001B4F0010000008534E00107100123C600E03C4D +S3154001B500A72CC0038414C0028408A0FF81E0000078 +S3154001B5108190A000E03BA000E43BA008E83BA010DE +S3154001B520EC3BA018F03BA020F43BA028F83BA03010 +S3154001B530FC3BA03881E8000081C5A0089C1000159D +S3154001B540051001248410A0A0C400800080A08000C2 +S3154001B55002800004010000009FC080009203A060A9 +S3154001B560818C20008210200283284010051001237F +S3154001B570C400A03885304002821040028550000048 +S3154001B58080888001028000198328A00107100123C9 +S3154001B590C600E03C8530800382104002820860FF8D +S3154001B5A081906000C203A06C81806000C203A074D8 +S3154001B5B0C41BA078C81BA080CC1BA08881E80000D2 +S3154001B5C0E01BA000E41BA008E81BA010EC1BA01880 +S3154001B5D0F01BA020F41BA028F81BA030FC1BA038B0 +S3154001B5E01080000881E00000C203A06C81806000E9 +S3154001B5F0C203A074C41BA078C81BA080CC1BA08822 +S3154001B600818C2000010000000100000001000000C3 +S3154001B61081C4400081CC8000821000089A10380015 +S3154001B62096102000912AE00598034008D40340086B +S3154001B6309132A01880A20001328000089602E001F2 +S3154001B6409132A00C900A2FFF80A2000902800007C8 +S3154001B6509410000C9602E00180A2E00728BFFFF398 +S3154001B660912AE0059410200081C3E0089010000A59 +S3154001B6708210000898102000912B20039A00400860 +S3154001B680D60040089132E01880A2000932800008B5 +S3154001B690980320019132E00C900A2FFF80A2000A04 +S3154001B6A0028000079610000D9803200180A3200F09 +S3154001B6B028BFFFF3912B20039610200081C3E00899 +S3154001B6C09010000BD4022004173FFC00920A400B55 +S3154001B6D0900A800B9132200C921240081100003FD3 +S3154001B6E0901223F0940A8008952AA0049412800BA4 +S3154001B6F0920A400A81C3E008901000099DE3BFA069 +S3154001B700860E60FF80A6A0030880002A84100018D8 +S3154001B710808E20033280002A821020008328E00890 +S3154001B7208210400380A6A00F852860109A10001849 +S3154001B730841080018810001A0880001182100018B8 +S3154001B740C4204000C4206004C4206008C420600CAA +S3154001B75088013FF080A1200F18BFFFFA82006010D8 +S3154001B7608206BFF0B408600F9A087FF080A6A00356 +S3154001B7709A0360100880000E9A06000D8210200080 +S3154001B780C4234001820060048826800180A12003F1 +S3154001B79038BFFFFDC42340018206BFFCB4086003E5 +S3154001B7A082087FFC820060049A0340018410000DE8 +S3154001B7B080A6A0000280000782102000C6288001D2 +S3154001B7C08200600180A0401A32BFFFFEC628800178 +S3154001B7D081C7E00881E800009DE3BFA02110007009 +S3154001B7E0A0142018C2043FFC80A07FFF02800008FD +S3154001B7F0A0043FFC9FC04000A0043FFCC2040000DF +S3154001B80080A07FFF12BFFFFC0100000081C7E00856 +S3154001B81081E800009DE3BFA081C7E00881E8000000 +S3154001B8200000001000000000017A5200047C0F0164 +S3154001B8301B0C0E000000001000000018FFFE595CB2 +S3154001B8400000007000000000000000180000002CFD +S3154001B850FFFE59B8000000B400410D1E2D4A090FE4 +S3154001B8601F0000000000001800000048FFFE5A506B +S3154001B870000000D800410D1E2D6C090F1F0000006D +S3154001B8800000001800000064FFFE5B0C0000047815 +S3154001B89000410D1E2D4D090F1F000000000000182C +S3154001B8A000000080FFFE5F680000008800410D1E19 +S3154001B8B02D5B090F1F000000000000180000009CCE +S3154001B8C0FFFE5FD40000009000410D1E2D43090F7D +S3154001B8D01F00000000000014000000B8FFFE604891 +S3154001B8E00000002000410D1E2D090F1F0000001011 +S3154001B8F0000000D0FFFE60500000001C0000000068 +S3154001B90000000010000000E4FFFE60580000001C2B +S3154001B9100000000000000010000000F8FFFE60601B +S3154001B9200000001C00000000000000100000010C97 +S3154001B930FFFE60680000001C0000000000000014CB +S3154001B94000000120FFFE60700000002C00410D1E2A +S3154001B9502D090F1F0000001800000138FFFE60D0BE +S3154001B9600000004000410D1E2D46090F1F0000003A +S3154001B9700000001800000154FFFE60F4000002249C +S3154001B98000410D1E2D46090F1F0000000000001842 +S3154001B99000000170FFFE62FC0000023400410D1EF2 +S3154001B9A02D47090F1F000000000000180000018C00 +S3154001B9B0FFFE65140000003C00410D1E2D43090F9A +S3154001B9C01F00000000000018000001A8FFFE6534BA +S3154001B9D00000003C00410D1E2D43090F1F000000D1 +S3154001B9E000000014000001C4FFFF46180000039444 +S3154001B9F000410D1E2D090F1F00000010000001DC43 +S3154001BA00FFFF49940000002C0000000000000010D8 +S3154001BA10000001F0FFFF49AC0000002400000000D7 +S3154001BA200000001000000204FFFF49BC000000189E +S3154001BA30000000000000001800000218FFFF49C086 +S3154001BA400000017C00410D1E2D42090F1F00000020 +S3154001BA500000001800000234FFFF4B200000058063 +S3154001BA6000410D1E2D46090F1F0000000000001861 +S3154001BA7000000250FFFF50840000051800410D1ED2 +S3154001BA802D43090F1F000000000000140000026C46 +S3154001BA90FFFF55800000010C00410D1E2D090F1FAF +S3154001BAA00000001000000284FFFF567400000018D9 +S3154001BAB0000000000000001400000298FFFF5678C5 +S3154001BAC00000020800410D1E2D090F1F0000001441 +S3154001BAD0000002B0FFFF66FC0000461800410D1E43 +S3154001BAE02D090F1F00000010000002C8FFFFACFC2B +S3154001BAF00000000C0000000000000010000002DC05 +S3154001BB00FFFFACF40000001400000000000000102C +S3154001BB10000002F0FFFFACF400000020000000002E +S3154001BB200000001400000304FFFFAD000000077091 +S3154001BB3000410D1E2D090F1F000000100000031CBF +S3154001BB40FFFFBD880000000C00000000000000104F +S3154001BB5000000330FFFFBD8000000024000000000C +S3154001BB600000001000000344FFFFBD9000000038B4 +S3154001BB70000000000000001000000358FFFFBDB4A4 +S3154001BB800000003800000000000000180000036CAF +S3154001BB90FFFFBDD80000009C00410D1E2D56090F28 +S3154001BBA01F0000000000001800000388FFFFBE5878 +S3154001BBB00000003C00410D1E2D4A090F1F000000E8 +S3154001BBC000000018000003A4FFFFBE780000003CFF +S3154001BBD000410D1E2D4A090F1F00000000000010F4 +S3154001BBE0000003C0FFFFBE980000003800000000BF +S3154001BBF000000018000003D4FFFFBEBC0000003C5B +S3154001BC0000410D1E2D4A090F1F00000000000018BB +S3154001BC10000003F0FFFFBEDC0000003C00410D1EAA +S3154001BC202D4A090F1F000000000000100000040CFF +S3154001BC30FFFFBEFC000000380000000000000018B5 +S3154001BC4000000420FFFFBF2000000EB000430D1E80 +S3154001BC502D4C090F1F000000000000140000043C99 +S3154001BC60FFFFCDB40000002800410D1E2D090F1F16 +S3154001BC700000001400000454FFFFCDC4000003304F +S3154001BC8000410D1E2D090F1F000000140000046C19 +S3154001BC90FFFFD0DC000002B800430D1E2D090F1F27 +S3154001BCA00000001000000484FFFFD6840000000C51 +S3154001BCB0000000000000001000000498FFFFD67C41 +S3154001BCC0000000140000000000000014000004AC55 +S3154001BCD0FFFFD67C0000007C00410D1E2D090F1F81 +S3154001BCE000000010000004C4FFFFDA7800000020C5 +S3154001BCF00000000000000018000004D8FFFFDA84AD +S3154001BD00000000FC00410D1E2D54090F1F000000CC +S3154001BD1000000018000004F4FFFFDB640000012C62 +S3154001BD2000410D1E2D41090F1F00000000000010AB +S3154001BD3000000510FFFFDC740000001C000000003D +S3154001BD400000001000000524FFFFDC7C0000001C01 +S3154001BD50000000000000001800000538FFFFDC84E9 +S3154001BD60000006D800410D1E2D4C090F1F00000092 +S3154001BD700000001000000554FFFFE34000000018DA +S3154001BD80000000000000001000000568FFFFE344CA +S3154001BD900000001800000000000000180000057CAB +S3154001BDA0FFFFE3480000004000410D1E2D42090FF0 +S3154001BDB01F0000000000001400000598FFFFE36C1F +S3154001BDC0000000EC00410D1E2D090F1F0000001858 +S3154001BDD0000005B0FFFFE4400000029C00410D1E3B +S3154001BDE02D43090F1F00000000000018000005CC7C +S3154001BDF0FFFFE6C00000008C00410D1E2D4F090FCC +S3154001BE001F00000000000018000005E8FFFFE730B2 +S3154001BE100000002800410D1E2D44090F1F0000009F +S3154001BE200000001800000604FFFFE73C0000010483 +S3154001BE3000410D1E2D45090F1F0000000000001096 +S3154001BE4000000620FFFFE8240000003C000000003F +S3154001BE500000001800000634FFFFEC0000000088D7 +S3154001BE6000410D1E2D52090F1F0000000000001059 +S3154001BE7000000650FFFFEC6C0000001C00000000B3 +S3154001BE800000001800000664FFFFEC74000001206A +S3154001BE9000410D1E2D58090F1F0000000000001023 +S3154001BEA000000680FFFFEE88000000100000000041 +S3154001BEB00000001800000694FFFFEE84000000B861 +S3154001BEC000410D1E2D48090F1F00000000000018FB +S3154001BED0000006B0FFFFEF200000020C00410D1EDE +S3154001BEE02D4A090F1F00000000000018000006CC73 +S3154001BEF0FFFFF1100000003400410D1E2D47090FD0 +S3154001BF001F00000000000018000006E8FFFFF128AE +S3154001BF100000002C00410D1E2D45090F1F00000099 +S3154001BF200000001800000704FFFFF1380000002C54 +S3154001BF3000410D1E2D45090F1F000000000000188D +S3154001BF4000000720FFFFF1480000002C00410D1EB4 +S3154001BF502D45090F1F000000000000180000073C96 +S3154001BF60FFFFF1580000002C00410D1E2D45090F21 +S3154001BF701F0000000000001800000758FFFFF1688D +S3154001BF800000002C00410D1E2D45090F1F00000029 +S3154001BF900000001800000774FFFFF1780000002C34 +S3154001BFA000410D1E2D45090F1F000000000000181D +S3154001BFB000000790FFFFF1880000003400410D1E8C +S3154001BFC02D47090F1F00000000000018000007ACB4 +S3154001BFD0FFFFF3000000004C00410D1E2D47090FE5 +S3154001BFE01F00000000000018000007C8FFFFF710FF +S3154001BFF0000000DC00410D1E2D76090F1F000000D8 +S3154001C00000000000000000000000000000000000E9 +S3154001C01000000002FFFFFFFF0000000000000000DB +S3154001C02000000002FFFFFFFF0000000000000000CB +S3154001C030343074693934612B3079676979753035B3 +S3154001C0407968617035796934682B612B69697978CA +S3154001C0506869346B35396A30713930356A6B6F7955 +S3154001C06070686F70746A72686961346979302B34AB +S3154001C0700000000000000000400800000000000031 +S3154001C0803CD203AF9EE756163E7AD7F29ABCAF48EA +S3154001C0904004822800000000430000000000000028 +S3154001C0A09DE3BFA07FFF9421010000007FFFFDCBF0 +S3154001C0B00100000081C7E00881E800009DE3BFA0C0 +S3154001C0C07FFF93EF0100000081C7E00881E800008F +S3154001C0D00000000000000000000000000000000019 +S3154001C0E00000000000000000000000000000000009 +S3154001C0F000000000000000000000000000000000F9 +S3154001C10000000000000000000000000000000000E8 +S3154001C11000000000000000000000000000000000D8 +S3154001C12000000000000000000000000000000000C8 +S3154001C13000000000000000000000000000000000B8 +S3154001C14000000000000000000000000000000000A8 +S3154001C1500000000000000000000000000000000098 +S3154001C1600000000000000000000000000000000088 +S3154001C1700000000000000000000000000000000078 +S3154001C1800000000000000000000000000000000068 +S3154001C1900000000000000000000000000000000058 +S3154001C1A00000000000000000000000000000000048 +S3154001C1B00000000000000000000000000000000038 +S3154001C1C00000000000000000000000000000000028 +S3154001C1D00000000000000000000000000000000018 +S3154001C1E00000000000000000000000000000000008 +S3154001C1F000000000000000000000000000000000F8 +S3154001C20000000000000000000000000000000000E7 +S3154001C21000000000000000000000000000000000D7 +S3154001C22000000000000000000000000000000000C7 +S3154001C23000000000000000000000000000000000B7 +S3154001C24000000000000000000000000000000000A7 +S3154001C2500000000000000000000000000000000097 +S3154001C2600000000000000000000000000000000087 +S3154001C2700000000000000000000000000000000077 +S3154001C2800000000000000000000000000000000067 +S3154001C2900000000000000000000000000000000057 +S3154001C2A00000000000000000000000000000000047 +S3154001C2B00000000000000000000000000000000037 +S3154001C2C00000000000000000000000000000000027 +S3154001C2D00000000000000000000000000000000017 +S3154001C2E00000000000000000000000000000000007 +S3154001C2F000000000000000000000000000000000F7 +S3154001C30000000000000000000000000000000000E6 +S3154001C31000000000000000000000000000000000D6 +S3154001C32000000000000000000000000000000000C6 +S3154001C33000000000000000000000000000000000B6 +S3154001C34000000000000000000000000000000000A6 +S3154001C3500000000000000000000000000000000096 +S3154001C3600000000000000000000000000000000086 +S3154001C3700000000000000000000000000000000076 +S3154001C3800000000000000000000000000000000066 +S3154001C3900000000000000000000000000000000056 +S3154001C3A00000000000000000000000000000000046 +S3154001C3B00000000000000000000000000000000036 +S3154001C3C00000000000000000000000000000000026 +S3154001C3D00000000000000000000000000000000016 +S3154001C3E00000000000000000000000000000000006 +S3154001C3F000000000000000000000000000000000F6 +S3154001C40000000000000000000000000000000000E5 +S3154001C41000000000000000000000000000000000D5 +S3154001C42000000000000000000000000000000000C5 +S3154001C43000000000000000000000000000000000B5 +S3154001C44000000000000000000000000000000000A5 +S3154001C4500000000000000000000000000000000095 +S3154001C4600000000000000000000000000000000085 +S3154001C4700000000000000000000000000000000075 +S3154001C4800000000000000000000000000000000065 +S3154001C4900000000000000000000000000000000055 +S3154001C4A00000000000000000000000000000000045 +S3154001C4B00000000000000000000000000000000035 +S3154001C4C00000000000000000000000000000000025 +S3154001C4D00000000000000000000000000000000015 +S3154001C4E00000000000000000000000000000000005 +S3154001C4F000000000000000000000000000000000F5 +S3154001C50000000000000000000000000000000000E4 +S3154001C51000000000000000000000000000000000D4 +S3154001C52000000000000000000000000000000000C4 +S3154001C53000000000000000000000000000000000B4 +S3154001C54000000000000000000000000000000000A4 +S3154001C5500000000000000000000000000000000094 +S3154001C5600000000000000000000000000000000084 +S3154001C5700000000000000000000000000000000074 +S3154001C5800000000000000000000000000000000064 +S3154001C5900000000000000000000000000000000054 +S3154001C5A00000000000000000000000000000000044 +S3154001C5B00000000000000000000000000000000034 +S3154001C5C00000000000000000000000000000000024 +S3154001C5D00000000000000000000000000000000014 +S3154001C5E00000000000000000000000000000000004 +S3154001C5F000000000000000000000000000000000F4 +S3154001C60000000000000000000000000000000000E3 +S3154001C61000000000000000000000000000000000D3 +S3154001C62000000000000000000000000000000000C3 +S3154001C63000000000000000000000000000000000B3 +S3154001C64000000000000000000000000000000000A3 +S3154001C6500000000000000000000000000000000093 +S3154001C6600000000000000000000000000000000083 +S3154001C6700000000000000000000000000000000073 +S3154001C6800000000000000000000000000000000063 +S3154001C6900000000000000000000000000000000053 +S3154001C6A00000000000000000000000000000000043 +S3154001C6B00000000000000000000000000000000033 +S3154001C6C00000000000000000000000000000000023 +S3154001C6D00000000000000000000000000000000013 +S3154001C6E00000000000000000000000000000000003 +S3154001C6F000000000000000000000000000000000F3 +S3154001C70000000000000000000000000000000000E2 +S3154001C71000000000000000000000000000000000D2 +S3154001C72000000000000000000000000000000000C2 +S3154001C73000000000000000000000000000000000B2 +S3154001C74000000000000000000000000000000000A2 +S3154001C7500000000000000000000000000000000092 +S3154001C7600000000000000000000000000000000082 +S3154001C7700000000000000000000000000000000072 +S3154001C7800000000000000000000000000000000062 +S3154001C7900000000000000000000000000000000052 +S3154001C7A00000000000000000000000000000000042 +S3154001C7B00000000000000000000000000000000032 +S3154001C7C00000000000000000000000000000000022 +S3154001C7D00000000000000000000000000000000012 +S3154001C7E00000000000000000000000000000000002 +S3154001C7F000000000000000000000000000000000F2 +S3154001C80000000000000000000000000000000000E1 +S3154001C81000000000000000000000000000000000D1 +S3154001C82000000000000000000000000000000000C1 +S3154001C83000000000000000000000000000000000B1 +S3154001C84000000000000000000000000000000000A1 +S3154001C8500000000000000000000000000000000091 +S3154001C8600000000000000000000000000000000081 +S3154001C8700000000000000000000000000000000071 +S3154001C8800000000000000000000000000000000061 +S3154001C8900000000000000000000000000000000051 +S3154001C8A00000000000000000000000000000000041 +S3154001C8B00000000000000000000000000000000031 +S3154001C8C00000000000000000000000000000000021 +S3154001C8D00000000000000000000000000000000011 +S3154001C8E00000000000000000000000000000000001 +S3154001C8F000000000000000000000000000000000F1 +S3154001C90000000000000000000000000000000000E0 +S3154001C91000000000000000000000000000000000D0 +S3154001C92000000000000000000000000000000000C0 +S3154001C93000000000000000000000000000000000B0 +S3154001C94000000000000000000000000000000000A0 +S3154001C9500000000000000000000000000000000090 +S3154001C9600000000000000000000000000000000080 +S3154001C9700000000000000000000000000000000070 +S3154001C9800000000000000000000000000000000060 +S3154001C9900000000000000000000000000000000050 +S3154001C9A00000000000000000000000000000000040 +S3154001C9B00000000000000000000000000000000030 +S3154001C9C00000000000000000000000000000000020 +S3154001C9D00000000000000000000000000000000010 +S3154001C9E00000000000000000000000000000000000 +S3154001C9F000000000000000000000000000000000F0 +S3154001CA0000000000000000000000000000000000DF +S3154001CA1000000000000000000000000000000000CF +S3154001CA2000000000000000000000000000000000BF +S3154001CA3000000000000000000000000000000000AF +S3154001CA40000000000000000000000000000000009F +S3154001CA50000000000000000000000000000000008F +S3154001CA60000000000000000000000000000000007F +S3154001CA70000000000000000000000000000000006F +S3154001CA80000000000000000000000000000000005F +S3154001CA90000000000000000000000000000000004F +S3154001CAA0000000000000000000000000000000003F +S3154001CAB0000000000000000000000000000000002F +S3154001CAC0000000000000000000000000000000001F +S3154001CAD0000000000000000000000000000000000F +S3154001CAE000000000000000000000000000000000FF +S3154001CAF000000000000000000000000000000000EF +S3154001CB0000000000000000000000000000000000DE +S3154001CB1000000000000000000000000000000000CE +S3154001CB2000000000000000000000000000000000BE +S3154001CB3000000000000000000000000000000000AE +S3154001CB40000000000000000000000000000000009E +S3154001CB50000000000000000000000000000000008E +S3154001CB60000000000000000000000000000000007E +S3154001CB70000000000000000000000000000000006E +S3154001CB80000000000000000000000000000000005E +S3154001CB90000000000000000000000000000000004E +S3154001CBA0000000000000000000000000000000003E +S3154001CBB0000000000000000000000000000000002E +S3154001CBC0000000000000000000000000000000001E +S3154001CBD0000000000000000000000000000000000E +S3154001CBE000000000000000000000000000000000FE +S3154001CBF000000000000000000000000000000000EE +S3154001CC0000000000000000000000000000000000DD +S3154001CC1000000000000000000000000000000000CD +S3154001CC2000000000000000000000000000000000BD +S3154001CC3000000000000000000000000000000000AD +S3154001CC40000000000000000000000000000000009D +S3154001CC50000000000000000000000000000000008D +S3154001CC60000000000000000000000000000000007D +S3154001CC70000000000000000000000000000000006D +S3154001CC80000000000000000000000000000000005D +S3154001CC90000000000000000000000000000000004D +S3154001CCA0000000000000000000000000000000003D +S3154001CCB0000000000000000000000000000000002D +S3154001CCC0000000000000000000000000000000001D +S3154001CCD0000000000000000000000000000000000D +S3154001CCE000000000000000000000000000000000FD +S3154001CCF000000000000000000000000000000000ED +S3154001CD0000000000000000000000000000000000DC +S3154001CD1000000000000000000000000000000000CC +S3154001CD2000000000000000000000000000000000BC +S3154001CD3000000000000000000000000000000000AC +S3154001CD40000000000000000000000000000000009C +S3154001CD50000000000000000000000000000000008C +S3154001CD60000000000000000000000000000000007C +S3154001CD70000000000000000000000000000000006C +S3154001CD80000000000000000000000000000000005C +S3154001CD90000000000000000000000000000000004C +S3154001CDA0000000000000000000000000000000003C +S3154001CDB0000000000000000000000000000000002C +S3154001CDC0000000000000000000000000000000001C +S3154001CDD0000000000000000000000000000000000C +S3154001CDE000000000000000000000000000000000FC +S3154001CDF000000000000000000000000000000000EC +S3154001CE0000000000000000000000000000000000DB +S3154001CE1000000000000000000000000000000000CB +S3154001CE2000000000000000000000000000000000BB +S3154001CE3000000000000000000000000000000000AB +S3154001CE40000000000000000000000000000000009B +S3154001CE50000000000000000000000000000000008B +S3154001CE60000000000000000000000000000000007B +S3154001CE70000000000000000000000000000000006B +S3154001CE80000000000000000000000000000000005B +S3154001CE90000000000000000000000000000000004B +S3154001CEA0000000000000000000000000000000003B +S3154001CEB0000000000000000000000000000000002B +S3154001CEC0000000000000000000000000000000001B +S3154001CED0000000000000000000000000000000000B +S3154001CEE000000000000000000000000000000000FB +S3154001CEF000000000000000000000000000000000EB +S3154001CF0000000000000000000000000000000000DA +S3154001CF1000000000000000000000000000000000CA +S3154001CF2000000000000000000000000000000000BA +S3154001CF3000000000000000000000000000000000AA +S3154001CF40000000000000000000000000000000009A +S3154001CF50000000000000000000000000000000008A +S3154001CF60000000000000000000000000000000007A +S3154001CF70000000000000000000000000000000006A +S3154001CF80000000000000000000000000000000005A +S3154001CF90000000000000000000000000000000004A +S3154001CFA0000000000000000000000000000000003A +S3154001CFB0000000000000000000000000000000002A +S3154001CFC0000000000000000000000000000000001A +S3154001CFD0000000000000000000000000000000000A +S3154001CFE000000000000000000000000000000000FA +S3154001CFF000000000000000000000000000000000EA +S3154001D00000000000000000000000000000000000D9 +S3154001D01000000000000000000000000000000000C9 +S3154001D02000000000000000000000000000000000B9 +S3154001D03000000000000000000000000000000000A9 +S3154001D0400000000000000000000000000000000099 +S3154001D0500000000000000000000000000000000089 +S3154001D0600000000000000000000000000000000079 +S3154001D0700000000000000000000000000000000069 +S3154001D0800000000000000000000000000000000059 +S3154001D0900000000000000000000000000000000049 +S3154001D0A00000000000000000000000000000000039 +S3154001D0B00000000000000000000000000000000029 +S3154001D0C00000000000000000000000000000000019 +S3154001D0D00000000000000000000000000000000009 +S3154001D0E000000000000000000000000000000000F9 +S3154001D0F000000000000000000000000000000000E9 +S3154001D10000000000000000000000000000000000D8 +S3154001D11000000000000000000000000000000000C8 +S3154001D12000000000000000000000000000000000B8 +S3154001D13000000000000000000000000000000000A8 +S3154001D1400000000000000000000000000000000098 +S3154001D1500000000000000000000000000000000088 +S3154001D1600000000000000000000000000000000078 +S3154001D1700000000000000000000000000000000068 +S3154001D1800000000000000000000000000000000058 +S3154001D1900000000000000000000000000000000048 +S3154001D1A00000000000000000000000000000000038 +S3154001D1B00000000000000000000000000000000028 +S3154001D1C00000000000000000000000000000000018 +S3154001D1D00000000000000000000000000000000008 +S3154001D1E000000000000000000000000000000000F8 +S3154001D1F000000000000000000000000000000000E8 +S3154001D20000000000000000000000000000000000D7 +S3154001D21000000000000000000000000000000000C7 +S3154001D22000000000000000000000000000000000B7 +S3154001D23000000000000000000000000000000000A7 +S3154001D2400000000000000000000000000000000097 +S3154001D2500000000000000000000000000000000087 +S3154001D2600000000000000000000000000000000077 +S3154001D2700000000000000000000000000000000067 +S3154001D2800000000000000000000000000000000057 +S3154001D2900000000000000000000000000000000047 +S3154001D2A00000000000000000000000000000000037 +S3154001D2B00000000000000000000000000000000027 +S3154001D2C00000000000000000000000000000000017 +S3154001D2D00000000000000000000000000000000007 +S3154001D2E000000000000000000000000000000000F7 +S3154001D2F000000000000000000000000000000000E7 +S3154001D30000000000000000000000000000000000D6 +S3154001D31000000000000000000000000000000000C6 +S3154001D32000000000000000000000000000000000B6 +S3154001D33000000000000000000000000000000000A6 +S3154001D3400000000000000000000000000000000096 +S3154001D3500000000000000000000000000000000086 +S3154001D3600000000000000000000000000000000076 +S3154001D3700000000000000000000000000000000066 +S3154001D3800000000000000000000000000000000056 +S3154001D3900000000000000000000000000000000046 +S3154001D3A00000000000000000000000000000000036 +S3154001D3B00000000000000000000000000000000026 +S3154001D3C00000000000000000000000000000000016 +S3154001D3D00000000000000000000000000000000006 +S3154001D3E000000000000000000000000000000000F6 +S3154001D3F000000000000000000000000000000000E6 +S3154001D40000000000000000000000000000000000D5 +S3154001D41000000000000000000000000000000000C5 +S3154001D42000000000000000000000000000000000B5 +S3154001D43000000000000000000000000000000000A5 +S3154001D4400000000000000000000000000000000095 +S3154001D4500000000000000000000000000000000085 +S3154001D4600000000000000000000000000000000075 +S3154001D4700000000000000000000000000000000065 +S3154001D4800000000000000000000000000000000055 +S3154001D4900000000000000000000000000000000045 +S3154001D4A00000000000000000000000000000000035 +S3154001D4B00000000000000000000000000000000025 +S3154001D4C00000000000000000000000000000000015 +S3154001D4D00000000000000000000000000000000005 +S3154001D4E000000000000000000000000000000000F5 +S3154001D4F000000000000000000000000000000000E5 +S3154001D50000000000000000000000000000000000D4 +S3154001D51000000000000000000000000000000000C4 +S3154001D52000000000000000000000000000000000B4 +S3154001D53000000000000000000000000000000000A4 +S3154001D5400000000000000000000000000000000094 +S3154001D5500000000000000000000000000000000084 +S3154001D5600000000000000000000000000000000074 +S3154001D5700000000000000000000000000000000064 +S3154001D5800000000000000000000000000000000054 +S3154001D5900000000000000000000000000000000044 +S3154001D5A00000000000000000000000000000000034 +S3154001D5B00000000000000000000000000000000024 +S3154001D5C00000000000000000000000000000000014 +S3154001D5D00000000000000000000000000000000004 +S3154001D5E000000000000000000000000000000000F4 +S3154001D5F000000000000000000000000000000000E4 +S3154001D60000000000000000000000000000000000D3 +S3154001D61000000000000000000000000000000000C3 +S3154001D62000000000000000000000000000000000B3 +S3154001D63000000000000000000000000000000000A3 +S3154001D6400000000000000000000000000000000093 +S3154001D6500000000000000000000000000000000083 +S3154001D6600000000000000000000000000000000073 +S3154001D6700000000000000000000000000000000063 +S3154001D6800000000000000000000000000000000053 +S3154001D6900000000000000000000000000000000043 +S3154001D6A00000000000000000000000000000000033 +S3154001D6B00000000000000000000000000000000023 +S3154001D6C00000000000000000000000000000000013 +S3154001D6D00000000000000000000000000000000003 +S3154001D6E000000000000000000000000000000000F3 +S3154001D6F000000000000000000000000000000000E3 +S3154001D70000000000000000000000000000000000D2 +S3154001D71000000000000000000000000000000000C2 +S3154001D72000000000000000000000000000000000B2 +S3154001D73000000000000000000000000000000000A2 +S3154001D7400000000000000000000000000000000092 +S3154001D7500000000000000000000000000000000082 +S3154001D7600000000000000000000000000000000072 +S3154001D7700000000000000000000000000000000062 +S3154001D7800000000000000000000000000000000052 +S3154001D7900000000000000000000000000000000042 +S3154001D7A00000000000000000000000000000000032 +S3154001D7B00000000000000000000000000000000022 +S3154001D7C00000000000000000000000000000000012 +S3154001D7D00000000000000000000000000000000002 +S3154001D7E000000000000000000000000000000000F2 +S3154001D7F000000000000000000000000000000000E2 +S3154001D80000000000000000000000000000000000D1 +S3154001D81000000000000000000000000000000000C1 +S3154001D82000000000000000000000000000000000B1 +S3154001D83000000000000000000000000000000000A1 +S3154001D8400000000000000000000000000000000091 +S3154001D8500000000000000000000000000000000081 +S3154001D8600000000000000000000000000000000071 +S3154001D8700000000000000000000000000000000061 +S3154001D8800000000000000000000000000000000051 +S3154001D8900000000000000000000000000000000041 +S3154001D8A00000000000000000000000000000000031 +S3154001D8B00000000000000000000000000000000021 +S3154001D8C00000000000000000000000000000000011 +S3154001D8D00000000000000000000000000000000001 +S3154001D8E000000000000000000000000000000000F1 +S3154001D8F000000000000000000000000000000000E1 +S3154001D90000000000000000000000000000000000D0 +S3154001D91000000000000000000000000000000000C0 +S3154001D92000000000000000000000000000000000B0 +S3154001D93000000000000000000000000000000000A0 +S3154001D9400000000000000000000000000000000090 +S3154001D9500000000000000000000000000000000080 +S3154001D9600000000000000000000000000000000070 +S3154001D9700000000000000000000000000000000060 +S3154001D9800000000000000000000000000000000050 +S3154001D9900000000000000000000000000000000040 +S3154001D9A00000000000000000000000000000000030 +S3154001D9B00000000000000000000000000000000020 +S3154001D9C00000000000000000000000000000000010 +S3154001D9D00000000000000000000000000000000000 +S3154001D9E000000000000000000000000000000000F0 +S3154001D9F000000000000000000000000000000000E0 +S3154001DA0000000000000000000000000000000000CF +S3154001DA1000000000000000000000000000000000BF +S3154001DA2000000000000000000000000000000000AF +S3154001DA30000000000000000000000000000000009F +S3154001DA40000000000000000000000000000000008F +S3154001DA50000000000000000000000000000000007F +S3154001DA60000000000000000000000000000000006F +S3154001DA70000000000000000000000000000000005F +S3154001DA80000000000000000000000000000000004F +S3154001DA90000000000000000000000000000000003F +S3154001DAA0000000000000000000000000000000002F +S3154001DAB0000000000000000000000000000000001F +S3154001DAC0000000000000000000000000000000000F +S3154001DAD000000000000000000000000000000000FF +S3154001DAE000000000000000000000000000000000EF +S3154001DAF000000000000000000000000000000000DF +S3154001DB0000000000000000000000000000000000CE +S3154001DB1000000000000000000000000000000000BE +S3154001DB2000000000000000000000000000000000AE +S3154001DB30000000000000000000000000000000009E +S3154001DB40000000000000000000000000000000008E +S3154001DB50000000000000000000000000000000007E +S3154001DB60000000000000000000000000000000006E +S3154001DB70000000000000000000000000000000005E +S3154001DB80000000000000000000000000000000004E +S3154001DB90000000000000000000000000000000003E +S3154001DBA0000000000000000000000000000000002E +S3154001DBB0000000000000000000000000000000001E +S3154001DBC0000000000000000000000000000000000E +S3154001DBD000000000000000000000000000000000FE +S3154001DBE000000000000000000000000000000000EE +S3154001DBF000000000000000000000000000000000DE +S3154001DC0000000000000000000000000000000000CD +S3154001DC1000000000000000000000000000000000BD +S3154001DC2000000000000000000000000000000000AD +S3154001DC30000000000000000000000000000000009D +S3154001DC40000000000000000000000000000000008D +S3154001DC50000000000000000000000000000000007D +S3154001DC60000000000000000000000000000000006D +S3154001DC70000000000000000000000000000000005D +S3154001DC80000000000000000000000000000000004D +S3154001DC90000000000000000000000000000000003D +S3154001DCA0000000000000000000000000000000002D +S3154001DCB0000000000000000000000000000000001D +S3154001DCC0000000000000000000000000000000000D +S3154001DCD000000000000000000000000000000000FD +S3154001DCE000000000000000000000000000000000ED +S3154001DCF000000000000000000000000000000000DD +S3154001DD0000000000000000000000000000000000CC +S3154001DD1000000000000000000000000000000000BC +S3154001DD2000000000000000000000000000000000AC +S3154001DD30000000000000000000000000000000009C +S3154001DD40000000000000000000000000000000008C +S3154001DD50000000000000000000000000000000007C +S3154001DD60000000000000000000000000000000006C +S3154001DD70000000000000000000000000000000005C +S3154001DD80000000000000000000000000000000004C +S3154001DD90000000000000000000000000000000003C +S3154001DDA0000000000000000000000000000000002C +S3154001DDB0000000000000000000000000000000001C +S3154001DDC0000000000000000000000000000000000C +S3154001DDD000000000000000000000000000000000FC +S3154001DDE000000000000000000000000000000000EC +S3154001DDF000000000000000000000000000000000DC +S3154001DE0000000000000000000000000000000000CB +S3154001DE1000000000000000000000000000000000BB +S3154001DE2000000000000000000000000000000000AB +S3154001DE30000000000000000000000000000000009B +S3154001DE40000000000000000000000000000000008B +S3154001DE50000000000000000000000000000000007B +S3154001DE60000000000000000000000000000000006B +S3154001DE70000000000000000000000000000000005B +S3154001DE80000000000000000000000000000000004B +S3154001DE90000000000000000000000000000000003B +S3154001DEA0000000000000000000000000000000002B +S3154001DEB0000000000000000000000000000000001B +S3154001DEC0000000000000000000000000000000000B +S3154001DED000000000000000000000000000000000FB +S3154001DEE000000000000000000000000000000000EB +S3154001DEF000000000000000000000000000000000DB +S3154001DF0000000000000000000000000000000000CA +S3154001DF1000000000000000000000000000000000BA +S3154001DF2000000000000000000000000000000000AA +S3154001DF30000000000000000000000000000000009A +S3154001DF40000000000000000000000000000000008A +S3154001DF50000000000000000000000000000000007A +S3154001DF60000000000000000000000000000000006A +S3154001DF70000000000000000000000000000000005A +S3154001DF80000000000000000000000000000000004A +S3154001DF90000000000000000000000000000000003A +S3154001DFA0000000000000000000000000000000002A +S3154001DFB0000000000000000000000000000000001A +S3154001DFC0000000000000000000000000000000000A +S3154001DFD000000000000000000000000000000000FA +S3154001DFE000000000000000000000000000000000EA +S3154001DFF000000000000000000000000000000000DA +S3154001E00000000000000000000000000000000000C9 +S3154001E01000000000000000000000000000000000B9 +S3154001E02000000000000000000000000000000000A9 +S3154001E0300000000000000000000000000000000099 +S3154001E0400000000000000000000000000000000089 +S3154001E0500000000000000000000000000000000079 +S3154001E0600000000000000000000000000000000069 +S3154001E0700000000000000000000000000000000059 +S3154001E0800000000000000000000000000000000049 +S3154001E0900000000000000000000000000000000039 +S3154001E0A00000000000000000000000000000000029 +S3154001E0B00000000000000000000000000000000019 +S3154001E0C00000000000000000000000000000000009 +S3154001E0D000000000000000000000000000000000F9 +S3154001E0E000000000000000000000000000000000E9 +S3154001E0F000000000000000000000000000000000D9 +S3154001E10000000000000000000000000000000000C8 +S3154001E11000000000000000000000000000000000B8 +S3154001E12000000000000000000000000000000000A8 +S3154001E1300000000000000000000000000000000098 +S3154001E1400000000000000000000000000000000088 +S3154001E1500000000000000000000000000000000078 +S3154001E1600000000000000000000000000000000068 +S3154001E1700000000000000000000000000000000058 +S3154001E1800000000000000000000000000000000048 +S3154001E1900000000000000000000000000000000038 +S3154001E1A00000000000000000000000000000000028 +S3154001E1B00000000000000000000000000000000018 +S3154001E1C00000000000000000000000000000000008 +S3154001E1D000000000000000000000000000000000F8 +S3154001E1E000000000000000000000000000000000E8 +S3154001E1F000000000000000000000000000000000D8 +S3154001E20000000000000000000000000000000000C7 +S3154001E21000000000000000000000000000000000B7 +S3154001E22000000000000000000000000000000000A7 +S3154001E2300000000000000000000000000000000097 +S3154001E2400000000000000000000000000000000087 +S3154001E2500000000000000000000000000000000077 +S3154001E2600000000000000000000000000000000067 +S3154001E2700000000000000000000000000000000057 +S3154001E2800000000000000000000000000000000047 +S3154001E2900000000000000000000000000000000037 +S3154001E2A00000000000000000000000000000000027 +S3154001E2B00000000000000000000000000000000017 +S3154001E2C00000000000000000000000000000000007 +S3154001E2D000000000000000000000000000000000F7 +S3154001E2E000000000000000000000000000000000E7 +S3154001E2F000000000000000000000000000000000D7 +S3154001E30000000000000000000000000000000000C6 +S3154001E31000000000000000000000000000000000B6 +S3154001E32000000000000000000000000000000000A6 +S3154001E3300000000000000000000000000000000096 +S3154001E3400000000000000000000000000000000086 +S3154001E3500000000000000000000000000000000076 +S3154001E3600000000000000000000000000000000066 +S3154001E3700000000000000000000000000000000056 +S3154001E3800000000000000000000000000000000046 +S3154001E3900000000000000000000000000000000036 +S3154001E3A00000000000000000000000000000000026 +S3154001E3B00000000000000000000000000000000016 +S3154001E3C00000000000000000000000000000000006 +S3154001E3D000000000000000000000000000000000F6 +S3154001E3E000000000000000000000000000000000E6 +S3154001E3F000000000000000000000000000000000D6 +S3154001E40000000000000000000000000000000000C5 +S3154001E41000000000000000000000000000000000B5 +S3154001E42000000000000000000000000000000000A5 +S3154001E4300000000000000000000000000000000095 +S3154001E4400000000000000000000000000000000085 +S3154001E4500000000000000000000000000000000075 +S3154001E4600000000000000000000000000000000065 +S3154001E4700000000000000000000000000000000055 +S3154001E4800000000000000000000000000000000045 +S3154001E4900000000000000000000000000000000035 +S3154001E4A00000000000000000000000000000000025 +S3154001E4B00000000000000000000000000000000015 +S3154001E4C00000000000000000000000000000000005 +S3154001E4D000000000000000000000000000000000F5 +S3154001E4E000000000000000000000000000000000E5 +S3154001E4F000000000000000000000000000000000D5 +S3154001E50000000000000000000000000000000000C4 +S3154001E51000000000000000000000000000000000B4 +S3154001E52000000000000000000000000000000000A4 +S3154001E5300000000000000000000000000000000094 +S3154001E5400000000000000000000000000000000084 +S3154001E5500000000000000000000000000000000074 +S3154001E5600000000000000000000000000000000064 +S3154001E5700000000000000000000000000000000054 +S3154001E5800000000000000000000000000000000044 +S3154001E5900000000000000000000000000000000034 +S3154001E5A00000000000000000000000000000000024 +S3154001E5B00000000000000000000000000000000014 +S3154001E5C00000000000000000000000000000000004 +S3154001E5D000000000000000000000000000000000F4 +S3154001E5E000000000000000000000000000000000E4 +S3154001E5F000000000000000000000000000000000D4 +S3154001E60000000000000000000000000000000000C3 +S3154001E61000000000000000000000000000000000B3 +S3154001E62000000000000000000000000000000000A3 +S3154001E6300000000000000000000000000000000093 +S3154001E6400000000000000000000000000000000083 +S3154001E6500000000000000000000000000000000073 +S3154001E6600000000000000000000000000000000063 +S3154001E6700000000000000000000000000000000053 +S3154001E6800000000000000000000000000000000043 +S3154001E6900000000000000000000000000000000033 +S3154001E6A00000000000000000000000000000000023 +S3154001E6B00000000000000000000000000000000013 +S3154001E6C00000000000000000000000000000000003 +S3154001E6D000000000000000000000000000000000F3 +S3154001E6E000000000000000000000000000000000E3 +S3154001E6F000000000000000000000000000000000D3 +S3154001E70000000000000000000000000000000000C2 +S3154001E71000000000000000000000000000000000B2 +S3154001E72000000000000000000000000000000000A2 +S3154001E7300000000000000000000000000000000092 +S3154001E7400000000000000000000000000000000082 +S3154001E7500000000000000000000000000000000072 +S3154001E7600000000000000000000000000000000062 +S3154001E7700000000000000000000000000000000052 +S3154001E7800000000000000000000000000000000042 +S3154001E7900000000000000000000000000000000032 +S3154001E7A00000000000000000000000000000000022 +S3154001E7B00000000000000000000000000000000012 +S3154001E7C00000000000000000000000000000000002 +S3154001E7D000000000000000000000000000000000F2 +S3154001E7E000000000000000000000000000000000E2 +S3154001E7F000000000000000000000000000000000D2 +S3154001E80000000000000000000000000000000000C1 +S3154001E81000000000000000000000000000000000B1 +S3154001E82000000000000000000000000000000000A1 +S3154001E8300000000000000000000000000000000091 +S3154001E8400000000000000000000000000000000081 +S3154001E8500000000000000000000000000000000071 +S3154001E8600000000000000000000000000000000061 +S3154001E8700000000000000000000000000000000051 +S3154001E8800000000000000000000000000000000041 +S3154001E8900000000000000000000000000000000031 +S3154001E8A00000000000000000000000000000000021 +S3154001E8B00000000000000000000000000000000011 +S3154001E8C00000000000000000000000000000000001 +S3154001E8D000000000000000000000000000000000F1 +S3154001E8E000000000000000000000000000000000E1 +S3154001E8F000000000000000000000000000000000D1 +S3154001E90000000000000000000000000000000000C0 +S3154001E91000000000000000000000000000000000B0 +S3154001E92000000000000000000000000000000000A0 +S3154001E9300000000000000000000000000000000090 +S3154001E9400000000000000000000000000000000080 +S3154001E9500000000000000000000000000000000070 +S3154001E9600000000000000000000000000000000060 +S3154001E9700000000000000000000000000000000050 +S3154001E9800000000000000000000000000000000040 +S3154001E9900000000000000000000000000000000030 +S3154001E9A00000000000000000000000000000000020 +S3154001E9B00000000000000000000000000000000010 +S3154001E9C00000000000000000000000000000000000 +S3154001E9D000000000000000000000000000000000F0 +S3154001E9E000000000000000000000000000000000E0 +S3154001E9F000000000000000000000000000000000D0 +S3154001EA0000000000000000000000000000000000BF +S3154001EA1000000000000000000000000000000000AF +S3154001EA20000000000000000000000000000000009F +S3154001EA30000000000000000000000000000000008F +S3154001EA40000000000000000000000000000000007F +S3154001EA50000000000000000000000000000000006F +S3154001EA60000000000000000000000000000000005F +S3154001EA70000000000000000000000000000000004F +S3154001EA80000000000000000000000000000000003F +S3154001EA90000000000000000000000000000000002F +S3154001EAA0000000000000000000000000000000001F +S3154001EAB0000000000000000000000000000000000F +S3154001EAC000000000000000000000000000000000FF +S3154001EAD000000000000000000000000000000000EF +S3154001EAE000000000000000000000000000000000DF +S3154001EAF000000000000000000000000000000000CF +S3154001EB0000000000000000000000000000000000BE +S3154001EB1000000000000000000000000000000000AE +S3154001EB20000000000000000000000000000000009E +S3154001EB30000000000000000000000000000000008E +S3154001EB40000000000000000000000000000000007E +S3154001EB50000000000000000000000000000000006E +S3154001EB60000000000000000000000000000000005E +S3154001EB70000000000000000000000000000000004E +S3154001EB80000000000000000000000000000000003E +S3154001EB90000000000000000000000000000000002E +S3154001EBA0000000000000000000000000000000001E +S3154001EBB0000000000000000000000000000000000E +S3154001EBC000000000000000000000000000000000FE +S3154001EBD000000000000000000000000000000000EE +S3154001EBE000000000000000000000000000000000DE +S3154001EBF000000000000000000000000000000000CE +S3154001EC0000000000000000000000000000000000BD +S3154001EC1000000000000000000000000000000000AD +S3154001EC20000000000000000000000000000000009D +S3154001EC30000000000000000000000000000000008D +S3154001EC40000000000000000000000000000000007D +S3154001EC50000000000000000000000000000000006D +S3154001EC60000000000000000000000000000000005D +S3154001EC70000000000000000000000000000000004D +S3154001EC80000000000000000000000000000000003D +S3154001EC90000000000000000000000000000000002D +S3154001ECA0000000000000000000000000000000001D +S3154001ECB0000000000000000000000000000000000D +S3154001ECC000000000000000000000000000000000FD +S3154001ECD000000000000000000000000000000000ED +S3154001ECE000000000000000000000000000000000DD +S3154001ECF000000000000000000000000000000000CD +S3154001ED0000000000000000000000000000000000BC +S3154001ED1000000000000000000000000000000000AC +S3154001ED20000000000000000000000000000000009C +S3154001ED30000000000000000000000000000000008C +S3154001ED40000000000000000000000000000000007C +S3154001ED50000000000000000000000000000000006C +S3154001ED60000000000000000000000000000000005C +S3154001ED70000000000000000000000000000000004C +S3154001ED80000000000000000000000000000000003C +S3154001ED90000000000000000000000000000000002C +S3154001EDA0000000000000000000000000000000001C +S3154001EDB0000000000000000000000000000000000C +S3154001EDC000000000000000000000000000000000FC +S3154001EDD000000000000000000000000000000000EC +S3154001EDE000000000000000000000000000000000DC +S3154001EDF000000000000000000000000000000000CC +S3154001EE0000000000000000000000000000000000BB +S3154001EE1000000000000000000000000000000000AB +S3154001EE20000000000000000000000000000000009B +S3154001EE30000000000000000000000000000000008B +S3154001EE40000000000000000000000000000000007B +S3154001EE50000000000000000000000000000000006B +S3154001EE60000000000000000000000000000000005B +S3154001EE70000000000000000000000000000000004B +S3154001EE80000000000000000000000000000000003B +S3154001EE90000000000000000000000000000000002B +S3154001EEA0000000000000000000000000000000001B +S3154001EEB0000000000000000000000000000000000B +S3154001EEC000000000000000000000000000000000FB +S3154001EED000000000000000000000000000000000EB +S3154001EEE000000000000000000000000000000000DB +S3154001EEF000000000000000000000000000000000CB +S3154001EF0000000000000000000000000000000000BA +S3154001EF1000000000000000000000000000000000AA +S3154001EF20000000000000000000000000000000009A +S3154001EF30000000000000000000000000000000008A +S3154001EF40000000000000000000000000000000007A +S3154001EF50000000000000000000000000000000006A +S3154001EF60000000000000000000000000000000005A +S3154001EF70000000000000000000000000000000004A +S3154001EF80000000000000000000000000000000003A +S3154001EF90000000000000000000000000000000002A +S3154001EFA0000000000000000000000000000000001A +S3154001EFB0000000000000000000000000000000000A +S3154001EFC000000000000000000000000000000000FA +S3154001EFD000000000000000000000000000000000EA +S3154001EFE000000000000000000000000000000000DA +S3154001EFF000000000000000000000000000000000CA +S3154001F00000000000000000000000000000000000B9 +S3154001F01000000000000000000000000000000000A9 +S3154001F0200000000000000000000000000000000099 +S3154001F0300000000000000000000000000000000089 +S3154001F0400000000000000000000000000000000079 +S3154001F0500000000000000000000000000000000069 +S3154001F0600000000000000000000000000000000059 +S3154001F0700000000000000000000000000000000049 +S3154001F0800000000000000000000000000000000039 +S3154001F0900000000000000000000000000000000029 +S3154001F0A00000000000000000000000000000000019 +S3154001F0B00000000000000000000000000000000009 +S3154001F0C000000000000000000000000000000000F9 +S3154001F0D000000000000000000000000000000000E9 +S3154001F0E000000000000000000000000000000000D9 +S3154001F0F000000000000000000000000000000000C9 +S3154001F10000000000000000000000000000000000B8 +S3154001F11000000000000000000000000000000000A8 +S3154001F1200000000000000000000000000000000098 +S3154001F1300000000000000000000000000000000088 +S3154001F1400000000000000000000000000000000078 +S3154001F1500000000000000000000000000000000068 +S3154001F1600000000000000000000000000000000058 +S3154001F1700000000000000000000000000000000048 +S3154001F1800000000000000000000000000000000038 +S3154001F1900000000000000000000000000000000028 +S3154001F1A00000000000000000000000000000000018 +S3154001F1B00000000000000000000000000000000008 +S3154001F1C000000000000000000000000000000000F8 +S3154001F1D000000000000000000000000000000000E8 +S3154001F1E000000000000000000000000000000000D8 +S3154001F1F000000000000000000000000000000000C8 +S3154001F20000000000000000000000000000000000B7 +S3154001F21000000000000000000000000000000000A7 +S3154001F2200000000000000000000000000000000097 +S3154001F2300000000000000000000000000000000087 +S3154001F2400000000000000000000000000000000077 +S3154001F2500000000000000000000000000000000067 +S3154001F2600000000000000000000000000000000057 +S3154001F2700000000000000000000000000000000047 +S3154001F2800000000000000000000000000000000037 +S3154001F2900000000000000000000000000000000027 +S3154001F2A00000000000000000000000000000000017 +S3154001F2B00000000000000000000000000000000007 +S3154001F2C000000000000000000000000000000000F7 +S3154001F2D000000000000000000000000000000000E7 +S3154001F2E000000000000000000000000000000000D7 +S3154001F2F000000000000000000000000000000000C7 +S3154001F30000000000000000000000000000000000B6 +S3154001F31000000000000000000000000000000000A6 +S3154001F3200000000000000000000000000000000096 +S3154001F3300000000000000000000000000000000086 +S3154001F3400000000000000000000000000000000076 +S3154001F3500000000000000000000000000000000066 +S3154001F3600000000000000000000000000000000056 +S3154001F3700000000000000000000000000000000046 +S3154001F3800000000000000000000000000000000036 +S3154001F3900000000000000000000000000000000026 +S3154001F3A00000000000000000000000000000000016 +S3154001F3B00000000000000000000000000000000006 +S3154001F3C000000000000000000000000000000000F6 +S3154001F3D000000000000000000000000000000000E6 +S3154001F3E000000000000000000000000000000000D6 +S3154001F3F000000000000000000000000000000000C6 +S3154001F40000000000000000000000000000000000B5 +S3154001F41000000000000000000000000000000000A5 +S3154001F4200000000000000000000000000000000095 +S3154001F4300000000000000000000000000000000085 +S3154001F4400000000000000000000000000000000075 +S3154001F4500000000000000000000000000000000065 +S3154001F4600000000000000000000000000000000055 +S3154001F4700000000000000000000000000000000045 +S3154001F4800000000000000000000000000000000035 +S3154001F4900000000000000000000000000000000025 +S3154001F4A00000000000000000000000000000000015 +S3154001F4B00000000000000000000000000000000005 +S3154001F4C000000000000000000000000000000000F5 +S3154001F4D000000000000000000000000000000000E5 +S3154001F4E000000000000000000000000000000000D5 +S3154001F4F000000000000000000000000000000000C5 +S3154001F50000000000000000000000000000000000B4 +S3154001F51000000000000000000000000000000000A4 +S3154001F5200000000000000000000000000000000094 +S3154001F5300000000000000000000000000000000084 +S3154001F5400000000000000000000000000000000074 +S3154001F5500000000000000000000000000000000064 +S3154001F5600000000000000000000000000000000054 +S3154001F5700000000000000000000000000000000044 +S3154001F5800000000000000000000000000000000034 +S3154001F5900000000000000000000000000000000024 +S3154001F5A00000000000000000000000000000000014 +S3154001F5B00000000000000000000000000000000004 +S3154001F5C000000000000000000000000000000000F4 +S3154001F5D000000000000000000000000000000000E4 +S3154001F5E000000000000000000000000000000000D4 +S3154001F5F000000000000000000000000000000000C4 +S3154001F60000000000000000000000000000000000B3 +S3154001F61000000000000000000000000000000000A3 +S3154001F6200000000000000000000000000000000093 +S3154001F6300000000000000000000000000000000083 +S3154001F6400000000000000000000000000000000073 +S3154001F6500000000000000000000000000000000063 +S3154001F6600000000000000000000000000000000053 +S3154001F6700000000000000000000000000000000043 +S3154001F6800000000000000000000000000000000033 +S3154001F6900000000000000000000000000000000023 +S3154001F6A00000000000000000000000000000000013 +S3154001F6B00000000000000000000000000000000003 +S3154001F6C000000000000000000000000000000000F3 +S3154001F6D000000000000000000000000000000000E3 +S3154001F6E000000000000000000000000000000000D3 +S3154001F6F000000000000000000000000000000000C3 +S3154001F70000000000000000000000000000000000B2 +S3154001F71000000000000000000000000000000000A2 +S3154001F7200000000000000000000000000000000092 +S3154001F7300000000000000000000000000000000082 +S3154001F7400000000000000000000000000000000072 +S3154001F7500000000000000000000000000000000062 +S3154001F7600000000000000000000000000000000052 +S3154001F7700000000000000000000000000000000042 +S3154001F7800000000000000000000000000000000032 +S3154001F7900000000000000000000000000000000022 +S3154001F7A00000000000000000000000000000000012 +S3154001F7B00000000000000000000000000000000002 +S3154001F7C000000000000000000000000000000000F2 +S3154001F7D000000000000000000000000000000000E2 +S3154001F7E000000000000000000000000000000000D2 +S3154001F7F000000000000000000000000000000000C2 +S3154001F80000000000000000000000000000000000B1 +S3154001F81000000000000000000000000000000000A1 +S3154001F8200000000000000000000000000000000091 +S3154001F8300000000000000000000000000000000081 +S3154001F8400000000000000000000000000000000071 +S3154001F8500000000000000000000000000000000061 +S3154001F8600000000000000000000000000000000051 +S3154001F8700000000000000000000000000000000041 +S3154001F8800000000000000000000000000000000031 +S3154001F8900000000000000000000000000000000021 +S3154001F8A00000000000000000000000000000000011 +S3154001F8B00000000000000000000000000000000001 +S3154001F8C000000000000000000000000000000000F1 +S3154001F8D000000000000000000000000000000000E1 +S3154001F8E000000000000000000000000000000000D1 +S3154001F8F000000000000000000000000000000000C1 +S3154001F90000000000000000000000000000000000B0 +S3154001F91000000000000000000000000000000000A0 +S3154001F9200000000000000000000000000000000090 +S3154001F9300000000000000000000000000000000080 +S3154001F9400000000000000000000000000000000070 +S3154001F9500000000000000000000000000000000060 +S3154001F9600000000000000000000000000000000050 +S3154001F9700000000000000000000000000000000040 +S3154001F9800000000000000000000000000000000030 +S3154001F9900000000000000000000000000000000020 +S3154001F9A00000000000000000000000000000000010 +S3154001F9B00000000000000000000000000000000000 +S3154001F9C000000000000000000000000000000000F0 +S3154001F9D000000000000000000000000000000000E0 +S3154001F9E000000000000000000000000000000000D0 +S3154001F9F000000000000000000000000000000000C0 +S3154001FA0000000000000000000000000000000000AF +S3154001FA10000000000000000000000000000000009F +S3154001FA20000000000000000000000000000000008F +S3154001FA30000000000000000000000000000000007F +S3154001FA40000000000000000000000000000000006F +S3154001FA50000000000000000000000000000000005F +S3154001FA60000000000000000000000000000000004F +S3154001FA70000000000000000000000000000000003F +S3154001FA80000000000000000000000000000000002F +S3154001FA90000000000000000000000000000000001F +S3154001FAA0000000000000000000000000000000000F +S3154001FAB000000000000000000000000000000000FF +S3154001FAC000000000000000000000000000000000EF +S3154001FAD000000000000000000000000000000000DF +S3154001FAE000000000000000000000000000000000CF +S3154001FAF000000000000000000000000000000000BF +S3154001FB0000000000000000000000000000000000AE +S3154001FB10000000000000000000000000000000009E +S3154001FB20000000000000000000000000000000008E +S3154001FB30000000000000000000000000000000007E +S3154001FB40000000000000000000000000000000006E +S3154001FB50000000000000000000000000000000005E +S3154001FB60000000000000000000000000000000004E +S3154001FB70000000000000000000000000000000003E +S3154001FB80000000000000000000000000000000002E +S3154001FB90000000000000000000000000000000001E +S3154001FBA0000000000000000000000000000000000E +S3154001FBB000000000000000000000000000000000FE +S3154001FBC000000000000000000000000000000000EE +S3154001FBD000000000000000000000000000000000DE +S3154001FBE000000000000000000000000000000000CE +S3154001FBF000000000000000000000000000000000BE +S3154001FC0000000000000000000000000000000000AD +S3154001FC10000000000000000000000000000000009D +S3154001FC20000000000000000000000000000000008D +S3154001FC30000000000000000000000000000000007D +S3154001FC40000000000000000000000000000000006D +S3154001FC50000000000000000000000000000000005D +S3154001FC60000000000000000000000000000000004D +S3154001FC70000000000000000000000000000000003D +S3154001FC80000000000000000000000000000000002D +S3154001FC90000000000000000000000000000000001D +S3154001FCA0000000000000000000000000000000000D +S3154001FCB000000000000000000000000000000000FD +S3154001FCC000000000000000000000000000000000ED +S3154001FCD000000000000000000000000000000000DD +S3154001FCE000000000000000000000000000000000CD +S3154001FCF000000000000000000000000000000000BD +S3154001FD0000000000000000000000000000000000AC +S3154001FD10000000000000000000000000000000009C +S3154001FD20000000000000000000000000000000008C +S3154001FD30000000000000000000000000000000007C +S3154001FD40000000000000000000000000000000006C +S3154001FD50000000000000000000000000000000005C +S3154001FD60000000000000000000000000000000004C +S3154001FD70000000000000000000000000000000003C +S3154001FD80000000000000000000000000000000002C +S3154001FD90000000000000000000000000000000001C +S3154001FDA0000000000000000000000000000000000C +S3154001FDB000000000000000000000000000000000FC +S3154001FDC000000000000000000000000000000000EC +S3154001FDD000000000000000000000000000000000DC +S3154001FDE000000000000000000000000000000000CC +S3154001FDF000000000000000000000000000000000BC +S3154001FE0000000000000000000000000000000000AB +S3154001FE10000000000000000000000000000000009B +S3154001FE20000000000000000000000000000000008B +S3154001FE30000000000000000000000000000000007B +S3154001FE40000000000000000000000000000000006B +S3154001FE50000000000000000000000000000000005B +S3154001FE60000000000000000000000000000000004B +S3154001FE70000000000000000000000000000000003B +S3154001FE80000000000000000000000000000000002B +S3154001FE90000000000000000000000000000000001B +S3154001FEA0000000000000000000000000000000000B +S3154001FEB000000000000000000000000000000000FB +S3154001FEC000000000000000000000000000000000EB +S3154001FED000000000000000000000000000000000DB +S3154001FEE000000000000000000000000000000000CB +S3154001FEF000000000000000000000000000000000BB +S3154001FF0000000000000000000000000000000000AA +S3154001FF10000000000000000000000000000000009A +S3154001FF20000000000000000000000000000000008A +S3154001FF30000000000000000000000000000000007A +S3154001FF40000000000000000000000000000000006A +S3154001FF50000000000000000000000000000000005A +S3154001FF60000000000000000000000000000000004A +S3154001FF70000000000000000000000000000000003A +S3154001FF80000000000000000000000000000000002A +S3154001FF90000000000000000000000000000000001A +S3154001FFA0000000000000000000000000000000000A +S3154001FFB000000000000000000000000000000000FA +S3154001FFC000000000000000000000000000000000EA +S3154001FFD000000000000000000000000000000000DA +S3154001FFE000000000000000000000000000000000CA +S3154001FFF000000000000000000000000000000000BA +S315400200000000000100000000000000002000000087 +S315400200100000000000000000000000000000000098 S315400200200000000000000000000000000000000088 S315400200300000000000000000000000000000000078 S315400200400000000000000000000000000000000068 -S315400200500000000000000000000000010000000057 +S315400200500000000000000001000000000000000057 S315400200600000000000000000000000000000000048 S315400200700000000000000000000000000000000038 S315400200800000000000000000000000000000000028 -S315400200900000000000000000000000000000000117 +S315400200900000000000000000000000010000000017 S315400200A00000000000000000000000000000000008 S315400200B000000000000000000000000000000000F8 S315400200C000000000000000000000000000000000E8 -S315400200D000000000000000000000000000000000D8 -S315400200E00000000100000000000000410000000086 -S315400200F0343074693934612B3079676979753035B2 -S315400201007968617035796934682B612B69697978C8 -S315400201106869346B35396A30713930356A6B6F7953 -S3154002012070686F70746A72686961346979302B34A9 -S315400201300000000000000000000000010000000076 -S3154002014040000000000000004008000000000000DF -S31540020150401800000000000080000000000000007F -S315400201600000000000000000BFF000000000000098 -S31540020170BF800000000000000000000000000000F8 -S315400201800000000000000000000000000000000027 -S315400201903FF00000000000004008000000000000A0 -S315400201A03FF0000040000000000000000000000098 -S315400201B03F800000404000000000000000000000B8 -S315400201C000000000000000000000000000000000E7 -S315400201D0000000000000000048000001000000008E -S315400201E0480000000000000046C000000000000079 -S315400201F03FF0000000000000400000000000000048 -S3154002020040080000000000003F800000000000009F -S31540020210529000000000000052900FF807F60DEBD6 -S3154002022052901FE03F61BAD052902FB8D4E30F48A4 -S3154002023052903F81F636B80C52904F3BD03C0A64FE -S3154002024052905EE68EFAD48B52906E825DA8FC2B5B -S3154002025052907E0F66AFED0752908D8DD3B1D9AADB -S3154002026052909CFDCD8ED0095290AC5F7C69A3C85A -S315400202705290BBB307ACAFDB5290CAF8960E710DE3 -S315400202805290DA304D95FB065290E95A539F492CCB -S315400202905290F876CCDF6CD952910785DD689A295F -S315400202A052911687A8AE14A35291257C5187FD0917 -S315400202B052913463FA37014E5291433EC467EFFB83 -S315400202C05291520CD1372FEB529160CE41341D746C -S315400202D052916F8334644DF952917E2BCA46BAB914 -S315400202E052918CC821D6D3E352919B58598F7C9F09 -S315400202F05291A9DC8F6DF1045291B854E0F496A064 -S315400203005291C6C16B2DB8705291D5224AAE2EE19A -S315400203105291E3779B97F4A85291F1C1799CA8FF39 -S31540020320529200000000000052920E33499A21A9CF -S3154002033052921C5B70D9F82452922A788FC76DE587 -S315400203405292388AC0059C28529246921AD4EA4959 -S315400203505292548EB9151E8552926280B347609668 -S315400203605292706821902E9A52927E451BB944C38E -S3154002037052928C17B9337834529299E01118857596 -S315400203805292A79E3A2CD2E65292B5524AE1278E13 -S315400203905292C2FC595456A75292D09C7B54E03E8C -S315400203A05292DE32C66287415292EBBF4FAFDD4B6D -S315400203B05292F9422C23C47E529306BB705AE7C32B -S315400203C05293142B30A929AB52932191811B0A4196 -S315400203D052932EEE7577041652933C42213EE0C963 -S315400203E05293498C97B10540529356CDEBC9B5E22B -S315400203F0529364063044530652937135779C8DCBA3 -S3154002040052937E5BD40F95A152938B79579D3EAB07 -S315400204105293988E1409212E5293A59A1ADBB257FB -S315400204205293B29D7D6356625293BF984CB56C7798 -S315400204305293CC8A99AF54535293D97474F76DF24E -S315400204405293E655EEFE13675293F32F17FE8D0431 -S31540020450529400000000000052940CC8B6D657C20F -S31540020460529419894C2329F052942641CF569572BB -S31540020470529432F24FB01C7A52943F9ADC3F79CE74 -S3154002048052944C3B83E57153529458D455549C1A1A -S31540020490529465655F122FF6529471EEAF76C2C6DC -S315400204A052947E7054AF098952948AEA5CBC935F37 -S315400204B05294975CD57680885294A3C7CC8A358A63 -S315400204C05294B02B4F7C0A885294BC876BA7F6ECA9 -S315400204D05294C8DC2E4239805294D529A457FCFC4A -S315400204E05294E16FDACFF9375294EDAEDE6B10FEDD -S315400204F05294F9E6BBC4ECB3529506177F5491BBAE -S3154002050052951241356CF6E052951E63EA3D95B01E -S3154002051052952A7FA9D2F8EA529536948017481006 -S31540020520529542A278D2D03652954EA99FAC8A0FA6 -S3154002053052955AAA002A9D5A529566A3A5B2E1B18E -S31540020540529572969B8B5CD852957E82ECDABE8D22 -S3154002055052958A68A4A8D9F352959647CDDF1CA531 -S315400205605295A220734903775295ADF29F948CFB24 -S315400205705295B9BE5D52A9DA5295C583B6F7AB0319 -S315400205805295D142B6DBADC55295DCFB673B05DFE2 -S315400205905295E8ADD236A58F5295F45A01D483B41A -S315400205A0529600000000000052960B9FD68A455490 -S315400205B0529617398F2AAA48529622CD337F0FE890 -S315400205C052962E5ACD0C3EBE529639E2653E421B9B -S315400205D0529645640568C1C3529650DFB6C759F470 -S315400205E052965C55827DF1D2529667C57199104BEF -S315400205F05296732F8D0E2F7752967E93DDBC0E73D5 -S31540020600529689F26C6B01D05296954B41CD4293EC -S315400206100BC0A4068F346C9B0BC093731C185447B3 -S315400206200BC083008E183C230BC072AE83A9704A5E -S315400206300BC0627C9CC166FF0BC0526A7ACE64A430 -S315400206400BC04277C0B04ADA0BC032A412B191A0B5 -S315400206500BC022EF168069500BC0135873280473DF -S315400206600BC003DFD10A08480BBFE909B3B04632D3 -S315400206700BBFCA8E711B8E880BBFAC4D32D4143061 -S315400206800BBF8E4553D34B1B0BBF7076318237EF70 -S315400206900BBF52DF2BADF99C0BBF357FA47C936C0D -S315400206A00BBF18570061F5EB0BBEFB64A61545154B -S315400206B00BBEDEA7FE865A2B0BBEC22074D37FBC6E -S315400206C00BBEA5CD763F66690BBE89AE722750F04A -S315400206D00BBE6DC2D9F976230BBE520A212B976CFB -S315400206E00BBE3683BD31CAA20BBE1B2F257575CAFA -S315400206F00BBE000BD34C7BAF0BBDE51941F097FE09 -S315400207000BBDCA56EE76E9D00BBDAFC457C7AB7325 -S315400207100BBD9560FE9616690BBD7B2C65587275AE -S315400207200BBD612610404EC00BBD474D8532E409D4 -S315400207300BBD2DA24BC19EDF0BBD1423ED22D10171 -S315400207400BBCFAD1F42A88E40BBCE1ABED438E80B4 -S315400207500BBCC8B1666884820BBCAFE1EF1D2D01AC -S315400207600BBC973D1867D0EF0BBC7EC274CAC962F8 -S315400207700BBC6671983E29FE0BBC4E4A18298BA9C2 -S315400207800BBC364B8B5DF6DB0BBC1E758A0FECBF82 -S315400207900BBC06C7ADD18E7E0BBBEF41918CE1F609 -S315400207A00BBBD7E2D17E33360BBBC0AB0B2E921BB3 -S315400207B00BBBA999DD6E6B650BBB92AEE8503CA7AD -S315400207C00BBB7BE9CD2362720BBB654A2E6F002CB5 -S315400207D00BBB4ECFAFED00FE0BBB3879F685313FF2 -S315400207E00BBB2248A8486FDE0BBB0C3B6C6BF73B3E -S315400207F00BBAF651EB44BCEE0BBAE08BCE42E7F1B4 -S315400208000BBACAE8BFED5CC00BBAB5686BDD5EDDFC -S315400208100BBAA00A7EBA475E0BBA8ACEA6354FEB12 -S315400208200BBA75B4910571DB0BBA60BBEEE358EFB8 -S315400208300BBA4BE4708569410BBA372DC79BD7FE7D -S315400208400BBA2297A6CCD68C0BBA0E21C1B0CFA03A -S315400208500BB9F9CBCCCEB6050BB9E5957D98648B31 -S315400208600BB9D17E8A670EE70BB9BD86AA77C3104C -S315400208700BB9A9AD95E7FAC40BB995F305B23CE5B8 -S315400208800BB98256B3AACE570BB96ED85A7C7206AA -S315400208900BB95B77B5A537C80BB94834817359CCC8 -S315400208A00BB9350E7B02284D0BB922056037032E54 -S315400208B00BB90F18EFBE614A0BB8FC48E908E522AE -S315400208C00BB8E9950C487EA90BB8D6FD1A6D99E886 -S315400208D00BB8C480D5245A340BB8B21FFED1E1BC42 -S315400208E00BB89FDA5A91A5260BB88DAFAC32CB0A1C -S315400208F00BB87B9FB83596F60BB869AA43C8DFE1B9 -S315400209000BB857CF14C791B50BB8460DF1B639C6D9 -S315400209100BB83466A1C09DF90BB822D8ECB75E6E0F -S315400209200BB811649B0DA16B0BB8000975D6C9595A -S315400209300BB7EEC746C434A50BB7DD9DD823075285 -S315400209400BB7CC8CF4D9FE010BB7BB9468674A50FF -S315400209500BB7AAB3FEDE78540BB799EB84E65D0C6F -S315400209600BB7893AC7B70D960BB778A19517DF0132 -S315400209700BB7681FBB5D6E910BB757B50967B24C93 -S315400209800BB747614EA011A20BB737245AF786140C -S315400209900BB726FDFEE4C3A00BB716EE0B6268E862 -S315400209A00BB706F451ED36CE0BB6F710A4824F8044 -S315400209B00BB6E742D59D7CB40BB6D78AB8377D0EC7 -S315400209C00BB6C7E81FC458720BB6B85AE031BB32F1 -S315400209D00BB6A8E2CDE557F90BB6997FBDBB50459C -S315400209E00BB68A318504A35C0BB67AF7F985A39BCD -S315400209F00BB66BD2F17471FF0BB65CC243777FCEF6 -S31540020A000BB64DC5C6A416420BB63EDD527CE4116A -S31540020A100BB63008BEF090CF0BB62147E45855EBE3 -S31540020A200BB6129A9B769D520BB60400BD75A584F1 -S31540020A300BB5F57A23E62B070BB5E706A8BE172CAE -S31540020A400BB5D8A6265733FF0BB5CA58776DE54B7B -S31540020A500BB5BC1D771FE6AB0BB5ADF500EB0E78BB -S31540020A600BB59FDEF0AC15940BB591DB229D63F27C -S31540020A700BB583E97355E1C10BB57609BFC7CD32D4 -S31540020A800BB5683BE53F94B80BB55A7FC162B5B624 -S31540020A900BB54CD5322E9F7F0BB53F3C15F79AA12D -S31540020AA00BB531B44B67B45A0BB5243DB17DAE306C -S31540020AB00BB516D8278BF18F0BB509838D37876710 -S31540020AC00BB4FC3FC27713AE0BB4EF0CA791D4BB69 -S31540020AD00BB4E1EA1D1EA6680BB4D4D8040308E59C -S31540020AE00BB4C7D63D722B370BB4BAE4AAEBF9481E -S31540020AF00BB4AE032E3C2D7E0BB4A131A97965C948 -S31540020B000BB4946FFF043C1C0BB487BE118662364D -S31540020B100BB47B1BC3F1C0BF0BB46E88F97F999BA4 -S31540020B200BB4620595AFAD730BB455917C476454D3 -S31540020B300BB4492C9150F96C0BB43CD6B91AA9C8DE -S31540020B400BB4308FD835E60B0BB42457D3768716C1 -S31540020B500BB4182E8FF205900BB40C13F2FEB43B75 -S31540020B600BB40007E232FD1F0BB3F40A4364A167DC -S31540020B700BB3E81AFCA7FBF00BB3DC39F44F468AF9 -S31540020B800BB3D06710E9E1C30BB3C4A239439F4FFD -S31540020B900BB3B8EB54640EF10BB3AD42498DCDDFC6 -S31540020BA00BB3A1A7003DD89B0BB39619602ADF2B46 -S31540020BB00BB38A9951449BB80BB37F26BBB32B79AF -S31540020BC00BB373C187D669EA0BB368699E454E4437 -S31540020BD00BB35D1EE7CD4B2D0BB351E14D71B09872 -S31540020BE00BB346B0B86B0FC30BB33B8D1226A15A5B -S31540020BF00BB330764445ADAC0BB3256C389CF6EB63 -S31540020C000BB31A6ED934256E0BB30F7E104535F5EC -S31540020C100BB30499C83BE9D60BB2F9C1EBB53923FC -S31540020C200BB2EEF6657EC6AA0BB2E437209655D5D0 -S31540020C300BB2D984082942630BB2CEDD0793F9E79A -S31540020C400BB2C4420A6177190BB2B9B2FC4ABEDA98 -S31540020C500BB2AF2FC9365EFF0BB2A4B85D37EEC1F9 -S31540020C600BB29A4CA48F90E30BB28FEC8BA9777997 -S31540020C700BB28597FF1D694D0BB27B4EEBAE48DD3D -S31540020C800BB271113E499CEE0BB266DEE4071AA81E -S31540020C900BB25CB7CA2831380BB2529BDE1796F7B5 -S31540020CA00BB2488B0D68D8030BB23E8545D7E65A40 -S31540020CB00BB2348A7548AB540BB22A9A89C69A97B4 -S31540020CC00BB220B5718446610BB216DB1ADAF53FD8 -S31540020CD00BB20D0B744A39100BB203466C77876C14 -S31540020CE00BB1F98BF22DD3490BB1EFDBF45D27FF44 -S31540020CF00BB1E636621A457E0BB1DC9B2A9E3DD588 -S31540020D000BB1D30A3D4613EE0BB1C98389925B817F -S31540020D100BB1C006FF26DA3F0BB1B6948DCA2A281C -S31540020D200BB1AD2C25655D0F0BB1A3CDB603A13D2D -S31540020D300BB19A792FD1E7410BB1912E831E88D2FE -S31540020D400BB187EDA058F0D60BB17EB6781144733D -S31540020D500BB17588FAF80D3A0BB16C6519DDE45D95 -S31540020D600BB1634AC5B31EEF0BB15A39EF877B28E5 -S31540020D700BB151328889CEAE0BB148348207B5DB0E -S31540020D800BB13F3FCD6D43FF0BB136545C44B49A31 -S31540020D900BB12D7220361D870BB124990B07221BEE -S31540020DA00BB11BC90E9AA72D0BB113021CF0880F6B -S31540020DB00BB10A4428254C650BB1018F2271DEE541 -S31540020DC00BB0F8E2FE2B44F40BB0F03FADC2572312 -S31540020DD00BB0E7A523C37A850BB0DF1352D65AD997 -S31540020DE00BB0D68A2DBDA58C0BB0CE09A756C589A8 -S31540020DF00BB0C591B2999FDB0BB0BD2242985115FB -S31540020E000BB0B4BB4A7EEB870BB0AC5CBD933636B7 -S31540020E1065300000653010006530200065303000D6 -S31540020E2065304000653050006530600065307000C6 -S31540020E3065308000653090006530A0006530B000B6 -S31540020E406530C0006530D0006530E0006530F000A6 -S31540020E506531000065311000653120006531300092 -S31540020E606531400065315000653160006531700082 -S31540020E7065318000653190006531A0006531B00072 -S31540020E806531C0006531D0006531E0006531F00062 -S31540020E90653200006532100065322000653230004E -S31540020EA0653240006532500065326000653270003E -S31540020EB065328000653290006532A0006532B0002E -S31540020EC06532C0006532D0006532E0006532F0001E -S31540020ED0653300006533100065332000653330000A -S31540020EE065334000653350006533600065337000FA -S31540020EF065338000653390006533A0006533B000EA -S31540020F006533C0006533D0006533E0006533F000D9 -S31540020F1065340000653410006534200065343000C5 -S31540020F2065344000653450006534600065347000B5 -S31540020F3065348000653490006534A0006534B000A5 -S31540020F406534C0006534D0006534E0006534F00095 -S31540020F506535000065351000653520006535300081 -S31540020F606535400065355000653560006535700071 -S31540020F7065358000653590006535A0006535B00061 -S31540020F806535C0006535D0006535E0006535F00051 -S31540020F90653600006536100065362000653630003D -S31540020FA0653640006536500065366000653670002D -S31540020FB065368000653690006536A0006536B0001D -S31540020FC06536C0006536D0006536E0006536F0000D -S31540020FD065370000653710006537200065373000F9 -S31540020FE065374000653750006537600065377000E9 -S31540020FF065378000653790006537A0006537B000D9 -S315400210006537C0006537D0006537E0006537F000C8 -S3154002101065380000653810006538200065383000B4 -S3154002102065384000653850006538600065387000A4 -S3154002103065388000653890006538A0006538B00094 -S315400210406538C0006538D0006538E0006538F00084 -S315400210506539000065391000653920006539300070 -S315400210606539400065395000653960006539700060 -S3154002107065398000653990006539A0006539B00050 -S315400210806539C0006539D0006539E0006539F00040 -S31540021090653A0000653A1000653A2000653A30002C -S315400210A0653A4000653A5000653A6000653A70001C -S315400210B0653A8000653A9000653AA000653AB0000C -S315400210C0653AC000653AD000653AE000653AF000FC -S315400210D0653B0000653B1000653B2000653B3000E8 -S315400210E0653B4000653B5000653B6000653B7000D8 -S315400210F0653B8000653B9000653BA000653BB000C8 -S31540021100653BC000653BD000653BE000653BF000B7 -S31540021110653C0000653C1000653C2000653C3000A3 -S31540021120653C4000653C5000653C6000653C700093 -S31540021130653C8000653C9000653CA000653CB00083 -S31540021140653CC000653CD000653CE000653CF00073 -S31540021150653D0000653D1000653D2000653D30005F -S31540021160653D4000653D5000653D6000653D70004F -S31540021170653D8000653D9000653DA000653DB0003F -S31540021180653DC000653DD000653DE000653DF0002F -S31540021190653E0000653E1000653E2000653E30001B -S315400211A0653E4000653E5000653E6000653E70000B -S315400211B0653E8000653E9000653EA000653EB000FB -S315400211C0653EC000653ED000653EE000653EF000EB -S315400211D0653F0000653F1000653F2000653F3000D7 -S315400211E0653F4000653F5000653F6000653F7000C7 -S315400211F0653F8000653F9000653FA000653FB000B7 -S31540021200653FC000653FD000653FE000653FF000A6 -S315400212104200000000000000400FFFFFFFFFFFFFFB -S315400212204200000000200000420FFFFFFFFFFFFFC9 -S3154002123040000000000000004210000000080000CC -S3154002124042000000000000013EB000000000000124 -S315400212504200000000000002420F484C0137D2080B -S31540021260C20E780F256007AB41BA079B7AF94BA0AD -S315400212704201484C0137D208420E780F256007AB2F -S315400212804217E02D934BECDA420F484C0137D20815 -S31540021290C21E780F256007ABC20DA7D249883D4EC4 -S315400212A0421F484C0137D208C20E780F256007AB61 -S315400212B042100C446E87CE32C03340AB371208918F -S315400212C00000000000000000C03340AB3712089116 -S315400212D00000000000000000C29E7A0F236007A6AD -S315400212E0C29E7A0F236007A66F3F484C0137D20849 -S315400212F06E2E780F256007AB6F3F485B3D3F64B863 -S315400213006F3F484C0137D208EE2E780F256007AB67 -S315400213106F3F483CC5303F587FE2F780AB123809F1 -S315400213207FD00000000000007FEAF780AB12380948 -S31540021330002000000000000080280000000000009D -S3154002134080100000000000007FEFF780AB123809E2 -S315400213507FEFF2010203A1117FF0000000000000BE -S315400213600010000000001000801FFFFFF203A111D1 -S315400213708000000000000000001ABCD000023809BC -S31540021380801ABCD0000001110000000000000000DD -S315400213907E71000000000000416010000000000065 -S315400213A07FE11100000000000178100000000000FB -S315400213B03E880000FFF0000000120C00C073F800E7 -S315400213C0C1EFFFFFC00020003FB3C75D224F280F89 -S315400213D0C1B3C75CFAC08192A12FFF8000001FFFF4 -S315400213E03EE0000000FF0000A01FFF8001FE18073C -S315400213F041CFFFFE0000002040303FFFFFFFFFFDD0 -S3154002140042103FFEFC00000D3FD000003FEFFFFFC1 -S31540021410BFD0000010000000BFB000004FF0003FF8 -S3154002142001701000000000003E8000011A0000001A -S3154002143000000000000000007E7C0000000000006A -S31540021440416A1000010000107FF000000000000019 -S3154002145075012034056AC000FA1009091000104FC0 -S31540021460FFF00000000000000100203040030200AF -S31540021470003020340000A00B0000000000000000F5 -S315400214807FE0001010200001400000000010200AFA -S315400214907FF00000000000003FEFDFF00FFC484AFB -S315400214A0BFF80000000000007FFF000000000000BF -S315400214B07FFFE000000000007FF400000000000013 -S315400214C07FC00000000000007FF80000000000001E -S315400214D07FF0000000000000FFF000000000000066 -S315400214E0FFF0000000000000800000000000000045 -S315400214F000000000000100000000000000000000A3 +S315400200D000000000000000000000000000000001D7 +S315400200E00000000100000000BF8000000000000088 +S315400200F0BFF0000000000000800000000000000089 +S315400201000000000000000000400000000000000067 +S3154002011040080000000000004018000000000000F7 +S315400201200000000000000000000000000000000087 +S3154002013000000000000000003FF000000000000048 +S3154002014040080000000000003FF0000040000000B0 +S3154002015000000000000000003F8000004040000018 +S315400201600000000000000000000000000000000047 +S315400201700000000000000000000000000000000037 +S315400201804800000100000000480000000000000096 +S3154002019046C00000000000003FF0000000000000E2 +S315400201A0400000000000000040080000000000007F +S315400201B03F80000000000000000000000001000037 +S315400201C08000000000000000FFF000000000000078 +S315400201D0FFF00000000000007FF000000000000079 +S315400201E07FF80000000000007FC000000000000011 +S315400201F07FF40000000000007FFFE00000000000E6 +S315400202007FFF000000000000BFF800000000000071 +S315400202103FEFDFF00FFC484A7E710000000000000D +S3154002022041601000000000007FE111000000000064 +S3154002023001781000000000003E880000FFF0000038 +S3154002024000120C00C073F800C1EFFFFFC00020008F +S315400202503FB3C75D224F280FC1B3C75CFAC0819234 +S31540020260A12FFF8000001FFF3EE0000000FF0000BC +S31540020270A01FFF8001FE180741CFFFFE00000020AD +S3154002028040303FFFFFFFFFFD42103FFEFC00000DE6 +S315400202903FD000003FEFFFFFBFD00000100000003C +S315400202A0BFB000004FF0003F017010000000000098 +S315400202B03E8000011A00000000000000000000001D +S315400202C07E7C000000000000416A10000100001020 +S315400202D07FF000000000000075012034056AC0006E +S315400202E0FA1009091000104FFFF00000000000004C +S315400202F00100203040030200003020340000A00BF1 +S3154002030000000000000000007FE000101020000105 +S31540020310400000000010200A7FF0000000000000AC +S315400203204200000000000000400FFFFFFFFFFFFFFA +S315400203304200000000200000420FFFFFFFFFFFFFC8 +S3154002034040000000000000004210000000080000CB +S3154002035042000000000000013EB000000000000123 +S315400203604200000000000002420F484C0137D2080A +S31540020370C20E780F256007AB41BA079B7AF94BA0AC +S315400203804201484C0137D208420E780F256007AB2E +S315400203904217E02D934BECDA420F484C0137D20814 +S315400203A0C21E780F256007ABC20DA7D249883D4EC3 +S315400203B0421F484C0137D208C20E780F256007AB60 +S315400203C042100C446E87CE32C03340AB371208918E +S315400203D00000000000000000C03340AB3712089115 +S315400203E00000000000000000C29E7A0F236007A6AC +S315400203F0C29E7A0F236007A66F3F484C0137D20848 +S315400204006E2E780F256007AB6F3F485B3D3F64B861 +S315400204106F3F484C0137D208EE2E780F256007AB66 +S315400204206F3F483CC5303F587FE2F780AB123809F0 +S315400204307FD00000000000007FEAF780AB12380947 +S31540020440002000000000000080280000000000009C +S3154002045080100000000000007FEFF780AB123809E1 +S315400204607FEFF2010203A1117FF0000000000000BD +S315400204700010000000001000801FFFFFF203A111D0 +S315400204808000000000000000001ABCD000023809BB +S31540020490801ABCD0000001110000000000000000DC +S315400204A06530000065301000653020006530300050 +S315400204B06530400065305000653060006530700040 +S315400204C065308000653090006530A0006530B00030 +S315400204D06530C0006530D0006530E0006530F00020 +S315400204E0653100006531100065312000653130000C +S315400204F065314000653150006531600065317000FC +S3154002050065318000653190006531A0006531B000EB +S315400205106531C0006531D0006531E0006531F000DB +S3154002052065320000653210006532200065323000C7 +S3154002053065324000653250006532600065327000B7 +S3154002054065328000653290006532A0006532B000A7 +S315400205506532C0006532D0006532E0006532F00097 +S315400205606533000065331000653320006533300083 +S315400205706533400065335000653360006533700073 +S3154002058065338000653390006533A0006533B00063 +S315400205906533C0006533D0006533E0006533F00053 +S315400205A0653400006534100065342000653430003F +S315400205B0653440006534500065346000653470002F +S315400205C065348000653490006534A0006534B0001F +S315400205D06534C0006534D0006534E0006534F0000F +S315400205E065350000653510006535200065353000FB +S315400205F065354000653550006535600065357000EB +S3154002060065358000653590006535A0006535B000DA +S315400206106535C0006535D0006535E0006535F000CA +S3154002062065360000653610006536200065363000B6 +S3154002063065364000653650006536600065367000A6 +S3154002064065368000653690006536A0006536B00096 +S315400206506536C0006536D0006536E0006536F00086 +S315400206606537000065371000653720006537300072 +S315400206706537400065375000653760006537700062 +S3154002068065378000653790006537A0006537B00052 +S315400206906537C0006537D0006537E0006537F00042 +S315400206A0653800006538100065382000653830002E +S315400206B0653840006538500065386000653870001E +S315400206C065388000653890006538A0006538B0000E +S315400206D06538C0006538D0006538E0006538F000FE +S315400206E065390000653910006539200065393000EA +S315400206F065394000653950006539600065397000DA +S3154002070065398000653990006539A0006539B000C9 +S315400207106539C0006539D0006539E0006539F000B9 +S31540020720653A0000653A1000653A2000653A3000A5 +S31540020730653A4000653A5000653A6000653A700095 +S31540020740653A8000653A9000653AA000653AB00085 +S31540020750653AC000653AD000653AE000653AF00075 +S31540020760653B0000653B1000653B2000653B300061 +S31540020770653B4000653B5000653B6000653B700051 +S31540020780653B8000653B9000653BA000653BB00041 +S31540020790653BC000653BD000653BE000653BF00031 +S315400207A0653C0000653C1000653C2000653C30001D +S315400207B0653C4000653C5000653C6000653C70000D +S315400207C0653C8000653C9000653CA000653CB000FD +S315400207D0653CC000653CD000653CE000653CF000ED +S315400207E0653D0000653D1000653D2000653D3000D9 +S315400207F0653D4000653D5000653D6000653D7000C9 +S31540020800653D8000653D9000653DA000653DB000B8 +S31540020810653DC000653DD000653DE000653DF000A8 +S31540020820653E0000653E1000653E2000653E300094 +S31540020830653E4000653E5000653E6000653E700084 +S31540020840653E8000653E9000653EA000653EB00074 +S31540020850653EC000653ED000653EE000653EF00064 +S31540020860653F0000653F1000653F2000653F300050 +S31540020870653F4000653F5000653F6000653F700040 +S31540020880653F8000653F9000653FA000653FB00030 +S31540020890653FC000653FD000653FE000653FF00020 +S315400208A00BC0A4068F346C9B0BC093731C18544721 +S315400208B00BC083008E183C230BC072AE83A9704ACC +S315400208C00BC0627C9CC166FF0BC0526A7ACE64A49E +S315400208D00BC04277C0B04ADA0BC032A412B191A023 +S315400208E00BC022EF168069500BC01358732804734D +S315400208F00BC003DFD10A08480BBFE909B3B0463241 +S315400209000BBFCA8E711B8E880BBFAC4D32D41430CE +S315400209100BBF8E4553D34B1B0BBF7076318237EFDD +S315400209200BBF52DF2BADF99C0BBF357FA47C936C7A +S315400209300BBF18570061F5EB0BBEFB64A6154515B8 +S315400209400BBEDEA7FE865A2B0BBEC22074D37FBCDB +S315400209500BBEA5CD763F66690BBE89AE722750F0B7 +S315400209600BBE6DC2D9F976230BBE520A212B976C68 +S315400209700BBE3683BD31CAA20BBE1B2F257575CA67 +S315400209800BBE000BD34C7BAF0BBDE51941F097FE76 +S315400209900BBDCA56EE76E9D00BBDAFC457C7AB7393 +S315400209A00BBD9560FE9616690BBD7B2C655872751C +S315400209B00BBD612610404EC00BBD474D8532E40942 +S315400209C00BBD2DA24BC19EDF0BBD1423ED22D101DF +S315400209D00BBCFAD1F42A88E40BBCE1ABED438E8022 +S315400209E00BBCC8B1666884820BBCAFE1EF1D2D011A +S315400209F00BBC973D1867D0EF0BBC7EC274CAC96266 +S31540020A000BBC6671983E29FE0BBC4E4A18298BA92F +S31540020A100BBC364B8B5DF6DB0BBC1E758A0FECBFEF +S31540020A200BBC06C7ADD18E7E0BBBEF41918CE1F676 +S31540020A300BBBD7E2D17E33360BBBC0AB0B2E921B20 +S31540020A400BBBA999DD6E6B650BBB92AEE8503CA71A +S31540020A500BBB7BE9CD2362720BBB654A2E6F002C22 +S31540020A600BBB4ECFAFED00FE0BBB3879F685313F5F +S31540020A700BBB2248A8486FDE0BBB0C3B6C6BF73BAB +S31540020A800BBAF651EB44BCEE0BBAE08BCE42E7F121 +S31540020A900BBACAE8BFED5CC00BBAB5686BDD5EDD6A +S31540020AA00BBAA00A7EBA475E0BBA8ACEA6354FEB80 +S31540020AB00BBA75B4910571DB0BBA60BBEEE358EF26 +S31540020AC00BBA4BE4708569410BBA372DC79BD7FEEB +S31540020AD00BBA2297A6CCD68C0BBA0E21C1B0CFA0A8 +S31540020AE00BB9F9CBCCCEB6050BB9E5957D98648B9F +S31540020AF00BB9D17E8A670EE70BB9BD86AA77C310BA +S31540020B000BB9A9AD95E7FAC40BB995F305B23CE525 +S31540020B100BB98256B3AACE570BB96ED85A7C720617 +S31540020B200BB95B77B5A537C80BB94834817359CC35 +S31540020B300BB9350E7B02284D0BB922056037032EC1 +S31540020B400BB90F18EFBE614A0BB8FC48E908E5221B +S31540020B500BB8E9950C487EA90BB8D6FD1A6D99E8F3 +S31540020B600BB8C480D5245A340BB8B21FFED1E1BCAF +S31540020B700BB89FDA5A91A5260BB88DAFAC32CB0A89 +S31540020B800BB87B9FB83596F60BB869AA43C8DFE126 +S31540020B900BB857CF14C791B50BB8460DF1B639C647 +S31540020BA00BB83466A1C09DF90BB822D8ECB75E6E7D +S31540020BB00BB811649B0DA16B0BB8000975D6C959C8 +S31540020BC00BB7EEC746C434A50BB7DD9DD8230752F3 +S31540020BD00BB7CC8CF4D9FE010BB7BB9468674A506D +S31540020BE00BB7AAB3FEDE78540BB799EB84E65D0CDD +S31540020BF00BB7893AC7B70D960BB778A19517DF01A0 +S31540020C000BB7681FBB5D6E910BB757B50967B24C00 +S31540020C100BB747614EA011A20BB737245AF7861479 +S31540020C200BB726FDFEE4C3A00BB716EE0B6268E8CF +S31540020C300BB706F451ED36CE0BB6F710A4824F80B1 +S31540020C400BB6E742D59D7CB40BB6D78AB8377D0E34 +S31540020C500BB6C7E81FC458720BB6B85AE031BB325E +S31540020C600BB6A8E2CDE557F90BB6997FBDBB504509 +S31540020C700BB68A318504A35C0BB67AF7F985A39B3A +S31540020C800BB66BD2F17471FF0BB65CC243777FCE63 +S31540020C900BB64DC5C6A416420BB63EDD527CE411D8 +S31540020CA00BB63008BEF090CF0BB62147E45855EB51 +S31540020CB00BB6129A9B769D520BB60400BD75A5845F +S31540020CC00BB5F57A23E62B070BB5E706A8BE172C1C +S31540020CD00BB5D8A6265733FF0BB5CA58776DE54BE9 +S31540020CE00BB5BC1D771FE6AB0BB5ADF500EB0E7829 +S31540020CF00BB59FDEF0AC15940BB591DB229D63F2EA +S31540020D000BB583E97355E1C10BB57609BFC7CD3241 +S31540020D100BB5683BE53F94B80BB55A7FC162B5B691 +S31540020D200BB54CD5322E9F7F0BB53F3C15F79AA19A +S31540020D300BB531B44B67B45A0BB5243DB17DAE30D9 +S31540020D400BB516D8278BF18F0BB509838D3787677D +S31540020D500BB4FC3FC27713AE0BB4EF0CA791D4BBD6 +S31540020D600BB4E1EA1D1EA6680BB4D4D8040308E509 +S31540020D700BB4C7D63D722B370BB4BAE4AAEBF9488B +S31540020D800BB4AE032E3C2D7E0BB4A131A97965C9B5 +S31540020D900BB4946FFF043C1C0BB487BE11866236BB +S31540020DA00BB47B1BC3F1C0BF0BB46E88F97F999B12 +S31540020DB00BB4620595AFAD730BB455917C47645441 +S31540020DC00BB4492C9150F96C0BB43CD6B91AA9C84C +S31540020DD00BB4308FD835E60B0BB42457D37687162F +S31540020DE00BB4182E8FF205900BB40C13F2FEB43BE3 +S31540020DF00BB40007E232FD1F0BB3F40A4364A1674A +S31540020E000BB3E81AFCA7FBF00BB3DC39F44F468A66 +S31540020E100BB3D06710E9E1C30BB3C4A239439F4F6A +S31540020E200BB3B8EB54640EF10BB3AD42498DCDDF33 +S31540020E300BB3A1A7003DD89B0BB39619602ADF2BB3 +S31540020E400BB38A9951449BB80BB37F26BBB32B791C +S31540020E500BB373C187D669EA0BB368699E454E44A4 +S31540020E600BB35D1EE7CD4B2D0BB351E14D71B098DF +S31540020E700BB346B0B86B0FC30BB33B8D1226A15AC8 +S31540020E800BB330764445ADAC0BB3256C389CF6EBD0 +S31540020E900BB31A6ED934256E0BB30F7E104535F55A +S31540020EA00BB30499C83BE9D60BB2F9C1EBB539236A +S31540020EB00BB2EEF6657EC6AA0BB2E437209655D53E +S31540020EC00BB2D984082942630BB2CEDD0793F9E708 +S31540020ED00BB2C4420A6177190BB2B9B2FC4ABEDA06 +S31540020EE00BB2AF2FC9365EFF0BB2A4B85D37EEC167 +S31540020EF00BB29A4CA48F90E30BB28FEC8BA9777905 +S31540020F000BB28597FF1D694D0BB27B4EEBAE48DDAA +S31540020F100BB271113E499CEE0BB266DEE4071AA88B +S31540020F200BB25CB7CA2831380BB2529BDE1796F722 +S31540020F300BB2488B0D68D8030BB23E8545D7E65AAD +S31540020F400BB2348A7548AB540BB22A9A89C69A9721 +S31540020F500BB220B5718446610BB216DB1ADAF53F45 +S31540020F600BB20D0B744A39100BB203466C77876C81 +S31540020F700BB1F98BF22DD3490BB1EFDBF45D27FFB1 +S31540020F800BB1E636621A457E0BB1DC9B2A9E3DD5F5 +S31540020F900BB1D30A3D4613EE0BB1C98389925B81ED +S31540020FA00BB1C006FF26DA3F0BB1B6948DCA2A288A +S31540020FB00BB1AD2C25655D0F0BB1A3CDB603A13D9B +S31540020FC00BB19A792FD1E7410BB1912E831E88D26C +S31540020FD00BB187EDA058F0D60BB17EB678114473AB +S31540020FE00BB17588FAF80D3A0BB16C6519DDE45D03 +S31540020FF00BB1634AC5B31EEF0BB15A39EF877B2853 +S315400210000BB151328889CEAE0BB148348207B5DB7B +S315400210100BB13F3FCD6D43FF0BB136545C44B49A9E +S315400210200BB12D7220361D870BB124990B07221B5B +S315400210300BB11BC90E9AA72D0BB113021CF0880FD8 +S315400210400BB10A4428254C650BB1018F2271DEE5AE +S315400210500BB0F8E2FE2B44F40BB0F03FADC257237F +S315400210600BB0E7A523C37A850BB0DF1352D65AD904 +S315400210700BB0D68A2DBDA58C0BB0CE09A756C58915 +S315400210800BB0C591B2999FDB0BB0BD224298511568 +S315400210900BB0B4BB4A7EEB870BB0AC5CBD93363625 +S315400210A0529000000000000052900FF807F60DEB38 +S315400210B052901FE03F61BAD052902FB8D4E30F4806 +S315400210C052903F81F636B80C52904F3BD03C0A6460 +S315400210D052905EE68EFAD48B52906E825DA8FC2BBD +S315400210E052907E0F66AFED0752908D8DD3B1D9AA3D +S315400210F052909CFDCD8ED0095290AC5F7C69A3C8BC +S315400211005290BBB307ACAFDB5290CAF8960E710D44 +S315400211105290DA304D95FB065290E95A539F492C2C +S315400211205290F876CCDF6CD952910785DD689A29C0 +S3154002113052911687A8AE14A35291257C5187FD0978 +S3154002114052913463FA37014E5291433EC467EFFBE4 +S315400211505291520CD1372FEB529160CE41341D74CD +S3154002116052916F8334644DF952917E2BCA46BAB975 +S3154002117052918CC821D6D3E352919B58598F7C9F6A +S315400211805291A9DC8F6DF1045291B854E0F496A0C5 +S315400211905291C6C16B2DB8705291D5224AAE2EE1FC +S315400211A05291E3779B97F4A85291F1C1799CA8FF9B +S315400211B0529200000000000052920E33499A21A931 +S315400211C052921C5B70D9F82452922A788FC76DE5E9 +S315400211D05292388AC0059C28529246921AD4EA49BB +S315400211E05292548EB9151E8552926280B3476096CA +S315400211F05292706821902E9A52927E451BB944C3F0 +S3154002120052928C17B9337834529299E011188575F7 +S315400212105292A79E3A2CD2E65292B5524AE1278E74 +S315400212205292C2FC595456A75292D09C7B54E03EED +S315400212305292DE32C66287415292EBBF4FAFDD4BCE +S315400212405292F9422C23C47E529306BB705AE7C38C +S315400212505293142B30A929AB52932191811B0A41F7 +S3154002126052932EEE7577041652933C42213EE0C9C4 +S315400212705293498C97B10540529356CDEBC9B5E28C +S31540021280529364063044530652937135779C8DCB04 +S3154002129052937E5BD40F95A152938B79579D3EAB69 +S315400212A05293988E1409212E5293A59A1ADBB2575D +S315400212B05293B29D7D6356625293BF984CB56C77FA +S315400212C05293CC8A99AF54535293D97474F76DF2B0 +S315400212D05293E655EEFE13675293F32F17FE8D0493 +S315400212E0529400000000000052940CC8B6D657C271 +S315400212F0529419894C2329F052942641CF5695721D +S31540021300529432F24FB01C7A52943F9ADC3F79CED5 +S3154002131052944C3B83E57153529458D455549C1A7B +S31540021320529465655F122FF6529471EEAF76C2C63D +S3154002133052947E7054AF098952948AEA5CBC935F98 +S315400213405294975CD57680885294A3C7CC8A358AC4 +S315400213505294B02B4F7C0A885294BC876BA7F6EC0A +S315400213605294C8DC2E4239805294D529A457FCFCAB +S315400213705294E16FDACFF9375294EDAEDE6B10FE3E +S315400213805294F9E6BBC4ECB3529506177F5491BB0F +S3154002139052951241356CF6E052951E63EA3D95B080 +S315400213A052952A7FA9D2F8EA529536948017481068 +S315400213B0529542A278D2D03652954EA99FAC8A0F08 +S315400213C052955AAA002A9D5A529566A3A5B2E1B1F0 +S315400213D0529572969B8B5CD852957E82ECDABE8D84 +S315400213E052958A68A4A8D9F352959647CDDF1CA593 +S315400213F05295A220734903775295ADF29F948CFB86 +S315400214005295B9BE5D52A9DA5295C583B6F7AB037A +S315400214105295D142B6DBADC55295DCFB673B05DF43 +S315400214205295E8ADD236A58F5295F45A01D483B47B +S31540021430529600000000000052960B9FD68A4554F1 +S31540021440529617398F2AAA48529622CD337F0FE8F1 +S3154002145052962E5ACD0C3EBE529639E2653E421BFC +S31540021460529645640568C1C3529650DFB6C759F4D1 +S3154002147052965C55827DF1D2529667C57199104B50 +S315400214805296732F8D0E2F7752967E93DDBC0E7336 +S31540021490529689F26C6B01D05296954B41CD42934E +S315400214A000000000000000000000000000000000F4 +S315400214B000000000000000000000000000000000E4 +S315400214C000000000000000000000000000000000D4 +S315400214D000000000000000000000000000000000C4 +S315400214E000000000000000000000000000000000B4 +S315400214F000000000000000000000000000000000A4 S315400215000000000000000000000000000000000093 S315400215100000000000000000000000000000000083 S315400215200000000000000000000000000000000073 @@ -9051,8 +10239,8 @@ S31540027FC00000000000000000000000000000000069 S31540027FD00000000000000000000000000000000059 S31540027FE00000000000000000000000000000000049 S31540027FF00000000000000000000000000000000039 -S315400280000000003F0000000C0000003F000000128C -S31540028010000000FF00000018000000000000000001 +S315400280000000000000000000000000000000000028 +S315400280100000000000000000000000000000000018 S315400280200000000000000000000000000000000008 S3154002803000000000000000000000000000000000F8 S3154002804000000000000000000000000000000000E8 @@ -15963,8 +17151,8 @@ S31540042FC000000000000000000000000000000000B7 S31540042FD000000000000000000000000000000000A7 S31540042FE00000000000000000000000000000000097 S31540042FF00000000000000000000000000000000087 -S315400430000000000000000000000000000000000076 -S315400430100000000000000000000000000000000066 +S3154004300000000018000000FF000000120000003F0E +S315400430100000000C0000003F00000000000000001B S315400430200000000000000000000000000000000056 S315400430300000000000000000000000000000000046 S315400430400000000000000000000000000000000036 @@ -17243,44 +18431,44 @@ S31540047FC00000000000000000000000000000000067 S31540047FD00000000000000000000000000000000057 S31540047FE00000000000000000000000000000000047 S31540047FF00000000000000000000000000000000037 -S315400480000000000000000000000000000000000026 -S315400480100000000000000000000000000000000016 -S315400480200000000000000000000000000000000006 -S3154004803000000000000000000000000000000000F6 -S3154004804000000000000000000000000000000000E6 -S3154004805000000000000000000000000000000000D6 -S3154004806000000000000000000000000000000000C6 -S3154004807000000000000000000000000000000000B6 -S3154004808000000000000000000000000000000000A6 -S315400480900000000000000000000000000000000096 -S315400480A00000000000000000000000000000000086 -S315400480B00000000000000000000000000000000076 -S315400480C00000000000000000000000000000000066 -S315400480D00000000000000000000000000000000056 -S315400480E00000000000000000000000000000000046 -S315400480F00000000000000000000000000000000036 -S315400481000000000000000000000000000000000025 -S315400481100000000000000000000000000000000015 -S315400481200000000000000000000000000000000005 -S3154004813000000000000000000000000000000000F5 -S3154004814000000000000000000000000000000000E5 -S3154004815000000000000000000000000000000000D5 -S3154004816000000000000000000000000000000000C5 -S3154004817000000000000000000000000000000000B5 -S3154004818000000000000000000000000000000000A5 -S315400481900000000000000000000000000000000095 -S315400481A00000000000000000000000000000000085 -S315400481B00000000000000000000000000000000075 -S315400481C00000000000000000000000000000000065 -S315400481D00000000000000000000000000000000055 -S315400481E00000000000000000000000000000000045 +S31540048000000000020000000300000000000000031E +S31540048010FFFFFFFEFFFFFFFF00000002FFFFFFFD23 +S315400480200000000000000000000000010000000005 +S3154004803000000000FFFFFFFF0000000000000001F9 +S31540048040FFFFFFFFFFFFFFFFFFFFFFFF00000001F1 +S31540048050FFFFFFFFFFFFFFFE0000000300000000DC +S31540048060FFFFFFFEFFFFFFFD0000000000000009C8 +S315400480700000000700000001FFFFFFF700000002B8 +S31540048080FFFFFFFCFFFFFFF800000002FFFFFFFCBD +S31540048090FFFFFFF8FFFFFFFC00000002000000089E +S315400480A0FFFFFFFCFFFFFFFEFFFFFFF8FFFFFFF8A8 +S315400480B000000001FFFFFFF8FFFFFFF7000000008C +S315400480C00000000B00000002000000050000002F25 +S315400480D0000000020000001700003039000002A72B +S315400480E000000012FFFF076C0000004DFFFFFCC6B6 +S315400480F000003039FFFFFD59FFFFFFEEFFFF076C1D +S31540048100FFFFFFB30000033A00000091FFFFE84180 +S3154004811000000000FFFFFD84FFFED02F000000009A +S315400481200000F6FA006E49810000000000000000DD +S3154004813000000000000000000000000200000003F0 +S3154004814000000000000000000000000100000000E4 +S31540048150FFFFFFFE0000000355555554FFFFFFFE89 +S315400481600000000355555554700FFFFE00000007EC +S315400481701002492400000000000000000000000036 +S315400481800000000200000003000000060000000298 +S31540048190FFFFFFFDFFFFFFFA0000000000000001A3 +S315400481A00000000000000000FFFFFFFF0000000089 +S315400481B000000001FFFFFFFFFFFFFFFFFFFFFFFF80 +S315400481C000000001FFFFFFFFFFFFFFFE000000036A +S315400481D0FFFFFFFAFFFFFFFEFFFFFFFD0000000663 +S315400481E0000000000000000000000009FFFFF0004E S315400481F00000000000000000000000000000000035 -S315400482000000000000000000000000000000000024 +S31540048200000000000000000100000002000000031E S315400482100000000000000000000000000000000014 -S315400482200000000000000000000000000000000004 -S3154004823000000000000000000000000000000000F4 +S315400482204004822800000000000000004004851439 +S31540048230400485E0400486AC0000000000000000D5 S3154004824000000000000000000000000000000000E4 -S3154004825000000000000000000000000000000000D4 +S315400482500000000000000000000000004001C0983B S3154004826000000000000000000000000000000000C4 S3154004827000000000000000000000000000000000B4 S3154004828000000000000000000000000000000000A4 @@ -17288,8 +18476,8 @@ S315400482900000000000000000000000000000000094 S315400482A00000000000000000000000000000000084 S315400482B00000000000000000000000000000000074 S315400482C00000000000000000000000000000000064 -S315400482D00000000000000000000000000000000054 -S315400482E00000000000000000000000000000000044 +S315400482D00000000000000001330EABCD1234E66D01 +S315400482E0DEEC0005000B000000000000000000006A S315400482F00000000000000000000000000000000034 S315400483000000000000000000000000000000000023 S315400483100000000000000000000000000000000013 @@ -17363,72 +18551,72 @@ S3154004874000000000000000000000000000000000DF S3154004875000000000000000000000000000000000CF S3154004876000000000000000000000000000000000BF S3154004877000000000000000000000000000000000AF -S31540048780000000000000000000000000000000009F -S31540048790000000000000000000000000000000008F -S315400487A0000000000000000000000000000000007F -S315400487B0000000000000000000000000000000006F -S315400487C0000000000000000000000000000000005F -S315400487D0000000000000000000000000000000004F -S315400487E0000000000000000000000000000000003F -S315400487F0000000000000000000000000000000002F -S31540048800000000000000000000000000000000001E -S31540048810000000000000000000000000000000000E -S3154004882000000000000000000000000000000000FE -S3154004883000000000000000000000000000000000EE -S3154004884000000000000000000000000000000000DE -S3154004885000000000000000000000000000000000CE -S3154004886000000000000000000000000000000000BE -S3154004887000000000000000000000000000000000AE -S31540048880000000000000000000000000000000009E -S31540048890000000000000000000000000000000008E -S315400488A0000000000000000000000000000000007E -S315400488B0000000000000000000000000000000006E -S315400488C0000000000000000000000000000000005E -S315400488D0000000000000000000000000000000004E -S315400488E0000000000000000000000000000000003E -S315400488F0000000000000000000000000000000002E -S31540048900000000000000000000000000000000001D -S31540048910000000000000000000000000000000000D -S3154004892000000000000000000000000000000000FD -S3154004893000000000000000000000000000000000ED -S3154004894000000000000000000000000000000000DD -S3154004895000000000000000000000000000000000CD -S3154004896000000000000000000000000000000000BD -S3154004897000000000000000000000000000000000AD -S31540048980000000000000000000000000000000009D -S31540048990000000000000000000000000000000008D -S315400489A0000000000000000000000000000000007D -S315400489B0000000000000000000000000000000006D -S315400489C0000000000000000000000000000000005D -S315400489D0000000000000000000000000000000004D -S315400489E0000000000000000000000000000000003D -S315400489F0000000000000000000000000000000002D -S31540048A00000000000000000000000000000000001C -S31540048A10000000000000000000000000000000000C -S31540048A2000000000000000000000000000000000FC -S31540048A3000000000000000000000000000000000EC -S31540048A4000000000000000000000000000000000DC -S31540048A5000000000000000000000000000000000CC -S31540048A6000000000000000000000000000000000BC -S31540048A7000000000000000000000000000000000AC -S31540048A80000000000000000000000000000000009C -S31540048A90000000000000000000000000000000008C -S31540048AA0000000000000000000000000000000007C -S31540048AB0000000000000000000000000000000006C -S31540048AC0000000000000000000000000000000005C -S31540048AD0000000000000000000000000000000004C -S31540048AE0000000000000000000000000000000003C -S31540048AF0000000000000000000000000000000002C -S31540048B00000000000000000000000000000000001B -S31540048B10000000000000000000000000000000000B -S31540048B2000000000000000000000000000000000FB -S31540048B3000000000000000000000000000000000EB -S31540048B4000000000000000000000000000000000DB -S31540048B5000000000000000000000000000000000CB -S31540048B6000000000000000000000000000000000BB -S31540048B7000000000000000000000000000000000AB -S31540048B80000000000000000000000000000000009B -S31540048B90000000000000000000000000000000008B +S315400487804004877840048778400487804004878083 +S315400487904004878840048788400487904004879033 +S315400487A04004879840048798400487A0400487A0E3 +S315400487B0400487A8400487A8400487B0400487B093 +S315400487C0400487B8400487B8400487C0400487C043 +S315400487D0400487C8400487C8400487D0400487D0F3 +S315400487E0400487D8400487D8400487E0400487E0A3 +S315400487F0400487E8400487E8400487F0400487F053 +S31540048800400487F8400487F8400488004004880000 +S3154004881040048808400488084004881040048810AE +S31540048820400488184004881840048820400488205E +S31540048830400488284004882840048830400488300E +S3154004884040048838400488384004884040048840BE +S31540048850400488484004884840048850400488506E +S31540048860400488584004885840048860400488601E +S3154004887040048868400488684004887040048870CE +S31540048880400488784004887840048880400488807E +S31540048890400488884004888840048890400488902E +S315400488A04004889840048898400488A0400488A0DE +S315400488B0400488A8400488A8400488B0400488B08E +S315400488C0400488B8400488B8400488C0400488C03E +S315400488D0400488C8400488C8400488D0400488D0EE +S315400488E0400488D8400488D8400488E0400488E09E +S315400488F0400488E8400488E8400488F0400488F04E +S31540048900400488F8400488F84004890040048900FB +S3154004891040048908400489084004891040048910A9 +S315400489204004891840048918400489204004892059 +S315400489304004892840048928400489304004893009 +S3154004894040048938400489384004894040048940B9 +S315400489504004894840048948400489504004895069 +S315400489604004895840048958400489604004896019 +S3154004897040048968400489684004897040048970C9 +S315400489804004897840048978400489804004898079 +S315400489904004898840048988400489904004899029 +S315400489A04004899840048998400489A0400489A0D9 +S315400489B0400489A8400489A8400489B0400489B089 +S315400489C0400489B8400489B8400489C0400489C039 +S315400489D0400489C8400489C8400489D0400489D0E9 +S315400489E0400489D8400489D8400489E0400489E099 +S315400489F0400489E8400489E8400489F0400489F049 +S31540048A00400489F8400489F840048A0040048A00F6 +S31540048A1040048A0840048A0840048A1040048A10A4 +S31540048A2040048A1840048A1840048A2040048A2054 +S31540048A3040048A2840048A2840048A3040048A3004 +S31540048A4040048A3840048A3840048A4040048A40B4 +S31540048A5040048A4840048A4840048A5040048A5064 +S31540048A6040048A5840048A5840048A6040048A6014 +S31540048A7040048A6840048A6840048A7040048A70C4 +S31540048A8040048A7840048A7840048A8040048A8074 +S31540048A9040048A8840048A8840048A9040048A9024 +S31540048AA040048A9840048A9840048AA040048AA0D4 +S31540048AB040048AA840048AA840048AB040048AB084 +S31540048AC040048AB840048AB840048AC040048AC034 +S31540048AD040048AC840048AC840048AD040048AD0E4 +S31540048AE040048AD840048AD840048AE040048AE094 +S31540048AF040048AE840048AE840048AF040048AF044 +S31540048B0040048AF840048AF840048B0040048B00F1 +S31540048B1040048B0840048B0840048B1040048B109F +S31540048B2040048B1840048B1840048B2040048B204F +S31540048B3040048B2840048B2840048B3040048B30FF +S31540048B4040048B3840048B3840048B4040048B40AF +S31540048B5040048B4840048B4840048B5040048B505F +S31540048B6040048B5840048B5840048B6040048B600F +S31540048B7040048B6840048B6840048B7040048B70BF +S31540048B8000020000FFFFFFFF0000000040048B8846 +S31540048B900000000000000000000000000000000289 S31540048BA0000000000000000000000000000000007B S31540048BB0000000000000000000000000000000006B S31540048BC0000000000000000000000000000000005B @@ -17437,2056 +18625,7 @@ S31540048BE0000000000000000000000000000000003B S31540048BF0000000000000000000000000000000002B S31540048C00000000000000000000000000000000001A S31540048C10000000000000000000000000000000000A -S31540048C2000000000000000000000000000000000FA -S31540048C3000000000000000000000000000000000EA -S31540048C4000000000000000000000000000000000DA -S31540048C5000000000000000000000000000000000CA -S31540048C6000000000000000000000000000000000BA -S31540048C7000000000000000000000000000000000AA -S31540048C80000000000000000000000000000000009A -S31540048C90000000000000000000000000000000008A -S31540048CA0000000000000000000000000000000007A -S31540048CB0000000000000000000000000000000006A -S31540048CC0000000000000000000000000000000005A -S31540048CD0000000000000000000000000000000004A -S31540048CE0000000000000000000000000000000003A -S31540048CF0000000000000000000000000000000002A -S31540048D000000000000000000000000000000000019 -S31540048D100000000000000000000000000000000009 -S31540048D2000000000000000000000000000000000F9 -S31540048D3000000000000000000000000000000000E9 -S31540048D4000000000000000000000000000000000D9 -S31540048D5000000000000000000000000000000000C9 -S31540048D6000000000000000000000000000000000B9 -S31540048D7000000000000000000000000000000000A9 -S31540048D800000000000000000000000000000000099 -S31540048D900000000000000000000000000000000089 -S31540048DA00000000000000000000000000000000079 -S31540048DB00000000000000000000000000000000069 -S31540048DC00000000000000000000000000000000059 -S31540048DD00000000000000000000000000000000049 -S31540048DE00000000000000000000000000000000039 -S31540048DF00000000000000000000000000000000029 -S31540048E000000000000000000000000000000000018 -S31540048E100000000000000000000000000000000008 -S31540048E2000000000000000000000000000000000F8 -S31540048E3000000000000000000000000000000000E8 -S31540048E4000000000000000000000000000000000D8 -S31540048E5000000000000000000000000000000000C8 -S31540048E6000000000000000000000000000000000B8 -S31540048E7000000000000000000000000000000000A8 -S31540048E800000000000000000000000000000000098 -S31540048E900000000000000000000000000000000088 -S31540048EA00000000000000000000000000000000078 -S31540048EB00000000000000000000000000000000068 -S31540048EC00000000000000000000000000000000058 -S31540048ED00000000000000000000000000000000048 -S31540048EE00000000000000000000000000000000038 -S31540048EF00000000000000000000000000000000028 -S31540048F000000000000000000000000000000000017 -S31540048F100000000000000000000000000000000007 -S31540048F2000000000000000000000000000000000F7 -S31540048F3000000000000000000000000000000000E7 -S31540048F4000000000000000000000000000000000D7 -S31540048F5000000000000000000000000000000000C7 -S31540048F6000000000000000000000000000000000B7 -S31540048F7000000000000000000000000000000000A7 -S31540048F800000000000000000000000000000000097 -S31540048F900000000000000000000000000000000087 -S31540048FA00000000000000000000000000000000077 -S31540048FB00000000000000000000000000000000067 -S31540048FC00000000000000000000000000000000057 -S31540048FD00000000000000000000000000000000047 -S31540048FE00000000000000000000000000000000037 -S31540048FF00000000000000000000000000000000027 -S315400490000000000000000000000000000000000016 -S315400490100000000000000000000000000000000006 -S3154004902000000000000000000000000000000000F6 -S3154004903000000000000000000000000000000000E6 -S3154004904000000000000000000000000000000000D6 -S3154004905000000000000000000000000000000000C6 -S3154004906000000000000000000000000000000000B6 -S3154004907000000000000000000000000000000000A6 -S315400490800000000000000000000000000000000096 -S315400490900000000000000000000000000000000086 -S315400490A00000000000000000000000000000000076 -S315400490B00000000000000000000000000000000066 -S315400490C00000000000000000000000000000000056 -S315400490D00000000000000000000000000000000046 -S315400490E00000000000000000000000000000000036 -S315400490F00000000000000000000000000000000026 -S315400491000000000000000000000000000000000015 -S315400491100000000000000000000000000000000005 -S3154004912000000000000000000000000000000000F5 -S3154004913000000000000000000000000000000000E5 -S3154004914000000000000000000000000000000000D5 -S3154004915000000000000000000000000000000000C5 -S3154004916000000000000000000000000000000000B5 -S3154004917000000000000000000000000000000000A5 -S315400491800000000000000000000000000000000095 -S315400491900000000000000000000000000000000085 -S315400491A00000000000000000000000000000000075 -S315400491B00000000000000000000000000000000065 -S315400491C00000000000000000000000000000000055 -S315400491D00000000000000000000000000000000045 -S315400491E00000000000000000000000000000000035 -S315400491F00000000000000000000000000000000025 -S315400492000000000000000000000000000000000014 -S315400492100000000000000000000000000000000004 -S3154004922000000000000000000000000000000000F4 -S3154004923000000000000000000000000000000000E4 -S3154004924000000000000000000000000000000000D4 -S3154004925000000000000000000000000000000000C4 -S3154004926000000000000000000000000000000000B4 -S3154004927000000000000000000000000000000000A4 -S315400492800000000000000000000000000000000094 -S315400492900000000000000000000000000000000084 -S315400492A00000000000000000000000000000000074 -S315400492B00000000000000000000000000000000064 -S315400492C00000000000000000000000000000000054 -S315400492D00000000000000000000000000000000044 -S315400492E00000000000000000000000000000000034 -S315400492F00000000000000000000000000000000024 -S315400493000000000000000000000000000000000013 -S315400493100000000000000000000000000000000003 -S3154004932000000000000000000000000000000000F3 -S3154004933000000000000000000000000000000000E3 -S3154004934000000000000000000000000000000000D3 -S3154004935000000000000000000000000000000000C3 -S3154004936000000000000000000000000000000000B3 -S3154004937000000000000000000000000000000000A3 -S315400493800000000000000000000000000000000093 -S315400493900000000000000000000000000000000083 -S315400493A00000000000000000000000000000000073 -S315400493B00000000000000000000000000000000063 -S315400493C00000000000000000000000000000000053 -S315400493D00000000000000000000000000000000043 -S315400493E00000000000000000000000000000000033 -S315400493F00000000000000000000000000000000023 -S315400494000000000000000000000000000000000012 -S315400494100000000000000000000000000000000002 -S3154004942000000000000000000000000000000000F2 -S3154004943000000000000000000000000000000000E2 -S3154004944000000000000000000000000000000000D2 -S3154004945000000000000000000000000000000000C2 -S3154004946000000000000000000000000000000000B2 -S3154004947000000000000000000000000000000000A2 -S315400494800000000000000000000000000000000092 -S315400494900000000000000000000000000000000082 -S315400494A00000000000000000000000000000000072 -S315400494B00000000000000000000000000000000062 -S315400494C00000000000000000000000000000000052 -S315400494D00000000000000000000000000000000042 -S315400494E00000000000000000000000000000000032 -S315400494F00000000000000000000000000000000022 -S315400495000000000000000000000000000000000011 -S315400495100000000000000000000000000000000001 -S3154004952000000000000000000000000000000000F1 -S3154004953000000000000000000000000000000000E1 -S3154004954000000000000000000000000000000000D1 -S3154004955000000000000000000000000000000000C1 -S3154004956000000000000000000000000000000000B1 -S3154004957000000000000000000000000000000000A1 -S315400495800000000000000000000000000000000091 -S315400495900000000000000000000000000000000081 -S315400495A00000000000000000000000000000000071 -S315400495B00000000000000000000000000000000061 -S315400495C00000000000000000000000000000000051 -S315400495D00000000000000000000000000000000041 -S315400495E00000000000000000000000000000000031 -S315400495F00000000000000000000000000000000021 -S315400496000000000000000000000000000000000010 -S315400496100000000000000000000000000000000000 -S3154004962000000000000000000000000000000000F0 -S3154004963000000000000000000000000000000000E0 -S3154004964000000000000000000000000000000000D0 -S3154004965000000000000000000000000000000000C0 -S3154004966000000000000000000000000000000000B0 -S3154004967000000000000000000000000000000000A0 -S315400496800000000000000000000000000000000090 -S315400496900000000000000000000000000000000080 -S315400496A00000000000000000000000000000000070 -S315400496B00000000000000000000000000000000060 -S315400496C00000000000000000000000000000000050 -S315400496D00000000000000000000000000000000040 -S315400496E00000000000000000000000000000000030 -S315400496F00000000000000000000000000000000020 -S31540049700000000000000000000000000000000000F -S3154004971000000000000000000000000000000000FF -S3154004972000000000000000000000000000000000EF -S3154004973000000000000000000000000000000000DF -S3154004974000000000000000000000000000000000CF -S3154004975000000000000000000000000000000000BF -S3154004976000000000000000000000000000000000AF -S31540049770000000000000000000000000000000009F -S31540049780000000000000000000000000000000008F -S31540049790000000000000000000000000000000007F -S315400497A0000000000000000000000000000000006F -S315400497B0000000000000000000000000000000005F -S315400497C0000000000000000000000000000000004F -S315400497D0000000000000000000000000000000003F -S315400497E0000000000000000000000000000000002F -S315400497F0000000000000000000000000000000001F -S31540049800000000000000000000000000000000000E -S3154004981000000000000000000000000000000000FE -S3154004982000000000000000000000000000000000EE -S3154004983000000000000000000000000000000000DE -S3154004984000000000000000000000000000000000CE -S3154004985000000000000000000000000000000000BE -S3154004986000000000000000000000000000000000AE -S31540049870000000000000000000000000000000009E -S31540049880000000000000000000000000000000008E -S31540049890000000000000000000000000000000007E -S315400498A0000000000000000000000000000000006E -S315400498B0000000000000000000000000000000005E -S315400498C0000000000000000000000000000000004E -S315400498D0000000000000000000000000000000003E -S315400498E0000000000000000000000000000000002E -S315400498F0000000000000000000000000000000001E -S31540049900000000000000000000000000000000000D -S3154004991000000000000000000000000000000000FD -S3154004992000000000000000000000000000000000ED -S3154004993000000000000000000000000000000000DD -S3154004994000000000000000000000000000000000CD -S3154004995000000000000000000000000000000000BD -S3154004996000000000000000000000000000000000AD -S31540049970000000000000000000000000000000009D -S31540049980000000000000000000000000000000008D -S31540049990000000000000000000000000000000007D -S315400499A0000000000000000000000000000000006D -S315400499B0000000000000000000000000000000005D -S315400499C0000000000000000000000000000000004D -S315400499D0000000000000000000000000000000003D -S315400499E0000000000000000000000000000000002D -S315400499F0000000000000000000000000000000001D -S31540049A00000000000000000000000000000000000C -S31540049A1000000000000000000000000000000000FC -S31540049A2000000000000000000000000000000000EC -S31540049A3000000000000000000000000000000000DC -S31540049A4000000000000000000000000000000000CC -S31540049A5000000000000000000000000000000000BC -S31540049A6000000000000000000000000000000000AC -S31540049A70000000000000000000000000000000009C -S31540049A80000000000000000000000000000000008C -S31540049A90000000000000000000000000000000007C -S31540049AA0000000000000000000000000000000006C -S31540049AB0000000000000000000000000000000005C -S31540049AC0000000000000000000000000000000004C -S31540049AD0000000000000000000000000000000003C -S31540049AE0000000000000000000000000000000002C -S31540049AF0000000000000000000000000000000001C -S31540049B00000000000000000000000000000000000B -S31540049B1000000000000000000000000000000000FB -S31540049B2000000000000000000000000000000000EB -S31540049B3000000000000000000000000000000000DB -S31540049B4000000000000000000000000000000000CB -S31540049B5000000000000000000000000000000000BB -S31540049B6000000000000000000000000000000000AB -S31540049B70000000000000000000000000000000009B -S31540049B80000000000000000000000000000000008B -S31540049B90000000000000000000000000000000007B -S31540049BA0000000000000000000000000000000006B -S31540049BB0000000000000000000000000000000005B -S31540049BC0000000000000000000000000000000004B -S31540049BD0000000000000000000000000000000003B -S31540049BE0000000000000000000000000000000002B -S31540049BF0000000000000000000000000000000001B -S31540049C00000000000000000000000000000000000A -S31540049C1000000000000000000000000000000000FA -S31540049C2000000000000000000000000000000000EA -S31540049C3000000000000000000000000000000000DA -S31540049C4000000000000000000000000000000000CA -S31540049C5000000000000000000000000000000000BA -S31540049C6000000000000000000000000000000000AA -S31540049C70000000000000000000000000000000009A -S31540049C80000000000000000000000000000000008A -S31540049C90000000000000000000000000000000007A -S31540049CA0000000000000000000000000000000006A -S31540049CB0000000000000000000000000000000005A -S31540049CC0000000000000000000000000000000004A -S31540049CD0000000000000000000000000000000003A -S31540049CE0000000000000000000000000000000002A -S31540049CF0000000000000000000000000000000001A -S31540049D000000000000000000000000000000000009 -S31540049D1000000000000000000000000000000000F9 -S31540049D2000000000000000000000000000000000E9 -S31540049D3000000000000000000000000000000000D9 -S31540049D4000000000000000000000000000000000C9 -S31540049D5000000000000000000000000000000000B9 -S31540049D6000000000000000000000000000000000A9 -S31540049D700000000000000000000000000000000099 -S31540049D800000000000000000000000000000000089 -S31540049D900000000000000000000000000000000079 -S31540049DA00000000000000000000000000000000069 -S31540049DB00000000000000000000000000000000059 -S31540049DC00000000000000000000000000000000049 -S31540049DD00000000000000000000000000000000039 -S31540049DE00000000000000000000000000000000029 -S31540049DF00000000000000000000000000000000019 -S31540049E000000000000000000000000000000000008 -S31540049E1000000000000000000000000000000000F8 -S31540049E2000000000000000000000000000000000E8 -S31540049E3000000000000000000000000000000000D8 -S31540049E4000000000000000000000000000000000C8 -S31540049E5000000000000000000000000000000000B8 -S31540049E6000000000000000000000000000000000A8 -S31540049E700000000000000000000000000000000098 -S31540049E800000000000000000000000000000000088 -S31540049E900000000000000000000000000000000078 -S31540049EA00000000000000000000000000000000068 -S31540049EB00000000000000000000000000000000058 -S31540049EC00000000000000000000000000000000048 -S31540049ED00000000000000000000000000000000038 -S31540049EE00000000000000000000000000000000028 -S31540049EF00000000000000000000000000000000018 -S31540049F000000000000000000000000000000000007 -S31540049F1000000000000000000000000000000000F7 -S31540049F2000000000000000000000000000000000E7 -S31540049F3000000000000000000000000000000000D7 -S31540049F4000000000000000000000000000000000C7 -S31540049F5000000000000000000000000000000000B7 -S31540049F6000000000000000000000000000000000A7 -S31540049F700000000000000000000000000000000097 -S31540049F800000000000000000000000000000000087 -S31540049F900000000000000000000000000000000077 -S31540049FA00000000000000000000000000000000067 -S31540049FB00000000000000000000000000000000057 -S31540049FC00000000000000000000000000000000047 -S31540049FD00000000000000000000000000000000037 -S31540049FE00000000000000000000000000000000027 -S31540049FF00000000000000000000000000000000017 -S3154004A0000000000000000000000000000000000006 -S3154004A01000000000000000000000000000000000F6 -S3154004A02000000000000000000000000000000000E6 -S3154004A03000000000000000000000000000000000D6 -S3154004A04000000000000000000000000000000000C6 -S3154004A05000000000000000000000000000000000B6 -S3154004A06000000000000000000000000000000000A6 -S3154004A0700000000000000000000000000000000096 -S3154004A0800000000000000000000000000000000086 -S3154004A0900000000000000000000000000000000076 -S3154004A0A00000000000000000000000000000000066 -S3154004A0B00000000000000000000000000000000056 -S3154004A0C00000000000000000000000000000000046 -S3154004A0D00000000000000000000000000000000036 -S3154004A0E00000000000000000000000000000000026 -S3154004A0F00000000000000000000000000000000016 -S3154004A1000000000000000000000000000000000005 -S3154004A11000000000000000000000000000000000F5 -S3154004A12000000000000000000000000000000000E5 -S3154004A13000000000000000000000000000000000D5 -S3154004A14000000000000000000000000000000000C5 -S3154004A15000000000000000000000000000000000B5 -S3154004A16000000000000000000000000000000000A5 -S3154004A1700000000000000000000000000000000095 -S3154004A1800000000000000000000000000000000085 -S3154004A1900000000000000000000000000000000075 -S3154004A1A00000000000000000000000000000000065 -S3154004A1B00000000000000000000000000000000055 -S3154004A1C00000000000000000000000000000000045 -S3154004A1D00000000000000000000000000000000035 -S3154004A1E00000000000000000000000000000000025 -S3154004A1F00000000000000000000000000000000015 -S3154004A2000000000000000000000000000000000004 -S3154004A21000000000000000000000000000000000F4 -S3154004A22000000000000000000000000000000000E4 -S3154004A23000000000000000000000000000000000D4 -S3154004A24000000000000000000000000000000000C4 -S3154004A25000000000000000000000000000000000B4 -S3154004A26000000000000000000000000000000000A4 -S3154004A2700000000000000000000000000000000094 -S3154004A2800000000000000000000000000000000084 -S3154004A2900000000000000000000000000000000074 -S3154004A2A00000000000000000000000000000000064 -S3154004A2B00000000000000000000000000000000054 -S3154004A2C00000000000000000000000000000000044 -S3154004A2D00000000000000000000000000000000034 -S3154004A2E00000000000000000000000000000000024 -S3154004A2F00000000000000000000000000000000014 -S3154004A3000000000000000000000000000000000003 -S3154004A31000000000000000000000000000000000F3 -S3154004A32000000000000000000000000000000000E3 -S3154004A33000000000000000000000000000000000D3 -S3154004A34000000000000000000000000000000000C3 -S3154004A35000000000000000000000000000000000B3 -S3154004A36000000000000000000000000000000000A3 -S3154004A3700000000000000000000000000000000093 -S3154004A3800000000000000000000000000000000083 -S3154004A3900000000000000000000000000000000073 -S3154004A3A00000000000000000000000000000000063 -S3154004A3B00000000000000000000000000000000053 -S3154004A3C00000000000000000000000000000000043 -S3154004A3D00000000000000000000000000000000033 -S3154004A3E00000000000000000000000000000000023 -S3154004A3F00000000000000000000000000000000013 -S3154004A4000000000000000000000000000000000002 -S3154004A41000000000000000000000000000000000F2 -S3154004A42000000000000000000000000000000000E2 -S3154004A43000000000000000000000000000000000D2 -S3154004A44000000000000000000000000000000000C2 -S3154004A45000000000000000000000000000000000B2 -S3154004A46000000000000000000000000000000000A2 -S3154004A4700000000000000000000000000000000092 -S3154004A4800000000000000000000000000000000082 -S3154004A4900000000000000000000000000000000072 -S3154004A4A00000000000000000000000000000000062 -S3154004A4B00000000000000000000000000000000052 -S3154004A4C00000000000000000000000000000000042 -S3154004A4D00000000000000000000000000000000032 -S3154004A4E00000000000000000000000000000000022 -S3154004A4F00000000000000000000000000000000012 -S3154004A5000000000000000000000000000000000001 -S3154004A51000000000000000000000000000000000F1 -S3154004A52000000000000000000000000000000000E1 -S3154004A53000000000000000000000000000000000D1 -S3154004A54000000000000000000000000000000000C1 -S3154004A55000000000000000000000000000000000B1 -S3154004A56000000000000000000000000000000000A1 -S3154004A5700000000000000000000000000000000091 -S3154004A5800000000000000000000000000000000081 -S3154004A5900000000000000000000000000000000071 -S3154004A5A00000000000000000000000000000000061 -S3154004A5B00000000000000000000000000000000051 -S3154004A5C00000000000000000000000000000000041 -S3154004A5D00000000000000000000000000000000031 -S3154004A5E00000000000000000000000000000000021 -S3154004A5F00000000000000000000000000000000011 -S3154004A6000000000000000000000000000000000000 -S3154004A61000000000000000000000000000000000F0 -S3154004A62000000000000000000000000000000000E0 -S3154004A63000000000000000000000000000000000D0 -S3154004A64000000000000000000000000000000000C0 -S3154004A65000000000000000000000000000000000B0 -S3154004A66000000000000000000000000000000000A0 -S3154004A6700000000000000000000000000000000090 -S3154004A6800000000000000000000000000000000080 -S3154004A6900000000000000000000000000000000070 -S3154004A6A00000000000000000000000000000000060 -S3154004A6B00000000000000000000000000000000050 -S3154004A6C00000000000000000000000000000000040 -S3154004A6D00000000000000000000000000000000030 -S3154004A6E00000000000000000000000000000000020 -S3154004A6F00000000000000000000000000000000010 -S3154004A70000000000000000000000000000000000FF -S3154004A71000000000000000000000000000000000EF -S3154004A72000000000000000000000000000000000DF -S3154004A73000000000000000000000000000000000CF -S3154004A74000000000000000000000000000000000BF -S3154004A75000000000000000000000000000000000AF -S3154004A760000000000000000000000000000000009F -S3154004A770000000000000000000000000000000008F -S3154004A780000000000000000000000000000000007F -S3154004A790000000000000000000000000000000006F -S3154004A7A0000000000000000000000000000000005F -S3154004A7B0000000000000000000000000000000004F -S3154004A7C0000000000000000000000000000000003F -S3154004A7D0000000000000000000000000000000002F -S3154004A7E0000000000000000000000000000000001F -S3154004A7F0000000000000000000000000000000000F -S3154004A80000000000000000000000000000000000FE -S3154004A81000000000000000000000000000000000EE -S3154004A82000000000000000000000000000000000DE -S3154004A83000000000000000000000000000000000CE -S3154004A84000000000000000000000000000000000BE -S3154004A85000000000000000000000000000000000AE -S3154004A860000000000000000000000000000000009E -S3154004A870000000000000000000000000000000008E -S3154004A880000000000000000000000000000000007E -S3154004A890000000000000000000000000000000006E -S3154004A8A0000000000000000000000000000000005E -S3154004A8B0000000000000000000000000000000004E -S3154004A8C0000000000000000000000000000000003E -S3154004A8D0000000000000000000000000000000002E -S3154004A8E0000000000000000000000000000000001E -S3154004A8F0000000000000000000000000000000000E -S3154004A90000000000000000000000000000000000FD -S3154004A91000000000000000000000000000000000ED -S3154004A92000000000000000000000000000000000DD -S3154004A93000000000000000000000000000000000CD -S3154004A94000000000000000000000000000000000BD -S3154004A95000000000000000000000000000000000AD -S3154004A960000000000000000000000000000000009D -S3154004A970000000000000000000000000000000008D -S3154004A980000000000000000000000000000000007D -S3154004A990000000000000000000000000000000006D -S3154004A9A0000000000000000000000000000000005D -S3154004A9B0000000000000000000000000000000004D -S3154004A9C0000000000000000000000000000000003D -S3154004A9D0000000000000000000000000000000002D -S3154004A9E0000000000000000000000000000000001D -S3154004A9F0000000000000000000000000000000000D -S3154004AA0000000000000000000000000000000000FC -S3154004AA1000000000000000000000000000000000EC -S3154004AA2000000000000000000000000000000000DC -S3154004AA3000000000000000000000000000000000CC -S3154004AA4000000000000000000000000000000000BC -S3154004AA5000000000000000000000000000000000AC -S3154004AA60000000000000000000000000000000009C -S3154004AA70000000000000000000000000000000008C -S3154004AA80000000000000000000000000000000007C -S3154004AA90000000000000000000000000000000006C -S3154004AAA0000000000000000000000000000000005C -S3154004AAB0000000000000000000000000000000004C -S3154004AAC0000000000000000000000000000000003C -S3154004AAD0000000000000000000000000000000002C -S3154004AAE0000000000000000000000000000000001C -S3154004AAF0000000000000000000000000000000000C -S3154004AB0000000000000000000000000000000000FB -S3154004AB1000000000000000000000000000000000EB -S3154004AB2000000000000000000000000000000000DB -S3154004AB3000000000000000000000000000000000CB -S3154004AB4000000000000000000000000000000000BB -S3154004AB5000000000000000000000000000000000AB -S3154004AB60000000000000000000000000000000009B -S3154004AB70000000000000000000000000000000008B -S3154004AB80000000000000000000000000000000007B -S3154004AB90000000000000000000000000000000006B -S3154004ABA0000000000000000000000000000000005B -S3154004ABB0000000000000000000000000000000004B -S3154004ABC0000000000000000000000000000000003B -S3154004ABD0000000000000000000000000000000002B -S3154004ABE0000000000000000000000000000000001B -S3154004ABF0000000000000000000000000000000000B -S3154004AC0000000000000000000000000000000000FA -S3154004AC1000000000000000000000000000000000EA -S3154004AC2000000000000000000000000000000000DA -S3154004AC3000000000000000000000000000000000CA -S3154004AC4000000000000000000000000000000000BA -S3154004AC5000000000000000000000000000000000AA -S3154004AC60000000000000000000000000000000009A -S3154004AC70000000000000000000000000000000008A -S3154004AC80000000000000000000000000000000007A -S3154004AC90000000000000000000000000000000006A -S3154004ACA0000000000000000000000000000000005A -S3154004ACB0000000000000000000000000000000004A -S3154004ACC0000000000000000000000000000000003A -S3154004ACD0000000000000000000000000000000002A -S3154004ACE0000000000000000000000000000000001A -S3154004ACF0000000000000000000000000000000000A -S3154004AD0000000000000000000000000000000000F9 -S3154004AD1000000000000000000000000000000000E9 -S3154004AD2000000000000000000000000000000000D9 -S3154004AD3000000000000000000000000000000000C9 -S3154004AD4000000000000000000000000000000000B9 -S3154004AD5000000000000000000000000000000000A9 -S3154004AD600000000000000000000000000000000099 -S3154004AD700000000000000000000000000000000089 -S3154004AD800000000000000000000000000000000079 -S3154004AD900000000000000000000000000000000069 -S3154004ADA00000000000000000000000000000000059 -S3154004ADB00000000000000000000000000000000049 -S3154004ADC00000000000000000000000000000000039 -S3154004ADD00000000000000000000000000000000029 -S3154004ADE00000000000000000000000000000000019 -S3154004ADF00000000000000000000000000000000009 -S3154004AE0000000000000000000000000000000000F8 -S3154004AE1000000000000000000000000000000000E8 -S3154004AE2000000000000000000000000000000000D8 -S3154004AE3000000000000000000000000000000000C8 -S3154004AE4000000000000000000000000000000000B8 -S3154004AE5000000000000000000000000000000000A8 -S3154004AE600000000000000000000000000000000098 -S3154004AE700000000000000000000000000000000088 -S3154004AE800000000000000000000000000000000078 -S3154004AE900000000000000000000000000000000068 -S3154004AEA00000000000000000000000000000000058 -S3154004AEB00000000000000000000000000000000048 -S3154004AEC00000000000000000000000000000000038 -S3154004AED00000000000000000000000000000000028 -S3154004AEE00000000000000000000000000000000018 -S3154004AEF00000000000000000000000000000000008 -S3154004AF0000000000000000000000000000000000F7 -S3154004AF1000000000000000000000000000000000E7 -S3154004AF2000000000000000000000000000000000D7 -S3154004AF3000000000000000000000000000000000C7 -S3154004AF4000000000000000000000000000000000B7 -S3154004AF5000000000000000000000000000000000A7 -S3154004AF600000000000000000000000000000000097 -S3154004AF700000000000000000000000000000000087 -S3154004AF800000000000000000000000000000000077 -S3154004AF900000000000000000000000000000000067 -S3154004AFA00000000000000000000000000000000057 -S3154004AFB00000000000000000000000000000000047 -S3154004AFC00000000000000000000000000000000037 -S3154004AFD00000000000000000000000000000000027 -S3154004AFE00000000000000000000000000000000017 -S3154004AFF00000000000000000000000000000000007 -S3154004B00000000000000000000000000000000000F6 -S3154004B01000000000000000000000000000000000E6 -S3154004B02000000000000000000000000000000000D6 -S3154004B03000000000000000000000000000000000C6 -S3154004B04000000000000000000000000000000000B6 -S3154004B05000000000000000000000000000000000A6 -S3154004B0600000000000000000000000000000000096 -S3154004B0700000000000000000000000000000000086 -S3154004B0800000000000000000000000000000000076 -S3154004B0900000000000000000000000000000000066 -S3154004B0A00000000000000000000000000000000056 -S3154004B0B00000000000000000000000000000000046 -S3154004B0C00000000000000000000000000000000036 -S3154004B0D00000000000000000000000000000000026 -S3154004B0E00000000000000000000000000000000016 -S3154004B0F00000000000000000000000000000000006 -S3154004B10000000000000000000000000000000000F5 -S3154004B11000000000000000000000000000000000E5 -S3154004B12000000000000000000000000000000000D5 -S3154004B13000000000000000000000000000000000C5 -S3154004B14000000000000000000000000000000000B5 -S3154004B15000000000000000000000000000000000A5 -S3154004B1600000000000000000000000000000000095 -S3154004B1700000000000000000000000000000000085 -S3154004B1800000000000000000000000000000000075 -S3154004B1900000000000000000000000000000000065 -S3154004B1A00000000000000000000000000000000055 -S3154004B1B00000000000000000000000000000000045 -S3154004B1C00000000000000000000000000000000035 -S3154004B1D00000000000000000000000000000000025 -S3154004B1E00000000000000000000000000000000015 -S3154004B1F00000000000000000000000000000000005 -S3154004B20000000000000000000000000000000000F4 -S3154004B21000000000000000000000000000000000E4 -S3154004B22000000000000000000000000000000000D4 -S3154004B23000000000000000000000000000000000C4 -S3154004B24000000000000000000000000000000000B4 -S3154004B25000000000000000000000000000000000A4 -S3154004B2600000000000000000000000000000000094 -S3154004B2700000000000000000000000000000000084 -S3154004B2800000000000000000000000000000000074 -S3154004B2900000000000000000000000000000000064 -S3154004B2A00000000000000000000000000000000054 -S3154004B2B00000000000000000000000000000000044 -S3154004B2C00000000000000000000000000000000034 -S3154004B2D00000000000000000000000000000000024 -S3154004B2E00000000000000000000000000000000014 -S3154004B2F00000000000000000000000000000000004 -S3154004B30000000000000000000000000000000000F3 -S3154004B31000000000000000000000000000000000E3 -S3154004B32000000000000000000000000000000000D3 -S3154004B33000000000000000000000000000000000C3 -S3154004B34000000000000000000000000000000000B3 -S3154004B35000000000000000000000000000000000A3 -S3154004B3600000000000000000000000000000000093 -S3154004B3700000000000000000000000000000000083 -S3154004B3800000000000000000000000000000000073 -S3154004B3900000000000000000000000000000000063 -S3154004B3A00000000000000000000000000000000053 -S3154004B3B00000000000000000000000000000000043 -S3154004B3C00000000000000000000000000000000033 -S3154004B3D00000000000000000000000000000000023 -S3154004B3E00000000000000000000000000000000013 -S3154004B3F00000000000000000000000000000000003 -S3154004B40000000000000000000000000000000000F2 -S3154004B41000000000000000000000000000000000E2 -S3154004B42000000000000000000000000000000000D2 -S3154004B43000000000000000000000000000000000C2 -S3154004B44000000000000000000000000000000000B2 -S3154004B45000000000000000000000000000000000A2 -S3154004B4600000000000000000000000000000000092 -S3154004B4700000000000000000000000000000000082 -S3154004B4800000000000000000000000000000000072 -S3154004B4900000000000000000000000000000000062 -S3154004B4A00000000000000000000000000000000052 -S3154004B4B00000000000000000000000000000000042 -S3154004B4C00000000000000000000000000000000032 -S3154004B4D00000000000000000000000000000000022 -S3154004B4E00000000000000000000000000000000012 -S3154004B4F00000000000000000000000000000000002 -S3154004B50000000000000000000000000000000000F1 -S3154004B51000000000000000000000000000000000E1 -S3154004B52000000000000000000000000000000000D1 -S3154004B53000000000000000000000000000000000C1 -S3154004B54000000000000000000000000000000000B1 -S3154004B55000000000000000000000000000000000A1 -S3154004B5600000000000000000000000000000000091 -S3154004B5700000000000000000000000000000000081 -S3154004B5800000000000000000000000000000000071 -S3154004B5900000000000000000000000000000000061 -S3154004B5A00000000000000000000000000000000051 -S3154004B5B00000000000000000000000000000000041 -S3154004B5C00000000000000000000000000000000031 -S3154004B5D00000000000000000000000000000000021 -S3154004B5E00000000000000000000000000000000011 -S3154004B5F00000000000000000000000000000000001 -S3154004B60000000000000000000000000000000000F0 -S3154004B61000000000000000000000000000000000E0 -S3154004B62000000000000000000000000000000000D0 -S3154004B63000000000000000000000000000000000C0 -S3154004B64000000000000000000000000000000000B0 -S3154004B65000000000000000000000000000000000A0 -S3154004B6600000000000000000000000000000000090 -S3154004B6700000000000000000000000000000000080 -S3154004B6800000000000000000000000000000000070 -S3154004B6900000000000000000000000000000000060 -S3154004B6A00000000000000000000000000000000050 -S3154004B6B00000000000000000000000000000000040 -S3154004B6C00000000000000000000000000000000030 -S3154004B6D00000000000000000000000000000000020 -S3154004B6E00000000000000000000000000000000010 -S3154004B6F00000000000000000000000000000000000 -S3154004B70000000000000000000000000000000000EF -S3154004B71000000000000000000000000000000000DF -S3154004B72000000000000000000000000000000000CF -S3154004B73000000000000000000000000000000000BF -S3154004B74000000000000000000000000000000000AF -S3154004B750000000000000000000000000000000009F -S3154004B760000000000000000000000000000000008F -S3154004B770000000000000000000000000000000007F -S3154004B780000000000000000000000000000000006F -S3154004B790000000000000000000000000000000005F -S3154004B7A0000000000000000000000000000000004F -S3154004B7B0000000000000000000000000000000003F -S3154004B7C0000000000000000000000000000000002F -S3154004B7D0000000000000000000000000000000001F -S3154004B7E0000000000000000000000000000000000F -S3154004B7F000000000000000000000000000000000FF -S3154004B80000000000000000000000000000000000EE -S3154004B81000000000000000000000000000000000DE -S3154004B82000000000000000000000000000000000CE -S3154004B83000000000000000000000000000000000BE -S3154004B84000000000000000000000000000000000AE -S3154004B850000000000000000000000000000000009E -S3154004B860000000000000000000000000000000008E -S3154004B870000000000000000000000000000000007E -S3154004B880000000000000000000000000000000006E -S3154004B890000000000000000000000000000000005E -S3154004B8A0000000000000000000000000000000004E -S3154004B8B0000000000000000000000000000000003E -S3154004B8C0000000000000000000000000000000002E -S3154004B8D0000000000000000000000000000000001E -S3154004B8E0000000000000000000000000000000000E -S3154004B8F000000000000000000000000000000000FE -S3154004B90000000000000000000000000000000000ED -S3154004B91000000000000000000000000000000000DD -S3154004B92000000000000000000000000000000000CD -S3154004B93000000000000000000000000000000000BD -S3154004B94000000000000000000000000000000000AD -S3154004B950000000000000000000000000000000009D -S3154004B960000000000000000000000000000000008D -S3154004B970000000000000000000000000000000007D -S3154004B980000000000000000000000000000000006D -S3154004B990000000000000000000000000000000005D -S3154004B9A0000000000000000000000000000000004D -S3154004B9B0000000000000000000000000000000003D -S3154004B9C0000000000000000000000000000000002D -S3154004B9D0000000000000000000000000000000001D -S3154004B9E0000000000000000000000000000000000D -S3154004B9F000000000000000000000000000000000FD -S3154004BA0000000000000000000000000000000000EC -S3154004BA1000000000000000000000000000000000DC -S3154004BA2000000000000000000000000000000000CC -S3154004BA3000000000000000000000000000000000BC -S3154004BA4000000000000000000000000000000000AC -S3154004BA50000000000000000000000000000000009C -S3154004BA60000000000000000000000000000000008C -S3154004BA70000000000000000000000000000000007C -S3154004BA80000000000000000000000000000000006C -S3154004BA90000000000000000000000000000000005C -S3154004BAA0000000000000000000000000000000004C -S3154004BAB0000000000000000000000000000000003C -S3154004BAC0000000000000000000000000000000002C -S3154004BAD0000000000000000000000000000000001C -S3154004BAE0000000000000000000000000000000000C -S3154004BAF000000000000000000000000000000000FC -S3154004BB0000000000000000000000000000000000EB -S3154004BB1000000000000000000000000000000000DB -S3154004BB2000000000000000000000000000000000CB -S3154004BB3000000000000000000000000000000000BB -S3154004BB4000000000000000000000000000000000AB -S3154004BB50000000000000000000000000000000009B -S3154004BB60000000000000000000000000000000008B -S3154004BB70000000000000000000000000000000007B -S3154004BB80000000000000000000000000000000006B -S3154004BB90000000000000000000000000000000005B -S3154004BBA0000000000000000000000000000000004B -S3154004BBB0000000000000000000000000000000003B -S3154004BBC0000000000000000000000000000000002B -S3154004BBD0000000000000000000000000000000001B -S3154004BBE0000000000000000000000000000000000B -S3154004BBF000000000000000000000000000000000FB -S3154004BC0000000000000000000000000000000000EA -S3154004BC1000000000000000000000000000000000DA -S3154004BC2000000000000000000000000000000000CA -S3154004BC3000000000000000000000000000000000BA -S3154004BC4000000000000000000000000000000000AA -S3154004BC50000000000000000000000000000000009A -S3154004BC60000000000000000000000000000000008A -S3154004BC70000000000000000000000000000000007A -S3154004BC80000000000000000000000000000000006A -S3154004BC90000000000000000000000000000000005A -S3154004BCA0000000000000000000000000000000004A -S3154004BCB0000000000000000000000000000000003A -S3154004BCC0000000000000000000000000000000002A -S3154004BCD0000000000000000000000000000000001A -S3154004BCE0000000000000000000000000000000000A -S3154004BCF000000000000000000000000000000000FA -S3154004BD0000000000000000000000000000000000E9 -S3154004BD1000000000000000000000000000000000D9 -S3154004BD2000000000000000000000000000000000C9 -S3154004BD3000000000000000000000000000000000B9 -S3154004BD4000000000000000000000000000000000A9 -S3154004BD500000000000000000000000000000000099 -S3154004BD600000000000000000000000000000000089 -S3154004BD700000000000000000000000000000000079 -S3154004BD800000000000000000000000000000000069 -S3154004BD900000000000000000000000000000000059 -S3154004BDA00000000000000000000000000000000049 -S3154004BDB00000000000000000000000000000000039 -S3154004BDC00000000000000000000000000000000029 -S3154004BDD00000000000000000000000000000000019 -S3154004BDE00000000000000000000000000000000009 -S3154004BDF000000000000000000000000000000000F9 -S3154004BE0000000000000000000000000000000000E8 -S3154004BE1000000000000000000000000000000000D8 -S3154004BE2000000000000000000000000000000000C8 -S3154004BE3000000000000000000000000000000000B8 -S3154004BE4000000000000000000000000000000000A8 -S3154004BE500000000000000000000000000000000098 -S3154004BE600000000000000000000000000000000088 -S3154004BE700000000000000000000000000000000078 -S3154004BE800000000000000000000000000000000068 -S3154004BE900000000000000000000000000000000058 -S3154004BEA00000000000000000000000000000000048 -S3154004BEB00000000000000000000000000000000038 -S3154004BEC00000000000000000000000000000000028 -S3154004BED00000000000000000000000000000000018 -S3154004BEE00000000000000000000000000000000008 -S3154004BEF000000000000000000000000000000000F8 -S3154004BF0000000000000000000000000000000000E7 -S3154004BF1000000000000000000000000000000000D7 -S3154004BF2000000000000000000000000000000000C7 -S3154004BF3000000000000000000000000000000000B7 -S3154004BF4000000000000000000000000000000000A7 -S3154004BF500000000000000000000000000000000097 -S3154004BF600000000000000000000000000000000087 -S3154004BF700000000000000000000000000000000077 -S3154004BF800000000000000000000000000000000067 -S3154004BF900000000000000000000000000000000057 -S3154004BFA00000000000000000000000000000000047 -S3154004BFB00000000000000000000000000000000037 -S3154004BFC00000000000000000000000000000000027 -S3154004BFD00000000000000000000000000000000017 -S3154004BFE00000000000000000000000000000000007 -S3154004BFF000000000000000000000000000000000F7 -S3154004C00000000000000000000000000000000000E6 -S3154004C01000000000000000000000000000000000D6 -S3154004C02000000000000000000000000000000000C6 -S3154004C03000000000000000000000000000000000B6 -S3154004C04000000000000000000000000000000000A6 -S3154004C0500000000000000000000000000000000096 -S3154004C0600000000000000000000000000000000086 -S3154004C0700000000000000000000000000000000076 -S3154004C0800000000000000000000000000000000066 -S3154004C0900000000000000000000000000000000056 -S3154004C0A00000000000000000000000000000000046 -S3154004C0B00000000000000000000000000000000036 -S3154004C0C00000000000000000000000000000000026 -S3154004C0D00000000000000000000000000000000016 -S3154004C0E00000000000000000000000000000000006 -S3154004C0F000000000000000000000000000000000F6 -S3154004C10000000000000000000000000000000000E5 -S3154004C11000000000000000000000000000000000D5 -S3154004C12000000000000000000000000000000000C5 -S3154004C13000000000000000000000000000000000B5 -S3154004C14000000000000000000000000000000000A5 -S3154004C1500000000000000000000000000000000095 -S3154004C1600000000000000000000000000000000085 -S3154004C1700000000000000000000000000000000075 -S3154004C1800000000000000000000000000000000065 -S3154004C1900000000000000000000000000000000055 -S3154004C1A00000000000000000000000000000000045 -S3154004C1B00000000000000000000000000000000035 -S3154004C1C00000000000000000000000000000000025 -S3154004C1D00000000000000000000000000000000015 -S3154004C1E00000000000000000000000000000000005 -S3154004C1F000000000000000000000000000000000F5 -S3154004C20000000000000000000000000000000000E4 -S3154004C21000000000000000000000000000000000D4 -S3154004C22000000000000000000000000000000000C4 -S3154004C23000000000000000000000000000000000B4 -S3154004C24000000000000000000000000000000000A4 -S3154004C2500000000000000000000000000000000094 -S3154004C2600000000000000000000000000000000084 -S3154004C2700000000000000000000000000000000074 -S3154004C2800000000000000000000000000000000064 -S3154004C2900000000000000000000000000000000054 -S3154004C2A00000000000000000000000000000000044 -S3154004C2B00000000000000000000000000000000034 -S3154004C2C00000000000000000000000000000000024 -S3154004C2D00000000000000000000000000000000014 -S3154004C2E00000000000000000000000000000000004 -S3154004C2F000000000000000000000000000000000F4 -S3154004C30000000000000000000000000000000000E3 -S3154004C31000000000000000000000000000000000D3 -S3154004C32000000000000000000000000000000000C3 -S3154004C33000000000000000000000000000000000B3 -S3154004C34000000000000000000000000000000000A3 -S3154004C3500000000000000000000000000000000093 -S3154004C3600000000000000000000000000000000083 -S3154004C3700000000000000000000000000000000073 -S3154004C3800000000000000000000000000000000063 -S3154004C3900000000000000000000000000000000053 -S3154004C3A00000000000000000000000000000000043 -S3154004C3B00000000000000000000000000000000033 -S3154004C3C00000000000000000000000000000000023 -S3154004C3D00000000000000000000000000000000013 -S3154004C3E00000000000000000000000000000000003 -S3154004C3F000000000000000000000000000000000F3 -S3154004C40000000000000000000000000000000000E2 -S3154004C41000000000000000000000000000000000D2 -S3154004C42000000000000000000000000000000000C2 -S3154004C43000000000000000000000000000000000B2 -S3154004C44000000000000000000000000000000000A2 -S3154004C4500000000000000000000000000000000092 -S3154004C4600000000000000000000000000000000082 -S3154004C4700000000000000000000000000000000072 -S3154004C4800000000000000000000000000000000062 -S3154004C4900000000000000000000000000000000052 -S3154004C4A00000000000000000000000000000000042 -S3154004C4B00000000000000000000000000000000032 -S3154004C4C00000000000000000000000000000000022 -S3154004C4D00000000000000000000000000000000012 -S3154004C4E00000000000000000000000000000000002 -S3154004C4F000000000000000000000000000000000F2 -S3154004C50000000000000000000000000000000000E1 -S3154004C51000000000000000000000000000000000D1 -S3154004C52000000000000000000000000000000000C1 -S3154004C53000000000000000000000000000000000B1 -S3154004C54000000000000000000000000000000000A1 -S3154004C5500000000000000000000000000000000091 -S3154004C5600000000000000000000000000000000081 -S3154004C5700000000000000000000000000000000071 -S3154004C5800000000000000000000000000000000061 -S3154004C5900000000000000000000000000000000051 -S3154004C5A00000000000000000000000000000000041 -S3154004C5B00000000000000000000000000000000031 -S3154004C5C00000000000000000000000000000000021 -S3154004C5D00000000000000000000000000000000011 -S3154004C5E00000000000000000000000000000000001 -S3154004C5F000000000000000000000000000000000F1 -S3154004C60000000000000000000000000000000000E0 -S3154004C61000000000000000000000000000000000D0 -S3154004C62000000000000000000000000000000000C0 -S3154004C63000000000000000000000000000000000B0 -S3154004C64000000000000000000000000000000000A0 -S3154004C6500000000000000000000000000000000090 -S3154004C6600000000000000000000000000000000080 -S3154004C6700000000000000000000000000000000070 -S3154004C6800000000000000000000000000000000060 -S3154004C6900000000000000000000000000000000050 -S3154004C6A00000000000000000000000000000000040 -S3154004C6B00000000000000000000000000000000030 -S3154004C6C00000000000000000000000000000000020 -S3154004C6D00000000000000000000000000000000010 -S3154004C6E00000000000000000000000000000000000 -S3154004C6F000000000000000000000000000000000F0 -S3154004C70000000000000000000000000000000000DF -S3154004C71000000000000000000000000000000000CF -S3154004C72000000000000000000000000000000000BF -S3154004C73000000000000000000000000000000000AF -S3154004C740000000000000000000000000000000009F -S3154004C750000000000000000000000000000000008F -S3154004C760000000000000000000000000000000007F -S3154004C770000000000000000000000000000000006F -S3154004C780000000000000000000000000000000005F -S3154004C790000000000000000000000000000000004F -S3154004C7A0000000000000000000000000000000003F -S3154004C7B0000000000000000000000000000000002F -S3154004C7C0000000000000000000000000000000001F -S3154004C7D0000000000000000000000000000000000F -S3154004C7E000000000000000000000000000000000FF -S3154004C7F000000000000000000000000000000000EF -S3154004C80000000000000000000000000000000000DE -S3154004C81000000000000000000000000000000000CE -S3154004C82000000000000000000000000000000000BE -S3154004C83000000000000000000000000000000000AE -S3154004C840000000000000000000000000000000009E -S3154004C850000000000000000000000000000000008E -S3154004C860000000000000000000000000000000007E -S3154004C870000000000000000000000000000000006E -S3154004C880000000000000000000000000000000005E -S3154004C890000000000000000000000000000000004E -S3154004C8A0000000000000000000000000000000003E -S3154004C8B0000000000000000000000000000000002E -S3154004C8C0000000000000000000000000000000001E -S3154004C8D0000000000000000000000000000000000E -S3154004C8E000000000000000000000000000000000FE -S3154004C8F000000000000000000000000000000000EE -S3154004C90000000000000000000000000000000000DD -S3154004C91000000000000000000000000000000000CD -S3154004C92000000000000000000000000000000000BD -S3154004C93000000000000000000000000000000000AD -S3154004C940000000000000000000000000000000009D -S3154004C950000000000000000000000000000000008D -S3154004C960000000000000000000000000000000007D -S3154004C970000000000000000000000000000000006D -S3154004C980000000000000000000000000000000005D -S3154004C990000000000000000000000000000000004D -S3154004C9A0000000000000000000000000000000003D -S3154004C9B0000000000000000000000000000000002D -S3154004C9C0000000000000000000000000000000001D -S3154004C9D0000000000000000000000000000000000D -S3154004C9E000000000000000000000000000000000FD -S3154004C9F000000000000000000000000000000000ED -S3154004CA0000000000000000000000000000000000DC -S3154004CA1000000000000000000000000000000000CC -S3154004CA2000000000000000000000000000000000BC -S3154004CA3000000000000000000000000000000000AC -S3154004CA40000000000000000000000000000000009C -S3154004CA50000000000000000000000000000000008C -S3154004CA60000000000000000000000000000000007C -S3154004CA70000000000000000000000000000000006C -S3154004CA80000000000000000000000000000000005C -S3154004CA90000000000000000000000000000000004C -S3154004CAA0000000000000000000000000000000003C -S3154004CAB0000000000000000000000000000000002C -S3154004CAC0000000000000000000000000000000001C -S3154004CAD0000000000000000000000000000000000C -S3154004CAE000000000000000000000000000000000FC -S3154004CAF000000000000000000000000000000000EC -S3154004CB0000000000000000000000000000000000DB -S3154004CB1000000000000000000000000000000000CB -S3154004CB2000000000000000000000000000000000BB -S3154004CB3000000000000000000000000000000000AB -S3154004CB40000000000000000000000000000000009B -S3154004CB50000000000000000000000000000000008B -S3154004CB60000000000000000000000000000000007B -S3154004CB70000000000000000000000000000000006B -S3154004CB80000000000000000000000000000000005B -S3154004CB90000000000000000000000000000000004B -S3154004CBA0000000000000000000000000000000003B -S3154004CBB0000000000000000000000000000000002B -S3154004CBC0000000000000000000000000000000001B -S3154004CBD0000000000000000000000000000000000B -S3154004CBE000000000000000000000000000000000FB -S3154004CBF000000000000000000000000000000000EB -S3154004CC0000000000000000000000000000000000DA -S3154004CC1000000000000000000000000000000000CA -S3154004CC2000000000000000000000000000000000BA -S3154004CC3000000000000000000000000000000000AA -S3154004CC40000000000000000000000000000000009A -S3154004CC50000000000000000000000000000000008A -S3154004CC60000000000000000000000000000000007A -S3154004CC70000000000000000000000000000000006A -S3154004CC80000000000000000000000000000000005A -S3154004CC90000000000000000000000000000000004A -S3154004CCA0000000000000000000000000000000003A -S3154004CCB0000000000000000000000000000000002A -S3154004CCC0000000000000000000000000000000001A -S3154004CCD0000000000000000000000000000000000A -S3154004CCE000000000000000000000000000000000FA -S3154004CCF000000000000000000000000000000000EA -S3154004CD0000000000000000000000000000000000D9 -S3154004CD1000000000000000000000000000000000C9 -S3154004CD2000000000000000000000000000000000B9 -S3154004CD3000000000000000000000000000000000A9 -S3154004CD400000000000000000000000000000000099 -S3154004CD500000000000000000000000000000000089 -S3154004CD600000000000000000000000000000000079 -S3154004CD700000000000000000000000000000000069 -S3154004CD800000000000000000000000000000000059 -S3154004CD900000000000000000000000000000000049 -S3154004CDA00000000000000000000000000000000039 -S3154004CDB00000000000000000000000000000000029 -S3154004CDC00000000000000000000000000000000019 -S3154004CDD00000000000000000000000000000000009 -S3154004CDE000000000000000000000000000000000F9 -S3154004CDF000000000000000000000000000000000E9 -S3154004CE0000000000000000000000000000000000D8 -S3154004CE1000000000000000000000000000000000C8 -S3154004CE2000000000000000000000000000000000B8 -S3154004CE3000000000000000000000000000000000A8 -S3154004CE400000000000000000000000000000000098 -S3154004CE500000000000000000000000000000000088 -S3154004CE600000000000000000000000000000000078 -S3154004CE700000000000000000000000000000000068 -S3154004CE800000000000000000000000000000000058 -S3154004CE900000000000000000000000000000000048 -S3154004CEA00000000000000000000000000000000038 -S3154004CEB00000000000000000000000000000000028 -S3154004CEC00000000000000000000000000000000018 -S3154004CED00000000000000000000000000000000008 -S3154004CEE000000000000000000000000000000000F8 -S3154004CEF000000000000000000000000000000000E8 -S3154004CF0000000000000000000000000000000000D7 -S3154004CF1000000000000000000000000000000000C7 -S3154004CF2000000000000000000000000000000000B7 -S3154004CF3000000000000000000000000000000000A7 -S3154004CF400000000000000000000000000000000097 -S3154004CF500000000000000000000000000000000087 -S3154004CF600000000000000000000000000000000077 -S3154004CF700000000000000000000000000000000067 -S3154004CF800000000000000000000000000000000057 -S3154004CF900000000000000000000000000000000047 -S3154004CFA00000000000000000000000000000000037 -S3154004CFB00000000000000000000000000000000027 -S3154004CFC00000000000000000000000000000000017 -S3154004CFD00000000000000000000000000000000007 -S3154004CFE000000000000000000000000000000000F7 -S3154004CFF000000000000000000000000000000000E7 -S3154004D00000000000000000000000000000000000D6 -S3154004D01000000000000000000000000000000000C6 -S3154004D02000000000000000000000000000000000B6 -S3154004D03000000000000000000000000000000000A6 -S3154004D0400000000000000000000000000000000096 -S3154004D0500000000000000000000000000000000086 -S3154004D0600000000000000000000000000000000076 -S3154004D0700000000000000000000000000000000066 -S3154004D0800000000000000000000000000000000056 -S3154004D0900000000000000000000000000000000046 -S3154004D0A00000000000000000000000000000000036 -S3154004D0B00000000000000000000000000000000026 -S3154004D0C00000000000000000000000000000000016 -S3154004D0D00000000000000000000000000000000006 -S3154004D0E000000000000000000000000000000000F6 -S3154004D0F000000000000000000000000000000000E6 -S3154004D10000000000000000000000000000000000D5 -S3154004D11000000000000000000000000000000000C5 -S3154004D12000000000000000000000000000000000B5 -S3154004D13000000000000000000000000000000000A5 -S3154004D1400000000000000000000000000000000095 -S3154004D1500000000000000000000000000000000085 -S3154004D1600000000000000000000000000000000075 -S3154004D1700000000000000000000000000000000065 -S3154004D1800000000000000000000000000000000055 -S3154004D1900000000000000000000000000000000045 -S3154004D1A00000000000000000000000000000000035 -S3154004D1B00000000000000000000000000000000025 -S3154004D1C00000000000000000000000000000000015 -S3154004D1D00000000000000000000000000000000005 -S3154004D1E000000000000000000000000000000000F5 -S3154004D1F000000000000000000000000000000000E5 -S3154004D20000000000000000000000000000000000D4 -S3154004D21000000000000000000000000000000000C4 -S3154004D22000000000000000000000000000000000B4 -S3154004D23000000000000000000000000000000000A4 -S3154004D2400000000000000000000000000000000094 -S3154004D2500000000000000000000000000000000084 -S3154004D2600000000000000000000000000000000074 -S3154004D2700000000000000000000000000000000064 -S3154004D2800000000000000000000000000000000054 -S3154004D2900000000000000000000000000000000044 -S3154004D2A00000000000000000000000000000000034 -S3154004D2B00000000000000000000000000000000024 -S3154004D2C00000000000000000000000000000000014 -S3154004D2D00000000000000000000000000000000004 -S3154004D2E000000000000000000000000000000000F4 -S3154004D2F000000000000000000000000000000000E4 -S3154004D30000000000000000000000000000000000D3 -S3154004D31000000000000000000000000000000000C3 -S3154004D32000000000000000000000000000000000B3 -S3154004D33000000000000000000000000000000000A3 -S3154004D3400000000000000000000000000000000093 -S3154004D3500000000000000000000000000000000083 -S3154004D3600000000000000000000000000000000073 -S3154004D3700000000000000000000000000000000063 -S3154004D3800000000000000000000000000000000053 -S3154004D3900000000000000000000000000000000043 -S3154004D3A00000000000000000000000000000000033 -S3154004D3B00000000000000000000000000000000023 -S3154004D3C00000000000000000000000000000000013 -S3154004D3D00000000000000000000000000000000003 -S3154004D3E000000000000000000000000000000000F3 -S3154004D3F000000000000000000000000000000000E3 -S3154004D40000000000000000000000000000000000D2 -S3154004D41000000000000000000000000000000000C2 -S3154004D42000000000000000000000000000000000B2 -S3154004D43000000000000000000000000000000000A2 -S3154004D4400000000000000000000000000000000092 -S3154004D4500000000000000000000000000000000082 -S3154004D4600000000000000000000000000000000072 -S3154004D4700000000000000000000000000000000062 -S3154004D4800000000000000000000000000000000052 -S3154004D4900000000000000000000000000000000042 -S3154004D4A00000000000000000000000000000000032 -S3154004D4B00000000000000000000000000000000022 -S3154004D4C00000000000000000000000000000000012 -S3154004D4D00000000000000000000000000000000002 -S3154004D4E000000000000000000000000000000000F2 -S3154004D4F000000000000000000000000000000000E2 -S3154004D50000000000000000000000000000000000D1 -S3154004D51000000000000000000000000000000000C1 -S3154004D52000000000000000000000000000000000B1 -S3154004D53000000000000000000000000000000000A1 -S3154004D5400000000000000000000000000000000091 -S3154004D5500000000000000000000000000000000081 -S3154004D5600000000000000000000000000000000071 -S3154004D5700000000000000000000000000000000061 -S3154004D5800000000000000000000000000000000051 -S3154004D5900000000000000000000000000000000041 -S3154004D5A00000000000000000000000000000000031 -S3154004D5B00000000000000000000000000000000021 -S3154004D5C00000000000000000000000000000000011 -S3154004D5D00000000000000000000000000000000001 -S3154004D5E000000000000000000000000000000000F1 -S3154004D5F000000000000000000000000000000000E1 -S3154004D60000000000000000000000000000000000D0 -S3154004D61000000000000000000000000000000000C0 -S3154004D62000000000000000000000000000000000B0 -S3154004D63000000000000000000000000000000000A0 -S3154004D6400000000000000000000000000000000090 -S3154004D6500000000000000000000000000000000080 -S3154004D6600000000000000000000000000000000070 -S3154004D6700000000000000000000000000000000060 -S3154004D6800000000000000000000000000000000050 -S3154004D6900000000000000000000000000000000040 -S3154004D6A00000000000000000000000000000000030 -S3154004D6B00000000000000000000000000000000020 -S3154004D6C00000000000000000000000000000000010 -S3154004D6D00000000000000000000000000000000000 -S3154004D6E000000000000000000000000000000000F0 -S3154004D6F000000000000000000000000000000000E0 -S3154004D70000000000000000000000000000000000CF -S3154004D71000000000000000000000000000000000BF -S3154004D72000000000000000000000000000000000AF -S3154004D730000000000000000000000000000000009F -S3154004D740000000000000000000000000000000008F -S3154004D750000000000000000000000000000000007F -S3154004D760000000000000000000000000000000006F -S3154004D770000000000000000000000000000000005F -S3154004D780000000000000000000000000000000004F -S3154004D790000000000000000000000000000000003F -S3154004D7A0000000000000000000000000000000002F -S3154004D7B0000000000000000000000000000000001F -S3154004D7C0000000000000000000000000000000000F -S3154004D7D000000000000000000000000000000000FF -S3154004D7E000000000000000000000000000000000EF -S3154004D7F000000000000000000000000000000000DF -S3154004D80000000000000000000000000000000000CE -S3154004D81000000000000000000000000000000000BE -S3154004D82000000000000000000000000000000000AE -S3154004D830000000000000000000000000000000009E -S3154004D840000000000000000000000000000000008E -S3154004D850000000000000000000000000000000007E -S3154004D860000000000000000000000000000000006E -S3154004D870000000000000000000000000000000005E -S3154004D880000000000000000000000000000000004E -S3154004D890000000000000000000000000000000003E -S3154004D8A0000000000000000000000000000000002E -S3154004D8B0000000000000000000000000000000001E -S3154004D8C0000000000000000000000000000000000E -S3154004D8D000000000000000000000000000000000FE -S3154004D8E000000000000000000000000000000000EE -S3154004D8F000000000000000000000000000000000DE -S3154004D90000000000000000000000000000000000CD -S3154004D91000000000000000000000000000000000BD -S3154004D92000000000000000000000000000000000AD -S3154004D930000000000000000000000000000000009D -S3154004D940000000000000000000000000000000008D -S3154004D950000000000000000000000000000000007D -S3154004D960000000000000000000000000000000006D -S3154004D970000000000000000000000000000000005D -S3154004D980000000000000000000000000000000004D -S3154004D990000000000000000000000000000000003D -S3154004D9A0000000000000000000000000000000002D -S3154004D9B0000000000000000000000000000000001D -S3154004D9C0000000000000000000000000000000000D -S3154004D9D000000000000000000000000000000000FD -S3154004D9E000000000000000000000000000000000ED -S3154004D9F000000000000000000000000000000000DD -S3154004DA0000000000000000000000000000000000CC -S3154004DA1000000000000000000000000000000000BC -S3154004DA2000000000000000000000000000000000AC -S3154004DA30000000000000000000000000000000009C -S3154004DA40000000000000000000000000000000008C -S3154004DA50000000000000000000000000000000007C -S3154004DA60000000000000000000000000000000006C -S3154004DA70000000000000000000000000000000005C -S3154004DA80000000000000000000000000000000004C -S3154004DA90000000000000000000000000000000003C -S3154004DAA0000000000000000000000000000000002C -S3154004DAB0000000000000000000000000000000001C -S3154004DAC0000000000000000000000000000000000C -S3154004DAD000000000000000000000000000000000FC -S3154004DAE000000000000000000000000000000000EC -S3154004DAF000000000000000000000000000000000DC -S3154004DB0000000000000000000000000000000000CB -S3154004DB1000000000000000000000000000000000BB -S3154004DB2000000000000000000000000000000000AB -S3154004DB30000000000000000000000000000000009B -S3154004DB40000000000000000000000000000000008B -S3154004DB50000000000000000000000000000000007B -S3154004DB60000000000000000000000000000000006B -S3154004DB70000000000000000000000000000000005B -S3154004DB80000000000000000000000000000000004B -S3154004DB90000000000000000000000000000000003B -S3154004DBA0000000000000000000000000000000002B -S3154004DBB0000000000000000000000000000000001B -S3154004DBC0000000000000000000000000000000000B -S3154004DBD000000000000000000000000000000000FB -S3154004DBE000000000000000000000000000000000EB -S3154004DBF000000000000000000000000000000000DB -S3154004DC0000000000000000000000000000000000CA -S3154004DC1000000000000000000000000000000000BA -S3154004DC2000000000000000000000000000000000AA -S3154004DC30000000000000000000000000000000009A -S3154004DC40000000000000000000000000000000008A -S3154004DC50000000000000000000000000000000007A -S3154004DC60000000000000000000000000000000006A -S3154004DC70000000000000000000000000000000005A -S3154004DC80000000000000000000000000000000004A -S3154004DC90000000000000000000000000000000003A -S3154004DCA0000000000000000000000000000000002A -S3154004DCB0000000000000000000000000000000001A -S3154004DCC0000000000000000000000000000000000A -S3154004DCD000000000000000000000000000000000FA -S3154004DCE000000000000000000000000000000000EA -S3154004DCF000000000000000000000000000000000DA -S3154004DD0000000000000000000000000000000000C9 -S3154004DD1000000000000000000000000000000000B9 -S3154004DD2000000000000000000000000000000000A9 -S3154004DD300000000000000000000000000000000099 -S3154004DD400000000000000000000000000000000089 -S3154004DD500000000000000000000000000000000079 -S3154004DD600000000000000000000000000000000069 -S3154004DD700000000000000000000000000000000059 -S3154004DD800000000000000000000000000000000049 -S3154004DD900000000000000000000000000000000039 -S3154004DDA00000000000000000000000000000000029 -S3154004DDB00000000000000000000000000000000019 -S3154004DDC00000000000000000000000000000000009 -S3154004DDD000000000000000000000000000000000F9 -S3154004DDE000000000000000000000000000000000E9 -S3154004DDF000000000000000000000000000000000D9 -S3154004DE0000000000000000000000000000000000C8 -S3154004DE1000000000000000000000000000000000B8 -S3154004DE2000000000000000000000000000000000A8 -S3154004DE300000000000000000000000000000000098 -S3154004DE400000000000000000000000000000000088 -S3154004DE500000000000000000000000000000000078 -S3154004DE600000000000000000000000000000000068 -S3154004DE700000000000000000000000000000000058 -S3154004DE800000000000000000000000000000000048 -S3154004DE900000000000000000000000000000000038 -S3154004DEA00000000000000000000000000000000028 -S3154004DEB00000000000000000000000000000000018 -S3154004DEC00000000000000000000000000000000008 -S3154004DED000000000000000000000000000000000F8 -S3154004DEE000000000000000000000000000000000E8 -S3154004DEF000000000000000000000000000000000D8 -S3154004DF0000000000000000000000000000000000C7 -S3154004DF1000000000000000000000000000000000B7 -S3154004DF2000000000000000000000000000000000A7 -S3154004DF300000000000000000000000000000000097 -S3154004DF400000000000000000000000000000000087 -S3154004DF500000000000000000000000000000000077 -S3154004DF600000000000000000000000000000000067 -S3154004DF700000000000000000000000000000000057 -S3154004DF800000000000000000000000000000000047 -S3154004DF900000000000000000000000000000000037 -S3154004DFA00000000000000000000000000000000027 -S3154004DFB00000000000000000000000000000000017 -S3154004DFC00000000000000000000000000000000007 -S3154004DFD000000000000000000000000000000000F7 -S3154004DFE000000000000000000000000000000000E7 -S3154004DFF000000000000000000000000000000000D7 -S3154004E00000000000000000000000000000000000C6 -S3154004E01000000000000000000000000000000000B6 -S3154004E02000000000000000000000000000000000A6 -S3154004E0300000000000000000000000000000000096 -S3154004E0400000000000000000000000000000000086 -S3154004E0500000000000000000000000000000000076 -S3154004E0600000000000000000000000000000000066 -S3154004E0700000000000000000000000000000000056 -S3154004E0800000000000000000000000000000000046 -S3154004E0900000000000000000000000000000000036 -S3154004E0A00000000000000000000000000000000026 -S3154004E0B00000000000000000000000000000000016 -S3154004E0C00000000000000000000000000000000006 -S3154004E0D000000000000000000000000000000000F6 -S3154004E0E000000000000000000000000000000000E6 -S3154004E0F000000000000000000000000000000000D6 -S3154004E10000000000000000000000000000000000C5 -S3154004E11000000000000000000000000000000000B5 -S3154004E12000000000000000000000000000000000A5 -S3154004E1300000000000000000000000000000000095 -S3154004E1400000000000000000000000000000000085 -S3154004E1500000000000000000000000000000000075 -S3154004E1600000000000000000000000000000000065 -S3154004E1700000000000000000000000000000000055 -S3154004E1800000000000000000000000000000000045 -S3154004E1900000000000000000000000000000000035 -S3154004E1A00000000000000000000000000000000025 -S3154004E1B00000000000000000000000000000000015 -S3154004E1C00000000000000000000000000000000005 -S3154004E1D000000000000000000000000000000000F5 -S3154004E1E000000000000000000000000000000000E5 -S3154004E1F000000000000000000000000000000000D5 -S3154004E20000000000000000000000000000000000C4 -S3154004E21000000000000000000000000000000000B4 -S3154004E22000000000000000000000000000000000A4 -S3154004E2300000000000000000000000000000000094 -S3154004E2400000000000000000000000000000000084 -S3154004E2500000000000000000000000000000000074 -S3154004E2600000000000000000000000000000000064 -S3154004E2700000000000000000000000000000000054 -S3154004E2800000000000000000000000000000000044 -S3154004E2900000000000000000000000000000000034 -S3154004E2A00000000000000000000000000000000024 -S3154004E2B00000000000000000000000000000000014 -S3154004E2C00000000000000000000000000000000004 -S3154004E2D000000000000000000000000000000000F4 -S3154004E2E000000000000000000000000000000000E4 -S3154004E2F000000000000000000000000000000000D4 -S3154004E30000000000000000000000000000000000C3 -S3154004E31000000000000000000000000000000000B3 -S3154004E32000000000000000000000000000000000A3 -S3154004E3300000000000000000000000000000000093 -S3154004E3400000000000000000000000000000000083 -S3154004E3500000000000000000000000000000000073 -S3154004E3600000000000000000000000000000000063 -S3154004E3700000000000000000000000000000000053 -S3154004E3800000000000000000000000000000000043 -S3154004E3900000000000000000000000000000000033 -S3154004E3A00000000000000000000000000000000023 -S3154004E3B00000000000000000000000000000000013 -S3154004E3C00000000000000000000000000000000003 -S3154004E3D000000000000000000000000000000000F3 -S3154004E3E000000000000000000000000000000000E3 -S3154004E3F000000000000000000000000000000000D3 -S3154004E40000000000000000000000000000000000C2 -S3154004E41000000000000000000000000000000000B2 -S3154004E42000000000000000000000000000000000A2 -S3154004E4300000000000000000000000000000000092 -S3154004E4400000000000000000000000000000000082 -S3154004E4500000000000000000000000000000000072 -S3154004E4600000000000000000000000000000000062 -S3154004E4700000000000000000000000000000000052 -S3154004E4800000000000000000000000000000000042 -S3154004E4900000000000000000000000000000000032 -S3154004E4A00000000000000000000000000000000022 -S3154004E4B00000000000000000000000000000000012 -S3154004E4C00000000000000000000000000000000002 -S3154004E4D000000000000000000000000000000000F2 -S3154004E4E000000000000000000000000000000000E2 -S3154004E4F000000000000000000000000000000000D2 -S3154004E50000000000000000000000000000000000C1 -S3154004E51000000000000000000000000000000000B1 -S3154004E52000000000000000000000000000000000A1 -S3154004E5300000000000000000000000000000000091 -S3154004E5400000000000000000000000000000000081 -S3154004E5500000000000000000000000000000000071 -S3154004E5600000000000000000000000000000000061 -S3154004E5700000000000000000000000000000000051 -S3154004E5800000000000000000000000000000000041 -S3154004E5900000000000000000000000000000000031 -S3154004E5A00000000000000000000000000000000021 -S3154004E5B00000000000000000000000000000000011 -S3154004E5C00000000000000000000000000000000001 -S3154004E5D000000000000000000000000000000000F1 -S3154004E5E000000000000000000000000000000000E1 -S3154004E5F000000000000000000000000000000000D1 -S3154004E60000000000000000000000000000000000C0 -S3154004E61000000000000000000000000000000000B0 -S3154004E62000000000000000000000000000000000A0 -S3154004E6300000000000000000000000000000000090 -S3154004E6400000000000000000000000000000000080 -S3154004E6500000000000000000000000000000000070 -S3154004E6600000000000000000000000000000000060 -S3154004E6700000000000000000000000000000000050 -S3154004E6800000000000000000000000000000000040 -S3154004E6900000000000000000000000000000000030 -S3154004E6A00000000000000000000000000000000020 -S3154004E6B00000000000000000000000000000000010 -S3154004E6C00000000000000000000000000000000000 -S3154004E6D000000000000000000000000000000000F0 -S3154004E6E000000000000000000000000000000000E0 -S3154004E6F000000000000000000000000000000000D0 -S3154004E70000000000000000000000000000000000BF -S3154004E71000000000000000000000000000000000AF -S3154004E720000000000000000000000000000000009F -S3154004E730000000000000000000000000000000008F -S3154004E740000000000000000000000000000000007F -S3154004E750000000000000000000000000000000006F -S3154004E760000000000000000000000000000000005F -S3154004E770000000000000000000000000000000004F -S3154004E780000000000000000000000000000000003F -S3154004E790000000000000000000000000000000002F -S3154004E7A0000000000000000000000000000000001F -S3154004E7B0000000000000000000000000000000000F -S3154004E7C000000000000000000000000000000000FF -S3154004E7D000000000000000000000000000000000EF -S3154004E7E000000000000000000000000000000000DF -S3154004E7F000000000000000000000000000000000CF -S3154004E80000000000000000000000000000000000BE -S3154004E81000000000000000000000000000000000AE -S3154004E820000000000000000000000000000000009E -S3154004E830000000000000000000000000000000008E -S3154004E840000000000000000000000000000000007E -S3154004E850000000000000000000000000000000006E -S3154004E860000000000000000000000000000000005E -S3154004E870000000000000000000000000000000004E -S3154004E880000000000000000000000000000000003E -S3154004E890000000000000000000000000000000002E -S3154004E8A0000000000000000000000000000000001E -S3154004E8B0000000000000000000000000000000000E -S3154004E8C000000000000000000000000000000000FE -S3154004E8D000000000000000000000000000000000EE -S3154004E8E000000000000000000000000000000000DE -S3154004E8F000000000000000000000000000000000CE -S3154004E90000000000000000000000000000000000BD -S3154004E91000000000000000000000000000000000AD -S3154004E920000000000000000000000000000000009D -S3154004E930000000000000000000000000000000008D -S3154004E940000000000000000000000000000000007D -S3154004E950000000000000000000000000000000006D -S3154004E960000000000000000000000000000000005D -S3154004E970000000000000000000000000000000004D -S3154004E980000000000000000000000000000000003D -S3154004E990000000000000000000000000000000002D -S3154004E9A0000000000000000000000000000000001D -S3154004E9B0000000000000000000000000000000000D -S3154004E9C000000000000000000000000000000000FD -S3154004E9D000000000000000000000000000000000ED -S3154004E9E000000000000000000000000000000000DD -S3154004E9F000000000000000000000000000000000CD -S3154004EA0000000000000000000000000000000000BC -S3154004EA1000000000000000000000000000000000AC -S3154004EA20000000000000000000000000000000009C -S3154004EA30000000000000000000000000000000008C -S3154004EA40000000000000000000000000000000007C -S3154004EA50000000000000000000000000000000006C -S3154004EA60000000000000000000000000000000005C -S3154004EA70000000000000000000000000000000004C -S3154004EA80000000000000000000000000000000003C -S3154004EA90000000000000000000000000000000002C -S3154004EAA0000000000000000000000000000000001C -S3154004EAB0000000000000000000000000000000000C -S3154004EAC000000000000000000000000000000000FC -S3154004EAD000000000000000000000000000000000EC -S3154004EAE000000000000000000000000000000000DC -S3154004EAF000000000000000000000000000000000CC -S3154004EB0000000000000000000000000000000000BB -S3154004EB1000000000000000000000000000000000AB -S3154004EB20000000000000000000000000000000009B -S3154004EB30000000000000000000000000000000008B -S3154004EB40000000000000000000000000000000007B -S3154004EB50000000000000000000000000000000006B -S3154004EB60000000000000000000000000000000005B -S3154004EB70000000000000000000000000000000004B -S3154004EB80000000000000000000000000000000003B -S3154004EB90000000000000000000000000000000002B -S3154004EBA0000000000000000000000000000000001B -S3154004EBB0000000000000000000000000000000000B -S3154004EBC000000000000000000000000000000000FB -S3154004EBD000000000000000000000000000000000EB -S3154004EBE000000000000000000000000000000000DB -S3154004EBF000000000000000000000000000000000CB -S3154004EC0000000000000000000000000000000000BA -S3154004EC1000000000000000000000000000000000AA -S3154004EC20000000000000000000000000000000009A -S3154004EC30000000000000000000000000000000008A -S3154004EC40000000000000000000000000000000007A -S3154004EC50000000000000000000000000000000006A -S3154004EC60000000000000000000000000000000005A -S3154004EC70000000000000000000000000000000004A -S3154004EC80000000000000000000000000000000003A -S3154004EC90000000000000000000000000000000002A -S3154004ECA0000000000000000000000000000000001A -S3154004ECB0000000000000000000000000000000000A -S3154004ECC000000000000000000000000000000000FA -S3154004ECD000000000000000000000000000000000EA -S3154004ECE000000000000000000000000000000000DA -S3154004ECF000000000000000000000000000000000CA -S3154004ED0000000000000000000000000000000000B9 -S3154004ED1000000000000000000000000000000000A9 -S3154004ED200000000000000000000000000000000099 -S3154004ED300000000000000000000000000000000089 -S3154004ED400000000000000000000000000000000079 -S3154004ED500000000000000000000000000000000069 -S3154004ED600000000000000000000000000000000059 -S3154004ED700000000000000000000000000000000049 -S3154004ED800000000000000000000000000000000039 -S3154004ED900000000000000000000000000000000029 -S3154004EDA00000000000000000000000000000000019 -S3154004EDB00000000000000000000000000000000009 -S3154004EDC000000000000000000000000000000000F9 -S3154004EDD000000000000000000000000000000000E9 -S3154004EDE000000000000000000000000000000000D9 -S3154004EDF000000000000000000000000000000000C9 -S3154004EE0000000000000000000000000000000000B8 -S3154004EE1000000000000000000000000000000000A8 -S3154004EE200000000000000000000000000000000098 -S3154004EE300000000000000000000000000000000088 -S3154004EE400000000000000000000000000000000078 -S3154004EE500000000000000000000000000000000068 -S3154004EE600000000000000000000000000000000058 -S3154004EE700000000000000000000000000000000048 -S3154004EE800000000000000000000000000000000038 -S3154004EE900000000000000000000000000000000028 -S3154004EEA00000000000000000000000000000000018 -S3154004EEB00000000000000000000000000000000008 -S3154004EEC000000000000000000000000000000000F8 -S3154004EED000000000000000000000000000000000E8 -S3154004EEE000000000000000000000000000000000D8 -S3154004EEF000000000000000000000000000000000C8 -S3154004EF0000000000000000000000000000000000B7 -S3154004EF1000000000000000000000000000000000A7 -S3154004EF200000000000000000000000000000000097 -S3154004EF300000000000000000000000000000000087 -S3154004EF400000000000000000000000000000000077 -S3154004EF500000000000000000000000000000000067 -S3154004EF600000000000000000000000000000000057 -S3154004EF700000000000000000000000000000000047 -S3154004EF800000000000000000000000000000000037 -S3154004EF900000000000000000000000000000000027 -S3154004EFA00000000000000000000000000000000017 -S3154004EFB00000000000000000000000000000000007 -S3154004EFC000000000000000000000000000000000F7 -S3154004EFD000000000000000000000000000000000E7 -S3154004EFE000000000000000000000000000000000D7 -S3154004EFF000000000000000000000000000000000C7 -S3154004F00000000000000000000000000000000000B6 -S3154004F01000000000000000000000000000000000A6 -S3154004F0200000000000000000000000000000000096 -S3154004F0300000000000000000000000000000000086 -S3154004F0400000000000000000000000000000000076 -S3154004F0500000000000000000000000000000000066 -S3154004F0600000000000000000000000000000000056 -S3154004F0700000000000000000000000000000000046 -S3154004F0800000000000000000000000000000000036 -S3154004F0900000000000000000000000000000000026 -S3154004F0A00000000000000000000000000000000016 -S3154004F0B00000000000000000000000000000000006 -S3154004F0C000000000000000000000000000000000F6 -S3154004F0D000000000000000000000000000000000E6 -S3154004F0E000000000000000000000000000000000D6 -S3154004F0F000000000000000000000000000000000C6 -S3154004F10000000000000000000000000000000000B5 -S3154004F11000000000000000000000000000000000A5 -S3154004F1200000000000000000000000000000000095 -S3154004F1300000000000000000000000000000000085 -S3154004F1400000000000000000000000000000000075 -S3154004F1500000000000000000000000000000000065 -S3154004F1600000000000000000000000000000000055 -S3154004F1700000000000000000000000000000000045 -S3154004F1800000000000000000000000000000000035 -S3154004F1900000000000000000000000000000000025 -S3154004F1A00000000000000000000000000000000015 -S3154004F1B00000000000000000000000000000000005 -S3154004F1C000000000000000000000000000000000F5 -S3154004F1D000000000000000000000000000000000E5 -S3154004F1E000000000000000000000000000000000D5 -S3154004F1F000000000000000000000000000000000C5 -S3154004F20000000000000000000000000000000000B4 -S3154004F21000000000000000000000000000000000A4 -S3154004F2200000000000000000000000000000000094 -S3154004F2300000000000000000000000000000000084 -S3154004F2400000000000000000000000000000000074 -S3154004F2500000000000000000000000000000000064 -S3154004F2600000000000000000000000000000000054 -S3154004F2700000000000000000000000000000000044 -S3154004F2800000000000000000000000000000000034 -S3154004F2900000000000000000000000000000000024 -S3154004F2A00000000000000000000000000000000014 -S3154004F2B00000000000000000000000000000000004 -S3154004F2C000000000000000000000000000000000F4 -S3154004F2D000000000000000000000000000000000E4 -S3154004F2E000000000000000000000000000000000D4 -S3154004F2F000000000000000000000000000000000C4 -S3154004F30000000000000000000000000000000000B3 -S3154004F31000000000000000000000000000000000A3 -S3154004F3200000000000000000000000000000000093 -S3154004F3300000000000000000000000000000000083 -S3154004F3400000000000000000000000000000000073 -S3154004F3500000000000000000000000000000000063 -S3154004F3600000000000000000000000000000000053 -S3154004F3700000000000000000000000000000000043 -S3154004F3800000000000000000000000000000000033 -S3154004F3900000000000000000000000000000000023 -S3154004F3A00000000000000000000000000000000013 -S3154004F3B00000000000000000000000000000000003 -S3154004F3C000000000000000000000000000000000F3 -S3154004F3D000000000000000000000000000000000E3 -S3154004F3E000000000000000000000000000000000D3 -S3154004F3F000000000000000000000000000000000C3 -S3154004F40000000000000000000000000000000000B2 -S3154004F41000000000000000000000000000000000A2 -S3154004F4200000000000000000000000000000000092 -S3154004F4300000000000000000000000000000000082 -S3154004F4400000000000000000000000000000000072 -S3154004F4500000000000000000000000000000000062 -S3154004F4600000000000000000000000000000000052 -S3154004F4700000000000000000000000000000000042 -S3154004F4800000000000000000000000000000000032 -S3154004F4900000000000000000000000000000000022 -S3154004F4A00000000000000000000000000000000012 -S3154004F4B00000000000000000000000000000000002 -S3154004F4C000000000000000000000000000000000F2 -S3154004F4D000000000000000000000000000000000E2 -S3154004F4E000000000000000000000000000000000D2 -S3154004F4F000000000000000000000000000000000C2 -S3154004F50000000000000000000000000000000000B1 -S3154004F51000000000000000000000000000000000A1 -S3154004F5200000000000000000000000000000000091 -S3154004F5300000000000000000000000000000000081 -S3154004F5400000000000000000000000000000000071 -S3154004F5500000000000000000000000000000000061 -S3154004F5600000000000000000000000000000000051 -S3154004F5700000000000000000000000000000000041 -S3154004F5800000000000000000000000000000000031 -S3154004F5900000000000000000000000000000000021 -S3154004F5A00000000000000000000000000000000011 -S3154004F5B00000000000000000000000000000000001 -S3154004F5C000000000000000000000000000000000F1 -S3154004F5D000000000000000000000000000000000E1 -S3154004F5E000000000000000000000000000000000D1 -S3154004F5F000000000000000000000000000000000C1 -S3154004F60000000000000000000000000000000000B0 -S3154004F61000000000000000000000000000000000A0 -S3154004F6200000000000000000000000000000000090 -S3154004F6300000000000000000000000000000000080 -S3154004F6400000000000000000000000000000000070 -S3154004F6500000000000000000000000000000000060 -S3154004F6600000000000000000000000000000000050 -S3154004F6700000000000000000000000000000000040 -S3154004F6800000000000000000000000000000000030 -S3154004F6900000000000000000000000000000000020 -S3154004F6A00000000000000000000000000000000010 -S3154004F6B00000000000000000000000000000000000 -S3154004F6C000000000000000000000000000000000F0 -S3154004F6D000000000000000000000000000000000E0 -S3154004F6E000000000000000000000000000000000D0 -S3154004F6F000000000000000000000000000000000C0 -S3154004F70000000000000000000000000000000000AF -S3154004F710000000000000000000000000000000009F -S3154004F720000000000000000000000000000000008F -S3154004F730000000000000000000000000000000007F -S3154004F740000000000000000000000000000000006F -S3154004F750000000000000000000000000000000005F -S3154004F760000000000000000000000000000000004F -S3154004F770000000000000000000000000000000003F -S3154004F780000000000000000000000000000000002F -S3154004F790000000000000000000000000000000001F -S3154004F7A0000000000000000000000000000000000F -S3154004F7B000000000000000000000000000000000FF -S3154004F7C000000000000000000000000000000000EF -S3154004F7D000000000000000000000000000000000DF -S3154004F7E000000000000000000000000000000000CF -S3154004F7F000000000000000000000000000000000BF -S3154004F80000000000000000000000000000000000AE -S3154004F810000000000000000000000000000000009E -S3154004F820000000000000000000000000000000008E -S3154004F830000000000000000000000000000000007E -S3154004F840000000000000000000000000000000006E -S3154004F850000000000000000000000000000000005E -S3154004F860000000000000000000000000000000004E -S3154004F870000000000000000000000000000000003E -S3154004F880000000000000000000000000000000002E -S3154004F890000000000000000000000000000000001E -S3154004F8A0000000000000000000000000000000000E -S3154004F8B000000000000000000000000000000000FE -S3154004F8C000000000000000000000000000000000EE -S3154004F8D000000000000000000000000000000000DE -S3154004F8E000000000000000000000000000000000CE -S3154004F8F000000000000000000000000000000000BE -S3154004F90000000000000000000000000000000000AD -S3154004F910000000000000000000000000000000009D -S3154004F920000000000000000000000000000000008D -S3154004F930000000000000000000000000000000007D -S3154004F940000000000000000000000000000000006D -S3154004F950000000000000000000000000000000005D -S3154004F960000000000000000000000000000000004D -S3154004F970000000000000000000000000000000003D -S3154004F980000000000000000000000000000000002D -S3154004F990000000000000000000000000000000001D -S3154004F9A0000000000000000000000000000000000D -S3154004F9B000000000000000000000000000000000FD -S3154004F9C000000000000000000000000000000000ED -S3154004F9D000000000000000000000000000000000DD -S3154004F9E000000000000000000000000000000000CD -S3154004F9F000000000000000000000000000000000BD -S3154004FA0000000000000000000000000000000000AC -S3154004FA10000000000000000000000000000000009C -S3154004FA20000000000000000000000000000000008C -S3154004FA30000000000000000000000000000000007C -S3154004FA40000000000000000000000000000000006C -S3154004FA50000000000000000000000000000000005C -S3154004FA60000000000000000000000000000000004C -S3154004FA70000000000000000000000000000000003C -S3154004FA80000000000000000000000000000000002C -S3154004FA90000000000000000000000000000000001C -S3154004FAA0000000000000000000000000000000000C -S3154004FAB000000000000000000000000000000000FC -S3154004FAC000000000000000000000000000000000EC -S3154004FAD000000000000000000000000000000000DC -S3154004FAE000000000000000000000000000000000CC -S3154004FAF000000000000000000000000000000000BC -S3154004FB0000000000000000000000000000000000AB -S3154004FB10000000000000000000000000000000009B -S3154004FB20000000000000000000000000000000008B -S3154004FB30000000000000000000000000000000007B -S3154004FB40000000000000000000000000000000006B -S3154004FB50000000000000000000000000000000005B -S3154004FB60000000000000000000000000000000004B -S3154004FB70000000000000000000000000000000003B -S3154004FB80000000000000000000000000000000002B -S3154004FB90000000000000000000000000000000001B -S3154004FBA0000000000000000000000000000000000B -S3154004FBB000000000000000000000000000000000FB -S3154004FBC000000000000000000000000000000000EB -S3154004FBD000000000000000000000000000000000DB -S3154004FBE000000000000000000000000000000000CB -S3154004FBF000000000000000000000000000000000BB -S3154004FC0000000000000000000000000000000000AA -S3154004FC10000000000000000000000000000000009A -S3154004FC20000000000000000000000000000000008A -S3154004FC30000000000000000000000000000000007A -S3154004FC40000000000000000000000000000000006A -S3154004FC50000000000000000000000000000000005A -S3154004FC60000000000000000000000000000000004A -S3154004FC70000000000000000000000000000000003A -S3154004FC80000000000000000000000000000000002A -S3154004FC90000000000000000000000000000000001A -S3154004FCA0000000000000000000000000000000000A -S3154004FCB000000000000000000000000000000000FA -S3154004FCC000000000000000000000000000000000EA -S3154004FCD000000000000000000000000000000000DA -S3154004FCE000000000000000000000000000000000CA -S3154004FCF000000000000000000000000000000000BA -S3154004FD0000000000000000000000000000000000A9 -S3154004FD100000000000000000000000000000000099 -S3154004FD200000000000000000000000000000000089 -S3154004FD300000000000000000000000000000000079 -S3154004FD400000000000000000000000000000000069 -S3154004FD500000000000000000000000000000000059 -S3154004FD600000000000000000000000000000000049 -S3154004FD700000000000000000000000000000000039 -S3154004FD800000000000000000000000000000000029 -S3154004FD900000000000000000000000000000000019 -S3154004FDA00000000000000000000000000000000009 -S3154004FDB000000000000000000000000000000000F9 -S3154004FDC000000000000000000000000000000000E9 -S3154004FDD000000000000000000000000000000000D9 -S3154004FDE000000000000000000000000000000000C9 -S3154004FDF000000000000000000000000000000000B9 -S3154004FE0000000000000000000000000000000000A8 -S3154004FE100000000000000000000000000000000098 -S3154004FE200000000000000000000000000000000088 -S3154004FE300000000000000000000000000000000078 -S3154004FE400000000000000000000000000000000068 -S3154004FE500000000000000000000000000000000058 -S3154004FE600000000000000000000000000000000048 -S3154004FE700000000000000000000000000000000038 -S3154004FE800000000000000000000000000000000028 -S3154004FE900000000000000000000000000000000018 -S3154004FEA00000000000000000000000000000000008 -S3154004FEB000000000000000000000000000000000F8 -S3154004FEC000000000000000000000000000000000E8 -S3154004FED000000000000000000000000000000000D8 -S3154004FEE000000000000000000000000000000000C8 -S3154004FEF000000000000000000000000000000000B8 -S3154004FF0000000000000000000000000000000000A7 -S3154004FF100000000000000000000000000000000097 -S3154004FF200000000000000000000000000000000087 -S3154004FF300000000000000000000000000000000077 -S3154004FF400000000000000000000000000000000067 -S3154004FF500000000000000000000000000000000057 -S3154004FF600000000000000000000000000000000047 -S3154004FF700000000000000000000000000000000037 -S3154004FF800000000000000000000000000000000027 -S3154004FF900000000000000000000000000000000017 -S3154004FFA00000000000000000000000000000000007 -S3154004FFB000000000000000000000000000000000F7 -S3154004FFC000000000000000000000000000000000E7 -S3154004FFD000000000000000000000000000000000D7 -S3154004FFE000000000000000000000000000000000C7 -S3154004FFF000000000000000000000000000000000B7 -S3154005000000000002000000030000000000000000A0 -S315400500100000000100000000FFFFFFFE0000000396 -S3154005002055555554FFFFFFFE0000000355555554E1 -S31540050030700FFFFE00000007100249240000000073 -S315400500400000000000000000000000020000000360 -S315400500500000000000000003FFFFFFFEFFFFFFFF5B -S3154005006000000002FFFFFFFD000000000000000049 -S31540050070000000010000000000000000FFFFFFFF38 -S315400500800000000000000001FFFFFFFFFFFFFFFF2C -S31540050090FFFFFFFF00000001FFFFFFFFFFFFFFFE21 -S315400500A00000000300000000FFFFFFFEFFFFFFFD0D -S315400500B000000000000000090000000700000001E4 -S315400500C0FFFFFFF700000002FFFFFFFCFFFFFFF801 -S315400500D000000002FFFFFFFCFFFFFFF8FFFFFFFCEC -S315400500E00000000200000008FFFFFFFCFFFFFFFEC7 -S315400500F0FFFFFFF8FFFFFFF800000001FFFFFFF8D5 -S31540050100FFFFFFF7000000000000000B00000002A3 -S31540050110000000050000002F000000020000001747 -S3154005012000003039000002A700000012FFFF076CEF -S315400501300000004DFFFFFCC600003039FFFFFD59AA -S31540050140FFFFFFEEFFFF076CFFFFFFB30000033A1B -S3154005015000000091FFFFE84100000000FFFFFD841D -S31540050160FFFED02F000000000000F6FA006E498120 -S315400501700000000000000000000000000000000034 -S31540050180FFFFF0000000000200000003000000062B -S3154005019000000002FFFFFFFDFFFFFFFA0000000021 -S315400501A0000000010000000000000000FFFFFFFF07 -S315400501B00000000000000001FFFFFFFFFFFFFFFFFB -S315400501C0FFFFFFFF00000001FFFFFFFFFFFFFFFEF0 -S315400501D000000003FFFFFFFAFFFFFFFEFFFFFFFDE5 -S315400501E000000006000000000000000000000009B5 -S315400501F000000000000000000000000000000000B4 -S31540050200000000000000000100000002000000039D -S315400502100000000000000000000000000000000093 -S31540050220000000004005050C400505D8400506A41C -S315400502300000000000000000000000000000000073 -S315400502400000000000000000000000000000000063 -S31540050250000000004001B5800000000000000000DD -S315400502600000000000000000000000000000000043 -S315400502700000000000000000000000000000000033 -S315400502800000000000000000000000000000000023 -S315400502900000000000000000000000000000000013 -S315400502A00000000000000000000000000000000003 -S315400502B000000000000000000000000000000000F3 -S315400502C000000000000000000000000000000001E2 -S315400502D0330EABCD1234E66DDEEC0005000B0000A7 -S315400502E000000000000000000000000000000000C3 -S315400502F000000000000000000000000000000000B3 -S3154005030000000000000000000000000000000000A2 -S315400503100000000000000000000000000000000092 -S315400503200000000000000000000000000000000082 -S315400503300000000000000000000000000000000072 -S315400503400000000000000000000000000000000062 -S315400503500000000000000000000000000000000052 -S315400503600000000000000000000000000000000042 -S315400503700000000000000000000000000000000032 -S315400503800000000000000000000000000000000022 -S315400503900000000000000000000000000000000012 -S315400503A00000000000000000000000000000000002 -S315400503B000000000000000000000000000000000F2 -S315400503C000000000000000000000000000000000E2 -S315400503D000000000000000000000000000000000D2 -S315400503E000000000000000000000000000000000C2 -S315400503F000000000000000000000000000000000B2 -S3154005040000000000000000000000000000000000A1 -S315400504100000000000000000000000000000000091 -S315400504200000000000000000000000000000000081 -S315400504300000000000000000000000000000000071 -S315400504400000000000000000000000000000000061 -S315400504500000000000000000000000000000000051 -S315400504600000000000000000000000000000000041 -S315400504700000000000000000000000000000000031 -S315400504800000000000000000000000000000000021 -S315400504900000000000000000000000000000000011 -S315400504A00000000000000000000000000000000001 -S315400504B000000000000000000000000000000000F1 -S315400504C000000000000000000000000000000000E1 -S315400504D000000000000000000000000000000000D1 -S315400504E000000000000000000000000000000000C1 -S315400504F000000000000000000000000000000000B1 -S3154005050000000000000000000000000000000000A0 -S315400505100000000000000000000000000000000090 -S315400505200000000000000000000000000000000080 -S315400505300000000000000000000000000000000070 -S315400505400000000000000000000000000000000060 -S315400505500000000000000000000000000000000050 -S315400505600000000000000000000000000000000040 -S315400505700000000000000000000000000000000030 -S315400505800000000000000000000000000000000020 -S315400505900000000000000000000000000000000010 -S315400505A00000000000000000000000000000000000 -S315400505B000000000000000000000000000000000F0 -S315400505C000000000000000000000000000000000E0 -S315400505D000000000000000000000000000000000D0 -S315400505E000000000000000000000000000000000C0 -S315400505F000000000000000000000000000000000B0 -S31540050600000000000000000000000000000000009F -S31540050610000000000000000000000000000000008F -S31540050620000000000000000000000000000000007F -S31540050630000000000000000000000000000000006F -S31540050640000000000000000000000000000000005F -S31540050650000000000000000000000000000000004F -S31540050660000000000000000000000000000000003F -S31540050670000000000000000000000000000000002F -S31540050680000000000000000000000000000000001F -S31540050690000000000000000000000000000000000F -S315400506A000000000000000000000000000000000FF -S315400506B000000000000000000000000000000000EF -S315400506C000000000000000000000000000000000DF -S315400506D000000000000000000000000000000000CF -S315400506E000000000000000000000000000000000BF -S315400506F000000000000000000000000000000000AF -S31540050700000000000000000000000000000000009E -S31540050710000000000000000000000000000000008E -S31540050720000000000000000000000000000000007E -S31540050730000000000000000000000000000000006E -S31540050740000000000000000000000000000000005E -S31540050750000000000000000000000000000000004E -S31540050760000000000000000000000000000000003E -S315400507704005022000000000FFFFFFFF00020000C9 -S315400507800000000000000000400507804005078086 -S3154005079040050788400507884005079040050790AE -S315400507A04005079840050798400507A0400507A05E -S315400507B0400507A8400507A8400507B0400507B00E -S315400507C0400507B8400507B8400507C0400507C0BE -S315400507D0400507C8400507C8400507D0400507D06E -S315400507E0400507D8400507D8400507E0400507E01E -S315400507F0400507E8400507E8400507F0400507F0CE -S31540050800400507F8400507F840050800400508007B -S315400508104005080840050808400508104005081029 -S3154005082040050818400508184005082040050820D9 -S315400508304005082840050828400508304005083089 -S315400508404005083840050838400508404005084039 -S3154005085040050848400508484005085040050850E9 -S315400508604005085840050858400508604005086099 -S315400508704005086840050868400508704005087049 -S3154005088040050878400508784005088040050880F9 -S3154005089040050888400508884005089040050890A9 -S315400508A04005089840050898400508A0400508A059 -S315400508B0400508A8400508A8400508B0400508B009 -S315400508C0400508B8400508B8400508C0400508C0B9 -S315400508D0400508C8400508C8400508D0400508D069 -S315400508E0400508D8400508D8400508E0400508E019 -S315400508F0400508E8400508E8400508F0400508F0C9 -S31540050900400508F8400508F8400509004005090076 -S315400509104005090840050908400509104005091024 -S3154005092040050918400509184005092040050920D4 -S315400509304005092840050928400509304005093084 -S315400509404005093840050938400509404005094034 -S3154005095040050948400509484005095040050950E4 -S315400509604005095840050958400509604005096094 -S315400509704005096840050968400509704005097044 -S3154005098040050978400509784005098040050980F4 -S3154005099040050988400509884005099040050990A4 -S315400509A04005099840050998400509A0400509A054 -S315400509B0400509A8400509A8400509B0400509B004 -S315400509C0400509B8400509B8400509C0400509C0B4 -S315400509D0400509C8400509C8400509D0400509D064 -S315400509E0400509D8400509D8400509E0400509E014 -S315400509F0400509E8400509E8400509F0400509F0C4 -S31540050A00400509F8400509F840050A0040050A0071 -S31540050A1040050A0840050A0840050A1040050A101F -S31540050A2040050A1840050A1840050A2040050A20CF -S31540050A3040050A2840050A2840050A3040050A307F -S31540050A4040050A3840050A3840050A4040050A402F -S31540050A5040050A4840050A4840050A5040050A50DF -S31540050A6040050A5840050A5840050A6040050A608F -S31540050A7040050A6840050A6840050A7040050A703F -S31540050A8040050A7840050A7840050A8040050A80EF -S31540050A9040050A8840050A8840050A9040050A909F -S31540050AA040050A9840050A9840050AA040050AA04F -S31540050AB040050AA840050AA840050AB040050AB0FF -S31540050AC040050AB840050AB840050AC040050AC0AF -S31540050AD040050AC840050AC840050AD040050AD05F -S31540050AE040050AD840050AD840050AE040050AE00F -S31540050AF040050AE840050AE840050AF040050AF0BF -S31540050B0040050AF840050AF840050B0040050B006C -S31540050B1040050B0840050B0840050B1040050B101A -S31540050B2040050B1840050B1840050B2040050B20CA -S31540050B3040050B2840050B2840050B3040050B307A -S31540050B4040050B3840050B3840050B4040050B402A -S31540050B5040050B4840050B4840050B5040050B50DA -S31540050B6040050B5840050B5840050B6040050B608A -S31540050B7040050B6840050B6840050B7040050B703A -S31540050B8040050B7840050B780000000040050B88B2 -S31540050B900000000000000000000000000000000208 -S31540050BA000000000000000000000000000000000FA -S31540050BB000000000000000000000000000000000EA -S31540050BC000000000000000000000000000000000DA -S31540050BD000000000000000000000000000000000CA -S31540050BE000000000000000000000000000000000BA -S31540050BF000000000000000000000000000000000AA -S31540050C000000000000000000000000000000000099 -S31540050C100000000000000000000000000000000089 -S31540050C200000000000000000000000000000000079 -S31540050C3080000100000000080000000700000006D3 -S31540050C40000000030000000000000000FFFF8AD0FE -S30940050C5080000310C2 +S31540048C200000000000000000800003100000000067 +S31540048C30000000008000010000000008000000075A +S31540048C40000000060000000300000000FFFF8AD079 S70540000000BA diff --git a/designs/leon3-xilinx-vc707/systest.c b/designs/leon3-xilinx-vc707/systest.c new file mode 100644 index 00000000..f1a41326 --- /dev/null +++ b/designs/leon3-xilinx-vc707/systest.c @@ -0,0 +1,20 @@ + + +main() + +{ + +/* +unsigned long* const memptr = (unsigned long*) 0x40000000; +unsigned long memory; + +*memptr = 0x87654321; +memory = *memptr; + + +*/ + + report_start(); + base_test(); + report_end(); +} diff --git a/designs/leon3-xilinx-vc707/testbench.vhd b/designs/leon3-xilinx-vc707/testbench.vhd new file mode 100644 index 00000000..f66bdffb --- /dev/null +++ b/designs/leon3-xilinx-vc707/testbench.vhd @@ -0,0 +1,514 @@ +----------------------------------------------------------------------------- +-- LEON3 Demonstration design test bench +-- Copyright (C) 2004 Jiri Gaisler, Gaisler Research +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------ + + +library ieee; +use ieee.std_logic_1164.all; +library gaisler; +use gaisler.libdcom.all; +use gaisler.sim.all; +library grlib; +use grlib.amba.all; +use grlib.stdlib.all; +use grlib.devices.all; +library micron; +use micron.all; +library techmap; +use techmap.gencomp.all; +use work.debug.all; + +use work.config.all; + +entity testbench is + generic ( + fabtech : integer := CFG_FABTECH; + memtech : integer := CFG_MEMTECH; + padtech : integer := CFG_PADTECH; + clktech : integer := CFG_CLKTECH; + disas : integer := CFG_DISAS; -- Enable disassembly to console + dbguart : integer := CFG_DUART; -- Print UART on console + pclow : integer := CFG_PCLOW; + testahb : boolean := true; + USE_MIG_INTERFACE_MODEL : boolean := false + + ); +end; + +architecture behav of testbench is + +-- DDR3 Simulation parameters +constant SIM_BYPASS_INIT_CAL : string := "FAST"; + -- # = "OFF" - Complete memory init & + -- calibration sequence + -- # = "SKIP" - Not supported + -- # = "FAST" - Complete memory init & use + -- abbreviated calib sequence + +constant SIMULATION : string := "TRUE"; + -- Should be TRUE during design simulations and + -- FALSE during implementations + + +constant promfile : string := "prom.srec"; -- rom contents +constant sramfile : string := "sram.srec"; -- ram contents +constant sdramfile : string := "sdram.srec"; -- sdram contents + +signal clk : std_logic := '0'; +signal Rst : std_logic := '0'; + +signal address : std_logic_vector(25 downto 0); +signal data : std_logic_vector(15 downto 0); +signal button : std_logic_vector(3 downto 0) := "0000"; +signal genio : std_logic_vector(59 downto 0); +signal romsn : std_logic; +signal oen : std_ulogic; +signal writen : std_ulogic; +signal adv : std_logic; + +signal GND : std_ulogic := '0'; +signal VCC : std_ulogic := '1'; +signal NC : std_ulogic := 'Z'; + +signal txd1 , rxd1 , dsurx : std_logic; +signal txd2 , rxd2 , dsutx : std_logic; +signal ctsn1 , rtsn1 , dsuctsn : std_ulogic; +signal ctsn2 , rtsn2 , dsurtsn : std_ulogic; + +signal phy_mii_data : std_logic; +signal phy_tx_clk : std_ulogic; +signal phy_rx_clk : std_ulogic; +signal phy_rx_data : std_logic_vector(7 downto 0); +signal phy_dv : std_ulogic; +signal phy_rx_er : std_ulogic; +signal phy_col : std_ulogic; +signal phy_crs : std_ulogic; +signal phy_tx_data : std_logic_vector(7 downto 0); +signal phy_tx_en : std_ulogic; +signal phy_tx_er : std_ulogic; +signal phy_mii_clk : std_ulogic; +signal phy_rst_n : std_ulogic; +signal phy_gtx_clk : std_ulogic; +signal phy_mii_int_n : std_ulogic; + +signal clk27 : std_ulogic := '0'; +signal clk200p : std_ulogic := '0'; +signal clk200n : std_ulogic := '1'; +signal clk33 : std_ulogic := '0'; + +signal iic_scl : std_ulogic; +signal iic_sda : std_ulogic; +signal ddc_scl : std_ulogic; +signal ddc_sda : std_ulogic; +signal dvi_iic_scl : std_logic; +signal dvi_iic_sda : std_logic; + +signal tft_lcd_data : std_logic_vector(11 downto 0); +signal tft_lcd_clk_p : std_ulogic; +signal tft_lcd_clk_n : std_ulogic; +signal tft_lcd_hsync : std_ulogic; +signal tft_lcd_vsync : std_ulogic; +signal tft_lcd_de : std_ulogic; +signal tft_lcd_reset_b : std_ulogic; + +-- DDR3 memory +signal ddr3_dq : std_logic_vector(63 downto 0); +signal ddr3_dqs_p : std_logic_vector(7 downto 0); +signal ddr3_dqs_n : std_logic_vector(7 downto 0); +signal ddr3_addr : std_logic_vector(13 downto 0); +signal ddr3_ba : std_logic_vector(2 downto 0); +signal ddr3_ras_n : std_logic; +signal ddr3_cas_n : std_logic; +signal ddr3_we_n : std_logic; +signal ddr3_reset_n : std_logic; +signal ddr3_ck_p : std_logic_vector(0 downto 0); +signal ddr3_ck_n : std_logic_vector(0 downto 0); +signal ddr3_cke : std_logic_vector(0 downto 0); +signal ddr3_cs_n : std_logic_vector(0 downto 0); +signal ddr3_dm : std_logic_vector(7 downto 0); +signal ddr3_odt : std_logic_vector(0 downto 0); + +-- SPI flash +signal spi_sel_n : std_ulogic; +signal spi_clk : std_ulogic; +signal spi_mosi : std_ulogic; + +signal dsurst : std_ulogic; +signal errorn : std_logic; + +signal switch : std_logic_vector(3 downto 0); -- I/O port +signal led : std_logic_vector(6 downto 0); -- I/O port +constant lresp : boolean := false; + +signal tdqs_n : std_logic; + +component leon3mp is + generic ( + fabtech : integer := CFG_FABTECH; + memtech : integer := CFG_MEMTECH; + padtech : integer := CFG_PADTECH; + clktech : integer := CFG_CLKTECH; + disas : integer := CFG_DISAS; -- Enable disassembly to console + dbguart : integer := CFG_DUART; -- Print UART on console + pclow : integer := CFG_PCLOW; + testahb : boolean := false; + SIM_BYPASS_INIT_CAL : string := "OFF"; + SIMULATION : string := "FALSE"; + USE_MIG_INTERFACE_MODEL : boolean := false + ); + port ( + reset : in std_ulogic; + clk200p : in std_ulogic; -- 200 MHz clock + clk200n : in std_ulogic; -- 200 MHz clock + address : out std_logic_vector(25 downto 0); + data : inout std_logic_vector(15 downto 0); + oen : out std_ulogic; + writen : out std_ulogic; + romsn : out std_logic; + adv : out std_logic; + ddr3_dq : inout std_logic_vector(63 downto 0); + ddr3_dqs_p : inout std_logic_vector(7 downto 0); + ddr3_dqs_n : inout std_logic_vector(7 downto 0); + ddr3_addr : out std_logic_vector(13 downto 0); + ddr3_ba : out std_logic_vector(2 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_ck_p : out std_logic_vector(0 downto 0); + ddr3_ck_n : out std_logic_vector(0 downto 0); + ddr3_cke : out std_logic_vector(0 downto 0); + ddr3_cs_n : out std_logic_vector(0 downto 0); + ddr3_dm : out std_logic_vector(7 downto 0); + ddr3_odt : out std_logic_vector(0 downto 0); + dsurx : in std_ulogic; + dsutx : out std_ulogic; + dsuctsn : in std_ulogic; + dsurtsn : out std_ulogic; + button : in std_logic_vector(3 downto 0); + switch : inout std_logic_vector(3 downto 0); + led : out std_logic_vector(6 downto 0); + iic_scl : inout std_ulogic; + iic_sda : inout std_ulogic + ); +end component; + +component ddr3_model is + port ( + rst_n : in std_logic; + ck : in std_logic; + ck_n : in std_logic; + cke : in std_logic; + cs_n : in std_logic; + ras_n : in std_logic; + cas_n : in std_logic; + we_n : in std_logic; + dm_tdqs : inout std_logic; + ba : in std_logic_vector(2 downto 0); + addr : in std_logic_vector(13 downto 0); + dq : inout std_logic_vector(7 downto 0); + dqs : inout std_logic; + dqs_n : inout std_logic; + tdqs_n : out std_logic; + odt : in std_logic + ); +end component ddr3_model; + +begin + +-- clock and reset + clk200p <= not clk200p after 2.5 ns; + clk200n <= not clk200n after 2.5 ns; + rst <= not dsurst; + rxd1 <= 'H'; ctsn1 <= '0'; + rxd2 <= 'H'; ctsn2 <= '0'; + button <= "0000"; + switch <= "0000"; + + cpu : leon3mp + generic map ( + fabtech => fabtech, + memtech => memtech, + padtech => padtech, + clktech => clktech, + disas => disas, + dbguart => dbguart, + pclow => pclow, + testahb => testahb, + SIM_BYPASS_INIT_CAL => SIM_BYPASS_INIT_CAL, + SIMULATION => SIMULATION, + USE_MIG_INTERFACE_MODEL => USE_MIG_INTERFACE_MODEL + ) + port map ( + reset => rst, + clk200p => clk200p, + clk200n => clk200n, + address => address, + data => data, + oen => oen, + writen => writen, + romsn => romsn, + adv => adv, + ddr3_dq => ddr3_dq, + ddr3_dqs_p => ddr3_dqs_p, + ddr3_dqs_n => ddr3_dqs_n, + ddr3_addr => ddr3_addr, + ddr3_ba => ddr3_ba, + ddr3_ras_n => ddr3_ras_n, + ddr3_cas_n => ddr3_cas_n, + ddr3_we_n => ddr3_we_n, + ddr3_reset_n => ddr3_reset_n, + ddr3_ck_p => ddr3_ck_p, + ddr3_ck_n => ddr3_ck_n, + ddr3_cke => ddr3_cke, + ddr3_cs_n => ddr3_cs_n, + ddr3_dm => ddr3_dm, + ddr3_odt => ddr3_odt, + dsurx => dsurx, + dsutx => dsutx, + dsuctsn => dsuctsn, + dsurtsn => dsurtsn, + button => button, + switch => switch, + led => led, + iic_scl => iic_scl, + iic_sda => iic_sda + ); + + prom0 : for i in 0 to 1 generate + sr0 : sram generic map (index => i+4, abits => 26, fname => promfile) + port map (address(25 downto 0), data(15-i*8 downto 8-i*8), romsn, + writen, oen); + end generate; + + -- ************************************************************************** + -- * Memory Models instantiations + -- ************************************************************************** + gen_mem_model : if (USE_MIG_INTERFACE_MODEL /= true) generate + ddr3mem : if (CFG_MIG_SERIES7 = 1) generate + gen_mem: for i in 0 to 7 generate + u1: ddr3_model port map + ( + rst_n => ddr3_reset_n, + ck => ddr3_ck_p(0), + ck_n => ddr3_ck_n(0), + cke => ddr3_cke(0), + cs_n => ddr3_cs_n(0), + ras_n => ddr3_ras_n, + cas_n => ddr3_cas_n, + we_n => ddr3_we_n, + dm_tdqs => ddr3_dm(i), + ba => ddr3_ba, + addr => ddr3_addr, + dq => ddr3_dq((8*i+7) downto (8*i)), + dqs => ddr3_dqs_p(i), + dqs_n => ddr3_dqs_n(i), + tdqs_n => OPEN, + odt => ddr3_odt(0) + ); + end generate gen_mem; + end generate ddr3mem; -- DDR3 + end generate gen_mem_model; + + mig_mem_model : if (USE_MIG_INTERFACE_MODEL = true) generate + ddr3_dq <= (others => 'Z'); + ddr3_dqs_p <= (others => 'Z'); + ddr3_dqs_n <= (others => 'Z'); + end generate mig_mem_model; + + errorn <= led(1); + errorn <= 'H'; -- ERROR pull-up + + phy0 : if (CFG_GRETH = 1) generate + phy_mii_data <= 'H'; + p0: phy + generic map (address => 7) + port map(phy_rst_n, phy_mii_data, phy_tx_clk, phy_rx_clk, phy_rx_data, + phy_dv, phy_rx_er, phy_col, phy_crs, phy_tx_data, phy_tx_en, + phy_tx_er, phy_mii_clk, phy_gtx_clk); + end generate; + + iuerr : process + begin + wait for 210 us; -- This is for proper DDR3 behaviour durign init phase not needed durin simulation + wait on led(3); -- DDR3 Memory Init ready + wait for 5000 ns; + if to_x01(errorn) = '1' then wait on errorn; end if; + assert (to_x01(errorn) = '1') + report "*** IU in error mode, simulation halted ***" + severity failure ; -- this should be a failure + end process; + + data <= buskeep(data) after 5 ns; + + dsucom : process + procedure dsucfg(signal dsurx : in std_ulogic; signal dsutx : out std_ulogic) is + variable w32 : std_logic_vector(31 downto 0); + variable c8 : std_logic_vector(7 downto 0); + constant txp : time := 320 * 1 ns; + begin + dsutx <= '1'; + dsurst <= '0'; + wait for 2500 ns; + wait for 210 us; -- This is for proper DDR3 behaviour durign init phase not needed durin simulation + dsurst <= '1'; + wait on led(3); -- Wait for DDR3 Memory Init ready + wait for 5000 ns; + txc(dsutx, 16#55#, txp); -- sync uart + txc(dsutx, 16#a0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); + rxi(dsurx, w32, txp, lresp); + wait; + + -- do test read and writes to DDR3 to check status + -- Write + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); + txa(dsutx, 16#01#, 16#23#, 16#45#, 16#67#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#04#, txp); + txa(dsutx, 16#89#, 16#AB#, 16#CD#, 16#EF#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#08#, txp); + txa(dsutx, 16#08#, 16#19#, 16#2A#, 16#3B#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#0C#, txp); + txa(dsutx, 16#4C#, 16#5D#, 16#6E#, 16#7F#, txp); + txc(dsutx, 16#a0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); + rxi(dsurx, w32, txp, lresp); + txc(dsutx, 16#a0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#04#, txp); + rxi(dsurx, w32, txp, lresp); + report "* Read " & tost(w32); + txc(dsutx, 16#a0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#08#, txp); + rxi(dsurx, w32, txp, lresp); + txc(dsutx, 16#a0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#0C#, txp); + rxi(dsurx, w32, txp, lresp); + wait; + wait for 5000 ns; + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); + txa(dsutx, 16#00#, 16#00#, 16#80#, 16#02#, txp); + wait; + -- Register 0x90000000 (DSU Control Register) + -- Data 0x0000202e (b0010 0000 0010 1110) + -- [0] - Trace Enable + -- [1] - Break On Error + -- [2] - Break on IU watchpoint + -- [3] - Break on s/w break points + -- + -- [4] - (Break on trap) + -- [5] - Break on error traps + -- [6] - Debug mode (Read mode only) + -- [7] - DSUEN (read mode) + -- + -- [8] - DSUBRE (read mode) + -- [9] - Processor mode error (clears error) + -- [10] - processor halt (returns 1 if processor halted) + -- [11] - power down mode (return 1 if processor in power down mode) + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); + txa(dsutx, 16#00#, 16#00#, 16#20#, 16#2e#, txp); + + wait for 25000 ns; + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#01#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#40#, 16#00#, 16#24#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0D#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#70#, 16#11#, 16#78#, txp); + txa(dsutx, 16#91#, 16#00#, 16#00#, 16#0D#, txp); + + txa(dsutx, 16#90#, 16#40#, 16#00#, 16#44#, txp); + txa(dsutx, 16#00#, 16#00#, 16#20#, 16#00#, txp); + + txc(dsutx, 16#80#, txp); + txa(dsutx, 16#90#, 16#40#, 16#00#, 16#44#, txp); + + wait; + -- This is only kept for reference + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#00#, 16#00#, 16#0a#, 16#aa#, txp); + txa(dsutx, 16#00#, 16#55#, 16#00#, 16#55#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#00#, 16#00#, 16#0a#, 16#a0#, txp); + txa(dsutx, 16#01#, 16#02#, 16#09#, 16#33#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#2e#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#91#, 16#00#, 16#00#, 16#00#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#2e#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0f#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#00#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#80#, 16#00#, 16#02#, 16#10#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0f#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#91#, 16#40#, 16#00#, 16#24#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#24#, txp); + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#91#, 16#70#, 16#00#, 16#00#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#03#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp); + txa(dsutx, 16#00#, 16#00#, 16#ff#, 16#ff#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#40#, 16#00#, 16#48#, txp); + txa(dsutx, 16#00#, 16#00#, 16#00#, 16#12#, txp); + + txc(dsutx, 16#c0#, txp); + txa(dsutx, 16#90#, 16#40#, 16#00#, 16#60#, txp); + txa(dsutx, 16#00#, 16#00#, 16#12#, 16#10#, txp); + + txc(dsutx, 16#80#, txp); + txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp); + rxi(dsurx, w32, txp, lresp); + + txc(dsutx, 16#a0#, txp); + txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp); + rxi(dsurx, w32, txp, lresp); + + end; + + begin + dsuctsn <= '0'; + dsucfg(dsutx, dsurx); + wait; + end process; +end ; + diff --git a/designs/leon3-ge-hpe-mini/tkconfig.h b/designs/leon3-xilinx-vc707/tkconfig.h similarity index 86% rename from designs/leon3-ge-hpe-mini/tkconfig.h rename to designs/leon3-xilinx-vc707/tkconfig.h index 178cac38..0dae996c 100644 --- a/designs/leon3-ge-hpe-mini/tkconfig.h +++ b/designs/leon3-xilinx-vc707/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -738,81 +760,6 @@ #define CONFIG_DSU_ETH_DIS 0 #endif - -#ifndef CONFIG_SRCTRL -#define CONFIG_SRCTRL 0 -#endif - -#ifndef CONFIG_SRCTRL_PROMWS -#define CONFIG_SRCTRL_PROMWS 0 -#endif - -#ifndef CONFIG_SRCTRL_RAMWS -#define CONFIG_SRCTRL_RAMWS 0 -#endif - -#ifndef CONFIG_SRCTRL_IOWS -#define CONFIG_SRCTRL_IOWS 0 -#endif - -#ifndef CONFIG_SRCTRL_RMW -#define CONFIG_SRCTRL_RMW 0 -#endif - -#ifndef CONFIG_SRCTRL_8BIT -#define CONFIG_SRCTRL_8BIT 0 -#endif - - -#ifndef CONFIG_SRCTRL_ROMASEL -#define CONFIG_SRCTRL_ROMASEL 0 -#endif - -#if defined CONFIG_SRCTRL_SRBANKS1 -#define CFG_SR_CTRL_SRBANKS 1 -#elif defined CONFIG_SRCTRL_SRBANKS2 -#define CFG_SR_CTRL_SRBANKS 2 -#elif defined CONFIG_SRCTRL_SRBANKS3 -#define CFG_SR_CTRL_SRBANKS 3 -#elif defined CONFIG_SRCTRL_SRBANKS4 -#define CFG_SR_CTRL_SRBANKS 4 -#elif defined CONFIG_SRCTRL_SRBANKS5 -#define CFG_SR_CTRL_SRBANKS 5 -#else -#define CFG_SR_CTRL_SRBANKS 1 -#endif - -#if defined CONFIG_SRCTRL_BANKSZ0 -#define CFG_SR_CTRL_BANKSZ 0 -#elif defined CONFIG_SRCTRL_BANKSZ1 -#define CFG_SR_CTRL_BANKSZ 1 -#elif defined CONFIG_SRCTRL_BANKSZ2 -#define CFG_SR_CTRL_BANKSZ 2 -#elif defined CONFIG_SRCTRL_BANKSZ3 -#define CFG_SR_CTRL_BANKSZ 3 -#elif defined CONFIG_SRCTRL_BANKSZ4 -#define CFG_SR_CTRL_BANKSZ 4 -#elif defined CONFIG_SRCTRL_BANKSZ5 -#define CFG_SR_CTRL_BANKSZ 5 -#elif defined CONFIG_SRCTRL_BANKSZ6 -#define CFG_SR_CTRL_BANKSZ 6 -#elif defined CONFIG_SRCTRL_BANKSZ7 -#define CFG_SR_CTRL_BANKSZ 7 -#elif defined CONFIG_SRCTRL_BANKSZ8 -#define CFG_SR_CTRL_BANKSZ 8 -#elif defined CONFIG_SRCTRL_BANKSZ9 -#define CFG_SR_CTRL_BANKSZ 9 -#elif defined CONFIG_SRCTRL_BANKSZ10 -#define CFG_SR_CTRL_BANKSZ 10 -#elif defined CONFIG_SRCTRL_BANKSZ11 -#define CFG_SR_CTRL_BANKSZ 11 -#elif defined CONFIG_SRCTRL_BANKSZ12 -#define CFG_SR_CTRL_BANKSZ 12 -#elif defined CONFIG_SRCTRL_BANKSZ13 -#define CFG_SR_CTRL_BANKSZ 13 -#else -#define CFG_SR_CTRL_BANKSZ 0 -#endif #ifndef CONFIG_MCTRL_LEON2 #define CONFIG_MCTRL_LEON2 0 #endif @@ -857,6 +804,46 @@ #define CONFIG_MCTRL_PROGPAGE 0 #endif + +#ifndef CONFIG_MIG_DDR3 +#define CONFIG_MIG_DDR3 0 +#endif + +#ifndef CONFIG_MIG_DDR2 +#define CONFIG_MIG_DDR2 0 +#endif + +#ifndef CONFIG_MIG_RANKS +#define CONFIG_MIG_RANKS 1 +#endif + +#ifndef CONFIG_MIG_COLBITS +#define CONFIG_MIG_COLBITS 10 +#endif + +#ifndef CONFIG_MIG_ROWBITS +#define CONFIG_MIG_ROWBITS 13 +#endif + +#ifndef CONFIG_MIG_BANKBITS +#define CONFIG_MIG_BANKBITS 2 +#endif + +#ifndef CONFIG_MIG_HMASK +#define CONFIG_MIG_HMASK F00 +#endif + +#ifndef CONFIG_MIG_SERIES7 +#define CONFIG_MIG_SERIES7 0 +#endif +#ifndef CONFIG_AHBSTAT_ENABLE +#define CONFIG_AHBSTAT_ENABLE 0 +#endif + +#ifndef CONFIG_AHBSTAT_NFTSLV +#define CONFIG_AHBSTAT_NFTSLV 1 +#endif + #ifndef CONFIG_AHBROM_ENABLE #define CONFIG_AHBROM_ENABLE 0 #endif @@ -1005,24 +992,18 @@ #define CONFIG_GPT_WDOG 0 #endif -#ifndef CONFIG_ATA_ENABLE -#define CONFIG_ATA_ENABLE 0 -#endif - -#ifndef CONFIG_ATAIO -#define CONFIG_ATAIO 0 +#ifndef CONFIG_GRGPIO_ENABLE +#define CONFIG_GRGPIO_ENABLE 0 #endif - -#ifndef CONFIG_ATAIRQ -#define CONFIG_ATAIRQ 0 +#ifndef CONFIG_GRGPIO_IMASK +#define CONFIG_GRGPIO_IMASK 0000 #endif - -#ifndef CONFIG_ATA_MWDMA -#define CONFIG_ATA_MWDMA 0 +#ifndef CONFIG_GRGPIO_WIDTH +#define CONFIG_GRGPIO_WIDTH 1 #endif -#ifndef CONFIG_ATA_FIFO -#define CONFIG_ATA_FIFO 8 +#ifndef CONFIG_I2C_ENABLE +#define CONFIG_I2C_ENABLE 0 #endif #ifndef CONFIG_VGA_ENABLE #define CONFIG_VGA_ENABLE 0 @@ -1034,14 +1015,82 @@ #define CONFIG_KBD_ENABLE 0 #endif -#ifndef CONFIG_AHB2HPI_ENABLE -#define CONFIG_AHB2HPI_ENABLE 0 + +#ifndef CONFIG_SPIMCTRL +#define CONFIG_SPIMCTRL 0 +#endif + +#ifndef CONFIG_SPIMCTRL_SDCARD +#define CONFIG_SPIMCTRL_SDCARD 0 +#endif + +#ifndef CONFIG_SPIMCTRL_READCMD +#define CONFIG_SPIMCTRL_READCMD 0 +#endif + +#ifndef CONFIG_SPIMCTRL_DUMMYBYTE +#define CONFIG_SPIMCTRL_DUMMYBYTE 0 #endif -#ifndef CONFIG_DAC_AHB_ENABLE -#define CONFIG_DAC_AHB_ENABLE 0 +#ifndef CONFIG_SPIMCTRL_DUALOUTPUT +#define CONFIG_SPIMCTRL_DUALOUTPUT 0 #endif +#ifndef CONFIG_SPIMCTRL_SCALER +#define CONFIG_SPIMCTRL_SCALER 1 +#endif + +#ifndef CONFIG_SPIMCTRL_ASCALER +#define CONFIG_SPIMCTRL_ASCALER 1 +#endif + +#ifndef CONFIG_SPIMCTRL_PWRUPCNT +#define CONFIG_SPIMCTRL_PWRUPCNT 0 +#endif + +#ifndef CONFIG_SPIMCTRL_OFFSET +#define CONFIG_SPIMCTRL_OFFSET 0 +#endif +#ifndef CONFIG_SPICTRL_ENABLE +#define CONFIG_SPICTRL_ENABLE 0 +#endif +#ifndef CONFIG_SPICTRL_NUM +#define CONFIG_SPICTRL_NUM 1 +#endif +#ifndef CONFIG_SPICTRL_SLVS +#define CONFIG_SPICTRL_SLVS 1 +#endif +#ifndef CONFIG_SPICTRL_FIFO +#define CONFIG_SPICTRL_FIFO 1 +#endif +#ifndef CONFIG_SPICTRL_SLVREG +#define CONFIG_SPICTRL_SLVREG 0 +#endif +#ifndef CONFIG_SPICTRL_ODMODE +#define CONFIG_SPICTRL_ODMODE 0 +#endif +#ifndef CONFIG_SPICTRL_AM +#define CONFIG_SPICTRL_AM 0 +#endif +#ifndef CONFIG_SPICTRL_ASEL +#define CONFIG_SPICTRL_ASEL 0 +#endif +#ifndef CONFIG_SPICTRL_TWEN +#define CONFIG_SPICTRL_TWEN 0 +#endif +#ifndef CONFIG_SPICTRL_MAXWLEN +#define CONFIG_SPICTRL_MAXWLEN 0 +#endif +#ifndef CONFIG_SPICTRL_SYNCRAM +#define CONFIG_SPICTRL_SYNCRAM 0 +#endif +#if defined(CONFIG_SPICTRL_DMRFT) +#define CONFIG_SPICTRL_FT 1 +#elif defined(CONFIG_SPICTRL_TMRFT) +#define CONFIG_SPICTRL_FT 2 +#else +#define CONFIG_SPICTRL_FT 0 +#endif #ifndef CONFIG_DEBUG_UART #define CONFIG_DEBUG_UART 0 diff --git a/designs/leon3-xilinx-xc3sd-1800/Makefile b/designs/leon3-xilinx-xc3sd-1800/Makefile index 73d690ef..bad86eba 100644 --- a/designs/leon3-xilinx-xc3sd-1800/Makefile +++ b/designs/leon3-xilinx-xc3sd-1800/Makefile @@ -20,10 +20,10 @@ CLEAN=soft-clean TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann opencores usbhc spw + tmtc openchip ihp opencores usbhc spw DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - usb grusbhc spacewire ata haps coremp7 ascs slink hcan \ - leon4 leon4b64 l2cache pwm gr1553b iommu + usb grusbhc spacewire ascs slink hcan \ + leon4 leon4v0 l2cache pwm gr1553b iommu FILESKIP = grcan.vhd i2cmst.vhd include $(GRLIB)/bin/Makefile diff --git a/designs/leon3-xilinx-xc3sd-1800/ahbrom.vhd b/designs/leon3-xilinx-xc3sd-1800/ahbrom.vhd index c289e851..5ab936dc 100644 --- a/designs/leon3-xilinx-xc3sd-1800/ahbrom.vhd +++ b/designs/leon3-xilinx-xc3sd-1800/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-xilinx-xc3sd-1800/config.help b/designs/leon3-xilinx-xc3sd-1800/config.help index eab50be3..6bd40c23 100644 --- a/designs/leon3-xilinx-xc3sd-1800/config.help +++ b/designs/leon3-xilinx-xc3sd-1800/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ @@ -1019,7 +1052,7 @@ CONFIG_SPIMCTRL_SDCARD Read command CONFIG_SPIMCTRL_READCMD - Read instruction for SPI memory device + Read instruction for SPI memory device (hex). Dummy byte CONFIG_SPIMCTRL_DUMMYBYTE @@ -1029,6 +1062,10 @@ Dual output CONFIG_SPIMCTRL_DUALOUTPUT Memory device supports dual output when reading data. +Address offset +CONFIG_SPIMCTRL_OFFSET + Offset that will be added by core on SPI memory address (hex). + Clock scaler CONFIG_SPIMCTRL_SCALER Selects the divisor used when dividing the system clock to produce diff --git a/designs/leon3-xilinx-xc3sd-1800/config.vhd.h b/designs/leon3-xilinx-xc3sd-1800/config.vhd.h index bba6c6a4..250af28d 100644 --- a/designs/leon3-xilinx-xc3sd-1800/config.vhd.h +++ b/designs/leon3-xilinx-xc3sd-1800/config.vhd.h @@ -179,6 +179,7 @@ constant CFG_SPIMCTRL_SCALER : integer := CONFIG_SPIMCTRL_SCALER; constant CFG_SPIMCTRL_ASCALER : integer := CONFIG_SPIMCTRL_ASCALER; constant CFG_SPIMCTRL_PWRUPCNT : integer := CONFIG_SPIMCTRL_PWRUPCNT; + constant CFG_SPIMCTRL_OFFSET : integer := 16#CONFIG_SPIMCTRL_OFFSET#; -- SPI controller constant CFG_SPICTRL_ENABLE : integer := CONFIG_SPICTRL_ENABLE; diff --git a/designs/leon3-xilinx-xc3sd-1800/lconfig.tk b/designs/leon3-xilinx-xc3sd-1800/lconfig.tk index 56fdf882..d318acbe 100755 --- a/designs/leon3-xilinx-xc3sd-1800/lconfig.tk +++ b/designs/leon3-xilinx-xc3sd-1800/lconfig.tk @@ -757,7 +757,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -767,7 +768,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -910,8 +913,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -930,6 +935,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1019,9 +1028,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1075,10 +1085,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1124,14 +1135,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1204,13 +1217,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1250,22 +1271,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1322,21 +1611,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1383,36 +1672,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1420,48 +1710,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1517,27 +1808,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1578,16 +1869,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1596,34 +1888,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1680,92 +1973,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1773,18 +2066,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1825,52 +2118,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1878,162 +2172,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2089,45 +2384,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2167,18 +2464,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2186,55 +2484,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2291,24 +2594,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2348,17 +2651,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2366,37 +2670,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2452,16 +2757,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2509,9 +2821,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2533,21 +2843,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2856,14 +3171,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2937,17 +3252,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3602,16 +3917,16 @@ proc menu17 {w title} { hex $w.config.f 17 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 17 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 17 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 17 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 17 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3673,21 +3988,21 @@ proc update_define_menu17 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3747,14 +4062,14 @@ proc menu18 {w title} { bool $w.config.f 18 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 18 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_28 - minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_28 CONFIG_GRETH_FIFO4 + global tmpvar_30 + minimenu $w.config.f 18 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3808,17 +4123,17 @@ proc update_define_menu18 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_28 + global tmpvar_30 global CONFIG_GRETH_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_28 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -3874,15 +4189,15 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_29 - minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_29 CONFIG_UA1_FIFO1 + global tmpvar_31 + minimenu $w.config.f 19 1 "UART1 FIFO depth" tmpvar_31 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 19 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 19 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3971,19 +4286,19 @@ proc update_menu19 {} { proc update_define_menu19 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_29 + global tmpvar_31 global CONFIG_UA1_FIFO1 - if {$tmpvar_29 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_29 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_29 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_29 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_29 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_29 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4268,9 +4583,10 @@ proc menu22 {w title} { hex $w.config.f 22 2 "Read instruction " CONFIG_SPIMCTRL_READCMD bool $w.config.f 22 3 "Read instruction requires dummy byte " CONFIG_SPIMCTRL_DUMMYBYTE bool $w.config.f 22 4 "Enable dual output for reads " CONFIG_SPIMCTRL_DUALOUTPUT - int $w.config.f 22 5 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER - int $w.config.f 22 6 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER - int $w.config.f 22 7 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT + hex $w.config.f 22 5 "Address offset " CONFIG_SPIMCTRL_OFFSET + int $w.config.f 22 6 "Clock divisor for device clock" CONFIG_SPIMCTRL_SCALER + int $w.config.f 22 7 "Clock divisor for alt. device clock" CONFIG_SPIMCTRL_ASCALER + int $w.config.f 22 8 "Number of clock cycles to idle after power up " CONFIG_SPIMCTRL_PWRUPCNT @@ -4320,12 +4636,14 @@ proc update_menu22 {} { global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { configure_entry .menu22.config.f.x4 normal {n l y}} else {configure_entry .menu22.config.f.x4 disabled {y n l}} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {.menu22.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x5.l configure -state normal; } else {.menu22.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x5.l configure -state disabled} global CONFIG_SPIMCTRL_SCALER - if {($CONFIG_SPIMCTRL == 1)} then {.menu22.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x5.l configure -state normal; } else {.menu22.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x5.l configure -state disabled} - global CONFIG_SPIMCTRL_ASCALER if {($CONFIG_SPIMCTRL == 1)} then {.menu22.config.f.x6.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x6.l configure -state normal; } else {.menu22.config.f.x6.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x6.l configure -state disabled} - global CONFIG_SPIMCTRL_PWRUPCNT + global CONFIG_SPIMCTRL_ASCALER if {($CONFIG_SPIMCTRL == 1)} then {.menu22.config.f.x7.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x7.l configure -state normal; } else {.menu22.config.f.x7.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x7.l configure -state disabled} + global CONFIG_SPIMCTRL_PWRUPCNT + if {($CONFIG_SPIMCTRL == 1)} then {.menu22.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu22.config.f.x8.l configure -state normal; } else {.menu22.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu22.config.f.x8.l configure -state disabled} } @@ -4344,6 +4662,8 @@ proc update_define_menu22 {} { global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then { set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT&15]} else {set CONFIG_SPIMCTRL_DUALOUTPUT [expr $CONFIG_SPIMCTRL_DUALOUTPUT|16]} + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {validate_hex CONFIG_SPIMCTRL_OFFSET "$CONFIG_SPIMCTRL_OFFSET" 0} global CONFIG_SPIMCTRL_SCALER if {($CONFIG_SPIMCTRL == 1)} then {validate_int CONFIG_SPIMCTRL_SCALER "$CONFIG_SPIMCTRL_SCALER" 1} global CONFIG_SPIMCTRL_ASCALER @@ -4415,12 +4735,12 @@ proc menu23 {w title} { bool $w.config.f 23 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN int $w.config.f 23 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN bool $w.config.f 23 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM - global tmpvar_30 - minimenu $w.config.f 23 11 "Fault-tolerance" tmpvar_30 CONFIG_SPICTRL_NOFT + global tmpvar_32 + minimenu $w.config.f 23 11 "Fault-tolerance" tmpvar_32 CONFIG_SPICTRL_NOFT menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" - $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_30 -value "None" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_30 -value "Parity-DMR" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_30 -value "TMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_32 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_32 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_32 -value "TMR" -command "update_active" menusplit $w $w.config.f.x11.x.menu 3 @@ -4520,13 +4840,13 @@ proc update_define_menu23 {} { global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} - global tmpvar_30 + global tmpvar_32 global CONFIG_SPICTRL_NOFT - if {$tmpvar_30 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + if {$tmpvar_32 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} global CONFIG_SPICTRL_DMRFT - if {$tmpvar_30 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + if {$tmpvar_32 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} global CONFIG_SPICTRL_TMRFT - if {$tmpvar_30 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} + if {$tmpvar_32 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } @@ -4668,7 +4988,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4678,6 +4999,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4702,6 +5025,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4714,14 +5038,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4734,27 +5063,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4764,17 +5093,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4786,12 +5115,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4801,10 +5130,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4815,7 +5144,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4827,26 +5156,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4854,27 +5185,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4895,7 +5230,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -4943,7 +5278,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4954,14 +5289,14 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 set CONFIG_GRETH_FIFO32 0 set CONFIG_GRETH_FIFO64 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4988,6 +5323,7 @@ set CONFIG_SPIMCTRL_SDCARD 0 set CONFIG_SPIMCTRL_READCMD 0B set CONFIG_SPIMCTRL_DUMMYBYTE 0 set CONFIG_SPIMCTRL_DUALOUTPUT 0 +set CONFIG_SPIMCTRL_OFFSET 0 set CONFIG_SPIMCTRL_SCALER 1 set CONFIG_SPIMCTRL_ASCALER 8 set CONFIG_SPIMCTRL_PWRUPCNT 0 @@ -5002,7 +5338,7 @@ set CONFIG_SPICTRL_ODMODE 0 set CONFIG_SPICTRL_TWEN 0 set CONFIG_SPICTRL_MAXWLEN 0 set CONFIG_SPICTRL_SYNCRAM 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_SPICTRL_NOFT 0 set CONFIG_SPICTRL_DMRFT 0 set CONFIG_SPICTRL_TMRFT 0 @@ -5063,7 +5399,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5073,6 +5410,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5111,6 +5450,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -5123,9 +5463,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5139,239 +5480,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5416,13 +5907,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5514,38 +6005,38 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_28 + global tmpvar_30 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_29 == "1" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO1 0 [list $notmod] 2 } - if { $tmpvar_29 == "2" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO2 0 [list $notmod] 2 } - if { $tmpvar_29 == "4" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO4 0 [list $notmod] 2 } - if { $tmpvar_29 == "8" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO8 0 [list $notmod] 2 } - if { $tmpvar_29 == "16" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO16 0 [list $notmod] 2 } - if { $tmpvar_29 == "32" } then { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_UA1_FIFO32 0 [list $notmod] 2 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -5589,6 +6080,8 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUMMYBYTE $CONFIG_SPIMCTRL_DUMMYBYTE [list $notmod] 2 } global CONFIG_SPIMCTRL_DUALOUTPUT if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_tristate $cfg $autocfg CONFIG_SPIMCTRL_DUALOUTPUT $CONFIG_SPIMCTRL_DUALOUTPUT [list $notmod] 2 } + global CONFIG_SPIMCTRL_OFFSET + if {($CONFIG_SPIMCTRL == 1) && ($CONFIG_SPIMCTRL_SDCARD != 1)} then {write_hex $cfg $autocfg CONFIG_SPIMCTRL_OFFSET $CONFIG_SPIMCTRL_OFFSET $notmod } global CONFIG_SPIMCTRL_SCALER if {($CONFIG_SPIMCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SPIMCTRL_SCALER $CONFIG_SPIMCTRL_SCALER $notmod } global CONFIG_SPIMCTRL_ASCALER @@ -5618,11 +6111,11 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } - global tmpvar_30 + global tmpvar_32 if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { - if { $tmpvar_30 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } - if { $tmpvar_30 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } - if { $tmpvar_30 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} + if { $tmpvar_32 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_32 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -5667,7 +6160,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -5677,6 +6171,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -5695,8 +6191,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -5779,11 +6280,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -5804,6 +6307,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -5906,8 +6413,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -5926,6 +6435,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5966,332 +6479,358 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_28 "64" } - global tmpvar_29 - set tmpvar_29 "1" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } + global tmpvar_31 + set tmpvar_31 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_31 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_31 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_31 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_31 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_31 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_29 "32" } - global tmpvar_30 - set tmpvar_30 "None" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_31 "32" } + global tmpvar_32 + set tmpvar_32 "None" global CONFIG_SPICTRL_NOFT - if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_30 "None" } + if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_32 "None" } global CONFIG_SPICTRL_DMRFT - if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_30 "Parity-DMR" } + if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_32 "Parity-DMR" } global CONFIG_SPICTRL_TMRFT - if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_30 "TMR" } + if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_32 "TMR" } } diff --git a/designs/leon3-xilinx-xc3sd-1800/leon3mp.vhd b/designs/leon3-xilinx-xc3sd-1800/leon3mp.vhd index 7993cae7..028f9635 100644 --- a/designs/leon3-xilinx-xc3sd-1800/leon3mp.vhd +++ b/designs/leon3-xilinx-xc3sd-1800/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-xc3sd-1800/testbench.vhd b/designs/leon3-xilinx-xc3sd-1800/testbench.vhd index b89d1f67..e77305bf 100644 --- a/designs/leon3-xilinx-xc3sd-1800/testbench.vhd +++ b/designs/leon3-xilinx-xc3sd-1800/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-xilinx-xc3sd-1800/tkconfig.h b/designs/leon3-xilinx-xc3sd-1800/tkconfig.h index 83419575..5a5e8641 100644 --- a/designs/leon3-xilinx-xc3sd-1800/tkconfig.h +++ b/designs/leon3-xilinx-xc3sd-1800/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -1067,6 +1089,10 @@ #ifndef CONFIG_SPIMCTRL_PWRUPCNT #define CONFIG_SPIMCTRL_PWRUPCNT 0 #endif + +#ifndef CONFIG_SPIMCTRL_OFFSET +#define CONFIG_SPIMCTRL_OFFSET 0 +#endif #ifndef CONFIG_SPICTRL_ENABLE #define CONFIG_SPICTRL_ENABLE 0 #endif diff --git a/designs/leon3-ztex-ufm-111/Makefile b/designs/leon3-ztex-ufm-111/Makefile index 0c8db34e..0dd33950 100644 --- a/designs/leon3-ztex-ufm-111/Makefile +++ b/designs/leon3-ztex-ufm-111/Makefile @@ -1,11 +1,13 @@ include .config + GRLIB=../.. TOP=leon3mp BOARD=ztex-ufm-111 +DESIGN=leon3-ztex-ufm-111 include $(GRLIB)/boards/$(BOARD)/Makefile.inc DEVICE=$(PART)-$(PACKAGE)$(SPEED) UCF=$(TOP).ucf -#ISEMAPOPT=-timing +UCF_PLANAHEAD=$(UCF) QSF=$(GRLIB)/boards/$(BOARD)/$(TOP).qsf EFFORT=high XSTOPT=-uc leon3mp.xcf @@ -22,9 +24,16 @@ VHDLOPTSYNFILES = \ mig37/mig_37/user_design/rtl/mcb_soft_calibration_top.vhd \ mig37/mig_37/user_design/rtl/memc3_infrastructure.vhd \ mig37/mig_37/user_design/rtl/memc3_wrapper.vhd \ - mig37/mig_37/user_design/rtl/mig_37.vhd - -VHDLSYNFILES = config.vhd ahbrom.vhd ahb2mig_ztex.vhd leon3mp.vhd + mig37/mig_37/user_design/rtl/mig_37.vhd \ + mig39/mig_39/user_design/rtl/iodrp_controller.vhd \ + mig39/mig_39/user_design/rtl/iodrp_mcb_controller.vhd \ + mig39/mig_39/user_design/rtl/mcb_raw_wrapper.vhd \ + mig39/mig_39/user_design/rtl/mcb_soft_calibration.vhd \ + mig39/mig_39/user_design/rtl/mcb_soft_calibration_top.vhd \ + mig39/mig_39/user_design/rtl/memc3_infrastructure.vhd \ + mig39/mig_39/user_design/rtl/memc3_wrapper.vhd \ + mig39/mig_39/user_design/rtl/mig_39.vhd \ + config.vhd ahbrom.vhd ahb2mig_ztex.vhd leon3mp.vhd VHDLSIMFILES=testbench.vhd @@ -36,10 +45,10 @@ CLEAN=soft-clean TECHLIBS = secureip unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann usbhc spw + tmtc openchip ihp usbhc spw DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - usb grusbhc spacewire ata haps coremp7 ascs slink hcan \ - leon4 leon4b64 l2cache pwm gr1553b iommu + usb grusbhc spacewire ascs slink hcan \ + leon4 leon4v0 l2cache pwm gr1553b iommu FILEADD = MCB.vhd FILESKIP = grcan.vhd @@ -71,3 +80,13 @@ ztex-upload-fw: -uu $(ZTEX)/examples/usb-fpga-1.11/standalone/standalone.ihx \ -rf -uf $(TOP).bit +mig39: + coregen -b mig39/mig.xco -p mig39 + patch -p0 < mig_patch.txt + patch -p0 < memc3_infrastructure_patch.txt + patch -p0 < mcb_soft_calibration_patch.txt + +mig39clean: + -rm -rf mig39/mig_39* mig39/tmp + +.PHONY : mig mig39 mig39clean \ No newline at end of file diff --git a/designs/leon3-ztex-ufm-111/README.txt b/designs/leon3-ztex-ufm-111/README.txt index 947d8f63..790245bf 100644 --- a/designs/leon3-ztex-ufm-111/README.txt +++ b/designs/leon3-ztex-ufm-111/README.txt @@ -18,16 +18,27 @@ interface. The MIG source code cannot be distributed due to the prohibitive Xilinx license, so the MIG must be re-generated with coregen before simulation and synthesis can be done. -To generate the MIG and install the Xilinx unisim simulation +To generate the MIG using ISE13 and install the Xilinx unisim simulation library, do as follows: make mig make install-secureip -This will ONLY work with ISE-13 installed, and the XILINX variable -properly set in the shell. To synthesize the design, do +To generate the MIG using ISE14 and install the Xilinx unisim simulation +library, do as follows: + + make mig39 + make install-secureip + +This will ONLY work with correct version of ISE installed, and the XILINX variable +properly set in the shell. For ISE13 it is recommened to use the 'ise' make target +and for ISE14 to use the 'planAhead' target. To synthesize the design, do + + make ise (ISE13) + +or - make ise + make planAhead (ISE14) The FPGA can be programmed via JTAG using: diff --git a/designs/leon3-ztex-ufm-111/ahb2mig_ztex.vhd b/designs/leon3-ztex-ufm-111/ahb2mig_ztex.vhd index 53d85c43..4af0d1e3 100644 --- a/designs/leon3-ztex-ufm-111/ahb2mig_ztex.vhd +++ b/designs/leon3-ztex-ufm-111/ahb2mig_ztex.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -344,7 +344,6 @@ begin ahbso.hirq <= (others => '0'); ahbso.hindex <= hindex; ahbso.hsplit <= (others => '0'); - ahbso.hcache <= '1'; apbo.pirq <= (others => '0'); apbo.pindex <= pindex; diff --git a/designs/leon3-ztex-ufm-111/ahbrom.vhd b/designs/leon3-ztex-ufm-111/ahbrom.vhd index 4c4156c8..181cdb27 100644 --- a/designs/leon3-ztex-ufm-111/ahbrom.vhd +++ b/designs/leon3-ztex-ufm-111/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-ztex-ufm-111/config.help b/designs/leon3-ztex-ufm-111/config.help index 69a6cafa..260eb3d2 100644 --- a/designs/leon3-ztex-ufm-111/config.help +++ b/designs/leon3-ztex-ufm-111/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-ztex-ufm-111/lconfig.tk b/designs/leon3-ztex-ufm-111/lconfig.tk index 426a1d59..eedfacf9 100755 --- a/designs/leon3-ztex-ufm-111/lconfig.tk +++ b/designs/leon3-ztex-ufm-111/lconfig.tk @@ -751,7 +751,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -761,7 +762,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -904,8 +907,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -924,6 +929,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1123,9 +1132,10 @@ proc menu3 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_3 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_3 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_3 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_3 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_3 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_3 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 3 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 3 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 3 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1179,10 +1189,11 @@ proc update_menu3 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu3.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x2.l configure -state normal; } else {.menu3.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x2.l configure -state disabled} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {.menu3.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x2.l configure -state normal; } else {.menu3.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x2.l configure -state disabled} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu3.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x3.l configure -state normal; } else {.menu3.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x3.l configure -state disabled} global CONFIG_OCLKB_DIV @@ -1228,14 +1239,16 @@ proc update_define_menu3 {} { if {$tmpvar_3 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_3 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_3 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_3 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_3 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1308,13 +1321,21 @@ proc menu4 {w title} { bool $w.config.f 4 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 4 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 4 2 "Integer unit " 5 - submenu $w.config.f 4 3 "Floating-point unit" 6 - submenu $w.config.f 4 4 "Cache system" 7 - submenu $w.config.f 4 5 "MMU" 8 - submenu $w.config.f 4 6 "Debug Support Unit " 9 - submenu $w.config.f 4 7 "Fault-tolerance " 10 - submenu $w.config.f 4 8 "VHDL debug settings " 11 + global tmpvar_4 + minimenu $w.config.f 4 2 "Force values from example configuration (see help)" tmpvar_4 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_4 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_4 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_4 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_4 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 4 3 "Integer unit " 5 + submenu $w.config.f 4 4 "Floating-point unit" 6 + submenu $w.config.f 4 5 "Cache system" 7 + submenu $w.config.f 4 6 "MMU" 8 + submenu $w.config.f 4 7 "Debug Support Unit " 9 + submenu $w.config.f 4 8 "Fault-tolerance " 10 + submenu $w.config.f 4 9 "VHDL debug settings " 11 @@ -1354,22 +1375,290 @@ proc update_menu4 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x1.l configure -state normal; } else {.menu4.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x1.l configure -state disabled} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x2 normal {m}} else {configure_entry .menu4.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x3 normal {m}} else {configure_entry .menu4.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x4 normal {m}} else {configure_entry .menu4.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x5 normal {m}} else {configure_entry .menu4.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x6 normal {m}} else {configure_entry .menu4.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x7 normal {m}} else {configure_entry .menu4.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x2 normal {x l}} else {configure_entry .menu4.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x3 normal {m}} else {configure_entry .menu4.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x4 normal {m}} else {configure_entry .menu4.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x5 normal {m}} else {configure_entry .menu4.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x6 normal {m}} else {configure_entry .menu4.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x7 normal {m}} else {configure_entry .menu4.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x8 normal {m}} else {configure_entry .menu4.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x9 normal {m}} else {configure_entry .menu4.config.f.x9 disabled {m}} } proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_4 + global CONFIG_LEON3_MIN + if {$tmpvar_4 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_4 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_4 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_4 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1426,21 +1715,21 @@ proc menu5 {w title} { int $w.config.f 5 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 5 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_4 - minimenu $w.config.f 5 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_5 + minimenu $w.config.f 5 2 "Hardware multiplier latency" tmpvar_5 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_5 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_5 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_5 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 5 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_5 - minimenu $w.config.f 5 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED + global tmpvar_6 + minimenu $w.config.f 5 4 "Multipler structure " tmpvar_6 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_6 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_6 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 5 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 5 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1487,36 +1776,37 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x0.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x0.l configure -state normal; } else {.menu5.config.f.x0.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x0.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x0.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x0.l configure -state normal; } else {.menu5.config.f.x0.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x0.l configure -state disabled} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x1 normal {n l y}} else {configure_entry .menu5.config.f.x1 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x2 normal {x l}} else {configure_entry .menu5.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x2 normal {x l}} else {configure_entry .menu5.config.f.x2 disabled {x l}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x6 normal {n l y}} else {configure_entry .menu5.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x7 normal {n l y}} else {configure_entry .menu5.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x8.l configure -state normal; } else {.menu5.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x8.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x8.l configure -state normal; } else {.menu5.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x8.l configure -state disabled} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x9.l configure -state normal; } else {.menu5.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x9.l configure -state normal; } else {.menu5.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x10 normal {n l y}} else {configure_entry .menu5.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x11.l configure -state normal; } else {.menu5.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x11.l configure -state normal; } else {.menu5.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x11.l configure -state disabled} } @@ -1524,48 +1814,49 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_5 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_5 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_5 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_6 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_6 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_6 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_6 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1621,27 +1912,27 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_6 - minimenu $w.config.f 6 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU + global tmpvar_7 + minimenu $w.config.f 6 1 "FPU core" tmpvar_7 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_7 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_7 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_7 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_7 - minimenu $w.config.f 6 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_8 + minimenu $w.config.f 6 2 "GRFPU multiplier" tmpvar_8 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_8 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_8 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_8 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_8 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_8 - minimenu $w.config.f 6 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 + global tmpvar_9 + minimenu $w.config.f 6 3 "GRFPU-LITE controller" tmpvar_9 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_9 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_9 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_9 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 6 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1682,16 +1973,17 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu6.config.f.x1 normal {x l}} else {configure_entry .menu6.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu6.config.f.x1 normal {x l}} else {configure_entry .menu6.config.f.x1 disabled {x l}} global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {configure_entry .menu6.config.f.x2 normal {x l}} else {configure_entry .menu6.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {configure_entry .menu6.config.f.x2 normal {x l}} else {configure_entry .menu6.config.f.x2 disabled {x l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu6.config.f.x3 normal {x l}} else {configure_entry .menu6.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu6.config.f.x3 normal {x l}} else {configure_entry .menu6.config.f.x3 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu6.config.f.x4 normal {n l y}} else {configure_entry .menu6.config.f.x4 disabled {y n l}} } @@ -1700,34 +1992,35 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_6 + global tmpvar_7 global CONFIG_FPU_GRFPU - if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_7 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_7 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_7 + if {$tmpvar_7 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_8 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_8 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_8 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_8 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_8 + if {$tmpvar_8 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_9 global CONFIG_FPU_GRFPC0 - if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_9 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_9 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_9 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1784,92 +2077,92 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_9 - minimenu $w.config.f 7 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 + global tmpvar_10 + minimenu $w.config.f 7 1 "Associativity (sets) " tmpvar_10 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_10 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_10 - minimenu $w.config.f 7 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 + global tmpvar_11 + minimenu $w.config.f 7 2 "Way size (kbytes/way)" tmpvar_11 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_11 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_11 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_11 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_11 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_11 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_11 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_11 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_11 - minimenu $w.config.f 7 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 + global tmpvar_12 + minimenu $w.config.f 7 3 "Line size (bytes/line)" tmpvar_12 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_12 - minimenu $w.config.f 7 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND + global tmpvar_13 + minimenu $w.config.f 7 4 "Replacement alorithm" tmpvar_13 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_13 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_13 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_13 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_13 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 7 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 7 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_13 - minimenu $w.config.f 7 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_14 + minimenu $w.config.f 7 7 "Local data RAM size (kbytes)" tmpvar_14 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 7 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 7 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_14 - minimenu $w.config.f 7 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 + global tmpvar_15 + minimenu $w.config.f 7 10 "Associativity (sets)" tmpvar_15 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_15 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_15 - minimenu $w.config.f 7 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 + global tmpvar_16 + minimenu $w.config.f 7 11 "Set size (kbytes/set)" tmpvar_16 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_16 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_16 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_16 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_16 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_16 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_16 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_16 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_16 - minimenu $w.config.f 7 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 + global tmpvar_17 + minimenu $w.config.f 7 12 "Line size (bytes/line)" tmpvar_17 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_17 - minimenu $w.config.f 7 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND + global tmpvar_18 + minimenu $w.config.f 7 13 "Replacement alorithm" tmpvar_18 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_18 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_18 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_18 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_18 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 7 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 7 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1877,18 +2170,18 @@ proc menu7 {w title} { bool $w.config.f 7 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 7 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 7 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_18 - minimenu $w.config.f 7 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_19 + minimenu $w.config.f 7 20 "Local data RAM size (kbytes)" tmpvar_19 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_19 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_19 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_19 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_19 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_19 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_19 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_19 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_19 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_19 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 7 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1929,52 +2222,53 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x1 normal {x l}} else {configure_entry .menu7.config.f.x1 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x2 normal {x l}} else {configure_entry .menu7.config.f.x2 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x3 normal {x l}} else {configure_entry .menu7.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x1 normal {x l}} else {configure_entry .menu7.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x2 normal {x l}} else {configure_entry .menu7.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x3 normal {x l}} else {configure_entry .menu7.config.f.x3 disabled {x l}} global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x4 normal {x l}} else {configure_entry .menu7.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x4 normal {x l}} else {configure_entry .menu7.config.f.x4 disabled {x l}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu7.config.f.x6 normal {n l y}} else {configure_entry .menu7.config.f.x6 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x7 normal {x l}} else {configure_entry .menu7.config.f.x7 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x7 normal {x l}} else {configure_entry .menu7.config.f.x7 disabled {x l}} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {.menu7.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x8.l configure -state normal; } else {.menu7.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x8.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {.menu7.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x8.l configure -state normal; } else {.menu7.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x8.l configure -state disabled} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x9 normal {n l y}} else {configure_entry .menu7.config.f.x9 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x10 normal {x l}} else {configure_entry .menu7.config.f.x10 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x11 normal {x l}} else {configure_entry .menu7.config.f.x11 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x12 normal {x l}} else {configure_entry .menu7.config.f.x12 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x10 normal {x l}} else {configure_entry .menu7.config.f.x10 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x11 normal {x l}} else {configure_entry .menu7.config.f.x11 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x12 normal {x l}} else {configure_entry .menu7.config.f.x12 disabled {x l}} global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x13 normal {x l}} else {configure_entry .menu7.config.f.x13 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x13 normal {x l}} else {configure_entry .menu7.config.f.x13 disabled {x l}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu7.config.f.x14 normal {n l y}} else {configure_entry .menu7.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu7.config.f.x15 normal {n l y}} else {configure_entry .menu7.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu7.config.f.x16 normal {n l y}} else {configure_entry .menu7.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu7.config.f.x17 normal {n l y}} else {configure_entry .menu7.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {.menu7.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x18.l configure -state normal; } else {.menu7.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x18.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {.menu7.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x18.l configure -state normal; } else {.menu7.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x18.l configure -state disabled} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu7.config.f.x19 normal {n l y}} else {configure_entry .menu7.config.f.x19 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x20 normal {x l}} else {configure_entry .menu7.config.f.x20 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x20 normal {x l}} else {configure_entry .menu7.config.f.x20 disabled {x l}} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {.menu7.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x21.l configure -state normal; } else {.menu7.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x21.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {.menu7.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x21.l configure -state normal; } else {.menu7.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x21.l configure -state disabled} } @@ -1982,162 +2276,163 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_9 + global tmpvar_10 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_10 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_10 + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_11 global CONFIG_ICACHE_SZ1 - if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_11 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_11 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_11 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_11 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_11 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_11 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_11 + if {$tmpvar_11 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_12 global CONFIG_ICACHE_LZ16 - if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_12 + if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_13 global CONFIG_ICACHE_ALGORND - if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_13 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_13 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_13 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_13 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_14 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_14 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_14 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_14 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_14 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_14 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_14 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_14 + global tmpvar_15 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_15 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_15 + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_16 global CONFIG_DCACHE_SZ1 - if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_16 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_16 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_16 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_16 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_16 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_16 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_16 + if {$tmpvar_16 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_17 global CONFIG_DCACHE_LZ16 - if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_17 + if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_18 global CONFIG_DCACHE_ALGORND - if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_18 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_18 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_18 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_18 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_19 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_19 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_19 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_19 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_19 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_19 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_19 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_19 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_19 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2193,45 +2488,47 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_19 - minimenu $w.config.f 8 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED + global tmpvar_20 + minimenu $w.config.f 8 1 "MMU type " tmpvar_20 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_20 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_20 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 8 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY + global tmpvar_21 + minimenu $w.config.f 8 2 "TLB replacement sheme " tmpvar_21 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_21 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_21 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_21 - minimenu $w.config.f 8 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_22 - minimenu $w.config.f 8 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 + minimenu $w.config.f 8 3 "Instruction (or combined) TLB entries" tmpvar_22 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_23 + minimenu $w.config.f 8 4 "Data TLB entries" tmpvar_23 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_23 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_23 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 8 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_23 - minimenu $w.config.f 8 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K + global tmpvar_24 + minimenu $w.config.f 8 6 "MMU page size" tmpvar_24 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_24 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_24 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_24 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_24 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_24 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2271,18 +2568,19 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x1 normal {x l}} else {configure_entry .menu8.config.f.x1 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x2 normal {x l}} else {configure_entry .menu8.config.f.x2 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x3 normal {x l}} else {configure_entry .menu8.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x1 normal {x l}} else {configure_entry .menu8.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x2 normal {x l}} else {configure_entry .menu8.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x3 normal {x l}} else {configure_entry .menu8.config.f.x3 disabled {x l}} global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {configure_entry .menu8.config.f.x4 normal {x l}} else {configure_entry .menu8.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {configure_entry .menu8.config.f.x4 normal {x l}} else {configure_entry .menu8.config.f.x4 disabled {x l}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu8.config.f.x5 normal {n l y}} else {configure_entry .menu8.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x6 normal {x l}} else {configure_entry .menu8.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x6 normal {x l}} else {configure_entry .menu8.config.f.x6 disabled {x l}} } @@ -2290,55 +2588,60 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_19 + global tmpvar_20 global CONFIG_MMU_COMBINED - if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_20 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_20 + if {$tmpvar_20 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_21 global CONFIG_MMU_REPARRAY - if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_21 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_21 + if {$tmpvar_21 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_22 global CONFIG_MMU_I2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_22 + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_23 global CONFIG_MMU_D2 - if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_23 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_23 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_23 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_23 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_23 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_23 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_MMU_PAGE_4K - if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_24 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_24 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_24 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_24 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_24 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2395,24 +2698,24 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 9 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_24 - minimenu $w.config.f 9 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 + global tmpvar_25 + minimenu $w.config.f 9 2 "Instruction trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 9 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_25 - minimenu $w.config.f 9 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 + global tmpvar_26 + minimenu $w.config.f 9 4 "AHB trace buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2452,17 +2755,18 @@ proc menu9 {w title} { proc update_menu9 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu9.config.f.x1 normal {n l y}} else {configure_entry .menu9.config.f.x1 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {configure_entry .menu9.config.f.x4 normal {x l}} else {configure_entry .menu9.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {configure_entry .menu9.config.f.x4 normal {x l}} else {configure_entry .menu9.config.f.x4 disabled {x l}} } @@ -2470,37 +2774,38 @@ proc update_define_menu9 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2556,16 +2861,23 @@ proc menu10 {w title} { bool $w.config.f 10 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_26 - minimenu $w.config.f 10 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE + global tmpvar_27 + minimenu $w.config.f 10 1 "IU Register file protection " tmpvar_27 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_27 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 10 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_28 + minimenu $w.config.f 10 2 "FPU Register file protection " tmpvar_28 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_28 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_28 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_28 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_28 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 10 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 10 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 10 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2613,9 +2925,7 @@ proc update_menu10 {} { configure_entry .menu10.config.f.x0 normal {n l y}} else {configure_entry .menu10.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu10.config.f.x1 normal {x l}} else {configure_entry .menu10.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu10.config.f.x2 normal {n l y}} else {configure_entry .menu10.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu10.config.f.x2 normal {x l}} else {configure_entry .menu10.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu10.config.f.x3 normal {n l y}} else {configure_entry .menu10.config.f.x3 disabled {y n l}} @@ -2637,21 +2947,26 @@ proc update_define_menu10 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_26 + global tmpvar_27 global CONFIG_IUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_27 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_27 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_28 + global CONFIG_FPUFT_NONE + if {$tmpvar_28 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_28 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_28 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_28 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -3284,16 +3599,16 @@ proc menu16 {w title} { hex $w.config.f 16 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 16 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 16 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 16 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 16 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 16 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3355,21 +3670,21 @@ proc update_define_menu16 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3428,15 +3743,15 @@ proc menu17 {w title} { bool $w.config.f 17 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_28 - minimenu $w.config.f 17 1 "UART1 FIFO depth" tmpvar_28 CONFIG_UA1_FIFO1 + global tmpvar_30 + minimenu $w.config.f 17 1 "UART1 FIFO depth" tmpvar_30 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 17 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 17 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3525,19 +3840,19 @@ proc update_menu17 {} { proc update_define_menu17 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_28 + global tmpvar_30 global CONFIG_UA1_FIFO1 - if {$tmpvar_28 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_30 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_28 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_30 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -3631,12 +3946,12 @@ proc menu18 {w title} { bool $w.config.f 18 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN int $w.config.f 18 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN bool $w.config.f 18 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM - global tmpvar_29 - minimenu $w.config.f 18 11 "Fault-tolerance" tmpvar_29 CONFIG_SPICTRL_NOFT + global tmpvar_31 + minimenu $w.config.f 18 11 "Fault-tolerance" tmpvar_31 CONFIG_SPICTRL_NOFT menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" - $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_29 -value "None" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_29 -value "Parity-DMR" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_29 -value "TMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_31 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_31 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_31 -value "TMR" -command "update_active" menusplit $w $w.config.f.x11.x.menu 3 @@ -3736,13 +4051,13 @@ proc update_define_menu18 {} { global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} - global tmpvar_29 + global tmpvar_31 global CONFIG_SPICTRL_NOFT - if {$tmpvar_29 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + if {$tmpvar_31 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} global CONFIG_SPICTRL_DMRFT - if {$tmpvar_29 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + if {$tmpvar_31 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} global CONFIG_SPICTRL_TMRFT - if {$tmpvar_29 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} + if {$tmpvar_31 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } @@ -3884,7 +4199,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -3894,6 +4210,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -3922,6 +4240,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -3934,14 +4253,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_4 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -3954,27 +4278,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -3984,17 +4308,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4006,12 +4330,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4021,10 +4345,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4035,7 +4359,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4047,26 +4371,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_21 "(not set)" +set tmpvar_22 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_22 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_23 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4074,27 +4400,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_28 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4124,7 +4454,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4134,7 +4464,7 @@ set CONFIG_AHBRAM_SZ32 0 set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_UART1_ENABLE 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4166,7 +4496,7 @@ set CONFIG_SPICTRL_ODMODE 0 set CONFIG_SPICTRL_TWEN 0 set CONFIG_SPICTRL_MAXWLEN 0 set CONFIG_SPICTRL_SYNCRAM 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_SPICTRL_NOFT 0 set CONFIG_SPICTRL_DMRFT 0 set CONFIG_SPICTRL_TMRFT 0 @@ -4226,7 +4556,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4236,6 +4567,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4280,6 +4613,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_3 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } + if { $tmpvar_3 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } global CONFIG_CLK_MUL @@ -4292,9 +4626,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4308,239 +4643,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_4 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_4 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_4 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_4 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_4 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - if { $tmpvar_4 == "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 } - if { $tmpvar_4 == "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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_5 == "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 } + if { $tmpvar_5 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_6 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_6 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_6 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_6 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_7 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 }} global tmpvar_8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_8 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_9 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 }} global tmpvar_22 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_24 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_24 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_24 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_24 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_24 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_26 + global tmpvar_27 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_28 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_28 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_28 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_28 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_28 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4605,28 +5090,28 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_28 + global tmpvar_30 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4678,11 +5163,11 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } - global tmpvar_29 + global tmpvar_31 if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { - if { $tmpvar_29 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } - if { $tmpvar_29 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } - if { $tmpvar_29 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} + if { $tmpvar_31 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_31 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_31 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -4727,7 +5212,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4737,6 +5223,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4758,8 +5246,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -4842,11 +5335,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -4867,6 +5362,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0 global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0 global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0 @@ -4959,8 +5458,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -4979,6 +5480,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5027,308 +5532,334 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_3 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_3 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_3 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_3 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_3 "Xilinx-DCM" } global tmpvar_4 - set tmpvar_4 "5-cycles" + set tmpvar_4 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_4 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_4 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_4 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_4 "Custom-configuration" } + global tmpvar_5 + set tmpvar_5 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_5 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_5 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } - global tmpvar_5 - set tmpvar_5 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_5 "5-cycles" } + global tmpvar_6 + set tmpvar_6 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_6 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_6 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } - global tmpvar_6 - set tmpvar_6 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_6 "Designware" } + global tmpvar_7 + set tmpvar_7 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_7 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_7 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } - global tmpvar_7 - set tmpvar_7 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_7 "Meiko" } + global tmpvar_8 + set tmpvar_8 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_8 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_8 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_8 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } - global tmpvar_8 - set tmpvar_8 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_8 "TechSpec" } + global tmpvar_9 + set tmpvar_9 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_9 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_9 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } - global tmpvar_9 - set tmpvar_9 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_9 "Non-blocking" } + global tmpvar_10 + set tmpvar_10 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_10 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } - global tmpvar_10 - set tmpvar_10 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_10 "4" } + global tmpvar_11 + set tmpvar_11 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_11 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_11 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_11 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_11 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_11 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_11 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_11 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } - global tmpvar_11 - set tmpvar_11 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_11 "256" } + global tmpvar_12 + set tmpvar_12 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_12 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } - global tmpvar_12 - set tmpvar_12 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_12 "32" } + global tmpvar_13 + set tmpvar_13 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_13 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_13 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_13 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } - global tmpvar_13 - set tmpvar_13 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_13 "LRU" } + global tmpvar_14 + set tmpvar_14 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_14 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_14 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_14 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_14 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_14 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_14 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_14 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_14 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } - global tmpvar_14 - set tmpvar_14 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_14 "256" } + global tmpvar_15 + set tmpvar_15 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_15 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } - global tmpvar_15 - set tmpvar_15 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_15 "4" } + global tmpvar_16 + set tmpvar_16 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_16 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_16 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_16 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_16 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_16 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_16 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_16 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } - global tmpvar_16 - set tmpvar_16 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_16 "256" } + global tmpvar_17 + set tmpvar_17 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_17 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } - global tmpvar_17 - set tmpvar_17 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_17 "32" } + global tmpvar_18 + set tmpvar_18 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_18 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_18 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_18 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } - global tmpvar_18 - set tmpvar_18 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_18 "LRU" } + global tmpvar_19 + set tmpvar_19 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_19 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_19 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_19 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_19 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_19 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_19 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_19 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_19 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } - global tmpvar_19 - set tmpvar_19 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_19 "256" } + global tmpvar_20 + set tmpvar_20 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_20 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } - global tmpvar_20 - set tmpvar_20 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_20 "split" } + global tmpvar_21 + set tmpvar_21 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_21 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_21 "Increment" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_23 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_23 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_23 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_23 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } - global tmpvar_23 - set tmpvar_23 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_23 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_23 "64" } + global tmpvar_24 + set tmpvar_24 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_24 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_24 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_24 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_24 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_24 "Programmable" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_26 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_26 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_26 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_26 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_26 "16" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_27 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_28 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_28 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_28 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_28 "TMR" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "1" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_30 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_30 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_28 "32" } - global tmpvar_29 - set tmpvar_29 "None" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_30 "32" } + global tmpvar_31 + set tmpvar_31 "None" global CONFIG_SPICTRL_NOFT - if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_29 "None" } + if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_31 "None" } global CONFIG_SPICTRL_DMRFT - if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_29 "Parity-DMR" } + if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_31 "Parity-DMR" } global CONFIG_SPICTRL_TMRFT - if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_29 "TMR" } + if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_31 "TMR" } } diff --git a/designs/leon3-ztex-ufm-111/leon3mp.ucf b/designs/leon3-ztex-ufm-111/leon3mp.ucf index 8d2345cb..8ca4761a 100644 --- a/designs/leon3-ztex-ufm-111/leon3mp.ucf +++ b/designs/leon3-ztex-ufm-111/leon3mp.ucf @@ -35,9 +35,13 @@ NET "sd_cmd" LOC = "H13"; CONFIG VCCAUX=2.5; CONFIG MCB_PERFORMANCE= STANDARD; -#NET "*/mcb_soft_calibration_inst/DONE_SOFTANDHARD_CAL" TIG; -NET "*/memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/selfrefresh_mcb_mode" TIG; -NET "*/c3_pll_lock" TIG; +# --- MIG37 --- +NET "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/selfrefresh_mcb_mode" TIG; +NET "mig_gen.ddrc/MCB_inst/c?_pll_lock" TIG; + +# --- MIG39 --- +INST "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/DONE_SOFTANDHARD_CAL*" TIG; + ############################################################################ ## Memory Controller 3 diff --git a/designs/leon3-ztex-ufm-111/leon3mp.vhd b/designs/leon3-ztex-ufm-111/leon3mp.vhd index 929daa4f..81bf188c 100644 --- a/designs/leon3-ztex-ufm-111/leon3mp.vhd +++ b/designs/leon3-ztex-ufm-111/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-ztex-ufm-111/mcb_soft_calibration_patch.txt b/designs/leon3-ztex-ufm-111/mcb_soft_calibration_patch.txt new file mode 100644 index 00000000..ef221fad --- /dev/null +++ b/designs/leon3-ztex-ufm-111/mcb_soft_calibration_patch.txt @@ -0,0 +1,1049 @@ +--- ./mig39/mig_39//user_design/rtl/mcb_soft_calibration.vhd 2013-01-15 15:13:18.000000000 +0100 ++++ ./p/a/t/c/h/mig39/mig_39//user_design/rtl/mcb_soft_calibration.vhd 2013-01-15 15:19:15.608793398 +0100 +@@ -94,15 +94,7 @@ + -- 3.7: 04/26/10: Added DDR2 Initialization fix to meet 400 ns wait as outlined in step d) of JEDEC DDR2 spec . + -- 3.8: 05/05/10: Added fixes for the CR# 559092 (updated Mult_Divide function) and 555416 (added IOB attribute to DONE_SOFTANDHARD_CAL). + -- 3.9: 05/24/10: Added 200us Wait logic to control CKE_Train. The 200us Wait counter assumes UI_CLK freq not higher than 100 MHz. +--- 3.10 10/22/10: Fixed PERFORM_START_DYN_CAL_AFTER_SELFREFRESH logic. +--- 3.11 2/14/11: Apply a different skkew for the P and N inputs for the differential LDQS and UDQS signals to provide more noise immunity. +--- 4.1 03/08/12: Fixed SELFREFRESH_MCB_REQ logic. It should not need depend on the SM STATE so that +--- MCB can come out of selfresh mode. SM requires refresh cycle to update the DQS value. +--- 4.2 05/10/12: All P/N terms of input and bidir memory pins are initialized with value of ZERO. TZQINIT_MAXCNT +--- are set to 8 for LPDDR,DDR and DDR2 interface . +--- Keep the UICMDEN in assertion state when SM is in RST_DELAY state so that MCB will not start doing +--- Premable detection until the second deassertion of MCB_SYSRST. +- ++-- 3.10 10/22/10: Fixed PERFORM_START_DYN_CAL_AFTER_SELFREFRESH logic. + + -- End Revision + --********************************************************************************** +@@ -157,17 +149,17 @@ + MCB_UIADDR : out std_logic_vector(4 downto 0) := "00000"; -- to MCB's UIADDR port (gets passed to IODRP2_MCB's AUXADDR port + MCB_UICMDEN : out std_logic := '1'; -- set to 1 to take control of UI interface - removes control from internal calib block + MCB_UIDONECAL : out std_logic := '0'; -- set to 0 to "tell" controller that it's still in a calibrate state +- MCB_UIDQLOWERDEC : out std_logic ; +- MCB_UIDQLOWERINC : out std_logic ; +- MCB_UIDQUPPERDEC : out std_logic ; +- MCB_UIDQUPPERINC : out std_logic ; ++ MCB_UIDQLOWERDEC : out std_logic := '0'; ++ MCB_UIDQLOWERINC : out std_logic := '0'; ++ MCB_UIDQUPPERDEC : out std_logic := '0'; ++ MCB_UIDQUPPERINC : out std_logic := '0'; + MCB_UILDQSDEC : out std_logic := '0'; + MCB_UILDQSINC : out std_logic := '0'; + MCB_UIREAD : out std_logic; -- enables read w/o writing by turning on a SDO->SDI loopback inside the IODRP2_MCBs (doesn't exist in + -- regular IODRP2). IODRPCTRLR_R_WB becomes don't-care. + MCB_UIUDQSDEC : out std_logic := '0'; + MCB_UIUDQSINC : out std_logic := '0'; +- MCB_RECAL : out std_logic ; -- future hook to drive MCB's RECAL pin - initiates a hard re-calibration sequence when high ++ MCB_RECAL : out std_logic := '0'; -- future hook to drive MCB's RECAL pin - initiates a hard re-calibration sequence when high + MCB_UICMD : out std_logic; + MCB_UICMDIN : out std_logic; + MCB_UIDQCOUNT : out std_logic_vector(3 downto 0); +@@ -234,50 +226,31 @@ + constant WAIT5 : std_logic_vector(5 downto 0) := "001111"; + constant BROADCAST_NTERM : std_logic_vector(5 downto 0) := "010000"; + constant WAIT6 : std_logic_vector(5 downto 0) := "010001"; +- +- constant LDQS_CLK_WRITE_P_TERM : std_logic_vector(5 downto 0) := "010010"; +- constant LDQS_CLK_P_TERM_WAIT : std_logic_vector(5 downto 0) := "010011"; +- constant LDQS_CLK_WRITE_N_TERM : std_logic_vector(5 downto 0) := "010100"; +- constant LDQS_CLK_N_TERM_WAIT : std_logic_vector(5 downto 0) := "010101"; +- constant LDQS_PIN_WRITE_P_TERM : std_logic_vector(5 downto 0) := "010110"; +- constant LDQS_PIN_P_TERM_WAIT : std_logic_vector(5 downto 0) := "010111"; +- constant LDQS_PIN_WRITE_N_TERM : std_logic_vector(5 downto 0) := "011000"; +- constant LDQS_PIN_N_TERM_WAIT : std_logic_vector(5 downto 0) := "011001"; +- constant UDQS_CLK_WRITE_P_TERM : std_logic_vector(5 downto 0) := "011010"; +- constant UDQS_CLK_P_TERM_WAIT : std_logic_vector(5 downto 0) := "011011"; +- constant UDQS_CLK_WRITE_N_TERM : std_logic_vector(5 downto 0) := "011100"; +- constant UDQS_CLK_N_TERM_WAIT : std_logic_vector(5 downto 0) := "011101"; +- constant UDQS_PIN_WRITE_P_TERM : std_logic_vector(5 downto 0) := "011110"; +- constant UDQS_PIN_P_TERM_WAIT : std_logic_vector(5 downto 0) := "011111"; +- constant UDQS_PIN_WRITE_N_TERM : std_logic_vector(5 downto 0) := "100000"; +- constant UDQS_PIN_N_TERM_WAIT : std_logic_vector(5 downto 0) := "100001"; +- +- constant OFF_RZQ_PTERM : std_logic_vector(5 downto 0) := "100010"; +- constant WAIT7 : std_logic_vector(5 downto 0) := "100011"; +- constant OFF_ZIO_NTERM : std_logic_vector(5 downto 0) := "100100"; +- constant WAIT8 : std_logic_vector(5 downto 0) := "100101"; +- constant RST_DELAY : std_logic_vector(5 downto 0) := "100110"; +- constant START_DYN_CAL_PRE : std_logic_vector(5 downto 0) := "100111"; +- constant WAIT_FOR_UODONE : std_logic_vector(5 downto 0) := "101000"; +- constant LDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "101001"; +- constant LDQS_WAIT1 : std_logic_vector(5 downto 0) := "101010"; +- constant LDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "101011"; +- constant LDQS_WAIT2 : std_logic_vector(5 downto 0) := "101100"; +- constant UDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "101101"; +- constant UDQS_WAIT1 : std_logic_vector(5 downto 0) := "101110"; +- constant UDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "101111"; +- constant UDQS_WAIT2 : std_logic_vector(5 downto 0) := "110000"; +- constant START_DYN_CAL : std_logic_vector(5 downto 0) := "110001"; +- constant WRITE_CALIBRATE : std_logic_vector(5 downto 0) := "110010"; +- constant WAIT9 : std_logic_vector(5 downto 0) := "110011"; +- constant READ_MAX_VALUE : std_logic_vector(5 downto 0) := "110100"; +- constant WAIT10 : std_logic_vector(5 downto 0) := "110101"; +- constant ANALYZE_MAX_VALUE : std_logic_vector(5 downto 0) := "110110"; +- constant FIRST_DYN_CAL : std_logic_vector(5 downto 0) := "110111"; +- constant INCREMENT : std_logic_vector(5 downto 0) := "111000"; +- constant DECREMENT : std_logic_vector(5 downto 0) := "111001"; +- constant DONE : std_logic_vector(5 downto 0) := "111010"; +- --constant INCREMENT_TA : std_logic_vector(5 downto 0) := "111011"; ++ constant OFF_RZQ_PTERM : std_logic_vector(5 downto 0) := "010010"; ++ constant WAIT7 : std_logic_vector(5 downto 0) := "010011"; ++ constant OFF_ZIO_NTERM : std_logic_vector(5 downto 0) := "010100"; ++ constant WAIT8 : std_logic_vector(5 downto 0) := "010101"; ++ constant RST_DELAY : std_logic_vector(5 downto 0) := "010110"; ++ constant START_DYN_CAL_PRE : std_logic_vector(5 downto 0) := "010111"; ++ constant WAIT_FOR_UODONE : std_logic_vector(5 downto 0) := "011000"; ++ constant LDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "011001"; ++ constant LDQS_WAIT1 : std_logic_vector(5 downto 0) := "011010"; ++ constant LDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "011011"; ++ constant LDQS_WAIT2 : std_logic_vector(5 downto 0) := "011100"; ++ constant UDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "011101"; ++ constant UDQS_WAIT1 : std_logic_vector(5 downto 0) := "011110"; ++ constant UDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "011111"; ++ constant UDQS_WAIT2 : std_logic_vector(5 downto 0) := "100000"; ++ constant START_DYN_CAL : std_logic_vector(5 downto 0) := "100001"; ++ constant WRITE_CALIBRATE : std_logic_vector(5 downto 0) := "100010"; ++ constant WAIT9 : std_logic_vector(5 downto 0) := "100011"; ++ constant READ_MAX_VALUE : std_logic_vector(5 downto 0) := "100100"; ++ constant WAIT10 : std_logic_vector(5 downto 0) := "100101"; ++ constant ANALYZE_MAX_VALUE : std_logic_vector(5 downto 0) := "100110"; ++ constant FIRST_DYN_CAL : std_logic_vector(5 downto 0) := "100111"; ++ constant INCREMENT : std_logic_vector(5 downto 0) := "101000"; ++ constant DECREMENT : std_logic_vector(5 downto 0) := "101001"; ++ constant DONE : std_logic_vector(5 downto 0) := "101010"; + + constant RZQ : std_logic_vector(1 downto 0) := "00"; + constant ZIO : std_logic_vector(1 downto 0) := "01"; +@@ -315,12 +288,10 @@ + constant DIV : integer := 4; + + constant PNSKEW : std_logic := '1'; -- Default is 1'b1. Change to 1'b0 if PSKEW and NSKEW are not required +- constant PNSKEWDQS : std_logic := '1'; +- +- constant MULT_S : integer := 9; +- constant DIV_S : integer := 8; +- constant MULT_W : integer := 7; +- constant DIV_W : integer := 8; ++ constant PSKEW_MULT : integer := 9; ++ constant PSKEW_DIV : integer := 8; ++ constant NSKEW_MULT : integer := 7; ++ constant NSKEW_DIV : integer := 8; + + constant DQS_NUMERATOR : integer := 3; + constant DQS_DENOMINATOR : integer := 8; +@@ -329,23 +300,11 @@ + -- 3 for three eighths + + constant RST_CNT : std_logic_vector(9 downto 0) := "0000010000"; ++ constant TZQINIT_MAXCNT : std_logic_vector(9 downto 0) := C_MEM_TZQINIT_MAXCNT + RST_CNT; + + constant IN_TERM_PASS : std_logic := '0'; + constant DYN_CAL_PASS : std_logic := '1'; + +- function TZQINIT_MAXCNT_W return std_logic_vector is +- variable temp : std_logic_vector(9 downto 0) := (others=>'0'); +- begin +- if (C_MEM_TYPE = "DDR3") then +- temp := C_MEM_TZQINIT_MAXCNT + RST_CNT; +- else +- temp := 8 + RST_CNT; +- end if; +- return temp(9 downto 0); +- end function; +- +- constant TZQINIT_MAXCNT : std_logic_vector(9 downto 0) := TZQINIT_MAXCNT_W; +- + component iodrp_mcb_controller is + port ( + memcell_address : in std_logic_vector(7 downto 0); +@@ -387,15 +346,11 @@ + end component; + + signal P_Term : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term : std_logic_vector(6 downto 0) := "0000000"; +- signal P_Term_s : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term_s : std_logic_vector(6 downto 0) := "0000000"; +- signal P_Term_w : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term_w : std_logic_vector(6 downto 0) := "0000000"; ++ signal N_Term : std_logic_vector(6 downto 0) := "0000000"; + signal P_Term_Prev : std_logic_vector(5 downto 0) := "000000"; + signal N_Term_Prev : std_logic_vector(6 downto 0) := "0000000"; + +- signal STATE : std_logic_vector(5 downto 0); ++ signal STATE : std_logic_vector(5 downto 0) := START; + signal IODRPCTRLR_MEMCELL_ADDR : std_logic_vector(7 downto 0); + signal IODRPCTRLR_WRITE_DATA : std_logic_vector(7 downto 0); + signal Active_IODRP : std_logic_vector(1 downto 0); +@@ -411,7 +366,7 @@ + signal count : std_logic_vector(5 downto 0) := "000000"; -- counter for adding 18 extra clock cycles after setting Calibrate bit + signal counter_en : std_logic := '0'; -- counter enable for "count" + signal First_Dyn_Cal_Done : std_logic := '0'; -- flag - high after the very first dynamic calibration is done +- signal START_BROADCAST : std_logic ; -- Trigger to start Broadcast to IODRP2_MCBs to set Input Impedance - ++ signal START_BROADCAST : std_logic := '1'; -- Trigger to start Broadcast to IODRP2_MCBs to set Input Impedance - + -- state machine will wait for this to be high + signal DQS_DELAY_INITIAL : std_logic_vector(7 downto 0) := "00000000"; + signal DQS_DELAY : std_logic_vector(7 downto 0); -- contains the latest values written to LDQS and UDQS Input Delays +@@ -474,24 +429,15 @@ + signal MCB_UISDI_xilinx11 : std_logic; + signal MCB_UICS_xilinx6 : std_logic; + signal MCB_UIBROADCAST_xilinx4 : std_logic; +- signal MCB_UIADDR_int : std_logic_vector(4 downto 0); ++ signal MCB_UIADDR_xilinx3 : std_logic_vector(4 downto 0); + signal MCB_UIDONECAL_xilinx7 : std_logic; + signal MCB_UIREAD_xilinx10 : std_logic; + signal SELFREFRESH_MODE_xilinx11 : std_logic; + signal Max_Value_int : std_logic_vector(7 downto 0); + signal Rst_condition1 : std_logic; +- --signal Rst_condition2 : std_logic; ++ signal Rst_condition2 : std_logic; + signal non_violating_rst : std_logic; + signal WAIT_200us_COUNTER : std_logic_vector(15 downto 0); +- signal WaitTimer : std_logic_vector(7 downto 0); +- signal WarmEnough : std_logic; +- signal WaitCountEnable : std_logic; +- signal State_Start_DynCal_R1 : std_logic; +- signal State_Start_DynCal : std_logic; +- +- signal pre_sysrst_minpulse_width_ok : std_logic; +- signal pre_sysrst_cnt : std_logic_vector(3 downto 0); +- + -- This function multiplies by a constant MULT and then divides by the DIV constant + function Mult_Divide (Input : std_logic_vector(7 downto 0); MULT : integer ; DIV : integer ) return std_logic_vector is + variable Result : integer := 0; +@@ -505,19 +451,9 @@ + return temp(7 downto 0); + end function Mult_Divide; + +- +- + attribute syn_preserve : boolean; + attribute syn_preserve of P_Term : signal is TRUE; + attribute syn_preserve of N_Term : signal is TRUE; +- attribute syn_preserve of P_Term_s : signal is TRUE; +- attribute syn_preserve of N_Term_s : signal is TRUE; +- attribute syn_preserve of P_Term_w : signal is TRUE; +- attribute syn_preserve of N_Term_w : signal is TRUE; +- +- +- +- + attribute syn_preserve of P_Term_Prev : signal is TRUE; + attribute syn_preserve of N_Term_Prev : signal is TRUE; + attribute syn_preserve of IODRPCTRLR_MEMCELL_ADDR : signal is TRUE; +@@ -530,18 +466,6 @@ + + begin + +- +--- move the default assignment here to make FORMALITY happy. +- +- START_BROADCAST <= '1'; +- MCB_RECAL <= '0'; +- MCB_UIDQLOWERDEC <= '0'; +- MCB_UIADDR <= MCB_UIADDR_int; +- MCB_UIDQLOWERINC <= '0'; +- MCB_UIDQUPPERDEC <= '0'; +- MCB_UIDQUPPERINC <= '0'; +- +- + Max_Value <= Max_Value_int; + -- Drive referenced outputs + IODRP_ADD <= IODRP_ADD_xilinx0; +@@ -550,6 +474,7 @@ + MCB_UISDI <= MCB_UISDI_xilinx11; + MCB_UICS <= MCB_UICS_xilinx6; + MCB_UIBROADCAST <= MCB_UIBROADCAST_xilinx4; ++ MCB_UIADDR <= MCB_UIADDR_xilinx3; + MCB_UIDONECAL <= MCB_UIDONECAL_xilinx7; + MCB_UIREAD <= MCB_UIREAD_xilinx10; + SELFREFRESH_MODE <= SELFREFRESH_MODE_xilinx11; +@@ -607,7 +532,7 @@ + cmd_valid => MCB_CMD_VALID, + rdy_busy_n => MCB_RDY_BUSY_N, + use_broadcast => MCB_USE_BKST, +- drp_ioi_addr => MCB_UIADDR_int, ++ drp_ioi_addr => MCB_UIADDR_xilinx3, + sync_rst => RST_reg, + DRP_CLK => UI_CLK, + DRP_CS => MCB_UICS_xilinx6, +@@ -618,13 +543,10 @@ + MCB_UIREAD => MCB_UIREAD_xilinx10 + ); + ++ init_sequence: if (C_SIMULATION = "FALSE") generate + process (UI_CLK, RST) begin + if (RST = '1') then +- if (C_SIMULATION = "TRUE") then +- WAIT_200us_COUNTER <= X"7FF0"; +- else + WAIT_200us_COUNTER <= (others => '0'); +- end if; + elsif (UI_CLK'event and UI_CLK = '1') then + if (WAIT_200us_COUNTER(15) = '1') then + WAIT_200us_COUNTER <= WAIT_200us_COUNTER; +@@ -633,15 +555,16 @@ + end if; + end if; + end process; ++ end generate; + +- -- init_sequence_skip: if (C_SIMULATION = "TRUE") generate +- -- WAIT_200us_COUNTER <= X"FFFF"; +- -- process +- -- begin +- -- report "The 200 us wait period required before CKE goes active has been skipped in Simulation"; +- -- wait; +- -- end process; +- -- end generate; ++ init_sequence_skip: if (C_SIMULATION = "TRUE") generate ++ WAIT_200us_COUNTER <= X"FFFF"; ++ process ++ begin ++ report "The 200 us wait period required before CKE goes active has been skipped in Simulation"; ++ wait; ++ end process; ++ end generate; + + + gen_CKE_Train_a: if (C_MEM_TYPE = "DDR2") generate +@@ -653,8 +576,6 @@ + CKE_Train <= '0'; + elsif (WAIT_200us_COUNTER(15) = '1' and MCB_UODONECAL = '0') then + CKE_Train <= '1'; +- else +- CKE_Train <= '0'; + end if; + end if; + end process; +@@ -671,20 +592,19 @@ + --******************************************** + -- PLL_LOCK and RST signals + --******************************************** +- --MCB_SYSRST <= Pre_SYSRST or RST_reg; -- Pre_SYSRST is generated from the STATE state machine, and is OR'd with RST_reg input to drive MCB's ++ MCB_SYSRST <= Pre_SYSRST or RST_reg; -- Pre_SYSRST is generated from the STATE state machine, and is OR'd with RST_reg input to drive MCB's + -- SYSRST pin (MCB_SYSRST) +- + rst_tmp <= not(SELFREFRESH_MODE_xilinx11) and not(PLL_LOCK_R2); -- rst_tmp becomes 1 if you lose Lock and the device is not in SUSPEND + + process (UI_CLK, RST) begin + if (RST = '1') then +- --Block_Reset <= '0'; +- --RstCounter <= (others => '0'); +- --elsif (UI_CLK'event and UI_CLK = '1') then +- -- if (rst_tmp = '1') then -- this is to deal with not allowing the user-reset "RST" to violate TZQINIT_MAXCNT (min time between resets to DDR3) ++ Block_Reset <= '0'; ++ RstCounter <= (others => '0'); ++ elsif (UI_CLK'event and UI_CLK = '1') then ++ if (rst_tmp = '1') then -- this is to deal with not allowing the user-reset "RST" to violate TZQINIT_MAXCNT (min time between resets to DDR3) + Block_Reset <= '0'; + RstCounter <= (others => '0'); +- elsif (UI_CLK'event and UI_CLK = '1') then ++ else + Block_Reset <= '0'; -- default to allow STATE to move out of RST_DELAY state + if (Pre_SYSRST = '1') then + RstCounter <= RST_CNT; -- whenever STATE wants to reset the MCB, set RstCounter to h10 +@@ -695,14 +615,11 @@ + end if; + end if; + end if; +- --end if; ++ end if; + end process; +- +- -- Rst_contidtion1 is to make sure RESET will not happen again within TZQINIT_MAXCNT +- non_violating_rst <= RST and Rst_condition1; +- MCB_SYSRST <= Pre_SYSRST; + +- process (UI_CLK) begin ++ non_violating_rst <= RST and Rst_condition1; ++ process (UI_CLK) begin + if (UI_CLK'event and UI_CLK = '1') then + if (RstCounter >= TZQINIT_MAXCNT) then + Rst_condition1 <= '1'; +@@ -712,31 +629,18 @@ + end if; + end process; + +--- -- non_violating_rst asserts whenever (system-level reset) RST is asserted but must be after TZQINIT_MAXCNT is reached (min-time between resets for DDR3) +--- -- After power stablizes, we will hold MCB in reset state for at least 200us before beginning initialization process. +--- -- If the PLL loses lock during normal operation, no ui_clk will be present because mcb_drp_clk is from a BUFGCE which +--- is gated by pll's lock signal. When the PLL locks again, the RST_reg stays asserted for at least 200 us which +--- will cause MCB to reset and reinitialize the memory afterwards. +--- -- During SUSPEND operation, the PLL will lose lock but non_violating_rst remains low (de-asserted) and WAIT_200us_COUNTER stays at +--- its terminal count. The PLL_LOCK input does not come direct from PLL, rather it is driven by gated_pll_lock from mcb_raw_wrapper module +--- The gated_pll_lock in the mcb_raw_wrapper does not de-assert during SUSPEND operation, hence PLL_LOCK will not de-assert, and the soft calibration +--- state machine will not reset during SUSPEND. +--- -- RST_reg is the control signal that resets the mcb_soft_calibration's State Machine. The MCB_SYSRST is now equal to +--- Pre_SYSRST. When State Machine is performing "INPUT Termination Calibration", it holds the MCB in reset by assertign MCB_SYSRST. +--- It will deassert the MCB_SYSRST so that it can grab the bus to broadcast the P and N term value to all of the DQ pins. Once the calibrated INPUT +--- termination is set, the State Machine will issue another short MCB_SYSRST so that MCB will use the tuned input termination during DQS preamble calibration. + + +- --process (UI_CLK) begin +- -- if (UI_CLK'event and UI_CLK = '1') then +- -- +- -- if (RstCounter < RST_CNT) then +- -- Rst_condition2 <= '1'; +- -- else +- -- Rst_condition2 <= '0'; +- -- end if; +- -- end if; +- --end process; ++ process (UI_CLK) begin ++ if (UI_CLK'event and UI_CLK = '1') then ++ ++ if (RstCounter < RST_CNT) then ++ Rst_condition2 <= '1'; ++ else ++ Rst_condition2 <= '0'; ++ end if; ++ end if; ++ end process; + + process (UI_CLK, non_violating_rst) begin + if (non_violating_rst = '1') then +@@ -745,47 +649,18 @@ + if (WAIT_200us_COUNTER(15) = '0') then + RST_reg <= '1'; + else +- --RST_reg <= Rst_condition2 or rst_tmp; -- insures RST_reg is at least h10 pulses long +- RST_reg <= rst_tmp; -- insures RST_reg is at least h10 pulses long ++ RST_reg <= Rst_condition2 or rst_tmp; -- insures RST_reg is at least h10 pulses long + end if; + end if; + end process; + +---************************************************************* +--- Stretching the pre_sysrst to satisfy the minimum pulse width +---************************************************************* +- +-process (UI_CLK) begin +-if (UI_CLK'event and UI_CLK = '1') then +- if (STATE = START_DYN_CAL_PRE) then +- pre_sysrst_cnt <= pre_sysrst_cnt + '1'; +- else +- pre_sysrst_cnt <= (others=>'0'); +- end if; +-end if; +-end process; +- +-pre_sysrst_minpulse_width_ok <= pre_sysrst_cnt(3); +- ++ + --******************************************** + -- SUSPEND Logic + --******************************************** +- process (UI_CLK,RST) ++ process (UI_CLK) + begin +- if (RST = '1') then +- +- SELFREFRESH_MCB_MODE_R1 <= '0'; +- SELFREFRESH_MCB_MODE_R2 <= '0'; +- SELFREFRESH_MCB_MODE_R3 <= '0'; +- +- SELFREFRESH_REQ_R1 <= '0'; +- SELFREFRESH_REQ_R2 <= '0'; +- SELFREFRESH_REQ_R3 <= '0'; +- +- PLL_LOCK_R1 <= '0'; +- PLL_LOCK_R2 <= '0'; +- +- elsif (UI_CLK'event and UI_CLK = '1') then ++ if (UI_CLK'event and UI_CLK = '1') then + -- SELFREFRESH_MCB_MODE is clocked by sysclk_2x_180 + SELFREFRESH_MCB_MODE_R1 <= SELFREFRESH_MCB_MODE; + SELFREFRESH_MCB_MODE_R2 <= SELFREFRESH_MCB_MODE_R1; +@@ -810,10 +685,9 @@ + if (UI_CLK'event and UI_CLK = '1') then + if (RST = '1') then + SELFREFRESH_MCB_REQ <= '0'; +- --elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R3 = '0') and (STATE = START_DYN_CAL)) then +- elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R3 = '0')) then ++ elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R1 = '0') and (STATE = START_DYN_CAL)) then + SELFREFRESH_MCB_REQ <= '0'; +- elsif ((STATE = START_DYN_CAL) and (SELFREFRESH_REQ_R3 = '1')) then ++ elsif ((STATE = START_DYN_CAL) and (SELFREFRESH_REQ_R1 = '1')) then + SELFREFRESH_MCB_REQ <= '1'; + end if; + end if; +@@ -859,10 +733,6 @@ + + -- SELFREFRESH_MCB_MODE deasserted status is hold off + -- until Soft_Calib has at least done one loop of DQS update. +--- New logic WarmeEnough is added to make sure PLL_Lock is lockec and all IOs stable before +--- deassert the status of MCB's SELFREFRESH_MODE. This is to ensure all IOs are stable before +--- user logic sending new commands to MCB. +- + process (UI_CLK) + begin + if (UI_CLK'event and UI_CLK = '1') then +@@ -870,76 +740,12 @@ + SELFREFRESH_MODE_xilinx11 <= '0'; + elsif (SELFREFRESH_MCB_MODE_R2 = '1') then + SELFREFRESH_MODE_xilinx11 <= '1'; +- elsif (WarmEnough = '1') then +- SELFREFRESH_MODE_xilinx11 <= '0'; +- end if; +- end if; +- end process; +- +- +- +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- WaitCountEnable <= '0'; +- elsif (SELFREFRESH_REQ_R2 = '0' and SELFREFRESH_REQ_R1 = '1') then +- WaitCountEnable <= '0'; + elsif ((PERFORM_START_DYN_CAL_AFTER_SELFREFRESH = '0') and (PERFORM_START_DYN_CAL_AFTER_SELFREFRESH_R1 = '1')) then +- WaitCountEnable <= '1'; +- else +- WaitCountEnable <= WaitCountEnable; ++ SELFREFRESH_MODE_xilinx11 <= '0'; + end if; + end if; + end process; + +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- State_Start_DynCal <= '0'; +- elsif (STATE = START_DYN_CAL) then +- State_Start_DynCal <= '1'; +- else +- State_Start_DynCal <= '0'; +- end if; +- end if; +- end process; +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- State_Start_DynCal_R1 <= '0'; +- else +- State_Start_DynCal_R1 <= State_Start_DynCal; +- end if; +- end if; +- end process; +- +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- WaitTimer <= (others => '0'); +- WarmEnough <= '1'; +- elsif ((SELFREFRESH_REQ_R2 = '0') and (SELFREFRESH_REQ_R1 = '1')) then +- WaitTimer <= (others => '0'); +- WarmEnough <= '0'; +- elsif (WaitTimer = X"04") then +- WaitTimer <= WaitTimer ; +- WarmEnough <= '1'; +- elsif (WaitCountEnable = '1') then +- WaitTimer <= WaitTimer + '1'; +- else +- WaitTimer <= WaitTimer ; +- end if; +- end if; +- end process; +- + --******************************************** + --Comparitor for Dynamic Calibration circuit + --******************************************** +@@ -1014,7 +820,7 @@ + if (UI_CLK'event and UI_CLK = '1') then + if (RST_reg = '1') then -- Synchronous reset + MCB_CMD_VALID <= '0'; +- MCB_UIADDR_int <= "00000"; -- take control of UI/UO port ++ MCB_UIADDR_xilinx3 <= "00000"; -- take control of UI/UO port + MCB_UICMDEN <= '1'; -- tells MCB that it is in Soft Cal. + MCB_UIDONECAL_xilinx7 <= '0'; + MCB_USE_BKST <= '0'; +@@ -1027,11 +833,6 @@ + IODRPCTRLR_USE_BKST <= '0'; + P_Term <= "000000"; + N_Term <= "0000000"; +- P_Term_s <= "000000"; +- N_Term_w <= "0000000"; +- P_Term_w <= "000000"; +- N_Term_s <= "0000000"; +- + P_Term_Prev <= "000000"; + N_Term_Prev <= "0000000"; + Active_IODRP <= RZQ; +@@ -1079,10 +880,7 @@ + Pre_SYSRST <= '1'; -- keeps MCB in reset + LastPass_DynCal <= IN_TERM_PASS; + if (SKIP_IN_TERM_CAL = 1) then +- --STATE <= WRITE_CALIBRATE; +- STATE <= WAIT_FOR_START_BROADCAST; +- P_Term <= "000000"; +- N_Term <= "0000000"; ++ STATE <= WRITE_CALIBRATE; + elsif (IODRPCTRLR_RDY_BUSY_N = '1') then + STATE <= LOAD_RZQ_NTERM; + else +@@ -1135,8 +933,7 @@ + STATE <= LOAD_RZQ_PTERM; + + when MULTIPLY_DIVIDE => -- h06 +- -- 13/4/2011 compensate the added sync FF +- P_Term <= Mult_Divide(("00" & (P_Term - '1')),MULT,DIV)(5 downto 0); ++ P_Term <= Mult_Divide(("00" & P_Term),MULT,DIV)(5 downto 0); + STATE <= LOAD_ZIO_PTERM; + + when LOAD_ZIO_PTERM => --h07 +@@ -1188,13 +985,8 @@ + STATE <= LOAD_ZIO_NTERM; + + when SKEW => -- h0C +- +- P_Term_s <= Mult_Divide(("00" & P_Term), MULT_S, DIV_S)(5 downto 0); +- N_Term_w <= Mult_Divide(('0' & (N_Term-'1')), MULT_W, DIV_W)(6 downto 0); +- P_Term_w <= Mult_Divide(("00" & P_Term), MULT_W, DIV_W)(5 downto 0); +- N_Term_s <= Mult_Divide(('0' & (N_Term-'1')), MULT_S, DIV_S)(6 downto 0); +- P_Term <= Mult_Divide(("00" & P_Term), MULT_S, DIV_S)(5 downto 0); +- N_Term <= Mult_Divide(('0' & (N_Term-'1')), MULT_W, DIV_W)(6 downto 0); ++ P_Term <= Mult_Divide(("00" & P_Term), PSKEW_MULT, PSKEW_DIV)(5 downto 0); ++ N_Term <= Mult_Divide(('0' & N_Term), NSKEW_MULT, NSKEW_DIV)(6 downto 0); + STATE <= WAIT_FOR_START_BROADCAST; + + when WAIT_FOR_START_BROADCAST => --h0D +@@ -1202,7 +994,7 @@ + -- keeping the MCB in calibration mode + Active_IODRP <= MCB_PORT; + if ((START_BROADCAST and IODRPCTRLR_RDY_BUSY_N) = '1') then +- if ((P_Term /= P_Term_Prev) or (SKIP_IN_TERM_CAL = 1)) then ++ if (P_Term /= P_Term_Prev) then + STATE <= BROADCAST_PTERM; + P_Term_Prev <= P_Term; + elsif (N_Term /= N_Term_Prev) then +@@ -1272,184 +1064,10 @@ + STATE <= WAIT6; -- wait for a Refresh cycle + end if; + else +- -- if (PNSKEWDQS = '1') then +- STATE <= LDQS_CLK_WRITE_P_TERM; +- -- else +- -- STATE <= OFF_RZQ_PTERM; +- -- end if; +- end if; +- +--- ********************* +- when LDQS_CLK_WRITE_P_TERM => -- h12 +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_w; +- MCB_UIADDR_int <= IOI_LDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_CLK_WRITE_P_TERM; +- else +- STATE <= LDQS_CLK_P_TERM_WAIT; +- end if; +- +- +- when LDQS_CLK_P_TERM_WAIT => --7'h13 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_CLK_P_TERM_WAIT; +- else +- STATE <= LDQS_CLK_WRITE_N_TERM; +- end if; +- +- when LDQS_CLK_WRITE_N_TERM => --7'h14 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_s; +- MCB_UIADDR_int <= IOI_LDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_CLK_WRITE_N_TERM; +- else +- STATE <= LDQS_CLK_N_TERM_WAIT; +- end if; +- +- --** +- when LDQS_CLK_N_TERM_WAIT => --7'h15 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_CLK_N_TERM_WAIT; +- else +- STATE <= LDQS_PIN_WRITE_P_TERM; +- end if; +- +- +- when LDQS_PIN_WRITE_P_TERM => --7'h16 +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_s; +- MCB_UIADDR_int <= IOI_LDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_PIN_WRITE_P_TERM; +- else +- STATE <= LDQS_PIN_P_TERM_WAIT; +- end if; +- +- +- when LDQS_PIN_P_TERM_WAIT => --7'h17 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_PIN_P_TERM_WAIT; +- else +- STATE <= LDQS_PIN_WRITE_N_TERM; +- end if; +- +- +- when LDQS_PIN_WRITE_N_TERM => --7'h18 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_w; +- MCB_UIADDR_int <= IOI_LDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_PIN_WRITE_N_TERM; +- else +- STATE <= LDQS_PIN_N_TERM_WAIT; +- end if; +- +- +- when LDQS_PIN_N_TERM_WAIT => --7'h19 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_PIN_N_TERM_WAIT; +- else +- STATE <= UDQS_CLK_WRITE_P_TERM; +- end if; +- +- +- +- when UDQS_CLK_WRITE_P_TERM => --7'h1A +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_w; +- MCB_UIADDR_int <= IOI_UDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_CLK_WRITE_P_TERM; +- else +- STATE <= UDQS_CLK_P_TERM_WAIT; +- end if; +- +- +- when UDQS_CLK_P_TERM_WAIT => --7'h1B +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_CLK_P_TERM_WAIT; +- else +- STATE <= UDQS_CLK_WRITE_N_TERM; +- end if; +- +- +- when UDQS_CLK_WRITE_N_TERM => --7'h1C +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_s; +- MCB_UIADDR_int <= IOI_UDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_CLK_WRITE_N_TERM; +- else +- STATE <= UDQS_CLK_N_TERM_WAIT; +- end if; +- +- when UDQS_CLK_N_TERM_WAIT => --7'h1D +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_CLK_N_TERM_WAIT; +- else +- STATE <= UDQS_PIN_WRITE_P_TERM; +- end if; +- +- +- +- when UDQS_PIN_WRITE_P_TERM => --7'h1E +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_s; +- MCB_UIADDR_int <= IOI_UDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_PIN_WRITE_P_TERM; +- else +- STATE <= UDQS_PIN_P_TERM_WAIT; +- end if; +- +- +- when UDQS_PIN_P_TERM_WAIT => --7'h1F +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_PIN_P_TERM_WAIT; +- else +- STATE <= UDQS_PIN_WRITE_N_TERM; +- end if; +- +- when UDQS_PIN_WRITE_N_TERM => --7'h20 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_w; +- MCB_UIADDR_int <= IOI_UDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_PIN_WRITE_N_TERM; +- else +- STATE <= UDQS_PIN_N_TERM_WAIT; +- end if; +- +- +- when UDQS_PIN_N_TERM_WAIT => --7'h21 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_PIN_N_TERM_WAIT; +- else +- STATE <= OFF_RZQ_PTERM; ++ STATE <= OFF_RZQ_PTERM; + end if; +- +--- ********************* + +- +- when OFF_RZQ_PTERM => -- h22 ++ when OFF_RZQ_PTERM => -- h12 + Active_IODRP <= RZQ; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= PTerm; +@@ -1464,14 +1082,14 @@ + STATE <= WAIT7; + end if; + +- when WAIT7 => -- h23 ++ when WAIT7 => -- h13 + if ((not(IODRPCTRLR_RDY_BUSY_N)) = '1') then + STATE <= WAIT7; + else + STATE <= OFF_ZIO_NTERM; + end if; + +- when OFF_ZIO_NTERM => -- h24 ++ when OFF_ZIO_NTERM => -- h14 + Active_IODRP <= ZIO; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= NTerm; +@@ -1483,7 +1101,7 @@ + STATE <= WAIT8; + end if; + +- when WAIT8 => -- h25 ++ when WAIT8 => -- h15 + if (IODRPCTRLR_RDY_BUSY_N = '0') then + STATE <= WAIT8; + else +@@ -1494,8 +1112,8 @@ + end if; + end if; + +- when RST_DELAY => -- h26 +- --MCB_UICMDEN <= '0'; -- release control of UI/UO port ++ when RST_DELAY => -- h16 ++ MCB_UICMDEN <= '0'; -- release control of UI/UO port + if (Block_Reset = '1') then -- this ensures that more than 512 clock cycles occur since the last reset after MCB_WRITE_CALIBRATE ??? + STATE <= RST_DELAY; + else +@@ -1505,18 +1123,18 @@ + --*************************** + --DYNAMIC CALIBRATION PORTION + --*************************** +- when START_DYN_CAL_PRE => -- h27 ++ when START_DYN_CAL_PRE => -- h17 + LastPass_DynCal <= IN_TERM_PASS; + MCB_UICMDEN <= '0'; -- release UICMDEN + MCB_UIDONECAL_xilinx7 <= '1'; -- release UIDONECAL - MCB will now initialize. + Pre_SYSRST <= '1'; -- SYSRST pulse + if (CALMODE_EQ_CALIBRATION = '0') then -- if C_MC_CALIBRATION_MODE is set to NOCALIBRATION + STATE <= START_DYN_CAL; -- we'll skip setting the DQS delays manually +- elsif (pre_sysrst_minpulse_width_ok = '1') then ++ else + STATE <= WAIT_FOR_UODONE; + end if; + +- when WAIT_FOR_UODONE => -- h28 ++ when WAIT_FOR_UODONE => -- h18 + Pre_SYSRST <= '0'; -- SYSRST pulse + if ((IODRPCTRLR_RDY_BUSY_N and MCB_UODONECAL) = '1')then --IODRP Controller needs to be ready, & MCB needs to be done with hard calibration + MCB_UICMDEN <= '1'; -- grab UICMDEN +@@ -1526,11 +1144,11 @@ + STATE <= WAIT_FOR_UODONE; + end if; + +- when LDQS_WRITE_POS_INDELAY => -- h29 ++ when LDQS_WRITE_POS_INDELAY => -- h19 + IODRPCTRLR_MEMCELL_ADDR <= PosEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_LDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_LDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1') then + STATE <= LDQS_WRITE_POS_INDELAY; +@@ -1538,18 +1156,18 @@ + STATE <= LDQS_WAIT1; + end if; + +- when LDQS_WAIT1 => -- h2A ++ when LDQS_WAIT1 => -- h1A + if (MCB_RDY_BUSY_N = '0')then + STATE <= LDQS_WAIT1; + else + STATE <= LDQS_WRITE_NEG_INDELAY; + end if; + +- when LDQS_WRITE_NEG_INDELAY => -- h2B ++ when LDQS_WRITE_NEG_INDELAY => -- h1B + IODRPCTRLR_MEMCELL_ADDR <= NegEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_LDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_LDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= LDQS_WRITE_NEG_INDELAY; +@@ -1557,18 +1175,18 @@ + STATE <= LDQS_WAIT2; + end if; + +- when LDQS_WAIT2 => -- 7'h2C ++ when LDQS_WAIT2 => -- 7'h1C + if(MCB_RDY_BUSY_N = '0')then + STATE <= LDQS_WAIT2; + else + STATE <= UDQS_WRITE_POS_INDELAY; + end if; + +- when UDQS_WRITE_POS_INDELAY => -- 7'h2D ++ when UDQS_WRITE_POS_INDELAY => -- 7'h1D + IODRPCTRLR_MEMCELL_ADDR <= PosEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_UDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_UDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= UDQS_WRITE_POS_INDELAY; +@@ -1576,18 +1194,18 @@ + STATE <= UDQS_WAIT1; + end if; + +- when UDQS_WAIT1 => -- 7'h2E ++ when UDQS_WAIT1 => -- 7'h1E + if (MCB_RDY_BUSY_N = '0')then + STATE <= UDQS_WAIT1; + else + STATE <= UDQS_WRITE_NEG_INDELAY; + end if; + +- when UDQS_WRITE_NEG_INDELAY => -- 7'h2F ++ when UDQS_WRITE_NEG_INDELAY => -- 7'h1F + IODRPCTRLR_MEMCELL_ADDR <= NegEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_UDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_UDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= UDQS_WRITE_NEG_INDELAY; +@@ -1595,7 +1213,7 @@ + STATE <= UDQS_WAIT2; + end if; + +- when UDQS_WAIT2 => -- 7'h30 ++ when UDQS_WAIT2 => -- 7'h20 + if (MCB_RDY_BUSY_N = '0')then + STATE <= UDQS_WAIT2; + else +@@ -1604,7 +1222,7 @@ + STATE <= START_DYN_CAL; + end if; + +- when START_DYN_CAL => -- h31 ++ when START_DYN_CAL => -- h21 + Pre_SYSRST <= '0'; -- SYSRST not driven + counter_inc <= (others => '0'); + counter_dec <= (others => '0'); +@@ -1624,7 +1242,7 @@ + STATE <= START_DYN_CAL; + end if; + +- when WRITE_CALIBRATE => -- h32 ++ when WRITE_CALIBRATE => -- h22 + Pre_SYSRST <= '0'; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= DelayControl; +@@ -1637,7 +1255,7 @@ + STATE <= WAIT9; + end if; + +- when WAIT9 => -- h33 ++ when WAIT9 => -- h23 + counter_en <= '1'; + if (count < "100110") then -- this adds approximately 22 extra clock cycles after WRITE_CALIBRATE + STATE <= WAIT9; +@@ -1645,7 +1263,7 @@ + STATE <= READ_MAX_VALUE; + end if; + +- when READ_MAX_VALUE => -- h34 ++ when READ_MAX_VALUE => -- h24 + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= MaxValue; + IODRPCTRLR_R_WB <= READ_MODE; +@@ -1656,7 +1274,7 @@ + STATE <= WAIT10; + end if; + +- when WAIT10 => -- h35 ++ when WAIT10 => -- h25 + if (IODRPCTRLR_RDY_BUSY_N = '0') then + STATE <= WAIT10; + else +@@ -1669,7 +1287,7 @@ + end if; + end if; + +- when ANALYZE_MAX_VALUE => -- h36 only do a Inc or Dec during a REFRESH cycle. ++ when ANALYZE_MAX_VALUE => -- h26 only do a Inc or Dec during a REFRESH cycle. + if (First_Dyn_Cal_Done = '0')then + STATE <= FIRST_DYN_CAL; + elsif ((Max_Value_int < Max_Value_Previous) and (Max_Value_Delta_Dn >= INCDEC_THRESHOLD)) then +@@ -1684,11 +1302,11 @@ + STATE <= START_DYN_CAL; + end if; + +- when FIRST_DYN_CAL => -- h37 ++ when FIRST_DYN_CAL => -- h27 + First_Dyn_Cal_Done <= '1'; -- set flag that the First Dynamic Calibration has been completed + STATE <= START_DYN_CAL; + +- when INCREMENT => -- h38 ++ when INCREMENT => -- h28 + STATE <= START_DYN_CAL; -- Default case: Inc is not high or no longer in REFRSH + MCB_UILDQSINC <= '0'; -- Default case: no inc or dec + MCB_UIUDQSINC <= '0'; -- Default case: no inc or dec +@@ -1712,7 +1330,7 @@ + STATE <= START_DYN_CAL; + end case; + +- when DECREMENT => -- h39 ++ when DECREMENT => -- h29 + STATE <= START_DYN_CAL; -- Default case: Dec is not high or no longer in REFRSH + MCB_UILDQSINC <= '0'; -- Default case: no inc or dec + MCB_UIUDQSINC <= '0'; -- Default case: no inc or dec +@@ -1738,7 +1356,7 @@ + end case; + end if; + +- when DONE => -- h3A ++ when DONE => -- h2A + Pre_SYSRST <= '0'; -- SYSRST cleared + MCB_UICMDEN <= '0'; -- release UICMDEN + STATE <= DONE; diff --git a/designs/leon3-ztex-ufm-111/memc3_infrastructure_patch.txt b/designs/leon3-ztex-ufm-111/memc3_infrastructure_patch.txt new file mode 100644 index 00000000..08b1b533 --- /dev/null +++ b/designs/leon3-ztex-ufm-111/memc3_infrastructure_patch.txt @@ -0,0 +1,61 @@ +--- mig39/mig_39/user_design/rtl/memc3_infrastructure.vhd 2012-12-20 10:25:33.211745967 +0100 ++++ mig39_copy/mig_39/user_design/rtl/memc3_infrastructure.vhd 2012-12-20 10:25:45.219745839 +0100 +@@ -122,7 +122,6 @@ + signal mcb_drp_clk_bufg_in : std_logic; + signal clkfbout_clkfbin : std_logic; + signal rst_tmp : std_logic; +- signal sys_clk_ibufg : std_logic; + signal sys_rst : std_logic; + signal rst0_sync_r : std_logic_vector(RST_SYNC_NUM-1 downto 0); + signal powerup_pll_locked : std_logic; +@@ -136,7 +135,6 @@ + attribute KEEP : string; + attribute max_fanout of rst0_sync_r : signal is "10"; + attribute syn_maxfan of rst0_sync_r : signal is 10; +- attribute KEEP of sys_clk_ibufg : signal is "TRUE"; + + begin + +@@ -145,33 +143,6 @@ + pll_lock <= bufpll_mcb_locked; + mcb_drp_clk <= mcb_drp_clk_sig; + +- diff_input_clk : if(C_INPUT_CLK_TYPE = "DIFFERENTIAL") generate +- --*********************************************************************** +- -- Differential input clock input buffers +- --*********************************************************************** +- u_ibufg_sys_clk : IBUFGDS +- generic map ( +- DIFF_TERM => TRUE +- ) +- port map ( +- I => sys_clk_p, +- IB => sys_clk_n, +- O => sys_clk_ibufg +- ); +- end generate; +- +- +- se_input_clk : if(C_INPUT_CLK_TYPE = "SINGLE_ENDED") generate +- --*********************************************************************** +- -- SINGLE_ENDED input clock input buffers +- --*********************************************************************** +- u_ibufg_sys_clk : IBUFG +- port map ( +- I => sys_clk, +- O => sys_clk_ibufg +- ); +- end generate; +- + --*************************************************************************** + -- Global clock generation and distribution + --*************************************************************************** +@@ -211,7 +182,7 @@ + ( + CLKFBIN => clkfbout_clkfbin, + CLKINSEL => '1', +- CLKIN1 => sys_clk_ibufg, ++ CLKIN1 => sys_clk, + CLKIN2 => '0', + DADDR => (others => '0'), + DCLK => '0', diff --git a/designs/leon3-ztex-ufm-111/mig39/coregen.cgc b/designs/leon3-ztex-ufm-111/mig39/coregen.cgc new file mode 100644 index 00000000..f4fc8c63 --- /dev/null +++ b/designs/leon3-ztex-ufm-111/mig39/coregen.cgc @@ -0,0 +1,985 @@ + + + xilinx.com + project + coregen + 1.0 + + + mig_39 + MIG Virtex-6 and Spartan-6 + + + mig_39 + ./mig_39/user_design/mig.prj + + + + + coregen + ./ + ./tmp/ + ./tmp/_cg/ + + + xc6slx25 + spartan6 + ftg256 + -3 + + + BusFormatAngleBracketNotRipped + VHDL + true + Other + false + false + false + Ngc + false + + + Behavioral + VHDL + false + + + 2012-10-13+03:35 + + + + + model_parameter_resolution_generator + + + ip_xco_generator + + ./mig_39.xco + xco + Thu Dec 20 09:26:20 GMT 2012 + 0xB1C5C297 + generationID_1879581046 + + + + implementation_source_generator + + ./mig_39/docs/ug388.pdf + ignore + pdf + Thu Dec 20 09:26:20 GMT 2012 + 0x90FCF0D1 + generationID_1879581046 + + + ./mig_39/docs/ug416.pdf + ignore + pdf + Thu Dec 20 09:26:20 GMT 2012 + 0x5A2D5D89 + generationID_1879581046 + + + ./mig_39/example_design/datasheet.txt + ignore + txt + Thu Dec 20 09:26:20 GMT 2012 + 0xAA1BF0C2 + generationID_1879581046 + + + ./mig_39/example_design/mig.prj + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0xD50899C6 + generationID_1879581046 + + + ./mig_39/example_design/par/create_ise.sh + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0x87F14240 + generationID_1879581046 + + + ./mig_39/example_design/par/example_top.ucf + ignore + ucf + Thu Dec 20 09:26:20 GMT 2012 + 0x74BAD474 + generationID_1879581046 + + + ./mig_39/example_design/par/icon_coregen.xco + ignore + xco + Thu Dec 20 09:26:20 GMT 2012 + 0xC38DC185 + generationID_1879581046 + + + ./mig_39/example_design/par/ila_coregen.xco + ignore + xco + Thu Dec 20 09:26:20 GMT 2012 + 0x2C219F2D + generationID_1879581046 + + + ./mig_39/example_design/par/ise_flow.sh + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0xE62439F5 + generationID_1879581046 + + + ./mig_39/example_design/par/ise_run.txt + ignore + txt + Thu Dec 20 09:26:20 GMT 2012 + 0xA31A2AD2 + generationID_1879581046 + + + ./mig_39/example_design/par/makeproj.sh + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0xCFE64DF9 + generationID_1879581046 + + + ./mig_39/example_design/par/mem_interface_top.ut + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0xCDD0105F + generationID_1879581046 + + + ./mig_39/example_design/par/readme.txt + ignore + txt + Thu Dec 20 09:26:20 GMT 2012 + 0x1FCF75F3 + generationID_1879581046 + + + ./mig_39/example_design/par/rem_files.sh + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0x1D02A061 + generationID_1879581046 + + + ./mig_39/example_design/par/set_ise_prop.tcl + ignore + tcl + Thu Dec 20 09:26:20 GMT 2012 + 0x5D3CA2D5 + generationID_1879581046 + + + ./mig_39/example_design/par/vio_coregen.xco + ignore + xco + Thu Dec 20 09:26:20 GMT 2012 + 0x4A18E2CE + generationID_1879581046 + + + ./mig_39/example_design/rtl/example_top.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0xF3D1648E + generationID_1879581046 + + + ./mig_39/example_design/rtl/iodrp_controller.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x5A2197DD + generationID_1879581046 + + + ./mig_39/example_design/rtl/iodrp_mcb_controller.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x69237401 + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_raw_wrapper.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0xA3623325 + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_soft_calibration.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x9B8E0B5E + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_soft_calibration_top.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0xC37A23BB + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_infrastructure.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x8BA0A593 + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_tb_top.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x972877D1 + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_wrapper.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0xA8F90A8D + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/afifo.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x26568D9A + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/cmd_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0xC6EF0126 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/cmd_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x893B0F01 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/data_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x6E88FB8E + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/init_mem_pattern_ctr.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x26DEA717 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/mcb_flow_control.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0xB9D71414 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/mcb_traffic_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x125A1D59 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/rd_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x50A90B14 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/read_data_path.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0xDFA5DAF7 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/read_posted_fifo.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0xBC61DAC4 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/sp6_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0xA9170C59 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/tg_status.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x7B717096 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/v6_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x24F3E550 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/wr_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x91BCA941 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/write_data_path.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x391A16CE + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/ddr_model_c3.v + ignore + verilog + Thu Dec 20 09:26:20 GMT 2012 + 0x9DEEF7E8 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/ddr_model_parameters_c3.vh + ignore + verilog + Thu Dec 20 09:26:20 GMT 2012 + 0x66032C47 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/isim.sh + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0x33472FFE + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/isim.tcl + ignore + tcl + Thu Dec 20 09:26:20 GMT 2012 + 0x30A02B8A + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/mig_39.prj + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0x02A1F9CD + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/readme.txt + ignore + txt + Thu Dec 20 09:26:20 GMT 2012 + 0x19BAEB8E + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/sim.do + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0x7ADBDEBD + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/sim_tb_top.vhd + ignore + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x6B549CB0 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/timing_sim.sh + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0x455244CF + generationID_1879581046 + + + ./mig_39/example_design/synth/example_top.lso + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0xEEDE3797 + generationID_1879581046 + + + ./mig_39/example_design/synth/example_top.prj + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0x45A82CBA + generationID_1879581046 + + + ./mig_39/example_design/synth/mem_interface_top_synp.sdc + ignore + unknown + Thu Dec 20 09:26:20 GMT 2012 + 0x8CC320DE + generationID_1879581046 + + + ./mig_39/example_design/synth/script_synp.tcl + ignore + tcl + Thu Dec 20 09:26:20 GMT 2012 + 0xA5CDA13B + generationID_1879581046 + + + ./mig_39/user_design/datasheet.txt + ignore + txt + Thu Dec 20 09:26:21 GMT 2012 + 0x170D2A11 + generationID_1879581046 + + + ./mig_39/user_design/mig.prj + ignore + unknown + Thu Dec 20 09:26:21 GMT 2012 + 0xD50899C6 + generationID_1879581046 + + + ./mig_39/user_design/par/create_ise.sh + ignore + unknown + Thu Dec 20 09:26:21 GMT 2012 + 0x87F14240 + generationID_1879581046 + + + ./mig_39/user_design/par/icon_coregen.xco + ignore + xco + Thu Dec 20 09:26:21 GMT 2012 + 0xC38DC185 + generationID_1879581046 + + + ./mig_39/user_design/par/ila_coregen.xco + ignore + xco + Thu Dec 20 09:26:21 GMT 2012 + 0x2C219F2D + generationID_1879581046 + + + ./mig_39/user_design/par/ise_flow.sh + ignore + unknown + Thu Dec 20 09:26:21 GMT 2012 + 0xE4D4887D + generationID_1879581046 + + + ./mig_39/user_design/par/ise_run.txt + ignore + txt + Thu Dec 20 09:26:21 GMT 2012 + 0xF2DA5F4A + generationID_1879581046 + + + ./mig_39/user_design/par/makeproj.sh + ignore + unknown + Thu Dec 20 09:26:21 GMT 2012 + 0xCFE64DF9 + generationID_1879581046 + + + ./mig_39/user_design/par/mem_interface_top.ut + ignore + unknown + Thu Dec 20 09:26:21 GMT 2012 + 0xCDD0105F + generationID_1879581046 + + + ./mig_39/user_design/par/mig_39.ucf + ucf + Thu Dec 20 09:26:21 GMT 2012 + 0x46D3D963 + generationID_1879581046 + + + ./mig_39/user_design/par/readme.txt + ignore + txt + Thu Dec 20 09:26:21 GMT 2012 + 0xA924DFF1 + generationID_1879581046 + + + ./mig_39/user_design/par/rem_files.sh + ignore + unknown + Thu Dec 20 09:26:21 GMT 2012 + 0x3511EC76 + generationID_1879581046 + + + ./mig_39/user_design/par/set_ise_prop.tcl + ignore + tcl + Thu Dec 20 09:26:21 GMT 2012 + 0x66A0883B + generationID_1879581046 + + + ./mig_39/user_design/par/vio_coregen.xco + ignore + xco + Thu Dec 20 09:26:21 GMT 2012 + 0x4A18E2CE + generationID_1879581046 + + + ./mig_39/user_design/rtl/iodrp_controller.vhd + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x5A2197DD + generationID_1879581046 + + + ./mig_39/user_design/rtl/iodrp_mcb_controller.vhd + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x69237401 + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_raw_wrapper.vhd + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0xA3623325 + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_soft_calibration.vhd + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x9B8E0B5E + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_soft_calibration_top.vhd + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0xC37A23BB + generationID_1879581046 + + + ./mig_39/user_design/rtl/memc3_infrastructure.vhd + vhdl + Thu Dec 20 09:26:20 GMT 2012 + 0x8BA0A593 + generationID_1879581046 + + + ./mig_39/user_design/rtl/memc3_wrapper.vhd + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0xA8F90A8D + generationID_1879581046 + + + ./mig_39/user_design/rtl/mig_39.vhd + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0xFFE216B9 + generationID_1879581046 + + + ./mig_39/user_design/sim/afifo.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x26568D9A + generationID_1879581046 + + + ./mig_39/user_design/sim/cmd_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0xC6EF0126 + generationID_1879581046 + + + ./mig_39/user_design/sim/cmd_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x893B0F01 + generationID_1879581046 + + + ./mig_39/user_design/sim/data_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x6E88FB8E + generationID_1879581046 + + + ./mig_39/user_design/sim/ddr_model_c3.v + ignore + verilog + Thu Dec 20 09:26:21 GMT 2012 + 0x9DEEF7E8 + generationID_1879581046 + + + ./mig_39/user_design/sim/ddr_model_parameters_c3.vh + ignore + verilog + Thu Dec 20 09:26:21 GMT 2012 + 0x66032C47 + generationID_1879581046 + + + ./mig_39/user_design/sim/init_mem_pattern_ctr.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x26DEA717 + generationID_1879581046 + + + ./mig_39/user_design/sim/isim.sh + ignore + unknown + Thu Dec 20 09:26:21 GMT 2012 + 0x33472FFE + generationID_1879581046 + + + ./mig_39/user_design/sim/isim.tcl + ignore + tcl + Thu Dec 20 09:26:21 GMT 2012 + 0x30A02B8A + generationID_1879581046 + + + ./mig_39/user_design/sim/mcb_flow_control.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0xB9D71414 + generationID_1879581046 + + + ./mig_39/user_design/sim/mcb_traffic_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x125A1D59 + generationID_1879581046 + + + ./mig_39/user_design/sim/memc3_tb_top.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x972877D1 + generationID_1879581046 + + + ./mig_39/user_design/sim/mig_39.prj + ignore + unknown + Thu Dec 20 09:26:21 GMT 2012 + 0xD974D6CA + generationID_1879581046 + + + ./mig_39/user_design/sim/rd_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x50A90B14 + generationID_1879581046 + + + ./mig_39/user_design/sim/read_data_path.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0xDFA5DAF7 + generationID_1879581046 + + + ./mig_39/user_design/sim/read_posted_fifo.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0xBC61DAC4 + generationID_1879581046 + + + ./mig_39/user_design/sim/readme.txt + ignore + txt + Thu Dec 20 09:26:21 GMT 2012 + 0x19BAEB8E + generationID_1879581046 + + + ./mig_39/user_design/sim/sim.do + ignore + unknown + Thu Dec 20 09:26:21 GMT 2012 + 0xED204E39 + generationID_1879581046 + + + ./mig_39/user_design/sim/sim_tb_top.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x01E96942 + generationID_1879581046 + + + ./mig_39/user_design/sim/sp6_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0xA9170C59 + generationID_1879581046 + + + ./mig_39/user_design/sim/tg_status.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x7B717096 + generationID_1879581046 + + + ./mig_39/user_design/sim/v6_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x24F3E550 + generationID_1879581046 + + + ./mig_39/user_design/sim/wr_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x91BCA941 + generationID_1879581046 + + + ./mig_39/user_design/sim/write_data_path.vhd + ignore + vhdl + Thu Dec 20 09:26:21 GMT 2012 + 0x391A16CE + generationID_1879581046 + + + ./mig_39/user_design/synth/mem_interface_top_synp.sdc + ignore + unknown + Thu Dec 20 09:26:21 GMT 2012 + 0xBE2AEA94 + generationID_1879581046 + + + ./mig_39/user_design/synth/mig_39.lso + ignore + unknown + Thu Dec 20 09:26:21 GMT 2012 + 0xEEDE3797 + generationID_1879581046 + + + ./mig_39/user_design/synth/mig_39.prj + ignore + unknown + Thu Dec 20 09:26:21 GMT 2012 + 0x1521D75B + generationID_1879581046 + + + ./mig_39/user_design/synth/script_synp.tcl + ignore + tcl + Thu Dec 20 09:26:21 GMT 2012 + 0x122980B4 + generationID_1879581046 + + + ./mig_39.vho + vho + Thu Dec 20 09:26:21 GMT 2012 + 0xFB70C30E + generationID_1879581046 + + + ./mig_39_readme.txt + ignore + txt + Thu Dec 20 09:26:21 GMT 2012 + 0x412C831B + generationID_1879581046 + + + ./mig_39_xmdf.tcl + ignore + tcl + Thu Dec 20 09:26:21 GMT 2012 + 0x87D169C0 + generationID_1879581046 + + + + instantiation_template_generator + + + asy_generator + + + xmdf_generator + + + ise_generator + + ./mig_39.gise + ignore + gise + Thu Dec 20 09:26:27 GMT 2012 + 0x8CB3D14A + generationID_1879581046 + + + ./mig_39.xise + ignore + xise + Thu Dec 20 09:26:27 GMT 2012 + 0x575D7C27 + generationID_1879581046 + + + + deliver_readme_generator + + + flist_generator + + ./mig_39_flist.txt + ignore + txtFlist + txt + Thu Dec 20 09:26:27 GMT 2012 + 0xF899407B + generationID_1879581046 + + + + + + + + + + coregen + ./ + ./tmp/ + ./tmp/_cg + + + xc6slx25 + spartan6 + ftg256 + -3 + + + BusFormatAngleBracketNotRipped + VHDL + true + Other + false + false + false + Ngc + false + + + Behavioral + VHDL + false + + + + + diff --git a/designs/leon3-ztex-ufm-111/mig39/coregen.cgp b/designs/leon3-ztex-ufm-111/mig39/coregen.cgp new file mode 100644 index 00000000..35c81d94 --- /dev/null +++ b/designs/leon3-ztex-ufm-111/mig39/coregen.cgp @@ -0,0 +1,22 @@ +# Date: Sun Jul 24 18:57:39 2011 + +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6slx25 +SET devicefamily = spartan6 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = ftg256 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = false +SET vhdlsim = true +SET workingdirectory = ./tmp/ + +# CRC: f4d1bc2c diff --git a/designs/leon3-ztex-ufm-111/mig39/mig.prj b/designs/leon3-ztex-ufm-111/mig39/mig.prj new file mode 100644 index 00000000..30199bed --- /dev/null +++ b/designs/leon3-ztex-ufm-111/mig39/mig.prj @@ -0,0 +1,55 @@ + + + mig_39 + xc6slx25-ftg256/-3 + 3.92 + + DDR_SDRAM/Components/MT46V32M16XX-5B-IT + 5000 + 0 + 1 + FALSE + + 13 + 10 + 2 + + + + 4(010) + 3 + Enable-Normal + Normal + NATIVE,NATIVE,NATIVE,NATIVE,NATIVE,NATIVE + Class II + Class II + EXTERN_TERM + 25 Ohms + + + + Single-Ended + 1 + Disable + Single-Ended + Two 32-bit bi-directional and four 32-bit unidirectional ports + M4 + M5 + Port0 + Bi-directional,none,none,none,none,none + ROW_BANK_COLUMN + Round Robin + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + diff --git a/designs/leon3-ztex-ufm-111/mig39/mig.xco b/designs/leon3-ztex-ufm-111/mig39/mig.xco new file mode 100644 index 00000000..3940fbbe --- /dev/null +++ b/designs/leon3-ztex-ufm-111/mig39/mig.xco @@ -0,0 +1,42 @@ +############################################################## +# +# Xilinx Core Generator version 13.1 +# Date: Sun Jul 24 19:06:40 2011 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6slx25 +SET devicefamily = spartan6 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = ftg256 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = false +SET vhdlsim = true +# END Project Options +# BEGIN Select +SELECT MIG_Virtex-6_and_Spartan-6 family Xilinx,_Inc. 3.92 +# END Select +# BEGIN Parameters +CSET component_name=mig_39 +CSET xml_input_file=./mig.prj +# END Parameters +GENERATE +# CRC: 98637a85 diff --git a/designs/leon3-ztex-ufm-111/mig39/mig_39.xco b/designs/leon3-ztex-ufm-111/mig39/mig_39.xco new file mode 100644 index 00000000..0c0b0848 --- /dev/null +++ b/designs/leon3-ztex-ufm-111/mig39/mig_39.xco @@ -0,0 +1,49 @@ +############################################################## +# +# Xilinx Core Generator version 14.3 +# Date: Thu Dec 20 09:26:20 2012 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# Generated from component: xilinx.com:ip:mig:3.92 +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6slx25 +SET devicefamily = spartan6 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = ftg256 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = false +SET vhdlsim = true +# END Project Options +# BEGIN Select +SELECT MIG_Virtex-6_and_Spartan-6 family Xilinx,_Inc. 3.92 +# END Select +# BEGIN Parameters +CSET component_name=mig_39 +CSET xml_input_file=./mig.prj +# END Parameters +# BEGIN Extra information +MISC pkg_timestamp=2012-10-13T03:35:42Z +# END Extra information +GENERATE +# CRC: 2508d8c8 diff --git a/designs/leon3-ztex-ufm-111/mig_patch.txt b/designs/leon3-ztex-ufm-111/mig_patch.txt new file mode 100644 index 00000000..044cbaec --- /dev/null +++ b/designs/leon3-ztex-ufm-111/mig_patch.txt @@ -0,0 +1,41 @@ +--- mig39/mig_39/user_design/rtl/mig_39.vhd 2012-12-20 10:05:01.000000000 +0100 ++++ mig39_copy/mig_39/user_design/rtl/mig_39.vhd 2012-12-20 10:19:33.235749774 +0100 +@@ -65,7 +65,7 @@ + --***************************************************************************** + library ieee; + use ieee.std_logic_1164.all; +-entity mig_39 is ++entity mig_37 is + generic + ( + C3_P0_MASK_SIZE : integer := 4; +@@ -114,7 +114,7 @@ + mcb3_rzq : inout std_logic; + mcb3_dram_udm : out std_logic; + c3_sys_clk : in std_logic; +- c3_sys_rst_i : in std_logic; ++ c3_sys_rst_n : in std_logic; + c3_calib_done : out std_logic; + c3_clk0 : out std_logic; + c3_rst0 : out std_logic; +@@ -146,9 +146,9 @@ + c3_p0_rd_overflow : out std_logic; + c3_p0_rd_error : out std_logic + ); +-end mig_39; ++end mig_37; + +-architecture arc of mig_39 is ++architecture arc of mig_37 is + + + component memc3_infrastructure is +@@ -441,7 +441,7 @@ + sys_clk_p => c3_sys_clk_p, + sys_clk_n => c3_sys_clk_n, + sys_clk => c3_sys_clk, +- sys_rst_i => c3_sys_rst_i, ++ sys_rst_i => c3_sys_rst_n, + clk0 => c3_clk0, + rst0 => c3_rst0, + async_rst => c3_async_rst, diff --git a/designs/leon3-ztex-ufm-111/testbench.vhd b/designs/leon3-ztex-ufm-111/testbench.vhd index d6ecd800..06b19de2 100644 --- a/designs/leon3-ztex-ufm-111/testbench.vhd +++ b/designs/leon3-ztex-ufm-111/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-ztex-ufm-111/tkconfig.h b/designs/leon3-ztex-ufm-111/tkconfig.h index dd755300..48039bc8 100644 --- a/designs/leon3-ztex-ufm-111/tkconfig.h +++ b/designs/leon3-ztex-ufm-111/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -695,6 +717,10 @@ #endif +#ifndef CONFIG_MIG_DDR3 +#define CONFIG_MIG_DDR3 0 +#endif + #ifndef CONFIG_MIG_DDR2 #define CONFIG_MIG_DDR2 0 #endif diff --git a/designs/leon3-ztex-ufm-115/Makefile b/designs/leon3-ztex-ufm-115/Makefile index e65ae995..80e70ddf 100644 --- a/designs/leon3-ztex-ufm-115/Makefile +++ b/designs/leon3-ztex-ufm-115/Makefile @@ -2,10 +2,11 @@ include .config GRLIB=../.. TOP=leon3mp BOARD=ztex-ufm-115 +DESIGN=leon3-ztex-ufm-115 include $(GRLIB)/boards/$(BOARD)/Makefile.inc DEVICE=$(PART)-$(PACKAGE)$(SPEED) UCF=$(TOP).ucf -#ISEMAPOPT=-timing +UCF_PLANAHEAD=$(UCF) QSF=$(GRLIB)/boards/$(BOARD)/$(TOP).qsf EFFORT=high XSTOPT=-uc leon3mp.xcf @@ -22,9 +23,16 @@ VHDLOPTSYNFILES = \ mig37/mig_37/user_design/rtl/mcb_soft_calibration_top.vhd \ mig37/mig_37/user_design/rtl/memc3_infrastructure.vhd \ mig37/mig_37/user_design/rtl/memc3_wrapper.vhd \ - mig37/mig_37/user_design/rtl/mig_37.vhd - -VHDLSYNFILES = config.vhd ahbrom.vhd ahb2mig_ztex.vhd leon3mp.vhd + mig37/mig_37/user_design/rtl/mig_37.vhd \ + mig39/mig_39/user_design/rtl/iodrp_controller.vhd \ + mig39/mig_39/user_design/rtl/iodrp_mcb_controller.vhd \ + mig39/mig_39/user_design/rtl/mcb_raw_wrapper.vhd \ + mig39/mig_39/user_design/rtl/mcb_soft_calibration.vhd \ + mig39/mig_39/user_design/rtl/mcb_soft_calibration_top.vhd \ + mig39/mig_39/user_design/rtl/memc3_infrastructure.vhd \ + mig39/mig_39/user_design/rtl/memc3_wrapper.vhd \ + mig39/mig_39/user_design/rtl/mig_39.vhd \ + config.vhd ahbrom.vhd ahb2mig_ztex.vhd leon3mp.vhd VHDLSIMFILES=testbench.vhd @@ -36,10 +44,10 @@ CLEAN=soft-clean TECHLIBS = secureip unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip ihp gleichmann usbhc spw + tmtc openchip ihp usbhc spw DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan pci leon3ft ambatest can \ - usb grusbhc spacewire ata haps coremp7 ascs slink hcan \ - leon4 leon4b64 l2cache pwm gr1553b iommu + usb grusbhc spacewire ascs slink hcan \ + leon4 leon4v0 l2cache pwm gr1553b iommu FILEADD = MCB.vhd FILESKIP = grcan.vhd @@ -71,3 +79,13 @@ ztex-upload-fw: -uu $(ZTEX)/examples/usb-fpga-1.15/standalone/standalone.ihx \ -rf -uf $(TOP).bit +mig39: + coregen -b mig39/mig.xco -p mig39 + patch -p0 < mig_patch.txt + patch -p0 < memc3_infrastructure_patch.txt + patch -p0 < mcb_soft_calibration_patch.txt + +mig39clean: + -rm -rf mig39/mig_39* mig39/tmp + +.PHONY : mig mig39 mig39clean \ No newline at end of file diff --git a/designs/leon3-ztex-ufm-115/README.txt b/designs/leon3-ztex-ufm-115/README.txt index d41f15eb..25949e57 100644 --- a/designs/leon3-ztex-ufm-115/README.txt +++ b/designs/leon3-ztex-ufm-115/README.txt @@ -18,16 +18,27 @@ interface. The MIG source code cannot be distributed due to the prohibitive Xilinx license, so the MIG must be re-generated with coregen before simulation and synthesis can be done. -To generate the MIG and install the Xilinx unisim simulation +To generate the MIG using ISE13 and install the Xilinx unisim simulation library, do as follows: make mig make install-secureip -This will ONLY work with ISE-13 installed, and the XILINX variable -properly set in the shell. To synthesize the design, do +To generate the MIG using ISE14 and install the Xilinx unisim simulation +library, do as follows: + + make mig39 + make install-secureip + +This will ONLY work with correct version of ISE installed, and the XILINX variable +properly set in the shell. For ISE13 it is recommened to use the 'ise' make target +and for ISE14 to use the 'planAhead' target. To synthesize the design, do + + make ise (ISE13) + +or - make ise + make planAhead (ISE14) The FPGA can be programmed via JTAG using: diff --git a/designs/leon3-ztex-ufm-115/ahb2mig_ztex.vhd b/designs/leon3-ztex-ufm-115/ahb2mig_ztex.vhd index 6af47f12..a7f4a46f 100644 --- a/designs/leon3-ztex-ufm-115/ahb2mig_ztex.vhd +++ b/designs/leon3-ztex-ufm-115/ahb2mig_ztex.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -351,7 +351,6 @@ begin ahbso.hirq <= (others => '0'); ahbso.hindex <= hindex; ahbso.hsplit <= (others => '0'); - ahbso.hcache <= '1'; apbo.pirq <= (others => '0'); apbo.pindex <= pindex; diff --git a/designs/leon3-ztex-ufm-115/ahbrom.vhd b/designs/leon3-ztex-ufm-115/ahbrom.vhd index 4c4156c8..181cdb27 100644 --- a/designs/leon3-ztex-ufm-115/ahbrom.vhd +++ b/designs/leon3-ztex-ufm-115/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3-ztex-ufm-115/config.help b/designs/leon3-ztex-ufm-115/config.help index 69a6cafa..260eb3d2 100644 --- a/designs/leon3-ztex-ufm-115/config.help +++ b/designs/leon3-ztex-ufm-115/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3-ztex-ufm-115/lconfig.tk b/designs/leon3-ztex-ufm-115/lconfig.tk index 00cef9f9..f243e813 100755 --- a/designs/leon3-ztex-ufm-115/lconfig.tk +++ b/designs/leon3-ztex-ufm-115/lconfig.tk @@ -751,7 +751,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -761,7 +762,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -904,8 +907,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -924,6 +929,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1126,9 +1135,10 @@ proc menu3 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_3 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_3 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_3 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_3 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_3 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_3 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 3 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 3 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 3 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1182,10 +1192,11 @@ proc update_menu3 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu3.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x2.l configure -state normal; } else {.menu3.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x2.l configure -state disabled} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {.menu3.config.f.x2.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x2.l configure -state normal; } else {.menu3.config.f.x2.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x2.l configure -state disabled} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu3.config.f.x3.x configure -state normal -foreground [ cget .ref -foreground ]; .menu3.config.f.x3.l configure -state normal; } else {.menu3.config.f.x3.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu3.config.f.x3.l configure -state disabled} global CONFIG_OCLKB_DIV @@ -1231,14 +1242,16 @@ proc update_define_menu3 {} { if {$tmpvar_3 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_3 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_3 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_3 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_3 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1311,13 +1324,21 @@ proc menu4 {w title} { bool $w.config.f 4 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 4 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 4 2 "Integer unit " 5 - submenu $w.config.f 4 3 "Floating-point unit" 6 - submenu $w.config.f 4 4 "Cache system" 7 - submenu $w.config.f 4 5 "MMU" 8 - submenu $w.config.f 4 6 "Debug Support Unit " 9 - submenu $w.config.f 4 7 "Fault-tolerance " 10 - submenu $w.config.f 4 8 "VHDL debug settings " 11 + global tmpvar_4 + minimenu $w.config.f 4 2 "Force values from example configuration (see help)" tmpvar_4 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_4 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_4 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_4 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_4 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 4 3 "Integer unit " 5 + submenu $w.config.f 4 4 "Floating-point unit" 6 + submenu $w.config.f 4 5 "Cache system" 7 + submenu $w.config.f 4 6 "MMU" 8 + submenu $w.config.f 4 7 "Debug Support Unit " 9 + submenu $w.config.f 4 8 "Fault-tolerance " 10 + submenu $w.config.f 4 9 "VHDL debug settings " 11 @@ -1357,22 +1378,290 @@ proc update_menu4 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x1.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x1.l configure -state normal; } else {.menu4.config.f.x1.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x1.l configure -state disabled} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x2 normal {m}} else {configure_entry .menu4.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x3 normal {m}} else {configure_entry .menu4.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x4 normal {m}} else {configure_entry .menu4.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x5 normal {m}} else {configure_entry .menu4.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x6 normal {m}} else {configure_entry .menu4.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x7 normal {m}} else {configure_entry .menu4.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x2 normal {x l}} else {configure_entry .menu4.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x3 normal {m}} else {configure_entry .menu4.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x4 normal {m}} else {configure_entry .menu4.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x5 normal {m}} else {configure_entry .menu4.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x6 normal {m}} else {configure_entry .menu4.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu4.config.f.x7 normal {m}} else {configure_entry .menu4.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x8 normal {m}} else {configure_entry .menu4.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu4.config.f.x9 normal {m}} else {configure_entry .menu4.config.f.x9 disabled {m}} } proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_4 + global CONFIG_LEON3_MIN + if {$tmpvar_4 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_4 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_4 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_4 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1429,21 +1718,21 @@ proc menu5 {w title} { int $w.config.f 5 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 5 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_4 - minimenu $w.config.f 5 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_5 + minimenu $w.config.f 5 2 "Hardware multiplier latency" tmpvar_5 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_5 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_5 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_5 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 5 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_5 - minimenu $w.config.f 5 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED + global tmpvar_6 + minimenu $w.config.f 5 4 "Multipler structure " tmpvar_6 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_6 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_6 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 5 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 5 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1490,36 +1779,37 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x0.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x0.l configure -state normal; } else {.menu5.config.f.x0.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x0.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x0.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x0.l configure -state normal; } else {.menu5.config.f.x0.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x0.l configure -state disabled} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x1 normal {n l y}} else {configure_entry .menu5.config.f.x1 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x2 normal {x l}} else {configure_entry .menu5.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x2 normal {x l}} else {configure_entry .menu5.config.f.x2 disabled {x l}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu5.config.f.x3 normal {n l y}} else {configure_entry .menu5.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu5.config.f.x4 normal {x l}} else {configure_entry .menu5.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x5 normal {n l y}} else {configure_entry .menu5.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x6 normal {n l y}} else {configure_entry .menu5.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x7 normal {n l y}} else {configure_entry .menu5.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x8.l configure -state normal; } else {.menu5.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x8.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x8.l configure -state normal; } else {.menu5.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x8.l configure -state disabled} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x9.l configure -state normal; } else {.menu5.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x9.l configure -state normal; } else {.menu5.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x10 normal {n l y}} else {configure_entry .menu5.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu5.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x11.l configure -state normal; } else {.menu5.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu5.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu5.config.f.x11.l configure -state normal; } else {.menu5.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu5.config.f.x11.l configure -state disabled} } @@ -1527,48 +1817,49 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_5 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_5 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_5 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_6 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_6 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_6 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_6 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1624,27 +1915,27 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_6 - minimenu $w.config.f 6 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU + global tmpvar_7 + minimenu $w.config.f 6 1 "FPU core" tmpvar_7 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_7 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_7 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_7 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_7 - minimenu $w.config.f 6 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_8 + minimenu $w.config.f 6 2 "GRFPU multiplier" tmpvar_8 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_8 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_8 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_8 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_8 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_8 - minimenu $w.config.f 6 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 + global tmpvar_9 + minimenu $w.config.f 6 3 "GRFPU-LITE controller" tmpvar_9 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_9 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_9 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_9 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 6 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1685,16 +1976,17 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu6.config.f.x1 normal {x l}} else {configure_entry .menu6.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu6.config.f.x1 normal {x l}} else {configure_entry .menu6.config.f.x1 disabled {x l}} global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {configure_entry .menu6.config.f.x2 normal {x l}} else {configure_entry .menu6.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then {configure_entry .menu6.config.f.x2 normal {x l}} else {configure_entry .menu6.config.f.x2 disabled {x l}} global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu6.config.f.x3 normal {x l}} else {configure_entry .menu6.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then {configure_entry .menu6.config.f.x3 normal {x l}} else {configure_entry .menu6.config.f.x3 disabled {x l}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu6.config.f.x4 normal {n l y}} else {configure_entry .menu6.config.f.x4 disabled {y n l}} } @@ -1703,34 +1995,35 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_6 + global tmpvar_7 global CONFIG_FPU_GRFPU - if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_7 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_7 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_7 + if {$tmpvar_7 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_8 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_8 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_8 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_8 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_8 + if {$tmpvar_8 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_9 global CONFIG_FPU_GRFPC0 - if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_9 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_9 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_9 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1787,92 +2080,92 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_9 - minimenu $w.config.f 7 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 + global tmpvar_10 + minimenu $w.config.f 7 1 "Associativity (sets) " tmpvar_10 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_10 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_10 - minimenu $w.config.f 7 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 + global tmpvar_11 + minimenu $w.config.f 7 2 "Way size (kbytes/way)" tmpvar_11 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_11 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_11 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_11 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_11 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_11 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_11 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_11 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_11 - minimenu $w.config.f 7 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 + global tmpvar_12 + minimenu $w.config.f 7 3 "Line size (bytes/line)" tmpvar_12 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_12 - minimenu $w.config.f 7 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND + global tmpvar_13 + minimenu $w.config.f 7 4 "Replacement alorithm" tmpvar_13 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_13 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_13 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_13 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_13 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 7 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 7 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_13 - minimenu $w.config.f 7 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_14 + minimenu $w.config.f 7 7 "Local data RAM size (kbytes)" tmpvar_14 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 7 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 7 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_14 - minimenu $w.config.f 7 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 + global tmpvar_15 + minimenu $w.config.f 7 10 "Associativity (sets)" tmpvar_15 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_15 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_15 - minimenu $w.config.f 7 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 + global tmpvar_16 + minimenu $w.config.f 7 11 "Set size (kbytes/set)" tmpvar_16 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_16 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_16 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_16 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_16 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_16 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_16 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_16 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_16 - minimenu $w.config.f 7 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 + global tmpvar_17 + minimenu $w.config.f 7 12 "Line size (bytes/line)" tmpvar_17 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_17 - minimenu $w.config.f 7 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND + global tmpvar_18 + minimenu $w.config.f 7 13 "Replacement alorithm" tmpvar_18 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_18 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_18 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_18 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_18 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 7 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 7 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1880,18 +2173,18 @@ proc menu7 {w title} { bool $w.config.f 7 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 7 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 7 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_18 - minimenu $w.config.f 7 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_19 + minimenu $w.config.f 7 20 "Local data RAM size (kbytes)" tmpvar_19 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_19 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_19 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_19 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_19 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_19 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_19 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_19 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_19 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_19 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 7 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1932,52 +2225,53 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x1 normal {x l}} else {configure_entry .menu7.config.f.x1 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x2 normal {x l}} else {configure_entry .menu7.config.f.x2 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x3 normal {x l}} else {configure_entry .menu7.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x1 normal {x l}} else {configure_entry .menu7.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x2 normal {x l}} else {configure_entry .menu7.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x3 normal {x l}} else {configure_entry .menu7.config.f.x3 disabled {x l}} global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x4 normal {x l}} else {configure_entry .menu7.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x4 normal {x l}} else {configure_entry .menu7.config.f.x4 disabled {x l}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu7.config.f.x6 normal {n l y}} else {configure_entry .menu7.config.f.x6 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x7 normal {x l}} else {configure_entry .menu7.config.f.x7 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x7 normal {x l}} else {configure_entry .menu7.config.f.x7 disabled {x l}} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {.menu7.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x8.l configure -state normal; } else {.menu7.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x8.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {.menu7.config.f.x8.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x8.l configure -state normal; } else {.menu7.config.f.x8.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x8.l configure -state disabled} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x9 normal {n l y}} else {configure_entry .menu7.config.f.x9 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x10 normal {x l}} else {configure_entry .menu7.config.f.x10 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x11 normal {x l}} else {configure_entry .menu7.config.f.x11 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x12 normal {x l}} else {configure_entry .menu7.config.f.x12 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x10 normal {x l}} else {configure_entry .menu7.config.f.x10 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x11 normal {x l}} else {configure_entry .menu7.config.f.x11 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {configure_entry .menu7.config.f.x12 normal {x l}} else {configure_entry .menu7.config.f.x12 disabled {x l}} global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x13 normal {x l}} else {configure_entry .menu7.config.f.x13 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {configure_entry .menu7.config.f.x13 normal {x l}} else {configure_entry .menu7.config.f.x13 disabled {x l}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu7.config.f.x14 normal {n l y}} else {configure_entry .menu7.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu7.config.f.x15 normal {n l y}} else {configure_entry .menu7.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu7.config.f.x16 normal {n l y}} else {configure_entry .menu7.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu7.config.f.x17 normal {n l y}} else {configure_entry .menu7.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {.menu7.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x18.l configure -state normal; } else {.menu7.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x18.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {.menu7.config.f.x18.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x18.l configure -state normal; } else {.menu7.config.f.x18.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x18.l configure -state disabled} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu7.config.f.x19 normal {n l y}} else {configure_entry .menu7.config.f.x19 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x20 normal {x l}} else {configure_entry .menu7.config.f.x20 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {configure_entry .menu7.config.f.x20 normal {x l}} else {configure_entry .menu7.config.f.x20 disabled {x l}} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {.menu7.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x21.l configure -state normal; } else {.menu7.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x21.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {.menu7.config.f.x21.x configure -state normal -foreground [ cget .ref -foreground ]; .menu7.config.f.x21.l configure -state normal; } else {.menu7.config.f.x21.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu7.config.f.x21.l configure -state disabled} } @@ -1985,162 +2279,163 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_9 + global tmpvar_10 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_10 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_10 + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_11 global CONFIG_ICACHE_SZ1 - if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_11 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_11 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_11 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_11 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_11 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_11 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_11 + if {$tmpvar_11 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_12 global CONFIG_ICACHE_LZ16 - if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_12 + if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_13 global CONFIG_ICACHE_ALGORND - if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_13 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_13 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_13 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_13 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_14 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_14 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_14 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_14 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_14 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_14 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_14 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_14 + global tmpvar_15 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_15 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_15 + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_16 global CONFIG_DCACHE_SZ1 - if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_16 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_16 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_16 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_16 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_16 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_16 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_16 + if {$tmpvar_16 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_17 global CONFIG_DCACHE_LZ16 - if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_17 + if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_18 global CONFIG_DCACHE_ALGORND - if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_18 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_18 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_18 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_18 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_19 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_19 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_19 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_19 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_19 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_19 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_19 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_19 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_19 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2196,45 +2491,47 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_19 - minimenu $w.config.f 8 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED + global tmpvar_20 + minimenu $w.config.f 8 1 "MMU type " tmpvar_20 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_20 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_20 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 8 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY + global tmpvar_21 + minimenu $w.config.f 8 2 "TLB replacement sheme " tmpvar_21 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_21 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_21 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_21 - minimenu $w.config.f 8 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_22 - minimenu $w.config.f 8 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 + minimenu $w.config.f 8 3 "Instruction (or combined) TLB entries" tmpvar_22 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_23 + minimenu $w.config.f 8 4 "Data TLB entries" tmpvar_23 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_23 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_23 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 8 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_23 - minimenu $w.config.f 8 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K + global tmpvar_24 + minimenu $w.config.f 8 6 "MMU page size" tmpvar_24 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_24 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_24 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_24 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_24 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_24 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2274,18 +2571,19 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x1 normal {x l}} else {configure_entry .menu8.config.f.x1 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x2 normal {x l}} else {configure_entry .menu8.config.f.x2 disabled {x l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x3 normal {x l}} else {configure_entry .menu8.config.f.x3 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x1 normal {x l}} else {configure_entry .menu8.config.f.x1 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x2 normal {x l}} else {configure_entry .menu8.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x3 normal {x l}} else {configure_entry .menu8.config.f.x3 disabled {x l}} global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {configure_entry .menu8.config.f.x4 normal {x l}} else {configure_entry .menu8.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {configure_entry .menu8.config.f.x4 normal {x l}} else {configure_entry .menu8.config.f.x4 disabled {x l}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu8.config.f.x5 normal {n l y}} else {configure_entry .menu8.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x6 normal {x l}} else {configure_entry .menu8.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu8.config.f.x6 normal {x l}} else {configure_entry .menu8.config.f.x6 disabled {x l}} } @@ -2293,55 +2591,60 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_19 + global tmpvar_20 global CONFIG_MMU_COMBINED - if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_20 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_20 + if {$tmpvar_20 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_21 global CONFIG_MMU_REPARRAY - if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_21 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_21 + if {$tmpvar_21 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_22 global CONFIG_MMU_I2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_22 + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_23 global CONFIG_MMU_D2 - if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_23 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_23 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_23 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_23 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_23 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_23 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_MMU_PAGE_4K - if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_24 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_24 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_24 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_24 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_24 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2398,24 +2701,24 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 9 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_24 - minimenu $w.config.f 9 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 + global tmpvar_25 + minimenu $w.config.f 9 2 "Instruction trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 9 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_25 - minimenu $w.config.f 9 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 + global tmpvar_26 + minimenu $w.config.f 9 4 "AHB trace buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2455,17 +2758,18 @@ proc menu9 {w title} { proc update_menu9 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu9.config.f.x1 normal {n l y}} else {configure_entry .menu9.config.f.x1 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {configure_entry .menu9.config.f.x4 normal {x l}} else {configure_entry .menu9.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then {configure_entry .menu9.config.f.x4 normal {x l}} else {configure_entry .menu9.config.f.x4 disabled {x l}} } @@ -2473,37 +2777,38 @@ proc update_define_menu9 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2559,16 +2864,23 @@ proc menu10 {w title} { bool $w.config.f 10 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_26 - minimenu $w.config.f 10 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE + global tmpvar_27 + minimenu $w.config.f 10 1 "IU Register file protection " tmpvar_27 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_27 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 10 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_28 + minimenu $w.config.f 10 2 "FPU Register file protection " tmpvar_28 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_28 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_28 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_28 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_28 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 10 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 10 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 10 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2616,9 +2928,7 @@ proc update_menu10 {} { configure_entry .menu10.config.f.x0 normal {n l y}} else {configure_entry .menu10.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu10.config.f.x1 normal {x l}} else {configure_entry .menu10.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu10.config.f.x2 normal {n l y}} else {configure_entry .menu10.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu10.config.f.x2 normal {x l}} else {configure_entry .menu10.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu10.config.f.x3 normal {n l y}} else {configure_entry .menu10.config.f.x3 disabled {y n l}} @@ -2640,21 +2950,26 @@ proc update_define_menu10 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_26 + global tmpvar_27 global CONFIG_IUFT_NONE - if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_27 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_27 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_27 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_27 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_27 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_28 + global CONFIG_FPUFT_NONE + if {$tmpvar_28 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_28 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_28 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_28 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -3287,16 +3602,16 @@ proc menu16 {w title} { hex $w.config.f 16 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 16 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 16 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_27 - minimenu $w.config.f 16 4 "AHB RAM size (Kbyte)" tmpvar_27 CONFIG_AHBRAM_SZ1 + global tmpvar_29 + minimenu $w.config.f 16 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_27 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_27 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_27 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_27 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 16 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3358,21 +3673,21 @@ proc update_define_menu16 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_27 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_27 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_27 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_27 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_27 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_27 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_27 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3431,15 +3746,15 @@ proc menu17 {w title} { bool $w.config.f 17 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_28 - minimenu $w.config.f 17 1 "UART1 FIFO depth" tmpvar_28 CONFIG_UA1_FIFO1 + global tmpvar_30 + minimenu $w.config.f 17 1 "UART1 FIFO depth" tmpvar_30 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_30 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_30 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 17 2 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 17 3 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -3528,19 +3843,19 @@ proc update_menu17 {} { proc update_define_menu17 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_28 + global tmpvar_30 global CONFIG_UA1_FIFO1 - if {$tmpvar_28 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_30 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_28 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_30 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_28 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_30 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_28 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_30 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_28 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_30 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_28 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + if {$tmpvar_30 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -3634,12 +3949,12 @@ proc menu18 {w title} { bool $w.config.f 18 8 "Support three-wire mode " CONFIG_SPICTRL_TWEN int $w.config.f 18 9 "Maximum supported word length (see help!) " CONFIG_SPICTRL_MAXWLEN bool $w.config.f 18 10 "Use SYNCRAM for rx and tx queues " CONFIG_SPICTRL_SYNCRAM - global tmpvar_29 - minimenu $w.config.f 18 11 "Fault-tolerance" tmpvar_29 CONFIG_SPICTRL_NOFT + global tmpvar_31 + minimenu $w.config.f 18 11 "Fault-tolerance" tmpvar_31 CONFIG_SPICTRL_NOFT menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Fault-tolerance\"" - $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_29 -value "None" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_29 -value "Parity-DMR" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_29 -value "TMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "None" -variable tmpvar_31 -value "None" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "Parity-DMR" -variable tmpvar_31 -value "Parity-DMR" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "TMR" -variable tmpvar_31 -value "TMR" -command "update_active" menusplit $w $w.config.f.x11.x.menu 3 @@ -3739,13 +4054,13 @@ proc update_define_menu18 {} { global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then { set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM&15]} else {set CONFIG_SPICTRL_SYNCRAM [expr $CONFIG_SPICTRL_SYNCRAM|16]} - global tmpvar_29 + global tmpvar_31 global CONFIG_SPICTRL_NOFT - if {$tmpvar_29 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} + if {$tmpvar_31 == "None"} then {set CONFIG_SPICTRL_NOFT 1} else {set CONFIG_SPICTRL_NOFT 0} global CONFIG_SPICTRL_DMRFT - if {$tmpvar_29 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} + if {$tmpvar_31 == "Parity-DMR"} then {set CONFIG_SPICTRL_DMRFT 1} else {set CONFIG_SPICTRL_DMRFT 0} global CONFIG_SPICTRL_TMRFT - if {$tmpvar_29 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} + if {$tmpvar_31 == "TMR"} then {set CONFIG_SPICTRL_TMRFT 1} else {set CONFIG_SPICTRL_TMRFT 0} } @@ -3887,7 +4202,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -3897,6 +4213,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -3926,6 +4244,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -3938,14 +4257,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_4 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -3958,27 +4282,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -3988,17 +4312,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4010,12 +4334,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -4025,10 +4349,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -4039,7 +4363,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -4051,26 +4375,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_21 "(not set)" +set tmpvar_22 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_22 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_23 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -4078,27 +4404,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_26 "(not set)" +set tmpvar_27 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_28 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -4128,7 +4458,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -4138,7 +4468,7 @@ set CONFIG_AHBRAM_SZ32 0 set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_UART1_ENABLE 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -4170,7 +4500,7 @@ set CONFIG_SPICTRL_ODMODE 0 set CONFIG_SPICTRL_TWEN 0 set CONFIG_SPICTRL_MAXWLEN 0 set CONFIG_SPICTRL_SYNCRAM 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_SPICTRL_NOFT 0 set CONFIG_SPICTRL_DMRFT 0 set CONFIG_SPICTRL_TMRFT 0 @@ -4230,7 +4560,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -4240,6 +4571,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -4285,6 +4618,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_3 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } + if { $tmpvar_3 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } if { $tmpvar_3 == "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 } if { $tmpvar_3 == "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 } global CONFIG_CLK_MUL @@ -4297,9 +4631,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -4313,239 +4648,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_4 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_4 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_4 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_4 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_4 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - if { $tmpvar_4 == "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 } - if { $tmpvar_4 == "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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_5 == "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 } + if { $tmpvar_5 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_6 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_6 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_6 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_6 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_7 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 }} global tmpvar_8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_8 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_9 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 }} global tmpvar_22 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 } - if { $tmpvar_22 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "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 } + if { $tmpvar_23 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_24 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_24 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_24 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_24 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_24 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_25 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 } - if { $tmpvar_25 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_26 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 } + if { $tmpvar_26 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_26 + global tmpvar_27 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_28 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_28 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_28 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_28 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_28 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -4610,28 +5095,28 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_27 + global tmpvar_29 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - 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 } - 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 } - 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 } - 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 } - 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 } - 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 } - 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 }} + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_28 + global tmpvar_30 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -4683,11 +5168,11 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPICTRL_MAXWLEN $CONFIG_SPICTRL_MAXWLEN $notmod } global CONFIG_SPICTRL_SYNCRAM if {($CONFIG_SPICTRL_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPICTRL_SYNCRAM $CONFIG_SPICTRL_SYNCRAM [list $notmod] 2 } - global tmpvar_29 + global tmpvar_31 if {($CONFIG_SPICTRL_ENABLE == 1) && ($CONFIG_SPICTRL_SYNCRAM == 1)} then { - if { $tmpvar_29 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } - if { $tmpvar_29 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } - if { $tmpvar_29 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} + if { $tmpvar_31 == "None" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_NOFT 0 [list $notmod] 2 } + if { $tmpvar_31 == "Parity-DMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_DMRFT 0 [list $notmod] 2 } + if { $tmpvar_31 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPICTRL_TMRFT 0 [list $notmod] 2 }} write_comment $cfg $autocfg "VHDL Debugging " global CONFIG_DEBUG_UART write_tristate $cfg $autocfg CONFIG_DEBUG_UART $CONFIG_DEBUG_UART [list $notmod] 2 @@ -4732,7 +5217,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -4742,6 +5228,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -4764,8 +5252,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -4848,11 +5341,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -4873,6 +5368,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0 global CONFIG_AHBRAM_SZ2; set CONFIG_AHBRAM_SZ2 0 global CONFIG_AHBRAM_SZ4; set CONFIG_AHBRAM_SZ4 0 @@ -4965,8 +5464,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -4985,6 +5486,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -5035,308 +5540,334 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_3 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_3 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_3 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_3 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_3 "Xilinx-DCM" } global tmpvar_4 - set tmpvar_4 "5-cycles" + set tmpvar_4 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_4 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_4 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_4 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_4 "Custom-configuration" } + global tmpvar_5 + set tmpvar_5 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_5 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_5 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } - global tmpvar_5 - set tmpvar_5 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_5 "5-cycles" } + global tmpvar_6 + set tmpvar_6 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_6 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_6 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } - global tmpvar_6 - set tmpvar_6 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_6 "Designware" } + global tmpvar_7 + set tmpvar_7 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_7 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_7 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } - global tmpvar_7 - set tmpvar_7 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_7 "Meiko" } + global tmpvar_8 + set tmpvar_8 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_8 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_8 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_8 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } - global tmpvar_8 - set tmpvar_8 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_8 "TechSpec" } + global tmpvar_9 + set tmpvar_9 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_9 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_9 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } - global tmpvar_9 - set tmpvar_9 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_9 "Non-blocking" } + global tmpvar_10 + set tmpvar_10 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_10 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } - global tmpvar_10 - set tmpvar_10 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_10 "4" } + global tmpvar_11 + set tmpvar_11 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_11 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_11 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_11 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_11 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_11 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_11 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_11 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } - global tmpvar_11 - set tmpvar_11 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_11 "256" } + global tmpvar_12 + set tmpvar_12 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_12 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } - global tmpvar_12 - set tmpvar_12 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_12 "32" } + global tmpvar_13 + set tmpvar_13 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_13 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_13 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_13 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } - global tmpvar_13 - set tmpvar_13 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_13 "LRU" } + global tmpvar_14 + set tmpvar_14 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_14 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_14 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_14 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_14 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_14 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_14 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_14 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_14 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } - global tmpvar_14 - set tmpvar_14 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_14 "256" } + global tmpvar_15 + set tmpvar_15 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_15 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } - global tmpvar_15 - set tmpvar_15 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_15 "4" } + global tmpvar_16 + set tmpvar_16 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_16 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_16 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_16 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_16 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_16 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_16 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_16 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } - global tmpvar_16 - set tmpvar_16 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_16 "256" } + global tmpvar_17 + set tmpvar_17 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_17 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } - global tmpvar_17 - set tmpvar_17 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_17 "32" } + global tmpvar_18 + set tmpvar_18 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_18 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_18 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_18 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } - global tmpvar_18 - set tmpvar_18 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_18 "LRU" } + global tmpvar_19 + set tmpvar_19 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_19 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_19 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_19 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_19 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_19 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_19 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_19 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_19 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } - global tmpvar_19 - set tmpvar_19 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_19 "256" } + global tmpvar_20 + set tmpvar_20 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_20 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } - global tmpvar_20 - set tmpvar_20 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_20 "split" } + global tmpvar_21 + set tmpvar_21 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_21 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_21 "Increment" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_23 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_23 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_23 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_23 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } - global tmpvar_23 - set tmpvar_23 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_23 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_23 "64" } + global tmpvar_24 + set tmpvar_24 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_24 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_24 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_24 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_24 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_24 "Programmable" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_26 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_26 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_26 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_26 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } - global tmpvar_26 - set tmpvar_26 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_26 "16" } + global tmpvar_27 + set tmpvar_27 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_27 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_27 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_27 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } - global tmpvar_27 - set tmpvar_27 "4" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_28 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_28 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_28 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_28 "TMR" } + global tmpvar_29 + set tmpvar_29 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_27 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_27 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_27 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_27 "64" } - global tmpvar_28 - set tmpvar_28 "1" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } + global tmpvar_30 + set tmpvar_30 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_28 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_30 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_28 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_30 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_28 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_30 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_30 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_30 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_28 "32" } - global tmpvar_29 - set tmpvar_29 "None" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_30 "32" } + global tmpvar_31 + set tmpvar_31 "None" global CONFIG_SPICTRL_NOFT - if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_29 "None" } + if { $CONFIG_SPICTRL_NOFT == 1 } then { set tmpvar_31 "None" } global CONFIG_SPICTRL_DMRFT - if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_29 "Parity-DMR" } + if { $CONFIG_SPICTRL_DMRFT == 1 } then { set tmpvar_31 "Parity-DMR" } global CONFIG_SPICTRL_TMRFT - if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_29 "TMR" } + if { $CONFIG_SPICTRL_TMRFT == 1 } then { set tmpvar_31 "TMR" } } diff --git a/designs/leon3-ztex-ufm-115/leon3mp.ucf b/designs/leon3-ztex-ufm-115/leon3mp.ucf index 54f0daea..91f8d54a 100644 --- a/designs/leon3-ztex-ufm-115/leon3mp.ucf +++ b/designs/leon3-ztex-ufm-115/leon3mp.ucf @@ -30,9 +30,13 @@ NET "dsuact" IOSTANDARD=LVTTL; ##### DDR SDRAM -#NET "*/mcb_soft_calibration_inst/DONE_SOFTANDHARD_CAL" TIG; -NET "*/memc3_wrapper_inst/memc3_mcb_raw_wrapper_inst/selfrefresh_mcb_mode" TIG; -NET "*/c3_pll_lock" TIG; +# --- MIG37 --- +NET "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/selfrefresh_mcb_mode" TIG; +NET "mig_gen.ddrc/MCB_inst/c?_pll_lock" TIG; +NET "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/CKE_Train" TIG; ## This path exists for DDR2 only + +# --- MIG39 --- +INST "mig_gen.ddrc/MCB_inst/memc?_wrapper_inst/memc?_mcb_raw_wrapper_inst/gen_term_calib.mcb_soft_calibration_top_inst/mcb_soft_calibration_inst/DONE_SOFTANDHARD_CAL*" TIG; CONFIG VCCAUX=2.5; # Valid values are 2.5 and 3.3 #CONFIG MCB_PERFORMANCE= STANDARD; diff --git a/designs/leon3-ztex-ufm-115/leon3mp.vhd b/designs/leon3-ztex-ufm-115/leon3mp.vhd index df46e2e1..1dc4efcc 100644 --- a/designs/leon3-ztex-ufm-115/leon3mp.vhd +++ b/designs/leon3-ztex-ufm-115/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-ztex-ufm-115/mcb_soft_calibration_patch.txt b/designs/leon3-ztex-ufm-115/mcb_soft_calibration_patch.txt new file mode 100644 index 00000000..ef221fad --- /dev/null +++ b/designs/leon3-ztex-ufm-115/mcb_soft_calibration_patch.txt @@ -0,0 +1,1049 @@ +--- ./mig39/mig_39//user_design/rtl/mcb_soft_calibration.vhd 2013-01-15 15:13:18.000000000 +0100 ++++ ./p/a/t/c/h/mig39/mig_39//user_design/rtl/mcb_soft_calibration.vhd 2013-01-15 15:19:15.608793398 +0100 +@@ -94,15 +94,7 @@ + -- 3.7: 04/26/10: Added DDR2 Initialization fix to meet 400 ns wait as outlined in step d) of JEDEC DDR2 spec . + -- 3.8: 05/05/10: Added fixes for the CR# 559092 (updated Mult_Divide function) and 555416 (added IOB attribute to DONE_SOFTANDHARD_CAL). + -- 3.9: 05/24/10: Added 200us Wait logic to control CKE_Train. The 200us Wait counter assumes UI_CLK freq not higher than 100 MHz. +--- 3.10 10/22/10: Fixed PERFORM_START_DYN_CAL_AFTER_SELFREFRESH logic. +--- 3.11 2/14/11: Apply a different skkew for the P and N inputs for the differential LDQS and UDQS signals to provide more noise immunity. +--- 4.1 03/08/12: Fixed SELFREFRESH_MCB_REQ logic. It should not need depend on the SM STATE so that +--- MCB can come out of selfresh mode. SM requires refresh cycle to update the DQS value. +--- 4.2 05/10/12: All P/N terms of input and bidir memory pins are initialized with value of ZERO. TZQINIT_MAXCNT +--- are set to 8 for LPDDR,DDR and DDR2 interface . +--- Keep the UICMDEN in assertion state when SM is in RST_DELAY state so that MCB will not start doing +--- Premable detection until the second deassertion of MCB_SYSRST. +- ++-- 3.10 10/22/10: Fixed PERFORM_START_DYN_CAL_AFTER_SELFREFRESH logic. + + -- End Revision + --********************************************************************************** +@@ -157,17 +149,17 @@ + MCB_UIADDR : out std_logic_vector(4 downto 0) := "00000"; -- to MCB's UIADDR port (gets passed to IODRP2_MCB's AUXADDR port + MCB_UICMDEN : out std_logic := '1'; -- set to 1 to take control of UI interface - removes control from internal calib block + MCB_UIDONECAL : out std_logic := '0'; -- set to 0 to "tell" controller that it's still in a calibrate state +- MCB_UIDQLOWERDEC : out std_logic ; +- MCB_UIDQLOWERINC : out std_logic ; +- MCB_UIDQUPPERDEC : out std_logic ; +- MCB_UIDQUPPERINC : out std_logic ; ++ MCB_UIDQLOWERDEC : out std_logic := '0'; ++ MCB_UIDQLOWERINC : out std_logic := '0'; ++ MCB_UIDQUPPERDEC : out std_logic := '0'; ++ MCB_UIDQUPPERINC : out std_logic := '0'; + MCB_UILDQSDEC : out std_logic := '0'; + MCB_UILDQSINC : out std_logic := '0'; + MCB_UIREAD : out std_logic; -- enables read w/o writing by turning on a SDO->SDI loopback inside the IODRP2_MCBs (doesn't exist in + -- regular IODRP2). IODRPCTRLR_R_WB becomes don't-care. + MCB_UIUDQSDEC : out std_logic := '0'; + MCB_UIUDQSINC : out std_logic := '0'; +- MCB_RECAL : out std_logic ; -- future hook to drive MCB's RECAL pin - initiates a hard re-calibration sequence when high ++ MCB_RECAL : out std_logic := '0'; -- future hook to drive MCB's RECAL pin - initiates a hard re-calibration sequence when high + MCB_UICMD : out std_logic; + MCB_UICMDIN : out std_logic; + MCB_UIDQCOUNT : out std_logic_vector(3 downto 0); +@@ -234,50 +226,31 @@ + constant WAIT5 : std_logic_vector(5 downto 0) := "001111"; + constant BROADCAST_NTERM : std_logic_vector(5 downto 0) := "010000"; + constant WAIT6 : std_logic_vector(5 downto 0) := "010001"; +- +- constant LDQS_CLK_WRITE_P_TERM : std_logic_vector(5 downto 0) := "010010"; +- constant LDQS_CLK_P_TERM_WAIT : std_logic_vector(5 downto 0) := "010011"; +- constant LDQS_CLK_WRITE_N_TERM : std_logic_vector(5 downto 0) := "010100"; +- constant LDQS_CLK_N_TERM_WAIT : std_logic_vector(5 downto 0) := "010101"; +- constant LDQS_PIN_WRITE_P_TERM : std_logic_vector(5 downto 0) := "010110"; +- constant LDQS_PIN_P_TERM_WAIT : std_logic_vector(5 downto 0) := "010111"; +- constant LDQS_PIN_WRITE_N_TERM : std_logic_vector(5 downto 0) := "011000"; +- constant LDQS_PIN_N_TERM_WAIT : std_logic_vector(5 downto 0) := "011001"; +- constant UDQS_CLK_WRITE_P_TERM : std_logic_vector(5 downto 0) := "011010"; +- constant UDQS_CLK_P_TERM_WAIT : std_logic_vector(5 downto 0) := "011011"; +- constant UDQS_CLK_WRITE_N_TERM : std_logic_vector(5 downto 0) := "011100"; +- constant UDQS_CLK_N_TERM_WAIT : std_logic_vector(5 downto 0) := "011101"; +- constant UDQS_PIN_WRITE_P_TERM : std_logic_vector(5 downto 0) := "011110"; +- constant UDQS_PIN_P_TERM_WAIT : std_logic_vector(5 downto 0) := "011111"; +- constant UDQS_PIN_WRITE_N_TERM : std_logic_vector(5 downto 0) := "100000"; +- constant UDQS_PIN_N_TERM_WAIT : std_logic_vector(5 downto 0) := "100001"; +- +- constant OFF_RZQ_PTERM : std_logic_vector(5 downto 0) := "100010"; +- constant WAIT7 : std_logic_vector(5 downto 0) := "100011"; +- constant OFF_ZIO_NTERM : std_logic_vector(5 downto 0) := "100100"; +- constant WAIT8 : std_logic_vector(5 downto 0) := "100101"; +- constant RST_DELAY : std_logic_vector(5 downto 0) := "100110"; +- constant START_DYN_CAL_PRE : std_logic_vector(5 downto 0) := "100111"; +- constant WAIT_FOR_UODONE : std_logic_vector(5 downto 0) := "101000"; +- constant LDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "101001"; +- constant LDQS_WAIT1 : std_logic_vector(5 downto 0) := "101010"; +- constant LDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "101011"; +- constant LDQS_WAIT2 : std_logic_vector(5 downto 0) := "101100"; +- constant UDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "101101"; +- constant UDQS_WAIT1 : std_logic_vector(5 downto 0) := "101110"; +- constant UDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "101111"; +- constant UDQS_WAIT2 : std_logic_vector(5 downto 0) := "110000"; +- constant START_DYN_CAL : std_logic_vector(5 downto 0) := "110001"; +- constant WRITE_CALIBRATE : std_logic_vector(5 downto 0) := "110010"; +- constant WAIT9 : std_logic_vector(5 downto 0) := "110011"; +- constant READ_MAX_VALUE : std_logic_vector(5 downto 0) := "110100"; +- constant WAIT10 : std_logic_vector(5 downto 0) := "110101"; +- constant ANALYZE_MAX_VALUE : std_logic_vector(5 downto 0) := "110110"; +- constant FIRST_DYN_CAL : std_logic_vector(5 downto 0) := "110111"; +- constant INCREMENT : std_logic_vector(5 downto 0) := "111000"; +- constant DECREMENT : std_logic_vector(5 downto 0) := "111001"; +- constant DONE : std_logic_vector(5 downto 0) := "111010"; +- --constant INCREMENT_TA : std_logic_vector(5 downto 0) := "111011"; ++ constant OFF_RZQ_PTERM : std_logic_vector(5 downto 0) := "010010"; ++ constant WAIT7 : std_logic_vector(5 downto 0) := "010011"; ++ constant OFF_ZIO_NTERM : std_logic_vector(5 downto 0) := "010100"; ++ constant WAIT8 : std_logic_vector(5 downto 0) := "010101"; ++ constant RST_DELAY : std_logic_vector(5 downto 0) := "010110"; ++ constant START_DYN_CAL_PRE : std_logic_vector(5 downto 0) := "010111"; ++ constant WAIT_FOR_UODONE : std_logic_vector(5 downto 0) := "011000"; ++ constant LDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "011001"; ++ constant LDQS_WAIT1 : std_logic_vector(5 downto 0) := "011010"; ++ constant LDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "011011"; ++ constant LDQS_WAIT2 : std_logic_vector(5 downto 0) := "011100"; ++ constant UDQS_WRITE_POS_INDELAY : std_logic_vector(5 downto 0) := "011101"; ++ constant UDQS_WAIT1 : std_logic_vector(5 downto 0) := "011110"; ++ constant UDQS_WRITE_NEG_INDELAY : std_logic_vector(5 downto 0) := "011111"; ++ constant UDQS_WAIT2 : std_logic_vector(5 downto 0) := "100000"; ++ constant START_DYN_CAL : std_logic_vector(5 downto 0) := "100001"; ++ constant WRITE_CALIBRATE : std_logic_vector(5 downto 0) := "100010"; ++ constant WAIT9 : std_logic_vector(5 downto 0) := "100011"; ++ constant READ_MAX_VALUE : std_logic_vector(5 downto 0) := "100100"; ++ constant WAIT10 : std_logic_vector(5 downto 0) := "100101"; ++ constant ANALYZE_MAX_VALUE : std_logic_vector(5 downto 0) := "100110"; ++ constant FIRST_DYN_CAL : std_logic_vector(5 downto 0) := "100111"; ++ constant INCREMENT : std_logic_vector(5 downto 0) := "101000"; ++ constant DECREMENT : std_logic_vector(5 downto 0) := "101001"; ++ constant DONE : std_logic_vector(5 downto 0) := "101010"; + + constant RZQ : std_logic_vector(1 downto 0) := "00"; + constant ZIO : std_logic_vector(1 downto 0) := "01"; +@@ -315,12 +288,10 @@ + constant DIV : integer := 4; + + constant PNSKEW : std_logic := '1'; -- Default is 1'b1. Change to 1'b0 if PSKEW and NSKEW are not required +- constant PNSKEWDQS : std_logic := '1'; +- +- constant MULT_S : integer := 9; +- constant DIV_S : integer := 8; +- constant MULT_W : integer := 7; +- constant DIV_W : integer := 8; ++ constant PSKEW_MULT : integer := 9; ++ constant PSKEW_DIV : integer := 8; ++ constant NSKEW_MULT : integer := 7; ++ constant NSKEW_DIV : integer := 8; + + constant DQS_NUMERATOR : integer := 3; + constant DQS_DENOMINATOR : integer := 8; +@@ -329,23 +300,11 @@ + -- 3 for three eighths + + constant RST_CNT : std_logic_vector(9 downto 0) := "0000010000"; ++ constant TZQINIT_MAXCNT : std_logic_vector(9 downto 0) := C_MEM_TZQINIT_MAXCNT + RST_CNT; + + constant IN_TERM_PASS : std_logic := '0'; + constant DYN_CAL_PASS : std_logic := '1'; + +- function TZQINIT_MAXCNT_W return std_logic_vector is +- variable temp : std_logic_vector(9 downto 0) := (others=>'0'); +- begin +- if (C_MEM_TYPE = "DDR3") then +- temp := C_MEM_TZQINIT_MAXCNT + RST_CNT; +- else +- temp := 8 + RST_CNT; +- end if; +- return temp(9 downto 0); +- end function; +- +- constant TZQINIT_MAXCNT : std_logic_vector(9 downto 0) := TZQINIT_MAXCNT_W; +- + component iodrp_mcb_controller is + port ( + memcell_address : in std_logic_vector(7 downto 0); +@@ -387,15 +346,11 @@ + end component; + + signal P_Term : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term : std_logic_vector(6 downto 0) := "0000000"; +- signal P_Term_s : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term_s : std_logic_vector(6 downto 0) := "0000000"; +- signal P_Term_w : std_logic_vector(5 downto 0) := "000000"; +- signal N_Term_w : std_logic_vector(6 downto 0) := "0000000"; ++ signal N_Term : std_logic_vector(6 downto 0) := "0000000"; + signal P_Term_Prev : std_logic_vector(5 downto 0) := "000000"; + signal N_Term_Prev : std_logic_vector(6 downto 0) := "0000000"; + +- signal STATE : std_logic_vector(5 downto 0); ++ signal STATE : std_logic_vector(5 downto 0) := START; + signal IODRPCTRLR_MEMCELL_ADDR : std_logic_vector(7 downto 0); + signal IODRPCTRLR_WRITE_DATA : std_logic_vector(7 downto 0); + signal Active_IODRP : std_logic_vector(1 downto 0); +@@ -411,7 +366,7 @@ + signal count : std_logic_vector(5 downto 0) := "000000"; -- counter for adding 18 extra clock cycles after setting Calibrate bit + signal counter_en : std_logic := '0'; -- counter enable for "count" + signal First_Dyn_Cal_Done : std_logic := '0'; -- flag - high after the very first dynamic calibration is done +- signal START_BROADCAST : std_logic ; -- Trigger to start Broadcast to IODRP2_MCBs to set Input Impedance - ++ signal START_BROADCAST : std_logic := '1'; -- Trigger to start Broadcast to IODRP2_MCBs to set Input Impedance - + -- state machine will wait for this to be high + signal DQS_DELAY_INITIAL : std_logic_vector(7 downto 0) := "00000000"; + signal DQS_DELAY : std_logic_vector(7 downto 0); -- contains the latest values written to LDQS and UDQS Input Delays +@@ -474,24 +429,15 @@ + signal MCB_UISDI_xilinx11 : std_logic; + signal MCB_UICS_xilinx6 : std_logic; + signal MCB_UIBROADCAST_xilinx4 : std_logic; +- signal MCB_UIADDR_int : std_logic_vector(4 downto 0); ++ signal MCB_UIADDR_xilinx3 : std_logic_vector(4 downto 0); + signal MCB_UIDONECAL_xilinx7 : std_logic; + signal MCB_UIREAD_xilinx10 : std_logic; + signal SELFREFRESH_MODE_xilinx11 : std_logic; + signal Max_Value_int : std_logic_vector(7 downto 0); + signal Rst_condition1 : std_logic; +- --signal Rst_condition2 : std_logic; ++ signal Rst_condition2 : std_logic; + signal non_violating_rst : std_logic; + signal WAIT_200us_COUNTER : std_logic_vector(15 downto 0); +- signal WaitTimer : std_logic_vector(7 downto 0); +- signal WarmEnough : std_logic; +- signal WaitCountEnable : std_logic; +- signal State_Start_DynCal_R1 : std_logic; +- signal State_Start_DynCal : std_logic; +- +- signal pre_sysrst_minpulse_width_ok : std_logic; +- signal pre_sysrst_cnt : std_logic_vector(3 downto 0); +- + -- This function multiplies by a constant MULT and then divides by the DIV constant + function Mult_Divide (Input : std_logic_vector(7 downto 0); MULT : integer ; DIV : integer ) return std_logic_vector is + variable Result : integer := 0; +@@ -505,19 +451,9 @@ + return temp(7 downto 0); + end function Mult_Divide; + +- +- + attribute syn_preserve : boolean; + attribute syn_preserve of P_Term : signal is TRUE; + attribute syn_preserve of N_Term : signal is TRUE; +- attribute syn_preserve of P_Term_s : signal is TRUE; +- attribute syn_preserve of N_Term_s : signal is TRUE; +- attribute syn_preserve of P_Term_w : signal is TRUE; +- attribute syn_preserve of N_Term_w : signal is TRUE; +- +- +- +- + attribute syn_preserve of P_Term_Prev : signal is TRUE; + attribute syn_preserve of N_Term_Prev : signal is TRUE; + attribute syn_preserve of IODRPCTRLR_MEMCELL_ADDR : signal is TRUE; +@@ -530,18 +466,6 @@ + + begin + +- +--- move the default assignment here to make FORMALITY happy. +- +- START_BROADCAST <= '1'; +- MCB_RECAL <= '0'; +- MCB_UIDQLOWERDEC <= '0'; +- MCB_UIADDR <= MCB_UIADDR_int; +- MCB_UIDQLOWERINC <= '0'; +- MCB_UIDQUPPERDEC <= '0'; +- MCB_UIDQUPPERINC <= '0'; +- +- + Max_Value <= Max_Value_int; + -- Drive referenced outputs + IODRP_ADD <= IODRP_ADD_xilinx0; +@@ -550,6 +474,7 @@ + MCB_UISDI <= MCB_UISDI_xilinx11; + MCB_UICS <= MCB_UICS_xilinx6; + MCB_UIBROADCAST <= MCB_UIBROADCAST_xilinx4; ++ MCB_UIADDR <= MCB_UIADDR_xilinx3; + MCB_UIDONECAL <= MCB_UIDONECAL_xilinx7; + MCB_UIREAD <= MCB_UIREAD_xilinx10; + SELFREFRESH_MODE <= SELFREFRESH_MODE_xilinx11; +@@ -607,7 +532,7 @@ + cmd_valid => MCB_CMD_VALID, + rdy_busy_n => MCB_RDY_BUSY_N, + use_broadcast => MCB_USE_BKST, +- drp_ioi_addr => MCB_UIADDR_int, ++ drp_ioi_addr => MCB_UIADDR_xilinx3, + sync_rst => RST_reg, + DRP_CLK => UI_CLK, + DRP_CS => MCB_UICS_xilinx6, +@@ -618,13 +543,10 @@ + MCB_UIREAD => MCB_UIREAD_xilinx10 + ); + ++ init_sequence: if (C_SIMULATION = "FALSE") generate + process (UI_CLK, RST) begin + if (RST = '1') then +- if (C_SIMULATION = "TRUE") then +- WAIT_200us_COUNTER <= X"7FF0"; +- else + WAIT_200us_COUNTER <= (others => '0'); +- end if; + elsif (UI_CLK'event and UI_CLK = '1') then + if (WAIT_200us_COUNTER(15) = '1') then + WAIT_200us_COUNTER <= WAIT_200us_COUNTER; +@@ -633,15 +555,16 @@ + end if; + end if; + end process; ++ end generate; + +- -- init_sequence_skip: if (C_SIMULATION = "TRUE") generate +- -- WAIT_200us_COUNTER <= X"FFFF"; +- -- process +- -- begin +- -- report "The 200 us wait period required before CKE goes active has been skipped in Simulation"; +- -- wait; +- -- end process; +- -- end generate; ++ init_sequence_skip: if (C_SIMULATION = "TRUE") generate ++ WAIT_200us_COUNTER <= X"FFFF"; ++ process ++ begin ++ report "The 200 us wait period required before CKE goes active has been skipped in Simulation"; ++ wait; ++ end process; ++ end generate; + + + gen_CKE_Train_a: if (C_MEM_TYPE = "DDR2") generate +@@ -653,8 +576,6 @@ + CKE_Train <= '0'; + elsif (WAIT_200us_COUNTER(15) = '1' and MCB_UODONECAL = '0') then + CKE_Train <= '1'; +- else +- CKE_Train <= '0'; + end if; + end if; + end process; +@@ -671,20 +592,19 @@ + --******************************************** + -- PLL_LOCK and RST signals + --******************************************** +- --MCB_SYSRST <= Pre_SYSRST or RST_reg; -- Pre_SYSRST is generated from the STATE state machine, and is OR'd with RST_reg input to drive MCB's ++ MCB_SYSRST <= Pre_SYSRST or RST_reg; -- Pre_SYSRST is generated from the STATE state machine, and is OR'd with RST_reg input to drive MCB's + -- SYSRST pin (MCB_SYSRST) +- + rst_tmp <= not(SELFREFRESH_MODE_xilinx11) and not(PLL_LOCK_R2); -- rst_tmp becomes 1 if you lose Lock and the device is not in SUSPEND + + process (UI_CLK, RST) begin + if (RST = '1') then +- --Block_Reset <= '0'; +- --RstCounter <= (others => '0'); +- --elsif (UI_CLK'event and UI_CLK = '1') then +- -- if (rst_tmp = '1') then -- this is to deal with not allowing the user-reset "RST" to violate TZQINIT_MAXCNT (min time between resets to DDR3) ++ Block_Reset <= '0'; ++ RstCounter <= (others => '0'); ++ elsif (UI_CLK'event and UI_CLK = '1') then ++ if (rst_tmp = '1') then -- this is to deal with not allowing the user-reset "RST" to violate TZQINIT_MAXCNT (min time between resets to DDR3) + Block_Reset <= '0'; + RstCounter <= (others => '0'); +- elsif (UI_CLK'event and UI_CLK = '1') then ++ else + Block_Reset <= '0'; -- default to allow STATE to move out of RST_DELAY state + if (Pre_SYSRST = '1') then + RstCounter <= RST_CNT; -- whenever STATE wants to reset the MCB, set RstCounter to h10 +@@ -695,14 +615,11 @@ + end if; + end if; + end if; +- --end if; ++ end if; + end process; +- +- -- Rst_contidtion1 is to make sure RESET will not happen again within TZQINIT_MAXCNT +- non_violating_rst <= RST and Rst_condition1; +- MCB_SYSRST <= Pre_SYSRST; + +- process (UI_CLK) begin ++ non_violating_rst <= RST and Rst_condition1; ++ process (UI_CLK) begin + if (UI_CLK'event and UI_CLK = '1') then + if (RstCounter >= TZQINIT_MAXCNT) then + Rst_condition1 <= '1'; +@@ -712,31 +629,18 @@ + end if; + end process; + +--- -- non_violating_rst asserts whenever (system-level reset) RST is asserted but must be after TZQINIT_MAXCNT is reached (min-time between resets for DDR3) +--- -- After power stablizes, we will hold MCB in reset state for at least 200us before beginning initialization process. +--- -- If the PLL loses lock during normal operation, no ui_clk will be present because mcb_drp_clk is from a BUFGCE which +--- is gated by pll's lock signal. When the PLL locks again, the RST_reg stays asserted for at least 200 us which +--- will cause MCB to reset and reinitialize the memory afterwards. +--- -- During SUSPEND operation, the PLL will lose lock but non_violating_rst remains low (de-asserted) and WAIT_200us_COUNTER stays at +--- its terminal count. The PLL_LOCK input does not come direct from PLL, rather it is driven by gated_pll_lock from mcb_raw_wrapper module +--- The gated_pll_lock in the mcb_raw_wrapper does not de-assert during SUSPEND operation, hence PLL_LOCK will not de-assert, and the soft calibration +--- state machine will not reset during SUSPEND. +--- -- RST_reg is the control signal that resets the mcb_soft_calibration's State Machine. The MCB_SYSRST is now equal to +--- Pre_SYSRST. When State Machine is performing "INPUT Termination Calibration", it holds the MCB in reset by assertign MCB_SYSRST. +--- It will deassert the MCB_SYSRST so that it can grab the bus to broadcast the P and N term value to all of the DQ pins. Once the calibrated INPUT +--- termination is set, the State Machine will issue another short MCB_SYSRST so that MCB will use the tuned input termination during DQS preamble calibration. + + +- --process (UI_CLK) begin +- -- if (UI_CLK'event and UI_CLK = '1') then +- -- +- -- if (RstCounter < RST_CNT) then +- -- Rst_condition2 <= '1'; +- -- else +- -- Rst_condition2 <= '0'; +- -- end if; +- -- end if; +- --end process; ++ process (UI_CLK) begin ++ if (UI_CLK'event and UI_CLK = '1') then ++ ++ if (RstCounter < RST_CNT) then ++ Rst_condition2 <= '1'; ++ else ++ Rst_condition2 <= '0'; ++ end if; ++ end if; ++ end process; + + process (UI_CLK, non_violating_rst) begin + if (non_violating_rst = '1') then +@@ -745,47 +649,18 @@ + if (WAIT_200us_COUNTER(15) = '0') then + RST_reg <= '1'; + else +- --RST_reg <= Rst_condition2 or rst_tmp; -- insures RST_reg is at least h10 pulses long +- RST_reg <= rst_tmp; -- insures RST_reg is at least h10 pulses long ++ RST_reg <= Rst_condition2 or rst_tmp; -- insures RST_reg is at least h10 pulses long + end if; + end if; + end process; + +---************************************************************* +--- Stretching the pre_sysrst to satisfy the minimum pulse width +---************************************************************* +- +-process (UI_CLK) begin +-if (UI_CLK'event and UI_CLK = '1') then +- if (STATE = START_DYN_CAL_PRE) then +- pre_sysrst_cnt <= pre_sysrst_cnt + '1'; +- else +- pre_sysrst_cnt <= (others=>'0'); +- end if; +-end if; +-end process; +- +-pre_sysrst_minpulse_width_ok <= pre_sysrst_cnt(3); +- ++ + --******************************************** + -- SUSPEND Logic + --******************************************** +- process (UI_CLK,RST) ++ process (UI_CLK) + begin +- if (RST = '1') then +- +- SELFREFRESH_MCB_MODE_R1 <= '0'; +- SELFREFRESH_MCB_MODE_R2 <= '0'; +- SELFREFRESH_MCB_MODE_R3 <= '0'; +- +- SELFREFRESH_REQ_R1 <= '0'; +- SELFREFRESH_REQ_R2 <= '0'; +- SELFREFRESH_REQ_R3 <= '0'; +- +- PLL_LOCK_R1 <= '0'; +- PLL_LOCK_R2 <= '0'; +- +- elsif (UI_CLK'event and UI_CLK = '1') then ++ if (UI_CLK'event and UI_CLK = '1') then + -- SELFREFRESH_MCB_MODE is clocked by sysclk_2x_180 + SELFREFRESH_MCB_MODE_R1 <= SELFREFRESH_MCB_MODE; + SELFREFRESH_MCB_MODE_R2 <= SELFREFRESH_MCB_MODE_R1; +@@ -810,10 +685,9 @@ + if (UI_CLK'event and UI_CLK = '1') then + if (RST = '1') then + SELFREFRESH_MCB_REQ <= '0'; +- --elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R3 = '0') and (STATE = START_DYN_CAL)) then +- elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R3 = '0')) then ++ elsif ((PLL_LOCK_R2 = '1') and (SELFREFRESH_REQ_R1 = '0') and (STATE = START_DYN_CAL)) then + SELFREFRESH_MCB_REQ <= '0'; +- elsif ((STATE = START_DYN_CAL) and (SELFREFRESH_REQ_R3 = '1')) then ++ elsif ((STATE = START_DYN_CAL) and (SELFREFRESH_REQ_R1 = '1')) then + SELFREFRESH_MCB_REQ <= '1'; + end if; + end if; +@@ -859,10 +733,6 @@ + + -- SELFREFRESH_MCB_MODE deasserted status is hold off + -- until Soft_Calib has at least done one loop of DQS update. +--- New logic WarmeEnough is added to make sure PLL_Lock is lockec and all IOs stable before +--- deassert the status of MCB's SELFREFRESH_MODE. This is to ensure all IOs are stable before +--- user logic sending new commands to MCB. +- + process (UI_CLK) + begin + if (UI_CLK'event and UI_CLK = '1') then +@@ -870,76 +740,12 @@ + SELFREFRESH_MODE_xilinx11 <= '0'; + elsif (SELFREFRESH_MCB_MODE_R2 = '1') then + SELFREFRESH_MODE_xilinx11 <= '1'; +- elsif (WarmEnough = '1') then +- SELFREFRESH_MODE_xilinx11 <= '0'; +- end if; +- end if; +- end process; +- +- +- +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- WaitCountEnable <= '0'; +- elsif (SELFREFRESH_REQ_R2 = '0' and SELFREFRESH_REQ_R1 = '1') then +- WaitCountEnable <= '0'; + elsif ((PERFORM_START_DYN_CAL_AFTER_SELFREFRESH = '0') and (PERFORM_START_DYN_CAL_AFTER_SELFREFRESH_R1 = '1')) then +- WaitCountEnable <= '1'; +- else +- WaitCountEnable <= WaitCountEnable; ++ SELFREFRESH_MODE_xilinx11 <= '0'; + end if; + end if; + end process; + +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- State_Start_DynCal <= '0'; +- elsif (STATE = START_DYN_CAL) then +- State_Start_DynCal <= '1'; +- else +- State_Start_DynCal <= '0'; +- end if; +- end if; +- end process; +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- State_Start_DynCal_R1 <= '0'; +- else +- State_Start_DynCal_R1 <= State_Start_DynCal; +- end if; +- end if; +- end process; +- +- +- process (UI_CLK) +- begin +- if (UI_CLK'event and UI_CLK = '1') then +- if (RST = '1') then +- WaitTimer <= (others => '0'); +- WarmEnough <= '1'; +- elsif ((SELFREFRESH_REQ_R2 = '0') and (SELFREFRESH_REQ_R1 = '1')) then +- WaitTimer <= (others => '0'); +- WarmEnough <= '0'; +- elsif (WaitTimer = X"04") then +- WaitTimer <= WaitTimer ; +- WarmEnough <= '1'; +- elsif (WaitCountEnable = '1') then +- WaitTimer <= WaitTimer + '1'; +- else +- WaitTimer <= WaitTimer ; +- end if; +- end if; +- end process; +- + --******************************************** + --Comparitor for Dynamic Calibration circuit + --******************************************** +@@ -1014,7 +820,7 @@ + if (UI_CLK'event and UI_CLK = '1') then + if (RST_reg = '1') then -- Synchronous reset + MCB_CMD_VALID <= '0'; +- MCB_UIADDR_int <= "00000"; -- take control of UI/UO port ++ MCB_UIADDR_xilinx3 <= "00000"; -- take control of UI/UO port + MCB_UICMDEN <= '1'; -- tells MCB that it is in Soft Cal. + MCB_UIDONECAL_xilinx7 <= '0'; + MCB_USE_BKST <= '0'; +@@ -1027,11 +833,6 @@ + IODRPCTRLR_USE_BKST <= '0'; + P_Term <= "000000"; + N_Term <= "0000000"; +- P_Term_s <= "000000"; +- N_Term_w <= "0000000"; +- P_Term_w <= "000000"; +- N_Term_s <= "0000000"; +- + P_Term_Prev <= "000000"; + N_Term_Prev <= "0000000"; + Active_IODRP <= RZQ; +@@ -1079,10 +880,7 @@ + Pre_SYSRST <= '1'; -- keeps MCB in reset + LastPass_DynCal <= IN_TERM_PASS; + if (SKIP_IN_TERM_CAL = 1) then +- --STATE <= WRITE_CALIBRATE; +- STATE <= WAIT_FOR_START_BROADCAST; +- P_Term <= "000000"; +- N_Term <= "0000000"; ++ STATE <= WRITE_CALIBRATE; + elsif (IODRPCTRLR_RDY_BUSY_N = '1') then + STATE <= LOAD_RZQ_NTERM; + else +@@ -1135,8 +933,7 @@ + STATE <= LOAD_RZQ_PTERM; + + when MULTIPLY_DIVIDE => -- h06 +- -- 13/4/2011 compensate the added sync FF +- P_Term <= Mult_Divide(("00" & (P_Term - '1')),MULT,DIV)(5 downto 0); ++ P_Term <= Mult_Divide(("00" & P_Term),MULT,DIV)(5 downto 0); + STATE <= LOAD_ZIO_PTERM; + + when LOAD_ZIO_PTERM => --h07 +@@ -1188,13 +985,8 @@ + STATE <= LOAD_ZIO_NTERM; + + when SKEW => -- h0C +- +- P_Term_s <= Mult_Divide(("00" & P_Term), MULT_S, DIV_S)(5 downto 0); +- N_Term_w <= Mult_Divide(('0' & (N_Term-'1')), MULT_W, DIV_W)(6 downto 0); +- P_Term_w <= Mult_Divide(("00" & P_Term), MULT_W, DIV_W)(5 downto 0); +- N_Term_s <= Mult_Divide(('0' & (N_Term-'1')), MULT_S, DIV_S)(6 downto 0); +- P_Term <= Mult_Divide(("00" & P_Term), MULT_S, DIV_S)(5 downto 0); +- N_Term <= Mult_Divide(('0' & (N_Term-'1')), MULT_W, DIV_W)(6 downto 0); ++ P_Term <= Mult_Divide(("00" & P_Term), PSKEW_MULT, PSKEW_DIV)(5 downto 0); ++ N_Term <= Mult_Divide(('0' & N_Term), NSKEW_MULT, NSKEW_DIV)(6 downto 0); + STATE <= WAIT_FOR_START_BROADCAST; + + when WAIT_FOR_START_BROADCAST => --h0D +@@ -1202,7 +994,7 @@ + -- keeping the MCB in calibration mode + Active_IODRP <= MCB_PORT; + if ((START_BROADCAST and IODRPCTRLR_RDY_BUSY_N) = '1') then +- if ((P_Term /= P_Term_Prev) or (SKIP_IN_TERM_CAL = 1)) then ++ if (P_Term /= P_Term_Prev) then + STATE <= BROADCAST_PTERM; + P_Term_Prev <= P_Term; + elsif (N_Term /= N_Term_Prev) then +@@ -1272,184 +1064,10 @@ + STATE <= WAIT6; -- wait for a Refresh cycle + end if; + else +- -- if (PNSKEWDQS = '1') then +- STATE <= LDQS_CLK_WRITE_P_TERM; +- -- else +- -- STATE <= OFF_RZQ_PTERM; +- -- end if; +- end if; +- +--- ********************* +- when LDQS_CLK_WRITE_P_TERM => -- h12 +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_w; +- MCB_UIADDR_int <= IOI_LDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_CLK_WRITE_P_TERM; +- else +- STATE <= LDQS_CLK_P_TERM_WAIT; +- end if; +- +- +- when LDQS_CLK_P_TERM_WAIT => --7'h13 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_CLK_P_TERM_WAIT; +- else +- STATE <= LDQS_CLK_WRITE_N_TERM; +- end if; +- +- when LDQS_CLK_WRITE_N_TERM => --7'h14 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_s; +- MCB_UIADDR_int <= IOI_LDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_CLK_WRITE_N_TERM; +- else +- STATE <= LDQS_CLK_N_TERM_WAIT; +- end if; +- +- --** +- when LDQS_CLK_N_TERM_WAIT => --7'h15 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_CLK_N_TERM_WAIT; +- else +- STATE <= LDQS_PIN_WRITE_P_TERM; +- end if; +- +- +- when LDQS_PIN_WRITE_P_TERM => --7'h16 +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_s; +- MCB_UIADDR_int <= IOI_LDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_PIN_WRITE_P_TERM; +- else +- STATE <= LDQS_PIN_P_TERM_WAIT; +- end if; +- +- +- when LDQS_PIN_P_TERM_WAIT => --7'h17 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_PIN_P_TERM_WAIT; +- else +- STATE <= LDQS_PIN_WRITE_N_TERM; +- end if; +- +- +- when LDQS_PIN_WRITE_N_TERM => --7'h18 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_w; +- MCB_UIADDR_int <= IOI_LDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= LDQS_PIN_WRITE_N_TERM; +- else +- STATE <= LDQS_PIN_N_TERM_WAIT; +- end if; +- +- +- when LDQS_PIN_N_TERM_WAIT => --7'h19 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= LDQS_PIN_N_TERM_WAIT; +- else +- STATE <= UDQS_CLK_WRITE_P_TERM; +- end if; +- +- +- +- when UDQS_CLK_WRITE_P_TERM => --7'h1A +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_w; +- MCB_UIADDR_int <= IOI_UDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_CLK_WRITE_P_TERM; +- else +- STATE <= UDQS_CLK_P_TERM_WAIT; +- end if; +- +- +- when UDQS_CLK_P_TERM_WAIT => --7'h1B +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_CLK_P_TERM_WAIT; +- else +- STATE <= UDQS_CLK_WRITE_N_TERM; +- end if; +- +- +- when UDQS_CLK_WRITE_N_TERM => --7'h1C +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_s; +- MCB_UIADDR_int <= IOI_UDQS_CLK; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_CLK_WRITE_N_TERM; +- else +- STATE <= UDQS_CLK_N_TERM_WAIT; +- end if; +- +- when UDQS_CLK_N_TERM_WAIT => --7'h1D +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_CLK_N_TERM_WAIT; +- else +- STATE <= UDQS_PIN_WRITE_P_TERM; +- end if; +- +- +- +- when UDQS_PIN_WRITE_P_TERM => --7'h1E +- IODRPCTRLR_MEMCELL_ADDR <= PTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= "00" & P_Term_s; +- MCB_UIADDR_int <= IOI_UDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_PIN_WRITE_P_TERM; +- else +- STATE <= UDQS_PIN_P_TERM_WAIT; +- end if; +- +- +- when UDQS_PIN_P_TERM_WAIT => --7'h1F +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_PIN_P_TERM_WAIT; +- else +- STATE <= UDQS_PIN_WRITE_N_TERM; +- end if; +- +- when UDQS_PIN_WRITE_N_TERM => --7'h20 +- IODRPCTRLR_MEMCELL_ADDR <= NTerm; +- IODRPCTRLR_R_WB <= WRITE_MODE; +- IODRPCTRLR_WRITE_DATA <= '0' & N_Term_w; +- MCB_UIADDR_int <= IOI_UDQS_PIN; +- MCB_CMD_VALID <= '1'; +- if (MCB_RDY_BUSY_N = '1') then +- STATE <= UDQS_PIN_WRITE_N_TERM; +- else +- STATE <= UDQS_PIN_N_TERM_WAIT; +- end if; +- +- +- when UDQS_PIN_N_TERM_WAIT => --7'h21 +- if (MCB_RDY_BUSY_N = '0') then +- STATE <= UDQS_PIN_N_TERM_WAIT; +- else +- STATE <= OFF_RZQ_PTERM; ++ STATE <= OFF_RZQ_PTERM; + end if; +- +--- ********************* + +- +- when OFF_RZQ_PTERM => -- h22 ++ when OFF_RZQ_PTERM => -- h12 + Active_IODRP <= RZQ; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= PTerm; +@@ -1464,14 +1082,14 @@ + STATE <= WAIT7; + end if; + +- when WAIT7 => -- h23 ++ when WAIT7 => -- h13 + if ((not(IODRPCTRLR_RDY_BUSY_N)) = '1') then + STATE <= WAIT7; + else + STATE <= OFF_ZIO_NTERM; + end if; + +- when OFF_ZIO_NTERM => -- h24 ++ when OFF_ZIO_NTERM => -- h14 + Active_IODRP <= ZIO; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= NTerm; +@@ -1483,7 +1101,7 @@ + STATE <= WAIT8; + end if; + +- when WAIT8 => -- h25 ++ when WAIT8 => -- h15 + if (IODRPCTRLR_RDY_BUSY_N = '0') then + STATE <= WAIT8; + else +@@ -1494,8 +1112,8 @@ + end if; + end if; + +- when RST_DELAY => -- h26 +- --MCB_UICMDEN <= '0'; -- release control of UI/UO port ++ when RST_DELAY => -- h16 ++ MCB_UICMDEN <= '0'; -- release control of UI/UO port + if (Block_Reset = '1') then -- this ensures that more than 512 clock cycles occur since the last reset after MCB_WRITE_CALIBRATE ??? + STATE <= RST_DELAY; + else +@@ -1505,18 +1123,18 @@ + --*************************** + --DYNAMIC CALIBRATION PORTION + --*************************** +- when START_DYN_CAL_PRE => -- h27 ++ when START_DYN_CAL_PRE => -- h17 + LastPass_DynCal <= IN_TERM_PASS; + MCB_UICMDEN <= '0'; -- release UICMDEN + MCB_UIDONECAL_xilinx7 <= '1'; -- release UIDONECAL - MCB will now initialize. + Pre_SYSRST <= '1'; -- SYSRST pulse + if (CALMODE_EQ_CALIBRATION = '0') then -- if C_MC_CALIBRATION_MODE is set to NOCALIBRATION + STATE <= START_DYN_CAL; -- we'll skip setting the DQS delays manually +- elsif (pre_sysrst_minpulse_width_ok = '1') then ++ else + STATE <= WAIT_FOR_UODONE; + end if; + +- when WAIT_FOR_UODONE => -- h28 ++ when WAIT_FOR_UODONE => -- h18 + Pre_SYSRST <= '0'; -- SYSRST pulse + if ((IODRPCTRLR_RDY_BUSY_N and MCB_UODONECAL) = '1')then --IODRP Controller needs to be ready, & MCB needs to be done with hard calibration + MCB_UICMDEN <= '1'; -- grab UICMDEN +@@ -1526,11 +1144,11 @@ + STATE <= WAIT_FOR_UODONE; + end if; + +- when LDQS_WRITE_POS_INDELAY => -- h29 ++ when LDQS_WRITE_POS_INDELAY => -- h19 + IODRPCTRLR_MEMCELL_ADDR <= PosEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_LDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_LDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1') then + STATE <= LDQS_WRITE_POS_INDELAY; +@@ -1538,18 +1156,18 @@ + STATE <= LDQS_WAIT1; + end if; + +- when LDQS_WAIT1 => -- h2A ++ when LDQS_WAIT1 => -- h1A + if (MCB_RDY_BUSY_N = '0')then + STATE <= LDQS_WAIT1; + else + STATE <= LDQS_WRITE_NEG_INDELAY; + end if; + +- when LDQS_WRITE_NEG_INDELAY => -- h2B ++ when LDQS_WRITE_NEG_INDELAY => -- h1B + IODRPCTRLR_MEMCELL_ADDR <= NegEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_LDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_LDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= LDQS_WRITE_NEG_INDELAY; +@@ -1557,18 +1175,18 @@ + STATE <= LDQS_WAIT2; + end if; + +- when LDQS_WAIT2 => -- 7'h2C ++ when LDQS_WAIT2 => -- 7'h1C + if(MCB_RDY_BUSY_N = '0')then + STATE <= LDQS_WAIT2; + else + STATE <= UDQS_WRITE_POS_INDELAY; + end if; + +- when UDQS_WRITE_POS_INDELAY => -- 7'h2D ++ when UDQS_WRITE_POS_INDELAY => -- 7'h1D + IODRPCTRLR_MEMCELL_ADDR <= PosEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_UDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_UDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= UDQS_WRITE_POS_INDELAY; +@@ -1576,18 +1194,18 @@ + STATE <= UDQS_WAIT1; + end if; + +- when UDQS_WAIT1 => -- 7'h2E ++ when UDQS_WAIT1 => -- 7'h1E + if (MCB_RDY_BUSY_N = '0')then + STATE <= UDQS_WAIT1; + else + STATE <= UDQS_WRITE_NEG_INDELAY; + end if; + +- when UDQS_WRITE_NEG_INDELAY => -- 7'h2F ++ when UDQS_WRITE_NEG_INDELAY => -- 7'h1F + IODRPCTRLR_MEMCELL_ADDR <= NegEdgeInDly; + IODRPCTRLR_R_WB <= WRITE_MODE; + IODRPCTRLR_WRITE_DATA <= DQS_DELAY_INITIAL; +- MCB_UIADDR_int <= IOI_UDQS_CLK; ++ MCB_UIADDR_xilinx3 <= IOI_UDQS_CLK; + MCB_CMD_VALID <= '1'; + if (MCB_RDY_BUSY_N = '1')then + STATE <= UDQS_WRITE_NEG_INDELAY; +@@ -1595,7 +1213,7 @@ + STATE <= UDQS_WAIT2; + end if; + +- when UDQS_WAIT2 => -- 7'h30 ++ when UDQS_WAIT2 => -- 7'h20 + if (MCB_RDY_BUSY_N = '0')then + STATE <= UDQS_WAIT2; + else +@@ -1604,7 +1222,7 @@ + STATE <= START_DYN_CAL; + end if; + +- when START_DYN_CAL => -- h31 ++ when START_DYN_CAL => -- h21 + Pre_SYSRST <= '0'; -- SYSRST not driven + counter_inc <= (others => '0'); + counter_dec <= (others => '0'); +@@ -1624,7 +1242,7 @@ + STATE <= START_DYN_CAL; + end if; + +- when WRITE_CALIBRATE => -- h32 ++ when WRITE_CALIBRATE => -- h22 + Pre_SYSRST <= '0'; + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= DelayControl; +@@ -1637,7 +1255,7 @@ + STATE <= WAIT9; + end if; + +- when WAIT9 => -- h33 ++ when WAIT9 => -- h23 + counter_en <= '1'; + if (count < "100110") then -- this adds approximately 22 extra clock cycles after WRITE_CALIBRATE + STATE <= WAIT9; +@@ -1645,7 +1263,7 @@ + STATE <= READ_MAX_VALUE; + end if; + +- when READ_MAX_VALUE => -- h34 ++ when READ_MAX_VALUE => -- h24 + IODRPCTRLR_CMD_VALID <= '1'; + IODRPCTRLR_MEMCELL_ADDR <= MaxValue; + IODRPCTRLR_R_WB <= READ_MODE; +@@ -1656,7 +1274,7 @@ + STATE <= WAIT10; + end if; + +- when WAIT10 => -- h35 ++ when WAIT10 => -- h25 + if (IODRPCTRLR_RDY_BUSY_N = '0') then + STATE <= WAIT10; + else +@@ -1669,7 +1287,7 @@ + end if; + end if; + +- when ANALYZE_MAX_VALUE => -- h36 only do a Inc or Dec during a REFRESH cycle. ++ when ANALYZE_MAX_VALUE => -- h26 only do a Inc or Dec during a REFRESH cycle. + if (First_Dyn_Cal_Done = '0')then + STATE <= FIRST_DYN_CAL; + elsif ((Max_Value_int < Max_Value_Previous) and (Max_Value_Delta_Dn >= INCDEC_THRESHOLD)) then +@@ -1684,11 +1302,11 @@ + STATE <= START_DYN_CAL; + end if; + +- when FIRST_DYN_CAL => -- h37 ++ when FIRST_DYN_CAL => -- h27 + First_Dyn_Cal_Done <= '1'; -- set flag that the First Dynamic Calibration has been completed + STATE <= START_DYN_CAL; + +- when INCREMENT => -- h38 ++ when INCREMENT => -- h28 + STATE <= START_DYN_CAL; -- Default case: Inc is not high or no longer in REFRSH + MCB_UILDQSINC <= '0'; -- Default case: no inc or dec + MCB_UIUDQSINC <= '0'; -- Default case: no inc or dec +@@ -1712,7 +1330,7 @@ + STATE <= START_DYN_CAL; + end case; + +- when DECREMENT => -- h39 ++ when DECREMENT => -- h29 + STATE <= START_DYN_CAL; -- Default case: Dec is not high or no longer in REFRSH + MCB_UILDQSINC <= '0'; -- Default case: no inc or dec + MCB_UIUDQSINC <= '0'; -- Default case: no inc or dec +@@ -1738,7 +1356,7 @@ + end case; + end if; + +- when DONE => -- h3A ++ when DONE => -- h2A + Pre_SYSRST <= '0'; -- SYSRST cleared + MCB_UICMDEN <= '0'; -- release UICMDEN + STATE <= DONE; diff --git a/designs/leon3-ztex-ufm-115/memc3_infrastructure_patch.txt b/designs/leon3-ztex-ufm-115/memc3_infrastructure_patch.txt new file mode 100644 index 00000000..08b1b533 --- /dev/null +++ b/designs/leon3-ztex-ufm-115/memc3_infrastructure_patch.txt @@ -0,0 +1,61 @@ +--- mig39/mig_39/user_design/rtl/memc3_infrastructure.vhd 2012-12-20 10:25:33.211745967 +0100 ++++ mig39_copy/mig_39/user_design/rtl/memc3_infrastructure.vhd 2012-12-20 10:25:45.219745839 +0100 +@@ -122,7 +122,6 @@ + signal mcb_drp_clk_bufg_in : std_logic; + signal clkfbout_clkfbin : std_logic; + signal rst_tmp : std_logic; +- signal sys_clk_ibufg : std_logic; + signal sys_rst : std_logic; + signal rst0_sync_r : std_logic_vector(RST_SYNC_NUM-1 downto 0); + signal powerup_pll_locked : std_logic; +@@ -136,7 +135,6 @@ + attribute KEEP : string; + attribute max_fanout of rst0_sync_r : signal is "10"; + attribute syn_maxfan of rst0_sync_r : signal is 10; +- attribute KEEP of sys_clk_ibufg : signal is "TRUE"; + + begin + +@@ -145,33 +143,6 @@ + pll_lock <= bufpll_mcb_locked; + mcb_drp_clk <= mcb_drp_clk_sig; + +- diff_input_clk : if(C_INPUT_CLK_TYPE = "DIFFERENTIAL") generate +- --*********************************************************************** +- -- Differential input clock input buffers +- --*********************************************************************** +- u_ibufg_sys_clk : IBUFGDS +- generic map ( +- DIFF_TERM => TRUE +- ) +- port map ( +- I => sys_clk_p, +- IB => sys_clk_n, +- O => sys_clk_ibufg +- ); +- end generate; +- +- +- se_input_clk : if(C_INPUT_CLK_TYPE = "SINGLE_ENDED") generate +- --*********************************************************************** +- -- SINGLE_ENDED input clock input buffers +- --*********************************************************************** +- u_ibufg_sys_clk : IBUFG +- port map ( +- I => sys_clk, +- O => sys_clk_ibufg +- ); +- end generate; +- + --*************************************************************************** + -- Global clock generation and distribution + --*************************************************************************** +@@ -211,7 +182,7 @@ + ( + CLKFBIN => clkfbout_clkfbin, + CLKINSEL => '1', +- CLKIN1 => sys_clk_ibufg, ++ CLKIN1 => sys_clk, + CLKIN2 => '0', + DADDR => (others => '0'), + DCLK => '0', diff --git a/designs/leon3-ztex-ufm-115/mig39/coregen.cgc b/designs/leon3-ztex-ufm-115/mig39/coregen.cgc new file mode 100644 index 00000000..24f1347e --- /dev/null +++ b/designs/leon3-ztex-ufm-115/mig39/coregen.cgc @@ -0,0 +1,985 @@ + + + xilinx.com + CoreGen + coregen + 1.0 + + + mig_39 + MIG Virtex-6 and Spartan-6 + + + mig_39 + ./mig_39/user_design/mig.prj + + + + + coregen + ./ + ./tmp/ + ./tmp/_cg/ + + + xc6slx75 + spartan6 + csg484 + -3 + + + BusFormatAngleBracketNotRipped + VHDL + true + Other + false + false + false + Ngc + false + + + Behavioral + VHDL + false + + + 2012-10-13+03:35 + + + + + model_parameter_resolution_generator + + + ip_xco_generator + + ./mig_39.xco + xco + Thu Dec 20 09:47:43 GMT 2012 + 0x3333C26F + generationID_1879581046 + + + + implementation_source_generator + + ./mig_39/docs/ug388.pdf + ignore + pdf + Thu Dec 20 09:47:43 GMT 2012 + 0x90FCF0D1 + generationID_1879581046 + + + ./mig_39/docs/ug416.pdf + ignore + pdf + Thu Dec 20 09:47:43 GMT 2012 + 0x5A2D5D89 + generationID_1879581046 + + + ./mig_39/example_design/datasheet.txt + ignore + txt + Thu Dec 20 09:47:43 GMT 2012 + 0x9CCB1079 + generationID_1879581046 + + + ./mig_39/example_design/mig.prj + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0xD8129069 + generationID_1879581046 + + + ./mig_39/example_design/par/create_ise.sh + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0x5371417F + generationID_1879581046 + + + ./mig_39/example_design/par/example_top.ucf + ignore + ucf + Thu Dec 20 09:47:43 GMT 2012 + 0xDC0E8D8C + generationID_1879581046 + + + ./mig_39/example_design/par/icon_coregen.xco + ignore + xco + Thu Dec 20 09:47:43 GMT 2012 + 0x90EC25BD + generationID_1879581046 + + + ./mig_39/example_design/par/ila_coregen.xco + ignore + xco + Thu Dec 20 09:47:43 GMT 2012 + 0x5D64D23D + generationID_1879581046 + + + ./mig_39/example_design/par/ise_flow.sh + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0x1E0A73AF + generationID_1879581046 + + + ./mig_39/example_design/par/ise_run.txt + ignore + txt + Thu Dec 20 09:47:43 GMT 2012 + 0x643CF497 + generationID_1879581046 + + + ./mig_39/example_design/par/makeproj.sh + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0xCFE64DF9 + generationID_1879581046 + + + ./mig_39/example_design/par/mem_interface_top.ut + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0xCDD0105F + generationID_1879581046 + + + ./mig_39/example_design/par/readme.txt + ignore + txt + Thu Dec 20 09:47:43 GMT 2012 + 0xE0953675 + generationID_1879581046 + + + ./mig_39/example_design/par/rem_files.sh + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0xEE1479AD + generationID_1879581046 + + + ./mig_39/example_design/par/set_ise_prop.tcl + ignore + tcl + Thu Dec 20 09:47:43 GMT 2012 + 0xBCE1C947 + generationID_1879581046 + + + ./mig_39/example_design/par/vio_coregen.xco + ignore + xco + Thu Dec 20 09:47:43 GMT 2012 + 0xC9B2ECA7 + generationID_1879581046 + + + ./mig_39/example_design/rtl/example_top.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x81419DBC + generationID_1879581046 + + + ./mig_39/example_design/rtl/iodrp_controller.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x5A2197DD + generationID_1879581046 + + + ./mig_39/example_design/rtl/iodrp_mcb_controller.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x69237401 + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_raw_wrapper.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0xA3623325 + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_soft_calibration.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x9B8E0B5E + generationID_1879581046 + + + ./mig_39/example_design/rtl/mcb_soft_calibration_top.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0xC37A23BB + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_infrastructure.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x702DFF2F + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_tb_top.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0xFB368D57 + generationID_1879581046 + + + ./mig_39/example_design/rtl/memc3_wrapper.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x1971C25E + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/afifo.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x26568D9A + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/cmd_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0xC6EF0126 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/cmd_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x893B0F01 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/data_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x6E88FB8E + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/init_mem_pattern_ctr.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x26DEA717 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/mcb_flow_control.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0xB9D71414 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/mcb_traffic_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x125A1D59 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/rd_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x50A90B14 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/read_data_path.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0xDFA5DAF7 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/read_posted_fifo.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0xBC61DAC4 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/sp6_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0xA9170C59 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/tg_status.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x7B717096 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/v6_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x24F3E550 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/wr_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x91BCA941 + generationID_1879581046 + + + ./mig_39/example_design/rtl/traffic_gen/write_data_path.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0x391A16CE + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/ddr2_model_c3.v + ignore + verilog + Thu Dec 20 09:47:43 GMT 2012 + 0xAF612EFE + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/ddr2_model_parameters_c3.vh + ignore + verilog + Thu Dec 20 09:47:43 GMT 2012 + 0x6902BBB9 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/isim.sh + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0x1EDD2EEF + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/isim.tcl + ignore + tcl + Thu Dec 20 09:47:43 GMT 2012 + 0x02F76428 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/mig_39.prj + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0x32C79C96 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/readme.txt + ignore + txt + Thu Dec 20 09:47:43 GMT 2012 + 0xFA4BA7C6 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/sim.do + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0x2D591257 + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/sim_tb_top.vhd + ignore + vhdl + Thu Dec 20 09:47:43 GMT 2012 + 0xBAA88E0B + generationID_1879581046 + + + ./mig_39/example_design/sim/functional/timing_sim.sh + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0xD1170B9A + generationID_1879581046 + + + ./mig_39/example_design/synth/example_top.lso + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0xEEDE3797 + generationID_1879581046 + + + ./mig_39/example_design/synth/example_top.prj + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0x45A82CBA + generationID_1879581046 + + + ./mig_39/example_design/synth/mem_interface_top_synp.sdc + ignore + unknown + Thu Dec 20 09:47:43 GMT 2012 + 0x8CC320DE + generationID_1879581046 + + + ./mig_39/example_design/synth/script_synp.tcl + ignore + tcl + Thu Dec 20 09:47:43 GMT 2012 + 0x70E41DE2 + generationID_1879581046 + + + ./mig_39/user_design/datasheet.txt + ignore + txt + Thu Dec 20 09:47:44 GMT 2012 + 0xA181DE14 + generationID_1879581046 + + + ./mig_39/user_design/mig.prj + ignore + unknown + Thu Dec 20 09:47:44 GMT 2012 + 0xD8129069 + generationID_1879581046 + + + ./mig_39/user_design/par/create_ise.sh + ignore + unknown + Thu Dec 20 09:47:44 GMT 2012 + 0x5371417F + generationID_1879581046 + + + ./mig_39/user_design/par/icon_coregen.xco + ignore + xco + Thu Dec 20 09:47:44 GMT 2012 + 0x90EC25BD + generationID_1879581046 + + + ./mig_39/user_design/par/ila_coregen.xco + ignore + xco + Thu Dec 20 09:47:44 GMT 2012 + 0x5D64D23D + generationID_1879581046 + + + ./mig_39/user_design/par/ise_flow.sh + ignore + unknown + Thu Dec 20 09:47:44 GMT 2012 + 0xD27A807C + generationID_1879581046 + + + ./mig_39/user_design/par/ise_run.txt + ignore + txt + Thu Dec 20 09:47:44 GMT 2012 + 0x844454AA + generationID_1879581046 + + + ./mig_39/user_design/par/makeproj.sh + ignore + unknown + Thu Dec 20 09:47:44 GMT 2012 + 0xCFE64DF9 + generationID_1879581046 + + + ./mig_39/user_design/par/mem_interface_top.ut + ignore + unknown + Thu Dec 20 09:47:44 GMT 2012 + 0xCDD0105F + generationID_1879581046 + + + ./mig_39/user_design/par/mig_39.ucf + ucf + Thu Dec 20 09:47:44 GMT 2012 + 0xCD1BAAF9 + generationID_1879581046 + + + ./mig_39/user_design/par/readme.txt + ignore + txt + Thu Dec 20 09:47:44 GMT 2012 + 0xD26FC611 + generationID_1879581046 + + + ./mig_39/user_design/par/rem_files.sh + ignore + unknown + Thu Dec 20 09:47:44 GMT 2012 + 0x7DD369A4 + generationID_1879581046 + + + ./mig_39/user_design/par/set_ise_prop.tcl + ignore + tcl + Thu Dec 20 09:47:44 GMT 2012 + 0x85D8FDE5 + generationID_1879581046 + + + ./mig_39/user_design/par/vio_coregen.xco + ignore + xco + Thu Dec 20 09:47:44 GMT 2012 + 0xC9B2ECA7 + generationID_1879581046 + + + ./mig_39/user_design/rtl/iodrp_controller.vhd + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x5A2197DD + generationID_1879581046 + + + ./mig_39/user_design/rtl/iodrp_mcb_controller.vhd + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x69237401 + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_raw_wrapper.vhd + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0xA3623325 + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_soft_calibration.vhd + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x9B8E0B5E + generationID_1879581046 + + + ./mig_39/user_design/rtl/mcb_soft_calibration_top.vhd + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0xC37A23BB + generationID_1879581046 + + + ./mig_39/user_design/rtl/memc3_infrastructure.vhd + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x702DFF2F + generationID_1879581046 + + + ./mig_39/user_design/rtl/memc3_wrapper.vhd + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x1971C25E + generationID_1879581046 + + + ./mig_39/user_design/rtl/mig_39.vhd + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x61D2FF06 + generationID_1879581046 + + + ./mig_39/user_design/sim/afifo.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x26568D9A + generationID_1879581046 + + + ./mig_39/user_design/sim/cmd_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0xC6EF0126 + generationID_1879581046 + + + ./mig_39/user_design/sim/cmd_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x893B0F01 + generationID_1879581046 + + + ./mig_39/user_design/sim/data_prbs_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x6E88FB8E + generationID_1879581046 + + + ./mig_39/user_design/sim/ddr2_model_c3.v + ignore + verilog + Thu Dec 20 09:47:44 GMT 2012 + 0xAF612EFE + generationID_1879581046 + + + ./mig_39/user_design/sim/ddr2_model_parameters_c3.vh + ignore + verilog + Thu Dec 20 09:47:44 GMT 2012 + 0x6902BBB9 + generationID_1879581046 + + + ./mig_39/user_design/sim/init_mem_pattern_ctr.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x26DEA717 + generationID_1879581046 + + + ./mig_39/user_design/sim/isim.sh + ignore + unknown + Thu Dec 20 09:47:44 GMT 2012 + 0x1EDD2EEF + generationID_1879581046 + + + ./mig_39/user_design/sim/isim.tcl + ignore + tcl + Thu Dec 20 09:47:44 GMT 2012 + 0x02F76428 + generationID_1879581046 + + + ./mig_39/user_design/sim/mcb_flow_control.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0xB9D71414 + generationID_1879581046 + + + ./mig_39/user_design/sim/mcb_traffic_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x125A1D59 + generationID_1879581046 + + + ./mig_39/user_design/sim/memc3_tb_top.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0xFB368D57 + generationID_1879581046 + + + ./mig_39/user_design/sim/mig_39.prj + ignore + unknown + Thu Dec 20 09:47:44 GMT 2012 + 0x4416E6E0 + generationID_1879581046 + + + ./mig_39/user_design/sim/rd_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x50A90B14 + generationID_1879581046 + + + ./mig_39/user_design/sim/read_data_path.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0xDFA5DAF7 + generationID_1879581046 + + + ./mig_39/user_design/sim/read_posted_fifo.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0xBC61DAC4 + generationID_1879581046 + + + ./mig_39/user_design/sim/readme.txt + ignore + txt + Thu Dec 20 09:47:44 GMT 2012 + 0xFA4BA7C6 + generationID_1879581046 + + + ./mig_39/user_design/sim/sim.do + ignore + unknown + Thu Dec 20 09:47:44 GMT 2012 + 0xF6BD5801 + generationID_1879581046 + + + ./mig_39/user_design/sim/sim_tb_top.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x0F261A20 + generationID_1879581046 + + + ./mig_39/user_design/sim/sp6_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0xA9170C59 + generationID_1879581046 + + + ./mig_39/user_design/sim/tg_status.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x7B717096 + generationID_1879581046 + + + ./mig_39/user_design/sim/v6_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x24F3E550 + generationID_1879581046 + + + ./mig_39/user_design/sim/wr_data_gen.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x91BCA941 + generationID_1879581046 + + + ./mig_39/user_design/sim/write_data_path.vhd + ignore + vhdl + Thu Dec 20 09:47:44 GMT 2012 + 0x391A16CE + generationID_1879581046 + + + ./mig_39/user_design/synth/mem_interface_top_synp.sdc + ignore + unknown + Thu Dec 20 09:47:44 GMT 2012 + 0xBE2AEA94 + generationID_1879581046 + + + ./mig_39/user_design/synth/mig_39.lso + ignore + unknown + Thu Dec 20 09:47:44 GMT 2012 + 0xEEDE3797 + generationID_1879581046 + + + ./mig_39/user_design/synth/mig_39.prj + ignore + unknown + Thu Dec 20 09:47:44 GMT 2012 + 0x1521D75B + generationID_1879581046 + + + ./mig_39/user_design/synth/script_synp.tcl + ignore + tcl + Thu Dec 20 09:47:44 GMT 2012 + 0xB0FAF45E + generationID_1879581046 + + + ./mig_39.vho + vho + Thu Dec 20 09:47:44 GMT 2012 + 0x0EBFFEE2 + generationID_1879581046 + + + ./mig_39_readme.txt + ignore + txt + Thu Dec 20 09:47:44 GMT 2012 + 0xC9121F81 + generationID_1879581046 + + + ./mig_39_xmdf.tcl + ignore + tcl + Thu Dec 20 09:47:44 GMT 2012 + 0x87D169C0 + generationID_1879581046 + + + + instantiation_template_generator + + + asy_generator + + + xmdf_generator + + + ise_generator + + ./mig_39.gise + ignore + gise + Thu Dec 20 09:47:51 GMT 2012 + 0x8CB3D14A + generationID_1879581046 + + + ./mig_39.xise + ignore + xise + Thu Dec 20 09:47:51 GMT 2012 + 0xDECF52BF + generationID_1879581046 + + + + deliver_readme_generator + + + flist_generator + + ./mig_39_flist.txt + ignore + txtFlist + txt + Thu Dec 20 09:47:51 GMT 2012 + 0xD256293A + generationID_1879581046 + + + + + + + + + + coregen + ./ + ./tmp/ + ./tmp/_cg + + + xc6slx75 + spartan6 + csg484 + -3 + + + BusFormatAngleBracketNotRipped + VHDL + true + Other + false + false + false + Ngc + false + + + Behavioral + VHDL + false + + + + + diff --git a/designs/leon3-ztex-ufm-115/mig39/coregen.cgp b/designs/leon3-ztex-ufm-115/mig39/coregen.cgp new file mode 100644 index 00000000..61d9ffb6 --- /dev/null +++ b/designs/leon3-ztex-ufm-115/mig39/coregen.cgp @@ -0,0 +1,22 @@ +# Date: Fri Aug 19 20:07:13 2011 + +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6slx75 +SET devicefamily = spartan6 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = csg484 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = false +SET vhdlsim = true +SET workingdirectory = ./tmp/ + +# CRC: f4553d60 diff --git a/designs/leon3-ztex-ufm-115/mig39/mig.prj b/designs/leon3-ztex-ufm-115/mig39/mig.prj new file mode 100644 index 00000000..a96e570c --- /dev/null +++ b/designs/leon3-ztex-ufm-115/mig39/mig.prj @@ -0,0 +1,62 @@ + + + mig_39 + xc6slx75-csg484/-3 + 3.92 + + DDR2_SDRAM/Components/MT47H64M16XX-25E + 5000 + 0 + 1 + FALSE + + 13 + 10 + 3 + + + + 4(010) + 3 + Enable-Normal + Fullstrength + RTT Disabled + 0 + OCD Exit + Enable + Disable + Enable + Disable + NATIVE,NATIVE,NATIVE,NATIVE,NATIVE,NATIVE + Class II + Class II + CALIB_TERM + 25 Ohms + + + + Single-Ended + 1 + Disable + Single-Ended + Two 32-bit bi-directional and four 32-bit unidirectional ports + AA2 + Y2 + Port0 + Bi-directional,none,none,none,none,none + ROW_BANK_COLUMN + Round Robin + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + diff --git a/designs/leon3-ztex-ufm-115/mig39/mig.xco b/designs/leon3-ztex-ufm-115/mig39/mig.xco new file mode 100644 index 00000000..572a9032 --- /dev/null +++ b/designs/leon3-ztex-ufm-115/mig39/mig.xco @@ -0,0 +1,42 @@ +############################################################## +# +# Xilinx Core Generator version 13.1 +# Date: Fri Aug 19 20:16:56 2011 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6slx75 +SET devicefamily = spartan6 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = csg484 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = false +SET vhdlsim = true +# END Project Options +# BEGIN Select +SELECT MIG_Virtex-6_and_Spartan-6 family Xilinx,_Inc. 3.92 +# END Select +# BEGIN Parameters +CSET component_name=mig_39 +CSET xml_input_file=./mig.prj +# END Parameters +GENERATE +# CRC: 47cf1cde diff --git a/designs/leon3-ztex-ufm-115/mig39/mig_39.xco b/designs/leon3-ztex-ufm-115/mig39/mig_39.xco new file mode 100644 index 00000000..781604b9 --- /dev/null +++ b/designs/leon3-ztex-ufm-115/mig39/mig_39.xco @@ -0,0 +1,49 @@ +############################################################## +# +# Xilinx Core Generator version 14.3 +# Date: Thu Dec 20 09:47:43 2012 +# +############################################################## +# +# This file contains the customisation parameters for a +# Xilinx CORE Generator IP GUI. It is strongly recommended +# that you do not manually alter this file as it may cause +# unexpected and unsupported behavior. +# +############################################################## +# +# Generated from component: xilinx.com:ip:mig:3.92 +# +############################################################## +# +# BEGIN Project Options +SET addpads = false +SET asysymbol = true +SET busformat = BusFormatAngleBracketNotRipped +SET createndf = false +SET designentry = VHDL +SET device = xc6slx75 +SET devicefamily = spartan6 +SET flowvendor = Other +SET formalverification = false +SET foundationsym = false +SET implementationfiletype = Ngc +SET package = csg484 +SET removerpms = false +SET simulationfiles = Behavioral +SET speedgrade = -3 +SET verilogsim = false +SET vhdlsim = true +# END Project Options +# BEGIN Select +SELECT MIG_Virtex-6_and_Spartan-6 family Xilinx,_Inc. 3.92 +# END Select +# BEGIN Parameters +CSET component_name=mig_39 +CSET xml_input_file=./mig.prj +# END Parameters +# BEGIN Extra information +MISC pkg_timestamp=2012-10-13T03:35:42Z +# END Extra information +GENERATE +# CRC: 37ec58a3 diff --git a/designs/leon3-ztex-ufm-115/mig_patch.txt b/designs/leon3-ztex-ufm-115/mig_patch.txt new file mode 100644 index 00000000..2cb5080b --- /dev/null +++ b/designs/leon3-ztex-ufm-115/mig_patch.txt @@ -0,0 +1,41 @@ +--- mig39/mig_39/user_design/rtl/mig_39.vhd 2012-12-20 10:45:50.000000000 +0100 ++++ mig39_copy/mig_39/user_design/rtl/mig_39.vhd 2012-12-20 10:46:58.907732349 +0100 +@@ -65,7 +65,7 @@ + --***************************************************************************** + library ieee; + use ieee.std_logic_1164.all; +-entity mig_39 is ++entity mig_37 is + generic + ( + C3_P0_MASK_SIZE : integer := 4; +@@ -116,7 +116,7 @@ + mcb3_zio : inout std_logic; + mcb3_dram_udm : out std_logic; + c3_sys_clk : in std_logic; +- c3_sys_rst_i : in std_logic; ++ c3_sys_rst_n : in std_logic; + c3_calib_done : out std_logic; + c3_clk0 : out std_logic; + c3_rst0 : out std_logic; +@@ -149,9 +149,9 @@ + c3_p0_rd_overflow : out std_logic; + c3_p0_rd_error : out std_logic + ); +-end mig_39; ++end mig_37; + +-architecture arc of mig_39 is ++architecture arc of mig_37 is + + + +@@ -448,7 +448,7 @@ + sys_clk_p => c3_sys_clk_p, + sys_clk_n => c3_sys_clk_n, + sys_clk => c3_sys_clk, +- sys_rst_i => c3_sys_rst_i, ++ sys_rst_i => c3_sys_rst_n, + clk0 => c3_clk0, + rst0 => c3_rst0, + async_rst => c3_async_rst, diff --git a/designs/leon3-ztex-ufm-115/testbench.vhd b/designs/leon3-ztex-ufm-115/testbench.vhd index aea180df..f80328b1 100644 --- a/designs/leon3-ztex-ufm-115/testbench.vhd +++ b/designs/leon3-ztex-ufm-115/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3-ztex-ufm-115/tkconfig.h b/designs/leon3-ztex-ufm-115/tkconfig.h index dd755300..48039bc8 100644 --- a/designs/leon3-ztex-ufm-115/tkconfig.h +++ b/designs/leon3-ztex-ufm-115/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN @@ -695,6 +717,10 @@ #endif +#ifndef CONFIG_MIG_DDR3 +#define CONFIG_MIG_DDR3 0 +#endif + #ifndef CONFIG_MIG_DDR2 #define CONFIG_MIG_DDR2 0 #endif diff --git a/designs/leon3mp/ahbrom.vhd b/designs/leon3mp/ahbrom.vhd index 1c37d22e..b9905d50 100644 --- a/designs/leon3mp/ahbrom.vhd +++ b/designs/leon3mp/ahbrom.vhd @@ -48,7 +48,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/designs/leon3mp/config.help b/designs/leon3mp/config.help index ca82d286..4cd9d3aa 100644 --- a/designs/leon3mp/config.help +++ b/designs/leon3mp/config.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -149,6 +155,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. @@ -551,11 +585,10 @@ CONFIG_IUFT_NONE sparing, 7-bit BCH and TMR. FPU Register file protection -CONFIG_FPUFT_EN +CONFIG_FPUFT_NONE Say Y to enable SEU protection of the FPU register file. - The GRFPU will be protected using 8-bit parity without restart, while - the GRFPU-Lite will be protected with 4-bit parity with restart. If - disabled the FPU register file will be implemented using flip-flops. + The GRFPU-Lite will be protected with parity, PDMR and TMR. + The GRFPU can use PDMR or TMR only. Cache memory error injection CONFIG_RF_ERRINJ diff --git a/designs/leon3mp/lconfig.tk b/designs/leon3mp/lconfig.tk index def181b0..13455cbd 100755 --- a/designs/leon3mp/lconfig.tk +++ b/designs/leon3mp/lconfig.tk @@ -757,7 +757,8 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" @@ -767,7 +768,9 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 45 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -910,8 +913,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} global CONFIG_SYN_UMC if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E @@ -930,6 +935,10 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} global CONFIG_SYN_VIRTEX6 if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -1019,9 +1028,10 @@ proc menu2 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 13 + menusplit $w $w.config.f.x0.x.menu 14 int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV @@ -1075,10 +1085,11 @@ proc update_menu2 {} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} global CONFIG_OCLKB_DIV @@ -1124,14 +1135,16 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} global CONFIG_OCLKB_DIV @@ -1204,13 +1217,21 @@ proc menu3 {w title} { bool $w.config.f 3 0 "Enable LEON3 SPARC V8 Processor" CONFIG_LEON3 int $w.config.f 3 1 "Number of processors" CONFIG_PROC_NUM - submenu $w.config.f 3 2 "Integer unit " 4 - submenu $w.config.f 3 3 "Floating-point unit" 5 - submenu $w.config.f 3 4 "Cache system" 6 - submenu $w.config.f 3 5 "MMU" 7 - submenu $w.config.f 3 6 "Debug Support Unit " 8 - submenu $w.config.f 3 7 "Fault-tolerance " 9 - submenu $w.config.f 3 8 "VHDL debug settings " 10 + global tmpvar_3 + minimenu $w.config.f 3 2 "Force values from example configuration (see help)" tmpvar_3 CONFIG_LEON3_MIN + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Force values from example configuration (see help)\"" + $w.config.f.x2.x.menu add radiobutton -label "Minimal-configuration" -variable tmpvar_3 -value "Minimal-configuration" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "General-purpose-cfg" -variable tmpvar_3 -value "General-purpose-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "High-Performance-cfg" -variable tmpvar_3 -value "High-Performance-cfg" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Custom-configuration" -variable tmpvar_3 -value "Custom-configuration" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 + submenu $w.config.f 3 3 "Integer unit " 4 + submenu $w.config.f 3 4 "Floating-point unit" 5 + submenu $w.config.f 3 5 "Cache system" 6 + submenu $w.config.f 3 6 "MMU" 7 + submenu $w.config.f 3 7 "Debug Support Unit " 8 + submenu $w.config.f 3 8 "Fault-tolerance " 9 + submenu $w.config.f 3 9 "VHDL debug settings " 10 @@ -1250,22 +1271,290 @@ proc update_menu3 {} { global CONFIG_LEON3 global CONFIG_PROC_NUM 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} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {m}} else {configure_entry .menu3.config.f.x2 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} - if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x2 normal {x l}} else {configure_entry .menu3.config.f.x2 disabled {x l}} + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x3 normal {m}} else {configure_entry .menu3.config.f.x3 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x4 normal {m}} else {configure_entry .menu3.config.f.x4 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x5 normal {m}} else {configure_entry .menu3.config.f.x5 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x6 normal {m}} else {configure_entry .menu3.config.f.x6 disabled {m}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {configure_entry .menu3.config.f.x7 normal {m}} else {configure_entry .menu3.config.f.x7 disabled {m}} if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x8 normal {m}} else {configure_entry .menu3.config.f.x8 disabled {m}} + if {($CONFIG_LEON3 == 1)} then {configure_entry .menu3.config.f.x9 normal {m}} else {configure_entry .menu3.config.f.x9 disabled {m}} } proc update_define_menu3 {} { update_define_mainmenu global CONFIG_MODULES + global CONFIG_IU_NWINDOWS + global CONFIG_IU_V8MULDIV + global CONFIG_IU_BP + global CONFIG_IU_SVT + global CONFIG_NOTAG + global CONFIG_IU_LDELAY + global CONFIG_IU_WATCHPOINTS + global CONFIG_PWD + global CONFIG_IU_RSTADDR + global CONFIG_FPU_ENABLE + global CONFIG_ICACHE_ENABLE + global CONFIG_ICACHE_ASSO1 + global CONFIG_ICACHE_SZ2 + global CONFIG_ICACHE_LZ16 + global CONFIG_ICACHE_ALGORND + global CONFIG_ICACHE_LOCK + global CONFIG_DCACHE_ENABLE + global CONFIG_DCACHE_ASSO1 + global CONFIG_DCACHE_SZ2 + global CONFIG_DCACHE_LZ16 + global CONFIG_DCACHE_ALGORND + global CONFIG_DCACHE_LOCK + global CONFIG_DCACHE_SNOOP + global CONFIG_CACHE_FIXED + global CONFIG_MMU_ENABLE + global CONFIG_DSU_ENABLE + global CONFIG_IU_MUL_LATENCY_5 + global CONFIG_IU_MUL_MAC + global CONFIG_ICACHE_ASSO2 + global CONFIG_ICACHE_SZ4 + global CONFIG_ICACHE_LRAM + global CONFIG_DCACHE_ASSO2 + global CONFIG_DCACHE_SZ4 + global CONFIG_DCACHE_SNOOP_FAST + global CONFIG_DCACHE_SNOOP_SEPTAG + global CONFIG_DCACHE_LRAM + global CONFIG_MMU_SPLIT + global CONFIG_MMU_REPARRAY + global CONFIG_MMU_I8 + global CONFIG_MMU_D8 + global CONFIG_MMU_FASTWB + global CONFIG_MMU_PAGE_4K + global CONFIG_DSU_ITRACE + global CONFIG_DSU_ITRACESZ4 + global CONFIG_DSU_ATRACESZ4 + global CONFIG_IU_MUL_LATENCY_2 + global CONFIG_FPU_GRFPU + global CONFIG_FPU_GRFPU_INFMUL + global CONFIG_ICACHE_ALGOLRU + global CONFIG_DCACHE_ALGOLRU + global CONFIG_MMU_I16 + global CONFIG_MMU_D16 global CONFIG_LEON3 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_PROC_NUM "$CONFIG_PROC_NUM" 1} + global tmpvar_3 + global CONFIG_LEON3_MIN + if {$tmpvar_3 == "Minimal-configuration"} then {set CONFIG_LEON3_MIN 1} else {set CONFIG_LEON3_MIN 0} + global CONFIG_LEON3_GP + if {$tmpvar_3 == "General-purpose-cfg"} then {set CONFIG_LEON3_GP 1} else {set CONFIG_LEON3_GP 0} + global CONFIG_LEON3_HP + if {$tmpvar_3 == "High-Performance-cfg"} then {set CONFIG_LEON3_HP 1} else {set CONFIG_LEON3_HP 0} + global CONFIG_LEON3_CUSTOM + if {$tmpvar_3 == "Custom-configuration"} then {set CONFIG_LEON3_CUSTOM 1} else {set CONFIG_LEON3_CUSTOM 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_V8MULDIV $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_IU_BP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_WATCHPOINTS 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_PWD $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO1 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_SNOOP $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_MMU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then { global CONSTANT_N +set CONFIG_DSU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_LDELAY 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_WATCHPOINTS 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_FPU_ENABLE $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGORND $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D8 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_NWINDOWS 8 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_V8MULDIV $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_IU_MUL_MAC $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_BP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_IU_SVT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_NOTAG $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_LDELAY 1 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_WATCHPOINTS 4 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_PWD $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_IU_RSTADDR 00000 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_ICACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_ICACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ASSO2 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_LZ16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_ALGOLRU $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LOCK $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {set CONFIG_CACHE_FIXED 0 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_N +set CONFIG_DCACHE_LRAM $CONSTANT_N } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_SPLIT $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_REPARRAY $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_I16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_D16 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_FASTWB $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_MMU_PAGE_4K $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ENABLE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACE $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ITRACESZ4 $CONSTANT_Y } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then { global CONSTANT_Y +set CONFIG_DSU_ATRACESZ4 $CONSTANT_Y } } @@ -1322,21 +1611,21 @@ proc menu4 {w title} { int $w.config.f 4 0 "SPARC register windows" CONFIG_IU_NWINDOWS bool $w.config.f 4 1 "SPARC V8 MUL/DIV instructions" CONFIG_IU_V8MULDIV - global tmpvar_3 - minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_3 CONFIG_IU_MUL_LATENCY_2 + global tmpvar_4 + minimenu $w.config.f 4 2 "Hardware multiplier latency" tmpvar_4 CONFIG_IU_MUL_LATENCY_2 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Hardware multiplier latency\"" - $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_3 -value "2-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_3 -value "4-cycles" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_3 -value "5-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2-cycles" -variable tmpvar_4 -value "2-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4-cycles" -variable tmpvar_4 -value "4-cycles" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "5-cycles" -variable tmpvar_4 -value "5-cycles" -command "update_active" menusplit $w $w.config.f.x2.x.menu 3 bool $w.config.f 4 3 "SPARC V8e SMAC/UMAC instructions " CONFIG_IU_MUL_MAC - global tmpvar_4 - minimenu $w.config.f 4 4 "Multipler structure " tmpvar_4 CONFIG_IU_MUL_INFERRED + global tmpvar_5 + minimenu $w.config.f 4 4 "Multipler structure " tmpvar_5 CONFIG_IU_MUL_INFERRED menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Multipler structure \"" - $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_4 -value "Inferred" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_4 -value "NTNU_Modgen" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_4 -value "TechSpec" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_4 -value "Designware" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Inferred" -variable tmpvar_5 -value "Inferred" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "NTNU_Modgen" -variable tmpvar_5 -value "NTNU_Modgen" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "TechSpec" -variable tmpvar_5 -value "TechSpec" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Designware" -variable tmpvar_5 -value "Designware" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 4 5 "Branch prediction " CONFIG_IU_BP bool $w.config.f 4 6 "Single-vector trapping" CONFIG_IU_SVT @@ -1383,36 +1672,37 @@ proc menu4 {w title} { proc update_menu4 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x1 normal {n l y}} else {configure_entry .menu4.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_IU_MUL_LATENCY_4 global CONFIG_IU_MUL_LATENCY_5 global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { configure_entry .menu4.config.f.x3 normal {n l y}} else {configure_entry .menu4.config.f.x3 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then {configure_entry .menu4.config.f.x4 normal {x l}} else {configure_entry .menu4.config.f.x4 disabled {x l}} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x5 normal {n l y}} else {configure_entry .menu4.config.f.x5 disabled {y n l}} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x6 normal {n l y}} else {configure_entry .menu4.config.f.x6 disabled {y n l}} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x7 normal {n l y}} else {configure_entry .menu4.config.f.x7 disabled {y n l}} global CONFIG_IU_LDELAY - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x9.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x9.l configure -state normal; } else {.menu4.config.f.x9.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x9.l configure -state disabled} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu4.config.f.x10 normal {n l y}} else {configure_entry .menu4.config.f.x10 disabled {y n l}} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {.menu4.config.f.x11.x configure -state normal -foreground [ cget .ref -foreground ]; .menu4.config.f.x11.l configure -state normal; } else {.menu4.config.f.x11.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu4.config.f.x11.l configure -state disabled} } @@ -1420,48 +1710,49 @@ proc update_define_menu4 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_NWINDOWS "$CONFIG_IU_NWINDOWS" 8} global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV&15]} else {set CONFIG_IU_V8MULDIV [expr $CONFIG_IU_V8MULDIV|16]} - global tmpvar_3 + global tmpvar_4 global CONFIG_IU_MUL_LATENCY_2 - if {$tmpvar_3 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} + if {$tmpvar_4 == "2-cycles"} then {set CONFIG_IU_MUL_LATENCY_2 1} else {set CONFIG_IU_MUL_LATENCY_2 0} global CONFIG_IU_MUL_LATENCY_4 - if {$tmpvar_3 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} + if {$tmpvar_4 == "4-cycles"} then {set CONFIG_IU_MUL_LATENCY_4 1} else {set CONFIG_IU_MUL_LATENCY_4 0} global CONFIG_IU_MUL_LATENCY_5 - if {$tmpvar_3 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} + if {$tmpvar_4 == "5-cycles"} then {set CONFIG_IU_MUL_LATENCY_5 1} else {set CONFIG_IU_MUL_LATENCY_5 0} global CONFIG_IU_MUL_MAC - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then { set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC&15]} else {set CONFIG_IU_MUL_MAC [expr $CONFIG_IU_MUL_MAC|16]} - global tmpvar_4 + global tmpvar_5 global CONFIG_IU_MUL_INFERRED - if {$tmpvar_4 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} + if {$tmpvar_5 == "Inferred"} then {set CONFIG_IU_MUL_INFERRED 1} else {set CONFIG_IU_MUL_INFERRED 0} global CONFIG_IU_MUL_MODGEN - if {$tmpvar_4 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} + if {$tmpvar_5 == "NTNU_Modgen"} then {set CONFIG_IU_MUL_MODGEN 1} else {set CONFIG_IU_MUL_MODGEN 0} global CONFIG_IU_MUL_TECHSPEC - if {$tmpvar_4 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} + if {$tmpvar_5 == "TechSpec"} then {set CONFIG_IU_MUL_TECHSPEC 1} else {set CONFIG_IU_MUL_TECHSPEC 0} global CONFIG_IU_MUL_DW - if {$tmpvar_4 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} + if {$tmpvar_5 == "Designware"} then {set CONFIG_IU_MUL_DW 1} else {set CONFIG_IU_MUL_DW 0} global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_BP [expr $CONFIG_IU_BP&15]} else {set CONFIG_IU_BP [expr $CONFIG_IU_BP|16]} global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_IU_SVT [expr $CONFIG_IU_SVT&15]} else {set CONFIG_IU_SVT [expr $CONFIG_IU_SVT|16]} global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_NOTAG [expr $CONFIG_NOTAG&15]} else {set CONFIG_NOTAG [expr $CONFIG_NOTAG|16]} global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_LDELAY "$CONFIG_IU_LDELAY" 1} global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_int CONFIG_IU_WATCHPOINTS "$CONFIG_IU_WATCHPOINTS" 0} global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_PWD [expr $CONFIG_PWD&15]} else {set CONFIG_PWD [expr $CONFIG_PWD|16]} global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {validate_hex CONFIG_IU_RSTADDR "$CONFIG_IU_RSTADDR" 00000} } @@ -1517,27 +1808,27 @@ proc menu5 {w title} { bool $w.config.f 5 0 "Enable FPU " CONFIG_FPU_ENABLE - global tmpvar_5 - minimenu $w.config.f 5 1 "FPU core" tmpvar_5 CONFIG_FPU_GRFPU + global tmpvar_6 + minimenu $w.config.f 5 1 "FPU core" tmpvar_6 CONFIG_FPU_GRFPU menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"FPU core\"" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_5 -value "GRFPU" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_5 -value "GRFPU-LITE" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_5 -value "Meiko" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU" -variable tmpvar_6 -value "GRFPU" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "GRFPU-LITE" -variable tmpvar_6 -value "GRFPU-LITE" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Meiko" -variable tmpvar_6 -value "Meiko" -command "update_active" menusplit $w $w.config.f.x1.x.menu 3 - global tmpvar_6 - minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_6 CONFIG_FPU_GRFPU_INFMUL + global tmpvar_7 + minimenu $w.config.f 5 2 "GRFPU multiplier" tmpvar_7 CONFIG_FPU_GRFPU_INFMUL menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"GRFPU multiplier\"" - $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_6 -value "Inferred" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_6 -value "DW" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_6 -value "ModGen" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_6 -value "TechSpec" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Inferred" -variable tmpvar_7 -value "Inferred" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "DW" -variable tmpvar_7 -value "DW" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "ModGen" -variable tmpvar_7 -value "ModGen" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TechSpec" -variable tmpvar_7 -value "TechSpec" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_7 - minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_7 CONFIG_FPU_GRFPC0 + global tmpvar_8 + minimenu $w.config.f 5 3 "GRFPU-LITE controller" tmpvar_8 CONFIG_FPU_GRFPC0 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"GRFPU-LITE controller\"" - $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_7 -value "Simple" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_7 -value "Data-forwarding" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_7 -value "Non-blocking" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Simple" -variable tmpvar_8 -value "Simple" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Data-forwarding" -variable tmpvar_8 -value "Data-forwarding" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "Non-blocking" -variable tmpvar_8 -value "Non-blocking" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 5 4 "Use VHDL netlist " CONFIG_FPU_NETLIST @@ -1578,16 +1869,17 @@ proc menu5 {w title} { proc update_menu5 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu5.config.f.x0 normal {n l y}} else {configure_entry .menu5.config.f.x0 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPU - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_GRFPULITE - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { configure_entry .menu5.config.f.x4 normal {n l y}} else {configure_entry .menu5.config.f.x4 disabled {y n l}} } @@ -1596,34 +1888,35 @@ proc update_define_menu5 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE&15]} else {set CONFIG_FPU_ENABLE [expr $CONFIG_FPU_ENABLE|16]} - global tmpvar_5 + global tmpvar_6 global CONFIG_FPU_GRFPU - if {$tmpvar_5 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} + if {$tmpvar_6 == "GRFPU"} then {set CONFIG_FPU_GRFPU 1} else {set CONFIG_FPU_GRFPU 0} global CONFIG_FPU_GRFPULITE - if {$tmpvar_5 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} + if {$tmpvar_6 == "GRFPU-LITE"} then {set CONFIG_FPU_GRFPULITE 1} else {set CONFIG_FPU_GRFPULITE 0} global CONFIG_FPU_MEIKO - if {$tmpvar_5 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} - global tmpvar_6 + if {$tmpvar_6 == "Meiko"} then {set CONFIG_FPU_MEIKO 1} else {set CONFIG_FPU_MEIKO 0} + global tmpvar_7 global CONFIG_FPU_GRFPU_INFMUL - if {$tmpvar_6 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} + if {$tmpvar_7 == "Inferred"} then {set CONFIG_FPU_GRFPU_INFMUL 1} else {set CONFIG_FPU_GRFPU_INFMUL 0} global CONFIG_FPU_GRFPU_DWMUL - if {$tmpvar_6 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} + if {$tmpvar_7 == "DW"} then {set CONFIG_FPU_GRFPU_DWMUL 1} else {set CONFIG_FPU_GRFPU_DWMUL 0} global CONFIG_FPU_GRFPU_MODGEN - if {$tmpvar_6 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} + if {$tmpvar_7 == "ModGen"} then {set CONFIG_FPU_GRFPU_MODGEN 1} else {set CONFIG_FPU_GRFPU_MODGEN 0} global CONFIG_FPU_GRFPU_TECHSPEC - if {$tmpvar_6 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} - global tmpvar_7 + if {$tmpvar_7 == "TechSpec"} then {set CONFIG_FPU_GRFPU_TECHSPEC 1} else {set CONFIG_FPU_GRFPU_TECHSPEC 0} + global tmpvar_8 global CONFIG_FPU_GRFPC0 - if {$tmpvar_7 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} + if {$tmpvar_8 == "Simple"} then {set CONFIG_FPU_GRFPC0 1} else {set CONFIG_FPU_GRFPC0 0} global CONFIG_FPU_GRFPC1 - if {$tmpvar_7 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} + if {$tmpvar_8 == "Data-forwarding"} then {set CONFIG_FPU_GRFPC1 1} else {set CONFIG_FPU_GRFPC1 0} global CONFIG_FPU_GRFPC2 - if {$tmpvar_7 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} + if {$tmpvar_8 == "Non-blocking"} then {set CONFIG_FPU_GRFPC2 1} else {set CONFIG_FPU_GRFPC2 0} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST&15]} else {set CONFIG_FPU_NETLIST [expr $CONFIG_FPU_NETLIST|16]} } @@ -1680,92 +1973,92 @@ proc menu6 {w title} { bool $w.config.f 6 0 "Enable instruction cache " CONFIG_ICACHE_ENABLE - global tmpvar_8 - minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_8 CONFIG_ICACHE_ASSO1 + global tmpvar_9 + minimenu $w.config.f 6 1 "Associativity (sets) " tmpvar_9 CONFIG_ICACHE_ASSO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Associativity (sets) \"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_8 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_8 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_8 -value "3" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_8 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "3" -variable tmpvar_9 -value "3" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" menusplit $w $w.config.f.x1.x.menu 4 - global tmpvar_9 - minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_9 CONFIG_ICACHE_SZ1 + global tmpvar_10 + minimenu $w.config.f 6 2 "Way size (kbytes/way)" tmpvar_10 CONFIG_ICACHE_SZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Way size (kbytes/way)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_9 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_9 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_9 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_9 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_9 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_9 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_9 -value "64" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_9 -value "128" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_9 -value "256" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_10 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_10 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_10 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_10 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_10 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "128" -variable tmpvar_10 -value "128" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "256" -variable tmpvar_10 -value "256" -command "update_active" menusplit $w $w.config.f.x2.x.menu 9 - global tmpvar_10 - minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_10 CONFIG_ICACHE_LZ16 + global tmpvar_11 + minimenu $w.config.f 6 3 "Line size (bytes/line)" tmpvar_11 CONFIG_ICACHE_LZ16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_10 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_10 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_11 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_11 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 2 - global tmpvar_11 - minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_11 CONFIG_ICACHE_ALGORND + global tmpvar_12 + minimenu $w.config.f 6 4 "Replacement alorithm" tmpvar_12 CONFIG_ICACHE_ALGORND menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_11 -value "Random" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_11 -value "Direct" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_11 -value "LRR" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_11 -value "LRU" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Random" -variable tmpvar_12 -value "Random" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "Direct" -variable tmpvar_12 -value "Direct" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRR" -variable tmpvar_12 -value "LRR" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "LRU" -variable tmpvar_12 -value "LRU" -command "update_active" menusplit $w $w.config.f.x4.x.menu 4 bool $w.config.f 6 5 "Cache locking " CONFIG_ICACHE_LOCK bool $w.config.f 6 6 "Enable local instruction RAM " CONFIG_ICACHE_LRAM - global tmpvar_12 - minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_12 CONFIG_ICACHE_LRAM_SZ1 + global tmpvar_13 + minimenu $w.config.f 6 7 "Local data RAM size (kbytes)" tmpvar_13 CONFIG_ICACHE_LRAM_SZ1 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_12 -value "1" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_12 -value "2" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_12 -value "4" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_12 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_12 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_12 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_12 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_12 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_12 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_13 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_13 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_13 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_13 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_13 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_13 -value "256" -command "update_active" menusplit $w $w.config.f.x7.x.menu 9 hex $w.config.f 6 8 " Local instruction RAM start address (8 MSB) " CONFIG_ICACHE_LRSTART bool $w.config.f 6 9 "Enable data cache " CONFIG_DCACHE_ENABLE - global tmpvar_13 - minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_13 CONFIG_DCACHE_ASSO1 + global tmpvar_14 + minimenu $w.config.f 6 10 "Associativity (sets)" tmpvar_14 CONFIG_DCACHE_ASSO1 menu $w.config.f.x10.x.menu -tearoffcommand "menutitle \"Associativity (sets)\"" - $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_13 -value "1" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_13 -value "2" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_13 -value "3" -command "update_active" - $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_13 -value "4" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "3" -variable tmpvar_14 -value "3" -command "update_active" + $w.config.f.x10.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" menusplit $w $w.config.f.x10.x.menu 4 - global tmpvar_14 - minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_14 CONFIG_DCACHE_SZ1 + global tmpvar_15 + minimenu $w.config.f 6 11 "Set size (kbytes/set)" tmpvar_15 CONFIG_DCACHE_SZ1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Set size (kbytes/set)\"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_14 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_14 -value "2" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_14 -value "4" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_14 -value "8" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_14 -value "16" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_14 -value "32" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_14 -value "64" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_14 -value "128" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_14 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_15 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_15 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4" -variable tmpvar_15 -value "4" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "8" -variable tmpvar_15 -value "8" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "64" -variable tmpvar_15 -value "64" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "128" -variable tmpvar_15 -value "128" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_15 -value "256" -command "update_active" menusplit $w $w.config.f.x11.x.menu 9 - global tmpvar_15 - minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_15 CONFIG_DCACHE_LZ16 + global tmpvar_16 + minimenu $w.config.f 6 12 "Line size (bytes/line)" tmpvar_16 CONFIG_DCACHE_LZ16 menu $w.config.f.x12.x.menu -tearoffcommand "menutitle \"Line size (bytes/line)\"" - $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_15 -value "16" -command "update_active" - $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_15 -value "32" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "16" -variable tmpvar_16 -value "16" -command "update_active" + $w.config.f.x12.x.menu add radiobutton -label "32" -variable tmpvar_16 -value "32" -command "update_active" menusplit $w $w.config.f.x12.x.menu 2 - global tmpvar_16 - minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_16 CONFIG_DCACHE_ALGORND + global tmpvar_17 + minimenu $w.config.f 6 13 "Replacement alorithm" tmpvar_17 CONFIG_DCACHE_ALGORND menu $w.config.f.x13.x.menu -tearoffcommand "menutitle \"Replacement alorithm\"" - $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_16 -value "Random" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_16 -value "Direct" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_16 -value "LRR" -command "update_active" - $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_16 -value "LRU" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Random" -variable tmpvar_17 -value "Random" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "Direct" -variable tmpvar_17 -value "Direct" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRR" -variable tmpvar_17 -value "LRR" -command "update_active" + $w.config.f.x13.x.menu add radiobutton -label "LRU" -variable tmpvar_17 -value "LRU" -command "update_active" menusplit $w $w.config.f.x13.x.menu 4 bool $w.config.f 6 14 "Cache locking " CONFIG_DCACHE_LOCK bool $w.config.f 6 15 "AHB snooping " CONFIG_DCACHE_SNOOP @@ -1773,18 +2066,18 @@ proc menu6 {w title} { bool $w.config.f 6 17 "Separate snoop tags " CONFIG_DCACHE_SNOOP_SEPTAG hex $w.config.f 6 18 "Fixed cacheability map " CONFIG_CACHE_FIXED bool $w.config.f 6 19 "Enable local data RAM " CONFIG_DCACHE_LRAM - global tmpvar_17 - minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_17 CONFIG_DCACHE_LRAM_SZ1 + global tmpvar_18 + minimenu $w.config.f 6 20 "Local data RAM size (kbytes)" tmpvar_18 CONFIG_DCACHE_LRAM_SZ1 menu $w.config.f.x20.x.menu -tearoffcommand "menutitle \"Local data RAM size (kbytes)\"" - $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_17 -value "1" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_17 -value "2" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_17 -value "4" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_17 -value "8" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_17 -value "16" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_17 -value "32" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_17 -value "64" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_17 -value "128" -command "update_active" - $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_17 -value "256" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "1" -variable tmpvar_18 -value "1" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "2" -variable tmpvar_18 -value "2" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "4" -variable tmpvar_18 -value "4" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "8" -variable tmpvar_18 -value "8" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "16" -variable tmpvar_18 -value "16" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "32" -variable tmpvar_18 -value "32" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "64" -variable tmpvar_18 -value "64" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "128" -variable tmpvar_18 -value "128" -command "update_active" + $w.config.f.x20.x.menu add radiobutton -label "256" -variable tmpvar_18 -value "256" -command "update_active" menusplit $w $w.config.f.x20.x.menu 9 hex $w.config.f 6 21 " Local data RAM start address (8 MSB) " CONFIG_DCACHE_LRSTART @@ -1825,52 +2118,53 @@ proc menu6 {w title} { proc update_menu6 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x0 normal {n l y}} else {configure_entry .menu6.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x5 normal {n l y}} else {configure_entry .menu6.config.f.x5 disabled {y n l}} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x6 normal {n l y}} else {configure_entry .menu6.config.f.x6 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_ICACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu6.config.f.x9 normal {n l y}} else {configure_entry .menu6.config.f.x9 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_ASSO1 - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { configure_entry .menu6.config.f.x14 normal {n l y}} else {configure_entry .menu6.config.f.x14 disabled {y n l}} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { configure_entry .menu6.config.f.x15 normal {n l y}} else {configure_entry .menu6.config.f.x15 disabled {y n l}} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x16 normal {n l y}} else {configure_entry .menu6.config.f.x16 disabled {y n l}} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { configure_entry .menu6.config.f.x17 normal {n l y}} else {configure_entry .menu6.config.f.x17 disabled {y n l}} global CONFIG_CACHE_FIXED - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { configure_entry .menu6.config.f.x19 normal {n l y}} else {configure_entry .menu6.config.f.x19 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DCACHE_LRSTART - 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} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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} } @@ -1878,162 +2172,163 @@ proc update_define_menu6 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE&15]} else {set CONFIG_ICACHE_ENABLE [expr $CONFIG_ICACHE_ENABLE|16]} - global tmpvar_8 + global tmpvar_9 global CONFIG_ICACHE_ASSO1 - if {$tmpvar_8 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} + if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_ASSO1 1} else {set CONFIG_ICACHE_ASSO1 0} global CONFIG_ICACHE_ASSO2 - if {$tmpvar_8 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} + if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_ASSO2 1} else {set CONFIG_ICACHE_ASSO2 0} global CONFIG_ICACHE_ASSO3 - if {$tmpvar_8 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} + if {$tmpvar_9 == "3"} then {set CONFIG_ICACHE_ASSO3 1} else {set CONFIG_ICACHE_ASSO3 0} global CONFIG_ICACHE_ASSO4 - if {$tmpvar_8 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} - global tmpvar_9 + if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_ASSO4 1} else {set CONFIG_ICACHE_ASSO4 0} + global tmpvar_10 global CONFIG_ICACHE_SZ1 - if {$tmpvar_9 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} + if {$tmpvar_10 == "1"} then {set CONFIG_ICACHE_SZ1 1} else {set CONFIG_ICACHE_SZ1 0} global CONFIG_ICACHE_SZ2 - if {$tmpvar_9 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} + if {$tmpvar_10 == "2"} then {set CONFIG_ICACHE_SZ2 1} else {set CONFIG_ICACHE_SZ2 0} global CONFIG_ICACHE_SZ4 - if {$tmpvar_9 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} + if {$tmpvar_10 == "4"} then {set CONFIG_ICACHE_SZ4 1} else {set CONFIG_ICACHE_SZ4 0} global CONFIG_ICACHE_SZ8 - if {$tmpvar_9 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} + if {$tmpvar_10 == "8"} then {set CONFIG_ICACHE_SZ8 1} else {set CONFIG_ICACHE_SZ8 0} global CONFIG_ICACHE_SZ16 - if {$tmpvar_9 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} + if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_SZ16 1} else {set CONFIG_ICACHE_SZ16 0} global CONFIG_ICACHE_SZ32 - if {$tmpvar_9 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} + if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_SZ32 1} else {set CONFIG_ICACHE_SZ32 0} global CONFIG_ICACHE_SZ64 - if {$tmpvar_9 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} + if {$tmpvar_10 == "64"} then {set CONFIG_ICACHE_SZ64 1} else {set CONFIG_ICACHE_SZ64 0} global CONFIG_ICACHE_SZ128 - if {$tmpvar_9 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} + if {$tmpvar_10 == "128"} then {set CONFIG_ICACHE_SZ128 1} else {set CONFIG_ICACHE_SZ128 0} global CONFIG_ICACHE_SZ256 - if {$tmpvar_9 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} - global tmpvar_10 + if {$tmpvar_10 == "256"} then {set CONFIG_ICACHE_SZ256 1} else {set CONFIG_ICACHE_SZ256 0} + global tmpvar_11 global CONFIG_ICACHE_LZ16 - if {$tmpvar_10 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} + if {$tmpvar_11 == "16"} then {set CONFIG_ICACHE_LZ16 1} else {set CONFIG_ICACHE_LZ16 0} global CONFIG_ICACHE_LZ32 - if {$tmpvar_10 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} - global tmpvar_11 + if {$tmpvar_11 == "32"} then {set CONFIG_ICACHE_LZ32 1} else {set CONFIG_ICACHE_LZ32 0} + global tmpvar_12 global CONFIG_ICACHE_ALGORND - if {$tmpvar_11 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} + if {$tmpvar_12 == "Random"} then {set CONFIG_ICACHE_ALGORND 1} else {set CONFIG_ICACHE_ALGORND 0} global CONFIG_ICACHE_ALGODIR - if {$tmpvar_11 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} + if {$tmpvar_12 == "Direct"} then {set CONFIG_ICACHE_ALGODIR 1} else {set CONFIG_ICACHE_ALGODIR 0} global CONFIG_ICACHE_ALGOLRR - if {$tmpvar_11 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} + if {$tmpvar_12 == "LRR"} then {set CONFIG_ICACHE_ALGOLRR 1} else {set CONFIG_ICACHE_ALGOLRR 0} global CONFIG_ICACHE_ALGOLRU - if {$tmpvar_11 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} + if {$tmpvar_12 == "LRU"} then {set CONFIG_ICACHE_ALGOLRU 1} else {set CONFIG_ICACHE_ALGOLRU 0} global CONFIG_ICACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK&15]} else {set CONFIG_ICACHE_LOCK [expr $CONFIG_ICACHE_LOCK|16]} global CONFIG_MMU_ENABLE global CONFIG_ICACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM&15]} else {set CONFIG_ICACHE_LRAM [expr $CONFIG_ICACHE_LRAM|16]} - global tmpvar_12 + global tmpvar_13 global CONFIG_ICACHE_LRAM_SZ1 - if {$tmpvar_12 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} + if {$tmpvar_13 == "1"} then {set CONFIG_ICACHE_LRAM_SZ1 1} else {set CONFIG_ICACHE_LRAM_SZ1 0} global CONFIG_ICACHE_LRAM_SZ2 - if {$tmpvar_12 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} + if {$tmpvar_13 == "2"} then {set CONFIG_ICACHE_LRAM_SZ2 1} else {set CONFIG_ICACHE_LRAM_SZ2 0} global CONFIG_ICACHE_LRAM_SZ4 - if {$tmpvar_12 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} + if {$tmpvar_13 == "4"} then {set CONFIG_ICACHE_LRAM_SZ4 1} else {set CONFIG_ICACHE_LRAM_SZ4 0} global CONFIG_ICACHE_LRAM_SZ8 - if {$tmpvar_12 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} + if {$tmpvar_13 == "8"} then {set CONFIG_ICACHE_LRAM_SZ8 1} else {set CONFIG_ICACHE_LRAM_SZ8 0} global CONFIG_ICACHE_LRAM_SZ16 - if {$tmpvar_12 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} + if {$tmpvar_13 == "16"} then {set CONFIG_ICACHE_LRAM_SZ16 1} else {set CONFIG_ICACHE_LRAM_SZ16 0} global CONFIG_ICACHE_LRAM_SZ32 - if {$tmpvar_12 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} + if {$tmpvar_13 == "32"} then {set CONFIG_ICACHE_LRAM_SZ32 1} else {set CONFIG_ICACHE_LRAM_SZ32 0} global CONFIG_ICACHE_LRAM_SZ64 - if {$tmpvar_12 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} + if {$tmpvar_13 == "64"} then {set CONFIG_ICACHE_LRAM_SZ64 1} else {set CONFIG_ICACHE_LRAM_SZ64 0} global CONFIG_ICACHE_LRAM_SZ128 - if {$tmpvar_12 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} + if {$tmpvar_13 == "128"} then {set CONFIG_ICACHE_LRAM_SZ128 1} else {set CONFIG_ICACHE_LRAM_SZ128 0} global CONFIG_ICACHE_LRAM_SZ256 - if {$tmpvar_12 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} + if {$tmpvar_13 == "256"} then {set CONFIG_ICACHE_LRAM_SZ256 1} else {set CONFIG_ICACHE_LRAM_SZ256 0} global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {validate_hex CONFIG_ICACHE_LRSTART "$CONFIG_ICACHE_LRSTART" 8e} global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE&15]} else {set CONFIG_DCACHE_ENABLE [expr $CONFIG_DCACHE_ENABLE|16]} - global tmpvar_13 + global tmpvar_14 global CONFIG_DCACHE_ASSO1 - if {$tmpvar_13 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} + if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_ASSO1 1} else {set CONFIG_DCACHE_ASSO1 0} global CONFIG_DCACHE_ASSO2 - if {$tmpvar_13 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} + if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_ASSO2 1} else {set CONFIG_DCACHE_ASSO2 0} global CONFIG_DCACHE_ASSO3 - if {$tmpvar_13 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} + if {$tmpvar_14 == "3"} then {set CONFIG_DCACHE_ASSO3 1} else {set CONFIG_DCACHE_ASSO3 0} global CONFIG_DCACHE_ASSO4 - if {$tmpvar_13 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} - global tmpvar_14 + if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_ASSO4 1} else {set CONFIG_DCACHE_ASSO4 0} + global tmpvar_15 global CONFIG_DCACHE_SZ1 - if {$tmpvar_14 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} + if {$tmpvar_15 == "1"} then {set CONFIG_DCACHE_SZ1 1} else {set CONFIG_DCACHE_SZ1 0} global CONFIG_DCACHE_SZ2 - if {$tmpvar_14 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} + if {$tmpvar_15 == "2"} then {set CONFIG_DCACHE_SZ2 1} else {set CONFIG_DCACHE_SZ2 0} global CONFIG_DCACHE_SZ4 - if {$tmpvar_14 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} + if {$tmpvar_15 == "4"} then {set CONFIG_DCACHE_SZ4 1} else {set CONFIG_DCACHE_SZ4 0} global CONFIG_DCACHE_SZ8 - if {$tmpvar_14 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} + if {$tmpvar_15 == "8"} then {set CONFIG_DCACHE_SZ8 1} else {set CONFIG_DCACHE_SZ8 0} global CONFIG_DCACHE_SZ16 - if {$tmpvar_14 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} + if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_SZ16 1} else {set CONFIG_DCACHE_SZ16 0} global CONFIG_DCACHE_SZ32 - if {$tmpvar_14 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} + if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_SZ32 1} else {set CONFIG_DCACHE_SZ32 0} global CONFIG_DCACHE_SZ64 - if {$tmpvar_14 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} + if {$tmpvar_15 == "64"} then {set CONFIG_DCACHE_SZ64 1} else {set CONFIG_DCACHE_SZ64 0} global CONFIG_DCACHE_SZ128 - if {$tmpvar_14 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} + if {$tmpvar_15 == "128"} then {set CONFIG_DCACHE_SZ128 1} else {set CONFIG_DCACHE_SZ128 0} global CONFIG_DCACHE_SZ256 - if {$tmpvar_14 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} - global tmpvar_15 + if {$tmpvar_15 == "256"} then {set CONFIG_DCACHE_SZ256 1} else {set CONFIG_DCACHE_SZ256 0} + global tmpvar_16 global CONFIG_DCACHE_LZ16 - if {$tmpvar_15 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} + if {$tmpvar_16 == "16"} then {set CONFIG_DCACHE_LZ16 1} else {set CONFIG_DCACHE_LZ16 0} global CONFIG_DCACHE_LZ32 - if {$tmpvar_15 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} - global tmpvar_16 + if {$tmpvar_16 == "32"} then {set CONFIG_DCACHE_LZ32 1} else {set CONFIG_DCACHE_LZ32 0} + global tmpvar_17 global CONFIG_DCACHE_ALGORND - if {$tmpvar_16 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} + if {$tmpvar_17 == "Random"} then {set CONFIG_DCACHE_ALGORND 1} else {set CONFIG_DCACHE_ALGORND 0} global CONFIG_DCACHE_ALGODIR - if {$tmpvar_16 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} + if {$tmpvar_17 == "Direct"} then {set CONFIG_DCACHE_ALGODIR 1} else {set CONFIG_DCACHE_ALGODIR 0} global CONFIG_DCACHE_ALGOLRR - if {$tmpvar_16 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} + if {$tmpvar_17 == "LRR"} then {set CONFIG_DCACHE_ALGOLRR 1} else {set CONFIG_DCACHE_ALGOLRR 0} global CONFIG_DCACHE_ALGOLRU - if {$tmpvar_16 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} + if {$tmpvar_17 == "LRU"} then {set CONFIG_DCACHE_ALGOLRU 1} else {set CONFIG_DCACHE_ALGOLRU 0} global CONFIG_DCACHE_LOCK - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK&15]} else {set CONFIG_DCACHE_LOCK [expr $CONFIG_DCACHE_LOCK|16]} global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP&15]} else {set CONFIG_DCACHE_SNOOP [expr $CONFIG_DCACHE_SNOOP|16]} global CONFIG_DCACHE_SNOOP_FAST - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST&15]} else {set CONFIG_DCACHE_SNOOP_FAST [expr $CONFIG_DCACHE_SNOOP_FAST|16]} global CONFIG_DCACHE_SNOOP_SEPTAG - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_SNOOP == 1)} then { set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG&15]} else {set CONFIG_DCACHE_SNOOP_SEPTAG [expr $CONFIG_DCACHE_SNOOP_SEPTAG|16]} global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {validate_hex CONFIG_CACHE_FIXED "$CONFIG_CACHE_FIXED" 0} global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then { set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM&15]} else {set CONFIG_DCACHE_LRAM [expr $CONFIG_DCACHE_LRAM|16]} - global tmpvar_17 + global tmpvar_18 global CONFIG_DCACHE_LRAM_SZ1 - if {$tmpvar_17 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} + if {$tmpvar_18 == "1"} then {set CONFIG_DCACHE_LRAM_SZ1 1} else {set CONFIG_DCACHE_LRAM_SZ1 0} global CONFIG_DCACHE_LRAM_SZ2 - if {$tmpvar_17 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} + if {$tmpvar_18 == "2"} then {set CONFIG_DCACHE_LRAM_SZ2 1} else {set CONFIG_DCACHE_LRAM_SZ2 0} global CONFIG_DCACHE_LRAM_SZ4 - if {$tmpvar_17 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} + if {$tmpvar_18 == "4"} then {set CONFIG_DCACHE_LRAM_SZ4 1} else {set CONFIG_DCACHE_LRAM_SZ4 0} global CONFIG_DCACHE_LRAM_SZ8 - if {$tmpvar_17 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} + if {$tmpvar_18 == "8"} then {set CONFIG_DCACHE_LRAM_SZ8 1} else {set CONFIG_DCACHE_LRAM_SZ8 0} global CONFIG_DCACHE_LRAM_SZ16 - if {$tmpvar_17 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} + if {$tmpvar_18 == "16"} then {set CONFIG_DCACHE_LRAM_SZ16 1} else {set CONFIG_DCACHE_LRAM_SZ16 0} global CONFIG_DCACHE_LRAM_SZ32 - if {$tmpvar_17 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} + if {$tmpvar_18 == "32"} then {set CONFIG_DCACHE_LRAM_SZ32 1} else {set CONFIG_DCACHE_LRAM_SZ32 0} global CONFIG_DCACHE_LRAM_SZ64 - if {$tmpvar_17 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} + if {$tmpvar_18 == "64"} then {set CONFIG_DCACHE_LRAM_SZ64 1} else {set CONFIG_DCACHE_LRAM_SZ64 0} global CONFIG_DCACHE_LRAM_SZ128 - if {$tmpvar_17 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} + if {$tmpvar_18 == "128"} then {set CONFIG_DCACHE_LRAM_SZ128 1} else {set CONFIG_DCACHE_LRAM_SZ128 0} global CONFIG_DCACHE_LRAM_SZ256 - if {$tmpvar_17 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} + if {$tmpvar_18 == "256"} then {set CONFIG_DCACHE_LRAM_SZ256 1} else {set CONFIG_DCACHE_LRAM_SZ256 0} global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {validate_hex CONFIG_DCACHE_LRSTART "$CONFIG_DCACHE_LRSTART" 8f} } @@ -2089,45 +2384,47 @@ proc menu7 {w title} { bool $w.config.f 7 0 "Enable MMU " CONFIG_MMU_ENABLE - global tmpvar_18 - minimenu $w.config.f 7 1 "MMU type " tmpvar_18 CONFIG_MMU_COMBINED + global tmpvar_19 + minimenu $w.config.f 7 1 "MMU type " tmpvar_19 CONFIG_MMU_COMBINED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"MMU type \"" - $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_18 -value "combined" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_18 -value "split" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "combined" -variable tmpvar_19 -value "combined" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "split" -variable tmpvar_19 -value "split" -command "update_active" menusplit $w $w.config.f.x1.x.menu 2 - global tmpvar_19 - minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_19 CONFIG_MMU_REPARRAY + global tmpvar_20 + minimenu $w.config.f 7 2 "TLB replacement sheme " tmpvar_20 CONFIG_MMU_REPARRAY menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"TLB replacement sheme \"" - $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_19 -value "LRU" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_19 -value "Increment" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "LRU" -variable tmpvar_20 -value "LRU" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Increment" -variable tmpvar_20 -value "Increment" -command "update_active" menusplit $w $w.config.f.x2.x.menu 2 - global tmpvar_20 - minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_20 CONFIG_MMU_I2 - menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_20 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_20 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_20 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_20 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_20 -value "32" -command "update_active" - menusplit $w $w.config.f.x3.x.menu 5 global tmpvar_21 - minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_21 CONFIG_MMU_D2 + minimenu $w.config.f 7 3 "Instruction (or combined) TLB entries" tmpvar_21 CONFIG_MMU_I2 + menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Instruction (or combined) TLB entries\"" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_21 -value "64" -command "update_active" + menusplit $w $w.config.f.x3.x.menu 6 + global tmpvar_22 + minimenu $w.config.f 7 4 "Data TLB entries" tmpvar_22 CONFIG_MMU_D2 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"Data TLB entries\"" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_21 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_21 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_21 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_21 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_21 -value "32" -command "update_active" - menusplit $w $w.config.f.x4.x.menu 5 + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_22 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_22 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_22 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_22 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_22 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_22 -value "64" -command "update_active" + menusplit $w $w.config.f.x4.x.menu 6 bool $w.config.f 7 5 "Fast writebuffer " CONFIG_MMU_FASTWB - global tmpvar_22 - minimenu $w.config.f 7 6 "MMU page size" tmpvar_22 CONFIG_MMU_PAGE_4K + global tmpvar_23 + minimenu $w.config.f 7 6 "MMU page size" tmpvar_23 CONFIG_MMU_PAGE_4K menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"MMU page size\"" - $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_22 -value "4K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_22 -value "8K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_22 -value "16K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_22 -value "32K" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_22 -value "Programmable" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4K" -variable tmpvar_23 -value "4K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "8K" -variable tmpvar_23 -value "8K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "16K" -variable tmpvar_23 -value "16K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "32K" -variable tmpvar_23 -value "32K" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "Programmable" -variable tmpvar_23 -value "Programmable" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 @@ -2167,18 +2464,19 @@ proc menu7 {w title} { proc update_menu7 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu7.config.f.x0 normal {n l y}} else {configure_entry .menu7.config.f.x0 disabled {y n l}} - 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}} - 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}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_SPLIT - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { configure_entry .menu7.config.f.x5 normal {n l y}} else {configure_entry .menu7.config.f.x5 disabled {y n l}} - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then {configure_entry .menu7.config.f.x6 normal {x l}} else {configure_entry .menu7.config.f.x6 disabled {x l}} } @@ -2186,55 +2484,60 @@ proc update_define_menu7 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE&15]} else {set CONFIG_MMU_ENABLE [expr $CONFIG_MMU_ENABLE|16]} - global tmpvar_18 + global tmpvar_19 global CONFIG_MMU_COMBINED - if {$tmpvar_18 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} + if {$tmpvar_19 == "combined"} then {set CONFIG_MMU_COMBINED 1} else {set CONFIG_MMU_COMBINED 0} global CONFIG_MMU_SPLIT - if {$tmpvar_18 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} - global tmpvar_19 + if {$tmpvar_19 == "split"} then {set CONFIG_MMU_SPLIT 1} else {set CONFIG_MMU_SPLIT 0} + global tmpvar_20 global CONFIG_MMU_REPARRAY - if {$tmpvar_19 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} + if {$tmpvar_20 == "LRU"} then {set CONFIG_MMU_REPARRAY 1} else {set CONFIG_MMU_REPARRAY 0} global CONFIG_MMU_REPINCREMENT - if {$tmpvar_19 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} - global tmpvar_20 + if {$tmpvar_20 == "Increment"} then {set CONFIG_MMU_REPINCREMENT 1} else {set CONFIG_MMU_REPINCREMENT 0} + global tmpvar_21 global CONFIG_MMU_I2 - if {$tmpvar_20 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} + if {$tmpvar_21 == "2"} then {set CONFIG_MMU_I2 1} else {set CONFIG_MMU_I2 0} global CONFIG_MMU_I4 - if {$tmpvar_20 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} + if {$tmpvar_21 == "4"} then {set CONFIG_MMU_I4 1} else {set CONFIG_MMU_I4 0} global CONFIG_MMU_I8 - if {$tmpvar_20 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} + if {$tmpvar_21 == "8"} then {set CONFIG_MMU_I8 1} else {set CONFIG_MMU_I8 0} global CONFIG_MMU_I16 - if {$tmpvar_20 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} + if {$tmpvar_21 == "16"} then {set CONFIG_MMU_I16 1} else {set CONFIG_MMU_I16 0} global CONFIG_MMU_I32 - if {$tmpvar_20 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} - global tmpvar_21 + if {$tmpvar_21 == "32"} then {set CONFIG_MMU_I32 1} else {set CONFIG_MMU_I32 0} + global CONFIG_MMU_I64 + if {$tmpvar_21 == "64"} then {set CONFIG_MMU_I64 1} else {set CONFIG_MMU_I64 0} + global tmpvar_22 global CONFIG_MMU_D2 - if {$tmpvar_21 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} + if {$tmpvar_22 == "2"} then {set CONFIG_MMU_D2 1} else {set CONFIG_MMU_D2 0} global CONFIG_MMU_D4 - if {$tmpvar_21 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} + if {$tmpvar_22 == "4"} then {set CONFIG_MMU_D4 1} else {set CONFIG_MMU_D4 0} global CONFIG_MMU_D8 - if {$tmpvar_21 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} + if {$tmpvar_22 == "8"} then {set CONFIG_MMU_D8 1} else {set CONFIG_MMU_D8 0} global CONFIG_MMU_D16 - if {$tmpvar_21 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} + if {$tmpvar_22 == "16"} then {set CONFIG_MMU_D16 1} else {set CONFIG_MMU_D16 0} global CONFIG_MMU_D32 - if {$tmpvar_21 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + if {$tmpvar_22 == "32"} then {set CONFIG_MMU_D32 1} else {set CONFIG_MMU_D32 0} + global CONFIG_MMU_D64 + if {$tmpvar_22 == "64"} then {set CONFIG_MMU_D64 1} else {set CONFIG_MMU_D64 0} global CONFIG_MMU_FASTWB - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB&15]} else {set CONFIG_MMU_FASTWB [expr $CONFIG_MMU_FASTWB|16]} - global tmpvar_22 + global tmpvar_23 global CONFIG_MMU_PAGE_4K - if {$tmpvar_22 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} + if {$tmpvar_23 == "4K"} then {set CONFIG_MMU_PAGE_4K 1} else {set CONFIG_MMU_PAGE_4K 0} global CONFIG_MMU_PAGE_8K - if {$tmpvar_22 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} + if {$tmpvar_23 == "8K"} then {set CONFIG_MMU_PAGE_8K 1} else {set CONFIG_MMU_PAGE_8K 0} global CONFIG_MMU_PAGE_16K - if {$tmpvar_22 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} + if {$tmpvar_23 == "16K"} then {set CONFIG_MMU_PAGE_16K 1} else {set CONFIG_MMU_PAGE_16K 0} global CONFIG_MMU_PAGE_32K - if {$tmpvar_22 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} + if {$tmpvar_23 == "32K"} then {set CONFIG_MMU_PAGE_32K 1} else {set CONFIG_MMU_PAGE_32K 0} global CONFIG_MMU_PAGE_PROG - if {$tmpvar_22 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} + if {$tmpvar_23 == "Programmable"} then {set CONFIG_MMU_PAGE_PROG 1} else {set CONFIG_MMU_PAGE_PROG 0} } @@ -2291,24 +2594,24 @@ proc menu8 {w title} { bool $w.config.f 8 0 "Enable LEON3 Debug support unit " CONFIG_DSU_ENABLE bool $w.config.f 8 1 "Instruction trace buffer" CONFIG_DSU_ITRACE - global tmpvar_23 - minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_23 CONFIG_DSU_ITRACESZ1 + global tmpvar_24 + minimenu $w.config.f 8 2 "Instruction trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ITRACESZ1 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"Instruction trace buffer size (kbytes)\"" - $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_23 -value "1" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_23 -value "2" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_23 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_23 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_23 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 bool $w.config.f 8 3 "AHB trace buffer" CONFIG_DSU_ATRACE - global tmpvar_24 - minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_24 CONFIG_DSU_ATRACESZ1 + global tmpvar_25 + minimenu $w.config.f 8 4 "AHB trace buffer size (kbytes)" tmpvar_25 CONFIG_DSU_ATRACESZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB trace buffer size (kbytes)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_24 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_24 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_24 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_24 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_24 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_25 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_25 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_25 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_25 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_25 -value "16" -command "update_active" menusplit $w $w.config.f.x4.x.menu 5 @@ -2348,17 +2651,18 @@ proc menu8 {w title} { proc update_menu8 {} { global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { configure_entry .menu8.config.f.x0 normal {n l y}} else {configure_entry .menu8.config.f.x0 disabled {y n l}} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x1 normal {n l y}} else {configure_entry .menu8.config.f.x1 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { configure_entry .menu8.config.f.x3 normal {n l y}} else {configure_entry .menu8.config.f.x3 disabled {y n l}} - 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}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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}} } @@ -2366,37 +2670,38 @@ proc update_define_menu8 {} { update_define_mainmenu global CONFIG_MODULES global CONFIG_LEON3 + global CONFIG_LEON3_CUSTOM global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then { set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE&15]} else {set CONFIG_DSU_ENABLE [expr $CONFIG_DSU_ENABLE|16]} global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE&15]} else {set CONFIG_DSU_ITRACE [expr $CONFIG_DSU_ITRACE|16]} - global tmpvar_23 + global tmpvar_24 global CONFIG_DSU_ITRACESZ1 - if {$tmpvar_23 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} + if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ITRACESZ1 1} else {set CONFIG_DSU_ITRACESZ1 0} global CONFIG_DSU_ITRACESZ2 - if {$tmpvar_23 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} + if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ITRACESZ2 1} else {set CONFIG_DSU_ITRACESZ2 0} global CONFIG_DSU_ITRACESZ4 - if {$tmpvar_23 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} + if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ITRACESZ4 1} else {set CONFIG_DSU_ITRACESZ4 0} global CONFIG_DSU_ITRACESZ8 - if {$tmpvar_23 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} + if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ITRACESZ8 1} else {set CONFIG_DSU_ITRACESZ8 0} global CONFIG_DSU_ITRACESZ16 - if {$tmpvar_23 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} + if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ITRACESZ16 1} else {set CONFIG_DSU_ITRACESZ16 0} global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then { + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then { set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE&15]} else {set CONFIG_DSU_ATRACE [expr $CONFIG_DSU_ATRACE|16]} - global tmpvar_24 + global tmpvar_25 global CONFIG_DSU_ATRACESZ1 - if {$tmpvar_24 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} + if {$tmpvar_25 == "1"} then {set CONFIG_DSU_ATRACESZ1 1} else {set CONFIG_DSU_ATRACESZ1 0} global CONFIG_DSU_ATRACESZ2 - if {$tmpvar_24 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} + if {$tmpvar_25 == "2"} then {set CONFIG_DSU_ATRACESZ2 1} else {set CONFIG_DSU_ATRACESZ2 0} global CONFIG_DSU_ATRACESZ4 - if {$tmpvar_24 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} + if {$tmpvar_25 == "4"} then {set CONFIG_DSU_ATRACESZ4 1} else {set CONFIG_DSU_ATRACESZ4 0} global CONFIG_DSU_ATRACESZ8 - if {$tmpvar_24 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} + if {$tmpvar_25 == "8"} then {set CONFIG_DSU_ATRACESZ8 1} else {set CONFIG_DSU_ATRACESZ8 0} global CONFIG_DSU_ATRACESZ16 - if {$tmpvar_24 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} + if {$tmpvar_25 == "16"} then {set CONFIG_DSU_ATRACESZ16 1} else {set CONFIG_DSU_ATRACESZ16 0} } @@ -2452,16 +2757,23 @@ proc menu9 {w title} { bool $w.config.f 9 0 "Use LEON3-FT processor core " CONFIG_LEON3FT_EN - global tmpvar_25 - minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_25 CONFIG_IUFT_NONE + global tmpvar_26 + minimenu $w.config.f 9 1 "IU Register file protection " tmpvar_26 CONFIG_IUFT_NONE menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"IU Register file protection \"" - $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_25 -value "None" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_25 -value "Parity" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_25 -value "PDMR" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_25 -value "BCH" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_25 -value "TMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "None" -variable tmpvar_26 -value "None" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "Parity" -variable tmpvar_26 -value "Parity" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "PDMR" -variable tmpvar_26 -value "PDMR" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "BCH" -variable tmpvar_26 -value "BCH" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "TMR" -variable tmpvar_26 -value "TMR" -command "update_active" menusplit $w $w.config.f.x1.x.menu 5 - bool $w.config.f 9 2 "FPU Register file protection " CONFIG_FPUFT_EN + global tmpvar_27 + minimenu $w.config.f 9 2 "FPU Register file protection " tmpvar_27 CONFIG_FPUFT_NONE + menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"FPU Register file protection \"" + $w.config.f.x2.x.menu add radiobutton -label "None" -variable tmpvar_27 -value "None" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "Parity" -variable tmpvar_27 -value "Parity" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "PDMR" -variable tmpvar_27 -value "PDMR" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "TMR" -variable tmpvar_27 -value "TMR" -command "update_active" + menusplit $w $w.config.f.x2.x.menu 4 bool $w.config.f 9 3 "Register file error injection" CONFIG_RF_ERRINJ bool $w.config.f 9 4 "Cache memory protection " CONFIG_CACHE_FT_EN int $w.config.f 9 5 "Cache memory error injection" CONFIG_CACHE_ERRINJ @@ -2509,9 +2821,7 @@ proc update_menu9 {} { configure_entry .menu9.config.f.x0 normal {n l y}} else {configure_entry .menu9.config.f.x0 disabled {y n l}} if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {configure_entry .menu9.config.f.x1 normal {x l}} else {configure_entry .menu9.config.f.x1 disabled {x l}} global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - configure_entry .menu9.config.f.x2 normal {n l y}} else {configure_entry .menu9.config.f.x2 disabled {y n l}} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {configure_entry .menu9.config.f.x2 normal {x l}} else {configure_entry .menu9.config.f.x2 disabled {x l}} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { configure_entry .menu9.config.f.x3 normal {n l y}} else {configure_entry .menu9.config.f.x3 disabled {y n l}} @@ -2533,21 +2843,26 @@ proc update_define_menu9 {} { global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then { set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN&15]} else {set CONFIG_LEON3FT_EN [expr $CONFIG_LEON3FT_EN|16]} - global tmpvar_25 + global tmpvar_26 global CONFIG_IUFT_NONE - if {$tmpvar_25 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} + if {$tmpvar_26 == "None"} then {set CONFIG_IUFT_NONE 1} else {set CONFIG_IUFT_NONE 0} global CONFIG_IUFT_PAR - if {$tmpvar_25 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} + if {$tmpvar_26 == "Parity"} then {set CONFIG_IUFT_PAR 1} else {set CONFIG_IUFT_PAR 0} global CONFIG_IUFT_DMR - if {$tmpvar_25 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} + if {$tmpvar_26 == "PDMR"} then {set CONFIG_IUFT_DMR 1} else {set CONFIG_IUFT_DMR 0} global CONFIG_IUFT_BCH - if {$tmpvar_25 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} + if {$tmpvar_26 == "BCH"} then {set CONFIG_IUFT_BCH 1} else {set CONFIG_IUFT_BCH 0} global CONFIG_IUFT_TMR - if {$tmpvar_25 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} - global CONFIG_FPU_ENABLE - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN&15]} else {set CONFIG_FPUFT_EN [expr $CONFIG_FPUFT_EN|16]} + if {$tmpvar_26 == "TMR"} then {set CONFIG_IUFT_TMR 1} else {set CONFIG_IUFT_TMR 0} + global tmpvar_27 + global CONFIG_FPUFT_NONE + if {$tmpvar_27 == "None"} then {set CONFIG_FPUFT_NONE 1} else {set CONFIG_FPUFT_NONE 0} + global CONFIG_FPUFT_PAR + if {$tmpvar_27 == "Parity"} then {set CONFIG_FPUFT_PAR 1} else {set CONFIG_FPUFT_PAR 0} + global CONFIG_FPUFT_DMR + if {$tmpvar_27 == "PDMR"} then {set CONFIG_FPUFT_DMR 1} else {set CONFIG_FPUFT_DMR 0} + global CONFIG_FPUFT_TMR + if {$tmpvar_27 == "TMR"} then {set CONFIG_FPUFT_TMR 1} else {set CONFIG_FPUFT_TMR 0} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ&15]} else {set CONFIG_RF_ERRINJ [expr $CONFIG_RF_ERRINJ|16]} @@ -2856,14 +3171,14 @@ proc menu12 {w title} { bool $w.config.f 12 0 "Serial Debug Link (RS232) " CONFIG_DSU_UART bool $w.config.f 12 1 "JTAG Debug Link" CONFIG_DSU_JTAG bool $w.config.f 12 2 "Ethernet Debug Communication Link (EDCL)" CONFIG_DSU_ETH - global tmpvar_26 - minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_26 CONFIG_DSU_ETHSZ1 + global tmpvar_28 + minimenu $w.config.f 12 3 "Ethernet/AHB bridge buffer size (kbytes)" tmpvar_28 CONFIG_DSU_ETHSZ1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Ethernet/AHB bridge buffer size (kbytes)\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_26 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_26 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_26 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_26 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_26 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_28 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_28 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_28 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" menusplit $w $w.config.f.x3.x.menu 5 hex $w.config.f 12 4 "MSB 16 bits of IP address (hex) " CONFIG_DSU_IPMSB hex $w.config.f 12 5 "LSB 16 bits of IP address (hex) " CONFIG_DSU_IPLSB @@ -2937,17 +3252,17 @@ proc update_define_menu12 {} { global CONFIG_DSU_ETH if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH&15]} else {set CONFIG_DSU_ETH [expr $CONFIG_DSU_ETH|16]} - global tmpvar_26 + global tmpvar_28 global CONFIG_DSU_ETHSZ1 - if {$tmpvar_26 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} + if {$tmpvar_28 == "1"} then {set CONFIG_DSU_ETHSZ1 1} else {set CONFIG_DSU_ETHSZ1 0} global CONFIG_DSU_ETHSZ2 - if {$tmpvar_26 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} + if {$tmpvar_28 == "2"} then {set CONFIG_DSU_ETHSZ2 1} else {set CONFIG_DSU_ETHSZ2 0} global CONFIG_DSU_ETHSZ4 - if {$tmpvar_26 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} + if {$tmpvar_28 == "4"} then {set CONFIG_DSU_ETHSZ4 1} else {set CONFIG_DSU_ETHSZ4 0} global CONFIG_DSU_ETHSZ8 - if {$tmpvar_26 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} + if {$tmpvar_28 == "8"} then {set CONFIG_DSU_ETHSZ8 1} else {set CONFIG_DSU_ETHSZ8 0} global CONFIG_DSU_ETHSZ16 - if {$tmpvar_26 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} + if {$tmpvar_28 == "16"} then {set CONFIG_DSU_ETHSZ16 1} else {set CONFIG_DSU_ETHSZ16 0} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {validate_hex CONFIG_DSU_IPMSB "$CONFIG_DSU_IPMSB" C0A8} global CONFIG_DSU_IPLSB @@ -3226,32 +3541,32 @@ proc menu15 {w title} { int $w.config.f 15 3 "RAM waitstates" CONFIG_SRCTRL_RAMWS int $w.config.f 15 4 "IO waitstates" CONFIG_SRCTRL_IOWS bool $w.config.f 15 5 "Use read-modify-write for sub-word writes " CONFIG_SRCTRL_RMW - global tmpvar_27 - minimenu $w.config.f 15 6 "SRAM banks" tmpvar_27 CONFIG_SRCTRL_SRBANKS1 + global tmpvar_29 + minimenu $w.config.f 15 6 "SRAM banks" tmpvar_29 CONFIG_SRCTRL_SRBANKS1 menu $w.config.f.x6.x.menu -tearoffcommand "menutitle \"SRAM banks\"" - $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_27 -value "1" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_27 -value "2" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_27 -value "3" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_27 -value "4" -command "update_active" - $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_27 -value "5" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "3" -variable tmpvar_29 -value "3" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" + $w.config.f.x6.x.menu add radiobutton -label "5" -variable tmpvar_29 -value "5" -command "update_active" menusplit $w $w.config.f.x6.x.menu 5 - global tmpvar_28 - minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_28 CONFIG_SRCTRL_BANKSZ0 + global tmpvar_30 + minimenu $w.config.f 15 7 "SRAM bank size (kb) (0 for programmable)" tmpvar_30 CONFIG_SRCTRL_BANKSZ0 menu $w.config.f.x7.x.menu -tearoffcommand "menutitle \"SRAM bank size (kb) (0 for programmable)\"" - $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_28 -value "8" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_28 -value "16" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_28 -value "32" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_28 -value "64" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_28 -value "128" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_28 -value "256" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_28 -value "512" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_28 -value "1024" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_28 -value "2048" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_28 -value "4096" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_28 -value "8192" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_28 -value "16384" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_28 -value "32768" -command "update_active" - $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_28 -value "65536" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "128" -variable tmpvar_30 -value "128" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "256" -variable tmpvar_30 -value "256" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "512" -variable tmpvar_30 -value "512" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "1024" -variable tmpvar_30 -value "1024" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "2048" -variable tmpvar_30 -value "2048" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "4096" -variable tmpvar_30 -value "4096" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "8192" -variable tmpvar_30 -value "8192" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "16384" -variable tmpvar_30 -value "16384" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "32768" -variable tmpvar_30 -value "32768" -command "update_active" + $w.config.f.x7.x.menu add radiobutton -label "65536" -variable tmpvar_30 -value "65536" -command "update_active" menusplit $w $w.config.f.x7.x.menu 14 int $w.config.f 15 8 "PROM bank select address bit (0 - 28)" CONFIG_SRCTRL_ROMASEL @@ -3327,46 +3642,46 @@ proc update_define_menu15 {} { global CONFIG_SRCTRL_RMW if {($CONFIG_SRCTRL == 1)} then { set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW&15]} else {set CONFIG_SRCTRL_RMW [expr $CONFIG_SRCTRL_RMW|16]} - global tmpvar_27 + global tmpvar_29 global CONFIG_SRCTRL_SRBANKS1 - if {$tmpvar_27 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} + if {$tmpvar_29 == "1"} then {set CONFIG_SRCTRL_SRBANKS1 1} else {set CONFIG_SRCTRL_SRBANKS1 0} global CONFIG_SRCTRL_SRBANKS2 - if {$tmpvar_27 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} + if {$tmpvar_29 == "2"} then {set CONFIG_SRCTRL_SRBANKS2 1} else {set CONFIG_SRCTRL_SRBANKS2 0} global CONFIG_SRCTRL_SRBANKS3 - if {$tmpvar_27 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} + if {$tmpvar_29 == "3"} then {set CONFIG_SRCTRL_SRBANKS3 1} else {set CONFIG_SRCTRL_SRBANKS3 0} global CONFIG_SRCTRL_SRBANKS4 - if {$tmpvar_27 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} + if {$tmpvar_29 == "4"} then {set CONFIG_SRCTRL_SRBANKS4 1} else {set CONFIG_SRCTRL_SRBANKS4 0} global CONFIG_SRCTRL_SRBANKS5 - if {$tmpvar_27 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} - global tmpvar_28 + if {$tmpvar_29 == "5"} then {set CONFIG_SRCTRL_SRBANKS5 1} else {set CONFIG_SRCTRL_SRBANKS5 0} + global tmpvar_30 global CONFIG_SRCTRL_BANKSZ0 - if {$tmpvar_28 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} + if {$tmpvar_30 == "8"} then {set CONFIG_SRCTRL_BANKSZ0 1} else {set CONFIG_SRCTRL_BANKSZ0 0} global CONFIG_SRCTRL_BANKSZ1 - if {$tmpvar_28 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} + if {$tmpvar_30 == "16"} then {set CONFIG_SRCTRL_BANKSZ1 1} else {set CONFIG_SRCTRL_BANKSZ1 0} global CONFIG_SRCTRL_BANKSZ2 - if {$tmpvar_28 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} + if {$tmpvar_30 == "32"} then {set CONFIG_SRCTRL_BANKSZ2 1} else {set CONFIG_SRCTRL_BANKSZ2 0} global CONFIG_SRCTRL_BANKSZ3 - if {$tmpvar_28 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} + if {$tmpvar_30 == "64"} then {set CONFIG_SRCTRL_BANKSZ3 1} else {set CONFIG_SRCTRL_BANKSZ3 0} global CONFIG_SRCTRL_BANKSZ4 - if {$tmpvar_28 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} + if {$tmpvar_30 == "128"} then {set CONFIG_SRCTRL_BANKSZ4 1} else {set CONFIG_SRCTRL_BANKSZ4 0} global CONFIG_SRCTRL_BANKSZ5 - if {$tmpvar_28 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} + if {$tmpvar_30 == "256"} then {set CONFIG_SRCTRL_BANKSZ5 1} else {set CONFIG_SRCTRL_BANKSZ5 0} global CONFIG_SRCTRL_BANKSZ6 - if {$tmpvar_28 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} + if {$tmpvar_30 == "512"} then {set CONFIG_SRCTRL_BANKSZ6 1} else {set CONFIG_SRCTRL_BANKSZ6 0} global CONFIG_SRCTRL_BANKSZ7 - if {$tmpvar_28 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} + if {$tmpvar_30 == "1024"} then {set CONFIG_SRCTRL_BANKSZ7 1} else {set CONFIG_SRCTRL_BANKSZ7 0} global CONFIG_SRCTRL_BANKSZ8 - if {$tmpvar_28 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} + if {$tmpvar_30 == "2048"} then {set CONFIG_SRCTRL_BANKSZ8 1} else {set CONFIG_SRCTRL_BANKSZ8 0} global CONFIG_SRCTRL_BANKSZ9 - if {$tmpvar_28 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} + if {$tmpvar_30 == "4096"} then {set CONFIG_SRCTRL_BANKSZ9 1} else {set CONFIG_SRCTRL_BANKSZ9 0} global CONFIG_SRCTRL_BANKSZ10 - if {$tmpvar_28 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} + if {$tmpvar_30 == "8192"} then {set CONFIG_SRCTRL_BANKSZ10 1} else {set CONFIG_SRCTRL_BANKSZ10 0} global CONFIG_SRCTRL_BANKSZ11 - if {$tmpvar_28 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} + if {$tmpvar_30 == "16384"} then {set CONFIG_SRCTRL_BANKSZ11 1} else {set CONFIG_SRCTRL_BANKSZ11 0} global CONFIG_SRCTRL_BANKSZ12 - if {$tmpvar_28 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} + if {$tmpvar_30 == "32768"} then {set CONFIG_SRCTRL_BANKSZ12 1} else {set CONFIG_SRCTRL_BANKSZ12 0} global CONFIG_SRCTRL_BANKSZ13 - if {$tmpvar_28 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} + if {$tmpvar_30 == "65536"} then {set CONFIG_SRCTRL_BANKSZ13 1} else {set CONFIG_SRCTRL_BANKSZ13 0} global CONFIG_SRCTRL_ROMASEL if {($CONFIG_SRCTRL == 1)} then {validate_int CONFIG_SRCTRL_ROMASEL "$CONFIG_SRCTRL_ROMASEL" 19} } @@ -3718,16 +4033,16 @@ proc menu18 {w title} { hex $w.config.f 18 1 "ROM start address (haddr\[31:20\]) " CONFIG_AHBROM_START bool $w.config.f 18 2 "Pipelined ROM access " CONFIG_AHBROM_PIPE bool $w.config.f 18 3 "On-chip AHB RAM " CONFIG_AHBRAM_ENABLE - global tmpvar_29 - minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_29 CONFIG_AHBRAM_SZ1 + global tmpvar_31 + minimenu $w.config.f 18 4 "AHB RAM size (Kbyte)" tmpvar_31 CONFIG_AHBRAM_SZ1 menu $w.config.f.x4.x.menu -tearoffcommand "menutitle \"AHB RAM size (Kbyte)\"" - $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_29 -value "1" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_29 -value "2" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_29 -value "4" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_29 -value "8" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_29 -value "16" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_29 -value "32" -command "update_active" - $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_29 -value "64" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "1" -variable tmpvar_31 -value "1" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "2" -variable tmpvar_31 -value "2" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "4" -variable tmpvar_31 -value "4" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" + $w.config.f.x4.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" menusplit $w $w.config.f.x4.x.menu 7 hex $w.config.f 18 5 "RAM start address (haddr\[31:20\]) " CONFIG_AHBRAM_START @@ -3789,21 +4104,21 @@ proc update_define_menu18 {} { global CONFIG_AHBROM_PIPE if {($CONFIG_AHBROM_ENABLE == 1)} then { set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE&15]} else {set CONFIG_AHBROM_PIPE [expr $CONFIG_AHBROM_PIPE|16]} - global tmpvar_29 + global tmpvar_31 global CONFIG_AHBRAM_SZ1 - if {$tmpvar_29 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} + if {$tmpvar_31 == "1"} then {set CONFIG_AHBRAM_SZ1 1} else {set CONFIG_AHBRAM_SZ1 0} global CONFIG_AHBRAM_SZ2 - if {$tmpvar_29 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} + if {$tmpvar_31 == "2"} then {set CONFIG_AHBRAM_SZ2 1} else {set CONFIG_AHBRAM_SZ2 0} global CONFIG_AHBRAM_SZ4 - if {$tmpvar_29 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} + if {$tmpvar_31 == "4"} then {set CONFIG_AHBRAM_SZ4 1} else {set CONFIG_AHBRAM_SZ4 0} global CONFIG_AHBRAM_SZ8 - if {$tmpvar_29 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} + if {$tmpvar_31 == "8"} then {set CONFIG_AHBRAM_SZ8 1} else {set CONFIG_AHBRAM_SZ8 0} global CONFIG_AHBRAM_SZ16 - if {$tmpvar_29 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} + if {$tmpvar_31 == "16"} then {set CONFIG_AHBRAM_SZ16 1} else {set CONFIG_AHBRAM_SZ16 0} global CONFIG_AHBRAM_SZ32 - if {$tmpvar_29 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} + if {$tmpvar_31 == "32"} then {set CONFIG_AHBRAM_SZ32 1} else {set CONFIG_AHBRAM_SZ32 0} global CONFIG_AHBRAM_SZ64 - if {$tmpvar_29 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} + if {$tmpvar_31 == "64"} then {set CONFIG_AHBRAM_SZ64 1} else {set CONFIG_AHBRAM_SZ64 0} global CONFIG_AHBRAM_ENABLE global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {validate_hex CONFIG_AHBRAM_START "$CONFIG_AHBRAM_START" A00} @@ -3863,14 +4178,14 @@ proc menu19 {w title} { bool $w.config.f 19 0 "Gaisler Research 10/100/1000 Mbit Ethernet MAC " CONFIG_GRETH_ENABLE bool $w.config.f 19 1 "Enable 1000 Mbit support " CONFIG_GRETH_GIGA - global tmpvar_30 - minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_30 CONFIG_GRETH_FIFO4 + global tmpvar_32 + minimenu $w.config.f 19 2 "AHB FIFO size (words) " tmpvar_32 CONFIG_GRETH_FIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB FIFO size (words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_30 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_30 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_30 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_30 -value "32" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_30 -value "64" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_32 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_32 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_32 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_32 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "64" -variable tmpvar_32 -value "64" -command "update_active" menusplit $w $w.config.f.x2.x.menu 5 @@ -3924,17 +4239,17 @@ proc update_define_menu19 {} { global CONFIG_GRETH_GIGA if {($CONFIG_GRETH_ENABLE == 1)} then { set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA&15]} else {set CONFIG_GRETH_GIGA [expr $CONFIG_GRETH_GIGA|16]} - global tmpvar_30 + global tmpvar_32 global CONFIG_GRETH_FIFO4 - if {$tmpvar_30 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} + if {$tmpvar_32 == "4"} then {set CONFIG_GRETH_FIFO4 1} else {set CONFIG_GRETH_FIFO4 0} global CONFIG_GRETH_FIFO8 - if {$tmpvar_30 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} + if {$tmpvar_32 == "8"} then {set CONFIG_GRETH_FIFO8 1} else {set CONFIG_GRETH_FIFO8 0} global CONFIG_GRETH_FIFO16 - if {$tmpvar_30 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} + if {$tmpvar_32 == "16"} then {set CONFIG_GRETH_FIFO16 1} else {set CONFIG_GRETH_FIFO16 0} global CONFIG_GRETH_FIFO32 - if {$tmpvar_30 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} + if {$tmpvar_32 == "32"} then {set CONFIG_GRETH_FIFO32 1} else {set CONFIG_GRETH_FIFO32 0} global CONFIG_GRETH_FIFO64 - if {$tmpvar_30 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} + if {$tmpvar_32 == "64"} then {set CONFIG_GRETH_FIFO64 1} else {set CONFIG_GRETH_FIFO64 0} } @@ -4125,29 +4440,29 @@ proc menu21 {w title} { bool $w.config.f 21 2 "PCI DMA controller " CONFIG_PCI_MASTER_TARGET_DMA hex $w.config.f 21 3 "PCI vendor ID" CONFIG_PCI_VENDORID hex $w.config.f 21 4 "PCI device ID" CONFIG_PCI_DEVICEID - global tmpvar_31 - minimenu $w.config.f 21 5 "PCI FIFO depth" tmpvar_31 CONFIG_PCI_FIFO0 + global tmpvar_33 + minimenu $w.config.f 21 5 "PCI FIFO depth" tmpvar_33 CONFIG_PCI_FIFO0 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"PCI FIFO depth\"" - $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_31 -value "None" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_31 -value "8" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_31 -value "16" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_31 -value "32" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_31 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_31 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "None" -variable tmpvar_33 -value "None" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_33 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_33 -value "128" -command "update_active" menusplit $w $w.config.f.x5.x.menu 6 hex $w.config.f 21 6 "PCI initiator address (haddr\[31:20\]) " CONFIG_PCI_HADDR bool $w.config.f 21 7 "PCI arbiter " CONFIG_PCI_ARBITER bool $w.config.f 21 8 "PCI arbiter APB interface " CONFIG_PCI_ARBITER_APB int $w.config.f 21 9 "Number of PCI REQ/GNT pairs" CONFIG_PCI_ARBITER_NREQ bool $w.config.f 21 10 "Enable PCI trace buffer " CONFIG_PCI_TRACE - global tmpvar_32 - minimenu $w.config.f 21 11 "PCI trace buffer depth" tmpvar_32 CONFIG_PCI_TRACE256 + global tmpvar_34 + minimenu $w.config.f 21 11 "PCI trace buffer depth" tmpvar_34 CONFIG_PCI_TRACE256 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"PCI trace buffer depth\"" - $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_32 -value "256" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_32 -value "512" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_32 -value "1024" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_32 -value "2048" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_32 -value "4096" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "256" -variable tmpvar_34 -value "256" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "512" -variable tmpvar_34 -value "512" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1024" -variable tmpvar_34 -value "1024" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2048" -variable tmpvar_34 -value "2048" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "4096" -variable tmpvar_34 -value "4096" -command "update_active" menusplit $w $w.config.f.x11.x.menu 5 @@ -4231,19 +4546,19 @@ proc update_define_menu21 {} { if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_VENDORID "$CONFIG_PCI_VENDORID" 1AC8} global CONFIG_PCI_DEVICEID if {($CONFIG_PCI_SIMPLE_TARGET == 1 || $CONFIG_PCI_MASTER_TARGET == 1 || $CONFIG_PCI_ACTEL == 1)} then {validate_hex CONFIG_PCI_DEVICEID "$CONFIG_PCI_DEVICEID" 0054} - global tmpvar_31 + global tmpvar_33 global CONFIG_PCI_FIFO0 - if {$tmpvar_31 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} + if {$tmpvar_33 == "None"} then {set CONFIG_PCI_FIFO0 1} else {set CONFIG_PCI_FIFO0 0} global CONFIG_PCI_FIFO8 - if {$tmpvar_31 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} + if {$tmpvar_33 == "8"} then {set CONFIG_PCI_FIFO8 1} else {set CONFIG_PCI_FIFO8 0} global CONFIG_PCI_FIFO16 - if {$tmpvar_31 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} + if {$tmpvar_33 == "16"} then {set CONFIG_PCI_FIFO16 1} else {set CONFIG_PCI_FIFO16 0} global CONFIG_PCI_FIFO32 - if {$tmpvar_31 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} + if {$tmpvar_33 == "32"} then {set CONFIG_PCI_FIFO32 1} else {set CONFIG_PCI_FIFO32 0} global CONFIG_PCI_FIFO64 - if {$tmpvar_31 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} + if {$tmpvar_33 == "64"} then {set CONFIG_PCI_FIFO64 1} else {set CONFIG_PCI_FIFO64 0} global CONFIG_PCI_FIFO128 - if {$tmpvar_31 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} + if {$tmpvar_33 == "128"} then {set CONFIG_PCI_FIFO128 1} else {set CONFIG_PCI_FIFO128 0} global CONFIG_PCI_HADDR 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} global CONFIG_PCI_ARBITER @@ -4252,17 +4567,17 @@ proc update_define_menu21 {} { set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB&15]} else {set CONFIG_PCI_ARBITER_APB [expr $CONFIG_PCI_ARBITER_APB|16]} global CONFIG_PCI_ARBITER_NREQ if {($CONFIG_PCI_ARBITER == 1)} then {validate_int CONFIG_PCI_ARBITER_NREQ "$CONFIG_PCI_ARBITER_NREQ" 4} - global tmpvar_32 + global tmpvar_34 global CONFIG_PCI_TRACE256 - if {$tmpvar_32 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} + if {$tmpvar_34 == "256"} then {set CONFIG_PCI_TRACE256 1} else {set CONFIG_PCI_TRACE256 0} global CONFIG_PCI_TRACE512 - if {$tmpvar_32 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} + if {$tmpvar_34 == "512"} then {set CONFIG_PCI_TRACE512 1} else {set CONFIG_PCI_TRACE512 0} global CONFIG_PCI_TRACE1024 - if {$tmpvar_32 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} + if {$tmpvar_34 == "1024"} then {set CONFIG_PCI_TRACE1024 1} else {set CONFIG_PCI_TRACE1024 0} global CONFIG_PCI_TRACE2048 - if {$tmpvar_32 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} + if {$tmpvar_34 == "2048"} then {set CONFIG_PCI_TRACE2048 1} else {set CONFIG_PCI_TRACE2048 0} global CONFIG_PCI_TRACE4096 - if {$tmpvar_32 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} + if {$tmpvar_34 == "4096"} then {set CONFIG_PCI_TRACE4096 1} else {set CONFIG_PCI_TRACE4096 0} } @@ -4319,57 +4634,57 @@ proc menu22 {w title} { bool $w.config.f 22 0 "Enable Spacewire links " CONFIG_SPW_ENABLE int $w.config.f 22 1 "Number of links (1 - 3)" CONFIG_SPW_NUM - global tmpvar_33 - minimenu $w.config.f 22 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_33 CONFIG_SPW_AHBFIFO4 + global tmpvar_35 + minimenu $w.config.f 22 2 "AHB RX/TX FIFO size (32-bit words) " tmpvar_35 CONFIG_SPW_AHBFIFO4 menu $w.config.f.x2.x.menu -tearoffcommand "menutitle \"AHB RX/TX FIFO size (32-bit words) \"" - $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_33 -value "4" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_33 -value "8" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_33 -value "16" -command "update_active" - $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_33 -value "32" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "4" -variable tmpvar_35 -value "4" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "8" -variable tmpvar_35 -value "8" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "16" -variable tmpvar_35 -value "16" -command "update_active" + $w.config.f.x2.x.menu add radiobutton -label "32" -variable tmpvar_35 -value "32" -command "update_active" menusplit $w $w.config.f.x2.x.menu 4 - global tmpvar_34 - minimenu $w.config.f 22 3 "Receiver FIFO size (bytes) " tmpvar_34 CONFIG_SPW_RXFIFO16 + global tmpvar_36 + minimenu $w.config.f 22 3 "Receiver FIFO size (bytes) " tmpvar_36 CONFIG_SPW_RXFIFO16 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"Receiver FIFO size (bytes) \"" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_34 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_34 -value "32" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_34 -value "64" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_36 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_36 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "64" -variable tmpvar_36 -value "64" -command "update_active" menusplit $w $w.config.f.x3.x.menu 3 bool $w.config.f 22 4 "Enable RMAP protocol " CONFIG_SPW_RMAP - global tmpvar_35 - minimenu $w.config.f 22 5 "RMAP buffer size (bytes) " tmpvar_35 CONFIG_SPW_RMAPBUF2 + global tmpvar_37 + minimenu $w.config.f 22 5 "RMAP buffer size (bytes) " tmpvar_37 CONFIG_SPW_RMAPBUF2 menu $w.config.f.x5.x.menu -tearoffcommand "menutitle \"RMAP buffer size (bytes) \"" - $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_35 -value "64" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_35 -value "128" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_35 -value "192" -command "update_active" - $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_35 -value "256" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "64" -variable tmpvar_37 -value "64" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "128" -variable tmpvar_37 -value "128" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "192" -variable tmpvar_37 -value "192" -command "update_active" + $w.config.f.x5.x.menu add radiobutton -label "256" -variable tmpvar_37 -value "256" -command "update_active" menusplit $w $w.config.f.x5.x.menu 4 bool $w.config.f 22 6 "Enable RMAP CRC check " CONFIG_SPW_RMAPCRC bool $w.config.f 22 7 "Enable Rx unaligned transfers " CONFIG_SPW_RXUNAL bool $w.config.f 22 8 "Spacewire FIFO protection " CONFIG_SPW_FT bool $w.config.f 22 9 "Use GRSPWC netlist " CONFIG_SPW_NETLIST int $w.config.f 22 10 "Number of ports (1 - 2)" CONFIG_SPW_PORTS - global tmpvar_36 - minimenu $w.config.f 22 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_36 CONFIG_SPW_GRSPW1 + global tmpvar_38 + minimenu $w.config.f 22 11 "Select GRSPW core (GRSPW1/GRSPW2) " tmpvar_38 CONFIG_SPW_GRSPW1 menu $w.config.f.x11.x.menu -tearoffcommand "menutitle \"Select GRSPW core (GRSPW1/GRSPW2) \"" - $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_36 -value "1" -command "update_active" - $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_36 -value "2" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "1" -variable tmpvar_38 -value "1" -command "update_active" + $w.config.f.x11.x.menu add radiobutton -label "2" -variable tmpvar_38 -value "2" -command "update_active" menusplit $w $w.config.f.x11.x.menu 2 int $w.config.f 22 12 "Number of DMA channels (1 - 4)" CONFIG_SPW_DMACHAN bool $w.config.f 22 13 "Receiver and transmitter uses same clock " CONFIG_SPW_RTSAME - global tmpvar_37 - minimenu $w.config.f 22 14 "Select receiver clock type " tmpvar_37 CONFIG_SPW_RX_SDR + global tmpvar_39 + minimenu $w.config.f 22 14 "Select receiver clock type " tmpvar_39 CONFIG_SPW_RX_SDR menu $w.config.f.x14.x.menu -tearoffcommand "menutitle \"Select receiver clock type \"" - $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_37 -value "SDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_37 -value "DDR" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_37 -value "Xor" -command "update_active" - $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_37 -value "Aeroflex" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "SDR" -variable tmpvar_39 -value "SDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "DDR" -variable tmpvar_39 -value "DDR" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Xor" -variable tmpvar_39 -value "Xor" -command "update_active" + $w.config.f.x14.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_39 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x14.x.menu 4 - global tmpvar_38 - minimenu $w.config.f 22 15 "Select transmitter clock type " tmpvar_38 CONFIG_SPW_TX_SDR + global tmpvar_40 + minimenu $w.config.f 22 15 "Select transmitter clock type " tmpvar_40 CONFIG_SPW_TX_SDR menu $w.config.f.x15.x.menu -tearoffcommand "menutitle \"Select transmitter clock type \"" - $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_38 -value "SDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_38 -value "DDR" -command "update_active" - $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_38 -value "Aeroflex" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "SDR" -variable tmpvar_40 -value "SDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "DDR" -variable tmpvar_40 -value "DDR" -command "update_active" + $w.config.f.x15.x.menu add radiobutton -label "Aeroflex" -variable tmpvar_40 -value "Aeroflex" -command "update_active" menusplit $w $w.config.f.x15.x.menu 3 @@ -4449,34 +4764,34 @@ proc update_define_menu22 {} { global CONFIG_SPW_ENABLE global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_NUM "$CONFIG_SPW_NUM" 1} - global tmpvar_33 + global tmpvar_35 global CONFIG_SPW_AHBFIFO4 - if {$tmpvar_33 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} + if {$tmpvar_35 == "4"} then {set CONFIG_SPW_AHBFIFO4 1} else {set CONFIG_SPW_AHBFIFO4 0} global CONFIG_SPW_AHBFIFO8 - if {$tmpvar_33 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} + if {$tmpvar_35 == "8"} then {set CONFIG_SPW_AHBFIFO8 1} else {set CONFIG_SPW_AHBFIFO8 0} global CONFIG_SPW_AHBFIFO16 - if {$tmpvar_33 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} + if {$tmpvar_35 == "16"} then {set CONFIG_SPW_AHBFIFO16 1} else {set CONFIG_SPW_AHBFIFO16 0} global CONFIG_SPW_AHBFIFO32 - if {$tmpvar_33 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} - global tmpvar_34 + if {$tmpvar_35 == "32"} then {set CONFIG_SPW_AHBFIFO32 1} else {set CONFIG_SPW_AHBFIFO32 0} + global tmpvar_36 global CONFIG_SPW_RXFIFO16 - if {$tmpvar_34 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} + if {$tmpvar_36 == "16"} then {set CONFIG_SPW_RXFIFO16 1} else {set CONFIG_SPW_RXFIFO16 0} global CONFIG_SPW_RXFIFO32 - if {$tmpvar_34 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} + if {$tmpvar_36 == "32"} then {set CONFIG_SPW_RXFIFO32 1} else {set CONFIG_SPW_RXFIFO32 0} global CONFIG_SPW_RXFIFO64 - if {$tmpvar_34 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} + if {$tmpvar_36 == "64"} then {set CONFIG_SPW_RXFIFO64 1} else {set CONFIG_SPW_RXFIFO64 0} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP&15]} else {set CONFIG_SPW_RMAP [expr $CONFIG_SPW_RMAP|16]} - global tmpvar_35 + global tmpvar_37 global CONFIG_SPW_RMAPBUF2 - if {$tmpvar_35 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} + if {$tmpvar_37 == "64"} then {set CONFIG_SPW_RMAPBUF2 1} else {set CONFIG_SPW_RMAPBUF2 0} global CONFIG_SPW_RMAPBUF4 - if {$tmpvar_35 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} + if {$tmpvar_37 == "128"} then {set CONFIG_SPW_RMAPBUF4 1} else {set CONFIG_SPW_RMAPBUF4 0} global CONFIG_SPW_RMAPBUF6 - if {$tmpvar_35 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} + if {$tmpvar_37 == "192"} then {set CONFIG_SPW_RMAPBUF6 1} else {set CONFIG_SPW_RMAPBUF6 0} global CONFIG_SPW_RMAPBUF8 - if {$tmpvar_35 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} + if {$tmpvar_37 == "256"} then {set CONFIG_SPW_RMAPBUF8 1} else {set CONFIG_SPW_RMAPBUF8 0} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then { set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC&15]} else {set CONFIG_SPW_RMAPCRC [expr $CONFIG_SPW_RMAPCRC|16]} @@ -4491,32 +4806,32 @@ proc update_define_menu22 {} { set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST&15]} else {set CONFIG_SPW_NETLIST [expr $CONFIG_SPW_NETLIST|16]} global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {validate_int CONFIG_SPW_PORTS "$CONFIG_SPW_PORTS" 1} - global tmpvar_36 + global tmpvar_38 global CONFIG_SPW_GRSPW1 - if {$tmpvar_36 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} + if {$tmpvar_38 == "1"} then {set CONFIG_SPW_GRSPW1 1} else {set CONFIG_SPW_GRSPW1 0} global CONFIG_SPW_GRSPW2 - if {$tmpvar_36 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} + if {$tmpvar_38 == "2"} then {set CONFIG_SPW_GRSPW2 1} else {set CONFIG_SPW_GRSPW2 0} global CONFIG_SPW_DMACHAN if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {validate_int CONFIG_SPW_DMACHAN "$CONFIG_SPW_DMACHAN" 1} global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME&15]} else {set CONFIG_SPW_RTSAME [expr $CONFIG_SPW_RTSAME|16]} - global tmpvar_37 + global tmpvar_39 global CONFIG_SPW_RX_SDR - if {$tmpvar_37 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} + if {$tmpvar_39 == "SDR"} then {set CONFIG_SPW_RX_SDR 1} else {set CONFIG_SPW_RX_SDR 0} global CONFIG_SPW_RX_DDR - if {$tmpvar_37 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} + if {$tmpvar_39 == "DDR"} then {set CONFIG_SPW_RX_DDR 1} else {set CONFIG_SPW_RX_DDR 0} global CONFIG_SPW_RX_XOR - if {$tmpvar_37 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} + if {$tmpvar_39 == "Xor"} then {set CONFIG_SPW_RX_XOR 1} else {set CONFIG_SPW_RX_XOR 0} global CONFIG_SPW_RX_AFLEX - if {$tmpvar_37 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} - global tmpvar_38 + if {$tmpvar_39 == "Aeroflex"} then {set CONFIG_SPW_RX_AFLEX 1} else {set CONFIG_SPW_RX_AFLEX 0} + global tmpvar_40 global CONFIG_SPW_TX_SDR - if {$tmpvar_38 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} + if {$tmpvar_40 == "SDR"} then {set CONFIG_SPW_TX_SDR 1} else {set CONFIG_SPW_TX_SDR 0} global CONFIG_SPW_TX_DDR - if {$tmpvar_38 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} + if {$tmpvar_40 == "DDR"} then {set CONFIG_SPW_TX_DDR 1} else {set CONFIG_SPW_TX_DDR 0} global CONFIG_SPW_TX_AFLEX - if {$tmpvar_38 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} + if {$tmpvar_40 == "Aeroflex"} then {set CONFIG_SPW_TX_AFLEX 1} else {set CONFIG_SPW_TX_AFLEX 0} } @@ -4572,26 +4887,26 @@ proc menu23 {w title} { bool $w.config.f 23 0 "Enable console UART " CONFIG_UART1_ENABLE - global tmpvar_39 - minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_39 CONFIG_UA1_FIFO1 + global tmpvar_41 + minimenu $w.config.f 23 1 "UART1 FIFO depth" tmpvar_41 CONFIG_UA1_FIFO1 menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"UART1 FIFO depth\"" - $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_39 -value "1" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_39 -value "2" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_39 -value "4" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_39 -value "8" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_39 -value "16" -command "update_active" - $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_39 -value "32" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "1" -variable tmpvar_41 -value "1" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "2" -variable tmpvar_41 -value "2" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "4" -variable tmpvar_41 -value "4" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "8" -variable tmpvar_41 -value "8" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "16" -variable tmpvar_41 -value "16" -command "update_active" + $w.config.f.x1.x.menu add radiobutton -label "32" -variable tmpvar_41 -value "32" -command "update_active" menusplit $w $w.config.f.x1.x.menu 6 bool $w.config.f 23 2 "Enable secondary UART " CONFIG_UART2_ENABLE - global tmpvar_40 - minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_40 CONFIG_UA2_FIFO1 + global tmpvar_42 + minimenu $w.config.f 23 3 "UART2 FIFO depth" tmpvar_42 CONFIG_UA2_FIFO1 menu $w.config.f.x3.x.menu -tearoffcommand "menutitle \"UART2 FIFO depth\"" - $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_40 -value "1" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_40 -value "2" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_40 -value "4" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_40 -value "8" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_40 -value "16" -command "update_active" - $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_40 -value "32" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "1" -variable tmpvar_42 -value "1" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "2" -variable tmpvar_42 -value "2" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "4" -variable tmpvar_42 -value "4" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "8" -variable tmpvar_42 -value "8" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "16" -variable tmpvar_42 -value "16" -command "update_active" + $w.config.f.x3.x.menu add radiobutton -label "32" -variable tmpvar_42 -value "32" -command "update_active" menusplit $w $w.config.f.x3.x.menu 6 bool $w.config.f 23 4 "Enable LEON3 interrupt controller " CONFIG_IRQ3_ENABLE bool $w.config.f 23 5 "Enable secondary interrupts " CONFIG_IRQ3_SEC @@ -4682,32 +4997,32 @@ proc update_menu23 {} { proc update_define_menu23 {} { update_define_mainmenu global CONFIG_MODULES - global tmpvar_39 + global tmpvar_41 global CONFIG_UA1_FIFO1 - if {$tmpvar_39 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} + if {$tmpvar_41 == "1"} then {set CONFIG_UA1_FIFO1 1} else {set CONFIG_UA1_FIFO1 0} global CONFIG_UA1_FIFO2 - if {$tmpvar_39 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} + if {$tmpvar_41 == "2"} then {set CONFIG_UA1_FIFO2 1} else {set CONFIG_UA1_FIFO2 0} global CONFIG_UA1_FIFO4 - if {$tmpvar_39 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} + if {$tmpvar_41 == "4"} then {set CONFIG_UA1_FIFO4 1} else {set CONFIG_UA1_FIFO4 0} global CONFIG_UA1_FIFO8 - if {$tmpvar_39 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} + if {$tmpvar_41 == "8"} then {set CONFIG_UA1_FIFO8 1} else {set CONFIG_UA1_FIFO8 0} global CONFIG_UA1_FIFO16 - if {$tmpvar_39 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} + if {$tmpvar_41 == "16"} then {set CONFIG_UA1_FIFO16 1} else {set CONFIG_UA1_FIFO16 0} global CONFIG_UA1_FIFO32 - if {$tmpvar_39 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} - global tmpvar_40 + if {$tmpvar_41 == "32"} then {set CONFIG_UA1_FIFO32 1} else {set CONFIG_UA1_FIFO32 0} + global tmpvar_42 global CONFIG_UA2_FIFO1 - if {$tmpvar_40 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} + if {$tmpvar_42 == "1"} then {set CONFIG_UA2_FIFO1 1} else {set CONFIG_UA2_FIFO1 0} global CONFIG_UA2_FIFO2 - if {$tmpvar_40 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} + if {$tmpvar_42 == "2"} then {set CONFIG_UA2_FIFO2 1} else {set CONFIG_UA2_FIFO2 0} global CONFIG_UA2_FIFO4 - if {$tmpvar_40 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} + if {$tmpvar_42 == "4"} then {set CONFIG_UA2_FIFO4 1} else {set CONFIG_UA2_FIFO4 0} global CONFIG_UA2_FIFO8 - if {$tmpvar_40 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} + if {$tmpvar_42 == "8"} then {set CONFIG_UA2_FIFO8 1} else {set CONFIG_UA2_FIFO8 0} global CONFIG_UA2_FIFO16 - if {$tmpvar_40 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} + if {$tmpvar_42 == "16"} then {set CONFIG_UA2_FIFO16 1} else {set CONFIG_UA2_FIFO16 0} global CONFIG_UA2_FIFO32 - if {$tmpvar_40 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} + if {$tmpvar_42 == "32"} then {set CONFIG_UA2_FIFO32 1} else {set CONFIG_UA2_FIFO32 0} global CONFIG_IRQ3_ENABLE global CONFIG_IRQ3_SEC if {($CONFIG_IRQ3_ENABLE == 1)} then { @@ -4877,7 +5192,8 @@ set CONFIG_SYN_SMIC13 0 set CONFIG_SYN_TM65GPLUS 0 set CONFIG_SYN_TSMC90 0 set CONFIG_SYN_UMC 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 set CONFIG_SYN_SPARTAN6 0 @@ -4887,6 +5203,8 @@ set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -4911,6 +5229,7 @@ set CONFIG_CLK_PRO3LPLL 0 set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 @@ -4923,14 +5242,19 @@ set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_LEON3 0 set CONFIG_PROC_NUM 1 +set tmpvar_3 "(not set)" +set CONFIG_LEON3_MIN 0 +set CONFIG_LEON3_GP 0 +set CONFIG_LEON3_HP 0 +set CONFIG_LEON3_CUSTOM 0 set CONFIG_IU_NWINDOWS 8 set CONFIG_IU_V8MULDIV 0 -set tmpvar_3 "(not set)" +set tmpvar_4 "(not set)" set CONFIG_IU_MUL_LATENCY_2 0 set CONFIG_IU_MUL_LATENCY_4 0 set CONFIG_IU_MUL_LATENCY_5 0 set CONFIG_IU_MUL_MAC 0 -set tmpvar_4 "(not set)" +set tmpvar_5 "(not set)" set CONFIG_IU_MUL_INFERRED 0 set CONFIG_IU_MUL_MODGEN 0 set CONFIG_IU_MUL_TECHSPEC 0 @@ -4943,27 +5267,27 @@ set CONFIG_IU_WATCHPOINTS 0 set CONFIG_PWD 0 set CONFIG_IU_RSTADDR 00000 set CONFIG_FPU_ENABLE 0 -set tmpvar_5 "(not set)" +set tmpvar_6 "(not set)" set CONFIG_FPU_GRFPU 0 set CONFIG_FPU_GRFPULITE 0 set CONFIG_FPU_MEIKO 0 -set tmpvar_6 "(not set)" +set tmpvar_7 "(not set)" set CONFIG_FPU_GRFPU_INFMUL 0 set CONFIG_FPU_GRFPU_DWMUL 0 set CONFIG_FPU_GRFPU_MODGEN 0 set CONFIG_FPU_GRFPU_TECHSPEC 0 -set tmpvar_7 "(not set)" +set tmpvar_8 "(not set)" set CONFIG_FPU_GRFPC0 0 set CONFIG_FPU_GRFPC1 0 set CONFIG_FPU_GRFPC2 0 set CONFIG_FPU_NETLIST 0 set CONFIG_ICACHE_ENABLE 0 -set tmpvar_8 "(not set)" +set tmpvar_9 "(not set)" set CONFIG_ICACHE_ASSO1 0 set CONFIG_ICACHE_ASSO2 0 set CONFIG_ICACHE_ASSO3 0 set CONFIG_ICACHE_ASSO4 0 -set tmpvar_9 "(not set)" +set tmpvar_10 "(not set)" set CONFIG_ICACHE_SZ1 0 set CONFIG_ICACHE_SZ2 0 set CONFIG_ICACHE_SZ4 0 @@ -4973,17 +5297,17 @@ set CONFIG_ICACHE_SZ32 0 set CONFIG_ICACHE_SZ64 0 set CONFIG_ICACHE_SZ128 0 set CONFIG_ICACHE_SZ256 0 -set tmpvar_10 "(not set)" +set tmpvar_11 "(not set)" set CONFIG_ICACHE_LZ16 0 set CONFIG_ICACHE_LZ32 0 -set tmpvar_11 "(not set)" +set tmpvar_12 "(not set)" set CONFIG_ICACHE_ALGORND 0 set CONFIG_ICACHE_ALGODIR 0 set CONFIG_ICACHE_ALGOLRR 0 set CONFIG_ICACHE_ALGOLRU 0 set CONFIG_ICACHE_LOCK 0 set CONFIG_ICACHE_LRAM 0 -set tmpvar_12 "(not set)" +set tmpvar_13 "(not set)" set CONFIG_ICACHE_LRAM_SZ1 0 set CONFIG_ICACHE_LRAM_SZ2 0 set CONFIG_ICACHE_LRAM_SZ4 0 @@ -4995,12 +5319,12 @@ set CONFIG_ICACHE_LRAM_SZ128 0 set CONFIG_ICACHE_LRAM_SZ256 0 set CONFIG_ICACHE_LRSTART 8e set CONFIG_DCACHE_ENABLE 0 -set tmpvar_13 "(not set)" +set tmpvar_14 "(not set)" set CONFIG_DCACHE_ASSO1 0 set CONFIG_DCACHE_ASSO2 0 set CONFIG_DCACHE_ASSO3 0 set CONFIG_DCACHE_ASSO4 0 -set tmpvar_14 "(not set)" +set tmpvar_15 "(not set)" set CONFIG_DCACHE_SZ1 0 set CONFIG_DCACHE_SZ2 0 set CONFIG_DCACHE_SZ4 0 @@ -5010,10 +5334,10 @@ set CONFIG_DCACHE_SZ32 0 set CONFIG_DCACHE_SZ64 0 set CONFIG_DCACHE_SZ128 0 set CONFIG_DCACHE_SZ256 0 -set tmpvar_15 "(not set)" +set tmpvar_16 "(not set)" set CONFIG_DCACHE_LZ16 0 set CONFIG_DCACHE_LZ32 0 -set tmpvar_16 "(not set)" +set tmpvar_17 "(not set)" set CONFIG_DCACHE_ALGORND 0 set CONFIG_DCACHE_ALGODIR 0 set CONFIG_DCACHE_ALGOLRR 0 @@ -5024,7 +5348,7 @@ set CONFIG_DCACHE_SNOOP_FAST 0 set CONFIG_DCACHE_SNOOP_SEPTAG 0 set CONFIG_CACHE_FIXED 0 set CONFIG_DCACHE_LRAM 0 -set tmpvar_17 "(not set)" +set tmpvar_18 "(not set)" set CONFIG_DCACHE_LRAM_SZ1 0 set CONFIG_DCACHE_LRAM_SZ2 0 set CONFIG_DCACHE_LRAM_SZ4 0 @@ -5036,26 +5360,28 @@ set CONFIG_DCACHE_LRAM_SZ128 0 set CONFIG_DCACHE_LRAM_SZ256 0 set CONFIG_DCACHE_LRSTART 8f set CONFIG_MMU_ENABLE 0 -set tmpvar_18 "(not set)" +set tmpvar_19 "(not set)" set CONFIG_MMU_COMBINED 0 set CONFIG_MMU_SPLIT 0 -set tmpvar_19 "(not set)" +set tmpvar_20 "(not set)" set CONFIG_MMU_REPARRAY 0 set CONFIG_MMU_REPINCREMENT 0 -set tmpvar_20 "(not set)" +set tmpvar_21 "(not set)" set CONFIG_MMU_I2 0 set CONFIG_MMU_I4 0 set CONFIG_MMU_I8 0 set CONFIG_MMU_I16 0 set CONFIG_MMU_I32 0 -set tmpvar_21 "(not set)" +set CONFIG_MMU_I64 0 +set tmpvar_22 "(not set)" set CONFIG_MMU_D2 0 set CONFIG_MMU_D4 0 set CONFIG_MMU_D8 0 set CONFIG_MMU_D16 0 set CONFIG_MMU_D32 0 +set CONFIG_MMU_D64 0 set CONFIG_MMU_FASTWB 0 -set tmpvar_22 "(not set)" +set tmpvar_23 "(not set)" set CONFIG_MMU_PAGE_4K 0 set CONFIG_MMU_PAGE_8K 0 set CONFIG_MMU_PAGE_16K 0 @@ -5063,27 +5389,31 @@ set CONFIG_MMU_PAGE_32K 0 set CONFIG_MMU_PAGE_PROG 0 set CONFIG_DSU_ENABLE 0 set CONFIG_DSU_ITRACE 0 -set tmpvar_23 "(not set)" +set tmpvar_24 "(not set)" set CONFIG_DSU_ITRACESZ1 0 set CONFIG_DSU_ITRACESZ2 0 set CONFIG_DSU_ITRACESZ4 0 set CONFIG_DSU_ITRACESZ8 0 set CONFIG_DSU_ITRACESZ16 0 set CONFIG_DSU_ATRACE 0 -set tmpvar_24 "(not set)" +set tmpvar_25 "(not set)" set CONFIG_DSU_ATRACESZ1 0 set CONFIG_DSU_ATRACESZ2 0 set CONFIG_DSU_ATRACESZ4 0 set CONFIG_DSU_ATRACESZ8 0 set CONFIG_DSU_ATRACESZ16 0 set CONFIG_LEON3FT_EN 0 -set tmpvar_25 "(not set)" +set tmpvar_26 "(not set)" set CONFIG_IUFT_NONE 0 set CONFIG_IUFT_PAR 0 set CONFIG_IUFT_DMR 0 set CONFIG_IUFT_BCH 0 set CONFIG_IUFT_TMR 0 -set CONFIG_FPUFT_EN 0 +set tmpvar_27 "(not set)" +set CONFIG_FPUFT_NONE 0 +set CONFIG_FPUFT_PAR 0 +set CONFIG_FPUFT_DMR 0 +set CONFIG_FPUFT_TMR 0 set CONFIG_RF_ERRINJ 0 set CONFIG_CACHE_FT_EN 0 set CONFIG_CACHE_ERRINJ 0 @@ -5104,7 +5434,7 @@ set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_DSU_ETH 0 -set tmpvar_26 "(not set)" +set tmpvar_28 "(not set)" set CONFIG_DSU_ETHSZ1 0 set CONFIG_DSU_ETHSZ2 0 set CONFIG_DSU_ETHSZ4 0 @@ -5122,13 +5452,13 @@ set CONFIG_SRCTRL_PROMWS 3 set CONFIG_SRCTRL_RAMWS 0 set CONFIG_SRCTRL_IOWS 0 set CONFIG_SRCTRL_RMW 0 -set tmpvar_27 "(not set)" +set tmpvar_29 "(not set)" set CONFIG_SRCTRL_SRBANKS1 0 set CONFIG_SRCTRL_SRBANKS2 0 set CONFIG_SRCTRL_SRBANKS3 0 set CONFIG_SRCTRL_SRBANKS4 0 set CONFIG_SRCTRL_SRBANKS5 0 -set tmpvar_28 "(not set)" +set tmpvar_30 "(not set)" set CONFIG_SRCTRL_BANKSZ0 0 set CONFIG_SRCTRL_BANKSZ1 0 set CONFIG_SRCTRL_BANKSZ2 0 @@ -5163,7 +5493,7 @@ set CONFIG_AHBROM_ENABLE 0 set CONFIG_AHBROM_START 000 set CONFIG_AHBROM_PIPE 0 set CONFIG_AHBRAM_ENABLE 0 -set tmpvar_29 "(not set)" +set tmpvar_31 "(not set)" set CONFIG_AHBRAM_SZ1 0 set CONFIG_AHBRAM_SZ2 0 set CONFIG_AHBRAM_SZ4 0 @@ -5174,7 +5504,7 @@ set CONFIG_AHBRAM_SZ64 0 set CONFIG_AHBRAM_START A00 set CONFIG_GRETH_ENABLE 0 set CONFIG_GRETH_GIGA 0 -set tmpvar_30 "(not set)" +set tmpvar_32 "(not set)" set CONFIG_GRETH_FIFO4 0 set CONFIG_GRETH_FIFO8 0 set CONFIG_GRETH_FIFO16 0 @@ -5191,7 +5521,7 @@ set CONFIG_PCI_MASTER_TARGET 0 set CONFIG_PCI_MASTER_TARGET_DMA 0 set CONFIG_PCI_VENDORID 1AC8 set CONFIG_PCI_DEVICEID 0054 -set tmpvar_31 "(not set)" +set tmpvar_33 "(not set)" set CONFIG_PCI_FIFO0 0 set CONFIG_PCI_FIFO8 0 set CONFIG_PCI_FIFO16 0 @@ -5203,7 +5533,7 @@ set CONFIG_PCI_ARBITER 0 set CONFIG_PCI_ARBITER_APB 0 set CONFIG_PCI_ARBITER_NREQ 4 set CONFIG_PCI_TRACE 0 -set tmpvar_32 "(not set)" +set tmpvar_34 "(not set)" set CONFIG_PCI_TRACE256 0 set CONFIG_PCI_TRACE512 0 set CONFIG_PCI_TRACE1024 0 @@ -5211,17 +5541,17 @@ set CONFIG_PCI_TRACE2048 0 set CONFIG_PCI_TRACE4096 0 set CONFIG_SPW_ENABLE 0 set CONFIG_SPW_NUM 1 -set tmpvar_33 "(not set)" +set tmpvar_35 "(not set)" set CONFIG_SPW_AHBFIFO4 0 set CONFIG_SPW_AHBFIFO8 0 set CONFIG_SPW_AHBFIFO16 0 set CONFIG_SPW_AHBFIFO32 0 -set tmpvar_34 "(not set)" +set tmpvar_36 "(not set)" set CONFIG_SPW_RXFIFO16 0 set CONFIG_SPW_RXFIFO32 0 set CONFIG_SPW_RXFIFO64 0 set CONFIG_SPW_RMAP 0 -set tmpvar_35 "(not set)" +set tmpvar_37 "(not set)" set CONFIG_SPW_RMAPBUF2 0 set CONFIG_SPW_RMAPBUF4 0 set CONFIG_SPW_RMAPBUF6 0 @@ -5231,22 +5561,22 @@ set CONFIG_SPW_RXUNAL 0 set CONFIG_SPW_FT 0 set CONFIG_SPW_NETLIST 0 set CONFIG_SPW_PORTS 1 -set tmpvar_36 "(not set)" +set tmpvar_38 "(not set)" set CONFIG_SPW_GRSPW1 0 set CONFIG_SPW_GRSPW2 0 set CONFIG_SPW_DMACHAN 1 set CONFIG_SPW_RTSAME 0 -set tmpvar_37 "(not set)" +set tmpvar_39 "(not set)" set CONFIG_SPW_RX_SDR 0 set CONFIG_SPW_RX_DDR 0 set CONFIG_SPW_RX_XOR 0 set CONFIG_SPW_RX_AFLEX 0 -set tmpvar_38 "(not set)" +set tmpvar_40 "(not set)" set CONFIG_SPW_TX_SDR 0 set CONFIG_SPW_TX_DDR 0 set CONFIG_SPW_TX_AFLEX 0 set CONFIG_UART1_ENABLE 0 -set tmpvar_39 "(not set)" +set tmpvar_41 "(not set)" set CONFIG_UA1_FIFO1 0 set CONFIG_UA1_FIFO2 0 set CONFIG_UA1_FIFO4 0 @@ -5254,7 +5584,7 @@ set CONFIG_UA1_FIFO8 0 set CONFIG_UA1_FIFO16 0 set CONFIG_UA1_FIFO32 0 set CONFIG_UART2_ENABLE 0 -set tmpvar_40 "(not set)" +set tmpvar_42 "(not set)" set CONFIG_UA2_FIFO1 0 set CONFIG_UA2_FIFO2 0 set CONFIG_UA2_FIFO4 0 @@ -5332,7 +5662,8 @@ proc writeconfig {file1 file2} { if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } @@ -5342,6 +5673,8 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -5380,6 +5713,7 @@ proc writeconfig {file1 file2} { if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -5392,9 +5726,10 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T global CONFIG_CLK_FUSPLL - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } global CONFIG_OCLKB_DIV @@ -5408,239 +5743,389 @@ proc writeconfig {file1 file2} { global CONFIG_PCI_SYSCLK global CONFIG_PCI_ENABLE if {($CONFIG_PCI_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_SYSCLK $CONFIG_PCI_SYSCLK [list $notmod] 2 } + write_comment $cfg $autocfg "Processor " global CONFIG_LEON3 write_tristate $cfg $autocfg CONFIG_LEON3 $CONFIG_LEON3 [list $notmod] 2 global CONFIG_PROC_NUM if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_PROC_NUM $CONFIG_PROC_NUM $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Processor "} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Integer unit "} + global tmpvar_3 + if {($CONFIG_LEON3 == 1)} then { + if { $tmpvar_3 == "Minimal-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_MIN 0 [list $notmod] 2 } + if { $tmpvar_3 == "General-purpose-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_GP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_GP 0 [list $notmod] 2 } + if { $tmpvar_3 == "High-Performance-cfg" } then { write_tristate $cfg $autocfg CONFIG_LEON3_HP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_HP 0 [list $notmod] 2 } + if { $tmpvar_3 == "Custom-configuration" } then { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_LEON3_CUSTOM 0 [list $notmod] 2 }} global CONFIG_IU_NWINDOWS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + global CONFIG_LEON3_MIN + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } global CONFIG_IU_V8MULDIV - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } - global tmpvar_3 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_3 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } - 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 } - 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 }} - global CONFIG_IU_MUL_MAC - global CONFIG_IU_MUL_LATENCY_4 - global CONFIG_IU_MUL_LATENCY_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } - global tmpvar_4 - if {($CONFIG_LEON3 == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { - if { $tmpvar_4 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } - if { $tmpvar_4 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_4 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } - if { $tmpvar_4 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + global CONSTANT_N + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_BP - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_SVT - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + global CONSTANT_Y + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } global CONFIG_NOTAG - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_LDELAY - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } global CONFIG_IU_WATCHPOINTS - if {($CONFIG_LEON3 == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 0 $notmod } global CONFIG_PWD - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_N [list $notmod] 2 } global CONFIG_IU_RSTADDR - if {($CONFIG_LEON3 == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } global CONFIG_FPU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO1 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO1 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LZ16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGORND + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_LOCK + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_N [list $notmod] 2 } + global CONFIG_CACHE_FIXED + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_MMU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_DSU_ENABLE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_MIN == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_N [list $notmod] 2 } + global CONFIG_LEON3_GP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_5 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_5 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_MAC + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 2 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + global CONFIG_ICACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ASSO2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGORND $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_FAST + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_SNOOP_SEPTAG + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + global CONFIG_DCACHE_LRAM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_SPLIT + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_REPARRAY + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D8 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D8 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_FASTWB + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_PAGE_4K + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ITRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DSU_ATRACESZ4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_GP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_HP + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS 8 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONSTANT_Y [list $notmod] 2 } + global CONFIG_IU_MUL_LATENCY_2 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY 1 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS 4 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR 00000 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU $CONSTANT_Y [list $notmod] 2 } + global CONFIG_FPU_GRFPU_INFMUL + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_INFMUL $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_ICACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ASSO2 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LZ16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_DCACHE_ALGOLRU + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ALGOLRU $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_FAST $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP_SEPTAG $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED 0 $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONSTANT_N [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_SPLIT $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_REPARRAY $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_I16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_I16 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_MMU_D16 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_D16 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACESZ4 $CONSTANT_Y [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_HP == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACESZ4 $CONSTANT_Y [list $notmod] 2 } + global CONFIG_LEON3_CUSTOM + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Integer unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_NWINDOWS $CONFIG_IU_NWINDOWS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_V8MULDIV $CONFIG_IU_V8MULDIV [list $notmod] 2 } + global tmpvar_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_4 == "2-cycles" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_LATENCY_2 0 [list $notmod] 2 } + if { $tmpvar_4 == "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 } + if { $tmpvar_4 == "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 }} + global CONFIG_IU_MUL_LATENCY_4 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1) && ($CONFIG_IU_MUL_LATENCY_4 == 1 || $CONFIG_IU_MUL_LATENCY_5 == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_MUL_MAC $CONFIG_IU_MUL_MAC [list $notmod] 2 } global tmpvar_5 - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then { - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 } - if { $tmpvar_5 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_IU_V8MULDIV == 1)} then { + if { $tmpvar_5 == "Inferred" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_INFERRED 0 [list $notmod] 2 } + if { $tmpvar_5 == "NTNU_Modgen" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_5 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_TECHSPEC 0 [list $notmod] 2 } + if { $tmpvar_5 == "Designware" } then { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IU_MUL_DW 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_BP $CONFIG_IU_BP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_IU_SVT $CONFIG_IU_SVT [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_NOTAG $CONFIG_NOTAG [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_LDELAY $CONFIG_IU_LDELAY $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_int $cfg $autocfg CONFIG_IU_WATCHPOINTS $CONFIG_IU_WATCHPOINTS $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_PWD $CONFIG_PWD [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_hex $cfg $autocfg CONFIG_IU_RSTADDR $CONFIG_IU_RSTADDR $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Floating-point unit"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_ENABLE $CONFIG_FPU_ENABLE [list $notmod] 2 } global tmpvar_6 - global CONFIG_FPU_GRFPU - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "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 } - if { $tmpvar_6 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } - if { $tmpvar_6 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 } + if { $tmpvar_6 == "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 }} global tmpvar_7 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPU == 1)} then { + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "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 } + if { $tmpvar_7 == "ModGen" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_MODGEN 0 [list $notmod] 2 } + if { $tmpvar_7 == "TechSpec" } then { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPU_GRFPU_TECHSPEC 0 [list $notmod] 2 }} + global tmpvar_8 global CONFIG_FPU_GRFPULITE - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 } - if { $tmpvar_7 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1) && ($CONFIG_FPU_GRFPULITE == 1)} then { + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 } + if { $tmpvar_8 == "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 }} global CONFIG_FPU_NETLIST - if {($CONFIG_LEON3 == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Cache system"} - global CONFIG_ICACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } - global tmpvar_8 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 } - if { $tmpvar_8 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPU_NETLIST $CONFIG_FPU_NETLIST [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Cache system"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_ENABLE $CONFIG_ICACHE_ENABLE [list $notmod] 2 } global tmpvar_9 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 } - if { $tmpvar_9 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 } + if { $tmpvar_9 == "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 }} global tmpvar_10 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { - if { $tmpvar_10 == "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 } - if { $tmpvar_10 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 } + if { $tmpvar_10 == "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 }} global tmpvar_11 - global CONFIG_ICACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_11 == "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 } - if { $tmpvar_11 == "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 }} - global CONFIG_ICACHE_LOCK - 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 } - global CONFIG_ICACHE_LRAM - global CONFIG_MMU_ENABLE - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1)} then { + if { $tmpvar_11 == "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 } + if { $tmpvar_11 == "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 }} global tmpvar_12 - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 } - if { $tmpvar_12 == "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 }} - global CONFIG_ICACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } - global CONFIG_DCACHE_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then { + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_ICACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_12 == "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 } + if { $tmpvar_12 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1) && ($CONFIG_ICACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LOCK $CONFIG_ICACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_ICACHE_LRAM $CONFIG_ICACHE_LRAM [list $notmod] 2 } global tmpvar_13 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 } - if { $tmpvar_13 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then { + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 } + if { $tmpvar_13 == "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 }} + global CONFIG_ICACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_ICACHE_LRSTART $CONFIG_ICACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_ENABLE $CONFIG_DCACHE_ENABLE [list $notmod] 2 } global tmpvar_14 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 } - if { $tmpvar_14 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 } + if { $tmpvar_14 == "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 }} global tmpvar_15 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { - if { $tmpvar_15 == "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 } - if { $tmpvar_15 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 } + if { $tmpvar_15 == "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 }} global tmpvar_16 - global CONFIG_DCACHE_ASSO1 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } - if { $tmpvar_16 == "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 } - if { $tmpvar_16 == "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 }} - global CONFIG_DCACHE_LOCK - 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 } - global CONFIG_DCACHE_SNOOP - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } - global CONFIG_DCACHE_SNOOP_FAST - 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 } - global CONFIG_DCACHE_SNOOP_SEPTAG - 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 } - global CONFIG_CACHE_FIXED - if {($CONFIG_LEON3 == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } - global CONFIG_DCACHE_LRAM - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then { + if { $tmpvar_16 == "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 } + if { $tmpvar_16 == "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 }} global tmpvar_17 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 } - if { $tmpvar_17 == "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 }} - global CONFIG_DCACHE_LRSTART - if {($CONFIG_LEON3 == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "MMU"} - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then { + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "Direct" } then { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_DCACHE_ALGODIR 0 [list $notmod] 2 } + if { $tmpvar_17 == "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 } + if { $tmpvar_17 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1) && ($CONFIG_DCACHE_ASSO1 != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LOCK $CONFIG_DCACHE_LOCK [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_SNOOP $CONFIG_DCACHE_SNOOP [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_ICACHE_ENABLE == 1 || $CONFIG_DCACHE_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_CACHE_FIXED $CONFIG_CACHE_FIXED $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE != 1)} then {write_tristate $cfg $autocfg CONFIG_DCACHE_LRAM $CONFIG_DCACHE_LRAM [list $notmod] 2 } global tmpvar_18 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_18 == "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 } - if { $tmpvar_18 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then { + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 } + if { $tmpvar_18 == "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 }} + global CONFIG_DCACHE_LRSTART + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DCACHE_LRAM == 1)} then {write_hex $cfg $autocfg CONFIG_DCACHE_LRSTART $CONFIG_DCACHE_LRSTART $notmod } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "MMU"} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_ENABLE $CONFIG_MMU_ENABLE [list $notmod] 2 } global tmpvar_19 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_19 == "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 } - if { $tmpvar_19 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_19 == "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 } + if { $tmpvar_19 == "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 }} global tmpvar_20 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 } - if { $tmpvar_20 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_20 == "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 } + if { $tmpvar_20 == "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 }} global tmpvar_21 - global CONFIG_MMU_SPLIT - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 } - if { $tmpvar_21 == "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 }} - global CONFIG_MMU_FASTWB - 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 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "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 } + if { $tmpvar_21 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_I64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_I64 0 [list $notmod] 2 }} global tmpvar_22 - if {($CONFIG_LEON3 == 1) && ($CONFIG_MMU_ENABLE == 1)} then { - if { $tmpvar_22 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } - if { $tmpvar_22 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } - if { $tmpvar_22 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } - if { $tmpvar_22 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } - if { $tmpvar_22 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} - if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} - global CONFIG_DSU_ENABLE - if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } - global CONFIG_DSU_ITRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then { + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "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 } + if { $tmpvar_22 == "64" } then { write_tristate $cfg $autocfg CONFIG_MMU_D64 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_D64 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1) && ($CONFIG_MMU_SPLIT == 1)} then {write_tristate $cfg $autocfg CONFIG_MMU_FASTWB $CONFIG_MMU_FASTWB [list $notmod] 2 } global tmpvar_23 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 } - if { $tmpvar_23 == "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 }} - global CONFIG_DSU_ATRACE - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_MMU_ENABLE == 1)} then { + if { $tmpvar_23 == "4K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_4K 0 [list $notmod] 2 } + if { $tmpvar_23 == "8K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_8K 0 [list $notmod] 2 } + if { $tmpvar_23 == "16K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_16K 0 [list $notmod] 2 } + if { $tmpvar_23 == "32K" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_32K 0 [list $notmod] 2 } + if { $tmpvar_23 == "Programmable" } then { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_MMU_PAGE_PROG 0 [list $notmod] 2 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_comment $cfg $autocfg "Debug Support Unit "} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ENABLE $CONFIG_DSU_ENABLE [list $notmod] 2 } + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ITRACE $CONFIG_DSU_ITRACE [list $notmod] 2 } global tmpvar_24 - if {($CONFIG_LEON3 == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 } - if { $tmpvar_24 == "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 }} + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ITRACE == 1)} then { + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 } + if { $tmpvar_24 == "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 }} + global CONFIG_DSU_ATRACE + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ATRACE $CONFIG_DSU_ATRACE [list $notmod] 2 } + global tmpvar_25 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3_CUSTOM == 1) && ($CONFIG_DSU_ENABLE == 1) && ($CONFIG_DSU_ATRACE == 1)} then { + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 } + if { $tmpvar_25 == "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 }} if {($CONFIG_LEON3 == 1)} then {write_comment $cfg $autocfg "Fault-tolerance "} global CONFIG_LEON3FT_EN if {($CONFIG_LEON3 == 1)} then {write_tristate $cfg $autocfg CONFIG_LEON3FT_EN $CONFIG_LEON3FT_EN [list $notmod] 2 } - global tmpvar_25 + global tmpvar_26 if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then { - if { $tmpvar_25 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } - if { $tmpvar_25 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } - if { $tmpvar_25 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } - if { $tmpvar_25 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } - if { $tmpvar_25 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} - global CONFIG_FPUFT_EN - if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_FPUFT_EN $CONFIG_FPUFT_EN [list $notmod] 2 } + if { $tmpvar_26 == "None" } then { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_26 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_26 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_26 == "BCH" } then { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_BCH 0 [list $notmod] 2 } + if { $tmpvar_26 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_IUFT_TMR 0 [list $notmod] 2 }} + global tmpvar_27 + if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1) && ($CONFIG_FPU_ENABLE == 1)} then { + if { $tmpvar_27 == "None" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_NONE 0 [list $notmod] 2 } + if { $tmpvar_27 == "Parity" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_PAR 0 [list $notmod] 2 } + if { $tmpvar_27 == "PDMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_DMR 0 [list $notmod] 2 } + if { $tmpvar_27 == "TMR" } then { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_FPUFT_TMR 0 [list $notmod] 2 }} global CONFIG_RF_ERRINJ if {($CONFIG_LEON3 == 1) && ($CONFIG_LEON3FT_EN == 1)} then {write_tristate $cfg $autocfg CONFIG_RF_ERRINJ $CONFIG_RF_ERRINJ [list $notmod] 2 } global CONFIG_CACHE_FT_EN @@ -5685,13 +6170,13 @@ proc writeconfig {file1 file2} { global CONFIG_DSU_ETH global CONFIG_GRETH_ENABLE if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_DSU_ETH $CONFIG_DSU_ETH [list $notmod] 2 } - global tmpvar_26 + global tmpvar_28 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then { - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 } - if { $tmpvar_26 == "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 }} + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 } + if { $tmpvar_28 == "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 }} global CONFIG_DSU_IPMSB if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_DSU_ETH == 1)} then {write_hex $cfg $autocfg CONFIG_DSU_IPMSB $CONFIG_DSU_IPMSB $notmod } global CONFIG_DSU_IPLSB @@ -5720,29 +6205,29 @@ proc writeconfig {file1 file2} { if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_IOWS $CONFIG_SRCTRL_IOWS $notmod } global CONFIG_SRCTRL_RMW if {($CONFIG_SRCTRL == 1)} then {write_tristate $cfg $autocfg CONFIG_SRCTRL_RMW $CONFIG_SRCTRL_RMW [list $notmod] 2 } - global tmpvar_27 + global tmpvar_29 if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 } - if { $tmpvar_27 == "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 }} - global tmpvar_28 + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 } + if { $tmpvar_29 == "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 }} + global tmpvar_30 if {($CONFIG_SRCTRL == 1)} then { - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 } - if { $tmpvar_28 == "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 }} + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 } + if { $tmpvar_30 == "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 }} global CONFIG_SRCTRL_ROMASEL if {($CONFIG_SRCTRL == 1)} then {write_int $cfg $autocfg CONFIG_SRCTRL_ROMASEL $CONFIG_SRCTRL_ROMASEL $notmod } write_comment $cfg $autocfg "Leon2 memory controller " @@ -5786,27 +6271,27 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHBROM_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_AHBROM_PIPE $CONFIG_AHBROM_PIPE [list $notmod] 2 } global CONFIG_AHBRAM_ENABLE write_tristate $cfg $autocfg CONFIG_AHBRAM_ENABLE $CONFIG_AHBRAM_ENABLE [list $notmod] 2 - global tmpvar_29 + global tmpvar_31 if {($CONFIG_AHBRAM_ENABLE == 1)} then { - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 } - if { $tmpvar_29 == "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 }} + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 } + if { $tmpvar_31 == "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 }} global CONFIG_AHBRAM_START if {($CONFIG_AHBRAM_ENABLE == 1)} then {write_hex $cfg $autocfg CONFIG_AHBRAM_START $CONFIG_AHBRAM_START $notmod } write_comment $cfg $autocfg "Ethernet " write_tristate $cfg $autocfg CONFIG_GRETH_ENABLE $CONFIG_GRETH_ENABLE [list $notmod] 2 if {($CONFIG_GRETH_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_GRETH_GIGA $CONFIG_GRETH_GIGA [list $notmod] 2 } - global tmpvar_30 + global tmpvar_32 if {($CONFIG_GRETH_ENABLE == 1) && ($CONFIG_GRETH_GIGA == 0)} then { - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 } - if { $tmpvar_30 == "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 }} + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 } + if { $tmpvar_32 == "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 }} write_comment $cfg $autocfg "CAN " global CONFIG_CAN_ENABLE write_tristate $cfg $autocfg CONFIG_CAN_ENABLE $CONFIG_CAN_ENABLE [list $notmod] 2 @@ -5832,14 +6317,14 @@ proc writeconfig {file1 file2} { 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 } global CONFIG_PCI_DEVICEID 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 } - global tmpvar_31 + global tmpvar_33 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 { - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 } - if { $tmpvar_31 == "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 }} + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 } + if { $tmpvar_33 == "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 }} global CONFIG_PCI_HADDR 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 } global CONFIG_PCI_ARBITER @@ -5850,37 +6335,37 @@ proc writeconfig {file1 file2} { if {($CONFIG_PCI_ARBITER == 1)} then {write_int $cfg $autocfg CONFIG_PCI_ARBITER_NREQ $CONFIG_PCI_ARBITER_NREQ $notmod } global CONFIG_PCI_TRACE write_tristate $cfg $autocfg CONFIG_PCI_TRACE $CONFIG_PCI_TRACE [list $notmod] 2 - global tmpvar_32 + global tmpvar_34 if {($CONFIG_PCI_TRACE == 1)} then { - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 } - if { $tmpvar_32 == "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 }} + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 } + if { $tmpvar_34 == "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 }} write_comment $cfg $autocfg "Spacewire " global CONFIG_SPW_ENABLE write_tristate $cfg $autocfg CONFIG_SPW_ENABLE $CONFIG_SPW_ENABLE [list $notmod] 2 global CONFIG_SPW_NUM if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_NUM $CONFIG_SPW_NUM $notmod } - global tmpvar_33 + global tmpvar_35 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 } - if { $tmpvar_33 == "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 }} - global tmpvar_34 + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 } + if { $tmpvar_35 == "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 }} + global tmpvar_36 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_34 == "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 } - if { $tmpvar_34 == "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 } - if { $tmpvar_34 == "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 }} + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 } + if { $tmpvar_36 == "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 }} global CONFIG_SPW_RMAP if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAP $CONFIG_SPW_RMAP [list $notmod] 2 } - global tmpvar_35 + global tmpvar_37 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_RMAP == 1)} then { - if { $tmpvar_35 == "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 } - if { $tmpvar_35 == "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 } - if { $tmpvar_35 == "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 } - if { $tmpvar_35 == "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 }} + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 } + if { $tmpvar_37 == "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 }} global CONFIG_SPW_RMAPCRC if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RMAPCRC $CONFIG_SPW_RMAPCRC [list $notmod] 2 } global CONFIG_SPW_RXUNAL @@ -5891,47 +6376,47 @@ proc writeconfig {file1 file2} { if {($CONFIG_SPW_ENABLE == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_NETLIST $CONFIG_SPW_NETLIST [list $notmod] 2 } global CONFIG_SPW_PORTS if {($CONFIG_SPW_ENABLE == 1)} then {write_int $cfg $autocfg CONFIG_SPW_PORTS $CONFIG_SPW_PORTS $notmod } - global tmpvar_36 + global tmpvar_38 if {($CONFIG_SPW_ENABLE == 1)} then { - if { $tmpvar_36 == "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 } - if { $tmpvar_36 == "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 }} + if { $tmpvar_38 == "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 } + if { $tmpvar_38 == "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 }} global CONFIG_SPW_DMACHAN global CONFIG_SPW_GRSPW2 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_int $cfg $autocfg CONFIG_SPW_DMACHAN $CONFIG_SPW_DMACHAN $notmod } global CONFIG_SPW_RTSAME if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then {write_tristate $cfg $autocfg CONFIG_SPW_RTSAME $CONFIG_SPW_RTSAME [list $notmod] 2 } - global tmpvar_37 + global tmpvar_39 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_37 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } - if { $tmpvar_37 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } - if { $tmpvar_37 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } - if { $tmpvar_37 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} - global tmpvar_38 + if { $tmpvar_39 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_SDR 0 [list $notmod] 2 } + if { $tmpvar_39 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_DDR 0 [list $notmod] 2 } + if { $tmpvar_39 == "Xor" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_XOR 0 [list $notmod] 2 } + if { $tmpvar_39 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_RX_AFLEX 0 [list $notmod] 2 }} + global tmpvar_40 if {($CONFIG_SPW_ENABLE == 1) && ($CONFIG_SPW_GRSPW2 == 1)} then { - if { $tmpvar_38 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } - if { $tmpvar_38 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } - if { $tmpvar_38 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} + if { $tmpvar_40 == "SDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_SDR 0 [list $notmod] 2 } + if { $tmpvar_40 == "DDR" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_DDR 0 [list $notmod] 2 } + if { $tmpvar_40 == "Aeroflex" } then { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SPW_TX_AFLEX 0 [list $notmod] 2 }} write_comment $cfg $autocfg "UARTs, timers and irq control " global CONFIG_UART1_ENABLE write_tristate $cfg $autocfg CONFIG_UART1_ENABLE $CONFIG_UART1_ENABLE [list $notmod] 2 - global tmpvar_39 + global tmpvar_41 if {($CONFIG_UART1_ENABLE == 1)} then { - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 } - if { $tmpvar_39 == "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 }} + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 } + if { $tmpvar_41 == "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 }} global CONFIG_UART2_ENABLE write_tristate $cfg $autocfg CONFIG_UART2_ENABLE $CONFIG_UART2_ENABLE [list $notmod] 2 - global tmpvar_40 + global tmpvar_42 if {($CONFIG_UART2_ENABLE == 1)} then { - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 } - if { $tmpvar_40 == "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 }} + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 } + if { $tmpvar_42 == "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 }} global CONFIG_IRQ3_ENABLE write_tristate $cfg $autocfg CONFIG_IRQ3_ENABLE $CONFIG_IRQ3_ENABLE [list $notmod] 2 global CONFIG_IRQ3_SEC @@ -6004,7 +6489,8 @@ proc clear_choices { } { global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 @@ -6014,6 +6500,8 @@ proc clear_choices { } { global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -6032,8 +6520,13 @@ proc clear_choices { } { global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 + global CONFIG_LEON3_MIN; set CONFIG_LEON3_MIN 0 + global CONFIG_LEON3_GP; set CONFIG_LEON3_GP 0 + global CONFIG_LEON3_HP; set CONFIG_LEON3_HP 0 + global CONFIG_LEON3_CUSTOM; set CONFIG_LEON3_CUSTOM 0 global CONFIG_IU_MUL_LATENCY_2; set CONFIG_IU_MUL_LATENCY_2 0 global CONFIG_IU_MUL_LATENCY_4; set CONFIG_IU_MUL_LATENCY_4 0 global CONFIG_IU_MUL_LATENCY_5; set CONFIG_IU_MUL_LATENCY_5 0 @@ -6116,11 +6609,13 @@ proc clear_choices { } { global CONFIG_MMU_I8; set CONFIG_MMU_I8 0 global CONFIG_MMU_I16; set CONFIG_MMU_I16 0 global CONFIG_MMU_I32; set CONFIG_MMU_I32 0 + global CONFIG_MMU_I64; set CONFIG_MMU_I64 0 global CONFIG_MMU_D2; set CONFIG_MMU_D2 0 global CONFIG_MMU_D4; set CONFIG_MMU_D4 0 global CONFIG_MMU_D8; set CONFIG_MMU_D8 0 global CONFIG_MMU_D16; set CONFIG_MMU_D16 0 global CONFIG_MMU_D32; set CONFIG_MMU_D32 0 + global CONFIG_MMU_D64; set CONFIG_MMU_D64 0 global CONFIG_MMU_PAGE_4K; set CONFIG_MMU_PAGE_4K 0 global CONFIG_MMU_PAGE_8K; set CONFIG_MMU_PAGE_8K 0 global CONFIG_MMU_PAGE_16K; set CONFIG_MMU_PAGE_16K 0 @@ -6141,6 +6636,10 @@ proc clear_choices { } { global CONFIG_IUFT_DMR; set CONFIG_IUFT_DMR 0 global CONFIG_IUFT_BCH; set CONFIG_IUFT_BCH 0 global CONFIG_IUFT_TMR; set CONFIG_IUFT_TMR 0 + global CONFIG_FPUFT_NONE; set CONFIG_FPUFT_NONE 0 + global CONFIG_FPUFT_PAR; set CONFIG_FPUFT_PAR 0 + global CONFIG_FPUFT_DMR; set CONFIG_FPUFT_DMR 0 + global CONFIG_FPUFT_TMR; set CONFIG_FPUFT_TMR 0 global CONFIG_DSU_ETHSZ1; set CONFIG_DSU_ETHSZ1 0 global CONFIG_DSU_ETHSZ2; set CONFIG_DSU_ETHSZ2 0 global CONFIG_DSU_ETHSZ4; set CONFIG_DSU_ETHSZ4 0 @@ -6296,8 +6795,10 @@ proc update_choices { } { if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } global CONFIG_SYN_UMC if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E @@ -6316,6 +6817,10 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } global CONFIG_SYN_VIRTEX6 if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -6356,458 +6861,484 @@ proc update_choices { } { if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM if { $CONFIG_CLK_DCM == 1 } then { set tmpvar_2 "Xilinx-DCM" } global tmpvar_3 - set tmpvar_3 "5-cycles" + set tmpvar_3 "Custom-configuration" + global CONFIG_LEON3_MIN + if { $CONFIG_LEON3_MIN == 1 } then { set tmpvar_3 "Minimal-configuration" } + global CONFIG_LEON3_GP + if { $CONFIG_LEON3_GP == 1 } then { set tmpvar_3 "General-purpose-cfg" } + global CONFIG_LEON3_HP + if { $CONFIG_LEON3_HP == 1 } then { set tmpvar_3 "High-Performance-cfg" } + global CONFIG_LEON3_CUSTOM + if { $CONFIG_LEON3_CUSTOM == 1 } then { set tmpvar_3 "Custom-configuration" } + global tmpvar_4 + set tmpvar_4 "5-cycles" global CONFIG_IU_MUL_LATENCY_2 - if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_3 "2-cycles" } + if { $CONFIG_IU_MUL_LATENCY_2 == 1 } then { set tmpvar_4 "2-cycles" } global CONFIG_IU_MUL_LATENCY_4 - if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_3 "4-cycles" } + if { $CONFIG_IU_MUL_LATENCY_4 == 1 } then { set tmpvar_4 "4-cycles" } global CONFIG_IU_MUL_LATENCY_5 - if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_3 "5-cycles" } - global tmpvar_4 - set tmpvar_4 "Inferred" + if { $CONFIG_IU_MUL_LATENCY_5 == 1 } then { set tmpvar_4 "5-cycles" } + global tmpvar_5 + set tmpvar_5 "Inferred" global CONFIG_IU_MUL_INFERRED - if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_4 "Inferred" } + if { $CONFIG_IU_MUL_INFERRED == 1 } then { set tmpvar_5 "Inferred" } global CONFIG_IU_MUL_MODGEN - if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_4 "NTNU_Modgen" } + if { $CONFIG_IU_MUL_MODGEN == 1 } then { set tmpvar_5 "NTNU_Modgen" } global CONFIG_IU_MUL_TECHSPEC - if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_4 "TechSpec" } + if { $CONFIG_IU_MUL_TECHSPEC == 1 } then { set tmpvar_5 "TechSpec" } global CONFIG_IU_MUL_DW - if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_4 "Designware" } - global tmpvar_5 - set tmpvar_5 "GRFPU" + if { $CONFIG_IU_MUL_DW == 1 } then { set tmpvar_5 "Designware" } + global tmpvar_6 + set tmpvar_6 "GRFPU" global CONFIG_FPU_GRFPU - if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_5 "GRFPU" } + if { $CONFIG_FPU_GRFPU == 1 } then { set tmpvar_6 "GRFPU" } global CONFIG_FPU_GRFPULITE - if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_5 "GRFPU-LITE" } + if { $CONFIG_FPU_GRFPULITE == 1 } then { set tmpvar_6 "GRFPU-LITE" } global CONFIG_FPU_MEIKO - if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_5 "Meiko" } - global tmpvar_6 - set tmpvar_6 "Inferred" + if { $CONFIG_FPU_MEIKO == 1 } then { set tmpvar_6 "Meiko" } + global tmpvar_7 + set tmpvar_7 "Inferred" global CONFIG_FPU_GRFPU_INFMUL - if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_6 "Inferred" } + if { $CONFIG_FPU_GRFPU_INFMUL == 1 } then { set tmpvar_7 "Inferred" } global CONFIG_FPU_GRFPU_DWMUL - if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_6 "DW" } + if { $CONFIG_FPU_GRFPU_DWMUL == 1 } then { set tmpvar_7 "DW" } global CONFIG_FPU_GRFPU_MODGEN - if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_6 "ModGen" } + if { $CONFIG_FPU_GRFPU_MODGEN == 1 } then { set tmpvar_7 "ModGen" } global CONFIG_FPU_GRFPU_TECHSPEC - if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_6 "TechSpec" } - global tmpvar_7 - set tmpvar_7 "Simple" + if { $CONFIG_FPU_GRFPU_TECHSPEC == 1 } then { set tmpvar_7 "TechSpec" } + global tmpvar_8 + set tmpvar_8 "Simple" global CONFIG_FPU_GRFPC0 - if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_7 "Simple" } + if { $CONFIG_FPU_GRFPC0 == 1 } then { set tmpvar_8 "Simple" } global CONFIG_FPU_GRFPC1 - if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_7 "Data-forwarding" } + if { $CONFIG_FPU_GRFPC1 == 1 } then { set tmpvar_8 "Data-forwarding" } global CONFIG_FPU_GRFPC2 - if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_7 "Non-blocking" } - global tmpvar_8 - set tmpvar_8 "1" + if { $CONFIG_FPU_GRFPC2 == 1 } then { set tmpvar_8 "Non-blocking" } + global tmpvar_9 + set tmpvar_9 "1" global CONFIG_ICACHE_ASSO1 - if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_8 "1" } + if { $CONFIG_ICACHE_ASSO1 == 1 } then { set tmpvar_9 "1" } global CONFIG_ICACHE_ASSO2 - if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_8 "2" } + if { $CONFIG_ICACHE_ASSO2 == 1 } then { set tmpvar_9 "2" } global CONFIG_ICACHE_ASSO3 - if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_8 "3" } + if { $CONFIG_ICACHE_ASSO3 == 1 } then { set tmpvar_9 "3" } global CONFIG_ICACHE_ASSO4 - if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_8 "4" } - global tmpvar_9 - set tmpvar_9 "4" + if { $CONFIG_ICACHE_ASSO4 == 1 } then { set tmpvar_9 "4" } + global tmpvar_10 + set tmpvar_10 "4" global CONFIG_ICACHE_SZ1 - if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_9 "1" } + if { $CONFIG_ICACHE_SZ1 == 1 } then { set tmpvar_10 "1" } global CONFIG_ICACHE_SZ2 - if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_9 "2" } + if { $CONFIG_ICACHE_SZ2 == 1 } then { set tmpvar_10 "2" } global CONFIG_ICACHE_SZ4 - if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_9 "4" } + if { $CONFIG_ICACHE_SZ4 == 1 } then { set tmpvar_10 "4" } global CONFIG_ICACHE_SZ8 - if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_9 "8" } + if { $CONFIG_ICACHE_SZ8 == 1 } then { set tmpvar_10 "8" } global CONFIG_ICACHE_SZ16 - if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_9 "16" } + if { $CONFIG_ICACHE_SZ16 == 1 } then { set tmpvar_10 "16" } global CONFIG_ICACHE_SZ32 - if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_9 "32" } + if { $CONFIG_ICACHE_SZ32 == 1 } then { set tmpvar_10 "32" } global CONFIG_ICACHE_SZ64 - if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_9 "64" } + if { $CONFIG_ICACHE_SZ64 == 1 } then { set tmpvar_10 "64" } global CONFIG_ICACHE_SZ128 - if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_9 "128" } + if { $CONFIG_ICACHE_SZ128 == 1 } then { set tmpvar_10 "128" } global CONFIG_ICACHE_SZ256 - if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_9 "256" } - global tmpvar_10 - set tmpvar_10 "32" + if { $CONFIG_ICACHE_SZ256 == 1 } then { set tmpvar_10 "256" } + global tmpvar_11 + set tmpvar_11 "32" global CONFIG_ICACHE_LZ16 - if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_10 "16" } + if { $CONFIG_ICACHE_LZ16 == 1 } then { set tmpvar_11 "16" } global CONFIG_ICACHE_LZ32 - if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_10 "32" } - global tmpvar_11 - set tmpvar_11 "Random" + if { $CONFIG_ICACHE_LZ32 == 1 } then { set tmpvar_11 "32" } + global tmpvar_12 + set tmpvar_12 "Random" global CONFIG_ICACHE_ALGORND - if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_11 "Random" } + if { $CONFIG_ICACHE_ALGORND == 1 } then { set tmpvar_12 "Random" } global CONFIG_ICACHE_ALGODIR - if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_11 "Direct" } + if { $CONFIG_ICACHE_ALGODIR == 1 } then { set tmpvar_12 "Direct" } global CONFIG_ICACHE_ALGOLRR - if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_11 "LRR" } + if { $CONFIG_ICACHE_ALGOLRR == 1 } then { set tmpvar_12 "LRR" } global CONFIG_ICACHE_ALGOLRU - if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_11 "LRU" } - global tmpvar_12 - set tmpvar_12 "4" + if { $CONFIG_ICACHE_ALGOLRU == 1 } then { set tmpvar_12 "LRU" } + global tmpvar_13 + set tmpvar_13 "4" global CONFIG_ICACHE_LRAM_SZ1 - if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_12 "1" } + if { $CONFIG_ICACHE_LRAM_SZ1 == 1 } then { set tmpvar_13 "1" } global CONFIG_ICACHE_LRAM_SZ2 - if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_12 "2" } + if { $CONFIG_ICACHE_LRAM_SZ2 == 1 } then { set tmpvar_13 "2" } global CONFIG_ICACHE_LRAM_SZ4 - if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_12 "4" } + if { $CONFIG_ICACHE_LRAM_SZ4 == 1 } then { set tmpvar_13 "4" } global CONFIG_ICACHE_LRAM_SZ8 - if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_12 "8" } + if { $CONFIG_ICACHE_LRAM_SZ8 == 1 } then { set tmpvar_13 "8" } global CONFIG_ICACHE_LRAM_SZ16 - if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_12 "16" } + if { $CONFIG_ICACHE_LRAM_SZ16 == 1 } then { set tmpvar_13 "16" } global CONFIG_ICACHE_LRAM_SZ32 - if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_12 "32" } + if { $CONFIG_ICACHE_LRAM_SZ32 == 1 } then { set tmpvar_13 "32" } global CONFIG_ICACHE_LRAM_SZ64 - if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_12 "64" } + if { $CONFIG_ICACHE_LRAM_SZ64 == 1 } then { set tmpvar_13 "64" } global CONFIG_ICACHE_LRAM_SZ128 - if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_12 "128" } + if { $CONFIG_ICACHE_LRAM_SZ128 == 1 } then { set tmpvar_13 "128" } global CONFIG_ICACHE_LRAM_SZ256 - if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_12 "256" } - global tmpvar_13 - set tmpvar_13 "1" + if { $CONFIG_ICACHE_LRAM_SZ256 == 1 } then { set tmpvar_13 "256" } + global tmpvar_14 + set tmpvar_14 "1" global CONFIG_DCACHE_ASSO1 - if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_13 "1" } + if { $CONFIG_DCACHE_ASSO1 == 1 } then { set tmpvar_14 "1" } global CONFIG_DCACHE_ASSO2 - if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_13 "2" } + if { $CONFIG_DCACHE_ASSO2 == 1 } then { set tmpvar_14 "2" } global CONFIG_DCACHE_ASSO3 - if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_13 "3" } + if { $CONFIG_DCACHE_ASSO3 == 1 } then { set tmpvar_14 "3" } global CONFIG_DCACHE_ASSO4 - if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_13 "4" } - global tmpvar_14 - set tmpvar_14 "4" + if { $CONFIG_DCACHE_ASSO4 == 1 } then { set tmpvar_14 "4" } + global tmpvar_15 + set tmpvar_15 "4" global CONFIG_DCACHE_SZ1 - if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_14 "1" } + if { $CONFIG_DCACHE_SZ1 == 1 } then { set tmpvar_15 "1" } global CONFIG_DCACHE_SZ2 - if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_14 "2" } + if { $CONFIG_DCACHE_SZ2 == 1 } then { set tmpvar_15 "2" } global CONFIG_DCACHE_SZ4 - if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_14 "4" } + if { $CONFIG_DCACHE_SZ4 == 1 } then { set tmpvar_15 "4" } global CONFIG_DCACHE_SZ8 - if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_14 "8" } + if { $CONFIG_DCACHE_SZ8 == 1 } then { set tmpvar_15 "8" } global CONFIG_DCACHE_SZ16 - if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_14 "16" } + if { $CONFIG_DCACHE_SZ16 == 1 } then { set tmpvar_15 "16" } global CONFIG_DCACHE_SZ32 - if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_14 "32" } + if { $CONFIG_DCACHE_SZ32 == 1 } then { set tmpvar_15 "32" } global CONFIG_DCACHE_SZ64 - if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_14 "64" } + if { $CONFIG_DCACHE_SZ64 == 1 } then { set tmpvar_15 "64" } global CONFIG_DCACHE_SZ128 - if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_14 "128" } + if { $CONFIG_DCACHE_SZ128 == 1 } then { set tmpvar_15 "128" } global CONFIG_DCACHE_SZ256 - if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_14 "256" } - global tmpvar_15 - set tmpvar_15 "32" + if { $CONFIG_DCACHE_SZ256 == 1 } then { set tmpvar_15 "256" } + global tmpvar_16 + set tmpvar_16 "32" global CONFIG_DCACHE_LZ16 - if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_15 "16" } + if { $CONFIG_DCACHE_LZ16 == 1 } then { set tmpvar_16 "16" } global CONFIG_DCACHE_LZ32 - if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_15 "32" } - global tmpvar_16 - set tmpvar_16 "Random" + if { $CONFIG_DCACHE_LZ32 == 1 } then { set tmpvar_16 "32" } + global tmpvar_17 + set tmpvar_17 "Random" global CONFIG_DCACHE_ALGORND - if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_16 "Random" } + if { $CONFIG_DCACHE_ALGORND == 1 } then { set tmpvar_17 "Random" } global CONFIG_DCACHE_ALGODIR - if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_16 "Direct" } + if { $CONFIG_DCACHE_ALGODIR == 1 } then { set tmpvar_17 "Direct" } global CONFIG_DCACHE_ALGOLRR - if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_16 "LRR" } + if { $CONFIG_DCACHE_ALGOLRR == 1 } then { set tmpvar_17 "LRR" } global CONFIG_DCACHE_ALGOLRU - if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_16 "LRU" } - global tmpvar_17 - set tmpvar_17 "4" + if { $CONFIG_DCACHE_ALGOLRU == 1 } then { set tmpvar_17 "LRU" } + global tmpvar_18 + set tmpvar_18 "4" global CONFIG_DCACHE_LRAM_SZ1 - if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_17 "1" } + if { $CONFIG_DCACHE_LRAM_SZ1 == 1 } then { set tmpvar_18 "1" } global CONFIG_DCACHE_LRAM_SZ2 - if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_17 "2" } + if { $CONFIG_DCACHE_LRAM_SZ2 == 1 } then { set tmpvar_18 "2" } global CONFIG_DCACHE_LRAM_SZ4 - if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_17 "4" } + if { $CONFIG_DCACHE_LRAM_SZ4 == 1 } then { set tmpvar_18 "4" } global CONFIG_DCACHE_LRAM_SZ8 - if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_17 "8" } + if { $CONFIG_DCACHE_LRAM_SZ8 == 1 } then { set tmpvar_18 "8" } global CONFIG_DCACHE_LRAM_SZ16 - if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_17 "16" } + if { $CONFIG_DCACHE_LRAM_SZ16 == 1 } then { set tmpvar_18 "16" } global CONFIG_DCACHE_LRAM_SZ32 - if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_17 "32" } + if { $CONFIG_DCACHE_LRAM_SZ32 == 1 } then { set tmpvar_18 "32" } global CONFIG_DCACHE_LRAM_SZ64 - if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_17 "64" } + if { $CONFIG_DCACHE_LRAM_SZ64 == 1 } then { set tmpvar_18 "64" } global CONFIG_DCACHE_LRAM_SZ128 - if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_17 "128" } + if { $CONFIG_DCACHE_LRAM_SZ128 == 1 } then { set tmpvar_18 "128" } global CONFIG_DCACHE_LRAM_SZ256 - if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_17 "256" } - global tmpvar_18 - set tmpvar_18 "combined" + if { $CONFIG_DCACHE_LRAM_SZ256 == 1 } then { set tmpvar_18 "256" } + global tmpvar_19 + set tmpvar_19 "combined" global CONFIG_MMU_COMBINED - if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_18 "combined" } + if { $CONFIG_MMU_COMBINED == 1 } then { set tmpvar_19 "combined" } global CONFIG_MMU_SPLIT - if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_18 "split" } - global tmpvar_19 - set tmpvar_19 "Increment" + if { $CONFIG_MMU_SPLIT == 1 } then { set tmpvar_19 "split" } + global tmpvar_20 + set tmpvar_20 "Increment" global CONFIG_MMU_REPARRAY - if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_19 "LRU" } + if { $CONFIG_MMU_REPARRAY == 1 } then { set tmpvar_20 "LRU" } global CONFIG_MMU_REPINCREMENT - if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_19 "Increment" } - global tmpvar_20 - set tmpvar_20 "8" + if { $CONFIG_MMU_REPINCREMENT == 1 } then { set tmpvar_20 "Increment" } + global tmpvar_21 + set tmpvar_21 "8" global CONFIG_MMU_I2 - if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_20 "2" } + if { $CONFIG_MMU_I2 == 1 } then { set tmpvar_21 "2" } global CONFIG_MMU_I4 - if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_20 "4" } + if { $CONFIG_MMU_I4 == 1 } then { set tmpvar_21 "4" } global CONFIG_MMU_I8 - if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_20 "8" } + if { $CONFIG_MMU_I8 == 1 } then { set tmpvar_21 "8" } global CONFIG_MMU_I16 - if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_20 "16" } + if { $CONFIG_MMU_I16 == 1 } then { set tmpvar_21 "16" } global CONFIG_MMU_I32 - if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_20 "32" } - global tmpvar_21 - set tmpvar_21 "8" + if { $CONFIG_MMU_I32 == 1 } then { set tmpvar_21 "32" } + global CONFIG_MMU_I64 + if { $CONFIG_MMU_I64 == 1 } then { set tmpvar_21 "64" } + global tmpvar_22 + set tmpvar_22 "8" global CONFIG_MMU_D2 - if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_21 "2" } + if { $CONFIG_MMU_D2 == 1 } then { set tmpvar_22 "2" } global CONFIG_MMU_D4 - if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_21 "4" } + if { $CONFIG_MMU_D4 == 1 } then { set tmpvar_22 "4" } global CONFIG_MMU_D8 - if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_21 "8" } + if { $CONFIG_MMU_D8 == 1 } then { set tmpvar_22 "8" } global CONFIG_MMU_D16 - if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_21 "16" } + if { $CONFIG_MMU_D16 == 1 } then { set tmpvar_22 "16" } global CONFIG_MMU_D32 - if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_21 "32" } - global tmpvar_22 - set tmpvar_22 "4K" + if { $CONFIG_MMU_D32 == 1 } then { set tmpvar_22 "32" } + global CONFIG_MMU_D64 + if { $CONFIG_MMU_D64 == 1 } then { set tmpvar_22 "64" } + global tmpvar_23 + set tmpvar_23 "4K" global CONFIG_MMU_PAGE_4K - if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_22 "4K" } + if { $CONFIG_MMU_PAGE_4K == 1 } then { set tmpvar_23 "4K" } global CONFIG_MMU_PAGE_8K - if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_22 "8K" } + if { $CONFIG_MMU_PAGE_8K == 1 } then { set tmpvar_23 "8K" } global CONFIG_MMU_PAGE_16K - if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_22 "16K" } + if { $CONFIG_MMU_PAGE_16K == 1 } then { set tmpvar_23 "16K" } global CONFIG_MMU_PAGE_32K - if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_22 "32K" } + if { $CONFIG_MMU_PAGE_32K == 1 } then { set tmpvar_23 "32K" } global CONFIG_MMU_PAGE_PROG - if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_22 "Programmable" } - global tmpvar_23 - set tmpvar_23 "1" + if { $CONFIG_MMU_PAGE_PROG == 1 } then { set tmpvar_23 "Programmable" } + global tmpvar_24 + set tmpvar_24 "1" global CONFIG_DSU_ITRACESZ1 - if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_23 "1" } + if { $CONFIG_DSU_ITRACESZ1 == 1 } then { set tmpvar_24 "1" } global CONFIG_DSU_ITRACESZ2 - if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_23 "2" } + if { $CONFIG_DSU_ITRACESZ2 == 1 } then { set tmpvar_24 "2" } global CONFIG_DSU_ITRACESZ4 - if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_23 "4" } + if { $CONFIG_DSU_ITRACESZ4 == 1 } then { set tmpvar_24 "4" } global CONFIG_DSU_ITRACESZ8 - if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_23 "8" } + if { $CONFIG_DSU_ITRACESZ8 == 1 } then { set tmpvar_24 "8" } global CONFIG_DSU_ITRACESZ16 - if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_23 "16" } - global tmpvar_24 - set tmpvar_24 "1" + if { $CONFIG_DSU_ITRACESZ16 == 1 } then { set tmpvar_24 "16" } + global tmpvar_25 + set tmpvar_25 "1" global CONFIG_DSU_ATRACESZ1 - if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_24 "1" } + if { $CONFIG_DSU_ATRACESZ1 == 1 } then { set tmpvar_25 "1" } global CONFIG_DSU_ATRACESZ2 - if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_24 "2" } + if { $CONFIG_DSU_ATRACESZ2 == 1 } then { set tmpvar_25 "2" } global CONFIG_DSU_ATRACESZ4 - if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_24 "4" } + if { $CONFIG_DSU_ATRACESZ4 == 1 } then { set tmpvar_25 "4" } global CONFIG_DSU_ATRACESZ8 - if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_24 "8" } + if { $CONFIG_DSU_ATRACESZ8 == 1 } then { set tmpvar_25 "8" } global CONFIG_DSU_ATRACESZ16 - if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_24 "16" } - global tmpvar_25 - set tmpvar_25 "None" + if { $CONFIG_DSU_ATRACESZ16 == 1 } then { set tmpvar_25 "16" } + global tmpvar_26 + set tmpvar_26 "None" global CONFIG_IUFT_NONE - if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_25 "None" } + if { $CONFIG_IUFT_NONE == 1 } then { set tmpvar_26 "None" } global CONFIG_IUFT_PAR - if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_25 "Parity" } + if { $CONFIG_IUFT_PAR == 1 } then { set tmpvar_26 "Parity" } global CONFIG_IUFT_DMR - if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_25 "PDMR" } + if { $CONFIG_IUFT_DMR == 1 } then { set tmpvar_26 "PDMR" } global CONFIG_IUFT_BCH - if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_25 "BCH" } + if { $CONFIG_IUFT_BCH == 1 } then { set tmpvar_26 "BCH" } global CONFIG_IUFT_TMR - if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_25 "TMR" } - global tmpvar_26 - set tmpvar_26 "2" + if { $CONFIG_IUFT_TMR == 1 } then { set tmpvar_26 "TMR" } + global tmpvar_27 + set tmpvar_27 "None" + global CONFIG_FPUFT_NONE + if { $CONFIG_FPUFT_NONE == 1 } then { set tmpvar_27 "None" } + global CONFIG_FPUFT_PAR + if { $CONFIG_FPUFT_PAR == 1 } then { set tmpvar_27 "Parity" } + global CONFIG_FPUFT_DMR + if { $CONFIG_FPUFT_DMR == 1 } then { set tmpvar_27 "PDMR" } + global CONFIG_FPUFT_TMR + if { $CONFIG_FPUFT_TMR == 1 } then { set tmpvar_27 "TMR" } + global tmpvar_28 + set tmpvar_28 "2" global CONFIG_DSU_ETHSZ1 - if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_26 "1" } + if { $CONFIG_DSU_ETHSZ1 == 1 } then { set tmpvar_28 "1" } global CONFIG_DSU_ETHSZ2 - if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_26 "2" } + if { $CONFIG_DSU_ETHSZ2 == 1 } then { set tmpvar_28 "2" } global CONFIG_DSU_ETHSZ4 - if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_26 "4" } + if { $CONFIG_DSU_ETHSZ4 == 1 } then { set tmpvar_28 "4" } global CONFIG_DSU_ETHSZ8 - if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_26 "8" } + if { $CONFIG_DSU_ETHSZ8 == 1 } then { set tmpvar_28 "8" } global CONFIG_DSU_ETHSZ16 - if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_26 "16" } - global tmpvar_27 - set tmpvar_27 "1" + if { $CONFIG_DSU_ETHSZ16 == 1 } then { set tmpvar_28 "16" } + global tmpvar_29 + set tmpvar_29 "1" global CONFIG_SRCTRL_SRBANKS1 - if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_27 "1" } + if { $CONFIG_SRCTRL_SRBANKS1 == 1 } then { set tmpvar_29 "1" } global CONFIG_SRCTRL_SRBANKS2 - if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_27 "2" } + if { $CONFIG_SRCTRL_SRBANKS2 == 1 } then { set tmpvar_29 "2" } global CONFIG_SRCTRL_SRBANKS3 - if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_27 "3" } + if { $CONFIG_SRCTRL_SRBANKS3 == 1 } then { set tmpvar_29 "3" } global CONFIG_SRCTRL_SRBANKS4 - if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_27 "4" } + if { $CONFIG_SRCTRL_SRBANKS4 == 1 } then { set tmpvar_29 "4" } global CONFIG_SRCTRL_SRBANKS5 - if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_27 "5" } - global tmpvar_28 - set tmpvar_28 "0" + if { $CONFIG_SRCTRL_SRBANKS5 == 1 } then { set tmpvar_29 "5" } + global tmpvar_30 + set tmpvar_30 "0" global CONFIG_SRCTRL_BANKSZ0 - if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_28 "8" } + if { $CONFIG_SRCTRL_BANKSZ0 == 1 } then { set tmpvar_30 "8" } global CONFIG_SRCTRL_BANKSZ1 - if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_28 "16" } + if { $CONFIG_SRCTRL_BANKSZ1 == 1 } then { set tmpvar_30 "16" } global CONFIG_SRCTRL_BANKSZ2 - if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_28 "32" } + if { $CONFIG_SRCTRL_BANKSZ2 == 1 } then { set tmpvar_30 "32" } global CONFIG_SRCTRL_BANKSZ3 - if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_28 "64" } + if { $CONFIG_SRCTRL_BANKSZ3 == 1 } then { set tmpvar_30 "64" } global CONFIG_SRCTRL_BANKSZ4 - if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_28 "128" } + if { $CONFIG_SRCTRL_BANKSZ4 == 1 } then { set tmpvar_30 "128" } global CONFIG_SRCTRL_BANKSZ5 - if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_28 "256" } + if { $CONFIG_SRCTRL_BANKSZ5 == 1 } then { set tmpvar_30 "256" } global CONFIG_SRCTRL_BANKSZ6 - if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_28 "512" } + if { $CONFIG_SRCTRL_BANKSZ6 == 1 } then { set tmpvar_30 "512" } global CONFIG_SRCTRL_BANKSZ7 - if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_28 "1024" } + if { $CONFIG_SRCTRL_BANKSZ7 == 1 } then { set tmpvar_30 "1024" } global CONFIG_SRCTRL_BANKSZ8 - if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_28 "2048" } + if { $CONFIG_SRCTRL_BANKSZ8 == 1 } then { set tmpvar_30 "2048" } global CONFIG_SRCTRL_BANKSZ9 - if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_28 "4096" } + if { $CONFIG_SRCTRL_BANKSZ9 == 1 } then { set tmpvar_30 "4096" } global CONFIG_SRCTRL_BANKSZ10 - if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_28 "8192" } + if { $CONFIG_SRCTRL_BANKSZ10 == 1 } then { set tmpvar_30 "8192" } global CONFIG_SRCTRL_BANKSZ11 - if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_28 "16384" } + if { $CONFIG_SRCTRL_BANKSZ11 == 1 } then { set tmpvar_30 "16384" } global CONFIG_SRCTRL_BANKSZ12 - if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_28 "32768" } + if { $CONFIG_SRCTRL_BANKSZ12 == 1 } then { set tmpvar_30 "32768" } global CONFIG_SRCTRL_BANKSZ13 - if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_28 "65536" } - global tmpvar_29 - set tmpvar_29 "4" + if { $CONFIG_SRCTRL_BANKSZ13 == 1 } then { set tmpvar_30 "65536" } + global tmpvar_31 + set tmpvar_31 "4" global CONFIG_AHBRAM_SZ1 - if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_29 "1" } + if { $CONFIG_AHBRAM_SZ1 == 1 } then { set tmpvar_31 "1" } global CONFIG_AHBRAM_SZ2 - if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_29 "2" } + if { $CONFIG_AHBRAM_SZ2 == 1 } then { set tmpvar_31 "2" } global CONFIG_AHBRAM_SZ4 - if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_29 "4" } + if { $CONFIG_AHBRAM_SZ4 == 1 } then { set tmpvar_31 "4" } global CONFIG_AHBRAM_SZ8 - if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_29 "8" } + if { $CONFIG_AHBRAM_SZ8 == 1 } then { set tmpvar_31 "8" } global CONFIG_AHBRAM_SZ16 - if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_29 "16" } + if { $CONFIG_AHBRAM_SZ16 == 1 } then { set tmpvar_31 "16" } global CONFIG_AHBRAM_SZ32 - if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_29 "32" } + if { $CONFIG_AHBRAM_SZ32 == 1 } then { set tmpvar_31 "32" } global CONFIG_AHBRAM_SZ64 - if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_29 "64" } - global tmpvar_30 - set tmpvar_30 "8" + if { $CONFIG_AHBRAM_SZ64 == 1 } then { set tmpvar_31 "64" } + global tmpvar_32 + set tmpvar_32 "8" global CONFIG_GRETH_FIFO4 - if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_30 "4" } + if { $CONFIG_GRETH_FIFO4 == 1 } then { set tmpvar_32 "4" } global CONFIG_GRETH_FIFO8 - if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_30 "8" } + if { $CONFIG_GRETH_FIFO8 == 1 } then { set tmpvar_32 "8" } global CONFIG_GRETH_FIFO16 - if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_30 "16" } + if { $CONFIG_GRETH_FIFO16 == 1 } then { set tmpvar_32 "16" } global CONFIG_GRETH_FIFO32 - if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_30 "32" } + if { $CONFIG_GRETH_FIFO32 == 1 } then { set tmpvar_32 "32" } global CONFIG_GRETH_FIFO64 - if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_30 "64" } - global tmpvar_31 - set tmpvar_31 "8" + if { $CONFIG_GRETH_FIFO64 == 1 } then { set tmpvar_32 "64" } + global tmpvar_33 + set tmpvar_33 "8" global CONFIG_PCI_FIFO0 - if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_31 "None" } + if { $CONFIG_PCI_FIFO0 == 1 } then { set tmpvar_33 "None" } global CONFIG_PCI_FIFO8 - if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_31 "8" } + if { $CONFIG_PCI_FIFO8 == 1 } then { set tmpvar_33 "8" } global CONFIG_PCI_FIFO16 - if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_31 "16" } + if { $CONFIG_PCI_FIFO16 == 1 } then { set tmpvar_33 "16" } global CONFIG_PCI_FIFO32 - if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_31 "32" } + if { $CONFIG_PCI_FIFO32 == 1 } then { set tmpvar_33 "32" } global CONFIG_PCI_FIFO64 - if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_31 "64" } + if { $CONFIG_PCI_FIFO64 == 1 } then { set tmpvar_33 "64" } global CONFIG_PCI_FIFO128 - if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_31 "128" } - global tmpvar_32 - set tmpvar_32 "256" + if { $CONFIG_PCI_FIFO128 == 1 } then { set tmpvar_33 "128" } + global tmpvar_34 + set tmpvar_34 "256" global CONFIG_PCI_TRACE256 - if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_32 "256" } + if { $CONFIG_PCI_TRACE256 == 1 } then { set tmpvar_34 "256" } global CONFIG_PCI_TRACE512 - if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_32 "512" } + if { $CONFIG_PCI_TRACE512 == 1 } then { set tmpvar_34 "512" } global CONFIG_PCI_TRACE1024 - if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_32 "1024" } + if { $CONFIG_PCI_TRACE1024 == 1 } then { set tmpvar_34 "1024" } global CONFIG_PCI_TRACE2048 - if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_32 "2048" } + if { $CONFIG_PCI_TRACE2048 == 1 } then { set tmpvar_34 "2048" } global CONFIG_PCI_TRACE4096 - if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_32 "4096" } - global tmpvar_33 - set tmpvar_33 "16" + if { $CONFIG_PCI_TRACE4096 == 1 } then { set tmpvar_34 "4096" } + global tmpvar_35 + set tmpvar_35 "16" global CONFIG_SPW_AHBFIFO4 - if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_33 "4" } + if { $CONFIG_SPW_AHBFIFO4 == 1 } then { set tmpvar_35 "4" } global CONFIG_SPW_AHBFIFO8 - if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_33 "8" } + if { $CONFIG_SPW_AHBFIFO8 == 1 } then { set tmpvar_35 "8" } global CONFIG_SPW_AHBFIFO16 - if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_33 "16" } + if { $CONFIG_SPW_AHBFIFO16 == 1 } then { set tmpvar_35 "16" } global CONFIG_SPW_AHBFIFO32 - if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_33 "32" } - global tmpvar_34 - set tmpvar_34 "16" + if { $CONFIG_SPW_AHBFIFO32 == 1 } then { set tmpvar_35 "32" } + global tmpvar_36 + set tmpvar_36 "16" global CONFIG_SPW_RXFIFO16 - if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_34 "16" } + if { $CONFIG_SPW_RXFIFO16 == 1 } then { set tmpvar_36 "16" } global CONFIG_SPW_RXFIFO32 - if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_34 "32" } + if { $CONFIG_SPW_RXFIFO32 == 1 } then { set tmpvar_36 "32" } global CONFIG_SPW_RXFIFO64 - if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_34 "64" } - global tmpvar_35 - set tmpvar_35 "64" + if { $CONFIG_SPW_RXFIFO64 == 1 } then { set tmpvar_36 "64" } + global tmpvar_37 + set tmpvar_37 "64" global CONFIG_SPW_RMAPBUF2 - if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_35 "64" } + if { $CONFIG_SPW_RMAPBUF2 == 1 } then { set tmpvar_37 "64" } global CONFIG_SPW_RMAPBUF4 - if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_35 "128" } + if { $CONFIG_SPW_RMAPBUF4 == 1 } then { set tmpvar_37 "128" } global CONFIG_SPW_RMAPBUF6 - if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_35 "192" } + if { $CONFIG_SPW_RMAPBUF6 == 1 } then { set tmpvar_37 "192" } global CONFIG_SPW_RMAPBUF8 - if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_35 "256" } - global tmpvar_36 - set tmpvar_36 "2" + if { $CONFIG_SPW_RMAPBUF8 == 1 } then { set tmpvar_37 "256" } + global tmpvar_38 + set tmpvar_38 "2" global CONFIG_SPW_GRSPW1 - if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_36 "1" } + if { $CONFIG_SPW_GRSPW1 == 1 } then { set tmpvar_38 "1" } global CONFIG_SPW_GRSPW2 - if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_36 "2" } - global tmpvar_37 - set tmpvar_37 "DDR" + if { $CONFIG_SPW_GRSPW2 == 1 } then { set tmpvar_38 "2" } + global tmpvar_39 + set tmpvar_39 "DDR" global CONFIG_SPW_RX_SDR - if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_37 "SDR" } + if { $CONFIG_SPW_RX_SDR == 1 } then { set tmpvar_39 "SDR" } global CONFIG_SPW_RX_DDR - if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_37 "DDR" } + if { $CONFIG_SPW_RX_DDR == 1 } then { set tmpvar_39 "DDR" } global CONFIG_SPW_RX_XOR - if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_37 "Xor" } + if { $CONFIG_SPW_RX_XOR == 1 } then { set tmpvar_39 "Xor" } global CONFIG_SPW_RX_AFLEX - if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_37 "Aeroflex" } - global tmpvar_38 - set tmpvar_38 "SDR" + if { $CONFIG_SPW_RX_AFLEX == 1 } then { set tmpvar_39 "Aeroflex" } + global tmpvar_40 + set tmpvar_40 "SDR" global CONFIG_SPW_TX_SDR - if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_38 "SDR" } + if { $CONFIG_SPW_TX_SDR == 1 } then { set tmpvar_40 "SDR" } global CONFIG_SPW_TX_DDR - if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_38 "DDR" } + if { $CONFIG_SPW_TX_DDR == 1 } then { set tmpvar_40 "DDR" } global CONFIG_SPW_TX_AFLEX - if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_38 "Aeroflex" } - global tmpvar_39 - set tmpvar_39 "1" + if { $CONFIG_SPW_TX_AFLEX == 1 } then { set tmpvar_40 "Aeroflex" } + global tmpvar_41 + set tmpvar_41 "1" global CONFIG_UA1_FIFO1 - if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_39 "1" } + if { $CONFIG_UA1_FIFO1 == 1 } then { set tmpvar_41 "1" } global CONFIG_UA1_FIFO2 - if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_39 "2" } + if { $CONFIG_UA1_FIFO2 == 1 } then { set tmpvar_41 "2" } global CONFIG_UA1_FIFO4 - if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_39 "4" } + if { $CONFIG_UA1_FIFO4 == 1 } then { set tmpvar_41 "4" } global CONFIG_UA1_FIFO8 - if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_39 "8" } + if { $CONFIG_UA1_FIFO8 == 1 } then { set tmpvar_41 "8" } global CONFIG_UA1_FIFO16 - if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_39 "16" } + if { $CONFIG_UA1_FIFO16 == 1 } then { set tmpvar_41 "16" } global CONFIG_UA1_FIFO32 - if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_39 "32" } - global tmpvar_40 - set tmpvar_40 "1" + if { $CONFIG_UA1_FIFO32 == 1 } then { set tmpvar_41 "32" } + global tmpvar_42 + set tmpvar_42 "1" global CONFIG_UA2_FIFO1 - if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_40 "1" } + if { $CONFIG_UA2_FIFO1 == 1 } then { set tmpvar_42 "1" } global CONFIG_UA2_FIFO2 - if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_40 "2" } + if { $CONFIG_UA2_FIFO2 == 1 } then { set tmpvar_42 "2" } global CONFIG_UA2_FIFO4 - if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_40 "4" } + if { $CONFIG_UA2_FIFO4 == 1 } then { set tmpvar_42 "4" } global CONFIG_UA2_FIFO8 - if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_40 "8" } + if { $CONFIG_UA2_FIFO8 == 1 } then { set tmpvar_42 "8" } global CONFIG_UA2_FIFO16 - if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_40 "16" } + if { $CONFIG_UA2_FIFO16 == 1 } then { set tmpvar_42 "16" } global CONFIG_UA2_FIFO32 - if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_40 "32" } + if { $CONFIG_UA2_FIFO32 == 1 } then { set tmpvar_42 "32" } } diff --git a/designs/leon3mp/leon3mp.vhd b/designs/leon3mp/leon3mp.vhd index 1c640f13..f8a99c88 100644 --- a/designs/leon3mp/leon3mp.vhd +++ b/designs/leon3mp/leon3mp.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3mp/systest.c b/designs/leon3mp/systest.c index 100c2697..f5647a5f 100644 --- a/designs/leon3mp/systest.c +++ b/designs/leon3mp/systest.c @@ -1,7 +1,9 @@ + main() { + report_start(); base_test(); diff --git a/designs/leon3mp/testbench.vhd b/designs/leon3mp/testbench.vhd index c42ed2ce..d5a59662 100644 --- a/designs/leon3mp/testbench.vhd +++ b/designs/leon3mp/testbench.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/leon3mp/tkconfig.h b/designs/leon3mp/tkconfig.h index f47757f7..b839a88a 100644 --- a/designs/leon3mp/tkconfig.h +++ b/designs/leon3mp/tkconfig.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 @@ -143,6 +155,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T @@ -527,6 +541,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -549,6 +567,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else @@ -615,14 +637,14 @@ #define CONFIG_RF_ERRINJ 0 #endif -#ifndef CONFIG_FPUFT_EN -#define CONFIG_FPUFT 0 -#else -#ifdef CONFIG_FPU_GRFPU +#if defined CONFIG_FPUFT_PAR +#define CONFIG_FPUFT 1 +#elif defined CONFIG_FPUFT_DMR #define CONFIG_FPUFT 2 +#elif defined CONFIG_FPUFT_TMR +#define CONFIG_FPUFT 4 #else -#define CONFIG_FPUFT 1 -#endif +#define CONFIG_FPUFT 0 #endif #ifndef CONFIG_CACHE_FT_EN diff --git a/designs/netcard/Makefile b/designs/netcard/Makefile index 9051157c..ed416801 100644 --- a/designs/netcard/Makefile +++ b/designs/netcard/Makefile @@ -16,11 +16,11 @@ CLEAN=soft-clean TECHLIBS = unisim LIBSKIP = core1553bbc core1553brm core1553brt gr1553 corePCIF \ - tmtc openchip hynix cypress micron ihp gleichmann opencores esa + tmtc openchip hynix cypress micron ihp opencores esa -DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr usb ata leon3ft \ - usbhc leon3 haps can i2c satcan ascs spi memctrl hcan slink \ - coremp7 leon4 leon4b64 +DIRSKIP = b1553 pcif leon2 leon2ft crypto satcan ddr usb leon3ft \ + usbhc leon3 can i2c satcan ascs spi memctrl hcan slink \ + leon4 leon4v0 leon3 leon3v1 leon3ftv1 leon3ftv2 srmmu irqmp FILESKIP = i2cmst.vhd diff --git a/designs/netcard/config.help b/designs/netcard/config.help index 5265f645..e1e57e3c 100644 --- a/designs/netcard/config.help +++ b/designs/netcard/config.help @@ -2,14 +2,14 @@ Prompt for target technology CONFIG_SYN_INFERRED - Selects the target technology for memory and pads. + Selects the target technology for memory and pads. The following are available: - Inferred: Generic FPGA or ASIC targets if your synthesis tool is capable of inferring RAMs and pads automatically. - - Actel ProAsic/P/3 and Axellerator FPGAs - - Aeroflex UT25CRH Rad-Hard 0.25 um CMOS + - Actel ProAsic/P/3, IGLOO and Axcelerator FPGAs + - Aeroflex UT25CRH Rad-Hard 0.25 um CMOS - Altera: Most Altera FPGA families - Altera-Stratix: Altera Stratix FPGA family - Altera-StratixII: Altera Stratix-II FPGA family @@ -19,15 +19,19 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE - Select RAM generators for ASIC targets. + Select RAM generators for ASIC targets. Infer ram CONFIG_SYN_INFER_RAM @@ -59,31 +63,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. @@ -98,6 +104,16 @@ CONFIG_OCLK_DIV Static PLL configurator. The mul/div factors can then be read out from tool. +Output clock divider, 2nd clock +CONFIG_OCLKB_DIV + See help for 'Ouput division factor'. Set this to 0 to disable the + second clock output. + +Output clock divider, 3rd clock +CONFIG_OCLKC_DIV + See help for 'Ouput division factor'. Set this to 0 to disable the + third clock output. + System clock multiplier CONFIG_CLKDLL_1_2 The Xilinx CLKDLL can scale the input clock with a factor of 0.5, 1.0, @@ -149,7 +165,13 @@ CONFIG_AHB_SPLIT Unless you actually have an AHB slave that can generate AHB split responses, say N and save some gates. -Default AHB master +Enable full PnP decoding +CONFIG_AHB_FPNPEN + Say Y here to enable full decoding of the PnP configuration records in + in the AHB arbiter. When disabled the user-defined registers in the + PnP configuration records are not mapped in the configuration area. + +IO area start address CONFIG_AHB_IOADDR Selects the MSB adddress (HADDR[31:20]) of the AHB IO area, as defined in the plug&play extentions of the AMBA bus. Should be kept to FFF @@ -174,6 +196,10 @@ Report AHB warnings CONFIG_AHB_MONWAR Print out detected AHB warnings on console. +Write trace to console +CONFIG_AHB_DTRACE + Say yes here to write a trace of all AHB transfers to the + simulator console. Has not impact on final netlist. DSU enable CONFIG_DSU_UART @@ -183,8 +209,16 @@ CONFIG_DSU_UART JTAG Enable CONFIG_DSU_JTAG Say Y to enable the JTAG debug link (JTAG-to-AHB). Debugging is done - with GRMON through the boards JTAG chain at speed of 300 kbits/s. - Supported JTAG cables are Xilinx Parallel Cable III and IV. + with GRMON through the boards JTAG chain at speeds of up to 800 kbits/s. + + The TAP controller can be implemented in custom macros on + Altera, Actel Proasic/3 and Xilinx devices. The commercial + GRLIB also includes a generic TAP controller in VHDL. + + Supported JTAG cables are Xilinx Parallel Cable III and IV, + Xilinx Platform cables (USB), and Altera parallel and USB cables, + Amontech JTAG key, various FTDI chip based USB/JTAG devices, and + Actel Flash Pro 3/4 cable. On-chip ram CONFIG_AHBRAM_ENABLE diff --git a/designs/netcard/config.vhd.h b/designs/netcard/config.vhd.h index f9c3e46e..3bfb4899 100644 --- a/designs/netcard/config.vhd.h +++ b/designs/netcard/config.vhd.h @@ -10,6 +10,8 @@ constant CFG_CLKMUL : integer := CONFIG_CLK_MUL; constant CFG_CLKDIV : integer := CONFIG_CLK_DIV; constant CFG_OCLKDIV : integer := CONFIG_OCLK_DIV; + constant CFG_OCLKBDIV : integer := CONFIG_OCLKB_DIV; + constant CFG_OCLKCDIV : integer := CONFIG_OCLKC_DIV; constant CFG_PCIDLL : integer := CONFIG_PCI_CLKDLL; constant CFG_PCISYSCLK: integer := CONFIG_PCI_SYSCLK; constant CFG_CLK_NOFB : integer := CONFIG_CLK_NOFB; @@ -18,11 +20,13 @@ constant CFG_DEFMST : integer := CONFIG_AHB_DEFMST; constant CFG_RROBIN : integer := CONFIG_AHB_RROBIN; constant CFG_SPLIT : integer := CONFIG_AHB_SPLIT; + constant CFG_FPNPEN : integer := CONFIG_AHB_FPNPEN; constant CFG_AHBIO : integer := 16#CONFIG_AHB_IOADDR#; constant CFG_APBADDR : integer := 16#CONFIG_APB_HADDR#; constant CFG_AHB_MON : integer := CONFIG_AHB_MON; constant CFG_AHB_MONERR : integer := CONFIG_AHB_MONERR; constant CFG_AHB_MONWAR : integer := CONFIG_AHB_MONWAR; + constant CFG_AHB_DTRACE : integer := CONFIG_AHB_DTRACE; -- DSU UART constant CFG_AHB_UART : integer := CONFIG_DSU_UART; diff --git a/designs/netcard/lconfig.tk b/designs/netcard/lconfig.tk index 42f7da86..225ae035 100755 --- a/designs/netcard/lconfig.tk +++ b/designs/netcard/lconfig.tk @@ -712,14 +712,23 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "Altera-CycloneIII" -variable tmpvar_0 -value "Altera-CycloneIII" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Altera-Others" -variable tmpvar_0 -value "Altera-Others" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Actel-Axcelerator" -variable tmpvar_0 -value "Actel-Axcelerator" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Actel-Axcelerator-DSP" -variable tmpvar_0 -value "Actel-Axcelerator-DSP" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Actel-Proasic" -variable tmpvar_0 -value "Actel-Proasic" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Actel-ProasicPlus" -variable tmpvar_0 -value "Actel-ProasicPlus" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Actel-Proasic3" -variable tmpvar_0 -value "Actel-Proasic3" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Actel-Proasic3E" -variable tmpvar_0 -value "Actel-Proasic3E" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Actel-Proasic3L" -variable tmpvar_0 -value "Actel-Proasic3L" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Actel-IGLOO/p/L" -variable tmpvar_0 -value "Actel-IGLOO/p/L" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Actel-Fusion" -variable tmpvar_0 -value "Actel-Fusion" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Aeroflex-UT025CRH" -variable tmpvar_0 -value "Aeroflex-UT025CRH" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Aeroflex-UT130HBD" -variable tmpvar_0 -value "Aeroflex-UT130HBD" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Aeroflex-UT90NHBD" -variable tmpvar_0 -value "Aeroflex-UT90NHBD" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Atmel-ATC18" -variable tmpvar_0 -value "Atmel-ATC18" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Atmel-ATC18RHA" -variable tmpvar_0 -value "Atmel-ATC18RHA" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "IBM-CMOS9SF" -variable tmpvar_0 -value "IBM-CMOS9SF" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Custom1" -variable tmpvar_0 -value "Custom1" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "eASIC90" -variable tmpvar_0 -value "eASIC90" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "eASIC45" -variable tmpvar_0 -value "eASIC45" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "IHP25" -variable tmpvar_0 -value "IHP25" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "IHP25RH" -variable tmpvar_0 -value "IHP25RH" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Lattice-EC/ECP/XP" -variable tmpvar_0 -value "Lattice-EC/ECP/XP" -command "update_active" @@ -728,17 +737,23 @@ proc menu1 {w title} { $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T" -variable tmpvar_0 -value "RH-LIB18T" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-UMC" -variable tmpvar_0 -value "RH-UMC" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "SMIC130" -variable tmpvar_0 -value "SMIC130" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan2" -variable tmpvar_0 -value "Xilinx-Spartan2" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "TM65Gplus" -variable tmpvar_0 -value "TM65Gplus" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Artix7" -variable tmpvar_0 -value "Xilinx-Artix7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Kintex7" -variable tmpvar_0 -value "Xilinx-Kintex7" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3" -variable tmpvar_0 -value "Xilinx-Spartan3" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan3E" -variable tmpvar_0 -value "Xilinx-Spartan3E" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Spartan6" -variable tmpvar_0 -value "Xilinx-Spartan6" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex" -variable tmpvar_0 -value "Xilinx-Virtex" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-VirtexE" -variable tmpvar_0 -value "Xilinx-VirtexE" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex2" -variable tmpvar_0 -value "Xilinx-Virtex2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex4" -variable tmpvar_0 -value "Xilinx-Virtex4" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex5" -variable tmpvar_0 -value "Xilinx-Virtex5" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "UMC180" -variable tmpvar_0 -value "UMC180" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "TSMC90" -variable tmpvar_0 -value "TSMC90" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 33 + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex6" -variable tmpvar_0 -value "Xilinx-Virtex6" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Virtex7" -variable tmpvar_0 -value "Xilinx-Virtex7" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-Zynq7000" -variable tmpvar_0 -value "Xilinx-Zynq7000" -command "update_active" + menusplit $w $w.config.f.x0.x.menu 48 global tmpvar_1 minimenu $w.config.f 1 1 "Memory Library " tmpvar_1 CONFIG_MEM_INFERRED menu $w.config.f.x1.x.menu -tearoffcommand "menutitle \"Memory Library \"" @@ -825,22 +840,40 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Altera-Others"} then {set CONFIG_SYN_ALTERA 1} else {set CONFIG_SYN_ALTERA 0} global CONFIG_SYN_AXCEL if {$tmpvar_0 == "Actel-Axcelerator"} then {set CONFIG_SYN_AXCEL 1} else {set CONFIG_SYN_AXCEL 0} + global CONFIG_SYN_AXDSP + if {$tmpvar_0 == "Actel-Axcelerator-DSP"} then {set CONFIG_SYN_AXDSP 1} else {set CONFIG_SYN_AXDSP 0} global CONFIG_SYN_PROASIC if {$tmpvar_0 == "Actel-Proasic"} then {set CONFIG_SYN_PROASIC 1} else {set CONFIG_SYN_PROASIC 0} global CONFIG_SYN_PROASICPLUS if {$tmpvar_0 == "Actel-ProasicPlus"} then {set CONFIG_SYN_PROASICPLUS 1} else {set CONFIG_SYN_PROASICPLUS 0} global CONFIG_SYN_PROASIC3 if {$tmpvar_0 == "Actel-Proasic3"} then {set CONFIG_SYN_PROASIC3 1} else {set CONFIG_SYN_PROASIC3 0} + global CONFIG_SYN_PROASIC3E + if {$tmpvar_0 == "Actel-Proasic3E"} then {set CONFIG_SYN_PROASIC3E 1} else {set CONFIG_SYN_PROASIC3E 0} + global CONFIG_SYN_PROASIC3L + if {$tmpvar_0 == "Actel-Proasic3L"} then {set CONFIG_SYN_PROASIC3L 1} else {set CONFIG_SYN_PROASIC3L 0} + global CONFIG_SYN_IGLOO + if {$tmpvar_0 == "Actel-IGLOO/p/L"} then {set CONFIG_SYN_IGLOO 1} else {set CONFIG_SYN_IGLOO 0} + global CONFIG_SYN_FUSION + if {$tmpvar_0 == "Actel-Fusion"} then {set CONFIG_SYN_FUSION 1} else {set CONFIG_SYN_FUSION 0} global CONFIG_SYN_UT025CRH if {$tmpvar_0 == "Aeroflex-UT025CRH"} then {set CONFIG_SYN_UT025CRH 1} else {set CONFIG_SYN_UT025CRH 0} + global CONFIG_SYN_UT130HBD + if {$tmpvar_0 == "Aeroflex-UT130HBD"} then {set CONFIG_SYN_UT130HBD 1} else {set CONFIG_SYN_UT130HBD 0} + global CONFIG_SYN_UT90NHBD + if {$tmpvar_0 == "Aeroflex-UT90NHBD"} then {set CONFIG_SYN_UT90NHBD 1} else {set CONFIG_SYN_UT90NHBD 0} global CONFIG_SYN_ATC18 if {$tmpvar_0 == "Atmel-ATC18"} then {set CONFIG_SYN_ATC18 1} else {set CONFIG_SYN_ATC18 0} global CONFIG_SYN_ATC18RHA if {$tmpvar_0 == "Atmel-ATC18RHA"} then {set CONFIG_SYN_ATC18RHA 1} else {set CONFIG_SYN_ATC18RHA 0} + global CONFIG_SYN_CMOS9SF + if {$tmpvar_0 == "IBM-CMOS9SF"} then {set CONFIG_SYN_CMOS9SF 1} else {set CONFIG_SYN_CMOS9SF 0} global CONFIG_SYN_CUSTOM1 if {$tmpvar_0 == "Custom1"} then {set CONFIG_SYN_CUSTOM1 1} else {set CONFIG_SYN_CUSTOM1 0} global CONFIG_SYN_EASIC90 if {$tmpvar_0 == "eASIC90"} then {set CONFIG_SYN_EASIC90 1} else {set CONFIG_SYN_EASIC90 0} + global CONFIG_SYN_EASIC45 + if {$tmpvar_0 == "eASIC45"} then {set CONFIG_SYN_EASIC45 1} else {set CONFIG_SYN_EASIC45 0} global CONFIG_SYN_IHP25 if {$tmpvar_0 == "IHP25"} then {set CONFIG_SYN_IHP25 1} else {set CONFIG_SYN_IHP25 0} global CONFIG_SYN_IHP25RH @@ -857,12 +890,22 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "RH-UMC"} then {set CONFIG_SYN_RHUMC 1} else {set CONFIG_SYN_RHUMC 0} global CONFIG_SYN_SMIC13 if {$tmpvar_0 == "SMIC130"} then {set CONFIG_SYN_SMIC13 1} else {set CONFIG_SYN_SMIC13 0} - global CONFIG_SYN_SPARTAN2 - if {$tmpvar_0 == "Xilinx-Spartan2"} then {set CONFIG_SYN_SPARTAN2 1} else {set CONFIG_SYN_SPARTAN2 0} + global CONFIG_SYN_TM65GPLUS + if {$tmpvar_0 == "TM65Gplus"} then {set CONFIG_SYN_TM65GPLUS 1} else {set CONFIG_SYN_TM65GPLUS 0} + global CONFIG_SYN_TSMC90 + if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} + global CONFIG_SYN_UMC + if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} + global CONFIG_SYN_ARTIX7 + if {$tmpvar_0 == "Xilinx-Artix7"} then {set CONFIG_SYN_ARTIX7 1} else {set CONFIG_SYN_ARTIX7 0} + global CONFIG_SYN_KINTEX7 + if {$tmpvar_0 == "Xilinx-Kintex7"} then {set CONFIG_SYN_KINTEX7 1} else {set CONFIG_SYN_KINTEX7 0} global CONFIG_SYN_SPARTAN3 if {$tmpvar_0 == "Xilinx-Spartan3"} then {set CONFIG_SYN_SPARTAN3 1} else {set CONFIG_SYN_SPARTAN3 0} global CONFIG_SYN_SPARTAN3E if {$tmpvar_0 == "Xilinx-Spartan3E"} then {set CONFIG_SYN_SPARTAN3E 1} else {set CONFIG_SYN_SPARTAN3E 0} + global CONFIG_SYN_SPARTAN6 + if {$tmpvar_0 == "Xilinx-Spartan6"} then {set CONFIG_SYN_SPARTAN6 1} else {set CONFIG_SYN_SPARTAN6 0} global CONFIG_SYN_VIRTEX if {$tmpvar_0 == "Xilinx-Virtex"} then {set CONFIG_SYN_VIRTEX 1} else {set CONFIG_SYN_VIRTEX 0} global CONFIG_SYN_VIRTEXE @@ -873,10 +916,12 @@ proc update_define_menu1 {} { if {$tmpvar_0 == "Xilinx-Virtex4"} then {set CONFIG_SYN_VIRTEX4 1} else {set CONFIG_SYN_VIRTEX4 0} global CONFIG_SYN_VIRTEX5 if {$tmpvar_0 == "Xilinx-Virtex5"} then {set CONFIG_SYN_VIRTEX5 1} else {set CONFIG_SYN_VIRTEX5 0} - global CONFIG_SYN_UMC - if {$tmpvar_0 == "UMC180"} then {set CONFIG_SYN_UMC 1} else {set CONFIG_SYN_UMC 0} - global CONFIG_SYN_TSMC90 - if {$tmpvar_0 == "TSMC90"} then {set CONFIG_SYN_TSMC90 1} else {set CONFIG_SYN_TSMC90 0} + global CONFIG_SYN_VIRTEX6 + if {$tmpvar_0 == "Xilinx-Virtex6"} then {set CONFIG_SYN_VIRTEX6 1} else {set CONFIG_SYN_VIRTEX6 0} + global CONFIG_SYN_VIRTEX7 + if {$tmpvar_0 == "Xilinx-Virtex7"} then {set CONFIG_SYN_VIRTEX7 1} else {set CONFIG_SYN_VIRTEX7 0} + global CONFIG_SYN_ZYNQ7000 + if {$tmpvar_0 == "Xilinx-Zynq7000"} then {set CONFIG_SYN_ZYNQ7000 1} else {set CONFIG_SYN_ZYNQ7000 0} global tmpvar_1 global CONFIG_MEM_INFERRED if {$tmpvar_1 == "Inferred"} then {set CONFIG_MEM_INFERRED 1} else {set CONFIG_MEM_INFERRED 0} @@ -957,20 +1002,27 @@ proc menu2 {w title} { menu $w.config.f.x0.x.menu -tearoffcommand "menutitle \"Clock generator \"" $w.config.f.x0.x.menu add radiobutton -label "Inferred" -variable tmpvar_2 -value "Inferred" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Actel-HCLKBUF" -variable tmpvar_2 -value "Actel-HCLKBUF" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Aeroflex-UT130HBD" -variable tmpvar_2 -value "Aeroflex-UT130HBD" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Altera-ALTPLL" -variable tmpvar_2 -value "Altera-ALTPLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Lattice-EXPLL" -variable tmpvar_2 -value "Lattice-EXPLL" -command "update_active" - $w.config.f.x0.x.menu add radiobutton -label "Proasic3-PLLL" -variable tmpvar_2 -value "Proasic3-PLLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Proasic3-PLL" -variable tmpvar_2 -value "Proasic3-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Proasic3E-PLL" -variable tmpvar_2 -value "Proasic3E-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Proasic3L-PLL" -variable tmpvar_2 -value "Proasic3L-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Fusion-PLL" -variable tmpvar_2 -value "Fusion-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "RH-LIB18T-PLL" -variable tmpvar_2 -value "RH-LIB18T-PLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "DARE-PLL" -variable tmpvar_2 -value "DARE-PLL" -command "update_active" + $w.config.f.x0.x.menu add radiobutton -label "Xilinx-PLLE2" -variable tmpvar_2 -value "Xilinx-PLLE2" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-CLKDLL" -variable tmpvar_2 -value "Xilinx-CLKDLL" -command "update_active" $w.config.f.x0.x.menu add radiobutton -label "Xilinx-DCM" -variable tmpvar_2 -value "Xilinx-DCM" -command "update_active" - menusplit $w $w.config.f.x0.x.menu 9 - int $w.config.f 2 1 "Clock multiplication factor (2 - 32)" CONFIG_CLK_MUL - int $w.config.f 2 2 "Clock division factor (2 - 32)" CONFIG_CLK_DIV - int $w.config.f 2 3 "Outout division factor (2 - 32)" CONFIG_OCLK_DIV - bool $w.config.f 2 4 "Enable Xilinx CLKDLL for PCI clock" CONFIG_PCI_CLKDLL - bool $w.config.f 2 5 "Disable external feedback for SDRAM clock" CONFIG_CLK_NOFB - bool $w.config.f 2 6 "Use PCI clock as system clock" CONFIG_PCI_SYSCLK + menusplit $w $w.config.f.x0.x.menu 14 + int $w.config.f 2 1 "Clock multiplication factor (allowed values are tech dependent)" CONFIG_CLK_MUL + int $w.config.f 2 2 "Clock division factor (allowed values are tech dependent)" CONFIG_CLK_DIV + int $w.config.f 2 3 "Outout division factor (1 - 32)" CONFIG_OCLK_DIV + int $w.config.f 2 4 "Outout division factor, 2nd clk (0 - 32, see help)" CONFIG_OCLKB_DIV + int $w.config.f 2 5 "Outout division factor, 3rd clk (0 - 32, see help)" CONFIG_OCLKC_DIV + bool $w.config.f 2 6 "Enable Xilinx CLKDLL for PCI clock" CONFIG_PCI_CLKDLL + bool $w.config.f 2 7 "Disable external feedback for SDRAM clock" CONFIG_CLK_NOFB + bool $w.config.f 2 8 "Use PCI clock as system clock" CONFIG_PCI_SYSCLK @@ -1011,24 +1063,32 @@ proc update_menu2 {} { global CONFIG_CLK_ALTDLL global CONFIG_CLK_LATDLL global CONFIG_CLK_PRO3PLL + global CONFIG_CLK_PRO3EPLL + global CONFIG_CLK_PRO3LPLL global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T + global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 global CONFIG_CLK_MUL - 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_CLK_DIV - 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 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} global CONFIG_OCLK_DIV - 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} + if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 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} + global CONFIG_OCLKB_DIV + if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu2.config.f.x4.x configure -state normal -foreground [ cget .ref -foreground ]; .menu2.config.f.x4.l configure -state normal; } else {.menu2.config.f.x4.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu2.config.f.x4.l configure -state disabled} + global CONFIG_OCLKC_DIV + if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {.menu2.config.f.x5.x configure -state normal -foreground [ cget .ref -foreground ]; .menu2.config.f.x5.l configure -state normal; } else {.menu2.config.f.x5.x configure -state disabled -foreground [ cget .ref -disabledforeground ]; .menu2.config.f.x5.l configure -state disabled} global CONFIG_PCI_CLKDLL if {($CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_DCM == 1)} then { - configure_entry .menu2.config.f.x4 normal {n l y}} else {configure_entry .menu2.config.f.x4 disabled {y n l}} + configure_entry .menu2.config.f.x6 normal {n l y}} else {configure_entry .menu2.config.f.x6 disabled {y n l}} global CONFIG_CLK_NOFB if {($CONFIG_CLK_DCM == 1)} then { - configure_entry .menu2.config.f.x5 normal {n l y}} else {configure_entry .menu2.config.f.x5 disabled {y n l}} + configure_entry .menu2.config.f.x7 normal {n l y}} else {configure_entry .menu2.config.f.x7 disabled {y n l}} global CONFIG_PCI_ENABLE global CONFIG_PCI_SYSCLK if {($CONFIG_PCI_ENABLE != 1)} then { - configure_entry .menu2.config.f.x6 normal {n l y}} else {configure_entry .menu2.config.f.x6 disabled {y n l}} + configure_entry .menu2.config.f.x8 normal {n l y}} else {configure_entry .menu2.config.f.x8 disabled {y n l}} } @@ -1040,26 +1100,40 @@ proc update_define_menu2 {} { if {$tmpvar_2 == "Inferred"} then {set CONFIG_CLK_INFERRED 1} else {set CONFIG_CLK_INFERRED 0} global CONFIG_CLK_HCLKBUF if {$tmpvar_2 == "Actel-HCLKBUF"} then {set CONFIG_CLK_HCLKBUF 1} else {set CONFIG_CLK_HCLKBUF 0} + global CONFIG_CLK_UT130HBD + if {$tmpvar_2 == "Aeroflex-UT130HBD"} then {set CONFIG_CLK_UT130HBD 1} else {set CONFIG_CLK_UT130HBD 0} global CONFIG_CLK_ALTDLL if {$tmpvar_2 == "Altera-ALTPLL"} then {set CONFIG_CLK_ALTDLL 1} else {set CONFIG_CLK_ALTDLL 0} global CONFIG_CLK_LATDLL if {$tmpvar_2 == "Lattice-EXPLL"} then {set CONFIG_CLK_LATDLL 1} else {set CONFIG_CLK_LATDLL 0} global CONFIG_CLK_PRO3PLL - if {$tmpvar_2 == "Proasic3-PLLL"} then {set CONFIG_CLK_PRO3PLL 1} else {set CONFIG_CLK_PRO3PLL 0} + if {$tmpvar_2 == "Proasic3-PLL"} then {set CONFIG_CLK_PRO3PLL 1} else {set CONFIG_CLK_PRO3PLL 0} + global CONFIG_CLK_PRO3EPLL + if {$tmpvar_2 == "Proasic3E-PLL"} then {set CONFIG_CLK_PRO3EPLL 1} else {set CONFIG_CLK_PRO3EPLL 0} + global CONFIG_CLK_PRO3LPLL + if {$tmpvar_2 == "Proasic3L-PLL"} then {set CONFIG_CLK_PRO3LPLL 1} else {set CONFIG_CLK_PRO3LPLL 0} + global CONFIG_CLK_FUSPLL + if {$tmpvar_2 == "Fusion-PLL"} then {set CONFIG_CLK_FUSPLL 1} else {set CONFIG_CLK_FUSPLL 0} global CONFIG_CLK_LIB18T if {$tmpvar_2 == "RH-LIB18T-PLL"} then {set CONFIG_CLK_LIB18T 1} else {set CONFIG_CLK_LIB18T 0} global CONFIG_CLK_RHUMC if {$tmpvar_2 == "DARE-PLL"} then {set CONFIG_CLK_RHUMC 1} else {set CONFIG_CLK_RHUMC 0} + global CONFIG_CLK_CLKPLLE2 + if {$tmpvar_2 == "Xilinx-PLLE2"} then {set CONFIG_CLK_CLKPLLE2 1} else {set CONFIG_CLK_CLKPLLE2 0} global CONFIG_CLK_CLKDLL if {$tmpvar_2 == "Xilinx-CLKDLL"} then {set CONFIG_CLK_CLKDLL 1} else {set CONFIG_CLK_CLKDLL 0} global CONFIG_CLK_DCM if {$tmpvar_2 == "Xilinx-DCM"} then {set CONFIG_CLK_DCM 1} else {set CONFIG_CLK_DCM 0} global CONFIG_CLK_MUL - 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_MUL "$CONFIG_CLK_MUL" 2} global CONFIG_CLK_DIV - 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} + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {validate_int CONFIG_CLK_DIV "$CONFIG_CLK_DIV" 2} global CONFIG_OCLK_DIV - if {($CONFIG_CLK_PRO3PLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 2} + if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLK_DIV "$CONFIG_OCLK_DIV" 1} + global CONFIG_OCLKB_DIV + if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLKB_DIV "$CONFIG_OCLKB_DIV" 0} + global CONFIG_OCLKC_DIV + if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {validate_int CONFIG_OCLKC_DIV "$CONFIG_OCLKC_DIV" 0} global CONFIG_PCI_CLKDLL if {($CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_DCM == 1)} then { set CONFIG_PCI_CLKDLL [expr $CONFIG_PCI_CLKDLL&15]} else {set CONFIG_PCI_CLKDLL [expr $CONFIG_PCI_CLKDLL|16]} @@ -1127,11 +1201,13 @@ proc menu3 {w title} { int $w.config.f 3 0 "Default AHB master" CONFIG_AHB_DEFMST bool $w.config.f 3 1 "Round-robin arbiter " CONFIG_AHB_RROBIN bool $w.config.f 3 2 "AHB split-transaction support " CONFIG_AHB_SPLIT - hex $w.config.f 3 3 "I/O area start address (haddr\[31:20\]) " CONFIG_AHB_IOADDR - hex $w.config.f 3 4 "AHB/APB bridge address (haddr\[31:20\]) " CONFIG_APB_HADDR - bool $w.config.f 3 5 "Enable AMBA AHB monitor " CONFIG_AHB_MON - bool $w.config.f 3 6 "Report AHB errors " CONFIG_AHB_MONERR - bool $w.config.f 3 7 "Report AHB warings " CONFIG_AHB_MONWAR + bool $w.config.f 3 3 "Enable full plug&play decoding " CONFIG_AHB_FPNPEN + hex $w.config.f 3 4 "I/O area start address (haddr\[31:20\]) " CONFIG_AHB_IOADDR + hex $w.config.f 3 5 "AHB/APB bridge address (haddr\[31:20\]) " CONFIG_APB_HADDR + bool $w.config.f 3 6 "Enable AMBA AHB monitor " CONFIG_AHB_MON + bool $w.config.f 3 7 "Report AHB errors " CONFIG_AHB_MONERR + bool $w.config.f 3 8 "Report AHB warings " CONFIG_AHB_MONWAR + bool $w.config.f 3 9 "Write trace to simulation console " CONFIG_AHB_DTRACE @@ -1171,10 +1247,10 @@ proc update_menu3 {} { global CONFIG_AHB_MON global CONFIG_AHB_MONERR if {($CONFIG_AHB_MON == 1)} then { - configure_entry .menu3.config.f.x6 normal {n l y}} else {configure_entry .menu3.config.f.x6 disabled {y n l}} + configure_entry .menu3.config.f.x7 normal {n l y}} else {configure_entry .menu3.config.f.x7 disabled {y n l}} global CONFIG_AHB_MONWAR if {($CONFIG_AHB_MON == 1)} then { - configure_entry .menu3.config.f.x7 normal {n l y}} else {configure_entry .menu3.config.f.x7 disabled {y n l}} + configure_entry .menu3.config.f.x8 normal {n l y}} else {configure_entry .menu3.config.f.x8 disabled {y n l}} } @@ -1741,14 +1817,23 @@ set CONFIG_SYN_STRATIXIII 0 set CONFIG_SYN_CYCLONEIII 0 set CONFIG_SYN_ALTERA 0 set CONFIG_SYN_AXCEL 0 +set CONFIG_SYN_AXDSP 0 set CONFIG_SYN_PROASIC 0 set CONFIG_SYN_PROASICPLUS 0 set CONFIG_SYN_PROASIC3 0 +set CONFIG_SYN_PROASIC3E 0 +set CONFIG_SYN_PROASIC3L 0 +set CONFIG_SYN_IGLOO 0 +set CONFIG_SYN_FUSION 0 set CONFIG_SYN_UT025CRH 0 +set CONFIG_SYN_UT130HBD 0 +set CONFIG_SYN_UT90NHBD 0 set CONFIG_SYN_ATC18 0 set CONFIG_SYN_ATC18RHA 0 +set CONFIG_SYN_CMOS9SF 0 set CONFIG_SYN_CUSTOM1 0 set CONFIG_SYN_EASIC90 0 +set CONFIG_SYN_EASIC45 0 set CONFIG_SYN_IHP25 0 set CONFIG_SYN_IHP25RH 0 set CONFIG_SYN_LATTICE 0 @@ -1757,16 +1842,22 @@ set CONFIG_SYN_PEREGRINE 0 set CONFIG_SYN_RH_LIB18T 0 set CONFIG_SYN_RHUMC 0 set CONFIG_SYN_SMIC13 0 -set CONFIG_SYN_SPARTAN2 0 +set CONFIG_SYN_TM65GPLUS 0 +set CONFIG_SYN_TSMC90 0 +set CONFIG_SYN_UMC 0 +set CONFIG_SYN_ARTIX7 0 +set CONFIG_SYN_KINTEX7 0 set CONFIG_SYN_SPARTAN3 0 set CONFIG_SYN_SPARTAN3E 0 +set CONFIG_SYN_SPARTAN6 0 set CONFIG_SYN_VIRTEX 0 set CONFIG_SYN_VIRTEXE 0 set CONFIG_SYN_VIRTEX2 0 set CONFIG_SYN_VIRTEX4 0 set CONFIG_SYN_VIRTEX5 0 -set CONFIG_SYN_UMC 0 -set CONFIG_SYN_TSMC90 0 +set CONFIG_SYN_VIRTEX6 0 +set CONFIG_SYN_VIRTEX7 0 +set CONFIG_SYN_ZYNQ7000 0 set tmpvar_1 "(not set)" set CONFIG_MEM_INFERRED 0 set CONFIG_MEM_UMC 0 @@ -1782,27 +1873,36 @@ set CONFIG_SYN_SCAN 0 set tmpvar_2 "(not set)" set CONFIG_CLK_INFERRED 0 set CONFIG_CLK_HCLKBUF 0 +set CONFIG_CLK_UT130HBD 0 set CONFIG_CLK_ALTDLL 0 set CONFIG_CLK_LATDLL 0 set CONFIG_CLK_PRO3PLL 0 +set CONFIG_CLK_PRO3EPLL 0 +set CONFIG_CLK_PRO3LPLL 0 +set CONFIG_CLK_FUSPLL 0 set CONFIG_CLK_LIB18T 0 set CONFIG_CLK_RHUMC 0 +set CONFIG_CLK_CLKPLLE2 0 set CONFIG_CLK_CLKDLL 0 set CONFIG_CLK_DCM 0 set CONFIG_CLK_MUL 2 set CONFIG_CLK_DIV 2 -set CONFIG_OCLK_DIV 2 +set CONFIG_OCLK_DIV 1 +set CONFIG_OCLKB_DIV 0 +set CONFIG_OCLKC_DIV 0 set CONFIG_PCI_CLKDLL 0 set CONFIG_CLK_NOFB 0 set CONFIG_PCI_SYSCLK 0 set CONFIG_AHB_DEFMST 0 set CONFIG_AHB_RROBIN 0 set CONFIG_AHB_SPLIT 0 +set CONFIG_AHB_FPNPEN 0 set CONFIG_AHB_IOADDR FFF set CONFIG_APB_HADDR 800 set CONFIG_AHB_MON 0 set CONFIG_AHB_MONERR 0 set CONFIG_AHB_MONWAR 0 +set CONFIG_AHB_DTRACE 0 set CONFIG_DSU_UART 0 set CONFIG_DSU_JTAG 0 set CONFIG_AHBRAM_ENABLE 0 @@ -1869,14 +1969,23 @@ proc writeconfig {file1 file2} { 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 } 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 } 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 } + if { $tmpvar_0 == "Actel-Axcelerator-DSP" } then { write_tristate $cfg $autocfg CONFIG_SYN_AXDSP 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_AXDSP 0 [list $notmod] 2 } 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 } 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 } 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 } + if { $tmpvar_0 == "Actel-Proasic3E" } then { write_tristate $cfg $autocfg CONFIG_SYN_PROASIC3E 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_PROASIC3E 0 [list $notmod] 2 } + if { $tmpvar_0 == "Actel-Proasic3L" } then { write_tristate $cfg $autocfg CONFIG_SYN_PROASIC3L 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_PROASIC3L 0 [list $notmod] 2 } + if { $tmpvar_0 == "Actel-IGLOO/p/L" } then { write_tristate $cfg $autocfg CONFIG_SYN_IGLOO 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_IGLOO 0 [list $notmod] 2 } + if { $tmpvar_0 == "Actel-Fusion" } then { write_tristate $cfg $autocfg CONFIG_SYN_FUSION 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_FUSION 0 [list $notmod] 2 } 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 } + if { $tmpvar_0 == "Aeroflex-UT130HBD" } then { write_tristate $cfg $autocfg CONFIG_SYN_UT130HBD 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UT130HBD 0 [list $notmod] 2 } + if { $tmpvar_0 == "Aeroflex-UT90NHBD" } then { write_tristate $cfg $autocfg CONFIG_SYN_UT90NHBD 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UT90NHBD 0 [list $notmod] 2 } 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 } if { $tmpvar_0 == "Atmel-ATC18RHA" } then { write_tristate $cfg $autocfg CONFIG_SYN_ATC18RHA 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ATC18RHA 0 [list $notmod] 2 } + if { $tmpvar_0 == "IBM-CMOS9SF" } then { write_tristate $cfg $autocfg CONFIG_SYN_CMOS9SF 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_CMOS9SF 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_0 == "eASIC45" } then { write_tristate $cfg $autocfg CONFIG_SYN_EASIC45 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_EASIC45 0 [list $notmod] 2 } 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 } 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 } 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 } @@ -1885,16 +1994,22 @@ proc writeconfig {file1 file2} { 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 } 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 } if { $tmpvar_0 == "SMIC130" } then { write_tristate $cfg $autocfg CONFIG_SYN_SMIC13 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SMIC13 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "TM65Gplus" } then { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_TM65GPLUS 0 [list $notmod] 2 } + 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 } + if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Artix7" } then { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ARTIX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Kintex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_KINTEX7 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_0 == "Xilinx-Spartan6" } then { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_SPARTAN6 0 [list $notmod] 2 } 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 } 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 } 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 } 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 } 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 } - if { $tmpvar_0 == "UMC180" } then { write_tristate $cfg $autocfg CONFIG_SYN_UMC 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_UMC 0 [list $notmod] 2 } - 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 } + if { $tmpvar_0 == "Xilinx-Virtex6" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX6 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Virtex7" } then { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_VIRTEX7 0 [list $notmod] 2 } + if { $tmpvar_0 == "Xilinx-Zynq7000" } then { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_SYN_ZYNQ7000 0 [list $notmod] 2 } global tmpvar_1 global CONFIG_SYN_INFERRED global CONFIG_SYN_CUSTOM1 @@ -1924,11 +2039,16 @@ proc writeconfig {file1 file2} { 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 } 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 } + if { $tmpvar_2 == "Aeroflex-UT130HBD" } then { write_tristate $cfg $autocfg CONFIG_CLK_UT130HBD 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_UT130HBD 0 [list $notmod] 2 } 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 } 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 } - 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 } + if { $tmpvar_2 == "Proasic3-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_PRO3PLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_PRO3PLL 0 [list $notmod] 2 } + if { $tmpvar_2 == "Proasic3E-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_PRO3EPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_PRO3EPLL 0 [list $notmod] 2 } + if { $tmpvar_2 == "Proasic3L-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_PRO3LPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_PRO3LPLL 0 [list $notmod] 2 } + if { $tmpvar_2 == "Fusion-PLL" } then { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_FUSPLL 0 [list $notmod] 2 } 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 } 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 } + if { $tmpvar_2 == "Xilinx-PLLE2" } then { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 1 [list $notmod] 2 } else { write_tristate $cfg $autocfg CONFIG_CLK_CLKPLLE2 0 [list $notmod] 2 } 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 } 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 } global CONFIG_CLK_MUL @@ -1936,13 +2056,21 @@ proc writeconfig {file1 file2} { global CONFIG_CLK_ALTDLL global CONFIG_CLK_LATDLL global CONFIG_CLK_PRO3PLL + global CONFIG_CLK_PRO3EPLL + global CONFIG_CLK_PRO3LPLL global CONFIG_CLK_CLKDLL global CONFIG_CLK_LIB18T - 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 } + global CONFIG_CLK_FUSPLL + global CONFIG_CLK_CLKPLLE2 + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_MUL $CONFIG_CLK_MUL $notmod } global CONFIG_CLK_DIV - 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 } + if {($CONFIG_CLK_DCM == 1 || $CONFIG_CLK_ALTDLL == 1 || $CONFIG_CLK_LATDLL == 1 || $CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_LIB18T == 1 || $CONFIG_CLK_FUSPLL == 1 || $CONFIG_CLK_CLKPLLE2 == 1)} then {write_int $cfg $autocfg CONFIG_CLK_DIV $CONFIG_CLK_DIV $notmod } global CONFIG_OCLK_DIV - if {($CONFIG_CLK_PRO3PLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } + if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLK_DIV $CONFIG_OCLK_DIV $notmod } + global CONFIG_OCLKB_DIV + if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLKB_DIV $CONFIG_OCLKB_DIV $notmod } + global CONFIG_OCLKC_DIV + if {($CONFIG_CLK_PRO3PLL == 1 || $CONFIG_CLK_PRO3EPLL == 1 || $CONFIG_CLK_PRO3LPLL == 1 || $CONFIG_CLK_FUSPLL == 1)} then {write_int $cfg $autocfg CONFIG_OCLKC_DIV $CONFIG_OCLKC_DIV $notmod } global CONFIG_PCI_CLKDLL if {($CONFIG_CLK_CLKDLL == 1 || $CONFIG_CLK_DCM == 1)} then {write_tristate $cfg $autocfg CONFIG_PCI_CLKDLL $CONFIG_PCI_CLKDLL [list $notmod] 2 } global CONFIG_CLK_NOFB @@ -1957,6 +2085,8 @@ proc writeconfig {file1 file2} { write_tristate $cfg $autocfg CONFIG_AHB_RROBIN $CONFIG_AHB_RROBIN [list $notmod] 2 global CONFIG_AHB_SPLIT write_tristate $cfg $autocfg CONFIG_AHB_SPLIT $CONFIG_AHB_SPLIT [list $notmod] 2 + global CONFIG_AHB_FPNPEN + write_tristate $cfg $autocfg CONFIG_AHB_FPNPEN $CONFIG_AHB_FPNPEN [list $notmod] 2 global CONFIG_AHB_IOADDR write_hex $cfg $autocfg CONFIG_AHB_IOADDR $CONFIG_AHB_IOADDR $notmod global CONFIG_APB_HADDR @@ -1967,6 +2097,8 @@ proc writeconfig {file1 file2} { if {($CONFIG_AHB_MON == 1)} then {write_tristate $cfg $autocfg CONFIG_AHB_MONERR $CONFIG_AHB_MONERR [list $notmod] 2 } global CONFIG_AHB_MONWAR if {($CONFIG_AHB_MON == 1)} then {write_tristate $cfg $autocfg CONFIG_AHB_MONWAR $CONFIG_AHB_MONWAR [list $notmod] 2 } + global CONFIG_AHB_DTRACE + write_tristate $cfg $autocfg CONFIG_AHB_DTRACE $CONFIG_AHB_DTRACE [list $notmod] 2 write_comment $cfg $autocfg "Debug Link " global CONFIG_DSU_UART write_tristate $cfg $autocfg CONFIG_DSU_UART $CONFIG_DSU_UART [list $notmod] 2 @@ -2042,14 +2174,23 @@ proc clear_choices { } { global CONFIG_SYN_CYCLONEIII; set CONFIG_SYN_CYCLONEIII 0 global CONFIG_SYN_ALTERA; set CONFIG_SYN_ALTERA 0 global CONFIG_SYN_AXCEL; set CONFIG_SYN_AXCEL 0 + global CONFIG_SYN_AXDSP; set CONFIG_SYN_AXDSP 0 global CONFIG_SYN_PROASIC; set CONFIG_SYN_PROASIC 0 global CONFIG_SYN_PROASICPLUS; set CONFIG_SYN_PROASICPLUS 0 global CONFIG_SYN_PROASIC3; set CONFIG_SYN_PROASIC3 0 + global CONFIG_SYN_PROASIC3E; set CONFIG_SYN_PROASIC3E 0 + global CONFIG_SYN_PROASIC3L; set CONFIG_SYN_PROASIC3L 0 + global CONFIG_SYN_IGLOO; set CONFIG_SYN_IGLOO 0 + global CONFIG_SYN_FUSION; set CONFIG_SYN_FUSION 0 global CONFIG_SYN_UT025CRH; set CONFIG_SYN_UT025CRH 0 + global CONFIG_SYN_UT130HBD; set CONFIG_SYN_UT130HBD 0 + global CONFIG_SYN_UT90NHBD; set CONFIG_SYN_UT90NHBD 0 global CONFIG_SYN_ATC18; set CONFIG_SYN_ATC18 0 global CONFIG_SYN_ATC18RHA; set CONFIG_SYN_ATC18RHA 0 + global CONFIG_SYN_CMOS9SF; set CONFIG_SYN_CMOS9SF 0 global CONFIG_SYN_CUSTOM1; set CONFIG_SYN_CUSTOM1 0 global CONFIG_SYN_EASIC90; set CONFIG_SYN_EASIC90 0 + global CONFIG_SYN_EASIC45; set CONFIG_SYN_EASIC45 0 global CONFIG_SYN_IHP25; set CONFIG_SYN_IHP25 0 global CONFIG_SYN_IHP25RH; set CONFIG_SYN_IHP25RH 0 global CONFIG_SYN_LATTICE; set CONFIG_SYN_LATTICE 0 @@ -2058,16 +2199,22 @@ proc clear_choices { } { global CONFIG_SYN_RH_LIB18T; set CONFIG_SYN_RH_LIB18T 0 global CONFIG_SYN_RHUMC; set CONFIG_SYN_RHUMC 0 global CONFIG_SYN_SMIC13; set CONFIG_SYN_SMIC13 0 - global CONFIG_SYN_SPARTAN2; set CONFIG_SYN_SPARTAN2 0 + global CONFIG_SYN_TM65GPLUS; set CONFIG_SYN_TM65GPLUS 0 + global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 + global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 + global CONFIG_SYN_ARTIX7; set CONFIG_SYN_ARTIX7 0 + global CONFIG_SYN_KINTEX7; set CONFIG_SYN_KINTEX7 0 global CONFIG_SYN_SPARTAN3; set CONFIG_SYN_SPARTAN3 0 global CONFIG_SYN_SPARTAN3E; set CONFIG_SYN_SPARTAN3E 0 + global CONFIG_SYN_SPARTAN6; set CONFIG_SYN_SPARTAN6 0 global CONFIG_SYN_VIRTEX; set CONFIG_SYN_VIRTEX 0 global CONFIG_SYN_VIRTEXE; set CONFIG_SYN_VIRTEXE 0 global CONFIG_SYN_VIRTEX2; set CONFIG_SYN_VIRTEX2 0 global CONFIG_SYN_VIRTEX4; set CONFIG_SYN_VIRTEX4 0 global CONFIG_SYN_VIRTEX5; set CONFIG_SYN_VIRTEX5 0 - global CONFIG_SYN_UMC; set CONFIG_SYN_UMC 0 - global CONFIG_SYN_TSMC90; set CONFIG_SYN_TSMC90 0 + global CONFIG_SYN_VIRTEX6; set CONFIG_SYN_VIRTEX6 0 + global CONFIG_SYN_VIRTEX7; set CONFIG_SYN_VIRTEX7 0 + global CONFIG_SYN_ZYNQ7000; set CONFIG_SYN_ZYNQ7000 0 global CONFIG_MEM_INFERRED; set CONFIG_MEM_INFERRED 0 global CONFIG_MEM_UMC; set CONFIG_MEM_UMC 0 global CONFIG_MEM_RHUMC; set CONFIG_MEM_RHUMC 0 @@ -2077,11 +2224,16 @@ proc clear_choices { } { global CONFIG_MEM_VIRAGE90; set CONFIG_MEM_VIRAGE90 0 global CONFIG_CLK_INFERRED; set CONFIG_CLK_INFERRED 0 global CONFIG_CLK_HCLKBUF; set CONFIG_CLK_HCLKBUF 0 + global CONFIG_CLK_UT130HBD; set CONFIG_CLK_UT130HBD 0 global CONFIG_CLK_ALTDLL; set CONFIG_CLK_ALTDLL 0 global CONFIG_CLK_LATDLL; set CONFIG_CLK_LATDLL 0 global CONFIG_CLK_PRO3PLL; set CONFIG_CLK_PRO3PLL 0 + global CONFIG_CLK_PRO3EPLL; set CONFIG_CLK_PRO3EPLL 0 + global CONFIG_CLK_PRO3LPLL; set CONFIG_CLK_PRO3LPLL 0 + global CONFIG_CLK_FUSPLL; set CONFIG_CLK_FUSPLL 0 global CONFIG_CLK_LIB18T; set CONFIG_CLK_LIB18T 0 global CONFIG_CLK_RHUMC; set CONFIG_CLK_RHUMC 0 + global CONFIG_CLK_CLKPLLE2; set CONFIG_CLK_CLKPLLE2 0 global CONFIG_CLK_CLKDLL; set CONFIG_CLK_CLKDLL 0 global CONFIG_CLK_DCM; set CONFIG_CLK_DCM 0 global CONFIG_AHBRAM_SZ1; set CONFIG_AHBRAM_SZ1 0 @@ -2127,22 +2279,40 @@ proc update_choices { } { if { $CONFIG_SYN_ALTERA == 1 } then { set tmpvar_0 "Altera-Others" } global CONFIG_SYN_AXCEL if { $CONFIG_SYN_AXCEL == 1 } then { set tmpvar_0 "Actel-Axcelerator" } + global CONFIG_SYN_AXDSP + if { $CONFIG_SYN_AXDSP == 1 } then { set tmpvar_0 "Actel-Axcelerator-DSP" } global CONFIG_SYN_PROASIC if { $CONFIG_SYN_PROASIC == 1 } then { set tmpvar_0 "Actel-Proasic" } global CONFIG_SYN_PROASICPLUS if { $CONFIG_SYN_PROASICPLUS == 1 } then { set tmpvar_0 "Actel-ProasicPlus" } global CONFIG_SYN_PROASIC3 if { $CONFIG_SYN_PROASIC3 == 1 } then { set tmpvar_0 "Actel-Proasic3" } + global CONFIG_SYN_PROASIC3E + if { $CONFIG_SYN_PROASIC3E == 1 } then { set tmpvar_0 "Actel-Proasic3E" } + global CONFIG_SYN_PROASIC3L + if { $CONFIG_SYN_PROASIC3L == 1 } then { set tmpvar_0 "Actel-Proasic3L" } + global CONFIG_SYN_IGLOO + if { $CONFIG_SYN_IGLOO == 1 } then { set tmpvar_0 "Actel-IGLOO/p/L" } + global CONFIG_SYN_FUSION + if { $CONFIG_SYN_FUSION == 1 } then { set tmpvar_0 "Actel-Fusion" } global CONFIG_SYN_UT025CRH if { $CONFIG_SYN_UT025CRH == 1 } then { set tmpvar_0 "Aeroflex-UT025CRH" } + global CONFIG_SYN_UT130HBD + if { $CONFIG_SYN_UT130HBD == 1 } then { set tmpvar_0 "Aeroflex-UT130HBD" } + global CONFIG_SYN_UT90NHBD + if { $CONFIG_SYN_UT90NHBD == 1 } then { set tmpvar_0 "Aeroflex-UT90NHBD" } global CONFIG_SYN_ATC18 if { $CONFIG_SYN_ATC18 == 1 } then { set tmpvar_0 "Atmel-ATC18" } global CONFIG_SYN_ATC18RHA if { $CONFIG_SYN_ATC18RHA == 1 } then { set tmpvar_0 "Atmel-ATC18RHA" } + global CONFIG_SYN_CMOS9SF + if { $CONFIG_SYN_CMOS9SF == 1 } then { set tmpvar_0 "IBM-CMOS9SF" } global CONFIG_SYN_CUSTOM1 if { $CONFIG_SYN_CUSTOM1 == 1 } then { set tmpvar_0 "Custom1" } global CONFIG_SYN_EASIC90 if { $CONFIG_SYN_EASIC90 == 1 } then { set tmpvar_0 "eASIC90" } + global CONFIG_SYN_EASIC45 + if { $CONFIG_SYN_EASIC45 == 1 } then { set tmpvar_0 "eASIC45" } global CONFIG_SYN_IHP25 if { $CONFIG_SYN_IHP25 == 1 } then { set tmpvar_0 "IHP25" } global CONFIG_SYN_IHP25RH @@ -2159,12 +2329,22 @@ proc update_choices { } { if { $CONFIG_SYN_RHUMC == 1 } then { set tmpvar_0 "RH-UMC" } global CONFIG_SYN_SMIC13 if { $CONFIG_SYN_SMIC13 == 1 } then { set tmpvar_0 "SMIC130" } - global CONFIG_SYN_SPARTAN2 - if { $CONFIG_SYN_SPARTAN2 == 1 } then { set tmpvar_0 "Xilinx-Spartan2" } + global CONFIG_SYN_TM65GPLUS + if { $CONFIG_SYN_TM65GPLUS == 1 } then { set tmpvar_0 "TM65Gplus" } + global CONFIG_SYN_TSMC90 + if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } + global CONFIG_SYN_UMC + if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } + global CONFIG_SYN_ARTIX7 + if { $CONFIG_SYN_ARTIX7 == 1 } then { set tmpvar_0 "Xilinx-Artix7" } + global CONFIG_SYN_KINTEX7 + if { $CONFIG_SYN_KINTEX7 == 1 } then { set tmpvar_0 "Xilinx-Kintex7" } global CONFIG_SYN_SPARTAN3 if { $CONFIG_SYN_SPARTAN3 == 1 } then { set tmpvar_0 "Xilinx-Spartan3" } global CONFIG_SYN_SPARTAN3E if { $CONFIG_SYN_SPARTAN3E == 1 } then { set tmpvar_0 "Xilinx-Spartan3E" } + global CONFIG_SYN_SPARTAN6 + if { $CONFIG_SYN_SPARTAN6 == 1 } then { set tmpvar_0 "Xilinx-Spartan6" } global CONFIG_SYN_VIRTEX if { $CONFIG_SYN_VIRTEX == 1 } then { set tmpvar_0 "Xilinx-Virtex" } global CONFIG_SYN_VIRTEXE @@ -2175,10 +2355,12 @@ proc update_choices { } { if { $CONFIG_SYN_VIRTEX4 == 1 } then { set tmpvar_0 "Xilinx-Virtex4" } global CONFIG_SYN_VIRTEX5 if { $CONFIG_SYN_VIRTEX5 == 1 } then { set tmpvar_0 "Xilinx-Virtex5" } - global CONFIG_SYN_UMC - if { $CONFIG_SYN_UMC == 1 } then { set tmpvar_0 "UMC180" } - global CONFIG_SYN_TSMC90 - if { $CONFIG_SYN_TSMC90 == 1 } then { set tmpvar_0 "TSMC90" } + global CONFIG_SYN_VIRTEX6 + if { $CONFIG_SYN_VIRTEX6 == 1 } then { set tmpvar_0 "Xilinx-Virtex6" } + global CONFIG_SYN_VIRTEX7 + if { $CONFIG_SYN_VIRTEX7 == 1 } then { set tmpvar_0 "Xilinx-Virtex7" } + global CONFIG_SYN_ZYNQ7000 + if { $CONFIG_SYN_ZYNQ7000 == 1 } then { set tmpvar_0 "Xilinx-Zynq7000" } global tmpvar_1 set tmpvar_1 "Inferred" global CONFIG_MEM_INFERRED @@ -2201,16 +2383,26 @@ proc update_choices { } { if { $CONFIG_CLK_INFERRED == 1 } then { set tmpvar_2 "Inferred" } global CONFIG_CLK_HCLKBUF if { $CONFIG_CLK_HCLKBUF == 1 } then { set tmpvar_2 "Actel-HCLKBUF" } + global CONFIG_CLK_UT130HBD + if { $CONFIG_CLK_UT130HBD == 1 } then { set tmpvar_2 "Aeroflex-UT130HBD" } global CONFIG_CLK_ALTDLL if { $CONFIG_CLK_ALTDLL == 1 } then { set tmpvar_2 "Altera-ALTPLL" } global CONFIG_CLK_LATDLL if { $CONFIG_CLK_LATDLL == 1 } then { set tmpvar_2 "Lattice-EXPLL" } global CONFIG_CLK_PRO3PLL - if { $CONFIG_CLK_PRO3PLL == 1 } then { set tmpvar_2 "Proasic3-PLLL" } + if { $CONFIG_CLK_PRO3PLL == 1 } then { set tmpvar_2 "Proasic3-PLL" } + global CONFIG_CLK_PRO3EPLL + if { $CONFIG_CLK_PRO3EPLL == 1 } then { set tmpvar_2 "Proasic3E-PLL" } + global CONFIG_CLK_PRO3LPLL + if { $CONFIG_CLK_PRO3LPLL == 1 } then { set tmpvar_2 "Proasic3L-PLL" } + global CONFIG_CLK_FUSPLL + if { $CONFIG_CLK_FUSPLL == 1 } then { set tmpvar_2 "Fusion-PLL" } global CONFIG_CLK_LIB18T if { $CONFIG_CLK_LIB18T == 1 } then { set tmpvar_2 "RH-LIB18T-PLL" } global CONFIG_CLK_RHUMC if { $CONFIG_CLK_RHUMC == 1 } then { set tmpvar_2 "DARE-PLL" } + global CONFIG_CLK_CLKPLLE2 + if { $CONFIG_CLK_CLKPLLE2 == 1 } then { set tmpvar_2 "Xilinx-PLLE2" } global CONFIG_CLK_CLKDLL if { $CONFIG_CLK_CLKDLL == 1 } then { set tmpvar_2 "Xilinx-CLKDLL" } global CONFIG_CLK_DCM diff --git a/designs/netcard/netcard.vhd b/designs/netcard/netcard.vhd index 632d7eb6..17958af3 100644 --- a/designs/netcard/netcard.vhd +++ b/designs/netcard/netcard.vhd @@ -4,7 +4,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/designs/netcard/tkconfig.h b/designs/netcard/tkconfig.h index 4e1d7f1f..a4a80fd6 100644 --- a/designs/netcard/tkconfig.h +++ b/designs/netcard/tkconfig.h @@ -10,6 +10,8 @@ #define CONFIG_SYN_TECH atc18rha #elif defined CONFIG_SYN_AXCEL #define CONFIG_SYN_TECH axcel +#elif defined CONFIG_SYN_AXDSP +#define CONFIG_SYN_TECH axdsp #elif defined CONFIG_SYN_PROASICPLUS #define CONFIG_SYN_TECH proasic #elif defined CONFIG_SYN_ALTERA @@ -22,12 +24,16 @@ #define CONFIG_SYN_TECH stratix3 #elif defined CONFIG_SYN_CYCLONEIII #define CONFIG_SYN_TECH cyclone3 +#elif defined CONFIG_SYN_EASIC45 +#define CONFIG_SYN_TECH easic45 #elif defined CONFIG_SYN_EASIC90 #define CONFIG_SYN_TECH easic90 #elif defined CONFIG_SYN_IHP25 #define CONFIG_SYN_TECH ihp25 #elif defined CONFIG_SYN_IHP25RH #define CONFIG_SYN_TECH ihp25rh +#elif defined CONFIG_SYN_CMOS9SF +#define CONFIG_SYN_TECH cmos9sf #elif defined CONFIG_SYN_LATTICE #define CONFIG_SYN_TECH lattice #elif defined CONFIG_SYN_ECLIPSE @@ -38,6 +44,14 @@ #define CONFIG_SYN_TECH proasic #elif defined CONFIG_SYN_PROASIC3 #define CONFIG_SYN_TECH apa3 +#elif defined CONFIG_SYN_PROASIC3E +#define CONFIG_SYN_TECH apa3e +#elif defined CONFIG_SYN_PROASIC3L +#define CONFIG_SYN_TECH apa3l +#elif defined CONFIG_SYN_IGLOO +#define CONFIG_SYN_TECH apa3 +#elif defined CONFIG_SYN_FUSION +#define CONFIG_SYN_TECH actfus #elif defined CONFIG_SYN_SPARTAN2 #define CONFIG_SYN_TECH virtex #elif defined CONFIG_SYN_VIRTEX @@ -48,20 +62,42 @@ #define CONFIG_SYN_TECH spartan3 #elif defined CONFIG_SYN_SPARTAN3E #define CONFIG_SYN_TECH spartan3e +#elif defined CONFIG_SYN_SPARTAN6 +#define CONFIG_SYN_TECH spartan6 #elif defined CONFIG_SYN_VIRTEX2 #define CONFIG_SYN_TECH virtex2 #elif defined CONFIG_SYN_VIRTEX4 #define CONFIG_SYN_TECH virtex4 #elif defined CONFIG_SYN_VIRTEX5 #define CONFIG_SYN_TECH virtex5 +#elif defined CONFIG_SYN_VIRTEX6 +#define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 #define CONFIG_SYN_TECH smic013 #elif defined CONFIG_SYN_UT025CRH #define CONFIG_SYN_TECH ut25 +#elif defined CONFIG_SYN_UT130HBD +#define CONFIG_SYN_TECH ut130 +#elif defined CONFIG_SYN_UT90NHBD +#define CONFIG_SYN_TECH ut90 #elif defined CONFIG_SYN_TSMC90 #define CONFIG_SYN_TECH tsmc90 +#elif defined CONFIG_SYN_TM65GPLUS +#define CONFIG_SYN_TECH tm65gpl #elif defined CONFIG_SYN_CUSTOM1 #define CONFIG_SYN_TECH custom1 #else @@ -111,14 +147,24 @@ #define CFG_CLK_TECH lattice #elif defined CONFIG_CLK_PRO3PLL #define CFG_CLK_TECH apa3 +#elif defined CONFIG_CLK_PRO3EPLL +#define CFG_CLK_TECH apa3e +#elif defined CONFIG_CLK_PRO3LPLL +#define CFG_CLK_TECH apa3l +#elif defined CONFIG_CLK_FUSPLL +#define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T #define CFG_CLK_TECH rhlib18t #elif defined CONFIG_CLK_RHUMC #define CFG_CLK_TECH rhumc +#elif defined CONFIG_CLK_UT130HBD +#define CFG_CLK_TECH ut130 #else #define CFG_CLK_TECH inferred #endif @@ -132,7 +178,15 @@ #endif #ifndef CONFIG_OCLK_DIV -#define CONFIG_OCLK_DIV 2 +#define CONFIG_OCLK_DIV 1 +#endif + +#ifndef CONFIG_OCLKB_DIV +#define CONFIG_OCLKB_DIV 0 +#endif + +#ifndef CONFIG_OCLKC_DIV +#define CONFIG_OCLKC_DIV 0 #endif #ifndef CONFIG_PCI_CLKDLL @@ -154,6 +208,10 @@ #define CONFIG_AHB_RROBIN 0 #endif +#ifndef CONFIG_AHB_FPNPEN +#define CONFIG_AHB_FPNPEN 0 +#endif + #ifndef CONFIG_AHB_IOADDR #define CONFIG_AHB_IOADDR FFF #endif @@ -174,6 +232,10 @@ #define CONFIG_AHB_MONWAR 0 #endif +#ifndef CONFIG_AHB_DTRACE +#define CONFIG_AHB_DTRACE 0 +#endif + #ifndef CONFIG_DSU_UART #define CONFIG_DSU_UART 0 #endif diff --git a/doc/Changelog.txt b/doc/Changelog.txt index ec1be664..331e0f7b 100644 --- a/doc/Changelog.txt +++ b/doc/Changelog.txt @@ -1,4 +1,135 @@ -2012-08-09 SPICTRL: Fix transmit queue race condition introduced in +----------------------- Release 1.2.1-b4122 ---------------------------- + +2013-01-15 Fixed soft calibration error for MIG39 in SPARTAN6 designs + +2013-01-15 TECHMAP: Add support for SPARTAN-6 LVDS IOs + +2013-01-15 leon3-gr-xc6s: Added clock deskew PLL to improve USB HOST timing + +2013-01-15 Made GRLIB RGMII block technology independent + +2013-01-15 Corrected erroneous instantiation of mig37 in ML605 design + +----------------------- Release 1.2.0-b4121 ---------------------------- + +2012-12-20 Added ISE14.3 and PlanAhead support for Virtex 6 and Spartan 6 + template designs. + +2012-12-19 DDRSPA: Add phy implementation config VHDL generic (phyiconf) + +2012-12-17 GRETH: Support larger frames (maxsize VHDL generic added) + +2012-12-16 Added (experimental) support for Zynq-7000 and ZedBoard + (leon3-digilent-xc7z020). + +2012-12-16 Added support for Xilinx VC707 and KC705 development kits + (leon3-xilinx-vc707 and leon3-xilinx-kc705) + +2012-12-16 Added support for Xilinx Vivado flow + +2012-12-16 Added support for Xilinx 7-series FPGAs (Virtex, Kintex, Artix) + +2012-12-16 LEON: Fix possible pipeline hang after two consecutive DIV + operations. Bad sequence is not generated by compilers. + +2012-12-14 leon3-gr-xc6s: Remove USBDC* from template design + +2012-12-10 PCIPADS: Allow to select voltage and level via VHDL generics + +2012-12-10 GRGPIO: Add capability register and increase core revision to 2 + +2012-12-07 DDRSPA: Fix reset delay bug in controller when pwron=0 + +2012-11-28 SPICTRL: Use testoen to control direction in test mode + +2012-11-28 GRETH: Use testoen to control direction of mdio in test mode + +2012-11-19 GRGPIO: Use testoen to control direction in test mode. + +2012-11-17 Added AMBA test framework documentation to configuration guide + +2012-11-17 Added option to select predefined example processor + configurations in xconfig. + +2012-11-15 JTAG: Add oepol generic to control polarity of tdoen signal + Connect tdoen signal in the leon3-asic example design + +2012-11-13 Added PWM Generator (GRPWM) to COM and FT distributions + +2012-11-13 Added memory scrubber (MEMSCRUB) to FT distributions + +2012-11-06 Remove HCACHE signal from AMBA records. This change may break + existing external IP cores. + +2012-10-29 Added NAND Flash Memory Controller (NANDFCTRL) IP core + (to COM and FT releases). + +2012-10-24 Makefile: added DESIGNER_LAYOUT_OPT to override all Designer + layout options. + +2012-10-22 Added disable during scan test handling to syncram techmap. + Distribute testin vector for syncrams in AMBA records. + Updated GRLIB documentation on scan test support. + +2012-10-15 Added LEON/GRLIB design and configuration guide (doc/guide.pdf) + +2012-10-13 Remove ATACTRL + +2012-10-12 LEON/SRMMU: Allow 64 TLB entries (for each TLB) + +2012-10-12 Update GRLIB config package with grlib_config_array constant. + All local copies of the global configuration package needs to + be updated. All cores that make use of grlib_debug_* constants + need to be changed to use grlib_config_array(grlib_debug_*). + +2012-10-11 LEON: Update IP core doc. regarding types of bus accesses + performed by the processors. + +2012-10-03 DDRSPA,DDR2SPA: Add hooks for scan test support + +2012-09-30 Update Aldec riviera targets to work with current versions. + +2012-09-27 LEON3: Part of partially filled I-cache line could get + incorrectly marked as valid when executing branch + instruction with I-cache frozen and branch prediction + enabled. Does not affect LEON3FT. + +2012-09-26 AHBRAM: Fix bug in wait state generation when pipe=1 + +2012-09-25 GRETH: Add generic to extend MDIO output hold time to more + than one AMBA cycle. + +2012-09-25 GRCLKGATE: Add optional extra input for ungating all clocks + +2012-09-25 GRCLKGATE: Propagate master reset asynchronously into gated + resets by logical AND:ing. + +2012-09-24 Added IOMMU (GRIOMMU) to LEON4 relases. + +2012-09-23 Removed CoreMP7 to GRLIB bridge and design. + +2012-09-23 Removed WildCard design and WILD2AHB core. + +2012-09-23 Removed HAPS files. + +2012-09-11 AHBCTRL/AHBCTRL_MB: Treat HLOCK as coupled to specific access + to prevent HMASTLOCK assertion for normal accesses that receive + a SPLIT/RETRY response. + +2012-09-06 Use VERILOGSYNFILES in script generation for XST and Synplify. + +2012-09-06 Remove basic_passthru design + +2012-09-06 Remove unmaintained designs leon3-ge-hpe-mini, -lattice and + leon3-ge-hpe-midi-ep2s180. Also removed libraries and cores + that were only used in these designs. Vendor and device IDs + are kept and files can manually be copied from older GRLIB + releases. + +2012-08-24 SPICTRL: Core would generate one extra SCK cycle after + last word in queue for FACT = 1 and CPHA = 1. + +2012-08-24 SPICTRL: Fix transmit queue race condition introduced in 1.1.0-b4108 that could result in corrupted transmit data. 2012-07-20 GRGPIO: irqgen=2,3,4 led to all irqmap registers getting @@ -7,24 +138,24 @@ 2012-07-11 I-cache flush via ASI 0x10 was a no-op for systems implemented without MMU. -2012-06-26 DDRSPA,DDR2SPA: Move reset delay from phy to controller. +2012-06-261 DDRSPA,DDR2SPA: Move reset delay from phy to controller. -2012-06-15 DDRSPA,DDR2SPA: Remove the internal fast generic, use read - counters to get correct behavior for all speed ratios with the - same controller. +2012-06-151 DDRSPA,DDR2SPA: Remove the internal fast generic, use read + counters to get correct behavior for all speed ratios with the + same controller. -2012-05-10 DDRSPA,DDR2SPA: Moved ddr2spa and ddrspa components into their - own package ddrpkg. Make older versions of ddr controllers - available again under ddrv1 directory. +2012-05-10 DDRSPA,DDR2SPA: Moved ddr2spa and ddrspa components into their + own package ddrpkg. Make older versions of ddr controllers + available again under ddrv1 directory. - DDRSPA: Re-implemented to use the same structure as DDR2SPA. - DDRSPA: Add support for control signal timing up to DDR400. + DDRSPA: Re-implemented to use the same structure as DDR2SPA. + DDRSPA: Add support for control signal timing up to DDR400. 2012-04-30 SPIMCTRL: Allow user to specify address offset for SPI device. 2012-04-25 leon3-gr-xc6: RGMII interface did not work with 10/100 MAC. -2012-04-24 leon3-xilinx-sp601: USB/UART had swapped RX/TX signals. +2012-04-24 leon3-xilinx-sp601: USB/UART had swapped RX/TX signals. 2012-04-12 Merged Xilinx ML505 - ML509 template designs into the design leon3-xilinx-ml50x and added option to use the DDR2 MIG. @@ -32,8 +163,6 @@ 2012-04-11 Added template design for TerASIC DE0-Nano board (leon3-terasic-de0-nano) ------------------------ Release 1.1.0-b4114 ---------------------------- - 2012-03-19 Automatically perform "vsim-fix" when generating ModelSim scripts to avoid issues with ':' in paths in Cygwin. @@ -101,7 +230,7 @@ ----------------------- Release 1.1.0-b4108 ---------------------------- -2011-06-15 Added DDR2 MIG wrapper for template design for +2011-06-15 Added DDR2 MIG wrapper for template design for Xilinx SP601 Spartan6 board. 2011-06-13 Added template design for new Pender Spartan-6 board, @@ -169,7 +298,7 @@ 2010-06-28 Added Testbench framework for PCI. 2010-06-28 PCI_TARGET: Added support for PCI bus in big-little mode - and support for byte and half word PCI accesses. + and support for byte and half word PCI accesses. 2010-06-07 I2CMST/I2CSLV: Added generic that adjusts low-pass filter @@ -180,14 +309,14 @@ simulation device. Function now has one additional argument. 2010-05-06 XST: Remove -read_cores yes from XST script generation as yes - is the default read_cores setting. This allows specifying + is the default read_cores setting. This allows specifying -read_cores yes, no or optimize via the XSTOPT variable. -2010-05-05 FPU: GRFPU and GRFPU-lite netlists in both LEON3 and LEON4 +2010-05-05 FPU: GRFPU and GRFPU-lite netlists in both LEON3 and LEON4 versions are now available for Cyclone2, Cyclone3, Stratix2, Stratix3, Spartan3, Virtex2, Virtex4 and Virtex5. -2010-05-05 FPU: Always use FPU netlists in distributions lacking FPU +2010-05-05 FPU: Always use FPU netlists in distributions lacking FPU source code. 2010-05-05 FPU: Use EDIF netlists for FPU netlist synthesis on Xilinx diff --git a/doc/grip.pdf b/doc/grip.pdf index 9bd5e1ce..43136670 100644 Binary files a/doc/grip.pdf and b/doc/grip.pdf differ diff --git a/doc/grlib.pdf b/doc/grlib.pdf index 19c4bc03..03610ab7 100644 Binary files a/doc/grlib.pdf and b/doc/grlib.pdf differ diff --git a/doc/guide.pdf b/doc/guide.pdf new file mode 100644 index 00000000..b3691d4d Binary files /dev/null and b/doc/guide.pdf differ diff --git a/lib/esa/memoryctrl/mctrl.vhd b/lib/esa/memoryctrl/mctrl.vhd index dc2a70e3..97c37606 100644 --- a/lib/esa/memoryctrl/mctrl.vhd +++ b/lib/esa/memoryctrl/mctrl.vhd @@ -20,17 +20,6 @@ -- Author: Jiri Gaisler - ESA/ESTEC -- Description: External memory controller. ------------------------------------------------------------------------------ --- GRLIB2 CORE --- VENDOR: VENDOR_ESA --- DEVICE: ESA_MCTRL --- VERSION: 1 --- AHBSLAVE: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 1 CACHE: 1 DESC: PROM_AREA --- BAR: 1 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: IO_AREA --- BAR: 2 TYPE: 0010 PREFETCH: 1 CACHE: 1 DESC: SDRAM_AREA --- APB: 0 --- BAR: 0 TYPE: 0001 PREFETCH: 0 CACHE: 0 DESC: IO_AREA -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; @@ -970,7 +959,6 @@ begin ribdrive <= vbdrive; risbdrive <= vsbdrive; - ahbso.hcache <= not r.area(io); memo.address <= r.address; memo.read <= r.read; memo.wrn <= r.wrn; diff --git a/lib/eth/comp/ethcomp.vhd b/lib/eth/comp/ethcomp.vhd index 3705df3d..dea62025 100644 --- a/lib/eth/comp/ethcomp.vhd +++ b/lib/eth/comp/ethcomp.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -44,7 +44,10 @@ package ethcomp is enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; edclsepahbg : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1; + maxsize : integer + ); port( rst : in std_ulogic; clk : in std_ulogic; @@ -134,6 +137,7 @@ package ethcomp is --scantest testrst : in std_ulogic; testen : in std_ulogic; + testoen : in std_ulogic; edcladdr : in std_logic_vector(3 downto 0) := "0000"; edclsepahb : in std_ulogic; edcldisable : in std_ulogic; @@ -164,7 +168,8 @@ package ethcomp is enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; edclsepahbg : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1); port( rst : in std_ulogic; clk : in std_ulogic; @@ -254,6 +259,7 @@ package ethcomp is --scantest testrst : in std_ulogic; testen : in std_ulogic; + testoen : in std_ulogic; edcladdr : in std_logic_vector(3 downto 0) := "0000"; edclsepahb : in std_ulogic; edcldisable : in std_ulogic; @@ -335,6 +341,7 @@ package ethcomp is --scantest testrst : in std_ulogic; testen : in std_ulogic; + testoen : in std_ulogic; edcladdr : in std_logic_vector(3 downto 0); edclsepahb : in std_ulogic; edcldisable : in std_ulogic; @@ -435,6 +442,7 @@ package ethcomp is --scantest testrst : in std_ulogic; testen : in std_ulogic; + testoen : in std_ulogic; edcladdr : in std_logic_vector(3 downto 0); edclsepahb : in std_ulogic; edcldisable : in std_ulogic; diff --git a/lib/eth/core/eth_ahb_mst.vhd b/lib/eth/core/eth_ahb_mst.vhd index 21a2f6b3..be4d65e5 100644 --- a/lib/eth/core/eth_ahb_mst.vhd +++ b/lib/eth/core/eth_ahb_mst.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/eth/core/eth_edcl_ahb_mst.vhd b/lib/eth/core/eth_edcl_ahb_mst.vhd index 1ab56ceb..da54b2c1 100644 --- a/lib/eth/core/eth_edcl_ahb_mst.vhd +++ b/lib/eth/core/eth_edcl_ahb_mst.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/eth/core/eth_rstgen.vhd b/lib/eth/core/eth_rstgen.vhd index 6a370b3b..498fb3c9 100644 --- a/lib/eth/core/eth_rstgen.vhd +++ b/lib/eth/core/eth_rstgen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/eth/core/greth_pkg.vhd b/lib/eth/core/greth_pkg.vhd index e3334085..d95a7491 100644 --- a/lib/eth/core/greth_pkg.vhd +++ b/lib/eth/core/greth_pkg.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -270,7 +270,8 @@ package grethpkg is generic( nsync : integer range 1 to 2 := 2; rmii : integer range 0 to 1 := 0; - multicast : integer range 0 to 1 := 0); + multicast : integer range 0 to 1 := 0; + maxsize : integer); port( rst : in std_ulogic; clk : in std_ulogic; diff --git a/lib/eth/core/greth_rx.vhd b/lib/eth/core/greth_rx.vhd index 5be5e5c2..dfa400e7 100644 --- a/lib/eth/core/greth_rx.vhd +++ b/lib/eth/core/greth_rx.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -17,13 +17,14 @@ -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ----------------------------------------------------------------------------- --- Entity: greth_rx +-- Entity: greth_rx -- File: greth_rx.vhd -- Author: Marko Isomaki -- Description: Ethernet receiver ------------------------------------------------------------------------------ library ieee; use ieee.std_logic_1164.all; +use ieee.numeric_std.all; library grlib; use grlib.stdlib.all; library eth; @@ -33,7 +34,9 @@ entity greth_rx is generic( nsync : integer range 1 to 2 := 2; rmii : integer range 0 to 1 := 0; - multicast : integer range 0 to 1 := 0); + multicast : integer range 0 to 1 := 0; + maxsize : integer := 1500 + ); port( rst : in std_ulogic; clk : in std_ulogic; @@ -44,7 +47,9 @@ entity greth_rx is end entity; architecture rtl of greth_rx is - constant maxsize : integer := 1518; +-- constant maxsize : integer := 1518; + constant maxsizerx : unsigned(15 downto 0) := + to_unsigned(maxsize + 18, 16); constant minsize : integer := 64; --receiver types @@ -239,7 +244,7 @@ begin write_req := '1'; end if; if er = '1' then v.status(2) := '1'; end if; - if conv_integer(r.byte_count) > maxsize then + if conv_integer(r.byte_count) > maxsizerx then v.rx_state := errorst; v.status(1) := '1'; v.byte_count := r.byte_count - 4; end if; diff --git a/lib/eth/core/greth_tx.vhd b/lib/eth/core/greth_tx.vhd index 029b0bc6..6ecd24f7 100644 --- a/lib/eth/core/greth_tx.vhd +++ b/lib/eth/core/greth_tx.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/eth/core/grethc.vhd b/lib/eth/core/grethc.vhd index c748dc56..20e454ec 100644 --- a/lib/eth/core/grethc.vhd +++ b/lib/eth/core/grethc.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -25,6 +25,7 @@ ------------------------------------------------------------------------------ library ieee; use ieee.std_logic_1164.all; +use ieee.numeric_std.all; library grlib; use grlib.stdlib.all; library eth; @@ -53,7 +54,9 @@ entity grethc is enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; edclsepahbg : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1; + maxsize : integer := 1500); port( rst : in std_ulogic; clk : in std_ulogic; @@ -143,6 +146,7 @@ entity grethc is --scantest testrst : in std_ulogic; testen : in std_ulogic; + testoen : in std_ulogic; edcladdr : in std_logic_vector(3 downto 0) := "0000"; edclsepahb : in std_ulogic; edcldisable : in std_ulogic; @@ -173,7 +177,7 @@ architecture rtl of grethc is constant burstbits : integer := log2(burstlength); constant ctrlopcode : std_logic_vector(15 downto 0) := X"8808"; constant broadcast : std_logic_vector(47 downto 0) := X"FFFFFFFFFFFF"; - constant maxsizetx : integer := 1514; +-- constant maxsizetx : integer := 1514; constant index : integer := log2(edclbufsz); constant receiveOK : std_logic_vector(3 downto 0) := "0000"; constant frameCheckError : std_logic_vector(3 downto 0) := "0100"; @@ -188,8 +192,12 @@ architecture rtl of grethc is conv_std_logic_vector(mdcscaler, 8); --receiver constants - constant maxsizerx : std_logic_vector(15 downto 0) := - conv_std_logic_vector(1514, 16); + constant maxsizerx : unsigned(15 downto 0) := + to_unsigned(maxsize + 18 - 4, 16); + + --tranceiver constants + constant maxsizetx : unsigned(15 downto 0) := + to_unsigned(maxsize + 18 - 4, 16); --edcl constants type szvct is array (0 to 6) of integer; @@ -389,7 +397,7 @@ architecture rtl of grethc is --mdio mdccnt : std_logic_vector(7 downto 0); mdioclk : std_ulogic; - mdioclkold : std_ulogic; + mdioclkold : std_logic_vector(mdiohold-1 downto 0); mdio_state : mdio_state_type; mdioo : std_ulogic; mdioi : std_ulogic; @@ -498,6 +506,7 @@ begin variable mdioindex : integer range 0 to 31; variable mclk : std_ulogic; --rising mdio clk edge variable nmclk : std_ulogic; --falling mdio clk edge + variable mclkvec : std_logic_vector(mdiohold downto 0); --edcl variable veri : edcl_ram_in_type; variable swap : std_ulogic; @@ -868,7 +877,7 @@ begin v.txstart := '0'; v.txburstcnt := (others => '0'); if r.txden = '1' then - if (conv_integer(r.txlength) > maxsizetx) or + if (unsigned(r.txlength) > unsigned(maxsizetx)) or (conv_integer(r.txlength) = 0) then v.txdstate := write_result; v.tmsto.req := '1'; v.tmsto.write := '1'; v.tmsto.addr := r.txdesc & r.txdsel & "000"; @@ -1257,7 +1266,7 @@ begin if (rxdone and not rxstart) = '1' then v.gotframe := rxo.gotframe; v.rxbytecount := rxo.byte_count; v.rxstatus(3 downto 0) := rxo.status; - if (rxo.lentype > maxsizerx) or (rxo.status /= "0000") then + if (unsigned(rxo.lentype) > maxsizerx) or (rxo.status /= "0000") then v.rxlength := rxo.byte_count; else v.rxlength := rxo.lentype(10 downto 0); @@ -1300,9 +1309,10 @@ begin ------------------------------------------------------------------------------- --mdio commands if enable_mdio = 1 then - mclk := r.mdioclk and not r.mdioclkold; - nmclk := r.mdioclkold and not r.mdioclk; - v.mdioclkold := r.mdioclk; + mclkvec := r.mdioclkold & r.mdioclk; + mclk := mclkvec(mdiohold-1) and not mclkvec(mdiohold); + nmclk := mclkvec(1) and not mclkvec(0); + v.mdioclkold := mclkvec(mdiohold-1 downto 0); if r.mdccnt = "00000000" then v.mdccnt := divisor; v.mdioclk := not r.mdioclk; @@ -2125,8 +2135,8 @@ begin txi.len <= r.txlength; mdc <= r.mdioclk; - mdio_o <= r.mdioo; - mdio_oe <= r.mdioen; + mdio_o <= r.mdioo; + mdio_oe <= testoen when (scanen/=0 and testen/='0') else r.mdioen; tmsto <= r.tmsto; rmsto <= r.rmsto; tmsto2 <= r.tmsto2; @@ -2213,7 +2223,8 @@ begin generic map( nsync => nsync, rmii => rmii, - multicast => multicast) + multicast => multicast, + maxsize => maxsize) port map( rst => arst, clk => rx_clk, @@ -2226,7 +2237,8 @@ begin generic map( nsync => nsync, rmii => rmii, - multicast => multicast) + multicast => multicast, + maxsize => maxsize) port map( rst => arst, clk => rmii_clk, diff --git a/lib/eth/wrapper/greth_gbit_gen.vhd b/lib/eth/wrapper/greth_gbit_gen.vhd index d792062b..afb0409b 100644 --- a/lib/eth/wrapper/greth_gbit_gen.vhd +++ b/lib/eth/wrapper/greth_gbit_gen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -124,6 +124,7 @@ entity greth_gbit_gen is --scantest testrst : in std_ulogic; testen : in std_ulogic; + testoen : in std_ulogic; edcladdr : in std_logic_vector(3 downto 0); edclsepahb : in std_ulogic; edcldisable : in std_ulogic; @@ -283,6 +284,7 @@ begin --scantest testrst => testrst, testen => testen, + testoen => testoen, edcladdr => edcladdr, edclsepahb => edclsepahb, edcldisable => edcldisable, diff --git a/lib/eth/wrapper/greth_gen.vhd b/lib/eth/wrapper/greth_gen.vhd index c1d34d52..412f7ab4 100644 --- a/lib/eth/wrapper/greth_gen.vhd +++ b/lib/eth/wrapper/greth_gen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -57,7 +57,9 @@ entity greth_gen is enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; edclsepahbg : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + maxsize : integer + ); port( rst : in std_ulogic; clk : in std_ulogic; @@ -124,6 +126,7 @@ entity greth_gen is --scantest testrst : in std_ulogic; testen : in std_ulogic; + testoen : in std_ulogic; edcladdr : in std_logic_vector(3 downto 0); edclsepahb : in std_ulogic; edcldisable : in std_ulogic; @@ -200,7 +203,8 @@ begin enable_mdint => enable_mdint, multicast => multicast, edclsepahbg => edclsepahbg, - ramdebug => ramdebug) + ramdebug => ramdebug, + maxsize => maxsize) port map( rst => rst, clk => clk, @@ -290,6 +294,7 @@ begin --scantest testrst => testrst, testen => testen, + testoen => testoen, edcladdr => edcladdr, edclsepahb => edclsepahb, edcldisable => edcldisable, diff --git a/lib/gaisler/ambatest/ahb_tbfunct.vhd b/lib/gaisler/ambatest/ahb_tbfunct.vhd index d82359b9..ba89a3b6 100644 --- a/lib/gaisler/ambatest/ahb_tbfunct.vhd +++ b/lib/gaisler/ambatest/ahb_tbfunct.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/ambatest/ahbmst_em.vhd b/lib/gaisler/ambatest/ahbmst_em.vhd index a9de2f45..c1243202 100644 --- a/lib/gaisler/ambatest/ahbmst_em.vhd +++ b/lib/gaisler/ambatest/ahbmst_em.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/ambatest/ahbslv_em.vhd b/lib/gaisler/ambatest/ahbslv_em.vhd index b15a1feb..119b8f8b 100644 --- a/lib/gaisler/ambatest/ahbslv_em.vhd +++ b/lib/gaisler/ambatest/ahbslv_em.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -126,7 +126,7 @@ begin v.di := ahbsi.hwdata; vahbso.hready := '1'; vahbso.hresp := HRESP_OKAY; vahbso.hrdata := do; vahbso.hsplit := (others => '0'); - vahbso.hcache := '0'; vahbso.hirq := (others => '0'); + vahbso.hirq := (others => '0'); vahbso.hconfig := hconfig; if ahbsi.hready = '1' then v.ad := ahbsi.haddr(abits-1 downto 0); end if; diff --git a/lib/gaisler/ambatest/ahbtbm.vhd b/lib/gaisler/ambatest/ahbtbm.vhd index a1a94edc..573b19ad 100644 --- a/lib/gaisler/ambatest/ahbtbm.vhd +++ b/lib/gaisler/ambatest/ahbtbm.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/ambatest/ahbtbp.vhd b/lib/gaisler/ambatest/ahbtbp.vhd index f7d6e599..141cd5a9 100644 --- a/lib/gaisler/ambatest/ahbtbp.vhd +++ b/lib/gaisler/ambatest/ahbtbp.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/ambatest/ahbtbs.vhd b/lib/gaisler/ambatest/ahbtbs.vhd index f63ccdff..453dec8b 100644 --- a/lib/gaisler/ambatest/ahbtbs.vhd +++ b/lib/gaisler/ambatest/ahbtbs.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -158,7 +158,6 @@ begin ahbso.hresp <= r.hresp; --"00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/lib/gaisler/ambatest/ambatest.vhd b/lib/gaisler/ambatest/ambatest.vhd index 687e11dc..b316089d 100644 --- a/lib/gaisler/ambatest/ambatest.vhd +++ b/lib/gaisler/ambatest/ambatest.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/arith/arith.vhd b/lib/gaisler/arith/arith.vhd index 152375ff..81f3b49b 100644 --- a/lib/gaisler/arith/arith.vhd +++ b/lib/gaisler/arith/arith.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/arith/div32.vhd b/lib/gaisler/arith/div32.vhd index 1df4d147..b7c1f77b 100644 --- a/lib/gaisler/arith/div32.vhd +++ b/lib/gaisler/arith/div32.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/arith/mul32.vhd b/lib/gaisler/arith/mul32.vhd index e66bf1cd..d54e2204 100644 --- a/lib/gaisler/arith/mul32.vhd +++ b/lib/gaisler/arith/mul32.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -343,21 +343,29 @@ begin end if; end if; end process; - + mreg(49 downto 34) <= (others => '0'); + prod(65 downto 34) <= (others => '0'); end generate; xm3208 : if MULTIPLIER = m32x8 generate m3208 : techmult generic map (tech, arch, 33, 8, 2, 1) port map (ma(32 downto 0), mb(8 downto 0), clk, holdn, vcc, mreg(41 downto 0)); + mm <= ('0', '0', '0', '0'); + mreg(49 downto 42) <= (others => '0'); + prod <= (others => '0'); end generate; xm3216 : if MULTIPLIER = m32x16 generate m3216 : techmult generic map (tech, arch, 33, 17, 2, 1) port map (ma(32 downto 0), mb(16 downto 0), clk, holdn, vcc, mreg(49 downto 0)); + mm <= ('0', '0', '0', '0'); + prod <= (others => '0'); end generate; xm3232 : if MULTIPLIER = m32x32 generate m3232 : techmult generic map (tech, arch, 33, 33, pipe+1, pipe) port map (ma(32 downto 0), mb(32 downto 0), clk, holdn, vcc, prod(65 downto 0)); + mm <= ('0', '0', '0', '0'); + mreg <= (others => '0'); end generate; diff --git a/lib/gaisler/ata/ata.in b/lib/gaisler/ata/ata.in deleted file mode 100644 index a928141e..00000000 --- a/lib/gaisler/ata/ata.in +++ /dev/null @@ -1,9 +0,0 @@ - bool 'Enable ATA interface ' CONFIG_ATA_ENABLE - if [ "$CONFIG_ATA_ENABLE" = "y" ]; then - hex 'ATA I/O area start address (haddr[19:8]) ' CONFIG_ATAIO A00 - int 'Interrupt number ' CONFIG_ATAIRQ 10 - bool 'Enable MWDMA support ' CONFIG_ATA_MWDMA - if [ "$CONFIG_ATA_MWDMA" = "y" ]; then - int 'FIFO depth ' CONFIG_ATA_FIFO 8 - fi - fi diff --git a/lib/gaisler/ata/ata.in.h b/lib/gaisler/ata/ata.in.h deleted file mode 100644 index e3a48d5a..00000000 --- a/lib/gaisler/ata/ata.in.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef CONFIG_ATA_ENABLE -#define CONFIG_ATA_ENABLE 0 -#endif - -#ifndef CONFIG_ATAIO -#define CONFIG_ATAIO 0 -#endif - -#ifndef CONFIG_ATAIRQ -#define CONFIG_ATAIRQ 0 -#endif - -#ifndef CONFIG_ATA_MWDMA -#define CONFIG_ATA_MWDMA 0 -#endif - -#ifndef CONFIG_ATA_FIFO -#define CONFIG_ATA_FIFO 8 -#endif diff --git a/lib/gaisler/ata/ata.in.help b/lib/gaisler/ata/ata.in.help deleted file mode 100644 index 0c6ceea7..00000000 --- a/lib/gaisler/ata/ata.in.help +++ /dev/null @@ -1,26 +0,0 @@ -ATA interface enable -CONFIG_ATA_ENABLE - Say Y here to enable the ATA interace from OpenCores. The core has one - AHB slave interface for accessing all control registers. - -ATA register address -CONFIG_ATAIO - The control registers of the ATA core occupy 256 byte, and are - mapped in the AHB bus I/O area (0xFFF00000 - 0xFFFFF000). This setting - defines at which address in the I/O area the registers appear (HADDR[19:8]). - -ATA interrupt -CONFIG_ATAIRQ - Defines which interrupt number the ATA core will generate. - -ATA DMA support -CONFIG_ATA_MWDMA - Say yes here to enable IDE multi-word DMA support (MWDMA). - This will increase transfer rate compared to the PIO mode, - but increase area with approxiamtely 5,000 gates. Note that - DMA is not supported by legacy CF cards, so it makes no sense - to enable it on CF card sockets. - -ATA DMA FIFO depth -CONFIG_ATA_FIFO - Defines the DMA FIFO depth. Choose 8 or 16. diff --git a/lib/gaisler/ata/ata.in.vhd b/lib/gaisler/ata/ata.in.vhd deleted file mode 100644 index 21064a38..00000000 --- a/lib/gaisler/ata/ata.in.vhd +++ /dev/null @@ -1,7 +0,0 @@ --- ATA interface - constant CFG_ATA : integer := CONFIG_ATA_ENABLE; - constant CFG_ATAIO : integer := 16#CONFIG_ATAIO#; - constant CFG_ATAIRQ : integer := CONFIG_ATAIRQ; - constant CFG_ATADMA : integer := CONFIG_ATA_MWDMA; - constant CFG_ATAFIFO : integer := CONFIG_ATA_FIFO; - diff --git a/lib/gaisler/ata/ata.vhd b/lib/gaisler/ata/ata.vhd deleted file mode 100644 index 38b311e2..00000000 --- a/lib/gaisler/ata/ata.vhd +++ /dev/null @@ -1,94 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: ata --- File: ata.vhd --- Authors: Nils-Johan Wessman, Jiri Gaisler - Gaisler Research --- Description: ATA controller package ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; - -package ata is - -type ata_in_type is record - ddi : std_logic_vector(15 downto 0); - iordy : std_logic; - intrq : std_logic; - dmarq : std_logic; -end record; - -type ata_out_type is record - rstn : std_logic; - ddo : std_logic_vector(15 downto 0); - oen : std_logic; - da : std_logic_vector(2 downto 0); - cs0 : std_logic; - cs1 : std_logic; - dior : std_logic; - diow : std_logic; - dmack : std_logic; -end record; - -type cf_out_type is record - power : std_logic; - atasel : std_logic; - we : std_logic; - csel : std_logic; - da : std_logic_vector(10 downto 3); -end record; - -component atactrl is - generic ( - tech : integer := 0; - fdepth : integer := 8; - mhindex : integer := 0; - shindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#ff0#; - pirq : integer := 0; - mwdma : integer := 0; - - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - - ); - port ( - rst : in std_ulogic; - arst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - ahbmi : in ahb_mst_in_type; - ahbmo : out ahb_mst_out_type; - cfo : out cf_out_type; - atai : in ata_in_type; - atao : out ata_out_type - ); -end component; - -end; diff --git a/lib/gaisler/ata/ata_inf.vhd b/lib/gaisler/ata/ata_inf.vhd deleted file mode 100644 index f0c6bd60..00000000 --- a/lib/gaisler/ata/ata_inf.vhd +++ /dev/null @@ -1,92 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: ata_inf --- File: ata_inf.vhd --- Author: Erik Jagres, Gaisler Research --- Description: ATA components and signals ------------------------------------------------------------------------------- - -Library ieee; -Use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -library gaisler; -use gaisler.ata.all; -use gaisler.misc.all; - -package ata_inf is - -type slv_to_bm_type is record - prd_belec: std_logic; - en : std_logic; - dir : std_logic; - prdtb : std_logic_vector(31 downto 0); -end record; -constant SLV_TO_BM_RESET_VECTOR : slv_to_bm_type := ('0','0','0',(others=>'0')); - -type bm_to_slv_type is record - err : std_logic; - done : std_logic; - cur_base : std_logic_vector(31 downto 0); - cur_cnt : std_logic_vector(15 downto 0); -end record; -constant BM_TO_SLV_RESET_VECTOR : bm_to_slv_type := - ('0','0',(others=>'0'),(others=>'0')); - - -type bm_to_ctrl_type is record - force_rdy : std_logic; - sel : std_logic; - ack : std_logic; -end record; - -constant BM_TO_CTR_RESET_VECTOR : bm_to_ctrl_type := ('0','0','0'); - -type ctrl_to_bm_type is record - irq : std_logic; - ack : std_logic; - req : std_logic; - rx_empty : std_logic; - fifo_rdy : std_logic; - q : std_logic_vector(31 downto 0); - tip : std_logic; - rx_full : std_logic; -end record; - -constant DMA_IN_RESET_VECTOR : ahb_dma_in_type := - ((others=>'0'),(others=>'0'),'0','0','0','0','0',"010"); - -type bmi_type is record - fr_mst : ahb_dma_out_type; - fr_slv : slv_to_bm_type; - fr_ctr : ctrl_to_bm_type; -end record; - -type bmo_type is record - to_mst : ahb_dma_in_type; - to_slv : bm_to_slv_type; - to_ctr : bm_to_ctrl_type; - d : std_logic_vector(31 downto 0); - we : std_logic; -end record; -constant BMO_RESET_VECTOR : bmo_type := - (DMA_IN_RESET_VECTOR,BM_TO_SLV_RESET_VECTOR,BM_TO_CTR_RESET_VECTOR,(others=>'0'),'0'); - -end ata_inf; diff --git a/lib/gaisler/ata/atactrl.vhd b/lib/gaisler/ata/atactrl.vhd deleted file mode 100644 index fc28e3ae..00000000 --- a/lib/gaisler/ata/atactrl.vhd +++ /dev/null @@ -1,88 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: atactrl --- File: atactrl.vhd --- Author: Jiri Gaisler, Gaisler Research --- Description: ATA controller ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -library gaisler; -use gaisler.ata.all; - -entity atactrl is - generic ( - tech : integer := 0; - fdepth : integer := 8; - mhindex : integer := 0; - shindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#ff0#; - pirq : integer := 0; - mwdma : integer := 0; - - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - - ); - port ( - rst : in std_ulogic; - arst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - ahbmi : in ahb_mst_in_type; - ahbmo : out ahb_mst_out_type; - cfo : out cf_out_type; - atai : in ata_in_type; - atao : out ata_out_type - ); -end; - - -architecture rtl of atactrl is -begin - - dmaen : if mwdma = 1 generate - x0 : entity work.atactrl_dma generic map (tech, fdepth, mhindex, shindex, haddr, hmask, - pirq, TWIDTH, PIO_mode0_T1, PIO_mode0_T2, PIO_mode0_T4, PIO_mode0_Teoc) - port map (rst, arst, clk, ahbsi, ahbso, ahbmi, ahbmo, cfo, - atai.ddi, atai.iordy, atai.intrq, atao.rstn, atao.ddo, atao.oen, - atao.da, atao.cs0, atao.cs1, atao.dior, atao.diow, atao.dmack, atai.dmarq); - end generate; - - nodma : if mwdma /= 1 generate - x0 : entity work.atactrl_nodma generic map (shindex, haddr, hmask, - pirq, TWIDTH, PIO_mode0_T1, PIO_mode0_T2, PIO_mode0_T4, PIO_mode0_Teoc) - port map (rst, arst, clk, ahbsi, ahbso, cfo, - atai.ddi, atai.iordy, atai.intrq, atao.rstn, atao.ddo, atao.oen, - atao.da, atao.cs0, atao.cs1, atao.dior, atao.diow, atao.dmack); - ahbmo <= ahbm_none; - end generate; -end; - diff --git a/lib/gaisler/ata/atactrl_dma.vhd b/lib/gaisler/ata/atactrl_dma.vhd deleted file mode 100644 index 7c9e011e..00000000 --- a/lib/gaisler/ata/atactrl_dma.vhd +++ /dev/null @@ -1,551 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: atactrl --- File: atactrl.vhd --- Author: Nils-Johan Wessman, Gaisler Research --- Description: ATA controller ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -library grlib; -use grlib.stdlib.all; -use grlib.amba.all; -use grlib.devices.all; -library gaisler; -use gaisler.memctrl.all; -use gaisler.ata.all; -use gaisler.misc.all; --2007-1-16 -use gaisler.ata_inf.all; -library opencores; -use opencores.occomp.all; - -entity atactrl_dma is - generic ( - tech : integer := 0; - fdepth : integer := 8; - mhindex : integer := 0; - hindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#ff0#; - pirq : integer := 0; - - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - - ); - port ( - rst : in std_ulogic; - arst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - ahbmi : in ahb_mst_in_type; - ahbmo : out ahb_mst_out_type; - cfo : out cf_out_type; - - -- ATA signals - ddin : in std_logic_vector(15 downto 0); - iordy : in std_logic; - intrq : in std_logic; - ata_resetn : out std_logic; - ddout : out std_logic_vector(15 downto 0); - ddoe : out std_logic; - da : out std_logic_vector(2 downto 0); - cs0n : out std_logic; - cs1n : out std_logic; - diorn : out std_logic; - diown : out std_logic; - dmack : out std_logic; - dmarq : in std_logic - ); -end; - - -architecture rtl of atactrl_dma is - -- Device ID - constant DeviceId : integer := 2; - constant RevisionNo : integer := 0; - constant VERSION : integer := 0; - - component atahost_amba_slave is - generic ( - hindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#ff0#; - pirq : integer := 0; - DeviceID : integer := 0; - RevisionNo : integer := 0; - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23; -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - - -- Multiword DMA mode 0 settings (@100MHz clock) - DMA_mode0_Tm : natural := 4; -- 50ns - DMA_mode0_Td : natural := 21; -- 215ns - DMA_mode0_Teoc : natural := 21 -- 215ns ==> T0 - Td - Tm = 480 - 50 - 215 = 215 - ); - port ( - rst : in std_ulogic; - arst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - cf_power: out std_logic; - - -- ata controller signals - - -- PIO control input - PIOsel : out std_logic; - PIOtip, -- PIO transfer in progress - PIOack : in std_logic; -- PIO acknowledge signal - PIOq : in std_logic_vector(15 downto 0); -- PIO data input - PIOpp_full : in std_logic; -- PIO write-ping-pong buffers full - irq : in std_logic; -- interrupt signal input - PIOa : out std_logic_vector(3 downto 0); - PIOd : out std_logic_vector(15 downto 0); - PIOwe : out std_logic; - - -- DMA control inputs --- DMAsel : out std_logic; - DMAtip, -- DMA transfer in progress --- DMAack, -- DMA transfer acknowledge - DMARxEmpty, -- DMA receive buffer empty - DMATxFull, -- DMA transmit buffer full - DMA_dmarq : in std_logic; -- wishbone DMA request --- DMAq : in std_logic_vector(31 downto 0); - - -- outputs - -- control register outputs - IDEctrl_rst, - IDEctrl_IDEen, - IDEctrl_FATR1, - IDEctrl_FATR0, - IDEctrl_ppen, - DMActrl_DMAen, - DMActrl_dir, - DMActrl_Bytesw, --Jagre 2006-12-04 - DMActrl_BeLeC0, - DMActrl_BeLeC1 : out std_logic; - - -- CMD port timing registers - PIO_cmdport_T1, - PIO_cmdport_T2, - PIO_cmdport_T4, - PIO_cmdport_Teoc : out std_logic_vector(7 downto 0); - PIO_cmdport_IORDYen : out std_logic; - - -- data-port0 timing registers - PIO_dport0_T1, - PIO_dport0_T2, - PIO_dport0_T4, - PIO_dport0_Teoc : out std_logic_vector(7 downto 0); - PIO_dport0_IORDYen : out std_logic; - - -- data-port1 timing registers - PIO_dport1_T1, - PIO_dport1_T2, - PIO_dport1_T4, - PIO_dport1_Teoc : out std_logic_vector(7 downto 0); - PIO_dport1_IORDYen : out std_logic; - - -- DMA device0 timing registers - DMA_dev0_Tm, - DMA_dev0_Td, - DMA_dev0_Teoc : out std_logic_vector(7 downto 0); - - -- DMA device1 timing registers - DMA_dev1_Tm, - DMA_dev1_Td, - DMA_dev1_Teoc : out std_logic_vector(7 downto 0); - - -- Bus master edits by Erik Jagre 2006-10-03 ------------------start----- - fr_BM : in bm_to_slv_type; - to_BM : out slv_to_bm_type - -- Bus master edits by Erik Jagre 2006-10-03 ------------------end------- - - ); - end component atahost_amba_slave; - - - component atahost_ahbmst is - generic(fdepth : integer := 8); - Port(clk : in std_logic; - rst : in std_logic; - i : in bmi_type; - o : out bmo_type - ); - end component atahost_ahbmst; - - -- asynchronous reset signal - signal arst_signal : std_logic; - - -- primary address decoder --- signal PIOsel,s_bmen : std_logic; -- controller select, IDE devices select - signal PIOsel : std_logic; -- controller select, IDE devices select - - -- control signal - signal IDEctrl_rst, IDEctrl_IDEen, IDEctrl_FATR0, IDEctrl_FATR1 : std_logic; - -- compatible mode timing - signal s_PIO_cmdport_T1, s_PIO_cmdport_T2, s_PIO_cmdport_T4, s_PIO_cmdport_Teoc : std_logic_vector(7 downto 0); - signal s_PIO_cmdport_IORDYen : std_logic; - -- data port0 timing - signal s_PIO_dport0_T1, s_PIO_dport0_T2, s_PIO_dport0_T4, s_PIO_dport0_Teoc : std_logic_vector(7 downto 0); - signal s_PIO_dport0_IORDYen : std_logic; - -- data port1 timing - signal s_PIO_dport1_T1, s_PIO_dport1_T2, s_PIO_dport1_T4, s_PIO_dport1_Teoc : std_logic_vector(7 downto 0); - signal s_PIO_dport1_IORDYen : std_logic; - - signal PIOack : std_logic; - signal PIOq : std_logic_vector(15 downto 0); - signal PIOa : std_logic_vector(3 downto 0):="0000"; - signal PIOd : std_logic_vector(15 downto 0) := X"0000"; - signal PIOwe : std_logic; - - signal irq : std_logic; -- ATA bus IRQ signal - - signal reset : std_logic; - signal gnd,vcc : std_logic; - signal gnd32 : std_logic_vector(31 downto 0); - - --**********************SIGNAL DECLARATION*****by Erik Jagre 2006-10-04******* - signal s_PIOtip : std_logic:='0'; -- PIO transfer in progress - signal s_PIOpp_full : std_logic:='0'; -- PIO Write PingPong full - - -- DMA registers - signal s_DMA_dev0_Td, - s_DMA_dev0_Tm, - s_DMA_dev0_Teoc : std_logic_vector(7 downto 0):= X"03"; -- DMA timing settings for device0 - - signal s_DMA_dev1_Td, - s_DMA_dev1_Tm, - s_DMA_dev1_Teoc : std_logic_vector(7 downto 0):= X"03"; -- DMA timing settings for device1 - - signal s_DMActrl_DMAen, - s_DMActrl_dir, - s_DMActrl_Bytesw, - s_DMActrl_BeLeC0, - s_DMActrl_BeLeC1 : std_logic:='0'; -- DMA settings - --- signal s_DMAsel : std_logic:='0'; -- DMA controller select --- signal s_DMAack : std_logic:='0'; -- DMA controller acknowledge --- signal s_DMAq : std_logic_vector(31 downto 0); -- DMA data out --- signal s_DMAtip : std_logic:='0'; -- DMA transfer in progress - signal s_DMA_dmarq : std_logic:='0'; -- Synchronized ATA DMARQ line - --- signal s_DMATxFull : std_logic:='0'; -- DMA transmit buffer full --- signal s_DMARxEmpty : std_logic:='0'; -- DMA receive buffer empty --- signal s_DMA_req : std_logic:='0'; -- DMA request to external DMA engine --- signal s_DMA_ack : std_logic:='0'; -- DMA acknowledge from external DMA engine - - signal s_IDEctrl_ppen : std_logic; --:='0'; - signal datemp : std_logic_vector(2 downto 0):="000"; - --- signal s_mst_bm : ahb_dma_out_type; --- signal s_bm_mst : ahb_dma_in_type; - --- signal s_slv_bm : slv_to_bm_type := SLV_TO_BM_RESET_VECTOR; --- signal s_bm_slv : bm_to_slv_type := BM_TO_SLV_RESET_VECTOR; - --- signal s_bm_ctr : bm_to_ctrl_type; --- signal s_ctr_bm : ctrl_to_bm_type; - - signal s_bmi : bmi_type; - signal s_bmo : bmo_type; - - signal s_d : std_logic_vector(31 downto 0); - signal s_we, s_irq : std_logic; - - constant DMA_mode0_Tm : natural := 4; -- 50ns - constant DMA_mode0_Td : natural := 21; -- 215ns - constant DMA_mode0_Teoc : natural := 21; -- 215ns ==> T0 - Td - Tm = 480 - 50 - 215 = 215 - constant SECTOR_LENGTH : integer := 16; - --- signal PIOa_temp : std_logic_vector(7 downto 0); - --**********************END SIGNAL DECLARATION******************************** - -begin - gnd <= '0';vcc <= '1'; gnd32 <= zero32; - -- generate asynchronous reset level - arst_signal <= arst;-- xor ARST_LVL; - reset <= not rst; - da<=datemp; - --PIOa_temp <= unsigned(PIOa); - --dmack <= vcc; -- Disable DMA - -- Generate CompactFlash signals - --cfo.power connected to bit 31 of the control register - cfo.atasel <= gnd; - cfo.we <= vcc; - cfo.csel <= gnd; - cfo.da <= (others => gnd); - - --s_bmi.fr_mst<=s_mst_bm; s_bmi.fr_slv<=s_slv_bm; s_bmi.fr_ctr<=s_ctr_bm; - --s_bmo.to_mst<=s_bm_mst; s_bmo.to_slv<=s_slv_bm; s_bmo.to_ctr<=s_bm_ctr; - - - with s_bmi.fr_slv.en select - s_d(15 downto 0)<=s_bmo.d(15 downto 0) when '1', - PIOd when others; - - with s_bmi.fr_slv.en select - s_d(31 downto 16)<=s_bmo.d(31 downto 16) when '1', - (others=>'0') when others; - - with s_bmi.fr_slv.en select - s_we<=s_bmo.we when '1', - PIOwe when others; - - with s_bmi.fr_slv.en select --for guaranteeing coherent memory before irq - s_irq<=irq and (not s_bmo.to_mst.start) when '1', - irq when others; - - s_bmi.fr_ctr.irq<=irq; - - slv: atahost_amba_slave - generic map( - hindex => hindex, - haddr => haddr, - hmask => hmask, - pirq => pirq, - DeviceID => DeviceID, - RevisionNo => RevisionNo, - - -- PIO mode 0 settings - PIO_mode0_T1 => PIO_mode0_T1, - PIO_mode0_T2 => PIO_mode0_T2, - PIO_mode0_T4 => PIO_mode0_T4, - PIO_mode0_Teoc => PIO_mode0_Teoc, - - -- Multiword DMA mode 0 settings - -- OCIDEC-1 does not support DMA, set registers to zero - DMA_mode0_Tm => 0, - DMA_mode0_Td => 0, - DMA_mode0_Teoc => 0 - ) - port map( - arst => arst_signal, - rst => rst, - clk => clk, - ahbsi => ahbsi, - ahbso => ahbso, - - cf_power => cfo.power, -- power switch for compactflash - - -- PIO control input - -- PIOtip is only asserted during a PIO transfer (No shit! ;) - -- Since it is impossible to read the status register and access the PIO registers at the same time - -- this bit is useless (besides using-up resources) - PIOtip => gnd, - PIOack => PIOack, - PIOq => PIOq, - PIOsel => PIOsel, - PIOpp_full => gnd, -- OCIDEC-1 does not support PIO-write PingPong, negate signal - irq => s_irq, - PIOa => PIOa, - PIOd => PIOd, - PIOwe => PIOwe, - - -- DMA control inputs (negate all of them) - DMAtip => s_bmi.fr_ctr.tip, --Erik Jagre 2006-11-13 --- DMAack => gnd, - DMARxEmpty => s_bmi.fr_ctr.rx_empty, --Erik Jagre 2006-11-13 - DMATxFull => s_bmi.fr_ctr.fifo_rdy, --Erik Jagre 2006-11-13 - DMA_dmarq => s_DMA_dmarq, --Erik Jagre 2006-11-13 --- DMAq => gnd32, - - -- outputs - -- control register outputs - IDEctrl_rst => IDEctrl_rst, - IDEctrl_IDEen => IDEctrl_IDEen, - IDEctrl_ppen => s_IDEctrl_ppen, - IDEctrl_FATR0 => IDEctrl_FATR0, - IDEctrl_FATR1 => IDEctrl_FATR1, - - -- CMD port timing registers - PIO_cmdport_T1 => s_PIO_cmdport_T1, - PIO_cmdport_T2 => s_PIO_cmdport_T2, - PIO_cmdport_T4 => s_PIO_cmdport_T4, - PIO_cmdport_Teoc => s_PIO_cmdport_Teoc, - PIO_cmdport_IORDYen => s_PIO_cmdport_IORDYen, - - -- data-port0 timing registers - PIO_dport0_T1 => s_PIO_dport0_T1, - PIO_dport0_T2 => s_PIO_dport0_T2, - PIO_dport0_T4 => s_PIO_dport0_T4, - PIO_dport0_Teoc => s_PIO_dport0_Teoc, - PIO_dport0_IORDYen => s_PIO_dport0_IORDYen, - - -- data-port1 timing registers - PIO_dport1_T1 => s_PIO_dport1_T1, - PIO_dport1_T2 => s_PIO_dport1_T2, - PIO_dport1_T4 => s_PIO_dport1_T4, - PIO_dport1_Teoc => s_PIO_dport1_Teoc, - PIO_dport1_IORDYen => s_PIO_dport1_IORDYen, - - -- Bus master edits by Erik Jagre 2006-10-04 ---------------start-- - DMActrl_Bytesw=> s_DMActrl_Bytesw, - DMActrl_BeLeC0=> s_DMActrl_BeLeC0, - DMActrl_BeLeC1=> s_DMActrl_BeLeC1, - - DMActrl_DMAen => s_DMActrl_DMAen, - DMActrl_dir => s_DMActrl_dir, - - DMA_dev0_Tm => s_DMA_dev0_Tm, - DMA_dev0_Td => s_DMA_dev0_Td, - DMA_dev0_Teoc => s_DMA_dev0_Teoc, - - DMA_dev1_Tm => s_DMA_dev1_Tm, - DMA_dev1_Td => s_DMA_dev1_Td, - DMA_dev1_Teoc => s_DMA_dev1_Teoc, - - fr_BM =>s_bmo.to_slv, - to_BM =>s_bmi.fr_slv - -- Bus master edits by Erik Jagre 2006-10-04 ------------------end------- - ); - - ctr: atahost_controller - generic map( - fdepth => fdepth, - tech => tech, - TWIDTH => TWIDTH, - PIO_mode0_T1 => PIO_mode0_T1, - PIO_mode0_T2 => PIO_mode0_T2, - PIO_mode0_T4 => PIO_mode0_T4, - PIO_mode0_Teoc => PIO_mode0_Teoc, - DMA_mode0_Tm => DMA_mode0_Tm, - DMA_mode0_Td => DMA_mode0_Td, - DMA_mode0_Teoc => DMA_mode0_Teoc - ) - port map( - clk => clk, - nReset => arst_signal, - rst => reset, - irq => irq, - IDEctrl_IDEen => IDEctrl_IDEen, - IDEctrl_rst => IDEctrl_rst, - IDEctrl_ppen => s_IDEctrl_ppen, - IDEctrl_FATR0 => IDEctrl_FATR0, - IDEctrl_FATR1 => IDEctrl_FATR1, - a => PIOa, - d => s_d, - we => s_we, - PIO_cmdport_T1 => s_PIO_cmdport_T1, - PIO_cmdport_T2 => s_PIO_cmdport_T2, - PIO_cmdport_T4 => s_PIO_cmdport_T4, - PIO_cmdport_Teoc => s_PIO_cmdport_Teoc, - PIO_cmdport_IORDYen => s_PIO_cmdport_IORDYen, - PIO_dport0_T1 => s_PIO_dport0_T1, - PIO_dport0_T2 => s_PIO_dport0_T2, - PIO_dport0_T4 => s_PIO_dport0_T4, - PIO_dport0_Teoc => s_PIO_dport0_Teoc, - PIO_dport0_IORDYen => s_PIO_dport0_IORDYen, - PIO_dport1_T1 => s_PIO_dport1_T1, - PIO_dport1_T2 => s_PIO_dport1_T2, - PIO_dport1_T4 => s_PIO_dport1_T4, - PIO_dport1_Teoc => s_PIO_dport1_Teoc, - PIO_dport1_IORDYen => s_PIO_dport1_IORDYen, - PIOsel => PIOsel, - PIOack => PIOack, - PIOq => PIOq, - PIOtip => s_PIOtip, - PIOpp_full => s_PIOpp_full, - --DMA - DMActrl_DMAen => s_DMActrl_DMAen, - DMActrl_dir => s_DMActrl_dir, - DMActrl_Bytesw => s_DMActrl_Bytesw, - DMActrl_BeLeC0 => s_DMActrl_BeLeC0, - DMActrl_BeLeC1 => s_DMActrl_BeLeC1, - DMA_dev0_Td => s_DMA_dev0_Td, - DMA_dev0_Tm => s_DMA_dev0_Tm, - DMA_dev0_Teoc => s_DMA_dev0_Teoc, - DMA_dev1_Td => s_DMA_dev1_Td, - DMA_dev1_Tm => s_DMA_dev1_Tm, - DMA_dev1_Teoc => s_DMA_dev1_Teoc, - DMAsel => s_bmo.to_ctr.sel, - DMAack => s_bmi.fr_ctr.ack, - DMAq => s_bmi.fr_ctr.q, - DMAtip_out => s_bmi.fr_ctr.tip, - DMA_dmarq => s_DMA_dmarq, - force_rdy => s_bmo.to_ctr.force_rdy, - fifo_rdy => s_bmi.fr_ctr.fifo_rdy, - DMARxEmpty => s_bmi.fr_ctr.rx_empty, - DMARxFull => s_bmi.fr_ctr.rx_full, - DMA_req => s_bmi.fr_ctr.req, - DMA_ack => s_bmo.to_ctr.ack, - BM_en => s_bmi.fr_slv.en, -- Bus mater enabled, for DMA reset Erik Jagre 2006-10-24 - --ATA - RESETn => ata_resetn, - DDi => ddin, - DDo => ddout, - DDoe => ddoe, - DA => datemp, - CS0n => cs0n, - CS1n => cs1n, - DIORn => diorn, - DIOWn => diown, - IORDY => iordy, - INTRQ => intrq, - DMARQ => dmarq, - DMACKn => dmack - ); - - mst : ahbmst - generic map( - hindex => mhindex, - hirq => 0, - venid => VENDOR_GAISLER, - devid => GAISLER_ATACTRL, - version => 0, - chprot => 3, - incaddr => 4) - port map ( - rst => rst, - clk => clk, - dmai => s_bmo.to_mst, - dmao => s_bmi.fr_mst, - ahbi => ahbmi, - ahbo => ahbmo - ); - - bm : atahost_ahbmst - generic map(fdepth=>fdepth) - port map( - clk => clk, - rst => rst, - i => s_bmi, - o => s_bmo - ); - - -- pragma translate_off - bootmsg : report_version - generic map ("atactrl" & tost(hindex) & - ": ATA controller rev " & tost(VERSION) & ", irq " & tost(pirq)); - -- pragma translate_on -end; - diff --git a/lib/gaisler/ata/atactrl_nodma.vhd b/lib/gaisler/ata/atactrl_nodma.vhd deleted file mode 100644 index 44021c49..00000000 --- a/lib/gaisler/ata/atactrl_nodma.vhd +++ /dev/null @@ -1,363 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: atactrl_nodma --- File: atactrl_nodma.vhd --- Author: Nils-Johan Wessman, Gaisler Research --- Description: ATA controller ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -library gaisler; -use gaisler.ata.all; -library opencores; -use opencores.occomp.all; - -entity atactrl_nodma is - generic ( - hindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#ff0#; - pirq : integer := 0; - - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - - ); - port ( - rst : in std_ulogic; - arst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - cfo : out cf_out_type; - - -- ATA signals - ddin : in std_logic_vector(15 downto 0); - iordy : in std_logic; - intrq : in std_logic; - ata_resetn : out std_logic; - ddout : out std_logic_vector(15 downto 0); - ddoe : out std_logic; - da : out std_logic_vector(2 downto 0); - cs0n : out std_logic; - cs1n : out std_logic; - diorn : out std_logic; - diown : out std_logic; - dmack : out std_logic - ); -end; - - -architecture rtl of atactrl_nodma is - -- Device ID - constant DeviceId : integer := 2; - constant RevisionNo : integer := 0; - constant VERSION : integer := 0; - - component ocidec2_amba_slave is - generic ( - hindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#ff0#; - pirq : integer := 0; - DeviceID : integer := 0; - RevisionNo : integer := 0; - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23; -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - - -- Multiword DMA mode 0 settings (@100MHz clock) - DMA_mode0_Tm : natural := 4; -- 50ns - DMA_mode0_Td : natural := 21; -- 215ns - DMA_mode0_Teoc : natural := 21 -- 215ns ==> T0 - Td - Tm = 480 - 50 - 215 = 215 - ); - port ( - rst : in std_ulogic; - arst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - cf_power: out std_logic; - - -- ata controller signals - - -- PIO control input - PIOsel : out std_logic; - PIOtip, -- PIO transfer in progress - PIOack : in std_logic; -- PIO acknowledge signal - PIOq : in std_logic_vector(15 downto 0); -- PIO data input - PIOpp_full : in std_logic; -- PIO write-ping-pong buffers full - irq : in std_logic; -- interrupt signal input - PIOa : out std_logic_vector(3 downto 0); - PIOd : out std_logic_vector(15 downto 0); - PIOwe : out std_logic; - - -- DMA control inputs - DMAsel : out std_logic; - DMAtip, -- DMA transfer in progress - DMAack, -- DMA transfer acknowledge - DMARxEmpty, -- DMA receive buffer empty - DMATxFull, -- DMA transmit buffer full - DMA_dmarq : in std_logic; -- wishbone DMA request - DMAq : in std_logic_vector(31 downto 0); - - -- outputs - -- control register outputs - IDEctrl_rst, - IDEctrl_IDEen, - IDEctrl_FATR1, - IDEctrl_FATR0, - IDEctrl_ppen, - DMActrl_DMAen, - DMActrl_dir, - DMActrl_BeLeC0, - DMActrl_BeLeC1 : out std_logic; - - -- CMD port timing registers - PIO_cmdport_T1, - PIO_cmdport_T2, - PIO_cmdport_T4, - PIO_cmdport_Teoc : out std_logic_vector(7 downto 0); - PIO_cmdport_IORDYen : out std_logic; - - -- data-port0 timing registers - PIO_dport0_T1, - PIO_dport0_T2, - PIO_dport0_T4, - PIO_dport0_Teoc : out std_logic_vector(7 downto 0); - PIO_dport0_IORDYen : out std_logic; - - -- data-port1 timing registers - PIO_dport1_T1, - PIO_dport1_T2, - PIO_dport1_T4, - PIO_dport1_Teoc : out std_logic_vector(7 downto 0); - PIO_dport1_IORDYen : out std_logic; - - -- DMA device0 timing registers - DMA_dev0_Tm, - DMA_dev0_Td, - DMA_dev0_Teoc : out std_logic_vector(7 downto 0); - - -- DMA device1 timing registers - DMA_dev1_Tm, - DMA_dev1_Td, - DMA_dev1_Teoc : out std_logic_vector(7 downto 0) - ); - end component; - - -- asynchronous reset signal - signal arst_signal : std_logic; - - -- primary address decoder - signal PIOsel : std_logic; -- controller select, IDE devices select - - -- control signal - signal IDEctrl_rst, IDEctrl_IDEen, IDEctrl_FATR0, IDEctrl_FATR1 : std_logic; - -- compatible mode timing - signal PIO_cmdport_T1, PIO_cmdport_T2, PIO_cmdport_T4, PIO_cmdport_Teoc : std_logic_vector(7 downto 0); - signal PIO_cmdport_IORDYen : std_logic; - -- data port0 timing - signal PIO_dport0_T1, PIO_dport0_T2, PIO_dport0_T4, PIO_dport0_Teoc : std_logic_vector(7 downto 0); - signal PIO_dport0_IORDYen : std_logic; - -- data port1 timing - signal PIO_dport1_T1, PIO_dport1_T2, PIO_dport1_T4, PIO_dport1_Teoc : std_logic_vector(7 downto 0); - signal PIO_dport1_IORDYen : std_logic; - - signal PIOack : std_logic; - signal PIOq : std_logic_vector(15 downto 0); - signal PIOa : std_logic_vector(3 downto 0); - signal PIOd : std_logic_vector(15 downto 0); - signal PIOwe : std_logic; - - signal irq : std_logic; -- ATA bus IRQ signal - - signal reset : std_logic; - signal gnd,vcc : std_logic; - signal gnd32 : std_logic_vector(31 downto 0); - -begin - gnd <= '0';vcc <= '1'; gnd32 <= zero32; - -- generate asynchronous reset level - arst_signal <= arst;-- xor ARST_LVL; - reset <= not rst; - - dmack <= vcc; -- Disable DMA - - -- Generate CompactFlash signals - --cfo.power connected to bit 31 of the control register - cfo.atasel <= gnd; - cfo.we <= vcc; - cfo.csel <= gnd; - cfo.da <= (others => gnd); - - u0: ocidec2_amba_slave - generic map( - hindex => hindex, - haddr => haddr, - hmask => hmask, - pirq => pirq, - DeviceID => DeviceID, - RevisionNo => RevisionNo, - - -- PIO mode 0 settings - PIO_mode0_T1 => PIO_mode0_T1, - PIO_mode0_T2 => PIO_mode0_T2, - PIO_mode0_T4 => PIO_mode0_T4, - PIO_mode0_Teoc => PIO_mode0_Teoc, - - -- Multiword DMA mode 0 settings - -- OCIDEC-1 does not support DMA, set registers to zero - DMA_mode0_Tm => 0, - DMA_mode0_Td => 0, - DMA_mode0_Teoc => 0 - ) - port map( - arst => arst_signal, - rst => rst, - clk => clk, - ahbsi => ahbsi, - ahbso => ahbso, - - cf_power => cfo.power, -- power switch for compactflash - - -- PIO control input - -- PIOtip is only asserted during a PIO transfer (No shit! ;) - -- Since it is impossible to read the status register and access the PIO registers at the same time - -- this bit is useless (besides using-up resources) - PIOtip => gnd, - PIOack => PIOack, - PIOq => PIOq, - PIOsel => PIOsel, - PIOpp_full => gnd, -- OCIDEC-1 does not support PIO-write PingPong, negate signal - irq => irq, - PIOa => PIOa, - PIOd => PIOd, - PIOwe => PIOwe, - - -- DMA control inputs (negate all of them) - DMAtip => gnd, - DMAack => gnd, - DMARxEmpty => gnd, - DMATxFull => gnd, - DMA_dmarq => gnd, - DMAq => gnd32, - - -- outputs - -- control register outputs - IDEctrl_rst => IDEctrl_rst, - IDEctrl_IDEen => IDEctrl_IDEen, - IDEctrl_FATR0 => IDEctrl_FATR0, - IDEctrl_FATR1 => IDEctrl_FATR1, - - -- CMD port timing registers - PIO_cmdport_T1 => PIO_cmdport_T1, - PIO_cmdport_T2 => PIO_cmdport_T2, - PIO_cmdport_T4 => PIO_cmdport_T4, - PIO_cmdport_Teoc => PIO_cmdport_Teoc, - PIO_cmdport_IORDYen => PIO_cmdport_IORDYen, - - -- data-port0 timing registers - PIO_dport0_T1 => PIO_dport0_T1, - PIO_dport0_T2 => PIO_dport0_T2, - PIO_dport0_T4 => PIO_dport0_T4, - PIO_dport0_Teoc => PIO_dport0_Teoc, - PIO_dport0_IORDYen => PIO_dport0_IORDYen, - - -- data-port1 timing registers - PIO_dport1_T1 => PIO_dport1_T1, - PIO_dport1_T2 => PIO_dport1_T2, - PIO_dport1_T4 => PIO_dport1_T4, - PIO_dport1_Teoc => PIO_dport1_Teoc, - PIO_dport1_IORDYen => PIO_dport1_IORDYen - ); - - u1: ocidec2_controller - generic map( - TWIDTH => TWIDTH, - PIO_mode0_T1 => PIO_mode0_T1, - PIO_mode0_T2 => PIO_mode0_T2, - PIO_mode0_T4 => PIO_mode0_T4, - PIO_mode0_Teoc => PIO_mode0_Teoc - ) - port map( - clk => clk, - nReset => arst_signal, - rst => reset, - irq => irq, - IDEctrl_rst => IDEctrl_rst, - IDEctrl_IDEen => IDEctrl_IDEen, - IDEctrl_FATR0 => IDEctrl_FATR0, - IDEctrl_FATR1 => IDEctrl_FATR1, - cmdport_T1 => PIO_cmdport_T1, - cmdport_T2 => PIO_cmdport_T2, - cmdport_T4 => PIO_cmdport_T4, - cmdport_Teoc => PIO_cmdport_Teoc, - cmdport_IORDYen => PIO_cmdport_IORDYen, - dport0_T1 => PIO_dport0_T1, - dport0_T2 => PIO_dport0_T2, - dport0_T4 => PIO_dport0_T4, - dport0_Teoc => PIO_dport0_Teoc, - dport0_IORDYen => PIO_dport0_IORDYen, - dport1_T1 => PIO_dport1_T1, - dport1_T2 => PIO_dport1_T2, - dport1_T4 => PIO_dport1_T4, - dport1_Teoc => PIO_dport1_Teoc, - dport1_IORDYen => PIO_dport1_IORDYen, - PIOreq => PIOsel, - PIOack => PIOack, - PIOa => PIOa, - PIOd => PIOd, - PIOq => PIOq, - PIOwe => PIOwe, - - RESETn => ata_resetn, - DDi => ddin, - DDo => ddout, - DDoe => ddoe, - DA => da, - CS0n => cs0n, - CS1n => cs1n, - DIORn => diorn, - DIOWn => diown, - IORDY => iordy, - INTRQ => intrq - ); - - -- pragma translate_off - bootmsg : report_version - generic map ("atactrl" & tost(hindex) & - ": ATA controller rev " & tost(VERSION) & ", no DMA, irq " & tost(pirq)); - -- pragma translate_on -end; - diff --git a/lib/gaisler/ata/atahost_ahbmst.vhd b/lib/gaisler/ata/atahost_ahbmst.vhd deleted file mode 100644 index fe182911..00000000 --- a/lib/gaisler/ata/atahost_ahbmst.vhd +++ /dev/null @@ -1,272 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: net --- File: net.vhd --- Author: Erik Jagre - Gaisler Research --- Description: Generic FIFO, based on syncram in grlib ------------------------------------------------------------------------------ - ---ATA controller, bus-master ---Erik Jagre 2006-10-04 - -Library ieee; -Use ieee.std_logic_1164.all; -use work.ata_inf.all; -Library gaisler; -Use gaisler.ata.all; -Library grlib; -Use grlib.stdlib.all; -Use grlib.amba.ahbdrivedata; - ---************************ENTITY************************************************ -Entity atahost_ahbmst is -generic(fdepth: integer := 8); -Port(clk : in std_logic; - rst : in std_logic; --active low - i : in bmi_type; - o : out bmo_type - ); -end; - ---************************ARCHITECTURE****************************************** -Architecture rtl of atahost_ahbmst is -constant abits : integer := Log2(fdepth); - -type state_type is (IDLE,INIT,PREPARE,BURST_TO_ATA,BURST_TO_MEM,BURST_WAIT); - -type reg_type is record - state : state_type; - o : bmo_type; - adr_cnt : std_logic_vector(abits-1 downto 0); - cur_base : std_logic_vector(31 downto 0); - cur_length : std_logic_vector(15 downto 0); - cur_cnt : std_logic_vector(15 downto 0); - prdtb_offset : std_logic_vector(15 downto 0); - edt : std_logic; - bmen : std_logic; - adr_set : std_logic; -end record; - -constant RESET_VECTOR : reg_type := (IDLE, BMO_RESET_VECTOR, zero32(abits-1 downto 0), - zero32, X"0000", X"0000", X"0000", '0', '0', '0'); - -signal r,ri : reg_type; -begin - --**********************COMBINATORIAL LGOIC*********************************** - comb: process(rst,r,i) - variable v : reg_type; - variable v_diff : std_logic_vector(15 downto 0); - variable v_temp : std_logic_vector(31 downto 0); - begin - v:=r; - - v.bmen:=i.fr_slv.en; - v.o.we:=not i.fr_slv.dir; - case v.state is - when IDLE => -------------------IDLE STATE--------------------------- - if i.fr_slv.en='1' and r.bmen='0' then - v.state:=INIT; v.o.to_slv.done:='0'; - v.adr_cnt:=conv_std_logic_vector(0,abits); end if; - - when INIT => -------------------INIT STATE--------------------------- - v.o.to_mst.write:='0'; v.o.to_ctr.sel:='0'; ----------------------- nytt test - v.o.to_mst.address:=i.fr_slv.prdtb+v.prdtb_offset; v.adr_set:='1'; - if i.fr_mst.active='0' and r.adr_set='1' then - v.o.to_mst.burst:='1'; v.o.to_mst.start:='1'; end if; ------------------------ slut test --- if i.fr_mst.active='0' then --- v.o.to_mst.burst:='1'; v.o.to_mst.start:='1'; end if; --- v.o.to_mst.address:=i.fr_slv.prdtb+v.prdtb_offset; - if i.fr_mst.ready='1' then - if r.adr_cnt=conv_std_logic_vector(0,abits) then - if i.fr_slv.prd_belec='1' then --prd in mem is big endian - v.cur_base(31 downto 24):=i.fr_mst.rdata(7 downto 0); - v.cur_base(23 downto 16):=i.fr_mst.rdata(15 downto 8); - v.cur_base(15 downto 8):=i.fr_mst.rdata(23 downto 16); - v.cur_base(7 downto 0):=i.fr_mst.rdata(31 downto 24); - else --prd in mem is little endian - v.cur_base:=i.fr_mst.rdata(31 downto 0); - end if; - v.adr_cnt:=conv_std_logic_vector(1,abits); - elsif r.adr_cnt=conv_std_logic_vector(1,abits) then - if i.fr_slv.prd_belec='1' then --prd in mem is big endian - v.edt:=i.fr_mst.rdata(7); v.cur_cnt:=(others=>'0'); - v.cur_length(15 downto 8):=i.fr_mst.rdata(23 downto 16); - v.cur_length(7 downto 0):=i.fr_mst.rdata(31 downto 24); - else --prd in mem is little endian - v.edt:=i.fr_mst.rdata(31); v.cur_cnt:=(others=>'0'); - v.cur_length:=i.fr_mst.rdata(15 downto 0); - end if; - v.state:=PREPARE; v.adr_set:='0'; - v.o.to_mst.address:=v.cur_base; - end if; - end if; - if v.o.to_mst.start='1' and r.adr_cnt=conv_std_logic_vector(1,abits) - and i.fr_mst.start='1' then - v.o.to_mst.start:='0'; v.o.to_mst.burst:='0'; end if; - - when PREPARE => - v.o.to_ctr.ack:='0'; v.o.to_ctr.force_rdy:='0'; - v.o.to_mst.address:=v.cur_base+v.cur_cnt; - v.adr_cnt:=conv_std_logic_vector(0,abits); - if ((v.edt='1' and v.cur_cnt>=v.cur_length) or i.fr_ctr.irq='1') - and i.fr_ctr.tip='0' then - v.state:=IDLE; - if (v.edt='1' and v.cur_cnt>=v.cur_length) then - v.o.to_slv.done:='1'; v.o.to_ctr.ack:='1'; end if; - end if; - if not(v.edt='1' and v.cur_cnt>=v.cur_length) then - if i.fr_ctr.fifo_rdy='0' and i.fr_slv.dir='0' then - --might fail for AHB ram? - v.o.to_mst.burst:='1'; v.o.to_mst.write:='0'; - v.o.to_mst.start:='1'; v.state:=BURST_TO_ATA; - elsif i.fr_ctr.fifo_rdy='0' and i.fr_slv.dir='1' then - --might fail for AHB ram? - v.o.to_ctr.sel:='1'; - v.o.to_mst.burst:='1'; v.o.to_mst.write:='1'; - v.o.to_mst.start:='1'; v.state:=BURST_TO_MEM; - end if; - end if; - - when BURST_TO_ATA => - if i.fr_mst.start='1' and v.o.to_ctr.force_rdy='0' then - v_temp:=r.o.to_mst.address+4; - --abort burst due to PRD exhausted --------------------new - if r.cur_cnt+4>=r.cur_length then - v.o.to_mst.start:='0'; v.o.to_mst.burst:='0'; end if; - --...due to fifo full - if r.adr_cnt=conv_std_logic_vector(fdepth-1,abits) then - v.o.to_mst.start:='0'; v.o.to_mst.burst:='0'; end if; - --...due to AMBA 1k limit - if not(v_temp(11 downto 10) = v.o.to_mst.address(11 downto 10)) - and not(r.edt='1' and r.cur_cnt>=r.cur_length) then - v.o.to_mst.start:='0'; v.o.to_mst.burst:='0'; - end if; - end if; - if i.fr_mst.ready='1' and v.o.to_ctr.force_rdy='0' then - v.o.to_mst.address:=r.o.to_mst.address+4; o.d<=i.fr_mst.rdata(31 downto 0); - v.adr_cnt:=r.adr_cnt+1; v.cur_cnt:=r.cur_cnt+4; v.o.to_ctr.sel:='1'; - if r.adr_cnt=conv_std_logic_vector(fdepth-1,abits) then - v.o.to_ctr.force_rdy:='1'; end if; - --state transition when AMBA 1k limit - if not(v.o.to_mst.address(11 downto 10) = - r.o.to_mst.address(11 downto 10)) - and v.o.to_ctr.force_rdy='0' - and not(r.edt='1' and r.cur_cnt>=r.cur_length) then - v.state:=BURST_WAIT; end if; - else v.o.to_ctr.sel:='0'; end if; - --state transition when FIFO filled - if v.cur_cnt>=v.cur_length and v.edt='0' --- and i.fr_ctr.fifo_rdy='1' then - and (i.fr_ctr.fifo_rdy='1'or r.cur_cnt+4>=r.cur_length) then - v.prdtb_offset:=v.prdtb_offset+X"0008"; v.cur_cnt:=X"0000"; - v.adr_cnt:=conv_std_logic_vector(0,abits); v.state:=INIT; - elsif i.fr_ctr.fifo_rdy='1' then v.state:=PREPARE; end if; - - when BURST_TO_MEM => - v.o.to_ctr.sel:='0'; - if i.fr_mst.start='1' and v.o.to_ctr.force_rdy='0' then - v_temp:=r.o.to_mst.address+4; o.to_mst.wdata<=ahbdrivedata(i.fr_ctr.q); - --abort burst due to PRD exhausted - if r.cur_cnt+4>=r.cur_length then - v.o.to_mst.start:='0'; v.o.to_mst.burst:='0'; end if; - --...due to fifo empty - if r.adr_cnt=conv_std_logic_vector(fdepth-1,abits) then - v.o.to_mst.start:='0'; v.o.to_mst.burst:='0'; end if; - --...due to AMBA 1k limit - if not(v_temp(11 downto 10) = v.o.to_mst.address(11 downto 10)) - and not(r.edt='1' and r.cur_cnt>=r.cur_length) then - v.o.to_mst.start:='0'; v.o.to_mst.burst:='0'; - end if; - end if; - if i.fr_mst.ready='1' and v.o.to_ctr.force_rdy='0' then - v.o.to_mst.address:=r.o.to_mst.address+4; - v.adr_cnt:=r.adr_cnt+1; v.cur_cnt:=r.cur_cnt+4; - --fifo emptied, set ready - if r.adr_cnt=conv_std_logic_vector(fdepth-1,abits) then - v.o.to_ctr.force_rdy:='1'; end if; - --fifo NOT emptied, keep reading - if r.adr_cnt < conv_std_logic_vector(fdepth-1,abits) - and r.cur_cnt+4=r.cur_length) then - v.state:=BURST_WAIT; end if; - else v.o.to_ctr.sel:='0'; --2007-1-15 - end if; - if i.fr_mst.active='0' then - if v.cur_cnt>=v.cur_length and v.edt='0' - and (i.fr_ctr.fifo_rdy='1'or r.cur_cnt+4>=r.cur_length) then - v.prdtb_offset:=v.prdtb_offset+X"0008"; v.cur_cnt:=X"0000"; - v.adr_cnt:=conv_std_logic_vector(0,abits); v.state:=INIT; - elsif i.fr_ctr.fifo_rdy='1' then v.state:=PREPARE; end if; - end if; - - when BURST_WAIT => - if i.fr_mst.active='0' then - v.o.to_ctr.sel:='0'; v.o.to_mst.burst:='1'; v.o.to_mst.start:='1'; - if i.fr_slv.dir='1' then - v.o.to_mst.write:='1'; v.state:=BURST_TO_MEM; - else - v.o.to_mst.write:='0'; v.state:=BURST_TO_ATA; - end if; - end if; - - when others => ---------------------------------------------------------- - v.state:=IDLE; - end case; - - if rst='0' or (i.fr_slv.en='0' and r.bmen='1') or i.fr_mst.mexc='1' then - v:=RESET_VECTOR; end if; - - ----------------------ASSIGN OUTPUTS---------------------------------------- - v.o.to_slv.cur_base:=v.cur_base; v.o.to_slv.cur_cnt:=v.cur_cnt; --2006-11-13 - o.to_slv<=r.o.to_slv; - o.we<=r.o.we; - o.to_mst.address<=r.o.to_mst.address; - o.to_mst.start<=v.o.to_mst.start; - o.to_mst.burst<=v.o.to_mst.burst; - o.to_mst.write<=v.o.to_mst.write; - o.to_mst.busy<=r.o.to_mst.busy; - o.to_mst.irq<=r.o.to_mst.irq; - o.to_mst.size<=r.o.to_mst.size; - o.to_ctr.force_rdy<=r.o.to_ctr.force_rdy; - o.to_ctr.ack<=r.o.to_ctr.ack; - o.to_ctr.sel<=v.o.to_ctr.sel; - o.to_slv.err<=i.fr_mst.mexc; --2007-02-06 - - o.to_mst.wdata<=ahbdrivedata(i.fr_ctr.q); --2006-11-16 - o.d<=i.fr_mst.rdata(31 downto 0); --2006-11-16 - - ri<=v; - end process comb; - - --**********************FLIP FLOPS******************************************** - sync: process(clk) - begin - if rising_edge(clk) then r<=ri; end if; - end process sync; -end; - ---************************END OF FILE******************************************* diff --git a/lib/gaisler/ata/atahost_amba_slave.vhd b/lib/gaisler/ata/atahost_amba_slave.vhd deleted file mode 100644 index 249c261e..00000000 --- a/lib/gaisler/ata/atahost_amba_slave.vhd +++ /dev/null @@ -1,506 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: atahost_amba_slave --- File: atahost_amba_slave.vhd --- Author: Nils-Johan Wessman, Gaisler Research --- (Modified by E.Jagre Autumn 2006) --- Description: ATA controller ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; ---use ieee.std_logic_arith.all; -use ieee.numeric_std.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; -library gaisler; -use gaisler.memctrl.all; -use gaisler.ata.all; -use work.ata_inf.all; - -entity atahost_amba_slave is - generic ( - hindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#ff0#; - pirq : integer := 0; - DeviceID : integer := 0; - RevisionNo : integer := 0; - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23; -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - - -- Multiword DMA mode 0 settings (@100MHz clock) - DMA_mode0_Tm : natural := 4; -- 50ns - DMA_mode0_Td : natural := 21; -- 215ns - DMA_mode0_Teoc : natural := 21 -- 215ns ==> T0 - Td - Tm = 480 - 50 - 215 = 215 - ); - port ( - rst : in std_ulogic; - arst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - cf_power: out std_logic; - -- ata controller signals - - -- PIO control input - PIOsel : out std_logic; - PIOtip, -- PIO transfer in progress - PIOack : in std_logic; -- PIO acknowledge signal - PIOq : in std_logic_vector(15 downto 0); -- PIO data input - PIOpp_full : in std_logic; -- PIO write-ping-pong buffers full - irq : in std_logic; -- interrupt signal input - PIOa : out std_logic_vector(3 downto 0):="0000"; - PIOd : out std_logic_vector(15 downto 0); - PIOwe : out std_logic; - - -- DMA control inputs --- DMAsel : out std_logic; - DMAtip, -- DMA transfer in progress --- DMAack, -- DMA transfer acknowledge - DMARxEmpty, -- DMA receive buffer empty - DMATxFull, -- DMA transmit buffer full - DMA_dmarq : in std_logic; -- wishbone DMA request --- DMAq : in std_logic_vector(31 downto 0); - - -- outputs - -- control register outputs - IDEctrl_rst, - IDEctrl_IDEen, - IDEctrl_FATR1, - IDEctrl_FATR0, - IDEctrl_ppen, - DMActrl_DMAen, - DMActrl_dir, - DMActrl_Bytesw, -- Jagre 2006-12-04, byte swap - DMActrl_BeLeC0, - DMActrl_BeLeC1 : out std_logic; - - -- CMD port timing registers - PIO_cmdport_T1, - PIO_cmdport_T2, - PIO_cmdport_T4, - PIO_cmdport_Teoc : out std_logic_vector(7 downto 0); - PIO_cmdport_IORDYen : out std_logic; - - -- data-port0 timing registers - PIO_dport0_T1, - PIO_dport0_T2, - PIO_dport0_T4, - PIO_dport0_Teoc : out std_logic_vector(7 downto 0); - PIO_dport0_IORDYen : out std_logic; - - -- data-port1 timing registers - PIO_dport1_T1, - PIO_dport1_T2, - PIO_dport1_T4, - PIO_dport1_Teoc : out std_logic_vector(7 downto 0); - PIO_dport1_IORDYen : out std_logic; - - -- DMA device0 timing registers - DMA_dev0_Tm, - DMA_dev0_Td, - DMA_dev0_Teoc : out std_logic_vector(7 downto 0); - - -- DMA device1 timing registers - DMA_dev1_Tm, - DMA_dev1_Td, - DMA_dev1_Teoc : out std_logic_vector(7 downto 0); - - -- Bus master edits by Erik Jagre 2006-10-03 ------------------start----- - fr_BM : in bm_to_slv_type := BM_TO_SLV_RESET_VECTOR; - to_BM : out slv_to_bm_type := SLV_TO_BM_RESET_VECTOR - -- Bus master edits by Erik Jagre 2006-10-03 ------------------end------- - - ); -end; - - -architecture rtl of atahost_amba_slave is - -constant VERSION : amba_version_type := 0; -constant hconfig : ahb_config_type := ( - 0 => ahb_device_reg(VENDOR_GAISLER, GAISLER_ATACTRL, 0, VERSION, pirq), - 4 => ahb_iobar(haddr, hmask), - others => zero32); - -type PIOtiming_type is record - T1,T2,T4,Teoc : std_logic_vector(7 downto 0); -end record; -type DMAtiming_type is record - Tm,Td,Teoc : std_logic_vector(7 downto 0); -end record; - --- local registers -type reg_type is record - -- AHB signal - hready : std_ulogic; -- Hready - hsel : std_ulogic; -- Hsel - hmbsel : std_logic_vector(0 to 2); -- Mem map select - haddr : std_logic_vector(31 downto 0); -- Haddr - hrdata : std_logic_vector(31 downto 0); -- Hreaddata - hwdata : std_logic_vector(31 downto 0); -- Hwritedata - hwrite : std_ulogic; -- Hwrite - htrans : std_logic_vector(1 downto 0); -- Htrans type - hburst : std_logic_vector(2 downto 0); -- Hburst type - hresp : std_logic_vector(1 downto 0); -- Hresp type - size : std_logic_vector(1 downto 0); -- Part of Hsize - piosel : std_logic; - irq : std_logic; - irqv : std_logic_vector(NAHBIRQ-1 downto 0); - pioack : std_logic; - atasel : std_logic; - - -- reg signal - ctrlreg : std_logic_vector(31 downto 0); - statreg : std_logic_vector(31 downto 0); - - pio_cmd : PIOtiming_type; - pio_dp0 : PIOtiming_type; - pio_dp1 : PIOtiming_type; - dma_dev0 : DMAtiming_type; - dma_dev1 : DMAtiming_type; - - -- Bus master registers by Erik Jagre 2006-10-03 ------------------start----- - bmcmd : std_logic_vector(7 downto 0); --Bus master IDE command register - bmvd0 : std_logic_vector(31 downto 0); --Device specific (reserved) - bmsta : std_logic_vector(7 downto 0); --Bus master IDE status register - bmvd1 : std_logic_vector(31 downto 0); --Device specific (reserved) - prdtb : std_logic_vector(31 downto 0); --Bus master IDE PRD table address - fr_BM : bm_to_slv_type; - -- Bus master registers by Erik Jagre 2006-10-03 ------------------end------- - -end record; - -signal r, ri : reg_type; -begin - --- ctrl : process(rst, ahbsi, r, PIOack, PIOtip, PIOpp_full, irq, PIOq, fr_BM) Jagre 2007-02-08 - ctrl : process(rst, ahbsi, r, PIOack, PIOtip, PIOpp_full, irq, PIOq, DMAtip, dma_dmarq, dmatxfull, dmarxempty, fr_BM) - variable v : reg_type; -- local variables for registers - variable int : std_logic; - variable hwdata : std_logic_vector(31 downto 0); - begin - --- Variable default settings to avoid latches - v := r; - v.hresp := HRESP_OKAY; - v.irqv := (others => '0'); - int := '1'; - v.irq := irq; - v.irqv(pirq) := v.irq and not r.irq; - v.pioack := PIOack; - hwdata := ahbreadword(ahbsi.hwdata, r.haddr(4 downto 2)); - - -- Bus master edits by Erik Jagre 2006-10-03 ------------------start----- - v.fr_BM.err := fr_BM.err; - v.fr_BM.done := fr_BM.done; - v.bmvd0:=fr_bm.cur_base; - v.bmvd1(15 downto 0):=fr_bm.cur_cnt; - v.bmvd1(31 downto 15):=(others => '0'); - -- Bus master edits by Erik Jagre 2006-10-03 ------------------end------- - - - if (ahbsi.hready = '1') and (ahbsi.hsel(hindex) and ahbsi.htrans(1)) = '1' then - v.size := ahbsi.hsize(1 downto 0); - v.hwrite := ahbsi.hwrite; - v.htrans := ahbsi.htrans; - v.hburst := ahbsi.hburst; - v.hsel := '1'; - v.haddr := ahbsi.haddr; - v.piosel := ahbsi.haddr(6); - v.atasel := ahbsi.haddr(6); - - if ahbsi.hwrite = '0' or ahbsi.haddr(6) = '1' then -- Read or ATA - v.hready := '0'; - else -- Write - v.hready := '1'; - end if; - else - v.hsel := '0'; - - if PIOack = '1' then - v.piosel := '0'; - end if; - - v.hready := r.pioack or not r.atasel; - - if r.pioack = '1' then - v.atasel := '0'; - end if; - end if; - - if r.hsel = '1' and r.atasel = '0' and r.hwrite = '1' then -- Write - case r.haddr(5 downto 2) is - when "0000" => -- Control register 0x0 - v.ctrlreg := hwdata(31 downto 0); - when "0001" => -- Status register 0x4 - int := hwdata(0); -- irq bit in status reg - when "0010" => -- PIO Compatible timing register 0x8 - v.pio_cmd.T1 := hwdata(7 downto 0); - v.pio_cmd.T2 := hwdata(15 downto 8); - v.pio_cmd.T4 := hwdata(23 downto 16); - v.pio_cmd.Teoc := ahbsi.hwdata(31 downto 24); - when "0011" => -- PIO Fast timing register device 0 0xc - v.pio_dp0.T1 := hwdata(7 downto 0); - v.pio_dp0.T2 := hwdata(15 downto 8); - v.pio_dp0.T4 := hwdata(23 downto 16); - v.pio_dp0.Teoc := hwdata(31 downto 24); - when "0100" => -- PIO Fast timing register device 1 0x10 - v.pio_dp1.T1 := hwdata(7 downto 0); - v.pio_dp1.T2 := hwdata(15 downto 8); - v.pio_dp1.T4 := hwdata(23 downto 16); - v.pio_dp1.Teoc := hwdata(31 downto 24); - when "0101" => -- DMA timing register device 0 0x14 - v.dma_dev0.Tm := hwdata(7 downto 0); - v.dma_dev0.Td := hwdata(15 downto 8); - v.dma_dev0.Teoc := hwdata(31 downto 24); - when "0110" => -- DMA timing register device 1 0x18 - v.dma_dev1.Tm := hwdata(7 downto 0); - v.dma_dev1.Td := hwdata(15 downto 8); - v.dma_dev1.Teoc := hwdata(31 downto 24); - -- Bus master registers by Erik Jagre 2006-10-03 -----------------start------ - when "0111" => -- Bus master IDE command register 0x1C - v.bmcmd(7 downto 0) := hwdata(7 downto 0); - when "1000" => -- Device specific (reserved) 0x20 - v.bmvd0(7 downto 0) := hwdata(7 downto 0); - when "1001" => -- Bus master IDE status register 0x24 - v.bmsta(6 downto 1) := hwdata(6 downto 1); --bmsta(7) read only - if (hwdata(2)='1') then v.bmsta(2):='0'; end if; --reset IRQ - if (hwdata(1)='1') then v.bmsta(1):='0'; end if; --reset Error - when "1010" => -- Device specific (reserved) 0x28 - v.bmvd1(7 downto 0) := hwdata(7 downto 0); - when "1011" => -- Bus master IDE PRD table address 0x2C - v.prdtb := hwdata(31 downto 0); - -- Bus master registers by Erik Jagre 2006-10-03 -----------------end-------- - when others => null; - end case; - - elsif r.hsel = '1' and r.atasel = '1' and r.hwrite = '1' then -- ATA IO device 0x40- - v.hwdata := hwdata(31 downto 0); - end if; - - if r.hsel = '1' and r.atasel = '0' and r.hwrite = '0' then -- Read - case r.haddr(5 downto 2) is - when "0000" => -- Control register 0x0 - v.hrdata := r.ctrlreg; - when "0001" => -- Status register 0x4 - v.hrdata := r.statreg; - when "0010" => -- PIO Compatible timing register 0x8 - v.hrdata := (r.pio_cmd.Teoc & r.pio_cmd.T4 & r.pio_cmd.T2 & - r.pio_cmd.T1); - when "0011" => -- PIO Fast timing register device 0 0xc - v.hrdata := (r.pio_dp0.Teoc & r.pio_dp0.T4 & r.pio_dp0.T2 & - r.pio_dp0.T1); - when "0100" => -- PIO Fast timing register device 1 0x10 - v.hrdata := (r.pio_dp1.Teoc & r.pio_dp1.T4 & r.pio_dp1.T2 & - r.pio_dp1.T1); - when "0101" => -- DMA timing register device 0 0x14 - v.hrdata := (r.dma_dev0.Teoc & x"00" & r.dma_dev0.Td & - r.dma_dev0.Tm); - when "0110" => -- DMA timing register device 1 0x18 - v.hrdata := (r.dma_dev1.Teoc & x"00" & r.dma_dev1.Td & - r.dma_dev1.Tm); - -- Bus master registers by Erik Jagre 2006-10-03 -----------------start--- - when "0111" => -- Bus master IDE command register 0x1C - v.hrdata := (others => '0'); --return 0 on reads - v.hrdata(3) := r.bmcmd(3); --except for bit 3 - when "1000" => -- Device specific (reserved) 0x20 - v.hrdata(31 downto 0) := r.bmvd0; --Erik Jagre 2006-11-13 - --v.hrdata(31 downto 8) := (others => '0'); --return 0 on reads - --v.hrdata(7 downto 0) := r.bmvd0; - when "1001" => -- Bus master IDE status register 0x24 - v.hrdata(31 downto 8) := (others => '0'); --return 0 on reads - v.hrdata(7 downto 0) := r.bmsta; - v.hrdata(7) := '1'; --simplex only - v.hrdata(4 downto 3) := (others => '0'); --return 0 on reads - when "1010" => -- Device specific (reserved) 0x28 - v.hrdata(31 downto 0) := r.bmvd1; --Erik Jagre 2006-11-13 - --v.hrdata(31 downto 8) := (others => '0'); --return 0 on reads - --v.hrdata(7 downto 0) := r.bmvd1; - when "1011" => -- Bus master IDE PRD table address 0x2C - v.hrdata := r.prdtb; - -- Bus master registers by Erik Jagre 2006-10-03 ------------------end---- - when others => - v.hrdata := x"aaaaaaaa"; - end case; - elsif r.atasel = '1' then -- ATA IO device 0x40- - v.hrdata := (x"0000" & PIOq); - end if; - - -- Status register - v.statreg(31 downto 0) := (others => '0'); -- clear all bits (read unused bits as '0') - v.statreg(31 downto 28) := std_logic_vector(to_unsigned(DeviceId,4)); -- set Device ID - v.statreg(27 downto 24) := std_logic_vector(to_unsigned(RevisionNo,4)); -- set revision number - v.statreg(16) := irq; --Erik Jagre 20006-11-13 - v.statreg(15) := DMAtip; - v.statreg(10) := DMARxEmpty; - v.statreg(9) := DMATxFull; - v.statreg(8) := DMA_dmarq; - v.statreg(7) := PIOtip; - v.statreg(6) := PIOpp_full; - v.statreg(0) := (r.statreg(0) or (v.irq and not r.irq)) and int; - - -- Bus master control by Erik Jagre 2006-10-03 -----------------start------ - if (v.fr_BM.err='1' and r.fr_BM.err='0') then - v.bmsta(1):='1'; --set err on rising flank - end if; - - if (v.irq='1' and r.irq='0') then - v.bmsta(2):='1'; --set irq on rising flank - end if; - - if ((v.fr_BM.done='1' and r.fr_BM.done='0') or --BM done - (v.bmcmd(0)='0' and r.bmcmd(0)='1') or --Reset by software - (v.fr_BM.err='1' and r.fr_BM.err='0')) then --Error from BM - v.bmsta(0):='0'; --clear active - elsif (v.bmcmd(0)='1' and r.bmcmd(0)='0') then - v.bmsta(0):='1'; --set active on rising start flank - end if; - -- Bus master control by Erik Jagre 2006-10-03 ------------------end------- - --- reset - if rst = '0' then - v.ctrlreg := (0 => '1', others => '0'); - v.statreg(0) := '0'; - - -- Bus master control by Erik Jagre 2006-10-04 -----------------start--- - v.bmcmd := (others => '0'); - v.bmvd0 := (others => '0'); - v.bmsta := (7 => '1', others => '0'); - v.bmvd1 := (others => '0'); - v.prdtb := (others => '0'); - - -- Bus master control by Erik Jagre 2006-10-04 ------------------end---- - - v.haddr := (others => '0'); - v.hwrite := '0'; - v.hready := '1'; - v.pioack := '0'; - v.atasel := '0'; - v.piosel := '0'; - - v.pio_cmd.T1 := conv_std_logic_vector(PIO_mode0_T1,8); - v.pio_cmd.T2 := conv_std_logic_vector(PIO_mode0_T2,8); - v.pio_cmd.T4 := conv_std_logic_vector(PIO_mode0_T4,8); - v.pio_cmd.Teoc := conv_std_logic_vector(PIO_mode0_Teoc,8); - - v.pio_dp0.T1 := conv_std_logic_vector(PIO_mode0_T1,8); - v.pio_dp0.T2 := conv_std_logic_vector(PIO_mode0_T2,8); - v.pio_dp0.T4 := conv_std_logic_vector(PIO_mode0_T4,8); - v.pio_dp0.Teoc := conv_std_logic_vector(PIO_mode0_Teoc,8); - - v.pio_dp1.T1 := conv_std_logic_vector(PIO_mode0_T1,8); - v.pio_dp1.T2 := conv_std_logic_vector(PIO_mode0_T2,8); - v.pio_dp1.T4 := conv_std_logic_vector(PIO_mode0_T4,8); - v.pio_dp1.Teoc := conv_std_logic_vector(PIO_mode0_Teoc,8); - - v.dma_dev0.Tm := conv_std_logic_vector(DMA_mode0_Tm,8); - v.dma_dev0.Td := conv_std_logic_vector(DMA_mode0_Td,8); - v.dma_dev0.Teoc := conv_std_logic_vector(DMA_mode0_Teoc,8); - - v.dma_dev1.Tm := conv_std_logic_vector(DMA_mode0_Tm,8); - v.dma_dev1.Td := conv_std_logic_vector(DMA_mode0_Td,8); - v.dma_dev1.Teoc := conv_std_logic_vector(DMA_mode0_Teoc,8); - end if; - - -- assign control bits - cf_power <= r.ctrlreg(31); - DMActrl_DMAen <= r.bmcmd(0); --r.ctrlreg(15); --Erik Jagre 2006-10-24 - DMActrl_dir <= not r.bmcmd(3); --r.ctrlreg(13); --Jagre 2006-12-04 - DMActrl_Bytesw <= r.ctrlreg(11); --Jagre 2006-12-04, byteswap ATA data - DMActrl_BeLeC1 <= r.ctrlreg(9); - DMActrl_BeLeC0 <= r.ctrlreg(8); - IDEctrl_IDEen <= r.ctrlreg(7); - IDEctrl_FATR1 <= r.ctrlreg(6); - IDEctrl_FATR0 <= r.ctrlreg(5); - IDEctrl_ppen <= r.ctrlreg(4); - PIO_dport1_IORDYen <= r.ctrlreg(3); - PIO_dport0_IORDYen <= r.ctrlreg(2); - PIO_cmdport_IORDYen <= r.ctrlreg(1); - IDEctrl_rst <= r.ctrlreg(0); - - -- CMD port timing - PIO_cmdport_T1 <= r.pio_cmd.T1; PIO_cmdport_T2 <= r.pio_cmd.T2; - PIO_cmdport_T4 <= r.pio_cmd.T4; PIO_cmdport_Teoc <= r.pio_cmd.Teoc; - - -- data-port0 timing - PIO_dport0_T1 <= r.pio_dp0.T1; PIO_dport0_T2 <= r.pio_dp0.T2; - PIO_dport0_T4 <= r.pio_dp0.T4; PIO_dport0_Teoc <= r.pio_dp0.Teoc; - - -- data-port1 timing - PIO_dport1_T1 <= r.pio_dp1.T1; PIO_dport1_T2 <= r.pio_dp1.T2; - PIO_dport1_T4 <= r.pio_dp1.T4; PIO_dport1_Teoc <= r.pio_dp1.Teoc; - - -- DMA device0 timing - DMA_dev0_Tm <= r.dma_dev0.Tm; DMA_dev0_Td <= r.dma_dev0.Td; - DMA_dev0_Teoc <= r.dma_dev0.Teoc; - - -- DMA device1 timing - DMA_dev1_Tm <= r.dma_dev0.Tm; DMA_dev1_Td <= r.dma_dev0.Td; - DMA_dev1_Teoc <= r.dma_dev0.Teoc; - - -- Bus master control by Erik Jagre 2006-10-04 -----------------start--- - --assign BM signal - -- to_BM.en<=r.bmcmd(0);Jagre 2007-1-15 - to_BM.en<=r.bmsta(0); - to_BM.dir<=r.bmcmd(3); - to_BM.prdtb<=r.prdtb; - to_BM.prd_belec<=r.ctrlreg(10); - -- Bus master control by Erik Jagre 2006-10-04 ------------------end---- - - ri <= v; - - PIOa <= r.haddr(5 downto 2); - PIOd <= r.hwdata(15 downto 0); - PIOsel <= r.piosel; - PIOwe <= r.hwrite; --- DMAsel <= '0'; -- temp *** - - ahbso.hready <= r.hready; - ahbso.hresp <= r.hresp; - ahbso.hrdata <= ahbdrivedata(r.hrdata); - ahbso.hconfig <= hconfig; - ahbso.hcache <= '0'; - ahbso.hirq <= r.irqv; - ahbso.hindex <= hindex; - ahbso.hsplit <= (others => '0'); - - end process; - - regs : process(clk,rst) - begin - - if rising_edge(clk) then - r <= ri; - end if; - - if rst = '0' then - end if; - end process; - -end; - diff --git a/lib/gaisler/ata/atahost_dma_fifo.vhd b/lib/gaisler/ata/atahost_dma_fifo.vhd deleted file mode 100644 index b3c8a12f..00000000 --- a/lib/gaisler/ata/atahost_dma_fifo.vhd +++ /dev/null @@ -1,151 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: atahost_dma_fifo --- File: atahost_dma_fifo.vhd --- Author: Erik Jagre - Gaisler Research --- Description: Generic FIFO, based on syncram in grlib ------------------------------------------------------------------------------ - -library IEEE; -use IEEE.std_logic_1164.all; -use ieee.std_logic_arith.all; -library techmap; -use techmap.gencomp.all; - -entity atahost_dma_fifo is - generic(tech : integer:=0; abits : integer:=3; - dbits : integer:=32; depth : integer:=8); - port( clk : in std_logic; - reset : in std_logic; - write_enable : in std_logic; - read_enable : in std_logic; - data_in : in std_logic_vector(dbits-1 downto 0); - data_out : out std_logic_vector(dbits-1 downto 0); - write_error : out std_logic:='0'; - read_error : out std_logic:='0'; - level : out natural range 0 to depth; - empty : out std_logic:='1'; - full : out std_logic:='0'); -end; - -architecture rtl of atahost_dma_fifo is -type state_type is (full_state, empty_state, idle_state); -type reg_type is record - state : state_type; - level : integer range 0 to depth; - aw : integer range 0 to depth; - ar : integer range 0 to depth; - data_o : std_logic_vector(dbits-1 downto 0); - rd : std_logic; - wr : std_logic; - erd : std_logic; - ewr : std_logic; - reset : std_logic; - adr : std_logic_vector(abits-1 downto 0); -end record; - -constant RESET_VECTOR : reg_type := (empty_state,0,0,0, - conv_std_logic_vector(0,dbits),'0','0','0','0','0',(others=>'0')); - -signal r,ri : reg_type; -signal s_ram_adr : std_logic_vector(abits-1 downto 0); - -begin --- comb:process(write_enable, read_enable, data_in,reset, r) Erik 2007-02-08 - comb:process(write_enable, read_enable, reset, r) - variable v : reg_type; - variable vfull, vempty : std_logic; - - begin - v:=r; - v.wr:=write_enable; v.rd:=read_enable; v.reset:=reset; - - case r.state is - when full_state=> - if write_enable='1' and read_enable='0' and reset='0' then - v.ewr:='1'; v.state:=full_state; - elsif write_enable='0' and read_enable='1' and reset='0' then - v.adr:=conv_std_logic_vector(r.ar,abits); - if r.ar=depth-1 then v.ar:=0; else v.ar:=r.ar+1; end if; - v.level:=r.level-1; - if r.aw=v.ar then v.state:=empty_state; - else v.state:=idle_state; end if; - v.ewr:='0'; - end if; - - when empty_state=> - if write_enable='1' and read_enable='0' and reset='0' then - v.adr:=conv_std_logic_vector(r.aw,abits); - if r.aw=depth-1 then v.aw:=0; else v.aw:=r.aw+1; end if; - v.level:=r.level+1; - if v.aw=r.ar then v.state:=full_state; - else v.state:=idle_state; end if; - v.erd:='0'; - elsif write_enable='0' and read_enable='1' and reset='0' then - v.erd:='1'; v.state:=empty_state; - end if; - - when idle_state=> - if write_enable='1' and read_enable='0' and reset='0' then - v.adr:=conv_std_logic_vector(r.aw,abits); - if r.aw=depth-1 then v.aw:=0; else v.aw:=r.aw+1; end if; - v.level:=r.level+1; - if v.level=depth then v.state:=full_state; - else v.state:=idle_state; end if; - elsif write_enable='0' and read_enable='1' and reset='0' then - v.adr:=conv_std_logic_vector(r.ar,abits); - if r.ar=depth-1 then v.ar:=0; else v.ar:=r.ar+1; end if; - v.level:=r.level-1; - if v.level=0 then v.state:=empty_state; - else v.state:=idle_state; end if; - end if; - end case; - - if r.level=0 then vempty:='1'; vfull:='0'; - elsif r.level=depth then vempty:='0'; vfull:='1'; - else vempty:='0'; vfull:='0'; end if; - - --reset logic - if (reset='1') then v:=RESET_VECTOR; end if; - - ri<=v; - s_ram_adr<=v.adr; - - --assigning outport - write_error<=v.ewr; read_error<=v.erd; level<=v.level; - empty<=vempty; full<=vfull; - end process; - - ram : syncram - generic map(tech=>tech, abits=>abits, dbits=>dbits) - port map ( - clk => clk, - address => s_ram_adr, - datain => data_in, - dataout => data_out, - enable => read_enable, - write => write_enable - ); - - sync:process(clk) --Activate on clock & reset - begin - if clk'event and clk='1' then r<=ri; end if; - end process; -end; \ No newline at end of file diff --git a/lib/gaisler/ata/ocidec2_amba_slave.vhd b/lib/gaisler/ata/ocidec2_amba_slave.vhd deleted file mode 100644 index 6621890f..00000000 --- a/lib/gaisler/ata/ocidec2_amba_slave.vhd +++ /dev/null @@ -1,403 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: ocidec2_amba_slave --- File: ocidec2_amba_slave.vhd --- Author: Nils-Johan Wessman, Gaisler Research --- Description: ATA controller ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; ---use ieee.std_logic_arith.all; -use ieee.numeric_std.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -library gaisler; -use grlib.devices.all; -use gaisler.memctrl.all; - -entity ocidec2_amba_slave is - generic ( - hindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#ff0#; - pirq : integer := 0; - DeviceID : integer := 0; - RevisionNo : integer := 0; - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23; -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - - -- Multiword DMA mode 0 settings (@100MHz clock) - DMA_mode0_Tm : natural := 4; -- 50ns - DMA_mode0_Td : natural := 21; -- 215ns - DMA_mode0_Teoc : natural := 21 -- 215ns ==> T0 - Td - Tm = 480 - 50 - 215 = 215 - ); - port ( - rst : in std_ulogic; - arst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - cf_power: out std_logic; - -- ata controller signals - - -- PIO control input - PIOsel : out std_logic; - PIOtip, -- PIO transfer in progress - PIOack : in std_logic; -- PIO acknowledge signal - PIOq : in std_logic_vector(15 downto 0); -- PIO data input - PIOpp_full : in std_logic; -- PIO write-ping-pong buffers full - irq : in std_logic; -- interrupt signal input - PIOa : out std_logic_vector(3 downto 0); - PIOd : out std_logic_vector(15 downto 0); - PIOwe : out std_logic; - - -- DMA control inputs - DMAsel : out std_logic; - DMAtip, -- DMA transfer in progress - DMAack, -- DMA transfer acknowledge - DMARxEmpty, -- DMA receive buffer empty - DMATxFull, -- DMA transmit buffer full - DMA_dmarq : in std_logic; -- wishbone DMA request - DMAq : in std_logic_vector(31 downto 0); - - -- outputs - -- control register outputs - IDEctrl_rst, - IDEctrl_IDEen, - IDEctrl_FATR1, - IDEctrl_FATR0, - IDEctrl_ppen, - DMActrl_DMAen, - DMActrl_dir, - DMActrl_BeLeC0, - DMActrl_BeLeC1 : out std_logic; - - -- CMD port timing registers - PIO_cmdport_T1, - PIO_cmdport_T2, - PIO_cmdport_T4, - PIO_cmdport_Teoc : out std_logic_vector(7 downto 0); - PIO_cmdport_IORDYen : out std_logic; - - -- data-port0 timing registers - PIO_dport0_T1, - PIO_dport0_T2, - PIO_dport0_T4, - PIO_dport0_Teoc : out std_logic_vector(7 downto 0); - PIO_dport0_IORDYen : out std_logic; - - -- data-port1 timing registers - PIO_dport1_T1, - PIO_dport1_T2, - PIO_dport1_T4, - PIO_dport1_Teoc : out std_logic_vector(7 downto 0); - PIO_dport1_IORDYen : out std_logic; - - -- DMA device0 timing registers - DMA_dev0_Tm, - DMA_dev0_Td, - DMA_dev0_Teoc : out std_logic_vector(7 downto 0); - - -- DMA device1 timing registers - DMA_dev1_Tm, - DMA_dev1_Td, - DMA_dev1_Teoc : out std_logic_vector(7 downto 0) - ); -end; - - -architecture rtl of ocidec2_amba_slave is - -constant VERSION : amba_version_type := 0; -constant hconfig : ahb_config_type := ( - 0 => ahb_device_reg(VENDOR_GAISLER, GAISLER_ATACTRL, 0, VERSION, pirq), - 4 => ahb_iobar(haddr, hmask), - others => zero32); - -type PIOtiming_type is record - T1,T2,T4,Teoc : std_logic_vector(7 downto 0); -end record; -type DMAtiming_type is record - Tm,Td,Teoc : std_logic_vector(7 downto 0); -end record; - --- local registers -type reg_type is record - -- AHB signal - hready : std_ulogic; -- Hready - hsel : std_ulogic; -- Hsel - hmbsel : std_logic_vector(0 to 2); -- Mem map select - haddr : std_logic_vector(31 downto 0); -- Haddr - hrdata : std_logic_vector(31 downto 0); -- Hreaddata - hwdata : std_logic_vector(31 downto 0); -- Hwritedata - hwrite : std_ulogic; -- Hwrite - htrans : std_logic_vector(1 downto 0); -- Htrans type - hburst : std_logic_vector(2 downto 0); -- Hburst type - hresp : std_logic_vector(1 downto 0); -- Hresp type - size : std_logic_vector(1 downto 0); -- Part of Hsize - piosel : std_logic; - irq : std_logic; - irqv : std_logic_vector(NAHBIRQ-1 downto 0); - pioack : std_logic; - atasel : std_logic; - - -- reg signal - ctrlreg : std_logic_vector(31 downto 0); - statreg : std_logic_vector(31 downto 0); - - pio_cmd : PIOtiming_type; - pio_dp0 : PIOtiming_type; - pio_dp1 : PIOtiming_type; - dma_dev0 : DMAtiming_type; - dma_dev1 : DMAtiming_type; -end record; - -signal r, ri : reg_type; -begin - - ctrl : process(rst, ahbsi, r, PIOack, PIOtip, PIOpp_full, irq, PIOq, - DMAtip, DMARxEmpty, DMATxFull, DMA_dmarq) - variable v : reg_type; -- local variables for registers - variable int : std_logic; - variable hwdata : std_logic_vector(31 downto 0); - begin - --- Variable default settings to avoid latches - v := r; - v.hresp := HRESP_OKAY; - v.irqv := (others => '0'); - int := '1'; - v.irq := irq; - v.irqv(pirq) := v.irq and not r.irq; - v.pioack := PIOack; - hwdata := ahbreadword(ahbsi.hwdata, r.haddr(4 downto 2)); - - if (ahbsi.hready = '1') and (ahbsi.hsel(hindex) and ahbsi.htrans(1)) = '1' then - v.size := ahbsi.hsize(1 downto 0); - v.hwrite := ahbsi.hwrite; - v.htrans := ahbsi.htrans; - v.hburst := ahbsi.hburst; - v.hsel := '1'; - v.haddr := ahbsi.haddr; - v.piosel := ahbsi.haddr(6); - v.atasel := ahbsi.haddr(6); - - if ahbsi.hwrite = '0' or ahbsi.haddr(6) = '1' then -- Read or ATA - v.hready := '0'; - else -- Write - v.hready := '1'; - end if; - else - v.hsel := '0'; - - if PIOack = '1' then - v.piosel := '0'; - end if; - - v.hready := r.pioack or not r.atasel; - - if r.pioack = '1' then - v.atasel := '0'; - end if; - end if; - - if r.hsel = '1' and r.atasel = '0' and r.hwrite = '1' then -- Write - case r.haddr(5 downto 2) is - when "0000" => -- Control register 0x0 - v.ctrlreg := hwdata; - when "0001" => -- Status register 0x4 - int := hwdata(0); -- irq bit in status reg - when "0010" => -- PIO Compatible timing register 0x8 - v.pio_cmd.T1 := hwdata(7 downto 0); - v.pio_cmd.T2 := hwdata(15 downto 8); - v.pio_cmd.T4 := hwdata(23 downto 16); - v.pio_cmd.Teoc := hwdata(31 downto 24); - when "0011" => -- PIO Fast timing register device 0 0xc - v.pio_dp0.T1 := hwdata(7 downto 0); - v.pio_dp0.T2 := hwdata(15 downto 8); - v.pio_dp0.T4 := hwdata(23 downto 16); - v.pio_dp0.Teoc := hwdata(31 downto 24); - when "0100" => -- PIO Fast timing register device 1 0x10 - v.pio_dp1.T1 := hwdata(7 downto 0); - v.pio_dp1.T2 := hwdata(15 downto 8); - v.pio_dp1.T4 := hwdata(23 downto 16); - v.pio_dp1.Teoc := hwdata(31 downto 24); - when "0101" => -- DMA timing register device 0 0x14 - v.dma_dev0.Tm := hwdata(7 downto 0); - v.dma_dev0.Td := hwdata(15 downto 8); - v.dma_dev0.Teoc := hwdata(31 downto 24); - when "0110" => -- DMA timing register device 1 0x18 - v.dma_dev1.Tm := hwdata(7 downto 0); - v.dma_dev1.Td := hwdata(15 downto 8); - v.dma_dev1.Teoc := hwdata(31 downto 24); - when others => null; - end case; - elsif r.hsel = '1' and r.atasel = '1' and r.hwrite = '1' then -- ATA IO device 0x40- - v.hwdata := hwdata; - end if; - - if r.hsel = '1' and r.atasel = '0' and r.hwrite = '0' then -- Read - case r.haddr(5 downto 2) is - when "0000" => -- Control register 0x0 - v.hrdata := r.ctrlreg; - when "0001" => -- Status register 0x4 - v.hrdata := r.statreg; - when "0010" => -- PIO Compatible timing register 0x8 - v.hrdata := (r.pio_cmd.Teoc & r.pio_cmd.T4 & r.pio_cmd.T2 & - r.pio_cmd.T1); - when "0011" => -- PIO Fast timing register device 0 0xc - v.hrdata := (r.pio_dp0.Teoc & r.pio_dp0.T4 & r.pio_dp0.T2 & - r.pio_dp0.T1); - when "0100" => -- PIO Fast timing register device 1 0x10 - v.hrdata := (r.pio_dp1.Teoc & r.pio_dp1.T4 & r.pio_dp1.T2 & - r.pio_dp1.T1); - when "0101" => -- DMA timing register device 0 0x14 - v.hrdata := (r.dma_dev0.Teoc & x"00" & r.dma_dev0.Td & - r.dma_dev0.Tm); - when "0110" => -- DMA timing register device 1 0x18 - v.hrdata := (r.dma_dev1.Teoc & x"00" & r.dma_dev1.Td & - r.dma_dev1.Tm); - when others => - v.hrdata := x"aaaaaaaa"; - end case; - elsif r.atasel = '1' then -- ATA IO device 0x40- - v.hrdata := (x"0000" & PIOq); - end if; - - -- Status register - v.statreg(31 downto 0) := (others => '0'); -- clear all bits (read unused bits as '0') - v.statreg(31 downto 28) := std_logic_vector(to_unsigned(DeviceId,4)); -- set Device ID - v.statreg(27 downto 24) := std_logic_vector(to_unsigned(RevisionNo,4)); -- set revision number - v.statreg(15) := DMAtip; - v.statreg(10) := DMARxEmpty; - v.statreg(9) := DMATxFull; - v.statreg(8) := DMA_dmarq; - v.statreg(7) := PIOtip; - v.statreg(6) := PIOpp_full; - v.statreg(0) := (r.statreg(0) or (v.irq and not r.irq)) and int; - --- reset - if rst = '0' then - v.ctrlreg := (0 => '1', others => '0'); - v.statreg(0) := '0'; - - v.haddr := (others => '0'); - v.hwrite := '0'; - v.hready := '1'; - v.pioack := '0'; - v.atasel := '0'; - v.piosel := '0'; - - v.pio_cmd.T1 := conv_std_logic_vector(PIO_mode0_T1,8); - v.pio_cmd.T2 := conv_std_logic_vector(PIO_mode0_T2,8); - v.pio_cmd.T4 := conv_std_logic_vector(PIO_mode0_T4,8); - v.pio_cmd.Teoc := conv_std_logic_vector(PIO_mode0_Teoc,8); - - v.pio_dp0.T1 := conv_std_logic_vector(PIO_mode0_T1,8); - v.pio_dp0.T2 := conv_std_logic_vector(PIO_mode0_T2,8); - v.pio_dp0.T4 := conv_std_logic_vector(PIO_mode0_T4,8); - v.pio_dp0.Teoc := conv_std_logic_vector(PIO_mode0_Teoc,8); - - v.pio_dp1.T1 := conv_std_logic_vector(PIO_mode0_T1,8); - v.pio_dp1.T2 := conv_std_logic_vector(PIO_mode0_T2,8); - v.pio_dp1.T4 := conv_std_logic_vector(PIO_mode0_T4,8); - v.pio_dp1.Teoc := conv_std_logic_vector(PIO_mode0_Teoc,8); - - v.dma_dev0.Tm := conv_std_logic_vector(DMA_mode0_Tm,8); - v.dma_dev0.Td := conv_std_logic_vector(DMA_mode0_Td,8); - v.dma_dev0.Teoc := conv_std_logic_vector(DMA_mode0_Teoc,8); - - v.dma_dev1.Tm := conv_std_logic_vector(DMA_mode0_Tm,8); - v.dma_dev1.Td := conv_std_logic_vector(DMA_mode0_Td,8); - v.dma_dev1.Teoc := conv_std_logic_vector(DMA_mode0_Teoc,8); - end if; - - -- assign control bits - cf_power <= r.ctrlreg(31); - DMActrl_DMAen <= r.ctrlreg(15); - DMActrl_dir <= r.ctrlreg(13); - DMActrl_BeLeC1 <= r.ctrlreg(9); - DMActrl_BeLeC0 <= r.ctrlreg(8); - IDEctrl_IDEen <= r.ctrlreg(7); - IDEctrl_FATR1 <= r.ctrlreg(6); - IDEctrl_FATR0 <= r.ctrlreg(5); - IDEctrl_ppen <= r.ctrlreg(4); - PIO_dport1_IORDYen <= r.ctrlreg(3); - PIO_dport0_IORDYen <= r.ctrlreg(2); - PIO_cmdport_IORDYen <= r.ctrlreg(1); - IDEctrl_rst <= r.ctrlreg(0); - - -- CMD port timing - PIO_cmdport_T1 <= r.pio_cmd.T1; PIO_cmdport_T2 <= r.pio_cmd.T2; - PIO_cmdport_T4 <= r.pio_cmd.T4; PIO_cmdport_Teoc <= r.pio_cmd.Teoc; - - -- data-port0 timing - PIO_dport0_T1 <= r.pio_dp0.T1; PIO_dport0_T2 <= r.pio_dp0.T2; - PIO_dport0_T4 <= r.pio_dp0.T4; PIO_dport0_Teoc <= r.pio_dp0.Teoc; - - -- data-port1 timing - PIO_dport1_T1 <= r.pio_dp1.T1; PIO_dport1_T2 <= r.pio_dp1.T2; - PIO_dport1_T4 <= r.pio_dp1.T4; PIO_dport1_Teoc <= r.pio_dp1.Teoc; - - -- DMA device0 timing - DMA_dev0_Tm <= r.dma_dev0.Tm; DMA_dev0_Td <= r.dma_dev0.Td; - DMA_dev0_Teoc <= r.dma_dev0.Teoc; - - -- DMA device1 timing - DMA_dev1_Tm <= r.dma_dev0.Tm; DMA_dev1_Td <= r.dma_dev0.Td; - DMA_dev1_Teoc <= r.dma_dev0.Teoc; - - ri <= v; - - PIOa <= r.haddr(5 downto 2); - PIOd <= r.hwdata(15 downto 0); - PIOsel <= r.piosel; - PIOwe <= r.hwrite; - DMAsel <= '0'; -- temp *** - - ahbso.hready <= r.hready; - ahbso.hresp <= r.hresp; - ahbso.hrdata <= ahbdrivedata(r.hrdata); - ahbso.hconfig <= hconfig; - ahbso.hcache <= '0'; - ahbso.hirq <= r.irqv; - ahbso.hindex <= hindex; - - end process; - - regs : process(clk,rst) - begin - - if rising_edge(clk) then - r <= ri; - end if; - - if rst = '0' then - end if; - end process; - -end; - diff --git a/lib/gaisler/ata/vhdlsyn.txt b/lib/gaisler/ata/vhdlsyn.txt deleted file mode 100644 index 1d90fd5f..00000000 --- a/lib/gaisler/ata/vhdlsyn.txt +++ /dev/null @@ -1,10 +0,0 @@ -ata.vhd -ata_inf.vhd -atahost_amba_slave.vhd -atahost_ahbmst.vhd -ocidec2_amba_slave.vhd -atactrl_nodma.vhd -atactrl_dma.vhd -atactrl.vhd - - diff --git a/lib/gaisler/can/can.vhd b/lib/gaisler/can/can.vhd index b5d56344..30f8740b 100644 --- a/lib/gaisler/can/can.vhd +++ b/lib/gaisler/can/can.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/can/can_mc.vhd b/lib/gaisler/can/can_mc.vhd index 5fdc589b..6318cc34 100644 --- a/lib/gaisler/can/can_mc.vhd +++ b/lib/gaisler/can/can_mc.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -172,7 +172,6 @@ begin ahbso.hconfig <= hconfig; ahbso.hindex <= slvndx; ahbso.hsplit <= (others => '0'); - ahbso.hcache <= '0'; ahbso.hready <= r.hready; diff --git a/lib/gaisler/can/can_mod.vhd b/lib/gaisler/can/can_mod.vhd index d409ce13..5cc254e0 100644 --- a/lib/gaisler/can/can_mod.vhd +++ b/lib/gaisler/can/can_mod.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/can/can_oc.vhd b/lib/gaisler/can/can_oc.vhd index b8b9ba2e..427c04c2 100644 --- a/lib/gaisler/can/can_oc.vhd +++ b/lib/gaisler/can/can_oc.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -157,7 +157,6 @@ begin ahbso.hconfig <= hconfig; ahbso.hindex <= slvndx; ahbso.hsplit <= (others => '0'); - ahbso.hcache <= '0'; ahbso.hready <= r.hready; diff --git a/lib/gaisler/can/can_rd.vhd b/lib/gaisler/can/can_rd.vhd index 35042538..946fecb4 100644 --- a/lib/gaisler/can/can_rd.vhd +++ b/lib/gaisler/can/can_rd.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -186,7 +186,6 @@ begin ahbso.hconfig <= hconfig; ahbso.hindex <= slvndx; ahbso.hsplit <= (others => '0'); - ahbso.hcache <= '0'; ahbso.hready <= r.hready; diff --git a/lib/gaisler/ddr/ahb2mig_series7.vhd b/lib/gaisler/ddr/ahb2mig_series7.vhd new file mode 100644 index 00000000..5ae4194c --- /dev/null +++ b/lib/gaisler/ddr/ahb2mig_series7.vhd @@ -0,0 +1,748 @@ +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Entity: ahb2mig +-- File: ahb2mig.vhd +-- Author: Fredrik Ringhage - Aeroflex Gaisler AB +-- +-- This is a AHB-2.0 interface for the Xilinx Virtex-7 MIG. +-- +------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library gaisler; +use gaisler.all; +use gaisler.ahb2mig_series7_pkg.all; +library grlib; +use grlib.amba.all; +use grlib.stdlib.all; +use grlib.devices.all; +use grlib.config_types.all; +use grlib.config.all; +library std; +use std.textio.all; + +entity ahb2mig_series7 is + generic( + hindex : integer := 0; + haddr : integer := 0; + hmask : integer := 16#f00#; + pindex : integer := 0; + paddr : integer := 0; + pmask : integer := 16#fff#; + maxwriteburst : integer := 8; + maxreadburst : integer := 8; + SIM_BYPASS_INIT_CAL : string := "OFF"; + SIMULATION : string := "FALSE"; + USE_MIG_INTERFACE_MODEL : boolean := false + ); + port( + ddr3_dq : inout std_logic_vector(63 downto 0); + ddr3_dqs_p : inout std_logic_vector(7 downto 0); + ddr3_dqs_n : inout std_logic_vector(7 downto 0); + ddr3_addr : out std_logic_vector(13 downto 0); + ddr3_ba : out std_logic_vector(2 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_ck_p : out std_logic_vector(0 downto 0); + ddr3_ck_n : out std_logic_vector(0 downto 0); + ddr3_cke : out std_logic_vector(0 downto 0); + ddr3_cs_n : out std_logic_vector(0 downto 0); + ddr3_dm : out std_logic_vector(7 downto 0); + ddr3_odt : out std_logic_vector(0 downto 0); + ahbso : out ahb_slv_out_type; + ahbsi : in ahb_slv_in_type; + apbi : in apb_slv_in_type; + apbo : out apb_slv_out_type; + calib_done : out std_logic; + rst_n_syn : in std_logic; + rst_n_async : in std_logic; + clk_amba : in std_logic; + sys_clk_p : in std_logic; + sys_clk_n : in std_logic; + ui_clk : out std_logic; + ui_clk_sync_rst : out std_logic + ); +end ; + +architecture rtl of ahb2mig_series7 is + +type bstate_type is (idle, start, read_cmd, read_data, read_wait, read_output, write_cmd, write_burst); + +constant AHBDW : integer := CFG_AHBDW; +constant maxburst : integer := 8; +constant migcommands : integer := nbrmigcmds(AHBDW); +constant wrsteps : integer := log2(32); +constant wrmask : integer := log2(32/8); + +constant hconfig : ahb_config_type := ( + 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_MIG_SERIES7, 0, 0, 0), + 4 => ahb_membar(haddr, '1', '1', hmask), + others => zero32); + +constant pconfig : apb_config_type := ( + 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_MIG_SERIES7, 0, 0, 0), + 1 => apb_iobar(paddr, pmask)); + +type reg_type is record + bstate : bstate_type; + cmd : std_logic_vector(2 downto 0); + cmd_en : std_logic; + wr_en : std_logic; + wr_end : std_logic; + cmd_count : unsigned(31 downto 0); + wr_count : unsigned(31 downto 0); + rd_count : unsigned(31 downto 0); + hready : std_logic; + hwrite : std_logic; + --hwdata : std_logic_vector(AHBDW-1 downto 0); + hwdata_burst : std_logic_vector(1024*2-1 downto 0); + mask_burst : std_logic_vector(128*2-1 downto 0); + htrans : std_logic_vector(1 downto 0); + hburst : std_logic_vector(2 downto 0); + hsize : std_logic_vector(2 downto 0); + hrdata : std_logic_vector(AHBDW-1 downto 0); + haddr : std_logic_vector(31 downto 0); + haddr_start : std_logic_vector(31 downto 0); + haddr_offset : std_logic_vector(31 downto 0); + hmaster : std_logic_vector(3 downto 0); + int_buffer : unsigned(1024*2-1 downto 0); + rd_buffer : unsigned(1024*2-1 downto 0); + wdf_data_buffer : std_logic_vector(511 downto 0); + wdf_mask_buffer : std_logic_vector(63 downto 0); +end record; + +type mig_in_type is record + cmd_en : std_logic; + app_addr : std_logic_vector(27 downto 0); + app_cmd : std_logic_vector(2 downto 0); + app_en : std_logic; + app_wdf_data : std_logic_vector(511 downto 0); + app_wdf_end : std_logic; + app_wdf_mask : std_logic_vector(63 downto 0); + app_wdf_wren : std_logic; +end record; + +type mig_out_type is record + app_rd_data : std_logic_vector(511 downto 0); + app_rd_data_end : std_logic; + app_rd_data_valid : std_logic; + app_rdy : std_logic; + app_wdf_rdy : std_logic; +end record; + +signal r, rin : reg_type; +signal migin : mig_in_type; +signal migout,migoutraw : mig_out_type; + +signal debug : std_logic := '0'; +signal size_to_watch : std_logic_vector(2 downto 0) := HSIZE_4WORD; + + component mig is + generic( + SIM_BYPASS_INIT_CAL : string := "OFF"; + SIMULATION : string := "FALSE" + ); + port ( + ddr3_dq : inout std_logic_vector(63 downto 0); + ddr3_addr : out std_logic_vector(13 downto 0); + ddr3_ba : out std_logic_vector(2 downto 0); + ddr3_ras_n : out std_logic; + ddr3_cas_n : out std_logic; + ddr3_we_n : out std_logic; + ddr3_reset_n : out std_logic; + ddr3_dqs_n : inout std_logic_vector(7 downto 0); + ddr3_dqs_p : inout std_logic_vector(7 downto 0); + ddr3_ck_p : out std_logic_vector(0 downto 0); + ddr3_ck_n : out std_logic_vector(0 downto 0); + ddr3_cke : out std_logic_vector(0 downto 0); + ddr3_cs_n : out std_logic_vector(0 downto 0); + ddr3_dm : out std_logic_vector(7 downto 0); + ddr3_odt : out std_logic_vector(0 downto 0); + sys_clk_p : in std_logic; + sys_clk_n : in std_logic; + app_addr : in std_logic_vector(27 downto 0); + app_cmd : in std_logic_vector(2 downto 0); + app_en : in std_logic; + app_wdf_data : in std_logic_vector(511 downto 0); + app_wdf_end : in std_logic; + app_wdf_mask : in std_logic_vector(63 downto 0); + app_wdf_wren : in std_logic; + app_rd_data : out std_logic_vector(511 downto 0); + app_rd_data_end : out std_logic; + app_rd_data_valid : out std_logic; + app_rdy : out std_logic; + app_wdf_rdy : out std_logic; + app_sr_req : in std_logic; + app_sr_active : out std_logic; + app_ref_req : in std_logic; + app_ref_ack : out std_logic; + app_zq_req : in std_logic; + app_zq_ack : out std_logic; + ui_clk : out std_logic; + ui_clk_sync_rst : out std_logic; + init_calib_complete : out std_logic; + sys_rst : in std_logic + ); + end component mig; + + component mig_interface_model is + port ( + app_addr : in std_logic_vector(27 downto 0); + app_cmd : in std_logic_vector(2 downto 0); + app_en : in std_logic; + app_wdf_data : in std_logic_vector(511 downto 0); + app_wdf_end : in std_logic; + app_wdf_mask : in std_logic_vector(63 downto 0); + app_wdf_wren : in std_logic; + app_rd_data : out std_logic_vector(511 downto 0); + app_rd_data_end : out std_logic; + app_rd_data_valid : out std_logic; + app_rdy : out std_logic; + app_wdf_rdy : out std_logic; + ui_clk : out std_logic; + ui_clk_sync_rst : out std_logic; + init_calib_complete : out std_logic; + sys_rst : in std_logic + ); + end component mig_interface_model; + +begin + + comb: process( rst_n_syn, r, ahbsi, migout ) + + -- Design temp variables + variable v : reg_type; + variable writedata : std_logic_vector(255 downto 0); + variable wmask : std_logic_vector(AHBDW/4-1 downto 0); + variable shift_steps : natural; + variable hrdata_temp : unsigned(v.rd_buffer'length-1 downto 0); + variable hrdata_shift_steps : natural; + variable steps_write : unsigned(31 downto 0); + variable shift_steps_write : natural; + variable shift_steps_write_mask : natural; + variable startaddress : unsigned(v.haddr'length-1 downto 0); + variable start_address : std_logic_vector(v.haddr'length-1 downto 0); + variable step_offset : unsigned(steps_write'length-1 downto 0); + variable haddr_offset : unsigned(steps_write'length-1 downto 0); + + begin + + -- Make all register visible for the statemachine + v := r; + + -- workout the start address in AHB2MIG buffer based upon + startaddress := resize(unsigned(unsigned(ahbsi.haddr(27 downto 8)) & "00000"),startaddress'length); + + -- Adust offset in memory buffer + startaddress := resize(startaddress + unsigned(unsigned(ahbsi.haddr(7 downto 6))&"000"),startaddress'length); + start_address := std_logic_vector(startaddress); + + -- Workout local offset to be able to adust for warp-around + haddr_offset := unsigned(r.haddr_start) - unsigned(unsigned(r.haddr_offset(r.haddr_offset'length-1 downto 6))&"000000"); + step_offset := resize(unsigned(haddr_offset(7 downto 6)&"0000"),step_offset'length); + + case r.bstate is + when idle => + + -- Clear Read data response +-- v.hrdata := (others => '0'); + + -- Clear old pointers and MIG command signals + v.cmd := (others => '0'); + v.cmd_en := '0'; + v.wr_en := '0'; + v.wr_end := '0'; + v.hready := '1'; + v.hwrite := '0'; + v.hwdata_burst := (others => '0'); + v.mask_burst := (others => '0'); + v.rd_count := (others => '0'); + + -- Check if this is a single or burst transfer (and not a BUSY transfer) + if (( ahbsi.hsel(hindex) and ahbsi.htrans(1)) = '1' + and (ahbsi.hwrite = '0' or ahbsi.hwrite = '1' )) then + + -- Hold info regarding transaction and execute + v.hburst := ahbsi.hburst; + v.hwrite := ahbsi.hwrite; + v.hsize := ahbsi.hsize; + v.hmaster := ahbsi.hmaster; + v.hready := '0'; + v.htrans := ahbsi.htrans; + v.bstate := start; + v.haddr := start_address; + v.haddr_start := ahbsi.haddr; + v.haddr_offset := ahbsi.haddr; + v.cmd := (others => '0'); + v.cmd(0) := not ahbsi.hwrite; + end if; + + when start => + -- Check if a write command shall be issued to the DDR3 memory + if r.hwrite = '1' then + + wmask := (others => '0'); + writedata := (others => '0'); + + if ((ahbsi.htrans /= HTRANS_SEQ) or ((ahbsi.htrans = HTRANS_SEQ) and (r.rd_count > 0) and (r.rd_count <= maxburst))) then + -- work out how many steps we need to shift the input + steps_write := ahbselectdatanoreplicastep(r.haddr_start(7 downto 2),r.hsize(2 downto 0)) + step_offset; + shift_steps_write := to_integer(shift_left(steps_write,wrsteps)); + shift_steps_write_mask := to_integer(shift_left(steps_write,wrmask)); + + -- generate mask for complete burst (only need to use addr[3:0]) + wmask := ahbselectdatanoreplicamask(r.haddr_start(6 downto 0),r.hsize(2 downto 0)); + v.mask_burst := r.mask_burst or std_logic_vector(shift_left(resize(unsigned(wmask), r.mask_burst'length),shift_steps_write_mask)); + + -- fetch all wdata before write to memory can begin (only supports upto 128bits i.e. addr[4:0] + writedata(AHBDW-1 downto 0) := ahbselectdatanoreplica(ahbsi.hwdata(AHBDW-1 downto 0),r.haddr_start(4 downto 0),r.hsize(2 downto 0)); + v.hwdata_burst := r.hwdata_burst or std_logic_vector(shift_left(resize(unsigned(writedata),v.hwdata_burst'length),shift_steps_write)); + + v.haddr_start := ahbsi.haddr; + end if; + + -- Check if this is a cont burst longer than internal buffer + if (ahbsi.htrans = HTRANS_SEQ) then + if (r.rd_count < maxburst-1) then + v.hready := '1'; + else + v.hready := '0'; + end if; + if (r.rd_count >= maxburst) then + if (r.htrans = HTRANS_SEQ) then + v.bstate := write_cmd; + end if; + v.htrans := ahbsi.htrans; + end if; + else + v.bstate := write_cmd; + v.htrans := ahbsi.htrans; + end if; + + -- Else issue a read command when ready + else + if migout.app_rdy = '1' and migout.app_wdf_rdy = '1' then + v.cmd := "001"; + v.bstate := read_cmd; + v.htrans := ahbsi.htrans; + v.cmd_count := to_unsigned(0,v.cmd_count'length); + end if; + end if; + + when write_cmd => + -- Check if burst has ended due to max size burst + if (ahbsi.hsel(hindex) = '0') then + v.htrans := (others => '0'); + end if; + + -- Stop when addr and write command is accepted by mig + if (r.wr_count >= migcommands) and (r.cmd_count >= migcommands) then + if (r.htrans /= HTRANS_SEQ) then + v.bstate := idle; + if ((ahbsi.hsel(hindex) and ahbsi.htrans(1)) = '1') then + v.hready := '1'; + end if; + else -- Cont burst and work out new offset for next write command + v.bstate := write_burst; + v.hready := '1'; + end if; + end if; + + when write_burst => + v.bstate := start; + v.hready := '0'; + v.hwdata_burst := (others => '0'); + v.mask_burst := (others => '0'); + v.haddr := start_address; + v.haddr_offset := ahbsi.haddr; + + when read_cmd => + v.hready := '0'; + v.rd_count := (others => '0'); + -- stop when read command is accepted ny mig. + if (r.cmd_count >= migcommands) then + v.bstate := read_data; + v.int_buffer := (others => '0'); + end if; + + when read_data => + + -- We are not ready yet so issue a read command to the memory controller + v.hready := '0'; + + -- If read data is valid store data in buffers + if (migout.app_rd_data_valid = '1') then + v.rd_count := r.rd_count + 1; + v.int_buffer := r.int_buffer or shift_left( resize(unsigned(migout.app_rd_data),r.int_buffer'length), + to_integer(shift_left(r.rd_count,9))); + end if; + + if (r.rd_count >= migcommands) then + v.rd_buffer := r.int_buffer; + v.bstate := read_output; + v.rd_count := to_unsigned(0,v.rd_count'length); + end if; + + when read_output => + -- Data is fetched from memory and ready to be transfered + v.hready := '1'; + + -- uses the "wr_count" signal to keep track of number of bytes output'd to AHB + -- Select correct 32bit/64bit/128bit to output + v.hrdata := ahbselectdatanoreplicaoutput(r.haddr_start(7 downto 0),r.wr_count,r.hsize,r.rd_buffer,r.wr_count,true); + + -- Count number of bytes send + v.wr_count := r.wr_count + 1; + + -- Check if this was the last transaction + if (r.wr_count >= maxburst-1) then + v.bstate := read_wait; + end if; + + -- Check if transfer was interrupted or no burst + if (ahbsi.htrans = "00") or ((ahbsi.htrans = "10") and (r.wr_count < maxburst)) then + v.bstate := read_wait; + v.wr_count := (others => '0'); + v.rd_count := (others => '0'); + v.cmd_count := (others => '0'); + + -- Check if a new transaction is waiting + if ((ahbsi.hsel(hindex) = '1') and (ahbsi.htrans /= r.htrans)) then + + v.cmd_count:= (others => '0'); + v.wr_count := (others => '0'); + v.rd_count := (others => '0'); + v.hrdata := (others => '0'); + + -- Clear old pointers and MIG command signals + v.cmd := (others => '0'); + v.cmd_en := '0'; + v.wr_en := '0'; + v.wr_end := '0'; + v.hwrite := '0'; + v.hwdata_burst := (others => '0'); + v.mask_burst := (others => '0'); + v.rd_count := (others => '0'); + + -- Hold info regarding transaction and execute + v.hburst := ahbsi.hburst; + v.hwrite := ahbsi.hwrite; + v.hsize := ahbsi.hsize; + v.hmaster := ahbsi.hmaster; + v.hready := '0'; + v.htrans := ahbsi.htrans; + v.bstate := start; + v.haddr := start_address; + v.haddr_start := ahbsi.haddr; + v.haddr_offset := ahbsi.haddr; + v.cmd := (others => '0'); + v.cmd(0) := not ahbsi.hwrite; + end if; + end if; + + when read_wait => + + if ((r.wr_count >= maxburst) and (ahbsi.htrans = "11")) then + v.hready := '0'; + v.bstate := start; + v.haddr_start := ahbsi.haddr; + v.haddr := start_address; + v.haddr_offset := ahbsi.haddr; + else + -- Check for back-2-back access + if ((ahbsi.hsel(hindex) and ahbsi.htrans(1)) = '1') then + -- Clear Read data response + v.hrdata := (others => '0'); + + -- Clear old pointers and MIG command signals + v.cmd := (others => '0'); + v.cmd_en := '0'; + v.wr_en := '0'; + v.wr_end := '0'; + v.hwrite := '0'; + v.hwdata_burst := (others => '0'); + v.mask_burst := (others => '0'); + v.rd_count := (others => '0'); + + -- Hold info regarding transaction and execute + v.hburst := ahbsi.hburst; + v.hwrite := ahbsi.hwrite; + v.hsize := ahbsi.hsize; + v.hmaster := ahbsi.hmaster; + v.hready := '0'; + v.htrans := ahbsi.htrans; + v.bstate := start; + v.haddr := start_address; + v.haddr_start := ahbsi.haddr; + v.haddr_offset := ahbsi.haddr; + v.cmd := (others => '0'); + v.cmd(0) := not ahbsi.hwrite; + else + v.bstate := idle; + v.hready := '1'; + end if; + end if; + + when others => + v.bstate := idle; + end case; + + if (ahbsi.hsel(hindex) = '0') then + v.htrans := HTRANS_IDLE; + end if; + + if ((ahbsi.hsel(hindex) = '0') and ((r.bstate = write_cmd) or + (r.bstate = write_burst) or (r.bstate = start))) then + v.hready := '0'; + elsif ((ahbsi.htrans /= "11") and (r.bstate = start)) then + v.hready := '0'; + end if; + + if rst_n_syn = '0' then + v.bstate := idle; v.hready := '1'; v.cmd_en := '0'; v.wr_en := '0'; v.wr_end := '0'; + end if; + + rin <= v; + + end process; + + comb_hready: process(r, ahbsi) + begin + if ((ahbsi.hsel(hindex) = '0') and ((r.bstate = write_cmd) or + (r.bstate = write_burst) or (r.bstate = start))) then + ahbso.hready <= '0'; + elsif ((ahbsi.htrans /= "11") and (r.bstate = start)) then + ahbso.hready <= '0'; + else + ahbso.hready <= r.hready; + end if; + end process; + + ahbso.hresp <= "00"; --r.hresp; + ahbso.hrdata <= ahbdrivedata(r.hrdata); + + migin.app_addr <= r.haddr(27 downto 2) & "00"; + migin.app_cmd <= r.cmd; + migin.app_en <= r.cmd_en; + + migin.app_wdf_data <= r.wdf_data_buffer; + migin.app_wdf_end <= r.wr_end; + migin.app_wdf_mask <= r.wdf_mask_buffer; + migin.app_wdf_wren <= r.wr_en; + + ahbso.hconfig <= hconfig; + ahbso.hirq <= (others => '0'); + ahbso.hindex <= hindex; + ahbso.hsplit <= (others => '0'); + + apbo.pindex <= pindex; + apbo.pconfig <= pconfig; + apbo.pirq <= (others => '0'); + apbo.prdata <= (others => '0'); + + regs : process(clk_amba) + begin + if rising_edge(clk_amba) then + + -- Copy variables into registers (Default values) + r <= rin; + + -- add extra pipe-stage for read data + migout <= migoutraw; + + -- IDLE Clear + if ((r.bstate = idle) or (r.bstate = read_wait)) then + r.cmd_count <= (others => '0'); + r.wr_count <= (others => '0'); + r.rd_count <= (others => '0'); + end if; + + if (r.bstate = write_burst) then + r.cmd_count <= (others => '0'); + r.wr_count <= (others => '0'); + r.rd_count <= to_unsigned(1,r.rd_count'length); + end if; + + -- Read AHB write data + if (r.bstate = start) and (r.hwrite = '1') then + r.rd_count <= r.rd_count + 1; + end if; + + -- Write command repsonse + if r.bstate = write_cmd then + + if (r.cmd_count < 1) then + r.cmd_en <= '1'; + end if; + if (migoutraw.app_rdy = '1') and (r.cmd_en = '1' ) then + r.cmd_count <= r.cmd_count + 1; + if (r.cmd_count < migcommands-1 ) then + r.haddr <= r.haddr + 8; + end if; + if (r.cmd_count >= migcommands-1) then + r.cmd_en <= '0'; + end if; + end if; + + if (r.wr_count < 1 ) then + r.wr_en <= '1'; + r.wr_end <= '1'; + r.wdf_mask_buffer <= not r.mask_burst(63 downto 0); + r.wdf_data_buffer <= r.hwdata_burst(511 downto 0); + end if; + if (migoutraw.app_wdf_rdy = '1') and (r.wr_en = '1' ) then + if (r.wr_count = 0) then + r.wdf_mask_buffer <= not r.mask_burst(127 downto 64); + r.wdf_data_buffer <= r.hwdata_burst(1023 downto 512); + elsif (r.wr_count = 1) then + r.wdf_mask_buffer <= not r.mask_burst(191 downto 128); + r.wdf_data_buffer <= r.hwdata_burst(1535 downto 1024); + else + r.wdf_mask_buffer <= not r.mask_burst(255 downto 192); + r.wdf_data_buffer <= r.hwdata_burst(2047 downto 1536); + end if; + + r.wr_count <= r.wr_count + 1; + if (r.wr_count >= migcommands - 1) then + r.wr_en <= '0'; + r.wr_end <= '0'; + end if; + end if; + end if; + + -- Burst Write Wait + if r.bstate = write_burst then + r.cmd_count <= (others => '0'); + r.wr_count <= (others => '0'); + r.rd_count <= (others => '0'); + end if; + + -- Read command repsonse + if r.bstate = read_cmd then + if (r.cmd_count < 1) then + r.cmd_en <= '1'; + end if; + if (migoutraw.app_rdy = '1') and (r.cmd_en = '1' ) then + r.cmd_count <= r.cmd_count + 1; + if (r.cmd_count < migcommands-1 ) then + r.haddr <= r.haddr + 8; + end if; + if (r.cmd_count >= migcommands-1) then + r.cmd_en <= '0'; + end if; + end if; + + end if; + end if; + end process; + + gen_mig : if (USE_MIG_INTERFACE_MODEL /= true) generate + MCB_inst : mig + generic map( + SIM_BYPASS_INIT_CAL => SIM_BYPASS_INIT_CAL, + SIMULATION => SIMULATION) + port map ( + ddr3_dq => ddr3_dq, + ddr3_dqs_p => ddr3_dqs_p, + ddr3_dqs_n => ddr3_dqs_n, + ddr3_addr => ddr3_addr, + ddr3_ba => ddr3_ba, + ddr3_ras_n => ddr3_ras_n, + ddr3_cas_n => ddr3_cas_n, + ddr3_we_n => ddr3_we_n, + ddr3_reset_n => ddr3_reset_n, + ddr3_ck_p => ddr3_ck_p, + ddr3_ck_n => ddr3_ck_n, + ddr3_cke => ddr3_cke, + ddr3_cs_n => ddr3_cs_n, + ddr3_dm => ddr3_dm, + ddr3_odt => ddr3_odt, + sys_clk_p => sys_clk_p, + sys_clk_n => sys_clk_n, + app_addr => migin.app_addr, + app_cmd => migin.app_cmd, + app_en => migin.app_en, + app_rdy => migoutraw.app_rdy, + app_wdf_data => migin.app_wdf_data, + app_wdf_end => migin.app_wdf_end, + app_wdf_mask => migin.app_wdf_mask, + app_wdf_wren => migin.app_wdf_wren, + app_wdf_rdy => migoutraw.app_wdf_rdy, + app_rd_data => migoutraw.app_rd_data, + app_rd_data_end => migoutraw.app_rd_data_end, + app_rd_data_valid => migoutraw.app_rd_data_valid, + app_sr_req => '0', + app_sr_active => open, + app_ref_req => '0', + app_ref_ack => open, + app_zq_req => '0', + app_zq_ack => open, + ui_clk => ui_clk, + ui_clk_sync_rst => ui_clk_sync_rst, + init_calib_complete => calib_done, + sys_rst => rst_n_async + ); + end generate gen_mig; + + gen_mig_model : if (USE_MIG_INTERFACE_MODEL = true) generate + MCB_model_inst : mig_interface_model + port map ( + -- user interface signals + app_addr => migin.app_addr, + app_cmd => migin.app_cmd, + app_en => migin.app_en, + app_rdy => migoutraw.app_rdy, + app_wdf_data => migin.app_wdf_data, + app_wdf_end => migin.app_wdf_end, + app_wdf_mask => migin.app_wdf_mask, + app_wdf_wren => migin.app_wdf_wren, + app_wdf_rdy => migoutraw.app_wdf_rdy, + app_rd_data => migoutraw.app_rd_data, + app_rd_data_end => migoutraw.app_rd_data_end, + app_rd_data_valid => migoutraw.app_rd_data_valid, + ui_clk => ui_clk, + ui_clk_sync_rst => ui_clk_sync_rst, + init_calib_complete => calib_done, + sys_rst => rst_n_async + ); + + ddr3_dq <= (others => 'Z'); + ddr3_dqs_p <= (others => 'Z'); + ddr3_dqs_n <= (others => 'Z'); + ddr3_addr <= (others => '0'); + ddr3_ba <= (others => '0'); + ddr3_ras_n <= '0'; + ddr3_cas_n <= '0'; + ddr3_we_n <= '0'; + ddr3_reset_n <= '1'; + ddr3_ck_p <= (others => '0'); + ddr3_ck_n <= (others => '0'); + ddr3_cke <= (others => '0'); + ddr3_cs_n <= (others => '0'); + ddr3_dm <= (others => '0'); + ddr3_odt <= (others => '0'); + + end generate gen_mig_model; + +end; diff --git a/lib/gaisler/ddr/ahb2mig_series7_pkg.vhd b/lib/gaisler/ddr/ahb2mig_series7_pkg.vhd new file mode 100644 index 00000000..a01331f7 --- /dev/null +++ b/lib/gaisler/ddr/ahb2mig_series7_pkg.vhd @@ -0,0 +1,581 @@ +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +----------------------------------------------------------------------------- +-- Package: ah2mig_series7_pkg +-- File: ah2mig_series7_pkg.vhd +-- Author: Fredrik Ringhage - Aeroflex Gaisler +-- Description: Components, types and functions for AHB2MIG Series 7 controller +------------------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +library techmap; +use techmap.gencomp.all; +library grlib; +use grlib.amba.all; +use grlib.stdlib.all; +use grlib.devices.all; +use grlib.config_types.all; +use grlib.config.all; +library gaisler; +use gaisler.all; + +package ahb2mig_series7_pkg is + +------------------------------------------------------------------------------- +-- AHB2MIG configuration +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +-- AHB2MIG interface type declarations and constant +------------------------------------------------------------------------------- + +------------------------------------------------------------------------------- +-- AHB2MIG Subprograms +------------------------------------------------------------------------------- + + function nbrmigcmds ( + datawidth : integer) + return integer; + + function reversebyte ( + data : std_logic_vector) + return std_logic_vector; + + function reversebytemig ( + data : std_logic_vector) + return std_logic_vector; + + function ahbselectdatanoreplicastep ( + haddr : std_logic_vector(7 downto 2); + hsize : std_logic_vector(2 downto 0) + ) + return unsigned; + + function ahbselectdatanoreplicaoutput ( + haddr : std_logic_vector(7 downto 0); + counter : unsigned(31 downto 0); + hsize : std_logic_vector(2 downto 0); + rdbuffer : unsigned; + wr_count : unsigned; + replica : boolean) + return std_logic_vector; + + function ahbselectdatanoreplicamask ( + haddr : std_logic_vector(6 downto 0); + hsize : std_logic_vector(2 downto 0)) + return std_logic_vector; + + function ahbselectdatanoreplica (hdata : std_logic_vector(AHBDW-1 downto 0); + haddr : std_logic_vector(4 downto 0); hsize : std_logic_vector(2 downto 0)) + return std_logic_vector; + + function ahbdrivedatanoreplica (hdata : std_logic_vector) return std_logic_vector; + +------------------------------------------------------------------------------- +-- AHB2MIG Components +------------------------------------------------------------------------------- + +end; + +package body ahb2mig_series7_pkg is + + -- Number of MIG commands + function nbrmigcmds( + datawidth : integer) + return integer is + variable ret : integer; + begin + case datawidth is + when 128 => + ret:= 4; + when 64 => + ret:= 4; + -- 32 + when others => + ret:= 4; + end case; + + return ret; + end function nbrmigcmds; + + -- Reverses byte order. + function reversebyte( + data : std_logic_vector) + return std_logic_vector is + variable rdata: std_logic_vector(data'length-1 downto 0); + begin + for i in 0 to (data'length/8-1) loop + rdata(i*8+8-1 downto i*8) := data(data'length-i*8-1 downto data'length-i*8-8); + end loop; + return rdata; + end function reversebyte; + + -- Reverses byte order. + function reversebytemig( + data : std_logic_vector) + return std_logic_vector is + variable rdata: std_logic_vector(data'length-1 downto 0); + begin + for i in 0 to (data'length/8-1) loop + rdata(i*8+8-1 downto i*8) := data(data'left-i*8 downto data'left-i*8-7); + end loop; + return rdata; + end function reversebytemig; + + + -- Takes in AHB data vector 'hdata' and returns valid data on the full + -- data vector output based on 'haddr' and 'hsize' inputs together with + -- GRLIB AHB bus width. The function works down to word granularity. + function ahbselectdatanoreplica ( + hdata : std_logic_vector(AHBDW-1 downto 0); + haddr : std_logic_vector(4 downto 0); + hsize : std_logic_vector(2 downto 0)) + return std_logic_vector is + variable ret : std_logic_vector(AHBDW-1 downto 0); + begin -- ahbselectdatanoreplica + + ret := (others => '0'); + + case hsize is + + when HSIZE_4WORD => + ret(AHBDW-1 downto 0) := reversebytemig(hdata(AHBDW-1 downto 0)); + + when HSIZE_DWORD => + if AHBDW = 128 then + case haddr(3) is + when '0' => ret(AHBDW/2-1 downto 0) := reversebytemig(hdata(AHBDW-1 downto AHBDW/2)); + when others => ret(AHBDW/2-1 downto 0) := reversebytemig(hdata(AHBDW/2-1 downto 0)); + end case; + elsif AHBDW = 64 then + ret(AHBDW-1 downto 0) := reversebytemig(hdata(AHBDW-1 downto 0)); + end if; + + when HSIZE_WORD => + if AHBDW = 128 then + case haddr(3 downto 2) is + when "00" => ret(1*(AHBDW/4)-1 downto 0*(AHBDW/4)) := reversebytemig(hdata(4*(AHBDW/4)-1 downto 3*(AHBDW/4))); + when "01" => ret(1*(AHBDW/4)-1 downto 0*(AHBDW/4)) := reversebytemig(hdata(3*(AHBDW/4)-1 downto 2*(AHBDW/4))); + when "10" => ret(1*(AHBDW/4)-1 downto 0*(AHBDW/4)) := reversebytemig(hdata(2*(AHBDW/4)-1 downto 1*(AHBDW/4))); + when others => ret(1*(AHBDW/4)-1 downto 0*(AHBDW/4)) := reversebytemig(hdata(1*(AHBDW/4)-1 downto 0*(AHBDW/4))); + end case; + elsif AHBDW = 64 then + case haddr(2) is + when '0' => ret(AHBDW/2-1 downto 0) := reversebytemig(hdata(AHBDW-1 downto AHBDW/2)); + when others => ret(AHBDW/2-1 downto 0) := reversebytemig(hdata(AHBDW/2-1 downto 0)); + end case; + elsif AHBDW = 32 then + ret(AHBDW-1 downto 0) := reversebytemig(hdata(AHBDW-1 downto 0)); + end if; + + when HSIZE_HWORD => + if AHBDW = 128 then + case haddr(3 downto 1) is + when "000" => ret(1*(AHBDW/8)-1 downto 0*(AHBDW/8)) := reversebytemig(hdata(8*(AHBDW/8)-1 downto 7*(AHBDW/8))); + when "001" => ret(2*(AHBDW/8)-1 downto 1*(AHBDW/8)) := reversebytemig(hdata(7*(AHBDW/8)-1 downto 6*(AHBDW/8))); + when "010" => ret(1*(AHBDW/8)-1 downto 0*(AHBDW/8)) := reversebytemig(hdata(6*(AHBDW/8)-1 downto 5*(AHBDW/8))); + when "011" => ret(2*(AHBDW/8)-1 downto 1*(AHBDW/8)) := reversebytemig(hdata(5*(AHBDW/8)-1 downto 4*(AHBDW/8))); + when "100" => ret(1*(AHBDW/8)-1 downto 0*(AHBDW/8)) := reversebytemig(hdata(4*(AHBDW/8)-1 downto 3*(AHBDW/8))); + when "101" => ret(2*(AHBDW/8)-1 downto 1*(AHBDW/8)) := reversebytemig(hdata(3*(AHBDW/8)-1 downto 2*(AHBDW/8))); + when "110" => ret(1*(AHBDW/8)-1 downto 0*(AHBDW/8)) := reversebytemig(hdata(2*(AHBDW/8)-1 downto 1*(AHBDW/8))); + when others => ret(2*(AHBDW/8)-1 downto 1*(AHBDW/8)) := reversebytemig(hdata(1*(AHBDW/8)-1 downto 0*(AHBDW/8))); + end case; + elsif AHBDW = 64 then + case haddr(2 downto 1) is + when "00" => ret(1*(AHBDW/4)-1 downto 0*(AHBDW/4)) := reversebytemig(hdata(4*(AHBDW/4)-1 downto 3*(AHBDW/4))); + when "01" => ret(2*(AHBDW/4)-1 downto 1*(AHBDW/4)) := reversebytemig(hdata(3*(AHBDW/4)-1 downto 2*(AHBDW/4))); + when "10" => ret(1*(AHBDW/4)-1 downto 0*(AHBDW/4)) := reversebytemig(hdata(2*(AHBDW/4)-1 downto 1*(AHBDW/4))); + when others => ret(2*(AHBDW/4)-1 downto 1*(AHBDW/4)) := reversebytemig(hdata(1*(AHBDW/4)-1 downto 0*(AHBDW/4))); + end case; + elsif AHBDW = 32 then + case haddr(1) is + when '0' => ret(AHBDW/2-1 downto 0) := reversebytemig(hdata(AHBDW-1 downto AHBDW/2)); + when others => ret(AHBDW-1 downto AHBDW/2) := reversebytemig(hdata(AHBDW/2-1 downto 0)); + end case; + end if; + -- HSIZE_BYTE + when others => + if AHBDW = 128 then + case haddr(3 downto 0) is + when "0000" => ret( 1*(AHBDW/16)-1 downto 0*(AHBDW/16)) := hdata(16*(AHBDW/16)-1 downto 15*(AHBDW/16)); + when "0001" => ret( 2*(AHBDW/16)-1 downto 1*(AHBDW/16)) := hdata(15*(AHBDW/16)-1 downto 14*(AHBDW/16)); + when "0010" => ret( 3*(AHBDW/16)-1 downto 2*(AHBDW/16)) := hdata(14*(AHBDW/16)-1 downto 13*(AHBDW/16)); + when "0011" => ret( 4*(AHBDW/16)-1 downto 3*(AHBDW/16)) := hdata(13*(AHBDW/16)-1 downto 12*(AHBDW/16)); + when "0100" => ret( 1*(AHBDW/16)-1 downto 0*(AHBDW/16)) := hdata(12*(AHBDW/16)-1 downto 11*(AHBDW/16)); + when "0101" => ret( 2*(AHBDW/16)-1 downto 1*(AHBDW/16)) := hdata(11*(AHBDW/16)-1 downto 10*(AHBDW/16)); + when "0110" => ret( 3*(AHBDW/16)-1 downto 2*(AHBDW/16)) := hdata(10*(AHBDW/16)-1 downto 9*(AHBDW/16)); + when "0111" => ret( 4*(AHBDW/16)-1 downto 3*(AHBDW/16)) := hdata( 9*(AHBDW/16)-1 downto 8*(AHBDW/16)); + when "1000" => ret( 1*(AHBDW/16)-1 downto 0*(AHBDW/16)) := hdata( 8*(AHBDW/16)-1 downto 7*(AHBDW/16)); + when "1001" => ret( 2*(AHBDW/16)-1 downto 1*(AHBDW/16)) := hdata( 7*(AHBDW/16)-1 downto 6*(AHBDW/16)); + when "1010" => ret( 3*(AHBDW/16)-1 downto 2*(AHBDW/16)) := hdata( 6*(AHBDW/16)-1 downto 5*(AHBDW/16)); + when "1011" => ret( 4*(AHBDW/16)-1 downto 3*(AHBDW/16)) := hdata( 5*(AHBDW/16)-1 downto 4*(AHBDW/16)); + when "1100" => ret( 1*(AHBDW/16)-1 downto 0*(AHBDW/16)) := hdata( 4*(AHBDW/16)-1 downto 3*(AHBDW/16)); + when "1101" => ret( 2*(AHBDW/16)-1 downto 1*(AHBDW/16)) := hdata( 3*(AHBDW/16)-1 downto 2*(AHBDW/16)); + when "1110" => ret( 3*(AHBDW/16)-1 downto 2*(AHBDW/16)) := hdata( 2*(AHBDW/16)-1 downto 1*(AHBDW/16)); + when others => ret( 4*(AHBDW/16)-1 downto 3*(AHBDW/16)) := hdata( 1*(AHBDW/16)-1 downto 0*(AHBDW/16)); + end case; + elsif AHBDW = 64 then + case haddr(2 downto 0) is + when "000" => ret(1*(AHBDW/8)-1 downto 0*(AHBDW/8)) := hdata(8*(AHBDW/8)-1 downto 7*(AHBDW/8)); + when "001" => ret(2*(AHBDW/8)-1 downto 1*(AHBDW/8)) := hdata(7*(AHBDW/8)-1 downto 6*(AHBDW/8)); + when "010" => ret(3*(AHBDW/8)-1 downto 2*(AHBDW/8)) := hdata(6*(AHBDW/8)-1 downto 5*(AHBDW/8)); + when "011" => ret(4*(AHBDW/8)-1 downto 3*(AHBDW/8)) := hdata(5*(AHBDW/8)-1 downto 4*(AHBDW/8)); + when "100" => ret(1*(AHBDW/8)-1 downto 0*(AHBDW/8)) := hdata(4*(AHBDW/8)-1 downto 3*(AHBDW/8)); + when "101" => ret(2*(AHBDW/8)-1 downto 1*(AHBDW/8)) := hdata(3*(AHBDW/8)-1 downto 2*(AHBDW/8)); + when "110" => ret(3*(AHBDW/8)-1 downto 2*(AHBDW/8)) := hdata(2*(AHBDW/8)-1 downto 1*(AHBDW/8)); + when others => ret(4*(AHBDW/8)-1 downto 3*(AHBDW/8)) := hdata(1*(AHBDW/8)-1 downto 0*(AHBDW/8)); + end case; + elsif AHBDW = 32 then + case haddr(1 downto 0) is + when "00" => ret(1*(AHBDW/4)-1 downto 0*(AHBDW/4)) := hdata(4*(AHBDW/4)-1 downto 3*(AHBDW/4)); + when "01" => ret(2*(AHBDW/4)-1 downto 1*(AHBDW/4)) := hdata(3*(AHBDW/4)-1 downto 2*(AHBDW/4)); + when "10" => ret(3*(AHBDW/4)-1 downto 2*(AHBDW/4)) := hdata(2*(AHBDW/4)-1 downto 1*(AHBDW/4)); + when others => ret(4*(AHBDW/4)-1 downto 3*(AHBDW/4)) := hdata(1*(AHBDW/4)-1 downto 0*(AHBDW/4)); + end case; + end if; + end case; + + return ret; + end ahbselectdatanoreplica; + + function ahbselectdatanoreplicastep ( + haddr : std_logic_vector(7 downto 2); + hsize : std_logic_vector(2 downto 0)) + return unsigned is + variable ret : unsigned(31 downto 0); + begin -- ahbselectdatanoreplicastep + + ret := (others => '0'); + + case AHBDW is + + when 128 => + if (hsize = HSIZE_4WORD) then + ret := resize(unsigned(haddr(5 downto 2)),ret'length); + elsif (hsize = HSIZE_DWORD) then + ret := resize(unsigned(haddr(5 downto 2)),ret'length); + else + ret := resize(unsigned(haddr(5 downto 2)),ret'length); + end if; + when 64 => + if (hsize = HSIZE_DWORD) then + ret := resize(unsigned(haddr(5 downto 2)),ret'length); + else + ret := resize(unsigned(haddr(5 downto 2)),ret'length); + end if; + -- 32 + when others => + ret := resize(unsigned(haddr(5 downto 2)),ret'length); + + end case; + + return ret; + end ahbselectdatanoreplicastep; + + function ahbselectdatanoreplicamask ( + haddr : std_logic_vector(6 downto 0); + hsize : std_logic_vector(2 downto 0)) + return std_logic_vector is + variable ret : std_logic_vector(AHBDW/4-1 downto 0); + variable ret128 : std_logic_vector(128/4-1 downto 0); + begin -- ahbselectdatanoreplicamask + + ret := (others => '0'); + ret128 := (others => '0'); + + case hsize is + + when HSIZE_4WORD => + ret(AHBDW/8-1 downto 0) := (others => '1'); + + when HSIZE_DWORD => + if AHBDW = 128 then + case haddr(3) is + when '0' => ret(AHBDW/8/2-1 downto 0) := (others => '1'); + when others => ret(AHBDW/8/2-1 downto 0) := (others => '1'); + end case; + else + ret(AHBDW/8-1 downto 0) := (others => '1'); + end if; + + when HSIZE_WORD => + if AHBDW = 128 then + case haddr(3 downto 2) is + when "00" => ret(1*(AHBDW/8/4)-1 downto 0*(AHBDW/8/4)) := (others => '1'); + when "01" => ret(1*(AHBDW/8/4)-1 downto 0*(AHBDW/8/4)) := (others => '1'); + when "10" => ret(1*(AHBDW/8/4)-1 downto 0*(AHBDW/8/4)) := (others => '1'); + when others => ret(1*(AHBDW/8/4)-1 downto 0*(AHBDW/8/4)) := (others => '1'); + end case; + elsif AHBDW = 64 then + case haddr(2) is + when '0' => ret(AHBDW/8/2-1 downto 0) := (others => '1'); + when others => ret(AHBDW/8/2-1 downto 0) := (others => '1'); + end case; + elsif AHBDW = 32 then + ret(AHBDW/8-1 downto 0) := (others => '1'); + end if; + + when HSIZE_HWORD => + if AHBDW = 128 then + case haddr(3 downto 1) is + when "000" => ret128(1*(128/8/8)-1 downto 0*(128/8/8)) := (others => '1'); + when "001" => ret128(2*(128/8/8)-1 downto 1*(128/8/8)) := (others => '1'); + when "010" => ret128(1*(128/8/8)-1 downto 0*(128/8/8)) := (others => '1'); + when "011" => ret128(2*(128/8/8)-1 downto 1*(128/8/8)) := (others => '1'); + when "100" => ret128(1*(128/8/8)-1 downto 0*(128/8/8)) := (others => '1'); + when "101" => ret128(2*(128/8/8)-1 downto 1*(128/8/8)) := (others => '1'); + when "110" => ret128(1*(128/8/8)-1 downto 0*(128/8/8)) := (others => '1'); + when others => ret128(2*(128/8/8)-1 downto 1*(128/8/8)) := (others => '1'); + end case; + ret := std_logic_vector(resize(unsigned(ret128),ret'length)); + elsif AHBDW = 64 then + case haddr(2 downto 1) is + when "00" => ret(1*(AHBDW/8/4)-1 downto 0*(AHBDW/8/4)) := (others => '1'); + when "01" => ret(2*(AHBDW/8/4)-1 downto 1*(AHBDW/8/4)) := (others => '1'); + when "10" => ret(1*(AHBDW/8/4)-1 downto 0*(AHBDW/8/4)) := (others => '1'); + when others => ret(2*(AHBDW/8/4)-1 downto 1*(AHBDW/8/4)) := (others => '1'); + end case; + elsif AHBDW = 32 then + case haddr(1) is + when '0' => ret(AHBDW/8/2-1 downto 0) := (others => '1'); + when others => ret(AHBDW/8-1 downto AHBDW/8/2) := (others => '1'); + end case; + end if; + + -- HSIZE_BYTE + when others => + if AHBDW = 128 then + case haddr(3 downto 0) is + when "0000" => ret( 0) := '1'; + when "0001" => ret( 1) := '1'; + when "0010" => ret( 2) := '1'; + when "0011" => ret( 3) := '1'; + when "0100" => ret( 0) := '1'; + when "0101" => ret( 1) := '1'; + when "0110" => ret( 2) := '1'; + when "0111" => ret( 3) := '1'; + when "1000" => ret( 0) := '1'; + when "1001" => ret( 1) := '1'; + when "1010" => ret( 2) := '1'; + when "1011" => ret( 3) := '1'; + when "1100" => ret( 0) := '1'; + when "1101" => ret( 1) := '1'; + when "1110" => ret( 2) := '1'; + when others => ret( 3) := '1'; + end case; + elsif AHBDW = 64 then + case haddr(2 downto 0) is + when "000" => ret(0) := '1'; + when "001" => ret(1) := '1'; + when "010" => ret(2) := '1'; + when "011" => ret(3) := '1'; + when "100" => ret(0) := '1'; + when "101" => ret(1) := '1'; + when "110" => ret(2) := '1'; + when others => ret(3) := '1'; + end case; + elsif AHBDW = 32 then + case haddr(1 downto 0) is + when "00" => ret(0) := '1'; + when "01" => ret(1) := '1'; + when "10" => ret(2) := '1'; + when others => ret(3) := '1'; + end case; + end if; + end case; + return ret; + end ahbselectdatanoreplicamask; + + function ahbselectdatanoreplicaoutput ( + haddr : std_logic_vector(7 downto 0); + counter : unsigned(31 downto 0); + hsize : std_logic_vector(2 downto 0); + rdbuffer : unsigned; + wr_count : unsigned; + replica : boolean) + return std_logic_vector is + variable ret : std_logic_vector(AHBDW-1 downto 0); + variable retrep : std_logic_vector(AHBDW-1 downto 0); + variable rdbuffer_int : unsigned(AHBDW-1 downto 0); + variable hdata : std_logic_vector(AHBDW-1 downto 0); + variable offset : unsigned(31 downto 0); + variable steps : unsigned(31 downto 0); + variable stepsint : natural; + begin -- ahbselectdatanoreplicaoutput + + ret := (others => '0'); + + case hsize is + when HSIZE_4WORD => + offset := resize((unsigned(haddr(5 downto 4))&"0000000"),offset'length); + steps := resize(unsigned(wr_count(wr_count'length-1 downto 0)&"0000000"),steps'length) + offset; + when HSIZE_DWORD => + if AHBDW = 128 then + offset := resize((unsigned(haddr(5 downto 4))&"0000000"),offset'length); + steps := resize(unsigned(wr_count(wr_count'length-1 downto 1)&"0000000"),steps'length) + offset; + elsif AHBDW = 64 then + offset := resize((unsigned(haddr(5 downto 3))&"000000"),offset'length); + steps := resize(unsigned(wr_count(wr_count'length-1 downto 0)&"000000"),steps'length) + offset; + end if; + when others => + if AHBDW = 128 then + offset := resize((unsigned(haddr(5 downto 4))&"0000000"),offset'length); + steps := resize(unsigned(wr_count(wr_count'length-1 downto 2)&"0000000"),steps'length) + offset; + elsif AHBDW = 64 then + offset := resize((unsigned(haddr(5 downto 3))&"000000"),offset'length); + steps := resize(unsigned(wr_count(wr_count'length-1 downto 1)&"000000"),steps'length) + offset; + elsif AHBDW = 32 then + offset := resize((unsigned(haddr(5 downto 2))&"00000"),offset'length); + steps := resize(unsigned(wr_count(wr_count'length-1 downto 0)&"00000"),steps'length) + offset; + end if; + end case; + + stepsint := to_integer(steps); + + rdbuffer_int := resize(shift_right(rdbuffer,stepsint),rdbuffer_int'length); + hdata := std_logic_vector(rdbuffer_int(AHBDW-1 downto 0)); + + ret(AHBDW-1 downto 0) := reversebyte(hdata); + + case hsize is + when HSIZE_4WORD => + offset := resize(unsigned(haddr) + unsigned(counter&"0000"),offset'length); + when HSIZE_DWORD => + offset := resize(unsigned(haddr) + unsigned(counter&"000"),offset'length); + when others => + offset := resize(unsigned(haddr) + unsigned(counter&"00"),offset'length); + end case; + + if (replica = true) then + case hsize is + when HSIZE_4WORD => + retrep := ahbdrivedata(ret(AHBDW-1 downto 0)); + when HSIZE_DWORD => + if AHBDW = 128 then + if offset(3) = '0' then retrep := ahbdrivedata(ret(AHBDW-1 downto AHBDW/2)); + else retrep := ahbdrivedata(ret(AHBDW/2-1 downto 0)); end if; + else + retrep := ahbdrivedata(ret(AHBDW-1 downto 0)); + end if; + when HSIZE_WORD => + if AHBDW = 128 then + case offset(3 downto 2) is + when "00" => retrep := ahbdrivedata(ret(4*(AHBDW/4)-1 downto 3*(AHBDW/4))); + when "01" => retrep := ahbdrivedata(ret(3*(AHBDW/4)-1 downto 2*(AHBDW/4))); + when "10" => retrep := ahbdrivedata(ret(2*(AHBDW/4)-1 downto 1*(AHBDW/4))); + when others => retrep := ahbdrivedata(ret(1*(AHBDW/4)-1 downto 0*(AHBDW/4))); + end case; + elsif AHBDW = 64 then + if offset(2) = '0' then retrep := ahbdrivedata(ret(AHBDW-1 downto AHBDW/2)); + else retrep := ahbdrivedata(ret(AHBDW/2-1 downto 0)); end if; + else + retrep := ahbdrivedata(ret(AHBDW-1 downto 0)); + end if; + when HSIZE_HWORD => + if AHBDW = 128 then + case offset(3 downto 1) is + when "000" => retrep := ahbdrivedata(ret(8*(AHBDW/8)-1 downto 7*(AHBDW/8))); + when "001" => retrep := ahbdrivedata(ret(7*(AHBDW/8)-1 downto 6*(AHBDW/8))); + when "010" => retrep := ahbdrivedata(ret(6*(AHBDW/8)-1 downto 5*(AHBDW/8))); + when "011" => retrep := ahbdrivedata(ret(5*(AHBDW/8)-1 downto 4*(AHBDW/8))); + when "100" => retrep := ahbdrivedata(ret(4*(AHBDW/8)-1 downto 3*(AHBDW/8))); + when "101" => retrep := ahbdrivedata(ret(3*(AHBDW/8)-1 downto 2*(AHBDW/8))); + when "110" => retrep := ahbdrivedata(ret(2*(AHBDW/8)-1 downto 1*(AHBDW/8))); + when others => retrep := ahbdrivedata(ret(1*(AHBDW/8)-1 downto 0*(AHBDW/8))); + end case; + elsif AHBDW = 64 then + case offset(2 downto 1) is + when "00" => retrep := ahbdrivedata(ret(4*(AHBDW/4)-1 downto 3*(AHBDW/4))); + when "01" => retrep := ahbdrivedata(ret(3*(AHBDW/4)-1 downto 2*(AHBDW/4))); + when "10" => retrep := ahbdrivedata(ret(2*(AHBDW/4)-1 downto 1*(AHBDW/4))); + when others => retrep := ahbdrivedata(ret(1*(AHBDW/4)-1 downto 0*(AHBDW/4))); + end case; + else + if offset(1) = '0' then retrep := ahbdrivedata(ret(AHBDW-1 downto AHBDW/2)); + else retrep := ahbdrivedata(ret(AHBDW/2-1 downto 0)); end if; + end if; + -- HSIZE_BYTE + when others => + if AHBDW = 128 then + case offset(3 downto 0) is + when "0000" => retrep := ahbdrivedata(ret(16*(AHBDW/16)-1 downto 15*(AHBDW/16))); + when "0001" => retrep := ahbdrivedata(ret(15*(AHBDW/16)-1 downto 14*(AHBDW/16))); + when "0010" => retrep := ahbdrivedata(ret(14*(AHBDW/16)-1 downto 13*(AHBDW/16))); + when "0011" => retrep := ahbdrivedata(ret(13*(AHBDW/16)-1 downto 12*(AHBDW/16))); + when "0100" => retrep := ahbdrivedata(ret(12*(AHBDW/16)-1 downto 11*(AHBDW/16))); + when "0101" => retrep := ahbdrivedata(ret(11*(AHBDW/16)-1 downto 10*(AHBDW/16))); + when "0110" => retrep := ahbdrivedata(ret(10*(AHBDW/16)-1 downto 9*(AHBDW/16))); + when "0111" => retrep := ahbdrivedata(ret( 9*(AHBDW/16)-1 downto 8*(AHBDW/16))); + when "1000" => retrep := ahbdrivedata(ret( 8*(AHBDW/16)-1 downto 7*(AHBDW/16))); + when "1001" => retrep := ahbdrivedata(ret( 7*(AHBDW/16)-1 downto 6*(AHBDW/16))); + when "1010" => retrep := ahbdrivedata(ret( 6*(AHBDW/16)-1 downto 5*(AHBDW/16))); + when "1011" => retrep := ahbdrivedata(ret( 5*(AHBDW/16)-1 downto 4*(AHBDW/16))); + when "1100" => retrep := ahbdrivedata(ret( 4*(AHBDW/16)-1 downto 3*(AHBDW/16))); + when "1101" => retrep := ahbdrivedata(ret( 3*(AHBDW/16)-1 downto 2*(AHBDW/16))); + when "1110" => retrep := ahbdrivedata(ret( 2*(AHBDW/16)-1 downto 1*(AHBDW/16))); + when others => retrep := ahbdrivedata(ret( 1*(AHBDW/16)-1 downto 0*(AHBDW/16))); + end case; + elsif AHBDW = 64 then + case offset(2 downto 0) is + when "000" => retrep := ahbdrivedata(ret(8*(AHBDW/8)-1 downto 7*(AHBDW/8))); + when "001" => retrep := ahbdrivedata(ret(7*(AHBDW/8)-1 downto 6*(AHBDW/8))); + when "010" => retrep := ahbdrivedata(ret(6*(AHBDW/8)-1 downto 5*(AHBDW/8))); + when "011" => retrep := ahbdrivedata(ret(5*(AHBDW/8)-1 downto 4*(AHBDW/8))); + when "100" => retrep := ahbdrivedata(ret(4*(AHBDW/8)-1 downto 3*(AHBDW/8))); + when "101" => retrep := ahbdrivedata(ret(3*(AHBDW/8)-1 downto 2*(AHBDW/8))); + when "110" => retrep := ahbdrivedata(ret(2*(AHBDW/8)-1 downto 1*(AHBDW/8))); + when others => retrep := ahbdrivedata(ret(1*(AHBDW/8)-1 downto 0*(AHBDW/8))); + end case; + else + case offset(1 downto 0) is + when "00" => retrep := ahbdrivedata(ret(4*(AHBDW/4)-1 downto 3*(AHBDW/4))); + when "01" => retrep := ahbdrivedata(ret(3*(AHBDW/4)-1 downto 2*(AHBDW/4))); + when "10" => retrep := ahbdrivedata(ret(2*(AHBDW/4)-1 downto 1*(AHBDW/4))); + when others => retrep := ahbdrivedata(ret(1*(AHBDW/4)-1 downto 0*(AHBDW/4))); + end case; + end if; + end case; + + --ret := ahbdrivedatamig(retrep); + ret :=retrep; + end if; + + + return ret; + end ahbselectdatanoreplicaoutput; + + -- purpose: extends 'hdata' to suite AHB data width. If the input vector's + -- length exceeds AHBDW the low part is returned. + function ahbdrivedatanoreplica ( + hdata : std_logic_vector) + return std_logic_vector is + variable data : std_logic_vector(AHBDW-1 downto 0); + begin -- ahbdrivedatanoreplica + if AHBDW < hdata'length then + data := hdata(AHBDW+hdata'low-1 downto hdata'low); + else + data := (others => '0'); + data(hdata'length-1 downto 0) := hdata; + end if; + return data; + end ahbdrivedatanoreplica; + +end; \ No newline at end of file diff --git a/lib/gaisler/ddr/ddr1spax.vhd b/lib/gaisler/ddr/ddr1spax.vhd index 5bf2447b..e09557f6 100644 --- a/lib/gaisler/ddr/ddr1spax.vhd +++ b/lib/gaisler/ddr/ddr1spax.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -36,6 +36,7 @@ use gaisler.ddrpkg.all; library techmap; use techmap.gencomp.ddrphy_has_datavalid; use techmap.gencomp.ddrphy_latency; +use techmap.gencomp.ddrphy_ptctrl; entity ddr1spax is generic ( @@ -63,7 +64,8 @@ entity ddr1spax is regoutput : integer := 0; ft : integer := 0; ddr400 : integer := 1; - rstdel : integer := 200 + rstdel : integer := 200; + scantest : integer := 0 ); port ( ddr_rst : in std_ulogic; @@ -158,7 +160,7 @@ begin nosync => nosync, burstlen => burstlen, ahbbits => xahbw, bufbits => xahbw+xahbw/2, ddrbits => ddrbits, hwidthen => 0, revision => revision, devid => GAISLER_DDRSP) port map (ahb_rst, clk_ahb, ahbsi, ahbso, ce, request, start_tog, response, - wbwaddr, wbwdata, wbwrite, wbwritebig, rbraddr, rbrdata, '0', '0', open, open); + wbwaddr, wbwdata, wbwrite, wbwritebig, rbraddr, rbrdata, '0', '0', open, open, FTFE_BEID_DDR1); end generate; ddrc : ddr1spax_ddr @@ -170,10 +172,10 @@ begin hasdqvalid => ddrphy_has_datavalid(phytech), ddr_syncrst => ddr_syncrst, regoutput => regoutput, readdly => ddrphy_latency(phytech)+regoutput, ddr400 => ddr400, - rstdel => rstdel) + rstdel => rstdel, phyptctrl => ddrphy_ptctrl(phytech), scantest => scantest) port map (ddr_rst, clk_ddr, request, start_tog, response, sdi, sdox, wbraddr, wbrdata, rbwaddr, rbwdata, rbwrite, - '0', ddr_request_none, open); + '0', ddr_request_none, open, ahbsi.testen, ahbsi.testrst, ahbsi.testoen); sdoproc: process(sdox,ce) diff --git a/lib/gaisler/ddr/ddr1spax_ddr.vhd b/lib/gaisler/ddr/ddr1spax_ddr.vhd index cf4979f7..533f0eba 100644 --- a/lib/gaisler/ddr/ddr1spax_ddr.vhd +++ b/lib/gaisler/ddr/ddr1spax_ddr.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -69,7 +69,9 @@ entity ddr1spax_ddr is readdly : integer := 0; regoutput : integer := 1; ddr400 : integer := 1; - rstdel : integer := 200 + rstdel : integer := 200; + phyptctrl : integer := 0; + scantest : integer := 0 ); port ( ddr_rst : in std_ulogic; @@ -86,7 +88,10 @@ entity ddr1spax_ddr is rbwrite : out std_logic; reqsel : in std_ulogic; frequest : in ddr_request_type; - response2: out ddr_response_type + response2: out ddr_response_type; + testen : in std_ulogic; + testrst : in std_ulogic; + testoen : in std_ulogic ); end ddr1spax_ddr; @@ -172,10 +177,13 @@ architecture rtl of ddr1spax_ddr is constant onev: std_logic_vector(15 downto 0) := x"FFFF"; constant zerov: std_logic_vector(15 downto 0) := x"0000"; - -begin - ddrcomb: process(ddr_rst,sdi,request,frequest,start_tog,dr,wbrdata) + signal arst : std_ulogic; +begin + + arst <= testrst when (scantest/=0 and ddr_syncrst=0) and testen='1' else ddr_rst; + + ddrcomb: process(ddr_rst,sdi,request,frequest,start_tog,dr,wbrdata,testen,testoen) variable dv: ddr_reg_type; variable o: sdctrl_out_type; @@ -567,6 +575,7 @@ begin when dsact3 => dv.sdo_casn := '0'; dv.sdo_wen := not vreq.hwrite; + dv.sdo_qdrive := not vreq.hwrite; -- dv.sdo_address := vcol(12 downto 10) & '0' & vcol(9 downto 1) & '0'; -- Since part of column is stored in ramaddr in dsact1, use that to -- reduce fanout on vreq.startaddr @@ -902,10 +911,12 @@ begin when disrstdel => if dr.refctr=std_logic_vector(to_unsigned(MHz*rstdel,dr.refctr'length)) then dv.initstate := disidle; + if pwron=0 then dv.cfg.renable:='0'; end if; end if; -- Bypass reset delay by writing anything to regsd2 if vstartd='1' and (vreq.hio='1' and vreq.hwrite='1' and vreq.endaddr(4 downto 2)="001") then dv.initstate := disidle; + if pwron=0 then dv.cfg.renable:='0'; end if; end if; when disidle => @@ -945,6 +956,7 @@ begin dv.resp := ddr_response_none; dv.resp2 := ddr_response_none; dv.initstate := disrstdel; + dv.refpend := '0'; -- Reset cfg record dv.cfg.command := "000"; dv.cfg.csize := conv_std_logic_vector(col-9, 2); @@ -968,10 +980,7 @@ begin dv.cfg.trp := "01"; else dv.cfg.trp := "00"; end if; - if pwron = 1 then - dv.cfg.renable := '1'; - else dv.cfg.renable := '0'; - end if; + dv.cfg.renable := '1'; -- Updated in disrstdel state if mobile >= 2 then dv.cfg.mobileen := '1'; -- Default: Mobile DDR else dv.cfg.mobileen := '0'; @@ -981,6 +990,7 @@ begin else dv.cfg.trfc := conv_std_logic_vector(75*MHz/1000-2, 5); end if; if ddr_syncrst /= 0 then + dv.sdo_ck := "000"; if mobile >= 2 then dv.cfg.cke := '1'; else dv.cfg.cke := '0'; @@ -992,14 +1002,27 @@ begin else dv.cfg.conf := (others => '0'); end if; - dv.cfg.tras := "00"; - dv.cfg.twr := '0'; + if MHz > 175 then + dv.cfg.tras := "10"; + elsif MHz > 150 then + dv.cfg.tras := "01"; + else + dv.cfg.tras := "00"; + end if; + if MHz > 133 then + dv.cfg.twr := '1'; + else + dv.cfg.twr := '0'; + end if; dv.sdo_csn := "11"; dv.sdo_dqm := (others => '1'); dv.sdo_wen := '1'; dv.sdo_rasn := '1'; dv.sdo_casn := '1'; + + -- Extra reset for X-sensitive techs + dv.ramaddr := (others => '0'); end if; --------------------------------------------------------------------------- @@ -1031,7 +1054,9 @@ begin -- Assign sdo o.bdrive := '1'; o.qdrive := '1'; --Temp. o.sdck := dr.sdo_ck; - if ddr_syncrst/=0 then o.sdck := o.sdck and (o.sdck'range => ddr_rst); end if; + if ddr_syncrst/=0 and phyptctrl/=0 then + o.sdck := o.sdck and (o.sdck'range => ddr_rst); + end if; if regoutput /= 0 then o.casn := dr.sdo_casn; @@ -1041,9 +1066,11 @@ begin o.ba := '0' & dr.sdo_ba; o.address := dr.sdo_address; o.sdcke := (others => dr.cfg.cke); - if ddr_syncrst/=0 and ddr_rst='0' then - if mobile >= 2 then o.sdcke := (others => '1'); - else o.sdcke := (others => '0'); + if ddr_syncrst /= 0 and phyptctrl /= 0 then + if ddr_rst='0' then + if mobile >= 2 then o.sdcke := (others => '1'); + else o.sdcke := (others => '0'); + end if; end if; end if; o.data(2*ddrbits-1 downto 0) := dr.sdo_data; @@ -1082,6 +1109,13 @@ begin o.dqm := (others => '1'); end if; + if scantest/=0 and phyptctrl/=0 then + if testen='1' then + o.bdrive := testoen; + o.qdrive := testoen; + end if; + end if; + --------------------------------------------------------------------------- -- Drive outputs --------------------------------------------------------------------------- @@ -1095,12 +1129,12 @@ begin wbraddr <= vdone & dv.ramaddr; end process; - ddrregs: process(clk_ddr,ddr_rst) + ddrregs: process(clk_ddr,arst) begin if rising_edge(clk_ddr) then dr <= ndr; end if; - if ddr_syncrst=0 and ddr_rst='0' then + if ddr_syncrst=0 and arst='0' then dr.sdo_ck <= "000"; if mobile >= 2 then dr.cfg.cke <= '1'; diff --git a/lib/gaisler/ddr/ddr2buf.vhd b/lib/gaisler/ddr/ddr2buf.vhd index 20e4f10c..47d5c595 100644 --- a/lib/gaisler/ddr/ddr2buf.vhd +++ b/lib/gaisler/ddr/ddr2buf.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/ddr/ddr2spa.vhd b/lib/gaisler/ddr/ddr2spa.vhd index 9e5d7e22..15c67c26 100644 --- a/lib/gaisler/ddr/ddr2spa.vhd +++ b/lib/gaisler/ddr/ddr2spa.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -83,7 +83,8 @@ entity ddr2spa is ftbits : integer := 0; bigmem : integer range 0 to 1 := 0; raspipe : integer range 0 to 1 := 0; - nclk : integer range 1 to 3 := 3 + nclk : integer range 1 to 3 := 3; + scantest : integer := 0 ); port ( rst_ddr : in std_ulogic; @@ -160,8 +161,8 @@ begin end if; end process; - ftphy: if ftbits > 0 generate - ddr_phy0 : ddr2phy_wrap + nftphy: if true generate + ddr_phy0 : ddr2phy_wrap_cbd generic map ( tech => fabtech, MHz => MHz, dbits => ddrbits, rstdelay => 0, clk_mul => clkmul, @@ -172,50 +173,19 @@ begin cbdelayb1=> cbdelayb1, cbdelayb2=> cbdelayb2,cbdelayb3=> cbdelayb3, numidelctrl => numidelctrl, norefclk => norefclk, rskew => rskew, eightbanks => eightbanks, dqsse => dqsse, - cben => 1, chkbits => ftbits, ctrl2en => 0, resync => 0, custombits => 8, - nclk => nclk ) + chkbits => ftbits*ft, padbits => ftbits*(1-ft), + ctrl2en => 0, resync => 0, custombits => 8, + nclk => nclk, scantest => scantest ) port map ( rst_ddr, clk_ddr, clkref200, clkddro, clkddri, clkddri, ilock, ddr_clk, ddr_clkb, ddr_clk_fb_out, ddr_clk_fb, ddr_cke, ddr_csb, ddr_web, ddr_rasb, ddr_casb, - ddr_dm(ddrbits/8-1 downto 0), - ddr_dqs(ddrbits/8-1 downto 0), - ddr_dqsn(ddrbits/8-1 downto 0), - ddr_ad, ddr_ba, ddr_dq(ddrbits-1 downto 0), ddr_odt, - ddr_dm((ddrbits+ftbits)/8-1 downto ddrbits/8), - ddr_dqs((ddrbits+ftbits)/8-1 downto ddrbits/8), - ddr_dqsn((ddrbits+ftbits)/8-1 downto ddrbits/8), - ddr_dq((ddrbits+ftbits)-1 downto ddrbits), + ddr_dm, ddr_dqs, ddr_dqsn, + ddr_ad, ddr_ba, ddr_dq, ddr_odt, open, open, open, open, open, - sdi, sdo, - clkddri, "00000000", open); - end generate; - - nftphy: if ftbits = 0 generate - ddr_phy0 : ddr2phy_wrap_cbd - generic map ( - tech => fabtech, MHz => MHz, - dbits => ddrbits, rstdelay => 0, clk_mul => clkmul, - clk_div => clkdiv, - ddelayb0 => ddelayb0, ddelayb1 => ddelayb1, ddelayb2 => ddelayb2, - ddelayb3 => ddelayb3, ddelayb4 => ddelayb4, ddelayb5 => ddelayb5, - ddelayb6 => ddelayb6, ddelayb7 => ddelayb7, cbdelayb0=> cbdelayb0, - cbdelayb1=> cbdelayb1, cbdelayb2=> cbdelayb2,cbdelayb3=> cbdelayb3, - numidelctrl => numidelctrl, norefclk => norefclk, rskew => rskew, - eightbanks => eightbanks, dqsse => dqsse, - chkbits => 0, ctrl2en => 0, resync => 0, custombits => 8, - nclk => nclk ) - port map ( - rst_ddr, clk_ddr, clkref200, clkddro, clkddri, clkddri, ilock, - ddr_clk, ddr_clkb, ddr_clk_fb_out, ddr_clk_fb, - ddr_cke, ddr_csb, ddr_web, ddr_rasb, ddr_casb, - ddr_dm(ddrbits/8-1 downto 0), - ddr_dqs(ddrbits/8-1 downto 0), - ddr_dqsn(ddrbits/8-1 downto 0), - ddr_ad, ddr_ba, ddr_dq(ddrbits-1 downto 0), ddr_odt, - open, open, open, open, open, - sdi, sdo, clkddri, "00000000", open); - end generate; + sdi, sdo, clkddri, "00000000", open, + ahbsi.testen, ahbsi.scanen, ahbsi.testrst, ahbsi.testoen); + end generate; ddrc : ddr2spax generic map (memtech => memtech, phytech => fabtech, hindex => hindex, haddr => haddr, hmask => hmask, ioaddr => ioaddr, iomask => iomask, ddrbits => ddrbits, diff --git a/lib/gaisler/ddr/ddr2spax.vhd b/lib/gaisler/ddr/ddr2spax.vhd index 1356d51a..8586abe1 100644 --- a/lib/gaisler/ddr/ddr2spax.vhd +++ b/lib/gaisler/ddr/ddr2spax.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -36,6 +36,7 @@ use gaisler.memctrl.all; use gaisler.ddrpkg.all; library techmap; use techmap.gencomp.ddr2phy_has_datavalid; +use techmap.gencomp.ddr2phy_ptctrl; entity ddr2spax is generic ( @@ -68,7 +69,8 @@ entity ddr2spax is bigmem : integer range 0 to 1 := 0; raspipe : integer range 0 to 1 := 0; hwidthen : integer range 0 to 1 := 0; - rstdel : integer := 200 + rstdel : integer := 200; + scantest : integer := 0 ); port ( ddr_rst : in std_ulogic; @@ -162,9 +164,9 @@ begin ftc: ft_ddr2spax_ahb generic map (hindex => hindex, haddr => haddr, hmask => hmask, ioaddr => ioaddr, iomask => iomask, nosync => nosync, burstlen => burstlen, ahbbits => xahbw, bufbits => xahbw+xahbw/2, - ddrbits => ddrbits, hwidthen => hwidthen, revision => revision) + ddrbits => ddrbits, hwidthen => hwidthen, devid => GAISLER_DDR2SP, revision => revision) port map (ahb_rst, clk_ahb, ahbsi, ahbso, ce, request, start_tog, response, - wbwaddr, wbwdata, wbwrite, wbwritebig, rbraddr, rbrdata, hwidth, '0', open, open); + wbwaddr, wbwdata, wbwrite, wbwritebig, rbraddr, rbrdata, hwidth, '0', open, open, FTFE_BEID_DDR2); end generate; ddrc : ddr2spax_ddr @@ -174,10 +176,11 @@ begin nosync => nosync, eightbanks => eightbanks, dqsse => dqsse, burstlen => burstlen, chkbits => ft*ddrbits/2, bigmem => bigmem, raspipe => raspipe, hwidthen => hwidthen, phytech => phytech, hasdqvalid => ddr2phy_has_datavalid(phytech), - rstdel => rstdel) + rstdel => rstdel, phyptctrl => ddr2phy_ptctrl(phytech), scantest => scantest, + ddr_syncrst => ddr_syncrst) port map (ddr_rst, clk_ddr, request, start_tog, response, sdi, sdox, wbraddr, wbrdata, rbwaddr, rbwdata, rbwrite, hwidth, - '0', ddr_request_none, open); + '0', ddr_request_none, open, ahbsi.testen, ahbsi.testrst, ahbsi.testoen); sdoproc: process(sdox,ce) diff --git a/lib/gaisler/ddr/ddr2spax_ahb.vhd b/lib/gaisler/ddr/ddr2spax_ahb.vhd index 4653dce4..7d349191 100644 --- a/lib/gaisler/ddr/ddr2spax_ahb.vhd +++ b/lib/gaisler/ddr/ddr2spax_ahb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -154,7 +154,7 @@ begin av := ar; so := (hready => ar.so_hready, hresp => HRESP_OKAY, hrdata => (others => '0'), - hsplit => (others => '0'), hcache => not ar.hio, hirq => (others => '0'), + hsplit => (others => '0'), hirq => (others => '0'), hconfig => hconfig, hindex => hindex); wbw := '0'; wbwb := '0'; diff --git a/lib/gaisler/ddr/ddr2spax_ddr.vhd b/lib/gaisler/ddr/ddr2spax_ddr.vhd index bf4a9a8a..a4973e45 100644 --- a/lib/gaisler/ddr/ddr2spax_ddr.vhd +++ b/lib/gaisler/ddr/ddr2spax_ddr.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -60,7 +60,9 @@ entity ddr2spax_ddr is hwidthen : integer range 0 to 1 := 0; phytech : integer := 0; hasdqvalid : integer := 0; - rstdel : integer := 200 + rstdel : integer := 200; + phyptctrl : integer := 0; + scantest : integer := 0 ); port ( ddr_rst : in std_ulogic; @@ -78,7 +80,10 @@ entity ddr2spax_ddr is hwidth : in std_ulogic; reqsel : in std_ulogic; frequest : in ddr_request_type; - response2: out ddr_response_type + response2: out ddr_response_type; + testen : in std_ulogic; + testrst : in std_ulogic; + testoen : in std_ulogic ); end ddr2spax_ddr; @@ -224,6 +229,7 @@ architecture rtl of ddr2spax_ddr is signal muxout4: std_logic_vector(3 downto 0); signal start_tog_delta1,start_tog_delta2: std_logic; + signal arst: std_ulogic; attribute syn_keep: boolean; attribute syn_keep of muxsel2:signal is true; @@ -232,6 +238,8 @@ architecture rtl of ddr2spax_ddr is begin + arst <= testrst when (scantest/=0 and ddr_syncrst=0) and testen='1' else ddr_rst; + start_tog_delta1 <= start_tog; start_tog_delta2 <= start_tog_delta1; @@ -247,7 +255,7 @@ begin muxout4(0) <= genmux((muxsel2 & muxsel1 & muxsel0),muxin4(7 downto 0)); end process; - ddrcomb : process(ddr_rst,sdi,request,frequest,start_tog_delta2,dr,wbrdata,muxout4,hwidth,reqsel) + ddrcomb : process(ddr_rst,sdi,request,frequest,start_tog_delta2,dr,wbrdata,muxout4,hwidth,reqsel,testen,testoen) constant plmemwrite: boolean := false; constant plmemread: boolean := false; @@ -1287,10 +1295,15 @@ begin dv.sdo_bdrive := not oepols; dv.sdo_qdrive := not oepols; dv.sdo_odt := '0'; - o.sdcke := "00"; + if phyptctrl /= 0 then + o.sdcke := "00"; + o.bdrive := not oepols; + o.qdrive := not oepols; + o.odt := (others => '0'); + end if; end if; end if; - + if dr.cfg.odten="00" then dv.sdo_odt := '0'; end if; @@ -1332,6 +1345,13 @@ begin resp := dr.response; end if; resp2 := dr.response2; + + if scantest/=0 and phyptctrl/=0 then + if testen='1' then + o.bdrive := testoen; + o.qdrive := testoen; + end if; + end if; rbwdata <= rbwd; rbwaddr <= rbwa; @@ -1344,12 +1364,12 @@ begin end process; - ddrregs: process(clk_ddr,ddr_rst) + ddrregs: process(clk_ddr,arst) begin if rising_edge(clk_ddr) then dr <= ndr; end if; - if ddr_syncrst=0 and ddr_rst='0' then + if ddr_syncrst=0 and arst='0' then dr.cfg.cke <= '0'; dr.sdo_bdrive <= not oepols; dr.sdo_qdrive <= not oepols; diff --git a/lib/gaisler/ddr/ddrphy_wrap.vhd b/lib/gaisler/ddr/ddrphy_wrap.vhd index a791c691..f8aa9d15 100644 --- a/lib/gaisler/ddr/ddrphy_wrap.vhd +++ b/lib/gaisler/ddr/ddrphy_wrap.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -42,7 +42,8 @@ entity ddrphy_wrap is generic (tech : integer := virtex2; MHz : integer := 100; rstdelay : integer := 200; dbits : integer := 16; clk_mul : integer := 2 ; clk_div : integer := 2; - rskew : integer :=0; mobile : integer := 0); + rskew : integer :=0; mobile : integer := 0; + scantest : integer := 0; phyiconf : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -67,7 +68,12 @@ entity ddrphy_wrap is ddr_dq : inout std_logic_vector (dbits-1 downto 0); -- ddr data sdi : out sdctrl_in_type; - sdo : in sdctrl_out_type); + sdo : in sdctrl_out_type; + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end; architecture rtl of ddrphy_wrap is @@ -81,7 +87,8 @@ begin / 200 -- pragma translate_on , dbits => dbits, clk_mul => clk_mul, clk_div => clk_div, - rskew => rskew, mobile => mobile) + rskew => rskew, mobile => mobile, scantest => scantest, + phyiconf => phyiconf) port map ( rst, clk, clkout, clkoutret, clkread, lock, ddr_clk, ddr_clkb, ddr_clk_fb_out, ddr_clk_fb, @@ -91,7 +98,7 @@ begin sdi.data(dbits*2-1 downto 0), sdo.data(dbits*2-1 downto 0), sdo.dqm(dbits/4-1 downto 0), sdo.bdrive, sdo.bdrive, sdo.qdrive, sdo.rasn, sdo.casn, sdo.sdwen, sdo.sdcsn, sdo.sdcke, sdo.sdck(2 downto 0), sdo.moben, - sdi.datavalid); + sdi.datavalid, testen, testrst, scanen, testoen); drvdata : if dbits < 64 generate sdi.data(127 downto dbits*2) <= (others => '0'); @@ -124,7 +131,8 @@ entity ddrphy_wrap_cbd is chkbits: integer := 0; padbits : integer := 0; clk_mul : integer := 2 ; clk_div : integer := 2; rskew : integer :=0; mobile : integer := 0; - abits: integer := 14; nclk: integer := 3; ncs: integer := 2); + abits: integer := 14; nclk: integer := 3; ncs: integer := 2; + scantest: integer := 0; phyiconf : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -149,8 +157,12 @@ entity ddrphy_wrap_cbd is ddr_dq : inout std_logic_vector (dbits+padbits+chkbits-1 downto 0); -- ddr data sdi : out sdctrl_in_type; - sdo : in sdctrl_out_type - ); + sdo : in sdctrl_out_type; + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end; architecture rtl of ddrphy_wrap_cbd is @@ -288,7 +300,8 @@ begin -- pragma translate_on , dbits => dbits+padbits+chkbits,clk_mul => clk_mul, clk_div => clk_div, rskew => rskew, mobile => mobile, - abits => abits, nclk => nclk, ncs => ncs) + abits => abits, nclk => nclk, ncs => ncs, scantest => scantest, + phyiconf => phyiconf) port map ( rst, clk, clkout, clkoutret, clkread, lock, ddr_clk, ddr_clkb, ddr_clk_fb_out, ddr_clk_fb, @@ -298,7 +311,8 @@ begin sdo.address(1+abits downto 2), sdo.ba(1 downto 0), dqin, dqout, dqm, sdo.bdrive, sdo.bdrive, sdo.qdrive, - sdo.rasn, sdo.casn, sdo.sdwen, csn, cke, sdck, sdo.moben,sdi.datavalid); + sdo.rasn, sdo.casn, sdo.sdwen, csn, cke, sdck, sdo.moben,sdi.datavalid, + testen,testrst,scanen,testoen); sdi.regrdata <= (others => '0'); @@ -328,7 +342,8 @@ entity ddrphy_wrap_cbd_wo_pads is clk_mul : integer := 2 ; clk_div : integer := 2; rskew : integer := 0; mobile : integer := 0; abits : integer := 14; nclk : integer := 3; ncs : integer := 2; - chkbits : integer := 0); + chkbits : integer := 0; + scantest : integer := 0; phyiconf : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -355,8 +370,12 @@ entity ddrphy_wrap_cbd_wo_pads is ddr_dq_out : out std_logic_vector (dbits+padbits+chkbits-1 downto 0); -- ddr data ddr_dq_oen : out std_logic_vector (dbits+padbits+chkbits-1 downto 0); sdi : out sdctrl_in_type; - sdo : in sdctrl_out_type - ); + sdo : in sdctrl_out_type; + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end; architecture rtl of ddrphy_wrap_cbd_wo_pads is @@ -494,7 +513,7 @@ begin -- pragma translate_on , dbits => dbits+padbits+chkbits, clk_mul => clk_mul, clk_div => clk_div, rskew => rskew, - abits => abits, nclk => nclk, ncs => ncs, mobile => mobile) + abits => abits, nclk => nclk, ncs => ncs, mobile => mobile, scantest => scantest, phyiconf => phyiconf) port map ( rst => rst, clk => clk, clkout => clkout, clkoutret => clkoutret, lock => lock, @@ -507,7 +526,8 @@ begin addr => sdo.address(1+abits downto 2), ba => sdo.ba(1 downto 0), dqin => dqin, dqout => dqout, dm => dqm, oen => sdo.bdrive, dqs => sdo.bdrive, dqsoen => sdo.qdrive, rasn => sdo.rasn, casn => sdo.casn, wen => sdo.sdwen, csn => csn, - cke => cke, ck => sdck, moben => sdo.moben, dqvalid => sdi.datavalid + cke => cke, ck => sdck, moben => sdo.moben, dqvalid => sdi.datavalid, + testen => testen, testrst => testrst, scanen => scanen, testoen => testoen ); sdi.regrdata <= (others => '0'); @@ -557,7 +577,8 @@ entity ddr2phy_wrap is dqsse : integer range 0 to 1 := 0; abits : integer := 14; nclk : integer := 3; ncs : integer := 2; cben : integer := 0; chkbits : integer := 8; ctrl2en : integer := 0; - resync : integer := 0; custombits: integer := 8); + resync : integer := 0; custombits: integer := 8; + scantest : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -598,7 +619,12 @@ entity ddr2phy_wrap is customclk : in std_ulogic; customdin : in std_logic_vector(custombits-1 downto 0); - customdout : out std_logic_vector(custombits-1 downto 0) + customdout : out std_logic_vector(custombits-1 downto 0); + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic ); end; @@ -622,7 +648,7 @@ begin ddelayb0,ddelayb1,ddelayb2,ddelayb3,ddelayb4,ddelayb5,ddelayb6,ddelayb7, cbdelayb0,cbdelayb1,cbdelayb2,cbdelayb3, numidelctrl,norefclk,odten,rskew, - eightbanks,dqsse,abits,nclk,ncs,chkbits,resync,custombits) + eightbanks,dqsse,abits,nclk,ncs,chkbits,resync,custombits,scantest) port map ( rst,clk,clkref200,clkout,clkoutret,clkresync,lock, lddr_clk,lddr_clkb,lddr_clk_fb_out,lddr_clk_fb, @@ -630,7 +656,7 @@ begin lddr_dqs_in,lddr_dqs_out,lddr_dqs_oen, lddr_ad,lddr_ba,lddr_dq_in,lddr_dq_out,lddr_dq_oen, lddr_odt, - sdi,sdo,customclk,customdin,customdout); + sdi,sdo,customclk,customdin,customdout,testen,testrst,scanen,testoen); -- Instantiate pads for control signals and data bus p0: ddr2pads @@ -702,7 +728,8 @@ entity ddr2phy_wrap_cbd is dqsse : integer range 0 to 1 := 0; abits : integer := 14; nclk : integer := 3; ncs : integer := 2; chkbits : integer := 0; ctrl2en : integer := 0; - resync : integer := 0; custombits: integer := 8; extraio : integer := 0); + resync : integer := 0; custombits: integer := 8; extraio : integer := 0; + scantest : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -739,8 +766,12 @@ entity ddr2phy_wrap_cbd is customclk : in std_ulogic; customdin : in std_logic_vector(custombits-1 downto 0); - customdout : out std_logic_vector(custombits-1 downto 0) - ); + customdout : out std_logic_vector(custombits-1 downto 0); + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end; architecture rtl of ddr2phy_wrap_cbd is @@ -887,7 +918,8 @@ begin numidelctrl => numidelctrl, norefclk => norefclk, rskew => rskew, eightbanks => eightbanks, dqsse => dqsse, abits => abits, nclk => nclk, ncs => ncs, - ctrl2en => ctrl2en, resync => resync, custombits => custombits, extraio => extraio) + ctrl2en => ctrl2en, resync => resync, custombits => custombits, extraio => extraio, + scantest => scantest) port map ( rst, clk, clkref200, clkout, clkoutret, clkresync, lock, ddr_clk, ddr_clkb, ddr_clk_fb_out, ddr_clk_fb, @@ -903,7 +935,9 @@ begin sdo.regwdata, sdo.regwrite, sdi.regrdata, sdi.datavalid, customclk, customdin, customdout, - ddr_web2, ddr_rasb2, ddr_casb2, ddr_ad2, ddr_ba2 + ddr_web2, ddr_rasb2, ddr_casb2, ddr_ad2, ddr_ba2, + + testen, testrst, scanen, testoen ); end; @@ -935,7 +969,8 @@ entity ddr2phy_wrap_cbd_wo_pads is rskew : integer := 0; eightbanks : integer range 0 to 1 := 0; dqsse : integer range 0 to 1 := 0; abits : integer := 14; nclk : integer := 3; ncs : integer := 2; - chkbits : integer := 0; resync : integer := 0; custombits: integer := 8); + chkbits : integer := 0; resync : integer := 0; custombits: integer := 8; + scantest : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -970,8 +1005,12 @@ entity ddr2phy_wrap_cbd_wo_pads is customclk : in std_ulogic; customdin : in std_logic_vector(custombits-1 downto 0); - customdout : out std_logic_vector(custombits-1 downto 0) - ); + customdout : out std_logic_vector(custombits-1 downto 0); + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end; architecture rtl of ddr2phy_wrap_cbd_wo_pads is @@ -1121,7 +1160,8 @@ begin ddelayb9 => cbddelays(9), ddelayb10 => cbddelays(10), ddelayb11 => cbddelays(11), numidelctrl => numidelctrl, norefclk => norefclk, rskew => rskew, eightbanks => eightbanks, dqsse => dqsse, - abits => abits, nclk => nclk, ncs => ncs, resync => resync, custombits => custombits) + abits => abits, nclk => nclk, ncs => ncs, resync => resync, custombits => custombits, + scantest => scantest) port map ( rst => rst, clk => clk, clkref => clkref200, clkout => clkout, clkoutret => clkoutret, clkresync => clkresync, lock => lock, @@ -1138,6 +1178,7 @@ begin cke => cke, cal_en => cal_en, cal_inc => cal_inc, cal_pll => sdo.cal_pll, cal_rst => sdo.cal_rst, odt => odt, oct => sdo.oct, read_pend => sdo.read_pend, regwdata => sdo.regwdata, regwrite => sdo.regwrite, regrdata => sdi.regrdata, dqin_valid => sdi.datavalid, - customclk => customclk, customdin => customdin, customdout => customdout + customclk => customclk, customdin => customdin, customdout => customdout, + testen => testen, testrst => testrst, scanen => scanen, testoen => testoen ); end; diff --git a/lib/gaisler/ddr/ddrpkg.vhd b/lib/gaisler/ddr/ddrpkg.vhd index 4640b910..c2e62219 100644 --- a/lib/gaisler/ddr/ddrpkg.vhd +++ b/lib/gaisler/ddr/ddrpkg.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -72,12 +72,13 @@ package ddrpkg is type ddr_response_type is record done_tog : std_ulogic; rctr_gray: std_logic_vector(3 downto 0); + readerr : std_ulogic; end record; constant ddr_request_none: ddr_request_type := ((others => '0'), (others => '0'), "000", '0','0','0','0','0'); - constant ddr_response_none: ddr_response_type := ('0',"0000"); + constant ddr_response_none: ddr_response_type := ('0',"0000",'0'); component ddr2spax_ahb is generic ( @@ -144,10 +145,16 @@ component ft_ddr2spax_ahb is hwidth : in std_logic; synccfg : in std_logic; request2 : out ddr_request_type; - start_tog2: out std_logic + start_tog2: out std_logic; + beid : in std_logic_vector(3 downto 0) ); end component; +constant FTFE_BEID_DDR2: std_logic_vector(3 downto 0) := "0000"; +constant FTFE_BEID_SDR : std_logic_vector(3 downto 0) := "0001"; +constant FTFE_BEID_DDR1: std_logic_vector(3 downto 0) := "0010"; +constant FTFE_BEID_SSR : std_logic_vector(3 downto 0) := "0011"; + component ddr2spax_ddr is generic ( ddrbits : integer := 32; @@ -172,7 +179,9 @@ component ddr2spax_ddr is hwidthen : integer range 0 to 1 := 0; phytech : integer := 0; hasdqvalid : integer := 0; - rstdel : integer := 200 + rstdel : integer := 200; + phyptctrl : integer := 0; + scantest : integer := 0 ); port ( ddr_rst : in std_ulogic; @@ -191,7 +200,10 @@ component ddr2spax_ddr is -- dynamic sync (nosync=2) reqsel : in std_ulogic; frequest : in ddr_request_type; - response2: out ddr_response_type + response2: out ddr_response_type; + testen : in std_ulogic; + testrst : in std_ulogic; + testoen : in std_ulogic ); end component; @@ -225,7 +237,8 @@ component ddr2spax is bigmem : integer range 0 to 1 := 0; raspipe : integer range 0 to 1 := 0; hwidthen : integer range 0 to 1 := 0; - rstdel : integer := 200 + rstdel : integer := 200; + scantest : integer := 0 ); port ( ddr_rst : in std_ulogic; @@ -288,7 +301,8 @@ component ddr2spa ftbits : integer := 0; bigmem : integer range 0 to 1 := 0; raspipe : integer range 0 to 1 := 0; - nclk : integer range 1 to 3 := 3 + nclk : integer range 1 to 3 := 3; + scantest: integer := 0 ); port ( rst_ddr : in std_ulogic; @@ -335,7 +349,8 @@ component ddr2spa dqsse : integer range 0 to 1 := 0; abits : integer := 14; nclk : integer := 3; ncs : integer := 2; chkbits : integer := 0; ctrl2en : integer := 0; - resync : integer := 0; custombits : integer := 8; extraio: integer := 0); + resync : integer := 0; custombits : integer := 8; extraio: integer := 0; + scantest : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -373,8 +388,12 @@ component ddr2spa customclk : in std_ulogic; customdin : in std_logic_vector(custombits-1 downto 0); - customdout : out std_logic_vector(custombits-1 downto 0) - ); + customdout : out std_logic_vector(custombits-1 downto 0); + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end component; component ddr2phy_wrap_cbd_wo_pads is @@ -390,7 +409,8 @@ component ddr2spa rskew : integer := 0; eightbanks : integer range 0 to 1 := 0; dqsse : integer range 0 to 1 := 0; abits : integer := 14; nclk : integer := 3; ncs : integer := 2; - chkbits : integer := 0; resync : integer := 0; custombits : integer := 8); + chkbits : integer := 0; resync : integer := 0; custombits : integer := 8; + scantest : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -425,8 +445,12 @@ component ddr2spa customclk : in std_ulogic; customdin : in std_logic_vector(custombits-1 downto 0); - customdout : out std_logic_vector(custombits-1 downto 0) - ); + customdout : out std_logic_vector(custombits-1 downto 0); + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end component; component ddr2phy_wrap @@ -443,7 +467,8 @@ component ddr2spa eightbanks : integer range 0 to 1 := 0; dqsse : integer range 0 to 1 := 0; abits : integer := 14; nclk : integer := 3; ncs : integer := 2; cben : integer := 0; chkbits : integer := 8; ctrl2en : integer := 0; - resync : integer := 0; custombits: integer := 8); + resync : integer := 0; custombits: integer := 8; + scantest : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -484,8 +509,12 @@ component ddr2spa customclk : in std_ulogic; customdin : in std_logic_vector(custombits-1 downto 0); - customdout : out std_logic_vector(custombits-1 downto 0) - ); + customdout : out std_logic_vector(custombits-1 downto 0); + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end component; ----------------------------------------------------------------------------- @@ -512,7 +541,9 @@ component ddr2spa readdly : integer := 0; regoutput : integer := 1; ddr400 : integer := 1; - rstdel : integer := 200 + rstdel : integer := 200; + phyptctrl : integer := 0; + scantest : integer := 0 ); port ( ddr_rst : in std_ulogic; @@ -529,7 +560,10 @@ component ddr2spa rbwrite : out std_logic; reqsel : in std_ulogic; frequest : in ddr_request_type; - response2: out ddr_response_type + response2: out ddr_response_type; + testen : in std_ulogic; + testrst : in std_ulogic; + testoen : in std_ulogic ); end component; @@ -559,7 +593,8 @@ component ddr2spa regoutput : integer := 0; ft : integer := 0; ddr400 : integer := 1; - rstdel : integer := 200 + rstdel : integer := 200; + scantest : integer := 0 ); port ( ddr_rst : in std_ulogic; @@ -598,7 +633,9 @@ component ddr2spa conf0 : integer := 0; conf1 : integer := 0; regoutput : integer range 0 to 1 := 0; - ddr400 : integer := 1 + ddr400 : integer := 1; + scantest: integer := 0; + phyiconf: integer := 0 ); port ( rst_ddr : in std_ulogic; @@ -632,7 +669,8 @@ component ddr2spa generic (tech : integer := virtex2; MHz : integer := 100; rstdelay : integer := 200; dbits : integer := 16; clk_mul : integer := 2 ; clk_div : integer := 2; - rskew : integer := 0; mobile : integer := 0); + rskew : integer := 0; mobile : integer := 0; + scantest : integer := 0; phyiconf : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -656,7 +694,12 @@ component ddr2spa ddr_dq : inout std_logic_vector (dbits-1 downto 0); -- ddr data sdi : out sdctrl_in_type; - sdo : in sdctrl_out_type); + sdo : in sdctrl_out_type; + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end component; component ddrphy_wrap_cbd is @@ -666,7 +709,8 @@ component ddr2spa chkbits: integer := 0; padbits : integer := 0; clk_mul : integer := 2 ; clk_div : integer := 2; rskew : integer :=0; mobile : integer := 0; - abits: integer := 14; nclk: integer := 3; ncs: integer := 2); + abits: integer := 14; nclk: integer := 3; ncs: integer := 2; + scantest : integer := 0; phyiconf : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -691,8 +735,12 @@ component ddr2spa ddr_dq : inout std_logic_vector (dbits+padbits+chkbits-1 downto 0); -- ddr data sdi : out sdctrl_in_type; - sdo : in sdctrl_out_type - ); + sdo : in sdctrl_out_type; + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end component; component ddrphy_wrap_cbd_wo_pads is @@ -702,7 +750,7 @@ component ddr2spa clk_mul : integer := 2; clk_div : integer := 2; rskew : integer := 0; mobile: integer := 0; abits : integer := 14; nclk : integer := 3; ncs : integer := 2; - chkbits : integer := 0); + chkbits : integer := 0; scantest : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -730,8 +778,12 @@ component ddr2spa ddr_dq_oen : out std_logic_vector (dbits+padbits+chkbits-1 downto 0); -- ddr data sdi : out sdctrl_in_type; - sdo : in sdctrl_out_type - ); + sdo : in sdctrl_out_type; + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end component; ----------------------------------------------------------------------------- diff --git a/lib/gaisler/ddr/ddrsp.vhd b/lib/gaisler/ddr/ddrsp.vhd index bdfb252e..06b307d1 100644 --- a/lib/gaisler/ddr/ddrsp.vhd +++ b/lib/gaisler/ddr/ddrsp.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -505,7 +505,6 @@ begin ahbso.hready <= r.hready; ahbso.hresp <= r.hresp; ahbso.hrdata <= ahbdrivedata(dout); - ahbso.hcache <= not r.hio; end process; diff --git a/lib/gaisler/ddr/ddrspa.vhd b/lib/gaisler/ddr/ddrspa.vhd index 1a68bbe2..2bbf73f7 100644 --- a/lib/gaisler/ddr/ddrspa.vhd +++ b/lib/gaisler/ddr/ddrspa.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -61,7 +61,9 @@ entity ddrspa is conf1 : integer := 0; regoutput : integer := 0; nosync : integer := 0; - ddr400 : integer := 1 + ddr400 : integer := 1; + scantest: integer := 0; + phyiconf : integer := 0 ); port ( rst_ddr : in std_ulogic; @@ -125,19 +127,21 @@ begin ddr_phy0 : ddrphy_wrap_cbd generic map (tech => fabtech, MHz => MHz, dbits => ddrbits, rstdelay => 0, clk_mul => clkmul, - clk_div => clkdiv, rskew => rskew, mobile => mobile) + clk_div => clkdiv, rskew => rskew, mobile => mobile, + scantest => scantest, phyiconf => phyiconf) port map ( rst_ddr, clk_ddr, clkddro, clkddri, clkread, ilock, ddr_clk, ddr_clkb, ddr_clk_fb_out, ddr_clk_fb, ddr_cke, ddr_csb, ddr_web, ddr_rasb, ddr_casb, - ddr_dm, ddr_dqs, ddr_ad, ddr_ba, ddr_dq, sdi, sdo); + ddr_dm, ddr_dqs, ddr_ad, ddr_ba, ddr_dq, sdi, sdo, + ahbsi.testen, ahbsi.testrst, ahbsi.scanen, ahbsi.testoen); ddrc : ddr1spax generic map (ddrbits => ddrbits, memtech => memtech, phytech => fabtech, hindex => hindex, haddr => haddr, hmask => hmask, ioaddr => ioaddr, iomask => iomask, pwron => pwron, MHz => DDR_FREQ, col => col, Mbyte => Mbyte, mobile => mobile, confapi => confapi, conf0 => conf0, conf1 => conf1, regoutput => regoutput, nosync => nosync, ddr400 => ddr400, ahbbits => 32, - rstdel => rstdel) + rstdel => rstdel, scantest => scantest) port map (ddr_rst, rst_ahb, clkddri, clk_ahb, ahbsi, ahbso, sdi, sdo); end; diff --git a/lib/gaisler/ddr/mig.in.h b/lib/gaisler/ddr/mig.in.h index caa72fe9..1cda009b 100644 --- a/lib/gaisler/ddr/mig.in.h +++ b/lib/gaisler/ddr/mig.in.h @@ -1,4 +1,8 @@ +#ifndef CONFIG_MIG_DDR3 +#define CONFIG_MIG_DDR3 0 +#endif + #ifndef CONFIG_MIG_DDR2 #define CONFIG_MIG_DDR2 0 #endif diff --git a/lib/gaisler/ddr/mig_interface_model.v b/lib/gaisler/ddr/mig_interface_model.v new file mode 100644 index 00000000..03bd3226 --- /dev/null +++ b/lib/gaisler/ddr/mig_interface_model.v @@ -0,0 +1,194 @@ + +/***************************************************************************** +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------- +-- Entity: mig_interface_model +-- File: mig_interface_model.v +-- Author: Fredrik Ringhage - Aeroflex Gaisler AB +-- +-- This is a interface model for Xilinx Virtex-7 MIG used on eval board +-- VC707 and KC705. +-- +------------------------------------------------------------------------------- +*****************************************************************************/ + +`timescale 1ps/1ps + +module mig_interface_model + ( + // user interface signals + input [27:0] app_addr, + input [2:0] app_cmd, + input app_en, + input [511:0] app_wdf_data, + input app_wdf_end, + input [63:0] app_wdf_mask, + input app_wdf_wren, + output wire [511:0] app_rd_data, + output wire app_rd_data_end, + output wire app_rd_data_valid, + output wire app_rdy, + output wire app_wdf_rdy, + output reg ui_clk, + output reg ui_clk_sync_rst, + output reg init_calib_complete, + input sys_rst + ); + + parameter AddressSize = 28 - 8; + //parameter AddressSize = 10; + //parameter AddressSize = 7; + parameter WordSize = 512; + parameter MEM_SIZE = (1<> 3]; + + // Clear memory + initial + begin + for (k = 0; k < MEM_SIZE ; k = k + 1) + begin + Mem[k] = 512'd0; + end + end + + initial + begin + app_rd_data_valid_r = 1'b0; + app_rd_data_end_r = 1'b0; + app_rdy_r = 1'b1; + app_wdf_rdy_r = 1'b1; + init_calib_complete = 1'b0; + ui_clk_sync_rst = 1'b0; + ui_clk = 1'b0; + end + + // Generate clocks + always + begin + forever begin + #5000; + ui_clk = ~ui_clk; + end + end + + // Release reset and calibration + initial + begin + #10000; + $display("Reset release of simulation time is %d",$time); + @(posedge ui_clk) ui_clk_sync_rst = 1'b1; + #1000; + $display("Calibration release of simulation time is %d",$time); + @(posedge ui_clk) init_calib_complete = 1'b1; + end + + // Write Process + always@(posedge app_wdf_wren) + begin + #100; + for (k = 0; k < 512 ; k = k + 1) + begin + mask[k] = ~ app_wdf_mask[k >> 3]; + end + Mem[app_addr >> 3] = (app_wdf_data & mask) | (Mem[app_addr >> 3] & (~ mask) ); + #10000; + if (app_wdf_wren) begin + #100; + for (k = 0; k < 512 ; k = k + 1) + begin + mask[k] = ~ app_wdf_mask[k >> 3]; + end + Mem[app_addr >> 3] = (app_wdf_data & mask) | (Mem[app_addr >> 3] & (~ mask) ); + end + #10000; + if (app_wdf_wren) begin + #100; + for (k = 0; k < 512 ; k = k + 1) + begin + mask[k] = ~ app_wdf_mask[k >> 3]; + end + Mem[app_addr >> 3] = (app_wdf_data & mask) | (Mem[app_addr >> 3] & (~ mask) ); + end + #10000; + if (app_wdf_wren) begin + #100; + for (k = 0; k < 512 ; k = k + 1) + begin + mask[k] = ~ app_wdf_mask[k >> 3]; + end + Mem[app_addr >> 3] = (app_wdf_data & mask) | (Mem[app_addr >> 3] & (~ mask) ); + end + end + + // Read Process + always@(posedge app_en) + begin + #100; + + if (MEM_SIZE < app_addr) begin + $display("Warning read/write access outside memory at %d",$time); + end + + if (app_cmd == 3'd1) begin + app_addr_r1 = app_addr; + #10000; + app_addr_r2 = app_addr; + #10000; + app_addr_r3 = app_addr; + #10000; + app_addr_r4 = app_addr; + #40000; + app_addr_r = app_addr_r1; + #100; + app_rd_data_valid_r = 1'b1; + #10000; + app_addr_r = app_addr_r2; + #10000; + app_addr_r = app_addr_r3; + #10000; + app_addr_r = app_addr_r4; + #10000; + app_rd_data_valid_r = 1'b0; + #10000; + end + end +endmodule diff --git a/lib/gaisler/ddr/mig_series7.in b/lib/gaisler/ddr/mig_series7.in new file mode 100644 index 00000000..34e1c477 --- /dev/null +++ b/lib/gaisler/ddr/mig_series7.in @@ -0,0 +1,4 @@ +mainmenu_option next_comment + comment 'MIG Series 7 memory controller ' + bool 'Enable Xilinx DDR3 MIG memory controller' CONFIG_MIG_SERIES7 +endmenu diff --git a/lib/gaisler/ddr/mig_series7.in.h b/lib/gaisler/ddr/mig_series7.in.h new file mode 100644 index 00000000..98fd1503 --- /dev/null +++ b/lib/gaisler/ddr/mig_series7.in.h @@ -0,0 +1,4 @@ + +#ifndef CONFIG_MIG_SERIES7 +#define CONFIG_MIG_SERIES7 0 +#endif diff --git a/lib/gaisler/ddr/mig_series7.in.vhd b/lib/gaisler/ddr/mig_series7.in.vhd new file mode 100644 index 00000000..f986f248 --- /dev/null +++ b/lib/gaisler/ddr/mig_series7.in.vhd @@ -0,0 +1,3 @@ +-- Xilinx MIG Series 7 + constant CFG_MIG_SERIES7 : integer := CONFIG_MIG_SERIES7; + diff --git a/lib/gaisler/ddr/vhdlsyn.txt b/lib/gaisler/ddr/vhdlsyn.txt index fd966af7..52030274 100644 --- a/lib/gaisler/ddr/vhdlsyn.txt +++ b/lib/gaisler/ddr/vhdlsyn.txt @@ -9,3 +9,5 @@ ddr2spax_ddr.vhd ft_ddr2spax_ahb.vhd ddr1spax.vhd ddr1spax_ddr.vhd +ahb2mig_series7_pkg.vhd +ahb2mig_series7.vhd diff --git a/lib/gaisler/ddr/vlogsim.txt b/lib/gaisler/ddr/vlogsim.txt new file mode 100644 index 00000000..ed3dcbd3 --- /dev/null +++ b/lib/gaisler/ddr/vlogsim.txt @@ -0,0 +1 @@ +mig_interface_model.v \ No newline at end of file diff --git a/lib/gaisler/ddrv1/ahb_slv.vhd b/lib/gaisler/ddrv1/ahb_slv.vhd index 2fce00ae..6d73c23a 100644 --- a/lib/gaisler/ddrv1/ahb_slv.vhd +++ b/lib/gaisler/ddrv1/ahb_slv.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -515,7 +515,6 @@ begin -- rtl ahbri <= v; cso.ahbso.hsplit <= (others => '0'); - cso.ahbso.hcache <= '1'; cso.ahbso.hirq <= (others => '0'); cso.ahbso.hindex <= hindex; diff --git a/lib/gaisler/ddrv1/ddr2sp16a.vhd b/lib/gaisler/ddrv1/ddr2sp16a.vhd index 73eb365c..b4b20efd 100644 --- a/lib/gaisler/ddrv1/ddr2sp16a.vhd +++ b/lib/gaisler/ddrv1/ddr2sp16a.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -300,7 +300,6 @@ begin ahbso.hready <= ra.hready; ahbso.hresp <= ra.hresp; ahbso.hrdata <= ahbdrivedata(dout); - ahbso.hcache <= not ra.hio; end process; diff --git a/lib/gaisler/ddrv1/ddr2sp32a.vhd b/lib/gaisler/ddrv1/ddr2sp32a.vhd index ad949e28..c4ad9d86 100644 --- a/lib/gaisler/ddrv1/ddr2sp32a.vhd +++ b/lib/gaisler/ddrv1/ddr2sp32a.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -331,7 +331,6 @@ begin ahbso.hready <= ra.hready; ahbso.hresp <= ra.hresp; ahbso.hrdata <= ahbdrivedata(ra.hrdata); - ahbso.hcache <= not ra.hio; end process; diff --git a/lib/gaisler/ddrv1/ddr2sp64a.vhd b/lib/gaisler/ddrv1/ddr2sp64a.vhd index 5eed5145..cb076f19 100644 --- a/lib/gaisler/ddrv1/ddr2sp64a.vhd +++ b/lib/gaisler/ddrv1/ddr2sp64a.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -334,7 +334,6 @@ begin ahbso.hready <= ra.hready; ahbso.hresp <= ra.hresp; ahbso.hrdata <= ahbdrivedata(ra.hrdata); - ahbso.hcache <= not ra.hio; end process; diff --git a/lib/gaisler/ddrv1/ddr2spa.vhd b/lib/gaisler/ddrv1/ddr2spa.vhd index f30a98d2..c5176bbe 100644 --- a/lib/gaisler/ddrv1/ddr2spa.vhd +++ b/lib/gaisler/ddrv1/ddr2spa.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/ddrv1/ddrctrl.vhd b/lib/gaisler/ddrv1/ddrctrl.vhd index 16502236..14c61d83 100644 --- a/lib/gaisler/ddrv1/ddrctrl.vhd +++ b/lib/gaisler/ddrv1/ddrctrl.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/ddrv1/ddrphy_wrap.vhd b/lib/gaisler/ddrv1/ddrphy_wrap.vhd index a791c691..4fe66b8b 100644 --- a/lib/gaisler/ddrv1/ddrphy_wrap.vhd +++ b/lib/gaisler/ddrv1/ddrphy_wrap.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -72,8 +72,11 @@ end; architecture rtl of ddrphy_wrap is + signal gnd, vcc : std_ulogic; + begin - + gnd <= '0'; vcc <= '0'; + ddr_phy0 : ddrphy generic map (tech => tech, MHz => MHz, rstdelay => rstdelay -- reduce 200 us start-up delay during simulation @@ -91,7 +94,7 @@ begin sdi.data(dbits*2-1 downto 0), sdo.data(dbits*2-1 downto 0), sdo.dqm(dbits/4-1 downto 0), sdo.bdrive, sdo.bdrive, sdo.qdrive, sdo.rasn, sdo.casn, sdo.sdwen, sdo.sdcsn, sdo.sdcke, sdo.sdck(2 downto 0), sdo.moben, - sdi.datavalid); + sdi.datavalid, gnd, vcc, gnd, vcc); drvdata : if dbits < 64 generate sdi.data(127 downto dbits*2) <= (others => '0'); @@ -198,9 +201,13 @@ architecture rtl of ddrphy_wrap_cbd is signal odt,csn,cke: std_logic_vector(ncs-1 downto 0); signal sdck: std_logic_vector(nclk-1 downto 0); + + signal gnd, vcc : std_ulogic; begin + gnd <= '0'; vcc <= '1'; + -- Merge checkbit and data buses comb: process(sdo,dqin) variable dq: std_logic_vector(2*dbits-1 downto 0); @@ -216,7 +223,7 @@ begin variable vcsn,vcke: std_logic_vector(ncs-1 downto 0); variable vsdck: std_logic_vector(nclk-1 downto 0); begin - + dq := sdo.data(2*dbits-1 downto 0); dqpad := ddr_widthconv(dq, dbits+padbits ); if chkbits > 0 then @@ -298,7 +305,8 @@ begin sdo.address(1+abits downto 2), sdo.ba(1 downto 0), dqin, dqout, dqm, sdo.bdrive, sdo.bdrive, sdo.qdrive, - sdo.rasn, sdo.casn, sdo.sdwen, csn, cke, sdck, sdo.moben,sdi.datavalid); + sdo.rasn, sdo.casn, sdo.sdwen, csn, cke, sdck, sdo.moben,sdi.datavalid, + gnd, vcc, gnd, vcc); sdi.regrdata <= (others => '0'); @@ -404,10 +412,11 @@ architecture rtl of ddrphy_wrap_cbd_wo_pads is signal sdck: std_logic_vector(nclk-1 downto 0); signal gnd : std_logic_vector(chkbits*2-1 downto 0); + signal vcc : std_ulogic; begin - gnd <= (others => '0'); + gnd <= (others => '0'); vcc <= '1'; -- Merge checkbit and data buses comb: process(sdo,dqin) @@ -507,7 +516,8 @@ begin addr => sdo.address(1+abits downto 2), ba => sdo.ba(1 downto 0), dqin => dqin, dqout => dqout, dm => dqm, oen => sdo.bdrive, dqs => sdo.bdrive, dqsoen => sdo.qdrive, rasn => sdo.rasn, casn => sdo.casn, wen => sdo.sdwen, csn => csn, - cke => cke, ck => sdck, moben => sdo.moben, dqvalid => sdi.datavalid + cke => cke, ck => sdck, moben => sdo.moben, dqvalid => sdi.datavalid, + testen => gnd(0), testrst => vcc, scanen => gnd(0), testoen => vcc ); sdi.regrdata <= (others => '0'); @@ -794,9 +804,13 @@ architecture rtl of ddr2phy_wrap_cbd is signal cal_inc: std_logic_vector((chkbits+dbits+padbits)/8-1 downto 0); signal odt,csn,cke: std_logic_vector(ncs-1 downto 0); + + signal gnd, vcc : std_ulogic; begin + gnd <= '0'; vcc <= '1'; + -- Merge checkbit and data buses comb: process(sdo,dqin) variable dq: std_logic_vector(2*dbits-1 downto 0); @@ -903,7 +917,8 @@ begin sdo.regwdata, sdo.regwrite, sdi.regrdata, sdi.datavalid, customclk, customdin, customdout, - ddr_web2, ddr_rasb2, ddr_casb2, ddr_ad2, ddr_ba2 + ddr_web2, ddr_rasb2, ddr_casb2, ddr_ad2, ddr_ba2, + gnd, vcc, gnd, vcc ); end; @@ -1027,10 +1042,11 @@ architecture rtl of ddr2phy_wrap_cbd_wo_pads is signal odt,csn,cke: std_logic_vector(ncs-1 downto 0); signal gnd : std_logic_vector(chkbits*2-1 downto 0); + signal vcc : std_logic; begin - gnd <= (others => '0'); + gnd <= (others => '0'); vcc <= '1'; -- Merge checkbit and data buses comb: process(sdo,dqin) @@ -1138,6 +1154,7 @@ begin cke => cke, cal_en => cal_en, cal_inc => cal_inc, cal_pll => sdo.cal_pll, cal_rst => sdo.cal_rst, odt => odt, oct => sdo.oct, read_pend => sdo.read_pend, regwdata => sdo.regwdata, regwrite => sdo.regwrite, regrdata => sdi.regrdata, dqin_valid => sdi.datavalid, - customclk => customclk, customdin => customdin, customdout => customdout + customclk => customclk, customdin => customdin, customdout => customdout, + testen => gnd(0), testrst => vcc, scanen => gnd(0), testoen => vcc ); end; diff --git a/lib/gaisler/ddrv1/ddrpkg.vhd b/lib/gaisler/ddrv1/ddrpkg.vhd index 80f865d4..dac34e76 100644 --- a/lib/gaisler/ddrv1/ddrpkg.vhd +++ b/lib/gaisler/ddrv1/ddrpkg.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/ddrv1/ddrrec.vhd b/lib/gaisler/ddrv1/ddrrec.vhd index e73b81aa..bf64f6ab 100644 --- a/lib/gaisler/ddrv1/ddrrec.vhd +++ b/lib/gaisler/ddrv1/ddrrec.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/ddrv1/ddrsp.vhd b/lib/gaisler/ddrv1/ddrsp.vhd index bdfb252e..06b307d1 100644 --- a/lib/gaisler/ddrv1/ddrsp.vhd +++ b/lib/gaisler/ddrv1/ddrsp.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -505,7 +505,6 @@ begin ahbso.hready <= r.hready; ahbso.hresp <= r.hresp; ahbso.hrdata <= ahbdrivedata(dout); - ahbso.hcache <= not r.hio; end process; diff --git a/lib/gaisler/ddrv1/ddrsp16a.vhd b/lib/gaisler/ddrv1/ddrsp16a.vhd index 387e8da2..9360e258 100644 --- a/lib/gaisler/ddrv1/ddrsp16a.vhd +++ b/lib/gaisler/ddrv1/ddrsp16a.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -293,7 +293,6 @@ begin ahbso.hready <= ra.hready; ahbso.hresp <= ra.hresp; ahbso.hrdata <= ahbdrivedata(ra.hrdata); - ahbso.hcache <= not ra.hio; end process; diff --git a/lib/gaisler/ddrv1/ddrsp32a.vhd b/lib/gaisler/ddrv1/ddrsp32a.vhd index cc78e456..7b5a892d 100644 --- a/lib/gaisler/ddrv1/ddrsp32a.vhd +++ b/lib/gaisler/ddrv1/ddrsp32a.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -313,7 +313,6 @@ begin ahbso.hready <= ra.hready; ahbso.hresp <= ra.hresp; ahbso.hrdata <= ahbdrivedata(ra.hrdata); - ahbso.hcache <= not ra.hio; end process; diff --git a/lib/gaisler/ddrv1/ddrsp64a.vhd b/lib/gaisler/ddrv1/ddrsp64a.vhd index 00732312..5be34d6b 100644 --- a/lib/gaisler/ddrv1/ddrsp64a.vhd +++ b/lib/gaisler/ddrv1/ddrsp64a.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -321,7 +321,6 @@ begin ahbso.hready <= ra.hready; ahbso.hresp <= ra.hresp; ahbso.hrdata <= ahbdrivedata(ra.hrdata); - ahbso.hcache <= not ra.hio; end process; diff --git a/lib/gaisler/ddrv1/ddrspa.vhd b/lib/gaisler/ddrv1/ddrspa.vhd index 5539225f..8feaf538 100644 --- a/lib/gaisler/ddrv1/ddrspa.vhd +++ b/lib/gaisler/ddrv1/ddrspa.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/ddrv1/hs.vhd b/lib/gaisler/ddrv1/hs.vhd index 67d33b21..13a7b99d 100644 --- a/lib/gaisler/ddrv1/hs.vhd +++ b/lib/gaisler/ddrv1/hs.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/ddrv1/vhdlsyn.txt b/lib/gaisler/ddrv1/vhdlsyn.txt new file mode 100644 index 00000000..24605095 --- /dev/null +++ b/lib/gaisler/ddrv1/vhdlsyn.txt @@ -0,0 +1,16 @@ +#ddrrec.vhd +#hs.vhd +#ahb_slv.vhd +#ddrctrl.vhd +ddrpkg.vhd +ddrphy_wrap.vhd +#ddrsp.vhd +ddrsp16a.vhd +ddrsp32a.vhd +ddrsp64a.vhd +ddrspa.vhd +ddr2sp64a.vhd +ddr2sp32a.vhd +ddr2sp16a.vhd +ddr2spa.vhd + diff --git a/lib/gaisler/dirs.txt b/lib/gaisler/dirs.txt index 172da1ef..54a91a8e 100644 --- a/lib/gaisler/dirs.txt +++ b/lib/gaisler/dirs.txt @@ -2,16 +2,11 @@ devices arith memctrl grfpu grlfpu grfpc grlfpc -#grfpcft -#grlfpcft +grfpcft grlfpcft grfpc4 grlfpc4 srmmu -leon3 -leon3v2 -#leon3v0 -#leon3v1 -#leon3ftv2 -leon4 leon4b64 +leon3 leon3v1 leon3ftv2 +leon4 leon4v0 irqmp l2cache can @@ -30,13 +25,10 @@ spacewire usb ddr crypto -ata satcan slink ascs pwm -haps -coremp7 gr1553b gr1553b/core iommu diff --git a/lib/gaisler/gr1553b/gr1553b_pads.vhd b/lib/gaisler/gr1553b/gr1553b_pads.vhd index cce2d5c3..17448245 100644 --- a/lib/gaisler/gr1553b/gr1553b_pads.vhd +++ b/lib/gaisler/gr1553b/gr1553b_pads.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/gr1553b/gr1553b_pkg.vhd b/lib/gaisler/gr1553b/gr1553b_pkg.vhd index 8a186ed9..4302b795 100644 --- a/lib/gaisler/gr1553b/gr1553b_pkg.vhd +++ b/lib/gaisler/gr1553b/gr1553b_pkg.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/gr1553b/gr1553b_stdlogic.vhd b/lib/gaisler/gr1553b/gr1553b_stdlogic.vhd index b3a7897d..16ea8d12 100644 --- a/lib/gaisler/gr1553b/gr1553b_stdlogic.vhd +++ b/lib/gaisler/gr1553b/gr1553b_stdlogic.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -151,7 +151,6 @@ begin mi.hready <= mi_hready; mi.hresp <= mi_hresp; mi.hrdata <= ahbdrivedata(mi_hrdata); - mi.hcache <= '0'; mi.hirq <= (others => '0'); mi.testen <= '0'; mi.testrst <= '0'; diff --git a/lib/gaisler/gr1553b/simtrans1553.vhd b/lib/gaisler/gr1553b/simtrans1553.vhd index 9f729460..6ee4a532 100644 --- a/lib/gaisler/gr1553b/simtrans1553.vhd +++ b/lib/gaisler/gr1553b/simtrans1553.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/gr1553bv1/core/gr1553b.vhd b/lib/gaisler/gr1553bv1/core/gr1553b.vhd deleted file mode 100644 index 8843e66e..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b.vhd +++ /dev/null @@ -1,567 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b --- File: gr1553b.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B BC/RT/BM core top level ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.devices.all; -use grlib.stdlib.all; -use work.gr1553b_pkg.all; -use work.gr1553b_core.all; - -entity gr1553b is - generic( - -- AHB config - hindex: integer := 0; - -- APB config - pindex : integer := 0; - paddr: integer := 0; - pmask : integer := 16#fff#; - pirq : integer := 0; - -- 1553B features/options - bc_enable: integer range 0 to 1 := 1; - rt_enable: integer range 0 to 1 := 1; - bm_enable: integer range 0 to 1 := 1; - bc_timer: integer range 0 to 2 := 1; - bc_rtbusmask: integer range 0 to 1 := 1; - extra_regkeys: integer range 0 to 1 := 0; - syncrst: integer range 0 to 2 := 1; - ahbendian: integer range 0 to 1 := 0; - bm_filters: integer range 0 to 1 := 1 - ); - port( - -- AMBA clock domain signals - clk: in std_logic; - rst: in std_logic; - ahbmi: in ahb_mst_in_type; - ahbmo: out ahb_mst_out_type; - apbsi: in apb_slv_in_type; - apbso: out apb_slv_out_type; - - auxin: in gr1553b_auxin_type; - auxout: out gr1553b_auxout_type; - - -- Codec clock domain signals - codec_clk: in std_logic; - codec_rst: in std_logic; - - txout: out gr1553b_txout_type; - txout_fb: in gr1553b_txout_type; - - -- Asynchronous "1553 domain" signals - rxin: in gr1553b_rxin_type - - ); - attribute sync_set_reset of rst : signal is "true"; -end; - -------------------------------------------------------------------------------- --- Design entity hierarchy: --- gr1553b --- +-- gr1553b_apb --- +-- gr1553b_dma2 --- | --- +-- gr1553b_bc_control --- +-- gr1553b_bc_proto --- +-- gr1553b_rt_control --- +-- gr1553b_rt_proto --- +-- gr1553b_bm --- +-- gr1553b_codec --- | +-- gr1553b_rx_* --- | +-- gr1553b_tx_* --- | +-- gr1553b_loopback --- | --- +-- gr1553b_mhztick --- +-- gr1553b_fstimer --- -------------------------------------------------------------------------------- - -architecture rtl of gr1553b is - - - -- If some part of the core is modified in some (unspecified) way - -- which alters functionality, please set this boolean to true. This - -- will turn on a bit in the HW configuration register so the change - -- can be detected from software for diagnostics. - constant core_modified: boolean := false; - - - constant sameclk: integer range 0 to 1 := 0; - constant codec_clk_freq_mhz: integer := 20; - constant little_endian: boolean := (ahbendian = 1); - - constant venid: integer := VENDOR_GAISLER; - constant devid: integer := GAISLER_GR1553B; - constant version: integer := gr1553b_version; - constant cfgver: integer := gr1553b_cfgver; - - signal bcct_ins: gr1553b_bc_control_in; - signal bcct_outs: gr1553b_bc_control_out; - signal bc_dmai: gr1553b_dma2_in_bc; - signal bcct_topr: gr1553b_bc_proto_in; - signal bcct_frompr: gr1553b_bc_proto_out; - signal bcpr_ustick,bcpr_usrestart,bcpr_usclear: std_logic; - signal bcct_ustick,bcct_usrestart,bcct_usclear: std_logic; - - signal rtct_ins: gr1553b_rt_control_in; - signal rtct_outs: gr1553b_rt_control_out; - signal rt_dmai: gr1553b_dma2_in_rt; - signal rtct_proti: gr1553b_rt_proto_in; - signal rtct_proto: gr1553b_rt_proto_out; - signal rtpr_ustimer_restart,rtpr_ustimer_clear,rtpr_ustimer_tick: std_logic; - - signal bmct_ins: gr1553b_bm_in; - signal bmct_outs: gr1553b_bm_out; - signal bm_dmai: gr1553b_dma2_in_bm; - - signal dmai: gr1553b_dma2_in; - signal dmao: gr1553b_dma2_out; - - signal bcpr_toll, rtpr_toll: gr1553b_codec_in; - signal ll_ins: gr1553b_codec_in; - signal fromll: gr1553b_codec_out; - signal ll_bmtap: gr1553b_bm_tap; - - signal rt_run,bc_run,bm_run: std_logic; - - signal rtts_tick, rtts_restart, rtts_clear: std_logic; - - signal busA_timeout, busB_timeout: std_logic; - - signal validcmdA_i, validcmdB_i: std_logic; - - signal rt_bussync, rt_busreset: std_logic; -begin - - auxout.rtsync <= rt_bussync; - auxout.busreset <= rt_busreset; - auxout.validcmdA <= validcmdA_i; - auxout.validcmdB <= validcmdB_i; - auxout.timedoutA <= busA_timeout; - auxout.timedoutB <= busB_timeout; - validcmdA_i <= rtct_outs.validcmdA or bcct_outs.validcmdA; - validcmdB_i <= rtct_outs.validcmdB or bcct_outs.validcmdB; - - ----------------------------------------------------------------------------- - -- Bus controller components - - bc_gen: if bc_enable=1 generate - - bcct: gr1553b_bc_control - generic map ( - cond_en => true, - rtmask_en => bc_rtbusmask /= 0, - syncrst => syncrst - ) - port map( - clk => clk, - rst => rst, - ins => bcct_ins, - outs => bcct_outs, - dmai => bc_dmai, - dmao => dmao, - us_restart => bcct_usrestart, - us_clear => bcct_usclear, - us_tick => bcct_ustick, - proti => bcct_topr, - proto => bcct_frompr - ); - - bcpr: gr1553b_bc_proto - generic map (syncrst => syncrst) - port map ( - clk => clk, - rst => rst, - ins => bcct_topr, - outs => bcct_frompr, - us_restart => bcpr_usrestart, - us_clear => bcpr_usclear, - us_tick => bcpr_ustick, - toll => bcpr_toll, - fromll => fromll - ); - - bccttm: gr1553b_mhztick - generic map ( - timeclk_freq_mhz => codec_clk_freq_mhz, - sameclk => sameclk, - syncrst => syncrst - ) - port map ( - clk => clk, - rst => rst, - restart => bcct_usrestart, - tick => bcct_ustick, - clear => bcct_usclear, - timeclk => codec_clk, - timerst => codec_rst - ); - - bcprtm: gr1553b_mhztick - generic map ( - timeclk_freq_mhz => codec_clk_freq_mhz, - sameclk => sameclk, - syncrst => syncrst - ) - port map ( - clk => clk, - rst => rst, - restart => bcpr_usrestart, - tick => bcpr_ustick, - clear => bcpr_usclear, - timeclk => codec_clk, - timerst => codec_rst - ); - end generate; - - bc_ngen: if bc_enable=0 generate - bcpr_toll <= gr1553b_codec_in_zero; - bc_dmai <= gr1553b_dma2_in_bc_zero; - bcct_outs <= (sched_state => "000", async_state => "000", sched_current_pos => (others=>'0'), - async_current_pos => (others=>'0'), - schem_time => (others=>'0'), user_irq=>'0', user_irq_addr => (others=>'0'), - dmaerror_next=>'0',user_irq_next => '0', validcmdA => '0', validcmdB => '0', - sched_next_pos => (others => '0'), async_next_pos => (others => '0'), - rt_busmask => (others => '0')); - bcct_topr <= gr1553b_bc_proto_in_zero; - bcct_frompr <= gr1553b_bc_proto_out_zero; - bcpr_ustick <= '0'; - bcpr_usrestart <= '0'; - bcpr_usclear <= '1'; - bcct_ustick <= '0'; - bcct_usrestart <= '0'; - bcct_usclear <= '1'; - end generate; - - ----------------------------------------------------------------------------- - -- Remote terminal components - - rt_gen: if rt_enable=1 generate - - rtct: gr1553b_rt_control - generic map ( - syncrst => syncrst - ) - port map ( - clk => clk, - rst => rst, - ins => rtct_ins, - outs => rtct_outs, - dmai => rt_dmai, - dmao => dmao, - proti => rtct_proti, - proto => rtct_proto - ); - - rtpr: gr1553b_rt_proto - generic map (syncrst => syncrst) - port map ( - clk => clk, - rst => rst, - ins => rtct_proti, - outs => rtct_proto, - us_tick => rtpr_ustimer_tick, - us_restart => rtpr_ustimer_restart, - us_clear => rtpr_ustimer_clear, - toll => rtpr_toll, - fromll => fromll - ); - - rtprtm: gr1553b_mhztick - generic map ( - timeclk_freq_mhz => codec_clk_freq_mhz, - sameclk => sameclk, - syncrst => syncrst - ) - port map ( - clk => clk, - rst => rst, - restart => rtpr_ustimer_restart, - clear => rtpr_ustimer_clear, - tick => rtpr_ustimer_tick, - timeclk => codec_clk, - timerst => codec_rst - ); - - end generate; - - rt_ngen: if rt_enable=0 generate - rtpr_toll <= (bussel => '0', anybus => '0', txstart => '0', txdata => (t => CMD_STAT, data => (others=>'0')), - txabort => '0'); - rtct_proti <= gr1553b_rt_proto_in_zero; - rtct_proto <= gr1553b_rt_proto_out_zero; - rt_dmai <= gr1553b_dma2_in_rt_zero; - rtct_outs <= (dmaerror => '0', gotirq => '0', - bussync_nodata => '0', bussync_data => '0', bussync_word => (others => '0'), busreset => '0', - shutdownA => '0', shutdownB => '0', active => '0', - modecode_mask => (others => '0'), - subaddr_table_base => (others=>'0'), irq_log_addr => (others => '0'), - log_mask => (others => '0'), - log_cur_addr => (others => '0'), - dmaerror_next => '0', gotirq_next => '0', validcmdA => '0', validcmdB => '0', - bussync_time => (others => '0'), descerror => '0', descerror_next => '0' - ); - rtpr_ustimer_restart <= '0'; - rtpr_ustimer_clear <= '1'; - rtpr_ustimer_tick <= '0'; - end generate; - - ----------------------------------------------------------------------------- - -- Bus monitor components - - bm_gen: if bm_enable=1 generate - bmct: gr1553b_bm - generic map ( - filters => bm_filters, - syncrst => syncrst - ) - port map ( - clk => clk, - rst => rst, - ins => bmct_ins, - outs => bmct_outs, - busdata => ll_bmtap, - dmai => bm_dmai, - dmao => dmao - ); - end generate; - - bm_ngen: if bm_enable=0 generate - bm_dmai <= gr1553b_dma2_in_bm_zero; - bmct_outs <= (dmaerror_next => '0', outbuf_start => (others => '0'), - outbuf_end => (others => '0'), outbuf_pos => (others => '0'), - rtaddr_filter => (others => '0'), subaddr_filter => (others => '0'), - modecode_filter => (others => '0'), dmaerror => '0', wrapping => '0'); - end generate; - - ----------------------------------------------------------------------------- - -- Common components - - ll: gr1553b_codec - generic map( - codec_clk_freq_mhz => codec_clk_freq_mhz, - sameclk => sameclk, - rx_synclength => 2, - syncrst => syncrst - ) - port map ( - clk => clk, - rst => rst, - ins => ll_ins, - outs => fromll, - bmtap => ll_bmtap, - shutdownA => rtct_outs.shutdownA, - shutdownB => rtct_outs.shutdownB, - codec_clk => codec_clk, - codec_rst => codec_rst, - busA_tx_pos => txout.busA_txP, - busA_tx_neg => txout.busA_txN, - busA_rx_pos => rxin.busA_rxP, - busA_rx_neg => rxin.busA_rxN, - busB_tx_pos => txout.busB_txP, - busB_tx_neg => txout.busB_txN, - busB_rx_pos => rxin.busB_rxP, - busB_rx_neg => rxin.busB_rxN - ); - - fstA: gr1553b_fstimer - generic map ( - tx_clk_freq_mhz => codec_clk_freq_mhz, - sameclk => sameclk, - syncrst => syncrst - ) - port map ( - tx_clk => codec_clk, - tx_rst => codec_rst, - txP => txout_fb.busA_txP, - txN => txout_fb.busA_txN, - timeout => busA_timeout, - validcmd_clk => clk, - validcmd_rst => rst, - validcmd => validcmdA_i - ); - - fstB: gr1553b_fstimer - generic map ( - tx_clk_freq_mhz => codec_clk_freq_mhz, - sameclk => sameclk, - syncrst => syncrst - ) - port map ( - tx_clk => codec_clk, - tx_rst => codec_rst, - txP => txout_fb.busB_txP, - txN => txout_fb.busB_txN, - timeout => busB_timeout, - validcmd_clk => clk, - validcmd_rst => rst, - validcmd => validcmdB_i - ); - - dma0: gr1553b_dma2 - generic map ( - hindex => hindex, - syncrst => syncrst, - endian => ahbendian, - ahbreqreg => 0 - ) - port map ( - clk => clk, - rst => rst, - ahbmi => ahbmi, - ahbmo => ahbmo, - ins => dmai, - outs => dmao - ); - - iface0: gr1553b_apb - generic map ( - pindex => pindex, - paddr => paddr, - pmask => pmask, - pirq => pirq, - venid => venid, - devid => devid, - version => version, - cfgver => 0, - rt_enable => rt_enable, - bc_enable => bc_enable, - bm_enable => bm_enable, - codec_clk_freq_mhz => codec_clk_freq_mhz, - sameclk => sameclk, - schemtime_en => bc_timer >= 1, - wakeup_en => bc_timer >= 2, - rtbusmask_en => bc_rtbusmask /= 0, - extrakeyen => extra_regkeys, - endianness => ahbendian, - bm_filters => bm_filters, - core_modified => core_modified, - syncrst => syncrst - ) - port map ( - clk => clk, - rst => rst, - apbsi => apbsi, - apbso => apbso, - bcct_outs => bcct_outs, - rtct_outs => rtct_outs, - bmct_outs => bmct_outs, - bcct_in => bcct_ins, - bc_extsync => auxin.extsync, - rtaddr => auxin.rtaddr, - rtaddrpar => auxin.rtpar, - rtct_in => rtct_ins, - rtts_tick => rtts_tick, - rtts_restart => rtts_restart, - rtts_clear => rtts_clear, - bmct_in => bmct_ins, - badreg => auxout.badreg, - xirqvec => auxout.irqvec, - rt_run => rt_run, - bc_run => bc_run, - bm_run => bm_run, - rt_sync => rt_bussync, - rt_busreset => rt_busreset - ); - - apbtickgen: if rt_enable=1 or bm_enable=1 generate - rttstm: gr1553b_mhztick - generic map ( - timeclk_freq_mhz => codec_clk_freq_mhz, - sameclk => sameclk, - syncrst => syncrst - ) - port map ( - clk => clk, - rst => rst, - restart => rtts_restart, - clear => rtts_clear, - tick => rtts_tick, - timeclk => codec_clk, - timerst => codec_rst - ); - end generate; - apbtickngen: if not (rt_enable=1 or bm_enable=1) generate - rtts_tick <= '0'; - rtts_restart <= '0'; - rtts_clear <= '1'; - end generate; - - ----------------------------------------------------------------------------- - -- Glue logic - - comb: process(bc_dmai,rt_dmai,bm_dmai,bcpr_toll,rtpr_toll,rt_run,bc_run,rtct_outs, - busA_timeout,busB_timeout,bm_run,rst) - variable vdmai: gr1553b_dma2_in; - variable vllin: gr1553b_codec_in; - variable vbusA_txen, vbusB_txen, vbusA_rxen, vbusB_rxen: std_logic; - begin - - -- dma FSM input - vdmai := (bc => bc_dmai, rt => rt_dmai, bm => bm_dmai, pushdata => fromll.rxword.data); - dmai <= vdmai; - - -- codec inputs - vllin := bcpr_toll; - if rt_run='1' and (bc_run='0' or bc_enable=0) then - vllin := rtpr_toll; - end if; - ll_ins <= vllin; - - -- tx enable outputs - vbusA_txen := '1'; - vbusB_txen := '1'; - vbusA_rxen := '1'; - vbusB_rxen := '1'; - - if bc_run='0' and (rt_run='0' or rtct_outs.shutdownA='1') then - vbusA_txen := '0'; - end if; - if bc_run='0' and (rt_run='0' or rtct_outs.shutdownB='1') then - vbusB_txen := '0'; - end if; - if bm_run='0' or bm_enable=0 then - vbusA_rxen := vbusA_txen; - vbusB_rxen := vbusB_txen; - end if; - - -- Avoid enabling the transmitter before sync reset has been clocked in - if syncrst /= 0 then - if rst='0' then - vbusA_txen := '0'; - vbusB_txen := '0'; - end if; - end if; - - txout.busA_txen <= vbusA_txen and not busA_timeout; - txout.busB_txen <= vbusB_txen and not busB_timeout; - txout.busA_txin <= not (vbusA_txen and not busA_timeout); - txout.busB_txin <= not (vbusB_txen and not busB_timeout); - txout.busA_rxen <= vbusA_rxen; - txout.busB_rxen <= vbusB_rxen; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_apb.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_apb.vhd deleted file mode 100644 index ccd92733..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_apb.vhd +++ /dev/null @@ -1,705 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_apb --- File: gr1553b_apb.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B APB user interface --- Also contains glue logic for the auxin/out signals and IRQ, --- plus manages the time tag counters for RT/BM ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -library grlib; -use grlib.amba.all; -use grlib.devices.all; -use grlib.stdlib.notx; -use work.gr1553b_core.all; - -entity gr1553b_apb is - generic ( - pindex : integer := 0; - paddr: integer := 0; - pmask : integer := 16#fff#; - pirq : integer := 0; - venid: integer; - devid: integer; - cfgver: integer; - version: integer; - rt_enable: integer range 0 to 1; - bc_enable: integer range 0 to 1; - bm_enable: integer range 0 to 1; - codec_clk_freq_mhz: integer; - sameclk: integer range 0 to 1; - schemtime_en: boolean := false; - wakeup_en: boolean := false; - rtbusmask_en: boolean; - extrakeyen: integer range 0 to 1; - endianness: integer; - bm_filters: integer; - core_modified: boolean; - syncrst: integer range 0 to 2 - ); - port ( - clk: in std_logic; - rst: in std_logic; - - apbsi: in apb_slv_in_type; - apbso: out apb_slv_out_type; - - bcct_outs: in gr1553b_bc_control_out; - rtct_outs: in gr1553b_rt_control_out; - bmct_outs: in gr1553b_bm_out; - - bcct_in: out gr1553b_bc_control_in; - rtct_in: out gr1553b_rt_control_in; - bmct_in: out gr1553b_bm_in; - bc_extsync: in std_logic; - rtaddr: in std_logic_vector(4 downto 0); - rtaddrpar: in std_logic; - rt_sync: out std_logic; - rt_busreset: out std_logic; - - rtts_tick: in std_logic; - rtts_restart: out std_logic; - rtts_clear: out std_logic; - - badreg: out std_logic; - xirqvec: out std_logic_vector(7 downto 0); - - rt_run: out std_logic; - bc_run: out std_logic; - bm_run: out std_logic - ); -end; - -architecture rtl of gr1553b_apb is - - type apbiface_regs is record - irq_enable_bc: std_logic_vector(2 downto 0); - irq_enable_rt: std_logic_vector(2 downto 0); - irq_enable_bm: std_logic_vector(1 downto 0); - bc_timed_irq: std_logic; - bc_dmaerror: std_logic; - bc_wakeup_time: std_logic_vector(23 downto 0); - bc_wakeup_enable: std_logic; - bc_syncreg: std_logic_vector(0 to 2); - bc_check_broadcast: std_logic; - in_rtaddr_reg: std_logic_vector(4 downto 0); - in_rtpar_reg: std_logic; - rt_enable_reg: std_logic; - rt_addr: std_logic_vector(4 downto 0); - rt_addr_par_ok: std_logic; - rt_addr_checked: std_logic_vector(1 downto 0); - rt_statusbits: std_logic_vector(4 downto 0); - rt_timetag_res: unsigned(15 downto 0); - rt_timetag_value: unsigned(15 downto 0); - rt_timetag_ctr: unsigned(15 downto 0); - rt_vector_word: std_logic_vector(15 downto 0); - rt_BIT_word: std_logic_vector(15 downto 0); - rt_set_tf: std_logic; - rt_syncsig_enable: std_logic; - rt_syncdatasig_enable: std_logic; - rt_sync: std_logic; - rt_busreset_enable: std_logic; - rt_busreset: std_logic; - bm_timetag_res: unsigned(7 downto 0); - bm_timetag_value: unsigned(23 downto 0); - bm_timetag_ctr: unsigned(7 downto 0); - bm_enable: std_logic; - bm_log_errors: std_logic; - bm_log_stray_data: std_logic; - bm_log_reserved_mcs: std_logic; - bm_timer_overflow: std_logic; - bm_syncstart: std_logic; - bm_wrapstop: std_logic; - pirq: std_logic; - badreg: std_logic; - xirqv: std_logic_vector(7 downto 0); - end record; - - constant pconfig: apb_config_type := ( - 0 => ahb_device_reg ( venid, devid, cfgver, version, pirq ), - 1 => apb_iobar(paddr, pmask)); - - constant r_rst: apbiface_regs := - (irq_enable_bc => "000",irq_enable_rt => "000",irq_enable_bm => "00", - bc_timed_irq => '0',bc_dmaerror => '0',bc_wakeup_time => (others => '0'), - bc_syncreg => "000",bc_check_broadcast => '0',rt_enable_reg => '0', - rt_addr => (others => '1'),rt_addr_par_ok => '0',rt_addr_checked => "00",rt_statusbits => (others => '0'), - rt_timetag_res => (others => '0'),rt_timetag_value => (others => '0'), - rt_vector_word => (others=>'0'),rt_bit_word => (others=>'0'),rt_set_tf => '0', - rt_syncsig_enable => '1',rt_syncdatasig_enable => '1',rt_busreset_enable => '1', - bc_wakeup_enable => '0',rt_timetag_ctr => (others => '0'),bm_timetag_res => (others => '0'), - bm_timetag_value => (others => '0'),bm_timetag_ctr => (others => '0'), - bm_enable => '0',bm_log_errors => '0',bm_log_stray_data => '0',bm_log_reserved_mcs => '0', - bm_timer_overflow => '0', bm_syncstart => '0', bm_wrapstop => '0', - pirq => '0', badreg => '0', - in_rtaddr_reg => "11111", in_rtpar_reg => '1', rt_sync => '0', rt_busreset => '0', - xirqv => (others => '0') - ); - - signal r,nr: apbiface_regs; - -begin - - apbso.pindex <= pindex; - apbso.pconfig <= pconfig; - - comb: process(rst,apbsi,bcct_outs,rtct_outs,bmct_outs,r,rtts_tick,bc_extsync,rtaddr,rtaddrpar) - variable rddata: std_logic_vector(31 downto 0); - variable wrdata: std_logic_vector(31 downto 0); - variable vpirq: std_logic_vector(NAHBIRQ-1 downto 0); - variable virq: std_logic; - variable do_write,bc_write,rt_write,bm_write,do_read: boolean; - variable irqack: std_logic_vector(6 downto 0); - variable vnr: apbiface_regs; - variable vbcct_in: gr1553b_bc_control_in; - variable vrtct_in: gr1553b_rt_control_in; - variable vbmct_in: gr1553b_bm_in; - variable vbc_run,vrt_run: std_logic; - variable vus_restart,vus_clear,bm_timerreg_set: std_logic; - variable bc_outbuf_pos_before: std_logic; - variable extsync_edge: std_logic; - begin - vpirq := (others=>'0'); - rddata := (others=>'0'); - wrdata := apbsi.pwdata; - irqack := (others=>'0'); - virq := '0'; - do_write := false; - bc_write := false; - rt_write := false; - do_read := false; - vnr := r; - vnr.xirqv := (others => '0'); - vbc_run := '0'; - vrt_run := '0'; - vus_restart := '0'; - vus_clear := '0'; - bm_timerreg_set := '0'; - bc_outbuf_pos_before := '0'; - vbcct_in := ( - sched_start => '0', sched_stop => '0', sched_pause => '0', - sched_trig => '0', sched_trig_clear => '0', - async_start => '0', async_stop => '0', - user_input => apbsi.pwdata, - set_schem_addr => '0', set_async_addr => '0', user_irq_ack => '0', set_logbuf_pos => '0', - set_rt_busmask => '0', fast_broadcast => not r.bc_check_broadcast); - vrtct_in := ( - rt_enable => '0', rt_stop => '0', rt_addr => r.rt_addr, allow_bc => '1', - statusbits => r.rt_statusbits, - timer_value => std_logic_vector(r.rt_timetag_value), - dmaerror_ack => '0', irqack => '0', descerror_ack => '0', - user_input => apbsi.pwdata, - vector_word => r.rt_vector_word, bit_word => r.rt_bit_word, - set_modecode_mask => '0', - set_subaddr_table_base => '0', - set_log_mask => '0', set_log_cur_addr => '0'); - vbmct_in := ( - enable => r.bm_enable, timeval => std_logic_vector(r.bm_timetag_value), - log_errors => r.bm_log_errors, log_stray_data => r.bm_log_stray_data, log_reserved_mcs => r.bm_log_reserved_mcs, - set_outbuf_start => '0', set_outbuf_end => '0', set_outbuf_pos => '0', set_rtaddr_filter => '0', - set_subaddr_filter => '0', set_modecode_filter => '0', user_input => apbsi.pwdata, dmaerror_ack => '0'); - vnr.badreg := '0'; - - vnr.rt_sync := (rtct_outs.bussync_nodata and r.rt_syncsig_enable) or (rtct_outs.bussync_data and r.rt_syncdatasig_enable); - - vnr.rt_busreset := rtct_outs.busreset and r.rt_busreset_enable; - - -- Resync / edge detect BC sync pulse - vnr.bc_syncreg := r.bc_syncreg(1 to 2) & bc_extsync; - if r.bc_syncreg(0 to 1)="01" then - extsync_edge := '1'; - else - extsync_edge := '0'; - end if; - - if r.rt_enable_reg = '1' then - vrt_run := '1'; - vrtct_in.rt_enable := '1'; - end if; - if bcct_outs.sched_state /= "000" or bcct_outs.async_state /= "000" then - vbc_run := '1'; - vrtct_in.rt_stop := '1'; - end if; - - if apbsi.penable='1' and apbsi.psel(pindex)='1' then - if apbsi.pwrite='1' then - do_write := true; - else - do_read := true; - end if; - end if; - bc_write := do_write and bc_enable=1; - rt_write := do_write and rt_enable=1; - bm_write := do_write and bm_enable=1; - - -- APB address decode - case apbsi.paddr(7 downto 6) is - - -- Common regs - when "00" => - case apbsi.paddr(5 downto 2) is - when "0000" => -- IRQ status (read)/ack (write) - rddata(0) := bcct_outs.user_irq; - rddata(1) := r.bc_dmaerror; - rddata(2) := r.bc_timed_irq; - rddata(8) := rtct_outs.gotirq; - rddata(9) := rtct_outs.dmaerror; - rddata(10) := rtct_outs.descerror; - rddata(16) := bmct_outs.dmaerror; - rddata(17) := r.bm_timer_overflow; - if do_write then - vbcct_in.user_irq_ack := wrdata(0); - if wrdata(1)='1' then vnr.bc_dmaerror:='0'; end if; - if wrdata(2)='1' then vnr.bc_timed_irq:='0'; end if; - vrtct_in.irqack := wrdata(8); - vrtct_in.dmaerror_ack := wrdata(9); - vrtct_in.descerror_ack := wrdata(10); - vbmct_in.dmaerror_ack:=wrdata(16); - if wrdata(17)='1' then vnr.bm_timer_overflow:='0'; end if; - end if; - - when "0001" => -- IRQ enable reg - rddata(2 downto 0) := r.irq_enable_bc; - rddata(10 downto 8) := r.irq_enable_rt; - rddata(17 downto 16) := r.irq_enable_bm; - - if not wakeup_en then rddata(2):='0'; end if; - - if do_write then - if bc_enable=1 then - vnr.irq_enable_bc := wrdata(2 downto 0); - end if; - if rt_enable=1 then - vnr.irq_enable_rt := wrdata(10 downto 8); - end if; - if bm_enable=1 then - vnr.irq_enable_bm := wrdata(17 downto 16); - end if; - end if; - - when "0100" => -- Hardware config reg. - if core_modified then rddata(31) := '1'; end if; - if extrakeyen=1 then rddata(11):='1'; end if; - rddata(10 downto 9) := std_logic_vector(to_unsigned(endianness,2)); - if codec_clk_freq_mhz /= 20 or sameclk=1 then - rddata(7 downto 0) := std_logic_vector(to_unsigned(codec_clk_freq_mhz,8)); - rddata(8 downto 8) := std_logic_vector(to_unsigned(sameclk,1)); - end if; - if do_write then vnr.badreg:='1'; end if; - - when others => - if do_read or do_write then vnr.badreg := '1'; end if; - - end case; - - -- BC regs - when "01" => - if bc_enable=1 then - case apbsi.paddr(5 downto 2) is - when "0000" => -- BC status (RO) + Config(RW) - rddata(31) := '1'; - if schemtime_en then rddata(30):='1'; end if; - if wakeup_en then rddata(29):='1'; end if; - if rtbusmask_en then rddata(28):='1'; end if; - rddata(15 downto 0) := - bcct_outs.async_next_pos(8 downto 4) & bcct_outs.async_state & - bcct_outs.sched_next_pos(8 downto 4) & bcct_outs.sched_state; - - rddata(16) := r.bc_check_broadcast; - if bc_write then - vnr.bc_check_broadcast := wrdata(16); - end if; - - - when "0001" => -- BC action (WO) - if bc_write and wrdata(31 downto 16)=x"1552" then - vbcct_in.sched_start := wrdata(0); - vbcct_in.sched_pause := wrdata(1); - vbcct_in.sched_stop := wrdata(2); - vbcct_in.sched_trig := wrdata(3); - vbcct_in.sched_trig_clear := wrdata(4); - vbcct_in.async_start := wrdata(8); - vbcct_in.async_stop := wrdata(9); - elsif bc_write or do_read then - vnr.badreg := '1'; - end if; - - when "0010" => -- BC transfer list next ptr - rddata := bcct_outs.sched_next_pos; - if bc_write then vbcct_in.set_schem_addr:='1'; end if; - - when "1010" => -- BC transfer current slot - rddata := bcct_outs.sched_current_pos; - if bc_write then vnr.badreg:='1'; end if; - - when "0011" => -- BC transfer list next ptr - rddata := bcct_outs.async_next_pos; - if bc_write then vbcct_in.set_async_addr:='1'; end if; - - when "1011" => -- BC transfer current slot - rddata := bcct_outs.async_current_pos; - if bc_write then vnr.badreg:='1'; end if; - - when "0100" => -- BC timer (RO) - if schemtime_en then - rddata := "00000000" & bcct_outs.schem_time; - end if; - if bc_write then vnr.badreg := '1'; end if; - - when "0101" => -- BC wakeup time - if wakeup_en then - rddata := r.bc_wakeup_enable & "0000000" & r.bc_wakeup_time; - if bc_write then - vnr.bc_wakeup_enable:=wrdata(31); - vnr.bc_wakeup_time:=wrdata(23 downto 0); - end if; - end if; - - when "0110" => -- BC IRQ pointer ring pos - rddata := bcct_outs.user_irq_addr; - if bc_write then vbcct_in.set_logbuf_pos := '1'; end if; - - when "0111" => -- BC RT bus mask - rddata := bcct_outs.rt_busmask; - if bc_write then vbcct_in.set_rt_busmask:='1'; end if; - - when others => - if do_read or do_write then - vnr.badreg := '1'; - end if; - - end case; - else - if (do_read and apbsi.paddr(5 downto 2)/="0000") or do_write then - vnr.badreg := '1'; - end if; - end if; - - -- RT regs - when "10" => - if rt_enable=1 then - case apbsi.paddr(5 downto 2) is - - when "0000" => -- RT status (RO) - rddata(31) := '1'; - rddata(3 downto 0) := - rtct_outs.active & rtct_outs.shutdownA & rtct_outs.shutdownB & vrt_run; - if rt_write then vnr.badreg:='1'; end if; - - when "0001" => -- RT config - rddata(15) := r.rt_syncsig_enable; - rddata(14) := r.rt_syncdatasig_enable; - rddata(13) := r.rt_busreset_enable; - rddata(6) := r.rt_addr_par_ok; - rddata(5 downto 1) := r.rt_addr; - rddata(0) := r.rt_enable_reg; - if rt_write then - if wrdata(31 downto 16) = x"1553" then - vnr.rt_addr_par_ok := '0'; - vnr.rt_addr := wrdata(5 downto 1); - end if; - if extrakeyen=0 or wrdata(23 downto 16) = x"53" then - vnr.rt_enable_reg := wrdata(0); - vnr.rt_syncsig_enable := wrdata(15); - vnr.rt_syncdatasig_enable := wrdata(14); - vnr.rt_busreset_enable := wrdata(13); - else - vnr.badreg := '1'; - end if; - end if; - - when "0010" => -- RT bus status bits - rddata(4 downto 0) := r.rt_statusbits; - rddata(8) := r.rt_set_tf; - if rt_write then - vnr.rt_statusbits:=wrdata(4 downto 0); - vnr.rt_set_tf := wrdata(8); - end if; - - when "0011" => -- RT bit/vector word - rddata(31 downto 16) := r.rt_bit_word; - rddata(15 downto 0) := r.rt_vector_word; - if rt_write then - vnr.rt_bit_word := wrdata(31 downto 16); - vnr.rt_vector_word := wrdata(15 downto 0); - end if; - - when "0100" => -- RT sync register - rddata := rtct_outs.bussync_time & rtct_outs.bussync_word; - if rt_write then - vnr.badreg := '1'; - end if; - - when "0101" => -- RT subaddress table base - rddata := rtct_outs.subaddr_table_base; - if rt_write then vrtct_in.set_subaddr_table_base:='1'; end if; - - when "0110" => -- RT modecode control reg - rddata(29 downto 0) := rtct_outs.modecode_mask; - if rt_write then vrtct_in.set_modecode_mask:='1'; end if; - - when "1001" => -- RT time tag register - rddata := std_logic_vector(r.rt_timetag_res) & - std_logic_vector(r.rt_timetag_value); - if rt_write then - vnr.rt_timetag_res := unsigned(wrdata(31 downto 16)); - vnr.rt_timetag_value := unsigned(wrdata(15 downto 0)); - vus_restart := '1'; - end if; - - when "1011" => -- RT event log mask - rddata := rtct_outs.log_mask; - if rt_write then vrtct_in.set_log_mask:='1'; end if; - - when "1100" => -- RT event log pos. - rddata := rtct_outs.log_cur_addr; - if rt_write then vrtct_in.set_log_cur_addr:='1'; end if; - - when "1101" => -- RT event log IRQ pos. - rddata := rtct_outs.irq_log_addr; - if rt_write then vnr.badreg:='1'; end if; - - when others => - if do_read or do_write then - vnr.badreg := '1'; - end if; - - end case; - else - if (do_read and apbsi.paddr(5 downto 2)/="0000") or do_write then - vnr.badreg := '1'; - end if; - end if; - - -- BM regs - when "11" => - if bm_enable=1 then - case apbsi.paddr(5 downto 2) is - - when "0000" => -- BM status - if bm_enable=1 then - rddata(31) := '1'; - if extrakeyen=1 then - rddata(30) := '1'; - end if; - end if; - if bm_write then vnr.badreg:='1'; end if; - - when "0001" => -- BM config - rddata(5 downto 0) := r.bm_wrapstop & r.bm_syncstart & r.bm_log_reserved_mcs & - r.bm_log_stray_data & r.bm_log_errors & r.bm_enable; - if bm_write and (extrakeyen=0 or wrdata(31 downto 16)=x"1543") then - vnr.bm_wrapstop := wrdata(5); - vnr.bm_syncstart := wrdata(4); - if bm_filters /= 0 then - vnr.bm_log_reserved_mcs := wrdata(3); - vnr.bm_log_stray_data := wrdata(2); - end if; - vnr.bm_log_errors := wrdata(1); - vnr.bm_enable := wrdata(0); - elsif bm_write then - vnr.badreg:='1'; - end if; - - when "0010" => -- BM address filter - rddata := bmct_outs.rtaddr_filter; - if bm_write then vbmct_in.set_rtaddr_filter:='1'; end if; - - when "0011" => -- BM subaddr filter - rddata := bmct_outs.subaddr_filter; - if bm_write then vbmct_in.set_subaddr_filter:='1'; end if; - - when "0100" => -- BM modecode filter - rddata := bmct_outs.modecode_filter; - if bm_write then vbmct_in.set_modecode_filter:='1'; end if; - - when "0101" => -- BM output buffer start - rddata := bmct_outs.outbuf_start; - if bm_write then vbmct_in.set_outbuf_start:='1'; end if; - - when "0110" => -- BM output buffer end - rddata := bmct_outs.outbuf_end; - if bm_write then vbmct_in.set_outbuf_end:='1'; end if; - - when "0111" => -- BM output buffer pos - rddata := bmct_outs.outbuf_pos; - if bm_write then vbmct_in.set_outbuf_pos:='1'; end if; - - when "1000" => -- BM time tag register - rddata := std_logic_vector(r.bm_timetag_res) & - std_logic_vector(r.bm_timetag_value); - if bm_write then - vnr.bm_timetag_res := unsigned(wrdata(31 downto 24)); - vnr.bm_timetag_value := unsigned(wrdata(23 downto 0)); - bm_timerreg_set := '1'; - if rt_enable=0 then vus_restart:='1'; end if; - end if; - - when others => - if do_read or do_write then - vnr.badreg := '1'; - end if; - - end case; - else - if (do_read and apbsi.paddr(5 downto 2)/="0000") or do_write then - vnr.badreg := '1'; - end if; - end if; - when others => - if do_read or do_write then - vnr.badreg := '1'; - end if; - end case; - - if r.rt_enable_reg='1' and notx(std_logic_vector(r.rt_timetag_ctr)) then - if vus_restart='1' or (rtts_tick='1' and r.rt_timetag_ctr = r.rt_timetag_res) then - vnr.rt_timetag_ctr := (others => '0'); - elsif rtts_tick='1' then - vnr.rt_timetag_ctr := r.rt_timetag_ctr + 1; - end if; - - if vus_restart='0' and rtts_tick='1' and r.rt_timetag_ctr = r.rt_timetag_res then - vnr.rt_timetag_value := r.rt_timetag_value + 1; - end if; - end if; - - if notx(std_logic_vector(r.bm_timetag_ctr)) then - if bm_timerreg_set='1' or (rtts_tick='1' and r.bm_timetag_ctr = r.bm_timetag_res) then - vnr.bm_timetag_ctr := (others => '0'); - elsif rtts_tick='1' and r.bm_enable='1' then - vnr.bm_timetag_ctr := r.bm_timetag_ctr + 1; - - end if; - - if r.bm_enable='1' and bm_timerreg_set='0' and rtts_tick='1' and r.bm_timetag_ctr=r.bm_timetag_res then - vnr.bm_timetag_value := r.bm_timetag_value+1; - if std_logic_vector(vnr.bm_timetag_value)=x"000000" and r.bm_timer_overflow='0' then - vnr.bm_timer_overflow := '1'; - if r.irq_enable_bm(1)='1' then virq := '1'; vnr.xirqv(7):='1'; end if; - end if; - end if; - end if; - - if r.rt_enable_reg='0' and r.bm_enable='0' then - vus_clear := '1'; - vnr.rt_timetag_ctr := (others => '0'); - end if; - - if bc_enable=1 then - if r.bc_wakeup_time = bcct_outs.schem_time and r.bc_wakeup_enable='1' then - if r.bc_timed_irq='0' then - if r.irq_enable_bc(2)='1' then virq := '1'; vnr.xirqv(2):='1'; end if; - vnr.bc_timed_irq := '1'; - end if; - end if; - end if; - - if bcct_outs.user_irq_next='1' and bcct_outs.user_irq='0' then - if r.irq_enable_bc(0)='1' then virq := '1'; vnr.xirqv(0):='1'; end if; - end if; - if bcct_outs.dmaerror_next='1' and r.bc_dmaerror='0' then - vnr.bc_dmaerror := '1'; - if r.irq_enable_bc(1)='1' then virq := '1'; vnr.xirqv(1):='1'; end if; - end if; - if rtct_outs.gotirq_next='1' and rtct_outs.gotirq='0' then - if r.irq_enable_rt(0)='1' then virq := '1'; vnr.xirqv(3):='1'; end if; - end if; - if rtct_outs.dmaerror_next='1' and rtct_outs.dmaerror='0' then - if r.irq_enable_rt(1)='1' then virq := '1'; vnr.xirqv(4):='1'; end if; - if r.rt_set_tf='1' then vnr.rt_statusbits(0):='1'; end if; - end if; - if rtct_outs.descerror_next='1' and rtct_outs.descerror='0' then - if r.irq_enable_rt(2)='1' then virq := '1'; vnr.xirqv(5):='1'; end if; - if r.rt_set_tf='1' then vnr.rt_statusbits(0):='1'; end if; - end if; - if bmct_outs.dmaerror_next='1' and bmct_outs.dmaerror='0' then - if r.irq_enable_bm(0)='1' then virq := '1'; vnr.xirqv(6):='1'; end if; - end if; - - if rtct_outs.busreset='1' then - vnr.rt_statusbits(0) := '0'; - vnr.rt_statusbits(4) := '0'; - end if; - - vnr.rt_addr_checked(0) := '1'; - if r.rt_addr_checked="01" then - if (r.in_rtaddr_reg(4) xor r.in_rtaddr_reg(3) xor r.in_rtaddr_reg(2) xor - r.in_rtaddr_reg(1) xor r.in_rtaddr_reg(0) xor r.in_rtpar_reg)='1' then - vnr.rt_addr := r.in_rtaddr_reg; - vnr.rt_addr_par_ok := '1'; - end if; - vnr.rt_addr_checked(1) := '1'; - end if; - - if r.bm_syncstart='1' and extsync_edge='1' then - vnr.bm_enable := '1'; - end if; - if r.bm_wrapstop='1' and bmct_outs.wrapping='1' then - vnr.bm_enable := '0'; - vnr.bm_syncstart := '0'; - end if; - - if rst='0' and syncrst/=0 then - vnr := r_rst; - -- Don't reset bc_syncreg - vnr.bc_syncreg := r.bc_syncreg(1 to 2) & bc_extsync; - end if; - - vnr.in_rtaddr_reg := rtaddr; - vnr.in_rtpar_reg := rtaddrpar; - - vbcct_in.sched_trig := vbcct_in.sched_trig or extsync_edge; - - vnr.pirq := virq; - vpirq(pirq) := r.pirq; - - apbso.prdata <= rddata; - apbso.pirq <= vpirq; - nr <= vnr; - bcct_in <= vbcct_in; - rtct_in <= vrtct_in; - bmct_in <= vbmct_in; - rt_run <= vrt_run; - bc_run <= vbc_run; - bm_run <= r.bm_enable; - rtts_restart <= vus_restart; - rtts_clear <= vus_clear; - rt_sync <= r.rt_sync; - rt_busreset <= r.rt_busreset; - badreg <= r.badreg; - xirqvec <= r.xirqv; - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if rst='0' and syncrst=0 then - r <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_bc_control.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_bc_control.vhd deleted file mode 100644 index 4cd3abd7..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_bc_control.vhd +++ /dev/null @@ -1,835 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_bc_control --- File: gr1553b_bc_control.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B Bus controller command execution state machine ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -library grlib; -use grlib.stdlib.all; -use work.gr1553b_core.all; - -entity gr1553b_bc_control is - generic ( - cond_en: boolean; - rtmask_en: boolean; - syncrst: integer range 0 to 2 - ); - port ( - clk: in std_logic; - rst: in std_logic; - ins: in gr1553b_bc_control_in; - outs: out gr1553b_bc_control_out; - dmai: out gr1553b_dma2_in_bc; - dmao: in gr1553b_dma2_out; - us_restart: out std_logic; - us_clear: out std_logic; - us_tick: in std_logic; - proti: out gr1553b_bc_proto_in; - proto: in gr1553b_bc_proto_out - ); - attribute sync_set_reset of rst : signal is "true"; -end; - -architecture rtl of gr1553b_bc_control is - - -- States in bc_command_state: - -- SCHEDULE - No command is running, decide what to do and goto NEWCMD or DMASTART - -- NEWCMD - Transfer is in progress - -- CMDDONE - Transfer done, go to RETRY/FINISHED - -- RETRY - Update retry counters, restart transfer and goto NEWCMD - -- FINISHED - Command finished, start writing back the result and go to DMAWRITEWAIT - -- MEMERR - DMA buffer error, wait until command is done and go back to SCHEDULE - -- DMASTART - Wait for DMA to become ready, command descriptor read - -- DMAWAIT - Wait for descriptor/branch read - -- DMACOND - Handle conditional/unconditional branch - -- DMAWRITEWAIT - Wait during result/IRQ DMA write, go to DMAWAIT/SCHEDULE - - type bc_command_state is (SCHEDULE, - NEWCMD, - CMDDONE,RETRY,FINISHED,MEMERR, - DMASTART,DMAWAIT,DMACOND,DMAWRITEWAIT); - - - - type cmdfsm_regs is record - st: bc_command_state; - bussel: std_logic; - - prim_run: std_logic; - prim_pause: std_logic; - prim_cmdaddr: std_logic_vector(31 downto 4); - prim_nextaddr: std_logic_vector(31 downto 4); - prim_desc0: std_logic_vector(31 downto 0); - prim_desc0_valid: std_logic; - prim_cmd_ready: std_logic; - prim_laststatus: std_logic_vector(23 downto 0); - prim_last_excl: std_logic; - prim_jump: std_logic; - - sec_run: std_logic; - sec_cmdaddr: std_logic_vector(31 downto 4); - sec_nextaddr: std_logic_vector(31 downto 4); - sec_desc0: std_logic_vector(31 downto 0); - sec_desc0_valid: std_logic; - sec_cmd_ready: std_logic; - sec_laststatus: std_logic_vector(23 downto 0); - sec_last_excl: std_logic; - sec_jump: std_logic; - - sec_active: std_logic; - - retrycount: std_logic_vector(2 downto 0); - retrycount_total: std_logic_vector(3 downto 0); - - otherbus: std_logic; - prim_slot_time_left: std_logic_vector(20 downto 0); -- Signed 2:s compl value (us) - sec_slot_time_left: std_logic_vector(17 downto 0); -- Unsigned value (us) - schemtime: std_logic_vector(23 downto 0); - - -- Per-RT bus mask, XOR:ed with bus selection bit - rt_busmask: std_logic_vector(31 downto 0); - -- Interrupt received - got_irq: std_logic; - -- Position in IRQ pointer ring - irq_logbuf_pos: std_logic_vector(29 downto 0); - - got_trig: std_logic; - end record; - - - constant r_rst: cmdfsm_regs := (SCHEDULE,'0', - '0','0',x"0000000",x"0000000",x"00000000",'0','0',x"000000",'0','0', - '0',x"0000000",x"0000000",x"00000000",'0','0',x"000000",'0','0', - '0', - "000","0000", - '0','0' & x"00000",x"0000" & "00",x"000000", - x"00000000",'0',x"0000000" & "00", '0'); - - signal r,nr: cmdfsm_regs; - - signal d0: std_logic_vector(31 downto 0); - signal ls: std_logic_vector(23 downto 0); - signal sa,ia: std_logic; - - function statusbits(ts: gr1553b_transfer_status) return std_logic_vector is - begin --- case ts is --- when SUCCESS => return "000"; --- when TIMEOUT => return "001"; --- when TIMEOUT2 => return "010"; --- when RTERROR => return "011"; --- when BUSERR => return "100"; --- when BADCMD => return "101"; --- when DMAERR => return "110"; --- when others => return "111"; --- end case; - return std_logic_vector(ts); - end; - - function zerov(w: integer) return std_logic_vector is - variable v: std_logic_vector(w-1 downto 0) := (others => '0'); - begin - return v; - end; - -begin - - - comb: process(ins,dmao,proto,rst,us_tick,r) - - variable v: cmdfsm_regs; - variable o: gr1553b_bc_control_out; - variable di: gr1553b_dma2_in_bc; - variable pi: gr1553b_bc_proto_in; - - variable vus_restart,vus_clear: std_logic; - - variable prim_slot_time_valz,prim_slot_time_sgn,sec_slot_time_valz: std_logic; - variable prim_slot_time_lt24: std_logic; - variable prim_slottime, sec_slottime: std_logic_vector(17 downto 0); - - variable desc0: std_logic_vector(31 downto 0); - variable desc_retrymode: std_logic_vector(1 downto 0); - variable desc_retrycount: std_logic_vector(2 downto 0); - variable desc_storebus: std_logic; - - variable sched_choose_prim, sched_choose_sec: std_logic; - - variable laststatus: std_logic_vector(23 downto 0); - - variable status_cond_met,andmode_cond_met,ormode_cond_met,cond_met: std_logic; - - variable rt_busmask_bit, stbus_bit: std_logic; - - variable irqafter,stopafter: std_logic; - begin - - v := r; - vus_restart := '0'; - vus_clear := '0'; - - desc0 := r.sec_desc0; - laststatus := r.sec_laststatus; - if r.sec_active='0' then - desc0 := r.prim_desc0; - laststatus := r.prim_laststatus; - end if; - - stopafter := '0'; - irqafter := '0'; - if desc0(25)='1' or (desc0(26)='1' and laststatus(2 downto 0)/="000") or laststatus(2 downto 0)="101" then - stopafter := '1'; - end if; - if desc0(27)='1' or (desc0(28)='1' and laststatus(2 downto 0)/="000") or laststatus(2 downto 0)="101" then - irqafter := '1'; - end if; - - d0 <= desc0; - ls <= laststatus; - ia <= irqafter; - sa <= stopafter; - - desc_retrymode := desc0(D0_RETMODE_MSb downto D0_RETMODE_LSb); - desc_retrycount := desc0(D0_RETCOUNT_MSb downto D0_RETCOUNT_LSb); - desc_storebus := desc0(D0_RETSTORE_b); - - o := (sched_state => "000", async_state => "000", - sched_current_pos => r.prim_cmdaddr & "0000", async_current_pos => r.sec_cmdaddr & "0000", - sched_next_pos => r.prim_nextaddr & "0000", async_next_pos => r.sec_nextaddr & "0000", - rt_busmask => r.rt_busmask, - schem_time => r.schemtime, - user_irq => r.got_irq, user_irq_next => '0', - user_irq_addr => r.irq_logbuf_pos & "00", - dmaerror_next => '0', validcmdA => proto.validcmdA, validcmdB => proto.validcmdB); - - di := (writestat => '0', writeirq => '0', getcmd => '0', - active => '0', desc_addr => r.prim_cmdaddr, nextdesc_addr => r.prim_nextaddr, - laststatus => x"00" & laststatus, - irqbuf_pos => r.irq_logbuf_pos, - data_reset => '0', need_data => '0', pull_data => proto.datain_read, pushing_data => '0', - push_data => proto.dataout_write, - push_done => proto.dataout_done); - - if r.sec_active='1' then - di.desc_addr := r.sec_cmdaddr; - di.nextdesc_addr := r.sec_nextaddr; - end if; - - - pi := (tfrstart => '0', - tfrconfig => ( - rtaddr1 => dmao.bc_desc1(D1_RTADDR1_MSb downto D1_RTADDR1_LSb), - samc1 => dmao.bc_desc1(D1_SAMC1_MSb downto D1_SAMC1_LSb), - rtaddr2 => dmao.bc_desc1(D1_RTADDR2_MSb downto D1_RTADDR2_LSb), - samc2 => dmao.bc_desc1(D1_SAMC2_MSb downto D1_SAMC2_LSb), - wc_mode => dmao.bc_desc1(D1_WCMC_MSb downto D1_WCMC_LSb), - tr => dmao.bc_desc1(D1_TR_b), - extratime => dmao.bc_desc1(D1_EXTRATIME_MSb downto D1_EXTRATIME_LSb), - extragap_en => desc0(D0_XGAP_b), - bussel => r.bussel, - dummy => dmao.bc_desc1(D1_DUMMY_b) - ), - datain_valid => dmao.can_pull, data_in=>dmao.pulldata, data_error => '0', - fast_broadcast => ins.fast_broadcast ); - - -- Timekeeping logic - prim_slot_time_valz := '0'; - if r.prim_slot_time_left(19 downto 0) = "00000000000000000000" then - prim_slot_time_valz := '1'; - end if; - prim_slot_time_sgn := r.prim_slot_time_left(20); - - -- <24 us left of primary slot time - prim_slot_time_lt24 := '0'; - if prim_slot_time_sgn='1' or - (r.prim_slot_time_left(19 downto 6)=zerov(14) and r.prim_slot_time_left(5 downto 4)/="11") then - prim_slot_time_lt24 := '1'; - end if; - - sec_slot_time_valz := '0'; - if r.sec_slot_time_left = "000000000000000000" then - sec_slot_time_valz := '1'; - end if; - - if us_tick='1' then - -- Decrease sched slot time left unless we would underflow (-2^20) - if not (prim_slot_time_sgn='1' and prim_slot_time_valz='1') then - v.prim_slot_time_left := std_logic_vector(unsigned(r.prim_slot_time_left) - 1); - end if; - if sec_slot_time_valz='0' then - v.sec_slot_time_left := std_logic_vector(unsigned(r.sec_slot_time_left) - 1); - end if; - v.schemtime := std_logic_vector(unsigned(r.schemtime) + 1); - end if; - - prim_slottime := r.prim_desc0(D0_TIMEOFFS_MSb downto D0_TIMEOFFS_LSb) & "00"; - sec_slottime := r.sec_desc0(D0_TIMEOFFS_MSb downto D0_TIMEOFFS_LSb) & "00"; - - -- Conditional branch logic - status_cond_met := '0'; - andmode_cond_met := '0'; - ormode_cond_met := '0'; - cond_met := '0'; - for s in 0 to 7 loop - if desc0(s)='1' and unsigned(laststatus(2 downto 0))=to_unsigned(s,3) then - status_cond_met := '1'; - end if; - end loop; - if (laststatus(23 downto 8) or not desc0(23 downto 8))=x"FFFF" and status_cond_met='1' then - andmode_cond_met := '1'; - end if; - if (laststatus(23 downto 8) and desc0(23 downto 8))/=x"0000" or status_cond_met='1' then - ormode_cond_met := '1'; - end if; - if cond_en and ((desc0(24)='1' and andmode_cond_met='1') or (desc0(24)='0' and ormode_cond_met='1')) then - cond_met := '1'; - end if; - - if r.st /= SCHEDULE and r.sec_active='0' then - o.sched_state := "001"; - elsif r.prim_run='0' then - o.sched_state := "000"; - elsif r.prim_pause='1' then - o.sched_state := "011"; - elsif r.prim_desc0_valid='1' and r.prim_desc0(30)='1' and r.got_trig='0' then - o.sched_state := "100"; - else - o.sched_state := "010"; - end if; - - if r.st /= SCHEDULE and r.sec_active='1' then - o.async_state := "001"; - elsif r.sec_run='0' then - o.async_state := "000"; - else - o.async_state := "010"; - end if; - - if notx(dmao.bc_desc1(D1_RTADDR1_MSb downto D1_RTADDR1_LSb)) then - rt_busmask_bit := r.rt_busmask(to_integer(unsigned(dmao.bc_desc1(D1_RTADDR1_MSb downto D1_RTADDR1_LSb)))); - end if; - - stbus_bit := r.bussel; - if not (proto.status=TFR_SUCCESS) then - stbus_bit := not stbus_bit; - end if; - - --------------------------------------------------------------------------- - -- Scheduler decision logic - --------------------------------------------------------------------------- - - -- First choose, in order of priority: - -- - -- 1. If the prim schedule is running and there is less than 24 us left - -- of slack, then proceed with primary - -- 2. If the sec schedule is enabled but descriptor word #0 hasn't been - -- fetched, this should be fetched -> proceed with secondary - -- 3. If the sec and prim schedules are enabled, compare sec DW0 time with - -- slack and decide - -- 4. If the prim schedule is enabled but descriptor word #0 hasn't been - -- loaded, this must be loaded -> proceed with primary - -- 5. Choose whichever is enabled - -- 6. None - -- - -- The primary schedule can then be blocked from proceeding by: - -- 1. the pause control bit is set - -- 2. the extsync descriptor bit is set and sync hasn't arrived. - -- 3. There is slot time remaining from the previous slot - -- - -- The secondary schedule can be blocked by: - -- 1. The primary schedule is running and the last transfer had the exclusive - -- descriptor bit set - -- 2. Secondary slot time left > 0 and the last secondary transfer had - -- the exclusive bit set. - -- - - sched_choose_prim := '0'; - sched_choose_sec := '0'; - - if r.prim_run='1' and r.prim_desc0_valid='1' and prim_slot_time_lt24='1' then - - sched_choose_prim := '1'; - - elsif r.sec_run='1' and r.sec_desc0_valid='0' then - - sched_choose_sec := '1'; - - elsif r.prim_run='1' and r.sec_run='1' and r.prim_last_excl='0' and - (prim_slot_time_sgn='0' and - (r.prim_slot_time_left(19 downto 18)/="00" or - unsigned(r.prim_slot_time_left(17 downto 0)) > unsigned(sec_slottime))) then - - sched_choose_sec := '1'; - - elsif r.prim_run='1' and r.prim_desc0_valid='0' then - - sched_choose_prim := '1'; - - elsif r.prim_run='1' then - - sched_choose_prim := '1'; - - elsif r.sec_run='1' then - - sched_choose_sec := '1'; - - end if; - - if r.prim_desc0_valid='1' and r.prim_desc0(30)='1' and r.got_trig='0' then - sched_choose_prim := '0'; - end if; - if r.prim_pause='1' then - sched_choose_prim := '0'; - end if; - if r.prim_cmd_ready='1' and prim_slot_time_sgn='0' and prim_slot_time_valz='0' and r.prim_desc0(30)='0' then - sched_choose_prim := '0'; - end if; - - if (r.prim_last_excl='1' and r.prim_run='1' and prim_slot_time_sgn='0') or - (r.sec_last_excl='1' and r.sec_run='1' and sec_slot_time_valz='0') then - sched_choose_sec := '0'; - end if; - - --------------------------------------------------------------------------- - -- Command processing FSM - --------------------------------------------------------------------------- - - if dmao.bc_desc0_valid='1' then - if r.sec_active='1' then - v.sec_desc0 := dmao.bc_desc0_temp; - v.sec_desc0_valid := '1'; - else - v.prim_desc0 := dmao.bc_desc0_temp; - v.prim_desc0_valid := '1'; - end if; - end if; - - case r.st is - - when SCHEDULE => - - if proto.tfrdone='1' then - v.bussel := dmao.bc_desc1(D1_BUS_b) xor rt_busmask_bit; - end if; - - v.retrycount := "000"; - v.retrycount_total := "0000"; - v.otherbus := '0'; - - if r.prim_run='1' or r.sec_run='1' then - di.data_reset := '1'; - end if; - - if r.prim_run='0' then - v.schemtime := (others => '0'); - v.prim_slot_time_left := (others => '1'); - v.prim_last_excl := '0'; - end if; - if r.sec_run='0' then - v.sec_last_excl := '0'; - end if; - - if r.prim_run='0' and r.sec_run='0' then - vus_clear := '1'; - end if; - - if r.prim_jump='1' then - v.prim_desc0_valid := '0'; - v.prim_cmd_ready := '0'; - v.prim_jump := '0'; - end if; - if r.sec_jump='1' then - v.sec_desc0_valid := '0'; - v.sec_cmd_ready := '0'; - v.sec_jump := '0'; - end if; - - -- The (not us_tick) condition is to avoid updating the slot_time_left - -- values at the same time they are decreased due to a us tick. - if not us_tick='1' and v.bussel=r.bussel and r.prim_jump='0' and r.sec_jump='0' then - - -- What do we want to do next? - if sched_choose_prim='1' then - - v.sec_active := '0'; - if r.prim_cmd_ready='1' then - if proto.ready='1' then - v.st := NEWCMD; - pi.tfrstart := '1'; - v.prim_slot_time_left := std_logic_vector(unsigned(r.prim_slot_time_left) + unsigned("000" & prim_slottime)); - v.prim_cmdaddr := r.prim_nextaddr; - v.prim_nextaddr := std_logic_vector(unsigned(r.prim_nextaddr)+1); - if r.got_trig='1' and r.prim_desc0(30)='1' then - v.got_trig := '0'; - v.prim_slot_time_left := "000" & prim_slottime; - v.schemtime := (others => '0'); - vus_restart := '1'; - end if; - v.prim_last_excl := r.prim_desc0(29); - end if; - else - v.st := DMASTART; - end if; - - elsif sched_choose_sec='1' then - - v.sec_active := '1'; - if r.sec_cmd_ready='1' then - if proto.ready='1' then - v.st := NEWCMD; - pi.tfrstart := '1'; - v.sec_slot_time_left := sec_slottime; - v.sec_cmdaddr := r.sec_nextaddr; - v.sec_nextaddr := std_logic_vector(unsigned(r.sec_nextaddr)+1); - v.sec_last_excl := r.sec_desc0(29); - end if; - else - v.st := DMASTART; - end if; - - end if; - - end if; - - - - - when NEWCMD => - - if proto.datain_req='1' then - di.need_data := '1'; - else - di.pushing_data := '1'; - - end if; - - if dmao.buf_dmaerror='1' or (proto.dataout_write='1' and dmao.can_push='0') then - v.st := MEMERR; - o.dmaerror_next := '1'; - elsif proto.tfrdone = '1' then - v.st := CMDDONE; - end if; - - - when MEMERR => - -- For reads, just set datain_valid to 0 and let the protocol layer timeout - -- For writes, use the data_error signal - pi.data_error := '1'; - if proto.tfrdone='1' then - v.st := CMDDONE; - end if; - - - when CMDDONE => - if proto.status /= TFR_SUCCESS and proto.status /= TFR_BADCMD and - (r.retrycount /= desc_retrycount or (desc_retrymode/=RETMODE_SAME and r.otherbus='0')) then - - if proto.ready='1' then - v.retrycount_total := std_logic_vector(unsigned(r.retrycount_total) + 1); - if desc_retrymode=RETMODE_ALT then - v.otherbus := not r.otherbus; - v.bussel := not r.bussel; - if r.otherbus='1' then - v.retrycount := std_logic_vector(unsigned(r.retrycount) + 1); - end if; - else - if r.retrycount = desc_retrycount then - v.retrycount := (others=>'0'); - v.otherbus := not r.otherbus; - v.bussel := not r.bussel; - else - v.retrycount := std_logic_vector(unsigned(r.retrycount) + 1); - end if; - end if; - - v.st := RETRY; - end if; - - else - - v.retrycount := "000"; - v.retrycount_total := "0000"; - v.otherbus := '0'; - - if desc_storebus='1' and rtmask_en then - v.rt_busmask(to_integer(unsigned(dmao.bc_desc1(D1_RTADDR1_MSb downto D1_RTADDR1_LSb)))) := stbus_bit; - end if; - - if r.sec_active='1' then - v.sec_laststatus := proto.stword2 & proto.stword1 & r.retrycount_total & "0" & statusbits(proto.status); - v.sec_desc0_valid := '0'; - v.sec_cmd_ready := '0'; - else - v.prim_laststatus := proto.stword2 & proto.stword1 & r.retrycount_total & "0" & statusbits(proto.status); - v.prim_desc0_valid := '0'; - v.prim_cmd_ready := '0'; - end if; - - v.st := FINISHED; - end if; - - - when RETRY => - di.data_reset := '1'; - - v.st := NEWCMD; - pi.tfrstart := '1'; - - - when FINISHED => - - if stopafter='1' then - if r.sec_active='0' then - v.prim_pause := '1'; - else - v.sec_run := '0'; - end if; - end if; - - if dmao.ready='1' then - di.writestat := '1'; - v.st := DMAWRITEWAIT; - end if; - - - when DMASTART => - - di.getcmd:='1'; - - if dmao.ready='1' then - v.st := DMAWAIT; - end if; - - - - when DMAWAIT => - - if dmao.desc_dmaerror='1' then - - if r.sec_active='0' then - v.prim_run := '0'; - else - v.sec_run := '0'; - end if; - o.dmaerror_next := '1'; - v.prim_cmd_ready := '0'; - v.sec_cmd_ready := '0'; - v.prim_desc0_valid := '0'; - v.sec_desc0_valid := '0'; - v.st := SCHEDULE; - - elsif dmao.bc_desc0_valid='1' and dmao.bc_desc0_temp(31)='1' then - - v.st := DMACOND; - - elsif dmao.ready='1' then - - if r.sec_active='0' then - v.prim_cmd_ready := '1'; - v.sec_cmd_ready := '0'; - else - v.sec_cmd_ready := '1'; - v.prim_cmd_ready := '0'; - end if; - v.st := SCHEDULE; - - end if; - - - - when DMACOND => - - if dmao.ready='1' then - if r.sec_active='0' then - - if r.prim_jump='0' then - v.prim_cmdaddr := r.prim_nextaddr; - if cond_met='1' and r.prim_desc0(25)='1' then - v.prim_nextaddr := dmao.bc_desc0_temp(31 downto 4); - else - v.prim_nextaddr := std_logic_vector(unsigned(r.prim_nextaddr)+1); - end if; - if (not cond_en) or (cond_met='1' and r.prim_desc0(25)='0') then - v.prim_pause := '1'; - end if; - if cond_met='1' and r.prim_desc0(26)='1' then - v.st := DMAWRITEWAIT; - di.writeirq := '1'; - else - v.st := SCHEDULE; - end if; - v.prim_desc0_valid := '0'; - v.prim_cmd_ready := '0'; - else - v.st := SCHEDULE; - end if; - - else - - if r.sec_jump='0' then - v.sec_cmdaddr := r.sec_nextaddr; - if cond_met='1' and r.sec_desc0(25)='1' then - v.sec_nextaddr := dmao.bc_desc0_temp(31 downto 4); - else - v.sec_nextaddr := std_logic_vector(unsigned(r.sec_nextaddr)+1); - end if; - if (not cond_en) or (cond_met='1' and r.sec_desc0(25)='0') then - v.sec_run := '0'; - end if; - if cond_met='1' and r.sec_desc0(26)='1' then - v.st := DMAWRITEWAIT; - di.writeirq := '1'; - else - v.st := SCHEDULE; - end if; - v.sec_desc0_valid := '0'; - v.sec_cmd_ready := '0'; - else - v.st := SCHEDULE; - end if; - - end if; - end if; - - - when DMAWRITEWAIT => - - if (r.sec_active='0' and sched_choose_prim='1' and r.prim_jump='0') or - (r.sec_active='1' and sched_choose_sec='1' and r.sec_jump='0') then - di.getcmd := '1'; - end if; - - if irqafter='1' and dmao.ready='0' then - di.writeirq := '1'; - end if; - - if dmao.bc_write_done='1' then - v.st := DMAWAIT; - elsif dmao.ready='1' then - v.st := SCHEDULE; - end if; - - - end case; - - - if ins.sched_start='1' then - v.prim_run := '1'; - v.prim_pause := '0'; - end if; - if ins.sched_stop='1' then - v.prim_run := '0'; - end if; - if ins.sched_pause='1' then - v.prim_pause := '1'; - end if; - - if ins.async_start='1' then - v.sec_run := '1'; - end if; - if ins.async_stop='1' then - v.sec_run := '0'; - end if; - - if ins.sched_trig='1' then - v.got_trig := '1'; - elsif ins.sched_trig_clear='1' or r.prim_run='0' then - v.got_trig := '0'; - end if; - - if dmao.bc_writeirq_done='1' then - v.got_irq := '1'; - o.user_irq_next := '1'; - v.irq_logbuf_pos(3 downto 0) := std_logic_vector(unsigned(r.irq_logbuf_pos(3 downto 0))+1); - end if; - - -- External register access - if ins.set_schem_addr='1' then - v.prim_nextaddr := ins.user_input(31 downto 4); - v.prim_jump := '1'; - end if; - if ins.set_async_addr='1' then - v.sec_nextaddr := ins.user_input(31 downto 4); - v.sec_jump := '1'; - end if; - - if ins.set_logbuf_pos='1' then - v.irq_logbuf_pos := ins.user_input(31 downto 2); - end if; - if rtmask_en and ins.set_rt_busmask='1' then - v.rt_busmask := ins.user_input; - end if; - - if ins.user_irq_ack='1' then - v.got_irq := '0'; - end if; - - if rst='0' and syncrst/=0 then - v.st := r_rst.st; - v.got_irq := r_rst.got_irq; - v.prim_run := r_rst.prim_run; - v.prim_cmdaddr := r_rst.prim_cmdaddr; - v.prim_nextaddr := r_rst.prim_nextaddr; - v.prim_desc0_valid := r_rst.prim_desc0_valid; - v.prim_cmd_ready := r_rst.prim_cmd_ready; - v.prim_laststatus := r_rst.prim_laststatus; - v.prim_jump := r_rst.prim_jump; - v.sec_run := r_rst.sec_run; - v.sec_cmdaddr := r_rst.sec_cmdaddr; - v.sec_nextaddr := r_rst.sec_nextaddr; - v.sec_desc0_valid := r_rst.sec_desc0_valid; - v.sec_cmd_ready := r_rst.sec_cmd_ready; - v.sec_laststatus := r_rst.sec_laststatus; - v.sec_jump := r_rst.sec_jump; - v.rt_busmask := r_rst.rt_busmask; - v.got_irq := r_rst.got_irq; - v.irq_logbuf_pos := r_rst.irq_logbuf_pos; - v.got_trig := r_rst.got_trig; - if syncrst>1 then - v := r_rst; - end if; - end if; - - nr <= v; - outs <= o; - dmai <= di; - proti <= pi; - us_restart <= vus_restart; - us_clear <= vus_clear; - - end process; - - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if rst='0' and syncrst=0 then - r <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_bc_proto.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_bc_proto.vhd deleted file mode 100644 index f39eb2c7..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_bc_proto.vhd +++ /dev/null @@ -1,575 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_bc_proto --- File: gr1553b_bc_proto.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B Bus Controller protocol manager state machine ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use work.gr1553b_core.all; -library grlib; -use grlib.stdlib.all; - -entity gr1553b_bc_proto is - generic ( - syncrst: integer range 0 to 2 - ); - - port( - clk: in std_logic; - rst: in std_logic; - - -- Higher layer interface - ins: in gr1553b_bc_proto_in; - outs: out gr1553b_bc_proto_out; - - -- Timer tick - us_restart: out std_logic; - us_clear: out std_logic; - us_tick: in std_logic; - - -- Lower layer tx/rx interface - toll: out gr1553b_codec_in; - fromll: in gr1553b_codec_out - ); - attribute sync_set_reset of rst : signal is "true"; -end; - -architecture rtl of gr1553b_bc_proto is - - -- States: - -- IDLE - start - -- WTXRDY - wait until transmitter ready - -- RT1CMD - start sending first comand word - -- RT2CMD - send 2nd command word (RT2RT only) - -- TXDATA - send data word - -- WAITTX - wait for last sent word to leave transmitter - -- ST1WAITSYNC/DATA - wait for status word from RT1 - -- RXWAITSYNC/DATA - receive data words from RT - -- ST2WAITSYNC/DATA - wait for status word from RT2 (RT2RT only) - -- MSGGAP - 4 us mid-par to mid-sync message gap - -- EXTRAGAP - Extra gap time enabled using the extragap_en bit - - type bc_state is (IDLE,WTXRDY,RT1CMD,RT2CMD,TXDATA,WAITTX,ST1WAITSYNC,ST1WAITDATA,RXWAITSYNC,RXDATA,ST2WAITSYNC,ST2WAITDATA,MSGGAP,EXTRAGAP); - - -- The standard states we should wait minimum 14 us from middle of last - -- data bit to mid of sync pulse. From end of last bit to end of first bit - -- then becomes 16 us. - constant reply_timeout: integer := 15; - -- Maximum time between end of last bit and end of first bit for "continuous" - -- data words. This should be 4 us but we permit some gap. - constant contin_timeout: integer := 5; - constant discont_phase: integer := 1; - -- 4 us minimum intermessage gap <=> 2 us bus off time + phase margin - -- For non-broadcast transfers, we want to check that there are no extra data - -- words coming after the last status or data word - constant gap_time_bc: integer := 3; - constant gap_time_reg: integer := contin_timeout; - - -- Extra time timeout unit of 4 us - constant extra_time_unit: integer := 4; - - constant timer_max: integer := reply_timeout; - - type bcproto_regs is record - st: bc_state; - tfrtype: gr1553b_transfer_type; - status: gr1553b_transfer_status; - - -- For receiving continuous data, the timer is used "free-running" to detect - -- discontinuity. In that mode, it is reset in the transition - -- ST1WAITSYNC->ST1WAITDATA, i.e. when rxstarted goes high. Discontinuity can - -- then be detected when rxstarted='0' and timecnt='1' - -- - -- When used in the "shadow" bus tracking mode, in RXWAITSYNC/DATA it's - -- relative to the rxdone signal. - -- - -- The timer is used as a "regular" timer in ST1/2WAITSYNC and MSGGAP and is - -- reset on transition into these states - timecnt: integer range 0 to 19; - - wcount: std_logic_vector(4 downto 0); - stword1,stword2: std_logic_vector(7 downto 0); - - timeout_dcount: std_logic_vector(3 downto 0); - - shwsync: std_logic; - qbus: std_logic; - dwrap: std_logic; - - -- We need to cache this since the control layer may start fetching the - -- next descriptor while we're waiting - extragap_en: std_logic; - - validcmdA,validcmdB: std_logic; - end record; - - constant r_rst: bcproto_regs := (IDLE,TFR_INVALID,TFR_SUCCESS,0,"00000",x"00",x"00",x"0",'0','0','0','0','0','0'); - - signal r,nr: bcproto_regs; -begin - - comb: process(rst,ins,fromll,r,us_tick) - - variable v: bcproto_regs; - variable o: gr1553b_bc_proto_out; - variable ci: gr1553b_codec_in; - variable vus_restart: std_logic; - variable vus_clear: std_logic; - - variable addr,exp_addr,sa_mc: std_logic_vector(4 downto 0); - variable stword: std_logic_vector(7 downto 0); - variable rto: std_logic; - variable shadow: std_logic; - variable timewrap: std_logic; - variable stsrxdone: std_logic; - variable dec_wc: std_logic; - begin - -- Init vars - v := r; - o := (ready => '0', tfrdone => '0', data_out => fromll.rxword.data, dataout_write => '0', dataout_done => '0', - datain_read => '0', datain_req => '0', validcmdA => r.validcmdA, validcmdB => r.validcmdB, - status => r.status, stword1 => r.stword1, stword2 => r.stword2); - ci := (txdata => (t => DATA, data => ins.data_in), txstart => '0', anybus => '0', txabort => '0', - bussel => ins.tfrconfig.bussel); - vus_restart := '0'; - vus_clear := '0'; - rto := '0'; - shadow := '0'; - timewrap := '0'; - stsrxdone := '0'; - dec_wc := '0'; - v.validcmdA := '0'; - v.validcmdB := '0'; - - if r.status=TFR_TIMEOUT or r.status=TFR_TIMEOUT2 or r.status=TFR_BUSERR or r.status=TFR_LBFAIL then - shadow := '1'; - o.tfrdone := '1'; - end if; - - -- Comb logic - - if us_tick='1' then - - if r.timecnt=15 then stsrxdone := '1'; end if; - - if r.timecnt=19 then - v.timecnt := 0; - timewrap := '1'; - elsif (r.st=ST1WAITSYNC or r.st=ST2WAITSYNC or r.st=EXTRAGAP) and - (r.timeout_dcount /= "0000" and r.timecnt=extra_time_unit-1) then - v.timecnt := 0; - v.timeout_dcount := std_logic_vector(unsigned(r.timeout_dcount) - 1); - else - v.timecnt := r.timecnt+1; - end if; - - if r.timecnt=reply_timeout then rto:='1'; end if; - - end if; - - if r.st=WTXRDY or r.st=RT1CMD or r.st=RT2CMD then - ci.txdata.t := CMD_STAT; - if r.st=RT1CMD or r.st=WTXRDY then - ci.txdata.data := ins.tfrconfig.rtaddr1 & ins.tfrconfig.tr & ins.tfrconfig.samc1 & ins.tfrconfig.wc_mode; - else - ci.txdata.data := ins.tfrconfig.rtaddr2 & '1' & ins.tfrconfig.samc2 & ins.tfrconfig.wc_mode; - end if; - end if; - - case r.st is - - - when IDLE => - o.ready := '1'; - o.tfrdone := '1'; - v.extragap_en := ins.tfrconfig.extragap_en; - vus_clear := '1'; - if ins.tfrstart='1' then - v.stword1 := "00000000"; - v.stword2 := "00000000"; - v.tfrtype := classify_transfer(ins.tfrconfig); - if v.tfrtype /= TFR_INVALID and ins.tfrconfig.dummy='0' then - v.validcmdA := not ins.tfrconfig.bussel; - v.validcmdB := ins.tfrconfig.bussel; - v.st := WTXRDY; - v.status := TFR_SUCCESS; - v.wcount := ins.tfrconfig.wc_mode; - if v.tfrtype=MODECMD_TX or v.tfrtype=MODECMD_RX or - v.tfrtype=MODECMD_RX_BC then - v.wcount := "00001"; - end if; - else - v.st := EXTRAGAP; - if ins.tfrconfig.dummy='1' then - v.status := TFR_SUCCESS; - else - v.status := TFR_BADCMD; - end if; - end if; - end if; - - - when WTXRDY => - vus_clear := '1'; - if fromll.txready='1' then - ci.txstart := '1'; - v.st := RT1CMD; - end if; - - - when RT1CMD => - vus_clear := '1'; - if fromll.lberror='1' or fromll.txready='1' then - -- Error while sending sync pulse - v.st := MSGGAP; - v.status := TFR_LBFAIL; - - elsif fromll.txread_data='1' then - v.st := RT2CMD; - -- Skip command word #2 unless RT-to-RT transfer - if r.tfrtype /= RT2RT and r.tfrtype /= RT2RT_BC then - v.st := TXDATA; - -- Skip transmit data words if appropriate - if r.tfrtype /= CTRL2RT and r.tfrtype /= MODECMD_RX and - r.tfrtype /= CTRL2RT_BC and r.tfrtype /= MODECMD_RX_BC then - v.st := WAITTX; - end if; - - end if; - end if; - - - when RT2CMD => - vus_clear := '1'; - ci.txstart := '1'; - - if fromll.lberror='1' then - ci.txstart := '0'; - v.st := MSGGAP; - v.status := TFR_LBFAIL; - elsif fromll.txread_data='1' then - -- Always fall through to WAITTX (the BC never sends data in RT2RT) - v.st := WAITTX; - end if; - - - when TXDATA => - vus_clear := '1'; - o.datain_req := '1'; - if ins.datain_valid='1' then - ci.txstart := '1'; - end if; - - if fromll.lberror='1' then - ci.txstart := '0'; - v.status := TFR_LBFAIL; - v.st := MSGGAP; - elsif fromll.txready='1' and ins.datain_valid='0' then - v.status := TFR_DMAERR; - v.st := MSGGAP; - -- elsif fromll.txready='1' then - -- vtxstart := '1'; - elsif fromll.txread_data='1' then - o.datain_read := '1'; - v.wcount := std_logic_vector(unsigned(r.wcount)-1); - if v.wcount="00000" then - v.st := WAITTX; - end if; - end if; - - - when WAITTX => - -- Don't start the timer until the command word has passed through loopback - if fromll.lberror='1' then - v.status := TFR_LBFAIL; - v.st := ST1WAITSYNC; -- MSGGAP; - vus_restart := '1'; - elsif fromll.txready='1' and fromll.lbdone='1' then - v.st := ST1WAITSYNC; - vus_restart := '1'; - end if; - - -- Fall through WAITTX->ST1WAITSYNC->ST1WAITDATA->RXDATA->ST2WAIT->MSGGAP - if v.st=ST1WAITSYNC and (r.tfrtype=CTRL2RT_BC or r.tfrtype=MODECMD_BC or r.tfrtype=MODECMD_RX_BC) and - ins.fast_broadcast='1' then - v.st := MSGGAP; - end if; - - - when ST1WAITSYNC | ST2WAITSYNC => - v.shwsync := '0'; - v.dwrap := '0'; - if r.st=ST1WAITSYNC and fromll.lberror='1' then - v.status := TFR_LBFAIL; - -- Following cycle shadow will be '1' - end if; - - -- Heuristic to distinguish between timeout and bus error. - -- There are always "unclean" cases where they can't be told apart. - if us_tick='1' and r.timecnt=reply_timeout-5 then - if fromll.rxact='0' and shadow='0' then - v.qbus := '1'; - else - v.qbus := '0'; - end if; - end if; - - if fromll.rxstarted='1' then - if (r.tfrtype=CTRL2RT_BC or r.tfrtype=MODECMD_BC or r.tfrtype=MODECMD_RX_BC) or - (r.st=ST2WAITSYNC and r.tfrtype=RT2RT_BC) then - v.status := TFR_BUSERR; - end if; - v.st:=ST1WAITDATA; - if r.st=ST2WAITSYNC then v.st:=ST2WAITDATA; end if; - vus_restart := '1'; - v.shwsync := '1'; - - elsif rto='1' then - - if shadow='0' then - v.status := TFR_TIMEOUT; - if r.st=ST2WAITSYNC then v.status := TFR_TIMEOUT2; end if; - if r.qbus='0' then v.status:=TFR_BUSERR; end if; - - if (r.tfrtype=CTRL2RT_BC or r.tfrtype=MODECMD_BC or r.tfrtype=MODECMD_RX_BC) then - v.status := TFR_SUCCESS; - end if; - if r.st=ST2WAITSYNC and r.tfrtype=RT2RT_BC then - v.status := TFR_SUCCESS; - end if; - end if; - - vus_restart := '1'; - v.st := ST1WAITDATA; - if r.st=ST2WAITSYNC then v.st := ST2WAITDATA; end if; - -- If fromll.rxact='1' we keep going, but we will be in shadow mode - if fromll.rxact='0' and r.qbus='1' then - v.st := IDLE; - end if; - end if; - - - when ST1WAITDATA | ST2WAITDATA => - if shadow='1' or (r.tfrtype=CTRL2RT_BC or r.tfrtype=MODECMD_BC or r.tfrtype=MODECMD_RX_BC) or - (r.st=ST2WAITDATA and r.tfrtype=RT2RT_BC) then - - if fromll.rxact='0' and r.shwsync='1' then - v.st := MSGGAP; - elsif (r.shwsync='1' and stsrxdone='1') or (r.shwsync='0' and (fromll.rxact='0' or timewrap='1')) then - v.timecnt := 0; - if r.st=ST1WAITDATA then - v.st := RXWAITSYNC; - else - v.st := MSGGAP; - end if; - end if; - - elsif fromll.rxdone='1' then - -- Validate status word - addr := fromll.rxword.data(15 downto 11); - exp_addr := ins.tfrconfig.rtaddr1; - if r.st=ST1WAITDATA and (r.tfrtype=RT2RT or r.tfrtype=RT2RT_BC) then - exp_addr := ins.tfrconfig.rtaddr2; - end if; - if fromll.rxword.t /= CMD_STAT or addr /= exp_addr then - v.status := TFR_BUSERR; - -- Go into shadow mode - -- v.st := MSGGAP; - -- if r.st=ST2WAITDATA then v.st:=IDLE; end if; - else - stword := fromll.rxword.data(10) & - (fromll.rxword.data(9) or fromll.rxword.data(7) or fromll.rxword.data(6) or fromll.rxword.data(5) ) & - fromll.rxword.data(8) & fromll.rxword.data(4 downto 0); - if r.st=ST1WAITDATA then - v.stword1 := stword; - v.st := RXWAITSYNC; - else - v.stword2 := stword; - v.st := MSGGAP; - end if; - - -- Check instrumentation bit or reserved bits - if stword(6)='1' then - -- We don't stop the processing here. - -- We will probably get another error before the transfer ends, but - -- set RTERROR response as default - v.status := TFR_RTERROR; - end if; - - -- Check message error and busy bits - if fromll.rxword.data(10) = '1' or fromll.rxword.data(3)='1' then - v.status := TFR_RTERROR; - -- Normally we could stop processing here. Except, Transmit - -- Last Command might return a status word with - -- message error bit set followed by a data word. - end if; - end if; - elsif fromll.rxerror='1' then - v.status := TFR_BUSERR; - -- v.st := MSGGAP; - -- if r.st=ST2WAITDATA then v.st:=IDLE; end if; - end if; - - -- Fall through for transfers w/o data - if (v.st=RXWAITSYNC) and r.tfrtype /= RT2CTRL and r.tfrtype /= RT2RT and r.tfrtype /= MODECMD_TX and - r.tfrtype/= RT2RT_BC then - v.st := MSGGAP; - end if; - - - when RXWAITSYNC => - v.dwrap := '0'; - - if shadow='1' then - - if r.timecnt=contin_timeout then - v.st := RXDATA; - end if; - - elsif fromll.rxstarted='1' then - v.st:=RXDATA; - elsif r.timecnt=discont_phase then - v.status := TFR_BUSERR; - if fromll.rxact='0' then v.st := MSGGAP; end if; - end if; - - - when RXDATA => - if r.timecnt=9 and us_tick='1' then v.dwrap:='1'; end if; - - -- Need to reset timeout_count here for second status word in RT-to-RT transfers - v.timeout_dcount := ins.tfrconfig.extratime; - if shadow='1' then - - if fromll.rxact='0' or timewrap='1' then - dec_wc := '1'; - end if; - - elsif fromll.rxdone='1' and fromll.rxword.t=DATA then - o.dataout_write := '1'; - v.dwrap := '0'; - dec_wc := '1'; - elsif fromll.rxerror='1' or fromll.rxdone='1' then - v.status := TFR_BUSERR; - -- vnst := MSGGAP; Keep going in shadow mode instead - -- Special case if phrxdone already happened - if r.dwrap='1' then dec_wc:='1'; end if; - - end if; - - if dec_wc='1' then - v.wcount := std_logic_vector(unsigned(r.wcount)-1); - if v.wcount="00000" then - v.st := ST2WAITSYNC; - vus_restart := '1'; - if r.tfrtype /= RT2RT and (ins.fast_broadcast='1' or r.tfrtype /= RT2RT_BC) then - v.st := MSGGAP; - end if; - else - v.st := RXWAITSYNC; - end if; - end if; - - - when MSGGAP => - - if r.tfrtype=RT2CTRL or r.tfrtype=RT2RT or r.tfrtype=MODECMD_TX or r.tfrtype=RT2RT_BC then - o.dataout_done := '1'; - end if; - - if (r.tfrtype=CTRL2RT or r.tfrtype=RT2CTRL or r.tfrtype=RT2RT or r.tfrtype=MODECMD or r.tfrtype=MODECMD_TX or - r.tfrtype=MODECMD_RX or r.tfrtype=RT2RT_BC) and r.status=TFR_SUCCESS then - - if ins.data_error='1' then - v.status := TFR_DMAERR; - -- Check for extra word - elsif fromll.rxstarted='1' then - v.status := TFR_BUSERR; - elsif r.timecnt = gap_time_reg then - o.tfrdone := '1'; - v.timecnt := 0; - v.st := EXTRAGAP; - end if; - - else - - -- Broadcast command or error - o.tfrdone := '1'; - if r.timecnt = gap_time_bc then - v.timecnt := 0; - v.st := EXTRAGAP; - end if; - - end if; - - when EXTRAGAP => - o.tfrdone := '1'; - if r.extragap_en='0' or r.timeout_dcount="0000" then - v.st := IDLE; - end if; - - end case; - - if v.st=MSGGAP and r.st /= MSGGAP then - vus_restart := '1'; - end if; - - if vus_restart='1' or vus_clear='1' then - v.timecnt := 0; - v.timeout_dcount := ins.tfrconfig.extratime; - end if; - - if rst='0' and syncrst/=0 then - v.st := r_rst.st; - v.status := r_rst.status; - if syncrst > 1 then - v := r_rst; - end if; - end if; - - if (r.st=WTXRDY or r.st=RT1CMD or r.st=RT2CMD) and - (r.tfrtype=CTRL2RT or r.tfrtype=MODECMD_RX or r.tfrtype=CTRL2RT_BC or r.tfrtype=MODECMD_RX_BC) then - o.datain_req := '1'; - end if; - - -- Assign outputs - nr <= v; - toll <= ci; - us_restart <= vus_restart; - us_clear <= vus_clear; - outs <= o; - - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if rst='0' and syncrst=0 then - r <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_bm.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_bm.vhd deleted file mode 100644 index a623ab65..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_bm.vhd +++ /dev/null @@ -1,618 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_bm --- File: gr1553b_bm.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B Bus monitor controller ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -library grlib; -use grlib.stdlib.all; -use work.gr1553b_core.all; - -entity gr1553b_bm is - generic ( - filters: integer range 0 to 1; - syncrst: integer range 0 to 2 - ); - port ( - clk: in std_logic; - rst: in std_logic; - - ins: in gr1553b_bm_in; - outs: out gr1553b_bm_out; - - busdata: in gr1553b_bm_tap; - - dmai: out gr1553b_dma2_in_bm; - dmao: in gr1553b_dma2_out - ); - attribute sync_set_reset of rst : signal is "true"; -end; - -architecture rtl of gr1553b_bm is - - constant logreg_bits: integer := 19; -- 19+3 bits -> 4 Mbyte - - type bm_dma_state is (IDLE, WAITSTART, WAITDONE, DMAERROR); - type bm_word_process_state is (EMPTY, - CHECKADDR,CHECKSA,CHECKMC,WRITECMD, - WAITRECV,WAITRECVBC, - WAITSDS,WAITDS,WAITSD,WAITD,SKIPRECV,SKIPDSD,SKIPD - ); - - type bm_regs is record - dst: bm_dma_state; - wpst: bm_word_process_state; - wpbus: std_logic; - wprtaddr: std_logic_vector(4 downto 0); - wprtaddr2: std_logic_vector(4 downto 0); - skipping_recv: std_logic; - wpbc: std_logic; - outbuf_base: std_logic_vector(28 downto logreg_bits); - outbuf_start: std_logic_vector(logreg_bits-1 downto 0); - outbuf_end: std_logic_vector(logreg_bits-1 downto 0); - outbuf_pos: std_logic_vector(logreg_bits-1 downto 0); - rtaddr_filter: std_logic_vector(31 downto 0); - subaddr_filter: std_logic_vector(31 downto 0); - modecode_filter: std_logic_vector(31 downto 0); - -- Received valid data words. - A_word, B_word: gr1553b_word; - A_word_valid, B_word_valid: std_logic; - -- Data to be written to ring buffer - Adata,Bdata: std_logic_vector(63 downto 0); - a_dv,b_dv,dmasel: std_logic; - end record; - - constant r_rst: bm_regs := - (IDLE,EMPTY,'0',"00000","00000",'0','0', - (others => '0'), (others => '0'), (others => '0'), (others => '0'), - (others => '1'), (others => '1'), (others => '1'), - gr1553b_word_default, gr1553b_word_default, '0', '0', - (63=>'1', others=>'0'), (63=>'1', others=>'0'), '0', '0', '0'); - - signal r,nr: bm_regs; - - -- Shared 32-to-1 mux - signal muxin: std_logic_vector(31 downto 0); - signal muxidx: std_logic_vector(4 downto 0); - signal muxout: std_logic; - -begin - - infermux: process(muxin,muxidx) - begin - if notx(muxidx) then - muxout <= muxin(to_integer(unsigned(muxidx))); - else - muxout <= 'U'; - end if; - end process; - - comb: process(r,rst,ins,busdata,dmao,muxout) - variable v: bm_regs; - variable vout: gr1553b_bm_out; - variable vdmai: gr1553b_dma2_in_bm; - variable at,bt,wat,wbt: std_logic; - variable outbuf_pos_p1: std_logic_vector(logreg_bits-1 downto 0); - variable wpword,wpotherword: gr1553b_word; - variable wpword_valid,wpotherword_valid: std_logic; - variable wpword_status: std_logic; - variable wp_dv: std_logic; - variable vmuxin: std_logic_vector(31 downto 0); - variable vmuxsel: std_logic_vector(4 downto 0); - variable write_cmdword,kill_cmdword: boolean; - variable write_other_cmdword, kill_other_cmdword: boolean; - variable write_cmdword_A: boolean; - variable write_cmdword_B: boolean; - begin - v := r; - vout := (dmaerror_next => '0', outbuf_start => r.outbuf_base & r.outbuf_start & "000", - outbuf_end => r.outbuf_base & r.outbuf_end & "111", - outbuf_pos => r.outbuf_base & r.outbuf_pos & "000", rtaddr_filter => r.rtaddr_filter, - subaddr_filter => r.subaddr_filter, modecode_filter => r.modecode_filter, - dmaerror => '0', wrapping => '0'); - vdmai := (write_data => '0', ringbuf_addr => r.outbuf_base & r.outbuf_pos, - logdata => r.Adata); - - vmuxin := r.rtaddr_filter; - vmuxsel := wpword.data(15 downto 11); - write_cmdword := false; - kill_cmdword := false; - write_other_cmdword := false; - kill_other_cmdword := false; - write_cmdword_A := false; - write_cmdword_B := false; - - -- Misc. comb logic - - if r.outbuf_pos=r.outbuf_end then - outbuf_pos_p1 := r.outbuf_start; - else - outbuf_pos_p1 := std_logic_vector(unsigned(r.outbuf_pos)+1); - end if; - - if busdata.word_A.t=CMD_STAT then at:='1'; else at:='0'; end if; - if busdata.word_B.t=CMD_STAT then bt:='1'; else bt:='0'; end if; - if r.A_word.t=CMD_STAT then wat:='1'; else wat:='0'; end if; - if r.B_word.t=CMD_STAT then wbt:='1'; else wbt:='0'; end if; - - if r.wpbus='0' then - wpword:=r.A_word; - wpotherword := r.B_word; - wpword_valid := r.A_word_valid; - wpotherword_valid := r.B_word_valid; - wp_dv := r.A_dv; - else - wpword:=r.B_word; - wpotherword := r.A_word; - wpword_valid := r.B_word_valid; - wpotherword_valid := r.A_word_valid; - wp_dv := r.B_dv; - end if; - - if wpword_valid='1' and wpword.t=CMD_STAT and wpword.data(15 downto 11)=r.wprtaddr and - wpword.data(9)='0' and wpword.data(7 downto 5)="000" then - wpword_status := '1'; - else - wpword_status := '0'; - end if; - - -- Check for new words - if r.A_word_valid='0' and busdata.datavalid_A='1' and ins.enable='1' then - v.A_word := busdata.word_A; - v.A_word_valid := '1'; - end if; - if r.B_word_valid='0' and busdata.datavalid_B='1' and ins.enable='1' then - v.B_word := busdata.word_B; - v.B_word_valid := '1'; - end if; - - if filters /= 0 then - - -- Word handling state machine - case r.wpst is - - when EMPTY => - if r.A_word_valid='1' then - - v.wpbus := '0'; - if r.A_word.t=CMD_STAT then - v.wpst := CHECKADDR; - elsif ins.log_stray_data='1' then - write_cmdword_A := true; - else - v.A_word_valid := '0'; - end if; - - elsif r.B_word_valid='1' then - - v.wpbus := '1'; - if r.B_word.t=CMD_STAT then - v.wpst := CHECKADDR; - elsif ins.log_stray_data='1' then - write_cmdword_B := true; - else - v.B_word_valid := '0'; - end if; - - end if; - - when CHECKADDR => - vmuxin := r.rtaddr_filter; - vmuxsel := wpword.data(15 downto 11); - v.wprtaddr := wpword.data(15 downto 11); - v.wprtaddr2 := r.wprtaddr; - - if wpword.data(15 downto 11)="11111" then v.wpbc := '1'; else v.wpbc := '0'; end if; - - if muxout='1' then - v.wpst := CHECKSA; - else - if wpword.data(15 downto 11)="11111" then - -- Broadcast transfers only have data words after the command word. - -- Exception is RT->RT broadcast. However, the following transmit - -- command in that case will be handled correctly as a separate command. - v.wpst := SKIPD; - elsif wpword.data(9 downto 5)/="11111" and wpword.data(9 downto 5)/="00000" and wpword.data(10)='0' then - -- Receive command - v.wpst := SKIPRECV; - else - -- This covers all other transfer types - v.wpst := SKIPDSD; - end if; - kill_cmdword := true; - end if; - - when CHECKSA => - vmuxin := r.subaddr_filter; - vmuxsel := wpword.data(9 downto 5); - if muxout='1' then - if wpword.data(9 downto 5)="11111" or wpword.data(9 downto 5)="00000" then - v.wpst := CHECKMC; - else - v.wpst := WRITECMD; - end if; - else - -- See comments above. - if wpword.data(15 downto 11)="11111" then - v.wpst := SKIPD; - elsif wpword.data(9 downto 5)/="11111" and wpword.data(9 downto 5)/="00000" and wpword.data(10)='0' then - v.wpst := SKIPRECV; - else - v.wpst := SKIPDSD; - end if; - kill_cmdword := true; - end if; - - when CHECKMC => - vmuxin := mcmask_to_muxin(r.modecode_filter, true, ins.log_reserved_mcs); - vmuxsel := mc_to_muxidx(wpword.data(4 downto 0), r.wpbc); - if (wpword.data(4 downto 0)/="00010" and (wpword.data(3)='0' or wpword.data(4 downto 0)="01000") and muxout='1') or - (wpword.data(4 downto 0)="00010" and r.modecode_filter(15)='1') or - (wpword.data(3)='1' and wpword.data(4 downto 0)/="01000" and ins.log_reserved_mcs='1') then - v.wpst := WRITECMD; - elsif r.wprtaddr="11111" then - v.wpst := SKIPD; - kill_cmdword := true; - else - v.wpst := SKIPDSD; - kill_cmdword := true; - end if; - - when WRITECMD => - if wp_dv='0' then - write_cmdword := true; - if wpword.data(9 downto 5)="11111" or wpword.data(9 downto 5)="00000" then - -- Mode code - if wpword.data(15 downto 11)="11111" then - -- Mode code broadcast - v.wpst := WAITD; - elsif wpword.data(10)='1' then - -- Mode code transmit - v.wpst := WAITSD; - else - -- Mode code receive - v.wpst := WAITDS; - end if; - elsif wpword.data(10)='0' then - -- Receive - if wpword.data(15 downto 11)="11111" then - v.wpst := WAITRECVBC; - else - v.wpst := WAITRECV; - end if; - else - -- Transmit - if r.skipping_recv='0' then - v.wpst := WAITSD; - else - v.wpst := WAITSDS; - end if; - end if; - end if; - - when WAITRECV => - if wpword_valid='1' and wp_dv='0' then - write_cmdword := true; - if wpword.t=DATA then - v.wpst := WAITDS; - else - v.wprtaddr := wpword.data(15 downto 11); - v.wprtaddr2 := r.wprtaddr; - v.wpst := WAITSDS; - end if; - end if; - - when WAITRECVBC => - if wpword_valid='1' and wp_dv='0' then - v.wprtaddr := wpword.data(15 downto 11); - v.wprtaddr2 := r.wprtaddr; - write_cmdword := true; - if wpword.t=DATA then - v.wpst := WAITD; - else - v.wpst := WAITSD; - end if; - end if; - - when WAITSDS => - if wpword_valid='1' and wp_dv='0' then - if wpword_status='1' then - write_cmdword := true; - v.wpst := WAITDS; - v.wprtaddr := r.wprtaddr2; - else - -- Protocol violation to send data or new command here - v.wpst := EMPTY; - end if; - end if; - - when WAITDS => - if wpword_valid='1' and wp_dv='0' then - if wpword.t=DATA then - write_cmdword := true; - elsif wpword_status='1' then - if r.skipping_recv='1' then - kill_cmdword := true; - v.skipping_recv := '0'; - else - write_cmdword := true; - end if; - v.wpst := EMPTY; - else - v.wpst := EMPTY; - end if; - end if; - - when WAITSD => - if wpword_valid='1' and wp_dv='0' then - if wpword.t=DATA then - -- Protocol violation to send data here - v.wpst := EMPTY; - elsif wpword_status='1' then - write_cmdword := true; - v.wpst := WAITD; - else - v.wpst := EMPTY; - end if; - end if; - - when WAITD => - if wpword_valid='1' and wp_dv='0' then - if wpword.t=DATA then - write_cmdword := true; - else - v.wpst := EMPTY; - end if; - end if; - - when SKIPRECV => - if wpword_valid='1' then - if wpword.t=CMD_STAT then - -- Set the skipping_recv flag to remember the status word coming - -- after the following (transmit) transfer - v.skipping_recv := '1'; - v.wpst := EMPTY; - else - v.skipping_recv := '0'; - kill_cmdword := true; - v.wpst := SKIPDSD; - end if; - end if; - - when SKIPDSD => - if wpword_valid='1' then - if wpword.t=DATA then - kill_cmdword := true; - elsif wpword_status='1' then - kill_cmdword := true; - if r.skipping_recv='1' then - v.wprtaddr := r.wprtaddr2; - else - v.wpst := SKIPD; - end if; - v.skipping_recv := '0'; - else - -- Must be new command (addresses don't match) - v.wpst := EMPTY; - end if; - end if; - - when SKIPD => - if wpword_valid='1' then - if wpword.t=DATA then - kill_cmdword := true; - else - v.wpst := EMPTY; - end if; - end if; - - end case; - - -- Handle superseding commands - if r.wpst /= EMPTY and r.wpst /= CHECKADDR and r.wpst /= CHECKSA and r.wpst /= CHECKMC and - r.wpst /= WRITECMD then - - if wpword_valid='0' and wpotherword_valid='1' then - if wpotherword.t=CMD_STAT then - v.wpst := CHECKADDR; - v.wpbus := not v.wpbus; - elsif ins.log_stray_data='1' then - write_other_cmdword := true; - else - kill_other_cmdword := true; - end if; - end if; - - end if; - - if ins.enable='0' then - v.wpst := EMPTY; - end if; - - if write_cmdword then - if r.wpbus='1' then write_cmdword_B:=true; else write_cmdword_A:=true; end if; - elsif kill_cmdword then - if r.wpbus='1' then v.B_word_valid:='0'; else v.A_word_valid:='0'; end if; - end if; - if write_other_cmdword then - if r.wpbus='1' then write_cmdword_A:=true; else write_cmdword_B:=true; end if; - elsif kill_other_cmdword then - if r.wpbus='1' then v.A_word_valid:='0'; else v.B_word_valid:='0'; end if; - end if; - - end if; -- filters /= 0 - - if filters=0 then - if r.A_word_valid='1' then - write_cmdword_A:=true; - end if; - if r.B_word_valid='1' then - write_cmdword_b:=true; - end if; - end if; - - -- Handle transferring command word to DMA buffer - if write_cmdword_A and r.a_dv='0' then - v.a_dv := '1'; - v.Adata := "10000000" & ins.timeval & "000000000000" & '0' & "00" & wat & r.A_word.data; - v.A_word_valid := '0'; - end if; - if write_cmdword_B and r.b_dv='0' then - v.b_dv := '1'; - v.Bdata := "10000000" & ins.timeval & "000000000000" & '1' & "00" & wbt & r.B_word.data; - v.B_word_valid := '0'; - end if; - - - -- Check for new error events - - if v.a_dv='0' and busdata.started_A='1' and ins.log_errors='1' and ins.enable='1' and - (busdata.lostsync_A='1' or busdata.badparity_A='1') then - - v.Adata := "10000000" & ins.timeval & "000000000000" & '0' & busdata.badparity_A & busdata.lostsync_A & - at & busdata.word_A.data; - v.a_dv := '1'; - end if; - - if v.b_dv='0' and busdata.started_B='1' and ins.log_errors='1' and ins.enable='1' and - (busdata.lostsync_B='1' or busdata.badparity_B='1') then - - v.Bdata := "10000000" & ins.timeval & "000000000000" & '1' & busdata.badparity_B & busdata.lostsync_B & - bt & busdata.word_B.data; - v.b_dv := '1'; - end if; - - -- Handle DMA transfer - if r.dmasel='1' then vdmai.logdata:=r.Bdata; else vdmai.logdata:=r.Adata; end if; - - case r.dst is - when IDLE => - if r.a_dv='1' then - v.dst := WAITSTART; - v.dmasel := '0'; - end if; - if r.b_dv='1' then - v.dst := WAITSTART; - v.dmasel := '1'; - end if; - - when WAITSTART => - vdmai.write_data := '1'; - if dmao.bm_progress='1' then v.dst:=WAITDONE; end if; - - when WAITDONE => - if dmao.desc_dmaerror='1' then - v.dst := DMAERROR; - vout.dmaerror_next := '1'; - elsif dmao.bm_progress='0' then - if r.dmasel='1' then - v.b_dv := '0'; - else - v.a_dv := '0'; - end if; - v.dst := IDLE; - v.outbuf_pos := outbuf_pos_p1; - if r.outbuf_pos=r.outbuf_end then - vout.wrapping := '1'; - end if; - end if; - - when DMAERROR => - vout.dmaerror := '1'; - if ins.dmaerror_ack='1' then v.dst := IDLE; end if; - - end case; - - -- When resetting the BM due to a DMA error, make sure old data goes away - if r.dst=DMAERROR and ins.enable='0' then - v.a_dv := '0'; - v.b_dv := '0'; - end if; - - -- External register access - if ins.set_outbuf_start='1' then - v.outbuf_base := ins.user_input(31 downto logreg_bits+3); - v.outbuf_start := ins.user_input(logreg_bits+2 downto 3); - end if; - if ins.set_outbuf_end='1' then - v.outbuf_end := ins.user_input(logreg_bits+2 downto 3); - end if; - if ins.set_outbuf_pos='1' then - v.outbuf_pos := ins.user_input(logreg_bits+2 downto 3); - end if; - if ins.set_rtaddr_filter='1' then - v.rtaddr_filter := ins.user_input; - end if; - if ins.set_subaddr_filter='1' then - v.subaddr_filter := ins.user_input; - end if; - if ins.set_modecode_filter='1' then - v.modecode_filter := ins.user_input; - end if; - - if filters=0 then - v.rtaddr_filter := r_rst.rtaddr_filter; - v.subaddr_filter := r_rst.subaddr_filter; - v.modecode_filter := r_rst.modecode_filter; - end if; - - if rst='0' and syncrst/=0 then - v.dst := r_rst.dst; - v.wpst := r_rst.wpst; - v.a_dv := r_rst.a_dv; - v.b_dv := r_rst.b_dv; - v.A_word_valid := r_rst.A_word_valid; - v.B_word_valid := r_rst.B_word_valid; - v.rtaddr_filter := r_rst.rtaddr_filter; - v.subaddr_filter := r_rst.subaddr_filter; - v.modecode_filter := r_rst.modecode_filter; - v.outbuf_base := r_rst.outbuf_base; - v.outbuf_start := r_rst.outbuf_start; - v.outbuf_end := r_rst.outbuf_end; - v.outbuf_pos := r_rst.outbuf_pos; - v.skipping_recv := r_rst.skipping_recv; - if syncrst > 1 then - v := r_rst; - end if; - end if; - - nr <= v; - outs <= vout; - dmai <= vdmai; - muxin <= vmuxin; - muxidx <= vmuxsel; - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if rst='0' and syncrst=0 then - r <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_codec.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_codec.vhd deleted file mode 100644 index e78aba2c..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_codec.vhd +++ /dev/null @@ -1,463 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_codec --- File: gr1553b_codec.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B Dual-bus codec with loopback detection ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use work.gr1553b_core.all; - -entity gr1553b_codec is - generic( - codec_clk_freq_mhz: integer; - sameclk: integer range 0 to 1 := 1; - rx_synclength: integer := 2; - regout: boolean := true; - syncrst: integer range 0 to 2 - ); - port( - clk: in std_logic; - rst: in std_logic; - - ins: in gr1553b_codec_in; - outs: out gr1553b_codec_out; - - bmtap: out gr1553b_bm_tap; - - shutdownA: in std_logic; - shutdownB: in std_logic; - - codec_clk: in std_logic; - codec_rst: in std_logic; - - busA_tx_pos: out std_logic; - busA_tx_neg: out std_logic; - busA_rx_pos: in std_logic; - busA_rx_neg: in std_logic; - busB_tx_pos: out std_logic; - busB_tx_neg: out std_logic; - busB_rx_pos: in std_logic; - busB_rx_neg: in std_logic - ); -end; - -architecture rtl of gr1553b_codec is - - signal seri: gr1553b_tx1_in; - signal sero: gr1553b_tx1_out; - signal ser_biti, out_biti: gr1553b_tx2_in; - signal ser_bito, out_bito: gr1553b_tx2_out; - - signal A_bito_codec, A_bito_amba, B_bito_codec, B_bito_amba: gr1553b_rx2_out; - signal A_fb_codec, A_fb_amba_in, A_fb_amba_out, B_fb_codec, B_fb_amba_in, B_fb_amba_out: gr1553b_rx2_fb; - signal A_s3o, B_s3o: gr1553b_rx3_out; - signal A_rxabort, B_rxabort: std_logic; - - signal txout_pos,txout_neg: std_logic; - signal busA_reinit,busB_reinit: std_logic; - - signal lb_bito: gr1553b_rx2_out; - signal lb_readdata,lb_datavalid,lb_error,lb_done,lb_gapblock: std_logic; - - type ll_regs is record - txbussel: std_logic; - txmask: std_logic; - B_dv_deferred: std_logic; - B_rxerr_deferred: std_logic; - end record; - - constant r_rst: ll_regs := ('0','0','0','0'); - - -- Regs clocked by codec_clk - type ll_cc_regs is record - txAP,txBP,txAN,txBN: std_logic; - txbus1,txbus2: std_logic; - txstartA,txstartB: std_logic; - end record; - - constant ccr_rst: ll_cc_regs := ('0','0','0','0','0','0','0','0'); - - signal r,nr: ll_regs; - signal ccr,nccr: ll_cc_regs; - signal oreg,noreg: gr1553b_codec_out; - -begin - - ----------------------------------------------------------------------------- - -- Transmitter components - ----------------------------------------------------------------------------- - txsg: if sameclk=0 generate - txsync0: gr1553b_tx12sync - generic map (syncrst => syncrst) - port map( - ser_clk => clk, - ser_rst => rst, - ser_biti => ser_biti, - ser_bito => ser_bito, - out_clk => codec_clk, - out_rst => codec_rst, - out_biti => out_biti, - out_bito => out_bito - ); - end generate; - txnsg: if sameclk=1 generate - ser_bito <= out_bito; - out_biti <= ser_biti; - end generate; - - tx10: gr1553b_tx1 - generic map (syncrst => syncrst) - port map( - clk=>clk, rst=>rst, - seri => seri, - sero => sero, - biti => ser_biti, - bito => ser_bito - ); - txout0: gr1553b_tx2 - generic map(clk_freq_mhz => codec_clk_freq_mhz, txreg => false, syncrst => syncrst) - port map( - clk=>codec_clk, rst=>codec_rst, - biti => out_biti, - bito => out_bito, - txout_pos=>txout_pos,txout_neg=>txout_neg - ); - - ----------------------------------------------------------------------------- - -- Receiver components - ----------------------------------------------------------------------------- - rxA12: gr1553b_rx12v5 - generic map (synclength => rx_synclength, - syncrst => syncrst) - port map (clk => codec_clk, rst => codec_rst, - rxin_p => busA_rx_pos, rxin_n => busA_rx_neg, - outs => A_bito_codec, fb => A_fb_codec, - reinit => busA_reinit); - - rxB12: gr1553b_rx12v5 - generic map (synclength => rx_synclength, - syncrst => syncrst) - port map (clk => codec_clk, rst => codec_rst, - rxin_p => busB_rx_pos, rxin_n => busB_rx_neg, - outs => B_bito_codec, fb => B_fb_codec, - reinit => busB_reinit); - - rxA2des: gr1553b_rx3 - generic map (syncrst => syncrst) - port map( - clk => clk, rst => rst, abort => A_rxabort, - bito => A_bito_amba, - s2fb => A_fb_amba_out, - s3o => A_s3o - ); - - rxB2des: gr1553b_rx3 - generic map (syncrst => syncrst) - port map( - clk => clk, rst => rst, abort => B_rxabort, - bito => B_bito_amba, - s2fb => B_fb_amba_out, - s3o => B_s3o - ); - - rxsg: if sameclk=0 generate - rxsyncA: gr1553b_rx23sync - generic map (syncrst => syncrst) - port map ( - deser_clk => clk, - deser_rst => rst, - deser_bito => A_bito_amba, - deser_fb => A_fb_amba_in, - bit_clk => codec_clk, - bit_rst => codec_rst, - bit_bito => A_bito_codec, - bit_fb => A_fb_codec - ); - rxsyncB: gr1553b_rx23sync - generic map (syncrst => syncrst) - port map ( - deser_clk => clk, - deser_rst => rst, - deser_bito => B_bito_amba, - deser_fb => B_fb_amba_in, - bit_clk => codec_clk, - bit_rst => codec_rst, - bit_bito => B_bito_codec, - bit_fb => B_fb_codec - ); - end generate; - rxnsg: if sameclk=1 generate - rxnsgp: process(clk) - begin - if rising_edge(clk) then - A_bito_amba <= A_bito_codec; - B_bito_amba <= B_bito_codec; - A_fb_codec <= A_fb_amba_in; - B_fb_codec <= B_fb_amba_in; - end if; - end process; - end generate; - - ----------------------------------------------------------------------------- - -- Loopback checker - ----------------------------------------------------------------------------- - - lb0: gr1553b_loopback - generic map (syncrst => syncrst) - port map( - clk=>clk, rst=>rst, - rxo => lb_bito, - txi => seri, - txo => sero, - lberror => lb_error, - lbdone => lb_done, - lbread_data => lb_readdata, - lbdata_valid => lb_datavalid, - gapblock => lb_gapblock - ); - - ----------------------------------------------------------------------------- - -- Glue logic - ----------------------------------------------------------------------------- - - comb: process(ins,shutdownA,shutdownB, - sero, - A_bito_amba,B_bito_amba,A_s3o,B_s3o,A_fb_amba_out,B_fb_amba_out, - lb_readdata,lb_datavalid,lb_error,lb_done,lb_gapblock, - r,oreg, rst) - variable v: ll_regs; - variable rp,rn: std_logic; - variable vrxbus,vrxstarted,vrxerror,vrxdone: std_logic; - variable vrxword: gr1553b_word; - variable vo,vod: gr1553b_codec_out; - variable vlb_bito: gr1553b_rx2_out; - variable vseri: gr1553b_tx1_in; - variable A_datavalid,B_datavalid: std_logic; - variable A_rxstarted, B_rxstarted: std_logic; - variable vrxabort_a,vrxabort_b: std_logic; - variable Afb,Bfb: gr1553b_rx2_fb; - begin - v := r; - vo := ( - txready => sero.ready, - lbdone => lb_done, - lberror => lb_error, - rxstarted => '0', - rxerror => '0', - rxdone => '0', - rxbus => '0', - rxword => gr1553b_word_default, - txread_data => lb_readdata, - rxact => '0' - ); - - --------------------------------------------------------------------------- - -- Loopback checker - - A_datavalid := A_s3o.datavalid; - B_datavalid := B_s3o.datavalid; - A_rxstarted := A_s3o.started; - B_rxstarted := B_s3o.started; - Afb := A_fb_amba_out; - Bfb := B_fb_amba_out; - - if ins.txstart='1' and sero.ready='1' then - v.txbussel := ins.bussel; - v.txmask := '0'; - end if; - - if r.txbussel='1' then - vlb_bito := B_bito_amba; - if lb_datavalid='1' then B_datavalid := '0'; end if; - if lb_done='0' then B_rxstarted := '0'; end if; - Bfb.gapblock := Bfb.gapblock or lb_gapblock; - else - vlb_bito := A_bito_amba; - if lb_datavalid='1' then A_datavalid := '0'; end if; - if lb_done='0' then A_rxstarted := '0'; end if; - Afb.gapblock := Afb.gapblock or lb_gapblock; - end if; - - lb_bito <= vlb_bito; - A_fb_amba_in <= Afb; - B_fb_amba_in <= Bfb; - - --------------------------------------------------------------------------- - -- Receiver selection - - -- Choose bus. - -- If ins.anybus='1' and both receivers have valid data, we pick - -- the selected bus. - - v.B_dv_deferred := '0'; - v.B_rxerr_deferred := '0'; - - vrxbus := ins.bussel; - if shutdownA='1' then - vrxbus := '1'; - elsif shutdownB='1' then - vrxbus := '0'; - elsif ins.anybus='1' and A_datavalid='1' then - vrxbus := '0'; - v.B_dv_deferred := B_datavalid; - v.B_rxerr_deferred := B_s3o.lostsync or B_s3o.badparity; - elsif ins.anybus='1' and (B_datavalid='1' or r.B_dv_deferred='1') then - vrxbus:='1'; - end if; - - if vrxbus='1' then - vrxstarted := B_rxstarted; - vrxerror := (B_s3o.lostsync or B_s3o.badparity) or r.B_rxerr_deferred; - vrxdone := B_datavalid or r.B_dv_deferred; - vrxword := B_s3o.word; - else - vrxstarted := A_rxstarted; - vrxerror := A_s3o.lostsync or A_s3o.badparity; - vrxdone := A_datavalid; - vrxword := A_s3o.word; - end if; - - vo.rxbus := vrxbus; - vo.rxstarted := vrxstarted; - vo.rxerror := vrxerror; - vo.rxdone := vrxdone; - vo.rxword := vrxword; - - if ins.bussel='1' then vo.rxact:=B_bito_amba.act; else vo.rxact:=A_bito_amba.act; end if; - - --------------------------------------------------------------------------- - -- Transmitter inputs - - vrxabort_a := '0'; vrxabort_b := '0'; - vseri := (abort => '0', start => ins.txstart, word => ins.txdata); - if lb_error='1' or ins.txabort='1' or (regout and oreg.lberror='1') then - vseri.abort := '1'; - v.txmask := '1'; - end if; - if lb_error='1' or (regout and oreg.lberror='1') or (ins.txabort='1' and lb_done='0') then - vrxabort_a := not r.txbussel; - vrxabort_b := r.txbussel; - end if; - - seri <= vseri; - A_rxabort <= vrxabort_a; - B_rxabort <= vrxabort_b; - - --------------------------------------------------------------------------- - -- Drive outputs - - vod := oreg; - vod.txread_data := lb_readdata; - vod.txready := sero.ready; - - if rst = '0' and syncrst /= 0 then - v.txbussel := '0'; - v.txmask := '0'; - end if; - - noreg <= vo; - if regout then - outs <= vod; - else - outs <= vo; - end if; - - bmtap <= (started_A => A_s3o.started, - datavalid_A => A_s3o.datavalid, - lostsync_A => A_s3o.lostsync, - badparity_A => A_s3o.badparity, - word_A => A_s3o.word, - started_B => B_s3o.started, - datavalid_B => B_s3o.datavalid, - lostsync_B => B_s3o.lostsync, - badparity_B => B_s3o.badparity, - word_B => B_s3o.word); - - nr <= v; - end process; - - cccomb: process(r,txout_pos,txout_neg,ccr,codec_rst,out_bito,shutdownA,shutdownB) - variable v: ll_cc_regs; - variable txbus: std_logic; - begin - v := ('0','0','0','0','0','0','0','0'); - v.txbus1 := r.txbussel; - v.txbus2 := ccr.txbus1; - txbus := ccr.txbus2; - if sameclk/=0 then txbus:=r.txbussel; end if; - if txbus='0' then - v.txAP := txout_pos; - v.txAN := txout_neg; - v.txstartA := out_bito.txstarting; - end if; - if txbus='1' then - v.txBP := txout_pos; - v.txBN := txout_neg; - v.txstartB := out_bito.txstarting; - end if; - -- Gate TX outputs with shutdownA/B and txmask. Gating for shutdown - -- signals should not be needed unless wehave an internal fault - -- (the core never transmits on a shutdown bus). - -- Gating with txmask can happen in case of bus switching or loopback - -- error, but should not happen in normal operation. - if shutdownA='1' or r.txmask='1' then - v.txAP:='0'; v.txAN:='0'; - end if; - if shutdownB='1' or r.txmask='1' then - v.txBP:='0'; v.txBN:='0'; - end if; - if codec_rst='0' and syncrst/=0 then - v := ccr_rst; - end if; - nccr <= v; - busA_tx_pos <= ccr.txAP; - busA_tx_neg <= ccr.txAN; - busB_tx_pos <= ccr.txBP; - busB_tx_neg <= ccr.txBN; - busA_reinit <= ccr.txstartA; - busB_reinit <= ccr.txstartB; - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - oreg <= noreg; - r <= nr; - end if; - if syncrst=0 and rst='0' then - oreg <= gr1553b_codec_out_zero; - r <= r_rst; - end if; - end process; - - ccregs: process(codec_clk,codec_rst) - begin - if rising_edge(codec_clk) then - ccr <= nccr; - end if; - if syncrst=0 and codec_rst='0' then - ccr <= ccr_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_core.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_core.vhd deleted file mode 100644 index 2e12b450..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_core.vhd +++ /dev/null @@ -1,1025 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Package: gr1553b_core --- File: gr1553b_core.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B internal components, types and functions. ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.ahb_mst_in_type; -use grlib.amba.ahb_mst_out_type; -use grlib.amba.apb_slv_in_type; -use grlib.amba.apb_slv_out_type; -library gaisler; -use gaisler.gr1553b_pkg.all; - -package gr1553b_core is - - constant gr1553b_version: integer := 0; - constant gr1553b_cfgver: integer := 0; - - type gr1553b_word_type is (CMD_STAT, DATA); - function wt_to_sl(wt: gr1553b_word_type) return std_logic; - function sl_to_wt(sl: std_logic) return gr1553b_word_type; - - type gr1553b_word is record - t: gr1553b_word_type; - data: std_logic_vector(15 downto 0); - end record; - - constant gr1553b_word_default: gr1553b_word := - (t => CMD_STAT, data => (others => '0')); - - function int_divide_round(i1,i2: integer) return integer; - function mc_to_muxidx(code: std_logic_vector; bc: std_logic) - return std_logic_vector; - function mcmask_to_muxin(mask: std_logic_vector; bm: boolean; res: std_logic) - return std_logic_vector; - function modecode_valid(mc: std_logic_vector(4 downto 0); tr: std_logic) - return boolean; - - ----------------------------------------------------------------------------- - -- DMA interface - ----------------------------------------------------------------------------- - - type gr1553b_dma2_in_bc is record - -- Commands - writestat: std_logic; - writeirq: std_logic; - getcmd: std_logic; - -- State - active: std_logic; - desc_addr: std_logic_vector(31 downto 4); - nextdesc_addr: std_logic_vector(31 downto 4); - laststatus: std_logic_vector(31 downto 0); - irqbuf_pos: std_logic_vector(31 downto 2); - -- Data buffer handling - data_reset: std_logic; - need_data: std_logic; - pull_data: std_logic; - pushing_data: std_logic; - push_data: std_logic; - push_done: std_logic; - end record; - - constant gr1553b_dma2_in_bc_zero: gr1553b_dma2_in_bc := - ('0','0','0','0',(others=>'0'),(others=>'0'),(others=>'0'),(others=>'0'),'0','0','0','0','0','0'); - - type gr1553b_dma2_in_rt is record - -- Commands - read_satbl: std_logic; - write_res: std_logic; - write_log: std_logic; - -- State - tx_transfer: std_logic; - tfr_legal: std_logic; - autowrap: std_logic; - do_log: std_logic; - statusword: std_logic_vector(31 downto 0); - satbl_addr: std_logic_vector(31 downto 4); - logaddr: std_logic_vector(31 downto 2); - logentry: std_logic_vector(31 downto 0); - -- Data buffer handling - data_reset: std_logic; - need_data: std_logic; - pull_data: std_logic; - pushing_data: std_logic; - push_data: std_logic; - push_done: std_logic; - end record; - - constant gr1553b_dma2_in_rt_zero: gr1553b_dma2_in_rt := - ('0','0','0','0','0','0','0',(others=>'0'),(others=>'0'),(others=>'0'),(others=>'0'),'0','0','0','0','0','0'); - - type gr1553b_dma2_in_bm is record - -- Commands - write_data: std_logic; - -- State - ringbuf_addr: std_logic_vector(31 downto 3); - logdata: std_logic_vector(63 downto 0); - end record; - - constant gr1553b_dma2_in_bm_zero: gr1553b_dma2_in_bm := - ('0',(others=>'0'),(others=>'0')); - - type gr1553b_dma2_in is record - bc: gr1553b_dma2_in_bc; - rt: gr1553b_dma2_in_rt; - bm: gr1553b_dma2_in_bm; - pushdata: std_logic_vector(15 downto 0); - end record; - - type gr1553b_dma2_out is record - ready: std_logic; - bc_write_done: std_logic; - bc_writeirq_done: std_logic; - bc_desc0_valid: std_logic; - bc_desc0_temp: std_logic_vector(31 downto 0); - bc_desc1: std_logic_vector(31 downto 0); - rt_satw0_valid: std_logic; - rt_satw0_temp: std_logic_vector(31 downto 0); - rt_descw0_valid: std_logic; - rt_descw0_temp: std_logic_vector(31 downto 0); - rt_descptr_valid: std_logic; - rt_break: std_logic; - bm_progress: std_logic; - desc_dmaerror: std_logic; - buf_dmaerror: std_logic; - bufaddr_valid: std_logic; - can_push: std_logic; - can_pull: std_logic; - pulldata: std_logic_vector(15 downto 0); - end record; - - component gr1553b_dma2 is - generic ( - hindex: integer; - syncrst: integer range 0 to 2; - endian: integer range 0 to 1; - ahbreqreg: integer range 0 to 1 - ); - port ( - clk: in std_logic; - rst: in std_logic; - ahbmi: in ahb_mst_in_type; - ahbmo: out ahb_mst_out_type; - ins: in gr1553b_dma2_in; - outs: out gr1553b_dma2_out - ); - end component; - - ----------------------------------------------------------------------------- - -- Codec - ----------------------------------------------------------------------------- - - type gr1553b_codec_in is record - bussel: std_logic; - anybus: std_logic; - txstart: std_logic; - txdata: gr1553b_word; - txabort: std_logic; - end record; - - constant gr1553b_codec_in_zero: gr1553b_codec_in := ( - bussel => '0', anybus => '0', txstart => '0', - txdata => (t => CMD_STAT, data => (others=>'0')), - txabort => '0'); - - type gr1553b_codec_out is record - txready: std_logic; - txread_data: std_logic; - lbdone: std_logic; - lberror: std_logic; - rxstarted: std_logic; - rxerror: std_logic; - rxdone: std_logic; - rxword: gr1553b_word; - rxbus: std_logic; - rxact: std_logic; - end record; - - constant gr1553b_codec_out_zero: gr1553b_codec_out := ( - txready => '1', - txread_data => '0', - lbdone => '0', - lberror => '0', - rxstarted => '0', - rxerror => '0', - rxdone => '1', - rxword => gr1553b_word_default, - rxbus => '0', - rxact => '0'); - - type gr1553b_bm_tap is record - started_A: std_logic; - datavalid_A: std_logic; - lostsync_A: std_logic; - badparity_A: std_logic; - word_A: gr1553b_word; - started_B: std_logic; - datavalid_B: std_logic; - lostsync_B: std_logic; - badparity_B: std_logic; - word_B: gr1553b_word; - end record; - - component gr1553b_codec is - generic( - codec_clk_freq_mhz: integer; - sameclk: integer range 0 to 1 := 1; - rx_synclength: integer := 2; - syncrst: integer range 0 to 2 - ); - port( - clk: in std_logic; - rst: in std_logic; - ins: in gr1553b_codec_in; - outs: out gr1553b_codec_out; - bmtap: out gr1553b_bm_tap; - shutdownA: in std_logic; - shutdownB: in std_logic; - codec_clk: in std_logic; - codec_rst: in std_logic; - busA_tx_pos: out std_logic; - busA_tx_neg: out std_logic; - busA_rx_pos: in std_logic; - busA_rx_neg: in std_logic; - busB_tx_pos: out std_logic; - busB_tx_neg: out std_logic; - busB_rx_pos: in std_logic; - busB_rx_neg: in std_logic - ); - end component; - - ----------------------------------------------------------------------------- - -- Codec sub-parts - ----------------------------------------------------------------------------- - - type gr1553b_tx1_in is record - abort: std_logic; - start: std_logic; - word: gr1553b_word; - end record; - - type gr1553b_tx1_out is record - ready: std_logic; - read_data: std_logic; - end record; - - type gr1553b_tx2_in is record - dv: std_logic; - sync: std_logic; - data: std_logic; - end record; - - type gr1553b_tx2_out is record - xread: std_logic; - done: std_logic; - -- Not forwarded by gr1553b_tx12sync - -- Indicates that we're on the last half-us of the current bit - lasthus: std_logic; - -- Indicates transmission is starting (done goes from 1->0) - txstarting: std_logic; - end record; - - component gr1553b_tx1 is - generic (syncrst: integer range 0 to 2); - port( - clk: in std_logic; - rst: in std_logic; - seri: in gr1553b_tx1_in; - sero: out gr1553b_tx1_out; - biti: out gr1553b_tx2_in; - bito: in gr1553b_tx2_out - ); - end component; - - component gr1553b_tx2 is - generic ( - clk_freq_mhz: integer; - txreg: boolean; - syncrst: integer range 0 to 2 - ); - port( - clk: in std_logic; - rst: in std_logic; - biti: in gr1553b_tx2_in; - bito: out gr1553b_tx2_out; - txout_pos: out std_logic; - txout_neg: out std_logic - ); - end component; - - component gr1553b_tx12sync is - generic ( - syncrst: integer range 0 to 2 - ); - port ( - ser_clk: in std_logic; - ser_rst: in std_logic; - ser_biti: in gr1553b_tx2_in; - ser_bito: out gr1553b_tx2_out; - out_clk: in std_logic; - out_rst: in std_logic; - out_bito: in gr1553b_tx2_out; - out_biti: out gr1553b_tx2_in - ); - end component; - - type gr1553b_rx2_out is record - got_sync: std_logic; - got_data: std_logic; - dataval: std_logic; - idle: std_logic; - act: std_logic; - end record; - - type gr1553b_rx2_fb is record - syncblock: std_logic; - gapblock: std_logic; - end record; - constant gr1553b_rx2_fb_none: gr1553b_rx2_fb := ('0','0'); - - type gr1553b_rx3_out is record - word: gr1553b_word; - datavalid: std_logic; - lostsync: std_logic; - badparity: std_logic; - started: std_logic; - end record; - - component gr1553b_rx12v5 is - generic ( - synclength: integer := 2; - syncrst: integer range 0 to 2 - ); - port ( - clk: in std_logic; - rst: in std_logic; - - rxin_p: in std_logic; - rxin_n: in std_logic; - - outs: out gr1553b_rx2_out; - fb: in gr1553b_rx2_fb; - reinit: in std_logic - ); - end component; - - component gr1553b_rx3 is - generic (syncrst: integer range 0 to 2); - port ( - clk: in std_logic; - rst: in std_logic; - abort: in std_logic; - bito: in gr1553b_rx2_out; - s3o: out gr1553b_rx3_out; - s2fb: out gr1553b_rx2_fb - ); - end component; - - component gr1553b_rx23sync is - generic (syncrst: integer range 0 to 2); - port ( - deser_clk: in std_logic; - deser_rst: in std_logic; - deser_bito: out gr1553b_rx2_out; - deser_fb: in gr1553b_rx2_fb; - bit_clk: in std_logic; - bit_rst: in std_logic; - bit_bito: in gr1553b_rx2_out; - bit_fb: out gr1553b_rx2_fb - ); - end component; - - component gr1553b_loopback is - generic (syncrst: integer range 0 to 2); - port ( - clk: in std_logic; - rst: in std_logic; - rxo: in gr1553b_rx2_out; - txi: in gr1553b_tx1_in; - txo: in gr1553b_tx1_out; - lberror: out std_logic; - lbdone: out std_logic; - lbread_data: out std_logic; - lbdata_valid: out std_logic; - gapblock: out std_logic - ); - end component; - - ----------------------------------------------------------------------------- - -- Bus controller components - ----------------------------------------------------------------------------- - - -- Different parts of transfer descriptor - -- Descriptor word #0 - constant D0_COND: integer := 31; - constant D0_WAITTRIG_b: integer := 30; - constant D0_NOASYNC_b: integer := 29; - constant D0_INTONERR_b: integer := 28; - constant D0_INTAFTER_b: integer := 27; - constant D0_PAUSEONERR_b: integer := 26; - constant D0_PAUSEAFTER_b: integer := 25; - constant D0_RETMODE_MSb: integer := 24; - constant D0_RETMODE_LSb: integer := 23; - constant D0_RETCOUNT_MSb: integer := 22; - constant D0_RETCOUNT_LSb: integer := 20; - constant D0_RETSTORE_b: integer := 19; - constant D0_XGAP_b: integer := 18; - constant D0_TIMEOFFS_MSb: integer := 15; - constant D0_TIMEOFFS_LSb: integer := 0; - -- Descriptor word #1 - constant D1_DUMMY_b: integer := 31; - constant D1_BUS_b: integer := 30; - constant D1_EXTRATIME_MSb: integer := 29; - constant D1_EXTRATIME_LSb: integer := 26; - constant D1_RTADDR2_MSb: integer := 25; - constant D1_RTADDR2_LSb: integer := 21; - constant D1_SAMC2_MSb: integer := 20; - constant D1_SAMC2_LSb: integer := 16; - constant D1_RTADDR1_MSb: integer := 15; - constant D1_RTADDR1_LSb: integer := 11; - constant D1_TR_b: integer := 10; - constant D1_SAMC1_MSb: integer := 9; - constant D1_SAMC1_LSb: integer := 5; - constant D1_WCMC_MSb: integer := 4; - constant D1_WCMC_LSb: integer := 0; - - constant RETMODE_SAME: std_logic_vector := "00"; - constant RETMODE_ALT: std_logic_vector := "01"; - constant RETMODE_ALL_ALL: std_logic_vector := "10"; - - -- "TX" and "RX" refer to the remote terminal side (as in the standard). - type gr1553b_transfer_type is - (TFR_INVALID, CTRL2RT, RT2CTRL, RT2RT, MODECMD, MODECMD_TX, - MODECMD_RX, CTRL2RT_BC, RT2RT_BC, MODECMD_BC, MODECMD_RX_BC); - --- type gr1553b_transfer_status is --- (SUCCESS, TIMEOUT, TIMEOUT2, RTERROR, BUSERR, BADCMD, DMAERR, LBFAIL); - - constant TFR_SUCCESS: std_logic_vector := "000"; - constant TFR_TIMEOUT: std_logic_vector := "001"; - constant TFR_TIMEOUT2: std_logic_vector := "010"; - constant TFR_RTERROR: std_logic_vector := "011"; - constant TFR_BUSERR: std_logic_vector := "100"; - constant TFR_BADCMD: std_logic_vector := "101"; - constant TFR_DMAERR: std_logic_vector := "110"; - constant TFR_LBFAIL: std_logic_vector := "111"; - subtype gr1553b_transfer_status is std_logic_vector(2 downto 0); - - type gr1553b_transfer_config is record - dummy: std_logic; - rtaddr1: std_logic_vector(4 downto 0); - samc1: std_logic_vector(4 downto 0); - rtaddr2: std_logic_vector(4 downto 0); - samc2: std_logic_vector(4 downto 0); - wc_mode: std_logic_vector(4 downto 0); - tr: std_logic; - bussel: std_logic; - extratime: std_logic_vector(3 downto 0); - extragap_en: std_logic; - end record; - - constant gr1553b_transfer_config_zero: gr1553b_transfer_config := ( - dummy => '0', rtaddr1 => "00000", samc1 => "00000", rtaddr2 => "00000", - samc2 => "00000", wc_mode => "00000", tr => '0', - bussel => '0', extratime => "0000", extragap_en => '0' ); - - function classify_transfer(tc: gr1553b_transfer_config) - return gr1553b_transfer_type; - - type gr1553b_bc_proto_out is record - ready: std_logic; - tfrdone: std_logic; - status: gr1553b_transfer_status; - stword1: std_logic_vector(7 downto 0); - stword2: std_logic_vector(7 downto 0); - datain_read: std_logic; - datain_req: std_logic; - dataout_write: std_logic; - dataout_done: std_logic; - data_out: std_logic_vector(15 downto 0); - validcmdA: std_logic; - validcmdB: std_logic; - end record; - - constant gr1553b_bc_proto_out_zero: gr1553b_bc_proto_out := ( - ready => '0', tfrdone => '0', status => TFR_SUCCESS, - stword1 => "00000000", stword2 => "00000000", - datain_read => '0', datain_req => '0', - dataout_write => '0', dataout_done => '0', data_out => (others => '0'), - validcmdA => '0', validcmdB => '0' - ); - - type gr1553b_bc_proto_in is record - tfrstart: std_logic; - tfrconfig: gr1553b_transfer_config; - fast_broadcast: std_logic; - datain_valid: std_logic; - data_in: std_logic_vector(15 downto 0); - data_error: std_logic; - end record; - - constant gr1553b_bc_proto_in_zero: gr1553b_bc_proto_in := ( - tfrstart => '0', tfrconfig => gr1553b_transfer_config_zero, - datain_valid => '0', data_in => (others => '0'), data_error => '0', fast_broadcast => '0'); - - component gr1553b_bc_proto is - generic (syncrst: integer range 0 to 2); - port( - clk: in std_logic; - rst: in std_logic; - ins: in gr1553b_bc_proto_in; - outs: out gr1553b_bc_proto_out; - us_restart: out std_logic; - us_clear: out std_logic; - us_tick: in std_logic; - toll: out gr1553b_codec_in; - fromll: in gr1553b_codec_out - ); - end component; - - type gr1553b_bc_control_in is record - sched_start: std_logic; - sched_stop: std_logic; - sched_pause: std_logic; - sched_trig: std_logic; - sched_trig_clear: std_logic; - async_start: std_logic; - async_stop: std_logic; - user_input: std_logic_vector(31 downto 0); - set_schem_addr: std_logic; - set_async_addr: std_logic; - set_logbuf_pos: std_logic; - set_rt_busmask: std_logic; - user_irq_ack: std_logic; - fast_broadcast: std_logic; - end record; - - constant sched_state_stopped: std_logic_vector := "000"; - constant sched_state_running: std_logic_vector := "001"; - constant sched_state_waitslot: std_logic_vector := "010"; - constant sched_state_paused: std_logic_vector := "011"; - constant sched_state_waittrig: std_logic_vector := "100"; - - type gr1553b_bc_control_out is record - sched_state: std_logic_vector(2 downto 0); - async_state: std_logic_vector(2 downto 0); - sched_current_pos: std_logic_vector(31 downto 0); - async_current_pos: std_logic_vector(31 downto 0); - sched_next_pos: std_logic_vector(31 downto 0); - async_next_pos: std_logic_vector(31 downto 0); - rt_busmask: std_logic_vector(31 downto 0); - - schem_time: std_logic_vector(23 downto 0); - user_irq: std_logic; - user_irq_next: std_logic; - user_irq_addr: std_logic_vector(31 downto 0); - dmaerror_next: std_logic; - validcmdA, validcmdB: std_logic; - end record; - - component gr1553b_bc_control is - generic ( - cond_en: boolean := true; - rtmask_en: boolean := false; - syncrst: integer range 0 to 2 - ); - port( - clk: in std_logic; - rst: in std_logic; - ins: in gr1553b_bc_control_in; - outs: out gr1553b_bc_control_out; - dmai: out gr1553b_dma2_in_bc; - dmao: in gr1553b_dma2_out; - us_restart: out std_logic; - us_clear: out std_logic; - us_tick: in std_logic; - proti: out gr1553b_bc_proto_in; - proto: in gr1553b_bc_proto_out - ); - end component; - - ----------------------------------------------------------------------------- - -- Remote terminal components - ----------------------------------------------------------------------------- - - type gr1553b_rt_request_type is - (NOREQ, RECV, XMIT, MODECMD, MODECMD_RECV, MODECMD_XMIT); - type gr1553b_rt_request_result is - (PROGRESS, SUCCESS, TIMEOUT, BUSERROR, SUPERSEDED, MSGERRSENT, LBERROR); - type gr1553b_rt_request_response is (UNKNOWN, REQOK, REQILLEGAL); - - type gr1553b_rt_request is record - t: gr1553b_rt_request_type; - subaddr: std_logic_vector(4 downto 0); - wc_mode: std_logic_vector(4 downto 0); - bc: std_logic; - cmdbus: std_logic; - end record; - - constant gr1553b_rt_request_zero: gr1553b_rt_request := ( - t => NOREQ, subaddr => "00000", wc_mode => "00000", bc => '0', cmdbus => '0' - ); - - type gr1553b_rt_proto_in is record - enable: std_logic; - my_addr: std_logic_vector(4 downto 0); - allow_broadcast: std_logic; - req_resp: gr1553b_rt_request_response; - statusbits: std_logic_vector(4 downto 0); - datain_valid: std_logic; - dataout_ready: std_logic; - data_in: std_logic_vector(15 downto 0); - end record; - - constant gr1553b_rt_proto_in_zero: gr1553b_rt_proto_in := ( - enable => '0', my_addr => "00000", allow_broadcast => '0', - req_resp => UNKNOWN, statusbits => "00000", datain_valid => '0', - dataout_ready => '0', data_in => (others => '0') - ); - - type gr1553b_rt_proto_out is record - request: gr1553b_rt_request; - result: gr1553b_rt_request_result; - datain_read: std_logic; - dataout_write: std_logic; - data_out: std_logic_vector(15 downto 0); - validcmdA, validcmdB: std_logic; - txdone: std_logic; - status_next: std_logic; - end record; - - constant gr1553b_rt_proto_out_zero: gr1553b_rt_proto_out := ( - request => gr1553b_rt_request_zero, result => PROGRESS, - datain_read => '0', dataout_write => '0', - data_out => (others => '0'), validcmdA => '0', validcmdB => '0', - txdone => '0', status_next => '0' - ); - - component gr1553b_rt_proto is - generic (syncrst: integer range 0 to 2); - port( - clk: in std_logic; - rst: in std_logic; - ins: in gr1553b_rt_proto_in; - outs: out gr1553b_rt_proto_out; - us_restart: out std_logic; - us_clear: out std_logic; - us_tick: in std_logic; - toll: out gr1553b_codec_in; - fromll: in gr1553b_codec_out - ); - end component; - - type gr1553b_rt_control_in is record - rt_enable: std_logic; - rt_stop: std_logic; - rt_addr: std_logic_vector(4 downto 0); - allow_bc: std_logic; - statusbits: std_logic_vector(4 downto 0); - vector_word: std_logic_vector(15 downto 0); - BIT_word: std_logic_vector(15 downto 0); - timer_value: std_logic_vector(15 downto 0); - dmaerror_ack: std_logic; - descerror_ack: std_logic; - irqack: std_logic; - user_input: std_logic_vector(31 downto 0); - set_modecode_mask: std_logic; - set_subaddr_table_base: std_logic; - set_log_mask: std_logic; - set_log_cur_addr: std_logic; - end record; - - type gr1553b_rt_control_out is record - dmaerror: std_logic; - dmaerror_next: std_logic; - descerror: std_logic; - descerror_next: std_logic; - gotirq: std_logic; - gotirq_next: std_logic; - irq_log_addr: std_logic_vector(31 downto 0); - bussync_nodata: std_logic; - bussync_data: std_logic; - bussync_word: std_logic_vector(15 downto 0); - bussync_time: std_logic_vector(15 downto 0); - busreset: std_logic; - shutdownA: std_logic; - shutdownB: std_logic; - validcmdA: std_logic; - validcmdB: std_logic; - active: std_logic; - subaddr_table_base: std_logic_vector(31 downto 0); - modecode_mask: std_logic_vector(29 downto 0); - log_mask: std_logic_vector(31 downto 0); - log_cur_addr: std_logic_vector(31 downto 0); - end record; - - component gr1553b_rt_control is - generic ( - syncrst: integer range 0 to 2 - ); - port( - clk: in std_logic; - rst: in std_logic; - ins: in gr1553b_rt_control_in; - outs: out gr1553b_rt_control_out; - dmai: out gr1553b_dma2_in_rt; - dmao: in gr1553b_dma2_out; - proti: out gr1553b_rt_proto_in; - proto: in gr1553b_rt_proto_out - ); - end component; - - ----------------------------------------------------------------------------- - -- Bus monitor - ----------------------------------------------------------------------------- - - type gr1553b_bm_in is record - enable: std_logic; - timeval: std_logic_vector(23 downto 0); - dmaerror_ack: std_logic; - log_errors: std_logic; - log_stray_data: std_logic; - log_reserved_mcs: std_logic; - set_outbuf_start: std_logic; - set_outbuf_end: std_logic; - set_outbuf_pos: std_logic; - set_rtaddr_filter: std_logic; - set_subaddr_filter: std_logic; - set_modecode_filter: std_logic; - user_input: std_logic_vector(31 downto 0); - end record; - - type gr1553b_bm_out is record - dmaerror_next: std_logic; - dmaerror: std_logic; - outbuf_start: std_logic_vector(31 downto 0); - outbuf_end: std_logic_vector(31 downto 0); - outbuf_pos: std_logic_vector(31 downto 0); - rtaddr_filter: std_logic_vector(31 downto 0); - subaddr_filter: std_logic_vector(31 downto 0); - modecode_filter: std_logic_vector(31 downto 0); - wrapping: std_logic; - end record; - - component gr1553b_bm is - generic ( - filters: integer range 0 to 1; - syncrst: integer range 0 to 2 - ); - port ( - clk: in std_logic; - rst: in std_logic; - ins: in gr1553b_bm_in; - outs: out gr1553b_bm_out; - busdata: in gr1553b_bm_tap; - dmai: out gr1553b_dma2_in_bm; - dmao: in gr1553b_dma2_out - ); - end component; - - ----------------------------------------------------------------------------- - -- APB interface - ----------------------------------------------------------------------------- - - component gr1553b_apb is - generic ( - pindex : integer := 0; - paddr: integer := 0; - pmask : integer := 16#fff#; - pirq : integer := 0; - venid: integer; - devid: integer; - cfgver: integer; - version: integer; - rt_enable: integer range 0 to 1; - bc_enable: integer range 0 to 1; - bm_enable: integer range 0 to 1; - codec_clk_freq_mhz: integer; - sameclk: integer range 0 to 1; - schemtime_en: boolean; - wakeup_en: boolean; - rtbusmask_en: boolean; - extrakeyen: integer range 0 to 1; - endianness: integer; - bm_filters: integer; - core_modified: boolean; - syncrst: integer range 0 to 2 - ); - port ( - clk: in std_logic; - rst: in std_logic; - apbsi: in apb_slv_in_type; - apbso: out apb_slv_out_type; - bcct_outs: in gr1553b_bc_control_out; - rtct_outs: in gr1553b_rt_control_out; - bmct_outs: in gr1553b_bm_out; - bcct_in: out gr1553b_bc_control_in; - rtct_in: out gr1553b_rt_control_in; - bmct_in: out gr1553b_bm_in; - bc_extsync: in std_logic; - rtts_tick: in std_logic; - rtts_restart: out std_logic; - rtts_clear: out std_logic; - rtaddr: in std_logic_vector(4 downto 0); - rtaddrpar: in std_logic; - rt_sync: out std_logic; - rt_busreset: out std_logic; - badreg: out std_logic; - xirqvec: out std_logic_vector(7 downto 0); - rt_run: out std_logic; - bc_run: out std_logic; - bm_run: out std_logic - ); - end component; - - ----------------------------------------------------------------------------- - -- MHz tick and failsafe timer in codec clock domain - - component gr1553b_mhztick is - generic( - timeclk_freq_mhz: integer; - sameclk: integer range 0 to 1; - syncrst: integer range 0 to 2 - ); - port( - clk: in std_logic; - rst: in std_logic; - restart: in std_logic; - clear: in std_logic; - tick: out std_logic; - timeclk: in std_logic; - timerst: in std_logic - ); - end component; - - component gr1553b_fstimer is - generic ( - tx_clk_freq_mhz: integer; - sameclk: integer range 0 to 1; - syncrst: integer range 0 to 2 - ); - port ( - tx_clk: in std_logic; - tx_rst: in std_logic; - txP: in std_logic; - txN: in std_logic; - timeout: out std_logic; - validcmd_clk: in std_logic; - validcmd_rst: in std_logic; - validcmd: in std_logic - ); - end component; - -end; - -package body gr1553b_core is - - function int_divide_round(i1,i2: integer) return integer is - begin - return (i1*2+i2)/(i2*2); - end; - - function classify_transfer(tc: gr1553b_transfer_config) return gr1553b_transfer_type is - variable bc1,mc1,bc2,mc2: boolean; - variable wcm_nodata_nobc,wcm_nodata,wcm_tx_nobc,wcm_rx: boolean; - begin - - bc1 := (tc.rtaddr1 = "11111"); - mc1 := (tc.samc1="00000" or tc.samc1="11111"); - bc2 := (tc.rtaddr2 = "11111"); - mc2 := (tc.samc2="00000" or tc.samc2="11111"); - wcm_nodata_nobc := tc.wc_mode="00000" or tc.wc_mode="00010"; - wcm_nodata := tc.wc_mode(4)='0' and (tc.wc_mode(3)='0' or tc.wc_mode(2 downto 0)="000"); - wcm_tx_nobc := tc.wc_mode="10000" or tc.wc_mode="10010" or tc.wc_mode="10011"; - wcm_rx := tc.wc_mode="10001" or tc.wc_mode="10100" or tc.wc_mode="10101"; - - if mc1 then - -- Mode commands - if bc1 then - -- Broadcast mode commands - if wcm_nodata then - if tc.tr='1' and not wcm_nodata_nobc then return MODECMD_BC; end if; - elsif wcm_tx_nobc then - return TFR_INVALID; - elsif wcm_rx then - if tc.tr='0' then return MODECMD_RX_BC; end if; - end if; - else - -- Non-broadcast mode commands - if wcm_nodata then - if tc.tr='1' then return MODECMD; end if; - elsif wcm_tx_nobc then - if tc.tr='1' then return MODECMD_TX; end if; - elsif wcm_rx then - if tc.tr='0' then return MODECMD_RX; end if; - end if; - end if; - - else - -- Data transfers - if not mc2 then - -- RT-to-RT data transfer - if bc1 then - if tc.tr='0' and not bc2 then return RT2RT_BC; end if; - else - if tc.tr='0' and not bc2 then return RT2RT; end if; - end if; - else - -- BC<=>RT(s) transfer - if bc1 then - if tc.tr='0' then return CTRL2RT_BC; end if; - else - if tc.tr='0' then - return CTRL2RT; - else - return RT2CTRL; - end if; - end if; - end if; - end if; - - return TFR_INVALID; - end; - - function modecode_valid(mc: std_logic_vector(4 downto 0); tr: std_logic) return boolean is - variable nodata,tx,rx: boolean; - begin - nodata := mc(4)='0'and (mc(3)='0' or mc(2 downto 0)="000"); - tx := mc="10000" or mc="10010" or mc="10011"; - rx := mc="10001" or mc="10100" or mc="10101"; - return (nodata and tr='1') or (tx and tr='1') or (rx and tr='0'); - end; - - -- Combine the 5 mode code bits and the bc bit into a 5-bit address - -- Because transmit status word "00010" is filtered out by the protocol - -- layer and all mode codes where bit 3 is '1' are banned except "01000", - -- we can or bit 3 and 1 and still identify all valid mode codes. - function mc_to_muxidx(code: std_logic_vector; bc: std_logic) return std_logic_vector is - begin - return code(4) & code(2) & (code(1) or code(3)) & code(0) & bc; - end; - - -- Corresponding fcn to convert mode code mask to mux input - -- bm: Bus monitor mode - -- forb: Value for invalid/reserved codes - function mcmask_to_muxin(mask: std_logic_vector; bm: boolean; res: std_logic) return std_logic_vector is - variable r: std_logic_vector(31 downto 0); - begin - r := (others => 'X'); - r(31 downto 28) := res & res & res & res; -- Reserved mode codes - if bm then - r(27) := mask(18); -- Override selected transmitter shutdown broadcast - r(26) := mask(17); -- Override selected transmitter shutdown - r(25) := mask(18); -- Sel. transmitter shutdown broadcast - r(24) := mask(17); -- Sel. transmitter shutdown - else - r(27) := '0'; -- Override selected transmitter shutdown broadcast - r(26) := '0'; -- Override selected transmitter shutdown - r(25) := '0'; -- Sel. transmitter shutdown broadcast - r(24) := '0'; -- Sel. transmitter shutdown - end if; - r(23) := res; -- Forbidden (Transmit BIT word broadcast) - r(22) := mask(7); -- Transmit BIT word - r(21) := res; -- Forbidden (Transmit last cmd broadcast) - if bm then - r(20) := mask(16); -- Transmit last cmd - else - r(20) := '0'; -- Handled by proto layer (Transmit last cmd) - end if; - r(19) := mask(3); -- Sync with data word broadcast - r(18) := mask(2); -- Sync with data word - r(17) := res; -- Forbidden (transmit vector word broadcast) - r(16) := mask(6); -- Transmit vector word - r(15) := mask(12); -- Override inhibit terminal flag broadcast - r(14) := mask(11); -- Override inhibit terminal flag - r(13) := mask(12); -- Inhibit terminal flag broadcast - r(12) := mask(11); -- Inhibit terminal flag - r(11) := mask(5); -- Override transmitter shutdown broadcast - r(10) := mask(4); -- Override transmitter shutdown - r(9) := mask(5); -- Transmitter shutdown broadcast - r(8) := mask(4); -- Transmitter shutdown - r(7) := mask(10); -- Initiate self test broadcast - r(6) := mask(9); -- Initiate self test - r(5) := mask(14); -- Reset remote terminal broadcast - r(4) := mask(13); -- Reset remote terminal - r(3) := mask(1); -- Synchronize broadcast - r(2) := mask(0); -- Synchronize - r(1) := res; -- Forbidden (Dynamic bus control broadcast) - r(0) := mask(8); -- Dynamic bus control - return r; - end mcmask_to_muxin; - - function wt_to_sl(wt: gr1553b_word_type) return std_logic is - begin - if wt=CMD_STAT then return '1'; else return '0'; end if; - end wt_to_sl; - - function sl_to_wt(sl: std_logic) return gr1553b_word_type is - begin - if sl='1' then return CMD_STAT; else return DATA; end if; - end sl_to_wt; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_dma2.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_dma2.vhd deleted file mode 100644 index 268d7745..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_dma2.vhd +++ /dev/null @@ -1,904 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_dma2 --- File: gr1553b_dma2.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B BC/RT/BM AHB DMA State Machine ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -library grlib; -use grlib.stdlib.all; -use grlib.devices.all; -use grlib.amba.all; -library gaisler; -use gaisler.gr1553b_core.all; - -entity gr1553b_dma2 is - generic ( - hindex: integer; - syncrst: integer range 0 to 2; - endian: integer range 0 to 1; - ahbreqreg: integer range 0 to 1 - ); - port ( - clk: in std_logic; - rst: in std_logic; - ahbmi: in ahb_mst_in_type; - ahbmo: out ahb_mst_out_type; - ins: in gr1553b_dma2_in; - outs: out gr1553b_dma2_out - ); -end; - -architecture rtl of gr1553b_dma2 is - - type dma2_state is (IDLE, - BCWSTAT,BCWIRQ,BCRDESC0,BCRDESC1,BCRDESC2,BCRDESC3, - RTRSAT0,RTRSAT1,RTRSAT2,RTRSAT3,RTRDESC0,RTRDESC1,RTRDESC2, - RTWSTAT,RTRNEXT,RTWNEXT,RTWWRAP,RTWLOG, - TFRDATA, - BMWLOG0, BMWLOG1, BMWLOG2); - - type dma2_regs is record - state: dma2_state; - - -- buf 0 usage: - -- * Connected to mo.hwdata, therefore used in all write states - -- * temporary holding of BC descriptor word #0 - -- * temporary holding of BC branch addr - -- * temporary holding of RT SA table word #0 (legalization info, IRQ - -- settings, etc) - buf0: std_logic_vector(31 downto 0); - -- buf 1 usage: - -- * Hold BC descriptor word #1 during transfer - -- * Hold RT descriptor address - buf1: std_logic_vector(31 downto 0); - -- buf 2 usage - -- * Hold BC data buffer address during transfer - -- * Hold RT data buffer address during transfer - buf2: std_logic_vector(31 downto 0); - -- buf 3 usage: - -- * temporary holding of RT descriptor word #0 - -- * Hold payload data for RT/BC transfers - buf3: std_logic_vector(31 downto 0); - - addr_offs: std_logic_vector(5 downto 1); - got32,got16: std_logic; - - desc_dmaerror: std_logic; - buf_dmaerror: std_logic; - - - - ahb_addr_owner: std_logic; - ahb_data_owner: std_logic; - mo_hbusreq: std_logic; - mo_haddr: std_logic_vector(31 downto 0); - mo_htrans: std_logic_vector(1 downto 0); - mo_hburst: std_logic_vector(2 downto 0); - mo_hwrite: std_logic; - mo_hsize: std_logic_vector(2 downto 0); - end record; - - constant r_rst: dma2_regs := - (state => IDLE, - ahb_addr_owner => '0', ahb_data_owner => '0', - mo_hbusreq => '0', mo_haddr => x"00000000", mo_htrans => HTRANS_IDLE, - mo_hburst => HBURST_SINGLE, mo_hwrite => '0', mo_hsize => "010", - buf0 => x"00000000", buf1 => x"00000000", buf2 => x"00000000", buf3 => x"00000000", - addr_offs => "00000", got32 => '0', got16 => '0', - desc_dmaerror => '0', buf_dmaerror => '0'); - - signal r,nr: dma2_regs; - - - constant hconfig: ahb_config_type := ( - 0 => ahb_device_reg(VENDOR_GAISLER, GAISLER_GR1553B, 0, gr1553b_version, gr1553b_cfgver), - others => zero32); - - signal asserterr: std_logic_vector(9 downto 0); - -begin - - comb: process(r,ins,ahbmi,rst) - variable v: dma2_regs; - variable o: gr1553b_dma2_out; - variable msto: ahb_mst_out_type; - variable rdata: std_logic_vector(31 downto 0); - variable cur_data_addr: std_logic_vector(31 downto 1); - variable cur_data_addr_high: std_logic_vector(25 downto 0); - variable burst_state: boolean; - begin - v := r; - v.desc_dmaerror := '0'; - v.buf_dmaerror := '0'; - - o := (desc_dmaerror => r.desc_dmaerror, buf_dmaerror => r.buf_dmaerror, - bm_progress => '0', ready => '0', - bc_write_done => '0', bc_writeirq_done => '0', bc_desc0_valid => '0', - bc_desc0_temp => r.buf0, bc_desc1 => r.buf1, - rt_satw0_temp => r.buf0, rt_descw0_temp => r.buf3, - rt_satw0_valid => '0', rt_descw0_valid => '0', rt_descptr_valid => '0', rt_break => '0', - pulldata => r.buf3(31 downto 16), - bufaddr_valid => not r.buf2(0), can_push => not r.got32, can_pull => r.got16); - msto := (hbusreq => r.mo_hbusreq, hlock => '0', htrans => r.mo_htrans, haddr => r.mo_haddr, - hwrite => r.mo_hwrite, hsize => r.mo_hsize, hburst => r.mo_hburst, hprot => "0011", - hwdata => ahbdrivedata(r.buf0), hirq => (others => '0'), hconfig => hconfig, hindex => hindex); - rdata := ahbreadword(ahbmi.hrdata, r.mo_haddr(4 downto 2)); - asserterr <= (others => '0'); - - cur_data_addr := (others => '0'); - if notx(r.buf2) and notx(r.addr_offs) then - - cur_data_addr(5 downto 1) := std_logic_vector(unsigned(r.buf2(5 downto 1)) + unsigned(r.addr_offs)); - - cur_data_addr_high := r.buf2(31 downto 6); - if ((r.buf2(5)='1' or r.addr_offs(5)='1') and cur_data_addr(5)='0') or (r.buf2(5)='1' and r.addr_offs(5)='1') then - cur_data_addr_high := std_logic_vector(unsigned(cur_data_addr_high)+1); - end if; - cur_data_addr(31 downto 6) := cur_data_addr_high; - end if; - - if ahbmi.hready='1' then - v.ahb_addr_owner := ahbmi.hgrant(hindex); - v.ahb_data_owner := r.ahb_addr_owner and (r.mo_htrans(1) or r.mo_htrans(0)); - end if; - if r.ahb_data_owner='1' and ahbmi.hresp /= HRESP_OKAY then - v.ahb_addr_owner := '0'; - v.ahb_data_owner := '0'; - v.mo_htrans := HTRANS_IDLE; - end if; - - burst_state := false; - - case r.state is - - - when IDLE => - - o.ready := '1'; - - v.mo_hbusreq := '0'; - v.mo_htrans := HTRANS_IDLE; - - v.mo_hburst := HBURST_SINGLE; - v.mo_hsize := "010"; - - if ins.bc.writestat='1' then - v.mo_hbusreq := '1'; - v.mo_htrans := HTRANS_NONSEQ; - v.mo_hwrite := '1'; - v.mo_haddr := ins.bc.desc_addr & "1100"; - v.state := BCWSTAT; - elsif ins.bc.writeirq='1' then - v.mo_hbusreq := '1'; - v.mo_htrans := HTRANS_NONSEQ; - v.mo_hwrite := '1'; - v.mo_haddr := ins.bc.irqbuf_pos & "00"; - v.state := BCWIRQ; - elsif ins.bc.getcmd='1' then - v.mo_hbusreq := '1'; - v.mo_htrans := HTRANS_NONSEQ; - v.mo_hburst := HBURST_INCR; - v.mo_hwrite := '0'; - v.mo_haddr := ins.bc.nextdesc_addr & "0000"; - v.state := BCRDESC0; - elsif ins.rt.read_satbl='1' and ins.bc.active='0' then - v.mo_hbusreq := '1'; - v.mo_htrans := HTRANS_NONSEQ; - v.mo_hwrite := '0'; - v.mo_hburst := HBURST_INCR; - v.mo_haddr := ins.rt.satbl_addr & "0000"; - v.state := RTRSAT0; - elsif ins.rt.write_res='1' and ins.bc.active='0' then - v.mo_hbusreq := '1'; - v.mo_htrans := HTRANS_NONSEQ; - v.mo_hwrite := '1'; - v.mo_haddr := r.buf1(31 downto 4) & "0000"; - v.state := RTWSTAT; - elsif ins.rt.write_log='1' and ins.bc.active='0' then - v.mo_hbusreq := '1'; - v.mo_htrans := HTRANS_NONSEQ; - v.mo_hwrite := '1'; - v.mo_haddr := ins.rt.logaddr & "00"; - v.state := RTWLOG; - elsif (ins.rt.need_data='1' or ins.bc.need_data='1') and r.got16='0' and r.buf2(0)='0' then - v.mo_hbusreq := '1'; - v.mo_htrans := HTRANS_NONSEQ; - v.mo_haddr := cur_data_addr(31 downto 2) & "00"; - v.mo_hwrite := '0'; - v.state := TFRDATA; - elsif (ins.rt.pushing_data='1' or ins.bc.pushing_data='1') and - (r.got32='1' or (r.got16='1' and cur_data_addr(1)='1') or - (r.got16='1' and (ins.rt.push_done='1' or ins.bc.push_done='1'))) then - v.mo_hbusreq := '1'; - v.mo_htrans := HTRANS_NONSEQ; - v.mo_haddr := cur_data_addr & "0"; - v.mo_hsize := "0" & r.got32 & (not r.got32); - v.mo_hwrite := '1'; - if r.got32='0' and cur_data_addr(1)='0' then - v.buf3 := r.buf3(15 downto 0) & r.buf3(15 downto 0); - end if; - v.state := TFRDATA; - elsif ins.bm.write_data='1' then - v.mo_hbusreq := '1'; - v.mo_htrans := HTRANS_NONSEQ; - v.mo_hburst := HBURST_INCR; - v.mo_haddr := ins.bm.ringbuf_addr & "000"; - v.mo_hwrite := '1'; - v.state := BMWLOG0; - end if; - - ----------------------------------------------------------------------- - -- BC descriptor processing states - ----------------------------------------------------------------------- - - when BCWSTAT => - v.buf0 := ins.bc.laststatus; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_htrans := HTRANS_IDLE; - end if; - if r.ahb_data_owner='1' then - if ins.bc.writeirq='1' then - v.mo_htrans := HTRANS_NONSEQ; - v.mo_haddr := ins.bc.irqbuf_pos & "00"; - v.state := BCWIRQ; - elsif ins.bc.getcmd='1' then - v.mo_htrans := HTRANS_NONSEQ; - v.mo_hburst := HBURST_INCR; - v.mo_hwrite := '0'; - v.mo_haddr := ins.bc.nextdesc_addr & "0000"; - v.state := BCRDESC0; - o.bc_write_done := '1'; - else - v.mo_hbusreq := '0'; - v.state := IDLE; - end if; - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.state := IDLE; - v.mo_hbusreq := '0'; - end if; - end if; - - - - when BCWIRQ => - v.buf0 := ins.bc.desc_addr & "0000"; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_htrans := HTRANS_IDLE; - end if; - if r.ahb_data_owner='1' then - o.bc_writeirq_done := '1'; - if ins.bc.getcmd='1' then - v.mo_hburst := HBURST_INCR; - v.mo_htrans := HTRANS_NONSEQ; - v.mo_hwrite := '0'; - v.mo_haddr := ins.bc.nextdesc_addr & "0000"; - o.bc_write_done := '1'; - v.state := BCRDESC0; - else - v.mo_hbusreq := '0'; - v.state := IDLE; - end if; - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.mo_hbusreq := '0'; - v.state := IDLE; - end if; - end if; - - - -- Addr: desc word #0, data: none - when BCRDESC0 => - burst_state := true; - - v.buf0 := rdata; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_haddr(2) := '1'; - v.mo_htrans := HTRANS_SEQ; - v.state := BCRDESC1; - end if; - end if; - - - -- Addr: desc word #1, data: desc word #0/none - when BCRDESC1 => - burst_state := true; - - o.bc_desc0_valid := not r.ahb_data_owner; - - if ahbmi.hready='1' then - if r.ahb_data_owner='1' then - v.buf0 := rdata; - end if; - if r.ahb_addr_owner='1' then - v.mo_haddr(3 downto 2):="10"; - v.mo_htrans := HTRANS_SEQ; - v.state := BCRDESC2; - -- Note: Must use v.descbuf0, comb path from ahbmi.rddata - if v.buf0(31)='1' then - -- Keep hbusreq high to allow further BC processing - -- v.mo_hbusreq := '0'; - v.mo_htrans := HTRANS_IDLE; - end if; - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.state := IDLE; - v.mo_hbusreq := '0'; - elsif ahbmi.hresp/=HRESP_OKAY then - v.mo_haddr(2):='0'; - v.mo_hbusreq := '1'; - v.state := BCRDESC0; - end if; - end if; - - - - -- Addr: desc word #2/none(branch), Data: desc word #1/none - when BCRDESC2 => - burst_state := true; - - o.bc_desc0_valid := r.ahb_data_owner; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_hbusreq := '0'; - v.mo_htrans := HTRANS_IDLE; - v.state := BCRDESC3; - end if; - if r.ahb_data_owner='1' then - v.buf0 := rdata; - if r.buf0(31)='1' then - v.state := IDLE; - else - v.buf1 := rdata; - end if; - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.state := IDLE; - v.mo_hbusreq := '0'; - elsif ahbmi.hresp/=HRESP_OKAY then - v.mo_haddr(3 downto 2):="01"; - v.state := BCRDESC1; - v.mo_hbusreq := '1'; - end if; - end if; - - - -- Addr: None, Data: desc word #2(tfr) - when BCRDESC3 => - burst_state := true; - - if ahbmi.hready='1' then - v.buf2 := rdata; - v.state := IDLE; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.mo_hbusreq := '0'; - v.state := IDLE; - elsif ahbmi.hresp/=HRESP_OKAY then - v.state := BCRDESC2; - v.mo_hbusreq := '1'; - end if; - end if; - - ----------------------------------------------------------------------- - -- RT descriptor processing states - ----------------------------------------------------------------------- - - -- Addr SAT word #0, Data: None - when RTRSAT0 => - burst_state := true; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_haddr(2) := '1'; - v.mo_htrans := HTRANS_SEQ; - v.state := RTRSAT1; - end if; - end if; - - - - -- Addr: SAT word #1, Data: SAT word#0/none - when RTRSAT1 => - burst_state := true; - - o.rt_satw0_valid := not r.ahb_data_owner; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - if ins.rt.tx_transfer='1' then - v.mo_htrans := HTRANS_IDLE; - v.state := RTRSAT3; - else - v.mo_haddr(3 downto 2) := "10"; - v.mo_htrans := HTRANS_SEQ; - v.state := RTRSAT2; - end if; - end if; - if r.ahb_data_owner='1' then - v.buf0 := rdata; - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.mo_hbusreq := '0'; - v.state := IDLE; - elsif ahbmi.hresp/=HRESP_OKAY then - v.state := RTRSAT0; - v.mo_haddr(2) := '0'; - end if; - end if; - - - - -- Addr: SAT word #2, Data: SAT word#1/none - when RTRSAT2 => - burst_state := true; - - o.rt_satw0_valid := '1'; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_htrans := HTRANS_IDLE; - v.state := RTRSAT3; - end if; - if r.ahb_data_owner='1' then - -- We're only in this state if we're receiving, hence we're not - -- interested in table word #1 - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.mo_hbusreq := '0'; - v.state := IDLE; - elsif ahbmi.hresp /= HRESP_OKAY then - v.state := RTRSAT1; - v.mo_haddr(3 downto 2):="01"; - end if; - end if; - - - - -- Addr: None, Data: SAT word#1/2 - when RTRSAT3 => - - o.rt_satw0_valid := '1'; - - if ahbmi.hready='1' then - if r.ahb_data_owner='1' then - v.buf1 := rdata; - end if; - end if; - - if r.ahb_data_owner='0' then - if r.buf1(1 downto 0) /= "11" and ins.rt.tfr_legal='1' then - v.mo_haddr := r.buf1(31 downto 4) & "0000"; - v.mo_htrans := HTRANS_NONSEQ; - v.state := RTRDESC0; - o.rt_descptr_valid := '1'; - else - v.state := IDLE; - o.rt_break := '1'; - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.mo_hbusreq := '0'; - v.state := IDLE; - elsif ahbmi.hresp/=HRESP_OKAY then - -- We can step back to RTRSAT2 even if we came directly from - -- RTRSAT1 since we're not manipulating haddr - v.state := RTRSAT2; - v.mo_hbusreq := '1'; - end if; - end if; - - - -- Addr: RTDesc #0, Data: None - when RTRDESC0 => - burst_state := true; - - o.rt_satw0_valid := '1'; - o.rt_descptr_valid := '1'; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_haddr(2):='1'; - v.state := RTRDESC1; - v.mo_htrans := HTRANS_SEQ; - end if; - end if; - - -- Addr: RTDesc #1, Data: RTDesc #0 - when RTRDESC1 => - burst_state := true; - - o.rt_satw0_valid := '1'; - o.rt_descptr_valid := '1'; - o.rt_descw0_valid := not r.ahb_data_owner; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_htrans := HTRANS_IDLE; - v.mo_hbusreq := '0'; - v.state := RTRDESC2; - end if; - if r.ahb_data_owner='1' then - v.buf3 := rdata; - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.mo_hbusreq := '0'; - v.state := IDLE; - elsif ahbmi.hresp /= HRESP_OKAY then - v.mo_haddr(2):='0'; - v.state := RTRDESC0; - end if; - end if; - - - when RTRDESC2 => - burst_state := true; - - o.rt_satw0_valid := '1'; - o.rt_descptr_valid := '1'; - o.rt_descw0_valid := '1'; - - if ahbmi.hready='1' then - v.buf2 := rdata; - v.state := IDLE; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.state := IDLE; - elsif ahbmi.hresp /= HRESP_OKAY then - v.mo_hbusreq := '1'; - v.state := RTRDESC1; - end if; - end if; - - when RTWSTAT => - - v.buf0 := ins.rt.statusword; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_htrans := HTRANS_IDLE; - end if; - if r.ahb_data_owner='1' then - v.state := RTRNEXT; - v.mo_haddr(3) := '1'; - v.mo_htrans := HTRANS_NONSEQ; - v.mo_hwrite := '0'; - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.state := IDLE; - v.mo_hbusreq := '0'; - end if; - end if; - - when RTRNEXT => - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_htrans := HTRANS_IDLE; - end if; - if r.ahb_data_owner='1' then - v.buf0 := rdata; - v.mo_htrans := HTRANS_NONSEQ; - if ins.rt.tx_transfer='1' then - v.mo_haddr := ins.rt.satbl_addr & "0100"; - else - v.mo_haddr := ins.rt.satbl_addr & "1000"; - end if; - v.mo_hwrite := '1'; - v.state := RTWNEXT; - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror:= '1'; - v.state:=IDLE; - v.mo_hbusreq := '0'; - end if; - end if; - - when RTWNEXT | RTWWRAP => - - if r.state=RTWWRAP then v.buf0 := r.buf1; end if; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_htrans := HTRANS_IDLE; - end if; - if r.ahb_data_owner='1' then - if ins.rt.autowrap='1' and r.state=RTWNEXT then - v.mo_htrans := HTRANS_NONSEQ; - v.mo_haddr(3 downto 2):="01"; - v.state := RTWWRAP; - else - v.state := IDLE; - v.mo_hbusreq := '0'; - end if; - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror:= '1'; - v.state:=IDLE; - v.mo_hbusreq := '0'; - end if; - end if; - - when RTWLOG => - - v.buf0 := ins.rt.logentry; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_htrans := HTRANS_IDLE; - v.mo_hbusreq := '0'; - end if; - if r.ahb_data_owner='1' then - v.state := IDLE; - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror:= '1'; - v.state:=IDLE; - v.mo_hbusreq := '0'; - end if; - end if; - - ----------------------------------------------------------------------- - -- BC/RT Data transfer - ----------------------------------------------------------------------- - - when TFRDATA => - - case endian is - when 0 => v.buf0 := r.buf3; - when 1 => v.buf0 := r.buf3(15 downto 0) & r.buf3(31 downto 16); - end case; - - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.mo_htrans := HTRANS_IDLE; - v.mo_hbusreq := '0'; - end if; - if r.ahb_data_owner='1' then - v.state := IDLE; - case endian is - when 0 => v.buf3 := rdata; - when 1 => v.buf3 := rdata(15 downto 0) & rdata(31 downto 16); - end case; - if cur_data_addr(1)='1' then - v.buf3(31 downto 16) := v.buf3(15 downto 0); - end if; - if r.mo_hwrite='0' then - v.got32 := not cur_data_addr(1); - v.got16 := '1'; - else - v.got32 := '0'; - v.got16 := '0'; - end if; - v.addr_offs(1) := r.buf2(1); - if r.addr_offs(1)=r.buf2(1) then - v.addr_offs(5 downto 2) := std_logic_vector(unsigned(r.addr_offs(5 downto 2))+1); - end if; - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.buf_dmaerror := '1'; - v.state := IDLE; - v.mo_hbusreq := '0'; - v.got32 := '0'; - v.got16 := '0'; - end if; - end if; - - ----------------------------------------------------------------------- - -- BM log write - ----------------------------------------------------------------------- - - when BMWLOG0 => - burst_state := true; - - v.buf0 := ins.bm.logdata(63 downto 32); - - o.bm_progress := '1'; - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.state := BMWLOG1; - v.mo_haddr(2) := '1'; - v.mo_htrans := HTRANS_SEQ; - end if; - end if; - - when BMWLOG1 => - burst_state := true; - - o.bm_progress := '1'; - if ahbmi.hready='1' then - if r.ahb_addr_owner='1' then - v.state := BMWLOG2; - v.mo_htrans := HTRANS_IDLE; - v.mo_hbusreq := '0'; - v.buf0 := ins.bm.logdata(31 downto 0); - end if; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.state := IDLE; - v.mo_hbusreq := '0'; - elsif ahbmi.hresp /= HRESP_OKAY then - v.mo_haddr(2) := '0'; - v.state := BMWLOG0; - end if; - end if; - - when BMWLOG2 => - burst_state := true; - - o.bm_progress := '1'; - if ahbmi.hready='1' then - v.state := IDLE; - end if; - - if ahbmi.hready='0' and r.ahb_data_owner='1' then - if ahbmi.hresp=HRESP_ERROR then - v.desc_dmaerror := '1'; - v.state := IDLE; - v.mo_hbusreq := '0'; - elsif ahbmi.hresp /= HRESP_OKAY then - v.mo_hbusreq := '1'; - v.state := BMWLOG1; - end if; - end if; - - end case; - - if ahbmi.hready='1' and r.state /= IDLE and r.state /= RTRSAT3 and - r.ahb_addr_owner='0' and (burst_state or r.ahb_data_owner='0') then - v.mo_htrans := HTRANS_NONSEQ; - v.mo_hbusreq := '1'; - end if; - - if (ins.bc.push_data='1' or ins.rt.push_data='1') and r.buf2(0)='0' then - v.got32 := r.got16; - v.got16 := '1'; - v.buf3 := r.buf3(15 downto 0) & ins.pushdata; - elsif ins.bc.pull_data='1' or ins.rt.pull_data='1' then - v.buf3 := r.buf3(15 downto 0) & r.buf3(15 downto 0); - v.got16 := r.got32; - v.got32 := '0'; - end if; - - -- Invalid data addr - if r.buf2(0)='1' and ins.rt.need_data='1' then - v.buf3(31 downto 16) := x"0000"; - v.got16 := '1'; - end if; - - if ins.bc.data_reset='1' or ins.rt.data_reset='1' then - v.addr_offs := (others => '0'); - v.got16 := '0'; - v.got32 := '0'; - end if; - - -- Optionally bypass register for hbusreq - if ahbreqreg /= 0 then - msto.hbusreq := v.mo_hbusreq; - end if; - - if rst='0' and syncrst/=0 then - v.state := r_rst.state; - v.mo_htrans := r_rst.mo_htrans; - v.mo_hbusreq := r_rst.mo_hbusreq; - -- Not strictly necessary but good for simulation to make all outputs - -- defined after reset - v.buf0 := r_rst.buf0; -- hwdata - v.mo_haddr := r_rst.mo_haddr; - v.mo_hsize := r_rst.mo_hsize; - v.mo_hburst := r_rst.mo_hburst; - v.mo_hwrite := r_rst.mo_hwrite; - if syncrst>1 then - v.buf1(31 downto 30) := "00"; - v.buf1(25 downto 0) := (others => '0'); - end if; - -- Clear htrans/hbusreq immediately - msto.htrans := r_rst.mo_htrans; - msto.hbusreq := r_rst.mo_hbusreq; - end if; - - nr <= v; - outs <= o; - ahbmo <= msto; - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - -- pragma translate_off - for x in asserterr'range loop assert asserterr(x)='0' report "Error #" & tost(x) severity failure; end loop; - -- pragma translate_on - end if; - if rst='0' and syncrst=0 then - r <= r_rst; - end if; - end process; - -end; - diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_fstimer.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_fstimer.vhd deleted file mode 100644 index 2cd0adb4..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_fstimer.vhd +++ /dev/null @@ -1,179 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_fstimer --- File: gr1553b_fstimer.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B 800 us fail-safe timer ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; - -entity gr1553b_fstimer is - generic ( - tx_clk_freq_mhz: integer; - sameclk: integer range 0 to 1; - syncrst: integer range 0 to 2 - ); - port ( - -- TX Clock domain - tx_clk: in std_logic; - tx_rst: in std_logic; - txP: in std_logic; - txN: in std_logic; - timeout: out std_logic; - -- CMD Clock domain - validcmd_clk: in std_logic; - validcmd_rst: in std_logic; - validcmd: in std_logic - ); -end; - -architecture rtl of gr1553b_fstimer is - - function lowest_2pot(x: integer) return integer is - variable i: integer; - begin - i := 1; - while i - vstarted := '0'; - - if r.got_txstart='1' and r.lberror='0' then - v.state := WAITSYNC; - v.dtype := txi.word.t; - v.dreg := txi.word.data; - v.got_txstart := '0'; - end if; - - when WAITSYNC => - if txo.ready='1' then - v.state := IDLE; - v.lberror := '1'; - elsif rxo.got_sync='1' then - if rxo.dataval='1' xnor r.dtype=CMD_STAT then - v.state := WAITDATA; - v.dcount := 0; - v.accumxor := '0'; - else - v.state := BADDATA; - v.dcount := 0; - end if; - end if; - - when WAITDATA => - if rxo.idle='1' then - if r.dcount=0 then - v.state := WAITSYNC; - else - v.state := IDLE; - v.lberror := '1'; - end if; - elsif rxo.got_data='1' then - v.dreg := r.dreg(14 downto 0) & rxo.dataval; - v.accumxor := r.accumxor xor rxo.dataval; - if r.dcount=15 then - v.state := WAITPARITY; - v.dcount := 0; - else - v.dcount := r.dcount+1; - end if; - if rxo.dataval /= r.dreg(15) then - v.state := IDLE; - v.lberror := '1'; - end if; - end if; - - when WAITPARITY => - if txi.start='0' and r.got_txstart='0' then - vgapblock := '1'; - end if; - if rxo.idle='1' then - v.lberror := '1'; - v.state := IDLE; - elsif rxo.got_data='1' then - v.state := IDLE; - if (rxo.dataval xor r.accumxor) = '1' then - vdatavalid := '1'; - else - v.lberror := '1'; - end if; - end if; - - when BADDATA => - if rxo.idle='1' then - v.state := WAITSYNC; - elsif rxo.got_data='1' then - v.state := IDLE; - v.lberror := '1'; - end if; - - end case; - - if txi.abort='1' then - v.state := IDLE; - v.got_txstart := '0'; - v.got_readdata := '0'; - end if; - - if rst='0' and syncrst/=0 then - v.state := IDLE; - v.got_txstart := '0'; - v.got_readdata := '0'; - v.lberror := '0'; - v.dcount := 0; - v.accumxor := '0'; - v.dreg(15) := '0'; - end if; - - -- Assign outputs - nr <= v; - - lbdone <= not vstarted; - lberror <= r.lberror; - lbdata_valid <= vdatavalid; - lbread_data <= vlbread_data; - gapblock <= vgapblock; - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if rst='0' and syncrst=0 then - r <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_mhztick.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_mhztick.vhd deleted file mode 100644 index 0a8d4492..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_mhztick.vhd +++ /dev/null @@ -1,200 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_mhztick --- File: gr1553b_mhztick.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B MHz tick generator with clock-domain crossing ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; - -entity gr1553b_mhztick is - generic( - timeclk_freq_mhz: integer; - sameclk: integer range 0 to 1; - syncrst: integer range 0 to 2 - ); - port( - clk: in std_logic; - rst: in std_logic; - - restart: in std_logic; - clear: in std_logic; - tick: out std_logic; - - -- time clock domain signals - timeclk: in std_logic; - timerst: in std_logic - ); -end; - -architecture rtl of gr1553b_mhztick is - -- Main timer function signals - signal timerval, ntimerval: integer range 0 to timeclk_freq_mhz-1; - signal restart_time,tick_time: std_logic; - - -- Handshaking signals in timer domain (bypassed when sameclk=1) - signal restart_sync1, restart_sync2, last_restart: std_logic; - signal clear_sync1, clear_sync2: std_logic; - signal tick_tog, ntick_tog: std_logic; - - -- User clock domain handshaking signals (bypassed when sameclk=1) - signal tick_user: std_logic; - signal tick_sync1,tick_sync2, last_tick: std_logic; - signal restart_tog, nrestart_tog, resret_sync1, resret_sync2, resret_sync3: std_logic; - signal clear_hs: std_logic; - - constant timer_restartval: integer := (1-sameclk)*2; - -begin - - tick <= tick_user; - - -- Timer logic - comb: process(timerst,timerval,restart_time) - variable vtick: std_logic; - variable vntimerval: integer range 0 to timeclk_freq_mhz-1; - begin - if timerval=timeclk_freq_mhz-1 then - vtick := '1'; - vntimerval := 0; - else - vtick := '0'; - vntimerval := timerval+1; - end if; - if (timerst='0' and syncrst/=0) or restart_time='1' then - vntimerval := timer_restartval; - end if; - tick_time <= vtick; - ntimerval <= vntimerval; - end process; - - regs: process(timeclk,timerst) - begin - if rising_edge(timeclk) then - timerval <= ntimerval; - end if; - if timerst='0' and syncrst=0 then - timerval <= timer_restartval; - end if; - end process; - - -- Resynchronizers and handshaking - syncgen: if sameclk=0 generate - - timecomb: process(timerst,restart_sync2,tick_time,tick_tog,last_restart) - variable vrestart_time: std_logic; - variable vntick_tog: std_logic; - begin - vrestart_time := '0'; - if restart_sync2/=last_restart then vrestart_time:='1'; end if; - vntick_tog := tick_tog xor (tick_time and not vrestart_time); - if timerst='0' and syncrst/=0 then - vntick_tog := '0'; - end if; - restart_time <= vrestart_time; - ntick_tog <= vntick_tog; - end process; - - timeregs: process(timeclk,timerst) - begin - if rising_edge(timeclk) then - last_restart <= restart_sync2 xor clear_sync2; - tick_tog <= ntick_tog; - end if; - if timerst='0' and syncrst=0 then - last_restart <= '1'; - tick_tog <= '0'; - end if; - end process; - - timesync: process(timeclk,timerst) - begin - if rising_edge(timeclk) then - restart_sync1 <= restart_tog; - restart_sync2 <= restart_sync1; - clear_sync1 <= clear_hs; - clear_sync2 <= clear_sync1; - end if; - if timerst='0' and syncrst=0 then - restart_sync1 <= '0'; - restart_sync2 <= '0'; - clear_sync1 <= '1'; - clear_sync2 <= '1'; - end if; - end process; - - usercomb: process(rst,tick_sync2,last_tick,restart,restart_tog,resret_sync3) - variable vtick_user: std_logic; - variable vnrestart_tog: std_logic; - begin - vtick_user := '0'; - vnrestart_tog := restart_tog; - if resret_sync3=restart_tog then - if tick_sync2/=last_tick then vtick_user:='1'; end if; - if restart='1' then vnrestart_tog:=not restart_tog; end if; - end if; - if rst='0' and syncrst/=0 then - vnrestart_tog := '0'; - end if; - tick_user <= vtick_user; - nrestart_tog <= vnrestart_tog; - end process; - - userregs: process(clk,rst) - begin - if rising_edge(clk) then - last_tick <= tick_sync2; - restart_tog <= nrestart_tog; - clear_hs <= clear; - end if; - if rst='0' and syncrst=0 then - last_tick <= '0'; - restart_tog <= '0'; - clear_hs <= '1'; - end if; - end process; - - usersync: process(clk,rst) - begin - if rising_edge(clk) then - tick_sync1 <= tick_tog; - tick_sync2 <= tick_sync1; - resret_sync1 <= last_restart; - resret_sync2 <= resret_sync1; - resret_sync3 <= resret_sync2; - end if; - if rst='0' and syncrst=0 then - tick_sync1 <= '0'; - tick_sync2 <= '0'; - resret_sync1 <= '1'; - resret_sync2 <= '1'; - resret_sync3 <= '1'; - end if; - end process; - end generate; - - nsyncgen: if sameclk=1 generate - restart_time <= restart or clear; - tick_user <= tick_time; - end generate; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_rt_control.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_rt_control.vhd deleted file mode 100644 index ecb635d3..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_rt_control.vhd +++ /dev/null @@ -1,652 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_rt_control --- File: gr1553b_rt_control.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B Remote terminal top layer ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -library grlib; -use grlib.stdlib.all; -use work.gr1553b_core.all; - -entity gr1553b_rt_control is - generic ( - syncrst: integer range 0 to 2 - ); - port( - clk: in std_logic; - rst: in std_logic; - - ins: in gr1553b_rt_control_in; - outs: out gr1553b_rt_control_out; - - dmai: out gr1553b_dma2_in_rt; - dmao: in gr1553b_dma2_out; - - proti: out gr1553b_rt_proto_in; - proto: in gr1553b_rt_proto_out - ); - attribute sync_set_reset of rst : signal is "true"; -end; - -architecture rtl of gr1553b_rt_control is - - constant logreg_bits: integer := 15; -- 15+2 bits -> 128 Kbyte - constant minalign: integer := 0; -- 2^(0+2) = 4 byte min size - - function resultbits(r: gr1553b_rt_request_result) return std_logic_vector is - begin - case r is - when SUCCESS => return "000"; - when SUPERSEDED => return "001"; - when TIMEOUT => return "010"; - when BUSERROR => return "011"; - when MSGERRSENT => return "100"; - when LBERROR => return "101"; - when others => return "111"; - end case; - end resultbits; - - -- Compare word count values (where "00000"->32), return true if b >= a - function comp_wc(a,b: std_logic_vector) return boolean is - begin - if notx(a) and notx(b) then - if b="00000" then return true; - elsif a="00000" then return false; - else return unsigned(b) >= unsigned(a); - end if; - else - return false; - end if; - end comp_wc; - - -- States (proceeds to following state unless noted otw): - -- - -- START: Start state. - -- IDLE: Go to MODECMD_ACTION,DMATBLREAD or INVALID on command - ----------------------------------------------------------------------------- - -- MODECMD_CHECK: Check 2:nd bit of modecode mask, determines if legal - -- MODECMD_ACTION: "Performs" the mode command. - -- LOGWRITE Write log entry into log ring buffer - -- IRQ if appropriate and goto IDLE. - ----------------------------------------------------------------------------- - -- DMATBLREAD: DMA engine fetches SA table entry and descriptor - -- TRANSFER: Wait while transfer is in progress - -- DMATBLWRITE: DMA engine writes back status, result and log entry - ----------------------------------------------------------------------------- - -- REQILLEGAL Flag illegal request. Wait for transfer to finish and - -- goto IDLE. - -- REQTEMPERR Flag unknown error. Wait for transfer to time out and - -- goto IDLE - -- DMAERROR Wait for dmaerror_ack, then goto IDLE. - -- - type rt_control_state is (START, IDLE, - DMATBLREAD, TRANSFER, DMATBLWRITE, - MODECMD_CHECK, MODECMD_ACTION, - LOGWRITE, - REQILLEGAL, REQTEMPERR, DMAERROR); - - constant bd0_descinvalid: integer := 8; - constant bd0_descdv: integer := 7; - constant bd0_igndv: integer := 6; - constant bd0_dotfr: integer := 5; - constant bd0_maxsize_h: integer := 4; - constant bd0_maxsize_l: integer := 0; - - type rt_control_regs is record - st: rt_control_state; - -- User-written registers - -- Modecode mask, 15 modecodesx2 bits "00"=Illegal, "01"=Legal, - -- "10"=Legal+log, "11"=Legal+log+IRQ - modecode_mask_0: std_logic_vector(14 downto 0); - modecode_mask_1: std_logic_vector(14 downto 0); - subaddr_table_base: std_logic_vector(22 downto 0); - -- User-read registers - syncword: std_logic_vector(15 downto 0); - sync_timetag: std_logic_vector(15 downto 0); - -- The currently processed request and corresponding result. These - -- are copied into registers so we don't have to handle errors or - -- superseded commands from the protocol layer in every state. - current_request: gr1553b_rt_request; - current_request_result: gr1553b_rt_request_result; - -- Subaddress control word parts - do_log, do_irq, autowrap: std_logic; - - -- Log buffer - - logbuf_base: std_logic_vector(29 downto logreg_bits); - logbuf_pos: std_logic_vector(logreg_bits-1 downto 0); - logbuf_mask: std_logic_vector(logreg_bits-1 downto minalign); - got_irq: std_logic; - irq_log_addr: std_logic_vector(logreg_bits-1 downto 0); - descerror: std_logic; - - wordcount: std_logic_vector(5 downto 0); - timetag: std_logic_vector(15 downto 0); - shutdownA,shutdownB: std_logic; - inh_termflag: std_logic; - pending_busreset: std_logic; - busreset: std_logic; - desc_irqen: std_logic; - end record; - - constant r_rst: rt_control_regs := ( - START, "000000000111111", "000000000000000", - (others => '0'), x"0000", x"0000", gr1553b_rt_request_zero, - SUCCESS, '0','0','0', (others => '0'),(others => '0'),(others => '1'), - '0',(others => '0'),'0', - (others => '0'),x"0000",'0','0','0','0','0','0'); - - - signal r,nr: rt_control_regs; - - -- Shared 32-to-1 mux - signal muxin: std_logic_vector(31 downto 0); - signal muxidx: std_logic_vector(4 downto 0); - signal muxout: std_logic; - - -begin - - infmux: process(muxin,muxidx) - begin - if notx(muxidx) then - muxout <= muxin(to_integer(unsigned(muxidx))); - else - muxout <= 'U'; - end if; - end process; - - comb: process(rst,r,ins,proto,dmao,muxout) - variable vr: rt_control_regs; - variable vo: gr1553b_rt_control_out; - variable vdmai: gr1553b_dma2_in_rt; - variable vproti: gr1553b_rt_proto_in; - variable vmuxin: std_logic_vector(31 downto 0); - variable vmuxidx: std_logic_vector(4 downto 0); - - variable typebits: std_logic_vector(1 downto 0); - variable addrbits: std_logic_vector(4 downto 0); - variable failbit: std_logic; - variable new_ctrlword: std_logic_vector(31 downto 0); - variable logentry: std_logic_vector(31 downto 0); - variable fullmask: std_logic_vector(29 downto 0); - variable maxsize: std_logic_vector(4 downto 0); - begin - vr := r; - vdmai := (read_satbl => '0', write_res => '0', write_log => '0', - tx_transfer => '0', tfr_legal => '0', autowrap => r.autowrap, do_log => r.do_log, - statusword => (others => '0'), - satbl_addr => r.subaddr_table_base & r.current_request.subaddr, - logaddr => r.logbuf_base & r.logbuf_pos, logentry => (others => '0'), - data_reset => '0', need_data => '0', pull_data => proto.datain_read, pushing_data => '0', - push_data => proto.dataout_write, push_done => '0'); - vo := (dmaerror=>'0', dmaerror_next => '0', gotirq=>r.got_irq, gotirq_next => '0', - irq_log_addr=>r.logbuf_base & r.irq_log_addr & "00", - descerror => r.descerror, descerror_next => '0', - bussync_nodata=>'0', bussync_data => '0', bussync_word=>r.syncword, busreset=>r.busreset, - bussync_time => r.sync_timetag, - shutdownA=>r.shutdownA, shutdownB=>r.shutdownB, - validcmdA => proto.validcmdA, validcmdB => proto.validcmdB, - active=>'1', - subaddr_table_base => r.subaddr_table_base & "000000000", - modecode_mask=> x"0000000" & "00", - log_mask => fullmask & "00", - log_cur_addr => r.logbuf_base & r.logbuf_pos & "00"); - vproti := (enable=>ins.rt_enable, my_addr=>ins.rt_addr, allow_broadcast => ins.allow_bc, - req_resp => UNKNOWN, statusbits => ins.statusbits, - datain_valid => dmao.can_pull, data_in => dmao.pulldata, - dataout_ready => dmao.can_push); - vmuxidx := mc_to_muxidx(r.current_request.wc_mode, r.current_request.bc); - vmuxin := mcmask_to_muxin(r.modecode_mask_0,false,'0'); - - if r.current_request.t=XMIT then - vdmai.tx_transfer:='1'; - vdmai.tfr_legal := dmao.rt_satw0_temp(7); - if dmao.rt_satw0_valid='1' then - vr.autowrap := dmao.rt_satw0_temp(18); - vr.do_log := dmao.rt_satw0_temp(6); - vr.do_irq := dmao.rt_satw0_temp(5); - end if; - maxsize := dmao.rt_satw0_temp(4 downto 0); - else - vdmai.tx_transfer:='0'; - if r.current_request.bc='1' then - vdmai.tfr_legal := dmao.rt_satw0_temp(16); - else - vdmai.tfr_legal := dmao.rt_satw0_temp(15); - end if; - if dmao.rt_satw0_valid='1' then - vr.autowrap := dmao.rt_satw0_temp(18); - vr.do_log := dmao.rt_satw0_temp(14); - vr.do_irq := dmao.rt_satw0_temp(13); - end if; - maxsize := dmao.rt_satw0_temp(12 downto 8); - end if; - - if dmao.rt_descw0_valid='1' then - vr.desc_irqen := dmao.rt_descw0_temp(30); - vr.do_log := vr.do_log or vr.desc_irqen; - vr.do_irq := vr.do_irq or vr.desc_irqen; - end if; - - if not comp_wc(r.current_request.wc_mode, maxsize) then - vdmai.tfr_legal := '0'; - end if; - - if r.current_request.t = RECV then - typebits := "01"; - addrbits := r.current_request.subaddr; - elsif r.current_request.t = XMIT then - typebits := "00"; - addrbits := r.current_request.subaddr; - else - typebits := "10"; - addrbits := r.current_request.wc_mode; - end if; - if r.current_request_result=SUCCESS then - failbit := '0'; - else - failbit := '1'; - end if; - - vdmai.logentry := - r.do_irq & typebits & addrbits & r.timetag(13 downto 0) & - r.current_request.bc & r.wordcount & resultbits(r.current_request_result); - - vdmai.statusword := - "1" & r.desc_irqen & "0000" & r.timetag & r.current_request.bc & r.wordcount & - resultbits(r.current_request_result); - - fullmask := (others => '0'); - fullmask(29 downto logreg_bits) := (others => '1'); - fullmask(logreg_bits-1 downto minalign) := r.logbuf_mask; - - - for x in 14 downto 0 loop - vo.modecode_mask(2*x+1) := r.modecode_mask_1(x); - vo.modecode_mask(2*x) := r.modecode_mask_0(x); - end loop; - - if r.inh_termflag='1' then vproti.statusbits(0):='0'; end if; - - - - - --if r.current_request_result=SUCCESS then new_ctrlword(31):='1'; end if; - - -- State machine transitions - - case r.st is - - when START => - vo.active := '0'; - vr.current_request_result := PROGRESS; - vr.current_request := proto.request; - vr.st := IDLE; - - when IDLE => - vo.active := '0'; - vr.current_request_result := PROGRESS; - vr.current_request := proto.request; - vr.wordcount := (others=>'0'); - vr.timetag := ins.timer_value; - vr.do_log := '0'; - vr.do_irq := '0'; - case r.current_request.t is - when NOREQ => - null; - when RECV | XMIT=> - if dmao.ready='1' then - vdmai.read_satbl := '1'; - vr.st := DMATBLREAD; - end if; - when MODECMD | MODECMD_RECV | MODECMD_XMIT => - -- Check the modecmd valid mask reg. - -- vmuxidx/vmuxin already set above - -- vmuxidx := mc_to_muxidx(proto.request.wc_mode, proto.request.bc); - vmuxin := mcmask_to_muxin(r.modecode_mask_1,false,'0'); - vr.do_log := muxout; - vr.st := MODECMD_CHECK; - end case; - - ----------------------------------------------------------------------- - -- Data transfer states - ----------------------------------------------------------------------- - - when DMATBLREAD => - if r.current_request.t=XMIT then - if dmao.rt_descptr_valid='1' then - vproti.req_resp := REQOK; - end if; - end if; - - if dmao.desc_dmaerror='1' then - vr.st := DMAERROR; - elsif r.current_request.t=RECV and dmao.rt_descw0_valid='1' and - dmao.rt_descw0_temp(31)='1' and dmao.rt_satw0_temp(17)='0' then - -- DV set and IGNDV not set - vr.st := REQTEMPERR; - elsif dmao.rt_break='1' then - if vdmai.tfr_legal='0' then - vr.st := REQILLEGAL; - else - vr.st := REQTEMPERR; - end if; - elsif dmao.ready='1' then - vr.st := TRANSFER; - end if; - - vdmai.data_reset := '1'; - - when TRANSFER => - vproti.req_resp := REQOK; - if r.current_request.t=RECV then - vdmai.pushing_data := '1'; - else - vdmai.need_data := '1'; - end if; - - if proto.dataout_write='1' or proto.datain_read='1' then - vr.wordcount := std_logic_vector(unsigned(r.wordcount)+1); - end if; - - if dmao.buf_dmaerror='1' then - vr.st := DMAERROR; - elsif r.current_request_result /= PROGRESS and dmao.ready='1' then - if r.current_request.t=RECV and dmao.can_pull='1' then - vdmai.push_done := '1'; - else - vdmai.write_res := '1'; - vr.st := DMATBLWRITE; - end if; - end if; - - when DMATBLWRITE => - if dmao.desc_dmaerror='1' then - vr.st := DMAERROR; - elsif dmao.ready='1' and r.do_log='1' then - vdmai.write_log := '1'; - vr.st := LOGWRITE; - elsif dmao.ready='1' then - vr.st := START; - end if; - - ----------------------------------------------------------------------- - -- Mode command states - ----------------------------------------------------------------------- - - when MODECMD_CHECK => - -- vmuxidx := mc_to_muxidx(proto.request.wc_mode, proto.request.bc); - vmuxin := mcmask_to_muxin(r.modecode_mask_0,false,'0'); - vr.do_irq := muxout; - if muxout='0' and r.do_log='0' then - vr.st := REQILLEGAL; - else - vr.st := MODECMD_ACTION; - end if; - - when MODECMD_ACTION => - - vproti.req_resp := REQOK; - - -- Synchronize w/o data word - if r.current_request.wc_mode="00001" and r.current_request_result=SUCCESS then - vo.bussync_nodata := '1'; - vr.sync_timetag := r.timetag; - end if; - -- Reset remote terminal - if r.current_request.wc_mode="01000" and r.current_request_result=SUCCESS then - -- Setting delayed_busreset in later state to avoid glitch because - -- txready goes from 1->0 in this same cycle - vr.shutdownA := '0'; - vr.shutdownB := '0'; - vo.validcmdA := '1'; - vo.validcmdB := '1'; - vr.inh_termflag := '0'; - vr.pending_busreset := '1'; - end if; - -- Transmitter shutdown - if r.current_request.wc_mode="00100" and r.current_request_result=SUCCESS then - if r.current_request.cmdbus = '1' then - vr.shutdownA := '1'; - else - vr.shutdownB := '1'; - end if; - end if; - -- Override transmitter shutdown - if r.current_request.wc_mode="00101" and r.current_request_result=SUCCESS then - if r.current_request.cmdbus='1' then - vr.shutdownA := '0'; - else - vr.shutdownB := '0'; - end if; - end if; - -- We need to change these right before sending sending the status - -- word but after checking data word count. - -- Also need to check for result=SUCCESS to handle broadcast case - -- Inhibit terminal flag - if r.current_request.wc_mode="00110" and - ((r.current_request_result=PROGRESS and proto.status_next='1') or r.current_request_result=SUCCESS) then - vr.inh_termflag := '1'; - end if; - -- Override inhibit terminal flag - if r.current_request.wc_mode="00111" and - ((r.current_request_result=PROGRESS and proto.status_next='1') or r.current_request_result=SUCCESS) then - vr.inh_termflag := '0'; - end if; - - if r.current_request.t=MODECMD_XMIT then --- pragma translate_off - assert r.current_request.wc_mode="10000" or r.current_request.wc_mode="10011" report "Invalid command" severity failure; --- pragma translate_on - if r.current_request.wc_mode="10000" then - -- Transmit vector word - vproti.data_in := ins.vector_word; - vproti.datain_valid := '1'; - else - -- Transmit BIT word - vproti.data_in := ins.bit_word; - vproti.datain_valid := '1'; - end if; - if proto.datain_read='1' then - vr.wordcount := std_logic_vector(unsigned(r.wordcount)+1); - end if; - - elsif r.current_request.t=MODECMD_RECV then --- pragma translate_off - assert r.current_request.wc_mode="10001" report "Invalid command passed through check!" severity failure; --- pragma translate_on - vproti.dataout_ready := '1'; - if proto.dataout_write='1' then - vr.wordcount := std_logic_vector(unsigned(r.wordcount)+1); - if r.current_request.wc_mode="10001" then - vr.syncword := proto.data_out; - vr.sync_timetag := r.timetag; - vo.bussync_data := '1'; - end if; - end if; - - else - assert r.current_request.t=MODECMD report "Inconsistent state/request type" severity failure; - - end if; - - if r.current_request_result /= PROGRESS then - if r.do_log='1' then - vr.st := LOGWRITE; - vdmai.write_log := '1'; - else - vr.st := START; - end if; - end if; - - - ----------------------------------------------------------------------- - -- Common end states - ----------------------------------------------------------------------- - - when LOGWRITE => - if dmao.desc_dmaerror='1' then - vr.st := DMAERROR; - elsif dmao.ready='1' then - vr.st := START; - vr.logbuf_pos := (std_logic_vector(unsigned(r.logbuf_pos)+1) and not fullmask(logreg_bits-1 downto 0)) or - (r.logbuf_pos and fullmask(logreg_bits-1 downto 0)); - if r.do_irq='1' and r.got_irq='0' then - vo.gotirq_next := '1'; - vr.got_irq := '1'; - vr.irq_log_addr := r.logbuf_pos; - end if; - end if; - - when REQILLEGAL => - vproti.req_resp := REQILLEGAL; - -- In case of a receive command, set dataout_ready and just ignore the - -- incoming data. - vproti.dataout_ready := '1'; - if r.current_request_result /= PROGRESS then - vr.st := START; - end if; - - - when REQTEMPERR => - if r.current_request_result /= PROGRESS then - if r.do_log='1' then - vr.st := LOGWRITE; - vdmai.write_log := '1'; - else - vr.st := START; - end if; - end if; - - - when DMAERROR => - vo.dmaerror := '1'; - if ins.dmaerror_ack='1' then - vr.st := START; - end if; - - end case; - - if r.st /= DMAERROR and vr.st = DMAERROR then - vo.dmaerror_next := '1'; - end if; - - if ((r.st /= REQTEMPERR and vr.st = REQTEMPERR) or - (r.current_request_result=TIMEOUT and r.descerror='0' and r.st /= REQTEMPERR)) then - vo.descerror_next := '1'; - vr.descerror := '1'; - end if; - - -- Copy result when the current transfer finishes - if r.st /= START and r.st /= IDLE and r.current_request_result=PROGRESS and proto.result/=PROGRESS then - vr.current_request_result := proto.result; - end if; - - -- Make sure we don't respond to the next request while finishing - -- processing of a finished transfer. - if r.current_request_result /= PROGRESS then - vproti.req_resp := UNKNOWN; - vproti.datain_valid := '0'; - end if; - - if ins.irqack='1' then - vr.got_irq := '0'; - end if; - - if ins.descerror_ack='1' then - vr.descerror := '0'; - end if; - - vr.busreset := '0'; - if r.pending_busreset='1' and proto.txdone='1' then - vr.busreset := '1'; - vr.pending_busreset := '0'; - end if; - - -- User register access - if ins.set_modecode_mask='1' then - for x in 14 downto 0 loop - vr.modecode_mask_1(x) := ins.user_input(2*x+1); - vr.modecode_mask_0(x) := ins.user_input(2*x); - end loop; - end if; - if ins.set_subaddr_table_base='1' then - vr.subaddr_table_base := ins.user_input(31 downto 9); - end if; - if ins.set_log_mask='1' then - vr.logbuf_mask := ins.user_input(logreg_bits+1 downto minalign+2); - end if; - if ins.set_log_cur_addr='1' then - vr.logbuf_base := ins.user_input(31 downto logreg_bits+2); - vr.logbuf_pos := ins.user_input(logreg_bits+1 downto 2); - end if; - - if ins.rt_stop='1' then - vr.st := START; - end if; - - if rst='0' and syncrst/=0 then - vr.st := r_rst.st; - vr.modecode_mask_0 := r_rst.modecode_mask_0; - vr.modecode_mask_1 := r_rst.modecode_mask_1; - vr.subaddr_table_base := r_rst.subaddr_table_base; - vr.syncword := r_rst.syncword; - vr.sync_timetag := r_rst.sync_timetag; - vr.shutdownA := r_rst.shutdownA; - vr.shutdownB := r_rst.shutdownB; - vr.logbuf_base := r_rst.logbuf_base; - vr.logbuf_mask := r_rst.logbuf_mask; - vr.logbuf_pos := r_rst.logbuf_pos; - vr.got_irq := r_rst.got_irq; - vr.irq_log_addr := r_rst.irq_log_addr; - vr.inh_termflag := r_rst.inh_termflag; - vr.descerror := r_rst.descerror; - vr.pending_busreset := r_rst.pending_busreset; - if syncrst > 1 then - vr := r_rst; - end if; - end if; - - nr <= vr; - outs <= vo; - dmai <= vdmai; - proti <= vproti; - muxin <= vmuxin; - muxidx <= vmuxidx; - end process; - - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if rst='0' and syncrst=0 then - r <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_rt_proto.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_rt_proto.vhd deleted file mode 100644 index b43b6666..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_rt_proto.vhd +++ /dev/null @@ -1,735 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_rt_proto --- File: gr1553b_rt_proto.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B Remote Terminal protocol manager state machine ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use work.gr1553b_core.all; -library grlib; -use grlib.stdlib.all; - -entity gr1553b_rt_proto is - generic ( - syncrst: integer range 0 to 2 - ); - - port( - clk: in std_logic; - rst: in std_logic; - - ins: in gr1553b_rt_proto_in; - outs: out gr1553b_rt_proto_out; - - us_restart: out std_logic; - us_clear: out std_logic; - us_tick: in std_logic; - - toll: out gr1553b_codec_in; - fromll: in gr1553b_codec_out - ); - attribute sync_set_reset of rst : signal is "true"; -end; - -architecture rtl of gr1553b_rt_proto is - - type rt_state is (IDLE, GOTINVRECV, GOTCMD, WAITRECV, WAITOTHERSTATUS, WAITRECVDATA, WAITVALID, WAITVALID2, SENDSTATUS, WAITTXSTATUS, SENDDATA); - - -- Allow a minimum of 1 us and maximum of 2 us slack between continuous words (+nominal end-parity - -- to end-firstbit of 4 us) - constant begin_thres: integer := 5; - constant slack_thres: integer := 1; - - -- The standards response req is 4-12 us midbit to midsync => 2-10 us bus dead time. - -- However, to verify the word count we need to check for an unexpected data sync - -- This needs at least 4 us of waiting. - constant status_delay_min: integer := begin_thres; - constant status_delay_max: integer := 9; - - -- Notice II adds RT-to-RT requirement for the receiving RT that first data word - -- should be verified to arrive in less than 54-60 us after the receive command word - -- measured mid-parity to mid-sync. - -- - -- Translated to end of RX command word to end of TX status word -> 52-58 us - -- Because we allow 1-2 us of slack on the data word, this becomes 52-56 us - -- Translated to end of first bit of TX status word (when rxstarted goes - -- high) -> 36-40 -> use 39 as threshold - -- - -- When the timeout for rxstarted is reached, - -- timer1=19 and timer2=1 - constant otherstatus_to1: integer := 19; -- 39 mod 20 - constant otherstatus_to2: integer := 1; - - type rtpr_regs is record - st: rt_state; - cmd: std_logic_vector(15 downto 0); - cmdbus: std_logic; - other_addr: std_logic_vector(4 downto 0); - waitdata_wc: std_logic_vector(4 downto 0); - msgerr: std_logic; - bcrec: std_logic; - timer2: integer range 0 to 1; - timer1: integer range 0 to 19; - lastcmd_flag: std_logic; - laststat_flag: std_logic; - validcmdA,validcmdB: std_logic; - end record; - - constant r_rst: rtpr_regs := (IDLE,x"0000",'0',"00000","00000",'0','0',0,0,'0','0','0','0'); - - signal r,nr: rtpr_regs; - -begin - - comb: process(rst,ins,fromll,r,us_tick) - variable v: rtpr_regs; - variable o: gr1553b_rt_proto_out; - variable cin: gr1553b_codec_in; - variable vus_restart: std_logic; - variable vus_clear: std_logic; - - variable rxw_addr,rxw_samc,rxw_wcmc,cmd_addr,cmd_samc,cmd_wcmc: std_logic_vector(4 downto 0); - variable rxw_tr,rxw_instr,cmd_tr,cmd_bc: std_logic; - variable rxword_is_valid_cmd: boolean; - variable rxword_is_illegal_bc_cmd: boolean; - variable rxword_is_check: boolean; - - variable validcmd: std_logic; - - variable cmd_is_illegal_mc: boolean; - - begin - -- Init vars - v := r; - - v.validcmdA := '0'; - v.validcmdB := '0'; - - cmd_addr := r.cmd(15 downto 11); - cmd_tr := r.cmd(10); - cmd_samc := r.cmd(9 downto 5); - cmd_wcmc := r.cmd(4 downto 0); - if cmd_addr="11111" then cmd_bc:='1'; else cmd_bc:='0'; end if; - - o := (request => (t => NOREQ, subaddr => cmd_samc, wc_mode => cmd_wcmc, - bc => cmd_bc, cmdbus => r.cmdbus), - result => PROGRESS, - datain_read => '0', dataout_write => '0', data_out => fromll.rxword.data, - validcmdA => r.validcmdA, validcmdB => r.validcmdB, txdone => fromll.lbdone, status_next => '0'); - - cin := (bussel => r.cmdbus, anybus => '1', - txstart => '0', txdata => (t => DATA, data => ins.data_in), - txabort => '0'); - - validcmd := '0'; - vus_restart := '0'; - vus_clear := '0'; - - -- Comb. logic used by FSM - rxw_addr := fromll.rxword.data(15 downto 11); - rxw_tr := fromll.rxword.data(10); - rxw_samc := fromll.rxword.data(9 downto 5); - rxw_wcmc := fromll.rxword.data(4 downto 0); - - rxword_is_illegal_bc_cmd := false; - if fromll.rxword.t=DATA then - rxword_is_valid_cmd := false; - elsif rxw_addr /= ins.my_addr and (rxw_addr /= "11111" or ins.allow_broadcast='0') then - rxword_is_valid_cmd := false; - elsif (rxw_addr="11111" and ins.allow_broadcast='1' and rxw_tr='1' and - ((rxw_samc/="00000" and rxw_samc/="11111") or rxw_wcmc(4)='1' or rxw_wcmc="00010")) then - - -- Transmit data command with broadcast address or - -- Mode command with transmit data word and broadcast address or - -- Broadcast transmit status word - - -- These satisfy the requirements for a valid command, however they are - -- not allowed. Therefore, they have to be illegal - - rxword_is_valid_cmd := true; - rxword_is_illegal_bc_cmd := true; - - -- elsif ((rxw_samc="00000" or rxw_samc="11111") and not modecode_valid(rxw_wcmc,rxw_tr)) then - -- Mode command with reserved mode code - -- - -- There are two kinds of reserved mode codes: - -- - -- Mode codes and T/R combinations that are not listed in the original MIL-STD-1553B - -- (called Undefined and marked as Reserved* in AS15531 Table 1): - -- Mode codes < 16 with TR bit=0 - -- Mode codes with opposite T/R bit to which they are defined - -- Unused mode code values (listed as Reserved in both MIL-STD-1553 and AS15531) - - -- These satisfy the requirements for a valid command, however they are - -- not allowed. Therefore, they have to be illegal - - -- rxword_is_valid_cmd := true; - - else - rxword_is_valid_cmd := true; - end if; - - -- Check if rxword is send status or send last command mode code. - rxword_is_check := false; - if rxw_addr = ins.my_addr and (rxw_samc="00000" or rxw_samc="11111") and rxw_tr='1' and (rxw_wcmc="00010" or rxw_wcmc="10010") then - rxword_is_check := true; - end if; - - cmd_is_illegal_mc := false; - if (cmd_samc="00000" or cmd_samc="11111") and not modecode_valid(cmd_wcmc,cmd_tr) and - r.lastcmd_flag='0' then - cmd_is_illegal_mc := true; - end if; - - - --------------------------------------------------------------------------- - -- State machine transitions - - if r.st=IDLE or r.st=GOTINVRECV then - if r.st=IDLE then vus_clear := '1'; end if; - - if ins.enable='0' or (fromll.rxstarted='0' and r.timer1=begin_thres) then - v.st:=IDLE; - end if; - - if ins.enable='1' and fromll.rxdone='1' then - if rxword_is_illegal_bc_cmd then - v.bcrec := '1'; - v.msgerr := '1'; - v.cmd := fromll.rxword.data; - v.st := IDLE; - elsif rxword_is_valid_cmd and - (r.st=IDLE or fromll.rxbus/=r.cmdbus or rxw_tr='0' or (rxw_samc/="00000" and rxw_samc/="11111")) then - v.st := GOTCMD; - elsif r.st=IDLE and fromll.rxword.t=CMD_STAT and rxw_tr='0' then - v.st := GOTINVRECV; - v.cmdbus := fromll.rxbus; - else - if rxword_is_valid_cmd then - v.msgerr := '1'; - v.cmd := fromll.rxword.data; - if rxw_addr="11111" then v.bcrec:='1'; else v.bcrec:='0'; end if; - end if; - v.st := IDLE; - end if; - end if; - end if; - - if r.st=GOTCMD then cin.txabort := '1'; end if; - - if r.st=GOTCMD and fromll.rxdone='1' and fromll.rxword.t=CMD_STAT and rxword_is_valid_cmd then - v.st := GOTCMD; - o.result := SUPERSEDED; - - elsif r.st=GOTCMD then - - v.waitdata_wc := cmd_wcmc; - - if r.lastcmd_flag='1' or r.laststat_flag='1' then - -- Wait for the minimum response time - v.st := WAITVALID; - - elsif cmd_samc /= "00000" and cmd_samc /= "11111" and cmd_tr='0' then - -- Receive command, wait for next data or status word - -- - v.st := WAITRECV; - elsif (cmd_samc="00000" or cmd_samc="11111") and cmd_wcmc(4)='1' then - -- Mode command with one data byte, wait for the data byte - v.st := WAITRECVDATA; - v.waitdata_wc := "00001"; - if cmd_tr='1' then v.st:=WAITVALID; end if; - else - -- Wait for upper layer to accept the command - v.st := WAITVALID; - end if; - end if; - - if r.st=WAITRECV then - - if fromll.rxdone='1' and fromll.rxword.t=DATA and fromll.rxbus=r.cmdbus then - -- First data word of BC->RT transfer - if ins.dataout_ready='1' then - o.dataout_write := '1'; - v.st := WAITRECVDATA; - if cmd_wcmc = "00000" then - v.waitdata_wc := "11111"; - else - v.waitdata_wc := std_logic_vector(unsigned(cmd_wcmc) - 1); - end if; - if cmd_wcmc="00001" then - v.st := WAITVALID; - else - v.st := WAITRECVDATA; - end if; - else - -- We have data to write but the layer above is not ready. - -- - -- The system should be designed so this can not happen, so - -- this is a worst-case fallback. The BC will not get a - -- status word, so it notices that something's gone - -- wrong. If we're doing a broadcast receive, the broadcast - -- command received bit will not be set. - o.result := TIMEOUT; - v.st := IDLE; - end if; - - elsif fromll.rxdone='1' and rxw_tr='1' and rxw_addr/="11111" and fromll.rxbus=r.cmdbus and - (rxw_samc /= "00000" and rxw_samc /= "11111") then - -- Second command word of RT->RT command - -- There are four (valid) cases: - -- 1. Non-broadcast, we're receiving - -- First word is a receive word with our address which makes us - -- reach this state. - -- At this point, there is a transmit word for another RT. - -- We make sure it's word count matches, and goto WAITOTHERSTATUS - -- 2. Non-broadcast, we're transmitting - -- First word is a receive word with another address, so it gets ignored - -- The second word is treated the same way as an RT->CTRL transmit - -- Thus, we never reach this state - -- 3. Broadcast, we're receiving - -- First word is a receive word with broadcast addr, we reach this - -- state. - -- At this point, there is a transmit word for another RT. - -- Handle this the same way as case 1. Only difference is - -- we don't send out the status word when reaching the SENDSTATUS - -- state. - -- 4. Broadcast, we're transmitting - -- First word is a receive word with broadcast addr, we reach this - -- state. - -- At this point, there is a transmit word with our addr. - -- Treat this command word as a superceding command - - if rxw_wcmc /= cmd_wcmc then - -- Word count mismatch - o.result := BUSERROR; - v.st := IDLE; - v.msgerr := '1'; - elsif rxw_addr=ins.my_addr then - -- Case 4 above - o.result := SUPERSEDED; - v.st := WAITVALID; - v.bcrec := '0'; - v.cmd := fromll.rxword.data; - else - -- Case 1 or 3 - v.st := WAITOTHERSTATUS; - v.other_addr := rxw_addr; - - end if; - - elsif fromll.rxdone='1' and fromll.rxbus=r.cmdbus and rxw_tr='1' then - -- Transmit mode command in RT-to-RT message format - o.result := BUSERROR; - v.st := IDLE; - v.msgerr := '1'; - - - elsif fromll.rxdone='1' and rxword_is_valid_cmd then - -- Superseding valid command on either bus - o.result := SUPERSEDED; - v.st := GOTCMD; - - elsif fromll.rxdone='1' and fromll.rxbus=r.cmdbus then - -- Invalid command om same bus - fail - o.result := BUSERROR; - v.st := IDLE; - v.msgerr := '1'; - - elsif fromll.rxstarted='0' and r.timer1 = begin_thres then - - -- Discontinuous message - fail - o.result := BUSERROR; - v.st := IDLE; - v.msgerr := '1'; - - end if; - - end if; - - if r.st=WAITOTHERSTATUS then - -- Check instrumentation bit data(9) and message error bit data(10) - if fromll.rxdone='1' and fromll.rxword.t = CMD_STAT and rxw_addr=r.other_addr and - fromll.rxword.data(10)='0' and fromll.rxword.data(9)='0' and - fromll.rxbus=r.cmdbus and r.msgerr='0' then - v.st := WAITRECVDATA; - v.waitdata_wc := cmd_wcmc; - vus_restart := '1'; - elsif fromll.rxdone='1' and rxword_is_valid_cmd then - o.result := SUPERSEDED; - v.st := GOTCMD; - elsif fromll.rxdone='1' and fromll.rxbus=r.cmdbus then - o.result := BUSERROR; - v.st := IDLE; - v.msgerr := '1'; - - elsif fromll.rxstarted='0' and r.timer2=otherstatus_to2 and r.timer1=otherstatus_to1 then - o.result := BUSERROR; - v.st := IDLE; - v.msgerr := '1'; - end if; - - end if; - - if r.st=WAITRECVDATA then - - if fromll.rxdone='1' and fromll.rxword.t = DATA and fromll.rxbus=r.cmdbus then - - if cmd_is_illegal_mc then - v.st := WAITVALID; - elsif ins.dataout_ready='1' then - o.dataout_write := '1'; - if r.waitdata_wc="00000" then - v.waitdata_wc := "11111"; - elsif r.waitdata_wc/="00001" then - v.waitdata_wc := std_logic_vector(unsigned(r.waitdata_wc)-1); - else - v.st := WAITVALID; - end if; - else - o.result := TIMEOUT; - v.st := IDLE; - end if; - - elsif fromll.rxdone='1' and rxword_is_valid_cmd then - -- Superseding valid command - o.result := SUPERSEDED; - v.st := GOTCMD; - - elsif fromll.rxdone='1' and fromll.rxbus=r.cmdbus then - -- Invalid command word - o.result := BUSERROR; - v.st := IDLE; - v.msgerr := '1'; - - - elsif fromll.rxstarted='0' and r.timer1=begin_thres then - - o.result := BUSERROR; - v.st := IDLE; - v.msgerr := '1'; - - end if; - end if; - - if r.st=WAITVALID then - -- Priority: - -- 1. Superseding command - if fromll.rxdone='1' and rxword_is_valid_cmd then - o.result := SUPERSEDED; - v.st := GOTCMD; - -- 2. Bus error: unexpected data word received - -- rxdone is also checked to ignore data words from other bus - elsif fromll.rxdone='0' and fromll.rxstarted='1' then - o.result := BUSERROR; - v.msgerr := '1'; - v.st := IDLE; - -- 3. Minimum timer value passed (to ensure no unexp data word) - elsif r.timer1 = status_delay_min then - v.st := WAITVALID2; - end if; - end if; - - if r.st=WAITVALID2 then - -- Priority: - -- 1. Superseding command - if fromll.rxdone='1' and rxword_is_valid_cmd then - o.result := SUPERSEDED; - v.st := GOTCMD; - -- 2. Bus error: unexpected data word received - elsif fromll.rxdone='0' and fromll.rxstarted='1' then - o.result := BUSERROR; - v.msgerr := '1'; - v.st := IDLE; - -- 3. Minimum timer value passed (to ensure no unexp data word) - -- 4. Last command / Last status word / BCMC handling - elsif (r.lastcmd_flag='1' or r.laststat_flag='1' or cmd_is_illegal_mc) then - v.st := SENDSTATUS; - if cmd_is_illegal_mc then v.msgerr:='1'; end if; - elsif cmd_addr="11111" and (cmd_samc="00000" or cmd_samc="11111") and cmd_wcmc(4)='0' then - -- Broadcast mode command without data - -- This is a special case because the RT control layer has no way to - -- refuse this broadcast - if ins.req_resp=REQILLEGAL then - v.msgerr := '1'; - v.st := IDLE; - -- We re-use the message error sent error code in this special case - o.result := MSGERRSENT; - elsif ins.req_resp=REQOK then - o.result := SUCCESS; - v.st := IDLE; - end if; - -- 5. Ordinary command, response received - elsif ins.req_resp /= UNKNOWN then - v.st := SENDSTATUS; - o.status_next := '1'; - if ins.req_resp=REQILLEGAL then - v.msgerr := '1'; - end if; - -- 6. Timeout - elsif r.timer1 = status_delay_max then - o.result := TIMEOUT; - v.st := IDLE; - end if; - end if; - - if r.st=SENDSTATUS or r.st=WAITTXSTATUS then - cin.txdata.t := CMD_STAT; - cin.txdata.data := ins.my_addr & r.msgerr & '0' & ins.statusbits(4) & "000" & r.bcrec & ins.statusbits(3 downto 0); - -- Mask out Dynamic Bus Control acceptance unless we are - -- responding to a DBC mode code. Mask out the busy bit if we are - -- responding to a reset remote terminal command - if r.lastcmd_flag='1' or r.laststat_flag='1' or (cmd_samc/="00000" and cmd_samc/="11111") then - -- Not mode code - cin.txdata.data(1) := '0'; - else - -- Mode code - if cmd_wcmc/="00000" then - cin.txdata.data(1) := '0'; --DBCA - end if; - if cmd_wcmc="01000" then - cin.txdata.data(3) := '0'; --Busy - end if; - end if; - end if; - - if r.st=SENDSTATUS then - vus_clear := '1'; - if fromll.rxdone='1' and rxword_is_valid_cmd then - o.result := SUPERSEDED; - v.st := GOTCMD; - elsif cmd_addr="11111" and not (r.lastcmd_flag='1' or r.laststat_flag='1') then - o.result := SUCCESS; - v.st := IDLE; - elsif fromll.txready='1' then - cin.txstart := '1'; - v.st := WAITTXSTATUS; - end if; - end if; - - if r.st=WAITTXSTATUS then - vus_clear := '1'; - if fromll.rxdone='1' and rxword_is_valid_cmd then - o.result := SUPERSEDED; - v.st := GOTCMD; - cin.txabort := '1'; - elsif r.laststat_flag='1' then - if fromll.txread_data='1' then - o.result := SUCCESS; - v.st := IDLE; - end if; - elsif r.lastcmd_flag='1' then - cin.txstart := '1'; - if fromll.txread_data='1' then - v.st := SENDDATA; - end if; - elsif r.msgerr='1' or cin.txdata.data(3)='1' then - -- If we're flagging an error or busy bit, we don't send the data. - if fromll.txread_data='1' then - o.result := MSGERRSENT; - v.st := IDLE; - end if; - elsif (cmd_samc="00000" or cmd_samc="11111") and cmd_wcmc(4)='1' and cmd_tr='1' then - -- Mode command with one data word transmit - cin.txstart := ins.datain_valid; - if fromll.txread_data='1' then - v.st := SENDDATA; - end if; - elsif cmd_samc/="00000" and cmd_samc/="11111" and cmd_tr='1' then - -- Transmit command - cin.txstart := ins.datain_valid; - if fromll.txread_data='1' then - v.st := SENDDATA; - end if; - else - if fromll.txread_data='1' then - o.result := SUCCESS; - v.st := IDLE; - end if; - end if; - - end if; - - if r.st=SENDDATA then - vus_clear := '1'; - if r.lastcmd_flag='1' then - cin.txstart := '1'; - cin.txdata := (t=>DATA, data=>r.cmd); - else - cin.txstart := ins.datain_valid; - end if; - - if fromll.txready='1' then - if r.lastcmd_flag='1' then - -- None - elsif ins.datain_valid='0' then - o.result := TIMEOUT; - v.st := IDLE; - end if; - end if; - - if fromll.txread_data='1' then - if r.lastcmd_flag='1' then - v.st := IDLE; - else - o.datain_read := '1'; - if r.waitdata_wc="00001" then - o.result := SUCCESS; - v.st := IDLE; - elsif r.waitdata_wc="00000" then - v.waitdata_wc := "11111"; - else - v.waitdata_wc := std_logic_vector(unsigned(r.waitdata_wc) - 1); - end if; - end if; - end if; - - if fromll.rxdone='1' and rxword_is_valid_cmd then - o.result := SUPERSEDED; - v.st := GOTCMD; - cin.txabort := '1'; - cin.txstart := '0'; - end if; - - end if; - - if v.st=GOTCMD then - validcmd := '1'; - vus_restart := '1'; - v.cmdbus := fromll.rxbus; - v.laststat_flag := '0'; - v.lastcmd_flag := '0'; - - if not rxword_is_check then - v.cmd := fromll.rxword.data; - v.msgerr := '0'; - if rxw_addr="11111" then - v.bcrec := '1'; - else - v.bcrec := '0'; - end if; - - elsif rxw_wcmc(4) = '1' then - v.lastcmd_flag := '1'; - - else - - -- The only words excluded from the transmit last command mode code are - -- invalid commands and the transmit last command mode code itself - -- NOT the transmit status word command. - -- Thus, a transmit status word followed by transmit last command - -- should return the transmit status word mode code - v.cmd := fromll.rxword.data; - - v.laststat_flag := '1'; - end if; - end if; - - if v.st=WAITVALID and r.st/=WAITVALID then vus_restart:='1'; end if; - - if validcmd='1' then - if v.cmdbus='1' then - v.validcmdB := '1'; - else - v.validcmdA := '1'; - end if; - end if; - - if vus_restart='1' or vus_clear='1' then - v.timer1 := 0; - v.timer2 := 0; - else - if us_tick='1' then - if r.timer1 = 19 then - v.timer1 := 0; - if r.timer2 = 1 then - v.timer2 := 0; - else - v.timer2 := r.timer2+1; - end if; - else - v.timer1 := r.timer1+1; - end if; - end if; - end if; - - --------------------------------------------------------------------------- - - if r.st=IDLE or r.st=GOTINVRECV or r.lastcmd_flag='1' or r.laststat_flag='1' or cmd_is_illegal_mc or - o.result=SUPERSEDED then - o.request.t := NOREQ; - elsif cmd_samc /= "00000" and cmd_samc /= "11111" then - if cmd_tr='1' then - o.request.t := XMIT; - else - o.request.t := RECV; - end if; - elsif cmd_wcmc(4)='0' then - o.request.t := MODECMD; - elsif cmd_tr='1' then - o.request.t := MODECMD_XMIT; - else - o.request.t := MODECMD_RECV; - end if; - - if fromll.lberror='1' then - v.st := IDLE; - o.result := LBERROR; - end if; - - if r.st = IDLE and ins.enable='0' then - v.msgerr := '0'; - v.bcrec := '0'; - v.cmd := (others => '0'); - end if; - - if rst='0' and syncrst/=0 then - v.st := IDLE; - v.msgerr := '0'; - v.bcrec := '0'; - v.cmd := (others=>'0'); - if syncrst > 1 then - v := r_rst; - end if; - end if; - - -- Assign signals - nr <= v; - outs <= o; - toll <= cin; - us_restart <= vus_restart; - us_clear <= vus_clear; - - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if rst='0' and syncrst=0 then - r <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_rx1.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_rx1.vhd deleted file mode 100644 index 66a595d5..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_rx1.vhd +++ /dev/null @@ -1,310 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_rx1 --- File: gr1553b_rx1.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B stage 1, detector (larger, two-bit version) ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use work.gr1553b_core.all; - -library grlib; -use grlib.stdlib.notx; - -entity gr1553b_rx1 is - - generic( - -- Frequency of clk in MHz - -- Clock must be even multiple of 2 MHz - clk_freq_mhz: integer; - -- For high clock frequencies, the input can be "downsampled" - -- to reduce logic. - -- This value can be any value up to (clk_freq_mhz/2) - sample_freq_mhz: integer := 20; - -- # of input sync registers to avoid metastability etc - synclength: integer := 2; - -- Amount of detected correlation to declare sync found - sync_corr_min: integer range 1 to 100; - -- Ditto for regular bits - -- Note we have three times as much time to detect sync - bit_corr_min: integer range 1 to 100; - -- Set to 1 to get pipelined processing - pipeline: integer range 0 to 1 := 1; - syncrst: integer range 0 to 2 - ); - port ( - clk: in std_logic; - rst: in std_logic; - - rxin_p: in std_logic; - rxin_n: in std_logic; - - outs: out gr1553b_rx1_out - ); -end; - -architecture rtl of gr1553b_rx1 is - - function get_downsample(clk_freq, sample_freq, stepsize: integer) return integer is - variable r: integer; - begin - r := sample_freq; - loop - if (clk_freq mod r)=0 then return clk_freq/r; end if; - r := r + stepsize; - if r > clk_freq then return 0; end if; - end loop; - end; - - constant downsample: integer := get_downsample(clk_freq_mhz,sample_freq_mhz,2); - constant half_bittime: integer := clk_freq_mhz / (2*downsample); - constant queue_length: integer := 6*half_bittime; - - constant q_be3_out: integer := half_bittime*6-1; - constant q_be2_out: integer := half_bittime*5-1; - constant q_be1_out: integer := half_bittime*4-1; - constant q_ah1_out: integer := half_bittime*3-1; - constant q_ah2_out: integer := half_bittime*2-1; - constant q_ah3_out: integer := half_bittime*1-1; - - constant long_corr_thres: integer := int_divide_round(6*half_bittime*sync_corr_min,100); - constant short_corr_thres: integer := int_divide_round(2*half_bittime*bit_corr_min,100); - - type queue_part_diff is record - ahead_diff_p, ahead_diff_n: integer range -1 to +1; - behind_diff_p, behind_diff_n: integer range -1 to +1; - corr_diff: integer range -4 to +4; - end record; - - function get_diff(inbit,outbit: std_logic) return integer is - begin - if inbit='1' and outbit/='1' then - return 1; - elsif inbit/='1' and outbit='1' then - return -1; - else - return 0; - end if; - end; - - procedure update_corr(pd: in queue_part_diff; - int: in integer; - pd_out: out queue_part_diff; - int_out: out integer; - ahinp,ahinn,tp,tn,beoutp,beoutn: std_logic) is - variable ahdp,ahdn,bedp,bedn: integer range -1 to +1; - variable cd: integer range -4 to +4; - variable io: integer; - begin - ahdp := get_diff(ahinp,tp); - ahdn := get_diff(ahinn,tn); - bedp := get_diff(tp,beoutp); - bedn := get_diff(tn,beoutn); - - pd_out.ahead_diff_p := ahdp; - pd_out.ahead_diff_n := ahdn; - pd_out.behind_diff_p := bedp; - pd_out.behind_diff_n := bedn; - - if pipeline=1 then - cd:= pd.ahead_diff_p - pd.ahead_diff_n - - pd.behind_diff_p + pd.behind_diff_n; - io := int + pd.corr_diff; - else - cd := +ahdp-ahdn-bedp+bedn; - io := int + cd; - end if; - - pd_out.corr_diff := cd; - int_out := io; - end; - - -- Data path: rxin_p/n => sync_p/n => ("11" protect) => queue_p/n - - type rx1_regs is record - sync_p,sync_n: std_logic_vector(synclength-1 downto 0); - queue_p,queue_n: std_logic_vector(queue_length-1 downto 0); - ds_count: integer range 0 to downsample-1; - zcount: unsigned(7 downto 0); - started: std_logic; - - long_diff: queue_part_diff; - mid_diff: queue_part_diff; - short_diff: queue_part_diff; - - long_corr_int: integer range -half_bittime*6 to +half_bittime*6; - -- mid_corr_int: integer range -half_bittime*2 to +half_bittime*2 := 0; - short_corr_int: integer range -half_bittime*2 to +half_bittime*2; - - -- This is used as a placeholder to track when the accumulator values above are - -- "undefined" in simulation to avoid trigger over/underflow - -- In real designs, the accumulators will be floating around until they are - -- set to zero 256 clocks after reset (after 13 us at 20MHz) - simdummy: std_logic; - end record; - - constant r_rst: rx1_regs := ( - sync_p => (others => '0'), sync_n => (others => '0'), - queue_p => (others => '0'), queue_n => (others => '0'), - ds_count => 0, - zcount => (others => '0'), - started => '0', - long_diff => (0,0,0,0,0), mid_diff => (0,0,0,0,0), short_diff => (0,0,0,0,0), - long_corr_int => 0, short_corr_int => 0, - simdummy => '0' - ); - - signal r,nr: rx1_regs; - -begin - - comb: process(rxin_p,rxin_n,rst,r) - variable v: rx1_regs; - variable vo: gr1553b_rx1_out; - - variable use_sample: boolean; - variable new_bit_p,new_bit_n: std_logic; - variable vcmd_sync_det: std_logic; - variable vdata_sync_det: std_logic; - variable vbit_det_p,vbit_det_n: std_logic; - - variable tmp: integer; - begin - -- Init vars - v := r; - use_sample := false; - vcmd_sync_det := '0'; - vdata_sync_det := '0'; - vbit_det_n := '0'; - vbit_det_p := '0'; - tmp := 0; - - -- Downsample handling - if r.ds_count=downsample-1 then - v.ds_count := 0; - use_sample := true; - else - v.ds_count := r.ds_count+1; - end if; - - v.sync_p := r.sync_p((synclength-2) downto 0) & rxin_p; - v.sync_n := r.sync_n((synclength-2) downto 0) & rxin_n; - - new_bit_p := r.sync_p((synclength-1)); - new_bit_n := r.sync_n((synclength-1)); - - -- Force zeros into the shift reg during startup - if r.started='0' then - new_bit_p := '0'; - new_bit_n := '0'; - end if; - - if use_sample then - - v.queue_p := r.queue_p((queue_length-2) downto 0) & new_bit_p; - v.queue_n := r.queue_n((queue_length-2) downto 0) & new_bit_n; - - if notx(r.simdummy) then - update_corr(r.long_diff, r.long_corr_int, - v.long_diff, v.long_corr_int, - new_bit_p, new_bit_n, - r.queue_p(q_ah1_out), r.queue_n(q_ah1_out), - r.queue_p(q_be3_out), r.queue_n(q_be3_out)); - update_corr(r.mid_diff, 0, - v.mid_diff, tmp, - r.queue_p(q_ah2_out), r.queue_n(q_ah2_out), - r.queue_p(q_ah1_out), r.queue_n(q_ah1_out), - r.queue_p(q_be1_out), r.queue_n(q_be1_out)); - update_corr(r.short_diff, r.short_corr_int, - v.short_diff, v.short_corr_int, - new_bit_p, new_bit_n, - r.queue_p(q_ah3_out),r.queue_n(q_ah3_out), - r.queue_p(q_ah2_out),r.queue_n(q_ah2_out)); - end if; - - -- Reset accumulators when zero count wraps - if new_bit_p=new_bit_n and notx(std_logic_vector(r.zcount)) then - v.zcount := r.zcount + 1; - if r.zcount = "11111111" then - - -- For simulation, resetting the accumulators should never be needed, - -- except on startup. --- pragma translate_off - assert r.started='0' or - (r.long_diff=(others => 0) and r.long_corr_int=0 and - r.mid_diff=(others => 0) and - r.short_diff=(others => 0) and r.short_corr_int=0) - report "Inconsistent state in simulation!" severity warning; --- pragma translate_on - - v.long_diff := (others => 0); - v.long_corr_int := 0; - v.mid_diff := (others => 0); - v.short_diff := (others => 0); - v.short_corr_int := 0; - v.simdummy := '0'; - v.started := '1'; - end if; - else - v.zcount := "00000000"; - end if; - - end if; - - -- Sync and bit detect - if r.long_corr_int >= long_corr_thres and r.mid_diff.corr_diff < 0 then - vdata_sync_det := '1'; - end if; - if r.long_corr_int <= -long_corr_thres and r.mid_diff.corr_diff > 0 then - vcmd_sync_det := '1'; - end if; - if r.short_corr_int >= short_corr_thres then - vbit_det_n := '1'; - end if; - if r.short_corr_int <= -short_corr_thres then - vbit_det_p := '1'; - end if; - - -- Reset - if rst='0' and syncrst/=0 then - v.started := '0'; - v.zcount := "00000000"; - end if; - - -- Assign signals - vo := (vcmd_sync_det,vdata_sync_det,vbit_det_p,vbit_det_n); - nr <= v; - outs <= vo; - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if rst='0' and syncrst=0 then - r <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_rx12v5.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_rx12v5.vhd deleted file mode 100644 index 3abc4606..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_rx12v5.vhd +++ /dev/null @@ -1,333 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_rx12v4 --- File: gr1553b_rx12v4.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B stage 1/2, detector - 5th version, FSM-based ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -library grlib; -use grlib.stdlib.all; -library gaisler; -use gaisler.gr1553b_pkg.all; -use gaisler.gr1553b_core.all; - -entity gr1553b_rx12v5 is - generic ( - synclength: integer := 2; - syncrst: integer range 0 to 2 - ); - port ( - clk: in std_logic; - rst: in std_logic; - - rxin_p: in std_logic; - rxin_n: in std_logic; - - outs: out gr1553b_rx2_out; - fb: in gr1553b_rx2_fb; - reinit: in std_logic - ); -end; - -architecture rtl of gr1553b_rx12v5 is - - constant clk_freq_mhz: integer := 20; - constant half_bittime: integer := clk_freq_mhz / 2; - constant sync_width_min1: integer := 20; - constant sync_width_mid2: integer := 35; - constant sync_width_max2: integer := 48; - - type rx1_state is (IDLE,SYNC1,GAP,SYNC2,RBIT,GBLOCK); - - type rx1_regs is record - sync_p,sync_n: std_logic_vector(synclength-1 downto 0); - last_type: std_logic; - last_val: std_logic; - - s: rx1_state; - ctr: std_logic_vector(6 downto 0); - ctrp20: std_logic; - ctrp35: std_logic; - bitphase: std_logic_vector(4 downto 0); - tail: std_logic; - - seenbitp: std_logic; - seenbitpfull: std_logic; - seenbitnfull: std_logic; - seenbitn: std_logic; - - dataval: std_logic; - act: std_logic; - resync: std_logic; - end record; - - signal r,nr: rx1_regs; - - constant r_rst: rx1_regs := ( - sync_p => (others => '0'), sync_n => (others => '0'), - last_type => '0', last_val => '0', - s => IDLE, ctr => (others => '0'), ctrp20 => '0', ctrp35 => '0', - bitphase => "00000", tail => '0', - seenbitp => '0', seenbitpfull => '0', seenbitnfull => '0', seenbitn => '0', - dataval => '0', act => '0', resync => '0'); - - -begin - - comb: process(rst,rxin_p,rxin_n,r,fb) - variable v: rx1_regs; - variable o: gr1553b_rx2_out; - variable new_bit_p,new_bit_n: std_logic; - variable new_type,new_val: std_logic; - - variable clear_ctr: std_logic; - - begin - v := r; - o := (got_sync => '0', got_data => '0', dataval => r.dataval, - idle => '1', act => r.act); - - --------------------------------------------------------------------------- - -- 2-stage sync inputs - - v.sync_p := r.sync_p((synclength-2) downto 0) & rxin_p; - v.sync_n := r.sync_n((synclength-2) downto 0) & rxin_n; - new_bit_p := r.sync_p((synclength-1)); - new_bit_n := r.sync_n((synclength-1)); - - new_type := new_bit_p xor new_bit_n; - new_val := new_bit_p and not new_bit_n; - v.last_type := new_type; - v.last_val := new_val; - - --------------------------------------------------------------------------- - -- FSM - - clear_ctr := '0'; - - v.ctr := std_logic_vector(unsigned(r.ctr)+1); - if r.ctr(4)='1' and r.ctr(1 downto 0)="11" then - v.ctrp20:='1'; - end if; - if r.ctr(5)='1' and r.ctr(1)='1' then - v.ctrp35:='1'; - end if; - - case r.s is - - when IDLE => - if r.act='0' then clear_ctr := '1'; end if; - if r.ctrp20='1' then v.act:='0'; v.resync:='0'; end if; - v.dataval := new_bit_p; - v.bitphase := "00000"; - v.seenbitp := '0'; - v.seenbitpfull := '0'; - v.seenbitn := '1'; - v.seenbitnfull := '0'; - if new_type /= '0' then - v.s := SYNC1; - v.act := '1'; - clear_ctr := '1'; - else - v.tail := '0'; - end if; - - - when SYNC1 => - if (r.last_type='0' and new_type='0') or (new_type='1' and new_val/=r.dataval) then - clear_ctr := '1'; - if (r.ctr(6 downto 2)="00000" or r.tail='1' or r.resync='1') and r.ctrp20='0' then - v.s := IDLE; - v.tail := '0'; - elsif r.ctrp20='0' then - v.s := GBLOCK; - v.resync := '1'; - elsif new_type='0' then - v.s := GAP; - else - v.s := SYNC2; - end if; - end if; - - - when GAP => - if new_type='1' and new_val /= r.dataval then - clear_ctr := '1'; - v.s := SYNC2; - end if; - if new_type='1' and new_val=r.dataval and r.last_type='1' then - v.s := IDLE; - v.tail := '0'; - end if; - if r.ctrp20='1' then - v.s := IDLE; - v.tail := '0'; - end if; - - - when SYNC2 => - if r.ctrp20='1' and r.ctr(0)='1' then - v.bitphase := std_logic_vector(unsigned(r.bitphase)+1); - end if; - if r.ctrp35='0' and (r.ctr(5)='1' and r.ctr(1)='1') then - v.bitphase := "01100"; - end if; - - if (new_type='1' and new_val=r.dataval) then - if r.ctrp20='0' or (r.ctr(5)='0' and r.ctr(3)='0') then - v.s := IDLE; - v.tail := '0'; - else - v.s := RBIT; - o.got_sync := '1'; - o.idle := '0'; - clear_ctr := '1'; - v.dataval := not r.dataval; - if r.ctrp35='1' then - v.seenbitpfull := '1'; - v.tail := '0'; - end if; - v.seenbitp := '1'; - v.seenbitn := '1'; - end if; - end if; - if r.ctr(5 downto 4)="11" then - v.s := IDLE; - v.tail := '0'; - end if; - - - when RBIT => - o.idle := '0'; - if r.tail='0' and (new_type='0' or new_val=r.dataval) then clear_ctr:='1'; end if; - v.bitphase := std_logic_vector(unsigned(r.bitphase)+1); - if (r.seenbitn='0' or (r.seenbitpfull='0' and new_val=r.dataval)) and new_type='1' then - v.seenbitp := r.seenbitn; - v.seenbitpfull := r.seenbitnfull; - v.seenbitn := '1'; - v.dataval := not new_val; - end if; - if r.seenbitnfull='0' and r.last_type='1' and new_type='1' and new_bit_p/=r.dataval then - v.seenbitnfull := '1'; - end if; - if r.bitphase(3 downto 0)="1001" then - -- Remove shifted in data before rel ideal zero crossing - v.seenbitp := '0'; - v.seenbitpfull := '0'; - -- Avoid case where we flip dataval the same cycle - v.dataval := r.dataval; - end if; - if r.bitphase(4 downto 0)="10011" then - -- Prevent further shifting some samples after zero crossing - if r.seenbitp='1' then - v.seenbitpfull := '1'; - else - v.seenbitnfull := '1'; - end if; - end if; - if r.tail='0' and r.ctr(4)='1' then - v.s := IDLE; - clear_ctr := '1'; - v.resync := '1'; - end if; - if r.bitphase(4)='1' and r.bitphase(2 downto 0)="111" then - v.bitphase := "00100"; - v.tail := '0'; - if r.seenbitp='1' and r.seenbitn='1' then - o.got_data := '1'; - clear_ctr := '1'; - if fb.syncblock='1' then - v.s := IDLE; - v.resync := '0'; - end if; - elsif r.tail='1' then - v.s := SYNC2; - v.bitphase := "00000"; - else - v.s := IDLE; - clear_ctr := '1'; - v.resync := '1'; - end if; - if fb.gapblock='1' then - v.s := GBLOCK; - clear_ctr := '1'; - v.resync := '0'; - end if; - v.seenbitp := '0'; - v.seenbitn := new_type; - v.seenbitpfull := '0'; - v.seenbitnfull := '0'; - v.dataval := not new_val; - end if; - - - when GBLOCK => - v.tail := new_type; - if r.ctr(5)='1' and r.ctr(2 downto 1)="11" then - v.s := IDLE; - clear_ctr := '1'; - end if; - - end case; - - if reinit='1' then - v.s := IDLE; - clear_ctr := '1'; - v.resync := '1'; - v.tail := '1'; - end if; - - if clear_ctr='1' then - v.ctr:=(others => '0'); - v.ctrp20:='0'; - v.ctrp35:='0'; - end if; - - if syncrst/=0 and rst='0' then - v.s := IDLE; - v.bitphase := "00000"; - v.seenbitp := '0'; - v.seenbitpfull := '0'; - v.seenbitn := '1'; - v.seenbitnfull := '0'; - v.tail := '0'; - v.act := '0'; - v.resync := '0'; - end if; - - nr <= v; - outs <= o; - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if syncrst=0 and rst='0' then - r <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_rx1pe.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_rx1pe.vhd deleted file mode 100644 index 2f66a215..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_rx1pe.vhd +++ /dev/null @@ -1,342 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_rx1pe --- File: gr1553b_rx1pe.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B receiver stage 1, detector ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use work.gr1553b_core.all; - -library grlib; -use grlib.stdlib.notx; - -entity gr1553b_rx1pe is - - generic( - -- Frequency of clk in MHz - -- Clock must be even multiple of 2 MHz - clk_freq_mhz: integer; - -- For high clock frequencies, the input can be "downsampled" - -- to reduce logic. - -- This value can be any value up to (clk_freq_mhz/2) - sample_freq_mhz: integer := 20; - -- # of input sync registers to avoid metastability etc - synclength: integer := 2; - -- Amount of detected correlation to declare sync found - sync_corr_min: integer range 1 to 100; - -- Ditto for regular bits - -- Note we have three times as much time to detect sync - bit_corr_min: integer range 1 to 100; - -- Set to 1 to get pipelined processing - pipeline: integer range 0 to 1 := 0; - syncrst: integer range 0 to 2 - ); - port ( - clk: in std_logic; - rst: in std_logic; - - rxin_p: in std_logic; - rxin_n: in std_logic; - - outs: out gr1553b_rx1_out - ); -end; - --- Note: When modifying this code, make sure to test both values of --- syncrst - -architecture rtl of gr1553b_rx1pe is - - function get_downsample(clk_freq, sample_freq, stepsize: integer) return integer is - variable r: integer; - begin - r := sample_freq; - loop - if (clk_freq mod r)=0 then return clk_freq/r; end if; - r := r + stepsize; - if r > clk_freq then return 0; end if; - end loop; - end; - - constant downsample: integer := get_downsample(clk_freq_mhz,sample_freq_mhz,2); - constant half_bittime: integer := clk_freq_mhz / (2*downsample); - constant queue_length: integer := 6*half_bittime; - - constant q_be3_out: integer := half_bittime*6-1; - constant q_be2_out: integer := half_bittime*5-1; - constant q_be1_out: integer := half_bittime*4-1; - constant q_ah1_out: integer := half_bittime*3-1; - constant q_ah2_out: integer := half_bittime*2-1; - constant q_ah3_out: integer := half_bittime*1-1; - - constant long_corr_thres: integer := int_divide_round(3*half_bittime*sync_corr_min,100); - constant short_corr_thres: integer := int_divide_round(1*half_bittime*bit_corr_min,100); - - type queue_part_diff is record - ahead_diff: integer range -1 to +1; - behind_diff: integer range -1 to +1; - corr_diff: integer range -2 to +2; - end record; - - function get_diff(inbit,outbit: std_logic) return integer is - begin - if inbit='1' and outbit/='1' then - return 1; - elsif inbit/='1' and outbit='1' then - return -1; - else - return 0; - end if; - end; - - procedure update_corr(pd: in queue_part_diff; - int: in integer; - pd_out: out queue_part_diff; - int_out: out integer; - ahin,t,beout: std_logic) is - variable ahd,bed: integer range -1 to +1; - variable cd: integer range -2 to +2; - variable io: integer; - begin - ahd := get_diff(ahin,t); - bed := get_diff(t,beout); - - pd_out.ahead_diff := ahd; - pd_out.behind_diff := bed; - - if pipeline=1 then - cd:= pd.ahead_diff - pd.behind_diff; - io := int + pd.corr_diff; - else - cd := +ahd-bed; - io := int + cd; - end if; - - pd_out.corr_diff := cd; - int_out := io; - end; - - -- Data path: rxin_p/n => sync_p/n => ("11" protect) => queue_p/n - - type rx1_regs is record - sync_p,sync_n: std_logic_vector(synclength-1 downto 0); - queue_se: std_logic_vector(queue_length-1 downto 0); - ds_count: integer range 0 to downsample-1; - zcount: unsigned(7 downto 0); - started: std_logic; - waiting: std_logic; - - long_diff: queue_part_diff; - mid_diff: queue_part_diff; - short_diff: queue_part_diff; - - long_corr_int: integer range -half_bittime*6 to +half_bittime*6; - -- mid_corr_int: integer range -half_bittime*2 to +half_bittime*2 := 0; - short_corr_int: integer range -half_bittime*2 to +half_bittime*2; - - zbit: std_logic; - - -- This is used as a placeholder to track when the accumulator values above are - -- "undefined" in simulation to avoid trigger over/underflow - -- In synthesized designs, the accumulators will be floating around until they are - -- set to zero 256 clocks after reset (after 13 us at 20MHz) - simdummy: std_logic; - end record; - - -- Returns "10101010..." - function rstptrn(l: integer) return std_logic_vector is - variable v: std_logic_vector(l-1 downto 0); - begin - for x in v'range loop - if (x mod 2)=1 then v(x):='1'; else v(x):='0'; end if; - end loop; - return v; - end; - - constant r_rst_full: rx1_regs := ( - sync_p => (others => '0'), sync_n => (others => '0'), queue_se => rstptrn(queue_length), - ds_count => 0, zcount => (others => '0'), started => '1', waiting => '1', - long_diff => (0,0,0), mid_diff => (0,0,0), short_diff => (0,0,0), - long_corr_int => 0, short_corr_int => 0, zbit => '1', simdummy => '0' - ); - - signal r,nr: rx1_regs; - -begin - - comb: process(rxin_p,rxin_n,rst,r) - variable v: rx1_regs; - variable vo: gr1553b_rx1_out; - - variable use_sample: boolean; - variable new_bit_p,new_bit_n,new_bit_se: std_logic; - variable vcmd_sync_det: std_logic; - variable vdata_sync_det: std_logic; - variable vbit_det_p,vbit_det_n: std_logic; - - variable tmp: integer; - begin - -- Init vars - v := r; - use_sample := false; - vcmd_sync_det := '0'; - vdata_sync_det := '0'; - vbit_det_n := '0'; - vbit_det_p := '0'; - tmp := 0; - - -- Downsample handling - if r.ds_count=downsample-1 then - v.ds_count := 0; - use_sample := true; - else - v.ds_count := r.ds_count+1; - end if; - - v.sync_p := r.sync_p((synclength-2) downto 0) & rxin_p; - v.sync_n := r.sync_n((synclength-2) downto 0) & rxin_n; - - new_bit_p := r.sync_p((synclength-1)); - new_bit_n := r.sync_n((synclength-1)); - - --debug_outs <= (new_bit_p, new_bit_n); - - -- Force clear the shift reg during startup - if r.started='0' then - new_bit_p := '0'; - new_bit_n := '0'; - end if; - - if new_bit_p = new_bit_n then - new_bit_se := r.zbit; - if r.waiting='0' or r.started='0' then - v.zbit := not r.zbit; - end if; - else - new_bit_se := new_bit_p; - v.zbit := new_bit_p; - v.waiting := '0'; - end if; - - if use_sample and (r.started='0' or v.waiting='0') then - - v.queue_se := r.queue_se((queue_length-2) downto 0) & new_bit_se; - - if notx(r.simdummy) then - update_corr(r.long_diff, r.long_corr_int, - v.long_diff, v.long_corr_int, - new_bit_se, - r.queue_se(q_ah1_out), - r.queue_se(q_be3_out)); - -- Offset mid by -1 so diff aligns with long_corr_int - update_corr(r.mid_diff, 0, - v.mid_diff, tmp, - r.queue_se(q_ah2_out-1), - r.queue_se(q_ah1_out-1), - r.queue_se(q_be1_out-1)); - update_corr(r.short_diff, r.short_corr_int, - v.short_diff, v.short_corr_int, - new_bit_se, - r.queue_se(q_ah3_out), - r.queue_se(q_ah2_out)); - end if; - - -- Reset accumulators when zero count wraps - if new_bit_p=new_bit_n and notx(std_logic_vector(r.zcount)) then - v.zcount := r.zcount + 1; - if r.zcount = "11111111" then - - -- For simulation, resetting the accumulators should never be needed, - -- except on startup. - ---pragma translate_off - assert r.started='0' or - (r.long_diff=(others => 0) and r.long_corr_int=0 and - r.mid_diff=(others => 0) and - r.short_diff=(others => 0) and r.short_corr_int=0) - report "Inconsistent state in simulation!" severity warning; ---pragma translate_on - - v.long_diff := (others => 0); - v.long_corr_int := 0; - v.mid_diff := (others => 0); - v.short_diff := (others => 0); - v.short_corr_int := 0; - v.simdummy := '0'; - v.started := '1'; - v.waiting := '1'; - end if; - else - v.zcount := "00000000"; - end if; - - end if; - - -- Sync and bit detect - if r.long_corr_int >= long_corr_thres and r.mid_diff.corr_diff < 0 then - vdata_sync_det := '1'; - end if; - if r.long_corr_int <= -long_corr_thres and r.mid_diff.corr_diff > 0 then - vcmd_sync_det := '1'; - end if; - if r.short_corr_int >= short_corr_thres then - vbit_det_n := '1'; - end if; - if r.short_corr_int <= -short_corr_thres then - vbit_det_p := '1'; - end if; - - -- Try to prevent netlist X-propagation in rest of core - if r.started='0' then - vdata_sync_det := '0'; - vcmd_sync_det := '0'; - vbit_det_n := '0'; - vbit_det_p := '0'; - end if; - - -- Reset - if rst='0' and syncrst/=0 then - v.started := '0'; - v.waiting := '0'; - v.zcount := "00000000"; - v.zbit := '0'; - end if; - - -- Assign signals - vo := (vcmd_sync_det,vdata_sync_det,vbit_det_p,vbit_det_n); - nr <= v; - outs <= vo; - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if rst='0' and syncrst=0 then - r <= r_rst_full; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_rx2.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_rx2.vhd deleted file mode 100644 index 236504cd..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_rx2.vhd +++ /dev/null @@ -1,154 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_rx2 --- File: gr1553b_rx2.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B receiver stage 2, bit recovery ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use work.gr1553b_core.all; - -entity gr1553b_rx2 is - - generic ( - -- Frequency of clk in MHz - -- Clock must be even multiple of 2 MHz - clk_freq_mhz: integer; - syncrst: integer range 0 to 2 - ); - port ( - clk: in std_logic; - rst: in std_logic; - - -- From receiver stage 1 - s1o: in gr1553b_rx1_out; - -- Outputs - bito: out gr1553b_rx2_out; - -- Feedback from following stage - fb: in gr1553b_rx2_fb - ); -end; - -architecture rtl of gr1553b_rx2 is - - constant bit_time: integer := clk_freq_mhz; - - type rx2_regs is record - has_sync: std_logic; - syncblock: std_logic_vector(4 downto 0); - act: std_logic; - tcount: integer range 0 to bit_time-1; - end record; - - constant r_rst: rx2_regs := ('0',"00000",'0',0); - - signal r,nr: rx2_regs; - -begin - - comb: process(rst,s1o,r,fb) - variable v: rx2_regs; - variable vgot_sync: std_logic; - variable vgot_data: std_logic; - variable vdataval: std_logic; - variable vidle: std_logic; - variable vo: gr1553b_rx2_out; - begin - v := r; - vgot_sync := '0'; - vgot_data := '0'; - vdataval := s1o.bit_det_p; - vidle := not r.has_sync; - - if r.tcount=bit_time-1 then - v.tcount := 0; - else - v.tcount := r.tcount+1; - end if; - - if r.has_sync='0' then - if s1o.bit_det_p='1' or s1o.bit_det_n='1' then - v.act := '1'; - if r.syncblock(4)='0' then v.tcount := 0; end if; - elsif r.tcount=bit_time-1 then - v.act := '0'; - end if; - if r.tcount=bit_time-1 then - v.syncblock := r.syncblock(3 downto 0) & "0"; - end if; - if (s1o.cmd_sync_det='1' or s1o.data_sync_det='1') and r.syncblock(4)='0' then - vgot_sync := '1'; - vdataval := s1o.cmd_sync_det; - v.has_sync := '1'; - v.act := '1'; - v.tcount := 0; - end if; - end if; - - if r.has_sync='1' then - if r.tcount=bit_time-1 then - if (s1o.bit_det_p='1' or s1o.bit_det_n='1') then - vgot_data := '1'; - vdataval := s1o.bit_det_p; - if r.syncblock(4)='1' then - v.has_sync := '0'; - end if; - else - v.has_sync := '0'; - end if; - end if; - end if; - - if fb.syncblock='1' then - v.syncblock := "11000"; - end if; - if fb.gapblock='1' then - v.syncblock := "11111"; - end if; - - -- Prevent counter spinning when idle. - if (r.has_sync='0' and r.act='0' and r.syncblock(4)='0') then - v.tcount := 0; - end if; - - if rst='0' and syncrst/=0 then - v.has_sync := r_rst.has_sync; - v.act := r_rst.act; - v.syncblock := r_rst.syncblock; - end if; - vo := (vgot_sync,vgot_data,vdataval,vidle,r.act); - - nr <= v; - bito <= vo; - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if rst='0' and syncrst=0 then - r <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_rx23sync.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_rx23sync.vhd deleted file mode 100644 index 25543581..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_rx23sync.vhd +++ /dev/null @@ -1,191 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_rx23sync --- File: gr1553b_rx23sync.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: Clock domain transition between rx2 (bit detector) and rx3 --- (deserializer) ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use work.gr1553b_core.all; - -entity gr1553b_rx23sync is - generic ( - syncrst: integer range 0 to 2 - ); - port ( - deser_clk: in std_logic; - deser_rst: in std_logic; - deser_bito: out gr1553b_rx2_out; - deser_fb: in gr1553b_rx2_fb; - bit_clk: in std_logic; - bit_rst: in std_logic; - bit_bito: in gr1553b_rx2_out; - bit_fb: out gr1553b_rx2_fb - ); -end; - -architecture rtl of gr1553b_rx23sync is - - type deser_reg_type is record - last_syncp_tog: std_logic; - last_syncn_tog: std_logic; - last_datap_tog: std_logic; - last_datan_tog: std_logic; - fb: gr1553b_rx2_fb; - end record; - - type deser_to_bit is record - fb: gr1553b_rx2_fb; - end record; - - type bit_reg_type is record - syncp_tog: std_logic; - syncn_tog: std_logic; - datap_tog: std_logic; - datan_tog: std_logic; - idle1,idle2: std_logic; - end record; - - type bit_to_deser is record - syncp_tog: std_logic; - syncn_tog: std_logic; - datap_tog: std_logic; - datan_tog: std_logic; - idle: std_logic; - act: std_logic; - end record; - - constant des_r_rst: deser_reg_type := ('0','0','0','0',gr1553b_rx2_fb_none); - constant d2b_rst: deser_to_bit := (fb => gr1553b_rx2_fb_none); - constant bit_r_rst: bit_reg_type := ('0','0','0','0','1','1'); - constant b2d_rst: bit_to_deser := ('0','0','0','0','1','0'); - - signal deser_r, deser_nr: deser_reg_type; - signal deser_d2b, d2b_sync1, bit_d2b: deser_to_bit; - signal bit_r, bit_nr: bit_reg_type; - signal bit_b2d, b2d_sync1, deser_b2d: bit_to_deser; - -begin - - descomb: process(deser_rst,deser_r,deser_fb,deser_b2d) - variable v: deser_reg_type; - variable vd2b: deser_to_bit; - variable vo: gr1553b_rx2_out; - begin - v := deser_r; - v.fb := deser_fb; - vd2b := (fb => deser_r.fb); - vo := (got_sync => '0', got_data => '0', dataval => '0', idle => '0', act => deser_b2d.act); - - v.last_syncp_tog := deser_b2d.syncp_tog; - v.last_syncn_tog := deser_b2d.syncn_tog; - v.last_datap_tog := deser_b2d.datap_tog; - v.last_datan_tog := deser_b2d.datan_tog; - - vo.got_sync := ( (deser_r.last_syncp_tog xor deser_b2d.syncp_tog) or - (deser_r.last_syncn_tog xor deser_b2d.syncn_tog) ); - vo.got_data := ( (deser_r.last_datap_tog xor deser_b2d.datap_tog) or - (deser_r.last_datan_tog xor deser_b2d.datan_tog) ); - vo.dataval := ( (deser_r.last_syncp_tog xor deser_b2d.syncp_tog) or - (deser_r.last_datap_tog xor deser_b2d.datap_tog) ); - - vo.idle := deser_b2d.idle and not (vo.got_sync or vo.got_data); - - if deser_rst='0' and syncrst/=0 then - v := des_r_rst; - end if; - - deser_nr <= v; - deser_d2b <= vd2b; - deser_bito <= vo; - end process; - - bitcomb: process(bit_rst,bit_r,bit_d2b,bit_bito) - variable v: bit_reg_type; - variable vb2d: bit_to_deser; - begin - v := bit_r; - vb2d := (syncp_tog => bit_r.syncp_tog, syncn_tog => bit_r.syncn_tog, - datap_tog => bit_r.datap_tog, datan_tog => bit_r.datan_tog, - idle => bit_r.idle2, act => bit_bito.act); - - if bit_bito.got_sync='1' then - if bit_bito.dataval='1' then - v.syncp_tog := not bit_r.syncp_tog; - else - v.syncn_tog := not bit_r.syncn_tog; - end if; - end if; - - if bit_bito.got_data='1' then - if bit_bito.dataval='1' then - v.datap_tog := not bit_r.datap_tog; - else - v.datan_tog := not bit_r.datan_tog; - end if; - end if; - - v.idle1 := bit_bito.idle; - v.idle2 := bit_r.idle1 and bit_bito.idle; - - if bit_rst='0' and syncrst/=0 then - v.datap_tog := '0'; - v.datan_tog := '0'; - v.syncp_tog := '0'; - v.syncn_tog := '0'; - end if; - - bit_nr <= v; - bit_b2d <= vb2d; - bit_fb <= bit_d2b.fb; - end process; - - desregs: process(deser_clk,deser_rst) - begin - if rising_edge(deser_clk) then - deser_r <= deser_nr; - b2d_sync1 <= bit_b2d; - deser_b2d <= b2d_sync1; - end if; - if deser_rst='0' and syncrst=0 then - deser_r <= des_r_rst; - b2d_sync1 <= b2d_rst; - deser_b2d <= b2d_rst; - end if; - end process; - - bitregs: process(bit_clk,bit_rst) - begin - if rising_edge(bit_clk) then - bit_r <= bit_nr; - d2b_sync1 <= deser_d2b; - bit_d2b <= d2b_sync1; - end if; - if bit_rst='0' and syncrst=0 then - bit_r <= bit_r_rst; - d2b_sync1 <= d2b_rst; - bit_d2b <= d2b_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_rx3.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_rx3.vhd deleted file mode 100644 index 4b74085a..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_rx3.vhd +++ /dev/null @@ -1,160 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_rx3 --- File: gr1553b_rx3.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B receiver stage 3, deserialization and parity checking ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use work.gr1553b_core.all; - -entity gr1553b_rx3 is - - generic ( - syncrst: integer range 0 to 2 - ); - port ( - clk: in std_logic; - rst: in std_logic; - - -- From user - abort: in std_logic; - -- From bit recovery - bito: in gr1553b_rx2_out; - -- Outputs - s3o: out gr1553b_rx3_out; - s2fb: out gr1553b_rx2_fb - ); -end; - -architecture rtl of gr1553b_rx3 is - - type rx_state_t is (IDLE, RDATA, RPARITY); - - type rx3_regs is record - state: rx_state_t; - dtype: gr1553b_word_type; - dreg: std_logic_vector(15 downto 0); - dcount: integer range 0 to 15; - accumxor: std_logic; - end record; - - constant r_rst: rx3_regs := (IDLE,CMD_STAT,(others => '0'),0,'0'); - - signal r,nr: rx3_regs; - -begin - - comb: process(rst,r,bito,abort) - variable v: rx3_regs; - variable vo: gr1553b_rx3_out; - variable fb: gr1553b_rx2_fb; - variable vword: gr1553b_word; - variable vdatavalid: std_logic; - variable vlostsync: std_logic; - variable vbadparity: std_logic; - variable vstarted: std_logic; - begin - -- Init vars - v := r; - vword := (t=>r.dtype, data=>r.dreg); - vdatavalid := '0'; - vlostsync := '0'; - vbadparity := '0'; - vstarted := '1'; - fb := (syncblock => '0', gapblock => '0'); - - case r.state is - - when IDLE => - vstarted := '0'; - if bito.got_sync='1' then - if bito.dataval='1' then - v.dtype := CMD_STAT; - else - v.dtype := DATA; - end if; - v.state := RDATA; - v.dcount := 0; - v.accumxor := '0'; - end if; - - when RDATA => - if bito.idle='1' then - vlostsync := '1'; - v.state := IDLE; - elsif bito.got_data='1' then - v.dreg := r.dreg(14 downto 0) & bito.dataval; - v.accumxor := r.accumxor xor bito.dataval; - if r.dcount=15 then - v.state := RPARITY; - else - v.dcount := r.dcount+1; - end if; - end if; - if r.dcount=0 then vstarted:='0'; vlostsync:='0'; end if; - - when RPARITY => - fb.syncblock := '1'; - if bito.idle='1' then - vlostsync := '1'; - v.state := IDLE; - elsif bito.got_data='1' then - v.state := IDLE; - if (bito.dataval xor r.accumxor) = '1' then - vdatavalid := '1'; - else - vbadparity := '1'; - end if; - end if; - - end case; - - if abort='1' then - v.state := IDLE; - end if; - - if rst='0' and syncrst/=0 then - v.state := r_rst.state; - v.dcount := 0; - v.accumxor := '0'; - v.dreg(15) := '0'; - end if; - - -- Assign outputs - vo := (vword,vdatavalid,vlostsync,vbadparity,vstarted); - nr <= v; - s3o <= vo; - s2fb <= fb; - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if rst='0' and syncrst=0 then - r <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_tx1.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_tx1.vhd deleted file mode 100644 index 08a8fdca..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_tx1.vhd +++ /dev/null @@ -1,167 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_tx1 --- File: gr1553b_tx1.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B transmitter stage 1, serialization and parity gen. ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use work.gr1553b_core.all; - -entity gr1553b_tx1 is - generic ( - syncrst: integer range 0 to 2 - ); - - port( - clk: in std_logic; - rst: in std_logic; - - -- The type and data are read when start='1' and ready='1' - seri: in gr1553b_tx1_in; - sero: out gr1553b_tx1_out; - biti: out gr1553b_tx2_in; - bito: in gr1553b_tx2_out - ); -end; - -architecture rtl of gr1553b_tx1 is - - type tx_msgstate_t is (IDLE, MSYNC, MDATA, MPARITY); - - type tx_regs_t is record - msgstate: tx_msgstate_t; - pos: integer range 0 to 15; - accumxor: std_logic; - data: gr1553b_word; - rbiti: gr1553b_tx2_in; - end record; - - constant r_rst: tx_regs_t := (msgstate => IDLE, pos => 0, accumxor => '0', data => gr1553b_word_default, - rbiti => ('0','0','0')); - - signal r,nr: tx_regs_t; - -begin - - comb: process(rst,seri,bito,r) - variable v: tx_regs_t; - variable vsero: gr1553b_tx1_out; - - variable lastcycle: std_logic; - begin - -- Init vars - v := r; - vsero := (ready => '0', read_data => '0'); - v.rbiti := ('0','0','0'); - lastcycle := '0'; - - if r.msgstate /= IDLE and bito.xread='1' then - - if r.pos = 0 then - v.pos := 15; - else - v.pos := r.pos-1; - end if; - - if r.msgstate=MSYNC then - v.msgstate := MDATA; - vsero.read_data := '1'; - v.pos := 15; - elsif r.pos=0 and r.msgstate=MDATA then - v.msgstate := MPARITY; - elsif r.msgstate=MPARITY then - v.msgstate := IDLE; - lastcycle := '1'; - end if; - - if r.msgstate=MDATA then - v.data.data := r.data.data(14 downto 0) & '0'; - v.accumxor := r.accumxor xor r.data.data(15); - end if; - - end if; - - -- Ready and start logic - if r.msgstate=IDLE or lastcycle='1' then - vsero.ready := '1'; - end if; - if seri.start='1' and vsero.ready='1' then - v.data.t := seri.word.t; - v.data.data := seri.word.data; - v.msgstate := MSYNC; - v.accumxor := '0'; - end if; - - -- Reset - if (rst='0' and syncrst/=0) or seri.abort='1' then - v.msgstate := IDLE; - vsero.ready := '0'; - end if; - - -- Comb outputs from state moved into regs - if v.msgstate /= IDLE then - v.rbiti.dv := '1'; - end if; - - if v.msgstate=MSYNC then - v.rbiti.sync := '1'; - if v.data.t=CMD_STAT then - v.rbiti.data := '1'; - else - v.rbiti.data := '0'; - end if; - end if; - - if v.msgstate=MDATA then - if bito.xread='1' then - v.rbiti.data := r.data.data(14); - else - v.rbiti.data := r.data.data(15); - end if; - end if; - - if v.msgstate=MPARITY then - v.rbiti.data := not v.accumxor; -- Odd parity - end if; - - if (rst='0' and syncrst/=0) then - v.data.data(14) := '0'; - end if; - - -- Assign signals - nr <= v; - sero <= vsero; - biti <= r.rbiti; - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - r <= nr; - end if; - if rst='0' and syncrst=0 then - r <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_tx12sync.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_tx12sync.vhd deleted file mode 100644 index 367e7a70..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_tx12sync.vhd +++ /dev/null @@ -1,191 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_tx12sync --- File: gr1553b_tx12sync.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: Clock domain transition between tx1 (serializer) and --- tx2 (encoder) ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use work.gr1553b_core.all; - -entity gr1553b_tx12sync is - generic ( - syncrst: integer range 0 to 2 - ); - port ( - ser_clk: in std_logic; - ser_rst: in std_logic; - - ser_biti: in gr1553b_tx2_in; - ser_bito: out gr1553b_tx2_out; - - out_clk: in std_logic; - out_rst: in std_logic; - - out_bito: in gr1553b_tx2_out; - out_biti: out gr1553b_tx2_in - ); -end; - -architecture rtl of gr1553b_tx12sync is - - type ser_regs_type is record - last_dv: std_logic; - got_read: std_logic; - end record; - - type ser_to_out_type is record - dv, sync, data: std_logic; - read_ret: std_logic; - end record; - - type out_regs_type is record - sending_read: std_logic; - got_readahead: std_logic; - ra_sync: std_logic; - ra_data: std_logic; - last_dv: std_logic; - end record; - - type out_to_ser_type is record - xread: std_logic; - done: std_logic; - end record; - - constant ser_regs_rst: ser_regs_type := ('0','0'); - constant s2o_rst: ser_to_out_type := ('0','0','0','0'); - constant out_regs_rst: out_regs_type := ('0','0','0','0','0'); - constant o2s_rst: out_to_ser_type := ('0','1'); - - signal ser_regs, nser_regs: ser_regs_type; - signal ser_s2o, s2o_sync1, out_s2o: ser_to_out_type; - signal out_regs, nout_regs: out_regs_type; - signal out_o2s, o2s_sync1, ser_o2s: out_to_ser_type; - -begin - - sercomb: process(ser_rst, ser_biti, ser_regs, ser_o2s) - variable vs2o: ser_to_out_type; - variable vr: ser_regs_type; - variable vout: gr1553b_tx2_out; - begin - vs2o := (dv => '0', sync => ser_biti.sync, data => ser_biti.data, read_ret => ser_regs.got_read); - vout := ('0', '0', '0', '0'); -- note txstarting not forwarded - vr := ser_regs; - vout.done := ser_o2s.done and not ser_biti.dv; - - -- Delay positive edge of dv one cycle so data/sync lines reaches there first - vr.last_dv := ser_biti.dv; - if ser_regs.last_dv='1' and ser_biti.dv='1' then vs2o.dv:='1'; end if; - -- Handshake read pulse - vr.got_read := ser_o2s.xread; - if ser_o2s.xread='1' and ser_regs.got_read='0' then vout.xread:='1'; end if; - if ser_o2s.xread='1' then vs2o.read_ret:='1'; end if; - - if ser_rst='0' and syncrst/=0 then - vr.got_read := '0'; - end if; - - ser_s2o <= vs2o; - nser_regs <= vr; - ser_bito <= vout; - end process; - - - outcomb: process(out_rst, out_bito, out_regs, out_s2o) - variable vo2s: out_to_ser_type; - variable vr: out_regs_type; - variable vin: gr1553b_tx2_in; - begin - vo2s := (xread => out_regs.sending_read, done => out_bito.done); - vr := out_regs; - vin := (dv => out_regs.last_dv, sync => out_s2o.sync, data => out_s2o.data); - - -- Delay dv here too so data/sync lines arrive first - vr.last_dv := out_s2o.dv; - -- Handshake read pulse - if out_bito.xread='1' and out_regs.got_readahead='0' then - vr.sending_read := '1'; - elsif out_s2o.read_ret='1' then - vr.sending_read := '0'; - end if; - -- Handle one bit readahead - if out_bito.xread='1' and out_regs.got_readahead='1' then - vr.got_readahead := '0'; - end if; - if out_regs.got_readahead='1' then - vin.dv := '1'; - vin.sync := out_regs.ra_sync; - vin.data := out_regs.ra_data; - end if; - if out_regs.got_readahead='0' and out_regs.last_dv='1' and out_regs.sending_read='0' - and out_bito.xread='0' and out_s2o.read_ret='0' and out_bito.lasthus='1' then - - vr.sending_read := '1'; - vr.got_readahead := '1'; - vr.ra_sync := out_s2o.sync; - vr.ra_data := out_s2o.data; - - end if; - - -- Reset - if out_rst='0' and syncrst/=0 then - vr.sending_read := '0'; - vr.got_readahead := '0'; - end if; - - out_o2s <= vo2s; - nout_regs <= vr; - out_biti <= vin; - end process; - - - serregproc: process(ser_clk,ser_rst) - begin - if rising_edge(ser_clk) then - o2s_sync1 <= out_o2s; - ser_o2s <= o2s_sync1; - ser_regs <= nser_regs; - end if; - if ser_rst='0' and syncrst=0 then - o2s_sync1 <= o2s_rst; - ser_o2s <= o2s_rst; - ser_regs <= ser_regs_rst; - end if; - end process; - - outregproc: process(out_clk,out_rst) - begin - if rising_edge(out_clk) then - s2o_sync1 <= ser_s2o; - out_s2o <= s2o_sync1; - out_regs <= nout_regs; - end if; - if out_rst='0' and syncrst=0 then - s2o_sync1 <= s2o_rst; - out_s2o <= s2o_rst; - out_regs <= out_regs_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/core/gr1553b_tx2.vhd b/lib/gaisler/gr1553bv1/core/gr1553b_tx2.vhd deleted file mode 100644 index 272e0599..00000000 --- a/lib/gaisler/gr1553bv1/core/gr1553b_tx2.vhd +++ /dev/null @@ -1,170 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_tx2 --- File: gr1553b_tx2.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: GR1553B transmitter stage 2, Manchester II encoding ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use work.gr1553b_core.all; -library grlib; -use grlib.stdlib.all; - -entity gr1553b_tx2 is - - generic ( - -- Frequency of clk in MHz - -- Clock must be even multiple of 2 MHz with accuracy of +/- 100 ppm. - clk_freq_mhz: integer; - txreg: boolean; - syncrst: integer range 0 to 2 - ); - - port( - clk: in std_logic; - rst: in std_logic; - - biti: in gr1553b_tx2_in; - bito: out gr1553b_tx2_out; - txout_pos: out std_logic; - txout_neg: out std_logic - ); - attribute sync_set_reset of rst : signal is "true"; -end; - -architecture rtl of gr1553b_tx2 is - - constant halfbit_len: integer := clk_freq_mhz/2; - - type tx_state_t is record - secondhalf: boolean; - timecount: integer range 0 to halfbit_len-1; - synccount: integer range 0 to 2; - txout_pos,txout_neg: std_logic; - txstarting: std_logic; - end record; - - constant r_rst: tx_state_t := (false, 0, 0, '0', '0', '0'); - - -- Registers - signal state: tx_state_t; - - -- Combinatorial - signal nstate: tx_state_t; - -begin - - comb: process(rst,state,biti) - variable vnstate: tx_state_t; - variable vxread: std_logic; - variable vlasthus: std_logic; - variable c1,c2,c3: boolean; - begin - -- Init vars - vnstate := state; - vnstate.txout_pos := '0'; - vnstate.txout_neg := '0'; - vxread := '0'; - vlasthus := '0'; - - if biti.dv='1' then - if biti.data='1' xor state.secondhalf then - vnstate.txout_pos := '1'; - else - vnstate.txout_neg := '1'; - end if; - - c1 := false; - if state.timecount = halfbit_len-1 then - vnstate.timecount := 0; - c1 := true; - else - vnstate.timecount := state.timecount+1; - end if; - - c2 := false; - if c1 then - if state.synccount = 2 or biti.sync='0' then - vnstate.synccount := 0; - c2 := true; - else - vnstate.synccount := state.synccount + 1; - end if; - end if; - - c3 := false; - if c2 then - if state.secondhalf then - vnstate.secondhalf := false; - c3 := true; - else - vnstate.secondhalf := true; - end if; - end if; - - if c3 then - vxread := '1'; - end if; - end if; - - if state.secondhalf and (biti.sync='0' or state.synccount = 2) then - vlasthus := '1'; - end if; - - vnstate.txstarting := biti.dv and not state.txout_pos and not state.txout_neg; - - -- Reset - if (rst='0' and syncrst/=0) or biti.dv='0' then - vnstate.secondhalf := false; - vnstate.timecount := 0; - vnstate.synccount := 0; - vnstate.txout_pos := '0'; - vnstate.txout_neg := '0'; - vnstate.txstarting := '0'; - end if; - - -- Assign signals - nstate <= vnstate; - if txreg then - txout_pos <= state.txout_pos; - txout_neg <= state.txout_neg; - else - txout_pos <= vnstate.txout_pos; - txout_neg <= vnstate.txout_neg; - end if; - bito.xread <= vxread; - bito.lasthus <= vlasthus; - bito.done <= not biti.dv; - bito.txstarting <= state.txstarting; - end process; - - regs: process(clk,rst) - begin - if rising_edge(clk) then - state <= nstate; - end if; - if rst='0' and syncrst=0 then - state <= r_rst; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/gr1553b.in.vhd b/lib/gaisler/gr1553bv1/gr1553b.in.vhd deleted file mode 100644 index 08732294..00000000 --- a/lib/gaisler/gr1553bv1/gr1553b.in.vhd +++ /dev/null @@ -1,7 +0,0 @@ --- MIL-STD-1553 controllers - - constant CFG_GR1553B_ENABLE : integer := CONFIG_GR1553B_ENABLE; - constant CFG_GR1553B_RTEN : integer := CONFIG_GR1553B_RTEN; - constant CFG_GR1553B_BCEN : integer := CONFIG_GR1553B_BCEN; - constant CFG_GR1553B_BMEN : integer := CONFIG_GR1553B_BMEN; - diff --git a/lib/gaisler/gr1553bv1/gr1553b_2.in.vhd b/lib/gaisler/gr1553bv1/gr1553b_2.in.vhd deleted file mode 100644 index ea76de95..00000000 --- a/lib/gaisler/gr1553bv1/gr1553b_2.in.vhd +++ /dev/null @@ -1,5 +0,0 @@ --- Secondary GR1553B - constant CFG_GR1553B_ENABLE2 : integer := CONFIG_GR1553B_ENABLE2; - constant CFG_GR1553B_RTEN2 : integer := CONFIG_GR1553B_RTEN2; - constant CFG_GR1553B_BCEN2 : integer := CONFIG_GR1553B_BCEN2; - constant CFG_GR1553B_BMEN2 : integer := CONFIG_GR1553B_BMEN2; diff --git a/lib/gaisler/gr1553bv1/gr1553b_pkg.vhd b/lib/gaisler/gr1553bv1/gr1553b_pkg.vhd deleted file mode 100644 index c554bc20..00000000 --- a/lib/gaisler/gr1553bv1/gr1553b_pkg.vhd +++ /dev/null @@ -1,394 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Package: gr1553b_pkg --- File: gr1553b_pkg.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: Package for GR1553B top-level component and user-visible types ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.ahb_mst_in_type; -use grlib.amba.ahb_mst_out_type; -use grlib.amba.apb_slv_in_type; -use grlib.amba.apb_slv_out_type; - -package gr1553b_pkg is - - ----------------------------------------------------------------------------- - -- Types and top level component - - type gr1553b_txout_type is record - busA_txP: std_logic; - busA_txN: std_logic; - busA_txen: std_logic; - busA_rxen: std_logic; - busB_txP: std_logic; - busB_txN: std_logic; - busB_txen: std_logic; - busB_rxen: std_logic; - -- For convenience, inverted versions of txen - busA_txin: std_logic; - busB_txin: std_logic; - end record; - - type gr1553b_rxin_type is record - busA_rxP: std_logic; - busA_rxN: std_logic; - busB_rxP: std_logic; - busB_rxN: std_logic; - end record; - - type gr1553b_auxin_type is record - extsync: std_logic; - rtaddr: std_logic_vector(4 downto 0); - rtpar: std_logic; - end record; - - type gr1553b_auxout_type is record - rtsync: std_logic; - busreset: std_logic; - validcmdA: std_logic; - validcmdB: std_logic; - timedoutA: std_logic; - timedoutB: std_logic; - badreg: std_logic; - irqvec: std_logic_vector(7 downto 0); - end record; - - constant gr1553b_rxin_zero: gr1553b_rxin_type := - (busA_rxP=>'0', busA_rxN=>'0', busB_rxP=>'0', busB_rxN=>'0'); - - constant gr1553b_txout_zero: gr1553b_txout_type := - ('0','0','0','0','0','0','0','0','1','1'); - - constant gr1553b_auxin_zero: gr1553b_auxin_type := - (extsync => '0', rtaddr => "00000", rtpar => '0'); - - constant gr1553b_auxout_zero: gr1553b_auxout_type := - ('0','0','0','0','0','0','0',x"00"); - - - constant gr1553b_rxin_none: gr1553b_rxin_type := gr1553b_rxin_zero; - constant gr1553b_txout_none: gr1553b_txout_type := gr1553b_txout_zero; - constant gr1553b_auxin_none: gr1553b_auxin_type := gr1553b_auxin_zero; - constant gr1553b_auxout_none: gr1553b_auxout_type := gr1553b_auxout_zero; - - component gr1553b is - generic( - hindex: integer := 0; - pindex : integer := 0; - paddr: integer := 0; - pmask : integer := 16#fff#; - pirq : integer := 0; - bc_enable: integer range 0 to 1 := 1; - rt_enable: integer range 0 to 1 := 1; - bm_enable: integer range 0 to 1 := 1; - bc_timer: integer range 0 to 2 := 1; - bc_rtbusmask: integer range 0 to 1 := 1; - extra_regkeys: integer range 0 to 1 := 0; - syncrst: integer range 0 to 2 := 1; - ahbendian: integer range 0 to 1 := 0; - bm_filters: integer range 0 to 1 := 1 - ); - port( - clk: in std_logic; - rst: in std_logic; - ahbmi: in ahb_mst_in_type; - ahbmo: out ahb_mst_out_type; - apbsi: in apb_slv_in_type; - apbso: out apb_slv_out_type; - auxin: in gr1553b_auxin_type; - auxout: out gr1553b_auxout_type; - codec_clk: in std_logic; - codec_rst: in std_logic; - txout: out gr1553b_txout_type; - txout_fb: in gr1553b_txout_type; - rxin: in gr1553b_rxin_type - ); - end component; - - ----------------------------------------------------------------------------- - -- Pads convenience component - - component gr1553b_pads is - generic ( - padtech: integer; - outen_pol: integer range 0 to 1 - ); - port ( - txout: in gr1553b_txout_type; - rxin: out gr1553b_rxin_type; - busainen : out std_logic; - busainp : in std_logic; - busainn : in std_logic; - busaoutenin : out std_logic; - busaoutp : out std_logic; - busaoutn : out std_logic; - busbinen : out std_logic; - busbinp : in std_logic; - busbinn : in std_logic; - busboutenin : out std_logic; - busboutp : out std_logic; - busboutn : out std_logic - ); - end component; - - ----------------------------------------------------------------------------- - -- Wrappers for netlists etc. - - component gr1553b_stdlogic is - generic ( - bc_enable: integer range 0 to 1 := 1; - rt_enable: integer range 0 to 1 := 1; - bm_enable: integer range 0 to 1 := 1; - bc_timer: integer range 0 to 2 := 1; - bc_rtbusmask: integer range 0 to 1 := 1; - extra_regkeys: integer range 0 to 1 := 0; - syncrst: integer range 0 to 2 := 1; - ahbendian: integer range 0 to 1 := 0 - ); - port ( - clk: in std_logic; - rst: in std_logic; - codec_clk: in std_logic; - codec_rst: in std_logic; - -- AHB interface - mi_hgrant : in std_logic; -- bus grant - mi_hready : in std_ulogic; -- transfer done - mi_hresp : in std_logic_vector(1 downto 0); -- response type - mi_hrdata : in std_logic_vector(31 downto 0); -- read data bus - mo_hbusreq: out std_ulogic; -- bus request - mo_htrans : out std_logic_vector(1 downto 0); -- transfer type - mo_haddr : out std_logic_vector(31 downto 0); -- address bus (byte) - mo_hwrite : out std_ulogic; -- read/write - mo_hsize : out std_logic_vector(2 downto 0); -- transfer size - mo_hburst : out std_logic_vector(2 downto 0); -- burst type - mo_hwdata : out std_logic_vector(31 downto 0); -- write data bus - -- APB interface - si_psel : in std_logic; -- slave select - si_penable: in std_ulogic; -- strobe - si_paddr : in std_logic_vector(7 downto 0); -- address bus (byte addr) - si_pwrite : in std_ulogic; -- write - si_pwdata : in std_logic_vector(31 downto 0); -- write data bus - so_prdata : out std_logic_vector(31 downto 0); -- read data bus - so_pirq : out std_logic; -- interrupt bus - -- Aux signals - bcsync : in std_logic; - rtsync : out std_logic; - busreset : out std_logic; - rtaddr : in std_logic_vector(4 downto 0); - rtaddrp : in std_logic; - -- 1553 transceiver interface - busainen : out std_logic; - busainp : in std_logic; - busainn : in std_logic; - busaouten : out std_logic; - busaoutp : out std_logic; - busaoutn : out std_logic; - busbinen : out std_logic; - busbinp : in std_logic; - busbinn : in std_logic; - busbouten : out std_logic; - busboutp : out std_logic; - busboutn : out std_logic - ); - end component; - - component gr1553b_nlw is - generic( - tech: integer := 0; - hindex: integer := 0; - pindex : integer := 0; - paddr: integer := 0; - pmask : integer := 16#fff#; - pirq : integer := 0; - bc_enable: integer range 0 to 1 := 1; - rt_enable: integer range 0 to 1 := 1; - bm_enable: integer range 0 to 1 := 1; - bc_timer: integer range 0 to 2 := 1; - bc_rtbusmask: integer range 0 to 1 := 1; - extra_regkeys: integer range 0 to 1 := 0; - syncrst: integer range 0 to 2 := 1 - ); - port( - clk: in std_logic; - rst: in std_logic; - ahbmi: in ahb_mst_in_type; - ahbmo: out ahb_mst_out_type; - apbsi: in apb_slv_in_type; - apbso: out apb_slv_out_type; - auxin: in gr1553b_auxin_type; - auxout: out gr1553b_auxout_type; - codec_clk: in std_logic; - codec_rst: in std_logic; - txout: out gr1553b_txout_type; - txout_fb: in gr1553b_txout_type; - rxin: in gr1553b_rxin_type - ); - end component; - - ----------------------------------------------------------------------------- - -- APB Register definitions - - constant REG_IRQSTATUS: std_logic_vector := x"00"; - constant REG_IRQENABLE: std_logic_vector := x"04"; - - constant REG_BCSTATUS: std_logic_vector := x"40"; - constant REG_BCACTION: std_logic_vector := x"44"; - constant REG_BCSCHEMADDR: std_logic_vector := x"48"; - constant REG_BCASYNCADDR: std_logic_vector := x"4C"; - constant REG_BCTIME: std_logic_vector := x"50"; - constant REG_BCWAKEUP: std_logic_vector := x"54"; - constant REG_BCIRQSRC: std_logic_vector := x"58"; - constant REG_BCRTBUSMASK: std_logic_vector := x"5C"; - constant REG_BCSCHEMSLOT: std_logic_vector := x"68"; - constant REG_BCASYNCSLOT: std_logic_vector := x"6C"; - - constant REG_RTSTATUS: std_logic_vector := x"80"; - constant REG_RTCONFIG: std_logic_vector := x"84"; - constant REG_RTBUSSTAT: std_logic_vector := x"88"; - constant REG_RTBUSWORDS: std_logic_vector := x"8C"; - constant REG_RTSYNC: std_logic_vector := x"90"; - constant REG_RTTABLEADDR: std_logic_vector := x"94"; - constant REG_RTMODECONFIG: std_logic_vector := x"98"; - constant REG_RTTIMETAG: std_logic_vector := x"A4"; - constant REG_RTLOGMASK: std_logic_vector := x"AC"; - constant REG_RTLOGPOS: std_logic_vector := x"B0"; - constant REG_RTIRQSRC: std_logic_vector := x"B4"; - - constant REG_BMSTATUS: std_logic_vector := x"C0"; - constant REG_BMCONFIG: std_logic_vector := x"C4"; - constant REG_BMADDRFILT: std_logic_vector := x"C8"; - constant REG_BMSAFILT: std_logic_vector := x"CC"; - constant REG_BMMCFILT: std_logic_vector := x"D0"; - constant REG_BMBUFSTART: std_logic_vector := x"D4"; - constant REG_BMBUFEND: std_logic_vector := x"D8"; - constant REG_BMBUFPOS: std_logic_vector := x"DC"; - constant REG_BMTIMETAG: std_logic_vector := x"E0"; - - ----------------------------------------------------------------------------- - -- Test signal generators - - component gr1553b_tgapb is - generic( - codec_clk_freq_mhz: integer := 20; - sameclk: integer range 0 to 1 := 0; - pindex : integer := 0; - paddr: integer := 0; - pmask : integer := 16#fff#; - extmodeen: integer range 0 to 1 := 0; - bitbangen: integer range 0 to 1 := 0; - memtech: integer := 0 - ); - port( - clk: in std_logic; - rst: in std_logic; - codec_clk: in std_logic; - codec_rst: in std_logic; - apbsi: in apb_slv_in_type; - apbso: out apb_slv_out_type; - txout_core: in gr1553b_txout_type; - rxin_core: out gr1553b_rxin_type; - txout_bus: out gr1553b_txout_type; - rxin_bus: in gr1553b_rxin_type; - testing: out std_logic - ); - end component; - - ----------------------------------------------------------------------------- - -- Simulation types and components for test bench - - -- U=Undefined, X=Unknown, 0=Zero, +=High, -=Low - type uwire1553 is ('U','X','0','+','-'); - type uwire1553_array is array(natural range <>) of uwire1553; - function resolved (a: uwire1553_array) return uwire1553; - subtype wire1553 is resolved uwire1553; - - component simtrans1553_single is - port ( - buswire: inout wire1553; - rxen: in std_logic; - txin: in std_logic; - txP: in std_logic; - txN: in std_logic; - rxP: out std_logic; - rxN: out std_logic - ); - end component; - - component simtrans1553 is - port ( - busA: inout wire1553; - busB: inout wire1553; - rxenA: in std_logic; - txinA: in std_logic; - txAP: in std_logic; - txAN: in std_logic; - rxAP: out std_logic; - rxAN: out std_logic; - rxenB: in std_logic; - txinB: in std_logic; - txBP: in std_logic; - txBN: in std_logic; - rxBP: out std_logic; - rxBN: out std_logic - ); - end component; - - component combine1553 is - port ( - clk: in std_ulogic; - txin1,rxen1: in std_ulogic; - tx1P,tx1N: in std_ulogic; - rx1P,rx1N: out std_ulogic; - txin2,rxen2: in std_ulogic; - tx2P,tx2N: in std_ulogic; - rx2P,rx2N: out std_ulogic; - txin,rxen: out std_ulogic; - txP,txN: out std_ulogic; - rxP,rxN: in std_ulogic - ); - end component; - -end package; - -package body gr1553b_pkg is - - function resolved (a: uwire1553_array) return uwire1553 is - variable w,w2: uwire1553; - begin - w := a(a'left); - for q in a'range loop - w2 := a(q); - if w /= w2 then - case w is - when 'U' => w := 'X'; - when 'X' => null; - when '0' => w := w2; - when '+' | '-' => if w2 /= '0' then w:='X'; end if; - end case; - end if; - end loop; - return w; - end; - -end package body; diff --git a/lib/gaisler/gr1553bv1/test/combine1553.vhd b/lib/gaisler/gr1553bv1/test/combine1553.vhd deleted file mode 100644 index 3d616013..00000000 --- a/lib/gaisler/gr1553bv1/test/combine1553.vhd +++ /dev/null @@ -1,126 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: combine1553 --- File: combine1553.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: Glue logic for using two 1553 IP cores behind the same --- transceiver ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -entity combine1553 is - port ( - clk: in std_ulogic; - txin1,rxen1: in std_ulogic; - tx1P,tx1N: in std_ulogic; - rx1P,rx1N: out std_ulogic; - txin2,rxen2: in std_ulogic; - tx2P,tx2N: in std_ulogic; - rx2P,rx2N: out std_ulogic; - txin,rxen: out std_ulogic; - txP,txN: out std_ulogic; - rxP,rxN: in std_ulogic - ); -end; - -architecture rtl of combine1553 is - - type milcombine_regs is record - tx1,tx2: std_logic; - txP,txN,rxP,rxN: std_logic; - txin,rxen: std_logic; - qctr: std_logic_vector(2 downto 0); - end record; - - signal r,nr: milcombine_regs; - -begin - - comb: process(r,tx1P,tx1N,tx2P,tx2N,rxP,rxN,txin1,txin2,rxen1,rxen2) - variable v: milcombine_regs; - variable vtxP,vtxN,vrx1P,vrx1N,vrx2P,vrx2N,vtxin,vrxen: std_ulogic; - begin - -- Init vars - vtxP := r.txP; - vtxN := r.txN; - vrx1P := r.rxP; - vrx1N := r.rxN; - vrx2P := r.rxP; - vrx2N := r.rxN; - vtxin := r.txin; - vrxen := r.rxen; - v := r; - -- Comb logic - v.txin := txin1 and txin2; - v.rxen := rxen1 or rxen2; - v.txP := (tx1P and not tx1N) or (tx2P and not tx2N) or (txin1 and txin2); - v.txN := (tx1N and not tx1P) or (tx2N and not tx2P) or (txin1 and txin2); - v.rxP := rxP; - v.rxN := rxN; - if (r.tx1='1' or r.tx2='1') and r.rxP=r.rxN then - v.qctr := std_logic_vector(unsigned(r.qctr)+1); - if r.qctr="111" then - v.tx1 := '0'; - v.tx2 := '0'; - end if; - else - v.qctr := "000"; - end if; - if tx1P /= tx1N then - v.tx1 := '1'; - end if; - if tx2P /= tx2N then - v.tx2 := '1'; - end if; - if r.tx1='1' then - vrx2P := tx1P; - vrx2N := tx1N; - end if; - if r.tx2='1' then - vrx1P := tx2P; - vrx1N := tx2N; - end if; - vrx1P := vrx1P and rxen1; - vrx1N := vrx1N and rxen1; - vrx2P := vrx2P and rxen2; - vrx2N := vrx2N and rxen2; - -- Assign outputs - nr <= v; - txP <= vtxP; - txN <= vtxN; - rx1P <= vrx1P; - rx1N <= vrx1N; - rx2P <= vrx2P; - rx2N <= vrx2N; - txin <= vtxin; - rxen <= vrxen; - end process; - - regs: process(clk) - begin - if rising_edge(clk) then - r <= nr; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/test/gr1553b_tgapb.vhd b/lib/gaisler/gr1553bv1/test/gr1553b_tgapb.vhd deleted file mode 100644 index dc686f8d..00000000 --- a/lib/gaisler/gr1553bv1/test/gr1553b_tgapb.vhd +++ /dev/null @@ -1,493 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -------------------------------------------------------------------------------- --- GR1553B test signal generator with APB interface --- Author: Magnus Hjorth, Aeroflex Gaisler --- -------------------------------------------------------------------------------- --- Connects between gr1553b and 1553 transciever --- In normal mode, passes signals straight through --- In test mode, disconnects bus and connects test gen to gr1553b input --- In external fault-injection mode, connects the test gen to the transceiver --- --- Note: Fault-injection mode should only be built-in and used in test --- equipment, since it introduces new failure modes to the bus system. -------------------------------------------------------------------------------- --- APB regs: --- 0x00: Config/Status --- Read: --- Bit 31: Constant '1' (test gen present) --- Bit 30: '1' if bit-bang transmitter present --- Bit 27-24: Bit-bang transmit FIFO depth 2-log "1000"=256 words --- Bit 8: Bit-bang ready for more data (check after every half-FIFO written) --- Bit 7-4: Bit-bang clock scaler (0=50ns/sample, 1=100, ..., 15=800ns/sample) --- Bit 3: Fault-injection mode enabled (generated words are sent onto bus) --- Bit 2: Word queue full --- Bit 1: '1' if testgen transmitter active, '0' if idle --- Bit 0: Test mode enabled --- Write: --- Bit 31-4: Don't care --- Bit 7-4: Bit-bang clock scaler (0=50ns/sample, 1=100, ..., 15=800ns/sample) --- Bit 3: Fault-injection mode enable --- Bit 2-1: Don't care --- Bit 0: Test mode enable --- --- 0x04: Data out --- Write: --- Bit 27-18: Start time spec (us) --- If queue is empty, set to start time delay relative to current time. --- If last in queue is one discontinuous word, delay should be 0 for adding a --- continous word or gap+20 for a discontinuous word. --- If last in queue are two or more back-to-back words, set delay to 0 for --- adding another cont word or 37+gap for a discont. word. --- Bit 17: Bus selection 0=A, 1=B --- Bit 16: Word type (0=Data, 1=Command/status) --- Bit 15-0: Word data bits --- --- 0x08: Bit-bang data out --- Write: --- Bit 31-30: Bus A value #0 (P,N) --- Bit 29-28: Bus A value #1 --- Bit 27-16: Bus A value #2...#7 --- Bit 15- 0: Bus B value #0...#7 -------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -library techmap; -use techmap.gencomp.all; -library grlib; -use grlib.amba.all; -use grlib.devices.all; -use work.gr1553b_pkg.all; -use work.gr1553b_core.all; - -entity gr1553b_tgapb is - generic( - codec_clk_freq_mhz: integer; - sameclk: integer range 0 to 1 := 0; - -- APB config - pindex : integer := 0; - paddr: integer := 0; - pmask : integer := 16#fff#; - -- Should only be enabled for dedicated test HW, not for production - -- RT:s/BC:s - extmodeen: integer range 0 to 1 := 0; - bitbangen: integer range 0 to 1 := 0; - memtech: integer - ); - port( - clk: in std_logic; - rst: in std_logic; - - codec_clk: in std_logic; - codec_rst: in std_logic; - - apbsi: in apb_slv_in_type; - apbso: out apb_slv_out_type; - - txout_core: in gr1553b_txout_type; - rxin_core: out gr1553b_rxin_type; - - txout_bus: out gr1553b_txout_type; - rxin_bus: in gr1553b_rxin_type; - - testing: out std_logic - ); -end entity; - -architecture rtl of gr1553b_tgapb is - - type word_queue_item is record - dv: std_logic; - delay: unsigned(9 downto 0); - bussel: std_logic; - w: gr1553b_word; - end record; - - type word_queue is array (natural range <>) of word_queue_item; - - type testgen_regs is record - wq: word_queue(0 to 7); - testmode: std_logic; - bussel: std_logic; - extmode: std_logic; - bbscaler: std_logic_vector(3 downto 0); - bbstart: std_logic; - bbdone_sync,bbdone: std_logic; - waddr: std_logic_vector(7 downto 0); - end record; - - signal r,nr: testgen_regs; - - type bitbang_regs is record - bbdone: std_logic; - bbstart_sync,bbstart: std_logic; - raddr: std_logic_vector(7 downto 0); - shreg: std_logic_vector(31 downto 0); - shctr: std_logic_vector(2 downto 0); - bbscaler: std_logic_vector(3 downto 0); - bbscalecnt: std_logic_vector(3 downto 0); - end record; - - signal bbr,bbnr: bitbang_regs; - - constant venid: integer := VENDOR_GAISLER; - constant devid: integer := GAISLER_1553TST; - constant version: integer := 0; - constant cfgver: integer := 0; - - constant pconfig: apb_config_type := ( - 0 => ahb_device_reg ( venid, devid, cfgver, version, 0 ), - 1 => apb_iobar(paddr, pmask ) - ); - - signal seri: gr1553b_tx1_in; - signal sero: gr1553b_tx1_out; - signal biti_amba, biti_codec: gr1553b_tx2_in; - signal bito_amba, bito_codec: gr1553b_tx2_out; - - signal test_txout_pos,test_txout_neg: std_logic; - - signal us_clear,us_tick: std_logic; - - signal bbfifo_rad,bbfifo_wad: std_logic_vector(7 downto 0); - signal bbfifo_rd,bbfifo_wd: std_logic_vector(31 downto 0); - signal bbfifo_wen: std_logic; - signal bbtxAP, bbtxAN, bbtxBP, bbtxBN: std_logic; - -begin - - ----------------------------------------------------------------------------- - -- 1553 Transmitter - -- - txser0: gr1553b_tx1 - generic map (syncrst => 1) - port map ( - clk => clk, rst => rst, - seri => seri, - sero => sero, - biti => biti_amba, - bito => bito_amba - ); - syncgen: if sameclk = 0 generate - txsync0: gr1553b_tx12sync - generic map (syncrst => 1) - port map ( - ser_clk => clk, - ser_rst => rst, - ser_biti => biti_amba, - ser_bito => bito_amba, - out_clk => codec_clk, - out_rst => codec_rst, - out_biti => biti_codec, - out_bito => bito_codec - ); - end generate; - nsyncgen: if sameclk = 1 generate - biti_codec <= biti_amba; - bito_amba <= bito_codec; - end generate; - txout0: gr1553b_tx2 - generic map (clk_freq_mhz => codec_clk_freq_mhz, txreg => true, syncrst => 1) - port map ( - clk => codec_clk, - rst => codec_rst, - biti => biti_codec, - bito => bito_codec, - txout_pos => test_txout_pos, - txout_neg => test_txout_neg - ); - - ----------------------------------------------------------------------------- - -- Timer - -- - tick0: gr1553b_mhztick - generic map (timeclk_freq_mhz => codec_clk_freq_mhz, sameclk => sameclk, syncrst => 1) - port map ( - clk => clk, rst => rst, - restart => '0', clear => us_clear, tick => us_tick, - timeclk => codec_clk, timerst => codec_rst - ); - - - ----------------------------------------------------------------------------- - -- Bit-banger - bbgen: if bitbangen=1 generate - - bbfifo: syncram_2p - generic map (tech => memtech, abits => 8, dbits => 32, sepclk => 1) - port map (rclk => codec_clk, renable => '1', - raddress => bbfifo_rad, dataout => bbfifo_rd, - wclk => clk, write => bbfifo_wen, waddress => bbfifo_wad, - datain => bbfifo_wd); - - bbcomb: process(bbr,r,bbfifo_rd,codec_rst) - variable v: bitbang_regs; - begin - v := bbr; - - v.bbscaler := r.bbscaler; -- Clock-domain crossing - v.bbstart_sync := r.bbstart; -- Clock-domain crossing - v.bbstart := bbr.bbstart_sync; - - if bbr.bbdone = bbr.raddr(7) then - v.bbdone := bbr.bbstart; - v.bbscalecnt := bbr.bbscaler; - elsif bbr.bbscalecnt="0000" then - v.bbscalecnt := bbr.bbscaler; - v.shctr := std_logic_vector(unsigned(bbr.shctr)+1); - v.shreg(31 downto 18) := bbr.shreg(29 downto 16); - v.shreg(15 downto 2) := bbr.shreg(13 downto 0); - if bbr.shctr="111" then - v.shreg := bbfifo_rd; - v.raddr := std_logic_vector(unsigned(bbr.raddr)+1); - end if; - else - v.bbscalecnt := std_logic_vector(unsigned(bbr.bbscalecnt)-1); - end if; - - if codec_rst='0' then - v.bbdone := '0'; - v.raddr := (others => '0'); - v.shctr := "000"; - v.shreg(31) := '0'; - v.shreg(30) := '0'; - v.shreg(15) := '0'; - v.shreg(14) := '0'; - end if; - - bbtxap <= bbr.shreg(31); - bbtxan <= bbr.shreg(30); - bbtxbp <= bbr.shreg(15); - bbtxbn <= bbr.shreg(14); - bbfifo_rad <= bbr.raddr; - bbnr <= v; - end process; - - bbregs: process(codec_clk) - begin - if rising_edge(codec_clk) then - bbr <= bbnr; - end if; - end process; - - end generate; - - nbbgen: if bitbangen=0 generate - bbr <= ('0','0','0',x"00",x"00000000","000","0000","0000"); - bbnr <= ('0','0','0',x"00",x"00000000","000","0000","0000"); - bbfifo_rad <= (others => '0'); - bbfifo_rd <= (others => '0'); - bbtxap <= '0'; - bbtxan <= '0'; - bbtxbp <= '0'; - bbtxbn <= '0'; - end generate; - - - ----------------------------------------------------------------------------- - -- - comb: process(r,bbr,rst,apbsi,txout_core,test_txout_pos,test_txout_neg,rxin_bus,sero,bito_amba,us_tick, - bbtxap,bbtxan,bbtxbp,bbtxbn) - variable v: testgen_regs; - variable vseri: gr1553b_tx1_in; - variable vtxout: gr1553b_txout_type; - variable vrxin: gr1553b_rxin_type; - variable vtxstart: std_logic; - variable do_write: boolean; - variable wrdata,rddata: std_logic_vector(31 downto 0); - variable clear_queue: boolean; - variable wt: gr1553b_word_type; - variable queue_empty: std_logic; - variable testoutAP,testoutAN,testoutBP,testoutBN: std_logic; - variable vfifowen: std_logic; - begin - v := r; - vtxout := txout_core; - vrxin := rxin_bus; - vtxstart := '0'; - vfifowen := '0'; - clear_queue := false; - - testoutAP := bbtxap; - testoutAN := bbtxan; - testoutBP := bbtxbp; - testoutBN := bbtxbn; - - -- Signal switching logic - if r.bussel='1' then - testoutBP := testoutBP or test_txout_pos; - testoutBN := testoutBN or test_txout_neg; - else - testoutAP := testoutAP or test_txout_pos; - testoutAN := testoutAN or test_txout_neg; - end if; - - if r.testmode='1' then - - vtxout := (busA_txP => '0', busA_txN => '0', busA_txen => '0', - busB_txP => '0', busB_txN => '0', busB_txen => '0', busA_rxen => '0', busB_rxen => '0', - busA_txin => '1', busB_txin => '1'); - vrxin := (busA_rxP => testoutAP, busA_rxN => testoutAN, busB_rxP => testoutBP, busB_rxN => testoutBN); - if r.bussel='1' then - vrxin.busB_rxP := test_txout_pos; - vrxin.busB_rxN := test_txout_neg; - else - vrxin.busA_rxP := test_txout_pos; - vrxin.busA_rxN := test_txout_neg; - end if; - - end if; - - if r.extmode='1' then - vtxout := (busA_txP => testoutAP, busA_txN => testoutAN, busA_txen => '1', - busB_txP => testoutBP, busB_txN => testoutBN, busB_txen => '1', - busA_rxen => '1', busB_rxen => '1', busA_txin => '0', busB_txin => '0'); - end if; - - -- Manage queue - if r.testmode='1' or r.extmode='1' then - if r.wq(0).dv='1' then - if r.wq(0).delay="0000000000" then - if (sero.ready='1' and r.wq(0).bussel=r.bussel) or bito_amba.done='1' then - vtxstart := '1'; - v.bussel := r.wq(0).bussel; - end if; - if us_tick='1' and r.wq(1).dv='1' and r.wq(1).delay /= "0000000000" then - v.wq(1).delay := r.wq(1).delay - 1; - end if; - elsif us_tick='1' then - v.wq(0).delay := r.wq(0).delay - 1; - end if; - end if; - if sero.read_data='1' then - v.wq(0) := v.wq(1); - v.wq(1).dv := '0'; - end if; - - for i in 0 to r.wq'high-1 loop - if r.wq(i).dv='0' then - v.wq(i) := r.wq(i+1); - v.wq(i+1).dv := '0'; - end if; - end loop; - end if; - - -- Bit-banging interface signaling - v.bbdone_sync := bbr.bbdone; - v.bbdone := r.bbdone_sync; - if r.bbdone=r.bbstart then - v.bbstart := r.waddr(7); - end if; - - -- APB interface - do_write := false; - if apbsi.pwrite='1' and apbsi.penable='1' and apbsi.psel(pindex)='1' then - do_write := true; - end if; - - wrdata := apbsi.pwdata; - rddata := (others => '0'); - case apbsi.paddr(7 downto 2) is - when "000000" => - rddata(31) := '1'; - if bitbangen=1 then rddata(30):='1'; end if; - rddata(27 downto 24) := "1000"; - if bitbangen=1 and r.bbdone=r.bbstart then rddata(8):='1'; end if; - rddata(7 downto 4) := r.bbscaler; - rddata(3) := r.extmode; - rddata(2) := r.wq(r.wq'high).dv; - rddata(1) := r.wq(0).dv or not bito_amba.done; - rddata(0) := r.testmode; - if do_write then - if bitbangen /= 0 then - v.bbscaler := wrdata(7 downto 4); - end if; - if extmodeen /= 0 then - v.extmode := wrdata(3); - end if; - v.testmode := wrdata(0); - clear_queue := true; - end if; - - when "000001" => - if do_write then - v.wq(v.wq'high) := ( - dv => '1', - delay => unsigned(wrdata(27 downto 18)), - bussel => wrdata(17), - w => (t => sl_to_wt(wrdata(16)), - data => wrdata(15 downto 0)) - ); - end if; - - when "000010" => - if do_write then - vfifowen := '1'; - v.waddr := std_logic_vector(unsigned(r.waddr)+1); - end if; - - when others => - null; - - end case; - - if rst='0' then - v.testmode := '0'; - v.extmode := '0'; - v.waddr := "00000000"; - v.bbstart := '0'; - v.bbscaler := "1010"; - clear_queue := true; - end if; - - if clear_queue then - for i in v.wq'range loop - v.wq(i).dv := '0'; - end loop; - v.waddr(6 downto 0):="0000000"; - end if; - - vseri := (abort => '0', start => vtxstart, word => r.wq(0).w); - - nr <= v; - testing <= r.testmode; - txout_bus <= vtxout; - rxin_core <= vrxin; - seri <= vseri; - us_clear <= not ((r.testmode or r.extmode) and r.wq(0).dv); - bbfifo_wad <= r.waddr; - bbfifo_wen <= vfifowen; - bbfifo_wd <= wrdata; - apbso <= (prdata => rddata, - pirq => (others => '0'), - pconfig => pconfig, - pindex => pindex); - end process; - - regs: process(clk) - begin - if rising_edge(clk) then - r <= nr; - end if; - end process; - -end; diff --git a/lib/gaisler/gr1553bv1/test/simtrans1553.vhd b/lib/gaisler/gr1553bv1/test/simtrans1553.vhd deleted file mode 100644 index 9f729460..00000000 --- a/lib/gaisler/gr1553bv1/test/simtrans1553.vhd +++ /dev/null @@ -1,130 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: simtrans1553 --- File: simtrans1553.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: 1553 Transceiver simulation model ------------------------------------------------------------------------------- - - - -library ieee; -use ieee.std_logic_1164.all; -library gaisler; -use gaisler.gr1553b_pkg.all; - -entity simtrans1553_single is - port ( - buswire: inout wire1553; - rxen: in std_logic; - txin: in std_logic; - txP: in std_logic; - txN: in std_logic; - rxP: out std_logic; - rxN: out std_logic - ); -end; - -architecture b of simtrans1553_single is - signal bw_rxd, bw_txd: wire1553; -begin - - bw_rxd <= buswire after 450 ns; - buswire <= bw_txd after 200 ns; - - rxpr: process(bw_rxd,rxen) - variable p,n: std_ulogic; - begin - p:='U'; n:='U'; - case rxen is - when '0' => p:='0'; n:='0'; - when '1' => - case bw_rxd is - when 'U' => null; - when 'X' => p := 'X'; n := 'X'; - when '0' => p := '0'; n := '0'; - when '+' => p := '1'; n := '0'; - when '-' => p := '0'; n := '1'; - end case; - when 'X' => p:='X'; n:='X'; - when others => null; - end case; - rxP <= p; - rxN <= n; - end process; - - txpr: process(txin, txP, txN) - variable w: wire1553; - begin - w := 'U'; - if txin='1' or (txP='0' and txN='0') or (txP='1' and txN='1') then - w := '0'; - elsif txin='0' and txP='1' and txN='0' then - w := '+'; - elsif txin='0' and txP='0' and txN='1' then - w := '-'; - elsif txin='X' or txP='X' or txN='X' then - w := 'X'; - elsif txin='U' or (txP='U' and txN='U') then - w := 'U'; - else - w := 'X'; - end if; - bw_txd <= w; - end process; - -end; - - - - -library ieee; -use ieee.std_logic_1164.all; -library gaisler; -use gaisler.gr1553b_pkg.all; - -entity simtrans1553 is - port ( - busA: inout wire1553; - busB: inout wire1553; - rxenA: in std_logic; - txinA: in std_logic; - txAP: in std_logic; - txAN: in std_logic; - rxAP: out std_logic; - rxAN: out std_logic; - rxenB: in std_logic; - txinB: in std_logic; - txBP: in std_logic; - txBN: in std_logic; - rxBP: out std_logic; - rxBN: out std_logic - ); -end; - -architecture s of simtrans1553 is -begin - - at: simtrans1553_single - port map (busA,rxenA,txinA,txAP,txAN,rxAP,rxAN); - bt: simtrans1553_single - port map (busB,rxenB,txinB,txBP,txBN,rxBP,rxBN); - -end; diff --git a/lib/gaisler/gr1553bv1/wrap/gr1553b_nlw.vhd b/lib/gaisler/gr1553bv1/wrap/gr1553b_nlw.vhd deleted file mode 100644 index 9b63cfdc..00000000 --- a/lib/gaisler/gr1553bv1/wrap/gr1553b_nlw.vhd +++ /dev/null @@ -1,142 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_nlw --- File: gr1553b_nlw.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: Netlist wrapper for GR1553B ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.devices.all; -use grlib.stdlib.all; --- library techmap; --- use techmap.gencomp.all; -library gaisler; -use gaisler.gr1553b_pkg.all; -use gaisler.gr1553b_core.gr1553b_version; -use gaisler.gr1553b_core.gr1553b_cfgver; - -entity gr1553b_nlw is - generic( - tech: integer := 0; - hindex: integer := 0; - pindex : integer := 0; - paddr: integer := 0; - pmask : integer := 16#fff#; - pirq : integer := 0; - bc_enable: integer range 0 to 1 := 1; - rt_enable: integer range 0 to 1 := 1; - bm_enable: integer range 0 to 1 := 1; - bc_timer: integer range 0 to 2 := 1; - bc_rtbusmask: integer range 0 to 1 := 1; - extra_regkeys: integer range 0 to 1 := 0; - syncrst: integer range 0 to 2 := 0 - ); - port( - clk: in std_logic; - rst: in std_logic; - ahbmi: in ahb_mst_in_type; - ahbmo: out ahb_mst_out_type; - apbsi: in apb_slv_in_type; - apbso: out apb_slv_out_type; - auxin: in gr1553b_auxin_type; - auxout: out gr1553b_auxout_type; - codec_clk: in std_logic; - codec_rst: in std_logic; - txout: out gr1553b_txout_type; - txout_fb: in gr1553b_txout_type; - rxin: in gr1553b_rxin_type - ); -end; - -architecture rtl of gr1553b_nlw is - - signal mi_hgrant,mi_hready,mo_hbusreq,mo_hwrite,si_psel,si_penable,si_pwrite,so_pirq: std_logic; - signal mi_hresp,mo_htrans: std_logic_vector(1 downto 0); - signal mo_hsize,mo_hburst: std_logic_vector(2 downto 0); - signal mi_hrdata,mo_haddr,mo_hwdata,si_pwdata,so_prdata: std_logic_vector(31 downto 0); - signal si_paddr: std_logic_vector(7 downto 0); - signal bcsync,rtsync,busreset,rtaddrp: std_logic; - signal rtaddr: std_logic_vector(4 downto 0); - signal busainen,busainp,busainn,busaouten,busaoutp,busaoutn: std_logic; - signal busbinen,busbinp,busbinn,busbouten,busboutp,busboutn: std_logic; - -begin - - geninf: if tech=0 generate - x: gr1553b_stdlogic - generic map (bc_enable,rt_enable,bm_enable,bc_timer,bc_rtbusmask,extra_regkeys,syncrst) - port map (clk,rst,codec_clk,codec_rst, - mi_hgrant,mi_hready,mi_hresp,mi_hrdata, - mo_hbusreq,mo_htrans,mo_haddr,mo_hwrite,mo_hsize,mo_hburst,mo_hwdata, - si_psel,si_penable,si_paddr,si_pwrite,si_pwdata, - so_prdata,so_pirq, - bcsync,rtsync,busreset,rtaddr,rtaddrp, - busainen,busainp,busainn,busaouten,busaoutp,busaoutn, - busbinen,busbinp,busbinn,busbouten,busboutp,busboutn); - end generate; - - mi_hgrant <= ahbmi.hgrant(hindex); - mi_hready <= ahbmi.hready; - mi_hresp <= ahbmi.hresp; - mi_hrdata <= ahbreadword(ahbmi.hrdata); - ahbmo.hbusreq <= mo_hbusreq; - ahbmo.htrans <= mo_htrans; - ahbmo.haddr <= mo_haddr; - ahbmo.hwrite <= mo_hwrite; - ahbmo.hsize <= mo_hsize; - ahbmo.hburst <= mo_hburst; - ahbmo.hwdata <= ahbdrivedata(mo_hwdata); - ahbmo.hprot <= "0011"; - si_psel <= apbsi.psel(pindex); - si_penable <= apbsi.penable; - si_paddr <= apbsi.paddr(7 downto 0); - si_pwrite <= apbsi.pwrite; - si_pwdata <= apbsi.pwdata; - apbso.prdata <= so_prdata; - apbso.pirq(pindex) <= so_pirq; - bcsync <= auxin.extsync; - auxout.rtsync <= rtsync; - auxout.busreset <= busreset; - rtaddr <= auxin.rtaddr; - rtaddrp <= auxin.rtpar; - txout.busA_txP <= busaoutp; - txout.busA_txN <= busaoutn; - txout.busA_txen <= busaouten; - txout.busA_rxen <= busainen; - txout.busB_txP <= busboutp; - txout.busB_txN <= busboutn; - txout.busB_txen <= busbouten; - txout.busB_rxen <= busbinen; - busainp <= rxin.busA_rxP; - busainn <= rxin.busA_rxN; - busbinp <= rxin.busB_rxP; - busbinn <= rxin.busB_rxN; - - ahbmo.hconfig <= (0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_GR1553B, gr1553b_version, gr1553b_cfgver, 0 ), - others => zero32); - - apbso.pconfig <= (0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_GR1553B, gr1553b_version, gr1553b_cfgver, pirq), - 1 => apb_iobar(paddr,pmask)); - -end; diff --git a/lib/gaisler/gr1553bv1/wrap/gr1553b_pads.vhd b/lib/gaisler/gr1553bv1/wrap/gr1553b_pads.vhd deleted file mode 100644 index cce2d5c3..00000000 --- a/lib/gaisler/gr1553bv1/wrap/gr1553b_pads.vhd +++ /dev/null @@ -1,95 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_pads --- File: gr1553b_pads.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: Pad instantiations for GR1553B ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library gaisler; -use gaisler.gr1553b_pkg.all; -library techmap; -use techmap.gencomp.all; - -entity gr1553b_pads is - generic ( - padtech: integer; - outen_pol: integer range 0 to 1 - ); - port ( - txout: in gr1553b_txout_type; - rxin: out gr1553b_rxin_type; - busainen : out std_logic; - busainp : in std_logic; - busainn : in std_logic; - busaoutenin : out std_logic; - busaoutp : out std_logic; - busaoutn : out std_logic; - busbinen : out std_logic; - busbinp : in std_logic; - busbinn : in std_logic; - busboutenin : out std_logic; - busboutp : out std_logic; - busboutn : out std_logic - ); -end; - -architecture rtl of gr1553b_pads is -begin - - outin_gen: if outen_pol /= 0 generate - busa_outin_pad : outpad generic map (tech => padtech) - port map (busaoutenin, txout.busA_txin); - busb_outin_pad : outpad generic map (tech => padtech) - port map (busboutenin, txout.busB_txin); - end generate; - - outen_gen: if outen_pol = 0 generate - busa_outen_pad : outpad generic map (tech => padtech) - port map (busaoutenin, txout.busA_txen); - busb_outen_pad : outpad generic map (tech => padtech) - port map (busboutenin, txout.busB_txen); - end generate; - - - busa_inen_pad : outpad generic map (tech => padtech) - port map (busainen, txout.busA_rxen); - busa_inp_pad : inpad generic map (tech => padtech) - port map (busainp, rxin.busA_rxP); - busa_inn_pad : inpad generic map (tech => padtech) - port map (busainn, rxin.busA_rxN); - busa_outp_pad : outpad generic map (tech => padtech) - port map (busaoutp, txout.busA_txP); - busa_outn_pad : outpad generic map (tech => padtech) - port map (busaoutn, txout.busA_txN); - busb_inen_pad : outpad generic map (tech => padtech) - port map (busbinen, txout.busB_rxen); - busb_inp_pad : inpad generic map (tech => padtech) - port map (busbinp, rxin.busB_rxP); - busb_inn_pad : inpad generic map (tech => padtech) - port map (busbinn, rxin.busB_rxN); - busb_outp_pad : outpad generic map (tech => padtech) - port map (busboutp, txout.busB_txP); - busb_outn_pad : outpad generic map (tech => padtech) - port map (busboutn, txout.busB_txN); - -end; diff --git a/lib/gaisler/gr1553bv1/wrap/gr1553b_stdlogic.vhd b/lib/gaisler/gr1553bv1/wrap/gr1553b_stdlogic.vhd deleted file mode 100644 index b3a7897d..00000000 --- a/lib/gaisler/gr1553bv1/wrap/gr1553b_stdlogic.vhd +++ /dev/null @@ -1,204 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: gr1553b_stdlogic --- File: gr1553b_stdlogic.vhd --- Author: Magnus Hjorth - Aeroflex Gaisler --- Description: Wrapper for GR1553B with std_logic ports ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -library gaisler; -use gaisler.gr1553b_pkg.all; - -entity gr1553b_stdlogic is - - generic ( - bc_enable: integer range 0 to 1 := 1; - rt_enable: integer range 0 to 1 := 1; - bm_enable: integer range 0 to 1 := 1; - bc_timer: integer range 0 to 2 := 1; - bc_rtbusmask: integer range 0 to 1 := 1; - extra_regkeys: integer range 0 to 1 := 0; - syncrst: integer range 0 to 2 := 1; - ahbendian: integer := 0 - ); - - port ( - clk: in std_logic; - rst: in std_logic; - codec_clk: in std_logic; - codec_rst: in std_logic; - - -- AHB interface - - mi_hgrant : in std_logic; -- bus grant - mi_hready : in std_ulogic; -- transfer done - mi_hresp : in std_logic_vector(1 downto 0); -- response type - mi_hrdata : in std_logic_vector(31 downto 0); -- read data bus - - mo_hbusreq : out std_ulogic; -- bus request - mo_htrans : out std_logic_vector(1 downto 0); -- transfer type - mo_haddr : out std_logic_vector(31 downto 0); -- address bus (byte) - mo_hwrite : out std_ulogic; -- read/write - mo_hsize : out std_logic_vector(2 downto 0); -- transfer size - mo_hburst : out std_logic_vector(2 downto 0); -- burst type - mo_hwdata : out std_logic_vector(31 downto 0); -- write data bus - - -- APB interface - - si_psel : in std_logic; -- slave select - si_penable : in std_ulogic; -- strobe - si_paddr : in std_logic_vector(7 downto 0); -- address bus (byte addr) - si_pwrite : in std_ulogic; -- write - si_pwdata : in std_logic_vector(31 downto 0); -- write data bus - so_prdata : out std_logic_vector(31 downto 0); -- read data bus - so_pirq : out std_logic; -- interrupt bus - - -- Aux signals - bcsync : in std_logic; - rtsync : out std_logic; - busreset : out std_logic; - - rtaddr : in std_logic_vector(4 downto 0); - rtaddrp : in std_logic; - - -- 1553 transceiver interface - busainen : out std_logic; - busainp : in std_logic; - busainn : in std_logic; - busaouten : out std_logic; - busaoutp : out std_logic; - busaoutn : out std_logic; - busbinen : out std_logic; - busbinp : in std_logic; - busbinn : in std_logic; - busbouten : out std_logic; - busboutp : out std_logic; - busboutn : out std_logic - ); - -end; - -architecture rtl of gr1553b_stdlogic is - - signal gr1553b_txout: gr1553b_txout_type; - signal gr1553b_rxin: gr1553b_rxin_type; - - signal mi: ahb_mst_in_type; - signal mo: ahb_mst_out_type; - signal si: apb_slv_in_type; - signal so: apb_slv_out_type; - - signal auxin: gr1553b_auxin_type; - signal auxout: gr1553b_auxout_type; - -begin - - x: gr1553b - generic map ( - hindex => 0, - pindex => 0, - paddr => 0, - pmask => 0, - pirq => 0, - bc_enable => bc_enable, - rt_enable => rt_enable, - bm_enable => bm_enable, - bc_timer => bc_timer, - bc_rtbusmask => bc_rtbusmask, - syncrst => syncrst, - extra_regkeys => extra_regkeys, - ahbendian => ahbendian - ) - port map ( - clk => clk, - rst => rst, - ahbmi => mi, - ahbmo => mo, - apbsi => si, - apbso => so, - codec_clk => codec_clk, - codec_rst => codec_rst, - txout => gr1553b_txout, - txout_fb => gr1553b_txout, - rxin => gr1553b_rxin, - auxin => auxin, - auxout => auxout - ); - - mi.hgrant(0) <= mi_hgrant; - mi.hgrant(1 to NAHBMST-1) <= (others => '0'); - mi.hready <= mi_hready; - mi.hresp <= mi_hresp; - mi.hrdata <= ahbdrivedata(mi_hrdata); - mi.hcache <= '0'; - mi.hirq <= (others => '0'); - mi.testen <= '0'; - mi.testrst <= '0'; - mi.scanen <= '0'; - mi.testoen <= '0'; - - mo_hbusreq <= mo.hbusreq; - mo_htrans <= mo.htrans; - mo_haddr <= mo.haddr; - mo_hwrite <= mo.hwrite; - mo_hsize <= mo.hsize; - mo_hburst <= mo.hburst; - mo_hwdata <= ahbreadword(mo.hwdata); - - si.psel(0) <= si_psel; - si.psel(1 to NAPBSLV-1) <= (others => '0'); - si.penable <= si_penable; - si.paddr <= x"000000" & si_paddr; - si.pwrite <= si_pwrite; - si.pwdata <= si_pwdata; - si.pirq <= (others => '0'); - si.testen <= '0'; - si.testrst <= '0'; - si.scanen <= '0'; - si.testoen <= '0'; - - so_prdata <= so.prdata; - so_pirq <= so.pirq(0); - - auxin.extsync <= bcsync; - auxin.rtaddr <= rtaddr; - auxin.rtpar <= rtaddrp; - rtsync <= auxout.rtsync; - busreset <= auxout.busreset; - - busainen <= gr1553b_txout.busA_rxen; - gr1553b_rxin.busA_rxP <= busainp; - gr1553b_rxin.busA_rxN <= busainn; - busaouten <= gr1553b_txout.busA_txen; - busaoutp <= gr1553b_txout.busA_txP; - busaoutn <= gr1553b_txout.busA_txN; - - busBinen <= gr1553b_txout.busB_rxen; - gr1553b_rxin.busB_rxP <= busBinp; - gr1553b_rxin.busB_rxN <= busBinn; - busBouten <= gr1553b_txout.busB_txen; - busBoutp <= gr1553b_txout.busB_txP; - busBoutn <= gr1553b_txout.busB_txN; - -end; diff --git a/lib/gaisler/greth/ethernet_mac.vhd b/lib/gaisler/greth/ethernet_mac.vhd index 19fb2fc7..a51228e5 100644 --- a/lib/gaisler/greth/ethernet_mac.vhd +++ b/lib/gaisler/greth/ethernet_mac.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/greth/greth.vhd b/lib/gaisler/greth/greth.vhd index da8cfee7..b3367612 100644 --- a/lib/gaisler/greth/greth.vhd +++ b/lib/gaisler/greth/greth.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -68,7 +68,9 @@ entity greth is mdint_pol : integer range 0 to 1 := 0; enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1; + maxsize : integer := 1518); port( rst : in std_ulogic; clk : in std_ulogic; @@ -171,7 +173,9 @@ begin enable_mdint => enable_mdint, multicast => multicast, edclsepahbg => 0, - ramdebug => ramdebug) + ramdebug => ramdebug, + mdiohold => mdiohold, + maxsize => maxsize) port map( rst => rst, clk => clk, @@ -261,6 +265,7 @@ begin --scantest testrst => ahbmi.testrst, testen => ahbmi.testen, + testoen => ahbmi.testoen, edcladdr => ethi.edcladdr, edclsepahb => ethi.edclsepahb, edcldisable => ethi.edcldisable, diff --git a/lib/gaisler/greth/greth_gbit.vhd b/lib/gaisler/greth/greth_gbit.vhd index dbe25a3b..4b681537 100644 --- a/lib/gaisler/greth/greth_gbit.vhd +++ b/lib/gaisler/greth/greth_gbit.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -67,7 +67,8 @@ entity greth_gbit is mdint_pol : integer range 0 to 1 := 0; enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1); port( rst : in std_ulogic; clk : in std_ulogic; @@ -163,7 +164,8 @@ begin enable_mdint => enable_mdint, multicast => multicast, edclsepahbg => 0, - ramdebug => ramdebug) + ramdebug => ramdebug, + mdiohold => mdiohold) port map( rst => rst, clk => clk, @@ -253,6 +255,7 @@ begin --scantest testrst => ahbmi.testrst, testen => ahbmi.testen, + testoen => ahbmi.testoen, gbit => etho.gbit, speed => etho.speed, --cfg @@ -280,47 +283,47 @@ begin ------------------------------------------------------------------------------- nft : if ft = 0 generate tx_fifo0 : syncram_2p generic map(tech => memtech, abits => fabits, - dbits => 32, sepclk => 0) + dbits => 32, sepclk => 0, testen => scanen) port map(clk, txrenable, txraddress(fabits-1 downto 0), txrdata, clk, - txwrite, txwaddress(fabits-1 downto 0), txwdata); + txwrite, txwaddress(fabits-1 downto 0), txwdata, ahbmi.testin); rx_fifo0 : syncram_2p generic map(tech => memtech, abits => fabits, - dbits => 32, sepclk => 0) + dbits => 32, sepclk => 0, testen => scanen) port map(clk, rxrenable, rxraddress(fabits-1 downto 0), rxrdata, clk, - rxwrite, rxwaddress(fabits-1 downto 0), rxwdata); + rxwrite, rxwaddress(fabits-1 downto 0), rxwdata, ahbmi.testin); end generate; ft1 : if ft /= 0 generate tx_fifo0 : syncram_2pft generic map(tech => memtech, abits => fabits, - dbits => 32, sepclk => 0, ft => ft) + dbits => 32, sepclk => 0, ft => ft, testen => scanen) port map(clk, txrenable, txraddress(fabits-1 downto 0), txrdata, clk, - txwrite, txwaddress(fabits-1 downto 0), txwdata); + txwrite, txwaddress(fabits-1 downto 0), txwdata, open, ahbmi.testin); rx_fifo0 : syncram_2pft generic map(tech => memtech, abits => fabits, - dbits => 32, sepclk => 0, ft => ft) + dbits => 32, sepclk => 0, ft => ft, testen => scanen) port map(clk, rxrenable, rxraddress(fabits-1 downto 0), rxrdata, clk, - rxwrite, rxwaddress(fabits-1 downto 0), rxwdata); + rxwrite, rxwaddress(fabits-1 downto 0), rxwdata, open, ahbmi.testin); end generate; ------------------------------------------------------------------------------- -- EDCL buffer ram ------------------------------------------------------------ ------------------------------------------------------------------------------- edclramnft : if (edcl /= 0) and (edclft = 0) generate - r0 : syncram_2p generic map (memtech, eabits, 16) port map ( + r0 : syncram_2p generic map (memtech, eabits, 16, 0, 0, scanen) port map ( clk, erenable, eraddress(eabits-1 downto 0), erdata(31 downto 16), clk, - ewritem, ewaddressm(eabits-1 downto 0), ewdata(31 downto 16)); - r1 : syncram_2p generic map (memtech, eabits, 16) port map ( + ewritem, ewaddressm(eabits-1 downto 0), ewdata(31 downto 16), ahbmi.testin); + r1 : syncram_2p generic map (memtech, eabits, 16, 0, 0, scanen) port map ( clk, erenable, eraddress(eabits-1 downto 0), erdata(15 downto 0), clk, - ewritel, ewaddressl(eabits-1 downto 0), ewdata(15 downto 0)); + ewritel, ewaddressl(eabits-1 downto 0), ewdata(15 downto 0), ahbmi.testin); end generate; edclramft1 : if (edcl /= 0) and (edclft /= 0) generate - r0 : syncram_2pft generic map (memtech, eabits, 16, 0, 0, edclft) port map ( + r0 : syncram_2pft generic map (memtech, eabits, 16, 0, 0, edclft, scanen) port map ( clk, erenable, eraddress(eabits-1 downto 0), erdata(31 downto 16), clk, - ewritem, ewaddressm(eabits-1 downto 0), ewdata(31 downto 16)); - r1 : syncram_2pft generic map (memtech, eabits, 16, 0, 0, edclft) port map ( + ewritem, ewaddressm(eabits-1 downto 0), ewdata(31 downto 16), open, ahbmi.testin); + r1 : syncram_2pft generic map (memtech, eabits, 16, 0, 0, edclft, scanen) port map ( clk, erenable, eraddress(eabits-1 downto 0), erdata(15 downto 0), clk, - ewritel, ewaddressl(eabits-1 downto 0), ewdata(15 downto 0)); + ewritel, ewaddressl(eabits-1 downto 0), ewdata(15 downto 0), open, ahbmi.testin); end generate; -- pragma translate_off diff --git a/lib/gaisler/greth/greth_gbit_mb.vhd b/lib/gaisler/greth/greth_gbit_mb.vhd index 07ecaacd..4b697863 100644 --- a/lib/gaisler/greth/greth_gbit_mb.vhd +++ b/lib/gaisler/greth/greth_gbit_mb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -69,7 +69,8 @@ entity greth_gbit_mb is enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; edclsepahb : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1); port( rst : in std_ulogic; clk : in std_ulogic; @@ -166,7 +167,8 @@ begin enable_mdint => enable_mdint, multicast => multicast, edclsepahbg => edclsepahb, - ramdebug => ramdebug) + ramdebug => ramdebug, + mdiohold => mdiohold) port map( rst => rst, clk => clk, @@ -256,6 +258,7 @@ begin --scantest testrst => ahbmi.testrst, testen => ahbmi.testen, + testoen => ahbmi.testoen, --cfg edcladdr => ethi.edcladdr, edclsepahb => ethi.edclsepahb, @@ -290,47 +293,47 @@ begin ------------------------------------------------------------------------------- nft : if ft = 0 generate tx_fifo0 : syncram_2p generic map(tech => memtech, abits => fabits, - dbits => 32, sepclk => 0) + dbits => 32, sepclk => 0, testen => scanen) port map(clk, txrenable, txraddress(fabits-1 downto 0), txrdata, clk, - txwrite, txwaddress(fabits-1 downto 0), txwdata); + txwrite, txwaddress(fabits-1 downto 0), txwdata, ahbmi.testin); rx_fifo0 : syncram_2p generic map(tech => memtech, abits => fabits, - dbits => 32, sepclk => 0) + dbits => 32, sepclk => 0, testen => scanen) port map(clk, rxrenable, rxraddress(fabits-1 downto 0), rxrdata, clk, - rxwrite, rxwaddress(fabits-1 downto 0), rxwdata); + rxwrite, rxwaddress(fabits-1 downto 0), rxwdata, ahbmi.testin); end generate; ft1 : if ft /= 0 generate tx_fifo0 : syncram_2pft generic map(tech => memtech, abits => fabits, - dbits => 32, sepclk => 0, ft => ft) + dbits => 32, sepclk => 0, ft => ft, testen => scanen) port map(clk, txrenable, txraddress(fabits-1 downto 0), txrdata, clk, - txwrite, txwaddress(fabits-1 downto 0), txwdata); + txwrite, txwaddress(fabits-1 downto 0), txwdata, open, ahbmi.testin); rx_fifo0 : syncram_2pft generic map(tech => memtech, abits => fabits, - dbits => 32, sepclk => 0, ft => ft) + dbits => 32, sepclk => 0, ft => ft, testen => scanen) port map(clk, rxrenable, rxraddress(fabits-1 downto 0), rxrdata, clk, - rxwrite, rxwaddress(fabits-1 downto 0), rxwdata); + rxwrite, rxwaddress(fabits-1 downto 0), rxwdata, open, ahbmi.testin); end generate; ------------------------------------------------------------------------------- -- EDCL buffer ram ------------------------------------------------------------ ------------------------------------------------------------------------------- edclramnft : if (edcl /= 0) and (edclft = 0) generate - r0 : syncram_2p generic map (memtech, eabits, 16) port map ( + r0 : syncram_2p generic map (memtech, eabits, 16, 0, 0, scanen) port map ( clk, erenable, eraddress(eabits-1 downto 0), erdata(31 downto 16), clk, - ewritem, ewaddressm(eabits-1 downto 0), ewdata(31 downto 16)); - r1 : syncram_2p generic map (memtech, eabits, 16) port map ( + ewritem, ewaddressm(eabits-1 downto 0), ewdata(31 downto 16), ahbmi.testin); + r1 : syncram_2p generic map (memtech, eabits, 16, 0, 0, scanen) port map ( clk, erenable, eraddress(eabits-1 downto 0), erdata(15 downto 0), clk, - ewritel, ewaddressl(eabits-1 downto 0), ewdata(15 downto 0)); + ewritel, ewaddressl(eabits-1 downto 0), ewdata(15 downto 0), ahbmi.testin); end generate; edclramft1 : if (edcl /= 0) and (edclft /= 0) generate - r0 : syncram_2pft generic map (memtech, eabits, 16, 0, 0, edclft) port map ( + r0 : syncram_2pft generic map (memtech, eabits, 16, 0, 0, edclft, scanen) port map ( clk, erenable, eraddress(eabits-1 downto 0), erdata(31 downto 16), clk, - ewritem, ewaddressm(eabits-1 downto 0), ewdata(31 downto 16)); - r1 : syncram_2pft generic map (memtech, eabits, 16, 0, 0, edclft) port map ( + ewritem, ewaddressm(eabits-1 downto 0), ewdata(31 downto 16), open, ahbmi.testin); + r1 : syncram_2pft generic map (memtech, eabits, 16, 0, 0, edclft, scanen) port map ( clk, erenable, eraddress(eabits-1 downto 0), erdata(15 downto 0), clk, - ewritel, ewaddressl(eabits-1 downto 0), ewdata(15 downto 0)); + ewritel, ewaddressl(eabits-1 downto 0), ewdata(15 downto 0), open, ahbmi.testin); end generate; -- pragma translate_off diff --git a/lib/gaisler/greth/greth_mb.vhd b/lib/gaisler/greth/greth_mb.vhd index 69e99e83..a2a7821f 100644 --- a/lib/gaisler/greth/greth_mb.vhd +++ b/lib/gaisler/greth/greth_mb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -70,7 +70,9 @@ entity greth_mb is enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; edclsepahb : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1; + maxsize : integer); port( rst : in std_ulogic; clk : in std_ulogic; @@ -175,7 +177,9 @@ begin enable_mdint => enable_mdint, multicast => multicast, edclsepahbg => edclsepahb, - ramdebug => ramdebug) + ramdebug => ramdebug, + mdiohold => mdiohold, + maxsize => maxsize) port map( rst => rst, clk => clk, @@ -265,6 +269,7 @@ begin --scantest testrst => ahbmi.testrst, testen => ahbmi.testen, + testoen => ahbmi.testoen, edcladdr => ethi.edcladdr, edclsepahb => ethi.edclsepahb, edcldisable => ethi.edcldisable); diff --git a/lib/gaisler/greth/grethm.vhd b/lib/gaisler/greth/grethm.vhd index 0fd9340e..6551bb29 100644 --- a/lib/gaisler/greth/grethm.vhd +++ b/lib/gaisler/greth/grethm.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -66,7 +66,10 @@ entity grethm is mdint_pol : integer range 0 to 1 := 0; enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1; + maxsize : integer := 1500 + ); port( rst : in std_ulogic; clk : in std_ulogic; @@ -114,7 +117,10 @@ begin mdint_pol => mdint_pol, enable_mdint => enable_mdint, multicast => multicast, - ramdebug => ramdebug) + ramdebug => ramdebug, + mdiohold => mdiohold, + maxsize => maxsize + ) port map ( rst => rst, clk => clk, @@ -157,7 +163,8 @@ begin mdint_pol => mdint_pol, enable_mdint => enable_mdint, multicast => multicast, - ramdebug => ramdebug) + ramdebug => ramdebug, + mdiohold => mdiohold) port map ( rst => rst, clk => clk, diff --git a/designs/leon3-gr-xc6s/rgmii.vhd b/lib/gaisler/greth/rgmii.vhd similarity index 67% rename from designs/leon3-gr-xc6s/rgmii.vhd rename to lib/gaisler/greth/rgmii.vhd index 7a12cf66..6dcbd195 100644 --- a/designs/leon3-gr-xc6s/rgmii.vhd +++ b/lib/gaisler/greth/rgmii.vhd @@ -6,18 +6,11 @@ use gaisler.net.all; library grlib; use grlib.stdlib.all; --- pragma translate_off -library unisim; -use unisim.BUFG; -use unisim.DCM; --- pragma translate_on - library techmap; use techmap.gencomp.all; use techmap.allclkgen.all; entity rgmii is - generic ( tech : integer := 0; gmii : integer := 0; @@ -26,51 +19,47 @@ entity rgmii is port ( rstn : in std_ulogic; clk50 : in std_ulogic; - gmiii : out eth_in_type; - gmiio : in eth_out_type; - rgmiii : in eth_in_type; - rgmiio : out eth_out_type + clk125 : in std_ulogic; + gmiii : out eth_in_type; + gmiio : in eth_out_type; + rgmiii : in eth_in_type; + rgmiio : out eth_out_type ); - end ; architecture rtl of rgmii is - component BUFG port (O : out std_logic; I : in std_logic); end component; - - component FDDRRSE - generic ( - INIT : bit := '0' - ); - port ( - Q : out std_ulogic; - C0 : in std_ulogic; - C1 : in std_ulogic; - CE : in std_ulogic; - D0 : in std_ulogic; - D1 : in std_ulogic; - R : in std_ulogic; - S : in std_ulogic - ); - end component; - attribute keep : boolean; attribute syn_keep : boolean; attribute syn_preserve : boolean; - signal vcc, gnd : std_ulogic; signal tx_en, tx_ctlp, tx_ctl : std_ulogic; signal txd, txd1 : std_logic_vector(7 downto 0); signal rxd1, rxd2, rxd3, rxd4 : std_logic_vector(7 downto 0); signal rx_clk, nrx_clk : std_ulogic; signal rx_ctlp, rx_ctln : std_logic_vector(1 to 4); - signal clk25, clk25i, clk125i, clk2_5i : std_ulogic; + signal clk25, clk25i, clk25ni, clk125i, clk2_5i, clk2_5ni : std_ulogic; signal txp, txn, tx_clk_ddr, tx_clk, tx_clki, ntx_clk : std_ulogic; signal cnt2_5 : std_logic_vector(3 downto 0); + attribute syn_preserve of tx_clk : signal is true; attribute syn_keep of tx_clk : signal is true; attribute keep of tx_clk : signal is true; + attribute syn_preserve of clk25ni : signal is true; + attribute syn_keep of clk25ni : signal is true; + attribute keep of clk25ni : signal is true; + attribute syn_preserve of clk2_5ni : signal is true; + attribute syn_keep of clk2_5ni : signal is true; + attribute keep of clk2_5ni : signal is true; + attribute syn_preserve of clk125i : signal is true; + attribute syn_keep of clk125i : signal is true; + attribute keep of clk125i : signal is true; + + attribute clock_signal : string; + attribute clock_signal of clk25ni : signal is "yes"; + attribute clock_signal of clk2_5ni : signal is "yes"; + attribute clock_signal of tx_clki : signal is "yes"; begin -- rtl @@ -78,39 +67,39 @@ begin -- rtl txp <= '1'; txn <= '0'; g1 : if (extclk = 0) and (gmii = 1) generate - x0 : clkmul_virtex2 generic map (5, 2) port map (rstn, clk50, clk125i); + clk125i <= clk125; end generate; g2 : if not ((extclk = 0) and (gmii = 1)) generate clk125i <= rgmiii.gtx_clk; end generate; tx_clki <= clk125i when (gmii = 1) and (gmiio.gbit = '1') else - clk25i when gmiio.speed = '1' else clk2_5i; + clk25ni when gmiio.speed = '1' else clk2_5ni; - bufg02 : BUFG port map (I => tx_clki, O => tx_clk); - + -- Generate transmit clocks. + b1 : techbuf generic map (2, tech) port map (tx_clki, tx_clk); ntx_clk <= not tx_clk; - gmiii.gtx_clk <= tx_clk; + + gmiii.gtx_clk <= tx_clk; gmiii.tx_clk <= tx_clk; + gmiii.mdint <= rgmiii.mdint; gmiii.mdio_i <= rgmiii.mdio_i; rgmiio.mdio_o <= gmiio.mdio_o; rgmiio.mdio_oe <= gmiio.mdio_oe; rgmiio.mdc <= gmiio.mdc; --- TX path - rgmii_txd : for i in 0 to 3 generate - ddr_oreg0 : FDDRRSE - port map (q => rgmiio.txd(i), c0 => tx_clk, c1 => ntx_clk, ce => vcc, - d0 => txd(i), d1 => txd1(i+4), r => gnd, s => gnd); + ddr_oreg0 : ddr_oreg generic map (tech) + port map (q => rgmiio.txd(i), c1 => tx_clk, c2 => ntx_clk, ce => vcc, + d1 => txd(i), d2 => txd1(i+4), r => gnd, s => gnd); end generate; - rgmii_tx_ctl : FDDRRSE - port map (q => rgmiio.tx_en, c0 => tx_clk, c1 => ntx_clk, ce => vcc, - d0 => tx_en, d1 => tx_ctl, r => gnd, s => gnd); - rgmii_tx_clk : FDDRRSE - port map (q =>tx_clk_ddr, c0 => tx_clk, c1 => ntx_clk, ce => vcc, - d0 => txp, d1 => txn, r => gnd, s => gnd); + rgmii_tx_ctl : ddr_oreg generic map (tech) + port map (q => rgmiio.tx_en, c1 => tx_clk, c2 => ntx_clk, ce => vcc, + d1 => tx_en, d2 => tx_ctl, r => gnd, s => gnd); + rgmii_tx_clk : ddr_oreg generic map (tech) + port map (q =>tx_clk_ddr, c1 => tx_clk, c2 => ntx_clk, ce => vcc, + d1 => txp, d2 => txn, r => gnd, s => gnd); rgmiio.tx_er <= tx_clk_ddr; rgmiio.reset <= '0'; @@ -138,13 +127,15 @@ begin -- rtl process (clk50) begin -- process if rising_edge(clk50) then - clk25i <= not clk25i; + clk25i <= not clk25i; + clk25ni <= not clk25i; if cnt2_5 = "1001" then cnt2_5 <= "0000"; clk2_5i <= not clk2_5i; else cnt2_5 <= cnt2_5 + 1; end if; + clk2_5ni <= not clk2_5i; if rstn = '0' then clk25i <= '0'; clk2_5i <= '0'; cnt2_5 <= "0000"; end if; end if; end process; - + -- RX path rx_clk <= rgmiii.rx_clk; @@ -165,11 +156,11 @@ begin -- rtl rgmii_rxd : for i in 0 to 3 generate ddr_ireg0 : ddr_ireg generic map (tech) port map (q1 => rxd1(i), q2 => rxd1(i+4), c1 => rx_clk, c2 => nrx_clk, - ce => vcc, d => rgmiii.rxd(i), r => gnd, s => gnd); + ce => vcc, d => rgmiii.rxd(i), r => gnd, s => gnd); end generate; ddr_ireg0 : ddr_ireg generic map (tech) port map (q1 => rx_ctlp(1), q2 => rx_ctln(1), c1 => rx_clk, c2 => nrx_clk, - ce => vcc, d => rgmiii.rx_dv, r => gnd, s => gnd); + ce => vcc, d => rgmiii.rx_dv, r => gnd, s => gnd); process (rx_clk) begin diff --git a/lib/gaisler/greth/vhdlsyn.txt b/lib/gaisler/greth/vhdlsyn.txt index 13da31fd..14c81cc4 100644 --- a/lib/gaisler/greth/vhdlsyn.txt +++ b/lib/gaisler/greth/vhdlsyn.txt @@ -1 +1 @@ -ethernet_mac.vhd greth.vhd greth_mb.vhd greth_gbit.vhd greth_gbit_mb.vhd grethm.vhd +ethernet_mac.vhd greth.vhd greth_mb.vhd greth_gbit.vhd greth_gbit_mb.vhd grethm.vhd rgmii.vhd diff --git a/lib/gaisler/i2c/i2c.vhd b/lib/gaisler/i2c/i2c.vhd index 4471af28..696deb6f 100644 --- a/lib/gaisler/i2c/i2c.vhd +++ b/lib/gaisler/i2c/i2c.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/i2c/i2c2ahb.vhd b/lib/gaisler/i2c/i2c2ahb.vhd index 74db463b..450c32d6 100644 --- a/lib/gaisler/i2c/i2c2ahb.vhd +++ b/lib/gaisler/i2c/i2c2ahb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/i2c/i2c2ahb_apb.vhd b/lib/gaisler/i2c/i2c2ahb_apb.vhd index 486a73dc..f6f6eff3 100644 --- a/lib/gaisler/i2c/i2c2ahb_apb.vhd +++ b/lib/gaisler/i2c/i2c2ahb_apb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/i2c/i2c2ahb_apb_gen.vhd b/lib/gaisler/i2c/i2c2ahb_apb_gen.vhd index 7fd4125f..4b8ca93d 100644 --- a/lib/gaisler/i2c/i2c2ahb_apb_gen.vhd +++ b/lib/gaisler/i2c/i2c2ahb_apb_gen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/i2c/i2c2ahb_gen.vhd b/lib/gaisler/i2c/i2c2ahb_gen.vhd index 386665fc..74a6fe8e 100644 --- a/lib/gaisler/i2c/i2c2ahb_gen.vhd +++ b/lib/gaisler/i2c/i2c2ahb_gen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/i2c/i2c2ahbx.vhd b/lib/gaisler/i2c/i2c2ahbx.vhd index 2f1a8059..e2c0ecb9 100644 --- a/lib/gaisler/i2c/i2c2ahbx.vhd +++ b/lib/gaisler/i2c/i2c2ahbx.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/i2c/i2cmst.vhd b/lib/gaisler/i2c/i2cmst.vhd index f526b861..425d2471 100644 --- a/lib/gaisler/i2c/i2cmst.vhd +++ b/lib/gaisler/i2c/i2cmst.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/i2c/i2cmst_gen.vhd b/lib/gaisler/i2c/i2cmst_gen.vhd index ad5d9fe6..05633c87 100644 --- a/lib/gaisler/i2c/i2cmst_gen.vhd +++ b/lib/gaisler/i2c/i2cmst_gen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/i2c/i2cslv.vhd b/lib/gaisler/i2c/i2cslv.vhd index 2e8779aa..8c128b43 100644 --- a/lib/gaisler/i2c/i2cslv.vhd +++ b/lib/gaisler/i2c/i2cslv.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/irqmp/irqamp.vhd b/lib/gaisler/irqmp/irqamp.vhd deleted file mode 100644 index c897f6e0..00000000 --- a/lib/gaisler/irqmp/irqamp.vhd +++ /dev/null @@ -1,724 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: irqamp --- File: irqamp.vhd --- Author: Jiri Gaisler - Gaisler Research --- Modified: AMP extension: Jan Andersson - Aeroflex Gaisler --- Contact: support@gaisler.com --- Description: Multi-processor APB interrupt controller. Implements a --- two-level interrupt controller for 15 interrupts. --- Also has extended support for Asymmetric Multi-Processing ------------------------------------------------------------------------------- --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_IRQMP --- VERSION: 3 --- APB: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: IO_AREA -------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; -library gaisler; -use gaisler.leon3.all; - -entity irqamp is - generic ( - pindex : integer := 0; - paddr : integer := 0; - pmask : integer := 16#fff#; - ncpu : integer := 1; - eirq : integer := 0; - nctrl : integer range 1 to 16 := 1; - tstamp : integer range 0 to 16 := 0; - wdogen : integer range 0 to 1 := 0; - nwdog : integer range 1 to 16 := 1; - dynrstaddr : integer range 0 to 1 := 0; - rstaddr : integer range 0 to 16#fffff# := 0; - extrun : integer range 0 to 1 := 0 - ); - port ( - rst : in std_ulogic; - clk : in std_ulogic; - apbi : in apb_slv_in_type; - apbo : out apb_slv_out_type; - irqi : in irq_out_vector(0 to ncpu-1); - irqo : out irq_in_vector(0 to ncpu-1); - wdog : in std_logic_vector(nwdog-1 downto 0) := (others => '0'); - cpurun : in std_logic_vector(ncpu-1 downto 0) := (others => '0') - ); -end; - -architecture rtl of irqamp is - -constant REVISION : integer := 3; - -constant pconfig : apb_config_type := ( - 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_IRQMP, 0, REVISION, 0), - 1 => apb_iobar(paddr, pmask)); - -type mask_type is array (0 to ncpu-1) of std_logic_vector(15 downto 1); -type mask2_type is array (0 to ncpu-1) of std_logic_vector(15 downto 0); -type irl_type is array (0 to ncpu-1) of std_logic_vector(3 downto 0); -type irl2_type is array (0 to ncpu-1) of std_logic_vector(4 downto 0); -type ilevel_type is array(0 to nctrl-1) of std_logic_vector(15 downto 1); -type ipend_type is array(0 to nctrl-1) of std_logic_vector(15 downto 1); -type ipend2_type is array(0 to nctrl-1) of std_logic_vector(15 downto 0); -type ibroadcast_type is array (0 to nctrl-1) of std_logic_vector(15 downto 1); - -type reg_type is record - imask : mask_type; - ilevel : ilevel_type; - ipend : ipend_type; - iforce : mask_type; - ibroadcast : ibroadcast_type; - irl : irl_type; - cpurst : std_logic_vector(ncpu-1 downto 0); -end record; - -type ereg_type is record - imask : mask2_type; - ipend : ipend2_type; - irl : irl2_type; -end record; - -type icsel_type is array (0 to ncpu-1) of std_logic_vector(log2x(nctrl)-1 downto 0); -type icsel_int_type is array (0 to ncpu-1) of integer; - -type areg_type is record - icf : std_ulogic; - lock : std_ulogic; - icsel : icsel_type; -end record; - -constant TNUM : integer := log2x(2**tstamp); -constant SBITS : integer := 32; -- Number of bits in stamp - -type tsisel_type is array (0 to TNUM-1) of std_logic_vector(4 downto 0); - -type tstamp_type is array (0 to TNUM-1) of std_logic_vector(SBITS-1 downto 0); - -type tsreg_type is record - s1 : std_logic_vector(0 to TNUM-1); - s2 : std_logic_vector(0 to TNUM-1); - ks : std_logic_vector(0 to TNUM-1); - sel : tsisel_type; - stmp1 : tstamp_type; - stmp2 : tstamp_type; -end record; - -type tsreg_array_type is array (0 to nctrl-1) of tsreg_type; - -type treg_type is record - cnt : std_logic_vector(SBITS-1 downto 0); - tsreg : tsreg_array_type; -end record; - -type wirq_array_type is array (0 to nctrl-1) of std_logic_vector(3 downto 0); -type wmsk_array_type is array (0 to nctrl-1) of std_logic_vector(nwdog-1 downto 0); - -type wreg_type is record - irq : wirq_array_type; - msk : wmsk_array_type; -end record; - -type rstvec_array_type is array (0 to ncpu-1) of std_logic_vector(31 downto 12); - -constant HRC : integer := 7; -- # of reset cycles -constant LERC : integer := 1; -- extra rst clocks within processor - -type rreg_type is record - rstvec : rstvec_array_type; - hrdrst : std_logic_vector(ncpu-1 downto 0); - dorst : std_logic_vector(HRC downto 0); - run : std_logic_vector(ncpu-1 downto 0); -end record; - -function prioritize(b : std_logic_vector(15 downto 0)) return std_logic_vector is -variable a : std_logic_vector(15 downto 0); -variable irl : std_logic_vector(3 downto 0); -variable level : integer range 0 to 15; -begin - irl := "0000"; level := 0; a := b; - for i in 15 downto 0 loop - level := i; - if a(i) = '1' then exit; end if; - end loop; - irl := conv_std_logic_vector(level, 4); - return(irl); -end; - -signal r, rin : reg_type; -signal r2, r2in : ereg_type; -signal r3, r3in : areg_type; -signal r4, r4in : treg_type; -signal r5, r5in : wreg_type; -signal r6, r6in : rreg_type; - -begin - - comb : process(rst, r, r2, r3, r4, r5, r6, apbi, irqi, wdog, cpurun) - variable v : reg_type; - variable temp : mask_type; - variable prdata : std_logic_vector(31 downto 0); - variable tmpirq : std_logic_vector(15 downto 0); - variable tmpvar : std_logic_vector(15 downto 1); - variable cpurunx : std_logic_vector(ncpu-1 downto 0); - variable v2 : ereg_type; - variable irl2 : std_logic_vector(3 downto 0); - variable ipend2 : std_logic_vector(ncpu-1 downto 0); - variable temp2 : mask2_type; - variable neirq : integer; - variable v3 : areg_type; - variable ctrl : icsel_int_type; - variable apbcsel : integer range 0 to nctrl-1; - variable v4 : treg_type; - variable tinc : std_ulogic; - variable v5 : wreg_type; - variable wa : std_ulogic; - variable v6 : rreg_type; - variable hrdrst : std_logic_vector(ncpu-1 downto 0); - variable cpuidle : std_logic_vector(ncpu-1 downto 0); - - begin - - v := r; v.cpurst := (others => '0'); - if extrun = 0 then cpurunx := (others => '0'); cpurunx(0) := '1'; - else cpurunx := cpurun; end if; - v2 := r2; v3 := r3; v4 := r4; v5 := r5; v6 := r6; - tmpvar := (others => '0'); ipend2 := (others => '0'); - for i in 0 to ncpu-1 loop - if nctrl = 1 then ctrl(i) := 0; - else ctrl(i) := conv_integer(r3.icsel(i)); end if; - end loop; - if nctrl = 1 then apbcsel := 0; - else apbcsel := conv_integer(apbi.paddr(12+log2x(nctrl)-1 downto 12)); end if; - tinc := '0'; wa := '0'; hrdrst := (others => '0'); - for i in 0 to ncpu-1 loop cpuidle(i) := irqi(i).idle; end loop; - --- prioritize interrupts - - if eirq /= 0 then - for i in 0 to ncpu-1 loop - temp2(i) := r2.ipend(ctrl(i)) and r2.imask(i); - ipend2(i) := orv(temp2(i)); - end loop; - end if; - - for i in 0 to ncpu-1 loop - temp(i) := ((r.iforce(i) or r.ipend(ctrl(i))) and r.imask(i)); - if eirq /= 0 then temp(i)(eirq) := temp(i)(eirq) or ipend2(i); end if; - v.irl(i) := prioritize((temp(i) and r.ilevel(ctrl(i))) & '0'); - if v.irl(i) = "0000" then - if eirq /= 0 then temp(i)(eirq) := temp(i)(eirq) or ipend2(i); end if; - v.irl(i) := prioritize((temp(i) and not r.ilevel(ctrl(i))) & '0'); - end if; - end loop; - --- register read - - prdata := (others => '0'); - case apbi.paddr(7 downto 5) is - when "000" => - case apbi.paddr(4 downto 2) is - when "000" => prdata(15 downto 1) := r.ilevel(apbcsel); - when "001" => - prdata(15 downto 1) := r.ipend(apbcsel); - if eirq /= 0 then prdata(31 downto 16) := r2.ipend(apbcsel); end if; - when "010" => prdata(15 downto 1) := r.iforce(0); - when "011" => - when "100" | "101" => - prdata(31 downto 28) := conv_std_logic_vector(ncpu-1, 4); - prdata(19 downto 16) := conv_std_logic_vector(eirq, 4); - for i in 0 to ncpu -1 loop prdata(i) := irqi(i).pwd; end loop; - if ncpu > 1 then - prdata(27) := '1'; - case apbi.paddr(4 downto 2) is - when "101" => - prdata := (others => '0'); - prdata(15 downto 1) := r.ibroadcast(apbcsel); - when others => - end case; - end if; - when "111" => - if wdogen /= 0 then - prdata(31 downto 27) := conv_std_logic_vector(nwdog, 5); - prdata(19 downto 16) := r5.irq(apbcsel); - prdata(nwdog-1 downto 0) := r5.msk(apbcsel); - end if; - when others => - end case; - when "001" => - if nctrl /= 1 then - case apbi.paddr(4 downto 2) is - when "000" => -- 0x20 - prdata(31 downto 28) := conv_std_logic_vector(nctrl-1, 4); - prdata(1) := r3.icf; - prdata(0) := r3.lock; - when "001" => -- 0x24 - for i in 0 to ncpu-1 loop - prdata(28+log2x(nctrl)-1-4*i downto 28-4*i) := r3.icsel(i); - end loop; - when "010" => -- 0x28 - if ncpu > 8 then - for i in 8 to ncpu-1 loop - prdata(28+log2x(nctrl)-1-4*(i-8) downto 28-4*(i-8)) := r3.icsel(i); - end loop; - end if; - when others => null; - end case; - end if; - when "010" | "011" => - for i in 0 to ncpu-1 loop - if i = conv_integer( apbi.paddr(5 downto 2)) then - prdata(15 downto 1) := r.imask(i); - if eirq /= 0 then prdata(31 downto 16) := r2.imask(i); end if; - end if; - end loop; - when "100" | "101" => - for i in 0 to ncpu-1 loop - if i = conv_integer( apbi.paddr(5 downto 2)) then - prdata(15 downto 1) := r.iforce(i); - end if; - end loop; - when "110" | "111" => - if eirq /= 0 then - for i in 0 to ncpu-1 loop - if i = conv_integer( apbi.paddr(5 downto 2)) then - prdata(4 downto 0) := r2.irl(i); - end if; - end loop; - end if; - when others => - end case; - --- register write - - if (((apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1') and - (tstamp = 0 or apbi.paddr(8) = '0') and (dynrstaddr = 0 or apbi.paddr(9) = '0')) then - case apbi.paddr(7 downto 5) is - when "000" => - case apbi.paddr(4 downto 2) is - when "000" => v.ilevel(apbcsel) := apbi.pwdata(15 downto 1); - when "001" => v.ipend(apbcsel) := apbi.pwdata(15 downto 1); - if eirq /= 0 then v2.ipend(apbcsel) := apbi.pwdata(31 downto 16); end if; - when "010" => - if nctrl = 1 or apbcsel = ctrl(0) then v.iforce(0) := apbi.pwdata(15 downto 1); end if; - when "011" => v.ipend(apbcsel) := r.ipend(apbcsel) and not apbi.pwdata(15 downto 1); - if eirq /= 0 then v2.ipend(apbcsel) := r2.ipend(apbcsel) and not apbi.pwdata(31 downto 16); end if; - when "100" => - for i in 0 to ncpu -1 loop - if (apbcsel = ctrl(i)) then - v.cpurst(i) := apbi.pwdata(i); - end if; - end loop; - when "111" => - if wdogen /= 0 then - v5.irq(apbcsel) := apbi.pwdata(19 downto 16); - v5.msk(apbcsel) := apbi.pwdata(nwdog-1 downto 0); - end if; - when others => - if ncpu > 1 then - case apbi.paddr(4 downto 2) is - when "101" => - v.ibroadcast(apbcsel) := apbi.pwdata(15 downto 1); - when others => - end case; - end if; - end case; - when "001" => - if nctrl /= 1 then - case apbi.paddr(4 downto 2) is - when "000" => -- 0x20 - v3.icf := apbi.pwdata(1); - v3.lock := apbi.pwdata(0); - when "001" => -- 0x24 - if r3.lock = '0' then - for i in 0 to ncpu-1 loop - v3.icsel(i) := apbi.pwdata(28+log2x(nctrl)-1-4*i downto 28-4*i); - end loop; - end if; - when "010" => -- 0x28 - if ncpu > 8 then - if r3.lock = '0' then - for i in 8 to ncpu-1 loop - v3.icsel(i) := apbi.pwdata(28+log2x(nctrl)-1-4*(i-8) downto 28-4*(i-8)); - end loop; - end if; - end if; - when others => null; - end case; - end if; - when "010" | "011" => - for i in 0 to ncpu-1 loop - if (i = conv_integer( apbi.paddr(5 downto 2))) and (apbcsel = ctrl(i)) then - v.imask(i) := apbi.pwdata(15 downto 1); - if eirq /= 0 then v2.imask(i) := apbi.pwdata(31 downto 16); end if; - end if; - end loop; - when "100" | "101" => - for i in 0 to ncpu-1 loop - if (i = conv_integer( apbi.paddr(5 downto 2))) then - if (nctrl = 1 or apbcsel = ctrl(i) or r3.icf = '1') then - v.iforce(i) := r.iforce(i) or apbi.pwdata(15 downto 1); - end if; - if (nctrl = 1 or apbcsel = ctrl(i)) then - v.iforce(i) := v.iforce(i) and not apbi.pwdata(31 downto 17); - end if; - end if; - end loop; - when others => - end case; - end if; - --- interrupt timestamping - if tstamp /= 0 then - -- Counter - for i in 0 to nctrl-1 loop - for j in 0 to TNUM-1 loop - tinc := tinc or orv(r4.tsreg(i).sel(j)); - end loop; - end loop; - if tinc = '1' then - v4.cnt := r4.cnt + 1; - end if; - - -- Interrupt timestamp registers - if (((apbi.psel(pindex) and apbi.penable and apbi.paddr(8)) = '1') and - (dynrstaddr = 0 or apbi.paddr(9) = '0')) then - prdata := (others => '0'); - for i in 0 to TNUM-1 loop - if i = conv_integer(apbi.paddr(7 downto 4)) then - case apbi.paddr(3 downto 2) is - when "00" => prdata := r4.cnt; - when "01" => - prdata(31 downto 27) := conv_std_logic_vector(tstamp, 5); - prdata(26) := r4.tsreg(apbcsel).s1(i); - prdata(25) := r4.tsreg(apbcsel).s2(i); - prdata(5) := r4.tsreg(apbcsel).ks(i); - prdata(4 downto 0) := r4.tsreg(apbcsel).sel(i); - if apbi.pwrite = '1' then - if apbi.pwdata(26) = '1' then v4.tsreg(apbcsel).s1(i) := '0'; end if; - if apbi.pwdata(25) = '1' then v4.tsreg(apbcsel).s2(i) := '0'; end if; - v4.tsreg(apbcsel).ks(i) := apbi.pwdata(5); - v4.tsreg(apbcsel).sel(i) := apbi.pwdata(4 downto 0); - end if; - when "10" => prdata := r4.tsreg(apbcsel).stmp1(i); - when others => prdata := r4.tsreg(apbcsel).stmp2(i); - end case; - end if; - end loop; - end if; - - -- Timestamp assertions - for i in 1 to 31 loop - if i > NAHBIRQ-1 then - exit; - end if; - if i > 15 and eirq = 0 then - exit; - end if; - for j in 0 to nctrl-1 loop - for k in 0 to TNUM-1 loop - if i = conv_integer(r4.tsreg(j).sel(k)) then - if (apbi.pirq(i) and (r4.tsreg(j).ks(k) nand r4.tsreg(j).s1(k))) = '1' then - v4.tsreg(j).stmp1(k) := r4.cnt; - v4.tsreg(j).s1(k) := '1'; - if r4.tsreg(j).ks(k) = '0' then v4.tsreg(j).s2(k) := '0'; end if; - end if; - end if; - end loop; - end loop; - end loop; - - -- Timestamp interrupt acknowledge - for i in 0 to ncpu-1 loop - for j in 0 to TNUM-1 loop - if ((r4.tsreg(ctrl(i)).sel(j)(4) = '0' and r4.tsreg(ctrl(i)).sel(j)(3 downto 0) = irqi(i).irl) or - (eirq /= 0 and r4.tsreg(ctrl(i)).sel(j)(4) = '1' and eirq = conv_integer(irqi(i).irl) and - prioritize(temp2(i)) = r4.tsreg(ctrl(i)).sel(j)(3 downto 0))) then - if (irqi(i).intack and not r4.tsreg(ctrl(i)).s2(j)) = '1' then - v4.tsreg(ctrl(i)).stmp2(j) := r4.cnt; - v4.tsreg(ctrl(i)).s2(j) := '1'; - end if; - end if; - end loop; - end loop; - end if; - --- watchdog interrupts - if wdogen /= 0 then - for i in 0 to nctrl-1 loop - wa := '0'; - for j in 0 to nwdog-1 loop - wa := wa or (r5.msk(i)(j) and wdog(j)); - end loop; - for j in 1 to 15 loop - if j > NAHBIRQ-1 then - exit; - end if; - if j = conv_integer(r5.irq(i)) then - v.ipend(i)(j) := v.ipend(i)(j) or wa; - end if; - end loop; - end loop; - end if; - --- register new interrupts - - for i in 1 to 15 loop - if i > NAHBIRQ-1 then - exit; - end if; - if ncpu = 1 then - for j in 0 to nctrl-1 loop - v.ipend(j)(i) := v.ipend(j)(i) or apbi.pirq(i); - end loop; - else - for j in 0 to nctrl-1 loop - v.ipend(j)(i) := v.ipend(j)(i) or (apbi.pirq(i) and not r.ibroadcast(j)(i)); - end loop; - for j in 0 to ncpu-1 loop - tmpvar := v.iforce(j); - tmpvar(i) := tmpvar(i) or (apbi.pirq(i) and r.ibroadcast(ctrl(j))(i)); - v.iforce(j) := tmpvar; - end loop; - end if; - end loop; - - if eirq /= 0 then - for h in 0 to nctrl-1 loop - for i in 16 to 31 loop - if i > NAHBIRQ-1 then exit; end if; - v2.ipend(h)(i-16) := v2.ipend(h)(i-16) or apbi.pirq(i); - end loop; - end loop; - end if; - --- interrupt acknowledge - - for i in 0 to ncpu-1 loop - if irqi(i).intack = '1' then - tmpirq := decode(irqi(i).irl); - temp(i) := tmpirq(15 downto 1); - v.iforce(i) := v.iforce(i) and not temp(i); - v.ipend(ctrl(i)) := v.ipend(ctrl(i)) and not ((not r.iforce(i)) and temp(i)); - if eirq /= 0 then - if eirq = conv_integer(irqi(i).irl) then - v2.irl(i) := orv(temp2(i)) & prioritize(temp2(i)); - if v2.irl(i)(4) = '1' then - v2.ipend(ctrl(i))(conv_integer(v2.irl(i)(3 downto 0))) := '0'; - end if; - end if; - end if; - end if; - end loop; - --- dynamic reset addresses - - if dynrstaddr /= 0 then - if (apbi.psel(pindex) and apbi.penable and apbi.paddr(9)) = '1' then - prdata := (others => '0'); - if apbi.paddr(6) = '0' then - for i in 0 to ncpu-1 loop - if i = conv_integer(apbi.paddr(5 downto 2)) then - prdata(31 downto 12) := r6.rstvec(i); - if apbi.pwrite = '1' then - v6.rstvec(i) := apbi.pwdata(31 downto 12); - end if; - end if; - end loop; - else - prdata(ncpu-1 downto 0) := r6.hrdrst; - if (apbi.pwrite and not orv(r6.dorst)) = '1' then - v6.hrdrst := (apbi.pwdata(ncpu-1 downto 0) or - apbi.pwdata(ncpu-1+16 downto 16)); - v6.run := apbi.pwdata(ncpu-1 downto 0); - v6.dorst(0) := orv(v6.hrdrst); - end if; - end if; - end if; - if r6.dorst(0) = '1' then - v6.hrdrst := r6.hrdrst and cpuidle; - if orv(v6.hrdrst) = '1' then v6.dorst := (others => '1'); end if; - v6.dorst(0) := '0'; - elsif r6.dorst(HRC) = '1' then - for i in 0 to ncpu-1 loop - hrdrst(i) := r6.hrdrst(i) and r6.dorst(HRC-LERC); - -- cpurunx needs to be set initially for both cases, othwewise the - -- cpu may stay in pwd without clock when we have a clock gating - -- unit in the system. - if r6.hrdrst(i) = '1' then - cpurunx(i) := r6.dorst(HRC-LERC-1) or r6.run(i); - end if; - end loop; - v6.dorst := r6.dorst(HRC-1 downto 0) & '0'; - if r6.dorst(HRC-1) = '0' then - v6.hrdrst := (others => '0'); - end if; - end if; - end if; - --- reset - - if rst = '0' then - v.imask := (others => (others => '0')); - v.iforce := (others => (others => '0')); - v.ipend := (others => (others => '0')); - if ncpu > 1 then - v.ibroadcast := (others => (others => '0')); - end if; - v2.ipend := (others => (others => '0')); - v2.imask := (others => (others => '0')); - v2.irl := (others => (others => '0')); - v3.icf := '0'; - v3.lock := '0'; - v3.icsel := (others => (others => '0')); - if tstamp /= 0 then - v4.cnt := (others => '0'); - for i in 0 to (nctrl-1) loop - v4.tsreg(i).s1 := (others => '0'); - v4.tsreg(i).s2 := (others => '0'); - v4.tsreg(i).ks := (others => '0'); - v4.tsreg(i).sel := (others => (others => '0')); - v4.tsreg(i).stmp1 := (others => (others => '0')); - v4.tsreg(i).stmp2 := (others => (others => '0')); - end loop; - end if; - if wdogen /= 0 then - for i in 0 to (nctrl-1) loop - v5.msk(i) := (others => '0'); - end loop; - end if; - if dynrstaddr /= 0 then - for i in 0 to (ncpu-1) loop - v6.rstvec(i) := conv_std_logic_vector(rstaddr, 20); - end loop; - v6.hrdrst := (others => '0'); - v6.dorst := (others => '0'); - v6.run := (others => '0'); - end if; - end if; - - apbo.prdata <= prdata; - for i in 0 to ncpu-1 loop - irqo(i).irl <= r.irl(i); irqo(i).rst <= r.cpurst(i); - irqo(i).run <= cpurunx(i); - if dynrstaddr /= 0 then irqo(i).rstvec <= r6.rstvec(i); - else irqo(i).rstvec <= (others => '0'); end if; - if i = 0 then irqo(i).iact <= orv(r.irl(0)); - else irqo(i).iact <= '0'; end if; - irqo(i).index <= conv_std_logic_vector(i, 4); - irqo(i).hrdrst <= hrdrst(i); - end loop; - - rin <= v; r2in <= v2; r3in <= v3; r4in <= v4; r5in <= v5; r6in <= v6; - - end process; - - apbo.pirq <= (others => '0'); - apbo.pconfig <= pconfig; - apbo.pindex <= pindex; - - regs : process(clk) - begin if rising_edge(clk) then r <= rin; end if; end process; - - dor2regs : if eirq /= 0 generate - regs : process(clk) - begin if rising_edge(clk) then r2 <= r2in; end if; end process; - end generate; - nor2regs : if eirq = 0 generate --- r2 <= ((others => "0000000000000000"), "0000000000000000", (others => "00000")); - driveregs1: for i in 0 to (nctrl-1) generate - r2.ipend(i) <= (others => '0'); - end generate driveregs1; - driveregs2: for i in 0 to (ncpu-1) generate - r2.imask(i) <= (others => '0'); - r2.irl(i) <= (others => '0'); - end generate driveregs2; - end generate; - - dor3regs : if nctrl /= 1 generate - regs : process(clk) - begin if rising_edge(clk) then r3 <= r3in; end if; end process; - end generate; - nor3regs : if nctrl = 1 generate - r3.icf <= '0'; - r3.lock <= '0'; - driveregs: for i in 0 to (ncpu-1) generate - r3.icsel(i) <= (others => '0'); - end generate driveregs; - end generate; - - dor4regs : if tstamp /= 0 generate - regs : process(clk) - begin if rising_edge(clk) then r4 <= r4in; end if; end process; - end generate; - nor4regs : if tstamp = 0 generate - r4.cnt <= (others => '0'); - driveregs: for i in 0 to (nctrl-1) generate - r4.tsreg(i).s1 <= (others => '0'); - r4.tsreg(i).s2 <= (others => '0'); - r4.tsreg(i).ks <= (others => '0'); - r4.tsreg(i).sel <= (others => (others => '0')); - r4.tsreg(i).stmp1 <= (others => (others => '0')); - r4.tsreg(i).stmp2 <= (others => (others => '0')); - end generate driveregs; - end generate; - - dor5regs : if wdogen /= 0 generate - regs : process(clk) - begin if rising_edge(clk) then r5 <= r5in; end if; end process; - end generate; - nor5regs : if wdogen = 0 generate - driveregs: for i in 0 to (nctrl-1) generate - r5.irq(i) <= (others => '0'); - r5.msk(i) <= (others => '0'); - end generate driveregs; - end generate; - - dor6regs : if dynrstaddr /= 0 generate - regs : process(clk) - begin if rising_edge(clk) then r6 <= r6in; end if; end process; - end generate; - nor6regs : if dynrstaddr = 0 generate - driveregs: for i in 0 to (ncpu-1) generate - r6.rstvec(i) <= (others => '0'); - end generate driveregs; - r6.hrdrst <= (others => '0'); - r6.run <= (others => '0'); - r6.dorst <= (others => '0'); - end generate; - --- pragma translate_off - bootmsg : report_version - generic map ("irq(a)mp" & - ": Multi-processor Interrupt Controller rev " & tost(REVISION) & - ", #cpu " & tost(NCPU) & ", eirq " & tost(eirq) & - ", nctrl " & tost(nctrl) & ", tstamp " & tost(tstamp) & - ", wdog " & tost(wdogen*nwdog)); --- pragma translate_on - - -end; diff --git a/lib/gaisler/irqmp/irqamp2x.vhd b/lib/gaisler/irqmp/irqamp2x.vhd deleted file mode 100644 index 8c135cdc..00000000 --- a/lib/gaisler/irqmp/irqamp2x.vhd +++ /dev/null @@ -1,156 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: irqamp2x --- File: irqamp2x.vhd --- Author: Edvin Catovic - Gaisler Research --- Description: Multi-processor APB interrupt controller wrapper for use --- in multifrequency designs. ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; -library gaisler; -use gaisler.leon3.all; - -entity irqamp2x is - generic ( - pindex : integer := 0; - paddr : integer := 0; - pmask : integer := 16#fff#; - ncpu : integer := 1; - eirq : integer := 0; - nctrl : integer range 1 to 16 := 1; - tstamp : integer range 0 to 16 := 0; - wdogen : integer range 0 to 1 := 0; - nwdog : integer range 1 to 16 := 1; - dynrstaddr : integer range 0 to 1 := 0; - rstaddr : integer range 0 to 16#fffff# := 0; - extrun : integer range 0 to 1 := 0; - clkfact : integer := 2 - ); - port ( - rst : in std_ulogic; - hclk : in std_ulogic; - cpuclk : in std_ulogic; - apbi : in apb_slv_in_type; - apbo : out apb_slv_out_type; - irqi : in irq_out_vector(0 to ncpu-1); - irqo : out irq_in_vector(0 to ncpu-1); - wdog : in std_logic_vector(nwdog-1 downto 0) := (others => '0'); - cpurun : in std_logic_vector(ncpu-1 downto 0) := (others => '0'); - hclken : in std_ulogic - ); -end; - -architecture rtl of irqamp2x is - - type irl_type is array (0 to ncpu-1) of std_logic_vector(3 downto 0); - - type hclk_reg_type is record - intack : std_logic_vector(0 to ncpu-1); - irl : irl_type; - pwd : std_logic_vector(0 to ncpu-1); - end record; - - type cpuclk_reg_type is record - intack_acc : std_logic_vector(0 to ncpu-1); - irl_capt : irl_type; - hclken2 : std_ulogic; - end record; - - signal irqi2 : irq_out_vector(0 to ncpu-1); - - begin - sync : if clkfact /= 0 generate - syncblock : block - signal r, rin : hclk_reg_type; - signal r2, r2in : cpuclk_reg_type; - begin - comb : process(rst, irqi, hclken, r, r2) - variable v : hclk_reg_type; - variable v2 : cpuclk_reg_type; - begin - v2.hclken2 := hclken; - for i in 0 to ncpu-1 loop - v.pwd(i) := irqi(i).pwd; - v2.intack_acc(i) := not hclken and irqi(i).intack; - if (clkfact > 2) then - v2.intack_acc(i) := v2.intack_acc(i) or (not (hclken or r2.hclken2) and r2.intack_acc(i)); - end if; - v.intack(i) := irqi(i).intack or r2.intack_acc(i); - - v2.irl_capt(i) := irqi(i).irl; - if (clkfact > 2) then - if (irqi(i).intack and not r2.intack_acc(i)) = '0' then - v2.irl_capt(i) := r2.irl_capt(i); - end if; - end if; - - if r2.intack_acc(i) = '1' then - v.irl(i) := r2.irl_capt(i); - else - v.irl(i) := irqi(i).irl; - end if; - - irqi2(i).irl <= r.irl(i); - irqi2(i).intack <= r.intack(i); - irqi2(i).pwd <= irqi(i).pwd; --r.pwd(i); - irqi2(i).fpen <= irqi(i).fpen; - irqi2(i).idle <= irqi(i).idle; - - end loop; - - if rst = '0' then - v.intack := (others => '0'); v2.intack_acc := (others => '0'); - end if; - - rin <= v; r2in <= v2; - end process; - - reg1 : process(hclk) - begin - if rising_edge(hclk) then - r <= rin; - end if; - end process; - - reg2 : process(cpuclk) - begin - if rising_edge(cpuclk) then - r2 <= r2in; - end if; - end process; - end block syncblock; - end generate; - nosync : if clkfact = 0 generate - irqi2 <= irqi; - end generate; - - irqamp0 : irqamp - generic map (pindex, paddr, pmask, ncpu, eirq, nctrl, tstamp, wdogen, - nwdog, dynrstaddr, rstaddr, extrun) - port map (rst, hclk, apbi, apbo, irqi2, irqo, wdog, cpurun); - -end; - diff --git a/lib/gaisler/irqmp/irqmp.vhd b/lib/gaisler/irqmp/irqmp.vhd index fca45a53..5f9fbe05 100644 --- a/lib/gaisler/irqmp/irqmp.vhd +++ b/lib/gaisler/irqmp/irqmp.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -23,13 +23,6 @@ -- Description: Multi-processor APB interrupt controller. Implements a -- two-level interrupt controller for 15 interrupts. ------------------------------------------------------------------------------ --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_IRQMP --- VERSION: 3 --- APB: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: IO_AREA -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; diff --git a/lib/gaisler/irqmp/irqmp2x.vhd b/lib/gaisler/irqmp/irqmp2x.vhd deleted file mode 100644 index a122dfcd..00000000 --- a/lib/gaisler/irqmp/irqmp2x.vhd +++ /dev/null @@ -1,146 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: irqmp2x --- File: irqmp2x.vhd --- Author: Edvin Catovic - Gaisler Research --- Description: Multi-processor APB interrupt controller wrapper for use --- in multifrequency designs. ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; -library gaisler; -use gaisler.leon3.all; - -entity irqmp2x is - generic ( - pindex : integer := 0; - paddr : integer := 0; - pmask : integer := 16#fff#; - ncpu : integer := 1; - eirq : integer := 0; - clkfact : integer := 2 - ); - port ( - rst : in std_ulogic; - hclk : in std_ulogic; - cpuclk : in std_ulogic; - apbi : in apb_slv_in_type; - apbo : out apb_slv_out_type; - irqi : in irq_out_vector(0 to ncpu-1); - irqo : out irq_in_vector(0 to ncpu-1); - hclken : in std_ulogic - ); -end; - -architecture rtl of irqmp2x is - - type irl_type is array (0 to ncpu-1) of std_logic_vector(3 downto 0); - - type hclk_reg_type is record - intack : std_logic_vector(0 to ncpu-1); - irl : irl_type; - pwd : std_logic_vector(0 to ncpu-1); - end record; - - type cpuclk_reg_type is record - intack_acc : std_logic_vector(0 to ncpu-1); - irl_capt : irl_type; - hclken2 : std_ulogic; - end record; - - signal irqi2 : irq_out_vector(0 to ncpu-1); - - begin - - sync : if clkfact /= 0 generate - syncblock : block - signal r, rin : hclk_reg_type; - signal r2, r2in : cpuclk_reg_type; - begin - - comb : process(rst, irqi, hclken, r, r2) - variable v : hclk_reg_type; - variable v2 : cpuclk_reg_type; - begin - v2.hclken2 := hclken; - for i in 0 to ncpu-1 loop - v.pwd(i) := irqi(i).pwd; - v2.intack_acc(i) := not hclken and irqi(i).intack; - if (clkfact > 2) then - v2.intack_acc(i) := v2.intack_acc(i) or (not (hclken or r2.hclken2) and r2.intack_acc(i)); - end if; - v.intack(i) := irqi(i).intack or r2.intack_acc(i); - - v2.irl_capt(i) := irqi(i).irl; - if (clkfact > 2) then - if (irqi(i).intack and not r2.intack_acc(i)) = '0' then - v2.irl_capt(i) := r2.irl_capt(i); - end if; - end if; - - if r2.intack_acc(i) = '1' then - v.irl(i) := r2.irl_capt(i); - else - v.irl(i) := irqi(i).irl; - end if; - - irqi2(i).irl <= r.irl(i); - irqi2(i).intack <= r.intack(i); - irqi2(i).pwd <= irqi(i).pwd; --r.pwd(i); - irqi2(i).fpen <= irqi(i).fpen; - - end loop; - - if rst = '0' then - v.intack := (others => '0'); v2.intack_acc := (others => '0'); - end if; - - rin <= v; r2in <= v2; - end process; - - reg1 : process(hclk) - begin - if rising_edge(hclk) then - r <= rin; - end if; - end process; - - reg2 : process(cpuclk) - begin - if rising_edge(cpuclk) then - r2 <= r2in; - end if; - end process; - end block syncblock; - end generate; - nosync : if clkfact = 0 generate - irqi2 <= irqi; - end generate; - - irqmp0 : irqmp generic map (pindex, paddr, pmask, ncpu, eirq) - port map (rst, hclk, apbi, apbo, irqi2, irqo); - -end; - diff --git a/lib/gaisler/jtag/ahbjtag.vhd b/lib/gaisler/jtag/ahbjtag.vhd index aedc711f..97b369f3 100644 --- a/lib/gaisler/jtag/ahbjtag.vhd +++ b/lib/gaisler/jtag/ahbjtag.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -22,12 +22,7 @@ -- Author: Edvin Catovic, Jiri Gaisler - Gaisler Research -- Description: JTAG communication link with AHB master interface ------------------------------------------------------------------------------ --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_AHBJTAG --- VERSION: 1 --- AHBMASTER: 0 -------------------------------------------------------------------------------- + library ieee; use ieee.std_logic_1164.all; library grlib; @@ -52,7 +47,8 @@ entity ahbjtag is ver : integer range 0 to 15 := 0; ainst : integer range 0 to 255 := 2; dinst : integer range 0 to 255 := 3; - scantest : integer := 0); + scantest : integer := 0; + oepol : integer := 1); port ( rst : in std_ulogic; clk : in std_ulogic; @@ -89,6 +85,7 @@ signal dmai : ahb_dma_in_type; signal dmao : ahb_dma_out_type; signal ltapi : tap_in_type; signal ltapo : tap_out_type; +signal ltck: std_ulogic; begin @@ -98,15 +95,17 @@ begin port map (rst, clk, dmai, dmao, ahbi, ahbo); tap0 : tap generic map (tech => tech, irlen => 6, idcode => idcode, - manf => manf, part => part, ver => ver, scantest => scantest) - port map (trst, tck, tms, tdi, tdo, ltapo.tck, ltapo.tdi, ltapo.inst, ltapo.reset, ltapo.capt, + manf => manf, part => part, ver => ver, scantest => scantest, oepol => oepol) + port map (trst, tck, tms, tdi, tdo, ltck, ltapo.tdi, ltapo.inst, ltapo.reset, ltapo.capt, ltapo.shift, ltapo.upd, ltapo.asel, ltapo.dsel, ltapi.en, ltapi.tdo, tapi_tdo, - ahbi.testen, ahbi.testrst, tdoen); + ahbi.testen, ahbi.testrst, ahbi.testoen, tdoen); + + ltapo.tck <= ltapo.inst(0) when scantest/=0 and ahbi.testen='1' else ltck; jtagcom0 : jtagcom generic map (isel => TAPSEL, nsync => nsync, ainst => ainst, dinst => dinst, reread => REREAD) port map (rst, clk, ltapo, ltapi, dmao, dmai); - tapo_tck <= ltapo.tck; tapo_tdi <= ltapo.tdi; tapo_inst <= ltapo.inst; + tapo_tck <= ltck; tapo_tdi <= ltapo.tdi; tapo_inst <= ltapo.inst; tapo_rst <= ltapo.reset; tapo_capt <= ltapo.capt; tapo_shft <= ltapo.shift; tapo_upd <= ltapo.upd; diff --git a/lib/gaisler/jtag/ahbjtag_bsd.vhd b/lib/gaisler/jtag/ahbjtag_bsd.vhd index b280b33a..4d3b52c9 100644 --- a/lib/gaisler/jtag/ahbjtag_bsd.vhd +++ b/lib/gaisler/jtag/ahbjtag_bsd.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/jtag/bscanregs.vhd b/lib/gaisler/jtag/bscanregs.vhd index 3f410c2d..afdddc33 100644 --- a/lib/gaisler/jtag/bscanregs.vhd +++ b/lib/gaisler/jtag/bscanregs.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/jtag/bscanregsbd.vhd b/lib/gaisler/jtag/bscanregsbd.vhd index ca5d9664..430d0eca 100644 --- a/lib/gaisler/jtag/bscanregsbd.vhd +++ b/lib/gaisler/jtag/bscanregsbd.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/jtag/jtag.vhd b/lib/gaisler/jtag/jtag.vhd index 2b6c3b9e..82fde6da 100644 --- a/lib/gaisler/jtag/jtag.vhd +++ b/lib/gaisler/jtag/jtag.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -32,17 +32,23 @@ use techmap.gencomp.all; package jtag is -constant JTAG_MANF_ID_GR : integer range 0 to 2047 := 804; -constant JTAG_NEXTREME : integer range 0 to 65535 := 16#102#; -constant JTAG_IHP25RH1 : integer range 0 to 65535 := 16#251#; -constant JTAG_NGMP_PROTO : integer range 0 to 65535 := 16#281#; -constant JTAG_ORBITA1 : integer range 0 to 65535 := 16#631#; +-- JTAG manufacturer IDs +constant JTAG_MANF_ID_GR : integer range 0 to 2047 := 804; + +-- JTAG part numbers +-- Do NOT select an existing part number for your custom design! +constant JTAG_NEXTREME : integer range 0 to 65535 := 16#102#; +constant JTAG_IHP25RH1 : integer range 0 to 65535 := 16#251#; +constant JTAG_NGMP_PROTO : integer range 0 to 65535 := 16#281#; +constant JTAG_NGMP_PROTO2 : integer range 0 to 65535 := 16#282#; +constant JTAG_EXAMPLE_PART : integer range 0 to 65535 := 16#300#; +constant JTAG_ORBITA1 : integer range 0 to 65535 := 16#631#; constant JTAG_ORBITA_OBTMP : integer range 0 to 65535 := 16#632#; -constant JTAG_UT699RH : integer range 0 to 65535 := 16#699#; -constant JTAG_UT700RH : integer range 0 to 65535 := 16#700#; -constant JTAG_GR702 : integer range 0 to 65535 := 16#702#; -constant JTAG_GR712 : integer range 0 to 65535 := 16#712#; -constant JTAG_UT840 : integer range 0 to 65535 := 16#840#; +constant JTAG_UT699RH : integer range 0 to 65535 := 16#699#; +constant JTAG_UT700RH : integer range 0 to 65535 := 16#700#; +constant JTAG_GR702 : integer range 0 to 65535 := 16#702#; +constant JTAG_GR712 : integer range 0 to 65535 := 16#712#; +constant JTAG_UT840 : integer range 0 to 65535 := 16#840#; component ahbjtag generic ( @@ -55,7 +61,8 @@ component ahbjtag ver : integer range 0 to 15 := 0; ainst : integer range 0 to 255 := 2; dinst : integer range 0 to 255 := 3; - scantest : integer := 0); + scantest : integer := 0; + oepol : integer := 1); port ( rst : in std_ulogic; clk : in std_ulogic; @@ -107,7 +114,8 @@ component bscanctrl itinst: integer := 7; --intest hzinst: integer := 8; -- highz clinst: integer := 10; -- clamp - mbist : integer := 11 -- clamp + mbist : integer := 11; -- clamp + scantest : integer := 0 ); port ( trst : in std_ulogic; @@ -127,7 +135,9 @@ component bscanctrl bsupdo : out std_ulogic; bsdrive : out std_ulogic; bshighz : out std_ulogic; - bsmbist : out std_ulogic + bsmbist : out std_ulogic; + testen : in std_ulogic; + testrst : in std_ulogic ); end component; diff --git a/lib/gaisler/jtag/jtagcom.vhd b/lib/gaisler/jtag/jtagcom.vhd index 4a3ad334..7364a448 100644 --- a/lib/gaisler/jtag/jtagcom.vhd +++ b/lib/gaisler/jtag/jtagcom.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -51,6 +51,7 @@ entity jtagcom is dmao : in ahb_dma_out_type; dmai : out ahb_dma_in_type ); + attribute sync_set_reset of rst : signal is "true"; end; diff --git a/lib/gaisler/jtag/jtagtst.vhd b/lib/gaisler/jtag/jtagtst.vhd index 0dc4a7cf..9800ff5c 100644 --- a/lib/gaisler/jtag/jtagtst.vhd +++ b/lib/gaisler/jtag/jtagtst.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -81,6 +81,14 @@ package jtagtst is signal tdo : in std_ulogic; cp : in integer); + procedure jwrite(addr, hsize, data : in std_logic_vector; + signal tck, tms, tdi : out std_ulogic; + signal tdo : in std_ulogic; + cp : in integer; + ainst : in integer := 2; + dinst : in integer := 3; + isize : in integer := 6); + procedure jread(addr : in std_logic_vector; data : out std_logic_vector; signal tck, tms, tdi : out std_ulogic; @@ -91,14 +99,18 @@ package jtagtst is procedure bscantest(signal tdo : in std_ulogic; signal tck, tms, tdi : out std_ulogic; - cp: in integer); + cp: in integer; + inst_samp: integer := 5; + inst_extest: integer := 6; + inst_intest: integer := 7; + inst_mbist: integer := 11; + fastmode: boolean := false); procedure bscansampre(signal tdo : in std_ulogic; signal tck, tms, tdi : out std_ulogic; nsigs: in integer; sigpre: in std_logic_vector; sigsamp: out std_logic_vector; - cp: in integer); - + cp: in integer; inst_samp: integer); end; @@ -158,7 +170,42 @@ package body jtagtst is wait for 5 * cp * 1 ns; tmp := '0' & data; shift(true, 33, tmp, dr, tck, tms, tdi, tdo, cp); -- write data reg - end; + end; + + procedure jwrite(addr, hsize, data : in std_logic_vector; + signal tck, tms, tdi : out std_ulogic; + signal tdo : in std_ulogic; + cp : in integer; + ainst : in integer := 2; + dinst : in integer := 3; + isize : in integer := 6) is + variable tmp : std_logic_vector(32 downto 0); + variable tmp2 : std_logic_vector(34 downto 0); + variable dr : std_logic_vector(32 downto 0); + variable dr2 : std_logic_vector(34 downto 0); + variable v_ainst : std_logic_vector(0 to 7); + variable v_dinst : std_logic_vector(0 to 7); + variable tmp3 : std_logic_vector(7 downto 0); + variable tmp4 : std_logic_vector(7 downto 0); + begin + tmp3 := conv_std_logic_vector(ainst,8); + tmp4 := conv_std_logic_vector(dinst,8); + for i in 0 to 7 loop + v_ainst(i) := tmp3(i); + v_dinst(i) := tmp4(i); + end loop; + + wait for 10 * cp * 1 ns; + shift(false, isize, v_ainst(0 to isize-1), dr, tck, tms, tdi, tdo, cp); -- inst = addrreg + wait for 5 * cp * 1 ns; + tmp2 := '1' & hsize & addr; + shift(true, 35, tmp2, dr2, tck, tms, tdi, tdo, cp); -- write add reg + wait for 5 * cp * 1 ns; + shift(false, isize, v_dinst(0 to isize-1), dr, tck, tms, tdi, tdo, cp); -- inst = datareg + wait for 5 * cp * 1 ns; + tmp := '0' & data; + shift(true, 33, tmp, dr, tck, tms, tdi, tdo, cp); -- write data reg + end; procedure jread(addr : in std_logic_vector; data : out std_logic_vector; @@ -390,18 +437,23 @@ begin signal tck, tms, tdi : out std_ulogic; nsigs: in integer; sigpre: in std_logic_vector; sigsamp: out std_logic_vector; - cp: in integer) is + cp: in integer; inst_samp: integer) is variable tmp: std_logic_vector(5 downto 0); begin - shift(false,6, conv_std_logic_vector(5,6), tmp, tck,tms,tdi,tdo, cp); + shift(false,6, conv_std_logic_vector(inst_samp,6), tmp, tck,tms,tdi,tdo, cp); shift(true, nsigs, sigpre, sigsamp, tck,tms,tdi,tdo, cp); end procedure; -- Boundary scan test procedure bscantest(signal tdo : in std_ulogic; signal tck, tms, tdi : out std_ulogic; - cp: in integer) is - variable tmpin,tmpout: std_logic_vector(1499 downto 0); + cp: in integer; + inst_samp: integer := 5; + inst_extest: integer := 6; + inst_intest: integer := 7; + inst_mbist: integer := 11; + fastmode: boolean := false) is + variable tmpin,tmpout: std_logic_vector(1999 downto 0); variable i,bslen: integer; variable dc: std_logic; variable tmp6: std_logic_vector(5 downto 0); @@ -415,7 +467,7 @@ begin -- Probe length of boundary scan chain tmpin := (others => '0'); tmpin(tmpin'length/2) := '1'; - bscansampre(tdo,tck,tms,tdi,tmpin'length,tmpin,tmpout,cp); + bscansampre(tdo,tck,tms,tdi,tmpin'length,tmpin,tmpout,cp,inst_samp); i := tmpout'length/2; for x in tmpout'length/2 to tmpout'high loop if tmpout(x)='1' then @@ -429,21 +481,38 @@ begin return; end if; print("[bscan] Detected boundary scan chain length: " & tost(bslen)); - print("[bscan] Looping over outputs..."); - shift(false,6, conv_std_logic_vector(6,6), tmp6, tck,tms,tdi,tdo, cp); -- extest - for x in 0 to bslen loop - tmpin :=(others => '0'); - tmpin(x) := '1'; + if fastmode then + print("[bscan] Setting EXTEST with all chain regs=0"); + shift(false,6, conv_std_logic_vector(inst_extest,6), tmp6, tck,tms,tdi,tdo, cp); -- extest + print("[bscan] In EXTEST, changing all chain regs to 1"); + tmpin := (others => '1'); shift(true, bslen, tmpin(bslen-1 downto 0), tmpout(bslen-1 downto 0), tck,tms,tdi,tdo, cp); - end loop; - print("[bscan] Looping over inputs..."); - shift(false,6, conv_std_logic_vector(7,6), tmp6, tck,tms,tdi,tdo, cp); -- intest - for x in 0 to bslen loop - tmpin :=(others => '0'); - tmpin(x) := '1'; + print("[bscan] Setting INTEST with all chain regs=1"); + shift(false,6, conv_std_logic_vector(inst_intest,6), tmp6, tck,tms,tdi,tdo, cp); -- intest + print("[bscan] In INTEST, changing all chain regs to 0"); + tmpin := (others => '0'); shift(true, bslen, tmpin(bslen-1 downto 0), tmpout(bslen-1 downto 0), tck,tms,tdi,tdo, cp); - end loop; - shift(false,6, conv_std_logic_vector(11,6), tmp6, tck,tms,tdi,tdo, cp); -- MBIST command + else + print("[bscan] Looping over outputs..."); + shift(false,6, conv_std_logic_vector(inst_extest,6), tmp6, tck,tms,tdi,tdo, cp); -- extest + for x in 0 to bslen loop + tmpin :=(others => '0'); + tmpin(x) := '1'; + shift(true, bslen, tmpin(bslen-1 downto 0), tmpout(bslen-1 downto 0), tck,tms,tdi,tdo, cp); + end loop; + print("[bscan] Looping over inputs..."); + shift(false,6, conv_std_logic_vector(inst_intest,6), tmp6, tck,tms,tdi,tdo, cp); -- intest + for x in 0 to bslen loop + tmpin :=(others => '0'); + tmpin(x) := '1'; + shift(true, bslen, tmpin(bslen-1 downto 0), tmpout(bslen-1 downto 0), tck,tms,tdi,tdo, cp); + end loop; + end if; + if inst_mbist >= 0 then + print("[bscan] Shifting in MBIST command"); + shift(false,6, conv_std_logic_vector(inst_mbist,6), tmp6, tck,tms,tdi,tdo, cp); -- MBIST command + end if; + print("[bscan] Test done"); end procedure; end; diff --git a/lib/gaisler/jtag/libjtagcom.vhd b/lib/gaisler/jtag/libjtagcom.vhd index 912fd296..d7a8e828 100644 --- a/lib/gaisler/jtag/libjtagcom.vhd +++ b/lib/gaisler/jtag/libjtagcom.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/leon3/cpu_disasx.vhd b/lib/gaisler/leon3/cpu_disasx.vhd index 3d5a8276..bc10cb04 100644 --- a/lib/gaisler/leon3/cpu_disasx.vhd +++ b/lib/gaisler/leon3/cpu_disasx.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/leon3/dsu3.vhd b/lib/gaisler/leon3/dsu3.vhd index a4c2eacd..e14d16c5 100644 --- a/lib/gaisler/leon3/dsu3.vhd +++ b/lib/gaisler/leon3/dsu3.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -22,13 +22,6 @@ -- Author: Jiri Gaisler, Edvin Catovic - Gaisler Research -- Description: Combined LEON3 debug support and AHB trace unit ------------------------------------------------------------------------------ --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_LEON3DSU --- VERSION: 1 --- AHBSLAVE: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: DSU_AREA -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; diff --git a/lib/gaisler/leon3/dsu3_2x.vhd b/lib/gaisler/leon3/dsu3_2x.vhd deleted file mode 100644 index 30245e08..00000000 --- a/lib/gaisler/leon3/dsu3_2x.vhd +++ /dev/null @@ -1,72 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: dsu3_2x --- File: dsu3_2x.vhd --- Author: Jiri Gaisler, Edvin Catovic - Gaisler Research --- Description: Combined LEON3 debug support and AHB trace unit, --- double-clocked version ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; -library gaisler; -use gaisler.leon3.all; -library techmap; -use techmap.gencomp.all; - -entity dsu3_2x is - generic ( - hindex : integer := 0; - haddr : integer := 16#900#; - hmask : integer := 16#f00#; - ncpu : integer := 1; - tbits : integer := 30; -- timer bits (instruction trace time tag) - tech : integer := DEFMEMTECH; - irq : integer := 0; - kbytes : integer := 0; - testen : integer := 0 - ); - port ( - rst : in std_ulogic; - hclk : in std_ulogic; - cpuclk : in std_ulogic; - ahbmi : in ahb_mst_in_type; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - dbgi : in l3_debug_out_vector(0 to NCPU-1); - dbgo : out l3_debug_in_vector(0 to NCPU-1); - dsui : in dsu_in_type; - dsuo : out dsu_out_type; - hclken : in std_ulogic - ); -end; - -architecture rtl of dsu3_2x is - -begin - - x0 : dsu3x generic map (hindex, haddr, hmask, ncpu, tbits, tech, irq, kbytes, 1, testen) - port map (rst, hclk, cpuclk, ahbmi, ahbsi, ahbso, dbgi, dbgo, dsui, dsuo, hclken); - -end; diff --git a/lib/gaisler/leon3/dsu3x.vhd b/lib/gaisler/leon3/dsu3x.vhd index d90946aa..0ac99dc9 100644 --- a/lib/gaisler/leon3/dsu3x.vhd +++ b/lib/gaisler/leon3/dsu3x.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -589,7 +589,6 @@ begin ahbso.hrdata <= ahbdrivedata(hrdata2x); end if; ahbso.hsplit <= (others => '0'); - ahbso.hcache <= '0'; ahbso.hirq <= hirq; ahbso.hindex <= hindex; diff --git a/lib/gaisler/leon3/leon3.in b/lib/gaisler/leon3/leon3.in index 4592bdc9..c270ee12 100644 --- a/lib/gaisler/leon3/leon3.in +++ b/lib/gaisler/leon3/leon3.in @@ -1,225 +1,349 @@ mainmenu_option next_comment +comment 'Processor ' bool 'Enable LEON3 SPARC V8 Processor' CONFIG_LEON3 if [ "$CONFIG_LEON3" = "y" ]; then int 'Number of processors' CONFIG_PROC_NUM 1 - comment 'Processor ' - mainmenu_option next_comment - comment 'Integer unit ' - int 'SPARC register windows' CONFIG_IU_NWINDOWS 8 - bool 'SPARC V8 MUL/DIV instructions' CONFIG_IU_V8MULDIV - if [ "$CONFIG_IU_V8MULDIV" = "y" ]; then - choice 'Hardware multiplier latency' \ - "2-cycles CONFIG_IU_MUL_LATENCY_2 \ - 4-cycles CONFIG_IU_MUL_LATENCY_4 \ - 5-cycles CONFIG_IU_MUL_LATENCY_5" 5-cycles - if [ "$CONFIG_IU_MUL_LATENCY_4" = "y" -o "$CONFIG_IU_MUL_LATENCY_5" = "y" ]; then - bool 'SPARC V8e SMAC/UMAC instructions ' CONFIG_IU_MUL_MAC + choice 'Force values from example configuration (see help)' \ + "Minimal-configuration CONFIG_LEON3_MIN \ + General-purpose-cfg CONFIG_LEON3_GP \ + High-Performance-cfg CONFIG_LEON3_HP \ + Custom-configuration CONFIG_LEON3_CUSTOM" Custom-configuration + if [ "$CONFIG_LEON3_MIN" = "y" ]; then + define_int CONFIG_IU_NWINDOWS 8 + define_bool CONFIG_IU_V8MULDIV n + define_bool CONFIG_IU_BP n + define_bool CONFIG_IU_SVT y + define_bool CONFIG_NOTAG n + define_int CONFIG_IU_LDELAY 2 + define_int CONFIG_IU_WATCHPOINTS 0 + define_bool CONFIG_PWD n + define_hex CONFIG_IU_RSTADDR 00000 + define_bool CONFIG_FPU_ENABLE n + define_bool CONFIG_ICACHE_ENABLE y + define_bool CONFIG_ICACHE_ASSO1 y + define_bool CONFIG_ICACHE_SZ2 y + define_bool CONFIG_ICACHE_LZ16 y + define_bool CONFIG_ICACHE_ALGORND y + define_bool CONFIG_ICACHE_LOCK n + define_bool CONFIG_DCACHE_ENABLE y + define_bool CONFIG_DCACHE_ASSO1 y + define_bool CONFIG_DCACHE_SZ2 y + define_bool CONFIG_DCACHE_LZ16 y + define_bool CONFIG_DCACHE_ALGORND y + define_bool CONFIG_DCACHE_LOCK n + define_bool CONFIG_DCACHE_SNOOP n + define_hex CONFIG_CACHE_FIXED 0 + define_bool CONFIG_MMU_ENABLE n + define_bool CONFIG_DSU_ENABLE n + fi + if [ "$CONFIG_LEON3_GP" = "y" ]; then + define_int CONFIG_IU_NWINDOWS 8 + define_bool CONFIG_IU_V8MULDIV y + define_bool CONFIG_IU_MUL_LATENCY_5 y + define_bool CONFIG_IU_MUL_MAC n + define_bool CONFIG_IU_BP y + define_bool CONFIG_IU_SVT y + define_bool CONFIG_NOTAG n + define_int CONFIG_IU_LDELAY 2 + define_int CONFIG_IU_WATCHPOINTS 2 + define_bool CONFIG_PWD y + define_hex CONFIG_IU_RSTADDR 00000 + define_bool CONFIG_FPU_ENABLE n + define_bool CONFIG_ICACHE_ENABLE y + define_bool CONFIG_ICACHE_ASSO2 y + define_bool CONFIG_ICACHE_SZ4 y + define_bool CONFIG_ICACHE_LZ16 y + define_bool CONFIG_ICACHE_ALGORND y + define_bool CONFIG_ICACHE_LOCK n + define_bool CONFIG_ICACHE_LRAM n + define_bool CONFIG_DCACHE_ENABLE y + define_bool CONFIG_DCACHE_ASSO2 y + define_bool CONFIG_DCACHE_SZ4 y + define_bool CONFIG_DCACHE_LZ16 y + define_bool CONFIG_DCACHE_ALGORND y + define_bool CONFIG_DCACHE_LOCK n + define_bool CONFIG_DCACHE_SNOOP y + define_bool CONFIG_DCACHE_SNOOP_FAST y + define_bool CONFIG_DCACHE_SNOOP_SEPTAG y + define_hex CONFIG_CACHE_FIXED 0 + define_bool CONFIG_DCACHE_LRAM n + define_bool CONFIG_MMU_ENABLE y + define_bool CONFIG_MMU_SPLIT y + define_bool CONFIG_MMU_REPARRAY y + define_bool CONFIG_MMU_I8 y + define_bool CONFIG_MMU_D8 y + define_bool CONFIG_MMU_FASTWB y + define_bool CONFIG_MMU_PAGE_4K y + define_bool CONFIG_DSU_ENABLE y + define_bool CONFIG_DSU_ITRACE y + define_bool CONFIG_DSU_ITRACESZ4 y + define_bool CONFIG_DSU_ATRACESZ4 y + fi + if [ "$CONFIG_LEON3_HP" = "y" ]; then + define_int CONFIG_IU_NWINDOWS 8 + define_bool CONFIG_IU_V8MULDIV y + define_bool CONFIG_IU_MUL_LATENCY_2 y + define_bool CONFIG_IU_MUL_MAC n + define_bool CONFIG_IU_BP y + define_bool CONFIG_IU_SVT y + define_bool CONFIG_NOTAG n + define_int CONFIG_IU_LDELAY 1 + define_int CONFIG_IU_WATCHPOINTS 4 + define_bool CONFIG_PWD y + define_hex CONFIG_IU_RSTADDR 00000 + define_bool CONFIG_FPU_ENABLE y + define_bool CONFIG_FPU_GRFPU y + define_bool CONFIG_FPU_GRFPU_INFMUL y + define_bool CONFIG_ICACHE_ENABLE y + define_bool CONFIG_ICACHE_ASSO2 y + define_bool CONFIG_ICACHE_SZ4 y + define_bool CONFIG_ICACHE_LZ16 y + define_bool CONFIG_ICACHE_ALGOLRU y + define_bool CONFIG_ICACHE_LOCK n + define_bool CONFIG_ICACHE_LRAM n + define_bool CONFIG_DCACHE_ENABLE y + define_bool CONFIG_DCACHE_ASSO2 y + define_bool CONFIG_DCACHE_SZ4 y + define_bool CONFIG_DCACHE_LZ16 y + define_bool CONFIG_DCACHE_ALGOLRU y + define_bool CONFIG_DCACHE_LOCK n + define_bool CONFIG_DCACHE_SNOOP y + define_bool CONFIG_DCACHE_SNOOP_FAST y + define_bool CONFIG_DCACHE_SNOOP_SEPTAG y + define_hex CONFIG_CACHE_FIXED 0 + define_bool CONFIG_DCACHE_LRAM n + define_bool CONFIG_MMU_ENABLE y + define_bool CONFIG_MMU_SPLIT y + define_bool CONFIG_MMU_REPARRAY y + define_bool CONFIG_MMU_I16 y + define_bool CONFIG_MMU_D16 y + define_bool CONFIG_MMU_FASTWB y + define_bool CONFIG_MMU_PAGE_4K y + define_bool CONFIG_DSU_ENABLE y + define_bool CONFIG_DSU_ITRACE y + define_bool CONFIG_DSU_ITRACESZ4 y + define_bool CONFIG_DSU_ATRACESZ4 y + fi + if [ "$CONFIG_LEON3_CUSTOM" = "y" ]; then + mainmenu_option next_comment + comment 'Integer unit ' + int 'SPARC register windows' CONFIG_IU_NWINDOWS 8 + bool 'SPARC V8 MUL/DIV instructions' CONFIG_IU_V8MULDIV + if [ "$CONFIG_IU_V8MULDIV" = "y" ]; then + choice 'Hardware multiplier latency' \ + "2-cycles CONFIG_IU_MUL_LATENCY_2 \ + 4-cycles CONFIG_IU_MUL_LATENCY_4 \ + 5-cycles CONFIG_IU_MUL_LATENCY_5" 5-cycles + if [ "$CONFIG_IU_MUL_LATENCY_4" = "y" -o "$CONFIG_IU_MUL_LATENCY_5" = "y" ]; then + bool 'SPARC V8e SMAC/UMAC instructions ' CONFIG_IU_MUL_MAC + fi + choice 'Multipler structure ' \ + "Inferred CONFIG_IU_MUL_INFERRED \ + NTNU_Modgen CONFIG_IU_MUL_MODGEN \ + TechSpec CONFIG_IU_MUL_TECHSPEC \ + Designware CONFIG_IU_MUL_DW" Inferred fi - choice 'Multipler structure ' \ - "Inferred CONFIG_IU_MUL_INFERRED \ - NTNU_Modgen CONFIG_IU_MUL_MODGEN \ - TechSpec CONFIG_IU_MUL_TECHSPEC \ - Designware CONFIG_IU_MUL_DW" Inferred - fi - bool 'Branch prediction ' CONFIG_IU_BP - bool 'Single-vector trapping' CONFIG_IU_SVT - bool 'Disable tagged ADD/SUB and CASA' CONFIG_NOTAG - int 'Load delay' CONFIG_IU_LDELAY 1 - int 'Hardware watchpoints' CONFIG_IU_WATCHPOINTS 0 - bool 'Enable power-down mode ' CONFIG_PWD - hex ' Reset start address (addr[31:12]) ' CONFIG_IU_RSTADDR 00000 - endmenu - mainmenu_option next_comment - comment 'Floating-point unit' - bool 'Enable FPU ' CONFIG_FPU_ENABLE - if [ "$CONFIG_FPU_ENABLE" = "y" ]; then - choice 'FPU core' \ - "GRFPU CONFIG_FPU_GRFPU \ - GRFPU-LITE CONFIG_FPU_GRFPULITE \ - Meiko CONFIG_FPU_MEIKO" GRFPU - if [ "$CONFIG_FPU_GRFPU" = "y" ]; then - choice 'GRFPU multiplier' \ - "Inferred CONFIG_FPU_GRFPU_INFMUL \ - DW CONFIG_FPU_GRFPU_DWMUL \ - ModGen CONFIG_FPU_GRFPU_MODGEN \ - TechSpec CONFIG_FPU_GRFPU_TECHSPEC" Inferred + bool 'Branch prediction ' CONFIG_IU_BP + bool 'Single-vector trapping' CONFIG_IU_SVT + bool 'Disable tagged ADD/SUB and CASA' CONFIG_NOTAG + int 'Load delay' CONFIG_IU_LDELAY 1 + int 'Hardware watchpoints' CONFIG_IU_WATCHPOINTS 0 + bool 'Enable power-down mode ' CONFIG_PWD + hex ' Reset start address (addr[31:12]) ' CONFIG_IU_RSTADDR 00000 + endmenu + mainmenu_option next_comment + comment 'Floating-point unit' + bool 'Enable FPU ' CONFIG_FPU_ENABLE + if [ "$CONFIG_FPU_ENABLE" = "y" ]; then + choice 'FPU core' \ + "GRFPU CONFIG_FPU_GRFPU \ + GRFPU-LITE CONFIG_FPU_GRFPULITE \ + Meiko CONFIG_FPU_MEIKO" GRFPU + if [ "$CONFIG_FPU_GRFPU" = "y" ]; then + choice 'GRFPU multiplier' \ + "Inferred CONFIG_FPU_GRFPU_INFMUL \ + DW CONFIG_FPU_GRFPU_DWMUL \ + ModGen CONFIG_FPU_GRFPU_MODGEN \ + TechSpec CONFIG_FPU_GRFPU_TECHSPEC" Inferred + fi + if [ "$CONFIG_HAS_SHARED_GRFPU" = "y" -a "$CONFIG_FPU_GRFPU" = "y" ]; then + bool 'Shared GRFPU ' CONFIG_FPU_GRFPU_SH + fi + if [ "$CONFIG_FPU_GRFPULITE" = "y" ]; then + choice 'GRFPU-LITE controller' \ + "Simple CONFIG_FPU_GRFPC0 \ + Data-forwarding CONFIG_FPU_GRFPC1 \ + Non-blocking CONFIG_FPU_GRFPC2" Simple + fi + bool 'Use VHDL netlist ' CONFIG_FPU_NETLIST fi - if [ "$CONFIG_HAS_SHARED_GRFPU" = "y" -a "$CONFIG_FPU_GRFPU" = "y" ]; then - bool 'Shared GRFPU ' CONFIG_FPU_GRFPU_SH + endmenu + mainmenu_option next_comment + comment 'Cache system' + bool 'Enable instruction cache ' CONFIG_ICACHE_ENABLE + if [ "$CONFIG_ICACHE_ENABLE" = "y" ]; then + choice 'Associativity (sets) ' \ + "1 CONFIG_ICACHE_ASSO1 \ + 2 CONFIG_ICACHE_ASSO2 \ + 3 CONFIG_ICACHE_ASSO3 \ + 4 CONFIG_ICACHE_ASSO4" 1 + choice 'Way size (kbytes/way)' \ + "1 CONFIG_ICACHE_SZ1 \ + 2 CONFIG_ICACHE_SZ2 \ + 4 CONFIG_ICACHE_SZ4 \ + 8 CONFIG_ICACHE_SZ8 \ + 16 CONFIG_ICACHE_SZ16 \ + 32 CONFIG_ICACHE_SZ32 \ + 64 CONFIG_ICACHE_SZ64 \ + 128 CONFIG_ICACHE_SZ128 \ + 256 CONFIG_ICACHE_SZ256" 4 + choice 'Line size (bytes/line)' \ + "16 CONFIG_ICACHE_LZ16 \ + 32 CONFIG_ICACHE_LZ32" 32 + if [ "$CONFIG_ICACHE_ASSO1" != "y" ]; then + choice 'Replacement alorithm' \ + "Random CONFIG_ICACHE_ALGORND \ + Direct CONFIG_ICACHE_ALGODIR \ + LRR CONFIG_ICACHE_ALGOLRR \ + LRU CONFIG_ICACHE_ALGOLRU" Random + bool 'Cache locking ' CONFIG_ICACHE_LOCK + fi fi - if [ "$CONFIG_FPU_GRFPULITE" = "y" ]; then - choice 'GRFPU-LITE controller' \ - "Simple CONFIG_FPU_GRFPC0 \ - Data-forwarding CONFIG_FPU_GRFPC1 \ - Non-blocking CONFIG_FPU_GRFPC2" Simple + if [ "$CONFIG_MMU_ENABLE" != "y" ]; then + bool 'Enable local instruction RAM ' CONFIG_ICACHE_LRAM fi - bool 'Use VHDL netlist ' CONFIG_FPU_NETLIST - fi - endmenu - mainmenu_option next_comment - comment 'Cache system' - bool 'Enable instruction cache ' CONFIG_ICACHE_ENABLE - if [ "$CONFIG_ICACHE_ENABLE" = "y" ]; then - choice 'Associativity (sets) ' \ - "1 CONFIG_ICACHE_ASSO1 \ - 2 CONFIG_ICACHE_ASSO2 \ - 3 CONFIG_ICACHE_ASSO3 \ - 4 CONFIG_ICACHE_ASSO4" 1 - choice 'Way size (kbytes/way)' \ - "1 CONFIG_ICACHE_SZ1 \ - 2 CONFIG_ICACHE_SZ2 \ - 4 CONFIG_ICACHE_SZ4 \ - 8 CONFIG_ICACHE_SZ8 \ - 16 CONFIG_ICACHE_SZ16 \ - 32 CONFIG_ICACHE_SZ32 \ - 64 CONFIG_ICACHE_SZ64 \ - 128 CONFIG_ICACHE_SZ128 \ - 256 CONFIG_ICACHE_SZ256" 4 - choice 'Line size (bytes/line)' \ - "16 CONFIG_ICACHE_LZ16 \ - 32 CONFIG_ICACHE_LZ32" 32 - if [ "$CONFIG_ICACHE_ASSO1" != "y" ]; then - choice 'Replacement alorithm' \ - "Random CONFIG_ICACHE_ALGORND \ - Direct CONFIG_ICACHE_ALGODIR \ - LRR CONFIG_ICACHE_ALGOLRR \ - LRU CONFIG_ICACHE_ALGOLRU" Random - bool 'Cache locking ' CONFIG_ICACHE_LOCK + if [ "$CONFIG_ICACHE_LRAM" = "y" ]; then + choice 'Local data RAM size (kbytes)' \ + "1 CONFIG_ICACHE_LRAM_SZ1 \ + 2 CONFIG_ICACHE_LRAM_SZ2 \ + 4 CONFIG_ICACHE_LRAM_SZ4 \ + 8 CONFIG_ICACHE_LRAM_SZ8 \ + 16 CONFIG_ICACHE_LRAM_SZ16 \ + 32 CONFIG_ICACHE_LRAM_SZ32 \ + 64 CONFIG_ICACHE_LRAM_SZ64 \ + 128 CONFIG_ICACHE_LRAM_SZ128 \ + 256 CONFIG_ICACHE_LRAM_SZ256" 4 + hex ' Local instruction RAM start address (8 MSB) ' CONFIG_ICACHE_LRSTART 8e fi - fi - if [ "$CONFIG_MMU_ENABLE" != "y" ]; then - bool 'Enable local instruction RAM ' CONFIG_ICACHE_LRAM - fi - if [ "$CONFIG_ICACHE_LRAM" = "y" ]; then - choice 'Local data RAM size (kbytes)' \ - "1 CONFIG_ICACHE_LRAM_SZ1 \ - 2 CONFIG_ICACHE_LRAM_SZ2 \ - 4 CONFIG_ICACHE_LRAM_SZ4 \ - 8 CONFIG_ICACHE_LRAM_SZ8 \ - 16 CONFIG_ICACHE_LRAM_SZ16 \ - 32 CONFIG_ICACHE_LRAM_SZ32 \ - 64 CONFIG_ICACHE_LRAM_SZ64 \ - 128 CONFIG_ICACHE_LRAM_SZ128 \ - 256 CONFIG_ICACHE_LRAM_SZ256" 4 - hex ' Local instruction RAM start address (8 MSB) ' CONFIG_ICACHE_LRSTART 8e - fi - bool 'Enable data cache ' CONFIG_DCACHE_ENABLE - if [ "$CONFIG_DCACHE_ENABLE" = "y" ]; then - choice 'Associativity (sets)' \ - "1 CONFIG_DCACHE_ASSO1 \ - 2 CONFIG_DCACHE_ASSO2 \ - 3 CONFIG_DCACHE_ASSO3 \ - 4 CONFIG_DCACHE_ASSO4" 1 - choice 'Set size (kbytes/set)' \ - "1 CONFIG_DCACHE_SZ1 \ - 2 CONFIG_DCACHE_SZ2 \ - 4 CONFIG_DCACHE_SZ4 \ - 8 CONFIG_DCACHE_SZ8 \ - 16 CONFIG_DCACHE_SZ16 \ - 32 CONFIG_DCACHE_SZ32 \ - 64 CONFIG_DCACHE_SZ64 \ - 128 CONFIG_DCACHE_SZ128 \ - 256 CONFIG_DCACHE_SZ256" 4 - choice 'Line size (bytes/line)' \ - "16 CONFIG_DCACHE_LZ16 \ - 32 CONFIG_DCACHE_LZ32" 32 - if [ "$CONFIG_DCACHE_ASSO1" != "y" ]; then - choice 'Replacement alorithm' \ - "Random CONFIG_DCACHE_ALGORND \ - Direct CONFIG_DCACHE_ALGODIR \ - LRR CONFIG_DCACHE_ALGOLRR \ - LRU CONFIG_DCACHE_ALGOLRU" Random - bool 'Cache locking ' CONFIG_DCACHE_LOCK + bool 'Enable data cache ' CONFIG_DCACHE_ENABLE + if [ "$CONFIG_DCACHE_ENABLE" = "y" ]; then + choice 'Associativity (sets)' \ + "1 CONFIG_DCACHE_ASSO1 \ + 2 CONFIG_DCACHE_ASSO2 \ + 3 CONFIG_DCACHE_ASSO3 \ + 4 CONFIG_DCACHE_ASSO4" 1 + choice 'Set size (kbytes/set)' \ + "1 CONFIG_DCACHE_SZ1 \ + 2 CONFIG_DCACHE_SZ2 \ + 4 CONFIG_DCACHE_SZ4 \ + 8 CONFIG_DCACHE_SZ8 \ + 16 CONFIG_DCACHE_SZ16 \ + 32 CONFIG_DCACHE_SZ32 \ + 64 CONFIG_DCACHE_SZ64 \ + 128 CONFIG_DCACHE_SZ128 \ + 256 CONFIG_DCACHE_SZ256" 4 + choice 'Line size (bytes/line)' \ + "16 CONFIG_DCACHE_LZ16 \ + 32 CONFIG_DCACHE_LZ32" 32 + if [ "$CONFIG_DCACHE_ASSO1" != "y" ]; then + choice 'Replacement alorithm' \ + "Random CONFIG_DCACHE_ALGORND \ + Direct CONFIG_DCACHE_ALGODIR \ + LRR CONFIG_DCACHE_ALGOLRR \ + LRU CONFIG_DCACHE_ALGOLRU" Random + bool 'Cache locking ' CONFIG_DCACHE_LOCK + fi + bool 'AHB snooping ' CONFIG_DCACHE_SNOOP + if [ "$CONFIG_DCACHE_SNOOP" = "y" ]; then + bool 'Fast snooping ' CONFIG_DCACHE_SNOOP_FAST + fi + if [ "$CONFIG_DCACHE_SNOOP" = "y" ]; then + bool 'Separate snoop tags ' CONFIG_DCACHE_SNOOP_SEPTAG + fi fi - bool 'AHB snooping ' CONFIG_DCACHE_SNOOP - if [ "$CONFIG_DCACHE_SNOOP" = "y" ]; then - bool 'Fast snooping ' CONFIG_DCACHE_SNOOP_FAST + if [ "$CONFIG_ICACHE_ENABLE" = "y" -o "$CONFIG_DCACHE_ENABLE" = "y" ]; then + hex 'Fixed cacheability map ' CONFIG_CACHE_FIXED 0 fi - if [ "$CONFIG_DCACHE_SNOOP" = "y" ]; then - bool 'Separate snoop tags ' CONFIG_DCACHE_SNOOP_SEPTAG + if [ "$CONFIG_MMU_ENABLE" != "y" ]; then + bool 'Enable local data RAM ' CONFIG_DCACHE_LRAM fi - fi - if [ "$CONFIG_ICACHE_ENABLE" = "y" -o "$CONFIG_DCACHE_ENABLE" = "y" ]; then - hex 'Fixed cacheability map ' CONFIG_CACHE_FIXED 0 - fi - if [ "$CONFIG_MMU_ENABLE" != "y" ]; then - bool 'Enable local data RAM ' CONFIG_DCACHE_LRAM - fi - if [ "$CONFIG_DCACHE_LRAM" = "y" ]; then - choice 'Local data RAM size (kbytes)' \ - "1 CONFIG_DCACHE_LRAM_SZ1 \ - 2 CONFIG_DCACHE_LRAM_SZ2 \ - 4 CONFIG_DCACHE_LRAM_SZ4 \ - 8 CONFIG_DCACHE_LRAM_SZ8 \ - 16 CONFIG_DCACHE_LRAM_SZ16 \ - 32 CONFIG_DCACHE_LRAM_SZ32 \ - 64 CONFIG_DCACHE_LRAM_SZ64 \ - 128 CONFIG_DCACHE_LRAM_SZ128 \ - 256 CONFIG_DCACHE_LRAM_SZ256" 4 - hex ' Local data RAM start address (8 MSB) ' CONFIG_DCACHE_LRSTART 8f - fi - endmenu + if [ "$CONFIG_DCACHE_LRAM" = "y" ]; then + choice 'Local data RAM size (kbytes)' \ + "1 CONFIG_DCACHE_LRAM_SZ1 \ + 2 CONFIG_DCACHE_LRAM_SZ2 \ + 4 CONFIG_DCACHE_LRAM_SZ4 \ + 8 CONFIG_DCACHE_LRAM_SZ8 \ + 16 CONFIG_DCACHE_LRAM_SZ16 \ + 32 CONFIG_DCACHE_LRAM_SZ32 \ + 64 CONFIG_DCACHE_LRAM_SZ64 \ + 128 CONFIG_DCACHE_LRAM_SZ128 \ + 256 CONFIG_DCACHE_LRAM_SZ256" 4 + hex ' Local data RAM start address (8 MSB) ' CONFIG_DCACHE_LRSTART 8f + fi + endmenu - mainmenu_option next_comment - comment 'MMU' - bool 'Enable MMU ' CONFIG_MMU_ENABLE - if [ "$CONFIG_MMU_ENABLE" = "y" ]; then - choice 'MMU type ' \ - "combined CONFIG_MMU_COMBINED \ - split CONFIG_MMU_SPLIT" combined - choice 'TLB replacement sheme ' \ - "LRU CONFIG_MMU_REPARRAY \ - Increment CONFIG_MMU_REPINCREMENT" Increment - choice 'Instruction (or combined) TLB entries' \ - "2 CONFIG_MMU_I2 \ - 4 CONFIG_MMU_I4 \ - 8 CONFIG_MMU_I8 \ - 16 CONFIG_MMU_I16 \ - 32 CONFIG_MMU_I32" 8 - if [ "$CONFIG_MMU_SPLIT" = "y" ]; then - choice 'Data TLB entries' \ - "2 CONFIG_MMU_D2 \ - 4 CONFIG_MMU_D4 \ - 8 CONFIG_MMU_D8 \ - 16 CONFIG_MMU_D16 \ - 32 CONFIG_MMU_D32" 8 + mainmenu_option next_comment + comment 'MMU' + bool 'Enable MMU ' CONFIG_MMU_ENABLE + if [ "$CONFIG_MMU_ENABLE" = "y" ]; then + choice 'MMU type ' \ + "combined CONFIG_MMU_COMBINED \ + split CONFIG_MMU_SPLIT" combined + choice 'TLB replacement sheme ' \ + "LRU CONFIG_MMU_REPARRAY \ + Increment CONFIG_MMU_REPINCREMENT" Increment + choice 'Instruction (or combined) TLB entries' \ + "2 CONFIG_MMU_I2 \ + 4 CONFIG_MMU_I4 \ + 8 CONFIG_MMU_I8 \ + 16 CONFIG_MMU_I16 \ + 32 CONFIG_MMU_I32 \ + 64 CONFIG_MMU_I64" 8 + if [ "$CONFIG_MMU_SPLIT" = "y" ]; then + choice 'Data TLB entries' \ + "2 CONFIG_MMU_D2 \ + 4 CONFIG_MMU_D4 \ + 8 CONFIG_MMU_D8 \ + 16 CONFIG_MMU_D16 \ + 32 CONFIG_MMU_D32 \ + 64 CONFIG_MMU_D64" 8 bool 'Fast writebuffer ' CONFIG_MMU_FASTWB - fi - choice 'MMU page size' \ - "4K CONFIG_MMU_PAGE_4K \ - 8K CONFIG_MMU_PAGE_8K \ - 16K CONFIG_MMU_PAGE_16K \ - 32K CONFIG_MMU_PAGE_32K \ - Programmable CONFIG_MMU_PAGE_PROG" 4K - fi - endmenu - - mainmenu_option next_comment - comment 'Debug Support Unit ' - bool 'Enable LEON3 Debug support unit ' CONFIG_DSU_ENABLE - if [ "$CONFIG_DSU_ENABLE" = "y" ]; then - bool 'Instruction trace buffer' CONFIG_DSU_ITRACE - if [ "$CONFIG_DSU_ITRACE" = "y" ]; then - choice 'Instruction trace buffer size (kbytes)' \ - "1 CONFIG_DSU_ITRACESZ1 \ - 2 CONFIG_DSU_ITRACESZ2 \ - 4 CONFIG_DSU_ITRACESZ4 \ - 8 CONFIG_DSU_ITRACESZ8 \ - 16 CONFIG_DSU_ITRACESZ16" 1 - fi - bool 'AHB trace buffer' CONFIG_DSU_ATRACE - if [ "$CONFIG_DSU_ATRACE" = "y" ]; then - choice 'AHB trace buffer size (kbytes)' \ - "1 CONFIG_DSU_ATRACESZ1 \ - 2 CONFIG_DSU_ATRACESZ2 \ - 4 CONFIG_DSU_ATRACESZ4 \ - 8 CONFIG_DSU_ATRACESZ8 \ - 16 CONFIG_DSU_ATRACESZ16" 1 fi + choice 'MMU page size' \ + "4K CONFIG_MMU_PAGE_4K \ + 8K CONFIG_MMU_PAGE_8K \ + 16K CONFIG_MMU_PAGE_16K \ + 32K CONFIG_MMU_PAGE_32K \ + Programmable CONFIG_MMU_PAGE_PROG" 4K fi - endmenu + endmenu + mainmenu_option next_comment + comment 'Debug Support Unit ' + bool 'Enable LEON3 Debug support unit ' CONFIG_DSU_ENABLE + if [ "$CONFIG_DSU_ENABLE" = "y" ]; then + bool 'Instruction trace buffer' CONFIG_DSU_ITRACE + if [ "$CONFIG_DSU_ITRACE" = "y" ]; then + choice 'Instruction trace buffer size (kbytes)' \ + "1 CONFIG_DSU_ITRACESZ1 \ + 2 CONFIG_DSU_ITRACESZ2 \ + 4 CONFIG_DSU_ITRACESZ4 \ + 8 CONFIG_DSU_ITRACESZ8 \ + 16 CONFIG_DSU_ITRACESZ16" 1 + fi + bool 'AHB trace buffer' CONFIG_DSU_ATRACE + if [ "$CONFIG_DSU_ATRACE" = "y" ]; then + choice 'AHB trace buffer size (kbytes)' \ + "1 CONFIG_DSU_ATRACESZ1 \ + 2 CONFIG_DSU_ATRACESZ2 \ + 4 CONFIG_DSU_ATRACESZ4 \ + 8 CONFIG_DSU_ATRACESZ8 \ + 16 CONFIG_DSU_ATRACESZ16" 1 + fi + fi + endmenu + fi mainmenu_option next_comment comment 'Fault-tolerance ' # if [ "$CONFIG_LEON3FT_PRESENT" = "y" ]; then diff --git a/lib/gaisler/leon3/leon3.in.h b/lib/gaisler/leon3/leon3.in.h index 7403cdcd..a6f5794a 100644 --- a/lib/gaisler/leon3/leon3.in.h +++ b/lib/gaisler/leon3/leon3.in.h @@ -339,6 +339,10 @@ #ifdef CONFIG_MMU_I32 #define CONFIG_ITLBNUM 32 #endif +#ifdef CONFIG_MMU_I64 +#define CONFIG_ITLBNUM 64 +#endif + #define CONFIG_DTLBNUM 2 #ifdef CONFIG_MMU_D2 @@ -361,6 +365,10 @@ #undef CONFIG_DTLBNUM #define CONFIG_DTLBNUM 32 #endif +#ifdef CONFIG_MMU_D64 +#undef CONFIG_DTLBNUM +#define CONFIG_DTLBNUM 64 +#endif #ifdef CONFIG_MMU_FASTWB #define CFG_MMU_FASTWB 1 #else diff --git a/lib/gaisler/leon3/leon3.in.help b/lib/gaisler/leon3/leon3.in.help index 0d32e82f..4925c152 100644 --- a/lib/gaisler/leon3/leon3.in.help +++ b/lib/gaisler/leon3/leon3.in.help @@ -5,6 +5,34 @@ CONFIG_PROC_NUM up to 4 LEON3 processor cores. Use 1 unless you know what you are doing ... +Force values from example configuration +CONFIG_LEON3_MIN + If you select any other value than Custom-configuration then the + configuration choices will be forced to settings corresponding to + the selected example configuration. The example configurations are + described in the document LEON/GRLIB Design and Configuration Guide + located at doc/guide.pdf. + + Due to limitations in the configuration tool it is not possible to + update all choices without first saving the configuration and + restarting the tool. Perform the steps below to set the processor + configuration to example configuration values: + + 1. Select example configuration (MIN, GP, HP). This will result + in most processor configuration menus being disabled. + 2. Go back to the main menu and select Save and Exit + 3. Start the xconfig tool again + 4. Go into processor configuration and select Custom-configuration. + All configuration values can now be changed again and have been + initialized to example configuration that was selected earlier. + 5. Make any changes and then quit xconfig via Save and Exit + + Some options set from the example configuration may need to be changed. + One such setting is the FPU multiplier, if the FPU is enabled, where + timing is improved for several FPGA technologies by selecting the + technology specific multiplier and where the DW multiplier is generally + a good choice for ASIC. + Number of SPARC register windows CONFIG_IU_NWINDOWS The SPARC architecture (and LEON) allows 2 - 32 register windows. diff --git a/lib/gaisler/leon3/leon3.vhd b/lib/gaisler/leon3/leon3.vhd index 676b5ed3..2ac33639 100644 --- a/lib/gaisler/leon3/leon3.vhd +++ b/lib/gaisler/leon3/leon3.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -398,6 +398,71 @@ package leon3 is ); end component; + -- GRFPU interface + + type fp_rf_in_type is record + rd1addr : std_logic_vector(3 downto 0); -- read address 1 + rd2addr : std_logic_vector(3 downto 0); -- read address 2 + wraddr : std_logic_vector(3 downto 0); -- write address + wrdata : std_logic_vector(31 downto 0); -- write data + ren1 : std_ulogic; -- read 1 enable + ren2 : std_ulogic; -- read 2 enable + wren : std_ulogic; -- write enable + end record; + + type fp_rf_out_type is record + data1 : std_logic_vector(31 downto 0); -- read data 1 + data2 : std_logic_vector(31 downto 0); -- read data 2 + end record; + + type fpc_pipeline_control_type is record + pc : std_logic_vector(31 downto 0); + inst : std_logic_vector(31 downto 0); + cnt : std_logic_vector(1 downto 0); + trap : std_ulogic; + annul : std_ulogic; + pv : std_ulogic; + end record; + + type fpc_debug_in_type is record + enable : std_ulogic; + write : std_ulogic; + fsr : std_ulogic; -- FSR access + addr : std_logic_vector(4 downto 0); + data : std_logic_vector(31 downto 0); + end record; + + type fpc_debug_out_type is record + data : std_logic_vector(31 downto 0); + end record; + + constant fpc_debug_none : fpc_debug_out_type := (data => X"00000000"); + + type fpc_in_type is record + flush : std_ulogic; -- pipeline flush + exack : std_ulogic; -- FP exception acknowledge + a_rs1 : std_logic_vector(4 downto 0); + d : fpc_pipeline_control_type; + a : fpc_pipeline_control_type; + e : fpc_pipeline_control_type; + m : fpc_pipeline_control_type; + x : fpc_pipeline_control_type; + lddata : std_logic_vector(31 downto 0); -- load data + dbg : fpc_debug_in_type; -- debug signals + end record; + + type fpc_out_type is record + data : std_logic_vector(31 downto 0); -- store data + exc : std_logic; -- FP exception + cc : std_logic_vector(1 downto 0); -- FP condition codes + ccv : std_ulogic; -- FP condition codes valid + ldlock : std_logic; -- FP pipeline hold + holdn : std_ulogic; + dbg : fpc_debug_out_type; -- FP debug signals + end record; + + constant fpc_out_none : fpc_out_type := (X"00000000", '0', "00", '1', '0', '1', fpc_debug_none); + type grfpu_in_type is record start : std_logic; nonstd : std_logic; @@ -445,6 +510,23 @@ package leon3 is ); end component; + component grfpwxsh + generic (tech : integer range 0 to NTECH := 0; + pclow : integer range 0 to 2 := 2; + dsu : integer range 0 to 1 := 0; + disas : integer range 0 to 2 := 0; + id : integer range 0 to 7 := 0); + port ( + rst : in std_ulogic; -- Reset + clk : in std_ulogic; + holdn : in std_ulogic; -- pipeline hold + cpi : in fpc_in_type; + cpo : out fpc_out_type; + fpui : out grfpu_in_type; + fpuo : in grfpu_out_type + ); + end component; + component leon3sh generic ( hindex : integer := 0; diff --git a/lib/gaisler/leon3v2/libcache.vhd b/lib/gaisler/leon3/libcache.vhd similarity index 95% rename from lib/gaisler/leon3v2/libcache.vhd rename to lib/gaisler/leon3/libcache.vhd index 8ed0929f..6fe14c36 100644 --- a/lib/gaisler/leon3v2/libcache.vhd +++ b/lib/gaisler/leon3/libcache.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -205,12 +205,16 @@ type icram_in_type is record dwrite : std_logic_vector(0 to 3); ldramin : ildram_in_type; ctx : std_logic_vector(M_CTX_SZ-1 downto 0); + tpar : cpartype; + dpar : std_logic_vector(3 downto 0); end record; type icram_out_type is record tag : cdatatype; data : cdatatype; ctx : ctxdatatype; + tpar : cpartype; + dpar : cpartype; end record; type ldram_in_type is record @@ -235,8 +239,11 @@ type dcram_in_type is record swrite : std_logic_vector(0 to 3); saddress : std_logic_vector(19 downto 0); faddress : std_logic_vector(19 downto 0); + spar : std_logic; ldramin : ldram_in_type; ctx : ctxdatatype; + tpar : cpartype; + dpar : cpartype; tdiag : std_logic_vector(3 downto 0); ddiag : std_logic_vector(3 downto 0); sdiag : std_logic_vector(3 downto 0); @@ -247,6 +254,9 @@ type dcram_out_type is record data : cdatatype; stag : cdatatype; ctx : ctxdatatype; + tpar : cpartype; -- tag parity + dpar : cpartype; -- data parity + spar : std_logic_vector(3 downto 0); -- snoop tag parity end record; type cram_in_type is record @@ -274,6 +284,7 @@ type memory_ic_out_type is record retry : std_ulogic; -- mexc : std_ulogic; -- memory exception cache : std_ulogic; -- cacheable data + par : std_logic_vector(3 downto 0); -- parity scanen : std_ulogic; end record; @@ -299,6 +310,7 @@ type memory_dc_out_type is record cache : std_ulogic; -- cacheable data ba : std_ulogic; -- bus active (used for snooping) bg : std_ulogic; -- bus grant (used for snooping) + par : std_logic_vector(3 downto 0); -- parity scanen : std_ulogic; testen : std_ulogic; end record; @@ -458,9 +470,7 @@ constant lru_table : lru_bits_type := (1,1,3,5); dlram : integer range 0 to 1 := 0; dlramsize : integer range 1 to 512 := 1; mmuen : integer range 0 to 1 := 0; - testen : integer range 0 to 3 := 0; - errinj : integer range 0 to 3 := 0; - cft : integer range 0 to 1 := 0 + testen : integer range 0 to 3 := 0 ); port ( clk : in std_ulogic; @@ -477,8 +487,7 @@ constant lru_table : lru_bits_type := (1,1,3,5); ilinesize : integer range 4 to 8 := 4; cached : integer := 0; clk2x : integer := 0; - scantest : integer := 0 - ); + scantest : integer := 0); port ( rst : in std_logic; clk : in std_logic; @@ -497,17 +506,16 @@ constant lru_table : lru_bits_type := (1,1,3,5); component mmu_icache generic ( - icen : integer range 0 to 1 := 0; - irepl : integer range 0 to 3 := 0; - isets : integer range 1 to 4 := 1; - ilinesize : integer range 4 to 8 := 4; - isetsize : integer range 1 to 256 := 1; - isetlock : integer range 0 to 1 := 0; - lram : integer range 0 to 1 := 0; - lramsize : integer range 1 to 512 := 1; - lramstart : integer range 0 to 255 := 16#8e#; - cft : integer range 0 to 1 := 0; - mmuen : integer := 0 + icen : integer range 0 to 1 := 0; + irepl : integer range 0 to 3 := 0; + isets : integer range 1 to 4 := 1; + ilinesize : integer range 4 to 8 := 4; + isetsize : integer range 1 to 256 := 1; + isetlock : integer range 0 to 1 := 0; + lram : integer range 0 to 1 := 0; + lramsize : integer range 1 to 512 := 1; + lramstart : integer range 0 to 255 := 16#8e#; + mmuen : integer := 0 ); port ( rst : in std_logic; @@ -545,11 +553,9 @@ constant lru_table : lru_bits_type := (1,1,3,5); itlbnum : integer range 2 to 64 := 8; dtlbnum : integer range 2 to 64 := 8; tlb_type : integer range 0 to 3 := 1; - iuft : integer range 0 to 4 := 0; memtech : integer range 0 to NTECH := 0; - cft : integer range 0 to 1 := 0; cached : integer := 0; --- mmupgsz : integer range 0 to 5 := 0; + mmupgsz : integer range 0 to 5 := 0; smp : integer := 0; mmuen : integer := 0 ); @@ -567,8 +573,7 @@ constant lru_table : lru_bits_type := (1,1,3,5); fpuholdn : in std_logic; mmudci : out mmudc_in_type; mmudco : in mmudc_out_type; - sclk : in std_ulogic; - ahbso : in ahb_slv_out_vector + sclk : in std_ulogic ); end component; @@ -596,13 +601,11 @@ constant lru_table : lru_bits_type := (1,1,3,5); dlram : integer range 0 to 1 := 0; dlramsize : integer range 1 to 512 := 1; dlramstart : integer range 0 to 255 := 16#8f#; - cft : integer range 0 to 1 := 0; itlbnum : integer range 2 to 64 := 8; dtlbnum : integer range 2 to 64 := 8; tlb_type : integer range 0 to 3 := 1; tlb_rep : integer range 0 to 1 := 0; cached : integer := 0; - iuft : integer range 0 to 4 := 0; clk2x : integer := 0; scantest : integer := 0; mmupgsz : integer range 0 to 5 := 0; diff --git a/lib/gaisler/leon3v2/libiu.vhd b/lib/gaisler/leon3/libiu.vhd similarity index 98% rename from lib/gaisler/leon3v2/libiu.vhd rename to lib/gaisler/leon3/libiu.vhd index 9faee423..2e8a820a 100644 --- a/lib/gaisler/leon3v2/libiu.vhd +++ b/lib/gaisler/leon3/libiu.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -29,7 +29,6 @@ library techmap; use techmap.gencomp.all; library gaisler; use gaisler.leon3.all; -use gaisler.libfpu.all; use gaisler.arith.all; use gaisler.mmuconfig.all; @@ -62,7 +61,6 @@ type iregfile_out_type is record data2 : std_logic_vector(RDBITS-1 downto 0); -- read data 2 end record; - type cctrltype is record burst : std_ulogic; -- icache burst enable dfrz : std_ulogic; -- dcache freeze enable @@ -81,7 +79,9 @@ type icache_in_type is record inull : std_ulogic; -- instruction nullify su : std_ulogic; -- super-user flush : std_ulogic; -- flush icache + flushl : std_ulogic; -- flush line fline : std_logic_vector(31 downto 3); -- flush line offset + pnull : std_ulogic; end record; type icache_out_type is record @@ -145,7 +145,6 @@ type dcache_out_type is record idle : std_ulogic; -- idle mode scanen : std_ulogic; testen : std_ulogic; - hit : std_ulogic; end record; component iu3 diff --git a/lib/gaisler/leon3/tbufmem.vhd b/lib/gaisler/leon3/tbufmem.vhd index 3bc7a780..eeb9d4e6 100644 --- a/lib/gaisler/leon3/tbufmem.vhd +++ b/lib/gaisler/leon3/tbufmem.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/leon3/vhdlsyn.txt b/lib/gaisler/leon3/vhdlsyn.txt index 3772cc36..ec8a17a1 100644 --- a/lib/gaisler/leon3/vhdlsyn.txt +++ b/lib/gaisler/leon3/vhdlsyn.txt @@ -1,6 +1,10 @@ leon3.vhd +libiu.vhd +libcache.vhd tbufmem.vhd dsu3x.vhd dsu3.vhd dsu3_2x.vhd +clk2xsync.vhd +clk2xqual.vhd grfpushwx.vhd diff --git a/lib/gaisler/leon3ftv2/leon3ft.vhd b/lib/gaisler/leon3ftv2/leon3ft.vhd new file mode 100644 index 00000000..83550c85 --- /dev/null +++ b/lib/gaisler/leon3ftv2/leon3ft.vhd @@ -0,0 +1,189 @@ +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +------------------------------------------------------------------------------ +-- Entity: leon3ft +-- File: leon3ft.vhd +-- Author: Jiri Gaisler, Edvin Catovic, Gaisler Research +-- Description: Top-level LEON3FT component +------------------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; +library grlib; +use grlib.amba.all; +use grlib.stdlib.all; +library techmap; +use techmap.gencomp.all; +use techmap.netcomp.all; +library gaisler; +use gaisler.leon3.all; + +entity leon3ft is + generic ( + hindex : integer := 0; + fabtech : integer range 0 to NTECH := DEFFABTECH; + memtech : integer range 0 to NTECH := DEFMEMTECH; + nwindows : integer range 2 to 32 := 8; + dsu : integer range 0 to 1 := 1; + fpu : integer range 0 to 31 := 0; + v8 : integer range 0 to 63 := 0; + cp : integer range 0 to 1 := 0; + mac : integer range 0 to 1 := 0; + pclow : integer range 0 to 2 := 2; + notag : integer range 0 to 1 := 0; + nwp : integer range 0 to 4 := 2; + icen : integer range 0 to 1 := 1; + irepl : integer range 0 to 2 := 2; + isets : integer range 1 to 4 := 1; + ilinesize : integer range 4 to 8 := 8; + isetsize : integer range 1 to 256 := 8; + isetlock : integer range 0 to 1 := 0; + dcen : integer range 0 to 1 := 0; + drepl : integer range 0 to 2 := 2; + dsets : integer range 1 to 4 := 1; + dlinesize : integer range 4 to 8 := 4; + dsetsize : integer range 1 to 256 := 4; + dsetlock : integer range 0 to 1 := 0; + dsnoop : integer range 0 to 6 := 0; + ilram : integer range 0 to 1 := 0; + ilramsize : integer range 1 to 512 := 1; + ilramstart : integer range 0 to 255 := 16#8e#; + dlram : integer range 0 to 1 := 0; + dlramsize : integer range 1 to 512 := 1; + dlramstart : integer range 0 to 255 := 16#8f#; + mmuen : integer range 0 to 1 := 0; + itlbnum : integer range 2 to 64 := 8; + dtlbnum : integer range 2 to 64 := 8; + tlb_type : integer range 0 to 3 := 1; + tlb_rep : integer range 0 to 1 := 0; + lddel : integer range 1 to 2 := 1; + disas : integer range 0 to 2 := 0; + tbuf : integer range 0 to 64 := 2; + pwd : integer range 0 to 2 := 2; -- power-down + svt : integer range 0 to 1 := 1; -- single vector trapping + rstaddr : integer := 0; + smp : integer range 0 to 15 := 0; -- support SMP systems + iuft : integer range 0 to 4 := 2; + fpft : integer range 0 to 4 := 0; + cmft : integer range 0 to 1 := 0; + iuinj : integer := 0; + ceinj : integer range 0 to 3 := 0; + cached : integer := 0; + netlist : integer := 1; + scantest : integer := 0; + mmupgsz : integer range 0 to 5 := 0; + bp : integer := 1 + ); + port ( + clk : in std_ulogic; -- free-running clock + rstn : in std_ulogic; + ahbi : in ahb_mst_in_type; + ahbo : out ahb_mst_out_type; + ahbsi : in ahb_slv_in_type; + ahbso : in ahb_slv_out_vector; + irqi : in l3_irq_in_type; + irqo : out l3_irq_out_type; + dbgi : in l3_debug_in_type; + dbgo : out l3_debug_out_type; + gclk : in std_ulogic -- gated clock + ); +end; + +architecture rtl of leon3ft is + +constant fpuarch : integer := fpu mod 16; +constant fpunet : integer := fpu / 16; + +--attribute sync_set_reset : string; +--attribute sync_set_reset of rst : signal is "true"; + +begin + + l3s : if (netlist = 0) generate + u0 : leon3s -- LEON3 processor + generic map (hindex, fabtech, memtech, nwindows, dsu, fpu, v8, + cp, mac, pclow, notag, nwp, icen, irepl, isets, + ilinesize, isetsize, isetlock, dcen, drepl, dsets, dlinesize, + dsetsize, dsetlock, dsnoop, ilram, ilramsize, ilramstart, dlram, + dlramsize, dlramstart, mmuen, itlbnum, dtlbnum, tlb_type, tlb_rep, + lddel, disas, tbuf, pwd, svt, rstaddr, smp, cached, scantest, mmupgsz) + port map (clk, rstn, ahbi, ahbo, ahbsi, ahbso, irqi, irqo, dbgi, dbgo); + end generate; + +ntl : if netlist /= 0 generate + + l3fnet : leon3ft_net + generic map (hindex, fabtech, memtech, nwindows, dsu, fpuarch, v8, cp, mac, + pclow, notag, nwp, icen, irepl, isets, ilinesize, isetsize, isetlock, + dcen, drepl, dsets, dlinesize, dsetsize, dsetlock, dsnoop, ilram, + ilramsize, ilramstart, dlram, dlramsize, dlramstart, mmuen, itlbnum, dtlbnum, + tlb_type, tlb_rep, lddel, disas, tbuf, pwd, svt, rstaddr, smp, iuft, fpft, + cmft, cached, scantest, mmupgsz) + port map (clk => clk, gclk => gclk, rstn => rstn, ahbix => ahbi, ahbox =>ahbo, + ahbsix => ahbsi, ahbso => ahbso, + irqi_irl => irqi.irl, + irqi_rst => irqi.rst, + irqi_run => irqi.run, + irqo_intack => irqo.intack, + irqo_irl => irqo.irl, + irqo_pwd => irqo.pwd, + dbgi_dsuen => dbgi.dsuen, + dbgi_denable => dbgi.denable, + dbgi_dbreak => dbgi.dbreak, + dbgi_step => dbgi.step, + dbgi_halt => dbgi.halt, + dbgi_reset => dbgi.reset, + dbgi_dwrite => dbgi.dwrite, + dbgi_daddr => dbgi.daddr, + dbgi_ddata => dbgi.ddata, + dbgi_btrapa => dbgi.btrapa, + dbgi_btrape => dbgi.btrape, + dbgi_berror => dbgi.berror, + dbgi_bwatch => dbgi.bwatch, + dbgi_bsoft => dbgi.bsoft, + dbgi_tenable => dbgi.tenable, + dbgi_timer => dbgi.timer, + dbgo_data => dbgo.data, + dbgo_crdy => dbgo.crdy, + dbgo_dsu => dbgo.dsu, + dbgo_dsumode => dbgo.dsumode, + dbgo_error => dbgo.error, + dbgo_halt => dbgo.halt, + dbgo_pwd => dbgo.pwd, + dbgo_idle => dbgo.idle, + dbgo_ipend => dbgo.ipend, + dbgo_icnt => dbgo.icnt + ); + + +end generate; + +-- pragma translate_off + msg: if netlist = 0 generate + bootmsg : report_version + generic map ( + "leon3ft_" & tost(hindex) & ": LEON3FT SPARC V8 processor rev " & tost(LEON3_VERSION) + & ": iuft: " & tost(iuft) & ", fpft: " & tost(fpft), + "leon3ft_" & tost(hindex) & ": icache " & tost(isets*icen) & "*" & tost(isetsize*icen) & + " kbyte, dcache " & tost(dsets*dcen) & "*" & tost(dsetsize*dcen) & " kbyte" + ); + end generate; +-- pragma translate_on + +end; diff --git a/lib/gaisler/leon3ftv2/leon3net.in b/lib/gaisler/leon3ftv2/leon3net.in new file mode 100644 index 00000000..be1f1d6e --- /dev/null +++ b/lib/gaisler/leon3ftv2/leon3net.in @@ -0,0 +1,54 @@ + +mainmenu_option next_comment + comment 'LEON3FT processor ' + mainmenu_option next_comment + comment 'Processor core ' + bool 'SPARC V8 MUL/DIV instructions' CONFIG_IU_V8MULDIV + choice 'Instruction cache size (kbytes)' \ + "1 CONFIG_ICACHE_SZ1 \ + 2 CONFIG_ICACHE_SZ2 \ + 4 CONFIG_ICACHE_SZ4 \ + 8 CONFIG_ICACHE_SZ8 \ + 16 CONFIG_ICACHE_SZ16 \ + 32 CONFIG_ICACHE_SZ32 \ + 64 CONFIG_ICACHE_SZ64 \ + 128 CONFIG_ICACHE_SZ128 \ + 256 CONFIG_ICACHE_SZ256" 4 + choice 'Data cache size (kbytes)' \ + "1 CONFIG_DCACHE_SZ1 \ + 2 CONFIG_DCACHE_SZ2 \ + 4 CONFIG_DCACHE_SZ4 \ + 8 CONFIG_DCACHE_SZ8 \ + 16 CONFIG_DCACHE_SZ16 \ + 32 CONFIG_DCACHE_SZ32 \ + 64 CONFIG_DCACHE_SZ64 \ + 128 CONFIG_DCACHE_SZ128 \ + 256 CONFIG_DCACHE_SZ256" 4 + bool 'Enable FPU ' CONFIG_FPU_ENABLE + bool 'Enable MMU ' CONFIG_MMU_ENABLE + endmenu + + mainmenu_option next_comment + comment 'Debug Support Unit ' + bool 'Enable LEON3 Debug support unit ' CONFIG_DSU_ENABLE + if [ "$CONFIG_DSU_ENABLE" = "y" ]; then + bool 'Instruction trace buffer' CONFIG_DSU_ITRACE + if [ "$CONFIG_DSU_ITRACE" = "y" ]; then + choice 'Instruction trace buffer size (kbytes)' \ + "2 CONFIG_DSU_ITRACESZ2" 2 + fi + bool 'AHB trace buffer' CONFIG_DSU_ATRACE + if [ "$CONFIG_DSU_ATRACE" = "y" ]; then + choice 'AHB trace buffer size (kbytes)' \ + "1 CONFIG_DSU_ATRACESZ1 \ + 2 CONFIG_DSU_ATRACESZ2 \ + 4 CONFIG_DSU_ATRACESZ4 \ + 8 CONFIG_DSU_ATRACESZ8 \ + 16 CONFIG_DSU_ATRACESZ16" 1 + fi + fi + bool 'Processor disassembly to console ' CONFIG_IU_DISAS + endmenu + +endmenu + diff --git a/designs/leon3-wildcard-xcv300e/tkconfig.h b/lib/gaisler/leon3ftv2/leon3net.in.h similarity index 88% rename from designs/leon3-wildcard-xcv300e/tkconfig.h rename to lib/gaisler/leon3ftv2/leon3net.in.h index 6fe32cec..b9ebf8b1 100644 --- a/designs/leon3-wildcard-xcv300e/tkconfig.h +++ b/lib/gaisler/leon3ftv2/leon3net.in.h @@ -23,27 +23,11 @@ #endif #ifdef CONFIG_IU_V8MULDIV -#ifdef CONFIG_IU_MUL_LATENCY_4 -#define CFG_IU_V8 1 -#elif defined CONFIG_IU_MUL_LATENCY_5 #define CFG_IU_V8 2 -#elif defined CONFIG_IU_MUL_LATENCY_2 -#define CFG_IU_V8 16#32# -#endif #else #define CFG_IU_V8 0 #endif -#ifdef CONFIG_IU_MUL_MODGEN -#define CFG_IU_MUL_STRUCT 1 -#elif defined CONFIG_IU_MUL_TECHSPEC -#define CFG_IU_MUL_STRUCT 2 -#elif defined CONFIG_IU_MUL_DW -#define CFG_IU_MUL_STRUCT 3 -#else -#define CFG_IU_MUL_STRUCT 0 -#endif - #ifndef CONFIG_PWD #define CONFIG_PWD 0 #endif @@ -148,9 +132,7 @@ #define CFG_ILINE_SZ 8 #endif -#if defined CONFIG_ICACHE_ALGODIR -#define CFG_ICACHE_ALGORND 3 -#elif defined CONFIG_ICACHE_ALGORND +#if defined CONFIG_ICACHE_ALGORND #define CFG_ICACHE_ALGORND 2 #elif defined CONFIG_ICACHE_ALGOLRR #define CFG_ICACHE_ALGORND 1 @@ -235,9 +217,7 @@ #define CFG_DLINE_SZ 8 #endif -#if defined CONFIG_DCACHE_ALGODIR -#define CFG_DCACHE_ALGORND 3 -#elif defined CONFIG_DCACHE_ALGORND +#if defined CONFIG_DCACHE_ALGORND #define CFG_DCACHE_ALGORND 2 #elif defined CONFIG_DCACHE_ALGOLRR #define CFG_DCACHE_ALGORND 1 @@ -445,7 +425,7 @@ #endif #ifndef CONFIG_LEON3_NETLIST -#define CONFIG_LEON3_NETLIST 0 +#define CONFIG_LEON3_NETLIST 1 #endif #ifdef CONFIG_DEBUG_PC32 @@ -461,30 +441,3 @@ #endif - -#ifndef CONFIG_AHBRAM_ENABLE -#define CONFIG_AHBRAM_ENABLE 0 -#endif - -#ifndef CONFIG_AHBRAM_START -#define CONFIG_AHBRAM_START A00 -#endif - -#if defined CONFIG_AHBRAM_SZ1 -#define CFG_AHBRAMSZ 1 -#elif CONFIG_AHBRAM_SZ2 -#define CFG_AHBRAMSZ 2 -#elif CONFIG_AHBRAM_SZ4 -#define CFG_AHBRAMSZ 4 -#elif CONFIG_AHBRAM_SZ8 -#define CFG_AHBRAMSZ 8 -#elif CONFIG_AHBRAM_SZ16 -#define CFG_AHBRAMSZ 16 -#elif CONFIG_AHBRAM_SZ32 -#define CFG_AHBRAMSZ 32 -#elif CONFIG_AHBRAM_SZ64 -#define CFG_AHBRAMSZ 64 -#else -#define CFG_AHBRAMSZ 1 -#endif - diff --git a/designs/leon3-wildcard-xcv300e/config.help b/lib/gaisler/leon3ftv2/leon3net.in.help similarity index 87% rename from designs/leon3-wildcard-xcv300e/config.help rename to lib/gaisler/leon3ftv2/leon3net.in.help index 285c890b..183f7e42 100644 --- a/designs/leon3-wildcard-xcv300e/config.help +++ b/lib/gaisler/leon3ftv2/leon3net.in.help @@ -38,7 +38,7 @@ CONFIG_IU_MUL_LATENCY_2 4-clocks 16x16 standard multiplier 4/4 5-clocks 16x16 pipelined multiplier 4/5 -MAC operation +Multiplier latency CONFIG_IU_MUL_MAC If you say Y here, the SPARC V8e UMAC/SMAC (multiply-accumulate) instructions will be enabled. The instructions implement a @@ -46,16 +46,6 @@ CONFIG_IU_MUL_MAC The details of these instructions can be found in the LEON manual, This option is only available when 16x16 multiplier is used. -Multiplier structure -CONFIG_IU_MUL_INFERRED - Structure options for the integer multiplier. The multiplier - can be implemented with the following structures: - - * Inferred by the synthesis tool - * Generated using Module Generators from NTNU - * Using technology specific netlists (TechSpec) - * Using Synopsys Designware (DW02_mult and DW_mult_pipe) - Branch prediction CONFIG_IU_BP Enabling branch prediction will improve performance with @@ -174,21 +164,21 @@ CONFIG_DCACHE_ENABLE Instruction cache associativity CONFIG_ICACHE_ASSO1 - The instruction cache can be implemented as a multi-way cache with - 1 - 4 ways. Higher associativity usually increases the cache hit + The instruction cache can be implemented as a multi-set cache with + 1 - 4 sets. Higher associativity usually increases the cache hit rate and thereby the performance. The downside is higher power consumption and increased gate-count for tag comparators. - Note that a 1-way cache is effectively a direct-mapped cache. + Note that a 1-set cache is effectively a direct-mapped cache. -Instruction cache way size +Instruction cache set size CONFIG_ICACHE_SZ1 - The size of each way in the instuction cache (kbytes). Valid values + The size of each set in the instuction cache (kbytes). Valid values are 1 - 64 in binary steps. Note that the full range is only supported by the generic and virtex2 targets. Most target packages are limited - to 2 - 16 kbyte. Large way size gives higher performance but might + to 2 - 16 kbyte. Large set size gives higher performance but might affect the maximum frequency (on ASIC targets). The total instruction - cache size is the number of way multiplied with the way size. + cache size is the number of set multiplied with the set size. Instruction cache line size CONFIG_ICACHE_LZ16 @@ -199,17 +189,17 @@ CONFIG_ICACHE_LZ16 Instruction cache replacement algorithm CONFIG_ICACHE_ALGORND - Cache replacement algorithm for caches with 2 - 4 ways. The 'random' - algorithm selects the way to evict randomly. The least-recently-replaced - (LRR) algorithm evicts the way least recently replaced. The least- - recently-used (LRU) algorithm evicts the way least recently accessed. + Cache replacement algorithm for caches with 2 - 4 sets. The 'random' + algorithm selects the set to evict randomly. The least-recently-replaced + (LRR) algorithm evicts the set least recently replaced. The least- + recently-used (LRU) algorithm evicts the set least recently accessed. The random algorithm uses a simple 1- or 2-bit counter to select - the eviction way and has low area overhead. The LRR scheme uses one + the eviction set and has low area overhead. The LRR scheme uses one extra bit in the tag ram and has therefore also low area overhead. - However, the LRR scheme can only be used with 2-way caches. The LRU + However, the LRR scheme can only be used with 2-set caches. The LRU scheme has typically the best performance but also highest area overhead. - A 2-way LRU uses 1 flip-flop per line, a 3-way LRU uses 3 flip-flops - per line, and a 4-way LRU uses 5 flip-flops per line to store the access + A 2-set LRU uses 1 flip-flop per line, a 3-set LRU uses 3 flip-flops + per line, and a 4-set LRU uses 5 flip-flops per line to store the access history. Instruction cache locking @@ -221,22 +211,22 @@ CONFIG_ICACHE_LOCK Data cache associativity CONFIG_DCACHE_ASSO1 - The data cache can be implemented as a multi-way cache with - 1 - 4 ways. Higher associativity usually increases the cache hit + The data cache can be implemented as a multi-set cache with + 1 - 4 sets. Higher associativity usually increases the cache hit rate and thereby the performance. The downside is higher power consumption and increased gate-count for tag comparators. - Note that a 1-way cache is effectively a direct-mapped cache. + Note that a 1-set cache is effectively a direct-mapped cache. -Data cache way size +Data cache set size CONFIG_DCACHE_SZ1 - The size of each way in the data cache (kbytes). Valid values are + The size of each set in the data cache (kbytes). Valid values are 1 - 64 in binary steps. Note that the full range is only supported by the generic and virtex2 targets. Most target packages are limited to 2 - 16 kbyte. A large cache gives higher performance but the data cache is timing critical an a too large setting might affect the maximum frequency (on ASIC targets). The total data cache size - is the number of way multiplied with the way size. + is the number of set multiplied with the set size. Data cache line size CONFIG_DCACHE_LZ16 @@ -449,24 +439,3 @@ CONFIG_DEBUG_PC32 be implemented with full 32 bits, making debugging of the VHDL model much easier. Turn of this option for synthesis or you will be wasting area. -On-chip ram -CONFIG_AHBRAM_ENABLE - Say Y here to add a block on on-chip ram to the AHB bus. The ram - provides 0-waitstates read access and 0/1 waitstates write access. - All AHB burst types are supported, as well as 8-, 16- and 32-bit - data size. - -On-chip ram size -CONFIG_AHBRAM_SZ1 - Set the size of the on-chip AHB ram. The ram is infered/instantiated - as four byte-wide ram slices to allow byte and half-word write - accesses. It is therefore essential that the target package can - infer byte-wide rams. This is currently supported on the generic, - virtex, virtex2, proasic and axellerator targets. - -On-chip ram address -CONFIG_AHBRAM_START - Set the start address of AHB RAM (HADDR[31:20]). The RAM will occupy - a 1 Mbyte slot at the selected address. Default is A00, corresponding - to AHB address 0xA0000000. - diff --git a/designs/leon3-wildcard-xcv300e/config.vhd.h b/lib/gaisler/leon3ftv2/leon3net.in.vhd similarity index 91% rename from designs/leon3-wildcard-xcv300e/config.vhd.h rename to lib/gaisler/leon3ftv2/leon3net.in.vhd index 06f6cac6..da938972 100644 --- a/designs/leon3-wildcard-xcv300e/config.vhd.h +++ b/lib/gaisler/leon3ftv2/leon3net.in.vhd @@ -2,7 +2,7 @@ constant CFG_LEON3 : integer := CONFIG_LEON3; constant CFG_NCPU : integer := CONFIG_PROC_NUM; constant CFG_NWIN : integer := CONFIG_IU_NWINDOWS; - constant CFG_V8 : integer := CFG_IU_V8 + 4*CFG_IU_MUL_STRUCT; + constant CFG_V8 : integer := CFG_IU_V8; constant CFG_MAC : integer := CONFIG_IU_MUL_MAC; constant CFG_BP : integer := CONFIG_IU_BP; constant CFG_SVT : integer := CONFIG_IU_SVT; @@ -11,7 +11,7 @@ constant CFG_NOTAG : integer := CONFIG_NOTAG; constant CFG_NWP : integer := CONFIG_IU_WATCHPOINTS; constant CFG_PWD : integer := CONFIG_PWD*2; - constant CFG_FPU : integer := CONFIG_FPU + 16*CONFIG_FPU_NETLIST + 32*CONFIG_FPU_GRFPU_SHARED; + constant CFG_FPU : integer := CONFIG_FPU + 16*CONFIG_FPU_NETLIST; constant CFG_GRFPUSH : integer := CONFIG_FPU_GRFPU_SHARED; constant CFG_ICEN : integer := CONFIG_ICACHE_ENABLE; constant CFG_ISETS : integer := CFG_IU_ISETS; @@ -52,8 +52,3 @@ constant CFG_DISAS : integer := CONFIG_IU_DISAS + CONFIG_IU_DISAS_NET; constant CFG_PCLOW : integer := CFG_DEBUG_PC32; --- AHB RAM - constant CFG_AHBRAMEN : integer := CONFIG_AHBRAM_ENABLE; - constant CFG_AHBRSZ : integer := CFG_AHBRAMSZ; - constant CFG_AHBRADDR : integer := 16#CONFIG_AHBRAM_START#; - diff --git a/lib/gaisler/leon3ftv2/vhdlsyn.txt b/lib/gaisler/leon3ftv2/vhdlsyn.txt new file mode 100644 index 00000000..aaf0d397 --- /dev/null +++ b/lib/gaisler/leon3ftv2/vhdlsyn.txt @@ -0,0 +1 @@ +leon3ft.vhd diff --git a/lib/gaisler/leon3v2/cachemem.vhd b/lib/gaisler/leon3v1/cachemem.vhd similarity index 61% rename from lib/gaisler/leon3v2/cachemem.vhd rename to lib/gaisler/leon3v1/cachemem.vhd index 0b080f73..6a769e25 100644 --- a/lib/gaisler/leon3v2/cachemem.vhd +++ b/lib/gaisler/leon3v1/cachemem.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -55,9 +55,7 @@ entity cachemem is dlram : integer range 0 to 1 := 0; dlramsize : integer range 1 to 512 := 1; mmuen : integer range 0 to 1 := 0; - errinj : integer range 0 to 3 := 0; - testen : integer range 0 to 3 := 0; - cft : integer range 0 to 1 := 0 + testen : integer range 0 to 3 := 0 ); port ( clk : in std_ulogic; @@ -70,7 +68,7 @@ end; architecture rtl of cachemem is constant DSNOOPSEP : boolean := (dsnoop > 3); constant DSNOOPFAST : boolean := (dsnoop = 2) or (dsnoop = 6); - + constant ILINE_BITS : integer := log2(ilinesize); constant IOFFSET_BITS : integer := 8 +log2(isetsize) - ILINE_BITS; constant DLINE_BITS : integer := log2(dlinesize); @@ -78,6 +76,7 @@ architecture rtl of cachemem is constant ITAG_BITS : integer := TAG_HIGH - IOFFSET_BITS - ILINE_BITS - 2 + ilinesize + 1; constant DTAG_BITS : integer := TAG_HIGH - DOFFSET_BITS - DLINE_BITS - 2 + dlinesize + 1; constant IPTAG_BITS : integer := TAG_HIGH - IOFFSET_BITS - ILINE_BITS - 2 + 1; + constant DPTAG_BITS : integer := TAG_HIGH - DOFFSET_BITS - DLINE_BITS - 2 + 1; constant ILRR_BIT : integer := creplalg_tbl(irepl); constant DLRR_BIT : integer := creplalg_tbl(drepl); constant ITAG_LOW : integer := IOFFSET_BITS + ILINE_BITS + 2; @@ -93,60 +92,37 @@ architecture rtl of cachemem is constant MMUCTX_BITS : natural := 8*mmuen; -- i/d tag layout - -- +-----+----------+---+--------+-----+-------+ - -- | LRR | LOCK_BIT |PAR| MMUCTX | TAG | VALID | - -- +-----+----------+---+--------+-----+-------+ - -- [opt] [ opt ] [ ] [ opt ] [ ] - - constant TPARBITS : integer := 4; - constant DPARBITS : integer := 4; - constant STPARBITS : integer := 1; - - constant ITWIDTH : natural := ITAG_BITS + ILRR_BIT + ICLOCK_BIT + MMUCTX_BITS + TPARBITS*cft; - constant DTWIDTH : natural := DTAG_BITS + DLRR_BIT + DCLOCK_BIT + MMUCTX_BITS + TPARBITS*cft; - constant IDWIDTH : natural := 32 + DPARBITS*cft; - constant DDWIDTH : natural := 32 + DPARBITS*cft; - constant DPTAG_BITS : integer := TAG_HIGH - DOFFSET_BITS - DLINE_BITS - 2 + 1; - - constant DTLRR_BIT_POS : natural := DTWIDTH-DLRR_BIT; -- if DTLRR_BIT=0 discard (pos DTWIDTH) - constant DTLOCK_BIT_POS : natural := DTWIDTH-(DLRR_BIT+DCLOCK_BIT); -- if DTCLOCK_BIT=0 but DTLRR_BIT=1 lrr will overwrite - constant DTMMU_VEC_U : natural := DTWIDTH-(DLRR_BIT+DCLOCK_BIT+TPARBITS*cft)-1; - constant DTMMU_VEC_D : natural := DTWIDTH-(DLRR_BIT+DCLOCK_BIT+TPARBITS*cft+MMUCTX_BITS); - - constant ITLRR_BIT_POS : natural := ITWIDTH-ILRR_BIT; -- if DLRR_BIT=0 discard (pos DTWIDTH) - constant ITLOCK_BIT_POS : natural := ITWIDTH-(ILRR_BIT+ICLOCK_BIT); -- if DCLOCK_BIT=0 but DLRR_BIT=1 lrr will overwrite - constant ITMMU_VEC_U : natural := ITWIDTH-(ILRR_BIT+ICLOCK_BIT+TPARBITS*cft)-1; - constant ITMMU_VEC_D : natural := ITWIDTH-(ILRR_BIT+ICLOCK_BIT+TPARBITS*cft+MMUCTX_BITS); - + -- +-----+----------+--------+-----+-------+ + -- | LRR | LOCK_BIT | MMUCTX | TAG | VALID | + -- +-----+----------+--------+-----+-------+ + + constant ITWIDTH : natural := ITAG_BITS + ILRR_BIT + ICLOCK_BIT + MMUCTX_BITS; + constant DTWIDTH : natural := DTAG_BITS + DLRR_BIT + DCLOCK_BIT + MMUCTX_BITS; + constant IDWIDTH : natural := 32; + constant DDWIDTH : natural := 32; + subtype dtdatain_vector is std_logic_vector(DTWIDTH downto 0); type dtdatain_type is array (0 to MAXSETS-1) of dtdatain_vector; subtype itdatain_vector is std_logic_vector(ITWIDTH downto 0); type itdatain_type is array (0 to MAXSETS-1) of itdatain_vector; - subtype dddatain_vector is std_logic_vector(DDWIDTH-1 downto 0); - type dddatain_type is array (0 to MAXSETS-1) of dddatain_vector; - subtype itdataout_vector is std_logic_vector(ITWIDTH downto 0); + subtype itdataout_vector is std_logic_vector(ITWIDTH-1 downto 0); type itdataout_type is array (0 to MAXSETS-1) of itdataout_vector; subtype iddataout_vector is std_logic_vector(IDWIDTH -1 downto 0); type iddataout_type is array (0 to MAXSETS-1) of iddataout_vector; - subtype dtdataout_vector is std_logic_vector(DTWIDTH downto 0); + subtype dtdataout_vector is std_logic_vector(DTWIDTH-1 downto 0); type dtdataout_type is array (0 to MAXSETS-1) of dtdataout_vector; subtype dddataout_vector is std_logic_vector(DDWIDTH -1 downto 0); type dddataout_type is array (0 to MAXSETS-1) of dddataout_vector; - - + signal itaddr : std_logic_vector(IOFFSET_BITS + ILINE_BITS -1 downto ILINE_BITS); signal idaddr : std_logic_vector(IOFFSET_BITS + ILINE_BITS -1 downto 0); signal ildaddr : std_logic_vector(ILRAM_BITS-3 downto 0); - signal itdatain : itdatain_type; - signal itdatainx : itdatain_type; - signal itdatain_cmp : itdatain_type; + signal itdatain : itdatain_type; signal itdataout : itdataout_type; signal iddatain : std_logic_vector(IDWIDTH -1 downto 0); - signal iddatainx : std_logic_vector(IDWIDTH -1 downto 0); - signal iddatain_cmp : std_logic_vector(IDWIDTH -1 downto 0); signal iddataout : iddataout_type; signal ildataout : std_logic_vector(31 downto 0); @@ -157,22 +133,17 @@ architecture rtl of cachemem is signal dtaddr : std_logic_vector(DOFFSET_BITS + DLINE_BITS -1 downto DLINE_BITS); signal dtaddr2 : std_logic_vector(DOFFSET_BITS + DLINE_BITS -1 downto DLINE_BITS); - signal dtaddr3 : std_logic_vector(DOFFSET_BITS + DLINE_BITS -1 downto DLINE_BITS); signal ddaddr : std_logic_vector(DOFFSET_BITS + DLINE_BITS -1 downto 0); signal ldaddr : std_logic_vector(DLRAM_BITS-1 downto 2); - signal dtdatain : dtdatain_type; - signal dtdatainx : dtdatain_type; - signal dtdatain_cmp : dtdatain_type; + signal dtdatain : dtdatain_type; signal dtdatain2 : dtdatain_type; signal dtdatain3 : dtdatain_type; signal dtdatainu : dtdatain_type; signal dtdataout : dtdataout_type; signal dtdataout2: dtdataout_type; signal dtdataout3: dtdataout_type; - signal dddatain : dddatain_type; - signal dddatainx : dddatain_type; - signal dddatain_cmp : dddatain_type; + signal dddatain : cdatatype; signal dddataout : dddataout_type; signal lddatain, ldataout : std_logic_vector(31 downto 0); @@ -185,8 +156,7 @@ architecture rtl of cachemem is signal ddwrite : std_logic_vector(0 to MAXSETS-1); signal vcc, gnd : std_ulogic; - - + begin vcc <= '1'; gnd <= '0'; @@ -194,98 +164,74 @@ begin idaddr <= crami.icramin.address(IOFFSET_BITS + ILINE_BITS -1 downto 0); ildaddr <= crami.icramin.address(ILRAM_BITS-3 downto 0); - itinsel : process(clk, crami, dtdataout2, dtdataout3 - ) + itinsel : process(crami, dtdataout2, dtdataout3) variable viddatain : std_logic_vector(IDWIDTH -1 downto 0); - variable vdddatain : dddatain_type; + variable vdddatain : cdatatype; variable vitdatain : itdatain_type; variable vdtdatain : dtdatain_type; variable vdtdatain2 : dtdatain_type; variable vdtdatain3 : dtdatain_type; variable vdtdatainu : dtdatain_type; - - begin - viddatain := (others => '0'); vdddatain := (others => (others => '0')); - + viddatain(31 downto 0) := crami.icramin.data; for i in 0 to DSETS-1 loop vdtdatain(i) := (others => '0'); if mmuen = 1 then - vdtdatain(i)(DTMMU_VEC_U downto DTMMU_VEC_D) := crami.dcramin.ctx(i); + vdtdatain(i)((DTWIDTH - (DLRR_BIT+DCLOCK_BIT+1)) downto (DTWIDTH - (DLRR_BIT+DCLOCK_BIT+M_CTX_SZ))) := crami.dcramin.ctx(i); end if; - vdtdatain(i)(DTLOCK_BIT_POS) := crami.dcramin.tag(i)(CTAG_LOCKPOS); + vdtdatain(i)(DTWIDTH-(DCLOCK_BIT + DLRR_BIT)) := crami.dcramin.tag(i)(CTAG_LOCKPOS); if drepl = lrr then - vdtdatain(i)(DTLRR_BIT_POS) := crami.dcramin.tag(i)(CTAG_LRRPOS); + vdtdatain(i)(DTWIDTH-DLRR_BIT) := crami.dcramin.tag(i)(CTAG_LRRPOS); end if; vdtdatain(i)(DTAG_BITS-1 downto 0) := crami.dcramin.tag(i)(TAG_HIGH downto DTAG_LOW) & crami.dcramin.tag(i)(dlinesize-1 downto 0); if (crami.dcramin.flush = '1') then - vdtdatain(i) := (others => '0'); - vdtdatain(i)(DTAG_BITS-1 downto DTAG_BITS-8) := X"FF"; - vdtdatain(i)(DTAG_BITS-9 downto DTAG_BITS-10) := conv_std_logic_vector(i,2); - vdtdatain(i)(DTAG_BITS-11 downto DTAG_BITS-12) := conv_std_logic_vector(i,2); + vdtdatain(i)(DTAG_BITS-1 downto DTAG_BITS-4) := "1111"; + vdtdatain(i)(DTAG_BITS-5 downto DTAG_BITS-6) := conv_std_logic_vector(i,2); + vdtdatain(i)(DTAG_BITS-7 downto DTAG_BITS-8) := conv_std_logic_vector(i,2); end if; end loop; - + vdtdatain2 := (others => (others => '0')); for i in 0 to DSETS-1 loop - vdtdatain2(i) := (others => '0'); - vdddatain(i)(31 downto 0) := crami.dcramin.data(i); - vdtdatain2(i)(DTAG_BITS-1 downto DTAG_BITS-8) := X"FF"; - vdtdatain2(i)(DTAG_BITS-9 downto DTAG_BITS-10) := conv_std_logic_vector(i,2); - vdtdatain2(i)(DTAG_BITS-11 downto DTAG_BITS-12) := conv_std_logic_vector(i,2); + vdtdatain2(i)(DTAG_BITS-1 downto DTAG_BITS-4) := "1111"; + vdtdatain2(i)(DTAG_BITS-5 downto DTAG_BITS-6) := conv_std_logic_vector(i,2); + vdtdatain2(i)(DTAG_BITS-7 downto DTAG_BITS-8) := conv_std_logic_vector(i,2); end loop; + vdddatain := crami.dcramin.data; vdtdatainu := (others => (others => '0')); vdtdatain3 := (others => (others => '0')); for i in 0 to DSETS-1 loop vdtdatain3(i) := (others => '0'); vdtdatain3(i)(DTAG_BITS-1 downto DTAG_BITS-DPTAG_BITS) := crami.dcramin.ptag(i)(TAG_HIGH downto DTAG_LOW); - if DSNOOPSEP and (crami.dcramin.flush = '1') then - vdtdatain3(i) := (others => '0'); - vdtdatain3(i)(DTAG_BITS-1 downto DTAG_BITS-8) := X"F3"; - vdtdatain3(i)(DTAG_BITS-9 downto DTAG_BITS-10) := conv_std_logic_vector(i,2); - vdtdatain3(i)(DTAG_BITS-11 downto DTAG_BITS-12) := conv_std_logic_vector(i,2); - end if; end loop; for i in 0 to ISETS-1 loop vitdatain(i) := (others => '0'); if mmuen = 1 then - vitdatain(i)(ITMMU_VEC_U downto ITMMU_VEC_D) := crami.icramin.ctx; + vitdatain(i)((ITWIDTH - (ILRR_BIT+ICLOCK_BIT+1)) downto (ITWIDTH - (ILRR_BIT+ICLOCK_BIT+M_CTX_SZ))) := crami.icramin.ctx; end if; - vitdatain(i)(ITLOCK_BIT_POS) := crami.icramin.tag(i)(CTAG_LOCKPOS); + vitdatain(i)(ITWIDTH-(ICLOCK_BIT + ILRR_BIT)) := crami.icramin.tag(i)(CTAG_LOCKPOS); if irepl = lrr then - vitdatain(i)(ITLRR_BIT_POS) := crami.icramin.tag(i)(CTAG_LRRPOS); + vitdatain(i)(ITWIDTH-ILRR_BIT) := crami.icramin.tag(i)(CTAG_LRRPOS); end if; - vitdatain(i)(ITAG_BITS-1 downto 0) := crami.icramin.tag(i)(TAG_HIGH downto ITAG_LOW) - & crami.icramin.tag(i)(ilinesize-1 downto 0); + vitdatain(i)(ITAG_BITS-1 downto 0) := crami.icramin.tag(i)(TAG_HIGH downto ITAG_LOW) & crami.icramin.tag(i)(ilinesize-1 downto 0); if (crami.icramin.flush = '1') then - vitdatain(i) := (others => '0'); - vitdatain(i)(ITAG_BITS-1 downto ITAG_BITS-8) := X"FF"; - vitdatain(i)(ITAG_BITS-9 downto ITAG_BITS-10) := conv_std_logic_vector(i,2); - vitdatain(i)(ITAG_BITS-11 downto ITAG_BITS-12) := conv_std_logic_vector(i,2); + vitdatain(i)(ITAG_BITS-1 downto ITAG_BITS-4) := "1111"; + vitdatain(i)(ITAG_BITS-5 downto ITAG_BITS-6) := conv_std_logic_vector(i,2); + vitdatain(i)(ITAG_BITS-7 downto ITAG_BITS-8) := conv_std_logic_vector(i,2); end if; end loop; --- pragma translate_off - itdatainx <= vitdatain; iddatainx <= viddatain; - dtdatainx <= vdtdatain; dddatainx <= vdddatain; - - --- pragma translate_on - itdatain <= vitdatain; iddatain <= viddatain; - dtdatain <= vdtdatain; dtdatain2 <= vdtdatain2; dddatain <= vdddatain; - dtdatain3 <= vdtdatain3; - - - end process; + dtdatain <= vdtdatain; dtdatain2 <= vdtdatain2; dtdatain3 <= vdtdatain3; dtdatainu <= vdtdatainu; dddatain <= vdddatain; + end process; itwrite <= crami.icramin.twrite; @@ -295,7 +241,6 @@ begin dtaddr <= crami.dcramin.address(DOFFSET_BITS + DLINE_BITS -1 downto DLINE_BITS); dtaddr2 <= crami.dcramin.saddress(DOFFSET_BITS-1 downto 0); - dtaddr3 <= crami.dcramin.faddress(DOFFSET_BITS-1 downto 0); ddaddr <= crami.dcramin.address(DOFFSET_BITS + DLINE_BITS -1 downto 0); ldaddr <= crami.dcramin.ldramin.address(DLRAM_BITS-1 downto 2); dtwrite <= crami.dcramin.twrite; @@ -309,11 +254,14 @@ begin ime : if icen = 1 generate im0 : for i in 0 to ISETS-1 generate - itags0 : syncram generic map (tech, IOFFSET_BITS, ITWIDTH, testen) - port map ( clk, itaddr, itdatain(i)(ITWIDTH-1 downto 0), itdataout(i)(ITWIDTH-1 downto 0), itenable, itwrite(i), crami.dcramin.tdiag); - idata0 : syncram generic map (tech, IOFFSET_BITS+ILINE_BITS, IDWIDTH, testen) - port map (clk, idaddr, iddatain, iddataout(i), idenable, idwrite(i), crami.dcramin.ddiag); - itdataout(i)(ITWIDTH) <= '0'; + itags0 : syncram generic map (tech, IOFFSET_BITS, ITWIDTH) + port map ( clk, itaddr, itdatain(i)(ITWIDTH-1 downto 0), itdataout(i)(ITWIDTH-1 downto 0), itenable, itwrite(i)); + idata0 : syncram generic map (tech, IOFFSET_BITS+ILINE_BITS, IDWIDTH) + port map (clk, idaddr, iddatain, iddataout(i), idenable, idwrite(i)); + end generate; + ind0 : for i in ISETS to MAXSETS-1 generate + itdataout(i) <= (others => '0'); + iddataout(i) <= (others => '0'); end generate; end generate; @@ -326,18 +274,18 @@ begin ild0 : if ilram = 1 generate ildata0 : syncram - generic map (tech, ILRAM_BITS-2, 32, testen) + generic map (tech, ILRAM_BITS-2, 32) port map (clk, ildaddr, iddatain, ildataout, - crami.icramin.ldramin.enable, crami.icramin.ldramin.write, crami.dcramin.ddiag); + crami.icramin.ldramin.enable, crami.icramin.ldramin.write); end generate; dme : if dcen = 1 generate dtags0 : if DSNOOP = 0 generate dt0 : for i in 0 to DSETS-1 generate dtags0 : syncram - generic map (tech, DOFFSET_BITS, DTWIDTH, testen) + generic map (tech, DOFFSET_BITS, DTWIDTH) port map (clk, dtaddr, dtdatain(i)(DTWIDTH-1 downto 0), - dtdataout(i)(DTWIDTH-1 downto 0), dtenable(i), dtwrite(i), crami.dcramin.tdiag); + dtdataout(i)(DTWIDTH-1 downto 0), dtenable(i), dtwrite(i)); end generate; end generate; @@ -346,57 +294,62 @@ begin dt0 : for i in 0 to DSETS-1 generate dtags0 : syncram_dp generic map (tech, DOFFSET_BITS, DTWIDTH) port map ( - clk, dtaddr, dtdatain(i)(DTWIDTH-1 downto 0), + clk, dtaddr, dtdatain(i)(DTWIDTH-1 downto 0), dtdataout(i)(DTWIDTH-1 downto 0), dtenable(i), dtwrite(i), - sclk, dtaddr2, dtdatain2(i)(DTWIDTH-1 downto 0), - dtdataout2(i)(DTWIDTH-1 downto 0), dtenable2(i), dtwrite2(i), crami.dcramin.tdiag); + sclk, dtaddr2, dtdatain2(i)(DTWIDTH-1 downto 0), + dtdataout2(i)(DTWIDTH-1 downto 0), dtenable2(i), dtwrite2(i)); end generate; end generate; - + -- virtual address snoop case mdt1 : if DSNOOPSEP generate slow : if not DSNOOPFAST generate - mdt0 : for i in 0 to DSETS-1 generate + dt0 : for i in 0 to DSETS-1 generate dtags0 : syncram_dp - generic map (tech, DOFFSET_BITS, DTWIDTH-dlinesize+1) port map ( - clk, dtaddr, dtdatain(i)(DTWIDTH-1 downto dlinesize-1), - dtdataout(i)(DTWIDTH-1 downto dlinesize-1), dtenable(i), dtwrite(i), - sclk, dtaddr2, dtdatain2(i)(DTWIDTH-1 downto dlinesize-1), - dtdataout2(i)(DTWIDTH-1 downto dlinesize-1), dtenable2(i), dtwrite2(i), crami.dcramin.tdiag); + generic map (tech, DOFFSET_BITS, DTWIDTH) port map ( + clk, dtaddr, dtdatain(i)(DTWIDTH-1 downto 0), + dtdataout(i)(DTWIDTH-1 downto 0), dtenable(i), dtwrite(i), + sclk, dtaddr2, dtdatain2(i)(DTWIDTH-1 downto 0), + dtdataout2(i)(DTWIDTH-1 downto 0), dtenable2(i), dtwrite2(i)); dtags1 : syncram_dp - generic map (tech, DOFFSET_BITS, DPTAG_BITS+STPARBITS) port map ( - clk, dtaddr, dtdatain3(i)(DTAG_BITS-1+STPARBITS downto DTAG_BITS-DPTAG_BITS), - open, dtwrite3(i), dtwrite3(i), - sclk, dtaddr2, dtdatainu(i)(DTAG_BITS-1+STPARBITS downto DTAG_BITS-DPTAG_BITS), - dtdataout3(i)(DTAG_BITS-1+STPARBITS downto DTAG_BITS-DPTAG_BITS), dtenable2(i), dtwrite2(i), crami.dcramin.sdiag); + generic map (tech, DOFFSET_BITS, DPTAG_BITS) port map ( + clk, dtaddr, dtdatain3(i)(DTAG_BITS-1 downto DTAG_BITS-DPTAG_BITS), + open, dtwrite3(i), dtwrite3(i), + sclk, dtaddr2, dtdatainu(i)(DTAG_BITS-1 downto DTAG_BITS-DPTAG_BITS), + dtdataout3(i)(DTAG_BITS-1 downto DTAG_BITS-DPTAG_BITS), dtenable2(i), dtwrite2(i)); end generate; end generate; fast : if DSNOOPFAST generate mdt0 : for i in 0 to DSETS-1 generate - dtags0 : syncram_2p - generic map (tech, DOFFSET_BITS, DTWIDTH-dlinesize+1, 0, 1, testen) port map ( - clk, dtenable(i), dtaddr, dtdataout(i)(DTWIDTH-1 downto dlinesize-1), - sclk, dtwrite2(i), dtaddr3, dtdatain(i)(DTWIDTH-1 downto dlinesize-1), crami.dcramin.tdiag); + dtags0 : syncram + generic map (tech, DOFFSET_BITS, DTWIDTH, testen) port map ( + clk, dtaddr, dtdatain(i)(DTWIDTH-1 downto 0), + dtdataout(i)(DTWIDTH-1 downto 0), dtenable(i), dtwrite(i)); dtags1 : syncram_2p - generic map (tech, DOFFSET_BITS, DPTAG_BITS+STPARBITS, 0, 1, testen) port map ( - sclk, dtenable2(i), dtaddr2, dtdataout3(i)(DTAG_BITS-1+STPARBITS downto DTAG_BITS-DPTAG_BITS), - clk, dtwrite3(i), dtaddr, dtdatain3(i)(DTAG_BITS-1+STPARBITS downto DTAG_BITS-DPTAG_BITS), crami.dcramin.sdiag); + generic map (tech, DOFFSET_BITS, DPTAG_BITS, 0, 1, testen) port map ( + sclk, dtenable2(i), dtaddr2, dtdataout3(i)(DTAG_BITS-1 downto DTAG_BITS-DPTAG_BITS), + clk, dtwrite3(i), dtaddr, dtdatain3(i)(DTAG_BITS-1 downto DTAG_BITS-DPTAG_BITS)); end generate; end generate; end generate; - end generate; nodtags1 : if DSNOOP = 0 generate dt0 : for i in 0 to DSETS-1 generate dtdataout2(i)(DTWIDTH-1 downto 0) <= zero64(DTWIDTH-1 downto 0); + dtdataout3(i)(DTWIDTH-1 downto 0) <= zero64(DTWIDTH-1 downto 0); end generate; end generate; dd0 : for i in 0 to DSETS-1 generate ddata0 : syncram - generic map (tech, DOFFSET_BITS+DLINE_BITS, DDWIDTH, testen) - port map (clk, ddaddr, dddatain(i), dddataout(i), ddenable(i), ddwrite(i), crami.dcramin.ddiag); - dtdataout(i)(DTWIDTH) <= '0'; + generic map (tech, DOFFSET_BITS+DLINE_BITS, DDWIDTH) + port map (clk, ddaddr, dddatain(i), dddataout(i), ddenable(i), ddwrite(i)); + end generate; + dnd0 : for i in DSETS to MAXSETS-1 generate + dtdataout(i) <= (others => '0'); + dtdataout2(i) <= (others => '0'); + dtdataout3(i) <= (others => '0'); + dddataout(i) <= (others => '0'); end generate; end generate; @@ -404,33 +357,35 @@ begin dnd0 : for i in 0 to DSETS-1 generate dtdataout(i) <= (others => '0'); dtdataout2(i) <= (others => '0'); + dtdataout3(i) <= (others => '0'); dddataout(i) <= (others => '0'); end generate; end generate; ldxs0 : if not ((dlram = 1) and (DSETS > 1)) generate - lddatain <= dddatain(0)(31 downto 0); + lddatain <= dddatain(0); end generate; ldxs1 : if (dlram = 1) and (DSETS > 1) generate - lddatain <= dddatain(1)(31 downto 0); + lddatain <= dddatain(1); end generate; + + ld0 : if dlram = 1 generate ldata0 : syncram - generic map (tech, DLRAM_BITS-2, 32, testen) + generic map (tech, DLRAM_BITS-2, 32) port map (clk, ldaddr, lddatain, ldataout, crami.dcramin.ldramin.enable, - crami.dcramin.ldramin.write, crami.dcramin.ddiag); + crami.dcramin.ldramin.write); end generate; itx : for i in 0 to ISETS-1 generate cramo.icramo.tag(i)(TAG_HIGH downto ITAG_LOW) <= itdataout(i)(ITAG_BITS-1 downto (ITAG_BITS-1) - (TAG_HIGH - ITAG_LOW)); - --(ITWIDTH-1-(ILRR_BIT+ICLOCK_BIT) downto ITWIDTH-(TAG_HIGH-ITAG_LOW)-(ILRR_BIT+ICLOCK_BIT)-1); cramo.icramo.tag(i)(ilinesize-1 downto 0) <= itdataout(i)(ilinesize-1 downto 0); - cramo.icramo.tag(i)(CTAG_LRRPOS) <= itdataout(i)(ITLRR_BIT_POS); - cramo.icramo.tag(i)(CTAG_LOCKPOS) <= itdataout(i)(ITLOCK_BIT_POS); + cramo.icramo.tag(i)(CTAG_LRRPOS) <= itdataout(i)(ITWIDTH - (1+ICLOCK_BIT)); + cramo.icramo.tag(i)(CTAG_LOCKPOS) <= itdataout(i)(ITWIDTH-1); ictx : if mmuen = 1 generate - cramo.icramo.ctx(i) <= itdataout(i)(ITMMU_VEC_U downto ITMMU_VEC_D); + cramo.icramo.ctx(i) <= itdataout(i)((ITWIDTH - (ILRR_BIT+ICLOCK_BIT+1)) downto (ITWIDTH - (ILRR_BIT+ICLOCK_BIT+M_CTX_SZ))); end generate; noictx : if mmuen = 0 generate cramo.icramo.ctx(i) <= (others => '0'); @@ -441,7 +396,7 @@ begin end generate; ite : for j in 10 to ITAG_LOW-1 generate cramo.icramo.tag(i)(j) <= '0'; - end generate; + end generate; end generate; itx2 : for i in ISETS to MAXSETS-1 generate @@ -453,26 +408,20 @@ begin itd : for i in 0 to DSETS-1 generate cramo.dcramo.tag(i)(TAG_HIGH downto DTAG_LOW) <= dtdataout(i)(DTAG_BITS-1 downto (DTAG_BITS-1) - (TAG_HIGH - DTAG_LOW)); --- cramo.dcramo.tag(i)(dlinesize-1 downto 0) <= dtdataout(i)(dlinesize-1 downto 0); - cramo.dcramo.tag(i)(dlinesize-1 downto 0) <= (others => dtdataout(i)(dlinesize-1)); - cramo.dcramo.tag(i)(CTAG_LRRPOS) <= dtdataout(i)(DTLRR_BIT_POS); - cramo.dcramo.tag(i)(CTAG_LOCKPOS) <= dtdataout(i)(DTLOCK_BIT_POS); + cramo.dcramo.tag(i)(dlinesize-1 downto 0) <= dtdataout(i)(dlinesize-1 downto 0); + cramo.dcramo.tag(i)(CTAG_LRRPOS) <= dtdataout(i)(DTWIDTH - (1+DCLOCK_BIT)); + cramo.dcramo.tag(i)(CTAG_LOCKPOS) <= dtdataout(i)(DTWIDTH-1); dctx : if mmuen /= 0 generate - cramo.dcramo.ctx(i) <= dtdataout(i)(DTMMU_VEC_U downto DTMMU_VEC_D); + cramo.dcramo.ctx(i) <= dtdataout(i)((DTWIDTH - (DLRR_BIT+DCLOCK_BIT+1)) downto (DTWIDTH - (DLRR_BIT+DCLOCK_BIT+M_CTX_SZ))); end generate; nodctx : if mmuen = 0 generate cramo.dcramo.ctx(i) <= (others => '0'); end generate; + + cramo.dcramo.stag(i)(TAG_HIGH downto DTAG_LOW) <= dtdataout3(i)(DTAG_BITS-1 downto (DTAG_BITS-1) - (TAG_HIGH - DTAG_LOW)) + when DSNOOPSEP else dtdataout2(i)(DTAG_BITS-1 downto (DTAG_BITS-1) - (TAG_HIGH - DTAG_LOW)); - stagv : if DSNOOPSEP generate - cramo.dcramo.stag(i)(TAG_HIGH downto DTAG_LOW) <= dtdataout3(i)(DTAG_BITS-1 downto (DTAG_BITS-1) - (TAG_HIGH - DTAG_LOW)); - cramo.dcramo.stag(i)(DTAG_LOW-1 downto 0) <= (others =>'0'); - end generate; - stagp : if not DSNOOPSEP generate - cramo.dcramo.stag(i)(TAG_HIGH downto DTAG_LOW) <= dtdataout2(i)(DTAG_BITS-1 downto (DTAG_BITS-1) - (TAG_HIGH - DTAG_LOW)); - cramo.dcramo.stag(i)(DTAG_LOW-1 downto 0) <= (others =>'0'); - end generate; - + cramo.dcramo.stag(i)(DTAG_LOW-1 downto 0) <= (others => '0'); cramo.dcramo.data(i) <= ldataout when (dlram = 1) and ((DSETS = 1) or (i = 1)) and (crami.dcramin.ldramin.read = '1') else dddataout(i)(31 downto 0); dtv : if dlinesize = 4 generate @@ -490,5 +439,13 @@ begin cramo.dcramo.ctx(i) <= (others => '0'); end generate; + nodrv : for i in 0 to MAXSETS-1 generate + cramo.dcramo.tpar(i) <= (others => '0'); + cramo.dcramo.dpar(i) <= (others => '0'); + cramo.dcramo.spar(i) <= '0'; + cramo.icramo.tpar(i) <= (others => '0'); + cramo.icramo.dpar(i) <= (others => '0'); + end generate; + end ; diff --git a/lib/gaisler/leon3v1/grfpuw.vhd b/lib/gaisler/leon3v1/grfpuw.vhd new file mode 100644 index 00000000..61ed030a --- /dev/null +++ b/lib/gaisler/leon3v1/grfpuw.vhd @@ -0,0 +1,87 @@ +---------------------------------------------------------------------------- +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2004-2008 Gaisler Research +-- Copyright (C) 2008-2009 Aeroflex Gaisler +-- +-- ANY USE OR REDISTRIBUTION IN PART OR IN WHOLE MUST BE HANDLED IN +-- ACCORDANCE WITH THE GAISLER LICENSE AGREEMENT AND MUST BE APPROVED +-- IN ADVANCE IN WRITING. +----------------------------------------------------------------------------- +-- Entity: grfpuw +-- File: grfpuw.vhd +-- Author: Edvin Catovic - Gaisler Research +-- Description: GRFPU wrapper emulating GRFPU lite interface +------------------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; +library fpu; +use fpu.libfpu.all; + + + entity grfpuw is + port ( + ss_clock : in std_logic; + fpinst : in std_logic_vector(9 downto 0); + fpop : in std_logic; + fpld : in std_logic; + reset : in std_logic; + fprf_dout1 : in std_logic_vector(63 downto 0); + fprf_dout2 : in std_logic_vector(63 downto 0); + roundingmode : in std_logic_vector(1 downto 0); + fpbusy : out std_logic; + fracresult : out std_logic_vector(54 downto 3); + expresult : out std_logic_vector(10 downto 0); + signresult : out std_logic; + snnotdb : out std_logic; + excep : out std_logic_vector(5 downto 0); + conditioncodes : out std_logic_vector(1 downto 0); + ss_scan_mode : in std_logic; + fp_ctl_scan_in : in std_logic; + fp_ctl_scan_out : out std_logic + ); + end; + + + architecture rtl of grfpuw is + + signal rst, start, nonstd, flush, rdy, rdy2, busy_r : std_ulogic; + signal flop : std_logic_vector(8 downto 0); + signal opid : std_logic_vector(5 downto 0); + signal flushid : std_logic_vector(5 downto 0); + signal rndmode : std_logic_vector(1 downto 0); + signal res : std_logic_vector(63 downto 0); + signal exc : std_logic_vector(5 downto 0); + signal cc : std_logic_vector(1 downto 0); + signal fpop_r : std_ulogic; + + begin + + rst <= not reset; + start <= fpld and fpop_r; + nonstd <= '0'; + opid <= (others => '0'); + flush <= reset; + flushid <= (others => '0'); + + process (ss_clock) + begin + if rising_edge(ss_clock) then + fracresult <= res(51 downto 0); + expresult <= res(62 downto 52); + signresult <= res(63); + conditioncodes <= cc; + excep <= exc; + busy_r <= (fpld or busy_r) and not (rdy or reset); + rdy2 <= rdy; + flop <= fpinst(8 downto 0); + fpop_r <= fpop; + end if; + end process; + + fpbusy <= (fpld or (busy_r and not rdy2)) and not reset; + + grfpu0 : grfpu port map (ss_clock, rst, start, nonstd, flop, fprf_dout1, fprf_dout2, + opid, flush, flushid, roundingmode, res, exc, open, rdy, cc, open); + + end; diff --git a/lib/gaisler/leon3v1/grfpwx.vhd b/lib/gaisler/leon3v1/grfpwx.vhd new file mode 100644 index 00000000..8c683cfe --- /dev/null +++ b/lib/gaisler/leon3v1/grfpwx.vhd @@ -0,0 +1,146 @@ +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +----------------------------------------------------------------------------- +-- Entity: grfpwx +-- File: grfpwx.vhd +-- Author: Edvin Catovic - Gaisler Research +-- Modified: Jan Andersson - Aeroflex Gaisler +-- Description: GRFPU/GRFPC wrapper and FP register file +-- This version always instantiaties grfpw_net and is used in +-- GRLIB distributions that lack FPU source code. +------------------------------------------------------------------------------ + +library IEEE; +use IEEE.std_logic_1164.all; +library gaisler; +use gaisler.leon3.all; +library techmap; +use techmap.gencomp.all; +use techmap.netcomp.all; + +entity grfpwx is + generic (fabtech : integer := 0; + memtech : integer := 0; + mul : integer range 0 to 3 := 0; + pclow : integer range 0 to 2 := 2; + dsu : integer range 0 to 2 := 0; + disas : integer range 0 to 2 := 0; + netlist : integer := 0; + index : integer := 0); + port ( + rst : in std_ulogic; -- Reset + clk : in std_ulogic; + holdn : in std_ulogic; -- pipeline hold + cpi : in fpc_in_type; + cpo : out fpc_out_type + ); +end; + +architecture rtl of grfpwx is + + signal rfi1, rfi2 : fp_rf_in_type; + signal rfo1, rfo2 : fp_rf_out_type; + +begin + + grfpw0 : grfpw_net generic map (fabtech, pclow, dsu, disas) + port map ( + rst , + clk , + holdn , + cpi.flush , + cpi.exack , + cpi.a_rs1 , + cpi.d.pc , + cpi.d.inst , + cpi.d.cnt , + cpi.d.trap , + cpi.d.annul , + cpi.d.pv , + cpi.a.pc , + cpi.a.inst , + cpi.a.cnt , + cpi.a.trap , + cpi.a.annul , + cpi.a.pv , + cpi.e.pc , + cpi.e.inst , + cpi.e.cnt , + cpi.e.trap , + cpi.e.annul , + cpi.e.pv , + cpi.m.pc , + cpi.m.inst , + cpi.m.cnt , + cpi.m.trap , + cpi.m.annul , + cpi.m.pv , + cpi.x.pc , + cpi.x.inst , + cpi.x.cnt , + cpi.x.trap , + cpi.x.annul , + cpi.x.pv , + cpi.lddata , + cpi.dbg.enable , + cpi.dbg.write , + cpi.dbg.fsr , + cpi.dbg.addr , + cpi.dbg.data , + + cpo.data , + cpo.exc , + cpo.cc , + cpo.ccv , + cpo.ldlock , + cpo.holdn , + cpo.dbg.data , + + rfi1.rd1addr , + rfi1.rd2addr , + rfi1.wraddr , + rfi1.wrdata , + rfi1.ren1 , + rfi1.ren2 , + rfi1.wren , + + + rfi2.rd1addr , + rfi2.rd2addr , + rfi2.wraddr , + rfi2.wrdata , + rfi2.ren1 , + rfi2.ren2 , + rfi2.wren , + + rfo1.data1 , + rfo1.data2 , + rfo2.data1 , + rfo2.data2 + ); + + rf1 : regfile_3p generic map (memtech, 4, 32, 1, 16) + port map (clk, rfi1.wraddr, rfi1.wrdata, rfi1.wren, clk, rfi1.rd1addr, rfi1.ren1, rfo1.data1, + rfi1.rd2addr, rfi1.ren2, rfo1.data2); + + rf2 : regfile_3p generic map (memtech, 4, 32, 1, 16) + port map (clk, rfi2.wraddr, rfi2.wrdata, rfi2.wren, clk, rfi2.rd1addr, rfi2.ren1, rfo2.data1, + rfi2.rd2addr, rfi2.ren2, rfo2.data2); + +end; diff --git a/lib/gaisler/leon3v2/grfpwxsh.vhd b/lib/gaisler/leon3v1/grfpwxsh.vhd similarity index 92% rename from lib/gaisler/leon3v2/grfpwxsh.vhd rename to lib/gaisler/leon3v1/grfpwxsh.vhd index e8b0ca46..01d3fed6 100644 --- a/lib/gaisler/leon3v2/grfpwxsh.vhd +++ b/lib/gaisler/leon3v1/grfpwxsh.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -29,17 +29,13 @@ library techmap; use techmap.gencomp.all; library gaisler; use gaisler.leon3.all; -use gaisler.libleon3.all; -use gaisler.libfpu.all; entity grfpwxsh is generic (tech : integer range 0 to NTECH := 0; pclow : integer range 0 to 2 := 2; dsu : integer range 0 to 1 := 0; disas : integer range 0 to 2 := 0; - id : integer range 0 to 7 := 0; - rfft : integer range 0 to 4 := 0; - einj : integer := 0); + id : integer range 0 to 7 := 0); port ( rst : in std_ulogic; -- Reset clk : in std_ulogic; @@ -113,6 +109,7 @@ architecture rtl of grfpwxsh is cpo_ccv : out std_ulogic; -- FP condition codes valid cpo_ldlock : out std_logic; -- FP pipeline hold cpo_holdn : out std_ulogic; + --cpo_restart : out std_ulogic; cpo_dbg_data : out std_logic_vector(31 downto 0); rfi1_rd1addr : out std_logic_vector(3 downto 0); @@ -249,16 +246,12 @@ begin fpuo.idout ); + rf1 : regfile_3p generic map (tech, 4, 32, 1, 16) + port map (clk, rfi1.wraddr, rfi1.wrdata, rfi1.wren, clk, rfi1.rd1addr, rfi1.ren1, rfo1.data1, + rfi1.rd2addr, rfi1.ren2, rfo1.data2); - rf1 : regfile_3p_l3 generic map (tech, 4, 32, 1, 16, rfft, einj) - port map (clk, rfi1.wraddr, rfi1.wrdata, rfi1.wren, clk, rfi1.rd1addr, - rfi1.ren1, rfo1.data1, rfi1.rd2addr, rfi1.ren2, rfo1.data2 - ); - - rf2 : regfile_3p_l3 generic map (tech, 4, 32, 1, 16, rfft, einj) - port map (clk, rfi2.wraddr, rfi2.wrdata, rfi2.wren, clk, rfi2.rd1addr, - rfi2.ren1, rfo2.data1, rfi2.rd2addr, rfi2.ren2, rfo2.data2 - ); - - + rf2 : regfile_3p generic map (tech, 4, 32, 1, 16) + port map (clk, rfi2.wraddr, rfi2.wrdata, rfi2.wren, clk, rfi2.rd1addr, rfi2.ren1, rfo2.data1, + rfi2.rd2addr, rfi2.ren2, rfo2.data2); + end; diff --git a/lib/gaisler/leon3v1/grlfpwx.vhd b/lib/gaisler/leon3v1/grlfpwx.vhd new file mode 100644 index 00000000..c1de843c --- /dev/null +++ b/lib/gaisler/leon3v1/grlfpwx.vhd @@ -0,0 +1,143 @@ +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +----------------------------------------------------------------------------- +-- Entity: grlfpwx +-- File: grlfpwx.vhd +-- Author: Edvin Catovic - Gaisler Research +-- Description: GRFPU LITE / GRFPC wrapper and FP register file +-- This version alwaus instantiates grlfpw_net and is used in +-- GRLIB distributions that lack FPU source code. +------------------------------------------------------------------------------ + +library IEEE; +use IEEE.std_logic_1164.all; +library gaisler; +use gaisler.leon3.all; +library techmap; +use techmap.gencomp.all; +use techmap.netcomp.all; + +entity grlfpwx is + generic (tech : integer := 0; + pclow : integer range 0 to 2 := 2; + dsu : integer range 0 to 1 := 0; + disas : integer range 0 to 2 := 0; + pipe : integer := 0; + netlist : integer := 0; + index : integer := 0); + port ( + rst : in std_ulogic; -- Reset + clk : in std_ulogic; + holdn : in std_ulogic; -- pipeline hold + cpi : in fpc_in_type; + cpo : out fpc_out_type + ); +end; + +architecture rtl of grlfpwx is + + signal rfi1, rfi2 : fp_rf_in_type; + signal rfo1, rfo2 : fp_rf_out_type; + +begin + + grlfpw0 : grlfpw_net generic map (tech, pclow, dsu, disas, pipe) + port map ( + rst , + clk , + holdn , + cpi.flush , + cpi.exack , + cpi.a_rs1 , + cpi.d.pc , + cpi.d.inst , + cpi.d.cnt , + cpi.d.trap , + cpi.d.annul , + cpi.d.pv , + cpi.a.pc , + cpi.a.inst , + cpi.a.cnt , + cpi.a.trap , + cpi.a.annul , + cpi.a.pv , + cpi.e.pc , + cpi.e.inst , + cpi.e.cnt , + cpi.e.trap , + cpi.e.annul , + cpi.e.pv , + cpi.m.pc , + cpi.m.inst , + cpi.m.cnt , + cpi.m.trap , + cpi.m.annul , + cpi.m.pv , + cpi.x.pc , + cpi.x.inst , + cpi.x.cnt , + cpi.x.trap , + cpi.x.annul , + cpi.x.pv , + cpi.lddata , + cpi.dbg.enable , + cpi.dbg.write , + cpi.dbg.fsr , + cpi.dbg.addr , + cpi.dbg.data , + + cpo.data , + cpo.exc , + cpo.cc , + cpo.ccv , + cpo.ldlock , + cpo.holdn , + cpo.dbg.data , + + rfi1.rd1addr , + rfi1.rd2addr , + rfi1.wraddr , + rfi1.wrdata , + rfi1.ren1 , + rfi1.ren2 , + rfi1.wren , + + rfi2.rd1addr , + rfi2.rd2addr , + rfi2.wraddr , + rfi2.wrdata , + rfi2.ren1 , + rfi2.ren2 , + rfi2.wren , + + rfo1.data1 , + rfo1.data2 , + rfo2.data1 , + rfo2.data2 + ); + + rf1 : regfile_3p generic map (tech, 4, 32, 1, 16) + port map (clk, rfi1.wraddr, rfi1.wrdata, rfi1.wren, clk, rfi1.rd1addr, rfi1.ren1, rfo1.data1, + rfi1.rd2addr, rfi1.ren2, rfo1.data2); + + rf2 : regfile_3p generic map (tech, 4, 32, 1, 16) + port map (clk, rfi2.wraddr, rfi2.wrdata, rfi2.wren, clk, rfi2.rd1addr, rfi2.ren1, rfo2.data1, + rfi2.rd2addr, rfi2.ren2, rfo2.data2); + +end; diff --git a/lib/gaisler/leon3v2/iu3.vhd b/lib/gaisler/leon3v1/iu3.vhd similarity index 90% rename from lib/gaisler/leon3v2/iu3.vhd rename to lib/gaisler/leon3v1/iu3.vhd index 7e1eae57..15d323fa 100644 --- a/lib/gaisler/leon3v2/iu3.vhd +++ b/lib/gaisler/leon3v1/iu3.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -17,10 +17,10 @@ -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ----------------------------------------------------------------------------- --- Entity: iu3 --- File: iu3.vhd --- Author: Jiri Gaisler, Edvin Catovic, Gaisler Research --- Description: LEON3 7-stage integer pipline +-- Entity: iu3 +-- File: iu3.vhd +-- Author: Jiri Gaisler, Edvin Catovic, Gaisler Research +-- Description: LEON3 7-stage integer pipline ------------------------------------------------------------------------------ library ieee; @@ -34,7 +34,6 @@ use techmap.gencomp.all; library gaisler; use gaisler.leon3.all; use gaisler.libiu.all; -use gaisler.libfpu.all; use gaisler.arith.all; -- pragma translate_off use grlib.sparc_disas.all; @@ -59,11 +58,11 @@ entity iu3 is tbuf : integer range 0 to 64 := 0; -- trace buf size in kB (0 - no trace buffer) pwd : integer range 0 to 2 := 0; -- power-down svt : integer range 0 to 1 := 0; -- single-vector trapping - rstaddr : integer := 16#00000#; -- reset vector MSB address + rstaddr : integer := 16#00000#; -- reset vector MSB address smp : integer range 0 to 15 := 0; -- support SMP systems - fabtech : integer range 0 to NTECH := 0; + fabtech : integer range 0 to NTECH := 0; clk2x : integer := 0; - bp : integer range 0 to 2 := 1 + bp : integer := 1 ); port ( clk : in std_ulogic; @@ -91,7 +90,6 @@ entity iu3 is tbi : out tracebuf_in_type; sclk : in std_ulogic ); - attribute sync_set_reset of rstn : signal is "true"; end; architecture rtl of iu3 is @@ -117,10 +115,10 @@ architecture rtl of iu3 is constant TRACEBUF : boolean := (tbuf /= 0); constant TBUFBITS : integer := 10 + log2(tbuf) - 4; constant PWRD1 : boolean := false; --(pwd = 1) and not (index /= 0); - constant PWRD2 : boolean := (pwd /= 0); --(pwd = 2) or (index /= 0); + constant PWRD2 : boolean := pwd /= 0; --(pwd = 2) or (index /= 0); constant RS1OPT : boolean := (is_fpga(FABTECH) /= 0); constant DYNRST : boolean := (rstaddr = 16#FFFFF#); - + constant CASAEN : boolean := (notag = 0) and (lddel = 1); signal BPRED : std_logic; @@ -130,10 +128,9 @@ architecture rtl of iu3 is subtype cwptype is std_logic_vector(NWINLOG2-1 downto 0); type icdtype is array (0 to isets-1) of word; type dcdtype is array (0 to dsets-1) of word; - - + type dc_in_type is record - signed, enaddr, read, write, lock, dsuen : std_ulogic; + signed, enaddr, read, write, lock , dsuen : std_ulogic; size : std_logic_vector(1 downto 0); asi : std_logic_vector(7 downto 0); end record; @@ -169,8 +166,8 @@ architecture rtl of iu3 is pv : std_ulogic; annul : std_ulogic; inull : std_ulogic; - step : std_ulogic; - divrdy: std_ulogic; + step : std_ulogic; + divrdy: std_ulogic; end record; type regacc_reg_type is record @@ -193,7 +190,7 @@ architecture rtl of iu3 is jmpl : std_ulogic; step : std_ulogic; mulstart : std_ulogic; - divstart : std_ulogic; + divstart : std_ulogic; bp, nobp : std_ulogic; end record; @@ -221,7 +218,6 @@ architecture rtl of iu3 is mul : std_ulogic; mac : std_ulogic; bp : std_ulogic; - rfe1, rfe2 : std_ulogic; end record; type memory_reg_type is record @@ -263,7 +259,6 @@ architecture rtl of iu3 is mac : std_ulogic; debug : std_ulogic; nerror : std_ulogic; - ipmask : std_ulogic; end record; type dsu_registers is record @@ -278,28 +273,27 @@ architecture rtl of iu3 is addr : pctype; pwd : std_ulogic; end record; - - + type pwd_register_type is record pwd : std_ulogic; error : std_ulogic; end record; type special_register_type is record - cwp : cwptype; -- current window pointer + cwp : cwptype; -- current window pointer icc : std_logic_vector(3 downto 0); -- integer condition codes tt : std_logic_vector(7 downto 0); -- trap type tba : std_logic_vector(19 downto 0); -- trap base address - wim : std_logic_vector(NWIN-1 downto 0); -- window invalid mask + wim : std_logic_vector(NWIN-1 downto 0); -- window invalid mask pil : std_logic_vector(3 downto 0); -- processor interrupt level - ec : std_ulogic; -- enable CP - ef : std_ulogic; -- enable FP - ps : std_ulogic; -- previous supervisor flag - s : std_ulogic; -- supervisor flag - et : std_ulogic; -- enable traps + ec : std_ulogic; -- enable CP + ef : std_ulogic; -- enable FP + ps : std_ulogic; -- previous supervisor flag + s : std_ulogic; -- supervisor flag + et : std_ulogic; -- enable traps y : word; asr18 : word; - svt : std_ulogic; -- enable traps + svt : std_ulogic; -- enable traps dwt : std_ulogic; -- disable write error trap dbp : std_ulogic; -- disable branch prediction end record; @@ -375,8 +369,7 @@ architecture rtl of iu3 is end if; return(err); end; - - + procedure diagwr(r : in registers; dsur : in dsu_registers; ir : in irestart_register; @@ -440,12 +433,14 @@ architecture rtl of iu3 is when "0111" => --CFSR when "1001" => -- ASI reg asi := dbg.ddata(7 downto 0); + --when "1001" => -- TBUF ctrl reg + -- tbufcnt := dbg.ddata(TBUFBITS-1 downto 0); when others => end case; when "01" => -- ASR16 - ASR31 case dbg.daddr(5 downto 2) is when "0001" => -- %ASR17 - if bp = 2 then s.dbp := dbg.ddata(27); end if; + if bp = 2 then s.dbp := dbg.ddata(27); end if; s.dwt := dbg.ddata(14); s.svt := dbg.ddata(13); when "0010" => -- %ASR18 @@ -499,12 +494,12 @@ architecture rtl of iu3 is function asr17_gen ( r : in registers) return word is variable asr17 : word; - variable fpu2 : integer range 0 to 3; + variable fpu2 : integer range 0 to 3; begin - asr17 := zero32; + asr17 := zero32; asr17(31 downto 28) := conv_std_logic_vector(index, 4); if bp = 2 then asr17(27) := r.w.s.dbp; end if; - if notag = 0 then asr17(26) := '1'; end if; -- CASA and tagged arith + if notag = 0 then asr17(26) := '1'; end if; -- CASA/TADD present if (clk2x > 8) then asr17(16 downto 15) := conv_std_logic_vector(clk2x-8, 2); asr17(17) := '1'; @@ -515,9 +510,9 @@ architecture rtl of iu3 is if svt = 1 then asr17(13) := r.w.s.svt; end if; if lddel = 2 then asr17(12) := '1'; end if; if (fpu > 0) and (fpu < 8) then fpu2 := 1; - elsif (fpu >= 8) and (fpu < 15) then fpu2 := 3; + elsif (fpu >= 8) and (fpu < 15) then fpu2 := 3; elsif fpu = 15 then fpu2 := 2; - else fpu2 := 0; end if; + else fpu2 := 0; end if; asr17(11 downto 10) := conv_std_logic_vector(fpu2, 2); if mac = 1 then asr17(9) := '1'; end if; if v8 /= 0 then asr17(8) := '1'; end if; @@ -544,7 +539,7 @@ architecture rtl of iu3 is when "001" => -- trace buffer if TRACEBUF then if dbgi.daddr(16) = '1' then -- trace buffer control reg - data(TBUFBITS-1 downto 0) := dsur.tbufcnt; + if TRACEBUF then data(TBUFBITS-1 downto 0) := dsur.tbufcnt; end if; else case dbgi.daddr(3 downto 2) is when "00" => data := tbufo.data(127 downto 96); @@ -556,12 +551,11 @@ architecture rtl of iu3 is end if; when "011" => -- IU reg file if dbgi.daddr(12) = '0' then - if dbgi.daddr(11) = '0' then - data := rfo.data1(31 downto 0); - else data := rfo.data2(31 downto 0); end if; - else - data := fpo.dbg.data; - end if; + data := rfo.data1(31 downto 0); + if (dbgi.daddr(11) = '1') and (is_fpga(fabtech) = 0) then + data := rfo.data2(31 downto 0); + end if; + else data := fpo.dbg.data; end if; when "100" => -- IU regs case dbgi.daddr(7 downto 6) is when "00" => -- IU regs Y - TBUF ctrl reg @@ -590,7 +584,7 @@ architecture rtl of iu3 is when others => end case; when "01" => - if dbgi.daddr(5) = '0' then + if dbgi.daddr(5) = '0' then -- %ASR17 if dbgi.daddr(4 downto 2) = "001" then -- %ASR17 data := asr17_gen(r); elsif MACEN and dbgi.daddr(4 downto 2) = "010" then -- %ASR18 @@ -625,10 +619,7 @@ architecture rtl of iu3 is error : in std_ulogic; trap : in std_ulogic; tbufcnt : out std_logic_vector(TBUFBITS-1 downto 0); - di : out tracebuf_in_type; - ierr : in std_ulogic; - derr : in std_ulogic - ) is + di : out tracebuf_in_type) is variable meminst : std_ulogic; begin di.addr := (others => '0'); di.data := (others => '0'); @@ -659,11 +650,11 @@ architecture rtl of iu3 is di.data := dbgi.ddata & dbgi.ddata & dbgi.ddata & dbgi.ddata; end if; end if; - elsif (not r.x.ctrl.annul and (r.x.ctrl.pv or meminst) and not r.x.debug) = '1' then + elsif (not r.x.ctrl.annul and (r.x.ctrl.pv or meminst) and not r.x.debug) = '1' then di.enable := '1'; di.write := (others => '1'); tbufcnt := dsur.tbufcnt + 1; - end if; - di.diag := dco.testen & dco.scanen & "00"; + end if; + di.diag := dco.testen & "000"; if dco.scanen = '1' then di.enable := '0'; end if; end if; end; @@ -680,8 +671,7 @@ architecture rtl of iu3 is begin mresult2 := mresult; dci2 := dci; dci2.dsuen := '0'; if DBGUNIT then - if (r.x.rstate = dsu2) - then + if r.x.rstate = dsu2 then dci2.asi := dsur.asi; if (dbgi.daddr(22 downto 20) = "111") and (dbgi.dsuen = '1') then dci2.dsuen := (dbgi.denable or r.m.dci.dsuen) and not dsur.crdy(2); @@ -728,8 +718,7 @@ architecture rtl of iu3 is end if; end; - - + signal r, rin : registers; signal wpr, wprin : watchpoint_registers; signal dsur, dsuin : dsu_registers; @@ -901,6 +890,10 @@ architecture rtl of iu3 is sshiftin := SHIFT_RIGHT(sshiftin, cnt); resright := std_logic_vector(sshiftin(31 downto 0)); return(resright); +-- else +-- ushiftin := SHIFT_RIGHT(ushiftin, cnt); +-- return(std_logic_vector(ushiftin)); +-- end if; end if; end; @@ -924,7 +917,6 @@ architecture rtl of iu3 is -- Check for illegal and privileged instructions procedure exception_detect(r : registers; wpr : watchpoint_registers; dbgi : l3_debug_in_type; - trapin : in std_ulogic; ttin : in std_logic_vector(5 downto 0); trap : out std_ulogic; tt : out std_logic_vector(5 downto 0)) is variable illegal_inst, privileged_inst : std_ulogic; variable cp_disabled, fp_disabled, fpop : std_ulogic; @@ -935,12 +927,12 @@ variable rd : std_logic_vector(4 downto 0); variable inst : word; variable wph : std_ulogic; begin - inst := r.a.ctrl.inst; trap := trapin; tt := ttin; + inst := r.a.ctrl.inst; trap := r.a.ctrl.trap; tt := r.a.ctrl.tt; if r.a.ctrl.annul = '0' then op := inst(31 downto 30); op2 := inst(24 downto 22); op3 := inst(24 downto 19); rd := inst(29 downto 25); illegal_inst := '0'; privileged_inst := '0'; cp_disabled := '0'; - fp_disabled := '0'; fpop := '0'; + fp_disabled := '0'; fpop := '0'; case op is when CALL => null; when FMT2 => @@ -1012,7 +1004,7 @@ begin wph := wphit(r, wpr, dbgi); trap := '1'; - if r.a.ctrl.trap = '1' then tt := r.a.ctrl.tt; + if r.a.ctrl.trap = '1' then tt := TT_IAEX; elsif privileged_inst = '1' then tt := TT_PRIV; elsif illegal_inst = '1' then tt := TT_IINST; elsif fp_disabled = '1' then tt := TT_FPDIS; @@ -1063,9 +1055,7 @@ end; procedure cwp_gen(r, v : registers; annul, wcwp : std_ulogic; ncwp : cwptype; cwp : out cwptype) is begin - if (r.x.rstate = trap) or - (r.x.rstate = dsu2) - or (rstn = '0') then cwp := v.w.s.cwp; + if (r.x.rstate = trap) or (r.x.rstate = dsu2) or (rstn = '0') then cwp := v.w.s.cwp; elsif (wcwp = '1') and (annul = '0') then cwp := ncwp; elsif r.m.wcwp = '1' then cwp := r.m.result(NWINLOG2-1 downto 0); else cwp := r.d.cwp; end if; @@ -1159,9 +1149,8 @@ end; end; procedure lock_gen(r : registers; rs2, rd : std_logic_vector(4 downto 0); - rfa1, rfa2, rfrd : rfatype; inst : word; fpc_lock, mulinsn, divinsn, de_wcwp : std_ulogic; - lldcheck1, lldcheck2, lldlock, lldchkra, lldchkex, bp, nobp, de_fins_hold : out std_ulogic; - iperr : std_logic) is + rfa1, rfa2, rfrd : rfatype; inst : word; fpc_lock, mulinsn, divinsn, de_wcwp : std_ulogic; + lldcheck1, lldcheck2, lldlock, lldchkra, lldchkex, bp, nobp, de_fins_hold : out std_ulogic) is variable op : std_logic_vector(1 downto 0); variable op2 : std_logic_vector(2 downto 0); variable op3 : std_logic_vector(5 downto 0); @@ -1170,32 +1159,31 @@ end; variable i, ldcheck1, ldcheck2, ldchkra, ldchkex, ldcheck3 : std_ulogic; variable ldlock, icc_check, bicc_hold, chkmul, y_check : std_logic; variable icc_check_bp, y_hold, mul_hold, bicc_hold_bp, fins, call_hold : std_ulogic; + variable lddlock : boolean; variable de_fins_holdx : std_ulogic; begin op := inst(31 downto 30); op3 := inst(24 downto 19); op2 := inst(24 downto 22); cond := inst(28 downto 25); - rs1 := inst(18 downto 14); i := inst(13); + rs1 := inst(18 downto 14); lddlock := false; i := inst(13); ldcheck1 := '0'; ldcheck2 := '0'; ldcheck3 := '0'; ldlock := '0'; ldchkra := '1'; ldchkex := '1'; icc_check := '0'; bicc_hold := '0'; y_check := '0'; y_hold := '0'; bp := '0'; mul_hold := '0'; icc_check_bp := '0'; nobp := '0'; fins := '0'; call_hold := '0'; - - if (r.d.annul = '0') - then + if (r.d.annul = '0') then case op is when CALL => - call_hold := '1'; nobp := BPRED; + call_hold := '1'; nobp := BPRED; when FMT2 => if (op2 = BICC) and (cond(2 downto 0) /= "000") then - icc_check_bp := '1'; + icc_check_bp := '1'; end if; - if (op2 = BICC) then nobp := BPRED; end if; + if (op2 = BICC) then nobp := BPRED; end if; when FMT3 => ldcheck1 := '1'; ldcheck2 := not i; case op3 is when TICC => if (cond(2 downto 0) /= "000") then icc_check := '1'; end if; - nobp := BPRED; + nobp := BPRED; when RDY => ldcheck1 := '0'; ldcheck2 := '0'; if MACPIPE then y_check := '1'; end if; @@ -1224,6 +1212,7 @@ end; elsif (op3(5) = '1') or ((op3(5) & op3(3 downto 1)) = "0110") -- LDST then ldcheck1 := '0'; ldcheck2 := '0'; end if; end case; + if (op3(2 downto 0) = "011") then lddlock := true; end if; if op3(5) = '1' then fins := BPRED; end if; -- no BP on FPU/CP LD/ST when others => null; end case; @@ -1232,7 +1221,7 @@ end; if MULEN or DIVEN then chkmul := mulinsn; mul_hold := (r.a.mulstart and r.a.ctrl.wicc) or (r.m.ctrl.wicc and (r.m.ctrl.cnt(0) or r.m.mul)); - if (MULTYPE = 0) and ((icc_check_bp and BPRED and r.a.ctrl.wicc and r.a.ctrl.wy) = '1') + if (MULTYPE = 0) and ((icc_check_bp and BPRED and r.a.ctrl.wicc and r.a.ctrl.wy) = '1') then mul_hold := '1'; end if; else chkmul := '0'; end if; if DIVEN then @@ -1291,7 +1280,7 @@ end; cnt : out std_logic_vector(1 downto 0); de_pc : out pctype; de_branch, ctrl_annul, de_annul, jmpl_inst, inull, de_pv, ctrl_pv, de_hold_pc, ticc_exception, rett_inst, mulstart, - divstart : out std_ulogic; rabpmiss, exbpmiss, iperr : std_logic) is + divstart : out std_ulogic; rabpmiss, exbpmiss : std_logic) is variable op : std_logic_vector(1 downto 0); variable op2 : std_logic_vector(2 downto 0); variable op3 : std_logic_vector(5 downto 0); @@ -1305,8 +1294,7 @@ end; op2 := inst(24 downto 22); cond := inst(28 downto 25); annul := inst(29); de_jmpl := '0'; cnt := "00"; mulstart := '0'; divstart := '0'; inhibit_current := '0'; - if (r.d.annul = '0') - then + if r.d.annul = '0' then case inst(31 downto 30) is when CALL => branch := '1'; @@ -1321,7 +1309,7 @@ end; elsif (CPEN and (op2 = CBCCC)) then branch := cbranch_true; if cccv /= '1' then hold_pc := '1'; annul_current := '1'; end if; - else branch := branch_true or (BPRED and orv(cond) and not icc_valid(r)); end if; + else branch := branch_true or (BPRED and orv(cond) and not icc_valid(r)); end if; if hold_pc = '0' then if (branch = '1') then if (cond = BA) and (annul = '1') then annul_next := '1'; end if; @@ -1349,10 +1337,10 @@ end; if DIVEN then case r.d.cnt is when "00" => - hold_pc := '1'; pv := '0'; - if r.d.divrdy = '0' then - cnt := "01"; divstart := '1'; - end if; + hold_pc := '1'; pv := '0'; + if r.d.divrdy = '0' then + cnt := "01"; divstart := '1'; + end if; when "01" => if divo.nready = '1' then cnt := "00"; else cnt := "01"; pv := '0'; hold_pc := '1'; end if; @@ -1430,6 +1418,7 @@ end; annul_next := '1'; pv := '0'; inhibit_current := '1'; end if; + if hold_pc = '1' then de_pc := r.d.pc; else de_pc := r.f.pc; end if; annul_current := (annul_current or (ldlock and not inhibit_current) or annul_all); @@ -1574,21 +1563,18 @@ end; my, ldbp : std_ulogic; aop1, aop2 : out word; aluop : out std_logic_vector(2 downto 0); alusel : out std_logic_vector(1 downto 0); aluadd : out std_ulogic; shcnt : out std_logic_vector(4 downto 0); sari, shleft, ymsb, - mulins, divins, mulstep, macins, ldbp2, invop2 : out std_logic - ) is + mulins, divins, mulstep, macins, ldbp2, invop2 : out std_ulogic) is variable op : std_logic_vector(1 downto 0); variable op2 : std_logic_vector(2 downto 0); variable op3 : std_logic_vector(5 downto 0); - variable rs1, rs2, rd : std_logic_vector(4 downto 0); + variable rd : std_logic_vector(4 downto 0); variable icc : std_logic_vector(3 downto 0); - variable y0, i : std_ulogic; + variable y0 : std_ulogic; begin op := r.a.ctrl.inst(31 downto 30); op2 := r.a.ctrl.inst(24 downto 22); op3 := r.a.ctrl.inst(24 downto 19); - rs1 := r.a.ctrl.inst(18 downto 14); i := r.a.ctrl.inst(13); - rs2 := r.a.ctrl.inst(4 downto 0); rd := r.a.ctrl.inst(29 downto 25); aop1 := iop1; aop2 := iop2; ldbp2 := ldbp; aluop := EXE_NOP; alusel := EXE_RES_MISC; aluadd := '1'; shcnt := iop2(4 downto 0); sari := '0'; shleft := '0'; invop2 := '0'; @@ -1683,7 +1669,7 @@ end; de_inull := '0'; if ((v.e.jmpl or v.e.ctrl.rett) and not v.e.ctrl.annul and not (r.e.jmpl and not r.e.ctrl.annul)) = '1' then de_inull := '1'; end if; if ((v.a.jmpl or v.a.ctrl.rett) and not v.a.ctrl.annul and not (r.a.jmpl and not r.a.ctrl.annul)) = '1' then de_inull := '1'; end if; - return(de_inull); + return(de_inull); end; -- operand generation @@ -1691,6 +1677,7 @@ end; procedure op_mux(r : in registers; rfd, ed, md, xd, im : in word; rsel : in std_logic_vector(2 downto 0); ldbp : out std_ulogic; d : out word; id : std_logic) is + begin ldbp := '0'; case rsel is @@ -1714,9 +1701,9 @@ end; if im then osel := "100"; elsif rs1 = "00000" then osel := "101"; -- %g0 elsif ((r.a.ctrl.wreg and ldchkra) = '1') and (ra = r.a.ctrl.rd) then osel := "001"; - elsif ((r.e.ctrl.wreg and ldchkex) = '1') and (ra = r.e.ctrl.rd) then osel := "010"; - elsif (r.m.ctrl.wreg = '1') and (ra = r.m.ctrl.rd) then osel := "011"; - elsif (irfwt = 0) and (r.x.ctrl.wreg = '1') and (ra = r.x.ctrl.rd) then osel := "110"; + elsif ((r.e.ctrl.wreg and ldchkex) = '1') and (ra = r.e.ctrl.rd) then osel := "010"; + elsif r.m.ctrl.wreg = '1' and (ra = r.m.ctrl.rd) then osel := "011"; + elsif (irfwt = 0) and r.x.ctrl.wreg = '1' and (ra = r.x.ctrl.rd) then osel := "110"; else osel := "000"; rfe := ldcheck; end if; end; @@ -1774,18 +1761,6 @@ end; logicres := logicout; end; - function st_align(size : std_logic_vector(1 downto 0); bpdata : word) return word is - variable edata : word; - begin - case size is - when "01" => edata := bpdata(7 downto 0) & bpdata(7 downto 0) & - bpdata(7 downto 0) & bpdata(7 downto 0); - when "10" => edata := bpdata(15 downto 0) & bpdata(15 downto 0); - when others => edata := bpdata; - end case; - return(edata); - end; - procedure misc_op(r : registers; wpr : watchpoint_registers; aluin1, aluin2, ldata, mey : word; mout, edata : out word) is @@ -1820,7 +1795,6 @@ end; if (r.e.ctrl.inst(18 downto 17) = "10") and (r.e.ctrl.inst(14) = '1') then --%ASR17 miscout := asr17_gen(r); end if; - if MACEN then if (r.e.ctrl.inst(18 downto 14) = "10010") then --%ASR18 if ((r.m.mac = '1') and not MACPIPE) or ((r.x.mac = '1') and MACPIPE) then @@ -1881,7 +1855,6 @@ end; end case; end if; --- if aluresult = zero32 then icc(2) := '1'; end if; icc(2) := azero; when EXE_RES_SHIFT => aluresult := shiftout; when EXE_RES_LOGIC => aluresult := logicout; @@ -1903,7 +1876,7 @@ end; link_pc, jump, force_a2, load, mcasa : out std_ulogic) is variable op : std_logic_vector(1 downto 0); variable op3 : std_logic_vector(5 downto 0); - variable su, lock : std_ulogic; + variable su : std_ulogic; begin op := r.e.ctrl.inst(31 downto 30); op3 := r.e.ctrl.inst(24 downto 19); dci.signed := '0'; dci.lock := '0'; dci.dsuen := '0'; dci.size := SZWORD; @@ -1928,36 +1901,35 @@ end; when others => dci.size := SZWORD; dci.lock := '0'; dci.signed := '0'; end case; end if; - + link_pc := '0'; jump:= '0'; force_a2 := '0'; load := '0'; dci.write := '0'; dci.enaddr := '0'; dci.read := not op3(2); -- load/store control decoding - if (r.e.ctrl.annul or r.e.ctrl.trap) = '0' then + if (r.e.ctrl.annul = '0') then case op is when CALL => link_pc := '1'; when FMT3 => - if r.e.ctrl.trap = '0' then + if r.e.ctrl.trap = '0' then case op3 is when JMPL => jump := '1'; link_pc := '1'; when RETT => jump := '1'; when others => null; end case; - end if; + end if; when LDST => case r.e.ctrl.cnt is when "00" => dci.read := op3(3) or not op3(2); -- LD/LDST/SWAP/CASA load := op3(3) or not op3(2); - --dci.enaddr := '1'; dci.enaddr := (not op3(2)) or op3(2) - or (op3(3) and op3(2)); + or (op3(3) and op3(2)); when "01" => force_a2 := not op3(2); -- LDD load := not op3(2); dci.enaddr := not op3(2); if op3(3 downto 2) = "01" then -- ST/STD - dci.write := '1'; + dci.write := '1'; end if; if (CASAEN and (op3(5 downto 4) = "11")) or -- CASA (op3(3 downto 2) = "11") then -- LDST/SWAP @@ -1967,7 +1939,7 @@ end; dci.write := '1'; when others => null; end case; - if (r.e.ctrl.trap or (v.x.ctrl.trap and not v.x.ctrl.annul)) = '1' then + if (r.e.ctrl.trap or (v.x.ctrl.trap and not v.x.ctrl.annul)) = '1' then dci.enaddr := '0'; end if; if (CASAEN and (op3(5 downto 4) = "11")) then mcasa := '1'; end if; @@ -2036,7 +2008,6 @@ end; return(rdata); end; - procedure mem_trap(r : registers; wpr : watchpoint_registers; annul, holdn : in std_ulogic; trapout, iflush, nullify, werrout : out std_ulogic; @@ -2175,8 +2146,7 @@ end; end if; if (irl = "1111") or (irl > r.w.s.pil) then - pend := r.m.irqen and r.m.irqen2 and r.w.s.et and not ir.pwd - ; + pend := r.m.irqen and r.m.irqen2 and r.w.s.et and not ir.pwd; else pend := '0'; end if; ipend := pend; @@ -2221,7 +2191,7 @@ end; elsif MACEN and (rd = "10010") then s.asr18 := r.x.result; elsif (rd = "10001") then - if bp = 2 then s.dbp := r.x.result(27); end if; + if bp = 2 then s.dbp := r.x.result(27); end if; s.dwt := r.x.result(14); if (svt = 1) then s.svt := r.x.result(13); end if; elsif rd(4 downto 3) = "11" then -- %ASR24 - %ASR31 @@ -2375,7 +2345,6 @@ end; end if; return(pd); end; - signal dummy : std_ulogic; signal cpu_index : std_logic_vector(3 downto 0); @@ -2388,7 +2357,7 @@ begin mulo, divo, dummy, rp, BPRED) variable v : registers; - variable vp : pwd_register_type; + variable vp : pwd_register_type; variable vwpr : watchpoint_registers; variable vdsu : dsu_registers; variable fe_pc, fe_npc : std_logic_vector(31 downto PCLOW); @@ -2401,12 +2370,12 @@ begin variable de_ren1, de_ren2 : std_ulogic; variable de_wcwp : std_ulogic; variable de_inst : word; + variable de_branch_address : pctype; variable de_icc : std_logic_vector(3 downto 0); variable de_fbranch, de_cbranch : std_ulogic; variable de_rs1mod : std_ulogic; variable de_bpannul : std_ulogic; variable de_fins_hold : std_ulogic; - variable de_iperr : std_ulogic; variable ra_op1, ra_op2 : word; variable ra_div : std_ulogic; @@ -2420,17 +2389,13 @@ begin variable ex_edata, ex_edata2 : word; variable ex_dci : dc_in_type; variable ex_force_a2, ex_load, ex_ymsb : std_ulogic; - variable ex_op1, ex_op2, ex_result, ex_result2, ex_result3, mul_op2 : word; + variable ex_op1, ex_op2, ex_result, ex_result2, mul_op2 : word; variable ex_shcnt : std_logic_vector(4 downto 0); variable ex_dsuen : std_ulogic; variable ex_ldbp2 : std_ulogic; variable ex_sari : std_ulogic; variable ex_bpmiss : std_ulogic; - - variable ex_cdata : std_logic_vector(31 downto 0); - variable ex_mulop1, ex_mulop2 : std_logic_vector(32 downto 0); - variable me_bp_res : word; variable me_inull, me_nullify, me_nullify2 : std_ulogic; variable me_iflush : std_ulogic; variable me_newtt : std_logic_vector(5 downto 0); @@ -2445,11 +2410,12 @@ begin variable xc_waddr : std_logic_vector(9 downto 0); variable xc_exception, xc_wreg : std_ulogic; variable xc_trap_address : pctype; - variable xc_newtt, xc_vectt : std_logic_vector(7 downto 0); + variable xc_vectt : std_logic_vector(7 downto 0); variable xc_trap : std_ulogic; - variable xc_fpexack : std_ulogic; + variable xc_fpexack : std_ulogic; variable xc_rstn, xc_halt : std_ulogic; +-- variable wr_rf1_data, wr_rf2_data : word; variable diagdata : word; variable tbufi : tracebuf_in_type; variable dbgm : std_ulogic; @@ -2458,9 +2424,6 @@ begin variable dsign : std_ulogic; variable pwrd, sidle : std_ulogic; variable vir : irestart_register; - variable xc_dflushl : std_ulogic; - variable xc_dcperr : std_ulogic; - variable st : std_ulogic; variable icnt, fcnt : std_ulogic; variable tbufcntx : std_logic_vector(TBUFBITS-1 downto 0); variable bpmiss : std_ulogic; @@ -2471,6 +2434,18 @@ begin xc_fpexack := '0'; sidle := '0'; fpcdbgwr := '0'; vir := ir; xc_rstn := rstn; +----------------------------------------------------------------------- +-- WRITE STAGE +----------------------------------------------------------------------- + +-- wr_rf1_data := rfo.data1; wr_rf2_data := rfo.data2; +-- if irfwt = 0 then +-- if r.w.wreg = '1' then +-- if r.a.rfa1 = r.w.wa then wr_rf1_data := r.w.result; end if; +-- if r.a.rfa2 = r.w.wa then wr_rf2_data := r.w.result; end if; +-- end if; +-- end if; + ----------------------------------------------------------------------- -- EXCEPTION STAGE ----------------------------------------------------------------------- @@ -2479,35 +2454,28 @@ begin xc_waddr := (others => '0'); xc_waddr(RFBITS-1 downto 0) := r.x.ctrl.rd(RFBITS-1 downto 0); xc_trap := r.x.mexc or r.x.ctrl.trap; - v.x.nerror := rp.error; xc_dflushl := '0'; - + v.x.nerror := rp.error; + if r.x.mexc = '1' then xc_vectt := "00" & TT_DAEX; elsif r.x.ctrl.tt = TT_TICC then xc_vectt := '1' & r.x.result(6 downto 0); else xc_vectt := "00" & r.x.ctrl.tt; end if; - if r.w.s.svt = '0' then - xc_trap_address(31 downto 2) := r.w.s.tba & xc_vectt & "00"; + xc_trap_address(31 downto 4) := r.w.s.tba & xc_vectt; else - xc_trap_address(31 downto 2) := r.w.s.tba & "00000000" & "00"; + xc_trap_address(31 downto 4) := r.w.s.tba & "00000000"; end if; - xc_trap_address(2 downto PCLOW) := (others => '0'); + xc_trap_address(3 downto PCLOW) := (others => '0'); xc_wreg := '0'; v.x.annul_all := '0'; - - if (not r.x.ctrl.annul and r.x.ctrl.ld) = '1' then + if (r.x.ctrl.ld = '1') then if (lddel = 2) then xc_result := ld_align(r.x.data, r.x.set, r.x.dci.size, r.x.laddr, r.x.dci.signed); - else - xc_result := r.x.data(0); - end if; - elsif MACEN and MACPIPE and ((not r.x.ctrl.annul and r.x.mac) = '1') then + else xc_result := r.x.data(0); end if; + elsif MACEN and MACPIPE and (r.x.mac = '1') then xc_result := mulo.result(31 downto 0); else xc_result := r.x.result; end if; xc_df_result := xc_result; - - - if DBGUNIT - then + if DBGUNIT then dbgm := dbgexc(r, dbgi, xc_trap, xc_vectt); if (dbgi.dsuen and dbgi.dbreak) = '0'then v.x.debug := '0'; end if; else dbgm := '0'; v.x.debug := '0'; end if; @@ -2515,11 +2483,12 @@ begin case r.x.rstate is when run => - if (dbgm - ) /= '0' then + if (not r.x.ctrl.annul and r.x.ctrl.pv and not r.x.debug) = '1' then + icnt := holdn; + end if; + if dbgm = '1' then v.x.annul_all := '1'; vir.addr := r.x.ctrl.pc; - v.x.rstate := dsu1; - v.x.debug := '1'; + v.x.rstate := dsu1; v.x.debug := '1'; v.x.npc := npc_find(r); vdsu.tt := xc_vectt; vdsu.err := dbgerr(r, dbgi, xc_vectt); elsif (pwrd = '1') and (ir.pwd = '0') then @@ -2546,14 +2515,14 @@ begin fpexack(r, xc_fpexack); if r.w.s.et = '0' then -- v.x.rstate := dsu1; xc_wreg := '0'; vp.error := '1'; - xc_wreg := '0'; + xc_wreg := '0'; end if; end if; when trap => xc_result := npc_gen(r); xc_wreg := '1'; xc_waddr := (others => '0'); xc_waddr(NWINLOG2 + 3 downto 0) := r.w.s.cwp & "0010"; - if r.w.s.et = '1' then + if (r.w.s.et = '1') then v.w.s.et := '0'; v.x.rstate := run; if (not CWPOPT) and (r.w.s.cwp = CWPMIN) then v.w.s.cwp := CWPMAX; else v.w.s.cwp := r.w.s.cwp - 1 ; end if; @@ -2562,9 +2531,8 @@ begin end if; when dsu1 => xc_exception := '1'; v.x.annul_all := '1'; - xc_trap_address(31 downto PCLOW) := r.f.pc; - if DBGUNIT or PWRD2 or (smp /= 0) - then + xc_trap_address(31 downto PCLOW) := r.f.pc; + if DBGUNIT or PWRD2 or (smp /= 0) then xc_trap_address(31 downto PCLOW) := ir.addr; vir.addr := npc_gen(r)(31 downto PCLOW); v.x.rstate := dsu2; @@ -2572,90 +2540,82 @@ begin if DBGUNIT then v.x.debug := r.x.debug; end if; when dsu2 => xc_exception := '1'; v.x.annul_all := '1'; - xc_trap_address(31 downto PCLOW) := r.f.pc; - if DBGUNIT or PWRD2 or (smp /= 0) - then - sidle := (rp.pwd or rp.error) and ico.idle and dco.idle and not r.x.debug; + xc_trap_address(31 downto PCLOW) := r.f.pc; + if DBGUNIT or PWRD2 or (smp /= 0) then + sidle := (rp.pwd or rp.error) and ico.idle and dco.idle and not r.x.debug; if DBGUNIT then - if dbgi.reset = '1' then - if smp /=0 then vp.pwd := not irqi.run; else vp.pwd := '0'; end if; - vp.error := '0'; - end if; + if dbgi.reset = '1' then + if smp /=0 then vp.pwd := not irqi.run; else vp.pwd := '0'; end if; + vp.error := '0'; + end if; if (dbgi.dsuen and dbgi.dbreak) = '1'then v.x.debug := '1'; end if; diagwr(r, dsur, ir, dbgi, wpr, v.w.s, vwpr, vdsu.asi, xc_trap_address, - vir.addr, vdsu.tbufcnt, xc_wreg, xc_waddr, xc_result, fpcdbgwr); - xc_halt := dbgi.halt; + vir.addr, vdsu.tbufcnt, xc_wreg, xc_waddr, xc_result, fpcdbgwr); + xc_halt := dbgi.halt; end if; - if r.x.ipend = '1' then vp.pwd := '0'; end if; + if r.x.ipend = '1' then vp.pwd := '0'; end if; if (rp.error or rp.pwd or r.x.debug or xc_halt) = '0' then - v.x.rstate := run; v.x.annul_all := '0'; vp.error := '0'; + v.x.rstate := run; v.x.annul_all := '0'; vp.error := '0'; xc_trap_address(31 downto PCLOW) := ir.addr; v.x.debug := '0'; vir.pwd := '1'; end if; if (smp /= 0) and (irqi.rst = '1') then - vp.pwd := '0'; vp.error := '0'; + vp.pwd := '0'; vp.error := '0'; end if; end if; when others => end case; - dci.flushl <= xc_dflushl; - - irq_intack(r, holdn, v.x.intack); - itrace(r, dsur, vdsu, xc_result, xc_exception, dbgi, rp.error, xc_trap, tbufcntx, tbufi, '0', xc_dcperr); + itrace(r, dsur, vdsu, xc_result, xc_exception, dbgi, rp.error, xc_trap, tbufcntx, tbufi); vdsu.tbufcnt := tbufcntx; - + v.w.except := xc_exception; v.w.result := xc_result; if (r.x.rstate = dsu2) then v.w.except := '0'; end if; v.w.wa := xc_waddr(RFBITS-1 downto 0); v.w.wreg := xc_wreg and holdn; - rfi.diag <= dco.testen & dco.scanen & "00"; rfi.wdata <= xc_result; rfi.waddr <= xc_waddr; - + rfi.wren <= (xc_wreg and holdn) and not dco.scanen; irqo.intack <= r.x.intack and holdn; irqo.irl <= r.w.s.tt(3 downto 0); irqo.pwd <= rp.pwd; irqo.fpen <= r.w.s.ef; irqo.idle <= '0'; dbgo.halt <= xc_halt; - dbgo.pwd <= rp.pwd; + dbgo.pwd <= rp.pwd; dbgo.idle <= sidle; dbgo.icnt <= icnt; dbgo.fcnt <= fcnt; dbgo.optype <= r.x.ctrl.inst(31 downto 30) & r.x.ctrl.inst(24 downto 21); - dci.intack <= r.x.intack and holdn; + dci.intack <= r.x.intack and holdn; if (xc_rstn = '0') then v.w.except := '0'; v.w.s.et := '0'; v.w.s.svt := '0'; v.w.s.dwt := '0'; v.w.s.ef := '0'; -- needed for AX - if fabtech = rhlib18t then v.w.s.ef := '1'; end if; if need_extra_sync_reset(fabtech) /= 0 then v.w.s.cwp := (others => '0'); v.w.s.icc := (others => '0'); end if; v.w.s.dbp := '0'; - v.x.ipmask := '0'; + if DYNRST then v.w.s.tba := irqi.rstvec; + else v.w.s.tba := conv_std_logic_vector(rstaddr, 20); end if; v.x.annul_all := '1'; v.x.rstate := run; vir.pwd := '0'; - vp.pwd := '0'; v.x.debug := '0'; - v.x.nerror := '0'; --v.x.error := '0'; + vp.pwd := '0'; v.x.debug := '0'; --vp.error := '0'; + v.x.nerror := '0'; if svt = 1 then v.w.s.tt := (others => '0'); end if; if DBGUNIT then if (dbgi.dsuen and dbgi.dbreak) = '1' then v.x.rstate := dsu1; v.x.debug := '1'; end if; end if; - if (index /= 0) and (irqi.run = '0') and (rstn = '0') then - v.x.rstate := dsu1; vp.pwd := '1'; + if (smp /= 0) and (irqi.run = '0') and (rstn = '0') then + v.x.rstate := dsu1; vp.pwd := '1'; end if; - v.x.npc := "100"; end if; - -- kill off unused regs if not FPEN then v.w.s.ef := '0'; end if; if not CPEN then v.w.s.ec := '0'; end if; - ----------------------------------------------------------------------- -- MEMORY STAGE ----------------------------------------------------------------------- @@ -2664,15 +2624,12 @@ begin v.x.ctrl.rett := r.m.ctrl.rett and not r.m.ctrl.annul; v.x.mac := r.m.mac; v.x.laddr := r.m.result(1 downto 0); v.x.ctrl.annul := r.m.ctrl.annul or v.x.annul_all; - st := '0'; if CASAEN and (r.m.casa = '1') and (r.m.ctrl.cnt = "00") then v.x.ctrl.inst(4 downto 0) := r.a.ctrl.inst(4 downto 0); -- restore rs2 for trace log end if; mul_res(r, v.w.s.asr18, v.x.result, v.x.y, me_asr18, me_icc); - - mem_trap(r, wpr, v.x.ctrl.annul, holdn, v.x.ctrl.trap, me_iflush, me_nullify, v.m.werr, v.x.ctrl.tt); me_newtt := v.x.ctrl.tt; @@ -2680,25 +2637,19 @@ begin irq_trap(r, ir, irqi.irl, v.x.ctrl.annul, v.x.ctrl.pv, v.x.ctrl.trap, me_newtt, me_nullify, v.m.irqen, v.m.irqen2, me_nullify2, v.x.ctrl.trap, v.x.ipend, v.x.ctrl.tt); - - - if (r.m.ctrl.ld or st or not dco.mds) = '1' then - for i in 0 to dsets-1 loop - v.x.data(i) := dco.data(i); - end loop; - v.x.set := dco.set(DSETMSB downto 0); + + if (r.m.ctrl.ld or not dco.mds) = '1' then + for i in 0 to dsets-1 loop v.x.data(i) := dco.data(i); end loop; + v.x.set := dco.set(DSETMSB downto 0); if dco.mds = '0' then me_size := r.x.dci.size; me_laddr := r.x.laddr; me_signed := r.x.dci.signed; else me_size := v.x.dci.size; me_laddr := v.x.laddr; me_signed := v.x.dci.signed; end if; - if (lddel /= 2) then + if lddel /= 2 then v.x.data(0) := ld_align(v.x.data, v.x.set, me_size, me_laddr, me_signed); end if; end if; - if (is_fpga(fabtech) = 0) and (xc_rstn = '0') then - v.x.data := (others => (others => '0')); --v.x.ldc := '0'; - end if; v.x.mexc := dco.mexc; v.x.icc := me_icc; @@ -2708,40 +2659,36 @@ begin v.w.s.asr18 := me_asr18; end if; - if (r.x.rstate = dsu2) - then + if (r.x.rstate = dsu2) then me_nullify2 := '0'; v.x.set := dco.set(DSETMSB downto 0); end if; - - - if (xc_rstn = '0') then - v.x.ctrl.trap := '0'; v.x.ctrl.annul := '1'; - end if; - dci.maddress <= r.m.result; + dci.maddress <= r.m.result; dci.enaddr <= r.m.dci.enaddr; dci.asi <= r.m.dci.asi; dci.size <= r.m.dci.size; - dci.lock <= (r.m.dci.lock and not r.m.ctrl.annul); + dci.lock <= r.m.dci.lock and not r.m.ctrl.annul; dci.read <= r.m.dci.read; dci.write <= r.m.dci.write; dci.flush <= me_iflush; + dci.flushl <= '0'; dci.dsuen <= r.m.dci.dsuen; dci.msu <= r.m.su; dci.esu <= r.e.su; dbgo.ipend <= v.x.ipend; - + ----------------------------------------------------------------------- -- EXECUTE STAGE ----------------------------------------------------------------------- v.m.ctrl := r.e.ctrl; ex_op1 := r.e.op1; ex_op2 := r.e.op2; v.m.ctrl.rett := r.e.ctrl.rett and not r.e.ctrl.annul; - v.m.ctrl.wreg := r.e.ctrl.wreg and not v.x.annul_all; + v.m.ctrl.wreg := r.e.ctrl.wreg and not v.x.annul_all; ex_ymsb := r.e.ymsb; mul_op2 := ex_op2; ex_shcnt := r.e.shcnt; v.e.cwp := r.a.cwp; ex_sari := r.e.sari; v.m.su := r.e.su; if MULTYPE = 3 then v.m.mul := r.e.mul; else v.m.mul := '0'; end if; + if lddel = 1 then if r.e.ldbp1 = '1' then ex_op1 := r.x.data(0); @@ -2756,7 +2703,6 @@ begin end if; end if; - ex_add_res := (ex_op1 & '1') + (ex_op2 & r.e.alucin); if ex_add_res(2 downto 1) = "00" then v.m.nalign := '0'; @@ -2771,24 +2717,14 @@ begin alu_select(r, ex_add_res, ex_op1, ex_op2, ex_shift_res, ex_logic_res, ex_misc_res, ex_result, me_icc, v.m.icc, v.m.divz, v.m.casaz); dbg_cache(holdn, dbgi, r, dsur, ex_result, ex_dci, ex_result2, v.m.dci); - fpstdata(r, ex_edata, ex_result2, fpo.data, ex_edata2, ex_result3); - v.m.result := ex_result3; + fpstdata(r, ex_edata, ex_result2, fpo.data, ex_edata2, v.m.result); cwp_ex(r, v.m.wcwp); if CASAEN and (r.e.ctrl.cnt = "10") and ((r.m.casa and not v.m.casaz) = '1') then me_nullify2 := '1'; end if; dci.nullify <= me_nullify2; - - ex_mulop1 := (ex_op1(31) and r.e.ctrl.inst(19)) & ex_op1; - ex_mulop2 := (mul_op2(31) and r.e.ctrl.inst(19)) & mul_op2; - - if is_fpga(fabtech) = 0 and (r.e.mul = '0') then -- power-save for mul --- if (r.e.mul = '0') then - ex_mulop1 := (others => '0'); ex_mulop2 := (others => '0'); - end if; - - + v.m.ctrl.annul := v.m.ctrl.annul or v.x.annul_all; v.m.ctrl.wicc := r.e.ctrl.wicc and not v.x.annul_all; v.m.mac := r.e.mac; @@ -2808,22 +2744,19 @@ begin v.e.ctrl.wreg := r.a.ctrl.wreg and not (ra_bpannul or v.x.annul_all); v.e.su := r.a.su; v.e.et := r.a.et; v.e.ctrl.wicc := r.a.ctrl.wicc and not (ra_bpannul or v.x.annul_all); - v.e.rfe1 := r.a.rfe1; v.e.rfe2 := r.a.rfe2; - exception_detect(r, wpr, dbgi, r.a.ctrl.trap, r.a.ctrl.tt, - v.e.ctrl.trap, v.e.ctrl.tt); - op_mux(r, rfo.data1, ex_result3, v.x.result, xc_df_result, zero32, + exception_detect(r, wpr, dbgi, v.e.ctrl.trap, v.e.ctrl.tt); + op_mux(r, rfo.data1, v.m.result, v.x.result, xc_df_result, zero32, r.a.rsel1, v.e.ldbp1, ra_op1, '0'); - op_mux(r, rfo.data2, ex_result3, v.x.result, xc_df_result, r.a.imm, + op_mux(r, rfo.data2, v.m.result, v.x.result, xc_df_result, r.a.imm, r.a.rsel2, ex_ldbp2, ra_op2, '1'); alu_op(r, ra_op1, ra_op2, v.m.icc, v.m.y(0), ex_ldbp2, v.e.op1, v.e.op2, v.e.aluop, v.e.alusel, v.e.aluadd, v.e.shcnt, v.e.sari, v.e.shleft, - v.e.ymsb, v.e.mul, ra_div, v.e.mulstep, v.e.mac, v.e.ldbp2, v.e.invop2 - ); + v.e.ymsb, v.e.mul, ra_div, v.e.mulstep, v.e.mac, v.e.ldbp2, v.e.invop2); cin_gen(r, v.m.icc(0), v.e.alucin); bp_miss_ra(r, ra_bpmiss, de_bpannul); v.e.bp := r.a.bp and not ra_bpmiss; - + ----------------------------------------------------------------------- -- DECODE STAGE ----------------------------------------------------------------------- @@ -2841,6 +2774,7 @@ begin when others => end case; end if; + rs1_gen(r, de_inst, v.a.rs1, de_rs1mod); de_rs2 := de_inst(4 downto 0); de_raddr1 := (others => '0'); de_raddr2 := (others => '0'); @@ -2864,50 +2798,40 @@ begin fpbranch(de_inst, fpo.cc, de_fbranch); fpbranch(de_inst, cpo.cc, de_cbranch); v.a.imm := imm_data(r, de_inst); - de_iperr := '0'; lock_gen(r, de_rs2, de_rd, v.a.rfa1, v.a.rfa2, v.a.ctrl.rd, de_inst, fpo.ldlock, v.e.mul, ra_div, de_wcwp, v.a.ldcheck1, v.a.ldcheck2, de_ldlock, - v.a.ldchkra, v.a.ldchkex, v.a.bp, v.a.nobp, de_fins_hold, de_iperr); + v.a.ldchkra, v.a.ldchkex, v.a.bp, v.a.nobp, de_fins_hold); ic_ctrl(r, de_inst, v.x.annul_all, de_ldlock, branch_true(de_icc, de_inst), de_fbranch, de_cbranch, fpo.ccv, cpo.ccv, v.d.cnt, v.d.pc, de_branch, v.a.ctrl.annul, v.d.annul, v.a.jmpl, de_inull, v.d.pv, v.a.ctrl.pv, de_hold_pc, v.a.ticc, v.a.ctrl.rett, v.a.mulstart, v.a.divstart, - ra_bpmiss, ex_bpmiss, de_iperr); + ra_bpmiss, ex_bpmiss); v.a.bp := v.a.bp and not v.a.ctrl.annul; v.a.nobp := v.a.nobp and not v.a.ctrl.annul; - - v.a.ctrl.inst := de_inst; - cwp_gen(r, v, v.a.ctrl.annul, de_wcwp, de_cwp, v.d.cwp); v.d.inull := ra_inull_gen(r, v); - + op_find(r, v.a.ldchkra, v.a.ldchkex, v.a.rs1, v.a.rfa1, false, v.a.rfe1, v.a.rsel1, v.a.ldcheck1); op_find(r, v.a.ldchkra, v.a.ldchkex, de_rs2, v.a.rfa2, imm_select(de_inst), v.a.rfe2, v.a.rsel2, v.a.ldcheck2); + de_branch_address := branch_address(de_inst, r.d.pc); - v.a.ctrl.wicc := v.a.ctrl.wicc and (not v.a.ctrl.annul) - ; - v.a.ctrl.wreg := v.a.ctrl.wreg and (not v.a.ctrl.annul) - ; - v.a.ctrl.rett := v.a.ctrl.rett and (not v.a.ctrl.annul) - ; - v.a.ctrl.wy := v.a.ctrl.wy and (not v.a.ctrl.annul) - ; + v.a.ctrl.wicc := v.a.ctrl.wicc and not v.a.ctrl.annul; + v.a.ctrl.wreg := v.a.ctrl.wreg and not v.a.ctrl.annul; + v.a.ctrl.rett := v.a.ctrl.rett and not v.a.ctrl.annul; + v.a.ctrl.wy := v.a.ctrl.wy and not v.a.ctrl.annul; - v.a.ctrl.trap := r.d.mexc - ; + v.a.ctrl.trap := r.d.mexc; v.a.ctrl.tt := "000000"; - if r.d.mexc = '1' then - v.a.ctrl.tt := "000001"; - end if; + v.a.ctrl.inst := de_inst; v.a.ctrl.pc := r.d.pc; v.a.ctrl.cnt := r.d.cnt; v.a.step := r.d.step; - + if holdn = '0' then de_raddr1(RFBITS-1 downto 0) := r.a.rfa1; de_raddr2(RFBITS-1 downto 0) := r.a.rfa2; @@ -2917,22 +2841,22 @@ begin end if; if DBGUNIT then - if (dbgi.denable = '1') and (r.x.rstate = dsu2) then + if ((dbgi.denable and not dbgi.dwrite) = '1') and (r.x.rstate = dsu2) then de_raddr1(RFBITS-1 downto 0) := dbgi.daddr(RFBITS+1 downto 2); de_ren1 := '1'; - de_raddr2 := de_raddr1; de_ren2 := '1'; end if; v.d.step := dbgi.step and not r.d.annul; end if; - rfi.wren <= (xc_wreg and holdn) and not dco.scanen; rfi.raddr1 <= de_raddr1; rfi.raddr2 <= de_raddr2; rfi.ren1 <= de_ren1 and not dco.scanen; rfi.ren2 <= de_ren2 and not dco.scanen; - ici.inull <= de_inull - ; + rfi.diag <= dco.testen & "000"; + ici.inull <= de_inull; ici.flush <= me_iflush; v.d.divrdy := divo.nready; - ici.fline <= r.x.ctrl.pc(31 downto 3); + ici.flushl <= '0'; + ici.pnull <= '0'; + ici.fline <= (others => '0'); dbgo.bpmiss <= bpmiss and holdn; if (xc_rstn = '0') then v.d.cnt := (others => '0'); @@ -2973,9 +2897,7 @@ begin elsif (ex_jump and not bpmiss) = '1' then v.f.pc := ex_jump_address; v.f.branch := '1'; npc := v.f.pc; - elsif (de_branch and not bpmiss - ) = '1' - then + elsif (de_branch and not bpmiss) = '1' then v.f.pc := branch_address(de_inst, r.d.pc); v.f.branch := '1'; npc := v.f.pc; else @@ -2988,15 +2910,15 @@ begin ici.fbranch <= r.f.branch; ici.rbranch <= v.f.branch; ici.su <= v.a.su; + ici.fline <= (others => '0'); + ici.flushl <= '0'; - - if (ico.mds and de_hold_pc) = '0' then + if (ico.mds and de_hold_pc) = '0' then for i in 0 to isets-1 loop v.d.inst(i) := ico.data(i); -- latch instruction end loop; v.d.set := ico.set(ISETMSB downto 0); -- latch instruction v.d.mexc := ico.mexc; -- latch instruction - end if; ----------------------------------------------------------------------- @@ -3012,18 +2934,16 @@ begin ----------------------------------------------------------------------- rin <= v; wprin <= vwpr; dsuin <= vdsu; irin <= vir; - muli.start <= r.a.mulstart and not r.a.ctrl.annul and - not r.a.ctrl.trap and not ra_bpannul; + muli.start <= r.a.mulstart and not r.a.ctrl.annul; muli.signed <= r.e.ctrl.inst(19); - muli.op1 <= ex_mulop1; --(ex_op1(31) and r.e.ctrl.inst(19)) & ex_op1; - muli.op2 <= ex_mulop2; --(mul_op2(31) and r.e.ctrl.inst(19)) & mul_op2; + muli.op1 <= (ex_op1(31) and r.e.ctrl.inst(19)) & ex_op1; + muli.op2 <= (mul_op2(31) and r.e.ctrl.inst(19)) & mul_op2; muli.mac <= r.e.ctrl.inst(24); if MACPIPE then muli.acc(39 downto 32) <= r.w.s.y(7 downto 0); else muli.acc(39 downto 32) <= r.x.y(7 downto 0); end if; muli.acc(31 downto 0) <= r.w.s.asr18; muli.flush <= r.x.annul_all; - divi.start <= r.a.divstart and not r.a.ctrl.annul and - not r.a.ctrl.trap and not ra_bpannul; + divi.start <= r.a.divstart and not r.a.ctrl.annul; divi.signed <= r.e.ctrl.inst(19); divi.flush <= r.x.annul_all; divi.op1 <= (ex_op1(31) and r.e.ctrl.inst(19)) & ex_op1; @@ -3043,9 +2963,9 @@ begin end if; else dbgo.dsu <= '0'; dbgo.data <= (others => '0'); dbgo.crdy <= '0'; - dbgo.dsumode <= '0'; tbi.addr <= (others => '0'); - tbi.data <= (others => '0'); tbi.enable <= '0'; - tbi.write <= (others => '0'); tbi.diag <= "0000"; + dbgo.dsumode <= '0'; + tbi.addr <= (others => '0'); tbi.data <= (others => '0'); + tbi.enable <= '0'; tbi.write <= (others => '0'); tbi.diag <= "0000"; end if; dbgo.error <= dummy and not r.x.nerror; dbgo.wbhold <= '0'; --dco.wbhold; @@ -3053,21 +2973,16 @@ begin dbgo.istat <= ('0', '0', '0', '0'); dbgo.dstat <= ('0', '0', '0', '0'); - +-- pragma translate_off if FPEN then - if (r.x.rstate = dsu2) then vfpi.flush := '1'; else vfpi.flush := v.x.annul_all and holdn; end if; - vfpi.exack := xc_fpexack; vfpi.a_rs1 := r.a.rs1; vfpi.d.inst := de_inst; - vfpi.d.cnt := r.d.cnt; - vfpi.d.annul := v.x.annul_all or de_bpannul or r.d.annul or de_fins_hold - ; - vfpi.d.trap := r.d.mexc; +-- pragma translate_on + vfpi.flush := v.x.annul_all; vfpi.exack := xc_fpexack; vfpi.a_rs1 := r.a.rs1; vfpi.d.inst := de_inst; + vfpi.d.cnt := r.d.cnt; vfpi.d.annul := v.x.annul_all or de_bpannul or r.d.annul or de_fins_hold; vfpi.d.trap := r.d.mexc; vfpi.d.pc(1 downto 0) := (others => '0'); vfpi.d.pc(31 downto PCLOW) := r.d.pc(31 downto PCLOW); vfpi.d.pv := r.d.pv; vfpi.a.pc(1 downto 0) := (others => '0'); vfpi.a.pc(31 downto PCLOW) := r.a.ctrl.pc(31 downto PCLOW); vfpi.a.inst := r.a.ctrl.inst; vfpi.a.cnt := r.a.ctrl.cnt; vfpi.a.trap := r.a.ctrl.trap; - vfpi.a.annul := r.a.ctrl.annul or (ex_bpmiss and r.e.ctrl.inst(29)) - ; - vfpi.a.pv := r.a.ctrl.pv; + vfpi.a.annul := r.a.ctrl.annul or (ex_bpmiss and r.e.ctrl.inst(29)); vfpi.a.pv := r.a.ctrl.pv; vfpi.e.pc(1 downto 0) := (others => '0'); vfpi.e.pc(31 downto PCLOW) := r.e.ctrl.pc(31 downto PCLOW); vfpi.e.inst := r.e.ctrl.inst; vfpi.e.cnt := r.e.ctrl.cnt; vfpi.e.trap := r.e.ctrl.trap; vfpi.e.annul := r.e.ctrl.annul; vfpi.e.pv := r.e.ctrl.pv; @@ -3076,18 +2991,18 @@ begin vfpi.m.pv := r.m.ctrl.pv; vfpi.x.pc(1 downto 0) := (others => '0'); vfpi.x.pc(31 downto PCLOW) := r.x.ctrl.pc(31 downto PCLOW); vfpi.x.inst := r.x.ctrl.inst; vfpi.x.cnt := r.x.ctrl.cnt; vfpi.x.trap := xc_trap; - vfpi.x.annul := r.x.ctrl.annul; vfpi.x.pv := r.x.ctrl.pv; - if (lddel = 2) then vfpi.lddata := r.x.data(conv_integer(r.x.set)); else vfpi.lddata := r.x.data(0); end if; - if (r.x.rstate = dsu2) - then vfpi.dbg.enable := dbgi.denable; + vfpi.x.annul := r.x.ctrl.annul; vfpi.x.pv := r.x.ctrl.pv; vfpi.lddata := xc_df_result;--xc_result; + if r.x.rstate = dsu2 then vfpi.dbg.enable := dbgi.denable; else vfpi.dbg.enable := '0'; end if; vfpi.dbg.write := fpcdbgwr; vfpi.dbg.fsr := dbgi.daddr(22); -- IU reg access vfpi.dbg.addr := dbgi.daddr(6 downto 2); - vfpi.dbg.data := dbgi.ddata; + vfpi.dbg.data := dbgi.ddata; fpi <= vfpi; - cpi <= vfpi; -- dummy, just to kill some warnings ... + cpi <= vfpi; -- dummy, just to kill some warnings ... +-- pragma translate_off end if; +-- pragma translate_on end process; @@ -3105,7 +3020,6 @@ begin if (holdn = '1') then r <= rin; else - r.d.divrdy <= rin.d.divrdy; r.x.ipend <= rin.x.ipend; r.m.werr <= rin.m.werr; if (holdn or ico.mds) = '0' then @@ -3123,10 +3037,6 @@ begin r.d.inst <= (others => (others => '0')); r.x.mexc <= '0'; end if; - if is_fpga(fabtech) = 0 then - r.f.pc(11 downto pclow) <= (others => '0'); - r.f.pc(31 downto 12) <= conv_std_logic_vector(rstaddr, 20); - end if; end if; end if; end process; @@ -3153,8 +3063,7 @@ begin dsur.asi <= (others => '0'); dsur.crdy <= (others => '0'); end generate; - irreg : if DBGUNIT or PWRD2 - generate + irreg : if (DBGUNIT or PWRD2) generate dsureg : process(clk) begin if rising_edge(clk) then if holdn = '1' then ir <= irin; end if; @@ -3162,9 +3071,7 @@ begin end process; end generate; - nirreg : if not (DBGUNIT or PWRD2 - ) - generate + nirreg : if not (DBGUNIT or PWRD2) generate ir.pwd <= '0'; ir.addr <= (others => '0'); end generate; @@ -3173,9 +3080,9 @@ begin wpreg : process(clk) begin if rising_edge(clk) then if holdn = '1' then wpr(i) <= wprin(i); end if; - if rstn = '0' then - wpr(i).exec <= '0'; wpr(i).load <= '0'; wpr(i).store <= '0'; - end if; + if rstn = '0' then + wpr(i).exec <= '0'; wpr(i).load <= '0'; wpr(i).store <= '0'; + end if; end if; end process; end generate; @@ -3185,27 +3092,31 @@ begin end generate; -- pragma translate_off - trc : process(clk) - variable valid : boolean; - variable op : std_logic_vector(1 downto 0); - variable op3 : std_logic_vector(5 downto 0); - variable fpins, fpld : boolean; - begin - if (fpu /= 0) then - op := r.x.ctrl.inst(31 downto 30); op3 := r.x.ctrl.inst(24 downto 19); - fpins := (op = FMT3) and ((op3 = FPOP1) or (op3 = FPOP2)); - fpld := (op = LDST) and ((op3 = LDF) or (op3 = LDDF) or (op3 = LDFSR)); - else - fpins := false; fpld := false; - end if; - valid := (((not r.x.ctrl.annul) and r.x.ctrl.pv) = '1') and (not ((fpins or fpld) and (r.x.ctrl.trap = '0'))); - valid := valid and (holdn = '1'); + dis1 : if disas = 1 generate + trc : process(clk) + variable valid : boolean; + variable op : std_logic_vector(1 downto 0); + variable op3 : std_logic_vector(5 downto 0); + variable fpins, fpld : boolean; + begin if (disas = 1) and rising_edge(clk) and (rstn = '1') then - print_insn (index, r.x.ctrl.pc(31 downto 2) & "00", r.x.ctrl.inst, - rin.w.result, valid, r.x.ctrl.trap = '1', rin.w.wreg = '1', - rin.x.ipmask = '1'); + if (fpu /= 0) then + op := r.x.ctrl.inst(31 downto 30); op3 := r.x.ctrl.inst(24 downto 19); + fpins := (op = FMT3) and ((op3 = FPOP1) or (op3 = FPOP2)); + fpld := (op = LDST) and ((op3 = LDF) or (op3 = LDDF) or (op3 = LDFSR)); + else + fpins := false; fpld := false; + end if; + valid := (((not r.x.ctrl.annul) and r.x.ctrl.pv) = '1') and + (not ((fpins or fpld) and (r.x.ctrl.trap = '0'))); + valid := valid and (holdn = '1'); + if rising_edge(clk) and (rstn = '1') then + print_insn (index, r.x.ctrl.pc(31 downto 2) & "00", r.x.ctrl.inst, + rin.w.result, valid, r.x.ctrl.trap = '1', rin.w.wreg = '1', false); + end if; end if; - end process; + end process; + end generate; -- pragma translate_on dis0 : if disas < 2 generate dummy <= '1'; end generate; @@ -3218,5 +3129,4 @@ begin rin.w.result, cpu_index, rin.w.wreg, r.x.ctrl.annul, holdn, r.x.ctrl.pv, r.x.ctrl.trap, disasen); end generate; - end; diff --git a/lib/gaisler/leon3v1/leon3cg.vhd b/lib/gaisler/leon3v1/leon3cg.vhd new file mode 100644 index 00000000..7f49c2f2 --- /dev/null +++ b/lib/gaisler/leon3v1/leon3cg.vhd @@ -0,0 +1,210 @@ +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +----------------------------------------------------------------------------- +-- Entity: leon3cg +-- File: leon3cg.vhd +-- Author: Jiri Gaisler, Edvin Catovic, Gaisler Research +-- Description: Top-level LEON3 component with clock gating +------------------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; +library grlib; +use grlib.amba.all; +use grlib.stdlib.all; +library gaisler; +library techmap; +use techmap.gencomp.all; +use gaisler.leon3.all; +use gaisler.libiu.all; +use gaisler.libcache.all; +use gaisler.libproc3.all; +use gaisler.arith.all; + +entity leon3cg is + generic ( + hindex : integer := 0; + fabtech : integer range 0 to NTECH := DEFFABTECH; + memtech : integer range 0 to NTECH := DEFMEMTECH; + nwindows : integer range 2 to 32 := 8; + dsu : integer range 0 to 1 := 0; + fpu : integer range 0 to 31 := 0; + v8 : integer range 0 to 63 := 0; + cp : integer range 0 to 1 := 0; + mac : integer range 0 to 1 := 0; + pclow : integer range 0 to 2 := 2; + notag : integer range 0 to 1 := 0; + nwp : integer range 0 to 4 := 0; + icen : integer range 0 to 1 := 0; + irepl : integer range 0 to 3 := 2; + isets : integer range 1 to 4 := 1; + ilinesize : integer range 4 to 8 := 4; + isetsize : integer range 1 to 256 := 1; + isetlock : integer range 0 to 1 := 0; + dcen : integer range 0 to 1 := 0; + drepl : integer range 0 to 3 := 2; + dsets : integer range 1 to 4 := 1; + dlinesize : integer range 4 to 8 := 4; + dsetsize : integer range 1 to 256 := 1; + dsetlock : integer range 0 to 1 := 0; + dsnoop : integer range 0 to 6 := 0; + ilram : integer range 0 to 1 := 0; + ilramsize : integer range 1 to 512 := 1; + ilramstart : integer range 0 to 255 := 16#8e#; + dlram : integer range 0 to 1 := 0; + dlramsize : integer range 1 to 512 := 1; + dlramstart : integer range 0 to 255 := 16#8f#; + mmuen : integer range 0 to 1 := 0; + itlbnum : integer range 2 to 64 := 8; + dtlbnum : integer range 2 to 64 := 8; + tlb_type : integer range 0 to 3 := 1; + tlb_rep : integer range 0 to 1 := 0; + lddel : integer range 1 to 2 := 2; + disas : integer range 0 to 2 := 0; + tbuf : integer range 0 to 64 := 0; + pwd : integer range 0 to 2 := 2; -- power-down + svt : integer range 0 to 1 := 1; -- single vector trapping + rstaddr : integer := 0; + smp : integer range 0 to 15 := 0; -- support SMP systems + cached : integer := 0; -- cacheability table + scantest : integer := 0; + mmupgsz : integer range 0 to 5 := 0; + bp : integer := 1 + ); + port ( + clk : in std_ulogic; -- AHB clock (free-running) + rstn : in std_ulogic; + ahbi : in ahb_mst_in_type; + ahbo : out ahb_mst_out_type; + ahbsi : in ahb_slv_in_type; + ahbso : in ahb_slv_out_vector; + irqi : in l3_irq_in_type; + irqo : out l3_irq_out_type; + dbgi : in l3_debug_in_type; + dbgo : out l3_debug_out_type; + gclk : in std_ulogic -- gated clock + ); +end; + +architecture rtl of leon3cg is + +constant IRFBITS : integer range 6 to 10 := log2(NWINDOWS+1) + 4; +constant IREGNUM : integer := NWINDOWS * 16 + 8; + +signal holdn : std_logic; +signal rfi : iregfile_in_type; +signal rfo : iregfile_out_type; +signal crami : cram_in_type; +signal cramo : cram_out_type; +signal tbi : tracebuf_in_type; +signal tbo : tracebuf_out_type; +signal rst : std_ulogic; +signal fpi : fpc_in_type; +signal fpo : fpc_out_type; +signal cpi : fpc_in_type; +signal cpo : fpc_out_type; + +signal rd1, rd2, wd : std_logic_vector(35 downto 0); +signal gnd, vcc : std_logic; + +attribute sync_set_reset : string; +attribute sync_set_reset of rst : signal is "true"; + +constant IRFWT : integer := 1;--regfile_3p_write_through(memtech); +constant FPURFHARD : integer := 1; --1-is_fpga(memtech); +constant fpuarch : integer := fpu mod 16; +constant fpunet : integer := fpu / 16; + +begin + + gnd <= '0'; vcc <= '1'; + +-- leon3 processor core (iu, caches & mul/div) + + p0 : proc3 + generic map (hindex, fabtech, memtech, nwindows, dsu, fpuarch, v8, cp, mac, + pclow, notag, nwp, icen, irepl, isets, ilinesize, isetsize, isetlock, + dcen, drepl, dsets, dlinesize, dsetsize, dsetlock, dsnoop, ilram, + ilramsize, ilramstart, dlram, dlramsize, dlramstart, mmuen, itlbnum, dtlbnum, + tlb_type, tlb_rep, lddel, disas, tbuf, pwd, svt, rstaddr, smp, cached, 0, + scantest, mmupgsz, bp) + port map (gclk, rst, holdn, ahbi, ahbo, ahbsi, ahbso, rfi, rfo, crami, cramo, + tbi, tbo, fpi, fpo, cpi, cpo, irqi, irqo, dbgi, dbgo, gnd, clk, vcc); + +-- IU register file + + rf0 : regfile_3p generic map (memtech, IRFBITS, 32, IRFWT, IREGNUM) + port map (gclk, rfi.waddr(IRFBITS-1 downto 0), rfi.wdata, rfi.wren, + gclk, rfi.raddr1(IRFBITS-1 downto 0), rfi.ren1, rfo.data1, + rfi.raddr2(IRFBITS-1 downto 0), rfi.ren2, rfo.data2); + +-- cache memory + + cmem0 : cachemem + generic map (memtech, icen, irepl, isets, ilinesize, isetsize, isetlock, dcen, + drepl, dsets, dlinesize, dsetsize, dsetlock, dsnoop, ilram, + ilramsize, dlram, dlramsize, mmuen) + port map (gclk, crami, cramo, clk); + +-- instruction trace buffer memory + + tbmem_gen : if (tbuf /= 0) generate + tbmem0 : tbufmem + generic map (tech => memtech, tbuf => tbuf) + port map (gclk, tbi, tbo); + end generate; + +-- FPU + + fpu0 : if (fpu = 0) generate fpo.ldlock <= '0'; fpo.ccv <= '1'; fpo.holdn <= '1'; end generate; + + grfpw0gen : if (fpuarch > 0) and (fpuarch < 8) generate + fpu0: grfpwx + generic map (FPURFHARD*fabtech, FPURFHARD*memtech, (fpuarch-1), pclow, dsu, disas, fpunet, hindex) + port map (rst, gclk, holdn, fpi, fpo); + end generate; + + mfpw0gen : if (fpuarch = 15) generate + fpu0 : mfpwx + generic map (FPURFHARD*memtech, pclow, dsu, disas) + port map (rst, gclk, holdn, fpi, fpo); + end generate; + + grlfpc0gen : if (fpuarch >= 8) and (fpuarch < 15) generate + fpu0 : grlfpwx + generic map (FPURFHARD*memtech, pclow, dsu, disas, (fpuarch-8), fpunet, hindex) + port map (rst, gclk, holdn, fpi, fpo); + end generate; + +-- 1-clock reset delay + + rstreg : process(gclk) + begin if rising_edge(gclk) then rst <= rstn; end if; end process; + +-- pragma translate_off + bootmsg : report_version + generic map ( + "leon3_" & tost(hindex) & ": LEON3CG SPARC V8 processor rev " & tost(LEON3_VERSION), + "leon3_" & tost(hindex) & ": icache " & tost(isets*icen) & "*" & tost(isetsize*icen) & + " kbyte, dcache " & tost(dsets*dcen) & "*" & tost(dsetsize*dcen) & " kbyte" + ); +-- pragma translate_on + + +end; diff --git a/lib/gaisler/leon3v2/leon3s.vhd b/lib/gaisler/leon3v1/leon3s.vhd similarity index 66% rename from lib/gaisler/leon3v2/leon3s.vhd rename to lib/gaisler/leon3v1/leon3s.vhd index 4c19e22d..6f9a2a94 100644 --- a/lib/gaisler/leon3v2/leon3s.vhd +++ b/lib/gaisler/leon3v1/leon3s.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -22,122 +22,6 @@ -- Author: Jiri Gaisler, Edvin Catovic, Gaisler Research -- Description: Top-level LEON3 component ------------------------------------------------------------------------------ --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_LEON3 --- VERSION: 0 --- AHBMASTER: 0 -------------------------------------------------------------------------------- --- GENERICS -- -------------------------------------------------------------------------------- --- hindex: AHB master index --- --- fabtech: Target technology --- --- memtech: Vendor library for regfile and cache RAMs --- --- nwindows: Number of SPARC register windows. Choose 8 windows to be --- compatible with Bare-C and RTEMS cross-compilers. --- --- dsu: Enable Debug Support Unit (DSU) interface --- --- fpu: Floating-point Unit 0 : no FPU 1 - 7: GRFPU 1 - inferred --- multiplier, 2 - DW multiplier, 3 - Module Generator multiplier 8 --- - 14: GRFPU-Lite 8 - simple FPC, 9 - data forwarding FPC, 10 - --- non-blocking FPC 15: Meiko 16 - 31: as above (modulo 16) but use --- netlist --- --- v8: Generate SPARC V8 MUL and DIV instructions 0 : No multiplier or --- divider 1 : 16x16 multiplier 2: 16x16 pipelined multiplier 16#32# : --- 32x32 pipelined multiplier --- --- cp: Generate co-processor interface --- --- mac: Generate SPARC V8e SMAC/UMAC instruction --- --- pclow: Least significant bit of PC (Program Counter) that is --- actually generated. PC[1:0] are always zero and are normally not --- generated. Generating PC[1:0] makes VHDL-debugging easier. --- --- notag: Currently not used --- --- nwp: Currently not used --- --- icen: Enable instruction cache --- --- irepl: Instruction cache replacement policy. 0 - least recently --- used (LRU), 1 - least recently replaced (LRR), 2 - random --- --- isets: Number of instruction cache sets --- --- ilinesize: Instruction cache line size in number of words --- --- isetsize: Number of instruction cache sets --- --- isetlock: Enable instruction cache line locking --- --- dcen: Data cache enable --- --- drepl: Data cache replacement policy. 0 - least recently used --- (LRU), 1 - least recently replaced (LRR), 2 - random --- --- dsets: Number of data cache sets --- --- dlinesize: Data cache line size in number of words --- --- dsetsize: Size of each data cache set in kByte --- --- dsetlock: Enable data cache line locking --- --- dsnoop: Enable data cache snooping Bit 0-1: 0: disable, 1: slow, 2: --- fast (see text) Bit 2: 0: simple snooping, 1: save extra physical --- tags (MMU snooping) --- --- ilram: Enable local instruction RAM --- --- ilramsize: Local instruction RAM size in kB --- --- ilramstart: 8 MSB bits used to decode local instruction RAM area --- --- dlram: Enable local data RAM (scratch-pad RAM) --- --- dlramsize: Local data RAM size in kB --- --- dlramstart: 8 MSB bits used to decode local data RAM area --- --- mmuen: Enable memory management unit (MMU) --- --- itlbnum: Number of instruction TLB entries --- --- dtlbnum: Number of data TLB entries --- --- tlb_type: 0 : separate TLB with slow write 1: shared TLB with slow --- write 2: separate TLB with fast write --- --- tlb_rep: LRU (0) or Random (1) TLB replacement --- --- lddel: Load delay. One cycle gives best performance, but might --- create a critical path on targets with slow (data) cache memories. --- A 2-cycle delay can improve timing but will reduce performance with --- about 5%. --- --- disas: Print instruction disassembly in VHDL simulator console. --- --- tbuf: Size of instruction trace buffer in kB (0 - instruction trace --- disabled) --- --- pwd: Power-down. 0 - disabled, 1 - area efficient, 2 - timing efficient. --- --- svt: Enable single-vector trapping --- --- rstaddr: Default reset start address --- --- smp: Enable multi-processor support --- --- cached: Fixed cacheability mask --- --- scantest: Enable scan test support -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; @@ -150,8 +34,7 @@ use techmap.gencomp.all; use gaisler.leon3.all; use gaisler.libiu.all; use gaisler.libcache.all; -use gaisler.libleon3.all; -use gaisler.libfpu.all; +use gaisler.libproc3.all; use gaisler.arith.all; entity leon3s is @@ -259,8 +142,8 @@ begin pclow, notag, nwp, icen, irepl, isets, ilinesize, isetsize, isetlock, dcen, drepl, dsets, dlinesize, dsetsize, dsetlock, dsnoop, ilram, ilramsize, ilramstart, dlram, dlramsize, dlramstart, mmuen, itlbnum, dtlbnum, - tlb_type, tlb_rep, lddel, disas, tbuf, pwd, svt, rstaddr, smp, 0, 0, 0, - cached, 0, scantest, mmupgsz, bp) + tlb_type, tlb_rep, lddel, disas, tbuf, pwd, svt, rstaddr, smp, cached, 0, + scantest, mmupgsz, bp) port map (clk, rst, holdn, ahbi, ahbo, ahbsi, ahbso, rfi, rfo, crami, cramo, tbi, tbo, fpi, fpo, cpi, cpo, irqi, irqo, dbgi, dbgo, gnd, clk, vcc); @@ -312,7 +195,7 @@ begin -- Default Co-Proc drivers cpodb.data <= zero32; - cpo <= fpc_out_none; + cpo <= (zero32, '0', "00", '0', '0', '0', cpodb); -- 1-clock reset delay diff --git a/lib/gaisler/leon3v1/leon3sh.vhd b/lib/gaisler/leon3v1/leon3sh.vhd new file mode 100644 index 00000000..499d2285 --- /dev/null +++ b/lib/gaisler/leon3v1/leon3sh.vhd @@ -0,0 +1,196 @@ +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +----------------------------------------------------------------------------- +-- Entity: leon3sh +-- File: leon3sh.vhd +-- Author: Jiri Gaisler, Edvin Catovic, Gaisler Research +-- Description: Top-level LEON3 component +------------------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; +library grlib; +use grlib.amba.all; +use grlib.stdlib.all; +library gaisler; +library techmap; +use techmap.gencomp.all; +use gaisler.leon3.all; +use gaisler.libiu.all; +use gaisler.libcache.all; +use gaisler.libproc3.all; +use gaisler.arith.all; + +entity leon3sh is + generic ( + hindex : integer := 0; + fabtech : integer range 0 to NTECH := DEFFABTECH; + memtech : integer range 0 to NTECH := DEFMEMTECH; + nwindows : integer range 2 to 32 := 8; + dsu : integer range 0 to 1 := 0; + fpu : integer range 0 to 63 := 0; + v8 : integer range 0 to 63 := 0; + cp : integer range 0 to 1 := 0; + mac : integer range 0 to 1 := 0; + pclow : integer range 0 to 2 := 2; + notag : integer range 0 to 1 := 0; + nwp : integer range 0 to 4 := 0; + icen : integer range 0 to 1 := 0; + irepl : integer range 0 to 3 := 2; + isets : integer range 1 to 4 := 1; + ilinesize : integer range 4 to 8 := 4; + isetsize : integer range 1 to 256 := 1; + isetlock : integer range 0 to 1 := 0; + dcen : integer range 0 to 1 := 0; + drepl : integer range 0 to 3 := 2; + dsets : integer range 1 to 4 := 1; + dlinesize : integer range 4 to 8 := 4; + dsetsize : integer range 1 to 256 := 1; + dsetlock : integer range 0 to 1 := 0; + dsnoop : integer range 0 to 6 := 0; + ilram : integer range 0 to 1 := 0; + ilramsize : integer range 1 to 512 := 1; + ilramstart : integer range 0 to 255 := 16#8e#; + dlram : integer range 0 to 1 := 0; + dlramsize : integer range 1 to 512 := 1; + dlramstart : integer range 0 to 255 := 16#8f#; + mmuen : integer range 0 to 1 := 0; + itlbnum : integer range 2 to 64 := 8; + dtlbnum : integer range 2 to 64 := 8; + tlb_type : integer range 0 to 3 := 1; + tlb_rep : integer range 0 to 1 := 0; + lddel : integer range 1 to 2 := 2; + disas : integer range 0 to 2 := 0; + tbuf : integer range 0 to 64 := 0; + pwd : integer range 0 to 2 := 2; -- power-down + svt : integer range 0 to 1 := 1; -- single vector trapping + rstaddr : integer := 0; + smp : integer range 0 to 15 := 0; -- support SMP systems + cached : integer := 0; -- cacheability table + scantest : integer := 0; + mmupgsz : integer range 0 to 5 := 0; + bp : integer := 1 + ); + port ( + clk : in std_ulogic; + rstn : in std_ulogic; + ahbi : in ahb_mst_in_type; + ahbo : out ahb_mst_out_type; + ahbsi : in ahb_slv_in_type; + ahbso : in ahb_slv_out_vector; + irqi : in l3_irq_in_type; + irqo : out l3_irq_out_type; + dbgi : in l3_debug_in_type; + dbgo : out l3_debug_out_type; + fpui : out grfpu_in_type; + fpuo : in grfpu_out_type + ); +end; + +architecture rtl of leon3sh is + +constant IRFBITS : integer range 6 to 10 := log2(NWINDOWS+1) + 4; +constant IREGNUM : integer := NWINDOWS * 16 + 8; + +signal holdn : std_logic; +signal rfi : iregfile_in_type; +signal rfo : iregfile_out_type; +signal crami : cram_in_type; +signal cramo : cram_out_type; +signal tbi : tracebuf_in_type; +signal tbo : tracebuf_out_type; +signal rst : std_ulogic; +signal fpi : fpc_in_type; +signal fpo : fpc_out_type; +signal cpi : fpc_in_type; +signal cpo : fpc_out_type; + +signal rd1, rd2, wd : std_logic_vector(35 downto 0); +signal gnd, vcc : std_logic; + +constant IRFWT : integer := 1;--regfile_3p_write_through(memtech); +constant FPURFHARD : integer := 1; --1-is_fpga(memtech); +constant fpuarch : integer := fpu mod 16; +constant fpunet : integer := (fpu mod 32) / 16; + +begin + + gnd <= '0'; vcc <= '1'; + +-- leon3 processor core (iu, caches & mul/div) + + p0 : proc3 + generic map (hindex, fabtech, memtech, nwindows, dsu, fpuarch, v8, cp, mac, + pclow, notag, nwp, icen, irepl, isets, ilinesize, isetsize, isetlock, + dcen, drepl, dsets, dlinesize, dsetsize, dsetlock, dsnoop, ilram, + ilramsize, ilramstart, dlram, dlramsize, dlramstart, mmuen, itlbnum, dtlbnum, + tlb_type, tlb_rep, lddel, disas, tbuf, pwd, svt, rstaddr, smp, cached, 0, + scantest, mmupgsz, bp) + port map (clk, rst, holdn, ahbi, ahbo, ahbsi, ahbso, rfi, rfo, crami, cramo, + tbi, tbo, fpi, fpo, cpi, cpo, irqi, irqo, dbgi, dbgo, gnd, clk, vcc); + +-- IU register file + + rf0 : regfile_3p generic map (memtech, IRFBITS, 32, IRFWT, IREGNUM) + port map (clk, rfi.waddr(IRFBITS-1 downto 0), rfi.wdata, rfi.wren, + clk, rfi.raddr1(IRFBITS-1 downto 0), rfi.ren1, rfo.data1, + rfi.raddr2(IRFBITS-1 downto 0), rfi.ren2, rfo.data2, rfi.diag); + +-- cache memory + + cmem0 : cachemem + generic map (memtech, icen, irepl, isets, ilinesize, isetsize, isetlock, dcen, + drepl, dsets, dlinesize, dsetsize, dsetlock, dsnoop, ilram, + ilramsize, dlram, dlramsize, mmuen) + port map (clk, crami, cramo, clk); + +-- instruction trace buffer memory + + tbmem_gen : if (tbuf /= 0) generate + tbmem0 : tbufmem + generic map (tech => memtech, tbuf => tbuf) + port map (clk, tbi, tbo); + end generate; + +-- FPU + + fpu0 : if not ((fpuarch > 0) and (fpuarch < 8)) generate fpo.ldlock <= '0'; fpo.ccv <= '1'; fpo.holdn <= '1'; end generate; + + grfpw0gen : if (fpuarch > 0) and (fpuarch < 8) generate + fpu0: grfpwxsh + generic map (FPURFHARD*memtech, pclow, dsu, disas, hindex) + port map (rst, clk, holdn, fpi, fpo, fpui, fpuo); + end generate; + +-- 1-clock reset delay + + rstreg : process(clk) + begin if rising_edge(clk) then rst <= rstn; end if; end process; + +-- pragma translate_off + bootmsg : report_version + generic map ( + "leon3_" & tost(hindex) & ": LEON3 SPARC V8 processor rev " & tost(LEON3_VERSION), + "leon3_" & tost(hindex) & ": icache " & tost(isets*icen) & "*" & tost(isetsize*icen) & + " kbyte, dcache " & tost(dsets*dcen) & "*" & tost(dsetsize*dcen) & " kbyte" + ); +-- pragma translate_on + + +end; diff --git a/lib/gaisler/leon3v2/libleon3.vhd b/lib/gaisler/leon3v1/libproc3.vhd similarity index 66% rename from lib/gaisler/leon3v2/libleon3.vhd rename to lib/gaisler/leon3v1/libproc3.vhd index bbe57b40..89320507 100644 --- a/lib/gaisler/leon3v2/libleon3.vhd +++ b/lib/gaisler/leon3v1/libproc3.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -17,10 +17,10 @@ -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ----------------------------------------------------------------------------- --- Package: libleon3 --- File: libleon3.vhd +-- Package: libproc3 +-- File: libproc3.vhd -- Author: Jiri Gaisler Gaisler Research --- Description: LEON3 internal components +-- Description: LEON3 proc3 component declaration ------------------------------------------------------------------------------ library ieee; @@ -31,12 +31,10 @@ library techmap; use techmap.gencomp.all; library gaisler; use gaisler.leon3.all; -use gaisler.libiu.all; use gaisler.libcache.all; -use gaisler.libfpu.all; -use gaisler.mmuiface.all; +use gaisler.libiu.all; -package libleon3 is +package libproc3 is component proc3 generic ( @@ -83,23 +81,20 @@ package libleon3 is svt : integer range 0 to 1 := 0; -- single-vector trapping rstaddr : integer := 0; smp : integer range 0 to 15 := 0; -- support SMP systems - iuft : integer range 0 to 4 := 0; - fpft : integer range 0 to 4 := 0; - cft : integer range 0 to 1 := 0; cached : integer := 0; - clk2x : integer := 0; - scantest : integer := 0; + clk2x : integer := 0; + scantest : integer := 0; mmupgsz : integer range 0 to 5 := 0; - bp : integer := 1 + bp : integer range 0 to 5 := 1 ); port ( clk : in std_ulogic; rstn : in std_ulogic; - holdn : out std_ulogic; + holdn : out std_ulogic; ahbi : in ahb_mst_in_type; ahbo : out ahb_mst_out_type; ahbsi : in ahb_slv_in_type; - ahbso : in ahb_slv_out_vector; + ahbso : in ahb_slv_out_vector; rfi : out iregfile_in_type; rfo : in iregfile_out_type; crami : out cram_in_type; @@ -114,36 +109,34 @@ package libleon3 is irqo : out l3_irq_out_type; dbgi : in l3_debug_in_type; dbgo : out l3_debug_out_type; - hclk, sclk : in std_ulogic; - hclken : in std_ulogic + hclk, sclk : in std_ulogic; + hclken : in std_ulogic ); - end component; + end component; + + component grfpwx + generic (fabtech : integer range 0 to NTECH := 0; + memtech : integer range 0 to NTECH := 0; + mul : integer range 0 to 3 := 0; + pclow : integer range 0 to 2 := 2; + dsu : integer := 0; + disas : integer range 0 to 2 := 0; + netlist : integer := 0; + index : integer := 0); + port ( + rst : in std_ulogic; -- Reset + clk : in std_ulogic; + holdn : in std_ulogic; -- pipeline hold + cpi : in fpc_in_type; + cpo : out fpc_out_type + ); + end component; - component grfpwx - generic (fabtech : integer := 0; - memtech : integer := 0; - mul : integer range 0 to 3 := 0; - pclow : integer range 0 to 2 := 2; - dsu : integer range 0 to 1 := 0; - disas : integer range 0 to 2 := 0; - rfft : integer range 0 to 4 := 0; - errinj : integer := 0; - index : integer := 0); - port ( - rst : in std_ulogic; -- Reset - clk : in std_ulogic; - holdn : in std_ulogic; -- pipeline hold - cpi : in fpc_in_type; - cpo : out fpc_out_type - ); - end component; - component mfpwx generic (tech : integer := 0; pclow : integer range 0 to 2 := 2; - dsu : integer range 0 to 1 := 0; - disas : integer range 0 to 2 := 0; - rfft : integer range 0 to 2 := 0); -- 0 - no protection, 1 - parity + dsu : integer range 0 to 1 := 0; + disas : integer range 0 to 2 := 0); port ( rst : in std_ulogic; -- Reset clk : in std_ulogic; @@ -151,19 +144,16 @@ package libleon3 is cpi : in fpc_in_type; cpo : out fpc_out_type ); - end component; - + end component; component grlfpwx generic (tech : integer := 0; pclow : integer range 0 to 2 := 2; - dsu : integer range 0 to 1 := 0; + dsu : integer range 0 to 1 := 0; disas : integer range 0 to 2 := 0; - rfft : integer range 0 to 4 := 0; pipe : integer := 0; - einj : integer := 0; - index : integer := 0 - ); + netlist : integer := 0; + index : integer := 0); port ( rst : in std_ulogic; -- Reset clk : in std_ulogic; @@ -174,23 +164,4 @@ package libleon3 is end component; - component regfile_3p_l3 - generic (tech : integer := 0; abits : integer := 6; dbits : integer := 8; - wrfst : integer := 0; numregs : integer := 64; ft : integer := 0; - errinj : integer := 0; testen : integer := 0); - port ( - wclk : in std_ulogic; - waddr : in std_logic_vector((abits -1) downto 0); - wdata : in std_logic_vector((dbits -1) downto 0); - we : in std_ulogic; - rclk : in std_ulogic; - raddr1 : in std_logic_vector((abits -1) downto 0); - re1 : in std_ulogic; - rdata1 : out std_logic_vector((dbits -1) downto 0); - raddr2 : in std_logic_vector((abits -1) downto 0); - re2 : in std_ulogic; - rdata2 : out std_logic_vector((dbits -1) downto 0); - testin : in std_logic_vector(3 downto 0) := "0000"); - end component; - end; diff --git a/lib/gaisler/leon3v2/grlfpwx.vhd b/lib/gaisler/leon3v1/mfpwx.vhd similarity index 73% rename from lib/gaisler/leon3v2/grlfpwx.vhd rename to lib/gaisler/leon3v1/mfpwx.vhd index 36640005..0f2bdb35 100644 --- a/lib/gaisler/leon3v2/grlfpwx.vhd +++ b/lib/gaisler/leon3v1/mfpwx.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -17,32 +17,24 @@ -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ----------------------------------------------------------------------------- --- Entity: grlfpwx --- File: grlfpwx.vhd +-- Entity: grfpwx +-- File: grfpwx.vhd -- Author: Edvin Catovic - Gaisler Research --- Description: GRFPU LITE / GRFPC wrapper and FP register file +-- Description: Meiko/MFPC wrapper and FP register file ------------------------------------------------------------------------------ library IEEE; use IEEE.std_logic_1164.all; -library grlib; -use grlib.stdlib.all; library gaisler; use gaisler.leon3.all; -use gaisler.libleon3.all; -use gaisler.libfpu.all; library techmap; use techmap.gencomp.all; -entity grlfpwx is +entity mfpwx is generic (tech : integer := 0; pclow : integer range 0 to 2 := 2; dsu : integer range 0 to 1 := 0; - disas : integer range 0 to 2 := 0; - rfft : integer range 0 to 4 := 0; - pipe : integer := 0; - einj : integer := 0; - index : integer := 0); + disas : integer range 0 to 2 := 0); port ( rst : in std_ulogic; -- Reset clk : in std_ulogic; @@ -52,16 +44,12 @@ entity grlfpwx is ); end; -architecture rtl of grlfpwx is +architecture rtl of mfpwx is - component grlfpw - generic (tech : integer := 0; - pclow : integer range 0 to 2 := 2; + component mfpw + generic (pclow : integer range 0 to 2 := 2; dsu : integer range 0 to 1 := 0; - disas : integer range 0 to 2 := 0; - rfft : integer range 0 to 4 := 0; - pipe : integer range 0 to 2 := 0; - index : integer := 0 + disas : integer range 0 to 2 := 0 ); port ( rst : in std_ulogic; -- Reset @@ -107,46 +95,43 @@ architecture rtl of grlfpwx is cpi_dbg_addr : in std_logic_vector(4 downto 0); cpi_dbg_data : in std_logic_vector(31 downto 0); - cpo_data : out std_logic_vector(31 downto 0); -- store data - cpo_exc : out std_logic; -- FP exception - cpo_cc : out std_logic_vector(1 downto 0); -- FP condition codes - cpo_ccv : out std_ulogic; -- FP condition codes valid - cpo_ldlock : out std_logic; -- FP pipeline hold - cpo_holdn : out std_ulogic; - cpo_dbg_data : out std_logic_vector(31 downto 0); + cpo_data : out std_logic_vector(31 downto 0); -- store data + cpo_exc : out std_logic; -- FP exception + cpo_cc : out std_logic_vector(1 downto 0); -- FP condition codes + cpo_ccv : out std_ulogic; -- FP condition codes valid + cpo_ldlock : out std_logic; -- FP pipeline hold + cpo_holdn : out std_ulogic; + cpo_dbg_data : out std_logic_vector(31 downto 0); rfi1_rd1addr : out std_logic_vector(3 downto 0); rfi1_rd2addr : out std_logic_vector(3 downto 0); rfi1_wraddr : out std_logic_vector(3 downto 0); rfi1_wrdata : out std_logic_vector(31 downto 0); rfi1_ren1 : out std_ulogic; - rfi1_ren2 : out std_ulogic; - rfi1_wren : out std_ulogic; + rfi1_ren2 : out std_ulogic; + rfi1_wren : out std_ulogic; rfi2_rd1addr : out std_logic_vector(3 downto 0); rfi2_rd2addr : out std_logic_vector(3 downto 0); rfi2_wraddr : out std_logic_vector(3 downto 0); rfi2_wrdata : out std_logic_vector(31 downto 0); rfi2_ren1 : out std_ulogic; - rfi2_ren2 : out std_ulogic; - rfi2_wren : out std_ulogic; + rfi2_ren2 : out std_ulogic; + rfi2_wren : out std_ulogic; rfo1_data1 : in std_logic_vector(31 downto 0); rfo1_data2 : in std_logic_vector(31 downto 0); - rfo2_data1 : in std_logic_vector(31 downto 0); - rfo2_data2 : in std_logic_vector(31 downto 0) - - + rfo2_data2 : in std_logic_vector(31 downto 0) ); - end component; + end component; signal rfi1, rfi2 : fp_rf_in_type; signal rfo1, rfo2 : fp_rf_out_type; begin - grlfpw0 : grlfpw generic map (tech, pclow, dsu, disas, rfft, pipe, index) + mfpw0 : mfpw generic map (pclow, dsu, disas) port map ( rst , clk , @@ -213,24 +198,22 @@ begin rfi2.wrdata , rfi2.ren1 , rfi2.ren2 , - rfi2.wren , + rfi2.wren , rfo1.data1 , rfo1.data2 , - rfo2.data1 , rfo2.data2 ); + - rf1 : regfile_3p_l3 generic map (tech, 4, 32, 1, 16, rfft, einj) - port map (clk, rfi1.wraddr, rfi1.wrdata, rfi1.wren, clk, rfi1.rd1addr, - rfi1.ren1, rfo1.data1, rfi1.rd2addr, rfi1.ren2, rfo1.data2 - ); - - rf2 : regfile_3p_l3 generic map (tech, 4, 32, 1, 16, rfft, einj) - port map (clk, rfi2.wraddr, rfi2.wrdata, rfi2.wren, clk, rfi2.rd1addr, - rfi2.ren1, rfo2.data1, rfi2.rd2addr, rfi2.ren2, rfo2.data2 - ); + rf1 : regfile_3p generic map (tech, 4, 32, 1, 16) + port map (clk, rfi1.wraddr, rfi1.wrdata, rfi1.wren, clk, rfi1.rd1addr, rfi1.ren1, rfo1.data1, + rfi1.rd2addr, rfi1.ren2, rfo1.data2); + + rf2 : regfile_3p generic map (tech, 4, 32, 1, 16) + port map (clk, rfi2.wraddr, rfi2.wrdata, rfi2.wren, clk, rfi2.rd1addr, rfi2.ren1, rfo2.data1, + rfi2.rd2addr, rfi2.ren2, rfo2.data2); end; diff --git a/lib/gaisler/leon3v2/mmu_acache.vhd b/lib/gaisler/leon3v1/mmu_acache.vhd similarity index 92% rename from lib/gaisler/leon3v2/mmu_acache.vhd rename to lib/gaisler/leon3v1/mmu_acache.vhd index 3814d611..f86bd117 100644 --- a/lib/gaisler/leon3v2/mmu_acache.vhd +++ b/lib/gaisler/leon3v1/mmu_acache.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -19,8 +19,8 @@ ----------------------------------------------------------------------------- -- Entity: mmu_acache -- File: mmu_acache.vhd --- Author: Jiri Gaisler - Gaisler Research --- Description: Interface module between (MMU,I/D cache controllers) and Amba AHB +-- Author: Jiri Gaisler - Gaisler Research, Konrad Eisele +-- Description: Interface module between I/D cache controllers and Amba AHB ------------------------------------------------------------------------------ library ieee; @@ -36,14 +36,14 @@ use gaisler.leon3.all; use gaisler.mmuconfig.all; use gaisler.mmuiface.all; + entity mmu_acache is generic ( hindex : integer range 0 to NAHBMST-1 := 0; ilinesize : integer range 4 to 8 := 4; cached : integer := 0; clk2x : integer := 0; - scantest : integer := 0 - ); + scantest : integer := 0); port ( rst : in std_logic; clk : in std_logic; @@ -62,8 +62,6 @@ end; architecture rtl of mmu_acache is --- cache control register type - type reg_type is record bg : std_logic; -- bus grant bo : std_logic_vector(1 downto 0); -- bus owner @@ -83,10 +81,8 @@ type reg2_type is record hclken2 : std_ulogic; end record; -constant L3DI :integer := GAISLER_LEON3 - ; constant hconfig : ahb_config_type := ( - 0 => ahb_device_reg ( VENDOR_GAISLER, L3DI, 0, LEON3_VERSION, 0), + 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_LEON3, 0, LEON3_VERSION, 0), others => zero32); constant ctbl : std_logic_vector(15 downto 0) := conv_std_logic_vector(cached, 16); @@ -120,10 +116,9 @@ begin variable imexc, dmexc, mmmexc : std_logic; variable dreq : std_logic; variable nbo : std_logic_vector(1 downto 0); - variable su, nb, bo_icache : std_ulogic; + variable su, nb, bo_icache : std_logic; variable scanen : std_ulogic; variable vreqmsk: std_ulogic; - variable burst : std_ulogic; begin @@ -158,22 +153,22 @@ begin not (( ((r.ba and dreq) = '1') and (r.bo = "01")) or ( ((r.ba and mcmmi.req) = '1') and (r.bo = "10"))) then nbo := "00"; - hbusreq := '1'; burst := mcii.burst; + hbusreq := '1'; htrans := HTRANS_NONSEQ; elsif (dreq = '1') and ((clk2x = 0) or (r2.reqmsk(1) = '1')) and not (( ((r.ba and mcii.req) = '1') and (r.bo = "00")) or ( ((r.ba and mcmmi.req) = '1') and (r.bo = "10"))) then nbo := "01"; - hbusreq := '1'; burst := mcdi.burst; + hbusreq := '1'; if (not mcdi.lock or r.hlocken) = '1' then htrans := HTRANS_NONSEQ; end if; elsif (mcmmi.req = '1') and ((clk2x = 0) or (r2.reqmsk(0) = '1')) and (r.hlocken = '0') and not (( ((r.ba and mcii.req) = '1') and (r.bo = "00")) or ( ((r.ba and dreq) = '1') and (r.bo = "01"))) then nbo := "10"; - hbusreq := '1'; burst := '0'; + hbusreq := '1'; htrans := HTRANS_NONSEQ; else - nbo := "11"; burst := '0'; + nbo := "11"; end if; -- dont change bus master if we have started driving htrans @@ -265,8 +260,8 @@ begin hlock := mcdi.lock or ((r.retry or (r.retry2 and not r.ba)) and r.hlocken); end if; - if nbo = "01" and ((hsize = "011") or ((mcdi.read and mcdi.cache) = '1')) then - hsize := "010"; + if (nbo = "01") and ((hsize = "011") or ((dec_hcache and mcdi.read and mcdi.cache) = '1')) then + hsize := "010"; haddr(1 downto 0) := "00"; end if; if (r.bo = "01") and (hlock = '1') then nbo := "01"; end if; @@ -289,7 +284,6 @@ begin v.nbo := nbo; v.nba := orv(htrans) and not v.ba; - -- parity generation if (clk2x /= 0) then v2.hclken2 := hclken; if hclken = '1' then @@ -311,9 +305,7 @@ begin ahbo.haddr <= haddr ; ahbo.htrans <= htrans; --- ahbo.hbusreq <= hbusreq and not r.lb and not ((((not bo_icache) and r.ba) or nb) and r.bg); --- ahbo.hbusreq <= hbusreq and not r.lb and not((not burst) and r.bg); - ahbo.hbusreq <= hbusreq and (not r.lb or orv(nbo)) and (burst or not r.bg); + ahbo.hbusreq <= hbusreq and not r.lb and not ((((not bo_icache) and r.ba) or nb) and r.bg); ahbo.hwdata <= ahbdrivedata(hwdata); ahbo.hlock <= hlock; ahbo.hwrite <= hwrite; @@ -328,6 +320,7 @@ begin mcio.mexc <= imexc; mcio.retry <= iretry; mcio.cache <= ihcache; + mcio.par <= (others => '0'); mcdo.grant <= dgrant; mcdo.ready <= dready; mcdo.mexc <= dmexc; @@ -336,6 +329,7 @@ begin mcdo.cache <= dhcache; mcdo.ba <= r.ba; mcdo.bg <= r.bg and not v.bo(1); + mcdo.par <= (others => '0'); mcmmo.grant <= mmgrant; mcmmo.ready <= mmready; diff --git a/lib/gaisler/leon3v2/mmu_cache.vhd b/lib/gaisler/leon3v1/mmu_cache.vhd similarity index 87% rename from lib/gaisler/leon3v2/mmu_cache.vhd rename to lib/gaisler/leon3v1/mmu_cache.vhd index d65b2a70..dfd12f61 100644 --- a/lib/gaisler/leon3v2/mmu_cache.vhd +++ b/lib/gaisler/leon3v1/mmu_cache.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -17,10 +17,10 @@ -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ----------------------------------------------------------------------------- --- Entity: cacheft --- File: cacheft.vhd +-- Entity: cache +-- File: cache.vhd -- Author: Jiri Gaisler --- Description: FT Cache controllers and AHB interface +-- Description: Complete cache sub-system with controllers and rams ------------------------------------------------------------------------------ library ieee; @@ -32,7 +32,6 @@ use techmap.gencomp.all; library gaisler; use gaisler.libiu.all; use gaisler.libcache.all; -use gaisler.libleon3.all; use gaisler.mmuconfig.all; use gaisler.mmuiface.all; use gaisler.libmmu.all; @@ -61,13 +60,11 @@ entity mmu_cache is dlram : integer range 0 to 1 := 0; dlramsize : integer range 1 to 512 := 1; dlramstart : integer range 0 to 255 := 16#8f#; - cft : integer range 0 to 1 := 0; itlbnum : integer range 2 to 64 := 8; dtlbnum : integer range 2 to 64 := 8; tlb_type : integer range 0 to 3 := 1; tlb_rep : integer range 0 to 1 := 0; cached : integer := 0; - iuft : integer range 0 to 4 := 0; clk2x : integer := 0; scantest : integer := 0; mmupgsz : integer range 0 to 5 := 0; @@ -116,22 +113,24 @@ signal ahbo2 : ahb_mst_out_type; begin - icache0 : mmu_icache - generic map (icen, irepl, isets, ilinesize, isetsize, isetlock, ilram, - ilramsize, ilramstart, cft, mmuen) +-- instruction cache controller + icache0 : mmu_icache + generic map (icen, irepl, isets, ilinesize, isetsize, isetlock, + ilram, ilramsize, ilramstart, mmuen) port map ( rst, clk, ici, icol, dci, dcol, mcii, mcio, crami.icramin, cramo.icramo, fpuholdn, mmudci, mmuici, mmuico); - dcache0 : mmu_dcache - generic map (dsu, dcen, drepl, dsets, dlinesize, dsetsize, dsetlock, dsnoop, - dlram, dlramsize, dlramstart, ilram, ilramstart, - itlbnum, dtlbnum, tlb_type, iuft, memtech, cft, cached, smp, mmuen) + +-- data cache controller + dcache0 : mmu_dcache + generic map (dsu, dcen, drepl, dsets, dlinesize, dsetsize, dsetlock, + dsnoop, dlram, dlramsize, dlramstart, ilram, ilramstart, + itlbnum, dtlbnum, tlb_type, memtech, cached, mmupgsz, smp, mmuen) port map ( rst, clk, dci, dcol, icol, mcdi, mcdo, ahbsi2, - crami.dcramin, cramo.dcramo, fpuholdn, mmudci, mmudco, sclk, ahbso); + crami.dcramin, cramo.dcramo, fpuholdn, mmudci, mmudco, sclk); -- AMBA AHB interface - a0 : mmu_acache - generic map (hindex, ilinesize, cached, clk2x, scantest - ) + a0 : mmu_acache + generic map (hindex, ilinesize, cached, clk2x, scantest) port map (rst, sclk, mcii, mcio, mcdi, mcdo, mcmmi, mcmmo, ahbi2, ahbo2, ahbso, hclken); -- MMU diff --git a/lib/gaisler/leon3v2/mmu_dcache.vhd b/lib/gaisler/leon3v1/mmu_dcache.vhd similarity index 75% rename from lib/gaisler/leon3v2/mmu_dcache.vhd rename to lib/gaisler/leon3v1/mmu_dcache.vhd index fc8ae039..300ceae8 100644 --- a/lib/gaisler/leon3v2/mmu_dcache.vhd +++ b/lib/gaisler/leon3v1/mmu_dcache.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -20,8 +20,7 @@ -- Entity: mmu_dcache -- File: mmu_dcache.vhd -- Author: Jiri Gaisler - Gaisler Research --- Modified: Edvin Catovic - Gaisler Research --- Description: This unit implements the data cache controller. +-- Description: This unit implements the data cache controller with MMU. ------------------------------------------------------------------------------ library ieee; @@ -35,6 +34,7 @@ use grlib.stdlib.all; library gaisler; use gaisler.libiu.all; use gaisler.libcache.all; +use gaisler.libmmu.all; use gaisler.mmuconfig.all; use gaisler.mmuiface.all; @@ -56,15 +56,15 @@ entity mmu_dcache is itlbnum : integer range 2 to 64 := 8; dtlbnum : integer range 2 to 64 := 8; tlb_type : integer range 0 to 3 := 1; - iuft : integer range 0 to 4 := 0; - memtech :integer range 0 to NTECH := 0; - cft : integer range 0 to 1 := 0; - cached : integer := 0; + memtech : integer range 0 to NTECH := 0; + cached : integer := 0; + mmupgsz : integer range 0 to 5 := 0; smp : integer := 0; - mmuen : integer := 0); + mmuen : integer := 0 + ); port ( - rst : in std_ulogic; - clk : in std_ulogic; + rst : in std_logic; + clk : in std_logic; dci : in dcache_in_type; dco : out dcache_out_type; ico : in icache_out_type; @@ -73,17 +73,16 @@ entity mmu_dcache is ahbsi : in ahb_slv_in_type; dcrami : out dcram_in_type; dcramo : in dcram_out_type; - fpuholdn : in std_ulogic; + fpuholdn : in std_logic; mmudci : out mmudc_in_type; mmudco : in mmudc_out_type; - sclk : in std_ulogic; - ahbso : in ahb_slv_out_vector + sclk : in std_ulogic ); end; architecture rtl of mmu_dcache is -constant M_EN : boolean := (mmuen = 1); +constant M_EN : boolean := (mmuen /= 0); constant DSNOOP2 : integer := dsnoop mod 4; constant DSNOOPSEP : boolean := (dsnoop > 3); @@ -115,7 +114,6 @@ constant DLRUBITS : integer := lru_table(DSETS); constant LOCAL_RAM_START : std_logic_vector(7 downto 0) := conv_std_logic_vector(dlramstart, 8); constant ILRAM_START : std_logic_vector(7 downto 0) := conv_std_logic_vector(ilramstart, 8); constant DIR_BITS: integer := log2x(DSETS); -constant bend : std_logic_vector(4 downto 2) := "101"; type rdatatype is (dtag, ddata, dddata, dctx, icache, memory, sysr , misc, mmusnoop_dtag); -- sources during cache read type vmasktype is (clearone, clearall, merge, tnew); -- valid bits operation @@ -126,54 +124,40 @@ type write_buffer_type is record -- write buffer addr, data1, data2 : std_logic_vector(31 downto 0); size : std_logic_vector(1 downto 0); asi : std_logic_vector(3 downto 0); - read : std_ulogic; - lock : std_ulogic; - smask: std_logic_vector(DSETS-1 downto 0);-- snoop mask + read : std_logic; + lock : std_logic; end record; type dstatetype is (idle, wread, rtrans, wwrite, wtrans, wflush, asi_idtag,dblwrite, loadpend); ---constant idle : std_logic_vector(3 downto 0) := X"0"; ---constant wread : std_logic_vector(3 downto 0) := X"1"; ---constant rtrans : std_logic_vector(3 downto 0) := X"2"; ---constant wwrite : std_logic_vector(3 downto 0) := X"3"; ---constant wtrans : std_logic_vector(3 downto 0) := X"4"; ---constant wflush : std_logic_vector(3 downto 0) := X"5"; ---constant asi_idtag : std_logic_vector(3 downto 0) := X"6"; ---constant dblwrite : std_logic_vector(3 downto 0) := X"7"; ---constant loadpend : std_logic_vector(3 downto 0) := X"8"; type dcache_control_type is record -- all registers - read : std_ulogic; -- access direction + read : std_logic; -- access direction size : std_logic_vector(1 downto 0); -- access size - req, burst, rburst, holdn, nomds, stpend : std_ulogic; + req, burst, holdn, nomds, stpend : std_logic; xaddress : std_logic_vector(31 downto 0); -- common address buffer paddress : std_logic_vector(31 downto 0); -- physical address buffer faddr : std_logic_vector(DOFFSET_BITS - 1 downto 0); -- flush address - efaddr : std_logic_vector(DOFFSET_BITS - 1 downto 0); -- error flush address --- dstate : std_logic_vector(3 downto 0); -- FSM vector + valid : valid_type; --std_logic_vector(dlinesize - 1 downto 0); -- registered valid bits dstate : dstatetype; -- FSM vector - hit, valid : std_ulogic; - flush : std_ulogic; -- flush in progress - flush2 : std_ulogic; -- flush in progress - mexc : std_ulogic; -- latched mexc - bmexc : std_ulogic; -- latched mexc from burst read + hit : std_logic; + flush : std_logic; -- flush in progress + flush2 : std_logic; -- flush in progress + mexc : std_logic; -- latched mexc wb : write_buffer_type; -- write buffer asi : std_logic_vector(4 downto 0); - icenable : std_ulogic; -- icache diag access + icenable : std_logic; -- icache diag access rndcnt : std_logic_vector(log2x(DSETS)-1 downto 0); -- replace counter setrepl : std_logic_vector(log2x(DSETS)-1 downto 0); -- set to replace - lrr : std_ulogic; + lrr : std_logic; dsuset : std_logic_vector(log2x(DSETS)-1 downto 0); - lock : std_ulogic; + lock : std_logic; lramrd : std_ulogic; - ilramen : std_ulogic; + ilramen : std_logic; cctrl : cctrltype; cctrlwr : std_ulogic; - flushl2 : std_ulogic; - tadj, dadj, sadj : std_logic_vector(1 downto 0); mmctrl1 : mmctrl_type1; - mmctrl1wr : std_ulogic; + mmctrl1wr : std_logic; pflush : std_logic; pflushr : std_logic; @@ -185,32 +169,43 @@ type dcache_control_type is record -- all registers cache : std_logic; dlock : std_logic; su : std_logic; + dblwdata : std_logic; + trans_op : std_logic; flush_op : std_logic; diag_op : std_logic; - reqst : std_logic; - set : integer range 0 to DSETS-1; - noflush : std_logic; end record; type snoop_reg_type is record -- snoop control registers - snoop : std_ulogic; -- snoop access to tags + snoop : std_logic; -- snoop access to tags addr : std_logic_vector(TAG_HIGH downto OFFSET_LOW);-- snoop tag address - mask : std_logic_vector(DSETS-1 downto 0);-- snoop mask - snhit : std_logic_vector(0 to MAXSETS-1); end record; +type snoop_hit_bits_type is array (0 to 2**DOFFSET_BITS-1) of std_logic_vector(0 to DSETS-1); + +type snoop_hit_reg_type is record + hit : snoop_hit_bits_type; -- snoop hit bits + taddr : std_logic_vector(OFFSET_HIGH downto OFFSET_LOW); -- saved tag clear address + hitaddr : std_logic_vector(OFFSET_HIGH downto OFFSET_LOW); -- saved tag hit address + clear : std_logic_vector(0 to DSETS-1); -- clear snoop hit + snhit : std_logic_vector(0 to DSETS-1); -- set on AHB snoop hit + snmiss : std_logic_vector(0 to DSETS-1); -- set on cache miss due to snoop hit +end record; + + subtype lru_type is std_logic_vector(DLRUBITS-1 downto 0); type lru_array is array (0 to 2**DOFFSET_BITS-1) of lru_type; -- lru registers +type par_type is array (0 to DSETS-1) of std_logic_vector(1 downto 0); type lru_reg_type is record - write : std_ulogic; + write : std_logic; waddr : std_logic_vector(DOFFSET_BITS-1 downto 0); set : std_logic_vector(SETBITS-1 downto 0); --integer range 0 to DSETS-1; lru : lru_array; end record; + subtype lock_type is std_logic_vector(0 to DSETS-1); function lru_set (lru : lru_type; lock : lock_type) return std_logic_vector is @@ -276,21 +271,22 @@ subtype word is std_logic_vector(31 downto 0); signal r, c : dcache_control_type; -- r is registers, c is combinational signal rs, cs : snoop_reg_type; -- rs is registers, cs is combinational +signal rh, ch : snoop_hit_reg_type; -- rs is registers, cs is combinational signal rl, cl : lru_reg_type; -- rl is registers, cl is combinational constant ctbl : std_logic_vector(15 downto 0) := conv_std_logic_vector(cached, 16); begin - dctrl : process(rst, r, rs, rl, dci, mcdo, ico, dcramo, ahbsi, fpuholdn, mmudco, ahbso) + dctrl : process(rst, r, rs, rh, rl, dci, mcdo, ico, dcramo, ahbsi, fpuholdn, mmudco) variable dcramov : dcram_out_type; variable rdatasel : rdatatype; variable maddress : std_logic_vector(31 downto 0); variable maddrlow : std_logic_vector(1 downto 0); variable edata : std_logic_vector(31 downto 0); variable size : std_logic_vector(1 downto 0); - variable read : std_ulogic; - variable twrite, tpwrite, tdiagwrite, ddiagwrite, dwrite : std_ulogic; + variable read : std_logic; + variable twrite, tpwrite, tdiagwrite, ddiagwrite, dwrite : std_logic; variable taddr : std_logic_vector(OFFSET_HIGH downto LINE_LOW); -- tag address variable newtag : std_logic_vector(TAG_HIGH downto TAG_LOW); -- new tag variable newptag : std_logic_vector(TAG_HIGH downto TAG_LOW); -- new tag @@ -298,28 +294,29 @@ begin variable ddatainv, rdatav, align_datav : cdatatype; variable rdata : std_logic_vector(31 downto 0); + variable vmaskraw : std_logic_vector((dlinesize -1) downto 0); variable vmask : valid_type; --std_logic_vector((dlinesize -1) downto 0); + variable vmaskdbl : std_logic_vector((dlinesize/2 -1) downto 0); variable enable, senable, scanen : std_logic_vector(0 to 3); - variable mds : std_ulogic; - variable mexc : std_ulogic; - variable hit, valid, forcemiss : std_ulogic; - variable flush : std_ulogic; - variable iflush : std_ulogic; + variable mds : std_logic; + variable mexc : std_logic; + variable hit, valid, validraw, forcemiss : std_logic; + variable flush : std_logic; + variable iflush : std_logic; variable v : dcache_control_type; - variable eholdn : std_ulogic; -- external hold - variable snoopwe : std_ulogic; - variable hcache : std_ulogic; - variable lramcs, lramen, lramrd, lramwr, ilramen : std_ulogic; + variable eholdn : std_logic; -- external hold + variable snoopwe : std_logic; + variable hcache : std_logic; + variable lramcs, lramen, lramrd, lramwr, ilramen : std_logic; variable snoopaddr : std_logic_vector(OFFSET_HIGH downto OFFSET_LOW); - variable flushaddr : std_logic_vector(OFFSET_HIGH downto OFFSET_LOW); variable vs : snoop_reg_type; + variable vh : snoop_hit_reg_type; variable dsudata : std_logic_vector(31 downto 0); - variable set, eset : integer range 0 to DSETS-1; + variable set : integer range 0 to DSETS-1; variable ddset : integer range 0 to MAXSETS-1; variable snoopset : integer range 0 to DSETS-1; - variable validraw : std_logic_vector(0 to DSETS-1); - variable validv, hitv : std_logic_vector(0 to MAXSETS-1); - variable csnoopwe, snhit : std_logic_vector(0 to MAXSETS-1); + variable validv, hitv, validrawv : std_logic_vector(0 to MAXSETS-1); + variable csnoopwe : std_logic_vector(0 to MAXSETS-1); variable ctwrite, ctpwrite, cdwrite : std_logic_vector(0 to MAXSETS-1); variable setrepl : std_logic_vector(log2x(DSETS)-1 downto 0); variable wlrr : std_logic_vector(0 to 3); @@ -327,14 +324,12 @@ begin variable diagset : std_logic_vector(TAG_LOW + SETBITS -1 downto TAG_LOW); variable lock : std_logic_vector(0 to DSETS-1); variable wlock : std_logic_vector(0 to MAXSETS-1); + variable snoophit : std_logic_vector(0 to DSETS-1); variable laddr : std_logic_vector(31 downto 0); -- local ram addr variable tag : cdatatype; --std_logic_vector(31 downto 0); variable ptag : cdatatype; --std_logic_vector(31 downto 0); - variable rlramrd : std_ulogic; - variable cache : std_ulogic; - + variable rlramrd : std_logic; variable ctx : ctxdatatype; - variable flushl : std_ulogic; variable miscdata : std_logic_vector(31 downto 0); variable pflush : std_logic; @@ -351,18 +346,23 @@ begin variable mmudci_read : std_logic; variable su : std_logic; variable mmuisdis : std_logic; + variable ctxp : std_logic; + variable sidle : std_logic; variable mmudci_transdata_data : std_logic_vector(31 downto 0); variable paddress : std_logic_vector(31 downto 0); -- physical address buffer + variable pagesize : integer range 0 to 3; + begin -- init local variables - v := r; vs := rs; dcramov := dcramo; vl := rl; + v := r; vs := rs; vh := rh; dcramov := dcramo; vl := rl; vl.write := '0'; lramen := '0'; lramrd := '0'; lramwr := '0'; lramcs := '0'; laddr := (others => '0'); v.cctrlwr := '0'; - ilramen := '0'; v.flush2 := r.flush; - snhit := (others => '0'); + ilramen := '0'; v.flush2 := r.flush; sidle := '0'; + + pagesize := MMU_getpagesize(mmupgsz,r.mmctrl1); if ((dci.eenaddr or dci.enaddr) = '1') or (r.dstate /= idle) or ((dsu = 1) and (dci.dsuen = '1')) or (r.flush = '1') or @@ -386,9 +386,9 @@ begin eholdn := ico.hold and fpuholdn; ddset := 0; vs.snoop := '0'; snoopwe := '0'; snoopaddr := ahbsi.haddr(OFFSET_HIGH downto OFFSET_LOW); - flushaddr := r.xaddress(OFFSET_HIGH downto OFFSET_LOW); hcache := '0'; - validv := (others => '0'); hitv := (others => '0'); cache := '0'; + validv := (others => '0'); validrawv := (others => '0'); + hitv := (others => '0'); vh.clear := (others => '0'); if (dlram = 1) then rlramrd := r.lramrd; else rlramrd := '0'; end if; miscdata := (others => '0'); pflush := '0'; @@ -398,7 +398,6 @@ begin mmudci_fsread := '0'; ddatainv := (others => (others => '0')); tag := (others => (others => '0')); ptag := (others => (others => '0')); - v.flushl2 := dci.flushl and not r.flush; newptag := (others => '0'); v.trans_op := r.trans_op and (not mmudco.grant); @@ -409,7 +408,9 @@ begin mmudci_diag_op := r.diag_op; mmudci_wb_op := '0'; mmudci_transdata_data := r.vaddr; + mmudci_su := '0'; mmudci_read := '0'; su := '0'; + if (not M_EN) or (r.mmctrl1.e = '0') then v.cache := '1'; end if; rdatasel := ddata; -- read data from cache as default senable := (others => '0'); scanen := (others => mcdo.scanen); @@ -429,7 +430,6 @@ begin else v.rndcnt := r.rndcnt + 1; end if; end if; - -- generate lock bits lock := (others => '0'); if dsetlock = 1 then @@ -442,35 +442,34 @@ begin -- snoop on NONSEQ or SEQ and first word in cache line -- do not snoop during own transfers or during cache flush - if (ahbsi.hready and ahbsi.hwrite and (not mcdo.bg or r.mmctrl1.e)) = '1' and + if (ahbsi.hready and ahbsi.hwrite and not mcdo.bg) = '1' and ((ahbsi.htrans = HTRANS_NONSEQ) or ((ahbsi.htrans = HTRANS_SEQ) and (ahbsi.haddr(LINE_HIGH downto LINE_LOW) = LINE_ZERO))) then vs.snoop := r.cctrl.dsnoop; vs.addr := ahbsi.haddr(TAG_HIGH downto OFFSET_LOW); - if (r.mmctrl1.e = '1') and (mcdo.bg = '1') then vs.mask := r.wb.smask; - else vs.mask := (others => '1'); end if; end if; - if DSNOOP /= 0 then - for i in 0 to DSETS-1 loop senable(i) := vs.snoop or rs.snoop; end loop; - end if; + for i in 0 to DSETS-1 loop senable(i) := vs.snoop or rs.snoop; end loop; + -- clear valid bits on snoop hit (or set hit bits) for i in DSETS-1 downto 0 loop + vh.snhit(i) := '0'; if ((rs.snoop and not (r.flush or r.flush2)) = '1') then - if (DSNOOP2 /= 0) and (rs.mask(i) = '1') and - ((dcramov.stag(i)(TAG_HIGH downto TAG_LOW) = rs.addr(TAG_HIGH downto TAG_LOW)) - ) + if (DSNOOP2 = 1) and ((dcramov.stag(i)(TAG_HIGH downto TAG_LOW) = rs.addr(TAG_HIGH downto TAG_LOW))) then - if DSNOOPSEP then flushaddr := rs.addr(OFFSET_HIGH downto OFFSET_LOW); - else snoopaddr := rs.addr(OFFSET_HIGH downto OFFSET_LOW); end if; - snoopwe := '1'; snoopset := i; snhit(i) := '1'; + snoopaddr := rs.addr(OFFSET_HIGH downto OFFSET_LOW); + snoopwe := '1'; snoopset := i; + end if; + if (DSNOOP2 = 2) and + ((dcramov.stag(i)(TAG_HIGH downto TAG_LOW) = rs.addr(TAG_HIGH downto TAG_LOW))) + then + vh.snhit(i) := '1'; end if; end if; end loop; end if; - vs.snhit := snhit; -- not needed, debug only -- generate access parameters during pipeline stall @@ -503,40 +502,46 @@ begin -- generate cache hit and valid bits - if (r.mmctrl1.e = '0') then hcache := ahb_slv_dec_cache(dci.maddress, ahbso, cached); + if (cached /= 0) and (r.mmctrl1.e = '0') then hcache := ctbl(conv_integer(dci.maddress(31 downto 28))); else hcache := '1'; end if; - forcemiss := (not dci.asi(3)) or dci.lock; - if (M_EN and (dci.asi(4 downto 0) = ASI_MMU_BP)) or (r.cctrl.dcs = "00") or - ((r.flush or r.flush2) = '1') - then hcache := '0'; end if; + forcemiss := (not dci.asi(3)) or dci.lock; hit := '0'; set := 0; + snoophit := (others => '0'); for i in DSETS-1 downto 0 loop + if DSNOOP2 = 2 then + snoophit(i) := rh.hit(conv_integer(rh.taddr))(i); + end if; if (dcramov.tag(i)(TAG_HIGH downto TAG_LOW) = dci.maddress(TAG_HIGH downto TAG_LOW)) and ((dcramov.ctx(i) = r.mmctrl1.ctx) or (r.mmctrl1.e = '0')) then hitv(i) := '1'; end if; - validv(i) := hcache and hitv(i) and (not r.flush) and (not r.flush2) and dcramov.tag(i)(dlinesize-1); - validraw(i) := dcramov.tag(i)(dlinesize-1); + validrawv(i) := hcache and hitv(i) and (not r.flush) and (not r.flush2) and (not snoophit(i)) and + genmux(dci.maddress(LINE_HIGH downto LINE_LOW), dcramov.tag(i)(dlinesize-1 downto 0)); + validv(i) := validrawv(i); end loop; if drepl = dir then hit := hitv(conv_integer(dci.maddress(OFFSET_HIGH+DIR_BITS downto OFFSET_HIGH+1))) and not r.flush and (not r.flush2); + validraw := validrawv(conv_integer(dci.maddress(OFFSET_HIGH+DIR_BITS downto OFFSET_HIGH+1))); valid := validv(conv_integer(dci.maddress(OFFSET_HIGH+DIR_BITS downto OFFSET_HIGH+1))); else hit := orv(hitv) and not r.flush and (not r.flush2); + validraw := orv(validrawv); valid := orv(validv); end if; - -- force cache miss if mmu-enabled but off or BYPASS, or on flush - if ((M_EN) and (dci.asi(4 downto 0) = ASI_MMU_BP)) or (r.cctrl.dcs = "00") or ((r.flush or r.flush2) = '1') - then hit := '0'; end if; - + -- cache hit disabled if mmu-enabled but off or BYPASS + if (M_EN) and (dci.asi(4 downto 0) = ASI_MMU_BP) then -- or (r.mmctrl1.e = '0') + hit := '0'; + end if; + if DSETS > 1 then - if drepl = dir then - set := conv_integer(dci.maddress(OFFSET_HIGH+DIR_BITS downto OFFSET_HIGH+1)); + if drepl = dir then set := conv_integer(dci.maddress(OFFSET_HIGH+DIR_BITS downto OFFSET_HIGH+1)); else for i in DSETS-1 downto 0 loop - if (hitv(i) = '1') then set := i; end if; + if (hitv(i) = '1') then + set := i; + end if; end loop; end if; if rlramrd = '1' then set := 1; end if; @@ -551,17 +556,16 @@ begin end case; if ((r.holdn and dci.enaddr) = '1') and (r.dstate = idle) then - v.hit := hit; v.xaddress := dci.maddress; - v.read := dci.read; v.size := dci.size; - v.asi := dci.asi(4 downto 0); - v.su := dci.msu; v.set := set; - v.valid := valid; v.dlock := dci.lock; + v.hit := hit; v.xaddress := dci.maddress; + v.read := dci.read; v.size := dci.size; + v.asi := dci.asi(4 downto 0); + v.su := dci.msu; v.dlock := dci.lock; end if; -- Store buffer if mcdo.ready = '1' then - v.wb.addr(LINE_HIGH downto 2) := r.wb.addr(LINE_HIGH downto 2) + 1; + v.wb.addr(2) := r.wb.addr(2) or (r.wb.size(0) and r.wb.size(1)); if r.stpend = '1' then v.stpend := r.req; v.wb.data1 := r.wb.data2; v.wb.lock := r.wb.lock and r.req; @@ -578,12 +582,12 @@ begin else laddr := dci.eaddress; end if; if (dci.enaddr = '1') and (dci.maddress(31 downto 24) = LOCAL_RAM_START) then lramen := '1'; end if; - if ((laddr(31 downto 24) = LOCAL_RAM_START)) or ((dci.dsuen = '1') and (dci.asi(4 downto 1) = "0101")) + if ((laddr(31 downto 24) = LOCAL_RAM_START) and (dci.dsuen = '0')) or ((dci.dsuen = '1') and (dci.asi(4 downto 1) = "0101")) then lramcs := '1'; end if; end if; if (ilram = 1) then - if (dci.enaddr = '1') and (dci.maddress(31 downto 24) = ILRAM_START) then ilramen := '1'; end if; + if (dci.enaddr = '1') and (dci.maddress(31 downto 24) = ILRAM_START) and (dci.dsuen = '0') then ilramen := '1'; end if; end if; -- cache freeze operation @@ -596,7 +600,6 @@ begin if (r.cctrlwr and not dci.nullify) = '1' then if (r.xaddress(7 downto 2) = "000000") and (dci.read = '0') then - v.noflush := dci.maddress(30); v.cctrl.dsnoop := dci.maddress(23); flush := dci.maddress(22); iflush := dci.maddress(21); @@ -606,14 +609,8 @@ begin v.cctrl.dcs := dci.maddress(3 downto 2); v.cctrl.ics := dci.maddress(1 downto 0); end if; - if (memtech = rhlib18t) and (r.xaddress(7 downto 2) = "000001") and (dci.read = '0') then - v.tadj := dci.maddress(5 downto 4); - v.sadj := dci.maddress(3 downto 2); - v.dadj := dci.maddress(1 downto 0); - end if; end if; - -- main Dcache state machine case r.dstate is @@ -621,23 +618,30 @@ begin if (M_TLB_FASTWRITE /= 0) then mmudci_transdata_data := dci.maddress; end if; - v.nomds := r.nomds and not eholdn; v.bmexc := '0'; - if ((r.reqst = '0') and (r.stpend = '0')) or ((mcdo.ready and not r.req)= '1') then -- wait for store queue - v.wb.addr := dci.maddress; v.wb.size := dci.size; + sidle := '1'; + v.nomds := r.nomds and not eholdn; + for i in 0 to DSETS-1 loop + if (snoophit(i) = '0') and ((r.flush or r.flush2) = '0') then + v.valid(i) := dcramov.tag(i)(dlinesize-1 downto 0); + else v.valid(i) := (others => '0'); end if; + end loop; + if DSNOOP2 = 2 then vh.snmiss := snoophit; end if; + v.nomds := r.nomds and not eholdn; + if (r.stpend = '0') or ((mcdo.ready and not r.req)= '1') then -- wait for store queue + v.wb.addr := dci.maddress; v.wb.size := dci.size; v.wb.read := dci.read; v.wb.data1 := dci.edata; v.wb.lock := dci.lock and not dci.nullify and ico.hold; v.wb.asi := dci.asi(3 downto 0); if ((M_EN) and (dci.asi(4 downto 0) /= ASI_MMU_BP) and (r.mmctrl1.e = '1') and - ((M_TLB_FASTWRITE /= 0) or ((dci.enaddr and eholdn and dci.lock and not dci.read) = '1'))) + ((M_TLB_FASTWRITE /= 0) or ((dci.enaddr and eholdn and dci.lock and not dci.read) = '1'))) then - if (dci.enaddr and eholdn and dci.lock and not dci.read) = '1' then -- skip address translation on store in LDST - v.wb.addr := r.wb.addr(31 downto 8) & dci.maddress(7 downto 0); - newptag := r.wb.addr(TAG_HIGH downto TAG_LOW); + if (dci.enaddr and eholdn and dci.lock and not dci.read) = '1' then -- skip address translation on store in LDST + v.wb.addr := r.wb.addr(31 downto 8) & dci.maddress(7 downto 0); + newptag := r.wb.addr(TAG_HIGH downto TAG_LOW); else - v.wb.addr := mmudco.wbtransdata.data; + v.wb.addr := mmudco.wbtransdata.data; newptag := mmudco.wbtransdata.data(TAG_HIGH downto TAG_LOW); - end if; + end if; end if; - if (dci.read and hcache) = '1' then v.wb.addr(LINE_HIGH downto 0) := (others => '0'); end if; end if; if (eholdn and (not r.nomds)) = '1' then -- avoid false path through nullify case dci.asi(4 downto 0) is @@ -661,30 +665,28 @@ begin if dci.read = '1' then case dci.maddress(CNR_U downto CNR_D) is when CNR_F => - mmudci_fsread := '1'; --FIXME. This will not work if the read is restarted + mmudci_fsread := '1'; when others => null; end case; end if; end if; - v.mmctrl1wr := not dci.read and not (r.mmctrl1wr and dci.dsuen); end if; + v.mmctrl1wr := not dci.read and not (r.mmctrl1wr and dci.dsuen); when ASI_ITAG | ASI_IDATA | ASI_ICTX => -- Read/write Icache tags -- CTX write has to be done through ctxnr & ASI_ITAG if (ico.flush = '1') or (dci.asi(4) = '1') then mexc := '1'; - else v.dstate := asi_idtag; v.holdn := dci.dsuen; end if; + else v.dstate := asi_idtag; v.holdn := dci.dsuen; end if; when ASI_UINST | ASI_SINST => if (ilram = 1) then v.dstate := asi_idtag; v.ilramen := '1'; end if; when ASI_DFLUSH => -- flush data cache if dci.read = '0' then flush := '1'; end if; when ASI_DDATA => -- Read/write Dcache data - if DSNOOPSEP then flushaddr := taddr(OFFSET_HIGH downto OFFSET_LOW); end if; if (r.flush = '1') then -- No access on flush mexc := '1'; elsif (dci.read = '0') then dwrite := '1'; ddiagwrite := '1'; end if; when ASI_DTAG => -- Read/write Dcache tags - if DSNOOPSEP then flushaddr := taddr(OFFSET_HIGH downto OFFSET_LOW); end if; if (dci.size /= "10") or (r.flush = '1') then -- allow only word access mexc := '1'; elsif (dci.read = '0') then @@ -701,7 +703,6 @@ begin end if; when ASI_DCTX => -- write has to be done through ctxnr & ASI_DTAG - if DSNOOPSEP then flushaddr := taddr(OFFSET_HIGH downto OFFSET_LOW); end if; if (dci.size /= "10") or (r.flush = '1') or (dci.read = '0') then -- allow only word access mexc := '1'; end if; @@ -735,25 +736,31 @@ begin end if; when others => if dci.read = '1' then -- read access - v.rburst := hcache; -- and not forcemiss; if (dlram = 1) and (lramen = '1') then lramrd := '1'; elsif (ilram = 1) and (ilramen = '1') then - if (ico.flush = '1') or (dci.size /= "10") then mexc := '1'; - else v.dstate := asi_idtag; v.holdn := dci.dsuen; v.ilramen := '1'; end if; + v.dstate := asi_idtag; v.holdn := dci.dsuen; v.ilramen := '1'; elsif dci.dsuen = '0' then - if not ((hit and valid and not forcemiss) = '1') then -- read miss - v.holdn := '0'; v.dstate := wread; v.ready := '0'; v.cache := hcache; - if (not M_EN) or ((dci.asi(4 downto 0) = ASI_MMU_BP) or (r.mmctrl1.e = '0')) then + if (not ((r.cctrl.dcs(0) = '1') and ((hit and valid and not forcemiss) = '1'))) + then -- read miss + v.holdn := '0'; v.dstate := wread; v.ready := '0'; v.cache := '1'; + if (not M_EN) or + ((dci.asi(4 downto 0) = ASI_MMU_BP) or (r.mmctrl1.e = '0')) + then -- cache disabled if mmu-enabled but off or BYPASS - if ((r.stpend = '0') or ((mcdo.ready and not r.req) = '1')) then - v.req := '1'; v.burst := v.rburst; + if (M_EN) then v.cache := '0'; end if; + if ((r.stpend = '0') or ((mcdo.ready and not r.req) = '1')) + then -- wait for store queue + v.req := '1'; + v.burst := dci.size(1) and dci.size(0) and not dci.maddress(2); end if; + else -- ## mmu case > - if (r.stpend = '0') or ((mcdo.ready and not r.req)= '1') then + if (r.stpend = '0') or ((mcdo.ready and not r.req)= '1') + then v.wbinit := '1'; -- wb init in idle - v.burst := v.rburst; + v.burst := dci.size(1) and dci.size(0) and not dci.maddress(2); else v.wbinit := '0'; end if; @@ -767,9 +774,8 @@ begin end if; else -- read hit if (DSETS > 1) and (drepl = lru) then vl.write := '1'; end if; - cache := '1'; - end if; + end if; else -- write access if (dlram = 1) and (lramen = '1') then @@ -778,38 +784,33 @@ begin v.dstate := dblwrite; v.xaddress(2) := '1'; end if; elsif (ilram = 1) and (ilramen = '1') then - if (ico.flush = '1') or (dci.size /= "10") then mexc := '1'; - else v.dstate := asi_idtag; v.holdn := dci.dsuen; v.ilramen := '1'; end if; + v.dstate := asi_idtag; v.holdn := dci.dsuen; v.ilramen := '1'; elsif dci.dsuen = '0' then v.ready := '0'; if (not M_EN) or ((dci.asi(4 downto 0) = ASI_MMU_BP) or (r.mmctrl1.e = '0')) then - if ((r.stpend = '0') or ((mcdo.ready and not r.req)= '1')) - then -- wait for store queue - v.reqst := '1'; + if (r.stpend = '0') or ((mcdo.ready and not r.req)= '1') then -- wait for store queue + + v.req := '1'; v.stpend := '1'; v.burst := dci.size(1) and dci.size(0); + if (dci.size = "11") then v.dstate := dblwrite; end if; -- double store - v.wb.smask := (others => '1'); else -- wait for store queue - v.dstate := wwrite; v.holdn := '0'; v.wb.read := r.wb.read; + v.dstate := wwrite; v.holdn := '0'; end if; else -- ## mmu case > false and if ((r.stpend = '0') or ((mcdo.ready and not r.req)= '1')) and - (((mmudco.wbtransdata.accexc = '0') and (M_TLB_FASTWRITE /= 0)) or (dci.lock = '1')) + (((mmudco.wbtransdata.accexc = '0') and (M_TLB_FASTWRITE /= 0)) or (dci.lock = '1')) then - v.reqst := '1'; + v.req := '1'; v.stpend := '1'; v.burst := dci.size(1) and dci.size(0); if (dci.size = "11") then v.dstate := dblwrite; end if; -- double store - v.wb.smask := (others => '1'); - if hit = '1' then v.wb.smask(set) := '0'; end if; else if (r.stpend = '0') or ((mcdo.ready and not r.req)= '1') then v.wbinit := '1'; -- wb init in idle v.burst := dci.size(1) and dci.size(0); - v.wb.smask := (others => '1'); - if hit = '1' then v.wb.smask(set) := '0'; end if; else v.wbinit := '0'; end if; @@ -817,12 +818,14 @@ begin v.trans_op := not mmudco.grant; v.vaddr := dci.maddress; v.holdn := '0'; v.dstate := wtrans; + v.dblwdata := dci.size(0) or dci.size(1); -- "11" -- ## < mmu case end if; end if; - if (hit and valid) = '1' then -- write hit - dwrite := '1'; + if (r.cctrl.dcs(0) = '1') and (((hit and dci.size(1)) or validraw) = '1') + then -- write hit + twrite := '1'; dwrite := '1'; if (DSETS > 1) and (drepl = lru) then vl.write := '1'; end if; setrepl := conv_std_logic_vector(set, SETBITS); if DSNOOP2 /= 0 then @@ -834,16 +837,10 @@ begin end if; end if; - eset := set; if (DSETS > 1) then vl.set := conv_std_logic_vector(set, SETBITS); v.setrepl := conv_std_logic_vector(set, SETBITS); - if (andv(validraw) = '0') and (drepl /= dir) and false then - for i in DSETS-1 downto 0 loop - if validraw(i) = '0' then eset := i; end if; - end loop; - v.setrepl := conv_std_logic_vector(eset, SETBITS); - elsif ((not hit) and (not r.flush)) = '1' then + if ((not hit) and (not r.flush)) = '1' then case drepl is when rnd => if dsetlock = 1 then @@ -906,21 +903,16 @@ begin v.dstate := wread; v.cache := r.cache and mmudco.transdata.cache; v.paddress := mmudco.transdata.data; - v.rburst := r.rburst and v.cache; - if r.wbinit = '1' then - v.wb.addr := v.paddress; --mmudco.transdata.data; + if v.wbinit = '1' then + v.wb.addr := mmudco.transdata.data; v.req := '1'; - v.burst := v.rburst; - if v.rburst = '1' then - v.wb.addr(LINE_HIGH downto 0) := (others => '0'); - end if; end if; end if; end if; end if; when wread => -- read miss, wait for memory data - taddr := r.wb.addr(OFFSET_HIGH downto LINE_LOW); + taddr := r.xaddress(OFFSET_HIGH downto LINE_LOW); newtag := r.xaddress(TAG_HIGH downto TAG_LOW); newptag := paddress(TAG_HIGH downto TAG_LOW); v.nomds := r.nomds and not eholdn; @@ -928,70 +920,53 @@ begin for i in 0 to DSETS-1 loop wlock(i) := r.lock; end loop; for i in 0 to 3 loop wlrr(i) := r.lrr; end loop; if (r.stpend = '0') and (r.ready = '0') then - if (r.rburst) = '1' then - if (mcdo.grant = '1') and (r.wb.addr(LINE_HIGH downto LINE_LOW) >= bend(LINE_HIGH downto LINE_LOW)) - and not ((r.wb.addr(LINE_HIGH downto LINE_LOW) = bend(LINE_HIGH downto LINE_LOW)) and (mcdo.ready = '0')) - then - v.burst := '0'; - else v.burst := r.burst; end if; - end if; + if mcdo.ready = '1' then - if (r.cache or r.hit) = '0' then - mds := r.holdn or r.nomds; v.xaddress(2) := '1'; v.holdn := '1'; - else - if r.wb.addr(LINE_HIGH downto LINE_LOW) = r.xaddress(LINE_HIGH downto LINE_LOW) then - mds := '0'; - end if; - end if; - dwrite := r.cache; rdatasel := memory; + mds := r.holdn or r.nomds; v.xaddress(2) := '1'; v.holdn := '1'; + if (r.cctrl.dcs = "01") then + v.hit := mcdo.cache and r.hit and r.cache; twrite := v.hit; + elsif (r.cctrl.dcs(1) = '1') then + v.hit := mcdo.cache and (r.hit or (r.asi(3) and not r.asi(2))) and r.cache; twrite := v.hit; + end if; + dwrite := twrite; rdatasel := memory; mexc := mcdo.mexc; - v.bmexc := r.bmexc or mcdo.mexc or dci.flushl; - if r.req = '0' then - twrite := r.cache; tagclear := v.bmexc; - if (((dci.enaddr and not mds) = '1') or (dci.flushl = '1') or ((dci.enaddr and twrite) = '1')) - and ((r.cctrl.dcs(0) = '1') or (dlram = 1)) - then v.dstate := loadpend; v.holdn := '0'; - else v.dstate := idle; v.holdn := '1'; end if; - else v.nomds := not r.cache; end if; + tpwrite := twrite; + + if r.req = '0' then + + if (((dci.enaddr and not mds) = '1') or + ((dci.eenaddr and mds and eholdn) = '1')) and ((r.cctrl.dcs(0) = '1') or (dlram = 1)) then + v.dstate := loadpend; v.holdn := '0'; + else v.dstate := idle; end if; + else v.nomds := '1'; end if; end if; - v.mexc := mcdo.mexc and not r.rburst; v.wb.data2 := mcdo.data; + v.mexc := mcdo.mexc; v.wb.data2 := mcdo.data; else if (r.ready or (mcdo.ready and not r.req)) = '1' then -- wait for store queue + v.burst := r.size(1) and r.size(0) and not r.xaddress(2); v.wb.addr := paddress; v.wb.size := r.size; - v.burst := r.rburst; - if r.rburst = '1' then - v.wb.addr(LINE_HIGH downto 0) := (others => '0'); - end if; v.wb.read := r.read; v.wb.data1 := dci.maddress; v.req := '1'; v.wb.lock := dci.lock; v.wb.asi := r.asi(3 downto 0); v.ready := '0'; end if; end if; when loadpend => -- return from read miss with load pending taddr := dci.maddress(OFFSET_HIGH downto LINE_LOW); - if (dlram = 1) then + if (dlram = 1) and (dci.dsuen = '0') then laddr := dci.maddress; if laddr(31 downto 24) = LOCAL_RAM_START then lramcs := '1'; end if; end if; - if (r.flushl2 and dci.enaddr) = '1' then - v.holdn := '0'; - else - v.dstate := idle; - end if; + v.dstate := idle; when dblwrite => -- second part of double store cycle - edata := dci.edata; -- needed for STD store hit + v.dstate := idle; edata := dci.edata; taddr := r.xaddress(OFFSET_HIGH downto LINE_LOW); if (dlram = 1) and (rlramrd = '1') then laddr := r.xaddress; lramwr := '1'; else - if r.hit = '1' then dwrite := r.valid; end if; + if (r.cctrl.dcs(0) = '1') and (r.hit = '1') then dwrite := '1'; end if; v.wb.data2 := dci.edata; end if; - if (dci.flushl and ico.hold) = '1' then - v.dstate := loadpend; v.holdn := '0'; - elsif ico.hold = '0' then v.reqst := '0'; - else v.dstate := idle; end if; when asi_idtag => -- icache diag and inst local ram access rdatasel := icache; v.icenable := '1'; v.holdn := dci.dsuen; if ico.diagrdy = '1' then @@ -1013,55 +988,61 @@ begin end if; end if; + -- fetch dblwrite data 2, does the same as state dblwrite, + -- except that init of data2 is omitted to end of translation or in wwrite + if ((r.dblwdata) = '1') and ((r.size) = "11") then + v.dblwdata := '0'; + end if; + v.holdn := '0'; if mmudco.transdata.finish = '1' then if (mmudco.transdata.accexc) = '1' then v.holdn := '1'; v.dstate := idle; mds := '0'; mexc := not r.mmctrl1.nf; - tagclear := r.hit; + + tagclear := r.cctrl.dcs(0) and r.hit; + twrite := tagclear; + if (twrite = '1') and (((dci.enaddr and not mds) = '1') or ((dci.eenaddr and mds and eholdn) = '1')) and (r.cctrl.dcs(0) = '1') then v.dstate := loadpend; v.holdn := '0'; end if; + else v.dstate := wwrite; v.cache := mmudco.transdata.cache; v.paddress := mmudco.transdata.data; + if (r.wbinit) = '1' then v.wb.data2 := dci.edata; v.wb.addr := mmudco.transdata.data; v.dstate := idle; v.holdn := '1'; - if (dci.nullify = '0') - then - v.req := '1'; v.stpend := '1'; - else v.reqst := '1'; end if; + v.req := '1'; v.stpend := '1'; v.burst := r.size(1) and r.size(0) and not v.wb.addr(2); - if (r.hit = '1') and (r.size = "11") then -- write hit - dwrite := r.valid; + if (r.cctrl.dcs(0) = '1') and (r.hit = '1') and (r.size = "11") then -- write hit + dwrite := '1'; end if; end if; end if; + else + -- mmudci_trans_op := '1'; -- start translation end if; + end if; when wwrite => -- wait for store buffer to empty (store access) edata := dci.edata; -- needed for STD store hit - if ( - (dci.lock = '1')) and (dci.nullify = '1') then - v.dstate := idle; v.wb.lock := '0'; - elsif ((v.ready or (mcdo.ready and not r.req)) = '1') or ( - (dci.lock = '1')) then -- store queue emptied + if (v.ready or (mcdo.ready and not r.req)) = '1' then -- store queue emptied - if (r.hit = '1') and (r.size = "11") then -- write hit - taddr := r.xaddress(OFFSET_HIGH downto LINE_LOW); dwrite := r.valid; + if (r.cctrl.dcs(0) = '1') and (r.hit = '1') and (r.size = "11") then -- write hit + taddr := r.xaddress(OFFSET_HIGH downto LINE_LOW); dwrite := '1'; end if; v.dstate := idle; - v.burst := r.size(1) and r.size(0); - if (dci.nullify = '0') then v.reqst := '1'; end if; + v.req := '1'; v.burst := r.size(1) and r.size(0); v.stpend := '1'; v.wb.addr := paddress; v.wb.size := r.size; @@ -1069,11 +1050,10 @@ begin v.wb.lock := dci.lock; v.wb.data2 := dci.edata; v.wb.asi := r.asi(3 downto 0); if r.size = "11" then v.wb.addr(2) := '0'; end if; - v.wb.smask := (others => '1'); - if r.hit = '1' then v.wb.smask(r.set) := '0'; end if; else -- hold cpu until buffer empty v.holdn := '0'; end if; + when wflush => v.holdn := '0'; if mmudco.transdata.finish = '1' then @@ -1082,8 +1062,6 @@ begin when others => v.dstate := idle; end case; - v.req := v.req or v.reqst; v.stpend := v.stpend or v.reqst; v.reqst := '0'; - if (dlram = 1) then v.lramrd := lramcs; end if; -- read local ram data -- select data to return on read access @@ -1100,7 +1078,6 @@ begin twrite := not dci.eenaddr and dci.enaddr and dci.write; rdatasel := dtag; when ASI_MMUSNOOP_DTAG => - if DSNOOPSEP then snoopaddr := taddr(OFFSET_HIGH downto OFFSET_LOW); end if; tdiagwrite := not dci.eenaddr and dci.enaddr and dci.write; tpwrite := not dci.eenaddr and dci.enaddr and dci.write; rdatasel := mmusnoop_dtag; senable := (others => '1'); @@ -1134,6 +1111,7 @@ begin miscdata(20 downto 18) := (others => '0'); end if; miscdata(MMCTRL_TLBDIS) := r.mmctrl1.tlbdis; + miscdata(MMCTRL_PGSZ_U downto MMCTRL_PGSZ_D) := conv_std_logic_vector(pagesize,2); -- r.mmctrl1.pagesize; --custom when CNR_CTXP => miscdata(MMCTXP_U downto MMCTXP_D) := r.mmctrl1.ctxp; @@ -1153,11 +1131,11 @@ begin when others => null; end case; end if; - + rdata := (others => '0'); rdatav := (others => (others => '0')); - + align_data := (others => '0'); align_datav := (others => (others => '0')); maddrlow := maddress(1 downto 0); -- stupid Synopsys VSS bug ... @@ -1165,21 +1143,26 @@ begin when misc => if M_EN then set := 0; rdatav(0) := miscdata; end if; when dddata => - rdatav := dcramov.data; + rdatav := dcramov.data; if dci.dsuen = '1' then set := conv_integer(r.dsuset); else set := ddset; end if; when dtag => - rdatav := dcramov.tag; + rdatav := dcramov.tag; if dci.dsuen = '1' then set := conv_integer(r.dsuset); else set := ddset; end if; - when mmusnoop_dtag => - rdatav := dcramov.stag; + for i in 0 to DSETS-1 loop + rdatav(i)(TAG_HIGH downto TAG_LOW) := dcramov.stag(i)(TAG_HIGH downto TAG_LOW); + rdatav(i)(0) := snoophit(i); + end loop; if dci.dsuen = '1' then set := conv_integer(r.dsuset); else set := ddset; end if; - when dctx => - --rdata(M_CTX_SZ-1 downto 0) := dcramov.dtramout(ddset).ctx; + for i in 0 to DSETS-1 loop + rdatav(i)(M_CTX_SZ-1 downto 0) := dcramov.ctx(i); + end loop; + if dci.dsuen = '1' then set := conv_integer(r.dsuset); + else set := ddset; end if; when icache => rdatav(0) := ico.diagdata; set := 0; when ddata | memory => @@ -1191,24 +1174,20 @@ begin when sysr => set := 0; case dci.maddress(3 downto 2) is - when "00" => - rdatav(0)(30) := r.noflush; + when "00" | "01" => rdatav(0)(23) := r.cctrl.dsnoop; if dsnoop > 4 then rdatav(0)(17) := '1'; end if; rdatav(0)(16 downto 14) := r.cctrl.burst & ico.flush & r.flush; rdatav(0)(5 downto 0) := r.cctrl.dfrz & r.cctrl.ifrz & r.cctrl.dcs & r.cctrl.ics; - when "01" => - rdatav(0)(7 downto 0) := "00" & r.tadj & r.sadj & r.dadj; when "10" => rdatav(0) := ico.cfg; when others => rdatav(0) := cache_cfg(drepl, dsets, dlinesize, dsetsize, dsetlock, - dsnoop, dlram, log2(dlramsize), dlramstart, mmuen); + dsnoop, dlram, dlramsize, dlramstart, mmuen); end case; end case; - -- select which data to update the data cache with for i in 0 to DSETS-1 loop @@ -1238,7 +1217,6 @@ begin end loop; - -- handle double load with pipeline hold if (r.dstate = idle) and (r.nomds = '1') then @@ -1249,20 +1227,34 @@ begin if mcdo.retry = '1' then v.req := '1'; - if r.wb.read = '0' then - v.burst := r.wb.size(0) and r.wb.size(1) and not r.wb.addr(2); - else - v.burst := ((r.rburst) and not andv(r.wb.addr(LINE_HIGH downto LINE_LOW))) or - (not r.rburst and r.wb.size(0) and r.wb.size(1) and not r.wb.addr(2)); - end if; + v.burst := r.wb.size(0) and r.wb.size(1) and not r.wb.addr(2); end if; -- Generate new valid bits - if r.flush = '1' then twrite := '0'; dwrite := '0'; end if; - vmask := (others => (others => '1')); + vmaskdbl := decode(maddress(LINE_HIGH downto LINE_LOW+1)); + if (size = "11") and (read = '0') then + for i in 0 to (dlinesize - 1) loop vmaskraw(i) := vmaskdbl(i/2); end loop; + else + vmaskraw := decode(maddress(LINE_HIGH downto LINE_LOW)); + end if; + + vmask := (others => vmaskraw); + if r.hit = '1' then + for i in 0 to DSETS-1 loop vmask(i) := r.valid(i) or vmaskraw; end loop; + end if; + if (r.dstate = idle) then + for i in 0 to DSETS-1 loop + vmask(i) := dcramov.tag(i)(dlinesize-1 downto 0) or vmaskraw; + end loop; + else + for i in 0 to DSETS-1 loop tag(i)(dlinesize-1 downto 0) := vmask(i); end loop; + end if; + + if (mcdo.mexc or r.flush) = '1' then twrite := '0'; dwrite := '0'; end if; if twrite = '1' then if tagclear = '1' then vmask := (others => (others => '0')); end if; + v.valid := vmask; if (DSETS>1) and (drepl = lru) and (tdiagwrite = '0') then vl.write := '1'; vl.set := setrepl; end if; @@ -1293,6 +1285,7 @@ begin v.mmctrl1.nf := dci.maddress(MMCTRL_NF); v.mmctrl1.pso := dci.maddress(MMCTRL_PSO); v.mmctrl1.tlbdis := dci.maddress(MMCTRL_TLBDIS); + v.mmctrl1.pagesize := dci.maddress(MMCTRL_PGSZ_U downto MMCTRL_PGSZ_D); --custom -- Note: before tlb disable tlb flush is required !!! when CNR_CTXP => @@ -1307,29 +1300,46 @@ begin -- cache flush - if ((dci.flush or dci.flushl or flush) = '1') and (dcen /= 0) then - v.flush := not r.noflush; v.faddr := (others => '0'); - if (dci.flushl = '1') then v.flush := '1'; v.faddr := r.efaddr; end if; + if (dci.flush or flush) = '1' then + v.flush := '1'; v.faddr := (others => '0'); v.pflush := pflush; + v.pflushr := '1'; + v.pflushaddr := pflushaddr; + v.pflushtyp := pflushtyp; end if; - if eholdn = '1' then v.efaddr := v.xaddress(OFFSET_HIGH downto OFFSET_LOW); end if; - if (r.flush = '1') and (dcen /= 0) then - twrite := '1'; vmask := (others => (others => '0')); - v.faddr := r.faddr +1; newtag(TAG_HIGH downto TAG_LOW) := (others => '0'); + if (r.flush = '1') then + twrite := '1'; vmask := (others => (others => '0')); v.faddr := r.faddr +1; + newtag(TAG_HIGH downto TAG_LOW) := (others => '0'); newptag := (others => '0'); - if DSNOOPSEP then flushaddr := r.faddr; end if; taddr(OFFSET_HIGH downto OFFSET_LOW) := r.faddr; - wlrr := (others => '0'); - if ((r.faddr(DOFFSET_BITS -1) and not v.faddr(DOFFSET_BITS -1)) or r.flushl2) = '1' then + wlrr := (others => '0'); v.lrr := '0'; + if (r.faddr(DOFFSET_BITS -1) and not v.faddr(DOFFSET_BITS -1)) = '1' then v.flush := '0'; end if; end if; +-- AHB snoop handling (2), bypass write data on read/write contention + + if DSNOOP2 /= 0 then + if DSNOOP2 = 2 then + vh.hitaddr := rs.addr(OFFSET_HIGH downto OFFSET_LOW); + vh.taddr := taddr(OFFSET_HIGH downto OFFSET_LOW); + if (twrite = '1') and (r.dstate = wread) and (r.flush = '0') then + vh.clear(conv_integer(setrepl)) := rh.snmiss(conv_integer(setrepl)); + end if; + if r.flush = '1' then vh.snhit := (others => '1'); vh.hitaddr := r.faddr; end if; + for i in 0 to DSETS -1 loop + if rh.clear(i) = '1' then vh.hit(conv_integer(rh.taddr))(i) := '0'; end if; + if (rh.snhit(i) = '1') then vh.hit(conv_integer(rh.hitaddr))(i) := '1'; end if; + end loop; + end if; + end if; + -- update cache with memory data during read miss if read = '1' then for i in 0 to DSETS-1 loop - ddatainv(i) := mcdo.data; + ddatainv(i) := mcdo.data; end loop; end if; @@ -1350,26 +1360,50 @@ begin else cdwrite(conv_integer(setrepl)) := '1'; end if; end if; - if (r.flush and twrite) = '1' then -- flush - ctwrite := (others => '1'); wlrr := (others => '0'); wlock := (others => '0'); - if DSNOOPSEP then - ctpwrite := (others => '1'); + csnoopwe := (others => '0'); + if ((snoopwe and not mcdo.scanen) = '1') then csnoopwe(snoopset) := '1'; end if; + + + if (r.flush and twrite) = '1' then -- flush + ctwrite := (others => '1'); wlrr := (others => '0'); wlock := (others => '0'); + if DSNOOPSEP then + ctpwrite := (others => '1'); + end if; + + -- precise flush, ASI_FLUSH_PAGE & ASI_FLUSH_CTX + if false then -- + if M_EN then + if r.pflush = '1' then + twrite := '0'; ctwrite := (others => '0'); + for i in DSETS-1 downto 0 loop + wlrr(i) := dcramov.tag(i)(CTAG_LRRPOS); + wlock(i) := dcramov.tag(i)(CTAG_LOCKPOS); + end loop; + if r.pflushr = '0' then + for i in DSETS-1 downto 0 loop + pftag(OFFSET_HIGH downto OFFSET_LOW) := r.faddr; + pftag(TAG_HIGH downto TAG_LOW) := dcramov.tag(i)(TAG_HIGH downto TAG_LOW); + if ((pftag(VA_I_U downto VA_I_D) = r.pflushaddr(VA_I_U downto VA_I_D)) or + (r.pflushtyp = '1')) then + ctwrite(i) := '1'; + wlrr(i) := '0'; + wlock(i) := '0'; + end if; + end loop; + else + v.faddr := r.faddr; + end if; + v.pflushr := not r.pflushr; + end if; end if; - end if; + end if; - csnoopwe := (others => '0'); flushl := '0'; - if ((snoopwe and not mcdo.scanen) = '1') then csnoopwe := snhit; end if; - if DSNOOPSEP then - csnoopwe := csnoopwe or ctwrite; - if orv(snhit) = '1' then flushl := '1'; end if; -- flush tag on snoop hit - end if; + end if; - if r.flush2 = '1' then + if r.flush2 = '1' then vl.lru := (others => (others => '0')); end if; - - -- reset if rst = '0' then @@ -1380,24 +1414,19 @@ begin v.lrr := '0'; v.lock := '0'; v.ilramen := '0'; v.cctrl.dcs := "00"; v.cctrl.ics := "00"; v.cctrl.burst := '0'; v.cctrl.dsnoop := '0'; - v.tadj := (others => '0'); v.dadj := (others => '0'); - v.sadj := (others => '0'); --if M_EN then v.mmctrl1.e := '0'; v.mmctrl1.nf := '0'; v.mmctrl1.ctx := (others => '0'); - v.mmctrl1.tlbdis := '0'; + v.mmctrl1.tlbdis := '0'; v.mmctrl1.pagesize := (others => '0'); v.mmctrl1.pso := '0'; v.trans_op := '0'; v.flush_op := '0'; v.diag_op := '0'; v.pflush := '0'; v.pflushr := '0'; + v.mmctrl1.pagesize := (others => '0'); --end if; v.mmctrl1.bar := (others => '0'); v.faddr := (others => '0'); - v.reqst := '0'; - v.cache := '0'; v.wb.lock := '0'; - v.wb.data1 := (others => '0'); v.wb.data2 := (others => '0'); - v.noflush := '0'; v.mexc := '0'; end if; if dsnoop = 0 then v.cctrl.dsnoop := '0'; end if; @@ -1405,7 +1434,7 @@ begin -- Drive signals - c <= v; cs <= vs; -- register inputs + c <= v; cs <= vs; ch <= vh; -- register inputs cl <= vl; @@ -1421,21 +1450,20 @@ begin ctx(i) := r.mmctrl1.ctx; ptag(i)(TAG_HIGH downto TAG_LOW) := newptag(TAG_HIGH downto TAG_LOW); end loop; - dcrami.tag <= tag; -- virtual tag - dcrami.ptag <= ptag; -- physical tag - dcrami.ctx <= ctx; -- context - dcrami.tenable <= enable; -- virtual tag ram enable - dcrami.twrite <= ctwrite; -- virtual tag ram write (port 1) - dcrami.tpwrite <= ctpwrite; -- virtual tag ram write (port 2) - dcrami.flush <= r.flush or flushl; - dcrami.senable <= senable; -- physical tag ram enable - dcrami.swrite <= csnoopwe; -- physical tag ram write + dcrami.tag <= tag; + dcrami.ptag <= ptag; + dcrami.ctx <= ctx; + dcrami.tenable <= enable; + dcrami.twrite <= ctwrite; + dcrami.tpwrite <= ctpwrite; + dcrami.flush <= r.flush; + dcrami.senable <= senable;--vs.snoop or rs.snoop; + dcrami.swrite <= csnoopwe; dcrami.saddress(19 downto (OFFSET_HIGH - OFFSET_LOW +1)) <= zero32(19 downto (OFFSET_HIGH - OFFSET_LOW +1)); dcrami.saddress(OFFSET_HIGH - OFFSET_LOW downto 0) <= snoopaddr; - dcrami.faddress(19 downto (OFFSET_HIGH - OFFSET_LOW +1)) <= - zero32(19 downto (OFFSET_HIGH - OFFSET_LOW +1)); - dcrami.faddress(OFFSET_HIGH - OFFSET_LOW downto 0) <= flushaddr; + dcrami.tdiag <= mcdo.testen & "000"; + dcrami.ddiag <= mcdo.testen & "000"; -- data ram inputs dcrami.denable <= enable; @@ -1448,9 +1476,13 @@ begin dcrami.ldramin.read <= rlramrd; dcrami.ldramin.write <= lramwr; - dcrami.tdiag <= mcdo.testen & mcdo.scanen & r.tadj; - dcrami.sdiag <= mcdo.testen & mcdo.scanen & r.sadj; - dcrami.ddiag <= mcdo.testen & mcdo.scanen & r.dadj; + dcrami.spar <= '0'; + dcrami.faddress <= (others => '0'); + dcrami.dpar <= (others => (others => '0')); + dcrami.tpar <= (others => (others => '0')); + dcrami.tdiag <= mcdo.testen & mcdo.scanen & "00"; + dcrami.sdiag <= mcdo.testen & mcdo.scanen & "00"; + dcrami.ddiag <= mcdo.testen & mcdo.scanen & "00"; -- memory controller inputs mcdi.address <= r.wb.addr; @@ -1461,7 +1493,7 @@ begin mcdi.asi <= r.wb.asi; mcdi.lock <= r.wb.lock; mcdi.req <= r.req; - mcdi.cache <= r.cache; + mcdi.cache <= orv(r.cctrl.dcs); -- diagnostic instruction cache access dco.icdiag.flush <= iflush; @@ -1476,7 +1508,6 @@ begin dco.icdiag.ilramen <= r.ilramen; dco.icdiag.cctrl <= r.cctrl; dco.icdiag.scanen <= mcdo.scanen; - -- IU data cache inputs dco.data <= rdatav; @@ -1485,10 +1516,8 @@ begin dco.hold <= r.holdn; dco.mds <= mds; dco.werr <= mcdo.werr; - dco.cache <= cache; - dco.hit <= r.hit; - if r.dstate = idle then dco.idle <= not r.stpend; - else dco.idle <= '0'; end if; + dco.cache <= '0'; + dco.idle <= sidle and not r.stpend; dco.scanen <= mcdo.scanen; dco.testen <= mcdo.testen; @@ -1520,8 +1549,18 @@ begin end generate; nosn2 : if DSNOOP2 = 0 generate - rs.snoop <= '0'; rs.addr <= (others => '0'); - rs.snhit <= (others => '0'); rs.mask <= (others => '0'); + rs.snoop <= '0'; + rs.addr <= (others => '0'); + end generate; + + sn3 : if DSNOOP2 = 2 generate + reg3 : process(sclk) + begin if rising_edge(sclk ) then rh <= ch; end if; end process; + end generate; + + nosn3 : if DSNOOP2 /= 2 generate + rh.hit <= (others => (others => '0')); rh.taddr <= (others => '0'); + rh.clear <= (others => '0'); rh.snhit <= (others => '0'); end generate; reg2 : if (DSETS>1) and (drepl = lru) generate diff --git a/lib/gaisler/leon3v2/mmu_icache.vhd b/lib/gaisler/leon3v1/mmu_icache.vhd similarity index 76% rename from lib/gaisler/leon3v2/mmu_icache.vhd rename to lib/gaisler/leon3v1/mmu_icache.vhd index 62b6ff2c..71c86113 100644 --- a/lib/gaisler/leon3v2/mmu_icache.vhd +++ b/lib/gaisler/leon3v1/mmu_icache.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -17,10 +17,9 @@ -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ----------------------------------------------------------------------------- --- Entity: mmu_icache --- File: mmu_icache.vhd --- Author: Jiri Gaisler - Gaisler Research --- Modified: Edvin Catovic - Gaisler Research +-- Entity: icache +-- File: icache.vhd +-- Author: Jiri Gaisler, Konrad Eisele - Gaisler Research -- Description: This unit implements the instruction cache controller. ------------------------------------------------------------------------------ @@ -34,7 +33,6 @@ use gaisler.libiu.all; use gaisler.libcache.all; use gaisler.mmuconfig.all; use gaisler.mmuiface.all; -use gaisler.leon3.all; entity mmu_icache is generic ( @@ -46,12 +44,12 @@ entity mmu_icache is isetlock : integer range 0 to 1 := 0; lram : integer range 0 to 1 := 0; lramsize : integer range 1 to 512 := 1; - lramstart : integer range 0 to 255 := 16#8e#; - cft : integer range 0 to 1 := 0; - mmuen : integer range 0 to 1 := 0); + lramstart : integer range 0 to 255 := 16#8e#; + mmuen : integer := 0 + ); port ( - rst : in std_ulogic; - clk : in std_ulogic; + rst : in std_logic; + clk : in std_logic; ici : in icache_in_type; ico : out icache_out_type; dci : in dcache_in_type; @@ -60,7 +58,7 @@ entity mmu_icache is mcio : in memory_ic_out_type; icrami : out icram_in_type; icramo : in icram_out_type; - fpuholdn : in std_ulogic; + fpuholdn : in std_logic; mmudci : in mmudc_in_type; mmuici : out mmuic_in_type; mmuico : in mmuic_out_type @@ -72,30 +70,34 @@ architecture rtl of mmu_icache is constant M_EN : boolean := (mmuen = 1); constant ILINE_BITS : integer := log2(ilinesize); constant IOFFSET_BITS : integer := 8 +log2(isetsize) - ILINE_BITS; -constant TAG_LOW : integer := IOFFSET_BITS + ILINE_BITS + 2; -constant OFFSET_HIGH : integer := TAG_LOW - 1; -constant OFFSET_LOW : integer := ILINE_BITS + 2; -constant LINE_HIGH : integer := OFFSET_LOW - 1; -constant LINE_LOW : integer := 2; -constant LRR_BIT : integer := TAG_HIGH + 1; +constant TAG_LOW : integer := IOFFSET_BITS + ILINE_BITS + 2; +constant OFFSET_HIGH: integer := TAG_LOW - 1; +constant OFFSET_LOW : integer := ILINE_BITS + 2; +constant LINE_HIGH : integer := OFFSET_LOW - 1; +constant LINE_LOW : integer := 2; +constant LRR_BIT : integer := TAG_HIGH + 1; +constant PCLOW : integer := 2; +constant ILINE_SIZE : integer := ilinesize; +constant ICLOCK_BIT : integer := isetlock; +constant ICREPLACE : integer range 0 to 3 := irepl; constant lline : std_logic_vector((ILINE_BITS -1) downto 0) := (others=>'1'); -constant fline : std_logic_vector((ILINE_BITS -1) downto 0) := (others=>'0'); -constant SETBITS : integer := log2x(ISETS); -constant ILRUBITS : integer := lru_table(ISETS); constant LRAM_START : std_logic_vector(7 downto 0) := conv_std_logic_vector(lramstart, 8); constant LRAM_BITS : integer := log2(lramsize) + 10; constant LRAMCS_EN : boolean := false; + +constant SETBITS : integer := log2x(ISETS); +constant ILRUBITS : integer := lru_table(ISETS); subtype lru_type is std_logic_vector(ILRUBITS-1 downto 0); type lru_array is array (0 to 2**IOFFSET_BITS-1) of lru_type; -- lru registers type rdatatype is (itag, idata, memory); -- sources during cache read type lru_table_vector_type is array(0 to 3) of std_logic_vector(4 downto 0); type lru_table_type is array (0 to 2**IOFFSET_BITS-1) of lru_table_vector_type; -type valid_type is array (0 to ISETS-1) of std_logic_vector(ilinesize - 1 downto 0); subtype lock_type is std_logic_vector(0 to ISETS-1); +type par_type is array (0 to ISETS-1) of std_logic_vector(1 downto 0); function lru_set (lru : lru_type; lock : lock_type) return std_logic_vector is variable xlru : std_logic_vector(4 downto 0); @@ -158,31 +160,27 @@ begin end; type istatetype is (idle, trans, streaming, stop); ---constant idle : std_logic_vector(1 downto 0) := "00"; ---constant trans : std_logic_vector(1 downto 0) := "01"; ---constant streaming : std_logic_vector(1 downto 0) := "10"; ---constant stop : std_logic_vector(1 downto 0) := "11"; - type icache_control_type is record -- all registers - req, burst, holdn : std_ulogic; - overrun : std_ulogic; -- - underrun : std_ulogic; -- --- istate : std_logic_vector(1 downto 0); -- FSM vector - istate : istatetype; -- FSM vector - waddress : std_logic_vector(31 downto 2); -- write address buffer - vaddress : std_logic_vector(31 downto 2); -- virtual address buffer - valid : valid_type; --std_logic_vector(ilinesize-1 downto 0); -- valid bits - hit : std_ulogic; - su : std_ulogic; - flush : std_ulogic; -- flush in progress - flush2 : std_ulogic; -- flush in progress + req, burst, holdn : std_logic; + overrun : std_logic; -- + underrun : std_logic; -- + istate : istatetype; -- FSM + waddress : std_logic_vector(31 downto PCLOW); -- write address buffer + vaddress : std_logic_vector(31 downto PCLOW); -- virtual address buffer + valid : std_logic_vector(ILINE_SIZE-1 downto 0); -- valid bits + hit : std_logic; + su : std_logic; + flush : std_logic; -- flush in progress + flush2 : std_logic; -- flush in progress + flush3 : std_logic; -- flush in progress faddr : std_logic_vector(IOFFSET_BITS - 1 downto 0); -- flush address - diagrdy : std_ulogic; + diagrdy : std_logic; rndcnt : std_logic_vector(log2x(ISETS)-1 downto 0); -- replace counter - lrr : std_ulogic; + lrr : std_logic; setrepl : std_logic_vector(log2x(ISETS)-1 downto 0); -- set to replace diagset : std_logic_vector(log2x(ISETS)-1 downto 0); - lock : std_ulogic; + lock : std_logic; + pflush : std_logic; pflushr : std_logic; pflushaddr : std_logic_vector(VA_I_U downto VA_I_D); @@ -192,7 +190,7 @@ type icache_control_type is record -- all registers end record; type lru_reg_type is record - write : std_ulogic; + write : std_logic; waddr : std_logic_vector(IOFFSET_BITS-1 downto 0); set : std_logic_vector(SETBITS-1 downto 0); --integer range 0 to ISETS-1; lru : lru_array; @@ -202,46 +200,45 @@ signal r, c : icache_control_type; -- r is registers, c is combinational signal rl, cl : lru_reg_type; -- rl is registers, cl is combinational constant icfg : std_logic_vector(31 downto 0) := - cache_cfg(irepl, isets, ilinesize, isetsize, isetlock, 0, lram, log2(lramsize), lramstart, mmuen); + cache_cfg(irepl, isets, ilinesize, isetsize, isetlock, 0, lram, lramsize, lramstart, mmuen); + begin ictrl : process(rst, r, rl, mcio, ici, dci, dco, icramo, fpuholdn, mmuico, mmudci) variable rdatasel : rdatatype; - variable twrite, diagen, dwrite : std_ulogic; + variable twrite, diagen, dwrite : std_logic; variable taddr : std_logic_vector(TAG_HIGH downto LINE_LOW); -- tag address variable wtag : std_logic_vector(TAG_HIGH downto TAG_LOW); -- write tag value variable ddatain : std_logic_vector(31 downto 0); variable rdata : cdatatype; variable diagdata : std_logic_vector(31 downto 0); - variable vmaskraw : std_logic_vector((ilinesize -1) downto 0); - variable vmask : valid_type; + variable vmaskraw, vmask : std_logic_vector((ILINE_SIZE -1) downto 0); variable xaddr_inc : std_logic_vector((ILINE_BITS -1) downto 0); - variable lastline, nlastline, nnlastline : std_ulogic; - variable enable : std_ulogic; - variable error : std_ulogic; - variable whit, hit, valid : std_ulogic; - variable cacheon : std_ulogic; + variable lastline, nlastline, nnlastline : std_logic; + variable enable : std_logic; + variable error : std_logic; + variable whit, hit, valid : std_logic; + variable cacheon : std_logic; variable v : icache_control_type; - variable branch : std_ulogic; - variable eholdn : std_ulogic; - variable mds, write : std_ulogic; - variable memaddr : std_logic_vector(31 downto 2); + variable branch : std_logic; + variable eholdn : std_logic; + variable mds, write : std_logic; + variable tparerr, dparerr : std_logic_vector(0 to ISETS-1); variable set : integer range 0 to MAXSETS-1; variable setrepl : std_logic_vector(log2x(ISETS)-1 downto 0); -- set to replace variable ctwrite, cdwrite, validv : std_logic_vector(0 to MAXSETS-1); - variable wlrr : std_ulogic; + variable wlrr : std_logic; variable vl : lru_reg_type; variable vdiagset, rdiagset : integer range 0 to ISETS-1; variable lock : std_logic_vector(0 to ISETS-1); - variable wlock : std_ulogic; + variable wlock, sidle : std_logic; variable tag : cdatatype; variable lramacc, ilramwr, lramcs : std_ulogic; - + variable pftag : std_logic_vector(31 downto 2); variable mmuici_trans_op : std_logic; variable mmuici_su : std_logic; - variable ctxp : std_ulogic; begin -- init local variables @@ -251,44 +248,46 @@ begin mds := '1'; dwrite := '0'; twrite := '0'; diagen := '0'; error := '0'; write := mcio.ready; v.diagrdy := '0'; v.holdn := '1'; + v.flush3 := r.flush2; sidle := '0'; - if icen /= 0 then - cacheon := dco.icdiag.cctrl.ics(0) and not (r.flush - ); - else cacheon := '0'; end if; + cacheon := dco.icdiag.cctrl.ics(0) and not r.flush; enable := '1'; branch := '0'; eholdn := dco.hold and fpuholdn; rdatasel := idata; -- read data from cache as default ddatain := mcio.data; -- load full word from memory - wtag(TAG_HIGH downto TAG_LOW) := r.vaddress(TAG_HIGH downto TAG_LOW); + --if M_EN and (mmudci.mmctrl1.e = '1') then wtag := r.vaddress(TAG_HIGH downto TAG_LOW); + --else wtag := r.waddress(TAG_HIGH downto TAG_LOW); end if; + wtag := r.vaddress(TAG_HIGH downto TAG_LOW); wlrr := r.lrr; wlock := r.lock; + tparerr := (others => '0'); dparerr := (others => '0'); + set := 0; ctwrite := (others => '0'); cdwrite := (others => '0'); vdiagset := 0; rdiagset := 0; lock := (others => '0'); ilramwr := '0'; - lramacc := '0'; lramcs := '0'; - vdiagset := 0; rdiagset := 0; lock := (others => '0'); - pftag := (others => '0'); + lramacc := '0'; lramcs := '0'; + pftag := (others => '0'); validv := (others => '0'); v.trans_op := r.trans_op and (not mmuico.grant); mmuici_trans_op := r.trans_op; - mmuici_su := ici.su; + + mmuici_su := ici.su; + -- random replacement counter if ISETS > 1 then if conv_integer(r.rndcnt) = (ISETS - 1) then v.rndcnt := (others => '0'); else v.rndcnt := r.rndcnt + 1; end if; end if; - + + --local ram access + if (lram = 1) and (ici.fpc(31 downto 24) = LRAM_START) then lramacc := '1'; end if; -- generate lock bits - if isetlock = 1 then + if ICLOCK_BIT = 1 then for i in 0 to ISETS-1 loop lock(i) := icramo.tag(i)(CTAG_LOCKPOS); end loop; end if; - - --local ram access - if (lram = 1) and (ici.fpc(31 downto 24) = LRAM_START) then lramacc := '1'; end if; - + -- generate cache hit and valid bits hit := '0'; if irepl = dir then @@ -303,13 +302,13 @@ begin if (icramo.tag(i)(TAG_HIGH downto TAG_LOW) = ici.fpc(TAG_HIGH downto TAG_LOW)) and ((icramo.ctx(i) = mmudci.mmctrl1.ctx) or (mmudci.mmctrl1.e = '0') or not M_EN) then hit := not r.flush; set := i; end if; - validv(i) := genmux(ici.fpc(LINE_HIGH downto LINE_LOW), + validv(i) := genmux(ici.fpc(LINE_HIGH downto LINE_LOW), icramo.tag(i)(ilinesize -1 downto 0)); end loop; end if; if (lramacc = '1') and (ISETS > 1) then set := 1; end if; - + if ici.fpc(LINE_HIGH downto LINE_LOW) = lline then lastline := '1'; else lastline := '0'; end if; @@ -322,33 +321,30 @@ begin else nnlastline := '0'; end if; valid := validv(set); + xaddr_inc := r.waddress(LINE_HIGH downto LINE_LOW) + 1; if mcio.ready = '1' then v.waddress(LINE_HIGH downto LINE_LOW) := xaddr_inc; end if; + xaddr_inc := r.vaddress(LINE_HIGH downto LINE_LOW) + 1; if mcio.ready = '1' then v.vaddress(LINE_HIGH downto LINE_LOW) := xaddr_inc; end if; + taddr := ici.rpc(TAG_HIGH downto LINE_LOW); - --- main state machine +-- main Icache state machine case r.istate is when idle => -- main state and cache hit - for i in 0 to ISETS-1 loop - v.valid(i) := icramo.tag(i)(ilinesize-1 downto 0); - end loop; - --v.hit := '0'; - v.hit := hit; - v.su := ici.su; - --- if (ici.inull or eholdn) = '0' then + v.valid := icramo.tag(set)(ilinesize-1 downto 0); + v.hit := hit; v.su := ici.su; sidle := '1'; + if eholdn = '0' then taddr := ici.fpc(TAG_HIGH downto LINE_LOW); else taddr := ici.rpc(TAG_HIGH downto LINE_LOW); end if; @@ -368,27 +364,28 @@ begin v.req := '1'; v.cache := '1'; end if; + else - if (ISETS > 1) and (irepl = lru) then vl.write := '1'; end if; + if (ISETS > 1) and (ICREPLACE = lru) then vl.write := '1'; end if; end if; - v.waddress := ici.fpc(31 downto 2); - v.vaddress := ici.fpc(31 downto 2); - + v.waddress := ici.fpc(31 downto PCLOW); + v.vaddress := ici.fpc(31 downto PCLOW); + end if; if dco.icdiag.enable = '1' then diagen := '1'; end if; ddatain := dci.maddress; if (ISETS > 1) then - if (irepl = lru) then + if (ICREPLACE = lru) then vl.set := conv_std_logic_vector(set, SETBITS); vl.waddr := ici.fpc(OFFSET_HIGH downto OFFSET_LOW); end if; v.setrepl := conv_std_logic_vector(set, SETBITS); - if (((not hit) and (not r.flush)) = '1') then - case irepl is + if (((not hit) and (not dparerr(set)) and (not r.flush)) = '1') then + case ICREPLACE is when rnd => - if isetlock = 1 then + if ICLOCK_BIT = 1 then if lock(conv_integer(r.rndcnt)) = '0' then v.setrepl := r.rndcnt; else v.setrepl := conv_std_logic_vector(ISETS-1, SETBITS); @@ -404,7 +401,7 @@ begin when dir => v.setrepl := ici.fpc(OFFSET_HIGH+SETBITS downto OFFSET_HIGH+1); when lru => - v.setrepl := lru_set(rl.lru(conv_integer(ici.fpc(OFFSET_HIGH downto OFFSET_LOW))), lock(0 to ISETS-1)); + v.setrepl := lru_set(rl.lru(conv_integer(ici.fpc(OFFSET_HIGH downto OFFSET_LOW))), lock(0 to ISETS-1)); when lrr => v.setrepl := (others => '0'); if isetlock = 1 then @@ -419,7 +416,7 @@ begin else v.lrr := icramo.tag(0)(CTAG_LRRPOS); end if; end case; end if; - if (isetlock = 1) then + if (ICLOCK_BIT = 1) then if (hit and lock(set)) = '1' then v.lock := '1'; else v.lock := '0'; end if; end if; @@ -434,12 +431,13 @@ begin v.holdn := '0'; v.istate := stop; v.burst := '0'; else v.cache := mmuico.transdata.cache; - v.waddress := mmuico.transdata.data(31 downto 2); + v.waddress := mmuico.transdata.data(31 downto PCLOW); v.istate := streaming; v.req := '1'; end if; - end if; - end if; - when streaming => -- streaming: update cache and send data to IU + end if; + end if; + + when streaming => -- streaming: update cache and send data to IU rdatasel := memory; taddr(TAG_HIGH downto LINE_LOW) := r.vaddress(TAG_HIGH downto LINE_LOW); branch := (ici.fbranch and r.overrun) or @@ -449,9 +447,7 @@ begin v.overrun := (r.overrun or (eholdn and not ici.inull)) and not (write or r.underrun); if mcio.ready = '1' then --- mds := not (v.overrun and not r.underrun); mds := not (r.overrun and not r.underrun); --- v.req := r.burst; v.burst := v.req and not (nnlastline and mcio.ready); end if; if mcio.grant = '1' then @@ -461,8 +457,8 @@ begin v.burst := v.req and not (nnlastline and mcio.ready); end if; v.underrun := (v.underrun or branch) and not v.overrun; - v.holdn := not (v.overrun or v.underrun); - if (mcio.ready = '1') and (r.req = '0') then --(v.burst = '0') then + v.holdn := not (v.overrun or v.underrun); + if (mcio.ready = '1') and (r.req = '0') then v.underrun := '0'; v.overrun := '0'; v.istate := stop; v.holdn := '0'; end if; @@ -482,40 +478,36 @@ begin end if; end if; - -- Generate new valid bits write strobe + if ISETS > 1 then setrepl := r.setrepl; else setrepl := (others => '0'); end if; + vmaskraw := decode(r.waddress(LINE_HIGH downto LINE_LOW)); twrite := write; if cacheon = '0' then - twrite := '0'; vmask := (others => (others => '0')); + twrite := '0'; vmask := (others => '0'); elsif (dco.icdiag.cctrl.ics = "01") then twrite := twrite and r.hit; - for i in 0 to ISETS-1 loop - vmask(i) := icramo.tag(i)(ilinesize-1 downto 0) or vmaskraw; - end loop; + vmask := icramo.tag(conv_integer(setrepl))(ilinesize-1 downto 0) or vmaskraw; else - for i in 0 to ISETS-1 loop - if r.hit = '1' then vmask(i) := r.valid(i) or vmaskraw; - else vmask(i) := vmaskraw; end if; - end loop; + if r.hit = '1' then vmask := r.valid or vmaskraw; + else vmask := vmaskraw; end if; end if; - if (mcio.mexc or not mcio.cache) = '1' then + if (mcio.mexc or (not mcio.cache) or (not r.cache)) = '1' then twrite := '0'; dwrite := '0'; else dwrite := twrite; end if; if twrite = '1' then v.valid := vmask; v.hit := '1'; - if (ISETS > 1) and (irepl = lru) then vl.write := '1'; end if; + if (ISETS > 1) and (ICREPLACE = lru) then vl.write := '1'; end if; end if; - if (ISETS > 1) and (irepl = lru) and (rl.write = '1') then + if (ISETS > 1) and (ICREPLACE = lru) and (rl.write = '1') then vl.lru(conv_integer(rl.waddr)) := lru_calc(rl.lru(conv_integer(rl.waddr)), conv_integer(rl.set)); end if; --- cache write signals - - if ISETS > 1 then setrepl := r.setrepl; else setrepl := (others => '0'); end if; +--- cache write signals + if twrite = '1' then ctwrite(conv_integer(setrepl)) := '1'; end if; if dwrite = '1' then cdwrite(conv_integer(setrepl)) := '1'; end if; @@ -530,20 +522,14 @@ begin end if; end if; end if; - - case ISETS is - when 1 => - vdiagset := 0; rdiagset := 0; - when 3 => - if conv_integer(v.diagset) < 3 then vdiagset := conv_integer(v.diagset); end if; - if conv_integer(r.diagset) < 3 then rdiagset := conv_integer(r.diagset); end if; - when others => - vdiagset := conv_integer(v.diagset); - rdiagset := conv_integer(r.diagset); - end case; - + + if (ISETS /= 1) then + rdiagset := conv_integer(r.diagset); + vdiagset := conv_integer(v.diagset); + end if; + diagdata := icramo.data(rdiagset); - if diagen = '1' then -- diagnostic or local ram access + if diagen = '1' then -- diagnostic access taddr(TAG_HIGH downto LINE_LOW) := dco.icdiag.addr(TAG_HIGH downto LINE_LOW); wtag(TAG_HIGH downto TAG_LOW) := dci.maddress(TAG_HIGH downto TAG_LOW); wlrr := dci.maddress(CTAG_LRRPOS); @@ -554,17 +540,19 @@ begin twrite := not dco.icdiag.read; dwrite := '0'; ctwrite := (others => '0'); cdwrite := (others => '0'); ctwrite(vdiagset) := not dco.icdiag.read; - diagdata := icramo.tag(rdiagset); + diagdata := icramo.tag(rdiagset); else dwrite := not dco.icdiag.read; twrite := '0'; cdwrite := (others => '0'); cdwrite(vdiagset) := not dco.icdiag.read; ctwrite := (others => '0'); end if; - vmask := (others => dci.maddress(ilinesize -1 downto 0)); + vmask := dci.maddress(ilinesize -1 downto 0); v.diagrdy := '1'; + if (dco.icdiag.ilramen = '1') and (lram = 1) and (r.flush2 = '1') then + v.diagrdy := '0'; + end if; end if; - -- select data to return on read access rdata := icramo.data; @@ -575,9 +563,7 @@ begin -- cache flush - if ((ici.flush or - dco.icdiag.flush) = '1') and (icen /= 0) - then + if (ici.flush or dco.icdiag.flush) = '1' then v.flush := '1'; v.flush2 := '1'; v.faddr := (others => '0'); v.pflush := dco.icdiag.pflush; wtag := (others => '0'); v.pflushr := '1'; @@ -585,15 +571,13 @@ begin v.pflushtyp := dco.icdiag.pflushtyp; end if; - if (r.flush2 = '1') and (icen /= 0) then - twrite := '1'; ctwrite := (others => '1'); vmask := (others => (others => '0')); - v.faddr := r.faddr + 1; - taddr(OFFSET_HIGH downto OFFSET_LOW) := r.faddr; - wlrr := '0'; wlock := '0'; wtag := (others => '0'); v.lrr := '0'; - if ((r.faddr(IOFFSET_BITS -1) and not v.faddr(IOFFSET_BITS -1)) - ) = '1' then + if r.flush2 = '1' then + twrite := '1'; ctwrite := (others => '1'); vmask := (others => '0'); v.faddr := r.faddr +1; + taddr(OFFSET_HIGH downto OFFSET_LOW) := r.faddr; wlrr := '0'; wlock := '0'; + if (r.faddr(IOFFSET_BITS -1) and not v.faddr(IOFFSET_BITS -1)) = '1' then v.flush2 := '0'; end if; + v.lrr := '0'; -- precise flush, ASI_FLUSH_PAGE & ASI_FLUSH_CTX if M_EN then @@ -615,20 +599,17 @@ begin end if; end if; - -- reset if rst = '0' then v.istate := idle; v.req := '0'; v.burst := '0'; v.holdn := '1'; v.flush := '0'; v.flush2 := '0'; v.overrun := '0'; v.underrun := '0'; v.rndcnt := (others => '0'); v.lrr := '0'; v.setrepl := (others => '0'); - v.diagset := (others => '0'); v.lock := '0'; - v.waddress := ici.fpc(31 downto 2); - v.vaddress := ici.fpc(31 downto 2); - v.trans_op := '0'; + v.diagset := (others => '0'); v.lock := '0'; v.trans_op := '0'; + v.flush3 := '1'; end if; - if (not rst or r.flush) = '1' then + if r.flush3 = '1' then vl.lru := (others => (others => '0')); end if; @@ -637,38 +618,40 @@ begin c <= v; -- register inputs cl <= vl; -- lru register inputs --- tag ram inputs + -- tag ram inputs enable := enable and not dco.icdiag.scanen; for i in 0 to ISETS-1 loop tag(i) := (others => '0'); - tag(i)(ilinesize-1 downto 0) := vmask(i); + tag(i)(ilinesize-1 downto 0) := vmask; tag(i)(TAG_HIGH downto TAG_LOW) := wtag; tag(i)(CTAG_LRRPOS) := wlrr; tag(i)(CTAG_LOCKPOS) := wlock; end loop; - icrami.tag <= tag; icrami.tenable <= enable; icrami.twrite <= ctwrite; icrami.flush <= r.flush2; icrami.ctx <= mmudci.mmctrl1.ctx; - + icrami.dpar <= (others => '0'); + icrami.tpar <= (others => (others => '0')); + -- data ram inputs - icrami.denable <= enable; + icrami.denable <= enable; icrami.address <= taddr(19+LINE_LOW downto LINE_LOW); icrami.data <= ddatain; - icrami.dwrite <= cdwrite; - + icrami.dwrite <= cdwrite; + -- local ram inputs - icrami.ldramin.enable <= (dco.icdiag.ilramen or lramcs or lramacc) and not dco.icdiag.scanen; + icrami.ldramin.enable <= (dco.icdiag.ilramen or lramcs or lramacc) and not dco.icdiag.scanen; icrami.ldramin.read <= dco.icdiag.ilramen or lramacc; icrami.ldramin.write <= ilramwr; + -- memory controller inputs mcii.address(31 downto 2) <= r.waddress(31 downto 2); mcii.address(1 downto 0) <= "00"; mcii.su <= r.su; - mcii.burst <= r.burst and r.req; + mcii.burst <= r.burst; mcii.req <= r.req; mcii.flush <= r.flush; @@ -679,11 +662,7 @@ begin mmuici.transdata.isid <= id_icache; mmuici.transdata.read <= '1'; mmuici.transdata.wb_data <= (others => '0'); - --- if (now >= 51350 ns) and (now < 51372 ns) then --- rdata(0)(11) := not rdata(0)(11); --- end if; - + -- IU data cache inputs ico.data <= rdata; ico.mexc <= mcio.mexc or error; @@ -694,9 +673,11 @@ begin ico.diagrdy <= r.diagrdy; ico.set <= conv_std_logic_vector(set, 2); ico.cfg <= icfg; - ico.cstat <= cstat_none; - if r.istate = idle then ico.idle <= '1'; else ico.idle <= '0'; end if; - + ico.idle <= sidle; + ico.cstat.chold <= not r.holdn; + ico.cstat.mhold <= '0'; + ico.cstat.tmiss <= mmuico.tlbmiss; + ico.cstat.cmiss <= '0'; end process; -- Local registers @@ -705,7 +686,7 @@ begin regs1 : process(clk) begin if rising_edge(clk) then r <= c; end if; end process; - regs2 : if (ISETS > 1) and (irepl = lru) generate + regs2gen : if (ISETS > 1) and (ICREPLACE = lru) generate regs2 : process(clk) begin if rising_edge(clk) then rl <= cl; end if; end process; end generate; @@ -718,7 +699,7 @@ begin -- pragma translate_off chk : process begin - assert not ((ISETS > 2) and (irepl = lrr)) report + assert not ((ISETS > 2) and (ICREPLACE = lrr)) report "Wrong instruction cache configuration detected: LRR replacement requires 2 sets" severity failure; wait; diff --git a/lib/gaisler/leon3v2/proc3.vhd b/lib/gaisler/leon3v1/proc3.vhd similarity index 84% rename from lib/gaisler/leon3v2/proc3.vhd rename to lib/gaisler/leon3v1/proc3.vhd index 29066a4e..e243f9a0 100644 --- a/lib/gaisler/leon3v2/proc3.vhd +++ b/lib/gaisler/leon3v1/proc3.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -37,8 +37,6 @@ use gaisler.leon3.all; use gaisler.libiu.all; use gaisler.libcache.all; use gaisler.arith.all; -use gaisler.libleon3.all; -use gaisler.libfpu.all; entity proc3 is generic ( @@ -85,9 +83,6 @@ entity proc3 is svt : integer range 0 to 1 := 0; -- single-vector trapping rstaddr : integer := 0; smp : integer range 0 to 15 := 0; -- support SMP systems - iuft : integer range 0 to 4 := 0; - fpft : integer range 0 to 4 := 0; - cft : integer range 0 to 1 := 0; cached : integer := 0; clk2x : integer := 0; scantest : integer := 0; @@ -143,10 +138,9 @@ begin -- integer unit - iu : iu3 + iu0 : iu3 generic map (nwindows, isets, dsets, fpu, v8, cp, mac, dsu, nwp, pclow, - notag, hindex, lddel, IRFWT, disas, tbuf, pwd, svt, rstaddr, smp, fabtech, - clk2x, bp) + notag, hindex, lddel, IRFWT, disas, tbuf, pwd, svt, rstaddr, smp, fabtech, clk2x, bp) port map (clk, rstn, holdnx, ici, ico, dci, dco, rfi, rfo, irqi, irqo, dbgi, dbgo, muli, mulo, divi, divo, fpo, fpi, cpo, cpi, tbo, tbi, sclk); @@ -157,7 +151,6 @@ begin port map (rstn, clk, holdnx, muli, mulo); div0 : div32 port map (rstn, clk, holdnx, divi, divo); end generate; - nomgen : if v8 = 0 generate divo <= ('0', '0', "0000", zero32); mulo <= ('0', '0', "0000", zero32&zero32); @@ -165,12 +158,23 @@ begin -- cache controller - c0mmu : mmu_cache - generic map (hindex, memtech, dsu, icen, irepl, isets, ilinesize, isetsize, - isetlock, dcen, drepl, dsets, dlinesize, dsetsize, dsetlock, - dsnoop, ilram, ilramsize, ilramstart, dlram, dlramsize, dlramstart, cft, - itlbnum, dtlbnum, tlb_type, tlb_rep, cached, iuft, clk2x, scantest, mmupgsz, smp, mmuen) - port map ( rstn, clk, ici, ico, dci, dco, ahbi, ahbo, ahbsi, ahbso, crami, cramo, pholdn, hclk, sclk, hclken); +-- m0 : if mmuen = 0 generate +-- c0 : cache +-- generic map (hindex, dsu, icen, irepl, isets, ilinesize, isetsize, +-- isetlock, dcen, drepl, dsets, dlinesize, dsetsize, dsetlock, dsnoop, +-- ilram, ilramsize, ilramstart, dlram, dlramsize, dlramstart, cached, +-- clk2x, memtech, scantest) +-- port map ( rstn, clk, ici, ico, dci, dco, ahbi, ahbo, ahbsi, ahbso, crami, cramo, pholdn, hclk, sclk, hclken); +-- end generate; +-- m1 : if mmuen = 1 generate + c0mmu : mmu_cache + generic map (hindex, memtech, dsu, icen, irepl, isets, ilinesize, + isetsize, isetlock, dcen, drepl, dsets, dlinesize, dsetsize, + dsetlock, dsnoop, ilram, ilramsize, ilramstart, dlram, dlramsize, + dlramstart, itlbnum, dtlbnum, tlb_type, tlb_rep, + cached, clk2x, scantest, mmupgsz, smp, mmuen) + port map ( rstn, clk, ici, ico, dci, dco, + ahbi, ahbo, ahbsi, ahbso, crami, cramo, pholdn, hclk, sclk, hclken); -- end generate; end; diff --git a/lib/gaisler/leon3v1/vhdlsyn.txt b/lib/gaisler/leon3v1/vhdlsyn.txt new file mode 100644 index 00000000..e7502143 --- /dev/null +++ b/lib/gaisler/leon3v1/vhdlsyn.txt @@ -0,0 +1,12 @@ +libproc3.vhd +cachemem.vhd +mmu_icache.vhd mmu_dcache.vhd mmu_acache.vhd +mmu_cache.vhd +iu3.vhd +grfpwx.vhd mfpwx.vhd grlfpwx.vhd +proc3.vhd +leon3s2x.vhd +leon3s.vhd +leon3cg.vhd +grfpwxsh.vhd +leon3sh.vhd diff --git a/lib/gaisler/leon3v2/grfpwx.vhd b/lib/gaisler/leon3v2/grfpwx.vhd deleted file mode 100644 index f24f0666..00000000 --- a/lib/gaisler/leon3v2/grfpwx.vhd +++ /dev/null @@ -1,237 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: grfpwx --- File: grfpwx.vhd --- Author: Edvin Catovic - Gaisler Research --- Description: GRFPU/GRFPC wrapper and FP register file ------------------------------------------------------------------------------- - -library IEEE; -use IEEE.std_logic_1164.all; -library techmap; -use techmap.gencomp.all; -library gaisler; -use gaisler.leon3.all; -use gaisler.libleon3.all; -use gaisler.libfpu.all; - -entity grfpwx is - generic (fabtech : integer := 0; - memtech : integer := 0; - mul : integer range 0 to 3 := 0; - pclow : integer range 0 to 2 := 2; - dsu : integer range 0 to 1 := 0; - disas : integer range 0 to 2 := 0; - rfft : integer range 0 to 4 := 0; - errinj : integer := 0; - index : integer := 0); - port ( - rst : in std_ulogic; -- Reset - clk : in std_ulogic; - holdn : in std_ulogic; -- pipeline hold - cpi : in fpc_in_type; - cpo : out fpc_out_type - ); -end; - -architecture rtl of grfpwx is - - component grfpw - generic (fabtech : integer := 0; - memtech : integer := 0; - mul : integer range 0 to 3 := 0; - pclow : integer range 0 to 2 := 2; - dsu : integer range 0 to 1 := 0; - disas : integer range 0 to 2 := 0; - rfft : integer range 0 to 4 := 0; - index : integer := 0 - ); - port ( - rst : in std_ulogic; -- Reset - clk : in std_ulogic; - holdn : in std_ulogic; -- pipeline hold - cpi_flush : in std_ulogic; -- pipeline flush - cpi_exack : in std_ulogic; -- FP exception acknowledge - cpi_a_rs1 : in std_logic_vector(4 downto 0); - cpi_d_pc : in std_logic_vector(31 downto 0); - cpi_d_inst : in std_logic_vector(31 downto 0); - cpi_d_cnt : in std_logic_vector(1 downto 0); - cpi_d_trap : in std_ulogic; - cpi_d_annul : in std_ulogic; - cpi_d_pv : in std_ulogic; - cpi_a_pc : in std_logic_vector(31 downto 0); - cpi_a_inst : in std_logic_vector(31 downto 0); - cpi_a_cnt : in std_logic_vector(1 downto 0); - cpi_a_trap : in std_ulogic; - cpi_a_annul : in std_ulogic; - cpi_a_pv : in std_ulogic; - cpi_e_pc : in std_logic_vector(31 downto 0); - cpi_e_inst : in std_logic_vector(31 downto 0); - cpi_e_cnt : in std_logic_vector(1 downto 0); - cpi_e_trap : in std_ulogic; - cpi_e_annul : in std_ulogic; - cpi_e_pv : in std_ulogic; - cpi_m_pc : in std_logic_vector(31 downto 0); - cpi_m_inst : in std_logic_vector(31 downto 0); - cpi_m_cnt : in std_logic_vector(1 downto 0); - cpi_m_trap : in std_ulogic; - cpi_m_annul : in std_ulogic; - cpi_m_pv : in std_ulogic; - cpi_x_pc : in std_logic_vector(31 downto 0); - cpi_x_inst : in std_logic_vector(31 downto 0); - cpi_x_cnt : in std_logic_vector(1 downto 0); - cpi_x_trap : in std_ulogic; - cpi_x_annul : in std_ulogic; - cpi_x_pv : in std_ulogic; - cpi_lddata : in std_logic_vector(31 downto 0); -- load data - cpi_dbg_enable : in std_ulogic; - cpi_dbg_write : in std_ulogic; - cpi_dbg_fsr : in std_ulogic; -- FSR access - cpi_dbg_addr : in std_logic_vector(4 downto 0); - cpi_dbg_data : in std_logic_vector(31 downto 0); - - cpo_data : out std_logic_vector(31 downto 0); -- store data - cpo_exc : out std_logic; -- FP exception - cpo_cc : out std_logic_vector(1 downto 0); -- FP condition codes - cpo_ccv : out std_ulogic; -- FP condition codes valid - cpo_ldlock : out std_logic; -- FP pipeline hold - cpo_holdn : out std_ulogic; - cpo_dbg_data : out std_logic_vector(31 downto 0); - - rfi1_rd1addr : out std_logic_vector(3 downto 0); - rfi1_rd2addr : out std_logic_vector(3 downto 0); - rfi1_wraddr : out std_logic_vector(3 downto 0); - rfi1_wrdata : out std_logic_vector(31 downto 0); - rfi1_ren1 : out std_ulogic; - rfi1_ren2 : out std_ulogic; - rfi1_wren : out std_ulogic; - - rfi2_rd1addr : out std_logic_vector(3 downto 0); - rfi2_rd2addr : out std_logic_vector(3 downto 0); - rfi2_wraddr : out std_logic_vector(3 downto 0); - rfi2_wrdata : out std_logic_vector(31 downto 0); - rfi2_ren1 : out std_ulogic; - rfi2_ren2 : out std_ulogic; - rfi2_wren : out std_ulogic; - - rfo1_data1 : in std_logic_vector(31 downto 0); - rfo1_data2 : in std_logic_vector(31 downto 0); - - rfo2_data1 : in std_logic_vector(31 downto 0); - rfo2_data2 : in std_logic_vector(31 downto 0) - ); - end component; - - signal rfi1, rfi2 : fp_rf_in_type; - signal rfo1, rfo2 : fp_rf_out_type; - - signal rf1rd1, rf1rd2, rf2rd1, rf2rd2, rf1wd, rf2wd : std_logic_vector(38 downto 0); - - -begin - - grfpw0 : grfpw generic map (fabtech, memtech, mul, pclow, dsu, disas, rfft, index) - port map ( - rst , - clk , - holdn , - cpi.flush , - cpi.exack , - cpi.a_rs1 , - cpi.d.pc , - cpi.d.inst , - cpi.d.cnt , - cpi.d.trap , - cpi.d.annul , - cpi.d.pv , - cpi.a.pc , - cpi.a.inst , - cpi.a.cnt , - cpi.a.trap , - cpi.a.annul , - cpi.a.pv , - cpi.e.pc , - cpi.e.inst , - cpi.e.cnt , - cpi.e.trap , - cpi.e.annul , - cpi.e.pv , - cpi.m.pc , - cpi.m.inst , - cpi.m.cnt , - cpi.m.trap , - cpi.m.annul , - cpi.m.pv , - cpi.x.pc , - cpi.x.inst , - cpi.x.cnt , - cpi.x.trap , - cpi.x.annul , - cpi.x.pv , - cpi.lddata , - cpi.dbg.enable , - cpi.dbg.write , - cpi.dbg.fsr , - cpi.dbg.addr , - cpi.dbg.data , - - cpo.data , - cpo.exc , - cpo.cc , - cpo.ccv , - cpo.ldlock , - cpo.holdn , - cpo.dbg.data , - - rfi1.rd1addr , - rfi1.rd2addr , - rfi1.wraddr , - rfi1.wrdata , - rfi1.ren1 , - rfi1.ren2 , - rfi1.wren , - - rfi2.rd1addr , - rfi2.rd2addr , - rfi2.wraddr , - rfi2.wrdata , - rfi2.ren1 , - rfi2.ren2 , - rfi2.wren , - - rfo1.data1 , - rfo1.data2 , - - rfo2.data1 , - rfo2.data2 - ); - - - rf1 : regfile_3p_l3 generic map (memtech, 4, 32, 1, 16, rfft, errinj) - port map (clk, rfi1.wraddr, rfi1.wrdata, rfi1.wren, clk, rfi1.rd1addr, - rfi1.ren1, rfo1.data1, rfi1.rd2addr, rfi1.ren2, rfo1.data2 - ); - - rf2 : regfile_3p_l3 generic map (memtech, 4, 32, 1, 16, rfft, errinj) - port map (clk, rfi2.wraddr, rfi2.wrdata, rfi2.wren, clk, rfi2.rd1addr, - rfi2.ren1, rfo2.data1, rfi2.rd2addr, rfi2.ren2, rfo2.data2 - ); - -end; diff --git a/lib/gaisler/leon3v2/libfpu.vhd b/lib/gaisler/leon3v2/libfpu.vhd deleted file mode 100644 index 9703bab5..00000000 --- a/lib/gaisler/leon3v2/libfpu.vhd +++ /dev/null @@ -1,121 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Package: libfpu --- File: libfpu.vhd --- Author: Jiri Gaisler, Gaisler Research --- Description: LEON3 FPU interface types and components ------------------------------------------------------------------------------- - - -library ieee; -use ieee.std_logic_1164.all; -library gaisler; -use gaisler.leon3.all; -library techmap; -use techmap.gencomp.all; - -package libfpu is - - type fp_rf_in_type is record - rd1addr : std_logic_vector(3 downto 0); -- read address 1 - rd2addr : std_logic_vector(3 downto 0); -- read address 2 - wraddr : std_logic_vector(3 downto 0); -- write address - wrdata : std_logic_vector(31 downto 0); -- write data - ren1 : std_ulogic; -- read 1 enable - ren2 : std_ulogic; -- read 2 enable - wren : std_ulogic; -- write enable - end record; - - type fp_rf_out_type is record - data1 : std_logic_vector(31 downto 0); -- read data 1 - data2 : std_logic_vector(31 downto 0); -- read data 2 - end record; - - type fpc_pipeline_control_type is record - pc : std_logic_vector(31 downto 0); - inst : std_logic_vector(31 downto 0); - cnt : std_logic_vector(1 downto 0); - trap : std_ulogic; - annul : std_ulogic; - pv : std_ulogic; - end record; - - type fpc_debug_in_type is record - enable : std_ulogic; - write : std_ulogic; - fsr : std_ulogic; -- FSR access - addr : std_logic_vector(4 downto 0); - data : std_logic_vector(31 downto 0); - end record; - - type fpc_debug_out_type is record - data : std_logic_vector(31 downto 0); - end record; - - constant fpc_debug_none : fpc_debug_out_type := (data => X"00000000" - ); - - - type fpc_in_type is record - flush : std_ulogic; -- pipeline flush - exack : std_ulogic; -- FP exception acknowledge - a_rs1 : std_logic_vector(4 downto 0); - d : fpc_pipeline_control_type; - a : fpc_pipeline_control_type; - e : fpc_pipeline_control_type; - m : fpc_pipeline_control_type; - x : fpc_pipeline_control_type; - lddata : std_logic_vector(31 downto 0); -- load data - dbg : fpc_debug_in_type; -- debug signals - end record; - - type fpc_out_type is record - data : std_logic_vector(31 downto 0); -- store data - exc : std_logic; -- FP exception - cc : std_logic_vector(1 downto 0); -- FP condition codes - ccv : std_ulogic; -- FP condition codes valid - ldlock : std_logic; -- FP pipeline hold - holdn : std_ulogic; - dbg : fpc_debug_out_type; -- FP debug signals - end record; - - constant fpc_out_none : fpc_out_type := (X"00000000", '0', "00", '1', '0', '1', - fpc_debug_none); - - component grfpwxsh - generic (tech : integer range 0 to NTECH := 0; - pclow : integer range 0 to 2 := 2; - dsu : integer range 0 to 1 := 0; - disas : integer range 0 to 2 := 0; - id : integer range 0 to 7 := 0; - rfft : integer range 0 to 4 := 0; - einj : integer := 0); - port ( - rst : in std_ulogic; -- Reset - clk : in std_ulogic; - holdn : in std_ulogic; -- pipeline hold - cpi : in fpc_in_type; - cpo : out fpc_out_type; - fpui : out grfpu_in_type; - fpuo : in grfpu_out_type - ); - end component; - -end; diff --git a/lib/gaisler/leon3v2/regfile_3p_l3.vhd b/lib/gaisler/leon3v2/regfile_3p_l3.vhd deleted file mode 100644 index 0fe1e534..00000000 --- a/lib/gaisler/leon3v2/regfile_3p_l3.vhd +++ /dev/null @@ -1,84 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: regfile_3p_l3 --- File: regfile_3p_l3.vhd --- Author: Jiri Gaisler, Edvin Catovic - Gaisler Research --- Description: 3-port regfile implemented with two 2-port rams ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -library techmap; -use techmap.gencomp.all; -use grlib.stdlib.all; - -entity regfile_3p_l3 is - generic (tech : integer := 0; abits : integer := 6; dbits : integer := 8; - wrfst : integer := 0; numregs : integer := 64; ft : integer := 0; - errinj : integer := 0; testen : integer := 0); - port ( - wclk : in std_ulogic; - waddr : in std_logic_vector((abits -1) downto 0); - wdata : in std_logic_vector((dbits -1) downto 0); - we : in std_ulogic; - rclk : in std_ulogic; - raddr1 : in std_logic_vector((abits -1) downto 0); - re1 : in std_ulogic; - rdata1 : out std_logic_vector((dbits -1) downto 0); - raddr2 : in std_logic_vector((abits -1) downto 0); - re2 : in std_ulogic; - rdata2 : out std_logic_vector((dbits -1) downto 0); - testin : in std_logic_vector(3 downto 0) := "0000"); -end; - -architecture rtl of regfile_3p_l3 is - -constant rfinfer : boolean := (regfile_3p_infer(tech) = 1); -signal wd1, wd2 : std_logic_vector((dbits -1 + 8) downto 0); -signal e1, e2 : std_logic_vector((dbits-1) downto 0); -signal we1, we2 : std_ulogic; - -signal vcc, gnd : std_ulogic; -signal vgnd : std_logic_vector(dbits-1 downto 0); -signal write2, renable2 : std_ulogic; ---constant AXOPT : boolean := (numregs = 136) and (tech = axcel); -constant AXOPT : boolean := false; - -begin - - vcc <= '1'; gnd <= '0'; vgnd <= (others => '0'); - we1 <= we - ; - we2 <= we - ; - - s0 : if rfinfer generate - inf : regfile_3p generic map (0, abits, dbits, wrfst, numregs) - port map ( wclk, waddr, wdata, we, rclk, raddr1, re1, rdata1, raddr2, re2, rdata2); - end generate; - - s1 : if not rfinfer generate - - rhu : regfile_3p generic map (tech, abits, dbits, wrfst, numregs, testen) - port map ( wclk, waddr, wdata, we, rclk, raddr1, re1, rdata1, raddr2, re2, rdata2); - end generate; -end; - diff --git a/lib/gaisler/leon3v2/vhdlsyn.txt b/lib/gaisler/leon3v2/vhdlsyn.txt deleted file mode 100644 index 5edb8736..00000000 --- a/lib/gaisler/leon3v2/vhdlsyn.txt +++ /dev/null @@ -1,23 +0,0 @@ -libfpu.vhd -libiu.vhd -libcache.vhd -libleon3.vhd -clk2xsync.vhd -clk2xqual.vhd -regfile_3p_l3.vhd -mmu_acache.vhd -mmu_icache.vhd -mmu_dcache.vhd -cachemem.vhd -mmu_cache.vhd -grfpwx.vhd -grlfpwx.vhd -mfpwx.vhd -iu3.vhd -proc3.vhd -leon3s.vhd -leon3ft.vhd -leon3ft2x.vhd -grfpwxsh.vhd -leon3ftsh.vhd - diff --git a/lib/gaisler/memctrl/memctrl.vhd b/lib/gaisler/memctrl/memctrl.vhd index 64f0c58c..60c5bdf8 100644 --- a/lib/gaisler/memctrl/memctrl.vhd +++ b/lib/gaisler/memctrl/memctrl.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -160,18 +160,20 @@ type zbtssram_out_type is record addr : std_logic_vector(22 downto 0); bwn : std_logic_vector(15 downto 0); data : std_logic_vector(127 downto 0); - dqoen : std_ulogic; + dqoen : std_logic_vector(127 downto 0); zz : std_ulogic; + shutdown : std_ulogic; end record; constant zbtssram_out_none : zbtssram_out_type := ( - '1','1','1','1',(others => '0'),(others => '1'),(others => '0'),'1','0'); + '1','1','1','1',(others => '0'),(others => '1'),(others => '0'),(others => '1'),'0','0'); type zbtssram_in_type is record data : std_logic_vector(127 downto 0); + mbe : std_logic_vector(7 downto 0); end record; -constant zbtssram_in_none : zbtssram_in_type := ( data => (others => '0') ); +constant zbtssram_in_none : zbtssram_in_type := ( data => (others => '0'), mbe => (others => '0') ); component sdctrl generic ( diff --git a/lib/gaisler/memctrl/sdctrl.vhd b/lib/gaisler/memctrl/sdctrl.vhd index 3d2b8f2d..e5d03cf7 100644 --- a/lib/gaisler/memctrl/sdctrl.vhd +++ b/lib/gaisler/memctrl/sdctrl.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -731,7 +731,6 @@ begin ahbso.hready <= r.hready; ahbso.hresp <= r.hresp; ahbso.hrdata <= ahbdrivedata(dout); - ahbso.hcache <= not r.hio; end process; diff --git a/lib/gaisler/memctrl/sdctrl64.vhd b/lib/gaisler/memctrl/sdctrl64.vhd index 5221f277..2806fc4b 100644 --- a/lib/gaisler/memctrl/sdctrl64.vhd +++ b/lib/gaisler/memctrl/sdctrl64.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -733,7 +733,6 @@ begin ahbso.hready <= r.hready; ahbso.hresp <= r.hresp; ahbso.hrdata <= ahbdrivedata(dout); - ahbso.hcache <= not r.hio; end process; diff --git a/lib/gaisler/memctrl/sdmctrl.vhd b/lib/gaisler/memctrl/sdmctrl.vhd index fc445e63..9fef8df9 100644 --- a/lib/gaisler/memctrl/sdmctrl.vhd +++ b/lib/gaisler/memctrl/sdmctrl.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/memctrl/srctrl.vhd b/lib/gaisler/memctrl/srctrl.vhd index 9e125fb9..b7c74b46 100644 --- a/lib/gaisler/memctrl/srctrl.vhd +++ b/lib/gaisler/memctrl/srctrl.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -406,7 +406,6 @@ begin ahbso.hresp <= r.hresp; ahbso.hrdata <= ahbdrivedata(hrdata); ahbso.hconfig <= hconfig; - ahbso.hcache <= '1'; ahbso.hirq <= (others => '0'); ahbso.hindex <= hindex; ahbso.hsplit <= (others => '0'); diff --git a/lib/gaisler/misc/ahb_mst_iface.vhd b/lib/gaisler/misc/ahb_mst_iface.vhd index ae0be479..ff0cca51 100644 --- a/lib/gaisler/misc/ahb_mst_iface.vhd +++ b/lib/gaisler/misc/ahb_mst_iface.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/misc/ahbdpram.vhd b/lib/gaisler/misc/ahbdpram.vhd index 6f6ed77b..ee47aee8 100644 --- a/lib/gaisler/misc/ahbdpram.vhd +++ b/lib/gaisler/misc/ahbdpram.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -120,7 +120,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/lib/gaisler/misc/ahbmst2.vhd b/lib/gaisler/misc/ahbmst2.vhd index 33a2f5ce..8feac5e4 100644 --- a/lib/gaisler/misc/ahbmst2.vhd +++ b/lib/gaisler/misc/ahbmst2.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/misc/ahbram.vhd b/lib/gaisler/misc/ahbram.vhd index 7974a7f4..116a9f58 100644 --- a/lib/gaisler/misc/ahbram.vhd +++ b/lib/gaisler/misc/ahbram.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -23,13 +23,6 @@ -- Modified: Jan Andersson - Aeroflex Gaisler -- Description: AHB ram. 0-waitstate read, 0/1-waitstate write. ------------------------------------------------------------------------------ --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_AHBRAM --- VERSION: 0 --- AHBSLAVE: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 1 CACHE: 1 DESC: RAM_AREA -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; @@ -76,6 +69,8 @@ type reg_type is record addr : std_logic_vector(abits-1+log2(dw/8) downto 0); size : std_logic_vector(2 downto 0); prdata : std_logic_vector((dw-1)*pipe downto 0); + pwrite : std_ulogic; + pready : std_ulogic; end record; signal r, c : reg_type; @@ -94,9 +89,17 @@ begin variable hrdata : std_logic_vector(dw-1 downto 0); variable seldata : std_logic_vector(dw-1 downto 0); variable raddr : std_logic_vector(3 downto 2); + variable adsel : std_logic; begin v := r; v.hready := '1'; bs := (others => '0'); - if (r.hwrite or not r.hready) = '1' then + v.pready := r.hready; + if pipe=0 then + adsel := r.hwrite or not r.hready; + else + adsel := r.hwrite or r.pwrite; + v.hready := r.hready or not r.pwrite; + end if; + if adsel = '1' then haddr := r.addr(abits-1+log2(dw/8) downto log2(dw/8)); else haddr := ahbsi.haddr(abits-1+log2(dw/8) downto log2(dw/8)); @@ -104,13 +107,20 @@ begin end if; raddr := (others => '0'); - if ahbsi.hready = '1' then + v.pwrite := '0'; + if pipe/=0 and (r.hready='1' or r.pwrite='0') then + v.addr := ahbsi.haddr(abits-1+log2(dw/8) downto 0); + end if; + if ahbsi.hready = '1' then + if pipe=0 then + v.addr := ahbsi.haddr(abits-1+log2(dw/8) downto 0); + end if; v.hsel := ahbsi.hsel(hindex) and ahbsi.htrans(1); - v.hwrite := ahbsi.hwrite and v.hsel; - v.addr := ahbsi.haddr(abits-1+log2(dw/8) downto 0); v.size := ahbsi.hsize(2 downto 0); - if pipe = 1 and v.hsel = '1' and ahbsi.hwrite = '0' then + v.hwrite := ahbsi.hwrite and v.hsel; + if pipe = 1 and v.hsel = '1' and ahbsi.hwrite = '0' and (r.pready='1' or ahbsi.htrans(0)='0') then v.hready := '0'; + v.pwrite := r.hwrite; end if; end if; @@ -221,7 +231,6 @@ begin ahbso.hresp <= "00"; ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; diff --git a/lib/gaisler/misc/ahbstat.vhd b/lib/gaisler/misc/ahbstat.vhd index 6ac7a5e3..1bd47207 100644 --- a/lib/gaisler/misc/ahbstat.vhd +++ b/lib/gaisler/misc/ahbstat.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -17,13 +17,7 @@ -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------- --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_AHBSTAT --- VERSION: 0 --- APB: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: IO_AREA -------------------------------------------------------------------------------- + library ieee; library grlib; diff --git a/lib/gaisler/misc/ahbtrace.vhd b/lib/gaisler/misc/ahbtrace.vhd index b5fa5b42..1f2a042a 100644 --- a/lib/gaisler/misc/ahbtrace.vhd +++ b/lib/gaisler/misc/ahbtrace.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/misc/ahbtrace_mb.vhd b/lib/gaisler/misc/ahbtrace_mb.vhd index 0a986a9c..1d85062f 100644 --- a/lib/gaisler/misc/ahbtrace_mb.vhd +++ b/lib/gaisler/misc/ahbtrace_mb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/misc/ahbtrace_mmb.vhd b/lib/gaisler/misc/ahbtrace_mmb.vhd index e6a42402..b9f42366 100644 --- a/lib/gaisler/misc/ahbtrace_mmb.vhd +++ b/lib/gaisler/misc/ahbtrace_mmb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -409,7 +409,6 @@ begin ahbso.hconfig <= hconfig; ahbso.hirq <= hirq; ahbso.hsplit <= (others => '0'); - ahbso.hcache <= '0'; ahbso.hrdata <= ahbdrivedata(r.hrdata); ahbso.hready <= r.hready; ahbso.hindex <= hindex; diff --git a/lib/gaisler/misc/apbps2.vhd b/lib/gaisler/misc/apbps2.vhd index 0f9e17a2..9aa085c7 100644 --- a/lib/gaisler/misc/apbps2.vhd +++ b/lib/gaisler/misc/apbps2.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -23,13 +23,6 @@ -- Modified by: Jan Andersson -- Description: PS/2 keyboard interface ----------------------------------------------------------------------------- --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_APBPS2 --- VERSION: 1 --- APB: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: IO_AREA -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; diff --git a/lib/gaisler/misc/apbvga.vhd b/lib/gaisler/misc/apbvga.vhd index 6af9125d..53230e64 100644 --- a/lib/gaisler/misc/apbvga.vhd +++ b/lib/gaisler/misc/apbvga.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -22,14 +22,6 @@ -- Author: Marcus Hellqvist -- Description: VGA controller ----------------------------------------------------------------------------- --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_VGACTRL --- VERSION: 0 --- AHBMASTER: 0 --- APB: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: IO_AREA -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; diff --git a/lib/gaisler/misc/charrom.vhd b/lib/gaisler/misc/charrom.vhd index 52b0d892..028b1ae7 100644 --- a/lib/gaisler/misc/charrom.vhd +++ b/lib/gaisler/misc/charrom.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/misc/charrom_package.vhd b/lib/gaisler/misc/charrom_package.vhd index 4d8a38e1..5d727957 100644 --- a/lib/gaisler/misc/charrom_package.vhd +++ b/lib/gaisler/misc/charrom_package.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/misc/gptimer.vhd b/lib/gaisler/misc/gptimer.vhd index 953d3773..231eb7de 100644 --- a/lib/gaisler/misc/gptimer.vhd +++ b/lib/gaisler/misc/gptimer.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -24,13 +24,6 @@ -- common prescaler. Then number of timers and the width of -- the timers is propgrammable through generics ------------------------------------------------------------------------------ --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_GPTIMER --- VERSION: 0 --- APB: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: IO_AREA -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; diff --git a/lib/gaisler/misc/gracectrl.vhd b/lib/gaisler/misc/gracectrl.vhd index 723429c6..e3533f2b 100644 --- a/lib/gaisler/misc/gracectrl.vhd +++ b/lib/gaisler/misc/gracectrl.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -290,7 +290,6 @@ begin -- rtl ahbso.hresp <= r.hresp; ahbso.hrdata <= ahbdrivedata(s.rdata); -- Bad, but does not toggle much ahbso.hconfig <= HCONFIG; - ahbso.hcache <= '0'; ahbso.hirq <= irq; ahbso.hindex <= hindex; ahbso.hsplit <= hsplit; diff --git a/lib/gaisler/misc/grgpio.vhd b/lib/gaisler/misc/grgpio.vhd index 28db6cd8..1033532f 100644 --- a/lib/gaisler/misc/grgpio.vhd +++ b/lib/gaisler/misc/grgpio.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -22,13 +22,6 @@ -- Author: Jiri Gaisler - Gaisler Research -- Description: Scalable general-purpose I/O port ------------------------------------------------------------------------------ --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_GPIO --- VERSION: 0 --- APB: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: IO_AREA -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; @@ -69,7 +62,7 @@ end; architecture rtl of grgpio is -constant REVISION : integer := 1; +constant REVISION : integer := 2; constant PIMASK : std_logic_vector(31 downto 0) := '0' & conv_std_logic_vector(imask, 31); constant BPMASK : std_logic_vector(31 downto 0) := conv_std_logic_vector(bypass, 32); @@ -160,7 +153,8 @@ begin r.bypass(nbits-1 downto 0) and BPMASK(nbits-1 downto 0); end if; when "0111" => - null; + readdata(12 downto 8) := conv_std_logic_vector(irqgen, 5); + readdata(4 downto 0) := conv_std_logic_vector(nbits-1, 5); when others => if irqgen > 1 then for i in 0 to (nbits+3)/4-1 loop @@ -296,7 +290,9 @@ begin apbo.prdata <= readdata; -- drive apb read bus apbo.pirq <= xirq; - if (syncrst = 1 ) and (rst = '0') then + if (scantest = 1) and (apbi.testen = '1') then + dir := (others => apbi.testoen); + elsif (syncrst = 1 ) and (rst = '0') then if oepol = 1 then dir := (others => '0'); else dir := (others => '1'); end if; end if; diff --git a/lib/gaisler/misc/grgprbank.vhd b/lib/gaisler/misc/grgprbank.vhd index 2d627cfc..ea620915 100644 --- a/lib/gaisler/misc/grgprbank.vhd +++ b/lib/gaisler/misc/grgprbank.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/misc/grgpreg.vhd b/lib/gaisler/misc/grgpreg.vhd index 71615b56..cc83efdc 100644 --- a/lib/gaisler/misc/grgpreg.vhd +++ b/lib/gaisler/misc/grgpreg.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/misc/grsysmon.vhd b/lib/gaisler/misc/grsysmon.vhd index c4fef0d4..baedfe1f 100644 --- a/lib/gaisler/misc/grsysmon.vhd +++ b/lib/gaisler/misc/grsysmon.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -430,7 +430,6 @@ begin -- rtl end if; ahbso.hrdata <= ahbdrivedata(hrdata); ahbso.hconfig <= HCONFIG; - ahbso.hcache <= '0'; ahbso.hirq <= irq; ahbso.hindex <= hindex; ahbso.hsplit <= hsplit; diff --git a/lib/gaisler/misc/logan.vhd b/lib/gaisler/misc/logan.vhd index 6ad5d865..b3eb2c5f 100644 --- a/lib/gaisler/misc/logan.vhd +++ b/lib/gaisler/misc/logan.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/misc/misc.vhd b/lib/gaisler/misc/misc.vhd index 43de3c52..67b68e98 100644 --- a/lib/gaisler/misc/misc.vhd +++ b/lib/gaisler/misc/misc.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -58,7 +58,7 @@ package misc is end record; type gptimer_in_vector is array (natural range <>) of gptimer_in_type; - + type gptimer_out_type is record tick : std_logic_vector(0 to 7); timer1 : std_logic_vector(31 downto 0); @@ -67,12 +67,12 @@ package misc is end record; type gptimer_out_vector is array (natural range <>) of gptimer_out_type; - + constant gptimer_in_none : gptimer_in_type := ('0', '0', '0'); constant gptimer_out_none : gptimer_out_type := ((others => '0'), (others => '0'), '1', '0'); - + component gptimer generic ( pindex : integer := 0; @@ -253,15 +253,15 @@ package misc is hsize: std_logic_vector(2 downto 0); hburst: std_logic_vector(2 downto 0); hprot: std_logic_vector(3 downto 0); - addr: std_logic_vector(32-1 downto 0); - burst_cont: std_logic; -- Set for all except the first request in a burst + addr: std_logic_vector(32-1 downto 0); + burst_cont: std_logic; -- Set for all except the first request in a burst burst_wrap: std_logic; -- High for the request where wrap occurs end record; constant ahbmst2_request_none: ahbmst2_request := ( req => '0', wr => '0', hsize => "010", hburst => "000", burst_cont => '0', burst_wrap => '0', addr => (others => '0'), hprot => "0011"); - + type ahbmst2_in_type is record request: ahbmst2_request; wrdata: std_logic_vector(AHBDW-1 downto 0); @@ -290,17 +290,17 @@ package misc is version: integer; dmastyle: integer range 1 to 3 := 3; syncrst: integer range 0 to 1 := 1 - ); + ); port ( clk: in std_logic; - rst: in std_logic; + rst: in std_logic; ahbi: in ahb_mst_in_type; ahbo: out ahb_mst_out_type; m2i: in ahbmst2_in_type; m2o: out ahbmst2_out_type ); - end component; - + end component; + type gpio_in_type is record din : std_logic_vector(31 downto 0); sig_in : std_logic_vector(31 downto 0); @@ -353,7 +353,7 @@ package misc is end record; constant ahb2ahb_ifctrl_none : ahb2ahb_ifctrl_type := ('1', '1'); - + component ahb2ahb generic( memtech : integer := 0; @@ -939,11 +939,11 @@ package misc is clrcount: std_logic; start : std_logic; end record; - + component memscrub is generic( hmindex : integer := 0; - hsindex : integer := 0; + hsindex : integer := 0; ioaddr : integer := 0; iomask : integer := 16#FFF#; hirq : integer := 0; @@ -966,7 +966,7 @@ package misc is type ahb_mst_iface_in_type is record req : std_ulogic; - write : std_ulogic; + write : std_ulogic; addr : std_logic_vector(31 downto 0); data : std_logic_vector(31 downto 0); size : std_logic_vector(1 downto 0); @@ -1012,7 +1012,8 @@ package misc is scantest : integer := 0; edges : integer := 0; noinv : integer := 0; -- Do not use inverted clock on gate enable - fpush : integer range 0 to 2 := 0); + fpush : integer range 0 to 2 := 0; + ungateen : integer := 0); port ( rst : in std_ulogic; clkin : in std_ulogic; @@ -1026,7 +1027,8 @@ package misc is clkcpu : out std_logic_vector(ncpu-1 downto 0); enable : out std_logic_vector(nclks-1 downto 0); clkfpu : out std_logic_vector((fpush/2)*(ncpu/2-1) downto 0); -- Only used with shared FPU - epwen : in std_logic_vector(nclks-1 downto 0)); + epwen : in std_logic_vector(nclks-1 downto 0); + ungate : in std_ulogic); end component; component grclkgate2x @@ -1043,7 +1045,8 @@ package misc is edges : integer := 0; noinv : integer := 0; -- Do not use inverted clock on gate enable fpush : integer range 0 to 2 := 0; - clk2xen : integer := 0 -- Enable double clocking + clk2xen : integer := 0; -- Enable double clocking + ungateen : integer := 0 ); port ( rst : in std_ulogic; @@ -1060,10 +1063,80 @@ package misc is clkcpu : out std_logic_vector(ncpu-1 downto 0); enable : out std_logic_vector(nclks-1 downto 0); clkfpu : out std_logic_vector((fpush/2)*(ncpu/2-1) downto 0); -- Only used with shared FPU - epwen : in std_logic_vector(nclks-1 downto 0) + epwen : in std_logic_vector(nclks-1 downto 0); + ungate : in std_ulogic ); end component; + ----------------------------------------------------------------------------- + -- GRPULSE + ----------------------------------------------------------------------------- + component grpulse + generic ( + pindex: Integer := 0; + paddr: Integer := 0; + pmask: Integer := 16#fff#; + pirq: Integer := 1; -- Interrupt index + nchannel: Integer := 24; -- Number of channels + npulse: Integer := 8; -- Channels with pulses + imask: Integer := 16#ff0000#; -- Interrupt mask + ioffset: Integer := 8; -- Interrupt offset + invertpulse: Integer := 0; -- Invert pulses + cntrwidth: Integer := 10; -- Width of counter + syncrst: Integer := 1; -- Only synchronous reset + oepol: Integer := 1); -- Output enable polarity + port ( + rstn: in Std_ULogic; + clk: in Std_ULogic; + apbi: in apb_slv_in_type; + apbo: out apb_slv_out_type; + gpioi: in gpio_in_type; + gpioo: out gpio_out_type); + end component; + + ----------------------------------------------------------------------------- + -- GRTIMER + ----------------------------------------------------------------------------- + component grtimer is + generic ( + pindex: Integer := 0; + paddr: Integer := 0; + pmask: Integer := 16#fff#; + pirq: Integer := 1; + sepirq: Integer := 1; -- separate interrupts + sbits: Integer := 10; -- scaler bits + ntimers: Integer range 1 to 7 := 2; -- number of timers + nbits: Integer := 32; -- timer bits + wdog: Integer := 0; + glatch: Integer := 0; + gextclk: Integer := 0; + gset: Integer := 0); + port ( + rst: in Std_ULogic; + clk: in Std_ULogic; + apbi: in apb_slv_in_type; + apbo: out apb_slv_out_type; + gpti: in gptimer_in_type; + gpto: out gptimer_out_type); + end component; + + ----------------------------------------------------------------------------- + -- GRVERSION + ----------------------------------------------------------------------------- + component grversion + generic ( + pindex: Integer := 0; + paddr: Integer := 0; + pmask: Integer := 16#fff#; + versionnr: Integer := 16#0123#; + revisionnr: Integer := 16#4567#); + port ( + rstn: in Std_ULogic; + clk: in Std_ULogic; + apbi: in APB_Slv_In_Type; + apbo: out APB_Slv_Out_Type); + end component; + ----------------------------------------------------------------------------- -- Function declarations ----------------------------------------------------------------------------- diff --git a/lib/gaisler/misc/rstgen.vhd b/lib/gaisler/misc/rstgen.vhd index 6c37ad4a..c03be117 100644 --- a/lib/gaisler/misc/rstgen.vhd +++ b/lib/gaisler/misc/rstgen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/misc/svgactrl.vhd b/lib/gaisler/misc/svgactrl.vhd index 281f6403..f6930f8d 100644 --- a/lib/gaisler/misc/svgactrl.vhd +++ b/lib/gaisler/misc/svgactrl.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -24,14 +24,6 @@ -- Contact: support@gaisler.com -- Description: SVGA Controller core ----------------------------------------------------------------------------- --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_SVGACTRL --- VERSION: 0 --- AHBMASTER: 0 --- APB: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: IO_AREA -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; diff --git a/lib/gaisler/misc/vhdlsyn.txt b/lib/gaisler/misc/vhdlsyn.txt index 0235e6d6..3943cfe0 100644 --- a/lib/gaisler/misc/vhdlsyn.txt +++ b/lib/gaisler/misc/vhdlsyn.txt @@ -24,8 +24,6 @@ grfifo.vhd gradcdac.vhd spictrlx.vhd spictrl.vhd -wild.vhd -wild2ahb.vhd grsysmon.vhd gracectrl.vhd grgpreg.vhd @@ -38,3 +36,6 @@ spi2ahb.vhd spi2ahb_apb.vhd grclkgate.vhd grclkgate2x.vhd +grtimer.vhd +grpulse.vhd +grversion.vhd diff --git a/lib/gaisler/misc/wild.vhd b/lib/gaisler/misc/wild.vhd deleted file mode 100644 index 0c299ef7..00000000 --- a/lib/gaisler/misc/wild.vhd +++ /dev/null @@ -1,124 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---============================================================================-- --- Design unit : WildCard Package (package declaration) --- --- File name : wild.vhd --- --- Purpose : WildCard Package --- --- Library : gaisler --- --- Authors : Aeroflex Gaisler AB --- --- Contact : mailto:support@gaisler.com --- http://www.gaisler.com --- --- Disclaimer : All information is provided "as is", there is no warranty that --- the information is correct or suitable for any purpose, --- neither implicit nor explicit. --------------------------------------------------------------------------------- --- Version Author Date Changes --- --- 0.1 SH 1 Jan 2008 New version --------------------------------------------------------------------------------- -library IEEE; -use IEEE.Std_Logic_1164.all; - -library IEEE; -use IEEE.Std_Logic_1164.all; - -library grlib; -use grlib.amba.all; - -package Wild is - ----------------------------------------------------------------------------- - -- Name Key: - -- ========= - -- _AS : Address Strobe - -- _DS : Data Strobe - -- _WR : Write Select - -- _CS : Chip Select - -- _OE : Output Enable - -- _n : Active low signals (must be last part of name) - -- - -- Name Width Dir* Description - -- ==================== ===== ==== ===================================== - -- Addr_Data 32 I Shared address/data bus input - -- AS_n 1 I Address strobe - -- DS_n 1 I Data strobe - -- WR_n 1 I Write select - -- CS_n 1 I PE chip select - -- Reg_n 1 I Register mode select - -- Ack_n 1 O Acknowledge strobe - -- Addr_Data 32 O Shared address/data bus output - -- Addr_Data_OE_n 1 O Address/data bus output enable - -- Int_Req_n 1 O Interrupt request - -- DMA_0_Data_OK_n 1 O DMA channel 0 data OK flag - -- DMA_0_Burst_OK_n 1 O DMA channel 0 burst OK flag - -- DMA_1_Data_OK_n 1 O DMA channel 1 data OK flag - -- DMA_1_Burst_OK_n 1 O DMA channel 1 burst OK flag - -- Reg_Data_OK_n 1 O Register space data OK flag - -- Reg_Burst_OK_n 1 O Register space burst OK flag - -- Force_K_Clk_n 1 O Forces K_Clk to run when active - ----------------------------------------------------------------------------- - type LAD_In_Type is record - Addr_Data: Std_Logic_Vector(31 downto 0); -- Shared address/data bus - AS_n: Std_Logic; -- Address strobe - DS_n: Std_Logic; -- Data strobe - WR_n: Std_Logic; -- Write select - CS_n: Std_Logic; -- Chip select - Reg_n: Std_Logic; -- Register select - end record; - - type LAD_Out_Type is record - Addr_Data: Std_Logic_Vector(31 downto 0); -- Shared address/data bus output - Addr_Data_OE_n: Std_Logic_Vector(31 downto 0); -- Address/data bus output enable - Ack_n: Std_Logic; -- Acknowledge strobe - Int_Req_n: Std_Logic; -- Interrupt request - DMA_0_Data_OK_n: Std_Logic; -- DMA chan 0 data OK flag - DMA_0_Burst_OK: Std_Logic; -- DMA chan 0 burst OK flag - DMA_1_Data_OK_n: Std_Logic; -- DMA chan 1 data OK flag - DMA_1_Burst_OK: Std_Logic; -- DMA chan 1 burst OK flag - Reg_Data_OK_n: Std_Logic; -- Reg space data OK flag - Reg_Burst_OK: Std_Logic; -- Reg space burst OK flag - Force_K_Clk_n: Std_Logic; -- K_Clk forced-run select - Reserved: Std_Logic; -- Reserved for future use - end record; - - component Wild2AHB is - generic ( - hindex: in Integer := 0; - burst: in Integer := 0; - syncrst: in Integer := 0); - port ( - rstkn: in Std_ULogic; - clkk: in Std_ULogic; - - rstfn: in Std_ULogic; - clkf: in Std_ULogic; - - ahbmi: in AHB_Mst_In_Type; - ahbmo: out AHB_Mst_Out_Type; - - ladi: in LAD_In_Type; - lado: out LAD_Out_Type); - end component; - -end package Wild; --==========================================================-- diff --git a/lib/gaisler/misc/wild2ahb.vhd b/lib/gaisler/misc/wild2ahb.vhd deleted file mode 100644 index a4eae17a..00000000 --- a/lib/gaisler/misc/wild2ahb.vhd +++ /dev/null @@ -1,586 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---============================================================================-- --- Design unit : WildCard CardBus to AMBA interface (entity and architecture) --- --- File name : wild2ahb.vhd --- --- Purpose : WildCard CardBus to AMBA interface --- --- Library : gaisler --- --- Authors : Aeroflex Gaisler AB --- --- Contact : mailto:support@gaisler.com --- http://www.gaisler.com --- --- Disclaimer : All information is provided "as is", there is no warranty that --- the information is correct or suitable for any purpose, --- neither implicit nor explicit. ---============================================================================-- - -library IEEE; -use IEEE.Std_Logic_1164.all; - -library grlib; -use grlib.amba.all; - -library gaisler; -use gaisler.wild.all; - -entity Wild2AHB is - generic ( - hindex: in Integer := 0; - burst: in Integer := 0; - syncrst: in Integer := 0); - port ( - rstkn: in Std_ULogic; - clkk: in Std_ULogic; - - rstfn: in Std_ULogic; - clkf: in Std_ULogic; - - ahbmi: in AHB_Mst_In_Type; - ahbmo: out AHB_Mst_Out_Type; - - ladi: in LAD_In_Type; - lado: out LAD_Out_Type); -end entity Wild2AHB; --=======================================================-- - -library IEEE; -use IEEE.Std_Logic_1164.all; - -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.stdlib.all; -use grlib.devices.all; -use grlib.dma2ahb_package.all; - -architecture RTL of Wild2AHB is - ----------------------------------------------------------------------------- - -- configuration constants - ----------------------------------------------------------------------------- - constant REVISION: Integer := 0; - - ----------------------------------------------------------------------------- - -- WildCard revision constants - ----------------------------------------------------------------------------- - constant PE_CORE_MAJOR_VERSION: Std_Logic_Vector(7 downto 0) := x"01"; - constant PE_CORE_MINOR_VERSION: Std_Logic_Vector(7 downto 0) := x"03"; - - constant PE_CORE_VERSION: Std_Logic_Vector(31 downto 0) := - x"0000" & PE_CORE_MAJOR_VERSION & PE_CORE_MINOR_VERSION; - - ----------------------------------------------------------------------------- - -- general - ----------------------------------------------------------------------------- - signal vcc, gnd: Std_Logic_Vector(7 downto 0); - - ----------------------------------------------------------------------------- - -- memory buffer type - ----------------------------------------------------------------------------- - constant bits: Integer := burst; - constant depth: Integer := 2**bits; - subtype memory_type is Std_Logic_Vector(31 downto 0); - type memory_array is array (0 to depth-1) of memory_type; - - ----------------------------------------------------------------------------- - -- registers - Main clock domain, X MHz, Clk_F - ----------------------------------------------------------------------------- - type register_type is record - -- ahb/dma handling - dmai: dma_in_type; - - -- ctrl - error: Std_ULogic; - ready: Std_ULogic; - ongoing: Std_ULogic; - - cntr: Integer range 0 to depth; - index: Integer range 0 to depth-1; - rarray: memory_array; - - -- sync - active_1st: Std_ULogic; - active_2nd: Std_ULogic; - active: Std_ULogic; - end record; - - signal r, rin: register_type; - - ----------------------------------------------------------------------------- - -- data types - PCI clock domain, 33 MHz, Clk_K - ----------------------------------------------------------------------------- - type ctrl_type is record - warray: memory_array; - wsize: Integer range 0 to depth; - - hsize: Std_Logic_Vector(1 downto 0); - - wdata: Std_Logic_Vector(31 downto 0); - waddr: Std_Logic_Vector(31 downto 0); - store: Std_ULogic; - - addr: Std_Logic_Vector(16 downto 0); - active: Std_ULogic; - fetch: Std_ULogic; - - error: Std_ULogic; - error_1st: Std_ULogic; - error_2nd: Std_ULogic; - - ready: Std_ULogic; - ready_1st: Std_ULogic; - ready_2nd: Std_ULogic; - end record; - - ----------------------------------------------------------------------------- - -- registers - PCI clock domain, 33 MHz, Clk_K - ----------------------------------------------------------------------------- - type register_lad_type is record - -- input - ladi: LAD_In_Type; - - -- lad access control - ctrl: ctrl_type; - end record; - - signal rk, rkin: register_lad_type; - - ----------------------------------------------------------------------------- - -- local unregistered signals - ----------------------------------------------------------------------------- - signal dmao: dma_out_type; -- dma output - signal dmai: dma_in_type; -- dma input - - ----------------------------------------------------------------------------- - -- Reserved space : 0x00008000 - 0x0000FFFC - -- User space : 0x00010000 - 0x0001FFFC - -- Version register : 0x00008000 - (decode bits 15 and 14 only) - ----------------------------------------------------------------------------- - constant cUser: Std_Logic_Vector(16 downto 15) := "10"; - constant cVersion: Std_Logic_Vector(16 downto 14) := "010"; - constant cReserved: Std_Logic_Vector(16 downto 14) := "011"; - - ----------------------------------------------------------------------------- - -- Register addresses: - ----------------------------------------------------------------------------- - constant cStat: Std_Logic_Vector(7 downto 0) := X"00"; - constant cCtrl: Std_Logic_Vector(7 downto 0) := X"04"; - constant cSize: Std_Logic_Vector(7 downto 0) := X"08"; - constant cVer: Std_Logic_Vector(7 downto 0) := X"0C"; - constant cRAddr: Std_Logic_Vector(7 downto 0) := X"10"; - constant cWAddr: Std_Logic_Vector(7 downto 0) := X"20"; - constant cRData: Std_Logic_Vector(9 downto 0) := "10" & X"00"; - constant cWData: Std_Logic_Vector(9 downto 0) := "11" & X"00"; - - -- 00 0000 00-- - -- 00 0000 01-- - -- 00 0000 10-- - -- 00 0000 11-- - -- 00 0001 ---- - -- 00 0010 ---- - -- 10 ---- ---- - -- 11 ---- ---- - - -- Read(Addr, Ptr) - -- -> transfer read address (command) - cRAddr - -- -> loop - -- -> check status - cStat - -- -> retreive read data - cRData - -- - -- WriteAddr(Addr, Ptr) - -- -> transfer write data - cWData - -- -> transfer write address (command) - cWAddr - -- -> loop - -- -> check status - cStat - - ----------------------------------------------------------------------------- - -- Status register: - ----------------------------------------------------------------------------- - -- Bit: Name: Mode: Remark: - ----------------------------------------------------------------------------- - -- 2 Error r/w AMBA error - -- 1 Active r Access on-going - -- 0 Ready r/w Access completed - ----------------------------------------------------------------------------- - - ----------------------------------------------------------------------------- - -- Data output - ----------------------------------------------------------------------------- - signal Addr_Data, iAddr_Data: Std_Logic_Vector(31 downto 0); - signal Addr_Data_OE_n, iAddr_Data_OE_n: Std_Logic_Vector(31 downto 0); - signal Addr_Data_In: Std_Logic_Vector(31 downto 0); - - attribute syn_preserve : Boolean; - attribute syn_preserve of Addr_Data : signal is True; - attribute syn_preserve of Addr_Data_OE_n : signal is True; - attribute syn_preserve of Addr_Data_In : signal is True; - -begin - - ----------------------------------------------------------------------------- - -- combinatorial logic - ----------------------------------------------------------------------------- - comb: process(rstfn, rstkn, r, rk, ladi, dmao, Addr_Data_In) - variable v: register_type; - variable vk: register_lad_type; - begin - -------------------------------------------------------------------------- - -- local variable copy of register signal - v := r; - vk := rk; - - -------------------------------------------------------------------------- - -- synchronization of external inputs - vk.ladi := ladi; - - -------------------------------------------------------------------------- - -- synchronization internally - v.active_1st := rk.ctrl.active; - v.active_2nd := r.active_1st; - if r.active_1st='1' and r.active_2nd='0' then - v.active := '1'; - end if; - if r.active_1st='0' and r.active_2nd='0' then - v.active := '0'; - end if; - - vk.ctrl.error_1st := r.error; - vk.ctrl.error_2nd := rk.ctrl.error_1st; - if rk.ctrl.error_1st='1' and rk.ctrl.error_2nd='0' then - vk.ctrl.error := '1'; - end if; - - vk.ctrl.ready_1st := r.ready; - vk.ctrl.ready_2nd := rk.ctrl.ready_1st; - if rk.ctrl.ready_1st='1' and not rk.ctrl.ready_2nd='0' then - vk.ctrl.ready := '1'; - end if; - - -------------------------------------------------------------------------- - -- lad interface - -------------------------------------------------------------------------- - -- address phase - if rk.ladi.AS_N='0' and rk.ladi.CS_N='0' then - if rk.ladi.Reg_N='0' then - -- register space - if rk.ladi.WR_N='0' then - -- write access - vk.ctrl.store := '1'; - else - -- read access - vk.ctrl.store := '0'; - end if; - else - -- no access - vk.ctrl.store := '0'; - end if; - vk.ctrl.addr := Addr_Data_In(16 downto 0); - end if; - - -- data phase - write access - if rk.ladi.DS_N='0' and rk.ladi.CS_N='0' then - if rk.ctrl.store='1' then - if rk.ctrl.addr(9 downto 8)=cWData(9 downto 8) and (burst = 0) then - vk.ctrl.wdata := Addr_Data_In; - elsif rk.ctrl.addr(9 downto 8)=cWData(9 downto 8) and (burst /= 0) then - vk.ctrl.warray(Conv_Integer(rk.ctrl.addr(bits+1 downto 2))):= Addr_Data_In; - elsif rk.ctrl.addr(7 downto 0)=cCtrl then - vk.ctrl.hsize := Addr_Data_In(1 downto 0); - elsif rk.ctrl.addr(7 downto 0)=cStat then - vk.ctrl.error := '0'; - vk.ctrl.ready := '0'; - elsif rk.ctrl.addr(7 downto 0)=cRAddr then - vk.ctrl.waddr := Addr_Data_In; - vk.ctrl.active := '1'; - vk.ctrl.fetch := '1'; - elsif rk.ctrl.addr(7 downto 0)=cWAddr then - vk.ctrl.waddr := Addr_Data_In; - vk.ctrl.active := '1'; - vk.ctrl.fetch := '0'; - elsif rk.ctrl.addr(7 downto 0)=cSize and (burst /= 0) then - vk.ctrl.wsize := Conv_Integer(Addr_Data_In); - end if; - end if; - end if; - - if rk.ladi.DS_N='0' and rk.ladi.CS_N='0' and (burst /= 0) then - if rk.ladi.Reg_N='0' then - -- register space - -- address increment - vk.ctrl.addr(bits+1 downto 2) := rk.ctrl.addr(bits+1 downto 2) + 1; - end if; - end if; - - -- data phase - read access - iAddr_Data <= (others => '0'); - if rk.ctrl.addr(16 downto 14)=cVersion then - iAddr_Data <= PE_CORE_VERSION; - elsif rk.ctrl.addr(9 downto 8)=cRData(9 downto 8) and (burst = 0) then - iAddr_Data <= dmao.Data; - elsif rk.ctrl.addr(9 downto 8)=cRData(9 downto 8) and (burst /= 0) then - iAddr_Data <= r.rarray(Conv_Integer(vk.ctrl.addr(bits+1 downto 2))); - elsif rk.ctrl.addr(7 downto 0)=cStat then - iAddr_Data(2) <= rk.ctrl.error; - iAddr_Data(1) <= rk.ctrl.active; - iAddr_Data(0) <= rk.ctrl.ready; - elsif rk.ctrl.addr(7 downto 0)=cVer then - iAddr_Data(11 downto 0) <= Conv_Std_Logic_Vector(depth, 8) & Conv_Std_Logic_Vector(REVISION, 4); - end if; - - if rk.ctrl.ready_1st='1' and not rk.ctrl.ready_2nd='0' then - vk.ctrl.active := '0'; - end if; - - -- combinatorial output enable control - if rk.ladi.CS_N='0' and rk.ladi.WR_N='1' then - iAddr_Data_OE_n <= (others => '0'); - else - iAddr_Data_OE_n <= (others => '1'); - end if; - - -------------------------------------------------------------------------- - -- dma interface - -------------------------------------------------------------------------- - if r.active='1' and r.ongoing='0' and r.ready='0' then - v.ongoing := '1'; - if (burst /= 0) then - if rk.ctrl.fetch='1' then - v.index := 0; - else - v.index := 1; - end if; - if (rk.ctrl.wsize > 0) then - v.cntr := rk.ctrl.wsize-1; - end if; - v.dmai.Data := rk.ctrl.warray(0); - end if; - if (burst /= 0) and (rk.ctrl.wsize > 1) then - v.dmai.Burst := '1'; - else - v.dmai.Burst := '0'; - end if; - if rk.ctrl.fetch='1' then - v.dmai.Store := '0'; - else - v.dmai.Store := '1'; - end if; - v.dmai.Request := '1'; - - elsif r.ongoing='1' then - if dmao.Grant = '1' then - if (burst /= 0) and r.cntr > 0 then - v.cntr := r.cntr - 1; - else - v.dmai.Request := '0'; - v.dmai.Burst := '0'; - end if; - end if; - - if rk.ctrl.fetch='1' then - if dmao.Ready='1' then - if (burst /= 0) then - v.rarray(r.index) := dmao.Data; - end if; - if (burst /= 0) and (r.index < rk.ctrl.wsize-1) and (rk.ctrl.wsize > 0) then - v.index := r.index + 1; - else - v.ready := '1'; - v.ongoing := '0'; - end if; - end if; - else - if dmao.OKAY='1' then - if (burst /= 0) then - v.dmai.Data := rk.ctrl.warray(r.index); - end if; - if (burst /= 0) and (r.index < rk.ctrl.wsize-1) and (rk.ctrl.wsize > 0) then - v.index := r.index + 1; - else - v.ready := '1'; - v.ongoing := '0'; - v.dmai.Store:= '0'; - end if; - end if; - end if; - if dmao.Fault='1' then - v.error := '1'; - v.ready := '1'; - v.ongoing := '0'; - v.dmai.Burst := '0'; - v.dmai.Store := '0'; - v.dmai.Request := '0'; - end if; - - elsif r.active='0' and r.ongoing='0' and (r.ready='1') then - v.ready := '0'; - else - v.dmai.Burst := '0'; - v.dmai.Request := '0'; - v.dmai.Store := '0'; - end if; - - - --======================================================================-- - -- Synchronous reset operation - -------------------------------------------------------------------------- - if rstfn = '0' then - v.dmai.Request := '0'; - v.dmai.Store := '0'; - v.dmai.lock := '0'; - - v.error := '0'; - v.ready := '0'; - v.ongoing := '0'; - if (burst /= 0) then - v.cntr := 0; - v.index := 0; - v.dmai.Burst := '0'; - end if; - - v.active_1st := '0'; - v.active_2nd := '0'; - v.active := '0'; - end if; - - if rstkn = '0' then - vk.ladi.WR_n := '1'; - vk.ladi.CS_n := '1'; - vk.ladi.AS_n := '1'; - vk.ladi.Reg_n := '1'; - - vk.ctrl.addr := (others => '0'); - vk.ctrl.store := '0'; - vk.ctrl.active := '0'; - vk.ctrl.fetch := '0'; - vk.ctrl.hsize := HSIZE32; - if (burst /= 0) then - vk.ctrl.wsize := 0; - end if; - - vk.ctrl.error := '0'; - vk.ctrl.error_1st := '0'; - vk.ctrl.error_2nd := '0'; - vk.ctrl.ready := '0'; - vk.ctrl.ready_1st := '0'; - vk.ctrl.ready_2nd := '0'; - - vk.ctrl.waddr := (others => '0'); - vk.ctrl.wdata := (others => '0'); - end if; - - -------------------------------------------------------------------------- - -- variable to signal assigment - rin <= v; - rkin <= vk; - end process comb; - - ----------------------------------------------------------------------------- - -- general - ----------------------------------------------------------------------------- - vcc <= (others => '1'); - gnd <= (others => '0'); - - ----------------------------------------------------------------------------- - -- output ports - non-registered signals - ----------------------------------------------------------------------------- - lado.Addr_Data <= Addr_Data; - lado.Addr_Data_OE_n <= Addr_Data_OE_n; - - ----------------------------------------------------------------------------- - -- output ports - fixed signals - ----------------------------------------------------------------------------- - lado.Ack_n <= vcc(0); - lado.Int_Req_n <= vcc(0); - lado.DMA_0_Data_OK_n <= vcc(0); - lado.DMA_0_Burst_OK <= gnd(0); - lado.DMA_1_Data_OK_n <= vcc(0); - lado.DMA_1_Burst_OK <= gnd(0); - lado.Reg_Data_OK_n <= gnd(0); - lado.Reg_Burst_OK <= vcc(0); - lado.Force_K_Clk_n <= gnd(0); - lado.Reserved <= gnd(0); - - ----------------------------------------------------------------------------- - -- registered signals - ----------------------------------------------------------------------------- - dmai.Reset <= '0'; - dmai.Request <= r.dmai.Request; - dmai.Burst <= r.dmai.Burst when (burst /= 0) else '0'; - dmai.Beat <= HINCR; - dmai.Store <= r.dmai.Store; - dmai.Data <= r.dmai.Data when (burst /= 0) else rk.ctrl.wdata; - dmai.Address <= rk.ctrl.waddr; - dmai.Size <= rk.ctrl.hsize; - - ----------------------------------------------------------------------------- - -- registers, Main clock domain, X MHz, Clk_F - ----------------------------------------------------------------------------- - regs: process(clkf, rstfn) - begin - if Rising_Edge(clkf) then - r <= rin; - end if; - end process regs; - - ----------------------------------------------------------------------------- - -- registers, PCI clock domain, 33 MHz, Clk_K - ----------------------------------------------------------------------------- - regs_falling: process(clkk, rstkn) - begin - if Falling_Edge(clkk) then - rk <= rkin; - end if; - end process regs_falling; - - -- explicit flip-flops for LAD data-address signals for placement in IOB - regs_explicit: process(clkk, rstkn) - begin - if rstkn='0' then - Addr_Data <= (others => '1'); - Addr_Data_OE_N <= (others => '1'); - Addr_Data_In <= (others => '1'); - elsif Falling_Edge(clkk) then - Addr_Data <= iAddr_Data; - Addr_Data_OE_N <= iAddr_Data_OE_N; - Addr_Data_In <= ladi.Addr_Data; - end if; - end process regs_explicit; - - --------------------------------------------------------------------------- - -- amba ahb master with dma - --------------------------------------------------------------------------- - dma2ahb_unit: dma2ahb - generic map( - hindex => hindex, - vendorid => vendor_gaisler, - deviceid => gaisler_wild2ahb, - version => REVISION, - syncrst => syncrst) - port map( - hclk => clkf, - hresetn => rstfn, - dmain => dmai, - dmaout => dmao, - ahbin => ahbmi, - ahbout => ahbmo); - -end architecture RTL; --======================================================-- diff --git a/lib/gaisler/net/net.vhd b/lib/gaisler/net/net.vhd index 29d059cf..6ab7726a 100644 --- a/lib/gaisler/net/net.vhd +++ b/lib/gaisler/net/net.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -115,7 +115,10 @@ package net is mdint_pol : integer range 0 to 1 := 0; enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1; + maxsize : integer := 1500 + ); port( rst : in std_ulogic; clk : in std_ulogic; @@ -161,7 +164,10 @@ package net is enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; edclsepahb : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1; + maxsize : integer := 1500 + ); port( rst : in std_ulogic; clk : in std_ulogic; @@ -208,7 +214,8 @@ package net is enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; edclsepahb : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1); port( rst : in std_ulogic; clk : in std_ulogic; @@ -253,7 +260,8 @@ package net is mdint_pol : integer range 0 to 1 := 0; enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1); port( rst : in std_ulogic; clk : in std_ulogic; @@ -300,7 +308,8 @@ package net is mdint_pol : integer range 0 to 1 := 0; enable_mdint : integer range 0 to 1 := 0; multicast : integer range 0 to 1 := 0; - ramdebug : integer range 0 to 2 := 0); + ramdebug : integer range 0 to 2 := 0; + mdiohold : integer := 1); port( rst : in std_ulogic; clk : in std_ulogic; @@ -313,4 +322,21 @@ package net is ); end component; + component rgmii is + generic ( + tech : integer := 0; + gmii : integer := 0; + extclk : integer := 0 + ); + port ( + rstn : in std_ulogic; + clk50 : in std_ulogic; + clk125 : in std_ulogic; + gmiii : out eth_in_type; + gmiio : in eth_out_type; + rgmiii : in eth_in_type; + rgmiio : out eth_out_type + ); + end component; + end; diff --git a/lib/gaisler/pci/dmactrl.vhd b/lib/gaisler/pci/dmactrl.vhd index 04fdff85..247d5b39 100644 --- a/lib/gaisler/pci/dmactrl.vhd +++ b/lib/gaisler/pci/dmactrl.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -482,7 +482,6 @@ begin ahbsi1.hirq <= (others => '0'); ahbsi1.hprot <= (others => '0'); ahbsi1.hmastlock <= '0'; - ahbsi1.hcache <= '0'; ahbsi1.testen <= '0'; ahbsi1.testrst <= '0'; ahbsi1.scanen <= '0'; diff --git a/lib/gaisler/pci/pci.vhd b/lib/gaisler/pci/pci.vhd index dcf2a271..2e0a6114 100644 --- a/lib/gaisler/pci/pci.vhd +++ b/lib/gaisler/pci/pci.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -245,7 +245,9 @@ component pcipads no66 : integer := 0; onchipreqgnt : integer := 0; drivereset : integer := 0; - constidsel : integer := 0 + constidsel : integer := 0; + level : integer := pci33; + voltage : integer := x33v ); port ( pci_rst : inout std_logic; @@ -446,6 +448,7 @@ end component; component grpci2 generic ( memtech : integer := DEFMEMTECH; + tbmemtech : integer := DEFMEMTECH; oepol : integer := 0; hmindex : integer := 0; hdmindex : integer := 0; diff --git a/lib/gaisler/pci/pci_mt.vhd b/lib/gaisler/pci/pci_mt.vhd index 8671b2d0..8c2a8cb1 100644 --- a/lib/gaisler/pci/pci_mt.vhd +++ b/lib/gaisler/pci/pci_mt.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pci_mtf.vhd b/lib/gaisler/pci/pci_mtf.vhd index 9eedf328..09aaf327 100644 --- a/lib/gaisler/pci/pci_mtf.vhd +++ b/lib/gaisler/pci/pci_mtf.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -1113,7 +1113,6 @@ begin end process; ahbso.hconfig <= hconfig when MASTER = 1 else (others => zero32); - ahbso.hcache <= '0'; apbo.pconfig <= pconfig; apbo.pindex <= pindex; ahbso.hsplit <= (others => '0'); diff --git a/lib/gaisler/pci/pci_target.vhd b/lib/gaisler/pci/pci_target.vhd index 80b60fca..b96cc745 100644 --- a/lib/gaisler/pci/pci_target.vhd +++ b/lib/gaisler/pci/pci_target.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pci_tbfunct.vhd b/lib/gaisler/pci/pci_tbfunct.vhd index e04ef62d..8620e2ea 100644 --- a/lib/gaisler/pci/pci_tbfunct.vhd +++ b/lib/gaisler/pci/pci_tbfunct.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pciahbmst.vhd b/lib/gaisler/pci/pciahbmst.vhd index 7c109557..066f1730 100644 --- a/lib/gaisler/pci/pciahbmst.vhd +++ b/lib/gaisler/pci/pciahbmst.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pcidma.vhd b/lib/gaisler/pci/pcidma.vhd index 47539ec7..ec32a226 100644 --- a/lib/gaisler/pci/pcidma.vhd +++ b/lib/gaisler/pci/pcidma.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pcilib.vhd b/lib/gaisler/pci/pcilib.vhd index 3653abda..4adcf3e2 100644 --- a/lib/gaisler/pci/pcilib.vhd +++ b/lib/gaisler/pci/pcilib.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pcipads.vhd b/lib/gaisler/pci/pcipads.vhd index c6507892..1de1005b 100644 --- a/lib/gaisler/pci/pcipads.vhd +++ b/lib/gaisler/pci/pcipads.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -42,7 +42,9 @@ entity pcipads is no66 : integer := 0; onchipreqgnt : integer := 0; -- Internal req and gnt signals drivereset : integer := 0; -- Drive PCI rst with outpad - constidsel : integer := 0 -- pci_idsel is tied to local constant + constidsel : integer := 0; -- pci_idsel is tied to local constant + level : integer := pci33; -- input/output level + voltage : integer := x33v -- input/output voltage ); port ( pci_rst : inout std_logic; @@ -79,11 +81,13 @@ begin -- Reset rstpad : if noreset = 0 generate nodrive: if drivereset = 0 generate - pci_rst_pad : iodpad generic map (tech => padtech, level => pci33, oepol => 0) + pci_rst_pad : iodpad generic map (tech => padtech, level => level, + voltage => voltage, oepol => 0) port map (pci_rst, pcio.rst, pcii.rst); end generate nodrive; drive: if drivereset /= 0 generate - pci_rst_pad : outpad generic map (tech => padtech, level => pci33) + pci_rst_pad : outpad generic map (tech => padtech, level => level, + voltage => voltage) port map (pci_rst, pcio.rst); pcii.rst <= pcio.rst; end generate drive; @@ -97,13 +101,14 @@ begin pci_req <= pcio.req when pcio.reqen = conv_std_logic(oepol=1) else '1'; end generate localgnt; extgnt: if onchipreqgnt = 0 generate - pad_pci_gnt : inpad generic map (padtech, pci33) port map (pci_gnt, pcii.gnt); - pad_pci_req : toutpad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_gnt : inpad generic map (padtech, level, voltage) port map (pci_gnt, pcii.gnt); + pad_pci_req : toutpad generic map (tech => padtech, level => level, + voltage => voltage, oepol => oepol) port map (pci_req, pcio.req, pcio.reqen); end generate extgnt; idsel_pad: if constidsel = 0 generate - pad_pci_idsel : inpad generic map (padtech, pci33) port map (pci_idsel, pcii.idsel); + pad_pci_idsel : inpad generic map (padtech, level, voltage) port map (pci_idsel, pcii.idsel); end generate idsel_pad; idsel_local: if constidsel /= 0 generate pcii.idsel <= pci_idsel; @@ -113,47 +118,49 @@ begin pcii.host <= '0'; -- Always host end generate; dohost : if host = 1 generate - pad_pci_host : inpad generic map (padtech, pci33) port map (pci_host, pcii.host); + pad_pci_host : inpad generic map (padtech, level, voltage) port map (pci_host, pcii.host); end generate; nohost : if host = 0 generate pcii.host <= '1'; -- disable pci host functionality end generate; do66 : if no66 = 0 generate - pad_pci_66 : inpad generic map (padtech, pci33) port map (pci_66, pcii.pci66); + pad_pci_66 : inpad generic map (padtech, level, voltage) port map (pci_66, pcii.pci66); end generate; dono66 : if no66 = 1 generate pcii.pci66 <= '0'; end generate; - pad_pci_lock : iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_lock : iopad generic map (tech => padtech, level => level, + voltage => voltage, oepol => oepol) port map (pci_lock, pcio.lock, pcio.locken, pcii.lock); - pad_pci_ad : iopadvv generic map (tech => padtech, level => pci33, width => 32, - oepol => oepol) + pad_pci_ad : iopadvv generic map (tech => padtech, level => level, + voltage => voltage, width => 32, + oepol => oepol) port map (pci_ad, pcio.ad, pcio.vaden, pcii.ad); - pad_pci_cbe0 : iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_cbe0 : iopad generic map (tech => padtech, level => level, voltage => voltage, oepol => oepol) port map (pci_cbe(0), pcio.cbe(0), pcio.cbeen(0), pcii.cbe(0)); - pad_pci_cbe1 : iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_cbe1 : iopad generic map (tech => padtech, level => level, voltage => voltage, oepol => oepol) port map (pci_cbe(1), pcio.cbe(1), pcio.cbeen(1), pcii.cbe(1)); - pad_pci_cbe2 : iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_cbe2 : iopad generic map (tech => padtech, level => level, voltage => voltage, oepol => oepol) port map (pci_cbe(2), pcio.cbe(2), pcio.cbeen(2), pcii.cbe(2)); - pad_pci_cbe3 : iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_cbe3 : iopad generic map (tech => padtech, level => level, voltage => voltage, oepol => oepol) port map (pci_cbe(3), pcio.cbe(3), pcio.cbeen(3), pcii.cbe(3)); - pad_pci_frame : iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_frame : iopad generic map (tech => padtech, level => level, voltage => voltage, oepol => oepol) port map (pci_frame, pcio.frame, pcio.frameen, pcii.frame); - pad_pci_trdy : iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_trdy : iopad generic map (tech => padtech, level => level, voltage => voltage, oepol => oepol) port map (pci_trdy, pcio.trdy, pcio.trdyen, pcii.trdy); - pad_pci_irdy : iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_irdy : iopad generic map (tech => padtech, level => level, voltage => voltage, oepol => oepol) port map (pci_irdy, pcio.irdy, pcio.irdyen, pcii.irdy); - pad_pci_devsel: iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_devsel: iopad generic map (tech => padtech, level => level, voltage => voltage, oepol => oepol) port map (pci_devsel, pcio.devsel, pcio.devselen, pcii.devsel); - pad_pci_stop : iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_stop : iopad generic map (tech => padtech, level => level, voltage => voltage, oepol => oepol) port map (pci_stop, pcio.stop, pcio.stopen, pcii.stop); - pad_pci_perr : iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_perr : iopad generic map (tech => padtech, level => level, voltage => voltage, oepol => oepol) port map (pci_perr, pcio.perr, pcio.perren, pcii.perr); - pad_pci_par : iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_par : iopad generic map (tech => padtech, level => level, voltage => voltage, oepol => oepol) port map (pci_par, pcio.par, pcio.paren, pcii.par); - pad_pci_serr : iopad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_serr : iopad generic map (tech => padtech, level => level, voltage => voltage, oepol => oepol) port map (pci_serr, pcio.serr, pcio.serren, pcii.serr); -- PCI interrupt pads @@ -183,23 +190,26 @@ begin interrupt : if int /= 0 generate x : for i in 0 to 3 generate xo : if i = int - 1 and int < 10 generate - pad_pci_int : odpad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_int : odpad generic map (tech => padtech, level => level, + voltage => voltage, oepol => oepol) port map (pci_int(i), pcio.inten); end generate; xonon : if i /= int - 1 and int < 10 and int < 100 generate pci_int(i) <= '1'; end generate; xio : if i = (int - 10) and int >= 10 and int < 100 generate - pad_pci_int : iodpad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_int : iodpad generic map (tech => padtech, level => level, + voltage => voltage, oepol => oepol) port map (pci_int(i), pcio.inten, pcii.int(i)); end generate; xi : if i /= (int - 10) and int >= 10 and int < 100 generate - pad_pci_int : inpad generic map (tech => padtech, level => pci33) + pad_pci_int : inpad generic map (tech => padtech, level => level, voltage => voltage) port map (pci_int(i), pcii.int(i)); end generate; x2o : if i <= (int - 100) and int < 110 and int >= 100 generate - pad_pci_int : odpad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_int : odpad generic map (tech => padtech, level => level, + voltage => voltage, oepol => oepol) port map (pci_int(i), pcio.vinten(i)); end generate; x2onon : if i > (int - 100) and int < 110 and int >= 100 generate @@ -207,11 +217,12 @@ begin end generate; x2oi : if i <= (int - 110) and int >= 110 generate - pad_pci_int : iodpad generic map (tech => padtech, level => pci33, oepol => oepol) + pad_pci_int : iodpad generic map (tech => padtech, level => level, + voltage => voltage, oepol => oepol) port map (pci_int(i), pcio.vinten(i), pcii.int(i)); end generate; x2i : if i > (int - 110) and int >= 110 generate - pad_pci_int : inpad generic map (tech => padtech, level => pci33) + pad_pci_int : inpad generic map (tech => padtech, level => level, voltage => voltage) port map (pci_int(i), pcii.int(i)); end generate; diff --git a/lib/gaisler/pci/pcitb.vhd b/lib/gaisler/pci/pcitb.vhd index ac09365d..d85e6d48 100644 --- a/lib/gaisler/pci/pcitb.vhd +++ b/lib/gaisler/pci/pcitb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pcitb_arb.vhd b/lib/gaisler/pci/pcitb_arb.vhd index 87b35138..e642d489 100644 --- a/lib/gaisler/pci/pcitb_arb.vhd +++ b/lib/gaisler/pci/pcitb_arb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pcitb_clkgen.vhd b/lib/gaisler/pci/pcitb_clkgen.vhd index c4e4009a..3f564756 100644 --- a/lib/gaisler/pci/pcitb_clkgen.vhd +++ b/lib/gaisler/pci/pcitb_clkgen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pcitb_master.vhd b/lib/gaisler/pci/pcitb_master.vhd index 6ba59c4b..e2b36726 100644 --- a/lib/gaisler/pci/pcitb_master.vhd +++ b/lib/gaisler/pci/pcitb_master.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pcitb_master_script.vhd b/lib/gaisler/pci/pcitb_master_script.vhd index 8244fc59..ea26b686 100644 --- a/lib/gaisler/pci/pcitb_master_script.vhd +++ b/lib/gaisler/pci/pcitb_master_script.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pcitb_monitor.vhd b/lib/gaisler/pci/pcitb_monitor.vhd index 5c35aee1..b25a8cb9 100644 --- a/lib/gaisler/pci/pcitb_monitor.vhd +++ b/lib/gaisler/pci/pcitb_monitor.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pcitb_target.vhd b/lib/gaisler/pci/pcitb_target.vhd index 81d8712e..b28b9b58 100644 --- a/lib/gaisler/pci/pcitb_target.vhd +++ b/lib/gaisler/pci/pcitb_target.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pcitrace.vhd b/lib/gaisler/pci/pcitrace.vhd index 07a1ddd3..7b1f3328 100644 --- a/lib/gaisler/pci/pcitrace.vhd +++ b/lib/gaisler/pci/pcitrace.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pt/pt_pci_arb.vhd b/lib/gaisler/pci/pt/pt_pci_arb.vhd index 9468ebf4..0470b6c2 100644 --- a/lib/gaisler/pci/pt/pt_pci_arb.vhd +++ b/lib/gaisler/pci/pt/pt_pci_arb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pt/pt_pci_master.vhd b/lib/gaisler/pci/pt/pt_pci_master.vhd index 22e60e2a..0cf9110d 100644 --- a/lib/gaisler/pci/pt/pt_pci_master.vhd +++ b/lib/gaisler/pci/pt/pt_pci_master.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pt/pt_pci_monitor.vhd b/lib/gaisler/pci/pt/pt_pci_monitor.vhd index 14dfa9ed..4aa32c79 100644 --- a/lib/gaisler/pci/pt/pt_pci_monitor.vhd +++ b/lib/gaisler/pci/pt/pt_pci_monitor.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pt/pt_pci_target.vhd b/lib/gaisler/pci/pt/pt_pci_target.vhd index 4f7b8493..442a325f 100644 --- a/lib/gaisler/pci/pt/pt_pci_target.vhd +++ b/lib/gaisler/pci/pt/pt_pci_target.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/pt/pt_pkg.vhd b/lib/gaisler/pci/pt/pt_pkg.vhd index d126c8f8..1a2764cb 100644 --- a/lib/gaisler/pci/pt/pt_pkg.vhd +++ b/lib/gaisler/pci/pt/pt_pkg.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/pci/vhdlsyn.txt b/lib/gaisler/pci/vhdlsyn.txt index ea60643b..fe174923 100644 --- a/lib/gaisler/pci/vhdlsyn.txt +++ b/lib/gaisler/pci/vhdlsyn.txt @@ -13,3 +13,4 @@ grpci2/grpci2_ahb_mst.vhd grpci2/grpci2_phy.vhd grpci2/grpci2_phy_wrapper.vhd grpci2/grpci2.vhd +grpci2/wrapper/grpci2_gen.vhd diff --git a/lib/gaisler/sim/ahbrep.vhd b/lib/gaisler/sim/ahbrep.vhd index 732a69b1..872153ea 100644 --- a/lib/gaisler/sim/ahbrep.vhd +++ b/lib/gaisler/sim/ahbrep.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -80,7 +80,6 @@ begin ahbso.hsplit <= (others => '0'); ahbso.hirq <= (others => '0'); ahbso.hrdata <= (others => '0'); - ahbso.hcache <= '1'; ahbso.hconfig <= hconfig; ahbso.hindex <= hindex; ahbso.hready <= '1'; diff --git a/lib/gaisler/sim/ata_device.vhd b/lib/gaisler/sim/ata_device.vhd deleted file mode 100644 index ee7e0267..00000000 --- a/lib/gaisler/sim/ata_device.vhd +++ /dev/null @@ -1,391 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: ata_device --- File: ata_device.vhd --- Author: Erik Jagres, Gaisler Research --- Description: Simulation of ATA device ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.stdlib.all; -library gaisler; -use gaisler.sim.all; - ---************************ENTITY************************************************ - -Entity ata_device is -generic(sector_length: integer :=512; --in bytes - disk_size: integer :=32; --in sectors - log2_size : integer :=14; --Log2(sector_length*disk_size), abits - Tlr : time := 35 ns; - sramfile : string := "disk.srec" - ); -port( - --for convinience, not part of ATA interface - clk : in std_logic; - rst : in std_logic; - - --interface to host bus adapter - d : inout std_logic_vector(15 downto 0) := (others=>'Z'); - atai : in ata_in_type := ATAI_RESET_VECTOR; - atao : out ata_out_type:= ATAO_RESET_VECTOR); -end; - ---************************ARCHITECTURE****************************************** -Architecture behaveioral of ata_device is - -type mem_reg_type is record - a : std_logic_vector(9 downto 0); --word adress - d : std_logic_vector(15 downto 0); --data - lb : std_logic; --low byte access (active low) - ub : std_logic; --upper byte access (active low) - ce : std_logic; --chip enable (active low) - we : std_logic; --write enable (active low) - oe : std_logic; --output enable (active low) -end record; - -constant MEM_RESET_VECTOR : mem_reg_type := ((others=>'0'), - (others=>'0'),'1','1','1','1','1'); - -constant CS1 : integer := 4; -constant CS0 : integer := 3; - ---status bits -constant BSY : integer := 7; -constant DRQ : integer := 3; - ---control bits -constant NIEN : integer := 1; - ---commands -constant READ : std_logic_vector(7 downto 0):=X"20"; -constant WRITE : std_logic_vector(7 downto 0):=X"30"; -constant WRITE_DMA : std_logic_vector(7 downto 0):=X"CA"; -constant READ_DMA : std_logic_vector(7 downto 0):=X"C8"; - -constant ALTSTAT : std_logic_vector(4 downto 0):="10110"; -constant CMD : std_logic_vector(4 downto 0):="01111"; -constant CHR : std_logic_vector(4 downto 0):="01101"; -constant CLR : std_logic_vector(4 downto 0):="01100"; -constant DTAR : std_logic_vector(4 downto 0):="01000"; -constant DTAP : std_logic_vector(4 downto 0):="00000"; --only CSx used -constant CTRL : std_logic_vector(4 downto 0):="10110"; -constant DHR : std_logic_vector(4 downto 0):="01110"; -constant ERR : std_logic_vector(4 downto 0):="01001"; --read only -constant FEAT : std_logic_vector(4 downto 0):=ERR; --write only -constant SCR : std_logic_vector(4 downto 0):="01010"; -constant SNR : std_logic_vector(4 downto 0):="01011"; -constant STAT : std_logic_vector(4 downto 0):="01111"; - ---constant sramfile : string := "disk.srec"; -- ram contents -constant w_adr: integer := log2(sector_length)-1; --word adress bits (within sector) - -type ram_type is record - a : std_logic_vector(log2_size-2 downto 0); - ce : std_logic; - we : std_ulogic; - oe : std_ulogic; -end record; - -constant RAM_RESET_VECTOR : ram_type := ((others=>'0'),'0','0','0'); - -type ata_reg_type is record --ATA task file - altstat : std_logic_vector(7 downto 0); --Alternate Status register - cmd : std_logic_vector(7 downto 0); --Command register - chr : std_logic_vector(7 downto 0); --Cylinder High register - clr : std_logic_vector(7 downto 0); --Cylinder Low register - dtar : std_logic_vector(15 downto 0); --Data register - dtap : std_logic_vector(15 downto 0); --Data port - ctrl : std_logic_vector(7 downto 0); --Device Control register - dhr : std_logic_vector(7 downto 0); --Device/Head register - err : std_logic_vector(7 downto 0); --Error register - feat : std_logic_vector(7 downto 0); --Features register - scr : std_logic_vector(7 downto 0); --Sector Count register - snr : std_logic_vector(7 downto 0); --Sector Number register - stat : std_logic_vector(7 downto 0); --Status register -end record; - -constant ATA_RESET_VECTOR : ata_reg_type := ((others=>'0'), - (others=>'0'),(others=>'0'), - (others=>'0'),(others=>'0'), - (others=>'0'),(others=>'0'), - (others=>'0'),(others=>'0'), - (others=>'0'),(others=>'0'), - (others=>'0'),(others=>'0')); - -type reg_type is record - cmd_started : boolean; - dtap_written : boolean; - dtar_written : boolean; - dtap_read : boolean; - dtar_read : boolean; - firstadr : boolean; - dior : std_logic; - diow : std_logic; - regadr : std_logic_vector(4 downto 0); - byte_cnt : integer; - offset : integer; - intrq : boolean; - pio_started : boolean; - tf : ata_reg_type; - ram : ram_type; - ram_dta : std_logic_vector(15 downto 0); - scr : std_logic_vector(7 downto 0); -end record; - -constant REG_RESET_VECTOR : reg_type := (false,false,false,false,false,true, - '1','1',(others=>'0'),0,0,false,false,ATA_RESET_VECTOR,RAM_RESET_VECTOR, - (others=>'0'),(others=>'0')); - -signal r,ri : reg_type := REG_RESET_VECTOR; -signal s_d : std_logic_vector(15 downto 0) := (others=>'0'); - -begin - comb: process(atai,r,s_d,rst) - variable v : reg_type:= REG_RESET_VECTOR; - begin - if (rst='0') then - v:=REG_RESET_VECTOR; - d<=(others=>'Z'); - atao.intrq<='0'; - atao.dmarq<='0'; - else - v:=r; - - v.dior:=atai.dior; v.diow:=atai.diow; - - v.regadr(CS1):=not(atai.cs(1)); v.regadr(CS0):=not(atai.cs(0)); --CS active l - v.regadr(2 downto 0):=atai.da(2 downto 0); - - --fix for adressing dtap - if (v.regadr(4 downto 3)="00") then - v.regadr(2 downto 0):="000"; - end if; - - --*********************************READ/WRITE registers***************** - if (atai.dior='1' and atai.diow='1' and r.diow='0') then --write register - case v.regadr is - when CMD => v.tf.cmd:=d(7 downto 0); - v.cmd_started:=true; - v.tf.stat(BSY):='1'; - v.tf.feat:="00001111"; - v.byte_cnt:=0; - atao.dmarq<='0'; -----------------------------------erik 2006-10-17 - when CHR => v.tf.chr:=d(7 downto 0); - when CLR => v.tf.clr:=d(7 downto 0); - when DTAR => v.tf.dtar:=d(15 downto 0); - v.dtar_written:=true; - when CTRL => v.tf.ctrl:=d(7 downto 0); - when DHR => v.tf.dhr:=d(7 downto 0); - when FEAT => v.tf.feat:=d(7 downto 0); - when SCR => v.tf.scr:=d(7 downto 0); v.scr:=d(7 downto 0); - when SNR => v.tf.snr:=d(7 downto 0); - when DTAP => v.tf.dtap:=d(15 downto 0); - v.dtap_written:=true; - when others => v.tf.stat:=d(7 downto 0); - end case; - - elsif (atai.dior='0' and r.dior='1' and atai.diow='1') then --read register - case v.regadr is - when ALTSTAT => d(7 downto 0)<=r.tf.altstat; d(15 downto 8)<="00000000"; - when CHR => d(7 downto 0)<=r.tf.chr; d(15 downto 8)<="00000000"; - when CLR => d(7 downto 0)<=r.tf.clr; d(15 downto 8)<="00000000"; - when DTAR => d<=r.tf.dtar; v.dtar_read:=true; - when DHR => d(7 downto 0)<=r.tf.dhr; d(15 downto 8)<="00000000"; - when ERR => d(7 downto 0)<=r.tf.err; d(15 downto 8)<="00000000"; - when SCR => d(7 downto 0)<=r.tf.scr; d(15 downto 8)<="00000000"; - when SNR => d(7 downto 0)<=r.tf.snr; d(15 downto 8)<="00000000"; - when STAT => d(7 downto 0)<=r.tf.stat; d(15 downto 8)<="00000000"; - atao.intrq<='0'; v.intrq:=false; - when DTAP => - d<=r.tf.dtap; v.dtap_read:=true; - if (v.byte_cnt+2=sector_length) then - atao.dmarq<='0' after Tlr; - end if; - - when others => d(15 downto 0)<=(others=>'Z'); - end case; - --*********************************READ/WRITE registers end************* - - else - - if (r.tf.stat(BSY)='1') then --simulate busy, "borrow" feat reg - v.tf.feat:=v.tf.feat-1; --count down timer - if (v.tf.feat="00000000") then - v.tf.stat(BSY):='0'; --clear busy flag - end if; - elsif(v.cmd_started) then - case r.tf.cmd is - --******************************************************************** - when WRITE_DMA => - atao.dmarq<='1'; - v.tf.stat(DRQ):='1'; - if v.dtap_written then - v.dtap_written:=false; - v.byte_cnt:=v.byte_cnt+2; - if(v.byte_cnt=sector_length) then - v.tf.scr:=v.tf.scr-1; - v.byte_cnt:=0; - if v.tf.scr=X"00" then - atao.dmarq<='0'; - v.tf.stat(DRQ):='0'; - v.cmd_started:=false; - if v.tf.ctrl(NIEN)='0' then - atao.intrq<='1'; - end if; - end if; - end if; - if r.dtap_written then - v.ram.a(log2_size-2 downto log2(sector_length)-1):= - r.scr((log2_size-log2(sector_length)-1) downto 0) - r.tf.scr((log2_size-log2(sector_length)-1) downto 0); - v.ram.a(log2(sector_length)-2 downto 0):= - conv_std_logic_vector((r.byte_cnt/2),log2(sector_length)-1); - v.ram_dta:=v.tf.dtap; v.ram.oe:='1'; v.ram.ce:='0';v.ram.we:='0'; - end if; - end if; - --******************************************************************** - when WRITE => - if (not v.pio_started and v.tf.ctrl(NIEN)='0') then - atao.intrq<='1'; v.pio_started:=true; v.intrq:=true; - elsif not v.intrq then - v.tf.stat(DRQ):='1'; - if v.dtar_written then - v.dtar_written:=false; - v.byte_cnt:=v.byte_cnt+2; - if(v.byte_cnt=sector_length) then - v.tf.scr:=v.tf.scr-1; - if (v.tf.scr=X"00") then - v.cmd_started:=false; v.pio_started:=false; - end if; - v.byte_cnt:=0; - v.tf.stat(DRQ):='0'; - v.tf.stat(BSY):='1'; - v.tf.feat:="00001111"; - if v.tf.ctrl(NIEN)='0' then - atao.intrq<='1'; - end if; - end if; - end if; - if r.dtar_written then - v.ram.a(log2_size-2 downto log2(sector_length)-1):= - r.scr((log2_size-log2(sector_length)-1) downto 0) - r.tf.scr((log2_size-log2(sector_length)-1) downto 0); - v.ram.a(log2(sector_length)-2 downto 0):= - conv_std_logic_vector((r.byte_cnt/2),log2(sector_length)-1); - v.ram_dta:=v.tf.dtar; v.ram.oe:='1'; v.ram.ce:='0';v.ram.we:='0'; - end if; - end if; - --******************************************************************** - when READ_DMA => --- atao.dmarq<='1'; - v.tf.stat(DRQ):='1'; - if not (v.byte_cnt+2=sector_length) then - atao.dmarq<='1'; - end if; - if v.dtap_read and r.dior='0' and atai.dior='1' then --rising dior detect - v.dtap_read:=false; - v.byte_cnt:=v.byte_cnt+2; - if(v.byte_cnt=sector_length) then - v.tf.scr:=v.tf.scr-1; - v.byte_cnt:=0; - if v.tf.scr=X"00" then --- atao.dmarq<='0'; - v.tf.stat(DRQ):='0'; - v.cmd_started:=false; - v.ram.oe:='1'; v.ram.ce:='1';v.ram.we:='1'; - if v.tf.ctrl(NIEN)='0' then - atao.intrq<='1'; - end if; - end if; - end if; - end if; - v.ram.oe:='0'; v.ram.ce:='0';v.ram.we:='1'; v.tf.dtap:=s_d; - v.ram.a(log2_size-2 downto log2(sector_length)-1):= - r.scr((log2_size-log2(sector_length)-1) downto 0) - r.tf.scr((log2_size-log2(sector_length)-1) downto 0); - v.ram.a(log2(sector_length)-2 downto 0):= - conv_std_logic_vector((r.byte_cnt/2),log2(sector_length)-1); - --******************************************************************** - when READ => - if (not v.pio_started and v.tf.ctrl(NIEN)='0') then - atao.intrq<='1'; v.pio_started:=true; v.intrq:=true; - elsif not v.intrq then - v.tf.stat(DRQ):='1'; - if v.dtar_read and r.dior='0' and atai.dior='1' then --rising dior detect - v.dtar_read:=false; - v.byte_cnt:=v.byte_cnt+2; - if(v.byte_cnt=sector_length) then - v.tf.scr:=v.tf.scr-1; - if (v.tf.scr=X"00") then - v.cmd_started:=false; - end if; - v.byte_cnt:=0; - v.tf.stat(DRQ):='0'; - v.tf.stat(BSY):='1'; - v.tf.feat:="00001111"; - if v.tf.ctrl(NIEN)='0' then - atao.intrq<='1'; - end if; - end if; - end if; - end if; - v.ram.oe:='0'; v.ram.ce:='0';v.ram.we:='1'; v.tf.dtar:=s_d; - v.ram.a(log2_size-2 downto log2(sector_length)-1):= - r.scr((log2_size-log2(sector_length)-1) downto 0) - r.tf.scr((log2_size-log2(sector_length)-1) downto 0); - v.ram.a(log2(sector_length)-2 downto 0):= - conv_std_logic_vector((r.byte_cnt/2),log2(sector_length)-1); - --******************************************************************** - when others => v.tf.stat:=v.tf.stat; v.cmd_started:=false; - end case; - end if; - - if r.ram.ce='0' and r.ram.oe='1' then - v.ram.oe:='1'; v.ram.ce:='1';v.ram.we:='1'; v.ram_dta:=(others=>'Z'); - end if; - - if (r.dior='0' and atai.dior='1') then - d(15 downto 0)<=(others=>'Z'); - end if; - - end if; --read write reg - end if; --reset - - ri<=v; - end process comb; - atao.iordy <= '1'; - atao.pdiag <= '0'; - - with r.ram.oe select - s_d<=r.ram_dta when '1', - (others=>'Z') when others; - - disk : sram16 generic map (index => 0, abits => log2_size-1, fname => sramfile) - port map (r.ram.a, s_d, '0', '0', r.ram.ce, r.ram.we, r.ram.oe); - - --**********************SYNC PROCESS****************************************** - sync: process(clk) --dior/diow insted? - begin - if rising_edge(clk) then - r<=ri; - end if; - end process sync; -end; - ---************************END OF FILE******************************************* diff --git a/lib/gaisler/sim/delay_wire.vhd b/lib/gaisler/sim/delay_wire.vhd index 856c34ea..3c9f0e8c 100644 --- a/lib/gaisler/sim/delay_wire.vhd +++ b/lib/gaisler/sim/delay_wire.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/sim/grusb_dclsim.vhd b/lib/gaisler/sim/grusb_dclsim.vhd deleted file mode 100644 index e52ccf2b..00000000 --- a/lib/gaisler/sim/grusb_dclsim.vhd +++ /dev/null @@ -1,482 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -------------------------------------------------------------------------------- --- Entity: grusb_dclsim --- File: grusb_dclsim.vhd --- Author: Jonas Ekergarn - Aeroflex Gaisler --- Description: Simulation module to use with GRUSB_DCL when running GRLIB --- system test. This is _not_ a general simulation model of a USB host. Only --- works with ULPI interface as well. -------------------------------------------------------------------------------- - --- pragma translate_off - -library ieee, grlib, gaisler; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use grlib.stdlib.all; -use gaisler.sim.all; -use gaisler.usbsim.all; - -------------------------------------------------------------------------------- --- NOTES: --- * functm generic: Should be set to one if tests are to be run in --- functional test mode. In functional test mode the device doesn't --- need to receive a USB reset before sending data and also real USB timing --- isn't used. The point of this is to speed up simulation, which might be --- necessary if running ASIC tests. Note that the generic should only be set if --- the functesten generic as well as the functesten input signal for GRUSB_DCL --- are set. --- * keepclk generic need to be the same as for the GRUSB_DCL core. -------------------------------------------------------------------------------- - -------------------------------------------------------------------------------- --- Example of how to use the core: -------------------------------------------------------------------------------- - --- Libraries needed -------------------- --- library ieee, grlib, gaisler; --- use ieee.std_logic_1164.all; --- use grlib.stdlib.all; --- use gaisler.sim.all; - --- Test signals needed ----------------------- --- signal ddelay : std_ulogic := '0'; --- signal dstart : std_ulogic := '0'; --- signal drw : std_ulogic; --- signal daddr : std_logic_vector(31 downto 0); --- signal dlen : std_logic_vector(14 downto 0); --- signal ddi : grusb_dcl_debug_data; --- signal ddone : std_ulogic; --- signal ddo : grusb_dcl_debug_data; - --- Instantiation ----------------- --- u0: grusb_dclsim --- port map (usb_rst, usb_clk, usb_data, usb_nxt, usb_stp, usb_dir, --- ddelay, dstart, drw, daddr, dlen, ddi, ddone, ddo); - --- Example of test process --------------------------- --- usb_dcl_proc : process --- begin - --- Wait until initialisation of GRUSB_DCL is done --- wait until rising_edge(ddone); - --- Write 128 bytes to memory (dlen input sets number of words) --- daddr <= X"40000000"; --- dlen <= conv_std_logic_vector(32,15); --- for i in 0 to 127 loop --- ddi(i) <= conv_std_logic_vector(i,8); --- end loop; --- grusb_dcl_write(usb_clkout, drw, dstart, ddone); - --- Read back written data (address and length not changed) --- grusb_dcl_read(usb_clkout, drw, dstart, ddone); - --- wait; --- end process; - -------------------------------------------------------------------------------- - -entity grusb_dclsim is - generic ( - functm : integer range 0 to 1 := 0; - keepclk : integer range 0 to 1 := 0); - port ( - rst : in std_ulogic; - clk : out std_ulogic; - d : inout std_logic_vector(7 downto 0); - nxt : out std_ulogic; - stp : in std_ulogic; - dir : out std_ulogic; - delay : in std_ulogic := '0'; - dstart : in std_ulogic; - drw : in std_ulogic; - daddr : in std_logic_vector(31 downto 0); - dlen : in std_logic_vector(14 downto 0); - ddi : in grusb_dcl_debug_data; - ddone : out std_ulogic; - ddo : out grusb_dcl_debug_data; - start : in std_ulogic := '1'); -end grusb_dclsim; - -architecture behav of grusb_dclsim is - - signal usbi : grusb_in_type; - signal usbo : grusb_out_type; - signal uctrl : uctrl_type; - signal clk_int, clko_int : std_ulogic := '0'; - signal usb_rand : std_logic_vector(7 downto 0) := (others=>'0'); - signal usb_hs : std_ulogic := '1'; - -begin - - nxt <= usbi.nxt; - dir <= usbi.dir; - d <= usbi.datain(7 downto 0) when usbi.dir = '1' else - (others => 'Z'); - - usbo.stp <= stp; - usbo.dataout(7 downto 0) <= to_x01(d); - usbo.termselect <= uctrl.termselect; - usbo.xcvrselect <= uctrl.xcvrselect; - usbo.opmode <= uctrl.opmode; - usbo.suspendm <= uctrl.suspendm; - - clk_int <= not clk_int after 8.333 ns; - clk <= clk_int and usbo.suspendm; - clko_int <= clk_int and usbo.suspendm; - - usbdcl_test : process - variable data : octet_vector(0 to 3072); - variable data2 : octet_vector(0 to 3072); - variable TP : boolean := true; - variable gotnak : boolean; - variable gotnyet : boolean; - variable timeout : boolean := true; - variable fn : std_logic_vector(10 downto 0) := (others=>'0'); - variable time1 : time; - variable time2 : time; - variable timesup : boolean; - variable dlenv : integer; - variable togglei : std_ulogic; - variable toggleo : std_ulogic; - begin - - -- Start up --------------------------------------------------------------- - ddone <= '0'; - uctrl <= ('1',"01","00",'1'); - usbi.dir <= '1'; - usbi.nxt <= '0'; - if start /= '1' then - wait until start = '1'; - end if; - while rst = '0' loop - wait until rst = '1'; - end loop; - ulpi_reset(clko_int, usbi, usbo, uctrl, false, keepclk = 1); - - if keepclk = 0 and (usbo.xcvrselect /= "00" or - usbo.termselect /= '0' or - usbo.opmode /= "00") then - wait for 10 us; - -- assert vbus so that device can wake up from suspend - usbi.datain(1 downto 0) <= J_STATE; - usbi.datain(3) <= '1'; - if usbo.stp /= '1' then - wait until rising_edge(usbo.stp); - end if; - wait until falling_edge(clk_int); - uctrl.suspendm <= '1'; - for i in 0 to 5 loop - wait until rising_edge(clko_int); - end loop; - usbi.dir <= '0'; - wait until rising_edge(clko_int); - usbi.datain(7 downto 0) <= (others=>'0'); - accept_regread(clko_int,usbi,usbo,'1'); - end if; - - if keepclk = 1 or usbo.xcvrselect /= "00" or usbo.termselect /= '0' or - usbo.opmode /= "00" then - accept_regwrite(clko_int,usbi,usbo,uctrl); - end if; - if functm = 0 then - hs_handshake(clko_int,usbi,usbo,uctrl,usb_hs,1); - wait for 5 us; - elsif keepclk = 1 then - if usbo.xcvrselect /= "00" or usbo.termselect /= '0' or - usbo.opmode /= "00" then - accept_regwrite(clko_int,usbi,usbo,uctrl); - end if; - end if; - - --------------------------------------------------------------------------- - -- Configure GRUSB_DCL - --------------------------------------------------------------------------- - -- SET_ADDRESS ------------------------------------------------------------ - -- send setup and data - if functm = 0 then - tsof(clko_int, 3, fn, false, false, usb_rand, 1, 8, usbi, usb_hs); - fn := fn+1; - time1 := now; - end if; - while timeout loop - ttoken(clko_int, 3, SETUP, false, false, "0000000", EP0, 1, 8, - usb_rand, usbi, usb_hs); - data(0 to 7) := (X"00", X"05", X"01", X"00", X"00", X"00", X"00", X"00"); - tdata(clko_int, DATA0, false, false, data(0 to 7), 8, usb_rand, 1, 8, - usbi, usb_hs); - rhandshake(clko_int, TACK, false, false, usb_rand, 1, 8, usbi, - usbo, TP, gotnak, usb_hs, timeout); - - end loop; - --zero length packet for status stage - getstatus(TIN, false, true, clko_int, usbo, usbi, 0, usb_rand, - 1, 8, "0000000", TP, usb_hs, timeout); - - -- GET_DESCRIPTOR (device) ------------------------------------------------ - -- perform setup transaction - ttoken(clko_int, 3, SETUP, false, false, "0000001", EP0, 1, 8, - usb_rand, usbi, usb_hs); - data(0 to 7) := (X"80", X"06", X"00", X"01", X"00", X"00", X"12", X"00"); - tdata(clko_int, DATA0, false, false, data(0 to 7), 8, usb_rand, 1, 8, - usbi, usb_hs); - rhandshake(clko_int, TACK, false, false, usb_rand, 1, 8, usbi, - usbo, TP, gotnak, usb_hs, timeout); - -- expected descriptor - data(0 to 17) := (X"12", X"01", X"10", X"02", X"FF", X"00", X"FF", X"40", - X"81", X"17", X"A0", X"0A", X"00", X"00", X"00", X"00", - X"00", X"01"); - -- perform in transaction - rdata(clko_int, DATA1, true, 18, data, 0, "0000001", usb_rand, 1, 8, - usbi, usbo, TP, false, usb_hs, false, timeout); - shandshake(clko_int, TACK, 1, 8, usb_rand, usbi, usb_hs); - -- perform out transaction of status stage - getstatus(TOUT, false, true, clko_int, usbo, usbi, 0, usb_rand, - 1, 8, "0000001", TP, usb_hs, timeout); - - -- SET_CONFIGURATION ------------------------------------------------------ - -- perform setup transaction - ttoken(clko_int, 3, SETUP, false, false, "0000001", EP0, 1, 8, - usb_rand, usbi, usb_hs); - data(0 to 7) := (X"00", X"09", X"01", X"00", X"00", X"00", X"00", X"00"); - tdata(clko_int, DATA0, false, false, data(0 to 7), 8, usb_rand, 1, 8, - usbi, usb_hs); - rhandshake(clko_int, TACK, false, false, usb_rand, 1, 8, usbi, - usbo, TP, gotnak, usb_hs, timeout); - --zero length packet for status stage - getstatus(TIN, false, true, clko_int, usbo, usbi, 0, usb_rand, - 1, 8, "0000001", TP, usb_hs, timeout); - - - while delay /= '0' loop - if functm = 0 then - time2 := now; - wait until delay = '0' for (125 us - (time2 - time1)); - if delay = '1' then - tsof(clko_int, 3, fn, false, false, usb_rand, 1, 8, usbi, usb_hs); - fn := fn+1; - time1 := now; - end if; - else - wait until delay = '0'; - end if; - end loop; - - wait until rising_edge(clko_int); - ddone <= '1'; - wait until rising_edge(clko_int); - ddone <= '0'; - - --------------------------------------------------------------------------- - -- Debug protocol transfers - --------------------------------------------------------------------------- - toggleo := '0'; - togglei := '0'; - if functm = 0 then - time2 := now; - wait for (125 us - (time2 - time1)); - while true loop - tsof(clko_int, 3, fn, false, false, usb_rand, 1, 8, usbi, usb_hs); - fn := fn+1; - time1 := now; - timesup := false; - while (not timesup) loop - time2 := now; - if dstart = '0' then - wait until rising_edge(dstart) for (120 us - (time2 - time1)); - end if; - -- check that enough time is left in frame - time2 := now; - if dstart = '1' then - dlenv := conv_integer(dlen)*4; - -- address word - data(3) := daddr(7 downto 0); - data(2) := daddr(15 downto 8); - data(1) := daddr(23 downto 16); - data(0) := daddr(31 downto 24); - -- control word - data(7) := dlen(5 downto 0) & "00"; - data(6) := dlen(13 downto 6); - data(5) := "0000000" & dlen(14); - if drw = '0' then - data(4) := X"00"; - else - data(4) := X"80"; - end if; - if gotnyet then - gotnak := true; time2 := now; - while (gotnak and (125 us - (time2 - time1)) > 5 us) loop - ttoken(clko_int, 3, PING, false, false, "0000001", EP1, 1, 8, - usb_rand, usbi, usb_hs); - rhandshake(clko_int, TACK, false, true, usb_rand, 1, 8, usbi, - usbo, TP, gotnak, gotnyet, usb_hs, timeout); - time2 := now; - end loop; - end if; - if not gotnak then - if drw = '0' then - -- debug read (OUT + IN transactions) - ttoken(clko_int, 3, TOUT, false, false, "0000001", EP1, 1, 8, - usb_rand, usbi, usb_hs); - if toggleo = '0' then - tdata(clko_int, DATA0, false, false, data(0 to 7), 8, usb_rand, 1, 8, - usbi, usb_hs); - else - tdata(clko_int, DATA1, false, false, data(0 to 7), 8, usb_rand, 1, 8, - usbi, usb_hs); - end if; - rhandshake(clko_int, TACK, true, false, usb_rand, 1, 8, usbi, - usbo, TP, gotnak, gotnyet, usb_hs, timeout); - toggleo := not toggleo; - - if togglei = '0' then - rdata(clko_int, DATA0, true, dlenv, data2, 1, "0000001", usb_rand, 1, 8, - usbi, usbo, TP, false, usb_hs, false, timeout, data, false); - else - rdata(clko_int, DATA1, true, dlenv, data2, 1, "0000001", usb_rand, 1, 8, - usbi, usbo, TP, false, usb_hs, false, timeout, data, false); - end if; - shandshake(clko_int, TACK, 1, 8, usb_rand, usbi, usb_hs); - togglei := not togglei; - for i in 0 to dlenv-1 loop - ddo(i) <= data(i); - end loop; -- i - else - -- debug write (OUT transaction) - for i in 0 to dlenv-1 loop - data(i+8) := ddi(i); - end loop; -- i - ttoken(clko_int, 3, TOUT, false, false, "0000001", EP1, 1, 8, - usb_rand, usbi, usb_hs); - if toggleo = '0' then - tdata(clko_int, DATA0, false, false, data(0 to dlenv+7), dlenv+8, usb_rand, 1, 8, - usbi, usb_hs); - else - tdata(clko_int, DATA1, false, false, data(0 to dlenv+7), dlenv+8, usb_rand, 1, 8, - usbi, usb_hs); - end if; - rhandshake(clko_int, TACK, true, false, usb_rand, 1, 8, usbi, - usbo, TP, gotnak, gotnyet, usb_hs, timeout); - toggleo := not toggleo; - end if; - wait until rising_edge(clk_int); - ddone <= '1'; - wait until rising_edge(clk_int); - ddone <= '0'; - else - timesup := true; - end if; - else - timesup := true; - end if; - end loop; - time2 := now; - wait for (125 us - (time2 - time1)); - end loop; - else - while true loop - if dstart = '0' then - wait until rising_edge(dstart); - end if; - dlenv := conv_integer(dlen)*4; - -- address word - data(3) := daddr(7 downto 0); - data(2) := daddr(15 downto 8); - data(1) := daddr(23 downto 16); - data(0) := daddr(31 downto 24); - -- control word - data(7) := dlen(5 downto 0) & "00"; - data(6) := dlen(13 downto 6); - data(5) := "0000000" & dlen(14); - if drw = '0' then - data(4) := X"00"; - else - data(4) := X"80"; - end if; - if gotnyet then - gotnak := true; - while gotnak loop - ttoken(clko_int, 3, PING, false, false, "0000001", EP1, 1, 8, - usb_rand, usbi, usb_hs); - rhandshake(clko_int, TACK, false, true, usb_rand, 1, 8, usbi, - usbo, TP, gotnak, gotnyet, usb_hs, timeout); - end loop; - end if; - if drw = '0' then - -- debug read (OUT + IN transactions) - ttoken(clko_int, 3, TOUT, false, false, "0000001", EP1, 1, 8, - usb_rand, usbi, usb_hs); - if toggleo = '0' then - tdata(clko_int, DATA0, false, false, data(0 to 7), 8, usb_rand, 1, 8, - usbi, usb_hs); - else - tdata(clko_int, DATA1, false, false, data(0 to 7), 8, usb_rand, 1, 8, - usbi, usb_hs); - end if; - rhandshake(clko_int, TACK, true, false, usb_rand, 1, 8, usbi, - usbo, TP, gotnak, gotnyet, usb_hs, timeout); - toggleo := not toggleo; - - if togglei = '0' then - rdata(clko_int, DATA0, true, dlenv, data2, 1, "0000001", usb_rand, 1, 8, - usbi, usbo, TP, false, usb_hs, false, timeout, data, false); - else - rdata(clko_int, DATA1, true, dlenv, data2, 1, "0000001", usb_rand, 1, 8, - usbi, usbo, TP, false, usb_hs, false, timeout, data, false); - end if; - shandshake(clko_int, TACK, 1, 8, usb_rand, usbi, usb_hs); - togglei := not togglei; - for i in 0 to dlenv-1 loop - ddo(i) <= data(i); - end loop; -- i - else - -- debug write (OUT transaction) - for i in 0 to dlenv-1 loop - data(i+8) := ddi(i); - end loop; -- i - ttoken(clko_int, 3, TOUT, false, false, "0000001", EP1, 1, 8, - usb_rand, usbi, usb_hs); - if toggleo = '0' then - tdata(clko_int, DATA0, false, false, data(0 to dlenv+7), dlenv+8, usb_rand, 1, 8, - usbi, usb_hs); - else - tdata(clko_int, DATA1, false, false, data(0 to dlenv+7), dlenv+8, usb_rand, 1, 8, - usbi, usb_hs); - end if; - rhandshake(clko_int, TACK, true, false, usb_rand, 1, 8, usbi, - usbo, TP, gotnak, gotnyet, usb_hs, timeout); - toggleo := not toggleo; - end if; - wait until rising_edge(clk_int); - ddone <= '1'; - wait until rising_edge(clk_int); - ddone <= '0'; - end loop; - end if; - end process; - -end behav; - --- pragma translate_on diff --git a/lib/gaisler/sim/grusbdcsim.vhd b/lib/gaisler/sim/grusbdcsim.vhd deleted file mode 100644 index 82e9cd26..00000000 --- a/lib/gaisler/sim/grusbdcsim.vhd +++ /dev/null @@ -1,173 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -------------------------------------------------------------------------------- --- Entity: grusbdcsim --- File: grusbdcsim.vhd --- Author: Jonas Ekergarn - Aeroflex Gaisler --- Description: Simulation module to use with GRUSBDC when running GRLIB --- system test. This is _not_ a general simulation model of a USB host! It can --- only be used when running GRLIB system test(grlib/software/leon3/grusbdc.c). --- Also, it only works when GRUSBDC uses an ULPI interface. -------------------------------------------------------------------------------- - --- pragma translate_off - -library ieee, grlib, gaisler; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; -use grlib.stdlib.all; -use gaisler.usbsim.all; - -------------------------------------------------------------------------------- --- NOTES: --- * functm generic: Should be set to one if tests are to be run in --- functional test mode. In functional test mode the device doesn't --- need to receive a USB reset before sending data and also real USB timing --- isn't used. The point of this is to speed up simulation, which might be --- necessary if running ASIC tests. -------------------------------------------------------------------------------- - -entity grusbdcsim is - generic ( - functm : integer range 0 to 1 := 0; - keepclk : integer range 0 to 1 := 0); - port ( - rst : in std_ulogic; - clk : out std_ulogic; - d : inout std_logic_vector(7 downto 0); - nxt : out std_ulogic; - stp : in std_ulogic; - dir : out std_ulogic); -end grusbdcsim; - -architecture behav of grusbdcsim is - - signal usbi : grusb_in_type; - signal usbo : grusb_out_type; - signal uctrl : uctrl_type; - signal clk_int, clko_int : std_ulogic := '0'; - signal usb_rand : std_logic_vector(7 downto 0) := (others=>'0'); - signal usb_hs : std_ulogic := '1'; - -begin - - nxt <= usbi.nxt; - dir <= usbi.dir; - d <= usbi.datain(7 downto 0) when usbi.dir = '1' else - (others => 'Z'); - - usbo.stp <= stp; - usbo.dataout(7 downto 0) <= to_x01(d); - usbo.termselect <= uctrl.termselect; - usbo.xcvrselect <= uctrl.xcvrselect; - usbo.opmode <= uctrl.opmode; - usbo.suspendm <= uctrl.suspendm; - - clk_int <= not clk_int after 8.333 ns; - clk <= clk_int and usbo.suspendm; - clko_int <= clk_int and usbo.suspendm; - - usbdc_test : process - variable data : octet_vector(0 to 3072); - variable TP : boolean := true; - variable gotnak : boolean; - variable timeout : boolean := true; - variable fn : std_logic_vector(10 downto 0) := (others=>'0'); - begin - -- Start up --------------------------------------------------------------- - uctrl <= ('1',"01","00",'1'); - usbi.dir <= '1'; - usbi.nxt <= '0'; - while rst = '0' loop - wait until rst = '1'; - end loop; - ulpi_reset(clko_int, usbi, usbo, uctrl, false, keepclk = 1); - - if keepclk = 0 then - wait for 10 us; - -- assert vbus so that device can wake up from suspend - usbi.datain(1 downto 0) <= J_STATE; - usbi.datain(3) <= '1'; - wait until rising_edge(usbo.stp); - wait until falling_edge(clk_int); - uctrl.suspendm <= '1'; - for i in 0 to 5 loop - wait until rising_edge(clko_int); - end loop; - usbi.dir <= '0'; - wait until rising_edge(clko_int); - usbi.datain(7 downto 0) <= (others=>'0'); - accept_regread(clko_int,usbi,usbo,'1'); - end if; - - accept_regwrite(clko_int,usbi,usbo,uctrl); - if functm = 1 then - accept_regwrite(clko_int,usbi,usbo,uctrl); - end if; - if functm = 0 then - hs_handshake(clko_int,usbi,usbo,uctrl,usb_hs,1); - wait for 5 us; - end if; - --------------------------------------------------------------------------- - - -- Get Device Descriptor -------------------------------------------------- - -- perform setup transaction - if functm = 0 then - tsof(clko_int, 3, fn, false, false, usb_rand, 1, 8, usbi, usb_hs); - fn := fn+1; - end if; - while timeout loop - ttoken(clko_int, 3, SETUP, false, false, "0000000", EP0, 1, 8, - usb_rand, usbi, usb_hs); - data(0 to 7) := (X"80", X"06", X"00", X"01", X"00", X"00", X"20", X"00"); - tdata(clko_int, DATA0, false, false, data(0 to 7), 8, usb_rand, 1, 8, - usbi, usb_hs); - rhandshake(clko_int, TACK, false, false, usb_rand, 1, 8, usbi, - usbo, TP, gotnak, usb_hs, timeout); - end loop; - - -- expected descriptor - data(0 to 17) := (X"12", X"01", X"10", X"02", X"FF", X"00", X"FF", X"40", - X"81", X"17", X"A0", X"0A", X"00", X"00", X"00", X"00", - X"00", X"01"); - - -- perform in transaction - rdata(clko_int, DATA1, true, 18, data, 0, "0000000", usb_rand, 1, 8, - usbi, usbo, TP, false, usb_hs, false, timeout); - shandshake(clko_int, TACK, 1, 8, usb_rand, usbi, usb_hs); - - -- perform out transaction of status stage - getstatus(TOUT, false, true, clko_int, usbo, usbi, 0, usb_rand, - 1, 8, "0000000", TP, usb_hs, timeout); - --------------------------------------------------------------------------- - if functm = 0 then - wait for 120 us; - while true loop - tsof(clko_int, 3, fn, false, false, usb_rand, 1, 8, usbi, usb_hs); - fn := fn+1; - wait for 125 us; - end loop; - else - wait; - end if; - end process; - -end behav; - --- pragma translate_on diff --git a/lib/gaisler/sim/phy.vhd b/lib/gaisler/sim/phy.vhd index 22414b15..48ebc285 100644 --- a/lib/gaisler/sim/phy.vhd +++ b/lib/gaisler/sim/phy.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/sim/pwm_check.vhd b/lib/gaisler/sim/pwm_check.vhd index 935ceb2c..aa6cfea0 100644 --- a/lib/gaisler/sim/pwm_check.vhd +++ b/lib/gaisler/sim/pwm_check.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/sim/sim.vhd b/lib/gaisler/sim/sim.vhd index 0dfb63f7..c98fadb0 100644 --- a/lib/gaisler/sim/sim.vhd +++ b/lib/gaisler/sim/sim.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -120,47 +120,6 @@ package sim is ); end component; - type ata_in_type is record --signals from host to device - csel : std_logic; --cable select - cs : std_logic_vector(1 downto 0); --chip select - --dd : std_logic_vector(15 downto 0); --data bus - dasp : std_logic; --Device active / slave present - da : std_logic_vector(2 downto 0); --device adress - dmack: std_logic; --DMA acknowledge - dior : std_logic; --I/O read strobe - diow : std_logic; --I/O write strobe - reset: std_logic; --Reset - end record; - - constant ATAI_RESET_VECTOR : ata_in_type := ('0',(others=>'0'),'0', - (others=>'0'),'0','0','0','0'); - - type ata_out_type is record --signals from device to host - dmarq: std_logic; --DMA request - intrq: std_logic; --Interrupt request - iordy: std_logic; --I/O ready - pdiag: std_logic; --Passed diagnostics - end record; - - constant ATAO_RESET_VECTOR : ata_out_type := ('0','0','1','0'); - - component ata_device is - generic(sector_length: integer :=512; --in bytes - disk_size: integer :=32; --in sectors - log2_size : integer :=14; --Log2(sector_length*disk_size), abits - Tlr : time := 35 ns; - sramfile : string := "disk.srec" - ); - port( - --for convinience, not part of ATA interface - clk : in std_logic; - rst : in std_logic; - --interface to host bus adapter - d : inout std_logic_vector(15 downto 0) := (others=>'Z'); - atai : in ata_in_type := ATAI_RESET_VECTOR; - atao : out ata_out_type:= ATAO_RESET_VECTOR); - end component; - procedure leon3_subtest(subtest : integer); procedure mctrl_subtest(subtest : integer); procedure gptimer_subtest(subtest : integer); @@ -560,6 +519,7 @@ package body sim is when 2 => print(" Loopback mode"); when 3 => print(" AM Loopback mode"); when 4 => print(" External device test"); + when 5 => print(" Interrupt line test"); when others => print(" sub-system test " & tost(subtest)); end case; diff --git a/lib/gaisler/sim/slavecheck.vhd b/lib/gaisler/sim/slavecheck.vhd index 56a078f3..cbb2d9a8 100644 --- a/lib/gaisler/sim/slavecheck.vhd +++ b/lib/gaisler/sim/slavecheck.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/sim/sram.vhd b/lib/gaisler/sim/sram.vhd index b432e1e6..ecf6cd30 100644 --- a/lib/gaisler/sim/sram.vhd +++ b/lib/gaisler/sim/sram.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/sim/sram16.vhd b/lib/gaisler/sim/sram16.vhd index a335c3d8..3068dadd 100644 --- a/lib/gaisler/sim/sram16.vhd +++ b/lib/gaisler/sim/sram16.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/sim/usbsim.vhd b/lib/gaisler/sim/usbsim.vhd deleted file mode 100644 index 4a8c7288..00000000 --- a/lib/gaisler/sim/usbsim.vhd +++ /dev/null @@ -1,1544 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Package: usbsim --- File: usbsim.vhd --- Author: Jonas Ekergarn - Aeroflex Gaisler --- Description: Types, constants and procedures used when simulating both --- GRUSBDC and GRUSB_DCL ------------------------------------------------------------------------------- - --- pragma translate_off - -library ieee; -use ieee.std_logic_1164.all; -use std.textio.all; -library grlib; -use grlib.stdlib.all; - -package usbsim is - - type octet_vector is array (natural range <>) of std_logic_vector(7 downto 0); - - type grusb_in_type is record - datain : std_logic_vector(15 downto 0); - rxactive : std_ulogic; - rxvalid : std_ulogic; - rxvalidh : std_ulogic; - rxerror : std_ulogic; - txready : std_ulogic; - linestate : std_logic_vector(1 downto 0); - nxt : std_ulogic; - dir : std_ulogic; - vbusvalid : std_ulogic; - hostdisconnect : std_ulogic; - functesten : std_ulogic; - end record; - type grusb_out_type is record - dataout : std_logic_vector(15 downto 0); - txvalid : std_ulogic; - txvalidh : std_ulogic; - opmode : std_logic_vector(1 downto 0); - xcvrselect : std_logic_vector(1 downto 0); - termselect : std_ulogic; - suspendm : std_ulogic; - reset : std_ulogic; - stp : std_ulogic; - oen : std_ulogic; - databus16_8 : std_ulogic; - dppulldown : std_ulogic; - dmpulldown : std_ulogic; - idpullup : std_ulogic; - drvvbus : std_ulogic; - dischrgvbus : std_ulogic; - chrgvbus : std_ulogic; - txbitstuffenable : std_ulogic; - txbitstuffenableh : std_ulogic; - fslsserialmode : std_ulogic; - tx_enable_n : std_ulogic; - tx_dat : std_ulogic; - tx_se0 : std_ulogic; - end record; - - ----------------------------------------------------------------------------- - -- various test procedures for usb. - ----------------------------------------------------------------------------- - --Endpoint numbers - constant EP0 : std_logic_vector(3 downto 0) := "0000"; - constant EP1 : std_logic_vector(3 downto 0) := "0001"; - constant EP2 : std_logic_vector(3 downto 0) := "0010"; - constant EP3 : std_logic_vector(3 downto 0) := "0011"; - constant EP4 : std_logic_vector(3 downto 0) := "0100"; - constant EP5 : std_logic_vector(3 downto 0) := "0101"; - constant EP6 : std_logic_vector(3 downto 0) := "0110"; - constant EP7 : std_logic_vector(3 downto 0) := "0111"; - constant EP8 : std_logic_vector(3 downto 0) := "1000"; - constant EP9 : std_logic_vector(3 downto 0) := "1001"; - constant EP10 : std_logic_vector(3 downto 0) := "1010"; - constant EP11 : std_logic_vector(3 downto 0) := "1011"; - constant EP12 : std_logic_vector(3 downto 0) := "1100"; - constant EP13 : std_logic_vector(3 downto 0) := "1101"; - constant EP14 : std_logic_vector(3 downto 0) := "1110"; - constant EP15 : std_logic_vector(3 downto 0) := "1111"; - - ------------------------------------------------------------------------------- - --usb pid constants - constant TOUT : std_logic_vector( 3 downto 0) := "0001"; - constant TIN : std_logic_vector( 3 downto 0) := "1001"; - constant SOF : std_logic_vector( 3 downto 0) := "0101"; - constant SETUP : std_logic_vector( 3 downto 0) := "1101"; - --data - constant DATA0 : std_logic_vector( 3 downto 0) := "0011"; - constant DATA1 : std_logic_vector( 3 downto 0) := "1011"; - constant DATA2 : std_logic_vector( 3 downto 0) := "0111"; - constant MDATA : std_logic_vector( 3 downto 0) := "1111"; - --handshake - constant TACK : std_logic_vector( 3 downto 0) := "0010"; - constant TNAK : std_logic_vector( 3 downto 0) := "1010"; - constant TSTALL : std_logic_vector( 3 downto 0) := "1110"; - constant TNYET : std_logic_vector( 3 downto 0) := "0110"; - --special - constant PRE : std_logic_vector( 3 downto 0) := "1100"; - constant ERR : std_logic_vector( 3 downto 0) := "1100"; - constant SPLIT : std_logic_vector( 3 downto 0) := "1000"; - constant PING : std_logic_vector( 3 downto 0) := "0100"; - constant RESERVED : std_logic_vector( 3 downto 0) := "0000"; - - -- line states - constant SE0 : std_logic_vector(1 downto 0) := "00"; - constant J_STATE : std_logic_vector(1 downto 0) := "01"; - constant K_STATE : std_logic_vector(1 downto 0) := "10"; - constant SE1 : std_logic_vector(1 downto 0) := "11"; - - -- opcode - constant NORM_OP : std_logic_vector(1 downto 0) := "00"; - constant NON_DRIV : std_logic_vector(1 downto 0) := "01"; - constant NO_NRZI : std_logic_vector(1 downto 0) := "10"; - - -- ULPI PHY registers combined with regwrite bits - constant FCTRL_WADDR : std_logic_vector(7 downto 0) := X"84"; - constant FCTRL_SADDR : std_logic_vector(7 downto 0) := X"85"; - constant FCTRL_CADDR : std_logic_vector(7 downto 0) := X"86"; - - -- ULPI RXCMDs - constant RXCMD_novbus : std_logic_vector(7 downto 0) := "00000000"; - constant RXCMD_fsidle : std_logic_vector(7 downto 0) := "00001101"; - constant RXCMD_hsidle : std_logic_vector(7 downto 0) := "00001100"; - constant RXCMD_jstate : std_logic_vector(7 downto 0) := "00001101"; - constant RXCMD_kstate : std_logic_vector(7 downto 0) := "00001110"; - constant RXCMD_se0state : std_logic_vector(7 downto 0) := "00001100"; - constant RXCMD_fsrxactive : std_logic_vector(7 downto 0) := "00011110"; - constant RXCMD_hsrxactive : std_logic_vector(7 downto 0) := "00011101"; - constant RXCMD_eopj : std_logic_vector(7 downto 0) := "00011101"; - constant RXCMD_eopse0 : std_logic_vector(7 downto 0) := "00011100"; - - type uctrl_type is record - termselect : std_ulogic; - xcvrselect : std_logic_vector(1 downto 0); - opmode : std_logic_vector(1 downto 0); - suspendm : std_ulogic; - end record; - - -- init usb signals - constant usbi_none : grusb_in_type := ( - datain => "ZZZZZZZZ" & "00000000", - rxactive => '0', - rxvalid => '0', - rxvalidh => 'Z', - rxerror => '0', - txready => '0', - linestate => "00", - nxt => '0', - dir => '0', - vbusvalid => '1', - hostdisconnect => '0', - functesten => '1'); - - constant usbo_none : grusb_out_type := ( - dataout => "ZZZZZZZZ" & "00000000", - txvalid => '0', - txvalidh => 'Z', - opmode => "00", - xcvrselect => "00", - termselect => '0', - suspendm => '0', - reset => '0', - stp => '0', - oen => '0', - databus16_8 => '0', - dppulldown => '0', - dmpulldown => '0', - idpullup => '0', - drvvbus => '0', - dischrgvbus => '0', - chrgvbus => '0', - txbitstuffenable => '0', - txbitstuffenableh => '0', - fslsserialmode => '0', - tx_enable_n => '0', - tx_dat => '0', - tx_se0 => '0' - ); - - function crc5 ( - constant din : std_logic_vector(10 downto 0)) - return std_logic_vector; - - function crc16 ( - constant din : std_logic_vector(7 downto 0); - constant crc16in : std_logic_vector(15 downto 0)) - return std_logic_vector; - - function pidtostr( - constant pid : std_logic_vector(3 downto 0)) - return string; - - procedure uprint( - constant Comment: in String := "-"; - constant Severe: in Severity_Level := Note; - constant Screen: in Boolean := True); - - procedure gen_rxcmd ( - signal clk : in std_ulogic; - signal usbi : out grusb_in_type; - constant rxcmd : in std_logic_vector(7 downto 0)); - - procedure accept_regwrite ( - signal clk : in std_ulogic; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - signal uctrl : out uctrl_type); - - procedure accept_regread ( - signal clk : in std_ulogic; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - constant vbus : in std_ulogic); - - procedure ulpi_reset ( - signal clk : in std_ulogic; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - signal uctrl : out uctrl_type; - constant pullup : in boolean; - constant keepclk : in boolean); - - procedure sendpacket( - signal clk : in std_ulogic; - constant len : in integer; - constant data : in octet_vector; - constant uiface : in integer; - constant dwidth : in integer; - signal rand : in std_logic_vector(7 downto 0); - signal usbi : out grusb_in_type; - signal hs : in std_ulogic); - - procedure receivepacket( - signal clk : in std_ulogic; - constant uiface : in integer; - constant dwidth : in integer; - signal rand : in std_logic_vector(7 downto 0); - variable len : out integer; - variable data : out octet_vector; - variable TP : inout boolean; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - signal hs : in std_ulogic; - variable timeout : out boolean); - - procedure ttoken( - signal clk : in std_ulogic; - constant len : in integer range 0 to 16:= 3; - constant pid : in std_logic_vector(3 downto 0); - constant piderr : in boolean := false; - constant crcerr : in boolean := false; - constant device_address : in std_logic_vector(6 downto 0); - constant endpoint_number : in std_logic_vector(3 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal rand : in std_logic_vector(7 downto 0); - signal usbi : out grusb_in_type; - signal hs : in std_ulogic); - - procedure tsof( - signal clk : in std_ulogic; - constant len : in integer range 0 to 16 := 3; - constant fno : in std_logic_vector(10 downto 0); - constant piderr : in boolean; - constant crcerr : in boolean; - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal usbi : out grusb_in_type; - signal hs : in std_ulogic); - - procedure tdata ( - signal clk : in std_ulogic; - constant pid : in std_logic_vector(3 downto 0); - constant piderr : in boolean := false; - constant crcerr : in boolean := false; - constant data : in octet_vector; - constant len : in integer range 0 to 3072; - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal usbi : out grusb_in_type; - signal hs : in std_ulogic); - - procedure rhandshake ( - signal clk : in std_ulogic; - constant expected : in std_logic_vector(3 downto 0); - constant nyet : in boolean := false; - constant nak : in boolean := false; - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - variable TP : inout boolean; - variable gotnak : out boolean; - signal hs : in std_ulogic; - variable timeout : out boolean); - - procedure rhandshake ( - signal clk : in std_ulogic; - constant expected : in std_logic_vector(3 downto 0); - constant nyet : in boolean := false; - constant nak : in boolean := false; - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - variable TP : inout boolean; - variable gotnak : out boolean; - variable gotnyet : out boolean; - signal hs : in std_ulogic; - variable timeout : out boolean); - - procedure rdata( - signal clk : in std_ulogic; - constant expected : in std_logic_vector(3 downto 0); - constant nak : in boolean := false; - constant nbytes : in integer; - constant expdata : in octet_vector; - constant ep : in integer; - constant device_address : in std_logic_vector(6 downto 0); - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - variable TP : inout boolean; - constant verbose : in boolean; - signal hs : in std_ulogic; - constant retryiso : in boolean; - variable timeout : out boolean); - - procedure rdata( - signal clk : in std_ulogic; - constant expected : in std_logic_vector(3 downto 0); - constant nak : in boolean := false; - constant nbytes : in integer; - constant expdata : in octet_vector; - constant ep : in integer; - constant device_address : in std_logic_vector(6 downto 0); - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - variable TP : inout boolean; - constant verbose : in boolean; - signal hs : in std_ulogic; - constant retryiso : in boolean; - variable timeout : out boolean; - variable recdata : out octet_vector; - constant checkdata : in boolean); - - procedure shandshake ( - signal clk : in std_ulogic; - constant hpid : in std_logic_vector(3 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal rand : in std_logic_vector(7 downto 0); - signal usbi : out grusb_in_type; - signal hs : in std_ulogic); - - procedure getstatus ( - constant dir : in std_logic_vector(3 downto 0); - constant stall : in boolean := false; - constant nak : in boolean := true; - signal clk : in std_ulogic; - signal usbo : in grusb_out_type; - signal usbi : out grusb_in_type; - constant ep : in integer; - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - constant device_address : in std_logic_vector(6 downto 0); - variable TP : inout boolean; - signal hs : in std_ulogic; - variable timeout : out boolean); - - procedure hs_handshake ( - signal clk : in std_ulogic; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - signal uctrl : out uctrl_type; - signal hs : in std_ulogic; - constant uiface : in integer); - -end usbsim; - -package body usbsim is - - ----------------------------------------------------------------------------- - --usb crc5 calculator. - --in: std_logic_vector(10 downto 0) - --out: std_logic_vector(4 downto 0) - --desrciption: calculates the inverted usb crc5 value on argument. - ----------------------------------------------------------------------------- - function crc5 ( - constant din : std_logic_vector(10 downto 0)) - return std_logic_vector is - - variable dout : std_logic_vector(4 downto 0); - begin - dout(4) := din(0) xor din(1) xor din(4) xor din(5) xor din(7) xor din(10); - dout(3) := din(0) xor din(3) xor din(4) xor din(6) xor din (9); - dout(2) := din(0) xor din(1) xor din(2) xor din(3) xor din(4) xor din(7) xor din(8) xor din(10); - dout(1) := din(0) xor din(1) xor din(2) xor din(3) xor din(6) xor din(7) xor din(9) xor '1'; - dout(0) := din(0) xor din(1) xor din(2) xor din(5) xor din(6) xor din(8); - - return dout; - end function crc5; - ----------------------------------------------------------------------------- - --usb crc16 calculator - --in: old crc16, din(7 downto 0) - --out new crc16 value - --descripton: calculates the usb crc16 value from earlier crc16 value and din - --crc16in set to X"FFFF" for first calculation. - ----------------------------------------------------------------------------- - - function crc16 ( - constant din : std_logic_vector(7 downto 0); - constant crc16in : std_logic_vector(15 downto 0)) - return std_logic_vector is - - variable dout : std_logic_vector(15 downto 0); - begin - dout(15) := din(0) xor din(1) xor din(2) xor din(3) xor din(4) xor din(5) xor din(6) xor din(7) xor - crc16in(7) xor crc16in(6) xor crc16in(5) xor crc16in(4) xor crc16in(3) xor crc16in(2) xor - crc16in(1) xor crc16in(0); - dout(14) := din(0) xor din(1) xor din(2) xor din(3) xor din(4) xor din(5) xor din(6) xor - crc16in(6) xor crc16in(5) xor crc16in(4) xor crc16in(3) xor crc16in(2) xor - crc16in(1) xor crc16in(0); - dout(13) := din(6) xor din(7) xor crc16in(7) xor crc16in(6); - dout(12) := din(5) xor din(6) xor crc16in(6) xor crc16in(5); - dout(11) := din(4) xor din(5) xor crc16in(5) xor crc16in(4); - dout(10) := din(3) xor din(4) xor crc16in(4) xor crc16in(3); - dout(9) := din(2) xor din(3) xor crc16in(3) xor crc16in(2); - dout(8) := din(1) xor din(2) xor crc16in(2) xor crc16in(1); - - dout(7) := din(0) xor din(1) xor crc16in(15) xor crc16in(1) xor crc16in(0); - dout(6) := din(0) xor crc16in(14) xor crc16in(0); - dout(5) := crc16in(13); - dout(4) := crc16in(12); - dout(3) := crc16in(11); - dout(2) := crc16in(10); - dout(1) := crc16in(9); - dout(0) := din(0) xor din(1) xor din(2) xor din(3) xor din(4) xor din(5) xor din(6) xor din(7) xor - crc16in(8) xor crc16in(7) xor crc16in(6) xor crc16in(5) xor crc16in(4) xor crc16in(3) xor crc16in(2) xor - crc16in(1) xor crc16in(0); - return dout; - end function crc16; - - function pidtostr( - constant pid : std_logic_vector(3 downto 0)) - return string is - variable s : string(1 to 8); - begin - case pid is - when TOUT => - s := "OUT "; - when TIN => - s := "IN "; - when SOF => - s := "SOF "; - when SETUP => - s := "SETUP "; - when DATA0 => - s := "DATA0 "; - when DATA1 => - s := "DATA1 "; - when DATA2 => - s := "DATA2 "; - when MDATA => - s := "MDATA "; - when TACK => - s := "ACK "; - when TNAK => - s := "NAK "; - when TSTALL => - s := "STALL "; - when TNYET => - s := "NYET "; - when PRE => - s := "PRE "; - when SPLIT => - s := "SPLIT "; - when PING => - s := "PING "; - when RESERVED => - s := "RESERVED"; - when others => - s := "Illegal "; - end case; - return s; - end function; - - ----------------------------------------------------------------------------- - -- This procedure prints a message to standard output - ----------------------------------------------------------------------------- - procedure uprint( - constant Comment: in String := "-"; - constant Severe: in Severity_Level := Note; - constant Screen: in Boolean := True) is - variable L: Line; - begin - if Screen then - Write(L, Now, Right, 15); - Write(L, " : " & Comment); - if Severe = Warning then - Write(L, String'(" # Warning, ")); - elsif Severe = Error then - Write(L, String'(" # Error, ")); - elsif Severe = Failure then - Write(L, String'(" # Failure, ")); - end if; - WriteLine(Output, L); - end if; - end procedure uprint; - - ----------------------------------------------------------------------------- - -- ULPI procedures - ----------------------------------------------------------------------------- - procedure gen_rxcmd ( - signal clk : in std_ulogic; - signal usbi : out grusb_in_type; - constant rxcmd : in std_logic_vector(7 downto 0)) is - begin - wait until rising_edge(clk); - usbi.dir <= '1'; usbi.nxt <= '0'; - wait until rising_edge(clk); - usbi.datain(7 downto 0) <= rxcmd; - wait until rising_edge(clk); - usbi.dir <= '0'; usbi.datain(7 downto 0) <= X"00"; - end procedure; - - procedure accept_regwrite ( - signal clk : in std_ulogic; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - signal uctrl : out uctrl_type) is - variable fw, fs, fc : boolean := false; - variable suspend : std_ulogic := '1'; - begin --- if usbo.dataout(7 downto 6) /= "10" then --- wait until usbo.dataout(7 downto 6) = "10"; --- end if; - while usbo.dataout(7 downto 6) /= "10" loop - wait for 1 ns; - end loop; - wait until rising_edge(clk); - wait for 1 ps; - usbi.nxt <= '1'; - if usbo.dataout(7 downto 0) = FCTRL_WADDR then fw := true; end if; - if usbo.dataout(7 downto 0) = FCTRL_SADDR then fs := true; end if; - if usbo.dataout(7 downto 0) = FCTRL_CADDR then fc := true; end if; - wait until falling_edge(clk); - wait until falling_edge(clk); - if fw then - uctrl.xcvrselect(0) <= usbo.dataout(0); - uctrl.termselect <= usbo.dataout(2); - uctrl.opmode(0) <= usbo.dataout(3); - uctrl.opmode(1) <= usbo.dataout(4); - suspend := usbo.dataout(6); - end if; - if fs then - if usbo.dataout(0) = '1' then uctrl.xcvrselect(0) <= '1'; end if; - if usbo.dataout(2) = '1' then uctrl.termselect <= '1'; end if; - if usbo.dataout(3) = '1' then uctrl.opmode(0) <= '1'; end if; - if usbo.dataout(4) = '1' then uctrl.opmode(1) <= '1'; end if; - if usbo.dataout(6) = '1' then suspend := '1'; end if; - end if; - if fc then - if usbo.dataout(0) = '1' then uctrl.xcvrselect(0) <= '0'; end if; - if usbo.dataout(2) = '1' then uctrl.termselect <= '0'; end if; - if usbo.dataout(3) = '1' then uctrl.opmode(0) <= '0'; end if; - if usbo.dataout(4) = '1' then uctrl.opmode(1) <= '0'; end if; - if usbo.dataout(6) = '1' then suspend := '0'; end if; - end if; - wait until rising_edge(usbo.stp); - usbi.nxt <= '0'; - if suspend = '0' then - wait until rising_edge(clk); - usbi.dir <= '1'; - wait until rising_edge(clk); - usbi.datain(7 downto 0) <= "000000" & J_STATE; - for i in 0 to 4 loop - wait until rising_edge(clk); - end loop; -- i - wait until falling_edge(clk); - uctrl.suspendm <= '0'; - else - wait until rising_edge(clk); - end if; - end procedure; - - procedure accept_regread ( - signal clk : in std_ulogic; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - constant vbus : in std_ulogic) is - begin --- if usbo.dataout(7 downto 6) /= "11" then --- wait until usbo.dataout(7 downto 6) = "11"; --- end if; - while usbo.dataout(7 downto 6) /= "11" loop - wait for 1 ns; - end loop; - wait until rising_edge(clk); - usbi.nxt <= '1'; - wait until rising_edge(clk); - usbi.nxt <= '0'; usbi.dir <= '1'; - wait until rising_edge(clk); - usbi.datain(7 downto 0) <= "000000" & vbus & '0'; - wait until rising_edge(clk); - usbi.dir <= '0'; - end procedure; - - - procedure ulpi_reset ( - signal clk : in std_ulogic; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - signal uctrl : out uctrl_type; - constant pullup : in boolean; - constant keepclk : in boolean) is - begin - usbi.dir <= '0'; - -- Wait for first txcmd (ulpi reset) - accept_regwrite(clk,usbi,usbo,uctrl); - - -- Assert dir and then generate an rxcmd - wait until rising_edge(clk); - usbi.dir <= '1'; - for i in 0 to 4 loop - wait until rising_edge(clk); - end loop; - usbi.dir <= '0'; - gen_rxcmd(clk,usbi,RXCMD_novbus); - - -- Wait for second txcmd (otg register write) - accept_regwrite(clk,usbi,usbo,uctrl); - -- Wait for third txcmd (interrupt register write) - accept_regwrite(clk,usbi,usbo,uctrl); - -- Wait for fourth txcmd (interrupt register write) - accept_regwrite(clk,usbi,usbo,uctrl); - -- Wait for fifth txcmd (ulpi reset) - accept_regwrite(clk,usbi,usbo,uctrl); - - -- Assert dir and then generate an rxcmd - wait until rising_edge(clk); - usbi.dir <= '1'; - for i in 0 to 4 loop - wait until rising_edge(clk); - end loop; - usbi.dir <= '0'; - gen_rxcmd(clk,usbi,RXCMD_novbus); - - -- If pull-up bit is enabled an extra register write will occur - if pullup then - accept_regwrite(clk,usbi,usbo,uctrl); - end if; - - if not keepclk then - accept_regwrite(clk,usbi,usbo,uctrl); - if usbo.suspendm = '1' then - if usbo.xcvrselect /= "00" or usbo.termselect /= '0' or - usbo.opmode /= "00" then - -- Wait for suspend (due to no vbus) - wait until usbo.suspendm = '0'; - end if; - end if; - end if; - - end procedure; - - procedure sendpacket( - signal clk : in std_ulogic; - constant len : in integer; - constant data : in octet_vector; - constant uiface : in integer; - constant dwidth : in integer; - signal rand : in std_logic_vector(7 downto 0); - signal usbi : out grusb_in_type; - signal hs : in std_ulogic) is - variable i : integer; - variable ws : integer; - begin - wait until rising_edge(clk); - if uiface = 0 then - usbi.linestate <= K_STATE; - if hs = '0' then - wait until rising_edge(clk); - end if; - usbi.rxactive <= '1'; - if (dwidth = 8) then --8-bit UTMI mode - i := 0; - while i < len loop - ws := conv_integer(rand(1 downto 0)); - if ws /= 0 then - for i in 0 to ws-1 loop - wait until rising_edge(clk); - end loop; - end if; - usbi.rxvalid <= '1'; usbi.datain(7 downto 0) <= data(i); - wait until rising_edge(clk); - usbi.rxvalid <= '0'; - i := i + 1; - end loop; - else --16-bit UTMI mode - i := 0; - while i < len loop - ws := conv_integer(rand(1 downto 0)); - if ws /= 0 then - for i in 0 to ws-1 loop - wait until rising_edge(clk); - end loop; - end if; - usbi.rxvalid <= '1'; usbi.datain(7 downto 0) <= data(i); - i := i + 1; - if (rand(7) = '1') and (i < len) then - usbi.rxvalidh <= '1'; usbi.datain(15 downto 8) <= data(i); - i := i + 1; - end if; - wait until rising_edge(clk); - usbi.rxvalid <= '0'; usbi.rxvalidh <= '0'; - end loop; - end if; - ws := conv_integer(rand(1 downto 0)); - if ws /= 0 then - for i in 0 to ws-1 loop - wait until rising_edge(clk); - end loop; - end if; - usbi.rxactive <= '0'; - if hs = '0' then - usbi.linestate <= SE0; - wait until clk = '1'; - usbi.linestate <= J_STATE; - end if; - else - if hs = '0' then - gen_rxcmd(clk,usbi,RXCMD_kstate); - wait until rising_edge(clk); - end if; - usbi.dir <= '1'; usbi.nxt <= '1'; - wait until rising_edge(clk); - usbi.nxt <= '0'; - if hs = '0' then - usbi.datain(7 downto 0) <= RXCMD_hsrxactive; - else - usbi.datain(7 downto 0) <= RXCMD_fsrxactive; - end if; - i := 0; - while i < len loop - ws := conv_integer(rand(1 downto 0)); - if ws /= 0 then - for i in 0 to ws-1 loop - wait until rising_edge(clk); - end loop; - end if; - usbi.nxt <= '1'; usbi.datain(7 downto 0) <= data(i); - wait until rising_edge(clk); - usbi.nxt <= '0'; - if hs = '0' then - usbi.datain(7 downto 0) <= RXCMD_hsrxactive; - else - usbi.datain(7 downto 0) <= RXCMD_fsrxactive; - end if; - i := i + 1; - end loop; - ws := conv_integer(rand(1 downto 0)); - if ws /= 0 then - for i in 0 to ws-1 loop - wait until rising_edge(clk); - end loop; - end if; - if hs = '1' then - usbi.datain(7 downto 0) <= RXCMD_eopse0; - else - usbi.datain(7 downto 0) <= RXCMD_eopse0; - wait until rising_edge(clk); - usbi.datain(7 downto 0) <= RXCMD_eopj; - end if; - wait until rising_edge(clk); - usbi.dir <= '0'; usbi.datain(7 downto 0) <= (others=>'0'); - end if; - wait until rising_edge(clk); - end procedure; - - procedure receivepacket( - signal clk : in std_ulogic; - constant uiface : in integer; - constant dwidth : in integer; - signal rand : in std_logic_vector(7 downto 0); - variable len : out integer; - variable data : out octet_vector; - variable TP : inout boolean; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - signal hs : in std_ulogic; - variable timeout : out boolean) is - variable ws : integer; - variable i : integer; - variable pvalid : std_ulogic; - variable stp : std_ulogic; - begin - stp := '0'; - if uiface = 0 then - usbi.linestate <= K_STATE; - if usbo.txvalid = '0' then - wait until usbo.txvalid = '1'; - end if; - i := 0; - pvalid := '1'; - while usbo.txvalid = '1' loop - ws := conv_integer(rand(1 downto 0)); - if ws /= 0 then - for i in 0 to ws-1 loop - wait until rising_edge(clk); - end loop; - end if; - usbi.txready <= '1'; - wait until rising_edge(clk); - if usbo.txvalid = '1' then - data(i) := usbo.dataout(7 downto 0); i := i + 1; - if (dwidth = 16) then - if usbo.txvalidh = '1' then - if pvalid = '0' then - uprint("ERROR: txvalidh asserted irregularly"); - TP := False; - end if; - pvalid := '1'; - data(i) := usbo.dataout(15 downto 8); i := i + 1; - else - pvalid := '0'; - end if; - end if; - end if; - usbi.txready <= '0'; - wait until falling_edge(clk); - if usbo.txvalid = '0' then - end if; - end loop; - usbi.txready <= '0'; len := i; - if hs = '0' then - wait until rising_edge(clk); - usbi.linestate <= SE0; - wait until rising_edge(clk); - usbi.linestate <= J_STATE; - end if; - else - i := 0; --- if usbo.dataout(7 downto 6) /= "01" then --- wait until usbo.dataout(7 downto 6) = "01" for 500 ns; --- end if; - while usbo.dataout(7 downto 6) /= "01" loop - wait for 1 ns; - end loop; - if usbo.dataout(7 downto 6) /= "01" then - timeout := true; - else - timeout := false; - wait until rising_edge(clk); - while stp = '0' loop - usbi.nxt <= '1'; - wait until rising_edge(clk); - data(i) := usbo.dataout(7 downto 0); - if i = 0 then - data(i)(7 downto 4) := not usbo.dataout(3 downto 0); - end if; - i := i+1; - wait until falling_edge(clk); - stp := usbo.stp; - end loop; - wait until rising_edge(clk); - usbi.nxt <= '0'; - len := i; - if hs = '1' then - gen_rxcmd(clk,usbi,RXCMD_jstate); - gen_rxcmd(clk,usbi,RXCMD_se0state); - else - gen_rxcmd(clk,usbi,RXCMD_se0state); - gen_rxcmd(clk,usbi,RXCMD_jstate); - end if; - end if; - end if; - end procedure; - - ----------------------------------------------------------------------------- - -- usb token packet procedure. - -- transmits a token packet, as specified by the input signals - ----------------------------------------------------------------------------- - procedure ttoken( - signal clk : in std_ulogic; - constant len : in integer range 0 to 16:= 3; - constant pid : in std_logic_vector(3 downto 0); - constant piderr : in boolean := false; - constant crcerr : in boolean := false; - constant device_address : in std_logic_vector(6 downto 0); - constant endpoint_number : in std_logic_vector(3 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal rand : in std_logic_vector(7 downto 0); - signal usbi : out grusb_in_type; - signal hs : in std_ulogic) is - variable p : octet_vector(0 to 15); - variable tmp : std_logic_vector(10 downto 0); - variable i : integer; - variable ws : integer; - begin - --build packet - for i in 0 to len-1 loop - case i is - when 0 => --PID - p(0) := not PID & PID; - --generate pid error - if piderr then - p(0)(conv_integer(rand(2 downto 0))) := - not p(0)(conv_integer(rand(2 downto 0))); - end if; - when 1 => --ADDR & EP - p(1) := endpoint_number(0) & device_address; - when 2 => --EP & CRC - tmp := endpoint_number & device_address; - p(2) := crc5(tmp) & endpoint_number(3 downto 1); - if crcerr then - p(2)(3+conv_integer(rand(1 downto 0))) := - not p(2)(3+conv_integer(rand(1 downto 0))); - end if; - when others => --EXCESSIVE DATA - p(i) := rand; - end case; - end loop; - - --packet transmission - sendpacket(clk, len, p, uiface, dwidth, rand, usbi, hs); - end ttoken; - - ----------------------------------------------------------------------------- - -- usb sof packet procedure. - -- transmit specified framenumber - - procedure tsof( - signal clk : in std_ulogic; - constant len : in integer range 0 to 16 := 3; - constant fno : in std_logic_vector(10 downto 0); - constant piderr : in boolean; - constant crcerr : in boolean; - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal usbi : out grusb_in_type; - signal hs : in std_ulogic) is - variable ws : integer; - variable p : octet_vector(0 to 15); - begin - --build packet - for i in 0 to len-1 loop - case i is - when 0 => --PID - p(0) := not SOF & SOF; - --generate pid error - if piderr then - p(0)(conv_integer(rand(2 downto 0))) := - not p(0)(conv_integer(rand(2 downto 0))); - end if; - when 1 => --fno - p(1) := fno(7 downto 0); - when 2 => --EP & CRC - p(2) := crc5(fno) & fno(10 downto 8); - if crcerr then - p(2)(3+conv_integer(rand(1 downto 0))) := - not p(2)(3+conv_integer(rand(1 downto 0))); - end if; - when others => --EXCESSIVE DATA - p(i) := rand; - end case; - end loop; - - --packet transmission - sendpacket(clk, len, p, uiface, dwidth, rand, usbi, hs); - end tsof; - - ----------------------------------------------------------------------------- - -- usb data packet procedure - -- transmits the number of bytes provided. - -- calculates and transmits crc16 value - - procedure tdata ( - signal clk : in std_ulogic; - constant pid : in std_logic_vector(3 downto 0); - constant piderr : in boolean := false; - constant crcerr : in boolean := false; - constant data : in octet_vector; - constant len : in integer range 0 to 3072; - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal usbi : out grusb_in_type; - signal hs : in std_ulogic) is - variable crc : std_logic_vector(15 downto 0) := X"FFFF"; - variable p : octet_vector(0 to len+2); - variable ws : integer; - begin - --build packet - for i in 0 to len loop - case i is - when 0 => -- PID - p(0) := not pid & pid; - if piderr then - p(0)(conv_integer(rand(2 downto 0))) := - not p(0)(conv_integer(rand(2 downto 0))); - end if; - when others => - p(i) := data(data'low+i-1); - crc := crc16(p(i), crc); - end case; - end loop; - crc := not crc; - if crcerr then - crc(conv_integer(rand(2 downto 0))) := - not crc(conv_integer(rand(2 downto 0))); - end if; - p(len+1) := crc(7 downto 0); - p(len+2) := crc(15 downto 8); - - --packet transmission - sendpacket(clk, len+3, p, uiface, dwidth, rand, usbi, hs); - end tdata; - - --------------------------------------------------------------------------- - -- usb receive handshake procedure - -- checks if the expected handshake was received properly - - procedure rhandshake ( - signal clk : in std_ulogic; - constant expected : in std_logic_vector(3 downto 0); - constant nyet : in boolean := false; - constant nak : in boolean := false; - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - variable TP : inout boolean; - variable gotnak : out boolean; - signal hs : in std_ulogic; - variable timeout : out boolean) is - variable res : boolean := false; - variable data : octet_vector(0 to 3071); - variable len : integer; - variable timeoutv : boolean; - begin - --receive packet - receivepacket(clk, uiface, dwidth, rand, len, data, TP, usbi, usbo, hs, timeoutv); - timeout := timeoutv; - if not timeoutv then - --check packet - if (len /= 1) then - uprint("ERROR: Handshake of illegal length(" & tost(len) &") received"); - TP := False; - elsif (not data(0)(7 downto 4)) /= data(0)(3 downto 0) then - uprint("ERROR: PID and inverted PID fields do not match"); - TP := False; - end if; - gotnak := (data(0)(3 downto 0) = TNAK) and TP; - - if not ((data(0)(3 downto 0) = expected) or - ((data(0)(3 downto 0) = TNYET) and nyet) or - ((data(0)(3 downto 0) = TNAK) and nak)) then - uprint("ERROR: PIDs do not match"); - uprint("Expected: " & pidtostr(expected) & " Received: " & pidtostr(data(0)(3 downto 0))); - TP := False; - end if; - end if; - end rhandshake; - - procedure rhandshake ( - signal clk : in std_ulogic; - constant expected : in std_logic_vector(3 downto 0); - constant nyet : in boolean := false; - constant nak : in boolean := false; - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - variable TP : inout boolean; - variable gotnak : out boolean; - variable gotnyet : out boolean; - signal hs : in std_ulogic; - variable timeout : out boolean) is - variable res : boolean := false; - variable data : octet_vector(0 to 3071); - variable len : integer; - variable timeoutv : boolean; - begin - --receive packet - receivepacket(clk, uiface, dwidth, rand, len, data, TP, usbi, usbo, hs, timeoutv); - timeout := timeoutv; - if not timeoutv then - --check packet - if (len /= 1) then - uprint("ERROR: Handshake of illegal length(" & tost(len) &") received"); - TP := False; - elsif (not data(0)(7 downto 4)) /= data(0)(3 downto 0) then - uprint("ERROR: PID and inverted PID fields do not match"); - TP := False; - end if; - gotnak := (data(0)(3 downto 0) = TNAK) and TP; - gotnyet := (data(0)(3 downto 0) = TNYET) and TP; - - if not ((data(0)(3 downto 0) = expected) or - ((data(0)(3 downto 0) = TNYET) and nyet) or - ((data(0)(3 downto 0) = TNAK) and nak)) then - uprint("ERROR: PIDs do not match"); - uprint("Expected: " & pidtostr(expected) & " Received: " & pidtostr(data(0)(3 downto 0))); - TP := False; - end if; - end if; - end rhandshake; - ------------------------------------------------------------------------------ - -- usb receive data packet procedure - -- calculates and compare crc16 value - - procedure rdata( - signal clk : in std_ulogic; - constant expected : in std_logic_vector(3 downto 0); - constant nak : in boolean := false; - constant nbytes : in integer; - constant expdata : in octet_vector; - constant ep : in integer; - constant device_address : in std_logic_vector(6 downto 0); - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - variable TP : inout boolean; - constant verbose : in boolean; - signal hs : in std_ulogic; - constant retryiso : in boolean; -- set to true only when a - -- zero byte DATA0 response - -- from a isochronous ep - -- should lead to a retry of - -- the IN - variable timeout : out boolean) is - - variable res : boolean := false; - variable crc : std_logic_vector(15 downto 0) := X"FFFF"; - variable s : line; - variable bytes : integer := 0; - variable msg : boolean := false; - variable dout : std_logic_vector(7 downto 0); - variable err : boolean := false; - constant str : string := ", "; - variable data : octet_vector(0 to 3071); - variable len : integer; - begin - usbi <= usbi_none; usbi.linestate <= K_STATE; - while true loop - ttoken(clk, 3, TIN, false, false, device_address, conv_std_logic_vector(ep, 4), uiface, dwidth, rand, usbi, hs); - receivepacket(clk, uiface, dwidth, rand, len, data, TP, usbi, usbo, hs, timeout); - if (len > 0) then - if (data(0)(3 downto 0) = not data(0)(7 downto 4)) then - if (nak and (data(0)(3 downto 0) = TNAK)) or (retryiso and data(0)(3 downto 0) = DATA0 and len = 3) then - if not msg then - if (retryiso and data(0)(3 downto 0) = DATA0 and len = 3) then - if verbose then - uprint("Zero byte DATA0 received from isochornous endpoint, retry IN"); - end if; - else - if verbose then - uprint("NAK received. Device not ready to send data. Trying new IN"); - end if; - end if; - msg := true; - end if; - next; - else - if (data(0)(3 downto 0) = expected) then - case expected is - when TNAK => - if not msg then - uprint("NAK received. Device not ready to send data. Trying new IN"); - msg := true; - end if; - next; - when TSTALL => - uprint("STALL PID received. Aborting receive"); - err := true; - exit; - when TNYET => - uprint("NYET PID received. Should not be returned for IN tokens. Aborting Receive"); - TP := false; err := true; - exit; - when DATA0 => - exit; - when DATA1 => - exit; - when DATA2 => - exit; - when others => - uprint("Illegal PID returned for this stage. Aborting Receive"); - TP := false; err := true; - exit; - end case; - else - uprint("ERROR: Incorrect PID received. Got: " & pidtostr(data(0)(3 downto 0)) & " Expected: " & pidtostr(expected)); - TP := false; err := true; - exit; - end if; - end if; - else - uprint("ERROR: PID and Inverted PID fields do not match"); - TP := False; err := true; - exit; - end if; - else - uprint("ERROR: Zero length packet received"); - TP := False; err := true; - exit; - end if; - end loop; - if not err then - if verbose then - uprint("Total amount of received bytes: " & tost(len)); - end if; - if (len-3 /= nbytes) then - uprint("ERROR: Wrong amount of data accepted. Expected: " & tost(nbytes) & " Got: " & tost(len-3)); - TP := False; - end if; - for i in 0 to len-1 loop - if (i > 0) and (i < len-2) then - crc := crc16(data(data'low+i), crc); - if data(data'low+i) /= expdata(expdata'low+i-1) then - uprint("ERROR in received data. Index: " & tost(i) & " Expected: " & tost(expdata(expdata'low+i-1)) & " got: " & tost(data(data'low+i))); - TP := false; - end if; - end if; - if verbose then - uprint(tost(data(data'low+i))); - end if; - end loop; - if ((not crc(7 downto 0)) /= data(data'low+len-2)) or - ((not crc(15 downto 8)) /= data(data'low+len-1)) then - uprint("ERROR: CRC16 checksum do not match"); - TP := False; - end if; - end if; - end rdata; - ------------------------------------------------------------------------------ - -- usb receive data packet procedure - -- calculates and compare crc16 value - - procedure rdata( - signal clk : in std_ulogic; - constant expected : in std_logic_vector(3 downto 0); - constant nak : in boolean := false; - constant nbytes : in integer; - constant expdata : in octet_vector; - constant ep : in integer; - constant device_address : in std_logic_vector(6 downto 0); - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - variable TP : inout boolean; - constant verbose : in boolean; - signal hs : in std_ulogic; - constant retryiso : in boolean; -- set to true only when a - -- zero byte DATA0 response - -- from a isochronous ep - -- should lead to a retry of - -- the IN - variable timeout : out boolean; - variable recdata : out octet_vector; - constant checkdata : in boolean) is - - variable res : boolean := false; - variable crc : std_logic_vector(15 downto 0) := X"FFFF"; - variable s : line; - variable bytes : integer := 0; - variable msg : boolean := false; - variable dout : std_logic_vector(7 downto 0); - variable err : boolean := false; - constant str : string := ", "; - variable data : octet_vector(0 to 3071); - variable len : integer; - begin - usbi <= usbi_none; usbi.linestate <= K_STATE; - while true loop - ttoken(clk, 3, TIN, false, false, device_address, conv_std_logic_vector(ep, 4), uiface, dwidth, rand, usbi, hs); - receivepacket(clk, uiface, dwidth, rand, len, data, TP, usbi, usbo, hs, timeout); - if (len > 0) then - if (data(0)(3 downto 0) = not data(0)(7 downto 4)) then - if (nak and (data(0)(3 downto 0) = TNAK)) or (retryiso and data(0)(3 downto 0) = DATA0 and len = 3) then - if not msg then - if (retryiso and data(0)(3 downto 0) = DATA0 and len = 3) then - if verbose then - uprint("Zero byte DATA0 received from isochornous endpoint, retry IN"); - end if; - else - if verbose then - uprint("NAK received. Device not ready to send data. Trying new IN"); - end if; - end if; - msg := true; - end if; - next; - else - if (data(0)(3 downto 0) = expected) then - case expected is - when TNAK => - if not msg then - uprint("NAK received. Device not ready to send data. Trying new IN"); - msg := true; - end if; - next; - when TSTALL => - uprint("STALL PID received. Aborting receive"); - err := true; - exit; - when TNYET => - uprint("NYET PID received. Should not be returned for IN tokens. Aborting Receive"); - TP := false; err := true; - exit; - when DATA0 => - exit; - when DATA1 => - exit; - when DATA2 => - exit; - when others => - uprint("Illegal PID returned for this stage. Aborting Receive"); - TP := false; err := true; - exit; - end case; - else - uprint("ERROR: Incorrect PID received. Got: " & pidtostr(data(0)(3 downto 0)) & " Expected: " & pidtostr(expected)); - TP := false; err := true; - exit; - end if; - end if; - else - uprint("ERROR: PID and Inverted PID fields do not match"); - TP := False; err := true; - exit; - end if; - else - uprint("ERROR: Zero length packet received"); - TP := False; err := true; - exit; - end if; - end loop; - if not err then - if verbose then - uprint("Total amount of received bytes: " & tost(len)); - end if; - if (len-3 /= nbytes) then - uprint("ERROR: Wrong amount of data accepted. Expected: " & tost(nbytes) & " Got: " & tost(len-3)); - TP := False; - end if; - for i in 0 to len-1 loop - if (i > 0) and (i < len-2) then - crc := crc16(data(data'low+i), crc); - if checkdata then - if data(data'low+i) /= expdata(expdata'low+i-1) then - uprint("ERROR in received data. Index: " & tost(i) & " Expected: " & tost(expdata(expdata'low+i-1)) & " got: " & tost(data(data'low+i))); - TP := false; - end if; - end if; - recdata(recdata'low+i-1) := data(data'low+i); - end if; - if verbose then - uprint(tost(data(data'low+i))); - end if; - end loop; - if ((not crc(7 downto 0)) /= data(data'low+len-2)) or - ((not crc(15 downto 8)) /= data(data'low+len-1)) then - uprint("ERROR: CRC16 checksum do not match"); - TP := False; - end if; - end if; - end rdata; - - --------------------------------------------------------------------------- - -- usb transmit handshake procedure - -- sends specified handshake packet - - procedure shandshake ( - signal clk : in std_ulogic; - constant hpid : in std_logic_vector(3 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - signal rand : in std_logic_vector(7 downto 0); - signal usbi : out grusb_in_type; - signal hs : in std_ulogic) is - variable p : octet_vector(0 to 0); - begin - p(0) := not hpid & hpid; - sendpacket(clk, 1, p, uiface, dwidth, rand, usbi, hs); - end shandshake; - - ----------------------------------------------------------------------------- - -- get device status - procedure getstatus ( - constant dir : in std_logic_vector(3 downto 0); - constant stall : in boolean := false; - constant nak : in boolean := true; - signal clk : in std_ulogic; - signal usbo : in grusb_out_type; - signal usbi : out grusb_in_type; - constant ep : in integer; - signal rand : in std_logic_vector(7 downto 0); - constant uiface : in integer; - constant dwidth : in integer; - constant device_address : in std_logic_vector(6 downto 0); - variable TP : inout boolean; - signal hs : in std_ulogic; - variable timeout : out boolean) is - variable pid : std_logic_vector(3 downto 0); - variable data : octet_vector(0 to 0); - variable gotnak : boolean; - begin - if dir = TIN then - if stall then - pid := TSTALL; - else - pid := DATA1; - end if; - rdata(clk, pid, nak, 0, data, ep, device_address, rand, - uiface, dwidth, usbi, usbo, TP, false, hs, false, timeout); - shandshake(clk, TACK, uiface, dwidth, rand, usbi, hs); - elsif dir = TOUT then - if stall then - pid := TSTALL; - else - pid := TACK; - end if; - gotnak := true; - while gotnak loop - ttoken(clk, 3, TOUT, false, false, device_address, conv_std_logic_vector(ep, 4), uiface, dwidth, rand, usbi, hs); - tdata(clk, DATA1, false, false, data(0 to 0), 0, rand, uiface, dwidth, usbi, hs); - rhandshake (clk, pid, false, nak, rand, uiface, dwidth, usbi, usbo, TP, gotnak, hs, timeout); - end loop; - end if; - end getstatus; - - procedure hs_handshake ( - signal clk : in std_ulogic; - signal usbi : out grusb_in_type; - signal usbo : in grusb_out_type; - signal uctrl : out uctrl_type; - signal hs : in std_ulogic; - constant uiface : in integer) is - begin - usbi.linestate <= SE0; - if uiface = 1 then - gen_rxcmd(clk,usbi,RXCMD_se0state); - accept_regwrite(clk,usbi,usbo,uctrl); - if usbo.xcvrselect(0) = '1' then - wait until usbo.xcvrselect(0) = '0'; - end if; - else - wait until usbo.xcvrselect(0) = '0'; - end if; - - if uiface = 0 then - if usbo.txvalid = '0' then wait until usbo.txvalid = '1'; end if; - else - if usbo.dataout(7 downto 0) = "00000000" then - wait until usbo.dataout(7 downto 0) /= "00000000"; - end if; - end if; - - if uiface = 0 then - usbi.txready <= '1'; usbi.linestate <= K_STATE; - wait until usbo.txvalid = '0'; - usbi.linestate <= K_STATE; - usbi.txready <= '0'; - else - wait until rising_edge(clk); - usbi.nxt <= '1'; - wait until rising_edge(usbo.stp); - wait until rising_edge(clk); - usbi.nxt <= '0'; - end if; - - wait for 50 us; - - for i in 0 to 5 loop - if (i mod 2) = 0 then - usbi.linestate <= K_STATE; - if uiface = 1 then - gen_rxcmd(clk,usbi,RXCMD_kstate); - end if; - else - usbi.linestate <= J_STATE; - if uiface = 1 then - gen_rxcmd(clk,usbi,RXCMD_jstate); - end if; - end if; - if uiface = 1 then - if i = 5 then - accept_regwrite(clk,usbi,usbo,uctrl); - end if; - end if; - wait for 45 us; - end loop; - usbi.linestate <= SE0; - if uiface = 1 then - gen_rxcmd(clk,usbi,RXCMD_se0state); - else - if usbo.termselect /= '0' then - wait until usbo.termselect = '0'; - end if; - end if; - end hs_handshake; - -end usbsim; diff --git a/lib/gaisler/spacewire/grspw.vhd b/lib/gaisler/spacewire/grspw.vhd index beba3532..94cfd58d 100644 --- a/lib/gaisler/spacewire/grspw.vhd +++ b/lib/gaisler/spacewire/grspw.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -62,7 +62,6 @@ entity grspw is memtech : integer range 0 to NTECH := DEFMEMTECH; nodeaddr : integer range 0 to 255 := 254; destkey : integer range 0 to 255 := 0 - ); port( rst : in std_ulogic; @@ -247,7 +246,9 @@ struct : if netlist = 1 generate fifosize2 => fifosize2, rxunaligned => rxunaligned, rmapbufs => rmapbufs, - scantest => scantest) + scantest => scantest, + nodeaddr => nodeaddr, + destkey => destkey) port map( rst => rst, clk => clk, @@ -430,7 +431,7 @@ end generate; " bytes, irq " & tost(pirq)); end generate; - msg1 : if (rmap = 1) generate + msg1 : if (rmap /= 0) generate bootmsg : report_version generic map ("grspw" & tost(pindex) & ": Spacewire link rev " & tost(REVISION) & ", AHB fifos 2x " & diff --git a/lib/gaisler/spacewire/grspw2.vhd b/lib/gaisler/spacewire/grspw2.vhd index 0512ce74..a71ab98c 100644 --- a/lib/gaisler/spacewire/grspw2.vhd +++ b/lib/gaisler/spacewire/grspw2.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -19,7 +19,7 @@ ----------------------------------------------------------------------------- -- Entity: grspw2 -- File: grspw2.vhd --- Author: Marko Isomaki - Gaisler Research +-- Author: Marko Isomaki - Gaisler Research -- Description: GRLIB wrapper for grspw core ------------------------------------------------------------------------------ library ieee; @@ -44,7 +44,7 @@ entity grspw2 is paddr : integer range 0 to 16#FFF# := 0; pmask : integer range 0 to 16#FFF# := 16#FFF#; pirq : integer range 0 to NAHBIRQ-1 := 0; - rmap : integer range 0 to 1 := 0; + rmap : integer range 0 to 2 := 0; rmapcrc : integer range 0 to 1 := 0; fifosize1 : integer range 4 to 32 := 32; fifosize2 : integer range 16 to 64 := 64; @@ -60,7 +60,9 @@ entity grspw2 is input_type : integer range 0 to 4 := 0; output_type : integer range 0 to 2 := 0; rxtx_sameclk : integer range 0 to 1 := 0; - netlist : integer range 0 to 1 := 0 + netlist : integer range 0 to 1 := 0; + nodeaddr : integer range 0 to 255 := 254; + destkey : integer range 0 to 255 := 0 ); port( rst : in std_ulogic; @@ -82,7 +84,7 @@ architecture rtl of grspw2 is constant fabits1 : integer := log2(fifosize1); constant fabits2 : integer := log2(fifosize2); constant rfifo : integer := 5 + log2(rmapbufs); - constant REVISION : integer := 0; + constant REVISION : integer := 0; constant pconfig : apb_config_type := ( 0 => ahb_device_reg ( VENDOR_GAISLER, GAISLER_SPW2, 0, REVISION, pirq), 1 => apb_iobar(paddr, pmask)); @@ -97,14 +99,14 @@ architecture rtl of grspw2 is signal rxwrite : std_ulogic; signal rxwdata : std_logic_vector(31 downto 0); signal rxwaddress : std_logic_vector(4 downto 0); - signal rxrdata : std_logic_vector(31 downto 0); + signal rxrdata : std_logic_vector(31 downto 0); --tx ahb fifo signal txrenable : std_ulogic; signal txraddress : std_logic_vector(4 downto 0); signal txwrite : std_ulogic; signal txwdata : std_logic_vector(31 downto 0); signal txwaddress : std_logic_vector(4 downto 0); - signal txrdata : std_logic_vector(31 downto 0); + signal txrdata : std_logic_vector(31 downto 0); --nchar fifo signal ncrenable : std_ulogic; signal ncraddress : std_logic_vector(5 downto 0); @@ -121,15 +123,15 @@ architecture rtl of grspw2 is signal rmrdata : std_logic_vector(7 downto 0); --misc signal irq : std_ulogic; - signal testin : std_logic_vector(3 downto 0); + signal testin : std_logic_vector(TESTIN_WIDTH-1 downto 0); signal rxclk : std_logic_vector(1 downto 0); signal hwdata : std_logic_vector(31 downto 0); signal hrdata : std_logic_vector(31 downto 0); -begin +begin - testin <= ahbmi.testen & "000"; + testin <= ahbmi.testen & "0" & ahbmi.testin(TESTIN_WIDTH-3 downto 0); rtl : if netlist = 0 generate @@ -146,7 +148,10 @@ rtl : if netlist = 0 generate dmachan => dmachan, tech => tech, input_type => input_type, - output_type => output_type) + output_type => output_type, + rxtx_sameclk => rxtx_sameclk, + nodeaddr => nodeaddr, + destkey => destkey) port map( rst => rst, clk => clk, @@ -156,7 +161,7 @@ rtl : if netlist = 0 generate txclkn => txclkn, --ahb mst in hgrant => ahbmi.hgrant(hindex), - hready => ahbmi.hready, + hready => ahbmi.hready, hresp => ahbmi.hresp, hrdata => hrdata, --ahb mst out @@ -169,12 +174,12 @@ rtl : if netlist = 0 generate hburst => ahbmo.hburst, hprot => ahbmo.hprot, hwdata => hwdata, - --apb slv in - psel => apbi.psel(pindex), - penable => apbi.penable, - paddr => apbi.paddr, - pwrite => apbi.pwrite, - pwdata => apbi.pwdata, + --apb slv in + psel => apbi.psel(pindex), + penable => apbi.penable, + paddr => apbi.paddr, + pwrite => apbi.pwrite, + pwdata => apbi.pwdata, --apb slv out prdata => apbo.prdata, --spw in @@ -194,36 +199,37 @@ rtl : if netlist = 0 generate timeout => swno.timeout, --irq irq => irq, - --misc + --misc clkdiv10 => swni.clkdiv10, - --rmapen - rmapen => swni.rmapen, + --rmapen + rmapen => swni.rmapen, + rmapnodeaddr => swni.rmapnodeaddr, --rx ahb fifo rxrenable => rxrenable, - rxraddress => rxraddress, + rxraddress => rxraddress, rxwrite => rxwrite, - rxwdata => rxwdata, + rxwdata => rxwdata, rxwaddress => rxwaddress, - rxrdata => rxrdata, + rxrdata => rxrdata, --tx ahb fifo txrenable => txrenable, - txraddress => txraddress, + txraddress => txraddress, txwrite => txwrite, - txwdata => txwdata, + txwdata => txwdata, txwaddress => txwaddress, - txrdata => txrdata, + txrdata => txrdata, --nchar fifo ncrenable => ncrenable, - ncraddress => ncraddress, + ncraddress => ncraddress, ncwrite => ncwrite, - ncwdata => ncwdata, + ncwdata => ncwdata, ncwaddress => ncwaddress, - ncrdata => ncrdata, + ncrdata => ncrdata, --rmap buf rmrenable => rmrenable, - rmraddress => rmraddress, + rmraddress => rmraddress, rmwrite => rmwrite, - rmwdata => rmwdata, + rmwdata => rmwdata, rmwaddress => rmwaddress, rmrdata => rmrdata, linkdis => swno.linkdis, @@ -238,11 +244,24 @@ rtl : if netlist = 0 generate struct : if netlist = 1 generate rxclk <= rxclk1 & rxclk0; - - grspwc20 : grspwc2_net - generic map (rmap, rmapcrc, fifosize1, fifosize2, - rxunaligned, rmapbufs, scantest, ports, dmachan, - tech, input_type, output_type, rxtx_sameclk) + + grspwc20 : grspwc2_net + generic map ( + rmap => rmap, + rmapcrc => rmapcrc, + fifosize1 => fifosize1, + fifosize2 => fifosize2, + rxunaligned => rxunaligned, + rmapbufs => rmapbufs, + scantest => scantest, + ports => ports, + dmachan => dmachan, + tech => tech, + input_type => input_type, + output_type => output_type, + rxtx_sameclk => rxtx_sameclk, + nodeaddr => nodeaddr, + destkey => destkey) port map( rst => rst, clk => clk, @@ -251,7 +270,7 @@ rtl : if netlist = 0 generate txclkn => txclkn, --ahb mst in hgrant => ahbmi.hgrant(hindex), - hready => ahbmi.hready, + hready => ahbmi.hready, hresp => ahbmi.hresp, hrdata => hrdata, --ahb mst out @@ -264,12 +283,12 @@ rtl : if netlist = 0 generate hburst => ahbmo.hburst, hprot => ahbmo.hprot, hwdata => hwdata, - --apb slv in - psel => apbi.psel(pindex), - penable => apbi.penable, - paddr => apbi.paddr, - pwrite => apbi.pwrite, - pwdata => apbi.pwdata, + --apb slv in + psel => apbi.psel(pindex), + penable => apbi.penable, + paddr => apbi.paddr, + pwrite => apbi.pwrite, + pwdata => apbi.pwdata, --apb slv out prdata => apbo.prdata, --spw in @@ -289,38 +308,39 @@ rtl : if netlist = 0 generate timeout => swno.timeout, --irq irq => irq, - --misc + --misc clkdiv10 => swni.clkdiv10, dcrstval => swni.dcrstval, timerrstval => swni.timerrstval, - --rmapen - rmapen => swni.rmapen, + --rmapen + rmapen => swni.rmapen, + rmapnodeaddr => swni.rmapnodeaddr, --rx ahb fifo rxrenable => rxrenable, - rxraddress => rxraddress, + rxraddress => rxraddress, rxwrite => rxwrite, - rxwdata => rxwdata, + rxwdata => rxwdata, rxwaddress => rxwaddress, - rxrdata => rxrdata, + rxrdata => rxrdata, --tx ahb fifo txrenable => txrenable, - txraddress => txraddress, + txraddress => txraddress, txwrite => txwrite, - txwdata => txwdata, + txwdata => txwdata, txwaddress => txwaddress, - txrdata => txrdata, + txrdata => txrdata, --nchar fifo ncrenable => ncrenable, - ncraddress => ncraddress, + ncraddress => ncraddress, ncwrite => ncwrite, - ncwdata => ncwdata, + ncwdata => ncwdata, ncwaddress => ncwaddress, - ncrdata => ncrdata, + ncrdata => ncrdata, --rmap buf rmrenable => rmrenable, - rmraddress => rmraddress, + rmraddress => rmraddress, rmwrite => rmwrite, - rmwdata => rmwdata, + rmwdata => rmwdata, rmwaddress => rmwaddress, rmrdata => rmrdata, linkdis => swno.linkdis, @@ -340,17 +360,17 @@ rtl : if netlist = 0 generate end process; hrdata <= ahbreadword(ahbmi.hrdata); - + ahbmo.hwdata <= ahbdrivedata(hwdata); ahbmo.hirq <= (others => '0'); ahbmo.hconfig <= hconfig; ahbmo.hindex <= hindex; - + apbo.pconfig <= pconfig; apbo.pindex <= pindex; swno.rmapact <= '0'; --unused - + ------------------------------------------------------------------------------ -- FIFOS --------------------------------------------------------------------- ------------------------------------------------------------------------------ @@ -361,20 +381,20 @@ rtl : if netlist = 0 generate port map(clk, rxrenable, rxraddress(fabits1-1 downto 0), rxrdata, clk, rxwrite, rxwaddress(fabits1-1 downto 0), rxwdata, testin); - + --receiver nchar FIFO rx_ram1 : syncram_2p generic map(memtech*techfifo, fabits2, 10) port map(clk, ncrenable, ncraddress(fabits2-1 downto 0), ncrdata, clk, ncwrite, ncwaddress(fabits2-1 downto 0), ncwdata, testin); - + --transmitter FIFO tx_ram0 : syncram_2p generic map(memtech*techfifo, fabits1, 32) port map(clk, txrenable, txraddress(fabits1-1 downto 0), txrdata, clk, txwrite, txwaddress(fabits1-1 downto 0), txwdata, testin); --RMAP Buffer - rmap_ram : if (rmap = 1) generate + rmap_ram : if (rmap /= 0) generate ram0 : syncram_2p generic map(memtech, rfifo, 8) port map(clk, rmrenable, rmraddress(rfifo-1 downto 0), rmrdata, clk, rmwrite, rmwaddress(rfifo-1 downto 0), @@ -388,20 +408,20 @@ rtl : if netlist = 0 generate port map(clk, rxrenable, rxraddress(fabits1-1 downto 0), rxrdata, clk, rxwrite, rxwaddress(fabits1-1 downto 0), rxwdata, open, testin); - + --receiver nchar FIFO rx_ram1 : syncram_2pft generic map(memtech*techfifo, fabits2, 10, 0, 0, 2*techfifo) port map(clk, ncrenable, ncraddress(fabits2-1 downto 0), ncrdata, clk, ncwrite, ncwaddress(fabits2-1 downto 0), ncwdata, open, testin); - + --transmitter FIFO tx_ram0 : syncram_2pft generic map(memtech*techfifo, fabits1, 32, 0, 0, ft*techfifo) port map(clk, txrenable, txraddress(fabits1-1 downto 0), txrdata, clk, txwrite, txwaddress(fabits1-1 downto 0), txwdata, open, testin); --RMAP Buffer - rmap_ram : if (rmap = 1) generate + rmap_ram : if (rmap /= 0) generate ram0 : syncram_2pft generic map(memtech, rfifo, 8, 0, 0, 2) port map(clk, rmrenable, rmraddress(rfifo-1 downto 0), rmrdata, clk, rmwrite, rmwaddress(rfifo-1 downto 0), @@ -418,7 +438,7 @@ rtl : if netlist = 0 generate " bytes, irq " & tost(pirq)); end generate; - msg1 : if (rmap = 1) generate + msg1 : if (rmap /= 0) generate bootmsg : report_version generic map ("grspw" & tost(pindex) & ": Spacewire link rev " & tost(REVISION) & ", AHB fifos 2x " & @@ -426,7 +446,7 @@ rtl : if netlist = 0 generate " bytes, irq " & tost(pirq) & " , RMAP Buffer " & tost(rmapbufs*32) & " bytes"); end generate; - + -- pragma translate_on - + end architecture; diff --git a/lib/gaisler/spacewire/grspwm.vhd b/lib/gaisler/spacewire/grspwm.vhd index 403ca7a6..31e03a1b 100644 --- a/lib/gaisler/spacewire/grspwm.vhd +++ b/lib/gaisler/spacewire/grspwm.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -96,7 +96,7 @@ begin generic map(tech, hindex, pindex, paddr, pmask, pirq, rmap, rmapcrc, fifosize1, fifosize2, rxclkbuftype, rxunaligned, rmapbufs, ft, scantest, techfifo, ports, - dmachan, memtech, input_type, output_type, rxtx_sameclk, netlist) + dmachan, memtech, input_type, output_type, rxtx_sameclk, netlist, nodeaddr, destkey) port map(rst, clk, rxclk0, rxclk1, txclk, txclkn, ahbmi, ahbmo, apbi, apbo, swni, swno); end generate; diff --git a/lib/gaisler/spacewire/spacewire.vhd b/lib/gaisler/spacewire/spacewire.vhd index 4101b06c..05ca7114 100644 --- a/lib/gaisler/spacewire/spacewire.vhd +++ b/lib/gaisler/spacewire/spacewire.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -256,7 +256,8 @@ package spacewire is tech : integer; input_type : integer; input_level : integer := 0; - input_voltage : integer := x33v + input_voltage : integer := x33v; + rxclkbuftype : integer range 0 to 2 := 0 ); port( rstn : in std_ulogic; @@ -282,7 +283,7 @@ package spacewire is paddr : integer range 0 to 16#FFF# := 0; pmask : integer range 0 to 16#FFF# := 16#FFF#; pirq : integer range 0 to NAHBIRQ-1 := 0; - rmap : integer range 0 to 1 := 0; + rmap : integer range 0 to 2 := 0; rmapcrc : integer range 0 to 1 := 0; fifosize1 : integer range 4 to 32 := 32; fifosize2 : integer range 16 to 64 := 64; @@ -298,7 +299,9 @@ package spacewire is input_type : integer range 0 to 4 := 0; output_type : integer range 0 to 2 := 0; rxtx_sameclk : integer range 0 to 1 := 0; - netlist : integer range 0 to 1 := 0 + netlist : integer range 0 to 1 := 0; + nodeaddr : integer range 0 to 255 := 254; + destkey : integer range 0 to 255 := 0 ); port( rst : in std_ulogic; @@ -428,7 +431,8 @@ package spacewire is testen : in std_ulogic; testrst : in std_ulogic; lii : in grspw_codec_in_type; - lio : out grspw_codec_out_type + lio : out grspw_codec_out_type; + testin : in std_logic_vector(testin_width-1 downto 0) := testin_none ); end component; @@ -482,7 +486,8 @@ package spacewire is txclkn : in std_ulogic; testen : in std_ulogic; testrst : in std_ulogic; - testin : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic; di : in std_logic_vector(spwports*(2+2*dualport)-spwen downto 0); dvi : in std_logic_vector(spwports*(2+2*dualport)-spwen downto 0); dconnect : in std_logic_vector(spwports*(2+2*dualport)-spwen downto 0); @@ -531,7 +536,8 @@ package spacewire is lii : in grspw_dma_in_type; lio : out grspw_dma_out_type; testrst : in std_ulogic := '0'; - testen : in std_ulogic := '0' + testen : in std_ulogic := '0'; + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none ); end component; @@ -551,7 +557,8 @@ package spacewire is lii : in grspw_fifo_in_type; lio : out grspw_fifo_out_type; testrst : in std_ulogic := '0'; - testen : in std_ulogic := '0' + testen : in std_ulogic := '0'; + testin : in std_logic_vector(testin_width-1 downto 0) := testin_none ); end component; diff --git a/lib/gaisler/spi/spi.vhd b/lib/gaisler/spi/spi.vhd index 1c48ee65..73f0eb0c 100644 --- a/lib/gaisler/spi/spi.vhd +++ b/lib/gaisler/spi/spi.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -37,9 +37,10 @@ package spi is sck : std_ulogic; spisel : std_ulogic; astart : std_ulogic; + cstart : std_ulogic; end record; - constant spi_in_none : spi_in_type := ('0', '0', '0', '0', '0'); + constant spi_in_none : spi_in_type := ('0', '0', '0', '0', '0', '0'); type spi_out_type is record miso : std_ulogic; @@ -51,34 +52,39 @@ package spi is ssn : std_logic_vector(7 downto 0); -- used by GE/OC SPI core enable : std_ulogic; astart : std_ulogic; + aready : std_ulogic; end record; constant spi_out_none : spi_out_type := ('0', '0', '0', '0', '0', '0', - (others => '0'), '0', '0'); + (others => '0'), '0', '0', '0'); -- SPI master/slave controller component spictrl generic ( - pindex : integer := 0; - paddr : integer := 0; - pmask : integer := 16#fff#; - pirq : integer := 0; - fdepth : integer range 1 to 7 := 1; - slvselen : integer range 0 to 1 := 0; - slvselsz : integer range 1 to 32 := 1; - oepol : integer range 0 to 1 := 0; - odmode : integer range 0 to 1 := 0; - automode : integer range 0 to 1 := 0; - acntbits : integer range 1 to 32 := 32; - aslvsel : integer range 0 to 1 := 0; - twen : integer range 0 to 1 := 1; - maxwlen : integer range 0 to 15 := 0; - netlist : integer := 0; - syncram : integer range 0 to 1 := 1; - memtech : integer := 0; - ft : integer range 0 to 2 := 0; - scantest : integer range 0 to 1 := 0; - syncrst : integer range 0 to 1 := 0 + pindex : integer := 0; + paddr : integer := 0; + pmask : integer := 16#fff#; + pirq : integer := 0; + fdepth : integer range 1 to 7 := 1; + slvselen : integer range 0 to 1 := 0; + slvselsz : integer range 1 to 32 := 1; + oepol : integer range 0 to 1 := 0; + odmode : integer range 0 to 1 := 0; + automode : integer range 0 to 1 := 0; + acntbits : integer range 1 to 32 := 32; + aslvsel : integer range 0 to 1 := 0; + twen : integer range 0 to 1 := 1; + maxwlen : integer range 0 to 15 := 0; + netlist : integer := 0; + syncram : integer range 0 to 1 := 1; + memtech : integer := 0; + ft : integer range 0 to 2 := 0; + scantest : integer range 0 to 1 := 0; + syncrst : integer range 0 to 1 := 0; + automask0 : integer := 0; + automask1 : integer := 0; + automask2 : integer := 0; + automask3 : integer := 0 ); port ( rstn : in std_ulogic; diff --git a/lib/gaisler/spi/spi2ahb.vhd b/lib/gaisler/spi/spi2ahb.vhd index e7887822..00009cd8 100644 --- a/lib/gaisler/spi/spi2ahb.vhd +++ b/lib/gaisler/spi/spi2ahb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/spi/spi2ahb_apb.vhd b/lib/gaisler/spi/spi2ahb_apb.vhd index c37c2b44..606cee27 100644 --- a/lib/gaisler/spi/spi2ahb_apb.vhd +++ b/lib/gaisler/spi/spi2ahb_apb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/spi/spi2ahbx.vhd b/lib/gaisler/spi/spi2ahbx.vhd index 506f317b..fd3355b5 100644 --- a/lib/gaisler/spi/spi2ahbx.vhd +++ b/lib/gaisler/spi/spi2ahbx.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/spi/spi_flash.vhd b/lib/gaisler/spi/spi_flash.vhd index f826a703..98405a09 100644 --- a/lib/gaisler/spi/spi_flash.vhd +++ b/lib/gaisler/spi/spi_flash.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -307,7 +307,7 @@ architecture sim of spi_flash is begin -- simple_spi_flash_model - di <= 'Z'; + di <= 'Z'; do <= 'Z'; loop if csn /= '0' then wait until csn = '0'; end if; diff --git a/lib/gaisler/spi/spictrl.vhd b/lib/gaisler/spi/spictrl.vhd index 444ebdd4..3862ec5b 100644 --- a/lib/gaisler/spi/spictrl.vhd +++ b/lib/gaisler/spi/spictrl.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -66,7 +66,11 @@ entity spictrl is memtech : integer := 0; -- Memory technology ft : integer range 0 to 2 := 0; -- Fault-Tolerance scantest : integer range 0 to 1 := 0; -- Scan test support - syncrst : integer range 0 to 1 := 0 -- Use only sync reset + syncrst : integer range 0 to 1 := 0; -- Use only sync reset + automask0 : integer := 0; -- Mask 0 for automated transfers + automask1 : integer := 0; -- Mask 1 for automated transfers + automask2 : integer := 0; -- Mask 2 for automated transfers + automask3 : integer := 0 -- Mask 3 for automated transfers ); port ( rstn : in std_ulogic; @@ -114,7 +118,11 @@ architecture rtl of spictrl is memtech : integer range 0 to NTECH := 0; ft : integer range 0 to 2 := 0; scantest : integer range 0 to 1 := 0; - syncrst : integer range 0 to 1 := 0); + syncrst : integer range 0 to 1 := 0; + automask0 : integer := 0; + automask1 : integer := 0; + automask2 : integer := 0; + automask3 : integer := 0); port ( rstn : in std_ulogic; clk : in std_ulogic; @@ -136,6 +144,7 @@ architecture rtl of spictrl is spii_sck : in std_ulogic; spii_spisel : in std_ulogic; spii_astart : in std_ulogic; + spii_cstart : in std_ulogic; spio_miso : out std_ulogic; spio_misooen : out std_ulogic; spio_mosi : out std_ulogic; @@ -144,6 +153,7 @@ architecture rtl of spictrl is spio_sckoen : out std_ulogic; spio_enable : out std_ulogic; spio_astart : out std_ulogic; + spio_aready : out std_ulogic; slvsel : out std_logic_vector((slvselsz-1) downto 0)); end component; @@ -157,22 +167,26 @@ begin ctrl_rtl : if netlist = 0 generate rtlc : spictrlx generic map ( - rev => SPICTRL_REV, - fdepth => fdepth, - slvselen => slvselen, - slvselsz => slvselsz, - oepol => oepol, - odmode => odmode, - automode => automode, - acntbits => acntbits, - aslvsel => aslvsel, - twen => twen, - maxwlen => maxwlen, - syncram => syncram, - memtech => memtech, - ft => ft, - scantest => scantest, - syncrst => syncrst) + rev => SPICTRL_REV, + fdepth => fdepth, + slvselen => slvselen, + slvselsz => slvselsz, + oepol => oepol, + odmode => odmode, + automode => automode, + acntbits => acntbits, + aslvsel => aslvsel, + twen => twen, + maxwlen => maxwlen, + syncram => syncram, + memtech => memtech, + ft => ft, + scantest => scantest, + syncrst => syncrst, + automask0 => automask0, + automask1 => automask1, + automask2 => automask2, + automask3 => automask3) port map ( rstn => rstn, clk => clk, @@ -194,6 +208,7 @@ begin spii_sck => spii.sck, spii_spisel => spii.spisel, spii_astart => spii.astart, + spii_cstart => spii.cstart, spio_miso => spio.miso, spio_misooen => spio.misooen, spio_mosi => spio.mosi, @@ -202,23 +217,28 @@ begin spio_sckoen => spio.sckoen, spio_enable => spio.enable, spio_astart => spio.astart, + spio_aready => spio.aready, slvsel => slvsel); end generate ctrl_rtl; ctrl_netlist : if netlist /= 0 generate netlc : spictrl_net generic map ( - tech => netlist, - fdepth => fdepth, - slvselen => slvselen, - slvselsz => slvselsz, - oepol => oepol, - odmode => odmode, - automode => automode, - acntbits => acntbits, - aslvsel => aslvsel, - twen => twen, - maxwlen => maxwlen) + tech => netlist, + fdepth => fdepth, + slvselen => slvselen, + slvselsz => slvselsz, + oepol => oepol, + odmode => odmode, + automode => automode, + acntbits => acntbits, + aslvsel => aslvsel, + twen => twen, + maxwlen => maxwlen, + automask0 => automask0, + automask1 => automask1, + automask2 => automask2, + automask3 => automask3) port map ( rstn => rstn, clk => clk, @@ -240,6 +260,7 @@ begin spii_sck => spii.sck, spii_spisel => spii.spisel, spii_astart => spii.astart, + spii_cstart => spii.cstart, spio_miso => spio.miso, spio_misooen => spio.misooen, spio_mosi => spio.mosi, @@ -248,6 +269,7 @@ begin spio_sckoen => spio.sckoen, spio_enable => spio.enable, spio_astart => spio.astart, + spio_aready => spio.aready, slvsel => slvsel); end generate ctrl_netlist; diff --git a/lib/gaisler/spi/spictrlx.vhd b/lib/gaisler/spi/spictrlx.vhd index 6ecd2e5f..ee8524e0 100644 --- a/lib/gaisler/spi/spictrlx.vhd +++ b/lib/gaisler/spi/spictrlx.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -53,7 +53,7 @@ -- documentation for details. -- -- [Post revision 2] --- +-- -- Configurable maximum word length via the maxwlen generic -- -- [Revision 3] @@ -89,7 +89,7 @@ -- regard a transfer as finished even if SCK /= CPOL. If a new transfer was -- started before SCK had transitioned to CPOL the core would use the wrong -- edge for sampling MISO and changing MOSI. Added Mode register CITE field. --- +-- -- [Post revision 5] -- Added support for async reset -- @@ -99,6 +99,10 @@ -- If this condition occured then transmission of the new word would begin before -- the transmit shift register had been loaded with the new data. -- +-- Core would generate one extra SCK cycle for CPHA = 1 and FACT = 1. +-- +-- Added testoen handling for scan test +-- library ieee; use ieee.numeric_std.all; use ieee.std_logic_1164.all; @@ -120,7 +124,7 @@ entity spictrlx is odmode : integer range 0 to 1 := 0; -- Support open drain mode, only -- set if pads are i/o or od pads. automode : integer range 0 to 1 := 0; -- Enable automated transfer mode - acntbits : integer range 1 to 32 := 32; -- # Bits in am period counter + acntbits : integer range 1 to 32 := 32; -- # Bits in am period counter aslvsel : integer range 0 to 1 := 0; -- Automatic slave select twen : integer range 0 to 1 := 1; -- Enable three wire mode maxwlen : integer range 0 to 15 := 0; -- Maximum word length; @@ -129,12 +133,16 @@ entity spictrlx is memtech : integer range 0 to NTECH := 0; -- Memory technology ft : integer range 0 to 2 := 0; -- Fault-Tolerance scantest : integer range 0 to 1 := 0; -- Scan test support - syncrst : integer range 0 to 1 := 0 -- Use only sync reset + syncrst : integer range 0 to 1 := 0; -- Use only sync reset + automask0 : integer := 0; -- Mask 0 for automated transfers + automask1 : integer := 0; -- Mask 1 for automated transfers + automask2 : integer := 0; -- Mask 2 for automated transfers + automask3 : integer := 0 -- Mask 3 for automated transfers ); port ( rstn : in std_ulogic; clk : in std_ulogic; - + -- APB signals apbi_psel : in std_ulogic; apbi_penable : in std_ulogic; @@ -154,6 +162,7 @@ entity spictrlx is spii_sck : in std_ulogic; spii_spisel : in std_ulogic; spii_astart : in std_ulogic; + spii_cstart : in std_ulogic; spio_miso : out std_ulogic; spio_misooen : out std_ulogic; spio_mosi : out std_ulogic; @@ -162,9 +171,10 @@ entity spictrlx is spio_sckoen : out std_ulogic; spio_enable : out std_ulogic; spio_astart : out std_ulogic; + spio_aready : out std_ulogic; slvsel : out std_logic_vector((slvselsz-1) downto 0) ); - attribute sync_set_reset of rstn : signal is "true"; + attribute sync_set_reset of rstn : signal is "true"; end entity spictrlx; architecture rtl of spictrlx is @@ -173,10 +183,10 @@ architecture rtl of spictrlx is -- Constants ----------------------------------------------------------------------------- constant OEPOL_LEVEL : std_ulogic := conv_std_logic(oepol = 1); - + constant OUTPUT : std_ulogic := OEPOL_LEVEL; -- Enable outputs constant INPUT : std_ulogic := not OEPOL_LEVEL; -- Tri-state outputs - + constant FIFO_DEPTH : integer := 2**fdepth; constant SLVSEL_EN : integer := slvselen; constant SLVSEL_SZ : integer := slvselsz; @@ -193,9 +203,9 @@ architecture rtl of spictrlx is constant APBBITS : integer := 6+3*AM_EN; constant APBH : integer := 2+APBBITS-1; - + constant CAP_ADDR : std_logic_vector(APBH downto 2) := conv_std_logic_vector(0, APBBITS); - + constant MODE_ADDR : std_logic_vector(APBH downto 2) := conv_std_logic_vector(8, APBBITS); constant EVENT_ADDR : std_logic_vector(APBH downto 2) := conv_std_logic_vector(9, APBBITS); constant MASK_ADDR : std_logic_vector(APBH downto 2) := conv_std_logic_vector(10, APBBITS); @@ -204,18 +214,18 @@ architecture rtl of spictrlx is constant RD_ADDR : std_logic_vector(APBH downto 2) := conv_std_logic_vector(13, APBBITS); constant SLVSEL_ADDR : std_logic_vector(APBH downto 2) := conv_std_logic_vector(14, APBBITS); constant ASEL_ADDR : std_logic_vector(APBH downto 2) := conv_std_logic_vector(15, APBBITS); - + constant AMCFG_ADDR : std_logic_vector(APBH downto 2) := conv_std_logic_vector(16, APBBITS); constant AMPER_ADDR : std_logic_vector(APBH downto 2) := conv_std_logic_vector(17, APBBITS); - + constant AMMSK0_ADDR : std_logic_vector(10 downto 2) := "000010100"; -- 0x050 constant AMMSK1_ADDR : std_logic_vector(10 downto 2) := "000010101"; -- 0x054 constant AMMSK2_ADDR : std_logic_vector(10 downto 2) := "000010110"; -- 0x058 constant AMMSK3_ADDR : std_logic_vector(10 downto 2) := "000010111"; -- 0x05C - + constant AMTX_ADDR : std_logic_vector(10 downto 2) := "010000000"; -- 0x200 constant AMRX_ADDR : std_logic_vector(10 downto 2) := "100000000"; -- 0x40 - + constant SPICTRLCAPREG : std_logic_vector(31 downto 0) := conv_std_logic_vector(SLVSEL_SZ, 8) & conv_std_logic_vector(MAX_WLEN, 4) & conv_std_logic_vector(TW_EN, 1) & conv_std_logic_vector(AM_EN, 1) & @@ -230,7 +240,52 @@ architecture rtl of spictrlx is if MAX_WLEN = 0 then return 31; end if; return MAX_WLEN; end wlen; - + + constant PROG_AM_MASK : boolean := + AM_EN = 1 and automask0 = 0 and (automask1 = 0 or FIFO_DEPTH <= 32) and + (automask2 = 0 or FIFO_DEPTH <= 64) and (automask3 = 0 or FIFO_DEPTH <= 96); + constant AM_MASK : std_logic_vector(127 downto 0) := + conv_std_logic_vector_signed(automask3,32) & + conv_std_logic_vector_signed(automask2,32) & + conv_std_logic_vector_signed(automask1,32) & + conv_std_logic_vector_signed(automask0,32); + + function check_discont_am_mask return boolean is + variable foundzero : boolean; + begin + if AM_EN = 0 then + return false; + elsif PROG_AM_MASK then + return true; + else + foundzero := false; + for i in 0 to FIFO_DEPTH-1 loop + if AM_MASK(i) = '0' then + foundzero := true; + else + if foundzero then + return true; + end if; + end if; + end loop; + return false; + end if; + end function; + constant DISCONT_AM_MASK : boolean := check_discont_am_mask; + + function check_am_mask_end return integer is + variable ret : integer; + begin + ret := 0; + for i in 0 to FIFO_DEPTH-1 loop + if AM_MASK(i) = '1' then + ret := i; + end if; + end loop; + return ret; + end function; + constant AM_MASK_END : integer := check_am_mask_end; + ----------------------------------------------------------------------------- -- Types ----------------------------------------------------------------------------- @@ -253,7 +308,7 @@ architecture rtl of spictrlx is aseldel : std_logic_vector(1 downto 0); -- Asel delay tac : std_ulogic; tto : std_ulogic; -- Three-wire mode word order - igsel : std_ulogic; -- Ignore spisel input + igsel : std_ulogic; -- Ignore spisel input cite : std_ulogic; -- Require SCK = CPOL for TIP end end record; @@ -267,7 +322,7 @@ architecture rtl of spictrlx is nf : std_ulogic; -- Not full at : std_ulogic; -- Automated transfer end record; - + type spi_fifo is array (0 to (1-syncram)*(FIFO_DEPTH-1)) of std_logic_vector(wlen downto 0); type spi_amcfg_rec is record -- AM config register @@ -279,8 +334,9 @@ architecture rtl of spictrlx is eact : std_ulogic; -- Activate on external event erpt : std_ulogic; -- Repeat on external event, not on period done lock : std_ulogic; -- Lock receive registers when reading data + ecgc : std_ulogic; -- External clock gap control end record; - + type spi_am_rec is record -- Automode state -- Register interface cfg : spi_amcfg_rec; -- AM config register @@ -306,17 +362,17 @@ architecture rtl of spictrlx is apbaddr : std_logic_vector(FIFO_BITS-1 downto 0); rxsel : std_ulogic; end record; - + -- Two stage synchronizers on each input coming from off-chip type spi_in_local_type is record miso : std_ulogic; mosi : std_ulogic; sck : std_ulogic; spisel : std_ulogic; - end record; + end record; type spi_in_array is array (1 downto 0) of spi_in_local_type; - + -- Local spi out type without ssn type spi_out_local_type is record miso : std_ulogic; @@ -327,6 +383,7 @@ architecture rtl of spictrlx is sckoen : std_ulogic; enable : std_ulogic; astart : std_ulogic; + aready : std_ulogic; end record; -- Yet another subset of out type to make it easier for certain tools to @@ -335,7 +392,7 @@ architecture rtl of spictrlx is mosi : std_ulogic; sck : std_ulogic; end record; - + type spi_reg_type is record -- SPI registers mode : spi_mode_rec; -- Mode register @@ -347,8 +404,8 @@ architecture rtl of spictrlx is slvsel : std_logic_vector((SLVSEL_SZ-1) downto 0); -- Slave select register aslvsel : std_logic_vector((SLVSEL_SZ-1) downto 0); -- Automatic slave select -- - uf : std_ulogic; -- Slave in underflow condition - ov : std_ulogic; -- Receive overflow condition + uf : std_ulogic; -- Slave in underflow condition + ov : std_ulogic; -- Receive overflow condition td_occ : std_ulogic; -- Transmit register occupied rd_free : std_ulogic; -- Receive register free (empty) txfifo : spi_fifo; -- Transmit data FIFO @@ -357,7 +414,7 @@ architecture rtl of spictrlx is txd : std_logic_vector(wlen downto 0); -- Transmit shift register txdupd : std_ulogic; -- Update txd txdbyp : std_ulogic; -- txd update bypass - toggle : std_ulogic; -- SCK has toggled + toggle : std_ulogic; -- SCK has toggled samp : std_ulogic; -- Sample chng : std_ulogic; -- Change psck : std_ulogic; -- Previous value of SC @@ -379,6 +436,7 @@ architecture rtl of spictrlx is tbitcnt : std_logic_vector(log2(wlen+1)-1 downto 0); -- Current transmit bit divcnt : unsigned(9 downto 0); -- Clock scaler cgcnt : unsigned(5 downto 0); -- Clock gap counter + cgcntblock: std_ulogic; aselcnt : unsigned(1 downto 0); -- ASEL delay cgasel : std_ulogic; -- ASEL when entering CG -- @@ -393,13 +451,16 @@ architecture rtl of spictrlx is spiolb : spi_out_local_lb_type; -- astart : std_ulogic; + cstart : std_ulogic; + txdupd2 : std_ulogic; + twdir2 : std_ulogic; end record; ----------------------------------------------------------------------------- -- Sub programs ----------------------------------------------------------------------------- -- Returns a vector containing the character length - 1 in bits as selected - -- by the Mode field LEN. + -- by the Mode field LEN. function spilen ( len : std_logic_vector(3 downto 0)) return std_logic_vector is @@ -410,7 +471,7 @@ architecture rtl of spictrlx is return "0" & len; end if; end spilen; - + -- Write clear procedure wc ( reg_o : out std_ulogic; @@ -430,7 +491,7 @@ architecture rtl of spictrlx is for i in data'range loop rdata(i) := data(i); end loop; - return rdata; + return rdata; end function reverse; -- Performs a HWORD swap if len /= 0 @@ -474,11 +535,11 @@ architecture rtl of spictrlx is when 5 => rdata(5 downto 0) := sdata(5 downto 0); when 4 => rdata(4 downto 0) := sdata(4 downto 0); when 3 => rdata(3 downto 0) := sdata(3 downto 0); - when others => rdata := sdata; + when others => rdata := sdata; end case; return rdata; end select_data; - + -- purpose: Returns true when a slave is selected and the clock starts function slv_start ( spisel : std_ulogic; @@ -489,36 +550,36 @@ architecture rtl of spictrlx is begin -- slv_start if spisel = '0' then -- Slave is selected if fsck_chg = '1' then -- The clock has changed - return (cpol xor sck) = '1'; -- The clock is not idle + return (cpol xor sck) = '1'; -- The clock is not idle end if; end if; return false; end slv_start; - + ----------------------------------------------------------------------------- -- Signals ----------------------------------------------------------------------------- - + signal r, rin : spi_reg_type; type fifo_data_vector_array is array (automode downto 0) of std_logic_vector(wlen downto 0); type fifo_addr_vector_array is array (automode downto 0) of std_logic_vector(fdepth-1 downto 0); - + signal rx_di, rx_do, tx_di, tx_do : fifo_data_vector_array; signal rx_ra, rx_wa, tx_ra, tx_wa : fifo_addr_vector_array; signal rx_read, tx_read, rx_write, tx_write : std_logic_vector(automode downto 0); signal arstn : std_ulogic; - + begin arstn <= apbi_testrst when (scantest = 1) and (apbi_testen = '1') else rstn; - + -- SPI controller, register interface and related logic comb: process (r, rstn, apbi_psel, apbi_penable, apbi_paddr, apbi_pwrite, apbi_pwdata, apbi_testen, apbi_testrst, apbi_scanen, apbi_testoen, spii_miso, spii_mosi, spii_sck, spii_spisel, - spii_astart, rx_do, tx_do) + spii_astart, rx_do, tx_do, spii_cstart) variable v : spi_reg_type; variable apbaddr : std_logic_vector(APBH downto 2); variable apbout : std_logic_vector(31 downto 0); @@ -551,6 +612,9 @@ begin -- variable rntxd : std_logic_vector(0 to 31); variable ntxd : std_logic_vector(wlen downto 0); + + variable amask : std_logic_vector(FIFO_DEPTH-1 downto 0); + variable aloop : integer; begin -- process comb v := r; v.irq := '0'; apbaddr := apbi_paddr(APBH downto 2); apbout := (others => '0'); @@ -562,22 +626,43 @@ begin spisel := r.spii(1).spisel or r.mode.igsel; ntxd := r.td(wlen downto 0); rntxd := reverse(r.td); if r.mode.rev = '1' then ntxd := rntxd(31-wlen to 31); end if; - + + v.spio.aready := '0'; + + if AM_EN = 1 then + v.txdupd2 := '0'; + v.cstart := '0'; + if TW_EN = 1 then + v.twdir2 := r.twdir; + end if; + end if; + + if PROG_AM_MASK then + amask := r.am.mask; + aloop := FIFO_DEPTH-1; + else + amask := AM_MASK(FIFO_DEPTH-1 downto 0); + aloop := AM_MASK_END; + end if; + rx_rd := '0'; tx_rd := '0'; rx_wr := '0'; tx_wr := '0'; - + rstop1 := '0'; rstop2 := '0'; rstop3 := '0'; tstop1 := '0'; tstop2 := '0'; tstop3 := '0'; - + astart := '0'; v.am.txwrite := '0'; v.am.txwrite := '0'; v.am.rxread := '0'; if AM_EN = 1 then v.am.at := r.event.at; v.astart := spii_astart; if r.event.at = '0' then astart := spii_astart and (not r.astart); - v.am.mask := r.am.mask_shdw; + if PROG_AM_MASK then + v.am.mask := r.am.mask_shdw; + end if; end if; + if spii_cstart = '1' then v.cstart := '1'; end if; end if; - + if (apbi_psel and apbi_penable and (not apbi_pwrite)) = '1' then if apbaddr = CAP_ADDR then apbout := SPICTRLCAPREG; @@ -610,7 +695,7 @@ begin else null; end if; end if; end if; - + -- write registers if (apbi_psel and apbi_penable and apbi_pwrite) = '1' then if apbaddr = MODE_ADDR then @@ -625,7 +710,7 @@ begin v.mode.len := apbi_pwdata(23 downto 20); v.mode.pm := apbi_pwdata(19 downto 16); if TW_EN = 1 then v.mode.tw := apbi_pwdata(15); end if; - if ASEL_EN = 1 then v.mode.asel := apbi_pwdata(14); end if; + if ASEL_EN = 1 then v.mode.asel := apbi_pwdata(14); end if; v.mode.fact := apbi_pwdata(13); if OD_EN = 1 then v.mode.od := apbi_pwdata(12); end if; v.mode.cg := apbi_pwdata(11 downto 7); @@ -689,10 +774,12 @@ begin end if; if (apbi_psel and apbi_penable) = '1' then if apbaddr = AMCFG_ADDR then - apbout := zero32(31 downto 8) & r.am.cfg.lock & r.am.cfg.erpt & - r.am.cfg.seq & r.am.cfg.strict & r.am.cfg.ovtb & - r.am.cfg.ovdb & r.am.active & r.am.cfg.eact; + apbout := zero32(31 downto 9) & r.am.cfg.ecgc & r.am.cfg.lock & + r.am.cfg.erpt & r.am.cfg.seq & r.am.cfg.strict & + r.am.cfg.ovtb & r.am.cfg.ovdb & r.am.active & + r.am.cfg.eact; if apbi_pwrite = '1' then + v.am.cfg.ecgc := apbi_pwdata(8); v.am.cfg.lock := apbi_pwdata(7); v.am.cfg.erpt := apbi_pwdata(6); v.am.cfg.seq := apbi_pwdata(5); @@ -710,27 +797,35 @@ begin end if; elsif apbaddr = AMMSK0_ADDR then if FIFO_DEPTH > 32 then - apbout := r.am.mask(31 downto 0); - if apbi_pwrite = '1' then - v.am.mask_shdw(31 downto 0) := apbi_pwdata; + apbout := amask(31 downto 0); + if PROG_AM_MASK then + if apbi_pwrite = '1' then + v.am.mask_shdw(31 downto 0) := apbi_pwdata; + end if; end if; else - apbout(FIFO_DEPTH-1 downto 0) := r.am.mask(FIFO_DEPTH-1 downto 0); - if apbi_pwrite = '1' then - v.am.mask_shdw(FIFO_DEPTH-1 downto 0) := apbi_pwdata(FIFO_DEPTH-1 downto 0); + apbout(FIFO_DEPTH-1 downto 0) := amask(FIFO_DEPTH-1 downto 0); + if PROG_AM_MASK then + if apbi_pwrite = '1' then + v.am.mask_shdw(FIFO_DEPTH-1 downto 0) := apbi_pwdata(FIFO_DEPTH-1 downto 0); + end if; end if; end if; elsif apbaddr = AMMSK1_ADDR then if AM_MSK1_EN then if FIFO_DEPTH > 64 then - apbout := r.am.mask(63 downto 32); - if apbi_pwrite = '1' then - v.am.mask_shdw(63 downto 32) := apbi_pwdata; + apbout := amask(63 downto 32); + if PROG_AM_MASK then + if apbi_pwrite = '1' then + v.am.mask_shdw(63 downto 32) := apbi_pwdata; + end if; end if; else - apbout(FIFO_DEPTH-33 downto 0) := r.am.mask(FIFO_DEPTH-1 downto 32); - if apbi_pwrite = '1' then - v.am.mask_shdw(FIFO_DEPTH-1 downto 32) := apbi_pwdata(FIFO_DEPTH-33 downto 0); + apbout(FIFO_DEPTH-33 downto 0) := amask(FIFO_DEPTH-1 downto 32); + if PROG_AM_MASK then + if apbi_pwrite = '1' then + v.am.mask_shdw(FIFO_DEPTH-1 downto 32) := apbi_pwdata(FIFO_DEPTH-33 downto 0); + end if; end if; end if; else @@ -739,14 +834,18 @@ begin elsif apbaddr = AMMSK2_ADDR then if AM_MSK2_EN then if FIFO_DEPTH > 96 then - apbout := r.am.mask(95 downto 64); - if apbi_pwrite = '1' then - v.am.mask_shdw(95 downto 64) := apbi_pwdata; + apbout := amask(95 downto 64); + if PROG_AM_MASK then + if apbi_pwrite = '1' then + v.am.mask_shdw(95 downto 64) := apbi_pwdata; + end if; end if; else - apbout(FIFO_DEPTH-65 downto 0) := r.am.mask(FIFO_DEPTH-1 downto 64); - if apbi_pwrite = '1' then - v.am.mask_shdw(FIFO_DEPTH-1 downto 64) := apbi_pwdata(FIFO_DEPTH-65 downto 0); + apbout(FIFO_DEPTH-65 downto 0) := amask(FIFO_DEPTH-1 downto 64); + if PROG_AM_MASK then + if apbi_pwrite = '1' then + v.am.mask_shdw(FIFO_DEPTH-1 downto 64) := apbi_pwdata(FIFO_DEPTH-65 downto 0); + end if; end if; end if; else @@ -754,9 +853,11 @@ begin end if; elsif apbaddr = AMMSK3_ADDR then if AM_MSK3_EN then - apbout(FIFO_DEPTH-97 downto 0) := r.am.mask(FIFO_DEPTH-1 downto 96); - if apbi_pwrite = '1' then - v.am.mask_shdw(FIFO_DEPTH-1 downto 96) := apbi_pwdata(FIFO_DEPTH-97 downto 0); + apbout(FIFO_DEPTH-97 downto 0) := amask(FIFO_DEPTH-1 downto 96); + if PROG_AM_MASK then + if apbi_pwrite = '1' then + v.am.mask_shdw(FIFO_DEPTH-1 downto 96) := apbi_pwdata(FIFO_DEPTH-97 downto 0); + end if; end if; else null; @@ -798,7 +899,7 @@ begin end if; end if; end if; - + -- Handle transmit FIFO if r.td_occ = '1' and r.tfreecnt /= 0 then if syncram = 0 then @@ -810,7 +911,7 @@ begin v.tfreecnt := r.tfreecnt - 1; v.td_occ := '0'; if r.tfreecnt = FIFO_DEPTH then - v.txdbyp := r.running; + v.txdbyp := r.running and r.mode.ms and r.txdupd; v.txdupd := not r.uf; tx_rd := '1'; end if; @@ -823,7 +924,7 @@ begin v.am.txfifo(conv_integer(r.am.apbaddr)) := reverse(r.td)(31-wlen to 31); end if; end if; - + -- Update receive register and FIFO if r.rd_free = '1' and r.rfreecnt /= FIFO_DEPTH then if syncram = 0 then @@ -844,7 +945,7 @@ begin v.rd_free := '0'; end if; if v.rd_free = '1' and r.rfreecnt /= FIFO_DEPTH then rx_rd := '1'; end if; - + if r.mode.en = '1' then -- Core is enabled -- Not full detection if r.tfreecnt /= 0 or r.td_occ /= '1' then @@ -855,10 +956,10 @@ begin else v.event.nf := '0'; end if; - + -- Not empty detection if ((AM_EN = 0 or r.mode.amen = '0') and (r.rfreecnt /= FIFO_DEPTH or r.rd_free /= '1')) or - (AM_EN = 1 and r.mode.amen = '1' and r.am.unread /= zero32(FIFO_DEPTH-1 downto 0)) then + (AM_EN = 1 and r.mode.amen = '1' and r.am.unread /= zero128(FIFO_DEPTH-1 downto 0)) then v.event.ne := '1'; if (r.mask.ne and not r.event.ne) = '1' then v.irq := '1'; @@ -878,8 +979,8 @@ begin v.am.active := r.spio.astart or (astart and r.am.cfg.eact); v.am.cfg.act := v.am.active; v.am.rfreecnt := 0; - for i in 0 to FIFO_DEPTH-1 loop - if r.am.mask(i) = '1' then + for i in 0 to aloop loop + if amask(i) = '1' then v.am.rfreecnt := v.am.rfreecnt+1; end if; end loop; @@ -888,8 +989,8 @@ begin v.event.at := v.am.active; v.tdfi := (others => '0'); -- Check mask to see which word in the FIFO to start with. - for i in 0 to FIFO_DEPTH-1 loop - if r.am.mask(i) = '1' then + for i in 0 to aloop loop + if amask(i) = '1' then if tstop1 = '0' then v.tdfi := conv_std_logic_vector(i, r.tdfi'length); end if; @@ -897,45 +998,46 @@ begin end if; end loop; if v.am.active = '1' then - v.txdupd := '1'; tx_rd := '1'; + v.txdupd2 := '1'; tx_rd := '1'; v.tfreecnt := FIFO_DEPTH; - for i in 0 to FIFO_DEPTH-1 loop - if r.am.mask(i) = '1' then + for i in 0 to aloop loop + if amask(i) = '1' then v.tfreecnt := v.tfreecnt-1; end if; end loop; end if; v.rdli := (others => '0'); - for i in 0 to FIFO_DEPTH-1 loop + for i in 0 to aloop loop if rstop1 = '0' then - if r.am.mask(i) = '0' then + if amask(i) = '0' then v.rdli := v.rdli + 1; else rstop1 := '1'; end if; end if; end loop; + v.cstart := v.am.active; else -- Receive fifo handling if r.am.rxfull = '1' then -- AM RX fifo is filled -- Move to receive queue if the queue is empty or if there is no -- requirement on sequential transfers and the queue is not locked. - if (r.event.ne and (v.am.lock or r.am.cfg.seq)) = '0' then + if (r.event.ne and (v.am.lock or r.am.cfg.seq)) = '0' then -- Queue is empty if syncram = 0 then v.rxfifo := r.am.rxfifo; else v.am.rxsel := not r.am.rxsel; - end if; + end if; v.rdfi := (others => '0'); v.rfreecnt := r.am.rfreecnt; v.rd_free := '0'; v.am.rxfull := '0'; - for i in 0 to FIFO_DEPTH-1 loop - if r.am.mask(i) = '1' then + for i in 0 to aloop loop + if amask(i) = '1' then v.am.unread(i) := '1'; end if; - end loop; + end loop; end if; if r.event.tip = '0' and r.am.at = '1' then v.event.at := '0'; @@ -954,12 +1056,12 @@ begin end if; if (not v.am.rxfull or (r.am.cfg.strict and not r.am.cfg.ovtb)) = '1' then -- Start transfer. Initialize indexes and fifo counter - v.txdupd := '1'; tx_rd := '1'; + v.txdupd2 := '1'; tx_rd := '1'; v.am.cnt := unsigned(r.am.per); v.rdli := (others => '0'); - for i in 0 to FIFO_DEPTH-1 loop + for i in 0 to aloop loop if rstop2 = '0' then - if r.am.mask(i) = '0' then + if amask(i) = '0' then v.rdli := v.rdli + 1; else rstop2 := '1'; @@ -968,16 +1070,16 @@ begin end loop; v.tfreecnt := FIFO_DEPTH; v.am.rfreecnt := 0; - for i in 0 to FIFO_DEPTH-1 loop - if r.am.mask(i) = '1' then + for i in 0 to aloop loop + if amask(i) = '1' then v.am.rfreecnt := v.am.rfreecnt+1; v.tfreecnt := v.tfreecnt-1; end if; end loop; v.tdfi := (others => '0'); -- Check mask to see which word in the FIFO to start with. - for i in 0 to FIFO_DEPTH-1 loop - if r.am.mask(i) = '1' then + for i in 0 to aloop loop + if amask(i) = '1' then if tstop2 = '0' then v.tdfi := conv_std_logic_vector(i, r.tdfi'length); end if; @@ -989,14 +1091,15 @@ begin if v.am.skipdata = '0' then -- Clear AM receive fifo if we will overwrite it. v.am.rfreecnt := FIFO_DEPTH; - for i in 0 to FIFO_DEPTH-1 loop - if r.am.mask(i) = '0' then + for i in 0 to aloop loop + if amask(i) = '0' then v.am.rfreecnt := v.am.rfreecnt-1; end if; end loop; v.am.rxfull := '0'; end if; v.event.at := '1'; + v.cstart := astart and r.am.cfg.erpt; end if; end if; else @@ -1026,7 +1129,7 @@ begin elsif r.mode.en = '1' then v.psck := r.spii(1).sck; end if; - + --------------------------------------------------------------------------- -- SPI bus control --------------------------------------------------------------------------- @@ -1043,7 +1146,7 @@ begin else v.spio.mosioen := INPUT; end if; - v.spio.sckoen := OUTPUT; + v.spio.sckoen := OUTPUT; if TW_EN = 1 then v.twdir := OUTPUT xor r.mode.tto; end if; else if (spisel or r.mode.tw) = '0' then @@ -1061,7 +1164,7 @@ begin end if; if ((((AM_EN = 0 or r.mode.amen = '0') or (AM_EN = 1 and r.mode.amen = '1' and r.am.active = '1')) and - r.mode.ms = '1' and r.tfreecnt /= FIFO_DEPTH and r.txdupd = '0') or + r.mode.ms = '1' and r.tfreecnt /= FIFO_DEPTH and r.txdupd = '0' and (AM_EN = 0 or r.txdupd2 = '0')) or slv_start(spisel, r.mode.cpol, fsck, fsck_chg)) then -- Slave underrun detection if r.tfreecnt = FIFO_DEPTH then @@ -1096,7 +1199,7 @@ begin end if; end if; end if; - + -- samp and chng should not be changed on b2b if spisel /= '0' then v.samp := not r.mode.cpha; @@ -1105,6 +1208,14 @@ begin end if; end if; + if AM_EN = 0 or r.mode.amen = '0' or r.am.cfg.ecgc = '0' then + v.cgcntblock := '0'; + else + if r.cstart = '1' then + v.cgcntblock := '0'; + end if; + end if; + --------------------------------------------------------------------------- -- Clock generation, only in master mode --------------------------------------------------------------------------- @@ -1121,16 +1232,15 @@ begin -- if div16 is set the clock is divided by 16*(2*([PM]+1)). -- -- The generated clock's duty cycle is always 50%. - -- if r.divcnt = 0 then - -- Do not toggle if in automatic slave select delay slot if ASEL_EN = 0 or r.aselcnt = 0 then -- Toggle SCK unless we are in a clock gap - if r.cgcnt = 0 or r.spiolb.sck /= r.mode.cpol then + if (r.cgcnt = 0 and (AM_EN = 0 or r.cgcntblock = '0')) or + r.spiolb.sck /= r.mode.cpol then v.spio.sck := not r.spiolb.sck; v.toggle := r.running; end if; - if r.cgcnt /= 0 then + if r.cgcnt /= 0 and (AM_EN = 0 or r.cgcntblock = '0') then v.cgcnt := r.cgcnt - 1; if ASEL_EN /= 0 and r.cgcnt = 1 then cgasel := r.mode.tac; @@ -1165,7 +1275,7 @@ begin end if; end if; end if; - + --------------------------------------------------------------------------- -- Handle master operation. --------------------------------------------------------------------------- @@ -1181,7 +1291,7 @@ begin v.chng := not r.chng; change := r.chng; end if; - + -- Detect multiple-master errors (mode-fault) if spisel = '0' then v.mode.en := '0'; @@ -1206,7 +1316,7 @@ begin indata := r.spii(1).miso; end if; end if; - + --------------------------------------------------------------------------- -- Handle slave operation --------------------------------------------------------------------------- @@ -1243,7 +1353,7 @@ begin sample := not r.mode.ms or r.mode.loopb; v.syncsamp(0) := not sample; end if; - if r.rbitcnt = len(log2(wlen+1)-1 downto 0) then + if r.rbitcnt = len(log2(wlen+1)-1 downto 0) then v.rbitcnt := (others => '0'); if TW_EN = 1 then v.twdir := r.twdir xor not r.mode.loopb; @@ -1259,16 +1369,27 @@ begin if r.mode.cpha = '0' then v.cgcnt := unsigned(r.mode.cg & '0'); if ASEL_EN /= 0 then v.cgasel := r.mode.tac; end if; + if AM_EN = 1 and r.mode.amen = '1' and r.am.cfg.ecgc = '1' then + v.cgcntblock := '1'; + end if; end if; v.ov := '0'; - if v.tfreecnt = FIFO_DEPTH then + if r.tfreecnt = FIFO_DEPTH then v.running := '0'; + -- When running with with SCK freq. at half the system freq. we are + -- past the last edge here and SCK has transitioned from CPOL. + -- Force controller into idle state, only applies to master mode. + if (r.toggle and v.toggle) = '1' then + v.toggle := '0'; + v.spio.sck := r.mode.cpol; + v.chng := r.chng; + end if; end if; v.uf := '0'; end if; else v.rbitcnt := r.rbitcnt + 1; - end if; + end if; end if; -- Sample data line and put into shift register. @@ -1286,15 +1407,17 @@ begin -- Check mask, maybe we need to skip next word in fifo v.rdli := r.rdli + 1; v.am.rfreecnt := v.am.rfreecnt - 1; - for i in 0 to FIFO_DEPTH-1 loop - if i > conv_integer(r.rdli) and rstop3 = '0' then - if r.am.mask(i) = '0' then - v.rdli := v.rdli + 1; - else - rstop3 := '1'; + if DISCONT_AM_MASK then + for i in 0 to aloop loop + if i > conv_integer(r.rdli) and rstop3 = '0' then + if amask(i) = '0' then + v.rdli := v.rdli + 1; + else + rstop3 := '1'; + end if; end if; - end if; - end loop; + end loop; + end if; else v.rdli := r.rdli + 1; v.rfreecnt := v.rfreecnt - 1; @@ -1313,6 +1436,17 @@ begin if AM_EN = 1 then v.am.rxfull := r.am.active; end if; end if; end if; + if AM_EN = 1 and r.mode.amen = '1' then + if TW_EN = 0 or r.mode.tw = '0' or r.mode.tto = '0' then + if r.rxdone = '1' then + v.spio.aready := '1'; + end if; + else + if r.twdir = '1' and r.twdir2 = '0' then + v.spio.aready := '1'; + end if; + end if; + end if; -- Special case to put data in receive queue for automatic -- transfer while in three wire mode with tto = 1 @@ -1321,7 +1455,7 @@ begin r.mode.tto = '1' and r.twdir = INPUT and r.mode.ms = '1' then v.am.rxfull := r.am.active; end if; - + -- Advance transmit queue if change = '1' then if TW_EN = 1 and r.mode.tw = '1' then @@ -1335,6 +1469,9 @@ begin if r.mode.cpha = '1' then v.cgcnt := unsigned(r.mode.cg & '0'); if ASEL_EN /= 0 then v.cgasel := r.mode.tac; end if; + if AM_EN = 1 and r.mode.amen = '1' and r.am.cfg.ecgc = '1' then + v.cgcntblock := '1'; + end if; end if; end if; if (TW_EN = 0 or r.mode.tw = '0' or r.mode.loopb = '1' or r.twdir = OUTPUT) then @@ -1348,14 +1485,20 @@ begin v.tbitcnt := r.tbitcnt + 1; end if; if v.uf = '0' and (TW_EN = 0 or r.mode.tw = '0' or r.mode.loopb = '1' or r.twdir = OUTPUT) then - txshift := '1'; + txshift := v.running; end if; end if; if txshift = '1' then v.txd := '1' & r.txd(wlen downto 1); end if; - + + if AM_EN = 1 then + if r.txdupd2 = '1' then + tx_rd := '1'; + v.txdupd := '1'; + end if; + end if; if r.txdupd = '1' then tx_rd := '1'; if r.txdbyp = '0' then @@ -1379,18 +1522,20 @@ begin v.tdfi := v.tdfi + 1; else -- Check mask, might need to skip next word - for i in 0 to FIFO_DEPTH-1 loop - if tstop3 = '0' and i > conv_integer(v.tdfi) then - if r.am.mask(i) = '0' then - v.tdfi := v.tdfi + 1; - else - tstop3 := '1'; + if DISCONT_AM_MASK then + for i in 0 to aloop loop + if tstop3 = '0' and i > conv_integer(v.tdfi) then + if amask(i) = '0' then + v.tdfi := v.tdfi + 1; + else + tstop3 := '1'; + end if; end if; - end if; - end loop; + end loop; + end if; v.tdfi := v.tdfi + 1; end if; - else + elsif v.txdbyp = '0' then -- Bus idle value v.txd(0) := '1'; end if; @@ -1417,7 +1562,7 @@ begin end if; end if; end if; - + -- Transfer in progress interrupt generation if (not r.running and (r.ov2 or (r.rxdone2 or (not r.mode.ms and r.mode.tw)))) = '1' then if r.mode.ms = '0' or r.mode.cite = '0' or r.divcnt = 0 then @@ -1434,7 +1579,7 @@ begin v.event.lt := '1'; v.lst := '0'; if (r.mask.lt and not r.event.lt) = '1' then v.irq := '1'; end if; end if; - + --------------------------------------------------------------------------- -- Automatic slave select, only in master mode --------------------------------------------------------------------------- @@ -1444,7 +1589,7 @@ begin (r.event.tip and not v.event.tip) or -- transfer end or (v.running and (cgasel or -- End or start of CG (r.cgasel and not (r.spiolb.sck xor r.mode.cpol))))) = '1' - then + then v.slvsel := r.aslvsel; v.aslvsel := r.slvsel; v.cgasel := '0'; @@ -1458,14 +1603,14 @@ begin v.aselcnt := (others => '0'); end if; end if; - + -- Do not toggle outputs in loopback mode if (r.mode.loopb = '1' or (r.mode.tw = '1' and TW_EN = 1 and r.twdir = INPUT)) then v.spio.mosioen := INPUT; v.spio.misooen := INPUT; end if; if r.mode.loopb = '1' then v.spio.sckoen := INPUT; end if; - + -- When driving in OD mode, always drive low. if OD_EN = 1 and (r.mode.od and not r.mode.loopb) = '1' then v.spio.miso := v.spio.miso and not r.mode.od; @@ -1536,7 +1681,9 @@ begin if AM_EN = 1 then v.event.at := '0'; v.mask.at := '0'; - v.am.mask_shdw := (others=>'1'); + if PROG_AM_MASK then + v.am.mask_shdw := (others=>'1'); + end if; v.am.per := (others=>'0'); v.am.cfg.seq := '0'; v.am.cfg.strict := '0'; @@ -1544,12 +1691,14 @@ begin v.am.cfg.ovdb := '0'; v.am.cfg.erpt := '0'; v.am.cfg.lock := '0'; + v.am.cfg.ecgc := '0'; v.am.rxread := '0'; v.am.txwrite := '0'; v.am.txread := '0'; v.am.apbaddr := (others => '0'); v.am.rxsel := '0'; - end if; + v.cgcntblock := '0'; + end if; v.lst := '0'; if syncrst = 1 then v.slvsel := (others => '1'); @@ -1558,10 +1707,10 @@ begin v.rbitcnt := (others => '0'); v.tbitcnt := (others => '0'); v.txd := (others => '0'); v.txd(0) := '1'; end if; - + -- Drive unused bit if open drain mode is not supported if OD_EN = 0 then v.mode.od := '0'; end if; - + -- Drive unused bits if automode is not supported if AM_EN = 0 then v.mode.amen := '0'; @@ -1579,11 +1728,10 @@ begin v.am.rxfull := '0'; v.am.rfreecnt := 0; v.event.at := '0'; - v.am.mask := (others=>'0'); - v.am.mask_shdw := (others=>'0'); v.am.unread := (others=>'0'); v.am.cfg.erpt := '0'; v.am.cfg.lock := '0'; + v.am.cfg.ecgc := '0'; v.am.cnt := (others=>'0'); v.am.rxread := '0'; v.am.txwrite := '0'; @@ -1591,6 +1739,12 @@ begin v.am.apbaddr := (others => '0'); v.am.rxsel := '0'; v.mask.at := '0'; + v.cstart := '0'; + end if; + + if AM_EN = 0 or not PROG_AM_MASK then + v.am.mask := (others=>'0'); + v.am.mask_shdw := (others=>'0'); end if; -- Drive unused bits if automatic slave select is not enabled @@ -1609,14 +1763,17 @@ begin v.mode.tto := '0'; v.twdir := INPUT; end if; + if TW_EN = 0 or AM_EN = 0 then + v.twdir2 := INPUT; + end if; if SLVSEL_EN = 0 then v.slvsel := (others => '1'); end if; - + -- Propagate core enable bit v.spio.enable := r.mode.en; - + -- Synchronize inputs coming from off-chip v.spii(0) := (spii_miso, spii_mosi, spii_sck, spii_spisel); v.spii(1) := r.spii(0); @@ -1711,16 +1868,16 @@ begin v.spiolb.mosi := v.spio.mosi; v.spiolb.sck := v.spio.sck; - + -- Update registers rin <= v; -- Update outputs apbo_prdata <= apbout; apbo_pirq <= r.irq; - + slvsel <= r.slvsel; - + spio_miso <= r.spio.miso; spio_misooen <= r.spio.misooen; spio_mosi <= r.spio.mosi; @@ -1729,7 +1886,14 @@ begin spio_sckoen <= r.spio.sckoen; spio_enable <= r.spio.enable; spio_astart <= r.spio.astart; - + spio_aready <= r.spio.aready; + + if scantest = 1 and apbi_testen = '1' then + spio_misooen <= apbi_testoen; + spio_mosioen <= apbi_testoen; + spio_sckoen <= apbi_testoen; + end if; + end process comb; -- FIFOs diff --git a/lib/gaisler/spi/spimctrl.vhd b/lib/gaisler/spi/spimctrl.vhd index 755da92c..fd8e03ad 100644 --- a/lib/gaisler/spi/spimctrl.vhd +++ b/lib/gaisler/spi/spimctrl.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -1025,7 +1025,6 @@ begin -- rtl end if; ahbso.hrdata <= ahbdrivedata(hrdata); ahbso.hconfig <= HCONFIG; - ahbso.hcache <= '0'; ahbso.hirq <= ahbirq; ahbso.hindex <= hindex; ahbso.hsplit <= hsplit; diff --git a/lib/gaisler/srmmu/libmmu.vhd b/lib/gaisler/srmmu/libmmu.vhd index d7268684..18f4b5f7 100644 --- a/lib/gaisler/srmmu/libmmu.vhd +++ b/lib/gaisler/srmmu/libmmu.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/srmmu/mmu.vhd b/lib/gaisler/srmmu/mmu.vhd index ad26cb49..b00cb51d 100644 --- a/lib/gaisler/srmmu/mmu.vhd +++ b/lib/gaisler/srmmu/mmu.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -105,7 +105,7 @@ constant M_ENT_CLOG : integer := M_ENT_ILOG; -- i/dcache tlb entries: ad component mmutlb generic ( tech : integer range 0 to NTECH := 0; - entries : integer range 2 to 32 := 8; + entries : integer range 2 to 64 := 8; tlb_type : integer range 0 to 3 := 1; tlb_rep : integer range 0 to 1 := 0; mmupgsz : integer range 0 to 5 := 0 @@ -559,9 +559,7 @@ begin tlbi_a0.mmctrl1 <= mmudci.mmctrl1; tlbi_a0.wb_op <= '0'; end if; - tlbi_a0.tlbcami <= (others => mmutlbcam_in_type_none); - tlbi_a1.tlbcami <= (others => mmutlbcam_in_type_none); - + mmudco.transdata <= mmudco_transdata; mmuico.transdata <= mmuico_transdata; mmudco.grant <= mmudco_grant; diff --git a/lib/gaisler/srmmu/mmuconfig.vhd b/lib/gaisler/srmmu/mmuconfig.vhd index 959878c5..9c1ebac6 100644 --- a/lib/gaisler/srmmu/mmuconfig.vhd +++ b/lib/gaisler/srmmu/mmuconfig.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/srmmu/mmuiface.vhd b/lib/gaisler/srmmu/mmuiface.vhd index dda28a40..4fe81bbd 100644 --- a/lib/gaisler/srmmu/mmuiface.vhd +++ b/lib/gaisler/srmmu/mmuiface.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -45,8 +45,6 @@ type mmutlbcam_in_type is record end record; type mmutlbcami_a is array (natural range <>) of mmutlbcam_in_type; -constant mmutlbcam_in_type_none : mmutlbcam_in_type := (mmctrl_type1_none, tlbcam_tfp_none, - tlbcam_reg_none, '0', '0', '0', '0', '0', '0'); type mmutlbcam_out_type is record pteout : std_logic_vector(31 downto 0); LVL : std_logic_vector(1 downto 0); -- level in pth @@ -59,9 +57,6 @@ type mmutlbcam_out_type is record end record; type mmutlbcamo_a is array (natural range <>) of mmutlbcam_out_type; -constant mmutlbcam_out_none : mmutlbcam_out_type := (zero32, "00", - '0', "00000000", '0', zero32, '0', '0'); - -- mmu i/o type mmuidc_data_in_type is record @@ -211,10 +206,6 @@ type mmutlb_in_type is record s2valid : std_logic; mmctrl1 : mmctrl_type1; - - -- fast writebuffer signals - tlbcami : mmutlbcami_a (M_ENT_MAX-1 downto 0); - end record; type mmutlbi_a is array (natural range <>) of mmutlb_in_type; @@ -237,9 +228,6 @@ type mmutlb_out_type is record fault : mmutlbfault_out_type; nexttrans : std_logic; s1finished : std_logic; - - -- fast writebuffer signals - tlbcamo : mmutlbcamo_a (M_ENT_MAX-1 downto 0); -- writebuffer out wbtransdata : mmuidc_data_out_type; diff --git a/lib/gaisler/srmmu/mmulru.vhd b/lib/gaisler/srmmu/mmulru.vhd index 7c88c708..77d77fd4 100644 --- a/lib/gaisler/srmmu/mmulru.vhd +++ b/lib/gaisler/srmmu/mmulru.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/srmmu/mmulrue.vhd b/lib/gaisler/srmmu/mmulrue.vhd index bc8b67bb..42125034 100644 --- a/lib/gaisler/srmmu/mmulrue.vhd +++ b/lib/gaisler/srmmu/mmulrue.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/srmmu/mmutlb.vhd b/lib/gaisler/srmmu/mmutlb.vhd index e15e37d6..dbc024b8 100644 --- a/lib/gaisler/srmmu/mmutlb.vhd +++ b/lib/gaisler/srmmu/mmutlb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -38,7 +38,7 @@ use gaisler.libmmu.all; entity mmutlb is generic ( tech : integer range 0 to NTECH := 0; - entries : integer range 2 to 32 := 8; + entries : integer range 2 to 64 := 8; tlb_type : integer range 0 to 3 := 1; tlb_rep : integer range 0 to 1 := 1; mmupgsz : integer range 0 to 5 := 0 @@ -99,8 +99,8 @@ architecture rtl of mmutlb is tlbcamo : out mmutlbcam_out_type ); end component; - signal tlbcami : mmutlbcami_a (M_ENT_MAX-1 downto 0); - signal tlbcamo : mmutlbcamo_a (M_ENT_MAX-1 downto 0); + signal tlbcami : mmutlbcami_a (entries-1 downto 0); + signal tlbcamo : mmutlbcamo_a (entries-1 downto 0); -- least recently used component mmulru @@ -130,7 +130,7 @@ begin variable v : tlb_rtype; variable finish, selstate : std_logic; - variable cam_hitaddr : std_logic_vector(M_ENT_MAX_LOG -1 downto 0); + variable cam_hitaddr : std_logic_vector(entries_log-1 downto 0); variable cam_hit_all : std_logic; variable mtag,ftag : tlbcam_tfp; @@ -165,7 +165,7 @@ begin variable NEEDSYNC : std_logic; -- wb hit tlbcam's output - variable wb_i_entry : integer range 0 to M_ENT_MAX-1; + variable wb_i_entry : integer range 0 to entries-1; variable wb_ACC : std_logic_vector(2 downto 0); variable wb_PTE : std_logic_vector(31 downto 0); variable wb_LVL : std_logic_vector(1 downto 0); @@ -185,8 +185,8 @@ begin variable store : std_logic; variable reppos : std_logic_vector(entries_log-1 downto 0); - variable i_entry : integer range 0 to M_ENT_MAX-1; - variable i_reppos : integer range 0 to M_ENT_MAX-1; + variable i_entry : integer range 0 to entries-1; + variable i_reppos : integer range 0 to entries-1; variable fault_pro, fault_pri : std_logic; variable fault_mexc, fault_trans, fault_inv, fault_access : std_logic; @@ -575,8 +575,6 @@ begin tlbo.fault <= fault; tlbo.nexttrans <= store; tlbo.s1finished <= tlbo_s1finished; - - tlbo.tlbcamo <= (others => mmutlbcam_out_none); twi.walk_op_ur <= twi_walk_op_ur; twi.data <= r.s2_data; @@ -610,18 +608,7 @@ begin tlbcami(i).write_op <= tlbcam_write_op(i); tlbcami(i).mset <= '0'; end loop; -- i - for i in M_ENT_MAX-1 downto entries loop - tlbcami(i).tagin <= tlbcam_tfp_none; - tlbcami(i).trans_op <= '0'; - tlbcami(i).wb_op <= '0'; - tlbcami(i).flush_op <= '0'; - tlbcami(i).mmuen <= '0'; - tlbcami(i).tagwrite <= tlbcam_reg_none; - tlbcami(i).write_op <= '0'; - tlbcami(i).mset <= '0'; - tlbcami(i).mmctrl <= mmctrl_type1_none; - end loop; - + c <= v; end process p0; @@ -636,9 +623,6 @@ begin generic map ( tlb_type, mmupgsz ) port map (rst, clk, tlbcami(i), tlbcamo(i)); end generate tlbcam0; - tlbcamnone: for i in M_ENT_MAX-1 downto entries generate - tlbcamo(i) <= mmutlbcam_out_none; - end generate ; -- data-ram syncram dataram : syncram diff --git a/lib/gaisler/srmmu/mmutlbcam.vhd b/lib/gaisler/srmmu/mmutlbcam.vhd index c10fd3e1..0fef27cd 100644 --- a/lib/gaisler/srmmu/mmutlbcam.vhd +++ b/lib/gaisler/srmmu/mmutlbcam.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/srmmu/mmutw.vhd b/lib/gaisler/srmmu/mmutw.vhd index 869ab624..cccd1975 100644 --- a/lib/gaisler/srmmu/mmutw.vhd +++ b/lib/gaisler/srmmu/mmutw.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/uart/ahbuart.vhd b/lib/gaisler/uart/ahbuart.vhd index b60cc091..65f76b10 100644 --- a/lib/gaisler/uart/ahbuart.vhd +++ b/lib/gaisler/uart/ahbuart.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -22,14 +22,6 @@ -- Author: Jiri Gaisler - Gaisler Research -- Description: UART with AHB master interface ------------------------------------------------------------------------------ --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_AHBUART --- VERSION: 0 --- AHBMASTER: 0 --- APB: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: IO_AREA -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; diff --git a/lib/gaisler/uart/apbuart.vhd b/lib/gaisler/uart/apbuart.vhd index 42390c6a..ed24d57f 100644 --- a/lib/gaisler/uart/apbuart.vhd +++ b/lib/gaisler/uart/apbuart.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -23,13 +23,6 @@ -- Marko Isomaki - Gaisler Research -- Description: Asynchronous UART. Implements 8-bit data frame with one stop-bit. ------------------------------------------------------------------------------ --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_APBUART --- VERSION: 1 --- APB: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: IO_AREA -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; diff --git a/lib/gaisler/uart/dcom.vhd b/lib/gaisler/uart/dcom.vhd index 6c8ae5e6..d2618ca4 100644 --- a/lib/gaisler/uart/dcom.vhd +++ b/lib/gaisler/uart/dcom.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/uart/dcom_uart.vhd b/lib/gaisler/uart/dcom_uart.vhd index d1bcff54..8842053e 100644 --- a/lib/gaisler/uart/dcom_uart.vhd +++ b/lib/gaisler/uart/dcom_uart.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/uart/libdcom.vhd b/lib/gaisler/uart/libdcom.vhd index 79553237..fdc758e1 100644 --- a/lib/gaisler/uart/libdcom.vhd +++ b/lib/gaisler/uart/libdcom.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/uart/uart.vhd b/lib/gaisler/uart/uart.vhd index 98c20f20..0d29b3f6 100644 --- a/lib/gaisler/uart/uart.vhd +++ b/lib/gaisler/uart/uart.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/gaisler/usb/grusb.vhd b/lib/gaisler/usb/grusb.vhd index 8761506b..e927533f 100644 --- a/lib/gaisler/usb/grusb.vhd +++ b/lib/gaisler/usb/grusb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -129,7 +129,9 @@ package grusb is memsel : integer := 0; syncprst : integer range 0 to 1 := 0; sysfreq : integer := 65000; - pcidev : integer range 0 to 1 := 0); + pcidev : integer range 0 to 1 := 0; + debug : integer := 0; + debugsize : integer := 8192); port ( clk : in std_ulogic; uclk : in std_ulogic; @@ -269,7 +271,9 @@ package grusb is memsel : integer := 0; syncprst : integer range 0 to 1 := 0; sysfreq : integer := 65000; - pcidev : integer range 0 to 1 := 0); + pcidev : integer range 0 to 1 := 0; + debug : integer := 0; + debugsize : integer := 8192); port ( clk : in std_ulogic; uclk : in std_ulogic; diff --git a/lib/gaisler/usb/vhdlsyn.txt b/lib/gaisler/usb/vhdlsyn.txt index f01daa48..bc569e79 100644 --- a/lib/gaisler/usb/vhdlsyn.txt +++ b/lib/gaisler/usb/vhdlsyn.txt @@ -5,7 +5,7 @@ hc/grusbhc_pkg.vhd hc/pe20.vhd hc/mbc20.vhd hc/sie20ulpic.vhd hc/sie20utmic.vhd hc/sie20ulpip.vhd hc/sie20utmip.vhd hc/sie11ulpic.vhd hc/sie11utmic.vhd hc/sie11ulpip.vhd hc/sie11utmip.vhd hc/sie21ulpip.vhd hc/sie21utmip.vhd hc/as20.vhd hc/pe11.vhd hc/mbc11.vhd hc/as11.vhd hc/pr.vhd hc/ehc.vhd hc/uhc.vhd -hc/uahbmst.vhd hc/urstgen.vhd hc/tbctrl.vhd hc/usbhc_top.vhd hc/grusbhc.vhd +hc/uahbmst.vhd hc/urstgen.vhd hc/tbctrl.vhd hc/usbdebug.vhd hc/usbhc_top.vhd hc/grusbhc.vhd hc/grusbhc_gen.vhd #device dc/grusbdc_pkg.vhd dc/grusbdcuw.vhd dc/grusbdcsie.vhd dc/grusbdcc.vhd diff --git a/lib/gleichmann/ac97/ac97.vhd b/lib/gleichmann/ac97/ac97.vhd deleted file mode 100644 index 0a09caf1..00000000 --- a/lib/gleichmann/ac97/ac97.vhd +++ /dev/null @@ -1,34 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; - -library grlib; -use grlib.amba.all; - - -package ac97 is - - component ac97_oc - generic ( - slvndx : integer; - ioaddr : integer; - iomask : integer; - irq : integer); - port ( - resetn : in std_logic; - clk : in std_logic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - bit_clk_pad_i : in std_logic; - sync_pad_o : out std_logic; - sdata_pad_o : out std_logic; - sdata_pad_i : in std_logic; - ac97_reset_padn_o : out std_logic; - int_o : out std_logic; - dma_req_o : out std_logic_vector(8 downto 0); - dma_ack_i : in std_logic_vector(8 downto 0); - suspended_o : out std_logic; - int_pol : in std_logic - ); - end component; - -end package ac97; diff --git a/lib/gleichmann/ac97/ac97_oc.in b/lib/gleichmann/ac97/ac97_oc.in deleted file mode 100644 index 53493fa3..00000000 --- a/lib/gleichmann/ac97/ac97_oc.in +++ /dev/null @@ -1,2 +0,0 @@ -bool 'OpenCores AC97 Controller' CONFIG_AC97_OC_ENABLE - diff --git a/lib/gleichmann/ac97/ac97_oc.in.h b/lib/gleichmann/ac97/ac97_oc.in.h deleted file mode 100644 index ea5d1341..00000000 --- a/lib/gleichmann/ac97/ac97_oc.in.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef CONFIG_AC97_OC_ENABLE -#define CONFIG_AC97_OC_ENABLE 0 -#endif - diff --git a/lib/gleichmann/ac97/ac97_oc.in.help b/lib/gleichmann/ac97/ac97_oc.in.help deleted file mode 100644 index b717d4e1..00000000 --- a/lib/gleichmann/ac97/ac97_oc.in.help +++ /dev/null @@ -1,3 +0,0 @@ -OpenCores AC97 Controller -CONFIG_AC97_OC_ENABLE - Say Y here to enable the AC97 Controller from OpenCores. This requires Mixed Language Support (VHDL/Verilog). diff --git a/lib/gleichmann/ac97/ac97_oc.in.vhd b/lib/gleichmann/ac97/ac97_oc.in.vhd deleted file mode 100644 index 14ec0d63..00000000 --- a/lib/gleichmann/ac97/ac97_oc.in.vhd +++ /dev/null @@ -1,3 +0,0 @@ --- AC97_OC enable - constant CFG_AC97_OC : integer := CONFIG_AC97_OC_ENABLE; - diff --git a/lib/gleichmann/ac97/ac97_oc.vhd b/lib/gleichmann/ac97/ac97_oc.vhd deleted file mode 100644 index c3760685..00000000 --- a/lib/gleichmann/ac97/ac97_oc.vhd +++ /dev/null @@ -1,355 +0,0 @@ ----------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2004 GAISLER RESEARCH --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- See the file COPYING for the full details of the license. --- ------------------------------------------------------------------------------ --- Entity: ac97_oc --- File: ac97_oc.vhd --- Author: Thomas Ameseder, Gleichmann Electronics --- Description: AHB interface for the OpenCores AC97 controller ------------------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; -use IEEE.numeric_std.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; - - -library gleichmann; -use gleichmann.ac97.all; -use gleichmann.miscellaneous.all; - -library opencores; -use opencores.occomp.all; - -entity ac97_oc is - generic ( - slvndx : integer := 0; - ioaddr : integer := 16#000#; - iomask : integer := 16#FF0#; - irq : integer := 7); - port ( - resetn : in std_logic; - clk : in std_logic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - - -- AC97 codec signals - bit_clk_pad_i : in std_logic; - sync_pad_o : out std_logic; - sdata_pad_o : out std_logic; - sdata_pad_i : in std_logic; - ac97_reset_padn_o : out std_logic; - - -- misc signals - int_o : out std_logic; - dma_req_o : out std_logic_vector(8 downto 0); - dma_ack_i : in std_logic_vector(8 downto 0); - suspended_o : out std_logic; - - int_pol : in std_logic - - ); -end ac97_oc; - - -architecture rtl of ac97_oc is - - constant REVISION : amba_version_type := 0; - - constant hconfig : ahb_config_type := ( - 0 => ahb_device_reg (VENDOR_GLEICHMANN, GLEICHMANN_AC97 , 0, REVISION, irq), - 4 => ahb_iobar (ioaddr, iomask), - others => zero32); - --- // AHB interface --- // AHB common - signal hwdata : std_logic_vector(31 downto 0); - signal hrdata : std_logic_vector(31 downto 0); - --- // AHB slave - signal haddr : std_logic_vector(31 downto 0); - signal hready_ba : std_logic; - signal hsel : std_logic; - signal hresp : std_logic_vector(1 downto 0); - signal hwrite : std_logic; - signal hready : std_logic; - --- // AHB Additional - signal htrans : std_logic_vector(1 downto 0); - signal hsize : std_logic_vector(2 downto 0); - signal hburst : std_logic_vector(2 downto 0); - - signal hmaster : std_logic_vector(3 downto 0); - signal hmastlock : std_logic; - signal hsplit : std_logic_vector(15 downto 0); - --- // Wishbone interface --- // WISHBONE common - signal wbm_dat_i : std_logic_vector(31 downto 0); - signal wbm_dat_o : std_logic_vector(31 downto 0); - --- // WISHBONE slave - signal wbm_adr_o : std_logic_vector(31 downto 0); - signal wbm_cyc_o : std_logic; - signal wbm_stb_o : std_logic; - signal wbm_we_o : std_logic; - signal wbm_ack_i : std_logic; - --- // WISHBONE Additional - signal wb_inta_i : std_logic; - signal wbm_sel_o : std_logic_vector(3 downto 0); - signal wbm_rty_i : std_logic; - signal wbm_err_i : std_logic; - --- // miscellaneous signals - signal irq_o : std_logic; - signal wb_reset : std_logic; - - -- delayed signals - signal hsel_d : std_logic; -- - signal hready_ba_d : std_logic; -- - signal hwrite_d : std_logic; -- - signal hmastlock_d : std_logic; -- - signal haddr_d : std_logic_vector(31 downto 0); -- - signal htrans_d : std_logic_vector(1 downto 0); -- - signal hsize_d : std_logic_vector(2 downto 0); -- - signal hburst_d : std_logic_vector(2 downto 0); -- - signal hwdata_d : std_logic_vector(31 downto 0); -- - signal hmaster_d : std_logic_vector(3 downto 0); -- - - -- delay AHB input signals at VHDL/Verilog domain boarder - -- for simulation purposes only - constant DELAY_AHB_INPUTS : integer := 0; - - signal irq_s : std_ulogic; - signal irq_1t : std_ulogic; - signal irq_adapt : std_ulogic; -- registered and converted to rising edge activity - - -begin - - delay_module : if DELAY_AHB_INPUTS /= 0 generate - - postponer_1 : postponer - generic map ( - HAMAX => 32, - HDMAX => 32, - delta => 1) - port map ( - hsel_d => hsel_d, - hready_ba_d => hready_ba_d, - hwrite_d => hwrite_d, - hmastlock_d => hmastlock_d, - haddr_d => haddr_d, - htrans_d => htrans_d, - hsize_d => hsize_d, - hburst_d => hburst_d, - hwdata_d => hwdata_d, - hmaster_d => hmaster_d, - hsel => hsel, - hready_ba => hready_ba, - hwrite => hwrite, - hmastlock => hmastlock, - haddr => haddr, - htrans => htrans, - hsize => hsize, - hburst => hburst, - hwdata => hwdata, - hmaster => hmaster); - - - bridge : ahb2wb - generic map(HDMAX => 32, HAMAX => 32) - port map ( --- // AHB common - hclk => clk, - hresetn => resetn, - hwdata => hwdata_d, - hrdata => hrdata, --- // AHB slave - haddr => haddr_d, - hready_ba => hready_ba_d, - hsel => hsel_d, - hresp => hresp, - hwrite => hwrite_d, - hready => hready, --- // AHB Additional - htrans => htrans_d, - hsize => hsize_d, - hburst => hburst_d, - hmaster => hmaster_d, - hmastlock => hmastlock_d, - hsplit => hsplit, --- // WISHBONE common - wbm_dat_i => wbm_dat_i, - wbm_dat_o => wbm_dat_o, --- // WISHBONE slave - wbm_adr_o => wbm_adr_o, - wbm_cyc_o => wbm_cyc_o, - wbm_stb_o => wbm_stb_o, - wbm_we_o => wbm_we_o, - wbm_ack_i => wbm_ack_i, --- // WISHBONE Additional - wb_inta_i => wb_inta_i, - wbm_sel_o => wbm_sel_o, - wbm_rty_i => wbm_rty_i, - wbm_err_i => wbm_err_i, --- // miscellaneous signals - irq_o => irq_o - ); - - end generate delay_module; - - no_delay_module : if DELAY_AHB_INPUTS = 0 generate - - bridge : ahb2wb - generic map(HDMAX => 32, HAMAX => 32) - port map ( --- // AHB common - hclk => clk, - hresetn => resetn, - hwdata => hwdata, - hrdata => hrdata, --- // AHB slave - haddr => haddr, - hready_ba => hready_ba, - hsel => hsel, - hresp => hresp, - hwrite => hwrite, - hready => hready, --- // AHB Additional - htrans => htrans, - hsize => hsize, - hburst => hburst, - hmaster => hmaster, - hmastlock => hmastlock, - hsplit => hsplit, --- // WISHBONE common - wbm_dat_i => wbm_dat_i, - wbm_dat_o => wbm_dat_o, --- // WISHBONE slave - wbm_adr_o => wbm_adr_o, - wbm_cyc_o => wbm_cyc_o, - wbm_stb_o => wbm_stb_o, - wbm_we_o => wbm_we_o, - wbm_ack_i => wbm_ack_i, --- // WISHBONE Additional - wb_inta_i => wb_inta_i, - wbm_sel_o => wbm_sel_o, - wbm_rty_i => wbm_rty_i, - wbm_err_i => wbm_err_i, --- // miscellaneous signals - irq_o => irq_o - ); - - end generate no_delay_module; - - - ac97_top_1 : ac97_top - port map ( - clk_i => clk, - rst_i => wb_reset, - wb_data_i => wbm_dat_o, - wb_data_o => wbm_dat_i, - wb_addr_i => wbm_adr_o, - wb_sel_i => wbm_sel_o, - wb_we_i => wbm_we_o, - wb_cyc_i => wbm_cyc_o, - wb_stb_i => wbm_stb_o, - wb_ack_o => wbm_ack_i, - wb_err_o => wbm_err_i, - - int_o => irq_s, - dma_req_o => dma_req_o, - dma_ack_i => dma_ack_i, - suspended_o => suspended_o, - - bit_clk_pad_i => bit_clk_pad_i, - sync_pad_o => sync_pad_o, - sdata_pad_o => sdata_pad_o, - sdata_pad_i => sdata_pad_i, - ac97_resetn_pad_o => ac97_reset_padn_o - ); - --- fill ahb slave-in vector - hsel <= ahbsi.HSEL(slvndx); - hready_ba <= '1'; --ahbsi.HREADY; - haddr <= ahbsi.HADDR; - hwrite <= ahbsi.HWRITE; - htrans <= ahbsi.HTRANS; - hsize <= ahbsi.HSIZE; - hburst <= ahbsi.HBURST; - hwdata <= ahbreadword(ahbsi.HWDATA); - hmaster <= ahbsi.HMASTER; - hmastlock <= ahbsi.HMASTLOCK; - - --- fill ahb slave-out vector - ahbso.HREADY <= hready; - ahbso.HRESP <= hresp; - ahbso.HRDATA <= ahbdrivedata(hrdata); - ahbso.HSPLIT <= hsplit; -- maybe better way (others => '0'); - ahbso.HCACHE <= '0'; - ahbso.HCONFIG <= hconfig; - ahbso.HINDEX <= slvndx; - - -- drive device specific interrupt line, - -- other bus signals are driven with '0' - -- note: interrupt 15 should not be used, - -- since it is not maskable - drive_irq_high : if (IRQ /= 15) generate - ahbso.HIRQ(15 downto IRQ+1) <= (others => '0'); - end generate drive_irq_high; - drive_irq: ahbso.HIRQ(IRQ) <= irq_adapt when int_pol = '1' else - not irq_adapt; - drive_irq_low : if (IRQ > 0) generate - ahbso.HIRQ(IRQ-1 downto 0) <= (others => '0'); - end generate; - - --------------------------------------------------------------------------------------- - -- Synchronous process to convert the high level interrupt from the core to - -- to an rising edge triggered interrupt to be suitable for the Leon IRQCTL - -- asynchronous low active reset like the open core simple SPI module !!! - --------------------------------------------------------------------------------------- - irq_adaption: process (clk, resetn) -- added by tame, 07-12-2006 - begin -- process irq_adaption) - if resetn = '0' then - irq_adapt <= '0'; - irq_1t <= '0'; - elsif clk'event and clk = '1' then - irq_1t <= irq_s; - irq_adapt <= irq_s and not irq_1t; - end if; - end process irq_adaption; - - -- unmodified interrupt output - int_o <= irq_s; - --- wbm_rty_i is not used - wbm_rty_i <= '0'; - --- bridge device IRQ unused - wb_inta_i <= '0'; - --- AC97 reset is active low - wb_reset <= resetn; - --- pragma translate_off - bootmsg : report_version - generic map ( - "ac97_oc" & tost(slvndx) & - ": Opencores AC97 controller, rev " & tost(REVISION) & ", irq " & tost(irq)); --- pragma translate_on - -end; diff --git a/lib/gleichmann/ac97/vhdlsyn.txt b/lib/gleichmann/ac97/vhdlsyn.txt deleted file mode 100644 index ec73bdea..00000000 --- a/lib/gleichmann/ac97/vhdlsyn.txt +++ /dev/null @@ -1,2 +0,0 @@ -ac97.vhd -ac97_oc.vhd diff --git a/lib/gleichmann/ac97/vlogsyn.txt b/lib/gleichmann/ac97/vlogsyn.txt deleted file mode 100644 index 660a4093..00000000 --- a/lib/gleichmann/ac97/vlogsyn.txt +++ /dev/null @@ -1,2 +0,0 @@ -postponer.v -ahb2wb.v diff --git a/lib/gleichmann/ahb2hpi/ahb2hpi.in b/lib/gleichmann/ahb2hpi/ahb2hpi.in deleted file mode 100644 index 9352b58c..00000000 --- a/lib/gleichmann/ahb2hpi/ahb2hpi.in +++ /dev/null @@ -1,2 +0,0 @@ -bool 'AHB2HPI Bridge' CONFIG_AHB2HPI_ENABLE - diff --git a/lib/gleichmann/ahb2hpi/ahb2hpi.in.h b/lib/gleichmann/ahb2hpi/ahb2hpi.in.h deleted file mode 100644 index cf64ca20..00000000 --- a/lib/gleichmann/ahb2hpi/ahb2hpi.in.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef CONFIG_AHB2HPI_ENABLE -#define CONFIG_AHB2HPI_ENABLE 0 -#endif - diff --git a/lib/gleichmann/ahb2hpi/ahb2hpi.in.help b/lib/gleichmann/ahb2hpi/ahb2hpi.in.help deleted file mode 100644 index 9f5399fd..00000000 --- a/lib/gleichmann/ahb2hpi/ahb2hpi.in.help +++ /dev/null @@ -1,3 +0,0 @@ -MultiIO Design -CONFIG_AHB2HPI_ENABLE - Say Y here to enable a simple bidirectional AHB2HPI bridge. diff --git a/lib/gleichmann/ahb2hpi/ahb2hpi.in.vhd b/lib/gleichmann/ahb2hpi/ahb2hpi.in.vhd deleted file mode 100644 index aa08d19c..00000000 --- a/lib/gleichmann/ahb2hpi/ahb2hpi.in.vhd +++ /dev/null @@ -1,3 +0,0 @@ --- AHB2HPI enable - constant CFG_AHB2HPI : integer := CONFIG_AHB2HPI_ENABLE; - diff --git a/lib/gleichmann/ahb2hpi/ahb2hpi2_ea.vhd b/lib/gleichmann/ahb2hpi/ahb2hpi2_ea.vhd deleted file mode 100644 index a6c153e5..00000000 --- a/lib/gleichmann/ahb2hpi/ahb2hpi2_ea.vhd +++ /dev/null @@ -1,427 +0,0 @@ -------------------------------------------------------------------------------- --- Title : AHB2HPI bus bridge (bidirectional) --- Project : LEON3MINI -------------------------------------------------------------------------------- --- $Id: ahb2hpi2.vhd,v 1.2 2006/12/08 10:22:18 tame Exp $ -------------------------------------------------------------------------------- --- Author : Thomas Ameseder --- Company : Gleichmann Electronics --- Created : 2005-08-19 --- Standard : VHDL'87 -------------------------------------------------------------------------------- --- Description: --- --- This module implements an AHB slave that communicates with a --- Host Peripheral Interface (HPI) device such as the CY7C67300 USB controller. --- Supports Big Endian and Little Endian. --- --- This is a modified version of the original AHB2HPI core with a bidirectional --- data bus to be usable on-chip. --- --- Restrictions: Do not use a data width other than 16 at the moment. -------------------------------------------------------------------------------- --- Copyright (c) 2005 -------------------------------------------------------------------------------- - - - -library ieee; -use ieee.std_logic_1164.all; -use ieee.std_logic_arith.all; ---use ieee.std_logic_unsigned.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; - - -entity ahb2hpi2 is - generic ( - counter_width : integer := 4; - data_width : integer := 16; - address_width : integer := 2; - hindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#fff#; - hirq : integer := 5 - ); - - port ( - -- AHB port - HCLK : in std_ulogic; - HRESETn : in std_ulogic; - ahbso : out ahb_slv_out_type; - ahbsi : in ahb_slv_in_type; - - -- HPI port - ADDR : out std_logic_vector(address_width-1 downto 0); - WDATA : out std_logic_vector(data_width-1 downto 0); - RDATA : in std_logic_vector(data_width-1 downto 0); - nCS : out std_ulogic; - nWR : out std_ulogic; - nRD : out std_ulogic; - INT : in std_ulogic; - - drive_bus : out std_ulogic; - - -- debug port - dbg_equal : out std_ulogic - - ); -end ahb2hpi2; - - -architecture rtl of ahb2hpi2 is - - constant CONFIGURATION_VERSION : integer := 0; - constant VERSION : integer := 1; --- constant INTERRUPT_NUMBER : integer := hirq; - -- register file address is the base address plus the - -- ahb memory space reserved for the device itself - -- its size is 64 bytes as defined with 16#fff# for its - -- mask below - constant REGFILE_ADDRESS : integer := 16#340#; - -- big endian/little endian architecture selection - constant BIG_ENDIAN : boolean := true; - - - constant hconfig : ahb_config_type := ( - 0 => ahb_device_reg - (VENDOR_GLEICHMANN, GLEICHMANN_HPI, - CONFIGURATION_VERSION, VERSION, hirq), - 4 => ahb_iobar(haddr, hmask), - 5 => ahb_iobar(REGFILE_ADDRESS, 16#fff#), - others => (others => '0')); - - type reg_type is - record - hwrite : std_ulogic; - hready : std_ulogic; - hsel : std_ulogic; - addr : std_logic_vector(address_width-1 downto 0); - counter : unsigned(counter_width-1 downto 0); - Din : std_logic_vector(data_width-1 downto 0); - Dout : std_logic_vector(data_width-1 downto 0); - nWR, nRD, nCS : std_ulogic; - INT : std_ulogic; - ctrlreg : std_logic_vector(data_width-1 downto 0); - data_acquisition : std_ulogic; - drive_bus : std_ulogic; - end record; - - - -- combinatorial, registered and - -- double-registered signals - signal c, r, rr : reg_type; - - -- signals for probing input and output data - signal in_data_probe, out_data_probe : std_logic_vector(data_width-1 downto 0); - signal equality_probe : std_ulogic; - --- signal data_acquisition : std_ulogic; - - -- keep registers for debug purposes - attribute syn_preserve : boolean; - attribute syn_preserve of in_data_probe, out_data_probe, equality_probe : signal is true; - - -begin - - comb : process (INT, RDATA, HRESETn, ahbsi, r, rr) - variable v : reg_type; - -- register fields - variable tAtoCSlow : unsigned(1 downto 0); -- address to chip select (CS) low - variable tCStoCTRLlow : unsigned(1 downto 0); -- CS low to control (read/write) low - - variable tCTRLlowDvalid : unsigned(1 downto 0); -- control (read) low to data valid - variable tCTRLlow : unsigned(1 downto 0); -- control low to control high - - variable tCTRLhighCShigh : unsigned(1 downto 0); -- control high to CS high - variable tCShighREC : unsigned(1 downto 0); -- CS high to next CS recovery - - variable tCNT : unsigned(counter_width-1 downto 0); -- timing counter - - variable hwdata : std_logic_vector(31 downto 0); - - begin - - -- assign values from the register in the beginning - -- lateron, assign new values by looking at the new - -- inputs from the bus - v := r; - - hwdata := ahbreadword(ahbsi.hwdata); - --- data_acquisition <= '0'; - - if HRESETn = '0' then - v.hwrite := '0'; - v.hready := '1'; - v.hsel := '0'; - v.addr := (others => '-'); - v.counter := conv_unsigned(0, counter_width); - v.Din := (others => '-'); - v.Dout := (others => '-'); - v.nWR := '1'; - v.nRD := '1'; - v.nCS := '1'; - v.INT := '0'; - -- bit 12 is reserved for the interrupt - v.ctrlreg(15 downto 13) := (others => '0'); - v.ctrlreg(11 downto 0) := (others => '0'); --- v.data_acquisition := '0'; - v.drive_bus := '1'; - end if; - - -- assert data_acquisition for not longer than one cycle - v.data_acquisition := '0'; - - -- bit 12 of control register holds registered interrupt - v.ctrlreg(12) := INT; - v.INT := INT; - - -- assign register fields to signals - tAtoCSlow := (unsigned(r.ctrlreg(11 downto 10))); - tCStoCTRLlow := (unsigned(r.ctrlreg(9 downto 8))); - - tCTRLlowDvalid := (unsigned(r.ctrlreg(7 downto 6))); - tCTRLlow := (unsigned(r.ctrlreg(5 downto 4))); - - tCTRLhighCShigh := (unsigned(r.ctrlreg(3 downto 2))); - tCShighREC := (unsigned(r.ctrlreg(1 downto 0))); - - tCNT := conv_unsigned(conv_unsigned(0, counter_width) + tAtoCSlow + tCStoCTRLlow + tCTRLlow + tCTRLhighCShigh + tCShighREC + '1', counter_width); - - - -- is bus free to use? - if ahbsi.hready = '1' then - -- gets selected when HSEL signal for the right slave - -- is asserted and the transfer type is SEQ or NONSEQ - v.hsel := ahbsi.hsel(hindex) and ahbsi.htrans(1); - else - v.hsel := '0'; - end if; - - -- a valid cycle starts, so all relevant bus signals - -- are registered and the timer is started - if v.hsel = '1' and v.counter = conv_unsigned(0, counter_width) then - v.hwrite := ahbsi.hwrite and v.hsel; - v.hready := '0'; - v.counter := conv_unsigned(tCNT, counter_width); - v.nWR := '1'; --not v.hwrite; - v.nRD := '1'; --v.hwrite; - v.nCS := '1'; - if (conv_integer(ahbsi.haddr(19 downto 8)) = REGFILE_ADDRESS) then - if ahbsi.haddr(7 downto 0) = X"00" then - -- disable HPI signals, read/write register data - -- and manage AHB handshake - if v.hwrite = '1' then - -- take data from AHB write data bus but skip interrupt bit - if BIG_ENDIAN then --- v.ctrlreg := ahbsi.hwdata(31 downto 31-data_width+1); - v.ctrlreg(15 downto 13) := hwdata(31 downto 29); - v.ctrlreg(11 downto 0) := hwdata(27 downto 16); - else --- v.ctrlreg := ahbsi.hwdata(31-data_width downto 0); - v.ctrlreg(15 downto 13) := hwdata(15 downto 13); - v.ctrlreg(11 downto 0) := hwdata(11 downto 0); - end if; - else - v.Din := v.ctrlreg; - end if; - end if; - -- go to last cycle which signals ahb ready - v.counter := conv_unsigned(0, counter_width); --(tCNT - tAtoCSlow - tCStoCTRLlow - tCTRLlow - tCTRLhighCShigh - tCShighREC); - else - -- the LSB of 16-bit AHB addresses is always zero, - -- so the address is shifted in order to be able - -- to access data with a short* in C - v.addr := ahbsi.haddr(address_width downto 1); --- v.size := ahbsi.hsize(1 downto 0); - - - - end if; - end if; - - -- fetch input data according to the AMBA specification - -- for big/little endian architectures - -- only relevant for 16-bit accesses - if v.counter = tCNT - 1 then - if BIG_ENDIAN then - v.Dout := hwdata(31 downto 31-data_width+1); - else - v.Dout := hwdata(31-data_width downto 0); - end if; - else - if BIG_ENDIAN then - v.Dout := r.Dout; - else - v.Dout := r.Dout; - end if; - end if; - - -- check if counter has just been re-initialized; if so, - -- decrement it until it reaches zero and set control signals - -- accordingly - if v.counter > conv_unsigned(0, counter_width) then - if v.counter = (tCNT - tAtoCSlow) then - v.nCS := '0'; - end if; - if v.counter = (tCNT - tAtoCSlow - tCStoCTRLlow) then - v.nWR := not v.hwrite; - v.nRD := v.hwrite; - end if; - if v.counter = (tCNT - tAtoCSlow - tCStoCTRLlow - tCTRLlowDvalid) then - if v.nRD = '0' then - v.Din := RDATA; - v.data_acquisition := '1'; --- in_data_probe <= DATA; - end if; - end if; - if v.counter = (tCNT - tAtoCSlow - tCStoCTRLlow - tCTRLlow) then - v.nWR := '1'; - v.nRD := '1'; - end if; - if v.counter = (tCNT - tAtoCSlow - tCStoCTRLlow - tCTRLlow - tCTRLhighCShigh) then - v.nCS := '1'; - end if; - if v.counter = (tCNT - tAtoCSlow - tCStoCTRLlow - tCTRLlow - - tCTRLhighCShigh - tCShighREC) then - v.hready := '1'; - end if; - -- note: since the counter is queried and immediately - -- decremented afterwards, the value in hardware - -- is one lower than given in the if statement - v.counter := v.counter - 1; - else - v.hready := '1'; - end if; - - -- three-state buffer: drive bus during a write cycle - -- and hold data for one more clock cycle, then - -- shut off from the bus --- if ((r.nCS = '0' and r.nWR = '0') or (rr.nCS = '0' and r.nWR = '0') or --- (r.nCS = '0' and rr.nWR = '0') or (rr.nCS = '0' and rr.nWR = '0')) then --- WDATA <= r.Dout; --- drive_bus <= '1'; --- else - --WDATA <= (others => '-'); --- WDATA <= (others => 'Z'); --- drive_bus <= '0'; --- end if; - - - if r.nCS='0' and r.nWR='0' then - v.drive_bus := '1'; - elsif ((r.nCS='0' and rr.nCS='1') or ((r.Addr xor rr.Addr) /= "00")) then - v.drive_bus := '0'; - end if; - - -- assign variable to a signal - c <= v; - - -- HPI outputs - ADDR <= r.addr; - nCS <= r.nCS; - nWR <= r.nWR; - nRD <= r.nRD; - - -- output data is assigned to the both the high and the - -- low word of the 32-bit data bus - ahbso.hrdata <= ahbdrivedata(r.Din); - --- if v.addr(0) = '0' then --- if BIG_ENDIAN then --- ahbso.hrdata(31 downto 31-data_width+1) <= r.Din; --- ahbso.hrdata(31-data_width downto 0) <= (others => '-'); --- else --- ahbso.hrdata(31 downto 31-data_width+1) <= (others => '-'); --- ahbso.hrdata(31-data_width downto 0) <= r.Din; --- end if; --- else --- if BIG_ENDIAN then --- ahbso.hrdata(31 downto 31-data_width+1) <= (others => '-'); --- ahbso.hrdata(31-data_width downto 0) <= r.Din; --- else --- ahbso.hrdata(31 downto 31-data_width+1) <= r.Din; --- ahbso.hrdata(31-data_width downto 0) <= (others => '-'); --- end if; --- end if; - - ahbso.hready <= r.hready; - --- ahbso.hirq <= (hirq => r.ctrlreg(12), others => '0'); -- propagate registered interrupt - ahbso.hirq <= (others => '0'); - ahbso.hirq(hirq) <= r.ctrlreg(12); - end process comb; - - - WDATA <= r.Dout; - drive_bus <= (r.drive_bus or (not r.nWR)) when ((r.Addr xor rr.Addr) = "00") else'0'; - - -- constant AHB outputs - ahbso.hresp <= "00"; -- answer OK by default - ahbso.hsplit <= (others => '0'); -- no SPLIT transactions - ahbso.hcache <= '0'; -- cacheable yes/no - ahbso.hconfig <= hconfig; - ahbso.hindex <= hindex; - - - reg : process (HCLK) - begin - if rising_edge(HCLK) then - r <= c; - rr <= r; - end if; - end process; - - --------------------------------------------------------------------------------------- - -- DEBUG SECTION for triggering on read/write inconsistency - -- use a C program that writes data AND reads it immediately afterwards - -- dbg_equal start with being '0' after reset, then goes high during the transaction - -- it should not have a falling edge during the transactions - -- -> trigger on that event - -- note regarding HPI data transactions: - -- the address is written first before writing/reading at address B"10" - -- the data register is at address B"00" - --------------------------------------------------------------------------------------- - - -- read at the rising edge of the read signal - -- (before the next read data is received) --- data_acquisition <= '1' when rr.nrd = '1' and r.nrd = '0' else --- '0'; - - -- read data to compare to - in_data_probe <= r.din; - - check_data : process (HCLK, HRESETn) - begin - if HRESETn = '0' then - out_data_probe <= (others => '0'); - equality_probe <= '0'; - elsif rising_edge(HCLK) then - -- is data being written to the *data* register? - if r.nwr = '0' and r.ncs = '0' and r.addr = "00" then - out_data_probe <= r.dout; - end if; - if r.data_acquisition = '1' then - if in_data_probe = out_data_probe then - equality_probe <= '1'; - else - equality_probe <= '0'; - end if; - end if; - end if; - end process; - - dbg_equal <= equality_probe; - --- pragma translate_off - bootmsg : report_version - generic map ("ahb2hpi2" & tost(hindex) & - ": AHB-to-HPI Bridge, irq " & - tost(hirq)); --- pragma translate_on - -end rtl; diff --git a/lib/gleichmann/ahb2hpi/hpi_p.vhd b/lib/gleichmann/ahb2hpi/hpi_p.vhd deleted file mode 100644 index b6c34355..00000000 --- a/lib/gleichmann/ahb2hpi/hpi_p.vhd +++ /dev/null @@ -1,48 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; - -package hpi is - - component ahb2hpi2 - generic ( - counter_width : integer; - data_width : integer; - address_width : integer; - hindex : integer; - haddr : integer; - hmask : integer); - port ( - HCLK : in std_ulogic; - HRESETn : in std_ulogic; - ahbso : out ahb_slv_out_type; - ahbsi : in ahb_slv_in_type; - ADDR : out std_logic_vector(address_width-1 downto 0); - WDATA : out std_logic_vector(data_width-1 downto 0); - RDATA : in std_logic_vector(data_width-1 downto 0); - nCS : out std_ulogic; - nWR : out std_ulogic; - nRD : out std_ulogic; - INT : in std_ulogic; - drive_bus : out std_ulogic; - dbg_equal : out std_ulogic); - end component; - - - component hpi_ram - generic ( - abits : integer; - dbits : integer); - port ( - clk : in std_ulogic; - address : in std_logic_vector(1 downto 0); - datain : in std_logic_vector(dbits-1 downto 0); - dataout : out std_logic_vector(dbits-1 downto 0); - writen : in std_ulogic; - readn : in std_ulogic; - csn : in std_ulogic); - end component; - - -end package hpi; diff --git a/lib/gleichmann/ahb2hpi/hpi_ram_ea.vhd b/lib/gleichmann/ahb2hpi/hpi_ram_ea.vhd deleted file mode 100644 index a6869ee9..00000000 --- a/lib/gleichmann/ahb2hpi/hpi_ram_ea.vhd +++ /dev/null @@ -1,158 +0,0 @@ -------------------------------------------------------------------------------- --- Title : HPI MEMORY --- Project : LEON3MINI -------------------------------------------------------------------------------- --- $Id: $ -------------------------------------------------------------------------------- --- Author : Thomas Ameseder --- Company : Gleichmann Electronics --- Created : 2005-08-19 --- Standard : VHDL'87 -------------------------------------------------------------------------------- --- Description: --- --- This module is for testing the AHB2HPI(2) core. It is a memory that --- can be connected to the HPI interface. Also features HPI timing --- checks. -------------------------------------------------------------------------------- --- Copyright (c) 2005 -------------------------------------------------------------------------------- - - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.stdlib.all; - -entity hpi_ram is - generic (abits : integer := 9; dbits : integer := 16); - port ( - clk : in std_ulogic; - address : in std_logic_vector(1 downto 0); - datain : in std_logic_vector(dbits-1 downto 0); - dataout : out std_logic_vector(dbits-1 downto 0); - writen : in std_ulogic; - readn : in std_ulogic; - csn : in std_ulogic - ); -end; - -architecture behavioral of hpi_ram is - - constant Tcyc : time := 40000 ps; -- cycle time - - type mem is array(0 to (2**abits -1)) - of std_logic_vector((dbits -1) downto 0); - signal memarr : mem; - - signal - data_reg, -- "00" - mailbox_reg, -- "01" - address_reg, -- "10" - status_reg -- "11" - : std_logic_vector(dbits-1 downto 0); - -begin - - write : process(clk) - begin - if rising_edge(clk) then - if csn = '0' then - if writen = '0' then - case address(1 downto 0) is - when "00" => memarr(conv_integer(address_reg(abits-1 downto 1))) <= datain; - when "01" => mailbox_reg <= datain; - when "10" => address_reg <= datain; - when "11" => status_reg <= datain; - when others => null; - end case; - end if; - end if; - end if; - end process; - - read : process(address, address_reg, csn, mailbox_reg, memarr, readn, - status_reg) - constant Tacc : time := Tcyc; -- data access time - begin - if (readn = '0' and csn = '0') then - case address(1 downto 0) is - when "00" => dataout <= memarr(conv_integer(address_reg(abits-1 downto 1))) after Tacc; - when "01" => dataout <= mailbox_reg after Tacc; - when "10" => dataout <= address_reg after Tacc; - when "11" => dataout <= status_reg after Tacc; - when others => null; - end case; - else - -- the rest of the time, invalid data shall be driven - -- (note: makes an 'X' when being resolved on a high-impedance bus) - dataout <= (others => 'Z'); - end if; - end process; - - -- pragma translate_off - - --------------------------------------------------------------------------------------- - -- HPI TIMING CHECKS - --------------------------------------------------------------------------------------- - - cycle_timing_check : process(datain, readn, writen) - constant Tcycmin : time := 6 * Tcyc; -- minimum write/read cycle time - constant Tpulsemin : time := 2 * Tcyc; -- minimum write/read pulse time - constant Twdatasu : time := 6 ns; -- write data setup time - constant Twdatahold : time := 2 ns; -- write data hold time - - variable wrlastev, rdlastev : time := 0 ps; - variable wrlowlastev, rdlowlastev : time := 0 ps; - variable wdatalastev : time := 0 ps; -- write data last event - variable wrhighlastev : time := 0 ps; - begin - - -- write data hold check - if datain'event then - assert (now = 0 ps) or (now - wrhighlastev >= Twdatahold) - report "Write data hold violation!" severity error; - wdatalastev := now; - end if; - - -- exclusive read or write check - assert writen = '1' or readn = '1' - report "Both read and write are signals are low!" severity error; - - -- write cycle time and write pulse width checks - if writen'event then - if writen = '0' then - assert (now = 0 ps) or (now - wrlowlastev >= Tcycmin) - report "Write cycle time violation!" severity error; - wrlowlastev := now; - wrlastev := now; - elsif writen = '1' then - assert (now = 0 ps) or (now - wrlastev >= Tpulsemin) - report "Write pulse width violation!" severity error; - assert (now = 0 ps) or (now - wdatalastev >= Twdatasu) - report "Write data setup violation!" severity error; - wrhighlastev := now; - wrlastev := now; - end if; - end if; - - -- read cycle time and read pulse width checks - if readn'event then - if readn = '0' then - assert (now = 0 ps) or (now - rdlowlastev >= Tcycmin) - report "Read cycle time violation!" severity error; - rdlowlastev := now; - rdlastev := now; - elsif readn = '1' then - assert (now = 0 ps) or (now - rdlastev >= Tpulsemin) - report "Read pulse width violation!" severity error; - rdlastev := now; - end if; - end if; - - end process cycle_timing_check; - - -- pragma translate_on - -end architecture; - diff --git a/lib/gleichmann/ahb2hpi/vhdlsyn.txt b/lib/gleichmann/ahb2hpi/vhdlsyn.txt deleted file mode 100755 index 4fb511e7..00000000 --- a/lib/gleichmann/ahb2hpi/vhdlsyn.txt +++ /dev/null @@ -1,3 +0,0 @@ -hpi_p.vhd -ahb2hpi2_ea.vhd -hpi_ram_ea.vhd diff --git a/lib/gleichmann/clockgen/clockgenerator_ea.vhd b/lib/gleichmann/clockgen/clockgenerator_ea.vhd deleted file mode 100644 index 6432352f..00000000 --- a/lib/gleichmann/clockgen/clockgenerator_ea.vhd +++ /dev/null @@ -1,95 +0,0 @@ --------------------------------------------------------------------------------- --- Project : Sandbox --- Module : ClockGenerator --- File : ClockGenerator.vhd --- Description : Generate the clocks for the AudioCodec. --------------------------------------------------------------------------------- --- Author : Andreas Voggeneder --- Organisation : FH-Hagenberg --- Department : Hardware/Software Systems Engineering --- Language : VHDL'87 --------------------------------------------------------------------------------- --- Copyright (c) 2003 by Andreas Voggeneder --------------------------------------------------------------------------------- -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; ---use work.CodecGlobal.all; - -entity ClockGenerator is - - port ( - Clk : in std_ulogic; - Reset : in std_ulogic; - oMCLK : out std_ulogic; -- 12 MHz - oBCLK : out std_ulogic; -- I2S bit clk - oSCLK : out std_ulogic; -- SPI Data Clk - oLRCOUT : out std_ulogic); - -end ClockGenerator; - -architecture rtl of ClockGenerator is - - constant cResetActive : std_ulogic := '0'; - -begin -- rtl - - createclock : process (Clk, Reset) --- variable cntMCLK : std_ulogic; -- counter MCLK - variable cntBCLK : std_ulogic; -- counter BCLK - variable cntLRC : unsigned(5 downto 0); -- counter LRC - variable internalMCLK : std_ulogic; - variable internalBCLK : std_ulogic; - variable internalSCLK : std_ulogic; --_vector(1 downto 0); - variable internalLRCOUT : std_ulogic; - begin -- process createclock - if Reset = cResetActive then -- asynchronous reset - internalMCLK := '0'; - internalBCLK := '0'; - internalSCLK := '0'; --"00"; - internalLRCOUT := '1'; --- cntMCLK := '0'; - cntBCLK := '0'; - cntLRC := (others => '0'); - elsif Clk'event and Clk = '1' then -- rising clock edge - internalSCLK := not (internalSCLK); --- internalSCLK := std_ulogic_vector(unsigned(internalSCLK)+1); --- if (cntMCLK = '1') then --- cntMCLK := '0'; - internalMCLK := not internalMCLK; -- 25/2 - if (internalMCLK = '1') then - -- == 25/2 - if (cntBCLK = '1') then - -- == 25/4 - internalBCLK := not internalBCLK; --25/8 - cntBCLK := '0'; - if (internalBCLK = '0') then - if (cntLRC = "100001") then -- 33 - internalLRCOUT := not internalLRCOUT; - cntLRC := (others => '0'); - else - cntLRC := cntLRC + 1; - end if; - end if; - else - cntBCLK := '1'; - end if; - end if; --- else --- cntMCLK := '1'; --- end if; - - end if; - oMCLK <= internalMCLK; - oBCLK <= internalBCLK; - oSCLK <= internalSCLK; --(1); - oLRCOUT <= internalLRCOUT; - end process createclock; - -end rtl; - --- 44,1kHz: Fs=44100 --- MCLK = 256*Fs = 11.2896 MHz. Gewählt 12.5 MHz --- BCLK = Fs*2*32 = 2.82 MHz. Gewählt 3.125 MHz --- => Fs real = 48.8 kHz - diff --git a/lib/gleichmann/clockgen/ge_clkgen_p.vhd b/lib/gleichmann/clockgen/ge_clkgen_p.vhd deleted file mode 100644 index 50222a58..00000000 --- a/lib/gleichmann/clockgen/ge_clkgen_p.vhd +++ /dev/null @@ -1,19 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -library techmap; -use techmap.gencomp.all; - -package ge_clkgen is - - component ClockGenerator - port ( - Clk : in std_ulogic; - Reset : in std_ulogic; - oMCLK : out std_ulogic; - oBCLK : out std_ulogic; - oSCLK : out std_ulogic; - oLRCOUT : out std_ulogic); - end component; - - -end ge_clkgen; diff --git a/lib/gleichmann/clockgen/vhdlsyn.txt b/lib/gleichmann/clockgen/vhdlsyn.txt deleted file mode 100644 index f1566d0d..00000000 --- a/lib/gleichmann/clockgen/vhdlsyn.txt +++ /dev/null @@ -1,2 +0,0 @@ -ge_clkgen_p.vhd -clockgenerator_ea.vhd diff --git a/lib/gleichmann/dac/adc_sigdelt_ea.vhd b/lib/gleichmann/dac/adc_sigdelt_ea.vhd deleted file mode 100644 index 7c833ff3..00000000 --- a/lib/gleichmann/dac/adc_sigdelt_ea.vhd +++ /dev/null @@ -1,58 +0,0 @@ - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - - -entity adc_sigdelt is - generic(c_adcin_length : positive := 8); -- length of binary input vector adc_in - port( - rstn : in std_ulogic; -- resets integrator, high-active - clk : in std_ulogic; -- sampling clock - valid : out std_ulogic; - adc_fb : out std_ulogic; -- feedback - adc_out : out std_logic_vector(c_adcin_length-1 downto 0); -- output vector - adc_in : in std_ulogic -- input bit stream - ); -end adc_sigdelt; - -architecture rtl of adc_sigdelt is - signal ff : std_ulogic; -- registered input flipflop - signal width_counter : integer range 0 to 2**c_adcin_length - 1; - signal one_counter : integer range 0 to 2**c_adcin_length - 1; -begin - - parallelize : process (clk, rstn) is - begin - if rstn = '0' then - ff <= '0'; - width_counter <= 0; - one_counter <= 0; - valid <= '0'; - adc_out <= (others => '0'); - elsif rising_edge(clk) then - ff <= adc_in; - - if width_counter < 2**c_adcin_length-1 then - width_counter <= width_counter + 1; - valid <= '0'; - if ff = '1' then - one_counter <= one_counter + 1; - end if; - else -- counter overflow - -- reset counters - width_counter <= 0; - one_counter <= 0; - -- output parallelized value and signal that it is valid - adc_out <= std_logic_vector(to_unsigned(one_counter, c_adcin_length)); - valid <= '1'; - end if; - - end if; - end process parallelize; - - -- feed back read value to comparator - adc_fb <= ff; - -end rtl; - diff --git a/lib/gleichmann/dac/adcdac.in b/lib/gleichmann/dac/adcdac.in deleted file mode 100644 index 8e5ff801..00000000 --- a/lib/gleichmann/dac/adcdac.in +++ /dev/null @@ -1,2 +0,0 @@ -bool 'ADCDAC' CONFIG_ADCDAC_ENABLE - diff --git a/lib/gleichmann/dac/adcdac.in.h b/lib/gleichmann/dac/adcdac.in.h deleted file mode 100644 index cc1e610d..00000000 --- a/lib/gleichmann/dac/adcdac.in.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef CONFIG_ADCDAC_ENABLE -#define CONFIG_ADCDAC_ENABLE 0 -#endif - diff --git a/lib/gleichmann/dac/adcdac.in.help b/lib/gleichmann/dac/adcdac.in.help deleted file mode 100644 index 31254eb0..00000000 --- a/lib/gleichmann/dac/adcdac.in.help +++ /dev/null @@ -1,3 +0,0 @@ -ADCDAC -CONFIG_ADCDAC_ENABLE - Say Y here to enable the Analog-to-Digital- and Digital-to-Analog-Converter. diff --git a/lib/gleichmann/dac/adcdac.in.vhd b/lib/gleichmann/dac/adcdac.in.vhd deleted file mode 100644 index 111c53e2..00000000 --- a/lib/gleichmann/dac/adcdac.in.vhd +++ /dev/null @@ -1,3 +0,0 @@ --- ADCDAC enable - constant CFG_ADCDAC : integer := CONFIG_ADCDAC_ENABLE; - diff --git a/lib/gleichmann/dac/adcdac_ea.vhd b/lib/gleichmann/dac/adcdac_ea.vhd deleted file mode 100644 index 88ec1e07..00000000 --- a/lib/gleichmann/dac/adcdac_ea.vhd +++ /dev/null @@ -1,134 +0,0 @@ - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; -library gleichmann; -use gleichmann.dac.all; ---pragma translate_off -use std.textio.all; ---pragma translate_on - -entity adcdac is - generic ( - pindex : integer := 0; - paddr : integer := 0; - pmask : integer := 16#fff#; - nbits : integer := 10 -- GPIO bits - ); - port ( - rst : in std_ulogic; - clk : in std_ulogic; - apbi : in apb_slv_in_type; - apbo : out apb_slv_out_type; - adcdaci : in adcdac_in_type; - adcdaco : out adcdac_out_type - ); -end; - -architecture rtl of adcdac is - - constant REVISION : integer := 0; - - constant pconfig : apb_config_type := ( - 0 => ahb_device_reg (VENDOR_GLEICHMANN, GLEICHMANN_ADCDAC, 0, REVISION, 0), - 1 => apb_iobar(paddr, pmask)); - - type registers is - record - dac_reg : std_logic_vector(nbits-1 downto 0); - adc_reg : std_logic_vector(nbits-1 downto 0); - end record; - - signal r, rin : registers; - - -- ADC signals - signal valid : std_ulogic; - signal adc_out_par : std_logic_vector(nbits-1 downto 0); - - signal rst_inv : std_ulogic; - -begin - - comb : process(adc_out_par, apbi, r, rst, valid) - variable readdata : std_logic_vector(31 downto 0); - variable v : registers; - begin - --- read registers - readdata := (others => '0'); - case apbi.paddr(4 downto 2) is - when "000" => readdata(nbits-1 downto 0) := r.dac_reg; - when "001" => readdata(nbits-1 downto 0) := r.adc_reg; - when others => null; - end case; - --- write registers - if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then - case apbi.paddr(4 downto 2) is - when "000" => v.dac_reg := apbi.pwdata(nbits-1 downto 0); - when "001" => null; - when others => null; - end case; - end if; - --- update ADC value - if valid = '1' then - v.adc_reg := adc_out_par; - end if; - --- reset operation - if rst = '0' then - v.dac_reg := (others => '0'); - v.adc_reg := (others => '0'); - end if; - - rin <= v; - - apbo.prdata <= readdata; -- drive apb read bus - apbo.pirq <= (others => '0'); - end process comb; - - apbo.pindex <= pindex; - apbo.pconfig <= pconfig; - --- registers - - regs : process(clk) - begin - if rising_edge(clk) then r <= rin; end if; - end process; - - rst_inv <= not rst; - - dac : sigdelt - generic map ( - c_dacin_length => nbits) - port map ( - reset => rst_inv, - clock => clk, - dac_in => r.dac_reg(nbits-1 downto 0), - dac_out => adcdaco.dac_out); - - adc : adc_sigdelt - generic map ( - c_adcin_length => nbits) - port map ( - rstn => rst, - clk => clk, - valid => valid, - adc_fb => adcdaco.adc_fb, - adc_out => adc_out_par, - adc_in => adcdaci.adc_in); - --- boot message - --- pragma translate_off - bootmsg : report_version - generic map ("adcdac" & tost(pindex) & - ": " & tost(nbits) & "-bit ADC/DAC core rev " & tost(REVISION)); --- pragma translate_on - -end architecture rtl; diff --git a/lib/gleichmann/dac/dac_ahb.in b/lib/gleichmann/dac/dac_ahb.in deleted file mode 100644 index 85fde82f..00000000 --- a/lib/gleichmann/dac/dac_ahb.in +++ /dev/null @@ -1,2 +0,0 @@ -bool 'DAC AHB' CONFIG_DAC_AHB_ENABLE - diff --git a/lib/gleichmann/dac/dac_ahb.in.h b/lib/gleichmann/dac/dac_ahb.in.h deleted file mode 100644 index 3ef0195e..00000000 --- a/lib/gleichmann/dac/dac_ahb.in.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef CONFIG_DAC_AHB_ENABLE -#define CONFIG_DAC_AHB_ENABLE 0 -#endif - diff --git a/lib/gleichmann/dac/dac_ahb.in.help b/lib/gleichmann/dac/dac_ahb.in.help deleted file mode 100644 index e206e353..00000000 --- a/lib/gleichmann/dac/dac_ahb.in.help +++ /dev/null @@ -1,3 +0,0 @@ -Digital-to-Analog-Converter -CONFIG_DAC_AHB_ENABLE - Say Y here to enable the Digital-to-Analog-Converter. diff --git a/lib/gleichmann/dac/dac_ahb.in.vhd b/lib/gleichmann/dac/dac_ahb.in.vhd deleted file mode 100644 index d32ccb9f..00000000 --- a/lib/gleichmann/dac/dac_ahb.in.vhd +++ /dev/null @@ -1,3 +0,0 @@ --- DAC_AHB enable - constant CFG_DAC_AHB : integer := CONFIG_DAC_AHB_ENABLE; - diff --git a/lib/gleichmann/dac/dac_ahb_ea.vhd b/lib/gleichmann/dac/dac_ahb_ea.vhd deleted file mode 100644 index db4a48ff..00000000 --- a/lib/gleichmann/dac/dac_ahb_ea.vhd +++ /dev/null @@ -1,157 +0,0 @@ ------------------------------------------------------------------------------------------ --- SIGMA DELTA DAC WITH AHB INTERFACE ------------------------------------------------------------------------------------------ - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; - -entity dac_ahb is - generic ( - length : integer := 16; - hindex : integer := 0; - haddr : integer := 0; - hmask : integer := 16#fff#; - tech : integer := 0; - kbytes : integer := 1); - port ( - rst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - dac_out : out std_ulogic - ); -end; - -architecture rtl of dac_ahb is - - component sigdelt - generic ( - c_dacin_length : positive); - port ( - reset : in std_logic; - clock : in std_logic; - dac_in : in std_logic_vector(c_dacin_length-1 downto 0); - dac_out : out std_logic); - end component; - - constant abits : integer := log2(kbytes) + 8; - - constant hconfig : ahb_config_type := ( - 0 => ahb_device_reg (VENDOR_GLEICHMANN, GLEICHMANN_DAC, 0, 0, 0), --- 4 => ahb_membar(haddr, '1', '1', hmask), -- memory @ 0xA000_000 - 4 => ahb_iobar(haddr, hmask), -- I/O area @ 0xFFFA_0000 - others => zero32); - - type reg_type is - record - hwrite : std_ulogic; - hready : std_ulogic; - hsel : std_ulogic; - addr : std_logic_vector(abits+1 downto 0); - size : std_logic_vector(1 downto 0); - end record; - - signal r, c : reg_type; - signal ramsel : std_ulogic; - signal write : std_logic_vector(3 downto 0); - signal ramaddr : std_logic_vector(abits-1 downto 0); - signal ramdata : std_logic_vector(31 downto 0); - - type mem is array(0 to 15) of std_logic_vector(31 downto 0); - signal memarr : mem; - signal ra : std_logic_vector(3 downto 0); - - signal rstp : std_ulogic; -- high-active reset - -begin - - rstp <= not rst; - - comb : process (ahbsi, r, rst, ramdata) - variable bs : std_logic_vector(3 downto 0); - variable v : reg_type; - variable haddr : std_logic_vector(abits-1 downto 0); - begin - v := r; v.hready := '1'; bs := (others => '0'); - if (r.hwrite or not r.hready) = '1' then haddr := r.addr(abits+1 downto 2); - else - haddr := ahbsi.haddr(abits+1 downto 2); bs := (others => '0'); - end if; - - if ahbsi.hready = '1' then - v.hsel := ahbsi.hsel(hindex) and ahbsi.htrans(1); - v.hwrite := ahbsi.hwrite and v.hsel; - v.addr := ahbsi.haddr(abits+1 downto 0); - v.size := ahbsi.hsize(1 downto 0); - end if; - - if r.hwrite = '1' then - case r.size(1 downto 0) is - when "00" => bs (conv_integer(r.addr(1 downto 0))) := '1'; - when "01" => bs := r.addr(1) & r.addr(1) & not (r.addr(1) & r.addr(1)); - when others => bs := (others => '1'); - end case; - v.hready := not (v.hsel and not ahbsi.hwrite); - v.hwrite := v.hwrite and v.hready; - end if; - - if rst = '0' then v.hwrite := '0'; v.hready := '1'; end if; - write <= bs; ramsel <= v.hsel or r.hwrite; ahbso.hready <= r.hready; - ramaddr <= haddr; c <= v; ahbso.hrdata <= ahbdrivedata(ramdata); - - end process; - - ahbso.hresp <= "00"; - ahbso.hsplit <= (others => '0'); - ahbso.hirq <= (others => '0'); - ahbso.hcache <= '1'; - ahbso.hconfig <= hconfig; - ahbso.hindex <= hindex; - --- ra : for i in 0 to 3 generate --- aram : syncram generic map (tech, abits, 8) port map ( --- clk, ramaddr, ahbsi.hwdata(i*8+7 downto i*8), --- ramdata(i*8+7 downto i*8), ramsel, write(3-i)); --- end generate; - - main : process(rst, clk) - begin - if rst = '0' then - memarr <= (others => (others => '0')); - ra <= (others => '0'); --- end if; - elsif rising_edge(clk) then - if r.hwrite = '1' then - memarr(conv_integer(ramaddr)) <= ahbsi.hwdata(31 downto 0); - end if; - ra <= ramaddr(3 downto 0); - end if; - end process; - - ramdata <= memarr(conv_integer(ra)); - - sigdelt_1 : sigdelt - generic map ( - c_dacin_length => length) - port map ( - reset => rstp, - clock => clk, - dac_in => memarr(0)(length-1 downto 0), - dac_out => dac_out); - - reg : process (clk) - begin - if rising_edge(clk) then r <= c; end if; - end process; - --- pragma translate_off - bootmsg : report_version - generic map ("dac_ahb" & tost(hindex) & - ": AHB DAC Module rev 0"); --- pragma translate_on -end; - diff --git a/lib/gleichmann/dac/dac_p.vhd b/lib/gleichmann/dac/dac_p.vhd deleted file mode 100644 index f748ece7..00000000 --- a/lib/gleichmann/dac/dac_p.vhd +++ /dev/null @@ -1,72 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; - -package dac is - - type adcdac_in_type is - record - adc_in : std_ulogic; - end record; - - type adcdac_out_type is - record - adc_fb : std_ulogic; - dac_out : std_ulogic; - end record; - - component adcdac - generic ( - pindex : integer; - paddr : integer; - pmask : integer; - nbits : integer); - port ( - rst : in std_ulogic; - clk : in std_ulogic; - apbi : in apb_slv_in_type; - apbo : out apb_slv_out_type; - adcdaci : in adcdac_in_type; - adcdaco : out adcdac_out_type); - end component; - - component dac_ahb - generic ( - length : integer; - hindex : integer; - haddr : integer; - hmask : integer; - tech : integer; - kbytes : integer); - port ( - rst : in std_ulogic; - clk : in std_ulogic; - ahbsi : in ahb_slv_in_type; - ahbso : out ahb_slv_out_type; - dac_out : out std_ulogic); - end component; - - component sigdelt - generic ( - c_dacin_length : positive); - port ( - reset : in std_logic; - clock : in std_logic; - dac_in : in std_logic_vector(c_dacin_length-1 downto 0); - dac_out : out std_logic); - end component; - - component adc_sigdelt - generic ( - c_adcin_length : positive); - port ( - rstn : in std_ulogic; - clk : in std_ulogic; - valid : out std_ulogic; - adc_fb : out std_ulogic; - adc_out : out std_logic_vector(c_adcin_length-1 downto 0); - adc_in : in std_ulogic); - end component; - -end dac; diff --git a/lib/gleichmann/dac/dac_sigdelt_ea.vhd b/lib/gleichmann/dac/dac_sigdelt_ea.vhd deleted file mode 100644 index f2fca5df..00000000 --- a/lib/gleichmann/dac/dac_sigdelt_ea.vhd +++ /dev/null @@ -1,65 +0,0 @@ ---******************************************************************************* --- --- D/A Converter based on 1st order Delta-Sigma Modulator --- --- Coded by and Private Property of Prof. Dr. Martin Schubert --- --- 14. February 2005 --- --- FH Regensburg, Univ. of Applied Sciences --- Seybothstrasse 2, D-93053 Regensburg --- Email: martin.schubert@e-technik.fh-regensburg.de --- ---******************************************************************************* - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.stdlib.all; - -entity sigdelt is - generic(c_dacin_length:positive:=8); -- length of binary input vector dac_in - port( - reset:in std_logic; -- resets integrator, high-active - clock:in std_logic; -- sampling clock - dac_in:in std_logic_vector(c_dacin_length-1 downto 0); -- input vector - dac_out:out std_logic -- pseudo-random output bit stream - ); -end sigdelt; - -architecture rtl of sigdelt is - signal delta:std_logic_vector(c_dacin_length+1 downto 0); -- input - feedback - signal state:std_logic_vector(c_dacin_length+1 downto 0); -- integrator's state vector -begin - -- - delta(c_dacin_length+1)<=state(c_dacin_length+1); - delta(c_dacin_length) <=state(c_dacin_length+1); - delta(c_dacin_length-1 downto 0)<=dac_in; - -- - -- integrator - pr_integrator:process(reset,clock) - begin - if reset='1' then - state<=(others=>'0'); - elsif clock'event and clock='1' then - state<=state+delta; - end if; - end process pr_integrator; - -- - -- generating a postponed flipflop - pr_postponed:process(reset,clock) - begin - if reset='1' then - dac_out<='0'; - elsif clock'event and clock='1' then - dac_out<=state(c_dacin_length+1); - end if; - end process pr_postponed; - -- -end rtl; - - -configuration con_sigdelt of sigdelt is - for rtl - end for; -end con_sigdelt; diff --git a/lib/gleichmann/dac/vhdlsyn.txt b/lib/gleichmann/dac/vhdlsyn.txt deleted file mode 100755 index 2a304ef1..00000000 --- a/lib/gleichmann/dac/vhdlsyn.txt +++ /dev/null @@ -1,6 +0,0 @@ -dac_p.vhd -dac_sigdelt_ea.vhd -adc_sigdelt_ea.vhd -adcdac_ea.vhd -dac_ahb_ea.vhd - diff --git a/lib/gleichmann/dirs.txt b/lib/gleichmann/dirs.txt deleted file mode 100644 index fad6a2b0..00000000 --- a/lib/gleichmann/dirs.txt +++ /dev/null @@ -1,9 +0,0 @@ -clockgen -miscellaneous -ahb2hpi -i2c -dac -spi -multiio -ac97 -sim diff --git a/lib/gleichmann/i2c/i2c.vhd b/lib/gleichmann/i2c/i2c.vhd deleted file mode 100644 index adba1504..00000000 --- a/lib/gleichmann/i2c/i2c.vhd +++ /dev/null @@ -1,23 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; - -package i2c is - - component ParToI2s - generic ( - SampleSize_g : natural); - port ( - Clk_i : in std_ulogic; - Reset_i : in std_ulogic; - SampleLeft_i : in std_ulogic_vector(SampleSize_g - 1 downto 0); - SampleRight_i : in std_ulogic_vector(SampleSize_g - 1 downto 0); - StrobeLeft_i : in std_ulogic; - StrobeRight_i : in std_ulogic; - SampleAck_o : out std_ulogic; - WaitForSample_o : out std_ulogic; - SClk_i : in std_ulogic; - LRClk_i : in std_ulogic; - SdnyData_o : out std_ulogic); - end component; - -end i2c; diff --git a/lib/gleichmann/i2c/partoi2s.vhd b/lib/gleichmann/i2c/partoi2s.vhd deleted file mode 100644 index 2b3ec355..00000000 --- a/lib/gleichmann/i2c/partoi2s.vhd +++ /dev/null @@ -1,179 +0,0 @@ -------------------------------------------------------------------------------- --- Title : ParToI2s --- Project : -------------------------------------------------------------------------------- --- File : ParToI2s.vhd --- Author : Voggeneder Andreas, Truhlar Günther --- Company : --- Created : 2002-11-20 --- Last update: 2006-02-01 --- Platform : --- Standard : VHDL'87 -------------------------------------------------------------------------------- --- Description: realizes the connection from the DSP to the I2s-interface -------------------------------------------------------------------------------- --- Copyright (c) 2002 -------------------------------------------------------------------------------- --- Revisions : --- Date Version Author Description --- 2002-11-20 1.0 hse00044 Created -------------------------------------------------------------------------------- -library IEEE; -use IEEE.std_logic_1164.all; -use IEEE.numeric_std.all; ---use IEEE.std_logic_arith.all; ---use work.DffGlobal.all; - - -entity ParToI2s is - generic ( - SampleSize_g : natural := 16); - port ( - Clk_i : in std_ulogic; - Reset_i : in std_ulogic; - SampleLeft_i : in std_ulogic_vector(SampleSize_g - 1 downto 0); - SampleRight_i : in std_ulogic_vector(SampleSize_g - 1 downto 0); - StrobeLeft_i : in std_ulogic; - StrobeRight_i : in std_ulogic; - SampleAck_o : out std_ulogic; - WaitForSample_o : out std_ulogic; - SClk_i : in std_ulogic; - LRClk_i : in std_ulogic; - SdnyData_o : out std_ulogic); -end ParToI2s; - -architecture rtl of ParToI2s is - - constant activated_cn : std_ulogic := '0'; - constant inactivated_cn : std_ulogic := '1'; - constant activated_c : std_ulogic := '1'; - constant inactivated_c : std_ulogic := '0'; - constant ResetActive_c : std_ulogic := '0'; - - type state_t is (IDLE, WAITSAMPLE, WAITLRCLK0, TRANSMITLEFT, WAITLRCLK1, TRANSMITRIGHT); - signal state, nextstate : state_t; - signal sReg : std_ulogic_vector(SampleSize_g-1 downto 0); - signal Cnt : std_ulogic_vector(4 downto 0); - signal LeftSampleReg : std_ulogic_vector(SampleSize_g - 1 downto 0); - signal RightSampleReg, tempReg : std_ulogic_vector(SampleSize_g - 1 downto 0); - signal LRClkOld : std_ulogic; - signal SClkOld : std_ulogic; - signal Finished, loaded : std_ulogic; - signal LSampleValid, RSampleValid : std_ulogic; - - -begin -- rtl - --- Finished <= '1' when Cnt = "11111" else '0'; - Finished <= '1' when Cnt = std_ulogic_vector(to_unsigned(SampleSize_g,Cnt'high+1)) else '0'; - - -- purpose: Sequential state of the statemachine - seq : process (Clk_i, Reset_i) - begin -- process seq - if Reset_i = ResetActive_c then - state <= IDLE; - elsif Clk_i'event and Clk_i = '1' then - state <= nextstate; - end if; - end process seq; - - - Comb : process (state, LSampleValid, RSampleValid, LRClk_i, LRClkOld, Finished, SClkOld, SClk_i) - begin -- process Comb - nextstate <= state; - SampleAck_o <= '0'; - WaitForSample_o <= '0'; - case state is - when IDLE => nextstate <= WAITSAMPLE; - when WAITSAMPLE => WaitForSample_o <= '1'; - if (LSampleValid and RSampleValid) = '1' then - nextstate <= WAITLRCLK0; - end if; - when WAITLRCLK0 => if ((LRClk_i xor LRClkOld) and LRClkOld) = '1' then - nextstate <= TRANSMITLEFT; - SampleAck_o <= '1'; - end if; - when TRANSMITLEFT => if Finished = '1' and ((SClkOld xor SClk_i) and SCLKOld)='1' then - nextstate <= WAITLRCLK1; - end if; - when WAITLRCLK1 => if ((LRClk_i xor LRClkOld) and LRClk_i) = '1' then - nextstate <= TRANSMITRIGHT; - end if; - when TRANSMITRIGHT => if Finished = '1' and ((SClkOld xor SClk_i) and SCLKOld)='1' then - nextstate <= WAITSAMPLE; - end if; - when others => null; - end case; - end process Comb; - - shiftreg : process (Clk_i, Reset_i) - begin -- process shiftreg - if Reset_i = ResetActive_c then - SdnyData_o <= '0'; - sReg <= (others => '0'); - Cnt <= (others => '0'); - LRClkOld <= '0'; - LeftSampleReg <= (others => '0'); - RightSampleReg <= (others => '0'); - tempReg <= (others => '0'); - LSampleValid <= '0'; - RSampleValid <= '0'; - loaded <= '0'; - SClkOld <= '0'; - elsif Clk_i'event and Clk_i = '1' then - LRClkOld <= LRClk_i; - SClkOld <= SClk_i; - if StrobeLeft_i = '1' then - LeftSampleReg <= SampleLeft_i; - LSampleValid <= '1'; --- sReg(SampleSize_g - 1 downto 0) <= SampleLeft_i; - end if; - if StrobeRight_i = '1' then - RightSampleReg <= SampleRight_i; - RSampleValid <= '1'; - end if; - - case state is - when WAITSAMPLE => - loaded <= '0'; - - when WAITLRCLK0 => - -- ensure the regs are only loaded once - SdnyData_o <= '0'; - if loaded = '0' then - loaded <= '1'; - sReg <= LeftSampleReg; - LSampleValid <= '0'; - RSampleValid <= '0'; - tempReg <= RightSampleReg; - Cnt <= (others => '0'); - --- Cnt <=std_ulogic_vector(to_unsigned(1,Cnt'high+1)); --- SdnyData_o <= LeftSampleReg(SampleSize_g-1); --- sReg <= LeftSampleReg(SampleSize_g-2 downto 0)&"0"; - end if; - when TRANSMITLEFT | TRANSMITRIGHT => - if Finished = '0' and ((SClk_i xor SClkOld) and SClkOld) = '1' then - SdnyData_o <= sReg(SampleSize_g-1); - sReg <= sReg(SampleSize_g-2 downto 0)&"0"; - Cnt <= std_ulogic_vector(unsigned(Cnt) + 1); - end if; - - when WAITLRCLK1 => - SdnyData_o <= '0'; - sReg <= tempReg; - Cnt <= (others => '0'); - --- Cnt <=std_ulogic_vector(to_unsigned(1,Cnt'high+1)); --- SdnyData_o <= tempReg(SampleSize_g-1); --- sReg <= tempReg(SampleSize_g-2 downto 0)&"0"; - when others => null; - end case; - - end if; - end process shiftreg; - - -end rtl; - - diff --git a/lib/gleichmann/i2c/vhdlsyn.txt b/lib/gleichmann/i2c/vhdlsyn.txt deleted file mode 100755 index dafd9494..00000000 --- a/lib/gleichmann/i2c/vhdlsyn.txt +++ /dev/null @@ -1 +0,0 @@ -i2c.vhd partoi2s.vhd diff --git a/lib/gleichmann/miscellaneous/ahb2wb.v b/lib/gleichmann/miscellaneous/ahb2wb.v deleted file mode 100644 index 3c3c25fd..00000000 --- a/lib/gleichmann/miscellaneous/ahb2wb.v +++ /dev/null @@ -1,254 +0,0 @@ -// -*- Mode: Verilog -*- -// Filename : ahb2wb.v -// Description : this module makes up the interface between the AMBA -// AHB slave and the Wishbone slave -// Author : Thomas Ameseder -// Created On : Mon Mar 01 13:55:59 2004 -// -// CVS entries: -// $Author: tame $ -// $Date: 2006/08/14 15:25:09 $ -// $Revision: 1.1 $ -// $State: Exp $ - - - -// synopsys translate_off -//`include "mc_defines.v" -// synopsys translate_on - -// synopsys translate_off -`timescale 1ns/10ps -// synopsys translate_on - -// AHB responses -`define HRESP_OK 2'b00 -`define HRESP_ERROR 2'b01 -`define HRESP_RETRY 2'b10 -`define HRESP_SPLIT 2'b11 // unused -`define HRESP_UNDEF 2'bxx - - - -module ahb2wb - // AMBA interface - (hclk, hresetn, hsel, hready_ba, haddr, hwrite, htrans, hsize, hburst, - hwdata, hmaster, hmastlock, hready, hresp, hrdata, hsplit, - - // Wishbone interface - wb_inta_i, wbm_adr_o, wbm_dat_o, wbm_sel_o, wbm_we_o, - wbm_stb_o, wbm_cyc_o, wbm_dat_i, wbm_ack_i, wbm_rty_i, wbm_err_i, - - // miscellaneous signals - irq_o - ); - - - parameter HAMAX = 8; - parameter HDMAX = 8; - - // AHB state machine - parameter [1:0 ] IDLE = 2'b 00, - SELECTED = 2'b 01, - RESP_1 = 2'b 10, - RESP_2 = 2'b 11; - - - input hclk, - hresetn; - input hsel, - hready_ba, - hwrite, - hmastlock; // unused - input [HAMAX-1:0] haddr; - input [1:0] htrans; // unused - input [2:0] hsize, - hburst; // unused - input [HDMAX-1:0] hwdata; - input [3:0] hmaster; // unused - input wb_inta_i, - wbm_ack_i, - wbm_rty_i, - wbm_err_i; - input [HDMAX-1:0] wbm_dat_i; - - output hready; - output [1:0] hresp; - output [HDMAX-1:0] hrdata; - output [15:0] hsplit; - - output wbm_we_o, - wbm_stb_o, - wbm_cyc_o; - output [HAMAX-1:0] wbm_adr_o; - output [HDMAX-1:0] wbm_dat_o; - output [3:0] wbm_sel_o; - - output irq_o; - - reg wbm_stb_o, wbm_we_o, irq_o; - reg [3:0] wbm_sel_o; - reg hready; - reg [1:0] hresp; - reg [HDMAX-1:0] hrdata; - reg [15:0] hsplit; - reg [HAMAX-1:0] wbm_adr_o; - reg wbm_cyc_o; - reg [HDMAX-1:0] wbm_dat_o; - - - /**** MODULE BODY ****/ - - // local signals - wire wb_stb_start_next, wb_stb_end_next, wb_cyc_next; - - reg hready_s; - reg [1:0] hresp_s; - reg [HDMAX-1:0] hrdata_s; - reg [15:0] hsplit_s; - reg [1:0] state, next_state; - - - assign wb_stb_start_next = hready_ba & hsel; - assign wb_stb_end_next = wbm_ack_i | wbm_err_i | wbm_rty_i; - assign wb_cyc_next = hready_ba; - - - /* model wishbone output signals */ - always @ (posedge hclk or negedge hresetn) begin - if (!hresetn) begin - wbm_we_o <= #1 1'b 0; - wbm_sel_o <= #1 4'h 0; - wbm_cyc_o <= #1 0; - wbm_stb_o <= #1 0; - wbm_adr_o <= #1 0; - wbm_dat_o <= #1 0; - end else begin - - // wishbone cycle must not be shorter than strobe signal - if (wb_cyc_next) - wbm_cyc_o <= #1 1; - else if (!wb_cyc_next & wbm_stb_o & !wb_stb_end_next) - wbm_cyc_o <= #1 1; - else - wbm_cyc_o <= #1 0; - - // strobe has to be high until slave - // acknowledges or signals an error - if (wb_stb_end_next) begin - wbm_stb_o <= #1 0; - wbm_we_o <= #1 1'h 0; - end else if (wb_stb_start_next) begin - wbm_dat_o <= #1 hwdata; - wbm_adr_o <= #1 haddr; - wbm_stb_o <= #1 1; - wbm_we_o <= #1 hwrite; - case (hsize) - 0: wbm_sel_o <= #1 4'h 1; - 1: wbm_sel_o <= #1 4'h 3; - 2: wbm_sel_o <= #1 4'h f; - default: wbm_sel_o <= #1 4'h x; - endcase - end else if (!wbm_cyc_o) begin // propagate address, data - wbm_dat_o <= #1 hwdata; // and write signals - wbm_adr_o <= #1 haddr; - wbm_we_o <= #1 hwrite; - end - end - end // always @ (posedge hclk or negedge hresetn) - - - /* model ahb response signals */ - always @ ( /*`HRESP_ERROR or `HRESP_OK or `HRESP_RETRY - or `HRESP_UNDEF or */ hresp or state or wb_cyc_next - or wb_stb_start_next or wbm_ack_i or wbm_dat_i - or wbm_err_i or wbm_rty_i) begin - - // defaults to avoid latches - hsplit_s = 16'b 0; // no split transactions - hready_s = 1; - hresp_s = `HRESP_OK; - hrdata_s = 8'b 0; - next_state = IDLE; - - case (state) - IDLE: begin - if (wb_stb_start_next) begin - next_state = SELECTED; - hready_s = 0; - end - end - SELECTED: begin - hready_s = 0; - next_state = SELECTED; - if (wbm_err_i) begin - hresp_s = `HRESP_ERROR; - hready_s = 0; - next_state = RESP_1; - end else if (wbm_rty_i) begin - hresp_s = `HRESP_RETRY; - hready_s = 0; - next_state = RESP_1; - end else if (wbm_ack_i) begin - hresp_s = `HRESP_OK; - hready_s = 1; - hrdata_s = wbm_dat_i; - next_state = RESP_2; - end - end - RESP_1: begin // for two-cycle error or retry responses - hready_s = 1; - hresp_s = hresp; // keep previous response - if (wb_cyc_next) // only change state when ahb arbiter is ready to sample - next_state = RESP_2; - else begin - next_state = RESP_1; - hready_s = 0; - end - end - RESP_2: begin - hready_s = 1; - if (wb_cyc_next) begin // only change state when ahb arbiter is ready to sample - hresp_s = `HRESP_OK; - hready_s = 1; - next_state = IDLE; - end else begin - next_state = RESP_2; - hresp_s = hresp; // keep previous response - end - end - default: begin // for simulation purposes - next_state = IDLE; - hready_s = 1'b x; - hresp_s = `HRESP_UNDEF; - hrdata_s = 8'b x; - hsplit_s = 16'b 0; - end - endcase // case(state) - end // always @ (... - - - // change state, propagate interrupt - always @ (posedge hclk or negedge hresetn) begin - if (!hresetn) begin - state <= #1 IDLE; - hresp <= #1 `HRESP_UNDEF; - hrdata <= #1 8'b x; - hsplit <= #1 16'b 0; - hready <= #1 1'b 1; - irq_o <= #1 1'b 0; - end else begin - state <= #1 next_state; - hresp <= #1 hresp_s; - hrdata <= #1 hrdata_s; - hsplit <= #1 hsplit_s; - hready <= #1 hready_s; - irq_o <= #1 wb_inta_i; - end - end - - -endmodule // ahb2wb - - - diff --git a/lib/gleichmann/miscellaneous/miscellaneous_p.vhd b/lib/gleichmann/miscellaneous/miscellaneous_p.vhd deleted file mode 100644 index a48f46d1..00000000 --- a/lib/gleichmann/miscellaneous/miscellaneous_p.vhd +++ /dev/null @@ -1,82 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; - -package miscellaneous is - - -- Gleichmann board types - constant compact_v1 : integer := 1; - constant compact_v2 : integer := 2; - constant mini_altera : integer := 3; - constant mini_lattice : integer := 4; - constant mini_lattice2 : integer := 5; - constant midi : integer := 6; - - component postponer - generic( - HAMAX : integer := 32; - HDMAX : integer := 32; - delta : integer := 1 - ); - port( - hsel_d : out std_logic; - hready_ba_d : out std_logic; - hwrite_d : out std_logic; - hmastlock_d : out std_logic; - haddr_d : out std_logic_vector; - htrans_d : out std_logic_vector(1 downto 0); - hsize_d : out std_logic_vector(2 downto 0); - hburst_d : out std_logic_vector(2 downto 0); - hwdata_d : out std_logic_vector; - hmaster_d : out std_logic_vector(3 downto 0); - hsel : in std_logic; - hready_ba : in std_logic; - hwrite : in std_logic; - hmastlock : in std_logic; - haddr : in std_logic_vector; - htrans : in std_logic_vector(1 downto 0); - hsize : in std_logic_vector(2 downto 0); - hburst : in std_logic_vector(2 downto 0); - hwdata : in std_logic_vector; - hmaster : in std_logic_vector(3 downto 0) - ); - end component; - - - component ahb2wb - generic( - HAMAX : integer := 8; - HDMAX : integer := 8 - ); - port( - hclk : in std_logic; - hresetn : in std_logic; - hsel : in std_logic; - hready_ba : in std_logic; - haddr : in std_logic_vector; - hwrite : in std_logic; - htrans : in std_logic_vector(1 downto 0); - hsize : in std_logic_vector(2 downto 0); - hburst : in std_logic_vector(2 downto 0); - hwdata : in std_logic_vector; - hmaster : in std_logic_vector(3 downto 0); - hmastlock : in std_logic; - hready : out std_logic; - hresp : out std_logic_vector(1 downto 0); - hrdata : out std_logic_vector; - hsplit : out std_logic_vector(15 downto 0); - wb_inta_i : in std_logic; - wbm_adr_o : out std_logic_vector; - wbm_dat_o : out std_logic_vector; - wbm_sel_o : out std_logic_vector(3 downto 0); - wbm_we_o : out std_logic; - wbm_stb_o : out std_logic; - wbm_cyc_o : out std_logic; - wbm_dat_i : in std_logic_vector; - wbm_ack_i : in std_logic; - wbm_rty_i : in std_logic; - wbm_err_i : in std_logic; - irq_o : out std_logic - ); - end component; - -end miscellaneous; diff --git a/lib/gleichmann/miscellaneous/postponer.v b/lib/gleichmann/miscellaneous/postponer.v deleted file mode 100644 index 5adadce6..00000000 --- a/lib/gleichmann/miscellaneous/postponer.v +++ /dev/null @@ -1,80 +0,0 @@ -// -*- Mode: Verilog -*- -// Filename : postponer.v -// Description : this module is for generating an adjustable delay for -// the AHB signals from the LEON processor -// Author : Thomas Ameseder -// Created On : Fri Mar 26 14:20:53 2004 -// -// CVS entries: -// $Author: tame $ -// $Date: 2006/08/14 15:25:09 $ -// $Revision: 1.1 $ -// $State: Exp $ - - - -`timescale 1ns / 10ps - - - -module postponer ( - // Outputs - hsel_d, hready_ba_d, hwrite_d, hmastlock_d, haddr_d, htrans_d, - hsize_d, hburst_d, hwdata_d, hmaster_d, - // Inputs - hsel, hready_ba, hwrite, hmastlock, haddr, htrans, hsize, hburst, - hwdata, hmaster - ) ; - - parameter HAMAX = 32; - parameter HDMAX = 32; - parameter delta = 1; - - input hsel, hready_ba, hwrite, hmastlock; - input [HAMAX-1:0] haddr; - input [1:0] htrans; - input [2:0] hsize, hburst; - input [HDMAX-1:0] hwdata; - input [3:0] hmaster; - - output hsel_d, hready_ba_d, hwrite_d, hmastlock_d; - output [HAMAX-1:0] haddr_d; - output [1:0] htrans_d; - output [2:0] hsize_d, hburst_d; - output [HDMAX-1:0] hwdata_d; - output [3:0] hmaster_d; - - /*AUTOREG*/ - // Beginning of automatic regs (for this module's undeclared outputs) - reg [HAMAX-1:0] haddr_d; - reg [2:0] hburst_d; - reg [3:0] hmaster_d; - reg hmastlock_d; - reg hready_ba_d; - reg hsel_d; - reg [2:0] hsize_d; - reg [1:0] htrans_d; - reg [HDMAX-1:0] hwdata_d; - reg hwrite_d; - // End of automatics - - always @ (/*AUTOSENSE*/haddr or hburst or hmaster or hmastlock - or hready_ba or hsel or hsize or htrans or hwdata - or hwrite) - begin - hsel_d <= #delta hsel; - hready_ba_d <= #delta hready_ba; - hwrite_d <= #delta hwrite; - hmastlock_d <= #delta hmastlock; - haddr_d <= #delta haddr; - htrans_d <= #delta htrans; - hsize_d <= #delta hsize; - hburst_d <= #delta hburst; - hwdata_d <= #delta hwdata; - hmaster_d <= #delta hmaster; - end - - - -endmodule // postponer - diff --git a/lib/gleichmann/miscellaneous/vhdlsyn.txt b/lib/gleichmann/miscellaneous/vhdlsyn.txt deleted file mode 100755 index a2b9318c..00000000 --- a/lib/gleichmann/miscellaneous/vhdlsyn.txt +++ /dev/null @@ -1 +0,0 @@ -miscellaneous_p.vhd diff --git a/lib/gleichmann/miscellaneous/vlogsyn.txt b/lib/gleichmann/miscellaneous/vlogsyn.txt deleted file mode 100644 index 660a4093..00000000 --- a/lib/gleichmann/miscellaneous/vlogsyn.txt +++ /dev/null @@ -1,2 +0,0 @@ -postponer.v -ahb2wb.v diff --git a/lib/gleichmann/multiio/multiio.in b/lib/gleichmann/multiio/multiio.in deleted file mode 100644 index 074caeae..00000000 --- a/lib/gleichmann/multiio/multiio.in +++ /dev/null @@ -1,2 +0,0 @@ -bool 'MultiIO enable' CONFIG_MULTIIO_ENABLE - diff --git a/lib/gleichmann/multiio/multiio.in.h b/lib/gleichmann/multiio/multiio.in.h deleted file mode 100644 index 0d8c8bfb..00000000 --- a/lib/gleichmann/multiio/multiio.in.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef CONFIG_MULTIIO_ENABLE -#define CONFIG_MULTIIO_ENABLE 0 -#endif - diff --git a/lib/gleichmann/multiio/multiio.in.help b/lib/gleichmann/multiio/multiio.in.help deleted file mode 100644 index 6536eac1..00000000 --- a/lib/gleichmann/multiio/multiio.in.help +++ /dev/null @@ -1,3 +0,0 @@ -MultiIO Design -CONFIG_MULTIIO_ENABLE - Say Y here to enable a simple MultiIO Design (LEDS, DIPSWITCHES, etc.). diff --git a/lib/gleichmann/multiio/multiio.in.vhd b/lib/gleichmann/multiio/multiio.in.vhd deleted file mode 100644 index 53ae68c0..00000000 --- a/lib/gleichmann/multiio/multiio.in.vhd +++ /dev/null @@ -1,3 +0,0 @@ --- MultiIO enable - constant CFG_MULTIIO : integer := CONFIG_MULTIIO_ENABLE; - diff --git a/lib/gleichmann/multiio/multiio_ea.vhd b/lib/gleichmann/multiio/multiio_ea.vhd deleted file mode 100644 index 12b32fbd..00000000 --- a/lib/gleichmann/multiio/multiio_ea.vhd +++ /dev/null @@ -1,664 +0,0 @@ --------------------------------------------------------------------- --- Entity: MultiIO_APB --- File: MultiIO_APB.vhd --- Author: Thomas Ameseder, Gleichmann Electronics --- Based on an orginal version by Manfred.Helzle@embedd.it --- --- Description: APB Multiple digital I/O for minimal User Interface --------------------------------------------------------------------- --- Functionality: --- 8 LEDs, active low or high, r/w --- dual 7Segment, active low or high, w only --- 8 DIL Switches, active low or high, r only --- 8 Buttons, active low or high, r only, with IRQ enables --------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; - -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; - -library gleichmann; -use gleichmann.spi.all; -use gleichmann.i2c.all; -use gleichmann.miscellaneous.all; -use gleichmann.ge_clkgen.all; -use gleichmann.multiio.all; - --- pragma translate_off -use std.textio.all; --- pragma translate_on - - -entity MultiIO_APB is - generic ( - hpe_version: integer := 0; -- adapt multiplexing for different boards - pindex : integer := 0; -- Leon-Index - paddr : integer := 0; -- Leon-Address - pmask : integer := 16#FFF#; -- Leon-Mask - pirq : integer := 0; -- Leon-IRQ - - clk_freq_in : integer := 25_000_000; -- Leons clock to calculate timings - - led7act : std_logic := '0'; -- active level for 7Segment - ledact : std_logic := '0'; -- active level for LEDs - switchact : std_logic := '1'; -- active level for LED's - buttonact : std_logic := '1'; -- active level for LED's - - n_switches : integer := 8; -- number of switches that are driven - n_leds : integer := 8 -- number of LEDs that are driven - - ); - - port ( - rst_n : in std_ulogic; -- global Reset, active low - clk : in std_ulogic; -- global Clock - apbi : in apb_slv_in_type; -- APB-Input - apbo : out apb_slv_out_type; -- APB-Output - MultiIO_in : in MultiIO_in_type; -- MultIO-Inputs - MultiIO_out : out MultiIO_out_type -- MultiIO-Outputs - ); -end entity; - - -architecture Implementation of MultiIO_APB is ---------------------- - - constant VERSION : std_logic_vector(31 downto 0) := x"EA_07_12_06"; - constant REVISION : integer := 1; - constant MUXMAX : integer := 7; - - constant VCC : std_logic_vector(31 downto 0) := (others => '1'); - constant GND : std_logic_vector(31 downto 0) := (others => '0'); - - signal Enable1ms : boolean; - signal MUXCounter : integer range 0 to MUXMAX-1; - - signal clkgen_mclk : std_ulogic; - signal clkgen_bclk : std_ulogic; - signal clkgen_sclk : std_ulogic; - signal clkgen_lrclk : std_ulogic; - - type state_t is (WAIT_FOR_SYNC,READY,WAIT_FOR_ACK); - signal state,next_state : state_t; - signal Strobe,next_Strobe : std_ulogic; - - -- status signals of the i2s core for upper-level state machine - signal SampleAck, WaitForSample : std_ulogic; - signal samplereg : std_ulogic_vector(N_CODECI2SBITS-1 downto 0); - - constant pconfig : apb_config_type := ( - 0 => ahb_device_reg (VENDOR_GLEICHMANN, GLEICHMANN_HIFC, 0, REVISION, pirq), - 1 => apb_iobar(paddr, pmask) - ); - - type MultiIOregisters is - record - ledreg : std_logic_vector(31 downto 0); -- LEDs - led7reg : std_logic_vector(31 downto 0); -- Dual 7Segment LEDs - codecreg : std_logic_vector(31 downto 0); - codecreg2 : std_logic_vector(31 downto 0); - - -- Switches in - sw_inreg : std_logic_vector(31 downto 0); - -- ASCII value of input button - btn_inreg : std_logic_vector(31 downto 0); - - irqenareg : std_logic_vector(31 downto 0); -- IRQ enables for Buttons - btn_irqs : std_logic_vector(31 downto 0); -- IRQs from each Button - - new_data : std_ulogic; --- new_data_valid : std_ulogic; - lcdreg : std_logic_vector(31 downto 0); -- LCD instruction - - --cb1_in_reg : std_logic_vector(31 downto 0); - --cb1_out_reg : std_logic_vector(31 downto 0); - - -- cb3_in_reg : std_logic_vector(31 downto 0); - --cb4_in2_reg : std_logic_vector(31 downto 0); - -- cb3_out_reg : std_logic_vector(31 downto 0); - --cb4_out2_reg : std_logic_vector(31 downto 0); - - exp_in_reg : std_logic_vector(31 downto 0); - exp_out_reg : std_logic_vector(31 downto 0); - - hsc_out_reg : std_logic_vector(31 downto 0); - hsc_in_reg : std_logic_vector(31 downto 0); - end record; - - signal r, rin : MultiIOregisters; -- register sets - - signal Key : std_logic_vector(7 downto 0); -- ASCII value of button - -- character representation of the key (for simulation purposes) - signal KeyVal : character; - - signal OldColumnRow1 : std_logic_vector(6 downto 0); -- for key debounce - signal OldColumnRow2 : std_logic_vector(6 downto 0); -- for key debounce - -begin - - reg_rw : process(MUXCounter, MultiIO_in, apbi, key, r, rst_n) - variable readdata : std_logic_vector(31 downto 0); -- system bus width - variable irqs : std_logic_vector(31 downto 0); -- system IRQs width - variable v : MultiIOregisters; -- register set - begin - v := r; - - -- reset registers - if rst_n = '0' then - -- lower half of LEDs on - v.ledreg := (others => '0'); - v.ledreg(3 downto 0) := "1111"; - - v.led7reg := (others => '0'); - v.led7reg(15 downto 0) := X"38_4F"; -- show "L3" Leon3 on 7Segments - - v.codecreg := (others => '0'); - v.codecreg2 := (others => '0'); - v.irqenareg := (others => '0'); -- IRQs disable - v.btn_inreg := (others => '0'); - v.sw_inreg := (others => '0'); - - -- new data flag off - v.new_data := '0'; --- v.new_data_valid := '0'; - v.lcdreg := (others => '0'); - - -- v.cb3_in_reg := (others => '0'); - --v.cb4_in2_reg := (others => '0'); - -- v.cb3_out_reg := (others => '0'); - --v.cb4_out2_reg := (others => '0'); - - v.exp_in_reg := (others => '0'); - v.exp_out_reg := (others => '0'); - - v.hsc_in_reg := (others => '0'); - v.hsc_out_reg := (others => '0'); - end if; - - -- get switches and buttons - if switchact = '1' then - v.sw_inreg(N_SWITCHES-1 downto 0) := MultiIO_in.switch_in; - else - v.sw_inreg(N_SWITCHES-1 downto 0) := not MultiIO_in.switch_in; - end if; - - v.btn_inreg(7 downto 0) := key; - - v.btn_irqs := (others => '0'); - - --------------------------------------------------------------------------- - -- TO BE ALTERED - --------------------------------------------------------------------------- - -- set local button-IRQs - for i in 0 to v.btn_irqs'left loop - -- detect low-to-high transition - if (v.btn_inreg(i) = '1') and (r.btn_inreg(i) = '0') then - -- set local IRQs if IRQ enabled - v.btn_irqs(i) := v.btn_inreg(i) and r.irqenareg(i); - else - -- clear local IRQs - v.btn_irqs(i) := '0'; - end if; - end loop; - --------------------------------------------------------------------------- - - -- read registers - readdata := (others => 'X'); - - case conv_integer(apbi.paddr(6 downto 2)) is - when 0 => readdata := r.ledreg; -- LEDs - when 1 => readdata := r.led7reg; -- seven segment - when 2 => readdata := r.codecreg; -- codec command register - when 3 => readdata := r.codecreg2; -- codec i2s register - when 4 => readdata := r.sw_inreg; -- switches - when 5 => readdata := r.btn_inreg; -- buttons - when 6 => readdata := r.irqenareg; -- IRQ enables - when 7 => readdata := conv_std_logic_vector(pirq, 32); -- IRQ# - when 8 => readdata := version; -- version - when 9 => readdata := r.lcdreg; -- LCD data - when 10 => readdata := r.exp_out_reg; -- expansion connector out - when 11 => readdata := r.exp_in_reg; -- expansion connector in - when 12 => readdata := r.hsc_out_reg; - when 13 => readdata := r.hsc_in_reg; - --when 14 => readdata := r.cb4_out1_reg; -- childboard4 connector out - --when 15 => readdata := r.cb4_out2_reg; -- childboard4 connector out - -- when 14 => readdata := r.cb3_in_reg; -- childboard3 connector in - -- when 15 => readdata := r.cb3_out_reg; -- childboard3 connector out - --when 14 => readdata := r.cb1_out_reg; -- childboard1 connector out - --when 15 => readdata := r.cb1_in_reg; -- childboard1 connector in - when others => null; - end case; - - -- write registers - if (apbi.psel(pindex) and apbi.penable and apbi.pwrite) = '1' then - case conv_integer(apbi.paddr(6 downto 2)) is - when 0 => v.ledreg := - GND(31 downto N_LEDS) & - apbi.pwdata(N_LEDS-1 downto 0); -- write LEDs - when 1 => v.led7reg := - GND(31 downto N_SEVSEGBITS) & - apbi.pwdata(N_SEVSEGBITS-1 downto 0); -- write 7Segment - when 2 => v.codecreg := - GND(31 downto N_CODECBITS) & - apbi.pwdata(N_CODECBITS-1 downto 0); - when 3 => v.codecreg2 := - GND(31 downto N_CODECI2SBITS) & - apbi.pwdata(N_CODECI2SBITS-1 downto 0); - when 6 => v.irqenareg := - GND(31 downto N_BUTTONS) & - apbi.pwdata(N_BUTTONS-1 downto 0); - when 9 => v.lcdreg := - GND(31 downto N_LCDBITS) & - apbi.pwdata(N_LCDBITS-1 downto 0); - -- signal that new data has arrived --- v.new_data_valid := '0'; - v.new_data := '1'; - when 10 => v.exp_out_reg := - GND(31 downto N_EXPBITS/2) & - -- bit(N_EXPBITS) holds enable signal - apbi.pwdata(N_EXPBITS/2-1 downto 0); - when 12 => v.hsc_out_reg := - GND(31 downto N_HSCBITS) & - apbi.pwdata(N_HSCBITS-1 downto 0); - --when 14 => v.cb4_out1_reg := - -- apbi.pwdata(31 downto 0); - -- when 15 => v.cb3_out_reg := - -- apbi.pwdata(31 downto 0); - --when 14 => v.exp_out_reg := - -- GND(31 downto 13) & - -- -- bit(N_EXPBITS) holds enable signal - -- apbi.pwdata(12 downto 0); - when others => null; - end case; - end if; - - -- set PIRQ - irqs := (others => '0'); - for i in 0 to v.btn_irqs'left loop - -- set IRQ if button-i pressed and IRQ enabled - irqs(pirq) := irqs(pirq) or r.btn_irqs(i); - end loop; - - if ledact = '1' then - MultiIO_out.led_out <= r.ledreg(N_LEDS-1 downto 0); -- not inverted - else - MultiIO_out.led_out <= not r.ledreg(N_LEDS-1 downto 0); -- inverted - end if; - - -- disable seven segment and LC display by default --- MultiIO_out.lcd_enable <= '0'; - MultiIO_out.lcd_rw <= r.lcdreg(8); - MultiIO_out.lcd_regsel <= r.lcdreg(9); - - -- reset new lcd data flag - -- will be enabled when new data are written to the LCD register - if MUXCounter = 4 then - v.new_data := '0'; --- v.serviced := '1'; - end if; - - -- register inputs from expansion connector - v.exp_in_reg(N_EXPBITS/2-1 downto 0) := MultiIO_in.exp_in; - - MultiIO_out.exp_out <= r.exp_out_reg(N_EXPBITS/2-1 downto 0); - - -- high-speed connector - v.hsc_in_reg(N_HSCBITS-1 downto 0) := MultiIO_in.hsc_in; - MultiIO_out.hsc_out <= r.hsc_out_reg(N_HSCBITS-1 downto 0); - - -- configure control port of audio codec for SPI mode - MultiIO_out.codec_mode <= '1'; - - apbo.prdata <= readdata; -- output data to Leon - apbo.pirq <= irqs; -- output IRQs to Leon - apbo.pindex <= pindex; -- output index to Leon - - rin <= v; -- update registers - - end process; - - - apbo.pconfig <= pconfig; -- output config to Leon - - - regs : process(clk) -- update registers - begin - if rising_edge(clk) then - r <= rin; - end if; - end process; - - - KeyBoard : process(clk, rst_n) - variable ColumnStrobe : std_logic_vector(2 downto 0); - variable FirstTime : boolean; - variable NewColumnRow : std_logic_vector(6 downto 0); - begin - if rst_n = '0' then - MultiIO_out.column_out <= (others => '0'); -- all column off - Key <= X"40"; -- default '@' after Reset and no key pressed - OldColumnRow1 <= "1111111"; - OldColumnRow2 <= "1110011"; - ColumnStrobe := "001"; - FirstTime := true; - elsif rising_edge(clk) then - if Enable1ms then - if MultiIO_in.row_in = "0000" then -- no key pressed - ColumnStrobe := ColumnStrobe(1) & ColumnStrobe(0) & ColumnStrobe(2); -- rotate column - MultiIO_out.column_out <= ColumnStrobe; - - if not FirstTime then - Key <= X"3F"; -- no key pressed '?' - end if; - - else -- key pressed - OldColumnRow2 <= OldColumnRow1; - - -- check whether button inputs produce a high or a - -- low level, then assign these inputs in order that - -- they can be decoded into ASCII format - if buttonact = '1' then - NewColumnRow := ColumnStrobe & MultiIO_in.row_in; - else - NewColumnRow := ColumnStrobe & not MultiIO_in.row_in; - end if; - - OldColumnRow1 <= NewColumnRow; - - if (ColumnStrobe & MultiIO_in.row_in = OldColumnRow1) and - (OldColumnRow1 = OldColumnRow2) - then -- debounced - FirstTime := false; -- 1st valid key pressed - - case OldColumnRow2 is -- decode keys into ascii characters - when "0010001" => Key <= x"31"; -- 1 - when "0010010" => Key <= x"34"; -- 4 - when "0010100" => Key <= x"37"; -- 7 - when "0011000" => Key <= x"43"; -- C - when "0100001" => Key <= x"32"; -- 2 - when "0100010" => Key <= x"35"; -- 5 - when "0100100" => Key <= x"38"; -- 8 - when "0101000" => Key <= x"30"; -- 0 - when "1000001" => Key <= x"33"; -- 3 - when "1000010" => Key <= x"36"; -- 6 - when "1000100" => Key <= x"39"; -- 9 - when "1001000" => Key <= x"45"; -- E - when others => Key <= x"39"; -- ? -- more than one key pressed - end case; - else - Key <= x"3D"; -- '=' -- bouncing - end if; -- debounce - end if; -- MultiIO_in.row_in - end if; -- Enable1ms - end if; -- rst_n - end process KeyBoard; - - Multiplex3Sources : if hpe_version = midi generate - Multiplex : process(MUXCounter, r) - begin - -- disable LED output by default - MultiIO_out.led_enable <= '0' xnor ledact; - -- disable 7-segment display by default - MultiIO_out.led_ca_out <= "00" xnor (led7act & led7act); - - -- set enable signal in the middle of LCD timeslots - if MUXCounter = 3 then - MultiIO_out.lcd_enable <= '1'; - else - MultiIO_out.lcd_enable <= '0'; - end if; - - case MUXCounter is - when 0 | 1 => - -- output logical value according to active level of the 7segment display - MultiIO_out.led_a_out <= r.led7reg(MUXCounter*8 + 0) xnor led7act; - MultiIO_out.led_b_out <= r.led7reg(MUXCounter*8 + 1) xnor led7act; - MultiIO_out.led_c_out <= r.led7reg(MUXCounter*8 + 2) xnor led7act; - MultiIO_out.led_d_out <= r.led7reg(MUXCounter*8 + 3) xnor led7act; - MultiIO_out.led_e_out <= r.led7reg(MUXCounter*8 + 4) xnor led7act; - MultiIO_out.led_f_out <= r.led7reg(MUXCounter*8 + 5) xnor led7act; - MultiIO_out.led_g_out <= r.led7reg(MUXCounter*8 + 6) xnor led7act; - MultiIO_out.led_dp_out <= r.led7reg(MUXCounter*8 + 7) xnor led7act; - -- selectively enable the current digit - for i in 0 to 1 loop - if i = MUXCounter then - MultiIO_out.led_ca_out(i) <= '1' xnor led7act; - else - MultiIO_out.led_ca_out(i) <= '0' xnor led7act; - end if; - end loop; -- i - when 2 | 3 | 4 => - MultiIO_out.led_a_out <= r.lcdreg(0); - MultiIO_out.led_b_out <= r.lcdreg(1); - MultiIO_out.led_c_out <= r.lcdreg(2); - MultiIO_out.led_d_out <= r.lcdreg(3); - MultiIO_out.led_e_out <= r.lcdreg(4); - MultiIO_out.led_f_out <= r.lcdreg(5); - MultiIO_out.led_g_out <= r.lcdreg(6); - MultiIO_out.led_dp_out <= r.lcdreg(7); - when 5 | 6 => - MultiIO_out.led_enable <= '1' xnor ledact; - MultiIO_out.led_a_out <= r.ledreg(0) xnor ledact; - MultiIO_out.led_b_out <= r.ledreg(1) xnor ledact; - MultiIO_out.led_c_out <= r.ledreg(2) xnor ledact; - MultiIO_out.led_d_out <= r.ledreg(3) xnor ledact; - MultiIO_out.led_e_out <= r.ledreg(4) xnor ledact; - MultiIO_out.led_f_out <= r.ledreg(5) xnor ledact; - MultiIO_out.led_g_out <= r.ledreg(6) xnor ledact; - MultiIO_out.led_dp_out <= r.ledreg(7) xnor ledact; - when others => - null; - end case; - end process Multiplex; - end generate Multiplex3Sources; - - Multiplex2Sources : if hpe_version /= midi generate - Multiplex : process(MUXCounter, r) - begin - -- disable LED output by default - MultiIO_out.led_enable <= '0' xnor ledact; - -- disable 7-segment display by default - MultiIO_out.led_ca_out <= "00" xnor (led7act & led7act); - - -- set enable signal in the middle of LCD timeslots - if MUXCounter = 3 then - MultiIO_out.lcd_enable <= '1'; - else - MultiIO_out.lcd_enable <= '0'; - end if; - - case MUXCounter is - when 0 | 1 => - -- output logical value according to active level of the 7segment display - MultiIO_out.led_a_out <= r.led7reg(MUXCounter*8 + 0) xnor led7act; - MultiIO_out.led_b_out <= r.led7reg(MUXCounter*8 + 1) xnor led7act; - MultiIO_out.led_c_out <= r.led7reg(MUXCounter*8 + 2) xnor led7act; - MultiIO_out.led_d_out <= r.led7reg(MUXCounter*8 + 3) xnor led7act; - MultiIO_out.led_e_out <= r.led7reg(MUXCounter*8 + 4) xnor led7act; - MultiIO_out.led_f_out <= r.led7reg(MUXCounter*8 + 5) xnor led7act; - MultiIO_out.led_g_out <= r.led7reg(MUXCounter*8 + 6) xnor led7act; - MultiIO_out.led_dp_out <= r.led7reg(MUXCounter*8 + 7) xnor led7act; - -- selectively enable the current digit - for i in 0 to 1 loop - if i = MUXCounter then - MultiIO_out.led_ca_out(i) <= '1' xnor led7act; - else - MultiIO_out.led_ca_out(i) <= '0' xnor led7act; - end if; - end loop; -- i - - when others => - MultiIO_out.led_a_out <= r.lcdreg(0); - MultiIO_out.led_b_out <= r.lcdreg(1); - MultiIO_out.led_c_out <= r.lcdreg(2); - MultiIO_out.led_d_out <= r.lcdreg(3); - MultiIO_out.led_e_out <= r.lcdreg(4); - MultiIO_out.led_f_out <= r.lcdreg(5); - MultiIO_out.led_g_out <= r.lcdreg(6); - MultiIO_out.led_dp_out <= r.lcdreg(7); - end case; - end process Multiplex; - end generate Multiplex2Sources; - - - -- generate prescaler signal every 100 ms - -- control MUXCounter according to input and board type - Count1ms : process(clk, rst_n) - constant divider100ms : integer := clk_freq_in / 10_000; - variable frequency_counter : integer range 0 to Divider100ms; - begin - if rst_n = '0' then - frequency_counter := Divider100ms; - Enable1ms <= false; - MUXCounter <= 0; - elsif rising_edge(clk) then - if frequency_counter = 0 then -- 1-ms counter has expired - frequency_counter := Divider100ms; - Enable1ms <= true; - - if (hpe_version = midi) then - -- skip LCD control sequence and go to - -- LED control - if (MUXCounter = 1 and r.new_data = '0') then - MUXCounter <= 5; - -- overflow at maximum counter value for Hpe_midi - elsif MUXCounter = MUXMAX-1 then - MUXCounter <= 0; - else - MUXCounter <= MUXCounter + 1; - end if; - elsif (hpe_version /= midi) then - -- skip LCD control sequence and go back to - -- 7-segment control - if (MUXCounter = 1 and r.new_data = '0') then - MUXCounter <= 0; - -- overflow at maximum counter value for Hpe_mini - elsif MUXCounter = MUXMAX-3 then - MUXCounter <= 0; - else - MUXCounter <= MUXCounter + 1; - end if; - end if; - - else - frequency_counter := frequency_counter - 1; - Enable1ms <= false; - end if; - end if; - end process; - - --------------------------------------------------------------------------------------- - -- AUDIO CODEC SECTION - --------------------------------------------------------------------------------------- - - tlv320aic23b_audio : if hpe_version = mini_altera generate - - -- audio clock generation - clk_gen : ClockGenerator - port map ( - Clk => clk, - Reset => rst_n, - omclk => clkgen_mclk, - obclk => clkgen_bclk, - osclk => clkgen_sclk, - olrcout => clkgen_lrclk); - - -- drive clock signals by clock generator - MultiIO_out.CODEC_SCLK <= clkgen_sclk; - MultiIO_out.CODEC_MCLK <= clkgen_mclk; - MultiIO_out.CODEC_BCLK <= clkgen_bclk; - MultiIO_out.CODEC_LRCIN <= clkgen_lrclk; - MultiIO_out.CODEC_LRCOUT <= clkgen_lrclk; - - -- SPI control interface - spi_xmit_1 : spi_xmit - generic map ( - data_width => N_CODECBITS) - port map ( - clk_i => clkgen_SCLK, - rst_i => rst_n, - data_i => r.codecreg(N_CODECBITS-1 downto 0), - CODEC_SDIN => MultiIO_out.CODEC_SDIN, - CODEC_CS => MultiIO_out.CODEC_CS); - - -- I2C data interface - ParToI2s_1 : ParToI2s - generic map ( - SampleSize_g => N_CODECI2SBITS) - port map ( - Clk_i => clk, - Reset_i => rst_n, - SampleLeft_i => SampleReg, - SampleRight_i => SampleReg, - StrobeLeft_i => Strobe, - StrobeRight_i => Strobe, - SampleAck_o => SampleAck, - WaitForSample_o => WaitForSample, - SClk_i => clkgen_sclk, - LRClk_i => clkgen_lrclk, - SdnyData_o => MultiIO_out.CODEC_DIN); - - audio_ctrl_sm : process(SampleAck, WaitForSample, state) - begin - next_state <= state; - next_Strobe <= '0'; - case state is - when WAIT_FOR_SYNC => - if WaitForSample = '1' then - next_state <= READY; - end if; - when READY => - next_state <= WAIT_FOR_ACK; - next_Strobe <= '1'; - when WAIT_FOR_ACK => - if SampleAck = '1' then - next_state <= READY; - end if; - when others => - next_state <= WAIT_FOR_SYNC; - end case; - end process; - - audio_ctrl_reg : process(clk, rst_n) - begin - if rst_n = '0' then -- asynchronous reset - state <= WAIT_FOR_SYNC; - Strobe <= '0'; - SampleReg <= (others => '0'); - elsif clk'event and clk = '1' then - state <= next_state; - Strobe <= next_Strobe; - if (next_Strobe) = '1' then --- if Mode = '0' then --- SampleReg <= std_ulogic_vector(unsigned(AudioSample)- X"80"); --- else --- SampleReg <= AudioSample; --- end if; - SampleReg <= std_ulogic_vector(r.codecreg2(N_CODECI2SBITS-1 downto 0)); - end if; - end if; - end process; - - end generate tlv320aic23b_audio; - - - --------------------------------------------------------------------------------------- - -- DEBUG SECTION - --------------------------------------------------------------------------------------- - --- pragma translate_off - KeyVal <= - ascii2char(conv_integer(Key)) when - (conv_integer(Key) >= 16#30#) and (conv_integer(Key) <= 16#46#) - else 'U'; - - bootmsg : report_version - generic map ("MultiIO_APB6:" & tost(pindex) & - ", Human Interface Controller rev " & tost(REVISION) & - ", IRQ " & tost(pirq)); --- pragma translate_on - -end architecture; diff --git a/lib/gleichmann/multiio/multiio_p.vhd b/lib/gleichmann/multiio/multiio_p.vhd deleted file mode 100644 index 05494393..00000000 --- a/lib/gleichmann/multiio/multiio_p.vhd +++ /dev/null @@ -1,239 +0,0 @@ --------------------------------------------------------------------- --- Package: MultiIO --- File: MultiIO.vhd --- Author: Thomas Ameseder, Gleichmann Electronics --- Based on an orginal version by Manfred.Helzle@embedd.it --- --- Description: APB Multiple digital I/O Types and Components --------------------------------------------------------------------- --- Functionality: --- 8 LEDs, active low or high, r/w --- dual 7Segment, active low or high, w only --- 8 DIL Switches, active low or high, r only --- 8 Buttons, active low or high, r only, with IRQ enables --------------------------------------------------------------------- - -library ieee; -use IEEE.STD_LOGIC_1164.all; - -library grlib; -use grlib.amba.all; - -package MultiIO is - - -- maximum number of switches and LEDs - -- specific number that is used can be defined via a generic - constant N_SWITCHMAX : integer := 8; - constant N_LEDMAX : integer := 8; - - constant N_BUTTONS : integer := 12; -- number of push-buttons - - -- data width of the words for the codec configuration interface - constant N_CODECBITS : integer := 16; - - -- data width of the words for the i2s digital samples - constant N_CODECI2SBITS : integer := 16; - - -- the number of register bits that are assigned to the LCD - -- the enable control bit is set automatically - -- this constant should comprise the number of data bits as well - -- as the RW and RS control bits - constant N_LCDBITS : integer := 10; - - -- number of bits to hold information for the (single/dual) - -- seven segment display; - constant N_SEVSEGBITS : integer := 16; - - -- number of expansion connector i/o bits - constant N_EXPBITS : integer := 40; - - -- number of high-speed connector bits per connector - constant N_HSCBITS : integer := 4; - - -- number of childboard3 connector i/o bits - constant N_CB3 : integer := 32; - - type asciichar_vect is array (16#30# to 16#46#) of character; - - -- excerpt of the ASCII chart - constant ascii2char : asciichar_vect := --- ------------------------------------------- --- | 30 31 32 33 34 35 36 37 | --- ------------------------------------------- - ('0', '1', '2', '3', '4', '5', '6', '7', --- ------------------------------------------- --- | 38 39 3A 3B 3C 3D 3E 3F | --- ------------------------------------------- - '8', '9', ':', ';', '<', '=', '>', '?', --- ------------------------------------------- --- | 40 41 42 43 44 45 46 | --- ------------------------------------------- - '@', 'A', 'B', 'C', 'D', 'E', 'F'); - - - --------------------------------------------------------------------------------------- - -- AUDIO CODEC - --------------------------------------------------------------------------------------- - - subtype tReg is std_ulogic_vector(N_CODECBITS-1 downto 0); - - type tRegMap is array(10 downto 0) of tReg; - subtype tRegData is std_ulogic_vector(8 downto 0); - subtype tRegAddr is std_ulogic_vector(6 downto 0); - - -- ADDRESS - constant cAddrLLI : tRegAddr := "0000000"; -- Left line input channel volume control - constant cAddrRLI : tRegAddr := "0000001"; -- Right line input channel volume control - constant cAddrLCH : tRegAddr := "0000010"; -- Left channel headphone volume control - constant cAddrRCH : tRegAddr := "0000011"; -- Right channel headphone volume control - constant cAddrAAP : tRegAddr := "0000100"; -- Analog audio path control - constant cAddrDAP : tRegAddr := "0000101"; -- Digital audio path control - constant cAddrPDC : tRegAddr := "0000110"; -- Power down control - constant cAddrDAI : tRegAddr := "0000111"; -- Digital audio interface format - constant cAddrSRC : tRegAddr := "0001000"; -- Sample rate control - constant cAddrDIA : tRegAddr := "0001001"; -- Digital interface activation - constant cAddrReset : tRegAddr := "0001111"; -- Reset register - - -- Data - constant cDataLLI : tRegData := "100011111"; - constant cDataRLI : tRegData := "100011111"; - constant cDataLCH : tRegData := "011111111"; - constant cDataRCH : tRegData := "011111111"; - constant cDataAAP : tRegData := "000011010"; - constant cDataDAP : tRegData := "000000000"; - constant cDataPDC : tRegData := "000001010"; - constant cDataDAI : tRegData := "000000010"; - constant cDataSRC : tRegData := "010000000"; - constant cDataDIA : tRegData := "000000001"; - constant cdataInit : tRegData := "000000000"; - - - -- Register - constant cRegLLI : tReg := cAddrLLI & cDataLLI; - constant cRegRLI : tReg := cAddrRLI & cDataRLI; - constant cRegLCH : tReg := cAddrLCH & cDataLCH; - constant cRegRCH : tReg := cAddrRCH & cDataRCH; - constant cRegAAP : tReg := cAddrAAP & cDataAAP; - constant cRegDAP : tReg := cAddrDAP & cDataDAP; - constant cRegPDC : tReg := cAddrPDC & cDataPDC; - constant cRegDAI : tReg := cAddrDAI & cDataDAI; - constant cRegSRC : tReg := cAddrSRC & cDataSRC; - constant cRegDIA : tReg := cAddrDIA & cDataDIA; - constant cRegReset : tReg := CAddrReset & cdataInit; - - - -- Register Map - constant cregmap : tRegMap := ( - 0 => cRegLLI, - 1 => cRegRLI, - 2 => cRegLCH, - 3 => cRegRCH, - 4 => cRegAAP, - 5 => cRegDAP, - 6 => cRegPDC, - 7 => cRegDAI, - 8 => cRegSRC, - 9 => cRegDIA, - 10 => cRegReset - ); - - --------------------------------------------------------------------------------------- - - type MultiIO_in_type is - record - switch_in : std_logic_vector(N_SWITCHMAX-1 downto 0); -- 8 DIL Switches - -- row input from the key matrix - row_in : std_logic_vector(3 downto 0); - - -- expansion connector input bits - exp_in : std_logic_vector(N_EXPBITS/2-1 downto 0); - hsc_in : std_logic_vector(N_HSCBITS-1 downto 0); - - -- childboard3 connector input bits - cb3_in : std_logic_vector(N_CB3-1 downto 0); - end record; - - type MultiIO_out_type is - record - -- signals for the 7 segment display - -- data bits 0 to 7 of the LCD - -- LED signals for the Hpe_midi - led_a_out : std_logic; - led_b_out : std_logic; - led_c_out : std_logic; - led_d_out : std_logic; - led_e_out : std_logic; - led_f_out : std_logic; - led_g_out : std_logic; - led_dp_out : std_logic; - -- common anode for enabling left and/or right digit - -- data bit 7 for the LCD - led_ca_out : std_logic_vector(1 downto 0); - - -- enable output to LED's for the Hpe_midi - led_enable : std_logic; - - -- LCD-only control signals - lcd_regsel : std_logic; - lcd_rw : std_logic; - lcd_enable : std_logic; - - -- LED register for all boards except the Hpe_midi - led_out : std_logic_vector(N_LEDMAX-1 downto 0); -- 8 LEDs - - -- column output to the key matrix - column_out : std_logic_vector(2 downto 0); - - -- signals for the SPI audio codec - codec_mode : std_ulogic; - codec_mclk : std_ulogic; - codec_sclk : std_ulogic; - codec_sdin : std_ulogic; - codec_cs : std_ulogic; - - codec_din : std_ulogic; -- I2S format serial data input to the sigma-delta stereo DAC - codec_bclk : std_ulogic; -- I2S serial-bit clock --- codec_dout : in std_ulogic; -- I2S format serial data output from the sigma-delta stereo ADC - codec_lrcin : std_ulogic; -- I2S DAC-word clock signal - codec_lrcout : std_ulogic; -- I2S ADC-word clock signal - - -- expansion connector output bits - exp_out : std_logic_vector(N_EXPBITS/2-1 downto 0); - hsc_out : std_logic_vector(N_HSCBITS-1 downto 0); - - -- childboard3 connector output bits - -- cb3_out : std_logic_vector(N_CB3-1 downto 0); - end record; - - component MultiIO_APB - generic - ( - hpe_version : integer := 0; -- adapt multiplexing for different boards - pindex : integer := 0; -- Leon-Index - paddr : integer := 0; -- Leon-Address - pmask : integer := 16#FFF#; -- Leon-Mask - pirq : integer := 0; -- Leon-IRQ - - clk_freq_in : integer; -- Leons clock to calculate timings - - led7act : std_logic := '0'; -- active level for 7Segment - ledact : std_logic := '0'; -- active level for LED's - switchact : std_logic := '1'; -- active level for LED's - buttonact : std_logic := '1'; -- active level for LED's - - n_switches : integer := 8; -- number of switches - n_leds : integer := 8 -- number of LEDs - - ); - - port ( - rst_n : in std_ulogic; -- global Reset, active low - clk : in std_ulogic; -- global Clock - apbi : in apb_slv_in_type; -- APB-Input - apbo : out apb_slv_out_type; -- APB-Output - MultiIO_in : in MultiIO_in_type; -- MultIO-Inputs - MultiIO_out : out MultiIO_out_type -- MultiIO-Outputs - ); - end component; - -end package; diff --git a/lib/gleichmann/multiio/vhdlsyn.txt b/lib/gleichmann/multiio/vhdlsyn.txt deleted file mode 100755 index b7a9e124..00000000 --- a/lib/gleichmann/multiio/vhdlsyn.txt +++ /dev/null @@ -1,2 +0,0 @@ -multiio_p.vhd -multiio_ea.vhd diff --git a/lib/gleichmann/sim/phy_ext.vhd b/lib/gleichmann/sim/phy_ext.vhd deleted file mode 100644 index 5923aa41..00000000 --- a/lib/gleichmann/sim/phy_ext.vhd +++ /dev/null @@ -1,266 +0,0 @@ --------------------------------------------------------------------------------- --- Project: LEON-ARC --- Entity: phy_ext --- Architecture(s): behav --- Author: tame@msc-ge.com --- Company: Gleichmann Electronics --- --- Description: --- This file is based upon the PHY simulation model by Gaisler Research, --- which is part of the GNU GPL-licensed GRLIB. For details on the GRLIB, go --- to www.gaisler.com. --- --- The original design has been extended in respect to logging signals. --- --------------------------------------------------------------------------------- --- --- Gaisler original comment: --- Entity: phy --- File: phy.vhd --- Description: Simulation model of the Intel LXT971A Ethernet PHY --- Only the MII interface is implemented. --- Stimuli is read from a file "indata" and response is --- written to "outdata" --- Author: Marko Isomaki ------------------------------------------------------------------------------- - - -library ieee; -use ieee.std_logic_1164.all; -use std.textio.all; - -library work; -use work.txt_util.all; - - -entity phy_ext is - generic ( - infile_name : string := "indata"; - outfile_name : string := "outdata"; - logfile_name : string := "logfile"; - win_size : natural := 3); -- number of packages that form a window - port ( - resetn : in std_logic; - led_cfg : in std_logic_vector(2 downto 0); - log_en : in std_logic := '1'; - cycle_num : in integer; - mdio : inout std_logic; - tx_clk : out std_logic; - rx_clk : out std_logic; - rxd : out std_logic_vector(3 downto 0); - rx_dv : out std_logic; - rx_er : out std_logic; - rx_col : out std_logic; - rx_crs : out std_logic; - txd : in std_logic_vector(3 downto 0); - tx_en : in std_logic; - tx_er : in std_logic; - mdc : in std_logic); -end entity; - - -architecture behav of phy_ext is - --type declarations - type state_type is (base10h, base10f, base100h, base100f); - - type reg_type is - record - crs : std_logic; - tx_count : integer range 0 to 1; - tx_output : std_logic_vector(3 downto 0); - rx_dv : std_logic; - rx_er : std_logic; - prev_txd : std_logic; - state : state_type; - new_data : std_logic; - new_txd : std_logic; - counter : integer range 0 to 400000; - pcount : integer range 0 to 64; - end record; - - --signal declarations - signal clk_fast : std_logic := '0'; - signal clk_slow : std_logic := '0'; - signal temp_clk : std_logic; - signal r, rin : reg_type; - - file indata : text open read_mode is infile_name; - file outdata : text open write_mode is outfile_name; - - -- logfile contains read and write accesses - file logfile : text open write_mode is logfile_name; - shared variable logline : line; - shared variable logstring : string(1 to 80); - - signal temp_col : std_logic; - -begin - --clock generation - clk_fast <= not clk_fast after 20 ns; - clk_slow <= not clk_slow after 200 ns; - - temp_clk <= clk_fast when r.state = base100h or r.state = base100f else - clk_slow; - - rx_clk <= temp_clk; - tx_clk <= temp_clk; - - --unused signals - mdio <= 'Z'; - - comb : process(r, txd, tx_en, tx_er) - variable v : reg_type; - variable col : std_logic; - begin - v := r; - v.prev_txd := r.new_txd; - v.crs := '0'; - v.new_data := '0'; - --transmitter part - v.new_txd := tx_en; - if tx_er = '1' then - v.tx_output := X"F"; - elsif tx_en = '1' then - v.tx_output := txd; - end if; - - if (r.state = base10h or r.state = base100h) and tx_en = '1' then - v.crs := '1'; - end if; - --receiver part - if r.counter > 0 then - v.counter := r.counter-1; - end if; - - v.rx_dv := '0'; - v.rx_er := '0'; - - if r.counter = 0 then - if(tx_en = '0' or (r.new_txd = '0' and tx_en = '1') or - r.state = base100f or r.state = base10f) then - v.rx_dv := '1'; - v.new_data := '1'; - v.crs := '1'; - end if; - end if; - - --control signals - if (r.state = base10h or r.state = base100h) and - tx_en = '1' and r.rx_dv = '1' then - col := '1'; - else - col := '0'; - end if; - --output - - rx_col <= col; - temp_col <= col; - - rx_crs <= r.crs; - rx_dv <= r.rx_dv; - rx_er <= r.rx_er; - --registers - rin <= v; - end process comb; - - log_start : process is - begin - if log_en = '1' then - print(logfile, "#"); - print(logfile, "# RX_TRANSFER CYCLE_NUMBER RX_CLK RX_DV RX_ER COL CRS RXD MDC MDIO"); - print(logfile, "# TX_TRANSFER CYCLE_NUMBER TX_CLK TX_EN TX_ER TXD"); - print(logfile, "#"); - end if; - wait; - end process; - - regs : process(resetn, temp_clk) - variable textline : line; - variable wline : line; - variable din_tmp : bit_vector(3 downto 0); - variable din_ok : boolean; - begin - if resetn = '0' then - case led_cfg is - when "000" => r.state <= base10h; - when "001" => r.state <= base10f; - when "010" => r.state <= base100h; - when "011" => r.state <= base100f; - when others => r.state <= base10h; - end case; - r.crs <= '0'; - r.tx_count <= 0; - r.new_txd <= '0'; - r.rx_dv <= '0'; - r.rx_er <= '0'; - r.new_data <= '0'; - r.counter <= 2000; - r.pcount <= 0; - elsif rising_edge(temp_clk) then - r <= rin; - if rin.new_data = '1' and not endfile(indata) then - readline(indata, textline); - read(textline, din_tmp, din_ok); - if din_ok then - rxd <= to_stdlogicvector(din_tmp); - -- write RX data to logfile - if log_en = '1' then - print(logfile, - string'("RX ") & - str(cycle_num) & " " & -- current clock cycle number - str(temp_clk) & " " & -- equivalent to rx_clk - str(r.rx_dv) & " " & -- receive data valid - str(r.rx_er) & " " & -- receive error - str(temp_col) & " " & -- equivalent to rx_col - str(r.crs) & " " & -- receive carrier sense - hstr(to_stdlogicvector(din_tmp)) & " " & -- receive data - str(mdc) & " " & - str(mdio)); - end if; - else - report "new-packet" severity note; - r.pcount <= rin.pcount + 1; - if rin.pcount + 1 /= win_size then - if r.state = base100h or r.state = base100f then - r.counter <= 500; - else - r.counter <= 50; - end if; - else - r.counter <= 1000; - r.pcount <= 0; - end if; - rxd <= (others => 'U'); - r.rx_dv <= '0'; - r.crs <= '0'; - end if; - else - rxd <= (others => 'U'); - r.rx_dv <= '0'; - r.crs <= '0'; - end if; - - if rin.new_txd = '1' then - write(wline, to_bitvector(rin.tx_output), left, 4); - writeline(outdata, wline); - -- write TX data to logfile - if log_en = '1' then - print(logfile, - string'("TX ") & - str(cycle_num) & " " & -- current clock cycle number - str(temp_clk) & " " & -- equivalent to tx_clk - str(tx_en) & " " & -- always enabled here - str(tx_er) & " " & -- transmit error - hstr(txd)); -- transmit data - end if; - if r.state = base10h or r.state = base100h then - r.crs <= '1'; - end if; - elsif rin.prev_txd = '1' then - write(wline, string'("end"), left, 3); - writeline(outdata, wline); - end if; - end if; - end process regs; - -end architecture; diff --git a/lib/gleichmann/sim/spi_slave_model.v b/lib/gleichmann/sim/spi_slave_model.v deleted file mode 100644 index 4f2e2901..00000000 --- a/lib/gleichmann/sim/spi_slave_model.v +++ /dev/null @@ -1,151 +0,0 @@ -`timescale 1ns / 10ps - -///////////////////////////////////////////////////////////////////// -//// //// -//// SPI Slave Model //// -//// //// -//// Authors: Richard Herveille (richard@asics.ws) www.asics.ws //// -//// //// -//// http://www.opencores.org/projects/simple_spi/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2004 Richard Herveille //// -//// richard@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: spi_slave_model.v,v 1.2 2006/11/20 17:22:05 tame Exp $ -// -// $Date: 2006/11/20 17:22:05 $ -// $Revision: 1.2 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: spi_slave_model.v,v $ -// Revision 1.2 2006/11/20 17:22:05 tame -// Added seperate read address so that valid data from previousl write address is sent -// automatically. -// -// Revision 1.1 2006/11/14 16:34:07 tame -// Added testbench. Simulation running. -// -// Revision 1.1 2006/11/10 14:47:52 chu -// initial definition -// -// Revision 1.1 2004/02/28 16:01:47 rherveille -// Initial testbench release added -// -// -// -// - - -// Requires: Verilog2001 - -// `include "timescale.v" - -module spi_slave_model ( - input wire csn, - input wire sck, - input wire di, - output wire do -); - - // - // Variable declaration - // - wire debug = 1'b1; - - wire cpol = 1'b0; - wire cpha = 1'b0; - - reg [7:0] mem [7:0]; // initiate memory - reg [2:0] mem_adr; // memory address - reg [7:0] mem_do; // memory data output - - reg [7:0] sri, sro; // 8bit shift register - - reg [2:0] bit_cnt; - reg ld; - - wire clk; - - // slave shall automatically send what has been - // written previously - wire [2:0] mem_adr_read; - assign mem_adr_read = mem_adr - 1; - - integer ID=99; - - // module body - // - - assign clk = cpol ^ cpha ^ sck; - - // generate shift registers - always @(posedge clk) - sri <= #1 {sri[6:0],di}; - - always @(posedge clk) - if (&bit_cnt) - sro <= #1 mem[mem_adr_read]; - else - sro <= #1 {sro[6:0],1'bx}; - - assign do = csn==0 ? sro[7] : 1'bz; - - //generate bit-counter - always @(posedge clk, posedge csn) - if(csn) - bit_cnt <= #1 3'b111; - else - bit_cnt <= #1 bit_cnt - 3'h1; - - //generate access done signal - always @(posedge clk) - ld <= #1 ~(|bit_cnt); - - always @(negedge clk) - if (ld) begin - mem[mem_adr] <= #1 sri; - mem_adr <= #1 mem_adr + 1'b1; - if (debug==1) - $display("slave: received %8b", sri); - end - - initial - begin - bit_cnt=3'b111; - mem_adr = 0; - sro = mem[mem_adr_read]; - end - always @(negedge csn) - if (csn==1'b0) $display("slave: my ID is %2d", ID); - -endmodule - - diff --git a/lib/gleichmann/sim/txt_util.vhd b/lib/gleichmann/sim/txt_util.vhd deleted file mode 100644 index 02b104d7..00000000 --- a/lib/gleichmann/sim/txt_util.vhd +++ /dev/null @@ -1,583 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -use std.textio.all; - - -package txt_util is - - -- prints a message to the screen - procedure print(text : string); - - -- prints the message when active - -- useful for debug switches - procedure print(active : boolean; text : string); - - -- converts std_logic into a character - function chr(sl : std_logic) return character; - - -- converts std_logic into a string (1 to 1) - function str(sl : std_logic) return string; - - -- converts std_logic_vector into a string (binary base) - function str(slv : std_logic_vector) return string; - - -- converts boolean into a string - function str(b : boolean) return string; - - -- converts an integer into a single character - -- (can also be used for hex conversion and other bases) - function chr(int : integer) return character; - - -- converts integer into string using specified base - function str(int : integer; base : integer) return string; - - -- converts integer to string, using base 10 - function str(int : integer) return string; - - -- convert std_logic_vector into a string in hex format - function hstr(slv : std_logic_vector) return string; - - - -- functions to manipulate strings - ----------------------------------- - - -- convert a character to upper case - function to_upper(c : character) return character; - - -- convert a character to lower case - function to_lower(c : character) return character; - - -- convert a string to upper case - function to_upper(s : string) return string; - - -- convert a string to lower case - function to_lower(s : string) return string; - - - - -- functions to convert strings into other formats - -------------------------------------------------- - - -- converts a character into std_logic - function to_std_logic(c : character) return std_logic; - - -- converts a string into std_logic_vector - function to_std_logic_vector(s : string) return std_logic_vector; - - - - -- file I/O - ----------- - - -- read variable length string from input file - procedure str_read(file in_file : text; - res_string : out string); - - -- print string to a file and start new line - procedure print(file out_file : text; - new_string : in string); - - -- print character to a file and start new line - procedure print(file out_file : text; - char : in character); - -end txt_util; - - - - -package body txt_util is - - - - - -- prints text to the screen - - procedure print(text : string) is - variable msg_line : line; - begin - write(msg_line, text); - writeline(output, msg_line); - end print; - - - - - -- prints text to the screen when active - - procedure print(active : boolean; text : string) is - begin - if active then - print(text); - end if; - end print; - - - -- converts std_logic into a character - - function chr(sl : std_logic) return character is - variable c : character; - begin - case sl is - when 'U' => c := 'U'; - when 'X' => c := 'X'; - when '0' => c := '0'; - when '1' => c := '1'; - when 'Z' => c := 'Z'; - when 'W' => c := 'W'; - when 'L' => c := 'L'; - when 'H' => c := 'H'; - when '-' => c := '-'; - end case; - return c; - end chr; - - - - -- converts std_logic into a string (1 to 1) - - function str(sl : std_logic) return string is - variable s : string(1 to 1); - begin - s(1) := chr(sl); - return s; - end str; - - - - -- converts std_logic_vector into a string (binary base) - -- (this also takes care of the fact that the range of - -- a string is natural while a std_logic_vector may - -- have an integer range) - - function str(slv : std_logic_vector) return string is - variable result : string (1 to slv'length); - variable r : integer; - begin - r := 1; - for i in slv'range loop - result(r) := chr(slv(i)); - r := r + 1; - end loop; - return result; - end str; - - - function str(b : boolean) return string is - - begin - if b then - return "true"; - else - return "false"; - end if; - end str; - - - -- converts an integer into a character - -- for 0 to 9 the obvious mapping is used, higher - -- values are mapped to the characters A-Z - -- (this is usefull for systems with base > 10) - -- (adapted from Steve Vogwell's posting in comp.lang.vhdl) - - function chr(int : integer) return character is - variable c : character; - begin - case int is - when 0 => c := '0'; - when 1 => c := '1'; - when 2 => c := '2'; - when 3 => c := '3'; - when 4 => c := '4'; - when 5 => c := '5'; - when 6 => c := '6'; - when 7 => c := '7'; - when 8 => c := '8'; - when 9 => c := '9'; - when 10 => c := 'A'; - when 11 => c := 'B'; - when 12 => c := 'C'; - when 13 => c := 'D'; - when 14 => c := 'E'; - when 15 => c := 'F'; - when 16 => c := 'G'; - when 17 => c := 'H'; - when 18 => c := 'I'; - when 19 => c := 'J'; - when 20 => c := 'K'; - when 21 => c := 'L'; - when 22 => c := 'M'; - when 23 => c := 'N'; - when 24 => c := 'O'; - when 25 => c := 'P'; - when 26 => c := 'Q'; - when 27 => c := 'R'; - when 28 => c := 'S'; - when 29 => c := 'T'; - when 30 => c := 'U'; - when 31 => c := 'V'; - when 32 => c := 'W'; - when 33 => c := 'X'; - when 34 => c := 'Y'; - when 35 => c := 'Z'; - when others => c := '?'; - end case; - return c; - end chr; - - - - -- convert integer to string using specified base - -- (adapted from Steve Vogwell's posting in comp.lang.vhdl) - - function str(int : integer; base : integer) return string is - - variable temp : string(1 to 10); - variable num : integer; - variable abs_int : integer; - variable len : integer := 1; - variable power : integer := 1; - - begin - - -- bug fix for negative numbers - abs_int := abs(int); - - num := abs_int; - - while num >= base loop -- Determine how many - len := len + 1; -- characters required - num := num / base; -- to represent the - end loop; -- number. - - for i in len downto 1 loop -- Convert the number to - temp(i) := chr(abs_int/power mod base); -- a string starting - power := power * base; -- with the right hand - end loop; -- side. - - -- return result and add sign if required - if int < 0 then - return '-'& temp(1 to len); - else - return temp(1 to len); - end if; - - end str; - - - -- convert integer to string, using base 10 - function str(int : integer) return string is - - begin - - return str(int, 10); - - end str; - - - - -- converts a std_logic_vector into a hex string. - function hstr(slv : std_logic_vector) return string is - variable hexlen : integer; - variable longslv : std_logic_vector(67 downto 0) := (others => '0'); - variable hex : string(1 to 16); - variable fourbit : std_logic_vector(3 downto 0); - begin - hexlen := (slv'left+1)/4; - if (slv'left+1) mod 4 /= 0 then - hexlen := hexlen + 1; - end if; - longslv(slv'left downto 0) := slv; - for i in (hexlen -1) downto 0 loop - fourbit := longslv(((i*4)+3) downto (i*4)); - case fourbit is - when "0000" => hex(hexlen -I) := '0'; - when "0001" => hex(hexlen -I) := '1'; - when "0010" => hex(hexlen -I) := '2'; - when "0011" => hex(hexlen -I) := '3'; - when "0100" => hex(hexlen -I) := '4'; - when "0101" => hex(hexlen -I) := '5'; - when "0110" => hex(hexlen -I) := '6'; - when "0111" => hex(hexlen -I) := '7'; - when "1000" => hex(hexlen -I) := '8'; - when "1001" => hex(hexlen -I) := '9'; - when "1010" => hex(hexlen -I) := 'A'; - when "1011" => hex(hexlen -I) := 'B'; - when "1100" => hex(hexlen -I) := 'C'; - when "1101" => hex(hexlen -I) := 'D'; - when "1110" => hex(hexlen -I) := 'E'; - when "1111" => hex(hexlen -I) := 'F'; - when "ZZZZ" => hex(hexlen -I) := 'z'; - when "UUUU" => hex(hexlen -I) := 'u'; - when "XXXX" => hex(hexlen -I) := 'x'; - when others => hex(hexlen -I) := '?'; - end case; - end loop; - return hex(1 to hexlen); - end hstr; - - - - -- functions to manipulate strings - ----------------------------------- - - - -- convert a character to upper case - - function to_upper(c : character) return character is - - variable u : character; - - begin - - case c is - when 'a' => u := 'A'; - when 'b' => u := 'B'; - when 'c' => u := 'C'; - when 'd' => u := 'D'; - when 'e' => u := 'E'; - when 'f' => u := 'F'; - when 'g' => u := 'G'; - when 'h' => u := 'H'; - when 'i' => u := 'I'; - when 'j' => u := 'J'; - when 'k' => u := 'K'; - when 'l' => u := 'L'; - when 'm' => u := 'M'; - when 'n' => u := 'N'; - when 'o' => u := 'O'; - when 'p' => u := 'P'; - when 'q' => u := 'Q'; - when 'r' => u := 'R'; - when 's' => u := 'S'; - when 't' => u := 'T'; - when 'u' => u := 'U'; - when 'v' => u := 'V'; - when 'w' => u := 'W'; - when 'x' => u := 'X'; - when 'y' => u := 'Y'; - when 'z' => u := 'Z'; - when others => u := c; - end case; - - return u; - - end to_upper; - - - -- convert a character to lower case - - function to_lower(c : character) return character is - - variable l : character; - - begin - - case c is - when 'A' => l := 'a'; - when 'B' => l := 'b'; - when 'C' => l := 'c'; - when 'D' => l := 'd'; - when 'E' => l := 'e'; - when 'F' => l := 'f'; - when 'G' => l := 'g'; - when 'H' => l := 'h'; - when 'I' => l := 'i'; - when 'J' => l := 'j'; - when 'K' => l := 'k'; - when 'L' => l := 'l'; - when 'M' => l := 'm'; - when 'N' => l := 'n'; - when 'O' => l := 'o'; - when 'P' => l := 'p'; - when 'Q' => l := 'q'; - when 'R' => l := 'r'; - when 'S' => l := 's'; - when 'T' => l := 't'; - when 'U' => l := 'u'; - when 'V' => l := 'v'; - when 'W' => l := 'w'; - when 'X' => l := 'x'; - when 'Y' => l := 'y'; - when 'Z' => l := 'z'; - when others => l := c; - end case; - - return l; - - end to_lower; - - - - -- convert a string to upper case - - function to_upper(s : string) return string is - - variable uppercase : string (s'range); - - begin - - for i in s'range loop - uppercase(i) := to_upper(s(i)); - end loop; - return uppercase; - - end to_upper; - - - - -- convert a string to lower case - - function to_lower(s : string) return string is - - variable lowercase : string (s'range); - - begin - - for i in s'range loop - lowercase(i) := to_lower(s(i)); - end loop; - return lowercase; - - end to_lower; - - - --- functions to convert strings into other types - - --- converts a character into a std_logic - - function to_std_logic(c : character) return std_logic is - variable sl : std_logic; - begin - case c is - when 'U' => - sl := 'U'; - when 'X' => - sl := 'X'; - when '0' => - sl := '0'; - when '1' => - sl := '1'; - when 'Z' => - sl := 'Z'; - when 'W' => - sl := 'W'; - when 'L' => - sl := 'L'; - when 'H' => - sl := 'H'; - when '-' => - sl := '-'; - when others => - sl := 'X'; - end case; - return sl; - end to_std_logic; - - --- converts a string into std_logic_vector - - function to_std_logic_vector(s : string) return std_logic_vector is - variable slv : std_logic_vector(s'high-s'low downto 0); - variable k : integer; - begin - k := s'high-s'low; - for i in s'range loop - slv(k) := to_std_logic(s(i)); - k := k - 1; - end loop; - return slv; - end to_std_logic_vector; - - - - - - ----------------- --- file I/O -- ----------------- - - - --- read variable length string from input file - - procedure str_read(file in_file : text; - res_string : out string) is - - variable l : line; - variable c : character; - variable is_string : boolean; - - begin - - readline(in_file, l); - -- clear the contents of the result string - for i in res_string'range loop - res_string(i) := ' '; - end loop; - -- read all characters of the line, up to the length - -- of the results string - for i in res_string'range loop - read(l, c, is_string); - res_string(i) := c; - if not is_string then -- found end of line - exit; - end if; - end loop; - - end str_read; - - --- print string to a file - procedure print(file out_file : text; - new_string : in string) is - - variable l : line; - - begin - - write(l, new_string); - writeline(out_file, l); - - end print; - - --- print character to a file and start new line - procedure print(file out_file : text; - char : in character) is - - variable l : line; - - begin - - write(l, char); - writeline(out_file, l); - - end print; - - - --- appends contents of a string to a file until line feed occurs --- (LF is considered to be the end of the string) - - procedure str_write(file out_file : text; - new_string : in string) is - begin - - for i in new_string'range loop - print(out_file, new_string(i)); - if new_string(i) = LF then -- end of string - exit; - end if; - end loop; - - end str_write; - -end txt_util; - - - - diff --git a/lib/gleichmann/sim/uart_ext.vhd b/lib/gleichmann/sim/uart_ext.vhd deleted file mode 100644 index 11d49d01..00000000 --- a/lib/gleichmann/sim/uart_ext.vhd +++ /dev/null @@ -1,78 +0,0 @@ --------------------------------------------------------------------------------- --- Project: LEON-ARC --- Entity: uart_ext --- Architecture(s): behav --- Author: tame@msc-ge.com --- Company: Gleichmann Electronics --- --- Description: --- This file contains a simple module that is connected to the 4 UART --- signals CTS, RX, RTS and TX. It loops the signals RTS and TX back to the --- outputs CTS and RX after a predefined time. --- If enabled, the logger prints the current value of the 4 pins mentioned --- above into a log file whenever they change. --- --------------------------------------------------------------------------------- - - -library ieee; -use ieee.std_logic_1164.all; -use std.textio.all; - -library work; -use work.txt_util.all; - - -entity uart_ext is - generic ( - logfile_name : string := "logfile_uart"; - t_delay : time := 5 ns); - port ( - resetn : in std_logic; - -- logging enable signal - log_en : in std_logic := '1'; - -- current cycle number - cycle_num : in integer; - cts : out std_logic; - rxd : out std_logic; - txd : in std_logic; - rts : in std_logic); -end entity; - - -architecture behav of uart_ext is - file logfile : text open write_mode is logfile_name; - shared variable logline : line; - shared variable logstring : string(1 to 80); -begin - - log_start : process is - begin - if log_en = '1' then - print(logfile, "#"); - print(logfile, "# CYCLE_NUMBER CTS RX RTS TX"); - print(logfile, "#"); - end if; - wait; - end process; - - -- note: cycle number shall not be on sensitivity list - log_loop : postponed process (log_en, rts, txd) is - variable rxd_int : std_logic; - variable cts_int : std_logic; - begin - rxd_int := txd; - cts_int := rts; - if (log_en = '1') and (cycle_num >= 0) then - print(logfile, - str(cycle_num) & " " & - str(cts_int) & " " & - str(rxd_int) & " " & - str(rts) & " " & - str(txd)); - end if; - rxd <= rxd_int after t_delay; - cts <= cts_int after t_delay; - end process; - -end architecture; diff --git a/lib/gleichmann/sim/vhdlsim.txt b/lib/gleichmann/sim/vhdlsim.txt deleted file mode 100644 index 2b6c1e8a..00000000 --- a/lib/gleichmann/sim/vhdlsim.txt +++ /dev/null @@ -1,4 +0,0 @@ -txt_util.vhd -phy_ext.vhd -uart_ext.vhd -jtag_ext.vhd diff --git a/lib/gleichmann/sim/vlogsim.txt b/lib/gleichmann/sim/vlogsim.txt deleted file mode 100644 index 42030549..00000000 --- a/lib/gleichmann/sim/vlogsim.txt +++ /dev/null @@ -1 +0,0 @@ -spi_slave_model.v diff --git a/lib/gleichmann/spi/spi_oc.in b/lib/gleichmann/spi/spi_oc.in deleted file mode 100644 index 64b50ffd..00000000 --- a/lib/gleichmann/spi/spi_oc.in +++ /dev/null @@ -1,2 +0,0 @@ -bool 'OpenCores SPI Controller' CONFIG_SPI_OC_ENABLE - diff --git a/lib/gleichmann/spi/spi_oc.in.h b/lib/gleichmann/spi/spi_oc.in.h deleted file mode 100644 index e9036768..00000000 --- a/lib/gleichmann/spi/spi_oc.in.h +++ /dev/null @@ -1,4 +0,0 @@ -#ifndef CONFIG_SPI_OC_ENABLE -#define CONFIG_SPI_OC_ENABLE 0 -#endif - diff --git a/lib/gleichmann/spi/spi_oc.in.help b/lib/gleichmann/spi/spi_oc.in.help deleted file mode 100644 index 4cb062d7..00000000 --- a/lib/gleichmann/spi/spi_oc.in.help +++ /dev/null @@ -1,3 +0,0 @@ -OpenCores SPI Controller -CONFIG_SPI_OC_ENABLE - Say Y here to enable the SPI Controller from OpenCores. This requires Mixed Language Support (VHDL/Verilog). diff --git a/lib/gleichmann/spi/spi_oc.in.vhd b/lib/gleichmann/spi/spi_oc.in.vhd deleted file mode 100644 index dbb24ab6..00000000 --- a/lib/gleichmann/spi/spi_oc.in.vhd +++ /dev/null @@ -1,3 +0,0 @@ --- SPI_OC enable - constant CFG_SPI_OC : integer := CONFIG_SPI_OC_ENABLE; - diff --git a/lib/gleichmann/spi/spi_oc_ea.vhd b/lib/gleichmann/spi/spi_oc_ea.vhd deleted file mode 100644 index 68bb066e..00000000 --- a/lib/gleichmann/spi/spi_oc_ea.vhd +++ /dev/null @@ -1,142 +0,0 @@ --------------------------------------------------------------------- --- Entity: SPI_OC --- File: spi_oc.vhd --- Author: Thomas Ameseder, Gleichmann Electronics --- --- Description: VHDL wrapper for the Opencores SPI core with APB --- interface --------------------------------------------------------------------- --- CVS Entries: --- $Date: 2006/12/04 14:44:05 $ --- $Author: tame $ --- $Log: spi_oc.vhd,v $ --- Revision 1.3 2006/12/04 14:44:05 tame --- Changed interrupt output to LEON from a level (that is active until it is reset) to --- a short pulse. --- --- Revision 1.1 2006/11/17 12:28:56 tame --- Added SPI files: Simple SPI package and a wrapper for the (modified) --- OpenCores Simple SPI Core with APB interface. --- --------------------------------------------------------------------- - -library ieee; -use ieee.std_logic_1164.all; - -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; -use grlib.devices.all; - -library opencores; -use opencores.occomp.all; - -library gleichmann; -use gleichmann.sspi.all; - --- pragma translate_off -use std.textio.all; --- pragma translate_on - - -entity spi_oc is - generic ( - pindex : integer := 0; -- Leon-Index - paddr : integer := 0; -- Leon-Address - pmask : integer := 16#FFF#; -- Leon-Mask - pirq : integer := 0 -- Leon-IRQ - ); - port ( - rstn : in std_ulogic; -- global Reset, active low - clk : in std_ulogic; -- global Clock - apbi : in apb_slv_in_type; -- APB-Input - apbo : out apb_slv_out_type; -- APB-Output - spi_in : in sspi_in_type; -- MultIO-Inputs - spi_out : out sspi_out_type -- Spi-Outputs - ); -end entity spi_oc; - - -architecture implementation of spi_oc is - - constant data_width : integer := 8; - constant address_width : integer := 3; - constant REVISION : integer := 0; - - constant pconfig : apb_config_type := ( - 0 => ahb_device_reg (VENDOR_GLEICHMANN, GLEICHMANN_SPIOC, 0, REVISION, pirq), - 1 => apb_iobar(paddr, pmask) - ); - - signal irq : std_ulogic; - signal irq_1t : std_ulogic; - signal irq_adapt : std_ulogic; -- registered and converted to rising edge activity - -begin - - simple_spi_top_1 : simple_spi_top - port map ( - prdata_o => apbo.prdata(data_width-1 downto 0), - pirq_o => irq, - sck_o => spi_out.sck, - mosi_o => spi_out.mosi, - ssn_o => spi_out.ssn, - pclk_i => clk, - prst_i => rstn, - psel_i => apbi.psel(pindex), - penable_i => apbi.penable, - paddr_i => apbi.paddr(address_width+1 downto 2), -- 32-bit addresses - pwrite_i => apbi.pwrite, - pwdata_i => apbi.pwdata(data_width-1 downto 0), - miso_i => spi_in.miso); - - -- drive selected interrupt, remaining bits with zeroes - apbo.pirq(NAHBIRQ-1 downto pirq+1) <= (others => '0'); - -- apbo.pirq(pirq) <= irq; -- corrected by MH, 28.11.2006 - apbo.pirq(pirq) <= irq_adapt; - apbo.pirq(pirq-1 downto 0) <= (others => '0'); - - -- drive unused data bits with don't cares - apbo.prdata(31 downto data_width) <= (others => '0'); - -- drive index for diagnostic use - apbo.pindex <= pindex; - -- drive slave configuration - apbo.pconfig <= pconfig; - - - --------------------------------------------------------------------------------------- - -- Synchronous process to convert the high level interrupt from the core to - -- to an rising edge triggered interrupt to be suitable for the Leon IRQCTL - -- asynchronous low active reset like the open core simple SPI module !!! - --------------------------------------------------------------------------------------- - irq_adaption: process (clk, rstn) -- added by MH, 28.11.2006 - begin -- process irq_adaption) - if rstn = '0' then - irq_adapt <= '0'; - irq_1t <= '0'; - elsif clk'event and clk = '1' then - irq_1t <= irq; - irq_adapt <= irq and not irq_1t; - end if; - end process irq_adaption; - - - - - --------------------------------------------------------------------------------------- - -- DEBUG SECTION - --------------------------------------------------------------------------------------- - --- pragma translate_off - assert (pirq < 15 and pirq > 0 ) report - "Simple SPI Controller interrupt warning: " & - "0 does not exist, 15 is unmaskable, 16 to 31 are unused" - severity warning; - - bootmsg : report_version - generic map ("SPI_OC: Simple SPI Controller rev " & tost(REVISION) & - ", IRQ " & tost(pirq) & - ", APB slave " & tost(pindex)); --- pragma translate_on - -end architecture implementation; diff --git a/lib/gleichmann/spi/spi_p.vhd b/lib/gleichmann/spi/spi_p.vhd deleted file mode 100644 index 4d5f0efe..00000000 --- a/lib/gleichmann/spi/spi_p.vhd +++ /dev/null @@ -1,17 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; - -package spi is - - component spi_xmit - generic ( - data_width : integer := 16); - port ( - clk_i : in std_ulogic; - rst_i : in std_ulogic; - data_i : in std_logic_vector(data_width-1 downto 0); - CODEC_SDIN : out std_ulogic; - CODEC_CS : out std_ulogic); - end component; - -end spi; diff --git a/lib/gleichmann/spi/spi_xmit_ea.vhd b/lib/gleichmann/spi/spi_xmit_ea.vhd deleted file mode 100644 index edd96ef6..00000000 --- a/lib/gleichmann/spi/spi_xmit_ea.vhd +++ /dev/null @@ -1,101 +0,0 @@ -------------------------------------------------------------------------------- --- Title : SPI Transmit Core --- Project : LEON3MINI -------------------------------------------------------------------------------- --- $Id: spi_xmit.vhd,v 1.1 2006/08/11 08:55:39 tame Exp $ -------------------------------------------------------------------------------- --- Author : Thomas Ameseder --- Company : Gleichmann Electronics --- Standard : VHDL'87 -------------------------------------------------------------------------------- --- Description: --- --- This core is an SPI master that was created in order to be able to --- access the configuration interface of the Texas Instruments audio --- codec TLV320AIC23B on the Hpe_mini board. -------------------------------------------------------------------------------- --- Copyright (c) 2005 -------------------------------------------------------------------------------- - - -library ieee; -use ieee.std_logic_1164.all; - - -entity spi_xmit is - generic ( - data_width : integer := 16); - port( - clk_i : in std_ulogic; - rst_i : in std_ulogic; - data_i : in std_logic_vector(data_width-1 downto 0); - CODEC_SDIN : out std_ulogic; - CODEC_CS : out std_ulogic - ); -end spi_xmit; - - -architecture rtl of spi_xmit is - type state_t is (none_e, transmit_e); - - signal state, nextstate : state_t; - signal counter, nextcounter : integer range -1 to data_width-1; - signal cs : std_ulogic; - signal data_reg : std_logic_vector(data_width-1 downto 0); - -begin -- rtl - - -- hard wired signals - CODEC_CS <= cs; - - -- SPI transmit state machine - comb : process (counter, data_reg, state) - begin - nextstate <= state; - nextcounter <= counter; - - cs <= '1'; - CODEC_SDIN <= '-'; - - case state is - when none_e => - nextstate <= transmit_e; - nextcounter <= data_width-1; - - when transmit_e => - cs <= '0'; - - if counter = -1 then - nextstate <= none_e; - nextcounter <= data_width-1; - cs <= '1'; - CODEC_SDIN <= '-'; - else - CODEC_SDIN <= data_reg(counter); - nextcounter <= counter - 1; - end if; - - when others => - nextstate <= none_e; - nextcounter <= data_width-1; - end case; - end process comb; - - - seq : process (clk_i, rst_i) - begin - if rst_i = '0' then - state <= none_e; - counter <= data_width-1; - data_reg <= (others => '0'); - elsif falling_edge(clk_i) then - state <= nextstate; - counter <= nextcounter; - -- only accept new data when not transmitting - if state = none_e then - data_reg <= data_i; - end if; - end if; - end process seq; - -end rtl; diff --git a/lib/gleichmann/spi/sspi_p.vhd b/lib/gleichmann/spi/sspi_p.vhd deleted file mode 100644 index d3fa7e85..00000000 --- a/lib/gleichmann/spi/sspi_p.vhd +++ /dev/null @@ -1,38 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; - -library grlib; -use grlib.amba.all; - -package sspi is - - type sspi_in_type is - record - miso : std_ulogic; - end record; - - type sspi_out_type is - record - mosi : std_ulogic; - sck : std_ulogic; - ssn : std_logic_vector(7 downto 0); - end record; - - component spi_oc is - generic ( - pindex : integer := 0; -- Leon-Index - paddr : integer := 0; -- Leon-Address - pmask : integer := 16#FFF#; -- Leon-Mask - pirq : integer := 0 -- Leon-IRQ - ); - port ( - rstn : in std_ulogic; -- global Reset, active low - clk : in std_ulogic; -- global Clock - apbi : in apb_slv_in_type; -- APB-Input - apbo : out apb_slv_out_type; -- APB-Output - spi_in : in sspi_in_type; -- MultIO-Inputs - spi_out : out sspi_out_type -- Spi-Outputs - ); - end component spi_oc; - -end package sspi; diff --git a/lib/gleichmann/spi/vhdlsyn.txt b/lib/gleichmann/spi/vhdlsyn.txt deleted file mode 100755 index 355617bf..00000000 --- a/lib/gleichmann/spi/vhdlsyn.txt +++ /dev/null @@ -1,4 +0,0 @@ -sspi_p.vhd -spi_oc_ea.vhd -spi_p.vhd -spi_xmit_ea.vhd diff --git a/lib/grlib/amba/ahbctrl.vhd b/lib/grlib/amba/ahbctrl.vhd index 240dce0b..f844b54c 100644 --- a/lib/grlib/amba/ahbctrl.vhd +++ b/lib/grlib/amba/ahbctrl.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -29,6 +29,8 @@ use ieee.std_logic_1164.all; library grlib; use grlib.stdlib.all; use grlib.amba.all; +use grlib.config_types.all; +use grlib.config.all; -- pragma translate_off use grlib.devices.all; use std.textio.all; @@ -78,7 +80,8 @@ entity ahbctrl is testen : in std_ulogic := '0'; testrst : in std_ulogic := '1'; scanen : in std_ulogic := '0'; - testoen : in std_ulogic := '1' + testoen : in std_ulogic := '1'; + testsig : in std_logic_vector(1+GRLIB_CONFIG_ARRAY(grlib_techmap_testin_extra) downto 0) := (others => '0') ); end; @@ -357,7 +360,6 @@ begin variable hready : std_ulogic; variable defslv : std_ulogic; variable cfgsel : std_ulogic; - variable hcache : std_ulogic; variable hresp : std_logic_vector(1 downto 0); variable hrdata : std_logic_vector(AHBDW-1 downto 0); variable haddr : std_logic_vector(31 downto 0); @@ -575,6 +577,17 @@ begin --then master can have changed, and when not hready then the --previous master will still be selected v.hmasterlock := msto(v.hmaster).hlock or (r.hmasterlock and not hready); + --if the master asserting hlock received a SPLIT/RETRY response + --to the previous access then disregard the current lock request. + --the bus will otherwise be locked when the previous access is + --retried instead of treating hlock as coupled to the next access. + --use hmasterlockd to keep the bus locked for SPLIT/RETRY to locked + --accesses. + if v.hmaster = r.hmasterd and slvo(r.hslave).hresp(1) = '1' then + if r.hmasterlockd = '0' then + v.hmasterlock := '0'; v.hmasterlockd := '0'; + end if; + end if; -- split support vsplit := (others => '0'); @@ -587,8 +600,6 @@ begin end loop; end loop; end if; - - if r.cfgsel = '1' then hcache := '1'; else hcache := slvo(v.hslave).hcache; end if; -- interrupt merging hirq := (others => '0'); @@ -610,7 +621,6 @@ begin vslvi.hmaster := conv_std_logic_vector(r.hmaster, 4); vslvi.hsel := hsel(0 to NAHBSLV-1); vslvi.hmbsel := hmbsel; - vslvi.hcache := hcache; vslvi.hirq := hirq; else vslvi := ahbs_in_none; @@ -626,6 +636,7 @@ begin vslvi.testrst := testrst; vslvi.scanen := scanen and testen; vslvi.testoen := testoen; + vslvi.testin := testen & (scanen and testen) & testsig; -- reset operation if (rst = '0') then @@ -640,12 +651,12 @@ begin msti.hready <= hready; msti.hresp <= hresp; msti.hrdata <= hrdata; - msti.hcache <= hcache; msti.hirq <= hirq; msti.testen <= testen; msti.testrst <= testrst; msti.scanen <= scanen and testen; msti.testoen <= testoen; + msti.testin <= testen & (scanen and testen) & testsig; -- drive slave inputs slvi <= vslvi; @@ -658,7 +669,6 @@ begin lmsti.hready <= hready; lmsti.hresp <= hresp; lmsti.hrdata <= hrdata; - lmsti.hcache <= hcache; lmsti.hirq <= hirq; -- pragma translate_on diff --git a/lib/grlib/amba/ahbmst.vhd b/lib/grlib/amba/ahbmst.vhd index 97eb17d9..a259465e 100644 --- a/lib/grlib/amba/ahbmst.vhd +++ b/lib/grlib/amba/ahbmst.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/amba/amba.vhd b/lib/grlib/amba/amba.vhd index ece6cbe6..e3182915 100644 --- a/lib/grlib/amba/amba.vhd +++ b/lib/grlib/amba/amba.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -31,6 +31,7 @@ use ieee.numeric_std.all; use std.textio.all; -- pragma translate_on library grlib; +use grlib.config_types.all; use grlib.config.all; use grlib.stdlib.all; @@ -75,6 +76,9 @@ constant NAPBAMR : integer := 1; -- maximum APB configuration words constant NAPBCFG : integer := NAPBIR + NAPBAMR; -- words in APB config block constant NBUS : integer := 4; +-- Number of test vector bits +constant NTESTINBITS : integer := 4+GRLIB_CONFIG_ARRAY(grlib_techmap_testin_extra); + ------------------------------------------------------------------------------- -- AMBA interface type declarations and constant ------------------------------------------------------------------------------- @@ -89,12 +93,12 @@ type apb_config_type is array (0 to NAPBCFG-1) of amba_config_word; hready : std_ulogic; -- transfer done hresp : std_logic_vector(1 downto 0); -- response type hrdata : std_logic_vector(AHBDW-1 downto 0); -- read data bus - hcache : std_ulogic; -- cacheable hirq : std_logic_vector(NAHBIRQ-1 downto 0); -- interrupt result bus testen : std_ulogic; -- scan test enable testrst : std_ulogic; -- scan test reset scanen : std_ulogic; -- scan enable - testoen : std_ulogic; -- test output enable + testoen : std_ulogic; -- test output enable + testin : std_logic_vector(NTESTINBITS-1 downto 0); -- test vector for syncrams end record; -- AHB master outputs @@ -127,12 +131,12 @@ type apb_config_type is array (0 to NAPBCFG-1) of amba_config_word; hmaster : std_logic_vector(3 downto 0); -- current master hmastlock : std_ulogic; -- locked access hmbsel : std_logic_vector(0 to NAHBAMR-1); -- memory bank select - hcache : std_ulogic; -- cacheable hirq : std_logic_vector(NAHBIRQ-1 downto 0); -- interrupt result bus testen : std_ulogic; -- scan test enable testrst : std_ulogic; -- scan test reset scanen : std_ulogic; -- scan enable testoen : std_ulogic; -- test output enable + testin : std_logic_vector(NTESTINBITS-1 downto 0); -- test vector for syncrams end record; -- AHB slave outputs @@ -141,7 +145,6 @@ type apb_config_type is array (0 to NAPBCFG-1) of amba_config_word; hresp : std_logic_vector(1 downto 0); -- response type hrdata : std_logic_vector(AHBDW-1 downto 0); -- read data bus hsplit : std_logic_vector(15 downto 0); -- split completion - hcache : std_ulogic; -- cacheable hirq : std_logic_vector(NAHBIRQ-1 downto 0); -- interrupt bus hconfig : ahb_config_type; -- memory access reg. hindex : integer range 0 to NAHBSLV-1; -- diagnostic use only @@ -199,6 +202,7 @@ type apb_config_type is array (0 to NAPBCFG-1) of amba_config_word; testrst : std_ulogic; -- scan test reset scanen : std_ulogic; -- scan enable testoen : std_ulogic; -- test output enable + testin : std_logic_vector(NTESTINBITS-1 downto 0); -- test vector for syncrams end record; -- APB slave outputs @@ -226,25 +230,26 @@ type apb_config_type is array (0 to NAPBCFG-1) of amba_config_word; constant zahbdw : std_logic_vector(AHBDW-1 downto 0) := (others => '0'); constant zxirq : std_logic_vector(NAHBIRQ-1 downto 0) := (others => '0'); constant zy : std_logic_vector(0 to 31) := (others => '0'); + constant ztestin : std_logic_vector(NTESTINBITS-1 downto 0) := (others => '0'); constant apb_none : apb_slv_out_type := (zx, zxirq(NAHBIRQ-1 downto 0), (others => zx), 0); constant ahbm_none : ahb_mst_out_type := ( '0', '0', "00", zx, '0', "000", "000", "0000", zahbdw, zxirq(NAHBIRQ-1 downto 0), (others => zx), 0); constant ahbm_in_none : ahb_mst_in_type := ((others => '0'), '0', (others => '0'), - zahbdw, '0', zxirq(NAHBIRQ-1 downto 0), '0', '0', '0', '0'); + zahbdw, zxirq(NAHBIRQ-1 downto 0), '0', '0', '0', '0', ztestin); constant ahbs_none : ahb_slv_out_type := ( - '1', "00", zahbdw, zx(15 downto 0), '0', zxirq(NAHBIRQ-1 downto 0), (others => zx), 0); + '1', "00", zahbdw, zx(15 downto 0), zxirq(NAHBIRQ-1 downto 0), (others => zx), 0); constant ahbs_in_none : ahb_slv_in_type := ( zy(0 to NAHBSLV-1), zx, '0', "00", "000", "000", zahbdw, - "0000", '1', "0000", '0', zy(0 to NAHBAMR-1), '0', zxirq(NAHBIRQ-1 downto 0), - '0', '0', '0', '0'); + "0000", '1', "0000", '0', zy(0 to NAHBAMR-1), zxirq(NAHBIRQ-1 downto 0), + '0', '0', '0', '0', ztestin); constant ahbsv_none : ahb_slv_out_vector := (others => ahbs_none); constant apb_slv_in_none : apb_slv_in_type := ((others => '0'), '0', (others => '0'), '0', (others => '0'), (others => '0'), - '0', '0', '0', '0'); + '0', '0', '0', '0', ztestin); ------------------------------------------------------------------------------- -- Subprograms @@ -433,7 +438,8 @@ type apb_config_type is array (0 to NAPBCFG-1) of amba_config_word; testen : in std_ulogic := '0'; testrst : in std_ulogic := '1'; scanen : in std_ulogic := '0'; - testoen : in std_ulogic := '1' + testoen : in std_ulogic := '1'; + testsig : in std_logic_vector(1+GRLIB_CONFIG_ARRAY(grlib_techmap_testin_extra) downto 0) := (others => '0') ); end component; @@ -780,6 +786,7 @@ package body amba is return std_logic_vector is variable ret : std_logic_vector(AHBDW-1 downto 0); begin -- ahbselectdata + ret := hdata; case hsize is when HSIZE_8WORD => if AHBDW = 256 then ret := hdata; end if; @@ -787,8 +794,6 @@ package body amba is if AHBDW = 256 then if haddr(4) = '0' then ret := ahbdrivedata(hdata(AHBDW-1 downto AHBDW/2)); else ret := ahbdrivedata(hdata(AHBDW/2-1 downto 0)); end if; - elsif AHBDW = 128 then - ret := hdata; end if; when HSIZE_DWORD => if AHBDW = 256 then @@ -801,8 +806,6 @@ package body amba is elsif AHBDW = 128 then if haddr(3) = '0' then ret := ahbdrivedata(hdata(AHBDW-1 downto AHBDW/2)); else ret := ahbdrivedata(hdata(AHBDW/2-1 downto 0)); end if; - elsif AHBDW = 64 then - ret := hdata; end if; when others => if AHBDW = 256 then @@ -826,8 +829,6 @@ package body amba is elsif AHBDW = 64 then if haddr(2) = '0' then ret := ahbdrivedata(hdata(AHBDW-1 downto AHBDW/2)); else ret := ahbdrivedata(hdata(AHBDW/2-1 downto 0)); end if; - else - ret := hdata; end if; end case; return ret; diff --git a/lib/grlib/amba/amba_tp.vhd b/lib/grlib/amba/amba_tp.vhd index e90cec0e..55bad7ac 100644 --- a/lib/grlib/amba/amba_tp.vhd +++ b/lib/grlib/amba/amba_tp.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/amba/apbctrl.vhd b/lib/grlib/amba/apbctrl.vhd index 5c9558ed..031f5966 100644 --- a/lib/grlib/amba/apbctrl.vhd +++ b/lib/grlib/amba/apbctrl.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -22,13 +22,6 @@ -- Author: Jiri Gaisler - Gaisler Research -- Description: AMBA AHB/APB bridge with plug&play support ------------------------------------------------------------------------------ --- GRLIB2 CORE --- VENDOR: VENDOR_GAISLER --- DEVICE: GAISLER_APBMST --- VERSION: 0 --- AHBSLAVE: 0 --- BAR: 0 TYPE: 0010 PREFETCH: 0 CACHE: 0 DESC: APB_AREA -------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; @@ -196,6 +189,7 @@ begin apbi.testoen <= ahbi.testoen; apbi.scanen <= ahbi.scanen; apbi.testrst <= ahbi.testrst; + apbi.testin <= ahbi.testin; apbi.psel <= (others => '0'); for i in 0 to nslaves-1 loop apbi.psel(i) <= psel(i) and r.psel; end loop; @@ -214,7 +208,6 @@ begin ahbo.hindex <= hindex; ahbo.hconfig <= hconfig; - ahbo.hcache <= '0'; ahbo.hsplit <= (others => '0'); ahbo.hresp <= HRESP_OKAY; diff --git a/lib/grlib/amba/defmst.vhd b/lib/grlib/amba/defmst.vhd index 82733eae..f168f459 100644 --- a/lib/grlib/amba/defmst.vhd +++ b/lib/grlib/amba/defmst.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/amba/devices.vhd b/lib/grlib/amba/devices.vhd index 2e9b59ca..808621e6 100644 --- a/lib/grlib/amba/devices.vhd +++ b/lib/grlib/amba/devices.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -43,6 +43,7 @@ package devices is constant VENDOR_OPENCHIP : amba_vendor_type := 16#07#; constant VENDOR_OPENCORES : amba_vendor_type := 16#08#; constant VENDOR_CONTRIB : amba_vendor_type := 16#09#; + constant VENDOR_DLR : amba_vendor_type := 16#0A#; constant VENDOR_EONIC : amba_vendor_type := 16#0B#; constant VENDOR_RADIONOR : amba_vendor_type := 16#0F#; constant VENDOR_GLEICHMANN : amba_vendor_type := 16#10#; @@ -152,7 +153,7 @@ package devices is constant GAISLER_N2PLLCTRL : amba_device_type := 16#05B#; constant GAISLER_SPI2AHB : amba_device_type := 16#05C#; constant GAISLER_DDRSDMUX : amba_device_type := 16#05D#; - + constant GAISLER_APBPS2 : amba_device_type := 16#060#; constant GAISLER_VGACTRL : amba_device_type := 16#061#; constant GAISLER_LOGAN : amba_device_type := 16#062#; @@ -166,6 +167,9 @@ package devices is constant GAISLER_ATAPBSLV : amba_device_type := 16#06A#; constant GAISLER_MIGDDR2 : amba_device_type := 16#06B#; constant GAISLER_LCDCTRL : amba_device_type := 16#06C#; + constant GAISLER_SWITCHOVER: amba_device_type := 16#06D#; + constant GAISLER_FIFOUART : amba_device_type := 16#06E#; + constant GAISLER_MUXCTRL : amba_device_type := 16#06F#; constant GAISLER_B1553BC : amba_device_type := 16#070#; constant GAISLER_B1553RT : amba_device_type := 16#071#; @@ -200,6 +204,8 @@ package devices is constant GAISLER_GRPWRX : amba_device_type := 16#08E#; constant GAISLER_GPREGBANK : amba_device_type := 16#08F#; + constant GAISLER_MIG_SERIES7 : amba_device_type := 16#090#; + -- Sun Microsystems @@ -324,6 +330,7 @@ package devices is constant LEON3_RTAX_CID8 : system_device_type := 16#0208#; constant LEON3_IHP25RH1 : system_device_type := 16#0251#; constant NGMP_PROTOTYPE : system_device_type := 16#0281#; + constant NGMP_PROTOTYPE2 : system_device_type := 16#0282#; constant ALTERA_DE2 : system_device_type := 16#0302#; constant XILINX_ML401 : system_device_type := 16#0401#; constant LEON3FT_GRXC4V : system_device_type := 16#0453#; @@ -369,7 +376,7 @@ package devices is GAISLER_PCISBRG => "Simple 32-bit PCI Bridge ", GAISLER_PCIFBRG => "Fast 32-bit PCI Bridge ", GAISLER_PCITRACE => "32-bit PCI Trace Buffer ", - GAISLER_DMACTRL => "AMBA DMA controller ", + GAISLER_DMACTRL => "PCI/AHB DMA controller ", GAISLER_AHBTRACE => "AMBA Trace Buffer ", GAISLER_DSUCTRL => "DSU/ETH controller ", GAISLER_GRTM => "CCSDS Telemetry Encoder ", @@ -468,6 +475,9 @@ package devices is GAISLER_ATAPBSLV => "AMBA Test Framework APB Slave ", GAISLER_MIGDDR2 => "Xilinx MIG DDR2 Controller ", GAISLER_LCDCTRL => "LCD Controller ", + GAISLER_SWITCHOVER=> "Switchover Logic ", + GAISLER_FIFOUART => "UART with large FIFO ", + GAISLER_MUXCTRL => "Analogue multiplexer control ", GAISLER_GR1553B => "MIL-STD-1553B Interface ", GAISLER_1553TST => "MIL-STD-1553B Test Device ", GAISLER_MEMSCRUB => "AHB Memory Scrubber ", @@ -484,8 +494,9 @@ package devices is GAISLER_N2DLLCTRL => "N2X DLL Dynamic Config. i/f ", GAISLER_GPREGBANK => "General Purpose Register Bank ", GAISLER_SPI2AHB => "SPI to AHB Bridge ", - GAISLER_DDRSDMUX => "Combined DDR/SDRAM controller ", - + GAISLER_DDRSDMUX => "Muxed FT DDR/SDRAM controller ", + GAISLER_MIG_SERIES7 => "Xilinx MIG DDR3 Controller ", + others => "Unknown Device "); constant gaisler_lib : vendor_library_type := ( @@ -652,6 +663,17 @@ package devices is device_table => embeddit_device_table ); + constant dlr_device_table : device_table_type := ( + others => "Unknown Device "); + + constant DLR_DESC : vendor_description := "German Aerospace Center "; + + constant dlr_lib : vendor_library_type := ( + vendorid => VENDOR_DLR, + vendordesc => DLR_DESC, + device_table => dlr_device_table + ); + constant eonic_device_table : device_table_type := ( others => "Unknown Device "); @@ -764,6 +786,7 @@ package devices is VENDOR_OPENCHIP => openchip_lib, VENDOR_OPENCORES => opencores_lib, VENDOR_CONTRIB => contrib_lib, + VENDOR_DLR => dlr_lib, VENDOR_EONIC => eonic_lib, VENDOR_GLEICHMANN => gleichmann_lib, VENDOR_MENTA => menta_lib, @@ -804,6 +827,7 @@ package devices is GAISLER_DARE1 => "Gaisler DARE1 Rad-Hard CPU ", GAISLER_GR712RC => "Gaisler GR712RC Rad-Hard CPU ", NGMP_PROTOTYPE => "NGMP Prototype System-on-Chip ", + NGMP_PROTOTYPE2 => "NGMP Prototype System-on-Chip ", ORBITA_OBTMP => "Orbita LEON4 prototype system ", others => "Unknown system "); diff --git a/lib/grlib/amba/dma2ahb.vhd b/lib/grlib/amba/dma2ahb.vhd index 0b77cb30..d6f36a8d 100644 --- a/lib/grlib/amba/dma2ahb.vhd +++ b/lib/grlib/amba/dma2ahb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/amba/dma2ahb_pkg.vhd b/lib/grlib/amba/dma2ahb_pkg.vhd index 054a0e9d..9ecca990 100644 --- a/lib/grlib/amba/dma2ahb_pkg.vhd +++ b/lib/grlib/amba/dma2ahb_pkg.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/amba/dma2ahb_tp.vhd b/lib/grlib/amba/dma2ahb_tp.vhd index 74a72e42..a2f01514 100644 --- a/lib/grlib/amba/dma2ahb_tp.vhd +++ b/lib/grlib/amba/dma2ahb_tp.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/amba/vhdlsyn.txt b/lib/grlib/amba/vhdlsyn.txt index 289419a3..04809514 100644 --- a/lib/grlib/amba/vhdlsyn.txt +++ b/lib/grlib/amba/vhdlsyn.txt @@ -3,7 +3,6 @@ devices.vhd defmst.vhd apbctrl.vhd ahbctrl.vhd -ahbctrl_mb.vhd dma2ahb_pkg.vhd dma2ahb.vhd ahbmst.vhd diff --git a/lib/grlib/sparc/cpu_disas.vhd b/lib/grlib/sparc/cpu_disas.vhd index 33d91da3..39234c6e 100644 --- a/lib/grlib/sparc/cpu_disas.vhd +++ b/lib/grlib/sparc/cpu_disas.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/sparc/sparc.vhd b/lib/grlib/sparc/sparc.vhd index 942a493a..c69a1ebf 100644 --- a/lib/grlib/sparc/sparc.vhd +++ b/lib/grlib/sparc/sparc.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/sparc/sparc_disas.vhd b/lib/grlib/sparc/sparc_disas.vhd index d63a1d91..a033ee11 100644 --- a/lib/grlib/sparc/sparc_disas.vhd +++ b/lib/grlib/sparc/sparc_disas.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/stdlib/config.vhd b/lib/grlib/stdlib/config.vhd index 89f94b0e..312bcaf1 100644 --- a/lib/grlib/stdlib/config.vhd +++ b/lib/grlib/stdlib/config.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -26,6 +26,8 @@ library ieee; use ieee.std_logic_1164.all; +library grlib; +use grlib.config_types.all; package config is @@ -53,7 +55,15 @@ constant CFG_AHBDW : integer := 32; -- constant CFG_AHB_ACDM : integer := 0; -constant grlib_debug_level : integer := 0; -constant grlib_debug_mask : integer := 0; +-- GRLIB_CONFIG_ARRAY - Array of configuration values +-- +-- The length of this array and the meaning of different positions is defined +-- in the grlib.config_types package. +constant GRLIB_CONFIG_ARRAY : grlib_config_array_type := ( + grlib_debug_level => 0, + grlib_debug_mask => 0, + grlib_techmap_strict_ram => 0, + grlib_techmap_testin_extra => 0, + others => 0); end; diff --git a/lib/grlib/stdlib/config_types.vhd b/lib/grlib/stdlib/config_types.vhd new file mode 100644 index 00000000..aae9405e --- /dev/null +++ b/lib/grlib/stdlib/config_types.vhd @@ -0,0 +1,47 @@ +------------------------------------------------------------------------------ +-- This file is a part of the GRLIB VHDL IP LIBRARY +-- Copyright (C) 2003 - 2008, Gaisler Research +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +----------------------------------------------------------------------------- +-- Package: config_types +-- File: config_types.vhd +-- Author: Jan Andersson - Aeroflex Gaisler AB +-- Description: GRLIB Global configuration types package. +------------------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; + +package config_types is + + ----------------------------------------------------------------------------- + -- Configuration constants part of GRLIB configuration array + ----------------------------------------------------------------------------- + + + -- debug level and debug mask controls debug output from tech map + constant grlib_debug_level : integer := 0; + constant grlib_debug_mask : integer := 1; + -- Defines if strict RAM techmap should be used. Otherwise small (shallow) + -- RAMs may be mapped to inferred technology. + constant grlib_techmap_strict_ram : integer := 2; + -- Expand testin vector to syncrams with additional bits + constant grlib_techmap_testin_extra : integer := 3; + + type grlib_config_array_type is array (0 to 4) of integer; + +end; diff --git a/lib/grlib/stdlib/stdio.vhd b/lib/grlib/stdlib/stdio.vhd index 46cbe612..33711686 100644 --- a/lib/grlib/stdlib/stdio.vhd +++ b/lib/grlib/stdlib/stdio.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -195,8 +195,8 @@ package body StdIO is variable GOOD: Boolean; begin HRead(L, VALUE, GOOD); - assert GOOD - report "HREAD: access incorrect"; + --assert GOOD + -- report "HREAD: access incorrect"; end HRead; procedure HRead( @@ -206,8 +206,8 @@ package body StdIO is variable V: Std_ULogic_Vector(0 to Value'Length-1); begin HRead(L, V, GOOD); - assert GOOD - report "HREAD: access incorrect"; + --assert GOOD + -- report "HREAD: access incorrect"; VALUE := to_bitvector(V); end HRead; @@ -229,8 +229,8 @@ package body StdIO is begin HRead(L, V, GOOD); VALUE := Std_Logic_Vector(V); - assert GOOD - report "HREAD: access incorrect"; + --assert GOOD + -- report "HREAD: access incorrect"; end HRead; procedure HWrite( diff --git a/lib/grlib/stdlib/stdio_tb.vhd b/lib/grlib/stdlib/stdio_tb.vhd index a0cbba44..6cab8288 100644 --- a/lib/grlib/stdlib/stdio_tb.vhd +++ b/lib/grlib/stdlib/stdio_tb.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/stdlib/stdlib.vhd b/lib/grlib/stdlib/stdlib.vhd index 77acb498..ee6f0c1d 100644 --- a/lib/grlib/stdlib/stdlib.vhd +++ b/lib/grlib/stdlib/stdlib.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/stdlib/testlib.vhd b/lib/grlib/stdlib/testlib.vhd index c7553f5d..2ad75201 100644 --- a/lib/grlib/stdlib/testlib.vhd +++ b/lib/grlib/stdlib/testlib.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/stdlib/version.vhd b/lib/grlib/stdlib/version.vhd index 5414665a..3e8bc23f 100644 --- a/lib/grlib/stdlib/version.vhd +++ b/lib/grlib/stdlib/version.vhd @@ -2,9 +2,9 @@ use std.textio.all; -- pragma translate_on package version is - constant grlib_version : integer := 1100; + constant grlib_version : integer := 1201; -- pragma translate_off - constant grlib_date : string := "20120625"; + constant grlib_date : string := "20130124"; -- pragma translate_on - constant grlib_build : integer := 4116; + constant grlib_build : integer := 4122; end; diff --git a/lib/grlib/stdlib/vhdlsyn.txt b/lib/grlib/stdlib/vhdlsyn.txt index 40c0f8cb..6d35291d 100644 --- a/lib/grlib/stdlib/vhdlsyn.txt +++ b/lib/grlib/stdlib/vhdlsyn.txt @@ -1,3 +1,4 @@ version.vhd +config_types.vhd config.vhd stdlib.vhd diff --git a/lib/grlib/util/fpudummy.vhd b/lib/grlib/util/fpudummy.vhd index ccd0f1f8..4f080e94 100644 --- a/lib/grlib/util/fpudummy.vhd +++ b/lib/grlib/util/fpudummy.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/grlib/util/util.vhd b/lib/grlib/util/util.vhd index ca1e5969..f0d47a3e 100644 --- a/lib/grlib/util/util.vhd +++ b/lib/grlib/util/util.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/libs.txt b/lib/libs.txt index 3ada8e53..618272d9 100644 --- a/lib/libs.txt +++ b/lib/libs.txt @@ -13,7 +13,7 @@ gr1553 gaisler esa #nasa -gleichmann fmf spansion gsi + diff --git a/lib/micron/ddr/ddr2.v b/lib/micron/ddr_sdram/ddr2.v similarity index 99% rename from lib/micron/ddr/ddr2.v rename to lib/micron/ddr_sdram/ddr2.v index 3b294c0b..32130a20 100644 --- a/lib/micron/ddr/ddr2.v +++ b/lib/micron/ddr_sdram/ddr2.v @@ -293,7 +293,8 @@ module ddr2 ( parameter TRP = 15000; // tRP ps Precharge command period parameter TXARDS = 6; // tXARDS tCK Exit low power active power down to a read command parameter CL_TIME = 15000; // CL ps Minimum CAS Latency -`else `define sg5E +`else + `define sg5E parameter TCK_MIN = 5000; // tCK ps Minimum Clock Cycle Time parameter TJIT_PER = 125; // tJIT(per) ps Period JItter parameter TJIT_DUTY = 150; // tJIT(duty) ps Half Period Jitter @@ -398,7 +399,8 @@ module ddr2 ( parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used parameter TRRD = 7500; // tRRD Active bank a to Active bank b command time parameter TFAW = 37500; // tFAW Four access window time for the number of activates in an 8 bank device -`else `define x16 +`else + `define x16 parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used parameter ADDR_BITS = 13; // MAX Address Bits parameter ROW_BITS = 13; // Set this parameter to control how many Address bits are used diff --git a/lib/micron/ddr/ddr3.v b/lib/micron/ddr_sdram/ddr3.v similarity index 99% rename from lib/micron/ddr/ddr3.v rename to lib/micron/ddr_sdram/ddr3.v index 90b4193d..cf7db33a 100644 --- a/lib/micron/ddr/ddr3.v +++ b/lib/micron/ddr_sdram/ddr3.v @@ -661,7 +661,8 @@ module ddr3 ( parameter TWLO = 9000; // tWLO ps Write levelization output delay parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data parameter CL_TIME = 12500; // CL ps Minimum CAS Latency - `else `define sg25 // sg25 is equivalent to the JEDEC DDR3-800E (6-6-6) speed bin + `else + `define sg25 // sg25 is equivalent to the JEDEC DDR3-800E (6-6-6) speed bin parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time parameter TJIT_PER = 100; // tJIT(per) ps Period JItter parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter @@ -889,7 +890,8 @@ module ddr3 ( parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used parameter DQ_BITS = 8; // Set this parameter to control how many Data bits are used **Same as part bit width** parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used - `else `define x16 + `else + `define x16 parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used parameter ADDR_BITS = 13; // MAX Address Bits parameter ROW_BITS = 13; // Set this parameter to control how many Address bits are used @@ -1276,7 +1278,8 @@ module ddr3 ( parameter TWLO = 9000; // tWLO ps Write levelization output delay parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data parameter CL_TIME = 12500; // CL ps Minimum CAS Latency - `else `define sg25 // sg25 is equivelant to the JEDEC DDR3-800E (6-6-6) speed bin + `else + `define sg25 // sg25 is equivelant to the JEDEC DDR3-800E (6-6-6) speed bin parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time parameter TJIT_PER = 100; // tJIT(per) ps Period JItter parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter @@ -1456,7 +1459,8 @@ module ddr3 ( parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used parameter DQ_BITS = 8; // Set this parameter to control how many Data bits are used **Same as part bit width** parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used - `else `define x16 + `else + `define x16 parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used parameter ADDR_BITS = 14; // MAX Address Bits parameter ROW_BITS = 14; // Set this parameter to control how many Address bits are used diff --git a/lib/micron/ddr_sdram/ddr3_model.v b/lib/micron/ddr_sdram/ddr3_model.v new file mode 100644 index 00000000..85629a31 --- /dev/null +++ b/lib/micron/ddr_sdram/ddr3_model.v @@ -0,0 +1,5577 @@ +/**************************************************************************************** +* +* File Name: ddr3.v +* Version: 1.61 +* Model: BUS Functional +* +* Dependencies: ddr3_model_parameters.vh +* +* Description: Micron SDRAM DDR3 (Double Data Rate 3) +* +* Limitation: - doesn't check for average refresh timings +* - positive ck and ck_n edges are used to form internal clock +* - positive dqs and dqs_n edges are used to latch data +* - test mode is not modeled +* - Duty Cycle Corrector is not modeled +* - Temperature Compensated Self Refresh is not modeled +* - DLL off mode is not modeled. +* +* Note: - Set simulator resolution to "ps" accuracy +* - Set DEBUG = 0 to disable $display messages +* +* Disclaimer This software code and all associated documentation, comments or other +* of Warranty: information (collectively "Software") is provided "AS IS" without +* warranty of any kind. MICRON TECHNOLOGY, INC. ("MTI") EXPRESSLY +* DISCLAIMS ALL WARRANTIES EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +* TO, NONINFRINGEMENT OF THIRD PARTY RIGHTS, AND ANY IMPLIED WARRANTIES +* OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. MTI DOES NOT +* WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THE +* OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE. +* FURTHERMORE, MTI DOES NOT MAKE ANY REPRESENTATIONS REGARDING THE USE OR +* THE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS, +* ACCURACY, RELIABILITY, OR OTHERWISE. THE ENTIRE RISK ARISING OUT OF USE +* OR PERFORMANCE OF THE SOFTWARE REMAINS WITH YOU. IN NO EVENT SHALL MTI, +* ITS AFFILIATED COMPANIES OR THEIR SUPPLIERS BE LIABLE FOR ANY DIRECT, +* INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR SPECIAL DAMAGES (INCLUDING, +* WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, +* OR LOSS OF INFORMATION) ARISING OUT OF YOUR USE OF OR INABILITY TO USE +* THE SOFTWARE, EVEN IF MTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +* DAMAGES. Because some jurisdictions prohibit the exclusion or +* limitation of liability for consequential or incidental damages, the +* above limitation may not apply to you. +* +* Copyright 2003 Micron Technology, Inc. All rights reserved. +* +* Rev Author Date Changes +* --------------------------------------------------------------------------------------- +* 0.41 JMK 05/12/06 Removed auto-precharge to power down error check. +* 0.42 JMK 08/25/06 Created internal clock using ck and ck_n. +* TDQS can only be enabled in EMR for x8 configurations. +* CAS latency is checked vs frequency when DLL locks. +* Improved checking of DQS during writes. +* Added true BL4 operation. +* 0.43 JMK 08/14/06 Added checking for setting reserved bits in Mode Registers. +* Added ODTS Readout. +* Replaced tZQCL with tZQinit and tZQoper +* Fixed tWRPDEN and tWRAPDEN during BC4MRS and BL4MRS. +* Added tRFC checking for Refresh to Power-Down Re-Entry. +* Added tXPDLL checking for Power-Down Exit to Refresh to Power-Down Entry +* Added Clock Frequency Change during Precharge Power-Down. +* Added -125x speed grades. +* Fixed tRCD checking during Write. +* 1.00 JMK 05/11/07 Initial release +* 1.10 JMK 06/26/07 Fixed ODTH8 check during BLOTF +* Removed temp sensor readout from MPR +* Updated initialization sequence +* Updated timing parameters +* 1.20 JMK 09/05/07 Updated clock frequency change +* Added ddr3_dimm module +* 1.30 JMK 01/23/08 Updated timing parameters +* 1.40 JMK 12/02/08 Added support for DDR3-1866 and DDR3-2133 +* renamed ddr3_dimm.v to ddr3_module.v and added SODIMM support. +* Added multi-chip package model support in ddr3_mcp.v +* 1.50 JMK 05/04/08 Added 1866 and 2133 speed grades. +* 1.60 MYY 07/10/09 Merging of 1.50 version and pre-1.0 version changes +* 1.61 SPH 12/10/09 Only check tIH for cmd_addr if CS# LOW +*****************************************************************************************/ +// DO NOT CHANGE THE TIMESCALE +// MAKE SURE YOUR SIMULATOR USES "PS" RESOLUTION +`timescale 1ps / 1ps + +// model flags +// `define MODEL_PASR + +module ddr3_model ( + rst_n, + ck, + ck_n, + cke, + cs_n, + ras_n, + cas_n, + we_n, + dm_tdqs, + ba, + addr, + dq, + dqs, + dqs_n, + tdqs_n, + odt +); + +// `include "ddr3_model_parameters.vh" + +/**************************************************************************************** +* +* Disclaimer This software code and all associated documentation, comments or other +* of Warranty: information (collectively "Software") is provided "AS IS" without +* warranty of any kind. MICRON TECHNOLOGY, INC. ("MTI") EXPRESSLY +* DISCLAIMS ALL WARRANTIES EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +* TO, NONINFRINGEMENT OF THIRD PARTY RIGHTS, AND ANY IMPLIED WARRANTIES +* OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. MTI DOES NOT +* WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THE +* OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE. +* FURTHERMORE, MTI DOES NOT MAKE ANY REPRESENTATIONS REGARDING THE USE OR +* THE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS, +* ACCURACY, RELIABILITY, OR OTHERWISE. THE ENTIRE RISK ARISING OUT OF USE +* OR PERFORMANCE OF THE SOFTWARE REMAINS WITH YOU. IN NO EVENT SHALL MTI, +* ITS AFFILIATED COMPANIES OR THEIR SUPPLIERS BE LIABLE FOR ANY DIRECT, +* INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR SPECIAL DAMAGES (INCLUDING, +* WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, +* OR LOSS OF INFORMATION) ARISING OUT OF YOUR USE OF OR INABILITY TO USE +* THE SOFTWARE, EVEN IF MTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +* DAMAGES. Because some jurisdictions prohibit the exclusion or +* limitation of liability for consequential or incidental damages, the +* above limitation may not apply to you. +* +* Copyright 2003 Micron Technology, Inc. All rights reserved. +* +****************************************************************************************/ + + // Parameters current with 1Gb, 2Gb and 4Gb datasheet rev D + + // Timing parameters based on Speed Grade + + +`ifdef x4Gb // 4Gb parameters + // SYMBOL UNITS DESCRIPTION + // ------ ----- ----------- + `ifdef sg093 // sg093 is equivalent to the JEDEC DDR3-2133 (14-14-14) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 180; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48090; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13090; // tRCD ps Active to Read/Write command time + parameter TRP = 13090; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13090; // TAA ps Internal READ command to first data + parameter CL_TIME = 13090; // CL ps Minimum CAS Latency + `elsif sg093E // sg093E is equivalent to the JEDEC DDR3-2133 (13-13-13) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47155; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12155; // tRCD ps Active to Read/Write command time + parameter TRP = 12155; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12155; // TAA ps Internal READ command to first data + parameter CL_TIME = 12155; // CL ps Minimum CAS Latency + `elsif sg093F // sg093F is equivalent to the JEDEC DDR3-2133 (12-12-12) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46220; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11220; // tRCD ps Active to Read/Write command time + parameter TRP = 11220; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11220; // TAA ps Internal READ command to first data + parameter CL_TIME = 11220; // CL ps Minimum CAS Latency + `elsif sg107 // sg107 is equivalent to the JEDEC DDR3-1866 (13-13-13) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48910; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13910; // tRCD ps Active to Read/Write command time + parameter TRP = 13910; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13910; // TAA ps Internal READ command to first data + parameter CL_TIME = 13910; // CL ps Minimum CAS Latency + `elsif sg107E // sg107E is equivalent to the JEDEC DDR3-1866 (12-12-12) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47840; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12840; // tRCD ps Active to Read/Write command time + parameter TRP = 12840; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12840; // TAA ps Internal READ command to first data + parameter CL_TIME = 12840; // CL ps Minimum CAS Latency + `elsif sg107F // sg107F is equivalent to the JEDEC DDR3-1866 (11-11-11) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46770; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11770; // tRCD ps Active to Read/Write command time + parameter TRP = 11770; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11770; // TAA ps Internal READ command to first data + parameter CL_TIME = 11770; // CL ps Minimum CAS Latency + `elsif sg125E // sg125E is equivalent to the JEDEC DDR3-1600 (10-10-10) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `elsif sg125 // sg125 is equivalent to the JEDEC DDR3-1600 (11-11-11) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48125; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency (Changed the value from 13750 to 13125 + // as the speed grade supports down binning) + `elsif sg15E // sg15E is equivalent to the JEDEC DDR3-1333H (9-9-9) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 49125; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency (Changed the value from 13500 to 13125 + // as the speed grade supports down binning) + `elsif sg15 // sg15 is equivalent to the JEDEC DDR3-1333J (10-10-10) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 51000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg187E // sg187E is equivalent to the JEDEC DDR3-1066F (7-7-7) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50625; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg187 // sg187 is equivalent to the JEDEC DDR3-1066G (8-8-8) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg25E // sg25E is equivalent to the JEDEC DDR3-800D (5-5-5) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `else + `define sg25 // sg25 is equivalent to the JEDEC DDR3-800E (6-6-6) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `endif + + `ifdef x16 + `ifdef sg093 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `else // sg187E, sg187, sg25, sg25E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `endif + `else // x4, x8 + `ifdef sg093 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `else // sg25, sg25E + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `endif + `endif + + // Timing Parameters + + // Mode Register + parameter CL_MIN = 5; // CL tCK Minimum CAS Latency + parameter CL_MAX = 16; // CL tCK Maximum CAS Latency + parameter AL_MIN = 0; // AL tCK Minimum Additive Latency + parameter AL_MAX = 2; // AL tCK Maximum Additive Latency + parameter WR_MIN = 5; // WR tCK Minimum Write Recovery + parameter WR_MAX = 16; // WR tCK Maximum Write Recovery + parameter BL_MIN = 4; // BL tCK Minimum Burst Length + parameter BL_MAX = 8; // BL tCK Minimum Burst Length + parameter CWL_MIN = 5; // CWL tCK Minimum CAS Write Latency + parameter CWL_MAX = 10; // CWL tCK Maximum CAS Write Latency + + // Clock + parameter TCK_MAX = 3300; // tCK ps Maximum Clock Cycle Time + parameter TCH_AVG_MIN = 0.47; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_AVG_MIN = 0.47; // tCL tCK Minimum Clock Low-Level Pulse Width + parameter TCH_AVG_MAX = 0.53; // tCH tCK Maximum Clock High-Level Pulse Width + parameter TCL_AVG_MAX = 0.53; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCH_ABS_MIN = 0.43; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_ABS_MIN = 0.43; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCKE_TCK = 3; // tCKE tCK CKE minimum high or low pulse width + parameter TAA_MAX = 20000; // TAA ps Internal READ command to first data + + // Data OUT + parameter TQH = 0.38; // tQH ps DQ output hold time from DQS, DQS# + // Data Strobe OUT + parameter TRPRE = 0.90; // tRPRE tCK DQS Read Preamble + parameter TRPST = 0.30; // tRPST tCK DQS Read Postamble + // Data Strobe IN + parameter TDQSH = 0.45; // tDQSH tCK DQS input High Pulse Width + parameter TDQSL = 0.45; // tDQSL tCK DQS input Low Pulse Width + parameter TWPRE = 0.90; // tWPRE tCK DQS Write Preamble + parameter TWPST = 0.30; // tWPST tCK DQS Write Postamble + // Command and Address + parameter TZQCS = 64; // tZQCS tCK ZQ Cal (Short) time + parameter TZQINIT = 512; // tZQinit tCK ZQ Cal (Long) time + parameter TZQOPER = 256; // tZQoper tCK ZQ Cal (Long) time + parameter TCCD = 4; // tCCD tCK Cas to Cas command delay + parameter TCCD_DG = 2; // tCCD_DG tCK Cas to Cas command delay to different group + parameter TRAS_MAX = 60e9; // tRAS ps Maximum Active to Precharge command time + parameter TWR = 15000; // tWR ps Write recovery time + parameter TMRD = 4; // tMRD tCK Load Mode Register command cycle time + parameter TMOD = 15000; // tMOD ps LOAD MODE to non-LOAD MODE command cycle time + parameter TMOD_TCK = 12; // tMOD tCK LOAD MODE to non-LOAD MODE command cycle time + parameter TRRD_TCK = 4; // tRRD tCK Active bank a to Active bank b command time + parameter TRRD_DG = 3000; // tRRD_DG ps Active bank a to Active bank b command time to different group + parameter TRRD_DG_TCK = 2; // tRRD_DG tCK Active bank a to Active bank b command time to different group + parameter TRTP = 7500; // tRTP ps Read to Precharge command delay + parameter TRTP_TCK = 4; // tRTP tCK Read to Precharge command delay + parameter TWTR = 7500; // tWTR ps Write to Read command delay + parameter TWTR_DG = 3750; // tWTR_DG ps Write to Read command delay to different group + parameter TWTR_TCK = 4; // tWTR tCK Write to Read command delay + parameter TWTR_DG_TCK = 2; // tWTR_DG tCK Write to Read command delay to different group + parameter TDLLK = 512; // tDLLK tCK DLL locking time + // Refresh - 2Gb + parameter TRFC_MIN = 160000; // tRFC ps Refresh to Refresh Command interval minimum value + parameter TRFC_MAX =70312500; // tRFC ps Refresh to Refresh Command Interval maximum value + // Power Down + parameter TXP_TCK = 3; // tXP tCK Exit power down to a valid command + parameter TXPDLL = 24000; // tXPDLL ps Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TXPDLL_TCK = 10; // tXPDLL tCK Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TACTPDEN = 1; // tACTPDEN tCK Timing of last ACT command to power down entry + parameter TPRPDEN = 1; // tPREPDEN tCK Timing of last PRE command to power down entry + parameter TREFPDEN = 1; // tARPDEN tCK Timing of last REFRESH command to power down entry + parameter TCPDED = 1; // tCPDED tCK Command pass disable/enable delay + parameter TPD_MAX =TRFC_MAX; // tPD ps Power-down entry-to-exit timing + parameter TXPR = 170000; // tXPR ps Exit Reset from CKE assertion to a valid command + parameter TXPR_TCK = 5; // tXPR tCK Exit Reset from CKE assertion to a valid command + // Self Refresh + parameter TXS = 170000; // tXS ps Exit self refesh to a non-read or write command + parameter TXS_TCK = 5; // tXS tCK Exit self refesh to a non-read or write command + parameter TXSDLL = TDLLK; // tXSRD tCK Exit self refresh to a read or write command + parameter TISXR = TIS; // tISXR ps CKE setup time during self refresh exit. + parameter TCKSRE = 10000; // tCKSRE ps Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRE_TCK = 5; // tCKSRE tCK Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRX = 10000; // tCKSRX ps Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKSRX_TCK = 5; // tCKSRX tCK Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKESR_TCK = 4; // tCKESR tCK Minimum CKE low width for Self Refresh entry to exit timing + // ODT + parameter TAOF = 0.7; // tAOF tCK RTT turn-off from ODTLoff reference + parameter TAONPD = 8500; // tAONPD ps Asynchronous RTT turn-on delay (Power-Down with DLL frozen) + parameter TAOFPD = 8500; // tAONPD ps Asynchronous RTT turn-off delay (Power-Down with DLL frozen) + parameter ODTH4 = 4; // ODTH4 tCK ODT minimum HIGH time after ODT assertion or write (BL4) + parameter ODTH8 = 6; // ODTH8 tCK ODT minimum HIGH time after write (BL8) + parameter TADC = 0.7; // tADC tCK RTT dynamic change skew + // Write Levelization + parameter TWLMRD = 40; // tWLMRD tCK First DQS pulse rising edge after tDQSS margining mode is programmed + parameter TWLDQSEN = 25; // tWLDQSEN tCK DQS/DQS delay after tDQSS margining mode is programmed + parameter TWLOE = 2000; // tWLOE ps Write levelization output error + + // Size Parameters based on Part Width + + `ifdef x4 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 16; // MAX Address Bits + parameter ROW_BITS = 16; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 11; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 4; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `elsif x8 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 16; // MAX Address Bits + parameter ROW_BITS = 16; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 8; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `else + `define x16 + parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 15; // MAX Address Bits + parameter ROW_BITS = 15; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 16; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 2; // Set this parameter to control how many Dqs bits are used + `endif + + // Size Parameters + parameter BA_BITS = 3; // Set this parmaeter to control how many Bank Address bits are used + parameter MEM_BITS = 15; // Set this parameter to control how many write data bursts can be stored in memory. The default is 2^10=1024. + parameter AP = 10; // the address bit that controls auto-precharge and precharge-all + parameter BC = 12; // the address bit that controls burst chop + parameter BL_BITS = 3; // the number of bits required to count to BL_MAX + parameter BO_BITS = 2; // the number of Burst Order Bits + + `ifdef QUAD_RANK + parameter CS_BITS = 4; // Number of Chip Select Bits + parameter RANKS = 4; // Number of Chip Selects + `elsif DUAL_RANK + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 2; // Number of Chip Selects + `else + parameter CS_BITS = 1; // Number of Chip Select Bits + parameter RANKS = 1; // Number of Chip Selects + `endif + + // Simulation parameters + parameter RZQ = 240; // termination resistance + parameter PRE_DEF_PAT = 8'hAA; // value returned during mpr pre-defined pattern readout + parameter STOP_ON_ERROR = 1; // If set to 1, the model will halt on command sequence/major errors + parameter DEBUG = 1; // Turn on Debug messages + parameter BUS_DELAY = 0; // delay in nanoseconds + parameter RANDOM_OUT_DELAY = 0; // If set to 1, the model will put a random amount of delay on DQ/DQS during reads + parameter RANDOM_SEED = 711689044; //seed value for random generator. + + parameter RDQSEN_PRE = 2; // DQS driving time prior to first read strobe + parameter RDQSEN_PST = 1; // DQS driving time after last read strobe + parameter RDQS_PRE = 2; // DQS low time prior to first read strobe + parameter RDQS_PST = 1; // DQS low time after last read strobe + parameter RDQEN_PRE = 0; // DQ/DM driving time prior to first read data + parameter RDQEN_PST = 0; // DQ/DM driving time after last read data + parameter WDQS_PRE = 2; // DQS half clock periods prior to first write strobe + parameter WDQS_PST = 1; // DQS half clock periods after last write strobe + + // check for legal cas latency based on the cas write latency + function valid_cl; + input [3:0] cl; + input [3:0] cwl; + + case ({cwl, cl}) + `ifdef sg093 + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd9 }, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd12}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg107 + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107E + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg125E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg125 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg15E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg15 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg187E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg187 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg25E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `elsif sg25 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `endif + default : valid_cl = 0; + endcase + endfunction + + // find the minimum valid cas write latency + function [3:0] min_cwl; + input period; + real period; + min_cwl = (period >= 2500.0) ? 5: + (period >= 1875.0) ? 6: + (period >= 1500.0) ? 7: + (period >= 1250.0) ? 8: + (period >= 1070.0) ? 9: + 10; // (period >= 935) + endfunction + + // find the minimum valid cas latency + function [3:0] min_cl; + input period; + real period; + reg [3:0] cwl; + reg [3:0] cl; + begin + cwl = min_cwl(period); + for (cl=CL_MAX; cl>=CL_MIN; cl=cl-1) begin + if (valid_cl(cl, cwl)) begin + min_cl = cl; + end + end + end + endfunction + +`elsif x2Gb // 2Gb parameters + + // SYMBOL UNITS DESCRIPTION + // ------ ----- ----------- + `ifdef sg093 // sg093 is equivalent to the JEDEC DDR3-2133 (14-14-14) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 180; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48090; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13090; // tRCD ps Active to Read/Write command time + parameter TRP = 13090; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13090; // TAA ps Internal READ command to first data + parameter CL_TIME = 13090; // CL ps Minimum CAS Latency + `elsif sg093E // sg093E is equivalent to the JEDEC DDR3-2133 (13-13-13) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47155; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12155; // tRCD ps Active to Read/Write command time + parameter TRP = 12155; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12155; // TAA ps Internal READ command to first data + parameter CL_TIME = 12155; // CL ps Minimum CAS Latency + `elsif sg093F // sg093F is equivalent to the JEDEC DDR3-2133 (12-12-12) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46220; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11220; // tRCD ps Active to Read/Write command time + parameter TRP = 11220; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11220; // TAA ps Internal READ command to first data + parameter CL_TIME = 11220; // CL ps Minimum CAS Latency + `elsif sg107 // sg107 is equivalent to the JEDEC DDR3-1866 (13-13-13) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48910; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13910; // tRCD ps Active to Read/Write command time + parameter TRP = 13910; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13910; // TAA ps Internal READ command to first data + parameter CL_TIME = 13910; // CL ps Minimum CAS Latency + `elsif sg107E // sg107E is equivalent to the JEDEC DDR3-1866 (12-12-12) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47840; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12840; // tRCD ps Active to Read/Write command time + parameter TRP = 12840; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12840; // TAA ps Internal READ command to first data + parameter CL_TIME = 12840; // CL ps Minimum CAS Latency + `elsif sg107F // sg107F is equivalent to the JEDEC DDR3-1866 (11-11-11) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46770; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11770; // tRCD ps Active to Read/Write command time + parameter TRP = 11770; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11770; // TAA ps Internal READ command to first data + parameter CL_TIME = 11770; // CL ps Minimum CAS Latency + `elsif sg125E // sg125E is equivalent to the JEDEC DDR3-1600 (10-10-10) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `elsif sg125 // sg125 is equivalent to the JEDEC DDR3-1600 (11-11-11) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48125; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency (Changed the value from 13750 to 13125 + // as the speed grade supports down binning) + `elsif sg15E // sg15E is equivalent to the JEDEC DDR3-1333H (9-9-9) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 49125; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency (Changed the value from 13500 to 13125 + // as the speed grade supports down binning) + `elsif sg15 // sg15 is equivalent to the JEDEC DDR3-1333J (10-10-10) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 51000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg187E // sg187E is equivalent to the JEDEC DDR3-1066F (7-7-7) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50625; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg187 // sg187 is equivalent to the JEDEC DDR3-1066G (8-8-8) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg25E // sg25E is equivalent to the JEDEC DDR3-800D (5-5-5) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `else + `define sg25 // sg25 is equivalent to the JEDEC DDR3-800E (6-6-6) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `endif + + `ifdef x16 + `ifdef sg093 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `else // sg187E, sg187, sg25, sg25E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `endif + `else // x4, x8 + `ifdef sg093 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `else // sg25, sg25E + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `endif + `endif + + // Timing Parameters + + // Mode Register + parameter CL_MIN = 5; // CL tCK Minimum CAS Latency + parameter CL_MAX = 14; // CL tCK Maximum CAS Latency + parameter AL_MIN = 0; // AL tCK Minimum Additive Latency + parameter AL_MAX = 2; // AL tCK Maximum Additive Latency + parameter WR_MIN = 5; // WR tCK Minimum Write Recovery + parameter WR_MAX = 16; // WR tCK Maximum Write Recovery + parameter BL_MIN = 4; // BL tCK Minimum Burst Length + parameter BL_MAX = 8; // BL tCK Minimum Burst Length + parameter CWL_MIN = 5; // CWL tCK Minimum CAS Write Latency + parameter CWL_MAX = 10; // CWL tCK Maximum CAS Write Latency + + // Clock + parameter TCK_MAX = 3300; // tCK ps Maximum Clock Cycle Time + parameter TCH_AVG_MIN = 0.47; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_AVG_MIN = 0.47; // tCL tCK Minimum Clock Low-Level Pulse Width + parameter TCH_AVG_MAX = 0.53; // tCH tCK Maximum Clock High-Level Pulse Width + parameter TCL_AVG_MAX = 0.53; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCH_ABS_MIN = 0.43; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_ABS_MIN = 0.43; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCKE_TCK = 3; // tCKE tCK CKE minimum high or low pulse width + parameter TAA_MAX = 20000; // TAA ps Internal READ command to first data + + // Data OUT + parameter TQH = 0.38; // tQH ps DQ output hold time from DQS, DQS# + // Data Strobe OUT + parameter TRPRE = 0.90; // tRPRE tCK DQS Read Preamble + parameter TRPST = 0.30; // tRPST tCK DQS Read Postamble + // Data Strobe IN + parameter TDQSH = 0.45; // tDQSH tCK DQS input High Pulse Width + parameter TDQSL = 0.45; // tDQSL tCK DQS input Low Pulse Width + parameter TWPRE = 0.90; // tWPRE tCK DQS Write Preamble + parameter TWPST = 0.30; // tWPST tCK DQS Write Postamble + // Command and Address + parameter TZQCS = 64; // tZQCS tCK ZQ Cal (Short) time + parameter TZQINIT = 512; // tZQinit tCK ZQ Cal (Long) time + parameter TZQOPER = 256; // tZQoper tCK ZQ Cal (Long) time + parameter TCCD = 4; // tCCD tCK Cas to Cas command delay + parameter TCCD_DG = 2; // tCCD_DG tCK Cas to Cas command delay to different group + parameter TRAS_MAX = 60e9; // tRAS ps Maximum Active to Precharge command time + parameter TWR = 15000; // tWR ps Write recovery time + parameter TMRD = 4; // tMRD tCK Load Mode Register command cycle time + parameter TMOD = 15000; // tMOD ps LOAD MODE to non-LOAD MODE command cycle time + parameter TMOD_TCK = 12; // tMOD tCK LOAD MODE to non-LOAD MODE command cycle time + parameter TRRD_TCK = 4; // tRRD tCK Active bank a to Active bank b command time + parameter TRRD_DG = 3000; // tRRD_DG ps Active bank a to Active bank b command time to different group + parameter TRRD_DG_TCK = 2; // tRRD_DG tCK Active bank a to Active bank b command time to different group + parameter TRTP = 7500; // tRTP ps Read to Precharge command delay + parameter TRTP_TCK = 4; // tRTP tCK Read to Precharge command delay + parameter TWTR = 7500; // tWTR ps Write to Read command delay + parameter TWTR_DG = 3750; // tWTR_DG ps Write to Read command delay to different group + parameter TWTR_TCK = 4; // tWTR tCK Write to Read command delay + parameter TWTR_DG_TCK = 2; // tWTR_DG tCK Write to Read command delay to different group + parameter TDLLK = 512; // tDLLK tCK DLL locking time + // Refresh - 2Gb + parameter TRFC_MIN = 160000; // tRFC ps Refresh to Refresh Command interval minimum value + parameter TRFC_MAX =70312500; // tRFC ps Refresh to Refresh Command Interval maximum value + // Power Down + parameter TXP_TCK = 3; // tXP tCK Exit power down to a valid command + parameter TXPDLL = 24000; // tXPDLL ps Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TXPDLL_TCK = 10; // tXPDLL tCK Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TACTPDEN = 1; // tACTPDEN tCK Timing of last ACT command to power down entry + parameter TPRPDEN = 1; // tPREPDEN tCK Timing of last PRE command to power down entry + parameter TREFPDEN = 1; // tARPDEN tCK Timing of last REFRESH command to power down entry + parameter TCPDED = 1; // tCPDED tCK Command pass disable/enable delay + parameter TPD_MAX =TRFC_MAX; // tPD ps Power-down entry-to-exit timing + parameter TXPR = 170000; // tXPR ps Exit Reset from CKE assertion to a valid command + parameter TXPR_TCK = 5; // tXPR tCK Exit Reset from CKE assertion to a valid command + // Self Refresh + parameter TXS = 170000; // tXS ps Exit self refesh to a non-read or write command + parameter TXS_TCK = 5; // tXS tCK Exit self refesh to a non-read or write command + parameter TXSDLL = TDLLK; // tXSRD tCK Exit self refresh to a read or write command + parameter TISXR = TIS; // tISXR ps CKE setup time during self refresh exit. + parameter TCKSRE = 10000; // tCKSRE ps Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRE_TCK = 5; // tCKSRE tCK Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRX = 10000; // tCKSRX ps Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKSRX_TCK = 5; // tCKSRX tCK Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKESR_TCK = 4; // tCKESR tCK Minimum CKE low width for Self Refresh entry to exit timing + // ODT + parameter TAOF = 0.7; // tAOF tCK RTT turn-off from ODTLoff reference + parameter TAONPD = 8500; // tAONPD ps Asynchronous RTT turn-on delay (Power-Down with DLL frozen) + parameter TAOFPD = 8500; // tAONPD ps Asynchronous RTT turn-off delay (Power-Down with DLL frozen) + parameter ODTH4 = 4; // ODTH4 tCK ODT minimum HIGH time after ODT assertion or write (BL4) + parameter ODTH8 = 6; // ODTH8 tCK ODT minimum HIGH time after write (BL8) + parameter TADC = 0.7; // tADC tCK RTT dynamic change skew + // Write Levelization + parameter TWLMRD = 40; // tWLMRD tCK First DQS pulse rising edge after tDQSS margining mode is programmed + parameter TWLDQSEN = 25; // tWLDQSEN tCK DQS/DQS delay after tDQSS margining mode is programmed + parameter TWLOE = 2000; // tWLOE ps Write levelization output error + + // Size Parameters based on Part Width + + `ifdef x4 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 15; // MAX Address Bits + parameter ROW_BITS = 15; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 11; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 4; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `elsif x8 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 15; // MAX Address Bits + parameter ROW_BITS = 15; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 8; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `else + `define x16 + parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 14; // MAX Address Bits + parameter ROW_BITS = 14; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 16; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 2; // Set this parameter to control how many Dqs bits are used + `endif + + // Size Parameters + parameter BA_BITS = 3; // Set this parmaeter to control how many Bank Address bits are used + parameter MEM_BITS = 15; // Set this parameter to control how many write data bursts can be stored in memory. The default is 2^10=1024. + parameter AP = 10; // the address bit that controls auto-precharge and precharge-all + parameter BC = 12; // the address bit that controls burst chop + parameter BL_BITS = 3; // the number of bits required to count to BL_MAX + parameter BO_BITS = 2; // the number of Burst Order Bits + + `ifdef QUAD_RANK + `define DUAL_RANK // also define DUAL_RANK + parameter CS_BITS = 4; // Number of Chip Select Bits + parameter RANKS = 4; // Number of Chip Selects + `elsif DUAL_RANK + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 2; // Number of Chip Selects + `else + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 1; // Number of Chip Selects + `endif + + // Simulation parameters + parameter RZQ = 240; // termination resistance + parameter PRE_DEF_PAT = 8'hAA; // value returned during mpr pre-defined pattern readout + parameter STOP_ON_ERROR = 1; // If set to 1, the model will halt on command sequence/major errors + parameter DEBUG = 1; // Turn on Debug messages + parameter BUS_DELAY = 0; // delay in nanoseconds + parameter RANDOM_OUT_DELAY = 0; // If set to 1, the model will put a random amount of delay on DQ/DQS during reads + parameter RANDOM_SEED = 711689044; //seed value for random generator. + + parameter RDQSEN_PRE = 2; // DQS driving time prior to first read strobe + parameter RDQSEN_PST = 1; // DQS driving time after last read strobe + parameter RDQS_PRE = 2; // DQS low time prior to first read strobe + parameter RDQS_PST = 1; // DQS low time after last read strobe + parameter RDQEN_PRE = 0; // DQ/DM driving time prior to first read data + parameter RDQEN_PST = 0; // DQ/DM driving time after last read data + parameter WDQS_PRE = 2; // DQS half clock periods prior to first write strobe + parameter WDQS_PST = 1; // DQS half clock periods after last write strobe + + // check for legal cas latency based on the cas write latency + function valid_cl; + input [3:0] cl; + input [3:0] cwl; + + case ({cwl, cl}) + `ifdef sg093 + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd9 }, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd12}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg107 + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107E + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg125E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg125 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg15E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg15 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg187E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg187 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg25E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `elsif sg25 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `endif + default : valid_cl = 0; + endcase + endfunction + + // find the minimum valid cas write latency + function [3:0] min_cwl; + input period; + real period; + min_cwl = (period >= 2500.0) ? 5: + (period >= 1875.0) ? 6: + (period >= 1500.0) ? 7: + (period >= 1250.0) ? 8: + (period >= 1070.0) ? 9: + 10; // (period >= 935) + endfunction + + // find the minimum valid cas latency + function [3:0] min_cl; + input period; + real period; + reg [3:0] cwl; + reg [3:0] cl; + begin + cwl = min_cwl(period); + for (cl=CL_MAX; cl>=CL_MIN; cl=cl-1) begin + if (valid_cl(cl, cwl)) begin + min_cl = cl; + end + end + end + endfunction + + +`else + `define x1Gb // 1Gb parts + + // SYMBOL UNITS DESCRIPTION + // ------ ----- ----------- + `ifdef sg093 // sg093 is equivalent to the JEDEC DDR3-2133 (14-14-14) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 180; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48090; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13090; // tRCD ps Active to Read/Write command time + parameter TRP = 13090; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13090; // TAA ps Internal READ command to first data + parameter CL_TIME = 13090; // CL ps Minimum CAS Latency + `elsif sg093E // sg093E is equivalent to the JEDEC DDR3-2133 (13-13-13) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47155; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12155; // tRCD ps Active to Read/Write command time + parameter TRP = 12155; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12155; // TAA ps Internal READ command to first data + parameter CL_TIME = 12155; // CL ps Minimum CAS Latency + `elsif sg093F // sg093F is equivalent to the JEDEC DDR3-2133 (12-12-12) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46220; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11220; // tRCD ps Active to Read/Write command time + parameter TRP = 11220; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11220; // TAA ps Internal READ command to first data + parameter CL_TIME = 11220; // CL ps Minimum CAS Latency + `elsif sg107 // sg107 is equivalent to the JEDEC DDR3-1866 (13-13-13) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48910; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13910; // tRCD ps Active to Read/Write command time + parameter TRP = 13910; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13910; // TAA ps Internal READ command to first data + parameter CL_TIME = 13910; // CL ps Minimum CAS Latency + `elsif sg107E // sg107E is equivalent to the JEDEC DDR3-1866 (12-12-12) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47840; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12840; // tRCD ps Active to Read/Write command time + parameter TRP = 12840; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12840; // TAA ps Internal READ command to first data + parameter CL_TIME = 12840; // CL ps Minimum CAS Latency + `elsif sg107F // sg107F is equivalent to the JEDEC DDR3-1866 (11-11-11) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46770; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11770; // tRCD ps Active to Read/Write command time + parameter TRP = 11770; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11770; // TAA ps Internal READ command to first data + parameter CL_TIME = 11770; // CL ps Minimum CAS Latency + `elsif sg125E // sg125E is equivalent to the JEDEC DDR3-1600 (10-10-10) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `elsif sg125 // sg125 is equivalent to the JEDEC DDR3-1600 (11-11-11) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48125; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg15E // sg15E is equivalent to the JEDEC DDR3-1333H (9-9-9) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 49125; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg15 // sg15 is equivalent to the JEDEC DDR3-1333J (10-10-10) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 51000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg187E // sg187E is equivalent to the JEDEC DDR3-1066F (7-7-7) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50625; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg187 // sg187 is equivalent to the JEDEC DDR3-1066G (8-8-8) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg25E // sg25E is equivalent to the JEDEC DDR3-800E (5-5-5) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `else + `define sg25 // sg25 is equivalent to the JEDEC DDR3-800 (6-6-6) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `endif + + `ifdef x16 + `ifdef sg093 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg25E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `else // sg25 + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `endif + `else // x4, x8 + `ifdef sg093 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg25E + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `else // sg25 + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `endif + `endif + + // Timing Parameters + + // Mode Register + parameter CL_MIN = 5; // CL tCK Minimum CAS Latency + parameter CL_MAX = 14; // CL tCK Maximum CAS Latency + parameter AL_MIN = 0; // AL tCK Minimum Additive Latency + parameter AL_MAX = 2; // AL tCK Maximum Additive Latency + parameter WR_MIN = 5; // WR tCK Minimum Write Recovery + parameter WR_MAX = 16; // WR tCK Maximum Write Recovery + parameter BL_MIN = 4; // BL tCK Minimum Burst Length + parameter BL_MAX = 8; // BL tCK Minimum Burst Length + parameter CWL_MIN = 5; // CWL tCK Minimum CAS Write Latency + parameter CWL_MAX = 10; // CWL tCK Maximum CAS Write Latency + + // Clock + parameter TCK_MAX = 3300; // tCK ps Maximum Clock Cycle Time + parameter TCH_AVG_MIN = 0.47; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_AVG_MIN = 0.47; // tCL tCK Minimum Clock Low-Level Pulse Width + parameter TCH_AVG_MAX = 0.53; // tCH tCK Maximum Clock High-Level Pulse Width + parameter TCL_AVG_MAX = 0.53; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCH_ABS_MIN = 0.43; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_ABS_MIN = 0.43; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCKE_TCK = 3; // tCKE tCK CKE minimum high or low pulse width + parameter TAA_MAX = 20000; // TAA ps Internal READ command to first data + + // Data OUT + parameter TQH = 0.38; // tQH ps DQ output hold time from DQS, DQS# + // Data Strobe OUT + parameter TRPRE = 0.90; // tRPRE tCK DQS Read Preamble + parameter TRPST = 0.30; // tRPST tCK DQS Read Postamble + // Data Strobe IN + parameter TDQSH = 0.45; // tDQSH tCK DQS input High Pulse Width + parameter TDQSL = 0.45; // tDQSL tCK DQS input Low Pulse Width + parameter TWPRE = 0.90; // tWPRE tCK DQS Write Preamble + parameter TWPST = 0.30; // tWPST tCK DQS Write Postamble + // Command and Address + parameter TZQCS = 64; // tZQCS tCK ZQ Cal (Short) time + parameter TZQINIT = 512; // tZQinit tCK ZQ Cal (Long) time + parameter TZQOPER = 256; // tZQoper tCK ZQ Cal (Long) time + parameter TCCD = 4; // tCCD tCK Cas to Cas command delay + parameter TCCD_DG = 2; // tCCD_DG tCK Cas to Cas command delay to different group + parameter TRAS_MAX = 60e9; // tRAS ps Maximum Active to Precharge command time + parameter TWR = 15000; // tWR ps Write recovery time + parameter TMRD = 4; // tMRD tCK Load Mode Register command cycle time + parameter TMOD = 15000; // tMOD ps LOAD MODE to non-LOAD MODE command cycle time + parameter TMOD_TCK = 12; // tMOD tCK LOAD MODE to non-LOAD MODE command cycle time + parameter TRRD_TCK = 4; // tRRD tCK Active bank a to Active bank b command time + parameter TRRD_DG = 3000; // tRRD_DG ps Active bank a to Active bank b command time to different group + parameter TRRD_DG_TCK = 2; // tRRD_DG tCK Active bank a to Active bank b command time to different group + parameter TRTP = 7500; // tRTP ps Read to Precharge command delay + parameter TRTP_TCK = 4; // tRTP tCK Read to Precharge command delay + parameter TWTR = 7500; // tWTR ps Write to Read command delay + parameter TWTR_DG = 3750; // tWTR_DG ps Write to Read command delay to different group + parameter TWTR_TCK = 4; // tWTR tCK Write to Read command delay + parameter TWTR_DG_TCK = 2; // tWTR_DG tCK Write to Read command delay to different group + parameter TDLLK = 512; // tDLLK tCK DLL locking time + // Refresh - 1Gb + parameter TRFC_MIN = 110000; // tRFC ps Refresh to Refresh Command interval minimum value + parameter TRFC_MAX =70312500; // tRFC ps Refresh to Refresh Command Interval maximum value + // Power Down + parameter TXP_TCK = 3; // tXP tCK Exit power down to a valid command + parameter TXPDLL = 24000; // tXPDLL ps Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TXPDLL_TCK = 10; // tXPDLL tCK Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TACTPDEN = 1; // tACTPDEN tCK Timing of last ACT command to power down entry + parameter TPRPDEN = 1; // tPREPDEN tCK Timing of last PRE command to power down entry + parameter TREFPDEN = 1; // tARPDEN tCK Timing of last REFRESH command to power down entry + parameter TCPDED = 1; // tCPDED tCK Command pass disable/enable delay + parameter TPD_MAX =TRFC_MAX; // tPD ps Power-down entry-to-exit timing + parameter TXPR = 120000; // tXPR ps Exit Reset from CKE assertion to a valid command + parameter TXPR_TCK = 5; // tXPR tCK Exit Reset from CKE assertion to a valid command + // Self Refresh + parameter TXS = 120000; // tXS ps Exit self refesh to a non-read or write command + parameter TXS_TCK = 5; // tXS tCK Exit self refesh to a non-read or write command + parameter TXSDLL = TDLLK; // tXSRD tCK Exit self refresh to a read or write command + parameter TISXR = TIS; // tISXR ps CKE setup time during self refresh exit. + parameter TCKSRE = 10000; // tCKSRE ps Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRE_TCK = 5; // tCKSRE tCK Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRX = 10000; // tCKSRX ps Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKSRX_TCK = 5; // tCKSRX tCK Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKESR_TCK = 4; // tCKESR tCK Minimum CKE low width for Self Refresh entry to exit timing + // ODT + parameter TAOF = 0.7; // tAOF tCK RTT turn-off from ODTLoff reference + parameter TAONPD = 8500; // tAONPD ps Asynchronous RTT turn-on delay (Power-Down with DLL frozen) + parameter TAOFPD = 8500; // tAONPD ps Asynchronous RTT turn-off delay (Power-Down with DLL frozen) + parameter ODTH4 = 4; // ODTH4 tCK ODT minimum HIGH time after ODT assertion or write (BL4) + parameter ODTH8 = 6; // ODTH8 tCK ODT minimum HIGH time after write (BL8) + parameter TADC = 0.7; // tADC tCK RTT dynamic change skew + // Write Levelization + parameter TWLMRD = 40; // tWLMRD tCK First DQS pulse rising edge after tDQSS margining mode is programmed + parameter TWLDQSEN = 25; // tWLDQSEN tCK DQS/DQS delay after tDQSS margining mode is programmed + parameter TWLOE = 2000; // tWLOE ps Write levelization output error + + // Size Parameters based on Part Width + + `ifdef x4 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 14; // MAX Address Bits + parameter ROW_BITS = 14; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 11; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 4; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `elsif x8 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 14; // MAX Address Bits + parameter ROW_BITS = 14; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 8; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `else + `define x16 + parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 13; // MAX Address Bits + parameter ROW_BITS = 13; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 16; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 2; // Set this parameter to control how many Dqs bits are used + `endif + + // Size Parameters + parameter BA_BITS = 3; // Set this parmaeter to control how many Bank Address bits are used + parameter MEM_BITS = 15; // Set this parameter to control how many write data bursts can be stored in memory. The default is 2^10=1024. + parameter AP = 10; // the address bit that controls auto-precharge and precharge-all + parameter BC = 12; // the address bit that controls burst chop + parameter BL_BITS = 3; // the number of bits required to count to BL_MAX + parameter BO_BITS = 2; // the number of Burst Order Bits + + `ifdef QUAD_RANK + `define DUAL_RANK // also define DUAL_RANK + parameter CS_BITS = 4; // Number of Chip Select Bits + parameter RANKS = 4; // Number of Chip Selects + `elsif DUAL_RANK + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 2; // Number of Chip Selects + `else + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 1; // Number of Chip Selects + `endif + + // Simulation parameters + parameter RZQ = 240; // termination resistance + parameter PRE_DEF_PAT = 8'hAA; // value returned during mpr pre-defined pattern readout + parameter STOP_ON_ERROR = 1; // If set to 1, the model will halt on command sequence/major errors + parameter DEBUG = 1; // Turn on Debug messages + parameter BUS_DELAY = 0; // delay in nanoseconds + parameter RANDOM_OUT_DELAY = 0; // If set to 1, the model will put a random amount of delay on DQ/DQS during reads + parameter RANDOM_SEED = 711689044; //seed value for random generator. + + parameter RDQSEN_PRE = 2; // DQS driving time prior to first read strobe + parameter RDQSEN_PST = 1; // DQS driving time after last read strobe + parameter RDQS_PRE = 2; // DQS low time prior to first read strobe + parameter RDQS_PST = 1; // DQS low time after last read strobe + parameter RDQEN_PRE = 0; // DQ/DM driving time prior to first read data + parameter RDQEN_PST = 0; // DQ/DM driving time after last read data + parameter WDQS_PRE = 2; // DQS half clock periods prior to first write strobe + parameter WDQS_PST = 1; // DQS half clock periods after last write strobe + + // check for legal cas latency based on the cas write latency + function valid_cl; + input [3:0] cl; + input [3:0] cwl; + + case ({cwl, cl}) + `ifdef sg093 + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd9 }, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd12}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg107 + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107E + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg125E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg125 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg15E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg15 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg187E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg187 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg25E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `elsif sg25 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `endif + default : valid_cl = 0; + endcase + endfunction + + // find the minimum valid cas write latency + function [3:0] min_cwl; + input period; + real period; + min_cwl = (period >= 2500.0) ? 5: + (period >= 1875.0) ? 6: + (period >= 1500.0) ? 7: + (period >= 1250.0) ? 8: + (period >= 1070.0) ? 9: + 10; // (period >= 935) + endfunction + + // find the minimum valid cas latency + function [3:0] min_cl; + input period; + real period; + reg [3:0] cwl; + reg [3:0] cl; + begin + cwl = min_cwl(period); + for (cl=CL_MAX; cl>=CL_MIN; cl=cl-1) begin + if (valid_cl(cl, cwl)) begin + min_cl = cl; + end + end + end + endfunction + +`endif + + parameter check_strict_mrbits = 1; + parameter check_strict_timing = 1; + parameter feature_pasr = 1; + parameter feature_truebl4 = 0; + + // text macros + `define DQ_PER_DQS DQ_BITS/DQS_BITS + `define BANKS (1<= 2. \nBL_MAX = %d", BL_MAX); + if ((1< BL_MAX) + $display("%m ERROR: 2^BO_BITS cannot be greater than BL_MAX parameter."); + + $timeformat (-12, 1, " ps", 1); + seed = RANDOM_SEED; + + ck_cntr = 0; + end + + function integer get_rtt_wr; + input [1:0] rtt; + begin + get_rtt_wr = RZQ/{rtt[0], rtt[1], 1'b0}; + end + endfunction + + function integer get_rtt_nom; + input [2:0] rtt; + begin + case (rtt) + 1: get_rtt_nom = RZQ/4; + 2: get_rtt_nom = RZQ/2; + 3: get_rtt_nom = RZQ/6; + 4: get_rtt_nom = RZQ/12; + 5: get_rtt_nom = RZQ/8; + default : get_rtt_nom = 0; + endcase + end + endfunction + + // calculate the absolute value of a real number + function real abs_value; + input arg; + real arg; + begin + if (arg < 0.0) + abs_value = -1.0 * arg; + else + abs_value = arg; + end + endfunction + + function integer ceil; + input number; + real number; + + // LMR 4.1.7 + // When either operand of a relational expression is a real operand then the other operand shall be converted + // to an equivalent real value, and the expression shall be interpreted as a comparison between two real values. + if (number > $rtoi(number)) + ceil = $rtoi(number) + 1; + else + ceil = number; + endfunction + + function integer floor; + input number; + real number; + + // LMR 4.1.7 + // When either operand of a relational expression is a real operand then the other operand shall be converted + // to an equivalent real value, and the expression shall be interpreted as a comparison between two real values. + if (number < $rtoi(number)) + floor = $rtoi(number) - 1; + else + floor = number; + endfunction + +`ifdef MAX_MEM + + function integer open_bank_file( input integer bank ); + integer fd; + reg [2048:1] filename; + begin + $sformat( filename, "%0s/%m.%0d", tmp_model_dir, bank ); + + fd = $fopen(filename, "w+"); + if (fd == 0) + begin + $display("%m: at time %0t ERROR: failed to open %0s.", $time, filename); + $finish; + end + else + begin + if (DEBUG) $display("%m: at time %0t INFO: opening %0s.", $time, filename); + open_bank_file = fd; + end + + end + endfunction + + function [RFF_BITS:1] read_from_file( + input integer fd, + input integer index + ); + integer code; + integer offset; + reg [1024:1] msg; + reg [RFF_BITS:1] read_value; + + begin + offset = index * RFF_CHUNK; + code = $fseek( fd, offset, 0 ); + // $fseek returns 0 on success, -1 on failure + if (code != 0) + begin + $display("%m: at time %t ERROR: fseek to %d failed", $time, offset); + $finish; + end + + code = $fscanf(fd, "%z", read_value); + // $fscanf returns number of items read + if (code != 1) + begin + if ($ferror(fd,msg) != 0) + begin + $display("%m: at time %t ERROR: fscanf failed at %d", $time, index); + $display(msg); + $finish; + end + else + read_value = 'hx; + end + + /* when reading from unwritten portions of the file, 0 will be returned. + * Use 0 in bit 1 as indicator that invalid data has been read. + * A true 0 is encoded as Z. + */ + if (read_value[1] === 1'bz) + // true 0 encoded as Z, data is valid + read_value[1] = 1'b0; + else if (read_value[1] === 1'b0) + // read from file section that has not been written + read_value = 'hx; + + read_from_file = read_value; + end + endfunction + + task write_to_file( + input integer fd, + input integer index, + input [RFF_BITS:1] data + ); + integer code; + integer offset; + + begin + offset = index * RFF_CHUNK; + code = $fseek( fd, offset, 0 ); + if (code != 0) + begin + $display("%m: at time %t ERROR: fseek to %d failed", $time, offset); + $finish; + end + + // encode a valid data + if (data[1] === 1'bz) + data[1] = 1'bx; + else if (data[1] === 1'b0) + data[1] = 1'bz; + + $fwrite( fd, "%z", data ); + end + endtask +`else + function get_index; + input [`MAX_BITS-1:0] addr; + begin : index + get_index = 0; + for (memory_index=0; memory_index>(ROW_BITS+COL_BITS-BL_BITS)); + if (!banks[ba]) begin //bank is selected to keep + address[i] = address[memory_index]; + memory[i] = memory[memory_index]; + i = i + 1; + end + end + // clean up the unused banks + for (memory_index=i; memory_index TRAS_MAX) $display ("%m: at time %t ERROR: tRAS maximum violation during %s to bank %d", $time, cmd_string[cmd], bank); + if ($time - tm_bank_activate[bank] < TRAS_MIN) $display ("%m: at time %t ERROR: tRAS minimum violation during %s to bank %d", $time, cmd_string[cmd], bank);end + {1'bx, SAME_BANK , ACTIVATE , ACTIVATE } : begin if ($time - tm_bank_activate[bank] < TRC) $display ("%m: at time %t ERROR: tRC violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'bx, SAME_BANK , ACTIVATE , WRITE } , + {1'bx, SAME_BANK , ACTIVATE , READ } : ; // tRCD is checked outside this task + {1'b0, DIFF_BANK , ACTIVATE , ACTIVATE } : begin if (($time - tm_activate < TRRD) || (ck_cntr - ck_activate < TRRD_TCK)) $display ("%m: at time %t ERROR: tRRD violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_BANK , ACTIVATE , ACTIVATE } : begin if (($time - tm_group_activate[bank[1]] < TRRD) || (ck_cntr - ck_group_activate[bank[1]] < TRRD_TCK)) $display ("%m: at time %t ERROR: tRRD violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_GROUP, ACTIVATE , ACTIVATE } : begin if (($time - tm_activate < TRRD_DG) || (ck_cntr - ck_activate < TRRD_DG_TCK)) $display ("%m: at time %t ERROR: tRRD_DG violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'bx, DIFF_BANK , ACTIVATE , REFRESH } : begin if ($time - tm_activate < TRC) $display ("%m: at time %t ERROR: tRC violation during %s", $time, cmd_string[cmd]); end + {1'bx, DIFF_BANK , ACTIVATE , PWR_DOWN } : begin if (ck_cntr - ck_activate < TACTPDEN) $display ("%m: at time %t ERROR: tACTPDEN violation during %s", $time, cmd_string[cmd]); end + + // write + {1'bx, SAME_BANK , WRITE , PRECHARGE} : begin if (($time - tm_bank_write_end[bank] < TWR) || (ck_cntr - ck_bank_write[bank] <= write_latency + burst_length/2)) $display ("%m: at time %t ERROR: tWR violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b0, DIFF_BANK , WRITE , WRITE } : begin if (ck_cntr - ck_write < TCCD) $display ("%m: at time %t ERROR: tCCD violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_BANK , WRITE , WRITE } : begin if (ck_cntr - ck_group_write[bank[1]] < TCCD) $display ("%m: at time %t ERROR: tCCD violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b0, DIFF_BANK , WRITE , READ } : begin if (ck_cntr - ck_write < write_latency + burst_length/2 + TWTR_TCK - additive_latency) $display ("%m: at time %t ERROR: tWTR violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_BANK , WRITE , READ } : begin if (ck_cntr - ck_group_write[bank[1]] < write_latency + burst_length/2 + TWTR_TCK - additive_latency) $display ("%m: at time %t ERROR: tWTR violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_GROUP, WRITE , WRITE } : begin if (ck_cntr - ck_write < TCCD_DG) $display ("%m: at time %t ERROR: tCCD_DG violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_GROUP, WRITE , READ } : begin if (ck_cntr - ck_write < write_latency + burst_length/2 + TWTR_DG_TCK - additive_latency) $display ("%m: at time %t ERROR: tWTR_DG violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'bx, DIFF_BANK , WRITE , PWR_DOWN } : begin if (($time - tm_write_end < TWR) || (ck_cntr - ck_write < write_latency + burst_length/2)) $display ("%m: at time %t ERROR: tWRPDEN violation during %s", $time, cmd_string[cmd]); end + + // read + {1'bx, SAME_BANK , READ , PRECHARGE} : begin if (($time - tm_bank_read_end[bank] < TRTP) || (ck_cntr - ck_bank_read[bank] < additive_latency + TRTP_TCK)) $display ("%m: at time %t ERROR: tRTP violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b0, DIFF_BANK , READ , WRITE } : ; // tRTW is checked outside this task + {1'b1, DIFF_BANK , READ , WRITE } : ; // tRTW is checked outside this task + {1'b0, DIFF_BANK , READ , READ } : begin if (ck_cntr - ck_read < TCCD) $display ("%m: at time %t ERROR: tCCD violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_BANK , READ , READ } : begin if (ck_cntr - ck_group_read[bank[1]] < TCCD) $display ("%m: at time %t ERROR: tCCD violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'b1, DIFF_GROUP, READ , WRITE } : ; // tRTW is checked outside this task + {1'b1, DIFF_GROUP, READ , READ } : begin if (ck_cntr - ck_read < TCCD_DG) $display ("%m: at time %t ERROR: tCCD_DG violation during %s to bank %d", $time, cmd_string[cmd], bank); end + {1'bx, DIFF_BANK , READ , PWR_DOWN } : begin if (ck_cntr - ck_read < read_latency + 5) $display ("%m: at time %t ERROR: tRDPDEN violation during %s", $time, cmd_string[cmd]); end + + // zq + {1'bx, DIFF_BANK , ZQ , LOAD_MODE} : ; // 1 tCK + {1'bx, DIFF_BANK , ZQ , REFRESH } , + {1'bx, DIFF_BANK , ZQ , PRECHARGE} , + {1'bx, DIFF_BANK , ZQ , ACTIVATE } , + {1'bx, DIFF_BANK , ZQ , ZQ } , + {1'bx, DIFF_BANK , ZQ , PWR_DOWN } , + {1'bx, DIFF_BANK , ZQ , SELF_REF } : begin if (ck_cntr - ck_zqinit < TZQINIT) $display ("%m: at time %t ERROR: tZQinit violation during %s", $time, cmd_string[cmd]); + if (ck_cntr - ck_zqoper < TZQOPER) $display ("%m: at time %t ERROR: tZQoper violation during %s", $time, cmd_string[cmd]); + if (ck_cntr - ck_zqcs < TZQCS) $display ("%m: at time %t ERROR: tZQCS violation during %s", $time, cmd_string[cmd]); end + + // power down + {1'bx, DIFF_BANK , PWR_DOWN , LOAD_MODE} , + {1'bx, DIFF_BANK , PWR_DOWN , REFRESH } , + {1'bx, DIFF_BANK , PWR_DOWN , PRECHARGE} , + {1'bx, DIFF_BANK , PWR_DOWN , ACTIVATE } , + {1'bx, DIFF_BANK , PWR_DOWN , WRITE } , + {1'bx, DIFF_BANK , PWR_DOWN , ZQ } : begin if (($time - tm_power_down < TXP) || (ck_cntr - ck_power_down < TXP_TCK)) $display ("%m: at time %t ERROR: tXP violation during %s", $time, cmd_string[cmd]); end + {1'bx, DIFF_BANK , PWR_DOWN , READ } : begin if (($time - tm_power_down < TXP) || (ck_cntr - ck_power_down < TXP_TCK)) $display ("%m: at time %t ERROR: tXP violation during %s", $time, cmd_string[cmd]); + else if (($time - tm_slow_exit_pd < TXPDLL) || (ck_cntr - ck_slow_exit_pd < TXPDLL_TCK)) $display ("%m: at time %t ERROR: tXPDLL violation during %s", $time, cmd_string[cmd]); end + {1'bx, DIFF_BANK , PWR_DOWN , PWR_DOWN } , + {1'bx, DIFF_BANK , PWR_DOWN , SELF_REF } : begin if (($time - tm_power_down < TXP) || (ck_cntr - ck_power_down < TXP_TCK)) $display ("%m: at time %t ERROR: tXP violation during %s", $time, cmd_string[cmd]); + if ((tm_power_down > tm_refresh) && ($time - tm_refresh < TRFC_MIN)) $display ("%m: at time %t ERROR: tRFC violation during %s", $time, cmd_string[cmd]); + if ((tm_refresh > tm_power_down) && (($time - tm_power_down < TXPDLL) || (ck_cntr - ck_power_down < TXPDLL_TCK))) $display ("%m: at time %t ERROR: tXPDLL violation during %s", $time, cmd_string[cmd]); + if (($time - tm_cke_cmd < TCKE) || (ck_cntr - ck_cke_cmd < TCKE_TCK)) $display ("%m: at time %t ERROR: tCKE violation on CKE", $time); end + + // self refresh + {1'bx, DIFF_BANK , SELF_REF , LOAD_MODE} , + {1'bx, DIFF_BANK , SELF_REF , REFRESH } , + {1'bx, DIFF_BANK , SELF_REF , PRECHARGE} , + {1'bx, DIFF_BANK , SELF_REF , ACTIVATE } , + {1'bx, DIFF_BANK , SELF_REF , WRITE } , + {1'bx, DIFF_BANK , SELF_REF , ZQ } : begin if (($time - tm_self_refresh < TXS) || (ck_cntr - ck_self_refresh < TXS_TCK)) $display ("%m: at time %t ERROR: tXS violation during %s", $time, cmd_string[cmd]); end + {1'bx, DIFF_BANK , SELF_REF , READ } : begin if (ck_cntr - ck_self_refresh < TXSDLL) $display ("%m: at time %t ERROR: tXSDLL violation during %s", $time, cmd_string[cmd]); end + {1'bx, DIFF_BANK , SELF_REF , PWR_DOWN } , + {1'bx, DIFF_BANK , SELF_REF , SELF_REF } : begin if (($time - tm_self_refresh < TXS) || (ck_cntr - ck_self_refresh < TXS_TCK)) $display ("%m: at time %t ERROR: tXS violation during %s", $time, cmd_string[cmd]); + if (($time - tm_cke_cmd < TCKE) || (ck_cntr - ck_cke_cmd < TCKE_TCK)) $display ("%m: at time %t ERROR: tCKE violation on CKE", $time); end + endcase + end + endtask + + task cmd_task; + input cke; + input [2:0] cmd; + input [BA_BITS-1:0] bank; + input [ADDR_BITS-1:0] addr; + reg [`BANKS:0] i; + integer j; + reg [`BANKS:0] tfaw_cntr; + reg [COL_BITS-1:0] col; + reg group; + begin + // tRFC max check + if (!er_trfc_max && !in_self_refresh) begin + if ($time - tm_refresh > TRFC_MAX && check_strict_timing) begin + $display ("%m: at time %t ERROR: tRFC maximum violation during %s", $time, cmd_string[cmd]); + er_trfc_max = 1; + end + end + if (cke) begin + if ((cmd < NOP) && (cmd != PRECHARGE)) begin + if (($time - tm_txpr < TXPR) || (ck_cntr - ck_txpr < TXPR_TCK)) + $display ("%m: at time %t ERROR: tXPR violation during %s", $time, cmd_string[cmd]); + for (j=0; j<=SELF_REF; j=j+1) begin + chk_err(SAME_BANK , bank, j, cmd); + chk_err(DIFF_BANK , bank, j, cmd); + chk_err(DIFF_GROUP, bank, j, cmd); + end + end + case (cmd) + LOAD_MODE : begin + if (|odt_pipeline) + $display ("%m: at time %t ERROR: ODTL violation during %s", $time, cmd_string[cmd]); + if (odt_state) + $display ("%m: at time %t ERROR: ODT must be off prior to %s", $time, cmd_string[cmd]); + + if (|active_bank) begin + $display ("%m: at time %t ERROR: %s Failure. All banks must be Precharged.", $time, cmd_string[cmd]); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d", $time, cmd_string[cmd], bank); + if (bank>>2) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved bank bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + case (bank) + 0 : begin + // Burst Length + if (addr[1:0] == 2'b00) begin + burst_length = 8; + blotf = 0; + truebl4 = 0; + if (DEBUG) $display ("%m: at time %t INFO: %s %d Burst Length = %d", $time, cmd_string[cmd], bank, burst_length); + end else if (addr[1:0] == 2'b01) begin + burst_length = 8; + blotf = 1; + truebl4 = 0; + if (DEBUG) $display ("%m: at time %t INFO: %s %d Burst Length = Select via A12", $time, cmd_string[cmd], bank); + end else if (addr[1:0] == 2'b10) begin + burst_length = 4; + blotf = 0; + truebl4 = 0; + if (DEBUG) $display ("%m: at time %t INFO: %s %d Burst Length = Fixed %d (chop)", $time, cmd_string[cmd], bank, burst_length); + end else if (feature_truebl4 && (addr[1:0] == 2'b11)) begin + burst_length = 4; + blotf = 0; + truebl4 = 1; + if (DEBUG) $display ("%m: at time %t INFO: %s %d Burst Length = True %d", $time, cmd_string[cmd], bank, burst_length); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Burst Length = %d", $time, cmd_string[cmd], bank, addr[1:0]); + end + // Burst Order + burst_order = addr[3]; + if (!burst_order) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Burst Order = Sequential", $time, cmd_string[cmd], bank); + end else if (burst_order) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Burst Order = Interleaved", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Burst Order = %d", $time, cmd_string[cmd], bank, burst_order); + end + // CAS Latency + cas_latency = {addr[2],addr[6:4]} + 4; + set_latency; + if ((cas_latency >= CL_MIN) && (cas_latency <= CL_MAX)) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d CAS Latency = %d", $time, cmd_string[cmd], bank, cas_latency); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal CAS Latency = %d", $time, cmd_string[cmd], bank, cas_latency); + end + // Reserved + if (addr[7] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + // DLL Reset + dll_reset = addr[8]; + if (!dll_reset) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d DLL Reset = Normal", $time, cmd_string[cmd], bank); + end else if (dll_reset) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d DLL Reset = Reset DLL", $time, cmd_string[cmd], bank); + dll_locked = 0; + init_dll_reset = 1; + ck_dll_reset <= ck_cntr; + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal DLL Reset = %d", $time, cmd_string[cmd], bank, dll_reset); + end + + // Write Recovery + if (addr[11:9] == 0) begin + write_recovery = 16; + end else if (addr[11:9] < 4) begin + write_recovery = addr[11:9] + 4; + end else begin + write_recovery = 2*addr[11:9]; + end + + if ((write_recovery >= WR_MIN) && (write_recovery <= WR_MAX)) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Write Recovery = %d", $time, cmd_string[cmd], bank, write_recovery); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Write Recovery = %d", $time, cmd_string[cmd], bank, write_recovery); + end + // Power Down Mode + low_power = !addr[12]; + if (!low_power) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Power Down Mode = DLL on", $time, cmd_string[cmd], bank); + end else if (low_power) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Power Down Mode = DLL off", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Power Down Mode = %d", $time, cmd_string[cmd], bank, low_power); + end + // Reserved + if (ADDR_BITS>13 && addr[13] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + end + 1 : begin + // DLL Enable + dll_en = !addr[0]; + if (!dll_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d DLL Enable = Disabled", $time, cmd_string[cmd], bank); + if (check_strict_mrbits) $display ("%m: at time %t WARNING: %s %d DLL off mode is not modeled", $time, cmd_string[cmd], bank); + end else if (dll_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d DLL Enable = Enabled", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal DLL Enable = %d", $time, cmd_string[cmd], bank, dll_en); + end + // Output Drive Strength + if ({addr[5], addr[1]} == 2'b00) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Output Drive Strength = %d Ohm", $time, cmd_string[cmd], bank, RZQ/6); + end else if ({addr[5], addr[1]} == 2'b01) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Output Drive Strength = %d Ohm", $time, cmd_string[cmd], bank, RZQ/7); + end else if ({addr[5], addr[1]} == 2'b11) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Output Drive Strength = %d Ohm", $time, cmd_string[cmd], bank, RZQ/5); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Output Drive Strength = %d", $time, cmd_string[cmd], bank, {addr[5], addr[1]}); + end + // ODT Rtt (Rtt_NOM) + odt_rtt_nom = {addr[9], addr[6], addr[2]}; + if (odt_rtt_nom == 3'b000) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d ODT Rtt = Disabled", $time, cmd_string[cmd], bank); + odt_en = 0; + end else if ((odt_rtt_nom < 4) || ((!addr[7] || (addr[7] && addr[12])) && (odt_rtt_nom < 6))) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d ODT Rtt = %d Ohm", $time, cmd_string[cmd], bank, get_rtt_nom(odt_rtt_nom)); + odt_en = 1; + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal ODT Rtt = %d", $time, cmd_string[cmd], bank, odt_rtt_nom); + odt_en = 0; + end + // Report the additive latency value + al = addr[4:3]; + set_latency; + if (al == 0) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Additive Latency = %d", $time, cmd_string[cmd], bank, al); + end else if ((al >= AL_MIN) && (al <= AL_MAX)) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Additive Latency = CL - %d", $time, cmd_string[cmd], bank, al); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Additive Latency = %d", $time, cmd_string[cmd], bank, al); + end + // Write Levelization + write_levelization = addr[7]; + if (!write_levelization) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Write Levelization = Disabled", $time, cmd_string[cmd], bank); + end else if (write_levelization) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Write Levelization = Enabled", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Write Levelization = %d", $time, cmd_string[cmd], bank, write_levelization); + end + // Reserved + if (addr[8] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + // Reserved + if (addr[10] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + // TDQS Enable + tdqs_en = addr[11]; + if (!tdqs_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d TDQS Enable = Disabled", $time, cmd_string[cmd], bank); + end else if (tdqs_en) begin + if (8 == DQ_BITS) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d TDQS Enable = Enabled", $time, cmd_string[cmd], bank); + end + else begin + $display ("%m: at time %t WARNING: %s %d Illegal TDQS Enable. TDQS only exists on a x8 part", $time, cmd_string[cmd], bank); + tdqs_en = 0; + end + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal TDQS Enable = %d", $time, cmd_string[cmd], bank, tdqs_en); + end + // Output Enable + out_en = !addr[12]; + if (!out_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Qoff = Disabled", $time, cmd_string[cmd], bank); + end else if (out_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Qoff = Enabled", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Qoff = %d", $time, cmd_string[cmd], bank, out_en); + end + // Reserved + if (ADDR_BITS>13 && addr[13] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + end + 2 : begin + if (feature_pasr) begin + // Partial Array Self Refresh + pasr = addr[2:0]; + case (pasr) + 3'b000 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 0-7", $time, cmd_string[cmd], bank); + 3'b001 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 0-3", $time, cmd_string[cmd], bank); + 3'b010 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 0-1", $time, cmd_string[cmd], bank); + 3'b011 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 0", $time, cmd_string[cmd], bank); + 3'b100 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 2-7", $time, cmd_string[cmd], bank); + 3'b101 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 4-7", $time, cmd_string[cmd], bank); + 3'b110 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 6-7", $time, cmd_string[cmd], bank); + 3'b111 : if (DEBUG) $display ("%m: at time %t INFO: %s %d Partial Array Self Refresh = Bank 7", $time, cmd_string[cmd], bank); + default : $display ("%m: at time %t ERROR: %s %d Illegal Partial Array Self Refresh = %d", $time, cmd_string[cmd], bank, pasr); + endcase + end + else + if (addr[2:0] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + // CAS Write Latency + cas_write_latency = addr[5:3]+5; + set_latency; + if ((cas_write_latency >= CWL_MIN) && (cas_write_latency <= CWL_MAX)) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d CAS Write Latency = %d", $time, cmd_string[cmd], bank, cas_write_latency); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal CAS Write Latency = %d", $time, cmd_string[cmd], bank, cas_write_latency); + end + // Auto Self Refresh Method + asr = addr[6]; + if (!asr) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Auto Self Refresh = Disabled", $time, cmd_string[cmd], bank); + end else if (asr) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Auto Self Refresh = Enabled", $time, cmd_string[cmd], bank); + if (check_strict_mrbits) $display ("%m: at time %t WARNING: %s %d Auto Self Refresh is not modeled", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Auto Self Refresh = %d", $time, cmd_string[cmd], bank, asr); + end + // Self Refresh Temperature + srt = addr[7]; + if (!srt) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Self Refresh Temperature = Normal", $time, cmd_string[cmd], bank); + end else if (srt) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Self Refresh Temperature = Extended", $time, cmd_string[cmd], bank); + if (check_strict_mrbits) $display ("%m: at time %t WARNING: %s %d Self Refresh Temperature is not modeled", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Self Refresh Temperature = %d", $time, cmd_string[cmd], bank, srt); + end + if (asr && srt) + $display ("%m: at time %t ERROR: %s %d SRT must be set to 0 when ASR is enabled.", $time, cmd_string[cmd], bank); + // Reserved + if (addr[8] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + // Dynamic ODT (Rtt_WR) + odt_rtt_wr = addr[10:9]; + if (odt_rtt_wr == 2'b00) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Dynamic ODT = Disabled", $time, cmd_string[cmd], bank); + dyn_odt_en = 0; + end else if ((odt_rtt_wr > 0) && (odt_rtt_wr < 3)) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d Dynamic ODT Rtt = %d Ohm", $time, cmd_string[cmd], bank, get_rtt_wr(odt_rtt_wr)); + dyn_odt_en = 1; + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal Dynamic ODT = %d", $time, cmd_string[cmd], bank, odt_rtt_wr); + dyn_odt_en = 0; + end + // Reserved + if (ADDR_BITS>13 && addr[13:11] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + end + 3 : begin + mpr_select = addr[1:0]; + // MultiPurpose Register Select + if (mpr_select == 2'b00) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d MultiPurpose Register Select = Pre-defined pattern", $time, cmd_string[cmd], bank); + end else begin + if (check_strict_mrbits) $display ("%m: at time %t ERROR: %s %d Illegal MultiPurpose Register Select = %d", $time, cmd_string[cmd], bank, mpr_select); + end + // MultiPurpose Register Enable + mpr_en = addr[2]; + if (!mpr_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d MultiPurpose Register Enable = Disabled", $time, cmd_string[cmd], bank); + end else if (mpr_en) begin + if (DEBUG) $display ("%m: at time %t INFO: %s %d MultiPurpose Register Enable = Enabled", $time, cmd_string[cmd], bank); + end else begin + $display ("%m: at time %t ERROR: %s %d Illegal MultiPurpose Register Enable = %d", $time, cmd_string[cmd], bank, mpr_en); + end + // Reserved + if (ADDR_BITS>13 && addr[13:3] !== 0 && check_strict_mrbits) begin + $display ("%m: at time %t ERROR: %s %d Illegal value. Reserved address bits must be programmed to zero", $time, cmd_string[cmd], bank); + end + end + endcase + if (dyn_odt_en && write_levelization) + $display ("%m: at time %t ERROR: Dynamic ODT is not available during Write Leveling mode.", $time); + init_mode_reg[bank] = 1; + mode_reg[bank] = addr; + tm_load_mode <= $time; + ck_load_mode <= ck_cntr; + end + end + REFRESH : begin + if (mpr_en) begin + $display ("%m: at time %t ERROR: %s Failure. Multipurpose Register must be disabled.", $time, cmd_string[cmd]); + if (STOP_ON_ERROR) $stop(0); + end else if (|active_bank) begin + $display ("%m: at time %t ERROR: %s Failure. All banks must be Precharged.", $time, cmd_string[cmd]); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (DEBUG) $display ("%m: at time %t INFO: %s", $time, cmd_string[cmd]); + er_trfc_max = 0; + ref_cntr = ref_cntr + 1; + tm_refresh <= $time; + ck_refresh <= ck_cntr; + end + end + PRECHARGE : begin + if (addr[AP]) begin + if (DEBUG) $display ("%m: at time %t INFO: %s All", $time, cmd_string[cmd]); + end + // PRECHARGE command will be treated as a NOP if there is no open row in that bank (idle state), + // or if the previously open row is already in the process of precharging + if (|active_bank) begin + if (($time - tm_txpr < TXPR) || (ck_cntr - ck_txpr < TXPR_TCK)) + $display ("%m: at time %t ERROR: tXPR violation during %s", $time, cmd_string[cmd]); + if (mpr_en) begin + $display ("%m: at time %t ERROR: %s Failure. Multipurpose Register must be disabled.", $time, cmd_string[cmd]); + if (STOP_ON_ERROR) $stop(0); + end else begin + for (i=0; i<`BANKS; i=i+1) begin + if (active_bank[i]) begin + if (addr[AP] || (i == bank)) begin + + for (j=0; j<=SELF_REF; j=j+1) begin + chk_err(SAME_BANK, i, j, cmd); + chk_err(DIFF_BANK, i, j, cmd); + end + + if (auto_precharge_bank[i]) begin + $display ("%m: at time %t ERROR: %s Failure. Auto Precharge is scheduled to bank %d.", $time, cmd_string[cmd], i); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (DEBUG) $display ("%m: at time %t INFO: %s bank %d", $time, cmd_string[cmd], i); + active_bank[i] = 1'b0; + tm_bank_precharge[i] <= $time; + tm_precharge <= $time; + ck_precharge <= ck_cntr; + end + end + end + end + end + end + end + ACTIVATE : begin + tfaw_cntr = 0; + for (i=0; i<`BANKS; i=i+1) begin + if ($time - tm_bank_activate[i] < TFAW) begin + tfaw_cntr = tfaw_cntr + 1; + end + end + if (tfaw_cntr > 3) begin + $display ("%m: at time %t ERROR: tFAW violation during %s to bank %d", $time, cmd_string[cmd], bank); + end + + if (mpr_en) begin + $display ("%m: at time %t ERROR: %s Failure. Multipurpose Register must be disabled.", $time, cmd_string[cmd]); + if (STOP_ON_ERROR) $stop(0); + end else if (!init_done) begin + $display ("%m: at time %t ERROR: %s Failure. Initialization sequence is not complete.", $time, cmd_string[cmd]); + if (STOP_ON_ERROR) $stop(0); + end else if (active_bank[bank]) begin + $display ("%m: at time %t ERROR: %s Failure. Bank %d must be Precharged.", $time, cmd_string[cmd], bank); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (addr >= 1< AP + if (col >= 1< AP + if (col >= 1< TPD_MAX) + $display ("%m: at time %t ERROR: tPD maximum violation during Power Down Exit", $time); + if (DEBUG) $display ("%m: at time %t INFO: Power Down Exit", $time); + in_power_down = 0; + if ((active_bank == 0) && low_power) begin // precharge power down with dll off + if (ck_cntr - ck_odt < write_latency - 1) + $display ("%m: at time %t WARNING: tANPD violation during Power Down Exit. Synchronous or asynchronous change in termination resistance is possible.", $time); + tm_slow_exit_pd <= $time; + ck_slow_exit_pd <= ck_cntr; + end + tm_power_down <= $time; + ck_power_down <= ck_cntr; + end + if (in_self_refresh) begin + if (($time - tm_freq_change < TCKSRX) || (ck_cntr - ck_freq_change < TCKSRX_TCK)) + $display ("%m: at time %t ERROR: tCKSRX violation during Self Refresh Exit", $time); + if (ck_cntr - ck_cke_cmd < TCKESR_TCK) + $display ("%m: at time %t ERROR: tCKESR violation during Self Refresh Exit", $time); + if ($time - tm_cke < TISXR) + $display ("%m: at time %t ERROR: tISXR violation during Self Refresh Exit", $time); + if (DEBUG) $display ("%m: at time %t INFO: Self Refresh Exit", $time); + in_self_refresh = 0; + ck_dll_reset <= ck_cntr; + ck_self_refresh <= ck_cntr; + tm_self_refresh <= $time; + tm_refresh <= $time; + end + end + endcase + if ((prev_cke !== 1) && (cmd !== NOP)) begin + $display ("%m: at time %t ERROR: NOP or Deselect is required when CKE goes active.", $time); + end + + if (!init_done) begin + case (init_step) + 0 : begin + if ($time - tm_rst_n < 500000000 && check_strict_timing) + $display ("%m at time %t WARNING: 500 us is required after RST_N goes inactive before CKE goes active.", $time); + tm_txpr <= $time; + ck_txpr <= ck_cntr; + init_step = init_step + 1; + end + 1 : if (dll_en) init_step = init_step + 1; + 2 : begin + if (&init_mode_reg && init_dll_reset && zq_set) begin + if (DEBUG) $display ("%m: at time %t INFO: Initialization Sequence is complete", $time); + init_done = 1; + end + end + endcase + end + end else if (prev_cke) begin + if ((!init_done) && (init_step > 1)) begin + $display ("%m: at time %t ERROR: CKE must remain active until the initialization sequence is complete.", $time); + if (STOP_ON_ERROR) $stop(0); + end + case (cmd) + REFRESH : begin + if ($time - tm_txpr < TXPR) + $display ("%m: at time %t ERROR: tXPR violation during %s", $time, cmd_string[SELF_REF]); + for (j=0; j<=SELF_REF; j=j+1) begin + chk_err(DIFF_BANK, bank, j, SELF_REF); + end + + if (mpr_en) begin + $display ("%m: at time %t ERROR: Self Refresh Failure. Multipurpose Register must be disabled.", $time); + if (STOP_ON_ERROR) $stop(0); + end else if (|active_bank) begin + $display ("%m: at time %t ERROR: Self Refresh Failure. All banks must be Precharged.", $time); + if (STOP_ON_ERROR) $stop(0); + end else if (odt_state) begin + $display ("%m: at time %t ERROR: Self Refresh Failure. ODT must be off prior to entering Self Refresh", $time); + if (STOP_ON_ERROR) $stop(0); + end else if (!init_done) begin + $display ("%m: at time %t ERROR: Self Refresh Failure. Initialization sequence is not complete.", $time); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (DEBUG) $display ("%m: at time %t INFO: Self Refresh Enter", $time); + if (feature_pasr) + // Partial Array Self Refresh + case (pasr) + 3'b000 : ;//keep Bank 0-7 + 3'b001 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 4-7 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'hF0); end + 3'b010 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 2-7 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'hFC); end + 3'b011 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 1-7 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'hFE); end + 3'b100 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 0-1 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'h03); end + 3'b101 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 0-3 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'h0F); end + 3'b110 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 0-5 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'h3F); end + 3'b111 : begin if (DEBUG) $display("%m: at time %t INFO: Banks 0-6 will be lost due to Partial Array Self Refresh", $time); erase_banks(8'h7F); end + endcase + in_self_refresh = 1; + dll_locked = 0; + end + end + NOP : begin + // entering precharge power down with dll off and tANPD has not been satisfied + if (low_power && (active_bank == 0) && |odt_pipeline) + $display ("%m: at time %t WARNING: tANPD violation during %s. Synchronous or asynchronous change in termination resistance is possible.", $time, cmd_string[PWR_DOWN]); + if ($time - tm_txpr < TXPR) + $display ("%m: at time %t ERROR: tXPR violation during %s", $time, cmd_string[PWR_DOWN]); + for (j=0; j<=SELF_REF; j=j+1) begin + chk_err(DIFF_BANK, bank, j, PWR_DOWN); + end + + if (mpr_en) begin + $display ("%m: at time %t ERROR: Power Down Failure. Multipurpose Register must be disabled.", $time); + if (STOP_ON_ERROR) $stop(0); + end else if (!init_done) begin + $display ("%m: at time %t ERROR: Power Down Failure. Initialization sequence is not complete.", $time); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (DEBUG) begin + if (|active_bank) begin + $display ("%m: at time %t INFO: Active Power Down Enter", $time); + end else begin + $display ("%m: at time %t INFO: Precharge Power Down Enter", $time); + end + end + in_power_down = 1; + end + end + default : begin + $display ("%m: at time %t ERROR: NOP, Deselect, or Refresh is required when CKE goes inactive.", $time); + end + endcase + end else if (in_self_refresh || in_power_down) begin + if ((ck_cntr - ck_cke_cmd <= TCPDED) && (cmd !== NOP)) + $display ("%m: at time %t ERROR: tCPDED violation during Power Down or Self Refresh Entry. NOP or Deselect is required.", $time); + end + prev_cke = cke; + + end + endtask + + task data_task; + reg [BA_BITS-1:0] bank; + reg [ROW_BITS-1:0] row; + reg [COL_BITS-1:0] col; + integer i; + integer j; + begin + + if (diff_ck) begin + for (i=0; i<32; i=i+1) begin + if (dq_in_valid && dll_locked && ($time - tm_dqs_neg[i] < $rtoi(TDSS*tck_avg))) + $display ("%m: at time %t ERROR: tDSS violation on %s bit %d", $time, dqs_string[i/16], i%16); + if (check_write_dqs_high[i]) + $display ("%m: at time %t ERROR: %s bit %d latching edge required during the preceding clock period.", $time, dqs_string[i/16], i%16); + end + check_write_dqs_high <= 0; + end else begin + for (i=0; i<32; i=i+1) begin + if (dll_locked && dq_in_valid) begin + tm_tdqss = abs_value(1.0*tm_ck_pos - tm_dqss_pos[i]); + if ((tm_tdqss < tck_avg/2.0) && (tm_tdqss > TDQSS*tck_avg)) + $display ("%m: at time %t ERROR: tDQSS violation on %s bit %d", $time, dqs_string[i/16], i%16); + end + if (check_write_dqs_low[i]) + $display ("%m: at time %t ERROR: %s bit %d latching edge required during the preceding clock period", $time, dqs_string[i/16], i%16); + end + check_write_preamble <= 0; + check_write_postamble <= 0; + check_write_dqs_low <= 0; + end + + if (wr_pipeline[0] || rd_pipeline[0]) begin + bank = ba_pipeline[0]; + row = row_pipeline[0]; + col = col_pipeline[0]; + burst_cntr = 0; + memory_read(bank, row, col, memory_data); + end + + // burst counter + if (burst_cntr < burst_length) begin + burst_position = col ^ burst_cntr; + if (!burst_order) begin + burst_position[BO_BITS-1:0] = col + burst_cntr; + end + burst_cntr = burst_cntr + 1; + end + + // write dqs counter + if (wr_pipeline[WDQS_PRE + 1]) begin + wdqs_cntr = WDQS_PRE + bl_pipeline[WDQS_PRE + 1] + WDQS_PST - 1; + end + // write dqs + if ((wr_pipeline[2]) && (wdq_cntr == 0)) begin //write preamble + check_write_preamble <= ({DQS_BITS{1'b1}}<<16) | {DQS_BITS{1'b1}}; + end + if (wdqs_cntr > 1) begin // write data + if ((wdqs_cntr - WDQS_PST)%2) begin + check_write_dqs_high <= ({DQS_BITS{1'b1}}<<16) | {DQS_BITS{1'b1}}; + end else begin + check_write_dqs_low <= ({DQS_BITS{1'b1}}<<16) | {DQS_BITS{1'b1}}; + end + end + if (wdqs_cntr == WDQS_PST) begin // write postamble + check_write_postamble <= ({DQS_BITS{1'b1}}<<16) | {DQS_BITS{1'b1}}; + end + if (wdqs_cntr > 0) begin + wdqs_cntr = wdqs_cntr - 1; + end + + // write dq + if (dq_in_valid) begin // write data + bit_mask = 0; + if (diff_ck) begin + for (i=0; i>(burst_position*DQ_BITS); + if (DEBUG) $display ("%m: at time %t INFO: WRITE @ DQS= bank = %h row = %h col = %h data = %h",$time, bank, row, (-1*BL_MAX & col) + burst_position, dq_temp); + if (burst_cntr%BL_MIN == 0) begin + memory_write(bank, row, col, memory_data); + end + end + if (wr_pipeline[1]) begin + wdq_cntr = bl_pipeline[1]; + end + if (wdq_cntr > 0) begin + wdq_cntr = wdq_cntr - 1; + dq_in_valid = 1'b1; + end else begin + dq_in_valid = 1'b0; + dqs_in_valid <= 1'b0; + for (i=0; i<31; i=i+1) begin + wdqs_pos_cntr[i] <= 0; + end + end + if (wr_pipeline[0]) begin + b2b_write <= 1'b0; + end + if (wr_pipeline[2]) begin + if (dqs_in_valid) begin + b2b_write <= 1'b1; + end + dqs_in_valid <= 1'b1; + wr_burst_length = bl_pipeline[2]; + end + + // read dqs enable counter + if (rd_pipeline[RDQSEN_PRE]) begin + rdqsen_cntr = RDQSEN_PRE + bl_pipeline[RDQSEN_PRE] + RDQSEN_PST - 1; + end + if (rdqsen_cntr > 0) begin + rdqsen_cntr = rdqsen_cntr - 1; + dqs_out_en = 1'b1; + end else begin + dqs_out_en = 1'b0; + end + + // read dqs counter + if (rd_pipeline[RDQS_PRE]) begin + rdqs_cntr = RDQS_PRE + bl_pipeline[RDQS_PRE] + RDQS_PST - 1; + end + // read dqs + if (((rd_pipeline>>1 & {RDQS_PRE{1'b1}}) > 0) && (rdq_cntr == 0)) begin //read preamble + dqs_out = 1'b0; + end else if (rdqs_cntr > RDQS_PST) begin // read data + dqs_out = rdqs_cntr - RDQS_PST; + end else if (rdqs_cntr > 0) begin // read postamble + dqs_out = 1'b0; + end else begin + dqs_out = 1'b1; + end + if (rdqs_cntr > 0) begin + rdqs_cntr = rdqs_cntr - 1; + end + + // read dq enable counter + if (rd_pipeline[RDQEN_PRE]) begin + rdqen_cntr = RDQEN_PRE + bl_pipeline[RDQEN_PRE] + RDQEN_PST; + end + if (rdqen_cntr > 0) begin + rdqen_cntr = rdqen_cntr - 1; + dq_out_en = 1'b1; + end else begin + dq_out_en = 1'b0; + end + // read dq + if (rd_pipeline[0]) begin + rdq_cntr = bl_pipeline[0]; + end + if (rdq_cntr > 0) begin // read data + if (mpr_en) begin +`ifdef MPR_DQ0 // DQ0 output MPR data, other DQ low + if (mpr_select == 2'b00) begin // Calibration Pattern + dq_temp = {DQS_BITS{{`DQ_PER_DQS-1{1'b0}}, calibration_pattern[burst_position]}}; + end else if (odts_readout && (mpr_select == 2'b11)) begin // Temp Sensor (ODTS) + dq_temp = {DQS_BITS{{`DQ_PER_DQS-1{1'b0}}, temp_sensor[burst_position]}}; + end else begin // Reserved + dq_temp = {DQS_BITS{{`DQ_PER_DQS-1{1'b0}}, 1'bx}}; + end +`else // all DQ output MPR data + if (mpr_select == 2'b00) begin // Calibration Pattern + dq_temp = {DQS_BITS{{`DQ_PER_DQS{calibration_pattern[burst_position]}}}}; + end else if (odts_readout && (mpr_select == 2'b11)) begin // Temp Sensor (ODTS) + dq_temp = {DQS_BITS{{`DQ_PER_DQS{temp_sensor[burst_position]}}}}; + end else begin // Reserved + dq_temp = {DQS_BITS{{`DQ_PER_DQS{1'bx}}}}; + end +`endif + if (DEBUG) $display ("%m: at time %t READ @ DQS MultiPurpose Register %d, col = %d, data = %b", $time, mpr_select, burst_position, dq_temp[0]); + end else begin + dq_temp = memory_data>>(burst_position*DQ_BITS); + if (DEBUG) $display ("%m: at time %t INFO: READ @ DQS= bank = %h row = %h col = %h data = %h",$time, bank, row, (-1*BL_MAX & col) + burst_position, dq_temp); + end + dq_out = dq_temp; + rdq_cntr = rdq_cntr - 1; + end else begin + dq_out = {DQ_BITS{1'b1}}; + end + + // delay signals prior to output + if (RANDOM_OUT_DELAY && (dqs_out_en || (|dqs_out_en_dly) || dq_out_en || (|dq_out_en_dly))) begin + for (i=0; i dqsck[i] + TQH*tck_avg + TDQSQ) begin + dqsck_max = dqsck[i] + TQH*tck_avg + TDQSQ; + end + dqsck_min = -1*TDQSCK; + if (dqsck_min < dqsck[i] - TQH*tck_avg - TDQSQ) begin + dqsck_min = dqsck[i] - TQH*tck_avg - TDQSQ; + end + + // DQSQ requirements + // 1.) less than tDQSQ + // 2.) greater than 0 + // 3.) greater than tQH from the previous DQS edge + dqsq_min = 0; + if (dqsq_min < dqsck[i] - TQH*tck_avg) begin + dqsq_min = dqsck[i] - TQH*tck_avg; + end + if (dqsck_min == dqsck_max) begin + dqsck[i] = dqsck_min; + end else begin + dqsck[i] = $dist_uniform(seed, dqsck_min, dqsck_max); + end + dqsq_max = TDQSQ + dqsck[i]; + + dqs_out_en_dly[i] <= #(tck_avg/2) dqs_out_en; + dqs_out_dly[i] <= #(tck_avg/2 + dqsck[i]) dqs_out; + if (!write_levelization) begin + for (j=0; j<`DQ_PER_DQS; j=j+1) begin + dq_out_en_dly[i*`DQ_PER_DQS + j] <= #(tck_avg/2) dq_out_en; + if (dqsq_min == dqsq_max) begin + dq_out_dly [i*`DQ_PER_DQS + j] <= #(tck_avg/2 + dqsq_min) dq_out[i*`DQ_PER_DQS + j]; + end else begin + dq_out_dly [i*`DQ_PER_DQS + j] <= #(tck_avg/2 + $dist_uniform(seed, dqsq_min, dqsq_max)) dq_out[i*`DQ_PER_DQS + j]; + end + end + end + end + end else begin + out_delay = tck_avg/2; + dqs_out_en_dly <= #(out_delay) {DQS_BITS{dqs_out_en}}; + dqs_out_dly <= #(out_delay) {DQS_BITS{dqs_out }}; + if (write_levelization !== 1'b1) begin + dq_out_en_dly <= #(out_delay) {DQ_BITS {dq_out_en }}; + dq_out_dly <= #(out_delay) {DQ_BITS {dq_out }}; + end + end + end + endtask + + always @ (posedge rst_n_in) begin : reset + integer i; + if (rst_n_in) begin + if ($time < 200000000 && check_strict_timing) + $display ("%m at time %t WARNING: 200 us is required before RST_N goes inactive.", $time); + if (cke_in !== 1'b0) + $display ("%m: at time %t ERROR: CKE must be inactive when RST_N goes inactive.", $time); + if ($time - tm_cke < 10000) + $display ("%m: at time %t ERROR: CKE must be maintained inactive for 10 ns before RST_N goes inactive.", $time); + + // clear memory +`ifdef MAX_MEM + // verification group does not erase memory + // for (banki = 0; banki < `BANKS; banki = banki + 1) begin + // $fclose(memfd[banki]); + // memfd[banki] = open_bank_file(banki); + // end +`else + memory_used <= 0; //erase memory +`endif + + end + end + + always @(negedge rst_n_in or posedge diff_ck or negedge diff_ck) begin : main + integer i; + if (!rst_n_in) begin + reset_task; + end else begin + if (!in_self_refresh && (diff_ck !== 1'b0) && (diff_ck !== 1'b1)) + $display ("%m: at time %t ERROR: CK and CK_N are not allowed to go to an unknown state.", $time); + data_task; + + // Clock Frequency Change is legal: + // 1.) During Self Refresh + // 2.) During Precharge Power Down (DLL on or off) + if (in_self_refresh || (in_power_down && (active_bank == 0))) begin + if (diff_ck) begin + tjit_per_rtime = $time - tm_ck_pos - tck_avg; + end else begin + tjit_per_rtime = $time - tm_ck_neg - tck_avg; + end + if (dll_locked && (abs_value(tjit_per_rtime) > TJIT_PER)) begin + if ((tm_ck_pos - tm_cke_cmd < TCKSRE) || (ck_cntr - ck_cke_cmd < TCKSRE_TCK)) + $display ("%m: at time %t ERROR: tCKSRE violation during Self Refresh or Precharge Power Down Entry", $time); + if (odt_state) begin + $display ("%m: at time %t ERROR: Clock Frequency Change Failure. ODT must be off prior to Clock Frequency Change.", $time); + if (STOP_ON_ERROR) $stop(0); + end else begin + if (DEBUG) $display ("%m: at time %t INFO: Clock Frequency Change detected. DLL Reset is Required.", $time); + tm_freq_change <= $time; + ck_freq_change <= ck_cntr; + dll_locked = 0; + end + end + end + + if (diff_ck) begin + // check setup of command signals + if ($time > TIS) begin + if ($time - tm_cke < TIS) + $display ("%m: at time %t ERROR: tIS violation on CKE by %t", $time, tm_cke + TIS - $time); + if (cke_in) begin + for (i=0; i<22; i=i+1) begin + if ($time - tm_cmd_addr[i] < TIS) + $display ("%m: at time %t ERROR: tIS violation on %s by %t", $time, cmd_addr_string[i], tm_cmd_addr[i] + TIS - $time); + end + end + end + + // update current state + if (dll_locked) begin + if (mr_chk == 0) begin + mr_chk = 1; + end else if (init_mode_reg[0] && (mr_chk == 1)) begin + // check CL value against the clock frequency + if (cas_latency*tck_avg < CL_TIME && check_strict_timing) + $display ("%m: at time %t ERROR: CAS Latency = %d is illegal @tCK(avg) = %f", $time, cas_latency, tck_avg); + // check WR value against the clock frequency + if (ceil(write_recovery*tck_avg) < TWR) + $display ("%m: at time %t ERROR: Write Recovery = %d is illegal @tCK(avg) = %f", $time, write_recovery, tck_avg); + // check the CWL value against the clock frequency + if (check_strict_timing) begin + case (cas_write_latency) + 5 : if (tck_avg < 2500.0) $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + 6 : if ((tck_avg < 1875.0) || (tck_avg >= 2500.0)) $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + 7 : if ((tck_avg < 1500.0) || (tck_avg >= 1875.0)) $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + 8 : if ((tck_avg < 1250.0) || (tck_avg >= 1500.0)) $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + 9 : if ((tck_avg < 15e3/14) || (tck_avg >= 1250.0)) $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + 10: if ((tck_avg < 937.5) || (tck_avg >= 15e3/14)) $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + default : $display ("%m: at time %t ERROR: CWL = %d is illegal @tCK(avg) = %f", $time, cas_write_latency, tck_avg); + endcase + // check the CL value against the clock frequency + if (!valid_cl(cas_latency, cas_write_latency)) + $display ("%m: at time %t ERROR: CAS Latency = %d is not valid when CAS Write Latency = %d", $time, cas_latency, cas_write_latency); + end + mr_chk = 2; + end + end else if (!in_self_refresh) begin + mr_chk = 0; + if (ck_cntr - ck_dll_reset == TDLLK) begin + dll_locked = 1; + end + end + + if (|auto_precharge_bank) begin + for (i=0; i<`BANKS; i=i+1) begin + // Write with Auto Precharge Calculation + // 1. Meet minimum tRAS requirement + // 2. Write Latency PLUS BL/2 cycles PLUS WR after Write command + if (write_precharge_bank[i]) begin + if ($time - tm_bank_activate[i] >= TRAS_MIN) begin + if (ck_cntr - ck_bank_write[i] >= write_latency + burst_length/2 + write_recovery) begin + if (DEBUG) $display ("%m: at time %t INFO: Auto Precharge bank %d", $time, i); + write_precharge_bank[i] = 0; + active_bank[i] = 0; + auto_precharge_bank[i] = 0; + tm_bank_precharge[i] = $time; + tm_precharge = $time; + ck_precharge = ck_cntr; + end + end + end + // Read with Auto Precharge Calculation + // 1. Meet minimum tRAS requirement + // 2. Additive Latency plus 4 cycles after Read command + // 3. tRTP after the last 8-bit prefetch + if (read_precharge_bank[i]) begin + if (($time - tm_bank_activate[i] >= TRAS_MIN) && (ck_cntr - ck_bank_read[i] >= additive_latency + TRTP_TCK)) begin + read_precharge_bank[i] = 0; + // In case the internal precharge is pushed out by tRTP, tRP starts at the point where + // the internal precharge happens (not at the next rising clock edge after this event). + if ($time - tm_bank_read_end[i] < TRTP) begin + if (DEBUG) $display ("%m: at time %t INFO: Auto Precharge bank %d", tm_bank_read_end[i] + TRTP, i); + active_bank[i] <= #(tm_bank_read_end[i] + TRTP - $time) 0; + auto_precharge_bank[i] <= #(tm_bank_read_end[i] + TRTP - $time) 0; + tm_bank_precharge[i] <= #(tm_bank_read_end[i] + TRTP - $time) tm_bank_read_end[i] + TRTP; + tm_precharge <= #(tm_bank_read_end[i] + TRTP - $time) tm_bank_read_end[i] + TRTP; + ck_precharge = ck_cntr; + end else begin + if (DEBUG) $display ("%m: at time %t INFO: Auto Precharge bank %d", $time, i); + active_bank[i] = 0; + auto_precharge_bank[i] = 0; + tm_bank_precharge[i] = $time; + tm_precharge = $time; + ck_precharge = ck_cntr; + end + end + end + end + end + + // respond to incoming command + if (cke_in ^ prev_cke) begin + tm_cke_cmd <= $time; + ck_cke_cmd <= ck_cntr; + end + + cmd_task(cke_in, cmd_n_in, ba_in, addr_in); + if ((cmd_n_in == WRITE) || (cmd_n_in == READ)) begin + al_pipeline[2*additive_latency] = 1'b1; + end + if (al_pipeline[0]) begin + // check tRCD after additive latency + if ((rd_pipeline[2*cas_latency - 1]) && ($time - tm_bank_activate[ba_pipeline[2*cas_latency - 1]] < TRCD)) + $display ("%m: at time %t ERROR: tRCD violation during %s", $time, cmd_string[READ]); + if ((wr_pipeline[2*cas_write_latency + 1]) && ($time - tm_bank_activate[ba_pipeline[2*cas_write_latency + 1]] < TRCD)) + $display ("%m: at time %t ERROR: tRCD violation during %s", $time, cmd_string[WRITE]); + // check tWTR after additive latency + if (rd_pipeline[2*cas_latency - 1]) begin //{ + if (truebl4) begin //{ + i = ba_pipeline[2*cas_latency - 1]; + if ($time - tm_group_write_end[i[1]] < TWTR) + $display ("%m: at time %t ERROR: tWTR violation during %s", $time, cmd_string[READ]); + if ($time - tm_write_end < TWTR_DG) + $display ("%m: at time %t ERROR: tWTR_DG violation during %s", $time, cmd_string[READ]); + end else begin + if ($time - tm_write_end < TWTR) + $display ("%m: at time %t ERROR: tWTR violation during %s", $time, cmd_string[READ]); + end + end + end + if (rd_pipeline) begin + if (rd_pipeline[2*cas_latency - 1]) begin + tm_bank_read_end[ba_pipeline[2*cas_latency - 1]] <= $time; + end + end + for (i=0; i<`BANKS; i=i+1) begin + if ((ck_cntr - ck_bank_write[i] > write_latency) && (ck_cntr - ck_bank_write[i] <= write_latency + burst_length/2)) begin + tm_bank_write_end[i] <= $time; + tm_group_write_end[i[1]] <= $time; + tm_write_end <= $time; + end + end + + // clk pin is disabled during self refresh + if (!in_self_refresh && tm_ck_pos ) begin + tjit_cc_time = $time - tm_ck_pos - tck_i; + tck_i = $time - tm_ck_pos; + tck_avg = tck_avg - tck_sample[ck_cntr%TDLLK]/$itor(TDLLK); + tck_avg = tck_avg + tck_i/$itor(TDLLK); + tck_sample[ck_cntr%TDLLK] = tck_i; + tjit_per_rtime = tck_i - tck_avg; + + if (dll_locked && check_strict_timing) begin + // check accumulated error + terr_nper_rtime = 0; + for (i=0; i<12; i=i+1) begin + terr_nper_rtime = terr_nper_rtime + tck_sample[i] - tck_avg; + terr_nper_rtime = abs_value(terr_nper_rtime); + case (i) + 0 :; + 1 : if (terr_nper_rtime - TERR_2PER >= 1.0) $display ("%m: at time %t ERROR: tERR(2per) violation by %f ps.", $time, terr_nper_rtime - TERR_2PER); + 2 : if (terr_nper_rtime - TERR_3PER >= 1.0) $display ("%m: at time %t ERROR: tERR(3per) violation by %f ps.", $time, terr_nper_rtime - TERR_3PER); + 3 : if (terr_nper_rtime - TERR_4PER >= 1.0) $display ("%m: at time %t ERROR: tERR(4per) violation by %f ps.", $time, terr_nper_rtime - TERR_4PER); + 4 : if (terr_nper_rtime - TERR_5PER >= 1.0) $display ("%m: at time %t ERROR: tERR(5per) violation by %f ps.", $time, terr_nper_rtime - TERR_5PER); + 5 : if (terr_nper_rtime - TERR_6PER >= 1.0) $display ("%m: at time %t ERROR: tERR(6per) violation by %f ps.", $time, terr_nper_rtime - TERR_6PER); + 6 : if (terr_nper_rtime - TERR_7PER >= 1.0) $display ("%m: at time %t ERROR: tERR(7per) violation by %f ps.", $time, terr_nper_rtime - TERR_7PER); + 7 : if (terr_nper_rtime - TERR_8PER >= 1.0) $display ("%m: at time %t ERROR: tERR(8per) violation by %f ps.", $time, terr_nper_rtime - TERR_8PER); + 8 : if (terr_nper_rtime - TERR_9PER >= 1.0) $display ("%m: at time %t ERROR: tERR(9per) violation by %f ps.", $time, terr_nper_rtime - TERR_9PER); + 9 : if (terr_nper_rtime - TERR_10PER >= 1.0) $display ("%m: at time %t ERROR: tERR(10per) violation by %f ps.", $time, terr_nper_rtime - TERR_10PER); + 10 : if (terr_nper_rtime - TERR_11PER >= 1.0) $display ("%m: at time %t ERROR: tERR(11per) violation by %f ps.", $time, terr_nper_rtime - TERR_11PER); + 11 : if (terr_nper_rtime - TERR_12PER >= 1.0) $display ("%m: at time %t ERROR: tERR(12per) violation by %f ps.", $time, terr_nper_rtime - TERR_12PER); + endcase + end + + // check tCK min/max/jitter + if (abs_value(tjit_per_rtime) - TJIT_PER >= 1.0) + $display ("%m: at time %t ERROR: tJIT(per) violation by %f ps.", $time, abs_value(tjit_per_rtime) - TJIT_PER); + if (abs_value(tjit_cc_time) - TJIT_CC >= 1.0) + $display ("%m: at time %t ERROR: tJIT(cc) violation by %f ps.", $time, abs_value(tjit_cc_time) - TJIT_CC); + if (TCK_MIN - tck_avg >= 1.0) + $display ("%m: at time %t ERROR: tCK(avg) minimum violation by %f ps.", $time, TCK_MIN - tck_avg); + if (tck_avg - TCK_MAX >= 1.0) + $display ("%m: at time %t ERROR: tCK(avg) maximum violation by %f ps.", $time, tck_avg - TCK_MAX); + + // check tCL + if (tm_ck_neg - $time < TCL_ABS_MIN*tck_avg) + $display ("%m: at time %t ERROR: tCL(abs) minimum violation on CLK by %t", $time, TCL_ABS_MIN*tck_avg - tm_ck_neg + $time); + if (tcl_avg < TCL_AVG_MIN*tck_avg) + $display ("%m: at time %t ERROR: tCL(avg) minimum violation on CLK by %t", $time, TCL_AVG_MIN*tck_avg - tcl_avg); + if (tcl_avg > TCL_AVG_MAX*tck_avg) + $display ("%m: at time %t ERROR: tCL(avg) maximum violation on CLK by %t", $time, tcl_avg - TCL_AVG_MAX*tck_avg); + end + + // calculate the tch avg jitter + tch_avg = tch_avg - tch_sample[ck_cntr%TDLLK]/$itor(TDLLK); + tch_avg = tch_avg + tch_i/$itor(TDLLK); + tch_sample[ck_cntr%TDLLK] = tch_i; + tjit_ch_rtime = tch_i - tch_avg; + duty_cycle = tch_avg/tck_avg; + + // update timers/counters + tcl_i <= $time - tm_ck_neg; + end + + prev_odt <= odt_in; + // update timers/counters + ck_cntr <= ck_cntr + 1; + tm_ck_pos = $time; + end else begin + // clk pin is disabled during self refresh + if (!in_self_refresh) begin + if (dll_locked && check_strict_timing) begin + if ($time - tm_ck_pos < TCH_ABS_MIN*tck_avg) + $display ("%m: at time %t ERROR: tCH(abs) minimum violation on CLK by %t", $time, TCH_ABS_MIN*tck_avg - $time + tm_ck_pos); + if (tch_avg < TCH_AVG_MIN*tck_avg) + $display ("%m: at time %t ERROR: tCH(avg) minimum violation on CLK by %t", $time, TCH_AVG_MIN*tck_avg - tch_avg); + if (tch_avg > TCH_AVG_MAX*tck_avg) + $display ("%m: at time %t ERROR: tCH(avg) maximum violation on CLK by %t", $time, tch_avg - TCH_AVG_MAX*tck_avg); + end + + // calculate the tcl avg jitter + tcl_avg = tcl_avg - tcl_sample[ck_cntr%TDLLK]/$itor(TDLLK); + tcl_avg = tcl_avg + tcl_i/$itor(TDLLK); + tcl_sample[ck_cntr%TDLLK] = tcl_i; + + // update timers/counters + tch_i <= $time - tm_ck_pos; + end + tm_ck_neg = $time; + end + + // on die termination + if (odt_en || dyn_odt_en) begin + // odt pin is disabled during self refresh + if (!in_self_refresh && diff_ck) begin + if ($time - tm_odt < TIS) + $display ("%m: at time %t ERROR: tIS violation on ODT by %t", $time, tm_odt + TIS - $time); + if (prev_odt ^ odt_in) begin + if (!dll_locked) + $display ("%m: at time %t WARNING: tDLLK violation during ODT transition.", $time); + if (($time - tm_load_mode < TMOD) || (ck_cntr - ck_load_mode < TMOD_TCK)) + $display ("%m: at time %t ERROR: tMOD violation during ODT transition", $time); + if (ck_cntr - ck_zqinit < TZQINIT) + $display ("%m: at time %t ERROR: TZQinit violation during ODT transition", $time); + if (ck_cntr - ck_zqoper < TZQOPER) + $display ("%m: at time %t ERROR: TZQoper violation during ODT transition", $time); + if (ck_cntr - ck_zqcs < TZQCS) + $display ("%m: at time %t ERROR: tZQcs violation during ODT transition", $time); + // if (($time - tm_slow_exit_pd < TXPDLL) || (ck_cntr - ck_slow_exit_pd < TXPDLL_TCK)) + // $display ("%m: at time %t ERROR: tXPDLL violation during ODT transition", $time); + if (ck_cntr - ck_self_refresh < TXSDLL) + $display ("%m: at time %t ERROR: tXSDLL violation during ODT transition", $time); + if (in_self_refresh) + $display ("%m: at time %t ERROR: Illegal ODT transition during Self Refresh.", $time); + if (!odt_in && (ck_cntr - ck_odt < ODTH4)) + $display ("%m: at time %t ERROR: ODTH4 violation during ODT transition", $time); + if (!odt_in && (ck_cntr - ck_odth8 < ODTH8)) + $display ("%m: at time %t ERROR: ODTH8 violation during ODT transition", $time); + if (($time - tm_slow_exit_pd < TXPDLL) || (ck_cntr - ck_slow_exit_pd < TXPDLL_TCK)) + $display ("%m: at time %t WARNING: tXPDLL during ODT transition. Synchronous or asynchronous change in termination resistance is possible.", $time); + + // async ODT mode applies: + // 1.) during precharge power down with DLL off + // 2.) if tANPD has not been satisfied + // 3.) until tXPDLL has been satisfied + if ((in_power_down && low_power && (active_bank == 0)) || ($time - tm_slow_exit_pd < TXPDLL) || (ck_cntr - ck_slow_exit_pd < TXPDLL_TCK)) begin + odt_state = odt_in; + if (DEBUG && odt_en) $display ("%m: at time %t INFO: Async On Die Termination Rtt_NOM = %d Ohm", $time, {32{odt_state}} & get_rtt_nom(odt_rtt_nom)); + if (odt_state) begin + odt_state_dly <= #(TAONPD) odt_state; + end else begin + odt_state_dly <= #(TAOFPD) odt_state; + end + // sync ODT mode applies: + // 1.) during normal operation + // 2.) during active power down + // 3.) during precharge power down with DLL on + end else begin + odt_pipeline[2*(write_latency - 2)] = 1'b1; // ODTLon, ODTLoff + end + ck_odt <= ck_cntr; + end + end + if (odt_pipeline[0]) begin + odt_state = ~odt_state; + if (DEBUG && odt_en) $display ("%m: at time %t INFO: Sync On Die Termination Rtt_NOM = %d Ohm", $time, {32{odt_state}} & get_rtt_nom(odt_rtt_nom)); + if (odt_state) begin + odt_state_dly <= #(TAON) odt_state; + end else begin + odt_state_dly <= #(TAOF*tck_avg) odt_state; + end + end + if (rd_pipeline[RDQSEN_PRE]) begin + odt_cntr = 1 + RDQSEN_PRE + bl_pipeline[RDQSEN_PRE] + RDQSEN_PST - 1; + end + if (odt_cntr > 0) begin + if (odt_state) begin + $display ("%m: at time %t ERROR: On Die Termination must be OFF during Read data transfer.", $time); + end + odt_cntr = odt_cntr - 1; + end + if (dyn_odt_en && odt_state) begin + if (DEBUG && (dyn_odt_state ^ dyn_odt_pipeline[0])) + $display ("%m: at time %t INFO: Sync On Die Termination Rtt_WR = %d Ohm", $time, {32{dyn_odt_pipeline[0]}} & get_rtt_wr(odt_rtt_wr)); + dyn_odt_state = dyn_odt_pipeline[0]; + end + dyn_odt_state_dly <= #(TADC*tck_avg) dyn_odt_state; + end + + if (cke_in && write_levelization) begin + for (i=0; i>1; + wr_pipeline = wr_pipeline>>1; + rd_pipeline = rd_pipeline>>1; + for (i=0; i<`MAX_PIPE; i=i+1) begin + bl_pipeline[i] = bl_pipeline[i+1]; + ba_pipeline[i] = ba_pipeline[i+1]; + row_pipeline[i] = row_pipeline[i+1]; + col_pipeline[i] = col_pipeline[i+1]; + end + end + if (|odt_pipeline || |dyn_odt_pipeline) begin + odt_pipeline = odt_pipeline>>1; + dyn_odt_pipeline = dyn_odt_pipeline>>1; + end + end + end + + // receiver(s) + task dqs_even_receiver; + input [3:0] i; + reg [63:0] bit_mask; + begin + bit_mask = {`DQ_PER_DQS{1'b1}}<<(i*`DQ_PER_DQS); + if (dqs_even[i]) begin + if (tdqs_en) begin // tdqs disables dm + dm_in_pos[i] = 1'b0; + end else begin + dm_in_pos[i] = dm_in[i]; + end + dq_in_pos = (dq_in & bit_mask) | (dq_in_pos & ~bit_mask); + end + end + endtask + + always @(posedge dqs_even[ 0]) dqs_even_receiver( 0); + always @(posedge dqs_even[ 1]) dqs_even_receiver( 1); + always @(posedge dqs_even[ 2]) dqs_even_receiver( 2); + always @(posedge dqs_even[ 3]) dqs_even_receiver( 3); + always @(posedge dqs_even[ 4]) dqs_even_receiver( 4); + always @(posedge dqs_even[ 5]) dqs_even_receiver( 5); + always @(posedge dqs_even[ 6]) dqs_even_receiver( 6); + always @(posedge dqs_even[ 7]) dqs_even_receiver( 7); + always @(posedge dqs_even[ 8]) dqs_even_receiver( 8); + always @(posedge dqs_even[ 9]) dqs_even_receiver( 9); + always @(posedge dqs_even[10]) dqs_even_receiver(10); + always @(posedge dqs_even[11]) dqs_even_receiver(11); + always @(posedge dqs_even[12]) dqs_even_receiver(12); + always @(posedge dqs_even[13]) dqs_even_receiver(13); + always @(posedge dqs_even[14]) dqs_even_receiver(14); + always @(posedge dqs_even[15]) dqs_even_receiver(15); + + task dqs_odd_receiver; + input [3:0] i; + reg [63:0] bit_mask; + begin + bit_mask = {`DQ_PER_DQS{1'b1}}<<(i*`DQ_PER_DQS); + if (dqs_odd[i]) begin + if (tdqs_en) begin // tdqs disables dm + dm_in_neg[i] = 1'b0; + end else begin + dm_in_neg[i] = dm_in[i]; + end + dq_in_neg = (dq_in & bit_mask) | (dq_in_neg & ~bit_mask); + end + end + endtask + + always @(posedge dqs_odd[ 0]) dqs_odd_receiver( 0); + always @(posedge dqs_odd[ 1]) dqs_odd_receiver( 1); + always @(posedge dqs_odd[ 2]) dqs_odd_receiver( 2); + always @(posedge dqs_odd[ 3]) dqs_odd_receiver( 3); + always @(posedge dqs_odd[ 4]) dqs_odd_receiver( 4); + always @(posedge dqs_odd[ 5]) dqs_odd_receiver( 5); + always @(posedge dqs_odd[ 6]) dqs_odd_receiver( 6); + always @(posedge dqs_odd[ 7]) dqs_odd_receiver( 7); + always @(posedge dqs_odd[ 8]) dqs_odd_receiver( 8); + always @(posedge dqs_odd[ 9]) dqs_odd_receiver( 9); + always @(posedge dqs_odd[10]) dqs_odd_receiver(10); + always @(posedge dqs_odd[11]) dqs_odd_receiver(11); + always @(posedge dqs_odd[12]) dqs_odd_receiver(12); + always @(posedge dqs_odd[13]) dqs_odd_receiver(13); + always @(posedge dqs_odd[14]) dqs_odd_receiver(14); + always @(posedge dqs_odd[15]) dqs_odd_receiver(15); + + // Processes to check hold and pulse width of control signals + always @(posedge rst_n_in) begin + if ($time > 100000) begin + if (tm_rst_n + 100000 > $time) + $display ("%m: at time %t ERROR: RST_N pulse width violation by %t", $time, tm_rst_n + 100000 - $time); + end + tm_rst_n = $time; + end + always @(cke_in) begin + if (rst_n_in) begin + if ($time > TIH) begin + if ($time - tm_ck_pos < TIH) + $display ("%m: at time %t ERROR: tIH violation on CKE by %t", $time, tm_ck_pos + TIH - $time); + end + if ($time - tm_cke < TIPW) + $display ("%m: at time %t ERROR: tIPW violation on CKE by %t", $time, tm_cke + TIPW - $time); + end + tm_cke = $time; + end + always @(odt_in) begin + if (rst_n_in && odt_en && !in_self_refresh) begin + if ($time - tm_ck_pos < TIH) + $display ("%m: at time %t ERROR: tIH violation on ODT by %t", $time, tm_ck_pos + TIH - $time); + if ($time - tm_odt < TIPW) + $display ("%m: at time %t ERROR: tIPW violation on ODT by %t", $time, tm_odt + TIPW - $time); + end + tm_odt = $time; + end + + task cmd_addr_timing_check; + input i; + reg [4:0] i; + begin + if (rst_n_in && prev_cke) begin + if ((i == 0) && ($time - tm_ck_pos < TIH)) // always check tIH for CS# + $display ("%m: at time %t ERROR: tIH violation on %s by %t", $time, cmd_addr_string[i], tm_ck_pos + TIH - $time); + if ((i > 0) && (cs_n_in == 0) &&($time - tm_ck_pos < TIH)) // Only check tIH for cmd_addr if CS# is low + $display ("%m: at time %t ERROR: tIH violation on %s by %t", $time, cmd_addr_string[i], tm_ck_pos + TIH - $time); + if ($time - tm_cmd_addr[i] < TIPW) + $display ("%m: at time %t ERROR: tIPW violation on %s by %t", $time, cmd_addr_string[i], tm_cmd_addr[i] + TIPW - $time); + end + tm_cmd_addr[i] = $time; + end + endtask + + always @(cs_n_in ) cmd_addr_timing_check( 0); + always @(ras_n_in ) cmd_addr_timing_check( 1); + always @(cas_n_in ) cmd_addr_timing_check( 2); + always @(we_n_in ) cmd_addr_timing_check( 3); + always @(ba_in [ 0]) cmd_addr_timing_check( 4); + always @(ba_in [ 1]) cmd_addr_timing_check( 5); + always @(ba_in [ 2]) cmd_addr_timing_check( 6); + always @(addr_in[ 0]) cmd_addr_timing_check( 7); + always @(addr_in[ 1]) cmd_addr_timing_check( 8); + always @(addr_in[ 2]) cmd_addr_timing_check( 9); + always @(addr_in[ 3]) cmd_addr_timing_check(10); + always @(addr_in[ 4]) cmd_addr_timing_check(11); + always @(addr_in[ 5]) cmd_addr_timing_check(12); + always @(addr_in[ 6]) cmd_addr_timing_check(13); + always @(addr_in[ 7]) cmd_addr_timing_check(14); + always @(addr_in[ 8]) cmd_addr_timing_check(15); + always @(addr_in[ 9]) cmd_addr_timing_check(16); + always @(addr_in[10]) cmd_addr_timing_check(17); + always @(addr_in[11]) cmd_addr_timing_check(18); + always @(addr_in[12]) cmd_addr_timing_check(19); + always @(addr_in[13]) cmd_addr_timing_check(20); + always @(addr_in[14]) cmd_addr_timing_check(21); + always @(addr_in[15]) cmd_addr_timing_check(22); + + // Processes to check setup and hold of data signals + task dm_timing_check; + input i; + reg [3:0] i; + begin + if (dqs_in_valid) begin + if ($time - tm_dqs[i] < TDH) + $display ("%m: at time %t ERROR: tDH violation on DM bit %d by %t", $time, i, tm_dqs[i] + TDH - $time); + if (check_dm_tdipw[i]) begin + if ($time - tm_dm[i] < TDIPW) + $display ("%m: at time %t ERROR: tDIPW violation on DM bit %d by %t", $time, i, tm_dm[i] + TDIPW - $time); + end + end + check_dm_tdipw[i] <= 1'b0; + tm_dm[i] = $time; + end + endtask + + always @(dm_in[ 0]) dm_timing_check( 0); + always @(dm_in[ 1]) dm_timing_check( 1); + always @(dm_in[ 2]) dm_timing_check( 2); + always @(dm_in[ 3]) dm_timing_check( 3); + always @(dm_in[ 4]) dm_timing_check( 4); + always @(dm_in[ 5]) dm_timing_check( 5); + always @(dm_in[ 6]) dm_timing_check( 6); + always @(dm_in[ 7]) dm_timing_check( 7); + always @(dm_in[ 8]) dm_timing_check( 8); + always @(dm_in[ 9]) dm_timing_check( 9); + always @(dm_in[10]) dm_timing_check(10); + always @(dm_in[11]) dm_timing_check(11); + always @(dm_in[12]) dm_timing_check(12); + always @(dm_in[13]) dm_timing_check(13); + always @(dm_in[14]) dm_timing_check(14); + always @(dm_in[15]) dm_timing_check(15); + + task dq_timing_check; + input i; + reg [5:0] i; + begin + if (dqs_in_valid) begin + if ($time - tm_dqs[i/`DQ_PER_DQS] < TDH) + $display ("%m: at time %t ERROR: tDH violation on DQ bit %d by %t", $time, i, tm_dqs[i/`DQ_PER_DQS] + TDH - $time); + if (check_dq_tdipw[i]) begin + if ($time - tm_dq[i] < TDIPW) + $display ("%m: at time %t ERROR: tDIPW violation on DQ bit %d by %t", $time, i, tm_dq[i] + TDIPW - $time); + end + end + check_dq_tdipw[i] <= 1'b0; + tm_dq[i] = $time; + end + endtask + + always @(dq_in[ 0]) dq_timing_check( 0); + always @(dq_in[ 1]) dq_timing_check( 1); + always @(dq_in[ 2]) dq_timing_check( 2); + always @(dq_in[ 3]) dq_timing_check( 3); + always @(dq_in[ 4]) dq_timing_check( 4); + always @(dq_in[ 5]) dq_timing_check( 5); + always @(dq_in[ 6]) dq_timing_check( 6); + always @(dq_in[ 7]) dq_timing_check( 7); + always @(dq_in[ 8]) dq_timing_check( 8); + always @(dq_in[ 9]) dq_timing_check( 9); + always @(dq_in[10]) dq_timing_check(10); + always @(dq_in[11]) dq_timing_check(11); + always @(dq_in[12]) dq_timing_check(12); + always @(dq_in[13]) dq_timing_check(13); + always @(dq_in[14]) dq_timing_check(14); + always @(dq_in[15]) dq_timing_check(15); + always @(dq_in[16]) dq_timing_check(16); + always @(dq_in[17]) dq_timing_check(17); + always @(dq_in[18]) dq_timing_check(18); + always @(dq_in[19]) dq_timing_check(19); + always @(dq_in[20]) dq_timing_check(20); + always @(dq_in[21]) dq_timing_check(21); + always @(dq_in[22]) dq_timing_check(22); + always @(dq_in[23]) dq_timing_check(23); + always @(dq_in[24]) dq_timing_check(24); + always @(dq_in[25]) dq_timing_check(25); + always @(dq_in[26]) dq_timing_check(26); + always @(dq_in[27]) dq_timing_check(27); + always @(dq_in[28]) dq_timing_check(28); + always @(dq_in[29]) dq_timing_check(29); + always @(dq_in[30]) dq_timing_check(30); + always @(dq_in[31]) dq_timing_check(31); + always @(dq_in[32]) dq_timing_check(32); + always @(dq_in[33]) dq_timing_check(33); + always @(dq_in[34]) dq_timing_check(34); + always @(dq_in[35]) dq_timing_check(35); + always @(dq_in[36]) dq_timing_check(36); + always @(dq_in[37]) dq_timing_check(37); + always @(dq_in[38]) dq_timing_check(38); + always @(dq_in[39]) dq_timing_check(39); + always @(dq_in[40]) dq_timing_check(40); + always @(dq_in[41]) dq_timing_check(41); + always @(dq_in[42]) dq_timing_check(42); + always @(dq_in[43]) dq_timing_check(43); + always @(dq_in[44]) dq_timing_check(44); + always @(dq_in[45]) dq_timing_check(45); + always @(dq_in[46]) dq_timing_check(46); + always @(dq_in[47]) dq_timing_check(47); + always @(dq_in[48]) dq_timing_check(48); + always @(dq_in[49]) dq_timing_check(49); + always @(dq_in[50]) dq_timing_check(50); + always @(dq_in[51]) dq_timing_check(51); + always @(dq_in[52]) dq_timing_check(52); + always @(dq_in[53]) dq_timing_check(53); + always @(dq_in[54]) dq_timing_check(54); + always @(dq_in[55]) dq_timing_check(55); + always @(dq_in[56]) dq_timing_check(56); + always @(dq_in[57]) dq_timing_check(57); + always @(dq_in[58]) dq_timing_check(58); + always @(dq_in[59]) dq_timing_check(59); + always @(dq_in[60]) dq_timing_check(60); + always @(dq_in[61]) dq_timing_check(61); + always @(dq_in[62]) dq_timing_check(62); + always @(dq_in[63]) dq_timing_check(63); + + task dqs_pos_timing_check; + input i; + reg [4:0] i; + reg [3:0] j; + begin + if (write_levelization && i<16) begin + if (ck_cntr - ck_load_mode < TWLMRD) + $display ("%m: at time %t ERROR: tWLMRD violation on DQS bit %d positive edge.", $time, i); + if (($time - tm_ck_pos < TWLS) || ($time - tm_ck_neg < TWLS)) + $display ("%m: at time %t WARNING: tWLS violation on DQS bit %d positive edge. Indeterminate CK capture is possible.", $time, i); + if (DEBUG) + $display ("%m: at time %t Write Leveling @ DQS ck = %b", $time, diff_ck); + dq_out_en_dly[i*`DQ_PER_DQS] <= #(TWLO) 1'b1; + dq_out_dly[i*`DQ_PER_DQS] <= #(TWLO) diff_ck; + for (j=1; j<`DQ_PER_DQS; j=j+1) begin + dq_out_en_dly[i*`DQ_PER_DQS+j] <= #(TWLO + TWLOE) 1'b1; + dq_out_dly[i*`DQ_PER_DQS+j] <= #(TWLO + TWLOE) 1'b0; + end + end + if (dqs_in_valid && ((wdqs_pos_cntr[i] < wr_burst_length/2) || b2b_write)) begin + if (dqs_in[i] ^ prev_dqs_in[i]) begin + if (dll_locked) begin + if (check_write_preamble[i]) begin + if ($time - tm_dqs_pos[i] < $rtoi(TWPRE*tck_avg)) + $display ("%m: at time %t ERROR: tWPRE violation on &s bit %d", $time, dqs_string[i/16], i%16); + end else if (check_write_postamble[i]) begin + if ($time - tm_dqs_neg[i] < $rtoi(TWPST*tck_avg)) + $display ("%m: at time %t ERROR: tWPST violation on %s bit %d", $time, dqs_string[i/16], i%16); + end else begin + if ($time - tm_dqs_neg[i] < $rtoi(TDQSL*tck_avg)) + $display ("%m: at time %t ERROR: tDQSL violation on %s bit %d", $time, dqs_string[i/16], i%16); + end + end + if ($time - tm_dm[i%16] < TDS) + $display ("%m: at time %t ERROR: tDS violation on DM bit %d by %t", $time, i, tm_dm[i%16] + TDS - $time); + if (!dq_out_en) begin + for (j=0; j<`DQ_PER_DQS; j=j+1) begin + if ($time - tm_dq[(i%16)*`DQ_PER_DQS+j] < TDS) + $display ("%m: at time %t ERROR: tDS violation on DQ bit %d by %t", $time, i*`DQ_PER_DQS+j, tm_dq[(i%16)*`DQ_PER_DQS+j] + TDS - $time); + check_dq_tdipw[(i%16)*`DQ_PER_DQS+j] <= 1'b1; + end + end + if ((wdqs_pos_cntr[i] < wr_burst_length/2) && !b2b_write) begin + wdqs_pos_cntr[i] <= wdqs_pos_cntr[i] + 1; + end else begin + wdqs_pos_cntr[i] <= 1; + end + check_dm_tdipw[i%16] <= 1'b1; + check_write_preamble[i] <= 1'b0; + check_write_postamble[i] <= 1'b0; + check_write_dqs_low[i] <= 1'b0; + tm_dqs[i%16] <= $time; + end else begin + $display ("%m: at time %t ERROR: Invalid latching edge on %s bit %d", $time, dqs_string[i/16], i%16); + end + end + tm_dqss_pos[i] <= $time; + tm_dqs_pos[i] = $time; + prev_dqs_in[i] <= dqs_in[i]; + end + endtask + + always @(posedge dqs_in[ 0]) dqs_pos_timing_check( 0); + always @(posedge dqs_in[ 1]) dqs_pos_timing_check( 1); + always @(posedge dqs_in[ 2]) dqs_pos_timing_check( 2); + always @(posedge dqs_in[ 3]) dqs_pos_timing_check( 3); + always @(posedge dqs_in[ 4]) dqs_pos_timing_check( 4); + always @(posedge dqs_in[ 5]) dqs_pos_timing_check( 5); + always @(posedge dqs_in[ 6]) dqs_pos_timing_check( 6); + always @(posedge dqs_in[ 7]) dqs_pos_timing_check( 7); + always @(posedge dqs_in[ 8]) dqs_pos_timing_check( 8); + always @(posedge dqs_in[ 9]) dqs_pos_timing_check( 9); + always @(posedge dqs_in[10]) dqs_pos_timing_check(10); + always @(posedge dqs_in[11]) dqs_pos_timing_check(11); + always @(posedge dqs_in[12]) dqs_pos_timing_check(12); + always @(posedge dqs_in[13]) dqs_pos_timing_check(13); + always @(posedge dqs_in[14]) dqs_pos_timing_check(14); + always @(posedge dqs_in[15]) dqs_pos_timing_check(15); + always @(negedge dqs_in[16]) dqs_pos_timing_check(16); + always @(negedge dqs_in[17]) dqs_pos_timing_check(17); + always @(negedge dqs_in[18]) dqs_pos_timing_check(18); + always @(negedge dqs_in[19]) dqs_pos_timing_check(19); + always @(negedge dqs_in[20]) dqs_pos_timing_check(20); + always @(negedge dqs_in[21]) dqs_pos_timing_check(21); + always @(negedge dqs_in[22]) dqs_pos_timing_check(22); + always @(negedge dqs_in[23]) dqs_pos_timing_check(23); + always @(negedge dqs_in[24]) dqs_pos_timing_check(24); + always @(negedge dqs_in[25]) dqs_pos_timing_check(25); + always @(negedge dqs_in[26]) dqs_pos_timing_check(26); + always @(negedge dqs_in[27]) dqs_pos_timing_check(27); + always @(negedge dqs_in[28]) dqs_pos_timing_check(28); + always @(negedge dqs_in[29]) dqs_pos_timing_check(29); + always @(negedge dqs_in[30]) dqs_pos_timing_check(30); + always @(negedge dqs_in[31]) dqs_pos_timing_check(31); + + task dqs_neg_timing_check; + input i; + reg [4:0] i; + reg [3:0] j; + begin + if (write_levelization && i<16) begin + if (ck_cntr - ck_load_mode < TWLDQSEN) + $display ("%m: at time %t ERROR: tWLDQSEN violation on DQS bit %d.", $time, i); + if ($time - tm_dqs_pos[i] < $rtoi(TDQSH*tck_avg)) + $display ("%m: at time %t ERROR: tDQSH violation on DQS bit %d by %t", $time, i, tm_dqs_pos[i] + TDQSH*tck_avg - $time); + end + if (dqs_in_valid && (wdqs_pos_cntr[i] > 0) && check_write_dqs_high[i]) begin + if (dqs_in[i] ^ prev_dqs_in[i]) begin + if (dll_locked) begin + if ($time - tm_dqs_pos[i] < $rtoi(TDQSH*tck_avg)) + $display ("%m: at time %t ERROR: tDQSH violation on %s bit %d", $time, dqs_string[i/16], i%16); + if ($time - tm_ck_pos < $rtoi(TDSH*tck_avg)) + $display ("%m: at time %t ERROR: tDSH violation on %s bit %d", $time, dqs_string[i/16], i%16); + end + if ($time - tm_dm[i%16] < TDS) + $display ("%m: at time %t ERROR: tDS violation on DM bit %d by %t", $time, i, tm_dm[i%16] + TDS - $time); + if (!dq_out_en) begin + for (j=0; j<`DQ_PER_DQS; j=j+1) begin + if ($time - tm_dq[(i%16)*`DQ_PER_DQS+j] < TDS) + $display ("%m: at time %t ERROR: tDS violation on DQ bit %d by %t", $time, i*`DQ_PER_DQS+j, tm_dq[(i%16)*`DQ_PER_DQS+j] + TDS - $time); + check_dq_tdipw[(i%16)*`DQ_PER_DQS+j] <= 1'b1; + end + end + check_dm_tdipw[i%16] <= 1'b1; + tm_dqs[i%16] <= $time; + end else begin + $display ("%m: at time %t ERROR: Invalid latching edge on %s bit %d", $time, dqs_string[i/16], i%16); + end + end + check_write_dqs_high[i] <= 1'b0; + tm_dqs_neg[i] = $time; + prev_dqs_in[i] <= dqs_in[i]; + end + endtask + + always @(negedge dqs_in[ 0]) dqs_neg_timing_check( 0); + always @(negedge dqs_in[ 1]) dqs_neg_timing_check( 1); + always @(negedge dqs_in[ 2]) dqs_neg_timing_check( 2); + always @(negedge dqs_in[ 3]) dqs_neg_timing_check( 3); + always @(negedge dqs_in[ 4]) dqs_neg_timing_check( 4); + always @(negedge dqs_in[ 5]) dqs_neg_timing_check( 5); + always @(negedge dqs_in[ 6]) dqs_neg_timing_check( 6); + always @(negedge dqs_in[ 7]) dqs_neg_timing_check( 7); + always @(negedge dqs_in[ 8]) dqs_neg_timing_check( 8); + always @(negedge dqs_in[ 9]) dqs_neg_timing_check( 9); + always @(negedge dqs_in[10]) dqs_neg_timing_check(10); + always @(negedge dqs_in[11]) dqs_neg_timing_check(11); + always @(negedge dqs_in[12]) dqs_neg_timing_check(12); + always @(negedge dqs_in[13]) dqs_neg_timing_check(13); + always @(negedge dqs_in[14]) dqs_neg_timing_check(14); + always @(negedge dqs_in[15]) dqs_neg_timing_check(15); + always @(posedge dqs_in[16]) dqs_neg_timing_check(16); + always @(posedge dqs_in[17]) dqs_neg_timing_check(17); + always @(posedge dqs_in[18]) dqs_neg_timing_check(18); + always @(posedge dqs_in[19]) dqs_neg_timing_check(19); + always @(posedge dqs_in[20]) dqs_neg_timing_check(20); + always @(posedge dqs_in[21]) dqs_neg_timing_check(21); + always @(posedge dqs_in[22]) dqs_neg_timing_check(22); + always @(posedge dqs_in[23]) dqs_neg_timing_check(23); + always @(posedge dqs_in[24]) dqs_neg_timing_check(24); + always @(posedge dqs_in[25]) dqs_neg_timing_check(25); + always @(posedge dqs_in[26]) dqs_neg_timing_check(26); + always @(posedge dqs_in[27]) dqs_neg_timing_check(27); + always @(posedge dqs_in[28]) dqs_neg_timing_check(28); + always @(posedge dqs_in[29]) dqs_neg_timing_check(29); + always @(posedge dqs_in[30]) dqs_neg_timing_check(30); + always @(posedge dqs_in[31]) dqs_neg_timing_check(31); + +endmodule diff --git a/lib/micron/ddr_sdram/ddr3_model_parameters.vh b/lib/micron/ddr_sdram/ddr3_model_parameters.vh new file mode 100644 index 00000000..4eafeb55 --- /dev/null +++ b/lib/micron/ddr_sdram/ddr3_model_parameters.vh @@ -0,0 +1,2895 @@ +/**************************************************************************************** +* +* Disclaimer This software code and all associated documentation, comments or other +* of Warranty: information (collectively "Software") is provided "AS IS" without +* warranty of any kind. MICRON TECHNOLOGY, INC. ("MTI") EXPRESSLY +* DISCLAIMS ALL WARRANTIES EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +* TO, NONINFRINGEMENT OF THIRD PARTY RIGHTS, AND ANY IMPLIED WARRANTIES +* OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE. MTI DOES NOT +* WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THE +* OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE. +* FURTHERMORE, MTI DOES NOT MAKE ANY REPRESENTATIONS REGARDING THE USE OR +* THE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS, +* ACCURACY, RELIABILITY, OR OTHERWISE. THE ENTIRE RISK ARISING OUT OF USE +* OR PERFORMANCE OF THE SOFTWARE REMAINS WITH YOU. IN NO EVENT SHALL MTI, +* ITS AFFILIATED COMPANIES OR THEIR SUPPLIERS BE LIABLE FOR ANY DIRECT, +* INDIRECT, CONSEQUENTIAL, INCIDENTAL, OR SPECIAL DAMAGES (INCLUDING, +* WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, +* OR LOSS OF INFORMATION) ARISING OUT OF YOUR USE OF OR INABILITY TO USE +* THE SOFTWARE, EVEN IF MTI HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +* DAMAGES. Because some jurisdictions prohibit the exclusion or +* limitation of liability for consequential or incidental damages, the +* above limitation may not apply to you. +* +* Copyright 2003 Micron Technology, Inc. All rights reserved. +* +****************************************************************************************/ + + // Parameters current with 1Gb, 2Gb and 4Gb datasheet rev D + + // Timing parameters based on Speed Grade + + +`ifdef x4Gb // 4Gb parameters + // SYMBOL UNITS DESCRIPTION + // ------ ----- ----------- + `ifdef sg093 // sg093 is equivalent to the JEDEC DDR3-2133 (14-14-14) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 180; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48090; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13090; // tRCD ps Active to Read/Write command time + parameter TRP = 13090; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13090; // TAA ps Internal READ command to first data + parameter CL_TIME = 13090; // CL ps Minimum CAS Latency + `elsif sg093E // sg093E is equivalent to the JEDEC DDR3-2133 (13-13-13) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47155; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12155; // tRCD ps Active to Read/Write command time + parameter TRP = 12155; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12155; // TAA ps Internal READ command to first data + parameter CL_TIME = 12155; // CL ps Minimum CAS Latency + `elsif sg093F // sg093F is equivalent to the JEDEC DDR3-2133 (12-12-12) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46220; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11220; // tRCD ps Active to Read/Write command time + parameter TRP = 11220; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11220; // TAA ps Internal READ command to first data + parameter CL_TIME = 11220; // CL ps Minimum CAS Latency + `elsif sg107 // sg107 is equivalent to the JEDEC DDR3-1866 (13-13-13) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48910; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13910; // tRCD ps Active to Read/Write command time + parameter TRP = 13910; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13910; // TAA ps Internal READ command to first data + parameter CL_TIME = 13910; // CL ps Minimum CAS Latency + `elsif sg107E // sg107E is equivalent to the JEDEC DDR3-1866 (12-12-12) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47840; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12840; // tRCD ps Active to Read/Write command time + parameter TRP = 12840; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12840; // TAA ps Internal READ command to first data + parameter CL_TIME = 12840; // CL ps Minimum CAS Latency + `elsif sg107F // sg107F is equivalent to the JEDEC DDR3-1866 (11-11-11) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46770; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11770; // tRCD ps Active to Read/Write command time + parameter TRP = 11770; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11770; // TAA ps Internal READ command to first data + parameter CL_TIME = 11770; // CL ps Minimum CAS Latency + `elsif sg125E // sg125E is equivalent to the JEDEC DDR3-1600 (10-10-10) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `elsif sg125 // sg125 is equivalent to the JEDEC DDR3-1600 (11-11-11) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48125; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency (Changed the value from 13750 to 13125 + // as the speed grade supports down binning) + `elsif sg15E // sg15E is equivalent to the JEDEC DDR3-1333H (9-9-9) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 49125; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency (Changed the value from 13500 to 13125 + // as the speed grade supports down binning) + `elsif sg15 // sg15 is equivalent to the JEDEC DDR3-1333J (10-10-10) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 51000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg187E // sg187E is equivalent to the JEDEC DDR3-1066F (7-7-7) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50625; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg187 // sg187 is equivalent to the JEDEC DDR3-1066G (8-8-8) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg25E // sg25E is equivalent to the JEDEC DDR3-800D (5-5-5) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `else `define sg25 // sg25 is equivalent to the JEDEC DDR3-800E (6-6-6) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `endif + + `ifdef x16 + `ifdef sg093 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `else // sg187E, sg187, sg25, sg25E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `endif + `else // x4, x8 + `ifdef sg093 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `else // sg25, sg25E + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `endif + `endif + + // Timing Parameters + + // Mode Register + parameter CL_MIN = 5; // CL tCK Minimum CAS Latency + parameter CL_MAX = 16; // CL tCK Maximum CAS Latency + parameter AL_MIN = 0; // AL tCK Minimum Additive Latency + parameter AL_MAX = 2; // AL tCK Maximum Additive Latency + parameter WR_MIN = 5; // WR tCK Minimum Write Recovery + parameter WR_MAX = 16; // WR tCK Maximum Write Recovery + parameter BL_MIN = 4; // BL tCK Minimum Burst Length + parameter BL_MAX = 8; // BL tCK Minimum Burst Length + parameter CWL_MIN = 5; // CWL tCK Minimum CAS Write Latency + parameter CWL_MAX = 10; // CWL tCK Maximum CAS Write Latency + + // Clock + parameter TCK_MAX = 3300; // tCK ps Maximum Clock Cycle Time + parameter TCH_AVG_MIN = 0.47; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_AVG_MIN = 0.47; // tCL tCK Minimum Clock Low-Level Pulse Width + parameter TCH_AVG_MAX = 0.53; // tCH tCK Maximum Clock High-Level Pulse Width + parameter TCL_AVG_MAX = 0.53; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCH_ABS_MIN = 0.43; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_ABS_MIN = 0.43; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCKE_TCK = 3; // tCKE tCK CKE minimum high or low pulse width + parameter TAA_MAX = 20000; // TAA ps Internal READ command to first data + + // Data OUT + parameter TQH = 0.38; // tQH ps DQ output hold time from DQS, DQS# + // Data Strobe OUT + parameter TRPRE = 0.90; // tRPRE tCK DQS Read Preamble + parameter TRPST = 0.30; // tRPST tCK DQS Read Postamble + // Data Strobe IN + parameter TDQSH = 0.45; // tDQSH tCK DQS input High Pulse Width + parameter TDQSL = 0.45; // tDQSL tCK DQS input Low Pulse Width + parameter TWPRE = 0.90; // tWPRE tCK DQS Write Preamble + parameter TWPST = 0.30; // tWPST tCK DQS Write Postamble + // Command and Address + parameter TZQCS = 64; // tZQCS tCK ZQ Cal (Short) time + parameter TZQINIT = 512; // tZQinit tCK ZQ Cal (Long) time + parameter TZQOPER = 256; // tZQoper tCK ZQ Cal (Long) time + parameter TCCD = 4; // tCCD tCK Cas to Cas command delay + parameter TCCD_DG = 2; // tCCD_DG tCK Cas to Cas command delay to different group + parameter TRAS_MAX = 60e9; // tRAS ps Maximum Active to Precharge command time + parameter TWR = 15000; // tWR ps Write recovery time + parameter TMRD = 4; // tMRD tCK Load Mode Register command cycle time + parameter TMOD = 15000; // tMOD ps LOAD MODE to non-LOAD MODE command cycle time + parameter TMOD_TCK = 12; // tMOD tCK LOAD MODE to non-LOAD MODE command cycle time + parameter TRRD_TCK = 4; // tRRD tCK Active bank a to Active bank b command time + parameter TRRD_DG = 3000; // tRRD_DG ps Active bank a to Active bank b command time to different group + parameter TRRD_DG_TCK = 2; // tRRD_DG tCK Active bank a to Active bank b command time to different group + parameter TRTP = 7500; // tRTP ps Read to Precharge command delay + parameter TRTP_TCK = 4; // tRTP tCK Read to Precharge command delay + parameter TWTR = 7500; // tWTR ps Write to Read command delay + parameter TWTR_DG = 3750; // tWTR_DG ps Write to Read command delay to different group + parameter TWTR_TCK = 4; // tWTR tCK Write to Read command delay + parameter TWTR_DG_TCK = 2; // tWTR_DG tCK Write to Read command delay to different group + parameter TDLLK = 512; // tDLLK tCK DLL locking time + // Refresh - 2Gb + parameter TRFC_MIN = 160000; // tRFC ps Refresh to Refresh Command interval minimum value + parameter TRFC_MAX =70312500; // tRFC ps Refresh to Refresh Command Interval maximum value + // Power Down + parameter TXP_TCK = 3; // tXP tCK Exit power down to a valid command + parameter TXPDLL = 24000; // tXPDLL ps Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TXPDLL_TCK = 10; // tXPDLL tCK Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TACTPDEN = 1; // tACTPDEN tCK Timing of last ACT command to power down entry + parameter TPRPDEN = 1; // tPREPDEN tCK Timing of last PRE command to power down entry + parameter TREFPDEN = 1; // tARPDEN tCK Timing of last REFRESH command to power down entry + parameter TCPDED = 1; // tCPDED tCK Command pass disable/enable delay + parameter TPD_MAX =TRFC_MAX; // tPD ps Power-down entry-to-exit timing + parameter TXPR = 170000; // tXPR ps Exit Reset from CKE assertion to a valid command + parameter TXPR_TCK = 5; // tXPR tCK Exit Reset from CKE assertion to a valid command + // Self Refresh + parameter TXS = 170000; // tXS ps Exit self refesh to a non-read or write command + parameter TXS_TCK = 5; // tXS tCK Exit self refesh to a non-read or write command + parameter TXSDLL = TDLLK; // tXSRD tCK Exit self refresh to a read or write command + parameter TISXR = TIS; // tISXR ps CKE setup time during self refresh exit. + parameter TCKSRE = 10000; // tCKSRE ps Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRE_TCK = 5; // tCKSRE tCK Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRX = 10000; // tCKSRX ps Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKSRX_TCK = 5; // tCKSRX tCK Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKESR_TCK = 4; // tCKESR tCK Minimum CKE low width for Self Refresh entry to exit timing + // ODT + parameter TAOF = 0.7; // tAOF tCK RTT turn-off from ODTLoff reference + parameter TAONPD = 8500; // tAONPD ps Asynchronous RTT turn-on delay (Power-Down with DLL frozen) + parameter TAOFPD = 8500; // tAONPD ps Asynchronous RTT turn-off delay (Power-Down with DLL frozen) + parameter ODTH4 = 4; // ODTH4 tCK ODT minimum HIGH time after ODT assertion or write (BL4) + parameter ODTH8 = 6; // ODTH8 tCK ODT minimum HIGH time after write (BL8) + parameter TADC = 0.7; // tADC tCK RTT dynamic change skew + // Write Levelization + parameter TWLMRD = 40; // tWLMRD tCK First DQS pulse rising edge after tDQSS margining mode is programmed + parameter TWLDQSEN = 25; // tWLDQSEN tCK DQS/DQS delay after tDQSS margining mode is programmed + parameter TWLOE = 2000; // tWLOE ps Write levelization output error + + // Size Parameters based on Part Width + + `ifdef x4 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 16; // MAX Address Bits + parameter ROW_BITS = 16; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 11; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 4; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `elsif x8 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 16; // MAX Address Bits + parameter ROW_BITS = 16; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 8; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `else `define x16 + parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 15; // MAX Address Bits + parameter ROW_BITS = 15; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 16; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 2; // Set this parameter to control how many Dqs bits are used + `endif + + // Size Parameters + parameter BA_BITS = 3; // Set this parmaeter to control how many Bank Address bits are used + parameter MEM_BITS = 15; // Set this parameter to control how many write data bursts can be stored in memory. The default is 2^10=1024. + parameter AP = 10; // the address bit that controls auto-precharge and precharge-all + parameter BC = 12; // the address bit that controls burst chop + parameter BL_BITS = 3; // the number of bits required to count to BL_MAX + parameter BO_BITS = 2; // the number of Burst Order Bits + + `ifdef QUAD_RANK + parameter CS_BITS = 4; // Number of Chip Select Bits + parameter RANKS = 4; // Number of Chip Selects + `elsif DUAL_RANK + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 2; // Number of Chip Selects + `else + parameter CS_BITS = 1; // Number of Chip Select Bits + parameter RANKS = 1; // Number of Chip Selects + `endif + + // Simulation parameters + parameter RZQ = 240; // termination resistance + parameter PRE_DEF_PAT = 8'hAA; // value returned during mpr pre-defined pattern readout + parameter STOP_ON_ERROR = 1; // If set to 1, the model will halt on command sequence/major errors + parameter DEBUG = 1; // Turn on Debug messages + parameter BUS_DELAY = 0; // delay in nanoseconds + parameter RANDOM_OUT_DELAY = 0; // If set to 1, the model will put a random amount of delay on DQ/DQS during reads + parameter RANDOM_SEED = 711689044; //seed value for random generator. + + parameter RDQSEN_PRE = 2; // DQS driving time prior to first read strobe + parameter RDQSEN_PST = 1; // DQS driving time after last read strobe + parameter RDQS_PRE = 2; // DQS low time prior to first read strobe + parameter RDQS_PST = 1; // DQS low time after last read strobe + parameter RDQEN_PRE = 0; // DQ/DM driving time prior to first read data + parameter RDQEN_PST = 0; // DQ/DM driving time after last read data + parameter WDQS_PRE = 2; // DQS half clock periods prior to first write strobe + parameter WDQS_PST = 1; // DQS half clock periods after last write strobe + + // check for legal cas latency based on the cas write latency + function valid_cl; + input [3:0] cl; + input [3:0] cwl; + + case ({cwl, cl}) + `ifdef sg093 + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd9 }, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd12}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg107 + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107E + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg125E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg125 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg15E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg15 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg187E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg187 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg25E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `elsif sg25 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `endif + default : valid_cl = 0; + endcase + endfunction + + // find the minimum valid cas write latency + function [3:0] min_cwl; + input period; + real period; + min_cwl = (period >= 2500.0) ? 5: + (period >= 1875.0) ? 6: + (period >= 1500.0) ? 7: + (period >= 1250.0) ? 8: + (period >= 1070.0) ? 9: + 10; // (period >= 935) + endfunction + + // find the minimum valid cas latency + function [3:0] min_cl; + input period; + real period; + reg [3:0] cwl; + reg [3:0] cl; + begin + cwl = min_cwl(period); + for (cl=CL_MAX; cl>=CL_MIN; cl=cl-1) begin + if (valid_cl(cl, cwl)) begin + min_cl = cl; + end + end + end + endfunction + +`elsif x2Gb // 2Gb parameters + + // SYMBOL UNITS DESCRIPTION + // ------ ----- ----------- + `ifdef sg093 // sg093 is equivalent to the JEDEC DDR3-2133 (14-14-14) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 180; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48090; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13090; // tRCD ps Active to Read/Write command time + parameter TRP = 13090; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13090; // TAA ps Internal READ command to first data + parameter CL_TIME = 13090; // CL ps Minimum CAS Latency + `elsif sg093E // sg093E is equivalent to the JEDEC DDR3-2133 (13-13-13) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47155; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12155; // tRCD ps Active to Read/Write command time + parameter TRP = 12155; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12155; // TAA ps Internal READ command to first data + parameter CL_TIME = 12155; // CL ps Minimum CAS Latency + `elsif sg093F // sg093F is equivalent to the JEDEC DDR3-2133 (12-12-12) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46220; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11220; // tRCD ps Active to Read/Write command time + parameter TRP = 11220; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11220; // TAA ps Internal READ command to first data + parameter CL_TIME = 11220; // CL ps Minimum CAS Latency + `elsif sg107 // sg107 is equivalent to the JEDEC DDR3-1866 (13-13-13) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48910; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13910; // tRCD ps Active to Read/Write command time + parameter TRP = 13910; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13910; // TAA ps Internal READ command to first data + parameter CL_TIME = 13910; // CL ps Minimum CAS Latency + `elsif sg107E // sg107E is equivalent to the JEDEC DDR3-1866 (12-12-12) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47840; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12840; // tRCD ps Active to Read/Write command time + parameter TRP = 12840; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12840; // TAA ps Internal READ command to first data + parameter CL_TIME = 12840; // CL ps Minimum CAS Latency + `elsif sg107F // sg107F is equivalent to the JEDEC DDR3-1866 (11-11-11) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46770; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11770; // tRCD ps Active to Read/Write command time + parameter TRP = 11770; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11770; // TAA ps Internal READ command to first data + parameter CL_TIME = 11770; // CL ps Minimum CAS Latency + `elsif sg125E // sg125E is equivalent to the JEDEC DDR3-1600 (10-10-10) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `elsif sg125 // sg125 is equivalent to the JEDEC DDR3-1600 (11-11-11) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48125; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency (Changed the value from 13750 to 13125 + // as the speed grade supports down binning) + `elsif sg15E // sg15E is equivalent to the JEDEC DDR3-1333H (9-9-9) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 49125; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency (Changed the value from 13500 to 13125 + // as the speed grade supports down binning) + `elsif sg15 // sg15 is equivalent to the JEDEC DDR3-1333J (10-10-10) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 51000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg187E // sg187E is equivalent to the JEDEC DDR3-1066F (7-7-7) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50625; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg187 // sg187 is equivalent to the JEDEC DDR3-1066G (8-8-8) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg25E // sg25E is equivalent to the JEDEC DDR3-800D (5-5-5) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `else `define sg25 // sg25 is equivalent to the JEDEC DDR3-800E (6-6-6) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `endif + + `ifdef x16 + `ifdef sg093 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `else // sg187E, sg187, sg25, sg25E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `endif + `else // x4, x8 + `ifdef sg093 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `else // sg25, sg25E + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `endif + `endif + + // Timing Parameters + + // Mode Register + parameter CL_MIN = 5; // CL tCK Minimum CAS Latency + parameter CL_MAX = 14; // CL tCK Maximum CAS Latency + parameter AL_MIN = 0; // AL tCK Minimum Additive Latency + parameter AL_MAX = 2; // AL tCK Maximum Additive Latency + parameter WR_MIN = 5; // WR tCK Minimum Write Recovery + parameter WR_MAX = 16; // WR tCK Maximum Write Recovery + parameter BL_MIN = 4; // BL tCK Minimum Burst Length + parameter BL_MAX = 8; // BL tCK Minimum Burst Length + parameter CWL_MIN = 5; // CWL tCK Minimum CAS Write Latency + parameter CWL_MAX = 10; // CWL tCK Maximum CAS Write Latency + + // Clock + parameter TCK_MAX = 3300; // tCK ps Maximum Clock Cycle Time + parameter TCH_AVG_MIN = 0.47; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_AVG_MIN = 0.47; // tCL tCK Minimum Clock Low-Level Pulse Width + parameter TCH_AVG_MAX = 0.53; // tCH tCK Maximum Clock High-Level Pulse Width + parameter TCL_AVG_MAX = 0.53; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCH_ABS_MIN = 0.43; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_ABS_MIN = 0.43; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCKE_TCK = 3; // tCKE tCK CKE minimum high or low pulse width + parameter TAA_MAX = 20000; // TAA ps Internal READ command to first data + + // Data OUT + parameter TQH = 0.38; // tQH ps DQ output hold time from DQS, DQS# + // Data Strobe OUT + parameter TRPRE = 0.90; // tRPRE tCK DQS Read Preamble + parameter TRPST = 0.30; // tRPST tCK DQS Read Postamble + // Data Strobe IN + parameter TDQSH = 0.45; // tDQSH tCK DQS input High Pulse Width + parameter TDQSL = 0.45; // tDQSL tCK DQS input Low Pulse Width + parameter TWPRE = 0.90; // tWPRE tCK DQS Write Preamble + parameter TWPST = 0.30; // tWPST tCK DQS Write Postamble + // Command and Address + parameter TZQCS = 64; // tZQCS tCK ZQ Cal (Short) time + parameter TZQINIT = 512; // tZQinit tCK ZQ Cal (Long) time + parameter TZQOPER = 256; // tZQoper tCK ZQ Cal (Long) time + parameter TCCD = 4; // tCCD tCK Cas to Cas command delay + parameter TCCD_DG = 2; // tCCD_DG tCK Cas to Cas command delay to different group + parameter TRAS_MAX = 60e9; // tRAS ps Maximum Active to Precharge command time + parameter TWR = 15000; // tWR ps Write recovery time + parameter TMRD = 4; // tMRD tCK Load Mode Register command cycle time + parameter TMOD = 15000; // tMOD ps LOAD MODE to non-LOAD MODE command cycle time + parameter TMOD_TCK = 12; // tMOD tCK LOAD MODE to non-LOAD MODE command cycle time + parameter TRRD_TCK = 4; // tRRD tCK Active bank a to Active bank b command time + parameter TRRD_DG = 3000; // tRRD_DG ps Active bank a to Active bank b command time to different group + parameter TRRD_DG_TCK = 2; // tRRD_DG tCK Active bank a to Active bank b command time to different group + parameter TRTP = 7500; // tRTP ps Read to Precharge command delay + parameter TRTP_TCK = 4; // tRTP tCK Read to Precharge command delay + parameter TWTR = 7500; // tWTR ps Write to Read command delay + parameter TWTR_DG = 3750; // tWTR_DG ps Write to Read command delay to different group + parameter TWTR_TCK = 4; // tWTR tCK Write to Read command delay + parameter TWTR_DG_TCK = 2; // tWTR_DG tCK Write to Read command delay to different group + parameter TDLLK = 512; // tDLLK tCK DLL locking time + // Refresh - 2Gb + parameter TRFC_MIN = 160000; // tRFC ps Refresh to Refresh Command interval minimum value + parameter TRFC_MAX =70312500; // tRFC ps Refresh to Refresh Command Interval maximum value + // Power Down + parameter TXP_TCK = 3; // tXP tCK Exit power down to a valid command + parameter TXPDLL = 24000; // tXPDLL ps Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TXPDLL_TCK = 10; // tXPDLL tCK Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TACTPDEN = 1; // tACTPDEN tCK Timing of last ACT command to power down entry + parameter TPRPDEN = 1; // tPREPDEN tCK Timing of last PRE command to power down entry + parameter TREFPDEN = 1; // tARPDEN tCK Timing of last REFRESH command to power down entry + parameter TCPDED = 1; // tCPDED tCK Command pass disable/enable delay + parameter TPD_MAX =TRFC_MAX; // tPD ps Power-down entry-to-exit timing + parameter TXPR = 170000; // tXPR ps Exit Reset from CKE assertion to a valid command + parameter TXPR_TCK = 5; // tXPR tCK Exit Reset from CKE assertion to a valid command + // Self Refresh + parameter TXS = 170000; // tXS ps Exit self refesh to a non-read or write command + parameter TXS_TCK = 5; // tXS tCK Exit self refesh to a non-read or write command + parameter TXSDLL = TDLLK; // tXSRD tCK Exit self refresh to a read or write command + parameter TISXR = TIS; // tISXR ps CKE setup time during self refresh exit. + parameter TCKSRE = 10000; // tCKSRE ps Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRE_TCK = 5; // tCKSRE tCK Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRX = 10000; // tCKSRX ps Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKSRX_TCK = 5; // tCKSRX tCK Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKESR_TCK = 4; // tCKESR tCK Minimum CKE low width for Self Refresh entry to exit timing + // ODT + parameter TAOF = 0.7; // tAOF tCK RTT turn-off from ODTLoff reference + parameter TAONPD = 8500; // tAONPD ps Asynchronous RTT turn-on delay (Power-Down with DLL frozen) + parameter TAOFPD = 8500; // tAONPD ps Asynchronous RTT turn-off delay (Power-Down with DLL frozen) + parameter ODTH4 = 4; // ODTH4 tCK ODT minimum HIGH time after ODT assertion or write (BL4) + parameter ODTH8 = 6; // ODTH8 tCK ODT minimum HIGH time after write (BL8) + parameter TADC = 0.7; // tADC tCK RTT dynamic change skew + // Write Levelization + parameter TWLMRD = 40; // tWLMRD tCK First DQS pulse rising edge after tDQSS margining mode is programmed + parameter TWLDQSEN = 25; // tWLDQSEN tCK DQS/DQS delay after tDQSS margining mode is programmed + parameter TWLOE = 2000; // tWLOE ps Write levelization output error + + // Size Parameters based on Part Width + + `ifdef x4 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 15; // MAX Address Bits + parameter ROW_BITS = 15; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 11; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 4; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `elsif x8 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 15; // MAX Address Bits + parameter ROW_BITS = 15; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 8; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `else `define x16 + parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 14; // MAX Address Bits + parameter ROW_BITS = 14; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 16; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 2; // Set this parameter to control how many Dqs bits are used + `endif + + // Size Parameters + parameter BA_BITS = 3; // Set this parmaeter to control how many Bank Address bits are used + parameter MEM_BITS = 15; // Set this parameter to control how many write data bursts can be stored in memory. The default is 2^10=1024. + parameter AP = 10; // the address bit that controls auto-precharge and precharge-all + parameter BC = 12; // the address bit that controls burst chop + parameter BL_BITS = 3; // the number of bits required to count to BL_MAX + parameter BO_BITS = 2; // the number of Burst Order Bits + + `ifdef QUAD_RANK + `define DUAL_RANK // also define DUAL_RANK + parameter CS_BITS = 4; // Number of Chip Select Bits + parameter RANKS = 4; // Number of Chip Selects + `elsif DUAL_RANK + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 2; // Number of Chip Selects + `else + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 1; // Number of Chip Selects + `endif + + // Simulation parameters + parameter RZQ = 240; // termination resistance + parameter PRE_DEF_PAT = 8'hAA; // value returned during mpr pre-defined pattern readout + parameter STOP_ON_ERROR = 1; // If set to 1, the model will halt on command sequence/major errors + parameter DEBUG = 1; // Turn on Debug messages + parameter BUS_DELAY = 0; // delay in nanoseconds + parameter RANDOM_OUT_DELAY = 0; // If set to 1, the model will put a random amount of delay on DQ/DQS during reads + parameter RANDOM_SEED = 711689044; //seed value for random generator. + + parameter RDQSEN_PRE = 2; // DQS driving time prior to first read strobe + parameter RDQSEN_PST = 1; // DQS driving time after last read strobe + parameter RDQS_PRE = 2; // DQS low time prior to first read strobe + parameter RDQS_PST = 1; // DQS low time after last read strobe + parameter RDQEN_PRE = 0; // DQ/DM driving time prior to first read data + parameter RDQEN_PST = 0; // DQ/DM driving time after last read data + parameter WDQS_PRE = 2; // DQS half clock periods prior to first write strobe + parameter WDQS_PST = 1; // DQS half clock periods after last write strobe + + // check for legal cas latency based on the cas write latency + function valid_cl; + input [3:0] cl; + input [3:0] cwl; + + case ({cwl, cl}) + `ifdef sg093 + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd9 }, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd12}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg107 + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107E + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg125E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg125 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg15E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg15 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg187E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg187 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg25E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `elsif sg25 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `endif + default : valid_cl = 0; + endcase + endfunction + + // find the minimum valid cas write latency + function [3:0] min_cwl; + input period; + real period; + min_cwl = (period >= 2500.0) ? 5: + (period >= 1875.0) ? 6: + (period >= 1500.0) ? 7: + (period >= 1250.0) ? 8: + (period >= 1070.0) ? 9: + 10; // (period >= 935) + endfunction + + // find the minimum valid cas latency + function [3:0] min_cl; + input period; + real period; + reg [3:0] cwl; + reg [3:0] cl; + begin + cwl = min_cwl(period); + for (cl=CL_MAX; cl>=CL_MIN; cl=cl-1) begin + if (valid_cl(cl, cwl)) begin + min_cl = cl; + end + end + end + endfunction + + +`else `define x1Gb // 1Gb parts + + // SYMBOL UNITS DESCRIPTION + // ------ ----- ----------- + `ifdef sg093 // sg093 is equivalent to the JEDEC DDR3-2133 (14-14-14) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 180; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48090; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13090; // tRCD ps Active to Read/Write command time + parameter TRP = 13090; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13090; // TAA ps Internal READ command to first data + parameter CL_TIME = 13090; // CL ps Minimum CAS Latency + `elsif sg093E // sg093E is equivalent to the JEDEC DDR3-2133 (13-13-13) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47155; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12155; // tRCD ps Active to Read/Write command time + parameter TRP = 12155; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12155; // TAA ps Internal READ command to first data + parameter CL_TIME = 12155; // CL ps Minimum CAS Latency + `elsif sg093F // sg093F is equivalent to the JEDEC DDR3-2133 (12-12-12) speed bin + parameter TCK_MIN = 935; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 50; // tJIT(per) ps Period JItter + parameter TJIT_CC = 100; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 74; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 87; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 97; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 105; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 111; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 116; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 121; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 125; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 128; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 132; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 134; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 5; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 70; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 175; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 280; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 470; // tIPW ps Control and Address input Pulse Width + parameter TIS = 35; // tIS ps Input Setup Time + parameter TIH = 75; // tIH ps Input Hold Time + parameter TRAS_MIN = 33000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46220; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11220; // tRCD ps Active to Read/Write command time + parameter TRP = 11220; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 180; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 122; // tWLS ps Setup time for tDQS flop + parameter TWLH = 122; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11220; // TAA ps Internal READ command to first data + parameter CL_TIME = 11220; // CL ps Minimum CAS Latency + `elsif sg107 // sg107 is equivalent to the JEDEC DDR3-1866 (13-13-13) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48910; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13910; // tRCD ps Active to Read/Write command time + parameter TRP = 13910; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13910; // TAA ps Internal READ command to first data + parameter CL_TIME = 13910; // CL ps Minimum CAS Latency + `elsif sg107E // sg107E is equivalent to the JEDEC DDR3-1866 (12-12-12) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47840; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12840; // tRCD ps Active to Read/Write command time + parameter TRP = 12840; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12840; // TAA ps Internal READ command to first data + parameter CL_TIME = 12840; // CL ps Minimum CAS Latency + `elsif sg107F // sg107F is equivalent to the JEDEC DDR3-1866 (11-11-11) speed bin + parameter TCK_MIN = 1070; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 60; // tJIT(per) ps Period JItter + parameter TJIT_CC = 120; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 88; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 105; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 117; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 126; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 133; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 139; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 145; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 150; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 154; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 158; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 161; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 20; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 80; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 200; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 320; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 535; // tIPW ps Control and Address input Pulse Width + parameter TIS = 50; // tIS ps Input Setup Time + parameter TIH = 100; // tIH ps Input Hold Time + parameter TRAS_MIN = 34000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 46770; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 11770; // tRCD ps Active to Read/Write command time + parameter TRP = 11770; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 200; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 140; // tWLS ps Setup time for tDQS flop + parameter TWLH = 140; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 11770; // TAA ps Internal READ command to first data + parameter CL_TIME = 11770; // CL ps Minimum CAS Latency + `elsif sg125E // sg125E is equivalent to the JEDEC DDR3-1600 (10-10-10) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 47500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `elsif sg125 // sg125 is equivalent to the JEDEC DDR3-1600 (11-11-11) speed bin + parameter TCK_MIN = 1250; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 70; // tJIT(per) ps Period JItter + parameter TJIT_CC = 140; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 103; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 122; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 136; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 147; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 155; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 163; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 169; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 175; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 180; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 184; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 188; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 10; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 45; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 100; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.27; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.18; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.18; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 225; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 360; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 560; // tIPW ps Control and Address input Pulse Width + parameter TIS = 170; // tIS ps Input Setup Time + parameter TIH = 120; // tIH ps Input Hold Time + parameter TRAS_MIN = 35000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 48125; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5000; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 165; // tWLS ps Setup time for tDQS flop + parameter TWLH = 165; // tWLH ps Hold time of tDQS flop + parameter TWLO = 7500; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg15E // sg15E is equivalent to the JEDEC DDR3-1333H (9-9-9) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 49125; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg15 // sg15 is equivalent to the JEDEC DDR3-1333J (10-10-10) speed bin + parameter TCK_MIN = 1500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 80; // tJIT(per) ps Period JItter + parameter TJIT_CC = 160; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 118; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 140; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 155; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 168; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 177; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 186; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 193; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 200; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 205; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 210; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 215; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 30; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 65; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 125; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 255; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.40; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.40; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 400; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 620; // tIPW ps Control and Address input Pulse Width + parameter TIS = 190; // tIS ps Input Setup Time + parameter TIH = 140; // tIH ps Input Hold Time + parameter TRAS_MIN = 36000; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 51000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 6000; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 250; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 195; // tWLS ps Setup time for tDQS flop + parameter TWLH = 195; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg187E // sg187E is equivalent to the JEDEC DDR3-1066F (7-7-7) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50625; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 13125; // tRCD ps Active to Read/Write command time + parameter TRP = 13125; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 13125; // TAA ps Internal READ command to first data + parameter CL_TIME = 13125; // CL ps Minimum CAS Latency + `elsif sg187 // sg187 is equivalent to the JEDEC DDR3-1066G (8-8-8) speed bin + parameter TCK_MIN = 1875; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 90; // tJIT(per) ps Period JItter + parameter TJIT_CC = 180; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 132; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 157; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 175; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 188; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 200; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 209; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 217; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 224; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 231; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 237; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 242; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 75; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 100; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 150; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 300; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 490; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 780; // tIPW ps Control and Address input Pulse Width + parameter TIS = 275; // tIS ps Input Setup Time + parameter TIH = 200; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 5625; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 300; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 245; // tWLS ps Setup time for tDQS flop + parameter TWLH = 245; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `elsif sg25E // sg25E is equivalent to the JEDEC DDR3-800E (5-5-5) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 50000; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 12500; // tRCD ps Active to Read/Write command time + parameter TRP = 12500; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 12500; // TAA ps Internal READ command to first data + parameter CL_TIME = 12500; // CL ps Minimum CAS Latency + `else `define sg25 // sg25 is equivalent to the JEDEC DDR3-800 (6-6-6) speed bin + parameter TCK_MIN = 2500; // tCK ps Minimum Clock Cycle Time + parameter TJIT_PER = 100; // tJIT(per) ps Period JItter + parameter TJIT_CC = 200; // tJIT(cc) ps Cycle to Cycle jitter + parameter TERR_2PER = 147; // tERR(2per) ps Accumulated Error (2-cycle) + parameter TERR_3PER = 175; // tERR(3per) ps Accumulated Error (3-cycle) + parameter TERR_4PER = 194; // tERR(4per) ps Accumulated Error (4-cycle) + parameter TERR_5PER = 209; // tERR(5per) ps Accumulated Error (5-cycle) + parameter TERR_6PER = 222; // tERR(6per) ps Accumulated Error (6-cycle) + parameter TERR_7PER = 232; // tERR(7per) ps Accumulated Error (7-cycle) + parameter TERR_8PER = 241; // tERR(8per) ps Accumulated Error (8-cycle) + parameter TERR_9PER = 249; // tERR(9per) ps Accumulated Error (9-cycle) + parameter TERR_10PER = 257; // tERR(10per)ps Accumulated Error (10-cycle) + parameter TERR_11PER = 263; // tERR(11per)ps Accumulated Error (11-cycle) + parameter TERR_12PER = 269; // tERR(12per)ps Accumulated Error (12-cycle) + parameter TDS = 125; // tDS ps DQ and DM input setup time relative to DQS + parameter TDH = 150; // tDH ps DQ and DM input hold time relative to DQS + parameter TDQSQ = 200; // tDQSQ ps DQS-DQ skew, DQS to last DQ valid, per group, per access + parameter TDQSS = 0.25; // tDQSS tCK Rising clock edge to DQS/DQS# latching transition + parameter TDSS = 0.20; // tDSS tCK DQS falling edge to CLK rising (setup time) + parameter TDSH = 0.20; // tDSH tCK DQS falling edge from CLK rising (hold time) + parameter TDQSCK = 400; // tDQSCK ps DQS output access time from CK/CK# + parameter TQSH = 0.38; // tQSH tCK DQS Output High Pulse Width + parameter TQSL = 0.38; // tQSL tCK DQS Output Low Pulse Width + parameter TDIPW = 600; // tDIPW ps DQ and DM input Pulse Width + parameter TIPW = 900; // tIPW ps Control and Address input Pulse Width + parameter TIS = 350; // tIS ps Input Setup Time + parameter TIH = 275; // tIH ps Input Hold Time + parameter TRAS_MIN = 37500; // tRAS ps Minimum Active to Precharge command time + parameter TRC = 52500; // tRC ps Active to Active/Auto Refresh command time + parameter TRCD = 15000; // tRCD ps Active to Read/Write command time + parameter TRP = 15000; // tRP ps Precharge command period + parameter TXP = 7500; // tXP ps Exit power down to a valid command + parameter TCKE = 7500; // tCKE ps CKE minimum high or low pulse width + parameter TAON = 400; // tAON ps RTT turn-on from ODTLon reference + parameter TWLS = 325; // tWLS ps Setup time for tDQS flop + parameter TWLH = 325; // tWLH ps Hold time of tDQS flop + parameter TWLO = 9000; // tWLO ps Write levelization output delay + parameter TAA_MIN = 15000; // TAA ps Internal READ command to first data + parameter CL_TIME = 15000; // CL ps Minimum CAS Latency + `endif + + `ifdef x16 + `ifdef sg093 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 6000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 35000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 7500; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 45000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `elsif sg25E + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `else // sg25 + parameter TRRD = 10000; // tRRD ps (2KB page size) Active bank a to Active bank b command time + parameter TFAW = 50000; // tFAW ps (2KB page size) Four Bank Activate window + `endif + `else // x4, x8 + `ifdef sg093 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg093F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107 + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107E + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg107F + parameter TRRD = 5000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 25000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg125 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15E + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg15 + parameter TRRD = 6000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 30000; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187E + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg187 + parameter TRRD = 7500; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 37500; // tFAW ps (1KB page size) Four Bank Activate window + `elsif sg25E + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `else // sg25 + parameter TRRD = 10000; // tRRD ps (1KB page size) Active bank a to Active bank b command time + parameter TFAW = 40000; // tFAW ps (1KB page size) Four Bank Activate window + `endif + `endif + + // Timing Parameters + + // Mode Register + parameter CL_MIN = 5; // CL tCK Minimum CAS Latency + parameter CL_MAX = 14; // CL tCK Maximum CAS Latency + parameter AL_MIN = 0; // AL tCK Minimum Additive Latency + parameter AL_MAX = 2; // AL tCK Maximum Additive Latency + parameter WR_MIN = 5; // WR tCK Minimum Write Recovery + parameter WR_MAX = 16; // WR tCK Maximum Write Recovery + parameter BL_MIN = 4; // BL tCK Minimum Burst Length + parameter BL_MAX = 8; // BL tCK Minimum Burst Length + parameter CWL_MIN = 5; // CWL tCK Minimum CAS Write Latency + parameter CWL_MAX = 10; // CWL tCK Maximum CAS Write Latency + + // Clock + parameter TCK_MAX = 3300; // tCK ps Maximum Clock Cycle Time + parameter TCH_AVG_MIN = 0.47; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_AVG_MIN = 0.47; // tCL tCK Minimum Clock Low-Level Pulse Width + parameter TCH_AVG_MAX = 0.53; // tCH tCK Maximum Clock High-Level Pulse Width + parameter TCL_AVG_MAX = 0.53; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCH_ABS_MIN = 0.43; // tCH tCK Minimum Clock High-Level Pulse Width + parameter TCL_ABS_MIN = 0.43; // tCL tCK Maximum Clock Low-Level Pulse Width + parameter TCKE_TCK = 3; // tCKE tCK CKE minimum high or low pulse width + parameter TAA_MAX = 20000; // TAA ps Internal READ command to first data + + // Data OUT + parameter TQH = 0.38; // tQH ps DQ output hold time from DQS, DQS# + // Data Strobe OUT + parameter TRPRE = 0.90; // tRPRE tCK DQS Read Preamble + parameter TRPST = 0.30; // tRPST tCK DQS Read Postamble + // Data Strobe IN + parameter TDQSH = 0.45; // tDQSH tCK DQS input High Pulse Width + parameter TDQSL = 0.45; // tDQSL tCK DQS input Low Pulse Width + parameter TWPRE = 0.90; // tWPRE tCK DQS Write Preamble + parameter TWPST = 0.30; // tWPST tCK DQS Write Postamble + // Command and Address + parameter TZQCS = 64; // tZQCS tCK ZQ Cal (Short) time + parameter TZQINIT = 512; // tZQinit tCK ZQ Cal (Long) time + parameter TZQOPER = 256; // tZQoper tCK ZQ Cal (Long) time + parameter TCCD = 4; // tCCD tCK Cas to Cas command delay + parameter TCCD_DG = 2; // tCCD_DG tCK Cas to Cas command delay to different group + parameter TRAS_MAX = 60e9; // tRAS ps Maximum Active to Precharge command time + parameter TWR = 15000; // tWR ps Write recovery time + parameter TMRD = 4; // tMRD tCK Load Mode Register command cycle time + parameter TMOD = 15000; // tMOD ps LOAD MODE to non-LOAD MODE command cycle time + parameter TMOD_TCK = 12; // tMOD tCK LOAD MODE to non-LOAD MODE command cycle time + parameter TRRD_TCK = 4; // tRRD tCK Active bank a to Active bank b command time + parameter TRRD_DG = 3000; // tRRD_DG ps Active bank a to Active bank b command time to different group + parameter TRRD_DG_TCK = 2; // tRRD_DG tCK Active bank a to Active bank b command time to different group + parameter TRTP = 7500; // tRTP ps Read to Precharge command delay + parameter TRTP_TCK = 4; // tRTP tCK Read to Precharge command delay + parameter TWTR = 7500; // tWTR ps Write to Read command delay + parameter TWTR_DG = 3750; // tWTR_DG ps Write to Read command delay to different group + parameter TWTR_TCK = 4; // tWTR tCK Write to Read command delay + parameter TWTR_DG_TCK = 2; // tWTR_DG tCK Write to Read command delay to different group + parameter TDLLK = 512; // tDLLK tCK DLL locking time + // Refresh - 1Gb + parameter TRFC_MIN = 110000; // tRFC ps Refresh to Refresh Command interval minimum value + parameter TRFC_MAX =70312500; // tRFC ps Refresh to Refresh Command Interval maximum value + // Power Down + parameter TXP_TCK = 3; // tXP tCK Exit power down to a valid command + parameter TXPDLL = 24000; // tXPDLL ps Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TXPDLL_TCK = 10; // tXPDLL tCK Exit precharge power down to READ or WRITE command (DLL-off mode) + parameter TACTPDEN = 1; // tACTPDEN tCK Timing of last ACT command to power down entry + parameter TPRPDEN = 1; // tPREPDEN tCK Timing of last PRE command to power down entry + parameter TREFPDEN = 1; // tARPDEN tCK Timing of last REFRESH command to power down entry + parameter TCPDED = 1; // tCPDED tCK Command pass disable/enable delay + parameter TPD_MAX =TRFC_MAX; // tPD ps Power-down entry-to-exit timing + parameter TXPR = 120000; // tXPR ps Exit Reset from CKE assertion to a valid command + parameter TXPR_TCK = 5; // tXPR tCK Exit Reset from CKE assertion to a valid command + // Self Refresh + parameter TXS = 120000; // tXS ps Exit self refesh to a non-read or write command + parameter TXS_TCK = 5; // tXS tCK Exit self refesh to a non-read or write command + parameter TXSDLL = TDLLK; // tXSRD tCK Exit self refresh to a read or write command + parameter TISXR = TIS; // tISXR ps CKE setup time during self refresh exit. + parameter TCKSRE = 10000; // tCKSRE ps Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRE_TCK = 5; // tCKSRE tCK Valid Clock requirement after self refresh entry (SRE) + parameter TCKSRX = 10000; // tCKSRX ps Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKSRX_TCK = 5; // tCKSRX tCK Valid Clock requirement prior to self refresh exit (SRX) + parameter TCKESR_TCK = 4; // tCKESR tCK Minimum CKE low width for Self Refresh entry to exit timing + // ODT + parameter TAOF = 0.7; // tAOF tCK RTT turn-off from ODTLoff reference + parameter TAONPD = 8500; // tAONPD ps Asynchronous RTT turn-on delay (Power-Down with DLL frozen) + parameter TAOFPD = 8500; // tAONPD ps Asynchronous RTT turn-off delay (Power-Down with DLL frozen) + parameter ODTH4 = 4; // ODTH4 tCK ODT minimum HIGH time after ODT assertion or write (BL4) + parameter ODTH8 = 6; // ODTH8 tCK ODT minimum HIGH time after write (BL8) + parameter TADC = 0.7; // tADC tCK RTT dynamic change skew + // Write Levelization + parameter TWLMRD = 40; // tWLMRD tCK First DQS pulse rising edge after tDQSS margining mode is programmed + parameter TWLDQSEN = 25; // tWLDQSEN tCK DQS/DQS delay after tDQSS margining mode is programmed + parameter TWLOE = 2000; // tWLOE ps Write levelization output error + + // Size Parameters based on Part Width + + `ifdef x4 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 14; // MAX Address Bits + parameter ROW_BITS = 14; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 11; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 4; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `elsif x8 + parameter DM_BITS = 1; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 14; // MAX Address Bits + parameter ROW_BITS = 14; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 8; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 1; // Set this parameter to control how many Dqs bits are used + `else `define x16 + parameter DM_BITS = 2; // Set this parameter to control how many Data Mask bits are used + parameter ADDR_BITS = 13; // MAX Address Bits + parameter ROW_BITS = 13; // Set this parameter to control how many Address bits are used + parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used + parameter DQ_BITS = 16; // Set this parameter to control how many Data bits are used **Same as part bit width** + parameter DQS_BITS = 2; // Set this parameter to control how many Dqs bits are used + `endif + + // Size Parameters + parameter BA_BITS = 3; // Set this parmaeter to control how many Bank Address bits are used + parameter MEM_BITS = 15; // Set this parameter to control how many write data bursts can be stored in memory. The default is 2^10=1024. + parameter AP = 10; // the address bit that controls auto-precharge and precharge-all + parameter BC = 12; // the address bit that controls burst chop + parameter BL_BITS = 3; // the number of bits required to count to BL_MAX + parameter BO_BITS = 2; // the number of Burst Order Bits + + `ifdef QUAD_RANK + `define DUAL_RANK // also define DUAL_RANK + parameter CS_BITS = 4; // Number of Chip Select Bits + parameter RANKS = 4; // Number of Chip Selects + `elsif DUAL_RANK + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 2; // Number of Chip Selects + `else + parameter CS_BITS = 2; // Number of Chip Select Bits + parameter RANKS = 1; // Number of Chip Selects + `endif + + // Simulation parameters + parameter RZQ = 240; // termination resistance + parameter PRE_DEF_PAT = 8'hAA; // value returned during mpr pre-defined pattern readout + parameter STOP_ON_ERROR = 1; // If set to 1, the model will halt on command sequence/major errors + parameter DEBUG = 1; // Turn on Debug messages + parameter BUS_DELAY = 0; // delay in nanoseconds + parameter RANDOM_OUT_DELAY = 0; // If set to 1, the model will put a random amount of delay on DQ/DQS during reads + parameter RANDOM_SEED = 711689044; //seed value for random generator. + + parameter RDQSEN_PRE = 2; // DQS driving time prior to first read strobe + parameter RDQSEN_PST = 1; // DQS driving time after last read strobe + parameter RDQS_PRE = 2; // DQS low time prior to first read strobe + parameter RDQS_PST = 1; // DQS low time after last read strobe + parameter RDQEN_PRE = 0; // DQ/DM driving time prior to first read data + parameter RDQEN_PST = 0; // DQ/DM driving time after last read data + parameter WDQS_PRE = 2; // DQS half clock periods prior to first write strobe + parameter WDQS_PST = 1; // DQS half clock periods after last write strobe + + // check for legal cas latency based on the cas write latency + function valid_cl; + input [3:0] cl; + input [3:0] cwl; + + case ({cwl, cl}) + `ifdef sg093 + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg093F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd9 }, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}, + {4'd10, 4'd12}, + {4'd10, 4'd13}, + {4'd10, 4'd14}: valid_cl = 1; + `elsif sg107 + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107E + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg107F + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}, + {4'd9, 4'd11}, + {4'd9, 4'd12}, + {4'd9, 4'd13}: valid_cl = 1; + `elsif sg125E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg125 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}, + {4'd8, 4'd11}: valid_cl = 1; + `elsif sg15E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }, + {4'd7, 4'd9 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg15 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }, + {4'd7, 4'd10}: valid_cl = 1; + `elsif sg187E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd7 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg187 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }, + {4'd6, 4'd8 }: valid_cl = 1; + `elsif sg25E + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `elsif sg25 + {4'd5, 4'd5 }, + {4'd5, 4'd6 }: valid_cl = 1; + `endif + default : valid_cl = 0; + endcase + endfunction + + // find the minimum valid cas write latency + function [3:0] min_cwl; + input period; + real period; + min_cwl = (period >= 2500.0) ? 5: + (period >= 1875.0) ? 6: + (period >= 1500.0) ? 7: + (period >= 1250.0) ? 8: + (period >= 1070.0) ? 9: + 10; // (period >= 935) + endfunction + + // find the minimum valid cas latency + function [3:0] min_cl; + input period; + real period; + reg [3:0] cwl; + reg [3:0] cl; + begin + cwl = min_cwl(period); + for (cl=CL_MAX; cl>=CL_MIN; cl=cl-1) begin + if (valid_cl(cl, cwl)) begin + min_cl = cl; + end + end + end + endfunction + +`endif diff --git a/lib/micron/ddr/mobile_ddr.v b/lib/micron/ddr_sdram/mobile_ddr.v similarity index 99% rename from lib/micron/ddr/mobile_ddr.v rename to lib/micron/ddr_sdram/mobile_ddr.v index 83b84804..3635f3ab 100644 --- a/lib/micron/ddr/mobile_ddr.v +++ b/lib/micron/ddr_sdram/mobile_ddr.v @@ -144,7 +144,8 @@ module mobile_ddr (Dq, Dqs, Addr, Ba, Clk, Clk_n, Cke, Cs_n, Ras_n, Cas_n, We_n, parameter tRP = 18.0; // tRP ns Precharge command period parameter tRRD = 12.0; // tRRD ns Active bank a to Active bank b command time parameter tXP = 6.0; // tXP ns Exit power-down to first valid cmd *note: In data sheet this is specified as one clk, but min tck fails before tXP on the actual part -`else `define sg75 // Timing Parameters for -75 (CL = 3) +`else + `define sg75 // Timing Parameters for -75 (CL = 3) parameter tAC3_max = 6.0; // tAC ns Access window of DQ from CK/CK# parameter tAC2_max = 6.5; // tAC ns Access window of DQ from CK/CK# parameter tCK = 7.5; // tCK ns Nominal Clock Cycle Time @@ -178,7 +179,8 @@ module mobile_ddr (Dq, Dqs, Addr, Ba, Clk, Clk_n, Cke, Cs_n, Ras_n, Cas_n, We_n, parameter DM_BITS = 2; // Set this parameter to control how many DM bits are used parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used parameter BA_BITS = 2; // Bank bits - `else `define x32 + `else + `define x32 `ifdef RP parameter ADDR_BITS = 14; // Set this parameter to control how many Address bits are used parameter ROW_BITS = 14; // Set this parameter to control how many Row bits are used diff --git a/lib/micron/ddr/mobile_ddr_fe.v b/lib/micron/ddr_sdram/mobile_ddr_fe.v similarity index 99% rename from lib/micron/ddr/mobile_ddr_fe.v rename to lib/micron/ddr_sdram/mobile_ddr_fe.v index 7872cb0e..86d25fa2 100644 --- a/lib/micron/ddr/mobile_ddr_fe.v +++ b/lib/micron/ddr_sdram/mobile_ddr_fe.v @@ -149,7 +149,8 @@ module mobile_ddr_fe (Dq, Dqs, Addr, Ba, Clk, Clk_n, Cke, Cs_n, Ras_n, Cas_n, We parameter tRP = 18.0; // tRP ns Precharge command period parameter tRRD = 12.0; // tRRD ns Active bank a to Active bank b command time parameter tXP = 6.0; // tXP ns Exit power-down to first valid cmd *note: In data sheet this is specified as one clk, but min tck fails before tXP on the actual part -`else `define sg75 // Timing Parameters for -75 (CL = 3) +`else + `define sg75 // Timing Parameters for -75 (CL = 3) parameter tAC3_max = 6.0; // tAC ns Access window of DQ from CK/CK# parameter tAC2_max = 6.5; // tAC ns Access window of DQ from CK/CK# parameter tCK = 7.5; // tCK ns Nominal Clock Cycle Time @@ -183,7 +184,8 @@ module mobile_ddr_fe (Dq, Dqs, Addr, Ba, Clk, Clk_n, Cke, Cs_n, Ras_n, Cas_n, We parameter DM_BITS = 2; // Set this parameter to control how many DM bits are used parameter COL_BITS = 10; // Set this parameter to control how many Column bits are used parameter BA_BITS = 2; // Bank bits - `else `define x32 + `else + `define x32 `ifdef RP parameter ADDR_BITS = 14; // Set this parameter to control how many Address bits are used parameter ROW_BITS = 14; // Set this parameter to control how many Row bits are used diff --git a/lib/micron/ddr/mt46v16m16.vhd b/lib/micron/ddr_sdram/mt46v16m16.vhd similarity index 100% rename from lib/micron/ddr/mt46v16m16.vhd rename to lib/micron/ddr_sdram/mt46v16m16.vhd diff --git a/lib/micron/ddr/vhdlsim.txt b/lib/micron/ddr_sdram/vhdlsim.txt similarity index 100% rename from lib/micron/ddr/vhdlsim.txt rename to lib/micron/ddr_sdram/vhdlsim.txt diff --git a/lib/micron/ddr/vlogsim.txt b/lib/micron/ddr_sdram/vlogsim.txt similarity index 86% rename from lib/micron/ddr/vlogsim.txt rename to lib/micron/ddr_sdram/vlogsim.txt index 1f92f060..f65f6c20 100644 --- a/lib/micron/ddr/vlogsim.txt +++ b/lib/micron/ddr_sdram/vlogsim.txt @@ -5,3 +5,4 @@ mobile_ddr.v HYx18M256xxxCx.v ddr3.v mobile_ddr_fe.v +ddr3_model.v diff --git a/lib/micron/dirs.txt b/lib/micron/dirs.txt index 2a0f3c7c..90379a37 100644 --- a/lib/micron/dirs.txt +++ b/lib/micron/dirs.txt @@ -1,2 +1,2 @@ sdram -ddr +ddr_sdram diff --git a/lib/opencores/ac97/ac97_top.v b/lib/opencores/ac97/ac97_top.v deleted file mode 100644 index 31f86207..00000000 --- a/lib/opencores/ac97/ac97_top.v +++ /dev/null @@ -1,4124 +0,0 @@ -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller Definitions //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.5 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.4 2002/03/11 03:21:22 rudi -// -// - Added defines to select fifo depth between 4, 8 and 16 entries. -// -// Revision 1.3 2002/03/05 04:44:05 rudi -// -// - Fixed the order of the thrash hold bits to match the spec. -// - Many minor synthesis cleanup items ... -// -// Revision 1.2 2001/08/10 08:09:42 rudi -// -// - Removed RTY_O output. -// - Added Clock and Reset Inputs to documentation. -// - Changed IO names to be more clear. -// - Uniquifyed define names to be core specific. -// -// Revision 1.1 2001/08/03 06:54:49 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:14 rudi -// Initial Checkin -// -// -// -// - -`timescale 1ns / 10ps - -///////////////////////////////////////////////////////////////////// -// This AC97 Controller supports up to 6 Output and 3 Input Channels. -// Comment out the define statement for which channels you do not wish -// to support in your implementation. The main Left and Right channels -// are always supported. - -// Surround Left + Right -// `define AC97_SURROUND 1 - -// Center Channel -// `define AC97_CENTER 1 - -// LFE Channel -// `define AC97_LFE 1 - -// Stereo Input -// `define AC97_SIN 1 - -// Mono Microphone Input -// `define AC97_MICIN 1 - -///////////////////////////////////////////////////////////////////// -// -// This define selects how the WISHBONE interface determines if -// the internal register file is selected. -// This should be a simple address decoder. "wb_addr_i" is the -// WISHBONE address bus (32 bits wide). -// **** tame: -// The AC97 controller has 16 registers occupying an address space of -// 17 32-bit words (1 address is reserved). 5 bits are needed to decode -// the individual registers. -// With the configuration of AC97_REG_SEL as 0xfff from the MSB's of the -// AHB address, the AC97 core must reside in the I/O area of the LEON -// AHB controller. -`define AC97_REG_SEL (wb_addr_i[31:20] == 12'h fff) - -///////////////////////////////////////////////////////////////////// -// -// This is a prescaler that generates a pulse every 250 nS. -// The value here should one less than the actually calculated -// value. -// For a 200 MHz wishbone clock, this value is 49 (50-1). -// **** tame: -// For a 25 MHz clock, the prescaler value is 5, roughly. -// (250 ns / 40 ns = 6.25; 6.25 - 1 = 5.25 -> integer 5) -`define AC97_250_PS 6'h5 - -///////////////////////////////////////////////////////////////////// -// -// AC97 Cold reset Must be asserted for at least 1uS. The AC97 -// controller will stretch the reset pulse to at least 1uS. -// The reset timer is driven by the AC97_250_PS prescaler. -// This value should probably be never changed. Adjust the -// AC97_250_PS instead. -// **** tame: -// Since the prescaler cycle is less than only 240 ns instead of -// 250 ns, 5 cycles are needed. -`define AC97_RST_DEL 3'h4 - -///////////////////////////////////////////////////////////////////// -// -// This value indicates for how long the resume signaling (asserting sync) -// should be done. This counter is driven by the AC97_250_PS prescaler. -// This value times 250nS is the duration of the resume signaling. -// The actual value must be incremented by one, as we do not know -// the current state of the prescaler, and must somehow insure we -// meet the minimum 1uS length. This value should probably be never -// changed. Modify the AC97_250_PS instead. -`define AC97_RES_SIG 3'h5 - -///////////////////////////////////////////////////////////////////// -// -// If the bit clock is absent for at least two "predicted" bit -// clock periods (163 nS) we should signal "suspended". -// This value defines how many WISHBONE cycles must pass without -// any change on the bit clock input before we signal "suspended". -// For a 200 MHz WISHBONE clock this would be about (163/5) 33 cycles. -`define AC97_SUSP_DET 6'h5 - -///////////////////////////////////////////////////////////////////// -// -// Select FIFO Depth. For most applications a FIFO depth of 4 should -// be sufficient. For systems with slow interrupt processing or slow -// DMA response or systems with low internal bus bandwidth you might -// want to increase the FIFO sizes to reduce the interrupt/DMA service -// request frequencies. -// Service request frequency can be calculated as follows: -// Channel bandwidth / FIFO size = Service Request Frequency -// For Example: 48KHz / 4 = 12 kHz -// -// Select Input FIFO depth by uncommenting ONE of the following define -// statements: -`define AC97_IN_FIFO_DEPTH_4 -//`define AC97_IN_FIFO_DEPTH_8 -//`define AC97_IN_FIFO_DEPTH_16 -// -// Select Output FIFO depth by uncommenting ONE of the following define -// statements: -`define AC97_OUT_FIFO_DEPTH_4 -//`define AC97_OUT_FIFO_DEPTH_8 -//`define AC97_OUT_FIFO_DEPTH_16 - -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// Codec Register Access Module //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.3 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.2 2002/03/05 04:44:05 rudi -// -// - Fixed the order of the thrash hold bits to match the spec. -// - Many minor synthesis cleanup items ... -// -// Revision 1.1 2001/08/03 06:54:49 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:18 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_cra(clk, rst, - - crac_we, crac_din, crac_out, - crac_wr_done, crac_rd_done, - - valid, out_slt1, out_slt2, - in_slt2, - - crac_valid, crac_wr - ); - -input clk, rst; -input crac_we; -output [15:0] crac_din; -input [31:0] crac_out; -output crac_wr_done, crac_rd_done; - -input valid; -output [19:0] out_slt1; -output [19:0] out_slt2; -input [19:0] in_slt2; - -output crac_valid; -output crac_wr; - - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg crac_wr; -reg crac_rd; -reg crac_rd_done; -reg [15:0] crac_din; -reg crac_we_r; -reg valid_r; -wire valid_ne; -wire valid_pe; -reg rdd1, rdd2, rdd3; - -//////////////////////////////////////////////////////////////////// -// -// Codec Register Data Path -// - -// Control -assign out_slt1[19] = crac_out[31]; -assign out_slt1[18:12] = crac_out[22:16]; -assign out_slt1[11:0] = 12'h0; - -// Write Data -assign out_slt2[19:4] = crac_out[15:0]; -assign out_slt2[3:0] = 4'h0; - -// Read Data -always @(posedge clk or negedge rst) - begin - if(!rst) crac_din <= #1 16'h0; - else - if(crac_rd_done) crac_din <= #1 in_slt2[19:4]; - end - -//////////////////////////////////////////////////////////////////// -// -// Codec Register Access Tracking -// - -assign crac_valid = crac_wr | crac_rd; - -always @(posedge clk) - crac_we_r <= #1 crac_we; - -always @(posedge clk or negedge rst) - if(!rst) crac_wr <= #1 1'b0; - else - if(crac_we_r & !crac_out[31]) crac_wr <= #1 1'b1; - else - if(valid_ne) crac_wr <= #1 1'b0; - -assign crac_wr_done = crac_wr & valid_ne; - -always @(posedge clk or negedge rst) - if(!rst) crac_rd <= #1 1'b0; - else - if(crac_we_r & crac_out[31]) crac_rd <= #1 1'b1; - else - if(rdd1 & valid_pe) crac_rd <= #1 1'b0; - -always @(posedge clk or negedge rst) - if(!rst) rdd1 <= #1 1'b0; - else - if(crac_rd & valid_ne) rdd1 <= #1 1'b1; - else - if(!crac_rd) rdd1 <= #1 1'b0; - -always @(posedge clk or negedge rst) - if(!rst) rdd2 <= #1 1'b0; - else - if( (crac_rd & valid_ne) | (!rdd3 & rdd2) ) rdd2 <= #1 1'b1; - else - if(crac_rd_done) rdd2 <= #1 1'b0; - -always @(posedge clk or negedge rst) - if(!rst) rdd3 <= #1 1'b0; - else - if(rdd2 & valid_pe) rdd3 <= #1 1'b1; - else - if(crac_rd_done) rdd3 <= #1 1'b0; - -always @(posedge clk) - crac_rd_done <= #1 rdd3 & valid_pe; - -always @(posedge clk) - valid_r <= #1 valid; - -assign valid_ne = !valid & valid_r; - -assign valid_pe = valid & !valid_r; - -endmodule - -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// DMA Interface //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.4 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.3 2002/03/05 04:44:05 rudi -// -// - Fixed the order of the thrash hold bits to match the spec. -// - Many minor synthesis cleanup items ... -// -// Revision 1.2 2001/08/10 08:09:42 rudi -// -// - Removed RTY_O output. -// - Added Clock and Reset Inputs to documentation. -// - Changed IO names to be more clear. -// - Uniquifyed define names to be core specific. -// -// Revision 1.1 2001/08/03 06:54:49 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:18 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_dma_if(clk, rst, - o3_status, o4_status, o6_status, o7_status, o8_status, o9_status, - o3_empty, o4_empty, o6_empty, o7_empty, o8_empty, o9_empty, - i3_status, i4_status, i6_status, - i3_full, i4_full, i6_full, - - oc0_cfg, oc1_cfg, oc2_cfg, oc3_cfg, oc4_cfg, oc5_cfg, - ic0_cfg, ic1_cfg, ic2_cfg, - - dma_req, dma_ack); - -input clk, rst; -input [1:0] o3_status, o4_status, o6_status, o7_status, o8_status, o9_status; -input o3_empty, o4_empty, o6_empty, o7_empty, o8_empty, o9_empty; -input [1:0] i3_status, i4_status, i6_status; -input i3_full, i4_full, i6_full; -input [7:0] oc0_cfg; -input [7:0] oc1_cfg; -input [7:0] oc2_cfg; -input [7:0] oc3_cfg; -input [7:0] oc4_cfg; -input [7:0] oc5_cfg; -input [7:0] ic0_cfg; -input [7:0] ic1_cfg; -input [7:0] ic2_cfg; -output [8:0] dma_req; -input [8:0] dma_ack; - -//////////////////////////////////////////////////////////////////// -// -// DMA Request Modules -// - -ac97_dma_req u0(.clk( clk ), - .rst( rst ), - .cfg( oc0_cfg ), - .status( o3_status ), - .full_empty( o3_empty ), - .dma_req( dma_req[0] ), - .dma_ack( dma_ack[0] ) - ); - -ac97_dma_req u1(.clk( clk ), - .rst( rst ), - .cfg( oc1_cfg ), - .status( o4_status ), - .full_empty( o4_empty ), - .dma_req( dma_req[1] ), - .dma_ack( dma_ack[1] ) - ); - -`ifdef AC97_CENTER -ac97_dma_req u2(.clk( clk ), - .rst( rst ), - .cfg( oc2_cfg ), - .status( o6_status ), - .full_empty( o6_empty ), - .dma_req( dma_req[2] ), - .dma_ack( dma_ack[2] ) - ); -`else -assign dma_req[2] = 1'b0; -`endif - -`ifdef AC97_SURROUND -ac97_dma_req u3(.clk( clk ), - .rst( rst ), - .cfg( oc3_cfg ), - .status( o7_status ), - .full_empty( o7_empty ), - .dma_req( dma_req[3] ), - .dma_ack( dma_ack[3] ) - ); - -ac97_dma_req u4(.clk( clk ), - .rst( rst ), - .cfg( oc4_cfg ), - .status( o8_status ), - .full_empty( o8_empty ), - .dma_req( dma_req[4] ), - .dma_ack( dma_ack[4] ) - ); -`else -assign dma_req[3] = 1'b0; -assign dma_req[4] = 1'b0; -`endif - -`ifdef AC97_LFE -ac97_dma_req u5(.clk( clk ), - .rst( rst ), - .cfg( oc5_cfg ), - .status( o9_status ), - .full_empty( o9_empty ), - .dma_req( dma_req[5] ), - .dma_ack( dma_ack[5] ) - ); -`else -assign dma_req[5] = 1'b0; -`endif - -`ifdef AC97_SIN -ac97_dma_req u6(.clk( clk ), - .rst( rst ), - .cfg( ic0_cfg ), - .status( i3_status ), - .full_empty( i3_full ), - .dma_req( dma_req[6] ), - .dma_ack( dma_ack[6] ) - ); - -ac97_dma_req u7(.clk( clk ), - .rst( rst ), - .cfg( ic1_cfg ), - .status( i4_status ), - .full_empty( i4_full ), - .dma_req( dma_req[7] ), - .dma_ack( dma_ack[7] ) - ); -`else -assign dma_req[6] = 1'b0; -assign dma_req[7] = 1'b0; -`endif - -`ifdef AC97_MICIN -ac97_dma_req u8(.clk( clk ), - .rst( rst ), - .cfg( ic2_cfg ), - .status( i6_status ), - .full_empty( i6_full ), - .dma_req( dma_req[8] ), - .dma_ack( dma_ack[8] ) - ); -`else -assign dma_req[8] = 1'b0; -`endif - -endmodule - - -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// DMA Request Module //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.3 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.2 2002/03/05 04:44:05 rudi -// -// - Fixed the order of the thrash hold bits to match the spec. -// - Many minor synthesis cleanup items ... -// -// Revision 1.1 2001/08/03 06:54:49 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:16 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_dma_req(clk, rst, cfg, status, full_empty, dma_req, dma_ack); -input clk, rst; -input [7:0] cfg; -input [1:0] status; -input full_empty; -output dma_req; -input dma_ack; - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// -reg dma_req_d; -reg dma_req_r1; -reg dma_req; - -//////////////////////////////////////////////////////////////////// -// -// Misc Logic -// - -always @(cfg or status or full_empty) - case(cfg[5:4]) // synopsys parallel_case full_case - // REQ = Ch_EN & DMA_EN & Status - // 1/4 full/empty - 2'h2: dma_req_d = cfg[0] & cfg[6] & (full_empty | (status == 2'h0)); - // 1/2 full/empty - 2'h1: dma_req_d = cfg[0] & cfg[6] & (full_empty | (status[1] == 1'h0)); - // 3/4 full/empty - 2'h0: dma_req_d = cfg[0] & cfg[6] & (full_empty | (status < 2'h3)); - 2'h3: dma_req_d = cfg[0] & cfg[6] & full_empty; - endcase - -always @(posedge clk) - dma_req_r1 <= #1 dma_req_d & !dma_ack; - -always @(posedge clk or negedge rst) - if(!rst) dma_req <= #1 1'b0; - else - if(dma_req_r1 & dma_req_d & !dma_ack) dma_req <= #1 1'b1; - else - if(dma_ack) dma_req <= #1 1'b0; - -endmodule - -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// FIFO Control Module //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.3 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.2 2002/03/05 04:44:05 rudi -// -// - Fixed the order of the thrash hold bits to match the spec. -// - Many minor synthesis cleanup items ... -// -// Revision 1.1 2001/08/03 06:54:49 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:18 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_fifo_ctrl( clk, - valid, ch_en, srs, full_empty, req, crdy, - en_out, en_out_l - ); -input clk; -input valid; -input ch_en; // Channel Enable -input srs; // Sample Rate Select -input full_empty; // Fifo Status -input req; // Codec Request -input crdy; // Codec Ready -output en_out; // Output read/write pulse -output en_out_l; // Latched Output - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg en_out_l, en_out_l2; -reg full_empty_r; - -//////////////////////////////////////////////////////////////////// -// -// Misc Logic -// - -always @(posedge clk) - if(!valid) full_empty_r <= #1 full_empty; - -always @(posedge clk) - if(valid & ch_en & !full_empty_r & crdy & (!srs | (srs & req) ) ) - en_out_l <= #1 1'b1; - else - if(!valid & !(ch_en & !full_empty_r & crdy & (!srs | (srs & req) )) ) - en_out_l <= #1 1'b0; - -always @(posedge clk) - en_out_l2 <= #1 en_out_l & valid; - -assign en_out = en_out_l & !en_out_l2 & valid; - -endmodule -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// Output FIFO //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.5 2002/11/14 17:10:12 rudi -// Fixed a bug in the IN-FIFO - 18 bit samples where not alligned correctly. -// -// Revision 1.4 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.3 2002/03/11 03:21:22 rudi -// -// - Added defines to select fifo depth between 4, 8 and 16 entries. -// -// Revision 1.2 2002/03/05 04:44:05 rudi -// -// - Fixed the order of the thrash hold bits to match the spec. -// - Many minor synthesis cleanup items ... -// -// Revision 1.1 2001/08/03 06:54:50 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:14 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -`ifdef AC97_IN_FIFO_DEPTH_4 - -// 4 entry deep verion of the input FIFO - -module ac97_in_fifo(clk, rst, en, mode, din, we, dout, re, status, full, empty); - -input clk, rst; -input en; -input [1:0] mode; -input [19:0] din; -input we; -output [31:0] dout; -input re; -output [1:0] status; -output full; -output empty; - - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg [31:0] mem[0:3]; -reg [31:0] dout; - -reg [3:0] wp; -reg [2:0] rp; - -wire [3:0] wp_p1; - -reg [1:0] status; -reg [15:0] din_tmp1; -reg [31:0] din_tmp; -wire m16b; -reg full, empty; - -//////////////////////////////////////////////////////////////////// -// -// Misc Logic -// - -assign m16b = (mode == 2'h0); // 16 Bit Mode - -always @(posedge clk) - if(!en) wp <= #1 4'h0; - else - if(we) wp <= #1 wp_p1; - -assign wp_p1 = m16b ? (wp + 4'h1) : (wp + 4'h2); - -always @(posedge clk) - if(!en) rp <= #1 3'h0; - else - if(re) rp <= #1 rp + 3'h1; - -always @(posedge clk) - status <= #1 ((rp[1:0] - wp[2:1]) - 2'h1); - -always @(posedge clk) - empty <= #1 (wp[3:1] == rp[2:0]) & (m16b ? !wp[0] : 1'b0); - -always @(posedge clk) - full <= #1 (wp[2:1] == rp[1:0]) & (wp[3] != rp[2]); - -// Fifo Output -always @(posedge clk) - dout <= #1 mem[ rp[1:0] ]; - -// Fifo Input Half Word Latch -always @(posedge clk) - if(we & !wp[0]) din_tmp1 <= #1 din[19:4]; - -always @(mode or din_tmp1 or din) - case(mode) // synopsys parallel_case full_case - 2'h0: din_tmp = {din[19:4], din_tmp1}; // 16 Bit Output - 2'h1: din_tmp = {14'h0, din[19:2]}; // 18 bit Output - 2'h2: din_tmp = {11'h0, din[19:0]}; // 20 Bit Output - endcase - -always @(posedge clk) - if(we & (!m16b | (m16b & wp[0]) ) ) mem[ wp[2:1] ] <= #1 din_tmp; - -endmodule - -`endif - -`ifdef AC97_IN_FIFO_DEPTH_8 - -// 8 entry deep verion of the input FIFO - -module ac97_in_fifo(clk, rst, en, mode, din, we, dout, re, status, full, empty); - -input clk, rst; -input en; -input [1:0] mode; -input [19:0] din; -input we; -output [31:0] dout; -input re; -output [1:0] status; -output full; -output empty; - - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg [31:0] mem[0:7]; -reg [31:0] dout; - -reg [4:0] wp; -reg [3:0] rp; - -wire [4:0] wp_p1; - -reg [1:0] status; -reg [15:0] din_tmp1; -reg [31:0] din_tmp; -wire m16b; -reg full, empty; - -//////////////////////////////////////////////////////////////////// -// -// Misc Logic -// - -assign m16b = (mode == 2'h0); // 16 Bit Mode - -always @(posedge clk) - if(!en) wp <= #1 5'h0; - else - if(we) wp <= #1 wp_p1; - -assign wp_p1 = m16b ? (wp + 5'h1) : (wp + 5'h2); - -always @(posedge clk) - if(!en) rp <= #1 4'h0; - else - if(re) rp <= #1 rp + 4'h1; - -always @(posedge clk) - status <= #1 ((rp[2:1] - wp[3:2]) - 2'h1); - -always @(posedge clk) - empty <= #1 (wp[4:1] == rp[3:0]) & (m16b ? !wp[0] : 1'b0); - -always @(posedge clk) - full <= #1 (wp[3:1] == rp[2:0]) & (wp[4] != rp[3]); - -// Fifo Output -always @(posedge clk) - dout <= #1 mem[ rp[2:0] ]; - -// Fifo Input Half Word Latch -always @(posedge clk) - if(we & !wp[0]) din_tmp1 <= #1 din[19:4]; - -always @(mode or din_tmp1 or din) - case(mode) // synopsys parallel_case full_case - 2'h0: din_tmp = {din[19:4], din_tmp1}; // 16 Bit Output - 2'h1: din_tmp = {14'h0, din[19:2]}; // 18 bit Output - 2'h2: din_tmp = {11'h0, din[19:0]}; // 20 Bit Output - endcase - -always @(posedge clk) - if(we & (!m16b | (m16b & wp[0]) ) ) mem[ wp[3:1] ] <= #1 din_tmp; - -endmodule - -`endif - - -`ifdef AC97_IN_FIFO_DEPTH_16 - -// 16 entry deep verion of the input FIFO - -module ac97_in_fifo(clk, rst, en, mode, din, we, dout, re, status, full, empty); - -input clk, rst; -input en; -input [1:0] mode; -input [19:0] din; -input we; -output [31:0] dout; -input re; -output [1:0] status; -output full; -output empty; - - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg [31:0] mem[0:15]; -reg [31:0] dout; - -reg [5:0] wp; -reg [4:0] rp; - -wire [5:0] wp_p1; - -reg [1:0] status; -reg [15:0] din_tmp1; -reg [31:0] din_tmp; -wire m16b; -reg full, empty; - -//////////////////////////////////////////////////////////////////// -// -// Misc Logic -// - -assign m16b = (mode == 2'h0); // 16 Bit Mode - -always @(posedge clk) - if(!en) wp <= #1 6'h0; - else - if(we) wp <= #1 wp_p1; - -assign wp_p1 = m16b ? (wp + 6'h1) : (wp + 6'h2); - -always @(posedge clk) - if(!en) rp <= #1 5'h0; - else - if(re) rp <= #1 rp + 5'h1; - -always @(posedge clk) - status <= #1 ((rp[3:2] - wp[4:3]) - 2'h1); - -always @(posedge clk) - empty <= #1 (wp[5:1] == rp[4:0]) & (m16b ? !wp[0] : 1'b0); - -always @(posedge clk) - full <= #1 (wp[4:1] == rp[3:0]) & (wp[5] != rp[4]); - -// Fifo Output -always @(posedge clk) - dout <= #1 mem[ rp[3:0] ]; - -// Fifo Input Half Word Latch -always @(posedge clk) - if(we & !wp[0]) din_tmp1 <= #1 din[19:4]; - -always @(mode or din_tmp1 or din) - case(mode) // synopsys parallel_case full_case - 2'h0: din_tmp = {din[19:4], din_tmp1}; // 16 Bit Output - 2'h1: din_tmp = {14'h0, din[19:2]}; // 18 bit Output - 2'h2: din_tmp = {11'h0, din[19:0]}; // 20 Bit Output - endcase - -always @(posedge clk) - if(we & (!m16b | (m16b & wp[0]) ) ) mem[ wp[4:1] ] <= #1 din_tmp; - -endmodule - -`endif -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// Interrupt Logic //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.3 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.2 2002/03/05 04:44:05 rudi -// -// - Fixed the order of the thrash hold bits to match the spec. -// - Many minor synthesis cleanup items ... -// -// Revision 1.1 2001/08/03 06:54:50 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:18 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_int(clk, rst, - - // Register File Interface - int_set, - - // FIFO Interface - cfg, status, full_empty, full, empty, re, we - ); - -input clk, rst; -output [2:0] int_set; - -input [7:0] cfg; -input [1:0] status; -input full_empty, full, empty, re, we; - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg [2:0] int_set; - -//////////////////////////////////////////////////////////////////// -// -// Interrupt Logic -// - -always @(posedge clk or negedge rst) - if(!rst) int_set[0] <= #1 1'b0; - else - case(cfg[5:4]) // synopsys parallel_case full_case - // 1/4 full/empty - 2'h2: int_set[0] <= #1 cfg[0] & (full_empty | (status == 2'h0)); - // 1/2 full/empty - 2'h1: int_set[0] <= #1 cfg[0] & (full_empty | (status[1] == 1'h0)); - // 3/4 full/empty - 2'h0: int_set[0] <= #1 cfg[0] & (full_empty | (status < 2'h3)); - 2'h3: int_set[0] <= #1 cfg[0] & full_empty; - endcase - -always @(posedge clk or negedge rst) - if(!rst) int_set[1] <= #1 1'b0; - else - if(empty & re) int_set[1] <= #1 1'b1; - -always @(posedge clk or negedge rst) - if(!rst) int_set[2] <= #1 1'b0; - else - if(full & we) int_set[2] <= #1 1'b1; - -endmodule -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// Output FIFO //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.4 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.3 2002/03/11 03:21:22 rudi -// -// - Added defines to select fifo depth between 4, 8 and 16 entries. -// -// Revision 1.1 2001/08/03 06:54:50 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:16 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -`ifdef AC97_OUT_FIFO_DEPTH_4 - -// 4 Entry Deep version of the Output FIFO - -module ac97_out_fifo(clk, rst, en, mode, din, we, dout, re, status, full, empty); - -input clk, rst; -input en; -input [1:0] mode; -input [31:0] din; -input we; -output [19:0] dout; -input re; -output [1:0] status; -output full; -output empty; - - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg [31:0] mem[0:3]; - -reg [2:0] wp; -reg [3:0] rp; - -wire [2:0] wp_p1; - -reg [1:0] status; -reg [19:0] dout; -wire [31:0] dout_tmp; -wire [15:0] dout_tmp1; -wire m16b; -reg empty; - -//////////////////////////////////////////////////////////////////// -// -// Misc Logic -// - -assign m16b = (mode == 2'h0); // 16 Bit Mode - -always @(posedge clk) - if(!en) wp <= #1 3'h0; - else - if(we) wp <= #1 wp_p1; - -assign wp_p1 = wp + 3'h1; - -always @(posedge clk) - if(!en) rp <= #1 4'h0; - else - if(re & m16b) rp <= #1 rp + 4'h1; - else - if(re & !m16b) rp <= #1 rp + 4'h2; - -always @(posedge clk) - status <= #1 (wp[1:0] - rp[2:1]) - 2'h1; - -wire [3:0] rp_p1 = rp[3:0] + 4'h1; - -always @(posedge clk) - empty <= #1 (rp_p1[3:1] == wp[2:0]) & (m16b ? rp_p1[0] : 1'b1); - -assign full = (wp[1:0] == rp[2:1]) & (wp[2] != rp[3]); - -// Fifo Output -assign dout_tmp = mem[ rp[2:1] ]; - -// Fifo Output Half Word Select -assign dout_tmp1 = rp[0] ? dout_tmp[31:16] : dout_tmp[15:0]; - -always @(posedge clk) - if(!en) dout <= #1 20'h0; - else - if(re) - case(mode) // synopsys parallel_case full_case - 2'h0: dout <= #1 {dout_tmp1, 4'h0}; // 16 Bit Output - 2'h1: dout <= #1 {dout_tmp[17:0], 2'h0}; // 18 bit Output - 2'h2: dout <= #1 dout_tmp[19:0]; // 20 Bit Output - endcase - -always @(posedge clk) - if(we) mem[wp[1:0]] <= #1 din; - -endmodule - -`endif - -`ifdef AC97_OUT_FIFO_DEPTH_8 - -// 8 Entry Deep version of the Output FIFO - -module ac97_out_fifo(clk, rst, en, mode, din, we, dout, re, status, full, empty); - -input clk, rst; -input en; -input [1:0] mode; -input [31:0] din; -input we; -output [19:0] dout; -input re; -output [1:0] status; -output full; -output empty; - - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg [31:0] mem[0:7]; - -reg [3:0] wp; -reg [4:0] rp; - -wire [3:0] wp_p1; - -reg [1:0] status; -reg [19:0] dout; -wire [31:0] dout_tmp; -wire [15:0] dout_tmp1; -wire m16b; -reg empty; - -//////////////////////////////////////////////////////////////////// -// -// Misc Logic -// - -assign m16b = (mode == 2'h0); // 16 Bit Mode - -always @(posedge clk) - if(!en) wp <= #1 4'h0; - else - if(we) wp <= #1 wp_p1; - -assign wp_p1 = wp + 4'h1; - -always @(posedge clk) - if(!en) rp <= #1 5'h0; - else - if(re & m16b) rp <= #1 rp + 5'h1; - else - if(re & !m16b) rp <= #1 rp + 5'h2; - -always @(posedge clk) - status <= #1 (wp[2:1] - rp[3:2]) - 2'h1; - -wire [4:0] rp_p1 = rp[4:0] + 5'h1; - -always @(posedge clk) - empty <= #1 (rp_p1[4:1] == wp[3:0]) & (m16b ? rp_p1[0] : 1'b1); - -assign full = (wp[2:0] == rp[3:1]) & (wp[3] != rp[4]); - -// Fifo Output -assign dout_tmp = mem[ rp[3:1] ]; - -// Fifo Output Half Word Select -assign dout_tmp1 = rp[0] ? dout_tmp[31:16] : dout_tmp[15:0]; - -always @(posedge clk) - if(!en) dout <= #1 20'h0; - else - if(re) - case(mode) // synopsys parallel_case full_case - 2'h0: dout <= #1 {dout_tmp1, 4'h0}; // 16 Bit Output - 2'h1: dout <= #1 {dout_tmp[17:0], 2'h0}; // 18 bit Output - 2'h2: dout <= #1 dout_tmp[19:0]; // 20 Bit Output - endcase - - -always @(posedge clk) - if(we) mem[wp[2:0]] <= #1 din; - -endmodule - -`endif - - -`ifdef AC97_OUT_FIFO_DEPTH_16 - -// 16 Entry Deep version of the Output FIFO - -module ac97_out_fifo(clk, rst, en, mode, din, we, dout, re, status, full, empty); - -input clk, rst; -input en; -input [1:0] mode; -input [31:0] din; -input we; -output [19:0] dout; -input re; -output [1:0] status; -output full; -output empty; - - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg [31:0] mem[0:15]; - -reg [4:0] wp; -reg [5:0] rp; - -wire [4:0] wp_p1; - -reg [1:0] status; -reg [19:0] dout; -wire [31:0] dout_tmp; -wire [15:0] dout_tmp1; -wire m16b; -reg empty; - -//////////////////////////////////////////////////////////////////// -// -// Misc Logic -// - -assign m16b = (mode == 2'h0); // 16 Bit Mode - -always @(posedge clk) - if(!en) wp <= #1 5'h0; - else - if(we) wp <= #1 wp_p1; - -assign wp_p1 = wp + 4'h1; - -always @(posedge clk) - if(!en) rp <= #1 6'h0; - else - if(re & m16b) rp <= #1 rp + 6'h1; - else - if(re & !m16b) rp <= #1 rp + 6'h2; - -always @(posedge clk) - status <= #1 (wp[3:2] - rp[4:3]) - 2'h1; - -wire [5:0] rp_p1 = rp[5:0] + 6'h1; - -always @(posedge clk) - empty <= #1 (rp_p1[5:1] == wp[4:0]) & (m16b ? rp_p1[0] : 1'b1); - -assign full = (wp[3:0] == rp[4:1]) & (wp[4] != rp[5]); - -// Fifo Output -assign dout_tmp = mem[ rp[4:1] ]; - -// Fifo Output Half Word Select -assign dout_tmp1 = rp[0] ? dout_tmp[31:16] : dout_tmp[15:0]; - -always @(posedge clk) - if(!en) dout <= #1 20'h0; - else - if(re) - case(mode) // synopsys parallel_case full_case - 2'h0: dout <= #1 {dout_tmp1, 4'h0}; // 16 Bit Output - 2'h1: dout <= #1 {dout_tmp[17:0], 2'h0}; // 18 bit Output - 2'h2: dout <= #1 dout_tmp[19:0]; // 20 Bit Output - endcase - - -always @(posedge clk) - if(we) mem[wp[3:0]] <= #1 din; - -endmodule - -`endif -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// PCM Request Controller //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.4 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.3 2002/03/05 04:44:05 rudi -// -// - Fixed the order of the thrash hold bits to match the spec. -// - Many minor synthesis cleanup items ... -// -// Revision 1.2 2001/08/10 08:09:42 rudi -// -// - Removed RTY_O output. -// - Added Clock and Reset Inputs to documentation. -// - Changed IO names to be more clear. -// - Uniquifyed define names to be core specific. -// -// Revision 1.1 2001/08/03 06:54:50 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:17 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_prc(clk, rst, - - // SR Slot Interface - valid, in_valid, out_slt0, - in_slt0, in_slt1, - - // Codec Register Access - crac_valid, crac_wr, - - // Channel Configuration - oc0_cfg, oc1_cfg, oc2_cfg, oc3_cfg, oc4_cfg, oc5_cfg, - ic0_cfg, ic1_cfg, ic2_cfg, - - // FIFO Status - o3_empty, o4_empty, o6_empty, o7_empty, o8_empty, - o9_empty, i3_full, i4_full, i6_full, - - // FIFO Control - o3_re, o4_re, o6_re, o7_re, o8_re, o9_re, - i3_we, i4_we, i6_we - - ); -input clk, rst; - -input valid; -input [2:0] in_valid; -output [15:0] out_slt0; -input [15:0] in_slt0; -input [19:0] in_slt1; - -input crac_valid; -input crac_wr; - -input [7:0] oc0_cfg; -input [7:0] oc1_cfg; -input [7:0] oc2_cfg; -input [7:0] oc3_cfg; -input [7:0] oc4_cfg; -input [7:0] oc5_cfg; - -input [7:0] ic0_cfg; -input [7:0] ic1_cfg; -input [7:0] ic2_cfg; - -input o3_empty; -input o4_empty; -input o6_empty; -input o7_empty; -input o8_empty; -input o9_empty; -input i3_full; -input i4_full; -input i6_full; - -output o3_re; -output o4_re; -output o6_re; -output o7_re; -output o8_re; -output o9_re; -output i3_we; -output i4_we; -output i6_we; - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -wire o3_re_l; -wire o4_re_l; -wire o6_re_l; -wire o7_re_l; -wire o8_re_l; -wire o9_re_l; - -reg crac_valid_r; -reg crac_wr_r; - -//////////////////////////////////////////////////////////////////// -// -// Output Tag Assembly -// - -assign out_slt0[15] = |out_slt0[14:6]; - -assign out_slt0[14] = crac_valid_r; -assign out_slt0[13] = crac_wr_r; - -assign out_slt0[12] = o3_re_l; -assign out_slt0[11] = o4_re_l; -assign out_slt0[10] = 1'b0; -assign out_slt0[09] = o6_re_l; -assign out_slt0[08] = o7_re_l; -assign out_slt0[07] = o8_re_l; -assign out_slt0[06] = o9_re_l; -assign out_slt0[5:0] = 6'h0; - -//////////////////////////////////////////////////////////////////// -// -// FIFO Control -// - -always @(posedge clk) - if(valid) crac_valid_r <= #1 crac_valid; - -always @(posedge clk) - if(valid) crac_wr_r <= #1 crac_valid & crac_wr; - -// Output Channel 0 (Out Slot 3) -ac97_fifo_ctrl u0( - .clk( clk ), - .valid( valid ), - .ch_en( oc0_cfg[0] ), - .srs( oc0_cfg[1] ), - .full_empty( o3_empty ), - .req( ~in_slt1[11] ), - .crdy( in_slt0[15] ), - .en_out( o3_re ), - .en_out_l( o3_re_l ) - ); - -// Output Channel 1 (Out Slot 4) -ac97_fifo_ctrl u1( - .clk( clk ), - .valid( valid ), - .ch_en( oc1_cfg[0] ), - .srs( oc1_cfg[1] ), - .full_empty( o4_empty ), - .req( ~in_slt1[10] ), - .crdy( in_slt0[15] ), - .en_out( o4_re ), - .en_out_l( o4_re_l ) - ); - -`ifdef AC97_CENTER -// Output Channel 2 (Out Slot 6) -ac97_fifo_ctrl u2( - .clk( clk ), - .valid( valid ), - .ch_en( oc2_cfg[0] ), - .srs( oc2_cfg[1] ), - .full_empty( o6_empty ), - .req( ~in_slt1[8] ), - .crdy( in_slt0[15] ), - .en_out( o6_re ), - .en_out_l( o6_re_l ) - ); -`else -assign o6_re = 1'b0; -assign o6_re_l = 1'b0; -`endif - -`ifdef AC97_SURROUND -// Output Channel 3 (Out Slot 7) -ac97_fifo_ctrl u3( - .clk( clk ), - .valid( valid ), - .ch_en( oc3_cfg[0] ), - .srs( oc3_cfg[1] ), - .full_empty( o7_empty ), - .req( ~in_slt1[7] ), - .crdy( in_slt0[15] ), - .en_out( o7_re ), - .en_out_l( o7_re_l ) - ); - -// Output Channel 4 (Out Slot 8) -ac97_fifo_ctrl u4( - .clk( clk ), - .valid( valid ), - .ch_en( oc4_cfg[0] ), - .srs( oc4_cfg[1] ), - .full_empty( o8_empty ), - .req( ~in_slt1[6] ), - .crdy( in_slt0[15] ), - .en_out( o8_re ), - .en_out_l( o8_re_l ) - ); -`else -assign o7_re = 1'b0; -assign o7_re_l = 1'b0; -assign o8_re = 1'b0; -assign o8_re_l = 1'b0; -`endif - -`ifdef AC97_LFE -// Output Channel 5 (Out Slot 9) -ac97_fifo_ctrl u5( - .clk( clk ), - .valid( valid ), - .ch_en( oc5_cfg[0] ), - .srs( oc5_cfg[1] ), - .full_empty( o9_empty ), - .req( ~in_slt1[5] ), - .crdy( in_slt0[15] ), - .en_out( o9_re ), - .en_out_l( o9_re_l ) - ); -`else -assign o9_re = 1'b0; -assign o9_re_l = 1'b0; -`endif - -`ifdef AC97_SIN -// Input Channel 0 (In Slot 3) -ac97_fifo_ctrl u6( - .clk( clk ), - .valid( in_valid[0] ), - .ch_en( ic0_cfg[0] ), - .srs( ic0_cfg[1] ), - .full_empty( i3_full ), - .req( in_slt0[12] ), - .crdy( in_slt0[15] ), - .en_out( i3_we ), - .en_out_l( ) - ); - -// Input Channel 1 (In Slot 4) -ac97_fifo_ctrl u7( - .clk( clk ), - .valid( in_valid[1] ), - .ch_en( ic1_cfg[0] ), - .srs( ic1_cfg[1] ), - .full_empty( i4_full ), - .req( in_slt0[11] ), - .crdy( in_slt0[15] ), - .en_out( i4_we ), - .en_out_l( ) - ); -`else -assign i3_we = 1'b0; -assign i4_we = 1'b0; -`endif - -`ifdef AC97_MICIN -// Input Channel 2 (In Slot 6) -ac97_fifo_ctrl u8( - .clk( clk ), - .valid( in_valid[2] ), - .ch_en( ic2_cfg[0] ), - .srs( ic2_cfg[1] ), - .full_empty( i6_full ), - .req( in_slt0[9] ), - .crdy( in_slt0[15] ), - .en_out( i6_we ), - .en_out_l( ) - ); -`else -assign i6_we = 1'b0; -`endif - -endmodule - - -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// Register File //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.4 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.3 2002/03/05 04:44:05 rudi -// -// - Fixed the order of the thrash hold bits to match the spec. -// - Many minor synthesis cleanup items ... -// -// Revision 1.2 2001/08/10 08:09:42 rudi -// -// - Removed RTY_O output. -// - Added Clock and Reset Inputs to documentation. -// - Changed IO names to be more clear. -// - Uniquifyed define names to be core specific. -// -// Revision 1.1 2001/08/03 06:54:50 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:17 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_rf(clk, rst, - - adr, rf_dout, rf_din, - rf_we, rf_re, int, ac97_rst_force, - resume_req, suspended, - - crac_we, crac_din, crac_out, - crac_rd_done, crac_wr_done, - - oc0_cfg, oc1_cfg, oc2_cfg, oc3_cfg, oc4_cfg, oc5_cfg, - ic0_cfg, ic1_cfg, ic2_cfg, - oc0_int_set, oc1_int_set, oc2_int_set, oc3_int_set, - oc4_int_set, oc5_int_set, - ic0_int_set, ic1_int_set, ic2_int_set - - ); - -input clk,rst; - -input [3:0] adr; -output [31:0] rf_dout; -input [31:0] rf_din; -input rf_we; -input rf_re; -output int; -output ac97_rst_force; -output resume_req; -input suspended; - -output crac_we; -input [15:0] crac_din; -output [31:0] crac_out; -input crac_rd_done, crac_wr_done; - -output [7:0] oc0_cfg; -output [7:0] oc1_cfg; -output [7:0] oc2_cfg; -output [7:0] oc3_cfg; -output [7:0] oc4_cfg; -output [7:0] oc5_cfg; - -output [7:0] ic0_cfg; -output [7:0] ic1_cfg; -output [7:0] ic2_cfg; - -input [2:0] oc0_int_set; -input [2:0] oc1_int_set; -input [2:0] oc2_int_set; -input [2:0] oc3_int_set; -input [2:0] oc4_int_set; -input [2:0] oc5_int_set; -input [2:0] ic0_int_set; -input [2:0] ic1_int_set; -input [2:0] ic2_int_set; - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg [31:0] rf_dout; - -reg [31:0] csr_r; -reg [31:0] occ0_r; -reg [15:0] occ1_r; -reg [23:0] icc_r; -reg [31:0] crac_r; -reg [28:0] intm_r; -reg [28:0] ints_r; -reg int; -wire [28:0] int_all; -wire [31:0] csr, occ0, occ1, icc, crac, intm, ints; -reg [15:0] crac_dout_r; -reg ac97_rst_force; -reg resume_req; - -// Aliases -assign csr = {30'h0, suspended, 1'h0}; -assign occ0 = occ0_r; -assign occ1 = {16'h0, occ1_r}; -assign icc = {8'h0, icc_r}; -assign crac = {crac_r[7], 8'h0, crac_r[6:0], crac_din}; -assign intm = {3'h0, intm_r}; -assign ints = {3'h0, ints_r}; - -assign crac_out = {crac_r[7], 8'h0, crac_r[6:0], crac_dout_r}; - -//////////////////////////////////////////////////////////////////// -// -// Register WISHBONE Interface -// - -always @(adr or csr or occ0 or occ1 or icc or crac or intm or ints) - case(adr[2:0]) // synopsys parallel_case full_case - 0: rf_dout = csr; - 1: rf_dout = occ0; - 2: rf_dout = occ1; - 3: rf_dout = icc; - 4: rf_dout = crac; - 5: rf_dout = intm; - 6: rf_dout = ints; - endcase - -always @(posedge clk or negedge rst) - if(!rst) csr_r <= #1 1'b0; - else - if(rf_we & (adr[2:0]==3'h0)) csr_r <= #1 rf_din; - -always @(posedge clk) - if(rf_we & (adr[2:0]==3'h0)) ac97_rst_force <= #1 rf_din[0]; - else ac97_rst_force <= #1 1'b0; - -always @(posedge clk) - if(rf_we & (adr[2:0]==3'h0)) resume_req <= #1 rf_din[1]; - else resume_req <= #1 1'b0; - -always @(posedge clk or negedge rst) - if(!rst) occ0_r <= #1 1'b0; - else - if(rf_we & (adr[2:0]==3'h1)) occ0_r <= #1 rf_din; - -always @(posedge clk or negedge rst) - if(!rst) occ1_r <= #1 1'b0; - else - if(rf_we & (adr[2:0]==3'h2)) occ1_r <= #1 rf_din[23:0]; - -always @(posedge clk or negedge rst) - if(!rst) icc_r <= #1 1'b0; - else - if(rf_we & (adr[2:0]==3'h3)) icc_r <= #1 rf_din[23:0]; - -assign crac_we = rf_we & (adr[2:0]==3'h4); - -always @(posedge clk or negedge rst) - if(!rst) crac_r <= #1 1'b0; - else - if(crac_we) crac_r <= #1 {rf_din[31], rf_din[22:16]}; - -always @(posedge clk) - if(crac_we) crac_dout_r <= #1 rf_din[15:0]; - -always @(posedge clk or negedge rst) - if(!rst) intm_r <= #1 1'b0; - else - if(rf_we & (adr[2:0]==3'h5)) intm_r <= #1 rf_din[28:0]; - -// Interrupt Source Register -always @(posedge clk or negedge rst) - if(!rst) ints_r <= #1 1'b0; - else - if(rf_re & (adr[2:0]==3'h6)) ints_r <= #1 1'b0; - else - begin - if(crac_rd_done) ints_r[0] <= #1 1'b1; - if(crac_wr_done) ints_r[1] <= #1 1'b1; - if(oc0_int_set[0]) ints_r[2] <= #1 1'b1; - if(oc0_int_set[1]) ints_r[3] <= #1 1'b1; - if(oc0_int_set[2]) ints_r[4] <= #1 1'b1; - if(oc1_int_set[0]) ints_r[5] <= #1 1'b1; - if(oc1_int_set[1]) ints_r[6] <= #1 1'b1; - if(oc1_int_set[2]) ints_r[7] <= #1 1'b1; -`ifdef AC97_CENTER - if(oc2_int_set[0]) ints_r[8] <= #1 1'b1; - if(oc2_int_set[1]) ints_r[9] <= #1 1'b1; - if(oc2_int_set[2]) ints_r[10] <= #1 1'b1; -`endif - -`ifdef AC97_SURROUND - if(oc3_int_set[0]) ints_r[11] <= #1 1'b1; - if(oc3_int_set[1]) ints_r[12] <= #1 1'b1; - if(oc3_int_set[2]) ints_r[13] <= #1 1'b1; - if(oc4_int_set[0]) ints_r[14] <= #1 1'b1; - if(oc4_int_set[1]) ints_r[15] <= #1 1'b1; - if(oc4_int_set[2]) ints_r[16] <= #1 1'b1; -`endif - -`ifdef AC97_LFE - if(oc5_int_set[0]) ints_r[17] <= #1 1'b1; - if(oc5_int_set[1]) ints_r[18] <= #1 1'b1; - if(oc5_int_set[2]) ints_r[19] <= #1 1'b1; -`endif - -`ifdef AC97_SIN - if(ic0_int_set[0]) ints_r[20] <= #1 1'b1; - if(ic0_int_set[1]) ints_r[21] <= #1 1'b1; - if(ic0_int_set[2]) ints_r[22] <= #1 1'b1; - if(ic1_int_set[0]) ints_r[23] <= #1 1'b1; - if(ic1_int_set[1]) ints_r[24] <= #1 1'b1; - if(ic1_int_set[2]) ints_r[25] <= #1 1'b1; -`endif - -`ifdef AC97_MICIN - if(ic2_int_set[0]) ints_r[26] <= #1 1'b1; - if(ic2_int_set[1]) ints_r[27] <= #1 1'b1; - if(ic2_int_set[2]) ints_r[28] <= #1 1'b1; -`endif - end - -//////////////////////////////////////////////////////////////////// -// -// Register Internal Interface -// - -assign oc0_cfg = occ0[7:0]; -assign oc1_cfg = occ0[15:8]; -assign oc2_cfg = occ0[23:16]; -assign oc3_cfg = occ0[31:24]; -assign oc4_cfg = occ1[7:0]; -assign oc5_cfg = occ1[15:8]; - -assign ic0_cfg = icc[7:0]; -assign ic1_cfg = icc[15:8]; -assign ic2_cfg = icc[23:16]; - -//////////////////////////////////////////////////////////////////// -// -// Interrupt Generation -// - -assign int_all = intm_r & ints_r; - -always @(posedge clk) - int <= #1 |int_all; - -endmodule -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller Reset Module //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2001 Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.1 2001/08/03 06:54:50 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:19 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_rst(clk, rst, rst_force, ps_ce, ac97_rst_); -input clk, rst; -input rst_force; -output ps_ce; -output ac97_rst_; - -reg ac97_rst_; -reg [2:0] cnt; -wire ce; -wire to; -reg [5:0] ps_cnt; -wire ps_ce; - -always @(posedge clk or negedge rst) - if(!rst) ac97_rst_ <= #1 0; - else - if(rst_force) ac97_rst_ <= #1 0; - else - if(to) ac97_rst_ <= #1 1; - -assign to = (cnt == `AC97_RST_DEL); - -always @(posedge clk or negedge rst) - if(!rst) cnt <= #1 0; - else - if(rst_force) cnt <= #1 0; - else - if(ce) cnt <= #1 cnt + 1; - -assign ce = ps_ce & (cnt != `AC97_RST_DEL); - -always @(posedge clk or negedge rst) - if(!rst) ps_cnt <= #1 0; - else - if(ps_ce | rst_force) ps_cnt <= #1 0; - else ps_cnt <= #1 ps_cnt + 1; - -assign ps_ce = (ps_cnt == `AC97_250_PS); - -endmodule -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// Serial Input Block //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.2 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.1 2001/08/03 06:54:50 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:15 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_sin(clk, rst, - - out_le, slt0, slt1, slt2, slt3, slt4, - slt6, - - sdata_in - ); - -input clk, rst; - -// -------------------------------------- -// Misc Signals -input [5:0] out_le; -output [15:0] slt0; -output [19:0] slt1; -output [19:0] slt2; -output [19:0] slt3; -output [19:0] slt4; -output [19:0] slt6; - -// -------------------------------------- -// AC97 Codec Interface -input sdata_in; - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg sdata_in_r; -reg [19:0] sr; - -reg [15:0] slt0; -reg [19:0] slt1; -reg [19:0] slt2; -reg [19:0] slt3; -reg [19:0] slt4; -reg [19:0] slt6; - -//////////////////////////////////////////////////////////////////// -// -// Output Registers -// - -always @(posedge clk) - if(out_le[0]) slt0 <= #1 sr[15:0]; - -always @(posedge clk) - if(out_le[1]) slt1 <= #1 sr; - -always @(posedge clk) - if(out_le[2]) slt2 <= #1 sr; - -always @(posedge clk) - if(out_le[3]) slt3 <= #1 sr; - -always @(posedge clk) - if(out_le[4]) slt4 <= #1 sr; - -always @(posedge clk) - if(out_le[5]) slt6 <= #1 sr; - -//////////////////////////////////////////////////////////////////// -// -// Serial Shift Register -// - -always @(negedge clk) - sdata_in_r <= #1 sdata_in; - -always @(posedge clk) - sr <= #1 {sr[18:0], sdata_in_r }; - -endmodule - - -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// Serial Output Controller //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.3 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.2 2002/03/05 04:44:05 rudi -// -// - Fixed the order of the thrash hold bits to match the spec. -// - Many minor synthesis cleanup items ... -// -// Revision 1.1 2001/08/03 06:54:50 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:15 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_soc(clk, wclk, rst, - ps_ce, resume, suspended, - sync, out_le, in_valid, ld, valid - ); - -input clk, wclk, rst; -input ps_ce; -input resume; -output suspended; -output sync; -output [5:0] out_le; -output [2:0] in_valid; -output ld; -output valid; - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg [7:0] cnt; -reg sync_beat; -reg sync_resume; -reg [5:0] out_le; -reg ld; -reg valid; -reg [2:0] in_valid; -reg bit_clk_r; -reg bit_clk_r1; -reg bit_clk_e; -reg suspended; -wire to; -reg [5:0] to_cnt; -reg [3:0] res_cnt; -wire resume_done; - -assign sync = sync_beat | sync_resume; - -//////////////////////////////////////////////////////////////////// -// -// Misc Logic -// - -always @(posedge clk or negedge rst) - if(!rst) cnt <= #1 8'hff; - else - if(suspended) cnt <= #1 8'hff; - else cnt <= #1 cnt + 8'h1; - -always @(posedge clk) - ld <= #1 (cnt == 8'h00); - -always @(posedge clk) - sync_beat <= #1 (cnt == 8'h00) | ((cnt > 8'h00) & (cnt < 8'h10)); - -always @(posedge clk) - valid <= #1 (cnt > 8'h39); - -always @(posedge clk) - out_le[0] <= #1 (cnt == 8'h11); // Slot 0 Latch Enable - -always @(posedge clk) - out_le[1] <= #1 (cnt == 8'h25); // Slot 1 Latch Enable - -always @(posedge clk) - out_le[2] <= #1 (cnt == 8'h39); // Slot 2 Latch Enable - -always @(posedge clk) - out_le[3] <= #1 (cnt == 8'h4d); // Slot 3 Latch Enable - -always @(posedge clk) - out_le[4] <= #1 (cnt == 8'h61); // Slot 4 Latch Enable - -always @(posedge clk) - out_le[5] <= #1 (cnt == 8'h89); // Slot 6 Latch Enable - -always @(posedge clk) - in_valid[0] <= #1 (cnt > 8'h4d); // Input Slot 3 Valid - -always @(posedge clk) - in_valid[1] <= #1 (cnt > 8'h61); // Input Slot 3 Valid - -always @(posedge clk) - in_valid[2] <= #1 (cnt > 8'h89); // Input Slot 3 Valid - -//////////////////////////////////////////////////////////////////// -// -// Suspend Detect -// - -always @(posedge wclk) - bit_clk_r <= #1 clk; - -always @(posedge wclk) - bit_clk_r1 <= #1 bit_clk_r; - -always @(posedge wclk) - bit_clk_e <= #1 (bit_clk_r & !bit_clk_r1) | (!bit_clk_r & bit_clk_r1); - -always @(posedge wclk) - suspended <= #1 to; - -assign to = (to_cnt == `AC97_SUSP_DET); - -always @(posedge wclk or negedge rst) - if(!rst) to_cnt <= #1 6'h0; - else - if(bit_clk_e) to_cnt <= #1 6'h0; - else - if(!to) to_cnt <= #1 to_cnt + 6'h1; - -//////////////////////////////////////////////////////////////////// -// -// Resume Signaling -// - -always @(posedge wclk or negedge rst) - if(!rst) sync_resume <= #1 1'b0; - else - if(resume_done) sync_resume <= #1 1'b0; - else - if(suspended & resume) sync_resume <= #1 1'b1; - -assign resume_done = (res_cnt == `AC97_RES_SIG); - -always @(posedge wclk) - if(!sync_resume) res_cnt <= #1 4'h0; - else - if(ps_ce) res_cnt <= #1 res_cnt + 4'h1; - -endmodule -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// Serial Output Block //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.2 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.1 2001/08/03 06:54:50 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:15 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_sout(clk, rst, - - so_ld, slt0, slt1, slt2, slt3, slt4, - slt6, slt7, slt8, slt9, - - sdata_out - ); - -input clk, rst; - -// -------------------------------------- -// Misc Signals -input so_ld; -input [15:0] slt0; -input [19:0] slt1; -input [19:0] slt2; -input [19:0] slt3; -input [19:0] slt4; -input [19:0] slt6; -input [19:0] slt7; -input [19:0] slt8; -input [19:0] slt9; - -// -------------------------------------- -// AC97 Codec Interface -output sdata_out; - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -wire sdata_out; - -reg [15:0] slt0_r; -reg [19:0] slt1_r; -reg [19:0] slt2_r; -reg [19:0] slt3_r; -reg [19:0] slt4_r; -reg [19:0] slt5_r; -reg [19:0] slt6_r; -reg [19:0] slt7_r; -reg [19:0] slt8_r; -reg [19:0] slt9_r; -reg [19:0] slt10_r; -reg [19:0] slt11_r; -reg [19:0] slt12_r; - -//////////////////////////////////////////////////////////////////// -// -// Misc Logic -// - -//////////////////////////////////////////////////////////////////// -// -// Serial Shift Register -// - -assign sdata_out = slt0_r[15]; - -always @(posedge clk) - if(so_ld) slt0_r <= #1 slt0; - else slt0_r <= #1 {slt0_r[14:0], slt1_r[19]}; - -always @(posedge clk) - if(so_ld) slt1_r <= #1 slt1; - else slt1_r <= #1 {slt1_r[18:0], slt2_r[19]}; - -always @(posedge clk) - if(so_ld) slt2_r <= #1 slt2; - else slt2_r <= #1 {slt2_r[18:0], slt3_r[19]}; - -always @(posedge clk) - if(so_ld) slt3_r <= #1 slt3; - else slt3_r <= #1 {slt3_r[18:0], slt4_r[19]}; - -always @(posedge clk) - if(so_ld) slt4_r <= #1 slt4; - else slt4_r <= #1 {slt4_r[18:0], slt5_r[19]}; - -always @(posedge clk) - if(so_ld) slt5_r <= #1 20'h0; - else slt5_r <= #1 {slt5_r[18:0], slt6_r[19]}; - -always @(posedge clk) - if(so_ld) slt6_r <= #1 slt6; - else slt6_r <= #1 {slt6_r[18:0], slt7_r[19]}; - -always @(posedge clk) - if(so_ld) slt7_r <= #1 slt7; - else slt7_r <= #1 {slt7_r[18:0], slt8_r[19]}; - -always @(posedge clk) - if(so_ld) slt8_r <= #1 slt8; - else slt8_r <= #1 {slt8_r[18:0], slt9_r[19]}; - -always @(posedge clk) - if(so_ld) slt9_r <= #1 slt9; - else slt9_r <= #1 {slt9_r[18:0], slt10_r[19]}; - -always @(posedge clk) - if(so_ld) slt10_r <= #1 20'h0; - else slt10_r <= #1 {slt10_r[18:0], slt11_r[19]}; - -always @(posedge clk) - if(so_ld) slt11_r <= #1 20'h0; - else slt11_r <= #1 {slt11_r[18:0], slt12_r[19]}; - -always @(posedge clk) - if(so_ld) slt12_r <= #1 20'h0; - else slt12_r <= #1 {slt12_r[18:0], 1'b0 }; - -endmodule - -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller //// -//// WISHBONE Interface Module //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.4 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.3 2002/03/05 04:44:05 rudi -// -// - Fixed the order of the thrash hold bits to match the spec. -// - Many minor synthesis cleanup items ... -// -// Revision 1.2 2001/08/10 08:09:42 rudi -// -// - Removed RTY_O output. -// - Added Clock and Reset Inputs to documentation. -// - Changed IO names to be more clear. -// - Uniquifyed define names to be core specific. -// -// Revision 1.1 2001/08/03 06:54:50 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:16 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_wb_if(clk, rst, - - wb_data_i, wb_data_o, wb_addr_i, wb_sel_i, wb_we_i, wb_cyc_i, - wb_stb_i, wb_ack_o, wb_err_o, - - adr, dout, rf_din, i3_din, i4_din, i6_din, - rf_we, rf_re, o3_we, o4_we, o6_we, o7_we, o8_we, o9_we, - i3_re, i4_re, i6_re - - ); - -input clk,rst; - -// WISHBONE Interface -input [31:0] wb_data_i; -output [31:0] wb_data_o; -input [31:0] wb_addr_i; -input [3:0] wb_sel_i; -input wb_we_i; -input wb_cyc_i; -input wb_stb_i; -output wb_ack_o; -output wb_err_o; - -// Internal Interface -output [3:0] adr; -output [31:0] dout; -input [31:0] rf_din, i3_din, i4_din, i6_din; -output rf_we; -output rf_re; -output o3_we, o4_we, o6_we, o7_we, o8_we, o9_we; -output i3_re, i4_re, i6_re; - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg [31:0] wb_data_o; -reg [31:0] dout; -reg wb_ack_o; - -reg rf_we; -reg o3_we, o4_we, o6_we, o7_we, o8_we, o9_we; -reg i3_re, i4_re, i6_re; - -reg we1, we2; -wire we; -reg re2, re1; -wire re; - -//////////////////////////////////////////////////////////////////// -// -// Modules -// - -assign adr = wb_addr_i[5:2]; - -assign wb_err_o = 1'b0; - -always @(posedge clk) - dout <= #1 wb_data_i; - -always @(posedge clk) - case(wb_addr_i[6:2]) // synopsys parallel_case full_case - 5'he: wb_data_o <= #1 i3_din; - 5'hf: wb_data_o <= #1 i4_din; - 5'h10: wb_data_o <= #1 i6_din; - default: wb_data_o <= #1 rf_din; - endcase - -always @(posedge clk) - re1 <= #1 !re2 & wb_cyc_i & wb_stb_i & !wb_we_i & `AC97_REG_SEL; - -always @(posedge clk) - re2 <= #1 re & wb_cyc_i & wb_stb_i & !wb_we_i ; - -assign re = re1 & !re2 & wb_cyc_i & wb_stb_i & !wb_we_i; - -assign rf_re = re & (wb_addr_i[6:2] < 5'h8); - -always @(posedge clk) - we1 <= #1 !we & wb_cyc_i & wb_stb_i & wb_we_i & `AC97_REG_SEL; - -always @(posedge clk) - we2 <= #1 we1 & wb_cyc_i & wb_stb_i & wb_we_i; - -assign we = we1 & !we2 & wb_cyc_i & wb_stb_i & wb_we_i; - -always @(posedge clk) - wb_ack_o <= #1 (re | we) & wb_cyc_i & wb_stb_i & ~wb_ack_o; - -always @(posedge clk) - rf_we <= #1 we & (wb_addr_i[6:2] < 5'h8); - -always @(posedge clk) - o3_we <= #1 we & (wb_addr_i[6:2] == 5'h8); - -always @(posedge clk) - o4_we <= #1 we & (wb_addr_i[6:2] == 5'h9); - -always @(posedge clk) - o6_we <= #1 we & (wb_addr_i[6:2] == 5'ha); - -always @(posedge clk) - o7_we <= #1 we & (wb_addr_i[6:2] == 5'hb); - -always @(posedge clk) - o8_we <= #1 we & (wb_addr_i[6:2] == 5'hc); - -always @(posedge clk) - o9_we <= #1 we & (wb_addr_i[6:2] == 5'hd); - -always @(posedge clk) - i3_re <= #1 re & (wb_addr_i[6:2] == 5'he); - -always @(posedge clk) - i4_re <= #1 re & (wb_addr_i[6:2] == 5'hf); - -always @(posedge clk) - i6_re <= #1 re & (wb_addr_i[6:2] == 5'h10); - -endmodule - -///////////////////////////////////////////////////////////////////// -//// //// -//// WISHBONE AC 97 Controller Top Level //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ac97_ctrl/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann //// -//// www.asics.ws //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ac97_top.v,v 1.4 2006/11/20 17:13:43 tame Exp $ -// -// $Date: 2006/11/20 17:13:43 $ -// $Revision: 1.4 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ac97_top.v,v $ -// Revision 1.4 2006/11/20 17:13:43 tame -// Originally calculated values used. -// -// Revision 1.3 2006/09/11 13:12:13 tame -// Tried out high timing settings - works in hardware. -// -// Revision 1.2 2006/08/16 08:46:04 tame -// AC97 core: register set read/writable in first simulations; in hardware, however, -// not yet -// -// Revision 1.1 2006/08/14 15:25:09 tame -// added ac97 codec from OpenCores -// adapted configuration in ac97_defines module -// -// Revision 1.4 2002/09/19 06:30:56 rudi -// Fixed a bug reported by Igor. Apparently this bug only shows up when -// the WB clock is very low (2x bit_clk). Updated Copyright header. -// -// Revision 1.3 2002/03/05 04:44:05 rudi -// -// - Fixed the order of the thrash hold bits to match the spec. -// - Many minor synthesis cleanup items ... -// -// Revision 1.2 2001/08/10 08:09:42 rudi -// -// - Removed RTY_O output. -// - Added Clock and Reset Inputs to documentation. -// - Changed IO names to be more clear. -// - Uniquifyed define names to be core specific. -// -// Revision 1.1 2001/08/03 06:54:50 rudi -// -// -// - Changed to new directory structure -// -// Revision 1.1.1.1 2001/05/19 02:29:14 rudi -// Initial Checkin -// -// -// -// - -// `include "ac97_defines.v" - -module ac97_top(clk_i, rst_i, - - wb_data_i, wb_data_o, wb_addr_i, wb_sel_i, wb_we_i, wb_cyc_i, - wb_stb_i, wb_ack_o, wb_err_o, - - int_o, dma_req_o, dma_ack_i, - suspended_o, - - bit_clk_pad_i, sync_pad_o, sdata_pad_o, sdata_pad_i, - ac97_resetn_pad_o - ); - -input clk_i, rst_i; - -// -------------------------------------- -// WISHBONE SLAVE INTERFACE -input [31:0] wb_data_i; -output [31:0] wb_data_o; -input [31:0] wb_addr_i; -input [3:0] wb_sel_i; -input wb_we_i; -input wb_cyc_i; -input wb_stb_i; -output wb_ack_o; -output wb_err_o; - -// -------------------------------------- -// Misc Signals -output int_o; -output [8:0] dma_req_o; -input [8:0] dma_ack_i; - -// -------------------------------------- -// Suspend Resume Interface -output suspended_o; - -// -------------------------------------- -// AC97 Codec Interface -input bit_clk_pad_i; -output sync_pad_o; -output sdata_pad_o; -input sdata_pad_i; -output ac97_resetn_pad_o; - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -// Serial Output register interface -wire [15:0] out_slt0; -wire [19:0] out_slt1; -wire [19:0] out_slt2; -wire [19:0] out_slt3; -wire [19:0] out_slt4; -wire [19:0] out_slt6; -wire [19:0] out_slt7; -wire [19:0] out_slt8; -wire [19:0] out_slt9; - -// Serial Input register interface -wire [15:0] in_slt0; -wire [19:0] in_slt1; -wire [19:0] in_slt2; -wire [19:0] in_slt3; -wire [19:0] in_slt4; -wire [19:0] in_slt6; - -// Serial IO Controller Interface -wire ld; -wire valid; -wire [5:0] out_le; -wire [2:0] in_valid; -wire ps_ce; - -// Valid Sync -reg valid_s1, valid_s; -reg [2:0] in_valid_s1, in_valid_s; - -// Out FIFO interface -wire [31:0] wb_din; -wire [1:0] o3_mode, o4_mode, o6_mode, o7_mode, o8_mode, o9_mode; -wire o3_re, o4_re, o6_re, o7_re, o8_re, o9_re; -wire o3_we, o4_we, o6_we, o7_we, o8_we, o9_we; -wire [1:0] o3_status, o4_status, o6_status, o7_status, o8_status, o9_status; -wire o3_full, o4_full, o6_full, o7_full, o8_full, o9_full; -wire o3_empty, o4_empty, o6_empty, o7_empty, o8_empty, o9_empty; - -// In FIFO interface -wire [31:0] i3_dout, i4_dout, i6_dout; -wire [1:0] i3_mode, i4_mode, i6_mode; -wire i3_we, i4_we, i6_we; -wire i3_re, i4_re, i6_re; -wire [1:0] i3_status, i4_status, i6_status; -wire i3_full, i4_full, i6_full; -wire i3_empty, i4_empty, i6_empty; - -// Register File Interface -wire [3:0] adr; -wire [31:0] rf_dout; -wire [31:0] rf_din; -wire rf_we; -wire rf_re; -wire ac97_rst_force; -wire resume_req; -wire crac_we; -wire [15:0] crac_din; -wire [31:0] crac_out; -wire [7:0] oc0_cfg; -wire [7:0] oc1_cfg; -wire [7:0] oc2_cfg; -wire [7:0] oc3_cfg; -wire [7:0] oc4_cfg; -wire [7:0] oc5_cfg; -wire [7:0] ic0_cfg; -wire [7:0] ic1_cfg; -wire [7:0] ic2_cfg; -wire [2:0] oc0_int_set; -wire [2:0] oc1_int_set; -wire [2:0] oc2_int_set; -wire [2:0] oc3_int_set; -wire [2:0] oc4_int_set; -wire [2:0] oc5_int_set; -wire [2:0] ic0_int_set; -wire [2:0] ic1_int_set; -wire [2:0] ic2_int_set; - -// CRA Module interface -wire crac_valid; -wire crac_wr; -wire crac_wr_done, crac_rd_done; - -//////////////////////////////////////////////////////////////////// -// -// Misc Logic -// - -// Sync Valid to WISHBONE Clock -always @(posedge clk_i) - valid_s1 <= #1 valid; - -always @(posedge clk_i) - valid_s <= #1 valid_s1; - -always @(posedge clk_i) - in_valid_s1 <= #1 in_valid; - -always @(posedge clk_i) - in_valid_s <= #1 in_valid_s1; - -// "valid_s" Indicates when any of the outputs to the output S/R may -// change or when outputs from input S/R may be sampled -assign o3_mode = oc0_cfg[3:2]; -assign o4_mode = oc1_cfg[3:2]; -assign o6_mode = oc2_cfg[3:2]; -assign o7_mode = oc3_cfg[3:2]; -assign o8_mode = oc4_cfg[3:2]; -assign o9_mode = oc5_cfg[3:2]; -assign i3_mode = ic0_cfg[3:2]; -assign i4_mode = ic1_cfg[3:2]; -assign i6_mode = ic2_cfg[3:2]; - -//////////////////////////////////////////////////////////////////// -// -// Modules -// - -ac97_sout u0( - .clk( bit_clk_pad_i ), - .rst( rst_i ), - .so_ld( ld ), - .slt0( out_slt0 ), - .slt1( out_slt1 ), - .slt2( out_slt2 ), - .slt3( out_slt3 ), - .slt4( out_slt4 ), - .slt6( out_slt6 ), - .slt7( out_slt7 ), - .slt8( out_slt8 ), - .slt9( out_slt9 ), - .sdata_out( sdata_pad_o ) - ); - -ac97_sin u1( - .clk( bit_clk_pad_i ), - .rst( rst_i ), - .out_le( out_le ), - .slt0( in_slt0 ), - .slt1( in_slt1 ), - .slt2( in_slt2 ), - .slt3( in_slt3 ), - .slt4( in_slt4 ), - .slt6( in_slt6 ), - .sdata_in( sdata_pad_i ) - ); - -ac97_soc u2( - .clk( bit_clk_pad_i ), - .wclk( clk_i ), - .rst( rst_i ), - .ps_ce( ps_ce ), - .resume( resume_req ), - .suspended( suspended_o ), - .sync( sync_pad_o ), - .out_le( out_le ), - .in_valid( in_valid ), - .ld( ld ), - .valid( valid ) - ); - -ac97_out_fifo u3( - .clk( clk_i ), - .rst( rst_i ), - .en( oc0_cfg[0] ), - .mode( o3_mode ), - .din( wb_din ), - .we( o3_we ), - .dout( out_slt3 ), - .re( o3_re ), - .status( o3_status ), - .full( o3_full ), - .empty( o3_empty ) - ); - -ac97_out_fifo u4( - .clk( clk_i ), - .rst( rst_i ), - .en( oc1_cfg[0] ), - .mode( o4_mode ), - .din( wb_din ), - .we( o4_we ), - .dout( out_slt4 ), - .re( o4_re ), - .status( o4_status ), - .full( o4_full ), - .empty( o4_empty ) - ); - -`ifdef AC97_CENTER -ac97_out_fifo u5( - .clk( clk_i ), - .rst( rst_i ), - .en( oc2_cfg[0] ), - .mode( o6_mode ), - .din( wb_din ), - .we( o6_we ), - .dout( out_slt6 ), - .re( o6_re ), - .status( o6_status ), - .full( o6_full ), - .empty( o6_empty ) - ); -`else -assign out_slt6 = 20'h0; -assign o6_status = 2'h0; -assign o6_full = 1'b0; -assign o6_empty = 1'b0; -`endif - -`ifdef AC97_SURROUND -ac97_out_fifo u6( - .clk( clk_i ), - .rst( rst_i ), - .en( oc3_cfg[0] ), - .mode( o7_mode ), - .din( wb_din ), - .we( o7_we ), - .dout( out_slt7 ), - .re( o7_re ), - .status( o7_status ), - .full( o7_full ), - .empty( o7_empty ) - ); - -ac97_out_fifo u7( - .clk( clk_i ), - .rst( rst_i ), - .en( oc4_cfg[0] ), - .mode( o8_mode ), - .din( wb_din ), - .we( o8_we ), - .dout( out_slt8 ), - .re( o8_re ), - .status( o8_status ), - .full( o8_full ), - .empty( o8_empty ) - ); -`else -assign out_slt7 = 20'h0; -assign o7_status = 2'h0; -assign o7_full = 1'b0; -assign o7_empty = 1'b0; -assign out_slt8 = 20'h0; -assign o8_status = 2'h0; -assign o8_full = 1'b0; -assign o8_empty = 1'b0; -`endif - -`ifdef AC97_LFE -ac97_out_fifo u8( - .clk( clk_i ), - .rst( rst_i ), - .en( oc5_cfg[0] ), - .mode( o9_mode ), - .din( wb_din ), - .we( o9_we ), - .dout( out_slt9 ), - .re( o9_re ), - .status( o9_status ), - .full( o9_full ), - .empty( o9_empty ) - ); -`else -assign out_slt9 = 20'h0; -assign o9_status = 2'h0; -assign o9_full = 1'b0; -assign o9_empty = 1'b0; -`endif - -`ifdef AC97_SIN -ac97_in_fifo u9( - .clk( clk_i ), - .rst( rst_i ), - .en( ic0_cfg[0] ), - .mode( i3_mode ), - .din( in_slt3 ), - .we( i3_we ), - .dout( i3_dout ), - .re( i3_re ), - .status( i3_status ), - .full( i3_full ), - .empty( i3_empty ) - ); - -ac97_in_fifo u10( - .clk( clk_i ), - .rst( rst_i ), - .en( ic1_cfg[0] ), - .mode( i4_mode ), - .din( in_slt4 ), - .we( i4_we ), - .dout( i4_dout ), - .re( i4_re ), - .status( i4_status ), - .full( i4_full ), - .empty( i4_empty ) - ); -`else -assign i3_dout = 20'h0; -assign i3_status = 2'h0; -assign i3_full = 1'b0; -assign i3_empty = 1'b0; -assign i4_dout = 20'h0; -assign i4_status = 2'h0; -assign i4_full = 1'b0; -assign i4_empty = 1'b0; -`endif - -`ifdef AC97_MICIN -ac97_in_fifo u11( - .clk( clk_i ), - .rst( rst_i ), - .en( ic2_cfg[0] ), - .mode( i6_mode ), - .din( in_slt6 ), - .we( i6_we ), - .dout( i6_dout ), - .re( i6_re ), - .status( i6_status ), - .full( i6_full ), - .empty( i6_empty ) - ); -`else -assign i6_dout = 20'h0; -assign i6_status = 2'h0; -assign i6_full = 1'b0; -assign i6_empty = 1'b0; -`endif - -ac97_wb_if u12( - .clk( clk_i ), - .rst( rst_i ), - .wb_data_i( wb_data_i ), - .wb_data_o( wb_data_o ), - .wb_addr_i( wb_addr_i ), - .wb_sel_i( wb_sel_i ), - .wb_we_i( wb_we_i ), - .wb_cyc_i( wb_cyc_i ), - .wb_stb_i( wb_stb_i ), - .wb_ack_o( wb_ack_o ), - .wb_err_o( wb_err_o ), - .adr( adr ), - .dout( wb_din ), - .rf_din( rf_dout ), - .i3_din( i3_dout ), - .i4_din( i4_dout ), - .i6_din( i6_dout ), - .rf_we( rf_we ), - .rf_re( rf_re ), - .o3_we( o3_we ), - .o4_we( o4_we ), - .o6_we( o6_we ), - .o7_we( o7_we ), - .o8_we( o8_we ), - .o9_we( o9_we ), - .i3_re( i3_re ), - .i4_re( i4_re ), - .i6_re( i6_re ) - ); - -ac97_rf u13( .clk( clk_i ), - .rst( rst_i ), - .adr( adr ), - .rf_dout( rf_dout ), - .rf_din( wb_din ), - .rf_we( rf_we ), - .rf_re( rf_re ), - .int( int_o ), - .ac97_rst_force(ac97_rst_force ), - .resume_req( resume_req ), - .suspended( suspended_o ), - .crac_we( crac_we ), - .crac_din( crac_din ), - .crac_out( crac_out ), - .crac_wr_done( crac_wr_done ), - .crac_rd_done( crac_rd_done ), - .oc0_cfg( oc0_cfg ), - .oc1_cfg( oc1_cfg ), - .oc2_cfg( oc2_cfg ), - .oc3_cfg( oc3_cfg ), - .oc4_cfg( oc4_cfg ), - .oc5_cfg( oc5_cfg ), - .ic0_cfg( ic0_cfg ), - .ic1_cfg( ic1_cfg ), - .ic2_cfg( ic2_cfg ), - .oc0_int_set( oc0_int_set ), - .oc1_int_set( oc1_int_set ), - .oc2_int_set( oc2_int_set ), - .oc3_int_set( oc3_int_set ), - .oc4_int_set( oc4_int_set ), - .oc5_int_set( oc5_int_set ), - .ic0_int_set( ic0_int_set ), - .ic1_int_set( ic1_int_set ), - .ic2_int_set( ic2_int_set ) - ); - -ac97_prc u14( .clk( clk_i ), - .rst( rst_i ), - .valid( valid_s ), - .in_valid( in_valid_s ), - .out_slt0( out_slt0 ), - .in_slt0( in_slt0 ), - .in_slt1( in_slt1 ), - .crac_valid( crac_valid ), - .crac_wr( crac_wr ), - .oc0_cfg( oc0_cfg ), - .oc1_cfg( oc1_cfg ), - .oc2_cfg( oc2_cfg ), - .oc3_cfg( oc3_cfg ), - .oc4_cfg( oc4_cfg ), - .oc5_cfg( oc5_cfg ), - .ic0_cfg( ic0_cfg ), - .ic1_cfg( ic1_cfg ), - .ic2_cfg( ic2_cfg ), - .o3_empty( o3_empty ), - .o4_empty( o4_empty ), - .o6_empty( o6_empty ), - .o7_empty( o7_empty ), - .o8_empty( o8_empty ), - .o9_empty( o9_empty ), - .i3_full( i3_full ), - .i4_full( i4_full ), - .i6_full( i6_full ), - .o3_re( o3_re ), - .o4_re( o4_re ), - .o6_re( o6_re ), - .o7_re( o7_re ), - .o8_re( o8_re ), - .o9_re( o9_re ), - .i3_we( i3_we ), - .i4_we( i4_we ), - .i6_we( i6_we ) - ); - -ac97_cra u15( .clk( clk_i ), - .rst( rst_i ), - .crac_we( crac_we ), - .crac_din( crac_din ), - .crac_out( crac_out ), - .crac_wr_done( crac_wr_done ), - .crac_rd_done( crac_rd_done ), - .valid( valid_s ), - .out_slt1( out_slt1 ), - .out_slt2( out_slt2 ), - .in_slt2( in_slt2 ), - .crac_valid( crac_valid ), - .crac_wr( crac_wr ) - ); - -ac97_dma_if u16(.clk( clk_i ), - .rst( rst_i ), - .o3_status( o3_status ), - .o4_status( o4_status ), - .o6_status( o6_status ), - .o7_status( o7_status ), - .o8_status( o8_status ), - .o9_status( o9_status ), - .o3_empty( o3_empty ), - .o4_empty( o4_empty ), - .o6_empty( o6_empty ), - .o7_empty( o7_empty ), - .o8_empty( o8_empty ), - .o9_empty( o9_empty ), - .i3_status( i3_status ), - .i4_status( i4_status ), - .i6_status( i6_status ), - .i3_full( i3_full ), - .i4_full( i4_full ), - .i6_full( i6_full ), - .oc0_cfg( oc0_cfg ), - .oc1_cfg( oc1_cfg ), - .oc2_cfg( oc2_cfg ), - .oc3_cfg( oc3_cfg ), - .oc4_cfg( oc4_cfg ), - .oc5_cfg( oc5_cfg ), - .ic0_cfg( ic0_cfg ), - .ic1_cfg( ic1_cfg ), - .ic2_cfg( ic2_cfg ), - .dma_req( dma_req_o ), - .dma_ack( dma_ack_i ) - ); - -ac97_int u17( - .clk( clk_i ), - .rst( rst_i ), - .int_set( oc0_int_set ), - .cfg( oc0_cfg ), - .status( o3_status ), - .full_empty( o3_empty ), - .full( o3_full ), - .empty( o3_empty ), - .re( o3_re ), - .we( o3_we ) - ); - -ac97_int u18( - .clk( clk_i ), - .rst( rst_i ), - .int_set( oc1_int_set ), - .cfg( oc1_cfg ), - .status( o4_status ), - .full_empty( o4_empty ), - .full( o4_full ), - .empty( o4_empty ), - .re( o4_re ), - .we( o4_we ) - ); - -`ifdef AC97_CENTER -ac97_int u19( - .clk( clk_i ), - .rst( rst_i ), - .int_set( oc2_int_set ), - .cfg( oc2_cfg ), - .status( o6_status ), - .full_empty( o6_empty ), - .full( o6_full ), - .empty( o6_empty ), - .re( o6_re ), - .we( o6_we ) - ); -`else -assign oc2_int_set = 1'b0; -`endif - -`ifdef AC97_SURROUND -ac97_int u20( - .clk( clk_i ), - .rst( rst_i ), - .int_set( oc3_int_set ), - .cfg( oc3_cfg ), - .status( o7_status ), - .full_empty( o7_empty ), - .full( o7_full ), - .empty( o7_empty ), - .re( o7_re ), - .we( o7_we ) - ); - -ac97_int u21( - .clk( clk_i ), - .rst( rst_i ), - .int_set( oc4_int_set ), - .cfg( oc4_cfg ), - .status( o8_status ), - .full_empty( o8_empty ), - .full( o8_full ), - .empty( o8_empty ), - .re( o8_re ), - .we( o8_we ) - ); -`else -assign oc3_int_set = 1'b0; -assign oc4_int_set = 1'b0; -`endif - -`ifdef AC97_LFE -ac97_int u22( - .clk( clk_i ), - .rst( rst_i ), - .int_set( oc5_int_set ), - .cfg( oc5_cfg ), - .status( o9_status ), - .full_empty( o9_empty ), - .full( o9_full ), - .empty( o9_empty ), - .re( o9_re ), - .we( o9_we ) - ); -`else -assign oc5_int_set = 1'b0; -`endif - -`ifdef AC97_SIN -ac97_int u23( - .clk( clk_i ), - .rst( rst_i ), - .int_set( ic0_int_set ), - .cfg( ic0_cfg ), - .status( i3_status ), - .full_empty( i3_full ), - .full( i3_full ), - .empty( i3_empty ), - .re( i3_re ), - .we( i3_we ) - ); - -ac97_int u24( - .clk( clk_i ), - .rst( rst_i ), - .int_set( ic1_int_set ), - .cfg( ic1_cfg ), - .status( i4_status ), - .full_empty( i4_full ), - .full( i4_full ), - .empty( i4_empty ), - .re( i4_re ), - .we( i4_we ) - ); -`else -assign ic0_int_set = 1'b0; -assign ic1_int_set = 1'b0; -`endif - -`ifdef AC97_MICIN -ac97_int u25( - .clk( clk_i ), - .rst( rst_i ), - .int_set( ic2_int_set ), - .cfg( ic2_cfg ), - .status( i6_status ), - .full_empty( i6_full ), - .full( i6_full ), - .empty( i6_empty ), - .re( i6_re ), - .we( i6_we ) - ); -`else -assign ic2_int_set = 1'b0; -`endif - -ac97_rst u26( - .clk( clk_i ), - .rst( rst_i ), - .rst_force( ac97_rst_force ), - .ps_ce( ps_ce ), - .ac97_rst_( ac97_resetn_pad_o ) - ); - -endmodule - - diff --git a/lib/opencores/ac97/vlogsyn.txt b/lib/opencores/ac97/vlogsyn.txt deleted file mode 100644 index d3fa9f84..00000000 --- a/lib/opencores/ac97/vlogsyn.txt +++ /dev/null @@ -1 +0,0 @@ -ac97_top.v diff --git a/lib/opencores/ata/ata_device_oc.v b/lib/opencores/ata/ata_device_oc.v deleted file mode 100644 index f74c7fba..00000000 --- a/lib/opencores/ata/ata_device_oc.v +++ /dev/null @@ -1,407 +0,0 @@ -///////////////////////////////////////////////////////////////////// -//// //// -//// ATA (IDE) Device Model //// -//// This Model Supports PIO cycles only ! //// -//// //// -//// //// -//// Author: Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// //// -//// Downloaded from: http://www.opencores.org/cores/ata/ //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2001 Rudolf Usselmann //// -//// rudi@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: ata_device.v,v 1.2 2002/02/25 06:07:21 rherveille Exp $ -// -// $Date: 2002/02/25 06:07:21 $ -// $Revision: 1.2 $ -// $Author: rherveille $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// $Log: ata_device.v,v $ -// Revision 1.2 2002/02/25 06:07:21 rherveille -// Fixed data-latch bug (posedge ata_diow instead of negedge ata_diow). -// -// Revision 1.1 2001/08/16 10:01:05 rudi -// -// - Added Test Bench -// - Added Synthesis scripts for Design Compiler -// - Fixed minor bug in atahost_top -// -// -// -// -// - -// Modified by Nils-Johan Wessman - -`timescale 1ns / 10ps - -module ata_device_oc( ata_rst_n, ata_data, ata_da, ata_cs0, ata_cs1, - ata_dior_n, ata_diow_n, ata_iordy, ata_intrq ); -input ata_rst_n; -inout [15:0] ata_data; -input [2:0] ata_da; -input ata_cs0, ata_cs1; -input ata_dior_n, ata_diow_n; -output ata_iordy; -output ata_intrq; - -integer mode; -integer n; -reg ata_iordy; -reg iordy_enable; -reg ata_intrq; -integer iordy_delay; - -reg [15:0] mem[32:0]; -reg [15:0] dout; -reg dout_en; -wire ata_rst_m0, ata_rst_m1, ata_rst_m2, ata_rst_m3, ata_rst_m4; -wire [4:0] addr; -wire ata_dior, ata_diow; - -initial - begin - dout_en = 0; - mode = 0; - iordy_enable = 0; - iordy_delay = 0; - ata_iordy = 1; - ata_intrq = 0; - end - -assign ata_dior = !ata_dior_n; -assign ata_diow = !ata_diow_n; - -//assign ata_intrq = 0; - -assign ata_data = dout_en ? dout : 16'hzzzz; - -assign addr = {~ata_cs1, ~ata_cs0, ata_da}; - -always @(posedge ata_rst_n) - dout_en = 0; - -always @(posedge ata_dior) - begin - dout = mem[ addr ]; - dout_en = 1; - ata_intrq = 1; - end - -//always @(posedge ata_dior) -always @(negedge ata_dior) - begin - dout_en = 0; - ata_intrq = 0; - end - -always @(posedge ata_diow) - begin - mem[ addr ] = ata_data; - end - -always @(posedge ata_dior or posedge ata_diow) - begin - ata_iordy = 1'b0; - #(iordy_delay); - ata_iordy = 1'b1; - end - -task init_mem; - -begin - -for(n=0;n<32;n=n+1) - mem[n] = n; -end -endtask - -assign ata_rst_m0 = ata_rst_n & (mode==0); -assign ata_rst_m1 = ata_rst_n & (mode==1); -assign ata_rst_m2 = ata_rst_n & (mode==2); -assign ata_rst_m3 = ata_rst_n & (mode==3); -assign ata_rst_m4 = ata_rst_n & (mode==4); - -specify - specparam // ATA Mode 0 Timing - M0_DioCycle = 600, // T0 - M0_AddrSetup = 70, // T1 - M0_DioHigh = 290, // T2 - M0_WrSetup = 60, // T3 - M0_WrHold = 30, // T4 - M0_DoutSetup = 50, // T5 - M0_DoutHold = 5, // T6 - M0_AddrHold = 20, // T9 - - // ATA Mode 1 Timing - M1_DioCycle = 383, // T0 - M1_AddrSetup = 50, // T1 - M1_DioHigh = 290, // T2 - M1_WrSetup = 45, // T3 - M1_WrHold = 20, // T4 - M1_DoutSetup = 35, // T5 - M1_DoutHold = 5, // T6 - M1_AddrHold = 15, // T9 - - // ATA Mode 2 Timing - M2_DioCycle = 330, // T0 - M2_AddrSetup = 30, // T1 - M2_DioHigh = 290, // T2 - M2_WrSetup = 30, // T3 - M2_WrHold = 15, // T4 - M2_DoutSetup = 20, // T5 - M2_DoutHold = 5, // T6 - M2_AddrHold = 10, // T9 - - // ATA Mode 3 Timing - M3_DioCycle = 180, // T0 - M3_AddrSetup = 30, // T1 - M3_DioHigh = 80, // T2 - M3_DioLow = 70, // T2i - M3_WrSetup = 30, // T3 - M3_WrHold = 10, // T4 - M3_DoutSetup = 20, // T5 - M3_DoutHold = 5, // T6 - M3_AddrHold = 10, // T9 - - // ATA Mode 4 Timing - M4_DioCycle = 120, // T0 - M4_AddrSetup = 25, // T1 - M4_DioHigh = 70, // T2 - M4_DioLow = 25, // T2i - M4_WrSetup = 20, // T3 - M4_WrHold = 10, // T4 - M4_DoutSetup = 20, // T5 - M4_DoutHold = 5, // T6 - M4_AddrHold = 10; // T9 - - - - ///////////////////////////////////////////////////// - // ATA Mode 0 Timing // - ///////////////////////////////////////////////////// - - // Output Delay Path - if(mode==0) (ata_dior_n => ata_data) = //(01,10,0z,z1,1z,z0) - (0,0, - M0_DoutHold, (M0_DioHigh - M0_DoutSetup), - M0_DoutHold, (M0_DioHigh - M0_DoutSetup) ); - - // Write Data Setup/Hold Check - $setuphold(negedge ata_diow, ata_data, M0_WrSetup, M0_WrHold, , ,ata_rst_m0 ); - - // DioX Active time Check - $width(posedge ata_dior &&& ata_rst_m0, M0_DioHigh ); - $width(posedge ata_diow &&& ata_rst_m0, M0_DioHigh ); - - // DioX Min Cycle Width Check - $period(posedge ata_dior &&& ata_rst_m0, M0_DioCycle ); - $period(posedge ata_diow &&& ata_rst_m0, M0_DioCycle ); - - // Address Setup Hold Checks - $setup(ata_da, posedge ata_dior &&& ata_rst_m0, M0_AddrSetup); - $setup(ata_cs0, posedge ata_dior &&& ata_rst_m0, M0_AddrSetup); - $setup(ata_cs1, posedge ata_dior &&& ata_rst_m0, M0_AddrSetup); - $setup(ata_da, posedge ata_diow &&& ata_rst_m0, M0_AddrSetup); - $setup(ata_cs0, posedge ata_diow &&& ata_rst_m0, M0_AddrSetup); - $setup(ata_cs1, posedge ata_diow &&& ata_rst_m0, M0_AddrSetup); - - $hold(ata_da, negedge ata_dior &&& ata_rst_m0, M0_AddrHold); - $hold(ata_cs0, negedge ata_dior &&& ata_rst_m0, M0_AddrHold); - $hold(ata_cs1, negedge ata_dior &&& ata_rst_m0, M0_AddrHold); - $hold(ata_da, negedge ata_diow &&& ata_rst_m0, M0_AddrHold); - $hold(ata_cs0, negedge ata_diow &&& ata_rst_m0, M0_AddrHold); - $hold(ata_cs1, negedge ata_diow &&& ata_rst_m0, M0_AddrHold); - - - ///////////////////////////////////////////////////// - // ATA Mode 1 Timing // - ///////////////////////////////////////////////////// - - // Output Delay Path - if(mode==1) (ata_dior_n => ata_data) = //(01,10,0z,z1,1z,z0) - (0,0, - M1_DoutHold, (M1_DioHigh - M1_DoutSetup), - M1_DoutHold, (M1_DioHigh - M1_DoutSetup) ); - - // Write Data Setup/Hold Check - $setuphold(negedge ata_diow, ata_data, M1_WrSetup, M1_WrHold, , ,ata_rst_m1 ); - - // DioX Active time Check - $width(posedge ata_dior &&& ata_rst_m1, M1_DioHigh ); - $width(posedge ata_diow &&& ata_rst_m1, M1_DioHigh ); - - // DioX Min Cycle Width Check - $period(posedge ata_dior &&& ata_rst_m1, M1_DioCycle ); - $period(posedge ata_diow &&& ata_rst_m1, M1_DioCycle ); - - // Address Setup Hold Checks - $setup(ata_da, posedge ata_dior &&& ata_rst_m1, M1_AddrSetup); - $setup(ata_cs0, posedge ata_dior &&& ata_rst_m1, M1_AddrSetup); - $setup(ata_cs1, posedge ata_dior &&& ata_rst_m1, M1_AddrSetup); - $setup(ata_da, posedge ata_diow &&& ata_rst_m1, M1_AddrSetup); - $setup(ata_cs0, posedge ata_diow &&& ata_rst_m1, M1_AddrSetup); - $setup(ata_cs1, posedge ata_diow &&& ata_rst_m1, M1_AddrSetup); - - $hold(ata_da, negedge ata_dior &&& ata_rst_m1, M1_AddrHold); - $hold(ata_cs0, negedge ata_dior &&& ata_rst_m1, M1_AddrHold); - $hold(ata_cs1, negedge ata_dior &&& ata_rst_m1, M1_AddrHold); - $hold(ata_da, negedge ata_diow &&& ata_rst_m1, M1_AddrHold); - $hold(ata_cs0, negedge ata_diow &&& ata_rst_m1, M1_AddrHold); - $hold(ata_cs1, negedge ata_diow &&& ata_rst_m1, M1_AddrHold); - - - ///////////////////////////////////////////////////// - // ATA Mode 2 Timing // - ///////////////////////////////////////////////////// - - // Output Delay Path - if(mode==2) (ata_dior_n => ata_data) = //(01,10,0z,z1,1z,z0) - (0,0, - M2_DoutHold, (M2_DioHigh - M2_DoutSetup), - M2_DoutHold, (M2_DioHigh - M2_DoutSetup) ); - - // Write Data Setup/Hold Check - $setuphold(negedge ata_diow, ata_data, M2_WrSetup, M2_WrHold, , ,ata_rst_m2 ); - - // DioX Active time Check - $width(posedge ata_dior &&& ata_rst_m2, M2_DioHigh ); - $width(posedge ata_diow &&& ata_rst_m2, M2_DioHigh ); - - // DioX Min Cycle Width Check - $period(posedge ata_dior &&& ata_rst_m2, M2_DioCycle ); - $period(posedge ata_diow &&& ata_rst_m2, M2_DioCycle ); - - // Address Setup Hold Checks - $setup(ata_da, posedge ata_dior &&& ata_rst_m2, M2_AddrSetup); - $setup(ata_cs0, posedge ata_dior &&& ata_rst_m2, M2_AddrSetup); - $setup(ata_cs1, posedge ata_dior &&& ata_rst_m2, M2_AddrSetup); - $setup(ata_da, posedge ata_diow &&& ata_rst_m2, M2_AddrSetup); - $setup(ata_cs0, posedge ata_diow &&& ata_rst_m2, M2_AddrSetup); - $setup(ata_cs1, posedge ata_diow &&& ata_rst_m2, M2_AddrSetup); - - $hold(ata_da, negedge ata_dior &&& ata_rst_m2, M2_AddrHold); - $hold(ata_cs0, negedge ata_dior &&& ata_rst_m2, M2_AddrHold); - $hold(ata_cs1, negedge ata_dior &&& ata_rst_m2, M2_AddrHold); - $hold(ata_da, negedge ata_diow &&& ata_rst_m2, M2_AddrHold); - $hold(ata_cs0, negedge ata_diow &&& ata_rst_m2, M2_AddrHold); - $hold(ata_cs1, negedge ata_diow &&& ata_rst_m2, M2_AddrHold); - - ///////////////////////////////////////////////////// - // ATA Mode 3 Timing // - ///////////////////////////////////////////////////// - - // Output Delay Path - if(mode==3) (ata_dior_n => ata_data) = //(01,10,0z,z1,1z,z0) - (0,0, - M3_DoutHold, (M3_DioHigh - M3_DoutSetup), - M3_DoutHold, (M3_DioHigh - M3_DoutSetup) ); - - // Write Data Setup/Hold Check - $setuphold(negedge ata_diow, ata_data, M3_WrSetup, M3_WrHold, , ,ata_rst_m3 ); - - // DioX Active time Check - $width(posedge ata_dior &&& ata_rst_m3, M3_DioHigh ); - $width(posedge ata_diow &&& ata_rst_m3, M3_DioHigh ); - - $width(negedge ata_dior &&& ata_rst_m3, M3_DioLow ); - $width(negedge ata_diow &&& ata_rst_m3, M3_DioLow ); - - // DioX Min Cycle Width Check - $period(posedge ata_dior &&& ata_rst_m3, M3_DioCycle ); - $period(posedge ata_diow &&& ata_rst_m3, M3_DioCycle ); - - // Address Setup Hold Checks - $setup(ata_da, posedge ata_dior &&& ata_rst_m3, M3_AddrSetup); - $setup(ata_cs0, posedge ata_dior &&& ata_rst_m3, M3_AddrSetup); - $setup(ata_cs1, posedge ata_dior &&& ata_rst_m3, M3_AddrSetup); - $setup(ata_da, posedge ata_diow &&& ata_rst_m3, M3_AddrSetup); - $setup(ata_cs0, posedge ata_diow &&& ata_rst_m3, M3_AddrSetup); - $setup(ata_cs1, posedge ata_diow &&& ata_rst_m3, M3_AddrSetup); - - $hold(ata_da, negedge ata_dior &&& ata_rst_m3, M3_AddrHold); - $hold(ata_cs0, negedge ata_dior &&& ata_rst_m3, M3_AddrHold); - $hold(ata_cs1, negedge ata_dior &&& ata_rst_m3, M3_AddrHold); - $hold(ata_da, negedge ata_diow &&& ata_rst_m3, M3_AddrHold); - $hold(ata_cs0, negedge ata_diow &&& ata_rst_m3, M3_AddrHold); - $hold(ata_cs1, negedge ata_diow &&& ata_rst_m3, M3_AddrHold); - - - ///////////////////////////////////////////////////// - // ATA Mode 4 Timing // - ///////////////////////////////////////////////////// - - // Output Delay Path - if(mode==4) (ata_dior_n => ata_data) = //(01,10,0z,z1,1z,z0) - (0,0, - M4_DoutHold, (M4_DioHigh - M4_DoutSetup), - M4_DoutHold, (M4_DioHigh - M4_DoutSetup) ); - - // Write Data Setup/Hold Check - $setuphold(negedge ata_diow, ata_data, M4_WrSetup, M4_WrHold, , ,ata_rst_m4 ); - - // DioX Active time Check - $width(posedge ata_dior &&& ata_rst_m4, M4_DioHigh ); - $width(posedge ata_diow &&& ata_rst_m4, M4_DioHigh ); - - $width(negedge ata_dior &&& ata_rst_m4, M4_DioLow ); - $width(negedge ata_diow &&& ata_rst_m4, M4_DioLow ); - - // DioX Min Cycle Width Check - $period(posedge ata_dior &&& ata_rst_m4, M4_DioCycle ); - $period(posedge ata_diow &&& ata_rst_m4, M4_DioCycle ); - - // Address Setup Hold Checks - $setup(ata_da, posedge ata_dior &&& ata_rst_m4, M4_AddrSetup); - $setup(ata_cs0, posedge ata_dior &&& ata_rst_m4, M4_AddrSetup); - $setup(ata_cs1, posedge ata_dior &&& ata_rst_m4, M4_AddrSetup); - $setup(ata_da, posedge ata_diow &&& ata_rst_m4, M4_AddrSetup); - $setup(ata_cs0, posedge ata_diow &&& ata_rst_m4, M4_AddrSetup); - $setup(ata_cs1, posedge ata_diow &&& ata_rst_m4, M4_AddrSetup); - - $hold(ata_da, negedge ata_dior &&& ata_rst_m4, M4_AddrHold); - $hold(ata_cs0, negedge ata_dior &&& ata_rst_m4, M4_AddrHold); - $hold(ata_cs1, negedge ata_dior &&& ata_rst_m4, M4_AddrHold); - $hold(ata_da, negedge ata_diow &&& ata_rst_m4, M4_AddrHold); - $hold(ata_cs0, negedge ata_diow &&& ata_rst_m4, M4_AddrHold); - $hold(ata_cs1, negedge ata_diow &&& ata_rst_m4, M4_AddrHold); - - - -endspecify - - -endmodule - - diff --git a/lib/opencores/ata/atahost_controller.vhd b/lib/opencores/ata/atahost_controller.vhd deleted file mode 100644 index 4356a3cc..00000000 --- a/lib/opencores/ata/atahost_controller.vhd +++ /dev/null @@ -1,670 +0,0 @@ ---------------------------------------------------------------------- ----- ---- ----- OpenCores IDE Controller ---- ----- ATA/ATAPI-5 Host controller (OCIDEC-3) ---- ----- ---- ----- Author: Richard Herveille ---- ----- richard@asics.ws ---- ----- www.asics.ws ---- ----- ---- ---------------------------------------------------------------------- ----- ---- ----- Copyright (C) 2001, 2002 Richard Herveille ---- ----- richard@asics.ws ---- ----- ---- ----- This source file may be used and distributed without ---- ----- restriction provided that this copyright statement is not ---- ----- removed from the file and that any derivative work contains ---- ----- the original copyright notice and the associated disclaimer.---- ----- ---- ----- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ---- ----- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---- ----- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ---- ----- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ---- ----- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ----- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---- ----- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ---- ----- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ---- ----- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---- ----- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ----- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ---- ----- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ---- ----- POSSIBILITY OF SUCH DAMAGE. ---- ----- ---- ---------------------------------------------------------------------- - --- rev.: 1.0 march 8th, 2001. Initial release --- --- CVS Log --- --- $Id: atahost_controller.vhd,v 1.1 2002/02/18 14:32:12 rherveille Exp $ --- --- $Date: 2002/02/18 14:32:12 $ --- $Revision: 1.1 $ --- $Author: rherveille $ --- $Locker: $ --- $State: Exp $ --- --- Change History: --- $Log: atahost_controller.vhd,v $ --- Revision 1.1 2002/02/18 14:32:12 rherveille --- renamed all files to 'atahost_***.vhd' --- broke-up 'counter.vhd' into 'ud_cnt.vhd' and 'ro_cnt.vhd' --- changed resD input to generic RESD in ud_cnt.vhd --- changed ID input to generic ID in ro_cnt.vhd --- changed core to reflect changes in ro_cnt.vhd --- removed references to 'count' library --- changed IO names --- added disclaimer --- added CVS log --- moved registers and wishbone signals into 'atahost_wb_slave.vhd' --- --- - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; - -entity atahost_controller is - generic( - tech : integer := 0; -- fifo mem technology - fdepth : integer := 8; -- DMA fifo depth - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23; -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - - -- Multiword DMA mode 0 settings (@100MHz clock) - DMA_mode0_Tm : natural := 4; -- 50ns - DMA_mode0_Td : natural := 21; -- 215ns - DMA_mode0_Teoc : natural := 21 -- 215ns ==> T0 - Td - Tm = 480 - 50 - 215 = 215 - ); - port( - clk : in std_logic; -- master clock in - nReset : in std_logic := '1'; -- asynchronous active low reset - rst : in std_logic := '0'; -- synchronous active high reset - - irq : out std_logic; -- interrupt request signal - - -- control / registers - IDEctrl_IDEen, - IDEctrl_rst, - IDEctrl_ppen, - IDEctrl_FATR0, - IDEctrl_FATR1 : in std_logic; -- control register settings - - a : in std_logic_vector(3 downto 0); -- address input - d : in std_logic_vector(31 downto 0); -- data input - we : in std_logic; -- write enable input '1'=write, '0'=read - - -- PIO registers - PIO_cmdport_T1, - PIO_cmdport_T2, - PIO_cmdport_T4, - PIO_cmdport_Teoc : in std_logic_vector(7 downto 0); - PIO_cmdport_IORDYen : in std_logic; -- PIO compatible timing settings - - PIO_dport0_T1, - PIO_dport0_T2, - PIO_dport0_T4, - PIO_dport0_Teoc : in std_logic_vector(7 downto 0); - PIO_dport0_IORDYen : in std_logic; -- PIO data-port device0 timing settings - - PIO_dport1_T1, - PIO_dport1_T2, - PIO_dport1_T4, - PIO_dport1_Teoc : in std_logic_vector(7 downto 0); - PIO_dport1_IORDYen : in std_logic; -- PIO data-port device1 timing settings - - PIOsel : in std_logic; -- PIO controller select - PIOack : out std_logic; -- PIO controller acknowledge - PIOq : out std_logic_vector(15 downto 0); -- PIO data out - PIOtip : out std_logic; -- PIO transfer in progress - PIOpp_full : out std_logic; -- PIO Write PingPong full - - -- DMA registers - DMA_dev0_Td, - DMA_dev0_Tm, - DMA_dev0_Teoc : in std_logic_vector(7 downto 0); -- DMA timing settings for device0 - - DMA_dev1_Td, - DMA_dev1_Tm, - DMA_dev1_Teoc : in std_logic_vector(7 downto 0); -- DMA timing settings for device1 - - DMActrl_DMAen, - DMActrl_dir, - DMActrl_Bytesw, --Jagre 2006-12-04 byte swap ATA data - DMActrl_BeLeC0, - DMActrl_BeLeC1 : in std_logic; -- DMA settings - - DMAsel : in std_logic; -- DMA controller select - DMAack : out std_logic; -- DMA controller acknowledge - DMAq : out std_logic_vector(31 downto 0); -- DMA data out - DMAtip_out : out std_logic; -- DMA transfer in progress --Erik Jagre 2006-11-15 - DMA_dmarq : out std_logic; -- Synchronized ATA DMARQ line - - force_rdy : in std_logic; -- DMA transmit fifo filled up partly --Erik Jagre 2006-10-31 - fifo_rdy : out std_logic; -- DMA transmit fifo filled up --Erik Jagre 2006-10-30 - DMARxEmpty : out std_logic; -- DMA receive buffer empty - DMARxFull : out std_logic; -- DMA receive fifo full Erik Jagre 2006-10-31 - - DMA_req : out std_logic; -- DMA request to external DMA engine - DMA_ack : in std_logic; -- DMA acknowledge from external DMA engine - BM_en : in std_logic; -- Bus mater enabled, for DMA reset Erik Jagre 2006-10-24 - - -- ATA signals - RESETn : out std_logic; - DDi : in std_logic_vector(15 downto 0); - DDo : out std_logic_vector(15 downto 0); - DDoe : out std_logic; - DA : out std_logic_vector(2 downto 0) := "000"; - CS0n : out std_logic; - CS1n : out std_logic; - - DMARQ : in std_logic; - DMACKn : out std_logic; - DIORn : out std_logic; - DIOWn : out std_logic; - IORDY : in std_logic; - INTRQ : in std_logic - ); -end entity atahost_controller; - -architecture structural of atahost_controller is - -- - -- component declarations - -- - component atahost_pio_controller is - generic( - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ); - port( - clk : in std_logic; -- master clock in - nReset : in std_logic := '1'; -- asynchronous active low reset - rst : in std_logic := '0'; -- synchronous active high reset - - -- control / registers - IDEctrl_IDEen, - IDEctrl_ppen, - IDEctrl_FATR0, - IDEctrl_FATR1 : in std_logic; - - -- PIO registers - cmdport_T1, - cmdport_T2, - cmdport_T4, - cmdport_Teoc : in std_logic_vector(7 downto 0); - cmdport_IORDYen : in std_logic; -- PIO command port / non-fast timing - - dport0_T1, - dport0_T2, - dport0_T4, - dport0_Teoc : in std_logic_vector(7 downto 0); - dport0_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 0 - - dport1_T1, - dport1_T2, - dport1_T4, - dport1_Teoc : in std_logic_vector(7 downto 0); - dport1_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 1 - - sel : in std_logic; -- PIO controller selected - ack : out std_logic; -- PIO controller acknowledge - a : in std_logic_vector(3 downto 0); -- lower address bits - we : in std_logic; -- write enable input - d : in std_logic_vector(15 downto 0); - q : out std_logic_vector(15 downto 0); - - PIOreq : out std_logic; -- PIO transfer request - PPFull : out std_logic; -- PIO Write PingPong Full - go : in std_logic; -- start PIO transfer - done : out std_logic; -- done with PIO transfer - - PIOa : out std_logic_vector(3 downto 0); -- PIO address, address lines towards ATA devices - PIOd : out std_logic_vector(15 downto 0); -- PIO data, data towards ATA devices - - SelDev : out std_logic; -- Selected Device, Dev-bit in ATA Device/Head register - - DDi : in std_logic_vector(15 downto 0); - DDoe : out std_logic; - - DIOR : out std_logic; - DIOW : out std_logic; - IORDY : in std_logic - ); - end component atahost_pio_controller; - - component atahost_dma_actrl is - generic( - tech : integer := 0; -- fifo mem technology - fdepth : integer := 8; -- DMA fifo depth - TWIDTH : natural := 8; -- counter width - - -- DMA mode 0 settings (@100MHz clock) - DMA_mode0_Tm : natural := 4; -- 50ns - DMA_mode0_Td : natural := 21; -- 215ns - DMA_mode0_Teoc : natural := 21 -- 215ns ==> T0 - Td - Tm = 480 - 50 - 215 = 215 - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic; -- asynchronous active low reset - rst : in std_logic; -- synchronous active high reset - - IDEctrl_rst : in std_logic; -- IDE control register bit0, 'rst' - - sel : in std_logic; -- DMA buffers selected - we : in std_logic; -- write enable input - ack : out std_logic; -- acknowledge output - - dev0_Tm, - dev0_Td, - dev0_Teoc : in std_logic_vector(7 downto 0); -- DMA mode timing device 0 - dev1_Tm, - dev1_Td, - dev1_Teoc : in std_logic_vector(7 downto 0); -- DMA mode timing device 1 - - DMActrl_DMAen, - DMActrl_dir, - DMActrl_Bytesw, - DMActrl_BeLeC0, - DMActrl_BeLeC1 : in std_logic; -- control register settings - - TxD : in std_logic_vector(31 downto 0); -- DMA transmit data - TxFull : out std_logic; -- DMA transmit buffer full - TxEmpty : out std_logic; - RxQ : out std_logic_vector(31 downto 0); -- DMA receive data - RxEmpty : out std_logic; -- DMA receive buffer empty - RxFull : out std_logic; -- DMA receive buffer full - DMA_req : out std_logic; -- DMA request to external DMA engine - DMA_ack : in std_logic; -- DMA acknowledge from external DMA engine - - DMARQ : in std_logic; -- ATA devices request DMA transfer - - SelDev : in std_logic; -- Selected device - - Go : in std_logic; -- Start transfer sequence - Done : out std_logic; -- Transfer sequence done - - DDi : in std_logic_vector(15 downto 0); -- Data from ATA DD bus - DDo : out std_logic_vector(15 downto 0); -- Data towards ATA DD bus - - DIOR, - DIOW : out std_logic - ); - end component atahost_dma_actrl; - - type reg_type is record - force_rdy : std_logic; - fifo_rdy : std_logic; - s_DMATxEmpty : std_logic; - s_DMATxFull : std_logic; - s_DMARxEmpty : std_logic; - s_DMARxFull : std_logic; - end record; - - constant RESET_VECTOR : reg_type := ('0','0','0','0','0','0'); - - signal r,ri : reg_type; - - -- - -- signals - -- - signal SelDev : std_logic; -- selected device - signal s_DMARxFull : std_logic; -- DMA receive buffer full - - -- PIO / DMA signals - signal PIOgo, DMAgo : std_logic :='0'; -- start PIO / DMA timing controller - signal PIOdone, DMAdone : std_logic :='0'; -- PIO / DMA timing controller done - - -- PIO signals - signal PIOdior, PIOdiow : std_logic; - signal PIOoe : std_logic; - - -- PIO pingpong signals - signal PIOd : std_logic_vector(15 downto 0); - signal PIOa : std_logic_vector(3 downto 0):="0000"; - signal PIOreq : std_logic; - - -- DMA signals - signal DMAd : std_logic_vector(15 downto 0); - signal DMAtip, s_fifo_rdy, s_DMARxEmpty, s_DMATxFull,s_DMATxEmpty, DMAdior, DMAdiow, s_DMArst: std_logic; --Erik Jagre 2006-10-24 new s_DMArst signal - -- synchronized ATA inputs - signal sDMARQ, sIORDY, iPIOtip, iDMAtip_out : std_logic; - -begin - - -- - -- synchronize incoming signals - -- - synch_incoming: block - signal cDMARQ : std_logic; -- capture DMARQ - signal cIORDY : std_logic; -- capture IORDY - signal cINTRQ : std_logic; -- capture INTRQ - begin - process(clk) - begin - if (clk'event and clk = '1') then - cDMARQ <= DMARQ; - cIORDY <= IORDY; - cINTRQ <= INTRQ; - - sDMARQ <= cDMARQ; - sIORDY <= cIORDY; - irq <= cINTRQ; - end if; - end process; - - DMA_dmarq <= sDMARQ; - end block synch_incoming; - - -- - -- generate ATA signals - -- - gen_ata_sigs: block - signal iDDo : std_logic_vector(15 downto 0); - begin - -- generate registers for ATA signals - gen_regs: process(clk, nReset) - begin - if (nReset = '0') then - RESETn <= '0'; - DIORn <= '1'; - DIOWn <= '1'; - DA <= (others => '0'); - CS0n <= '1'; - CS1n <= '1'; - DDo <= (others => '0'); - DDoe <= '0'; - DMACKn <= '1'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - RESETn <= '0'; - DIORn <= '1'; - DIOWn <= '1'; - DA <= (others => '0'); - CS0n <= '1'; - CS1n <= '1'; - DDo <= (others => '0'); - DDoe <= '0'; - DMACKn <= '1'; - else - RESETn <= not IDEctrl_rst; - DA <= PIOa(2 downto 0); - CS0n <= not (not PIOa(3) and iPIOtip); -- CS0 asserted when A(3) = '0', negate during DMA transfers - CS1n <= not ( PIOa(3) and iPIOtip); -- CS1 asserted when A(3) = '1', negate during DMA transfers - - if (iPIOtip = '1') then - DDo <= PIOd; - DDoe <= PIOoe; - DIORn <= not PIOdior; - DIOWn <= not PIOdiow; - else - DDo <= DMAd; - DDoe <= DMActrl_dir and DMAtip; - DIORn <= not DMAdior; - DIOWn <= not DMAdiow; - end if; - - DMACKn <= not DMAtip; - end if; - end if; - end process gen_regs; - end block gen_ata_sigs; - - -- - -- generate bus controller statemachine - -- - statemachine: block - type states is (idle, PIO_state, DMA_state); - signal nxt_state, c_state : states; -- next_state, current_state - - signal iPIOgo, iDMAgo : std_logic :='0'; - begin - gen_fifo_rdy : process(r,s_DMATxEmpty,s_DMATxFull,s_DMARxFull,s_DMARxEmpty,force_rdy,s_DMArst,DMActrl_dir) --Erik Jagre 2006-10-30 - variable v : reg_type; - begin - v:=r; - v.s_DMATxFull:=s_DMATxFull; - v.s_DMATxEmpty:=s_DMATxEmpty; - v.s_DMARxFull:=s_DMARxFull; - v.s_DMARxEmpty:=s_DMARxEmpty; - v.force_rdy:=force_rdy; - case DMActrl_dir is - when '1' => --Tx action mem_to_ata - if (r.s_DMATxFull='0' and s_DMATxFull='1') or - (r.force_rdy='0' and force_rdy='1') then - v.fifo_rdy:='1'; - elsif (r.s_DMATxEmpty='0' and s_DMATxEmpty='1') then - v.fifo_rdy:='0'; - else - v.fifo_rdy:=r.fifo_rdy; - end if; - if s_DMArst='1' then - v.fifo_rdy:='0'; - end if; - when '0' => --Rx action ata_to_mem - if (s_DMARxEmpty='1') or --r.s_DMARxEmpty='0' and Jagre 2006-12-04 - (r.force_rdy='0' and force_rdy='1') then --Erik Jagre 2006-11-07 - v.fifo_rdy:='1'; - elsif (r.s_DMARxFull='0' and s_DMARxFull='1') then - v.fifo_rdy:='0'; - else - v.fifo_rdy:=r.fifo_rdy; - end if; - if s_DMArst='1' then - v.fifo_rdy:='1'; - end if; - when others => - v.fifo_rdy:=r.fifo_rdy; - end case; - - ri<=v; - s_fifo_rdy<=v.fifo_rdy; --Jagre 2006-12-04 - fifo_rdy<=r.fifo_rdy; - end process gen_fifo_rdy; - - -- generate next state decoder + output decoder --- gen_nxt_state: process(c_state, DMActrl_DMAen, DMActrl_dir, PIOreq, sDMARQ, s_fifo_rdy, s_DMARxFull, PIOdone, DMAdone) --Erik Jagre 2006-10-30 - gen_nxt_state: process(c_state, DMActrl_DMAen, PIOreq, sDMARQ, s_fifo_rdy, PIOdone, DMAdone) --Erik Jagre 2007-02-08 - begin - nxt_state <= c_state; -- initialy stay in current state - - iPIOgo <= '0'; - iDMAgo <= '0'; - - case c_state is - -- idle - when idle => - -- DMA transfer pending ? - if ( (sDMARQ = '1') and (DMActrl_DMAen = '1') ) then - if (s_fifo_rdy='1') then --Erik Jagre 2006-10-30 - nxt_state <= DMA_state; -- DMA transfer - iDMAgo <= '1'; -- start DMA timing controller - end if; - -- PIO transfer pending ? - elsif (PIOreq = '1') then - nxt_state <= PIO_state; -- PIO transfer - iPIOgo <= '1'; - end if; - - -- PIO transfer - when PIO_state => - if (PIOdone = '1') then - nxt_state <= idle; - end if; - - -- DMA transfer - when DMA_state => - if (DMAdone = '1') then - nxt_state <= idle; - end if; - - when others => - nxt_state <= idle; -- go to idle state - - end case; - end process gen_nxt_state; - - -- generate registers - gen_regs: process(clk, nReset) - begin - if (nReset = '0') then - c_state <= idle; - PIOgo <= '0'; - DMAgo <= '0'; - r<=RESET_VECTOR; - elsif (clk'event and clk = '1') then - if (rst = '1') then - c_state <= idle; - PIOgo <= '0'; - DMAgo <= '0'; - r<=RESET_VECTOR; - else - c_state <= nxt_state; - PIOgo <= iPIOgo; - DMAgo <= iDMAgo; - r<=ri; - end if; - end if; - end process gen_regs; - - -- generate PIOtip / DMAtip - gen_tip: process(clk, nReset) - begin - if (nReset = '0') then - iPIOtip <= '0'; - DMAtip <= '0'; - iDMAtip_out <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - iPIOtip <= '0'; - DMAtip <= '0'; - iDMAtip_out <= '0'; - else - iPIOtip <= iPIOgo or (iPIOtip and not PIOdone); - DMAtip <= iDMAgo or (DMAtip and not ((DMAdone and DMActrl_dir) or (DMAdone and not sDMARQ and not DMActrl_dir)) ); - iDMAtip_out <= iDMAgo or (not s_DMATxEmpty) or (iDMAtip_out and not ((DMAdone and DMActrl_dir) or (DMAdone and not sDMARQ and not DMActrl_dir)) ); - end if; - end if; - end process gen_tip; - end block statemachine; - - PIOtip <= iPIOtip; DMAtip_out <= iDMAtip_out; - DMARxEmpty <= s_DMARxEmpty; --Erik Jagre 2006-11-01 - DMARxFull <= s_DMARxFull; --Erik Jagre 2006-10-31 - s_DMArst <=IDEctrl_rst or (not BM_en); --reset DMA controller when BM not active - - -- - -- Hookup PIO controller - -- - PIO_control: atahost_pio_controller - generic map( - TWIDTH => TWIDTH, - PIO_mode0_T1 => PIO_mode0_T1, - PIO_mode0_T2 => PIO_mode0_T2, - PIO_mode0_T4 => PIO_mode0_T4, - PIO_mode0_Teoc => PIO_mode0_Teoc - ) - port map( - clk => clk, - nReset => nReset, - rst => rst, - IDEctrl_IDEen => IDEctrl_IDEen, - IDEctrl_ppen => IDEctrl_ppen, - IDEctrl_FATR0 => IDEctrl_FATR0, - IDEctrl_FATR1 => IDEctrl_FATR1, - cmdport_T1 => PIO_cmdport_T1, - cmdport_T2 => PIO_cmdport_T2, - cmdport_T4 => PIO_cmdport_T4, - cmdport_Teoc => PIO_cmdport_Teoc, - cmdport_IORDYen => PIO_cmdport_IORDYen, - dport0_T1 => PIO_dport0_T1, - dport0_T2 => PIO_dport0_T2, - dport0_T4 => PIO_dport0_T4, - dport0_Teoc => PIO_dport0_Teoc, - dport0_IORDYen => PIO_dport0_IORDYen, - dport1_T1 => PIO_dport1_T1, - dport1_T2 => PIO_dport1_T2, - dport1_T4 => PIO_dport1_T4, - dport1_Teoc => PIO_dport1_Teoc, - dport1_IORDYen => PIO_dport1_IORDYen, - sel => PIOsel, - ack => PIOack, - a => a, - we => we, - d => d(15 downto 0), - q => PIOq, - PIOreq => PIOreq, - PPFull => PIOpp_full, - go => PIOgo, - done => PIOdone, - PIOa => PIOa, - PIOd => PIOd, - SelDev => SelDev, - DDi => DDi, - DDoe => PIOoe, - DIOR => PIOdior, - DIOW => PIOdiow, - IORDY => sIORDY - ); - - -- - -- Hookup DMA access controller - -- - DMA_control: atahost_dma_actrl - generic map( - tech => tech, - fdepth => fdepth, - TWIDTH => TWIDTH, - DMA_mode0_Tm => DMA_mode0_Tm, - DMA_mode0_Td => DMA_mode0_Td, - DMA_mode0_Teoc => DMA_mode0_Teoc - ) - port map( - clk => clk, - nReset => nReset, - rst => rst, - IDEctrl_rst => s_DMArst,--IDEctrl_rst, - DMActrl_DMAen => DMActrl_DMAen, - DMActrl_dir => DMActrl_dir, - DMActrl_Bytesw => DMActrl_Bytesw, - DMActrl_BeLeC0 => DMActrl_BeLeC0, - DMActrl_BeLeC1 => DMActrl_BeLeC1, - dev0_Td => DMA_dev0_Td, - dev0_Tm => DMA_dev0_Tm, - dev0_Teoc => DMA_dev0_Teoc, - dev1_Td => DMA_dev1_Td, - dev1_Tm => DMA_dev1_Tm, - dev1_Teoc => DMA_dev1_Teoc, - sel => DMAsel, - ack => DMAack, - we => we, - TxD => d, - TxFull => s_DMATxFull, - TxEmpty => s_DMATxEmpty, - RxQ => DMAq, - RxFull => s_DMARxFull, - RxEmpty => s_DMARxEmpty, - DMA_req => DMA_req, - DMA_ack => DMA_ack, - SelDev => SelDev, - Go => DMAgo, - Done => DMAdone, - DDi => DDi, - DDo => DMAd, - DIOR => DMAdior, - DIOW => DMAdiow, - DMARQ => sDMARQ - ); -end architecture structural; diff --git a/lib/opencores/ata/atahost_dma_actrl.vhd b/lib/opencores/ata/atahost_dma_actrl.vhd deleted file mode 100644 index 30e9083c..00000000 --- a/lib/opencores/ata/atahost_dma_actrl.vhd +++ /dev/null @@ -1,503 +0,0 @@ ---------------------------------------------------------------------- ----- ---- ----- OpenCores IDE Controller ---- ----- DMA (single- and multiword) mode access controller ---- ----- ---- ----- Author: Richard Herveille ---- ----- richard@asics.ws ---- ----- www.asics.ws ---- ----- ---- ---------------------------------------------------------------------- ----- ---- ----- Copyright (C) 2001, 2002 Richard Herveille ---- ----- richard@asics.ws ---- ----- ---- ----- This source file may be used and distributed without ---- ----- restriction provided that this copyright statement is not ---- ----- removed from the file and that any derivative work contains ---- ----- the original copyright notice and the associated disclaimer.---- ----- ---- ----- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ---- ----- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---- ----- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ---- ----- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ---- ----- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ----- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---- ----- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ---- ----- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ---- ----- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---- ----- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ----- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ---- ----- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ---- ----- POSSIBILITY OF SUCH DAMAGE. ---- ----- ---- ---------------------------------------------------------------------- - --- rev.: 1.0 march 9th, 2001. Initial release --- --- CVS Log --- --- $Id: atahost_dma_actrl.vhd,v 1.1 2002/02/18 14:32:12 rherveille Exp $ --- --- $Date: 2002/02/18 14:32:12 $ --- $Revision: 1.1 $ --- $Author: rherveille $ --- $Locker: $ --- $State: Exp $ --- --- Change History: --- $Log: atahost_dma_actrl.vhd,v $ --- Revision 1.1 2002/02/18 14:32:12 rherveille --- renamed all files to 'atahost_***.vhd' --- broke-up 'counter.vhd' into 'ud_cnt.vhd' and 'ro_cnt.vhd' --- changed resD input to generic RESD in ud_cnt.vhd --- changed ID input to generic ID in ro_cnt.vhd --- changed core to reflect changes in ro_cnt.vhd --- removed references to 'count' library --- changed IO names --- added disclaimer --- added CVS log --- moved registers and wishbone signals into 'atahost_wb_slave.vhd' --- --- --- - - --- Host accesses to DMA ports are 32bit wide. Accesses are made by 2 consecutive 16bit accesses to the ATA --- device's DataPort. The MSB HostData(31:16) is transfered first, then the LSB HostData(15:0) is transfered. - --- ---------------------------- --- DMA Access Controller -- ---------------------------- --- -library ieee; -use ieee.std_logic_1164.all; -use ieee.std_logic_arith.all; -library grlib; -use grlib.stdlib.all; - -entity atahost_dma_actrl is - generic( - tech : integer := 0; -- fifo mem technology - fdepth : integer := 8; -- DMA fifo depth - TWIDTH : natural := 8; -- counter width - - -- DMA mode 0 settings (@100MHz clock) - DMA_mode0_Tm : natural := 4; -- 50ns - DMA_mode0_Td : natural := 21; -- 215ns - DMA_mode0_Teoc : natural := 21 -- 215ns ==> T0 - Td - Tm = 480 - 50 - 215 = 215 - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic; -- asynchronous active low reset - rst : in std_logic; -- synchronous active high reset - - IDEctrl_rst : in std_logic; -- IDE control register bit0, 'rst' - - sel : in std_logic; -- DMA buffers selected - we : in std_logic; -- write enable input - ack : out std_logic; -- acknowledge output - - dev0_Tm, - dev0_Td, - dev0_Teoc : in std_logic_vector(7 downto 0); -- DMA mode timing device 0 - dev1_Tm, - dev1_Td, - dev1_Teoc : in std_logic_vector(7 downto 0); -- DMA mode timing device 1 - - DMActrl_DMAen, - DMActrl_dir, - DMActrl_Bytesw, --Jagre 2006-12-04, byte swap ATA data - DMActrl_BeLeC0, - DMActrl_BeLeC1 : in std_logic; -- control register settings - - TxD : in std_logic_vector(31 downto 0); -- DMA transmit data - TxFull : out std_logic; -- DMA transmit buffer full - TxEmpty : out std_logic; - RxQ : out std_logic_vector(31 downto 0); -- DMA receive data - RxEmpty : out std_logic; -- DMA receive buffer empty - RxFull : out std_logic; -- DMA receive buffer full - DMA_req : out std_logic; -- DMA request to external DMA engine - DMA_ack : in std_logic; -- DMA acknowledge from external DMA engine - - DMARQ : in std_logic; -- ATA devices request DMA transfer - - SelDev : in std_logic; -- Selected device - - Go : in std_logic; -- Start transfer sequence - Done : out std_logic; -- Transfer sequence done - - DDi : in std_logic_vector(15 downto 0); -- Data from ATA DD bus - DDo : out std_logic_vector(15 downto 0); -- Data towards ATA DD bus - - DIOR, - DIOW : out std_logic - ); -end entity atahost_dma_actrl; - -architecture structural of atahost_dma_actrl is - -- - -- component declarations - -- - component atahost_dma_tctrl is - generic( - TWIDTH : natural := 8; -- counter width - - -- DMA mode 0 settings (@100MHz clock) - DMA_mode0_Tm : natural := 6; -- 70ns - DMA_mode0_Td : natural := 28; -- 290ns - DMA_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic; -- asynchronous active low reset - rst : in std_logic; -- synchronous active high reset - - -- timing register settings - Tm : in std_logic_vector(TWIDTH -1 downto 0); -- Tm time (in clk-ticks) - Td : in std_logic_vector(TWIDTH -1 downto 0); -- Td time (in clk-ticks) - Teoc : in std_logic_vector(TWIDTH -1 downto 0); -- end of cycle time - - -- control signals - go : in std_logic; -- DMA controller selected (strobe signal) - we : in std_logic; -- DMA direction '1' = write, '0' = read - - -- return signals - done : out std_logic; -- finished cycle - dstrb : out std_logic; -- data strobe - - -- ATA signals - DIOR, -- IOread signal, active high - DIOW : out std_logic -- IOwrite signal, active high - ); - end component atahost_dma_tctrl; - - component atahost_reg_buf is - generic ( - WIDTH : natural := 8 - ); - port( - clk : in std_logic; - nReset : in std_logic; - rst : in std_logic; - - D : in std_logic_vector(WIDTH -1 downto 0); - Q : out std_logic_vector(WIDTH -1 downto 0); - rd : in std_logic; - wr : in std_logic; - valid : out std_logic - ); - end component atahost_reg_buf; - - component atahost_dma_fifo is - generic(tech : integer:=0; - abits : integer:=3; - dbits : integer:=32; - depth : integer:=8); - - port( clk : in std_logic; - reset : in std_logic; - - write_enable : in std_logic; - read_enable : in std_logic; - - data_in : in std_logic_vector(dbits-1 downto 0); - data_out : out std_logic_vector(dbits-1 downto 0); - - write_error : out std_logic:='0'; - read_error : out std_logic:='0'; - - level : out natural range 0 to depth; - empty : out std_logic:='1'; - full : out std_logic:='0' - ); - end component atahost_dma_fifo; - - signal Tdone, Tfw : std_logic; - signal RxWr, TxRd : std_logic; - signal assync_TxRd, s_TxFull : std_logic; -----------------------Erik Jagre 2006-10-27 - signal dstrb, rd_dstrb, wr_dstrb : std_logic; - signal TxbufQ, RxbufD : std_logic_vector(31 downto 0); - signal iRxEmpty : std_logic; - - constant abits : integer := Log2(fdepth); - -begin - - -- note: *fw = *first_word, *lw = *last_word - - - -- - -- generate DDi/DDo controls - -- - gen_DMA_sigs: block - signal writeDfw, writeDlw : std_logic_vector(15 downto 0); - signal readDfw, readDlw : std_logic_vector(15 downto 0); - signal BeLeC : std_logic; -- BigEndian <-> LittleEndian conversion - begin - -- generate byte_swap signal - BeLeC <= (not SelDev and DMActrl_BeLeC0) or (SelDev and DMActrl_BeLeC1); - - -- generate Tfw (Transfering first word) - gen_Tfw: process(clk, nReset) - begin - if (nReset = '0') then - Tfw <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - Tfw <= '0'; - else - Tfw <= go or (Tfw and not Tdone); - end if; - end if; - end process gen_Tfw; - - -- transmit data part - gen_writed_pipe:process(clk) - begin - if (clk'event and clk = '1') then - if (TxRd = '1') then -- reload registers - if (BeLeC = '1') then -- Do big<->little endian conversion - writeDfw(15 downto 8) <= TxbufQ( 7 downto 0); -- TxbufQ = data from transmit buffer - writeDfw( 7 downto 0) <= TxbufQ(15 downto 8); - writeDlw(15 downto 8) <= TxbufQ(23 downto 16); - writeDlw( 7 downto 0) <= TxbufQ(31 downto 24); - else -- don't do big<->little endian conversion - writeDfw <= TxbufQ(31 downto 16); - writeDlw <= TxbufQ(15 downto 0); - end if; - elsif (wr_dstrb = '1') then -- next word to transfer - writeDfw <= writeDlw; - end if; - end if; - end process gen_writed_pipe; - - --Jagre 2006-12-04 - --swap byte orderD when MActrl_Bytesw is set to '1' - DDo(15 downto 8) <= writeDfw(15 downto 8) when DMActrl_Bytesw='0' else - writeDfw(7 downto 0); - - DDo(7 downto 0) <= writeDfw(7 downto 0) when DMActrl_Bytesw='0' else - writeDfw(15 downto 8); - - --DDo <= writeDfw; -- assign DMA data out - - -- generate transmit register read request - gen_Tx_rreq: process(clk, nReset) - begin - if (nReset = '0') then - TxRd <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - TxRd <= '0'; - else - TxRd <= go and DMActrl_dir; - end if; - end if; - end process gen_Tx_rreq; - assync_TxRd <= go and DMActrl_dir; --Jagre 2006-12-14 - - -- receive - gen_readd_pipe:process(clk) - begin - if (clk'event and clk = '1') then - if (rd_dstrb = '1') then - - readDfw <= readDlw; -- shift previous read word to msb - if (BeLeC = '1' xor DMActrl_Bytesw = '1') then -- swap bytes, DMActrl_Bytesw added 2006-12-04, Jagre - readDlw(15 downto 8) <= DDi( 7 downto 0); - readDlw( 7 downto 0) <= DDi(15 downto 8); - else -- don't swap bytes - readDlw <= DDi; - end if; - end if; - end if; - end process gen_readd_pipe; - -- RxD = data to receive buffer - RxbufD <= (readDfw & readDlw) when (BeLeC = '0') else (readDlw & readDfw); - - -- generate receive register write request - gen_Rx_wreq: process(clk, nReset) - begin - if (nReset = '0') then - RxWr <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - RxWr <= '0'; - else - RxWr <= not Tfw and rd_dstrb; - end if; - end if; - end process gen_Rx_wreq; - end block gen_DMA_sigs; - - - -- - -- Hookup DMA read / write buffers - -- - gen_DMAbuf: block - signal DMArst : std_logic; - signal RxRd, TxWr : std_logic; - begin - -- generate DMA reset signal - DMArst <= rst or IDEctrl_rst; - - Txfifo: atahost_dma_fifo - generic map(dbits=>32,depth=>fdepth,tech=>tech,abits=>abits) - port map( clk => clk, - reset => DMArst, - write_enable => TxWr, - read_enable => assync_TxRd, - data_in => TxD, - data_out => TxbufQ, - write_error => open, - read_error => open, - level => open, - empty => TxEmpty, - full => s_TxFull - ); - - Rxfifo: atahost_dma_fifo - generic map(dbits=>32,depth=>fdepth,tech=>tech,abits=>abits) - port map( clk => clk, - reset => DMArst, - write_enable => RxWr, - read_enable => RxRd, - data_in => RxbufD, - data_out => RxQ, - write_error => open, - read_error => open, - level => open, - empty => iRxEmpty, - full => RxFull - ); - - RxEmpty <= iRxEmpty; -- avoid 'cannot associate OUT port with BUFFER port' error - - -- - -- generate DMA buffer access signals - -- - RxRd <= sel and not we and not iRxEmpty; - TxWr <= sel and we and not s_TxFull; - - ack <= RxRd or TxWr; -- DMA buffer access acknowledge - end block gen_DMAbuf; - - -- - -- generate request signal for external DMA engine - -- - gen_DMA_req: block - signal hgo : std_logic; - signal iDMA_req : std_logic; - signal request : std_logic; - begin - -- generate hold-go - gen_hgo : process(clk, nReset) - begin - if (nReset = '0') then - hgo <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - hgo <= '0'; - else - hgo <= go or (hgo and not (wr_dstrb and not Tfw) and DMActrl_dir); - end if; - end if; - end process gen_hgo; - - request <= (DMActrl_dir and DMARQ and not s_TxFull and not hgo) or not iRxEmpty; - process(clk, nReset) - begin - if (nReset = '0') then - iDMA_req <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - iDMA_req <= '0'; - else - iDMA_req <= DMActrl_DMAen and not DMA_ack and (request or iDMA_req); --- DMA_req <= (DMActrl_DMAen and DMActrl_dir and DMARQ and not TxFull and not hgo) or not iRxEmpty; - end if; - end if; - end process; - DMA_req <= iDMA_req; - end block gen_DMA_req; - - - -- - -- DMA timing controller - -- - DMA_timing_ctrl: block - signal Tm, Td, Teoc, Tdmack_ext : std_logic_vector(TWIDTH -1 downto 0); - signal dTfw, igo : std_logic; - begin - -- - -- generate internal GO signal - -- - gen_igo : process(clk, nReset) - begin - if (nReset = '0') then - igo <= '0'; - dTfw <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - igo <= '0'; - dTfw <= '0'; - else - igo <= go or (not Tfw and dTfw); - dTfw <= Tfw; - end if; - end if; - end process gen_igo; - - -- - -- select timing settings for the addressed device - -- - sel_dev_t: process(clk) - begin - if (clk'event and clk = '1') then - if (SelDev = '1') then -- device1 selected - Tm <= dev1_Tm; - Td <= dev1_Td; - Teoc <= dev1_Teoc; - else -- device0 selected - Tm <= dev0_Tm; - Td <= dev0_Td; - Teoc <= dev0_Teoc; - end if; - end if; - end process sel_dev_t; - - -- - -- hookup timing controller - -- - DMA_timing_ctrl: atahost_dma_tctrl - generic map ( - TWIDTH => TWIDTH, - DMA_mode0_Tm => DMA_mode0_Tm, - DMA_mode0_Td => DMA_mode0_Td, - DMA_mode0_Teoc => DMA_mode0_Teoc - ) - port map ( - clk => clk, - nReset => nReset, - rst => rst, - Tm => Tm, - Td => Td, - Teoc => Teoc, - go => igo, - we => DMActrl_dir, - done => Tdone, - dstrb => dstrb, - DIOR => dior, - DIOW => diow - ); - - done <= Tdone and not Tfw; -- done transfering last word - rd_dstrb <= dstrb and not DMActrl_dir; -- read data strobe - wr_dstrb <= dstrb and DMActrl_dir; -- write data strobe - TxFull <= s_TxFull; - end block DMA_timing_ctrl; - -end architecture structural; - diff --git a/lib/opencores/ata/atahost_dma_fifo.vhd b/lib/opencores/ata/atahost_dma_fifo.vhd deleted file mode 100644 index 4248ab83..00000000 --- a/lib/opencores/ata/atahost_dma_fifo.vhd +++ /dev/null @@ -1,154 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: atahost_dma_fifo --- File: atahost_dma_fifo.vhd --- Author: Erik Jagre - Gaisler Research --- Description: Generic FIFO, based on syncram in grlib ------------------------------------------------------------------------------ - -library IEEE; -use IEEE.std_logic_1164.all; -library techmap; -use techmap.gencomp.all; -library grlib; -use grlib.stdlib.all; - -entity atahost_dma_fifo is - generic(tech : integer:=0; abits : integer:=3; - dbits : integer:=32; depth : integer:=8); - port( clk : in std_logic; - reset : in std_logic; - write_enable : in std_logic; - read_enable : in std_logic; - data_in : in std_logic_vector(dbits-1 downto 0); - data_out : out std_logic_vector(dbits-1 downto 0); - write_error : out std_logic:='0'; - read_error : out std_logic:='0'; - level : out natural range 0 to depth; - empty : out std_logic:='1'; - full : out std_logic:='0'); -end; - -architecture rtl of atahost_dma_fifo is -type state_type is (full_state, empty_state, idle_state); -type reg_type is record - state : state_type; - level : integer range 0 to depth; - aw : integer range 0 to depth; - ar : integer range 0 to depth; - data_o : std_logic_vector(dbits-1 downto 0); - rd : std_logic; - wr : std_logic; - erd : std_logic; - ewr : std_logic; - reset : std_logic; - adr : std_logic_vector(abits-1 downto 0); -end record; - -constant zerod : std_logic_vector(dbits-1 downto 0) := (others => '0'); -constant zeroa : std_logic_vector(abits-1 downto 0) := (others => '0'); -constant RESET_VECTOR : reg_type := (empty_state,0,0,0, - zerod,'0','0','0','0','0', zeroa); - -signal r,ri : reg_type; -signal s_ram_adr : std_logic_vector(abits-1 downto 0); - -begin --- comb:process(write_enable, read_enable, data_in,reset, r) Erik 2007-02-08 - comb:process(write_enable, read_enable, reset, r) - variable v : reg_type; - variable vfull, vempty : std_logic; - - begin - v:=r; - v.wr:=write_enable; v.rd:=read_enable; v.reset:=reset; - - case r.state is - when full_state=> - if write_enable='1' and read_enable='0' and reset='0' then - v.ewr:='1'; v.state:=full_state; - elsif write_enable='0' and read_enable='1' and reset='0' then - v.adr:=conv_std_logic_vector(r.ar,abits); - if r.ar=depth-1 then v.ar:=0; else v.ar:=r.ar+1; end if; - v.level:=r.level-1; - if r.aw=v.ar then v.state:=empty_state; - else v.state:=idle_state; end if; - v.ewr:='0'; - end if; - - when empty_state=> - if write_enable='1' and read_enable='0' and reset='0' then - v.adr:=conv_std_logic_vector(r.aw,abits); - if r.aw=depth-1 then v.aw:=0; else v.aw:=r.aw+1; end if; - v.level:=r.level+1; - if v.aw=r.ar then v.state:=full_state; - else v.state:=idle_state; end if; - v.erd:='0'; - elsif write_enable='0' and read_enable='1' and reset='0' then - v.erd:='1'; v.state:=empty_state; - end if; - - when idle_state=> - if write_enable='1' and read_enable='0' and reset='0' then - v.adr:=conv_std_logic_vector(r.aw,abits); - if r.aw=depth-1 then v.aw:=0; else v.aw:=r.aw+1; end if; - v.level:=r.level+1; - if v.level=depth then v.state:=full_state; - else v.state:=idle_state; end if; - elsif write_enable='0' and read_enable='1' and reset='0' then - v.adr:=conv_std_logic_vector(r.ar,abits); - if r.ar=depth-1 then v.ar:=0; else v.ar:=r.ar+1; end if; - v.level:=r.level-1; - if v.level=0 then v.state:=empty_state; - else v.state:=idle_state; end if; - end if; - end case; - - if r.level=0 then vempty:='1'; vfull:='0'; - elsif r.level=depth then vempty:='0'; vfull:='1'; - else vempty:='0'; vfull:='0'; end if; - - --reset logic - if (reset='1') then v:=RESET_VECTOR; end if; - - ri<=v; - s_ram_adr<=v.adr; - - --assigning outport - write_error<=v.ewr; read_error<=v.erd; level<=v.level; - empty<=vempty; full<=vfull; - end process; - - ram : syncram - generic map(tech=>tech, abits=>abits, dbits=>dbits) - port map ( - clk => clk, - address => s_ram_adr, - datain => data_in, - dataout => data_out, - enable => read_enable, - write => write_enable - ); - - sync:process(clk) --Activate on clock & reset - begin - if clk'event and clk='1' then r<=ri; end if; - end process; -end; \ No newline at end of file diff --git a/lib/opencores/ata/atahost_dma_tctrl.vhd b/lib/opencores/ata/atahost_dma_tctrl.vhd deleted file mode 100644 index 009d83fb..00000000 --- a/lib/opencores/ata/atahost_dma_tctrl.vhd +++ /dev/null @@ -1,236 +0,0 @@ ---------------------------------------------------------------------- ----- ---- ----- OpenCores IDE Controller ---- ----- DMA (single- and multiword) mode timing statemachine ---- ----- ---- ----- Author: Richard Herveille ---- ----- richard@asics.ws ---- ----- www.asics.ws ---- ----- ---- ---------------------------------------------------------------------- ----- ---- ----- Copyright (C) 2001, 2002 Richard Herveille ---- ----- richard@asics.ws ---- ----- ---- ----- This source file may be used and distributed without ---- ----- restriction provided that this copyright statement is not ---- ----- removed from the file and that any derivative work contains ---- ----- the original copyright notice and the associated disclaimer.---- ----- ---- ----- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ---- ----- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---- ----- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ---- ----- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ---- ----- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ----- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---- ----- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ---- ----- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ---- ----- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---- ----- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ----- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ---- ----- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ---- ----- POSSIBILITY OF SUCH DAMAGE. ---- ----- ---- ---------------------------------------------------------------------- - --- rev.: 1.0 march 7th, 2001. Initial release --- --- CVS Log --- --- $Id: atahost_dma_tctrl.vhd,v 1.1 2002/02/18 14:32:12 rherveille Exp $ --- --- $Date: 2002/02/18 14:32:12 $ --- $Revision: 1.1 $ --- $Author: rherveille $ --- $Locker: $ --- $State: Exp $ --- --- Change History: --- $Log: atahost_dma_tctrl.vhd,v $ --- Revision 1.1 2002/02/18 14:32:12 rherveille --- renamed all files to 'atahost_***.vhd' --- broke-up 'counter.vhd' into 'ud_cnt.vhd' and 'ro_cnt.vhd' --- changed resD input to generic RESD in ud_cnt.vhd --- changed ID input to generic ID in ro_cnt.vhd --- changed core to reflect changes in ro_cnt.vhd --- removed references to 'count' library --- changed IO names --- added disclaimer --- added CVS log --- moved registers and wishbone signals into 'atahost_wb_slave.vhd' --- --- - --- ---------------------------- --- DMA Timing Controller -- ---------------------------- --- - --- --- Timing DMA mode transfers ----------------------------------------------- --- T0: cycle time --- Td: DIOR-/DIOW- asserted pulse width --- Te: DIOR- data access --- Tf: DIOR- data hold --- Tg: DIOR-/DIOW- data setup --- Th: DIOW- data hold --- Ti: DMACK to DIOR-/DIOW- setup --- Tj: DIOR-/DIOW- to DMACK hold --- Tkr: DIOR- negated pulse width --- Tkw: DIOW- negated pulse width --- Tm: CS(1:0) valid to DIOR-/DIOW- --- Tn: CS(1:0) hold --- --- --- Transfer sequence ----------------------------------- --- 1) wait for Tm --- 2) assert DIOR-/DIOW- --- when write action present data (Timing spec. Tg always honored) --- output enable is controlled by DMA-direction and DMACK- --- 3) wait for Td --- 4) negate DIOR-/DIOW- --- when read action, latch data --- 5) wait for Teoc (T0 - Td - Tm) or Tkw, whichever is greater --- Th, Tj, Tk, Tn always honored --- 6) start new cycle --- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.std_logic_arith.all; - -entity atahost_dma_tctrl is - generic( - TWIDTH : natural := 8; -- counter width - - -- DMA mode 0 settings (@100MHz clock) - DMA_mode0_Tm : natural := 4; -- 50ns - DMA_mode0_Td : natural := 21; -- 215ns - DMA_mode0_Teoc : natural := 21 -- 215ns ==> T0 - Td - Tm = 480 - 50 - 215 = 215 - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic; -- asynchronous active low reset - rst : in std_logic; -- synchronous active high reset - - -- timing register settings - Tm : in std_logic_vector(TWIDTH -1 downto 0); -- Tm time (in clk-ticks) - Td : in std_logic_vector(TWIDTH -1 downto 0); -- Td time (in clk-ticks) - Teoc : in std_logic_vector(TWIDTH -1 downto 0); -- end of cycle time - - -- control signals - go : in std_logic; -- DMA controller selected (strobe signal) - we : in std_logic; -- DMA direction '1' = write, '0' = read - - -- return signals - done : out std_logic; -- finished cycle - dstrb : out std_logic; -- data strobe - - -- ATA signals - DIOR, -- IOread signal, active high - DIOW : out std_logic -- IOwrite signal, active high - ); -end entity atahost_dma_tctrl; - -architecture structural of atahost_dma_tctrl is - component ro_cnt is - generic( - SIZE : natural := 8; - UD : integer := 0; -- default count down - ID : natural := 0 -- initial data after reset - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic := '1'; -- asynchronous active low reset - rst : in std_logic := '0'; -- synchronous active high reset - - cnt_en : in std_logic := '1'; -- count enable - go : in std_logic; -- load counter and start sequence - done : out std_logic; -- done counting - d : in std_logic_vector(SIZE -1 downto 0); -- load counter value - q : out std_logic_vector(SIZE -1 downto 0) -- current counter value - ); - end component ro_cnt; - - signal Tmdone, Tddone : std_logic; - signal iDIOR, iDIOW : std_logic; -begin - - DIOR <= iDIOR; DIOW <= iDIOW; - -- 1) hookup Tm counter - tm_cnt : ro_cnt - generic map ( - SIZE => TWIDTH, - UD => 0, - ID => DMA_mode0_Tm - ) - port map ( - clk => clk, - nReset => nReset, - rst => rst, - go => go, - D => Tm, - done => Tmdone - ); - - -- 2) set (and reset) DIOR-/DIOW- - T2proc: process(clk, nReset) - begin - if (nReset = '0') then - iDIOR <= '0'; - iDIOW <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - iDIOR <= '0'; - iDIOW <= '0'; - else - iDIOR <= (not we and Tmdone) or (iDIOR and not Tddone); - iDIOW <= ( we and Tmdone) or (iDIOW and not Tddone); - end if; - end if; - end process T2proc; - - -- 3) hookup Td counter - td_cnt : ro_cnt - generic map ( - SIZE => TWIDTH, - UD => 0, - ID => DMA_mode0_Td - ) - port map ( - clk => clk, - nReset => nReset, - rst => rst, - go => Tmdone, - D => Td, - done => Tddone - ); - - -- generate data_strobe - gen_dstrb: process(clk) - begin - if (clk'event and clk = '1') then - dstrb <= Tddone; -- capture data at rising edge of DIOR- - end if; - end process gen_dstrb; - - -- 4) negate DIOR-/DIOW- when Tddone - -- 5) hookup end_of_cycle counter - eoc_cnt : ro_cnt - generic map ( - SIZE => TWIDTH, - UD => 0, - ID => DMA_mode0_Teoc - ) - port map ( - clk => clk, - nReset => nReset, - rst => rst, - go => Tddone, - D => Teoc, - done => done - ); -end architecture structural; diff --git a/lib/opencores/ata/atahost_pio_actrl.vhd b/lib/opencores/ata/atahost_pio_actrl.vhd deleted file mode 100644 index 1c1f9b9e..00000000 --- a/lib/opencores/ata/atahost_pio_actrl.vhd +++ /dev/null @@ -1,264 +0,0 @@ ---------------------------------------------------------------------- ----- ---- ----- OpenCores IDE Controller ---- ----- PIO Access Controller (common for OCIDEC 2 and above) ---- ----- ---- ----- Author: Richard Herveille ---- ----- richard@asics.ws ---- ----- www.asics.ws ---- ----- ---- ---------------------------------------------------------------------- ----- ---- ----- Copyright (C) 2001, 2002 Richard Herveille ---- ----- richard@asics.ws --- ----- ---- ----- This source file may be used and distributed without ---- ----- restriction provided that this copyright statement is not ---- ----- removed from the file and that any derivative work contains ---- ----- the original copyright notice and the associated disclaimer.---- ----- ---- ----- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ---- ----- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---- ----- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ---- ----- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ---- ----- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ----- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---- ----- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ---- ----- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ---- ----- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---- ----- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ----- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ---- ----- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ---- ----- POSSIBILITY OF SUCH DAMAGE. ---- ----- ---- ---------------------------------------------------------------------- - --- rev.: 1.0 march 9th, 2001 --- rev.: 1.0a april 12th, 2001 Removed references to records.vhd --- --- --- CVS Log --- --- $Id: atahost_pio_actrl.vhd,v 1.1 2002/02/18 14:32:12 rherveille Exp $ --- --- $Date: 2002/02/18 14:32:12 $ --- $Revision: 1.1 $ --- $Author: rherveille $ --- $Locker: $ --- $State: Exp $ --- --- Change History: --- $Log: atahost_pio_actrl.vhd,v $ --- Revision 1.1 2002/02/18 14:32:12 rherveille --- renamed all files to 'atahost_***.vhd' --- broke-up 'counter.vhd' into 'ud_cnt.vhd' and 'ro_cnt.vhd' --- changed resD input to generic RESD in ud_cnt.vhd --- changed ID input to generic ID in ro_cnt.vhd --- changed core to reflect changes in ro_cnt.vhd --- removed references to 'count' library --- changed IO names --- added disclaimer --- added CVS log --- moved registers and wishbone signals into 'atahost_wb_slave.vhd' --- - --- ---------------------------- --- PIO Access controller -- ---------------------------- --- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.std_logic_arith.all; - -entity atahost_pio_actrl is - generic( - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic; -- asynchronous active low reset - rst : in std_logic; -- synchronous active high reset - - IDEctrl_FATR0, - IDEctrl_FATR1 : in std_logic; - - cmdport_T1, - cmdport_T2, - cmdport_T4, - cmdport_Teoc : in std_logic_vector(7 downto 0); - cmdport_IORDYen : in std_logic; -- PIO command port / non-fast timing - - dport0_T1, - dport0_T2, - dport0_T4, - dport0_Teoc : in std_logic_vector(7 downto 0); - dport0_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 0 - - dport1_T1, - dport1_T2, - dport1_T4, - dport1_Teoc : in std_logic_vector(7 downto 0); - dport1_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 1 - - SelDev : in std_logic; -- Selected device - - go : in std_logic; -- Start transfer sequence - done : out std_logic; -- Transfer sequence done - dir : in std_logic; -- Transfer direction '1'=write, '0'=read - a : in std_logic_vector(3 downto 0):="0000"; -- PIO transfer address - q : out std_logic_vector(15 downto 0); -- Data read from ATA devices - - DDi : in std_logic_vector(15 downto 0); -- Data from ATA DD bus - oe : out std_logic; -- DDbus output-enable signal - - DIOR, - DIOW : out std_logic; - IORDY : in std_logic - ); -end entity atahost_pio_actrl; - -architecture structural of atahost_pio_actrl is - -- - -- Component declarations - -- - component atahost_pio_tctrl is - generic( - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic; -- asynchronous active low reset - rst : in std_logic; -- synchronous active high reset - - -- timing/control register settings - IORDY_en : in std_logic; -- use IORDY (or not) - T1 : in std_logic_vector(TWIDTH -1 downto 0); -- T1 time (in clk-ticks) - T2 : in std_logic_vector(TWIDTH -1 downto 0); -- T2 time (in clk-ticks) - T4 : in std_logic_vector(TWIDTH -1 downto 0); -- T4 time (in clk-ticks) - Teoc : in std_logic_vector(TWIDTH -1 downto 0); -- end of cycle time - - -- control signals - go : in std_logic; -- PIO controller selected (strobe signal) - we : in std_logic; -- write enable signal. '0'=read from device, '1'=write to device - - -- return signals - oe : out std_logic; -- output enable signal - done : out std_logic; -- finished cycle - dstrb : out std_logic; -- data strobe, latch data (during read) - - -- ATA signals - DIOR, -- IOread signal, active high - DIOW : out std_logic; -- IOwrite signal, active high - IORDY : in std_logic -- IORDY signal - ); - end component atahost_pio_tctrl; - - signal dstrb : std_logic; - signal T1, T2, T4, Teoc : std_logic_vector(TWIDTH -1 downto 0); - signal IORDYen : std_logic; - -begin - -- - -------------------------- - -- PIO transfer control -- - -------------------------- - -- - -- capture ATA data for PIO access - gen_PIOq: process(clk) - begin - if (clk'event and clk = '1') then - if (dstrb = '1') then - q <= DDi; - end if; - end if; - end process gen_PIOq; - - -- - -- PIO timing controllers - -- - - -- select timing settings for the addressed port - sel_port_t: process(clk) - variable Asel : std_logic; -- address selected - variable iT1, iT2, iT4, iTeoc : std_logic_vector(TWIDTH -1 downto 0); - variable iIORDYen : std_logic; - begin - if (clk'event and clk = '1') then - -- initially set timing registers to compatible timing - iT1 := cmdport_T1; - iT2 := cmdport_T2; - iT4 := cmdport_T4; - iTeoc := cmdport_Teoc; - iIORDYen := cmdport_IORDYen; - - -- detect data-port access - Asel := not a(3) and not a(2) and not a(1) and not a(0); -- data port - if (Asel = '1') then -- data port selected, 16bit transfers - if ((SelDev = '1') and (IDEctrl_FATR1 = '1')) then -- data port1 selected and enabled ? - iT1 := dport1_T1; - iT2 := dport1_T2; - iT4 := dport1_T4; - iTeoc := dport1_Teoc; - iIORDYen := dport1_IORDYen; - elsif((SelDev = '0') and (IDEctrl_FATR0 = '1')) then -- data port0 selected and enabled ? - iT1 := dport0_T1; - iT2 := dport0_T2; - iT4 := dport0_T4; - iTeoc := dport0_Teoc; - iIORDYen := dport0_IORDYen; - end if; - end if; - - T1 <= iT1; - T2 <= iT2; - T4 <= iT4; - Teoc <= iTeoc; - IORDYen <= iIORDYen; - end if; - end process sel_port_t; - - -- - -- hookup timing controller - -- - PIO_timing_controller: atahost_pio_tctrl - generic map ( - TWIDTH => TWIDTH, - PIO_mode0_T1 => PIO_mode0_T1, - PIO_mode0_T2 => PIO_mode0_T2, - PIO_mode0_T4 => PIO_mode0_T4, - PIO_mode0_Teoc => PIO_mode0_Teoc - ) - port map ( - clk => clk, - nReset => nReset, - rst => rst, - IORDY_en => IORDYen, - T1 => T1, - T2 => T2, - T4 => T4, - Teoc => Teoc, - go => go, - we => dir, - oe => oe, - done => done, - dstrb => dstrb, - DIOR => dior, - DIOW => diow, - IORDY => IORDY - ); -end architecture structural; - diff --git a/lib/opencores/ata/atahost_pio_controller.vhd b/lib/opencores/ata/atahost_pio_controller.vhd deleted file mode 100644 index 2a63353a..00000000 --- a/lib/opencores/ata/atahost_pio_controller.vhd +++ /dev/null @@ -1,398 +0,0 @@ ---------------------------------------------------------------------- ----- ---- ----- OpenCores IDE Controller ---- ----- ATA/ATAPI-5 PIO controller with write PingPong ---- ----- ---- ----- Author: Richard Herveille ---- ----- richard@asics.ws ---- ----- www.asics.ws ---- ----- ---- ---------------------------------------------------------------------- ----- ---- ----- Copyright (C) 2001, 2002 Richard Herveille ---- ----- richard@asics.ws ---- ----- ---- ----- This source file may be used and distributed without ---- ----- restriction provided that this copyright statement is not ---- ----- removed from the file and that any derivative work contains ---- ----- the original copyright notice and the associated disclaimer.---- ----- ---- ----- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ---- ----- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---- ----- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ---- ----- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ---- ----- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ----- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---- ----- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ---- ----- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ---- ----- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---- ----- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ----- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ---- ----- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ---- ----- POSSIBILITY OF SUCH DAMAGE. ---- ----- ---- ---------------------------------------------------------------------- - --- rev.: 1.0 march 8th, 2001. Initial release --- --- CVS Log --- --- $Id: atahost_pio_controller.vhd,v 1.1 2002/02/18 14:32:12 rherveille Exp $ --- --- $Date: 2002/02/18 14:32:12 $ --- $Revision: 1.1 $ --- $Author: rherveille $ --- $Locker: $ --- $State: Exp $ --- --- Change History: --- $Log: atahost_pio_controller.vhd,v $ --- Revision 1.1 2002/02/18 14:32:12 rherveille --- renamed all files to 'atahost_***.vhd' --- broke-up 'counter.vhd' into 'ud_cnt.vhd' and 'ro_cnt.vhd' --- changed resD input to generic RESD in ud_cnt.vhd --- changed ID input to generic ID in ro_cnt.vhd --- changed core to reflect changes in ro_cnt.vhd --- removed references to 'count' library --- changed IO names --- added disclaimer --- added CVS log --- moved registers and wishbone signals into 'atahost_wb_slave.vhd' --- --- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.std_logic_arith.all; - -entity atahost_pio_controller is - generic( - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ); - port( - clk : in std_logic; -- master clock in - nReset : in std_logic; -- asynchronous active low reset - rst : in std_logic; -- synchronous active high reset - - -- control / registers - IDEctrl_IDEen, - IDEctrl_ppen, - IDEctrl_FATR0, - IDEctrl_FATR1 : in std_logic; - - -- PIO registers - cmdport_T1, - cmdport_T2, - cmdport_T4, - cmdport_Teoc : in std_logic_vector(7 downto 0); - cmdport_IORDYen : in std_logic; -- PIO command port / non-fast timing - - dport0_T1, - dport0_T2, - dport0_T4, - dport0_Teoc : in std_logic_vector(7 downto 0); - dport0_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 0 - - dport1_T1, - dport1_T2, - dport1_T4, - dport1_Teoc : in std_logic_vector(7 downto 0); - dport1_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 1 - - sel : in std_logic; -- PIO controller selected - ack : out std_logic; -- PIO controller acknowledge - a : in std_logic_vector(3 downto 0); -- lower address bits - we : in std_logic; -- write enable input - d : in std_logic_vector(15 downto 0); - q : out std_logic_vector(15 downto 0); - - PIOreq : out std_logic; -- PIO transfer request - PPFull : out std_logic; -- PIO Write PingPong Full - go : in std_logic; -- start PIO transfer - done : out std_logic; -- done with PIO transfer - - PIOa : out std_logic_vector(3 downto 0); -- PIO address, address lines towards ATA devices - PIOd : out std_logic_vector(15 downto 0); -- PIO data, data towards ATA devices - - SelDev : out std_logic; -- Selected Device, Dev-bit in ATA Device/Head register - - DDi : in std_logic_vector(15 downto 0); - DDoe : out std_logic; - - DIOR : out std_logic; - DIOW : out std_logic; - IORDY : in std_logic - ); -end entity atahost_pio_controller; - -architecture structural of atahost_pio_controller is - -- - -- component declarations - -- - component atahost_pio_actrl is - generic( - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic; -- asynchronous active low reset - rst : in std_logic; -- synchronous active high reset - - IDEctrl_FATR0, - IDEctrl_FATR1 : in std_logic; - - cmdport_T1, - cmdport_T2, - cmdport_T4, - cmdport_Teoc : in std_logic_vector(7 downto 0); - cmdport_IORDYen : in std_logic; -- PIO command port / non-fast timing - - dport0_T1, - dport0_T2, - dport0_T4, - dport0_Teoc : in std_logic_vector(7 downto 0); - dport0_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 0 - - dport1_T1, - dport1_T2, - dport1_T4, - dport1_Teoc : in std_logic_vector(7 downto 0); - dport1_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 1 - - SelDev : in std_logic; -- Selected device - - go : in std_logic; -- Start transfer sequence - done : out std_logic; -- Transfer sequence done - dir : in std_logic; -- Transfer direction '1'=write, '0'=read - a : in std_logic_vector(3 downto 0); -- PIO transfer address - q : out std_logic_vector(15 downto 0); -- Data read from ATA devices - - DDi : in std_logic_vector(15 downto 0); -- Data from ATA DD bus - oe : out std_logic; -- DDbus output-enable signal - - DIOR, - DIOW : out std_logic; - IORDY : in std_logic - ); - end component atahost_pio_actrl; - - -- - -- signals - -- - - -- PIO pingpong signals - signal pp_d : std_logic_vector(15 downto 0); - signal pp_a : std_logic_vector(3 downto 0); - signal pp_we : std_logic; - signal idone : std_logic; - signal iSelDev : std_logic; - -begin - -- - -- generate selected device - -- - gen_seldev: process(clk, pp_a) - variable Asel : std_logic; -- address selected - begin - Asel := not pp_a(3) and pp_a(2) and pp_a(1) and not pp_a(0); -- header/device register - - if (clk'event and clk = '1') then - if ( (idone = '1') and (Asel = '1') and (pp_we = '1') ) then - iSelDev <= pp_d(4); - end if; - end if; - end process gen_seldev; - - -- - -- generate PIO write pingpong system - -- - gen_pingpong: block - signal ping_d, pong_d : std_logic_vector(15 downto 0); - signal ping_a, pong_a : std_logic_vector(3 downto 0); - signal ping_we, pong_we : std_logic; - signal ping_valid, pong_valid : std_logic; - signal dping_valid, dpong_valid : std_logic; - signal wpp, rpp : std_logic; - - signal dsel, sel_strb : std_logic; - - signal iack : std_logic; - begin - -- generate PIO acknowledge - gen_ack: process(clk, ping_valid, dping_valid, pong_valid, dpong_valid, we) - variable ping_re, ping_fe, pong_re, pong_fe : std_logic; - begin - -- detect rising edge of ping_valid and pong_valid - ping_re := ping_valid and not dping_valid and we; - pong_re := pong_valid and not dpong_valid and we; - - -- detect falling edge of ping_valid and pong_valid - ping_fe := not ping_valid and dping_valid; - pong_fe := not pong_valid and dpong_valid; - - if (clk'event and clk = '1') then - if ((pp_we = '1') and (IDEctrl_ppen = '1')) then -- write sequence - if (wpp = '1') then - iack <= ping_re; - else - iack <= pong_re; - end if; - else -- read sequence - if (rpp = '1') then - iack <= ping_fe; - else - iack <= pong_fe; - end if; - end if; - end if; - end process gen_ack; - ack <= (iack or not IDEctrl_IDEen) and sel; -- acknowledge access when not enabled (discard access) - - -- generate select-strobe, hold sel_strb until pingpong system ready for new data - gen_sel_strb: process(clk, nReset) - begin - if (nReset = '0') then - dsel <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - dsel <= '0'; - else - dsel <= sel_strb or (dsel and sel); - end if; - end if; - end process gen_sel_strb; - sel_strb <= sel and not dsel and IDEctrl_IDEen and ((wpp and not ping_valid) or (not wpp and not pong_valid)); - - -- generate pingpong control - gen_pp : process(clk, nReset) - begin - if (nReset = '0') then - wpp <= '0'; - rpp <= '0'; - ping_valid <= '0'; - pong_valid <= '0'; - dping_valid <= '0'; - dpong_valid <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - wpp <= '0'; - rpp <= '0'; - ping_valid <= '0'; - pong_valid <= '0'; - dping_valid <= '0'; - dpong_valid <= '0'; - else - wpp <= (wpp xor (iack and we)) and IDEctrl_ppen; - rpp <= (rpp xor (idone and pp_we)) and IDEctrl_ppen; - ping_valid <= (( wpp and sel_strb) or ping_valid) and not ( rpp and idone); - pong_valid <= ((not wpp and sel_strb) or pong_valid) and not (not rpp and idone); - dping_valid <= ping_valid; - dpong_valid <= pong_valid; - end if; - end if; - end process gen_pp; - - -- generate pingpong full signal - PPFull <= (ping_valid and pong_valid) when (IDEctrl_ppen = '1') else pong_valid; - - -- fill ping/pong registers - fill_pp: process(clk) - begin - if (clk'event and clk = '1') then - if (sel = '1') then - if (wpp = '1') then - if (ping_valid = '0') then - ping_d <= d; - ping_a <= a; - ping_we <= we; - end if; - else - if (pong_valid = '0') then - pong_d <= d; - pong_a <= a; - pong_we <= we; - end if; - end if; - end if; - end if; - end process fill_pp; - - -- multiplex pingpong data to pp_d, pp_a, pp_we - pp_d <= d; - pp_a <= a; - pp_we <= we; - ---edit by erik (no pp) --- pp_d <= ping_d when (rpp = '1') else pong_d; --- pp_a <= ping_a when (rpp = '1') else pong_a; --- pp_we <= ping_we when (rpp = '1') else pong_we; - -- generate PIOreq - PIOreq <= (ping_valid and not idone) when (rpp = '1') else (pong_valid and not idone); - end block gen_pingpong; - - -- - -- Hookup PIO access controller - -- - PIO_access_control: atahost_pio_actrl - generic map( - TWIDTH => TWIDTH, - PIO_mode0_T1 => PIO_mode0_T1, - PIO_mode0_T2 => PIO_mode0_T2, - PIO_mode0_T4 => PIO_mode0_T4, - PIO_mode0_Teoc => PIO_mode0_Teoc - ) - port map( - clk => clk, - nReset => nReset, - rst => rst, - IDEctrl_FATR0 => IDEctrl_FATR0, - IDEctrl_FATR1 => IDEctrl_FATR1, - cmdport_T1 => cmdport_T1, - cmdport_T2 => cmdport_T2, - cmdport_T4 => cmdport_T4, - cmdport_Teoc => cmdport_Teoc, - cmdport_IORDYen => cmdport_IORDYen, - dport0_T1 => dport0_T1, - dport0_T2 => dport0_T2, - dport0_T4 => dport0_T4, - dport0_Teoc => dport0_Teoc, - dport0_IORDYen => dport0_IORDYen, - dport1_T1 => dport1_T1, - dport1_T2 => dport1_T2, - dport1_T4 => dport1_T4, - dport1_Teoc => dport1_Teoc, - dport1_IORDYen => dport1_IORDYen, - SelDev => iSelDev, - go => go, - done => idone, - dir => pp_we, - a => pp_a, - q => Q, - DDi => DDi, - oe => DDoe, - DIOR => dior, - DIOW => diow, - IORDY => IORDY - ); - - -- - -- assign outputs - -- - PIOa <= pp_a; - PIOd <= pp_d; - Done <= idone; - SelDev <= iSelDev; -end architecture structural; - diff --git a/lib/opencores/ata/atahost_pio_tctrl.vhd b/lib/opencores/ata/atahost_pio_tctrl.vhd deleted file mode 100644 index 51b065bd..00000000 --- a/lib/opencores/ata/atahost_pio_tctrl.vhd +++ /dev/null @@ -1,302 +0,0 @@ ---------------------------------------------------------------------- ----- ---- ----- OpenCores ATA/ATAPI-5 Host Controller ---- ----- PIO Timing Controller (common for all OCIDEC cores) ---- ----- ---- ----- Author: Richard Herveille ---- ----- richard@asics.ws ---- ----- www.asics.ws ---- ----- ---- ---------------------------------------------------------------------- ----- ---- ----- Copyright (C) 2001, 2002 Richard Herveille ---- ----- richard@asics.ws ---- ----- ---- ----- This source file may be used and distributed without ---- ----- restriction provided that this copyright statement is not ---- ----- removed from the file and that any derivative work contains ---- ----- the original copyright notice and the associated disclaimer.---- ----- ---- ----- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ---- ----- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---- ----- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ---- ----- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ---- ----- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ----- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---- ----- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ---- ----- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ---- ----- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---- ----- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ----- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ---- ----- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ---- ----- POSSIBILITY OF SUCH DAMAGE. ---- ----- ---- ---------------------------------------------------------------------- - --- rev.: 1.0 march 7th, 2001. Initial release --- rev.: 1.1 July 11th, 2001. Changed 'igo' & 'hold_go' signal generation. --- --- --- CVS Log --- --- $Id: atahost_pio_tctrl.vhd,v 1.1 2002/02/18 14:32:12 rherveille Exp $ --- --- $Date: 2002/02/18 14:32:12 $ --- $Revision: 1.1 $ --- $Author: rherveille $ --- $Locker: $ --- $State: Exp $ --- --- Change History: --- $Log: atahost_pio_tctrl.vhd,v $ --- Revision 1.1 2002/02/18 14:32:12 rherveille --- renamed all files to 'atahost_***.vhd' --- broke-up 'counter.vhd' into 'ud_cnt.vhd' and 'ro_cnt.vhd' --- changed resD input to generic RESD in ud_cnt.vhd --- changed ID input to generic ID in ro_cnt.vhd --- changed core to reflect changes in ro_cnt.vhd --- removed references to 'count' library --- changed IO names --- added disclaimer --- added CVS log --- moved registers and wishbone signals into 'atahost_wb_slave.vhd' --- --- --- - --- ---------------------------- --- PIO Timing controller -- ---------------------------- --- - --- --- Timing PIO mode transfers ----------------------------------------------- --- T0: cycle time --- T1: address valid to DIOR-/DIOW- --- T2: DIOR-/DIOW- pulse width --- T2i: DIOR-/DIOW- recovery time --- T3: DIOW- data setup --- T4: DIOW- data hold --- T5: DIOR- data setup --- T6: DIOR- data hold --- T9: address hold from DIOR-/DIOW- negated --- Trd: Read data valid to IORDY asserted --- Ta: IORDY setup time --- Tb: IORDY pulse width --- --- Transfer sequence ----------------------------------- --- 1) set address (DA, CS0-, CS1-) --- 2) wait for T1 --- 3) assert DIOR-/DIOW- --- when write action present Data (timing spec. T3 always honored), enable output enable-signal --- 4) wait for T2 --- 5) check IORDY --- when not IORDY goto 5 --- when IORDY negate DIOW-/DIOR-, latch data (if read action) --- when write, hold data for T4, disable output-enable signal --- 6) wait end_of_cycle_time. This is T2i or T9 or (T0-T1-T2) whichever takes the longest --- 7) start new cycle - -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.amba.all; -use grlib.stdlib.all; - -entity atahost_pio_tctrl is - generic( - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic; -- asynchronous active low reset - rst : in std_logic; -- synchronous active high reset - - -- timing/control register settings - IORDY_en : in std_logic; -- use IORDY (or not) - T1 : in std_logic_vector(TWIDTH -1 downto 0); -- T1 time (in clk-ticks) - T2 : in std_logic_vector(TWIDTH -1 downto 0); -- T2 time (in clk-ticks) - T4 : in std_logic_vector(TWIDTH -1 downto 0); -- T4 time (in clk-ticks) - Teoc : in std_logic_vector(TWIDTH -1 downto 0); -- end of cycle time - - -- control signals - go : in std_logic; -- PIO controller selected (strobe signal) - we : in std_logic; -- write enable signal. '0'=read from device, '1'=write to device - - -- return signals - oe : out std_logic; -- output enable signal - done : out std_logic; -- finished cycle - dstrb : out std_logic; -- data strobe, latch data (during read) - - -- ATA signals - DIOR, -- IOread signal, active high - DIOW : out std_logic; -- IOwrite signal, active high - IORDY : in std_logic -- IORDY signal - ); -end entity atahost_pio_tctrl; - -architecture structural of atahost_pio_tctrl is - component ro_cnt is - generic( - SIZE : natural := 8; - UD : integer := 0; -- default count down - ID : natural := 0 -- initial data after reset - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic := '1'; -- asynchronous active low reset - rst : in std_logic := '0'; -- synchronous active high reset - - cnt_en : in std_logic := '1'; -- count enable - go : in std_logic; -- load counter and start sequence - done : out std_logic; -- done counting - d : in std_logic_vector(SIZE -1 downto 0); -- load counter value - q : out std_logic_vector(SIZE -1 downto 0) -- current counter value - ); - end component ro_cnt; - - signal T1done, T2done, T4done, Teoc_done, IORDY_done : std_logic; - signal busy, hold_go, igo, hT2done : std_logic; - signal iDIOR, iDIOW, ioe : std_logic; -begin - - DIOR <= iDIOR; DIOW <= iDIOW; oe <= ioe; - -- generate internal go strobe - -- strecht go until ready for new cycle - process(clk, nReset) - begin - if (nReset = '0') then - busy <= '0'; - hold_go <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - busy <= '0'; - hold_go <= '0'; - else - busy <= (igo or busy) and not Teoc_done; - hold_go <= (go or (hold_go and busy)) and not igo; - end if; - end if; - end process; - igo <= (go or hold_go) and not busy; - - -- 1) hookup T1 counter - t1_cnt : ro_cnt - generic map ( - SIZE => TWIDTH, - UD => 0, - ID => PIO_mode0_T1 - ) - port map ( - clk => clk, - nReset => nReset, - rst => rst, - go => igo, - D => T1, - done => T1done - ); - - -- 2) set (and reset) DIOR-/DIOW-, set output-enable when writing to device - T2proc: process(clk, nReset) - begin - if (nReset = '0') then - iDIOR <= '0'; - iDIOW <= '0'; - ioe <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - iDIOR <= '0'; - iDIOW <= '0'; - ioe <= '0'; - else - iDIOR <= (not we and T1done) or (iDIOR and not IORDY_done); - iDIOW <= ( we and T1done) or (iDIOW and not IORDY_done); - ioe <= ( (we and igo) or ioe) and not T4done; -- negate oe when t4-done - end if; - end if; - end process T2proc; - - -- 3) hookup T2 counter - t2_cnt : ro_cnt - generic map ( - SIZE => TWIDTH, - UD => 0, - ID => PIO_mode0_T2 - ) - port map ( - clk => clk, - nReset => nReset, - rst => rst, - go => T1done, - D => T2, - done => T2done - ); - - -- 4) check IORDY (if used), generate release_DIOR-/DIOW- signal (ie negate DIOR-/DIOW-) - -- hold T2done - gen_hT2done: process(clk, nReset) - begin - if (nReset = '0') then - hT2done <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - hT2done <= '0'; - else - hT2done <= (T2done or hT2done) and not IORDY_done; - end if; - end if; - end process gen_hT2done; - IORDY_done <= (T2done or hT2done) and (IORDY or not IORDY_en); - - -- generate datastrobe, capture data at rising DIOR- edge - gen_dstrb: process(clk) - begin - if (clk'event and clk = '1') then - dstrb <= IORDY_done; - end if; - end process gen_dstrb; - - -- hookup data hold counter - dhold_cnt : ro_cnt - generic map ( - SIZE => TWIDTH, - UD => 0, - ID => PIO_mode0_T4 - ) - port map ( - clk => clk, - nReset => nReset, - rst => rst, - go => IORDY_done, - D => T4, - done => T4done - ); - done <= T4done; -- placing done here provides the fastest return possible, - -- while still guaranteeing data and address hold-times - - -- 5) hookup end_of_cycle counter - eoc_cnt : ro_cnt - generic map ( - SIZE => TWIDTH, - UD => 0, - ID => PIO_mode0_Teoc - ) - port map ( - clk => clk, - nReset => nReset, - rst => rst, - go => IORDY_done, - D => Teoc, - done => Teoc_done - ); - -end architecture structural; diff --git a/lib/opencores/ata/ocidec2_controller.vhd b/lib/opencores/ata/ocidec2_controller.vhd deleted file mode 100644 index 39604783..00000000 --- a/lib/opencores/ata/ocidec2_controller.vhd +++ /dev/null @@ -1,354 +0,0 @@ ---------------------------------------------------------------------- ----- ---- ----- OpenCores IDE Controller ---- ----- ATA/ATAPI-5 Controller (OCIDEC-2) ---- ----- ---- ----- Author: Richard Herveille ---- ----- richard@asics.ws ---- ----- www.asics.ws ---- ----- ---- ---------------------------------------------------------------------- ----- ---- ----- Copyright (C) 2001, 2002 Richard Herveille ---- ----- richard@asics.ws ---- ----- ---- ----- This source file may be used and distributed without ---- ----- restriction provided that this copyright statement is not ---- ----- removed from the file and that any derivative work contains ---- ----- the original copyright notice and the associated disclaimer.---- ----- ---- ----- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ---- ----- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---- ----- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ---- ----- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ---- ----- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ----- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---- ----- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ---- ----- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ---- ----- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---- ----- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ----- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ---- ----- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ---- ----- POSSIBILITY OF SUCH DAMAGE. ---- ----- ---- ---------------------------------------------------------------------- - --- rev.: 1.0 march 18th, 2001. Initial release --- rev.: 1.0a april 12th, 2001. Removed references to records.vhd --- rev.: 1.1 june 18th, 2001. Changed PIOack generation. Avoid asserting PIOack continuously when IDEen = '0' --- rev.: 1.2 june 26th, 2001. Changed dPIOreq generation. Core did not support wishbone burst accesses to ATA-device. --- rev.: 1.3 july 11th, 2001. Changed PIOreq & PIOack generation (made them synchronous). --- --- CVS Log --- --- $Id: atahost_controller.vhd,v 1.2 2002/05/19 06:07:09 rherveille Exp $ --- --- $Date: 2002/05/19 06:07:09 $ --- $Revision: 1.2 $ --- $Author: rherveille $ --- $Locker: $ --- $State: Exp $ --- --- Change History: --- $Log: atahost_controller.vhd,v $ --- Revision 1.2 2002/05/19 06:07:09 rherveille --- Fixed a potential bug where the core was forced into an unknown state --- when an asynchronous reset was given without a running clock. --- --- - --- --- OCIDEC2 supports: --- -Common Compatible timing access to all connected devices --- -Separate timing accesses to data port --- -No DMA support - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -entity ocidec2_controller is - generic( - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ); - port( - clk : in std_logic; -- master clock in - nReset : in std_logic := '1'; -- asynchronous active low reset - rst : in std_logic := '0'; -- synchronous active high reset - - irq : out std_logic; -- interrupt request signal - - -- control / registers - IDEctrl_rst, - IDEctrl_IDEen, - IDEctrl_FATR0, - IDEctrl_FATR1 : in std_logic; - - -- PIO registers - cmdport_T1, - cmdport_T2, - cmdport_T4, - cmdport_Teoc : in std_logic_vector(7 downto 0); - cmdport_IORDYen : in std_logic; -- PIO command port / non-fast timing - - dport0_T1, - dport0_T2, - dport0_T4, - dport0_Teoc : in std_logic_vector(7 downto 0); - dport0_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 0 - - dport1_T1, - dport1_T2, - dport1_T4, - dport1_Teoc : in std_logic_vector(7 downto 0); - dport1_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 1 - - PIOreq : in std_logic; -- PIO transfer request - PIOack : out std_logic; -- PIO transfer ended - PIOa : in std_logic_vector(3 downto 0); -- PIO address - PIOd : in std_logic_vector(15 downto 0); -- PIO data in - PIOq : out std_logic_vector(15 downto 0); -- PIO data out - PIOwe : in std_logic; -- PIO direction bit '1'=write, '0'=read - - -- ATA signals - RESETn : out std_logic; - DDi : in std_logic_vector(15 downto 0); - DDo : out std_logic_vector(15 downto 0); - DDoe : out std_logic; - DA : out std_logic_vector(2 downto 0); - CS0n : out std_logic; - CS1n : out std_logic; - - DIORn : out std_logic; - DIOWn : out std_logic; - IORDY : in std_logic; - INTRQ : in std_logic - ); -end entity ocidec2_controller; - -architecture structural of ocidec2_controller is - -- - -- component declarations - -- - component atahost_pio_actrl is - generic( - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic; -- asynchronous active low reset - rst : in std_logic; -- synchronous active high reset - - IDEctrl_FATR0, - IDEctrl_FATR1 : in std_logic; - - cmdport_T1, - cmdport_T2, - cmdport_T4, - cmdport_Teoc : in std_logic_vector(7 downto 0); - cmdport_IORDYen : in std_logic; -- PIO command port / non-fast timing - - dport0_T1, - dport0_T2, - dport0_T4, - dport0_Teoc : in std_logic_vector(7 downto 0); - dport0_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 0 - - dport1_T1, - dport1_T2, - dport1_T4, - dport1_Teoc : in std_logic_vector(7 downto 0); - dport1_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 1 - - SelDev : in std_logic; -- Selected device - - go : in std_logic; -- Start transfer sequence - done : out std_logic; -- Transfer sequence done - dir : in std_logic; -- Transfer direction '1'=write, '0'=read - a : in std_logic_vector(3 downto 0); -- PIO transfer address - q : out std_logic_vector(15 downto 0); -- Data read from ATA devices - - DDi : in std_logic_vector(15 downto 0); -- Data from ATA DD bus - oe : out std_logic; -- DDbus output-enable signal - - DIOR, - DIOW : out std_logic; - IORDY : in std_logic - ); - end component; - - -- - -- signals - -- - signal SelDev : std_logic; -- selected device - - signal dPIOreq, PIOgo : std_logic; -- start PIO timing controller - signal PIOdone : std_logic; -- PIO timing controller done - - -- PIO signals - signal PIOdior, PIOdiow : std_logic; - signal PIOoe : std_logic; - signal rPIOack : std_logic; - -- synchronized ATA inputs - signal sIORDY : std_logic; - -begin - - -- - -- synchronize incoming signals - -- - synch_incoming: block - signal cIORDY : std_logic; -- capture IORDY - signal cINTRQ : std_logic; -- capture INTRQ - begin - process(clk) - begin - if (clk'event and clk = '1') then - cIORDY <= IORDY; - cINTRQ <= INTRQ; - - sIORDY <= cIORDY; - irq <= cINTRQ; - end if; - end process; - end block synch_incoming; - - -- - -- generate ATA signals - -- - gen_ata_sigs: block - begin - -- generate registers for ATA signals - gen_regs: process(clk, nReset) - begin - if (nReset = '0') then - RESETn <= '0'; - DIORn <= '1'; - DIOWn <= '1'; - DA <= (others => '0'); - CS0n <= '1'; - CS1n <= '1'; - DDo <= (others => '0'); - DDoe <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - RESETn <= '0'; - DIORn <= '1'; - DIOWn <= '1'; - DA <= (others => '0'); - CS0n <= '1'; - CS1n <= '1'; - DDo <= (others => '0'); - DDoe <= '0'; - else - RESETn <= not IDEctrl_rst; - DA <= PIOa(2 downto 0); - CS0n <= not (not PIOa(3) and PIOreq); -- CS0 asserted when A(3) = '0' - CS1n <= not ( PIOa(3) and PIOreq); -- CS1 asserted when A(3) = '1' - - DDo <= PIOd; - DDoe <= PIOoe; - DIORn <= not PIOdior; - DIOWn <= not PIOdiow; - end if; - end if; - end process gen_regs; - end block gen_ata_sigs; - - -- - -- generate selected device - -- - gen_seldev: process(clk) - variable Asel : std_logic; -- address selected - begin - if (clk'event and clk = '1') then - Asel := not PIOa(3) and PIOa(2) and PIOa(1) and not PIOa(0); -- header/device register - if ( (PIOdone = '1') and (Asel = '1') and (PIOwe = '1') ) then - SelDev <= PIOd(4); - end if; - end if; - end process gen_seldev; - - -- generate PIOgo signal - gen_PIOgo: process(clk, nReset) - begin - if (nReset = '0') then - dPIOreq <= '0'; - PIOgo <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - dPIOreq <= '0'; - PIOgo <= '0'; - else - dPIOreq <= PIOreq and not rPIOack; - PIOgo <= (PIOreq and not dPIOreq) and IDEctrl_IDEen; - end if; - end if; - end process gen_PIOgo; - -- - -- Hookup PIO access controller - -- - pio_access_control: atahost_pio_actrl - generic map( - TWIDTH => TWIDTH, - PIO_mode0_T1 => PIO_mode0_T1, - PIO_mode0_T2 => PIO_mode0_T2, - PIO_mode0_T4 => PIO_mode0_T4, - PIO_mode0_Teoc => PIO_mode0_Teoc - ) - port map( - clk => clk, - nReset => nReset, - rst => rst, - IDEctrl_FATR0 => IDEctrl_FATR0, - IDEctrl_FATR1 => IDEctrl_FATR1, - cmdport_T1 => cmdport_T1, - cmdport_T2 => cmdport_T2, - cmdport_T4 => cmdport_T4, - cmdport_Teoc => cmdport_Teoc, - cmdport_IORDYen => cmdport_IORDYen, - dport0_T1 => dport0_T1, - dport0_T2 => dport0_T2, - dport0_T4 => dport0_T4, - dport0_Teoc => dport0_Teoc, - dport0_IORDYen => dport0_IORDYen, - dport1_T1 => dport1_T1, - dport1_T2 => dport1_T2, - dport1_T4 => dport1_T4, - dport1_Teoc => dport1_Teoc, - dport1_IORDYen => dport1_IORDYen, - SelDev => SelDev, - go => PIOgo, - done => PIOdone, - dir => PIOwe, - a => PIOa, - q => PIOq, - DDi => DDi, - oe => PIOoe, - DIOR => PIOdior, - DIOW => PIOdiow, - IORDY => sIORDY - ); - - -- generate acknowledge - gen_ack: process(clk,rPIOack) - begin - if (clk'event and clk = '1') then - rPIOack <= PIOdone or (PIOreq and not IDEctrl_IDEen); -- acknowledge when done or when IDE not enabled (discard request) - end if; - PIOack <= rPIOack; - end process gen_ack; -end architecture structural; - diff --git a/lib/opencores/ata/ro_cnt.vhd b/lib/opencores/ata/ro_cnt.vhd deleted file mode 100644 index 8f94168c..00000000 --- a/lib/opencores/ata/ro_cnt.vhd +++ /dev/null @@ -1,137 +0,0 @@ ---------------------------------------------------------------------- ----- ---- ----- Run-Once Counter ---- ----- ---- ----- Author: Richard Herveille ---- ----- richard@asics.ws ---- ----- www.asics.ws ---- ----- ---- ---------------------------------------------------------------------- ----- ---- ----- Copyright (C) 2001, 2002 Richard Herveille ---- ----- richard@asics.ws ---- ----- ---- ----- This source file may be used and distributed without ---- ----- restriction provided that this copyright statement is not ---- ----- removed from the file and that any derivative work contains ---- ----- the original copyright notice and the associated disclaimer.---- ----- ---- ----- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ---- ----- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---- ----- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ---- ----- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ---- ----- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ----- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---- ----- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ---- ----- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ---- ----- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---- ----- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ----- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ---- ----- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ---- ----- POSSIBILITY OF SUCH DAMAGE. ---- ----- ---- ---------------------------------------------------------------------- - --- --- CVS Log --- --- $Id: ro_cnt.vhd,v 1.1 2002/03/01 03:49:03 rherveille Exp $ --- --- $Date: 2002/03/01 03:49:03 $ --- $Revision: 1.1 $ --- $Author: rherveille $ --- $Locker: $ --- $State: Exp $ --- --- Change History: --- $Log: ro_cnt.vhd,v $ --- Revision 1.1 2002/03/01 03:49:03 rherveille --- Changed internal counter libraries. --- Split counter.vhd into separate files. --- Core is in same state as Verilog version now. --- - -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -entity ro_cnt is - generic( - SIZE : natural := 8; - UD : integer := 0; -- default count down - ID : natural := 0 -- initial data after reset - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic := '1'; -- asynchronous active low reset - rst : in std_logic := '0'; -- synchronous active high reset - - cnt_en : in std_logic := '1'; -- count enable - go : in std_logic; -- load counter and start sequence - done : out std_logic; -- done counting - d : in std_logic_vector(SIZE -1 downto 0); -- load counter value - q : out std_logic_vector(SIZE -1 downto 0) -- current counter value - ); -end entity ro_cnt; - -architecture structural of ro_cnt is - component ud_cnt is - generic( - SIZE : natural := 8; - RESD : natural := 0 -- initial data after reset - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic := '1'; -- asynchronous active low reset - rst : in std_logic := '0'; -- synchronous active high reset - - cnt_en : in std_logic := '1'; -- count enable - ud : in std_logic := '0'; -- up / not down - nld : in std_logic := '1'; -- synchronous active low load - d : in std_logic_vector(SIZE -1 downto 0); -- load counter value - q : out std_logic_vector(SIZE -1 downto 0); -- current counter value - - rci : in std_logic := '1'; -- carry input - rco : out std_logic -- carry output - ); - end component ud_cnt; - - signal rci, rco, nld, UDP : std_logic; -begin - gen_ctrl: process(clk, nReset) - begin - if (nReset = '0') then - rci <= '0'; - elsif (clk'event and clk = '1') then - if (rst = '1') then - rci <= '0'; - else - rci <= go or (rci and not rco); - end if; - end if; - end process; - - nld <= not go; - - UDP <= '0' when UD = 0 else '1'; - -- hookup counter - cnt : ud_cnt - generic map ( - SIZE => SIZE, - RESD => ID - ) - port map ( - clk => clk, - nReset => nReset, - rst => rst, - cnt_en => cnt_en, - ud => UDP, - nld => nld, - D => D, - Q => Q, - rci => rci, - rco => rco - ); - - done <= rco; -end architecture structural; diff --git a/lib/opencores/ata/ud_cnt.vhd b/lib/opencores/ata/ud_cnt.vhd deleted file mode 100644 index ff4e1917..00000000 --- a/lib/opencores/ata/ud_cnt.vhd +++ /dev/null @@ -1,109 +0,0 @@ ---------------------------------------------------------------------- ----- ---- ----- Generic Up/Down counter (ripple carry architecture) ---- ----- ---- ----- Author: Richard Herveille ---- ----- richard@asics.ws ---- ----- www.asics.ws ---- ----- ---- ---------------------------------------------------------------------- ----- ---- ----- Copyright (C) 2001, 2002 Richard Herveille ---- ----- richard@asics.ws ---- ----- ---- ----- This source file may be used and distributed without ---- ----- restriction provided that this copyright statement is not ---- ----- removed from the file and that any derivative work contains ---- ----- the original copyright notice and the associated disclaimer.---- ----- ---- ----- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ---- ----- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---- ----- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ---- ----- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ---- ----- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ----- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---- ----- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ---- ----- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ---- ----- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---- ----- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ----- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ---- ----- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ---- ----- POSSIBILITY OF SUCH DAMAGE. ---- ----- ---- ---------------------------------------------------------------------- - --- --- CVS Log --- --- $Id: ud_cnt.vhd,v 1.1 2002/03/01 03:49:03 rherveille Exp $ --- --- $Date: 2002/03/01 03:49:03 $ --- $Revision: 1.1 $ --- $Author: rherveille $ --- $Locker: $ --- $State: Exp $ --- --- Change History: --- $Log: ud_cnt.vhd,v $ --- Revision 1.1 2002/03/01 03:49:03 rherveille --- Changed internal counter libraries. --- Split counter.vhd into separate files. --- Core is in same state as Verilog version now. --- - - -library ieee; -use ieee.std_logic_1164.all; ---use ieee.std_logic_arith.all; -library grlib; -use grlib.stdlib.all; - -entity ud_cnt is - generic( - SIZE : natural := 8; - RESD : natural := 0 - ); - port( - clk : in std_logic; -- master clock - nReset : in std_logic := '1'; -- asynchronous active low reset - rst : in std_logic := '0'; -- synchronous active high reset - - cnt_en : in std_logic := '1'; -- count enable - ud : in std_logic := '0'; -- up / not down - nld : in std_logic := '1'; -- synchronous active low load - d : in std_logic_vector(SIZE -1 downto 0); -- load counter value - q : out std_logic_vector(SIZE -1 downto 0); -- current counter value - - rci : in std_logic := '1'; -- carry input - rco : out std_logic -- carry output - ); -end entity ud_cnt; - -architecture structural of ud_cnt is - signal Qi : std_logic_vector(SIZE -1 downto 0); - signal val : std_logic_vector(SIZE downto 0); -begin - val <= ( ('0' & Qi) + rci) when (ud = '1') else ( ('0' & Qi) - rci); - - regs: process(clk, nReset) - begin - if (nReset = '0') then - Qi <= conv_std_logic_vector(RESD, SIZE); - elsif (clk'event and clk = '1') then - if (rst = '1') then - Qi <= conv_std_logic_vector(RESD, SIZE); - else - if (nld = '0') then - Qi <= D; - elsif (cnt_en = '1') then - Qi <= val(SIZE -1 downto 0); - end if; - end if; - end if; - end process regs; - - -- assign outputs - Q <= Qi; - rco <= val(SIZE); -end architecture structural; - diff --git a/lib/opencores/ata/vhdlsyn.txt b/lib/opencores/ata/vhdlsyn.txt deleted file mode 100644 index 503455e7..00000000 --- a/lib/opencores/ata/vhdlsyn.txt +++ /dev/null @@ -1,10 +0,0 @@ -ud_cnt.vhd -ro_cnt.vhd -atahost_dma_fifo.vhd -atahost_dma_actrl.vhd -atahost_dma_tctrl.vhd -atahost_pio_tctrl.vhd -atahost_pio_actrl.vhd -atahost_controller.vhd -atahost_pio_controller.vhd -ocidec2_controller.vhd diff --git a/lib/opencores/ata/vlogsim.txt b/lib/opencores/ata/vlogsim.txt deleted file mode 100644 index dfed14b0..00000000 --- a/lib/opencores/ata/vlogsim.txt +++ /dev/null @@ -1 +0,0 @@ -ata_device_oc.v diff --git a/lib/opencores/dirs.txt b/lib/opencores/dirs.txt index 68381415..d909198b 100644 --- a/lib/opencores/dirs.txt +++ b/lib/opencores/dirs.txt @@ -1 +1 @@ -occomp can i2c spi ata ac97 \ No newline at end of file +can i2c diff --git a/lib/opencores/i2c/i2c_master_bit_ctrl.vhd b/lib/opencores/i2c/i2c_master_bit_ctrl.vhd index f3c6b135..1553fef2 100644 --- a/lib/opencores/i2c/i2c_master_bit_ctrl.vhd +++ b/lib/opencores/i2c/i2c_master_bit_ctrl.vhd @@ -379,15 +379,19 @@ begin sync_scl_sda: process(clk, nReset, fSCL_chg, fSDA_chg, fiscl_oen_chg, fisda_oen_chg) variable scl_chg, sda_chg, iscl_oen_chg, isda_oen_chg : std_ulogic; begin - scl_chg := fSCL_chg; sda_chg := fSDA_chg; - iscl_oen_chg := fiscl_oen_chg; isda_oen_chg := fisda_oen_chg; + --scl_chg := fSCL_chg; sda_chg := fSDA_chg; + --iscl_oen_chg := fiscl_oen_chg; isda_oen_chg := fisda_oen_chg; if (nReset = '0') then + scl_chg := fSCL_chg; sda_chg := fSDA_chg; + iscl_oen_chg := fiscl_oen_chg; isda_oen_chg := fisda_oen_chg; filtcnt <= (others => '0'); fSCL <= (others => '1'); fSDA <= (others => '1'); fSCL_chg <= '0'; fSDA_chg <= '0'; fiscl_oen <= (others => '1'); fiscl_oen_chg <= '0'; fisda_oen <= '1'; fisda_oen_chg <= '0'; elsif (clk'event and clk = '1') then + scl_chg := fSCL_chg; sda_chg := fSDA_chg; + iscl_oen_chg := fiscl_oen_chg; isda_oen_chg := fisda_oen_chg; if (rst = '1') or (ena = '0') then filtcnt <= (others => '0'); fSCL <= (others => '1'); fSDA <= (others => '1'); diff --git a/lib/opencores/occomp/occomp.vhd b/lib/opencores/occomp/occomp.vhd deleted file mode 100644 index ed288a05..00000000 --- a/lib/opencores/occomp/occomp.vhd +++ /dev/null @@ -1,254 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -library ieee; -use ieee.std_logic_1164.all; - -package occomp is - - component ac97_top - port( - clk_i : in std_logic; - rst_i : in std_logic; - wb_data_i : in std_logic_vector(31 downto 0); - wb_data_o : out std_logic_vector(31 downto 0); - wb_addr_i : in std_logic_vector(31 downto 0); - wb_sel_i : in std_logic_vector(3 downto 0); - wb_we_i : in std_logic; - wb_cyc_i : in std_logic; - wb_stb_i : in std_logic; - wb_ack_o : out std_logic; - wb_err_o : out std_logic; - int_o : out std_logic; - dma_req_o : out std_logic_vector(8 downto 0); - dma_ack_i : in std_logic_vector(8 downto 0); - suspended_o : out std_logic; - bit_clk_pad_i : in std_logic; - sync_pad_o : out std_logic; - sdata_pad_o : out std_logic; - sdata_pad_i : in std_logic; - ac97_resetn_pad_o : out std_logic - ); - end component; - - component simple_spi_top - port ( - prdata_o : out std_logic_vector(7 downto 0); - pirq_o : out std_logic; - sck_o : out std_logic; - mosi_o : out std_logic; - ssn_o : out std_logic_vector(7 downto 0); - pclk_i : in std_logic; - prst_i : in std_logic; - psel_i : in std_logic; - penable_i : in std_logic; - paddr_i : in std_logic_vector(2 downto 0); - pwrite_i : in std_logic; - pwdata_i : in std_logic_vector(7 downto 0); - miso_i : in std_logic); - end component; - - component ocidec2_controller - generic( - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23 -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - ); - port( - clk : in std_logic; -- master clock in - nReset : in std_logic := '1'; -- asynchronous active low reset - rst : in std_logic := '0'; -- synchronous active high reset - - irq : out std_logic; -- interrupt request signal - - -- control / registers - IDEctrl_rst, - IDEctrl_IDEen, - IDEctrl_FATR0, - IDEctrl_FATR1 : in std_logic; - - -- PIO registers - cmdport_T1, - cmdport_T2, - cmdport_T4, - cmdport_Teoc : in std_logic_vector(7 downto 0); - cmdport_IORDYen : in std_logic; -- PIO command port / non-fast timing - - dport0_T1, - dport0_T2, - dport0_T4, - dport0_Teoc : in std_logic_vector(7 downto 0); - dport0_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 0 - - dport1_T1, - dport1_T2, - dport1_T4, - dport1_Teoc : in std_logic_vector(7 downto 0); - dport1_IORDYen : in std_logic; -- PIO mode data-port / fast timing device 1 - - PIOreq : in std_logic; -- PIO transfer request - PIOack : out std_logic; -- PIO transfer ended - PIOa : in std_logic_vector(3 downto 0); -- PIO address - PIOd : in std_logic_vector(15 downto 0); -- PIO data in - PIOq : out std_logic_vector(15 downto 0); -- PIO data out - PIOwe : in std_logic; -- PIO direction bit '1'=write, '0'=read - - -- ATA signals - RESETn : out std_logic; - DDi : in std_logic_vector(15 downto 0); - DDo : out std_logic_vector(15 downto 0); - DDoe : out std_logic; - DA : out std_logic_vector(2 downto 0); - CS0n : out std_logic; - CS1n : out std_logic; - - DIORn : out std_logic; - DIOWn : out std_logic; - IORDY : in std_logic; - INTRQ : in std_logic - ); - end component ocidec2_controller; - - component atahost_controller - generic( - tech : integer := 0; -- fifo mem technology - fdepth : integer := 8; -- DMA fifo depth - TWIDTH : natural := 8; -- counter width - - -- PIO mode 0 settings (@100MHz clock) - PIO_mode0_T1 : natural := 6; -- 70ns - PIO_mode0_T2 : natural := 28; -- 290ns - PIO_mode0_T4 : natural := 2; -- 30ns - PIO_mode0_Teoc : natural := 23; -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240 - - -- Multiword DMA mode 0 settings (@100MHz clock) - DMA_mode0_Tm : natural := 4; -- 50ns - DMA_mode0_Td : natural := 21; -- 215ns - DMA_mode0_Teoc : natural := 21 -- 215ns ==> T0 - Td - Tm = 480 - 50 - 215 = 215 - ); - port( - clk : in std_logic; -- master clock in - nReset : in std_logic := '1'; -- asynchronous active low reset - rst : in std_logic := '0'; -- synchronous active high reset - - irq : out std_logic; -- interrupt request signal - - -- control / registers - IDEctrl_IDEen, - IDEctrl_rst, - IDEctrl_ppen, - IDEctrl_FATR0, - IDEctrl_FATR1 : in std_logic; -- control register settings - - a : in std_logic_vector(3 downto 0); -- address input - d : in std_logic_vector(31 downto 0); -- data input - we : in std_logic; -- write enable input '1'=write, '0'=read - - -- PIO registers - PIO_cmdport_T1, - PIO_cmdport_T2, - PIO_cmdport_T4, - PIO_cmdport_Teoc : in std_logic_vector(7 downto 0); - PIO_cmdport_IORDYen : in std_logic; -- PIO compatible timing settings - - PIO_dport0_T1, - PIO_dport0_T2, - PIO_dport0_T4, - PIO_dport0_Teoc : in std_logic_vector(7 downto 0); - PIO_dport0_IORDYen : in std_logic; -- PIO data-port device0 timing settings - - PIO_dport1_T1, - PIO_dport1_T2, - PIO_dport1_T4, - PIO_dport1_Teoc : in std_logic_vector(7 downto 0); - PIO_dport1_IORDYen : in std_logic; -- PIO data-port device1 timing settings - - PIOsel : in std_logic; -- PIO controller select - PIOack : out std_logic; -- PIO controller acknowledge - PIOq : out std_logic_vector(15 downto 0); -- PIO data out - PIOtip : out std_logic; -- PIO transfer in progress - PIOpp_full : out std_logic; -- PIO Write PingPong full - - -- DMA registers - DMA_dev0_Td, - DMA_dev0_Tm, - DMA_dev0_Teoc : in std_logic_vector(7 downto 0); -- DMA timing settings for device0 - - DMA_dev1_Td, - DMA_dev1_Tm, - DMA_dev1_Teoc : in std_logic_vector(7 downto 0); -- DMA timing settings for device1 - - DMActrl_DMAen, - DMActrl_dir, - DMActrl_Bytesw, --Jagre 2006-12-04 byte swap ATA data - DMActrl_BeLeC0, - DMActrl_BeLeC1 : in std_logic; -- DMA settings - - DMAsel : in std_logic; -- DMA controller select - DMAack : out std_logic; -- DMA controller acknowledge - DMAq : out std_logic_vector(31 downto 0); -- DMA data out - DMAtip_out : out std_logic; -- DMA transfer in progress --Erik Jagre 2006-11-15 - DMA_dmarq : out std_logic; -- Synchronized ATA DMARQ line - - force_rdy : in std_logic; -- DMA transmit fifo filled up partly --Erik Jagre 2006-10-31 - fifo_rdy : out std_logic; -- DMA transmit fifo filled up --Erik Jagre 2006-10-30 - DMARxEmpty : out std_logic; -- DMA receive buffer empty - DMARxFull : out std_logic; -- DMA receive fifo full Erik Jagre 2006-10-31 - - DMA_req : out std_logic; -- DMA request to external DMA engine - DMA_ack : in std_logic; -- DMA acknowledge from external DMA engine - BM_en : in std_logic; -- Bus mater enabled, for DMA reset Erik Jagre 2006-10-24 - - -- ATA signals - RESETn : out std_logic; - DDi : in std_logic_vector(15 downto 0); - DDo : out std_logic_vector(15 downto 0); - DDoe : out std_logic; - DA : out std_logic_vector(2 downto 0); - CS0n : out std_logic; - CS1n : out std_logic; - - DMARQ : in std_logic; - DMACKn : out std_logic; - DIORn : out std_logic; - DIOWn : out std_logic; - IORDY : in std_logic; - INTRQ : in std_logic - ); - end component; - - component ata_device_oc is - port( - ata_rst_n : in std_logic; - ata_data : inout std_logic_vector(15 downto 0); - ata_da : in std_logic_vector(2 downto 0); - ata_cs0 : in std_logic; - ata_cs1 : in std_logic; - ata_dior_n : in std_logic; - ata_diow_n : in std_logic; - ata_iordy : out std_logic; - ata_intrq : out std_logic - ); - end component; - -end; diff --git a/lib/opencores/occomp/vhdlsyn.txt b/lib/opencores/occomp/vhdlsyn.txt deleted file mode 100644 index b557611a..00000000 --- a/lib/opencores/occomp/vhdlsyn.txt +++ /dev/null @@ -1 +0,0 @@ -occomp.vhd diff --git a/lib/opencores/spi/simple_spi_top.v b/lib/opencores/spi/simple_spi_top.v deleted file mode 100644 index 048a720e..00000000 --- a/lib/opencores/spi/simple_spi_top.v +++ /dev/null @@ -1,487 +0,0 @@ -`timescale 1ns / 10ps - -///////////////////////////////////////////////////////////////////// -//// //// -//// FIFO 4 entries deep //// -//// //// -//// Authors: Rudolf Usselmann, Richard Herveille //// -//// rudi@asics.ws richard@asics.ws //// -//// //// -//// //// -//// Download from: http://www.opencores.org/projects/sasc //// -//// http://www.opencores.org/projects/simple_spi //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2000-2002 Rudolf Usselmann, Richard Herveille //// -//// www.asics.ws //// -//// rudi@asics.ws, richard@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: simple_spi_top.v,v 1.2 2006/12/04 14:40:35 tame Exp $ -// -// $Date: 2006/12/04 14:40:35 $ -// $Revision: 1.2 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// - -// synopsys translate_off -//`include "timescale.v" -// synopsys translate_on - - -// 4 entry deep fast fifo -module fifo4(clk, rst, clr, din, we, dout, re, full, empty); - -parameter dw = 8; - -input clk, rst; -input clr; -input [dw:1] din; -input we; -output [dw:1] dout; -input re; -output full, empty; - - -//////////////////////////////////////////////////////////////////// -// -// Local Wires -// - -reg [dw:1] mem[0:3]; -reg [1:0] wp; -reg [1:0] rp; -wire [1:0] wp_p1; -wire [1:0] wp_p2; -wire [1:0] rp_p1; -wire full, empty; -reg gb; - -//////////////////////////////////////////////////////////////////// -// -// Misc Logic -// - -always @(posedge clk or negedge rst) - if(!rst) wp <= #1 2'h0; - else - if(clr) wp <= #1 2'h0; - else - if(we) wp <= #1 wp_p1; - -assign wp_p1 = wp + 2'h1; -assign wp_p2 = wp + 2'h2; - -always @(posedge clk or negedge rst) - if(!rst) rp <= #1 2'h0; - else - if(clr) rp <= #1 2'h0; - else - if(re) rp <= #1 rp_p1; - -assign rp_p1 = rp + 2'h1; - -// Fifo Output -assign dout = mem[ rp ]; - -// Fifo Input -always @(posedge clk) - if(we) mem[ wp ] <= #1 din; - -// Status -assign empty = (wp == rp) & !gb; -assign full = (wp == rp) & gb; - -// Guard Bit ... -always @(posedge clk) - if(!rst) gb <= #1 1'b0; - else - if(clr) gb <= #1 1'b0; - else - if((wp_p1 == rp) & we) gb <= #1 1'b1; - else - if(re) gb <= #1 1'b0; - -endmodule -///////////////////////////////////////////////////////////////////// -//// //// -//// OpenCores MC68HC11E based SPI interface //// -//// //// -//// Author: Richard Herveille //// -//// richard@asics.ws //// -//// www.asics.ws //// -//// //// -///////////////////////////////////////////////////////////////////// -//// //// -//// Copyright (C) 2002 Richard Herveille //// -//// richard@asics.ws //// -//// //// -//// This source file may be used and distributed without //// -//// restriction provided that this copyright statement is not //// -//// removed from the file and that any derivative work contains //// -//// the original copyright notice and the associated disclaimer.//// -//// //// -//// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// -//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// -//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// -//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// -//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// -//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// -//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// -//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// -//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// -//// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// -//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// -//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// -//// POSSIBILITY OF SUCH DAMAGE. //// -//// //// -///////////////////////////////////////////////////////////////////// - -// CVS Log -// -// $Id: simple_spi_top.v,v 1.2 2006/12/04 14:40:35 tame Exp $ -// -// $Date: 2006/12/04 14:40:35 $ -// $Revision: 1.2 $ -// $Author: tame $ -// $Locker: $ -// $State: Exp $ -// -// Change History: -// -// Revision 1.7 2006/11/14 11:32:00 tame -// Removed Wishbone interface, added AMBA APB interface -// -// Revision 1.6 2006/11/10 11:32:00 fwex -// Added SPISSN Register -// -// Revision 1.5 2004/02/28 15:59:50 rherveille -// Fixed SCK_O generation bug. -// This resulted in a major rewrite of the serial interface engine. -// -// Revision 1.4 2003/08/01 11:41:54 rherveille -// Fixed some timing bugs. -// -// Revision 1.3 2003/01/09 16:47:59 rherveille -// Updated clkcnt size and decoding due to new SPR bit assignments. -// -// Revision 1.2 2003/01/07 13:29:52 rherveille -// Changed SPR bits coding. -// -// Revision 1.1.1.1 2002/12/22 16:07:15 rherveille -// Initial release -// -// -// -// Motorola MC68HC11E based SPI interface -// -// Currently only MASTER mode is supported -// - -// synopsys translate_off -//`include "timescale.v" -// synopsys translate_on - -module simple_spi_top(/*AUTOARG*/ - // Outputs - prdata_o, pirq_o, sck_o, mosi_o, ssn_o, - // Inputs - pclk_i, prst_i, psel_i, penable_i, paddr_i, pwrite_i, pwdata_i, - miso_i - ); - - // 8-bit WISHBONE bus slave interface - input pclk_i; // clock - input prst_i; // reset (asynchronous active low) - input psel_i; // cycle - input penable_i; // strobe - input [2:0] paddr_i; // address - input pwrite_i; // write enable - input [7:0] pwdata_i; // data input - - output [7:0] prdata_o; // data output - reg [7:0] prdata_o; - - output pirq_o; // interrupt output - reg pirq_o; - - // SPI port - output sck_o; // serial clock output - reg sck_o; - - output mosi_o; // MasterOut SlaveIN - input miso_i; // MasterIn SlaveOu - - // additional chip select output - output [7:0] ssn_o; // Slave Select for the SPI Slaves - - - // - // Module body - // - reg [7:0] spcr; // Serial Peripheral Control Register ('HC11 naming) - wire [7:0] spsr; // Serial Peripheral Status register ('HC11 naming) - reg [7:0] sper; // Serial Peripheral Extension register - reg [7:0] treg; // Transmit register - reg [7:0] spssr; // Serial Peripheral Chip Select Register - - // fifo signals - wire [7:0] rfdout; - reg wfre, rfwe; - wire rfre, rffull, rfempty; - wire [7:0] wfdout; - wire wfwe, wffull, wfempty; - - // misc signals - wire tirq; // transfer interrupt (selected number of transfers done) - wire wfov; // write fifo overrun (writing while fifo full) - reg [1:0] state; // statemachine state - reg [2:0] bcnt; - - wire apb_acc = psel_i & penable_i; - wire apb_wr = psel_i & penable_i & pwrite_i; - - // added acknowledge register to be compatible with - // Wishbone modeling (controls write and read fifo enables) - reg ack; - - // route the Chip Select Register to the port - assign ssn_o = spssr; - - // write registers - always @(posedge pclk_i or negedge prst_i) - if (~prst_i) - begin - spcr <= #1 8'h10; // set master bit - sper <= #1 8'h00; - spssr <= #1 8'hFF; - end - else - if (apb_wr) begin - if (paddr_i == 3'b000) - spcr <= #1 pwdata_i | 8'h10; // always set master bit - else if (paddr_i == 3'b011) - sper <= #1 pwdata_i; - else if (paddr_i == 3'b100) - spssr <= #1 pwdata_i; - end - - // write fifo - assign wfwe = apb_acc & (paddr_i == 3'b010) & pwrite_i; - assign wfov = wfwe & wffull; - - // data output - always @(posedge pclk_i) - case(paddr_i) // synopsys full_case parallel_case - 3'b000: prdata_o <= #1 spcr; - 3'b001: prdata_o <= #1 spsr; - 3'b010: prdata_o <= #1 rfdout; - 3'b011: prdata_o <= #1 sper; - 3'b100: prdata_o <= #1 spssr; - default: prdata_o <= #1 8'bX; - endcase - - // read fifo - assign rfre = apb_acc & (paddr_i == 3'b010) & ~pwrite_i; - - // model acknowlegde for compatibility with original test bench - always @(posedge pclk_i or negedge prst_i) - if (~prst_i) - ack <= #1 1'b0; - else - ack <= #1 apb_acc & ~ack; - - // decode Serial Peripheral Control Register - wire spie = spcr[7]; // Interrupt enable bit - wire spe = spcr[6]; // System Enable bit - wire dwom = spcr[5]; // Port D Wired-OR Mode Bit - wire mstr = spcr[4]; // Master Mode Select Bit - wire cpol = spcr[3]; // Clock Polarity Bit - wire cpha = spcr[2]; // Clock Phase Bit - wire [1:0] spr = spcr[1:0]; // Clock Rate Select Bits - - // decode Serial Peripheral Extension Register - wire [1:0] icnt = sper[7:6]; // interrupt on transfer count - wire [1:0] spre = sper[1:0]; // extended clock rate select - - wire [3:0] espr = {spre, spr}; - - // generate status register - wire wr_spsr = apb_wr & (paddr_i == 3'b001); - - reg spif; - always @(posedge pclk_i) - if (~spe) - spif <= #1 1'b0; - else - spif <= #1 (tirq | spif) & ~(wr_spsr & pwdata_i[7]); - - reg wcol; - always @(posedge pclk_i) - if (~spe) - wcol <= #1 1'b0; - else - wcol <= #1 (wfov | wcol) & ~(wr_spsr & pwdata_i[6]); - - assign spsr[7] = spif; - assign spsr[6] = wcol; - assign spsr[5:4] = 2'b00; - assign spsr[3] = wffull; - assign spsr[2] = wfempty; - assign spsr[1] = rffull; - assign spsr[0] = rfempty; - - - // generate IRQ output (pirq_o) - always @(posedge pclk_i) - pirq_o <= #1 spif & spie; - - // - // hookup read/write buffer fifo - fifo4 #(8) rfifo - (.clk ( pclk_i ), - .rst ( prst_i ), - .clr ( ~spe ), - .din ( treg ), - .we ( rfwe ), - .dout ( rfdout ), - .re ( rfre ), - .full ( rffull ), - .empty ( rfempty ) - ); - - fifo4 #(8) wfifo - (.clk ( pclk_i ), - .rst ( prst_i ), - .clr ( ~spe ), - .din ( pwdata_i ), - .we ( wfwe ), - .dout ( wfdout ), - .re ( wfre ), - .full ( wffull ), - .empty ( wfempty ) - ); - - // - // generate clk divider - reg [11:0] clkcnt; - always @(posedge pclk_i) - if(spe & (|clkcnt & |state)) - clkcnt <= #1 clkcnt - 10'h1; - else - case (espr) // synopsys full_case parallel_case - 4'b0000: clkcnt <= #1 12'h0; // 2 -- original M68HC11 coding - 4'b0001: clkcnt <= #1 12'h1; // 4 -- original M68HC11 coding - 4'b0010: clkcnt <= #1 12'h3; // 8 -- original M68HC11 coding - 4'b0011: clkcnt <= #1 12'hf; // 32 -- original M68HC11 coding - 4'b0100: clkcnt <= #1 12'h1f; // 64 - 4'b0101: clkcnt <= #1 12'h7; // 16 - 4'b0110: clkcnt <= #1 12'h3f; // 128 - 4'b0111: clkcnt <= #1 12'h7f; // 256 - 4'b1000: clkcnt <= #1 12'hff; // 512 - 4'b1001: clkcnt <= #1 12'h1ff; // 1024 - 4'b1010: clkcnt <= #1 12'h3ff; // 2048 - 4'b1011: clkcnt <= #1 12'h7ff; // 4096 - endcase - - // generate clock enable signal - wire ena = ~|clkcnt; - - // transfer statemachine - always @(posedge pclk_i) - if (~spe) - begin - state <= #1 2'b00; // idle - bcnt <= #1 3'h0; - treg <= #1 8'h00; - wfre <= #1 1'b0; - rfwe <= #1 1'b0; - sck_o <= #1 1'b0; - end - else - begin - wfre <= #1 1'b0; - rfwe <= #1 1'b0; - - case (state) //synopsys full_case parallel_case - 2'b00: // idle state - begin - bcnt <= #1 3'h7; // set transfer counter - treg <= #1 wfdout; // load transfer register - sck_o <= #1 cpol; // set sck - - if (~wfempty) begin - wfre <= #1 1'b1; - state <= #1 2'b01; - if (cpha) sck_o <= #1 ~sck_o; - end - end - - 2'b01: // clock-phase2, next data - if (ena) begin - sck_o <= #1 ~sck_o; - state <= #1 2'b11; - end - - 2'b11: // clock phase1 - if (ena) begin - treg <= #1 {treg[6:0], miso_i}; - bcnt <= #1 bcnt -3'h1; - - if (~|bcnt) begin - state <= #1 2'b00; - sck_o <= #1 cpol; - rfwe <= #1 1'b1; - end else begin - state <= #1 2'b01; - sck_o <= #1 ~sck_o; - end - end - - 2'b10: state <= #1 2'b00; - endcase - end - - assign mosi_o = treg[7]; - - - // count number of transfers (for interrupt generation) - reg [1:0] tcnt; // transfer count - always @(posedge pclk_i) - if (~spe) - tcnt <= #1 icnt; - else if (rfwe) // rfwe gets asserted when all bits have been transfered - if (|tcnt) - tcnt <= #1 tcnt - 2'h1; - else - tcnt <= #1 icnt; - - assign tirq = ~|tcnt & rfwe; - -endmodule - diff --git a/lib/opencores/spi/vlogsyn.txt b/lib/opencores/spi/vlogsyn.txt deleted file mode 100644 index 6a275271..00000000 --- a/lib/opencores/spi/vlogsyn.txt +++ /dev/null @@ -1,2 +0,0 @@ -simple_spi_top.v - diff --git a/lib/praesum/ahbpassthru/ahbpassthru.in b/lib/praesum/ahbpassthru/ahbpassthru.in deleted file mode 100644 index 06867fcd..00000000 --- a/lib/praesum/ahbpassthru/ahbpassthru.in +++ /dev/null @@ -1,148 +0,0 @@ -mainmenu_option next_comment - comment 'AHB Master Pass Through Ports ' - choice 'No.AHB Masters'\ - "0 CONFIG_AHBM_PASSTHRU_0 \ - 1 CONFIG_AHBM_PASSTHRU_1 \ - 2 CONFIG_AHBM_PASSTHRU_2" 0 - if [ "$CONFIG_AHBM_PASSTHRU_1" = "y" -o "$CONFIG_AHBM_PASSTHRU_2" = "y" ]; then - hex 'Master 0, BAR0 ' CONFIG_AHBM0_BAR0 000 - hex 'Master 0, BAR0 mask - 0 to disable ' CONFIG_AHBM0_MASK0 000 - boolean 'Master 0, BAR0 ram type? (n = I/O type)' CONFIG_AHBM0_BARTYPE0 "y" - boolean 'Master 0, BAR0 prefetchable? ' CONFIG_AHBM0_PF0 "n" - boolean 'Master 0, BAR0 cacheable? ' CONFIG_AHBM0_CA0 "n" - hex 'Master 0, BAR1 ' CONFIG_AHBM0_BAR1 000 - hex 'Master 0, BAR1 mask - 0 to disable ' CONFIG_AHBM0_MASK1 000 - boolean 'Master 0, BAR1 ram type? (n = I/O type)' CONFIG_AHBM0_BARTYPE1 "y" - boolean 'Master 0, BAR1 prefetchable? ' CONFIG_AHBM0_PF1 "n" - boolean 'Master 0, BAR1 cacheable? ' CONFIG_AHBM0_CA1 "n" - hex 'Master 0, BAR2 ' CONFIG_AHBM0_BAR2 000 - hex 'Master 0, BAR2 mask - 0 to disable ' CONFIG_AHBM0_MASK2 000 - boolean 'Master 0, BAR2 ram type? (n = I/O type)' CONFIG_AHBM0_BARTYPE2 "y" - boolean 'Master 0, BAR2 prefetchable? ' CONFIG_AHBM0_PF2 "n" - boolean 'Master 0, BAR2 cacheable? ' CONFIG_AHBM0_CA2 "n" - hex 'Master 0, BAR3 ' CONFIG_AHBM0_BAR3 000 - hex 'Master 0, BAR3 mask - 0 to disable ' CONFIG_AHBM0_MASK3 000 - boolean 'Master 0, BAR3 ram type? (n = I/O type)' CONFIG_AHBM0_BARTYPE3 "y" - boolean 'Master 0, BAR3 prefetchable? ' CONFIG_AHBM0_PF3 "n" - boolean 'Master 0, BAR3 cacheable? ' CONFIG_AHBM0_CA3 "n" - fi - if [ "$CONFIG_AHBM_PASSTHRU_2" = "y" ]; then - hex 'Master 1, BAR0 ' CONFIG_AHBM1_BAR0 000 - hex 'Master 1, BAR0 mask - 0 to disable ' CONFIG_AHBM1_MASK0 000 - boolean 'Master 1, BAR0 ram type? (n = I/O type)' CONFIG_AHBM1_BARTYPE0 "y" - boolean 'Master 1, BAR0 prefetchable? ' CONFIG_AHBM1_PF0 "n" - boolean 'Master 1, BAR0 cacheable? ' CONFIG_AHBM1_CA0 "n" - hex 'Master 1, BAR1 ' CONFIG_AHBM1_BAR1 000 - hex 'Master 1, BAR1 mask - 0 to disable ' CONFIG_AHBM1_MASK1 000 - boolean 'Master 1, BAR1 ram type? (n = I/O type)' CONFIG_AHBM1_BARTYPE1 "y" - boolean 'Master 1, BAR1 prefetchable? ' CONFIG_AHBM1_PF1 "n" - boolean 'Master 1, BAR1 cacheable? ' CONFIG_AHBM1_CA1 "n" - hex 'Master 1, BAR2 ' CONFIG_AHBM1_BAR2 000 - hex 'Master 1, BAR2 mask - 0 to disable ' CONFIG_AHBM1_MASK2 000 - boolean 'Master 1, BAR2 ram type? (n = I/O type)' CONFIG_AHBM1_BARTYPE2 "y" - boolean 'Master 1, BAR2 prefetchable? ' CONFIG_AHBM1_PF2 "n" - boolean 'Master 1, BAR2 cacheable? ' CONFIG_AHBM1_CA2 "n" - hex 'Master 1, BAR3 ' CONFIG_AHBM1_BAR3 000 - hex 'Master 1, BAR3 mask - 0 to disable ' CONFIG_AHBM1_MASK3 000 - boolean 'Master 1, BAR3 ram type? (n = I/O type)' CONFIG_AHBM1_BARTYPE3 "y" - boolean 'Master 1, BAR3 prefetchable? ' CONFIG_AHBM1_PF3 "n" - boolean 'Master 1, BAR3 cacheable? ' CONFIG_AHBM1_CA3 "n" - fi -endmenu -mainmenu_option next_comment - comment 'AHB Slave Pass Through Ports ' - choice 'No.AHB Slaves'\ - "0 CONFIG_AHBS_PASSTHRU_0 \ - 1 CONFIG_AHBS_PASSTHRU_1 \ - 2 CONFIG_AHBS_PASSTHRU_2 \ - 3 CONFIG_AHBS_PASSTHRU_3 \ - 4 CONFIG_AHBS_PASSTHRU_4" 0 - if [ "$CONFIG_AHBS_PASSTHRU_1" = "y" -o "$CONFIG_AHBS_PASSTHRU_2" = "y" -o "$CONFIG_AHBS_PASSTHRU_3" = "y" -o "$CONFIG_AHBS_PASSTHRU_4" = "y" ]; then - hex 'Slave 0, BAR0 ' CONFIG_AHBS0_BAR0 000 - hex 'Slave 0, BAR0 mask - 0 to disable ' CONFIG_AHBS0_MASK0 000 - boolean 'Slave 0, BAR0 ram type? (n = I/O type)' CONFIG_AHBS0_BARTYPE0 "y" - boolean 'Slave 0, BAR0 prefetchable? ' CONFIG_AHBS0_PF0 "n" - boolean 'Slave 0, BAR0 cacheable? ' CONFIG_AHBS0_CA0 "n" - hex 'Slave 0, BAR1 ' CONFIG_AHBS0_BAR1 000 - hex 'Slave 0, BAR1 mask - 0 to disable ' CONFIG_AHBS0_MASK1 000 - boolean 'Slave 0, BAR1 ram type? (n = I/O type)' CONFIG_AHBS0_BARTYPE1 "y" - boolean 'Slave 0, BAR1 prefetchable? ' CONFIG_AHBS0_PF1 "n" - boolean 'Slave 0, BAR1 cacheable? ' CONFIG_AHBS0_CA1 "n" - hex 'Slave 0, BAR2 ' CONFIG_AHBS0_BAR2 000 - hex 'Slave 0, BAR2 mask - 0 to disable ' CONFIG_AHBS0_MASK2 000 - boolean 'Slave 0, BAR2 ram type? (n = I/O type)' CONFIG_AHBS0_BARTYPE2 "y" - boolean 'Slave 0, BAR2 prefetchable? ' CONFIG_AHBS0_PF2 "n" - boolean 'Slave 0, BAR2 cacheable? ' CONFIG_AHBS0_CA2 "n" - hex 'Slave 0, BAR3 ' CONFIG_AHBS0_BAR3 000 - hex 'Slave 0, BAR3 mask - 0 to disable ' CONFIG_AHBS0_MASK3 000 - boolean 'Slave 0, BAR3 ram type? (n = I/O type)' CONFIG_AHBS0_BARTYPE3 "y" - boolean 'Slave 0, BAR3 prefetchable? ' CONFIG_AHBS0_PF3 "n" - boolean 'Slave 0, BAR3 cacheable? ' CONFIG_AHBS0_CA3 "n" - fi - if [ "$CONFIG_AHBS_PASSTHRU_2" = "y" -o "$CONFIG_AHBS_PASSTHRU_3" = "y" -o "$CONFIG_AHBS_PASSTHRU_4" = "y" ]; then - hex 'Slave 1, BAR0 ' CONFIG_AHBS1_BAR0 000 - hex 'Slave 1, BAR0 mask - 0 to disable ' CONFIG_AHBS1_MASK0 000 - boolean 'Slave 1, BAR0 ram type? (n = I/O type)' CONFIG_AHBS1_BARTYPE0 "y" - boolean 'Slave 1, BAR0 prefetchable? ' CONFIG_AHBS1_PF0 "n" - boolean 'Slave 1, BAR0 cacheable? ' CONFIG_AHBS1_CA0 "n" - hex 'Slave 1, BAR1 ' CONFIG_AHBS1_BAR1 000 - hex 'Slave 1, BAR1 mask - 0 to disable ' CONFIG_AHBS1_MASK1 000 - boolean 'Slave 1, BAR1 ram type? (n = I/O type)' CONFIG_AHBS1_BARTYPE1 "y" - boolean 'Slave 1, BAR1 prefetchable? ' CONFIG_AHBS1_PF1 "n" - boolean 'Slave 1, BAR1 cacheable? ' CONFIG_AHBS1_CA1 "n" - hex 'Slave 1, BAR2 ' CONFIG_AHBS1_BAR2 000 - hex 'Slave 1, BAR2 mask - 0 to disable ' CONFIG_AHBS1_MASK2 000 - boolean 'Slave 1, BAR2 ram type? (n = I/O type)' CONFIG_AHBS1_BARTYPE2 "y" - boolean 'Slave 1, BAR2 prefetchable? ' CONFIG_AHBS1_PF2 "n" - boolean 'Slave 1, BAR2 cacheable? ' CONFIG_AHBS1_CA2 "n" - hex 'Slave 1, BAR3 ' CONFIG_AHBS1_BAR3 000 - hex 'Slave 1, BAR3 mask - 0 to disable ' CONFIG_AHBS1_MASK3 000 - boolean 'Slave 1, BAR3 ram type? (n = I/O type)' CONFIG_AHBS1_BARTYPE3 "y" - boolean 'Slave 1, BAR3 prefetchable? ' CONFIG_AHBS1_PF3 "n" - boolean 'Slave 1, BAR3 cacheable? ' CONFIG_AHBS1_CA3 "n" - fi - if [ "$CONFIG_AHBS_PASSTHRU_3" = "y" -o "$CONFIG_AHBS_PASSTHRU_4" = "y" ]; then - hex 'Slave 2, BAR0 ' CONFIG_AHBS2_BAR0 000 - hex 'Slave 2, BAR0 mask - 0 to disable ' CONFIG_AHBS2_MASK0 000 - boolean 'Slave 2, BAR0 ram type? (n = I/O type)' CONFIG_AHBS2_BARTYPE0 "y" - boolean 'Slave 2, BAR0 prefetchable? ' CONFIG_AHBS2_PF0 "n" - boolean 'Slave 2, BAR0 cacheable? ' CONFIG_AHBS2_CA0 "n" - hex 'Slave 2, BAR1 ' CONFIG_AHBS2_BAR1 000 - hex 'Slave 2, BAR1 mask - 0 to disable ' CONFIG_AHBS2_MASK1 000 - boolean 'Slave 2, BAR1 ram type? (n = I/O type)' CONFIG_AHBS2_BARTYPE1 "y" - boolean 'Slave 2, BAR1 prefetchable? ' CONFIG_AHBS2_PF1 "n" - boolean 'Slave 2, BAR1 cacheable? ' CONFIG_AHBS2_CA1 "n" - hex 'Slave 2, BAR2 ' CONFIG_AHBS2_BAR2 000 - hex 'Slave 2, BAR2 mask - 0 to disable ' CONFIG_AHBS2_MASK2 000 - boolean 'Slave 2, BAR2 ram type? (n = I/O type)' CONFIG_AHBS2_BARTYPE2 "y" - boolean 'Slave 2, BAR2 prefetchable? ' CONFIG_AHBS2_PF2 "n" - boolean 'Slave 2, BAR2 cacheable? ' CONFIG_AHBS2_CA2 "n" - hex 'Slave 2, BAR3 ' CONFIG_AHBS2_BAR3 000 - hex 'Slave 2, BAR3 mask - 0 to disable ' CONFIG_AHBS2_MASK3 000 - boolean 'Slave 2, BAR3 ram type? (n = I/O type)' CONFIG_AHBS2_BARTYPE3 "y" - boolean 'Slave 2, BAR3 prefetchable? ' CONFIG_AHBS2_PF3 "n" - boolean 'Slave 2, BAR3 cacheable? ' CONFIG_AHBS2_CA3 "n" - fi - if [ "$CONFIG_AHBS_PASSTHRU_4" = "y" ]; then - hex 'Slave 3, BAR0 ' CONFIG_AHBS3_BAR0 000 - hex 'Slave 3, BAR0 mask - 0 to disable ' CONFIG_AHBS3_MASK0 000 - boolean 'Slave 3, BAR0 ram type? (n = I/O type)' CONFIG_AHBS3_BARTYPE0 "y" - boolean 'Slave 3, BAR0 prefetchable? ' CONFIG_AHBS3_PF0 "n" - boolean 'Slave 3, BAR0 cacheable? ' CONFIG_AHBS3_CA0 "n" - hex 'Slave 3, BAR1 ' CONFIG_AHBS3_BAR1 000 - hex 'Slave 3, BAR1 mask - 0 to disable ' CONFIG_AHBS3_MASK1 000 - boolean 'Slave 3, BAR1 ram type? (n = I/O type)' CONFIG_AHBS3_BARTYPE1 "y" - boolean 'Slave 3, BAR1 prefetchable? ' CONFIG_AHBS3_PF1 "n" - boolean 'Slave 3, BAR1 cacheable? ' CONFIG_AHBS3_CA1 "n" - hex 'Slave 3, BAR2 ' CONFIG_AHBS3_BAR2 000 - hex 'Slave 3, BAR2 mask - 0 to disable ' CONFIG_AHBS3_MASK2 000 - boolean 'Slave 3, BAR2 ram type? (n = I/O type)' CONFIG_AHBS3_BARTYPE2 "y" - boolean 'Slave 3, BAR2 prefetchable? ' CONFIG_AHBS3_PF2 "n" - boolean 'Slave 3, BAR2 cacheable? ' CONFIG_AHBS3_CA2 "n" - hex 'Slave 3, BAR3 ' CONFIG_AHBS3_BAR3 000 - hex 'Slave 3, BAR3 mask - 0 to disable ' CONFIG_AHBS3_MASK3 000 - boolean 'Slave 3, BAR3 ram type? (n = I/O type)' CONFIG_AHBS3_BARTYPE3 "y" - boolean 'Slave 3, BAR3 prefetchable? ' CONFIG_AHBS3_PF3 "n" - boolean 'Slave 3, BAR3 cacheable? ' CONFIG_AHBS3_CA3 "n" - fi -endmenu diff --git a/lib/praesum/ahbpassthru/ahbpassthru.in.h b/lib/praesum/ahbpassthru/ahbpassthru.in.h deleted file mode 100644 index 5f440b0f..00000000 --- a/lib/praesum/ahbpassthru/ahbpassthru.in.h +++ /dev/null @@ -1,500 +0,0 @@ -#if defined CONFIG_AHBM_PASSTHRU_1 -#define CONFIG_AHBM_PT 1 -#elif defined CONFIG_AHBM_PASSTHRU_2 -#define CONFIG_AHBM_PT 2 -#else -#define CONFIG_AHBM_PT 0 -#endif - -#if defined CONFIG_AHBS_PASSTHRU_1 -#define CONFIG_AHBS_PT 1 -#elif defined CONFIG_AHBS_PASSTHRU_2 -#define CONFIG_AHBS_PT 2 -#elif defined CONFIG_AHBS_PASSTHRU_3 -#define CONFIG_AHBS_PT 3 -#elif defined CONFIG_AHBS_PASSTHRU_4 -#define CONFIG_AHBS_PT 4 -#else -#define CONFIG_AHBS_PT 0 -#endif - - -#ifndef CONFIG_AHBM0_BAR0 -#define CONFIG_AHBM0_BAR0 000 -#endif - -#ifndef CONFIG_AHBM0_MASK0 -#define CONFIG_AHBM0_MASK0 000 -#endif - -#ifndef CONFIG_AHBM0_BARTYPE0 -#define CONFIG_AHBM0_BARTYPE0 0 -#endif - -#ifndef CONFIG_AHBM0_PF0 -#define CONFIG_AHBM0_PF0 0 -#endif - -#ifndef CONFIG_AHBM0_CA0 -#define CONFIG_AHBM0_CA0 0 -#endif - -#ifndef CONFIG_AHBM0_BAR1 -#define CONFIG_AHBM0_BAR1 000 -#endif - -#ifndef CONFIG_AHBM0_MASK1 -#define CONFIG_AHBM0_MASK1 000 -#endif - -#ifndef CONFIG_AHBM0_BARTYPE1 -#define CONFIG_AHBM0_BARTYPE1 0 -#endif - -#ifndef CONFIG_AHBM0_PF1 -#define CONFIG_AHBM0_PF1 0 -#endif - -#ifndef CONFIG_AHBM0_CA1 -#define CONFIG_AHBM0_CA1 0 -#endif - -#ifndef CONFIG_AHBM0_BAR2 -#define CONFIG_AHBM0_BAR2 000 -#endif - -#ifndef CONFIG_AHBM0_MASK2 -#define CONFIG_AHBM0_MASK2 000 -#endif - -#ifndef CONFIG_AHBM0_BARTYPE2 -#define CONFIG_AHBM0_BARTYPE2 0 -#endif - -#ifndef CONFIG_AHBM0_PF2 -#define CONFIG_AHBM0_PF2 0 -#endif - -#ifndef CONFIG_AHBM0_CA2 -#define CONFIG_AHBM0_CA2 0 -#endif - -#ifndef CONFIG_AHBM0_BAR3 -#define CONFIG_AHBM0_BAR3 000 -#endif - -#ifndef CONFIG_AHBM0_MASK3 -#define CONFIG_AHBM0_MASK3 000 -#endif - -#ifndef CONFIG_AHBM0_BARTYPE3 -#define CONFIG_AHBM0_BARTYPE3 0 -#endif - -#ifndef CONFIG_AHBM0_PF3 -#define CONFIG_AHBM0_PF3 0 -#endif - -#ifndef CONFIG_AHBM0_CA3 -#define CONFIG_AHBM0_CA3 0 -#endif - -#ifndef CONFIG_AHBM1_BAR0 -#define CONFIG_AHBM1_BAR0 000 -#endif - -#ifndef CONFIG_AHBM1_MASK0 -#define CONFIG_AHBM1_MASK0 000 -#endif - -#ifndef CONFIG_AHBM1_BARTYPE0 -#define CONFIG_AHBM1_BARTYPE0 0 -#endif - -#ifndef CONFIG_AHBM1_PF0 -#define CONFIG_AHBM1_PF0 0 -#endif - -#ifndef CONFIG_AHBM1_CA0 -#define CONFIG_AHBM1_CA0 0 -#endif - -#ifndef CONFIG_AHBM1_BAR1 -#define CONFIG_AHBM1_BAR1 000 -#endif - -#ifndef CONFIG_AHBM1_MASK1 -#define CONFIG_AHBM1_MASK1 000 -#endif - -#ifndef CONFIG_AHBM1_BARTYPE1 -#define CONFIG_AHBM1_BARTYPE1 0 -#endif - -#ifndef CONFIG_AHBM1_PF1 -#define CONFIG_AHBM1_PF1 0 -#endif - -#ifndef CONFIG_AHBM1_CA1 -#define CONFIG_AHBM1_CA1 0 -#endif - -#ifndef CONFIG_AHBM1_BAR2 -#define CONFIG_AHBM1_BAR2 000 -#endif - -#ifndef CONFIG_AHBM1_MASK2 -#define CONFIG_AHBM1_MASK2 000 -#endif - -#ifndef CONFIG_AHBM1_BARTYPE2 -#define CONFIG_AHBM1_BARTYPE2 0 -#endif - -#ifndef CONFIG_AHBM1_PF2 -#define CONFIG_AHBM1_PF2 0 -#endif - -#ifndef CONFIG_AHBM1_CA2 -#define CONFIG_AHBM1_CA2 0 -#endif - -#ifndef CONFIG_AHBM1_BAR3 -#define CONFIG_AHBM1_BAR3 000 -#endif - -#ifndef CONFIG_AHBM1_MASK3 -#define CONFIG_AHBM1_MASK3 000 -#endif - -#ifndef CONFIG_AHBM1_BARTYPE3 -#define CONFIG_AHBM1_BARTYPE3 0 -#endif - -#ifndef CONFIG_AHBM1_PF3 -#define CONFIG_AHBM1_PF3 0 -#endif - -#ifndef CONFIG_AHBM1_CA3 -#define CONFIG_AHBM1_CA3 0 -#endif - -#ifndef CONFIG_AHBS0_BAR0 -#define CONFIG_AHBS0_BAR0 000 -#endif - -#ifndef CONFIG_AHBS0_MASK0 -#define CONFIG_AHBS0_MASK0 000 -#endif - -#ifndef CONFIG_AHBS0_BARTYPE0 -#define CONFIG_AHBS0_BARTYPE0 0 -#endif - -#ifndef CONFIG_AHBS0_PF0 -#define CONFIG_AHBS0_PF0 0 -#endif - -#ifndef CONFIG_AHBS0_CA0 -#define CONFIG_AHBS0_CA0 0 -#endif - -#ifndef CONFIG_AHBS0_BAR1 -#define CONFIG_AHBS0_BAR1 000 -#endif - -#ifndef CONFIG_AHBS0_MASK1 -#define CONFIG_AHBS0_MASK1 000 -#endif - -#ifndef CONFIG_AHBS0_BARTYPE1 -#define CONFIG_AHBS0_BARTYPE1 0 -#endif - -#ifndef CONFIG_AHBS0_PF1 -#define CONFIG_AHBS0_PF1 0 -#endif - -#ifndef CONFIG_AHBS0_CA1 -#define CONFIG_AHBS0_CA1 0 -#endif - -#ifndef CONFIG_AHBS0_BAR2 -#define CONFIG_AHBS0_BAR2 000 -#endif - -#ifndef CONFIG_AHBS0_MASK2 -#define CONFIG_AHBS0_MASK2 000 -#endif - -#ifndef CONFIG_AHBS0_BARTYPE2 -#define CONFIG_AHBS0_BARTYPE2 0 -#endif - -#ifndef CONFIG_AHBS0_PF2 -#define CONFIG_AHBS0_PF2 0 -#endif - -#ifndef CONFIG_AHBS0_CA2 -#define CONFIG_AHBS0_CA2 0 -#endif - -#ifndef CONFIG_AHBS0_BAR3 -#define CONFIG_AHBS0_BAR3 000 -#endif - -#ifndef CONFIG_AHBS0_MASK3 -#define CONFIG_AHBS0_MASK3 000 -#endif - -#ifndef CONFIG_AHBS0_BARTYPE3 -#define CONFIG_AHBS0_BARTYPE3 0 -#endif - -#ifndef CONFIG_AHBS0_PF3 -#define CONFIG_AHBS0_PF3 0 -#endif - -#ifndef CONFIG_AHBS0_CA3 -#define CONFIG_AHBS0_CA3 0 -#endif - -#ifndef CONFIG_AHBS1_BAR0 -#define CONFIG_AHBS1_BAR0 000 -#endif - -#ifndef CONFIG_AHBS1_MASK0 -#define CONFIG_AHBS1_MASK0 000 -#endif - -#ifndef CONFIG_AHBS1_BARTYPE0 -#define CONFIG_AHBS1_BARTYPE0 0 -#endif - -#ifndef CONFIG_AHBS1_PF0 -#define CONFIG_AHBS1_PF0 0 -#endif - -#ifndef CONFIG_AHBS1_CA0 -#define CONFIG_AHBS1_CA0 0 -#endif - -#ifndef CONFIG_AHBS1_BAR1 -#define CONFIG_AHBS1_BAR1 000 -#endif - -#ifndef CONFIG_AHBS1_MASK1 -#define CONFIG_AHBS1_MASK1 000 -#endif - -#ifndef CONFIG_AHBS1_BARTYPE1 -#define CONFIG_AHBS1_BARTYPE1 0 -#endif - -#ifndef CONFIG_AHBS1_PF1 -#define CONFIG_AHBS1_PF1 0 -#endif - -#ifndef CONFIG_AHBS1_CA1 -#define CONFIG_AHBS1_CA1 0 -#endif - -#ifndef CONFIG_AHBS1_BAR2 -#define CONFIG_AHBS1_BAR2 000 -#endif - -#ifndef CONFIG_AHBS1_MASK2 -#define CONFIG_AHBS1_MASK2 000 -#endif - -#ifndef CONFIG_AHBS1_BARTYPE2 -#define CONFIG_AHBS1_BARTYPE2 0 -#endif - -#ifndef CONFIG_AHBS1_PF2 -#define CONFIG_AHBS1_PF2 0 -#endif - -#ifndef CONFIG_AHBS1_CA2 -#define CONFIG_AHBS1_CA2 0 -#endif - -#ifndef CONFIG_AHBS1_BAR3 -#define CONFIG_AHBS1_BAR3 000 -#endif - -#ifndef CONFIG_AHBS1_MASK3 -#define CONFIG_AHBS1_MASK3 000 -#endif - -#ifndef CONFIG_AHBS1_BARTYPE3 -#define CONFIG_AHBS1_BARTYPE3 0 -#endif - -#ifndef CONFIG_AHBS1_PF3 -#define CONFIG_AHBS1_PF3 0 -#endif - -#ifndef CONFIG_AHBS1_CA3 -#define CONFIG_AHBS1_CA3 0 -#endif - -#ifndef CONFIG_AHBS2_BAR0 -#define CONFIG_AHBS2_BAR0 000 -#endif - -#ifndef CONFIG_AHBS2_MASK0 -#define CONFIG_AHBS2_MASK0 000 -#endif - -#ifndef CONFIG_AHBS2_BARTYPE0 -#define CONFIG_AHBS2_BARTYPE0 0 -#endif - -#ifndef CONFIG_AHBS2_PF0 -#define CONFIG_AHBS2_PF0 0 -#endif - -#ifndef CONFIG_AHBS2_CA0 -#define CONFIG_AHBS2_CA0 0 -#endif - -#ifndef CONFIG_AHBS2_BAR1 -#define CONFIG_AHBS2_BAR1 000 -#endif - -#ifndef CONFIG_AHBS2_MASK1 -#define CONFIG_AHBS2_MASK1 000 -#endif - -#ifndef CONFIG_AHBS2_BARTYPE1 -#define CONFIG_AHBS2_BARTYPE1 0 -#endif - -#ifndef CONFIG_AHBS2_PF1 -#define CONFIG_AHBS2_PF1 0 -#endif - -#ifndef CONFIG_AHBS2_CA1 -#define CONFIG_AHBS2_CA1 0 -#endif - -#ifndef CONFIG_AHBS2_BAR2 -#define CONFIG_AHBS2_BAR2 000 -#endif - -#ifndef CONFIG_AHBS2_MASK2 -#define CONFIG_AHBS2_MASK2 000 -#endif - -#ifndef CONFIG_AHBS2_BARTYPE2 -#define CONFIG_AHBS2_BARTYPE2 0 -#endif - -#ifndef CONFIG_AHBS2_PF2 -#define CONFIG_AHBS2_PF2 0 -#endif - -#ifndef CONFIG_AHBS2_CA2 -#define CONFIG_AHBS2_CA2 0 -#endif - -#ifndef CONFIG_AHBS2_BAR3 -#define CONFIG_AHBS2_BAR3 000 -#endif - -#ifndef CONFIG_AHBS2_MASK3 -#define CONFIG_AHBS2_MASK3 000 -#endif - -#ifndef CONFIG_AHBS2_BARTYPE3 -#define CONFIG_AHBS2_BARTYPE3 0 -#endif - -#ifndef CONFIG_AHBS2_PF3 -#define CONFIG_AHBS2_PF3 0 -#endif - -#ifndef CONFIG_AHBS2_CA3 -#define CONFIG_AHBS2_CA3 0 -#endif - -#ifndef CONFIG_AHBS3_BAR0 -#define CONFIG_AHBS3_BAR0 000 -#endif - -#ifndef CONFIG_AHBS3_MASK0 -#define CONFIG_AHBS3_MASK0 000 -#endif - -#ifndef CONFIG_AHBS3_BARTYPE0 -#define CONFIG_AHBS3_BARTYPE0 0 -#endif - -#ifndef CONFIG_AHBS3_PF0 -#define CONFIG_AHBS3_PF0 0 -#endif - -#ifndef CONFIG_AHBS3_CA0 -#define CONFIG_AHBS3_CA0 0 -#endif - -#ifndef CONFIG_AHBS3_BAR1 -#define CONFIG_AHBS3_BAR1 000 -#endif - -#ifndef CONFIG_AHBS3_MASK1 -#define CONFIG_AHBS3_MASK1 000 -#endif - -#ifndef CONFIG_AHBS3_BARTYPE1 -#define CONFIG_AHBS3_BARTYPE1 0 -#endif - -#ifndef CONFIG_AHBS3_PF1 -#define CONFIG_AHBS3_PF1 0 -#endif - -#ifndef CONFIG_AHBS3_CA1 -#define CONFIG_AHBS3_CA1 0 -#endif - -#ifndef CONFIG_AHBS3_BAR2 -#define CONFIG_AHBS3_BAR2 000 -#endif - -#ifndef CONFIG_AHBS3_MASK2 -#define CONFIG_AHBS3_MASK2 000 -#endif - -#ifndef CONFIG_AHBS3_BARTYPE2 -#define CONFIG_AHBS3_BARTYPE2 0 -#endif - -#ifndef CONFIG_AHBS3_PF2 -#define CONFIG_AHBS3_PF2 0 -#endif - -#ifndef CONFIG_AHBS3_CA2 -#define CONFIG_AHBS3_CA2 0 -#endif - -#ifndef CONFIG_AHBS3_BAR3 -#define CONFIG_AHBS3_BAR3 000 -#endif - -#ifndef CONFIG_AHBS3_MASK3 -#define CONFIG_AHBS3_MASK3 000 -#endif - -#ifndef CONFIG_AHBS3_BARTYPE3 -#define CONFIG_AHBS3_BARTYPE3 0 -#endif - -#ifndef CONFIG_AHBS3_PF3 -#define CONFIG_AHBS3_PF3 0 -#endif - -#ifndef CONFIG_AHBS3_CA3 -#define CONFIG_AHBS3_CA3 0 -#endif diff --git a/lib/praesum/ahbpassthru/ahbpassthru.in.vhd b/lib/praesum/ahbpassthru/ahbpassthru.in.vhd deleted file mode 100644 index 11dd6c29..00000000 --- a/lib/praesum/ahbpassthru/ahbpassthru.in.vhd +++ /dev/null @@ -1,147 +0,0 @@ --- Pass through port settings - constant CFG_AHBM_PT : integer := CONFIG_AHBM_PT; -- Number of Master pass through ports - constant CFG_AHBS_PT : integer := CONFIG_AHBS_PT; -- Number of Slave pass through ports - - constant CFG_AHBM0_BAR0 : integer := 16#CONFIG_AHBM0_BAR0#; -- BAR0 address - constant CFG_AHBM0_MASK0 : integer := 16#CONFIG_AHBM0_MASK0#; -- BAR0 mask - constant CFG_AHBM0_BARTYPE0 : integer := CONFIG_AHBM0_BARTYPE0; -- BAR0 Type '1' = ram, '0' = I/O - constant CFG_AHBM0_PF0 : integer := CONFIG_AHBM0_PF0; -- BAR0 Prefetchable - constant CFG_AHBM0_CA0 : integer := CONFIG_AHBM0_CA0; -- BAR0 Cacheable - - constant CFG_AHBM0_BAR1 : integer := 16#CONFIG_AHBM0_BAR1#; -- BAR1 address - constant CFG_AHBM0_MASK1 : integer := 16#CONFIG_AHBM0_MASK1#; -- BAR1 mask - constant CFG_AHBM0_BARTYPE1 : integer := CONFIG_AHBM0_BARTYPE1; -- BAR1 Type '1' = ram, '0' = I/O - constant CFG_AHBM0_PF1 : integer := CONFIG_AHBM0_PF1; -- BAR1 Prefetchable - constant CFG_AHBM0_CA1 : integer := CONFIG_AHBM0_CA1; -- BAR1 Cacheable - - constant CFG_AHBM0_BAR2 : integer := 16#CONFIG_AHBM0_BAR2#; -- BAR2 address - constant CFG_AHBM0_MASK2 : integer := 16#CONFIG_AHBM0_MASK2#; -- BAR2 mask - constant CFG_AHBM0_BARTYPE2 : integer := CONFIG_AHBM0_BARTYPE2; -- BAR2 Type '1' = ram, '0' = I/O - constant CFG_AHBM0_PF2 : integer := CONFIG_AHBM0_PF2; -- BAR2 Prefetchable - constant CFG_AHBM0_CA2 : integer := CONFIG_AHBM0_CA2; -- BAR2 Cacheable - - constant CFG_AHBM0_BAR3 : integer := 16#CONFIG_AHBM0_BAR3#; -- BAR3 address - constant CFG_AHBM0_MASK3 : integer := 16#CONFIG_AHBM0_MASK3#; -- BAR3 mask - constant CFG_AHBM0_BARTYPE3 : integer := CONFIG_AHBM0_BARTYPE3; -- BAR3 Type '1' = ram, '0' = I/O - constant CFG_AHBM0_PF3 : integer := CONFIG_AHBM0_PF3; -- BAR3 Prefetchable - constant CFG_AHBM0_CA3 : integer := CONFIG_AHBM0_CA3; -- BAR3 Cacheable - - constant CFG_AHBM1_BAR0 : integer := 16#CONFIG_AHBM1_BAR0#; -- BAR0 address - constant CFG_AHBM1_MASK0 : integer := 16#CONFIG_AHBM1_MASK0#; -- BAR0 mask - constant CFG_AHBM1_BARTYPE0 : integer := CONFIG_AHBM1_BARTYPE0; -- BAR0 Type '1' = ram, '0' = I/O - constant CFG_AHBM1_PF0 : integer := CONFIG_AHBM1_PF0; -- BAR0 Prefetchable - constant CFG_AHBM1_CA0 : integer := CONFIG_AHBM1_CA0; -- BAR0 Cacheable - - constant CFG_AHBM1_BAR1 : integer := 16#CONFIG_AHBM1_BAR1#; -- BAR1 address - constant CFG_AHBM1_MASK1 : integer := 16#CONFIG_AHBM1_MASK1#; -- BAR1 mask - constant CFG_AHBM1_BARTYPE1 : integer := CONFIG_AHBM1_BARTYPE1; -- BAR1 Type '1' = ram, '0' = I/O - constant CFG_AHBM1_PF1 : integer := CONFIG_AHBM1_PF1; -- BAR1 Prefetchable - constant CFG_AHBM1_CA1 : integer := CONFIG_AHBM1_CA1; -- BAR1 Cacheable - - constant CFG_AHBM1_BAR2 : integer := 16#CONFIG_AHBM1_BAR2#; -- BAR2 address - constant CFG_AHBM1_MASK2 : integer := 16#CONFIG_AHBM1_MASK2#; -- BAR2 mask - constant CFG_AHBM1_BARTYPE2 : integer := CONFIG_AHBM1_BARTYPE2; -- BAR2 Type '1' = ram, '0' = I/O - constant CFG_AHBM1_PF2 : integer := CONFIG_AHBM1_PF2; -- BAR2 Prefetchable - constant CFG_AHBM1_CA2 : integer := CONFIG_AHBM1_CA2; -- BAR2 Cacheable - - constant CFG_AHBM1_BAR3 : integer := 16#CONFIG_AHBM1_BAR3#; -- BAR3 address - constant CFG_AHBM1_MASK3 : integer := 16#CONFIG_AHBM1_MASK3#; -- BAR3 mask - constant CFG_AHBM1_BARTYPE3 : integer := CONFIG_AHBM1_BARTYPE3; -- BAR3 Type '1' = ram, '0' = I/O - constant CFG_AHBM1_PF3 : integer := CONFIG_AHBM1_PF3; -- BAR3 Prefetchable - constant CFG_AHBM1_CA3 : integer := CONFIG_AHBM1_CA3; -- BAR3 Cacheable - - constant CFG_AHBS0_BAR0 : integer := 16#CONFIG_AHBS0_BAR0#; -- BAR0 address - constant CFG_AHBS0_MASK0 : integer := 16#CONFIG_AHBS0_MASK0#; -- BAR0 mask - constant CFG_AHBS0_BARTYPE0 : integer := CONFIG_AHBS0_BARTYPE0; -- BAR0 Type '1' = ram, '0' = I/O - constant CFG_AHBS0_PF0 : integer := CONFIG_AHBS0_PF0; -- BAR0 Prefetchable - constant CFG_AHBS0_CA0 : integer := CONFIG_AHBS0_CA0; -- BAR0 Cacheable - - constant CFG_AHBS0_BAR1 : integer := 16#CONFIG_AHBS0_BAR1#; -- BAR1 address - constant CFG_AHBS0_MASK1 : integer := 16#CONFIG_AHBS0_MASK1#; -- BAR1 mask - constant CFG_AHBS0_BARTYPE1 : integer := CONFIG_AHBS0_BARTYPE1; -- BAR1 Type '1' = ram, '0' = I/O - constant CFG_AHBS0_PF1 : integer := CONFIG_AHBS0_PF1; -- BAR1 Prefetchable - constant CFG_AHBS0_CA1 : integer := CONFIG_AHBS0_CA1; -- BAR1 Cacheable - - constant CFG_AHBS0_BAR2 : integer := 16#CONFIG_AHBS0_BAR2#; -- BAR2 address - constant CFG_AHBS0_MASK2 : integer := 16#CONFIG_AHBS0_MASK2#; -- BAR2 mask - constant CFG_AHBS0_BARTYPE2 : integer := CONFIG_AHBS0_BARTYPE2; -- BAR2 Type '1' = ram, '0' = I/O - constant CFG_AHBS0_PF2 : integer := CONFIG_AHBS0_PF2; -- BAR2 Prefetchable - constant CFG_AHBS0_CA2 : integer := CONFIG_AHBS0_CA2; -- BAR2 Cacheable - - constant CFG_AHBS0_BAR3 : integer := 16#CONFIG_AHBS0_BAR3#; -- BAR3 address - constant CFG_AHBS0_MASK3 : integer := 16#CONFIG_AHBS0_MASK3#; -- BAR3 mask - constant CFG_AHBS0_BARTYPE3 : integer := CONFIG_AHBS0_BARTYPE3; -- BAR3 Type '1' = ram, '0' = I/O - constant CFG_AHBS0_PF3 : integer := CONFIG_AHBS0_PF3; -- BAR3 Prefetchable - constant CFG_AHBS0_CA3 : integer := CONFIG_AHBS0_CA3; -- BAR3 Cacheable - - constant CFG_AHBS1_BAR0 : integer := 16#CONFIG_AHBS1_BAR0#; -- BAR0 address - constant CFG_AHBS1_MASK0 : integer := 16#CONFIG_AHBS1_MASK0#; -- BAR0 mask - constant CFG_AHBS1_BARTYPE0 : integer := CONFIG_AHBS1_BARTYPE0; -- BAR0 Type '1' = ram, '0' = I/O - constant CFG_AHBS1_PF0 : integer := CONFIG_AHBS1_PF0; -- BAR0 Prefetchable - constant CFG_AHBS1_CA0 : integer := CONFIG_AHBS1_CA0; -- BAR0 Cacheable - - constant CFG_AHBS1_BAR1 : integer := 16#CONFIG_AHBS1_BAR1#; -- BAR1 address - constant CFG_AHBS1_MASK1 : integer := 16#CONFIG_AHBS1_MASK1#; -- BAR1 mask - constant CFG_AHBS1_BARTYPE1 : integer := CONFIG_AHBS1_BARTYPE1; -- BAR1 Type '1' = ram, '0' = I/O - constant CFG_AHBS1_PF1 : integer := CONFIG_AHBS1_PF1; -- BAR1 Prefetchable - constant CFG_AHBS1_CA1 : integer := CONFIG_AHBS1_CA1; -- BAR1 Cacheable - - constant CFG_AHBS1_BAR2 : integer := 16#CONFIG_AHBS1_BAR2#; -- BAR2 address - constant CFG_AHBS1_MASK2 : integer := 16#CONFIG_AHBS1_MASK2#; -- BAR2 mask - constant CFG_AHBS1_BARTYPE2 : integer := CONFIG_AHBS1_BARTYPE2; -- BAR2 Type '1' = ram, '0' = I/O - constant CFG_AHBS1_PF2 : integer := CONFIG_AHBS1_PF2; -- BAR2 Prefetchable - constant CFG_AHBS1_CA2 : integer := CONFIG_AHBS1_CA2; -- BAR2 Cacheable - - constant CFG_AHBS1_BAR3 : integer := 16#CONFIG_AHBS1_BAR3#; -- BAR3 address - constant CFG_AHBS1_MASK3 : integer := 16#CONFIG_AHBS1_MASK3#; -- BAR3 mask - constant CFG_AHBS1_BARTYPE3 : integer := CONFIG_AHBS1_BARTYPE3; -- BAR3 Type '1' = ram, '0' = I/O - constant CFG_AHBS1_PF3 : integer := CONFIG_AHBS1_PF3; -- BAR3 Prefetchable - constant CFG_AHBS1_CA3 : integer := CONFIG_AHBS1_CA3; -- BAR3 Cacheable - - constant CFG_AHBS2_BAR0 : integer := 16#CONFIG_AHBS2_BAR0#; -- BAR0 address - constant CFG_AHBS2_MASK0 : integer := 16#CONFIG_AHBS2_MASK0#; -- BAR0 mask - constant CFG_AHBS2_BARTYPE0 : integer := CONFIG_AHBS2_BARTYPE0; -- BAR0 Type '1' = ram, '0' = I/O - constant CFG_AHBS2_PF0 : integer := CONFIG_AHBS2_PF0; -- BAR0 Prefetchable - constant CFG_AHBS2_CA0 : integer := CONFIG_AHBS2_CA0; -- BAR0 Cacheable - - constant CFG_AHBS2_BAR1 : integer := 16#CONFIG_AHBS2_BAR1#; -- BAR1 address - constant CFG_AHBS2_MASK1 : integer := 16#CONFIG_AHBS2_MASK1#; -- BAR1 mask - constant CFG_AHBS2_BARTYPE1 : integer := CONFIG_AHBS2_BARTYPE1; -- BAR1 Type '1' = ram, '0' = I/O - constant CFG_AHBS2_PF1 : integer := CONFIG_AHBS2_PF1; -- BAR1 Prefetchable - constant CFG_AHBS2_CA1 : integer := CONFIG_AHBS2_CA1; -- BAR1 Cacheable - - constant CFG_AHBS2_BAR2 : integer := 16#CONFIG_AHBS2_BAR2#; -- BAR2 address - constant CFG_AHBS2_MASK2 : integer := 16#CONFIG_AHBS2_MASK2#; -- BAR2 mask - constant CFG_AHBS2_BARTYPE2 : integer := CONFIG_AHBS2_BARTYPE2; -- BAR2 Type '1' = ram, '0' = I/O - constant CFG_AHBS2_PF2 : integer := CONFIG_AHBS2_PF2; -- BAR2 Prefetchable - constant CFG_AHBS2_CA2 : integer := CONFIG_AHBS2_CA2; -- BAR2 Cacheable - - constant CFG_AHBS2_BAR3 : integer := 16#CONFIG_AHBS2_BAR3#; -- BAR3 address - constant CFG_AHBS2_MASK3 : integer := 16#CONFIG_AHBS2_MASK3#; -- BAR3 mask - constant CFG_AHBS2_BARTYPE3 : integer := CONFIG_AHBS2_BARTYPE3; -- BAR3 Type '1' = ram, '0' = I/O - constant CFG_AHBS2_PF3 : integer := CONFIG_AHBS2_PF3; -- BAR3 Prefetchable - constant CFG_AHBS2_CA3 : integer := CONFIG_AHBS2_CA3; -- BAR3 Cacheable - - constant CFG_AHBS3_BAR0 : integer := 16#CONFIG_AHBS3_BAR0#; -- BAR0 address - constant CFG_AHBS3_MASK0 : integer := 16#CONFIG_AHBS3_MASK0#; -- BAR0 mask - constant CFG_AHBS3_BARTYPE0 : integer := CONFIG_AHBS3_BARTYPE0; -- BAR0 Type '1' = ram, '0' = I/O - constant CFG_AHBS3_PF0 : integer := CONFIG_AHBS3_PF0; -- BAR0 Prefetchable - constant CFG_AHBS3_CA0 : integer := CONFIG_AHBS3_CA0; -- BAR0 Cacheable - - constant CFG_AHBS3_BAR1 : integer := 16#CONFIG_AHBS3_BAR1#; -- BAR1 address - constant CFG_AHBS3_MASK1 : integer := 16#CONFIG_AHBS3_MASK1#; -- BAR1 mask - constant CFG_AHBS3_BARTYPE1 : integer := CONFIG_AHBS3_BARTYPE1; -- BAR1 Type '1' = ram, '0' = I/O - constant CFG_AHBS3_PF1 : integer := CONFIG_AHBS3_PF1; -- BAR1 Prefetchable - constant CFG_AHBS3_CA1 : integer := CONFIG_AHBS3_CA1; -- BAR1 Cacheable - - constant CFG_AHBS3_BAR2 : integer := 16#CONFIG_AHBS3_BAR2#; -- BAR2 address - constant CFG_AHBS3_MASK2 : integer := 16#CONFIG_AHBS3_MASK2#; -- BAR2 mask - constant CFG_AHBS3_BARTYPE2 : integer := CONFIG_AHBS3_BARTYPE2; -- BAR2 Type '1' = ram, '0' = I/O - constant CFG_AHBS3_PF2 : integer := CONFIG_AHBS3_PF2; -- BAR2 Prefetchable - constant CFG_AHBS3_CA2 : integer := CONFIG_AHBS3_CA2; -- BAR2 Cacheable - - constant CFG_AHBS3_BAR3 : integer := 16#CONFIG_AHBS3_BAR3#; -- BAR3 address - constant CFG_AHBS3_MASK3 : integer := 16#CONFIG_AHBS3_MASK3#; -- BAR3 mask - constant CFG_AHBS3_BARTYPE3 : integer := CONFIG_AHBS3_BARTYPE3; -- BAR3 Type '1' = ram, '0' = I/O - constant CFG_AHBS3_PF3 : integer := CONFIG_AHBS3_PF3; -- BAR3 Prefetchable - constant CFG_AHBS3_CA3 : integer := CONFIG_AHBS3_CA3; -- BAR3 Cacheable diff --git a/lib/praesum/ahbpassthru/ahbpassthru_master.v b/lib/praesum/ahbpassthru/ahbpassthru_master.v deleted file mode 100644 index ed06399b..00000000 --- a/lib/praesum/ahbpassthru/ahbpassthru_master.v +++ /dev/null @@ -1,70 +0,0 @@ -//Pass through AHB master port to off-chip -module ahbpassthru_master - #( - parameter [31:0] hindex = 3, - parameter [31:0] hirqnum = 3, - parameter [31:0] NUMMASTER = 1, //Number of AHB masters - parameter [31:0] NUMIRQ = 32, //Number of interrupts - parameter [31:0] DATAWIDTH = 32 //Data bus width - ) - ( - //master inputs - input [0:NUMMASTER-1] hgrant, //bus grant - input hready, //transfer done - input [1:0] hresp, //response type - input [DATAWIDTH-1:0] hrdata, //read data bus - input hcache, //cacheable - input [NUMIRQ-1:0] hirq, //interrupt bus - //master outputs - output hbusreq, //bus request - output hlock, //lock request - output [1:0] htrans, //transfer type - output [31:0] haddr, //address bus - output hwrite, //read/write - output [2:0] hsize, //transfer size - output [2:0] hburst, //burst type - output [3:0] hprot, //protection control - output [DATAWIDTH-1:0] hwdata, //write data bus - output [NUMIRQ-1:0] hirq_o, //interrupt buss - - //pass-through ports - //pass through outputs - output [0:NUMMASTER-1] pt_hgrant, //bus grant - output pt_hready, //transfer done - output [1:0] pt_hresp, //response type - output [DATAWIDTH-1:0] pt_hrdata, //read data bus - output pt_hcache, //cacheable - output [NUMIRQ-1:0] pt_hirq, //interrupt bus - //pass through inputs - input pt_hbusreq,//bus request - input pt_hlock, //lock request - input [1:0] pt_htrans, //transfer type - input [31:0] pt_haddr, //address bus - input pt_hwrite, //read/write - input [2:0] pt_hsize, //transfer size - input [2:0] pt_hburst, //burst type - input [3:0] pt_hprot, //protection control - input [DATAWIDTH-1:0] pt_hwdata, //write data bus - input [NUMIRQ-1:0] pt_hirq_o //interrupt buss - ); - - - assign pt_hgrant = hgrant ; - assign pt_hready = hready ; - assign pt_hresp = hresp ; - assign pt_hrdata = hrdata ; - assign pt_hcache = hcache ; - assign pt_hirq = hirq ; - - assign hbusreq = pt_hbusreq; - assign hlock = pt_hlock ; - assign htrans = pt_htrans ; - assign haddr = pt_haddr ; - assign hwrite = pt_hwrite ; - assign hsize = pt_hsize ; - assign hburst = pt_hburst ; - assign hprot = pt_hprot ; - assign hwdata = pt_hwdata ; - assign hirq_o = pt_hirq_o ; - -endmodule diff --git a/lib/praesum/ahbpassthru/ahbpassthru_master_vhdl.vhd b/lib/praesum/ahbpassthru/ahbpassthru_master_vhdl.vhd deleted file mode 100644 index 69fd7770..00000000 --- a/lib/praesum/ahbpassthru/ahbpassthru_master_vhdl.vhd +++ /dev/null @@ -1,118 +0,0 @@ ---Pass through AHB master port to off-chip -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.config.all; -use grlib.stdlib.all; -use grlib.amba.all; -library praesum; -use praesum.ahbpassthru_vhdl.all; - -entity ahbpassthru_master_vhdl is - - generic( - hindex_set : integer := 3; - hbaseaddr : integer := 0; - hmask : integer := 16#fff#; - htype : integer := 1; -- '1' = AHB memory - -- '0' = AHB I/O - PREFETCHABLE : integer := 1; - CACHEABLE : integer := 1; - AHBDW : integer := 64 --Data bus width - ); - port( - --master inputs - hgrant : in std_logic; --bus grant - hready : in std_logic; --transfer done - hresp : in std_logic_vector(1 downto 0); --response type - hrdata : in std_logic_vector(AHBDW-1 downto 0); --read data bus - hcache : in std_ulogic; --cacheable - hirq : in std_logic; --interrupt - --master outputs - hbusreq : out std_logic; --bus request - hlock : out std_logic; --lock request - htrans : out std_logic_vector(1 downto 0); --transfer type - haddr : out std_logic_vector(31 downto 0); --address bus - hwrite : out std_logic; --read/write - hsize : out std_logic_vector(2 downto 0); --transfer size - hburst : out std_logic_vector(2 downto 0); --burst type - hprot : out std_logic_vector(3 downto 0); --protection control - hwdata : out std_logic_vector(AHBDW-1 downto 0);--write data bus - hirq_o : out std_logic; --interrupt - hconfig : out ahb_config_type; -- memory access reg. - hindex : out integer range 0 to NAHBMST-1; -- Used by the AHB controller to check - -- if the index is correct. - --pass-through ports - --pass through outputs - pt_hgrant : out std_logic; --bus grant - pt_hready : out std_logic; --transfer done - pt_hresp : out std_logic_vector(1 downto 0); --response type - pt_hrdata : out std_logic_vector(AHBDW-1 downto 0);--read data bus - pt_hcache : out std_logic; --cacheable - pt_hirq : out std_logic; --interrupt - --pass through inputs - pt_hbusreq : in std_logic; --bus request - pt_hlock : in std_logic; --lock request - pt_htrans : in std_logic_vector(1 downto 0); --transfer type - pt_haddr : in std_logic_vector(31 downto 0); --address bus - pt_hwrite : in std_logic; --read/write - pt_hsize : in std_logic_vector(2 downto 0); --transfer size - pt_hburst : in std_logic_vector(2 downto 0); --burst type - pt_hprot : in std_logic_vector(3 downto 0); --protection control - pt_hwdata : in std_logic_vector(AHBDW-1 downto 0); --write data bus - pt_hirq_o : in std_logic --interrupt - ); - -end; - -architecture rtl of ahbpassthru_master_vhdl is --- purpose: Copy input signals to outputs --- type : combinational --- inputs : * --- outputs: * - - constant RESERVED0 : integer := 0; -- Reserved field - constant VERSION : integer := 1; -- Core version - constant SELECTIRQ : integer := hindex_set; -- For now irq equals hindex - constant VENDOR : integer := 16#01#; -- Gaisler is the vendor for now - constant DEVICE : integer := 16#069#; -- Gaisler ATAHB Master for now - constant hconfig_0 : ahb_config_type := ( - 0 => ahb_device_reg ( VENDOR, DEVICE, RESERVED0, VERSION, SELECTIRQ), - 4 => ahb_ptbar ( hbaseaddr, PREFETCHABLE, CACHEABLE, hmask, htype), - others => (others => '0')); - -begin -- rtl of ahbpassthru_master_vhdl - - -- purpose: Copy AHB Master signals in/out of the module - -- type : combinational - -- inputs : hgrant, hready, hresp, hrdata, hcache, hirq, pt_hbusreq, - -- pt_hlock, pt_htrans, pt_haddr, pt_hwrite, pt_hsize, pt_hburst, pt_hprot, - -- pt_hwdata, pt_hirq_o - -- outputs: hbusreq, hlock, htrans, haddr, hwrite, hsize, hburst, hprot, hwdata, - -- hirq_o, pt_hgrant, pt_hready, pt_hresp, pt_hrdata, pt_hcache, pt_hirq - ahbpassthru: process (hgrant, hready, hresp, hrdata, hcache, hirq, pt_hbusreq, pt_hlock, pt_htrans, pt_haddr, pt_hwrite, pt_hsize, pt_hburst, pt_hprot, pt_hwdata) - begin -- process ahbpassthru - - pt_hgrant <= hgrant ; - pt_hready <= hready ; - pt_hresp <= hresp ; - pt_hrdata <= hrdata ; - pt_hcache <= hcache ; - pt_hirq <= hirq ; - - hbusreq <= pt_hbusreq; - hlock <= pt_hlock ; - htrans <= pt_htrans ; - haddr <= pt_haddr ; - hwrite <= pt_hwrite ; - hsize <= pt_hsize ; - hburst <= pt_hburst ; - hprot <= pt_hprot ; - hwdata <= pt_hwdata ; - hirq_o <= pt_hirq_o ; - - end process ahbpassthru; - hconfig <= hconfig_0; - hindex <= hindex_set; - -end rtl; diff --git a/lib/praesum/ahbpassthru/ahbpassthru_slave.v b/lib/praesum/ahbpassthru/ahbpassthru_slave.v deleted file mode 100644 index 80994b29..00000000 --- a/lib/praesum/ahbpassthru/ahbpassthru_slave.v +++ /dev/null @@ -1,84 +0,0 @@ -//Pass through AHB slave port to off-chip -module ahbpassthru_slave - #( - parameter [31:0] hindex = 3, - parameter [31:0] hirqnum = 3, - parameter [31:0] NUMSLAVE = 1, //Number of AHB slaves - parameter [31:0] NUMIRQ = 32, //Number of interrupts - parameter [31:0] NUMBANK = 1, //Number of Banks - parameter [31:0] DATAWIDTH = 32 //Data bus width - ) - ( - //Slave inputs - input hsel, //slave select - input [31:0] haddr, //slave address (byte addressing) - input hwrite, //read/write - input [1:0] htrans, //transfer type - input [2:0] hsize, //transfer size - input [2:0] hburst, //burst type - input [DATAWIDTH-1:0] hwdata, //write data - input [3:0] hprot, //protection control - input hready, //transfer done - input [3:0] hmaster, //current master - input hmastlock, //locked access - input [NUMBANK-1:0] hmbsel, //memory bank select - input hcache, //cacheable - input hirq, //interrupt - //Slave outputs - output hready_o, //transfer done - output [1:0] hresp, //response type - output [DATAWIDTH-1:0] hrdata, //read data - output [15:0] hsplit, //split completion - output hcache_o, //cacheable - output [NUMIRQ-1:0] hirq_o, //interrupt out - - //pass-through ports - //pass through outputs - output pt_hsel, //slave select - output [31:0] pt_haddr, //slave address (byte addressing) - output pt_hwrite, //read/write - output [1:0] pt_htrans, //transfer type - output [2:0] pt_hsize, //transfer size - output [2:0] pt_hburst, //burst type - output [DATAWIDTH-1:0] pt_hwdata, //write data - output [3:0] pt_hprot, //protection control - output pt_hready_o, //transfer done - output [3:0] pt_hmaster, //current master - output pt_hmastlock, //locked access - output [NUMBANK-1:0] pt_hmbsel, //memory bank select - output pt_hcache_o, //cacheable - output pt_hirq_o, //interrupt - //pass through inputs - input pt_hready, //transfer done - input [1:0] pt_hresp, //response type - input [DATAWIDTH-1:0] pt_hrdata, //read data - input [15:0] pt_hsplit, //split completion - input pt_hcache, //cacheable - input [NUMIRQ-1:0] pt_hirq //interrupt out - ); - - assign pt_hsel = hsel; - assign pt_haddr = haddr; - assign pt_hwrite = hwrite; - assign pt_htrans = htrans; - assign pt_hsize = hsize; - assign pt_hburst = hburst; - assign pt_hwdata = hwdata; - assign pt_hprot = hprot; - assign pt_hready_o = hready; - assign pt_hmaster = hmaster; - assign pt_hmastlock = hmastlock; - assign pt_hmbsel = hmbsel; - assign pt_hcache_o = hcache; - assign pt_hirq_o = hirq; - - assign hready_o = pt_hready; - assign hresp = pt_hresp; - assign hrdata = pt_hrdata; - assign hsplit = pt_hsplit; - assign hcache_o = pt_hcache; - assign hirq_o = pt_hirq; - - -endmodule - \ No newline at end of file diff --git a/lib/praesum/ahbpassthru/ahbpassthru_slave_vhdl.vhd b/lib/praesum/ahbpassthru/ahbpassthru_slave_vhdl.vhd deleted file mode 100644 index 9c330864..00000000 --- a/lib/praesum/ahbpassthru/ahbpassthru_slave_vhdl.vhd +++ /dev/null @@ -1,136 +0,0 @@ ---Pass through AHB slave port to off-chip -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.config.all; -use grlib.stdlib.all; -use grlib.amba.all; -library praesum; -use praesum.ahbpassthru_vhdl.all; - -entity ahbpassthru_slave_vhdl is - - generic( - hindex_set : integer := 0; - hbaseaddr : integer := 0; - hmask : integer := 16#fff#; - htype : integer := 1; -- '1' = AHB memory - -- '0' = AHB I/O - PREFETCHABLE : integer := 1; - CACHEABLE : integer := 1; - NAHBAMR : integer := 4; --Number of Bank Address registers - AHBDW : integer := 64 --Data bus width - ); - port( - --Slave inputs - hsel : in std_logic; --slave select - haddr : in std_logic_vector(31 downto 0); --slave address (byte addressing) - hwrite : in std_logic; --read/write - htrans : in std_logic_vector(1 downto 0); --transfer type - hsize : in std_logic_vector(2 downto 0); --transfer size - hburst : in std_logic_vector(2 downto 0); --burst type - hwdata : in std_logic_vector(AHBDW-1 downto 0); --write data - hprot : in std_logic_vector(3 downto 0); --protection control - hready : in std_logic; --transfer done - hmaster : in std_logic_vector(3 downto 0); --current master - hmastlock : in std_logic; --locked access - hmbsel : in std_logic_vector(0 to NAHBAMR-1); --memory bank select - hcache : in std_logic; --cacheable - hirq : in std_logic; --interrupt - --Slave outputs - hready_o : out std_logic; --transfer done - hresp : out std_logic_vector(1 downto 0); --response type - hrdata : out std_logic_vector(AHBDW-1 downto 0); --read data - hsplit : out std_logic_vector(15 downto 0); --split completion - hcache_o : out std_logic; --cacheable - hirq_o : out std_logic; --interrupt out - hconfig : out ahb_config_type; -- memory access reg. - hindex : out integer range 0 to NAHBSLV-1; - - --pass-through ports - --pass through outputs - pt_hsel : out std_logic; --slave select - pt_haddr : out std_logic_vector(31 downto 0); --slave address (byte addressing) - pt_hwrite : out std_logic; --read/write - pt_htrans : out std_logic_vector(1 downto 0); --transfer type - pt_hsize : out std_logic_vector(2 downto 0); --transfer size - pt_hburst : out std_logic_vector(2 downto 0); --burst type - pt_hwdata : out std_logic_vector(AHBDW-1 downto 0); --write data - pt_hprot : out std_logic_vector(3 downto 0); --protection control - pt_hready : out std_logic; --transfer done - pt_hmaster : out std_logic_vector(3 downto 0); --current master - pt_hmastlock : out std_logic; --locked access - pt_hmbsel : out std_logic_vector(0 to NAHBAMR-1); --memory bank select - pt_hcache : out std_logic; --cacheable - pt_hirq : out std_logic; --interrupt - --pass through inputs - pt_hready_o : in std_logic; --transfer done - pt_hresp : in std_logic_vector(1 downto 0); --response type - pt_hrdata : in std_logic_vector(AHBDW-1 downto 0); --read data - pt_hsplit : in std_logic_vector(15 downto 0); --split completion - pt_hcache_o : in std_logic; --cacheable - pt_hirq_o : in std_logic --interrupt - ); -end; - - -architecture rtl of ahbpassthru_slave_vhdl is --- purpose: Copy input signals to outputs --- type : combinational --- inputs : * --- outputs: * - - constant RESERVED0 : integer := 0; -- Reserved field - constant VERSION : integer := 1; -- Core version - constant SELECTIRQ : integer := hindex_set; -- For now irq equals hindex_set - constant VENDOR : integer := 16#01#; -- Gaisler is the vendor for now - constant DEVICE : integer := 16#068#; -- Gaisler AT AHB SLV for now - constant hconfig_0 : ahb_config_type := ( - 0 => ahb_device_reg ( VENDOR, DEVICE, RESERVED0, VERSION, SELECTIRQ), - 4 => ahb_ptbar ( hbaseaddr, PREFETCHABLE, CACHEABLE, hmask, htype), - others => (others => '0')); - -begin -- rtl of ahbpassthru_slave_vhdl - - -- purpose: Copy AHB Slave signals in/out of the module - -- type : combinational - -- inputs : hgrant, hready, hresp, hrdata, hcache, hirq, pt_hbusreq, - -- pt_hlock, pt_htrans, pt_haddr, pt_hwrite, pt_hsize, pt_hburst, pt_hprot, - -- pt_hwdata, pt_hirq_o - -- outputs: hbusreq, hlock, htrans, haddr, hwrite, hsize, hburst, hprot, hwdata, - -- hirq_o, pt_hgrant, pt_hready, pt_hresp, pt_hrdata, pt_hcache, pt_hirq - - ahbpassthru: process (hsel, haddr, hwrite, htrans, hsize, hburst, hwdata, - hprot, hready, hmaster, hmastlock, hmbsel, hcache, - hirq, pt_hready_o, pt_hresp, pt_hrdata, pt_hsplit, - pt_hcache_o, pt_hirq_o) - begin -- process ahbpassthru - pt_hsel <= hsel; - pt_haddr <= haddr; - pt_hwrite <= hwrite; - pt_htrans <= htrans; - pt_hsize <= hsize; - pt_hburst <= hburst; - pt_hwdata <= hwdata; - pt_hprot <= hprot; - pt_hready <= hready; - pt_hmaster <= hmaster; - pt_hmastlock <= hmastlock; - pt_hmbsel <= hmbsel; - pt_hcache <= hcache; - pt_hirq <= hirq; - - hready_o <= pt_hready_o; - hresp <= pt_hresp; - hrdata <= pt_hrdata; - hsplit <= pt_hsplit; - hcache_o <= pt_hcache_o; - hirq_o <= pt_hirq_o; - end process ahbpassthru; - hconfig <= hconfig_0; - hindex <= hindex_set; - -end rtl; - - - diff --git a/lib/praesum/ahbpassthru/ahbpassthru_verilog.vhd b/lib/praesum/ahbpassthru/ahbpassthru_verilog.vhd deleted file mode 100644 index 8466611b..00000000 --- a/lib/praesum/ahbpassthru/ahbpassthru_verilog.vhd +++ /dev/null @@ -1,115 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; - -package ahbpassthru_verilog is - - component ahbpassthru_master - generic( - hindex : integer := 3; - hirqnum : integer := 3; - NUMMASTER : integer := 1; --Number of AHB slaves - NUMIRQ : integer := 32; --Number of interrupts - DATAWIDTH : integer := 32 --Data bus width - ); - port( - --master inputs - hgrant : in std_logic_vector(0 to NUMMASTER-1); --bus grant - hready : in std_logic; --transfer done - hresp : in std_logic_vector(1 downto 0); --response type - hrdata : in std_logic_vector(DATAWIDTH-1 downto 0); --read data bus - hcache : in std_logic; --cacheable - hirq : in std_logic_vector(NUMIRQ-1 downto 0); --interrupt bus - --master outputs - hbusreq : out std_logic; --bus request - hlock : out std_logic; --lock request - htrans : out std_logic_vector(1 downto 0); --transfer type - haddr : out std_logic_vector(31 downto 0); --address bus - hwrite : out std_logic; --read/write - hsize : out std_logic_vector(2 downto 0); --transfer size - hburst : out std_logic_vector(2 downto 0); --burst type - hprot : out std_logic_vector(3 downto 0); --protection control - hwdata : out std_logic_vector(DATAWIDTH-1 downto 0);--write data bus - hirq_o : out std_logic_vector(NUMIRQ-1 downto 0); --interrupt buss - - --pass-through ports - --pass through outputs - pt_hgrant : out std_logic_vector(0 to NUMMASTER-1); --bus grant - pt_hready : out std_logic; --transfer done - pt_hresp : out std_logic_vector(1 downto 0); --response type - pt_hrdata : out std_logic_vector(DATAWIDTH-1 downto 0);--read data bus - pt_hcache : out std_logic; --cacheable - pt_hirq : out std_logic_vector(NUMIRQ-1 downto 0); --interrupt bus - --pass through inputs - pt_hbusreq : in std_logic; --bus request - pt_hlock : in std_logic; --lock request - pt_htrans : in std_logic_vector(1 downto 0); --transfer type - pt_haddr : in std_logic_vector(31 downto 0); --address bus - pt_hwrite : in std_logic; --read/write - pt_hsize : in std_logic_vector(2 downto 0); --transfer size - pt_hburst : in std_logic_vector(2 downto 0); --burst type - pt_hprot : in std_logic_vector(3 downto 0); --protection control - pt_hwdata : in std_logic_vector(DATAWIDTH-1 downto 0); --write data bus - pt_hirq_o : in std_logic_vector(NUMIRQ-1 downto 0) --interrupt buss - ); - end component; - - component ahbpassthru_slave - generic( - hindex : integer := 3; - hirqnum : integer := 3; - NUMSLAVE : integer := 1; --Number of AHB slaves - NUMIRQ : integer := 32; --Number of interrupts - NUMBANK : integer := 1; --Number of Banks - DATAWIDTH : integer := 32 --Data bus width - ); - port( - --Slave inputs - hsel : in std_logic; --slave select - haddr : in std_logic_vector(31 downto 0); --slave address (byte addressing) - hwrite : in std_logic; --read/write - htrans : in std_logic_vector(1 downto 0); --transfer type - hsize : in std_logic_vector(2 downto 0); --transfer size - hburst : in std_logic_vector(2 downto 0); --burst type - hwdata : in std_logic_vector(DATAWIDTH-1 downto 0); --write data - hprot : in std_logic_vector(3 downto 0); --protection control - hready : in std_logic; --transfer done - hmaster : in std_logic_vector(3 downto 0); --current master - hmastlock : in std_logic; --locked access - hmbsel : in std_logic_vector(NUMBANK-1 downto 0); --memory bank select - hcache : in std_logic; --cacheable - hirq : in std_logic; --interrupt - --Slave outputs - hready_o : out std_logic; --transfer done - hresp : out std_logic_vector(1 downto 0); --response type - hrdata : out std_logic_vector(DATAWIDTH-1 downto 0);--read data - hsplit : out std_logic_vector(15 downto 0); --split completion - hcache_o : out std_logic; --cacheable - hirq_o : out std_logic_vector(NUMIRQ-1 downto 0); --interrupt out - - --pass-through ports - --pass through outputs - pt_hsel : out std_logic; --slave select - pt_haddr : out std_logic_vector(31 downto 0); --slave address (byte addressing) - pt_hwrite : out std_logic; --read/write - pt_htrans : out std_logic_vector(1 downto 0); --transfer type - pt_hsize : out std_logic_vector(2 downto 0); --transfer size - pt_hburst : out std_logic_vector(2 downto 0); --burst type - pt_hwdata : out std_logic_vector(DATAWIDTH-1 downto 0);--write data - pt_hprot : out std_logic_vector(3 downto 0); --protection control - pt_hready_o : out std_logic; --transfer done - pt_hmaster : out std_logic_vector(3 downto 0); --current master - pt_hmastlock : out std_logic; --locked access - pt_hmbsel : out std_logic_vector(NUMBANK-1 downto 0); --memory bank select - pt_hcache_o : out std_logic; --cacheable - pt_hirq_o : out std_logic; --interrupt - --pass through inputs - pt_hready : in std_logic; --transfer done - pt_hresp : in std_logic_vector(1 downto 0); --response type - pt_hrdata : in std_logic_vector(DATAWIDTH-1 downto 0); --read data - pt_hsplit : in std_logic_vector(15 downto 0); --split completion - pt_hcache : in std_logic; --cacheable - pt_hirq : in std_logic_vector(NUMIRQ-1 downto 0) --interrupt out - ); - end component; - -end ahbpassthru_verilog; diff --git a/lib/praesum/ahbpassthru/ahbpassthru_vhdl.vhd b/lib/praesum/ahbpassthru/ahbpassthru_vhdl.vhd deleted file mode 100644 index 23dec5e9..00000000 --- a/lib/praesum/ahbpassthru/ahbpassthru_vhdl.vhd +++ /dev/null @@ -1,163 +0,0 @@ -library ieee; -use ieee.std_logic_1164.all; -library grlib; -use grlib.config.all; -use grlib.stdlib.all; -use grlib.amba.all; - -package ahbpassthru_vhdl is - - function ahb_ptbar(memaddr : ahb_addr_type; prefetch, cache : integer; - addrmask : ahb_addr_type; mem_io_select : integer) - return std_logic_vector; - - component ahbpassthru_master_vhdl - generic( - hindex_set : integer := 3; - hbaseaddr : integer := 0; - hmask : integer := 16#fff#; - htype : integer := 1; -- '1' = AHB memory - -- '0' = AHB I/O - PREFETCHABLE : integer := 1; - CACHEABLE : integer := 1; - AHBDW : integer := 64 --Data bus width - ); - port( - --master inputs - hgrant : in std_logic; --bus grant - hready : in std_logic; --transfer done - hresp : in std_logic_vector(1 downto 0); --response type - hrdata : in std_logic_vector(AHBDW-1 downto 0); --read data bus - hcache : in std_logic; --cacheable - hirq : in std_ulogic; --interrupt bus - --master outputs - hbusreq : out std_logic; --bus request - hlock : out std_logic; --lock request - htrans : out std_logic_vector(1 downto 0); --transfer type - haddr : out std_logic_vector(31 downto 0); --address bus - hwrite : out std_logic; --read/write - hsize : out std_logic_vector(2 downto 0); --transfer size - hburst : out std_logic_vector(2 downto 0); --burst type - hprot : out std_logic_vector(3 downto 0); --protection control - hwdata : out std_logic_vector(AHBDW-1 downto 0); --write data bus - hirq_o : out std_ulogic; --interrupt buss - hconfig : out ahb_config_type; -- memory access reg. - hindex : out integer range 0 to NAHBMST-1; -- debug info - - --pass-through ports - --pass through outputs - pt_hgrant : out std_logic; --bus grant - pt_hready : out std_logic; --transfer done - pt_hresp : out std_logic_vector(1 downto 0); --response type - pt_hrdata : out std_logic_vector(AHBDW-1 downto 0); --read data bus - pt_hcache : out std_logic; --cacheable - pt_hirq : out std_ulogic; --interrupt bus - --pass through inputs - pt_hbusreq : in std_logic; --bus request - pt_hlock : in std_logic; --lock request - pt_htrans : in std_logic_vector(1 downto 0); --transfer type - pt_haddr : in std_logic_vector(31 downto 0); --address bus - pt_hwrite : in std_logic; --read/write - pt_hsize : in std_logic_vector(2 downto 0); --transfer size - pt_hburst : in std_logic_vector(2 downto 0); --burst type - pt_hprot : in std_logic_vector(3 downto 0); --protection control - pt_hwdata : in std_logic_vector(AHBDW-1 downto 0); --write data bus - pt_hirq_o : in std_ulogic --interrupt buss - ); - end component; - - component ahbpassthru_slave_vhdl - generic( - hindex_set : integer := 0; - hbaseaddr : integer := 0; - hmask : integer := 16#fff#; - htype : integer := 1; -- '1' = AHB memory - -- '0' = AHB I/O - PREFETCHABLE : integer := 1; - CACHEABLE : integer := 1; - NAHBAMR : integer := 4; --Number of Bank Address registers - AHBDW : integer := 64 --Data bus width - ); - port( - --Slave inputs - hsel : in std_logic; --slave select - haddr : in std_logic_vector(31 downto 0); --slave address (byte addressing) - hwrite : in std_logic; --read/write - htrans : in std_logic_vector(1 downto 0); --transfer type - hsize : in std_logic_vector(2 downto 0); --transfer size - hburst : in std_logic_vector(2 downto 0); --burst type - hwdata : in std_logic_vector(AHBDW-1 downto 0); --write data - hprot : in std_logic_vector(3 downto 0); --protection control - hready : in std_logic; --transfer done - hmaster : in std_logic_vector(3 downto 0); --current master - hmastlock : in std_logic; --locked access - hmbsel : in std_logic_vector(0 to NAHBAMR-1); --memory bank select - hcache : in std_logic; --cacheable - hirq : in std_ulogic; --interrupt - --Slave outputs - hready_o : out std_logic; --transfer done - hresp : out std_logic_vector(1 downto 0); --response type - hrdata : out std_logic_vector(AHBDW-1 downto 0); --read data - hsplit : out std_logic_vector(15 downto 0); --split completion - hcache_o : out std_logic; --cacheable - hirq_o : out std_ulogic; --interrupt out - hconfig : out ahb_config_type; -- memory access reg. - hindex : out integer range 0 to NAHBSLV-1; -- debug info - - --pass-through ports - --pass through outputs - pt_hsel : out std_logic; --slave select - pt_haddr : out std_logic_vector(31 downto 0); --slave address (byte addressing) - pt_hwrite : out std_logic; --read/write - pt_htrans : out std_logic_vector(1 downto 0); --transfer type - pt_hsize : out std_logic_vector(2 downto 0); --transfer size - pt_hburst : out std_logic_vector(2 downto 0); --burst type - pt_hwdata : out std_logic_vector(AHBDW-1 downto 0); --write data - pt_hprot : out std_logic_vector(3 downto 0); --protection control - pt_hready : out std_logic; --transfer done - pt_hmaster : out std_logic_vector(3 downto 0); --current master - pt_hmastlock : out std_logic; --locked access - pt_hmbsel : out std_logic_vector(0 to NAHBAMR-1); --memory bank select - pt_hcache : out std_logic; --cacheable - pt_hirq : out std_ulogic; --interrupt - --pass through inputs - pt_hready_o : in std_logic; --transfer done - pt_hresp : in std_logic_vector(1 downto 0); --response type - pt_hrdata : in std_logic_vector(AHBDW-1 downto 0); --read data - pt_hsplit : in std_logic_vector(15 downto 0); --split completion - pt_hcache_o : in std_logic; --cacheable - pt_hirq_o : in std_ulogic --interrupt out - ); - end component; - -end ahbpassthru_vhdl; - -package body ahbpassthru_vhdl is - - function ahb_ptbar(memaddr : ahb_addr_type; prefetch, cache : integer; - addrmask : ahb_addr_type; mem_io_select : integer) - return std_logic_vector is - variable prefetch_ulogic : std_ulogic := '1'; -- Used for conversion from integer to std_ulogic - variable cache_ulogic : std_ulogic := '1'; -- Used for conversion from integer to std_ulogic - begin - if mem_io_select /= 0 then - if prefetch /= 0 then - prefetch_ulogic := '1'; - else - prefetch_ulogic := '0'; - end if; - - if cache /= 0 then - cache_ulogic := '1'; - else - cache_ulogic := '0'; - end if; - - return (ahb_membar(memaddr, prefetch_ulogic, cache_ulogic, addrmask)); - else - return (ahb_iobar(memaddr, addrmask)); - end if; - end; - - -end ahbpassthru_vhdl; diff --git a/lib/praesum/ahbpassthru/vhdlsyn.txt b/lib/praesum/ahbpassthru/vhdlsyn.txt deleted file mode 100644 index 35bb83ce..00000000 --- a/lib/praesum/ahbpassthru/vhdlsyn.txt +++ /dev/null @@ -1,4 +0,0 @@ -ahbpassthru_vhdl.vhd -ahbpassthru_master_vhdl.vhd -ahbpassthru_slave_vhdl.vhd - diff --git a/lib/praesum/dirs.txt b/lib/praesum/dirs.txt deleted file mode 100644 index a365b238..00000000 --- a/lib/praesum/dirs.txt +++ /dev/null @@ -1 +0,0 @@ -ahbpassthru diff --git a/lib/spw/comp/spwcomp.vhd b/lib/spw/comp/spwcomp.vhd index 07ac0028..d8fe4a26 100644 --- a/lib/spw/comp/spwcomp.vhd +++ b/lib/spw/comp/spwcomp.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ use ieee.std_logic_1164.all; package spwcomp is component grspwc2 is generic( - rmap : integer range 0 to 1 := 0; + rmap : integer range 0 to 2 := 0; rmapcrc : integer range 0 to 1 := 0; fifosize1 : integer range 4 to 32 := 32; fifosize2 : integer range 16 to 64 := 64; @@ -35,7 +35,9 @@ package spwcomp is tech : integer; input_type : integer range 0 to 4 := 0; output_type : integer range 0 to 2 := 0; - rxtx_sameclk : integer range 0 to 1 := 0); + rxtx_sameclk : integer range 0 to 1 := 0; + nodeaddr : integer range 0 to 255 := 254; + destkey : integer range 0 to 255 := 0); port( rst : in std_ulogic; clk : in std_ulogic; @@ -87,7 +89,8 @@ package spwcomp is clkdiv10 : in std_logic_vector(7 downto 0); --rmapen rmapen : in std_ulogic; - --rx ahb fifo + rmapnodeaddr : in std_logic_vector(7 downto 0); + --rx ahb fifo rxrenable : out std_ulogic; rxraddress : out std_logic_vector(4 downto 0); rxwrite : out std_ulogic; @@ -403,7 +406,7 @@ package spwcomp is sysfreq : integer := 10000; usegen : integer range 0 to 1 := 1; nsync : integer range 1 to 2 := 1; - rmap : integer range 0 to 1 := 0; + rmap : integer range 0 to 2 := 0; rmapcrc : integer range 0 to 1 := 0; fifosize1 : integer range 4 to 32 := 32; fifosize2 : integer range 16 to 64 := 64; @@ -551,7 +554,7 @@ package spwcomp is component grspw2_gen is generic( - rmap : integer range 0 to 1 := 0; + rmap : integer range 0 to 2 := 0; rmapcrc : integer range 0 to 1 := 0; fifosize1 : integer range 4 to 32 := 32; fifosize2 : integer range 16 to 64 := 64; @@ -566,7 +569,9 @@ package spwcomp is rxtx_sameclk : integer range 0 to 1 := 0; ft : integer range 0 to 2 := 0; techfifo : integer range 0 to 1 := 1; - memtech : integer := 0); + memtech : integer := 0; + nodeaddr : integer range 0 to 255 := 254; + destkey : integer range 0 to 255 := 0); port( rst : in std_ulogic; clk : in std_ulogic; @@ -621,6 +626,7 @@ package spwcomp is testen : in std_ulogic := '0'; --rmapen rmapen : in std_ulogic; + rmapnodeaddr : in std_logic_vector(7 downto 0); --parallel rx data out rxdav : out std_ulogic; rxdataout : out std_logic_vector(8 downto 0) diff --git a/lib/spw/wrapper/grspw2_gen.vhd b/lib/spw/wrapper/grspw2_gen.vhd index 56248da5..b1aa3231 100644 --- a/lib/spw/wrapper/grspw2_gen.vhd +++ b/lib/spw/wrapper/grspw2_gen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ use spw.spwcomp.all; entity grspw2_gen is generic( - rmap : integer range 0 to 1 := 0; + rmap : integer range 0 to 2 := 0; rmapcrc : integer range 0 to 1 := 0; fifosize1 : integer range 4 to 32 := 32; fifosize2 : integer range 16 to 64 := 64; @@ -48,7 +48,10 @@ entity grspw2_gen is rxtx_sameclk : integer range 0 to 1 := 0; ft : integer range 0 to 2 := 0; techfifo : integer range 0 to 1 := 1; - memtech : integer := 0); + memtech : integer := 0; + nodeaddr : integer range 0 to 255 := 254; + destkey : integer range 0 to 255 := 0 + ); port( rst : in std_ulogic; clk : in std_ulogic; @@ -103,6 +106,7 @@ entity grspw2_gen is testen : in std_ulogic := '0'; --rmapen rmapen : in std_ulogic; + rmapnodeaddr : in std_logic_vector(7 downto 0); --parallel rx data out rxdav : out std_ulogic; rxdataout : out std_logic_vector(8 downto 0); @@ -171,7 +175,9 @@ begin tech => tech, input_type => input_type, output_type => output_type, - rxtx_sameclk => rxtx_sameclk) + rxtx_sameclk => rxtx_sameclk, + nodeaddr => nodeaddr, + destkey => destkey) port map( rst => rst, clk => clk, @@ -223,6 +229,7 @@ begin clkdiv10 => clkdiv10, --rmapen rmapen => rmapen, + rmapnodeaddr => rmapnodeaddr, --rx ahb fifo rxrenable => rxrenable, rxraddress => rxraddress, @@ -282,7 +289,7 @@ begin txrdata, clk, txwrite, txwaddress(fabits1-1 downto 0), txwdata, testin); --RMAP Buffer - rmap_ram : if (rmap = 1) generate + rmap_ram : if (rmap /= 0) generate ram0 : syncram_2p generic map(memtech, rfifo, 8) port map(clk, rmrenable, rmraddress(rfifo-1 downto 0), rmrdata, clk, rmwrite, rmwaddress(rfifo-1 downto 0), @@ -309,7 +316,7 @@ begin txrdata, clk, txwrite, txwaddress(fabits1-1 downto 0), txwdata, open, testin); --RMAP Buffer - rmap_ram : if (rmap = 1) generate + rmap_ram : if (rmap /= 0) generate ram0 : syncram_2pft generic map(memtech, rfifo, 8, 0, 0, 2) port map(clk, rmrenable, rmraddress(rfifo-1 downto 0), rmrdata, clk, rmwrite, rmwaddress(rfifo-1 downto 0), diff --git a/lib/spw/wrapper/grspw_codec_gen.vhd b/lib/spw/wrapper/grspw_codec_gen.vhd index f7316349..8861a106 100644 --- a/lib/spw/wrapper/grspw_codec_gen.vhd +++ b/lib/spw/wrapper/grspw_codec_gen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/spw/wrapper/grspw_gen.vhd b/lib/spw/wrapper/grspw_gen.vhd index 49869404..b477505e 100644 --- a/lib/spw/wrapper/grspw_gen.vhd +++ b/lib/spw/wrapper/grspw_gen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -290,7 +290,7 @@ begin txrdata, clk, txwrite, txwaddress(fabits1-1 downto 0), txwdata); --RMAP Buffer - rmap_ram : if (rmap = 1) generate + rmap_ram : if (rmap /= 0) generate ram0 : syncram_2p generic map(memtech, rfifo, 8) port map(clk, rmrenablex, rmraddress(rfifo-1 downto 0), rmrdata, clk, rmwrite, rmwaddress(rfifo-1 downto 0), @@ -317,7 +317,7 @@ begin txrdata, clk, txwrite, txwaddress(fabits1-1 downto 0), txwdata); --RMAP Buffer - rmap_ram : if (rmap = 1) generate + rmap_ram : if (rmap /= 0) generate ram0 : syncram_2pft generic map(memtech, rfifo, 8, 0, 0, 2) port map(clk, rmrenablex, rmraddress(rfifo-1 downto 0), rmrdata, clk, rmwrite, rmwaddress(rfifo-1 downto 0), diff --git a/lib/tech/atc18/components/atmel_components.vhd b/lib/tech/atc18/components/atmel_components.vhd index c5484c46..67d4ed1a 100644 --- a/lib/tech/atc18/components/atmel_components.vhd +++ b/lib/tech/atc18/components/atmel_components.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/tech/atc18/components/atmel_simprims.vhd b/lib/tech/atc18/components/atmel_simprims.vhd index aaccc091..5329f4bc 100644 --- a/lib/tech/atc18/components/atmel_simprims.vhd +++ b/lib/tech/atc18/components/atmel_simprims.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/tech/umc18/components/umc_components.vhd b/lib/tech/umc18/components/umc_components.vhd index 8a8a653e..c55151a1 100644 --- a/lib/tech/umc18/components/umc_components.vhd +++ b/lib/tech/umc18/components/umc_components.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/tech/umc18/components/umc_simprims.vhd b/lib/tech/umc18/components/umc_simprims.vhd index 40f3c143..c844d1a7 100644 --- a/lib/tech/umc18/components/umc_simprims.vhd +++ b/lib/tech/umc18/components/umc_simprims.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/tech/unisim/gr/unisim_VCOMP.vhd b/lib/tech/unisim/gr/unisim_VCOMP.vhd index ce32b961..778b2ce4 100644 --- a/lib/tech/unisim/gr/unisim_VCOMP.vhd +++ b/lib/tech/unisim/gr/unisim_VCOMP.vhd @@ -2,7 +2,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -28,6 +28,51 @@ library ieee; use ieee.std_logic_1164.all; package vcomponents is + +-- synopsys translate_off + +----------------------------------------- +----------- FPGA Globals -------------- +----------------------------------------- +signal GSR : std_logic := '0'; +signal GTS : std_logic := '0'; +signal GWE : std_logic := '0'; +signal PLL_LOCKG : std_logic := 'H'; +signal PROGB_GLBL : std_logic := '0'; +signal CCLKO_GLBL : std_logic := 'H'; + +----------------------------------------- +----------- CPLD Globals -------------- +----------------------------------------- +signal PRLD : std_logic := '0'; + +----------------------------------------- +----------- JTAG Globals -------------- +----------------------------------------- +signal JTAG_TDO_GLBL : std_logic; +signal JTAG_TDI_GLBL : std_logic := '0'; +signal JTAG_TMS_GLBL : std_logic := '0'; +signal JTAG_TCK_GLBL : std_logic := '0'; +signal JTAG_TRST_GLBL : std_logic := '0'; + +signal JTAG_CAPTURE_GLBL : std_logic := '0'; +signal JTAG_RESET_GLBL : std_logic := '1'; +signal JTAG_SHIFT_GLBL : std_logic := '1'; +signal JTAG_UPDATE_GLBL : std_logic := '0'; +signal JTAG_RUNTEST_GLBL : std_logic := '0'; + +signal JTAG_SEL1_GLBL : std_logic := '0'; +signal JTAG_SEL2_GLBL : std_logic := '0'; +signal JTAG_SEL3_GLBL : std_logic := '0'; +signal JTAG_SEL4_GLBL : std_logic := '0'; + +signal JTAG_USER_TDO1_GLBL : std_logic := 'Z'; +signal JTAG_USER_TDO2_GLBL : std_logic := 'Z'; +signal JTAG_USER_TDO3_GLBL : std_logic := 'Z'; +signal JTAG_USER_TDO4_GLBL : std_logic := 'Z'; + +-- synopsys translate_on + component ramb4_s16 port ( do : out std_logic_vector (15 downto 0); addr : in std_logic_vector (7 downto 0); @@ -1379,6 +1424,63 @@ end component; ); end component; + ----- component PLLE2_ADV ----- + component PLLE2_ADV + generic ( + BANDWIDTH : string := "OPTIMIZED"; + CLKFBOUT_MULT : integer := 5; + CLKFBOUT_PHASE : real := 0.0; + CLKIN1_PERIOD : real := 0.0; + CLKIN2_PERIOD : real := 0.0; + CLKOUT0_DIVIDE : integer := 1; + CLKOUT0_DUTY_CYCLE : real := 0.5; + CLKOUT0_PHASE : real := 0.0; + CLKOUT1_DIVIDE : integer := 1; + CLKOUT1_DUTY_CYCLE : real := 0.5; + CLKOUT1_PHASE : real := 0.0; + CLKOUT2_DIVIDE : integer := 1; + CLKOUT2_DUTY_CYCLE : real := 0.5; + CLKOUT2_PHASE : real := 0.0; + CLKOUT3_DIVIDE : integer := 1; + CLKOUT3_DUTY_CYCLE : real := 0.5; + CLKOUT3_PHASE : real := 0.0; + CLKOUT4_DIVIDE : integer := 1; + CLKOUT4_DUTY_CYCLE : real := 0.5; + CLKOUT4_PHASE : real := 0.0; + CLKOUT5_DIVIDE : integer := 1; + CLKOUT5_DUTY_CYCLE : real := 0.5; + CLKOUT5_PHASE : real := 0.0; + COMPENSATION : string := "ZHOLD"; + DIVCLK_DIVIDE : integer := 1; + REF_JITTER1 : real := 0.0; + REF_JITTER2 : real := 0.0; + STARTUP_WAIT : string := "FALSE" + ); + port ( + CLKFBOUT : out std_ulogic := '0'; + CLKOUT0 : out std_ulogic := '0'; + CLKOUT1 : out std_ulogic := '0'; + CLKOUT2 : out std_ulogic := '0'; + CLKOUT3 : out std_ulogic := '0'; + CLKOUT4 : out std_ulogic := '0'; + CLKOUT5 : out std_ulogic := '0'; + DO : out std_logic_vector (15 downto 0); + DRDY : out std_ulogic := '0'; + LOCKED : out std_ulogic := '0'; + CLKFBIN : in std_ulogic; + CLKIN1 : in std_ulogic; + CLKIN2 : in std_ulogic; + CLKINSEL : in std_ulogic; + DADDR : in std_logic_vector(6 downto 0); + DCLK : in std_ulogic; + DEN : in std_ulogic; + DI : in std_logic_vector(15 downto 0); + DWE : in std_ulogic; + PWRDWN : in std_ulogic; + RST : in std_ulogic + ); + end component; + component BUFGMUX port (O : out std_logic; I0, I1, S : in std_logic); end component; component BUFG port (O : out std_logic; I : in std_logic); end component; component BUFGP port (O : out std_logic; I : in std_logic); end component; @@ -1510,6 +1612,7 @@ end component; ); end component; + component IBUFDS_LVDS_25 port ( O : out std_ulogic; I : in std_ulogic; @@ -2784,6 +2887,26 @@ component XOR2 ); end component; +component BSCANE2 + generic ( + DISABLE_JTAG : string := "FALSE"; + JTAG_CHAIN : integer := 1 + ); + port ( + CAPTURE : out std_ulogic := 'H'; + DRCK : out std_ulogic := 'H'; + RESET : out std_ulogic := 'H'; + RUNTEST : out std_ulogic := 'L'; + SEL : out std_ulogic := 'L'; + SHIFT : out std_ulogic := 'L'; + TCK : out std_ulogic := 'L'; + TDI : out std_ulogic := 'L'; + TMS : out std_ulogic := 'L'; + UPDATE : out std_ulogic := 'L'; + TDO : in std_ulogic := 'X' + ); +end component; + component BSCAN_SPARTAN6 generic ( JTAG_CHAIN : integer := 1 diff --git a/lib/tech/unisim/gr/unisim_VITAL.vhd b/lib/tech/unisim/gr/unisim_VITAL.vhd index 3a797219..fd3a7dbc 100644 --- a/lib/tech/unisim/gr/unisim_VITAL.vhd +++ b/lib/tech/unisim/gr/unisim_VITAL.vhd @@ -158,6 +158,36 @@ end; library ieee; use ieee.std_logic_1164.all; +entity BSCANE2 is + generic ( + DISABLE_JTAG : string := "FALSE"; + JTAG_CHAIN : integer := 1 + ); + port ( + CAPTURE : out std_ulogic := 'H'; + DRCK : out std_ulogic := 'H'; + RESET : out std_ulogic := 'H'; + RUNTEST : out std_ulogic := 'L'; + SEL : out std_ulogic := 'L'; + SHIFT : out std_ulogic := 'L'; + TCK : out std_ulogic := 'L'; + TDI : out std_ulogic := 'L'; + TMS : out std_ulogic := 'L'; + UPDATE : out std_ulogic := 'L'; + TDO : in std_ulogic := 'X' + ); +end ; + +architecture behav of BSCANE2 is +begin + CAPTURE <= '0'; DRCK <= '0'; RUNTEST <= '0'; + RESET <= '0'; SEL <= '0'; TCK <= '0'; TMS <= '0'; + SHIFT <= '0'; TDI <= '0'; UPDATE <= '0'; +end; + +library ieee; +use ieee.std_logic_1164.all; + entity BSCAN_VIRTEX6 is generic ( DISABLE_JTAG : boolean := FALSE; @@ -313,6 +343,30 @@ begin o <= old; end; +library ieee; use ieee.std_logic_1164.all; +entity IBUFGDS_LVDS_15 is + port (O : out std_logic; I, IB : in std_logic); end; +architecture beh of IBUFGDS_LVDS_15 is +signal old : std_ulogic; +begin + + old <= '1' after 1 ns when (to_X01(I) = '1') and (to_X01(IB) = '0') else + '0' after 1 ns when (to_X01(I) = '0') and (to_X01(IB) = '1') else old; + o <= old; +end; + +library ieee; use ieee.std_logic_1164.all; +entity IBUFGDS_LVDS_18 is + port (O : out std_logic; I, IB : in std_logic); end; +architecture beh of IBUFGDS_LVDS_18 is +signal old : std_ulogic; +begin + + old <= '1' after 1 ns when (to_X01(I) = '1') and (to_X01(IB) = '0') else + '0' after 1 ns when (to_X01(I) = '0') and (to_X01(IB) = '1') else old; + o <= old; +end; + library ieee; use ieee.std_logic_1164.all; entity IBUFGDS_LVDS_25 is port (O : out std_logic; I, IB : in std_logic); end; @@ -17602,7 +17656,7 @@ architecture ARAMB36_INTERNAL_V of ARAMB36_INTERNAL is ssrb_dly <= SSRB after 0 ps; wea_dly <= WEA after 0 ps; web_dly <= WEB after 0 ps; - gsr_dly <= GSR after 0 ps; + gsr_dly <= unisim.VCOMPONENTS.GSR after 0 ps; regclka_dly <= REGCLKA after 0 ps; regclkb_dly <= REGCLKB after 0 ps; @@ -30450,7 +30504,7 @@ architecture ARAMB36_INTERNAL_V of ARAMB36_INTERNAL is ssrb_dly <= SSRB after 0 ps; wea_dly <= WEA after 0 ps; web_dly <= WEB after 0 ps; - gsr_dly <= GSR after 0 ps; + gsr_dly <= unisim.VCOMPONENTS.GSR after 0 ps; regclka_dly <= REGCLKA after 0 ps; regclkb_dly <= REGCLKB after 0 ps; @@ -33509,6 +33563,4271 @@ begin end IBUFDS_GTXE1_V; +library IEEE; +use IEEE.STD_LOGIC_1164.all; +use IEEE.STD_LOGIC_SIGNED.all; +use IEEE.NUMERIC_STD.all; +library STD; +use STD.TEXTIO.all; + + +library unisim; +use unisim.VPKG.all; +use unisim.VCOMPONENTS.all; + +entity PLLE2_ADV is +generic ( + + BANDWIDTH : string := "OPTIMIZED"; + CLKFBOUT_MULT : integer := 5; + CLKFBOUT_PHASE : real := 0.0; + CLKIN1_PERIOD : real := 0.0; + CLKIN2_PERIOD : real := 0.0; + CLKOUT0_DIVIDE : integer := 1; + CLKOUT0_DUTY_CYCLE : real := 0.5; + CLKOUT0_PHASE : real := 0.0; + CLKOUT1_DIVIDE : integer := 1; + CLKOUT1_DUTY_CYCLE : real := 0.5; + CLKOUT1_PHASE : real := 0.0; + CLKOUT2_DIVIDE : integer := 1; + CLKOUT2_DUTY_CYCLE : real := 0.5; + CLKOUT2_PHASE : real := 0.0; + CLKOUT3_DIVIDE : integer := 1; + CLKOUT3_DUTY_CYCLE : real := 0.5; + CLKOUT3_PHASE : real := 0.0; + CLKOUT4_DIVIDE : integer := 1; + CLKOUT4_DUTY_CYCLE : real := 0.5; + CLKOUT4_PHASE : real := 0.0; + CLKOUT5_DIVIDE : integer := 1; + CLKOUT5_DUTY_CYCLE : real := 0.5; + CLKOUT5_PHASE : real := 0.0; + COMPENSATION : string := "ZHOLD"; + DIVCLK_DIVIDE : integer := 1; + REF_JITTER1 : real := 0.0; + REF_JITTER2 : real := 0.0; + STARTUP_WAIT : string := "FALSE" + ); +port ( + CLKFBOUT : out std_ulogic := '0'; + CLKOUT0 : out std_ulogic := '0'; + CLKOUT1 : out std_ulogic := '0'; + CLKOUT2 : out std_ulogic := '0'; + CLKOUT3 : out std_ulogic := '0'; + CLKOUT4 : out std_ulogic := '0'; + CLKOUT5 : out std_ulogic := '0'; + DO : out std_logic_vector (15 downto 0); + DRDY : out std_ulogic := '0'; + LOCKED : out std_ulogic := '0'; + CLKFBIN : in std_ulogic; + CLKIN1 : in std_ulogic; + CLKIN2 : in std_ulogic; + CLKINSEL : in std_ulogic; + DADDR : in std_logic_vector(6 downto 0); + DCLK : in std_ulogic; + DEN : in std_ulogic; + DI : in std_logic_vector(15 downto 0); + DWE : in std_ulogic; + PWRDWN : in std_ulogic; + RST : in std_ulogic + ); +end PLLE2_ADV; + + +-- Architecture body -- + +architecture PLLE2_ADV_V of PLLE2_ADV is + + --------------------------------------------------------------------------- + -- Function SLV_TO_INT converts a std_logic_vector TO INTEGER + --------------------------------------------------------------------------- + function SLV_TO_INT(SLV: in std_logic_vector + ) return integer is + + variable int : integer; + begin + int := 0; + for i in SLV'high downto SLV'low loop + int := int * 2; + if SLV(i) = '1' then + int := int + 1; + end if; + end loop; + return int; + end; + + --------------------------------------------------------------------------- + -- Function ADDR_IS_VALID checks for the validity of the argument. A FALSE + -- is returned if any argument bit is other than a '0' or '1'. + --------------------------------------------------------------------------- + function ADDR_IS_VALID ( + SLV : in std_logic_vector + ) return boolean is + + variable IS_VALID : boolean := TRUE; + + begin + for I in SLV'high downto SLV'low loop + if (SLV(I) /= '0' AND SLV(I) /= '1') then + IS_VALID := FALSE; + end if; + end loop; + return IS_VALID; + end ADDR_IS_VALID; + + function real2int( real_in : in real) return integer is + variable int_value : integer; + variable int_value1 : integer; + variable tmps : time := 1 ps; + variable tmps1 : real; + + begin + if (real_in < 1.00000 and real_in > -1.00000) then + int_value1 := 0; + else + tmps := real_in * 1 ns; + int_value := tmps / 1 ns; + tmps1 := real (int_value); + if ( tmps1 > real_in) then + int_value1 := int_value - 1 ; + else + int_value1 := int_value; + end if; + end if; + return int_value1; + end real2int; + + + procedure clkout_dly_cal (clkout_dly : out std_logic_vector(5 downto 0); + clkpm_sel : out std_logic_vector(2 downto 0); + clkdiv : in integer; + clk_ps : in real; + clk_ps_name : in string ) + is + variable clk_dly_rl : real; + variable clk_dly_rem : real; + variable clk_dly_int : integer; + variable clk_dly_int_rl : real; + variable clkdiv_real : real; + variable clkpm_sel_rl : real; + variable clk_ps_rl : real; + variable Message : line; + begin + + clkdiv_real := real(clkdiv); + if (clk_ps < 0.0) then + clk_dly_rl := (360.0 + clk_ps) * clkdiv_real / 360.0; + else + clk_dly_rl := clk_ps * clkdiv_real / 360.0; + end if; + clk_dly_int := real2int (clk_dly_rl); + + if (clk_dly_int > 63) then + Write ( Message, string'(" Warning : Attribute ")); + Write ( Message, clk_ps_name ); + Write ( Message, string'(" of PLLE2_ADV is set to ")); + Write ( Message, clk_ps); + Write ( Message, string'(". Required phase shifting can not be reached since it is over the maximum phase shifting ability of PLLE2_ADV")); + Write ( Message, '.' & LF ); + assert false report Message.all severity warning; + DEALLOCATE (Message); + clkout_dly := "111111"; + else + clkout_dly := STD_LOGIC_VECTOR(TO_UNSIGNED(clk_dly_int, 6)); + end if; + + clk_dly_int_rl := real (clk_dly_int); + clk_dly_rem := clk_dly_rl - clk_dly_int_rl; + + if (clk_dly_rem < 0.125) then + clkpm_sel := "000"; + clkpm_sel_rl := 0.0; + elsif (clk_dly_rem >= 0.125 and clk_dly_rem < 0.25) then + clkpm_sel(2 downto 0) := "001"; + clkpm_sel_rl := 1.0; + elsif (clk_dly_rem >= 0.25 and clk_dly_rem < 0.375) then + clkpm_sel := "010"; + clkpm_sel_rl := 2.0; + elsif (clk_dly_rem >= 0.375 and clk_dly_rem < 0.5) then + clkpm_sel := "011"; + clkpm_sel_rl := 3.0; + elsif (clk_dly_rem >= 0.5 and clk_dly_rem < 0.625) then + clkpm_sel := "100"; + clkpm_sel_rl := 4.0; + elsif (clk_dly_rem >= 0.625 and clk_dly_rem < 0.75) then + clkpm_sel := "101"; + clkpm_sel_rl := 5.0; + elsif (clk_dly_rem >= 0.75 and clk_dly_rem < 0.875) then + clkpm_sel := "110"; + clkpm_sel_rl := 6.0; + elsif (clk_dly_rem >= 0.875 ) then + clkpm_sel := "111"; + clkpm_sel_rl := 7.0; + end if; + + if (clk_ps < 0.0) then + clk_ps_rl := (clk_dly_int_rl + 0.125 * clkpm_sel_rl) * 360.0 / clkdiv_real - 360.0; + else + clk_ps_rl := (clk_dly_int_rl + 0.125 * clkpm_sel_rl) * 360.0 / clkdiv_real; + end if; + + if (((clk_ps_rl- clk_ps) > 0.001) or ((clk_ps_rl- clk_ps) < -0.001)) then + Write ( Message, string'(" Warning : Attribute ")); + Write ( Message, clk_ps_name ); + Write ( Message, string'(" of PLLE2_ADV is set to ")); + Write ( Message, clk_ps); + Write ( Message, string'(". Real phase shifting is ")); + Write ( Message, clk_ps_rl); + Write ( Message, string'(". Required phase shifting can not be reached")); + Write ( Message, '.' & LF ); + assert false report Message.all severity warning; + DEALLOCATE (Message); + end if; + end procedure clkout_dly_cal; + + procedure clk_out_para_cal (clk_ht : out std_logic_vector(6 downto 0); + clk_lt : out std_logic_vector(6 downto 0); + clk_nocnt : out std_ulogic; + clk_edge : out std_ulogic; + CLKOUT_DIVIDE : in integer; + CLKOUT_DUTY_CYCLE : in real ) + is + variable tmp_value : real; + variable tmp_value_tmp : real; + variable tmp_value_r : integer; + variable tmp_value_r2 : integer; + variable tmp_value_r3 : real; + variable tmp_value_r1 : real; + variable tmp_value_r_0 : real; + variable tmp_value_rm : real; + variable tmp_value_rm1 : real; + variable tmp_value0 : real; + variable tmp_value_l: real; + variable tmp_value2 : real; + variable tmp_value1 : integer; + variable clk_lt_tmp : real; + variable clk_ht_i : integer; + variable clk_lt_i : integer; + variable CLKOUT_DIVIDE_real : real; + constant O_MAX_HT_LT_real : real := 64.0; + begin + CLKOUT_DIVIDE_real := real(CLKOUT_DIVIDE); + tmp_value_tmp := CLKOUT_DIVIDE_real * CLKOUT_DUTY_CYCLE; + tmp_value_r := real2int(tmp_value_tmp); + tmp_value_r_0 := real(tmp_value_r); + tmp_value_rm := tmp_value_tmp - tmp_value_r_0; + if (tmp_value_rm < 0.1) then + tmp_value := tmp_value_r_0; + elsif (tmp_value_rm > 0.9) then + tmp_value := tmp_value_r_0 + 1.0; + else + tmp_value_r1 := tmp_value_tmp * 2.0; + tmp_value_r2 := real2int(tmp_value_r1); + tmp_value_r3 := real(tmp_value_r2); + tmp_value_rm1 := tmp_value_r1 - tmp_value_r3; + if (tmp_value_rm1 > 0.995) then + tmp_value := tmp_value_tmp + 0.002; + else + tmp_value := tmp_value_tmp; + end if; + end if; + tmp_value0 := tmp_value * 2.0; + tmp_value1 := real2int(tmp_value0) mod 2; + tmp_value2 := CLKOUT_DIVIDE_real - tmp_value; + + if ((tmp_value2) >= O_MAX_HT_LT_real) then + clk_lt_tmp := 64.0; + clk_lt := "1000000"; + else + if (tmp_value2 < 1.0) then + clk_lt := "0000001"; + clk_lt_tmp := 1.0; + else + if (tmp_value1 /= 0) then + clk_lt_i := real2int(tmp_value2) + 1; + else + clk_lt_i := real2int(tmp_value2); + end if; + clk_lt := STD_LOGIC_VECTOR(TO_UNSIGNED(clk_lt_i, 7)); + clk_lt_tmp := real(clk_lt_i); + end if; + end if; + + tmp_value_l := CLKOUT_DIVIDE_real - clk_lt_tmp; + + if ( tmp_value_l >= O_MAX_HT_LT_real) then + clk_ht := "1000000"; + else + clk_ht_i := real2int(tmp_value_l); + clk_ht := STD_LOGIC_VECTOR(TO_UNSIGNED(clk_ht_i, 7)); + end if; + + if (CLKOUT_DIVIDE = 1) then + clk_nocnt := '1'; + else + clk_nocnt := '0'; + end if; + + if (tmp_value < 1.0) then + clk_edge := '1'; + elsif (tmp_value1 /= 0) then + clk_edge := '1'; + else + clk_edge := '0'; + end if; + + end procedure clk_out_para_cal; + + procedure clkout_pm_cal ( clk_ht1 : out integer ; + clk_div : out integer; + clk_div1 : out integer; + clk_ht : in std_logic_vector(6 downto 0); + clk_lt : in std_logic_vector(6 downto 0); + clk_nocnt : in std_ulogic; + clk_edge : in std_ulogic ) + is + variable clk_div_tmp : integer; + begin + if (clk_nocnt = '1') then + clk_div := 1; + clk_div1 := 1; + clk_ht1 := 1; + else + if (clk_edge = '1') then + clk_ht1 := 2 * SLV_TO_INT(clk_ht) + 1; + else + clk_ht1 := 2 * SLV_TO_INT(clk_ht); + end if; + clk_div_tmp := SLV_TO_INT(clk_ht) + SLV_TO_INT(clk_lt); + clk_div := clk_div_tmp; + clk_div1 := 2 * clk_div_tmp - 1; + end if; + + end procedure clkout_pm_cal; + + procedure clkout_delay_para_drp ( clkout_dly : out std_logic_vector(5 downto 0); + clk_nocnt : out std_ulogic; + clk_edge : out std_ulogic; + di_in : in std_logic_vector(15 downto 0); + daddr_in : in std_logic_vector(6 downto 0); + di_str : string ( 1 to 16); + daddr_str : string ( 1 to 7)) + is + variable Message : line; + begin + clkout_dly := di_in(5 downto 0); + clk_nocnt := di_in(6); + clk_edge := di_in(7); + end procedure clkout_delay_para_drp; + + procedure clkout_hl_para_drp ( clk_lt : out std_logic_vector(6 downto 0) ; + clk_ht : out std_logic_vector(6 downto 0) ; + clkpm_sel : out std_logic_vector(2 downto 0) ; + di_in : in std_logic_vector(15 downto 0); + daddr_in : in std_logic_vector(6 downto 0); + di_str : string ( 1 to 16); + daddr_str : string ( 1 to 7)) + is + variable Message : line; + begin + if (di_in(12) /= '1') then + Write ( Message, string'(" Error : PLLE2_ADV input DI(15 downto 0) is set to")); + Write ( Message, di_str); + Write ( Message, string'(" at address DADDR = ")); + Write ( Message, daddr_str ); + Write ( Message, string'(". The bit 12 need to be set to 1.")); + Write ( Message, '.' & LF ); + assert false report Message.all severity error; + DEALLOCATE (Message); + end if; + + if ( di_in(5 downto 0) = "000000") then + clk_lt := "1000000"; + else + clk_lt := ( '0' & di_in(5 downto 0)); + end if; + if ( di_in(11 downto 6) = "000000") then + clk_ht := "1000000"; + else + clk_ht := ( '0' & di_in(11 downto 6)); + end if; + clkpm_sel := di_in(15 downto 13); + + end procedure clkout_hl_para_drp; + + function clkout_duty_chk (CLKOUT_DIVIDE : in integer; + CLKOUT_DUTY_CYCLE : in real; + CLKOUT_DUTY_CYCLE_N : in string) + return std_ulogic is + constant O_MAX_HT_LT_real : real := 64.0; + variable CLKOUT_DIVIDE_real : real; + variable CLK_DUTY_CYCLE_MIN : real; + variable CLK_DUTY_CYCLE_MIN_rnd : real; + variable CLK_DUTY_CYCLE_MAX : real; + variable CLK_DUTY_CYCLE_STEP : real; + variable clk_duty_tmp_int : integer; + variable duty_cycle_valid : std_ulogic; + variable tmp_duty_value : real; + variable tmp_j : real; + variable Message : line; + variable step_round_tmp : integer; + variable step_round_tmp1 : real; + + begin + CLKOUT_DIVIDE_real := real(CLKOUT_DIVIDE); + step_round_tmp := 1000 /CLKOUT_DIVIDE; + step_round_tmp1 := real(step_round_tmp); + if (CLKOUT_DIVIDE_real > O_MAX_HT_LT_real) then + CLK_DUTY_CYCLE_MIN := (CLKOUT_DIVIDE_real - O_MAX_HT_LT_real)/CLKOUT_DIVIDE_real; + CLK_DUTY_CYCLE_MAX := (O_MAX_HT_LT_real + 0.5)/CLKOUT_DIVIDE_real; + CLK_DUTY_CYCLE_MIN_rnd := CLK_DUTY_CYCLE_MIN; + else + if (CLKOUT_DIVIDE = 1) then + CLK_DUTY_CYCLE_MIN_rnd := 0.0; + CLK_DUTY_CYCLE_MIN := 0.0; + else + CLK_DUTY_CYCLE_MIN_rnd := step_round_tmp1 / 1000.00; + CLK_DUTY_CYCLE_MIN := 1.0 / CLKOUT_DIVIDE_real; + end if; + CLK_DUTY_CYCLE_MAX := 1.0; + end if; + + if ((CLKOUT_DUTY_CYCLE > CLK_DUTY_CYCLE_MAX) or (CLKOUT_DUTY_CYCLE < CLK_DUTY_CYCLE_MIN_rnd)) then + Write ( Message, string'(" Attribute Syntax Warning : ")); + Write ( Message, CLKOUT_DUTY_CYCLE_N); + Write ( Message, string'(" is set to ")); + Write ( Message, CLKOUT_DUTY_CYCLE); + Write ( Message, string'(" and is not in the allowed range ")); + Write ( Message, CLK_DUTY_CYCLE_MIN); + Write ( Message, string'(" to ")); + Write ( Message, CLK_DUTY_CYCLE_MAX); + Write ( Message, '.' & LF ); + assert false report Message.all severity warning; + DEALLOCATE (Message); + end if; + + CLK_DUTY_CYCLE_STEP := 0.5 / CLKOUT_DIVIDE_real; + tmp_j := 0.0; + duty_cycle_valid := '0'; + clk_duty_tmp_int := 0; + for j in 0 to (2 * CLKOUT_DIVIDE ) loop + tmp_duty_value := CLK_DUTY_CYCLE_MIN + CLK_DUTY_CYCLE_STEP * tmp_j; + if (abs(tmp_duty_value - CLKOUT_DUTY_CYCLE) < 0.001 and (tmp_duty_value <= CLK_DUTY_CYCLE_MAX)) then + duty_cycle_valid := '1'; + end if; + tmp_j := tmp_j + 1.0; + end loop; + + if (duty_cycle_valid /= '1') then + Write ( Message, string'(" Attribute Syntax Warning : ")); + Write ( Message, CLKOUT_DUTY_CYCLE_N); + Write ( Message, string'(" = ")); + Write ( Message, CLKOUT_DUTY_CYCLE); + Write ( Message, string'(" which is not an allowed value. Allowed value s are: ")); + Write ( Message, LF ); + tmp_j := 0.0; + for j in 0 to (2 * CLKOUT_DIVIDE ) loop + tmp_duty_value := CLK_DUTY_CYCLE_MIN + CLK_DUTY_CYCLE_STEP * tmp_j; + if ( (tmp_duty_value <= CLK_DUTY_CYCLE_MAX) and (tmp_duty_value < 1.0)) then + Write ( Message, tmp_duty_value); + Write ( Message, LF ); + end if; + tmp_j := tmp_j + 1.0; + end loop; + assert false report Message.all severity warning; + DEALLOCATE (Message); + end if; + return duty_cycle_valid; + end function clkout_duty_chk; + +-- Input/Output Pin signals + + constant VCOCLK_FREQ_MAX : real := 2133.0; + constant VCOCLK_FREQ_MIN : real := 800.0; + constant CLKIN_FREQ_MAX : real := 1066.0; + constant CLKIN_FREQ_MIN : real := 19.0; + constant CLKPFD_FREQ_MAX : real := 550.0; + constant CLKPFD_FREQ_MIN : real := 19.0; + constant VCOCLK_FREQ_TARGET : real := 1200.0; + constant O_MAX_HT_LT : integer := 64; + constant REF_CLK_JITTER_MAX : time := 1000 ps; + constant REF_CLK_JITTER_SCALE : real := 0.1; + constant MAX_FEEDBACK_DELAY : time := 10 ns; + constant MAX_FEEDBACK_DELAY_SCALE : real := 1.0; + constant M_MAX : real := 64.000; + constant M_MIN : real := 2.000; + constant D_MAX : integer := 80; + constant D_MIN : integer := 1; + constant ps_max : integer := 55; + constant OSC_P2 : time := 250 ps; + constant SIM_DEVICE : string := "E2XXXXX"; + constant CLKFBOUT_USE_FINE_PS : boolean := FALSE; + constant CLKOUT0_USE_FINE_PS : boolean := FALSE; + constant CLKOUT1_USE_FINE_PS : boolean := FALSE; + constant CLKOUT2_USE_FINE_PS : boolean := FALSE; + constant CLKOUT3_USE_FINE_PS : boolean := FALSE; + constant CLKOUT4_USE_FINE_PS : boolean := FALSE; + constant CLKOUT5_USE_FINE_PS : boolean := FALSE; + constant CLKOUT6_USE_FINE_PS : boolean := FALSE; + constant CLKOUT4_CASCADE : boolean := FALSE; + constant CLKOUT6_DIVIDE : integer := 1; + constant CLKOUT6_DUTY_CYCLE : real := 0.500; + constant CLKOUT6_PHASE : real := 0.000; + + + signal pll_lock_time : integer; + signal lock_period_time : integer; + signal STARTUP_WAIT_sig : std_ulogic; + signal CLKIN1_ipd : std_ulogic; + signal CLKIN2_ipd : std_ulogic; + signal CLKFBIN_ipd : std_ulogic; + signal RST_ipd : std_ulogic; + signal CLKINSEL_ipd : std_ulogic; + signal DADDR_ipd : std_logic_vector(6 downto 0); + signal DI_ipd : std_logic_vector(15 downto 0); + signal DWE_ipd : std_ulogic; + signal DEN_ipd : std_ulogic; + signal DCLK_ipd : std_ulogic; + signal PSINCDEC_ipd : std_ulogic := '0'; + signal PSEN_ipd : std_ulogic := '0'; + signal PSCLK_ipd : std_ulogic := '0'; + signal PWRDWN_ipd : std_ulogic; + signal GSR : std_ulogic := '0'; + signal CLKOUT0_out : std_ulogic := '0'; + signal CLKOUT1_out : std_ulogic := '0'; + signal CLKOUT2_out : std_ulogic := '0'; + signal CLKOUT3_out : std_ulogic := '0'; + signal CLKOUT4_out : std_ulogic := '0'; + signal CLKOUT5_out : std_ulogic := '0'; + signal CLKOUT6_out : std_ulogic := '0'; + signal CLKFBSTOPPED_out : std_ulogic := '0'; + signal CLKINSTOPPED_out : std_ulogic := '0'; + signal CLKINSTOPPED_out_dly : std_ulogic := '0'; + signal CLKINSTOPPED_out_dly2 : std_ulogic := '0'; + signal clkin_stop_f : std_ulogic := '0'; + signal psen_w : std_ulogic := '0'; + signal period_avg_stpi : time := 0 ps; + signal period_avg_stp : time := 0 ps; + signal vco_stp_f : std_ulogic := '0'; + signal pd_stp_p : std_ulogic := '0'; + signal CLKFBSTOPPED_out1 : std_ulogic := '0'; + signal CLKINSTOPPED_out1 : std_ulogic := '0'; + signal locked_out : std_ulogic := '0'; + signal locked_out_tmp : std_ulogic := '0'; + signal do_out : std_logic_vector(15 downto 0); + signal DRDY_out : std_ulogic := '0'; + signal PSDONE_out : std_ulogic := '0'; + signal CLKIN1_dly : std_ulogic; + signal CLKIN2_dly : std_ulogic; + signal CLKFBIN_dly : std_ulogic; + signal RST_dly : std_ulogic; + signal PWRDEN_dly : std_ulogic; + signal CLKINSEL_dly : std_ulogic; + signal DADDR_dly : std_logic_vector(6 downto 0); + signal DI_dly : std_logic_vector(15 downto 0); + signal DWE_dly : std_ulogic; + signal DEN_dly : std_ulogic; + signal DCLK_dly : std_ulogic; + signal PSINCDEC_dly : std_ulogic := '0'; + signal PSEN_dly : std_ulogic := '0'; + signal PSCLK_dly : std_ulogic := '0'; + + signal di_in : std_logic_vector (15 downto 0); + signal dwe_in : std_ulogic := '0'; + signal den_in : std_ulogic := '0'; + signal dclk_in : std_ulogic := '0'; + signal psincdec_in : std_ulogic := '0'; + signal psen_in : std_ulogic := '0'; + signal psclk_in : std_ulogic := '0'; + signal rst_in : std_ulogic := '0'; + signal rst_in_o : std_ulogic := '0'; + signal pwrdwn_in : std_ulogic := '0'; + signal pwrdwn_in1 : std_ulogic := '0'; + signal pwrdwn_in1_h : std_ulogic := '0'; + signal pwron_int : std_ulogic := '1'; + signal rst_input : std_ulogic := '0'; + signal rst_input_r : std_ulogic := '0'; + signal rst_input_r_h : std_ulogic := '0'; + signal pchk_clr : std_ulogic := '0'; + signal clkinstopped_in : std_ulogic := '0'; + signal clkfbstopped_in : std_ulogic := '0'; + signal clkfb_in : std_ulogic := '0'; + signal clkin1_in : std_ulogic := '0'; + signal clkin1_in_dly : std_ulogic := '0'; + signal clkin2_in : std_ulogic := '0'; + signal clkinsel_in : std_ulogic := '0'; + signal clkinsel_tmp : std_ulogic := '0'; + signal daddr_in : std_logic_vector(6 downto 0); + signal daddr_in_lat : integer := 0; + signal drp_lock : std_ulogic := '0'; + signal drp_lock1 : std_ulogic := '0'; + type drp_array is array (127 downto 0) of std_logic_vector(15 downto 0); + signal dr_sram : drp_array; + + signal clk0in : std_ulogic := '0'; + signal clk1in : std_ulogic := '0'; + signal clk2in : std_ulogic := '0'; + signal clk3in : std_ulogic := '0'; + signal clk4in : std_ulogic := '0'; + signal clk5in : std_ulogic := '0'; + signal clk6in : std_ulogic := '0'; + signal clkfbm1in : std_ulogic := '0'; + signal clkfbm2in : std_ulogic := '0'; + signal clk0_out : std_ulogic := '0'; + signal clk1_out : std_ulogic := '0'; + signal clk2_out : std_ulogic := '0'; + signal clk3_out : std_ulogic := '0'; + signal clk4_out : std_ulogic := '0'; + signal clk5_out : std_ulogic := '0'; + signal clk6_out : std_ulogic := '0'; + signal clkfb_out : std_ulogic := '0'; + signal clkind_out : std_ulogic := '0'; + signal clkfbm1_out : std_ulogic := '0'; + signal clkfbm2_out : std_ulogic := '0'; + signal clkout_en : std_ulogic := '0'; + signal clkout_en1 : std_ulogic := '0'; + signal clkout_en0 : std_ulogic := '0'; + signal clkout_en0_tmp : std_ulogic := '0'; + signal clkout_en0_tmp1 : std_ulogic := '0'; + signal clkout_en_t : integer := 0; + signal clkout_en_val : integer := 0; + signal clkout_cnt : integer := 0; + signal clkin_cnt : integer := 0; + signal clkin_lock_cnt : integer := 0; + signal clkout_en_time : integer := 12; + signal locked_en_time : integer := 10; + signal lock_cnt_max : integer := 30; + signal clkvco_lk : std_ulogic := '0'; + signal clkvco_lk_tmp2 : std_ulogic := '0'; + signal clkvco_lk_dly_tmp : std_ulogic := '0'; + signal clkvco_lk_en : std_ulogic := '0'; + signal clkvco_lk_osc : std_ulogic := '0'; + signal clkvco_lk_rst : std_ulogic := '0'; + signal clkvco_free : std_ulogic := '0'; + signal clkvco : std_ulogic := '0'; + signal fbclk_tmp : std_ulogic := '0'; + signal dly_tmp_o : time := 0 ps; + signal clkfb_div_frac_int : integer := 0; + signal clk0_div_frac_int : integer := 0; + signal clkfb_div_fint : integer := 0; + signal clkfb_div_fint_odd : integer := 0; + signal clkfbm1_div_t : real := 1.000; + signal clk0_div_fint : integer := 0; + signal clk0_div_fint_odd : integer := 0; + signal clkfb_div_frac : real := 0.0; + signal clk0_div_frac : real := 0.0; + signal clk0_frac_out : std_ulogic := '0'; + signal clkfbm1_frac_out : std_ulogic := '0'; + signal clk0_nf_out : std_ulogic := '0'; + signal clkfbm1_nf_out : std_ulogic := '0'; + signal clk0_frac_en : integer := 0; + signal clkfb_frac_en : integer := 0; + signal ps_in_init : integer := 0; + signal init_done : std_ulogic := '0'; + signal clk0_fps_en : integer := 0; + signal clk1_fps_en : integer := 0; + signal clk2_fps_en : integer := 0; + signal clk3_fps_en : integer := 0; + signal clk4_fps_en : integer := 0; + signal clk5_fps_en : integer := 0; + signal clk6_fps_en : integer := 0; + signal clkfb_fps_en : integer := 0; + signal fps_en : integer := 0; + signal clkfb_stop_tmp : std_ulogic := '0'; + signal clkin_stop_tmp : std_ulogic := '0'; + signal clkinstopped_hold : std_ulogic := '0'; + signal clkin_hold_f : integer := 0; + signal ps_in_ps : integer := 0; + signal ps_cnt : integer := 0; + signal clkout4_cascade_int : integer := 0; + signal clkout_ps : std_ulogic := '0'; + signal clkout_ps_tmp1 : std_ulogic := '0'; + signal clkout_ps_tmp2 : std_ulogic := '0'; + signal clkout_ps_t1 : std_ulogic := '0'; + signal clkout_ps_t2 : std_ulogic := '0'; + + signal rst_in1 : std_ulogic := '0'; + signal rst_unlock : std_ulogic := '0'; + signal rst_on_loss : std_ulogic := '0'; + signal rst_edge : time := 0 ps; + signal rst_ht : time := 0 ps; + signal fb_delay_found : std_ulogic := '0'; + signal fb_delay_found_tmp : std_ulogic := '0'; + signal clkfb_tst : std_ulogic := '0'; + constant fb_delay_max : time := MAX_FEEDBACK_DELAY * MAX_FEEDBACK_DELAY_SCALE; + signal fb_delay : time := 0 ps; + signal clkvco_delay : time := 0 ps; + signal val_tmp : time := 0 ps; + signal clkin_edge : time := 0 ps; + signal delay_edge : time := 0 ps; + + type real_array_usr is array (4 downto 0) of time; + signal clkin_period : real_array_usr := (others => 0 ps); + signal period_vco_en : time := 0 ps; + signal period_vco : time := 0 ps; + signal period_vco_mf : integer := 0; + signal period_vco_rm : integer := 0; + signal period_vco_cmp_cnt : integer := 0; + signal clkvco_tm_cnt : integer := 0; + signal period_vco_cmp_flag : integer := 0; + signal period_vco1 : time := 0 ps; + signal period_vco2 : time := 0 ps; + signal period_vco3 : time := 0 ps; + signal period_vco4 : time := 0 ps; + signal period_vco5 : time := 0 ps; + signal period_vco6 : time := 0 ps; + signal period_vco7 : time := 0 ps; + signal period_vco_half : time := 0 ps; + signal period_vco_half1 : time := 0 ps; + signal period_vco_half_rm : time := 0 ps; + signal period_vco_half_rm1 : time := 0 ps; + signal period_vco_half_rm2 : time := 0 ps; + signal clkvco_pdrm : real := 0.0; + constant period_vco_max : time := 1000 ps / VCOCLK_FREQ_MIN; + constant period_vco_min : time := 1000 ps / VCOCLK_FREQ_MAX; + constant period_vco_target : time := 1000 ps / VCOCLK_FREQ_TARGET; + constant period_vco_target_half : time := 500 ps / VCOCLK_FREQ_TARGET; + signal period_fb : time := 0 ps; + signal period_avg : time := 0 ps; + + signal clkfb_stop_max : integer := 3; + signal clkin_stop_max : integer := DIVCLK_DIVIDE + 1; + signal md_product : integer; + signal m_product : integer; + signal m_product1 : integer := 0; + signal m_product2 : integer; + + signal pll_locked_delay : time := 0 ps; + signal clkin_dly_t : time := 0 ps; + signal clkfb_dly_t : time := 0 ps; + signal clkfb_in_dly : std_ulogic := '0'; + signal pll_unlock : std_ulogic := '0'; + signal pll_unlock1 : std_ulogic := '0'; + signal pll_unlock1_tmp : std_ulogic := '0'; + signal pll_locked_tm : std_ulogic := '0'; + signal pll_locked_tmp1 : std_ulogic := '0'; + signal pll_locked_tmp2 : std_ulogic := '0'; + signal pll_locked_tmp2_dly : std_ulogic := '0'; + signal lock_period : std_ulogic := '0'; + signal pll_lock_tm: std_ulogic := '0'; + signal unlock_recover : std_ulogic := '0'; + signal clkin_stopped : std_ulogic := '0'; + signal clkfb_stopped : std_ulogic := '0'; + signal clkpll_jitter_unlock : std_ulogic := '0'; + signal clkin_jit : time := 0 ps; + constant ref_jitter_max_tmp : time := REF_CLK_JITTER_MAX; + + signal clk0ps_en : std_ulogic := '0'; + signal clk1ps_en : std_ulogic := '0'; + signal clk2ps_en : std_ulogic := '0'; + signal clk3ps_en : std_ulogic := '0'; + signal clk4ps_en : std_ulogic := '0'; + signal clk5ps_en : std_ulogic := '0'; + signal clk6ps_en : std_ulogic := '0'; + signal clkfbm1ps_en : std_ulogic := '0'; + signal clkout_mux : std_logic_vector (7 downto 0) := X"00"; + signal clkout_ps_mux : std_logic_vector (7 downto 0) := X"00"; + signal clk0pm_sel : integer := 0; + signal clk0pm_sel1 : integer := 0; + signal clk1pm_sel : integer := 0; + signal clk2pm_sel : integer := 0; + signal clk3pm_sel : integer := 0; + signal clk4pm_sel : integer := 0; + signal clk5pm_sel : integer := 0; + signal clk6pm_sel : integer := 0; + signal clk5pm_sel1 : integer := 0; + signal clk6pm_sel1 : integer := 0; + signal clkfbm1pm_sel : integer := 0; + signal clkfbm1pm_sel1 : integer := 0; + signal clkfbm1pm_rl : real := 0.0; + signal clk0_edge : std_ulogic := '0'; + signal clk1_edge : std_ulogic := '0'; + signal clk2_edge : std_ulogic := '0'; + signal clk3_edge : std_ulogic := '0'; + signal clk4_edge : std_ulogic := '0'; + signal clk5_edge : std_ulogic := '0'; + signal clk6_edge : std_ulogic := '0'; + signal clkfbm1_edge : std_ulogic := '0'; + signal clkfbm2_edge : std_ulogic := '0'; + signal clkind_edge : std_ulogic := '0'; + signal clk0_nocnt : std_ulogic := '0'; + signal clk1_nocnt : std_ulogic := '0'; + signal clk2_nocnt : std_ulogic := '0'; + signal clk3_nocnt : std_ulogic := '0'; + signal clk4_nocnt : std_ulogic := '0'; + signal clk5_nocnt : std_ulogic := '0'; + signal clk6_nocnt : std_ulogic := '0'; + signal clkfbm1_nocnt : std_ulogic := '0'; + signal clkfbm2_nocnt : std_ulogic := '0'; + signal clkind_nocnt : std_ulogic := '0'; + signal clk0_dly_cnt : integer := 0; + signal clk1_dly_cnt : integer := 0; + signal clk2_dly_cnt : integer := 0; + signal clk3_dly_cnt : integer := 0; + signal clk4_dly_cnt : integer := 0; + signal clk5_dly_cnt : integer := 0; + signal clk6_dly_cnt : integer := 0; + signal clkfbm1_dly_cnt : integer := 0; + signal clk0_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk1_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk2_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk3_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk4_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk5_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk6_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clkfbm1_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clkfbm2_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk0_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk1_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk2_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk3_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk4_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk5_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk6_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clkfbm1_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clkfbm2_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clkout0_dly : integer := 0; + signal clkout1_dly : integer := 0; + signal clkout2_dly : integer := 0; + signal clkout3_dly : integer := 0; + signal clkout4_dly : integer := 0; + signal clkout5_dly : integer := 0; + signal clkout6_dly : integer := 0; + signal clkfbm1_dly : integer := 0; + signal clkind_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clkind_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk0_ht1 : integer := 0; + signal clk1_ht1 : integer := 0; + signal clk2_ht1 : integer := 0; + signal clk3_ht1 : integer := 0; + signal clk4_ht1 : integer := 0; + signal clk5_ht1 : integer := 0; + signal clk6_ht1 : integer := 0; + signal clkfbm1_ht1 : integer := 0; + signal clkfbm2_ht1 : integer := 0; + signal clkind_ht1 : integer := 0; + signal clk0_cnt : integer := 0; + signal clk1_cnt : integer := 0; + signal clk2_cnt : integer := 0; + signal clk3_cnt : integer := 0; + signal clk4_cnt : integer := 0; + signal clk5_cnt : integer := 0; + signal clk6_cnt : integer := 0; + signal clkind_cnt : integer := 0; + signal clkfbm1_cnt : integer := 0; + signal clkfbm2_cnt : integer := 0; + signal clk0_div : integer := 0; + signal clk1_div : integer := 0; + signal clk2_div : integer := 0; + signal clk3_div : integer := 0; + signal clk4_div : integer := 0; + signal clk5_div : integer := 0; + signal clk6_div : integer := 0; + signal clkfbm1_div : integer := 1; + signal clkfbm1_f_div : real := 1.0; + signal clkfbm2_div : integer := 1; + signal clk0_div1 : integer := 0; + signal clk1_div1 : integer := 0; + signal clk2_div1 : integer := 0; + signal clk3_div1 : integer := 0; + signal clk4_div1 : integer := 0; + signal clk5_div1 : integer := 0; + signal clk6_div1 : integer := 0; + signal clkfbm1_div1 : integer := 0; + signal clkfbm2_div1 : integer := 0; + signal clkind_div : integer := 1; + signal clkind_div1 : integer := 1; + + signal clkvco_lk_tmp : std_ulogic := '0'; + signal clkinstopped_vco_f : std_ulogic := '0'; + signal clkin_period_tmp : real := 0.0; + signal clk0_frac_lt : time := 50 ps; + signal clk0_frac_ht : time := 50 ps; + signal clkfb_frac_lt : time := 50 ps; + signal clkfb_frac_ht : time := 50 ps; + signal clk0_frac_out_en : integer := 0; + signal clkfb_frac_out_en : integer := 0; + signal clk0_frac_out_init : std_ulogic := '1'; + signal clkfb_frac_out_init : std_ulogic := '1'; + signal period_ps : time := 0 ps; + signal period_ps_old : time := 0 ps; + signal clkvco_ps_tmp2_en : std_ulogic := '0'; + signal clkout_ps_eg : time := 0 ps; + signal clkout_ps_peg : time := 0 ps; + signal ps_lock : std_ulogic := '0'; + signal ps_lock_dly : std_ulogic := '0'; + signal mf_product : integer := 0; + signal mf_product1 : integer := 0; + signal clkpll_tmp1 : std_ulogic := '0'; + signal clkpll_tmp2 : std_ulogic := '0'; + signal clkpll_tmp3 : std_ulogic := '0'; + signal clkpll : std_ulogic := '0'; + signal clkpll_r : std_ulogic := '0'; + signal orig_rst_in : std_ulogic := '0'; + signal rst_clkinstopped : std_ulogic := '0'; + signal rst_clkinstopped_rc : std_ulogic := '0'; + signal rst_clkinstopped_tm : std_ulogic := '0'; + signal rst_clkfbstopped : std_ulogic := '0'; + signal rst_clkinstopped_lk : std_ulogic := '0'; + signal clkin_lost_cnt : integer := 0; + signal clkfb_lost_cnt : integer := 0; + signal clk_osc : std_ulogic := '0'; + signal clkin_p : std_ulogic := '0'; + signal clkfb_p : std_ulogic := '0'; + signal clkin_lost_val : integer := 500; + signal clkfb_lost_val : integer := 500; + signal rst_clkinsel_flag : std_ulogic := '0'; + + begin + + CLKOUT0 <= clkout0_out; + CLKOUT1 <= clkout1_out; + CLKOUT2 <= clkout2_out; + CLKOUT3 <= clkout3_out; + CLKOUT4 <= clkout4_out; + CLKOUT5 <= clkout5_out; + CLKFBOUT <= clkfb_out; + + unisim.VCOMPONENTS.PLL_LOCKG <= '0' when (STARTUP_WAIT_sig = '1' and locked_out_tmp = '0') else 'H'; + + DO <= do_out(15 downto 0); + DRDY <= DRDY_out after 100 ps; + LOCKED <= locked_out_tmp; + pll_locked_tmp2_dly <= pll_locked_tmp2 after 100 ps; + clkin1_in <= CLKIN1; + clkin2_in <= CLKIN2; + clkinsel_in <= '1' when CLKINSEL /= '0' else '0'; + clkfb_in <= CLKFBIN; + rst_input_r <= RST; + clkin1_in_dly <= CLKIN1; + daddr_in(6 downto 0) <= DADDR(6 downto 0); + di_in(15 downto 0) <= DI(15 downto 0); + dwe_in <= DWE; + den_in <= DEN; + dclk_in <= DCLK; + psclk_in <= '0'; + psen_in <= '0'; + psincdec_in <= '0'; + pwrdwn_in <= PWRDWN; + INIPROC : process + variable Message : line; + variable con_line : line; + variable tmpvalue : real; + variable chk_ok : std_ulogic; + variable tmp_string : string(1 to 18); + variable skipspace : character; + variable CLK_DUTY_CYCLE_MIN : real; + variable CLK_DUTY_CYCLE_MAX : real; + variable CLK_DUTY_CYCLE_STEP : real; + variable O_MAX_HT_LT_real : real; + variable duty_cycle_valid : std_ulogic; + variable CLKOUT0_DIVIDE_real : real; + variable CLKOUT1_DIVIDE_real : real; + variable CLKOUT2_DIVIDE_real : real; + variable CLKOUT3_DIVIDE_real : real; + variable CLKOUT4_DIVIDE_real : real; + variable CLKOUT5_DIVIDE_real : real; + variable tmp_j : real; + variable tmp_duty_value : real; + variable clk_ht_i : std_logic_vector(5 downto 0); + variable clk_lt_i : std_logic_vector(5 downto 0); + variable clk_nocnt_i : std_ulogic; + variable clk_edge_i : std_ulogic; + variable clkfbm1_f_div_v : real := 1.0; + variable clkfb_div_fint_v : integer := 1; + variable clkfb_div_fint_v_tmp : integer := 1; + variable clkfb_div_fint_v1 : real := 1.0; + variable clkfb_div_frac_v : real := 0.0; + variable clkfb_frac_en_v : integer := 0; + variable clkfb_div_frac_int_v : integer := 0; + variable mf_product_v : integer := 0; + variable clk0_div_fint_v : integer := 1; + variable clk0_div_fint_v_tmp : integer := 1; + variable clk0_div_fint_v1 : real := 1.0; + variable clk0_div_frac_v : real := 0.0; + variable clk0_frac_en_v : integer := 0; + variable clk0_div_frac_int_v : integer := 0; + variable ps_in_init_v : integer := 0; + variable lock_en_tmp1_rl : real; + variable lock_en_tmp2_rl : real; + variable lock_en_tmp3_int : integer; + variable clkfb_fps_eni : integer; + variable clk0_fps_eni : integer; + variable clk1_fps_eni : integer; + variable clk2_fps_eni : integer; + variable clk3_fps_eni : integer; + variable clk4_fps_eni : integer; + variable clk5_fps_eni : integer; + variable clk6_fps_eni : integer; + variable clkout_en_time_i : integer; + variable clkout_en_time_i1 : integer; + + begin + if((COMPENSATION /= "ZHOLD") and (COMPENSATION /= "zhold") and + (COMPENSATION /= "BUF_IN") and (COMPENSATION /= "buf_in") and + (COMPENSATION /= "EXTERNAL") and (COMPENSATION /= "external") and + (COMPENSATION /= "INTERNAL") and (COMPENSATION /= "internal")) then + assert FALSE report " Attribute Syntax Error : The Attribute COMPENSATION must be set to ZHOLD or BUF_IN or EXTERNAL or INTERNAL." severity error; + end if; + + if((BANDWIDTH /= "HIGH") and (BANDWIDTH /= "high") and + (BANDWIDTH /= "LOW") and (BANDWIDTH /= "low") and + (BANDWIDTH /= "OPTIMIZED") and (BANDWIDTH /= "optimized")) then + assert FALSE report "Attribute Syntax Error : BANDWIDTH is not HIGH, LOW, OPTIMIZED." severity error; + end if; + + case CLKFBOUT_USE_FINE_PS is + when FALSE => clkfb_fps_en <= 0; + clkfb_fps_eni := 0; + when TRUE => clkfb_fps_en <= 1; + clkfb_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKFBOUT_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT0_USE_FINE_PS is + when FALSE => clk0_fps_en <= 0; + clk0_fps_eni := 0; + when TRUE => clk0_fps_en <= 1; + clk0_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT0_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT1_USE_FINE_PS is + when FALSE => clk1_fps_en <= 0; + clk1_fps_eni := 0; + when TRUE => clk1_fps_en <= 1; + clk1_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT1_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT2_USE_FINE_PS is + when FALSE => clk2_fps_en <= 0; + clk2_fps_eni := 0; + when TRUE => clk2_fps_en <= 1; + clk2_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT2_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT3_USE_FINE_PS is + when FALSE => clk3_fps_en <= 0; + clk3_fps_eni := 0; + when TRUE => clk3_fps_en <= 1; + clk3_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT3_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT4_USE_FINE_PS is + when FALSE => clk4_fps_en <= 0; + clk4_fps_eni := 0; + when TRUE => clk4_fps_en <= 1; + clk4_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT4_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT5_USE_FINE_PS is + when FALSE => clk5_fps_en <= 0; + clk5_fps_eni := 0; + when TRUE => clk5_fps_en <= 1; + clk5_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT5_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT6_USE_FINE_PS is + when FALSE => clk6_fps_en <= 0; + clk6_fps_eni := 0; + when TRUE => clk6_fps_en <= 1; + clk6_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT6_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + if((STARTUP_WAIT = "FALSE") or (STARTUP_WAIT = "false")) then + STARTUP_WAIT_sig <= '0'; + elsif((STARTUP_WAIT = "TRUE") or (STARTUP_WAIT= "true")) then + STARTUP_WAIT_sig <= '1'; + else + assert FALSE report "Error : STARTUP_WAIT is not FALSE, TRUE." severity error; + end if; + -- end case; + + if (clkfb_fps_eni=1 or clk0_fps_eni=1 or clk1_fps_eni=1 or clk2_fps_eni=1 + or clk3_fps_eni=1 or clk4_fps_eni=1 or clk5_fps_eni=1 or clk6_fps_eni=1) then + fps_en <= 1; + end if; + + clkin_hold_f <= 0; + +-- case CLOCK_HOLD is +-- when FALSE => clkin_hold_f <= 0; +-- when TRUE => clkin_hold_f <= 1; +-- when others => assert FALSE report " Attribute Syntax Error : The Attribute CLOCK_HOLD must be set to FALSE or TRUE." severity error; +-- end case; + + case CLKOUT4_CASCADE is + when FALSE => clkout4_cascade_int <= 0; + when TRUE => clkout4_cascade_int <= 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT4_CASCADE must be set to FALSE or TRUE." severity error; + end case; + + clkfbm1_f_div_v := real(CLKFBOUT_MULT); + clkfbm1_f_div <= clkfbm1_f_div_v; + clkfb_div_fint_v := CLKFBOUT_MULT; + clkfb_div_fint_v_tmp := clkfb_div_fint_v / 2; + clkfb_div_fint_odd <= clkfb_div_fint_v - 2 * clkfb_div_fint_v_tmp; + clkfb_div_fint_v1 := real(clkfb_div_fint_v); + clkfb_div_fint <= clkfb_div_fint_v; + clkfb_div_frac_v := 0.0; + clkfb_div_frac <= clkfb_div_frac_v; + clkfb_frac_en_v := 0; + clkfb_frac_en <= 0; + clkfb_div_frac_int_v := 0; + clkfb_div_frac_int <= 0; + mf_product_v := clkfb_div_fint_v * 8 + clkfb_div_frac_int_v; + mf_product <= mf_product_v; + mf_product1 <= mf_product_v - 1; + + clk0_div_fint_v := CLKOUT0_DIVIDE; + clk0_div_fint_v1 := real(clk0_div_fint_v); + clk0_div_fint <= clk0_div_fint_v; + clk0_div_fint_v_tmp := clk0_div_fint_v / 2; + clk0_div_fint_odd <= clk0_div_fint_v - 2 * clk0_div_fint_v_tmp; + clk0_div_frac_v := 0.0; + clk0_div_frac <= clk0_div_frac_v; + clk0_frac_en_v := 0; + clk0_frac_en <= 0; + clk0_div_frac_int_v := 0; + clk0_div_frac_int <= 0; + + ps_in_init_v := 0; + ps_in_init <= ps_in_init_v; + + if (clk0_frac_en_v = 1 and clk0_fps_eni = 1) then + assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT0_USE_FINE_PS should be set to FALSE when CLKOUT0_DIVIDE_F has fraction part." severity error; + end if; + + if (clkfb_frac_en_v = 1 and clkfb_fps_eni = 1) then + assert FALSE report " Attribute Syntax Error : The Attribute CLKFBOUT_USE_FINE_PS should be set to FALSE when CLKFBOUT_MULT_F has fraction part." severity error; + end if; + + if (CLKOUT0_DIVIDE < 1 or CLKOUT0_DIVIDE > 128) then + assert FALSE report "Attribute Syntax Error : CLKOUT0_DIVIDE is not in range 1 to 128." severity error; + end if; + + if (clk0_frac_en_v = 0) then + if ((CLKOUT0_PHASE < -360.0) or (CLKOUT0_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT0_PHASE is not in range -360.0 to 360.0" severity error; + end if; + else + if (CLKOUT0_PHASE > 0.0 or CLKOUT0_PHASE < 0.0) then + assert FALSE report "Attribute Syntax Error : CLKOUT0_PHASE should be set to 0.0 when CLKOUT0_DIVIDE_F has fraction part." severity error; + end if; + end if; + + if (clk0_frac_en_v = 0) then + if ((CLKOUT0_DUTY_CYCLE < 0.001) or (CLKOUT0_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT0_DUTY_CYCLE is not real in range 0.001 to 0.999 pecentage."severity error; + end if; + else + if (CLKOUT0_DUTY_CYCLE > 0.5 or CLKOUT0_DUTY_CYCLE < 0.5) then + assert FALSE report "Attribute Syntax Error : CLKOUT0_DUTY_CYCLE should be set to 0.5 when CLKOUT0_DIVIDE_F has fraction part." severity error; + end if; + end if; + + case CLKOUT1_DIVIDE is + when 1 to 128 => NULL ; + when others => assert FALSE report "Attribute Syntax Error : CLKOUT1_DIVIDE is not in range 1 to 128." severity error; + end case; + + if ((CLKOUT1_PHASE < -360.0) or (CLKOUT1_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT1_PHASE is not in range -360.0 to 360.0" severity error; + end if; + + if ((CLKOUT1_DUTY_CYCLE < 0.001) or (CLKOUT1_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT1_DUTY_CYCLE is not real in range 0.001 to 0.999 pecentage."severity error; + end if; + + case CLKOUT2_DIVIDE is + when 1 to 128 => NULL ; + when others => assert FALSE report "Attribute Syntax Error : CLKOUT2_DIVIDE is not in range 1 to 128." severity error; + end case; + + if ((CLKOUT2_PHASE < -360.0) or (CLKOUT2_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT2_PHASE is not in range -360.0 to 360.0" severity error; + end if; + + if ((CLKOUT2_DUTY_CYCLE < 0.001) or (CLKOUT2_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT2_DUTY_CYCLE is not real in range 0.001 to 0.999 pecentage."severity error; + end if; + + case CLKOUT3_DIVIDE is + when 1 to 128 => NULL ; + when others => assert FALSE report "Attribute Syntax Error : CLKOUT3_DIVIDE is not in range 1...128." severity error; + end case; + + if ((CLKOUT3_PHASE < -360.0) or (CLKOUT3_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT3_PHASE is not in range -360.0 to 360.0" severity error; + end if; + + if ((CLKOUT3_DUTY_CYCLE < 0.001) or (CLKOUT3_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT3_DUTY_CYCLE is not real in range 0.001 to 0.999 pecentage."severity error; + end if; + + case CLKOUT4_DIVIDE is + when 1 to 128 => NULL ; + when others => assert FALSE report "Attribute Syntax Error : CLKOUT4_DIVIDE is not in range 1 to 128." severity error; + end case; + + if ((CLKOUT4_PHASE < -360.0) or (CLKOUT4_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT4_PHASE is not in range -360.0 to 360.0" severity error; + end if; + + if ((CLKOUT4_DUTY_CYCLE < 0.001) or (CLKOUT4_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT4_DUTY_CYCLE is not real in range 0.001 to 0.999 pecentage."severity error; + end if; + + if (clk0_frac_en_v = 0) then + case CLKOUT5_DIVIDE is + when 1 to 128 => NULL ; + when others => assert FALSE report "Attribute Syntax Error : CLKOUT5_DIVIDE is not in range 1...128." severity error; + end case; + if ((CLKOUT5_PHASE < -360.0) or (CLKOUT5_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT5_PHASE is not in range 360.0 to 360.0" severity error; + end if; + if ((CLKOUT5_DUTY_CYCLE < 0.001) or (CLKOUT5_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT5_DUTY_CYCLE is not real in range 0.001 to 0.999 pecentage."severity error; + end if; + end if; + + if (clkfb_frac_en_v = 0) then + case CLKOUT6_DIVIDE is + when 1 to 128 => NULL ; + when others => assert FALSE report "Attribute Syntax Error : CLKOUT6_DIVIDE is not in range 1 to 128." severity error; + end case; + if ((CLKOUT6_PHASE < -360.0) or (CLKOUT6_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT6_PHASE is not in range 360.0 to 360.0" severity error; + end if; + if ((CLKOUT6_DUTY_CYCLE < 0.001) or (CLKOUT6_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT6_DUTY_CYCLE is not real in range 0.0 to 1.0 pecentage."severity error; + end if; + end if; + + if (CLKFBOUT_MULT < 2 or CLKFBOUT_MULT > 64) then + assert FALSE report "Attribute Syntax Error : CLKFBOUT_MULT is not in range 2 to 64 ." severity error; + end if; + + if (clkfb_frac_en_v = 0) then + if ( CLKFBOUT_PHASE < -360.0 or CLKFBOUT_PHASE > 360.0 ) then + assert FALSE report "Attribute Syntax Error : CLKFBOUT_PHASE is not in range -360.0 to 360.0" severity error; + end if; + else + if (CLKFBOUT_PHASE > 0.0 or CLKFBOUT_PHASE < 0.0) then + assert FALSE report "Attribute Syntax Error : CLKFBOUT_PHASE should be set to 0.0 when CLKFBOUT_MULT_F has fraction part." severity error; + end if; + end if; + + case DIVCLK_DIVIDE is + when 1 to 80 => NULL; + when others => assert FALSE report "Attribute Syntax Error : DIVCLK_DIVIDE is not in range 1 to 80." severity error; + end case; + + if ((REF_JITTER1 < 0.0) or (REF_JITTER1 > 0.999)) then + assert FALSE report "Attribute Syntax Error : REF_JITTER1 is not in range 0.0 ... 1.0." severity error; + end if; + + if ((REF_JITTER2 < 0.0) or (REF_JITTER2 > 0.999)) then + assert FALSE report "Attribute Syntax Error : REF_JITTER2 is not in range 0.0 ... 1.0." severity error; + end if; + + CLKOUT0_DIVIDE_real := real(CLKOUT0_DIVIDE); + O_MAX_HT_LT_real := real(O_MAX_HT_LT); + CLKOUT1_DIVIDE_real := real(CLKOUT1_DIVIDE); + CLKOUT2_DIVIDE_real := real(CLKOUT2_DIVIDE); + CLKOUT3_DIVIDE_real := real(CLKOUT3_DIVIDE); + CLKOUT4_DIVIDE_real := real(CLKOUT4_DIVIDE); + CLKOUT5_DIVIDE_real := real(CLKOUT5_DIVIDE); + + if (clk0_frac_en_v = 0) then + if (clk0_div_fint_v /= 0) then + chk_ok := clkout_duty_chk (clk0_div_fint_v, CLKOUT0_DUTY_CYCLE, "CLKOUT0_DUTY_CYCLE"); + end if; + if (CLKOUT5_DIVIDE /= 0) then + chk_ok := clkout_duty_chk (CLKOUT5_DIVIDE, CLKOUT5_DUTY_CYCLE, "CLKOUT5_DUTY_CYCLE"); + end if; + end if; + if (CLKOUT1_DIVIDE /= 0) then + chk_ok := clkout_duty_chk (CLKOUT1_DIVIDE, CLKOUT1_DUTY_CYCLE, "CLKOUT1_DUTY_CYCLE"); + end if; + if (CLKOUT2_DIVIDE /= 0) then + chk_ok := clkout_duty_chk (CLKOUT2_DIVIDE, CLKOUT2_DUTY_CYCLE, "CLKOUT2_DUTY_CYCLE"); + end if; + if (CLKOUT3_DIVIDE /= 0) then + chk_ok := clkout_duty_chk (CLKOUT3_DIVIDE, CLKOUT3_DUTY_CYCLE, "CLKOUT3_DUTY_CYCLE"); + end if; + if (CLKOUT4_DIVIDE /= 0) then + chk_ok := clkout_duty_chk (CLKOUT4_DIVIDE, CLKOUT4_DUTY_CYCLE, "CLKOUT4_DUTY_CYCLE"); + end if; + if (clkfb_frac_en_v = 0) then + if (CLKOUT6_DIVIDE /= 0) then + chk_ok := clkout_duty_chk (CLKOUT6_DIVIDE, CLKOUT6_DUTY_CYCLE, "CLKOUT6_DUTY_CYCLE"); + end if; + end if; + lock_en_tmp3_int := DIVCLK_DIVIDE * CLKFBOUT_MULT; + if (clkfb_frac_en_v = 1) then + clkout_en_time_i := mf_product_v + 4; + else + clkout_en_time_i := lock_en_tmp3_int; + end if; + pll_lock_time <= 12; + lock_period_time <= 10; + clkout_en_time_i1 := clkout_en_time_i + 12; + clkout_en_time <= clkout_en_time_i1; + locked_en_time <= lock_en_tmp3_int + clkout_en_time_i1 + 2; + lock_cnt_max <= lock_en_tmp3_int + clkout_en_time_i1 + 16; + init_done <= '1'; + + wait; + end process INIPROC; + + + clkinsel_p : process + variable period_clkin : real; + variable clkvco_freq_init_chk : real := 0.0; + variable Message : line; + variable tmpreal1 : real; + variable tmpreal2 : real; + variable first_check : boolean := true; + variable clkin_chk_t1 : real; + variable clkin_chk_t1_tmp1 : real; + variable clkin_chk_t1_tmp2 : real; + variable clkin_chk_t1_tmpi : time; + variable clkin_chk_t1_tmpi1 : integer; + variable clkin_chk_t2 : real; + variable clkin_chk_t2_tmp1 : real; + variable clkin_chk_t2_tmp2 : real; + variable clkin_chk_t2_tmpi : time; + variable clkin_chk_t2_tmpi1 : integer; + begin + + if (first_check = true or rising_edge(clkinsel_in) or falling_edge(clkinsel_in)) then + + if (NOW > 1 ps and rst_in = '0' and (clkinsel_tmp = '0' or clkinsel_tmp = '1')) then + assert false report + "Input Error : PLLE2_ADV input clock can only be switched when RST=1. CLKINSEL is changed when RST low, which should be changed at RST high." + severity error; + end if; + + if (NOW = 0 ps) then + wait for 1 ps; + end if; + + clkin_chk_t1_tmp1 := 1000.0 / CLKIN_FREQ_MIN; + clkin_chk_t1_tmp2 := 1000.0 * clkin_chk_t1_tmp1; + clkin_chk_t1_tmpi := clkin_chk_t1_tmp2 * 1 ps; + clkin_chk_t1_tmpi1 := clkin_chk_t1_tmpi / 1 ps; + clkin_chk_t1 := real(clkin_chk_t1_tmpi1) / 1000.0; + + clkin_chk_t2_tmp1 := 1000.0 / CLKIN_FREQ_MAX; + clkin_chk_t2_tmp2 := 1000.0 * clkin_chk_t2_tmp1; + clkin_chk_t2_tmpi := clkin_chk_t2_tmp2 * 1 ps; + clkin_chk_t2_tmpi1 := clkin_chk_t2_tmpi / 1 ps; + clkin_chk_t2 := real(clkin_chk_t2_tmpi1) / 1000.0; + + + if (((CLKIN1_PERIOD < clkin_chk_t2) or (CLKIN1_PERIOD > clkin_chk_t1)) and (CLKINSEL /= '0')) then + Write ( Message, string'(" Attribute Syntax Error : The attribute CLKIN1_PERIOD is set to ")); + Write ( Message, CLKIN1_PERIOD); + Write ( Message, string'(" ns and out the allowed range ")); + Write ( Message, clkin_chk_t2); + Write ( Message, string'(" ns to ")); + Write ( Message, clkin_chk_t1); + Write ( Message, string'(" ns" )); + Write ( Message, '.' & LF ); + assert false report Message.all severity error; + DEALLOCATE (Message); + end if; + + if (((CLKIN2_PERIOD < clkin_chk_t2) or (CLKIN2_PERIOD > clkin_chk_t1)) and (CLKINSEL = '0')) then + Write ( Message, string'(" Attribute Syntax Error : The attribute CLKIN2_PERIOD is set to ")); + Write ( Message, CLKIN2_PERIOD); + Write ( Message, string'(" ns and out the allowed range ")); + Write ( Message, clkin_chk_t2); + Write ( Message, string'(" ns to ")); + Write ( Message, clkin_chk_t1); + Write ( Message, string'(" ns")); + Write ( Message, '.' & LF ); + assert false report Message.all severity error; + DEALLOCATE (Message); + end if; + + if ( clkinsel_in /= '0') then + period_clkin := CLKIN1_PERIOD; + else + period_clkin := CLKIN2_PERIOD; + end if; + + tmpreal1 := real(CLKFBOUT_MULT); + tmpreal2 := real(DIVCLK_DIVIDE); + if (period_clkin > 0.000) then + clkvco_freq_init_chk := (1000.0 * tmpreal1) / ( period_clkin * tmpreal2); + + if ((clkvco_freq_init_chk > VCOCLK_FREQ_MAX) or (clkvco_freq_init_chk < VCOCLK_FREQ_MIN)) then + Write ( Message, string'(" Attribute Syntax Error : The calculation of VCO frequency=")); + Write ( Message, clkvco_freq_init_chk); + Write ( Message, string'(" Mhz. This exceeds the permitted VCO frequency range of ")); + Write ( Message, VCOCLK_FREQ_MIN); + Write ( Message, string'(" MHz to ")); + Write ( Message, VCOCLK_FREQ_MAX); + if (clkinsel_in /= '0') then + Write ( Message, string'(" MHz. The VCO frequency is calculated with formula: VCO frequency = CLKFBOUT_MULT / (DIVCLK_DIVIDE * CLKIN1_PERIOD).")); + else + Write ( Message, string'(" MHz. The VCO frequency is calculated with formula: VCO frequency = CLKFBOUT_MULT / (DIVCLK_DIVIDE * CLKIN2_PERIOD).")); + end if; + Write ( Message, string'(" Please adjust the attributes to the permitted VCO frequency range.")); + assert false report Message.all severity error; + DEALLOCATE (Message); + end if; + end if; + first_check := false; + end if; + wait on clkinsel_in, clkpll_r; + end process; + + clkpll_r <= clkin1_in when clkinsel_in = '1' else clkin2_in; + pwrdwn_in1 <= '1' when pwrdwn_in = '1' else '0'; + rst_input <= rst_input_r or pwrdwn_in1; + rst_in_o <= rst_in or rst_clkfbstopped or rst_clkinstopped; + + RST_SYNC_P : process (clkpll_r, rst_input) + begin + if (rst_input = '1') then + rst_in <= '1'; + elsif (rising_edge (clkpll_r)) then + rst_in <= rst_input; + end if; + end process; + +--simprim_rst_h + pwrdwn_in1_h_p : process(pwrdwn_in1, pchk_clr) + begin + if (rising_edge(pwrdwn_in1)) then + pwrdwn_in1_h <= '1'; + elsif (rising_edge(pchk_clr)) then + pwrdwn_in1_h <= '0'; + end if; + end process; + + rst_input_r_h_p : process(rst_input_r, pchk_clr) + begin + if (rising_edge(rst_input_r)) then + rst_input_r_h <= '1'; + elsif (rising_edge(pchk_clr)) then + rst_input_r_h <= '0'; + end if; + end process; + + RST_PW_P : process (rst_input) + variable rst_edge : time := 0 ps; + variable rst_ht : time := 0 ps; + begin + if (rising_edge(rst_input)) then + rst_edge := NOW; + elsif ((falling_edge(rst_input)) and rst_edge > 1 ps) then + rst_ht := NOW - rst_edge; + if (rst_ht < 1.5 ns and rst_ht > 0 ps) then + if (rst_input_r_h = '1' and pwrdwn_in1_h = '1') then + assert false report + "Input Error : RST and PWRDWN must be asserted at least for 1.5 ns." + severity error; + elsif (rst_input_r_h = '1' and pwrdwn_in1_h = '0') then + assert false report + "Input Error : RST must be asserted at least for 1.5 ns." + severity error; + elsif (rst_input_r_h = '0' and pwrdwn_in1_h = '1') then + assert false report + "Input Error : PWRDWN must be asserted at least for 1.5 ns." + severity error; + end if; + end if; + end if; + end process; +--endsimprim_rst_h + +---- +---- DRP port read and write +---- + + do_out <= dr_sram(daddr_in_lat); + + DRP_PROC : process + variable address : integer; + variable valid_daddr : boolean := false; + variable Message : line; + variable di_str : string (1 to 16); + variable daddr_str : string ( 1 to 7); + variable first_time : boolean := true; + variable clk_ht : std_logic_vector (6 downto 0); + variable tmp_ht : std_logic_vector (6 downto 0); + variable clk_lt : std_logic_vector (6 downto 0); + variable tmp_lt : std_logic_vector (6 downto 0); + variable clk_nocnt : std_ulogic; + variable clk_edge : std_ulogic; + variable clkout_dly : std_logic_vector (5 downto 0); + variable clkpm_sel : std_logic_vector (2 downto 0); + variable tmpx : std_logic_vector (7 downto 0); + variable clk0_hti : std_logic_vector (6 downto 0); + variable clk1_hti : std_logic_vector (6 downto 0); + variable clk2_hti : std_logic_vector (6 downto 0); + variable clk3_hti : std_logic_vector (6 downto 0); + variable clk4_hti : std_logic_vector (6 downto 0); + variable clk5_hti : std_logic_vector (6 downto 0); + variable clk6_hti : std_logic_vector (6 downto 0); + variable clkfbm1_hti : std_logic_vector (6 downto 0); + variable clkfbm2_hti : std_logic_vector (6 downto 0); + variable clk0_lti : std_logic_vector (6 downto 0); + variable clk1_lti : std_logic_vector (6 downto 0); + variable clk2_lti : std_logic_vector (6 downto 0); + variable clk3_lti : std_logic_vector (6 downto 0); + variable clk4_lti : std_logic_vector (6 downto 0); + variable clk5_lti : std_logic_vector (6 downto 0); + variable clk6_lti : std_logic_vector (6 downto 0); + variable clkfbm1_lti : std_logic_vector (6 downto 0); + variable clkfbm2_lti : std_logic_vector (6 downto 0); + variable clk0_nocnti : std_ulogic; + variable clk1_nocnti : std_ulogic; + variable clk2_nocnti : std_ulogic; + variable clk3_nocnti : std_ulogic; + variable clk4_nocnti : std_ulogic; + variable clk5_nocnti : std_ulogic; + variable clk6_nocnti : std_ulogic; + variable clkfbm1_nocnti : std_ulogic; + variable clkfbm2_nocnti : std_ulogic; + variable clk0_edgei : std_ulogic; + variable clk1_edgei : std_ulogic; + variable clk2_edgei : std_ulogic; + variable clk3_edgei : std_ulogic; + variable clk4_edgei : std_ulogic; + variable clk5_edgei : std_ulogic; + variable clk6_edgei : std_ulogic; + variable clkfbm1_edgei : std_ulogic; + variable clkfbm2_edgei : std_ulogic; + variable clkout0_dly_tmp : integer; + variable clkout5_dly_tmp : integer; + variable clkout6_dly_tmp : integer; + variable clkfbm1_dly_tmp : integer; + variable clk5pm_sel_tmp : integer; + variable clk6pm_sel_tmp : integer; + variable clkout0_dlyi : std_logic_vector (5 downto 0); + variable clkout1_dlyi : std_logic_vector (5 downto 0); + variable clkout2_dlyi : std_logic_vector (5 downto 0); + variable clkout3_dlyi : std_logic_vector (5 downto 0); + variable clkout4_dlyi : std_logic_vector (5 downto 0); + variable clkout5_dlyi : std_logic_vector (5 downto 0); + variable clkout6_dlyi : std_logic_vector (5 downto 0); + variable clkfbm1_dlyi : std_logic_vector (5 downto 0); + variable clkfbm2_dlyi : std_logic_vector (5 downto 0); + variable clk0pm_seli : std_logic_vector (2 downto 0); + variable clk1pm_seli : std_logic_vector (2 downto 0); + variable clk2pm_seli : std_logic_vector (2 downto 0); + variable clk3pm_seli : std_logic_vector (2 downto 0); + variable clk4pm_seli : std_logic_vector (2 downto 0); + variable clk5pm_seli : std_logic_vector (2 downto 0); + variable clk6pm_seli : std_logic_vector (2 downto 0); + variable clkfbm1pm_seli : std_logic_vector (2 downto 0); + variable clkfbm2pm_seli : std_logic_vector (2 downto 0); + variable clkfbm1pm_sel_tmp : integer; + variable clk0pm_sel_tmp : integer; + variable clk_ht1 : integer; + variable clk_div : integer; + variable clk_div1 : integer; + variable clkind_hti : std_logic_vector (6 downto 0); + variable clkind_lti : std_logic_vector (6 downto 0); + variable clkind_nocnti : std_ulogic; + variable clkind_edgei : std_ulogic; + variable pll_cp : std_logic_vector (3 downto 0); + variable pll_res : std_logic_vector (3 downto 0); + variable pll_lfhf : std_logic_vector (1 downto 0); + variable pll_cpres : std_logic_vector (1 downto 0) := "01"; + + variable drp_lock_ref_dly : std_logic_vector (4 downto 0); + variable drp_lock_fb_dly : std_logic_vector (4 downto 0); + variable drp_lock_cnt : std_logic_vector (9 downto 0); + variable drp_unlock_cnt : std_logic_vector (9 downto 0); + variable drp_lock_sat_high : std_logic_vector (9 downto 0); + variable tmpadd : std_logic_vector (4 downto 0); + begin + + if (first_time = true and init_done = '1') then + if (clk0_frac_en = 0) then + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, clk0_div_fint, CLKOUT0_DUTY_CYCLE); + clk0_hti := clk_ht; + clk0_lti := clk_lt; + clk0_nocnti := clk_nocnt; + clk0_edgei := clk_edge; + clk0_ht <= clk0_hti; + clk0_lt <= clk0_lti; + clk0_nocnt <= clk0_nocnti; + clk0_edge <= clk0_edgei; + end if; + + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, CLKOUT1_DIVIDE, CLKOUT1_DUTY_CYCLE); + clk1_hti := clk_ht; + clk1_lti := clk_lt; + clk1_nocnti := clk_nocnt; + clk1_edgei := clk_edge; + clk1_ht <= clk1_hti; + clk1_lt <= clk1_lti; + clk1_nocnt <= clk1_nocnti; + clk1_edge <= clk1_edgei; + + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, CLKOUT2_DIVIDE, CLKOUT2_DUTY_CYCLE); + clk2_hti := clk_ht; + clk2_lti := clk_lt; + clk2_nocnti := clk_nocnt; + clk2_edgei := clk_edge; + clk2_ht <= clk2_hti; + clk2_lt <= clk2_lti; + clk2_nocnt <= clk2_nocnti; + clk2_edge <= clk2_edgei; + + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, CLKOUT3_DIVIDE, CLKOUT3_DUTY_CYCLE); + clk3_hti := clk_ht; + clk3_lti := clk_lt; + clk3_nocnti := clk_nocnt; + clk3_edgei := clk_edge; + clk3_ht <= clk3_hti; + clk3_lt <= clk3_lti; + clk3_nocnt <= clk3_nocnti; + clk3_edge <= clk3_edgei; + + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, CLKOUT4_DIVIDE, CLKOUT4_DUTY_CYCLE); + clk4_hti := clk_ht; + clk4_lti := clk_lt; + clk4_nocnti := clk_nocnt; + clk4_edgei := clk_edge; + clk4_ht <= clk4_hti; + clk4_lt <= clk4_lti; + clk4_nocnt <= clk4_nocnti; + clk4_edge <= clk4_edgei; + + if (clk0_frac_en = 0) then + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, CLKOUT5_DIVIDE, CLKOUT5_DUTY_CYCLE); + clk5_hti := clk_ht; + clk5_lti := clk_lt; + clk5_nocnti := clk_nocnt; + clk5_edgei := clk_edge; + clk5_ht <= clk5_hti; + clk5_lt <= clk5_lti; + clk5_nocnt <= clk5_nocnti; + clk5_edge <= clk5_edgei; + end if; + + if (clkfb_frac_en = 0) then + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, CLKOUT6_DIVIDE, CLKOUT6_DUTY_CYCLE); + clk6_hti := clk_ht; + clk6_lti := clk_lt; + clk6_nocnti := clk_nocnt; + clk6_edgei := clk_edge; + clk6_ht <= clk6_hti; + clk6_lt <= clk6_lti; + clk6_nocnt <= clk6_nocnti; + clk6_edge <= clk6_edgei; + end if; + + if (clkfb_frac_en = 0) then + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, clkfb_div_fint, 0.50); + clkfbm1_hti := clk_ht; + clkfbm1_lti := clk_lt; + clkfbm1_nocnti := clk_nocnt; + clkfbm1_edgei := clk_edge; + clkfbm1_ht <= clkfbm1_hti; + clkfbm1_lt <= clkfbm1_lti; + clkfbm1_nocnt <= clkfbm1_nocnti; + clkfbm1_edge <= clkfbm1_edgei; + end if; + + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, 1, 0.50); + clkfbm2_hti := clk_ht; + clkfbm2_lti := clk_lt; + clkfbm2_nocnti := clk_nocnt; + clkfbm2_edgei := clk_edge; + clkfbm2_ht <= clkfbm2_hti; + clkfbm2_lt <= clkfbm2_lti; + clkfbm2_nocnt <= clkfbm2_nocnti; + clkfbm2_edge <= clkfbm2_edgei; + + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, DIVCLK_DIVIDE, 0.50); + clkind_hti := clk_ht; + clkind_lti := clk_lt; + clkind_nocnti := clk_nocnt; + clkind_edgei := clk_edge; + clkind_ht <= clkind_hti; + clkind_lt <= clkind_lti; + + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk0_hti, clk0_lti, clk0_nocnti, clk0_edgei); + clk0_ht1 <= clk_ht1; + clk0_div <= clk_div; + clk0_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk1_hti, clk1_lti, clk1_nocnti, clk1_edgei); + clk1_ht1 <= clk_ht1; + clk1_div <= clk_div; + clk1_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk2_hti, clk2_lti, clk2_nocnti, clk2_edgei); + clk2_ht1 <= clk_ht1; + clk2_div <= clk_div; + clk2_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk3_hti, clk3_lti, clk3_nocnti, clk3_edgei); + clk3_ht1 <= clk_ht1; + clk3_div <= clk_div; + clk3_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk4_hti, clk4_lti, clk4_nocnti, clk4_edgei); + clk4_ht1 <= clk_ht1; + clk4_div <= clk_div; + clk4_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk5_hti, clk5_lti, clk5_nocnti, clk5_edgei); + clk5_ht1 <= clk_ht1; + clk5_div <= clk_div; + clk5_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk6_hti, clk6_lti, clk6_nocnti, clk6_edgei); + clk6_ht1 <= clk_ht1; + clk6_div <= clk_div; + clk6_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clkfbm1_hti, clkfbm1_lti, clkfbm1_nocnti, clkfbm1_edgei); + clkfbm1_ht1 <= clk_ht1; + if (clkfb_frac_en = 1) then + clkfbm1_div <= clkfb_div_fint; + else + clkfbm1_div <= clk_div; + end if; + clkfbm1_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clkfbm2_hti, clkfbm2_lti, clkfbm2_nocnti, clkfbm2_edgei); + clkfbm2_ht1 <= clk_ht1; + clkfbm2_div <= clk_div; + clkfbm2_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clkind_hti, clkind_lti, clkind_nocnti, '0'); + clkind_ht1 <= clk_ht1; + clkind_div1 <= clk_div1; + clkind_div <= clk_div; + + if (clk0_frac_en = 1) then + clkout0_dly_tmp := clk0_div_fint /2; + clkout0_dly <= clkout0_dly_tmp; + clkout0_dlyi := STD_LOGIC_VECTOR(TO_UNSIGNED(clkout0_dly_tmp, 6)); + if (clk0_div_fint_odd > 0) then + clk0pm_sel_tmp := 8 + clk0_div_frac_int - (8 + clk0_div_frac_int) / 2; + else + clk0pm_sel_tmp := clk0_div_frac_int - (clk0_div_frac_int) / 2; + end if; + clk0pm_sel <= clk0pm_sel_tmp; + clk0pm_seli := STD_LOGIC_VECTOR(TO_UNSIGNED(clk0pm_sel_tmp, 3)); + else + clkout_dly_cal (clkout_dly, clkpm_sel, clk0_div_fint, CLKOUT0_PHASE, "CLKOUT0_PHASE"); + clkout0_dly <= SLV_TO_INT(clkout_dly); + clk0pm_sel <= SLV_TO_INT(clkpm_sel); + clkout0_dlyi := clkout_dly; + clk0pm_seli := clkpm_sel; + end if; + + clkout_dly_cal (clkout_dly, clkpm_sel, CLKOUT1_DIVIDE, CLKOUT1_PHASE, "CLKOUT1_PHASE"); + clkout1_dly <= SLV_TO_INT(clkout_dly); + clk1pm_sel <= SLV_TO_INT(clkpm_sel); + clkout1_dlyi := clkout_dly; + clk1pm_seli := clkpm_sel; + + clkout_dly_cal (clkout_dly, clkpm_sel, CLKOUT2_DIVIDE, CLKOUT2_PHASE, "CLKOUT2_PHASE"); + clkout2_dly <= SLV_TO_INT(clkout_dly); + clk2pm_sel <= SLV_TO_INT(clkpm_sel); + clkout2_dlyi := clkout_dly; + clk2pm_seli := clkpm_sel; + clkout_dly_cal (clkout_dly, clkpm_sel, CLKOUT3_DIVIDE, CLKOUT3_PHASE, "CLKOUT3_PHASE"); + clkout3_dly <= SLV_TO_INT(clkout_dly); + clk3pm_sel <= SLV_TO_INT(clkpm_sel); + clkout3_dlyi := clkout_dly; + clk3pm_seli := clkpm_sel; + clkout_dly_cal (clkout_dly, clkpm_sel, CLKOUT4_DIVIDE, CLKOUT4_PHASE, "CLKOUT4_PHASE"); + clkout4_dly <= SLV_TO_INT(clkout_dly); + clk4pm_sel <= SLV_TO_INT(clkpm_sel); + clkout4_dlyi := clkout_dly; + clk4pm_seli := clkpm_sel; + clkout_dly_cal (clkout_dly, clkpm_sel, CLKOUT5_DIVIDE, CLKOUT5_PHASE, "CLKOUT5_PHASE"); + if (clk0_frac_en = 1) then + clkout5_dly_tmp := clk0_div_fint / 2; + clkout5_dly <= clkout5_dly_tmp; + clkout5_dlyi := STD_LOGIC_VECTOR(TO_UNSIGNED(clkout5_dly_tmp, 6)); + if (clk0_div_fint_odd > 0) then + clk5pm_sel_tmp := (8 + clk0_div_frac_int) / 2; + else + clk5pm_sel_tmp := clk0_div_frac_int / 2; + end if; + clk5pm_sel <= clk5pm_sel_tmp; + clk5pm_seli := STD_LOGIC_VECTOR(TO_UNSIGNED(clk5pm_sel_tmp, 3)); + else + clkout5_dly <= SLV_TO_INT(clkout_dly); + clk5pm_sel <= SLV_TO_INT(clkpm_sel); + clkout5_dlyi := clkout_dly; + clk5pm_seli := clkpm_sel; + end if; + clkout_dly_cal (clkout_dly, clkpm_sel, clkfb_div_fint, CLKFBOUT_PHASE, "CLKFBOUT_PHASE"); + if (clkfb_frac_en = 1) then + clkfbm1_dly_tmp := clkfb_div_fint /2; + clkfbm1_dly <= clkfbm1_dly_tmp; + clkfbm1_dlyi := STD_LOGIC_VECTOR(TO_UNSIGNED(clkfbm1_dly_tmp, 6)); + if (clkfb_div_fint_odd > 0) then + clkfbm1pm_sel_tmp := 8 + clkfb_div_frac_int - (8 + clkfb_div_frac_int) / 2; + else + clkfbm1pm_sel_tmp := clkfb_div_frac_int / 2; + end if; + clkfbm1pm_sel <= clkfbm1pm_sel_tmp; + clkfbm1pm_seli := STD_LOGIC_VECTOR(TO_UNSIGNED(clkfbm1pm_sel_tmp, 3)); + else + clkfbm1_dly <= SLV_TO_INT(clkout_dly); + clkfbm1pm_sel <= SLV_TO_INT(clkpm_sel); + clkfbm1_dlyi := clkout_dly; + clkfbm1pm_seli := clkpm_sel; + end if; + + clkout_dly_cal (clkout_dly, clkpm_sel, CLKOUT6_DIVIDE, CLKOUT6_PHASE, "CLKOUT6_PHASE"); + if (clkfb_frac_en = 1) then + clkout6_dly_tmp := clkfb_div_fint / 2; + clkout6_dly <= clkout6_dly_tmp; + clkout6_dlyi := STD_LOGIC_VECTOR(TO_UNSIGNED(clkout6_dly_tmp, 6)); + if (clkfb_div_fint_odd > 0) then + clk6pm_sel_tmp := (8 + clkfb_div_frac_int) / 2; + else + clk6pm_sel_tmp := clkfb_div_frac_int / 2; + end if; + clk6pm_sel <= clk6pm_sel_tmp; + clk6pm_seli := STD_LOGIC_VECTOR(TO_UNSIGNED(clk6pm_sel_tmp, 3)); + else + clkout6_dly <= SLV_TO_INT(clkout_dly); + clk6pm_sel <= SLV_TO_INT(clkpm_sel); + clkout6_dlyi := clkout_dly; + clk6pm_seli := clkpm_sel; + end if; + +-- if (BANDWIDTH = "LOW") then +-- pll_lfhf := "11"; +-- else + pll_lfhf := "00"; +-- end if; + + if (BANDWIDTH = "LOW") then + case clkfb_div_fint is + when 1 => pll_cp := "0010"; pll_res := "1111"; + when 2 => pll_cp := "0010"; pll_res := "1111"; + when 3 => pll_cp := "0010"; pll_res := "0111"; + when 4 => pll_cp := "0010"; pll_res := "1101"; + when 5 => pll_cp := "0010"; pll_res := "0101"; + when 6 => pll_cp := "0010"; pll_res := "0101"; + when 7 => pll_cp := "0010"; pll_res := "1001"; + when 8 => pll_cp := "0010"; pll_res := "1110"; + when 9 => pll_cp := "0010"; pll_res := "1110"; + when 10 => pll_cp := "0010"; pll_res := "0001"; + when 11 => pll_cp := "0010"; pll_res := "0001"; + when 12 => pll_cp := "0010"; pll_res := "0110"; + when 13 => pll_cp := "0010"; pll_res := "0110"; + when 14 => pll_cp := "0010"; pll_res := "0110"; + when 15 => pll_cp := "0010"; pll_res := "0110"; + when 16 => pll_cp := "0010"; pll_res := "1010"; + when 17 => pll_cp := "0010"; pll_res := "1010"; + when 18 => pll_cp := "0010"; pll_res := "1010"; + when 19 => pll_cp := "0010"; pll_res := "1010"; + when 20 => pll_cp := "0010"; pll_res := "1100"; + when 21 => pll_cp := "0010"; pll_res := "1100"; + when 22 => pll_cp := "0010"; pll_res := "1100"; + when 23 => pll_cp := "0010"; pll_res := "1100"; + when 24 => pll_cp := "0010"; pll_res := "1100"; + when 25 => pll_cp := "0010"; pll_res := "1100"; + when 26 => pll_cp := "0010"; pll_res := "1100"; + when 27 => pll_cp := "0010"; pll_res := "1100"; + when 28 => pll_cp := "0010"; pll_res := "1100"; + when 29 => pll_cp := "0010"; pll_res := "1100"; + when 30 => pll_cp := "0010"; pll_res := "1100"; + when 31 => pll_cp := "0010"; pll_res := "0010"; + when 32 => pll_cp := "0010"; pll_res := "0010"; + when 33 => pll_cp := "0010"; pll_res := "0010"; + when 34 => pll_cp := "0010"; pll_res := "0010"; + when 35 => pll_cp := "0010"; pll_res := "0010"; + when 36 => pll_cp := "0010"; pll_res := "0010"; + when 37 => pll_cp := "0010"; pll_res := "0010"; + when 38 => pll_cp := "0010"; pll_res := "0010"; + when 39 => pll_cp := "0010"; pll_res := "0010"; + when 40 => pll_cp := "0010"; pll_res := "0010"; + when 41 => pll_cp := "0011"; pll_res := "1100"; + when 42 => pll_cp := "0011"; pll_res := "1100"; + when 43 => pll_cp := "0011"; pll_res := "1100"; + when 44 => pll_cp := "0011"; pll_res := "1100"; + when 45 => pll_cp := "0011"; pll_res := "1100"; + when 46 => pll_cp := "0011"; pll_res := "1100"; + when 47 => pll_cp := "0011"; pll_res := "1100"; + when 48 => pll_cp := "0010"; pll_res := "0100"; + when 49 => pll_cp := "0010"; pll_res := "0100"; + when 50 => pll_cp := "0010"; pll_res := "0100"; + when 51 => pll_cp := "0010"; pll_res := "0100"; + when 52 => pll_cp := "0010"; pll_res := "0100"; + when 53 => pll_cp := "0010"; pll_res := "0100"; + when 54 => pll_cp := "0010"; pll_res := "0100"; + when 55 => pll_cp := "0010"; pll_res := "0100"; + when 56 => pll_cp := "0010"; pll_res := "0100"; + when 57 => pll_cp := "0010"; pll_res := "0100"; + when 58 => pll_cp := "0010"; pll_res := "0100"; + when 59 => pll_cp := "0010"; pll_res := "0100"; + when 60 => pll_cp := "0010"; pll_res := "0100"; + when 61 => pll_cp := "0010"; pll_res := "0100"; + when 62 => pll_cp := "0010"; pll_res := "0100"; + when 63 => pll_cp := "0010"; pll_res := "0100"; + when 64 => pll_cp := "0010"; pll_res := "0100"; + when others => NULL; + end case; + elsif (BANDWIDTH = "HIGH") then + case clkfb_div_fint is + when 1 => pll_cp := "0011"; pll_res := "0111"; + when 2 => pll_cp := "0011"; pll_res := "0111"; + when 3 => pll_cp := "0101"; pll_res := "1111"; + when 4 => pll_cp := "0111"; pll_res := "1111"; + when 5 => pll_cp := "0111"; pll_res := "1011"; + when 6 => pll_cp := "1101"; pll_res := "0111"; + when 7 => pll_cp := "1110"; pll_res := "1011"; + when 8 => pll_cp := "1110"; pll_res := "1101"; + when 9 => pll_cp := "1111"; pll_res := "1101"; + when 10 => pll_cp := "1111"; pll_res := "0111"; + when 11 => pll_cp := "1111"; pll_res := "1011"; + when 12 => pll_cp := "1111"; pll_res := "1101"; + when 13 => pll_cp := "1111"; pll_res := "0011"; + when 14 => pll_cp := "1110"; pll_res := "0101"; + when 15 => pll_cp := "1111"; pll_res := "0101"; + when 16 => pll_cp := "1111"; pll_res := "0101"; + when 17 => pll_cp := "1111"; pll_res := "0101"; + when 18 => pll_cp := "1111"; pll_res := "0101"; + when 19 => pll_cp := "0111"; pll_res := "0110"; + when 20 => pll_cp := "0111"; pll_res := "0110"; + when 21 => pll_cp := "0111"; pll_res := "0110"; + when 22 => pll_cp := "0111"; pll_res := "0110"; + when 23 => pll_cp := "0101"; pll_res := "1100"; + when 24 => pll_cp := "0101"; pll_res := "1100"; + when 25 => pll_cp := "0101"; pll_res := "1100"; + when 26 => pll_cp := "1100"; pll_res := "0001"; + when 27 => pll_cp := "1100"; pll_res := "0001"; + when 28 => pll_cp := "1100"; pll_res := "0001"; + when 29 => pll_cp := "1100"; pll_res := "0001"; + when 30 => pll_cp := "1100"; pll_res := "0001"; + when 31 => pll_cp := "1100"; pll_res := "0001"; + when 32 => pll_cp := "1100"; pll_res := "0001"; + when 33 => pll_cp := "1100"; pll_res := "0001"; + when 34 => pll_cp := "0100"; pll_res := "0010"; + when 35 => pll_cp := "0100"; pll_res := "0010"; + when 36 => pll_cp := "0100"; pll_res := "0010"; + when 37 => pll_cp := "0010"; pll_res := "1000"; + when 38 => pll_cp := "0010"; pll_res := "1000"; + when 39 => pll_cp := "0010"; pll_res := "1000"; + when 40 => pll_cp := "0011"; pll_res := "0100"; + when 41 => pll_cp := "0010"; pll_res := "1000"; + when 42 => pll_cp := "0010"; pll_res := "1000"; + when 43 => pll_cp := "0010"; pll_res := "1000"; + when 44 => pll_cp := "0010"; pll_res := "1000"; + when 45 => pll_cp := "0010"; pll_res := "1000"; + when 46 => pll_cp := "0010"; pll_res := "1000"; + when 47 => pll_cp := "0010"; pll_res := "1000"; + when 48 => pll_cp := "0010"; pll_res := "1000"; + when 49 => pll_cp := "0010"; pll_res := "1000"; + when 50 => pll_cp := "0010"; pll_res := "1000"; + when 51 => pll_cp := "0010"; pll_res := "1000"; + when 52 => pll_cp := "0010"; pll_res := "1000"; + when 53 => pll_cp := "0010"; pll_res := "1000"; + when 54 => pll_cp := "0100"; pll_res := "1100"; + when 55 => pll_cp := "0100"; pll_res := "1100"; + when 56 => pll_cp := "0100"; pll_res := "1100"; + when 57 => pll_cp := "0100"; pll_res := "1100"; + when 58 => pll_cp := "0100"; pll_res := "1100"; + when 59 => pll_cp := "0100"; pll_res := "1100"; + when 60 => pll_cp := "0100"; pll_res := "1100"; + when 61 => pll_cp := "0010"; pll_res := "0100"; + when 62 => pll_cp := "0010"; pll_res := "0100"; + when 63 => pll_cp := "0010"; pll_res := "0100"; + when 64 => pll_cp := "0010"; pll_res := "0100"; + when others => NULL; + end case; + elsif (BANDWIDTH = "OPTIMIZED") then + case clkfb_div_fint is + when 1 => pll_cp := "0011"; pll_res := "0111"; + when 2 => pll_cp := "0011"; pll_res := "0111"; + when 3 => pll_cp := "0101"; pll_res := "1111"; + when 4 => pll_cp := "0111"; pll_res := "1111"; + when 5 => pll_cp := "0111"; pll_res := "1011"; + when 6 => pll_cp := "1101"; pll_res := "0111"; + when 7 => pll_cp := "1110"; pll_res := "1011"; + when 8 => pll_cp := "1110"; pll_res := "1101"; + when 9 => pll_cp := "1111"; pll_res := "1101"; + when 10 => pll_cp := "1111"; pll_res := "0111"; + when 11 => pll_cp := "1111"; pll_res := "1011"; + when 12 => pll_cp := "1111"; pll_res := "1101"; + when 13 => pll_cp := "1111"; pll_res := "0011"; + when 14 => pll_cp := "1110"; pll_res := "0101"; + when 15 => pll_cp := "1111"; pll_res := "0101"; + when 16 => pll_cp := "1111"; pll_res := "0101"; + when 17 => pll_cp := "1111"; pll_res := "0101"; + when 18 => pll_cp := "1111"; pll_res := "0101"; + when 19 => pll_cp := "0111"; pll_res := "0110"; + when 20 => pll_cp := "0111"; pll_res := "0110"; + when 21 => pll_cp := "0111"; pll_res := "0110"; + when 22 => pll_cp := "0111"; pll_res := "0110"; + when 23 => pll_cp := "0101"; pll_res := "1100"; + when 24 => pll_cp := "0101"; pll_res := "1100"; + when 25 => pll_cp := "0101"; pll_res := "1100"; + when 26 => pll_cp := "1100"; pll_res := "0001"; + when 27 => pll_cp := "1100"; pll_res := "0001"; + when 28 => pll_cp := "1100"; pll_res := "0001"; + when 29 => pll_cp := "1100"; pll_res := "0001"; + when 30 => pll_cp := "1100"; pll_res := "0001"; + when 31 => pll_cp := "1100"; pll_res := "0001"; + when 32 => pll_cp := "1100"; pll_res := "0001"; + when 33 => pll_cp := "1100"; pll_res := "0001"; + when 34 => pll_cp := "0100"; pll_res := "0010"; + when 35 => pll_cp := "0100"; pll_res := "0010"; + when 36 => pll_cp := "0100"; pll_res := "0010"; + when 37 => pll_cp := "0010"; pll_res := "1000"; + when 38 => pll_cp := "0010"; pll_res := "1000"; + when 39 => pll_cp := "0010"; pll_res := "1000"; + when 40 => pll_cp := "0011"; pll_res := "0100"; + when 41 => pll_cp := "0010"; pll_res := "1000"; + when 42 => pll_cp := "0010"; pll_res := "1000"; + when 43 => pll_cp := "0010"; pll_res := "1000"; + when 44 => pll_cp := "0010"; pll_res := "1000"; + when 45 => pll_cp := "0010"; pll_res := "1000"; + when 46 => pll_cp := "0010"; pll_res := "1000"; + when 47 => pll_cp := "0010"; pll_res := "1000"; + when 48 => pll_cp := "0010"; pll_res := "1000"; + when 49 => pll_cp := "0010"; pll_res := "1000"; + when 50 => pll_cp := "0010"; pll_res := "1000"; + when 51 => pll_cp := "0010"; pll_res := "1000"; + when 52 => pll_cp := "0010"; pll_res := "1000"; + when 53 => pll_cp := "0010"; pll_res := "1000"; + when 54 => pll_cp := "0100"; pll_res := "1100"; + when 55 => pll_cp := "0100"; pll_res := "1100"; + when 56 => pll_cp := "0100"; pll_res := "1100"; + when 57 => pll_cp := "0100"; pll_res := "1100"; + when 58 => pll_cp := "0100"; pll_res := "1100"; + when 59 => pll_cp := "0100"; pll_res := "1100"; + when 60 => pll_cp := "0100"; pll_res := "1100"; + when 61 => pll_cp := "0010"; pll_res := "0100"; + when 62 => pll_cp := "0010"; pll_res := "0100"; + when 63 => pll_cp := "0010"; pll_res := "0100"; + when 64 => pll_cp := "0010"; pll_res := "0100"; + when others => NULL; + end case; + end if; + + + case clkfb_div_fint is + when 1 => drp_lock_ref_dly := "00110"; + drp_lock_fb_dly := "00110"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 2 => drp_lock_ref_dly := "00110"; + drp_lock_fb_dly := "00110"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 3 => drp_lock_ref_dly := "01000"; + drp_lock_fb_dly := "01000"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 4 => drp_lock_ref_dly := "01011"; + drp_lock_fb_dly := "01011"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 5 => drp_lock_ref_dly := "01110"; + drp_lock_fb_dly := "01110"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 6 => drp_lock_ref_dly := "10001"; + drp_lock_fb_dly := "10001"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 7 => drp_lock_ref_dly := "10011"; + drp_lock_fb_dly := "10011"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 8 => drp_lock_ref_dly := "10110"; + drp_lock_fb_dly := "10110"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 9 => drp_lock_ref_dly := "11001"; + drp_lock_fb_dly := "11001"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 10 => drp_lock_ref_dly := "11100"; + drp_lock_fb_dly := "11100"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 11 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1110000100"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 12 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1100111001"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 13 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1011101110"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 14 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1010111100"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 15 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1010001010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 16 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1001110001"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 17 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1000111111"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 18 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1000100110"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 19 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1000001101"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 20 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0111110100"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 21 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0111011011"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 22 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0111000010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 23 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0110101001"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 24 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0110010000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 25 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0110010000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 26 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0101110111"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 27 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0101011110"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 28 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0101011110"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 29 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0101000101"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 30 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0101000101"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 31 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0100101100"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 32 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0100101100"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 33 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0100101100"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 34 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0100010011"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 35 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0100010011"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 36 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0100010011"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 37 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 38 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 39 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 40 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 41 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 42 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 43 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 44 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 45 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 46 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 47 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 48 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 49 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 50 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 51 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 52 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 53 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 54 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 55 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 56 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 57 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 58 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 59 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 60 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 61 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 62 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 63 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 64 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when others => NULL; + end case; + + + tmpx := ('X' & 'X' & 'X' & 'X' & 'X' & 'X' & '0' & '0' ); + dr_sram(9) <= (tmpx(7) & "0000000" & clk0_edgei & clk0_nocnti & clkout0_dlyi(5 downto 0)); + dr_sram(8) <= (clk0pm_seli(2 downto 0) & '1' & clk0_hti(5 downto 0) & clk0_lti(5 downto 0)); + dr_sram(11) <= (tmpx(7 downto 0) & clk1_edgei & clk1_nocnti & clkout1_dlyi(5 downto 0)); + dr_sram(10) <= (clk1pm_seli(2 downto 0) & '1' & clk1_hti(5 downto 0) & clk1_lti(5 downto 0)); + dr_sram(13) <= (tmpx(7 downto 0) & clk2_edgei & clk2_nocnti & clkout2_dlyi(5 downto 0)); + dr_sram(12) <= (clk2pm_seli(2 downto 0) & '1' & clk2_hti(5 downto 0) & clk2_lti(5 downto 0)); + dr_sram(15) <= (tmpx(7 downto 0) & clk3_edgei & clk3_nocnti & clkout3_dlyi(5 downto 0)); + dr_sram(14) <= (clk3pm_seli(2 downto 0) & '1' & clk3_hti(5 downto 0) & clk3_lti(5 downto 0)); + dr_sram(17) <= (tmpx(7 downto 0) & clk4_edgei & clk4_nocnti & clkout4_dlyi(5 downto 0)); + dr_sram(16) <= (clk4pm_seli(2 downto 0) & '1' & clk4_hti(5 downto 0) & clk4_lti(5 downto 0)); + dr_sram(7) <= (tmpx(7 downto 3) & "000" & clk5_edgei & clk5_nocnti & clkout5_dlyi(5 downto 0)); + dr_sram(6) <= (clk5pm_seli(2 downto 0) & '1' & clk5_hti(5 downto 0) & clk5_lti(5 downto 0)); + dr_sram(19) <= (tmpx(7 downto 3) & "000" & clk6_edgei & clk6_nocnti & clkout6_dlyi(5 downto 0)); + dr_sram(18) <= (clk6pm_seli(2 downto 0) & '1' & clk6_hti(5 downto 0) & clk6_lti(5 downto 0)); + dr_sram(21) <= (tmpx(7) & "0000000" & clkfbm1_edgei & clkfbm1_nocnti & clkfbm1_dlyi(5 downto 0)); + dr_sram(20) <= (clkfbm1pm_seli(2 downto 0) & '1' & clkfbm1_hti(5 downto 0) & clkfbm1_lti(5 downto 0)); + dr_sram(22) <= (tmpx(7 downto 6) & clkind_edgei & clkind_nocnti & clkind_hti(5 downto 0) & clkind_lti(5 downto 0)); + dr_sram(24) <= ("XXXXXX" & drp_lock_cnt); + dr_sram(25) <= ('X' & drp_lock_fb_dly & drp_unlock_cnt); + dr_sram(26) <= ('X' & drp_lock_ref_dly & drp_lock_sat_high); + dr_sram(40) <= "1XX11XX11XX11XX1"; + dr_sram(78) <= (pll_cp(3) & "XX" & pll_cp(2) & pll_cp(1) & "XX" & pll_cp(0) & "0XX00XXX"); + dr_sram(79) <= (pll_res(3) & "XX" & pll_res(2) & pll_res(1) & "XX" & pll_res(0) & pll_lfhf(1) & "XX" & pll_lfhf(0) & "XXXX"); + dr_sram(116) <= (tmpx(7 downto 3) & "00000000001" ); + + first_time := false; + + end if; + + if (GSR = '1') then + drp_lock <= '0'; + elsif (rising_edge(dclk_in)) then + if (den_in = '1') then + valid_daddr := addr_is_valid(daddr_in); + if (valid_daddr) then + address := slv_to_int(daddr_in); + daddr_in_lat <= address; + end if; + + if (drp_lock = '1') then + assert false report " Warning : DEN is high at PLLE2_ADV before DRDY high . Need wait for DRDY signal before next read/write operation through DRP. " severity warning; + else + drp_lock <= '1'; + end if; + + if (valid_daddr and ( address = 116 or address = 78 or address = 79 or + (address >= 24 and address <= 26) or + address = 40 or (address >= 6 and address <= 22))) then + else + Write ( Message, string'(" Warning : Address DADDR=")); + Write ( Message, address); + Write ( Message, string'(" on the PLLE2_ADV instance is unsupported") ); + Write ( Message, '.' & LF ); + assert false report Message.all severity warning; + DEALLOCATE (Message); + end if; + + if (dwe_in = '1') then + if (rst_input = '1') then + if (valid_daddr and ( address = 116 or address = 78 or address = 79 or + (address >= 24 and address <= 26) or + address = 40 or (address >= 6 and address <= 22))) then + dr_sram(address) <= di_in; + di_str := SLV_TO_STR(di_in); + end if; + + if (daddr_in = "0001001") then + daddr_str := "0001001"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout0_dly <= SLV_TO_INT(clkout_dly); + clk0_nocnt <= clk_nocnt; + clk0_nocnti := clk_nocnt; + clk0_edgei := clk_edge; + clk0_edge <= clk_edge; + end if; + + if (daddr_in = "0001000") then + daddr_str := "0001000"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk0_lt <= clk_lt; + clk0_ht <= clk_ht; + clk0_lti := clk_lt; + clk0_hti := clk_ht; + clk0pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0001011") then + daddr_str := "0001011"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout1_dly <= SLV_TO_INT(clkout_dly); + clk1_nocnt <= clk_nocnt; + clk1_nocnti := clk_nocnt; + clk1_edgei := clk_edge; + clk1_edge <= clk_edge; + end if; + + + if (daddr_in = "0001010") then + daddr_str := "0001010"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk1_lt <= clk_lt; + clk1_ht <= clk_ht; + clk1_lti := clk_lt; + clk1_hti := clk_ht; + clk1pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0001101") then + daddr_str := "0001101"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout2_dly <= SLV_TO_INT(clkout_dly); + clk2_nocnt <= clk_nocnt; + clk2_nocnti := clk_nocnt; + clk2_edgei := clk_edge; + clk2_edge <= clk_edge; + end if; + + if (daddr_in = "0001100") then + daddr_str := "0001100"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk2_lt <= clk_lt; + clk2_ht <= clk_ht; + clk2_lti := clk_lt; + clk2_hti := clk_ht; + clk2pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0001111") then + daddr_str := "0001111"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout3_dly <= SLV_TO_INT(clkout_dly); + clk3_nocnt <= clk_nocnt; + clk3_nocnti := clk_nocnt; + clk3_edgei := clk_edge; + clk3_edge <= clk_edge; + end if; + + if (daddr_in = "0001110") then + daddr_str := "0001110"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk3_lt <= clk_lt; + clk3_ht <= clk_ht; + clk3_lti := clk_lt; + clk3_hti := clk_ht; + clk3pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0010001") then + daddr_str := "0010001"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout4_dly <= SLV_TO_INT(clkout_dly); + clk4_nocnt <= clk_nocnt; + clk4_nocnti := clk_nocnt; + clk4_edgei := clk_edge; + clk4_edge <= clk_edge; + end if; + + if (daddr_in = "0010000") then + daddr_str := "0010000"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk4_lt <= clk_lt; + clk4_ht <= clk_ht; + clk4_lti := clk_lt; + clk4_hti := clk_ht; + clk4pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0000111") then + daddr_str := "0000111"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout5_dly <= SLV_TO_INT(clkout_dly); + clk5_nocnt <= clk_nocnt; + clk5_nocnti := clk_nocnt; + clk5_edgei := clk_edge; + clk5_edge <= clk_edge; + end if; + + if (daddr_in = "0000110") then + daddr_str := "0000110"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk5_lt <= clk_lt; + clk5_lti := clk_lt; + clk5_ht <= clk_ht; + clk5_hti := clk_ht; + clk5pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0010011") then + daddr_str := "0010011"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout6_dly <= SLV_TO_INT(clkout_dly); + clk6_nocnt <= clk_nocnt; + clk6_nocnti := clk_nocnt; + clk6_edgei := clk_edge; + clk6_edge <= clk_edge; + end if; + + if (daddr_in = "0010010") then + daddr_str := "0010010"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk6_lt <= clk_lt; + clk6_lti := clk_lt; + clk6_ht <= clk_ht; + clk6_hti := clk_ht; + clk6pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0010101") then + daddr_str := "0010101"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkfbm1_dly <= SLV_TO_INT(clkout_dly); + clkfbm1_nocnt <= clk_nocnt; + clkfbm1_nocnti := clk_nocnt; + clkfbm1_edge <= clk_edge; + clkfbm1_edgei := clk_edge; + end if; + + if (daddr_in = "0010100") then + daddr_str := "0010100"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clkfbm1_lt <= clk_lt; + clkfbm1_lti := clk_lt; + clkfbm1_ht <= clk_ht; + clkfbm1_hti := clk_ht; + clkfbm1pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0010110") then + clkind_lti := ('0' & di_in(11 downto 6)); + clkind_hti := ('0' & di_in(5 downto 0)); + clkind_lt <= clkind_lti; + clkind_ht <= clkind_hti; + clkind_nocnti := di_in(12); + clkind_edgei := di_in(13); + end if; + + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk0_hti, clk0_lti, clk0_nocnti, clk0_edgei); + clk0_ht1 <= clk_ht1; + clk0_div <= clk_div; + clk0_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk1_hti, clk1_lti, clk1_nocnti, clk1_edgei); + clk1_ht1 <= clk_ht1; + clk1_div <= clk_div; + clk1_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk2_hti, clk2_lti, clk2_nocnti, clk2_edgei); + clk2_ht1 <= clk_ht1; + clk2_div <= clk_div; + clk2_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk3_hti, clk3_lti, clk3_nocnti, clk3_edgei); + clk3_ht1 <= clk_ht1; + clk3_div <= clk_div; + clk3_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk4_hti, clk4_lti, clk4_nocnti, clk4_edgei); + clk4_ht1 <= clk_ht1; + clk4_div <= clk_div; + clk4_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk5_hti, clk5_lti, clk5_nocnti, clk5_edgei); + clk5_ht1 <= clk_ht1; + clk5_div <= clk_div; + clk5_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk6_hti, clk6_lti, clk6_nocnti, clk6_edgei); + clk6_ht1 <= clk_ht1; + clk6_div <= clk_div; + clk6_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clkfbm1_hti, clkfbm1_lti, clkfbm1_nocnti, clkfbm1_edgei); + clkfbm1_ht1 <= clk_ht1; + clkfbm1_div <= clk_div; + clkfbm1_div1 <= clk_div1; + if (clk_div > 64 or clk_div < 2 ) then + assert false report " Input Error : The sum of DI[11:6] and DI[5:0] Address DADDR=0010100 is CLKFBOUT clock divider of PLLE2_ADV and over the 2 to 64 range." severity error; + end if; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clkfbm2_hti, clkfbm2_lti, clkfbm2_nocnti, clkfbm2_edgei); + clkfbm2_ht1 <= clk_ht1; + clkfbm2_div <= clk_div; + clkfbm2_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clkind_hti, clkind_lti, clkind_nocnti, '0'); + clkind_ht1 <= clk_ht1; + clkind_div <= clk_div; + clkind_div1 <= clk_div1; + if (clk_div > 106 or (clk_div < 1 and clkind_nocnti = '0')) then + assert false report " Input Error : The sum of DI[11:6] and DI[5:0] Address DADDR=0010110 is input clock divider of PLLE2_ADV and over the 1 to 80 range." severity error; + end if; + + else + assert false report " Error : RST is low at PLLE2_ADV. RST need to be high when change PLLE2_ADV paramters through DRP. " severity error; + end if; -- end rst + + end if; --DWE + end if; --DEN + + if ( drp_lock = '1') then + drp_lock <= '0'; + drp_lock1 <= '1'; + end if; + if (drp_lock1 = '1') then + drp_lock1 <= '0'; + drdy_out <= '1'; + end if; + if (drdy_out = '1') then + drdy_out <= '0'; + end if; + end if; -- end GSR + + wait on dclk_in, GSR, init_done; + end process; + + ps_in_ps_p : process(psclk_in, rst_in, init_done) + variable ps_cnt_neg : integer; + variable ps_in_ps_neg : integer; + begin + if (rising_edge(init_done)) then + ps_in_ps <= ps_in_init; + ps_cnt <= 0; + end if; + + if (rst_in = '1') then + ps_in_ps <= ps_in_init; + ps_cnt <= 0; + psen_w <= '0'; + elsif (rising_edge(psclk_in)) then + if (fps_en = 1) then + if (psen_in = '1') then + if (psen_w = '1') then + assert false report " Error : PSEN on PLLE2_ADV is active more than 1 PSCLK period. PSEN must be active for only one PSCLK period. " + severity warning; + end if; + psen_w <= '1'; + if (ps_lock = '1') then + assert false report " Warning : Please wait for PSDONE signal before adjusting the Phase Shift. " + severity warning; + elsif (psincdec_in = '1') then + if (ps_cnt < ps_max) then + ps_cnt <= ps_cnt + 1; + else + ps_cnt <= 0; + end if; + if (ps_in_ps < ps_max) then + ps_in_ps <= ps_in_ps + 1; + else + ps_in_ps <= 0; + end if; + ps_lock <= '1'; + elsif (psincdec_in = '0') then + ps_cnt_neg := (-1) * ps_cnt; + ps_in_ps_neg := (-1) * ps_in_ps; + if (ps_cnt_neg < ps_max) then + ps_cnt <= ps_cnt - 1; + else + ps_cnt <= 0; + end if; + if (ps_in_ps_neg < ps_max) then + ps_in_ps <= ps_in_ps - 1; + else + ps_in_ps <= 0; + end if; + ps_lock <= '1'; + end if; + else + psen_w <= '0'; + end if; + if ( psdone_out = '1') then + ps_lock <= '0'; + end if; + end if; + end if; + end process; + + psdone_out_p : process + begin + if (rising_edge(ps_lock)) then + if (fps_en = 1) then + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + psdone_out <= '1'; + wait until (rising_edge(psclk_in)); + psdone_out <= '0'; + end if; + end if; + wait on ps_lock; + end process; + + CLOCK_PERIOD_P : process (clkpll_r, rst_in, rst_clkinsel_flag) + variable clkin_edge_previous : time := 0 ps; + variable clkin_edge_current : time := 0 ps; + begin + if (rst_in = '1' or rst_clkinsel_flag = '1') then + clkin_period(0) <= period_vco_target; + clkin_period(1) <= period_vco_target; + clkin_period(2) <= period_vco_target; + clkin_period(3) <= period_vco_target; + clkin_period(4) <= period_vco_target; + clkin_jit <= 0 ps; + clkin_lock_cnt <= 0; + pll_locked_tm <= '0'; + pll_locked_tmp1 <= '0'; + lock_period <= '0'; + clkout_en0_tmp <= '0'; + unlock_recover <= '0'; + clkin_edge_previous := 0 ps; + elsif (rising_edge(clkpll_r)) then + clkin_edge_current := NOW; + if (clkin_edge_previous /= 0 ps and clkinstopped_out = '0' and + rst_clkinsel_flag = '0') then + clkin_period(4) <= clkin_period(3); + clkin_period(3) <= clkin_period(2); + clkin_period(2) <= clkin_period(1); + clkin_period(1) <= clkin_period(0); + clkin_period(0) <= clkin_edge_current - clkin_edge_previous; + end if; + + if (pll_unlock = '0' and clkin_edge_previous /= 0 ps and clkinstopped_out = '0') then + clkin_jit <= clkin_edge_current - clkin_edge_previous - clkin_period(0); + else + clkin_jit <= 0 ps; + end if; + + clkin_edge_previous := clkin_edge_current; + + if ( pll_unlock1 = '0' and (clkin_lock_cnt < lock_cnt_max) and fb_delay_found = '1' ) then + clkin_lock_cnt <= clkin_lock_cnt + 1; + elsif (pll_unlock1 = '1' and pll_locked_tmp1 = '1' ) then + clkin_lock_cnt <= lock_cnt_max - 6; + unlock_recover <= '1'; + end if; + + if ( clkin_lock_cnt >= PLL_LOCK_TIME and pll_unlock1 = '0') then + pll_locked_tm <= '1'; + end if; + + if ( clkin_lock_cnt = lock_period_time ) then + lock_period <= '1'; + end if; + + if (clkin_lock_cnt >= clkout_en_time and pll_locked_tm = '1') then + clkout_en0_tmp <= '1'; + end if; + + if (clkin_lock_cnt >= locked_en_time and clkout_en = '1') then + pll_locked_tmp1 <= '1'; + end if; + + if (unlock_recover = '1' and clkin_lock_cnt >= lock_cnt_max) then + unlock_recover <= '0'; + end if; + + end if; + end process; + + pchk_p : process(pll_locked_tmp1) + variable pchk_tmp1 : time; + variable pchk_tmp2 : time; + begin + if (rising_edge(pll_locked_tmp1)) then + if (clkinsel_in = '0') then + pchk_tmp1 := CLKIN2_PERIOD * 1100 ps; + pchk_tmp2 := CLKIN2_PERIOD * 900 ps; + if (period_avg > pchk_tmp1 or period_avg < pchk_tmp2) then + assert false report "Error : input CLKIN2 period and attribute CLKIN2_PERIOD are not same." severity error ; + end if; + else + pchk_tmp1 := CLKIN1_PERIOD * 1100 ps; + pchk_tmp2 := CLKIN1_PERIOD * 900 ps; + if (period_avg > pchk_tmp1 or period_avg < pchk_tmp2) then + assert false report "Error : input CLKIN1 period and attribute CLKIN1_PERIOD are not same." severity error ; + end if; + end if; + end if; + end process; + + clkout_en_val <= mf_product1 when (clkfb_frac_en = 1) else m_product1; + clkout_en0_tmp1 <= clkout_en0_tmp after 1 ps; + + CLKOUT_EN0_P : process (clkout_en0_tmp1, clkout_en_t, clkout_en0_tmp) + begin + if (clkout_en0_tmp = '0') then + clkout_en0 <= '0'; + else + if (clkfb_frac_en = 1) then + if (clkout_en_t > clkout_en_val and clkout_en0_tmp1 = '1') then + clkout_en0 <= transport clkout_en0_tmp1 after (period_vco6); + end if; + else + if (clkout_en_t = clkout_en_val and clkout_en0_tmp1 = '1') then +-- clkout_en0 <= transport clkout_en0_tmp1 after (period_vco6); + clkout_en0 <= transport clkout_en0_tmp1 after (period_vco6 + period_vco); + end if; + end if; + end if; + end process; + + clkout_en1 <= transport clkout_en0 after clkvco_delay; + + + clkout_en_p : process (clkout_en1, rst_in_o) + begin + if (rst_in_o = '1') then + clkout_en <= '0'; + else + clkout_en <= clkout_en1; + end if; + end process; + + PLL_LOCK_P1 : process (pll_locked_tmp1, rst_in) + begin + if (rst_in = '1') then + pll_locked_tmp2 <= '0'; + elsif (pll_locked_tmp1 = '0') then + pll_locked_tmp2 <= pll_locked_tmp1; + else + pll_locked_tmp2 <= transport pll_locked_tmp1 after pll_locked_delay; + end if; + end process; + + locked_out <= '1' when pll_locked_tm = '1' and pll_locked_tmp2_dly ='1' and pll_unlock = '0' and unlock_recover = '0' else '0'; + + + locked_out_tmp_p : process + begin + if (rst_in = '1') then + wait for 1 ns; -- lock delay simprim only + locked_out_tmp <= '0'; + else + locked_out_tmp <= locked_out; + end if; + wait on rst_in, locked_out; + end process; + + + CLOCK_PERIOD_AVG_P : process (clkin_period(0), clkin_period(1), clkin_period(2), + clkin_period(3), clkin_period(4), period_avg) + variable period_avg_tmp : time := 0 ps; + variable clkin_period_tmp0 : time := 0 ps; + variable clkin_period_tmp1 : time := 0 ps; + variable clkin_period_tmp_t : time := 0 ps; + begin + clkin_period_tmp0 := clkin_period(0); + clkin_period_tmp1 := clkin_period(1); + if (clkin_period_tmp0 > clkin_period_tmp1) then + clkin_period_tmp_t := clkin_period_tmp0 - clkin_period_tmp1; + else + clkin_period_tmp_t := clkin_period_tmp1 - clkin_period_tmp0; + end if; + + if (clkin_period_tmp0 /= period_avg and (clkin_period_tmp0 < 1.5 * period_avg or clkin_period_tmp_t <= 300 ps)) then + period_avg_tmp := (clkin_period(0) + clkin_period(1) + clkin_period(2) + + clkin_period(3) + clkin_period(4))/5.0; + period_avg <= period_avg_tmp; + end if; + end process; + + clkinstopped_hold_p : process (clkinstopped_out_dly, rst_in) + begin + if (rst_in = '1') then + clkinstopped_hold <= '0'; + else + if (clkinstopped_out = '1') then + clkinstopped_hold <= '1' after 1 ps; + else + if (clkin_hold_f = 1) then + clkinstopped_hold <= '0'; + end if; + end if; + end if; + end process; + + pd_stp_p_p : process + begin + if (rst_in = '1') then + pd_stp_p <= '0'; + elsif (rising_edge(clkinstopped_out)) then + period_avg_stpi <= period_avg; + wait for 1 ps; + pd_stp_p <= '1'; + wait until falling_edge(clkvco) or rising_edge(rst_in); + wait for 1 ps; + pd_stp_p <= '0'; + end if; + wait on clkinstopped_out, rst_in, clkvco; + end process; + + period_avg_stp_p : process(clkvco, rst_in, pd_stp_p) + begin + if (rst_in = '1') then + period_avg_stp <= 1000 ps; + vco_stp_f <= '0'; + elsif (rising_edge(pd_stp_p)) then + period_avg_stp <= period_avg_stpi; + elsif (falling_edge(clkvco)) then + if (clkinstopped_out_dly2 = '1' and clkin_hold_f = 0) then + if (period_vco > 1739 ps) then + vco_stp_f <= '1'; + else + period_avg_stp <= period_avg_stp + 1 ps; + end if; + end if; + end if; + end process; + + clk_period_lost_p : process (period_avg, lock_period, clkind_div) + begin + if (period_avg > 500 ps and lock_period = '1') then + clkin_lost_val <= ((period_avg * 1.5) / 500 ps) - 1; + clkfb_lost_val <= ((clkind_div * period_avg * 1.5) / 500 ps) - 1; + end if; + end process; + + clkfbm1_div_t_p : process (clkfb_frac_en, clkfbm1_f_div, clkfbm1_div) + variable clkfbm1_div_t_tmp : real; + begin + if (clkfb_frac_en = 1) then + clkfbm1_div_t <= clkfbm1_f_div; + else + clkfbm1_div_t_tmp := real(clkfbm1_div); + clkfbm1_div_t <= clkfbm1_div_t_tmp; + end if; + end process; + + CLOCK_PERIOD_UPDATE_P : process (period_avg, period_avg_stp, clkind_div, clkfbm1_div_t, init_done, clkinstopped_hold) + variable period_fb_tmp : time; + variable period_vco_tmp : time; + variable period_vco_tmp1 : time; + variable period_vco_tmp1_i : integer; + variable period_vco_tmp1_rl : real; + variable tmpreal : real; + variable tmpreal1: real; + variable period_vco_rm_tmp : integer; + variable period_vco_rm_tmp1 : integer; + variable clkind_div_rl : real; + variable clkfbm1_div_t_int : integer; + variable period_fb_tmpint : integer; + variable period_fb_tmpreal : real; + variable period_vco_tmpint : integer; + variable period_vco_tmpint1 : integer; + variable clk0_frac_ht_tmp : integer; + variable clk0_frac_lt_tmp : integer; + variable clkfb_frac_ht_tmp : integer; + variable clkfb_frac_lt_tmp : integer; + variable period_vco_tmp0 : real; + variable period_vco_tmp02 : real; + variable period_vco_tmp03 : real; + variable period_vco_half_rm_t : time; + + begin + if (init_done = '1') then + clkind_div_rl := real(clkind_div); + clkfbm1_div_t_int := real2int(clkfbm1_div_t); + md_product <= real2int(clkfbm1_div_t * clkind_div_rl); + m_product <= clkfbm1_div_t_int; + m_product1 <= clkfbm1_div_t_int - 1; + m_product2 <= real2int(clkfbm1_div_t / 2.0); + period_fb_tmp := clkind_div * period_avg; + if (period_fb_tmp > 0 ps ) then + period_fb_tmpint := period_fb_tmp / 1 ps; + else + period_fb_tmpint := 0; + end if; + period_vco_mf <= (period_avg / 1 ps ) * 8; + period_fb_tmpreal := real(period_fb_tmpint); + period_vco_tmp0 := (period_fb_tmpreal / clkfbm1_div_t); + period_vco_tmpint1 := real2int(period_vco_tmp0); + period_vco_tmp02 := real(period_vco_tmpint1); + period_vco_tmp03 := period_vco_tmp0 - period_vco_tmp02; + if (period_vco_tmp03 > 0.500) then + period_vco_tmp1 := (1 + period_vco_tmpint1) * 1 ps; + else + period_vco_tmp1 := period_vco_tmpint1 * 1 ps; + end if; + period_vco_tmp1_i := period_vco_tmp1 / 1 ps; + period_vco_tmp1_rl := real(period_vco_tmp1_i); + clkvco_pdrm <= period_vco_tmp0 - period_vco_tmp1_rl; + if (clkinstopped_hold = '1') then + if (clkin_hold_f = 1 and (period_vco_tmp1 < 20000 ps)) then + period_vco_tmp := ((20000 * period_vco_tmp1) / (20000 ps - period_vco_tmp1)) * 1 ps; + elsif (clkin_hold_f = 0) then + period_vco_tmp := period_avg_stp * clkind_div / clkfbm1_div_t_int; + end if; + else + period_vco_tmp := period_vco_tmp1; + end if; + if (period_vco_tmp > 0 ps) then + period_vco_tmpint := period_vco_tmp / 1 ps; + else + period_vco_tmpint := 0; + end if; +-- period_vco_rm_tmp := period_vco_tmpint mod clkfbm1_div_t_int; + period_vco_rm_tmp := period_fb_tmpint mod clkfbm1_div_t_int; + period_vco_rm <= period_vco_rm_tmp; + if (period_vco_rm_tmp > 1) then + if (period_vco_rm_tmp > m_product2 and period_vco_rm_tmp < m_product) then + period_vco_cmp_cnt <= (m_product / (m_product - period_vco_rm_tmp)) - 1; + period_vco_cmp_flag <= 2; + else + period_vco_cmp_cnt <= (m_product / period_vco_rm_tmp) - 1; + period_vco_cmp_flag <= 1; + end if; + else + period_vco_cmp_cnt <= 0; + period_vco_cmp_flag <= 0; + end if; + + period_vco_half <= period_vco_tmp /2; + if (period_vco_tmp > 0 ps) then + period_vco_half1 <= ((period_vco_tmp /2) / 1 ps + 1) * 1 ps; + else + period_vco_half1 <= 0 ps; + end if; + period_vco_half_rm_t := period_vco_tmp - (period_vco_tmp /2); + period_vco_half_rm <= period_vco_half_rm_t; + period_vco_half_rm1 <= period_vco_half_rm_t + 1 ps; + period_vco_half_rm2 <= period_vco_half_rm_t - 1 ps; + pll_locked_delay <= period_fb_tmp * clkfbm1_div_t; + clkin_dly_t <= period_avg * clkind_div + period_avg * 1.25; + clkfb_dly_t <= period_fb_tmp * 2.25; + period_fb <= period_fb_tmp; + period_vco <= period_vco_tmp; + period_vco1 <= period_vco_tmp / 8.0; + period_vco2 <= period_vco_tmp / 4.0; + period_vco3 <= period_vco_tmp * 3.0 / 8.0; + period_vco4 <= period_vco_tmp / 2.0; + period_vco5 <= period_vco_tmp * 5.0 / 8.0; + period_vco6 <= period_vco_tmp * 3.0 / 4.0; + period_vco7 <= period_vco_tmp * 7.0 / 8.0; +-- period_vco_en <= period_vco_tmp * 2.0 - period_vco_tmp / 4.0; + period_vco_en <= period_vco_tmp * 2.0 - period_vco_tmp / 4.0; + clk0_frac_ht_tmp := period_vco_tmpint * clkout0_dly + (period_vco_tmpint * clk0pm_sel) / 8; + clk0_frac_ht <= clk0_frac_ht_tmp * 1 ps; + clk0_frac_lt_tmp := period_vco_tmpint * clkout5_dly + (period_vco_tmpint * clk5pm_sel) / 8; + clk0_frac_lt <= clk0_frac_lt_tmp * 1 ps; + clkfb_frac_ht_tmp := period_vco_tmpint * clkfbm1_dly + (period_vco_tmpint * clkfbm1pm_sel) / 8; + clkfb_frac_ht <= clkfb_frac_ht_tmp * 1 ps; + clkfb_frac_lt_tmp := period_vco_tmpint * clkout6_dly + (period_vco_tmpint * clk6pm_sel) / 8; + clkfb_frac_lt <= clkfb_frac_lt_tmp * 1 ps; + end if; + end process; + + period_vco_p : process(period_vco, ps_in_ps) + variable period_vco_ps_tmp1 : integer; + variable period_vco_ps_tmp2 : integer; + begin + if (fps_en = 1 ) then + period_ps_old <= period_ps; + period_vco_ps_tmp1 := period_vco / 1 ps; + period_vco_ps_tmp2 := (period_vco_ps_tmp1 * ps_in_ps) / 56; + if (ps_in_ps < 0) then + period_ps <= (period_vco_ps_tmp1 + period_vco_ps_tmp2) * 1 ps; + elsif (ps_in_ps = 0 and psincdec_in = '0') then + period_ps <= period_vco; + else + period_ps <= period_vco_ps_tmp2 * 1 ps; + end if; + end if; + end process; + + clkpll_tmp1 <= transport clkpll_r after period_avg; + clkpll <= transport clkpll_tmp1 after period_avg; + + clkinstopped_vco_f_p : process + begin + if (rst_in = '1') then + clkinstopped_vco_f <= '0'; + elsif (rising_edge(clkinstopped_out)) then + clkinstopped_vco_f <= '1'; + wait until (falling_edge(clkinstopped_out) or rising_edge(rst_in)); + if (rst_in = '1') then + clkinstopped_vco_f <= '0'; + else + wait until (rising_edge(clkpll) ); + wait until (rising_edge(clkpll) ); + clkinstopped_vco_f <= '0'; + end if; + end if; + wait on clkinstopped_out, rst_in; + end process; + + rst_clkinstopped_tm <= '1' when ((clkout_en_t >= clkout_en_val - 3) and (clkout_en_t < clkout_en_val)) else '0'; + + rst_clkinstopped_p : process + begin + if (rst_in = '1') then + rst_clkinstopped <= '0'; + rst_clkinstopped_rc <= '0'; + elsif (falling_edge(clkinstopped_out)) then + if (rst_clkinstopped_lk = '0' and clkin_hold_f = 1) then + wait until rising_edge(rst_clkinstopped_tm) or rising_edge(rst_in); + if (rst_in = '0') then + rst_clkinstopped <= '1' after period_vco4; + wait until falling_edge(rst_clkinstopped_tm) or rising_edge(rst_in); + wait for period_vco5; + rst_clkinstopped <= '0'; + wait for period_vco1; + rst_clkinstopped_rc <= '1'; + wait for period_vco1; + rst_clkinstopped_rc <= '0'; + else + rst_clkinstopped <= '0'; + rst_clkinstopped_rc <= '0'; + end if; + end if; + end if; + wait on clkinstopped_out, rst_clkinstopped_tm, rst_in; + end process; + + clkinstopped_out_dly_p : process + begin + if (rst_in = '1') then + clkinstopped_out_dly <= '0'; + elsif (rising_edge(clkinstopped_out)) then + clkinstopped_out_dly <= '1'; + if (clkin_hold_f = 1) then + wait until falling_edge(rst_clkinstopped_rc) or rising_edge(rst_in); + clkinstopped_out_dly <= '0'; + end if; + end if; + wait on clkinstopped_out, rst_clkinstopped_rc, rst_in; + end process; + + clkinstopped_out_dly2_p : process (clkinstopped_out, rst_in) + begin + if (rst_in = '1') then + clkinstopped_out_dly2 <= '0'; + else + clkinstopped_out_dly2 <= clkinstopped_out after 2 ps; + end if; + end process; + + rst_clkinstopped_lk_p : process + begin + if (rst_in = '1') then + rst_clkinstopped_lk <= '0'; + elsif (falling_edge(rst_clkinstopped)) then + rst_clkinstopped_lk <= '1'; + wait until (rising_edge(locked_out)); + rst_clkinstopped_lk <= '0'; + end if; + wait on rst_clkinstopped, locked_out, rst_in; + end process; + + clkvco_lk_p : process + begin + if (rst_in = '1') then + clkvco_lk <= '0'; + else + if (clkinstopped_out1 = '1' and clkin_stop_f = '0') then + if (period_vco_half > 0 ps) then + clkvco_lk <= transport not clkvco_lk after period_vco_half; + end if; + elsif (clkinstopped_vco_f = '0') then + clkvco_lk <= clkvco_lk_tmp; + else + if (period_vco_half > 0 ps) then + clkvco_lk <= transport not clkvco_lk after period_vco_half; + end if; + end if; + end if; + wait on clkinstopped_vco_f, clkvco_lk, clkvco_lk_tmp, rst_in, clkinstopped_out1; + end process; + + + CLKVCO_LK_TMP_P : process + variable clkvco_rm_cnt : integer; + variable cmpvco1 : real := 0.0; + variable cmpvco : real := 0.0; + variable vcoflag : integer := 0; + begin + if (rising_edge(clkpll)) then + if (clkfb_frac_en = 1) then + if (pll_locked_tm = '1') then + cmpvco := 0.0; + clkvco_lk_tmp <= '1'; + for I in 2 to mf_product loop + wait for period_vco_half; + clkvco_lk_tmp <= '0'; + if ( cmpvco >= 1.0 ) then + wait for period_vco_half_rm1; + clkvco_lk_tmp <= '1'; + cmpvco1 := cmpvco - 1.0 + clkvco_pdrm; + elsif ( cmpvco <= -1.0 ) then + wait for period_vco_half_rm2; + clkvco_lk_tmp <= '1'; + cmpvco1 := cmpvco + 1.0 + clkvco_pdrm; + else + wait for period_vco_half_rm; + clkvco_lk_tmp <= '1'; + cmpvco1 := cmpvco + clkvco_pdrm; + end if; + cmpvco := cmpvco1; + clkout_en_t <= I - 1; + end loop; + wait for period_vco_half; + clkvco_lk_tmp <= '0'; + end if; + else + if (pll_locked_tm = '1') then + clkvco_lk_tmp <= '1'; + clkvco_rm_cnt := 0; + clkout_en_t <= 0; + if ( period_vco_cmp_flag = 1) then + for I in 2 to m_product loop + clkout_en_t <= I-1; + wait for (period_vco_half); + clkvco_lk_tmp <= '0'; + if ( clkvco_rm_cnt = 1) then +-- wait for (period_vco_half1); + wait for (period_vco_half_rm1); + clkvco_lk_tmp <= '1'; + else + wait for (period_vco_half_rm); + clkvco_lk_tmp <= '1'; + end if; + + if ( clkvco_rm_cnt = period_vco_cmp_cnt) then + clkvco_rm_cnt := 0; + else + clkvco_rm_cnt := clkvco_rm_cnt + 1; + end if; + end loop; + elsif ( period_vco_cmp_flag = 2) then + vcoflag := 1; + for I in 2 to m_product loop + clkout_en_t <= I-1; + wait for (period_vco_half); + clkvco_lk_tmp <= '0'; + if ( clkvco_rm_cnt = 1) then + wait for (period_vco_half_rm); + clkvco_lk_tmp <= '1'; + else +-- wait for (period_vco_half1); + wait for (period_vco_half_rm1); + clkvco_lk_tmp <= '1'; + end if; + + if ( clkvco_rm_cnt = period_vco_cmp_cnt) then + clkvco_rm_cnt := 0; + else + clkvco_rm_cnt := clkvco_rm_cnt + 1; + end if; + end loop; + else + vcoflag := 1; +-- for I in 2 to md_product loop + for I in 2 to m_product loop + clkout_en_t <= I-1; + wait for (period_vco_half); + clkvco_lk_tmp <= '0'; + wait for (period_vco_half_rm); + clkvco_lk_tmp <= '1'; + end loop; + end if; + wait for (period_vco_half); + clkvco_lk_tmp <= '0'; +-- if (clkpll = '1' ) then + if (clkpll = '1' and m_product > 1 and vcoflag = 0) then +-- for I in 2 to md_product loop + for I in 2 to m_product loop +-- clkout_en_t <= I-1; + wait for (period_vco_half); + clkvco_lk_tmp <= '0'; + wait for (period_vco_half_rm); + clkvco_lk_tmp <= '1'; + end loop; + wait for (period_vco_half); + clkvco_lk_tmp <= '0'; + end if; + end if; + end if; + end if; + wait on clkpll, clkvco_lk_rst; + end process; + + CLKVCO_DLY_CAL_P : process ( period_vco, fb_delay, clkfbm1_dly, clkfbm1pm_rl, + ps_in_ps, lock_period, period_vco_mf) + variable val_tmp : integer; + variable val_tmp2 : integer; + variable val_tmp3 : integer; + variable fbm1_comp_delay : integer; + variable fbm1_comp_delay_rl : real; + variable period_vco_i : integer; + variable period_vco_rl : real; + variable dly_tmp : integer; + variable dly_tmp1 : integer; + variable tmp_ps_val1 : integer; + variable tmp_ps_val2 : integer; + variable dly_tmp_int : integer; + variable tmp_rl : real; + begin + if (lock_period = '1') then + if ( period_vco /= 0 ps) then + period_vco_i := period_vco * 1 / 1 ps; + period_vco_rl := real(period_vco_i); + tmp_rl := real(clkfbm1_dly); + if (clkfb_frac_en = 1) then +-- val_tmp := period_vco_i * mf_product; + val_tmp := period_vco_mf; + fbm1_comp_delay := 0; + else +-- val_tmp := period_vco_i * md_product; + val_tmp := (period_avg * 1 / 1 ps) * DIVCLK_DIVIDE; + fbm1_comp_delay_rl := period_vco_rl *(tmp_rl + clkfbm1pm_rl ); + fbm1_comp_delay := real2int(fbm1_comp_delay_rl); + end if; + val_tmp2 := fb_delay * 1 / 1 ps; + dly_tmp1 := val_tmp2 + fbm1_comp_delay; + dly_tmp_int := 1; + if (clkfb_fps_en = 1) then + if (ps_in_ps < 0) then + tmp_ps_val1 := -1 * ps_in_ps; + tmp_ps_val2 := tmp_ps_val1 * period_vco_i / 56; + if (tmp_ps_val2 > dly_tmp1 ) then + dly_tmp_int := -1; + dly_tmp := tmp_ps_val2 - dly_tmp1; + elsif (tmp_ps_val2 = dly_tmp1 ) then + dly_tmp_int := 0; + dly_tmp := 0; + else + dly_tmp_int := 1; + dly_tmp := dly_tmp1 - tmp_ps_val2; + end if; + else + dly_tmp := dly_tmp1 + ps_in_ps * period_vco_i / 56; + end if; + else + dly_tmp := dly_tmp1; + end if; + + dly_tmp_o <= dly_tmp * 1 ps; + + if (dly_tmp_int < 0) then + clkvco_delay <= dly_tmp * 1 ps; + else + if (clkfb_frac_en = 1 and dly_tmp = 0) then + clkvco_delay <= 0 ps; + elsif ( dly_tmp < val_tmp) then + clkvco_delay <= (val_tmp - dly_tmp) * 1 ps; + else + clkvco_delay <= (val_tmp - dly_tmp mod val_tmp) * 1 ps; + end if; + end if; + end if; + end if; + end process; + + CLKFB_PS_P : process (clkfbm1pm_sel) + begin + case (clkfbm1pm_sel) is + when 0 => clkfbm1pm_rl <= 0.0; + when 1 => clkfbm1pm_rl <= 0.125; + when 2 => clkfbm1pm_rl <= 0.25; + when 3 => clkfbm1pm_rl <= 0.375; + when 4 => clkfbm1pm_rl <= 0.50; + when 5 => clkfbm1pm_rl <= 0.625; + when 6 => clkfbm1pm_rl <= 0.75; + when 7 => clkfbm1pm_rl <= 0.875; + when others => clkfbm1pm_rl <= 0.0; + end case; + end process; + + clkvco_lk_dly_tmp <= transport clkvco_lk after clkvco_delay; + clkvco <= '0' when (pll_locked_tm = '0' or vco_stp_f = '1') else clkvco_lk when dly_tmp_o = 0 ps else clkvco_lk_dly_tmp; + + --clkout_mux(0) <= clkvco when (clkout_en = '1' and rst_in_o = '0') else '0'; + + CLKOUT_MUX_P : process (clkvco, clkout_en, rst_in_o) + begin + if (rst_in_o = '1') then + clkout_mux(7 downto 0) <= "00000000"; + elsif (clkout_en = '1' and clkvco'event) then + clkout_mux(0) <= clkvco; + clkout_mux(1) <= transport clkvco after (period_vco1); + clkout_mux(2) <= transport clkvco after (period_vco2); + clkout_mux(3) <= transport clkvco after (period_vco3); + clkout_mux(4) <= transport clkvco after (period_vco4); + clkout_mux(5) <= transport clkvco after (period_vco5); + clkout_mux(6) <= transport clkvco after (period_vco6); + clkout_mux(7) <= transport clkvco after (period_vco7); + else + clkout_mux(7 downto 0) <= "00000000"; + end if; + end process; + + CLKOUT_PS_P : process (clkvco, clkout_en, rst_in_o) + begin + if (rst_in_o = '1') then + clkout_ps_tmp1 <= '0'; + clkout_ps_tmp2 <= '0'; + elsif (clkout_en = '1' and fps_en = 1) then + clkout_ps_tmp1 <= transport clkvco after (period_ps); + clkout_ps_tmp2 <= transport clkvco after (period_ps_old); + end if; + end process; + + clkout_ps_eg_p : process(clkout_ps) + begin + if (falling_edge(clkout_ps)) then + clkout_ps_eg <= NOW; + end if; + if (rising_edge(clkout_ps)) then + clkout_ps_peg <= NOW; + end if; + end process; + + ps_lock_dly <= ps_lock after 1 ps; + + clkvco_ps_tmp2_en_p : process + variable clkout_ps_w : time := 0 ps; + begin + if (rising_edge(ps_lock_dly)) then + if ((period_ps - period_ps_old) > period_vco_half ) then + if (clkout_ps = '0') then + if (clkout_ps_tmp2 = '1') then + clkout_ps_w := NOW - clkout_ps_eg; + if (clkout_ps_w > period_vco3) then + clkvco_ps_tmp2_en <= '1'; + else + wait until falling_edge(clkout_ps_tmp2); + clkvco_ps_tmp2_en <= '1'; + end if; + else + clkvco_ps_tmp2_en <= '1'; + end if; + else + if (clkout_ps_tmp2 = '0') then + clkout_ps_w := NOW - clkout_ps_peg; + if (clkout_ps_w > period_vco3) then + clkvco_ps_tmp2_en <= '1'; + else + wait until rising_edge(clkout_ps_tmp2); + clkvco_ps_tmp2_en <= '1'; + end if; + else + clkvco_ps_tmp2_en <= '1'; + end if; + end if; + wait until rising_edge(clkout_ps_tmp2); + wait until falling_edge(clkout_ps_tmp2); + if (clkout_ps_tmp1 = '0') then + clkvco_ps_tmp2_en <= '0'; + else + wait until falling_edge(clkout_ps_tmp1); + clkvco_ps_tmp2_en <= '0'; + end if; + end if; + end if; + wait on clkout_ps_tmp1, clkout_ps_tmp2, ps_lock_dly; + end process; + + clkout_ps_mux(0) <= clkout_ps when (clkout_en = '1' and rst_in_o = '0') else '0'; + + CLKOUT_PS_MUX_P : process (clkout_ps, clkout_en, rst_in_o) + begin + if (rst_in_o = '1') then + clkout_ps_mux(7 downto 1) <= "0000000"; + elsif (clkout_en = '1' ) then + clkout_ps_mux(1) <= transport clkout_ps after (period_vco1); + clkout_ps_mux(2) <= transport clkout_ps after (period_vco2); + clkout_ps_mux(3) <= transport clkout_ps after (period_vco3); + clkout_ps_mux(4) <= transport clkout_ps after (period_vco4); + clkout_ps_mux(5) <= transport clkout_ps after (period_vco5); + clkout_ps_mux(6) <= transport clkout_ps after (period_vco6); + clkout_ps_mux(7) <= transport clkout_ps after (period_vco7); + else + clkout_ps_mux(7 downto 1) <= "0000000"; + end if; + end process; + + clkout_ps1_p : process( clkvco, clkout_ps_tmp1, clkout_ps_tmp2, clkvco_ps_tmp2_en) + variable clkout_ps_i : std_ulogic := '0'; + begin + if (fps_en = 1) then + if (ps_in_ps = 0 ) then + clkout_ps_i := clkvco; + elsif (clkvco_ps_tmp2_en = '1') then + clkout_ps_i := clkout_ps_tmp2; + else + clkout_ps_i := clkout_ps_tmp1; + end if; + clkout_ps <= clkout_ps_i; + else + clkout_ps <= '0'; + end if; + end process; + + clk0in <= clkout_ps_mux(clk0pm_sel) when clk0_fps_en = 1 else clkout_mux(clk0pm_sel1); + clk1in <= clkout_ps_mux(clk1pm_sel) when clk1_fps_en = 1 else clkout_mux(clk1pm_sel); + clk2in <= clkout_ps_mux(clk2pm_sel) when clk2_fps_en = 1 else clkout_mux(clk2pm_sel); + clk3in <= clkout_ps_mux(clk3pm_sel) when clk3_fps_en = 1 else clkout_mux(clk3pm_sel); + clk4in <= clkout_ps_mux(clk4pm_sel) when clk4_fps_en = 1 else clk6_out when (clkout4_cascade_int = 1) else clkout_mux(clk4pm_sel); + clk5in <= clkout_ps_mux(clk5pm_sel) when clk5_fps_en = 1 else clkout_mux(clk5pm_sel1); +-- clk6in <= clkout_ps_mux(clk6pm_sel) when clk6_fps_en = 1 else clkout_mux(clk6pm_sel1); + clk6in <= '0'; + clkfbm1in <= clkout_ps_mux(clkfbm1pm_sel) when clkfb_fps_en = 1 else clkout_mux(clkfbm1pm_sel1); + + clkfbm1pm_sel1 <= 0 when (clkfb_frac_en = 1) else clkfbm1pm_sel; + clk6pm_sel1 <= 0 when (clkfb_frac_en = 1) else clk6pm_sel; + clk0pm_sel1 <= 0 when (clk0_frac_en = 1) else clk0pm_sel; + clk5pm_sel1 <= 0 when (clk0_frac_en = 1) else clk5pm_sel; + + clk0ps_en <= clkout_en when clk0_dly_cnt = clkout0_dly else '0'; + clk1ps_en <= clkout_en when clk1_dly_cnt = clkout1_dly else '0'; + clk2ps_en <= clkout_en when clk2_dly_cnt = clkout2_dly else '0'; + clk3ps_en <= clkout_en when clk3_dly_cnt = clkout3_dly else '0'; + clk4ps_en <= clkout_en when clk4_dly_cnt = clkout4_dly else '0'; + clk5ps_en <= clkout_en when clk5_dly_cnt = clkout5_dly else '0'; +-- clk6ps_en <= clkout_en when clk6_dly_cnt = clkout6_dly else '0'; + clk6ps_en <= '0'; + clkfbm1ps_en <= clkout_en when clkfbm1_dly_cnt = clkfbm1_dly else '0'; + + CLK0_DLY_CNT_P : process(clk0in, rst_in_o) + begin + if (rst_in_o = '1') then + clk0_dly_cnt <= 0; + else + if (falling_edge(clk0in)) then + if (clkout_en = '1' and clk0_frac_en = 0) then + if (clk0_dly_cnt < clkout0_dly) then + clk0_dly_cnt <= clk0_dly_cnt + 1; + end if; + end if; + end if; + end if; + end process; + + CLK1_DLY_CNT_P : process(clk1in, rst_in_o) + begin + if (rst_in_o = '1') then + clk1_dly_cnt <= 0; + else + if (falling_edge(clk1in)) then + if ((clk1_dly_cnt < clkout1_dly) and clkout_en = '1') then + clk1_dly_cnt <= clk1_dly_cnt + 1; + end if; + end if; + end if; + end process; + + CLK2_DLY_CNT_P : process(clk2in, rst_in_o) + begin + if (rst_in_o = '1') then + clk2_dly_cnt <= 0; + else + if (falling_edge(clk2in)) then + if ((clk2_dly_cnt < clkout2_dly) and clkout_en = '1') then + clk2_dly_cnt <= clk2_dly_cnt + 1; + end if; + end if; + end if; + end process; + + CLK3_DLY_CNT_P : process(clk3in, rst_in_o) + begin + if (rst_in_o = '1') then + clk3_dly_cnt <= 0; + else + if (falling_edge(clk3in)) then + if ((clk3_dly_cnt < clkout3_dly) and clkout_en = '1') then + clk3_dly_cnt <= clk3_dly_cnt + 1; + end if; + end if; + end if; + end process; + + CLK4_DLY_CNT_P : process(clk4in, rst_in_o) + begin + if (rst_in_o = '1') then + clk4_dly_cnt <= 0; + else + if (falling_edge(clk4in)) then + if ((clk4_dly_cnt < clkout4_dly) and clkout_en = '1') then + clk4_dly_cnt <= clk4_dly_cnt + 1; + end if; + end if; + end if; + end process; + + CLK5_DLY_CNT_P : process(clk5in, rst_in_o) + begin + if (rst_in_o = '1') then + clk5_dly_cnt <= 0; + else + if (falling_edge(clk5in)) then + if (clkout_en = '1' and clk0_frac_en = 0) then + if (clk5_dly_cnt < clkout5_dly) then + clk5_dly_cnt <= clk5_dly_cnt + 1; + end if; + end if; + end if; + end if; + end process; + + CLK6_DLY_CNT_P : process(clk6in, rst_in_o) + begin + if (rst_in_o = '1') then + clk6_dly_cnt <= 0; + else + if (falling_edge(clk6in)) then + if (clkout_en = '1' and clkfb_frac_en = 0) then + if (clk6_dly_cnt < clkout6_dly) then + clk6_dly_cnt <= clk6_dly_cnt + 1; + end if; + end if; + end if; + end if; + end process; + + CLKFB_DLY_CNT_P : process(clkfbm1in, rst_in_o) + begin + if (rst_in_o = '1') then + clkfbm1_dly_cnt <= 0; + else + if (falling_edge(clkfbm1in)) then + if (clkout_en = '1' and clkfb_frac_en = 0) then + if (clkfbm1_dly_cnt < clkfbm1_dly) then + clkfbm1_dly_cnt <= clkfbm1_dly_cnt + 1; + end if; + end if; + end if; + end if; + end process; + + CLK0_GEN_P : process begin + if (rst_in_o = '1') then + clk0_cnt <= 0; + clk0_out <= '0'; + else + if (clk0_frac_en = 0) then + if (rising_edge(clk0in) or falling_edge(clk0in)) then + if (clk0ps_en = '1') then + + if (clk0_cnt < clk0_div1) then + clk0_cnt <= clk0_cnt + 1; + else + clk0_cnt <= 0; + end if; + + if (clk0_cnt < clk0_ht1) then + clk0_out <= '1'; + else + clk0_out <= '0'; + end if; + else + clk0_out <= '0'; + clk0_cnt <= 0; + end if; + end if; + else + if (clk0_frac_en = 1 and clkout_en = '1') then + clk0_out <= '1'; + for I0 in 1 to 7 loop + wait for clk0_frac_ht; + clk0_out <= '0'; + wait for clk0_frac_lt; + clk0_out <= '1'; + end loop; + wait for clk0_frac_ht; + clk0_out <= '0'; + wait for (clk0_frac_lt - period_vco1); + end if; + end if; + end if; + wait on clk0in, rst_in_o; + end process; + + + + CLK1_GEN_P : process (clk1in, rst_in_o) + begin + if (rst_in_o = '1') then + clk1_cnt <= 0; + clk1_out <= '0'; + else + if (rising_edge(clk1in) or falling_edge(clk1in)) then + if (clk1ps_en = '1') then + if (clk1_cnt < clk1_div1) then + clk1_cnt <= clk1_cnt + 1; + else + clk1_cnt <= 0; + end if; + + if (clk1_cnt < clk1_ht1) then + clk1_out <= '1'; + else + clk1_out <= '0'; + end if; + else + clk1_out <= '0'; + clk1_cnt <= 0; + end if; + end if; + end if; + end process; + + + CLK2_GEN_P : process (clk2in, rst_in_o) + begin + if (rst_in_o = '1') then + clk2_cnt <= 0; + clk2_out <= '0'; + else + if (rising_edge(clk2in) or falling_edge(clk2in)) then + if (clk2ps_en = '1') then + if (clk2_cnt < clk2_div1) then + clk2_cnt <= clk2_cnt + 1; + else + clk2_cnt <= 0; + end if; + + if (clk2_cnt < clk2_ht1) then + clk2_out <= '1'; + else + clk2_out <= '0'; + end if; + else + clk2_out <= '0'; + clk2_cnt <= 0; + end if; + end if; + end if; + end process; + + + CLK3_GEN_P : process (clk3in, rst_in_o) + begin + if (rst_in_o = '1') then + clk3_cnt <= 0; + clk3_out <= '0'; + else + if (rising_edge(clk3in) or falling_edge(clk3in)) then + if (clk3ps_en = '1') then + if (clk3_cnt < clk3_ht1) then + clk3_out <= '1'; + else + clk3_out <= '0'; + end if; + + if (clk3_cnt < clk3_div1) then + clk3_cnt <= clk3_cnt + 1; + else + clk3_cnt <= 0; + end if; + else + clk3_out <= '0'; + clk3_cnt <= 0; + end if; + end if; + end if; + end process; + + + CLK4_GEN_P : process (clk4in, rst_in_o) + begin + if (rst_in_o = '1') then + clk4_cnt <= 0; + clk4_out <= '0'; + else + if (rising_edge(clk4in) or falling_edge(clk4in)) then + if (clk4ps_en = '1') then + if (clk4_cnt < clk4_div1) then + clk4_cnt <= clk4_cnt + 1; + else + clk4_cnt <= 0; + end if; + + if (clk4_cnt < clk4_ht1) then + clk4_out <= '1'; + else + clk4_out <= '0'; + end if; + else + clk4_out <= '0'; + clk4_cnt <= 0; + end if; + end if; + end if; + end process; + + + CLK5_GEN_P : process (clk5in, rst_in_o) + begin + if (rst_in_o = '1') then + clk5_cnt <= 0; + clk5_out <= '0'; + else + if (rising_edge(clk5in) or falling_edge(clk5in)) then + if (clk5ps_en = '1' and clk0_frac_en = 0) then + if (clk5_cnt < clk5_div1) then + clk5_cnt <= clk5_cnt + 1; + else + clk5_cnt <= 0; + end if; + + if (clk5_cnt < clk5_ht1) then + clk5_out <= '1'; + else + clk5_out <= '0'; + end if; + else + clk5_out <= '0'; + clk5_cnt <= 0; + end if; + end if; + end if; + end process; + + CLK6_GEN_P : process (clk6in, rst_in_o) + begin + if (rst_in_o = '1') then + clk6_cnt <= 0; + clk6_out <= '0'; + else + if (rising_edge(clk6in) or falling_edge(clk6in)) then + if (clk6ps_en = '1' and clkfb_frac_en = 0) then + if (clk6_cnt < clk6_div1) then + clk6_cnt <= clk6_cnt + 1; + else + clk6_cnt <= 0; + end if; + + if (clk6_cnt < clk6_ht1) then + clk6_out <= '1'; + else + clk6_out <= '0'; + end if; + else + clk6_out <= '0'; + clk6_cnt <= 0; + end if; + end if; + end if; + end process; + + + CLKFB_GEN_P : process + begin + if (rst_in_o = '1') then + clkfbm1_cnt <= 0; + clkfbm1_out <= '0'; + else + if (clkfb_frac_en = 0) then + if (rising_edge(clkfbm1in) or falling_edge(clkfbm1in)) then + if (clkfbm1ps_en = '1' and clkfb_frac_en = 0) then + if (clkfbm1_cnt < clkfbm1_div1) then + clkfbm1_cnt <= clkfbm1_cnt + 1; + else + clkfbm1_cnt <= 0; + end if; + + if (clkfbm1_cnt < clkfbm1_ht1) then + clkfbm1_out <= '1'; + else + clkfbm1_out <= '0'; + end if; + else + clkfbm1_out <= '0'; + clkfbm1_cnt <= 0; + end if; + end if; + else + if (clkfb_frac_en = 1 and clkout_en = '1') then + clkfbm1_out <= '1'; + for Ifb in 1 to 7 loop + if (clkout_en = '1') then + wait for clkfb_frac_ht; + clkfbm1_out <= '0'; + wait for clkfb_frac_lt; + clkfbm1_out <= '1'; + else + clkfbm1_out <= '0'; + end if; + end loop; + if (clkout_en = '1') then + wait for clkfb_frac_ht; + clkfbm1_out <= '0'; + wait for (clkfb_frac_lt - period_vco1); + else + clkfbm1_out <= '0'; + end if; + else + clkfbm1_out <= '0'; + end if; + end if; + end if; + wait on clkfbm1in, rst_in_o, clkout_en; + end process; + + CLKFBM2_GEN_P : process (clkfb_in, rst_in_o) + begin + if (rst_in_o = '1') then + clkfbm2_cnt <= 0; + clkfbm2_out <= '0'; + else + if (rising_edge(clkfb_in) or falling_edge(clkfb_in)) then + if (clkout_en = '1') then + if (clkfbm2_cnt < clkfbm2_div1) then + clkfbm2_cnt <= clkfbm2_cnt + 1; + else + clkfbm2_cnt <= 0; + end if; + + if (clkfbm2_cnt < clkfbm2_ht1) then + clkfbm2_out <= '1'; + else + clkfbm2_out <= '0'; + end if; + else + clkfbm2_out <= '0'; + clkfbm2_cnt <= 0; + end if; + end if; + end if; + end process; + + CLKIND_GEN_P : process (clkpll_r, rst_in_o) + begin + if (rst_in_o = '1') then + clkind_cnt <= 0; + clkind_out <= '0'; + else + if (rising_edge(clkpll_r) or falling_edge(clkpll_r)) then + if (clkout_en = '1') then + if (clkind_cnt < clkind_div1) then + clkind_cnt <= clkind_cnt + 1; + else + clkind_cnt <= 0; + end if; + + if (clkind_cnt < clkind_ht1) then + clkind_out <= '1'; + else + clkind_out <= '0'; + end if; + else + clkind_out <= '0'; + clkind_cnt <= 0; + end if; + end if; + end if; + end process; + + + clkout0_out <= transport clk0_out when fb_delay_found = '1' else clkfb_tst; + clkout1_out <= transport clk1_out when fb_delay_found = '1' else clkfb_tst; + clkout2_out <= transport clk2_out when fb_delay_found = '1' else clkfb_tst; + clkout3_out <= transport clk3_out when fb_delay_found = '1' else clkfb_tst; + clkout4_out <= transport clk4_out when fb_delay_found = '1' else clkfb_tst; + clkout5_out <= transport clk5_out when fb_delay_found = '1' else clkfb_tst; + clkout6_out <= transport clk6_out when fb_delay_found = '1' else clkfb_tst; + clkfb_out <= transport clkfbm1_out when fb_delay_found = '1' else clkfb_tst; + + -- + -- determine feedback delay + -- + pwron_int_p : process + begin + pwron_int <= '1'; + wait for 100 ns; + pwron_int <= '0'; + wait; + end process; + + + CLKFB_TST_P : process (clkpll_r, rst_in) + begin + if (rst_in = '1') then + clkfb_tst <= '0'; + elsif (rising_edge(clkpll_r)) then + if (fb_delay_found_tmp = '0' and pwron_int = '0') then + clkfb_tst <= '1'; + else + clkfb_tst <= '0'; + end if; + end if; + end process; + + FB_DELAY_CAL_P0 : process (clkfb_tst, rst_in) + begin + if (rst_in = '1') then + delay_edge <= 0 ps; + elsif (rising_edge(clkfb_tst)) then + delay_edge <= NOW; + end if; + end process; + + FB_DELAY_CAL_P : process (clkfb_in, rst_in) + variable delay_edge1 : time := 0 ps; + variable fb_delay_tmp : time := 0 ps; + variable Message : line; + begin + if (rst_in = '1') then + fb_delay <= 0 ps; + fb_delay_found_tmp <= '0'; + delay_edge1 := 0 ps; + fb_delay_tmp := 0 ps; + elsif (clkfb_in'event and clkfb_in = '1') then + if (fb_delay_found_tmp = '0') then + if (delay_edge /= 0 ps) then + delay_edge1 := NOW; + fb_delay_tmp := delay_edge1 - delay_edge; + else + fb_delay_tmp := 0 ps; + end if; + fb_delay <= fb_delay_tmp; + fb_delay_found_tmp <= '1'; + if (rst_in = '0' and fb_delay_tmp > fb_delay_max) then + Write ( Message, string'(" Warning : The feedback delay is ")); + Write ( Message, fb_delay_tmp); + Write ( Message, string'(". It is over the maximun value ")); + Write ( Message, fb_delay_max); + Write ( Message, '.' & LF ); + assert false report Message.all severity warning; + DEALLOCATE (Message); + end if; + end if; + end if; + end process; + + fb_delay_found_P : process(fb_delay_found_tmp, clkvco_delay, rst_in) + begin + if (rst_in = '1') then + fb_delay_found <= '0'; + elsif (clkvco_delay = 0 ps) then + fb_delay_found <= fb_delay_found_tmp after 1 ns; + else + fb_delay_found <= fb_delay_found_tmp after clkvco_delay; + end if; + end process; + + -- + -- generate unlock signal + -- + clk_osc_p : process(clk_osc, rst_in) + begin + if (rst_in = '1') then + clk_osc <= '0'; + else + clk_osc <= not clk_osc after OSC_P2; + end if; + end process; + + clkin_p_p : process + begin + if (rising_edge(clkpll_r) or falling_edge(clkpll_r)) then + clkin_p <= '1'; + wait for 100 ps; + clkin_p <= '0'; + end if; + wait on clkpll_r; + end process; + + clkfb_p_p : process + begin + if (rising_edge(clkfb_in) or falling_edge(clkfb_in)) then + clkfb_p <= '1'; + wait for 100 ps; + clkfb_p <= '0'; + end if; + wait on clkfb_in; + end process; + + clkin_lost_out_p : process + begin + if (rst_in = '1') then + clkinstopped_out1 <= '0'; + elsif (rising_edge(clkinstopped_out)) then + clkinstopped_out1 <= '1'; + if (clkin_hold_f = 1) then + wait until (rising_edge(locked_out) or rising_edge(rst_in)); + clkinstopped_out1 <= '0'; + else + if (clkinsel_in = '1') then + assert FALSE report " Error : input CLKIN1 of PLLE2_ADV is stopped. Reset is required for PLLE2_ADV whether stopped input clock comes back or not." severity error; + else + assert FALSE report " Error : input CLKIN2 of PLLE2_ADV is stopped. Reset is required for PLLE2_ADV whether stopped input clock comes back or not." severity error; + end if; + end if; + end if; + wait on clkinstopped_out, locked_out, rst_in; + end process; + + clkfb_lost_out_p : process + begin + if (rst_in = '1') then + clkfbstopped_out1 <= '0'; + elsif (rising_edge(clkfbstopped_out)) then + clkfbstopped_out1 <= '1'; + wait until (rising_edge(locked_out) or rising_edge(rst_in)); + clkfbstopped_out1 <= '0'; + end if; + wait on clkfbstopped_out, locked_out, rst_in; + end process; + + + clkin_stopped_p : process + begin + if (rst_in = '1') then + clkinstopped_out <= '0'; + clkin_lost_cnt <= 0; + elsif (clkin_p = '1') then + if (clkinstopped_out = '1') then + wait until rising_edge(clkpll_r); + clkinstopped_out <= '0'; + clkin_lost_cnt <= 0; + else + clkinstopped_out <= '0'; + clkin_lost_cnt <= 0; + end if; + elsif (rising_edge(clk_osc)) then + if (lock_period = '1') then + if (clkin_lost_cnt < clkin_lost_val) then + clkin_lost_cnt <= clkin_lost_cnt + 1; + clkinstopped_out <= '0'; + else + clkinstopped_out <= '1'; + end if; + end if; + end if; + wait on clk_osc, rst_in, clkin_p; + end process; + + + clkfb_stopped_p : process(clk_osc, rst_in, clkfb_p) + begin + if (rst_in = '1' or clkfb_p = '1') then + clkfbstopped_out <= '0'; + clkfb_lost_cnt <= 0; + elsif (rising_edge(clk_osc)) then + if (clkout_en1 = '1') then + if (clkfb_lost_cnt < clkfb_lost_val) then + clkfb_lost_cnt <= clkfb_lost_cnt + 1; + clkfbstopped_out <= '0'; + else + clkfbstopped_out <= '1'; + end if; + end if; + end if; + end process; + + CLK_JITTER_P : process (clkin_jit, rst_in) + begin + if (rst_in = '1') then + clkpll_jitter_unlock <= '0'; + else + if ( pll_locked_tmp2 = '1' and clkfbstopped_out = '0' and clkinstopped_out = '0') then + if (ABS(clkin_jit) > ref_jitter_max_tmp) then + clkpll_jitter_unlock <= '1'; + else + clkpll_jitter_unlock <= '0'; + end if; + else + clkpll_jitter_unlock <= '0'; + end if; + end if; + end process; + + pll_unlock1_p : process + begin + if (rst_in = '1') then + pll_unlock1 <= '0'; + elsif (rising_edge(pll_unlock1_tmp)) then + pll_unlock1 <= '1'; + wait until (falling_edge(pll_unlock1_tmp)); + if (clkpll_r = '1') then + pll_unlock1 <= '0'; + else + wait until (rising_edge(clkpll_r)); + pll_unlock1 <= '0'; + end if; + end if; + wait on pll_unlock1_tmp, clkpll_r, rst_in; + end process; + + pll_unlock1_tmp <= '1' when (clkinstopped_out_dly = '1' or + clkfbstopped_out = '1' or clkpll_jitter_unlock = '1') else '0'; + + pll_unlock <= '1' when ( pll_unlock1 = '1' or unlock_recover = '1') else '0'; + + + +end PLLE2_ADV_V; + -- pragma translate_on diff --git a/lib/tech/unisim/ise/unisim_VCOMP.vhd b/lib/tech/unisim/ise/unisim_VCOMP.vhd index ce32b961..778b2ce4 100644 --- a/lib/tech/unisim/ise/unisim_VCOMP.vhd +++ b/lib/tech/unisim/ise/unisim_VCOMP.vhd @@ -2,7 +2,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -28,6 +28,51 @@ library ieee; use ieee.std_logic_1164.all; package vcomponents is + +-- synopsys translate_off + +----------------------------------------- +----------- FPGA Globals -------------- +----------------------------------------- +signal GSR : std_logic := '0'; +signal GTS : std_logic := '0'; +signal GWE : std_logic := '0'; +signal PLL_LOCKG : std_logic := 'H'; +signal PROGB_GLBL : std_logic := '0'; +signal CCLKO_GLBL : std_logic := 'H'; + +----------------------------------------- +----------- CPLD Globals -------------- +----------------------------------------- +signal PRLD : std_logic := '0'; + +----------------------------------------- +----------- JTAG Globals -------------- +----------------------------------------- +signal JTAG_TDO_GLBL : std_logic; +signal JTAG_TDI_GLBL : std_logic := '0'; +signal JTAG_TMS_GLBL : std_logic := '0'; +signal JTAG_TCK_GLBL : std_logic := '0'; +signal JTAG_TRST_GLBL : std_logic := '0'; + +signal JTAG_CAPTURE_GLBL : std_logic := '0'; +signal JTAG_RESET_GLBL : std_logic := '1'; +signal JTAG_SHIFT_GLBL : std_logic := '1'; +signal JTAG_UPDATE_GLBL : std_logic := '0'; +signal JTAG_RUNTEST_GLBL : std_logic := '0'; + +signal JTAG_SEL1_GLBL : std_logic := '0'; +signal JTAG_SEL2_GLBL : std_logic := '0'; +signal JTAG_SEL3_GLBL : std_logic := '0'; +signal JTAG_SEL4_GLBL : std_logic := '0'; + +signal JTAG_USER_TDO1_GLBL : std_logic := 'Z'; +signal JTAG_USER_TDO2_GLBL : std_logic := 'Z'; +signal JTAG_USER_TDO3_GLBL : std_logic := 'Z'; +signal JTAG_USER_TDO4_GLBL : std_logic := 'Z'; + +-- synopsys translate_on + component ramb4_s16 port ( do : out std_logic_vector (15 downto 0); addr : in std_logic_vector (7 downto 0); @@ -1379,6 +1424,63 @@ end component; ); end component; + ----- component PLLE2_ADV ----- + component PLLE2_ADV + generic ( + BANDWIDTH : string := "OPTIMIZED"; + CLKFBOUT_MULT : integer := 5; + CLKFBOUT_PHASE : real := 0.0; + CLKIN1_PERIOD : real := 0.0; + CLKIN2_PERIOD : real := 0.0; + CLKOUT0_DIVIDE : integer := 1; + CLKOUT0_DUTY_CYCLE : real := 0.5; + CLKOUT0_PHASE : real := 0.0; + CLKOUT1_DIVIDE : integer := 1; + CLKOUT1_DUTY_CYCLE : real := 0.5; + CLKOUT1_PHASE : real := 0.0; + CLKOUT2_DIVIDE : integer := 1; + CLKOUT2_DUTY_CYCLE : real := 0.5; + CLKOUT2_PHASE : real := 0.0; + CLKOUT3_DIVIDE : integer := 1; + CLKOUT3_DUTY_CYCLE : real := 0.5; + CLKOUT3_PHASE : real := 0.0; + CLKOUT4_DIVIDE : integer := 1; + CLKOUT4_DUTY_CYCLE : real := 0.5; + CLKOUT4_PHASE : real := 0.0; + CLKOUT5_DIVIDE : integer := 1; + CLKOUT5_DUTY_CYCLE : real := 0.5; + CLKOUT5_PHASE : real := 0.0; + COMPENSATION : string := "ZHOLD"; + DIVCLK_DIVIDE : integer := 1; + REF_JITTER1 : real := 0.0; + REF_JITTER2 : real := 0.0; + STARTUP_WAIT : string := "FALSE" + ); + port ( + CLKFBOUT : out std_ulogic := '0'; + CLKOUT0 : out std_ulogic := '0'; + CLKOUT1 : out std_ulogic := '0'; + CLKOUT2 : out std_ulogic := '0'; + CLKOUT3 : out std_ulogic := '0'; + CLKOUT4 : out std_ulogic := '0'; + CLKOUT5 : out std_ulogic := '0'; + DO : out std_logic_vector (15 downto 0); + DRDY : out std_ulogic := '0'; + LOCKED : out std_ulogic := '0'; + CLKFBIN : in std_ulogic; + CLKIN1 : in std_ulogic; + CLKIN2 : in std_ulogic; + CLKINSEL : in std_ulogic; + DADDR : in std_logic_vector(6 downto 0); + DCLK : in std_ulogic; + DEN : in std_ulogic; + DI : in std_logic_vector(15 downto 0); + DWE : in std_ulogic; + PWRDWN : in std_ulogic; + RST : in std_ulogic + ); + end component; + component BUFGMUX port (O : out std_logic; I0, I1, S : in std_logic); end component; component BUFG port (O : out std_logic; I : in std_logic); end component; component BUFGP port (O : out std_logic; I : in std_logic); end component; @@ -1510,6 +1612,7 @@ end component; ); end component; + component IBUFDS_LVDS_25 port ( O : out std_ulogic; I : in std_ulogic; @@ -2784,6 +2887,26 @@ component XOR2 ); end component; +component BSCANE2 + generic ( + DISABLE_JTAG : string := "FALSE"; + JTAG_CHAIN : integer := 1 + ); + port ( + CAPTURE : out std_ulogic := 'H'; + DRCK : out std_ulogic := 'H'; + RESET : out std_ulogic := 'H'; + RUNTEST : out std_ulogic := 'L'; + SEL : out std_ulogic := 'L'; + SHIFT : out std_ulogic := 'L'; + TCK : out std_ulogic := 'L'; + TDI : out std_ulogic := 'L'; + TMS : out std_ulogic := 'L'; + UPDATE : out std_ulogic := 'L'; + TDO : in std_ulogic := 'X' + ); +end component; + component BSCAN_SPARTAN6 generic ( JTAG_CHAIN : integer := 1 diff --git a/lib/tech/unisim/ise/unisim_VITAL.vhd b/lib/tech/unisim/ise/unisim_VITAL.vhd index 3a797219..fd3a7dbc 100644 --- a/lib/tech/unisim/ise/unisim_VITAL.vhd +++ b/lib/tech/unisim/ise/unisim_VITAL.vhd @@ -158,6 +158,36 @@ end; library ieee; use ieee.std_logic_1164.all; +entity BSCANE2 is + generic ( + DISABLE_JTAG : string := "FALSE"; + JTAG_CHAIN : integer := 1 + ); + port ( + CAPTURE : out std_ulogic := 'H'; + DRCK : out std_ulogic := 'H'; + RESET : out std_ulogic := 'H'; + RUNTEST : out std_ulogic := 'L'; + SEL : out std_ulogic := 'L'; + SHIFT : out std_ulogic := 'L'; + TCK : out std_ulogic := 'L'; + TDI : out std_ulogic := 'L'; + TMS : out std_ulogic := 'L'; + UPDATE : out std_ulogic := 'L'; + TDO : in std_ulogic := 'X' + ); +end ; + +architecture behav of BSCANE2 is +begin + CAPTURE <= '0'; DRCK <= '0'; RUNTEST <= '0'; + RESET <= '0'; SEL <= '0'; TCK <= '0'; TMS <= '0'; + SHIFT <= '0'; TDI <= '0'; UPDATE <= '0'; +end; + +library ieee; +use ieee.std_logic_1164.all; + entity BSCAN_VIRTEX6 is generic ( DISABLE_JTAG : boolean := FALSE; @@ -313,6 +343,30 @@ begin o <= old; end; +library ieee; use ieee.std_logic_1164.all; +entity IBUFGDS_LVDS_15 is + port (O : out std_logic; I, IB : in std_logic); end; +architecture beh of IBUFGDS_LVDS_15 is +signal old : std_ulogic; +begin + + old <= '1' after 1 ns when (to_X01(I) = '1') and (to_X01(IB) = '0') else + '0' after 1 ns when (to_X01(I) = '0') and (to_X01(IB) = '1') else old; + o <= old; +end; + +library ieee; use ieee.std_logic_1164.all; +entity IBUFGDS_LVDS_18 is + port (O : out std_logic; I, IB : in std_logic); end; +architecture beh of IBUFGDS_LVDS_18 is +signal old : std_ulogic; +begin + + old <= '1' after 1 ns when (to_X01(I) = '1') and (to_X01(IB) = '0') else + '0' after 1 ns when (to_X01(I) = '0') and (to_X01(IB) = '1') else old; + o <= old; +end; + library ieee; use ieee.std_logic_1164.all; entity IBUFGDS_LVDS_25 is port (O : out std_logic; I, IB : in std_logic); end; @@ -17602,7 +17656,7 @@ architecture ARAMB36_INTERNAL_V of ARAMB36_INTERNAL is ssrb_dly <= SSRB after 0 ps; wea_dly <= WEA after 0 ps; web_dly <= WEB after 0 ps; - gsr_dly <= GSR after 0 ps; + gsr_dly <= unisim.VCOMPONENTS.GSR after 0 ps; regclka_dly <= REGCLKA after 0 ps; regclkb_dly <= REGCLKB after 0 ps; @@ -30450,7 +30504,7 @@ architecture ARAMB36_INTERNAL_V of ARAMB36_INTERNAL is ssrb_dly <= SSRB after 0 ps; wea_dly <= WEA after 0 ps; web_dly <= WEB after 0 ps; - gsr_dly <= GSR after 0 ps; + gsr_dly <= unisim.VCOMPONENTS.GSR after 0 ps; regclka_dly <= REGCLKA after 0 ps; regclkb_dly <= REGCLKB after 0 ps; @@ -33509,6 +33563,4271 @@ begin end IBUFDS_GTXE1_V; +library IEEE; +use IEEE.STD_LOGIC_1164.all; +use IEEE.STD_LOGIC_SIGNED.all; +use IEEE.NUMERIC_STD.all; +library STD; +use STD.TEXTIO.all; + + +library unisim; +use unisim.VPKG.all; +use unisim.VCOMPONENTS.all; + +entity PLLE2_ADV is +generic ( + + BANDWIDTH : string := "OPTIMIZED"; + CLKFBOUT_MULT : integer := 5; + CLKFBOUT_PHASE : real := 0.0; + CLKIN1_PERIOD : real := 0.0; + CLKIN2_PERIOD : real := 0.0; + CLKOUT0_DIVIDE : integer := 1; + CLKOUT0_DUTY_CYCLE : real := 0.5; + CLKOUT0_PHASE : real := 0.0; + CLKOUT1_DIVIDE : integer := 1; + CLKOUT1_DUTY_CYCLE : real := 0.5; + CLKOUT1_PHASE : real := 0.0; + CLKOUT2_DIVIDE : integer := 1; + CLKOUT2_DUTY_CYCLE : real := 0.5; + CLKOUT2_PHASE : real := 0.0; + CLKOUT3_DIVIDE : integer := 1; + CLKOUT3_DUTY_CYCLE : real := 0.5; + CLKOUT3_PHASE : real := 0.0; + CLKOUT4_DIVIDE : integer := 1; + CLKOUT4_DUTY_CYCLE : real := 0.5; + CLKOUT4_PHASE : real := 0.0; + CLKOUT5_DIVIDE : integer := 1; + CLKOUT5_DUTY_CYCLE : real := 0.5; + CLKOUT5_PHASE : real := 0.0; + COMPENSATION : string := "ZHOLD"; + DIVCLK_DIVIDE : integer := 1; + REF_JITTER1 : real := 0.0; + REF_JITTER2 : real := 0.0; + STARTUP_WAIT : string := "FALSE" + ); +port ( + CLKFBOUT : out std_ulogic := '0'; + CLKOUT0 : out std_ulogic := '0'; + CLKOUT1 : out std_ulogic := '0'; + CLKOUT2 : out std_ulogic := '0'; + CLKOUT3 : out std_ulogic := '0'; + CLKOUT4 : out std_ulogic := '0'; + CLKOUT5 : out std_ulogic := '0'; + DO : out std_logic_vector (15 downto 0); + DRDY : out std_ulogic := '0'; + LOCKED : out std_ulogic := '0'; + CLKFBIN : in std_ulogic; + CLKIN1 : in std_ulogic; + CLKIN2 : in std_ulogic; + CLKINSEL : in std_ulogic; + DADDR : in std_logic_vector(6 downto 0); + DCLK : in std_ulogic; + DEN : in std_ulogic; + DI : in std_logic_vector(15 downto 0); + DWE : in std_ulogic; + PWRDWN : in std_ulogic; + RST : in std_ulogic + ); +end PLLE2_ADV; + + +-- Architecture body -- + +architecture PLLE2_ADV_V of PLLE2_ADV is + + --------------------------------------------------------------------------- + -- Function SLV_TO_INT converts a std_logic_vector TO INTEGER + --------------------------------------------------------------------------- + function SLV_TO_INT(SLV: in std_logic_vector + ) return integer is + + variable int : integer; + begin + int := 0; + for i in SLV'high downto SLV'low loop + int := int * 2; + if SLV(i) = '1' then + int := int + 1; + end if; + end loop; + return int; + end; + + --------------------------------------------------------------------------- + -- Function ADDR_IS_VALID checks for the validity of the argument. A FALSE + -- is returned if any argument bit is other than a '0' or '1'. + --------------------------------------------------------------------------- + function ADDR_IS_VALID ( + SLV : in std_logic_vector + ) return boolean is + + variable IS_VALID : boolean := TRUE; + + begin + for I in SLV'high downto SLV'low loop + if (SLV(I) /= '0' AND SLV(I) /= '1') then + IS_VALID := FALSE; + end if; + end loop; + return IS_VALID; + end ADDR_IS_VALID; + + function real2int( real_in : in real) return integer is + variable int_value : integer; + variable int_value1 : integer; + variable tmps : time := 1 ps; + variable tmps1 : real; + + begin + if (real_in < 1.00000 and real_in > -1.00000) then + int_value1 := 0; + else + tmps := real_in * 1 ns; + int_value := tmps / 1 ns; + tmps1 := real (int_value); + if ( tmps1 > real_in) then + int_value1 := int_value - 1 ; + else + int_value1 := int_value; + end if; + end if; + return int_value1; + end real2int; + + + procedure clkout_dly_cal (clkout_dly : out std_logic_vector(5 downto 0); + clkpm_sel : out std_logic_vector(2 downto 0); + clkdiv : in integer; + clk_ps : in real; + clk_ps_name : in string ) + is + variable clk_dly_rl : real; + variable clk_dly_rem : real; + variable clk_dly_int : integer; + variable clk_dly_int_rl : real; + variable clkdiv_real : real; + variable clkpm_sel_rl : real; + variable clk_ps_rl : real; + variable Message : line; + begin + + clkdiv_real := real(clkdiv); + if (clk_ps < 0.0) then + clk_dly_rl := (360.0 + clk_ps) * clkdiv_real / 360.0; + else + clk_dly_rl := clk_ps * clkdiv_real / 360.0; + end if; + clk_dly_int := real2int (clk_dly_rl); + + if (clk_dly_int > 63) then + Write ( Message, string'(" Warning : Attribute ")); + Write ( Message, clk_ps_name ); + Write ( Message, string'(" of PLLE2_ADV is set to ")); + Write ( Message, clk_ps); + Write ( Message, string'(". Required phase shifting can not be reached since it is over the maximum phase shifting ability of PLLE2_ADV")); + Write ( Message, '.' & LF ); + assert false report Message.all severity warning; + DEALLOCATE (Message); + clkout_dly := "111111"; + else + clkout_dly := STD_LOGIC_VECTOR(TO_UNSIGNED(clk_dly_int, 6)); + end if; + + clk_dly_int_rl := real (clk_dly_int); + clk_dly_rem := clk_dly_rl - clk_dly_int_rl; + + if (clk_dly_rem < 0.125) then + clkpm_sel := "000"; + clkpm_sel_rl := 0.0; + elsif (clk_dly_rem >= 0.125 and clk_dly_rem < 0.25) then + clkpm_sel(2 downto 0) := "001"; + clkpm_sel_rl := 1.0; + elsif (clk_dly_rem >= 0.25 and clk_dly_rem < 0.375) then + clkpm_sel := "010"; + clkpm_sel_rl := 2.0; + elsif (clk_dly_rem >= 0.375 and clk_dly_rem < 0.5) then + clkpm_sel := "011"; + clkpm_sel_rl := 3.0; + elsif (clk_dly_rem >= 0.5 and clk_dly_rem < 0.625) then + clkpm_sel := "100"; + clkpm_sel_rl := 4.0; + elsif (clk_dly_rem >= 0.625 and clk_dly_rem < 0.75) then + clkpm_sel := "101"; + clkpm_sel_rl := 5.0; + elsif (clk_dly_rem >= 0.75 and clk_dly_rem < 0.875) then + clkpm_sel := "110"; + clkpm_sel_rl := 6.0; + elsif (clk_dly_rem >= 0.875 ) then + clkpm_sel := "111"; + clkpm_sel_rl := 7.0; + end if; + + if (clk_ps < 0.0) then + clk_ps_rl := (clk_dly_int_rl + 0.125 * clkpm_sel_rl) * 360.0 / clkdiv_real - 360.0; + else + clk_ps_rl := (clk_dly_int_rl + 0.125 * clkpm_sel_rl) * 360.0 / clkdiv_real; + end if; + + if (((clk_ps_rl- clk_ps) > 0.001) or ((clk_ps_rl- clk_ps) < -0.001)) then + Write ( Message, string'(" Warning : Attribute ")); + Write ( Message, clk_ps_name ); + Write ( Message, string'(" of PLLE2_ADV is set to ")); + Write ( Message, clk_ps); + Write ( Message, string'(". Real phase shifting is ")); + Write ( Message, clk_ps_rl); + Write ( Message, string'(". Required phase shifting can not be reached")); + Write ( Message, '.' & LF ); + assert false report Message.all severity warning; + DEALLOCATE (Message); + end if; + end procedure clkout_dly_cal; + + procedure clk_out_para_cal (clk_ht : out std_logic_vector(6 downto 0); + clk_lt : out std_logic_vector(6 downto 0); + clk_nocnt : out std_ulogic; + clk_edge : out std_ulogic; + CLKOUT_DIVIDE : in integer; + CLKOUT_DUTY_CYCLE : in real ) + is + variable tmp_value : real; + variable tmp_value_tmp : real; + variable tmp_value_r : integer; + variable tmp_value_r2 : integer; + variable tmp_value_r3 : real; + variable tmp_value_r1 : real; + variable tmp_value_r_0 : real; + variable tmp_value_rm : real; + variable tmp_value_rm1 : real; + variable tmp_value0 : real; + variable tmp_value_l: real; + variable tmp_value2 : real; + variable tmp_value1 : integer; + variable clk_lt_tmp : real; + variable clk_ht_i : integer; + variable clk_lt_i : integer; + variable CLKOUT_DIVIDE_real : real; + constant O_MAX_HT_LT_real : real := 64.0; + begin + CLKOUT_DIVIDE_real := real(CLKOUT_DIVIDE); + tmp_value_tmp := CLKOUT_DIVIDE_real * CLKOUT_DUTY_CYCLE; + tmp_value_r := real2int(tmp_value_tmp); + tmp_value_r_0 := real(tmp_value_r); + tmp_value_rm := tmp_value_tmp - tmp_value_r_0; + if (tmp_value_rm < 0.1) then + tmp_value := tmp_value_r_0; + elsif (tmp_value_rm > 0.9) then + tmp_value := tmp_value_r_0 + 1.0; + else + tmp_value_r1 := tmp_value_tmp * 2.0; + tmp_value_r2 := real2int(tmp_value_r1); + tmp_value_r3 := real(tmp_value_r2); + tmp_value_rm1 := tmp_value_r1 - tmp_value_r3; + if (tmp_value_rm1 > 0.995) then + tmp_value := tmp_value_tmp + 0.002; + else + tmp_value := tmp_value_tmp; + end if; + end if; + tmp_value0 := tmp_value * 2.0; + tmp_value1 := real2int(tmp_value0) mod 2; + tmp_value2 := CLKOUT_DIVIDE_real - tmp_value; + + if ((tmp_value2) >= O_MAX_HT_LT_real) then + clk_lt_tmp := 64.0; + clk_lt := "1000000"; + else + if (tmp_value2 < 1.0) then + clk_lt := "0000001"; + clk_lt_tmp := 1.0; + else + if (tmp_value1 /= 0) then + clk_lt_i := real2int(tmp_value2) + 1; + else + clk_lt_i := real2int(tmp_value2); + end if; + clk_lt := STD_LOGIC_VECTOR(TO_UNSIGNED(clk_lt_i, 7)); + clk_lt_tmp := real(clk_lt_i); + end if; + end if; + + tmp_value_l := CLKOUT_DIVIDE_real - clk_lt_tmp; + + if ( tmp_value_l >= O_MAX_HT_LT_real) then + clk_ht := "1000000"; + else + clk_ht_i := real2int(tmp_value_l); + clk_ht := STD_LOGIC_VECTOR(TO_UNSIGNED(clk_ht_i, 7)); + end if; + + if (CLKOUT_DIVIDE = 1) then + clk_nocnt := '1'; + else + clk_nocnt := '0'; + end if; + + if (tmp_value < 1.0) then + clk_edge := '1'; + elsif (tmp_value1 /= 0) then + clk_edge := '1'; + else + clk_edge := '0'; + end if; + + end procedure clk_out_para_cal; + + procedure clkout_pm_cal ( clk_ht1 : out integer ; + clk_div : out integer; + clk_div1 : out integer; + clk_ht : in std_logic_vector(6 downto 0); + clk_lt : in std_logic_vector(6 downto 0); + clk_nocnt : in std_ulogic; + clk_edge : in std_ulogic ) + is + variable clk_div_tmp : integer; + begin + if (clk_nocnt = '1') then + clk_div := 1; + clk_div1 := 1; + clk_ht1 := 1; + else + if (clk_edge = '1') then + clk_ht1 := 2 * SLV_TO_INT(clk_ht) + 1; + else + clk_ht1 := 2 * SLV_TO_INT(clk_ht); + end if; + clk_div_tmp := SLV_TO_INT(clk_ht) + SLV_TO_INT(clk_lt); + clk_div := clk_div_tmp; + clk_div1 := 2 * clk_div_tmp - 1; + end if; + + end procedure clkout_pm_cal; + + procedure clkout_delay_para_drp ( clkout_dly : out std_logic_vector(5 downto 0); + clk_nocnt : out std_ulogic; + clk_edge : out std_ulogic; + di_in : in std_logic_vector(15 downto 0); + daddr_in : in std_logic_vector(6 downto 0); + di_str : string ( 1 to 16); + daddr_str : string ( 1 to 7)) + is + variable Message : line; + begin + clkout_dly := di_in(5 downto 0); + clk_nocnt := di_in(6); + clk_edge := di_in(7); + end procedure clkout_delay_para_drp; + + procedure clkout_hl_para_drp ( clk_lt : out std_logic_vector(6 downto 0) ; + clk_ht : out std_logic_vector(6 downto 0) ; + clkpm_sel : out std_logic_vector(2 downto 0) ; + di_in : in std_logic_vector(15 downto 0); + daddr_in : in std_logic_vector(6 downto 0); + di_str : string ( 1 to 16); + daddr_str : string ( 1 to 7)) + is + variable Message : line; + begin + if (di_in(12) /= '1') then + Write ( Message, string'(" Error : PLLE2_ADV input DI(15 downto 0) is set to")); + Write ( Message, di_str); + Write ( Message, string'(" at address DADDR = ")); + Write ( Message, daddr_str ); + Write ( Message, string'(". The bit 12 need to be set to 1.")); + Write ( Message, '.' & LF ); + assert false report Message.all severity error; + DEALLOCATE (Message); + end if; + + if ( di_in(5 downto 0) = "000000") then + clk_lt := "1000000"; + else + clk_lt := ( '0' & di_in(5 downto 0)); + end if; + if ( di_in(11 downto 6) = "000000") then + clk_ht := "1000000"; + else + clk_ht := ( '0' & di_in(11 downto 6)); + end if; + clkpm_sel := di_in(15 downto 13); + + end procedure clkout_hl_para_drp; + + function clkout_duty_chk (CLKOUT_DIVIDE : in integer; + CLKOUT_DUTY_CYCLE : in real; + CLKOUT_DUTY_CYCLE_N : in string) + return std_ulogic is + constant O_MAX_HT_LT_real : real := 64.0; + variable CLKOUT_DIVIDE_real : real; + variable CLK_DUTY_CYCLE_MIN : real; + variable CLK_DUTY_CYCLE_MIN_rnd : real; + variable CLK_DUTY_CYCLE_MAX : real; + variable CLK_DUTY_CYCLE_STEP : real; + variable clk_duty_tmp_int : integer; + variable duty_cycle_valid : std_ulogic; + variable tmp_duty_value : real; + variable tmp_j : real; + variable Message : line; + variable step_round_tmp : integer; + variable step_round_tmp1 : real; + + begin + CLKOUT_DIVIDE_real := real(CLKOUT_DIVIDE); + step_round_tmp := 1000 /CLKOUT_DIVIDE; + step_round_tmp1 := real(step_round_tmp); + if (CLKOUT_DIVIDE_real > O_MAX_HT_LT_real) then + CLK_DUTY_CYCLE_MIN := (CLKOUT_DIVIDE_real - O_MAX_HT_LT_real)/CLKOUT_DIVIDE_real; + CLK_DUTY_CYCLE_MAX := (O_MAX_HT_LT_real + 0.5)/CLKOUT_DIVIDE_real; + CLK_DUTY_CYCLE_MIN_rnd := CLK_DUTY_CYCLE_MIN; + else + if (CLKOUT_DIVIDE = 1) then + CLK_DUTY_CYCLE_MIN_rnd := 0.0; + CLK_DUTY_CYCLE_MIN := 0.0; + else + CLK_DUTY_CYCLE_MIN_rnd := step_round_tmp1 / 1000.00; + CLK_DUTY_CYCLE_MIN := 1.0 / CLKOUT_DIVIDE_real; + end if; + CLK_DUTY_CYCLE_MAX := 1.0; + end if; + + if ((CLKOUT_DUTY_CYCLE > CLK_DUTY_CYCLE_MAX) or (CLKOUT_DUTY_CYCLE < CLK_DUTY_CYCLE_MIN_rnd)) then + Write ( Message, string'(" Attribute Syntax Warning : ")); + Write ( Message, CLKOUT_DUTY_CYCLE_N); + Write ( Message, string'(" is set to ")); + Write ( Message, CLKOUT_DUTY_CYCLE); + Write ( Message, string'(" and is not in the allowed range ")); + Write ( Message, CLK_DUTY_CYCLE_MIN); + Write ( Message, string'(" to ")); + Write ( Message, CLK_DUTY_CYCLE_MAX); + Write ( Message, '.' & LF ); + assert false report Message.all severity warning; + DEALLOCATE (Message); + end if; + + CLK_DUTY_CYCLE_STEP := 0.5 / CLKOUT_DIVIDE_real; + tmp_j := 0.0; + duty_cycle_valid := '0'; + clk_duty_tmp_int := 0; + for j in 0 to (2 * CLKOUT_DIVIDE ) loop + tmp_duty_value := CLK_DUTY_CYCLE_MIN + CLK_DUTY_CYCLE_STEP * tmp_j; + if (abs(tmp_duty_value - CLKOUT_DUTY_CYCLE) < 0.001 and (tmp_duty_value <= CLK_DUTY_CYCLE_MAX)) then + duty_cycle_valid := '1'; + end if; + tmp_j := tmp_j + 1.0; + end loop; + + if (duty_cycle_valid /= '1') then + Write ( Message, string'(" Attribute Syntax Warning : ")); + Write ( Message, CLKOUT_DUTY_CYCLE_N); + Write ( Message, string'(" = ")); + Write ( Message, CLKOUT_DUTY_CYCLE); + Write ( Message, string'(" which is not an allowed value. Allowed value s are: ")); + Write ( Message, LF ); + tmp_j := 0.0; + for j in 0 to (2 * CLKOUT_DIVIDE ) loop + tmp_duty_value := CLK_DUTY_CYCLE_MIN + CLK_DUTY_CYCLE_STEP * tmp_j; + if ( (tmp_duty_value <= CLK_DUTY_CYCLE_MAX) and (tmp_duty_value < 1.0)) then + Write ( Message, tmp_duty_value); + Write ( Message, LF ); + end if; + tmp_j := tmp_j + 1.0; + end loop; + assert false report Message.all severity warning; + DEALLOCATE (Message); + end if; + return duty_cycle_valid; + end function clkout_duty_chk; + +-- Input/Output Pin signals + + constant VCOCLK_FREQ_MAX : real := 2133.0; + constant VCOCLK_FREQ_MIN : real := 800.0; + constant CLKIN_FREQ_MAX : real := 1066.0; + constant CLKIN_FREQ_MIN : real := 19.0; + constant CLKPFD_FREQ_MAX : real := 550.0; + constant CLKPFD_FREQ_MIN : real := 19.0; + constant VCOCLK_FREQ_TARGET : real := 1200.0; + constant O_MAX_HT_LT : integer := 64; + constant REF_CLK_JITTER_MAX : time := 1000 ps; + constant REF_CLK_JITTER_SCALE : real := 0.1; + constant MAX_FEEDBACK_DELAY : time := 10 ns; + constant MAX_FEEDBACK_DELAY_SCALE : real := 1.0; + constant M_MAX : real := 64.000; + constant M_MIN : real := 2.000; + constant D_MAX : integer := 80; + constant D_MIN : integer := 1; + constant ps_max : integer := 55; + constant OSC_P2 : time := 250 ps; + constant SIM_DEVICE : string := "E2XXXXX"; + constant CLKFBOUT_USE_FINE_PS : boolean := FALSE; + constant CLKOUT0_USE_FINE_PS : boolean := FALSE; + constant CLKOUT1_USE_FINE_PS : boolean := FALSE; + constant CLKOUT2_USE_FINE_PS : boolean := FALSE; + constant CLKOUT3_USE_FINE_PS : boolean := FALSE; + constant CLKOUT4_USE_FINE_PS : boolean := FALSE; + constant CLKOUT5_USE_FINE_PS : boolean := FALSE; + constant CLKOUT6_USE_FINE_PS : boolean := FALSE; + constant CLKOUT4_CASCADE : boolean := FALSE; + constant CLKOUT6_DIVIDE : integer := 1; + constant CLKOUT6_DUTY_CYCLE : real := 0.500; + constant CLKOUT6_PHASE : real := 0.000; + + + signal pll_lock_time : integer; + signal lock_period_time : integer; + signal STARTUP_WAIT_sig : std_ulogic; + signal CLKIN1_ipd : std_ulogic; + signal CLKIN2_ipd : std_ulogic; + signal CLKFBIN_ipd : std_ulogic; + signal RST_ipd : std_ulogic; + signal CLKINSEL_ipd : std_ulogic; + signal DADDR_ipd : std_logic_vector(6 downto 0); + signal DI_ipd : std_logic_vector(15 downto 0); + signal DWE_ipd : std_ulogic; + signal DEN_ipd : std_ulogic; + signal DCLK_ipd : std_ulogic; + signal PSINCDEC_ipd : std_ulogic := '0'; + signal PSEN_ipd : std_ulogic := '0'; + signal PSCLK_ipd : std_ulogic := '0'; + signal PWRDWN_ipd : std_ulogic; + signal GSR : std_ulogic := '0'; + signal CLKOUT0_out : std_ulogic := '0'; + signal CLKOUT1_out : std_ulogic := '0'; + signal CLKOUT2_out : std_ulogic := '0'; + signal CLKOUT3_out : std_ulogic := '0'; + signal CLKOUT4_out : std_ulogic := '0'; + signal CLKOUT5_out : std_ulogic := '0'; + signal CLKOUT6_out : std_ulogic := '0'; + signal CLKFBSTOPPED_out : std_ulogic := '0'; + signal CLKINSTOPPED_out : std_ulogic := '0'; + signal CLKINSTOPPED_out_dly : std_ulogic := '0'; + signal CLKINSTOPPED_out_dly2 : std_ulogic := '0'; + signal clkin_stop_f : std_ulogic := '0'; + signal psen_w : std_ulogic := '0'; + signal period_avg_stpi : time := 0 ps; + signal period_avg_stp : time := 0 ps; + signal vco_stp_f : std_ulogic := '0'; + signal pd_stp_p : std_ulogic := '0'; + signal CLKFBSTOPPED_out1 : std_ulogic := '0'; + signal CLKINSTOPPED_out1 : std_ulogic := '0'; + signal locked_out : std_ulogic := '0'; + signal locked_out_tmp : std_ulogic := '0'; + signal do_out : std_logic_vector(15 downto 0); + signal DRDY_out : std_ulogic := '0'; + signal PSDONE_out : std_ulogic := '0'; + signal CLKIN1_dly : std_ulogic; + signal CLKIN2_dly : std_ulogic; + signal CLKFBIN_dly : std_ulogic; + signal RST_dly : std_ulogic; + signal PWRDEN_dly : std_ulogic; + signal CLKINSEL_dly : std_ulogic; + signal DADDR_dly : std_logic_vector(6 downto 0); + signal DI_dly : std_logic_vector(15 downto 0); + signal DWE_dly : std_ulogic; + signal DEN_dly : std_ulogic; + signal DCLK_dly : std_ulogic; + signal PSINCDEC_dly : std_ulogic := '0'; + signal PSEN_dly : std_ulogic := '0'; + signal PSCLK_dly : std_ulogic := '0'; + + signal di_in : std_logic_vector (15 downto 0); + signal dwe_in : std_ulogic := '0'; + signal den_in : std_ulogic := '0'; + signal dclk_in : std_ulogic := '0'; + signal psincdec_in : std_ulogic := '0'; + signal psen_in : std_ulogic := '0'; + signal psclk_in : std_ulogic := '0'; + signal rst_in : std_ulogic := '0'; + signal rst_in_o : std_ulogic := '0'; + signal pwrdwn_in : std_ulogic := '0'; + signal pwrdwn_in1 : std_ulogic := '0'; + signal pwrdwn_in1_h : std_ulogic := '0'; + signal pwron_int : std_ulogic := '1'; + signal rst_input : std_ulogic := '0'; + signal rst_input_r : std_ulogic := '0'; + signal rst_input_r_h : std_ulogic := '0'; + signal pchk_clr : std_ulogic := '0'; + signal clkinstopped_in : std_ulogic := '0'; + signal clkfbstopped_in : std_ulogic := '0'; + signal clkfb_in : std_ulogic := '0'; + signal clkin1_in : std_ulogic := '0'; + signal clkin1_in_dly : std_ulogic := '0'; + signal clkin2_in : std_ulogic := '0'; + signal clkinsel_in : std_ulogic := '0'; + signal clkinsel_tmp : std_ulogic := '0'; + signal daddr_in : std_logic_vector(6 downto 0); + signal daddr_in_lat : integer := 0; + signal drp_lock : std_ulogic := '0'; + signal drp_lock1 : std_ulogic := '0'; + type drp_array is array (127 downto 0) of std_logic_vector(15 downto 0); + signal dr_sram : drp_array; + + signal clk0in : std_ulogic := '0'; + signal clk1in : std_ulogic := '0'; + signal clk2in : std_ulogic := '0'; + signal clk3in : std_ulogic := '0'; + signal clk4in : std_ulogic := '0'; + signal clk5in : std_ulogic := '0'; + signal clk6in : std_ulogic := '0'; + signal clkfbm1in : std_ulogic := '0'; + signal clkfbm2in : std_ulogic := '0'; + signal clk0_out : std_ulogic := '0'; + signal clk1_out : std_ulogic := '0'; + signal clk2_out : std_ulogic := '0'; + signal clk3_out : std_ulogic := '0'; + signal clk4_out : std_ulogic := '0'; + signal clk5_out : std_ulogic := '0'; + signal clk6_out : std_ulogic := '0'; + signal clkfb_out : std_ulogic := '0'; + signal clkind_out : std_ulogic := '0'; + signal clkfbm1_out : std_ulogic := '0'; + signal clkfbm2_out : std_ulogic := '0'; + signal clkout_en : std_ulogic := '0'; + signal clkout_en1 : std_ulogic := '0'; + signal clkout_en0 : std_ulogic := '0'; + signal clkout_en0_tmp : std_ulogic := '0'; + signal clkout_en0_tmp1 : std_ulogic := '0'; + signal clkout_en_t : integer := 0; + signal clkout_en_val : integer := 0; + signal clkout_cnt : integer := 0; + signal clkin_cnt : integer := 0; + signal clkin_lock_cnt : integer := 0; + signal clkout_en_time : integer := 12; + signal locked_en_time : integer := 10; + signal lock_cnt_max : integer := 30; + signal clkvco_lk : std_ulogic := '0'; + signal clkvco_lk_tmp2 : std_ulogic := '0'; + signal clkvco_lk_dly_tmp : std_ulogic := '0'; + signal clkvco_lk_en : std_ulogic := '0'; + signal clkvco_lk_osc : std_ulogic := '0'; + signal clkvco_lk_rst : std_ulogic := '0'; + signal clkvco_free : std_ulogic := '0'; + signal clkvco : std_ulogic := '0'; + signal fbclk_tmp : std_ulogic := '0'; + signal dly_tmp_o : time := 0 ps; + signal clkfb_div_frac_int : integer := 0; + signal clk0_div_frac_int : integer := 0; + signal clkfb_div_fint : integer := 0; + signal clkfb_div_fint_odd : integer := 0; + signal clkfbm1_div_t : real := 1.000; + signal clk0_div_fint : integer := 0; + signal clk0_div_fint_odd : integer := 0; + signal clkfb_div_frac : real := 0.0; + signal clk0_div_frac : real := 0.0; + signal clk0_frac_out : std_ulogic := '0'; + signal clkfbm1_frac_out : std_ulogic := '0'; + signal clk0_nf_out : std_ulogic := '0'; + signal clkfbm1_nf_out : std_ulogic := '0'; + signal clk0_frac_en : integer := 0; + signal clkfb_frac_en : integer := 0; + signal ps_in_init : integer := 0; + signal init_done : std_ulogic := '0'; + signal clk0_fps_en : integer := 0; + signal clk1_fps_en : integer := 0; + signal clk2_fps_en : integer := 0; + signal clk3_fps_en : integer := 0; + signal clk4_fps_en : integer := 0; + signal clk5_fps_en : integer := 0; + signal clk6_fps_en : integer := 0; + signal clkfb_fps_en : integer := 0; + signal fps_en : integer := 0; + signal clkfb_stop_tmp : std_ulogic := '0'; + signal clkin_stop_tmp : std_ulogic := '0'; + signal clkinstopped_hold : std_ulogic := '0'; + signal clkin_hold_f : integer := 0; + signal ps_in_ps : integer := 0; + signal ps_cnt : integer := 0; + signal clkout4_cascade_int : integer := 0; + signal clkout_ps : std_ulogic := '0'; + signal clkout_ps_tmp1 : std_ulogic := '0'; + signal clkout_ps_tmp2 : std_ulogic := '0'; + signal clkout_ps_t1 : std_ulogic := '0'; + signal clkout_ps_t2 : std_ulogic := '0'; + + signal rst_in1 : std_ulogic := '0'; + signal rst_unlock : std_ulogic := '0'; + signal rst_on_loss : std_ulogic := '0'; + signal rst_edge : time := 0 ps; + signal rst_ht : time := 0 ps; + signal fb_delay_found : std_ulogic := '0'; + signal fb_delay_found_tmp : std_ulogic := '0'; + signal clkfb_tst : std_ulogic := '0'; + constant fb_delay_max : time := MAX_FEEDBACK_DELAY * MAX_FEEDBACK_DELAY_SCALE; + signal fb_delay : time := 0 ps; + signal clkvco_delay : time := 0 ps; + signal val_tmp : time := 0 ps; + signal clkin_edge : time := 0 ps; + signal delay_edge : time := 0 ps; + + type real_array_usr is array (4 downto 0) of time; + signal clkin_period : real_array_usr := (others => 0 ps); + signal period_vco_en : time := 0 ps; + signal period_vco : time := 0 ps; + signal period_vco_mf : integer := 0; + signal period_vco_rm : integer := 0; + signal period_vco_cmp_cnt : integer := 0; + signal clkvco_tm_cnt : integer := 0; + signal period_vco_cmp_flag : integer := 0; + signal period_vco1 : time := 0 ps; + signal period_vco2 : time := 0 ps; + signal period_vco3 : time := 0 ps; + signal period_vco4 : time := 0 ps; + signal period_vco5 : time := 0 ps; + signal period_vco6 : time := 0 ps; + signal period_vco7 : time := 0 ps; + signal period_vco_half : time := 0 ps; + signal period_vco_half1 : time := 0 ps; + signal period_vco_half_rm : time := 0 ps; + signal period_vco_half_rm1 : time := 0 ps; + signal period_vco_half_rm2 : time := 0 ps; + signal clkvco_pdrm : real := 0.0; + constant period_vco_max : time := 1000 ps / VCOCLK_FREQ_MIN; + constant period_vco_min : time := 1000 ps / VCOCLK_FREQ_MAX; + constant period_vco_target : time := 1000 ps / VCOCLK_FREQ_TARGET; + constant period_vco_target_half : time := 500 ps / VCOCLK_FREQ_TARGET; + signal period_fb : time := 0 ps; + signal period_avg : time := 0 ps; + + signal clkfb_stop_max : integer := 3; + signal clkin_stop_max : integer := DIVCLK_DIVIDE + 1; + signal md_product : integer; + signal m_product : integer; + signal m_product1 : integer := 0; + signal m_product2 : integer; + + signal pll_locked_delay : time := 0 ps; + signal clkin_dly_t : time := 0 ps; + signal clkfb_dly_t : time := 0 ps; + signal clkfb_in_dly : std_ulogic := '0'; + signal pll_unlock : std_ulogic := '0'; + signal pll_unlock1 : std_ulogic := '0'; + signal pll_unlock1_tmp : std_ulogic := '0'; + signal pll_locked_tm : std_ulogic := '0'; + signal pll_locked_tmp1 : std_ulogic := '0'; + signal pll_locked_tmp2 : std_ulogic := '0'; + signal pll_locked_tmp2_dly : std_ulogic := '0'; + signal lock_period : std_ulogic := '0'; + signal pll_lock_tm: std_ulogic := '0'; + signal unlock_recover : std_ulogic := '0'; + signal clkin_stopped : std_ulogic := '0'; + signal clkfb_stopped : std_ulogic := '0'; + signal clkpll_jitter_unlock : std_ulogic := '0'; + signal clkin_jit : time := 0 ps; + constant ref_jitter_max_tmp : time := REF_CLK_JITTER_MAX; + + signal clk0ps_en : std_ulogic := '0'; + signal clk1ps_en : std_ulogic := '0'; + signal clk2ps_en : std_ulogic := '0'; + signal clk3ps_en : std_ulogic := '0'; + signal clk4ps_en : std_ulogic := '0'; + signal clk5ps_en : std_ulogic := '0'; + signal clk6ps_en : std_ulogic := '0'; + signal clkfbm1ps_en : std_ulogic := '0'; + signal clkout_mux : std_logic_vector (7 downto 0) := X"00"; + signal clkout_ps_mux : std_logic_vector (7 downto 0) := X"00"; + signal clk0pm_sel : integer := 0; + signal clk0pm_sel1 : integer := 0; + signal clk1pm_sel : integer := 0; + signal clk2pm_sel : integer := 0; + signal clk3pm_sel : integer := 0; + signal clk4pm_sel : integer := 0; + signal clk5pm_sel : integer := 0; + signal clk6pm_sel : integer := 0; + signal clk5pm_sel1 : integer := 0; + signal clk6pm_sel1 : integer := 0; + signal clkfbm1pm_sel : integer := 0; + signal clkfbm1pm_sel1 : integer := 0; + signal clkfbm1pm_rl : real := 0.0; + signal clk0_edge : std_ulogic := '0'; + signal clk1_edge : std_ulogic := '0'; + signal clk2_edge : std_ulogic := '0'; + signal clk3_edge : std_ulogic := '0'; + signal clk4_edge : std_ulogic := '0'; + signal clk5_edge : std_ulogic := '0'; + signal clk6_edge : std_ulogic := '0'; + signal clkfbm1_edge : std_ulogic := '0'; + signal clkfbm2_edge : std_ulogic := '0'; + signal clkind_edge : std_ulogic := '0'; + signal clk0_nocnt : std_ulogic := '0'; + signal clk1_nocnt : std_ulogic := '0'; + signal clk2_nocnt : std_ulogic := '0'; + signal clk3_nocnt : std_ulogic := '0'; + signal clk4_nocnt : std_ulogic := '0'; + signal clk5_nocnt : std_ulogic := '0'; + signal clk6_nocnt : std_ulogic := '0'; + signal clkfbm1_nocnt : std_ulogic := '0'; + signal clkfbm2_nocnt : std_ulogic := '0'; + signal clkind_nocnt : std_ulogic := '0'; + signal clk0_dly_cnt : integer := 0; + signal clk1_dly_cnt : integer := 0; + signal clk2_dly_cnt : integer := 0; + signal clk3_dly_cnt : integer := 0; + signal clk4_dly_cnt : integer := 0; + signal clk5_dly_cnt : integer := 0; + signal clk6_dly_cnt : integer := 0; + signal clkfbm1_dly_cnt : integer := 0; + signal clk0_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk1_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk2_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk3_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk4_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk5_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk6_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clkfbm1_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clkfbm2_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clk0_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk1_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk2_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk3_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk4_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk5_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk6_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clkfbm1_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clkfbm2_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clkout0_dly : integer := 0; + signal clkout1_dly : integer := 0; + signal clkout2_dly : integer := 0; + signal clkout3_dly : integer := 0; + signal clkout4_dly : integer := 0; + signal clkout5_dly : integer := 0; + signal clkout6_dly : integer := 0; + signal clkfbm1_dly : integer := 0; + signal clkind_ht : std_logic_vector (6 downto 0) := "0000000"; + signal clkind_lt : std_logic_vector (6 downto 0) := "0000000"; + signal clk0_ht1 : integer := 0; + signal clk1_ht1 : integer := 0; + signal clk2_ht1 : integer := 0; + signal clk3_ht1 : integer := 0; + signal clk4_ht1 : integer := 0; + signal clk5_ht1 : integer := 0; + signal clk6_ht1 : integer := 0; + signal clkfbm1_ht1 : integer := 0; + signal clkfbm2_ht1 : integer := 0; + signal clkind_ht1 : integer := 0; + signal clk0_cnt : integer := 0; + signal clk1_cnt : integer := 0; + signal clk2_cnt : integer := 0; + signal clk3_cnt : integer := 0; + signal clk4_cnt : integer := 0; + signal clk5_cnt : integer := 0; + signal clk6_cnt : integer := 0; + signal clkind_cnt : integer := 0; + signal clkfbm1_cnt : integer := 0; + signal clkfbm2_cnt : integer := 0; + signal clk0_div : integer := 0; + signal clk1_div : integer := 0; + signal clk2_div : integer := 0; + signal clk3_div : integer := 0; + signal clk4_div : integer := 0; + signal clk5_div : integer := 0; + signal clk6_div : integer := 0; + signal clkfbm1_div : integer := 1; + signal clkfbm1_f_div : real := 1.0; + signal clkfbm2_div : integer := 1; + signal clk0_div1 : integer := 0; + signal clk1_div1 : integer := 0; + signal clk2_div1 : integer := 0; + signal clk3_div1 : integer := 0; + signal clk4_div1 : integer := 0; + signal clk5_div1 : integer := 0; + signal clk6_div1 : integer := 0; + signal clkfbm1_div1 : integer := 0; + signal clkfbm2_div1 : integer := 0; + signal clkind_div : integer := 1; + signal clkind_div1 : integer := 1; + + signal clkvco_lk_tmp : std_ulogic := '0'; + signal clkinstopped_vco_f : std_ulogic := '0'; + signal clkin_period_tmp : real := 0.0; + signal clk0_frac_lt : time := 50 ps; + signal clk0_frac_ht : time := 50 ps; + signal clkfb_frac_lt : time := 50 ps; + signal clkfb_frac_ht : time := 50 ps; + signal clk0_frac_out_en : integer := 0; + signal clkfb_frac_out_en : integer := 0; + signal clk0_frac_out_init : std_ulogic := '1'; + signal clkfb_frac_out_init : std_ulogic := '1'; + signal period_ps : time := 0 ps; + signal period_ps_old : time := 0 ps; + signal clkvco_ps_tmp2_en : std_ulogic := '0'; + signal clkout_ps_eg : time := 0 ps; + signal clkout_ps_peg : time := 0 ps; + signal ps_lock : std_ulogic := '0'; + signal ps_lock_dly : std_ulogic := '0'; + signal mf_product : integer := 0; + signal mf_product1 : integer := 0; + signal clkpll_tmp1 : std_ulogic := '0'; + signal clkpll_tmp2 : std_ulogic := '0'; + signal clkpll_tmp3 : std_ulogic := '0'; + signal clkpll : std_ulogic := '0'; + signal clkpll_r : std_ulogic := '0'; + signal orig_rst_in : std_ulogic := '0'; + signal rst_clkinstopped : std_ulogic := '0'; + signal rst_clkinstopped_rc : std_ulogic := '0'; + signal rst_clkinstopped_tm : std_ulogic := '0'; + signal rst_clkfbstopped : std_ulogic := '0'; + signal rst_clkinstopped_lk : std_ulogic := '0'; + signal clkin_lost_cnt : integer := 0; + signal clkfb_lost_cnt : integer := 0; + signal clk_osc : std_ulogic := '0'; + signal clkin_p : std_ulogic := '0'; + signal clkfb_p : std_ulogic := '0'; + signal clkin_lost_val : integer := 500; + signal clkfb_lost_val : integer := 500; + signal rst_clkinsel_flag : std_ulogic := '0'; + + begin + + CLKOUT0 <= clkout0_out; + CLKOUT1 <= clkout1_out; + CLKOUT2 <= clkout2_out; + CLKOUT3 <= clkout3_out; + CLKOUT4 <= clkout4_out; + CLKOUT5 <= clkout5_out; + CLKFBOUT <= clkfb_out; + + unisim.VCOMPONENTS.PLL_LOCKG <= '0' when (STARTUP_WAIT_sig = '1' and locked_out_tmp = '0') else 'H'; + + DO <= do_out(15 downto 0); + DRDY <= DRDY_out after 100 ps; + LOCKED <= locked_out_tmp; + pll_locked_tmp2_dly <= pll_locked_tmp2 after 100 ps; + clkin1_in <= CLKIN1; + clkin2_in <= CLKIN2; + clkinsel_in <= '1' when CLKINSEL /= '0' else '0'; + clkfb_in <= CLKFBIN; + rst_input_r <= RST; + clkin1_in_dly <= CLKIN1; + daddr_in(6 downto 0) <= DADDR(6 downto 0); + di_in(15 downto 0) <= DI(15 downto 0); + dwe_in <= DWE; + den_in <= DEN; + dclk_in <= DCLK; + psclk_in <= '0'; + psen_in <= '0'; + psincdec_in <= '0'; + pwrdwn_in <= PWRDWN; + INIPROC : process + variable Message : line; + variable con_line : line; + variable tmpvalue : real; + variable chk_ok : std_ulogic; + variable tmp_string : string(1 to 18); + variable skipspace : character; + variable CLK_DUTY_CYCLE_MIN : real; + variable CLK_DUTY_CYCLE_MAX : real; + variable CLK_DUTY_CYCLE_STEP : real; + variable O_MAX_HT_LT_real : real; + variable duty_cycle_valid : std_ulogic; + variable CLKOUT0_DIVIDE_real : real; + variable CLKOUT1_DIVIDE_real : real; + variable CLKOUT2_DIVIDE_real : real; + variable CLKOUT3_DIVIDE_real : real; + variable CLKOUT4_DIVIDE_real : real; + variable CLKOUT5_DIVIDE_real : real; + variable tmp_j : real; + variable tmp_duty_value : real; + variable clk_ht_i : std_logic_vector(5 downto 0); + variable clk_lt_i : std_logic_vector(5 downto 0); + variable clk_nocnt_i : std_ulogic; + variable clk_edge_i : std_ulogic; + variable clkfbm1_f_div_v : real := 1.0; + variable clkfb_div_fint_v : integer := 1; + variable clkfb_div_fint_v_tmp : integer := 1; + variable clkfb_div_fint_v1 : real := 1.0; + variable clkfb_div_frac_v : real := 0.0; + variable clkfb_frac_en_v : integer := 0; + variable clkfb_div_frac_int_v : integer := 0; + variable mf_product_v : integer := 0; + variable clk0_div_fint_v : integer := 1; + variable clk0_div_fint_v_tmp : integer := 1; + variable clk0_div_fint_v1 : real := 1.0; + variable clk0_div_frac_v : real := 0.0; + variable clk0_frac_en_v : integer := 0; + variable clk0_div_frac_int_v : integer := 0; + variable ps_in_init_v : integer := 0; + variable lock_en_tmp1_rl : real; + variable lock_en_tmp2_rl : real; + variable lock_en_tmp3_int : integer; + variable clkfb_fps_eni : integer; + variable clk0_fps_eni : integer; + variable clk1_fps_eni : integer; + variable clk2_fps_eni : integer; + variable clk3_fps_eni : integer; + variable clk4_fps_eni : integer; + variable clk5_fps_eni : integer; + variable clk6_fps_eni : integer; + variable clkout_en_time_i : integer; + variable clkout_en_time_i1 : integer; + + begin + if((COMPENSATION /= "ZHOLD") and (COMPENSATION /= "zhold") and + (COMPENSATION /= "BUF_IN") and (COMPENSATION /= "buf_in") and + (COMPENSATION /= "EXTERNAL") and (COMPENSATION /= "external") and + (COMPENSATION /= "INTERNAL") and (COMPENSATION /= "internal")) then + assert FALSE report " Attribute Syntax Error : The Attribute COMPENSATION must be set to ZHOLD or BUF_IN or EXTERNAL or INTERNAL." severity error; + end if; + + if((BANDWIDTH /= "HIGH") and (BANDWIDTH /= "high") and + (BANDWIDTH /= "LOW") and (BANDWIDTH /= "low") and + (BANDWIDTH /= "OPTIMIZED") and (BANDWIDTH /= "optimized")) then + assert FALSE report "Attribute Syntax Error : BANDWIDTH is not HIGH, LOW, OPTIMIZED." severity error; + end if; + + case CLKFBOUT_USE_FINE_PS is + when FALSE => clkfb_fps_en <= 0; + clkfb_fps_eni := 0; + when TRUE => clkfb_fps_en <= 1; + clkfb_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKFBOUT_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT0_USE_FINE_PS is + when FALSE => clk0_fps_en <= 0; + clk0_fps_eni := 0; + when TRUE => clk0_fps_en <= 1; + clk0_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT0_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT1_USE_FINE_PS is + when FALSE => clk1_fps_en <= 0; + clk1_fps_eni := 0; + when TRUE => clk1_fps_en <= 1; + clk1_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT1_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT2_USE_FINE_PS is + when FALSE => clk2_fps_en <= 0; + clk2_fps_eni := 0; + when TRUE => clk2_fps_en <= 1; + clk2_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT2_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT3_USE_FINE_PS is + when FALSE => clk3_fps_en <= 0; + clk3_fps_eni := 0; + when TRUE => clk3_fps_en <= 1; + clk3_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT3_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT4_USE_FINE_PS is + when FALSE => clk4_fps_en <= 0; + clk4_fps_eni := 0; + when TRUE => clk4_fps_en <= 1; + clk4_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT4_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT5_USE_FINE_PS is + when FALSE => clk5_fps_en <= 0; + clk5_fps_eni := 0; + when TRUE => clk5_fps_en <= 1; + clk5_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT5_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + case CLKOUT6_USE_FINE_PS is + when FALSE => clk6_fps_en <= 0; + clk6_fps_eni := 0; + when TRUE => clk6_fps_en <= 1; + clk6_fps_eni := 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT6_USE_FINE_PS must be set to FALSE or TRUE." severity error; + end case; + + if((STARTUP_WAIT = "FALSE") or (STARTUP_WAIT = "false")) then + STARTUP_WAIT_sig <= '0'; + elsif((STARTUP_WAIT = "TRUE") or (STARTUP_WAIT= "true")) then + STARTUP_WAIT_sig <= '1'; + else + assert FALSE report "Error : STARTUP_WAIT is not FALSE, TRUE." severity error; + end if; + -- end case; + + if (clkfb_fps_eni=1 or clk0_fps_eni=1 or clk1_fps_eni=1 or clk2_fps_eni=1 + or clk3_fps_eni=1 or clk4_fps_eni=1 or clk5_fps_eni=1 or clk6_fps_eni=1) then + fps_en <= 1; + end if; + + clkin_hold_f <= 0; + +-- case CLOCK_HOLD is +-- when FALSE => clkin_hold_f <= 0; +-- when TRUE => clkin_hold_f <= 1; +-- when others => assert FALSE report " Attribute Syntax Error : The Attribute CLOCK_HOLD must be set to FALSE or TRUE." severity error; +-- end case; + + case CLKOUT4_CASCADE is + when FALSE => clkout4_cascade_int <= 0; + when TRUE => clkout4_cascade_int <= 1; + when others => assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT4_CASCADE must be set to FALSE or TRUE." severity error; + end case; + + clkfbm1_f_div_v := real(CLKFBOUT_MULT); + clkfbm1_f_div <= clkfbm1_f_div_v; + clkfb_div_fint_v := CLKFBOUT_MULT; + clkfb_div_fint_v_tmp := clkfb_div_fint_v / 2; + clkfb_div_fint_odd <= clkfb_div_fint_v - 2 * clkfb_div_fint_v_tmp; + clkfb_div_fint_v1 := real(clkfb_div_fint_v); + clkfb_div_fint <= clkfb_div_fint_v; + clkfb_div_frac_v := 0.0; + clkfb_div_frac <= clkfb_div_frac_v; + clkfb_frac_en_v := 0; + clkfb_frac_en <= 0; + clkfb_div_frac_int_v := 0; + clkfb_div_frac_int <= 0; + mf_product_v := clkfb_div_fint_v * 8 + clkfb_div_frac_int_v; + mf_product <= mf_product_v; + mf_product1 <= mf_product_v - 1; + + clk0_div_fint_v := CLKOUT0_DIVIDE; + clk0_div_fint_v1 := real(clk0_div_fint_v); + clk0_div_fint <= clk0_div_fint_v; + clk0_div_fint_v_tmp := clk0_div_fint_v / 2; + clk0_div_fint_odd <= clk0_div_fint_v - 2 * clk0_div_fint_v_tmp; + clk0_div_frac_v := 0.0; + clk0_div_frac <= clk0_div_frac_v; + clk0_frac_en_v := 0; + clk0_frac_en <= 0; + clk0_div_frac_int_v := 0; + clk0_div_frac_int <= 0; + + ps_in_init_v := 0; + ps_in_init <= ps_in_init_v; + + if (clk0_frac_en_v = 1 and clk0_fps_eni = 1) then + assert FALSE report " Attribute Syntax Error : The Attribute CLKOUT0_USE_FINE_PS should be set to FALSE when CLKOUT0_DIVIDE_F has fraction part." severity error; + end if; + + if (clkfb_frac_en_v = 1 and clkfb_fps_eni = 1) then + assert FALSE report " Attribute Syntax Error : The Attribute CLKFBOUT_USE_FINE_PS should be set to FALSE when CLKFBOUT_MULT_F has fraction part." severity error; + end if; + + if (CLKOUT0_DIVIDE < 1 or CLKOUT0_DIVIDE > 128) then + assert FALSE report "Attribute Syntax Error : CLKOUT0_DIVIDE is not in range 1 to 128." severity error; + end if; + + if (clk0_frac_en_v = 0) then + if ((CLKOUT0_PHASE < -360.0) or (CLKOUT0_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT0_PHASE is not in range -360.0 to 360.0" severity error; + end if; + else + if (CLKOUT0_PHASE > 0.0 or CLKOUT0_PHASE < 0.0) then + assert FALSE report "Attribute Syntax Error : CLKOUT0_PHASE should be set to 0.0 when CLKOUT0_DIVIDE_F has fraction part." severity error; + end if; + end if; + + if (clk0_frac_en_v = 0) then + if ((CLKOUT0_DUTY_CYCLE < 0.001) or (CLKOUT0_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT0_DUTY_CYCLE is not real in range 0.001 to 0.999 pecentage."severity error; + end if; + else + if (CLKOUT0_DUTY_CYCLE > 0.5 or CLKOUT0_DUTY_CYCLE < 0.5) then + assert FALSE report "Attribute Syntax Error : CLKOUT0_DUTY_CYCLE should be set to 0.5 when CLKOUT0_DIVIDE_F has fraction part." severity error; + end if; + end if; + + case CLKOUT1_DIVIDE is + when 1 to 128 => NULL ; + when others => assert FALSE report "Attribute Syntax Error : CLKOUT1_DIVIDE is not in range 1 to 128." severity error; + end case; + + if ((CLKOUT1_PHASE < -360.0) or (CLKOUT1_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT1_PHASE is not in range -360.0 to 360.0" severity error; + end if; + + if ((CLKOUT1_DUTY_CYCLE < 0.001) or (CLKOUT1_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT1_DUTY_CYCLE is not real in range 0.001 to 0.999 pecentage."severity error; + end if; + + case CLKOUT2_DIVIDE is + when 1 to 128 => NULL ; + when others => assert FALSE report "Attribute Syntax Error : CLKOUT2_DIVIDE is not in range 1 to 128." severity error; + end case; + + if ((CLKOUT2_PHASE < -360.0) or (CLKOUT2_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT2_PHASE is not in range -360.0 to 360.0" severity error; + end if; + + if ((CLKOUT2_DUTY_CYCLE < 0.001) or (CLKOUT2_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT2_DUTY_CYCLE is not real in range 0.001 to 0.999 pecentage."severity error; + end if; + + case CLKOUT3_DIVIDE is + when 1 to 128 => NULL ; + when others => assert FALSE report "Attribute Syntax Error : CLKOUT3_DIVIDE is not in range 1...128." severity error; + end case; + + if ((CLKOUT3_PHASE < -360.0) or (CLKOUT3_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT3_PHASE is not in range -360.0 to 360.0" severity error; + end if; + + if ((CLKOUT3_DUTY_CYCLE < 0.001) or (CLKOUT3_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT3_DUTY_CYCLE is not real in range 0.001 to 0.999 pecentage."severity error; + end if; + + case CLKOUT4_DIVIDE is + when 1 to 128 => NULL ; + when others => assert FALSE report "Attribute Syntax Error : CLKOUT4_DIVIDE is not in range 1 to 128." severity error; + end case; + + if ((CLKOUT4_PHASE < -360.0) or (CLKOUT4_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT4_PHASE is not in range -360.0 to 360.0" severity error; + end if; + + if ((CLKOUT4_DUTY_CYCLE < 0.001) or (CLKOUT4_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT4_DUTY_CYCLE is not real in range 0.001 to 0.999 pecentage."severity error; + end if; + + if (clk0_frac_en_v = 0) then + case CLKOUT5_DIVIDE is + when 1 to 128 => NULL ; + when others => assert FALSE report "Attribute Syntax Error : CLKOUT5_DIVIDE is not in range 1...128." severity error; + end case; + if ((CLKOUT5_PHASE < -360.0) or (CLKOUT5_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT5_PHASE is not in range 360.0 to 360.0" severity error; + end if; + if ((CLKOUT5_DUTY_CYCLE < 0.001) or (CLKOUT5_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT5_DUTY_CYCLE is not real in range 0.001 to 0.999 pecentage."severity error; + end if; + end if; + + if (clkfb_frac_en_v = 0) then + case CLKOUT6_DIVIDE is + when 1 to 128 => NULL ; + when others => assert FALSE report "Attribute Syntax Error : CLKOUT6_DIVIDE is not in range 1 to 128." severity error; + end case; + if ((CLKOUT6_PHASE < -360.0) or (CLKOUT6_PHASE > 360.0)) then + assert FALSE report "Attribute Syntax Error : CLKOUT6_PHASE is not in range 360.0 to 360.0" severity error; + end if; + if ((CLKOUT6_DUTY_CYCLE < 0.001) or (CLKOUT6_DUTY_CYCLE > 0.999)) then + assert FALSE report "Attribute Syntax Error : CLKOUT6_DUTY_CYCLE is not real in range 0.0 to 1.0 pecentage."severity error; + end if; + end if; + + if (CLKFBOUT_MULT < 2 or CLKFBOUT_MULT > 64) then + assert FALSE report "Attribute Syntax Error : CLKFBOUT_MULT is not in range 2 to 64 ." severity error; + end if; + + if (clkfb_frac_en_v = 0) then + if ( CLKFBOUT_PHASE < -360.0 or CLKFBOUT_PHASE > 360.0 ) then + assert FALSE report "Attribute Syntax Error : CLKFBOUT_PHASE is not in range -360.0 to 360.0" severity error; + end if; + else + if (CLKFBOUT_PHASE > 0.0 or CLKFBOUT_PHASE < 0.0) then + assert FALSE report "Attribute Syntax Error : CLKFBOUT_PHASE should be set to 0.0 when CLKFBOUT_MULT_F has fraction part." severity error; + end if; + end if; + + case DIVCLK_DIVIDE is + when 1 to 80 => NULL; + when others => assert FALSE report "Attribute Syntax Error : DIVCLK_DIVIDE is not in range 1 to 80." severity error; + end case; + + if ((REF_JITTER1 < 0.0) or (REF_JITTER1 > 0.999)) then + assert FALSE report "Attribute Syntax Error : REF_JITTER1 is not in range 0.0 ... 1.0." severity error; + end if; + + if ((REF_JITTER2 < 0.0) or (REF_JITTER2 > 0.999)) then + assert FALSE report "Attribute Syntax Error : REF_JITTER2 is not in range 0.0 ... 1.0." severity error; + end if; + + CLKOUT0_DIVIDE_real := real(CLKOUT0_DIVIDE); + O_MAX_HT_LT_real := real(O_MAX_HT_LT); + CLKOUT1_DIVIDE_real := real(CLKOUT1_DIVIDE); + CLKOUT2_DIVIDE_real := real(CLKOUT2_DIVIDE); + CLKOUT3_DIVIDE_real := real(CLKOUT3_DIVIDE); + CLKOUT4_DIVIDE_real := real(CLKOUT4_DIVIDE); + CLKOUT5_DIVIDE_real := real(CLKOUT5_DIVIDE); + + if (clk0_frac_en_v = 0) then + if (clk0_div_fint_v /= 0) then + chk_ok := clkout_duty_chk (clk0_div_fint_v, CLKOUT0_DUTY_CYCLE, "CLKOUT0_DUTY_CYCLE"); + end if; + if (CLKOUT5_DIVIDE /= 0) then + chk_ok := clkout_duty_chk (CLKOUT5_DIVIDE, CLKOUT5_DUTY_CYCLE, "CLKOUT5_DUTY_CYCLE"); + end if; + end if; + if (CLKOUT1_DIVIDE /= 0) then + chk_ok := clkout_duty_chk (CLKOUT1_DIVIDE, CLKOUT1_DUTY_CYCLE, "CLKOUT1_DUTY_CYCLE"); + end if; + if (CLKOUT2_DIVIDE /= 0) then + chk_ok := clkout_duty_chk (CLKOUT2_DIVIDE, CLKOUT2_DUTY_CYCLE, "CLKOUT2_DUTY_CYCLE"); + end if; + if (CLKOUT3_DIVIDE /= 0) then + chk_ok := clkout_duty_chk (CLKOUT3_DIVIDE, CLKOUT3_DUTY_CYCLE, "CLKOUT3_DUTY_CYCLE"); + end if; + if (CLKOUT4_DIVIDE /= 0) then + chk_ok := clkout_duty_chk (CLKOUT4_DIVIDE, CLKOUT4_DUTY_CYCLE, "CLKOUT4_DUTY_CYCLE"); + end if; + if (clkfb_frac_en_v = 0) then + if (CLKOUT6_DIVIDE /= 0) then + chk_ok := clkout_duty_chk (CLKOUT6_DIVIDE, CLKOUT6_DUTY_CYCLE, "CLKOUT6_DUTY_CYCLE"); + end if; + end if; + lock_en_tmp3_int := DIVCLK_DIVIDE * CLKFBOUT_MULT; + if (clkfb_frac_en_v = 1) then + clkout_en_time_i := mf_product_v + 4; + else + clkout_en_time_i := lock_en_tmp3_int; + end if; + pll_lock_time <= 12; + lock_period_time <= 10; + clkout_en_time_i1 := clkout_en_time_i + 12; + clkout_en_time <= clkout_en_time_i1; + locked_en_time <= lock_en_tmp3_int + clkout_en_time_i1 + 2; + lock_cnt_max <= lock_en_tmp3_int + clkout_en_time_i1 + 16; + init_done <= '1'; + + wait; + end process INIPROC; + + + clkinsel_p : process + variable period_clkin : real; + variable clkvco_freq_init_chk : real := 0.0; + variable Message : line; + variable tmpreal1 : real; + variable tmpreal2 : real; + variable first_check : boolean := true; + variable clkin_chk_t1 : real; + variable clkin_chk_t1_tmp1 : real; + variable clkin_chk_t1_tmp2 : real; + variable clkin_chk_t1_tmpi : time; + variable clkin_chk_t1_tmpi1 : integer; + variable clkin_chk_t2 : real; + variable clkin_chk_t2_tmp1 : real; + variable clkin_chk_t2_tmp2 : real; + variable clkin_chk_t2_tmpi : time; + variable clkin_chk_t2_tmpi1 : integer; + begin + + if (first_check = true or rising_edge(clkinsel_in) or falling_edge(clkinsel_in)) then + + if (NOW > 1 ps and rst_in = '0' and (clkinsel_tmp = '0' or clkinsel_tmp = '1')) then + assert false report + "Input Error : PLLE2_ADV input clock can only be switched when RST=1. CLKINSEL is changed when RST low, which should be changed at RST high." + severity error; + end if; + + if (NOW = 0 ps) then + wait for 1 ps; + end if; + + clkin_chk_t1_tmp1 := 1000.0 / CLKIN_FREQ_MIN; + clkin_chk_t1_tmp2 := 1000.0 * clkin_chk_t1_tmp1; + clkin_chk_t1_tmpi := clkin_chk_t1_tmp2 * 1 ps; + clkin_chk_t1_tmpi1 := clkin_chk_t1_tmpi / 1 ps; + clkin_chk_t1 := real(clkin_chk_t1_tmpi1) / 1000.0; + + clkin_chk_t2_tmp1 := 1000.0 / CLKIN_FREQ_MAX; + clkin_chk_t2_tmp2 := 1000.0 * clkin_chk_t2_tmp1; + clkin_chk_t2_tmpi := clkin_chk_t2_tmp2 * 1 ps; + clkin_chk_t2_tmpi1 := clkin_chk_t2_tmpi / 1 ps; + clkin_chk_t2 := real(clkin_chk_t2_tmpi1) / 1000.0; + + + if (((CLKIN1_PERIOD < clkin_chk_t2) or (CLKIN1_PERIOD > clkin_chk_t1)) and (CLKINSEL /= '0')) then + Write ( Message, string'(" Attribute Syntax Error : The attribute CLKIN1_PERIOD is set to ")); + Write ( Message, CLKIN1_PERIOD); + Write ( Message, string'(" ns and out the allowed range ")); + Write ( Message, clkin_chk_t2); + Write ( Message, string'(" ns to ")); + Write ( Message, clkin_chk_t1); + Write ( Message, string'(" ns" )); + Write ( Message, '.' & LF ); + assert false report Message.all severity error; + DEALLOCATE (Message); + end if; + + if (((CLKIN2_PERIOD < clkin_chk_t2) or (CLKIN2_PERIOD > clkin_chk_t1)) and (CLKINSEL = '0')) then + Write ( Message, string'(" Attribute Syntax Error : The attribute CLKIN2_PERIOD is set to ")); + Write ( Message, CLKIN2_PERIOD); + Write ( Message, string'(" ns and out the allowed range ")); + Write ( Message, clkin_chk_t2); + Write ( Message, string'(" ns to ")); + Write ( Message, clkin_chk_t1); + Write ( Message, string'(" ns")); + Write ( Message, '.' & LF ); + assert false report Message.all severity error; + DEALLOCATE (Message); + end if; + + if ( clkinsel_in /= '0') then + period_clkin := CLKIN1_PERIOD; + else + period_clkin := CLKIN2_PERIOD; + end if; + + tmpreal1 := real(CLKFBOUT_MULT); + tmpreal2 := real(DIVCLK_DIVIDE); + if (period_clkin > 0.000) then + clkvco_freq_init_chk := (1000.0 * tmpreal1) / ( period_clkin * tmpreal2); + + if ((clkvco_freq_init_chk > VCOCLK_FREQ_MAX) or (clkvco_freq_init_chk < VCOCLK_FREQ_MIN)) then + Write ( Message, string'(" Attribute Syntax Error : The calculation of VCO frequency=")); + Write ( Message, clkvco_freq_init_chk); + Write ( Message, string'(" Mhz. This exceeds the permitted VCO frequency range of ")); + Write ( Message, VCOCLK_FREQ_MIN); + Write ( Message, string'(" MHz to ")); + Write ( Message, VCOCLK_FREQ_MAX); + if (clkinsel_in /= '0') then + Write ( Message, string'(" MHz. The VCO frequency is calculated with formula: VCO frequency = CLKFBOUT_MULT / (DIVCLK_DIVIDE * CLKIN1_PERIOD).")); + else + Write ( Message, string'(" MHz. The VCO frequency is calculated with formula: VCO frequency = CLKFBOUT_MULT / (DIVCLK_DIVIDE * CLKIN2_PERIOD).")); + end if; + Write ( Message, string'(" Please adjust the attributes to the permitted VCO frequency range.")); + assert false report Message.all severity error; + DEALLOCATE (Message); + end if; + end if; + first_check := false; + end if; + wait on clkinsel_in, clkpll_r; + end process; + + clkpll_r <= clkin1_in when clkinsel_in = '1' else clkin2_in; + pwrdwn_in1 <= '1' when pwrdwn_in = '1' else '0'; + rst_input <= rst_input_r or pwrdwn_in1; + rst_in_o <= rst_in or rst_clkfbstopped or rst_clkinstopped; + + RST_SYNC_P : process (clkpll_r, rst_input) + begin + if (rst_input = '1') then + rst_in <= '1'; + elsif (rising_edge (clkpll_r)) then + rst_in <= rst_input; + end if; + end process; + +--simprim_rst_h + pwrdwn_in1_h_p : process(pwrdwn_in1, pchk_clr) + begin + if (rising_edge(pwrdwn_in1)) then + pwrdwn_in1_h <= '1'; + elsif (rising_edge(pchk_clr)) then + pwrdwn_in1_h <= '0'; + end if; + end process; + + rst_input_r_h_p : process(rst_input_r, pchk_clr) + begin + if (rising_edge(rst_input_r)) then + rst_input_r_h <= '1'; + elsif (rising_edge(pchk_clr)) then + rst_input_r_h <= '0'; + end if; + end process; + + RST_PW_P : process (rst_input) + variable rst_edge : time := 0 ps; + variable rst_ht : time := 0 ps; + begin + if (rising_edge(rst_input)) then + rst_edge := NOW; + elsif ((falling_edge(rst_input)) and rst_edge > 1 ps) then + rst_ht := NOW - rst_edge; + if (rst_ht < 1.5 ns and rst_ht > 0 ps) then + if (rst_input_r_h = '1' and pwrdwn_in1_h = '1') then + assert false report + "Input Error : RST and PWRDWN must be asserted at least for 1.5 ns." + severity error; + elsif (rst_input_r_h = '1' and pwrdwn_in1_h = '0') then + assert false report + "Input Error : RST must be asserted at least for 1.5 ns." + severity error; + elsif (rst_input_r_h = '0' and pwrdwn_in1_h = '1') then + assert false report + "Input Error : PWRDWN must be asserted at least for 1.5 ns." + severity error; + end if; + end if; + end if; + end process; +--endsimprim_rst_h + +---- +---- DRP port read and write +---- + + do_out <= dr_sram(daddr_in_lat); + + DRP_PROC : process + variable address : integer; + variable valid_daddr : boolean := false; + variable Message : line; + variable di_str : string (1 to 16); + variable daddr_str : string ( 1 to 7); + variable first_time : boolean := true; + variable clk_ht : std_logic_vector (6 downto 0); + variable tmp_ht : std_logic_vector (6 downto 0); + variable clk_lt : std_logic_vector (6 downto 0); + variable tmp_lt : std_logic_vector (6 downto 0); + variable clk_nocnt : std_ulogic; + variable clk_edge : std_ulogic; + variable clkout_dly : std_logic_vector (5 downto 0); + variable clkpm_sel : std_logic_vector (2 downto 0); + variable tmpx : std_logic_vector (7 downto 0); + variable clk0_hti : std_logic_vector (6 downto 0); + variable clk1_hti : std_logic_vector (6 downto 0); + variable clk2_hti : std_logic_vector (6 downto 0); + variable clk3_hti : std_logic_vector (6 downto 0); + variable clk4_hti : std_logic_vector (6 downto 0); + variable clk5_hti : std_logic_vector (6 downto 0); + variable clk6_hti : std_logic_vector (6 downto 0); + variable clkfbm1_hti : std_logic_vector (6 downto 0); + variable clkfbm2_hti : std_logic_vector (6 downto 0); + variable clk0_lti : std_logic_vector (6 downto 0); + variable clk1_lti : std_logic_vector (6 downto 0); + variable clk2_lti : std_logic_vector (6 downto 0); + variable clk3_lti : std_logic_vector (6 downto 0); + variable clk4_lti : std_logic_vector (6 downto 0); + variable clk5_lti : std_logic_vector (6 downto 0); + variable clk6_lti : std_logic_vector (6 downto 0); + variable clkfbm1_lti : std_logic_vector (6 downto 0); + variable clkfbm2_lti : std_logic_vector (6 downto 0); + variable clk0_nocnti : std_ulogic; + variable clk1_nocnti : std_ulogic; + variable clk2_nocnti : std_ulogic; + variable clk3_nocnti : std_ulogic; + variable clk4_nocnti : std_ulogic; + variable clk5_nocnti : std_ulogic; + variable clk6_nocnti : std_ulogic; + variable clkfbm1_nocnti : std_ulogic; + variable clkfbm2_nocnti : std_ulogic; + variable clk0_edgei : std_ulogic; + variable clk1_edgei : std_ulogic; + variable clk2_edgei : std_ulogic; + variable clk3_edgei : std_ulogic; + variable clk4_edgei : std_ulogic; + variable clk5_edgei : std_ulogic; + variable clk6_edgei : std_ulogic; + variable clkfbm1_edgei : std_ulogic; + variable clkfbm2_edgei : std_ulogic; + variable clkout0_dly_tmp : integer; + variable clkout5_dly_tmp : integer; + variable clkout6_dly_tmp : integer; + variable clkfbm1_dly_tmp : integer; + variable clk5pm_sel_tmp : integer; + variable clk6pm_sel_tmp : integer; + variable clkout0_dlyi : std_logic_vector (5 downto 0); + variable clkout1_dlyi : std_logic_vector (5 downto 0); + variable clkout2_dlyi : std_logic_vector (5 downto 0); + variable clkout3_dlyi : std_logic_vector (5 downto 0); + variable clkout4_dlyi : std_logic_vector (5 downto 0); + variable clkout5_dlyi : std_logic_vector (5 downto 0); + variable clkout6_dlyi : std_logic_vector (5 downto 0); + variable clkfbm1_dlyi : std_logic_vector (5 downto 0); + variable clkfbm2_dlyi : std_logic_vector (5 downto 0); + variable clk0pm_seli : std_logic_vector (2 downto 0); + variable clk1pm_seli : std_logic_vector (2 downto 0); + variable clk2pm_seli : std_logic_vector (2 downto 0); + variable clk3pm_seli : std_logic_vector (2 downto 0); + variable clk4pm_seli : std_logic_vector (2 downto 0); + variable clk5pm_seli : std_logic_vector (2 downto 0); + variable clk6pm_seli : std_logic_vector (2 downto 0); + variable clkfbm1pm_seli : std_logic_vector (2 downto 0); + variable clkfbm2pm_seli : std_logic_vector (2 downto 0); + variable clkfbm1pm_sel_tmp : integer; + variable clk0pm_sel_tmp : integer; + variable clk_ht1 : integer; + variable clk_div : integer; + variable clk_div1 : integer; + variable clkind_hti : std_logic_vector (6 downto 0); + variable clkind_lti : std_logic_vector (6 downto 0); + variable clkind_nocnti : std_ulogic; + variable clkind_edgei : std_ulogic; + variable pll_cp : std_logic_vector (3 downto 0); + variable pll_res : std_logic_vector (3 downto 0); + variable pll_lfhf : std_logic_vector (1 downto 0); + variable pll_cpres : std_logic_vector (1 downto 0) := "01"; + + variable drp_lock_ref_dly : std_logic_vector (4 downto 0); + variable drp_lock_fb_dly : std_logic_vector (4 downto 0); + variable drp_lock_cnt : std_logic_vector (9 downto 0); + variable drp_unlock_cnt : std_logic_vector (9 downto 0); + variable drp_lock_sat_high : std_logic_vector (9 downto 0); + variable tmpadd : std_logic_vector (4 downto 0); + begin + + if (first_time = true and init_done = '1') then + if (clk0_frac_en = 0) then + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, clk0_div_fint, CLKOUT0_DUTY_CYCLE); + clk0_hti := clk_ht; + clk0_lti := clk_lt; + clk0_nocnti := clk_nocnt; + clk0_edgei := clk_edge; + clk0_ht <= clk0_hti; + clk0_lt <= clk0_lti; + clk0_nocnt <= clk0_nocnti; + clk0_edge <= clk0_edgei; + end if; + + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, CLKOUT1_DIVIDE, CLKOUT1_DUTY_CYCLE); + clk1_hti := clk_ht; + clk1_lti := clk_lt; + clk1_nocnti := clk_nocnt; + clk1_edgei := clk_edge; + clk1_ht <= clk1_hti; + clk1_lt <= clk1_lti; + clk1_nocnt <= clk1_nocnti; + clk1_edge <= clk1_edgei; + + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, CLKOUT2_DIVIDE, CLKOUT2_DUTY_CYCLE); + clk2_hti := clk_ht; + clk2_lti := clk_lt; + clk2_nocnti := clk_nocnt; + clk2_edgei := clk_edge; + clk2_ht <= clk2_hti; + clk2_lt <= clk2_lti; + clk2_nocnt <= clk2_nocnti; + clk2_edge <= clk2_edgei; + + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, CLKOUT3_DIVIDE, CLKOUT3_DUTY_CYCLE); + clk3_hti := clk_ht; + clk3_lti := clk_lt; + clk3_nocnti := clk_nocnt; + clk3_edgei := clk_edge; + clk3_ht <= clk3_hti; + clk3_lt <= clk3_lti; + clk3_nocnt <= clk3_nocnti; + clk3_edge <= clk3_edgei; + + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, CLKOUT4_DIVIDE, CLKOUT4_DUTY_CYCLE); + clk4_hti := clk_ht; + clk4_lti := clk_lt; + clk4_nocnti := clk_nocnt; + clk4_edgei := clk_edge; + clk4_ht <= clk4_hti; + clk4_lt <= clk4_lti; + clk4_nocnt <= clk4_nocnti; + clk4_edge <= clk4_edgei; + + if (clk0_frac_en = 0) then + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, CLKOUT5_DIVIDE, CLKOUT5_DUTY_CYCLE); + clk5_hti := clk_ht; + clk5_lti := clk_lt; + clk5_nocnti := clk_nocnt; + clk5_edgei := clk_edge; + clk5_ht <= clk5_hti; + clk5_lt <= clk5_lti; + clk5_nocnt <= clk5_nocnti; + clk5_edge <= clk5_edgei; + end if; + + if (clkfb_frac_en = 0) then + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, CLKOUT6_DIVIDE, CLKOUT6_DUTY_CYCLE); + clk6_hti := clk_ht; + clk6_lti := clk_lt; + clk6_nocnti := clk_nocnt; + clk6_edgei := clk_edge; + clk6_ht <= clk6_hti; + clk6_lt <= clk6_lti; + clk6_nocnt <= clk6_nocnti; + clk6_edge <= clk6_edgei; + end if; + + if (clkfb_frac_en = 0) then + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, clkfb_div_fint, 0.50); + clkfbm1_hti := clk_ht; + clkfbm1_lti := clk_lt; + clkfbm1_nocnti := clk_nocnt; + clkfbm1_edgei := clk_edge; + clkfbm1_ht <= clkfbm1_hti; + clkfbm1_lt <= clkfbm1_lti; + clkfbm1_nocnt <= clkfbm1_nocnti; + clkfbm1_edge <= clkfbm1_edgei; + end if; + + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, 1, 0.50); + clkfbm2_hti := clk_ht; + clkfbm2_lti := clk_lt; + clkfbm2_nocnti := clk_nocnt; + clkfbm2_edgei := clk_edge; + clkfbm2_ht <= clkfbm2_hti; + clkfbm2_lt <= clkfbm2_lti; + clkfbm2_nocnt <= clkfbm2_nocnti; + clkfbm2_edge <= clkfbm2_edgei; + + clk_out_para_cal (clk_ht, clk_lt, clk_nocnt, clk_edge, DIVCLK_DIVIDE, 0.50); + clkind_hti := clk_ht; + clkind_lti := clk_lt; + clkind_nocnti := clk_nocnt; + clkind_edgei := clk_edge; + clkind_ht <= clkind_hti; + clkind_lt <= clkind_lti; + + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk0_hti, clk0_lti, clk0_nocnti, clk0_edgei); + clk0_ht1 <= clk_ht1; + clk0_div <= clk_div; + clk0_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk1_hti, clk1_lti, clk1_nocnti, clk1_edgei); + clk1_ht1 <= clk_ht1; + clk1_div <= clk_div; + clk1_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk2_hti, clk2_lti, clk2_nocnti, clk2_edgei); + clk2_ht1 <= clk_ht1; + clk2_div <= clk_div; + clk2_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk3_hti, clk3_lti, clk3_nocnti, clk3_edgei); + clk3_ht1 <= clk_ht1; + clk3_div <= clk_div; + clk3_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk4_hti, clk4_lti, clk4_nocnti, clk4_edgei); + clk4_ht1 <= clk_ht1; + clk4_div <= clk_div; + clk4_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk5_hti, clk5_lti, clk5_nocnti, clk5_edgei); + clk5_ht1 <= clk_ht1; + clk5_div <= clk_div; + clk5_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk6_hti, clk6_lti, clk6_nocnti, clk6_edgei); + clk6_ht1 <= clk_ht1; + clk6_div <= clk_div; + clk6_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clkfbm1_hti, clkfbm1_lti, clkfbm1_nocnti, clkfbm1_edgei); + clkfbm1_ht1 <= clk_ht1; + if (clkfb_frac_en = 1) then + clkfbm1_div <= clkfb_div_fint; + else + clkfbm1_div <= clk_div; + end if; + clkfbm1_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clkfbm2_hti, clkfbm2_lti, clkfbm2_nocnti, clkfbm2_edgei); + clkfbm2_ht1 <= clk_ht1; + clkfbm2_div <= clk_div; + clkfbm2_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clkind_hti, clkind_lti, clkind_nocnti, '0'); + clkind_ht1 <= clk_ht1; + clkind_div1 <= clk_div1; + clkind_div <= clk_div; + + if (clk0_frac_en = 1) then + clkout0_dly_tmp := clk0_div_fint /2; + clkout0_dly <= clkout0_dly_tmp; + clkout0_dlyi := STD_LOGIC_VECTOR(TO_UNSIGNED(clkout0_dly_tmp, 6)); + if (clk0_div_fint_odd > 0) then + clk0pm_sel_tmp := 8 + clk0_div_frac_int - (8 + clk0_div_frac_int) / 2; + else + clk0pm_sel_tmp := clk0_div_frac_int - (clk0_div_frac_int) / 2; + end if; + clk0pm_sel <= clk0pm_sel_tmp; + clk0pm_seli := STD_LOGIC_VECTOR(TO_UNSIGNED(clk0pm_sel_tmp, 3)); + else + clkout_dly_cal (clkout_dly, clkpm_sel, clk0_div_fint, CLKOUT0_PHASE, "CLKOUT0_PHASE"); + clkout0_dly <= SLV_TO_INT(clkout_dly); + clk0pm_sel <= SLV_TO_INT(clkpm_sel); + clkout0_dlyi := clkout_dly; + clk0pm_seli := clkpm_sel; + end if; + + clkout_dly_cal (clkout_dly, clkpm_sel, CLKOUT1_DIVIDE, CLKOUT1_PHASE, "CLKOUT1_PHASE"); + clkout1_dly <= SLV_TO_INT(clkout_dly); + clk1pm_sel <= SLV_TO_INT(clkpm_sel); + clkout1_dlyi := clkout_dly; + clk1pm_seli := clkpm_sel; + + clkout_dly_cal (clkout_dly, clkpm_sel, CLKOUT2_DIVIDE, CLKOUT2_PHASE, "CLKOUT2_PHASE"); + clkout2_dly <= SLV_TO_INT(clkout_dly); + clk2pm_sel <= SLV_TO_INT(clkpm_sel); + clkout2_dlyi := clkout_dly; + clk2pm_seli := clkpm_sel; + clkout_dly_cal (clkout_dly, clkpm_sel, CLKOUT3_DIVIDE, CLKOUT3_PHASE, "CLKOUT3_PHASE"); + clkout3_dly <= SLV_TO_INT(clkout_dly); + clk3pm_sel <= SLV_TO_INT(clkpm_sel); + clkout3_dlyi := clkout_dly; + clk3pm_seli := clkpm_sel; + clkout_dly_cal (clkout_dly, clkpm_sel, CLKOUT4_DIVIDE, CLKOUT4_PHASE, "CLKOUT4_PHASE"); + clkout4_dly <= SLV_TO_INT(clkout_dly); + clk4pm_sel <= SLV_TO_INT(clkpm_sel); + clkout4_dlyi := clkout_dly; + clk4pm_seli := clkpm_sel; + clkout_dly_cal (clkout_dly, clkpm_sel, CLKOUT5_DIVIDE, CLKOUT5_PHASE, "CLKOUT5_PHASE"); + if (clk0_frac_en = 1) then + clkout5_dly_tmp := clk0_div_fint / 2; + clkout5_dly <= clkout5_dly_tmp; + clkout5_dlyi := STD_LOGIC_VECTOR(TO_UNSIGNED(clkout5_dly_tmp, 6)); + if (clk0_div_fint_odd > 0) then + clk5pm_sel_tmp := (8 + clk0_div_frac_int) / 2; + else + clk5pm_sel_tmp := clk0_div_frac_int / 2; + end if; + clk5pm_sel <= clk5pm_sel_tmp; + clk5pm_seli := STD_LOGIC_VECTOR(TO_UNSIGNED(clk5pm_sel_tmp, 3)); + else + clkout5_dly <= SLV_TO_INT(clkout_dly); + clk5pm_sel <= SLV_TO_INT(clkpm_sel); + clkout5_dlyi := clkout_dly; + clk5pm_seli := clkpm_sel; + end if; + clkout_dly_cal (clkout_dly, clkpm_sel, clkfb_div_fint, CLKFBOUT_PHASE, "CLKFBOUT_PHASE"); + if (clkfb_frac_en = 1) then + clkfbm1_dly_tmp := clkfb_div_fint /2; + clkfbm1_dly <= clkfbm1_dly_tmp; + clkfbm1_dlyi := STD_LOGIC_VECTOR(TO_UNSIGNED(clkfbm1_dly_tmp, 6)); + if (clkfb_div_fint_odd > 0) then + clkfbm1pm_sel_tmp := 8 + clkfb_div_frac_int - (8 + clkfb_div_frac_int) / 2; + else + clkfbm1pm_sel_tmp := clkfb_div_frac_int / 2; + end if; + clkfbm1pm_sel <= clkfbm1pm_sel_tmp; + clkfbm1pm_seli := STD_LOGIC_VECTOR(TO_UNSIGNED(clkfbm1pm_sel_tmp, 3)); + else + clkfbm1_dly <= SLV_TO_INT(clkout_dly); + clkfbm1pm_sel <= SLV_TO_INT(clkpm_sel); + clkfbm1_dlyi := clkout_dly; + clkfbm1pm_seli := clkpm_sel; + end if; + + clkout_dly_cal (clkout_dly, clkpm_sel, CLKOUT6_DIVIDE, CLKOUT6_PHASE, "CLKOUT6_PHASE"); + if (clkfb_frac_en = 1) then + clkout6_dly_tmp := clkfb_div_fint / 2; + clkout6_dly <= clkout6_dly_tmp; + clkout6_dlyi := STD_LOGIC_VECTOR(TO_UNSIGNED(clkout6_dly_tmp, 6)); + if (clkfb_div_fint_odd > 0) then + clk6pm_sel_tmp := (8 + clkfb_div_frac_int) / 2; + else + clk6pm_sel_tmp := clkfb_div_frac_int / 2; + end if; + clk6pm_sel <= clk6pm_sel_tmp; + clk6pm_seli := STD_LOGIC_VECTOR(TO_UNSIGNED(clk6pm_sel_tmp, 3)); + else + clkout6_dly <= SLV_TO_INT(clkout_dly); + clk6pm_sel <= SLV_TO_INT(clkpm_sel); + clkout6_dlyi := clkout_dly; + clk6pm_seli := clkpm_sel; + end if; + +-- if (BANDWIDTH = "LOW") then +-- pll_lfhf := "11"; +-- else + pll_lfhf := "00"; +-- end if; + + if (BANDWIDTH = "LOW") then + case clkfb_div_fint is + when 1 => pll_cp := "0010"; pll_res := "1111"; + when 2 => pll_cp := "0010"; pll_res := "1111"; + when 3 => pll_cp := "0010"; pll_res := "0111"; + when 4 => pll_cp := "0010"; pll_res := "1101"; + when 5 => pll_cp := "0010"; pll_res := "0101"; + when 6 => pll_cp := "0010"; pll_res := "0101"; + when 7 => pll_cp := "0010"; pll_res := "1001"; + when 8 => pll_cp := "0010"; pll_res := "1110"; + when 9 => pll_cp := "0010"; pll_res := "1110"; + when 10 => pll_cp := "0010"; pll_res := "0001"; + when 11 => pll_cp := "0010"; pll_res := "0001"; + when 12 => pll_cp := "0010"; pll_res := "0110"; + when 13 => pll_cp := "0010"; pll_res := "0110"; + when 14 => pll_cp := "0010"; pll_res := "0110"; + when 15 => pll_cp := "0010"; pll_res := "0110"; + when 16 => pll_cp := "0010"; pll_res := "1010"; + when 17 => pll_cp := "0010"; pll_res := "1010"; + when 18 => pll_cp := "0010"; pll_res := "1010"; + when 19 => pll_cp := "0010"; pll_res := "1010"; + when 20 => pll_cp := "0010"; pll_res := "1100"; + when 21 => pll_cp := "0010"; pll_res := "1100"; + when 22 => pll_cp := "0010"; pll_res := "1100"; + when 23 => pll_cp := "0010"; pll_res := "1100"; + when 24 => pll_cp := "0010"; pll_res := "1100"; + when 25 => pll_cp := "0010"; pll_res := "1100"; + when 26 => pll_cp := "0010"; pll_res := "1100"; + when 27 => pll_cp := "0010"; pll_res := "1100"; + when 28 => pll_cp := "0010"; pll_res := "1100"; + when 29 => pll_cp := "0010"; pll_res := "1100"; + when 30 => pll_cp := "0010"; pll_res := "1100"; + when 31 => pll_cp := "0010"; pll_res := "0010"; + when 32 => pll_cp := "0010"; pll_res := "0010"; + when 33 => pll_cp := "0010"; pll_res := "0010"; + when 34 => pll_cp := "0010"; pll_res := "0010"; + when 35 => pll_cp := "0010"; pll_res := "0010"; + when 36 => pll_cp := "0010"; pll_res := "0010"; + when 37 => pll_cp := "0010"; pll_res := "0010"; + when 38 => pll_cp := "0010"; pll_res := "0010"; + when 39 => pll_cp := "0010"; pll_res := "0010"; + when 40 => pll_cp := "0010"; pll_res := "0010"; + when 41 => pll_cp := "0011"; pll_res := "1100"; + when 42 => pll_cp := "0011"; pll_res := "1100"; + when 43 => pll_cp := "0011"; pll_res := "1100"; + when 44 => pll_cp := "0011"; pll_res := "1100"; + when 45 => pll_cp := "0011"; pll_res := "1100"; + when 46 => pll_cp := "0011"; pll_res := "1100"; + when 47 => pll_cp := "0011"; pll_res := "1100"; + when 48 => pll_cp := "0010"; pll_res := "0100"; + when 49 => pll_cp := "0010"; pll_res := "0100"; + when 50 => pll_cp := "0010"; pll_res := "0100"; + when 51 => pll_cp := "0010"; pll_res := "0100"; + when 52 => pll_cp := "0010"; pll_res := "0100"; + when 53 => pll_cp := "0010"; pll_res := "0100"; + when 54 => pll_cp := "0010"; pll_res := "0100"; + when 55 => pll_cp := "0010"; pll_res := "0100"; + when 56 => pll_cp := "0010"; pll_res := "0100"; + when 57 => pll_cp := "0010"; pll_res := "0100"; + when 58 => pll_cp := "0010"; pll_res := "0100"; + when 59 => pll_cp := "0010"; pll_res := "0100"; + when 60 => pll_cp := "0010"; pll_res := "0100"; + when 61 => pll_cp := "0010"; pll_res := "0100"; + when 62 => pll_cp := "0010"; pll_res := "0100"; + when 63 => pll_cp := "0010"; pll_res := "0100"; + when 64 => pll_cp := "0010"; pll_res := "0100"; + when others => NULL; + end case; + elsif (BANDWIDTH = "HIGH") then + case clkfb_div_fint is + when 1 => pll_cp := "0011"; pll_res := "0111"; + when 2 => pll_cp := "0011"; pll_res := "0111"; + when 3 => pll_cp := "0101"; pll_res := "1111"; + when 4 => pll_cp := "0111"; pll_res := "1111"; + when 5 => pll_cp := "0111"; pll_res := "1011"; + when 6 => pll_cp := "1101"; pll_res := "0111"; + when 7 => pll_cp := "1110"; pll_res := "1011"; + when 8 => pll_cp := "1110"; pll_res := "1101"; + when 9 => pll_cp := "1111"; pll_res := "1101"; + when 10 => pll_cp := "1111"; pll_res := "0111"; + when 11 => pll_cp := "1111"; pll_res := "1011"; + when 12 => pll_cp := "1111"; pll_res := "1101"; + when 13 => pll_cp := "1111"; pll_res := "0011"; + when 14 => pll_cp := "1110"; pll_res := "0101"; + when 15 => pll_cp := "1111"; pll_res := "0101"; + when 16 => pll_cp := "1111"; pll_res := "0101"; + when 17 => pll_cp := "1111"; pll_res := "0101"; + when 18 => pll_cp := "1111"; pll_res := "0101"; + when 19 => pll_cp := "0111"; pll_res := "0110"; + when 20 => pll_cp := "0111"; pll_res := "0110"; + when 21 => pll_cp := "0111"; pll_res := "0110"; + when 22 => pll_cp := "0111"; pll_res := "0110"; + when 23 => pll_cp := "0101"; pll_res := "1100"; + when 24 => pll_cp := "0101"; pll_res := "1100"; + when 25 => pll_cp := "0101"; pll_res := "1100"; + when 26 => pll_cp := "1100"; pll_res := "0001"; + when 27 => pll_cp := "1100"; pll_res := "0001"; + when 28 => pll_cp := "1100"; pll_res := "0001"; + when 29 => pll_cp := "1100"; pll_res := "0001"; + when 30 => pll_cp := "1100"; pll_res := "0001"; + when 31 => pll_cp := "1100"; pll_res := "0001"; + when 32 => pll_cp := "1100"; pll_res := "0001"; + when 33 => pll_cp := "1100"; pll_res := "0001"; + when 34 => pll_cp := "0100"; pll_res := "0010"; + when 35 => pll_cp := "0100"; pll_res := "0010"; + when 36 => pll_cp := "0100"; pll_res := "0010"; + when 37 => pll_cp := "0010"; pll_res := "1000"; + when 38 => pll_cp := "0010"; pll_res := "1000"; + when 39 => pll_cp := "0010"; pll_res := "1000"; + when 40 => pll_cp := "0011"; pll_res := "0100"; + when 41 => pll_cp := "0010"; pll_res := "1000"; + when 42 => pll_cp := "0010"; pll_res := "1000"; + when 43 => pll_cp := "0010"; pll_res := "1000"; + when 44 => pll_cp := "0010"; pll_res := "1000"; + when 45 => pll_cp := "0010"; pll_res := "1000"; + when 46 => pll_cp := "0010"; pll_res := "1000"; + when 47 => pll_cp := "0010"; pll_res := "1000"; + when 48 => pll_cp := "0010"; pll_res := "1000"; + when 49 => pll_cp := "0010"; pll_res := "1000"; + when 50 => pll_cp := "0010"; pll_res := "1000"; + when 51 => pll_cp := "0010"; pll_res := "1000"; + when 52 => pll_cp := "0010"; pll_res := "1000"; + when 53 => pll_cp := "0010"; pll_res := "1000"; + when 54 => pll_cp := "0100"; pll_res := "1100"; + when 55 => pll_cp := "0100"; pll_res := "1100"; + when 56 => pll_cp := "0100"; pll_res := "1100"; + when 57 => pll_cp := "0100"; pll_res := "1100"; + when 58 => pll_cp := "0100"; pll_res := "1100"; + when 59 => pll_cp := "0100"; pll_res := "1100"; + when 60 => pll_cp := "0100"; pll_res := "1100"; + when 61 => pll_cp := "0010"; pll_res := "0100"; + when 62 => pll_cp := "0010"; pll_res := "0100"; + when 63 => pll_cp := "0010"; pll_res := "0100"; + when 64 => pll_cp := "0010"; pll_res := "0100"; + when others => NULL; + end case; + elsif (BANDWIDTH = "OPTIMIZED") then + case clkfb_div_fint is + when 1 => pll_cp := "0011"; pll_res := "0111"; + when 2 => pll_cp := "0011"; pll_res := "0111"; + when 3 => pll_cp := "0101"; pll_res := "1111"; + when 4 => pll_cp := "0111"; pll_res := "1111"; + when 5 => pll_cp := "0111"; pll_res := "1011"; + when 6 => pll_cp := "1101"; pll_res := "0111"; + when 7 => pll_cp := "1110"; pll_res := "1011"; + when 8 => pll_cp := "1110"; pll_res := "1101"; + when 9 => pll_cp := "1111"; pll_res := "1101"; + when 10 => pll_cp := "1111"; pll_res := "0111"; + when 11 => pll_cp := "1111"; pll_res := "1011"; + when 12 => pll_cp := "1111"; pll_res := "1101"; + when 13 => pll_cp := "1111"; pll_res := "0011"; + when 14 => pll_cp := "1110"; pll_res := "0101"; + when 15 => pll_cp := "1111"; pll_res := "0101"; + when 16 => pll_cp := "1111"; pll_res := "0101"; + when 17 => pll_cp := "1111"; pll_res := "0101"; + when 18 => pll_cp := "1111"; pll_res := "0101"; + when 19 => pll_cp := "0111"; pll_res := "0110"; + when 20 => pll_cp := "0111"; pll_res := "0110"; + when 21 => pll_cp := "0111"; pll_res := "0110"; + when 22 => pll_cp := "0111"; pll_res := "0110"; + when 23 => pll_cp := "0101"; pll_res := "1100"; + when 24 => pll_cp := "0101"; pll_res := "1100"; + when 25 => pll_cp := "0101"; pll_res := "1100"; + when 26 => pll_cp := "1100"; pll_res := "0001"; + when 27 => pll_cp := "1100"; pll_res := "0001"; + when 28 => pll_cp := "1100"; pll_res := "0001"; + when 29 => pll_cp := "1100"; pll_res := "0001"; + when 30 => pll_cp := "1100"; pll_res := "0001"; + when 31 => pll_cp := "1100"; pll_res := "0001"; + when 32 => pll_cp := "1100"; pll_res := "0001"; + when 33 => pll_cp := "1100"; pll_res := "0001"; + when 34 => pll_cp := "0100"; pll_res := "0010"; + when 35 => pll_cp := "0100"; pll_res := "0010"; + when 36 => pll_cp := "0100"; pll_res := "0010"; + when 37 => pll_cp := "0010"; pll_res := "1000"; + when 38 => pll_cp := "0010"; pll_res := "1000"; + when 39 => pll_cp := "0010"; pll_res := "1000"; + when 40 => pll_cp := "0011"; pll_res := "0100"; + when 41 => pll_cp := "0010"; pll_res := "1000"; + when 42 => pll_cp := "0010"; pll_res := "1000"; + when 43 => pll_cp := "0010"; pll_res := "1000"; + when 44 => pll_cp := "0010"; pll_res := "1000"; + when 45 => pll_cp := "0010"; pll_res := "1000"; + when 46 => pll_cp := "0010"; pll_res := "1000"; + when 47 => pll_cp := "0010"; pll_res := "1000"; + when 48 => pll_cp := "0010"; pll_res := "1000"; + when 49 => pll_cp := "0010"; pll_res := "1000"; + when 50 => pll_cp := "0010"; pll_res := "1000"; + when 51 => pll_cp := "0010"; pll_res := "1000"; + when 52 => pll_cp := "0010"; pll_res := "1000"; + when 53 => pll_cp := "0010"; pll_res := "1000"; + when 54 => pll_cp := "0100"; pll_res := "1100"; + when 55 => pll_cp := "0100"; pll_res := "1100"; + when 56 => pll_cp := "0100"; pll_res := "1100"; + when 57 => pll_cp := "0100"; pll_res := "1100"; + when 58 => pll_cp := "0100"; pll_res := "1100"; + when 59 => pll_cp := "0100"; pll_res := "1100"; + when 60 => pll_cp := "0100"; pll_res := "1100"; + when 61 => pll_cp := "0010"; pll_res := "0100"; + when 62 => pll_cp := "0010"; pll_res := "0100"; + when 63 => pll_cp := "0010"; pll_res := "0100"; + when 64 => pll_cp := "0010"; pll_res := "0100"; + when others => NULL; + end case; + end if; + + + case clkfb_div_fint is + when 1 => drp_lock_ref_dly := "00110"; + drp_lock_fb_dly := "00110"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 2 => drp_lock_ref_dly := "00110"; + drp_lock_fb_dly := "00110"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 3 => drp_lock_ref_dly := "01000"; + drp_lock_fb_dly := "01000"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 4 => drp_lock_ref_dly := "01011"; + drp_lock_fb_dly := "01011"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 5 => drp_lock_ref_dly := "01110"; + drp_lock_fb_dly := "01110"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 6 => drp_lock_ref_dly := "10001"; + drp_lock_fb_dly := "10001"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 7 => drp_lock_ref_dly := "10011"; + drp_lock_fb_dly := "10011"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 8 => drp_lock_ref_dly := "10110"; + drp_lock_fb_dly := "10110"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 9 => drp_lock_ref_dly := "11001"; + drp_lock_fb_dly := "11001"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 10 => drp_lock_ref_dly := "11100"; + drp_lock_fb_dly := "11100"; + drp_lock_cnt := "1111101000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 11 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1110000100"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 12 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1100111001"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 13 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1011101110"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 14 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1010111100"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 15 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1010001010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 16 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1001110001"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 17 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1000111111"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 18 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1000100110"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 19 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "1000001101"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 20 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0111110100"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 21 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0111011011"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 22 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0111000010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 23 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0110101001"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 24 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0110010000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 25 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0110010000"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 26 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0101110111"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 27 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0101011110"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 28 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0101011110"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 29 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0101000101"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 30 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0101000101"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 31 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0100101100"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 32 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0100101100"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 33 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0100101100"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 34 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0100010011"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 35 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0100010011"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 36 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0100010011"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 37 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 38 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 39 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 40 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 41 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 42 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 43 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 44 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 45 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 46 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 47 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 48 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 49 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 50 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 51 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 52 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 53 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 54 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 55 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 56 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 57 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 58 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 59 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 60 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 61 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 62 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 63 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when 64 => drp_lock_ref_dly := "11111"; + drp_lock_fb_dly := "11111"; + drp_lock_cnt := "0011111010"; + drp_lock_sat_high := "1111101001"; + drp_unlock_cnt := "0000000001"; + when others => NULL; + end case; + + + tmpx := ('X' & 'X' & 'X' & 'X' & 'X' & 'X' & '0' & '0' ); + dr_sram(9) <= (tmpx(7) & "0000000" & clk0_edgei & clk0_nocnti & clkout0_dlyi(5 downto 0)); + dr_sram(8) <= (clk0pm_seli(2 downto 0) & '1' & clk0_hti(5 downto 0) & clk0_lti(5 downto 0)); + dr_sram(11) <= (tmpx(7 downto 0) & clk1_edgei & clk1_nocnti & clkout1_dlyi(5 downto 0)); + dr_sram(10) <= (clk1pm_seli(2 downto 0) & '1' & clk1_hti(5 downto 0) & clk1_lti(5 downto 0)); + dr_sram(13) <= (tmpx(7 downto 0) & clk2_edgei & clk2_nocnti & clkout2_dlyi(5 downto 0)); + dr_sram(12) <= (clk2pm_seli(2 downto 0) & '1' & clk2_hti(5 downto 0) & clk2_lti(5 downto 0)); + dr_sram(15) <= (tmpx(7 downto 0) & clk3_edgei & clk3_nocnti & clkout3_dlyi(5 downto 0)); + dr_sram(14) <= (clk3pm_seli(2 downto 0) & '1' & clk3_hti(5 downto 0) & clk3_lti(5 downto 0)); + dr_sram(17) <= (tmpx(7 downto 0) & clk4_edgei & clk4_nocnti & clkout4_dlyi(5 downto 0)); + dr_sram(16) <= (clk4pm_seli(2 downto 0) & '1' & clk4_hti(5 downto 0) & clk4_lti(5 downto 0)); + dr_sram(7) <= (tmpx(7 downto 3) & "000" & clk5_edgei & clk5_nocnti & clkout5_dlyi(5 downto 0)); + dr_sram(6) <= (clk5pm_seli(2 downto 0) & '1' & clk5_hti(5 downto 0) & clk5_lti(5 downto 0)); + dr_sram(19) <= (tmpx(7 downto 3) & "000" & clk6_edgei & clk6_nocnti & clkout6_dlyi(5 downto 0)); + dr_sram(18) <= (clk6pm_seli(2 downto 0) & '1' & clk6_hti(5 downto 0) & clk6_lti(5 downto 0)); + dr_sram(21) <= (tmpx(7) & "0000000" & clkfbm1_edgei & clkfbm1_nocnti & clkfbm1_dlyi(5 downto 0)); + dr_sram(20) <= (clkfbm1pm_seli(2 downto 0) & '1' & clkfbm1_hti(5 downto 0) & clkfbm1_lti(5 downto 0)); + dr_sram(22) <= (tmpx(7 downto 6) & clkind_edgei & clkind_nocnti & clkind_hti(5 downto 0) & clkind_lti(5 downto 0)); + dr_sram(24) <= ("XXXXXX" & drp_lock_cnt); + dr_sram(25) <= ('X' & drp_lock_fb_dly & drp_unlock_cnt); + dr_sram(26) <= ('X' & drp_lock_ref_dly & drp_lock_sat_high); + dr_sram(40) <= "1XX11XX11XX11XX1"; + dr_sram(78) <= (pll_cp(3) & "XX" & pll_cp(2) & pll_cp(1) & "XX" & pll_cp(0) & "0XX00XXX"); + dr_sram(79) <= (pll_res(3) & "XX" & pll_res(2) & pll_res(1) & "XX" & pll_res(0) & pll_lfhf(1) & "XX" & pll_lfhf(0) & "XXXX"); + dr_sram(116) <= (tmpx(7 downto 3) & "00000000001" ); + + first_time := false; + + end if; + + if (GSR = '1') then + drp_lock <= '0'; + elsif (rising_edge(dclk_in)) then + if (den_in = '1') then + valid_daddr := addr_is_valid(daddr_in); + if (valid_daddr) then + address := slv_to_int(daddr_in); + daddr_in_lat <= address; + end if; + + if (drp_lock = '1') then + assert false report " Warning : DEN is high at PLLE2_ADV before DRDY high . Need wait for DRDY signal before next read/write operation through DRP. " severity warning; + else + drp_lock <= '1'; + end if; + + if (valid_daddr and ( address = 116 or address = 78 or address = 79 or + (address >= 24 and address <= 26) or + address = 40 or (address >= 6 and address <= 22))) then + else + Write ( Message, string'(" Warning : Address DADDR=")); + Write ( Message, address); + Write ( Message, string'(" on the PLLE2_ADV instance is unsupported") ); + Write ( Message, '.' & LF ); + assert false report Message.all severity warning; + DEALLOCATE (Message); + end if; + + if (dwe_in = '1') then + if (rst_input = '1') then + if (valid_daddr and ( address = 116 or address = 78 or address = 79 or + (address >= 24 and address <= 26) or + address = 40 or (address >= 6 and address <= 22))) then + dr_sram(address) <= di_in; + di_str := SLV_TO_STR(di_in); + end if; + + if (daddr_in = "0001001") then + daddr_str := "0001001"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout0_dly <= SLV_TO_INT(clkout_dly); + clk0_nocnt <= clk_nocnt; + clk0_nocnti := clk_nocnt; + clk0_edgei := clk_edge; + clk0_edge <= clk_edge; + end if; + + if (daddr_in = "0001000") then + daddr_str := "0001000"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk0_lt <= clk_lt; + clk0_ht <= clk_ht; + clk0_lti := clk_lt; + clk0_hti := clk_ht; + clk0pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0001011") then + daddr_str := "0001011"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout1_dly <= SLV_TO_INT(clkout_dly); + clk1_nocnt <= clk_nocnt; + clk1_nocnti := clk_nocnt; + clk1_edgei := clk_edge; + clk1_edge <= clk_edge; + end if; + + + if (daddr_in = "0001010") then + daddr_str := "0001010"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk1_lt <= clk_lt; + clk1_ht <= clk_ht; + clk1_lti := clk_lt; + clk1_hti := clk_ht; + clk1pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0001101") then + daddr_str := "0001101"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout2_dly <= SLV_TO_INT(clkout_dly); + clk2_nocnt <= clk_nocnt; + clk2_nocnti := clk_nocnt; + clk2_edgei := clk_edge; + clk2_edge <= clk_edge; + end if; + + if (daddr_in = "0001100") then + daddr_str := "0001100"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk2_lt <= clk_lt; + clk2_ht <= clk_ht; + clk2_lti := clk_lt; + clk2_hti := clk_ht; + clk2pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0001111") then + daddr_str := "0001111"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout3_dly <= SLV_TO_INT(clkout_dly); + clk3_nocnt <= clk_nocnt; + clk3_nocnti := clk_nocnt; + clk3_edgei := clk_edge; + clk3_edge <= clk_edge; + end if; + + if (daddr_in = "0001110") then + daddr_str := "0001110"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk3_lt <= clk_lt; + clk3_ht <= clk_ht; + clk3_lti := clk_lt; + clk3_hti := clk_ht; + clk3pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0010001") then + daddr_str := "0010001"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout4_dly <= SLV_TO_INT(clkout_dly); + clk4_nocnt <= clk_nocnt; + clk4_nocnti := clk_nocnt; + clk4_edgei := clk_edge; + clk4_edge <= clk_edge; + end if; + + if (daddr_in = "0010000") then + daddr_str := "0010000"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk4_lt <= clk_lt; + clk4_ht <= clk_ht; + clk4_lti := clk_lt; + clk4_hti := clk_ht; + clk4pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0000111") then + daddr_str := "0000111"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout5_dly <= SLV_TO_INT(clkout_dly); + clk5_nocnt <= clk_nocnt; + clk5_nocnti := clk_nocnt; + clk5_edgei := clk_edge; + clk5_edge <= clk_edge; + end if; + + if (daddr_in = "0000110") then + daddr_str := "0000110"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk5_lt <= clk_lt; + clk5_lti := clk_lt; + clk5_ht <= clk_ht; + clk5_hti := clk_ht; + clk5pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0010011") then + daddr_str := "0010011"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkout6_dly <= SLV_TO_INT(clkout_dly); + clk6_nocnt <= clk_nocnt; + clk6_nocnti := clk_nocnt; + clk6_edgei := clk_edge; + clk6_edge <= clk_edge; + end if; + + if (daddr_in = "0010010") then + daddr_str := "0010010"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clk6_lt <= clk_lt; + clk6_lti := clk_lt; + clk6_ht <= clk_ht; + clk6_hti := clk_ht; + clk6pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0010101") then + daddr_str := "0010101"; + clkout_delay_para_drp (clkout_dly, clk_nocnt, clk_edge, di_in, daddr_in, di_str, daddr_str); + clkfbm1_dly <= SLV_TO_INT(clkout_dly); + clkfbm1_nocnt <= clk_nocnt; + clkfbm1_nocnti := clk_nocnt; + clkfbm1_edge <= clk_edge; + clkfbm1_edgei := clk_edge; + end if; + + if (daddr_in = "0010100") then + daddr_str := "0010100"; + clkout_hl_para_drp (clk_lt, clk_ht, clkpm_sel, di_in, daddr_in, di_str, daddr_str); + clkfbm1_lt <= clk_lt; + clkfbm1_lti := clk_lt; + clkfbm1_ht <= clk_ht; + clkfbm1_hti := clk_ht; + clkfbm1pm_sel <= SLV_TO_INT(clkpm_sel); + end if; + + if (daddr_in = "0010110") then + clkind_lti := ('0' & di_in(11 downto 6)); + clkind_hti := ('0' & di_in(5 downto 0)); + clkind_lt <= clkind_lti; + clkind_ht <= clkind_hti; + clkind_nocnti := di_in(12); + clkind_edgei := di_in(13); + end if; + + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk0_hti, clk0_lti, clk0_nocnti, clk0_edgei); + clk0_ht1 <= clk_ht1; + clk0_div <= clk_div; + clk0_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk1_hti, clk1_lti, clk1_nocnti, clk1_edgei); + clk1_ht1 <= clk_ht1; + clk1_div <= clk_div; + clk1_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk2_hti, clk2_lti, clk2_nocnti, clk2_edgei); + clk2_ht1 <= clk_ht1; + clk2_div <= clk_div; + clk2_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk3_hti, clk3_lti, clk3_nocnti, clk3_edgei); + clk3_ht1 <= clk_ht1; + clk3_div <= clk_div; + clk3_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk4_hti, clk4_lti, clk4_nocnti, clk4_edgei); + clk4_ht1 <= clk_ht1; + clk4_div <= clk_div; + clk4_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk5_hti, clk5_lti, clk5_nocnti, clk5_edgei); + clk5_ht1 <= clk_ht1; + clk5_div <= clk_div; + clk5_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clk6_hti, clk6_lti, clk6_nocnti, clk6_edgei); + clk6_ht1 <= clk_ht1; + clk6_div <= clk_div; + clk6_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clkfbm1_hti, clkfbm1_lti, clkfbm1_nocnti, clkfbm1_edgei); + clkfbm1_ht1 <= clk_ht1; + clkfbm1_div <= clk_div; + clkfbm1_div1 <= clk_div1; + if (clk_div > 64 or clk_div < 2 ) then + assert false report " Input Error : The sum of DI[11:6] and DI[5:0] Address DADDR=0010100 is CLKFBOUT clock divider of PLLE2_ADV and over the 2 to 64 range." severity error; + end if; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clkfbm2_hti, clkfbm2_lti, clkfbm2_nocnti, clkfbm2_edgei); + clkfbm2_ht1 <= clk_ht1; + clkfbm2_div <= clk_div; + clkfbm2_div1 <= clk_div1; + clkout_pm_cal(clk_ht1, clk_div, clk_div1, clkind_hti, clkind_lti, clkind_nocnti, '0'); + clkind_ht1 <= clk_ht1; + clkind_div <= clk_div; + clkind_div1 <= clk_div1; + if (clk_div > 106 or (clk_div < 1 and clkind_nocnti = '0')) then + assert false report " Input Error : The sum of DI[11:6] and DI[5:0] Address DADDR=0010110 is input clock divider of PLLE2_ADV and over the 1 to 80 range." severity error; + end if; + + else + assert false report " Error : RST is low at PLLE2_ADV. RST need to be high when change PLLE2_ADV paramters through DRP. " severity error; + end if; -- end rst + + end if; --DWE + end if; --DEN + + if ( drp_lock = '1') then + drp_lock <= '0'; + drp_lock1 <= '1'; + end if; + if (drp_lock1 = '1') then + drp_lock1 <= '0'; + drdy_out <= '1'; + end if; + if (drdy_out = '1') then + drdy_out <= '0'; + end if; + end if; -- end GSR + + wait on dclk_in, GSR, init_done; + end process; + + ps_in_ps_p : process(psclk_in, rst_in, init_done) + variable ps_cnt_neg : integer; + variable ps_in_ps_neg : integer; + begin + if (rising_edge(init_done)) then + ps_in_ps <= ps_in_init; + ps_cnt <= 0; + end if; + + if (rst_in = '1') then + ps_in_ps <= ps_in_init; + ps_cnt <= 0; + psen_w <= '0'; + elsif (rising_edge(psclk_in)) then + if (fps_en = 1) then + if (psen_in = '1') then + if (psen_w = '1') then + assert false report " Error : PSEN on PLLE2_ADV is active more than 1 PSCLK period. PSEN must be active for only one PSCLK period. " + severity warning; + end if; + psen_w <= '1'; + if (ps_lock = '1') then + assert false report " Warning : Please wait for PSDONE signal before adjusting the Phase Shift. " + severity warning; + elsif (psincdec_in = '1') then + if (ps_cnt < ps_max) then + ps_cnt <= ps_cnt + 1; + else + ps_cnt <= 0; + end if; + if (ps_in_ps < ps_max) then + ps_in_ps <= ps_in_ps + 1; + else + ps_in_ps <= 0; + end if; + ps_lock <= '1'; + elsif (psincdec_in = '0') then + ps_cnt_neg := (-1) * ps_cnt; + ps_in_ps_neg := (-1) * ps_in_ps; + if (ps_cnt_neg < ps_max) then + ps_cnt <= ps_cnt - 1; + else + ps_cnt <= 0; + end if; + if (ps_in_ps_neg < ps_max) then + ps_in_ps <= ps_in_ps - 1; + else + ps_in_ps <= 0; + end if; + ps_lock <= '1'; + end if; + else + psen_w <= '0'; + end if; + if ( psdone_out = '1') then + ps_lock <= '0'; + end if; + end if; + end if; + end process; + + psdone_out_p : process + begin + if (rising_edge(ps_lock)) then + if (fps_en = 1) then + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + wait until (rising_edge(psclk_in)); + psdone_out <= '1'; + wait until (rising_edge(psclk_in)); + psdone_out <= '0'; + end if; + end if; + wait on ps_lock; + end process; + + CLOCK_PERIOD_P : process (clkpll_r, rst_in, rst_clkinsel_flag) + variable clkin_edge_previous : time := 0 ps; + variable clkin_edge_current : time := 0 ps; + begin + if (rst_in = '1' or rst_clkinsel_flag = '1') then + clkin_period(0) <= period_vco_target; + clkin_period(1) <= period_vco_target; + clkin_period(2) <= period_vco_target; + clkin_period(3) <= period_vco_target; + clkin_period(4) <= period_vco_target; + clkin_jit <= 0 ps; + clkin_lock_cnt <= 0; + pll_locked_tm <= '0'; + pll_locked_tmp1 <= '0'; + lock_period <= '0'; + clkout_en0_tmp <= '0'; + unlock_recover <= '0'; + clkin_edge_previous := 0 ps; + elsif (rising_edge(clkpll_r)) then + clkin_edge_current := NOW; + if (clkin_edge_previous /= 0 ps and clkinstopped_out = '0' and + rst_clkinsel_flag = '0') then + clkin_period(4) <= clkin_period(3); + clkin_period(3) <= clkin_period(2); + clkin_period(2) <= clkin_period(1); + clkin_period(1) <= clkin_period(0); + clkin_period(0) <= clkin_edge_current - clkin_edge_previous; + end if; + + if (pll_unlock = '0' and clkin_edge_previous /= 0 ps and clkinstopped_out = '0') then + clkin_jit <= clkin_edge_current - clkin_edge_previous - clkin_period(0); + else + clkin_jit <= 0 ps; + end if; + + clkin_edge_previous := clkin_edge_current; + + if ( pll_unlock1 = '0' and (clkin_lock_cnt < lock_cnt_max) and fb_delay_found = '1' ) then + clkin_lock_cnt <= clkin_lock_cnt + 1; + elsif (pll_unlock1 = '1' and pll_locked_tmp1 = '1' ) then + clkin_lock_cnt <= lock_cnt_max - 6; + unlock_recover <= '1'; + end if; + + if ( clkin_lock_cnt >= PLL_LOCK_TIME and pll_unlock1 = '0') then + pll_locked_tm <= '1'; + end if; + + if ( clkin_lock_cnt = lock_period_time ) then + lock_period <= '1'; + end if; + + if (clkin_lock_cnt >= clkout_en_time and pll_locked_tm = '1') then + clkout_en0_tmp <= '1'; + end if; + + if (clkin_lock_cnt >= locked_en_time and clkout_en = '1') then + pll_locked_tmp1 <= '1'; + end if; + + if (unlock_recover = '1' and clkin_lock_cnt >= lock_cnt_max) then + unlock_recover <= '0'; + end if; + + end if; + end process; + + pchk_p : process(pll_locked_tmp1) + variable pchk_tmp1 : time; + variable pchk_tmp2 : time; + begin + if (rising_edge(pll_locked_tmp1)) then + if (clkinsel_in = '0') then + pchk_tmp1 := CLKIN2_PERIOD * 1100 ps; + pchk_tmp2 := CLKIN2_PERIOD * 900 ps; + if (period_avg > pchk_tmp1 or period_avg < pchk_tmp2) then + assert false report "Error : input CLKIN2 period and attribute CLKIN2_PERIOD are not same." severity error ; + end if; + else + pchk_tmp1 := CLKIN1_PERIOD * 1100 ps; + pchk_tmp2 := CLKIN1_PERIOD * 900 ps; + if (period_avg > pchk_tmp1 or period_avg < pchk_tmp2) then + assert false report "Error : input CLKIN1 period and attribute CLKIN1_PERIOD are not same." severity error ; + end if; + end if; + end if; + end process; + + clkout_en_val <= mf_product1 when (clkfb_frac_en = 1) else m_product1; + clkout_en0_tmp1 <= clkout_en0_tmp after 1 ps; + + CLKOUT_EN0_P : process (clkout_en0_tmp1, clkout_en_t, clkout_en0_tmp) + begin + if (clkout_en0_tmp = '0') then + clkout_en0 <= '0'; + else + if (clkfb_frac_en = 1) then + if (clkout_en_t > clkout_en_val and clkout_en0_tmp1 = '1') then + clkout_en0 <= transport clkout_en0_tmp1 after (period_vco6); + end if; + else + if (clkout_en_t = clkout_en_val and clkout_en0_tmp1 = '1') then +-- clkout_en0 <= transport clkout_en0_tmp1 after (period_vco6); + clkout_en0 <= transport clkout_en0_tmp1 after (period_vco6 + period_vco); + end if; + end if; + end if; + end process; + + clkout_en1 <= transport clkout_en0 after clkvco_delay; + + + clkout_en_p : process (clkout_en1, rst_in_o) + begin + if (rst_in_o = '1') then + clkout_en <= '0'; + else + clkout_en <= clkout_en1; + end if; + end process; + + PLL_LOCK_P1 : process (pll_locked_tmp1, rst_in) + begin + if (rst_in = '1') then + pll_locked_tmp2 <= '0'; + elsif (pll_locked_tmp1 = '0') then + pll_locked_tmp2 <= pll_locked_tmp1; + else + pll_locked_tmp2 <= transport pll_locked_tmp1 after pll_locked_delay; + end if; + end process; + + locked_out <= '1' when pll_locked_tm = '1' and pll_locked_tmp2_dly ='1' and pll_unlock = '0' and unlock_recover = '0' else '0'; + + + locked_out_tmp_p : process + begin + if (rst_in = '1') then + wait for 1 ns; -- lock delay simprim only + locked_out_tmp <= '0'; + else + locked_out_tmp <= locked_out; + end if; + wait on rst_in, locked_out; + end process; + + + CLOCK_PERIOD_AVG_P : process (clkin_period(0), clkin_period(1), clkin_period(2), + clkin_period(3), clkin_period(4), period_avg) + variable period_avg_tmp : time := 0 ps; + variable clkin_period_tmp0 : time := 0 ps; + variable clkin_period_tmp1 : time := 0 ps; + variable clkin_period_tmp_t : time := 0 ps; + begin + clkin_period_tmp0 := clkin_period(0); + clkin_period_tmp1 := clkin_period(1); + if (clkin_period_tmp0 > clkin_period_tmp1) then + clkin_period_tmp_t := clkin_period_tmp0 - clkin_period_tmp1; + else + clkin_period_tmp_t := clkin_period_tmp1 - clkin_period_tmp0; + end if; + + if (clkin_period_tmp0 /= period_avg and (clkin_period_tmp0 < 1.5 * period_avg or clkin_period_tmp_t <= 300 ps)) then + period_avg_tmp := (clkin_period(0) + clkin_period(1) + clkin_period(2) + + clkin_period(3) + clkin_period(4))/5.0; + period_avg <= period_avg_tmp; + end if; + end process; + + clkinstopped_hold_p : process (clkinstopped_out_dly, rst_in) + begin + if (rst_in = '1') then + clkinstopped_hold <= '0'; + else + if (clkinstopped_out = '1') then + clkinstopped_hold <= '1' after 1 ps; + else + if (clkin_hold_f = 1) then + clkinstopped_hold <= '0'; + end if; + end if; + end if; + end process; + + pd_stp_p_p : process + begin + if (rst_in = '1') then + pd_stp_p <= '0'; + elsif (rising_edge(clkinstopped_out)) then + period_avg_stpi <= period_avg; + wait for 1 ps; + pd_stp_p <= '1'; + wait until falling_edge(clkvco) or rising_edge(rst_in); + wait for 1 ps; + pd_stp_p <= '0'; + end if; + wait on clkinstopped_out, rst_in, clkvco; + end process; + + period_avg_stp_p : process(clkvco, rst_in, pd_stp_p) + begin + if (rst_in = '1') then + period_avg_stp <= 1000 ps; + vco_stp_f <= '0'; + elsif (rising_edge(pd_stp_p)) then + period_avg_stp <= period_avg_stpi; + elsif (falling_edge(clkvco)) then + if (clkinstopped_out_dly2 = '1' and clkin_hold_f = 0) then + if (period_vco > 1739 ps) then + vco_stp_f <= '1'; + else + period_avg_stp <= period_avg_stp + 1 ps; + end if; + end if; + end if; + end process; + + clk_period_lost_p : process (period_avg, lock_period, clkind_div) + begin + if (period_avg > 500 ps and lock_period = '1') then + clkin_lost_val <= ((period_avg * 1.5) / 500 ps) - 1; + clkfb_lost_val <= ((clkind_div * period_avg * 1.5) / 500 ps) - 1; + end if; + end process; + + clkfbm1_div_t_p : process (clkfb_frac_en, clkfbm1_f_div, clkfbm1_div) + variable clkfbm1_div_t_tmp : real; + begin + if (clkfb_frac_en = 1) then + clkfbm1_div_t <= clkfbm1_f_div; + else + clkfbm1_div_t_tmp := real(clkfbm1_div); + clkfbm1_div_t <= clkfbm1_div_t_tmp; + end if; + end process; + + CLOCK_PERIOD_UPDATE_P : process (period_avg, period_avg_stp, clkind_div, clkfbm1_div_t, init_done, clkinstopped_hold) + variable period_fb_tmp : time; + variable period_vco_tmp : time; + variable period_vco_tmp1 : time; + variable period_vco_tmp1_i : integer; + variable period_vco_tmp1_rl : real; + variable tmpreal : real; + variable tmpreal1: real; + variable period_vco_rm_tmp : integer; + variable period_vco_rm_tmp1 : integer; + variable clkind_div_rl : real; + variable clkfbm1_div_t_int : integer; + variable period_fb_tmpint : integer; + variable period_fb_tmpreal : real; + variable period_vco_tmpint : integer; + variable period_vco_tmpint1 : integer; + variable clk0_frac_ht_tmp : integer; + variable clk0_frac_lt_tmp : integer; + variable clkfb_frac_ht_tmp : integer; + variable clkfb_frac_lt_tmp : integer; + variable period_vco_tmp0 : real; + variable period_vco_tmp02 : real; + variable period_vco_tmp03 : real; + variable period_vco_half_rm_t : time; + + begin + if (init_done = '1') then + clkind_div_rl := real(clkind_div); + clkfbm1_div_t_int := real2int(clkfbm1_div_t); + md_product <= real2int(clkfbm1_div_t * clkind_div_rl); + m_product <= clkfbm1_div_t_int; + m_product1 <= clkfbm1_div_t_int - 1; + m_product2 <= real2int(clkfbm1_div_t / 2.0); + period_fb_tmp := clkind_div * period_avg; + if (period_fb_tmp > 0 ps ) then + period_fb_tmpint := period_fb_tmp / 1 ps; + else + period_fb_tmpint := 0; + end if; + period_vco_mf <= (period_avg / 1 ps ) * 8; + period_fb_tmpreal := real(period_fb_tmpint); + period_vco_tmp0 := (period_fb_tmpreal / clkfbm1_div_t); + period_vco_tmpint1 := real2int(period_vco_tmp0); + period_vco_tmp02 := real(period_vco_tmpint1); + period_vco_tmp03 := period_vco_tmp0 - period_vco_tmp02; + if (period_vco_tmp03 > 0.500) then + period_vco_tmp1 := (1 + period_vco_tmpint1) * 1 ps; + else + period_vco_tmp1 := period_vco_tmpint1 * 1 ps; + end if; + period_vco_tmp1_i := period_vco_tmp1 / 1 ps; + period_vco_tmp1_rl := real(period_vco_tmp1_i); + clkvco_pdrm <= period_vco_tmp0 - period_vco_tmp1_rl; + if (clkinstopped_hold = '1') then + if (clkin_hold_f = 1 and (period_vco_tmp1 < 20000 ps)) then + period_vco_tmp := ((20000 * period_vco_tmp1) / (20000 ps - period_vco_tmp1)) * 1 ps; + elsif (clkin_hold_f = 0) then + period_vco_tmp := period_avg_stp * clkind_div / clkfbm1_div_t_int; + end if; + else + period_vco_tmp := period_vco_tmp1; + end if; + if (period_vco_tmp > 0 ps) then + period_vco_tmpint := period_vco_tmp / 1 ps; + else + period_vco_tmpint := 0; + end if; +-- period_vco_rm_tmp := period_vco_tmpint mod clkfbm1_div_t_int; + period_vco_rm_tmp := period_fb_tmpint mod clkfbm1_div_t_int; + period_vco_rm <= period_vco_rm_tmp; + if (period_vco_rm_tmp > 1) then + if (period_vco_rm_tmp > m_product2 and period_vco_rm_tmp < m_product) then + period_vco_cmp_cnt <= (m_product / (m_product - period_vco_rm_tmp)) - 1; + period_vco_cmp_flag <= 2; + else + period_vco_cmp_cnt <= (m_product / period_vco_rm_tmp) - 1; + period_vco_cmp_flag <= 1; + end if; + else + period_vco_cmp_cnt <= 0; + period_vco_cmp_flag <= 0; + end if; + + period_vco_half <= period_vco_tmp /2; + if (period_vco_tmp > 0 ps) then + period_vco_half1 <= ((period_vco_tmp /2) / 1 ps + 1) * 1 ps; + else + period_vco_half1 <= 0 ps; + end if; + period_vco_half_rm_t := period_vco_tmp - (period_vco_tmp /2); + period_vco_half_rm <= period_vco_half_rm_t; + period_vco_half_rm1 <= period_vco_half_rm_t + 1 ps; + period_vco_half_rm2 <= period_vco_half_rm_t - 1 ps; + pll_locked_delay <= period_fb_tmp * clkfbm1_div_t; + clkin_dly_t <= period_avg * clkind_div + period_avg * 1.25; + clkfb_dly_t <= period_fb_tmp * 2.25; + period_fb <= period_fb_tmp; + period_vco <= period_vco_tmp; + period_vco1 <= period_vco_tmp / 8.0; + period_vco2 <= period_vco_tmp / 4.0; + period_vco3 <= period_vco_tmp * 3.0 / 8.0; + period_vco4 <= period_vco_tmp / 2.0; + period_vco5 <= period_vco_tmp * 5.0 / 8.0; + period_vco6 <= period_vco_tmp * 3.0 / 4.0; + period_vco7 <= period_vco_tmp * 7.0 / 8.0; +-- period_vco_en <= period_vco_tmp * 2.0 - period_vco_tmp / 4.0; + period_vco_en <= period_vco_tmp * 2.0 - period_vco_tmp / 4.0; + clk0_frac_ht_tmp := period_vco_tmpint * clkout0_dly + (period_vco_tmpint * clk0pm_sel) / 8; + clk0_frac_ht <= clk0_frac_ht_tmp * 1 ps; + clk0_frac_lt_tmp := period_vco_tmpint * clkout5_dly + (period_vco_tmpint * clk5pm_sel) / 8; + clk0_frac_lt <= clk0_frac_lt_tmp * 1 ps; + clkfb_frac_ht_tmp := period_vco_tmpint * clkfbm1_dly + (period_vco_tmpint * clkfbm1pm_sel) / 8; + clkfb_frac_ht <= clkfb_frac_ht_tmp * 1 ps; + clkfb_frac_lt_tmp := period_vco_tmpint * clkout6_dly + (period_vco_tmpint * clk6pm_sel) / 8; + clkfb_frac_lt <= clkfb_frac_lt_tmp * 1 ps; + end if; + end process; + + period_vco_p : process(period_vco, ps_in_ps) + variable period_vco_ps_tmp1 : integer; + variable period_vco_ps_tmp2 : integer; + begin + if (fps_en = 1 ) then + period_ps_old <= period_ps; + period_vco_ps_tmp1 := period_vco / 1 ps; + period_vco_ps_tmp2 := (period_vco_ps_tmp1 * ps_in_ps) / 56; + if (ps_in_ps < 0) then + period_ps <= (period_vco_ps_tmp1 + period_vco_ps_tmp2) * 1 ps; + elsif (ps_in_ps = 0 and psincdec_in = '0') then + period_ps <= period_vco; + else + period_ps <= period_vco_ps_tmp2 * 1 ps; + end if; + end if; + end process; + + clkpll_tmp1 <= transport clkpll_r after period_avg; + clkpll <= transport clkpll_tmp1 after period_avg; + + clkinstopped_vco_f_p : process + begin + if (rst_in = '1') then + clkinstopped_vco_f <= '0'; + elsif (rising_edge(clkinstopped_out)) then + clkinstopped_vco_f <= '1'; + wait until (falling_edge(clkinstopped_out) or rising_edge(rst_in)); + if (rst_in = '1') then + clkinstopped_vco_f <= '0'; + else + wait until (rising_edge(clkpll) ); + wait until (rising_edge(clkpll) ); + clkinstopped_vco_f <= '0'; + end if; + end if; + wait on clkinstopped_out, rst_in; + end process; + + rst_clkinstopped_tm <= '1' when ((clkout_en_t >= clkout_en_val - 3) and (clkout_en_t < clkout_en_val)) else '0'; + + rst_clkinstopped_p : process + begin + if (rst_in = '1') then + rst_clkinstopped <= '0'; + rst_clkinstopped_rc <= '0'; + elsif (falling_edge(clkinstopped_out)) then + if (rst_clkinstopped_lk = '0' and clkin_hold_f = 1) then + wait until rising_edge(rst_clkinstopped_tm) or rising_edge(rst_in); + if (rst_in = '0') then + rst_clkinstopped <= '1' after period_vco4; + wait until falling_edge(rst_clkinstopped_tm) or rising_edge(rst_in); + wait for period_vco5; + rst_clkinstopped <= '0'; + wait for period_vco1; + rst_clkinstopped_rc <= '1'; + wait for period_vco1; + rst_clkinstopped_rc <= '0'; + else + rst_clkinstopped <= '0'; + rst_clkinstopped_rc <= '0'; + end if; + end if; + end if; + wait on clkinstopped_out, rst_clkinstopped_tm, rst_in; + end process; + + clkinstopped_out_dly_p : process + begin + if (rst_in = '1') then + clkinstopped_out_dly <= '0'; + elsif (rising_edge(clkinstopped_out)) then + clkinstopped_out_dly <= '1'; + if (clkin_hold_f = 1) then + wait until falling_edge(rst_clkinstopped_rc) or rising_edge(rst_in); + clkinstopped_out_dly <= '0'; + end if; + end if; + wait on clkinstopped_out, rst_clkinstopped_rc, rst_in; + end process; + + clkinstopped_out_dly2_p : process (clkinstopped_out, rst_in) + begin + if (rst_in = '1') then + clkinstopped_out_dly2 <= '0'; + else + clkinstopped_out_dly2 <= clkinstopped_out after 2 ps; + end if; + end process; + + rst_clkinstopped_lk_p : process + begin + if (rst_in = '1') then + rst_clkinstopped_lk <= '0'; + elsif (falling_edge(rst_clkinstopped)) then + rst_clkinstopped_lk <= '1'; + wait until (rising_edge(locked_out)); + rst_clkinstopped_lk <= '0'; + end if; + wait on rst_clkinstopped, locked_out, rst_in; + end process; + + clkvco_lk_p : process + begin + if (rst_in = '1') then + clkvco_lk <= '0'; + else + if (clkinstopped_out1 = '1' and clkin_stop_f = '0') then + if (period_vco_half > 0 ps) then + clkvco_lk <= transport not clkvco_lk after period_vco_half; + end if; + elsif (clkinstopped_vco_f = '0') then + clkvco_lk <= clkvco_lk_tmp; + else + if (period_vco_half > 0 ps) then + clkvco_lk <= transport not clkvco_lk after period_vco_half; + end if; + end if; + end if; + wait on clkinstopped_vco_f, clkvco_lk, clkvco_lk_tmp, rst_in, clkinstopped_out1; + end process; + + + CLKVCO_LK_TMP_P : process + variable clkvco_rm_cnt : integer; + variable cmpvco1 : real := 0.0; + variable cmpvco : real := 0.0; + variable vcoflag : integer := 0; + begin + if (rising_edge(clkpll)) then + if (clkfb_frac_en = 1) then + if (pll_locked_tm = '1') then + cmpvco := 0.0; + clkvco_lk_tmp <= '1'; + for I in 2 to mf_product loop + wait for period_vco_half; + clkvco_lk_tmp <= '0'; + if ( cmpvco >= 1.0 ) then + wait for period_vco_half_rm1; + clkvco_lk_tmp <= '1'; + cmpvco1 := cmpvco - 1.0 + clkvco_pdrm; + elsif ( cmpvco <= -1.0 ) then + wait for period_vco_half_rm2; + clkvco_lk_tmp <= '1'; + cmpvco1 := cmpvco + 1.0 + clkvco_pdrm; + else + wait for period_vco_half_rm; + clkvco_lk_tmp <= '1'; + cmpvco1 := cmpvco + clkvco_pdrm; + end if; + cmpvco := cmpvco1; + clkout_en_t <= I - 1; + end loop; + wait for period_vco_half; + clkvco_lk_tmp <= '0'; + end if; + else + if (pll_locked_tm = '1') then + clkvco_lk_tmp <= '1'; + clkvco_rm_cnt := 0; + clkout_en_t <= 0; + if ( period_vco_cmp_flag = 1) then + for I in 2 to m_product loop + clkout_en_t <= I-1; + wait for (period_vco_half); + clkvco_lk_tmp <= '0'; + if ( clkvco_rm_cnt = 1) then +-- wait for (period_vco_half1); + wait for (period_vco_half_rm1); + clkvco_lk_tmp <= '1'; + else + wait for (period_vco_half_rm); + clkvco_lk_tmp <= '1'; + end if; + + if ( clkvco_rm_cnt = period_vco_cmp_cnt) then + clkvco_rm_cnt := 0; + else + clkvco_rm_cnt := clkvco_rm_cnt + 1; + end if; + end loop; + elsif ( period_vco_cmp_flag = 2) then + vcoflag := 1; + for I in 2 to m_product loop + clkout_en_t <= I-1; + wait for (period_vco_half); + clkvco_lk_tmp <= '0'; + if ( clkvco_rm_cnt = 1) then + wait for (period_vco_half_rm); + clkvco_lk_tmp <= '1'; + else +-- wait for (period_vco_half1); + wait for (period_vco_half_rm1); + clkvco_lk_tmp <= '1'; + end if; + + if ( clkvco_rm_cnt = period_vco_cmp_cnt) then + clkvco_rm_cnt := 0; + else + clkvco_rm_cnt := clkvco_rm_cnt + 1; + end if; + end loop; + else + vcoflag := 1; +-- for I in 2 to md_product loop + for I in 2 to m_product loop + clkout_en_t <= I-1; + wait for (period_vco_half); + clkvco_lk_tmp <= '0'; + wait for (period_vco_half_rm); + clkvco_lk_tmp <= '1'; + end loop; + end if; + wait for (period_vco_half); + clkvco_lk_tmp <= '0'; +-- if (clkpll = '1' ) then + if (clkpll = '1' and m_product > 1 and vcoflag = 0) then +-- for I in 2 to md_product loop + for I in 2 to m_product loop +-- clkout_en_t <= I-1; + wait for (period_vco_half); + clkvco_lk_tmp <= '0'; + wait for (period_vco_half_rm); + clkvco_lk_tmp <= '1'; + end loop; + wait for (period_vco_half); + clkvco_lk_tmp <= '0'; + end if; + end if; + end if; + end if; + wait on clkpll, clkvco_lk_rst; + end process; + + CLKVCO_DLY_CAL_P : process ( period_vco, fb_delay, clkfbm1_dly, clkfbm1pm_rl, + ps_in_ps, lock_period, period_vco_mf) + variable val_tmp : integer; + variable val_tmp2 : integer; + variable val_tmp3 : integer; + variable fbm1_comp_delay : integer; + variable fbm1_comp_delay_rl : real; + variable period_vco_i : integer; + variable period_vco_rl : real; + variable dly_tmp : integer; + variable dly_tmp1 : integer; + variable tmp_ps_val1 : integer; + variable tmp_ps_val2 : integer; + variable dly_tmp_int : integer; + variable tmp_rl : real; + begin + if (lock_period = '1') then + if ( period_vco /= 0 ps) then + period_vco_i := period_vco * 1 / 1 ps; + period_vco_rl := real(period_vco_i); + tmp_rl := real(clkfbm1_dly); + if (clkfb_frac_en = 1) then +-- val_tmp := period_vco_i * mf_product; + val_tmp := period_vco_mf; + fbm1_comp_delay := 0; + else +-- val_tmp := period_vco_i * md_product; + val_tmp := (period_avg * 1 / 1 ps) * DIVCLK_DIVIDE; + fbm1_comp_delay_rl := period_vco_rl *(tmp_rl + clkfbm1pm_rl ); + fbm1_comp_delay := real2int(fbm1_comp_delay_rl); + end if; + val_tmp2 := fb_delay * 1 / 1 ps; + dly_tmp1 := val_tmp2 + fbm1_comp_delay; + dly_tmp_int := 1; + if (clkfb_fps_en = 1) then + if (ps_in_ps < 0) then + tmp_ps_val1 := -1 * ps_in_ps; + tmp_ps_val2 := tmp_ps_val1 * period_vco_i / 56; + if (tmp_ps_val2 > dly_tmp1 ) then + dly_tmp_int := -1; + dly_tmp := tmp_ps_val2 - dly_tmp1; + elsif (tmp_ps_val2 = dly_tmp1 ) then + dly_tmp_int := 0; + dly_tmp := 0; + else + dly_tmp_int := 1; + dly_tmp := dly_tmp1 - tmp_ps_val2; + end if; + else + dly_tmp := dly_tmp1 + ps_in_ps * period_vco_i / 56; + end if; + else + dly_tmp := dly_tmp1; + end if; + + dly_tmp_o <= dly_tmp * 1 ps; + + if (dly_tmp_int < 0) then + clkvco_delay <= dly_tmp * 1 ps; + else + if (clkfb_frac_en = 1 and dly_tmp = 0) then + clkvco_delay <= 0 ps; + elsif ( dly_tmp < val_tmp) then + clkvco_delay <= (val_tmp - dly_tmp) * 1 ps; + else + clkvco_delay <= (val_tmp - dly_tmp mod val_tmp) * 1 ps; + end if; + end if; + end if; + end if; + end process; + + CLKFB_PS_P : process (clkfbm1pm_sel) + begin + case (clkfbm1pm_sel) is + when 0 => clkfbm1pm_rl <= 0.0; + when 1 => clkfbm1pm_rl <= 0.125; + when 2 => clkfbm1pm_rl <= 0.25; + when 3 => clkfbm1pm_rl <= 0.375; + when 4 => clkfbm1pm_rl <= 0.50; + when 5 => clkfbm1pm_rl <= 0.625; + when 6 => clkfbm1pm_rl <= 0.75; + when 7 => clkfbm1pm_rl <= 0.875; + when others => clkfbm1pm_rl <= 0.0; + end case; + end process; + + clkvco_lk_dly_tmp <= transport clkvco_lk after clkvco_delay; + clkvco <= '0' when (pll_locked_tm = '0' or vco_stp_f = '1') else clkvco_lk when dly_tmp_o = 0 ps else clkvco_lk_dly_tmp; + + --clkout_mux(0) <= clkvco when (clkout_en = '1' and rst_in_o = '0') else '0'; + + CLKOUT_MUX_P : process (clkvco, clkout_en, rst_in_o) + begin + if (rst_in_o = '1') then + clkout_mux(7 downto 0) <= "00000000"; + elsif (clkout_en = '1' and clkvco'event) then + clkout_mux(0) <= clkvco; + clkout_mux(1) <= transport clkvco after (period_vco1); + clkout_mux(2) <= transport clkvco after (period_vco2); + clkout_mux(3) <= transport clkvco after (period_vco3); + clkout_mux(4) <= transport clkvco after (period_vco4); + clkout_mux(5) <= transport clkvco after (period_vco5); + clkout_mux(6) <= transport clkvco after (period_vco6); + clkout_mux(7) <= transport clkvco after (period_vco7); + else + clkout_mux(7 downto 0) <= "00000000"; + end if; + end process; + + CLKOUT_PS_P : process (clkvco, clkout_en, rst_in_o) + begin + if (rst_in_o = '1') then + clkout_ps_tmp1 <= '0'; + clkout_ps_tmp2 <= '0'; + elsif (clkout_en = '1' and fps_en = 1) then + clkout_ps_tmp1 <= transport clkvco after (period_ps); + clkout_ps_tmp2 <= transport clkvco after (period_ps_old); + end if; + end process; + + clkout_ps_eg_p : process(clkout_ps) + begin + if (falling_edge(clkout_ps)) then + clkout_ps_eg <= NOW; + end if; + if (rising_edge(clkout_ps)) then + clkout_ps_peg <= NOW; + end if; + end process; + + ps_lock_dly <= ps_lock after 1 ps; + + clkvco_ps_tmp2_en_p : process + variable clkout_ps_w : time := 0 ps; + begin + if (rising_edge(ps_lock_dly)) then + if ((period_ps - period_ps_old) > period_vco_half ) then + if (clkout_ps = '0') then + if (clkout_ps_tmp2 = '1') then + clkout_ps_w := NOW - clkout_ps_eg; + if (clkout_ps_w > period_vco3) then + clkvco_ps_tmp2_en <= '1'; + else + wait until falling_edge(clkout_ps_tmp2); + clkvco_ps_tmp2_en <= '1'; + end if; + else + clkvco_ps_tmp2_en <= '1'; + end if; + else + if (clkout_ps_tmp2 = '0') then + clkout_ps_w := NOW - clkout_ps_peg; + if (clkout_ps_w > period_vco3) then + clkvco_ps_tmp2_en <= '1'; + else + wait until rising_edge(clkout_ps_tmp2); + clkvco_ps_tmp2_en <= '1'; + end if; + else + clkvco_ps_tmp2_en <= '1'; + end if; + end if; + wait until rising_edge(clkout_ps_tmp2); + wait until falling_edge(clkout_ps_tmp2); + if (clkout_ps_tmp1 = '0') then + clkvco_ps_tmp2_en <= '0'; + else + wait until falling_edge(clkout_ps_tmp1); + clkvco_ps_tmp2_en <= '0'; + end if; + end if; + end if; + wait on clkout_ps_tmp1, clkout_ps_tmp2, ps_lock_dly; + end process; + + clkout_ps_mux(0) <= clkout_ps when (clkout_en = '1' and rst_in_o = '0') else '0'; + + CLKOUT_PS_MUX_P : process (clkout_ps, clkout_en, rst_in_o) + begin + if (rst_in_o = '1') then + clkout_ps_mux(7 downto 1) <= "0000000"; + elsif (clkout_en = '1' ) then + clkout_ps_mux(1) <= transport clkout_ps after (period_vco1); + clkout_ps_mux(2) <= transport clkout_ps after (period_vco2); + clkout_ps_mux(3) <= transport clkout_ps after (period_vco3); + clkout_ps_mux(4) <= transport clkout_ps after (period_vco4); + clkout_ps_mux(5) <= transport clkout_ps after (period_vco5); + clkout_ps_mux(6) <= transport clkout_ps after (period_vco6); + clkout_ps_mux(7) <= transport clkout_ps after (period_vco7); + else + clkout_ps_mux(7 downto 1) <= "0000000"; + end if; + end process; + + clkout_ps1_p : process( clkvco, clkout_ps_tmp1, clkout_ps_tmp2, clkvco_ps_tmp2_en) + variable clkout_ps_i : std_ulogic := '0'; + begin + if (fps_en = 1) then + if (ps_in_ps = 0 ) then + clkout_ps_i := clkvco; + elsif (clkvco_ps_tmp2_en = '1') then + clkout_ps_i := clkout_ps_tmp2; + else + clkout_ps_i := clkout_ps_tmp1; + end if; + clkout_ps <= clkout_ps_i; + else + clkout_ps <= '0'; + end if; + end process; + + clk0in <= clkout_ps_mux(clk0pm_sel) when clk0_fps_en = 1 else clkout_mux(clk0pm_sel1); + clk1in <= clkout_ps_mux(clk1pm_sel) when clk1_fps_en = 1 else clkout_mux(clk1pm_sel); + clk2in <= clkout_ps_mux(clk2pm_sel) when clk2_fps_en = 1 else clkout_mux(clk2pm_sel); + clk3in <= clkout_ps_mux(clk3pm_sel) when clk3_fps_en = 1 else clkout_mux(clk3pm_sel); + clk4in <= clkout_ps_mux(clk4pm_sel) when clk4_fps_en = 1 else clk6_out when (clkout4_cascade_int = 1) else clkout_mux(clk4pm_sel); + clk5in <= clkout_ps_mux(clk5pm_sel) when clk5_fps_en = 1 else clkout_mux(clk5pm_sel1); +-- clk6in <= clkout_ps_mux(clk6pm_sel) when clk6_fps_en = 1 else clkout_mux(clk6pm_sel1); + clk6in <= '0'; + clkfbm1in <= clkout_ps_mux(clkfbm1pm_sel) when clkfb_fps_en = 1 else clkout_mux(clkfbm1pm_sel1); + + clkfbm1pm_sel1 <= 0 when (clkfb_frac_en = 1) else clkfbm1pm_sel; + clk6pm_sel1 <= 0 when (clkfb_frac_en = 1) else clk6pm_sel; + clk0pm_sel1 <= 0 when (clk0_frac_en = 1) else clk0pm_sel; + clk5pm_sel1 <= 0 when (clk0_frac_en = 1) else clk5pm_sel; + + clk0ps_en <= clkout_en when clk0_dly_cnt = clkout0_dly else '0'; + clk1ps_en <= clkout_en when clk1_dly_cnt = clkout1_dly else '0'; + clk2ps_en <= clkout_en when clk2_dly_cnt = clkout2_dly else '0'; + clk3ps_en <= clkout_en when clk3_dly_cnt = clkout3_dly else '0'; + clk4ps_en <= clkout_en when clk4_dly_cnt = clkout4_dly else '0'; + clk5ps_en <= clkout_en when clk5_dly_cnt = clkout5_dly else '0'; +-- clk6ps_en <= clkout_en when clk6_dly_cnt = clkout6_dly else '0'; + clk6ps_en <= '0'; + clkfbm1ps_en <= clkout_en when clkfbm1_dly_cnt = clkfbm1_dly else '0'; + + CLK0_DLY_CNT_P : process(clk0in, rst_in_o) + begin + if (rst_in_o = '1') then + clk0_dly_cnt <= 0; + else + if (falling_edge(clk0in)) then + if (clkout_en = '1' and clk0_frac_en = 0) then + if (clk0_dly_cnt < clkout0_dly) then + clk0_dly_cnt <= clk0_dly_cnt + 1; + end if; + end if; + end if; + end if; + end process; + + CLK1_DLY_CNT_P : process(clk1in, rst_in_o) + begin + if (rst_in_o = '1') then + clk1_dly_cnt <= 0; + else + if (falling_edge(clk1in)) then + if ((clk1_dly_cnt < clkout1_dly) and clkout_en = '1') then + clk1_dly_cnt <= clk1_dly_cnt + 1; + end if; + end if; + end if; + end process; + + CLK2_DLY_CNT_P : process(clk2in, rst_in_o) + begin + if (rst_in_o = '1') then + clk2_dly_cnt <= 0; + else + if (falling_edge(clk2in)) then + if ((clk2_dly_cnt < clkout2_dly) and clkout_en = '1') then + clk2_dly_cnt <= clk2_dly_cnt + 1; + end if; + end if; + end if; + end process; + + CLK3_DLY_CNT_P : process(clk3in, rst_in_o) + begin + if (rst_in_o = '1') then + clk3_dly_cnt <= 0; + else + if (falling_edge(clk3in)) then + if ((clk3_dly_cnt < clkout3_dly) and clkout_en = '1') then + clk3_dly_cnt <= clk3_dly_cnt + 1; + end if; + end if; + end if; + end process; + + CLK4_DLY_CNT_P : process(clk4in, rst_in_o) + begin + if (rst_in_o = '1') then + clk4_dly_cnt <= 0; + else + if (falling_edge(clk4in)) then + if ((clk4_dly_cnt < clkout4_dly) and clkout_en = '1') then + clk4_dly_cnt <= clk4_dly_cnt + 1; + end if; + end if; + end if; + end process; + + CLK5_DLY_CNT_P : process(clk5in, rst_in_o) + begin + if (rst_in_o = '1') then + clk5_dly_cnt <= 0; + else + if (falling_edge(clk5in)) then + if (clkout_en = '1' and clk0_frac_en = 0) then + if (clk5_dly_cnt < clkout5_dly) then + clk5_dly_cnt <= clk5_dly_cnt + 1; + end if; + end if; + end if; + end if; + end process; + + CLK6_DLY_CNT_P : process(clk6in, rst_in_o) + begin + if (rst_in_o = '1') then + clk6_dly_cnt <= 0; + else + if (falling_edge(clk6in)) then + if (clkout_en = '1' and clkfb_frac_en = 0) then + if (clk6_dly_cnt < clkout6_dly) then + clk6_dly_cnt <= clk6_dly_cnt + 1; + end if; + end if; + end if; + end if; + end process; + + CLKFB_DLY_CNT_P : process(clkfbm1in, rst_in_o) + begin + if (rst_in_o = '1') then + clkfbm1_dly_cnt <= 0; + else + if (falling_edge(clkfbm1in)) then + if (clkout_en = '1' and clkfb_frac_en = 0) then + if (clkfbm1_dly_cnt < clkfbm1_dly) then + clkfbm1_dly_cnt <= clkfbm1_dly_cnt + 1; + end if; + end if; + end if; + end if; + end process; + + CLK0_GEN_P : process begin + if (rst_in_o = '1') then + clk0_cnt <= 0; + clk0_out <= '0'; + else + if (clk0_frac_en = 0) then + if (rising_edge(clk0in) or falling_edge(clk0in)) then + if (clk0ps_en = '1') then + + if (clk0_cnt < clk0_div1) then + clk0_cnt <= clk0_cnt + 1; + else + clk0_cnt <= 0; + end if; + + if (clk0_cnt < clk0_ht1) then + clk0_out <= '1'; + else + clk0_out <= '0'; + end if; + else + clk0_out <= '0'; + clk0_cnt <= 0; + end if; + end if; + else + if (clk0_frac_en = 1 and clkout_en = '1') then + clk0_out <= '1'; + for I0 in 1 to 7 loop + wait for clk0_frac_ht; + clk0_out <= '0'; + wait for clk0_frac_lt; + clk0_out <= '1'; + end loop; + wait for clk0_frac_ht; + clk0_out <= '0'; + wait for (clk0_frac_lt - period_vco1); + end if; + end if; + end if; + wait on clk0in, rst_in_o; + end process; + + + + CLK1_GEN_P : process (clk1in, rst_in_o) + begin + if (rst_in_o = '1') then + clk1_cnt <= 0; + clk1_out <= '0'; + else + if (rising_edge(clk1in) or falling_edge(clk1in)) then + if (clk1ps_en = '1') then + if (clk1_cnt < clk1_div1) then + clk1_cnt <= clk1_cnt + 1; + else + clk1_cnt <= 0; + end if; + + if (clk1_cnt < clk1_ht1) then + clk1_out <= '1'; + else + clk1_out <= '0'; + end if; + else + clk1_out <= '0'; + clk1_cnt <= 0; + end if; + end if; + end if; + end process; + + + CLK2_GEN_P : process (clk2in, rst_in_o) + begin + if (rst_in_o = '1') then + clk2_cnt <= 0; + clk2_out <= '0'; + else + if (rising_edge(clk2in) or falling_edge(clk2in)) then + if (clk2ps_en = '1') then + if (clk2_cnt < clk2_div1) then + clk2_cnt <= clk2_cnt + 1; + else + clk2_cnt <= 0; + end if; + + if (clk2_cnt < clk2_ht1) then + clk2_out <= '1'; + else + clk2_out <= '0'; + end if; + else + clk2_out <= '0'; + clk2_cnt <= 0; + end if; + end if; + end if; + end process; + + + CLK3_GEN_P : process (clk3in, rst_in_o) + begin + if (rst_in_o = '1') then + clk3_cnt <= 0; + clk3_out <= '0'; + else + if (rising_edge(clk3in) or falling_edge(clk3in)) then + if (clk3ps_en = '1') then + if (clk3_cnt < clk3_ht1) then + clk3_out <= '1'; + else + clk3_out <= '0'; + end if; + + if (clk3_cnt < clk3_div1) then + clk3_cnt <= clk3_cnt + 1; + else + clk3_cnt <= 0; + end if; + else + clk3_out <= '0'; + clk3_cnt <= 0; + end if; + end if; + end if; + end process; + + + CLK4_GEN_P : process (clk4in, rst_in_o) + begin + if (rst_in_o = '1') then + clk4_cnt <= 0; + clk4_out <= '0'; + else + if (rising_edge(clk4in) or falling_edge(clk4in)) then + if (clk4ps_en = '1') then + if (clk4_cnt < clk4_div1) then + clk4_cnt <= clk4_cnt + 1; + else + clk4_cnt <= 0; + end if; + + if (clk4_cnt < clk4_ht1) then + clk4_out <= '1'; + else + clk4_out <= '0'; + end if; + else + clk4_out <= '0'; + clk4_cnt <= 0; + end if; + end if; + end if; + end process; + + + CLK5_GEN_P : process (clk5in, rst_in_o) + begin + if (rst_in_o = '1') then + clk5_cnt <= 0; + clk5_out <= '0'; + else + if (rising_edge(clk5in) or falling_edge(clk5in)) then + if (clk5ps_en = '1' and clk0_frac_en = 0) then + if (clk5_cnt < clk5_div1) then + clk5_cnt <= clk5_cnt + 1; + else + clk5_cnt <= 0; + end if; + + if (clk5_cnt < clk5_ht1) then + clk5_out <= '1'; + else + clk5_out <= '0'; + end if; + else + clk5_out <= '0'; + clk5_cnt <= 0; + end if; + end if; + end if; + end process; + + CLK6_GEN_P : process (clk6in, rst_in_o) + begin + if (rst_in_o = '1') then + clk6_cnt <= 0; + clk6_out <= '0'; + else + if (rising_edge(clk6in) or falling_edge(clk6in)) then + if (clk6ps_en = '1' and clkfb_frac_en = 0) then + if (clk6_cnt < clk6_div1) then + clk6_cnt <= clk6_cnt + 1; + else + clk6_cnt <= 0; + end if; + + if (clk6_cnt < clk6_ht1) then + clk6_out <= '1'; + else + clk6_out <= '0'; + end if; + else + clk6_out <= '0'; + clk6_cnt <= 0; + end if; + end if; + end if; + end process; + + + CLKFB_GEN_P : process + begin + if (rst_in_o = '1') then + clkfbm1_cnt <= 0; + clkfbm1_out <= '0'; + else + if (clkfb_frac_en = 0) then + if (rising_edge(clkfbm1in) or falling_edge(clkfbm1in)) then + if (clkfbm1ps_en = '1' and clkfb_frac_en = 0) then + if (clkfbm1_cnt < clkfbm1_div1) then + clkfbm1_cnt <= clkfbm1_cnt + 1; + else + clkfbm1_cnt <= 0; + end if; + + if (clkfbm1_cnt < clkfbm1_ht1) then + clkfbm1_out <= '1'; + else + clkfbm1_out <= '0'; + end if; + else + clkfbm1_out <= '0'; + clkfbm1_cnt <= 0; + end if; + end if; + else + if (clkfb_frac_en = 1 and clkout_en = '1') then + clkfbm1_out <= '1'; + for Ifb in 1 to 7 loop + if (clkout_en = '1') then + wait for clkfb_frac_ht; + clkfbm1_out <= '0'; + wait for clkfb_frac_lt; + clkfbm1_out <= '1'; + else + clkfbm1_out <= '0'; + end if; + end loop; + if (clkout_en = '1') then + wait for clkfb_frac_ht; + clkfbm1_out <= '0'; + wait for (clkfb_frac_lt - period_vco1); + else + clkfbm1_out <= '0'; + end if; + else + clkfbm1_out <= '0'; + end if; + end if; + end if; + wait on clkfbm1in, rst_in_o, clkout_en; + end process; + + CLKFBM2_GEN_P : process (clkfb_in, rst_in_o) + begin + if (rst_in_o = '1') then + clkfbm2_cnt <= 0; + clkfbm2_out <= '0'; + else + if (rising_edge(clkfb_in) or falling_edge(clkfb_in)) then + if (clkout_en = '1') then + if (clkfbm2_cnt < clkfbm2_div1) then + clkfbm2_cnt <= clkfbm2_cnt + 1; + else + clkfbm2_cnt <= 0; + end if; + + if (clkfbm2_cnt < clkfbm2_ht1) then + clkfbm2_out <= '1'; + else + clkfbm2_out <= '0'; + end if; + else + clkfbm2_out <= '0'; + clkfbm2_cnt <= 0; + end if; + end if; + end if; + end process; + + CLKIND_GEN_P : process (clkpll_r, rst_in_o) + begin + if (rst_in_o = '1') then + clkind_cnt <= 0; + clkind_out <= '0'; + else + if (rising_edge(clkpll_r) or falling_edge(clkpll_r)) then + if (clkout_en = '1') then + if (clkind_cnt < clkind_div1) then + clkind_cnt <= clkind_cnt + 1; + else + clkind_cnt <= 0; + end if; + + if (clkind_cnt < clkind_ht1) then + clkind_out <= '1'; + else + clkind_out <= '0'; + end if; + else + clkind_out <= '0'; + clkind_cnt <= 0; + end if; + end if; + end if; + end process; + + + clkout0_out <= transport clk0_out when fb_delay_found = '1' else clkfb_tst; + clkout1_out <= transport clk1_out when fb_delay_found = '1' else clkfb_tst; + clkout2_out <= transport clk2_out when fb_delay_found = '1' else clkfb_tst; + clkout3_out <= transport clk3_out when fb_delay_found = '1' else clkfb_tst; + clkout4_out <= transport clk4_out when fb_delay_found = '1' else clkfb_tst; + clkout5_out <= transport clk5_out when fb_delay_found = '1' else clkfb_tst; + clkout6_out <= transport clk6_out when fb_delay_found = '1' else clkfb_tst; + clkfb_out <= transport clkfbm1_out when fb_delay_found = '1' else clkfb_tst; + + -- + -- determine feedback delay + -- + pwron_int_p : process + begin + pwron_int <= '1'; + wait for 100 ns; + pwron_int <= '0'; + wait; + end process; + + + CLKFB_TST_P : process (clkpll_r, rst_in) + begin + if (rst_in = '1') then + clkfb_tst <= '0'; + elsif (rising_edge(clkpll_r)) then + if (fb_delay_found_tmp = '0' and pwron_int = '0') then + clkfb_tst <= '1'; + else + clkfb_tst <= '0'; + end if; + end if; + end process; + + FB_DELAY_CAL_P0 : process (clkfb_tst, rst_in) + begin + if (rst_in = '1') then + delay_edge <= 0 ps; + elsif (rising_edge(clkfb_tst)) then + delay_edge <= NOW; + end if; + end process; + + FB_DELAY_CAL_P : process (clkfb_in, rst_in) + variable delay_edge1 : time := 0 ps; + variable fb_delay_tmp : time := 0 ps; + variable Message : line; + begin + if (rst_in = '1') then + fb_delay <= 0 ps; + fb_delay_found_tmp <= '0'; + delay_edge1 := 0 ps; + fb_delay_tmp := 0 ps; + elsif (clkfb_in'event and clkfb_in = '1') then + if (fb_delay_found_tmp = '0') then + if (delay_edge /= 0 ps) then + delay_edge1 := NOW; + fb_delay_tmp := delay_edge1 - delay_edge; + else + fb_delay_tmp := 0 ps; + end if; + fb_delay <= fb_delay_tmp; + fb_delay_found_tmp <= '1'; + if (rst_in = '0' and fb_delay_tmp > fb_delay_max) then + Write ( Message, string'(" Warning : The feedback delay is ")); + Write ( Message, fb_delay_tmp); + Write ( Message, string'(". It is over the maximun value ")); + Write ( Message, fb_delay_max); + Write ( Message, '.' & LF ); + assert false report Message.all severity warning; + DEALLOCATE (Message); + end if; + end if; + end if; + end process; + + fb_delay_found_P : process(fb_delay_found_tmp, clkvco_delay, rst_in) + begin + if (rst_in = '1') then + fb_delay_found <= '0'; + elsif (clkvco_delay = 0 ps) then + fb_delay_found <= fb_delay_found_tmp after 1 ns; + else + fb_delay_found <= fb_delay_found_tmp after clkvco_delay; + end if; + end process; + + -- + -- generate unlock signal + -- + clk_osc_p : process(clk_osc, rst_in) + begin + if (rst_in = '1') then + clk_osc <= '0'; + else + clk_osc <= not clk_osc after OSC_P2; + end if; + end process; + + clkin_p_p : process + begin + if (rising_edge(clkpll_r) or falling_edge(clkpll_r)) then + clkin_p <= '1'; + wait for 100 ps; + clkin_p <= '0'; + end if; + wait on clkpll_r; + end process; + + clkfb_p_p : process + begin + if (rising_edge(clkfb_in) or falling_edge(clkfb_in)) then + clkfb_p <= '1'; + wait for 100 ps; + clkfb_p <= '0'; + end if; + wait on clkfb_in; + end process; + + clkin_lost_out_p : process + begin + if (rst_in = '1') then + clkinstopped_out1 <= '0'; + elsif (rising_edge(clkinstopped_out)) then + clkinstopped_out1 <= '1'; + if (clkin_hold_f = 1) then + wait until (rising_edge(locked_out) or rising_edge(rst_in)); + clkinstopped_out1 <= '0'; + else + if (clkinsel_in = '1') then + assert FALSE report " Error : input CLKIN1 of PLLE2_ADV is stopped. Reset is required for PLLE2_ADV whether stopped input clock comes back or not." severity error; + else + assert FALSE report " Error : input CLKIN2 of PLLE2_ADV is stopped. Reset is required for PLLE2_ADV whether stopped input clock comes back or not." severity error; + end if; + end if; + end if; + wait on clkinstopped_out, locked_out, rst_in; + end process; + + clkfb_lost_out_p : process + begin + if (rst_in = '1') then + clkfbstopped_out1 <= '0'; + elsif (rising_edge(clkfbstopped_out)) then + clkfbstopped_out1 <= '1'; + wait until (rising_edge(locked_out) or rising_edge(rst_in)); + clkfbstopped_out1 <= '0'; + end if; + wait on clkfbstopped_out, locked_out, rst_in; + end process; + + + clkin_stopped_p : process + begin + if (rst_in = '1') then + clkinstopped_out <= '0'; + clkin_lost_cnt <= 0; + elsif (clkin_p = '1') then + if (clkinstopped_out = '1') then + wait until rising_edge(clkpll_r); + clkinstopped_out <= '0'; + clkin_lost_cnt <= 0; + else + clkinstopped_out <= '0'; + clkin_lost_cnt <= 0; + end if; + elsif (rising_edge(clk_osc)) then + if (lock_period = '1') then + if (clkin_lost_cnt < clkin_lost_val) then + clkin_lost_cnt <= clkin_lost_cnt + 1; + clkinstopped_out <= '0'; + else + clkinstopped_out <= '1'; + end if; + end if; + end if; + wait on clk_osc, rst_in, clkin_p; + end process; + + + clkfb_stopped_p : process(clk_osc, rst_in, clkfb_p) + begin + if (rst_in = '1' or clkfb_p = '1') then + clkfbstopped_out <= '0'; + clkfb_lost_cnt <= 0; + elsif (rising_edge(clk_osc)) then + if (clkout_en1 = '1') then + if (clkfb_lost_cnt < clkfb_lost_val) then + clkfb_lost_cnt <= clkfb_lost_cnt + 1; + clkfbstopped_out <= '0'; + else + clkfbstopped_out <= '1'; + end if; + end if; + end if; + end process; + + CLK_JITTER_P : process (clkin_jit, rst_in) + begin + if (rst_in = '1') then + clkpll_jitter_unlock <= '0'; + else + if ( pll_locked_tmp2 = '1' and clkfbstopped_out = '0' and clkinstopped_out = '0') then + if (ABS(clkin_jit) > ref_jitter_max_tmp) then + clkpll_jitter_unlock <= '1'; + else + clkpll_jitter_unlock <= '0'; + end if; + else + clkpll_jitter_unlock <= '0'; + end if; + end if; + end process; + + pll_unlock1_p : process + begin + if (rst_in = '1') then + pll_unlock1 <= '0'; + elsif (rising_edge(pll_unlock1_tmp)) then + pll_unlock1 <= '1'; + wait until (falling_edge(pll_unlock1_tmp)); + if (clkpll_r = '1') then + pll_unlock1 <= '0'; + else + wait until (rising_edge(clkpll_r)); + pll_unlock1 <= '0'; + end if; + end if; + wait on pll_unlock1_tmp, clkpll_r, rst_in; + end process; + + pll_unlock1_tmp <= '1' when (clkinstopped_out_dly = '1' or + clkfbstopped_out = '1' or clkpll_jitter_unlock = '1') else '0'; + + pll_unlock <= '1' when ( pll_unlock1 = '1' or unlock_recover = '1') else '0'; + + + +end PLLE2_ADV_V; + -- pragma translate_on diff --git a/lib/tech/virage/simprims/virage_simprims.vhd b/lib/tech/virage/simprims/virage_simprims.vhd index 6c4b63ac..cc0c6710 100644 --- a/lib/tech/virage/simprims/virage_simprims.vhd +++ b/lib/tech/virage/simprims/virage_simprims.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/tech/virage/vcomponents/virage_vcomponents.vhd b/lib/tech/virage/vcomponents/virage_vcomponents.vhd index 7c9dddb3..453220da 100644 --- a/lib/tech/virage/vcomponents/virage_vcomponents.vhd +++ b/lib/tech/virage/vcomponents/virage_vcomponents.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/altera_mf/clkgen_altera_mf.vhd b/lib/techmap/altera_mf/clkgen_altera_mf.vhd index d58d059d..0c9bf62d 100644 --- a/lib/techmap/altera_mf/clkgen_altera_mf.vhd +++ b/lib/techmap/altera_mf/clkgen_altera_mf.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/altera_mf/memory_altera_mf.vhd b/lib/techmap/altera_mf/memory_altera_mf.vhd index eaef1afd..bb016b23 100644 --- a/lib/techmap/altera_mf/memory_altera_mf.vhd +++ b/lib/techmap/altera_mf/memory_altera_mf.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/altera_mf/tap_altera_mf.vhd b/lib/techmap/altera_mf/tap_altera_mf.vhd index ff7c1eb1..bb9ae47c 100644 --- a/lib/techmap/altera_mf/tap_altera_mf.vhd +++ b/lib/techmap/altera_mf/tap_altera_mf.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/atc18/pads_atc18.vhd b/lib/techmap/atc18/pads_atc18.vhd index 76777b2d..08094d31 100644 --- a/lib/techmap/atc18/pads_atc18.vhd +++ b/lib/techmap/atc18/pads_atc18.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/clocks/clkgen.in b/lib/techmap/clocks/clkgen.in index 1cc56052..d127ab83 100644 --- a/lib/techmap/clocks/clkgen.in +++ b/lib/techmap/clocks/clkgen.in @@ -10,13 +10,14 @@ Fusion-PLL CONFIG_CLK_FUSPLL \ RH-LIB18T-PLL CONFIG_CLK_LIB18T \ DARE-PLL CONFIG_CLK_RHUMC \ + Xilinx-PLLE2 CONFIG_CLK_CLKPLLE2 \ Xilinx-CLKDLL CONFIG_CLK_CLKDLL \ Xilinx-DCM CONFIG_CLK_DCM" Inferred if [ "$CONFIG_CLK_DCM" = "y" -o "$CONFIG_CLK_ALTDLL" = "y" \ -o "$CONFIG_CLK_LATDLL" = "y" -o "$CONFIG_CLK_PRO3PLL" = "y" \ -o "$CONFIG_CLK_PRO3EPLL" = "y" -o "$CONFIG_CLK_PRO3LPLL" = "y" \ -o "$CONFIG_CLK_CLKDLL" = "y" -o "$CONFIG_CLK_LIB18T" = "y" \ - -o "$CONFIG_CLK_FUSPLL" = "y" ]; then + -o "$CONFIG_CLK_FUSPLL" = "y" -o "$CONFIG_CLK_CLKPLLE2" = "y"]; then int 'Clock multiplication factor (allowed values are tech dependent)' CONFIG_CLK_MUL 2 int 'Clock division factor (allowed values are tech dependent)' CONFIG_CLK_DIV 2 fi diff --git a/lib/techmap/clocks/clkgen.in.h b/lib/techmap/clocks/clkgen.in.h index 300248ec..bdb19c7a 100644 --- a/lib/techmap/clocks/clkgen.in.h +++ b/lib/techmap/clocks/clkgen.in.h @@ -15,6 +15,8 @@ #define CFG_CLK_TECH actfus #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T diff --git a/lib/techmap/clocks/clkgen.in.help b/lib/techmap/clocks/clkgen.in.help index ab27d27e..41c98fb5 100644 --- a/lib/techmap/clocks/clkgen.in.help +++ b/lib/techmap/clocks/clkgen.in.help @@ -5,31 +5,33 @@ CONFIG_CLK_INFERRED phase-adjust the system and SDRAM clocks. This is currently supported for Xilinx, Altera and Proasic3 FPGAs. Depending on technology, you can select to use the Xilinx CKLDLL macro (Virtex, VirtexE, Spartan1/2), - the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Altera ALTDLL - (Stratix, Cyclone), or the Proasic3 PLL. Choose the 'inferred' - option to skip a clock generator. + the Xilinx DCM (Virtex-2, Spartan3, Virtex-4), the Xilinx PLLE2 (Virtex-7, + Kintex-7, Artix-4), the Altera ALTDLL (Stratix, Cyclone), or the + Proasic3 PLL. Choose the 'inferred' option to skip a clock generator. Clock multiplier CONFIG_CLK_MUL - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. Clock divider CONFIG_CLK_DIV - When using the Xilinx DCM or Altera ALTPLL, the system clock can - be multiplied with a factor of 2 - 32, and divided by a factor of - 1 - 32. This makes it possible to generate almost any desired - processor frequency. When using the Xilinx CLKDLL generator, - the resulting frequency scale factor (mul/div) must be one of - 1/2, 1 or 2. On Proasic3, the factor can be 1 - 128. - + When using the Xilinx DCM, Xilinx PLLE2 or Altera ALTPLL, + the system clock can be multiplied with a factor of 2 - 32, + and divided by a factor of 1 - 32. This makes it possible to + generate almost any desired processor frequency. When using + the Xilinx CLKDLL generator, the resulting frequency scale f + actor (mul/div) must be one of 1/2, 1 or 2. On Proasic3, + the factor can be 1 - 128. + WARNING: The resulting clock must be within the limits specified by the target FPGA family. diff --git a/lib/techmap/cycloneiii/cycloneiii_clkgen.vhd b/lib/techmap/cycloneiii/cycloneiii_clkgen.vhd index 91b51840..880c5e56 100644 --- a/lib/techmap/cycloneiii/cycloneiii_clkgen.vhd +++ b/lib/techmap/cycloneiii/cycloneiii_clkgen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/cycloneiii/cycloneiii_ddr_phy.vhd b/lib/techmap/cycloneiii/cycloneiii_ddr_phy.vhd index 3760d6eb..ef9b5ac8 100644 --- a/lib/techmap/cycloneiii/cycloneiii_ddr_phy.vhd +++ b/lib/techmap/cycloneiii/cycloneiii_ddr_phy.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/dware/mul_dware.vhd b/lib/techmap/dware/mul_dware.vhd index 32238706..08a9ae3b 100644 --- a/lib/techmap/dware/mul_dware.vhd +++ b/lib/techmap/dware/mul_dware.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/ec/ddr_ec.vhd b/lib/techmap/ec/ddr_ec.vhd index f245b3ed..8f25ba72 100644 --- a/lib/techmap/ec/ddr_ec.vhd +++ b/lib/techmap/ec/ddr_ec.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/ec/memory_ec.vhd b/lib/techmap/ec/memory_ec.vhd index 9fa75538..991bffe4 100644 --- a/lib/techmap/ec/memory_ec.vhd +++ b/lib/techmap/ec/memory_ec.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/eclipsee/memory_eclipse.vhd b/lib/techmap/eclipsee/memory_eclipse.vhd index 5a519776..94aae86a 100644 --- a/lib/techmap/eclipsee/memory_eclipse.vhd +++ b/lib/techmap/eclipsee/memory_eclipse.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/gencomp/clkgen.in b/lib/techmap/gencomp/clkgen.in index 2c52fb1c..26d9989a 100644 --- a/lib/techmap/gencomp/clkgen.in +++ b/lib/techmap/gencomp/clkgen.in @@ -4,6 +4,7 @@ Altera-ALTPLL CONFIG_CLK_ALTDLL \ Lattice-EXPLL CONFIG_CLK_LATDLL \ RH-LIB18T-PLL CONFIG_CLK_LIB18T \ + Xilinx-PLLE2 CONFIG_CLK_CLKPLLE2 \ Xilinx-CLKDLL CONFIG_CLK_CLKDLL \ Xilinx-DCM CONFIG_CLK_DCM" Inferred if [ "$CONFIG_CLK_DCM" = "y" -o "$CONFIG_CLK_ALTDLL" = "y" \ diff --git a/lib/techmap/gencomp/clkgen.in.h b/lib/techmap/gencomp/clkgen.in.h index a5853921..6121fa3f 100644 --- a/lib/techmap/gencomp/clkgen.in.h +++ b/lib/techmap/gencomp/clkgen.in.h @@ -7,6 +7,8 @@ #define CFG_CLK_TECH lattice #elif defined CONFIG_CLK_CLKDLL #define CFG_CLK_TECH virtex +#elif defined CONFIG_CLK_CLKPLLE2 +#define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_DCM #define CFG_CLK_TECH CONFIG_SYN_TECH #elif defined CONFIG_CLK_LIB18T diff --git a/lib/techmap/gencomp/gencomp.vhd b/lib/techmap/gencomp/gencomp.vhd index 270b4e1a..22c26914 100644 --- a/lib/techmap/gencomp/gencomp.vhd +++ b/lib/techmap/gencomp/gencomp.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -25,6 +25,9 @@ library ieee; use ieee.std_logic_1164.all; +library grlib; +use grlib.config.grlib_config_array; +use grlib.config_types.grlib_techmap_testin_extra; package gencomp is @@ -34,7 +37,7 @@ package gencomp is -- technologies and libraries -constant NTECH : integer := 47; +constant NTECH : integer := 51; type tech_ability_type is array (0 to NTECH) of integer; constant inferred : integer := 0; @@ -85,6 +88,10 @@ constant apa3l : integer := 44; constant ut130 : integer := 45; constant ut90 : integer := 46; constant gf65 : integer := 47; +constant virtex7 : integer := 48; +constant kintex7 : integer := 49; +constant artix7 : integer := 50; +constant zynq7000 : integer := 51; constant DEFMEMTECH : integer := inferred; constant DEFPADTECH : integer := inferred; @@ -95,9 +102,10 @@ constant is_fpga : tech_ability_type := proasic => 1, altera => 1, apa3 => 1, spartan3 => 1, virtex4 => 1, lattice => 1, spartan3e => 1, virtex5 => 1, stratix1 => 1, stratix2 => 1, eclipse => 1, - stratix3 => 1, cyclone3 => 1, axdsp => 1, - spartan6 => 1, virtex6 => 1, actfus => 1, - stratix4 => 1, apa3e => 1, apa3l => 1, + stratix3 => 1, cyclone3 => 1, axdsp => 1, + spartan6 => 1, virtex6 => 1, actfus => 1, + stratix4 => 1, apa3e => 1, apa3l => 1, virtex7 => 1, kintex7 => 1, + artix7 => 1, zynq7000 => 1, others => 0); constant infer_mul : tech_ability_type := is_fpga; @@ -130,14 +138,43 @@ constant has_dpram : tech_ability_type := lattice => 1, spartan3e => 1, memartisan => 1, virtex5 => 1, custom1 => 1, stratix1 => 1, stratix2 => 1, stratix3 => 1, cyclone3 => 1, memvirage90 => 1, atc18rha => 1, smic013 => 1, - tm65gpl => 1, axdsp => 0, spartan6 => 1, virtex6 => 1, + tm65gpl => 1, axdsp => 0, spartan6 => 1, virtex6 => 1, actfus => 1, stratix4 => 1, easic45 => 1, apa3e => 1, - apa3l => 1, ut90 => 1, others => 0); + apa3l => 1, ut90 => 1, virtex7 => 1, kintex7 => 1, artix7 => 1, zynq7000 => 1, others => 0); constant has_sram64 : tech_ability_type := (inferred => 0, virtex2 => 1, spartan3 => 1, virtex4 => 1, spartan3e => 1, memartisan => 1, virtex5 => 1, smic013 => 1, - spartan6 => 1, virtex6 => 1, easic45 => 1, others => 0); + spartan6 => 1, virtex6 => 1, easic45 => 1, virtex7 => 1, kintex7 => 1, + artix7 => 1, zynq7000 => 1, others => 0); + +constant has_sram128bw : tech_ability_type := ( + virtex2 => 1, virtex4 => 1, virtex5 => 1, spartan3 => 1, + spartan3e => 1, spartan6 => 1, virtex6 => 1, virtex7 => 1, kintex7 => 1, + altera => 1, cyclone3 => 1, stratix2 => 1, stratix3 => 1, + ut90 => 1, others => 0); + +constant has_sram128 : tech_ability_type := ( + virtex2 => 1, virtex4 => 1, virtex5 => 1, spartan3 => 1, + spartan3e => 1, spartan6 => 1, virtex6 => 1, virtex7 => 1, kintex7 => 1, + tm65gpl => 0, easic45 => 1, others => 0); + +constant has_sram156bw : tech_ability_type := ( + virtex2 => 0, virtex4 => 0, virtex5 => 0, spartan3 => 0, + spartan3e => 0, spartan6 => 0, virtex6 => 0, virtex7 => 0, kintex7 => 0, + altera => 0, cyclone3 => 0, stratix2 => 0, stratix3 => 0, + tm65gpl => 0, custom1 => 1, ut90 => 1, others => 0); + +constant has_sram256bw : tech_ability_type := ( + virtex2 => 1, virtex4 => 1, virtex5 => 1, spartan3 => 1, + spartan3e => 1, spartan6 => 1, virtex6 => 1, virtex7 => 1, kintex7 => 1, + altera => 1, cyclone3 => 1, stratix2 => 1, stratix3 => 1, + tm65gpl => 0, cmos9sf => 1, others => 0); + +constant has_sram_2pbw : tech_ability_type := ( + easic45 => 1, others => 0); + +constant has_srambw : tech_ability_type := (easic45 => 1, others => 0); constant padoen_polarity : tech_ability_type := (axcel => 1, proasic => 1, umc => 1, rhumc => 1, apa3 => 1, @@ -151,9 +188,10 @@ constant has_pads : tech_ability_type := umc => 1, rhumc => 1, apa3 => 1, spartan3 => 1, ihp25 => 1, rhlib18t => 1, virtex4 => 1, lattice => 0, ut25 => 1, spartan3e => 1, peregrine => 1, virtex5 => 1, axdsp => 1, - easic90 => 1, atc18rha => 1, spartan6 => 1, virtex6 => 1, + easic90 => 1, atc18rha => 1, spartan6 => 1, virtex6 => 1, actfus => 1, apa3e => 1, apa3l => 1, ut130 => 1, easic45 => 1, - ut90 => 1, others => 0); + ut90 => 1, virtex7 => 1, kintex7 => 1, + artix7 => 1, zynq7000 => 1, others => 0); constant has_ds_pads : tech_ability_type := (inferred => 0, virtex => 1, virtex2 => 1, memvirage => 0, @@ -161,9 +199,9 @@ constant has_ds_pads : tech_ability_type := umc => 0, rhumc => 0, apa3 => 1, spartan3 => 1, ihp25 => 0, rhlib18t => 1, virtex4 => 1, lattice => 0, ut25 => 1, spartan3e => 1, virtex5 => 1, axdsp => 1, - spartan6 => 1, virtex6 => 1, actfus => 1, - apa3e => 1, apa3l => 1, ut130 => 0, easic45 => 1, - others => 0); + spartan6 => 1, virtex6 => 1, actfus => 1, + apa3e => 1, apa3l => 1, ut130 => 0, easic45 => 1, virtex7 => 1, kintex7 => 1, + artix7 => 1, zynq7000 => 1, others => 0); constant has_ds_combo : tech_ability_type := ( rhumc => 1, ut25 => 1, ut130 => 1, others => 0); @@ -172,45 +210,48 @@ constant has_clkand : tech_ability_type := ( virtex => 1, virtex2 => 1, spartan3 => 1, spartan3e => 1, virtex4 => 1, virtex5 => 1, ut25 => 1, rhlib18t => 1, spartan6 => 1, virtex6 => 1, ut130 => 1, easic45 => 1, - ut90 => 1, others => 0); + ut90 => 1, virtex7 => 1, kintex7 => 1, artix7 => 1, zynq7000 => 1, others => 0); constant has_clkmux : tech_ability_type := - ( virtex => 1, virtex2 => 1, spartan3 => 1, spartan3e => 1, + ( virtex => 1, virtex2 => 1, spartan3 => 1, spartan3e => 1, virtex4 => 1, virtex5 => 1, rhlib18t => 1, spartan6 => 1, virtex6 => 1, ut130 => 1, easic45 => 1, - others => 0); + ut90 => 1, virtex7 => 1, kintex7 => 1, artix7 => 1, zynq7000 => 1, others => 0); constant has_techbuf : tech_ability_type := ( virtex => 1, virtex2 => 1, virtex4 => 1, virtex5 => 1, spartan3 => 1, spartan3e => 1, axcel => 1, ut25 => 1, - apa3 => 1, easic90 => 1, axdsp => 1, actfus => 1, + apa3 => 1, easic90 => 1, axdsp => 1, actfus => 1, apa3e => 1, apa3l => 1, ut130 => 1, easic45 => 1, - ut90 => 1, spartan6 => 1, virtex6 => 1, others => 0); + ut90 => 1, spartan6 => 1, virtex6 => 1, virtex7 => 1, kintex7 => 1, + artix7 => 1, zynq7000 => 1, others => 0); constant has_tapsel : tech_ability_type := ( virtex => 1, virtex2 => 1, virtex4 => 1, virtex5 => 1, spartan3 => 1, spartan3e => 1, - spartan6 => 1, virtex6 => 1, others => 0); + spartan6 => 1, virtex6 => 1, virtex7 => 1, kintex7 => 1, + artix7 => 1, zynq7000 => 1, others => 0); constant need_extra_sync_reset : tech_ability_type := (axcel => 1, atc18s => 1, ut25 => 1, rhumc => 1, tsmc90 => 1, rhlib18t => 1, atc18rha => 1, easic90 => 1, tm65gpl => 1, axdsp => 1, cmos9sf => 1, apa3 => 1, apa3e => 1, apa3l => 1, - ut130 => 1, easic45 => 1, others => 0); + ut130 => 1, easic45 => 1, ut90 => 1, others => 0); constant is_unisim : tech_ability_type := ( virtex => 1, virtex2 => 1, virtex4 => 1, virtex5 => 1, spartan3 => 1, spartan3e => 1, - spartan6 => 1, virtex6 => 1, others => 0); + spartan6 => 1, virtex6 => 1, virtex7 => 1, kintex7 => 1, artix7 => 1, zynq7000 => 1, others => 0); constant has_tap : tech_ability_type := (inferred => 0, virtex => 1, virtex2 => 1, axcel => 0, proasic => 0, altera => 1, apa3 => 1, spartan3 => 1, virtex4 => 1, lattice => 0, spartan3e => 1, virtex5 => 1, stratix1 => 1, stratix2 => 1, eclipse => 0, - stratix3 => 1, cyclone3 => 1, axdsp => 0, - spartan6 => 1, virtex6 => 1, actfus => 1, - stratix4 => 1, easic45 => 0, apa3e => 1, apa3l => 1, + stratix3 => 1, cyclone3 => 1, axdsp => 0, + spartan6 => 1, virtex6 => 1, actfus => 1, + stratix4 => 1, easic45 => 0, apa3e => 1, apa3l => 1, virtex7 => 1, kintex7 => 1, + artix7 => 1, zynq7000 => 1, others => 0); constant has_clkgen : tech_ability_type := @@ -218,21 +259,21 @@ constant has_clkgen : tech_ability_type := proasic => 1, altera => 1, apa3 => 1, spartan3 => 1, virtex4 => 1, lattice => 0, spartan3e => 1, virtex5 => 1, stratix1 => 1, stratix2 => 1, eclipse => 0, rhumc => 1, - stratix3 => 1, cyclone3 => 1, axdsp => 1, + stratix3 => 1, cyclone3 => 1, axdsp => 1, spartan6 => 1, virtex6 => 1, actfus => 1, easic90 => 1, stratix4 => 1, easic45 => 1, apa3e => 1, apa3l => 1, - rhlib18t => 1, ut130 => 1, ut90 => 1, others => 0); + rhlib18t => 1, ut130 => 1, ut90 => 1, virtex7 => 1, kintex7 => 1, artix7 => 1, zynq7000 => 1, others => 0); constant has_ddr2phy: tech_ability_type := - (inferred => 0, stratix2 => 1, stratix3 => 1, spartan3 => 1, - easic90 => 1, spartan6 => 1, easic45 => 1, + (inferred => 0, stratix2 => 1, stratix3 => 1, spartan3 => 1, + easic90 => 1, spartan6 => 1, easic45 => 1, virtex4 => 1, virtex5 => 1, virtex6 => 1, others => 0); constant ddr2phy_builtin_pads: tech_ability_type := ( -- Wrapped DDR2 IP cores with builtin pads easic45 => 1, -- Below techs have builtin pads for legacy reasons, can be converted if needed - spartan6 => 1, easic90 => 1, spartan3 => 1, stratix3 => 1, stratix2 => 1, + spartan6 => 1, easic90 => 1, spartan3 => 1, stratix3 => 1, stratix2 => 1, others => 0); constant ddr2phy_has_fbclk: tech_ability_type := @@ -269,6 +310,16 @@ constant ddrphy_latency: tech_ability_type := ( others => 0 ); +-- If the PHY passes through the control signals directly to the pads +-- and therefore needs them to be set asynchronously at reset +constant ddr2phy_ptctrl: tech_ability_type := ( + inferred => 1, others => 0 + ); + +constant ddrphy_ptctrl: tech_ability_type := ( + inferred => 1, others => 0 + ); + -- pragma translate_off subtype tech_description is string(1 to 10); @@ -299,7 +350,9 @@ constant ddrphy_latency: tech_ability_type := ( st65gp => "st65gp ", easic45 => "nextreme2 ", cmos9sf => "cmos9sf ", apa3e => "proasic3e ", apa3l => "proasic3l ", ut130 => "ut130hbd ", - ut90 => "ut90nhbd ", gf65 => "gf65g "); + ut90 => "ut90nhbd ", gf65 => "gf65g ", + virtex7 => "virtex7 ", kintex7 => "kintex7 ", + artix7 => "artix7 ", zynq7000 => "zynq7000 "); -- pragma translate_on @@ -326,6 +379,7 @@ constant sstl3_ii : integer := 8; constant sstl18_i : integer := 9; constant sstl18_ii: integer := 10; constant lvpecl : integer := 11; +constant sstl : integer := 12; -- pad types @@ -340,6 +394,10 @@ constant dci : integer := 5; -- MEMORY --------------------------------------------------------------------------- + -- testin vector is testen & scanen & (tech-dependent...) + constant TESTIN_WIDTH : integer := 4 + GRLIB_CONFIG_ARRAY(grlib_techmap_testin_extra); + constant testin_none : std_logic_vector(TESTIN_WIDTH-1 downto 0) := (others => '0'); + -- synchronous single-port ram component syncram generic (tech : integer := 0; abits : integer := 6; dbits : integer := 8; @@ -351,7 +409,7 @@ constant dci : integer := 5; dataout : out std_logic_vector((dbits -1) downto 0); enable : in std_ulogic; write : in std_ulogic; - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end component; -- synchronous two-port ram (1 read, 1 write port) @@ -368,7 +426,7 @@ constant dci : integer := 5; write : in std_ulogic; waddress : in std_logic_vector((abits -1) downto 0); datain : in std_logic_vector((dbits -1) downto 0); - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end component; -- synchronous dual-port ram (2 read/write ports) @@ -388,7 +446,7 @@ constant dci : integer := 5; dataout2 : out std_logic_vector((dbits -1) downto 0); enable2 : in std_ulogic; write2 : in std_ulogic; - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end component; -- synchronous 3-port regfile (2 read, 1 write port) @@ -407,7 +465,7 @@ constant dci : integer := 5; raddr2 : in std_logic_vector((abits -1) downto 0); re2 : in std_ulogic; rdata2 : out std_logic_vector((dbits -1) downto 0); - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end component; -- 64-bit synchronous single-port ram with 32-bit write strobe @@ -421,7 +479,7 @@ constant dci : integer := 5; dataout : out std_logic_vector (63+8*paren downto 0); enable : in std_logic_vector (1 downto 0); write : in std_logic_vector (1 downto 0); - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end component; -- 128-bit synchronous single-port ram with 32-bit write strobe @@ -435,7 +493,7 @@ constant dci : integer := 5; dataout : out std_logic_vector (127+16*paren downto 0); enable : in std_logic_vector (3 downto 0); write : in std_logic_vector (3 downto 0); - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end component; component syncramft @@ -449,7 +507,7 @@ constant dci : integer := 5; write : in std_ulogic; enable : in std_ulogic; error : out std_logic_vector(((dbits + 7) / 8)-1 downto 0); - testin : in std_logic_vector(3 downto 0) := "0000"; + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none; errinj : in std_logic_vector(((dbits + 7)/8)*2-1 downto 0) := (others => '0')); end component; @@ -467,7 +525,7 @@ constant dci : integer := 5; waddress : in std_logic_vector((abits -1) downto 0); datain : in std_logic_vector((dbits -1) downto 0); error : out std_logic_vector(((dbits + 7) / 8)-1 downto 0); - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end component; component syncfifo @@ -495,7 +553,7 @@ constant dci : integer := 5; dataout : out std_logic_vector (127 downto 0); enable : in std_logic_vector (15 downto 0); write : in std_logic_vector (15 downto 0); - testin : in std_logic_vector (3 downto 0) := "0000"); + testin : in std_logic_vector (TESTIN_WIDTH-1 downto 0) := testin_none); end component; component syncram156bw @@ -507,7 +565,7 @@ constant dci : integer := 5; dataout : out std_logic_vector (155 downto 0); enable : in std_logic_vector (15 downto 0); write : in std_logic_vector (15 downto 0); - testin : in std_logic_vector (3 downto 0) := "0000"); + testin : in std_logic_vector (TESTIN_WIDTH-1 downto 0) := testin_none); end component; component syncram256bw is @@ -519,7 +577,7 @@ constant dci : integer := 5; dataout : out std_logic_vector (255 downto 0); enable : in std_logic_vector (31 downto 0); write : in std_logic_vector (31 downto 0); - testin : in std_logic_vector (3 downto 0) := "0000"); + testin : in std_logic_vector (TESTIN_WIDTH-1 downto 0) := testin_none); end component; component syncrambw @@ -532,7 +590,7 @@ constant dci : integer := 5; dataout : out std_logic_vector (dbits-1 downto 0); enable : in std_logic_vector (dbits/8-1 downto 0); write : in std_logic_vector (dbits/8-1 downto 0); - testin : in std_logic_vector (3 downto 0) := "0000"); + testin : in std_logic_vector (TESTIN_WIDTH-1 downto 0) := testin_none); end component; component syncram_2pbw @@ -548,7 +606,7 @@ constant dci : integer := 5; write : in std_logic_vector((dbits/8-1) downto 0); waddress : in std_logic_vector((abits-1) downto 0); datain : in std_logic_vector((dbits-1) downto 0); - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end component; --------------------------------------------------------------------------- @@ -623,7 +681,7 @@ end component; component outpad generic (tech : integer := 0; level : integer := 0; slew : integer := 0; voltage : integer := x33v; strength : integer := 12); - port (pad : out std_ulogic; i : in std_ulogic; + port (pad : out std_ulogic; i : in std_ulogic; cfgi : in std_logic_vector(19 downto 0) := "00000000000000000000"); end component; @@ -722,7 +780,7 @@ end component; component clkpad generic (tech : integer := 0; level : integer := 0; - voltage : integer := x33v; arch : integer := 0; + voltage : integer := x33v; arch : integer := 0; hf : integer := 0; filter : integer := 0); port (pad : in std_ulogic; o : out std_ulogic; rstn : std_ulogic := '1'; lock : out std_ulogic); end component; @@ -782,7 +840,7 @@ component outpad_ds end component; component outpad_dsv - generic (tech : integer := 0; level : integer := lvds; + generic (tech : integer := 0; level : integer := lvds; voltage : integer := x33v; width : integer := 1; slew : integer := 0); port ( padp : out std_logic_vector(width-1 downto 0); @@ -977,7 +1035,8 @@ component tap part : integer range 0 to 65535 := 0; ver : integer range 0 to 15 := 0; trsten : integer range 0 to 1 := 1; - scantest : integer := 0); + scantest : integer := 0; + oepol : integer := 1); port ( trst : in std_ulogic; tck : in std_ulogic; @@ -998,13 +1057,15 @@ component tap tapi_tdo2 : in std_ulogic; testen : in std_ulogic := '0'; testrst : in std_ulogic := '1'; + testoen : in std_ulogic := '0'; tdoen : out std_ulogic ); end component; component scanregi generic ( - tech : integer := 0 + tech : integer := 0; + intesten: integer := 1 ); port ( pad : in std_ulogic; @@ -1028,7 +1089,7 @@ component scanrego pad : out std_ulogic; core : in std_ulogic; samp : in std_ulogic; -- normally same as core unless outpad has feedback - tck : in std_ulogic; + tck : in std_ulogic; tdi : in std_ulogic; tdo : out std_ulogic; bsshft : in std_ulogic; @@ -1050,7 +1111,7 @@ component scanregto -- 2 scan registers: tdo<---output<--outputen<--tdi samp : in std_ulogic; -- normally same as core unless outpad has feedback coreo : in std_ulogic; coreoen : in std_ulogic; - tck : in std_ulogic; + tck : in std_ulogic; tdi : in std_ulogic; tdo : out std_ulogic; bsshft : in std_ulogic; @@ -1065,7 +1126,8 @@ component scanregio -- 3 scan registers: tdo<--input<--output<--outputen<--tdi generic ( tech : integer := 0; hzsup: integer range 0 to 1 := 1; - oepol: integer range 0 to 1 := 1 + oepol: integer range 0 to 1 := 1; + intesten: integer range 0 to 1 := 1 ); port ( pado : out std_ulogic; @@ -1086,7 +1148,7 @@ component scanregio -- 3 scan registers: tdo<--input<--output<--outputen<--tdi bshighz : in std_ulogic -- tri-state output ); end component; - + --------------------------------------------------------------------------- -- DDR registers and PHY --------------------------------------------------------------------------- @@ -1120,7 +1182,8 @@ component ddrphy rstdelay : integer := 200; dbits : integer := 16; clk_mul : integer := 2 ; clk_div : integer := 2; rskew : integer :=0; mobile : integer := 0; - abits: integer := 14; nclk: integer := 3; ncs: integer := 2); + abits: integer := 14; nclk: integer := 3; ncs: integer := 2; + scantest : integer := 0; phyiconf : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -1158,15 +1221,20 @@ component ddrphy cke : in std_logic_vector(1 downto 0); ck : in std_logic_vector(2 downto 0); moben : in std_logic; - dqvalid : out std_ulogic); + dqvalid : out std_ulogic; + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end component; component ddrphy_wo_pads - generic (tech : integer := virtex2; MHz : integer := 100; - rstdelay : integer := 200; dbits : integer := 16; + generic (tech : integer := virtex2; MHz : integer := 100; + rstdelay : integer := 200; dbits : integer := 16; clk_mul : integer := 2; clk_div : integer := 2; rskew : integer := 0; mobile: integer := 0; - abits : integer := 14; nclk: integer := 3; ncs: integer := 2); + abits : integer := 14; nclk: integer := 3; ncs: integer := 2; + scantest : integer := 0; phyiconf : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -1208,9 +1276,12 @@ component ddrphy_wo_pads csn : in std_logic_vector(ncs-1 downto 0); cke : in std_logic_vector(ncs-1 downto 0); ck : in std_logic_vector(2 downto 0); - moben : in std_logic; - dqvalid : out std_ulogic - ); + moben : in std_logic; + dqvalid : out std_ulogic; + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end component; component ddr2phy @@ -1222,11 +1293,12 @@ component ddr2phy ddelayb3 : integer := 0; ddelayb4 : integer := 0; ddelayb5 : integer := 0; ddelayb6 : integer := 0; ddelayb7 : integer := 0; ddelayb8 : integer := 0; - ddelayb9 : integer := 0; ddelayb10: integer := 0; ddelayb11: integer := 0; + ddelayb9 : integer := 0; ddelayb10: integer := 0; ddelayb11: integer := 0; numidelctrl : integer := 4; norefclk : integer := 0; rskew : integer := 0; eightbanks : integer range 0 to 1 := 0; dqsse : integer range 0 to 1 := 0; - abits : integer := 14; nclk: integer := 3; ncs: integer := 2; - ctrl2en: integer := 0; resync: integer := 0; custombits: integer := 8; extraio: integer := 0); + abits : integer := 14; nclk: integer := 3; ncs: integer := 2; + ctrl2en: integer := 0; resync: integer := 0; custombits: integer := 8; extraio: integer := 0; + scantest : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -1281,29 +1353,33 @@ component ddr2phy customclk : in std_ulogic; customdin : in std_logic_vector(custombits-1 downto 0); customdout : out std_logic_vector(custombits-1 downto 0); - + -- Copy of control signals for 2nd DIMM ddr_web2 : out std_ulogic; -- ddr write enable ddr_rasb2 : out std_ulogic; -- ddr ras ddr_casb2 : out std_ulogic; -- ddr cas ddr_ad2 : out std_logic_vector (abits-1 downto 0); -- ddr address - ddr_ba2 : out std_logic_vector (1+eightbanks downto 0) -- ddr bank address - ); + ddr_ba2 : out std_logic_vector (1+eightbanks downto 0); -- ddr bank address + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end component; component ddr2phy_wo_pads - generic (tech : integer := virtex5; MHz : integer := 100; - rstdelay : integer := 200; dbits : integer := 16; + generic (tech : integer := virtex5; MHz : integer := 100; + rstdelay : integer := 200; dbits : integer := 16; clk_mul : integer := 2; clk_div : integer := 2; ddelayb0 : integer := 0; ddelayb1 : integer := 0; ddelayb2 : integer := 0; ddelayb3 : integer := 0; ddelayb4 : integer := 0; ddelayb5 : integer := 0; ddelayb6 : integer := 0; ddelayb7 : integer := 0; ddelayb8: integer := 0; - ddelayb9: integer := 0; ddelayb10: integer := 0; ddelayb11: integer := 0; + ddelayb9: integer := 0; ddelayb10: integer := 0; ddelayb11: integer := 0; numidelctrl : integer := 4; norefclk : integer := 0; rskew : integer := 0; eightbanks : integer range 0 to 1 := 0; dqsse : integer range 0 to 1 := 0; abits : integer := 14; nclk: integer := 3; ncs: integer := 2; - resync : integer := 0; custombits: integer := 8); + resync : integer := 0; custombits: integer := 8; scantest: integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -1360,12 +1436,15 @@ component ddr2phy_wo_pads dqin_valid : out std_ulogic; customclk : in std_ulogic; customdin : in std_logic_vector(custombits-1 downto 0); - customdout : out std_logic_vector(custombits-1 downto 0) - ); + customdout : out std_logic_vector(custombits-1 downto 0); + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end component; component ddr2pads is - generic (tech: integer := virtex5; + generic (tech: integer := virtex5; dbits: integer := 16; eightbanks: integer := 0; dqsse: integer range 0 to 1 := 0; @@ -1396,8 +1475,8 @@ component ddr2pads is ddr_rasb2 : out std_ulogic; -- ddr ras ddr_casb2 : out std_ulogic; -- ddr cas ddr_ad2 : out std_logic_vector (abits-1 downto 0); -- ddr address - ddr_ba2 : out std_logic_vector (1+eightbanks downto 0); -- ddr bank address - + ddr_ba2 : out std_logic_vector (1+eightbanks downto 0); -- ddr bank address + lddr_clk : in std_logic_vector(nclk-1 downto 0); lddr_clkb : in std_logic_vector(nclk-1 downto 0); lddr_clk_fb_out : in std_logic; @@ -1421,7 +1500,7 @@ component ddr2pads is end component; component ddrpads is - generic (tech: integer := virtex5; + generic (tech: integer := virtex5; dbits: integer := 16; abits: integer := 14; nclk: integer := 3; @@ -1448,8 +1527,8 @@ component ddrpads is ddr_rasb2 : out std_ulogic; -- ddr ras ddr_casb2 : out std_ulogic; -- ddr cas ddr_ad2 : out std_logic_vector (abits-1 downto 0); -- ddr address - ddr_ba2 : out std_logic_vector (1 downto 0); -- ddr bank address - + ddr_ba2 : out std_logic_vector (1 downto 0); -- ddr bank address + lddr_clk : in std_logic_vector(nclk-1 downto 0); lddr_clkb : in std_logic_vector(nclk-1 downto 0); lddr_clk_fb_out : in std_logic; @@ -1488,9 +1567,9 @@ component ddrphy_datapath is clk270: in std_ulogic; clkresync: in std_ulogic; - ddr_clk: out std_logic_vector(nclk-1 downto 0); - ddr_clkb: out std_logic_vector(nclk-1 downto 0); - + ddr_clk: out std_logic_vector(nclk-1 downto 0); + ddr_clkb: out std_logic_vector(nclk-1 downto 0); + ddr_dq_in: in std_logic_vector(dbits-1 downto 0); ddr_dq_out: out std_logic_vector(dbits-1 downto 0); ddr_dq_oen: out std_logic_vector(dbits-1 downto 0); @@ -1525,7 +1604,7 @@ component ddrphy_datapath is dqs_en : in std_ulogic; dqs_oen : in std_ulogic; - + ddrclk_en : in std_logic_vector(nclk-1 downto 0) ); end component; @@ -1630,7 +1709,7 @@ end component; component grmux2 is generic( tech : integer := inferred; imp : integer := 0); port( ip0, ip1, sel : in std_logic; op : out std_ulogic); end component; component grmux2v is generic( tech : integer := inferred; bits : integer := 2; imp : integer := 0); - port( ip0, ip1 : in std_logic_vector(bits-1 downto 0); + port( ip0, ip1 : in std_logic_vector(bits-1 downto 0); sel : in std_logic; op : out std_logic_vector(bits-1 downto 0)); end component; component grdff is generic( tech : integer := inferred; imp : integer := 0); @@ -1641,19 +1720,19 @@ component grand12 is generic( tech : integer := inferred; imp : integer := 0); port( i0, i1 : in std_ulogic; q : out std_ulogic); end component; component techmult - generic ( + generic ( tech : integer := 0; arch : integer := 0; a_width : positive := 2; -- multiplier word width b_width : positive := 2; -- multiplicand word width num_stages : positive := 2; -- number of pipeline stages stall_mode : natural range 0 to 1 := 1 -- '0': non-stallable; '1': stallable - ); - port(a : in std_logic_vector(a_width-1 downto 0); + ); + port(a : in std_logic_vector(a_width-1 downto 0); b : in std_logic_vector(b_width-1 downto 0); - clk : in std_logic; - en : in std_logic; - sign : in std_logic; + clk : in std_logic; + en : in std_logic; + sign : in std_logic; product : out std_logic_vector(a_width+b_width-1 downto 0)); end component; @@ -1663,7 +1742,7 @@ end component; component sdram_phy generic ( - tech : integer := spartan3; + tech : integer := spartan3; oepol : integer := 0; level : integer := 0; voltage : integer := x33v; @@ -1686,7 +1765,7 @@ component sdram_phy laddr : in std_logic_vector(aw-1 downto 0); ldq_din : out std_logic_vector(dw-1 downto 0); ldq_dout : in std_logic_vector(dw-1 downto 0); - ldq_oen : in std_logic; + ldq_oen : in std_logic_vector(dw-1 downto 0); lcke : in std_logic_vector(ncs-1 downto 0); lsn : in std_logic_vector(ncs-1 downto 0); lwen : in std_ulogic; diff --git a/lib/techmap/gencomp/netcomp.vhd b/lib/techmap/gencomp/netcomp.vhd index 1b2878d6..6556e37d 100644 --- a/lib/techmap/gencomp/netcomp.vhd +++ b/lib/techmap/gencomp/netcomp.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -61,7 +61,9 @@ component grusbhc_net is memsel : integer := 0; syncprst : integer range 0 to 1 := 0; sysfreq : integer := 65000; - pcidev : integer range 0 to 1 := 0); + pcidev : integer range 0 to 1 := 0; + debug : integer := 0; + debug_abits : integer := 12); port ( clk : in std_ulogic; uclk : in std_ulogic; @@ -80,7 +82,6 @@ component grusbhc_net is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -114,7 +115,6 @@ component grusbhc_net is uhc_ahbso_hresp : out std_logic_vector((n_cc*2)*uhcgen downto 1*uhcgen); uhc_ahbso_hrdata : out std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); uhc_ahbso_hsplit : out std_logic_vector((n_cc*16)*uhcgen downto 1*uhcgen); - uhc_ahbso_hcache : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbso_hirq : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((nports*2)-1) downto 0); @@ -195,7 +195,13 @@ component grusbhc_net is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end component; component grspwc_net @@ -204,13 +210,15 @@ component grspwc_net sysfreq : integer := 40000; usegen : integer range 0 to 1 := 1; nsync : integer range 1 to 2 := 1; - rmap : integer range 0 to 1 := 0; + rmap : integer range 0 to 2 := 0; rmapcrc : integer range 0 to 1 := 0; fifosize1 : integer range 4 to 32 := 32; fifosize2 : integer range 16 to 64 := 64; rxunaligned : integer range 0 to 1 := 0; rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0 + scantest : integer range 0 to 1 := 0; + nodeaddr : integer range 0 to 255 := 254; + destkey : integer range 0 to 255 := 0 ); port( rst : in std_ulogic; @@ -298,7 +306,7 @@ end component; component grspwc2_net is generic( - rmap : integer range 0 to 1 := 0; + rmap : integer range 0 to 2 := 0; rmapcrc : integer range 0 to 1 := 0; fifosize1 : integer range 4 to 32 := 32; fifosize2 : integer range 16 to 64 := 64; @@ -310,7 +318,9 @@ component grspwc2_net is tech : integer; input_type : integer range 0 to 4 := 0; output_type : integer range 0 to 2 := 0; - rxtx_sameclk : integer range 0 to 1 := 0 + rxtx_sameclk : integer range 0 to 1 := 0; + nodeaddr : integer range 0 to 255 := 254; + destkey : integer range 0 to 255 := 0 ); port( rst : in std_ulogic; @@ -364,6 +374,7 @@ component grspwc2_net is timerrstval : in std_logic_vector(11 downto 0); --rmapen rmapen : in std_ulogic; + rmapnodeaddr : in std_logic_vector(7 downto 0); --rx ahb fifo rxrenable : out std_ulogic; rxraddress : out std_logic_vector(4 downto 0); @@ -782,14 +793,12 @@ component ssrctrl_net n_ahbsi_hmaster: in Std_Logic_Vector(3 downto 0); n_ahbsi_hmastlock:in Std_Logic; n_ahbsi_hmbsel: in Std_Logic_Vector(0 to 3); - n_ahbsi_hcache: in Std_Logic; n_ahbsi_hirq: in Std_Logic_Vector(31 downto 0); n_ahbso_hready: out Std_Logic; n_ahbso_hresp: out Std_Logic_Vector(1 downto 0); n_ahbso_hrdata: out Std_Logic_Vector(31 downto 0); n_ahbso_hsplit: out Std_Logic_Vector(15 downto 0); - n_ahbso_hcache: out Std_Logic; n_ahbso_hirq: out Std_Logic_Vector(31 downto 0); n_apbi_psel: in Std_Logic_Vector(0 to 15); @@ -1102,7 +1111,11 @@ end component; acntbits : integer range 1 to 32 := 32; aslvsel : integer range 0 to 1 := 0; twen : integer range 0 to 1 := 1; - maxwlen : integer range 0 to 15 := 0); + maxwlen : integer range 0 to 15 := 0; + automask0 : integer := 0; + automask1 : integer := 0; + automask2 : integer := 0; + automask3 : integer := 0); port ( rstn : in std_ulogic; clk : in std_ulogic; @@ -1122,6 +1135,7 @@ end component; spii_sck : in std_ulogic; spii_spisel : in std_ulogic; spii_astart : in std_ulogic; + spii_cstart : in std_ulogic; spio_miso : out std_ulogic; spio_misooen : out std_ulogic; spio_mosi : out std_ulogic; @@ -1130,6 +1144,7 @@ end component; spio_sckoen : out std_ulogic; spio_enable : out std_ulogic; spio_astart : out std_ulogic; + spio_aready : out std_ulogic; slvsel : out std_logic_vector((slvselsz-1) downto 0)); end component; @@ -1188,6 +1203,7 @@ end component; port ( clk : in std_ulogic; gclk : in std_ulogic; + hclken : in std_ulogic; rstn : in std_ulogic; ahbix : in ahb_mst_in_type; ahbox : out ahb_mst_out_type; @@ -1204,6 +1220,7 @@ end component; irqo_irl: out std_logic_vector(3 downto 0); irqo_pwd: out std_ulogic; irqo_fpen: out std_ulogic; + irqo_idle: out std_ulogic; dbgi_dsuen: in std_ulogic; -- DSU enable dbgi_denable: in std_ulogic; -- diagnostic register access enable diff --git a/lib/techmap/gencomp/tech.in b/lib/techmap/gencomp/tech.in index e3935886..edea0a48 100644 --- a/lib/techmap/gencomp/tech.in +++ b/lib/techmap/gencomp/tech.in @@ -5,11 +5,37 @@ Altera-StratixIII CONFIG_SYN_STRATIXIII \ Altera-CycloneIII CONFIG_SYN_CYCLONEIII \ Altera-Others CONFIG_SYN_ALTERA \ + Actel-Axcelerator CONFIG_SYN_AXCEL \ + Actel-Axcelerator-DSP CONFIG_SYN_AXDSP \ + Actel-Proasic CONFIG_SYN_PROASIC \ + Actel-ProasicPlus CONFIG_SYN_PROASICPLUS \ + Actel-Proasic3 CONFIG_SYN_PROASIC3 \ + Actel-Proasic3E CONFIG_SYN_PROASIC3E \ + Actel-Proasic3L CONFIG_SYN_PROASIC3L \ + Actel-IGLOO/p/L CONFIG_SYN_IGLOO \ + Actel-Fusion CONFIG_SYN_FUSION\ + Aeroflex-UT025CRH CONFIG_SYN_UT025CRH \ + Aeroflex-UT130HBD CONFIG_SYN_UT130HBD \ + Aeroflex-UT90NHBD CONFIG_SYN_UT90NHBD \ Atmel-ATC18 CONFIG_SYN_ATC18 \ + Atmel-ATC18RHA CONFIG_SYN_ATC18RHA \ + IBM-CMOS9SF CONFIG_SYN_CMOS9SF \ + Custom1 CONFIG_SYN_CUSTOM1 \ + eASIC90 CONFIG_SYN_EASIC90 \ + eASIC45 CONFIG_SYN_EASIC45 \ + IHP25 CONFIG_SYN_IHP25 \ + IHP25RH CONFIG_SYN_IHP25RH \ Lattice-EC/ECP/XP CONFIG_SYN_LATTICE \ Quicklogic-Eclipse CONFIG_SYN_ECLIPSE \ + Peregrine CONFIG_SYN_PEREGRINE \ + RH-LIB18T CONFIG_SYN_RH_LIB18T \ + RH-UMC CONFIG_SYN_RHUMC \ + SMIC130 CONFIG_SYN_SMIC13 \ + TM65Gplus CONFIG_SYN_TM65GPLUS \ + TSMC90 CONFIG_SYN_TSMC90 \ UMC180 CONFIG_SYN_UMC \ - Xilinx-Spartan2 CONFIG_SYN_SPARTAN2 \ + Xilinx-Artix7 CONFIG_SYN_ARTIX7 \ + Xilinx-Kintex7 CONFIG_SYN_KINTEX7 \ Xilinx-Spartan3 CONFIG_SYN_SPARTAN3 \ Xilinx-Spartan3E CONFIG_SYN_SPARTAN3E \ Xilinx-Spartan6 CONFIG_SYN_SPARTAN6 \ @@ -18,7 +44,9 @@ Xilinx-Virtex2 CONFIG_SYN_VIRTEX2 \ Xilinx-Virtex4 CONFIG_SYN_VIRTEX4 \ Xilinx-Virtex5 CONFIG_SYN_VIRTEX5 \ - Xilinx-Virtex6 CONFIG_SYN_VIRTEX6 " Inferred + Xilinx-Virtex6 CONFIG_SYN_VIRTEX6 \ + Xilinx-Virtex7 CONFIG_SYN_VIRTEX7 \ + Xilinx-Zynq7000 CONFIG_SYN_ZYNQ7000" Inferred if [ "$CONFIG_SYN_INFERRED" = "y" -o "$CONFIG_SYN_CUSTOM1" = "y" \ -o "$CONFIG_SYN_ATC18" = "y" -o "$CONFIG_SYN_TSMC90" = "y" \ -o "$CONFIG_SYN_UMC" = "y" \ @@ -26,6 +54,9 @@ choice 'Memory Library ' \ "Inferred CONFIG_MEM_INFERRED \ UMC18 CONFIG_MEM_UMC \ + RH-UMC CONFIG_MEM_RHUMC \ + Artisan CONFIG_MEM_ARTISAN \ + Custom1 CONFIG_MEM_CUSTOM1 \ Virage CONFIG_MEM_VIRAGE \ Virage-TSMC90 CONFIG_MEM_VIRAGE90" Inferred fi diff --git a/lib/techmap/gencomp/tech.in.com b/lib/techmap/gencomp/tech.in.com deleted file mode 100644 index 27b553dc..00000000 --- a/lib/techmap/gencomp/tech.in.com +++ /dev/null @@ -1,34 +0,0 @@ - choice 'Target technology ' \ - "Inferred CONFIG_SYN_INFERRED \ - Altera-all CONFIG_SYN_ALTERA \ - Actel-Axcelerator CONFIG_SYN_AXCEL \ - Actel-Axcelerator-DSP CONFIG_SYN_AXDSP \ - Actel-Proasic CONFIG_SYN_PROASIC \ - Actel-ProasicPlus CONFIG_SYN_PROASICPLUS \ - Actel-Proasic3/E/L CONFIG_SYN_PROASIC3 \ - Actel-IGLOO/p/L CONFIG_SYN_IGLOO \ - Atmel-ATC18 CONFIG_SYN_ATC18 \ - Custom1 CONFIG_SYN_CUSTOM1 \ - Lattice-EC/ECP/XP CONFIG_SYN_LATTICE \ - Xilinx-Spartan2 CONFIG_SYN_SPARTAN2 \ - Xilinx-Spartan3 CONFIG_SYN_SPARTAN3 \ - Xilinx-Spartan3E CONFIG_SYN_SPARTAN3E \ - Xilinx-Virtex CONFIG_SYN_VIRTEX \ - Xilinx-VirtexE CONFIG_SYN_VIRTEXE \ - Xilinx-Virtex2 CONFIG_SYN_VIRTEX2 \ - Xilinx-Virtex4 CONFIG_SYN_VIRTEX4 \ - Xilinx-Virtex5 CONFIG_SYN_VIRTEX5" Inferred - if [ "$CONFIG_SYN_INFERRED" = "y" -o "$CONFIG_SYN_CUSTOM1" = "y" \ - -o "$CONFIG_SYN_ATC18" = "y" \ - -o "$CONFIG_SYN_RHUMC" = "y" -o "$CONFIG_SYN_ARTISAN" = "y"]; then - choice 'Memory Library ' \ - "Inferred CONFIG_MEM_INFERRED \ - Artisan CONFIG_MEM_ARTISAN \ - Custom1 CONFIG_MEM_CUSTOM1 \ - Virage CONFIG_MEM_VIRAGE" Inferred - fi - if [ "$CONFIG_SYN_INFERRED" != "y" ]; then - bool 'Infer RAM' CONFIG_SYN_INFER_RAM - bool 'Infer pads' CONFIG_SYN_INFER_PADS - fi - bool 'Disable asynchronous reset' CONFIG_SYN_NO_ASYNC diff --git a/lib/techmap/gencomp/tech.in.fpga b/lib/techmap/gencomp/tech.in.fpga deleted file mode 100644 index a70f9e2f..00000000 --- a/lib/techmap/gencomp/tech.in.fpga +++ /dev/null @@ -1,31 +0,0 @@ - choice 'Target technology ' \ - "Inferred CONFIG_SYN_INFERRED \ - Altera-all CONFIG_SYN_ALTERA \ - Altera-Stratix CONFIG_SYN_STRATIX \ - Altera-StratixII CONFIG_SYN_STRATIXII \ - Actel-Axcelerator CONFIG_SYN_AXCEL \ - Actel-Axcelerator-DSP CONFIG_SYN_AXDSP \ - Actel-Proasic CONFIG_SYN_PROASIC \ - Actel-ProasicPlus CONFIG_SYN_PROASICPLUS \ - Actel-Proasic3/E/L CONFIG_SYN_PROASIC3 \ - Actel-IGLOO/p/L CONFIG_SYN_IGLOO \ - Custom1 CONFIG_SYN_CUSTOM1 \ - Lattice-EC/ECP/XP CONFIG_SYN_LATTICE \ - Xilinx-Spartan2 CONFIG_SYN_SPARTAN2 \ - Xilinx-Spartan3 CONFIG_SYN_SPARTAN3 \ - Xilinx-Spartan3E CONFIG_SYN_SPARTAN3E \ - Xilinx-Virtex CONFIG_SYN_VIRTEX \ - Xilinx-VirtexE CONFIG_SYN_VIRTEXE \ - Xilinx-Virtex2 CONFIG_SYN_VIRTEX2 \ - Xilinx-Virtex4 CONFIG_SYN_VIRTEX4 \ - Xilinx-Virtex5 CONFIG_SYN_VIRTEX5" Inferred - if [ "$CONFIG_SYN_INFERRED" = "y" -o "$CONFIG_SYN_CUSTOM1" = "y" ]; then - choice 'Memory Library ' \ - "Inferred CONFIG_MEM_INFERRED \ - Custom1 CONFIG_MEM_CUSTOM1" Inferred - fi - if [ "$CONFIG_SYN_INFERRED" != "y" ]; then - bool 'Infer RAM' CONFIG_SYN_INFER_RAM - bool 'Infer pads' CONFIG_SYN_INFER_PADS - fi - bool 'Disable asynchronous reset' CONFIG_SYN_NO_ASYNC diff --git a/lib/techmap/gencomp/tech.in.h b/lib/techmap/gencomp/tech.in.h index 344a4fd7..0b711dc4 100644 --- a/lib/techmap/gencomp/tech.in.h +++ b/lib/techmap/gencomp/tech.in.h @@ -72,6 +72,18 @@ #define CONFIG_SYN_TECH virtex5 #elif defined CONFIG_SYN_VIRTEX6 #define CONFIG_SYN_TECH virtex6 +#elif defined CONFIG_SYN_VIRTEX7 +#define CONFIG_SYN_TECH virtex7 +#elif defined CONFIG_SYN_KINTEX7 +#define CONFIG_SYN_TECH kintex7 +#elif defined CONFIG_SYN_ARTIX7 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 +#elif defined CONFIG_SYN_ARTIX77 +#define CONFIG_SYN_TECH artix7 +#elif defined CONFIG_SYN_ZYNQ7000 +#define CONFIG_SYN_TECH zynq7000 #elif defined CONFIG_SYN_RH_LIB18T #define CONFIG_SYN_TECH rhlib18t #elif defined CONFIG_SYN_SMIC13 diff --git a/lib/techmap/gencomp/tech.in.help b/lib/techmap/gencomp/tech.in.help index af0ebb31..a6cc41c2 100644 --- a/lib/techmap/gencomp/tech.in.help +++ b/lib/techmap/gencomp/tech.in.help @@ -19,11 +19,15 @@ CONFIG_SYN_INFERRED - Lattice : EC/ECP/XP FPGAs - Quicklogic : Eclipse/E/II FPGAs - UMC-0.18 : UMC 0.18 um CMOS with Virtual Silicon libraries - - Xilinx-Spartan/2/3: Xilinx Spartan/2/3 libraries + - Xilinx-Spartan/2/3/6: Xilinx Spartan/2/3/6 libraries - Xilinx-Spartan3E: Xilinx Spartan3E libraries - Xilinx-Virtex/E: Xilinx Virtex/E libraries - - Xilinx-Virtex2/4/5: Xilinx Virtex2/4/5 libraries + - Xilinx-Virtex2/4/5/6/7: Xilinx Virtex2/4/5/6/7 libraries + Note: Level of technology support depends on type of GRLIB + distribution. A technology may be present in this list while the + tech support files are missing from the GRLIB distribution. + Actel support is only available in commercial and FT distributions. Ram library CONFIG_MEM_VIRAGE diff --git a/lib/techmap/inferred/ddr_inferred.vhd b/lib/techmap/inferred/ddr_inferred.vhd index 76377541..5db3c8e8 100644 --- a/lib/techmap/inferred/ddr_inferred.vhd +++ b/lib/techmap/inferred/ddr_inferred.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/inferred/ddr_phy_inferred.vhd b/lib/techmap/inferred/ddr_phy_inferred.vhd index 60927c17..1a8253cf 100644 --- a/lib/techmap/inferred/ddr_phy_inferred.vhd +++ b/lib/techmap/inferred/ddr_phy_inferred.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -279,7 +279,8 @@ entity generic_ddr2_phy_wo_pads is dbits : integer := 16; clk_mul : integer := 2 ; clk_div : integer := 2; rskew : integer := 0; eightbanks: integer := 0; abits: integer := 14; - cben: integer := 0; chkbits: integer := 8); + cben: integer := 0; chkbits: integer := 8; + nclk: integer := 3; ncs: integer := 2); port( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -287,12 +288,12 @@ entity generic_ddr2_phy_wo_pads is clk0r : in std_ulogic; -- system clock returned lock : out std_ulogic; -- DCM locked - ddr_clk : out std_logic_vector(2 downto 0); - ddr_clkb : out std_logic_vector(2 downto 0); + ddr_clk : out std_logic_vector(nclk-1 downto 0); + ddr_clkb : out std_logic_vector(nclk-1 downto 0); ddr_clk_fb_out : out std_logic; ddr_clk_fb : in std_logic; - ddr_cke : out std_logic_vector(1 downto 0); - ddr_csb : out std_logic_vector(1 downto 0); + ddr_cke : out std_logic_vector(ncs-1 downto 0); + ddr_csb : out std_logic_vector(ncs-1 downto 0); ddr_web : out std_ulogic; -- ddr write enable ddr_rasb : out std_ulogic; -- ddr ras ddr_casb : out std_ulogic; -- ddr cas @@ -305,7 +306,7 @@ entity generic_ddr2_phy_wo_pads is ddr_dq_in : in std_logic_vector (dbits-1 downto 0); -- ddr data ddr_dq_out : out std_logic_vector (dbits-1 downto 0); -- ddr data ddr_dq_oen : out std_logic_vector (dbits-1 downto 0); -- ddr data - ddr_odt : out std_logic_vector(1 downto 0); -- ddr odt + ddr_odt : out std_logic_vector(ncs-1 downto 0); -- ddr odt addr : in std_logic_vector (abits-1 downto 0); -- data mask ba : in std_logic_vector (2 downto 0); -- data mask @@ -318,8 +319,8 @@ entity generic_ddr2_phy_wo_pads is rasn : in std_ulogic; casn : in std_ulogic; wen : in std_ulogic; - csn : in std_logic_vector(1 downto 0); - cke : in std_logic_vector(1 downto 0); + csn : in std_logic_vector(ncs-1 downto 0); + cke : in std_logic_vector(ncs-1 downto 0); ck : in std_logic_vector(2 downto 0); odt : in std_logic_vector(1 downto 0) ); @@ -443,7 +444,7 @@ begin dp0: ddrphy_datapath generic map ( regtech => inferred, dbits => dbits, abits => abits, - bankbits => 2+EIGHTBANKS, ncs => 2, nclk => 3, + bankbits => 2+EIGHTBANKS, ncs => ncs, nclk => nclk, resync => 0 ) port map ( clk0 => clk0r, @@ -483,7 +484,7 @@ begin odt => odt, dqs_en => dqs, dqs_oen => dqsoen, - ddrclk_en => ck + ddrclk_en => ck(nclk-1 downto 0) ); end; diff --git a/lib/techmap/inferred/ddrphy_datapath.vhd b/lib/techmap/inferred/ddrphy_datapath.vhd index f0a773fd..811d45f5 100644 --- a/lib/techmap/inferred/ddrphy_datapath.vhd +++ b/lib/techmap/inferred/ddrphy_datapath.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/inferred/memory_inferred.vhd b/lib/techmap/inferred/memory_inferred.vhd index c309260e..a084838d 100644 --- a/lib/techmap/inferred/memory_inferred.vhd +++ b/lib/techmap/inferred/memory_inferred.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -284,7 +284,7 @@ use grlib.stdlib.all; entity generic_regfile_4p is generic (tech : integer := 0; abits : integer := 6; dbits : integer := 32; - wrfst : integer := 0; numregs : integer := 40); + wrfst : integer := 0; numregs : integer := 40; g0addr: integer := 0); port ( wclk : in std_ulogic; waddr : in std_logic_vector((abits -1) downto 0); @@ -340,6 +340,9 @@ begin if wr = '1' then memarr(conv_integer(wa)) <= din; end if; + if g0addr > 0 and g0addr < numregs then + memarr(g0addr) <= (others => '0'); + end if; end if; end process; diff --git a/lib/techmap/inferred/mul_inferred.vhd b/lib/techmap/inferred/mul_inferred.vhd index 24e53146..23a4bf68 100644 --- a/lib/techmap/inferred/mul_inferred.vhd +++ b/lib/techmap/inferred/mul_inferred.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/inferred/sim_pll.vhd b/lib/techmap/inferred/sim_pll.vhd index eaad487e..9987b377 100644 --- a/lib/techmap/inferred/sim_pll.vhd +++ b/lib/techmap/inferred/sim_pll.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/allclkgen.vhd b/lib/techmap/maps/allclkgen.vhd index 42d9308b..99d373cc 100644 --- a/lib/techmap/maps/allclkgen.vhd +++ b/lib/techmap/maps/allclkgen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -108,6 +108,18 @@ component clkgen_virtex5 clk2xu : out std_ulogic); end component; +component clkgen_virtex7 + generic ( + clk_mul : integer := 1; + clk_div : integer := 1; + freq : integer := 25000); + port ( + clkin : in std_logic; + clk : out std_logic; -- main clock + cgi : in clkgen_in_type; + cgo : out clkgen_out_type); +end component; + component clkgen_axcelerator generic ( clk_mul : integer := 1; @@ -312,6 +324,14 @@ component clkmux_ut130hbd ); end component; +component clkmux_ut90nhbd + port( + i0, i1 : in std_ulogic; + sel : in std_ulogic; + o : out std_ulogic + ); +end component; + component clkmux_fusion port( i0, i1 : in std_ulogic; diff --git a/lib/techmap/maps/allddr.vhd b/lib/techmap/maps/allddr.vhd index 6366ea7b..2ec65d9f 100644 --- a/lib/techmap/maps/allddr.vhd +++ b/lib/techmap/maps/allddr.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -256,7 +256,7 @@ end component; component virtex4_ddr_phy generic (MHz : integer := 100; rstdelay : integer := 200; dbits : integer := 16; clk_mul : integer := 2 ; - clk_div : integer := 2; rskew : integer := 0); + clk_div : integer := 2; rskew : integer := 0; phyiconf : integer := 0); port ( rst : in std_ulogic; @@ -830,7 +830,8 @@ component generic_ddr2_phy_wo_pads is generic (MHz : integer := 100; rstdelay : integer := 200; dbits : integer := 16; clk_mul : integer := 2 ; clk_div : integer := 2; rskew : integer := 0; - eightbanks: integer := 0; abits: integer := 14); + eightbanks: integer := 0; abits: integer := 14; + nclk: integer := 3; ncs: integer := 2); port( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -998,7 +999,12 @@ component ut90nhbd_ddr_phy_wo_pads is cke : in std_logic_vector(ncs-1 downto 0); ck : in std_logic_vector(nclk-1 downto 0); moben : in std_ulogic; - dqvalid : out std_ulogic); + dqvalid : out std_ulogic; + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end component; diff --git a/lib/techmap/maps/allmem.vhd b/lib/techmap/maps/allmem.vhd index d91e076b..80245dc2 100644 --- a/lib/techmap/maps/allmem.vhd +++ b/lib/techmap/maps/allmem.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -925,7 +925,7 @@ end component; component generic_regfile_4p generic (tech : integer := 0; abits : integer := 6; dbits : integer := 32; - wrfst : integer := 0; numregs : integer := 40); + wrfst : integer := 0; numregs : integer := 40; g0addr: integer := 0); port ( wclk : in std_ulogic; waddr : in std_logic_vector((abits -1) downto 0); diff --git a/lib/techmap/maps/allmul.vhd b/lib/techmap/maps/allmul.vhd index b15c8574..506712e8 100644 --- a/lib/techmap/maps/allmul.vhd +++ b/lib/techmap/maps/allmul.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/allpads.vhd b/lib/techmap/maps/allpads.vhd index fac10f63..a52dd4af 100644 --- a/lib/techmap/maps/allpads.vhd +++ b/lib/techmap/maps/allpads.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -491,7 +491,8 @@ component unisim_skew_outpad end component; component unisim_clkpad - generic (level : integer := 0; voltage : integer := x33v; arch : integer := 0; hf : integer := 0); + generic (level : integer := 0; voltage : integer := x33v; arch : integer := 0; hf : integer := 0; + tech : integer := 0); port (pad : in std_ulogic; o : out std_ulogic; rstn : std_ulogic := '1'; lock : out std_ulogic); end component; diff --git a/lib/techmap/maps/alltap.vhd b/lib/techmap/maps/alltap.vhd index 79212370..0c04fa3c 100644 --- a/lib/techmap/maps/alltap.vhd +++ b/lib/techmap/maps/alltap.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -37,7 +37,8 @@ component tap_gen part : integer range 0 to 65535 := 0; ver : integer range 0 to 15 := 0; trsten : integer range 0 to 1 := 1; - scantest : integer := 0); + scantest : integer := 0; + oepol : integer := 1); port ( trst : in std_ulogic; tckp : in std_ulogic; @@ -59,6 +60,7 @@ component tap_gen tapo_xsel2 : out std_ulogic; testen : in std_ulogic := '0'; testrst : in std_ulogic := '1'; + testoen : in std_ulogic := '0'; tdoen : out std_ulogic ); end component; @@ -264,9 +266,56 @@ port ( ); end component; +component virtex7_tap +port ( + tapi_tdo1 : in std_ulogic; + tapi_tdo2 : in std_ulogic; + tapo_tck : out std_ulogic; + tapo_tdi : out std_ulogic; + tapo_rst : out std_ulogic; + tapo_capt : out std_ulogic; + tapo_shft : out std_ulogic; + tapo_upd : out std_ulogic; + tapo_xsel1 : out std_ulogic; + tapo_xsel2 : out std_ulogic + ); +end component; + +component kintex7_tap +port ( + tapi_tdo1 : in std_ulogic; + tapi_tdo2 : in std_ulogic; + tapo_tck : out std_ulogic; + tapo_tdi : out std_ulogic; + tapo_rst : out std_ulogic; + tapo_capt : out std_ulogic; + tapo_shft : out std_ulogic; + tapo_upd : out std_ulogic; + tapo_xsel1 : out std_ulogic; + tapo_xsel2 : out std_ulogic + ); +end component; +component zynq_tap +port ( + tapi_tdo1 : in std_ulogic; + tapi_tdo2 : in std_ulogic; + tapo_tck : out std_ulogic; + tapo_tdi : out std_ulogic; + tapo_rst : out std_ulogic; + tapo_capt : out std_ulogic; + tapo_shft : out std_ulogic; + tapo_upd : out std_ulogic; + tapo_xsel1 : out std_ulogic; + tapo_xsel2 : out std_ulogic + ); +end component; + ------------------------------------------------------------------------------- component scanregi_inf + generic ( + intesten : integer := 1 + ); port ( pad : in std_ulogic; core : out std_ulogic; @@ -298,7 +347,8 @@ end component; component scanregio_inf -- 3 scan registers: tdo<--input<--output<--outputen<--tdi generic ( - hzsup : integer range 0 to 1 := 1 + hzsup : integer range 0 to 1 := 1; + intesten: integer := 1 ); port ( pado : out std_ulogic; diff --git a/lib/techmap/maps/clkand.vhd b/lib/techmap/maps/clkand.vhd index a0fdee5a..2a700faa 100644 --- a/lib/techmap/maps/clkand.vhd +++ b/lib/techmap/maps/clkand.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/clkgen.vhd b/lib/techmap/maps/clkgen.vhd index 64160758..6b1da587 100644 --- a/lib/techmap/maps/clkgen.vhd +++ b/lib/techmap/maps/clkgen.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -87,6 +87,11 @@ begin generic map (clk_mul, clk_div, sdramen, noclkfb, pcien, pcidll, pcisysclk, freq, clk2xen, clksel) port map (clkin, pciclkin, clk, clkn, clk2x, sdclk, pciclk, cgi, cgo, clk1xu, clk2xu); end generate; + xc7l : if (tech =virtex7) or (tech =kintex7) or (tech =artix7) or (tech =zynq7000) generate + v : clkgen_virtex7 + generic map (clk_mul, clk_div, freq) + port map (clkin, clk, cgi, cgo); + end generate; xc3s : if (tech = spartan3) or (tech = spartan3e) or (tech = spartan6) generate v : clkgen_spartan3 generic map (clk_mul, clk_div, sdramen, noclkfb, pcien, pcidll, pcisysclk, freq, clk2xen, clksel) diff --git a/lib/techmap/maps/clkmux.vhd b/lib/techmap/maps/clkmux.vhd index ea7e6755..0cb7ef97 100644 --- a/lib/techmap/maps/clkmux.vhd +++ b/lib/techmap/maps/clkmux.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -66,9 +66,12 @@ begin n2x : if tech = easic45 generate mux : clkmux_n2x port map (i0 => i0, i1 => i1, sel => sel, o => o); end generate; + ut90n : if tech = ut90 generate + x0 : clkmux_ut90nhbd port map (i0 => i0, i1 => i1, sel => seli, o => o); + end generate; noxil : if not((is_unisim(tech) = 1) or (tech = rhlib18t) or (tech = ut130) or - (tech = easic45)) generate + (tech = easic45) or (tech = ut90)) generate o <= i0 when seli = '0' else i1; end generate; diff --git a/lib/techmap/maps/clkpad.vhd b/lib/techmap/maps/clkpad.vhd index 18b95d8c..0b3848ae 100644 --- a/lib/techmap/maps/clkpad.vhd +++ b/lib/techmap/maps/clkpad.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -42,7 +42,7 @@ begin o <= to_X01(pad); lock <= '1'; end generate; xcv2 : if (is_unisim(tech) = 1) generate - u0 : unisim_clkpad generic map (level, voltage, arch, hf) port map (pad, o, rstn, lock); + u0 : unisim_clkpad generic map (level, voltage, arch, hf, tech) port map (pad, o, rstn, lock); end generate; axc : if (tech = axcel) or (tech = axdsp) generate u0 : axcel_clkpad generic map (level, voltage, arch) port map (pad, o); lock <= '1'; diff --git a/lib/techmap/maps/clkpad_ds.vhd b/lib/techmap/maps/clkpad_ds.vhd index f8d6ea80..44b0037c 100644 --- a/lib/techmap/maps/clkpad_ds.vhd +++ b/lib/techmap/maps/clkpad_ds.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -47,7 +47,7 @@ begin ; end generate; - xcv : if (tech = virtex2) or (tech = spartan3) generate + xcv : if (tech = virtex2) or (tech = spartan3) or (tech = virtex7) or (tech = kintex7) or (tech =artix7) or (tech =zynq7000) generate u0 : unisim_clkpad_ds generic map (level, voltage) port map (padp, padn, o); end generate; xc4v : if (tech = virtex4) or (tech = spartan3e) or (tech = virtex5) or diff --git a/lib/techmap/maps/cpu_disas_net.vhd b/lib/techmap/maps/cpu_disas_net.vhd index e187f153..0d7af9bb 100644 --- a/lib/techmap/maps/cpu_disas_net.vhd +++ b/lib/techmap/maps/cpu_disas_net.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/ddr_ireg.vhd b/lib/techmap/maps/ddr_ireg.vhd index 56702bcc..5c4c9172 100644 --- a/lib/techmap/maps/ddr_ireg.vhd +++ b/lib/techmap/maps/ddr_ireg.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/ddr_oreg.vhd b/lib/techmap/maps/ddr_oreg.vhd index cd121df3..fd5e469a 100644 --- a/lib/techmap/maps/ddr_oreg.vhd +++ b/lib/techmap/maps/ddr_oreg.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/ddrphy.vhd b/lib/techmap/maps/ddrphy.vhd index c54da037..d0a63d3a 100644 --- a/lib/techmap/maps/ddrphy.vhd +++ b/lib/techmap/maps/ddrphy.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -41,7 +41,8 @@ entity ddrphy is rstdelay : integer := 200; dbits : integer := 16; clk_mul : integer := 2 ; clk_div : integer := 2; rskew : integer :=0; mobile : integer := 0; - abits: integer := 14; nclk: integer := 3; ncs: integer := 2); + abits: integer := 14; nclk: integer := 3; ncs: integer := 2; + scantest: integer := 0; phyiconf : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -80,8 +81,12 @@ entity ddrphy is cke : in std_logic_vector(ncs-1 downto 0); ck : in std_logic_vector(nclk-1 downto 0); moben : in std_logic; - dqvalid : out std_ulogic - ); + dqvalid : out std_ulogic; + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end; architecture rtl of ddrphy is @@ -170,7 +175,8 @@ begin -- pragma translate_off / 200 -- pragma translate_on - , clk_mul => clk_mul, clk_div => clk_div, dbits => dbits, rskew => rskew + , clk_mul => clk_mul, clk_div => clk_div, dbits => dbits, rskew => rskew, + phyiconf => phyiconf ) port map ( rst, clk, clkout, lock, @@ -211,7 +217,7 @@ begin phywop: ddrphy_wo_pads generic map (tech,MHz,rstdelay,dbits,clk_mul,clk_div, - rskew,mobile,abits,nclk,ncs) + rskew,mobile,abits,nclk,ncs,scantest,phyiconf) port map ( rst,clk,clkout,clkoutret,clkread,lock, @@ -222,7 +228,7 @@ begin lddr_dq_in,lddr_dq_out,lddr_dq_oen, addr,ba,dqin,dqout,dm,oen,dqs,dqsoen,rasn,casn,wen,csn,cke,ck, - moben,dqvalid); + moben,dqvalid,testen,testrst,scanen,testoen); pads: ddrpads generic map (tech,dbits,abits,nclk,ncs,0) @@ -271,7 +277,8 @@ entity ddrphy_wo_pads is rstdelay : integer := 200; dbits : integer := 16; clk_mul : integer := 2; clk_div : integer := 2; rskew : integer := 0; mobile: integer := 0; - abits : integer := 14; nclk: integer := 3; ncs: integer := 2); + abits : integer := 14; nclk: integer := 3; ncs: integer := 2; + scantest : integer := 0; phyiconf : integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -314,8 +321,11 @@ entity ddrphy_wo_pads is cke : in std_logic_vector(ncs-1 downto 0); ck : in std_logic_vector(nclk-1 downto 0); moben : in std_logic; - dqvalid : out std_ulogic - ); + dqvalid : out std_ulogic; + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end; architecture rtl of ddrphy_wo_pads is @@ -332,7 +342,7 @@ begin ddr_clk, ddr_clkb, ddr_cke, ddr_csb, ddr_web, ddr_rasb, ddr_casb, ddr_dm, ddr_dqs_in, ddr_dqs_out, ddr_dqs_oen, ddr_ad, ddr_ba, ddr_dq_in, ddr_dq_out, ddr_dq_oen, addr, ba, dqin, dqout, dm, oen, dqs, dqsoen, rasn, casn, wen, csn, cke, ck, - moben, dqvalid + moben, dqvalid, testen, testrst, scanen, testoen ); ddr_clk_fb_out <= '0'; @@ -757,7 +767,8 @@ entity ddr2phy is eightbanks : integer range 0 to 1 := 0; dqsse : integer range 0 to 1 := 0; abits : integer := 14; nclk: integer := 3; ncs: integer := 2; ctrl2en: integer := 0; - resync: integer := 0; custombits: integer := 8; extraio: integer := 0); + resync: integer := 0; custombits: integer := 8; extraio: integer := 0; + scantest: integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -819,8 +830,12 @@ entity ddr2phy is ddr_rasb2 : out std_ulogic; -- ddr ras ddr_casb2 : out std_ulogic; -- ddr cas ddr_ad2 : out std_logic_vector (abits-1 downto 0); -- ddr address - ddr_ba2 : out std_logic_vector (1+eightbanks downto 0) -- ddr bank address - ); + ddr_ba2 : out std_logic_vector (1+eightbanks downto 0); -- ddr bank address + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end; architecture rtl of ddr2phy is @@ -980,7 +995,7 @@ begin ddelayb4,ddelayb5,ddelayb6,ddelayb7, ddelayb8,ddelayb9,ddelayb10,ddelayb11, numidelctrl,norefclk,rskew,eightbanks,dqsse,abits,nclk,ncs, - resync,custombits) + resync,custombits,scantest) port map ( rst,clk,clkref,clkout,clkoutret,clkresync,lock, @@ -992,7 +1007,8 @@ begin addr,ba,dqin,dqout,dm,oen,noen,dqs,dqsoen,rasn,casn,wen,csn,cke, cal_en,cal_inc,cal_pll,cal_rst,odt,oct, - read_pend,regwdata,regwrite,regrdata,dqin_valid,customclk,customdin,customdout); + read_pend,regwdata,regwrite,regrdata,dqin_valid,customclk,customdin,customdout, + testen,testrst,scanen,testoen); pads: ddr2pads generic map (tech,dbits,eightbanks,dqsse,abits,nclk,ncs,ctrl2en) @@ -1056,7 +1072,7 @@ entity ddr2phy_wo_pads is numidelctrl : integer := 4; norefclk : integer := 0; rskew : integer := 0; eightbanks : integer range 0 to 1 := 0; dqsse : integer range 0 to 1 := 0; abits : integer := 14; nclk: integer := 3; ncs: integer := 2; - resync : integer := 0; custombits: integer := 8); + resync : integer := 0; custombits: integer := 8; scantest: integer := 0); port ( rst : in std_ulogic; clk : in std_logic; -- input clock @@ -1113,8 +1129,12 @@ entity ddr2phy_wo_pads is dqin_valid : out std_ulogic; customclk : in std_ulogic; customdin : in std_logic_vector(custombits-1 downto 0); - customdout : out std_logic_vector(custombits-1 downto 0) - ); + customdout : out std_logic_vector(custombits-1 downto 0); + + testen : in std_ulogic; + testrst : in std_ulogic; + scanen : in std_ulogic; + testoen : in std_ulogic); end; architecture rtl of ddr2phy_wo_pads is @@ -1160,7 +1180,7 @@ begin ddr_phy0 : generic_ddr2_phy_wo_pads generic map (MHz => MHz, rstdelay => rstdelay, clk_mul => clk_mul, clk_div => clk_div, dbits => dbits, rskew => rskew, - eightbanks => eightbanks, abits => abits + eightbanks => eightbanks, abits => abits, nclk => nclk, ncs => ncs ) port map ( rst, clk, clkout, clkoutret, lock, diff --git a/lib/techmap/maps/grfpw_net.vhd b/lib/techmap/maps/grfpw_net.vhd index d5c9440f..daaa550a 100644 --- a/lib/techmap/maps/grfpw_net.vhd +++ b/lib/techmap/maps/grfpw_net.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/grgates.vhd b/lib/techmap/maps/grgates.vhd index ec77906d..96d8f72f 100644 --- a/lib/techmap/maps/grgates.vhd +++ b/lib/techmap/maps/grgates.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/grlfpw_net.vhd b/lib/techmap/maps/grlfpw_net.vhd index b2744807..ad6d28d5 100644 --- a/lib/techmap/maps/grlfpw_net.vhd +++ b/lib/techmap/maps/grlfpw_net.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/grpci2_phy_net.vhd b/lib/techmap/maps/grpci2_phy_net.vhd index ee8d895c..db4444a9 100644 --- a/lib/techmap/maps/grpci2_phy_net.vhd +++ b/lib/techmap/maps/grpci2_phy_net.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/grspwc2_net.vhd b/lib/techmap/maps/grspwc2_net.vhd deleted file mode 100644 index 69b87d7a..00000000 --- a/lib/techmap/maps/grspwc2_net.vhd +++ /dev/null @@ -1,1129 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: grspwc2 --- File: grspwc2.vhd --- Author: Marko Isomaki - Gaisler Research --- Description: Provides a link interface to a SpaceWire network --- with an AHB host interface and RMAP support. ------------------------------------------------------------------------------- -library ieee; -use ieee.std_logic_1164.all; -library techmap; -use techmap.gencomp.all; - -entity grspwc2_net is - generic( - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0; - ports : integer range 1 to 2 := 1; - dmachan : integer range 1 to 4 := 1; - tech : integer; - input_type : integer range 0 to 4 := 0; - output_type : integer range 0 to 2 := 0; - rxtx_sameclk : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - rxclk : in std_logic_vector(1 downto 0); - txclk : in std_ulogic; - txclkn : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - d : in std_logic_vector(3 downto 0); - dv : in std_logic_vector(3 downto 0); - dconnect : in std_logic_vector(3 downto 0); - --spw out - do : out std_logic_vector(3 downto 0); - so : out std_logic_vector(3 downto 0); - --time iface - tickin : in std_logic; - tickinraw : in std_logic; - timein : in std_logic_vector(7 downto 0); - tickindone : out std_logic; - tickout : out std_logic; - tickoutraw : out std_logic; - timeout : out std_logic_vector(7 downto 0); - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - dcrstval : in std_logic_vector(9 downto 0); - timerrstval : in std_logic_vector(11 downto 0); - --rmapen - rmapen : in std_ulogic; - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(9 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(9 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testclk : in std_ulogic; - testrst : in std_logic; - testen : in std_logic; - rxdav : out std_logic; - rxdataout : out std_logic_vector(8 downto 0); - loopback : out std_logic - ); -end entity; - -architecture rtl of grspwc2_net is - -component grspwc2_unisim is - generic( - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0; - ports : integer range 1 to 2 := 1; - dmachan : integer range 1 to 4 := 1; - tech : integer; - input_type : integer range 0 to 3 := 0; - output_type : integer range 0 to 2 := 0; - rxtx_sameclk : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - rxclk : in std_logic_vector(1 downto 0); - txclk : in std_ulogic; - txclkn : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - d : in std_logic_vector(3 downto 0); - dv : in std_logic_vector(3 downto 0); - dconnect : in std_logic_vector(3 downto 0); - --spw out - do : out std_logic_vector(3 downto 0); - so : out std_logic_vector(3 downto 0); - --time iface - tickin : in std_logic; - tickinraw : in std_logic; - timein : in std_logic_vector(7 downto 0); - tickindone : out std_logic; - tickout : out std_logic; - tickoutraw : out std_logic; - timeout : out std_logic_vector(7 downto 0); - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - --rmapen - rmapen : in std_ulogic; - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(9 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(9 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testrst : in std_logic; - testen : in std_logic; - rxdav : out std_logic; - rxdataout : out std_logic_vector(8 downto 0); - loopback : out std_logic - ); -end component; - -component grspwc2_axcelerator is - generic( - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0; - ports : integer range 1 to 2 := 1; - dmachan : integer range 1 to 4 := 1; - tech : integer; - input_type : integer range 0 to 3 := 0; - output_type : integer range 0 to 2 := 0; - rxtx_sameclk : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - rxclk : in std_logic_vector(1 downto 0); - txclk : in std_ulogic; - txclkn : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - d : in std_logic_vector(3 downto 0); - dv : in std_logic_vector(3 downto 0); - dconnect : in std_logic_vector(3 downto 0); - --spw out - do : out std_logic_vector(3 downto 0); - so : out std_logic_vector(3 downto 0); - --time iface - tickin : in std_logic; - tickinraw : in std_logic; - timein : in std_logic_vector(7 downto 0); - tickindone : out std_logic; - tickout : out std_logic; - tickoutraw : out std_logic; - timeout : out std_logic_vector(7 downto 0); - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - --rmapen - rmapen : in std_ulogic; - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(9 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(9 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testrst : in std_logic; - testen : in std_logic; - rxdav : out std_logic; - rxdataout : out std_logic_vector(8 downto 0); - loopback : out std_logic - ); -end component; - -component grspwc2_proasic3 is - generic( - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0; - ports : integer range 1 to 2 := 1; - dmachan : integer range 1 to 4 := 1; - tech : integer; - input_type : integer range 0 to 3 := 0; - output_type : integer range 0 to 2 := 0; - rxtx_sameclk : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - rxclk : in std_logic_vector(1 downto 0); - txclk : in std_ulogic; - txclkn : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - d : in std_logic_vector(3 downto 0); - dv : in std_logic_vector(3 downto 0); - dconnect : in std_logic_vector(3 downto 0); - --spw out - do : out std_logic_vector(3 downto 0); - so : out std_logic_vector(3 downto 0); - --time iface - tickin : in std_logic; - tickinraw : in std_logic; - timein : in std_logic_vector(7 downto 0); - tickindone : out std_logic; - tickout : out std_logic; - tickoutraw : out std_logic; - timeout : out std_logic_vector(7 downto 0); - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - --rmapen - rmapen : in std_ulogic; - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(9 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(9 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testrst : in std_ulogic := '0'; - testen : in std_ulogic := '0'; - rxdav : out std_logic; - rxdataout : out std_logic_vector(8 downto 0); - loopback : out std_logic - ); -end component; - -component grspwc2_proasic3e is - generic( - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0; - ports : integer range 1 to 2 := 1; - dmachan : integer range 1 to 4 := 1; - tech : integer; - input_type : integer range 0 to 3 := 0; - output_type : integer range 0 to 2 := 0; - rxtx_sameclk : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - rxclk : in std_logic_vector(1 downto 0); - txclk : in std_ulogic; - txclkn : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - d : in std_logic_vector(3 downto 0); - dv : in std_logic_vector(3 downto 0); - dconnect : in std_logic_vector(3 downto 0); - --spw out - do : out std_logic_vector(3 downto 0); - so : out std_logic_vector(3 downto 0); - --time iface - tickin : in std_logic; - tickinraw : in std_logic; - timein : in std_logic_vector(7 downto 0); - tickindone : out std_logic; - tickout : out std_logic; - tickoutraw : out std_logic; - timeout : out std_logic_vector(7 downto 0); - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - --rmapen - rmapen : in std_ulogic; - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(9 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(9 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testrst : in std_ulogic := '0'; - testen : in std_ulogic := '0'; - rxdav : out std_logic; - rxdataout : out std_logic_vector(8 downto 0); - loopback : out std_logic - ); -end component; - -component grspwc2_proasic3l is - generic( - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0; - ports : integer range 1 to 2 := 1; - dmachan : integer range 1 to 4 := 1; - tech : integer; - input_type : integer range 0 to 3 := 0; - output_type : integer range 0 to 2 := 0; - rxtx_sameclk : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - rxclk : in std_logic_vector(1 downto 0); - txclk : in std_ulogic; - txclkn : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - d : in std_logic_vector(3 downto 0); - dv : in std_logic_vector(3 downto 0); - dconnect : in std_logic_vector(3 downto 0); - --spw out - do : out std_logic_vector(3 downto 0); - so : out std_logic_vector(3 downto 0); - --time iface - tickin : in std_logic; - tickinraw : in std_logic; - timein : in std_logic_vector(7 downto 0); - tickindone : out std_logic; - tickout : out std_logic; - tickoutraw : out std_logic; - timeout : out std_logic_vector(7 downto 0); - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - --rmapen - rmapen : in std_ulogic; - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(9 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(9 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testrst : in std_ulogic := '0'; - testen : in std_ulogic := '0'; - rxdav : out std_logic; - rxdataout : out std_logic_vector(8 downto 0); - loopback : out std_logic - ); -end component; - -begin - - xil : if (is_unisim(tech) = 1) generate - grspwc20 : grspwc2_unisim - generic map (rmap, rmapcrc, fifosize1, fifosize2, - rxunaligned, rmapbufs, scantest, ports, dmachan, - tech, input_type, output_type, rxtx_sameclk) - port map( - rst => rst, - clk => clk, - rxclk => rxclk, - txclk => txclk, - txclkn => txclkn, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - d => d, - dv => dv, - dconnect => dconnect, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickinraw => tickinraw, - timein => timein, - tickindone => tickindone, - tickout => tickout, - tickoutraw => tickoutraw, - timeout => timeout, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - --rmapen - rmapen => rmapen, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testrst => testrst, - testen => testen, - rxdav => rxdav, - rxdataout => rxdataout, - loopback => loopback - ); - end generate; - - ax : if (tech = axcel) or (tech = axdsp) generate - grspwc20 : grspwc2_axcelerator - generic map (rmap, rmapcrc, fifosize1, fifosize2, - rxunaligned, rmapbufs, scantest, ports, dmachan, - tech, input_type, output_type, rxtx_sameclk) - port map( - rst => rst, - clk => clk, - rxclk => rxclk, - txclk => txclk, - txclkn => txclkn, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - d => d, - dv => dv, - dconnect => dconnect, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickinraw => tickinraw, - timein => timein, - tickindone => tickindone, - tickout => tickout, - tickoutraw => tickoutraw, - timeout => timeout, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - --rmapen - rmapen => rmapen, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testrst => testrst, - testen => testen, - rxdav => rxdav, - rxdataout => rxdataout, - loopback => loopback - ); - end generate; - - a3p : if (tech = apa3) generate - grspwc20 : grspwc2_proasic3 - generic map (rmap, rmapcrc, fifosize1, fifosize2, - rxunaligned, rmapbufs, scantest, ports, dmachan, - tech, input_type, output_type, rxtx_sameclk) - port map( - rst => rst, - clk => clk, - rxclk => rxclk, - txclk => txclk, - txclkn => txclkn, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - d => d, - dv => dv, - dconnect => dconnect, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickinraw => tickinraw, - timein => timein, - tickindone => tickindone, - tickout => tickout, - tickoutraw => tickoutraw, - timeout => timeout, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - --rmapen - rmapen => rmapen, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testrst => testrst, - testen => testen, - rxdav => rxdav, - rxdataout => rxdataout, - loopback => loopback - ); - end generate; - - a3e : if (tech = apa3e) generate - grspwc20 : grspwc2_proasic3e - generic map (rmap, rmapcrc, fifosize1, fifosize2, - rxunaligned, rmapbufs, scantest, ports, dmachan, - tech, input_type, output_type, rxtx_sameclk) - port map( - rst => rst, - clk => clk, - rxclk => rxclk, - txclk => txclk, - txclkn => txclkn, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - d => d, - dv => dv, - dconnect => dconnect, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickinraw => tickinraw, - timein => timein, - tickindone => tickindone, - tickout => tickout, - tickoutraw => tickoutraw, - timeout => timeout, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - --rmapen - rmapen => rmapen, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testrst => testrst, - testen => testen, - rxdav => rxdav, - rxdataout => rxdataout, - loopback => loopback - ); - end generate; - - a3l : if (tech = apa3l) generate - grspwc20 : grspwc2_proasic3l - generic map (rmap, rmapcrc, fifosize1, fifosize2, - rxunaligned, rmapbufs, scantest, ports, dmachan, - tech, input_type, output_type, rxtx_sameclk) - port map( - rst => rst, - clk => clk, - rxclk => rxclk, - txclk => txclk, - txclkn => txclkn, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - d => d, - dv => dv, - dconnect => dconnect, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickinraw => tickinraw, - timein => timein, - tickindone => tickindone, - tickout => tickout, - tickoutraw => tickoutraw, - timeout => timeout, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - --rmapen - rmapen => rmapen, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testrst => testrst, - testen => testen, - rxdav => rxdav, - rxdataout => rxdataout, - loopback => loopback - ); - end generate; - --- pragma translate_off - nonet : if not ((is_unisim(tech) = 1) or (tech = axcel) or - (tech = axdsp) or (tech = apa3) or (tech = apa3e) or (tech = apa3l)) generate - err : process - begin - assert false report "ERROR : No GRSPWC2 netlist available for this process!" - severity failure; - wait; - end process; - end generate; - --- pragma translate_on - -end architecture; diff --git a/lib/techmap/maps/grspwc_net.vhd b/lib/techmap/maps/grspwc_net.vhd deleted file mode 100644 index 8ffcb278..00000000 --- a/lib/techmap/maps/grspwc_net.vhd +++ /dev/null @@ -1,1071 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: grspwc --- File: grspwc.vhd --- Author: Marko Isomaki - Gaisler Research --- Description: Provides a link interface to a SpaceWire network --- with an AHB host interface and RMAP support. ------------------------------------------------------------------------------- -library ieee; -use ieee.std_logic_1164.all; -library techmap; -use techmap.gencomp.all; - -entity grspwc_net is - generic( - tech : integer := 0; - sysfreq : integer := 40000; - usegen : integer range 0 to 1 := 1; - nsync : integer range 1 to 2 := 1; - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - txclk : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - di : in std_logic_vector(1 downto 0); - si : in std_logic_vector(1 downto 0); - --spw out - do : out std_logic_vector(1 downto 0); - so : out std_logic_vector(1 downto 0); - --time iface - tickin : in std_ulogic; - tickout : out std_ulogic; - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - dcrstval : in std_logic_vector(9 downto 0); - timerrstval : in std_logic_vector(11 downto 0); - --rmapen - rmapen : in std_ulogic; - rmapnodeaddr : in std_logic_vector(7 downto 0); - --clk bufs - rxclki : in std_logic_vector(1 downto 0); - nrxclki : in std_logic_vector(1 downto 0); - rxclko : out std_logic_vector(1 downto 0); - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(8 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(8 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testclk : in std_ulogic := '0'; - testrst : in std_ulogic := '0'; - testen : in std_ulogic := '0' - ); -end entity; - -architecture rtl of grspwc_net is - -component grspwc_unisim - generic( - sysfreq : integer := 40000; - usegen : integer range 0 to 1 := 1; - nsync : integer range 1 to 2 := 1; - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - txclk : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - di : in std_logic_vector(1 downto 0); - si : in std_logic_vector(1 downto 0); - --spw out - do : out std_logic_vector(1 downto 0); - so : out std_logic_vector(1 downto 0); - --time iface - tickin : in std_ulogic; - tickout : out std_ulogic; - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - dcrstval : in std_logic_vector(9 downto 0); - timerrstval : in std_logic_vector(11 downto 0); - --rmapen - rmapen : in std_ulogic; - rmapnodeaddr : in std_logic_vector(7 downto 0); - --clk bufs - rxclki : in std_logic_vector(1 downto 0); - nrxclki : in std_logic_vector(1 downto 0); - rxclko : out std_logic_vector(1 downto 0); - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(8 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(8 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testclk : in std_ulogic := '0'; - testrst : in std_ulogic := '0'; - testen : in std_ulogic := '0' - ); -end component; - -component grspwc_axcelerator - generic( - sysfreq : integer := 40000; - usegen : integer range 0 to 1 := 1; - nsync : integer range 1 to 2 := 1; - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - txclk : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - di : in std_logic_vector(1 downto 0); - si : in std_logic_vector(1 downto 0); - --spw out - do : out std_logic_vector(1 downto 0); - so : out std_logic_vector(1 downto 0); - --time iface - tickin : in std_ulogic; - tickout : out std_ulogic; - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - dcrstval : in std_logic_vector(9 downto 0); - timerrstval : in std_logic_vector(11 downto 0); - --rmapen - rmapen : in std_ulogic; - rmapnodeaddr : in std_logic_vector(7 downto 0); - --clk bufs - rxclki : in std_logic_vector(1 downto 0); - nrxclki : in std_logic_vector(1 downto 0); - rxclko : out std_logic_vector(1 downto 0); - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(8 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(8 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testclk : in std_ulogic := '0'; - testrst : in std_ulogic := '0'; - testen : in std_ulogic := '0' - ); -end component; - -component grspwc_proasic3 - generic( - sysfreq : integer := 40000; - usegen : integer range 0 to 1 := 1; - nsync : integer range 1 to 2 := 1; - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - txclk : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - di : in std_logic_vector(1 downto 0); - si : in std_logic_vector(1 downto 0); - --spw out - do : out std_logic_vector(1 downto 0); - so : out std_logic_vector(1 downto 0); - --time iface - tickin : in std_ulogic; - tickout : out std_ulogic; - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - dcrstval : in std_logic_vector(9 downto 0); - timerrstval : in std_logic_vector(11 downto 0); - --rmapen - rmapen : in std_ulogic; - rmapnodeaddr : in std_logic_vector(7 downto 0); - --clk bufs - rxclki : in std_logic_vector(1 downto 0); - nrxclki : in std_logic_vector(1 downto 0); - rxclko : out std_logic_vector(1 downto 0); - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(8 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(8 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testclk : in std_ulogic := '0'; - testrst : in std_ulogic := '0'; - testen : in std_ulogic := '0' - ); -end component; - -component grspwc_proasic3e - generic( - sysfreq : integer := 40000; - usegen : integer range 0 to 1 := 1; - nsync : integer range 1 to 2 := 1; - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - txclk : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - di : in std_logic_vector(1 downto 0); - si : in std_logic_vector(1 downto 0); - --spw out - do : out std_logic_vector(1 downto 0); - so : out std_logic_vector(1 downto 0); - --time iface - tickin : in std_ulogic; - tickout : out std_ulogic; - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - dcrstval : in std_logic_vector(9 downto 0); - timerrstval : in std_logic_vector(11 downto 0); - --rmapen - rmapen : in std_ulogic; - rmapnodeaddr : in std_logic_vector(7 downto 0); - --clk bufs - rxclki : in std_logic_vector(1 downto 0); - nrxclki : in std_logic_vector(1 downto 0); - rxclko : out std_logic_vector(1 downto 0); - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(8 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(8 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testclk : in std_ulogic := '0'; - testrst : in std_ulogic := '0'; - testen : in std_ulogic := '0' - ); -end component; - -component grspwc_proasic3l - generic( - sysfreq : integer := 40000; - usegen : integer range 0 to 1 := 1; - nsync : integer range 1 to 2 := 1; - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - txclk : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - di : in std_logic_vector(1 downto 0); - si : in std_logic_vector(1 downto 0); - --spw out - do : out std_logic_vector(1 downto 0); - so : out std_logic_vector(1 downto 0); - --time iface - tickin : in std_ulogic; - tickout : out std_ulogic; - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - dcrstval : in std_logic_vector(9 downto 0); - timerrstval : in std_logic_vector(11 downto 0); - --rmapen - rmapen : in std_ulogic; - rmapnodeaddr : in std_logic_vector(7 downto 0); - --clk bufs - rxclki : in std_logic_vector(1 downto 0); - nrxclki : in std_logic_vector(1 downto 0); - rxclko : out std_logic_vector(1 downto 0); - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(8 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(8 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testclk : in std_ulogic := '0'; - testrst : in std_ulogic := '0'; - testen : in std_ulogic := '0' - ); -end component; - -begin - - ax : if (tech = axcel) or (tech = axdsp) generate - grspwc0 : grspwc_axcelerator - generic map (sysfreq, usegen, nsync, rmap, rmapcrc, fifosize1, fifosize2, - rxunaligned, rmapbufs, scantest) - port map( - rst => rst, - clk => clk, - txclk => txclk, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - di => di, - si => si, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickout => tickout, - --clk bufs - rxclki => rxclki, - nrxclki => nrxclki, - rxclko => rxclko, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - dcrstval => dcrstval, - timerrstval => timerrstval, - --rmapen - rmapen => rmapen, - rmapnodeaddr => rmapnodeaddr, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testclk => testclk, - testrst => testrst, - testen => testen - ); - end generate; - - xil : if (is_unisim(tech) = 1) generate - grspwc0 : grspwc_unisim - generic map (sysfreq, usegen, nsync, rmap, rmapcrc, fifosize1, fifosize2, - rxunaligned, rmapbufs, scantest) - port map( - rst => rst, - clk => clk, - txclk => txclk, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - di => di, - si => si, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickout => tickout, - --clk bufs - rxclki => rxclki, - nrxclki => nrxclki, - rxclko => rxclko, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - dcrstval => dcrstval, - timerrstval => timerrstval, - --rmapen - rmapen => rmapen, - rmapnodeaddr => rmapnodeaddr, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testclk => testclk, - testrst => testrst, - testen => testen - ); - end generate; - - pa3 : if (tech = apa3) generate - grspwc0 : grspwc_proasic3 - generic map (sysfreq, usegen, nsync, rmap, rmapcrc, fifosize1, fifosize2, - rxunaligned, rmapbufs, scantest) - port map( - rst => rst, - clk => clk, - txclk => txclk, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - di => di, - si => si, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickout => tickout, - --clk bufs - rxclki => rxclki, - nrxclki => nrxclki, - rxclko => rxclko, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - dcrstval => dcrstval, - timerrstval => timerrstval, - --rmapen - rmapen => rmapen, - rmapnodeaddr => rmapnodeaddr, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testclk => testclk, - testrst => testrst, - testen => testen - ); - end generate; - - pa3e : if (tech = apa3e) generate - grspwc0 : grspwc_proasic3e - generic map (sysfreq, usegen, nsync, rmap, rmapcrc, fifosize1, fifosize2, - rxunaligned, rmapbufs, scantest) - port map( - rst => rst, - clk => clk, - txclk => txclk, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - di => di, - si => si, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickout => tickout, - --clk bufs - rxclki => rxclki, - nrxclki => nrxclki, - rxclko => rxclko, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - dcrstval => dcrstval, - timerrstval => timerrstval, - --rmapen - rmapen => rmapen, - rmapnodeaddr => rmapnodeaddr, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testclk => testclk, - testrst => testrst, - testen => testen - ); - end generate; - - pa3l : if (tech = apa3l) generate - grspwc0 : grspwc_proasic3l - generic map (sysfreq, usegen, nsync, rmap, rmapcrc, fifosize1, fifosize2, - rxunaligned, rmapbufs, scantest) - port map( - rst => rst, - clk => clk, - txclk => txclk, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - di => di, - si => si, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickout => tickout, - --clk bufs - rxclki => rxclki, - nrxclki => nrxclki, - rxclko => rxclko, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - dcrstval => dcrstval, - timerrstval => timerrstval, - --rmapen - rmapen => rmapen, - rmapnodeaddr => rmapnodeaddr, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testclk => testclk, - testrst => testrst, - testen => testen - ); - end generate; - --- pragma translate_off - nonet : if not ((is_unisim(tech) = 1) or (tech = axcel) or - (tech = axdsp) or (tech = apa3)) generate - err : process - begin - assert false report "ERROR : No GRSPWC netlist available for this process!" - severity failure; - wait; - end process; - end generate; - --- pragma translate_on - -end architecture; diff --git a/lib/techmap/maps/grusbhc_net.vhd b/lib/techmap/maps/grusbhc_net.vhd index c6210be6..03107998 100644 --- a/lib/techmap/maps/grusbhc_net.vhd +++ b/lib/techmap/maps/grusbhc_net.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -53,7 +53,9 @@ entity grusbhc_net is memsel : integer := 0; syncprst : integer range 0 to 1 := 0; sysfreq : integer := 65000; - pcidev : integer range 0 to 1 := 0); + pcidev : integer range 0 to 1 := 0; + debug : integer := 0; + debug_abits : integer := 13); port ( clk : in std_ulogic; uclk : in std_ulogic; @@ -72,7 +74,6 @@ entity grusbhc_net is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -106,7 +107,6 @@ entity grusbhc_net is uhc_ahbso_hresp : out std_logic_vector((n_cc*2)*uhcgen downto 1*uhcgen); uhc_ahbso_hrdata : out std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); uhc_ahbso_hsplit : out std_logic_vector((n_cc*16)*uhcgen downto 1*uhcgen); - uhc_ahbso_hcache : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbso_hirq : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((nports*2)-1) downto 0); @@ -187,7 +187,13 @@ entity grusbhc_net is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end grusbhc_net; architecture rtl of grusbhc_net is @@ -217,7 +223,9 @@ architecture rtl of grusbhc_net is memsel : integer := 0; syncprst : integer range 0 to 1 := 0; sysfreq : integer := 65000; - pcidev : integer range 0 to 1 := 0); + pcidev : integer range 0 to 1 := 0; + debug : integer := 0; + debug_abits : integer := 13); port ( clk : in std_ulogic; uclk : in std_ulogic; @@ -236,7 +244,6 @@ architecture rtl of grusbhc_net is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -270,7 +277,6 @@ architecture rtl of grusbhc_net is uhc_ahbso_hresp : out std_logic_vector((n_cc*2)*uhcgen downto 1*uhcgen); uhc_ahbso_hrdata : out std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); uhc_ahbso_hsplit : out std_logic_vector((n_cc*16)*uhcgen downto 1*uhcgen); - uhc_ahbso_hcache : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbso_hirq : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((nports*2)-1) downto 0); @@ -351,7 +357,13 @@ architecture rtl of grusbhc_net is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end component; component grusbhc_stratixii is @@ -379,7 +391,9 @@ architecture rtl of grusbhc_net is memsel : integer := 0; syncprst : integer range 0 to 1 := 0; sysfreq : integer := 65000; - pcidev : integer range 0 to 1 := 0); + pcidev : integer range 0 to 1 := 0; + debug : integer := 0; + debug_abits : integer := 13); port ( clk : in std_ulogic; uclk : in std_ulogic; @@ -398,7 +412,6 @@ architecture rtl of grusbhc_net is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -432,7 +445,6 @@ architecture rtl of grusbhc_net is uhc_ahbso_hresp : out std_logic_vector((n_cc*2)*uhcgen downto 1*uhcgen); uhc_ahbso_hrdata : out std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); uhc_ahbso_hsplit : out std_logic_vector((n_cc*16)*uhcgen downto 1*uhcgen); - uhc_ahbso_hcache : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbso_hirq : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((nports*2)-1) downto 0); @@ -513,169 +525,13 @@ architecture rtl of grusbhc_net is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); - end component; - - component grusbhc_axcelerator is - generic ( - nports : integer range 1 to 15 := 1; - ehcgen : integer range 0 to 1 := 1; - uhcgen : integer range 0 to 1 := 1; - n_cc : integer range 1 to 15 := 1; - n_pcc : integer range 1 to 15 := 1; - prr : integer range 0 to 1 := 0; - portroute1 : integer := 0; - portroute2 : integer := 0; - endian_conv : integer range 0 to 1 := 1; - be_regs : integer range 0 to 1 := 0; - be_desc : integer range 0 to 1 := 0; - uhcblo : integer range 0 to 255 := 2; - bwrd : integer range 1 to 256 := 16; - utm_type : integer range 0 to 2 := 2; - vbusconf : integer := 3; - ramtest : integer range 0 to 1 := 0; - urst_time : integer := 0; - oepol : integer range 0 to 1 := 0; - scantest : integer range 0 to 1 := 0; - memtech : integer range 0 to NTECH := DEFMEMTECH; - memsel : integer := 0; - syncprst : integer range 0 to 1 := 0; - sysfreq : integer := 65000; - pcidev : integer range 0 to 1 := 0); - port ( - clk : in std_ulogic; - uclk : in std_ulogic; - rst : in std_ulogic; - -- EHC apb_slv_in_type unwrapped - ehc_apbsi_psel : in std_ulogic; - ehc_apbsi_penable : in std_ulogic; - ehc_apbsi_paddr : in std_logic_vector(31 downto 0); - ehc_apbsi_pwrite : in std_ulogic; - ehc_apbsi_pwdata : in std_logic_vector(31 downto 0); - -- EHC apb_slv_out_type unwrapped - ehc_apbso_prdata : out std_logic_vector(31 downto 0); - ehc_apbso_pirq : out std_ulogic; - -- EHC/UHC ahb_mst_in_type unwrapped - ahbmi_hgrant : in std_logic_vector(n_cc*uhcgen downto 0); - ahbmi_hready : in std_ulogic; - ahbmi_hresp : in std_logic_vector(1 downto 0); - ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; - -- UHC ahb_slv_in_type unwrapped - uhc_ahbsi_hsel : in std_logic_vector(n_cc*uhcgen downto 1*uhcgen); - uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); - uhc_ahbsi_hwrite : in std_ulogic; - uhc_ahbsi_htrans : in std_logic_vector(1 downto 0); - uhc_ahbsi_hsize : in std_logic_vector(2 downto 0); - uhc_ahbsi_hwdata : in std_logic_vector(31 downto 0); - uhc_ahbsi_hready : in std_ulogic; - -- EHC ahb_mst_out_type_unwrapped - ehc_ahbmo_hbusreq : out std_ulogic; - ehc_ahbmo_hlock : out std_ulogic; - ehc_ahbmo_htrans : out std_logic_vector(1 downto 0); - ehc_ahbmo_haddr : out std_logic_vector(31 downto 0); - ehc_ahbmo_hwrite : out std_ulogic; - ehc_ahbmo_hsize : out std_logic_vector(2 downto 0); - ehc_ahbmo_hburst : out std_logic_vector(2 downto 0); - ehc_ahbmo_hprot : out std_logic_vector(3 downto 0); - ehc_ahbmo_hwdata : out std_logic_vector(31 downto 0); - -- UHC ahb_mst_out_vector_type unwrapped - uhc_ahbmo_hbusreq : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); - uhc_ahbmo_hlock : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); - uhc_ahbmo_htrans : out std_logic_vector((n_cc*2)*uhcgen downto 1*uhcgen); - uhc_ahbmo_haddr : out std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); - uhc_ahbmo_hwrite : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); - uhc_ahbmo_hsize : out std_logic_vector((n_cc*3)*uhcgen downto 1*uhcgen); - uhc_ahbmo_hburst : out std_logic_vector((n_cc*3)*uhcgen downto 1*uhcgen); - uhc_ahbmo_hprot : out std_logic_vector((n_cc*4)*uhcgen downto 1*uhcgen); - uhc_ahbmo_hwdata : out std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); - -- UHC ahb_slv_out_vector_type unwrapped - uhc_ahbso_hready : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); - uhc_ahbso_hresp : out std_logic_vector((n_cc*2)*uhcgen downto 1*uhcgen); - uhc_ahbso_hrdata : out std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); - uhc_ahbso_hsplit : out std_logic_vector((n_cc*16)*uhcgen downto 1*uhcgen); - uhc_ahbso_hcache : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); - uhc_ahbso_hirq : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); - -- grusb_out_type_vector unwrapped - xcvrsel : out std_logic_vector(((nports*2)-1) downto 0); - termsel : out std_logic_vector((nports-1) downto 0); - opmode : out std_logic_vector(((nports*2)-1) downto 0); - txvalid : out std_logic_vector((nports-1) downto 0); - drvvbus : out std_logic_vector((nports-1) downto 0); - dataho : out std_logic_vector(((nports*8)-1) downto 0); - validho : out std_logic_vector((nports-1) downto 0); - stp : out std_logic_vector((nports-1) downto 0); - datao : out std_logic_vector(((nports*8)-1) downto 0); - utm_rst : out std_logic_vector((nports-1) downto 0); - dctrlo : out std_logic_vector((nports-1) downto 0); - suspendm : out std_ulogic; - dbus16_8 : out std_ulogic; - dppulldown : out std_ulogic; - dmpulldown : out std_ulogic; - idpullup : out std_ulogic; - dischrgvbus : out std_ulogic; - chrgvbus : out std_ulogic; - txbitstuffenable : out std_ulogic; - txbitstuffenableh : out std_ulogic; - fslsserialmode : out std_ulogic; - txenablen : out std_ulogic; - txdat : out std_ulogic; - txse0 : out std_ulogic; - -- grusb_in_type_vector unwrapped - linestate : in std_logic_vector(((nports*2)-1) downto 0); - txready : in std_logic_vector((nports-1) downto 0); - rxvalid : in std_logic_vector((nports-1) downto 0); - rxactive : in std_logic_vector((nports-1) downto 0); - rxerror : in std_logic_vector((nports-1) downto 0); - vbusvalid : in std_logic_vector((nports-1) downto 0); - datahi : in std_logic_vector(((nports*8)-1) downto 0); - validhi : in std_logic_vector((nports-1) downto 0); - hostdisc : in std_logic_vector((nports-1) downto 0); - nxt : in std_logic_vector((nports-1) downto 0); - dir : in std_logic_vector((nports-1) downto 0); - datai : in std_logic_vector(((nports*8)-1) downto 0); - urstdrive : in std_logic_vector((nports-1) downto 0); - -- EHC transaction buffer signals - mbc20_tb_addr : out std_logic_vector(8 downto 0); - mbc20_tb_data : out std_logic_vector(31 downto 0); - mbc20_tb_en : out std_ulogic; - mbc20_tb_wel : out std_ulogic; - mbc20_tb_weh : out std_ulogic; - tb_mbc20_data : in std_logic_vector(31 downto 0); - pe20_tb_addr : out std_logic_vector(8 downto 0); - pe20_tb_data : out std_logic_vector(31 downto 0); - pe20_tb_en : out std_ulogic; - pe20_tb_wel : out std_ulogic; - pe20_tb_weh : out std_ulogic; - tb_pe20_data : in std_logic_vector(31 downto 0); - -- EHC packet buffer signals - mbc20_pb_addr : out std_logic_vector(8 downto 0); - mbc20_pb_data : out std_logic_vector(31 downto 0); - mbc20_pb_en : out std_ulogic; - mbc20_pb_we : out std_ulogic; - pb_mbc20_data : in std_logic_vector(31 downto 0); - sie20_pb_addr : out std_logic_vector(8 downto 0); - sie20_pb_data : out std_logic_vector(31 downto 0); - sie20_pb_en : out std_ulogic; - sie20_pb_we : out std_ulogic; - pb_sie20_data : in std_logic_vector(31 downto 0); - -- UHC packet buffer signals - sie11_pb_addr : out std_logic_vector((n_cc*9)*uhcgen downto 1*uhcgen); - sie11_pb_data : out std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); - sie11_pb_en : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); - sie11_pb_we : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); - pb_sie11_data : in std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); - mbc11_pb_addr : out std_logic_vector((n_cc*9)*uhcgen downto 1*uhcgen); - mbc11_pb_data : out std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); - mbc11_pb_en : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); - mbc11_pb_we : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); - pb_mbc11_data : in std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); - bufsel : out std_ulogic; - -- scan signals - testen : in std_ulogic; - testrst : in std_ulogic; - scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end component; component grusbhc_proasic3 is @@ -703,7 +559,9 @@ architecture rtl of grusbhc_net is memsel : integer := 0; syncprst : integer range 0 to 1 := 0; sysfreq : integer := 65000; - pcidev : integer range 0 to 1 := 0); + pcidev : integer range 0 to 1 := 0; + debug : integer := 0; + debug_abits : integer := 13); port ( clk : in std_ulogic; uclk : in std_ulogic; @@ -722,7 +580,6 @@ architecture rtl of grusbhc_net is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -756,7 +613,6 @@ architecture rtl of grusbhc_net is uhc_ahbso_hresp : out std_logic_vector((n_cc*2)*uhcgen downto 1*uhcgen); uhc_ahbso_hrdata : out std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); uhc_ahbso_hsplit : out std_logic_vector((n_cc*16)*uhcgen downto 1*uhcgen); - uhc_ahbso_hcache : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbso_hirq : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((nports*2)-1) downto 0); @@ -837,7 +693,13 @@ architecture rtl of grusbhc_net is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end component; begin @@ -869,7 +731,9 @@ begin memsel => memsel, syncprst => syncprst, sysfreq => sysfreq, - pcidev => pcidev) + pcidev => pcidev, + debug => debug, + debug_abits => debug_abits) port map( clk => clk, uclk => uclk, @@ -888,7 +752,6 @@ begin ahbmi_hready => ahbmi_hready, ahbmi_hresp => ahbmi_hresp, ahbmi_hrdata => ahbmi_hrdata, - ahbmi_hcache => ahbmi_hcache, -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel => uhc_ahbsi_hsel, uhc_ahbsi_haddr => uhc_ahbsi_haddr, @@ -922,7 +785,6 @@ begin uhc_ahbso_hresp => uhc_ahbso_hresp, uhc_ahbso_hrdata => uhc_ahbso_hrdata, uhc_ahbso_hsplit => uhc_ahbso_hsplit, - uhc_ahbso_hcache => uhc_ahbso_hcache, uhc_ahbso_hirq => uhc_ahbso_hirq, -- grusb_out_type_vector unwrapped xcvrsel => xcvrsel, @@ -1003,7 +865,13 @@ begin testen => testen, testrst => testrst, scanen => scanen, - testoen => testoen); + testoen => testoen, + -- debug signals + debug_raddr => debug_raddr, + debug_waddr => debug_waddr, + debug_wdata => debug_wdata, + debug_we => debug_we, + debug_rdata => debug_rdata); end generate; alt : if (tech = altera) or (tech = stratix1) or (tech = stratix2) or @@ -1033,170 +901,9 @@ begin memsel => memsel, syncprst => syncprst, sysfreq => sysfreq, - pcidev => pcidev) - port map( - clk => clk, - uclk => uclk, - rst => rst, - -- EHC apb_slv_in_type unwrapped - ehc_apbsi_psel => ehc_apbsi_psel, - ehc_apbsi_penable => ehc_apbsi_penable, - ehc_apbsi_paddr => ehc_apbsi_paddr, - ehc_apbsi_pwrite => ehc_apbsi_pwrite, - ehc_apbsi_pwdata => ehc_apbsi_pwdata, - -- EHC apb_slv_out_type unwrapped - ehc_apbso_prdata => ehc_apbso_prdata, - ehc_apbso_pirq => ehc_apbso_pirq, - -- EHC/UHC ahb_mst_in_type unwrapped - ahbmi_hgrant => ahbmi_hgrant, - ahbmi_hready => ahbmi_hready, - ahbmi_hresp => ahbmi_hresp, - ahbmi_hrdata => ahbmi_hrdata, - ahbmi_hcache => ahbmi_hcache, - -- UHC ahb_slv_in_type unwrapped - uhc_ahbsi_hsel => uhc_ahbsi_hsel, - uhc_ahbsi_haddr => uhc_ahbsi_haddr, - uhc_ahbsi_hwrite => uhc_ahbsi_hwrite, - uhc_ahbsi_htrans => uhc_ahbsi_htrans, - uhc_ahbsi_hsize => uhc_ahbsi_hsize, - uhc_ahbsi_hwdata => uhc_ahbsi_hwdata, - uhc_ahbsi_hready => uhc_ahbsi_hready, - -- EHC ahb_mst_out_type_unwrapped - ehc_ahbmo_hbusreq => ehc_ahbmo_hbusreq, - ehc_ahbmo_hlock => ehc_ahbmo_hlock, - ehc_ahbmo_htrans => ehc_ahbmo_htrans, - ehc_ahbmo_haddr => ehc_ahbmo_haddr, - ehc_ahbmo_hwrite => ehc_ahbmo_hwrite, - ehc_ahbmo_hsize => ehc_ahbmo_hsize, - ehc_ahbmo_hburst => ehc_ahbmo_hburst, - ehc_ahbmo_hprot => ehc_ahbmo_hprot, - ehc_ahbmo_hwdata => ehc_ahbmo_hwdata, - -- UHC ahb_mst_out_vector_type unwrapped - uhc_ahbmo_hbusreq => uhc_ahbmo_hbusreq, - uhc_ahbmo_hlock => uhc_ahbmo_hlock, - uhc_ahbmo_htrans => uhc_ahbmo_htrans, - uhc_ahbmo_haddr => uhc_ahbmo_haddr, - uhc_ahbmo_hwrite => uhc_ahbmo_hwrite, - uhc_ahbmo_hsize => uhc_ahbmo_hsize, - uhc_ahbmo_hburst => uhc_ahbmo_hburst, - uhc_ahbmo_hprot => uhc_ahbmo_hprot, - uhc_ahbmo_hwdata => uhc_ahbmo_hwdata, - -- UHC ahb_slv_out_vector_type unwrapped - uhc_ahbso_hready => uhc_ahbso_hready, - uhc_ahbso_hresp => uhc_ahbso_hresp, - uhc_ahbso_hrdata => uhc_ahbso_hrdata, - uhc_ahbso_hsplit => uhc_ahbso_hsplit, - uhc_ahbso_hcache => uhc_ahbso_hcache, - uhc_ahbso_hirq => uhc_ahbso_hirq, - -- grusb_out_type_vector unwrapped - xcvrsel => xcvrsel, - termsel => termsel, - opmode => opmode, - txvalid => txvalid, - drvvbus => drvvbus, - dataho => dataho, - validho => validho, - stp => stp, - datao => datao, - utm_rst => utm_rst, - dctrlo => dctrlo, - suspendm => suspendm, - dbus16_8 => dbus16_8, - dppulldown => dppulldown, - dmpulldown => dmpulldown, - idpullup => idpullup, - dischrgvbus => dischrgvbus, - chrgvbus => chrgvbus, - txbitstuffenable => txbitstuffenable, - txbitstuffenableh => txbitstuffenableh, - fslsserialmode => fslsserialmode, - txenablen => txenablen, - txdat => txdat, - txse0 => txse0, - -- grusb_in_type_vector unwrapped - linestate => linestate, - txready => txready, - rxvalid => rxvalid, - rxactive => rxactive, - rxerror => rxerror, - vbusvalid => vbusvalid, - datahi => datahi, - validhi => validhi, - hostdisc => hostdisc, - nxt => nxt, - dir => dir, - datai => datai, - urstdrive => urstdrive, - -- EHC transaction buffer signals - mbc20_tb_addr => mbc20_tb_addr, - mbc20_tb_data => mbc20_tb_data, - mbc20_tb_en => mbc20_tb_en, - mbc20_tb_wel => mbc20_tb_wel, - mbc20_tb_weh => mbc20_tb_weh, - tb_mbc20_data => tb_mbc20_data, - pe20_tb_addr => pe20_tb_addr, - pe20_tb_data => pe20_tb_data, - pe20_tb_en => pe20_tb_en, - pe20_tb_wel => pe20_tb_wel, - pe20_tb_weh => pe20_tb_weh, - tb_pe20_data => tb_pe20_data, - -- EHC packet buffer signals - mbc20_pb_addr => mbc20_pb_addr, - mbc20_pb_data => mbc20_pb_data, - mbc20_pb_en => mbc20_pb_en, - mbc20_pb_we => mbc20_pb_we, - pb_mbc20_data => pb_mbc20_data, - sie20_pb_addr => sie20_pb_addr, - sie20_pb_data => sie20_pb_data, - sie20_pb_en => sie20_pb_en, - sie20_pb_we => sie20_pb_we, - pb_sie20_data => pb_sie20_data, - -- UHC packet buffer signals - sie11_pb_addr => sie11_pb_addr, - sie11_pb_data => sie11_pb_data, - sie11_pb_en => sie11_pb_en, - sie11_pb_we => sie11_pb_we, - pb_sie11_data => pb_sie11_data, - mbc11_pb_addr => mbc11_pb_addr, - mbc11_pb_data => mbc11_pb_data, - mbc11_pb_en => mbc11_pb_en, - mbc11_pb_we => mbc11_pb_we, - pb_mbc11_data => pb_mbc11_data, - bufsel => bufsel, - -- scan signals - testen => testen, - testrst => testrst, - scanen => scanen, - testoen => testoen); - end generate; - - ax : if (tech = axcel) or (tech = axdsp) generate - usbhc0 : grusbhc_axcelerator - generic map( - nports => nports, - ehcgen => ehcgen, - uhcgen => uhcgen, - n_cc => n_cc, - n_pcc => n_pcc, - prr => prr, - portroute1 => portroute1, - portroute2 => portroute2, - endian_conv => endian_conv, - be_regs => be_regs, - be_desc => be_desc, - uhcblo => uhcblo, - bwrd => bwrd, - utm_type => utm_type, - vbusconf => vbusconf, - ramtest => ramtest, - urst_time => urst_time, - oepol => oepol, - scantest => scantest, - memtech => memtech, - memsel => memsel, - syncprst => syncprst, - sysfreq => sysfreq, - pcidev => pcidev) + pcidev => pcidev, + debug => debug, + debug_abits => debug_abits) port map( clk => clk, uclk => uclk, @@ -1215,7 +922,6 @@ begin ahbmi_hready => ahbmi_hready, ahbmi_hresp => ahbmi_hresp, ahbmi_hrdata => ahbmi_hrdata, - ahbmi_hcache => ahbmi_hcache, -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel => uhc_ahbsi_hsel, uhc_ahbsi_haddr => uhc_ahbsi_haddr, @@ -1249,7 +955,6 @@ begin uhc_ahbso_hresp => uhc_ahbso_hresp, uhc_ahbso_hrdata => uhc_ahbso_hrdata, uhc_ahbso_hsplit => uhc_ahbso_hsplit, - uhc_ahbso_hcache => uhc_ahbso_hcache, uhc_ahbso_hirq => uhc_ahbso_hirq, -- grusb_out_type_vector unwrapped xcvrsel => xcvrsel, @@ -1330,7 +1035,13 @@ begin testen => testen, testrst => testrst, scanen => scanen, - testoen => testoen); + testoen => testoen, + -- debug signals + debug_raddr => debug_raddr, + debug_waddr => debug_waddr, + debug_wdata => debug_wdata, + debug_we => debug_we, + debug_rdata => debug_rdata); end generate; pa3 : if (tech = apa3) generate @@ -1359,7 +1070,9 @@ begin memsel => memsel, syncprst => syncprst, sysfreq => sysfreq, - pcidev => pcidev) + pcidev => pcidev, + debug => debug, + debug_abits => debug_abits) port map( clk => clk, uclk => uclk, @@ -1378,7 +1091,6 @@ begin ahbmi_hready => ahbmi_hready, ahbmi_hresp => ahbmi_hresp, ahbmi_hrdata => ahbmi_hrdata, - ahbmi_hcache => ahbmi_hcache, -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel => uhc_ahbsi_hsel, uhc_ahbsi_haddr => uhc_ahbsi_haddr, @@ -1412,7 +1124,6 @@ begin uhc_ahbso_hresp => uhc_ahbso_hresp, uhc_ahbso_hrdata => uhc_ahbso_hrdata, uhc_ahbso_hsplit => uhc_ahbso_hsplit, - uhc_ahbso_hcache => uhc_ahbso_hcache, uhc_ahbso_hirq => uhc_ahbso_hirq, -- grusb_out_type_vector unwrapped xcvrsel => xcvrsel, @@ -1493,13 +1204,19 @@ begin testen => testen, testrst => testrst, scanen => scanen, - testoen => testoen); + testoen => testoen, + -- debug signals + debug_raddr => debug_raddr, + debug_waddr => debug_waddr, + debug_wdata => debug_wdata, + debug_we => debug_we, + debug_rdata => debug_rdata); end generate; -- pragma translate_off nonet : if not ((tech = virtex2) or (tech = virtex4) or (tech = virtex5) or - (tech = spartan3) or (tech = spartan3e) or (tech = axcel) or - (tech = axdsp) or (tech = stratix3) or (tech = cyclone3) or + (tech = spartan3) or (tech = spartan3e) or + (tech = stratix3) or (tech = cyclone3) or (tech = stratix1) or (tech = stratix2) or (tech = altera) or (tech = apa3)) generate err : process diff --git a/lib/techmap/maps/inpad.vhd b/lib/techmap/maps/inpad.vhd index 374de872..9b401a65 100644 --- a/lib/techmap/maps/inpad.vhd +++ b/lib/techmap/maps/inpad.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/inpad_ddr.vhd b/lib/techmap/maps/inpad_ddr.vhd index 45b586dd..91aa4777 100644 --- a/lib/techmap/maps/inpad_ddr.vhd +++ b/lib/techmap/maps/inpad_ddr.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/inpad_ds.vhd b/lib/techmap/maps/inpad_ds.vhd index 07fb7edb..1d808e5b 100644 --- a/lib/techmap/maps/inpad_ds.vhd +++ b/lib/techmap/maps/inpad_ds.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -48,7 +48,8 @@ begin xcv : if (tech = virtex2) or (tech = spartan3) generate u0 : unisim_inpad_ds generic map (level, voltage, term) port map (padp, padn, o); end generate; - xc4v : if (tech = virtex4) or (tech = spartan3e) or (tech = virtex5) or (tech = spartan6) or (tech = virtex6) generate + xc4v : if (tech = virtex4) or (tech = spartan3e) or (tech = virtex5) or (tech = spartan6) + or (tech = virtex6) or (tech = virtex7) or (tech = kintex7) or (tech =artix7) or (tech =zynq7000) generate u0 : virtex4_inpad_ds generic map (level, voltage) port map (padp, padn, o); end generate; axc : if (tech = axcel) or (tech = axdsp) generate diff --git a/lib/techmap/maps/iodpad.vhd b/lib/techmap/maps/iodpad.vhd index 24f495db..ce110692 100644 --- a/lib/techmap/maps/iodpad.vhd +++ b/lib/techmap/maps/iodpad.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/iopad.vhd b/lib/techmap/maps/iopad.vhd index cbdf9ab3..d9972a14 100644 --- a/lib/techmap/maps/iopad.vhd +++ b/lib/techmap/maps/iopad.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/iopad_ddr.vhd b/lib/techmap/maps/iopad_ddr.vhd index 8632d93f..12466634 100644 --- a/lib/techmap/maps/iopad_ddr.vhd +++ b/lib/techmap/maps/iopad_ddr.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/iopad_ds.vhd b/lib/techmap/maps/iopad_ds.vhd index b2bc35d2..2ce01080 100644 --- a/lib/techmap/maps/iopad_ds.vhd +++ b/lib/techmap/maps/iopad_ds.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/leon4_net.vhd b/lib/techmap/maps/leon4_net.vhd index d405c11a..6c9c8165 100644 --- a/lib/techmap/maps/leon4_net.vhd +++ b/lib/techmap/maps/leon4_net.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -80,6 +80,7 @@ entity leon4_net is port ( clk : in std_ulogic; gclk : in std_ulogic; + hclken : in std_ulogic; rstn : in std_ulogic; ahbix : in ahb_mst_in_type; ahbox : out ahb_mst_out_type; @@ -96,6 +97,7 @@ entity leon4_net is irqo_irl: out std_logic_vector(3 downto 0); irqo_pwd: out std_ulogic; irqo_fpen: out std_ulogic; + irqo_idle: out std_ulogic; dbgi_dsuen: in std_ulogic; -- DSU enable dbgi_denable: in std_ulogic; -- diagnostic register access enable @@ -198,13 +200,13 @@ signal disasen : std_ulogic; port ( clk: in std_ulogic; gclk: in std_ulogic; + hclken: in std_ulogic; rstn: in std_ulogic; ahbi_hgrant: in std_logic_vector(0 to NAHBMST-1); -- bus grant ahbi_hready: in std_ulogic; -- transfer done ahbi_hresp: in std_logic_vector(1 downto 0); -- response type ahbi_hrdata: in std_logic_vector(127 downto 0); -- read data bus - ahbi_hcache: in std_ulogic; -- cacheable ahbi_hirq: in std_logic_vector(NAHBIRQ-1 downto 0); -- interrupt result bus ahbi_testen: in std_ulogic; ahbi_testrst: in std_ulogic; @@ -234,7 +236,6 @@ signal disasen : std_ulogic; ahbsi_hmaster: in std_logic_vector(3 downto 0); -- current master ahbsi_hmastlock: in std_ulogic; -- locked access ahbsi_hmbsel: in std_logic_vector(0 to NAHBAMR-1); -- memory bank select - ahbsi_hcache: in std_ulogic; -- cacheable ahbsi_hirq: in std_logic_vector(NAHBIRQ-1 downto 0); -- interrupt result bus irqi_irl: in std_logic_vector(3 downto 0); @@ -248,7 +249,8 @@ signal disasen : std_ulogic; irqo_irl: out std_logic_vector(3 downto 0); irqo_pwd: out std_ulogic; irqo_fpen: out std_ulogic; - + irqo_idle: out std_ulogic; + dbgi_dsuen: in std_ulogic; -- DSU enable dbgi_denable: in std_ulogic; -- diagnostic register access enable dbgi_dbreak: in std_ulogic; -- debug break-in @@ -296,7 +298,6 @@ signal disasen : std_ulogic; signal ahbi_hready: std_ulogic; signal ahbi_hresp: std_logic_vector(1 downto 0); signal ahbi_hrdata: std_logic_vector(127 downto 0); - signal ahbi_hcache: std_ulogic; signal ahbi_hirq: std_logic_vector(NAHBIRQ-1 downto 0); signal ahbi_testen: std_ulogic; signal ahbi_testrst: std_ulogic; @@ -326,7 +327,6 @@ signal disasen : std_ulogic; signal ahbsi_hmaster: std_logic_vector(3 downto 0); signal ahbsi_hmastlock: std_ulogic; signal ahbsi_hmbsel: std_logic_vector(0 to NAHBAMR-1); - signal ahbsi_hcache: std_ulogic; signal ahbsi_hirq: std_logic_vector(NAHBIRQ-1 downto 0); constant hconfig: ahb_config_type := ( @@ -334,7 +334,7 @@ signal disasen : std_ulogic; others => zero32); begin - + disasen <= '1' when disas /= 0 else '0'; -- Plug&Play information @@ -347,12 +347,12 @@ begin port map( clk => clk, gclk => gclk, + hclken => hclken, rstn => rstn, ahbi_hgrant => ahbi_hgrant, ahbi_hready => ahbi_hready, ahbi_hresp => ahbi_hresp, ahbi_hrdata => ahbi_hrdata, - ahbi_hcache => ahbi_hcache, ahbi_hirq => ahbi_hirq, ahbi_testen => ahbi_testen, ahbi_testrst => ahbi_testrst, @@ -380,7 +380,6 @@ begin ahbsi_hmaster => ahbsi_hmaster, ahbsi_hmastlock => ahbsi_hmastlock, ahbsi_hmbsel => ahbsi_hmbsel, - ahbsi_hcache => ahbsi_hcache, ahbsi_hirq => ahbsi_hirq, irqi_irl => irqi_irl, irqi_rst => irqi_rst, @@ -392,6 +391,7 @@ begin irqo_irl => irqo_irl, irqo_pwd => irqo_pwd, irqo_fpen => irqo_fpen, + irqo_idle => irqo_idle, dbgi_dsuen => dbgi_dsuen, dbgi_denable => dbgi_denable, dbgi_dbreak => dbgi_dbreak, @@ -441,7 +441,6 @@ begin ahbi_hready <= ahbix.hready; ahbi_hresp <= ahbix.hresp; ahbi_hrdata(127 mod AHBDW downto 0) <= ahbix.hrdata(127 mod AHBDW downto 0); - ahbi_hcache <= ahbix.hcache; ahbi_hirq <= ahbix.hirq; ahbi_testen <= ahbix.testen; ahbi_testrst <= ahbix.testrst; @@ -453,7 +452,7 @@ begin ahbox.htrans <= ahbo_htrans; ahbox.haddr <= ahbo_haddr; ahbox.hwrite <= ahbo_hwrite; - ahbox.hsize <= '0' & ahbo_hsize(1 downto 0); + ahbox.hsize <= ahbo_hsize(2 downto 0); ahbox.hburst <= "00" & ahbo_hburst(0); ahbox.hprot <= ahbo_hprot; ahbox.hwdata(127 mod AHBDW downto 0) <= ahbo_hwdata(127 mod AHBDW downto 0); @@ -471,7 +470,6 @@ begin ahbsi_hmaster <= ahbsix.hmaster; ahbsi_hmastlock <= ahbsix.hmastlock; ahbsi_hmbsel <= ahbsix.hmbsel; - ahbsi_hcache <= ahbsix.hcache; ahbsi_hirq <= ahbsix.hirq; diff --git a/lib/techmap/maps/lvds_combo.vhd b/lib/techmap/maps/lvds_combo.vhd index 96c96a24..8f292a15 100644 --- a/lib/techmap/maps/lvds_combo.vhd +++ b/lib/techmap/maps/lvds_combo.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/mul_61x61.vhd b/lib/techmap/maps/mul_61x61.vhd index fde14b36..31545783 100644 --- a/lib/techmap/maps/mul_61x61.vhd +++ b/lib/techmap/maps/mul_61x61.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -82,6 +82,24 @@ port( PRODUCT : out std_logic_vector(121 downto 0)); end component; +component virtex7_mul_61x61 +port( + A : in std_logic_vector(60 downto 0); + B : in std_logic_vector(60 downto 0); + EN : in std_logic; + CLK : in std_logic; + PRODUCT : out std_logic_vector(121 downto 0)); +end component; + +component kintex7_mul_61x61 +port( + A : in std_logic_vector(60 downto 0); + B : in std_logic_vector(60 downto 0); + EN : in std_logic; + CLK : in std_logic; + PRODUCT : out std_logic_vector(121 downto 0)); +end component; + begin gen0 : if multech = 0 generate diff --git a/lib/techmap/maps/nandtree.vhd b/lib/techmap/maps/nandtree.vhd index 450adba3..061d13a6 100644 --- a/lib/techmap/maps/nandtree.vhd +++ b/lib/techmap/maps/nandtree.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/odpad.vhd b/lib/techmap/maps/odpad.vhd index 062fd638..da885969 100644 --- a/lib/techmap/maps/odpad.vhd +++ b/lib/techmap/maps/odpad.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/outpad.vhd b/lib/techmap/maps/outpad.vhd index f66a96cc..bb8c668e 100644 --- a/lib/techmap/maps/outpad.vhd +++ b/lib/techmap/maps/outpad.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/outpad_ddr.vhd b/lib/techmap/maps/outpad_ddr.vhd index 658a7b70..e353fd6d 100644 --- a/lib/techmap/maps/outpad_ddr.vhd +++ b/lib/techmap/maps/outpad_ddr.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/outpad_ds.vhd b/lib/techmap/maps/outpad_ds.vhd index f38224a8..6654bd30 100644 --- a/lib/techmap/maps/outpad_ds.vhd +++ b/lib/techmap/maps/outpad_ds.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/regfile_3p.vhd b/lib/techmap/maps/regfile_3p.vhd index 4b48634d..0e1e5e90 100644 --- a/lib/techmap/maps/regfile_3p.vhd +++ b/lib/techmap/maps/regfile_3p.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -44,13 +44,17 @@ entity regfile_3p is raddr2 : in std_logic_vector((abits -1) downto 0); re2 : in std_ulogic; rdata2 : out std_logic_vector((dbits -1) downto 0); - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end; architecture rtl of regfile_3p is constant rfinfer : boolean := (regfile_3p_infer(tech) = 1) or (((is_unisim(tech) = 1)) and (abits <= 5)); + signal xwe,xre1,xre2 : std_ulogic; begin + xwe <= we and not testin(TESTIN_WIDTH-2) when testen/=0 else we; + xre1 <= re1 and not testin(TESTIN_WIDTH-2) when testen/=0 else re1; + xre2 <= re2 and not testin(TESTIN_WIDTH-2) when testen/=0 else re2; s0 : if rfinfer generate rhu : generic_regfile_3p generic map (tech, abits, dbits, wrfst, numregs) @@ -60,7 +64,7 @@ begin s1 : if not rfinfer generate pere : if tech = peregrine generate rfhard : peregrine_regfile_3p generic map (abits, dbits) - port map ( wclk, waddr, wdata, we, raddr1, re1, rdata1, raddr2, re2, rdata2); + port map ( wclk, waddr, wdata, xwe, raddr1, xre1, rdata1, raddr2, xre2, rdata2); end generate; dp : if tech /= peregrine generate x0 : syncram_2p generic map (tech, abits, dbits, 0, wrfst, testen) diff --git a/lib/techmap/maps/ringosc.vhd b/lib/techmap/maps/ringosc.vhd index c046d849..6c29f73b 100644 --- a/lib/techmap/maps/ringosc.vhd +++ b/lib/techmap/maps/ringosc.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/scanreg.vhd b/lib/techmap/maps/scanreg.vhd index 8865e62c..957439bd 100644 --- a/lib/techmap/maps/scanreg.vhd +++ b/lib/techmap/maps/scanreg.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -31,7 +31,8 @@ use techmap.alltap.all; entity scanregi is generic ( - tech : integer := 0 + tech : integer := 0; + intesten: integer := 1 ); port ( pad : in std_ulogic; @@ -52,15 +53,22 @@ signal d1, d2, q1, q2, m3i, o1o : std_ulogic; begin gen0: if tech = 0 generate - x: scanregi_inf port map (pad,core,tck,tdi,tdo,bsshft,bscapt,bsupd,bsdrive,bshighz); + x: scanregi_inf generic map (intesten) port map (pad,core,tck,tdi,tdo,bsshft,bscapt,bsupd,bsdrive,bshighz); end generate; map0: if tech /= 0 generate - m1 : grmux2 generic map (tech) port map (pad, q1, bsdrive, core); - m2 : grmux2 generic map (tech) port map (q1, q2, bsupd, d1); + iten: if intesten /= 0 generate + m1 : grmux2 generic map (tech) port map (pad, q1, bsdrive, core); + f1 : grdff generic map (tech) port map (tck, d1, q1); + m2 : grmux2 generic map (tech) port map (q1, q2, bsupd, d1); + end generate; + itdis: if intesten = 0 generate + core <= pad; + q1 <= '0'; + d1 <= '0'; + end generate; m3 : grmux2 generic map (tech) port map (m3i, tdi, bsshft, d2); m4 : grmux2 generic map (tech) port map (q2, o1o, bscapt, m3i); o1 : gror2 generic map (tech) port map (pad, bshighz, o1o); - f1 : grdff generic map (tech) port map (tck, d1, q1); f2 : grdff generic map (tech) port map (tck, d2, q2); tdo <= q2; end generate; @@ -162,7 +170,7 @@ begin end generate; end generate; nohz : if hzsup = 0 generate - padoen <= '0'; + padoen <= padoenx; end generate; end; @@ -178,7 +186,8 @@ entity scanregio is generic ( tech : integer := 0; hzsup: integer range 0 to 1 := 1; - oepol: integer range 0 to 1 := 1 + oepol: integer range 0 to 1 := 1; + intesten: integer range 0 to 1 := 1 ); port ( pado : out std_ulogic; @@ -205,12 +214,12 @@ begin gen0: if tech = 0 generate x: scanregio_inf - generic map (hzsup) + generic map (hzsup,intesten) port map (pado,padoen,padi,coreo,coreoen,corei,tck,tdi,tdo, bsshft,bscapt,bsupdi,bsupdo,bsdrive,bshighz); end generate; map0: if tech /= 0 generate - x0: scanregi generic map (tech) + x0: scanregi generic map (tech,intesten) port map (padi, corei, tck, tdo1, tdo, bsshft, bscapt, bsupdi, bsdrive, bshighz); x1: scanregto generic map (tech, hzsup, oepol) port map (pado, padoen, coreo, coreo, coreoen, diff --git a/lib/techmap/maps/sdram_phy.vhd b/lib/techmap/maps/sdram_phy.vhd index da3f49c1..0fcceb8d 100644 --- a/lib/techmap/maps/sdram_phy.vhd +++ b/lib/techmap/maps/sdram_phy.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -59,7 +59,7 @@ entity sdram_phy is laddr : in std_logic_vector(aw-1 downto 0); ldq_din : out std_logic_vector(dw-1 downto 0); ldq_dout : in std_logic_vector(dw-1 downto 0); - ldq_oen : in std_logic; + ldq_oen : in std_logic_vector(dw-1 downto 0); lcke : in std_logic_vector(ncs-1 downto 0); lsn : in std_logic_vector(ncs-1 downto 0); lwen : in std_ulogic; @@ -91,6 +91,7 @@ architecture rtl of sdram_phy is signal ldqmx : std_logic_vector(dw/8-1 downto 0); signal oen : std_ulogic; + signal voen : std_logic_vector(dw-1 downto 0); -- Determines if there is a customized phy available for target tech, -- otherwise a generic PHY will be built @@ -105,13 +106,14 @@ architecture rtl of sdram_phy is begin - oen <= not ldq_oen when padoen_polarity(tech) /= oepol else ldq_oen; + oen <= not ldq_oen(0) when padoen_polarity(tech) /= oepol else ldq_oen(0); + voen <= not ldq_oen when padoen_polarity(tech) /= oepol else ldq_oen; nopadregs : if (reg = 0) or (tech_has_padregs(tech) /= 0) generate laddrx <= laddr; ldq_din <= ldq_dinx; ldq_doutx <= ldq_dout; - ldq_oenx <= (others => oen); + ldq_oenx <= voen; lckex <= lcke; lsnx <= lsn; lwenx <= lwen; diff --git a/lib/techmap/maps/skew_outpad.vhd b/lib/techmap/maps/skew_outpad.vhd index dbf39c15..8af9077d 100644 --- a/lib/techmap/maps/skew_outpad.vhd +++ b/lib/techmap/maps/skew_outpad.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/spictrl_net.vhd b/lib/techmap/maps/spictrl_net.vhd index 5792f43d..e206dce5 100644 --- a/lib/techmap/maps/spictrl_net.vhd +++ b/lib/techmap/maps/spictrl_net.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -41,7 +41,11 @@ entity spictrl_net is acntbits : integer range 1 to 32 := 32; aslvsel : integer range 0 to 1 := 0; twen : integer range 0 to 1 := 1; - maxwlen : integer range 0 to 15 := 0 + maxwlen : integer range 0 to 15 := 0; + automask0 : integer := 0; + automask1 : integer := 0; + automask2 : integer := 0; + automask3 : integer := 0 ); port ( rstn : in std_ulogic; @@ -64,6 +68,7 @@ entity spictrl_net is spii_sck : in std_ulogic; spii_spisel : in std_ulogic; spii_astart : in std_ulogic; + spii_cstart : in std_ulogic; spio_miso : out std_ulogic; spio_misooen : out std_ulogic; spio_mosi : out std_ulogic; @@ -72,6 +77,7 @@ entity spictrl_net is spio_sckoen : out std_ulogic; spio_enable : out std_ulogic; spio_astart : out std_ulogic; + spio_aready : out std_ulogic; slvsel : out std_logic_vector((slvselsz-1) downto 0) ); end entity spictrl_net; @@ -103,6 +109,7 @@ architecture rtl of spictrl_net is spii_sck : in std_ulogic; spii_spisel : in std_ulogic; spii_astart : in std_ulogic; + spii_cstart : in std_ulogic; spio_miso : out std_ulogic; spio_misooen : out std_ulogic; spio_mosi : out std_ulogic; @@ -111,6 +118,7 @@ architecture rtl of spictrl_net is spio_sckoen : out std_ulogic; spio_enable : out std_ulogic; spio_astart : out std_ulogic; + spio_aready : out std_ulogic; slvsel : out std_logic_vector((slvselsz-1) downto 0)); end component; @@ -142,6 +150,7 @@ begin spii_sck => spii_sck, spii_spisel => spii_spisel, spii_astart => spii_astart, + spii_cstart => spii_cstart, spio_miso => spio_miso, spio_misooen => spio_misooen, spio_mosi => spio_mosi, @@ -150,6 +159,7 @@ begin spio_sckoen => spio_sckoen, spio_enable => spio_enable, spio_astart => spio_astart, + spio_aready => spio_aready, slvsel => slvsel); end generate; diff --git a/lib/techmap/maps/ssrctrl_net.vhd b/lib/techmap/maps/ssrctrl_net.vhd index 4cd65b0c..ad27eba3 100644 --- a/lib/techmap/maps/ssrctrl_net.vhd +++ b/lib/techmap/maps/ssrctrl_net.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -47,14 +47,13 @@ entity ssrctrl_net is n_ahbsi_hmaster: in Std_Logic_Vector(3 downto 0); n_ahbsi_hmastlock:in Std_Logic; n_ahbsi_hmbsel: in Std_Logic_Vector(0 to 3); - n_ahbsi_hcache: in Std_Logic; n_ahbsi_hirq: in Std_Logic_Vector(31 downto 0); n_ahbso_hready: out Std_Logic; n_ahbso_hresp: out Std_Logic_Vector(1 downto 0); n_ahbso_hrdata: out Std_Logic_Vector(31 downto 0); n_ahbso_hsplit: out Std_Logic_Vector(15 downto 0); - n_ahbso_hcache: out Std_Logic; + n_ahbso_hirq: out Std_Logic_Vector(31 downto 0); n_apbi_psel: in Std_Logic_Vector(0 to 15); @@ -177,6 +176,8 @@ architecture rtl of ssrctrl_net is n_sro_ce: out Std_Logic); end component; + signal gnd : std_ulogic; + begin xil : if (is_unisim(tech) = 1) and (bus16 = 1) generate ssrctrlxil: ssrctrl_unisim @@ -195,13 +196,13 @@ begin n_ahbsi_hmaster => n_ahbsi_hmaster, n_ahbsi_hmastlock => n_ahbsi_hmastlock, n_ahbsi_hmbsel => n_ahbsi_hmbsel, - n_ahbsi_hcache => n_ahbsi_hcache, + n_ahbsi_hcache => gnd, n_ahbsi_hirq => n_ahbsi_hirq, n_ahbso_hready => n_ahbso_hready, n_ahbso_hresp => n_ahbso_hresp, n_ahbso_hrdata => n_ahbso_hrdata, n_ahbso_hsplit => n_ahbso_hsplit, - n_ahbso_hcache => n_ahbso_hcache, + n_ahbso_hcache => open, n_ahbso_hirq => n_ahbso_hirq, n_apbi_psel => n_apbi_psel, n_apbi_penable => n_apbi_penable, @@ -265,4 +266,4 @@ begin end generate; -- pragma translate_on -end architecture; \ No newline at end of file +end architecture; diff --git a/lib/techmap/maps/syncfifo.vhd b/lib/techmap/maps/syncfifo.vhd index e092fefd..bec91626 100644 --- a/lib/techmap/maps/syncfifo.vhd +++ b/lib/techmap/maps/syncfifo.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/syncram.vhd b/lib/techmap/maps/syncram.vhd index cc7dbb9d..e8a8eaab 100644 --- a/lib/techmap/maps/syncram.vhd +++ b/lib/techmap/maps/syncram.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -27,6 +27,7 @@ library ieee; use ieee.std_logic_1164.all; library grlib; use grlib.config.all; +use grlib.config_types.all; use grlib.stdlib.all; use work.gencomp.all; use work.allmem.all; @@ -41,16 +42,19 @@ entity syncram is dataout : out std_logic_vector((dbits -1) downto 0); enable : in std_ulogic; write : in std_ulogic; - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end; architecture rtl of syncram is - constant nctrl : integer := abits + 4; + constant nctrl : integer := abits + (TESTIN_WIDTH-2) + 2; signal rena, wena : std_logic; signal dataoutx, databp, testdata : std_logic_vector((dbits -1) downto 0); - constant SCANTESTBP : boolean := (testen = 1) and (tech /= 0); + constant SCANTESTBP : boolean := (testen = 1) and (tech /= 0) and (tech /= ut90); + signal xenable, xwrite: std_ulogic; begin + xenable <= enable and not testin(TESTIN_WIDTH-2) when testen/=0 else enable; + xwrite <= write and not testin(TESTIN_WIDTH-2) when testen/=0 else write; -- RAM bypass for scan scanbp : if SCANTESTBP generate @@ -58,7 +62,7 @@ begin variable tmp : std_logic_vector((dbits -1) downto 0); variable ctrlsigs : std_logic_vector((nctrl -1) downto 0); begin - ctrlsigs := testin(1 downto 0) & write & enable & address; + ctrlsigs := testin(TESTIN_WIDTH-3 downto 0) & write & enable & address; tmp := datain; for i in 0 to nctrl-1 loop tmp(i mod dbits) := tmp(i mod dbits) xor ctrlsigs(i); @@ -74,7 +78,7 @@ begin end process; dmuxout : for i in 0 to dbits-1 generate x0: grmux2 generic map (tech) - port map (dataoutx(i), databp(i), testin(3), dataout(i)); + port map (dataoutx(i), databp(i), testin(TESTIN_WIDTH-1), dataout(i)); end generate; end generate; @@ -87,123 +91,124 @@ begin xcv : if (tech = virtex) generate x0 : virtex_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; xc2v : if (is_unisim(tech) = 1) and (tech /= virtex) generate x0 : unisim_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; vir : if tech = memvirage generate x0 : virage_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; atrh : if tech = atc18rha generate x0 : atc18rha_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write, testin); + port map (clk, address, datain, dataoutx, xenable, xwrite, + testin(TESTIN_WIDTH-1 downto TESTIN_WIDTH-4)); end generate; axc : if (tech = axcel) or (tech = axdsp) generate x0 : axcel_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; proa : if tech = proasic generate x0 : proasic_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; umc18 : if tech = umc generate x0 : umc_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; rhu : if tech = rhumc generate x0 : rhumc_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; proa3 : if tech = apa3 generate x0 : proasic3_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; proa3e : if tech = apa3e generate x0 : proasic3e_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; proa3l : if tech = apa3l generate x0 : proasic3l_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; fus : if tech = actfus generate x0 : fusion_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; ihp : if tech = ihp25 generate x0 : ihp25_syncram generic map(abits, dbits) - port map(clk, address, datain, dataoutx, enable, write); + port map(clk, address, datain, dataoutx, xenable, xwrite); end generate; ihprh : if tech = ihp25rh generate x0 : ihp25rh_syncram generic map(abits, dbits) - port map(clk, address, datain, dataoutx, enable, write); + port map(clk, address, datain, dataoutx, xenable, xwrite); end generate; alt : if (tech = altera) or (tech = stratix1) or (tech = stratix2) or (tech = stratix3) or (tech = cyclone3) generate x0 : altera_syncram generic map(abits, dbits) - port map(clk, address, datain, dataoutx, enable, write); + port map(clk, address, datain, dataoutx, xenable, xwrite); end generate; rht : if tech = rhlib18t generate x0 : rh_lib18t_syncram generic map(abits, dbits) - port map(clk, address, datain, dataoutx, enable, write, testin(1 downto 0)); + port map(clk, address, datain, dataoutx, xenable, xwrite, testin(TESTIN_WIDTH-3 downto TESTIN_WIDTH-4)); end generate; lat : if tech = lattice generate x0 : ec_syncram generic map(abits, dbits) - port map(clk, address, datain, dataoutx, enable, write); + port map(clk, address, datain, dataoutx, xenable, xwrite); end generate; ut025 : if tech = ut25 generate x0 : ut025crh_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; ut09 : if tech = ut90 generate x0 : ut90nhbd_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; ut13 : if tech = ut130 generate x0 : ut130hbd_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; pere : if tech = peregrine generate x0 : peregrine_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; arti : if tech = memartisan generate x0 : artisan_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; cust1 : if tech = custom1 generate x0 : custom1_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; ecl : if tech = eclipse generate - rena <= enable and not write; - wena <= enable and write; + rena <= xenable and not write; + wena <= xenable and write; x0 : eclipse_syncram_2p generic map(abits, dbits) port map(clk, rena, address, dataoutx, clk, address, datain, wena); @@ -211,32 +216,32 @@ begin virage90 : if tech = memvirage90 generate x0 : virage90_syncram generic map(abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; nex : if tech = easic90 generate x0 : nextreme_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; smic : if tech = smic013 generate x0 : smic13_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; tm65gplu : if tech = tm65gpl generate x0 : tm65gplus_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; cmos9sfx : if tech = cmos9sf generate x0 : cmos9sf_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; n2x : if tech = easic45 generate x0 : n2x_syncram generic map (abits, dbits) - port map (clk, address, datain, dataoutx, enable, write); + port map (clk, address, datain, dataoutx, xenable, xwrite); end generate; -- pragma translate_off @@ -249,7 +254,7 @@ begin wait; end process; end generate; - dmsg : if grlib_debug_level >= 2 generate + dmsg : if GRLIB_CONFIG_ARRAY(grlib_debug_level) >= 2 generate x : process begin assert false report "syncram: " & tost(2**abits) & "x" & tost(dbits) & diff --git a/lib/techmap/maps/syncram128.vhd b/lib/techmap/maps/syncram128.vhd index bfe349c8..5245351f 100644 --- a/lib/techmap/maps/syncram128.vhd +++ b/lib/techmap/maps/syncram128.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -31,6 +31,7 @@ use techmap.gencomp.all; use techmap.allmem.all; library grlib; use grlib.config.all; +use grlib.config_types.all; use grlib.stdlib.all; entity syncram128 is @@ -43,7 +44,7 @@ entity syncram128 is dataout : out std_logic_vector (127+16*paren downto 0); enable : in std_logic_vector (3 downto 0); write : in std_logic_vector (3 downto 0); - testin : in std_logic_vector (3 downto 0) := "0000"); + testin : in std_logic_vector (TESTIN_WIDTH-1 downto 0) := testin_none); end; architecture rtl of syncram128 is @@ -59,27 +60,26 @@ architecture rtl of syncram128 is ); end component; -constant has_sram128 : tech_ability_type := ( - virtex2 => 1, virtex4 => 1, virtex5 => 1, spartan3 => 1, - spartan3e => 1, spartan6 => 1, virtex6 => 1, - tm65gpl => 0, easic45 => 1, others => 0); - signal dinp, doutp : std_logic_vector(143 downto 0); +signal xenable,xwrite : std_logic_vector(3 downto 0); begin + xenable <= enable when testen=0 or testin(TESTIN_WIDTH-2)='0' else "0000"; + xwrite <= write when testen=0 or testin(TESTIN_WIDTH-2)='0' else "0000"; + nopar : if paren = 0 generate s128 : if has_sram128(tech) = 1 generate uni : if (is_unisim(tech) = 1) generate x0 : unisim_syncram128 generic map (abits) - port map (clk, address, datain, dataout, enable, write); + port map (clk, address, datain, dataout, xenable, xwrite); end generate; n2x : if (tech = easic45) generate x0 : n2x_syncram_we generic map (abits => abits, dbits => 128) - port map(clk, address, datain, dataout, enable, write); + port map(clk, address, datain, dataout, xenable, xwrite); end generate; -- pragma translate_off - dmsg : if grlib_debug_level >= 2 generate + dmsg : if GRLIB_CONFIG_ARRAY(grlib_debug_level) >= 2 generate x : process begin assert false report "syncram128: " & tost(2**abits) & "x128" & diff --git a/lib/techmap/maps/syncram128bw.vhd b/lib/techmap/maps/syncram128bw.vhd index 8e50c9d0..f134c286 100644 --- a/lib/techmap/maps/syncram128bw.vhd +++ b/lib/techmap/maps/syncram128bw.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -30,6 +30,7 @@ use ieee.std_logic_1164.all; use techmap.gencomp.all; library grlib; use grlib.config.all; +use grlib.config_types.all; use grlib.stdlib.all; entity syncram128bw is @@ -41,17 +42,11 @@ entity syncram128bw is dataout : out std_logic_vector (127 downto 0); enable : in std_logic_vector (15 downto 0); write : in std_logic_vector (15 downto 0); - testin : in std_logic_vector (3 downto 0) := "0000"); + testin : in std_logic_vector (TESTIN_WIDTH-1 downto 0) := testin_none); end; architecture rtl of syncram128bw is -constant has_sram128bw : tech_ability_type := ( - virtex2 => 1, virtex4 => 1, virtex5 => 1, spartan3 => 1, - spartan3e => 1, spartan6 => 1, virtex6 => 1, - altera => 1, cyclone3 => 1, stratix2 => 1, stratix3 => 1, - ut90 => 1, others => 0); - component unisim_syncram128bw generic ( abits : integer := 9); port ( @@ -102,28 +97,33 @@ constant has_sram128bw : tech_ability_type := ( ); end component; + signal xenable, xwrite : std_logic_vector(15 downto 0); + begin + xenable <= enable when testen=0 or testin(TESTIN_WIDTH-2)='0' else (others => '0'); + xwrite <= write when testen=0 or testin(TESTIN_WIDTH-2)='0' else (others => '0'); + s64 : if has_sram128bw(tech) = 1 generate xc2v : if (is_unisim(tech) = 1) generate x0 : unisim_syncram128bw generic map (abits) - port map (clk, address, datain, dataout, enable, write); + port map (clk, address, datain, dataout, xenable, xwrite); end generate; alt : if (tech = stratix2) or (tech = stratix3) or (tech = cyclone3) or (tech = altera) generate x0 : altera_syncram128bw generic map (abits) - port map (clk, address, datain, dataout, enable, write); + port map (clk, address, datain, dataout, xenable, xwrite); end generate; tm65: if tech = tm65gpl generate x0 : tm65gpl_syncram128bw generic map (abits) - port map (clk, address, datain, dataout, enable, write, testin); + port map (clk, address, datain, dataout, xenable, xwrite, testin); end generate; ut09: if tech = ut90 generate x0 : ut90nhbd_syncram128bw generic map (abits) - port map (clk, address, datain, dataout, enable, write, testin); + port map (clk, address, datain, dataout, xenable, xwrite, testin); end generate; -- pragma translate_off - dmsg : if grlib_debug_level >= 2 generate + dmsg : if GRLIB_CONFIG_ARRAY(grlib_debug_level) >= 2 generate x : process begin assert false report "syncram128bw: " & tost(2**abits) & "x128" & diff --git a/lib/techmap/maps/syncram156bw.vhd b/lib/techmap/maps/syncram156bw.vhd index d85177b4..4196da01 100644 --- a/lib/techmap/maps/syncram156bw.vhd +++ b/lib/techmap/maps/syncram156bw.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -29,7 +29,11 @@ library ieee; library techmap; use ieee.std_logic_1164.all; use techmap.gencomp.all; - +library grlib; +use grlib.config.all; +use grlib.config_types.all; +use grlib.stdlib.all; + entity syncram156bw is generic (tech : integer := 0; abits : integer := 6; testen : integer := 0); port ( @@ -39,17 +43,11 @@ entity syncram156bw is dataout : out std_logic_vector (155 downto 0); enable : in std_logic_vector (15 downto 0); write : in std_logic_vector (15 downto 0); - testin : in std_logic_vector (3 downto 0) := "0000"); + testin : in std_logic_vector (TESTIN_WIDTH-1 downto 0) := testin_none); end; architecture rtl of syncram156bw is -constant has_sram156bw : tech_ability_type := ( - virtex2 => 0, virtex4 => 0, virtex5 => 0, spartan3 => 0, - spartan3e => 0, spartan6 => 0, virtex6 => 0, - altera => 0, cyclone3 => 0, stratix2 => 0, stratix3 => 0, - tm65gpl => 0, custom1 => 1, ut90 => 1, others => 0); - -- component unisim_syncram128bw -- generic ( abits : integer := 9); -- port ( @@ -99,8 +97,13 @@ constant has_sram156bw : tech_ability_type := ( testin : in std_logic_vector (3 downto 0) := "0000"); end component; + signal xenable, xwrite : std_logic_vector(15 downto 0); + begin + xenable <= enable when testen=0 or testin(TESTIN_WIDTH-2)='0' else (others => '0'); + xwrite <= write when testen=0 or testin(TESTIN_WIDTH-2)='0' else (others => '0'); + s156 : if has_sram156bw(tech) = 1 generate -- xc2v : if (is_unisim(tech) = 1) generate -- x0 : unisim_syncram128bw generic map (abits) @@ -113,12 +116,23 @@ begin -- end generate; cust1u : if tech = custom1 generate x0 : cust1_syncram156bw generic map (abits, testen) - port map (clk, address, datain, dataout, enable, write, testin); + port map (clk, address, datain, dataout, xenable, xwrite, testin); end generate; ut90u : if tech = ut90 generate x0 : ut90nhbd_syncram156bw generic map (abits, testen) - port map (clk, address, datain, dataout, enable, write, testin); + port map (clk, address, datain, dataout, xenable, xwrite, testin); + end generate; +-- pragma translate_off + dmsg : if GRLIB_CONFIG_ARRAY(grlib_debug_level) >= 2 generate + x : process + begin + assert false report "syncram156bw: " & tost(2**abits) & "x156" & + " (" & tech_table(tech) & ")" + severity note; + wait; + end process; end generate; +-- pragma translate_on end generate; nos156 : if has_sram156bw(tech) = 0 generate diff --git a/lib/techmap/maps/syncram256bw.vhd b/lib/techmap/maps/syncram256bw.vhd index c02e59ec..7976c986 100644 --- a/lib/techmap/maps/syncram256bw.vhd +++ b/lib/techmap/maps/syncram256bw.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -30,6 +30,7 @@ use ieee.std_logic_1164.all; use techmap.gencomp.all; library grlib; use grlib.config.all; +use grlib.config_types.all; use grlib.stdlib.all; entity syncram256bw is @@ -41,17 +42,11 @@ entity syncram256bw is dataout : out std_logic_vector (255 downto 0); enable : in std_logic_vector (31 downto 0); write : in std_logic_vector (31 downto 0); - testin : in std_logic_vector (3 downto 0) := "0000"); + testin : in std_logic_vector (TESTIN_WIDTH-1 downto 0) := testin_none); end; architecture rtl of syncram256bw is -constant has_sram256bw : tech_ability_type := ( - virtex2 => 1, virtex4 => 1, virtex5 => 1, spartan3 => 1, - spartan3e => 1, spartan6 => 1, virtex6 => 1, - altera => 1, cyclone3 => 1, stratix2 => 1, stratix3 => 1, - tm65gpl => 0, cmos9sf => 1, others => 0); - component unisim_syncram128bw generic ( abits : integer := 9); port ( @@ -114,34 +109,39 @@ constant has_sram256bw : tech_ability_type := ( ); end component; + signal xenable, xwrite : std_logic_vector(31 downto 0); + begin + xenable <= enable when testen=0 or testin(TESTIN_WIDTH-2)='0' else (others => '0'); + xwrite <= write when testen=0 or testin(TESTIN_WIDTH-2)='0' else (others => '0'); + s256 : if has_sram256bw(tech) = 1 generate uni : if (is_unisim(tech) = 1) generate x0 : unisim_syncram128bw generic map (abits) port map (clk, address, datain(127 downto 0), dataout(127 downto 0), - enable(15 downto 0), write(15 downto 0)); + xenable(15 downto 0), xwrite(15 downto 0)); x1 : unisim_syncram128bw generic map (abits) port map (clk, address, datain(255 downto 128), dataout(255 downto 128), - enable(31 downto 16), write(31 downto 16)); + xenable(31 downto 16), xwrite(31 downto 16)); end generate; alt : if (tech = stratix2) or (tech = stratix3) or (tech = cyclone3) or (tech = altera) generate x0 : altera_syncram256bw generic map (abits) - port map (clk, address, datain, dataout, enable, write); + port map (clk, address, datain, dataout, xenable, xwrite); end generate; tm65: if tech = tm65gpl generate x0 : tm65gpl_syncram256bw generic map (abits) - port map (clk, address, datain, dataout, enable, write, testin); + port map (clk, address, datain, dataout, xenable, xwrite, testin); end generate; cm9s: if tech = cmos9sf generate x0 : cmos9sf_syncram256bw generic map (abits) - port map (clk, address, datain, dataout, enable, write, testin); + port map (clk, address, datain, dataout, xenable, xwrite, testin); end generate; -- pragma translate_off - dmsg : if grlib_debug_level >= 2 generate + dmsg : if GRLIB_CONFIG_ARRAY(grlib_debug_level) >= 2 generate x : process begin assert false report "syncram256bw: " & tost(2**abits) & "x256" & diff --git a/lib/techmap/maps/syncram64.vhd b/lib/techmap/maps/syncram64.vhd index 27774c74..698de667 100644 --- a/lib/techmap/maps/syncram64.vhd +++ b/lib/techmap/maps/syncram64.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -31,6 +31,7 @@ use techmap.gencomp.all; use techmap.allmem.all; library grlib; use grlib.config.all; +use grlib.config_types.all; use grlib.stdlib.all; entity syncram64 is @@ -43,7 +44,7 @@ entity syncram64 is dataout : out std_logic_vector (63+8*paren downto 0); enable : in std_logic_vector (1 downto 0); write : in std_logic_vector (1 downto 0); - testin : in std_logic_vector (3 downto 0) := "0000" + testin : in std_logic_vector (TESTIN_WIDTH-1 downto 0) := testin_none ); end; @@ -97,34 +98,36 @@ architecture rtl of syncram64 is end component; signal dinp, doutp : std_logic_vector(71 downto 0); +signal xenable : std_logic_vector(1 downto 0); begin + xenable <= enable when testen=0 or testin(TESTIN_WIDTH-2)='0' else "00"; nopar : if paren = 0 generate s64 : if has_sram64(tech) = 1 generate xc2v : if (is_unisim(tech) = 1) generate x0 : unisim_syncram64 generic map (abits) - port map (clk, address, datain(63 downto 0), dataout(63 downto 0), enable, write); + port map (clk, address, datain(63 downto 0), dataout(63 downto 0), xenable, write); end generate; arti : if tech = memartisan generate x0 : artisan_syncram64 generic map (abits) - port map (clk, address, datain(63 downto 0), dataout(63 downto 0), enable, write); + port map (clk, address, datain(63 downto 0), dataout(63 downto 0), xenable, write); end generate; cust1: if tech = custom1 generate x0 : custom1_syncram64 generic map (abits) - port map (clk, address, datain(63 downto 0), dataout(63 downto 0), enable, write); + port map (clk, address, datain(63 downto 0), dataout(63 downto 0), xenable, write); end generate; smic: if tech = smic013 generate x0 : smic13_syncram64 generic map (abits) - port map (clk, address, datain(63 downto 0), dataout(63 downto 0), enable, write); + port map (clk, address, datain(63 downto 0), dataout(63 downto 0), xenable, write); end generate; n2x : if tech = easic45 generate x0 : n2x_syncram_we generic map (abits => abits, dbits => 64) - port map(clk, address, datain(63 downto 0), dataout(63 downto 0), enable, write); + port map(clk, address, datain(63 downto 0), dataout(63 downto 0), xenable, write); end generate; -- pragma translate_off - dmsg : if grlib_debug_level >= 2 generate + dmsg : if GRLIB_CONFIG_ARRAY(grlib_debug_level) >= 2 generate x : process begin assert false report "syncram64: " & tost(2**abits) & "x64" & diff --git a/lib/techmap/maps/syncram_2p.vhd b/lib/techmap/maps/syncram_2p.vhd index a1ea09b5..437feae9 100644 --- a/lib/techmap/maps/syncram_2p.vhd +++ b/lib/techmap/maps/syncram_2p.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -30,6 +30,7 @@ use techmap.gencomp.all; use work.allmem.all; library grlib; use grlib.config.all; +use grlib.config_types.all; use grlib.stdlib.all; entity syncram_2p is @@ -45,32 +46,36 @@ entity syncram_2p is write : in std_ulogic; waddress : in std_logic_vector((abits -1) downto 0); datain : in std_logic_vector((dbits -1) downto 0); - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end; architecture rtl of syncram_2p is -constant nctrl : integer := abits*2 + 4; +constant nctrl : integer := abits*2 + (TESTIN_WIDTH-2) + 2; signal gnd : std_ulogic; signal vgnd : std_logic_vector(dbits-1 downto 0); signal dataoutx : std_logic_vector((dbits -1) downto 0); signal databp, testdata : std_logic_vector((dbits -1) downto 0); signal renable2 : std_ulogic; -constant SCANTESTBP : boolean := (testen = 1) and (tech /= 0); +constant SCANTESTBP : boolean := (testen = 1) and (tech /= 0) and (tech /= ut90); constant iwrfst : integer := (1-syncram_2p_write_through(tech)) * wrfst; +signal xrenable,xwrite : std_ulogic; begin gnd <= '0'; vgnd <= (others => '0'); + xrenable <= renable and not testin(TESTIN_WIDTH-2) when testen/=0 else renable; + xwrite <= write and not testin(TESTIN_WIDTH-2) when testen/=0 else write; + no_wrfst : if iwrfst = 0 generate scanbp : if SCANTESTBP generate comb : process (waddress, raddress, datain, renable, write, testin) variable tmp : std_logic_vector((dbits -1) downto 0); variable ctrlsigs : std_logic_vector((nctrl -1) downto 0); begin - ctrlsigs := testin(1 downto 0) & write & renable & raddress & waddress; + ctrlsigs := testin(TESTIN_WIDTH-3 downto 0) & write & renable & raddress & waddress; tmp := datain; for i in 0 to nctrl-1 loop tmp(i mod dbits) := tmp(i mod dbits) xor ctrlsigs(i); @@ -82,13 +87,13 @@ begin end process; dmuxout : for i in 0 to dbits-1 generate x0 : grmux2 generic map (tech) - port map (dataoutx(i), databp(i), testin(3), dataout(i)); + port map (dataoutx(i), databp(i), testin(TESTIN_WIDTH-1), dataout(i)); end generate; end generate; noscanbp : if not SCANTESTBP generate dataout <= dataoutx; end generate; -- Write contention check (if applicable) renable2 <= '0' when ((sepclk = 0 and syncram_2p_dest_rw_collision(tech) = 1) and - (renable and write) = '1' and raddress = waddress) else renable; + (renable and write) = '1' and raddress = waddress) else xrenable; end generate; wrfst_gen : if iwrfst = 1 generate @@ -105,7 +110,7 @@ begin signal r : wrfst_type; begin comb : process(r, dataoutx, testin) begin - if (SCANTESTBP and (testin(3) = '1')) or + if (SCANTESTBP and (testin(TESTIN_WIDTH-1) = '1')) or (((r.write and r.renable) = '1') and (r.raddr = r.waddr)) then dataout <= r.datain; else dataout <= dataoutx; end if; @@ -118,7 +123,7 @@ begin end if; end process; end block wfrstblocknoc; - renable2 <= renable; + renable2 <= xrenable; end generate; -- Risk of read/write contention. Use same comparator to gate read enable -- and mux data. @@ -127,14 +132,14 @@ begin signal col, mux : std_ulogic; signal rdatain : std_logic_vector((dbits-1) downto 0); begin - comb : process(mux, renable, write, raddress, waddress, rdatain, + comb : process(mux, xrenable, write, raddress, waddress, rdatain, dataoutx, testin) begin - col <= '0'; renable2 <= renable; + col <= '0'; renable2 <= xrenable; if (write and renable) = '1' and raddress = waddress then col <= '1'; renable2 <= '0'; end if; - if (SCANTESTBP and (testin(3) = '1')) or mux = '1' then + if (SCANTESTBP and (testin(TESTIN_WIDTH-1) = '1')) or mux = '1' then dataout <= rdatain; else dataout <= dataoutx; end if; end process; @@ -154,25 +159,25 @@ begin xcv : if tech = virtex generate x0 : virtex_syncram_dp generic map (abits, dbits) - port map (wclk, waddress, datain, open, write, write, + port map (wclk, waddress, datain, open, xwrite, xwrite, rclk, raddress, vgnd, dataoutx, renable2, gnd); end generate; xc2v : if (is_unisim(tech) = 1) and (tech /= virtex)generate x0 : unisim_syncram_2p generic map (abits, dbits, sepclk, iwrfst) port map (rclk, renable2, raddress, dataoutx, wclk, - write, waddress, datain); + xwrite, waddress, datain); end generate; vir : if tech = memvirage generate d39 : if dbits = 39 generate x0 : virage_syncram_2p generic map (abits, dbits, sepclk) port map (rclk, renable2, raddress, dataoutx, - wclk, write, waddress, datain); + wclk, xwrite, waddress, datain); end generate; d32 : if dbits <= 32 generate x0 : virage_syncram_dp generic map (abits, dbits) - port map (wclk, waddress, datain, open, write, write, + port map (wclk, waddress, datain, open, xwrite, xwrite, rclk, raddress, vgnd, dataoutx, renable2, gnd); end generate; end generate; @@ -180,48 +185,48 @@ begin atrh : if tech = atc18rha generate x0 : atc18rha_syncram_2p generic map (abits, dbits, sepclk) port map (rclk, renable2, raddress, dataoutx, - wclk, write, waddress, datain, testin); + wclk, xwrite, waddress, datain, testin(TESTIN_WIDTH-1 downto TESTIN_WIDTH-4)); end generate; axc : if (tech = axcel) or (tech = axdsp) generate x0 : axcel_syncram_2p generic map (abits, dbits, sepclk) port map (rclk, renable2, raddress, dataoutx, - wclk, waddress, datain, write); + wclk, waddress, datain, xwrite); end generate; proa : if tech = proasic generate x0 : proasic_syncram_2p generic map (abits, dbits) port map (rclk, renable2, raddress, dataoutx, - wclk, waddress, datain, write); + wclk, waddress, datain, xwrite); end generate; proa3 : if tech = apa3 generate x0 : proasic3_syncram_2p generic map (abits, dbits, sepclk) port map (rclk, renable2, raddress, dataoutx, - wclk, waddress, datain, write); + wclk, waddress, datain, xwrite); end generate; proa3e : if tech = apa3e generate x0 : proasic3e_syncram_2p generic map (abits, dbits, sepclk) port map (rclk, renable2, raddress, dataoutx, - wclk, waddress, datain, write); + wclk, waddress, datain, xwrite); end generate; proa3l : if tech = apa3l generate x0 : proasic3l_syncram_2p generic map (abits, dbits, sepclk) port map (rclk, renable2, raddress, dataoutx, - wclk, waddress, datain, write); + wclk, waddress, datain, xwrite); end generate; fus : if tech = actfus generate x0 : fusion_syncram_2p generic map (abits, dbits) port map (rclk, renable2, raddress, dataoutx, - wclk, waddress, datain, write); + wclk, waddress, datain, xwrite); end generate; ihp : if tech = ihp25 generate x0 : generic_syncram_2p generic map (abits, dbits, sepclk) - port map (rclk, wclk, raddress, waddress, datain, write, dataoutx); + port map (rclk, wclk, raddress, waddress, datain, xwrite, dataoutx); end generate; -- NOTE: port 1 on altsyncram must be a read port due to Cyclone II M4K write issue @@ -229,90 +234,91 @@ begin (tech = stratix3) or (tech = cyclone3) generate x0 : altera_syncram_dp generic map (abits, dbits) port map (rclk, raddress, vgnd, dataoutx, renable2, gnd, - wclk, waddress, datain, open, write, write); + wclk, waddress, datain, open, xwrite, xwrite); end generate; rh_lib18t0 : if tech = rhlib18t generate x0 : rh_lib18t_syncram_2p generic map (abits, dbits, sepclk) - port map (rclk, renable2, raddress, dataoutx, wclk, write, waddress, datain, testin); + port map (rclk, renable2, raddress, dataoutx, wclk, xwrite, waddress, datain, + testin(TESTIN_WIDTH-1 downto TESTIN_WIDTH-4)); end generate; lat : if tech = lattice generate x0 : ec_syncram_dp generic map (abits, dbits) - port map (wclk, waddress, datain, open, write, write, + port map (wclk, waddress, datain, open, xwrite, xwrite, rclk, raddress, vgnd, dataoutx, renable2, gnd); end generate; ut025 : if tech = ut25 generate x0 : ut025crh_syncram_2p generic map (abits, dbits) port map (rclk, renable2, raddress, dataoutx, - wclk, waddress, datain, write); + wclk, waddress, datain, xwrite); end generate; ut09 : if tech = ut90 generate x0 : ut90nhbd_syncram_2p generic map (abits, dbits) port map (rclk, renable2, raddress, dataoutx, - wclk, write, waddress, datain); + wclk, xwrite, waddress, datain); end generate; ut13 : if tech = ut130 generate x0 : ut130hbd_syncram_2p generic map (abits, dbits, words) port map (rclk, renable2, raddress, dataoutx, - wclk, write, waddress, datain); + wclk, xwrite, waddress, datain); end generate; arti : if tech = memartisan generate x0 : artisan_syncram_2p generic map (abits, dbits) port map (rclk, renable2, raddress, dataoutx, - wclk, write, waddress, datain); + wclk, xwrite, waddress, datain); end generate; cust1 : if tech = custom1 generate x0 : custom1_syncram_2p generic map (abits, dbits) port map (rclk, renable2, raddress, dataoutx, - wclk, write, waddress, datain); + wclk, xwrite, waddress, datain); end generate; ecl : if tech = eclipse generate x0 : eclipse_syncram_2p generic map (abits, dbits) port map (rclk, renable2, raddress, dataoutx, - wclk, waddress, datain, write); + wclk, waddress, datain, xwrite); end generate; vir90 : if tech = memvirage90 generate x0 : virage90_syncram_dp generic map (abits, dbits) - port map (wclk, waddress, datain, open, write, write, + port map (wclk, waddress, datain, open, xwrite, xwrite, rclk, raddress, vgnd, dataoutx, renable2, gnd); end generate; nex : if tech = easic90 generate x0 : nextreme_syncram_2p generic map (abits, dbits) port map (rclk, renable2, raddress, dataoutx, - wclk, write, waddress, datain); + wclk, xwrite, waddress, datain); end generate; smic : if tech = smic013 generate x0 : smic13_syncram_2p generic map (abits, dbits) port map (rclk, renable2, raddress, dataoutx, - wclk, write, waddress, datain); + wclk, xwrite, waddress, datain); end generate; tm65gplu : if tech = tm65gpl generate x0 : tm65gplus_syncram_2p generic map (abits, dbits) port map (rclk, renable2, raddress, dataoutx, - wclk, write, waddress, datain); + wclk, xwrite, waddress, datain); end generate; cmos9sfx : if tech = cmos9sf generate x0 : cmos9sf_syncram_2p generic map (abits, dbits) port map (rclk, renable2, raddress, dataoutx, - wclk, write, waddress, datain); + wclk, xwrite, waddress, datain); end generate; n2x : if tech = easic45 generate x0 : n2x_syncram_2p generic map (abits, dbits, sepclk, iwrfst) port map (rclk, renable2, raddress, dataoutx, wclk, - write, waddress, datain); + xwrite, waddress, datain); end generate; -- pragma translate_off @@ -325,7 +331,7 @@ begin wait; end process; end generate; - dmsg : if grlib_debug_level >= 2 generate + dmsg : if GRLIB_CONFIG_ARRAY(grlib_debug_level) >= 2 generate x : process begin assert false report "syncram_2p: " & tost(2**abits) & "x" & tost(dbits) & diff --git a/lib/techmap/maps/syncram_2pbw.vhd b/lib/techmap/maps/syncram_2pbw.vhd index 86bb40d6..dfc77172 100644 --- a/lib/techmap/maps/syncram_2pbw.vhd +++ b/lib/techmap/maps/syncram_2pbw.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -31,6 +31,7 @@ use techmap.gencomp.all; use techmap.allmem.all; library grlib; use grlib.config.all; +use grlib.config_types.all; use grlib.stdlib.all; entity syncram_2pbw is @@ -46,24 +47,26 @@ entity syncram_2pbw is write : in std_logic_vector((dbits/8-1) downto 0); waddress : in std_logic_vector((abits-1) downto 0); datain : in std_logic_vector((dbits-1) downto 0); - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end; architecture rtl of syncram_2pbw is - - constant has_sram_2pbw : tech_ability_type := ( - easic45 => 1, others => 0); constant nctrl : integer := abits*2 + 2 + 2*dbits/8; signal dataoutx : std_logic_vector((dbits -1) downto 0); signal databp, testdata : std_logic_vector((dbits -1) downto 0); signal renable2 : std_logic_vector((dbits/8-1) downto 0); - constant SCANTESTBP : boolean := (testen = 1) and (tech /= 0); + constant SCANTESTBP : boolean := (testen = 1) and (tech /= 0) and (tech /= ut90); constant iwrfst : integer := (1-syncram_2p_write_through(tech)) * wrfst; + signal xrenable,xwrite : std_logic_vector(dbits/8-1 downto 0); + begin + xrenable <= renable when testen=0 or testin(TESTIN_WIDTH-2)='0' else (others => '0'); + xwrite <= write when testen=0 or testin(TESTIN_WIDTH-2)='0' else (others => '0'); + s2pbw : if has_sram_2pbw(tech) = 1 generate no_wrfst : if iwrfst = 0 generate scanbp : if SCANTESTBP generate @@ -169,7 +172,7 @@ begin wait; end process; end generate; - dmsg : if grlib_debug_level >= 2 generate + dmsg : if GRLIB_CONFIG_ARRAY(grlib_debug_level) >= 2 generate x : process begin assert false report "syncram_2pbw: " & tost(2**abits) & "x" & tost(dbits) & diff --git a/lib/techmap/maps/syncram_dp.vhd b/lib/techmap/maps/syncram_dp.vhd index c642d426..5fd1bb11 100644 --- a/lib/techmap/maps/syncram_dp.vhd +++ b/lib/techmap/maps/syncram_dp.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -30,6 +30,7 @@ use techmap.gencomp.all; use work.allmem.all; library grlib; use grlib.config.all; +use grlib.config_types.all; use grlib.stdlib.all; entity syncram_dp is @@ -48,12 +49,18 @@ entity syncram_dp is dataout2 : out std_logic_vector((dbits -1) downto 0); enable2 : in std_ulogic; write2 : in std_ulogic; - testin : in std_logic_vector(3 downto 0) := "0000"); + testin : in std_logic_vector(TESTIN_WIDTH-1 downto 0) := testin_none); end; architecture rtl of syncram_dp is + signal xenable1,xenable2,xwrite1,xwrite2: std_ulogic; begin + xenable1 <= enable1 and not testin(TESTIN_WIDTH-2) when testen/=0 else enable1; + xenable2 <= enable2 and not testin(TESTIN_WIDTH-2) when testen/=0 else enable2; + xwrite1 <= write1 and not testin(TESTIN_WIDTH-2) when testen/=0 else write1; + xwrite2 <= write2 and not testin(TESTIN_WIDTH-2) when testen/=0 else write2; + -- pragma translate_off inf : if has_dpram(tech) = 0 generate x : process @@ -64,7 +71,7 @@ begin wait; end process; end generate; - dmsg : if grlib_debug_level >= 2 generate + dmsg : if GRLIB_CONFIG_ARRAY(grlib_debug_level) >= 2 generate x : process begin assert false report "syncram_dp: " & tost(2**abits) & "x" & tost(dbits) & @@ -78,99 +85,100 @@ begin xcv : if (tech = virtex) generate x0 : virtex_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; xc2v : if (is_unisim(tech) = 1) and (tech /= virtex) generate x0 : unisim_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; vir : if tech = memvirage generate x0 : virage_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; arti : if tech = memartisan generate x0 : artisan_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; pa3 : if tech = apa3 generate x0 : proasic3_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; pa3e : if tech = apa3e generate x0 : proasic3e_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; pa3l : if tech = apa3l generate x0 : proasic3l_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; fus : if tech = actfus generate x0 : fusion_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; alt : if (tech = altera) or (tech = stratix1) or (tech = stratix2) or (tech = stratix3) or (tech = cyclone3) generate x0 : altera_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; lat : if tech = lattice generate x0 : ec_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; vir90 : if tech = memvirage90 generate x0 : virage90_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; atrh : if tech = atc18rha generate x0 : atc18rha_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2, testin); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2, + testin(TESTIN_WIDTH-1 downto TESTIN_WIDTH-4)); end generate; smic : if tech = smic013 generate x0 : smic13_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; tm65gplu : if tech = tm65gpl generate x0 : tm65gplus_syncram_dp generic map (abits, dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; n2x : if tech = easic45 generate x0 : n2x_syncram_dp generic map (abits => abits, dbits => dbits, sepclk => 1) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; ut9 : if tech = ut90 generate x0 : ut90nhbd_syncram_dp generic map (abits => abits, dbits => dbits) - port map (clk1, address1, datain1, dataout1, enable1, write1, - clk2, address2, datain2, dataout2, enable2, write2); + port map (clk1, address1, datain1, dataout1, xenable1, xwrite1, + clk2, address2, datain2, dataout2, xenable2, xwrite2); end generate; end; diff --git a/lib/techmap/maps/syncrambw.vhd b/lib/techmap/maps/syncrambw.vhd index 22ba3556..a9697694 100644 --- a/lib/techmap/maps/syncrambw.vhd +++ b/lib/techmap/maps/syncrambw.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -31,6 +31,7 @@ use techmap.gencomp.all; use techmap.allmem.all; library grlib; use grlib.config.all; +use grlib.config_types.all; use grlib.stdlib.all; entity syncrambw is @@ -43,19 +44,22 @@ entity syncrambw is dataout : out std_logic_vector (dbits-1 downto 0); enable : in std_logic_vector (dbits/8-1 downto 0); write : in std_logic_vector (dbits/8-1 downto 0); - testin : in std_logic_vector (3 downto 0) := "0000"); + testin : in std_logic_vector (TESTIN_WIDTH-1 downto 0) := testin_none); end; architecture rtl of syncrambw is - constant has_srambw : tech_ability_type := (easic45 => 1, others => 0); - - constant nctrl : integer := abits + 2 + 2*dbits/8; + constant nctrl : integer := abits + (TESTIN_WIDTH-2) + 2*dbits/8; signal dataoutx, databp, testdata : std_logic_vector((dbits -1) downto 0); - constant SCANTESTBP : boolean := (testen = 1) and (tech /= 0); + constant SCANTESTBP : boolean := (testen = 1) and (tech /= 0) and (tech /= ut90); + + signal xenable, xwrite : std_logic_vector(dbits/8-1 downto 0); begin + xenable <= enable when testen=0 or testin(TESTIN_WIDTH-2)='0' else (others => '0'); + xwrite <= write when testen=0 or testin(TESTIN_WIDTH-2)='0' else (others => '0'); + sbw : if has_srambw(tech) = 1 generate -- RAM bypass for scan scanbp : if SCANTESTBP generate @@ -63,7 +67,7 @@ begin variable tmp : std_logic_vector((dbits -1) downto 0); variable ctrlsigs : std_logic_vector((nctrl -1) downto 0); begin - ctrlsigs := testin(1 downto 0) & write & enable & address; + ctrlsigs := testin(TESTIN_WIDTH-3 downto 0) & write & enable & address; tmp := datain; for i in 0 to nctrl-1 loop tmp(i mod dbits) := tmp(i mod dbits) xor ctrlsigs(i); @@ -79,7 +83,7 @@ begin end process; dmuxout : for i in 0 to dbits-1 generate x0: grmux2 generic map (tech) - port map (dataoutx(i), databp(i), testin(3), dataout(i)); + port map (dataoutx(i), databp(i), testin(TESTIN_WIDTH-1), dataout(i)); end generate; end generate; @@ -87,10 +91,10 @@ begin n2x : if tech = easic45 generate x0 : n2x_syncram_be generic map (abits, dbits) - port map (clk, address, datain, dataout, enable, write); + port map (clk, address, datain, dataout, xenable, xwrite); end generate; -- pragma translate_off - dmsg : if grlib_debug_level >= 2 generate + dmsg : if GRLIB_CONFIG_ARRAY(grlib_debug_level) >= 2 generate x : process begin assert false report "syncrambw: " & tost(2**abits) & "x" & tost(dbits) & diff --git a/lib/techmap/maps/system_monitor.vhd b/lib/techmap/maps/system_monitor.vhd index 58177fbf..dc5ba185 100644 --- a/lib/techmap/maps/system_monitor.vhd +++ b/lib/techmap/maps/system_monitor.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -199,7 +199,7 @@ architecture struct of system_monitor is begin -- struct - gen: if not ((tech = virtex5) or (tech = virtex6)) generate + gen: if not ((tech = virtex5) or (tech = virtex6) or (tech = virtex7) or (tech = kintex7)) generate alm <= (others => '0'); busy <= '0'; channel <= (others => '0'); @@ -288,4 +288,80 @@ begin -- struct vn => vn, vp => vp); end generate v6; + v7: if tech = virtex7 generate + v70 : sysmon + generic map ( + INIT_40 => INIT_40, + INIT_41 => INIT_41, + INIT_42 => INIT_42, + INIT_43 => INIT_43, + INIT_44 => INIT_44, + INIT_45 => INIT_45, + INIT_46 => INIT_46, + INIT_47 => INIT_47, + INIT_48 => INIT_48, + INIT_49 => INIT_49, + INIT_4A => INIT_4A, + INIT_4B => INIT_4B, + INIT_4C => INIT_4C, + INIT_4D => INIT_4D, + INIT_4E => INIT_4E, + INIT_4F => INIT_4F, + INIT_50 => INIT_50, + INIT_51 => INIT_51, + INIT_52 => INIT_52, + INIT_53 => INIT_53, + INIT_54 => INIT_54, + INIT_55 => INIT_55, + INIT_56 => INIT_56, + INIT_57 => INIT_57, + SIM_DEVICE => "VIRTEX7", + SIM_MONITOR_FILE => SIM_MONITOR_FILE) + port map (alm => alm, busy => busy, channel => channel, do => do, + drdy => drdy, eoc => eoc, eos => eos, jtagbusy => jtagbusy, + jtaglocked => jtaglocked, jtagmodified => jtagmodified, + ot => ot, convst => convst, convstclk => convstclk, + daddr => daddr, dclk => dclk, den => den, di => di, + dwe => dwe, reset => reset, vauxn => vauxn, vauxp => vauxp, + vn => vn, vp => vp); + end generate v7; + + k7: if tech = kintex7 generate + k70 : sysmon + generic map ( + INIT_40 => INIT_40, + INIT_41 => INIT_41, + INIT_42 => INIT_42, + INIT_43 => INIT_43, + INIT_44 => INIT_44, + INIT_45 => INIT_45, + INIT_46 => INIT_46, + INIT_47 => INIT_47, + INIT_48 => INIT_48, + INIT_49 => INIT_49, + INIT_4A => INIT_4A, + INIT_4B => INIT_4B, + INIT_4C => INIT_4C, + INIT_4D => INIT_4D, + INIT_4E => INIT_4E, + INIT_4F => INIT_4F, + INIT_50 => INIT_50, + INIT_51 => INIT_51, + INIT_52 => INIT_52, + INIT_53 => INIT_53, + INIT_54 => INIT_54, + INIT_55 => INIT_55, + INIT_56 => INIT_56, + INIT_57 => INIT_57, + SIM_DEVICE => "KINTEX7", + SIM_MONITOR_FILE => SIM_MONITOR_FILE) + port map (alm => alm, busy => busy, channel => channel, do => do, + drdy => drdy, eoc => eoc, eos => eos, jtagbusy => jtagbusy, + jtaglocked => jtaglocked, jtagmodified => jtagmodified, + ot => ot, convst => convst, convstclk => convstclk, + daddr => daddr, dclk => dclk, den => den, di => di, + dwe => dwe, reset => reset, vauxn => vauxn, vauxp => vauxp, + vn => vn, vp => vp); + end generate k7; + end struct; diff --git a/lib/techmap/maps/tap.vhd b/lib/techmap/maps/tap.vhd index f489e313..d99c3b32 100644 --- a/lib/techmap/maps/tap.vhd +++ b/lib/techmap/maps/tap.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -41,7 +41,8 @@ entity tap is part : integer range 0 to 65535 := 0; ver : integer range 0 to 15 := 0; trsten : integer range 0 to 1 := 1; - scantest : integer := 0); + scantest : integer := 0; + oepol : integer := 1); port ( trst : in std_ulogic; tck : in std_ulogic; @@ -62,6 +63,7 @@ entity tap is tapi_tdo2 : in std_ulogic; testen : in std_ulogic := '0'; testrst : in std_ulogic := '1'; + testoen : in std_ulogic := '0'; tdoen : out std_ulogic ); end; @@ -101,6 +103,26 @@ begin tapo_inst <= (others => '0'); tdoen <= '0'; tdo <= '0'; end generate; + xc7v : if tech = virtex7 generate + u0 : virtex7_tap port map (tapi_tdo1, tapi_tdo1, tapo_tck, tapo_tdi, tapo_rst, + tapo_capt, tapo_shft, tapo_upd, tapo_xsel1, tapo_xsel2); + tapo_inst <= (others => '0'); tdoen <= '0'; tdo <= '0'; + end generate; + + kc7v : if tech = kintex7 generate + u0 : kintex7_tap port map (tapi_tdo1, tapi_tdo1, tapo_tck, tapo_tdi, tapo_rst, + tapo_capt, tapo_shft, tapo_upd, tapo_xsel1, tapo_xsel2); + tapo_inst <= (others => '0'); tdoen <= '0'; tdo <= '0'; + end generate; + + + zynq7v : if tech = zynq7000 generate + u0 : virtex7_tap port map (tapi_tdo1, tapi_tdo1, tapo_tck, tapo_tdi, tapo_rst, + tapo_capt, tapo_shft, tapo_upd, tapo_xsel1, tapo_xsel2); + tapo_inst <= (others => '0'); tdoen <= '0'; tdo <= '0'; + end generate; + + xc3s : if (tech = spartan3) or (tech = spartan3e) generate u0 : spartan3_tap port map (tapi_tdo1, tapi_tdo1, tapo_tck, tapo_tdi, tapo_rst, tapo_capt, tapo_shft, tapo_upd, tapo_xsel1, tapo_xsel2); @@ -152,7 +174,12 @@ begin asic : if is_fpga(tech) = 0 generate gscn : if scantest = 1 generate lltckn <= not tck; - gmux2_0 : grmux2 generic map (tech) port map (lltckn, tck, testen, tckn); + usecmux: if has_clkmux(tech)/=0 generate + cmux0: clkmux generic map (tech) port map (lltckn, tck, testen, tckn); + end generate; + usegmux: if has_clkmux(tech)=0 generate + gmux2_0 : grmux2 generic map (tech) port map (lltckn, tck, testen, tckn); + end generate; end generate; noscn : if scantest = 0 generate tckn <= not tck; end generate; pclk : techbuf generic map (tech => tech) port map (tck, ltck); @@ -162,10 +189,10 @@ begin ltck <= tck; ltckn <= not tck; end generate; u0 : tap_gen generic map (irlen => irlen, manf => manf, part => part, ver => ver, - idcode => idcode, scantest => scantest) + idcode => idcode, scantest => scantest, oepol => oepol) port map (trst, ltck, ltckn, tms, tdi, tdo, tapi_en1, tapi_tdo1, tapi_tdo2, tapo_tck, tapo_tdi, tapo_inst, tapo_rst, tapo_capt, tapo_shft, tapo_upd, tapo_xsel1, - tapo_xsel2, testen, testrst, tdoen); + tapo_xsel2, testen, testrst, testoen, tdoen); end generate; end; diff --git a/lib/techmap/maps/techbuf.vhd b/lib/techmap/maps/techbuf.vhd index 2fd8769b..a5609d8d 100644 --- a/lib/techmap/maps/techbuf.vhd +++ b/lib/techmap/maps/techbuf.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/techmult.vhd b/lib/techmap/maps/techmult.vhd index e3d72247..ff555813 100644 --- a/lib/techmap/maps/techmult.vhd +++ b/lib/techmap/maps/techmult.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/toutpad.vhd b/lib/techmap/maps/toutpad.vhd index d45f9b2d..01b1c396 100644 --- a/lib/techmap/maps/toutpad.vhd +++ b/lib/techmap/maps/toutpad.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/maps/toutpad_ds.vhd b/lib/techmap/maps/toutpad_ds.vhd index c4498597..bb67f739 100644 --- a/lib/techmap/maps/toutpad_ds.vhd +++ b/lib/techmap/maps/toutpad_ds.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/stratixii/clkgen_stratixii.vhd b/lib/techmap/stratixii/clkgen_stratixii.vhd index 1798abb7..82f77d6c 100644 --- a/lib/techmap/stratixii/clkgen_stratixii.vhd +++ b/lib/techmap/stratixii/clkgen_stratixii.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/stratixii/grusbhc_stratixii.vhd b/lib/techmap/stratixii/grusbhc_stratixii.vhd index bc3fbe2d..0936c014 100644 --- a/lib/techmap/stratixii/grusbhc_stratixii.vhd +++ b/lib/techmap/stratixii/grusbhc_stratixii.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -62,7 +62,9 @@ entity grusbhc_stratixii is memsel : integer := 0; syncprst : integer range 0 to 1 := 0; sysfreq : integer := 65000; - pcidev : integer range 0 to 1 := 0); + pcidev : integer range 0 to 1 := 0; + debug : integer := 0; + debug_abits : integer := 13); port ( clk : in std_ulogic; uclk : in std_ulogic; @@ -81,7 +83,6 @@ entity grusbhc_stratixii is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -115,7 +116,6 @@ entity grusbhc_stratixii is uhc_ahbso_hresp : out std_logic_vector((n_cc*2)*uhcgen downto 1*uhcgen); uhc_ahbso_hrdata : out std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); uhc_ahbso_hsplit : out std_logic_vector((n_cc*16)*uhcgen downto 1*uhcgen); - uhc_ahbso_hcache : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbso_hirq : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((nports*2)-1) downto 0); @@ -196,7 +196,13 @@ entity grusbhc_stratixii is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end grusbhc_stratixii; architecture rtl of grusbhc_stratixii is @@ -223,7 +229,6 @@ architecture rtl of grusbhc_stratixii is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(1*1 downto 1*1); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -257,7 +262,6 @@ architecture rtl of grusbhc_stratixii is uhc_ahbso_hresp : out std_logic_vector((1*2)*1 downto 1*1); uhc_ahbso_hrdata : out std_logic_vector((1*32)*1 downto 1*1); uhc_ahbso_hsplit : out std_logic_vector((1*16)*1 downto 1*1); - uhc_ahbso_hcache : out std_logic_vector(1*1 downto 1*1); uhc_ahbso_hirq : out std_logic_vector(1*1 downto 1*1); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((1*2)-1) downto 0); @@ -338,7 +342,13 @@ architecture rtl of grusbhc_stratixii is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end component; component grusbhc_stratixii_comb1 @@ -360,7 +370,6 @@ architecture rtl of grusbhc_stratixii is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(1*0 downto 1*0); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -394,7 +403,6 @@ architecture rtl of grusbhc_stratixii is uhc_ahbso_hresp : out std_logic_vector((1*2)*0 downto 1*0); uhc_ahbso_hrdata : out std_logic_vector((1*32)*0 downto 1*0); uhc_ahbso_hsplit : out std_logic_vector((1*16)*0 downto 1*0); - uhc_ahbso_hcache : out std_logic_vector(1*0 downto 1*0); uhc_ahbso_hirq : out std_logic_vector(1*0 downto 1*0); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((1*2)-1) downto 0); @@ -475,7 +483,13 @@ architecture rtl of grusbhc_stratixii is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end component; component grusbhc_stratixii_comb2 @@ -497,7 +511,6 @@ architecture rtl of grusbhc_stratixii is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(1*1 downto 1*1); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -531,7 +544,6 @@ architecture rtl of grusbhc_stratixii is uhc_ahbso_hresp : out std_logic_vector((1*2)*1 downto 1*1); uhc_ahbso_hrdata : out std_logic_vector((1*32)*1 downto 1*1); uhc_ahbso_hsplit : out std_logic_vector((1*16)*1 downto 1*1); - uhc_ahbso_hcache : out std_logic_vector(1*1 downto 1*1); uhc_ahbso_hirq : out std_logic_vector(1*1 downto 1*1); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((1*2)-1) downto 0); @@ -612,7 +624,13 @@ architecture rtl of grusbhc_stratixii is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end component; component grusbhc_stratixii_comb3 @@ -634,7 +652,6 @@ architecture rtl of grusbhc_stratixii is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(1*1 downto 1*1); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -668,7 +685,6 @@ architecture rtl of grusbhc_stratixii is uhc_ahbso_hresp : out std_logic_vector((1*2)*1 downto 1*1); uhc_ahbso_hrdata : out std_logic_vector((1*32)*1 downto 1*1); uhc_ahbso_hsplit : out std_logic_vector((1*16)*1 downto 1*1); - uhc_ahbso_hcache : out std_logic_vector(1*1 downto 1*1); uhc_ahbso_hirq : out std_logic_vector(1*1 downto 1*1); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((2*2)-1) downto 0); @@ -749,7 +765,13 @@ architecture rtl of grusbhc_stratixii is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end component; ----------------------------------------------------------------------------- @@ -780,7 +802,10 @@ architecture rtl of grusbhc_stratixii is memtech : integer; memsel : integer; syncprst : integer range 0 to 1; - sysfreq : integer) + sysfreq : integer; + pcidev : integer range 0 to 1; + debug : integer; + debug_abits : integer) return boolean is begin -- comb0 @@ -790,7 +815,7 @@ architecture rtl of grusbhc_stratixii is bwrd = 16 and utm_type = 2 and vbusconf = 3 and ramtest = 0 and urst_time = 0 and oepol = 0 and scantest = 0 and is_fpga(memtech) = 1 and memsel = 0 and syncprst = 0 and - sysfreq = 65000 and pcidev = 0 then + sysfreq = 65000 and pcidev = 0 and debug = 0 then return true; end if; -- comb1 @@ -800,7 +825,7 @@ architecture rtl of grusbhc_stratixii is bwrd = 16 and utm_type = 2 and vbusconf = 3 and ramtest = 0 and urst_time = 0 and oepol = 0 and scantest = 0 and is_fpga(memtech) = 1 and memsel = 0 and syncprst = 0 and - sysfreq = 65000 and pcidev = 0 then + sysfreq = 65000 and pcidev = 0 and debug = 0 then return true; end if; -- comb2 @@ -810,7 +835,7 @@ architecture rtl of grusbhc_stratixii is bwrd = 16 and utm_type = 2 and vbusconf = 3 and ramtest = 0 and urst_time = 0 and oepol = 0 and scantest = 0 and is_fpga(memtech) = 1 and memsel = 0 and syncprst = 0 and - sysfreq = 65000 and pcidev = 0 then + sysfreq = 65000 and pcidev = 0 and debug = 0 then return true; end if; -- comb3 @@ -820,7 +845,7 @@ architecture rtl of grusbhc_stratixii is bwrd = 16 and utm_type = 2 and vbusconf = 3 and ramtest = 0 and urst_time = 0 and oepol = 0 and scantest = 0 and is_fpga(memtech) = 1 and memsel = 0 and syncprst = 0 and - sysfreq = 65000 and pcidev = 0 then + sysfreq = 65000 and pcidev = 0 and debug = 0 then return true; end if; return false; @@ -854,13 +879,14 @@ begin memsel = 0 and syncprst = 0 and sysfreq = 65000 and - pcidev = 0 generate + pcidev = 0 and + debug = 0 generate usbhc0 : grusbhc_stratixii_comb0 port map( clk,uclk,rst,ehc_apbsi_psel,ehc_apbsi_penable,ehc_apbsi_paddr, ehc_apbsi_pwrite,ehc_apbsi_pwdata, ehc_apbso_prdata,ehc_apbso_pirq,ahbmi_hgrant, - ahbmi_hready,ahbmi_hresp,ahbmi_hrdata,ahbmi_hcache, + ahbmi_hready,ahbmi_hresp,ahbmi_hrdata, uhc_ahbsi_hsel,uhc_ahbsi_haddr, uhc_ahbsi_hwrite,uhc_ahbsi_htrans,uhc_ahbsi_hsize,uhc_ahbsi_hwdata, uhc_ahbsi_hready, @@ -869,7 +895,7 @@ begin ehc_ahbmo_hwdata,uhc_ahbmo_hbusreq,uhc_ahbmo_hlock,uhc_ahbmo_htrans, uhc_ahbmo_haddr,uhc_ahbmo_hwrite,uhc_ahbmo_hsize,uhc_ahbmo_hburst, uhc_ahbmo_hprot,uhc_ahbmo_hwdata,uhc_ahbso_hready,uhc_ahbso_hresp, - uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hcache,uhc_ahbso_hirq, + uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hirq, xcvrsel,termsel,opmode,txvalid,drvvbus,dataho,validho,stp,datao, utm_rst,dctrlo,suspendm,dbus16_8,dppulldown,dmpulldown,idpullup, dischrgvbus,chrgvbus,txbitstuffenable,txbitstuffenableh,fslsserialmode, @@ -882,7 +908,8 @@ begin sie20_pb_data,sie20_pb_en,sie20_pb_we,pb_sie20_data,sie11_pb_addr, sie11_pb_data,sie11_pb_en,sie11_pb_we,pb_sie11_data,mbc11_pb_addr, mbc11_pb_data,mbc11_pb_en,mbc11_pb_we,pb_mbc11_data,bufsel, - testen,testrst,scanen,testoen); + testen,testrst,scanen,testoen, + debug_raddr,debug_waddr,debug_wdata,debug_we,debug_rdata); end generate comb0; comb1 : if nports = 1 and @@ -908,13 +935,14 @@ begin memsel = 0 and syncprst = 0 and sysfreq = 65000 and - pcidev = 0 generate + pcidev = 0 and + debug = 0 generate usbhc0 : grusbhc_stratixii_comb1 port map( clk,uclk,rst,ehc_apbsi_psel,ehc_apbsi_penable,ehc_apbsi_paddr, ehc_apbsi_pwrite,ehc_apbsi_pwdata, ehc_apbso_prdata,ehc_apbso_pirq,ahbmi_hgrant, - ahbmi_hready,ahbmi_hresp,ahbmi_hrdata,ahbmi_hcache, + ahbmi_hready,ahbmi_hresp,ahbmi_hrdata, uhc_ahbsi_hsel,uhc_ahbsi_haddr, uhc_ahbsi_hwrite,uhc_ahbsi_htrans,uhc_ahbsi_hsize,uhc_ahbsi_hwdata, uhc_ahbsi_hready, @@ -923,7 +951,7 @@ begin ehc_ahbmo_hwdata,uhc_ahbmo_hbusreq,uhc_ahbmo_hlock,uhc_ahbmo_htrans, uhc_ahbmo_haddr,uhc_ahbmo_hwrite,uhc_ahbmo_hsize,uhc_ahbmo_hburst, uhc_ahbmo_hprot,uhc_ahbmo_hwdata,uhc_ahbso_hready,uhc_ahbso_hresp, - uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hcache,uhc_ahbso_hirq, + uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hirq, xcvrsel,termsel,opmode,txvalid,drvvbus,dataho,validho,stp,datao, utm_rst,dctrlo,suspendm,dbus16_8,dppulldown,dmpulldown,idpullup, dischrgvbus,chrgvbus,txbitstuffenable,txbitstuffenableh,fslsserialmode, @@ -936,7 +964,8 @@ begin sie20_pb_data,sie20_pb_en,sie20_pb_we,pb_sie20_data,sie11_pb_addr, sie11_pb_data,sie11_pb_en,sie11_pb_we,pb_sie11_data,mbc11_pb_addr, mbc11_pb_data,mbc11_pb_en,mbc11_pb_we,pb_mbc11_data,bufsel, - testen,testrst,scanen,testoen); + testen,testrst,scanen,testoen, + debug_raddr,debug_waddr,debug_wdata,debug_we,debug_rdata); end generate comb1; comb2 : if nports = 1 and @@ -962,13 +991,14 @@ begin memsel = 0 and syncprst = 0 and sysfreq = 65000 and - pcidev = 0 generate + pcidev = 0 and + debug = 0 generate usbhc0 : grusbhc_stratixii_comb2 port map( clk,uclk,rst,ehc_apbsi_psel,ehc_apbsi_penable,ehc_apbsi_paddr, ehc_apbsi_pwrite,ehc_apbsi_pwdata, ehc_apbso_prdata,ehc_apbso_pirq,ahbmi_hgrant, - ahbmi_hready,ahbmi_hresp,ahbmi_hrdata,ahbmi_hcache, + ahbmi_hready,ahbmi_hresp,ahbmi_hrdata, uhc_ahbsi_hsel,uhc_ahbsi_haddr, uhc_ahbsi_hwrite,uhc_ahbsi_htrans,uhc_ahbsi_hsize,uhc_ahbsi_hwdata, uhc_ahbsi_hready, @@ -977,7 +1007,7 @@ begin ehc_ahbmo_hwdata,uhc_ahbmo_hbusreq,uhc_ahbmo_hlock,uhc_ahbmo_htrans, uhc_ahbmo_haddr,uhc_ahbmo_hwrite,uhc_ahbmo_hsize,uhc_ahbmo_hburst, uhc_ahbmo_hprot,uhc_ahbmo_hwdata,uhc_ahbso_hready,uhc_ahbso_hresp, - uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hcache,uhc_ahbso_hirq, + uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hirq, xcvrsel,termsel,opmode,txvalid,drvvbus,dataho,validho,stp,datao, utm_rst,dctrlo,suspendm,dbus16_8,dppulldown,dmpulldown,idpullup, dischrgvbus,chrgvbus,txbitstuffenable,txbitstuffenableh,fslsserialmode, @@ -990,7 +1020,8 @@ begin sie20_pb_data,sie20_pb_en,sie20_pb_we,pb_sie20_data,sie11_pb_addr, sie11_pb_data,sie11_pb_en,sie11_pb_we,pb_sie11_data,mbc11_pb_addr, mbc11_pb_data,mbc11_pb_en,mbc11_pb_we,pb_mbc11_data,bufsel, - testen,testrst,scanen,testoen); + testen,testrst,scanen,testoen, + debug_raddr,debug_waddr,debug_wdata,debug_we,debug_rdata); end generate comb2; comb3 : if nports = 2 and @@ -1016,13 +1047,14 @@ begin memsel = 0 and syncprst = 0 and sysfreq = 65000 and - pcidev = 0 generate + pcidev = 0 and + debug = 0 generate usbhc0 : grusbhc_stratixii_comb3 port map( clk,uclk,rst,ehc_apbsi_psel,ehc_apbsi_penable,ehc_apbsi_paddr, ehc_apbsi_pwrite,ehc_apbsi_pwdata, ehc_apbso_prdata,ehc_apbso_pirq,ahbmi_hgrant, - ahbmi_hready,ahbmi_hresp,ahbmi_hrdata,ahbmi_hcache, + ahbmi_hready,ahbmi_hresp,ahbmi_hrdata, uhc_ahbsi_hsel,uhc_ahbsi_haddr, uhc_ahbsi_hwrite,uhc_ahbsi_htrans,uhc_ahbsi_hsize,uhc_ahbsi_hwdata, uhc_ahbsi_hready, @@ -1031,7 +1063,7 @@ begin ehc_ahbmo_hwdata,uhc_ahbmo_hbusreq,uhc_ahbmo_hlock,uhc_ahbmo_htrans, uhc_ahbmo_haddr,uhc_ahbmo_hwrite,uhc_ahbmo_hsize,uhc_ahbmo_hburst, uhc_ahbmo_hprot,uhc_ahbmo_hwdata,uhc_ahbso_hready,uhc_ahbso_hresp, - uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hcache,uhc_ahbso_hirq, + uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hirq, xcvrsel,termsel,opmode,txvalid,drvvbus,dataho,validho,stp,datao, utm_rst,dctrlo,suspendm,dbus16_8,dppulldown,dmpulldown,idpullup, dischrgvbus,chrgvbus,txbitstuffenable,txbitstuffenableh,fslsserialmode, @@ -1044,14 +1076,15 @@ begin sie20_pb_data,sie20_pb_en,sie20_pb_we,pb_sie20_data,sie11_pb_addr, sie11_pb_data,sie11_pb_en,sie11_pb_we,pb_sie11_data,mbc11_pb_addr, mbc11_pb_data,mbc11_pb_en,mbc11_pb_we,pb_mbc11_data,bufsel, - testen,testrst,scanen,testoen); + testen,testrst,scanen,testoen, + debug_raddr,debug_waddr,debug_wdata,debug_we,debug_rdata); end generate comb3; -- pragma translate_off nomap : if not valid_comb( nports,ehcgen,uhcgen,n_cc,n_pcc,prr,portroute1,portroute2,endian_conv, be_regs,be_desc,uhcblo,bwrd,utm_type,vbusconf,ramtest,urst_time,oepol, - scantest,memtech,memsel,syncprst,sysfreq,pcidev) generate + scantest,memtech,memsel,syncprst,sysfreq,pcidev,debug,debug_abits) generate err : process begin assert false report "ERROR : Can't map a netlist for this combination " & diff --git a/lib/techmap/stratixii/stratixii_ddr_phy.vhd b/lib/techmap/stratixii/stratixii_ddr_phy.vhd index 9aa55a18..b43ad7f1 100644 --- a/lib/techmap/stratixii/stratixii_ddr_phy.vhd +++ b/lib/techmap/stratixii/stratixii_ddr_phy.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/stratixiii/clkgen_stratixiii.vhd b/lib/techmap/stratixiii/clkgen_stratixiii.vhd index 6cc9bb4a..d420b18d 100644 --- a/lib/techmap/stratixiii/clkgen_stratixiii.vhd +++ b/lib/techmap/stratixiii/clkgen_stratixiii.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/umc18/memory_umc18.vhd b/lib/techmap/umc18/memory_umc18.vhd index 23094308..89cdf85a 100644 --- a/lib/techmap/umc18/memory_umc18.vhd +++ b/lib/techmap/umc18/memory_umc18.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/umc18/pads_umc18.vhd b/lib/techmap/umc18/pads_umc18.vhd index 48c5d83d..0636e737 100644 --- a/lib/techmap/umc18/pads_umc18.vhd +++ b/lib/techmap/umc18/pads_umc18.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/unisim/buffer_unisim.vhd b/lib/techmap/unisim/buffer_unisim.vhd index 751d3dea..5e34f2c9 100644 --- a/lib/techmap/unisim/buffer_unisim.vhd +++ b/lib/techmap/unisim/buffer_unisim.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/unisim/clkgen_unisim.vhd b/lib/techmap/unisim/clkgen_unisim.vhd index 4e062201..a2675e21 100644 --- a/lib/techmap/unisim/clkgen_unisim.vhd +++ b/lib/techmap/unisim/clkgen_unisim.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -913,6 +913,184 @@ begin -- pragma translate_on +end; + +------------------------------------------------------------------ +-- Virtex7 clock generator --------------------------------------- +------------------------------------------------------------------ + +library ieee; +use ieee.std_logic_1164.all; +-- pragma translate_off +library grlib; +use grlib.stdlib.all; +library unisim; +use UNISIM.vcomponents.all; +-- pragma translate_on +library techmap; +use techmap.gencomp.all; + +entity clkgen_virtex7 is + generic ( + clk_mul : integer := 1; + clk_div : integer := 1; + freq : integer := 200000000 -- clock frequency in KHz + ); + port ( + clkin : in std_ulogic; + clk : out std_ulogic; -- main clock + cgi : in clkgen_in_type; + cgo : out clkgen_out_type + ); +end; + +architecture struct of clkgen_virtex7 is + +----- component PLLE2_ADV ----- +component PLLE2_ADV + generic ( + BANDWIDTH : string := "OPTIMIZED"; + CLKFBOUT_MULT : integer := 5; + CLKFBOUT_PHASE : real := 0.0; + CLKIN1_PERIOD : real := 0.0; + CLKIN2_PERIOD : real := 0.0; + CLKOUT0_DIVIDE : integer := 1; + CLKOUT0_DUTY_CYCLE : real := 0.5; + CLKOUT0_PHASE : real := 0.0; + CLKOUT1_DIVIDE : integer := 1; + CLKOUT1_DUTY_CYCLE : real := 0.5; + CLKOUT1_PHASE : real := 0.0; + CLKOUT2_DIVIDE : integer := 1; + CLKOUT2_DUTY_CYCLE : real := 0.5; + CLKOUT2_PHASE : real := 0.0; + CLKOUT3_DIVIDE : integer := 1; + CLKOUT3_DUTY_CYCLE : real := 0.5; + CLKOUT3_PHASE : real := 0.0; + CLKOUT4_DIVIDE : integer := 1; + CLKOUT4_DUTY_CYCLE : real := 0.5; + CLKOUT4_PHASE : real := 0.0; + CLKOUT5_DIVIDE : integer := 1; + CLKOUT5_DUTY_CYCLE : real := 0.5; + CLKOUT5_PHASE : real := 0.0; + COMPENSATION : string := "ZHOLD"; + DIVCLK_DIVIDE : integer := 1; + REF_JITTER1 : real := 0.0; + REF_JITTER2 : real := 0.0; + STARTUP_WAIT : string := "FALSE" + ); + port ( + CLKFBOUT : out std_ulogic := '0'; + CLKOUT0 : out std_ulogic := '0'; + CLKOUT1 : out std_ulogic := '0'; + CLKOUT2 : out std_ulogic := '0'; + CLKOUT3 : out std_ulogic := '0'; + CLKOUT4 : out std_ulogic := '0'; + CLKOUT5 : out std_ulogic := '0'; + DO : out std_logic_vector (15 downto 0); + DRDY : out std_ulogic := '0'; + LOCKED : out std_ulogic := '0'; + CLKFBIN : in std_ulogic; + CLKIN1 : in std_ulogic; + CLKIN2 : in std_ulogic; + CLKINSEL : in std_ulogic; + DADDR : in std_logic_vector(6 downto 0); + DCLK : in std_ulogic; + DEN : in std_ulogic; + DI : in std_logic_vector(15 downto 0); + DWE : in std_ulogic; + PWRDWN : in std_ulogic; + RST : in std_ulogic + ); +end component; +constant VERSION : integer := 1; +constant period : real := 1000000.0/real(freq); +signal CLKFBOUT : std_logic; +signal CLKFBIN : std_logic; +signal int_rst : std_logic; + +begin + +CLKFBIN <= CLKFBOUT; + +int_rst <= not cgi.pllrst; + +PLLE2_ADV_inst : PLLE2_ADV +generic map ( + BANDWIDTH => "OPTIMIZED", -- OPTIMIZED, HIGH, LOW + CLKFBOUT_MULT => clk_mul, -- Multiply value for all CLKOUT, (2-64) + CLKFBOUT_PHASE => 0.0, -- Phase offset in degrees of CLKFB, (-360.000-360.000). + -- CLKIN_PERIOD: Input clock period in nS to ps resolution (i.e. 33.333 is 30 MHz). + CLKIN1_PERIOD => period, + CLKIN2_PERIOD => 0.0, + -- CLKOUT0_DIVIDE - CLKOUT5_DIVIDE: Divide amount for CLKOUT (1-128) + CLKOUT0_DIVIDE => clk_div, + CLKOUT1_DIVIDE => 1, + CLKOUT2_DIVIDE => 1, + CLKOUT3_DIVIDE => 1, + CLKOUT4_DIVIDE => 1, + CLKOUT5_DIVIDE => 1, + -- CLKOUT0_DUTY_CYCLE - CLKOUT5_DUTY_CYCLE: Duty cycle for CLKOUT outputs (0.001-0.999). + CLKOUT0_DUTY_CYCLE => 0.5, + CLKOUT1_DUTY_CYCLE => 0.5, + CLKOUT2_DUTY_CYCLE => 0.5, + CLKOUT3_DUTY_CYCLE => 0.5, + CLKOUT4_DUTY_CYCLE => 0.5, + CLKOUT5_DUTY_CYCLE => 0.5, + -- CLKOUT0_PHASE - CLKOUT5_PHASE: Phase offset for CLKOUT outputs (-360.000-360.000). + CLKOUT0_PHASE => 0.0, + CLKOUT1_PHASE => 0.0, + CLKOUT2_PHASE => 0.0, + CLKOUT3_PHASE => 0.0, + CLKOUT4_PHASE => 0.0, + CLKOUT5_PHASE => 0.0, + COMPENSATION => "ZHOLD", -- ZHOLD, BUF_IN, EXTERNAL, INTERNAL + DIVCLK_DIVIDE => 1, -- Master division value (1-56) + -- REF_JITTER: Reference input jitter in UI (0.000-0.999). + REF_JITTER1 => 0.0, + REF_JITTER2 => 0.0, + STARTUP_WAIT => "TRUE" -- Delay DONE until PLL Locks, ("TRUE"/"FALSE") + ) +port map ( + -- Clock Outputs: 1-bit (each) output: User configurable clock outputs + CLKOUT0 => clk, + CLKOUT1 => open, + CLKOUT2 => OPEN, + CLKOUT3 => OPEN, + CLKOUT4 => OPEN, + CLKOUT5 => OPEN, + -- DRP Ports: 16-bit (each) output: Dynamic reconfigration ports + DO => OPEN, + DRDY => OPEN, + -- Feedback Clocks: 1-bit (each) output: Clock feedback ports + CLKFBOUT => CLKFBOUT, + -- Status Ports: 1-bit (each) output: PLL status ports + LOCKED => cgo.clklock, + -- Clock Inputs: 1-bit (each) input: Clock inputs + CLKIN1 => clkin, + CLKIN2 => '0', + -- Con trol Ports: 1-bit (each) input: PLL control ports + CLKINSEL => '1', + PWRDWN => '0', + RST => int_rst, + -- DRP Ports: 7-bit (each) input: Dynamic reconfigration ports + DADDR => "0000000", + DCLK => '0', + DEN => '0', + DI => "0000000000000000", + DWE => '0', + -- Feedback Clocks: 1-bit (each) input: Clock feedback ports + CLKFBIN => CLKFBIN + ); + + cgo.pcilock <= '0'; + +-- pragma translate_off + bootmsg : report_version + generic map ( + "clkgen_virtex7" & ": virtex-7 sdram/pci clock generator, version " & tost(VERSION), + "clkgen_virtex7" & ": Frequency " & tost(freq) & " KHz, DCM divisor " & tost(clk_mul) & "/" & tost(clk_div)); +-- pragma translate_on + end; library ieee; diff --git a/lib/techmap/unisim/ddr_phy_unisim.vhd b/lib/techmap/unisim/ddr_phy_unisim.vhd index 3ed4d112..ad7f3d50 100644 --- a/lib/techmap/unisim/ddr_phy_unisim.vhd +++ b/lib/techmap/unisim/ddr_phy_unisim.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -46,7 +46,8 @@ use techmap.gencomp.all; entity virtex4_ddr_phy is generic (MHz : integer := 100; rstdelay : integer := 200; dbits : integer := 16; clk_mul : integer := 2 ; - clk_div : integer := 2; rskew : integer := 0); + clk_div : integer := 2; rskew : integer := 0; + phyiconf : integer := 0); port ( rst : in std_ulogic; @@ -305,16 +306,26 @@ begin fbclk_pad : outpad generic map (tech => virtex4, level => sstl2_i) port map (ddr_clk_fb_out, ddr_clk_fb_outr); - ddrclocks : for i in 0 to 2 generate - dclk0r : ODDR port map ( Q => ddr_clkl(i), C => clk90r, CE => vcc, - D1 => vcc, D2 => gnd, R => gnd, S => gnd); - ddrclk_pad : outpad_ds generic map (tech => virtex4, level => sstl2_ii) - port map (ddr_clk(i), ddr_clkb(i), ddr_clkl(i), '1'); + ddrclkdiffio : if phyiconf = 0 generate + ddrclocks0 : for i in 0 to 2 generate + dclk0r : ODDR port map ( Q => ddr_clkl(i), C => clk90r, CE => vcc, + D1 => vcc, D2 => gnd, R => gnd, S => gnd); + ddrclk_pad : outpad_ds generic map (tech => virtex4, level => sstl2_ii) + port map (ddr_clk(i), ddr_clkb(i), ddr_clkl(i), '1'); + end generate; + end generate; + ddrclknodiffio : if phyiconf = 1 generate + ddrclocks1 : for i in 0 to 2 generate + dclk0r : ODDR port map ( Q => ddr_clkl(i), C => clk90r, CE => vcc, + D1 => vcc, D2 => gnd, R => gnd, S => gnd); + ddrclk1_pad : outpad generic map (tech => virtex4, level => sstl2_ii) + port map (ddr_clk(i), ddr_clkl(i)); --- dclk0rb : ODDR port map ( Q => ddr_clkbl(i), C => clk90r, CE => vcc, --- D1 => gnd, D2 => vcc, R => gnd, S => gnd); --- ddrclkb_pad : outpad generic map (tech => virtex4, level => sstl2_i) --- port map (ddr_clkb(i), ddr_clkbl(i)); + dclk0rb : ODDR port map ( Q => ddr_clkbl(i), C => clk90r, CE => vcc, + D1 => gnd, D2 => vcc, R => gnd, S => gnd); + ddrclk1b_pad : outpad generic map (tech => virtex4, level => sstl2_i) + port map (ddr_clkb(i), ddr_clkbl(i)); + end generate; end generate; ddrbanks : for i in 0 to 1 generate diff --git a/lib/techmap/unisim/ddr_unisim.vhd b/lib/techmap/unisim/ddr_unisim.vhd index 93c8d589..e38a720f 100644 --- a/lib/techmap/unisim/ddr_unisim.vhd +++ b/lib/techmap/unisim/ddr_unisim.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -169,6 +169,7 @@ use techmap.gencomp.all; -- pragma translate_off library unisim; use unisim.oddr; +use unisim.oddr2; use unisim.FDDRRSE; --pragma translate_on @@ -208,6 +209,28 @@ architecture rtl of unisim_oddr_reg is attribute BOX_TYPE of ODDR : component is "PRIMITIVE"; + component ODDR2 + generic + ( + DDR_ALIGNMENT : string := "NONE"; + INIT : bit := '0'; + SRTYPE : string := "SYNC" + ); + port + ( + Q : out std_ulogic; + C0 : in std_ulogic; + C1 : in std_ulogic; + CE : in std_ulogic; + D0 : in std_ulogic; + D1 : in std_ulogic; + R : in std_ulogic; + S : in std_ulogic + ); + end component; + attribute BOX_TYPE of + ODDR2 : component is "PRIMITIVE"; + component FDDRRSE -- generic ( INIT : bit := '0'); port @@ -252,7 +275,7 @@ begin S => S); end generate; - V2 : if tech = virtex2 or tech = spartan3 or tech = spartan6 generate + V2 : if tech = virtex2 or tech = spartan3 generate d2reg : process (C1, D2, R) begin @@ -277,6 +300,33 @@ begin end generate; + s6 : if tech = spartan6 generate + + d2reg : process (C1, D2, R) + begin + if R='1' then --asynchronous reset, active high + preD2 <= '0'; + elsif C1'event and C1='1' then --Clock event - posedge + preD2 <= D2; + end if; + end process; + + c_dm : component ODDR2 + port map ( + Q => Q, + C0 => C1, + C1 => C2, + CE => CE, + D0 => D1, + D1 => preD2, + R => R, + S => R + ); + + + end generate; + + end ; library ieee; diff --git a/lib/techmap/unisim/grspwc2_unisim.vhd b/lib/techmap/unisim/grspwc2_unisim.vhd deleted file mode 100644 index 59adb48e..00000000 --- a/lib/techmap/unisim/grspwc2_unisim.vhd +++ /dev/null @@ -1,649 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: grspwc2_unisim --- File: grspwc2_unisim.vhd --- Author: Jiri Gaisler - Gaisler Research --- Description: tech wrapper for xilinx/unisim grspwc2 netlist ------------------------------------------------------------------------------- -library ieee; -use ieee.std_logic_1164.all; -library unisim; -use unisim.all; - -entity grspwc2_unisim is - generic( - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0; - ports : integer range 1 to 2 := 1; - dmachan : integer range 1 to 4 := 1; - tech : integer; - input_type : integer range 0 to 3 := 0; - output_type : integer range 0 to 2 := 0; - rxtx_sameclk : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - rxclk : in std_logic_vector(1 downto 0); - txclk : in std_ulogic; - txclkn : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - --spw in - d : in std_logic_vector(3 downto 0); - dv : in std_logic_vector(3 downto 0); - dconnect : in std_logic_vector(3 downto 0); - --spw out - do : out std_logic_vector(3 downto 0); - so : out std_logic_vector(3 downto 0); - --time iface - tickin : in std_logic; - tickinraw : in std_logic; - timein : in std_logic_vector(7 downto 0); - tickindone : out std_logic; - tickout : out std_logic; - tickoutraw : out std_logic; - timeout : out std_logic_vector(7 downto 0); - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - --rmapen - rmapen : in std_ulogic; - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(9 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(9 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testrst : in std_logic; - testen : in std_logic; - rxdav : out std_logic; - rxdataout : out std_logic_vector(8 downto 0); - loopback : out std_logic - ); -end entity; - -architecture rtl of grspwc2_unisim is - -component grspwc2_unisim_16_16_rmap0 is -port( -rst : in std_logic; -clk : in std_logic; -rxclk0 : in std_logic; -rxclk1 : in std_logic; -txclk : in std_logic; -txclkn : in std_logic; -hgrant : in std_logic; -hready : in std_logic; -hresp : in std_logic_vector(1 downto 0); -hrdata : in std_logic_vector(31 downto 0); -hbusreq : out std_logic; -hlock : out std_logic; -htrans : out std_logic_vector(1 downto 0); -haddr : out std_logic_vector(31 downto 0); -hwrite : out std_logic; -hsize : out std_logic_vector(2 downto 0); -hburst : out std_logic_vector(2 downto 0); -hprot : out std_logic_vector(3 downto 0); -hwdata : out std_logic_vector(31 downto 0); -psel : in std_logic; -penable : in std_logic; -paddr : in std_logic_vector(31 downto 0); -pwrite : in std_logic; -pwdata : in std_logic_vector(31 downto 0); -prdata : out std_logic_vector(31 downto 0); -d : in std_logic_vector(3 downto 0); -dv : in std_logic_vector(3 downto 0); -dconnect : in std_logic_vector(3 downto 0); -do : out std_logic_vector(3 downto 0); -so : out std_logic_vector(3 downto 0); -tickin : in std_logic; -tickinraw : in std_logic; -timein : in std_logic_vector(7 downto 0); -tickindone : out std_logic; -tickout : out std_logic; -tickoutraw : out std_logic; -timeout : out std_logic_vector(7 downto 0); -irq : out std_logic; -clkdiv10 : in std_logic_vector(7 downto 0); -rmapen : in std_logic; -rxrenable : out std_logic; -rxraddress : out std_logic_vector(4 downto 0); -rxwrite : out std_logic; -rxwdata : out std_logic_vector(31 downto 0); -rxwaddress : out std_logic_vector(4 downto 0); -rxrdata : in std_logic_vector(31 downto 0); -txrenable : out std_logic; -txraddress : out std_logic_vector(4 downto 0); -txwrite : out std_logic; -txwdata : out std_logic_vector(31 downto 0); -txwaddress : out std_logic_vector(4 downto 0); -txrdata : in std_logic_vector(31 downto 0); -ncrenable : out std_logic; -ncraddress : out std_logic_vector(5 downto 0); -ncwrite : out std_logic; -ncwdata : out std_logic_vector(9 downto 0); -ncwaddress : out std_logic_vector(5 downto 0); -ncrdata : in std_logic_vector(9 downto 0); -rmrenable : out std_logic; -rmraddress : out std_logic_vector(7 downto 0); -rmwrite : out std_logic; -rmwdata : out std_logic_vector(7 downto 0); -rmwaddress : out std_logic_vector(7 downto 0); -rmrdata : in std_logic_vector(7 downto 0); -linkdis : out std_logic; -testrst : in std_logic; -testen : in std_logic; -rxdav : out std_logic; -rxdataout : out std_logic_vector(8 downto 0); -loopback : out std_logic); -end component grspwc2_unisim_16_16_rmap0; - -component grspwc2_unisim_16_16_rmap1 is -port( -rst : in std_logic; -clk : in std_logic; -rxclk0 : in std_logic; -rxclk1 : in std_logic; -txclk : in std_logic; -txclkn : in std_logic; -hgrant : in std_logic; -hready : in std_logic; -hresp : in std_logic_vector(1 downto 0); -hrdata : in std_logic_vector(31 downto 0); -hbusreq : out std_logic; -hlock : out std_logic; -htrans : out std_logic_vector(1 downto 0); -haddr : out std_logic_vector(31 downto 0); -hwrite : out std_logic; -hsize : out std_logic_vector(2 downto 0); -hburst : out std_logic_vector(2 downto 0); -hprot : out std_logic_vector(3 downto 0); -hwdata : out std_logic_vector(31 downto 0); -psel : in std_logic; -penable : in std_logic; -paddr : in std_logic_vector(31 downto 0); -pwrite : in std_logic; -pwdata : in std_logic_vector(31 downto 0); -prdata : out std_logic_vector(31 downto 0); -d : in std_logic_vector(3 downto 0); -dv : in std_logic_vector(3 downto 0); -dconnect : in std_logic_vector(3 downto 0); -do : out std_logic_vector(3 downto 0); -so : out std_logic_vector(3 downto 0); -tickin : in std_logic; -tickinraw : in std_logic; -timein : in std_logic_vector(7 downto 0); -tickindone : out std_logic; -tickout : out std_logic; -tickoutraw : out std_logic; -timeout : out std_logic_vector(7 downto 0); -irq : out std_logic; -clkdiv10 : in std_logic_vector(7 downto 0); -rmapen : in std_logic; -rxrenable : out std_logic; -rxraddress : out std_logic_vector(4 downto 0); -rxwrite : out std_logic; -rxwdata : out std_logic_vector(31 downto 0); -rxwaddress : out std_logic_vector(4 downto 0); -rxrdata : in std_logic_vector(31 downto 0); -txrenable : out std_logic; -txraddress : out std_logic_vector(4 downto 0); -txwrite : out std_logic; -txwdata : out std_logic_vector(31 downto 0); -txwaddress : out std_logic_vector(4 downto 0); -txrdata : in std_logic_vector(31 downto 0); -ncrenable : out std_logic; -ncraddress : out std_logic_vector(5 downto 0); -ncwrite : out std_logic; -ncwdata : out std_logic_vector(9 downto 0); -ncwaddress : out std_logic_vector(5 downto 0); -ncrdata : in std_logic_vector(9 downto 0); -rmrenable : out std_logic; -rmraddress : out std_logic_vector(7 downto 0); -rmwrite : out std_logic; -rmwdata : out std_logic_vector(7 downto 0); -rmwaddress : out std_logic_vector(7 downto 0); -rmrdata : in std_logic_vector(7 downto 0); -linkdis : out std_logic; -testrst : in std_logic; -testen : in std_logic; -rxdav : out std_logic; -rxdataout : out std_logic_vector(8 downto 0); -loopback : out std_logic); -end component grspwc2_unisim_16_16_rmap1; - - -component grspwc2_unisim_32_64_rmap1 is -port( -rst : in std_logic; -clk : in std_logic; -rxclk0 : in std_logic; -rxclk1 : in std_logic; -txclk : in std_logic; -txclkn : in std_logic; -hgrant : in std_logic; -hready : in std_logic; -hresp : in std_logic_vector(1 downto 0); -hrdata : in std_logic_vector(31 downto 0); -hbusreq : out std_logic; -hlock : out std_logic; -htrans : out std_logic_vector(1 downto 0); -haddr : out std_logic_vector(31 downto 0); -hwrite : out std_logic; -hsize : out std_logic_vector(2 downto 0); -hburst : out std_logic_vector(2 downto 0); -hprot : out std_logic_vector(3 downto 0); -hwdata : out std_logic_vector(31 downto 0); -psel : in std_logic; -penable : in std_logic; -paddr : in std_logic_vector(31 downto 0); -pwrite : in std_logic; -pwdata : in std_logic_vector(31 downto 0); -prdata : out std_logic_vector(31 downto 0); -d : in std_logic_vector(3 downto 0); -dv : in std_logic_vector(3 downto 0); -dconnect : in std_logic_vector(3 downto 0); -do : out std_logic_vector(3 downto 0); -so : out std_logic_vector(3 downto 0); -tickin : in std_logic; -tickinraw : in std_logic; -timein : in std_logic_vector(7 downto 0); -tickindone : out std_logic; -tickout : out std_logic; -tickoutraw : out std_logic; -timeout : out std_logic_vector(7 downto 0); -irq : out std_logic; -clkdiv10 : in std_logic_vector(7 downto 0); -rmapen : in std_logic; -rxrenable : out std_logic; -rxraddress : out std_logic_vector(4 downto 0); -rxwrite : out std_logic; -rxwdata : out std_logic_vector(31 downto 0); -rxwaddress : out std_logic_vector(4 downto 0); -rxrdata : in std_logic_vector(31 downto 0); -txrenable : out std_logic; -txraddress : out std_logic_vector(4 downto 0); -txwrite : out std_logic; -txwdata : out std_logic_vector(31 downto 0); -txwaddress : out std_logic_vector(4 downto 0); -txrdata : in std_logic_vector(31 downto 0); -ncrenable : out std_logic; -ncraddress : out std_logic_vector(5 downto 0); -ncwrite : out std_logic; -ncwdata : out std_logic_vector(9 downto 0); -ncwaddress : out std_logic_vector(5 downto 0); -ncrdata : in std_logic_vector(9 downto 0); -rmrenable : out std_logic; -rmraddress : out std_logic_vector(7 downto 0); -rmwrite : out std_logic; -rmwdata : out std_logic_vector(7 downto 0); -rmwaddress : out std_logic_vector(7 downto 0); -rmrdata : in std_logic_vector(7 downto 0); -linkdis : out std_logic; -testrst : in std_logic; -testen : in std_logic; -rxdav : out std_logic; -rxdataout : out std_logic_vector(8 downto 0); -loopback : out std_logic); -end component grspwc2_unisim_32_64_rmap1; - -begin - -normap_f16_16 : if (fifosize1 = 16) and (fifosize2 = 16) and (rmap = 0) generate - grspwc20 : grspwc2_unisim_16_16_rmap0 - port map( - rst => rst, - clk => clk, - rxclk0 => rxclk(0), - rxclk1 => rxclk(1), - txclk => txclk, - txclkn => txclkn, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - d => d, - dv => dv, - dconnect => dconnect, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickinraw => tickinraw, - timein => timein, - tickindone => tickindone, - tickout => tickout, - tickoutraw => tickoutraw, - timeout => timeout, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - --rmapen - rmapen => rmapen, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testrst => testrst, - testen => testen, - rxdav => rxdav, - rxdataout => rxdataout, - loopback => loopback - ); -end generate; - -rmap_f16_16 : if (fifosize1 = 16) and (fifosize2 = 16) and (rmap /= 0) generate - grspwc20 : grspwc2_unisim_16_16_rmap1 - port map( - rst => rst, - clk => clk, - rxclk0 => rxclk(0), - rxclk1 => rxclk(1), - txclk => txclk, - txclkn => txclkn, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - d => d, - dv => dv, - dconnect => dconnect, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickinraw => tickinraw, - timein => timein, - tickindone => tickindone, - tickout => tickout, - tickoutraw => tickoutraw, - timeout => timeout, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - --rmapen - rmapen => rmapen, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testrst => testrst, - testen => testen, - rxdav => rxdav, - rxdataout => rxdataout, - loopback => loopback - ); -end generate; - -rmap_f32_64 : if (fifosize1 = 32) and (fifosize2 = 64) and (rmap /= 0) generate - grspwc20 : grspwc2_unisim_32_64_rmap1 - port map( - rst => rst, - clk => clk, - rxclk0 => rxclk(0), - rxclk1 => rxclk(1), - txclk => txclk, - txclkn => txclkn, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - d => d, - dv => dv, - dconnect => dconnect, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickinraw => tickinraw, - timein => timein, - tickindone => tickindone, - tickout => tickout, - tickoutraw => tickoutraw, - timeout => timeout, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - --rmapen - rmapen => rmapen, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testrst => testrst, - testen => testen, - rxdav => rxdav, - rxdataout => rxdataout, - loopback => loopback - ); -end generate; - --- pragma translate_off - - err : process - begin - assert ((fifosize1 = 16) and (fifosize2 = 16)) or ((fifosize1 = 32) and (fifosize2 = 64)) - report "ERROR : AHB and RX fifos must be 16 or 32/64!" - severity failure; - assert (input_type = 3) and (output_type = 0) - report "ERROR : input type must be 3, output type 0!" - severity failure; - assert ((rmap = 1) and (rmapbufs = 4)) or (rmap = 0) report "ERROR : RMAP buffer size must be 128 bytes!" - severity failure; - assert (ports = 1) report "ERROR : Number of ports must be 1!" - severity failure; - wait; - end process; - --- pragma translate_on - -end architecture; diff --git a/lib/techmap/unisim/grspwc_unisim.vhd b/lib/techmap/unisim/grspwc_unisim.vhd deleted file mode 100644 index da22f608..00000000 --- a/lib/techmap/unisim/grspwc_unisim.vhd +++ /dev/null @@ -1,449 +0,0 @@ ------------------------------------------------------------------------------- --- This file is a part of the GRLIB VHDL IP LIBRARY --- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler --- --- This program is free software; you can redistribute it and/or modify --- it under the terms of the GNU General Public License as published by --- the Free Software Foundation; either version 2 of the License, or --- (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------ --- Entity: grspwc_unisim --- File: grspwc_unisim.vhd --- Author: Jiri Gaisler - Gaisler Research --- Description: tech wrapper for xilinx/unisim grspwc netlist ------------------------------------------------------------------------------- -library ieee; -use ieee.std_logic_1164.all; -library unisim; -use unisim.all; - -entity grspwc_unisim is - generic( - sysfreq : integer := 40000; - usegen : integer range 0 to 1 := 1; - nsync : integer range 1 to 2 := 1; - rmap : integer range 0 to 1 := 0; - rmapcrc : integer range 0 to 1 := 0; - fifosize1 : integer range 4 to 32 := 32; - fifosize2 : integer range 16 to 64 := 64; - rxunaligned : integer range 0 to 1 := 0; - rmapbufs : integer range 2 to 8 := 4; - scantest : integer range 0 to 1 := 0 - ); - port( - rst : in std_ulogic; - clk : in std_ulogic; - txclk : in std_ulogic; - --ahb mst in - hgrant : in std_ulogic; - hready : in std_ulogic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - --ahb mst out - hbusreq : out std_ulogic; - hlock : out std_ulogic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_ulogic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - --apb slv in - psel : in std_ulogic; - penable : in std_ulogic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_ulogic; - pwdata : in std_logic_vector(31 downto 0); - --apb slv out - prdata : out std_logic_vector(31 downto 0); - di : in std_logic_vector(1 downto 0); - si : in std_logic_vector(1 downto 0); - do : out std_logic_vector(1 downto 0); - so : out std_logic_vector(1 downto 0); - --time iface - tickin : in std_ulogic; - tickout : out std_ulogic; - --irq - irq : out std_logic; - --misc - clkdiv10 : in std_logic_vector(7 downto 0); - dcrstval : in std_logic_vector(9 downto 0); - timerrstval : in std_logic_vector(11 downto 0); - --rmapen - rmapen : in std_ulogic; - --clk bufs - rxclki : in std_logic_vector(1 downto 0); - nrxclki : in std_logic_vector(1 downto 0); - rxclko : out std_logic_vector(1 downto 0); - --rx ahb fifo - rxrenable : out std_ulogic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_ulogic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - --tx ahb fifo - txrenable : out std_ulogic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_ulogic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - --nchar fifo - ncrenable : out std_ulogic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_ulogic; - ncwdata : out std_logic_vector(8 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(8 downto 0); - --rmap buf - rmrenable : out std_ulogic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_ulogic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_ulogic; - testclk : in std_ulogic := '0'; - testrst : in std_ulogic := '0'; - testen : in std_ulogic := '0' - ); -end entity; - -architecture rtl of grspwc_unisim is - -component grspwc_unisim_16_16 is -port( - rst : in std_logic; - clk : in std_logic; - txclk : in std_logic; - hgrant : in std_logic; - hready : in std_logic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - hbusreq : out std_logic; - hlock : out std_logic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_logic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - psel : in std_logic; - penable : in std_logic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_logic; - pwdata : in std_logic_vector(31 downto 0); - prdata : out std_logic_vector(31 downto 0); - di : in std_logic_vector(1 downto 0); - si : in std_logic_vector(1 downto 0); - do : out std_logic_vector(1 downto 0); - so : out std_logic_vector(1 downto 0); - tickin : in std_logic; - tickout : out std_logic; - irq : out std_logic; - clkdiv10 : in std_logic_vector(7 downto 0); - dcrstval : in std_logic_vector(9 downto 0); - timerrstval : in std_logic_vector(11 downto 0); - rmapen : in std_logic; - rxclki : in std_logic_vector(1 downto 0); - nrxclki : in std_logic_vector(1 downto 0); - rxclko : out std_logic_vector(1 downto 0); - rxrenable : out std_logic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_logic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - txrenable : out std_logic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_logic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - ncrenable : out std_logic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_logic; - ncwdata : out std_logic_vector(8 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(8 downto 0); - rmrenable : out std_logic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_logic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_logic; - testclk : in std_logic; - testrst : in std_logic; - testen : in std_logic); -end component; - -component grspwc_unisim_rmap_16_16 -port( - rst : in std_logic; - clk : in std_logic; - txclk : in std_logic; - hgrant : in std_logic; - hready : in std_logic; - hresp : in std_logic_vector(1 downto 0); - hrdata : in std_logic_vector(31 downto 0); - hbusreq : out std_logic; - hlock : out std_logic; - htrans : out std_logic_vector(1 downto 0); - haddr : out std_logic_vector(31 downto 0); - hwrite : out std_logic; - hsize : out std_logic_vector(2 downto 0); - hburst : out std_logic_vector(2 downto 0); - hprot : out std_logic_vector(3 downto 0); - hwdata : out std_logic_vector(31 downto 0); - psel : in std_logic; - penable : in std_logic; - paddr : in std_logic_vector(31 downto 0); - pwrite : in std_logic; - pwdata : in std_logic_vector(31 downto 0); - prdata : out std_logic_vector(31 downto 0); - di : in std_logic_vector(1 downto 0); - si : in std_logic_vector(1 downto 0); - do : out std_logic_vector(1 downto 0); - so : out std_logic_vector(1 downto 0); - tickin : in std_logic; - tickout : out std_logic; - irq : out std_logic; - clkdiv10 : in std_logic_vector(7 downto 0); - dcrstval : in std_logic_vector(9 downto 0); - timerrstval : in std_logic_vector(11 downto 0); - rmapen : in std_logic; - rxclki : in std_logic_vector(1 downto 0); - nrxclki : in std_logic_vector(1 downto 0); - rxclko : out std_logic_vector(1 downto 0); - rxrenable : out std_logic; - rxraddress : out std_logic_vector(4 downto 0); - rxwrite : out std_logic; - rxwdata : out std_logic_vector(31 downto 0); - rxwaddress : out std_logic_vector(4 downto 0); - rxrdata : in std_logic_vector(31 downto 0); - txrenable : out std_logic; - txraddress : out std_logic_vector(4 downto 0); - txwrite : out std_logic; - txwdata : out std_logic_vector(31 downto 0); - txwaddress : out std_logic_vector(4 downto 0); - txrdata : in std_logic_vector(31 downto 0); - ncrenable : out std_logic; - ncraddress : out std_logic_vector(5 downto 0); - ncwrite : out std_logic; - ncwdata : out std_logic_vector(8 downto 0); - ncwaddress : out std_logic_vector(5 downto 0); - ncrdata : in std_logic_vector(8 downto 0); - rmrenable : out std_logic; - rmraddress : out std_logic_vector(7 downto 0); - rmwrite : out std_logic; - rmwdata : out std_logic_vector(7 downto 0); - rmwaddress : out std_logic_vector(7 downto 0); - rmrdata : in std_logic_vector(7 downto 0); - linkdis : out std_logic; - testclk : in std_logic; - testrst : in std_logic; - testen : in std_logic); -end component; - -begin - -f16_16 : if (fifosize1 = 16) and (fifosize2 = 16) and (rmap = 0) generate - grspwc0 : grspwc_unisim_16_16 - port map( - rst => rst, - clk => clk, - txclk => txclk, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - di => di, - si => si, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickout => tickout, - --clk bufs - rxclki => rxclki, - nrxclki => nrxclki, - rxclko => rxclko, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - dcrstval => dcrstval, - timerrstval => timerrstval, - --rmapen - rmapen => rmapen, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testclk => testclk, - testrst => testrst, - testen => testen - ); -end generate; - -rmap_f16_16 : if (fifosize1 = 16) and (fifosize2 = 16) and (rmap /= 0) generate - grspwc0 : grspwc_unisim_rmap_16_16 - port map( - rst => rst, - clk => clk, - txclk => txclk, - --ahb mst in - hgrant => hgrant, - hready => hready, - hresp => hresp, - hrdata => hrdata, - --ahb mst out - hbusreq => hbusreq, - hlock => hlock, - htrans => htrans, - haddr => haddr, - hwrite => hwrite, - hsize => hsize, - hburst => hburst, - hprot => hprot, - hwdata => hwdata, - --apb slv in - psel => psel, - penable => penable, - paddr => paddr, - pwrite => pwrite, - pwdata => pwdata, - --apb slv out - prdata => prdata, - --spw in - di => di, - si => si, - --spw out - do => do, - so => so, - --time iface - tickin => tickin, - tickout => tickout, - --clk bufs - rxclki => rxclki, - nrxclki => nrxclki, - rxclko => rxclko, - --irq - irq => irq, - --misc - clkdiv10 => clkdiv10, - dcrstval => dcrstval, - timerrstval => timerrstval, - --rmapen - rmapen => rmapen, - --rx ahb fifo - rxrenable => rxrenable, - rxraddress => rxraddress, - rxwrite => rxwrite, - rxwdata => rxwdata, - rxwaddress => rxwaddress, - rxrdata => rxrdata, - --tx ahb fifo - txrenable => txrenable, - txraddress => txraddress, - txwrite => txwrite, - txwdata => txwdata, - txwaddress => txwaddress, - txrdata => txrdata, - --nchar fifo - ncrenable => ncrenable, - ncraddress => ncraddress, - ncwrite => ncwrite, - ncwdata => ncwdata, - ncwaddress => ncwaddress, - ncrdata => ncrdata, - --rmap buf - rmrenable => rmrenable, - rmraddress => rmraddress, - rmwrite => rmwrite, - rmwdata => rmwdata, - rmwaddress => rmwaddress, - rmrdata => rmrdata, - linkdis => linkdis, - testclk => testclk, - testrst => testrst, - testen => testen - ); -end generate; - --- pragma translate_off - -nomap : if not ((fifosize1 = 16) and (fifosize2 = 16)) generate - - err : process - begin - assert false report "ERROR : AHB and RX fifos must be 16!" - severity failure; - wait; - end process; - -end generate; - --- pragma translate_on - -end architecture; diff --git a/lib/techmap/unisim/grusbhc_unisim.vhd b/lib/techmap/unisim/grusbhc_unisim.vhd index c2a6cdda..24421f5b 100644 --- a/lib/techmap/unisim/grusbhc_unisim.vhd +++ b/lib/techmap/unisim/grusbhc_unisim.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -62,7 +62,9 @@ entity grusbhc_unisim is memsel : integer := 0; syncprst : integer range 0 to 1 := 0; sysfreq : integer := 65000; - pcidev : integer range 0 to 1 := 0); + pcidev : integer range 0 to 1 := 0; + debug : integer := 0; + debug_abits : integer := 13); port ( clk : in std_ulogic; uclk : in std_ulogic; @@ -81,7 +83,6 @@ entity grusbhc_unisim is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -115,7 +116,6 @@ entity grusbhc_unisim is uhc_ahbso_hresp : out std_logic_vector((n_cc*2)*uhcgen downto 1*uhcgen); uhc_ahbso_hrdata : out std_logic_vector((n_cc*32)*uhcgen downto 1*uhcgen); uhc_ahbso_hsplit : out std_logic_vector((n_cc*16)*uhcgen downto 1*uhcgen); - uhc_ahbso_hcache : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); uhc_ahbso_hirq : out std_logic_vector(n_cc*uhcgen downto 1*uhcgen); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((nports*2)-1) downto 0); @@ -196,7 +196,13 @@ entity grusbhc_unisim is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end grusbhc_unisim; architecture rtl of grusbhc_unisim is @@ -223,7 +229,6 @@ architecture rtl of grusbhc_unisim is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(1*1 downto 1*1); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -257,7 +262,6 @@ architecture rtl of grusbhc_unisim is uhc_ahbso_hresp : out std_logic_vector((1*2)*1 downto 1*1); uhc_ahbso_hrdata : out std_logic_vector((1*32)*1 downto 1*1); uhc_ahbso_hsplit : out std_logic_vector((1*16)*1 downto 1*1); - uhc_ahbso_hcache : out std_logic_vector(1*1 downto 1*1); uhc_ahbso_hirq : out std_logic_vector(1*1 downto 1*1); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((1*2)-1) downto 0); @@ -338,7 +342,13 @@ architecture rtl of grusbhc_unisim is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end component; component grusbhc_unisim_comb1 @@ -360,7 +370,6 @@ architecture rtl of grusbhc_unisim is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(1*0 downto 1*0); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -394,7 +403,6 @@ architecture rtl of grusbhc_unisim is uhc_ahbso_hresp : out std_logic_vector((1*2)*0 downto 1*0); uhc_ahbso_hrdata : out std_logic_vector((1*32)*0 downto 1*0); uhc_ahbso_hsplit : out std_logic_vector((1*16)*0 downto 1*0); - uhc_ahbso_hcache : out std_logic_vector(1*0 downto 1*0); uhc_ahbso_hirq : out std_logic_vector(1*0 downto 1*0); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((1*2)-1) downto 0); @@ -475,7 +483,13 @@ architecture rtl of grusbhc_unisim is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end component; component grusbhc_unisim_comb2 @@ -497,7 +511,6 @@ architecture rtl of grusbhc_unisim is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(1*1 downto 1*1); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -531,7 +544,6 @@ architecture rtl of grusbhc_unisim is uhc_ahbso_hresp : out std_logic_vector((1*2)*1 downto 1*1); uhc_ahbso_hrdata : out std_logic_vector((1*32)*1 downto 1*1); uhc_ahbso_hsplit : out std_logic_vector((1*16)*1 downto 1*1); - uhc_ahbso_hcache : out std_logic_vector(1*1 downto 1*1); uhc_ahbso_hirq : out std_logic_vector(1*1 downto 1*1); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((1*2)-1) downto 0); @@ -612,7 +624,13 @@ architecture rtl of grusbhc_unisim is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end component; component grusbhc_unisim_comb3 @@ -634,7 +652,6 @@ architecture rtl of grusbhc_unisim is ahbmi_hready : in std_ulogic; ahbmi_hresp : in std_logic_vector(1 downto 0); ahbmi_hrdata : in std_logic_vector(31 downto 0); - ahbmi_hcache : in std_ulogic; -- UHC ahb_slv_in_type unwrapped uhc_ahbsi_hsel : in std_logic_vector(1*1 downto 1*1); uhc_ahbsi_haddr : in std_logic_vector(31 downto 0); @@ -668,7 +685,6 @@ architecture rtl of grusbhc_unisim is uhc_ahbso_hresp : out std_logic_vector((1*2)*1 downto 1*1); uhc_ahbso_hrdata : out std_logic_vector((1*32)*1 downto 1*1); uhc_ahbso_hsplit : out std_logic_vector((1*16)*1 downto 1*1); - uhc_ahbso_hcache : out std_logic_vector(1*1 downto 1*1); uhc_ahbso_hirq : out std_logic_vector(1*1 downto 1*1); -- grusb_out_type_vector unwrapped xcvrsel : out std_logic_vector(((2*2)-1) downto 0); @@ -749,7 +765,13 @@ architecture rtl of grusbhc_unisim is testen : in std_ulogic; testrst : in std_ulogic; scanen : in std_ulogic; - testoen : in std_ulogic); + testoen : in std_ulogic; + -- debug signals + debug_raddr : out std_logic_vector(15 downto 0); + debug_waddr : out std_logic_vector(15 downto 0); + debug_wdata : out std_logic_vector(31 downto 0); + debug_we : out std_ulogic; + debug_rdata : in std_logic_vector(31 downto 0)); end component; ----------------------------------------------------------------------------- @@ -781,7 +803,9 @@ architecture rtl of grusbhc_unisim is memsel : integer; syncprst : integer range 0 to 1; sysfreq : integer; - pcidev : integer range 0 to 1) + pcidev : integer range 0 to 1; + debug : integer; + debug_abits : integer) return boolean is begin -- comb0 @@ -791,7 +815,7 @@ architecture rtl of grusbhc_unisim is bwrd = 16 and utm_type = 2 and vbusconf = 3 and ramtest = 0 and urst_time = 0 and oepol = 0 and scantest = 0 and is_fpga(memtech) = 1 and memsel = 0 and syncprst = 0 and - sysfreq = 65000 and pcidev = 0 then + sysfreq = 65000 and pcidev = 0 and debug = 0 then return true; end if; -- comb1 @@ -801,7 +825,7 @@ architecture rtl of grusbhc_unisim is bwrd = 16 and utm_type = 2 and vbusconf = 3 and ramtest = 0 and urst_time = 0 and oepol = 0 and scantest = 0 and is_fpga(memtech) = 1 and memsel = 0 and syncprst = 0 and - sysfreq = 65000 and pcidev = 0 then + sysfreq = 65000 and pcidev = 0 and debug = 0 then return true; end if; -- comb2 @@ -811,7 +835,7 @@ architecture rtl of grusbhc_unisim is bwrd = 16 and utm_type = 2 and vbusconf = 3 and ramtest = 0 and urst_time = 0 and oepol = 0 and scantest = 0 and is_fpga(memtech) = 1 and memsel = 0 and syncprst = 0 and - sysfreq = 65000 and pcidev = 0 then + sysfreq = 65000 and pcidev = 0 and debug = 0 then return true; end if; -- comb3 @@ -821,7 +845,7 @@ architecture rtl of grusbhc_unisim is bwrd = 16 and utm_type = 2 and vbusconf = 3 and ramtest = 0 and urst_time = 0 and oepol = 0 and scantest = 0 and is_fpga(memtech) = 1 and memsel = 0 and syncprst = 0 and - sysfreq = 65000 and pcidev = 0 then + sysfreq = 65000 and pcidev = 0 and debug = 0 then return true; end if; return false; @@ -855,13 +879,14 @@ begin memsel = 0 and syncprst = 0 and sysfreq = 65000 and - pcidev = 0 generate + pcidev = 0 and + debug = 0 generate usbhc0 : grusbhc_unisim_comb0 port map( clk,uclk,rst,ehc_apbsi_psel,ehc_apbsi_penable,ehc_apbsi_paddr, ehc_apbsi_pwrite,ehc_apbsi_pwdata, ehc_apbso_prdata,ehc_apbso_pirq,ahbmi_hgrant, - ahbmi_hready,ahbmi_hresp,ahbmi_hrdata,ahbmi_hcache, + ahbmi_hready,ahbmi_hresp,ahbmi_hrdata, uhc_ahbsi_hsel,uhc_ahbsi_haddr, uhc_ahbsi_hwrite,uhc_ahbsi_htrans,uhc_ahbsi_hsize,uhc_ahbsi_hwdata, uhc_ahbsi_hready, @@ -870,7 +895,7 @@ begin ehc_ahbmo_hwdata,uhc_ahbmo_hbusreq,uhc_ahbmo_hlock,uhc_ahbmo_htrans, uhc_ahbmo_haddr,uhc_ahbmo_hwrite,uhc_ahbmo_hsize,uhc_ahbmo_hburst, uhc_ahbmo_hprot,uhc_ahbmo_hwdata,uhc_ahbso_hready,uhc_ahbso_hresp, - uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hcache,uhc_ahbso_hirq, + uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hirq, xcvrsel,termsel,opmode,txvalid,drvvbus,dataho,validho,stp,datao, utm_rst,dctrlo,suspendm,dbus16_8,dppulldown,dmpulldown,idpullup, dischrgvbus,chrgvbus,txbitstuffenable,txbitstuffenableh,fslsserialmode, @@ -883,7 +908,8 @@ begin sie20_pb_data,sie20_pb_en,sie20_pb_we,pb_sie20_data,sie11_pb_addr, sie11_pb_data,sie11_pb_en,sie11_pb_we,pb_sie11_data,mbc11_pb_addr, mbc11_pb_data,mbc11_pb_en,mbc11_pb_we,pb_mbc11_data,bufsel, - testen,testrst,scanen,testoen); + testen,testrst,scanen,testoen, + debug_raddr,debug_waddr,debug_wdata,debug_we,debug_rdata); end generate comb0; comb1 : if nports = 1 and @@ -909,13 +935,14 @@ begin memsel = 0 and syncprst = 0 and sysfreq = 65000 and - pcidev = 0 generate + pcidev = 0 and + debug = 0 generate usbhc0 : grusbhc_unisim_comb1 port map( clk,uclk,rst,ehc_apbsi_psel,ehc_apbsi_penable,ehc_apbsi_paddr, ehc_apbsi_pwrite,ehc_apbsi_pwdata, ehc_apbso_prdata,ehc_apbso_pirq,ahbmi_hgrant, - ahbmi_hready,ahbmi_hresp,ahbmi_hrdata,ahbmi_hcache, + ahbmi_hready,ahbmi_hresp,ahbmi_hrdata, uhc_ahbsi_hsel,uhc_ahbsi_haddr, uhc_ahbsi_hwrite,uhc_ahbsi_htrans,uhc_ahbsi_hsize,uhc_ahbsi_hwdata, uhc_ahbsi_hready, @@ -924,7 +951,7 @@ begin ehc_ahbmo_hwdata,uhc_ahbmo_hbusreq,uhc_ahbmo_hlock,uhc_ahbmo_htrans, uhc_ahbmo_haddr,uhc_ahbmo_hwrite,uhc_ahbmo_hsize,uhc_ahbmo_hburst, uhc_ahbmo_hprot,uhc_ahbmo_hwdata,uhc_ahbso_hready,uhc_ahbso_hresp, - uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hcache,uhc_ahbso_hirq, + uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hirq, xcvrsel,termsel,opmode,txvalid,drvvbus,dataho,validho,stp,datao, utm_rst,dctrlo,suspendm,dbus16_8,dppulldown,dmpulldown,idpullup, dischrgvbus,chrgvbus,txbitstuffenable,txbitstuffenableh,fslsserialmode, @@ -937,7 +964,8 @@ begin sie20_pb_data,sie20_pb_en,sie20_pb_we,pb_sie20_data,sie11_pb_addr, sie11_pb_data,sie11_pb_en,sie11_pb_we,pb_sie11_data,mbc11_pb_addr, mbc11_pb_data,mbc11_pb_en,mbc11_pb_we,pb_mbc11_data,bufsel, - testen,testrst,scanen,testoen); + testen,testrst,scanen,testoen, + debug_raddr,debug_waddr,debug_wdata,debug_we,debug_rdata); end generate comb1; comb2 : if nports = 1 and @@ -963,13 +991,14 @@ begin memsel = 0 and syncprst = 0 and sysfreq = 65000 and - pcidev = 0 generate + pcidev = 0 and + debug = 0 generate usbhc0 : grusbhc_unisim_comb2 port map( clk,uclk,rst,ehc_apbsi_psel,ehc_apbsi_penable,ehc_apbsi_paddr, ehc_apbsi_pwrite,ehc_apbsi_pwdata, ehc_apbso_prdata,ehc_apbso_pirq,ahbmi_hgrant, - ahbmi_hready,ahbmi_hresp,ahbmi_hrdata,ahbmi_hcache, + ahbmi_hready,ahbmi_hresp,ahbmi_hrdata, uhc_ahbsi_hsel,uhc_ahbsi_haddr, uhc_ahbsi_hwrite,uhc_ahbsi_htrans,uhc_ahbsi_hsize,uhc_ahbsi_hwdata, uhc_ahbsi_hready, @@ -978,7 +1007,7 @@ begin ehc_ahbmo_hwdata,uhc_ahbmo_hbusreq,uhc_ahbmo_hlock,uhc_ahbmo_htrans, uhc_ahbmo_haddr,uhc_ahbmo_hwrite,uhc_ahbmo_hsize,uhc_ahbmo_hburst, uhc_ahbmo_hprot,uhc_ahbmo_hwdata,uhc_ahbso_hready,uhc_ahbso_hresp, - uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hcache,uhc_ahbso_hirq, + uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hirq, xcvrsel,termsel,opmode,txvalid,drvvbus,dataho,validho,stp,datao, utm_rst,dctrlo,suspendm,dbus16_8,dppulldown,dmpulldown,idpullup, dischrgvbus,chrgvbus,txbitstuffenable,txbitstuffenableh,fslsserialmode, @@ -991,7 +1020,8 @@ begin sie20_pb_data,sie20_pb_en,sie20_pb_we,pb_sie20_data,sie11_pb_addr, sie11_pb_data,sie11_pb_en,sie11_pb_we,pb_sie11_data,mbc11_pb_addr, mbc11_pb_data,mbc11_pb_en,mbc11_pb_we,pb_mbc11_data,bufsel, - testen,testrst,scanen,testoen); + testen,testrst,scanen,testoen, + debug_raddr,debug_waddr,debug_wdata,debug_we,debug_rdata); end generate comb2; comb3 : if nports = 2 and @@ -1017,13 +1047,14 @@ begin memsel = 0 and syncprst = 0 and sysfreq = 65000 and - pcidev = 0 generate + pcidev = 0 and + debug = 0 generate usbhc0 : grusbhc_unisim_comb3 port map( clk,uclk,rst,ehc_apbsi_psel,ehc_apbsi_penable,ehc_apbsi_paddr, ehc_apbsi_pwrite,ehc_apbsi_pwdata, ehc_apbso_prdata,ehc_apbso_pirq,ahbmi_hgrant, - ahbmi_hready,ahbmi_hresp,ahbmi_hrdata,ahbmi_hcache, + ahbmi_hready,ahbmi_hresp,ahbmi_hrdata, uhc_ahbsi_hsel,uhc_ahbsi_haddr, uhc_ahbsi_hwrite,uhc_ahbsi_htrans,uhc_ahbsi_hsize,uhc_ahbsi_hwdata, uhc_ahbsi_hready, @@ -1032,7 +1063,7 @@ begin ehc_ahbmo_hwdata,uhc_ahbmo_hbusreq,uhc_ahbmo_hlock,uhc_ahbmo_htrans, uhc_ahbmo_haddr,uhc_ahbmo_hwrite,uhc_ahbmo_hsize,uhc_ahbmo_hburst, uhc_ahbmo_hprot,uhc_ahbmo_hwdata,uhc_ahbso_hready,uhc_ahbso_hresp, - uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hcache,uhc_ahbso_hirq, + uhc_ahbso_hrdata,uhc_ahbso_hsplit,uhc_ahbso_hirq, xcvrsel,termsel,opmode,txvalid,drvvbus,dataho,validho,stp,datao, utm_rst,dctrlo,suspendm,dbus16_8,dppulldown,dmpulldown,idpullup, dischrgvbus,chrgvbus,txbitstuffenable,txbitstuffenableh,fslsserialmode, @@ -1045,14 +1076,15 @@ begin sie20_pb_data,sie20_pb_en,sie20_pb_we,pb_sie20_data,sie11_pb_addr, sie11_pb_data,sie11_pb_en,sie11_pb_we,pb_sie11_data,mbc11_pb_addr, mbc11_pb_data,mbc11_pb_en,mbc11_pb_we,pb_mbc11_data,bufsel, - testen,testrst,scanen,testoen); + testen,testrst,scanen,testoen, + debug_raddr,debug_waddr,debug_wdata,debug_we,debug_rdata); end generate comb3; -- pragma translate_off nomap : if not valid_comb( nports,ehcgen,uhcgen,n_cc,n_pcc,prr,portroute1,portroute2,endian_conv, be_regs,be_desc,uhcblo,bwrd,utm_type,vbusconf,ramtest,urst_time,oepol, - scantest,memtech,memsel,syncprst,sysfreq,pcidev) generate + scantest,memtech,memsel,syncprst,sysfreq,pcidev,debug,debug_abits) generate err : process begin assert false report "ERROR : Can't map a netlist for this combination " & diff --git a/lib/techmap/unisim/memory_unisim.vhd b/lib/techmap/unisim/memory_unisim.vhd index ca6baf66..f33b8d18 100644 --- a/lib/techmap/unisim/memory_unisim.vhd +++ b/lib/techmap/unisim/memory_unisim.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -36,6 +36,9 @@ use unisim.RAMB4_S8; use unisim.RAMB4_S16; use unisim.RAMB4_S16_S16; --pragma translate_on +library grlib; +use grlib.config_types.all; +use grlib.config.all; library techmap; use techmap.gencomp.all; @@ -124,18 +127,20 @@ begin xa(abits-1 downto 0) <= address; xa(19 downto abits) <= (others => '0'); ya(abits-1 downto 0) <= address; ya(19 downto abits) <= (others => '1'); - a0 : if (abits <= 5) generate + a0 : if (abits <= 5) and (GRLIB_CONFIG_ARRAY(grlib_techmap_strict_ram) = 0) generate r0 : generic_syncram generic map (abits, dbits) port map (clk, address, datain, do(dbits-1 downto 0), write); do(dbits+32 downto dbits) <= (others => '0'); end generate; - a7 : if (abits > 5) and (abits <= 7) and (dbits <= 32) generate + a7 : if ((abits > 5 or GRLIB_CONFIG_ARRAY(grlib_techmap_strict_ram) /= 0) and + (abits <= 7) and (dbits <= 32)) generate r0 : RAMB4_S16_S16 port map ( do(31 downto 16), do(15 downto 0), xa(7 downto 0), ya(7 downto 0), clk, clk, di(31 downto 16), di(15 downto 0), enable, enable, gnd, gnd, write, write); do(dbits+32 downto 32) <= (others => '0'); end generate; - a8 : if ((abits > 5) and (abits <= 7) and (dbits > 32)) or (abits = 8) generate + a8 : if (((abits > 5 or GRLIB_CONFIG_ARRAY(grlib_techmap_strict_ram) /= 0) and + (abits <= 7) and (dbits > 32)) or (abits = 8)) generate x : for i in 0 to ((dbits-1)/16) generate r : RAMB4_S16 port map ( do (((i+1)*16)-1 downto i*16), xa(7 downto 0), clk, di (((i+1)*16)-1 downto i*16), enable, gnd, write ); @@ -380,6 +385,9 @@ end; library ieee; use ieee.std_logic_1164.all; +library grlib; +use grlib.config_types.all; +use grlib.config.all; --pragma translate_off library unisim; use unisim.RAMB16_S36_S36; @@ -523,13 +531,14 @@ begin xa(19 downto abits) <= (others => '0'); ya(abits-1 downto 0) <= address; ya(19 downto abits) <= (others => '1'); - a0 : if (abits <= 5) generate + a0 : if (abits <= 5) and (GRLIB_CONFIG_ARRAY(grlib_techmap_strict_ram) = 0) generate r0 : generic_syncram generic map (abits, dbits) port map (clk, address, datain, do(dbits-1 downto 0), write); do(dbits+72 downto dbits) <= (others => '0'); end generate; - a8 : if (abits > 5) and (abits <= 8) generate + a8 : if ((abits > 5 or GRLIB_CONFIG_ARRAY(grlib_techmap_strict_ram) /= 0) and + (abits <= 8)) generate x : for i in 0 to ((dbits-1)/72) generate r0 : RAMB16_S36_S36 port map ( do(i*72+36+31 downto i*72+36), do(i*72+31 downto i*72), @@ -878,6 +887,9 @@ end; library ieee; use ieee.std_logic_1164.all; +library grlib; +use grlib.config_types.all; +use grlib.config.all; entity unisim_syncram_2p is generic (abits : integer := 6; dbits : integer := 8; sepclk : integer := 0; @@ -939,12 +951,12 @@ begin -- renable2 <= renable or write2; datain2 <= datain; -- end generate; - a0 : if abits <= 5 generate + a0 : if abits <= 5 and GRLIB_CONFIG_ARRAY(grlib_techmap_strict_ram) = 0 generate x0 : generic_syncram_2p generic map (abits, dbits, sepclk) port map (rclk, wclk, raddress, waddress, datain, write, dataout); end generate; - a6 : if abits > 5 generate + a6 : if abits > 5 or GRLIB_CONFIG_ARRAY(grlib_techmap_strict_ram) /= 0 generate x0 : unisim_syncram_dp generic map (abits, dbits) port map (wclk, waddress, datain, open, write, write, rclk, raddress, datain2, dataout, renable2, write2); diff --git a/lib/techmap/unisim/pads_unisim.vhd b/lib/techmap/unisim/pads_unisim.vhd index 21cb8bc7..d22208c3 100644 --- a/lib/techmap/unisim/pads_unisim.vhd +++ b/lib/techmap/unisim/pads_unisim.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -137,7 +137,7 @@ begin port map (O => o, IO => pad, I => i, T => en); end generate; end generate; - cmos_25 : if voltage /= x33v generate + cmos_25 : if voltage = x25v generate slow0 : if slew = 0 generate op : IOBUF generic map (drive => strength, IOSTANDARD => "LVCMOS25") port map (O => o, IO => pad, I => i, T => en); @@ -147,6 +147,26 @@ begin port map (O => o, IO => pad, I => i, T => en); end generate; end generate; + cmos_18 : if voltage = x18v generate + slow0 : if slew = 0 generate + op : IOBUF generic map (drive => strength, IOSTANDARD => "LVCMOS18") + port map (O => o, IO => pad, I => i, T => en); + end generate; + fast0 : if slew /= 0 generate + op : IOBUF generic map (drive => strength, IOSTANDARD => "LVCMOS18", SLEW => "FAST") + port map (O => o, IO => pad, I => i, T => en); + end generate; + end generate; + cmos_15 : if voltage = x15v generate + slow0 : if slew = 0 generate + op : IOBUF generic map (drive => strength, IOSTANDARD => "LVCMOS15") + port map (O => o, IO => pad, I => i, T => en); + end generate; + fast0 : if slew /= 0 generate + op : IOBUF generic map (drive => strength, IOSTANDARD => "LVCMOS15", SLEW => "FAST") + port map (O => o, IO => pad, I => i, T => en); + end generate; + end generate; end generate; sstl2x : if level = sstl2_i generate op : IOBUF generic map (drive => strength, IOSTANDARD => "SSTL2_I") @@ -225,7 +245,7 @@ begin port map (O => pad, I => i); end generate; end generate; - cmos_25: if voltage /= x33v generate + cmos_25: if voltage = x25v generate slow0 : if slew = 0 generate op : OBUF generic map (drive => strength, IOSTANDARD => "LVCMOS25") port map (O => pad, I => i); @@ -235,6 +255,26 @@ begin port map (O => pad, I => i); end generate; end generate; + cmos_18: if voltage = x18v generate + slow0 : if slew = 0 generate + op : OBUF generic map (drive => strength, IOSTANDARD => "LVCMOS18") + port map (O => pad, I => i); + end generate; + fast0 : if slew /= 0 generate + op : OBUF generic map (drive => strength, IOSTANDARD => "LVCMOS18", SLEW => "FAST") + port map (O => pad, I => i); + end generate; + end generate; + cmos_15: if voltage = x15v generate + slow0 : if slew = 0 generate + op : OBUF generic map (drive => strength, IOSTANDARD => "LVCMOS15") + port map (O => pad, I => i); + end generate; + fast0 : if slew /= 0 generate + op : OBUF generic map (drive => strength, IOSTANDARD => "LVCMOS15", SLEW => "FAST") + port map (O => pad, I => i); + end generate; + end generate; end generate; sstl2x : if level = sstl2_i generate op : OBUF generic map (drive => strength, IOSTANDARD => "SSTL2_I") @@ -477,7 +517,8 @@ use unisim.BUFG; -- pragma translate_on entity unisim_clkpad is - generic (level : integer := 0; voltage : integer := x33v; arch : integer := 0; hf : integer := 0); + generic (level : integer := 0; voltage : integer := x33v; arch : integer := 0; hf : integer := 0; + tech : integer := 0); port (pad : in std_ulogic; o : out std_ulogic; rstn : in std_ulogic := '1'; lock : out std_ulogic); end; architecture rtl of unisim_clkpad is @@ -497,6 +538,46 @@ architecture rtl of unisim_clkpad is component CLKDLLHF port ( CLK0 : out std_ulogic; CLK180 : out std_ulogic; CLKDV : out std_ulogic; LOCKED : out std_ulogic; CLKFB : in std_ulogic; CLKIN : in std_ulogic; RST : in std_ulogic); end component; + component DCM_SP + generic ( + CLKDV_DIVIDE : real := 2.0; + CLKFX_DIVIDE : integer := 1; + CLKFX_MULTIPLY : integer := 4; + CLKIN_DIVIDE_BY_2 : boolean := false; + CLKIN_PERIOD : real := 10.0; + CLKOUT_PHASE_SHIFT : string := "NONE"; + CLK_FEEDBACK : string := "1X"; + DESKEW_ADJUST : string := "SYSTEM_SYNCHRONOUS"; + DFS_FREQUENCY_MODE : string := "LOW"; + DLL_FREQUENCY_MODE : string := "LOW"; + DSS_MODE : string := "NONE"; + DUTY_CYCLE_CORRECTION : boolean := true; + FACTORY_JF : bit_vector := X"C080"; + PHASE_SHIFT : integer := 0; + STARTUP_WAIT : boolean := false + ); + port ( + CLK0 : out std_ulogic := '0'; + CLK180 : out std_ulogic := '0'; + CLK270 : out std_ulogic := '0'; + CLK2X : out std_ulogic := '0'; + CLK2X180 : out std_ulogic := '0'; + CLK90 : out std_ulogic := '0'; + CLKDV : out std_ulogic := '0'; + CLKFX : out std_ulogic := '0'; + CLKFX180 : out std_ulogic := '0'; + LOCKED : out std_ulogic := '0'; + PSDONE : out std_ulogic := '0'; + STATUS : out std_logic_vector(7 downto 0) := "00000000"; + CLKFB : in std_ulogic := '0'; + CLKIN : in std_ulogic := '0'; + DSSEN : in std_ulogic := '0'; + PSCLK : in std_ulogic := '0'; + PSEN : in std_ulogic := '0'; + PSINCDEC : in std_ulogic := '0'; + RST : in std_ulogic := '0'); + end component; + signal gnd, ol, ol2, ol3 : std_ulogic; signal rst : std_ulogic; @@ -592,30 +673,56 @@ begin end generate; g3 : if arch = 3 generate ip : IBUFG port map (O => ol, I => pad); - hf0 : if hf = 0 generate - dll: CLKDLL port map( - CLK0 => ol2, - CLK180 => open, - CLK270 => open, - CLK2X => open, - CLK90 => open, - CLKDV => open, - LOCKED => lock, - CLKFB => ol3, - CLKIN => ol, - RST => rst); - end generate; - hf1 : if hf = 1 generate - dll : CLKDLLHF - port map( - CLK0 => ol2, + sp6 : if tech = spartan6 generate + dll: DCM_SP + generic map (CLK_FEEDBACK => "1X") + port map ( + CLK0 => ol2, + CLK180 => open, + CLK270 => open, + CLK2X => open, + CLK2X180 => open, + CLK90 => open, + CLKDV => open, + CLKFX => open, + CLKFX180 => open, + LOCKED => lock, + PSDONE => open, + STATUS => open, + CLKFB => ol3, + CLKIN => ol, + DSSEN => gnd, + PSCLK => gnd, + PSEN => gnd, + PSINCDEC => gnd, + RST => rst); + end generate; + nsp6 : if tech /= spartan6 generate + hf0 : if hf = 0 generate + dll: CLKDLL port map( + CLK0 => ol2, CLK180 => open, - CLKDV => open, + CLK270 => open, + CLK2X => open, + CLK90 => open, + CLKDV => open, LOCKED => lock, CLKFB => ol3, CLKIN => ol, RST => rst); - end generate; + end generate; + hf1 : if hf = 1 generate + dll : CLKDLLHF + port map( + CLK0 => ol2, + CLK180 => open, + CLKDV => open, + LOCKED => lock, + CLKFB => ol3, + CLKIN => ol, + RST => rst); + end generate; + end generate; bf : BUFG port map (O => ol3, I => ol2); o <= ol3; end generate g3; @@ -663,6 +770,7 @@ library techmap; use techmap.gencomp.all; -- pragma translate_off library unisim; +use unisim.IBUFGDS; use unisim.IBUFGDS_LVDS_25; use unisim.IBUFGDS_LVDS_33; -- pragma translate_on @@ -673,6 +781,12 @@ entity unisim_clkpad_ds is end; architecture rtl of unisim_clkpad_ds is + component IBUFGDS + generic ( CAPACITANCE : string := "DONT_CARE"; + DIFF_TERM : boolean := FALSE; IBUF_DELAY_VALUE : string := "0"; + IOSTANDARD : string := "DEFAULT"); + port ( O : out std_ulogic; I : in std_ulogic; IB : in std_ulogic); + end component; component IBUFGDS_LVDS_25 port ( O : out std_ulogic; I : in std_ulogic; IB : in std_ulogic); end component; @@ -689,11 +803,21 @@ begin lvds_33 : if voltage = x33v generate ip : IBUFGDS_LVDS_33 port map (O => o, I => padp, IB => padn); end generate; - lvds_25 : if voltage /= x33v generate + lvds_25 : if voltage = x25v generate ip : IBUFGDS_LVDS_25 port map (O => o, I => padp, IB => padn); end generate; end generate; - beh : if level /= lvds generate + xsstl : if level = sstl generate + sstl_18 : if voltage = x18v generate + ip : IBUFGDS generic map (DIFF_TERM => true, IOSTANDARD =>"DIFF_SSTL18") + port map (O => o, I => padp, IB => padn); + end generate; + sstl_15 : if voltage = x15v generate + ip : IBUFGDS generic map (DIFF_TERM => true, IOSTANDARD =>"DIFF_SSTL15") + port map (O => o, I => padp, IB => padn); + end generate; + end generate; + beh : if ((level /= lvds) and (level /= sstl)) generate o <= padp after 1 ns; end generate; end; @@ -770,7 +894,7 @@ begin ip : IBUFGDS generic map (DIFF_TERM => true, IOSTANDARD =>"LVDS_33") port map (O => o, I => padp, IB => padn); end generate; - lvds_25 : if voltage /= x33v generate + lvds_25 : if voltage = x25v generate ip : IBUFGDS generic map (DIFF_TERM => true, IOSTANDARD =>"LVDS_25") port map (O => o, I => padp, IB => padn); end generate; diff --git a/lib/techmap/unisim/spictrl_unisim.vhd b/lib/techmap/unisim/spictrl_unisim.vhd index 885c5862..8200c3e7 100644 --- a/lib/techmap/unisim/spictrl_unisim.vhd +++ b/lib/techmap/unisim/spictrl_unisim.vhd @@ -39,6 +39,7 @@ entity spictrl_unisim is spii_sck : in std_ulogic; spii_spisel : in std_ulogic; spii_astart : in std_ulogic; + spii_cstart : in std_ulogic; spio_miso : out std_ulogic; spio_misooen : out std_ulogic; spio_mosi : out std_ulogic; @@ -47,6 +48,7 @@ entity spictrl_unisim is spio_sckoen : out std_ulogic; spio_enable : out std_ulogic; spio_astart : out std_ulogic; + spio_aready : out std_ulogic; slvsel : out std_logic_vector((slvselsz-1) downto 0)); end spictrl_unisim; @@ -75,6 +77,7 @@ architecture rtl of spictrl_unisim is spii_sck : in std_ulogic; spii_spisel : in std_ulogic; spii_astart : in std_ulogic; + spii_cstart : in std_ulogic; spio_miso : out std_ulogic; spio_misooen : out std_ulogic; spio_mosi : out std_ulogic; @@ -83,6 +86,7 @@ architecture rtl of spictrl_unisim is spio_sckoen : out std_ulogic; spio_enable : out std_ulogic; spio_astart : out std_ulogic; + spio_aready : out std_ulogic; slvsel : out std_logic_vector(31 downto 0)); end component; @@ -109,6 +113,7 @@ architecture rtl of spictrl_unisim is spii_sck : in std_ulogic; spii_spisel : in std_ulogic; spii_astart : in std_ulogic; + spii_cstart : in std_ulogic; spio_miso : out std_ulogic; spio_misooen : out std_ulogic; spio_mosi : out std_ulogic; @@ -117,6 +122,7 @@ architecture rtl of spictrl_unisim is spio_sckoen : out std_ulogic; spio_enable : out std_ulogic; spio_astart : out std_ulogic; + spio_aready : out std_ulogic; slvsel : out std_logic_vector(31 downto 0)); end component; @@ -145,6 +151,7 @@ begin spii_sck => spii_sck, spii_spisel => spii_spisel, spii_astart => spii_astart, + spii_cstart => spii_cstart, spio_miso => spio_miso, spio_misooen => spio_misooen, spio_mosi => spio_mosi, @@ -153,6 +160,7 @@ begin spio_sckoen => spio_sckoen, spio_enable => spio_enable, spio_astart => spio_astart, + spio_aready => spio_aready, slvsel => slvsel); end generate; @@ -179,6 +187,7 @@ begin spii_sck => spii_sck, spii_spisel => spii_spisel, spii_astart => spii_astart, + spii_cstart => spii_cstart, spio_miso => spio_miso, spio_misooen => spio_misooen, spio_mosi => spio_mosi, @@ -187,6 +196,7 @@ begin spio_sckoen => spio_sckoen, spio_enable => spio_enable, spio_astart => spio_astart, + spio_aready => spio_aready, slvsel => slvsel); end generate; diff --git a/lib/techmap/unisim/ssrctrl_unisim.vhd b/lib/techmap/unisim/ssrctrl_unisim.vhd index 28c2c83d..e4057e0b 100644 --- a/lib/techmap/unisim/ssrctrl_unisim.vhd +++ b/lib/techmap/unisim/ssrctrl_unisim.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -44,13 +44,11 @@ port( n_ahbsi_hmaster : in std_logic_vector (3 downto 0); n_ahbsi_hmastlock : in std_logic; n_ahbsi_hmbsel : in std_logic_vector (0 to 3); - n_ahbsi_hcache : in std_logic; n_ahbsi_hirq : in std_logic_vector (31 downto 0); n_ahbso_hready : out std_logic; n_ahbso_hresp : out std_logic_vector (1 downto 0); n_ahbso_hrdata : out std_logic_vector (31 downto 0); n_ahbso_hsplit : out std_logic_vector (15 downto 0); - n_ahbso_hcache : out std_logic; n_ahbso_hirq : out std_logic_vector (31 downto 0); n_apbi_psel : in std_logic_vector (0 to 15); n_apbi_penable : in std_logic; @@ -6489,7 +6487,6 @@ begin n_ahbso_hsplit(13) <= NN_2; n_ahbso_hsplit(14) <= NN_2; n_ahbso_hsplit(15) <= NN_2; - n_ahbso_hcache <= NN_1; n_ahbso_hirq(0) <= NN_2; n_ahbso_hirq(1) <= NN_2; n_ahbso_hirq(2) <= NN_2; diff --git a/lib/techmap/unisim/sysmon_unisim.vhd b/lib/techmap/unisim/sysmon_unisim.vhd index 2e5f0270..517cb002 100644 --- a/lib/techmap/unisim/sysmon_unisim.vhd +++ b/lib/techmap/unisim/sysmon_unisim.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/techmap/unisim/tap_unisim.vhd b/lib/techmap/unisim/tap_unisim.vhd index 9e584195..2b70d77c 100644 --- a/lib/techmap/unisim/tap_unisim.vhd +++ b/lib/techmap/unisim/tap_unisim.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by @@ -550,3 +550,184 @@ begin end; +library ieee; +use ieee.std_logic_1164.all; +-- pragma translate_off +library unisim; +use unisim.all; +-- pragma translate_on + +entity virtex7_tap is +port ( + tapi_tdo1 : in std_ulogic; + tapi_tdo2 : in std_ulogic; + tapo_tck : out std_ulogic; + tapo_tdi : out std_ulogic; + tapo_rst : out std_ulogic; + tapo_capt : out std_ulogic; + tapo_shft : out std_ulogic; + tapo_upd : out std_ulogic; + tapo_xsel1 : out std_ulogic; + tapo_xsel2 : out std_ulogic + ); +end; + +architecture rtl of virtex7_tap is + +component BSCANE2 + generic ( + DISABLE_JTAG : string := "FALSE"; + JTAG_CHAIN : integer := 1 + ); + port ( + CAPTURE : out std_ulogic := 'H'; + DRCK : out std_ulogic := 'H'; + RESET : out std_ulogic := 'H'; + RUNTEST : out std_ulogic := 'L'; + SEL : out std_ulogic := 'L'; + SHIFT : out std_ulogic := 'L'; + TCK : out std_ulogic := 'L'; + TDI : out std_ulogic := 'L'; + TMS : out std_ulogic := 'L'; + UPDATE : out std_ulogic := 'L'; + TDO : in std_ulogic := 'X' + ); +end component; + + signal drck1, drck2, sel1, sel2 : std_ulogic; + signal capt1, capt2, rst1, rst2 : std_ulogic; + signal shift1, shift2, tdi1, tdi2 : std_ulogic; + signal update1, update2 : std_ulogic; + attribute dont_touch : boolean; + attribute dont_touch of u0 : label is true; + attribute dont_touch of u1 : label is true; + +begin + + u0 : BSCANE2 + generic map (JTAG_CHAIN => 1) + port map ( + CAPTURE => capt1, + DRCK => drck1, + RESET => rst1, + SEL => sel1, + SHIFT => shift1, + TDI => tdi1, + UPDATE => update1, + TDO => tapi_tdo1 + ); + + u1 : BSCANE2 + generic map (JTAG_CHAIN => 2) + port map ( + CAPTURE => capt2, + DRCK => drck2, + RESET => rst2, + SEL => sel2, + SHIFT => shift2, + TDI => tdi2, + UPDATE => update2, + TDO => tapi_tdo2 + ); + + tapo_capt <= capt1 when sel1 = '1' else capt2; + tapo_tck <= drck1 when sel1 = '1' else drck2; + tapo_rst <= rst1 when sel1 = '1' else rst2; + tapo_shft <= shift1 when sel1 = '1' else shift2; + tapo_tdi <= tdi1 when sel1 = '1' else tdi2; + tapo_upd <= update1 when sel1 ='1' else update2; + tapo_xsel1 <= sel1; tapo_xsel2 <= sel2; + + +end; + +library ieee; +use ieee.std_logic_1164.all; +-- pragma translate_off +library unisim; +use unisim.all; +-- pragma translate_on + +entity kintex7_tap is +port ( + tapi_tdo1 : in std_ulogic; + tapi_tdo2 : in std_ulogic; + tapo_tck : out std_ulogic; + tapo_tdi : out std_ulogic; + tapo_rst : out std_ulogic; + tapo_capt : out std_ulogic; + tapo_shft : out std_ulogic; + tapo_upd : out std_ulogic; + tapo_xsel1 : out std_ulogic; + tapo_xsel2 : out std_ulogic + ); +end; + +architecture rtl of kintex7_tap is + +component BSCANE2 + generic ( + DISABLE_JTAG : string := "FALSE"; + JTAG_CHAIN : integer := 1 + ); + port ( + CAPTURE : out std_ulogic := 'H'; + DRCK : out std_ulogic := 'H'; + RESET : out std_ulogic := 'H'; + RUNTEST : out std_ulogic := 'L'; + SEL : out std_ulogic := 'L'; + SHIFT : out std_ulogic := 'L'; + TCK : out std_ulogic := 'L'; + TDI : out std_ulogic := 'L'; + TMS : out std_ulogic := 'L'; + UPDATE : out std_ulogic := 'L'; + TDO : in std_ulogic := 'X' + ); +end component; + + signal drck1, drck2, sel1, sel2 : std_ulogic; + signal capt1, capt2, rst1, rst2 : std_ulogic; + signal shift1, shift2, tdi1, tdi2 : std_ulogic; + signal update1, update2 : std_ulogic; + attribute dont_touch : boolean; + attribute dont_touch of u0 : label is true; + attribute dont_touch of u1 : label is true; + +begin + + u0 : BSCANE2 + generic map (JTAG_CHAIN => 1) + port map ( + CAPTURE => capt1, + DRCK => drck1, + RESET => rst1, + SEL => sel1, + SHIFT => shift1, + TDI => tdi1, + UPDATE => update1, + TDO => tapi_tdo1 + ); + + u1 : BSCANE2 + generic map (JTAG_CHAIN => 2) + port map ( + CAPTURE => capt2, + DRCK => drck2, + RESET => rst2, + SEL => sel2, + SHIFT => shift2, + TDI => tdi2, + UPDATE => update2, + TDO => tapi_tdo2 + ); + + tapo_capt <= capt1 when sel1 = '1' else capt2; + tapo_tck <= drck1 when sel1 = '1' else drck2; + tapo_rst <= rst1 when sel1 = '1' else rst2; + tapo_shft <= shift1 when sel1 = '1' else shift2; + tapo_tdi <= tdi1 when sel1 = '1' else tdi2; + tapo_upd <= update1 when sel1 ='1' else update2; + tapo_xsel1 <= sel1; tapo_xsel2 <= sel2; + + +end; diff --git a/lib/techmap/unisim/vhdlsyn.txt b/lib/techmap/unisim/vhdlsyn.txt index ff7d92dd..7edde16c 100644 --- a/lib/techmap/unisim/vhdlsyn.txt +++ b/lib/techmap/unisim/vhdlsyn.txt @@ -15,10 +15,6 @@ grspwc2_unisim_16_16_rmap0.vhd grspwc2_unisim_32_64_rmap1.vhd leon3ft_unisim.vhd grusbhc_unisim.vhd -grusbhc_unisim_comb0.vhd -grusbhc_unisim_comb1.vhd -grusbhc_unisim_comb2.vhd -grusbhc_unisim_comb3.vhd ssrctrl_unisim.vhd ftmctrl_unisim_sd0.vhd sysmon_unisim.vhd diff --git a/lib/techmap/virage/memory_virage.vhd b/lib/techmap/virage/memory_virage.vhd index ac1f1110..ecc874eb 100644 --- a/lib/techmap/virage/memory_virage.vhd +++ b/lib/techmap/virage/memory_virage.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/work/debug/cpu_disas.vhd b/lib/work/debug/cpu_disas.vhd index f31eb455..dae6dbea 100644 --- a/lib/work/debug/cpu_disas.vhd +++ b/lib/work/debug/cpu_disas.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/work/debug/debug.vhd b/lib/work/debug/debug.vhd index 2725e3ef..14f1eae6 100644 --- a/lib/work/debug/debug.vhd +++ b/lib/work/debug/debug.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/lib/work/debug/grtestmod.vhd b/lib/work/debug/grtestmod.vhd index 47e6dcdc..23951827 100644 --- a/lib/work/debug/grtestmod.vhd +++ b/lib/work/debug/grtestmod.vhd @@ -1,7 +1,7 @@ ------------------------------------------------------------------------------ -- This file is a part of the GRLIB VHDL IP LIBRARY -- Copyright (C) 2003 - 2008, Gaisler Research --- Copyright (C) 2008 - 2012, Aeroflex Gaisler +-- Copyright (C) 2008 - 2013, Aeroflex Gaisler -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/software/greth/greth_api.c b/software/greth/greth_api.c index 9c414335..1f2bd79e 100644 --- a/software/greth/greth_api.c +++ b/software/greth/greth_api.c @@ -1,6 +1,6 @@ /*****************************************************************************/ /* This file is a part of the GRLIB VHDL IP LIBRARY */ -/* Copyright (C) 2007 GAISLER RESEARCH */ +/* Copyright (C) 2007 - 2012 Aeroflex Gaisler */ /* */ /* This program is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ @@ -12,8 +12,10 @@ /* Changelog */ /* 2008-02-01: GRETH API separated from test - Marko Isomaki */ +/* 2012-09-06: include stdlib.h */ #include "greth_api.h" +#include /* Bypass cache load */ static inline int load(int addr) diff --git a/software/grpci2/Makefile b/software/grpci2/Makefile deleted file mode 100644 index 7977b49e..00000000 --- a/software/grpci2/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -all : grpci2test.c grpci2api.c grpci2extra.c - sparc-elf-gcc -DRAMSTART=0x00000000 -O2 -g grpci2test.c grpci2api.c grpci2extra.c -Wl,-msparcleon0 -o grpci2test.exe diff --git a/software/grpci2/grpci2api.c b/software/grpci2/grpci2api.c deleted file mode 100644 index 78647715..00000000 --- a/software/grpci2/grpci2api.c +++ /dev/null @@ -1,190 +0,0 @@ -#include "grpci2api.h" - -static inline int loadmem(int addr){ - int tmp; - asm volatile (" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -}; - -unsigned int grpci2_tw(unsigned int data){ - return ((data & 0xff) << 24) | (((data >> 8) & 0xff) << 16) | (((data >> 16) & 0xff) << 8) | (((data >> 24) & 0xff)); -} - -/* GRPCI2 Get Master/Target/DMA enabled ****************************************** */ - int grpci2_get_master(volatile struct grpci2regs* apb){ - return ((apb->status & GRPCI2_STA_MASTER) != 0); - }; - - int grpci2_get_target(volatile struct grpci2regs* apb){ - return ((apb->status & GRPCI2_STA_TARGET) != 0); - }; - - int grpci2_get_dma(volatile struct grpci2regs* apb){ - return ((apb->status & GRPCI2_STA_DMA) != 0); - }; - -/* GRPCI2 Set/Get AHB Master-to-PCI map ****************************************** */ - void grpci2_set_mstmap(volatile struct grpci2regs* apb, int mst, unsigned int addr){ - apb->mst_to_pci[mst] = addr; - }; - - unsigned int grpci2_get_mstmap(volatile struct grpci2regs* apb, int mst){ - return apb->mst_to_pci[mst]; - }; - -/* GRPCI2 Set/Get Bus-endiannes ************************************************** */ - void grpci2_set_bus_litle_endian(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->ext->ahbio_endiannes |= grpci2_tw(1); - }; - - void grpci2_set_bus_big_endian(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->ext->ahbio_endiannes &= grpci2_tw(0xfffffffe); - }; - - int grpci2_get_endian(volatile struct grpci2_pci_conf_space_regs* conf){ - return (conf->ext->ahbio_endiannes & 1); - }; - -/* GRPCI2 Set/Get BARMAP ********************************************************* */ - void grpci2_set_barmap(volatile struct grpci2_pci_conf_space_regs* conf, int bar, unsigned int addr){ - conf->ext->bar_to_ahb[bar] = grpci2_tw(addr); - }; - - unsigned int grpci2_get_barmap(volatile struct grpci2_pci_conf_space_regs* conf, int bar){ - return conf->ext->bar_to_ahb[bar]; - }; - -/* GRPCI2 Set/Get BAR ************************************************************ */ - void grpci2_set_bar(volatile struct grpci2_pci_conf_space_regs* conf, int bar, unsigned int addr){ - conf->head->bar[bar] = grpci2_tw(addr); - }; - - unsigned int grpci2_get_bar(volatile struct grpci2_pci_conf_space_regs* conf, int bar){ - return conf->head->bar[bar]; - }; - -/* GRPCI2 Set Latency Timer ****************************************************** */ - void grpci2_set_latency_timer(volatile struct grpci2_pci_conf_space_regs* conf, int timer){ - conf->head->lat_timer = grpci2_tw((grpci2_tw(conf->head->lat_timer) & 0xffff00ff) | (timer & 0xff) << 8); - }; - -/* GRPCI2 Master Enable/Disable ************************************************** */ - void grpci2_mst_enable(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->head->sta_cmd |= grpci2_tw(0x4); - }; - - void grpci2_mst_disable(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->head->sta_cmd &= ~grpci2_tw(0x4); - }; - -/* GRPCI2 Memory target Enable/Disable ******************************************* */ - void grpci2_mem_enable(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->head->sta_cmd |= grpci2_tw(0x2); - }; - - void grpci2_mem_disable(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->head->sta_cmd &= ~grpci2_tw(0x2); - }; - -/* GRPCI2 IO target Enable/Disable *********************************************** */ - void grpci2_io_enable(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->head->sta_cmd |= grpci2_tw(0x1); - }; - - void grpci2_io_disable(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->head->sta_cmd &= ~grpci2_tw(0x1); - }; - -/* GRPCI2 DMA Descriptors init *************************************************** */ - int grpci2_dma_desc_init(struct grpci2regs* apb, volatile unsigned int **chdesc, int irqen, - int num_ch, int ch_entry){ - int i,j; - struct grpci2_dma_ch_desc *ch = malloc(sizeof(struct grpci2_dma_ch_desc)*(num_ch+1)); - struct grpci2_dma_data_desc *ddesc = malloc(sizeof(struct grpci2_dma_data_desc)*(ch_entry*num_ch+1)); - /*printf("ch: %p, desc: %p\n", ch, ddesc);*/ - if (((int)ch & 0xf) != 0) ch = (struct grpci2_dma_ch_desc*)((int)ch + (0x10 - (int)ch & 0xf)); - if (((int)ddesc & 0xf) != 0) ddesc = (struct grpci2_dma_data_desc*)((int)ddesc + (0x10 - (int)ddesc & 0xf)); - /*printf("ch: %p, desc: %p\n", ch, ddesc);*/ - - *chdesc = (int*)ch; - /*printf("ch base: %08p\n", ch);*/ - - for(i=0; ictrl = 0; - (ddesc + i*ch_entry + j)->paddr = 0; - (ddesc + i*ch_entry + j)->aaddr = 0; - if (j == ch_entry-1) (ddesc + i*ch_entry + j)->next = (int)(ddesc + i*ch_entry); - else (ddesc + i*ch_entry + j)->next = (int)(ddesc + i*ch_entry + j + 1); - } - - (ch + i)->ctrl = GRPCI2_DMA_CHDESC_EN | - ((i << GRPCI2_DMA_CHDESC_ID)& GRPCI2_DMA_CHDESC_ID_MASK) | - GRPCI2_DMA_DESC_TYPE_CH; - if (i == num_ch-1) (ch + i)->next = (int)ch; - else (ch + i)->next = (int)(ch + i + 1); - (ch + i)->desc = (int)(ddesc + i*ch_entry); - (ch + i)->res = 0; - - //desc[i] = (int*)(ddesc + i*CH_ENTRY); - //printf("datadesc[%d] base: %08p\n", i, desc[i]); - }; - - apb->dma_ctrl = GRPCI2_DMACTRL_GUARD | GRPCI2_DMACTRL_MABORT | GRPCI2_DMACTRL_TABORT | - GRPCI2_DMACTRL_PERR | GRPCI2_DMACTRL_AHBDATA_ERR | GRPCI2_DMACTRL_AHBDESC_ERR | - (((num_ch-1) << GRPCI2_DMACTRL_NUMCH) & GRPCI2_DMACTRL_NUMCH_MASK) | - (irqen*GRPCI2_DMACTRL_IRQEN); - apb->dma_desc = (int)ch; - - apb->status = GRPCI2_STA_IRQ_DMAINT | GRPCI2_STA_IRQ_DMAERR; - - }; -/* ******************************************************************************* */ - -/* GRPCI2 DMA add transfer ******************************************************* */ - int grpci2_dma_add(struct grpci2regs* apb, volatile unsigned int **ddesc, unsigned int paddr, - unsigned int aaddr, int dir, int ien, int length){ - struct grpci2_dma_data_desc *desc = (struct grpci2_dma_data_desc*)*ddesc; - unsigned int tmp = loadmem((int)desc); - - /*printf("desc: %08X, ctrl: %08X, paddr: %08X, aaddr: %08X, next: %08X\n", - (desc), (desc)->ctrl, (desc)->paddr, (desc)->aaddr, (desc)->next); /**/ - - //if ((desc->ctrl & GRPCI2_DMA_DESC_EN) == 0){ - //printf("desc-ctrl: 0x%08X 0x%08X\n", tmp, desc->ctrl); - if ((tmp & GRPCI2_DMA_DESC_EN) == 0){ - desc->paddr = paddr; - desc->aaddr = aaddr; - desc->ctrl = GRPCI2_DMA_DESC_EN | GRPCI2_DMA_DESC_IRQEN*ien | GRPCI2_DMA_DESC_DIR*dir | - GRPCI2_DMA_DESC_TYPE_DATA | - (length & GRPCI2_DMA_DESC_LENGTH_MASK) << GRPCI2_DMA_DESC_LENGTH; - *ddesc = (int*)desc->next; - apb->dma_ctrl = (apb->dma_ctrl & GRPCI2_DMACTRL_NUMCH_MASK) | - (apb->dma_ctrl & GRPCI2_DMACTRL_IRQEN) | GRPCI2_DMACTRL_EN; - - /*printf("desc: %08X, ctrl: %08X, paddr: %08X, aaddr: %08X, next: %08X\n", - (desc), (desc)->ctrl, (desc)->paddr, (desc)->aaddr, (desc)->next); /**/ - return 0; - }else{ - return -1; - }; - - }; -/* ******************************************************************************* */ - -/* GRPCI2 DMA check transfer ******************************************************* */ - unsigned int grpci2_dma_check(volatile unsigned int **ddesc){ - struct grpci2_dma_data_desc *desc = (struct grpci2_dma_data_desc*)*ddesc; - unsigned int res; - - res = loadmem((int)desc); - - if (!(res & GRPCI2_DMA_DESC_EN)) { - *ddesc = (int*)desc->next; - }; - return res; - }; - diff --git a/software/grpci2/grpci2api.h b/software/grpci2/grpci2api.h deleted file mode 100644 index a78abf14..00000000 --- a/software/grpci2/grpci2api.h +++ /dev/null @@ -1,336 +0,0 @@ -/* GRPCI2 APB Register *********************************************************** */ -/* Ctrl register */ -#define GRPCI2_CTRL_RST (1 << 31) -#define GRPCI2_CTRL_MRST (1 << 30) -#define GRPCI2_CTRL_TRST (1 << 29) -#define GRPCI2_CTRL_SERRIEN (1 << 27) -#define GRPCI2_CTRL_PERRAEEN (1 << 26) -#define GRPCI2_CTRL_ABORTAEEN (1 << 25) -#define GRPCI2_CTRL_ABORTIEN (1 << 24) -#define GRPCI2_CTRL_CFG_BUS 16 /* 23:16 */ -#define GRPCI2_CTRL_CFG_BUS_MASK (0xFF << 16) -#define GRPCI2_CTRL_IOBURST (1 << 10) -#define GRPCI2_CTRL_CFGBURST (1 << 9) -#define GRPCI2_CTRL_PINTFORCE (1 << 8) -#define GRPCI2_CTRL_DEVINT_MASK 4 /* 7: 4 */ -#define GRPCI2_CTRL_DEVINT_MASK_MASK (0xF << 4) -#define GRPCI2_CTRL_HOSTINT_MASK 0 /* 3: 0 */ -#define GRPCI2_CTRL_HOSTINT_MASK_MASK (0xF << 0) - -/* Status register */ -#define GRPCI2_STA_HOST (1 << 31) -#define GRPCI2_STA_MASTER (1 << 30) -#define GRPCI2_STA_TARGET (1 << 29) -#define GRPCI2_STA_DMA (1 << 28) -#define GRPCI2_STA_DEVINT (1 << 27) -#define GRPCI2_STA_HOSTINT (1 << 26) -#define GRPCI2_STA_IRQ_MODE 24 /* 25:24 */ -#define GRPCI2_STA_IRQ_MODE_MASK (0x3 << 24) -#define GRPCI2_STA_TRACE (1 << 23) -#define GRPCI2_STA_CFG_DONE (1 << 20) -#define GRPCI2_STA_CFG_ERR (1 << 19) -#define GRPCI2_STA_IRQ_STATUS 12 /* 18:12 */ -#define GRPCI2_STA_IRQ_STATUS_MASK (0x7F << 12) -#define GRPCI2_STA_IRQ_DISCARD (1 << 18) -#define GRPCI2_STA_IRQ_SERR (1 << 17) -#define GRPCI2_STA_IRQ_DMAINT (1 << 16) -#define GRPCI2_STA_IRQ_DMAERR (1 << 15) -#define GRPCI2_STA_IRQ_MABORT (1 << 14) -#define GRPCI2_STA_IRQ_TABORT (1 << 13) -#define GRPCI2_STA_IRQ_PERR (1 << 12) -#define GRPCI2_STA_HOSTINT_STATUS 8 /* 11: 8 */ -#define GRPCI2_STA_HOSTINT_STATUS_MASK (0xF << 8) -#define GRPCI2_STA_FIFO_DEPTH 2 /* 4: 2 */ -#define GRPCI2_STA_FIFO_DEPTH_MASK (0x3 << 2) -#define GRPCI2_STA_FIFO_CNT 0 /* 4: 2 */ -#define GRPCI2_STA_FIFO_CNT_MASK (0x3 << 0) - -/* PCI-master burst limit register */ -#define GRPCI2_PCIMSTBURST_AHBMST_INDEX 16 /* 31:16 */ -#define GRPCI2_PCIMSTBURST_AHBMST_INDEX_MASK (0xFFFF << 16) -#define GRPCI2_PCIMSTBURST_BURST_LENGTH 0 /* 7: 0 */ -#define GRPCI2_PCIMSTBURST_BURST_LENGHT_MASK (0xFF << 0) - -/* PCI IO map register */ -#define GRPCI2_PCIIO_MAP 16 /* 31:16 */ -#define GRPCI2_PCIIO_MAP_MASK (0xFFFF << 16) - -/* DMA Ctrl/Status register */ -#define GRPCI2_DMACTRL_GUARD (1 << 31) -#define GRPCI2_DMACTRL_CHIRQ 12 /* 19:12 */ -#define GRPCI2_DMACTRL_CHIRQ_MASK (0xFF<< 12) -#define GRPCI2_DMACTRL_MABORT (1 << 11) -#define GRPCI2_DMACTRL_TABORT (1 << 10) -#define GRPCI2_DMACTRL_PERR (1 << 9) -#define GRPCI2_DMACTRL_AHBDATA_ERR (1 << 8) -#define GRPCI2_DMACTRL_AHBDESC_ERR (1 << 7) -#define GRPCI2_DMACTRL_NUMCH 4 /* 6: 4 */ -#define GRPCI2_DMACTRL_NUMCH_MASK (0x7 << 4) -#define GRPCI2_DMACTRL_ACTIVE (1 << 3) -#define GRPCI2_DMACTRL_IRQEN (1 << 1) -#define GRPCI2_DMACTRL_EN (1 << 0) - -/* DMA Descriptor base register */ -#define GRPCI2_DMADESC 0 /* 31: 0 */ -#define GRPCI2_DMADESC_MASK (0xFFFFFFFF << 0) - -/* DMA Active channel register */ -#define GRPCI2_DMACH 0 /* 31: 0 */ -#define GRPCI2_DMACH_MASK (0xFFFFFFFF << 0) - -/* PCI BAR Map register */ -#define GRPCI2_PCIBAR_MAP 0 /* 31: 0 */ -#define GRPCI2_PCIBAR_MAP_MASK (0xFFFFFFFF << 0) - -/* AHB Master Map register */ -#define GRPCI2_AHBMST_MAP 0 /* 31: 0 */ -#define GRPCI2_AHBMST_MAP_MASK (0xFFFFFFFF << 0) - -/* PCI-trace Ctrl/Status register */ -#define GRPCI2_TBCTRL_INDEX 16 /* 31:16 */ -#define GRPCI2_TBCTRL_INDEX_MASK (0xFFFF << 16) -#define GRPCI2_TBCTRL_ARMED (1 << 15) -#define GRPCI2_TBCTRL_RUNNING (1 << 14) -#define GRPCI2_TBCTRL_DEPTH 4 /* 11: 4 */ -#define GRPCI2_TBCTRL_DEPTH_MASK (0xFF << 4) -#define GRPCI2_TBCTRL_START (1 << 1) -#define GRPCI2_TBCTRL_STOP (1 << 0) - -/* PCI-trace Count/Mode register */ -#define GRPCI2_TBCM_MODE 24 /* 27:24 */ -#define GRPCI2_TBCM_MODE_MASK (0xF << 24) -#define GRPCI2_TBCM_TCNT 16 /* 23:16 */ -#define GRPCI2_TBCM_TCNT_MASK (0xFF << 16) -#define GRPCI2_TBCM_DEL 0 /* 15: 0 */ -#define GRPCI2_TBCM_DEL_MASK (0xFFFF << 0) - -/* PCI-trace AD pattern register */ -#define GRPCI2_TBAD_PAT 0 /* 31: 0 */ -#define GRPCI2_TBAD_PAT_MASK (0xFFFFFFFF << 0) - -/* PCI-trace AD mask register */ -#define GRPCI2_TBAD_MASK 0 /* 31: 0 */ -#define GRPCI2_TBAD_MASK_MASK (0xFFFFFFFF << 0) - -/* PCI-trace Ctrl-signals register */ -#define GRPCI2_TBSIG_CBE 16 /* 19:16 */ -#define GRPCI2_TBSIG_CBE_MASK (0xFFFF << 16) -#define GRPCI2_TBSIG_FRAME (1 << 15) -#define GRPCI2_TBSIG_IRDY (1 << 14) -#define GRPCI2_TBSIG_TRDY (1 << 13) -#define GRPCI2_TBSIG_STOP (1 << 12) -#define GRPCI2_TBSIG_DEVSEL (1 << 11) -#define GRPCI2_TBSIG_PAR (1 << 10) -#define GRPCI2_TBSIG_PERR (1 << 9) -#define GRPCI2_TBSIG_SERR (1 << 8) -#define GRPCI2_TBSIG_IDSEL (1 << 7) -#define GRPCI2_TBSIG_REQ (1 << 6) -#define GRPCI2_TBSIG_GNT (1 << 5) -#define GRPCI2_TBSIG_LOCK (1 << 4) -#define GRPCI2_TBSIG_RST (1 << 3) - -/* PCI-trace Ctrl-signals mask register */ -#define GRPCI2_TBSIG_MASK_CBE 16 /* 19:16 */ -#define GRPCI2_TBSIG_MASK_CBE_MASK (0xFFFF << 16) -#define GRPCI2_TBSIG_MASK_FRAME (1 << 15) -#define GRPCI2_TBSIG_MASK_IRDY (1 << 14) -#define GRPCI2_TBSIG_MASK_TRDY (1 << 13) -#define GRPCI2_TBSIG_MASK_STOP (1 << 12) -#define GRPCI2_TBSIG_MASK_DEVSEL (1 << 11) -#define GRPCI2_TBSIG_MASK_PAR (1 << 10) -#define GRPCI2_TBSIG_MASK_PERR (1 << 9) -#define GRPCI2_TBSIG_MASK_SERR (1 << 8) -#define GRPCI2_TBSIG_MASK_IDSEL (1 << 7) -#define GRPCI2_TBSIG_MASK_REQ (1 << 6) -#define GRPCI2_TBSIG_MASK_GNT (1 << 5) -#define GRPCI2_TBSIG_MASK_LOCK (1 << 4) -#define GRPCI2_TBSIG_MASK_RST (1 << 3) - -/* PCI-trace AD state register */ -#define GRPCI2_TBAD_STATE 0 /* 31: 0 */ -#define GRPCI2_TBAD_STATE_MASK (0xFFFFFFFF << 0) - -/* PCI-trace Ctrl-signals state register */ -#define GRPCI2_TBSIG_STATE_CBE 16 /* 19:16 */ -#define GRPCI2_TBSIG_STATE_CBE_MASK (0xFFFF << 16) -#define GRPCI2_TBSIG_STATE_FRAME (1 << 15) -#define GRPCI2_TBSIG_STATE_IRDY (1 << 14) -#define GRPCI2_TBSIG_STATE_TRDY (1 << 13) -#define GRPCI2_TBSIG_STATE_STOP (1 << 12) -#define GRPCI2_TBSIG_STATE_DEVSEL (1 << 11) -#define GRPCI2_TBSIG_STATE_PAR (1 << 10) -#define GRPCI2_TBSIG_STATE_PERR (1 << 9) -#define GRPCI2_TBSIG_STATE_SERR (1 << 8) -#define GRPCI2_TBSIG_STATE_IDSEL (1 << 7) -#define GRPCI2_TBSIG_STATE_REQ (1 << 6) -#define GRPCI2_TBSIG_STATE_GNT (1 << 5) -#define GRPCI2_TBSIG_STATE_LOCK (1 << 4) -#define GRPCI2_TBSIG_STATE_RST (1 << 3) -/* ******************************************************************************* */ - -/* GRPCI2 Ext. Config Space Register ********************************************* */ -/* PCI BAR Map register */ -#define GRPCI2_ECFG_PCIBAR_MAP 0 /* 31: 0 */ -#define GRPCI2_ECFG_PCIBAR_MAP_MASK (0xFFFFFFFF << 0) - -/* Extended PCI Configuration Space AHB map register */ -#define GRPCI2_ECFG_ECFGAHB_MAP 8 /* 31: 8 */ -#define GRPCI2_ECFG_ECFGAHB_MAP_MASK (0xFFFFFF << 8) - -/* AHB IO base and PCI bus config register */ -#define GRPCI2_ECFG_AHBIOBASE 20 /* 31:20 */ -#define GRPCI2_ECFG_AHBIOBASE_MASK (0xFFF << 20) -#define GRPCI2_ECFG_DISEN (1 << 1) -#define GRPCI2_ECFG_ENDIAN (1 << 0) - -/* PCI BAR size register */ -#define GRPCI2_BARSIZE_MASK 4 /* 31: 4 */ -#define GRPCI2_BARSIZE_MASK_MASK (0xFFFFFFF << 4) -#define GRPCI2_BARSIZE_PRE (1 << 1) -#define GRPCI2_BARSIZE_TYPE (1 << 0) -#define GRPCI2_BARSIZE_TYPE_MEM (0 << 0) -#define GRPCI2_BARSIZE_TYPE_IO (1 << 0) - -/* AHB-master burst limit register */ -#define GRPCI2_AHBMSTBURST_BURST_LENGTH 0 /* 15: 0 */ -#define GRPCI2_AHBMSTBURST_BURST_LENGHT_MASK (0xFFFF << 0) -/* ******************************************************************************* */ - -/* GRPCI2 DMA Descriptors ******************************************************** */ -/* DMA Channel Ctrl Descriptor */ -#define GRPCI2_DMA_CHDESC_DCNT 0 /* 15: 0 */ -#define GRPCI2_DMA_CHDESC_DCNT_MASK (0xFFFF << 0) -#define GRPCI2_DMA_CHDESC_TYPE 20 /* 21:20 */ -#define GRPCI2_DMA_CHDESC_TYPE_MASK (0x3 << 20) -#define GRPCI2_DMA_CHDESC_ID 22 /* 24:22 */ -#define GRPCI2_DMA_CHDESC_ID_MASK (0x7 << 22) -#define GRPCI2_DMA_CHDESC_EN (1 << 31) - -/* DMA Data Ctrl Descriptor */ -#define GRPCI2_DMA_DESC_LENGTH 0 /* 15: 0 */ -#define GRPCI2_DMA_DESC_LENGTH_MASK (0xFFFF << 0) -#define GRPCI2_DMA_DESC_ERR (1 << 19) -#define GRPCI2_DMA_DESC_TYPE 20 /* 21:20 */ -#define GRPCI2_DMA_DESC_TYPE_MASK (0x3 << 20) -#define GRPCI2_DMA_DESC_DIR (1 << 29) -#define GRPCI2_DMA_DESC_IRQEN (1 << 30) -#define GRPCI2_DMA_DESC_EN (1 << 31) - -#define GRPCI2_DMA_DESC_DIR_PTA (0 << 29) -#define GRPCI2_DMA_DESC_DIR_ATP (1 << 29) -#define GRPCI2_DMA_DESC_TYPE_CH (1 << 20) -#define GRPCI2_DMA_DESC_TYPE_DATA (0 << 20) - -#define GRPCI2_DMA_MAX_LEN 0x10000 - -/* ******************************************************************************* */ - -struct grpci2regs { - volatile unsigned int ctrl; - volatile unsigned int status; - volatile unsigned int res0; - volatile unsigned int ahb_to_pciio; - volatile unsigned int dma_ctrl; - volatile unsigned int dma_desc; - volatile unsigned int dma_ch; - volatile unsigned int dma_res; - volatile unsigned int bar_to_ahb[6]; - volatile unsigned int res1[2]; - volatile unsigned int mst_to_pci[16]; - volatile unsigned int tb_ctrl; - volatile unsigned int tb_cmode; - volatile unsigned int tb_ad; - volatile unsigned int tb_ad_mask; - volatile unsigned int tb_sig; - volatile unsigned int tb_sig_mask; - volatile unsigned int tb_ad_state; - volatile unsigned int tb_sig_state; -}; - -struct grpci2_ext_pci_conf_space_regs { - volatile unsigned int id_next; - volatile unsigned int bar_to_ahb[6]; - volatile unsigned int extpcs_to_ahb; - volatile unsigned int ahbio_endiannes; -}; - -struct grpci2_head_pci_conf_space_regs { - volatile unsigned int dev_ven_id; - volatile unsigned int sta_cmd; - volatile unsigned int class_rev; - volatile unsigned int lat_timer; - volatile unsigned int bar[6]; - volatile unsigned int res0[3]; - volatile unsigned int cap_pointer; - volatile unsigned int res1; - volatile unsigned int interrupt; -}; -struct grpci2_pci_conf_space_regs { - struct grpci2_head_pci_conf_space_regs *head; - struct grpci2_ext_pci_conf_space_regs *ext; -}; - -struct grpci2_dma_ch_desc { - unsigned int ctrl; - unsigned int next; - unsigned int desc; - unsigned int res; -}; - -struct grpci2_dma_data_desc { - unsigned int ctrl; - unsigned int paddr; - unsigned int aaddr; - unsigned int next; -}; - -unsigned int grpci2_tw(unsigned int data); - -/* GRPCI2 Set/Get AHB Master-to-PCI map ****************************************** */ - void grpci2_set_mstmap(volatile struct grpci2regs* apb, int mst, unsigned int addr); - unsigned int grpci2_get_mstmap(volatile struct grpci2regs* apb, int mst); - -/* GRPCI2 Set/Get Bus-endiannes ************************************************** */ - void grpci2_set_bus_litle_endian(volatile struct grpci2_pci_conf_space_regs* conf); - void grpci2_set_bus_big_endian(volatile struct grpci2_pci_conf_space_regs* conf); - int grpci2_get_endian(volatile struct grpci2_pci_conf_space_regs* conf); - -/* GRPCI2 Set/Get BARMAP ********************************************************* */ - void grpci2_set_barmap(volatile struct grpci2_pci_conf_space_regs* conf, int bar, - unsigned int addr); - unsigned int grpci2_get_barmap(volatile struct grpci2_pci_conf_space_regs* conf, int bar); - -/* GRPCI2 Set/Get BAR ************************************************************ */ - void grpci2_set_bar(volatile struct grpci2_pci_conf_space_regs* conf, int bar, - unsigned int addr); - unsigned int grpci2_get_bar(volatile struct grpci2_pci_conf_space_regs* conf, int bar); - -/* GRPCI2 Set Latency Timer ****************************************************** */ - void grpci2_set_latency_timer(volatile struct grpci2_pci_conf_space_regs* conf, int timer); - -/* GRPCI2 Master Enable/Disable ************************************************** */ - void grpci2_mst_enable(volatile struct grpci2_pci_conf_space_regs* conf); - void grpci2_mst_disable(volatile struct grpci2_pci_conf_space_regs* conf); - -/* GRPCI2 Memory target Enable/Disable ******************************************* */ - void grpci2_mem_enable(volatile struct grpci2_pci_conf_space_regs* conf); - void grpci2_mem_disable(volatile struct grpci2_pci_conf_space_regs* conf); - -/* GRPCI2 IO target Enable/Disable *********************************************** */ - void grpci2_io_enable(volatile struct grpci2_pci_conf_space_regs* conf); - void grpci2_io_disable(volatile struct grpci2_pci_conf_space_regs* conf); - -/* GRPCI2 DMA Descriptors init *************************************************** */ -int grpci2_dma_desc_init(struct grpci2regs* apb, volatile unsigned int **chdesc, int irqen, - int num_ch, int ch_entry); - -/* GRPCI2 DMA Descriptors print ************************************************** */ - void grpci2_dma_desc_print(volatile unsigned int *chdesc); - -/* GRPCI2 DMA add transfer ******************************************************* */ - int grpci2_dma_add(struct grpci2regs* apb, volatile unsigned int **ddesc, unsigned int paddr, - unsigned int aaddr, int dir, int ien, int length); - -/* GRPCI2 DMA check transfer ***************************************************** */ - unsigned int grpci2_dma_check(volatile unsigned int **ddesc); - diff --git a/software/grpci2/grpci2extra.c b/software/grpci2/grpci2extra.c deleted file mode 100644 index e73ea48c..00000000 --- a/software/grpci2/grpci2extra.c +++ /dev/null @@ -1,174 +0,0 @@ -#include "grpci2api.h" -#include "grpci2extra.h" - -/* GRPCI2 DMA Descriptors print ************************************************** */ - void grpci2_dma_desc_print(volatile unsigned int *chdesc){ - int i,j; - struct grpci2_dma_ch_desc *ch = (struct grpci2_dma_ch_desc*)chdesc; - struct grpci2_dma_data_desc *desc; - struct grpci2_dma_data_desc *desc_ref; - - i = 0; - do{ - printf("ch[%d]: 0x%08X, ctrl: 0x%08X, next: 0x%08X, desc: 0x%08X\n", - i, (ch + i), (ch + i)->ctrl, (ch + i)->next, (ch + i)->desc); - j = 0; - desc = (struct grpci2_dma_data_desc*)(ch + i)->desc; - desc_ref = desc; - do{ - printf("\tdesc[%d]: %08X, ctrl: %08X, paddr: %08X, aaddr: %08X, next: %08X\n", - j, (desc), (desc)->ctrl, (desc)->paddr, (desc)->aaddr, (desc)->next); - desc = (struct grpci2_dma_data_desc*)desc->next; - j++; - }while( desc != desc_ref); - }while( (ch + i++)->next != (int)ch); - }; -/* ******************************************************************************* */ - -/* GRPCI2 DMA Queue ************************************************************** */ - int op_setup_queue(struct op_queue *q, int num_ch, int ch_entry, int max_q_entry, - unsigned int pci_addr, unsigned int pci_mask) { - int i; - - q->setup_qindex = 0; - q->add_qindex = 0; - q->check_qindex = 0; - q->pciaddr = pci_addr; - q->pcimask = pci_mask; - - for (i=0; ich[i].chbase = ((struct grpci2_dma_ch_desc*)(q->chbase) + i); - q->ch[i].add = (unsigned int*)q->ch[i].chbase->desc; - q->ch[i].check = (unsigned int*)q->ch[i].chbase->desc; - q->ch[i].empty = ch_entry; - q->ch[i].pending = 0; - }; - - for (i=0; iopq[i].pen = 0; - q->opq[i].desc = 0; - q->opq[i].num_desc = 0; - q->opq[i].pdata = 0; - q->opq[i].adata = 0; - q->opq[i].data = 0; - q->opq[i].len = 0; - q->opq[i].dir = 0; - q->opq[i].irqen = 0; - q->opq[i].ch = 0; - q->opq[i].sub_paddr = 0; - q->opq[i].sub_aaddr = 0; - q->opq[i].sub_len = 0; - q->opq[i].sub_num_desc = 0; - }; - }; - void op_print_queue(struct op_queue *q, int num_ch, int max_q_entry) { - int i; - - for (i=0; ich[i].chbase, q->ch[i].add, q->ch[i].check, q->ch[i].empty, q->ch[i].pending); - }; - - printf("OPQ: setup_qindex: %d add_qindex: %d check_qindex: %d\n", - q->setup_qindex, q->add_qindex, q->check_qindex); - for (i=0; iopq[i].pen, q->opq[i].len, q->opq[i].dir, q->opq[i].irqen, q->opq[i].ch, q->opq[i].data); - printf(" pdata: 0x%08X adata: 0x%08X desc: 0x%08X num_desc: %d sub_num_desc %d\n", - q->opq[i].pdata, q->opq[i].adata, q->opq[i].desc, q->opq[i].num_desc, q->opq[i].sub_num_desc); - }; - - }; - - int op_add(struct op_queue *q, struct grpci2regs* apb, int dbg){ - int failed; - - if (q->opq[q->add_qindex].pen == 3) { - q->opq[q->add_qindex].desc = (int*)q->ch[q->opq[q->add_qindex].ch].add; - q->opq[q->add_qindex].num_desc = (q->opq[q->add_qindex].len-1) / GRPCI2_DMA_MAX_LEN + 1; - q->opq[q->add_qindex].sub_num_desc = q->opq[q->add_qindex].num_desc; - - q->opq[q->add_qindex].sub_paddr = q->pciaddr | (((int)q->opq[q->add_qindex].pdata) &~ q->pcimask); - q->opq[q->add_qindex].sub_aaddr = (int)q->opq[q->add_qindex].adata; - q->opq[q->add_qindex].sub_len = q->opq[q->add_qindex].len; - }; - - do { - - if (q->ch[q->opq[q->add_qindex].ch].empty > 0) { - if (dbg >= 2) printf(" add: paddr: 0x%08X, aaddr: 0x%08X, len: %d emp: %d pen: %d\n", - q->opq[q->add_qindex].sub_paddr, q->opq[q->add_qindex].sub_aaddr, - (q->opq[q->add_qindex].sub_len > GRPCI2_DMA_MAX_LEN) ? GRPCI2_DMA_MAX_LEN : q->opq[q->add_qindex].sub_len, - q->ch[q->opq[q->add_qindex].ch].empty, q->ch[q->opq[q->add_qindex].ch].pending); - if (q->opq[q->add_qindex].sub_len > GRPCI2_DMA_MAX_LEN) { - failed = grpci2_dma_add(apb, &q->ch[q->opq[q->add_qindex].ch].add, - q->opq[q->add_qindex].sub_paddr, q->opq[q->add_qindex].sub_aaddr, - q->opq[q->add_qindex].dir, 0, GRPCI2_DMA_MAX_LEN-1); - } else { - failed = grpci2_dma_add(apb, &q->ch[q->opq[q->add_qindex].ch].add, - q->opq[q->add_qindex].sub_paddr, q->opq[q->add_qindex].sub_aaddr, - q->opq[q->add_qindex].dir, q->opq[q->add_qindex].irqen, q->opq[q->add_qindex].sub_len-1); - }; - if (failed == 0) { - q->ch[q->opq[q->add_qindex].ch].empty--; - q->ch[q->opq[q->add_qindex].ch].pending++; - q->opq[q->add_qindex].sub_len = q->opq[q->add_qindex].sub_len - GRPCI2_DMA_MAX_LEN; - q->opq[q->add_qindex].sub_paddr = q->opq[q->add_qindex].sub_paddr + 4*GRPCI2_DMA_MAX_LEN; - q->opq[q->add_qindex].sub_aaddr = q->opq[q->add_qindex].sub_aaddr + 4*GRPCI2_DMA_MAX_LEN; - }; - } else { - failed = -1; - }; - }while(q->opq[q->add_qindex].sub_len > 0 && failed == 0); - - if (q->opq[q->add_qindex].sub_len <= 0) { - q->opq[q->add_qindex].pen = 1; - } else { - q->opq[q->add_qindex].pen = 2; - }; - - return (q->opq[q->add_qindex].pen != 1); - }; - - int op_check(struct op_queue *q, struct grpci2regs* apb, int dbg){ - int failed, done; - unsigned int tmp; - - failed = 0; done = 0; - - if (q->opq[q->check_qindex].pen != 0) { - do { - if (q->ch[q->opq[q->check_qindex].ch].pending > 0) { - tmp = grpci2_dma_check(&q->ch[q->opq[q->check_qindex].ch].check); - if (!(tmp & GRPCI2_DMA_DESC_EN)) { - q->opq[q->check_qindex].sub_num_desc--; - q->ch[q->opq[q->check_qindex].ch].empty++; - q->ch[q->opq[q->check_qindex].ch].pending--; - if (q->opq[q->check_qindex].sub_num_desc == 0) { - done = 1; - }; - }; - } else { - failed = 1; - }; - if (dbg >= 2) printf(" check OPQ[%d]: sub_num_desc: %d failed: %d done: %d emp: %d pen: %d\n", q->check_qindex, - q->opq[q->check_qindex].sub_num_desc, failed, done, - q->ch[q->opq[q->check_qindex].ch].empty, q->ch[q->opq[q->check_qindex].ch].pending); - }while (failed == 0 && done == 0); - }; - - return (done != 1); - }; - - int op_checkdata(volatile unsigned int* p1, volatile unsigned int*p2, unsigned int data, int length){ - int i, res; - res = 0; - for (i=0; i -#include "grpci2api.h" -#include "grpci2extra.h" - -#define APB_ADDR 0x80000600 -#define PCI_CONF_ADDR 0xfff10000 -#define MAXTSIZE 1024*1024 -#define PCI_ADDR 0x20000000 -#define PCI_ADDR_MASK 0xC0000000 -#define PCI_AHB_ADDR 0xC0000000 -#define PCI_AHB_ADDR_MASK 0xF0000000 -#define TRANS_MAX_LEN 0x100000 -#define MAX_Q_ENTRY 32 -#define CH_ENTRY 16 -#define NUM_CH 8 -#define DMA_IRQ 6 - -#define DBG 1 - - - -/* ******************************************************************************* */ - - - - static irq_cnt[8] = {0,0,0,0,0,0,0,0}; - - static grpci2dma_irqhandler(int irq){ - - struct grpci2regs *apb = (struct grpci2regs*)APB_ADDR; - int i, tmp; - apb->status = 0x10000; - tmp = apb->dma_ctrl; - apb->dma_ctrl = tmp | GRPCI2_DMACTRL_EN; - tmp = (tmp & GRPCI2_DMACTRL_CHIRQ_MASK) >> GRPCI2_DMACTRL_CHIRQ; - for (i=0; i<8; i++) if ((tmp>>i)&1) irq_cnt[i]++; - }; - -int main(){ - - - struct grpci2regs *apb; - struct grpci2regs *slot_apb; - struct grpci2_pci_conf_space_regs conf_host; - struct grpci2_pci_conf_space_regs *conf[21]; - - int i,j,k; - int dir_pta = 0; - int dir_atp = 1; - int irq_en = 1; - int irq_di = 0; - int failed; - - volatile unsigned int* ahbmem; - volatile unsigned int* pcimem; - unsigned int ahbdata; - int ahblen; - int ahboffset; - - struct op_queue q; - - - /* PCI core configuration ****************************************************** - * BAR[0] = 0x20000000 - * BAR[0] => AHB 0x00000000 - * ***************************************************************************** */ - apb = (struct grpci2regs*)APB_ADDR; - conf[0] = (struct grpci2_pci_conf_space_regs*)&conf_host; - conf[0]->head = (struct grpci2_head_pci_conf_space_regs*)PCI_CONF_ADDR; - conf[0]->ext = (struct grpci2_ext_pci_conf_space_regs*)((unsigned int)conf[0] + - (grpci2_tw(conf[0]->head->cap_pointer) & 0xff)); - - grpci2_mst_enable(conf[0]); - grpci2_mem_enable(conf[0]); - grpci2_io_disable(conf[0]); - grpci2_set_latency_timer(conf[0], 0x20); - grpci2_set_bar(conf[0], 0, PCI_ADDR); - grpci2_set_barmap(conf[0], 0, 0); - grpci2_set_bus_big_endian(conf[0]); - - grpci2_set_mstmap(apb, 0, PCI_ADDR); - - catch_interrupt(grpci2dma_irqhandler, DMA_IRQ); - *(unsigned int*)(0x80000340) = 0x40; // Unmask PCIDMA irq - - /* DMA descriptor table setup */ - grpci2_dma_desc_init(apb, &q.chbase, irq_en, NUM_CH, CH_ENTRY); - grpci2_dma_desc_print(q.chbase); /**/ - - /* setup queue */ - op_setup_queue(&q, NUM_CH, CH_ENTRY, MAX_Q_ENTRY, PCI_ADDR, PCI_ADDR_MASK); - op_print_queue(&q, NUM_CH, MAX_Q_ENTRY); - - ahbmem = malloc(sizeof(int)*TRANS_MAX_LEN); - pcimem = (volatile unsigned int*)(PCI_AHB_ADDR | (((int)ahbmem) &~ PCI_AHB_ADDR_MASK)); - - failed = 0; - while(failed == 0){ - /* Setup Q */ - while(q.opq[q.setup_qindex].pen == 0) { /* queue not full */ - q.opq[q.setup_qindex].data = rand(); - q.opq[q.setup_qindex].irqen = 1; - q.opq[q.setup_qindex].dir = rand() % 2; - q.opq[q.setup_qindex].ch = rand() % NUM_CH; - q.opq[q.setup_qindex].len = (rand() % (TRANS_MAX_LEN - 1)) + 1; - q.opq[q.setup_qindex].adata = malloc(sizeof(int)*q.opq[q.setup_qindex].len); - q.opq[q.setup_qindex].pdata = malloc(sizeof(int)*q.opq[q.setup_qindex].len); - memset(q.opq[q.setup_qindex].adata, 0, sizeof(int)*q.opq[q.setup_qindex].len); - memset(q.opq[q.setup_qindex].pdata, 0, sizeof(int)*q.opq[q.setup_qindex].len); - if (q.opq[q.setup_qindex].dir == dir_atp) { - for(i=0; i= 1) printf("setup opq[%d]: %p, ch: %d dir: %d, len: %d, data: 0x%08X, pa: %p, pp: %p\n", - q.setup_qindex, &q.opq[q.setup_qindex], q.opq[q.setup_qindex].ch, q.opq[q.setup_qindex].dir, - q.opq[q.setup_qindex].len, q.opq[q.setup_qindex].data, q.opq[q.setup_qindex].adata, q.opq[q.setup_qindex].pdata); - if (++q.setup_qindex == MAX_Q_ENTRY) q.setup_qindex = 0; - }; - - /* Add Q */ - while(q.opq[q.add_qindex].pen > 1) { /* queue pending */ - if (DBG >= 1) printf("add opq[%d]: %p, ch: %d dir: %d, len: %d, data: 0x%08X, pa: %p, pp: %p\n", - q.add_qindex, &q.opq[q.add_qindex], q.opq[q.add_qindex].ch, q.opq[q.add_qindex].dir, - q.opq[q.add_qindex].len, q.opq[q.add_qindex].data, q.opq[q.add_qindex].adata, q.opq[q.add_qindex].pdata); - if (op_add((struct op_queue*)&q, apb, DBG) == 0) { - q.opq[q.add_qindex].pen = 1; - if (++q.add_qindex == MAX_Q_ENTRY) q.add_qindex = 0; - } else { - if (DBG >= 2) printf("All desc not added for op!\n"); - break; - }; - }; - - /* AHB interface test */ - ahblen = (rand() % (TRANS_MAX_LEN - 10)); - ahbdata = rand(); - ahboffset = rand() % 10; - if (DBG >= 1) printf("ahb-int: pciahb-addr: %p, data: 0x%08X len: %d\n", (pcimem + ahboffset), ahbdata, ahblen); - for (i=0; i= 1) printf("check opq[%d]: %p desc: 0x%08X pen: %d ch: %d dir: %d data: 0x%08X, pa: %p, pp: %p\n", - q.check_qindex, &q.opq[q.check_qindex], q.opq[q.check_qindex].desc, q.opq[q.check_qindex].pen, - q.opq[q.check_qindex].ch, q.opq[q.check_qindex].dir, - q.opq[q.check_qindex].data, q.opq[q.check_qindex].adata, q.opq[q.check_qindex].pdata); - if (op_check((struct op_queue*)&q, apb, DBG) == 0) { - if (op_checkdata(q.opq[q.check_qindex].adata, q.opq[q.check_qindex].pdata, - q.opq[q.check_qindex].data, q.opq[q.check_qindex].len) != 0) { - printf("check Error\n"); - failed = 1; - break; - }else{ - free(q.opq[q.check_qindex].adata); - free(q.opq[q.check_qindex].pdata); - q.opq[q.check_qindex].pen = 0; - if (++q.check_qindex == MAX_Q_ENTRY) q.check_qindex = 0; - }; - } else { - if (DBG >= 2) printf("All desc not ready for op!\n"); - break; - }; - }; - - /* Print IRQ stat */ - printf("IRQ cnt: %d %d %d %d %d %d %d %d\n", irq_cnt[7], irq_cnt[6], irq_cnt[5], irq_cnt[4], - irq_cnt[3], irq_cnt[2], irq_cnt[1], irq_cnt[0]); - }; - -} diff --git a/software/l2c/Makefile b/software/l2c/Makefile deleted file mode 100644 index e885f848..00000000 --- a/software/l2c/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -all : l2ctest.c l2capi.c l2cextra.c - sparc-elf-gcc -DRAMSTART=0x00000000 -O2 -g l2ctest.c l2capi.c l2cextra.c -Wl,-msparcleon0 -o l2ctest.exe diff --git a/software/l2c/l2capi.c b/software/l2c/l2capi.c deleted file mode 100644 index 1dba8d24..00000000 --- a/software/l2c/l2capi.c +++ /dev/null @@ -1,418 +0,0 @@ -#include "l2capi.h" - -/* L2C Enable / Disable ********************************************************** */ - int l2c_enable(struct l2cregs *l2c){ - unsigned int ctrl = l2c->ctrl; - l2c->ctrl = (ctrl | L2C_CTRL_EN); - return((ctrl & L2C_CTRL_EN) != 0); - }; - - int l2c_disable(struct l2cregs *l2c){ - unsigned int ctrl = l2c->ctrl; - l2c->ctrl = (ctrl & ~L2C_CTRL_EN); - return((ctrl & L2C_CTRL_EN) != 0); - }; -/* ******************************************************************************* */ - -/* L2C EDAC Enable / Disable ***************************************************** */ - int l2c_edac_enable(struct l2cregs *l2c){ - unsigned int ctrl = l2c->ctrl; - l2c->ctrl = (ctrl | L2C_CTRL_EDACEN); - return((ctrl & L2C_CTRL_EDACEN) != 0); - }; - - int l2c_edac_disable(struct l2cregs *l2c){ - unsigned int ctrl = l2c->ctrl; - l2c->ctrl = (ctrl & ~L2C_CTRL_EDACEN); - return((ctrl & L2C_CTRL_EDACEN) != 0); - }; -/* ******************************************************************************* */ - -/* L2C HPROT Enable / Disable **************************************************** */ - void l2c_hprot_enable(struct l2cregs *l2c){ - l2c->ctrl = (l2c->ctrl | L2C_CTRL_HP); - }; - - void l2c_hprot_disable(struct l2cregs *l2c){ - l2c->ctrl = (l2c->ctrl & ~L2C_CTRL_HP); - }; -/* ******************************************************************************* */ - -/* L2C write-through Enable / Disable ******************************************** */ - void l2c_write_through_enable(struct l2cregs *l2c){ - l2c->ctrl = (l2c->ctrl | L2C_CTRL_WP); - }; - - void l2c_write_through_disable(struct l2cregs *l2c){ - l2c->ctrl = (l2c->ctrl & ~L2C_CTRL_WP); - }; -/* ******************************************************************************* */ - -/* L2C Status ******************************************************************** */ - int l2c_get_waysize( struct l2cregs *l2c){ - return ((l2c->status & L2C_STA_WAYSIZE_MASK) >> L2C_STA_WAYSIZE); - }; - - int l2c_get_ways( struct l2cregs *l2c){ - return ((l2c->status & L2C_STA_WAYS_MASK) >> L2C_STA_WAYS) + 1; - }; - - int l2c_get_linesize( struct l2cregs *l2c){ - int res = 32; - if ((l2c->status & L2C_STA_LINESIZE) != 0) res = 64; - return res; - }; -/* ******************************************************************************* */ - -/* L2C Flush ********************************************************************* */ - void l2c_invalidate_all(int disable, struct l2cregs *l2c){ - l2c->flusha = (L2C_FLUSH_ALL | L2C_FLUSH_DI*disable | L2C_FLUSH_INV); - }; - - void l2c_write_back_all(int disable, struct l2cregs *l2c){ - l2c->flusha = (L2C_FLUSH_ALL | L2C_FLUSH_DI*disable | L2C_FLUSH_WB); - }; - - void l2c_flush_all(int disable, struct l2cregs *l2c){ - l2c->flusha = (L2C_FLUSH_ALL | L2C_FLUSH_DI*disable | L2C_FLUSH_INV | L2C_FLUSH_WB); - }; - - void l2c_invalidate_addr(unsigned int addr, struct l2cregs *l2c){ - l2c->flusha = (addr & L2C_FLUSH_ADDR_MASK | L2C_FLUSH_INV); - }; - - void l2c_write_back_addr(unsigned int addr, struct l2cregs *l2c){ - l2c->flusha = (addr & L2C_FLUSH_ADDR_MASK | L2C_FLUSH_WB); - }; - - void l2c_flush_addr(unsigned int addr, struct l2cregs *l2c){ - l2c->flusha = (addr & L2C_FLUSH_ADDR_MASK | L2C_FLUSH_INV | L2C_FLUSH_WB); - }; - - void l2c_invalidate_line(unsigned int index, unsigned int way, struct l2cregs *l2c){ - l2c->flushd = (((index << L2C_FLUSH_INDEX) & L2C_FLUSH_INDEX_MASK) | - ((way << L2C_FLUSH_WAY) & L2C_FLUSH_WAY_MASK) | L2C_FLUSH_INV); - }; - - void l2c_write_back_line(unsigned int index, unsigned int way, struct l2cregs *l2c){ - l2c->flushd = (((index << L2C_FLUSH_INDEX) & L2C_FLUSH_INDEX_MASK) | - ((way << L2C_FLUSH_WAY) & L2C_FLUSH_WAY_MASK) | L2C_FLUSH_WB); - }; - - void l2c_flush_line(unsigned int index, unsigned int way, struct l2cregs *l2c){ - l2c->flushd = (((index << L2C_FLUSH_INDEX) & L2C_FLUSH_INDEX_MASK) | - ((way << L2C_FLUSH_WAY) & L2C_FLUSH_WAY_MASK) | L2C_FLUSH_INV | L2C_FLUSH_WB); - }; - - void l2c_invalidate_way(unsigned int tag, unsigned int way, int fetch, int disable, struct l2cregs *l2c){ - l2c->flushd = ((tag & L2C_FLUSH_TAG_MASK) | - ((way << L2C_FLUSH_WAY) & L2C_FLUSH_WAY_MASK) | - (L2C_FLUSH_FETCH*fetch) | (L2C_FLUSH_VALID*fetch) | - L2C_FLUSH_WAYFLUSH | L2C_FLUSH_DI*disable | L2C_FLUSH_INV); - }; - - void l2c_write_back_way(unsigned int tag, unsigned int way, int fetch, int disable, struct l2cregs *l2c){ - l2c->flushd = ((tag & L2C_FLUSH_TAG_MASK) | - ((way << L2C_FLUSH_WAY) & L2C_FLUSH_WAY_MASK) | - (L2C_FLUSH_FETCH*fetch) | (L2C_FLUSH_VALID*fetch) | - L2C_FLUSH_WAYFLUSH | L2C_FLUSH_DI*disable | L2C_FLUSH_WB); - }; - - void l2c_flush_way(unsigned int tag, unsigned int way, int fetch, int disable, struct l2cregs *l2c){ - l2c->flushd = ((tag & L2C_FLUSH_TAG_MASK) | - ((way << L2C_FLUSH_WAY) & L2C_FLUSH_WAY_MASK) | - (L2C_FLUSH_FETCH*fetch) | (L2C_FLUSH_VALID*fetch) | - L2C_FLUSH_WAYFLUSH | L2C_FLUSH_DI*disable | L2C_FLUSH_INV | L2C_FLUSH_WB); - }; - -/* ******************************************************************************* */ - -/* L2C Lock ********************************************************************** */ - int l2c_lock(unsigned int addr, int fetch, struct l2cregs *l2c) { - int res = 0; - unsigned int ctrl; - int lock, ways; - - ctrl = l2c->ctrl; - ways = (l2c->status & L2C_STA_WAYS_MASK) >> L2C_STA_WAYS; - lock = ((ctrl & L2C_CTRL_LOCK_MASK) >> L2C_CTRL_LOCK) + 1; - - if (lock <= (ways + 1)) { - l2c->ctrl = (l2c->ctrl & ~L2C_CTRL_LOCK_MASK | ((lock << L2C_CTRL_LOCK) & L2C_CTRL_LOCK_MASK)); - l2c_flush_way(addr, (ways +1 - lock), fetch, 0, l2c); - } else { - res = -1; - } - return res; - }; - - int l2c_unlock(struct l2cregs *l2c) { - int res = 0; - unsigned int ctrl; - int lock; - - ctrl = l2c->ctrl; - lock = ((ctrl & L2C_CTRL_LOCK_MASK) >> L2C_CTRL_LOCK); - - if (lock > 0) { - l2c->ctrl = (l2c->ctrl & ~L2C_CTRL_LOCK_MASK | (((lock - 1) << L2C_CTRL_LOCK) & L2C_CTRL_LOCK_MASK)); - } else { - res = -1; - } - return res; - }; - - int l2c_unlock_flush(struct l2cregs *l2c) { - int res = 0; - unsigned int ctrl; - int lock, ways; - - ctrl = l2c->ctrl; - ways = (l2c->status & L2C_STA_WAYS_MASK) >> L2C_STA_WAYS; - lock = ((ctrl & L2C_CTRL_LOCK_MASK) >> L2C_CTRL_LOCK); - - if (lock <= (ways + 1)) { - l2c_flush_way(0, (ways +1 - lock), 0, 1, l2c); - l2c->ctrl = (l2c->ctrl & ~L2C_CTRL_LOCK_MASK | (((lock - 1) << L2C_CTRL_LOCK) & L2C_CTRL_LOCK_MASK)); - l2c_enable(l2c); - } else { - res = -1; - } - return res; - }; - -/* ******************************************************************************* */ - -/* L2C MTRR ********************************************************************** */ - int l2c_mtrr_add_uncached(unsigned int addr, unsigned short mask, struct l2cregs *l2c) { - int mtrr = (l2c->status & L2C_STA_MTRR_MASK) >> L2C_STA_MTRR; - int res = 0; - int en, i; - i = 0; - do{ - en = (l2c->mtr[i] & (L2C_MTR_WP | L2C_MTR_EN)); - if (en == 0) { - l2c->mtr[i] = (addr & L2C_MTR_ADDR_MASK) | (0 << L2C_MTR_ACC) | - (mask & L2C_MTR_MASK_MASK) | L2C_MTR_EN; - }; - i++; - }while(i < mtrr && en != 0); - if (i == mtrr && en != 0) res = -1; - return res; - }; - - int l2c_mtrr_add_writethrough(unsigned int addr, unsigned short mask, struct l2cregs *l2c) { - int mtrr = (l2c->status & L2C_STA_MTRR_MASK) >> L2C_STA_MTRR; - int res = 0; - int en, i; - i = 0; - do{ - en = (l2c->mtr[i] & (L2C_MTR_WP | L2C_MTR_EN)); - if (en == 0) { - l2c->mtr[i] = (addr & L2C_MTR_ADDR_MASK) | (1 << L2C_MTR_ACC) | - (mask & L2C_MTR_MASK_MASK) | L2C_MTR_EN; - }; - i++; - }while(i < mtrr && en != 0); - if (i == mtrr && en != 0) res = -1; - return res; - }; - - int l2c_mtrr_add_writeprotect(unsigned int addr, unsigned short mask, struct l2cregs *l2c) { - int mtrr = (l2c->status & L2C_STA_MTRR_MASK) >> L2C_STA_MTRR; - int res = 0; - int en, i; - i = 0; - do{ - en = (l2c->mtr[i] & (L2C_MTR_WP | L2C_MTR_EN)); - if (en == 0) { - l2c->mtr[i] = (addr & L2C_MTR_ADDR_MASK) | (0 << L2C_MTR_ACC) | - (mask & L2C_MTR_MASK_MASK) | L2C_MTR_WP; - }; - i++; - }while(i < mtrr && en != 0); - if (i == mtrr && en != 0) res = -1; - return res; - }; - - int l2c_mtrr_del(unsigned int addr, unsigned short mask, struct l2cregs *l2c) { - int mtrr = (l2c->status & L2C_STA_MTRR_MASK) >> L2C_STA_MTRR; - int res = -1; - int en, i; - unsigned int mtr; - for (i = 0; i < mtrr; i++) { - mtr = l2c->mtr[i]; - if ( (mtr & (L2C_MTR_WP | L2C_MTR_EN)) != 0 && - ((mtr & L2C_MTR_ADDR_MASK) == (addr & L2C_MTR_ADDR_MASK)) && - ((mtr & L2C_MTR_MASK_MASK) == (mask & L2C_MTR_MASK_MASK))) { - l2c->mtr[i] = mtr & ~(L2C_MTR_WP | L2C_MTR_EN); - res++; - }; - }; - return res; - }; - -/* ******************************************************************************* */ - -/* L2C Scrub ********************************************************************* */ - void l2c_scrub_start(unsigned short delay, struct l2cregs *l2c){ - l2c->scrub_delay = (delay & L2C_SCRUB_DELAY_MASK); - l2c->scrub_ctrl = (L2C_SCRUB_EN); - }; - - void l2c_scrub_stop(struct l2cregs *l2c){ - l2c->scrub_ctrl = (l2c->scrub_ctrl & ~L2C_SCRUB_EN); - }; - - void l2c_scrub_line(unsigned int index, unsigned int way, struct l2cregs *l2c){ - l2c->scrub_ctrl = (((index << L2C_SCRUB_INDEX) & L2C_SCRUB_INDEX_MASK) | - ((way << L2C_SCRUB_WAY) & L2C_SCRUB_WAY_MASK) | - L2C_SCRUB_PEN); - }; - -/* ******************************************************************************* */ - -/* L2C Error ********************************************************************* */ - void l2c_error_inject_clear(struct l2cregs *l2c) { - l2c->dcb = 0; - l2c->tcb = 0; - l2c->error = l2c->error & ~L2C_ERR_XCB; - }; - - int l2c_error_reset(struct l2cregs *l2c) { - unsigned int err = l2c->error; - l2c->error = err | L2C_ERR_RST; - return (err & L2C_ERR_VALID != 0); - }; - - - void l2c_error_inject_tag_rep(int tcb, struct l2cregs *l2c) { - l2c->tcb = (((tcb << L2C_TCB) & L2C_TCB_MASK)); - l2c->error = (l2c->error | L2C_ERR_XCB); - }; - - void l2c_error_inject_data_write(int dcb, struct l2cregs *l2c) { - l2c->dcb = (((dcb << L2C_DCB_D0) & L2C_DCB_D0_MASK) | - ((dcb << L2C_DCB_D1) & L2C_DCB_D1_MASK) | - ((dcb << L2C_DCB_D2) & L2C_DCB_D2_MASK) | - ((dcb << L2C_DCB_D3) & L2C_DCB_D3_MASK)); - l2c->error = (l2c->error | L2C_ERR_XCB); - }; - - void l2c_error_inject_data(unsigned int addr, int dcb, struct l2cregs *l2c) { - l2c->dcb = (((dcb << L2C_DCB_D0) & L2C_DCB_D0_MASK) | - ((dcb << L2C_DCB_D1) & L2C_DCB_D1_MASK) | - ((dcb << L2C_DCB_D2) & L2C_DCB_D2_MASK) | - ((dcb << L2C_DCB_D3) & L2C_DCB_D3_MASK)); - l2c->err_inject = (addr & L2C_ERR_INJECT_ADDR_MASK | L2C_ERR_INJECT_PEN); - }; - - void l2c_error_irq_enable(int mask, struct l2cregs *l2c){ - l2c->error = (l2c->error | ((mask << L2C_ERR_IRQ_MASK) & L2C_ERR_IRQ_MASK_MASK)); - }; - - void l2c_error_irq_disable(int mask, struct l2cregs *l2c){ - l2c->error = (l2c->error & ~((mask << L2C_ERR_IRQ_MASK) & L2C_ERR_IRQ_MASK_MASK)); - }; - -/* ******************************************************************************* */ - -/* L2C Diagnostic **************************************************************** */ - unsigned int log2int(unsigned int v) { - unsigned r = 0; - while (v >>= 1){ - r++; - }; - return r; - }; - - unsigned int l2c_diag_get_tag(unsigned int tag, int waysize){ - unsigned int tmp; - int i; - i = 10 + log2int(waysize); - tmp = (tag >> i); - tmp = (tmp << i); - return tmp; - }; - - unsigned int l2c_diag_get_index(unsigned int addr, int waysize, int linesize){ - unsigned int tmp, tmp2; - int i, j; - i = 10 + log2int(waysize); - j = log2int(linesize); - tmp2 = 0xFFFFFFFF; - tmp2 = (tmp2 << (32-i)); - tmp2 = (tmp2 >> (32-i+j)); - tmp = ((addr >> j) & tmp2); - return tmp; - }; - - unsigned int l2c_diag_get_offset(unsigned int tag, int linesize){ - unsigned int tmp, tmp2; - int j; - j = log2int(linesize); - tmp2 = 0xFFFFFFFF; - tmp2 = (tmp2 << (32-j)); - tmp2 = (tmp2 >> (32-j)); - tmp = (tag & tmp2); - return tmp; - }; - - unsigned int l2c_diag_get_valid(unsigned int tag){ - unsigned int tmp; - tmp = ((tag >> 8) & 0x3); - return tmp; - }; - - unsigned int l2c_diag_get_dirty(unsigned int tag){ - unsigned int tmp; - tmp = ((tag >> 6) & 0x3); - return tmp; - }; - - unsigned int l2c_diag_get_lru(unsigned int tag){ - unsigned int tmp; - tmp = (tag & 0x1f); - return tmp; - }; - - struct lookup_res l2c_lookup(unsigned int addr, int waysize, int linesize, struct l2cregs *l2c) { - volatile unsigned int *tags = (unsigned int*)((unsigned int)l2c + 0x80000); - struct lookup_res res; - unsigned int tag, index, offset; - unsigned int tmp; - int i; - - tag = l2c_diag_get_tag(addr, waysize); - index = l2c_diag_get_index(addr, waysize, linesize); - - res.valid = 0; res.dirty = 0; - res.lru = l2c_diag_get_lru(*(tags + index*8)); - - for (i=0; i<4; i++) { - tmp = *(tags + index*8 + i); - if(tag == l2c_diag_get_tag(tmp, waysize)){ - if(l2c_diag_get_valid(tmp) != 0){ - res.valid += l2c_diag_get_valid(tmp); - res.dirty += l2c_diag_get_dirty(tmp); - res.way = i; - }; - if (linesize == 64) { - tmp = *(tags + index*8 + i + 4); - if(l2c_diag_get_valid(tmp) != 0){ - res.valid += l2c_diag_get_valid(tmp); - res.dirty += l2c_diag_get_dirty(tmp); - res.way = i; - }; - }; - if (res.valid != 0) break; - }; - }; - res.tag_addr = ((unsigned int)l2c + 0x80000 + index*linesize + res.way*0x4); - res.data_addr = ((unsigned int)l2c + 0x200000 + index*linesize + res.way*(1024*512)); - return res; - }; - - -/* ******************************************************************************* */ - diff --git a/software/l2c/l2capi.h b/software/l2c/l2capi.h deleted file mode 100644 index a21834ec..00000000 --- a/software/l2c/l2capi.h +++ /dev/null @@ -1,225 +0,0 @@ -/* Ctrl register */ -#define L2C_CTRL_EN (1 << 31) -#define L2C_CTRL_EDACEN (1 << 30) -#define L2C_CTRL_REP_LRU (0 << 28) -#define L2C_CTRL_REP_RAN (1 << 28) -#define L2C_CTRL_REP_IDX (2 << 28) -#define L2C_CTRL_REP_MOD (3 << 28) -#define L2C_CTRL_INDEX_WAY 12 /* 15:12 */ -#define L2C_CTRL_INDEX_WAY_MASK (0xF << 12) -#define L2C_CTRL_LOCK 8 /* 11:8 */ -#define L2C_CTRL_LOCK_MASK (0xF << 8) -#define L2C_CTRL_HPRHBP (1 << 5) -#define L2C_CTRL_HPB (1 << 4) -#define L2C_CTRL_UC (1 << 3) -#define L2C_CTRL_HC (1 << 2) -#define L2C_CTRL_WP (1 << 1) -#define L2C_CTRL_HP (1 << 0) - -/* Status register */ -#define L2C_STA_LINESIZE (1 << 24) -#define L2C_STA_FTTIMING (1 << 23) -#define L2C_STA_EDAC (1 << 22) -#define L2C_STA_MTRR 16 /* 21:16 */ -#define L2C_STA_MTRR_MASK (0x3F << 16) -#define L2C_STA_BBUS 13 /* 15:13 */ -#define L2C_STA_BBUS_MASK (7 << 13) -#define L2C_STA_WAYSIZE 2 /* 12:2 */ -#define L2C_STA_WAYSIZE_MASK (0x7FF << 2) -#define L2C_STA_WAYS 0 /* 1:0 */ -#define L2C_STA_WAYS_MASK (3 << 0) - -/* Flush regsters */ -#define L2C_FLUSH_ADDR 5 /* 31:5 */ -#define L2C_FLUSH_ADDR_MASK (0x7FFFFFF << 5) -#define L2C_FLUSH_DI (1 << 3) -#define L2C_FLUSH_ALL (1 << 2) -#define L2C_FLUSH_WB (1 << 1) -#define L2C_FLUSH_INV (1 << 0) -#define L2C_FLUSH_TAG 10 /* 31:10 */ -#define L2C_FLUSH_TAG_MASK (0x3FFFFF << 10) -#define L2C_FLUSH_INDEX 16 /* 31:16 */ -#define L2C_FLUSH_INDEX_MASK (0xFFFF << 16) -#define L2C_FLUSH_FETCH (1 << 9) -#define L2C_FLUSH_VALID (1 << 8) -#define L2C_FLUSH_DIRTY (1 << 7) -#define L2C_FLUSH_WAY 4 /* 5:4 */ -#define L2C_FLUSH_WAY_MASK (3 << 4) -#define L2C_FLUSH_WAYFLUSH (1 << 2) - -/* Error regster */ -#define L2C_ERR_MASTER 28 /* 31:28 */ -#define L2C_ERR_MASTER_MASK (0xF << 28) -#define L2C_ERR_SCRUB (1 << 27) -#define L2C_ERR_TYPE 24 /* 31:26 */ -#define L2C_ERR_TYPE_MASK (0x7 << 24) -#define L2C_ERR_TAG_DATA (1 << 23) -#define L2C_ERR_COR_UCOR (1 << 22) -#define L2C_ERR_MULTI (1 << 21) -#define L2C_ERR_VALID (1 << 20) -#define L2C_ERR_COR_COUNT 16 /* 18:16 */ -#define L2C_ERR_COR_COUNT_MASK (0x7 << 16) -#define L2C_ERR_IRQ_PEN 12 /* 15:12 */ -#define L2C_ERR_IRQ_PEN_MASK (0xF << 12) -#define L2C_ERR_IRQ_MASK 8 /* 11:8 */ -#define L2C_ERR_IRQ_MASK_MASK (0xF << 8) -#define L2C_ERR_SEL_DCB 6 /* 7:6 */ -#define L2C_ERR_SEL_DCB_MASK (0x3 << 6) -#define L2C_ERR_SEL_TCB 4 /* 5:4 */ -#define L2C_ERR_SEL_TCB_MASK (0x3 << 4) -#define L2C_ERR_XCB (1 << 3) -#define L2C_ERR_RCB (1 << 2) -#define L2C_ERR_COMP (1 << 1) -#define L2C_ERR_RST (1 << 0) - -/* TCB regster */ -#define L2C_TCB 0 /* 6:0 */ -#define L2C_TCB_MASK (0x7F << 0) - -/* DCB regster */ -#define L2C_DCB 0 /* 27:0 */ -#define L2C_DCB_MASK (0xFFFFFFF << 0) -#define L2C_DCB_D3 0 /* 6:0 */ -#define L2C_DCB_D3_MASK (0x7F << 0) -#define L2C_DCB_D2 7 /* 13:7 */ -#define L2C_DCB_D2_MASK (0x7F << 7) -#define L2C_DCB_D1 14 /* 20:14 */ -#define L2C_DCB_D1_MASK (0x7F << 14) -#define L2C_DCB_D0 21 /* 27:21 */ -#define L2C_DCB_D0_MASK (0x7F << 21) - -/* Scrubber regsters */ -#define L2C_SCRUB_INDEX 16 /* ..:16 */ -#define L2C_SCRUB_INDEX_MASK (0xFFFF << 16) -#define L2C_SCRUB_WAY 4 /* 5:4 */ -#define L2C_SCRUB_WAY_MASK (0x3 << 4) -#define L2C_SCRUB_PEN (1 << 1) -#define L2C_SCRUB_EN (1 << 0) -#define L2C_SCRUB_DELAY 0 /* 16:0 */ -#define L2C_SCRUB_DELAY_MASK (0xFFFF << 0) - -/* Error-inject regster */ -#define L2C_ERR_INJECT_ADDR 2 /* ..:2 */ -#define L2C_ERR_INJECT_ADDR_MASK (0xFFFFFFFC) -#define L2C_ERR_INJECT_PEN (1 << 0) - -/* MTR regsters */ -#define L2C_MTR_ADDR 18 /* 31:18 */ -#define L2C_MTR_ADDR_MASK (0x3FFF << 18) -#define L2C_MTR_ACC 16 /* 17:16 */ /* 00: uncached, 01: write-through */ -#define L2C_MTR_ACC_MASK (0x3 << 16) -#define L2C_MTR_MASK 2 /* 15:2 */ -#define L2C_MTR_MASK_MASK (0x3FFF << 2) -#define L2C_MTR_WP (1 << 1) -#define L2C_MTR_EN (1 << 0) - -struct l2cregs { - volatile unsigned int ctrl; - volatile unsigned int status; - volatile unsigned int flusha; - volatile unsigned int flushd; - volatile unsigned int acount; - volatile unsigned int hcount; - volatile unsigned int ccount; - volatile unsigned int ucount; - volatile unsigned int error; - volatile unsigned int err_addr; - volatile unsigned int tcb; - volatile unsigned int dcb; - volatile unsigned int scrub_ctrl; - volatile unsigned int scrub_delay; - volatile unsigned int err_inject; - volatile unsigned int tmp[17]; - volatile unsigned int mtr[32]; -}; - -struct lookup_res { - int valid; - int dirty; - int tag_addr; - int data_addr; - int way; - int lru; -}; - -/* L2C Enable / Disable ********************************************************** */ - int l2c_enable(struct l2cregs *l2c); - int l2c_disable(struct l2cregs *l2c); -/* ******************************************************************************* */ - -/* L2C EDAC Enable / Disable ***************************************************** */ - int l2c_edac_enable(struct l2cregs *l2c); - int l2c_edac_disable(struct l2cregs *l2c); -/* ******************************************************************************* */ - -/* L2C HPROT Enable / Disable **************************************************** */ - void l2c_hprot_enable(struct l2cregs *l2c); - void l2c_hprot_disable(struct l2cregs *l2c); -/* ******************************************************************************* */ - -/* L2C write-through Enable / Disable ******************************************** */ - void l2c_write_through_enable(struct l2cregs *l2c); - void l2c_write_through_disable(struct l2cregs *l2c); -/* ******************************************************************************* */ - -/* L2C Status ******************************************************************** */ - int l2c_get_waysize( struct l2cregs *l2c); - int l2c_get_ways( struct l2cregs *l2c); - int l2c_get_linesize( struct l2cregs *l2c); -/* ******************************************************************************* */ - -/* L2C Flush ********************************************************************* */ - void l2c_invalidate_all(int disable, struct l2cregs *l2c); - void l2c_write_back_all(int disable, struct l2cregs *l2c); - void l2c_flush_all(int disable, struct l2cregs *l2c); - void l2c_invalidate_addr(unsigned int addr, struct l2cregs *l2c); - void l2c_write_back_addr(unsigned int addr, struct l2cregs *l2c); - void l2c_flush_addr(unsigned int addr, struct l2cregs *l2c); - void l2c_invalidate_line(unsigned int index, unsigned int way, struct l2cregs *l2c); - void l2c_write_back_line(unsigned int index, unsigned int way, struct l2cregs *l2c); - void l2c_flush_line(unsigned int index, unsigned int way, struct l2cregs *l2c); - void l2c_invalidate_way(unsigned int tag, unsigned int way, int fetch, int disable, struct l2cregs *l2c); - void l2c_write_back_way(unsigned int tag, unsigned int way, int fetch, int disable, struct l2cregs *l2c); - void l2c_flush_way(unsigned int tag, unsigned int way, int fetch, int disable, struct l2cregs *l2c); -/* ******************************************************************************* */ - -/* L2C Lock ********************************************************************** */ - int l2c_lock(unsigned int addr, int fetch, struct l2cregs *l2c); - int l2c_unlock(struct l2cregs *l2c); - int l2c_unlock_flush(struct l2cregs *l2c); -/* ******************************************************************************* */ - -/* L2C MTRR ********************************************************************** */ - int l2c_mtrr_add_uncached(unsigned int addr, unsigned short mask, struct l2cregs *l2c); - int l2c_mtrr_add_writethrough(unsigned int addr, unsigned short mask, struct l2cregs *l2c); - int l2c_mtrr_add_writeprotect(unsigned int addr, unsigned short mask, struct l2cregs *l2c); - int l2c_mtrr_del(unsigned int addr, unsigned short mask, struct l2cregs *l2c); -/* ******************************************************************************* */ - -/* L2C Scrub ********************************************************************* */ - void l2c_scrub_start(unsigned short delay, struct l2cregs *l2c); - void l2c_scrub_stop(struct l2cregs *l2c); - void l2c_scrub_line(unsigned int index, unsigned int way, struct l2cregs *l2c); -/* ******************************************************************************* */ - -/* L2C Error ********************************************************************* */ - void l2c_error_inject_clear(struct l2cregs *l2c); - int l2c_error_reset(struct l2cregs *l2c); - void l2c_error_inject_tag_rep(int tcb, struct l2cregs *l2c); - void l2c_error_inject_data_write(int dcb, struct l2cregs *l2c); - void l2c_error_inject_data(unsigned int addr, int dcb, struct l2cregs *l2c); - void l2c_error_irq_enable(int mask, struct l2cregs *l2c); - void l2c_error_irq_disable(int mask, struct l2cregs *l2c); -/* ******************************************************************************* */ - -/* L2C Diagnostic **************************************************************** */ - unsigned int log2int(unsigned int v); - unsigned int l2c_diag_get_tag(unsigned int tag, int waysize); - unsigned int l2c_diag_get_index(unsigned int addr, int waysize, int linesize); - unsigned int l2c_diag_get_offset(unsigned int tag, int linesize); - unsigned int l2c_diag_get_valid(unsigned int tag); - unsigned int l2c_diag_get_dirty(unsigned int tag); - unsigned int l2c_diag_get_lru(unsigned int tag); - struct lookup_res l2c_lookup(unsigned int addr, int waysize, int linesize, struct l2cregs *l2c); -/* ******************************************************************************* */ - diff --git a/software/l2c/l2cextra.c b/software/l2c/l2cextra.c deleted file mode 100644 index fcd37264..00000000 --- a/software/l2c/l2cextra.c +++ /dev/null @@ -1,105 +0,0 @@ -#include -#include "l2capi.h" - - void l2c_mtrr_show(struct l2cregs *l2c) { - int mtrr = (l2c->status & L2C_STA_MTRR_MASK) >> L2C_STA_MTRR; - int i; - int en = 0; - unsigned int mtr; - if (mtrr != 0) { - printf("%d MTRR implemented\n", mtrr); - for (i = 0; i < mtrr; i++) { - mtr = l2c->mtr[i]; - /* printf("mtr[%d][0x%08X]: %08X\n", i, &l2c->mtr[i] ,mtr); */ - if ((mtr & (L2C_MTR_EN)) != 0 ) { - if (((mtr & (L2C_MTR_ACC_MASK)) >> L2C_MTR_ACC) == 0) { - printf("%2d: 0x%08X - 0x%08X : Uncached\n", i, (mtr & L2C_MTR_ADDR_MASK), - (mtr & L2C_MTR_ADDR_MASK) | ~((mtr & L2C_MTR_MASK_MASK) << 16)); - } else if (((mtr & (L2C_MTR_ACC_MASK)) >> L2C_MTR_ACC) == 1) { - printf("%2d: 0x%08X - 0x%08X : Write-Through\n", i, (mtr & L2C_MTR_ADDR_MASK), - (mtr & L2C_MTR_ADDR_MASK) | ~((mtr & L2C_MTR_MASK_MASK) << 16)); - }; - en = 1; - } else if ((mtr & (L2C_MTR_WP)) != 0 ) { - printf("%2d: 0x%08X - 0x%08X : Write-Protection\n", i, (mtr & L2C_MTR_ADDR_MASK), - (mtr & L2C_MTR_ADDR_MASK) | ~((mtr & L2C_MTR_MASK_MASK) << 16)); - en = 1; - }; - }; - if (en == 0) { - printf("No enabled MTRR found\n"); - }; - } else { - printf("No MTRR implemented\n"); - } - }; - - void l2c_scrub_show(struct l2cregs *l2c){ - unsigned int ctrl = l2c->scrub_ctrl; - printf("Scrubber: %s\n", ((ctrl & L2C_SCRUB_EN) ? "Enabled" : "Disabled")); - printf("Scrub line: %s\n", ((ctrl & L2C_SCRUB_PEN) ? "Pneding" : "Not Pending")); - printf("Scrub index: %d, way: %d, delay: %d\n", - (ctrl & L2C_SCRUB_INDEX_MASK) >> L2C_SCRUB_INDEX, - (ctrl & L2C_SCRUB_WAY_MASK) >> L2C_SCRUB_WAY, - l2c->scrub_delay & L2C_SCRUB_DELAY_MASK); - }; - - void l2c_error_show(struct l2cregs *l2c){ - unsigned int err = l2c->error; - if ((err & L2C_ERR_VALID) != 0 ) { - printf("Error found\n"); - printf("%s %s-error at addr: 0x%08X\n", - ((err & L2C_ERR_COR_UCOR) ? "Un-correctable" : "Correctable"), - ((err & L2C_ERR_TAG_DATA) ? "data" : "tag"), - l2c->err_addr); - if (err & L2C_ERR_SCRUB) { - printf("Error type: %d, Scrubber%s, Cor-count: %d\n", - (err & L2C_ERR_TYPE_MASK) >> L2C_ERR_TYPE, - ((err & L2C_ERR_MULTI) ? ", Multi-error" : ""), - (err & L2C_ERR_COR_COUNT_MASK) >> L2C_ERR_COR_COUNT); - } else { - printf("Error type: %d, AHB-master: %d%s, Cor-count: %d\n", - (err & L2C_ERR_TYPE_MASK) >> L2C_ERR_TYPE, - (err & L2C_ERR_MASTER_MASK) >> L2C_ERR_MASTER, - ((err & L2C_ERR_MULTI) ? ", Multi-error" : ""), - (err & L2C_ERR_COR_COUNT_MASK) >> L2C_ERR_COR_COUNT); - }; - printf("IRQ: %d, IRQ-mask: %d, SCB: %d, STCB: %d, COMP: %s\n", - (err & L2C_ERR_IRQ_PEN_MASK) >> L2C_ERR_IRQ_PEN, - (err & L2C_ERR_IRQ_MASK_MASK) >> L2C_ERR_IRQ_MASK, - (err & L2C_ERR_SEL_DCB_MASK) >> L2C_ERR_SEL_DCB, - (err & L2C_ERR_SEL_TCB_MASK) >> L2C_ERR_SEL_TCB, - ((err & L2C_ERR_COMP) ? "Enabled" : "Disabled")); - - } else { - printf("No error found\n"); - }; - }; - - void l2c_diag_show_data_line(unsigned int diagd_base, int way, int index, int linesize) { - unsigned int addr = diagd_base + way*(1024*512) + index*linesize; - volatile unsigned int *p = (unsigned int*)addr; - printf("0x%08X %08X %08X %08X %08X %08X %08X %08X %08X\n", - addr, p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]); - if (linesize == 64) - printf(" %08X %08X %08X %08X %08X %08X %08X %08X\n", - p[8], p[9], p[10], p[11], p[12], p[13], p[14], p[15]); - }; - - void l2c_diag_show_tag(unsigned int diagt_base, int index, int linesize, int setsize, int header) { - unsigned int addr = diagt_base + index*linesize; - volatile unsigned int *p = (unsigned int*)addr; - unsigned int tmp[4]; - int i; - for (i=0; i<4; i++) tmp[i] = *(p+i); - if (header) - printf("Index Address |LRU | V D TAG | V D TAG | V D TAG | V D TAG |\n"); - printf("%5d 0x%08X | %2d | %1d %1d %08X | %1d %1d %08X | %1d %1d %08X | %1d %1d %08X | \n", - index, addr, l2c_diag_get_lru(tmp[0]), - l2c_diag_get_valid(tmp[0]), l2c_diag_get_dirty(tmp[0]), l2c_diag_get_tag(tmp[0], setsize), - l2c_diag_get_valid(tmp[1]), l2c_diag_get_dirty(tmp[1]), l2c_diag_get_tag(tmp[1], setsize), - l2c_diag_get_valid(tmp[2]), l2c_diag_get_dirty(tmp[2]), l2c_diag_get_tag(tmp[2], setsize), - l2c_diag_get_valid(tmp[3]), l2c_diag_get_dirty(tmp[3]), l2c_diag_get_tag(tmp[3], setsize)); - }; - - diff --git a/software/l2c/l2cextra.h b/software/l2c/l2cextra.h deleted file mode 100644 index 9ba16be5..00000000 --- a/software/l2c/l2cextra.h +++ /dev/null @@ -1,6 +0,0 @@ - void l2c_mtrr_show(struct l2cregs *l2c); - void l2c_scrub_show(struct l2cregs *l2c); - void l2c_error_show(struct l2cregs *l2c); - void l2c_diag_show_data_line(unsigned int diagd_base, int way, int index, int linesize); - void l2c_diag_show_tag(unsigned int diagt_base, int index, int linesize, int setsize, int header); - diff --git a/software/l2c/l2ctest.c b/software/l2c/l2ctest.c deleted file mode 100644 index 48058758..00000000 --- a/software/l2c/l2ctest.c +++ /dev/null @@ -1,184 +0,0 @@ -/* ******************************************************************************* - * L2-Cache test - * - * ******************************************************************************* */ -#include -#include "l2capi.h" -#include "l2cextra.h" - -struct irqmp { - volatile unsigned int irqlevel; /* 0x00 */ - volatile unsigned int irqpend; /* 0x04 */ - volatile unsigned int irqforce; /* 0x08 */ - volatile unsigned int irqclear; /* 0x0C */ - volatile unsigned int mpstatus; /* 0x10 */ - volatile unsigned int broadcast; /* 0x14 */ - volatile unsigned int dummy0; /* 0x18 */ - volatile unsigned int wdogctrl; /* 0x1C (IRQ(A)MP) */ - volatile unsigned int asmpctrl; /* 0x20 (IRQ(A)MP) */ - volatile unsigned int icsel0; /* 0x24 (IRQ(A)MP) */ - volatile unsigned int icsel1; /* 0x28 */ - volatile unsigned int dummy1[5]; /* 0x2c - 0x3C */ - volatile unsigned int irqmask; /* 0x40 */ -}; - - -/* ******************************************************************************* */ -/* ******************************************************************************* */ - - -/* IRQ EDAC Test ***************************************************************** */ - struct l2cregs *l2c_global; - volatile unsigned int *mem; - volatile unsigned int scrub, ahb, cor, ucor, loop; - int mem_size = 32*1024; //10*1024*1024; - - static inline int loadmem(int addr) - { - int tmp; - asm volatile (" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; - }; - - l2c_irqhandler(int irq){ - /*int offset = (rand() * RAND_MAX + rand()) % (10*1024*1024/4);*/ - int offset = rand() % (mem_size/4); - int i; - unsigned int tmp; - unsigned int err = l2c_global->error; - //printf("\nL2C: %d, 0x%08X, 0x%08X\n", irq, mem, offset); - //l2c_error_show(l2c_global); - - if (err & L2C_ERR_VALID) { - if (err & L2C_ERR_COR_UCOR != 0) { - ucor++; - } else { - cor+=((err & L2C_ERR_COR_COUNT_MASK) >> L2C_ERR_COR_COUNT); - }; - if (err & L2C_ERR_SCRUB) { - scrub++; - } else { - ahb++; - }; - printf("\rscrub: %d, ahb: %d, cor: %d, ucor: %d, loop: %d, | \r", scrub, ahb, cor, ucor, loop); - } else { - printf("\rNo error found\r"); - }; - - l2c_error_reset(l2c_global); - for (i= (offset&7)+1; i > 0; i--) { - //l2c_error_inject_data_write(1+2*(offset&1), l2c_global); - //mem[offset] = 0x12345678; - tmp = mem[offset]; - mem[offset] = tmp; - l2c_error_inject_data((int)&mem[offset], 1, l2c_global); - //printf("mem[0x%08X]\n", &mem[offset]); - offset = rand() % (mem_size/4); - }; - }; - - l2c_irq_edac_test(int l2c_irq, unsigned int irqmp_base, struct l2cregs *l2c){ - l2c_global = l2c; - //mem = malloc(mem_size); - mem = (unsigned int*) 0x10000000; - struct irqmp *ir = (struct irqmp*) irqmp_base; - //int offset = (rand() * RAND_MAX + rand()) % (mem_size/4); - int offset = rand() % (mem_size/4); - unsigned int tmp; - int i; - - volatile unsigned int *p = (unsigned int*) 0x10000000; - - printf("mem: %p, 0x%08X, offset: %d, &mem[offset]: 0x%08X\n", mem, mem[0], offset, &mem[offset]); - printf("&loop: 0x%08X\n", &loop); - - for (i=0; iirqmask = (ir->irqmask & ~(1 << l2c_irq)); - ir->irqpend = (ir->irqpend & ~(1 << l2c_irq)); - - catch_interrupt(l2c_irqhandler, l2c_irq); - - ir->irqmask = (ir->irqmask | (1 << l2c_irq)); - - l2c_error_reset(l2c); - l2c_error_show(l2c); - l2c_error_irq_enable(0xf, l2c); - //l2c_error_irq_disable(0xf, l2c); - l2c_error_inject_clear(l2c); - l2c_scrub_start(0x1FF, l2c); - - //l2c_error_inject_data_write(1, l2c_global); - mem[offset] = (int)&mem[offset]; - l2c_error_inject_data((int)&mem[offset], 1, l2c_global); - //printf("mem[0x%08X]\n", &mem[offset]); - - printf("\n"); - - while(1){ - for (i=0; i prom.disas + sparc-elf-objdump -D systest.exe > systest.disas + cp sdram.srec sdram.hex + sed -i '1d' sdram.hex + sed -i '$$d' sdram.hex + sed -i 's/\(.\{12\}\)//' sdram.hex + sed -i 's ...$$ ' sdram.hex + sed -i -e 's/.\{16\}/&\n/g' sdram.hex + sed -i '/^$$/d' sdram.hex + sed -i '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' sdram.hex + sed -i 's/\(.\)\(.\)/\2\1/g' sdram.hex + +gen_hex_dim: gen_hex + awk '{print}END{for (i=0; i < 9; i++) print "0000000000000000"}' sdram.hex > sdram_ext.hex + sed -n ';1~8p' sdram_ext.hex > sdram_dimm1.hex + sed -n ';2~8p' sdram_ext.hex > sdram_dimm2.hex + sed -n ';3~8p' sdram_ext.hex > sdram_dimm3.hex + sed -n ';4~8p' sdram_ext.hex > sdram_dimm4.hex + sed -n ';5~8p' sdram_ext.hex > sdram_dimm5.hex + sed -n ';6~8p' sdram_ext.hex > sdram_dimm6.hex + sed -n ';7~8p' sdram_ext.hex > sdram_dimm7.hex + sed -n ';8~8p' sdram_ext.hex > sdram_dimm8.hex + pr -tmJ sdram_dimm8.hex sdram_dimm7.hex sdram_dimm6.hex sdram_dimm5.hex sdram_dimm4.hex sdram_dimm3.hex sdram_dimm2.hex sdram_dimm1.hex > sdram_dimm_merge.hex + sed -i -e 's/\s\+//g' sdram_dimm_merge.hex + sed -i '/^$$/d' sdram_dimm_merge.hex + +gen_hex16: soft + sparc-elf-objdump -D prom.exe > prom.disas + sparc-elf-objdump -D systest.exe > systest.disas + cp sdram.srec sdram.hex + sed -i '1d' sdram.hex + sed -i '$$d' sdram.hex + sed -i 's/\(.\{12\}\)//' sdram.hex + sed -i 's ...$$ ' sdram.hex + sed -i -e 's/.\{16\}/&\n/g' sdram.hex + sed -i '/^$$/d' sdram.hex + sed -i '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' sdram.hex + sed -i 's/\(.\)\(.\)/\2\1/g' sdram.hex +# AHB2MIG_ML605 FIX (Order for Big Endieen isn't not correct) + sed -i 's/\(.\)\(.\)\(.\)\(.\)/\3\4\1\2/g' sdram.hex + +gen_hex_dim16: gen_hex16 + awk '{print}END{for (i=0; i < 128; i++) print "0000000000000000"}' sdram.hex > sdram_ext.hex + sed -i 's/..../&\n/g' sdram_ext.hex + sed -i -e 's/\s\+//g' sdram_ext.hex + sed -i '/^$$/d' sdram_ext.hex + sed -n ';1~4p' sdram_ext.hex > sdram_dimm4_tmp.hex + sed -n ';2~4p' sdram_ext.hex > sdram_dimm3_tmp.hex + sed -n ';3~4p' sdram_ext.hex > sdram_dimm2_tmp.hex + sed -n ';4~4p' sdram_ext.hex > sdram_dimm1_tmp.hex + sed -i '/^$$/d' sdram_dimm*_tmp.hex + awk 'BEGIN{FS="\n"; OFS="\n"; RS="\n"}{for (i = 0; i <= NF/8-1; i++) print $$(8+i*8),$$(7+i*8),$$(6+i*8),$$(5+i*8),$$(4+i*8),$$(3+i*8),$$(2+i*8),$$(1+i*8)}' sdram_dimm4_tmp.hex > sdram_dimm4_test.hex + awk 'BEGIN{FS="\n"; OFS="\n"; RS="\n"}{for (i = 0; i <= NF/8-1; i++) print $$(8+i*8),$$(7+i*8),$$(6+i*8),$$(5+i*8),$$(4+i*8),$$(3+i*8),$$(2+i*8),$$(1+i*8)}' sdram_dimm3_tmp.hex > sdram_dimm3_test.hex + awk 'BEGIN{FS="\n"; OFS="\n"; RS="\n"}{for (i = 0; i <= NF/8-1; i++) print $$(8+i*8),$$(7+i*8),$$(6+i*8),$$(5+i*8),$$(4+i*8),$$(3+i*8),$$(2+i*8),$$(1+i*8)}' sdram_dimm2_tmp.hex > sdram_dimm2_test.hex + awk 'BEGIN{FS="\n"; OFS="\n"; RS="\n"}{for (i = 0; i <= NF/8-1; i++) print $$(8+i*8),$$(7+i*8),$$(6+i*8),$$(5+i*8),$$(4+i*8),$$(3+i*8),$$(2+i*8),$$(1+i*8)}' sdram_dimm1_tmp.hex > sdram_dimm1_test.hex + sed -e :a -e '$!N; s/\n//; ta' sdram_dimm4_test.hex > sdram_dimm_merge1.hex + sed -e :a -e '$!N; s/\n//; ta' sdram_dimm3_test.hex > sdram_dimm_merge2.hex + sed -e :a -e '$!N; s/\n//; ta' sdram_dimm2_test.hex > sdram_dimm_merge3.hex + sed -e :a -e '$!N; s/\n//; ta' sdram_dimm1_test.hex > sdram_dimm_merge4.hex + sed -i 's/.\{32\}/&\n/g' sdram_dimm_merge1.hex + sed -i 's/.\{32\}/&\n/g' sdram_dimm_merge2.hex + sed -i 's/.\{32\}/&\n/g' sdram_dimm_merge3.hex + sed -i 's/.\{32\}/&\n/g' sdram_dimm_merge4.hex + +gen_hex_clean: + -rm -f *.hex *.disas \ No newline at end of file diff --git a/software/leon3/atactrl.c b/software/leon3/atactrl.c deleted file mode 100644 index f05d5bf5..00000000 --- a/software/leon3/atactrl.c +++ /dev/null @@ -1,54 +0,0 @@ -typedef struct { - volatile unsigned int ctrl; // 0x00 - volatile unsigned int stat; - volatile unsigned int pctr; - volatile unsigned int pftr0; - volatile unsigned int pftr1; // 0x10 - volatile unsigned int drt0; - volatile unsigned int drt1; - volatile unsigned int bmcmd; - volatile unsigned int bmvd0; // 0x20 - volatile unsigned int bmsta; - volatile unsigned int bmvd1; - volatile unsigned int prdtb; - volatile unsigned int dummy[4]; // 0x30 - 0x3c - volatile unsigned int data; - volatile unsigned int features; - volatile unsigned int secnum; - volatile unsigned int seccnt; - volatile unsigned int cyllow; // 0x50 - volatile unsigned int cylhigh; - volatile unsigned int devhead; - volatile unsigned int status; - volatile unsigned int dummy2[6]; // 0x60 - 0x74 - volatile unsigned int altstat; -} ataregs; - -ata_test(int addr) { - ataregs *ata = (ataregs *) addr; - unsigned int tmp, i; - volatile int vtmp; - unsigned short buf[256]; - - // init - ata->ctrl = 0x800000e0; - vtmp = ata->status; - ata->ctrl = 0x800000ee; - - ata->devhead = 0; - ata->status = 0xEC; - - tmp = ata->status; - while (tmp & 0x80) tmp = ata->status; - - if((tmp & 0x1) == 1 || (tmp & 0x40) != 0x40){ -// fail(1); - } - for (i=0; i<256; i++) { - tmp = ata->data; - buf[i] = tmp; - } - - -} - diff --git a/software/leon3/base_test4.c b/software/leon3/base_test4.c deleted file mode 100644 index b96f34ee..00000000 --- a/software/leon3/base_test4.c +++ /dev/null @@ -1,16 +0,0 @@ - -base_test4() -{ - leon4_test(1, 0x80000200, 0); - irqtest(0x80000200); - gptimer_test(0x80000300, 8); - apbuart_test(0x80000100); -} - -base_test4_tirq(int irq) -{ - leon4_test(1, 0x80000200, 0); - irqtest(0x80000200); - gptimer_test(0x80000300, irq); - apbuart_test(0x80000100); -} diff --git a/software/leon3/brm_1553.c b/software/leon3/brm_1553.c deleted file mode 100644 index fb35dde2..00000000 --- a/software/leon3/brm_1553.c +++ /dev/null @@ -1,335 +0,0 @@ -#include - -//#define BRM_ADDR 0x80000c00; //0xfff00000 -#define BRM_IRQ 14 - -struct brm_irq_reg { - volatile unsigned int level; - volatile unsigned int pending; - volatile unsigned int force; - volatile unsigned int clear; - volatile unsigned int mpstat; - volatile unsigned int dummy[11]; - volatile unsigned int mask; -}; - -struct brm_regs { - - /* BRM registers (16 bit) */ - volatile unsigned int ctrl; /* 0x00 */ - volatile unsigned int oper; /* 0x04 */ - volatile unsigned int cur_cmd; /* 0x08 */ - volatile unsigned int imask; /* 0x0C */ - volatile unsigned int ipend; /* 0x10 */ - volatile unsigned int ipoint; /* 0x14 */ - volatile unsigned int bit_reg; /* 0x18 */ - volatile unsigned int ttag; /* 0x1C */ - volatile unsigned int dpoint; /* 0x20 */ - volatile unsigned int sw; /* 0x24 */ - volatile unsigned int initcount; /* 0x28 */ - volatile unsigned int mcpoint; /* 0x2C */ - volatile unsigned int mdpoint; /* 0x30 */ - volatile unsigned int mbc; /* 0x34 */ - volatile unsigned int mfilta; /* 0x38 */ - volatile unsigned int mfiltb; /* 0x3C */ - volatile unsigned int rt_cmd_leg[16]; /* 0x40-0x7C */ - volatile unsigned int enhanced; /* 0x80 */ - - volatile unsigned int dummy[31]; - - /* wrapper registers (32 bit) */ - volatile unsigned int w_ctrl; /* 0x100 */ - volatile unsigned int w_irqctrl; /* 0x104 */ - volatile unsigned int w_ahbaddr; /* 0x108 */ -}; - - -//struct brm_irq_reg *irq = (struct brm_irq_reg *) 0x80000200; -//struct brm_regs *bc = (struct brm_regs *) 0x80001000; -struct brm_regs *bc; - -volatile unsigned short *brm_bcmem = NULL; -volatile unsigned int *brm_bcmemi = NULL; - -volatile int brm_done=0; -//volatile int bci=0; - -/*extern void *catch_interrupt(void func(), int irq); - -void irq_handler(int irqn) -{ - int tmp=0; - - if (irqn == BRM_IRQ) { - irq->clear = (1 << irqn); - bci++; - - tmp = bc->ipend; - - if (tmp & 0x0020) { - brm_done = 1; - } - } - - -} - -error(char *message, int *count) { - puts(message); - *count++; - return; -} - -static char *almalloc(int sz) -{ - char *tmp; - tmp = malloc(2*sz); - tmp = (char *) ( ( (int)tmp+sz ) & ~(sz-1)); - return(tmp); -} */ - -/* creates a BC command block */ -void brm_create_cmd(unsigned short *addr, unsigned short op, unsigned short cond, - unsigned short rtrt, unsigned short cw1, unsigned short cw2, - unsigned short dp, unsigned short bra, unsigned short time, int bus) { - memset(addr, 0, sizeof(addr)); - addr[0] = (op << 12) | (bus << 9) | (rtrt << 8) | (cond << 1); - addr[1] = cw1; - addr[2] = cw2; - addr[3] = dp; - addr[6] = bra; - addr[7] = time; -} - -/* Create BC to RT command block */ -void brm_bcrt(unsigned short *addr, unsigned short dp, unsigned short rtaddr, unsigned short sa, - unsigned short wc, int bus) { - unsigned short cw = (rtaddr << 11) | (0 << 10) | (sa << 5) | (wc & 0x1F); - brm_create_cmd(addr, 4, 0, 0, cw, 0, dp, 0, 0, bus); -} - -/* Create RT to BC command block */ -void brm_rtbc(unsigned short *addr, unsigned short dp, unsigned short rtaddr, - unsigned short sa, unsigned short wc, int bus) { - unsigned short cw = (rtaddr << 11) | (1 << 10) | (sa << 5) | (wc & 0x1F); - brm_create_cmd(addr, 4, 0, 0, cw, 0, dp, 0, 0, bus); -} - -/* -asm (".data\n" - ".global brm_bcmemx\n" - "brm_bcmemx: .space 262144/4, 0\n" - ".text\n" - ); -*/ -void brm_sync(volatile unsigned int* gpio, int gpio_sync, int gpio_ack){ - *(gpio+1) = *(gpio+1)|(1<clear = 0xffff; -// irq->level = 0; -// catch_interrupt(irq_handler, BRM_IRQ); - -// enable_irq(BRM_IRQ); - - // BC to RT test - report_subtest(1); - - bc->ctrl = 0x0010; /* enable bcast */ - bc->oper = 0x0000; /* configure as BC */ - bc->imask = 0xffff; - bc->ipoint = 0; /* irq log list, not used */ - bc->dpoint = 0; /* command block pointer (within 64x16b block) */ - bc->enhanced = 0x0003; /* freq = 24 */ - bc->w_ctrl = 1; - bc->w_irqctrl = 0; - bc->w_ahbaddr = (unsigned int) brm_bcmem; - - /* setting up data to send */ - for (i = 0; i < 32; i++) { - brm_bcmem[0x80 + i] = (unsigned short) i; - } - -// puts("Sending BC-RT messages."); - //for (i = 0; i < 7; i++) { - // for (j = 0; j < 2; j++) { - // bcrt((unsigned short *)&brm_bcmem[(i*10+j)*8], 0x8000, 1, i+1, 2, j&1); /* 32 words per message */ - // } - //} - //brm_bcmem[2*8] = 0x0000; /* End of list command */ - // BC-RT - brm_bcmem[0] = (unsigned short) 0x4200; - brm_bcmem[1] = (unsigned short) 0x0820; - brm_bcmem[2] = (unsigned short) 0x0000; - brm_bcmem[3] = (unsigned short) 0x0080; - brm_bcmem[4] = (unsigned short) 0x0000; - brm_bcmem[5] = (unsigned short) 0x0000; - brm_bcmem[6] = (unsigned short) 0x0000; - brm_bcmem[7] = (unsigned short) 0x0000; - brm_bcmem[8] = (unsigned short) 0x4200; - brm_bcmem[9] = (unsigned short) 0x0820; - brm_bcmem[10] = (unsigned short) 0x0000; - brm_bcmem[11] = (unsigned short) 0x0080; - brm_bcmem[12] = (unsigned short) 0x0000; - brm_bcmem[13] = (unsigned short) 0x0000; - brm_bcmem[14] = (unsigned short) 0x0000; - brm_bcmem[15] = (unsigned short) 0x0000; - brm_bcmem[16] = (unsigned short) 0x0000; - brm_bcmem[17] = (unsigned short) 0x0000; - - - /* start operation */ - bc->ctrl |= 0x8000; - - do{ - tmp = bc->ipend; - }while((tmp & 0x0020) == 0); - - /* stop operation */ - bc->ctrl |= 0x0010; - bc->dpoint = 0; /* command block pointer (within 64x16b block) */ - - // RT to BC test - report_subtest(2); - -// puts("Sending RT-BC messages."); - //for (j = 0; j < 2; j++) { - // rtbc((unsigned short *)&brm_bcmem[(i*10+j)*8], 0x10000, 1, i+1, 2, j&1); /* 32 words per message */ - //} - //brm_bcmem[2*8] = 0x0000; /* End of list command */ - // RT-BC - brm_bcmem[0] = (unsigned short) 0x4200; - brm_bcmem[1] = (unsigned short) 0x0C20; - brm_bcmem[2] = (unsigned short) 0x0000; - brm_bcmem[3] = (unsigned short) 0x0100; - brm_bcmem[4] = (unsigned short) 0x0000; - brm_bcmem[5] = (unsigned short) 0x0000; - brm_bcmem[6] = (unsigned short) 0x0000; - brm_bcmem[7] = (unsigned short) 0x0000; - brm_bcmem[8] = (unsigned short) 0x4200; - brm_bcmem[9] = (unsigned short) 0x0C20; - brm_bcmem[10] = (unsigned short) 0x0000; - brm_bcmem[11] = (unsigned short) 0x0120; - brm_bcmem[12] = (unsigned short) 0x0000; - brm_bcmem[13] = (unsigned short) 0x0000; - brm_bcmem[14] = (unsigned short) 0x0000; - brm_bcmem[15] = (unsigned short) 0x0000; - brm_bcmem[16] = (unsigned short) 0x0000; - brm_bcmem[17] = (unsigned short) 0x0000; - - /* start operation */ - bc->ctrl |= 0x8000; - - do{ - tmp = bc->ipend; - }while((tmp & 0x0020) == 0); - - /* Check data to send */ - for (i = 0; i < 32; i++) { - if( brm_bcmem[0x80 + i] != (unsigned short) i) fail(1); - } - - /* Check data to send */ - for (i = 0; i < 64; i++) { - if( brm_bcmem[0x100 + i] != (unsigned short) (i%0x20)) fail(2); - } - - /* stop operation */ - bc->ctrl |= 0x0010; - bc->dpoint = 0; /* command block pointer (within 64x16b block) */ - - // RT test - report_subtest(3); - - bc->ctrl = 0x1910; /* enable bcast */ - bc->oper = 0x0900; /* configure as BC */ - bc->imask = 0xED80; - bc->ipoint = 0; /* irq log list, not used */ - bc->dpoint = 0; /* command block pointer (within 64x16b block) */ - bc->enhanced = 0x0003; /* freq = 24 */ - bc->w_ctrl = 1; - bc->w_irqctrl = 6; - bc->w_ahbaddr = (unsigned int) brm_bcmem; - - /* RT descriptors */ - // RX - brm_bcmem[0] = (unsigned short) 0x00E0; - brm_bcmem[1] = (unsigned short) 0x0200; - brm_bcmem[2] = (unsigned short) 0x0200; - brm_bcmem[3] = (unsigned short) 0x0310; - brm_bcmem[4] = (unsigned short) 0x00E0; - brm_bcmem[5] = (unsigned short) 0x0332; - brm_bcmem[6] = (unsigned short) 0x0332; - brm_bcmem[7] = (unsigned short) 0x0442; - - // TX - brm_bcmem[0x80+0] = (unsigned short) 0x0060; - brm_bcmem[0x80+1] = (unsigned short) 0x0200; - brm_bcmem[0x80+2] = (unsigned short) 0x0200; - brm_bcmem[0x80+3] = (unsigned short) 0x0310; - brm_bcmem[0x80+4] = (unsigned short) 0x0060; - brm_bcmem[0x80+5] = (unsigned short) 0x0332; - brm_bcmem[0x80+6] = (unsigned short) 0x0332; - brm_bcmem[0x80+7] = (unsigned short) 0x0442; - - /* start operation */ - bc->ctrl |= 0x8000; - - - brm_sync(gpio, gpio_sync, gpio_ack); - - // wait on done - //do{ - // tmp = ((*(volatile unsigned int*)gpio_addr)&1<bmstat; - if (bmstat & 0x80000000) { - r->bmlogstart = memaddr; - r->bmlogend = memaddr+255; - r->bmlogpos = memaddr; - r->bmctrl = 0x0000000F; - } - - /* -------- BC tests --------- */ - - if (r->bcstat & 0x80000000) { - - /* report_subtest(1); */ - - /* Setup transfer list */ - l = memaddr+256; - p = bcdescs; - for (i=0; i<3; i++) { - wf(l,*p); - l += 4; p++; - wf(l,*p); - l += 4; p++; - wf(l,*p+memaddr+512); - l += 4; p++; - wf(l,*p); - l += 4; p++; - } - - /* Setup data buffers */ - wf(memaddr+512, 0x54DA8C2F); - - /* Start transfer list */ - r->bcnextptr = memaddr+256; - r->bcact = 0x15520001; - for (i=0;i<6;i++) { - asm __volatile__ (" nop; nop; nop; nop; "); - } - - /* Check that it's waiting for trigger */ - l = r->bcstat; - if ((l & 7) != 4) fail(100 + (l&7)); - - /* Push trigger */ - r->bcact = 0x15520008; - asm __volatile__ (" nop; nop; nop; nop; "); - - /* Wait for the schedule to finish */ - /* TODO: Use interrupt instead */ - while (1) { - l = r->bcstat & 7; - if (l == 3) break; - if (l != 1 && l != 2) fail(2); - for (i=0; i<8; i++) { - asm __volatile__ (" nop; nop; nop; nop; "); - } - } - - /* Check results */ - for (i=0; i<3; i++) { - l = rf(memaddr+256+16*i+12); - if ((l & 0x80000000) != 0) fail(10*i+19); - if (l != expres[i]) fail(10*i+10+(l&7)); - } - - /* Check BM log, if BM available */ - if (bmstat & 0x80000000) { - for (i=0; i<7; i++) { - l = rf(memaddr+4+8*i); - if (l != explog1[i]) - fail(40+i); - } - } - } -} diff --git a/software/leon3/greth.c b/software/leon3/greth.c index 559acff1..867eebf8 100644 --- a/software/leon3/greth.c +++ b/software/leon3/greth.c @@ -1,5 +1,6 @@ #include "testmod.h" #include "../greth/greth_api.h" +#include #define SRC_MAC0 0xDE #define SRC_MAC1 0xAD diff --git a/software/leon3/greth_throughput.c b/software/leon3/greth_throughput.c deleted file mode 100644 index 318c22ef..00000000 --- a/software/leon3/greth_throughput.c +++ /dev/null @@ -1,99 +0,0 @@ -#include "testmod.h" -#include "../greth/greth_api.h" - -#define SRC_MAC0 0xDE -#define SRC_MAC1 0xAD -#define SRC_MAC2 0xBE -#define SRC_MAC3 0xEF -#define SRC_MAC4 0x00 -#define SRC_MAC5 0x20 - -static int snoopen; - -static inline int load(int addr) -{ - int tmp; - asm volatile(" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -static inline char loadb(int addr) -{ - char tmp; - asm volatile (" lduba [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -struct greth_info greth; - -int greth_throughput_test(int apbaddr) -{ - int tmp, i; - int *len; - unsigned char tmp2; - unsigned char *txbuf; - unsigned char *rxbuf; - - unsigned char wrarea[100]; - unsigned char *buf; - - len = malloc(sizeof(int)); - txbuf = malloc(1514); - rxbuf = malloc(1514); - - /* initialize */ - report_device(0x0101D000); - greth.regs = (greth_regs *) apbaddr; - greth.esa[0] = SRC_MAC0; - greth.esa[1] = SRC_MAC1; - greth.esa[2] = SRC_MAC2; - greth.esa[3] = SRC_MAC3; - greth.esa[4] = SRC_MAC4; - greth.esa[5] = SRC_MAC5; - greth_init(&greth); - - /* Put phy in loopback*/ - tmp = read_mii(greth.phyaddr, 0, greth.regs); - - if (tmp < 0) { - /* Error in MDIO interface access */ - fail(0); - } - - write_mii(greth.phyaddr, 0, tmp | (1 << 14), greth.regs); - - /* Dest. addr */ - txbuf[0] = SRC_MAC0; - txbuf[1] = SRC_MAC1; - txbuf[2] = SRC_MAC2; - txbuf[3] = SRC_MAC3; - txbuf[4] = SRC_MAC4; - txbuf[5] = SRC_MAC5; - - /* Source addr */ - txbuf[6] = SRC_MAC0; - txbuf[7] = SRC_MAC1; - txbuf[8] = SRC_MAC2; - txbuf[9] = SRC_MAC3; - txbuf[10] = SRC_MAC4; - txbuf[11] = SRC_MAC5; - - /* Length 1500 (total length 1514 incl. address, type) */ - txbuf[12] = 0x05; - txbuf[13] = 0xDC; - - for (i = 0; i < 128; i++) { - while(!greth_rx(rxbuf, &greth)); - while(!greth_tx(1514, txbuf, &greth)); - } - - return 0; - -} - diff --git a/software/leon3/griommu.c b/software/leon3/griommu.c deleted file mode 100644 index e5cb4ea8..00000000 --- a/software/leon3/griommu.c +++ /dev/null @@ -1,553 +0,0 @@ -/* - * GRLIB system test software for GRIOMMU core - * - * Copyright (c) 2010 Aeroflex Gaisler - * - * Function Description - * -------- ----------- - * _flush Performs flush operation and waits for completion - * _flush_start Starts flush operation and returns - * _flush_wait Returns when flush operation has completed - * _derrinj Injects error at specified line in data RAM - * _terrinj Injects error at specified line in tag RAM - * _test System test, see function description below - * - */ - -#include "testmod.h" -#include "griommu.h" - -/* - * griommu_flush() - * - * Performs flush operation (blocking) - * - * Return values: - * See description of _flush_start() and _flush_wait(). - */ -int griommu_flush(unsigned int addr) -{ - int retval; - retval = griommu_flush_start(addr); - return (retval ? retval : griommu_flush_wait(addr)); -} - -/* - * griommu_flush_start() - * - * Initiates flush operations - * - * Return values: - * 0 - success - * 1 - Flush operation was in progress - * 2 - Previous flush not cleared in Status registers - * 3 - Core is in diagnostic mode - * - */ -int griommu_flush_start(unsigned int addr) -{ - struct griommu_reg *r = (struct griommu_reg *) addr; - - if (r->flush & (GRIOMMU_FLUSH_F | GRIOMMU_FLUSH_GF)) - return 1; - - if (r->stat & (GRIOMMU_STAT_FL | GRIOMMU_STAT_FC)) - return 2; - - if (r->ctrl & GRIOMMU_CTRL_DM) - return 3; - - r->flush = GRIOMMU_FLUSH_F; - - return 0; -} - -/* - * griommu_flush_wait() - * - * Returns when flush operation has completed - * - * Return values: - * 0 - success - * 4 - FL bit was not set in status register - * - */ -int griommu_flush_wait(unsigned int addr) -{ - unsigned int tmp; - struct griommu_reg *r = (struct griommu_reg *) addr; - - do { - tmp = r->stat; - if (!(tmp & GRIOMMU_STAT_FL)) - return 4; - } while (!(tmp & GRIOMMU_STAT_FC)); - - r->stat = GRIOMMU_STAT_FC | GRIOMMU_STAT_FL; - - return 0; -} - - - -/* - * griommu_derrinj - * - * Injects error at specified line in data RAM - * - */ -void griommu_derrinj(unsigned int addr, unsigned int line) -{ - unsigned int tmp; - struct griommu_reg *r = (struct griommu_reg *) addr; - - r->ctrl |= GRIOMMU_CTRL_DM; - r->derri = -1; - r->diaga = GRIOMMU_DIAGA_DA | line; - do { tmp = r->diaga; } while(tmp & GRIOMMU_DIAGA_DA); - r->derri = 0; - r->ctrl &= ~GRIOMMU_CTRL_DM; -} - - -/* - * griommu_terrinj - * - * Injects error at specified line in tag RAM - * - */ -void griommu_terrinj(unsigned int addr, unsigned int line) -{ - unsigned int tmp; - struct griommu_reg *r = (struct griommu_reg *) addr; - - r->ctrl |= GRIOMMU_CTRL_DM; - r->terri = -1; - r->diaga = GRIOMMU_DIAGA_DA | line; - do { tmp = r->diaga; } while(tmp & GRIOMMU_DIAGA_DA); - r->terri = 0; - r->ctrl &= ~GRIOMMU_CTRL_DM; -} - - -/* - * griommu_passtrough() - * - * Places all masters in group 0 and sets group 0 to passthrough - * - */ -void griommu_passthrough(unsigned int addr) -{ - unsigned char i, ngrp, nmst; - struct griommu_reg *r = (struct griommu_reg *) addr; - - nmst = r->cap[0] >> GRIOMMU_CAP0_MSTS; - ngrp = ((nmst >> GRIOMMU_CAP0_GRPS) & 0xf) + 1; - nmst = (nmst & 0xf) + 1; - - if (ngrp > 1) { - for (i = 0; i < nmst; i++) - r->mstcfg[i] = 0; - } - - r->grpctrl[0] = GRIOMMU_GRPCTRL_P | GRIOMMU_GRPCTRL_AG; - - r->ctrl = GRIOMMU_CTRL_EN; -} - -/* - * griommu_deny_all() - * - * Places all masters in disabled group 0 - * - */ -void griommu_deny_all(unsigned int addr) -{ - unsigned char i, ngrp, nmst; - struct griommu_reg *r = (struct griommu_reg *) addr; - - nmst = r->cap[0] >> GRIOMMU_CAP0_MSTS; - ngrp = ((nmst >> GRIOMMU_CAP0_GRPS) & 0xf) + 1; - nmst = (nmst & 0xf) + 1; - - if (ngrp > 1) { - for (i = 0; i < nmst; i++) - r->mstcfg[i] = 0; - } - - r->grpctrl[0] = 0; - - r->ctrl = GRIOMMU_CTRL_EN; -} - - - -/* - * griommu_reg_test() - * - * Called from griommu_test(). Performs read and - * write operations to the core's register interface. - * - */ -static void griommu_reg_test(unsigned int addr) -{ - unsigned char ngrp, nmst; - unsigned int i, cap[3]; - struct griommu_reg *r = (struct griommu_reg *) addr; - - cap[0] = r->cap[0]; - cap[1] = r->cap[1]; - cap[2] = r->cap[2]; - - /* Testing control register */ - r->ctrl = 0; - if ((r->ctrl & ~GRIOMMU_CTRL_SP) && (cap[0] & GRIOMMU_CAP0_A)) - fail(1); - if (!(r->ctrl & ~GRIOMMU_CTRL_SP) && !(cap[0] & GRIOMMU_CAP0_A) && - (cap[0] & GRIOMMU_CAP0_I)) fail(2); - r->ctrl = GRIOMMU_CTRL_CE; - if (((cap[0] & GRIOMMU_CAP0_AC) && !(r->ctrl & GRIOMMU_CTRL_CE)) || - (!(cap[0] & GRIOMMU_CAP0_AC) && (r->ctrl & GRIOMMU_CTRL_CE))) - fail(3); - r->ctrl = GRIOMMU_CTRL_GS; - if (((cap[0] & GRIOMMU_CAP0_CA) && !(r->ctrl & GRIOMMU_CTRL_GS)) || - (!(cap[0] & GRIOMMU_CAP0_CA) && (r->ctrl & GRIOMMU_CTRL_GS))) - fail(4); - r->ctrl = GRIOMMU_CTRL_DM; - if (((cap[0] & GRIOMMU_CAP0_AC) && !(r->ctrl & GRIOMMU_CTRL_DM)) || - (!(cap[0] & GRIOMMU_CAP0_AC) && (r->ctrl & GRIOMMU_CTRL_DM))) - fail(5); - r->ctrl = GRIOMMU_CTRL_WP; - if (!(r->ctrl & GRIOMMU_CTRL_WP)) - fail(6); - r->ctrl = GRIOMMU_CTRL_AU; - if (!(r->ctrl & GRIOMMU_CTRL_AU)) - fail(7); - r->ctrl = 0x3 << GRIOMMU_CTRL_HPROT; - if (((cap[0] & (GRIOMMU_CAP0_A | GRIOMMU_CAP0_I)) && - (((r->ctrl >> GRIOMMU_CTRL_HPROT) & 0x3) != 0x3)) || - (!(cap[0] & (GRIOMMU_CAP0_A | GRIOMMU_CAP0_I)) && - ((r->ctrl >> GRIOMMU_CTRL_HPROT) & 0x3))) - fail(8); - r->ctrl = GRIOMMU_CTRL_SIV; - if (((cap[0] & GRIOMMU_CAP0_IT) && !(r->ctrl & GRIOMMU_CTRL_SIV)) || - (!(cap[0] & GRIOMMU_CAP0_IT) && (r->ctrl & GRIOMMU_CTRL_SIV))) - fail(9); - /* DP bit skipped */ - r->ctrl = 0xf << GRIOMMU_CTRL_ITR; - if (((cap[0] & GRIOMMU_CAP0_IT) && (((r->ctrl >> GRIOMMU_CTRL_ITR) & 0xf) != 0xf)) || - (!(cap[0] & GRIOMMU_CAP0_IT) && (((r->ctrl >> GRIOMMU_CTRL_ITR) & 0xf) != 0))) - fail(10); - r->ctrl = GRIOMMU_CTRL_LB; - if (((cap[0] & GRIOMMU_CAP0_MB) && !(r->ctrl & GRIOMMU_CTRL_LB)) || - (!(cap[0] & GRIOMMU_CAP0_MB) && (r->ctrl & GRIOMMU_CTRL_LB))) - fail(11); - r->ctrl = 0x7 << GRIOMMU_CTRL_PGSZ; - if (((cap[0] & GRIOMMU_CAP0_CS) && (((r->ctrl >> GRIOMMU_CTRL_PGSZ) & 0x7) != 0x7)) || - (!(cap[0] & GRIOMMU_CAP0_CS) && (((r->ctrl >> GRIOMMU_CTRL_PGSZ) & 0x7) != 0))) - fail(12); - - r->ctrl = 0; - - /* Status register is not tested */ - - /* Test mask register */ - r->mask = GRIOMMU_MASK_TEI; - if (!(r->mask & GRIOMMU_MASK_TEI)) - fail(13); - r->mask = GRIOMMU_MASK_ADI; - if (!(r->mask & GRIOMMU_MASK_ADI)) - fail(14); - r->mask = GRIOMMU_MASK_FLI; - if (((cap[0] & GRIOMMU_CAP0_AC) && !(r->mask & GRIOMMU_MASK_FLI)) || - (!(cap[0] & GRIOMMU_CAP0_AC) && (r->mask & GRIOMMU_MASK_FLI))) - fail(15); - r->mask = GRIOMMU_MASK_FCI; - if (((cap[0] & GRIOMMU_CAP0_AC) && !(r->mask & GRIOMMU_MASK_FCI)) || - (!(cap[0] & GRIOMMU_CAP0_AC) && (r->mask & GRIOMMU_MASK_FCI))) - fail(16); - r->mask = GRIOMMU_MASK_PEI; - if ((((cap[0] >> GRIOMMU_CAP0_FT) & 0x3) && !(r->mask & GRIOMMU_MASK_PEI)) || - (!((cap[0] >> GRIOMMU_CAP0_FT) & 0x3) && (r->mask & GRIOMMU_MASK_PEI))) - fail(17); - - nmst = ((cap[0] >> GRIOMMU_CAP0_MSTS) & 0xf) + 1; - ngrp = ((cap[0] >> GRIOMMU_CAP0_GRPS) & 0xf) + 1; - - /* Master group assignment registers */ - if (ngrp > 1) { - for (i = 0; i < nmst; i++) { - r->mstcfg[i] = ngrp-1; - if ((r->mstcfg[i] & 0xfff) != ngrp-1) - fail(18+i); - r->mstcfg[i] = 0; - } - } - - /* Group base address registers */ - for (i = 0; i < ngrp; i++) { - r->grpctrl[i] = GRIOMMU_GRPCTRL_AG; - if (!(r->grpctrl[i] & GRIOMMU_GRPCTRL_AG)) - fail(33+i*5); - if ((r->grpctrl[i] & ~GRIOMMU_GRPCTRL_AG)) - fail(33+i*5+1); - if (cap[0] & GRIOMMU_CAP0_I) { - r->grpctrl[i] = GRIOMMU_GRPCTRL_P; - if (!(r->grpctrl[i] & GRIOMMU_GRPCTRL_P)) - fail(33+i*5+2); - r->grpctrl[i] = 0xffff8000; - if (r->grpctrl[i] != 0xffff8000) - fail(33+i*5+3); - } else if (cap[0] & GRIOMMU_CAP0_A) { - r->grpctrl[i] = GRIOMMU_GRPCTRL_P; - if (!(r->grpctrl[i] & GRIOMMU_GRPCTRL_P)) - fail(33+i*5+2); - r->grpctrl[i] = 0xffff8000; - if (r->grpctrl[i] != 0xfffe0000) - fail(33+i*5+3); - } else { - r->grpctrl[i] = GRIOMMU_GRPCTRL_P; - if ((r->grpctrl[i] & GRIOMMU_GRPCTRL_P)) - fail(33+i*5+2); - r->grpctrl[i] = 0xffff8000; - if (r->grpctrl[i] != 0) - fail(33+i*5+3); - } - r->grpctrl[i] = 0; - if (r->grpctrl[i]) - fail(33+i*5+4); - } - - /* - * Diagnostic cache access registers not tested here as they may - * contain bad values. The registers are used during the diagnostic - * cache access test later. - * - */ - - /* Data RAM error injection register */ - r->derri = -1; - if ((((cap[0] >> GRIOMMU_CAP0_FT) & 0x3) && !(r->derri)) || - (!((cap[0] >> GRIOMMU_CAP0_FT) & 0x3) && (r->derri))) - fail(113); - r->derri = 0; - - /* Tag RAM error injection register */ - r->terri = -1; - if ((((cap[0] >> GRIOMMU_CAP0_FT) & 0x3) && !(r->terri)) || - (!((cap[0] >> GRIOMMU_CAP0_FT) & 0x3)&& (r->terri))) - fail(114); - r->terri = 0; - - /* ASMP Access control register(s) */ - for (i = 0; i < ((cap[0] >> GRIOMMU_CAP0_NARB) & 0xf); i++) { - r->asmpacc[i] = GRIOMMU_ASMPCC_FC; - if (!(r->asmpacc[i] & GRIOMMU_ASMPCC_FC)) - fail(115+i*4); - r->asmpacc[i] = GRIOMMU_ASMPCC_SC; - if (!(r->asmpacc[i] & GRIOMMU_ASMPCC_SC)) - fail(115+i*4+1); - r->asmpacc[i] = GRIOMMU_ASMPCC_MC; - if (!(r->asmpacc[i] & GRIOMMU_ASMPCC_MC)) - fail(115+i*4+2); - r->asmpacc[i] = 0; - if (r->asmpacc[i]) - fail(115+i*4+3); - } -} - -/* - * griommu_diag_test() - * - * Called from griommu_test(). Performs read and - * write operations to a few lines in the cache. - * - */ -static void griommu_diag_test(unsigned int addr) -{ - unsigned char ndregs, ntagb, i, j; - unsigned int tmp, nlines; - struct griommu_reg *r = (struct griommu_reg *) addr; - - tmp = r->cap[1]; - ndregs = 1 << (((tmp >> GRIOMMU_CAP1_CSIZE) & 0x7)); - ntagb = (tmp >> GRIOMMU_CAP1_CTAGB) & 0xff; - nlines = (1 << ((tmp >> GRIOMMU_CAP1_CLINES) & 0x1f)); - nlines = nlines > 4 ? 4 : nlines; - - /* Enable diagnostic mode */ - r->ctrl = GRIOMMU_CTRL_DM; - - if (!(r->stat & GRIOMMU_STAT_DE)) - fail(1); - - /* Cache has been flushed so it is safe to access the diaga register */ - - /* Write cache */ - for (i = 0; i < nlines; i++) { - /* Data RAM */ - tmp = i & 1 ? 0 : -1; - for (j = 0; j < ndregs; j++) { - r->diagd[j] = tmp; - tmp = ~tmp; - } - /* Tag RAM */ - r->diagt = 1 << (i % ntagb); - - /* Commit */ - r->diaga = GRIOMMU_DIAGA_DA | i; - do { tmp = r->diaga; } while(tmp & GRIOMMU_DIAGA_DA); - if (tmp & (GRIOMMU_DIAGA_DP | GRIOMMU_DIAGA_TP)) fail(3+i); - } - - /* Read cache */ - for (i = 0; i < nlines; i++) { - /* Read */ - r->diaga = GRIOMMU_DIAGA_DA | GRIOMMU_DIAGA_RW | i; - do { tmp = r->diaga; } while(tmp & GRIOMMU_DIAGA_DA); - if (tmp & (GRIOMMU_DIAGA_DP | GRIOMMU_DIAGA_TP)) fail(7+3*i); - - /* Data RAM */ - tmp = i & 1 ? 0 : -1; - for (j = 0; j < ndregs; j++) { - if (r->diagd[j] != tmp) - fail(7+3*i+1); - tmp = ~tmp; - } - /* Tag RAM */ - if (r->diagt != (1 << (i % ntagb))) - fail(7+i*3+2); - } - - /* Make sure that we did not leave any valid bits set */ - for (i = 0; i < nlines; i++) { - /* Tag RAM */ - r->diagt = 0; - /* Commit */ - r->diaga = GRIOMMU_DIAGA_DA | i; - do { tmp = r->diaga; } while(tmp & GRIOMMU_DIAGA_DA); - if (tmp & (GRIOMMU_DIAGA_DP | GRIOMMU_DIAGA_TP)) fail(19+i); - } - - /* Leave diagnostic mode and disable core */ - r->ctrl = 0; -} - -/* - * griommu_ft_test() - * - * Called from griommu_test(). Tests parity checks by - * performing diagnostic accesses and injecting errors. - * - */ -static void griommu_ft_test(unsigned int addr) -{ - unsigned char ndbytes, ntbytes, i, j; - unsigned int tmp, nlines; - struct griommu_reg *r = (struct griommu_reg *) addr; - - if (r->cap[0] & GRIOMMU_CAP0_A) { - tmp = r->cap[1]; - ndbytes = 1 << (((tmp >> GRIOMMU_CAP1_CSIZE) & 0x7) + 2); - ntbytes = (((tmp >> GRIOMMU_CAP1_CTAGB) & 0xff)+7)/8; - nlines = 1 << ((tmp >> GRIOMMU_CAP1_CLINES) & 0x1f); - nlines = nlines > 4 ? 4 : nlines; - } else { - tmp = r->cap[2]; - ndbytes = 1 << (((tmp >> GRIOMMU_CAP2_ISIZE) & 0x7) + 2); - ntbytes = (((tmp >> GRIOMMU_CAP2_TTAGB) & 0xff)+7)/8; - nlines = 1 << ((tmp >> GRIOMMU_CAP2_TLBENT) & 0x1f); - nlines = nlines > 4 ? 4 : nlines; - } - - /* Enable diagnostic mode */ - r->ctrl = GRIOMMU_CTRL_DM; - - for (i = 0; i < ndbytes+ntbytes; i++) { - /* Read */ - r->diaga = GRIOMMU_DIAGA_DA | GRIOMMU_DIAGA_RW; - do { tmp = r->diaga; } while(tmp & GRIOMMU_DIAGA_DA); - if (tmp & (GRIOMMU_DIAGA_DP | GRIOMMU_DIAGA_TP)) fail(i*5); - - /* Inject error */ - if (i < ndbytes) { - r->derri = 1 << i; - } else { - r->terri = 1 << (i-ndbytes); - } - - /* Write */ - r->diaga = GRIOMMU_DIAGA_DA; - do { tmp = r->diaga; } while(tmp & GRIOMMU_DIAGA_DA); - - /* Read */ - r->diaga = GRIOMMU_DIAGA_DA | GRIOMMU_DIAGA_RW; - do { tmp = r->diaga; } while(tmp & GRIOMMU_DIAGA_DA); - if ((i < ndbytes) && !(tmp & GRIOMMU_DIAGA_DP)) - fail(i*5+1); - if ((i < ndbytes) && (tmp & GRIOMMU_DIAGA_TP)) - fail(i*5+2); - if ((i >= ndbytes) && (tmp & GRIOMMU_DIAGA_DP)) - fail(i*5+3); - if ((i >= ndbytes) && !(tmp & GRIOMMU_DIAGA_TP)) - fail(i*5+4); - - /* Clear error injection */ - if (i < ndbytes) { - r->derri = 0; - } else { - r->terri = 0; - } - - /* Write */ - r->diaga = GRIOMMU_DIAGA_DA; - do { tmp = r->diaga; } while(tmp & GRIOMMU_DIAGA_DA); - } - - /* Leave diagnostic mode and disable core */ - r->ctrl = 0; -} - - -/* - * griommu_test() - * - * GRLIB system test intended to be run in simulation. Tests: - * - * Basic tests on register interface - * Cache flush operation - * Diagnostic cache accesses - * Fault-tolerance - * - */ -void griommu_test(unsigned int addr) -{ - int retval; - struct griommu_reg *r = (struct griommu_reg *) addr; - - report_device(0x0104f000); - - /* Read out values from capbility registers */ - - /* Basic tests on register interface */ - report_subtest(1); - griommu_reg_test(addr); - - if (r->cap[0] & GRIOMMU_CAP0_AC) { - /* Perform cache flush */ - report_subtest(2); - retval = griommu_flush(addr); - if (retval) fail(retval); - - /* Diagnostic cache accesses */ - report_subtest(3); - griommu_diag_test(addr); - } - - - if ((r->cap[0] >> GRIOMMU_CAP0_FT) & 0x3) { - /* Test fault tolerance */ - report_subtest(4); - griommu_ft_test(addr); - } -} diff --git a/software/leon3/griommu.h b/software/leon3/griommu.h deleted file mode 100644 index 86c72ff2..00000000 --- a/software/leon3/griommu.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - * GRLIB system test software for GRIOMMU core - * - * Copyright (c) 2010-2011 Aeroflex Gaisler AB - * - */ - -struct griommu_reg { - volatile unsigned int cap[3]; /* 0x00 - 0x08 */ - volatile unsigned int dummy0; /* 0x0C */ - volatile unsigned int ctrl; /* 0x10 */ - volatile unsigned int flush; /* 0x14 */ - volatile unsigned int stat; /* 0x18 */ - volatile unsigned int mask; /* 0x1C */ - volatile unsigned int fail; /* 0x20 */ - volatile unsigned int dummy1[7]; /* 0x24 - 0x3C */ - volatile unsigned int mstcfg[16]; /* 0x40 - 0x7C */ - volatile unsigned int grpctrl[16]; /* 0x80-0xBC */ - volatile unsigned int diaga; /* 0xC0 */ - volatile unsigned int diagd[8]; /* 0xC4 - 0xE0 */ - volatile unsigned int diagt; /* 0xE4 */ - volatile unsigned int derri; /* 0xE8 */ - volatile unsigned int terri; /* 0xEC */ - volatile unsigned int dummy2[4]; /* 0xF0 - 0xFC */ - volatile unsigned int asmpacc[15]; /* 0x100 - 0x138 */ -}; - -/* - * Register fields - */ - -/* Capability register 0 */ -#define GRIOMMU_CAP0_A (1 << 31) -#define GRIOMMU_CAP0_AC (1 << 30) -#define GRIOMMU_CAP0_CA (1 << 29) -#define GRIOMMU_CAP0_CP (1 << 28) -#define GRIOMMU_CAP0_NARB 20 -#define GRIOMMU_CAP0_CS 19 -#define GRIOMMU_CAP0_FT 17 -#define GRIOMMU_CAP0_ST (1 << 16) -#define GRIOMMU_CAP0_I (1 << 15) -#define GRIOMMU_CAP0_IT (1 << 14) -#define GRIOMMU_CAP0_IA (1 << 13) -#define GRIOMMU_CAP0_IP (1 << 12) -#define GRIOMMU_CAP0_MB (1 << 8) -#define GRIOMMU_CAP0_GRPS 4 -#define GRIOMMU_CAP0_MSTS 0 - -/* Capability register 1 */ -#define GRIOMMU_CAP1_CADDR 20 -#define GRIOMMU_CAP1_CMASK 16 -#define GRIOMMU_CAP1_CTAGB 8 -#define GRIOMMU_CAP1_CSIZE 5 -#define GRIOMMU_CAP1_CLINES 0 - -/* Capability register 2 */ -#define GRIOMMU_CAP2_TMASK 24 -#define GRIOMMU_CAP2_MTYPE 18 -#define GRIOMMU_CAP2_TTYPE 16 -#define GRIOMMU_CAP2_TTAGB 8 -#define GRIOMMU_CAP2_ISIZE 5 -#define GRIOMMU_CAP2_TLBENT 0 - -/* Control register */ -#define GRIOMMU_CTRL_PGSZ 18 -#define GRIOMMU_CTRL_LB (1 << 17) -#define GRIOMMU_CTRL_SP (1 << 16) -#define GRIOMMU_CTRL_ITR 12 -#define GRIOMMU_CTRL_DP (1 << 11) -#define GRIOMMU_CTRL_SIV (1 << 10) -#define GRIOMMU_CTRL_HPROT 8 -#define GRIOMMU_CTRL_AU (1 << 7) -#define GRIOMMU_CTRL_WP (1 << 6) -#define GRIOMMU_CTRL_DM (1 << 5) -#define GRIOMMU_CTRL_GS (1 << 4) -#define GRIOMMU_CTRL_CE (1 << 3) -#define GRIOMMU_CTRL_PM (1 << 1) -#define GRIOMMU_CTRL_EN (1 << 0) - -/* Flush register */ -#define GRIOMMU_FLUSH_FGRP 4 -#define GRIOMMU_FLUSH_GF (1 << 1) -#define GRIOMMU_FLUSH_F (1 << 0) - -/* Status register */ -#define GRIOMMU_STAT_PE (1 << 5) -#define GRIOMMU_STAT_DE (1 << 4) -#define GRIOMMU_STAT_FC (1 << 3) -#define GRIOMMU_STAT_FL (1 << 2) -#define GRIOMMU_STAT_AD (1 << 1) -#define GRIOMMU_STAT_TE (1 << 0) - -/* Mask register */ -#define GRIOMMU_MASK_PEI (1 << 5) -#define GRIOMMU_MASK_FCI (1 << 3) -#define GRIOMMU_MASK_FLI (1 << 2) -#define GRIOMMU_MASK_ADI (1 << 1) -#define GRIOMMU_MASK_TEI (1 << 0) - -/* Failing access register */ -#define GRIOMMU_FAIL_FADDR 5 -#define GRIOMMU_FAIL_FW (1 << 4) -#define GRIOMMU_FAIL_FMASTER 0 - -/* Group control register(s) */ -#define GRIOMMU_GRPCTRL_BASE 2 -#define GRIOMMU_GRPCTRL_P (1 << 1) -#define GRIOMMU_GRPCTRL_AG (1 << 0) - -/* Diagnostic cache access register */ -#define GRIOMMU_DIAGA_DA (1 << 31) -#define GRIOMMU_DIAGA_RW (1 << 30) -#define GRIOMMU_DIAGA_DP (1 << 21) -#define GRIOMMU_DIAGA_TP (1 << 20) - - -/* ASMP Register Block access control register */ -#define GRIOMMU_ASMPCC_FC (1 << 18) -#define GRIOMMU_ASMPCC_SC (1 << 17) -#define GRIOMMU_ASMPCC_MC (1 << 16) -#define GRIOMMU_ASMPCC_GRP 0 - - -int griommu_flush(unsigned int addr); -int griommu_flush_start(unsigned int addr); -int griommu_flush_wait(unsigned int addr); diff --git a/software/leon3/grpci2.c b/software/leon3/grpci2.c deleted file mode 100644 index 484e12b7..00000000 --- a/software/leon3/grpci2.c +++ /dev/null @@ -1,557 +0,0 @@ -/* - Systest for GRPCI2. - Configure the cores: Enable Master and Target, set latency timer to 0x40 - BAR0 = 0x40000000 => AHB address of data[] - All AHB master => PCI address 0x80000000 - PCI IO cycles => PCI address 0xC0000000 - Configure TB target: Enable Target - BAR0 = 0x80000000 - MEM BAR - BAR1 = 0xC0000001 - IO BAR - Test: - Setup data[] - Write PCI address fot data[] to 0x80000100 - PCI MEM write/read test to 0x80000000 - 0x80000040 - PCI IO write/read test to 0xC0000000 - 0xC0000040 - Wait for TB master to replace data[] (wait for PCI address 0x80000104 reading 1) - Check the incremental data in data[] - done -*/ -static inline int loadmem(int addr) -{ - int tmp; - asm volatile (" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} -int grpci2_test(unsigned int base_addr, unsigned int conf_addr, unsigned int apb_addr, int slot, int reset) { - volatile unsigned int *base = (unsigned int *) base_addr; - volatile unsigned int *baseio = (unsigned int *) (conf_addr); - volatile unsigned int *conf = (unsigned int *) (conf_addr + 0x10000); - volatile unsigned int *apb = (unsigned int *) apb_addr; - int i; - - unsigned int tmp, data_addr; - unsigned int data[16]; - - unsigned int tw(unsigned int data){ - return ((data & 0xff) << 24) | (((data >> 8) & 0xff) << 16) | (((data >> 16) & 0xff) << 8) | (((data >> 24) & 0xff)); - } - - report_device(0x0107C000); - - data_addr = (int)data; - - // PCI self configuration - report_subtest(1); - - // Software reset - if (reset != 0) { - *apb = 0x80000000; - if ((*apb & 0x80000000) == 0) fail(1); - *apb = 0x00000000; - if ((*apb & 0x80000000) != 0) fail(2); - }; - - - report_subtest(2); - // Enable PCI master and mem access - *(conf+1) = tw(0x00000146); - tmp = *(conf+1); - *(conf+3) = tw(0x00004000); - *(conf+0x60/4) = tw(0x00000001); - - // BAR0 - *(conf+4) = tw(0x40000000); - if ((*(conf+4) & 0xf0ffffff) != tw(0x40000000)) fail(1); - // BAR0 to AHB - //*(conf+17) = tw(0x00000000); - //if (*(conf+17) != tw(0x00000000)) fail(2); - *(conf+17) = tw(0xffffffff); - tmp = tw((*(conf+17) & 0xf0ffffff)); - *(conf+17) = tw(data_addr); - if ((*(conf+17) & 0xf0ffffff) != tw((data_addr & tmp))) fail(2); - - // AHB master to PCI - for (i=0; i<16; i++){ - *(apb+16+i) = 0x80000000; - } - - // AHB => PCI IO - *(apb+3) = 0xc0000000; - - // conf target - report_subtest(3); - *(conf+(0x800*(18+slot))/4+1) = tw(0x00000146); - if (*(conf+(0x800*(18+slot))/4) != tw(0x2badaffe)) fail(3); - *(conf+(0x800*(18+slot))/4+4) = tw(0x80000000); - if (*(conf+(0x800*(18+slot))/4+4) != tw(0x80000000)) fail(4); - *(conf+(0x800*(18+slot))/4+5) = tw(0xC0000000); - if (*(conf+(0x800*(18+slot))/4+5) != tw(0xC0000001)) fail(5); - - // generate test data for TB master - for (i=0;i<16;i++){ - data[i] = (((i+7)&0xf)<<28) |(((i+6)&0xf)<<24) |(((i+5)&0xf)<<20) |(((i+4)&0xf)<<16) - |(((i+3)&0xf)<<12) |(((i+2)&0xf)<<8) |(((i+1)&0xf)<<4) |(((i+0)&0xf)); - } - *(base + 0x100/4) = tw(0x40000000 | (data_addr&(~tmp))); - - // test PCI mem-access - report_subtest(4); - for (i=0; i<16; i++){ - *(base+i) = ((i&0xf)<<28) |((i&0xf)<<24) |((i&0xf)<<20) |((i&0xf)<<16) - |((i&0xf)<<12) |((i&0xf)<<8) |((i&0xf)<<4) |((i&0xf)); - } - - for (i=0; i<16; i++){ - if (*(base+i) != (((i&0xf)<<28) |((i&0xf)<<24) |((i&0xf)<<20) |((i&0xf)<<16) - |((i&0xf)<<12) |((i&0xf)<<8) |((i&0xf)<<4) |((i&0xf)))) fail(1); - } - - // test PCI io-access - report_subtest(5); - for (i=0; i<16; i++){ - *(baseio+i) = ((i&0xf)<<28) |((i&0xf)<<24) |((i&0xf)<<20) |((i&0xf)<<16) - |((i&0xf)<<12) |((i&0xf)<<8) |((i&0xf)<<4) |((i&0xf)); - } - - for (i=0; i<16; i++){ - if (*(baseio+i) != (((i&0xf)<<28) |((i&0xf)<<24) |((i&0xf)<<20) |((i&0xf)<<16) - |((i&0xf)<<12) |((i&0xf)<<8) |((i&0xf)<<4) |((i&0xf)))) fail(1); - } - - // wait on testbench master - do{ - i=50;while(i!=0)i--; - tmp = *(base + 0x104/4); - }while (tmp != 1); - - // check data - report_subtest(6); - for (i=0;i<16;i++){ - //if (data[i] != i)fail(1); - if (loadmem(&data[i]) != i)fail(1); - } - - -} - -/* From GRPCI2 API */ -/* Ctrl register */ -#define GRPCI2_CTRL_RST (1 << 31) -#define GRPCI2_CTRL_MRST (1 << 30) -#define GRPCI2_CTRL_TRST (1 << 29) -#define GRPCI2_CTRL_SERRIEN (1 << 27) -#define GRPCI2_CTRL_PERRAEEN (1 << 26) -#define GRPCI2_CTRL_ABORTAEEN (1 << 25) -#define GRPCI2_CTRL_ABORTIEN (1 << 24) -#define GRPCI2_CTRL_CFG_BUS 16 /* 23:16 */ -#define GRPCI2_CTRL_CFG_BUS_MASK (0xFF << 16) -#define GRPCI2_CTRL_IOBURST (1 << 10) -#define GRPCI2_CTRL_CFGBURST (1 << 9) -#define GRPCI2_CTRL_PINTFORCE (1 << 8) -#define GRPCI2_CTRL_DEVINT_MASK 4 /* 7: 4 */ -#define GRPCI2_CTRL_DEVINT_MASK_MASK (0xF << 4) -#define GRPCI2_CTRL_HOSTINT_MASK 0 /* 3: 0 */ -#define GRPCI2_CTRL_HOSTINT_MASK_MASK (0xF << 0) - -/* Status register */ -#define GRPCI2_STA_HOST (1 << 31) -#define GRPCI2_STA_MASTER (1 << 30) -#define GRPCI2_STA_TARGET (1 << 29) -#define GRPCI2_STA_DMA (1 << 28) -#define GRPCI2_STA_DEVINT (1 << 27) -#define GRPCI2_STA_HOSTINT (1 << 26) -#define GRPCI2_STA_IRQ_MODE 24 /* 25:24 */ -#define GRPCI2_STA_IRQ_MODE_MASK (0x3 << 24) -#define GRPCI2_STA_TRACE (1 << 23) -#define GRPCI2_STA_CFG_DONE (1 << 20) -#define GRPCI2_STA_CFG_ERR (1 << 19) -#define GRPCI2_STA_IRQ_STATUS 12 /* 18:12 */ -#define GRPCI2_STA_IRQ_STATUS_MASK (0x7F << 12) -#define GRPCI2_STA_IRQ_DISCARD (1 << 18) -#define GRPCI2_STA_IRQ_SERR (1 << 17) -#define GRPCI2_STA_IRQ_DMAINT (1 << 16) -#define GRPCI2_STA_IRQ_DMAERR (1 << 15) -#define GRPCI2_STA_IRQ_MABORT (1 << 14) -#define GRPCI2_STA_IRQ_TABORT (1 << 13) -#define GRPCI2_STA_IRQ_PERR (1 << 12) -#define GRPCI2_STA_HOSTINT_STATUS 8 /* 11: 8 */ -#define GRPCI2_STA_HOSTINT_STATUS_MASK (0xF << 8) -#define GRPCI2_STA_FIFO_DEPTH 2 /* 4: 2 */ -#define GRPCI2_STA_FIFO_DEPTH_MASK (0x3 << 2) -#define GRPCI2_STA_FIFO_CNT 0 /* 4: 2 */ -#define GRPCI2_STA_FIFO_CNT_MASK (0x3 << 0) - -/* DMA Ctrl/Status register */ -#define GRPCI2_DMACTRL_GUARD (1 << 31) -#define GRPCI2_DMACTRL_CHIRQ 12 /* 19:12 */ -#define GRPCI2_DMACTRL_CHIRQ_MASK (0xFF<< 12) -#define GRPCI2_DMACTRL_MABORT (1 << 11) -#define GRPCI2_DMACTRL_TABORT (1 << 10) -#define GRPCI2_DMACTRL_PERR (1 << 9) -#define GRPCI2_DMACTRL_AHBDATA_ERR (1 << 8) -#define GRPCI2_DMACTRL_AHBDESC_ERR (1 << 7) -#define GRPCI2_DMACTRL_NUMCH 4 /* 6: 4 */ -#define GRPCI2_DMACTRL_NUMCH_MASK (0x7 << 4) -#define GRPCI2_DMACTRL_ACTIVE (1 << 3) -#define GRPCI2_DMACTRL_IRQEN (1 << 1) -#define GRPCI2_DMACTRL_EN (1 << 0) - -/* AHB IO base and PCI bus config register */ -#define GRPCI2_ECFG_AHBIOBASE 20 /* 31:20 */ -#define GRPCI2_ECFG_AHBIOBASE_MASK (0xFFF << 20) -#define GRPCI2_ECFG_DISEN (1 << 1) -#define GRPCI2_ECFG_ENDIAN (1 << 0) - -/* DMA Channel Ctrl Descriptor */ -#define GRPCI2_DMA_CHDESC_DCNT 0 /* 15: 0 */ -#define GRPCI2_DMA_CHDESC_DCNT_MASK (0xFFFF << 0) -#define GRPCI2_DMA_CHDESC_TYPE 20 /* 21:20 */ -#define GRPCI2_DMA_CHDESC_TYPE_MASK (0x3 << 20) -#define GRPCI2_DMA_CHDESC_ID 22 /* 24:22 */ -#define GRPCI2_DMA_CHDESC_ID_MASK (0x7 << 22) -#define GRPCI2_DMA_CHDESC_EN (1 << 31) - -/* DMA Data Ctrl Descriptor */ -#define GRPCI2_DMA_DESC_LENGTH 0 /* 15: 0 */ -#define GRPCI2_DMA_DESC_LENGTH_MASK (0xFFFF << 0) -#define GRPCI2_DMA_DESC_ERR (1 << 19) -#define GRPCI2_DMA_DESC_TYPE 20 /* 21:20 */ -#define GRPCI2_DMA_DESC_TYPE_MASK (0x3 << 20) -#define GRPCI2_DMA_DESC_DIR (1 << 29) -#define GRPCI2_DMA_DESC_IRQEN (1 << 30) -#define GRPCI2_DMA_DESC_EN (1 << 31) - -#define GRPCI2_DMA_DESC_DIR_PTA (0 << 29) -#define GRPCI2_DMA_DESC_DIR_ATP (1 << 29) -#define GRPCI2_DMA_DESC_TYPE_CH (1 << 20) -#define GRPCI2_DMA_DESC_TYPE_DATA (0 << 20) - -#define GRPCI2_DMA_MAX_LEN 0x10000 - -struct grpci2regs { - volatile unsigned int ctrl; - volatile unsigned int status; - volatile unsigned int res0; - volatile unsigned int ahb_to_pciio; - volatile unsigned int dma_ctrl; - volatile unsigned int dma_desc; - volatile unsigned int dma_ch; - volatile unsigned int dma_res; - volatile unsigned int bar_to_ahb[6]; - volatile unsigned int res1[2]; - volatile unsigned int mst_to_pci[16]; - volatile unsigned int tb_ctrl; - volatile unsigned int tb_cmode; - volatile unsigned int tb_ad; - volatile unsigned int tb_ad_mask; - volatile unsigned int tb_sig; - volatile unsigned int tb_sig_mask; - volatile unsigned int tb_ad_state; - volatile unsigned int tb_sig_state; -}; - -struct grpci2_ext_pci_conf_space_regs { - volatile unsigned int id_next; - volatile unsigned int bar_to_ahb[6]; - volatile unsigned int extpcs_to_ahb; - volatile unsigned int ahbio_endiannes; -}; - -struct grpci2_head_pci_conf_space_regs { - volatile unsigned int dev_ven_id; - volatile unsigned int sta_cmd; - volatile unsigned int class_rev; - volatile unsigned int lat_timer; - volatile unsigned int bar[6]; - volatile unsigned int res0[3]; - volatile unsigned int cap_pointer; - volatile unsigned int res1; - volatile unsigned int interrupt; -}; - -struct grpci2_pci_conf_space_regs { - struct grpci2_head_pci_conf_space_regs *head; - struct grpci2_ext_pci_conf_space_regs *ext; -}; - -struct grpci2_dma_ch_desc { - unsigned int ctrl; - unsigned int next; - unsigned int desc; - unsigned int res; -}; - -struct grpci2_dma_data_desc { - unsigned int ctrl; - unsigned int paddr; - unsigned int aaddr; - unsigned int next; -}; - -unsigned int grpci2_tw(unsigned int data){ - return ((data & 0xff) << 24) | (((data >> 8) & 0xff) << 16) | (((data >> 16) & 0xff) << 8) | (((data >> 24) & 0xff)); -} - -/* GRPCI2 Get Master/Target/DMA enabled ****************************************** */ - int grpci2_get_dma(volatile struct grpci2regs* apb){ - return ((apb->status & GRPCI2_STA_DMA) != 0); - }; - -/* GRPCI2 Set/Get AHB Master-to-PCI map ****************************************** */ - void grpci2_set_mstmap(volatile struct grpci2regs* apb, int mst, unsigned int addr){ - apb->mst_to_pci[mst] = addr; - }; - - unsigned int grpci2_get_mstmap(volatile struct grpci2regs* apb, int mst){ - return apb->mst_to_pci[mst]; - }; - -/* GRPCI2 Set/Get Bus-endiannes ************************************************** */ - void grpci2_set_bus_litle_endian(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->ext->ahbio_endiannes |= grpci2_tw(1); - }; - - void grpci2_set_bus_big_endian(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->ext->ahbio_endiannes &= grpci2_tw(0xfffffffe); - }; - -/* GRPCI2 Set/Get BARMAP ********************************************************* */ - void grpci2_set_barmap(volatile struct grpci2_pci_conf_space_regs* conf, int bar, unsigned int addr){ - conf->ext->bar_to_ahb[bar] = grpci2_tw(addr); - }; - -/* GRPCI2 Set/Get BAR ************************************************************ */ - void grpci2_set_bar(volatile struct grpci2_pci_conf_space_regs* conf, int bar, unsigned int addr){ - conf->head->bar[bar] = grpci2_tw(addr); - }; - - unsigned int grpci2_get_bar(volatile struct grpci2_pci_conf_space_regs* conf, int bar){ - return conf->head->bar[bar]; - }; - -/* GRPCI2 Set Latency Timer ****************************************************** */ - void grpci2_set_latency_timer(volatile struct grpci2_pci_conf_space_regs* conf, int timer){ - conf->head->lat_timer = grpci2_tw((grpci2_tw(conf->head->lat_timer) & 0xffff00ff) | (timer & 0xff) << 8); - }; - -/* GRPCI2 Master Enable/Disable ************************************************** */ - void grpci2_mst_enable(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->head->sta_cmd |= grpci2_tw(0x4); - }; - -/* GRPCI2 Memory target Enable/Disable ******************************************* */ - void grpci2_mem_enable(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->head->sta_cmd |= grpci2_tw(0x2); - }; - -/* GRPCI2 IO target Enable/Disable *********************************************** */ - void grpci2_io_disable(volatile struct grpci2_pci_conf_space_regs* conf){ - conf->head->sta_cmd &= ~grpci2_tw(0x1); - }; - -/* GRPCI2 DMA Descriptors init *************************************************** */ - int grpci2_dma_desc_init(struct grpci2regs* apb, volatile unsigned int **chdesc, int irqen, - int num_ch, int ch_entry){ - int i,j; - struct grpci2_dma_ch_desc *ch = malloc(sizeof(struct grpci2_dma_ch_desc)*(num_ch+1)); - struct grpci2_dma_data_desc *ddesc = malloc(sizeof(struct grpci2_dma_data_desc)*(ch_entry*num_ch+1)); - /*printf("ch: %p, desc: %p\n", ch, ddesc);*/ - if (((int)ch & 0xf) != 0) ch = (struct grpci2_dma_ch_desc*)((int)ch + (0x10 - (int)ch & 0xf)); - if (((int)ddesc & 0xf) != 0) ddesc = (struct grpci2_dma_data_desc*)((int)ddesc + (0x10 - (int)ddesc & 0xf)); - /*printf("ch: %p, desc: %p\n", ch, ddesc);*/ - - *chdesc = (int*)ch; - /*printf("ch base: %08p\n", ch);*/ - - for(i=0; ictrl = 0; - (ddesc + i*ch_entry + j)->paddr = 0; - (ddesc + i*ch_entry + j)->aaddr = 0; - if (j == ch_entry-1) (ddesc + i*ch_entry + j)->next = (int)(ddesc + i*ch_entry); - else (ddesc + i*ch_entry + j)->next = (int)(ddesc + i*ch_entry + j + 1); - } - - (ch + i)->ctrl = GRPCI2_DMA_CHDESC_EN | - ((i << GRPCI2_DMA_CHDESC_ID)& GRPCI2_DMA_CHDESC_ID_MASK) | - GRPCI2_DMA_DESC_TYPE_CH; - if (i == num_ch-1) (ch + i)->next = (int)ch; - else (ch + i)->next = (int)(ch + i + 1); - (ch + i)->desc = (int)(ddesc + i*ch_entry); - (ch + i)->res = 0; - - //desc[i] = (int*)(ddesc + i*CH_ENTRY); - //printf("datadesc[%d] base: %08p\n", i, desc[i]); - }; - - apb->dma_ctrl = GRPCI2_DMACTRL_GUARD | GRPCI2_DMACTRL_MABORT | GRPCI2_DMACTRL_TABORT | - GRPCI2_DMACTRL_PERR | GRPCI2_DMACTRL_AHBDATA_ERR | GRPCI2_DMACTRL_AHBDESC_ERR | - (((num_ch-1) << GRPCI2_DMACTRL_NUMCH) & GRPCI2_DMACTRL_NUMCH_MASK) | - (irqen*GRPCI2_DMACTRL_IRQEN); - apb->dma_desc = (int)ch; - - apb->status = GRPCI2_STA_IRQ_DMAINT | GRPCI2_STA_IRQ_DMAERR; - - }; -/* ******************************************************************************* */ - -int grpci2_loopback_test(unsigned int base_addr, unsigned int conf_addr, unsigned int apb_addr, - unsigned int pci_addr, int reset) { - int i; - struct grpci2regs *apb; - struct grpci2_pci_conf_space_regs conf_host; - struct grpci2_pci_conf_space_regs *conf[1]; - - volatile unsigned int* ahbmem; - volatile unsigned int* pcimem; - volatile unsigned int* chbase; - volatile struct grpci2_dma_data_desc* ddesc1; - volatile struct grpci2_dma_data_desc* ddesc2; - volatile struct grpci2_dma_data_desc* ddesc3; - - report_device(0x0107C000); - - /* PCI core configuration ****************************************************** - * BAR[0] = PCI_ADDR - * BAR[0] => AHB AHBMEM - * ***************************************************************************** */ - apb = (struct grpci2regs*)apb_addr; - conf[0] = (struct grpci2_pci_conf_space_regs*)&conf_host; - conf[0]->head = (struct grpci2_head_pci_conf_space_regs*)conf_addr; - conf[0]->ext = (struct grpci2_ext_pci_conf_space_regs*)((unsigned int)conf[0]->head + - (grpci2_tw(conf[0]->head->cap_pointer) & 0xff)); - - // Software reset - report_subtest(7); - if (reset != 0) { - apb->ctrl = GRPCI2_CTRL_RST; - if ((apb->ctrl & GRPCI2_CTRL_RST) == 0) fail(1); - apb->ctrl = 0x00000000; - if ((apb->ctrl & GRPCI2_CTRL_RST) != 0) fail(2); - }; - - /* Get BASE_ADDR_MASK */ - grpci2_set_mstmap(apb, 0, 0xffffffff); - unsigned int base_addr_mask = grpci2_get_mstmap(apb, 0); - grpci2_set_bar(conf[0], 0, 0xffffffff); - unsigned int pci_addr_mask = grpci2_tw(grpci2_get_bar(conf[0], 0)); - - ahbmem = malloc(sizeof(int)*128); - pcimem = (volatile unsigned int*)(base_addr | (((int)ahbmem) &~ base_addr_mask)); - - grpci2_mst_enable(conf[0]); - grpci2_mem_enable(conf[0]); - grpci2_io_disable(conf[0]); - grpci2_set_latency_timer(conf[0], 0x20); - grpci2_set_bar(conf[0], 0, pci_addr); - grpci2_set_barmap(conf[0], 0, 0); - grpci2_set_bus_big_endian(conf[0]); - - grpci2_set_mstmap(apb, 0, pci_addr); - /* PCI-AHB loopback test */ - - report_subtest(8); - /* Clear memory */ - for (i=0; i<32; i++){ - *(ahbmem + i) = 0; - }; - - /* Write to memory via PCI*/ - for (i=0; i<32; i++){ - *(pcimem + i) = i; - }; - - /* Check memory */ - for (i=0; i<32; i++){ - if (loadmem((unsigned int)(ahbmem + i)) != i) fail(1); - }; - - /* Write to memory*/ - for (i=0; i<32; i++){ - *(ahbmem + i) = 31-i; - }; - - /* Check memory via PCI*/ - for (i=0; i<32; i++){ - if (loadmem((unsigned int)(pcimem + i)) != 31-i) fail(2); - }; - - /* Change PCI bus endianess */ - grpci2_set_bus_litle_endian(conf[0]); - - /* Check memory via PCI*/ - for (i=0; i<32; i++){ - if (loadmem((unsigned int)(pcimem + i)) != 31-i) fail(3); - }; - - /* Change PCI bus endianess */ - grpci2_set_bus_big_endian(conf[0]); - - if (grpci2_get_dma(apb)){ - - /* PCI-DMA loopback test */ - report_subtest(9); - - for (i=0; i<32; i++){ - *(ahbmem + i) = i; - } - - for (i=32; i<128; i++){ - *(ahbmem + i) = 0xafafafaf; - } - - /* DMA descriptor table setup */ - grpci2_dma_desc_init(apb, &chbase, 0, 2, 2); - - ddesc1 = (struct grpci2_dma_data_desc*)*(chbase + 2); - ddesc2 = (struct grpci2_dma_data_desc*)*(chbase + 6); - ddesc3 = (struct grpci2_dma_data_desc*)ddesc2->next; - - /* Setup AHB to PCI transfer 32 words */ - ddesc1->paddr = pci_addr | ((unsigned int)(ahbmem + 32) &~ pci_addr_mask); - ddesc1->aaddr = (unsigned int)ahbmem; - ddesc1->ctrl = GRPCI2_DMA_DESC_EN | GRPCI2_DMA_DESC_IRQEN*0 | GRPCI2_DMA_DESC_DIR*1 | - GRPCI2_DMA_DESC_TYPE_DATA | - (31 & GRPCI2_DMA_DESC_LENGTH_MASK) << GRPCI2_DMA_DESC_LENGTH; - - /* Setup PCI to AHB transfer 16 words */ - ddesc2->paddr = pci_addr | ((unsigned int)(ahbmem + 32) &~ pci_addr_mask); - ddesc2->aaddr = (unsigned int)(ahbmem + 64); - ddesc2->ctrl = GRPCI2_DMA_DESC_EN | GRPCI2_DMA_DESC_IRQEN*0 | GRPCI2_DMA_DESC_DIR*0 | - GRPCI2_DMA_DESC_TYPE_DATA | - (15 & GRPCI2_DMA_DESC_LENGTH_MASK) << GRPCI2_DMA_DESC_LENGTH; - - /* Setup AHB to PCI transfer 1 word */ - ddesc3->paddr = pci_addr | ((unsigned int)(ahbmem + 96) &~ pci_addr_mask); - ddesc3->aaddr = (unsigned int)(ahbmem + 64); - ddesc3->ctrl = GRPCI2_DMA_DESC_EN | GRPCI2_DMA_DESC_IRQEN*0 | GRPCI2_DMA_DESC_DIR*1 | - GRPCI2_DMA_DESC_TYPE_DATA | - (0 & GRPCI2_DMA_DESC_LENGTH_MASK) << GRPCI2_DMA_DESC_LENGTH; - - /* Start DMA*/ - apb->dma_ctrl = GRPCI2_DMACTRL_EN; - - /* Wait on desc1 done*/ - while((loadmem((unsigned int)&ddesc1->ctrl) & GRPCI2_DMA_DESC_EN) != 0); - for (i=0; i<32; i++){ - if (loadmem((unsigned int)(ahbmem + 32 + i)) != i) fail(1); - }; - - /* Wait on desc2 done*/ - while((loadmem((unsigned int)&ddesc2->ctrl) & GRPCI2_DMA_DESC_EN) != 0); - for (i=0; i<16; i++){ - if (loadmem((unsigned int)(ahbmem + 64 + i)) != i) fail(2); - }; - - /* Wait on desc3 done*/ - while((loadmem((unsigned int)&ddesc3->ctrl) & GRPCI2_DMA_DESC_EN) != 0); - for (i=0; i<1; i++){ - if (loadmem((unsigned int)(ahbmem + 96 + i)) != i) fail(3); - }; - - }; -}; - diff --git a/software/leon3/grpwm.c b/software/leon3/grpwm.c deleted file mode 100644 index 6a2361f2..00000000 --- a/software/leon3/grpwm.c +++ /dev/null @@ -1,302 +0,0 @@ -/* - * System test software for GRPWM - * - * Copyright (c) 2009 Aeroflex Gaisler AB - * - * NOTES: - * - This software is mainly intended for simulation. If the - * subtests are modified then pwm_check.vhd in - * lib/gaisler/sim must be modified if it should be used to - * verify the output. - * - This software places the following restrictions on the - * GRPWM hardware: - * - pbits generic must be larger than 7 - * - If wavepwm is set, then wdepth must be larger than - * 31 and wbits must be larger than 7 (but not larger - * than pbits. - * - dbbits generic must be larger than 3 - * - This software does not test: - * - more than one scaler - * - dead band scalers - * - dual compare mode - * - interrupts - * - polarity bit - * - fixed value bits - * - PWM generation without pair bit set - * - no update bit - * - waveform sync output -*/ - -#include "testmod.h" - -#define PWM_REG_OFFSET 0x20 -#define PWM_REG_SPACE 0x10 -#define WRAM_OFFSET 0x8000 - -/* Core control register */ -#define CTRL_EN_BIT 0 -#define CTRL_EN (1 << CTRL_EN_BIT) -#define CTRL_SCALERSEL_BIT 8 -#define CTRL_SCALERSEL (7 << CTRL_SCALERSEL_BIT) -#define CTRL_NOUP_BIT 12 -#define CTRL_NOUP (7 << CTRL_NOUP_BIT) - -/* Core capability register 1 */ -#define CAP_NPWM_BIT 0 -#define CAP_NPWM (7 << CAP_NPWM_BIT) -#define CAP_PBITS_BIT 3 -#define CAP_PBITS (0x1F << CAP_PBITS_BIT) -#define CAP_SBITS_BIT 8 -#define CAP_SBITS (0x1F << CAP_SBITS_BIT) -#define CAP_NSCALERS_BIT 13 -#define CAP_NSCALERS (7 << CAP_NSCALERS_BIT) -#define CAP_DBBITS_BIT 16 -#define CAP_DBBITS (0x1F << CAP_DBBITS_BIT) -#define CAP_DBSCALER_BIT 21 -#define CAP_DBSCALER (1 << CAP_DBSCALER_BIT) -#define CAP_ASYMPWM_BIT 22 -#define CAP_ASYMPWM (1 << CAP_ASYMPWM_BIT) -#define CAP_SYMPWM_BIT 23 -#define CAP_SYMPWM (1 << CAP_SYMPWM_BIT) -#define CAP_SEPIRQ_BIT 25 -#define CAP_SEPIRQ (3 << CAP_SEPIRQ_BIT) -#define CAP_DCMODE_BIT 27 -#define CAP_DCMODE (1 << CAP_DCMODE_BIT) - -/* Core capability register 2 */ -#define CAP_WAVEPWM_BIT 0 -#define CAP_WAVEPWM (1 << CAP_WAVEPWM_BIT) -#define CAP_WDBITS_BIT 1 -#define CAP_WDBITS (0x1F << CAP_WDBITS_BIT) -#define CAP_WABITS_BIT 6 -#define CAP_WABITS (0xF << CAP_WABITS_BIT) -#define CAP_WSYNC_BIT 10 -#define CAP_WSYNC (1 << CAP_WSYNC_BIT) - -/* Waveform config register */ -#define WCONF_WSTOPADDR_BIT 0 -#define WCONF_WSTOPADDR (0xF << WCONF_STOPADDR_BIT) -#define WCONF_WSYNCCOMP_BIT 16 -#define WCONF_WSYNCCOMP (0x1FFF << WCONF_WSYNCCOMP_BIT) -#define WCONF_WSYNCEN_BIT 29 -#define WCONF_WSYNCEN (1 << WCONF_WSYNCEN_BIT) - -/* PWM control register */ -#define PWM_CTRL_EN_BIT 0 -#define PWM_CTRL_EN (1 << PWM_CTRL_EN_BIT) -#define PWM_CTRL_POL_BIT 1 -#define PWM_CTRL_POL (1 << PWM_CTRL_POL_BIT) -#define PWM_CTRL_PAIR_BIT 2 -#define PWM_CTRL_PAIR (1 << PWM_CTRL_PAIR_BIT) -#define PWM_CTRL_FIX_BIT 3 -#define PWM_CTRL_FIX (7 << PWM_CTRL_FIX_BIT) -#define PWM_CTRL_METH_BIT 6 -#define PWM_CTRL_METH (1 << PWM_CTRL_METH_BIT) -#define PWM_CTRL_DCOMP_BIT 8 -#define PWM_CTRL_DCOMP (1 << PWM_CTRL_DCOMP_BIT) -#define PWM_CTRL_WEN_BIT 9 -#define PWM_CTRL_WEN (1 << PWM_CTRL_WEN_BIT) -#define PWM_CTRL_SCALESEL_BIT 10 -#define PWM_CTRL_SCALESEL (7 << PWM_CTRL_SCALESEL_BIT) -#define PWM_CTRL_IRQEN_BIT 13 -#define PWM_CTRL_IRQEN (1 << PWM_CTRL_IRQEN_BIT) -#define PWM_CTRL_IRQTYPE_BIT 14 -#define PWM_CTRL_IRQTYPE (1 << PWM_CTRL_IRQTYPE_BIT) -#define PWM_CTRL_IRQSCALE_BIT 15 -#define PWM_CTRL_IRQSCALE (0x3F << PWM_CTRL_IRQSCALE_BIT) -#define PWM_CTRL_DBEN_BIT 21 -#define PWM_CTRL_DBEN (1 << PWM_CTRL_DBEN_BIT) -#define PWM_CTRL_DBSCALER_BIT 22 -#define PWM_CTRL_DBSCALER (0xF << PWM_CTRL_DBSCALER_BIT) - -/* The address that the core will wrap during Waveform - PWM tests */ -#define WSTOPADDR 31 - -/* Choose which subtests to run */ -#define SUBTEST1 1 /* Asymmetric */ -#define SUBTEST2 1 /* Symmetric */ -#define SUBTEST3 1 /* Waveform (asymmetric) */ -#define SUBTEST4 1 /* Waveform (symmetric) */ - -struct grpwm_core_regs { - volatile unsigned int ctrl; - volatile unsigned int scaler; - volatile unsigned int irq; - volatile unsigned int cap1; - volatile unsigned int cap2; - volatile unsigned int wconf; -}; - -struct grpwm_pwm_regs { - volatile unsigned int per; - volatile unsigned int comp; - volatile unsigned int db; - volatile unsigned int ctrl; -}; - -struct grpwm_caps { - int npwm; -/* int pbits; */ -/* int sbits; */ -/* int nscalers; */ -/* int dbbits; */ -/* int dbscaler; */ - int asympwm; - int sympwm; -/* int sepirq; */ -/* int dcmode; */ - int wavepwm; -/* int wbits; */ -/* int wdepth; */ -/* int wsync; */ -}; - -int grpwm_test(int addr) { - - int i; - volatile int tmp; - - struct grpwm_core_regs *cregs; - struct grpwm_pwm_regs *pregs[8]; - volatile unsigned int *wram; - struct grpwm_caps caps; - - report_device(0x0104A000); - - cregs = (struct grpwm_core_regs*)addr; - - caps.npwm = ((cregs->cap1 & CAP_NPWM) >> CAP_NPWM_BIT) + 1 ; - caps.asympwm = cregs->cap1 & CAP_ASYMPWM; - caps.sympwm = cregs->cap1 & CAP_SYMPWM; - caps.wavepwm = cregs->cap2 & CAP_WAVEPWM; -/* caps.pbits = ((cregs->cap1 & CAP_PBITS) >> CAP_PBITS_BIT) + 1 ; */ -/* caps.sbits = ((cregs->cap1 & CAP_SBITS) >> CAP_SBITS_BIT) + 1 ; */ -/* caps.nscalers = ((cregs->cap1 & CAP_NSCALERS) >> CAP_NSCALERS_BIT) + 1 ; */ -/* caps.dbbits = ((cregs->cap1 & CAP_DBBITS) >> CAP_DBBITS_BIT) + 1 ; */ -/* caps.dbscaler = cregs->cap1 & CAP_DBSCALER; */ -/* caps.sepirq = (cregs->cap1 & CAP_SEPIRQ) >> CAP_SEPIRQ_BIT; */ -/* caps.dcmode = cregs->cap1 & CAP_DCMODE; */ -/* if(caps.wavepwm) { */ -/* caps.wbits = ((cregs->cap2 & CAP_WDBITS) >> CAP_WDBITS_BIT) + 1; */ -/* caps.wdepth = 2^(((cregs->cap2 & CAP_WABITS) >> CAP_WABITS_BIT) + 1); */ -/* caps.wsync = cregs->cap2 & CAP_WSYNC; */ -/* } */ - - for(i = 0; i < caps.npwm; i++) - pregs[i] = (struct grpwm_pwm_regs*)(addr + PWM_REG_OFFSET+PWM_REG_SPACE*i); - - wram = (unsigned int*)(addr + WRAM_OFFSET); - - /* Report number of pwm outputs to pwm_check */ - report_subtest(255-caps.npwm); - - /* Set scaler to tick every clock cycle */ - cregs->scaler = 0; - - /* Start core */ - cregs->ctrl = CTRL_EN; - - /* Test asymmetric */ - if(caps.asympwm && SUBTEST1) { - report_subtest(1); - for(i = 0; i < caps.npwm; i++) { - /* Set period, compare and dead band register */ - pregs[i]->per = 200+i; - pregs[i]->comp = 100+i; - pregs[i]->db = 9+i; - - /* Set PWM CTRL register */ - pregs[i]->ctrl = PWM_CTRL_DBEN | PWM_CTRL_PAIR | PWM_CTRL_EN | - PWM_CTRL_POL; - } - - /* Wait a while */ - for(i = 0; i < 500; i++) tmp = i; - - /* Stop PWMs */ - for(i = 0; i < caps.npwm; i++) - pregs[i]->ctrl = 0; - } - - /* Test symmetric */ - if(caps.sympwm && SUBTEST2) { - report_subtest(2); - for(i = 0; i < caps.npwm; i++) { - /* Set period, compare and dead band register */ - pregs[i]->per = 200+i*2; - pregs[i]->comp = 50+i; - pregs[i]->db = 9+i; - - /* Set PWM CTRL register */ - pregs[i]->ctrl = PWM_CTRL_DBEN | PWM_CTRL_PAIR | PWM_CTRL_EN | - PWM_CTRL_POL | PWM_CTRL_METH; - } - - /* Wait a while */ - for(i = 0; i < 500; i++) tmp = i; - - /* Stop PWMs */ - for(i = 0; i < caps.npwm; i++) - pregs[i]->ctrl = 0; - } - - if(caps.wavepwm) { - /* Fill (part of) RAM */ - for(i = 0; i <= WSTOPADDR; i++) - *(wram+i) = i+32; - - /* Read RAM and verify that data match that written */ - tmp = 1; - for(i = 0; i <= WSTOPADDR; i++) - if(*(wram+i) != (i+32)) - tmp = 0; - if(!tmp) - fail(1); - - /* Set stop address */ - cregs->wconf = WSTOPADDR; - - /* Set period and dead band register */ - pregs[caps.npwm-1]->per = 200; - pregs[caps.npwm-1]->db = 9; - - /* Configure last PWM as asymmetric waveform PWM */ - if(caps.asympwm && SUBTEST3) { - report_subtest(3); - - /* Set PWM CTRL register */ - pregs[caps.npwm-1]->ctrl = PWM_CTRL_DBEN | PWM_CTRL_PAIR | - PWM_CTRL_POL | PWM_CTRL_WEN; - pregs[caps.npwm-1]->ctrl |= PWM_CTRL_EN; - - /* Wait a while */ - for(i = 0; i < 3000; i++) tmp = i; - - /* Stop PWM */ - pregs[caps.npwm-1]->ctrl = 0; - } - - /* Configure last PWM as symmetric waveform PWM */ - if(caps.sympwm && SUBTEST4) { - report_subtest(4); - - /* Set PWM CTRL register */ - pregs[caps.npwm-1]->ctrl = PWM_CTRL_DBEN | PWM_CTRL_PAIR | - PWM_CTRL_POL | PWM_CTRL_WEN | PWM_CTRL_METH; - pregs[caps.npwm-1]->ctrl |= PWM_CTRL_EN; - - /* Wait a while */ - for(i = 0; i < 3000; i++) tmp = i; - - /* Stop PWM */ - pregs[caps.npwm-1]->ctrl = 0; - } - } - - /* STOP core */ - cregs->ctrl = 0; - - return 0; -} - diff --git a/software/leon3/grusbhc.c b/software/leon3/grusbhc.c index e9c42686..cf5f7e18 100644 --- a/software/leon3/grusbhc.c +++ b/software/leon3/grusbhc.c @@ -834,7 +834,7 @@ int uhc_test(int addr, int bedesc, int beregs) regs->usbcmdsts = cond_regswap(0x0000ffff); - if (!(get_usbsts(regs) & UHC_USBSTS_HCHALTED)) + if ((get_usbsts(regs) & UHC_USBSTS_HCHALTED)) fail(1); if (loadmem((int)&td[0].lp) != cond_bswap(TD_T,bedesc)) diff --git a/software/leon3/hpi_defs.h b/software/leon3/hpi_defs.h deleted file mode 100755 index c6fe518e..00000000 --- a/software/leon3/hpi_defs.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef HPI_DEFS_H -#define HPI_DEFS_H - -#define USHORT unsigned short -#define PUSHORT unsigned short* -#define VOID void -#define UBYTE unsigned char -#define PUBYTE unsigned char* - -#define HPI_BASE 0xfff24000 -#define HPI_CTRL 0xfff34000 - -/** local definitions **/ -#define HPI_DATA_PORT 0x0000 /* HPI Data Port */ -#define HPI_MBX_PORT 0x0001 /* HPI Mailbox Port */ -#define HPI_ADDR_PORT 0x0002 /* HPI Address Port */ -#define HPI_STAT_PORT 0x0003 /* HPI Status Port */ - -#define HPI_STAT_ADDR (HPI_STAT_PORT << 1) -#define HPI_MBX_ADDR (HPI_MBX_PORT << 1) -#define HPI_DATA_ADDR (HPI_DATA_PORT << 1) -#define HPI_ADDR_ADDR (HPI_ADDR_PORT << 1) - -#define HPI_INT_MASK (1 << 12) - -#define CY_INTMEM_BASE 0x4A4 - -typedef union { - struct { - USHORT RESERVED : 3; - USHORT INT : 1; - USHORT AtoCSlow : 2; - USHORT CStoCTRLlow : 2; - USHORT CTRLlowDvalid : 2; - USHORT CTRLlow : 2; - USHORT CTRLhighCShigh : 2; - USHORT CShighREC : 2; - }; - USHORT reg; - -} CTRL_REG; - - -#endif diff --git a/software/leon3/hpi_functions.c b/software/leon3/hpi_functions.c deleted file mode 100755 index 4e7b5b52..00000000 --- a/software/leon3/hpi_functions.c +++ /dev/null @@ -1,149 +0,0 @@ -#include "hpi_defs.h" -#include "hpi_functions.h" - - -//#define outw(a,b) WRITE_REGISTER_USHORT( (unsigned short *)b, ((unsigned short)a) ) -//#define inw(b) READ_REGISTER_USHORT( (unsigned short *)b) - -inline void kill_time(int num) { - int i; - - for(i=0; i -#include "hpi_defs.h" -#include "hpi_functions.h" - -#define SIMULATION - -#ifdef SIMULATION - -//#define printf // -#define MSIZE 32 -#define LOOPS 1 -#define START 0x0000 -#define DATA ((USHORT)~(2*i)) -//#define DATA 0xC53A//0xffff// - -#else - -#define MSIZE 512 -#define LOOPS 4 -#define START 0x0500 //0x0000 -#define DATA ((USHORT)~(2*i)) - -#endif - -int main(int argc,char *argv[], char *envp[]) -{ - - USHORT const size = (USHORT) MSIZE; - USHORT tmp, j, i, error=0; - USHORT start = (USHORT) START; - USHORT data1[size]; - - CTRL_REG * pctrl = (CTRL_REG *) HPI_CTRL; - - pctrl->RESERVED = 0; - pctrl->AtoCSlow = 1; - pctrl->CStoCTRLlow = 2; - pctrl->CTRLlowDvalid = 2; - pctrl->CTRLlow = 3; - pctrl->CTRLhighCShigh = 1; - pctrl->CShighREC = 1; - - tmp = pctrl->reg; - - printf("\n\nHPI_NEW: Test for the LEON HPI bus interface\n\n"); - printf("Writing %d words from 0x%04x to 0x%04x\n", size, start, start+(size-1)*2); - printf("AHB2HPI CTRL register: 0x%04x\n\n", tmp); - printf("Start reading and writing data\n\n"); - - for (j=0; jctrl; - if ((ctrl >> 31) == 0) { - l2c->flush_mem = 5; - l2c->ctrl = ctrl | (1<<31) | (ften << 30); - }; - - return 0; -} - -/* - * l2c_enable_wayflush(..) - * - * regaddr - L2C register base address - * - */ -int l2c_enable_wayflush(unsigned int regaddr, unsigned int ften, int nways) -{ - int i; - unsigned int ctrl; - struct l2c_regs *l2c; - - report_device(0x0104B000); - - l2c = (struct l2c_regs*)regaddr; - - report_subtest(1); - - // Flush and enable L2-Cache - ctrl = l2c->ctrl; - if ((ctrl >> 31) == 0) { - for (i = 0; i < nways; i++) - l2c->flush_dir = (i << 4) | 5; - l2c->ctrl = ctrl | (1<<31) | (ften << 30); - }; - - return 0; -} - -/* - * l2c_test(..) - * - * memaddr - Memory address - * regaddr - L2C register base address - * - */ -int l2c_test(unsigned int memaddr, unsigned int regaddr) -{ - l2c_enable(regaddr, 0); -} - diff --git a/software/leon3/l4stat.c b/software/leon3/l4stat.c deleted file mode 100644 index 05e52f48..00000000 --- a/software/leon3/l4stat.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * GRLIB system test software for L4STAT core - * - * Copyright (c) 2010 Aeroflex Gaisler - * - */ - -#include "testmod.h" - -/* Register offsets */ -#define L4STAT_VAL_REG 0x00 -#define L4STAT_CTRL_REG 0x80 - -/* Counter control register fields */ -#define L4STAT_CTRL_NCPU 28 -#define L4STAT_CTRL_NCPU_MSK 0xf -#define L4STAT_CTRL_NCNT 23 -#define L4STAT_CTRL_NCNT_MSK 0x1f -#define L4STAT_CTRL_MC (1 << 22) -#define L4STAT_CTRL_IA (1 << 21) -#define L4STAT_CTRL_DS (1 << 20) -#define L4STAT_CTRL_EE (1 << 19) -#define L4STAT_CTRL_R (1 << 18) -#define L4STAT_CTRL_EL (1 << 17) -#define L4STAT_CTRL_CD (1 << 16) -#define L4STAT_CTRL_SU 14 -#define L4STAT_CTRL_SU_MSK 0x3 -#define L4STAT_CTRL_CL (1 << 13) -#define L4STAT_CTRL_EN (1 << 12) -#define L4STAT_CTRL_ID 4 -#define L4STAT_CTRL_ID_MSK 0xff -#define L4STAT_CTRL_CPU 0 -#define L4STAT_CTRL_CPU_MSK 0xf - - -void l4stat_test(unsigned int addr) -{ - unsigned char ncnt; - volatile unsigned int *val, *ctrl; - unsigned int i, tmp; - - val = (unsigned int*)(addr + L4STAT_VAL_REG); - ctrl = (unsigned int*)(addr + L4STAT_CTRL_REG); - - report_device(0x01047000); - - *ctrl = 0; /* Initialize before reading # counters */ - ncnt = ((*ctrl >> L4STAT_CTRL_NCNT) & L4STAT_CTRL_NCPU_MSK) + 1; - - /* Loop through all counters */ - for (i = 0; i < ncnt; i++) { - report_subtest(i); - - ctrl[i] = 0; - val[i] = 0; - ctrl[i] = (L4STAT_CTRL_EL | L4STAT_CTRL_CD | - (L4STAT_CTRL_SU_MSK << L4STAT_CTRL_SU) | - (L4STAT_CTRL_ID_MSK << L4STAT_CTRL_ID) | - (L4STAT_CTRL_CPU_MSK << L4STAT_CTRL_CPU)); - tmp = ctrl[i]; - - /* Check control register fields */ - if (((tmp & (L4STAT_CTRL_EL | L4STAT_CTRL_CD)) && !(tmp & L4STAT_CTRL_MC)) || - (!(tmp & (L4STAT_CTRL_EL | L4STAT_CTRL_CD)) && (tmp & L4STAT_CTRL_MC))) - fail(0); - if (((tmp >> L4STAT_CTRL_SU) & L4STAT_CTRL_SU_MSK) != L4STAT_CTRL_SU_MSK) - fail(1); - if (tmp & L4STAT_CTRL_CL) fail(2); - if (tmp & L4STAT_CTRL_EN) fail(3); - if (((tmp & (L4STAT_CTRL_DS | L4STAT_CTRL_EE)) && - (((tmp >> L4STAT_CTRL_ID) & L4STAT_CTRL_ID_MSK) != 0x7f)) || - (!(tmp & (L4STAT_CTRL_DS | L4STAT_CTRL_EE)) && - (((tmp >> L4STAT_CTRL_ID) & L4STAT_CTRL_ID_MSK) != 0x3f))) - fail(4); - if (((tmp >> L4STAT_CTRL_CPU) & L4STAT_CTRL_CPU_MSK) != L4STAT_CTRL_CPU_MSK) - fail(5); - - /* Check value register */ - if (val[i]) fail(6); - val[i] = 0xa5a5a5a5; - if (val[i] != 0xa5a5a5a5) fail(7); - val[i] = 0x5a5a5a5a; - if (val[i] != 0x5a5a5a5a) fail(8); - val[i] = 0; - - /* Count total instructions on CPU 0*/ - ctrl[i] = L4STAT_CTRL_EN | (0x11 << L4STAT_CTRL_ID); - if (!(ctrl[i] & L4STAT_CTRL_EN)) fail(9); - if (!val[i]) fail(10); - - /* Test clear on read */ - ctrl[i] |= L4STAT_CTRL_CL; - if (!val[i] || !val[i]) fail(11); - ctrl[i] &= ~L4STAT_CTRL_EN; - if (val[i] && val[i]) fail(12); - - ctrl[i] = 0; - } -} - diff --git a/software/leon3/leon4_test.c b/software/leon3/leon4_test.c deleted file mode 100644 index 526629c3..00000000 --- a/software/leon3/leon4_test.c +++ /dev/null @@ -1,25 +0,0 @@ - -#include "testmod.h" - -//void (*mpfunc[16])(int index); - -leon4_test(int domp, volatile int *irqmp, int mtest) -{ - int tmp, i; - - if (!get_pid()) report_device(0x01048000); - if (domp) mptest_start(irqmp); - report_subtest(REGFILE+(get_pid()<<4)); - if (regtest()) fail(1); - report_subtest(CASA_TEST+(get_pid()<<4)); - casa_test(); - multest(); - divtest(); - fputest(); - if (mtest) cramtest(); - if ((*mpfunc[get_pid()])) mpfunc[get_pid()](get_pid()); - if (domp) mptest_end(irqmp); - grfpu_test(); - cachetest(); - mmu_test(); -} diff --git a/software/leon3/memscrub_test.c b/software/leon3/memscrub_test.c deleted file mode 100644 index 179b11d5..00000000 --- a/software/leon3/memscrub_test.c +++ /dev/null @@ -1,74 +0,0 @@ -#include "testmod.h" - -struct memscrub_regs { - volatile unsigned long ahbstat; - volatile unsigned long ahbaddr; - volatile unsigned long ahberrconf; - volatile unsigned long res; - volatile unsigned long scrubstat; - volatile unsigned long scrubconf; - volatile unsigned long scrublowaddr; - volatile unsigned long scrubhighaddr; - volatile unsigned long scrubpos; - volatile unsigned long scruberrthres; - volatile unsigned long scrubinit; -}; - - -static unsigned long dbuf[64]; -static const unsigned long initdata[] = { 0x01234567, 0x89ABCDEF, 0x00112233, 0x44556677, - 0x8899AABB, 0xCCDDEEFF, 0x00011122, 0x23334445, - 0x55666777, 0x888999AA, 0xABBBCCCD, 0xDDEEEFFF, - 0x00001111, 0x22223333, 0x44445555, 0x66667777 }; - - -void memscrub_irqhandler(int irq) -{ - /* Do nothing */ - return; -} - - -/* addr: Base address of memscrub registers - * hirq: IRQ # of scrubber - */ - -void memscrub_test(unsigned long addr, int hirq) -{ - int bmask,blen,i; - struct memscrub_regs *r = (struct memscrub_regs *)addr; - unsigned long s,e; - - report_device(0x01057000); - - catch_interrupt(memscrub_irqhandler, hirq); - - /* Detect burst length */ - r->scrubhighaddr = 0; - bmask = r->scrubhighaddr; - blen = (bmask+1) >> 2; - - for (i=0; iscrubinit = initdata[i]; - - /* Realign start/end of dbuf to block boundary */ - s = (unsigned long)dbuf; - s = (s+bmask) & (~bmask); - e = s + (blen<<2) + (blen<<3) - 1; /* Three full bursts */ - - r->scrublowaddr = s; - r->scrubhighaddr = e; - - /* Initialize dbuf */ - r->scrubconf = 0x00000009; - - /* Wait until init done */ - while ((r->scrubstat & 1) != 0) { __asm__ volatile ("nop\n\t" "nop\n\t" "nop\n\t"); } - - /* Verify buffer contents */ - for (; s -#define MAXSIZE 1024 - -struct spwregs -{ - volatile int ctrl; - volatile int status; - volatile int nodeaddr; - volatile int clkdiv; - volatile int destkey; - volatile int time; - volatile int unused[2]; - volatile int dmactrl; - volatile int rxmaxlen; - volatile int txdesc; - volatile int rxdesc; -}; - -static int snoopen; - -static char *almalloc(int sz) -{ - char *tmp; - tmp = (char *) malloc(2*sz); - tmp = (char *) (((int)tmp+sz) & ~(sz -1)); - return(tmp); -} - -static inline int loadmem(int addr) -{ - int tmp; - if (snoopen) { - asm volatile (" ld [%1], %0 " - : "=r"(tmp) - : "r"(addr) - ); - } else { - asm volatile (" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - } - return tmp; -} - -static inline char loadb(int addr) -{ - char tmp; - if (snoopen) { - asm volatile (" ldub [%1], %0 " - : "=r"(tmp) - : "r"(addr) - ); - } else { - asm volatile (" lduba [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - } - return tmp; -} - - -int routertest(int addr, int addrinc, int ambaports, int spwports, int fifoports) -{ - int i; - int j; - int k; - int *tmp; - int *size; - - volatile char *buf; - volatile int *rxd[ambaports]; - volatile int *txd[ambaports]; - volatile char *hdr[ambaports]; - - struct spwregs *regs[ambaports]; - - report_device(0x0108B000); - snoopen = rsysreg(0) & (1 << 23); - - if (snoopen) report_subtest(SPW_SNOOP_TEST); - else report_subtest(SPW_NOSNOOP_TEST); - - buf = (char *) malloc(MAXSIZE); - - for (i = 0; i < ambaports; i++) { - regs[i] = (struct spwregs *) (addr + addrinc*i); - rxd[i] = (int *) almalloc(1024); - txd[i] = (int *) almalloc(1024); - hdr[i] = malloc(2); - } - - - /*initiate registers*/ - for (i = 0; i < ambaports; i++) { - regs[i]->ctrl = 0x2; - regs[i]->status = 0xFFFFFFFF; - regs[i]->nodeaddr = 0xFE; - regs[i]->clkdiv = 0; - regs[i]->destkey = 0; - regs[i]->time = 0; - regs[i]->dmactrl = 0x01E0; - regs[i]->rxmaxlen = MAXSIZE+1; - regs[i]->txdesc = (int) txd[i]; - regs[i]->rxdesc = (int) rxd[i]; - } - - for (i = 0; i < ambaports; i++) { - for (j = 0; j < 64; j++) { - txd[i][j*4] = 0x1002; - txd[i][j*4+1] = (int)hdr[i]; - txd[i][j*4+2] = MAXSIZE; - txd[i][j*4+3] = (int)buf; - - rxd[i][j*2] = 0x2000000; - rxd[i][j*2+1] = (int)buf; - } - rxd[i][65*2] = 0; - hdr[i][0] = spwports+ambaports-i; - hdr[i][1] = 0xFE; - } - - for (i = 0; i < ambaports; i++) { - regs[i]->dmactrl = 0x19E3; - } - - /* for (i = 0; i < ambaports; i++) { */ -/* while((((loadmem((int)®s[i]->dmactrl) >> 11) & 1))) {} */ -/* } */ - - return 0; -} diff --git a/software/leon3/rt_1553.c b/software/leon3/rt_1553.c deleted file mode 100644 index dc18cb53..00000000 --- a/software/leon3/rt_1553.c +++ /dev/null @@ -1,157 +0,0 @@ -#include - -extern void *catch_interrupt(void func(), int irq); -volatile int *lreg_rt = (int *) 0x80000000; - -#define ICLEAR 0x20c -#define IMASK 0x240 -#define IFORCE 0x208 - -volatile unsigned short *rtmem; -volatile int rt_done; - -unsigned int logbuf[1024]; -unsigned int log_i=0; - -enable_irq_rt (int irq) -{ - lreg_rt[ICLEAR/4] = (1 << irq); - lreg_rt[IMASK/4] |= (1 << irq); -} -disable_irq_rt (int irq) { lreg_rt[IMASK/4] &= ~(1 << irq); } -force_irq_rt (int irq) { lreg_rt[IFORCE/4] = (1 << irq); } - -void irqhandler_rt(volatile unsigned int* rt_intvect, int irq) -{ - - int i, tmp, intvect, rx, suba, tsw, cmdval; - - if (irq == 13) { - - tmp = *rt_intvect; - - intvect = tmp & 0x7f; - cmdval = tmp >> 7; - - if (intvect & 0x40) { - - rx = !((intvect >> 5) & 1); - suba = intvect & 0x1f; - tsw = rtmem[suba]; - - logbuf[(log_i++)%1024] = intvect; - logbuf[(log_i++)%1024] = cmdval; - logbuf[(log_i++)%1024] = 32+(suba-1)*32; - logbuf[(log_i++)%1024] = 1056+(suba-1)*32; - - if (rx) { - /* Put the received words in the tx subaddress */ - if ((cmdval & 0x1f) == 0){ - for (i = 0; i < 32; i++) { - rtmem[1056+(suba-1)*32+i] = rtmem[32+(suba-1)*32+i]; - } - }else{ - for (i = 0; i < (cmdval & 0x1f); i++) { - rtmem[1056+(suba-1)*32+i] = rtmem[32+(suba-1)*32+i]; - } - } - } - - } - else { - puts("Bad block received!"); - } - - - lreg_rt[ICLEAR/4] = (1 << irq); - } -} - -error_rt(char *message, int *count) { - //puts(message); - *count++; - return; -} - -void sync(volatile unsigned int* gpio, int gpio_sync, int gpio_ack){ - *(gpio+1) = *(gpio+1)|(1< -#include "testmod.h" - -volatile unsigned char *oc_reg; - -#define MOD 0 -#define CMR 1 -#define SR 2 -#define IR 3 -#define IER 4 -#define RES 5 -#define BTR0 6 -#define BTR1 7 -#define OCR 8 -#define TST 9 -#define RES2 10 -#define ALC 11 -#define ECC 12 -#define EWL 13 -#define RXERR 14 -#define TXERR 15 -#define FI 16 -#define ID1 17 -#define ID2 18 -#define EFF_ID3 19 -#define EFF_ID4 20 -#define SFF_D1 19 -#define SFF_D2 20 -#define SFF_D3 21 -#define SFF_D4 22 -#define SFF_D5 23 -#define SFF_D6 24 -#define SFF_D7 25 -#define SFF_D8 26 -#define EFF_D1 21 -#define EFF_D2 22 -#define EFF_D3 23 -#define EFF_D4 24 -#define EFF_D5 25 -#define EFF_D6 26 -#define EFF_D7 27 -#define EFF_D8 28 -#define ACR0 16 -#define ACR1 17 -#define ACR2 18 -#define ACR3 19 -#define AMR0 20 -#define AMR1 21 -#define AMR2 22 -#define AMR3 23 -#define NMSG_FIFO 27 -#define NMSG_FIFO2 28 -#define RMC 29 -#define RBSA 30 -#define CDR 31 -#define RXFIFO_START 32 -#define TXBUF_START 96 - -/* define register bitmasks */ -#define MOD_RM 0x1 -#define MOD_LOM 0x2 -#define MOD_STM 0x4 -#define MOD_AFM 0x8 - -#define CMR_TR 0x1 -#define CMR_AT 0x2 -#define CMR_RRB 0x4 -#define CMR_CDO 0x8 -#define CMR_SRR 0x10 - -#define SR_RBS 0x1 -#define SR_DOS 0x2 -#define SR_TBS 0x4 -#define SR_TCS 0x8 -#define SR_RS 0x10 -#define SR_TS 0x20 -#define SR_ES 0x40 -#define SR_BS 0x80 - -void reset_mode(void) { - oc_reg[MOD] |= MOD_RM; - - while ( (oc_reg[MOD] & MOD_RM) != MOD_RM ) - {} - -} - -void operating_mode(void) { - oc_reg[MOD] &= ~MOD_RM; - - while ( (oc_reg[MOD] & MOD_RM) != 0 ) - {} -} - -void can_filter(int mode, unsigned char *acr, unsigned char *amr) { - - int i; - - if (mode) - oc_reg[MOD] |= MOD_AFM; - else - oc_reg[MOD] &= ~MOD_AFM; - - for (i = 0; i < 4; i++) { - oc_reg[ACR0+i] = acr[i]; - oc_reg[AMR0+i] = amr[i]; - } - -} - -void can_send_eff(int id, int rtr, int dlc, unsigned char *data) { - - int i; - - /* wait until current tx buffer is released */ - while ((oc_reg[SR] & SR_TBS) == 0) - {} - - oc_reg[FI] = (1<<7) | ((rtr&1)<<6) | (dlc&0xF); - - oc_reg[ID1] = (id>>21)&0xFF; - oc_reg[ID2] = (id>>13)&0xFF; - oc_reg[EFF_ID3] = (id>>5)&0xFF; - oc_reg[EFF_ID4] = (id&0x1F)<<3; - - for (i = 0; i < dlc && i < 8; i++) - oc_reg[EFF_D1+i] = data[i]; - - /* request transmit */ - oc_reg[CMR] = CMR_TR; - -} - -int can_tx_complete(void) { - return oc_reg[SR] & SR_TCS; -} - -int can_read_eff(int *id, int *rtr, unsigned char *data) { - - int dlc=-1, i, ff; - - /* wait for incoming data */ - while (!(oc_reg[SR] & SR_RBS)) - { - } - - ff = (oc_reg[FI]>>7)&1; - - if (ff == 1) { - - *rtr = (oc_reg[FI]>>6)&1; - dlc = oc_reg[FI]&0xF; - - *id = (oc_reg[ID1]<<21) | (oc_reg[ID2]<<13) | (oc_reg[EFF_ID3]<<5) | ((oc_reg[EFF_ID4]>>3)&0x1F); - - if ( ((oc_reg[EFF_ID4]>>2)&1) != *rtr ) { - puts("can_read(eff): rtr mismatch"); - } - - for (i = 0; i < dlc && data != NULL && i < 8; i++) - data[i] = oc_reg[EFF_D1+i]; - } - - oc_reg[CMR] = CMR_RRB; - - return dlc; - -} - -void can_init(int fmode, unsigned char *acr, unsigned char *amr) { - - reset_mode(); - oc_reg[MOD] = 0x1; - - /* set extended can mode */ - oc_reg[CDR] = 0x80; - -/* /\* set 1 Mbps bit rate (if freq 40 MHz) *\/ */ -/* oc_reg[BTR0] = 0x81; /\* Sync jump width 2, BRP = 1 *\/ */ -/* oc_reg[BTR1] = 0x25; /\* Single sampling, TSEG1 = 5, TSEG2 = 2 *\/ */ - - /* set 1 Mbps bit rate (if freq 48 MHz) */ - oc_reg[BTR0] = 0x01; - oc_reg[BTR1] = 0x27; - can_filter(fmode, acr, amr); - - operating_mode(); - - oc_reg[IER] = 0xFF; - -} - - -#define DATA 16*1024 - -#define INT_EN 1 -#define FIFO 3 -#define CMD0 6 -#define CMD1 7 -#define START_CTC 8 -#define STOP_CTC 10 -#define RAM_BASE 9 -#define DPS_ACT 10 -#define PLL_RST 11 -#define PLL_CMD 12 -#define PLL_STAT 13 -#define PLL_OFF 14 -#define DMA 15 -#define DMA_TX_1_CUR 16 -#define DMA_TX_1_END 17 -#define DMA_TX_2_CUR 18 -#define DMA_TX_2_END 19 -#define RX 20 -#define FILTER_SETUP 21 -#define FILTER_START 20 -#define FILTER_STOP 21 - -struct satcan_regs { - - volatile unsigned int satcan[32]; - volatile unsigned int ctrl; /* 0x80 */ - volatile unsigned int irqpend; /* 0x84 */ - volatile unsigned int irqmask; /* 0x88 */ - volatile unsigned int membase; /* 0x8C */ - volatile unsigned int unused[12]; /* 0x90-0xBC */ - volatile unsigned int timer1[4]; /* 0xC0 - 0xCC */ - volatile unsigned int timer2[4]; /* 0xD0 - 0xDC */ - volatile unsigned int timer3[4]; /* 0xE0 - 0xEC */ - volatile unsigned int timer4[4]; /* 0xF0 - 0xFC */ -}; - -struct satcan_regs *r; - -struct irq_reg { - volatile unsigned int level; - volatile unsigned int pending; - volatile unsigned int force; - volatile unsigned int clear; - volatile unsigned int mpstat; - volatile unsigned int dummy[11]; - volatile unsigned int mask; -}; - -struct irq_reg *irq = (struct irq_reg *) 0x80000200; - -volatile unsigned char *mem; -volatile int oc_irq_done; -volatile int sc_irq_done; - -volatile unsigned int irq_oc=0, irq_sc=0, s=0, d=0; - -extern void *catch_interrupt(void func(), int irq); - -enable_irq (int irqn) -{ - irq->clear = (1 << irqn); // clear any pending irq - irq->mask |= (1 << irqn); // unmask irq -} - -disable_irq (int irqn) { - irq->mask &= ~(1 << irqn); // mask irq -} - -force_irq (int irqn) { - irq->force = (1 << irqn); // force irq -} - -void sc_irq_handler(int irqn) -{ - int i; - unsigned int *p; - - irq_sc++; - i = r->satcan[FIFO]; - p = (unsigned int *) &mem[(0x80+i)*8]; - i = r->irqpend; - sc_irq_done = 1; -} - -void oc_irq_handler(int irqn) -{ - int i, dlc, id, rtr; - unsigned int *p; - unsigned char data[8]; - - i = oc_reg[IR]; - if (i) { - if (i & 1) { - - dlc = can_read_eff(&id, &rtr, data); - - if (id == 0x20) s++; - else if (id == 0x40) { - d++; - for (i=0; i < dlc; i++) { - if (data[i] != (i+1)) - printf("%d, %hhx\n", i, data[i]); - } - oc_irq_done = 1; - } - memset(data, 0, 8); - dlc = 0; - id = 0; - - irq_oc++; - - } - else { - } - - } -} - -satcan_test(unsigned int sc_addr, int sc_irq, unsigned int oc_addr, int oc_irq, unsigned int mux_addr, unsigned int bus) -{ - unsigned char acr_eff[4] = {0x00, 0x00, 0x00, 0x00}; - unsigned char amr_eff[4] = {0xff, 0xff, 0xff, 0xff}; - - unsigned long long val; - - oc_reg = (volatile unsigned char *) oc_addr; - r = (struct satcan_regs *) sc_addr; - - report_device(0x01080000); - - volatile unsigned int *can_mux = (unsigned int *) mux_addr; - - if (bus == 0) - *can_mux = 2; /* SatCAN on bus A, OC-CAN2 on bus B */ - else - *can_mux = 1; /* SatCAN on bus B, OC-CAN1 on bus A */ - - oc_reg[CDR] = 0x80; - can_init(1, acr_eff, amr_eff); - - mem = (unsigned char *) memalign(128*1024, 128*1024); - - r->ctrl |= 1; - - while (r->ctrl & 1) {}; - - r->satcan[PLL_RST] = 01; /* Reset pll */ - - r->satcan[PLL_CMD] = 01; /* Sync on PPS */ - r->satcan[CMD1] = 0x31; /* Enable sync pulse and sync message */ - r->satcan[START_CTC] = 1; /* Start cycle time counter */ - - irq->level = 0; - catch_interrupt(sc_irq_handler, sc_irq); - enable_irq(sc_irq); - catch_interrupt(oc_irq_handler, oc_irq); - enable_irq(oc_irq); - - s = d = irq_sc = irq_oc = 0; - - r->membase = (unsigned int) mem; - r->satcan[RAM_BASE] = (unsigned int)mem>>15; - r->irqmask = 0x0001; - r->satcan[INT_EN] = 1 << 22; /* Enable EOD1 irq */ - r->satcan[CMD0] |= 0x20; /* select can_int as irq source */ - r->satcan[RX] = 1; /* CAN RX enable */ - - - /* Enable override */ - mem[0] = 0xE0; - mem[1] = 0; - mem[2] = 0x81; - mem[3] = 0xFF; - mem[DATA] = 15; - - if (bus == 0) { - /* Enable CAN A */ - mem[8] = 0xE0; - mem[9] = 0; - mem[10] = 0x81; - mem[11] = 0xFF; - mem[DATA+8] = 4; - } - else { - /* Enable CAN B */ - mem[8] = 0xE0; - mem[9] = 0; - mem[10] = 0x81; - mem[11] = 0xFF; - mem[DATA+8] = 5; - } - - /* Enable TX */ - mem[16] = 0xE0; - mem[17] = 0; - mem[18] = 0x81; - mem[19] = 0xFF; - mem[DATA+16] = 6; - - sc_irq_done = 0; - - r->satcan[DMA_TX_1_CUR] = 0; - r->satcan[DMA_TX_1_END] = 3<<3; - r->satcan[DMA] = 3; /* enable dma */ - - while (!sc_irq_done) { - }; - sc_irq_done = 0; - - while (s < 3) { /* Run until 3 sync messages (300 ms) have been received */ - - r->satcan[DMA] = 0; /* disable dma */ - - mem[0] = 0x40; - mem[1] = 0; - mem[2] = 0x80 | 8; - mem[3] = 0; - - mem[DATA+0] = 1; - mem[DATA+1] = 2; - mem[DATA+2] = 3; - mem[DATA+3] = 4; - mem[DATA+4] = 5; - mem[DATA+5] = 6; - mem[DATA+6] = 7; - mem[DATA+7] = 8; - - oc_irq_done = 0; - - r->satcan[DMA_TX_1_CUR] = 0; - r->satcan[DMA_TX_1_END] = 1<<3; - r->satcan[DMA] = 3; /* Start DMA */ - - while (oc_irq_done == 0) { - }; - - } - - r->satcan[DMA] = 0; /* disable dma */ -} diff --git a/software/leon3/spictrl.c b/software/leon3/spictrl.c index aabb7277..3d34e48c 100644 --- a/software/leon3/spictrl.c +++ b/software/leon3/spictrl.c @@ -33,6 +33,7 @@ */ #include "testmod.h" +#include "irqmp.h" /* Register offsets */ #define SPIC_CAP_OFF 0x00 @@ -222,6 +223,76 @@ int spictrl_extdev_test(int addr) return 0; } +static volatile int spictrl_irq = 0; + +static spictrl_irqhandler(int irq) +{ + spictrl_irq += 1; +} + + +/* + * spictrl_irqtest(int addr, int irq) + * + * Checks SPICTRL interrupt line by asserting NE interrupt + * + * (currently not called as part of spictrl_test, should be + * called directly after in case this test is used since + * "report_subtest" is called without other initialisation). + */ +int spictrl_irqtest(int addr, int irq) +{ + volatile unsigned int *capreg; + struct spictrlregs *regs; + volatile unsigned int tmp; + + capreg = (int*)addr; + regs = (struct spictrlregs*)(addr + SPIC_MODE_OFF); + + report_subtest(5); + + if (irqmp_base) { + init_irqmp(irqmp_base); + irqmp_base->irqmask = 1 << irq; /* unmask interrupt */ + } else { + fail(1); + } + + catch_interrupt(spictrl_irqhandler, irq); + + if (regs->event != EVENT_RESVAL) + fail(2); + + regs->mode = (SPIC_LOOP | SPIC_MS | SPIC_EN | (3 << SPIC_LEN)); + + regs->mask = SPIC_NE; + + if (spictrl_irq) + fail(3); + + regs->td = 0; + + while(regs->event & SPIC_TIP) + ; + + if (!(regs->event & SPIC_NE)) + fail(4); + + tmp = regs->rd; + + if (regs->event & SPIC_NE) + fail(5); + + if (spictrl_irq != 1) + fail(6); + + regs->mask = 0; + + regs->mode = 0; + + return 0; +} + /* * spictrl_test(int addr, int testsel) * diff --git a/software/leon3/spwrouter.c b/software/leon3/spwrouter.c deleted file mode 100644 index 5101b976..00000000 --- a/software/leon3/spwrouter.c +++ /dev/null @@ -1,453 +0,0 @@ -/* To run this test the router has to have at least one AMBA port and all - spw and fifo ports have to be placed in loopback in the testbench */ - -#include "testmod.h" -#include - -struct spwregs -{ - volatile int ctrl; - volatile int status; - volatile int nodeaddr; - volatile int clkdiv; - volatile int destkey; - volatile int time; - volatile int unused[2]; - volatile int dmactrl; - volatile int rxmaxlen; - volatile int txdesc; - volatile int rxdesc; -}; - -struct rtrcfgregs -{ - volatile int portsetup[256]; - volatile int routingtable[256]; - volatile int portcontrol[32]; - volatile int portstatus[32]; - volatile int reload[32]; - volatile int unused[32]; - volatile int rtrcfg; - volatile int timecode; - volatile int verinstid; - volatile int initdivisor; - volatile int cfgwen; - volatile int charout[32]; - volatile int charin[32]; - volatile int pktout[32]; - volatile int pktin[32]; -}; - - -static int snoopen; - -static char *almalloc(int sz) -{ - char *tmp; - tmp = (char *) malloc(2*sz); - tmp = (char *) (((int)tmp+sz) & ~(sz -1)); - return(tmp); -} - -static inline int loadmem(int addr) -{ - int tmp; - if (snoopen) { - asm volatile (" ld [%1], %0 " - : "=r"(tmp) - : "r"(addr) - ); - } else { - asm volatile (" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - } - return tmp; -} - -static inline char loadb(int addr) -{ - char tmp; - if (snoopen) { - asm volatile (" ldub [%1], %0 " - : "=r"(tmp) - : "r"(addr) - ); - } else { - asm volatile (" lduba [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - } - return tmp; -} - -int spwrouter_test_udel(int ahbslv, int ahbslvaddr, int nbrofdma, int *dmaaddr, int udel) -{ - int i; - int j; - int k; - int l; - int rmapaddr; - int tmp; - int tmp2; - int *tmp3; - int *size; - int nbrofspw; - int nbroffifo; - - volatile char **rx; - volatile char **tx; - volatile char *rmap; - volatile char *rmaphdr; - volatile int **rxd; - volatile int **txd; - - struct spwregs *regs[nbrofdma]; - struct rtrcfgregs *cfgregs; - - report_device(0x0108B000); - snoopen = rsysreg(0) & (1 << 23); - - if (snoopen) report_subtest(SPW_SNOOP_TEST); - else report_subtest(SPW_NOSNOOP_TEST); - - for (i = 0; i < nbrofdma; i++) { - regs[i] = (struct spwregs *)dmaaddr[i]; - } - - /* test a few accesses to the configuration area through - the ahb slave interface */ - if (ahbslv == 1) { - cfgregs = (struct rtrcfgregs *)ahbslvaddr; - /* Check router configuration and status register*/ - tmp = loadmem((int)&cfgregs->rtrcfg); - if (((tmp >> 22) & 0x1F) != nbrofdma) { - fail(1); - } - nbrofspw = (tmp >> 27) & 0x1F; - nbroffifo = (tmp >> 17) & 0x1F; - /* Port setup */ - cfgregs->portsetup[1] = 1; - tmp = loadmem((int)&cfgregs->portsetup[1]); - if (tmp != 1) { - fail(2); - } - cfgregs->portsetup[1] = 0; - tmp = loadmem((int)&cfgregs->portsetup[1]); - if (tmp != 0) { - fail(3); - } - cfgregs->portsetup[127] = 1; - tmp = loadmem((int)&cfgregs->portsetup[127]); - if (tmp != 1) { - fail(4); - } - cfgregs->portsetup[127] = 0; - tmp = loadmem((int)&cfgregs->portsetup[127]); - if (tmp != 0) { - fail(5); - } - cfgregs->portsetup[255] = 1; - tmp = loadmem((int)&cfgregs->portsetup[255]); - if (tmp != 1) { - fail(6); - } - cfgregs->portsetup[255] = 0; - tmp = loadmem((int)&cfgregs->portsetup[255]); - if (tmp != 0) { - fail(7); - } - /* Routing table */ - cfgregs->routingtable[1] = 1; - tmp = loadmem((int)&cfgregs->routingtable[1]); - if (tmp != 1) { - fail(8); - } - cfgregs->routingtable[1] = 0; - tmp = loadmem((int)&cfgregs->routingtable[1]); - if (tmp != 0) { - fail(9); - } - cfgregs->routingtable[127] = 1; - tmp = loadmem((int)&cfgregs->routingtable[127]); - if (tmp != 1) { - fail(10); - } - cfgregs->routingtable[127] = 0; - tmp = loadmem((int)&cfgregs->routingtable[127]); - if (tmp != 0) { - fail(11); - } - cfgregs->routingtable[255] = 1; - tmp = loadmem((int)&cfgregs->routingtable[255]); - if (tmp != 1) { - fail(12); - } - cfgregs->routingtable[255] = 0; - tmp = loadmem((int)&cfgregs->routingtable[255]); - if (tmp != 0) { - fail(13); - } - /* initdivisor */ - tmp = loadmem((int)&cfgregs->initdivisor); - - /* Port control/status */ - for (i = 1; i <= nbrofspw+nbrofdma+nbroffifo; i++) { - if (i <= nbrofspw) { - tmp2 = loadmem((int)&cfgregs->portcontrol[i]); - if (tmp != ((tmp2 >> 24) & 0xFF)) { - fail(14); - } - } - tmp2 = loadmem((int)&cfgregs->portstatus[i]); - if (i <= nbrofspw) { - if (((tmp2 >> 30) & 3) != 0) { - fail(15); - } - } else if (i <= nbrofspw+nbrofdma) { - if (((tmp2 >> 30) & 3) != 1) { - fail(16); - } - } else if (i <= nbrofspw+nbrofdma+nbroffifo) { - if (((tmp2 >> 30) & 3) != 2) { - fail(17); - } - } - } - } - - rmaphdr = malloc(8); - rmap = malloc(64); - rxd = malloc(nbrofdma*sizeof(int **)); - txd = malloc(nbrofdma*sizeof(int **)); - rx = malloc((nbrofspw+nbroffifo)*sizeof(char **)); - tx = malloc((nbrofspw+nbroffifo)*sizeof(char **)); - size = (int *) malloc(sizeof(int)); - for (i = 0; i < nbrofdma; i++) { - rxd[i] = (int *) almalloc(1024); - txd[i] = (int *) almalloc(1024); - } - - for (i = 0; i < nbrofspw+nbroffifo; i++) { - rx[i] = malloc(32); - tx[i] = malloc(32); - } - - /*reset link */ - for (i = 0; i < nbrofdma; i++) { - regs[i]->ctrl = (1 << 6); - for (j = 0; j < 10; j++) {} - - regs[i]->status = 0xFFFFFFFF; - regs[i]->nodeaddr = i+1; - regs[i]->destkey = 0; - regs[i]->time = 0; - regs[i]->dmactrl = 0x01E0; - regs[i]->rxmaxlen = 1024; - regs[i]->txdesc = (int) txd[i]; - regs[i]->rxdesc = (int) rxd[i]; - } - - /* enable spacewire links */ - for (i = 1; i <= nbrofspw; i++) { - tmp = loadmem((int)&cfgregs->portcontrol[i]); - cfgregs->portcontrol[i] = ((tmp & 0xFFFFFFF8) | 2); - } - - for (i = 1; i <= nbrofspw; i++) { - while(((loadmem((int)&cfgregs->portstatus[i]) >> 12) & 7) != 5) {} - } - - /* initialize buffers */ - for (j = 0; j < nbrofdma; j++) { - for (i = 0; i < 32; i++) { - rx[j][i] = 0; - } - for (i = 0; i < 32; i++) { - tx[j][i] = 0; - } - for (i = 0; i < 32; i++) { - rmap[i] = 0; - } - for (i = 0; i < 32; i++) { - rmaphdr[i] = 0; - } - for (i = 0; i < 4*(nbrofspw+nbroffifo); i++) { - txd[j][i] = 0; - } - for (i = 0; i < 4*(nbrofspw+nbroffifo); i++) { - rxd[j][i] = 0; - } - } - - /* use amba ports to transfer packet through all ports */ - j = 0; l = 0; - for (i = 1; i <= nbrofspw+nbroffifo; i++) { - for(k = 3; k < 32; k++) { - tx[i-1][k] = (char) (k+i*4); - } - tx[i-1][0] = (char) i; - tx[i-1][1] = (char) nbrofspw+j+1; - tx[i-1][2] = (char) j+1; - - rxd[j][1+l*2] = (int) rx[i-1]; - rxd[j][0+l*2] = (1 << 25); - - txd[j][3+l*4] = (int)tx[i-1]; - txd[j][2+l*4] = 32; - txd[j][1+l*4] = 0; - txd[j][0+l*4] = (1 << 12); - - if (j < nbrofdma-1) { - j++; - } else { - j = 0; l++; - } - } - - for (i = 0; i < nbrofdma; i++) { - regs[i]->dmactrl = 0x19E3; - } - - j = 0; l = 0; - for (i = 1; i <= nbrofspw+nbroffifo; i++) { - while((loadmem((int)&rxd[j][0+l*2]) >> 25) & 1) {} - if (!((loadmem((int)®s[j]->dmactrl) >> 6) & 1)) { - fail(18); - } - if (!((loadmem((int)®s[j]->dmactrl) >> 5) & 1)) { - fail(19); - } - if ((loadmem((int)®s[j]->dmactrl) & 1)) { - fail(20); - } - for(k = 0; k < 30; k++) { - if (loadb((int)&rx[i-1][k]) != tx[i-1][k+2]) { - fail(21); - } - } - if (j < nbrofdma-1) { - j++; - } else { - j = 0; l++; - } - } - - /*Enable self-addressing*/ - tmp = loadmem((int)&cfgregs->rtrcfg); - cfgregs->rtrcfg = tmp | (1 << 4); - - /*check rmap target in AMBA ports*/ - rmapaddr = (int) rmap; - for (j = 0; j < nbrofdma; j++) { - if ((loadmem((int)®s[j]->ctrl) >> 31) & 1) { - report_subtest(SPW_RMAP_TEST); - regs[j]->ctrl = loadmem((int)®s[j]->ctrl) | (1 << 16); - rmaphdr[0] = nbrofspw+j+1; - rmaphdr[1] = j+1; - rmaphdr[2] = 1; - rmaphdr[3] = 0x6D; - rmaphdr[4] = 0; - rmaphdr[5] = 0; - rmaphdr[6] = 0; - rmaphdr[7] = 0; - rmaphdr[8] = nbrofspw+j+1; - rmaphdr[9] = j+1; - rmaphdr[10] = 0; - rmaphdr[11] = 0; - rmaphdr[12] = 0; - rmaphdr[13] = (rmapaddr >> 24) & 0xFF; - rmaphdr[14] = (rmapaddr >> 16) & 0xFF; - rmaphdr[15] = (rmapaddr >> 8) & 0xFF; - rmaphdr[16] = rmapaddr & 0xFF; - rmaphdr[17] = 0; - rmaphdr[18] = 0; - rmaphdr[19] = 64; - - for (k = 0; k < 64; k++) { - tx[j][k] = k; - } - - rxd[j][1+l*2] = (int)rx[j]; - rxd[j][0+l*2] = (1 << 26) | (1 << 25); - - txd[j][3+l*4] = (int) tx[j]; - txd[j][2+l*4] = 64; - txd[j][1+l*4] = (int) rmaphdr; - txd[j][0+l*4] = (1 << 13) | (1 << 12) | 20 | (1 << 16) | (1 << 17) | (1 << 8); - regs[j]->dmactrl = 0x19E3; - - while((loadmem((int)&rxd[j][0+l*2]) >> 25) & 1) {} - - for(k = 0; k < 64; k++) { - if (loadb((int)&rmap[k]) != tx[j][k]) { - fail(22); - } - } - - rmaphdr[0] = j+1; - rmaphdr[1] = 1; - rmaphdr[2] = 0x2D; - rmaphdr[3] = 0; - rmaphdr[4] = j+1; - rmaphdr[5] = 0; - rmaphdr[6] = 0; - - if ((loadmem((int)&rxd[j][0+l*2]) & 0x1FFFFFF) != 8) { - fail(23); - } - - for(k = 0; k < 7; k++) { - if (loadb((int)&rx[j][k]) != rmaphdr[k]) { - fail(24); - } - } - } - } - - - /*check time interface*/ - report_subtest(SPW_TIME_TEST); - for (j = 0; j < nbrofdma; j++) { - regs[j]->ctrl = loadmem((int)®s[j]->ctrl) | (1 << 11) | (1 << 10); - for (i = 0; i < nbrofdma; i++) { - regs[i]->time = 0; - } - } - - cfgregs->timecode = (3 << 8); - - for (j = 0; j < nbrofdma; j++) { - /* for (i = 0; i < nbrofdma; i++) { */ - /* regs[i]->time = 0; */ - /* } */ - /* cfgregs->timecode = (3 << 8); */ - - regs[j]->ctrl = loadmem((int)®s[j]->ctrl) | (1 << 4); - while((loadmem((int)®s[j]->ctrl) >> 4) & 1) {} - - for (i = 0; i < nbrofdma; i++) { - if (!(loadmem((int)®s[i]->status) & 1)) { - fail(25); - } - if ((loadmem((int)®s[i]->time) & 0xFF) != j+1) { - fail(26); - } - } - for (i = 0; i < nbrofdma; i++) { - regs[i]->status = loadmem((int)®s[i]->status) | 1; - } - for(k = 0; k < udel; k++) { - asm volatile("nop"); - } - } - - return 0; -} - -int spwrouter_test(int ahbslv, int ahbslvaddr, int nbrofdma, int *dmaaddr) -{ - spwrouter_test_udel(ahbslv, ahbslvaddr, nbrofdma, dmaaddr, 64); -} diff --git a/software/spw/Makefile b/software/spw/Makefile index ecde2404..54ffa411 100644 --- a/software/spw/Makefile +++ b/software/spw/Makefile @@ -23,7 +23,7 @@ router_test_18x: rmapapi.h spwapi.h spwapi.c rmapapi.c router_test_18x.c $(CC) $(CCOPT) -o router_test_18x router_test_18x.c spwapi.c rmapapi.c router_test_ngmp: rmapapi.h spwapi.h spwapi.c rmapapi.c router_test_ngmp.c - $(CC) $(CCOPT) -qambapp -o router_test_ngmp router_test_ngmp.c spwapi.c rmapapi.c + $(CC) $(CCOPT) -qambapp -Wl,-msparcleon0 -o router_test_ngmp router_test_ngmp.c spwapi.c rmapapi.c router_dual_single: rmapapi.h spwapi.h spwapi.c rmapapi.c router_test_dual_single_link.c $(CC) $(CCOPT) -o router_test_dual_single router_test_dual_single_link.c spwapi.c rmapapi.c diff --git a/software/spw/router_test.c b/software/spw/router_test.c deleted file mode 100644 index 9a8dcce7..00000000 --- a/software/spw/router_test.c +++ /dev/null @@ -1,1786 +0,0 @@ -/*****************************************************************************/ -/* This file is a part of the GRLIB VHDL IP LIBRARY */ -/* Copyright (C) 2010 GAISLER RESEARCH */ - -/* This program is free software; you can redistribute it and/or modify */ -/* it under the terms of the GNU General Public License as published by */ -/* the Free Software Foundation; either version 2 of the License, or */ -/* (at your option) any later version. */ - -/* See the file COPYING for the full details of the license. */ -/******************************************************************************/ -#define PORTS 18 -#define STARTINDEX 0 -#define INTERNALPORTS 1 - -const SPW_ADDR[30] = - {0x80000400, - 0x80000500, - 0x80000600, - 0x80000700, - 0x80000800, - 0x80000900, - 0x80000a00, - 0x80000b00, - 0x80000c00, - 0x80000d00, - 0x80000e00, - 0x80000f00, - 0x80001000, - 0x80001100, - 0x80001200, - 0x80001300, - 0x80001400, - 0x80001500, - 0x80001600, - 0x80001700, - 0x80001800, - 0x80001900, - 0x80001a00, - 0x80001b00, - 0x80001c00, - 0x80001d00, - 0x80001e00, - 0x80001f00, - 0x80002000, - 0x80002100}; - -#define AHBSLV 1 -#define AHBSLVADDR 0xC0000000 - -#define SPW_FREQ 100000 /* Frequency of txclk in khz, set to 0 to use reset value */ -#define AHBFREQ 40000 /* Set to zero to leave reset values */ - -#define SPW_CLKDIV 0 - -#include -#include "spwapi.h" -#include "rmapapi.h" -#include -#include -#include - -#define PKTTESTMAX 65536 -#define DESCPKT 1024 -#define MAXSIZE 65536 /*must not be set to more than 16777216 (2^24)*/ -#define RMAPSIZE 1024 -#define RMAPCRCSIZE 1024 - -#define TEST1 0 -#define TEST2 0 -#define TEST3 0 -#define TEST4 0 -#define TEST5 0 -#define TEST6 0 -#define TEST7 0 -#define TEST8 0 -#define TEST9 1 - - -static inline char loadb(int addr) -{ - char tmp; - asm(" lduba [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -static inline int loadmem(int addr) -{ - int tmp; - asm(" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -int writecfgaddress(int addr, int data, struct spwvars *spw) -{ - - char *tx0; - char *rx0; - char *rx1; - char *tx1; - char *dpa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int i; - int iterations; - int *size; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(32); - dpa = malloc(1); - *dpa = 0x00; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - tx1[0] = (char) ((data >> 24) & 0xFF); - tx1[1] = (char) ((data >> 16) & 0xFF); - tx1[2] = (char) ((data >> 8) & 0xFF); - tx1[3] = (char) (data & 0xFF); - - cmd->incr = yes; - cmd->type = writecmd; - cmd->verify = yes; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = (char *)NULL; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = writerep; - reply->verify = yes; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if (spw_tx(0, 1, 1, 1, *cmdsize, tx0, 4, tx1, spw)) { - printf("Transmission failed\n"); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+1)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize+1, *size); - } - for(i = 0; i < *replysize; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; - -} - -int readcfgaddress(int addr, int *data, struct spwvars *spw) -{ - char *tx0; - char *tx1; - char *rx0; - char *rx1; - char *dpa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int *size; - int i; - int iterations; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(4); - dpa = malloc(1); - *dpa = 0x00; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = (char *)NULL; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - - - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw)) { - printf("Transmission failed\n"); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(i = 0; i < *replysize-1; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - *data = ((loadb((int)&(rx1[*size-4])) & 0xFF) << 24) | ((loadb((int)&(rx1[*size-3])) & 0xFF) << 16) | ((loadb((int)&(rx1[*size-2])) & 0xFF) << 8) | ((loadb((int)&(rx1[*size-1])) & 0xFF)); - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; -} - -int main(int argc, char *argv[]) -{ - int ret; - clock_t t1, t2; - double t3, bitrate; - int regs[1024]; - int dmachan; - int sysfreq; - int txfreq1; - int txfreq2; - int i; - int j; - int k; - int m; - int l; - int x; - int iterations; - int data; - int hdr; - int notrx; - int tmp; - int eoplen; - int *size; - char *txbuf; - char *rxbuf; - char *rx0; - char *rx1; - char *rx2; - char *rx3; - char *tx0; - char *tx1; - char *tx2; - char *tx3; - char *tx[64]; - char *rx[128]; - struct rxstatus *rxs; - struct spwvars *spw[30]; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - int *cmdsize; - int *replysize; - int startrx[4]; - int rmappkt; - int rmapincr; - int destaddr; - int sepaddr[4]; - int chanen[4]; - int rmaprx; - int found; - int rxchan; - int length; - int maxlen; - char *dpa; - int wdog; - int pnp; - int spwports; - int fifoports; - int ahbports; - int laddr; - int laddr2; - int laddr3; - int port2; - int port; - int start; - int *ahb; - - printf("**** GRSPW ROUTER TEST **** \n\n"); - for (i = 0; i < PORTS; i++) { - spw[i] = (struct spwvars *) malloc(sizeof(struct spwvars)); - } - - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - - - printf("**** TEST STARTED **** \n\n"); - /************************ TEST INIT ***********************************/ - printf("Initalizing parameters and links"); - for(i = 0; i < PORTS; i++) { - if (spw_setparam(i+1, SPW_CLKDIV, 0xBF, 1, 1, SPW_ADDR[i], AHBFREQ, spw[i], 0, SPW_FREQ/10000-1) ) { - printf("Illegal parameters to spacewire\n"); - exit(1); - } - for(j = 0; j < 4; j++) { - spw_setparam_dma(j, i+1, 0x0, 1, MAXSIZE, spw[i]); - } - } - - - /* reset links and initialize links*/ - for(i = 0; i < PORTS; i++) { - spw_reset(spw[i]); - if ((ret = spw_init(spw[i]))) { - printf("Link initialization failed for link%d: %d\n", i, ret); - } - printf("SPW %d version: %d \n", i, spw[i]->ver); -#if INTERNALPORTS == 0 - if (wait_running(spw[i])) { - printf("Link %d did not enter run-state\n", i); - } -#endif - } - - dpa = malloc(1); - rx2 = malloc(256); - tx0 = malloc(256); - rx1 = malloc(256); - tx1 = malloc(256); - printf("Set Router links to maximum speed\n"); - *dpa = 0x00; - for(i = 0; i < PORTS; i++) { - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = 0x1; - cmd->tid = i; - cmd->addr = 0x804+i*4; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = (char *)NULL; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - exit(1); - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0xBF; - reply->srcaddr = 0x1; - reply->tid = i; - reply->addr = 0x804+i*4; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx2, replysize)) { - printf("RMAP reply build failed\n"); - exit(1); - } - while (spw_rx(0, rx1, spw[0])) { - for (k = 0; k < 64; k++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw[0])) { - printf("Transmission failed\n"); - exit(1); - } - while (!(tmp = spw_checktx(0, spw[0]))) { - for (k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - exit(1); - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (k = 0; k < 64; k++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - exit(1); - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - exit(1); - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - exit(1); - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(k = 0; k < *replysize-1; k++) { - if (loadb((int)&(rx1[k])) != rx2[k]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", k, (unsigned)loadb((int)&(rx1[k])), (unsigned)rx2[k]); - exit(1); - } - } - -/* If the accessed interfaces are router AHB ports then they are connected in to each other and - need to be started since they are in autostart mode per default */ -#if INTERNALPORTS == 0 - tx1[0] = 0; - tx1[1] = rx1[*size-4]; - tx1[2] = rx1[*size-3]; - tx1[3] = rx1[*size-2]; -#else - tx1[0] = 0; - tx1[1] = rx1[*size-4]; - tx1[2] = rx1[*size-3]; - tx1[3] = rx1[*size-2] | 0x2; -#endif - - - cmd->incr = yes; - cmd->type = writecmd; - cmd->verify = yes; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = 0x1; - cmd->tid = i; - cmd->addr = 0x804+i*4; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = (char *)NULL; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - exit(1); - } - reply->type = writerep; - reply->verify = yes; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0xBF; - reply->srcaddr = 0x1; - reply->tid = i; - reply->addr = 0x804+i*4; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx2, replysize)) { - printf("RMAP reply build failed\n"); - exit(1); - } - while (spw_rx(0, rx1, spw[0])) { - for (k = 0; k < 64; k++) {} - } - if (spw_tx(0, 1, 1, 1, *cmdsize, tx0, 4, tx1, spw[0])) { - printf("Transmission failed\n"); - exit(1); - } - while (!(tmp = spw_checktx(0, spw[0]))) { - for (k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - exit(1); - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (k = 0; k < 64; k++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - exit(1); - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - exit(1); - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - exit(1); - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+1)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize+1, *size); - } - for(k = 0; k < *replysize; k++) { - if (loadb((int)&(rx1[k])) != rx2[k]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", k, (unsigned)loadb((int)&(rx1[k])), (unsigned)rx2[k]); - exit(1); - } - } - - - } - free(rx2); - free(tx0); - free(rx1); - free(tx1); - free(dpa); - - printf("Read config information\n"); - tx0 = (char *)malloc(64); - tx1 = (char *)calloc(RMAPSIZE, 1); - rx0 = (char *)malloc(RMAPSIZE+4); - rx1 = (char *)malloc(32+RMAPSIZE); - rx2 = (char *)malloc(32+RMAPSIZE); - dpa = malloc(1); - - if( (tx0 == NULL) || (tx1 == NULL) || (rx0 == NULL) || - (rx1 == NULL) || (rx2 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - *dpa = 0x00; - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = 0x1; - cmd->tid = 0; - cmd->addr = 0xA00; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = (char *)NULL; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - exit(1); - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0xBF; - reply->srcaddr = 0x1; - reply->tid = 0; - reply->addr = 0xA00; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx2, replysize)) { - printf("RMAP reply build failed\n"); - exit(1); - } - while (spw_rx(0, rx1, spw[0])) { - for (k = 0; k < 64; k++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw[0])) { - printf("Transmission failed\n"); - exit(1); - } - while (!(tmp = spw_checktx(0, spw[0]))) { - for (k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - exit(1); - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (k = 0; k < 64; k++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - exit(1); - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - exit(1); - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - exit(1); - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(k = 0; k < *replysize-1; k++) { - if (loadb((int)&(rx1[k])) != rx2[k]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", k, (unsigned)loadb((int)&(rx1[k])), (unsigned)rx2[k]); - exit(1); - } - } - data = ((loadb((int)&rx1[*size-5]) & 0xFF)<< 24) | ((loadb((int)&rx1[*size-4]) & 0xFF)<< 16) | ((loadb((int)&rx1[*size-3]) & 0xFF) << 8) | ((loadb((int)&rx1[*size-2]) & 0xFF)); - pnp = data & 1; - wdog = (data >> 1) & 1; - fifoports = (data >> 17) & 0x1F; - ahbports = (data >> 22) & 0x1F; - spwports = (data >> 27) & 0x1F; - - if (pnp) { - printf("Plug and Play support\n"); - } else { - printf("No Plug and Play support\n"); - } - if (wdog) { - printf("Watchdog timers\n"); - } else { - printf("No watchdog timers\n"); - } - - printf("%d Spw ports\n", spwports); - printf("%d AHB ports\n", ahbports); - printf("%d FIFO ports\n", fifoports); - - free(tx0); - free(tx1); - free(rx0); - free(rx1); - free(rx2); - free(dpa); - -/* /\************************ TEST 1 **************************************\/ */ -#if TEST1 == 1 -#if AHBSLV == 1 - printf("TEST 1: Check all registers in configuration port through AHB slave interface \n\n"); - printf("Read group adaptive routing/packet distribution registers\n\n"); - for(i = 4; i < 0x400; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read routing table entries\n\n"); - for(i = 0x480; i < 0x800; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read port control registers\n\n"); - for(i = 0x800; i < 0x880; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read port status registers\n\n"); - for(i = 0x880; i < 0x900; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read Prescaler value\n\n"); - data = loadmem(AHBSLVADDR + 0x900); - regs[0x900/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0x900, data); - printf("\n"); - printf("Read timer registers\n\n"); - for(i = 0x904; i < 0xA00; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read router configuration register\n\n"); - data = loadmem(AHBSLVADDR + 0xA00); - regs[0xA00/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA00, data); - printf("\n"); - printf("Read time-code register\n\n"); - data = loadmem(AHBSLVADDR + 0xA04); - regs[0xA04/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA04, data); - printf("\n"); - printf("Version/instance ID register\n\n"); - data = loadmem(AHBSLVADDR + 0xA08); - regs[0xA08/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA08, data); - printf("\n"); - printf("TEST 1: completed successfully\n\n"); -#endif -#endif - -/* /\************************ TEST 2 **************************************\/ */ -#if TEST2 == 1 - printf("TEST 2: Check all registers in configuration port using RMAP \n\n"); - tx0 = (char *)malloc(64); - tx1 = (char *)calloc(RMAPSIZE, 1); - rx0 = (char *)malloc(RMAPSIZE+4); - rx1 = (char *)malloc(32+RMAPSIZE); - rx2 = (char *)malloc(32+RMAPSIZE); - dpa = malloc(1); - - if( (tx0 == NULL) || (tx1 == NULL) || (rx0 == NULL) || - (rx1 == NULL) || (rx2 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - *dpa = 0x00; - - i = 4; - while(1) { - if (i == 4) { - printf("Read port setup registers\n\n"); - } - if (i == 0x480) { - printf("Read routing table entries\n\n"); - } - if (i == 0x800) { - printf("Read port control registers\n\n"); - } - if (i == 0x880) { - printf("Read port status registers\n\n"); - } - if (i == 0x900) { - printf("Read prescaler register\n\n"); - } - if (i == 0x904) { - printf("Read timer registers\n\n"); - } - if (i == 0xA00) { - printf("Read configuration/status register\n\n"); - } - if (i == 0xA04) { - printf("Read time-code register\n\n"); - } - if (i == 0xA08) { - printf("Read version/instance ID register\n\n"); - } - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = 0x1; - cmd->tid = i; - cmd->addr = i; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = (char *)NULL; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - exit(1); - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0xBF; - reply->srcaddr = 0x1; - reply->tid = i; - reply->addr = i; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx2, replysize)) { - printf("RMAP reply build failed\n"); - exit(1); - } - while (spw_rx(0, rx1, spw[0])) { - for (k = 0; k < 64; k++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw[0])) { - printf("Transmission failed\n"); - exit(1); - } - while (!(tmp = spw_checktx(0, spw[0]))) { - for (k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - exit(1); - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (k = 0; k < 64; k++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - exit(1); - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - exit(1); - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - exit(1); - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(k = 0; k < *replysize-1; k++) { - if (loadb((int)&(rx1[k])) != rx2[k]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", k, (unsigned)loadb((int)&(rx1[k])), (unsigned)rx2[k]); - exit(1); - } - } - data = ((loadb((int)&rx1[*size-5]) << 24) & 0xFF000000) | ((loadb((int)&rx1[*size-4]) << 16) & 0xFF0000) | ((loadb((int)&rx1[*size-3]) << 8) & 0xFF00) | ((loadb((int)&rx1[*size-2]) & 0xFF)); -#if TEST1 == 1 -#if AHBSLV == 1 - tmp = data; - if (i >= 0x880 && i < 0x900) { - /* mask port status registers */ - tmp = data & 0; - regs[i/4] = regs[i/4] & 0; - } - if (tmp != regs[i/4]) { - printf("ERROR: Mismatch between data read from AHB slave interface and RMAP interface\n"); - printf("AHB: %08X RMAP: %08X\n", regs[i/4], tmp); - exit(1); - } -#endif -#endif - - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - if (i < 0x3FC) { - i = i + 4; - } else if (i == 0x3FC) { - i = 0x480; - } else if (i < 0x900) { - i = i + 4; - } else if ((wdog) && (i < 0x9FC)) { - i = i + 4; - } else if (i < 0xA08) { - i = i + 4; - } else { - break; - } - } - printf("\n"); - free(tx0); - free(tx1); - free(rx0); - free(rx1); - free(rx2); - free(dpa); -#endif - - -/* /\************************ TEST 3 **************************************\/ */ -#if TEST3 == 1 - printf("TEST 3: Test time-code propagation \n\n"); - i = 1; - j = 0; - while(i < 256) { - printf("Iteration: %d\n", i); - send_time(spw[j]); - for(k = 0; k < 1000; k++); /* delay*/ - for(k = 0; k < PORTS; k++) { - printf("Port: %d\n", k); - if (k != j) { - tmp = check_time(spw[k]); - if (tmp != 1) { - printf("ERROR: Time-code not received"); - exit(1); - } - } - if (get_time(spw[k]) != (i % 64)) { - printf("ERROR: Wrong time-code value in counter"); - exit(1); - } - } - j++; - if (j = PORTS) { - j = 0; - } - i++; - } - - -#endif - -/* /\************************ TEST 4 **************************************\/ */ -#if TEST4 == 1 - printf("TEST 4: Packet transmission test \n\n"); - for(i = 0; i < PORTS; i++) { - tx[i] = malloc(64); - rx[i] = malloc(64); - } - printf("Enabling reception\n"); - for(i = 0; i < PORTS; i++) { - tmp = spw_rx(0, rx[i], spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - printf("Transmitting\n"); - for(i = 0; i < PORTS; i++) { - tx[i][0] = PORTS-i+STARTINDEX; - tx[i][1] = PORTS-i; - for(j = 2; j < 64; j++) { - tx[i][j] = j+i*4; - } - tmp = spw_tx(0, 0, 0, 0, 0, tx[i], 64, tx[i], spw[i]); - if (tmp != 0) { - printf("ERROR: spw_tx failed: %d\n", tmp); - exit(1); - - } - - } - printf("Checking transmission\n"); - for(i = 0; i < PORTS; i++) { - printf("Iteration: %d\n", i); - while(!(tmp = spw_checktx(0, spw[i]))) { - for(j = 0; j < 64; j++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - printf("Checking reception\n"); - for(i = 0; i < PORTS; i++) { - printf("Iteration: %d\n", i); - while(!(tmp = spw_checkrx(0, size, rxs, spw[i]))) { - for(j = 0; j < 64; j++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != 63) { - printf("Received packet has wrong length link: %d\n", i); - exit(1); - } - for(j = 0; j < 63; j++) { - if (loadb((int)&(rx[i][j])) != tx[PORTS-i-1][j+1]) { - printf("Compare error buf %d, index: %d, Data: %x Expected: %x \n", i, j, (unsigned)loadb((int)&(rx[i][j])), (unsigned)tx[PORTS-i-1][j+1]); - exit(1); - } - - } - } - for(i = 0; i < PORTS; i++) { - free(tx[i]); - free(rx[i]); - } -#endif - -/* /\************************ TEST 5 **************************************\/ */ -#if TEST5 == 1 - printf("TEST 5: Throughput test\n\n"); - tx0 = malloc(MAXSIZE); - rx0 = malloc(MAXSIZE); - for(i = 0; i < PORTS; i++) { - tx[i] = malloc(2); - tx[i][0] = PORTS-i+STARTINDEX; - tx[i][1] = PORTS-i; - } - - - if ( (tx0 == NULL) || (rx0 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - - printf("Enabling reception\n"); - for(i = 0; i < PORTS; i++) { - for (j = 0; j < 64; j++) { - tmp = spw_rx(0, rx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - printf("Transmitting\n"); - t1 = clock(); - for (j = 0; j < 64; j++) { - for(i = 0; i < PORTS; i++) { - tmp = spw_tx(0, 0, 0, 0, 2, tx[i], MAXSIZE-3, tx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - for (j = 0; j < 64; j++) { - for(i = 0; i < PORTS; i++) { - while(!(tmp = spw_checktx(0, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - } - printf("Checking reception\n"); - for(i = 0; i < PORTS; i++) { - for (j = 0; j < 64; j++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != MAXSIZE-2) { - printf("Received packet has wrong length link: %d\n", i); - exit(1); - } - } - } - t2 = clock(); - t2 = t2 - t1; - t3 = t2/CLOCKS_PER_SEC; - bitrate = (MAXSIZE*64)/(t3*1000); - bitrate = bitrate*PORTS*8; - bitrate /= 1000.0; - printf("Effective bitrate: %3.1f Mbit/s\n", bitrate); - free(tx0); - free(rx0); - for(i = 0; i < PORTS; i++) { - free(tx[i]); - } -#endif - -#if TEST6 == 1 - printf("TEST 6: Packet size test using physical addresses. Minimum size usable is 2\n"); - printf("due to header deletion and minimum size 1 for the DMA channels. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < PORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - rx[i] = malloc(PKTTESTMAX); - - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - tx[i][0] = PORTS-i+STARTINDEX; - tx[i][1] = PORTS-i; - for (j = 2; j < PKTTESTMAX; j++) { - tx[i][j] = j+i*4; - } - } - - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); - - printf("Enabling reception\n"); - for(j = 0; j < PORTS; j++) { - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - printf("Transmitting\n"); - for (j = 0; j < PORTS; j++) { - for(k = 2; k < i; k++) { - tx[j][k] = ~tx[j][k]; - } - } - for(j = 0; j < PORTS; j++) { - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < PORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - - printf("Checking reception\n"); - for(j = 0; j < PORTS; j++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != i-1) { - printf("Received packet has wrong length link: %d\n", j); - exit(1); - } - for (k = 0; k < i-1; k++) { - if (loadb((int)&(rx[j][k])) != tx[PORTS-j-1][k+1]) { - printf("Compare error buf: %u Data: %x Expected: %x \n", k, (unsigned)loadb((int)&(rx[j][k])), (unsigned)tx[PORTS-j-1][k+1]); - exit(1); - } - } - - } - - } - for(i = 0; i < PORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST7 == 1 - printf("TEST 7: Packet size test using logical addresses. Minimum size usable is 1\n"); - printf("since this test disables header deletion. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < PORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); -/* printf("tx[%d]: %x\n", i, (int)tx[i]); */ - rx[i] = malloc(PKTTESTMAX); -/* printf("rx[%d]: %x\n", i, (int)rx[i]); */ - - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - for (j = 0; j < PKTTESTMAX; j++) { - tx[i][j] = j+i*4; - } - } - port = PORTS; - for (i = 32; i < 256; i++) { - data = (1 << (port+STARTINDEX)); - writecfgaddress(0x00000000+i*4, data, spw[(i % PORTS)]); - writecfgaddress(0x00000400+i*4, 0x4, spw[(i % PORTS)]); -/* printf("Addr: %x Data: %x\n", 0x00000000+i*4, data); */ - port = port - 1; - if (port == 0) { - port = PORTS; - } - } - - laddr = 32; port = PORTS-1; port2 = PORTS-1; laddr2 = 32; laddr3 = 32; - for (i = 1; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); -/* printf("Enabling reception\n"); */ - for(j = 0; j < PORTS; j++) { -/* printf("port:%d rx[%d]: %x\n", port, j, (int)rx[j]); */ - tmp = spw_rx(0, rx[j], spw[port]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - if (port == 0) { - port = PORTS-1; - } else { - port = port - 1; - } - laddr2 = laddr2 + 1; - if (laddr2 == 256) { - laddr2 = 32; - port = PORTS-1; - } - - } - -/* printf("Transmitting\n"); */ - for (j = 0; j < PORTS; j++) { - for(k = 1; k < i; k++) { - tx[j][k] = ~tx[j][k]; - } - tx[j][0] = laddr; - laddr = laddr + 1; - if (laddr == 256) { - laddr = 32; - } - } - for(j = 0; j < PORTS; j++) { -/* printf("port:%d tx[%d]: %x\n", j, j, (int)tx[j]); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < PORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - -/* printf("Checking reception\n"); */ - for(j = 0; j < PORTS; j++) { -/* printf("Port: %d\n", port2); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[port2]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", j); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", j); - exit(1); - } - if (*size != i) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i); - exit(1); - } -/* printf("Rx: %x Tx: %x\n", (int)&(rx[j][0]), (int)&(tx[j][0])); */ -/* printf("port:%d rx[%d]: %x\n", port2, j, (int)&(rx[j][0])); */ - for (k = 0; k < i; k++) { - if (loadb((int)&(rx[j][k])) != tx[j][k]) { - printf("Compare error port: %u buf: %u index: %u Data: %x Expected: %x \n", port2, j, k, (unsigned)loadb((int)&(rx[j][k])), (unsigned)tx[j][k]); - exit(1); - } - } - if (port2 == 0) { - port2 = PORTS-1; - } else { - port2 = port2 - 1; - } - - laddr3 = laddr3 + 1; - if (laddr3 == 256) { - laddr3 = 32; - port2 = PORTS-1; - } - } - - - } - for(i = 0; i < PORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST8 == 1 - printf("TEST 8: Packet size test using logical addresses. Minimum size usable is 2\n"); - printf("since this test enables header deletion. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < PORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - /* printf("tx[%d]: %x\n", i, (int)tx[i]); */ - rx[i] = malloc(PKTTESTMAX); -/* printf("rx[%d]: %x\n", i, (int)rx[i]); */ - - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - for (j = 0; j < PKTTESTMAX; j++) { - tx[i][j] = j+i*4; - } - } - port = PORTS; - for (i = 32; i < 256; i++) { - data = (1 << (port+STARTINDEX)); - writecfgaddress(0x00000000+i*4, data, spw[(i % PORTS)]); - writecfgaddress(0x00000400+i*4, 0x5, spw[(i % PORTS)]); -/* printf("Addr: %x Data: %x\n", 0x00000000+i*4, data); */ - port = port - 1; - if (port == 0) { - port = PORTS; - } - } - - laddr = 32; port = PORTS-1; port2 = PORTS-1; laddr2 = 32; laddr3 = 32; - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); -/* printf("Enabling reception\n"); */ - for(j = 0; j < PORTS; j++) { -/* printf("port:%d rx[%d]: %x\n", port, j, (int)rx[j]); */ - tmp = spw_rx(0, rx[j], spw[port]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - if (port == 0) { - port = PORTS-1; - } else { - port = port - 1; - } - laddr2 = laddr2 + 1; - if (laddr2 == 256) { - laddr2 = 32; - port = PORTS-1; - } - - } - -/* printf("Transmitting\n"); */ - for (j = 0; j < PORTS; j++) { - for(k = 1; k < i; k++) { - tx[j][k] = ~tx[j][k]; - } - tx[j][0] = laddr; - laddr = laddr + 1; - if (laddr == 256) { - laddr = 32; - } - } - for(j = 0; j < PORTS; j++) { -/* printf("port:%d tx[%d]: %x\n", j, j, (int)tx[j]); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < PORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - -/* printf("Checking reception\n"); */ - for(j = 0; j < PORTS; j++) { -/* printf("Port: %d\n", port2); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[port2]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", j); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", j); - exit(1); - } - if (*size != i-1) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i-1); - exit(1); - } - /* printf("Rx: %x Tx: %x\n", (int)&(rx[j][0]), (int)&(tx[j][0])); */ -/* printf("port:%d rx[%d]: %x\n", port2, j, (int)&(rx[j][0])); */ - for (k = 1; k < i; k++) { - if (loadb((int)&(rx[j][k-1])) != tx[j][k]) { - printf("Compare error port: %u buf: %u index: %u Data: %x Expected: %x \n", port2, j, k, (unsigned)loadb((int)&(rx[j][k-1])), (unsigned)tx[j][k]); - exit(1); - } - } - if (port2 == 0) { - port2 = PORTS-1; - } else { - port2 = port2 - 1; - } - - laddr3 = laddr3 + 1; - if (laddr3 == 256) { - laddr3 = 32; - port2 = PORTS-1; - } - } - - - } - for(i = 0; i < PORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST9 == 1 - printf("TEST 9: Test packet sizes with packet distribution\n"); - printf("for path addresses\n\n"); - ahb = (int *)AHBSLVADDR; - - for(i = 0; i < PORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - rx[i] = malloc(PKTTESTMAX); - if ((tx[i] == NULL) || (rx[i] == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - for (j = 0; j < PKTTESTMAX; j++) { - tx[i][j] = j+i*4; - } - } - for (i = 1; i <= PORTS; i++) { - data = (1 << i); - - } - - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); -#if AHBSLV == 1 - start = 0; -#else - start = 1; -#endif - for(j = start; j < PORTS; j++) { - /* printf("source port: %d\n", j+1); */ - data = 1 | (1 << (j+1)); /* Enables packet distribution */ - for(k = 1; k <= PORTS; k++) { - /* printf("Sending to %d port(s)\n", k); */ - data = data | (1 << k); -#if AHBSLV == 1 - *(ahb+(j+1)) = data; -#else - writecfgaddress(0x00000000+(j+1)*4, data, spw[j]); -#endif - /* printf("Enabling reception\n"); */ - for(l = 0; l < k; l++) { - /* printf("enabling port: %d\n", l); */ - tmp = spw_rx(0, rx[l], spw[l]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - if (j >= k) { - /* printf("enabling port: %d\n", j); */ - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - /* printf("Transmitting\n"); */ - for(x = 1; x < i; x++) { - tx[j][x] = ~tx[j][x]; - } - tx[j][0] = j+1; - /* for(x = 0; x < i; x++) { */ -/* printf("%x ", tx[j][x]); */ -/* } */ -/* printf("\n"); */ - /* printf("Port: %d\n", j+1); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - while(!(tmp = spw_checktx(0, spw[j]))) { - for(x = 0; x < 64; x++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", j); - exit(1); - } - /* printf("Checking reception\n"); */ - for(l = 0; l < k; l++) { - /* printf("Receiving port: %d\n", l); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[l]))) { - for(x = 0; x < 64; x++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", l); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", l); - exit(1); - } - if (*size != i-1) { - printf("Received packet has wrong length link: %d\n", l); - printf("Got: %d, Expected: %d\n", *size, i-1); - exit(1); - } - - for (x = 1; x < i; x++) { - if (loadb((int)&(rx[l][x-1])) != tx[j][x]) { - printf("Compare error port: %u index: %u Data: %x Expected: %x \n", l, x, (unsigned)loadb((int)&(rx[l][x-1])), (unsigned)tx[j][x]); - printf("r: %x t: %x\n", (int)&(rx[l][x-1]), (int)&(tx[j][x])); - exit(1); - } - } - - } - if (j >= k) { - /* printf("Receiving port: %d\n", j); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(x = 0; x < 64; x++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", j); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", j); - exit(1); - } - if (*size != i-1) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i-1); - exit(1); - } - - for (x = 1; x < i; x++) { - if (loadb((int)&(rx[j][x-1])) != tx[j][x]) { - printf("Compare error port: %u index: %u Data: %x Expected: %x \n", j, x, (unsigned)loadb((int)&(rx[j][x-1])), (unsigned)tx[j][x]); - exit(1); - } - } - } - - - } -#if AHBSLV == 1 - *(ahb+(j+1)) = 0; -#endif - - } - - } - for(i = 0; i < PORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - - - - printf("*********** Test suite completed successfully ************\n"); - exit(0); - -} diff --git a/software/spw/router_test_18x.c b/software/spw/router_test_18x.c deleted file mode 100644 index 1010b01a..00000000 --- a/software/spw/router_test_18x.c +++ /dev/null @@ -1,1823 +0,0 @@ -/*****************************************************************************/ -/* This file is a part of the GRLIB VHDL IP LIBRARY */ -/* Copyright (C) 2010 GAISLER RESEARCH */ - -/* This program is free software; you can redistribute it and/or modify */ -/* it under the terms of the GNU General Public License as published by */ -/* the Free Software Foundation; either version 2 of the License, or */ -/* (at your option) any later version. */ - -/* See the file COPYING for the full details of the license. */ -/******************************************************************************/ -#define SPWPORTS 16 -#define AMBAPORTS 2 -#define FIFOPORTS 0 -#define PORTS (SPWPORTS+AMBAPORTS+FIFOPORTS) - -const SPW_ADDR[30] = - {0x80000400, - 0x80000500, - 0x80000c00, - 0x80000700, - 0x80000800, - 0x80000900, - 0x80000a00, - 0x80000b00, - 0x80000c00, - 0x80000d00, - 0x80000e00, - 0x80000f00, - 0x80001000, - 0x80001100, - 0x80001200, - 0x80001300, - 0x80001400, - 0x80001500, - 0x80001600, - 0x80001700, - 0x80001800, - 0x80001900, - 0x80001a00, - 0x80001b00, - 0x80001c00, - 0x80001d00, - 0x80001e00, - 0x80001f00, - 0x80002000, - 0x80002100}; - -#define AHBSLV 1 -#define AHBSLVADDR 0xFFFC0000 - -#define SPW_FREQ 200000 /* Frequency of txclk in khz, set to 0 to use reset value */ -#define AHBFREQ 50000 /* Set to zero to leave reset values */ - -#define SPW_CLKDIV 0 - -#include -#include "spwapi.h" -#include "rmapapi.h" -#include -#include -#include - -#define PKTTESTMAX 65536 -#define DESCPKT 1024 -#define MAXSIZE 16777216 /*must not be set to more than 16777216 (2^24)*/ -#define RMAPSIZE 1024 -#define RMAPCRCSIZE 1024 - -#define TEST1 1 -#define TEST2 1 -#define TEST3 1 -#define TEST4 1 -#define TEST5 1 -#define TEST6 1 -#define TEST7 1 -#define TEST8 1 -#define TEST9 1 -#define TEST10 1 -#define TEST11 1 -#define TEST12 1 - -static inline char loadb(int addr) -{ - char tmp; - asm(" lduba [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -static inline int loadmem(int addr) -{ - int tmp; - asm(" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -int writecfgaddress(int addr, int data, struct spwvars *spw) -{ - - char *tx0; - char *rx0; - char *rx1; - char *tx1; - char *dpa; - char *spa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int i; - int iterations; - int *size; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(32); - dpa = malloc(1); - spa = malloc(1); - *dpa = 0x00; - *spa = 0x01; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - tx1[0] = (char) ((data >> 24) & 0xFF); - tx1[1] = (char) ((data >> 16) & 0xFF); - tx1[2] = (char) ((data >> 8) & 0xFF); - tx1[3] = (char) (data & 0xFF); - - cmd->incr = yes; - cmd->type = writecmd; - cmd->verify = yes; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = spa; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = writerep; - reply->verify = yes; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if ((tmp = spw_tx(0, 1, 1, 1, *cmdsize, tx0, 4, tx1, spw))) { - printf("Transmission failed: %d\n", tmp); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+1)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize+1, *size); - } - for(i = 0; i < *replysize; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; - -} - -int readcfgaddress(int addr, int *data, struct spwvars *spw) -{ - char *tx0; - char *tx1; - char *rx0; - char *rx1; - char *dpa; - char *spa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int *size; - int i; - int iterations; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(4); - dpa = malloc(1); - spa = malloc(1); - *dpa = 0x00; - *spa = 0x01; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = spa; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw)) { - printf("Transmission failed\n"); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(i = 0; i < *replysize-1; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - *data = ((loadb((int)&rx1[*size-5]) << 24) & 0xFF000000) | ((loadb((int)&rx1[*size-4]) << 16) & 0xFF0000) | ((loadb((int)&rx1[*size-3]) << 8) & 0xFF00) | ((loadb((int)&rx1[*size-2]) & 0xFF)); - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(spa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; -} - -int main(int argc, char *argv[]) -{ - int ret; - clock_t t1, t2; - double t3, bitrate; - int regs[1024]; - int dmachan; - int sysfreq; - int txfreq1; - int txfreq2; - int i; - int j; - int k; - int m; - int n; - int l; - int x; - int iterations; - int data; - int hdr; - int notrx; - int tmp; - int eoplen; - int *size; - char *txbuf; - char *rxbuf; - char *rx0; - char *rx1; - char *rx2; - char *rx3; - char *tx0; - char *tx1; - char *tx2; - char *tx3; - char *tx[64]; - char *rx[128]; - char *tx_buf[AMBAPORTS][64]; - char *rx_buf[AMBAPORTS][128]; - struct rxstatus *rxs; - struct spwvars *spw[30]; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - int *cmdsize; - int *replysize; - int startrx[4]; - int rmappkt; - int rmapincr; - int destaddr; - int sepaddr[4]; - int chanen[4]; - int rmaprx; - int found; - int rxchan; - int length; - int maxlen; - char *dpa; - int wdog; - int pnp; - int spwports; - int fifoports; - int ahbports; - int laddr; - int laddr2; - int laddr3; - int port2; - int port; - int start; - int *ahb; - char tmpchar; - - printf("**** GRSPW ROUTER TEST DUAL **** \n\n"); - for (i = 0; i < AMBAPORTS; i++) { - spw[i] = (struct spwvars *) malloc(sizeof(struct spwvars)); - } - - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - - - printf("**** TEST STARTED **** \n\n"); - /************************ TEST INIT ***********************************/ - printf("Initalizing parameters and links"); - for(i = 0; i < AMBAPORTS; i++) { - if (spw_setparam(i+1, SPW_CLKDIV, 0xBF, 1, 1, SPW_ADDR[i], AHBFREQ, spw[i], 0, SPW_FREQ/10000-1) ) { - printf("Illegal parameters to spacewire\n"); - exit(1); - } - for(j = 0; j < 4; j++) { - spw_setparam_dma(j, i+1, 0x0, 1, MAXSIZE, spw[i]); - } - } - - - /* reset links and initialize links*/ - for(i = 0; i < AMBAPORTS; i++) { - if ((ret = spw_init(spw[i]))) { - printf("Link initialization failed for link%d: %d\n", i, ret); - } - printf("SPW %d version: %d \n", i, spw[i]->ver); - } - - printf("Start router links and set them to maximum speed\n"); - for(i = 0; i < SPWPORTS; i++) { - printf("Iteration: %d\n", i); - readcfgaddress(0x00000804+i*4, (int *)&data, spw[0]); - data = data & 0x00FFFFFF; - data = data | 0x2; - writecfgaddress(0x00000804+i*4, data, spw[0]); - } - - printf("Read config information\n"); - readcfgaddress(0x00000a00, (int *)&data, spw[0]); - printf("Router configuration register: %x\n", data); - - pnp = data & 1; - wdog = (data >> 1) & 1; - fifoports = (data >> 17) & 0x1F; - ahbports = (data >> 22) & 0x1F; - spwports = (data >> 27) & 0x1F; - - if (pnp) { - printf("Plug and Play support\n"); - } else { - printf("No Plug and Play support\n"); - } - if (wdog) { - printf("Watchdog timers\n"); - } else { - printf("No watchdog timers\n"); - } - - printf("%d Spw ports\n", spwports); - printf("%d AHB ports\n", ahbports); - printf("%d FIFO ports\n", fifoports); - - for (i = 1; i <= PORTS; i++) { - readcfgaddress(0x00000800+i*4, (int *)&data, spw[0]); - printf("Control register: %x\n", data); - readcfgaddress(0x00000880+i*4, (int *)&data, spw[0]); - printf("Status register: %x\n", data); - readcfgaddress(0x00000900+i*4, (int *)&data, spw[0]); - printf("Timer reload register: %x\n", data); - } - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - printf("Time-code register: %x\n", data); - readcfgaddress(0x00000a08, (int *)&data, spw[0]); - printf("Version/instance ID: %x\n", data); - readcfgaddress(0x00000a0c, (int *)&data, spw[0]); - printf("Initialization divisor: %x\n", data); - readcfgaddress(0x00000a10, (int *)&data, spw[0]); - printf("Configuration write enable: %x\n", data); - readcfgaddress(0x00000a14, (int *)&data, spw[0]); - printf("Timer prescaler: %x\n", data); - - -/* /\************************ TEST 1 **************************************\/ */ -#if TEST1 == 1 -#if AHBSLV == 1 - printf("TEST 1: Check all registers in configuration port through AHB slave interface \n\n"); - printf("Read group adaptive routing/packet distribution registers\n\n"); - for(i = 4; i < 0x400; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read routing table entries\n\n"); - for(i = 0x480; i < 0x800; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read port control registers\n\n"); - for(i = 0x800; i < 0x880; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read port status registers\n\n"); - for(i = 0x880; i < 0x900; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read Prescaler value\n\n"); - data = loadmem(AHBSLVADDR + 0x900); - regs[0x900/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0x900, data); - printf("\n"); - printf("Read timer registers\n\n"); - for(i = 0x904; i < 0xA00; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read router configuration register\n\n"); - data = loadmem(AHBSLVADDR + 0xA00); - regs[0xA00/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA00, data); - printf("\n"); - printf("Read time-code register\n\n"); - data = loadmem(AHBSLVADDR + 0xA04); - regs[0xA04/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA04, data); - printf("\n"); - printf("Version/instance ID register\n\n"); - data = loadmem(AHBSLVADDR + 0xA08); - regs[0xA08/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA08, data); - printf("\n"); - printf("TEST 1: completed successfully\n\n"); -#endif -#endif - -/* /\************************ TEST 2 **************************************\/ */ -#if TEST2 == 1 - printf("TEST 2: Check all registers in configuration port using RMAP \n\n"); - tx0 = (char *)malloc(64); - tx1 = (char *)calloc(RMAPSIZE, 1); - rx0 = (char *)malloc(RMAPSIZE+4); - rx1 = (char *)malloc(32+RMAPSIZE); - rx2 = (char *)malloc(32+RMAPSIZE); - dpa = malloc(1); - - if( (tx0 == NULL) || (tx1 == NULL) || (rx0 == NULL) || - (rx1 == NULL) || (rx2 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - *dpa = 0x00; - - i = 4; - while(1) { - if (i == 4) { - printf("Read port setup registers\n\n"); - } - if (i == 0x480) { - printf("Read routing table entries\n\n"); - } - if (i == 0x800) { - printf("Read port control registers\n\n"); - } - if (i == 0x880) { - printf("Read port status registers\n\n"); - } - if (i == 0x900) { - printf("Read prescaler register\n\n"); - } - if (i == 0x904) { - printf("Read timer registers\n\n"); - } - if (i == 0xA00) { - printf("Read configuration/status register\n\n"); - } - if (i == 0xA04) { - printf("Read time-code register\n\n"); - } - if (i == 0xA08) { - printf("Read version/instance ID register\n\n"); - } - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = 0x1; - cmd->tid = i; - cmd->addr = i; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = (char *)NULL; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - exit(1); - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0xBF; - reply->srcaddr = 0x1; - reply->tid = i; - reply->addr = i; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx2, replysize)) { - printf("RMAP reply build failed\n"); - exit(1); - } - while (spw_rx(0, rx1, spw[0])) { - for (k = 0; k < 64; k++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw[0])) { - printf("Transmission failed\n"); - exit(1); - } - while (!(tmp = spw_checktx(0, spw[0]))) { - for (k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - exit(1); - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (k = 0; k < 64; k++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - exit(1); - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - exit(1); - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - exit(1); - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(k = 0; k < *replysize-1; k++) { - if (loadb((int)&(rx1[k])) != rx2[k]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", k, (unsigned)loadb((int)&(rx1[k])), (unsigned)rx2[k]); - exit(1); - } - } - data = ((loadb((int)&rx1[*size-5]) << 24) & 0xFF000000) | ((loadb((int)&rx1[*size-4]) << 16) & 0xFF0000) | ((loadb((int)&rx1[*size-3]) << 8) & 0xFF00) | ((loadb((int)&rx1[*size-2]) & 0xFF)); -#if TEST1 == 1 -#if AHBSLV == 1 - tmp = data; - if (i >= 0x880 && i < 0x900) { - /* mask port status registers */ - tmp = data & 0; - regs[i/4] = regs[i/4] & 0; - } - if (tmp != regs[i/4]) { - printf("ERROR: Mismatch between data read from AHB slave interface and RMAP interface\n"); - printf("AHB: %08X RMAP: %08X\n", regs[i/4], tmp); - exit(1); - } -#endif -#endif - - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - if (i < 0x3FC) { - i = i + 4; - } else if (i == 0x3FC) { - i = 0x480; - } else if (i < 0x900) { - i = i + 4; - } else if ((wdog) && (i < 0x9FC)) { - i = i + 4; - } else if (i < 0xA08) { - i = i + 4; - } else { - break; - } - } - printf("\n"); - free(tx0); - free(tx1); - free(rx0); - free(rx1); - free(rx2); - free(dpa); -#endif - - -/* /\************************ TEST 3 **************************************\/ */ -#if TEST3 == 1 - printf("TEST 3: Test time-code propagation \n\n"); - i = 1; - while(i < 256) { - printf("Iteration: %d\n", i); - send_time(spw[0]); - for(k = 0; k < 1000; k++); /* delay*/ - tmp = check_time(spw[1]); - if (tmp != 1) { - printf("ERROR: Time-code not received"); - exit(1); - } - if (get_time(spw[1]) != (i % 64)) { - printf("ERROR: Wrong time-code value in counter"); - exit(1); - } - i++; - } - - -#endif - -/* /\************************ TEST 4 **************************************\/ */ -#if TEST4 == 1 - printf("TEST 4: Packet transmission test. Packet size 1 to 65536 \n\n"); - for(i = 0; i < AMBAPORTS; i++) { - for (j = 0; j < 64; j++) { - tx_buf[i][j] = malloc(65536); - rx_buf[i][j] = malloc(65536); - } - tx[i] = malloc(SPWPORTS/2+2); - spw_enable_promiscuous(spw[i]); - spw_rmapdis(spw[i]); - } - for(i = 0; i < AMBAPORTS; i++) { - if (i == 0) { - for (j = 0; j < SPWPORTS/2; j++) { - tx[i][j] = j*2+1; - - } - tx[i][SPWPORTS/2] = 18; - tx[i][SPWPORTS/2+1] = 2; - } else { - for (j = 0; j < SPWPORTS/2; j++) { - tx[i][j] = 16-j*2; - - } - tx[i][SPWPORTS/2] = 17; - tx[i][SPWPORTS/2+1] = 1; - } - - for(j = 0; j < 64; j++) { - for (l = 0; l < 65536; l++) { - tx_buf[i][j][l] = (char)j; - } - } - } - - for (j = 1; j <= 65536; j++) { - printf("Size: %d\n", j); - printf("Enabling reception\n"); - for(i = 0; i < AMBAPORTS; i++) { - for (k = 0; k < 64; k++) { - tmp = spw_rx(0, rx_buf[i][k], spw[i]); - } - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - printf("Transmitting\n"); - for(i = 0; i < AMBAPORTS; i++) { - for (k = 0; k < 64; k++) { - tmp = spw_tx(0, 0, 0, 0, SPWPORTS/2+2, tx[i], j, tx_buf[i][k], spw[i]); - if (tmp != 0) { - printf("ERROR: spw_tx failed: %d\n", tmp); - exit(1); - } - } - } - - printf("Checking transmission\n"); - for(i = 0; i < AMBAPORTS; i++) { - printf("Iteration: %d\n", i); - for (k = 0; k < 64; k++) { - while(!(tmp = spw_checktx(0, spw[i]))) { - for(l = 0; l < 64; l++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - } - printf("Checking reception\n"); - for(i = 0; i < AMBAPORTS; i++) { - printf("Iteration: %d\n", i); - for (k = 0; k < 64; k++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[i]))) { - for(l = 0; l < 64; l++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != j+1) { - printf("Received packet has wrong length link: %d\n", i); - printf("Exp: %d, Got: %d\n", j+1, *size); - exit(1); - } - for(l = 0; l < j; l++) { - if (loadb((int)&(rx_buf[i][k][l+1])) != tx_buf[i][k][l]) { - printf("Compare error link %d, pkt: %d, index: %d, Data: %x Expected: %x \n", i, k, l, (unsigned)loadb((int)&(rx_buf[i][k][l+1])), (unsigned)tx_buf[i][k][l]); - exit(1); - } - - } - } - } - } - - for (i = 0; i < AMBAPORTS; i++) { - free(tx[i]); - free(rx[i]); - for (j = 0; j < 64; j++) { - free(rx_buf[i][j]); - free(tx_buf[i][j]); - } - - } -#endif - -/* /\************************ TEST 5 **************************************\/ */ -#if TEST5 == 1 - printf("TEST 5: Throughput test\n\n"); - tx0 = malloc(MAXSIZE); - rx0 = malloc(MAXSIZE); - for(i = 0; i < AMBAPORTS; i++) { - tx[i] = malloc(SPWPORTS/2+2); - if (i == 0) { - for (j = 0; j < SPWPORTS/2; j++) { - tx[i][j] = j*2+1; - - } - tx[i][SPWPORTS/2] = 18; - tx[i][SPWPORTS/2+1] = 2; - } else { - for (j = 0; j < SPWPORTS/2; j++) { - tx[i][j] = 16-j*2; - - } - tx[i][SPWPORTS/2] = 17; - tx[i][SPWPORTS/2+1] = 1; - } - } - - - if ( (tx0 == NULL) || (rx0 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - - printf("Enabling reception\n"); - for(i = 0; i < AMBAPORTS; i++) { - for (j = 0; j < 64; j++) { - tmp = spw_rx(0, rx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - - printf("Transmitting\n"); - t1 = clock(); - for (j = 0; j < 64; j++) { - for(i = 0; i < AMBAPORTS; i++) { - tmp = spw_tx(0, 0, 0, 0, SPWPORTS/2+2, tx[i], MAXSIZE-3, tx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - for (j = 0; j < 64; j++) { - for(i = 0; i < AMBAPORTS; i++) { - while(!(tmp = spw_checktx(0, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - } - printf("Checking reception\n"); - for(i = 0; i < AMBAPORTS; i++) { - printf("+"); - for (j = 0; j < 64; j++) { - printf("."); - while(!(tmp = spw_checkrx(0, size, rxs, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != MAXSIZE-2) { - printf("Received packet has wrong length link: %d\n", i); - exit(1); - } - } - } - t2 = clock(); - t2 = t2 - t1; - t3 = t2/CLOCKS_PER_SEC; - bitrate = ((MAXSIZE-2)*64)/(t3*1000); - bitrate = bitrate*AMBAPORTS*8; - bitrate /= 1000.0; - printf("Effective bitrate: %3.1f Mbit/s\n", bitrate); - free(tx0); - free(rx0); - for(i = 0; i < AMBAPORTS; i++) { - free(tx[i]); - } -#endif - -#if TEST6 == 1 - printf("TEST 6: Packet size test using physical addresses. Minimum size usable is 2\n"); - printf("due to header deletion and minimum size 1 for the DMA channels. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < AMBAPORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - rx[i] = malloc(PKTTESTMAX); - tx_buf[i][0] = malloc(SPWPORTS/2+2); - - if ((tx[i] == NULL) || (tx_buf[i][0] == NULL)) { - printf("Memory initialization error\n"); - exit(1); - } - - if (i == 0) { - for (j = 0; j < SPWPORTS/2; j++) { - tx_buf[i][0][j] = j*2+1; - } - tx_buf[i][0][SPWPORTS/2] = 18; - tx_buf[i][0][SPWPORTS/2+1] = 2; - } else { - for (j = 0; j < SPWPORTS/2; j++) { - tx_buf[i][0][j] = 16-j*2; - } - tx_buf[i][0][SPWPORTS/2] = 17; - tx_buf[i][0][SPWPORTS/2+1] = 1; - } - - } - - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); - - printf("Enabling reception\n"); - for(j = 0; j < AMBAPORTS; j++) { - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - printf("Transmitting\n"); - for (j = 0; j < AMBAPORTS; j++) { - for(k = 0; k < i; k++) { - tx[j][k] = rand() % 256; - } - } - for(j = 0; j < AMBAPORTS; j++) { - tmp = spw_tx(0, 0, 0, 0, SPWPORTS/2+2, tx_buf[j][0], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_tx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < AMBAPORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - - printf("Checking reception\n"); - for(j = 0; j < AMBAPORTS; j++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != i+1) { - printf("Received packet has wrong length link: %d\n", j); - printf("Exp: %d, Got: %d, \n", i+1, *size); - exit(1); - } - for (k = 0; k < i; k++) { - if (loadb((int)&(rx[j][k+1])) != tx[AMBAPORTS-j-1][k]) { - printf("Compare error link: %d, index: %d Data: %x Expected: %x \n", j, k, (unsigned)loadb((int)&(rx[j][k+1])), (unsigned)tx[AMBAPORTS-j-1][k]); - exit(1); - } - } - - } - - } - for(i = 0; i < AMBAPORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST7 == 1 - printf("TEST 7: Packet size test using logical addresses. Minimum size usable is 1\n"); - printf("since this test disables header deletion. Must use \n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < AMBAPORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); -/* printf("tx[%d]: %x\n", i, (int)tx[i]); */ - rx[i] = malloc(PKTTESTMAX); -/* printf("rx[%d]: %x\n", i, (int)rx[i]); */ - - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - } - port = SPWPORTS+2; - for (i = 32; i < 256; i++) { - data = (1 << (port)); - writecfgaddress(0x00000000+i*4, data, spw[0]); - writecfgaddress(0x00000400+i*4, 0x4, spw[0]); -/* printf("Addr: %x Data: %x\n", 0x00000000+i*4, data); */ - port = port - 1; - if (port == SPWPORTS) { - port = SPWPORTS+AMBAPORTS; - } - } - - laddr = 32; laddr2 = 32; laddr3 = 32; - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); -/* printf("Enabling reception\n"); */ - for(j = 0; j < AMBAPORTS; j++) { -/* printf("port:%d rx[%d]: %x\n", port, j, (int)rx[j]); */ - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - - printf("Transmitting\n"); - for (j = 0; j < AMBAPORTS; j++) { - for(k = 1; k < i; k++) { - tx[j][k] = rand() % 256; - } - tx[j][0] = laddr; - laddr = laddr + 1; - if (laddr == 256) { - laddr = 32; - } - } - for(j = 0; j < AMBAPORTS; j++) { -/* printf("port:%d tx[%d]: %x\n", j, j, (int)tx[j]); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_tx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < AMBAPORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - - printf("Checking reception\n"); - for(j = 0; j < AMBAPORTS; j++) { - printf("Port: %d\n", j); - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", j); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", j); - exit(1); - } - if (*size != i) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i); - exit(1); - } -/* printf("Rx: %x Tx: %x\n", (int)&(rx[j][0]), (int)&(tx[j][0])); */ -/* printf("port:%d rx[%d]: %x\n", port2, j, (int)&(rx[j][0])); */ - for (k = 0; k < i; k++) { - if (loadb((int)&(rx[j][k])) != tx[AMBAPORTS-j-1][k]) { - printf("Compare error port: %u index: %u Data: %x Expected: %x \n", j, k, k, (unsigned)loadb((int)&(rx[j][k])), (unsigned)tx[AMBAPORTS-j-1][k]); - exit(1); - } - } - - } - - - } - for(i = 0; i < AMBAPORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST8 == 1 - printf("TEST 8: Packet size test using logical addresses. Minimum size usable is 2\n"); - printf("since this test enables header deletion. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < AMBAPORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - /* printf("tx[%d]: %x\n", i, (int)tx[i]); */ - rx[i] = malloc(PKTTESTMAX); -/* printf("rx[%d]: %x\n", i, (int)rx[i]); */ - - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - } - port = SPWPORTS+2; - for (i = 32; i < 256; i++) { - data = (1 << (port)); - writecfgaddress(0x00000000+i*4, data, spw[0]); - writecfgaddress(0x00000400+i*4, 0x5, spw[0]); -/* printf("Addr: %x Data: %x\n", 0x00000000+i*4, data); */ - port = port - 1; - if (port == SPWPORTS) { - port = SPWPORTS+2; - } - } - - laddr = 32; laddr2 = 32; laddr3 = 32; - for (i = 3; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); -/* printf("Enabling reception\n"); */ - for(j = 0; j < AMBAPORTS; j++) { -/* printf("port:%d rx[%d]: %x\n", port, j, (int)rx[j]); */ - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - -/* printf("Transmitting\n"); */ - for (j = 0; j < AMBAPORTS; j++) { - for(k = 1; k < i; k++) { - tx[j][k] = rand() % 256; - } - tx[j][0] = laddr; - laddr = laddr + 1; - if (laddr == 256) { - laddr = 32; - } - } - for(j = 0; j < AMBAPORTS; j++) { -/* printf("port:%d tx[%d]: %x\n", j, j, (int)tx[j]); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < AMBAPORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - -/* printf("Checking reception\n"); */ - for(j = 0; j < AMBAPORTS; j++) { -/* printf("Port: %d\n", port2); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", j); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", j); - exit(1); - } - if (*size != i-1) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i-1); - exit(1); - } - /* printf("Rx: %x Tx: %x\n", (int)&(rx[j][0]), (int)&(tx[j][0])); */ -/* printf("port:%d rx[%d]: %x\n", port2, j, (int)&(rx[j][0])); */ - for (k = 1; k < i; k++) { - if (loadb((int)&(rx[j][k-1])) != tx[AMBAPORTS-j-1][k]) { - printf("Compare error port: %u index: %u Data: %x Expected: %x \n", j, k, (unsigned)loadb((int)&(rx[j][k-1])), (unsigned)tx[AMBAPORTS-j-1][k]); - exit(1); - } - } - - } - - - } - for(i = 0; i < AMBAPORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST9 == 1 - printf("TEST 9: Test packet sizes with packet distribution\n"); - printf("for path addresses. Will only work with packet sizes\n"); - printf("up to 120 (guaranteed, can be a few chars higher depending\n"); - printf("on the number of credits when the test start) when \n"); - printf("fifosize is 64\n\n"); - ahb = (int *)AHBSLVADDR; - - for(i = 0; i < AMBAPORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - for (j = 0; j < SPWPORTS; j++) { - rx_buf[i][j] = malloc(PKTTESTMAX); - if (rx_buf[i][j] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - } - } - - for (i = 4; i < 121; i++) { - data = 1; - printf("Packet size: %d\n", i); - for(j = 1; j <= SPWPORTS; j++) { - /* printf("Number of ports: %d\n", j); */ - data = data | (1 << j); /* Enables packet distribution */ - writecfgaddress(0x00000004, data, spw[0]); - /* printf("Enabling reception\n"); */ - for (l = 0; l < AMBAPORTS; l++) { - for(k = 0; k < j; k++) { - /* printf("enabling port: %d\n", l); */ - tmp = spw_rx(0, rx_buf[l][k], spw[l]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - } - /* printf("Transmitting\n"); */ - for(l = 0; l < AMBAPORTS; l++) { - tx[l][0] = 1; - tx[l][1] = SPWPORTS+1+l; - for(k = 2; k < i; k++) { - tx[l][k] = rand() % 256; - } - } - -/* for(x = 0; x < i; x++) { */ -/* printf("%x ", tx[j][x]); */ -/* } */ -/* printf("\n"); */ - /* printf("Port: %d\n", j+1); */ - for (l = 0; l < AMBAPORTS; l++) { - tmp = spw_tx(0, 0, 0, 0, 0, tx[l], i, tx[l], spw[l]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - while(!(tmp = spw_checktx(0, spw[l]))) { - for(x = 0; x < 64; x++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", j); - exit(1); - } - } - - /* printf("Checking reception\n"); */ - for(l = 0; l < AMBAPORTS; l++) { - /* printf("Receiving port: %d\n", l); */ - for (k = 0; k < j; k++) { - /* printf("Packet: %d\n", k); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[l]))) { - for(x = 0; x < 64; x++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", l); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", l); - exit(1); - } - if (*size != i-2) { - printf("Received packet has wrong length link: %d\n", l); - printf("Got: %d, Expected: %d\n", *size, i-2); - exit(1); - } - - for (x = 2; x < i; x++) { - if (loadb((int)&(rx_buf[l][k][x-2])) != tx[l][x]) { - printf("Compare error port: %u pkt: %u index: %u Data: %x Expected: %x \n", l, j, x, (unsigned)loadb((int)&(rx_buf[l][k][x-2])), (unsigned)tx[l][x]); - exit(1); - } - } - - } - } - } - } - for(i = 0; i < AMBAPORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - for (j = 0; j < SPWPORTS; j++) { - free(rx_buf[i][j]); - } - } - -#endif - - -#if TEST10 == 1 - printf("TEST 10: Test packet sizes with packet distribution\n"); - printf("for logical addresses. Will only work with packet sizes\n"); - printf("up to 120 (guaranteed, can be a few chars higher depending\n"); - printf("on the number of credits when the test start) when \n"); - printf("fifosize is 64. Header deletion MUST be used, otherwise deadlock\n"); - printf("occurs\n\n"); - ahb = (int *)AHBSLVADDR; - - for(i = 0; i < AMBAPORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - for (j = 0; j < SPWPORTS; j++) { - rx_buf[i][j] = malloc(PKTTESTMAX); - if (rx_buf[i][j] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - } - } - - for (i = 4; i < 121; i++) { - printf("Packet size: %d\n", i); - for (n = 32; n < 256; n++) { - /* printf("Logical address: %d\n", n); */ - data = 1; - for(j = 1; j <= SPWPORTS; j++) { - /* printf("Number of ports: %d\n", j); */ - data = data | (1 << j); /* Enables packet distribution */ - writecfgaddress(4*n, data, spw[0]); - writecfgaddress(0x400+4*n, 0x5, spw[0]); - /* printf("Enabling reception\n"); */ - for (l = 0; l < AMBAPORTS; l++) { - for(k = 0; k < j; k++) { - /* printf("enabling port: %d\n", l); */ - tmp = spw_rx(0, rx_buf[l][k], spw[l]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - } - /* printf("Transmitting\n"); */ - for(l = 0; l < AMBAPORTS; l++) { - tx[l][0] = n; - tx[l][1] = SPWPORTS+1+l; - for(k = 2; k < i; k++) { - tx[l][k] = rand() % 256; - } - } - -/* for(x = 0; x < i; x++) { */ -/* printf("%x ", tx[j][x]); */ -/* } */ -/* printf("\n"); */ - /* printf("Port: %d\n", j+1); */ - for (l = 0; l < AMBAPORTS; l++) { - tmp = spw_tx(0, 0, 0, 0, 0, tx[l], i, tx[l], spw[l]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - while(!(tmp = spw_checktx(0, spw[l]))) { - for(x = 0; x < 64; x++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", j); - exit(1); - } - } - - /* printf("Checking reception\n"); */ - for(l = 0; l < AMBAPORTS; l++) { - /* printf("Receiving port: %d\n", l); */ - for (k = 0; k < j; k++) { - /* printf("Packet: %d\n", k); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[l]))) { - for(x = 0; x < 64; x++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", l); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", l); - exit(1); - } - if (*size != i-2) { - printf("Received packet has wrong length link: %d\n", l); - printf("Got: %d, Expected: %d\n", *size, i-2); - exit(1); - } - - for (x = 2; x < i; x++) { - if (loadb((int)&(rx_buf[l][k][x-2])) != tx[l][x]) { - printf("Compare error port: %u pkt: %u index: %u Data: %x Expected: %x \n", l, j, x, (unsigned)loadb((int)&(rx_buf[l][k][x-2])), (unsigned)tx[l][x]); - exit(1); - } - } - - } - } - } - - } - } - for(i = 0; i < AMBAPORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - for (j = 0; j < SPWPORTS; j++) { - free(rx_buf[i][j]); - } - } - -#endif - -/* /\************************ TEST 11 **************************************\/ */ -#if TEST11 == 1 - printf("TEST 11: Throughput test with additional FIFO port\n\n"); - tx0 = malloc(MAXSIZE); - rx0 = malloc(MAXSIZE); - for(i = 0; i < AMBAPORTS; i++) { - tx[i] = malloc(3); - tx[i][0] = 19; - if (i == 0) { - tx[i][1] = 18; - tx[i][2] = 2; - } else { - tx[i][1] = 17; - tx[i][2] = 1; - } - /* tx[i] = malloc(SPWPORTS/2+3); */ - /* if (i == 0) { */ -/* for (j = 0; j < SPWPORTS/2; j++) { */ -/* tx[i][j] = j*2+1; */ - -/* } */ -/* tx[i][SPWPORTS/2] = 19; */ -/* tx[i][SPWPORTS/2+1] = 18; */ -/* tx[i][SPWPORTS/2+2] = 2; */ -/* } else { */ -/* for (j = 0; j < SPWPORTS/2; j++) { */ -/* tx[i][j] = 16-j*2; */ - -/* } */ -/* tx[i][SPWPORTS/2] = 17; */ -/* tx[i][SPWPORTS/2+1] = 1; */ -/* } */ - } - - - if ( (tx0 == NULL) || (rx0 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - - printf("Enabling reception\n"); - for(i = 0; i < AMBAPORTS; i++) { - for (j = 0; j < 64; j++) { - tmp = spw_rx(0, rx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - - printf("Transmitting\n"); - t1 = clock(); - for (j = 0; j < 64; j++) { - printf("Iteration: %d\n", j); - for(i = 0; i < AMBAPORTS; i++) { - if (i == 0) { - tmp = spw_tx(0, 0, 0, 0, 3, tx[i], MAXSIZE-3, tx0, spw[i]); - } else { - tmp = spw_tx(0, 0, 0, 0, 3, tx[i], MAXSIZE-3, tx0, spw[i]); - } - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - for (j = 0; j < 64; j++) { - printf("Iteration: %d\n", j); - for(i = 0; i < AMBAPORTS; i++) { - while(!(tmp = spw_checktx(0, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - } - printf("Checking reception\n"); - for(i = 0; i < AMBAPORTS; i++) { - for (j = 0; j < 64; j++) { - printf("Iteration: %d\n", j); - while(!(tmp = spw_checkrx(0, size, rxs, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != MAXSIZE-2) { - printf("Received packet has wrong length link: %d\n", i); - printf("Exp: %d, Got: %d\n", MAXSIZE-2, *size); - exit(1); - } - } - } - t2 = clock(); - t2 = t2 - t1; - t3 = t2/CLOCKS_PER_SEC; - bitrate = ((MAXSIZE-2)*64)/(t3*1000); - bitrate = bitrate*AMBAPORTS*8; - bitrate /= 1000.0; - printf("Effective bitrate: %3.1f Mbit/s\n", bitrate); - free(tx0); - free(rx0); - for(i = 0; i < AMBAPORTS; i++) { - free(tx[i]); - } -#endif - -#if TEST12 == 1 - printf("TEST 12: Packet size test using physical addresses. Minimum size usable is 2\n"); - printf("due to header deletion and minimum size 1 for the DMA channels. Must use\n"); - printf("promiscuous mode. Uses the FIFO port\n\n"); - for(i = 0; i < AMBAPORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - rx[i] = malloc(PKTTESTMAX); - tx_buf[i][0] = malloc(SPWPORTS/2+3); - - if ((tx[i] == NULL) || (tx_buf[i][0] == NULL)) { - printf("Memory initialization error\n"); - exit(1); - } - - if (i == 0) { - for (j = 0; j < SPWPORTS/2; j++) { - tx_buf[i][0][j] = j*2+1; - } - tx_buf[i][0][SPWPORTS/2] = 19; - tx_buf[i][0][SPWPORTS/2+1] = 18; - tx_buf[i][0][SPWPORTS/2+2] = 2; - } else { - for (j = 0; j < SPWPORTS/2; j++) { - tx_buf[i][0][j] = 16-j*2; - } - tx_buf[i][0][SPWPORTS/2] = 19; - tx_buf[i][0][SPWPORTS/2+1] = 17; - tx_buf[i][0][SPWPORTS/2+2] = 1; - } - - } - - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); - - /* printf("Enabling reception\n"); */ - for(j = 0; j < AMBAPORTS; j++) { - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - /* printf("Transmitting\n"); */ - for (j = 0; j < AMBAPORTS; j++) { - for(k = 0; k < i; k++) { - tx[j][k] = rand() % 256; - /* printf("%x ", tx[j][k]); */ - } - } - for(j = 0; j < AMBAPORTS; j++) { - tmp = spw_tx(0, 0, 0, 0, SPWPORTS/2+3, tx_buf[j][0], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_tx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < AMBAPORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - - /* printf("Checking reception\n"); */ - for(j = 0; j < AMBAPORTS; j++) { - /* printf("Port: %d\n", j); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != i+1) { - printf("Received packet has wrong length link: %d\n", j); - printf("Exp: %d, Got: %d, \n", i+1, *size); - exit(1); - } - for (k = 0; k < i; k++) { - tmpchar = loadb((int)&(rx[j][k+1])); - /* printf("%x ", tmpchar); */ - if (tmpchar != tx[AMBAPORTS-j-1][k]) { - printf("Compare error link: %d, index: %d Data: %x Expected: %x \n", j, k, (unsigned)loadb((int)&(rx[j][k+1])), (unsigned)tx[AMBAPORTS-j-1][k]); - } - } - - } - - } - for(i = 0; i < AMBAPORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - - - - - printf("*********** Test suite completed successfully ************\n"); - exit(0); - -} diff --git a/software/spw/router_test_dual.c b/software/spw/router_test_dual.c deleted file mode 100644 index b6103e86..00000000 --- a/software/spw/router_test_dual.c +++ /dev/null @@ -1,1859 +0,0 @@ -/*****************************************************************************/ -/* This file is a part of the GRLIB VHDL IP LIBRARY */ -/* Copyright (C) 2010 GAISLER RESEARCH */ - -/* This program is free software; you can redistribute it and/or modify */ -/* it under the terms of the GNU General Public License as published by */ -/* the Free Software Foundation; either version 2 of the License, or */ -/* (at your option) any later version. */ - -/* See the file COPYING for the full details of the license. */ -/******************************************************************************/ -#define PORTS 2 -#define STARTINDEX 0 - -const SPW_ADDR[30] = - {0x80000a00, - 0x80000b00, - 0x80000c00, - 0x80000700, - 0x80000800, - 0x80000900, - 0x80000a00, - 0x80000b00, - 0x80000c00, - 0x80000d00, - 0x80000e00, - 0x80000f00, - 0x80001000, - 0x80001100, - 0x80001200, - 0x80001300, - 0x80001400, - 0x80001500, - 0x80001600, - 0x80001700, - 0x80001800, - 0x80001900, - 0x80001a00, - 0x80001b00, - 0x80001c00, - 0x80001d00, - 0x80001e00, - 0x80001f00, - 0x80002000, - 0x80002100}; - -#define AHBSLV 0 -#define AHBSLVADDR 0xFFF20000 - -#define SPW_FREQ 200000 /* Frequency of txclk in khz, set to 0 to use reset value */ -#define AHBFREQ 50000 /* Set to zero to leave reset values */ - -#define SPW_CLKDIV 0 - -#include -#include "spwapi.h" -#include "rmapapi.h" -#include -#include -#include - -#define PKTTESTMAX 65536 -#define DESCPKT 1024 -#define MAXSIZE 16777216 /*must not be set to more than 16777216 (2^24)*/ -#define RMAPSIZE 1024 -#define RMAPCRCSIZE 1024 - -#define TEST1 0 -#define TEST2 0 -#define TEST3 1 -#define TEST4 1 -#define TEST5 1 -#define TEST6 0 -#define TEST7 0 -#define TEST8 0 -#define TEST9 1 - - -static inline char loadb(int addr) -{ - char tmp; - asm(" lduba [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -static inline int loadmem(int addr) -{ - int tmp; - asm(" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -int writecfgaddress(int addr, int data, struct spwvars *spw) -{ - - char *tx0; - char *rx0; - char *rx1; - char *tx1; - char *dpa; - char *spa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int i; - int iterations; - int *size; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(32); - dpa = malloc(1); - spa = malloc(1); - *dpa = 0x00; - *spa = 0x01; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - tx1[0] = (char) ((data >> 24) & 0xFF); - tx1[1] = (char) ((data >> 16) & 0xFF); - tx1[2] = (char) ((data >> 8) & 0xFF); - tx1[3] = (char) (data & 0xFF); - - cmd->incr = yes; - cmd->type = writecmd; - cmd->verify = yes; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = spa; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = writerep; - reply->verify = yes; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if (spw_tx(0, 1, 1, 1, *cmdsize, tx0, 4, tx1, spw)) { - printf("Transmission failed\n"); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+1)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize+1, *size); - } - for(i = 0; i < *replysize; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; - -} - -int readcfgaddress(int addr, int *data, struct spwvars *spw) -{ - char *tx0; - char *tx1; - char *rx0; - char *rx1; - char *dpa; - char *spa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int *size; - int i; - int iterations; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(4); - dpa = malloc(1); - spa = malloc(1); - *dpa = 0x00; - *spa = 0x01; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = spa; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw)) { - printf("Transmission failed\n"); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(i = 0; i < *replysize-1; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - *data = ((loadb((int)&rx1[*size-5]) << 24) & 0xFF000000) | ((loadb((int)&rx1[*size-4]) << 16) & 0xFF0000) | ((loadb((int)&rx1[*size-3]) << 8) & 0xFF00) | ((loadb((int)&rx1[*size-2]) & 0xFF)); - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(spa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; -} - -int main(int argc, char *argv[]) -{ - int ret; - clock_t t1, t2; - double t3, bitrate; - int regs[1024]; - int dmachan; - int sysfreq; - int txfreq1; - int txfreq2; - int i; - int j; - int k; - int m; - int l; - int x; - int iterations; - int data; - int hdr; - int notrx; - int tmp; - int eoplen; - int *size; - char *txbuf; - char *rxbuf; - char *rx0; - char *rx1; - char *rx2; - char *rx3; - char *tx0; - char *tx1; - char *tx2; - char *tx3; - char *tx[64]; - char *rx[128]; - char *tx_addr[16]; - struct rxstatus *rxs; - struct spwvars *spw[30]; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - int *cmdsize; - int *replysize; - int startrx[4]; - int rmappkt; - int rmapincr; - int destaddr; - int sepaddr[4]; - int chanen[4]; - int rmaprx; - int found; - int rxchan; - int length; - int maxlen; - char *dpa; - int wdog; - int pnp; - int spwports; - int fifoports; - int ahbports; - int laddr; - int laddr2; - int laddr3; - int port2; - int port; - int start; - int *ahb; - int prev_ctrl; - int prev_count; - int prev_count2; - - printf("**** GRSPW ROUTER TEST DUAL **** \n\n"); - for (i = 0; i < PORTS; i++) { - spw[i] = (struct spwvars *) malloc(sizeof(struct spwvars)); - } - - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - - - printf("**** TEST STARTED **** \n\n"); - /************************ TEST INIT ***********************************/ - printf("Initalizing parameters and links"); - for(i = 0; i < PORTS; i++) { - if (spw_setparam(i+1, SPW_CLKDIV, 0xBF, 1, 1, SPW_ADDR[i], AHBFREQ, spw[i], 0, SPW_FREQ/10000-1) ) { - printf("Illegal parameters to spacewire\n"); - exit(1); - } - for(j = 0; j < 4; j++) { - spw_setparam_dma(j, i+1, 0x0, 1, MAXSIZE, spw[i]); - } - } - - - /* reset links and initialize links*/ - for(i = 0; i < PORTS; i++) { - if ((ret = spw_init(spw[i]))) { - printf("Link initialization failed for link%d: %d\n", i, ret); - } - printf("SPW %d version: %d \n", i, spw[i]->ver); - if (wait_running(spw[i])) { - printf("Link %d did not enter run-state\n", i); - } - } - - printf("Set Router link to maximum speed\n"); - for(i = 0; i < PORTS; i++) { - printf("Iteration: %d\n", i); - readcfgaddress(0x00000804+i*4, (int *)&data, spw[0]); - data = data & 0x00FFFFFF; - data = data | 0x2; - writecfgaddress(0x00000804+i*4, data, spw[0]); - } - - printf("Read config information\n"); - readcfgaddress(0x00000a00, (int *)&data, spw[0]); - printf("Data: %x\n", data); - - pnp = data & 1; - wdog = (data >> 1) & 1; - fifoports = (data >> 17) & 0x1F; - ahbports = (data >> 22) & 0x1F; - spwports = (data >> 27) & 0x1F; - - if (pnp) { - printf("Plug and Play support\n"); - } else { - printf("No Plug and Play support\n"); - } - if (wdog) { - printf("Watchdog timers\n"); - } else { - printf("No watchdog timers\n"); - } - - printf("%d Spw ports\n", spwports); - printf("%d AHB ports\n", ahbports); - printf("%d FIFO ports\n", fifoports); - - for (i = 1; i <= spwports; i++) { - printf("Port: %d\n", i); - readcfgaddress(0x00000800+i*4, (int *)&data, spw[0]); - printf("Control register: %x\n", data); - readcfgaddress(0x00000880+i*4, (int *)&data, spw[0]); - printf("Status register: %x\n", data); - readcfgaddress(0x00000900+i*4, (int *)&data, spw[0]); - printf("Timer register: %x\n", data); - } - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - printf("Time-code register: %x\n", data); - readcfgaddress(0x00000a08, (int *)&data, spw[0]); - printf("Version/instance ID: %x\n", data); - readcfgaddress(0x00000a0c, (int *)&data, spw[0]); - printf("Initialization divisor: %x\n", data); - readcfgaddress(0x00000a10, (int *)&data, spw[0]); - printf("Configuration write enable: %x\n", data); - readcfgaddress(0x00000a14, (int *)&data, spw[0]); - printf("Timer prescaler: %x\n", data); - -/* /\************************ TEST 1 **************************************\/ */ -#if TEST1 == 1 -#if AHBSLV == 1 - printf("TEST 1: Check all registers in configuration port through AHB slave interface \n\n"); - printf("Read group adaptive routing/packet distribution registers\n\n"); - for(i = 4; i < 0x400; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read routing table entries\n\n"); - for(i = 0x480; i < 0x800; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read port control registers\n\n"); - for(i = 0x800; i < 0x880; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read port status registers\n\n"); - for(i = 0x880; i < 0x900; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read Prescaler value\n\n"); - data = loadmem(AHBSLVADDR + 0x900); - regs[0x900/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0x900, data); - printf("\n"); - printf("Read timer registers\n\n"); - for(i = 0x904; i < 0xA00; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read router configuration register\n\n"); - data = loadmem(AHBSLVADDR + 0xA00); - regs[0xA00/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA00, data); - printf("\n"); - printf("Read time-code register\n\n"); - data = loadmem(AHBSLVADDR + 0xA04); - regs[0xA04/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA04, data); - printf("\n"); - printf("Version/instance ID register\n\n"); - data = loadmem(AHBSLVADDR + 0xA08); - regs[0xA08/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA08, data); - printf("\n"); - printf("TEST 1: completed successfully\n\n"); -#endif -#endif - -/* /\************************ TEST 2 **************************************\/ */ -#if TEST2 == 1 - printf("TEST 2: Check all registers in configuration port using RMAP \n\n"); - tx0 = (char *)malloc(64); - tx1 = (char *)calloc(RMAPSIZE, 1); - rx0 = (char *)malloc(RMAPSIZE+4); - rx1 = (char *)malloc(32+RMAPSIZE); - rx2 = (char *)malloc(32+RMAPSIZE); - dpa = malloc(1); - - if( (tx0 == NULL) || (tx1 == NULL) || (rx0 == NULL) || - (rx1 == NULL) || (rx2 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - *dpa = 0x00; - - i = 4; - while(1) { - if (i == 4) { - printf("Read port setup registers\n\n"); - } - if (i == 0x480) { - printf("Read routing table entries\n\n"); - } - if (i == 0x800) { - printf("Read port control registers\n\n"); - } - if (i == 0x880) { - printf("Read port status registers\n\n"); - } - if (i == 0x900) { - printf("Read prescaler register\n\n"); - } - if (i == 0x904) { - printf("Read timer registers\n\n"); - } - if (i == 0xA00) { - printf("Read configuration/status register\n\n"); - } - if (i == 0xA04) { - printf("Read time-code register\n\n"); - } - if (i == 0xA08) { - printf("Read version/instance ID register\n\n"); - } - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = 0x1; - cmd->tid = i; - cmd->addr = i; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = (char *)NULL; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - exit(1); - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0xBF; - reply->srcaddr = 0x1; - reply->tid = i; - reply->addr = i; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx2, replysize)) { - printf("RMAP reply build failed\n"); - exit(1); - } - while (spw_rx(0, rx1, spw[0])) { - for (k = 0; k < 64; k++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw[0])) { - printf("Transmission failed\n"); - exit(1); - } - while (!(tmp = spw_checktx(0, spw[0]))) { - for (k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - exit(1); - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (k = 0; k < 64; k++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - exit(1); - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - exit(1); - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - exit(1); - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(k = 0; k < *replysize-1; k++) { - if (loadb((int)&(rx1[k])) != rx2[k]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", k, (unsigned)loadb((int)&(rx1[k])), (unsigned)rx2[k]); - exit(1); - } - } - data = ((loadb((int)&rx1[*size-5]) << 24) & 0xFF000000) | ((loadb((int)&rx1[*size-4]) << 16) & 0xFF0000) | ((loadb((int)&rx1[*size-3]) << 8) & 0xFF00) | ((loadb((int)&rx1[*size-2]) & 0xFF)); -#if TEST1 == 1 -#if AHBSLV == 1 - tmp = data; - if (i >= 0x880 && i < 0x900) { - /* mask port status registers */ - tmp = data & 0; - regs[i/4] = regs[i/4] & 0; - } - if (tmp != regs[i/4]) { - printf("ERROR: Mismatch between data read from AHB slave interface and RMAP interface\n"); - printf("AHB: %08X RMAP: %08X\n", regs[i/4], tmp); - exit(1); - } -#endif -#endif - - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - if (i < 0x3FC) { - i = i + 4; - } else if (i == 0x3FC) { - i = 0x480; - } else if (i < 0x900) { - i = i + 4; - } else if ((wdog) && (i < 0x9FC)) { - i = i + 4; - } else if (i < 0xA08) { - i = i + 4; - } else { - break; - } - } - printf("\n"); - free(tx0); - free(tx1); - free(rx0); - free(rx1); - free(rx2); - free(dpa); -#endif - - -/* /\************************ TEST 3 **************************************\/ */ -#if TEST3 == 1 - printf("TEST 3: Test time-code propagation \n\n"); - printf("Initialize time-counter to 0 \n\n"); - //Enable router main time-code register - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - data = data | (1 << 8); - writecfgaddress(0x00000a04, data, spw[0]); - //Enable time-code propagation for all ports - for (i = 0; i < spwports; i++) { - readcfgaddress(0x00000804+i*4, (int *)&data, spw[0]); - data = data | (1 << 5); - writecfgaddress(0x00000804+i*4, data, spw[0]); - } - tmp = send_time_exp(0, 0, spw[0]); - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - if ((data & 0x3F) != 0 ) { - printf("ERROR: Router time-code register not updated: %x\n", data); - exit(1); - } - if (!((data >> 8) & 1)) { - printf("ERROR: Router time-code register not enabled\n"); - exit(1); - } - printf("Send one incrementing time-code so that destination is initialized \n\n"); - send_time(spw[0]); - printf("Check that incrementing time values with wrap-around are propagated \n\n"); - prev_ctrl = 0; - prev_count = 0; - i = 2; - while(i < 256) { - printf("Iteration: %d\n", i); - send_time(spw[0]); - for(k = 0; k < 1000; k++); /* delay*/ - tmp = check_time(spw[1]); - if (tmp != 1) { - printf("ERROR: Time-code not received"); - exit(1); - } - if (get_time(spw[1]) != (i % 64)) { - printf("ERROR: Wrong time-code value in counter"); - exit(1); - } - //check router time-code register value - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - if ((data & 0x3F) != (i % 64) ) { - printf("ERROR: Router time-code counter not updated: %x\n", data); - exit(1); - } - if ((data & 0xC0) != 0 ) { - printf("ERROR: Router time-code ctrl bits not updated: %x\n", data); - exit(1); - } - if (!((data >> 8) & 1)) { - printf("ERROR: Router time-code register not enabled\n"); - exit(1); - } - i++; - } - i = 0; - printf("Check that random counter values are always propagated to the router main register \n\n"); - while (i < 64) { - printf("Iteration: %d\n", i); - x = rand() % 64; - tmp = send_time_exp(0, x, spw[0]); - //check router time-code register value - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - if ((data & 0x3F) != (x % 64) ) { - printf("ERROR: Router time-code count register not updated: %x\n", data); - exit(1); - } - if ((data & 0xC0) != 0 ) { - printf("ERROR: Router time-code ctrl register incorrect: %x\n", data); - exit(1); - } - if (!((data >> 8) & 1)) { - printf("ERROR: Router time-code register not enabled\n"); - exit(1); - } - i++; - } - prev_count = x; - printf("Check that main register is not updated and no time-codes propagated when\n"); - printf("main time register is disabled\n"); - tmp = send_time_exp(0, 0, spw[0]); - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - data = data & 0xFFFFFEFF; - writecfgaddress(0x00000a04, data, spw[0]); - printf("Incrementing values\n"); - i = 0; - while (i < 64) { - printf("Iteration: %d\n", i); - send_time(spw[0]); - for(k = 0; k < 1000; k++); /* delay*/ - tmp = check_time(spw[1]); - if (tmp == 1) { - printf("ERROR: Time-code received\n"); - exit(1); - } - //check router time-code register value - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - if ((data & 0x3F) != 0) { - printf("ERROR: Router time-code register count updated: %x\n", data); - exit(1); - } - if ((data & 0xC0) != 0) { - printf("ERROR: Router time-code register ctrl updated: %x\n", data); - exit(1); - } - if (((data >> 8) & 1)) { - printf("ERROR: Router time-code register enabled\n"); - exit(1); - } - i++; - } - printf("Random values\n"); - i = 0; - while (i < 64) { - printf("Iteration: %d\n", i); - x = rand() % 64; - send_time_exp(0, x, spw[0]); - for(k = 0; k < 1000; k++); /* delay*/ - tmp = check_time(spw[1]); - if (tmp == 1) { - printf("ERROR: Time-code received"); - exit(1); - } - //check router time-code register value - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - if ((data & 0x3F) != 0) { - printf("ERROR: Router time-code register count updated: %x\n", data); - exit(1); - } - if ((data & 0xC0) != 0) { - printf("ERROR: Router time-code register ctrl updated: %x\n", data); - exit(1); - } - if (((data >> 8) & 1)) { - printf("ERROR: Router time-code register enabled\n"); - exit(1); - } - i++; - } - printf("Re-enable main register\n"); - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - data = data | (1 << 8); - writecfgaddress(0x00000a04, data, spw[0]); - printf("Check that no time-codes are propagated when disabled in port 1 register\n"); - printf("NOTE that the source MUST be connected to port 1\n"); - readcfgaddress(0x00000804, (int *)&data, spw[0]); - data = data & 0xFFFFFFDF; - writecfgaddress(0x00000804, data, spw[0]); - printf("Random values\n"); - i = 0; - while (i < 64) { - printf("Iteration: %d\n", i); - x = rand() % 64; - send_time_exp(0, x, spw[0]); - for(k = 0; k < 1000; k++); /* delay*/ - tmp = check_time(spw[1]); - if (tmp == 1) { - printf("ERROR: Time-code received"); - exit(1); - } - //check router time-code register value - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - if ((data & 0x3F) != 0) { - printf("ERROR: Router time-code register count updated: %x\n", data); - exit(1); - } - if ((data & 0xC0) != 0) { - printf("ERROR: Router time-code register ctrl updated: %x\n", data); - exit(1); - } - if (!((data >> 8) & 1)) { - printf("ERROR: Router time-code register not enabled\n"); - exit(1); - } - i++; - } - readcfgaddress(0x00000804, (int *)&data, spw[0]); - data = data | (1 << 5); - writecfgaddress(0x00000804, data, spw[0]); - printf("Check that no time-codes are propagated when disabled in port 6 register\n"); - printf("NOTE that the destination MUST be connected to port 6\n"); - readcfgaddress(0x00000800+6*4, (int *)&data, spw[0]); - data = data & 0xFFFFFFDF; - writecfgaddress(0x00000800+6*4, data, spw[0]); - printf("Random values\n"); - i = 0; - while (i < 64) { - printf("Iteration: %d\n", i); - x = rand() % 64; - send_time_exp(0, x, spw[0]); - for(k = 0; k < 1000; k++); /* delay*/ - tmp = check_time(spw[1]); - if (tmp == 1) { - printf("ERROR: Time-code received"); - exit(1); - } - //check router time-code register value - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - if ((data & 0x3F) != x) { - printf("ERROR: Router time-code register count not updated: %x\n", data); - exit(1); - } - if (((data >> 6) & 0x3) != 0) { - printf("ERROR: Router time-code register ctrl not updated: %x\n", data); - exit(1); - } - if (!((data >> 8) & 1)) { - printf("ERROR: Router time-code register not enabled\n"); - exit(1); - } - i++; - } - readcfgaddress(0x00000800+6*4, (int *)&data, spw[0]); - data = data | (1 << 5); - writecfgaddress(0x00000800+6*4, data, spw[0]); - printf("Check that all time-codes are propagated and the main register\n"); - printf("updated when time-code mode is 0 and all four control values are used\n"); - readcfgaddress(0x00000a00, (int *)&data, spw[0]); - data = data & 0xFFFFFFF7; - writecfgaddress(0x00000a00, data, spw[0]); - send_time_exp(0, 0, spw[0]); - send_time(spw[0]); - printf("Incrementing values\n"); - i = 2; - while (i <= 64) { - x = rand() % 4; - printf("Iteration: %d, ctrl: %x\n", i, x); - send_time_exp(x, (i % 64), spw[0]); - for(k = 0; k < 1000; k++); /* delay*/ - tmp = check_time(spw[1]); - if (tmp != 1) { - printf("ERROR: Time-code not received"); - exit(1); - } - if (get_time(spw[1]) != (i % 64)) { - printf("ERROR: Wrong time-code value in counter"); - exit(1); - } - //check router time-code register value - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - if ((data & 0x3F) != (i % 64)) { - printf("ERROR: Router time-code register count not updated: %x\n", data); - exit(1); - } - if (((data >> 6) & 3) != x) { - printf("ERROR: Router time-code register ctrl not updated: %x\n", data); - exit(1); - } - if (!((data >> 8) & 1)) { - printf("ERROR: Router time-code register not enabled\n"); - exit(1); - } - i++; - } - prev_ctrl = x; - prev_count = 0; - prev_count2 = 0; - printf("Random values\n"); - i = 2; - while (i <= 1024) { - x = rand() % 4; - m = rand() % 64; - printf("Iteration: %d, count: %d, ctrl: %d\n", i, m, x); - send_time_exp(x, m, spw[0]); - if ((m == ((prev_count+1) % 64)) && (prev_count == ((prev_count2+1) % 64))) { - for(k = 0; k < 1000; k++); /* delay*/ - tmp = check_time(spw[1]); - if (tmp != 1) { - printf("ERROR: Time-code not received"); - exit(1); - } - if (get_time(spw[1]) != (m % 64)) { - printf("ERROR: Wrong time-code value in counter"); - exit(1); - } - if (get_time_ctrl(spw[1]) != x) { - printf("ERROR: Wrong time-code value in counter"); - exit(1); - } - } - //check router time-code register value - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - if ((data & 0x3F) != m) { - printf("ERROR: Router time-code register count not updated: %x\n", data); - exit(1); - } - if (m == ((prev_count+1) % 64)) { - if (((data >> 6) & 3) != x) { - printf("ERROR: Router time-code register ctrl not updated: %x\n", data); - exit(1); - } - } - if (!((data >> 8) & 1)) { - printf("ERROR: Router time-code register not enabled\n"); - exit(1); - } - i++; - prev_count2 = prev_count; - prev_count = m; - } - printf("Check that only time-codes with ctrl=0 are propagated and the main register\n"); - printf("updated when time-code mode is 1 and all four control values are used\n"); - readcfgaddress(0x00000a00, (int *)&data, spw[0]); - data = data | (1 << 3); - writecfgaddress(0x00000a00, data, spw[0]); - send_time_exp(0, 0, spw[0]); - send_time(spw[0]); - prev_count = 1; - prev_count2 = 0; - prev_ctrl = 0; - i = 2; - while (i <= 64) { - x = rand() % 4; - printf("Iteration: %d, ctrl: %x\n", i, x); - send_time_exp(x, (i % 64), spw[0]); - for(k = 0; k < 1000; k++); /* delay*/ - if ((x == 0) && (i == ((prev_count+1) % 64)) && (prev_count == ((prev_count2+1) % 64))) { - tmp = check_time(spw[1]); - if (tmp != 1) { - printf("ERROR: Time-code not received"); - exit(1); - } - if (get_time(spw[1]) != (i % 64)) { - printf("ERROR: Wrong time-code value in counter"); - exit(1); - } - } else { - tmp = check_time(spw[1]); - if (tmp == 1) { - printf("ERROR: Time-code received"); - exit(1); - } - } - //check router time-code register value - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - if (x == 0) { - if ((data & 0x3F) != (i % 64)) { - printf("ERROR: Router time-code register count not updated: %x\n", data); - exit(1); - } - if (((data >> 6) & 3) != 0) { - printf("ERROR: Router time-code register ctrl not updated: %x\n", data); - exit(1); - } - if (!((data >> 8) & 1)) { - printf("ERROR: Router time-code register not enabled\n"); - exit(1); - } - prev_count2 = prev_count; - prev_count = (i % 64); - } else { - if ((data & 0x3F) != prev_count) { - printf("ERROR: Router time-code register count updated: %x\n", data); - exit(1); - } - if (((data >> 6) & 3) != 0) { - printf("ERROR: Router time-code register ctrl updated: %x\n", data); - exit(1); - } - if (!((data >> 8) & 1)) { - printf("ERROR: Router time-code register not enabled\n"); - exit(1); - } - } - i++; - } - printf("\n"); - printf("\n"); - -#endif - -/* /\************************ TEST 4 **************************************\/ */ -#if TEST4 == 1 - printf("TEST 4: Packet transmission test \n\n"); - for(i = 0; i < PORTS; i++) { - tx[i] = malloc(64); - rx[i] = malloc(64); - tx_addr[i] = malloc(4); - } - printf("Enabling reception\n"); - for(i = 0; i < PORTS; i++) { - tmp = spw_rx(0, rx[i], spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - printf("Transmitting\n"); - for(i = 0; i < PORTS; i++) { - if (i == 0) { - tx_addr[0][0] = 2; - tx_addr[0][1] = 4; - tx_addr[0][2] = 6; - tx_addr[0][3] = 2; - } else { - tx_addr[1][0] = 5; - tx_addr[1][1] = 3; - tx_addr[1][2] = 1; - tx_addr[1][3] = 1; - } - for(j = 0; j < 64; j++) { - tx[i][j] = j+i*4; - } - tmp = spw_tx(0, 0, 0, 0, 4, tx_addr[i], 64, tx[i], spw[i]); - if (tmp != 0) { - printf("ERROR: spw_tx failed: %d\n", tmp); - exit(1); - - } - - } - printf("Checking transmission\n"); - for(i = 0; i < PORTS; i++) { - printf("Iteration: %d\n", i); - while(!(tmp = spw_checktx(0, spw[i]))) { - for(j = 0; j < 64; j++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - printf("Checking reception\n"); - for(i = 0; i < PORTS; i++) { - printf("Iteration: %d\n", i); - while(!(tmp = spw_checkrx(0, size, rxs, spw[i]))) { - for(j = 0; j < 64; j++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != 64) { - printf("Received packet has wrong length link: %d\n", i); - exit(1); - } - for(j = 0; j < 64; j++) { - if (loadb((int)&(rx[i][j])) != tx[PORTS-i-1][j]) { - printf("Compare error buf %d, index: %d, Data: %x Expected: %x \n", i, j, (unsigned)loadb((int)&(rx[i][j])), (unsigned)tx[PORTS-i-1][j]); - exit(1); - } - - } - } - for(i = 0; i < PORTS; i++) { - free(tx[i]); - free(rx[i]); - } -#endif - -/* /\************************ TEST 5 **************************************\/ */ -#if TEST5 == 1 - printf("TEST 5: Throughput test\n\n"); - tx0 = malloc(MAXSIZE); - rx0 = malloc(MAXSIZE); - for(i = 0; i < PORTS; i++) { - tx[i] = malloc(2); - if (i == 0) { - tx[i][0] = 2; - tx[i][1] = 2; - } else { - tx[i][0] = 1; - tx[i][1] = 1; - } - } - - - if ( (tx0 == NULL) || (rx0 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - - printf("Enabling reception\n"); - for(i = 0; i < PORTS; i++) { - for (j = 0; j < 64; j++) { - tmp = spw_rx(0, rx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - - printf("Transmitting\n"); - t1 = clock(); - for (j = 0; j < 64; j++) { - for(i = 0; i < PORTS; i++) { - tmp = spw_tx(0, 0, 0, 0, 2, tx[i], MAXSIZE-3, tx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - for (j = 0; j < 64; j++) { - for(i = 0; i < PORTS; i++) { - while(!(tmp = spw_checktx(0, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - } - printf("Checking reception\n"); - for(i = 0; i < PORTS; i++) { - for (j = 0; j < 64; j++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != MAXSIZE-2) { - printf("Received packet has wrong length link: %d\n", i); - exit(1); - } - } - } - t2 = clock(); - t2 = t2 - t1; - t3 = t2/CLOCKS_PER_SEC; - bitrate = (MAXSIZE*64)/(t3*1000); - bitrate = bitrate*PORTS*8; - bitrate /= 1000.0; - printf("Effective bitrate: %3.1f Mbit/s\n", bitrate); - free(tx0); - free(rx0); - for(i = 0; i < PORTS; i++) { - free(tx[i]); - } -#endif - -#if TEST6 == 1 - printf("TEST 6: Packet size test using physical addresses. Minimum size usable is 2\n"); - printf("due to header deletion and minimum size 1 for the DMA channels. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < PORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - rx[i] = malloc(PKTTESTMAX); - - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - tx[i][0] = PORTS-i+STARTINDEX; - tx[i][1] = PORTS-i; - for (j = 2; j < PKTTESTMAX; j++) { - tx[i][j] = j+i*4; - } - } - - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); - - printf("Enabling reception\n"); - for(j = 0; j < PORTS; j++) { - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - printf("Transmitting\n"); - for (j = 0; j < PORTS; j++) { - for(k = 2; k < i; k++) { - tx[j][k] = ~tx[j][k]; - } - } - for(j = 0; j < PORTS; j++) { - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < PORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - - printf("Checking reception\n"); - for(j = 0; j < PORTS; j++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != i-1) { - printf("Received packet has wrong length link: %d\n", j); - exit(1); - } - for (k = 0; k < i-1; k++) { - if (loadb((int)&(rx[j][k])) != tx[PORTS-j-1][k+1]) { - printf("Compare error buf: %u Data: %x Expected: %x \n", k, (unsigned)loadb((int)&(rx[j][k])), (unsigned)tx[PORTS-j-1][k+1]); - exit(1); - } - } - - } - - } - for(i = 0; i < PORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST7 == 1 - printf("TEST 7: Packet size test using logical addresses. Minimum size usable is 1\n"); - printf("since this test disables header deletion. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < PORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); -/* printf("tx[%d]: %x\n", i, (int)tx[i]); */ - rx[i] = malloc(PKTTESTMAX); -/* printf("rx[%d]: %x\n", i, (int)rx[i]); */ - - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - for (j = 0; j < PKTTESTMAX; j++) { - tx[i][j] = j+i*4; - } - } - port = PORTS; - for (i = 32; i < 256; i++) { - data = (1 << (port+STARTINDEX)); - writecfgaddress(0x00000000+i*4, data, spw[(i % PORTS)]); - writecfgaddress(0x00000400+i*4, 0x4, spw[(i % PORTS)]); -/* printf("Addr: %x Data: %x\n", 0x00000000+i*4, data); */ - port = port - 1; - if (port == 0) { - port = PORTS; - } - } - - laddr = 32; port = PORTS-1; port2 = PORTS-1; laddr2 = 32; laddr3 = 32; - for (i = 1; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); -/* printf("Enabling reception\n"); */ - for(j = 0; j < PORTS; j++) { -/* printf("port:%d rx[%d]: %x\n", port, j, (int)rx[j]); */ - tmp = spw_rx(0, rx[j], spw[port]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - if (port == 0) { - port = PORTS-1; - } else { - port = port - 1; - } - laddr2 = laddr2 + 1; - if (laddr2 == 256) { - laddr2 = 32; - port = PORTS-1; - } - - } - -/* printf("Transmitting\n"); */ - for (j = 0; j < PORTS; j++) { - for(k = 1; k < i; k++) { - tx[j][k] = ~tx[j][k]; - } - tx[j][0] = laddr; - laddr = laddr + 1; - if (laddr == 256) { - laddr = 32; - } - } - for(j = 0; j < PORTS; j++) { -/* printf("port:%d tx[%d]: %x\n", j, j, (int)tx[j]); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < PORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - -/* printf("Checking reception\n"); */ - for(j = 0; j < PORTS; j++) { -/* printf("Port: %d\n", port2); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[port2]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", j); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", j); - exit(1); - } - if (*size != i) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i); - exit(1); - } -/* printf("Rx: %x Tx: %x\n", (int)&(rx[j][0]), (int)&(tx[j][0])); */ -/* printf("port:%d rx[%d]: %x\n", port2, j, (int)&(rx[j][0])); */ - for (k = 0; k < i; k++) { - if (loadb((int)&(rx[j][k])) != tx[j][k]) { - printf("Compare error port: %u buf: %u index: %u Data: %x Expected: %x \n", port2, j, k, (unsigned)loadb((int)&(rx[j][k])), (unsigned)tx[j][k]); - exit(1); - } - } - if (port2 == 0) { - port2 = PORTS-1; - } else { - port2 = port2 - 1; - } - - laddr3 = laddr3 + 1; - if (laddr3 == 256) { - laddr3 = 32; - port2 = PORTS-1; - } - } - - - } - for(i = 0; i < PORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST8 == 1 - printf("TEST 8: Packet size test using logical addresses. Minimum size usable is 2\n"); - printf("since this test enables header deletion. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < PORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - /* printf("tx[%d]: %x\n", i, (int)tx[i]); */ - rx[i] = malloc(PKTTESTMAX); -/* printf("rx[%d]: %x\n", i, (int)rx[i]); */ - - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - for (j = 0; j < PKTTESTMAX; j++) { - tx[i][j] = j+i*4; - } - } - port = PORTS; - for (i = 32; i < 256; i++) { - data = (1 << (port+STARTINDEX)); - writecfgaddress(0x00000000+i*4, data, spw[(i % PORTS)]); - writecfgaddress(0x00000400+i*4, 0x5, spw[(i % PORTS)]); -/* printf("Addr: %x Data: %x\n", 0x00000000+i*4, data); */ - port = port - 1; - if (port == 0) { - port = PORTS; - } - } - - laddr = 32; port = PORTS-1; port2 = PORTS-1; laddr2 = 32; laddr3 = 32; - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); -/* printf("Enabling reception\n"); */ - for(j = 0; j < PORTS; j++) { -/* printf("port:%d rx[%d]: %x\n", port, j, (int)rx[j]); */ - tmp = spw_rx(0, rx[j], spw[port]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - if (port == 0) { - port = PORTS-1; - } else { - port = port - 1; - } - laddr2 = laddr2 + 1; - if (laddr2 == 256) { - laddr2 = 32; - port = PORTS-1; - } - - } - -/* printf("Transmitting\n"); */ - for (j = 0; j < PORTS; j++) { - for(k = 1; k < i; k++) { - tx[j][k] = ~tx[j][k]; - } - tx[j][0] = laddr; - laddr = laddr + 1; - if (laddr == 256) { - laddr = 32; - } - } - for(j = 0; j < PORTS; j++) { -/* printf("port:%d tx[%d]: %x\n", j, j, (int)tx[j]); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < PORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - -/* printf("Checking reception\n"); */ - for(j = 0; j < PORTS; j++) { -/* printf("Port: %d\n", port2); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[port2]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", j); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", j); - exit(1); - } - if (*size != i-1) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i-1); - exit(1); - } - /* printf("Rx: %x Tx: %x\n", (int)&(rx[j][0]), (int)&(tx[j][0])); */ -/* printf("port:%d rx[%d]: %x\n", port2, j, (int)&(rx[j][0])); */ - for (k = 1; k < i; k++) { - if (loadb((int)&(rx[j][k-1])) != tx[j][k]) { - printf("Compare error port: %u buf: %u index: %u Data: %x Expected: %x \n", port2, j, k, (unsigned)loadb((int)&(rx[j][k-1])), (unsigned)tx[j][k]); - exit(1); - } - } - if (port2 == 0) { - port2 = PORTS-1; - } else { - port2 = port2 - 1; - } - - laddr3 = laddr3 + 1; - if (laddr3 == 256) { - laddr3 = 32; - port2 = PORTS-1; - } - } - - - } - for(i = 0; i < PORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST9 == 1 - printf("TEST 9: Test packet sizes with packet distribution\n"); - printf("for path addresses\n\n"); - ahb = (int *)AHBSLVADDR; - - for(i = 0; i < PORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - rx[i] = malloc(PKTTESTMAX); - if ((tx[i] == NULL) || (rx[i] == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - for (j = 0; j < PKTTESTMAX; j++) { - tx[i][j] = j+i*4; - } - } - for (i = 1; i <= PORTS; i++) { - data = (1 << i); - - } - - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); -#if AHBSLV == 1 - start = 0; -#else - start = 1; -#endif - for(j = start; j < PORTS; j++) { - /* printf("source port: %d\n", j+1); */ - data = 1 | (1 << (j+1)); /* Enables packet distribution */ - for(k = 1; k <= PORTS; k++) { - /* printf("Sending to %d port(s)\n", k); */ - data = data | (1 << k); -#if AHBSLV == 1 - *(ahb+(j+1)) = data; -#else - writecfgaddress(0x00000000+(j+1)*4, data, spw[j]); -#endif - /* printf("Enabling reception\n"); */ - for(l = 0; l < k; l++) { - /* printf("enabling port: %d\n", l); */ - tmp = spw_rx(0, rx[l], spw[l]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - if (j >= k) { - /* printf("enabling port: %d\n", j); */ - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - /* printf("Transmitting\n"); */ - for(x = 1; x < i; x++) { - tx[j][x] = ~tx[j][x]; - } - tx[j][0] = j+1; - /* for(x = 0; x < i; x++) { */ -/* printf("%x ", tx[j][x]); */ -/* } */ -/* printf("\n"); */ - /* printf("Port: %d\n", j+1); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - while(!(tmp = spw_checktx(0, spw[j]))) { - for(x = 0; x < 64; x++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", j); - exit(1); - } - /* printf("Checking reception\n"); */ - for(l = 0; l < k; l++) { - /* printf("Receiving port: %d\n", l); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[l]))) { - for(x = 0; x < 64; x++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", l); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", l); - exit(1); - } - if (*size != i-1) { - printf("Received packet has wrong length link: %d\n", l); - printf("Got: %d, Expected: %d\n", *size, i-1); - exit(1); - } - - for (x = 1; x < i; x++) { - if (loadb((int)&(rx[l][x-1])) != tx[j][x]) { - printf("Compare error port: %u index: %u Data: %x Expected: %x \n", l, x, (unsigned)loadb((int)&(rx[l][x-1])), (unsigned)tx[j][x]); - printf("r: %x t: %x\n", (int)&(rx[l][x-1]), (int)&(tx[j][x])); - exit(1); - } - } - - } - if (j >= k) { - /* printf("Receiving port: %d\n", j); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(x = 0; x < 64; x++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", j); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", j); - exit(1); - } - if (*size != i-1) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i-1); - exit(1); - } - - for (x = 1; x < i; x++) { - if (loadb((int)&(rx[j][x-1])) != tx[j][x]) { - printf("Compare error port: %u index: %u Data: %x Expected: %x \n", j, x, (unsigned)loadb((int)&(rx[j][x-1])), (unsigned)tx[j][x]); - exit(1); - } - } - } - - - } -#if AHBSLV == 1 - *(ahb+(j+1)) = 0; -#endif - - } - - } - for(i = 0; i < PORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - - - - printf("*********** Test suite completed successfully ************\n"); - exit(0); - -} diff --git a/software/spw/router_test_dual_single_link.c b/software/spw/router_test_dual_single_link.c deleted file mode 100644 index b92eeaa0..00000000 --- a/software/spw/router_test_dual_single_link.c +++ /dev/null @@ -1,1603 +0,0 @@ -/*****************************************************************************/ -/* This file is a part of the GRLIB VHDL IP LIBRARY */ -/* Copyright (C) 2010 GAISLER RESEARCH */ - -/* This program is free software; you can redistribute it and/or modify */ -/* it under the terms of the GNU General Public License as published by */ -/* the Free Software Foundation; either version 2 of the License, or */ -/* (at your option) any later version. */ - -/* See the file COPYING for the full details of the license. */ -/******************************************************************************/ -#define PORTS 1 -#define SPWPORTS 8 -#define FIFOPORTS 2 - -const SPW_ADDR[30] = - {0x80000a00, - 0x80000b00, - 0x80000c00, - 0x80000700, - 0x80000800, - 0x80000900, - 0x80000a00, - 0x80000b00, - 0x80000c00, - 0x80000d00, - 0x80000e00, - 0x80000f00, - 0x80001000, - 0x80001100, - 0x80001200, - 0x80001300, - 0x80001400, - 0x80001500, - 0x80001600, - 0x80001700, - 0x80001800, - 0x80001900, - 0x80001a00, - 0x80001b00, - 0x80001c00, - 0x80001d00, - 0x80001e00, - 0x80001f00, - 0x80002000, - 0x80002100}; - -#define AHBSLV 0 -#define AHBSLVADDR 0xFFFC0000 - -#define SPW_FREQ 200000 /* Frequency of txclk in khz, set to 0 to use reset value */ -#define AHBFREQ 50000 /* Set to zero to leave reset values */ - -#define SPW_CLKDIV 0 - -#include -#include "spwapi.h" -#include "rmapapi.h" -#include -#include -#include - -#define PKTTESTMAX 1024 -#define DESCPKT 1024 -#define MAXSIZE 16777216 /*must not be set to more than 16777216 (2^24)*/ -#define RMAPSIZE 1024 -#define RMAPCRCSIZE 1024 - -#define TEST1 0 -#define TEST2 0 -#define TEST3 0 -#define TEST4 0 -#define TEST5 0 -#define TEST6 1 -#define TEST7 1 -#define TEST8 1 -#define TEST9 1 - - -static inline char loadb(int addr) -{ - char tmp; - asm(" lduba [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -static inline int loadmem(int addr) -{ - int tmp; - asm(" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -int writecfgaddress(int addr, int data, struct spwvars *spw) -{ - - char *tx0; - char *rx0; - char *rx1; - char *tx1; - char *dpa; - char *spa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int i; - int iterations; - int *size; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(32); - dpa = malloc(1); - spa = malloc(1); - *dpa = 0x00; - *spa = 0x01; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - tx1[0] = (char) ((data >> 24) & 0xFF); - tx1[1] = (char) ((data >> 16) & 0xFF); - tx1[2] = (char) ((data >> 8) & 0xFF); - tx1[3] = (char) (data & 0xFF); - - cmd->incr = yes; - cmd->type = writecmd; - cmd->verify = yes; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = spa; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = writerep; - reply->verify = yes; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if (spw_tx(0, 1, 1, 1, *cmdsize, tx0, 4, tx1, spw)) { - printf("Transmission failed\n"); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+1)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize+1, *size); - } - for(i = 0; i < *replysize; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; - -} - -int readcfgaddress(int addr, int *data, struct spwvars *spw) -{ - char *tx0; - char *tx1; - char *rx0; - char *rx1; - char *dpa; - char *spa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int *size; - int i; - int iterations; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(4); - dpa = malloc(1); - spa = malloc(1); - *dpa = 0x00; - *spa = 0x01; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = spa; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw)) { - printf("Transmission failed\n"); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(i = 0; i < *replysize-1; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - *data = ((loadb((int)&rx1[*size-5]) << 24) & 0xFF000000) | ((loadb((int)&rx1[*size-4]) << 16) & 0xFF0000) | ((loadb((int)&rx1[*size-3]) << 8) & 0xFF00) | ((loadb((int)&rx1[*size-2]) & 0xFF)); - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(spa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; -} - -int main(int argc, char *argv[]) -{ - int ret; - clock_t t1, t2; - double t3, bitrate; - int regs[1024]; - int dmachan; - int sysfreq; - int txfreq1; - int txfreq2; - int i; - int j; - int k; - int m; - int l; - int x; - int iterations; - int data; - int hdr; - int notrx; - int tmp; - int eoplen; - int *size; - char *txbuf; - char *rxbuf; - char *rx0; - char *rx1; - char *rx2; - char *rx3; - char *tx0; - char *tx1; - char *tx2; - char *tx3; - char *tx[64]; - char *rx[128]; - char *tx_buf[PORTS][64]; - char *rx_buf[PORTS][128]; - struct rxstatus *rxs; - struct spwvars *spw[30]; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - int *cmdsize; - int *replysize; - int startrx[4]; - int rmappkt; - int rmapincr; - int destaddr; - int sepaddr[4]; - int chanen[4]; - int rmaprx; - int found; - int rxchan; - int length; - int maxlen; - char *dpa; - int wdog; - int pnp; - int spwports; - int fifoports; - int ambaports; - int laddr; - int laddr2; - int laddr3; - int port2; - int port; - int start; - int *ahb; - - printf("**** GRSPW ROUTER TEST DUAL **** \n\n"); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - - - printf("**** TEST STARTED **** \n\n"); - /************************ TEST INIT ***********************************/ - printf("Initalizing parameters and links"); - for(i = 0; i < PORTS; i++) { - if (spw_setparam(i+1, 0, 0xBF, 1, 1, SPW_ADDR[i], AHBFREQ, spw[i], 0, SPW_FREQ/10000-1) ) { - printf("Illegal parameters to spacewire\n"); - exit(1); - } - for(j = 0; j < 4; j++) { - spw_setparam_dma(j, i+1, 0x0, 1, MAXSIZE, spw[i]); - } - } - - - /* reset links and initialize links*/ - for(i = 0; i < PORTS; i++) { - if ((ret = spw_init(spw[i]))) { - printf("Link initialization failed for link%d: %d\n", i, ret); - } - printf("SPW %d version: %d \n", i, spw[i]->ver); - if (wait_running(spw[i])) { - printf("Link %d did not enter run-state\n", i); - } - } - - printf("Set Router link to maximum speed\n"); - /* for(i = 2; i <= SPWPORTS; i++) { */ -/* printf("Iteration: %d\n", i); */ -/* readcfgaddress(0x00000804+i*4, (int *)&data, spw[0]); */ -/* printf("Data: %x\n", data); */ -/* data = data & 0x00FFFFF0; */ -/* data = data | 0x1; */ -/* writecfgaddress(0x00000804+i*4, data, spw[0]); */ -/* } */ - - for(i = 0; i < FIFOPORTS; i++) { - printf("Iteration: %d\n", i); - readcfgaddress(0x00000800+(SPWPORTS+1)*4+i*4, (int *)&data, spw[0]); - printf("Data: %x\n", data); - data = data | (1 << 10); - printf("Data: %x\n", data); - writecfgaddress(0x00000800+(SPWPORTS+1)*4+i*4, data, spw[0]); - } - - data = 0x13; - writecfgaddress(0x00000a0c, data, spw[0]); - - printf("Read config information\n"); - readcfgaddress(0x00000a00, (int *)&data, spw[0]); - printf("Data: %x\n", data); - - pnp = data & 1; - wdog = (data >> 1) & 1; - fifoports = (data >> 17) & 0x1F; - ambaports = (data >> 22) & 0x1F; - spwports = (data >> 27) & 0x1F; - - if (pnp) { - printf("Plug and Play support\n"); - } else { - printf("No Plug and Play support\n"); - } - if (wdog) { - printf("Watchdog timers\n"); - } else { - printf("No watchdog timers\n"); - } - - printf("%d Spw ports\n", spwports); - printf("%d AMBA ports\n", ambaports); - printf("%d FIFO ports\n", fifoports); - - for (i = 1; i <= spwports; i++) { - printf("Port: %d\n", i); - readcfgaddress(0x00000800+i*4, (int *)&data, spw[0]); - printf("Control register: %x\n", data); - readcfgaddress(0x00000880+i*4, (int *)&data, spw[0]); - printf("Status register: %x\n", data); - readcfgaddress(0x00000900+i*4, (int *)&data, spw[0]); - printf("Timer register: %x\n", data); - } - if (ambaports != 0 ) { - for (i = 1; i <= ambaports; i++) { - printf("Port: %d\n", i+spwports); - readcfgaddress(0x00000800+(i+spwports)*4, (int *)&data, spw[0]); - printf("Control register: %x\n", data); - readcfgaddress(0x00000880+(i+spwports)*4, (int *)&data, spw[0]); - printf("Status register: %x\n", data); - readcfgaddress(0x00000900+(i+spwports)*4, (int *)&data, spw[0]); - printf("Timer register: %x\n", data); - } - } - - if (fifoports != 0) { - for (i = 1; i <= fifoports; i++) { - printf("Port: %d\n", i+spwports+ambaports); - readcfgaddress(0x00000800+(i+ambaports+spwports)*4, (int *)&data, spw[0]); - printf("Control register: %x\n", data); - readcfgaddress(0x00000880+(i+ambaports+spwports)*4, (int *)&data, spw[0]); - printf("Status register: %x\n", data); - readcfgaddress(0x00000900+(i+ambaports+spwports)*4, (int *)&data, spw[0]); - printf("Timer register: %x\n", data); - } - } - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - printf("Time-code register: %x\n", data); - readcfgaddress(0x00000a08, (int *)&data, spw[0]); - printf("Version/instance ID: %x\n", data); - readcfgaddress(0x00000a0c, (int *)&data, spw[0]); - printf("Initialization divisor: %x\n", data); - readcfgaddress(0x00000a10, (int *)&data, spw[0]); - printf("Configuration write enable: %x\n", data); - readcfgaddress(0x00000a14, (int *)&data, spw[0]); - printf("Timer prescaler: %x\n", data); - - - printf("Enable, start and set all links to maximum speed\n"); - printf("Set Router link to maximum speed\n"); - for(i = 1; i < spwports; i++) { - printf("Iteration: %d\n", i); - readcfgaddress(0x00000800+i*4, (int *)&data, spw[0]); - data = data & 0x00FFFFFF; - switch(i) { - case 1: - data = data | 0x2 | (0 << 24); - break; - case 2: - data = data | 0x2 | (0 << 24); - break; - case 3: - data = data | 0x2 | (0 << 24); - break; - case 4: - data = data | 0x2 | (0 << 24); - break; - case 5: - data = data | 0x2 | (0 << 24); - break; - case 6: - data = data | 0x2 | (0 << 24); - break; - case 7: - data = data | 0x2 | (0 << 24); - break; - case 8: - data = data | 0x2 | (0 << 24); - break; - default: - break; - - } - writecfgaddress(0x00000800+i*4, data, spw[0]); - readcfgaddress(0x00000800+i*4, (int *)&data, spw[0]); - printf("Data: %x\n", data); - for (k= 0; k < 50; k++) { - for (j = 0; j < 10; j++); - readcfgaddress(0x00000880+i*4, (int *)&data, spw[0]); - printf("Data: %x\n", data); - } - } - -/* /\************************ TEST 1 **************************************\/ */ -#if TEST1 == 1 -#if AHBSLV == 1 - printf("TEST 1: Check all registers in configuration port through AHB slave interface \n\n"); - printf("Read group adaptive routing/packet distribution registers\n\n"); - for(i = 4; i < 0x400; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read routing table entries\n\n"); - for(i = 0x480; i < 0x800; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read port control registers\n\n"); - for(i = 0x800; i < 0x880; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read port status registers\n\n"); - for(i = 0x880; i < 0x900; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read Prescaler value\n\n"); - data = loadmem(AHBSLVADDR + 0x900); - regs[0x900/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0x900, data); - printf("\n"); - printf("Read timer registers\n\n"); - for(i = 0x904; i < 0xA00; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read router configuration register\n\n"); - data = loadmem(AHBSLVADDR + 0xA00); - regs[0xA00/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA00, data); - printf("\n"); - printf("Read time-code register\n\n"); - data = loadmem(AHBSLVADDR + 0xA04); - regs[0xA04/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA04, data); - printf("\n"); - printf("Version/instance ID register\n\n"); - data = loadmem(AHBSLVADDR + 0xA08); - regs[0xA08/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA08, data); - printf("\n"); - printf("TEST 1: completed successfully\n\n"); -#endif -#endif - -/* /\************************ TEST 2 **************************************\/ */ -#if TEST2 == 1 - printf("TEST 2: Check all registers in configuration port using RMAP \n\n"); - tx0 = (char *)malloc(64); - tx1 = (char *)calloc(RMAPSIZE, 1); - rx0 = (char *)malloc(RMAPSIZE+4); - rx1 = (char *)malloc(32+RMAPSIZE); - rx2 = (char *)malloc(32+RMAPSIZE); - dpa = malloc(1); - - if( (tx0 == NULL) || (tx1 == NULL) || (rx0 == NULL) || - (rx1 == NULL) || (rx2 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - *dpa = 0x00; - - i = 4; - while(1) { - if (i == 4) { - printf("Read port setup registers\n\n"); - } - if (i == 0x480) { - printf("Read routing table entries\n\n"); - } - if (i == 0x800) { - printf("Read port control registers\n\n"); - } - if (i == 0x880) { - printf("Read port status registers\n\n"); - } - if (i == 0x900) { - printf("Read timer registers\n\n"); - } - if (i == 0xA00) { - printf("Read configuration/status register\n\n"); - } - if (i == 0xA04) { - printf("Read time-code register\n\n"); - } - if (i == 0xA08) { - printf("Read version/instance ID register\n\n"); - } - if (i == 0xA0C) { - printf("Initialization divisor register\n\n"); - } - if (i == 0xA10) { - printf("Configuration write enable register\n\n"); - } - if (i == 0xA14) { - printf("Read prescaler register\n\n"); - } - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = 0x1; - cmd->tid = i; - cmd->addr = i; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = (char *)NULL; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - exit(1); - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0xBF; - reply->srcaddr = 0x1; - reply->tid = i; - reply->addr = i; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx2, replysize)) { - printf("RMAP reply build failed\n"); - exit(1); - } - while (spw_rx(0, rx1, spw[0])) { - for (k = 0; k < 64; k++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw[0])) { - printf("Transmission failed\n"); - exit(1); - } - while (!(tmp = spw_checktx(0, spw[0]))) { - for (k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - exit(1); - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (k = 0; k < 64; k++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - exit(1); - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - exit(1); - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - exit(1); - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(k = 0; k < *replysize-1; k++) { - if (loadb((int)&(rx1[k])) != rx2[k]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", k, (unsigned)loadb((int)&(rx1[k])), (unsigned)rx2[k]); - exit(1); - } - } - data = ((loadb((int)&rx1[*size-5]) << 24) & 0xFF000000) | ((loadb((int)&rx1[*size-4]) << 16) & 0xFF0000) | ((loadb((int)&rx1[*size-3]) << 8) & 0xFF00) | ((loadb((int)&rx1[*size-2]) & 0xFF)); -#if TEST1 == 1 -#if AHBSLV == 1 - tmp = data; - if (i >= 0x880 && i < 0x900) { - /* mask port status registers */ - tmp = data & 0; - regs[i/4] = regs[i/4] & 0; - } - if (tmp != regs[i/4]) { - printf("ERROR: Mismatch between data read from AHB slave interface and RMAP interface\n"); - printf("AHB: %08X RMAP: %08X\n", regs[i/4], tmp); - exit(1); - } -#endif -#endif - - printf("Reg %08X %08X\n", i, data); - if (i < 0x3FC) { - i = i + 4; - } else if (i == 0x3FC) { - i = 0x480; - } else if (i < 0x900) { - i = i + 4; - } else if ((wdog) && (i < 0x9FC)) { - i = i + 4; - } else if (i < 0xA08) { - i = i + 4; - } else { - break; - } - } - printf("\n"); - free(tx0); - free(tx1); - free(rx0); - free(rx1); - free(rx2); - free(dpa); -#endif - - -/* /\************************ TEST 3 **************************************\/ */ -#if TEST3 == 1 - printf("TEST 3: Test time-code propagation \n\n"); - i = 1; - while(i < 256) { - printf("Iteration: %d\n", i); - send_time(spw[0]); - readcfgaddress(0x00000A04, (int *)&data, spw[0]); - if ((data & 0x3F) != (i % 64)) { - printf("ERROR: Wrong time-code value in counter"); - exit(1); - } - i++; - } - - -#endif - -/* /\************************ TEST 4 **************************************\/ */ -#if TEST4 == 1 - printf("TEST 4: Packet transmission test. Packet size 1 to 65536 \n\n"); - for (j = 0; j < 64; j++) { - tx_buf[0][j] = malloc(65536); - rx_buf[0][j] = malloc(65536); - } - tx[0] = malloc(spwports/2); - spw_enable_promiscuous(spw[0]); - spw_rmapdis(spw[0]); - - for (j = 0; j < spwports/2-1; j++) { - tx[0][j] = (j+1)*2+1; - - } - tx[0][0] = 1; -/* tx[0][1] = 5; */ -/* tx[0][2] = 7; */ -/* tx[0][1] = 1; */ - - for(j = 0; j < 64; j++) { - for (l = 0; l < 65536; l++) { - tx_buf[0][j][l] = rand() % 256; - } - } - - for (j = 1; j <= 65536; j++) { - printf("Size: %d\n", j); - printf("Enabling reception\n"); - for (k = 0; k < 64; k++) { - tmp = spw_rx(0, rx_buf[0][k], spw[0]); - } - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - printf("Transmitting\n"); - for (k = 0; k < 64; k++) { - tmp = spw_tx(0, 0, 0, 0, 1, tx[0], j, tx_buf[0][k], spw[0]); - if (tmp != 0) { - printf("ERROR: spw_tx failed: %d\n", tmp); - exit(1); - } - } - - printf("Checking transmission\n"); - for (k = 0; k < 64; k++) { - while(!(tmp = spw_checktx(0, spw[0]))) { - for(l = 0; l < 64; l++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", 0); - exit(1); - } - } - printf("Checking reception\n"); - for (k = 0; k < 64; k++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - for(l = 0; l < 64; l++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", 0); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", 0); - exit(1); - } - if (*size != j) { - printf("Received packet has wrong length link: %d\n", 0); - printf("Exp: %d, Got: %d\n", j, *size); - exit(1); - } - for(l = 0; l < j; l++) { - if (loadb((int)&(rx_buf[0][k][l])) != tx_buf[0][k][l]) { - printf("Compare error link 0, pkt: %d, index: %d, Data: %x Expected: %x \n", k, l, (unsigned)loadb((int)&(rx_buf[0][k][l])), (unsigned)tx_buf[0][k][l]); - exit(1); - } - - } - } - } - - free(tx[0]); - for (j = 0; j < 64; j++) { - free(rx_buf[0][j]); - free(tx_buf[0][j]); - } - -#endif - -/* /\************************ TEST 5 **************************************\/ */ -#if TEST5 == 1 - printf("TEST 5: Throughput test\n\n"); - tx0 = malloc(MAXSIZE); - rx0 = malloc(MAXSIZE); - spw_enable_promiscuous(spw[0]); - spw_rmapdis(spw[0]); - tx[0] = malloc(spwports/2); - for(i = 0; i < PORTS; i++) { - for (j = 0; j < spwports/2-1; j++) { - tx[0][j] = (j+1)*2+1; - - } - tx[0][spwports/2-1] = 1; - } - - tx[0][0] = 3; - tx[0][1] = 5; - tx[0][2] = 7; - tx[0][3] = 1; - - if ( (tx0 == NULL) || (rx0 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - - printf("Enabling reception\n"); - for(i = 0; i < PORTS; i++) { - for (j = 0; j < 64; j++) { - tmp = spw_rx(0, rx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - - printf("Transmitting\n"); - t1 = clock(); - for (j = 0; j < 64; j++) { - for(i = 0; i < PORTS; i++) { - tmp = spw_tx(0, 0, 0, 0, 4, tx[i], MAXSIZE-3, tx0, spw[i]); //spwports/2 - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - for (j = 0; j < 64; j++) { - for(i = 0; i < PORTS; i++) { - while(!(tmp = spw_checktx(0, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - } - printf("Checking reception\n"); - for(i = 0; i < PORTS; i++) { - for (j = 0; j < 64; j++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != MAXSIZE-3) { - printf("Received packet has wrong length link: %d, size: %d\n", i, *size); - exit(1); - } - } - } - t2 = clock(); - t2 = t2 - t1; - t3 = t2/CLOCKS_PER_SEC; - bitrate = (MAXSIZE*64)/(t3*1000); - bitrate = bitrate*PORTS*8; - bitrate /= 1000.0; - printf("Effective bitrate: %3.1f Mbit/s\n", bitrate); - free(tx0); - free(rx0); - for(i = 0; i < PORTS; i++) { - free(tx[i]); - } -#endif - -#if TEST6 == 1 - printf("TEST 6: Packet size test using physical addresses. Minimum size usable is 2\n"); - printf("due to header deletion and minimum size 1 for the DMA channels. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < PORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx0 = malloc(PKTTESTMAX); - rx[0] = malloc(PKTTESTMAX); - - tx[0] = malloc(4); - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - /* tx[i][0] = PORTS-i+STARTINDEX; */ -/* tx[i][1] = PORTS-i; */ -/* for (j = 2; j < PKTTESTMAX; j++) { */ -/* tx[i][j] = j+i*4; */ -/* } */ - tx[0][0] = 3; - tx[0][1] = 5; - tx[0][2] = 7; - tx[0][3] = 1; - - /* tx[0][0] = 2; */ -/* tx[0][1] = 2; */ -/* tx[0][2] = 1; */ - } - - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); - - printf("Enabling reception\n"); - for(j = 0; j < PORTS; j++) { - /* printf("Rx[j]: %x\n",(int)&rx[j]); */ - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - printf("Transmitting\n"); - for (j = 0; j < PORTS; j++) { - for(k = 0; k < i; k++) { - tx0[k] = rand() % 256; - } - } - for(j = 0; j < PORTS; j++) { - /* printf("tx[0]: %x, tx0: %x\n", (int)&tx[0][0], (int) tx0); */ - tmp = spw_tx(0, 0, 0, 0, 4, tx[0], i, tx0, spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < PORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - - printf("Checking reception\n"); - for(j = 0; j < PORTS; j++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != i) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i); - exit(1); - } - /* printf("Rx[j]: %x\n",(int)&rx[j]); */ - for (k = 0; k < i; k++) { - if (loadb((int)&(rx[j][k])) != tx0[k]) { - printf("Compare error buf: %u Data: %x Expected: %x \n", k, (unsigned)loadb((int)&(rx[j][k])), (unsigned)tx0[k]); - exit(1); - } - } - - } - - } - for(i = 0; i < PORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST7 == 1 - printf("TEST 7: Packet size test using logical addresses. Minimum size usable is 1\n"); - printf("since this test disables header deletion. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < PORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); -/* printf("tx[%d]: %x\n", i, (int)tx[i]); */ - rx[i] = malloc(PKTTESTMAX); -/* printf("rx[%d]: %x\n", i, (int)rx[i]); */ - - /* if (tx[i] == NULL) { */ -/* printf("Memory initialization error\n"); */ -/* exit(1); */ -/* } */ - for (j = 0; j < PKTTESTMAX; j++) { - tx0[j] = j+i*4; - } - } - port = 8; - for (i = 32; i < 256; i++) { - writecfgaddress(0x00000000+i*4, 0x2, spw[0]); - writecfgaddress(0x00000400+i*4, 0x4, spw[0]); -/* printf("Addr: %x Data: %x\n", 0x00000000+i*4, data); */ - /* port = port - 1; */ -/* if (port == 0) { */ -/* port = 8; */ -/* } */ - } - - laddr = 32; port = 8; port2 = 8; laddr2 = 32; laddr3 = 32; - for (i = 1; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); -/* printf("Enabling reception\n"); */ - for(j = 0; j < PORTS; j++) { -/* printf("port:%d rx[%d]: %x\n", port, j, (int)rx[j]); */ - tmp = spw_rx(0, rx[0], spw[0]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - -/* printf("Transmitting\n"); */ - for (j = 0; j < PORTS; j++) { - for(k = 1; k < i; k++) { - tx0[k] = rand() % 256; - } - tx0[0] = laddr; - /* tx[j][1] = 1; */ - laddr = laddr + 1; - if (laddr == 256) { - laddr = 32; - } - } - for(j = 0; j < PORTS; j++) { -/* printf("port:%d tx[%d]: %x\n", j, j, (int)tx[j]); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx0, spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < PORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - -/* printf("Checking reception\n"); */ - for(j = 0; j < PORTS; j++) { -/* printf("Port: %d\n", port2); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", j); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", j); - exit(1); - } - if (*size != i) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i); - exit(1); - } -/* printf("Rx: %x Tx: %x\n", (int)&(rx[j][0]), (int)&(tx[j][0])); */ -/* printf("port:%d rx[%d]: %x\n", port2, j, (int)&(rx[j][0])); */ - for (k = 0; k < i; k++) { - if (loadb((int)&(rx[j][k])) != tx0[k]) { - printf("Compare error port: %u buf: %u index: %u Data: %x Expected: %x \n", port2, j, k, (unsigned)loadb((int)&(rx[j][k])), (unsigned)tx0[k]); - exit(1); - } - } - /* if (port2 == 0) { */ -/* port2 = 8; */ -/* } else { */ -/* port2 = port2 - 1; */ -/* } */ - - laddr3 = laddr3 + 1; - if (laddr3 == 256) { - laddr3 = 32; - port2 = 8; - } - } - - - } - for(i = 0; i < PORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST8 == 1 - printf("TEST 8: Packet size test using logical addresses. Minimum size usable is 2\n"); - printf("since this test enables header deletion. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < PORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - /* printf("tx[%d]: %x\n", i, (int)tx[i]); */ - rx[i] = malloc(PKTTESTMAX); -/* printf("rx[%d]: %x\n", i, (int)rx[i]); */ - - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - for (j = 0; j < PKTTESTMAX; j++) { - tx[i][j] = j+i*4; - } - } - port = 8; - for (i = 32; i < 256; i++) { - data = (1 << (port)); - writecfgaddress(0x00000000+i*4, data, spw[0]); - writecfgaddress(0x00000400+i*4, 0x5, spw[0]); -/* printf("Addr: %x Data: %x\n", 0x00000000+i*4, data); */ - port = port - 1; - if (port == 2) { - port = 8; - } - } - - laddr = 32; port = 8; port2 = 8; laddr2 = 32; laddr3 = 32; - for (i = 3; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); -/* printf("Enabling reception\n"); */ - for(j = 0; j < PORTS; j++) { -/* printf("port:%d rx[%d]: %x\n", port, j, (int)rx[j]); */ - tmp = spw_rx(0, rx[j], spw[0]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - /* if (port == 0) { */ -/* port = PORTS-1; */ -/* } else { */ -/* port = port - 1; */ -/* } */ - /* laddr2 = laddr2 + 1; */ -/* if (laddr2 == 256) { */ -/* laddr2 = 32; */ -/* /\* port = PORTS-1; *\/ */ -/* } */ - - } - -/* printf("Transmitting\n"); */ - for (j = 0; j < PORTS; j++) { - for(k = 2; k < i; k++) { - tx0[k] = rand() % 256; - } - tx0[0] = laddr; - tx0[1] = 1; - laddr = laddr + 1; - if (laddr == 256) { - laddr = 32; - } - } - for(j = 0; j < PORTS; j++) { -/* printf("port:%d tx[%d]: %x\n", j, j, (int)tx[j]); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx0, spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < PORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - -/* printf("Checking reception\n"); */ - for(j = 0; j < PORTS; j++) { -/* printf("Port: %d\n", port2); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", j); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", j); - exit(1); - } - if (*size != i-2) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i-2); - exit(1); - } - /* printf("Rx: %x Tx: %x\n", (int)&(rx[j][0]), (int)&(tx[j][0])); */ -/* printf("port:%d rx[%d]: %x\n", port2, j, (int)&(rx[j][0])); */ - for (k = 0; k < i-2; k++) { - if (loadb((int)&(rx[j][k])) != tx0[k+2]) { - printf("Compare error port: %u buf: %u index: %u Data: %x Expected: %x \n", 0, j, k, (unsigned)loadb((int)&(rx[j][k])), (unsigned)tx0[k+2]); - exit(1); - } - } - /* if (port2 == 0) { */ -/* port2 = PORTS-1; */ -/* } else { */ -/* port2 = port2 - 1; */ -/* } */ - - - } - - - } - for(i = 0; i < PORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST9 == 1 - printf("TEST 9: Test packet sizes with packet distribution\n"); - printf("for path addresses\n\n"); - ahb = (int *)AHBSLVADDR; - - for(i = 0; i < PORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - if ((tx[i] == NULL) || (rx[i] == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - for (j = 0; j < PKTTESTMAX; j++) { - tx[i][j] = j+i*4; - } - } - for (i = 1; i <= PORTS; i++) { - data = (1 << i); - - } - for(i = 0; i < 6; i++) { - rx[i] = malloc(PKTTESTMAX); - } - - for (i = 3; i < 120; i++) { - printf("Packet size: %d\n", i); -#if AHBSLV == 1 - start = 0; -#else - start = 1; - -#endif -/* for(j = start; j < PORTS; j++) { */ -/* /\* printf("source port: %d\n", j+1); *\/ */ - data = 0x1F9; /* Enables packet distribution */ -/* for(k = 1; k <= PORTS; k++) { */ -/* /\* printf("Sending to %d port(s)\n", k); *\/ */ -/* data = data | (1 << k); */ -/* #if AHBSLV == 1 */ -/* *(ahb+(j+1)) = data; */ -/* #else */ - writecfgaddress(0x0000000C, data, spw[0]); -/* #endif */ - printf("Enabling reception\n"); - for(l = 0; l < 6; l++) { - /* printf("enabling port: %d\n", l); */ - tmp = spw_rx(0, rx[l], spw[0]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - /* if (j >= k) { */ -/* /\* printf("enabling port: %d\n", j); *\/ */ -/* tmp = spw_rx(0, rx[j], spw[j]); */ -/* if (tmp != 0) { */ -/* printf("ERROR: spw_rx failed: %d\n", tmp); */ -/* exit(1); */ -/* } */ -/* } */ - printf("Transmitting\n"); - for(x = 2; x < i; x++) { - tx0[x] = rand() % 256; - } - tx0[0] = 3; - tx0[1] = 1; - /* for(x = 0; x < i; x++) { */ -/* printf("%x ", tx[j][x]); */ -/* } */ -/* printf("\n"); */ - /* printf("Port: %d\n", j+1); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx0, spw[0]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - while(!(tmp = spw_checktx(0, spw[0]))) { - for(x = 0; x < 64; x++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", j); - exit(1); - } - printf("Checking reception\n"); - for(l = 0; l < 6; l++) { - printf("Receiving packet: %d\n", l); - while(!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - for(x = 0; x < 64; x++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", l); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", l); - exit(1); - } - if (*size != i-2) { - printf("Received packet has wrong length link: %d\n", 0); - printf("Got: %d, Expected: %d\n", *size, i-2); - exit(1); - } - - for (x = 2; x < i; x++) { - if (loadb((int)&(rx[l][x-2])) != tx0[x]) { - printf("Compare error port: %u index: %u Data: %x Expected: %x \n", l, x, (unsigned)loadb((int)&(rx[l][x-2])), (unsigned)tx0[x]); - printf("r: %x t: %x\n", (int)&(rx[l][x-2]), (int)&(tx0[x])); - exit(1); - } - } - - } - /* if (j >= k) { */ -/* /\* printf("Receiving port: %d\n", j); *\/ */ -/* while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { */ -/* for(x = 0; x < 64; x++) {} */ -/* } */ -/* if (rxs->truncated) { */ -/* printf("Received packet truncated link: %d \n", j); */ -/* exit(1); */ -/* } */ -/* if(rxs->eep) { */ -/* printf("Received packet terminated with eep link: %d\n", j); */ -/* exit(1); */ -/* } */ -/* if (*size != i-1) { */ -/* printf("Received packet has wrong length link: %d\n", j); */ -/* printf("Got: %d, Expected: %d\n", *size, i-1); */ -/* exit(1); */ -/* } */ - -/* for (x = 1; x < i; x++) { */ -/* if (loadb((int)&(rx[j][x-1])) != tx[j][x]) { */ -/* printf("Compare error port: %u index: %u Data: %x Expected: %x \n", j, x, (unsigned)loadb((int)&(rx[j][x-1])), (unsigned)tx[j][x]); */ -/* exit(1); */ -/* } */ -/* } */ -/* } */ - - -/* } */ -/* #if AHBSLV == 1 */ -/* *(ahb+(j+1)) = 0; */ -/* #endif */ - -/* } */ - - } - /* Disable packet distribution for address 3*/ - data = 0; - writecfgaddress(0x0000000C, data, spw[0]); - for(i = 0; i < PORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - - - - printf("*********** Test suite completed successfully ************\n"); - exit(0); - -} diff --git a/software/spw/router_test_dual_single_link_rasta.c b/software/spw/router_test_dual_single_link_rasta.c deleted file mode 100644 index 589f6a46..00000000 --- a/software/spw/router_test_dual_single_link_rasta.c +++ /dev/null @@ -1,1152 +0,0 @@ -/*****************************************************************************/ -/* This file is a part of the GRLIB VHDL IP LIBRARY */ -/* Copyright (C) 2010 GAISLER RESEARCH */ - -/* This program is free software; you can redistribute it and/or modify */ -/* it under the terms of the GNU General Public License as published by */ -/* the Free Software Foundation; either version 2 of the License, or */ -/* (at your option) any later version. */ - -/* See the file COPYING for the full details of the license. */ -/******************************************************************************/ -#define PORTS 1 -#define SPWPORTS 16 -#define FIFOPORTS 1 - -const SPW_ADDR[30] = - {0x80000a00, - 0x80000b00, - 0x80000c00, - 0x80000700, - 0x80000800, - 0x80000900, - 0x80000a00, - 0x80000b00, - 0x80000c00, - 0x80000d00, - 0x80000e00, - 0x80000f00, - 0x80001000, - 0x80001100, - 0x80001200, - 0x80001300, - 0x80001400, - 0x80001500, - 0x80001600, - 0x80001700, - 0x80001800, - 0x80001900, - 0x80001a00, - 0x80001b00, - 0x80001c00, - 0x80001d00, - 0x80001e00, - 0x80001f00, - 0x80002000, - 0x80002100}; - -#define AHBSLV 0 -#define AHBSLVADDR 0xFFFC0000 - -#define SPW_FREQ 200000 /* Frequency of txclk in khz, set to 0 to use reset value */ -#define AHBFREQ 50000 /* Set to zero to leave reset values */ - -#define SPW_CLKDIV 0 - -#include -#include "spwapi.h" -#include "rmapapi.h" -#include -#include -#include - -#define PKTTESTMAX 65536 -#define DESCPKT 1024 -#define MAXSIZE 16777216 /*must not be set to more than 16777216 (2^24)*/ -#define RMAPSIZE 1024 -#define RMAPCRCSIZE 1024 - -#define TEST1 1 -#define TEST2 0 -#define TEST3 0 -#define TEST4 1 -#define TEST5 1 -#define TEST6 1 -#define TEST7 1 -#define TEST8 1 -#define TEST9 1 - - -static inline char loadb(int addr) -{ - char tmp; - asm(" lduba [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -static inline int loadmem(int addr) -{ - int tmp; - asm(" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -int writecfgaddress(int addr, int data, struct spwvars *spw) -{ - - char *tx0; - char *rx0; - char *rx1; - char *tx1; - char *dpa; - char *spa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int i; - int iterations; - int *size; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(32); - dpa = malloc(1); - spa = malloc(1); - *dpa = 0x00; - *spa = 0x01; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - tx1[0] = (char) ((data >> 24) & 0xFF); - tx1[1] = (char) ((data >> 16) & 0xFF); - tx1[2] = (char) ((data >> 8) & 0xFF); - tx1[3] = (char) (data & 0xFF); - - cmd->incr = yes; - cmd->type = writecmd; - cmd->verify = yes; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = spa; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = writerep; - reply->verify = yes; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if (spw_tx(0, 1, 1, 1, *cmdsize, tx0, 4, tx1, spw)) { - printf("Transmission failed\n"); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+1)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize+1, *size); - } - for(i = 0; i < *replysize; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; - -} - -int readcfgaddress(int addr, int *data, struct spwvars *spw) -{ - char *tx0; - char *tx1; - char *rx0; - char *rx1; - char *dpa; - char *spa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int *size; - int i; - int iterations; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(4); - dpa = malloc(1); - spa = malloc(1); - *dpa = 0x00; - *spa = 0x01; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = spa; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw)) { - printf("Transmission failed\n"); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(i = 0; i < *replysize-1; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - *data = ((loadb((int)&rx1[*size-5]) << 24) & 0xFF000000) | ((loadb((int)&rx1[*size-4]) << 16) & 0xFF0000) | ((loadb((int)&rx1[*size-3]) << 8) & 0xFF00) | ((loadb((int)&rx1[*size-2]) & 0xFF)); - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(spa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; -} - -int main(int argc, char *argv[]) -{ - int ret; - clock_t t1, t2; - double t3, bitrate; - int regs[1024]; - int dmachan; - int sysfreq; - int txfreq1; - int txfreq2; - int i; - int j; - int k; - int m; - int l; - int x; - int iterations; - int data; - int hdr; - int notrx; - int tmp; - int eoplen; - int *size; - char *txbuf; - char *rxbuf; - char *rx0; - char *rx1; - char *rx2; - char *rx3; - char *tx0; - char *tx1; - char *tx2; - char *tx3; - char *tx[64]; - char *rx[128]; - char *tx_buf[PORTS][64]; - char *rx_buf[PORTS][128]; - struct rxstatus *rxs; - struct spwvars *spw[30]; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - int *cmdsize; - int *replysize; - int startrx[4]; - int rmappkt; - int rmapincr; - int destaddr; - int sepaddr[4]; - int chanen[4]; - int rmaprx; - int found; - int rxchan; - int length; - int maxlen; - char *dpa; - int wdog; - int pnp; - int spwports; - int fifoports; - int ahbports; - int laddr; - int laddr2; - int laddr3; - int port2; - int port; - int start; - int *ahb; - - printf("**** GRSPW ROUTER TEST DUAL **** \n\n"); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - - - printf("**** TEST STARTED **** \n\n"); - /************************ TEST INIT ***********************************/ - printf("Initalizing parameters and links"); - for(i = 0; i < PORTS; i++) { - if (spw_setparam(i+1, SPW_CLKDIV, 0xBF, 1, 1, SPW_ADDR[i], AHBFREQ, spw[i], 0, SPW_FREQ/10000-1 )) { - printf("Illegal parameters to spacewire\n"); - exit(1); - } - for(j = 0; j < 4; j++) { - spw_setparam_dma(j, i+1, 0x0, 1, MAXSIZE, spw[i]); - } - } - - - /* reset links and initialize links*/ - for(i = 0; i < PORTS; i++) { - if ((ret = spw_init(spw[i]))) { - printf("Link initialization failed for link%d: %d\n", i, ret); - } - printf("SPW %d version: %d \n", i, spw[i]->ver); - if (wait_running(spw[i])) { - printf("Link %d did not enter run-state\n", i); - } - } - -/* /\************************ TEST 4 **************************************\/ */ -#if TEST4 == 1 - printf("TEST 4: Packet transmission test. Packet size 1 to 65536 \n\n"); - for (j = 0; j < 64; j++) { - rx_buf[0][j] = malloc(65536); - } - spw_enable_promiscuous(spw[0]); - spw_rmapdis(spw[0]); - - for (j = 1; j <= 65536; j++) { - for (k = 0; k < 64; k++) { - tmp = spw_rx(0, rx_buf[0][k], spw[0]); - } - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - for (k = 0; k < 64; k++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - for(l = 0; l < 64; l++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", 0); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", 0); - exit(1); - } - if (*size != j+8) { - printf("Received packet has wrong length link: %d\n", 0); - printf("Exp: %d, Got: %d\n", j+8, *size); - exit(1); - } - tmp = spw_tx(0, 0, 0, 0, 0, rx_buf[0][k], j, &(rx_buf[0][k][8]), spw[0]); - if (tmp != 0) { - printf("ERROR: spw_tx failed: %d\n", tmp); - exit(1); - } - } - } - - free(tx[0]); - for (j = 0; j < 64; j++) { - free(rx_buf[0][j]); - } - -#endif - -/* /\************************ TEST 5 **************************************\/ */ -#if TEST5 == 1 - printf("TEST 5: Throughput test\n\n"); - tx0 = malloc(MAXSIZE); - rx0 = malloc(MAXSIZE); - spw_enable_promiscuous(spw[0]); - spw_rmapdis(spw[0]); - for(i = 0; i < PORTS; i++) { - tx[0] = malloc(spwports/2); - - - for (j = 0; j < spwports/2-1; j++) { - tx[0][j] = (j+1)*2+1; - - } - tx[0][spwports/2-1] = 1; - } - - - if ( (tx0 == NULL) || (rx0 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - - printf("Enabling reception\n"); - for(i = 0; i < PORTS; i++) { - for (j = 0; j < 64; j++) { - tmp = spw_rx(0, rx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - - printf("Transmitting\n"); - t1 = clock(); - for (j = 0; j < 64; j++) { - for(i = 0; i < PORTS; i++) { - tmp = spw_tx(0, 0, 0, 0, spwports/2, tx[i], MAXSIZE-3, tx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - for (j = 0; j < 64; j++) { - for(i = 0; i < PORTS; i++) { - while(!(tmp = spw_checktx(0, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - } - printf("Checking reception\n"); - for(i = 0; i < PORTS; i++) { - for (j = 0; j < 64; j++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != MAXSIZE-3) { - printf("Received packet has wrong length link: %d\n", i); - exit(1); - } - } - } - t2 = clock(); - t2 = t2 - t1; - t3 = t2/CLOCKS_PER_SEC; - bitrate = (MAXSIZE*64)/(t3*1000); - bitrate = bitrate*PORTS*8; - bitrate /= 1000.0; - printf("Effective bitrate: %3.1f Mbit/s\n", bitrate); - free(tx0); - free(rx0); - for(i = 0; i < PORTS; i++) { - free(tx[i]); - } -#endif - -/* #if TEST6 == 1 */ -/* printf("TEST 6: Packet size test using physical addresses. Minimum size usable is 2\n"); */ -/* printf("due to header deletion and minimum size 1 for the DMA channels. Must use\n"); */ -/* printf("promiscuous mode\n\n"); */ -/* for(i = 0; i < PORTS; i++) { */ -/* spw_enable_promiscuous(spw[i]); */ -/* tx[i] = malloc(PKTTESTMAX); */ -/* rx[i] = malloc(PKTTESTMAX); */ - -/* if (tx[i] == NULL) { */ -/* printf("Memory initialization error\n"); */ -/* exit(1); */ -/* } */ -/* tx[i][0] = PORTS-i+STARTINDEX; */ -/* tx[i][1] = PORTS-i; */ -/* for (j = 2; j < PKTTESTMAX; j++) { */ -/* tx[i][j] = j+i*4; */ -/* } */ -/* } */ - -/* for (i = 2; i < PKTTESTMAX; i++) { */ -/* printf("Packet size: %d\n", i); */ - -/* printf("Enabling reception\n"); */ -/* for(j = 0; j < PORTS; j++) { */ -/* tmp = spw_rx(0, rx[j], spw[j]); */ -/* if (tmp != 0) { */ -/* printf("ERROR: spw_rx failed: %d\n", tmp); */ -/* exit(1); */ - -/* } */ -/* } */ - -/* printf("Transmitting\n"); */ -/* for (j = 0; j < PORTS; j++) { */ -/* for(k = 2; k < i; k++) { */ -/* tx[j][k] = ~tx[j][k]; */ -/* } */ -/* } */ -/* for(j = 0; j < PORTS; j++) { */ -/* tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); */ -/* if (tmp != 0) { */ -/* printf("ERROR: spw_rx failed: %d\n", tmp); */ -/* exit(1); */ - -/* } */ -/* } */ - -/* for(j = 0; j < PORTS; j++) { */ -/* while(!(tmp = spw_checktx(0, spw[j]))) { */ -/* for(k = 0; k < 64; k++) {} */ -/* } */ -/* if (tmp != 1) { */ -/* printf("Transmit error link: %d \n", i); */ -/* exit(1); */ -/* } */ -/* } */ - -/* printf("Checking reception\n"); */ -/* for(j = 0; j < PORTS; j++) { */ -/* while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { */ -/* for(k = 0; k < 64; k++) {} */ -/* } */ -/* if (rxs->truncated) { */ -/* printf("Received packet truncated link: %d \n", i); */ -/* exit(1); */ -/* } */ -/* if(rxs->eep) { */ -/* printf("Received packet terminated with eep link: %d\n", i); */ -/* exit(1); */ -/* } */ -/* if (*size != i-1) { */ -/* printf("Received packet has wrong length link: %d\n", j); */ -/* exit(1); */ -/* } */ -/* for (k = 0; k < i-1; k++) { */ -/* if (loadb((int)&(rx[j][k])) != tx[PORTS-j-1][k+1]) { */ -/* printf("Compare error buf: %u Data: %x Expected: %x \n", k, (unsigned)loadb((int)&(rx[j][k])), (unsigned)tx[PORTS-j-1][k+1]); */ -/* exit(1); */ -/* } */ -/* } */ - -/* } */ - -/* } */ -/* for(i = 0; i < PORTS; i++) { */ -/* spw_disable_promiscuous(spw[i]); */ -/* free(tx[i]); */ -/* free(rx[i]); */ -/* } */ - -/* #endif */ - -/* #if TEST7 == 1 */ -/* printf("TEST 7: Packet size test using logical addresses. Minimum size usable is 1\n"); */ -/* printf("since this test disables header deletion. Must use\n"); */ -/* printf("promiscuous mode\n\n"); */ -/* for(i = 0; i < PORTS; i++) { */ -/* spw_enable_promiscuous(spw[i]); */ -/* tx[i] = malloc(PKTTESTMAX); */ -/* /\* printf("tx[%d]: %x\n", i, (int)tx[i]); *\/ */ -/* rx[i] = malloc(PKTTESTMAX); */ -/* /\* printf("rx[%d]: %x\n", i, (int)rx[i]); *\/ */ - -/* if (tx[i] == NULL) { */ -/* printf("Memory initialization error\n"); */ -/* exit(1); */ -/* } */ -/* for (j = 0; j < PKTTESTMAX; j++) { */ -/* tx[i][j] = j+i*4; */ -/* } */ -/* } */ -/* port = PORTS; */ -/* for (i = 32; i < 256; i++) { */ -/* data = (1 << (port+STARTINDEX)); */ -/* writecfgaddress(0x00000000+i*4, data, spw[(i % PORTS)]); */ -/* writecfgaddress(0x00000400+i*4, 0x4, spw[(i % PORTS)]); */ -/* /\* printf("Addr: %x Data: %x\n", 0x00000000+i*4, data); *\/ */ -/* port = port - 1; */ -/* if (port == 0) { */ -/* port = PORTS; */ -/* } */ -/* } */ - -/* laddr = 32; port = PORTS-1; port2 = PORTS-1; laddr2 = 32; laddr3 = 32; */ -/* for (i = 1; i < PKTTESTMAX; i++) { */ -/* printf("Packet size: %d\n", i); */ -/* /\* printf("Enabling reception\n"); *\/ */ -/* for(j = 0; j < PORTS; j++) { */ -/* /\* printf("port:%d rx[%d]: %x\n", port, j, (int)rx[j]); *\/ */ -/* tmp = spw_rx(0, rx[j], spw[port]); */ -/* if (tmp != 0) { */ -/* printf("ERROR: spw_rx failed: %d\n", tmp); */ -/* exit(1); */ -/* } */ -/* if (port == 0) { */ -/* port = PORTS-1; */ -/* } else { */ -/* port = port - 1; */ -/* } */ -/* laddr2 = laddr2 + 1; */ -/* if (laddr2 == 256) { */ -/* laddr2 = 32; */ -/* port = PORTS-1; */ -/* } */ - -/* } */ - -/* /\* printf("Transmitting\n"); *\/ */ -/* for (j = 0; j < PORTS; j++) { */ -/* for(k = 1; k < i; k++) { */ -/* tx[j][k] = ~tx[j][k]; */ -/* } */ -/* tx[j][0] = laddr; */ -/* laddr = laddr + 1; */ -/* if (laddr == 256) { */ -/* laddr = 32; */ -/* } */ -/* } */ -/* for(j = 0; j < PORTS; j++) { */ -/* /\* printf("port:%d tx[%d]: %x\n", j, j, (int)tx[j]); *\/ */ -/* tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); */ -/* if (tmp != 0) { */ -/* printf("ERROR: spw_rx failed: %d\n", tmp); */ -/* exit(1); */ - -/* } */ -/* } */ - -/* for(j = 0; j < PORTS; j++) { */ -/* while(!(tmp = spw_checktx(0, spw[j]))) { */ -/* for(k = 0; k < 64; k++) {} */ -/* } */ -/* if (tmp != 1) { */ -/* printf("Transmit error link: %d \n", i); */ -/* exit(1); */ -/* } */ -/* } */ - -/* /\* printf("Checking reception\n"); *\/ */ -/* for(j = 0; j < PORTS; j++) { */ -/* /\* printf("Port: %d\n", port2); *\/ */ -/* while(!(tmp = spw_checkrx(0, size, rxs, spw[port2]))) { */ -/* for(k = 0; k < 64; k++) {} */ -/* } */ -/* if (rxs->truncated) { */ -/* printf("Received packet truncated link: %d \n", j); */ -/* exit(1); */ -/* } */ -/* if(rxs->eep) { */ -/* printf("Received packet terminated with eep link: %d\n", j); */ -/* exit(1); */ -/* } */ -/* if (*size != i) { */ -/* printf("Received packet has wrong length link: %d\n", j); */ -/* printf("Got: %d, Expected: %d\n", *size, i); */ -/* exit(1); */ -/* } */ -/* /\* printf("Rx: %x Tx: %x\n", (int)&(rx[j][0]), (int)&(tx[j][0])); *\/ */ -/* /\* printf("port:%d rx[%d]: %x\n", port2, j, (int)&(rx[j][0])); *\/ */ -/* for (k = 0; k < i; k++) { */ -/* if (loadb((int)&(rx[j][k])) != tx[j][k]) { */ -/* printf("Compare error port: %u buf: %u index: %u Data: %x Expected: %x \n", port2, j, k, (unsigned)loadb((int)&(rx[j][k])), (unsigned)tx[j][k]); */ -/* exit(1); */ -/* } */ -/* } */ -/* if (port2 == 0) { */ -/* port2 = PORTS-1; */ -/* } else { */ -/* port2 = port2 - 1; */ -/* } */ - -/* laddr3 = laddr3 + 1; */ -/* if (laddr3 == 256) { */ -/* laddr3 = 32; */ -/* port2 = PORTS-1; */ -/* } */ -/* } */ - - -/* } */ -/* for(i = 0; i < PORTS; i++) { */ -/* spw_disable_promiscuous(spw[i]); */ -/* free(tx[i]); */ -/* free(rx[i]); */ -/* } */ - -/* #endif */ - -/* #if TEST8 == 1 */ -/* printf("TEST 8: Packet size test using logical addresses. Minimum size usable is 2\n"); */ -/* printf("since this test enables header deletion. Must use\n"); */ -/* printf("promiscuous mode\n\n"); */ -/* for(i = 0; i < PORTS; i++) { */ -/* spw_enable_promiscuous(spw[i]); */ -/* tx[i] = malloc(PKTTESTMAX); */ -/* /\* printf("tx[%d]: %x\n", i, (int)tx[i]); *\/ */ -/* rx[i] = malloc(PKTTESTMAX); */ -/* /\* printf("rx[%d]: %x\n", i, (int)rx[i]); *\/ */ - -/* if (tx[i] == NULL) { */ -/* printf("Memory initialization error\n"); */ -/* exit(1); */ -/* } */ -/* for (j = 0; j < PKTTESTMAX; j++) { */ -/* tx[i][j] = j+i*4; */ -/* } */ -/* } */ -/* port = PORTS; */ -/* for (i = 32; i < 256; i++) { */ -/* data = (1 << (port+STARTINDEX)); */ -/* writecfgaddress(0x00000000+i*4, data, spw[(i % PORTS)]); */ -/* writecfgaddress(0x00000400+i*4, 0x5, spw[(i % PORTS)]); */ -/* /\* printf("Addr: %x Data: %x\n", 0x00000000+i*4, data); *\/ */ -/* port = port - 1; */ -/* if (port == 0) { */ -/* port = PORTS; */ -/* } */ -/* } */ - -/* laddr = 32; port = PORTS-1; port2 = PORTS-1; laddr2 = 32; laddr3 = 32; */ -/* for (i = 2; i < PKTTESTMAX; i++) { */ -/* printf("Packet size: %d\n", i); */ -/* /\* printf("Enabling reception\n"); *\/ */ -/* for(j = 0; j < PORTS; j++) { */ -/* /\* printf("port:%d rx[%d]: %x\n", port, j, (int)rx[j]); *\/ */ -/* tmp = spw_rx(0, rx[j], spw[port]); */ -/* if (tmp != 0) { */ -/* printf("ERROR: spw_rx failed: %d\n", tmp); */ -/* exit(1); */ -/* } */ -/* if (port == 0) { */ -/* port = PORTS-1; */ -/* } else { */ -/* port = port - 1; */ -/* } */ -/* laddr2 = laddr2 + 1; */ -/* if (laddr2 == 256) { */ -/* laddr2 = 32; */ -/* port = PORTS-1; */ -/* } */ - -/* } */ - -/* /\* printf("Transmitting\n"); *\/ */ -/* for (j = 0; j < PORTS; j++) { */ -/* for(k = 1; k < i; k++) { */ -/* tx[j][k] = ~tx[j][k]; */ -/* } */ -/* tx[j][0] = laddr; */ -/* laddr = laddr + 1; */ -/* if (laddr == 256) { */ -/* laddr = 32; */ -/* } */ -/* } */ -/* for(j = 0; j < PORTS; j++) { */ -/* /\* printf("port:%d tx[%d]: %x\n", j, j, (int)tx[j]); *\/ */ -/* tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); */ -/* if (tmp != 0) { */ -/* printf("ERROR: spw_rx failed: %d\n", tmp); */ -/* exit(1); */ - -/* } */ -/* } */ - -/* for(j = 0; j < PORTS; j++) { */ -/* while(!(tmp = spw_checktx(0, spw[j]))) { */ -/* for(k = 0; k < 64; k++) {} */ -/* } */ -/* if (tmp != 1) { */ -/* printf("Transmit error link: %d \n", i); */ -/* exit(1); */ -/* } */ -/* } */ - -/* /\* printf("Checking reception\n"); *\/ */ -/* for(j = 0; j < PORTS; j++) { */ -/* /\* printf("Port: %d\n", port2); *\/ */ -/* while(!(tmp = spw_checkrx(0, size, rxs, spw[port2]))) { */ -/* for(k = 0; k < 64; k++) {} */ -/* } */ -/* if (rxs->truncated) { */ -/* printf("Received packet truncated link: %d \n", j); */ -/* exit(1); */ -/* } */ -/* if(rxs->eep) { */ -/* printf("Received packet terminated with eep link: %d\n", j); */ -/* exit(1); */ -/* } */ -/* if (*size != i-1) { */ -/* printf("Received packet has wrong length link: %d\n", j); */ -/* printf("Got: %d, Expected: %d\n", *size, i-1); */ -/* exit(1); */ -/* } */ -/* /\* printf("Rx: %x Tx: %x\n", (int)&(rx[j][0]), (int)&(tx[j][0])); *\/ */ -/* /\* printf("port:%d rx[%d]: %x\n", port2, j, (int)&(rx[j][0])); *\/ */ -/* for (k = 1; k < i; k++) { */ -/* if (loadb((int)&(rx[j][k-1])) != tx[j][k]) { */ -/* printf("Compare error port: %u buf: %u index: %u Data: %x Expected: %x \n", port2, j, k, (unsigned)loadb((int)&(rx[j][k-1])), (unsigned)tx[j][k]); */ -/* exit(1); */ -/* } */ -/* } */ -/* if (port2 == 0) { */ -/* port2 = PORTS-1; */ -/* } else { */ -/* port2 = port2 - 1; */ -/* } */ - -/* laddr3 = laddr3 + 1; */ -/* if (laddr3 == 256) { */ -/* laddr3 = 32; */ -/* port2 = PORTS-1; */ -/* } */ -/* } */ - - -/* } */ -/* for(i = 0; i < PORTS; i++) { */ -/* spw_disable_promiscuous(spw[i]); */ -/* free(tx[i]); */ -/* free(rx[i]); */ -/* } */ - -/* #endif */ - -/* #if TEST9 == 1 */ -/* printf("TEST 9: Test packet sizes with packet distribution\n"); */ -/* printf("for path addresses\n\n"); */ -/* ahb = (int *)AHBSLVADDR; */ - -/* for(i = 0; i < PORTS; i++) { */ -/* spw_enable_promiscuous(spw[i]); */ -/* tx[i] = malloc(PKTTESTMAX); */ -/* rx[i] = malloc(PKTTESTMAX); */ -/* if ((tx[i] == NULL) || (rx[i] == NULL) ) { */ -/* printf("Memory initialization error\n"); */ -/* exit(1); */ -/* } */ -/* for (j = 0; j < PKTTESTMAX; j++) { */ -/* tx[i][j] = j+i*4; */ -/* } */ -/* } */ -/* for (i = 1; i <= PORTS; i++) { */ -/* data = (1 << i); */ - -/* } */ - -/* for (i = 2; i < PKTTESTMAX; i++) { */ -/* printf("Packet size: %d\n", i); */ -/* #if AHBSLV == 1 */ -/* start = 0; */ -/* #else */ -/* start = 1; */ -/* #endif */ -/* for(j = start; j < PORTS; j++) { */ -/* /\* printf("source port: %d\n", j+1); *\/ */ -/* data = 1 | (1 << (j+1)); /\* Enables packet distribution *\/ */ -/* for(k = 1; k <= PORTS; k++) { */ -/* /\* printf("Sending to %d port(s)\n", k); *\/ */ -/* data = data | (1 << k); */ -/* #if AHBSLV == 1 */ -/* *(ahb+(j+1)) = data; */ -/* #else */ -/* writecfgaddress(0x00000000+(j+1)*4, data, spw[j]); */ -/* #endif */ -/* /\* printf("Enabling reception\n"); *\/ */ -/* for(l = 0; l < k; l++) { */ -/* /\* printf("enabling port: %d\n", l); *\/ */ -/* tmp = spw_rx(0, rx[l], spw[l]); */ -/* if (tmp != 0) { */ -/* printf("ERROR: spw_rx failed: %d\n", tmp); */ -/* exit(1); */ -/* } */ -/* } */ -/* if (j >= k) { */ -/* /\* printf("enabling port: %d\n", j); *\/ */ -/* tmp = spw_rx(0, rx[j], spw[j]); */ -/* if (tmp != 0) { */ -/* printf("ERROR: spw_rx failed: %d\n", tmp); */ -/* exit(1); */ -/* } */ -/* } */ -/* /\* printf("Transmitting\n"); *\/ */ -/* for(x = 1; x < i; x++) { */ -/* tx[j][x] = ~tx[j][x]; */ -/* } */ -/* tx[j][0] = j+1; */ -/* /\* for(x = 0; x < i; x++) { *\/ */ -/* /\* printf("%x ", tx[j][x]); *\/ */ -/* /\* } *\/ */ -/* /\* printf("\n"); *\/ */ -/* /\* printf("Port: %d\n", j+1); *\/ */ -/* tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); */ -/* if (tmp != 0) { */ -/* printf("ERROR: spw_rx failed: %d\n", tmp); */ -/* exit(1); */ - -/* } */ -/* while(!(tmp = spw_checktx(0, spw[j]))) { */ -/* for(x = 0; x < 64; x++) {} */ -/* } */ -/* if (tmp != 1) { */ -/* printf("Transmit error link: %d \n", j); */ -/* exit(1); */ -/* } */ -/* /\* printf("Checking reception\n"); *\/ */ -/* for(l = 0; l < k; l++) { */ -/* /\* printf("Receiving port: %d\n", l); *\/ */ -/* while(!(tmp = spw_checkrx(0, size, rxs, spw[l]))) { */ -/* for(x = 0; x < 64; x++) {} */ -/* } */ -/* if (rxs->truncated) { */ -/* printf("Received packet truncated link: %d \n", l); */ -/* exit(1); */ -/* } */ -/* if(rxs->eep) { */ -/* printf("Received packet terminated with eep link: %d\n", l); */ -/* exit(1); */ -/* } */ -/* if (*size != i-1) { */ -/* printf("Received packet has wrong length link: %d\n", l); */ -/* printf("Got: %d, Expected: %d\n", *size, i-1); */ -/* exit(1); */ -/* } */ - -/* for (x = 1; x < i; x++) { */ -/* if (loadb((int)&(rx[l][x-1])) != tx[j][x]) { */ -/* printf("Compare error port: %u index: %u Data: %x Expected: %x \n", l, x, (unsigned)loadb((int)&(rx[l][x-1])), (unsigned)tx[j][x]); */ -/* printf("r: %x t: %x\n", (int)&(rx[l][x-1]), (int)&(tx[j][x])); */ -/* exit(1); */ -/* } */ -/* } */ - -/* } */ -/* if (j >= k) { */ -/* /\* printf("Receiving port: %d\n", j); *\/ */ -/* while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { */ -/* for(x = 0; x < 64; x++) {} */ -/* } */ -/* if (rxs->truncated) { */ -/* printf("Received packet truncated link: %d \n", j); */ -/* exit(1); */ -/* } */ -/* if(rxs->eep) { */ -/* printf("Received packet terminated with eep link: %d\n", j); */ -/* exit(1); */ -/* } */ -/* if (*size != i-1) { */ -/* printf("Received packet has wrong length link: %d\n", j); */ -/* printf("Got: %d, Expected: %d\n", *size, i-1); */ -/* exit(1); */ -/* } */ - -/* for (x = 1; x < i; x++) { */ -/* if (loadb((int)&(rx[j][x-1])) != tx[j][x]) { */ -/* printf("Compare error port: %u index: %u Data: %x Expected: %x \n", j, x, (unsigned)loadb((int)&(rx[j][x-1])), (unsigned)tx[j][x]); */ -/* exit(1); */ -/* } */ -/* } */ -/* } */ - - -/* } */ -/* #if AHBSLV == 1 */ -/* *(ahb+(j+1)) = 0; */ -/* #endif */ - -/* } */ - -/* } */ -/* for(i = 0; i < PORTS; i++) { */ -/* spw_disable_promiscuous(spw[i]); */ -/* free(tx[i]); */ -/* free(rx[i]); */ -/* } */ - -/* #endif */ - - - - printf("*********** Test suite completed successfully ************\n"); - exit(0); - -} diff --git a/software/spw/router_test_ngmp.c b/software/spw/router_test_ngmp.c deleted file mode 100644 index 06c3c331..00000000 --- a/software/spw/router_test_ngmp.c +++ /dev/null @@ -1,1823 +0,0 @@ -/*****************************************************************************/ -/* This file is a part of the GRLIB VHDL IP LIBRARY */ -/* Copyright (C) 2010 GAISLER RESEARCH */ - -/* This program is free software; you can redistribute it and/or modify */ -/* it under the terms of the GNU General Public License as published by */ -/* the Free Software Foundation; either version 2 of the License, or */ -/* (at your option) any later version. */ - -/* See the file COPYING for the full details of the license. */ -/******************************************************************************/ -#define SPWPORTS 4 -#define AMBAPORTS 2 -#define FIFOPORTS 0 -#define PORTS (SPWPORTS+AMBAPORTS+FIFOPORTS) - -const SPW_ADDR[30] = - {0xff90d000, - 0xff90e000, - 0x80000c00, - 0x80000700, - 0x80000800, - 0x80000900, - 0x80000a00, - 0x80000b00, - 0x80000c00, - 0x80000d00, - 0x80000e00, - 0x80000f00, - 0x80001000, - 0x80001100, - 0x80001200, - 0x80001300, - 0x80001400, - 0x80001500, - 0x80001600, - 0x80001700, - 0x80001800, - 0x80001900, - 0x80001a00, - 0x80001b00, - 0x80001c00, - 0x80001d00, - 0x80001e00, - 0x80001f00, - 0x80002000, - 0x80002100}; - -#define AHBSLV 1 -#define AHBSLVADDR 0xff880000 - -#define SPW_FREQ 200000 /* Frequency of txclk in khz, set to 0 to use reset value */ -#define AHBFREQ 50000 /* Set to zero to leave reset values */ - -#define SPW_CLKDIV 0 - -#include -#include "spwapi.h" -#include "rmapapi.h" -#include -#include -#include - -#define PKTTESTMAX 65536 -#define DESCPKT 1024 -#define MAXSIZE 16777216 /*must not be set to more than 16777216 (2^24)*/ -#define RMAPSIZE 1024 -#define RMAPCRCSIZE 1024 - -#define TEST1 1 -#define TEST2 0 -#define TEST3 0 -#define TEST4 0 -#define TEST5 1 -#define TEST6 1 -#define TEST7 1 -#define TEST8 1 -#define TEST9 1 -#define TEST10 1 -#define TEST11 1 -#define TEST12 1 - -static inline char loadb(int addr) -{ - char tmp; - asm(" lduba [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -static inline int loadmem(int addr) -{ - int tmp; - asm(" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -int writecfgaddress(int addr, int data, struct spwvars *spw) -{ - - char *tx0; - char *rx0; - char *rx1; - char *tx1; - char *dpa; - char *spa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int i; - int iterations; - int *size; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(32); - dpa = malloc(1); - spa = malloc(1); - *dpa = 0x00; - *spa = 0x01; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - tx1[0] = (char) ((data >> 24) & 0xFF); - tx1[1] = (char) ((data >> 16) & 0xFF); - tx1[2] = (char) ((data >> 8) & 0xFF); - tx1[3] = (char) (data & 0xFF); - - cmd->incr = yes; - cmd->type = writecmd; - cmd->verify = yes; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = spa; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = writerep; - reply->verify = yes; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if ((tmp = spw_tx(0, 1, 1, 1, *cmdsize, tx0, 4, tx1, spw))) { - printf("Transmission failed: %d\n", tmp); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+1)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize+1, *size); - } - for(i = 0; i < *replysize; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; - -} - -int readcfgaddress(int addr, int *data, struct spwvars *spw) -{ - char *tx0; - char *tx1; - char *rx0; - char *rx1; - char *dpa; - char *spa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int *size; - int i; - int iterations; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(4); - dpa = malloc(1); - spa = malloc(1); - *dpa = 0x00; - *spa = 0x01; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = spa; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw)) { - printf("Transmission failed\n"); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(i = 0; i < *replysize-1; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - *data = ((loadb((int)&rx1[*size-5]) << 24) & 0xFF000000) | ((loadb((int)&rx1[*size-4]) << 16) & 0xFF0000) | ((loadb((int)&rx1[*size-3]) << 8) & 0xFF00) | ((loadb((int)&rx1[*size-2]) & 0xFF)); - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(spa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; -} - -int main(int argc, char *argv[]) -{ - int ret; - clock_t t1, t2; - double t3, bitrate; - int regs[1024]; - int dmachan; - int sysfreq; - int txfreq1; - int txfreq2; - int i; - int j; - int k; - int m; - int n; - int l; - int x; - int iterations; - int data; - int hdr; - int notrx; - int tmp; - int eoplen; - int *size; - char *txbuf; - char *rxbuf; - char *rx0; - char *rx1; - char *rx2; - char *rx3; - char *tx0; - char *tx1; - char *tx2; - char *tx3; - char *tx[64]; - char *rx[128]; - char *tx_buf[AMBAPORTS][64]; - char *rx_buf[AMBAPORTS][128]; - struct rxstatus *rxs; - struct spwvars *spw[30]; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - int *cmdsize; - int *replysize; - int startrx[4]; - int rmappkt; - int rmapincr; - int destaddr; - int sepaddr[4]; - int chanen[4]; - int rmaprx; - int found; - int rxchan; - int length; - int maxlen; - char *dpa; - int wdog; - int pnp; - int spwports; - int fifoports; - int ahbports; - int laddr; - int laddr2; - int laddr3; - int port2; - int port; - int start; - int *ahb; - char tmpchar; - - printf("**** GRSPW ROUTER TEST DUAL **** \n\n"); - - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - - - printf("**** TEST STARTED **** \n\n"); - /************************ TEST INIT ***********************************/ - printf("Initalizing parameters and links"); - for(i = 0; i < AMBAPORTS; i++) { - if (spw_setparam(i+1, SPW_CLKDIV, 0xBF, 1, 1, SPW_ADDR[i], AHBFREQ, spw[i], 0, SPW_FREQ/10000-1) ) { - printf("Illegal parameters to spacewire\n"); - exit(1); - } - for(j = 0; j < 4; j++) { - spw_setparam_dma(j, i+1, 0x0, 1, MAXSIZE, spw[i]); - } - } - - - /* reset links and initialize links*/ - for(i = 0; i < AMBAPORTS; i++) { - if ((ret = spw_init(spw[i]))) { - printf("Link initialization failed for link%d: %d\n", i, ret); - } - printf("SPW %d version: %d \n", i, spw[i]->ver); - } - - printf("Start router links and set them to maximum speed\n"); - for(i = 0; i < SPWPORTS; i++) { - printf("Iteration: %d\n", i); - readcfgaddress(0x00000804+i*4, (int *)&data, spw[0]); - data = data & 0x00FFFFFF; - data = data | 0x2; - writecfgaddress(0x00000804+i*4, data, spw[0]); - } - - printf("Read config information\n"); - readcfgaddress(0x00000a00, (int *)&data, spw[0]); - printf("Router configuration register: %x\n", data); - - pnp = data & 1; - wdog = (data >> 1) & 1; - fifoports = (data >> 17) & 0x1F; - ahbports = (data >> 22) & 0x1F; - spwports = (data >> 27) & 0x1F; - - if (pnp) { - printf("Plug and Play support\n"); - } else { - printf("No Plug and Play support\n"); - } - if (wdog) { - printf("Watchdog timers\n"); - } else { - printf("No watchdog timers\n"); - } - - printf("%d Spw ports\n", spwports); - printf("%d AHB ports\n", ahbports); - printf("%d FIFO ports\n", fifoports); - - for (i = 1; i <= PORTS; i++) { - readcfgaddress(0x00000800+i*4, (int *)&data, spw[0]); - printf("Control register: %x\n", data); - readcfgaddress(0x00000880+i*4, (int *)&data, spw[0]); - printf("Status register: %x\n", data); - readcfgaddress(0x00000900+i*4, (int *)&data, spw[0]); - printf("Timer reload register: %x\n", data); - } - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - printf("Time-code register: %x\n", data); - readcfgaddress(0x00000a08, (int *)&data, spw[0]); - printf("Version/instance ID: %x\n", data); - readcfgaddress(0x00000a0c, (int *)&data, spw[0]); - printf("Initialization divisor: %x\n", data); - readcfgaddress(0x00000a10, (int *)&data, spw[0]); - printf("Configuration write enable: %x\n", data); - readcfgaddress(0x00000a14, (int *)&data, spw[0]); - printf("Timer prescaler: %x\n", data); - - -/* /\************************ TEST 1 **************************************\/ */ -#if TEST1 == 1 -#if AHBSLV == 1 - printf("TEST 1: Check all registers in configuration port through AHB slave interface \n\n"); - printf("Read group adaptive routing/packet distribution registers\n\n"); - for(i = 4; i < 0x400; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read routing table entries\n\n"); - for(i = 0x480; i < 0x800; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read port control registers\n\n"); - for(i = 0x800; i < 0x880; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read port status registers\n\n"); - for(i = 0x880; i < 0x900; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read Prescaler value\n\n"); - data = loadmem(AHBSLVADDR + 0x900); - regs[0x900/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0x900, data); - printf("\n"); - printf("Read timer registers\n\n"); - for(i = 0x904; i < 0xA00; i = i + 4) { - data = loadmem(AHBSLVADDR + i); - regs[i/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - } - printf("\n"); - printf("Read router configuration register\n\n"); - data = loadmem(AHBSLVADDR + 0xA00); - regs[0xA00/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA00, data); - printf("\n"); - printf("Read time-code register\n\n"); - data = loadmem(AHBSLVADDR + 0xA04); - regs[0xA04/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA04, data); - printf("\n"); - printf("Version/instance ID register\n\n"); - data = loadmem(AHBSLVADDR + 0xA08); - regs[0xA08/4] = data; - printf("Reg %08X %08X\n", AHBSLVADDR + 0xA08, data); - printf("\n"); - printf("TEST 1: completed successfully\n\n"); -#endif -#endif - -/* /\************************ TEST 2 **************************************\/ */ -#if TEST2 == 1 - printf("TEST 2: Check all registers in configuration port using RMAP \n\n"); - tx0 = (char *)malloc(64); - tx1 = (char *)calloc(RMAPSIZE, 1); - rx0 = (char *)malloc(RMAPSIZE+4); - rx1 = (char *)malloc(32+RMAPSIZE); - rx2 = (char *)malloc(32+RMAPSIZE); - dpa = malloc(1); - - if( (tx0 == NULL) || (tx1 == NULL) || (rx0 == NULL) || - (rx1 == NULL) || (rx2 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - *dpa = 0x00; - - i = 4; - while(1) { - if (i == 4) { - printf("Read port setup registers\n\n"); - } - if (i == 0x480) { - printf("Read routing table entries\n\n"); - } - if (i == 0x800) { - printf("Read port control registers\n\n"); - } - if (i == 0x880) { - printf("Read port status registers\n\n"); - } - if (i == 0x900) { - printf("Read prescaler register\n\n"); - } - if (i == 0x904) { - printf("Read timer registers\n\n"); - } - if (i == 0xA00) { - printf("Read configuration/status register\n\n"); - } - if (i == 0xA04) { - printf("Read time-code register\n\n"); - } - if (i == 0xA08) { - printf("Read version/instance ID register\n\n"); - } - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = 0x1; - cmd->tid = i; - cmd->addr = i; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = (char *)NULL; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - exit(1); - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0xBF; - reply->srcaddr = 0x1; - reply->tid = i; - reply->addr = i; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx2, replysize)) { - printf("RMAP reply build failed\n"); - exit(1); - } - while (spw_rx(0, rx1, spw[0])) { - for (k = 0; k < 64; k++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw[0])) { - printf("Transmission failed\n"); - exit(1); - } - while (!(tmp = spw_checktx(0, spw[0]))) { - for (k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - exit(1); - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw[0]))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (k = 0; k < 64; k++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - exit(1); - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - exit(1); - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - exit(1); - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(k = 0; k < *replysize-1; k++) { - if (loadb((int)&(rx1[k])) != rx2[k]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", k, (unsigned)loadb((int)&(rx1[k])), (unsigned)rx2[k]); - exit(1); - } - } - data = ((loadb((int)&rx1[*size-5]) << 24) & 0xFF000000) | ((loadb((int)&rx1[*size-4]) << 16) & 0xFF0000) | ((loadb((int)&rx1[*size-3]) << 8) & 0xFF00) | ((loadb((int)&rx1[*size-2]) & 0xFF)); -#if TEST1 == 1 -#if AHBSLV == 1 - tmp = data; - if (i >= 0x880 && i < 0x900) { - /* mask port status registers */ - tmp = data & 0; - regs[i/4] = regs[i/4] & 0; - } - if (tmp != regs[i/4]) { - printf("ERROR: Mismatch between data read from AHB slave interface and RMAP interface\n"); - printf("AHB: %08X RMAP: %08X\n", regs[i/4], tmp); - exit(1); - } -#endif -#endif - - printf("Reg %08X %08X\n", AHBSLVADDR + i, data); - if (i < 0x3FC) { - i = i + 4; - } else if (i == 0x3FC) { - i = 0x480; - } else if (i < 0x900) { - i = i + 4; - } else if ((wdog) && (i < 0x9FC)) { - i = i + 4; - } else if (i < 0xA08) { - i = i + 4; - } else { - break; - } - } - printf("\n"); - free(tx0); - free(tx1); - free(rx0); - free(rx1); - free(rx2); - free(dpa); -#endif - - -/* /\************************ TEST 3 **************************************\/ */ -#if TEST3 == 1 - printf("TEST 3: Test time-code propagation \n\n"); - i = 1; - while(i < 256) { - printf("Iteration: %d\n", i); - send_time(spw[0]); - for(k = 0; k < 1000; k++); /* delay*/ - tmp = check_time(spw[1]); - if (tmp != 1) { - printf("ERROR: Time-code not received"); - exit(1); - } - if (get_time(spw[1]) != (i % 64)) { - printf("ERROR: Wrong time-code value in counter"); - exit(1); - } - i++; - } - - -#endif - -/* /\************************ TEST 4 **************************************\/ */ -#if TEST4 == 1 - printf("TEST 4: Packet transmission test. Packet size 1 to 65536 \n\n"); - for(i = 0; i < AMBAPORTS; i++) { - for (j = 0; j < 64; j++) { - tx_buf[i][j] = malloc(65536); - rx_buf[i][j] = malloc(65536); - } - tx[i] = malloc(SPWPORTS/2+2); - spw_enable_promiscuous(spw[i]); - spw_rmapdis(spw[i]); - } - for(i = 0; i < AMBAPORTS; i++) { - if (i == 0) { - for (j = 0; j < SPWPORTS/2; j++) { - tx[i][j] = j*2+1; - - } - tx[i][SPWPORTS/2] = 6; - tx[i][SPWPORTS/2+1] = 2; - } else { - for (j = 0; j < SPWPORTS/2; j++) { - tx[i][j] = 4-j*2; - - } - tx[i][SPWPORTS/2] = 5; - tx[i][SPWPORTS/2+1] = 1; - } - - for(j = 0; j < 64; j++) { - for (l = 0; l < 65536; l++) { - tx_buf[i][j][l] = (char)j; - } - } - } - - for (j = 1; j <= 65536; j++) { - printf("Size: %d\n", j); - printf("Enabling reception\n"); - for(i = 0; i < AMBAPORTS; i++) { - for (k = 0; k < 64; k++) { - tmp = spw_rx(0, rx_buf[i][k], spw[i]); - } - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - printf("Transmitting\n"); - for(i = 0; i < AMBAPORTS; i++) { - for (k = 0; k < 64; k++) { - tmp = spw_tx(0, 0, 0, 0, SPWPORTS/2+2, tx[i], j, tx_buf[i][k], spw[i]); - if (tmp != 0) { - printf("ERROR: spw_tx failed: %d\n", tmp); - exit(1); - } - } - } - - printf("Checking transmission\n"); - for(i = 0; i < AMBAPORTS; i++) { - printf("Iteration: %d\n", i); - for (k = 0; k < 64; k++) { - while(!(tmp = spw_checktx(0, spw[i]))) { - for(l = 0; l < 64; l++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - } - printf("Checking reception\n"); - for(i = 0; i < AMBAPORTS; i++) { - printf("Iteration: %d\n", i); - for (k = 0; k < 64; k++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[i]))) { - for(l = 0; l < 64; l++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != j+1) { - printf("Received packet has wrong length link: %d\n", i); - printf("Exp: %d, Got: %d\n", j+1, *size); - exit(1); - } - for(l = 0; l < j; l++) { - if (loadb((int)&(rx_buf[i][k][l+1])) != tx_buf[i][k][l]) { - printf("Compare error link %d, pkt: %d, index: %d, Data: %x Expected: %x \n", i, k, l, (unsigned)loadb((int)&(rx_buf[i][k][l+1])), (unsigned)tx_buf[i][k][l]); - exit(1); - } - - } - } - } - } - - for (i = 0; i < AMBAPORTS; i++) { - free(tx[i]); - free(rx[i]); - for (j = 0; j < 64; j++) { - free(rx_buf[i][j]); - free(tx_buf[i][j]); - } - - } -#endif - -/* /\************************ TEST 5 **************************************\/ */ -#if TEST5 == 1 - printf("TEST 5: Throughput test\n\n"); - tx0 = malloc(MAXSIZE); - rx0 = malloc(MAXSIZE); - for(i = 0; i < AMBAPORTS; i++) { - tx[i] = malloc(SPWPORTS/2+2); - if (i == 0) { - for (j = 0; j < SPWPORTS/2; j++) { - tx[i][j] = j*2+1; - - } - tx[i][SPWPORTS/2] = 6; - tx[i][SPWPORTS/2+1] = 2; - } else { - for (j = 0; j < SPWPORTS/2; j++) { - tx[i][j] = 4-j*2; - - } - tx[i][SPWPORTS/2] = 5; - tx[i][SPWPORTS/2+1] = 1; - } - } - - - if ( (tx0 == NULL) || (rx0 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - - printf("Enabling reception\n"); - for(i = 0; i < AMBAPORTS; i++) { - for (j = 0; j < 64; j++) { - tmp = spw_rx(0, rx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - - printf("Transmitting\n"); - t1 = clock(); - for (j = 0; j < 64; j++) { - printf("."); - for(i = 0; i < AMBAPORTS; i++) { - tmp = spw_tx(0, 0, 0, 0, SPWPORTS/2+2, tx[i], MAXSIZE-3, tx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - printf("Checking transmission\n"); - for (j = 0; j < 64; j++) { - printf("."); - for(i = 0; i < AMBAPORTS; i++) { - while(!(tmp = spw_checktx(0, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - } - printf("Checking reception\n"); - for(i = 0; i < AMBAPORTS; i++) { - printf("+"); - for (j = 0; j < 64; j++) { - printf("."); - while(!(tmp = spw_checkrx(0, size, rxs, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != MAXSIZE-2) { - printf("Received packet has wrong length link: %d\n", i); - exit(1); - } - } - } - t2 = clock(); - t2 = t2 - t1; - t3 = t2/CLOCKS_PER_SEC; - bitrate = ((MAXSIZE-2)*64)/(t3*1000); - bitrate = bitrate*AMBAPORTS*8; - bitrate /= 1000.0; - printf("Effective bitrate: %3.1f Mbit/s\n", bitrate); - free(tx0); - free(rx0); - for(i = 0; i < AMBAPORTS; i++) { - free(tx[i]); - } -#endif - -#if TEST6 == 1 - printf("TEST 6: Packet size test using physical addresses. Minimum size usable is 2\n"); - printf("due to header deletion and minimum size 1 for the DMA channels. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < AMBAPORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - rx[i] = malloc(PKTTESTMAX); - tx_buf[i][0] = malloc(SPWPORTS/2+2); - - if ((tx[i] == NULL) || (tx_buf[i][0] == NULL)) { - printf("Memory initialization error\n"); - exit(1); - } - - if (i == 0) { - for (j = 0; j < SPWPORTS/2; j++) { - tx_buf[i][0][j] = j*2+1; - } - tx_buf[i][0][SPWPORTS/2] = 18; - tx_buf[i][0][SPWPORTS/2+1] = 2; - } else { - for (j = 0; j < SPWPORTS/2; j++) { - tx_buf[i][0][j] = 16-j*2; - } - tx_buf[i][0][SPWPORTS/2] = 17; - tx_buf[i][0][SPWPORTS/2+1] = 1; - } - - } - - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); - - printf("Enabling reception\n"); - for(j = 0; j < AMBAPORTS; j++) { - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - printf("Transmitting\n"); - for (j = 0; j < AMBAPORTS; j++) { - for(k = 0; k < i; k++) { - tx[j][k] = rand() % 256; - } - } - for(j = 0; j < AMBAPORTS; j++) { - tmp = spw_tx(0, 0, 0, 0, SPWPORTS/2+2, tx_buf[j][0], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_tx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < AMBAPORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - - printf("Checking reception\n"); - for(j = 0; j < AMBAPORTS; j++) { - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != i+1) { - printf("Received packet has wrong length link: %d\n", j); - printf("Exp: %d, Got: %d, \n", i+1, *size); - exit(1); - } - for (k = 0; k < i; k++) { - if (loadb((int)&(rx[j][k+1])) != tx[AMBAPORTS-j-1][k]) { - printf("Compare error link: %d, index: %d Data: %x Expected: %x \n", j, k, (unsigned)loadb((int)&(rx[j][k+1])), (unsigned)tx[AMBAPORTS-j-1][k]); - exit(1); - } - } - - } - - } - for(i = 0; i < AMBAPORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST7 == 1 - printf("TEST 7: Packet size test using logical addresses. Minimum size usable is 1\n"); - printf("since this test disables header deletion. Must use \n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < AMBAPORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); -/* printf("tx[%d]: %x\n", i, (int)tx[i]); */ - rx[i] = malloc(PKTTESTMAX); -/* printf("rx[%d]: %x\n", i, (int)rx[i]); */ - - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - } - port = SPWPORTS+2; - for (i = 32; i < 256; i++) { - data = (1 << (port)); - writecfgaddress(0x00000000+i*4, data, spw[0]); - writecfgaddress(0x00000400+i*4, 0x4, spw[0]); -/* printf("Addr: %x Data: %x\n", 0x00000000+i*4, data); */ - port = port - 1; - if (port == SPWPORTS) { - port = SPWPORTS+AMBAPORTS; - } - } - - laddr = 32; laddr2 = 32; laddr3 = 32; - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); -/* printf("Enabling reception\n"); */ - for(j = 0; j < AMBAPORTS; j++) { -/* printf("port:%d rx[%d]: %x\n", port, j, (int)rx[j]); */ - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - - printf("Transmitting\n"); - for (j = 0; j < AMBAPORTS; j++) { - for(k = 1; k < i; k++) { - tx[j][k] = rand() % 256; - } - tx[j][0] = laddr; - laddr = laddr + 1; - if (laddr == 256) { - laddr = 32; - } - } - for(j = 0; j < AMBAPORTS; j++) { -/* printf("port:%d tx[%d]: %x\n", j, j, (int)tx[j]); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_tx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < AMBAPORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - - printf("Checking reception\n"); - for(j = 0; j < AMBAPORTS; j++) { - printf("Port: %d\n", j); - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", j); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", j); - exit(1); - } - if (*size != i) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i); - exit(1); - } -/* printf("Rx: %x Tx: %x\n", (int)&(rx[j][0]), (int)&(tx[j][0])); */ -/* printf("port:%d rx[%d]: %x\n", port2, j, (int)&(rx[j][0])); */ - for (k = 0; k < i; k++) { - if (loadb((int)&(rx[j][k])) != tx[AMBAPORTS-j-1][k]) { - printf("Compare error port: %u index: %u Data: %x Expected: %x \n", j, k, k, (unsigned)loadb((int)&(rx[j][k])), (unsigned)tx[AMBAPORTS-j-1][k]); - exit(1); - } - } - - } - - - } - for(i = 0; i < AMBAPORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST8 == 1 - printf("TEST 8: Packet size test using logical addresses. Minimum size usable is 2\n"); - printf("since this test enables header deletion. Must use\n"); - printf("promiscuous mode\n\n"); - for(i = 0; i < AMBAPORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - /* printf("tx[%d]: %x\n", i, (int)tx[i]); */ - rx[i] = malloc(PKTTESTMAX); -/* printf("rx[%d]: %x\n", i, (int)rx[i]); */ - - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - } - port = SPWPORTS+2; - for (i = 32; i < 256; i++) { - data = (1 << (port)); - writecfgaddress(0x00000000+i*4, data, spw[0]); - writecfgaddress(0x00000400+i*4, 0x5, spw[0]); -/* printf("Addr: %x Data: %x\n", 0x00000000+i*4, data); */ - port = port - 1; - if (port == SPWPORTS) { - port = SPWPORTS+2; - } - } - - laddr = 32; laddr2 = 32; laddr3 = 32; - for (i = 3; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); -/* printf("Enabling reception\n"); */ - for(j = 0; j < AMBAPORTS; j++) { -/* printf("port:%d rx[%d]: %x\n", port, j, (int)rx[j]); */ - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - -/* printf("Transmitting\n"); */ - for (j = 0; j < AMBAPORTS; j++) { - for(k = 1; k < i; k++) { - tx[j][k] = rand() % 256; - } - tx[j][0] = laddr; - laddr = laddr + 1; - if (laddr == 256) { - laddr = 32; - } - } - for(j = 0; j < AMBAPORTS; j++) { -/* printf("port:%d tx[%d]: %x\n", j, j, (int)tx[j]); */ - tmp = spw_tx(0, 0, 0, 0, 0, tx[j], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < AMBAPORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - -/* printf("Checking reception\n"); */ - for(j = 0; j < AMBAPORTS; j++) { -/* printf("Port: %d\n", port2); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", j); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", j); - exit(1); - } - if (*size != i-1) { - printf("Received packet has wrong length link: %d\n", j); - printf("Got: %d, Expected: %d\n", *size, i-1); - exit(1); - } - /* printf("Rx: %x Tx: %x\n", (int)&(rx[j][0]), (int)&(tx[j][0])); */ -/* printf("port:%d rx[%d]: %x\n", port2, j, (int)&(rx[j][0])); */ - for (k = 1; k < i; k++) { - if (loadb((int)&(rx[j][k-1])) != tx[AMBAPORTS-j-1][k]) { - printf("Compare error port: %u index: %u Data: %x Expected: %x \n", j, k, (unsigned)loadb((int)&(rx[j][k-1])), (unsigned)tx[AMBAPORTS-j-1][k]); - exit(1); - } - } - - } - - - } - for(i = 0; i < AMBAPORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - -#if TEST9 == 1 - printf("TEST 9: Test packet sizes with packet distribution\n"); - printf("for path addresses. Will only work with packet sizes\n"); - printf("up to 120 (guaranteed, can be a few chars higher depending\n"); - printf("on the number of credits when the test start) when \n"); - printf("fifosize is 64\n\n"); - ahb = (int *)AHBSLVADDR; - - for(i = 0; i < AMBAPORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - for (j = 0; j < SPWPORTS; j++) { - rx_buf[i][j] = malloc(PKTTESTMAX); - if (rx_buf[i][j] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - } - } - - for (i = 4; i < 121; i++) { - data = 1; - printf("Packet size: %d\n", i); - for(j = 1; j <= SPWPORTS; j++) { - /* printf("Number of ports: %d\n", j); */ - data = data | (1 << j); /* Enables packet distribution */ - writecfgaddress(0x00000004, data, spw[0]); - /* printf("Enabling reception\n"); */ - for (l = 0; l < AMBAPORTS; l++) { - for(k = 0; k < j; k++) { - /* printf("enabling port: %d\n", l); */ - tmp = spw_rx(0, rx_buf[l][k], spw[l]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - } - /* printf("Transmitting\n"); */ - for(l = 0; l < AMBAPORTS; l++) { - tx[l][0] = 1; - tx[l][1] = SPWPORTS+1+l; - for(k = 2; k < i; k++) { - tx[l][k] = rand() % 256; - } - } - -/* for(x = 0; x < i; x++) { */ -/* printf("%x ", tx[j][x]); */ -/* } */ -/* printf("\n"); */ - /* printf("Port: %d\n", j+1); */ - for (l = 0; l < AMBAPORTS; l++) { - tmp = spw_tx(0, 0, 0, 0, 0, tx[l], i, tx[l], spw[l]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - while(!(tmp = spw_checktx(0, spw[l]))) { - for(x = 0; x < 64; x++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", j); - exit(1); - } - } - - /* printf("Checking reception\n"); */ - for(l = 0; l < AMBAPORTS; l++) { - /* printf("Receiving port: %d\n", l); */ - for (k = 0; k < j; k++) { - /* printf("Packet: %d\n", k); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[l]))) { - for(x = 0; x < 64; x++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", l); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", l); - exit(1); - } - if (*size != i-2) { - printf("Received packet has wrong length link: %d\n", l); - printf("Got: %d, Expected: %d\n", *size, i-2); - exit(1); - } - - for (x = 2; x < i; x++) { - if (loadb((int)&(rx_buf[l][k][x-2])) != tx[l][x]) { - printf("Compare error port: %u pkt: %u index: %u Data: %x Expected: %x \n", l, j, x, (unsigned)loadb((int)&(rx_buf[l][k][x-2])), (unsigned)tx[l][x]); - exit(1); - } - } - - } - } - } - } - for(i = 0; i < AMBAPORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - for (j = 0; j < SPWPORTS; j++) { - free(rx_buf[i][j]); - } - } - -#endif - - -#if TEST10 == 1 - printf("TEST 10: Test packet sizes with packet distribution\n"); - printf("for logical addresses. Will only work with packet sizes\n"); - printf("up to 120 (guaranteed, can be a few chars higher depending\n"); - printf("on the number of credits when the test start) when \n"); - printf("fifosize is 64. Header deletion MUST be used, otherwise deadlock\n"); - printf("occurs\n\n"); - ahb = (int *)AHBSLVADDR; - - for(i = 0; i < AMBAPORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - if (tx[i] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - for (j = 0; j < SPWPORTS; j++) { - rx_buf[i][j] = malloc(PKTTESTMAX); - if (rx_buf[i][j] == NULL) { - printf("Memory initialization error\n"); - exit(1); - } - } - } - - for (i = 4; i < 121; i++) { - printf("Packet size: %d\n", i); - for (n = 32; n < 256; n++) { - /* printf("Logical address: %d\n", n); */ - data = 1; - for(j = 1; j <= SPWPORTS; j++) { - /* printf("Number of ports: %d\n", j); */ - data = data | (1 << j); /* Enables packet distribution */ - writecfgaddress(4*n, data, spw[0]); - writecfgaddress(0x400+4*n, 0x5, spw[0]); - /* printf("Enabling reception\n"); */ - for (l = 0; l < AMBAPORTS; l++) { - for(k = 0; k < j; k++) { - /* printf("enabling port: %d\n", l); */ - tmp = spw_rx(0, rx_buf[l][k], spw[l]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - } - } - /* printf("Transmitting\n"); */ - for(l = 0; l < AMBAPORTS; l++) { - tx[l][0] = n; - tx[l][1] = SPWPORTS+1+l; - for(k = 2; k < i; k++) { - tx[l][k] = rand() % 256; - } - } - -/* for(x = 0; x < i; x++) { */ -/* printf("%x ", tx[j][x]); */ -/* } */ -/* printf("\n"); */ - /* printf("Port: %d\n", j+1); */ - for (l = 0; l < AMBAPORTS; l++) { - tmp = spw_tx(0, 0, 0, 0, 0, tx[l], i, tx[l], spw[l]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - } - while(!(tmp = spw_checktx(0, spw[l]))) { - for(x = 0; x < 64; x++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", j); - exit(1); - } - } - - /* printf("Checking reception\n"); */ - for(l = 0; l < AMBAPORTS; l++) { - /* printf("Receiving port: %d\n", l); */ - for (k = 0; k < j; k++) { - /* printf("Packet: %d\n", k); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[l]))) { - for(x = 0; x < 64; x++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", l); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", l); - exit(1); - } - if (*size != i-2) { - printf("Received packet has wrong length link: %d\n", l); - printf("Got: %d, Expected: %d\n", *size, i-2); - exit(1); - } - - for (x = 2; x < i; x++) { - if (loadb((int)&(rx_buf[l][k][x-2])) != tx[l][x]) { - printf("Compare error port: %u pkt: %u index: %u Data: %x Expected: %x \n", l, j, x, (unsigned)loadb((int)&(rx_buf[l][k][x-2])), (unsigned)tx[l][x]); - exit(1); - } - } - - } - } - } - - } - } - for(i = 0; i < AMBAPORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - for (j = 0; j < SPWPORTS; j++) { - free(rx_buf[i][j]); - } - } - -#endif - -/* /\************************ TEST 11 **************************************\/ */ -#if TEST11 == 1 - printf("TEST 11: Throughput test with additional FIFO port\n\n"); - tx0 = malloc(MAXSIZE); - rx0 = malloc(MAXSIZE); - for(i = 0; i < AMBAPORTS; i++) { - tx[i] = malloc(3); - tx[i][0] = 19; - if (i == 0) { - tx[i][1] = 18; - tx[i][2] = 2; - } else { - tx[i][1] = 17; - tx[i][2] = 1; - } - /* tx[i] = malloc(SPWPORTS/2+3); */ - /* if (i == 0) { */ -/* for (j = 0; j < SPWPORTS/2; j++) { */ -/* tx[i][j] = j*2+1; */ - -/* } */ -/* tx[i][SPWPORTS/2] = 19; */ -/* tx[i][SPWPORTS/2+1] = 18; */ -/* tx[i][SPWPORTS/2+2] = 2; */ -/* } else { */ -/* for (j = 0; j < SPWPORTS/2; j++) { */ -/* tx[i][j] = 16-j*2; */ - -/* } */ -/* tx[i][SPWPORTS/2] = 17; */ -/* tx[i][SPWPORTS/2+1] = 1; */ -/* } */ - } - - - if ( (tx0 == NULL) || (rx0 == NULL) ) { - printf("Memory initialization error\n"); - exit(1); - } - - printf("Enabling reception\n"); - for(i = 0; i < AMBAPORTS; i++) { - for (j = 0; j < 64; j++) { - tmp = spw_rx(0, rx0, spw[i]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - - printf("Transmitting\n"); - t1 = clock(); - for (j = 0; j < 64; j++) { - printf("Iteration: %d\n", j); - for(i = 0; i < AMBAPORTS; i++) { - if (i == 0) { - tmp = spw_tx(0, 0, 0, 0, 3, tx[i], MAXSIZE-3, tx0, spw[i]); - } else { - tmp = spw_tx(0, 0, 0, 0, 3, tx[i], MAXSIZE-3, tx0, spw[i]); - } - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - } - for (j = 0; j < 64; j++) { - printf("Iteration: %d\n", j); - for(i = 0; i < AMBAPORTS; i++) { - while(!(tmp = spw_checktx(0, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - } - printf("Checking reception\n"); - for(i = 0; i < AMBAPORTS; i++) { - for (j = 0; j < 64; j++) { - printf("Iteration: %d\n", j); - while(!(tmp = spw_checkrx(0, size, rxs, spw[i]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != MAXSIZE-2) { - printf("Received packet has wrong length link: %d\n", i); - printf("Exp: %d, Got: %d\n", MAXSIZE-2, *size); - exit(1); - } - } - } - t2 = clock(); - t2 = t2 - t1; - t3 = t2/CLOCKS_PER_SEC; - bitrate = ((MAXSIZE-2)*64)/(t3*1000); - bitrate = bitrate*AMBAPORTS*8; - bitrate /= 1000.0; - printf("Effective bitrate: %3.1f Mbit/s\n", bitrate); - free(tx0); - free(rx0); - for(i = 0; i < AMBAPORTS; i++) { - free(tx[i]); - } -#endif - -#if TEST12 == 1 - printf("TEST 12: Packet size test using physical addresses. Minimum size usable is 2\n"); - printf("due to header deletion and minimum size 1 for the DMA channels. Must use\n"); - printf("promiscuous mode. Uses the FIFO port\n\n"); - for(i = 0; i < AMBAPORTS; i++) { - spw_enable_promiscuous(spw[i]); - tx[i] = malloc(PKTTESTMAX); - rx[i] = malloc(PKTTESTMAX); - tx_buf[i][0] = malloc(SPWPORTS/2+3); - - if ((tx[i] == NULL) || (tx_buf[i][0] == NULL)) { - printf("Memory initialization error\n"); - exit(1); - } - - if (i == 0) { - for (j = 0; j < SPWPORTS/2; j++) { - tx_buf[i][0][j] = j*2+1; - } - tx_buf[i][0][SPWPORTS/2] = 19; - tx_buf[i][0][SPWPORTS/2+1] = 18; - tx_buf[i][0][SPWPORTS/2+2] = 2; - } else { - for (j = 0; j < SPWPORTS/2; j++) { - tx_buf[i][0][j] = 16-j*2; - } - tx_buf[i][0][SPWPORTS/2] = 19; - tx_buf[i][0][SPWPORTS/2+1] = 17; - tx_buf[i][0][SPWPORTS/2+2] = 1; - } - - } - - for (i = 2; i < PKTTESTMAX; i++) { - printf("Packet size: %d\n", i); - - /* printf("Enabling reception\n"); */ - for(j = 0; j < AMBAPORTS; j++) { - tmp = spw_rx(0, rx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_rx failed: %d\n", tmp); - exit(1); - - } - } - - /* printf("Transmitting\n"); */ - for (j = 0; j < AMBAPORTS; j++) { - for(k = 0; k < i; k++) { - tx[j][k] = rand() % 256; - /* printf("%x ", tx[j][k]); */ - } - } - for(j = 0; j < AMBAPORTS; j++) { - tmp = spw_tx(0, 0, 0, 0, SPWPORTS/2+3, tx_buf[j][0], i, tx[j], spw[j]); - if (tmp != 0) { - printf("ERROR: spw_tx failed: %d\n", tmp); - exit(1); - - } - } - - for(j = 0; j < AMBAPORTS; j++) { - while(!(tmp = spw_checktx(0, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (tmp != 1) { - printf("Transmit error link: %d \n", i); - exit(1); - } - } - - /* printf("Checking reception\n"); */ - for(j = 0; j < AMBAPORTS; j++) { - /* printf("Port: %d\n", j); */ - while(!(tmp = spw_checkrx(0, size, rxs, spw[j]))) { - for(k = 0; k < 64; k++) {} - } - if (rxs->truncated) { - printf("Received packet truncated link: %d \n", i); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep link: %d\n", i); - exit(1); - } - if (*size != i+1) { - printf("Received packet has wrong length link: %d\n", j); - printf("Exp: %d, Got: %d, \n", i+1, *size); - exit(1); - } - for (k = 0; k < i; k++) { - tmpchar = loadb((int)&(rx[j][k+1])); - /* printf("%x ", tmpchar); */ - if (tmpchar != tx[AMBAPORTS-j-1][k]) { - printf("Compare error link: %d, index: %d Data: %x Expected: %x \n", j, k, (unsigned)loadb((int)&(rx[j][k+1])), (unsigned)tx[AMBAPORTS-j-1][k]); - } - } - - } - - } - for(i = 0; i < AMBAPORTS; i++) { - spw_disable_promiscuous(spw[i]); - free(tx[i]); - free(rx[i]); - } - -#endif - - - - - printf("*********** Test suite completed successfully ************\n"); - exit(0); - -} diff --git a/software/spw/router_test_single-loopback.c b/software/spw/router_test_single-loopback.c deleted file mode 100644 index fbc0a84c..00000000 --- a/software/spw/router_test_single-loopback.c +++ /dev/null @@ -1,670 +0,0 @@ -/*****************************************************************************/ -/* This file is a part of the GRLIB VHDL IP LIBRARY */ -/* Copyright (C) 2010 GAISLER RESEARCH */ - -/* This program is free software; you can redistribute it and/or modify */ -/* it under the terms of the GNU General Public License as published by */ -/* the Free Software Foundation; either version 2 of the License, or */ -/* (at your option) any later version. */ - -/* See the file COPYING for the full details of the license. */ -/******************************************************************************/ -#define PORTS 1 -#define LBPORTS 2 -#define STARTINDEX 0 - -const SPW_ADDR[30] = - {0x80000a00, - 0x80000b00, - 0x80000c00, - 0x80000700, - 0x80000800, - 0x80000900, - 0x80000a00, - 0x80000b00, - 0x80000c00, - 0x80000d00, - 0x80000e00, - 0x80000f00, - 0x80001000, - 0x80001100, - 0x80001200, - 0x80001300, - 0x80001400, - 0x80001500, - 0x80001600, - 0x80001700, - 0x80001800, - 0x80001900, - 0x80001a00, - 0x80001b00, - 0x80001c00, - 0x80001d00, - 0x80001e00, - 0x80001f00, - 0x80002000, - 0x80002100}; - -#define AHBSLV 0 -#define AHBSLVADDR 0xFFF20000 - -#define SPW_FREQ 200000 /* Frequency of txclk in khz, set to 0 to use reset value */ -#define AHBFREQ 50000 /* Set to zero to leave reset values */ - -#define SPW_CLKDIV 0 - -#include -#include -#include "spwapi.h" -#include "rmapapi.h" -#include -#include -#include - -#define PKTTESTMAX 65536 -#define DESCPKT 1024 -#define MAXSIZE 16777216 /*must not be set to more than 16777216 (2^24)*/ -#define RMAPSIZE 1024 -#define RMAPCRCSIZE 1024 - -#define TEST1 1 -#define TEST2 0 -#define TEST3 0 -#define TEST4 0 -#define TEST5 0 -#define TEST6 0 -#define TEST7 0 -#define TEST8 0 -#define TEST9 0 - - -static inline char loadb(int addr) -{ - char tmp; - asm(" lduba [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -static inline int loadmem(int addr) -{ - int tmp; - asm(" lda [%1]1, %0 " - : "=r"(tmp) - : "r"(addr) - ); - return tmp; -} - -int writecfgaddress(int addr, int data, struct spwvars *spw) -{ - - char *tx0; - char *rx0; - char *rx1; - char *tx1; - char *dpa; - char *spa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int i; - int iterations; - int *size; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(32); - dpa = malloc(1); - spa = malloc(1); - *dpa = 0x00; - *spa = 0x01; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - tx1[0] = (char) ((data >> 24) & 0xFF); - tx1[1] = (char) ((data >> 16) & 0xFF); - tx1[2] = (char) ((data >> 8) & 0xFF); - tx1[3] = (char) (data & 0xFF); - - cmd->incr = yes; - cmd->type = writecmd; - cmd->verify = yes; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = spa; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = writerep; - reply->verify = yes; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if (spw_tx(0, 1, 1, 1, *cmdsize, tx0, 4, tx1, spw)) { - printf("Transmission failed\n"); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+1)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize+1, *size); - } - for(i = 0; i < *replysize; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; - -} - -int readcfgaddress(int addr, int *data, struct spwvars *spw) -{ - char *tx0; - char *tx1; - char *rx0; - char *rx1; - char *dpa; - char *spa; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - struct rxstatus *rxs; - int *cmdsize; - int *replysize; - int *size; - int i; - int iterations; - int tmp; - - tx0 = malloc(32); - rx0 = malloc(32); - rx1 = malloc(32); - tx1 = malloc(4); - dpa = malloc(1); - spa = malloc(1); - *dpa = 0x00; - *spa = 0x01; - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd->incr = yes; - cmd->type = readcmd; - cmd->verify = no; - cmd->ack = yes; - cmd->destaddr = 0xFE; - cmd->destkey = 0x00; - cmd->srcaddr = spw->nodeaddr; - cmd->tid = 0; - cmd->addr = addr; - cmd->len = 4; - cmd->status = 0; - cmd->dstspalen = 1; - cmd->dstspa = dpa; - cmd->srcspalen = 0; - cmd->srcspa = spa; - if (build_rmap_hdr(cmd, tx0, cmdsize)) { - printf("RMAP cmd build failed\n"); - return 1; - } - reply->type = readrep; - reply->verify = no; - reply->ack = yes; - reply->incr = yes; - reply->status = 0; - reply->destaddr = 0xFE; - reply->destkey = 0x00; - reply->srcaddr = spw->nodeaddr; - reply->tid = 0; - reply->addr = addr; - reply->len = 4; - reply->dstspalen = 0; - reply->dstspa = (char *)NULL; - reply->srcspalen = 0; - reply->srcspa = (char *)NULL; - if (build_rmap_hdr(reply, rx0, replysize)) { - printf("RMAP reply build failed\n"); - return 2; - } - while (spw_rx(0, rx1, spw)) { - for (i = 0; i < 64; i++) {} - } - if (spw_tx(0, 1, 0, 1, *cmdsize, tx0, 0, tx1, spw)) { - printf("Transmission failed\n"); - return 3; - } - while (!(tmp = spw_checktx(0, spw))) { - for (i = 0; i < 64; i++) {} - } - if (tmp != 1) { - printf("Error in transmit \n"); - return 4; - } - iterations = 0; - while (!(tmp = spw_checkrx(0, size, rxs, spw))) { - if (iterations > 1000) { - printf("ERROR: Time limit exceeded while waiting for RMAP reply\n"); - exit(0); - } - for (i = 0; i < 64; i++) {} - iterations++; - } - if (rxs->truncated) { - printf("Received packet truncated\n"); - return 5; - } - if(rxs->eep) { - printf("Received packet terminated with eep\n"); - return 6; - } - if(rxs->hcrcerr) { - printf("Received packet header crc error detected\n"); - return 7; - } - if(rxs->dcrcerr) { - printf("Received packet data crc error detected\n"); - return 8; - } - /* replysize only gives the header length minus crc while - size includes everything received except EOP/EEP*/ - if (*size != (*replysize+6)) { - printf("Received packet has wrong length\n"); - printf("Expected: %i, Got: %i \n", *replysize, *size); - } - for(i = 0; i < *replysize-1; i++) { - if (loadb((int)&(rx1[i])) != rx0[i]) { - printf("Compare error 0: %u Data: %x Expected: %x \n", i, (unsigned)loadb((int)&(rx1[i])), (unsigned)rx0[i]); - return 9; - } - } - *data = ((loadb((int)&rx1[*size-5]) << 24) & 0xFF000000) | ((loadb((int)&rx1[*size-4]) << 16) & 0xFF0000) | ((loadb((int)&rx1[*size-3]) << 8) & 0xFF00) | ((loadb((int)&rx1[*size-2]) & 0xFF)); - - free(tx0); - free(rx0); - free(rx1); - free(tx1); - free(dpa); - free(spa); - free(cmd); - free(reply); - free(rxs); - free(cmdsize); - free(replysize); - - return 0; -} - -int main(int argc, char *argv[]) -{ - int ret; - clock_t t1, t2; - double t3, bitrate; - int regs[1024]; - int dmachan; - int sysfreq; - int txfreq1; - int txfreq2; - int i; - int j; - int k; - int m; - int l; - int x; - int iterations; - int data; - int hdr; - int notrx; - int tmp; - int eoplen; - int *size; - char *txbuf; - char *rxbuf; - char *rx0; - char *rx1; - char *rx2; - char *rx3; - char *tx0; - char *tx1; - char *tx2; - char *tx3; - char *tx[64]; - char *rx[128]; - struct rxstatus *rxs; - struct spwvars *spw[30]; - struct rmap_pkt *cmd; - struct rmap_pkt *reply; - int *cmdsize; - int *replysize; - int startrx[4]; - int rmappkt; - int rmapincr; - int destaddr; - int sepaddr[4]; - int chanen[4]; - int rmaprx; - int found; - int rxchan; - int length; - int maxlen; - char *dpa; - int wdog; - int pnp; - int spwports; - int fifoports; - int ahbports; - int laddr; - int laddr2; - int laddr3; - int port2; - int port; - int start; - int *ahb; - int prev_ctrl; - int prev_count; - int prev_count2; - - printf("**** GRSPW ROUTER TEST SINGLE-LOOPBACK **** \n\n"); - rxs = (struct rxstatus *) malloc(sizeof(struct rxstatus)); - size = (int *) malloc(sizeof(int)); - - cmd = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - reply = (struct rmap_pkt *) malloc(sizeof(struct rmap_pkt)); - cmdsize = (int *) malloc(sizeof(int)); - replysize = (int *) malloc(sizeof(int)); - - - printf("**** TEST STARTED **** \n\n"); - /************************ TEST INIT ***********************************/ - printf("Initalizing parameters and links"); - for(i = 0; i < PORTS; i++) { - if (spw_setparam(i+1, SPW_CLKDIV, 0xBF, 1, 1, SPW_ADDR[i], AHBFREQ, spw[i], 0, SPW_FREQ/10000-1) ) { - printf("Illegal parameters to spacewire\n"); - exit(1); - } - for(j = 0; j < 4; j++) { - spw_setparam_dma(j, i+1, 0x0, 1, MAXSIZE, spw[i]); - } - } - - - /* reset links and initialize links*/ - for(i = 0; i < PORTS; i++) { - if ((ret = spw_init(spw[i]))) { - printf("Link initialization failed for link%d: %d\n", i, ret); - } - printf("SPW %d version: %d \n", i, spw[i]->ver); - if (wait_running(spw[i])) { - printf("Link %d did not enter run-state\n", i); - } - } - - printf("Set Router link to maximum speed\n"); - for(i = 0; i < PORTS+LBPORTS; i++) { - printf("Iteration: %d\n", i); - readcfgaddress(0x00000804+i*4, (int *)&data, spw[0]); - data &= 0x00FFFFFF; - data |= 0x2; - data &= ~(1<<9); -/* data |= 1<<9; */ - writecfgaddress(0x00000804+i*4, data, spw[0]); - } - - printf("Read config information: "); - readcfgaddress(0x00000a00, (int *)&data, spw[0]); - printf("%08X\n", data); - pnp = data & 1; - wdog = (data >> 1) & 1; - fifoports = (data >> 17) & 0x1F; - ahbports = (data >> 22) & 0x1F; - spwports = (data >> 27) & 0x1F; - printf(" %-28s %s\n", "Plug and Play support\n", pnp?"yes":"no"); - printf(" %-28s %s\n", "Watchdog timers", wdog?"yes":"no"); - printf(" %-28s %d\n", "Spw ports", spwports); - printf(" %-28s %d\n", "AHB ports", ahbports); - printf(" %-28s %d\n", "FIFO ports", fifoports); - printf("\n"); - - for (i = 1; i <= spwports; i++) { - printf("Port: %d\n", i); - readcfgaddress(0x00000800+i*4, (int *)&data, spw[0]); - printf(" %-28s %08X\n", "Control register", data); - readcfgaddress(0x00000880+i*4, (int *)&data, spw[0]); - printf(" %-28s %08X\n", "Status register", data); - readcfgaddress(0x00000900+i*4, (int *)&data, spw[0]); - printf(" %-28s %08X\n", "Timer register", data); - } - printf("\n"); - readcfgaddress(0x00000a04, (int *)&data, spw[0]); - printf("%-32s %08X\n", "Time-code register", data); - readcfgaddress(0x00000a08, (int *)&data, spw[0]); - printf("%-32s %08X\n", "Version/instance ID", data); - readcfgaddress(0x00000a0c, (int *)&data, spw[0]); - printf("%-32s %08X\n", "Initialization divisor", data); - readcfgaddress(0x00000a10, (int *)&data, spw[0]); - printf("%-32s %08X\n", "Configuration write enable", data); - readcfgaddress(0x00000a14, (int *)&data, spw[0]); - printf("%-32s %08X\n", "Timer prescaler", data); - -#if defined(TEST1) && TEST1==1 - printf("\nTEST 1: Test timers" - "\n===================\n\n" - ); - /*Minimum size usable is 3 since this test disables header deletion.*/ - /*Must use promiscuous mode*/ - spw_enable_promiscuous(spw[0]); - - const int pkts = 2; - const int hdrs = 2; - const int bytes = 127; - tx[0] = malloc(bytes); - for (k=0; ktruncated) { - printf("Received packet truncated, link: %d \n", 0); - exit(1); - } - if(rxs->eep) { - printf("Received packet terminated with eep, link: %d\n", 0); - if (pkts >= 2 && bytes >= 120) { - continue; - } - exit(1); - } - if (*size != (bytes-hdrs)) { - printf("Received packet has wrong length, link: %d\n", 0); - exit(1); - } - - printf("Receiving\n"); - for(j = 0; j < (bytes-hdrs); j++) { - if (loadb((int)&(rx[k][j])) != tx[0][j+hdrs]) { - printf("Compare error buf %d, index: %d, Data: %x Expected: %x \n", - 0, j, (unsigned)loadb((int)&(rx[0][j])), (unsigned)tx[0][j+hdrs]); - exit(1); - } - } - - } - printf("\nTEST1 successful!\n"); - - /* Cleanup after test */ - free(tx[0]); - for (k=0; k